<?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>89558</bug_id>
          
          <creation_ts>2012-06-20 03:19:38 -0700</creation_ts>
          <short_desc>[WK2] Add support for Battery Status API</short_desc>
          <delta_ts>2012-07-03 16:34:19 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebKit2</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>
          
          <blocked>81338</blocked>
    
    <blocked>90069</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Chris Dumez">cdumez</reporter>
          <assigned_to name="Chris Dumez">cdumez</assigned_to>
          <cc>andersca</cc>
    
    <cc>cmarcelo</cc>
    
    <cc>dinu.jacob</cc>
    
    <cc>gustavo</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>kenneth</cc>
    
    <cc>menard</cc>
    
    <cc>philn</cc>
    
    <cc>rakuco</cc>
    
    <cc>sam</cc>
    
    <cc>tmpsantos</cc>
    
    <cc>vestbo</cc>
    
    <cc>webkit.review.bot</cc>
    
    <cc>xan.lopez</cc>
    
    <cc>zoltan</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>653320</commentid>
    <comment_count>0</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2012-06-20 03:19:38 -0700</bug_when>
    <thetext>There is currently no support for the Battery Status API in WebKit 2, we need to bring support for it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>653377</commentid>
    <comment_count>1</comment_count>
      <attachid>148544</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2012-06-20 05:59:41 -0700</bug_when>
    <thetext>Created attachment 148544
Patch

The ews-mac probably won&apos;t be happy because I haven&apos;t added the new files to the XCode project yet (I don&apos;t have a mac machine available at the moment).
The C APIs for WKBatteryManager and WKBatteryStatus are not included in this patch and will be provided separately to reduce patch size.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>653384</commentid>
    <comment_count>2</comment_count>
      <attachid>148544</attachid>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2012-06-20 06:11:14 -0700</bug_when>
    <thetext>Comment on attachment 148544
Patch

Attachment 148544 did not pass qt-wk2-ews (qt):
Output: http://queues.webkit.org/results/13006178</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>653388</commentid>
    <comment_count>3</comment_count>
      <attachid>148544</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2012-06-20 06:15:59 -0700</bug_when>
    <thetext>Comment on attachment 148544
Patch

Attachment 148544 did not pass mac-ews (mac):
Output: http://queues.webkit.org/results/13002189</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>653395</commentid>
    <comment_count>4</comment_count>
      <attachid>148548</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2012-06-20 06:23:54 -0700</bug_when>
    <thetext>Created attachment 148548
Patch

Attempt to fix Qt, GTK and Win build.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>653413</commentid>
    <comment_count>5</comment_count>
      <attachid>148548</attachid>
    <who name="Gustavo Noronha (kov)">gustavo</who>
    <bug_when>2012-06-20 06:35:05 -0700</bug_when>
    <thetext>Comment on attachment 148548
Patch

Attachment 148548 did not pass gtk-ews (gtk):
Output: http://queues.webkit.org/results/12999184</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>653421</commentid>
    <comment_count>6</comment_count>
      <attachid>148548</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2012-06-20 06:46:03 -0700</bug_when>
    <thetext>Comment on attachment 148548
Patch

Attachment 148548 did not pass win-ews (win):
Output: http://queues.webkit.org/results/13002196</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>653422</commentid>
    <comment_count>7</comment_count>
      <attachid>148548</attachid>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2012-06-20 06:48:43 -0700</bug_when>
    <thetext>Comment on attachment 148548
Patch

Attachment 148548 did not pass qt-wk2-ews (qt):
Output: http://queues.webkit.org/results/12999191</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>653425</commentid>
    <comment_count>8</comment_count>
      <attachid>148548</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2012-06-20 06:52:39 -0700</bug_when>
    <thetext>Comment on attachment 148548
Patch

Attachment 148548 did not pass mac-ews (mac):
Output: http://queues.webkit.org/results/13003195</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>653505</commentid>
    <comment_count>9</comment_count>
      <attachid>148576</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2012-06-20 08:39:01 -0700</bug_when>
    <thetext>Created attachment 148576
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>653552</commentid>
    <comment_count>10</comment_count>
      <attachid>148584</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2012-06-20 09:34:57 -0700</bug_when>
    <thetext>Created attachment 148584
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>654187</commentid>
    <comment_count>11</comment_count>
      <attachid>148584</attachid>
    <who name="Gyuyoung Kim">gyuyoung.kim</who>
    <bug_when>2012-06-20 20:14:18 -0700</bug_when>
    <thetext>Comment on attachment 148584
Patch

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

&gt; Source/WebKit2/UIProcess/API/C/WKBatteryManager.h:29
&gt; +#if ENABLE(BATTERY_STATUS)

As I mentioned in other bugs, I&apos;m not sure if ENABLE(...) still can be used in WK header files. WK header files have not used ENABLE(...) except for ENABLE(INSPECTOR).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>654263</commentid>
    <comment_count>12</comment_count>
      <attachid>148734</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2012-06-20 22:57:46 -0700</bug_when>
    <thetext>Created attachment 148734
Patch

Take Gyuyoung&apos;s feedback into consideration.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>656335</commentid>
    <comment_count>13</comment_count>
      <attachid>148734</attachid>
    <who name="Kenneth Rohde Christiansen">kenneth</who>
    <bug_when>2012-06-24 19:33:33 -0700</bug_when>
    <thetext>Comment on attachment 148734
Patch

LGTM</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>657077</commentid>
    <comment_count>14</comment_count>
      <attachid>148734</attachid>
    <who name="Gyuyoung Kim">gyuyoung.kim</who>
    <bug_when>2012-06-25 17:49:12 -0700</bug_when>
    <thetext>Comment on attachment 148734
Patch

Looks fine too.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>662424</commentid>
    <comment_count>15</comment_count>
      <attachid>148734</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-07-03 12:15:25 -0700</bug_when>
    <thetext>Comment on attachment 148734
Patch

Rejecting attachment 148734 from commit-queue.

Failed to run &quot;[&apos;/mnt/git/webkit-commit-queue/Tools/Scripts/webkit-patch&apos;, &apos;--status-host=queues.webkit.org&apos;, &apos;-...&quot; exit_code: 2

Last 500 characters of output:
t/git/webkit-commit-queue/Source/WebKit/chromium/v8 --revision 11978 --non-interactive --force --accept theirs-conflict --ignore-externals&apos; in &apos;/mnt/git/webkit-commit-queue/Source/WebKit/chromium&apos;
47&gt;At revision 11978.

________ running &apos;/usr/bin/python tools/clang/scripts/update.py --mac-only&apos; in &apos;/mnt/git/webkit-commit-queue/Source/WebKit/chromium&apos;

________ running &apos;/usr/bin/python gyp_webkit&apos; in &apos;/mnt/git/webkit-commit-queue/Source/WebKit/chromium&apos;
Updating webkit projects from gyp files...

Full output: http://queues.webkit.org/results/13126546</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>662433</commentid>
    <comment_count>16</comment_count>
      <attachid>148734</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2012-07-03 12:21:18 -0700</bug_when>
    <thetext>Comment on attachment 148734
Patch

Error is &quot;Could not resolve hostname `svn.webkit.org&apos;&quot;. Seems unrelated so resetting cq flag.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>662562</commentid>
    <comment_count>17</comment_count>
      <attachid>148734</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-07-03 16:34:12 -0700</bug_when>
    <thetext>Comment on attachment 148734
Patch

Clearing flags on attachment: 148734

Committed r121808: &lt;http://trac.webkit.org/changeset/121808&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>662563</commentid>
    <comment_count>18</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-07-03 16:34:19 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>148544</attachid>
            <date>2012-06-20 05:59:41 -0700</date>
            <delta_ts>2012-06-20 06:23:54 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>89558_battery_status_wk2.patch</filename>
            <type>text/plain</type>
            <size>68450</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NNYWtlTGlzdHMudHh0IGIvU291cmNlL1dlYktp
dDIvQ01ha2VMaXN0cy50eHQKaW5kZXggNDVkYmUyNC4uZmU1MTQ4NSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdDIvQ01ha2VMaXN0cy50eHQKKysrIGIvU291cmNlL1dlYktpdDIvQ01ha2VMaXN0
cy50eHQKQEAgLTIyLDYgKzIyLDcgQEAgU0VUKFdlYktpdDJfSU5DTFVERV9ESVJFQ1RPUklFUwog
ICAgICIke1dFQktJVDJfRElSfS9XZWJQcm9jZXNzIgogICAgICIke1dFQktJVDJfRElSfS9XZWJQ
cm9jZXNzL0FwcGxpY2F0aW9uQ2FjaGUiCiAgICAgIiR7V0VCS0lUMl9ESVJ9L1dlYlByb2Nlc3Mv
QXV0aGVudGljYXRpb24iCisgICAgIiR7V0VCS0lUMl9ESVJ9L1dlYlByb2Nlc3MvQmF0dGVyeSIK
ICAgICAiJHtXRUJLSVQyX0RJUn0vV2ViUHJvY2Vzcy9Db29raWVzIgogICAgICIke1dFQktJVDJf
RElSfS9XZWJQcm9jZXNzL0Rvd25sb2FkcyIKICAgICAiJHtXRUJLSVQyX0RJUn0vV2ViUHJvY2Vz
cy9GdWxsU2NyZWVuIgpAQCAtMTM3LDYgKzEzOCw3IEBAIFNFVChXZWJLaXQyX1NPVVJDRVMKICAg
ICBTaGFyZWQvVXBkYXRlSW5mby5jcHAKICAgICBTaGFyZWQvVmlzaXRlZExpbmtUYWJsZS5jcHAK
ICAgICBTaGFyZWQvV2ViQmFja0ZvcndhcmRMaXN0SXRlbS5jcHAKKyAgICBTaGFyZWQvV2ViQmF0
dGVyeVN0YXR1cy5jcHAKICAgICBTaGFyZWQvV2ViQ29ubmVjdGlvbi5jcHAKICAgICBTaGFyZWQv
V2ViQ29ubmVjdGlvbkNsaWVudC5jcHAKICAgICBTaGFyZWQvV2ViQ29udGV4dE1lbnVJdGVtLmNw
cApAQCAtMjE0LDYgKzIxNiw4IEBAIFNFVChXZWJLaXQyX1NPVVJDRVMKICAgICBVSVByb2Nlc3Mv
VmlzaXRlZExpbmtQcm92aWRlci5jcHAKICAgICBVSVByb2Nlc3MvV2ViQXBwbGljYXRpb25DYWNo
ZU1hbmFnZXJQcm94eS5jcHAKICAgICBVSVByb2Nlc3MvV2ViQmFja0ZvcndhcmRMaXN0LmNwcAor
ICAgIFVJUHJvY2Vzcy9XZWJCYXR0ZXJ5TWFuYWdlclByb3h5LmNwcAorICAgIFVJUHJvY2Vzcy9X
ZWJCYXR0ZXJ5UHJvdmlkZXIuY3BwCiAgICAgVUlQcm9jZXNzL1dlYkNvbm5lY3Rpb25Ub1dlYlBy
b2Nlc3MuY3BwCiAgICAgVUlQcm9jZXNzL1dlYkNvbnRleHQuY3BwCiAgICAgVUlQcm9jZXNzL1dl
YkNvbnRleHRDb25uZWN0aW9uQ2xpZW50LmNwcApAQCAtMjY0LDYgKzI2OCw3IEBAIFNFVChXZWJL
aXQyX1NPVVJDRVMKICAgICBVSVByb2Nlc3MvQVBJL0MvV0tBdXRoZW50aWNhdGlvbkRlY2lzaW9u
TGlzdGVuZXIuY3BwCiAgICAgVUlQcm9jZXNzL0FQSS9DL1dLQmFja0ZvcndhcmRMaXN0LmNwcAog
ICAgIFVJUHJvY2Vzcy9BUEkvQy9XS0JhY2tGb3J3YXJkTGlzdEl0ZW0uY3BwCisgICAgVUlQcm9j
ZXNzL0FQSS9DL1dLQmF0dGVyeU1hbmFnZXIuY3BwCiAgICAgVUlQcm9jZXNzL0FQSS9DL1dLQ29u
dGV4dC5jcHAKICAgICBVSVByb2Nlc3MvQVBJL0MvV0tDb29raWVNYW5hZ2VyLmNwcAogICAgIFVJ
UHJvY2Vzcy9BUEkvQy9XS0NyZWRlbnRpYWwuY3BwCkBAIC0zMjcsNiArMzMyLDggQEAgU0VUKFdl
YktpdDJfU09VUkNFUwogCiAgICAgV2ViUHJvY2Vzcy9BdXRoZW50aWNhdGlvbi9BdXRoZW50aWNh
dGlvbk1hbmFnZXIuY3BwCiAKKyAgICBXZWJQcm9jZXNzL0JhdHRlcnkvV2ViQmF0dGVyeU1hbmFn
ZXIuY3BwCisKICAgICBXZWJQcm9jZXNzL0Nvb2tpZXMvV2ViQ29va2llTWFuYWdlci5jcHAKIAog
ICAgIFdlYlByb2Nlc3MvRG93bmxvYWRzL0Rvd25sb2FkLmNwcApAQCAtNDAwLDYgKzQwNyw3IEBA
IFNFVChXZWJLaXQyX1NPVVJDRVMKIAogICAgIFdlYlByb2Nlc3MvUmVzb3VyY2VDYWNoZS9XZWJS
ZXNvdXJjZUNhY2hlTWFuYWdlci5jcHAKIAorICAgIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQv
V2ViQmF0dGVyeUNsaWVudC5jcHAKICAgICBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNo
cm9tZUNsaWVudC5jcHAKICAgICBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNvbnRleHRN
ZW51Q2xpZW50LmNwcAogICAgIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRGF0YWJhc2VN
YW5hZ2VyLmNwcApAQCAtNDQ1LDYgKzQ1Myw3IEBAIFNFVChXZWJLaXQyX01FU1NBR0VTX0lOX0ZJ
TEVTCiAgICAgVUlQcm9jZXNzL0RyYXdpbmdBcmVhUHJveHkubWVzc2FnZXMuaW4KICAgICBVSVBy
b2Nlc3MvTGF5ZXJUcmVlSG9zdFByb3h5Lm1lc3NhZ2VzLmluCiAgICAgVUlQcm9jZXNzL1dlYkFw
cGxpY2F0aW9uQ2FjaGVNYW5hZ2VyUHJveHkubWVzc2FnZXMuaW4KKyAgICBVSVByb2Nlc3MvV2Vi
QmF0dGVyeU1hbmFnZXJQcm94eS5tZXNzYWdlcy5pbgogICAgIFVJUHJvY2Vzcy9XZWJDb250ZXh0
Lm1lc3NhZ2VzLmluCiAgICAgVUlQcm9jZXNzL1dlYkNvb2tpZU1hbmFnZXJQcm94eS5tZXNzYWdl
cy5pbgogICAgIFVJUHJvY2Vzcy9XZWJEYXRhYmFzZU1hbmFnZXJQcm94eS5tZXNzYWdlcy5pbgpA
QCAtNDcwLDYgKzQ3OSw4IEBAIFNFVChXZWJLaXQyX01FU1NBR0VTX0lOX0ZJTEVTCiAKICAgICBX
ZWJQcm9jZXNzL0F1dGhlbnRpY2F0aW9uL0F1dGhlbnRpY2F0aW9uTWFuYWdlci5tZXNzYWdlcy5p
bgogCisgICAgV2ViUHJvY2Vzcy9CYXR0ZXJ5L1dlYkJhdHRlcnlNYW5hZ2VyLm1lc3NhZ2VzLmlu
CisKICAgICBXZWJQcm9jZXNzL0Nvb2tpZXMvV2ViQ29va2llTWFuYWdlci5tZXNzYWdlcy5pbgog
CiAgICAgV2ViUHJvY2Vzcy9GdWxsU2NyZWVuL1dlYkZ1bGxTY3JlZW5NYW5hZ2VyLm1lc3NhZ2Vz
LmluCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0
Mi9DaGFuZ2VMb2cKaW5kZXggOWY3NmY4YS4uYzI2MWE3NCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdDIvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsx
LDEwMyBAQAorMjAxMi0wNi0yMCAgQ2hyaXN0b3BoZSBEdW1leiAgPGNocmlzdG9waGUuZHVtZXpA
aW50ZWwuY29tPgorCisgICAgICAgIFtXSzJdIEFkZCBzdXBwb3J0IGZvciBCYXR0ZXJ5IFN0YXR1
cyBBUEkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTg5
NTU4CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRk
IHN1cHBvcnQgZm9yIEJhdHRlcnkgU3RhdHVzIEFQSSB0byBXZWJLaXQyLgorCisgICAgICAgICog
Q01ha2VMaXN0cy50eHQ6CisgICAgICAgICogR05VbWFrZWZpbGUuYW06CisgICAgICAgICogR05V
bWFrZWZpbGUubGlzdC5hbToKKyAgICAgICAgKiBQbGF0Zm9ybS9Db3JlSVBDL01lc3NhZ2VJRC5o
OgorICAgICAgICAqIFNoYXJlZC9BUEkvYy9XS0Jhc2UuaDoKKyAgICAgICAgKiBTaGFyZWQvQVBJ
T2JqZWN0Lmg6CisgICAgICAgICogU2hhcmVkL1dlYkJhdHRlcnlTdGF0dXMuY3BwOiBBZGRlZC4K
KyAgICAgICAgKFdlYktpdCk6CisgICAgICAgIChXZWJLaXQ6OldlYkJhdHRlcnlTdGF0dXM6Oldl
YkJhdHRlcnlTdGF0dXMpOgorICAgICAgICAoV2ViS2l0OjpXZWJCYXR0ZXJ5U3RhdHVzOjp+V2Vi
QmF0dGVyeVN0YXR1cyk6CisgICAgICAgIChXZWJLaXQ6OldlYkJhdHRlcnlTdGF0dXM6OkRhdGE6
OmVuY29kZSk6CisgICAgICAgIChXZWJLaXQ6OldlYkJhdHRlcnlTdGF0dXM6OkRhdGE6OmRlY29k
ZSk6CisgICAgICAgICogU2hhcmVkL1dlYkJhdHRlcnlTdGF0dXMuaDogQWRkZWQuCisgICAgICAg
IChXZWJLaXQpOgorICAgICAgICAoV2ViQmF0dGVyeVN0YXR1cyk6CisgICAgICAgIChEYXRhKToK
KyAgICAgICAgKFdlYktpdDo6V2ViQmF0dGVyeVN0YXR1czo6Y3JlYXRlKToKKyAgICAgICAgKFdl
YktpdDo6V2ViQmF0dGVyeVN0YXR1czo6aXNDaGFyZ2luZyk6CisgICAgICAgIChXZWJLaXQ6Oldl
YkJhdHRlcnlTdGF0dXM6OmNoYXJnaW5nVGltZSk6CisgICAgICAgIChXZWJLaXQ6OldlYkJhdHRl
cnlTdGF0dXM6OmRpc2NoYXJnaW5nVGltZSk6CisgICAgICAgIChXZWJLaXQ6OldlYkJhdHRlcnlT
dGF0dXM6OmxldmVsKToKKyAgICAgICAgKFdlYktpdDo6V2ViQmF0dGVyeVN0YXR1czo6ZGF0YSk6
CisgICAgICAgIChXZWJLaXQ6OldlYkJhdHRlcnlTdGF0dXM6OnR5cGUpOgorICAgICAgICAqIFRh
cmdldC5wcmk6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9DL1dLQVBJQ2FzdC5oOgorICAgICAg
ICAoV2ViS2l0KToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0MvV0tCYXR0ZXJ5TWFuYWdlci5j
cHA6IEFkZGVkLgorICAgICAgICAoV0tCYXR0ZXJ5TWFuYWdlckdldFR5cGVJRCk6CisgICAgICAg
ICogVUlQcm9jZXNzL0FQSS9DL1dLQmF0dGVyeU1hbmFnZXIuaDogQWRkZWQuCisgICAgICAgICog
VUlQcm9jZXNzL0FQSS9DL1dlYktpdDIuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViQmF0dGVy
eU1hbmFnZXJQcm94eS5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViS2l0KToKKyAgICAgICAgKFdl
YktpdDo6V2ViQmF0dGVyeU1hbmFnZXJQcm94eTo6Y3JlYXRlKToKKyAgICAgICAgKFdlYktpdDo6
V2ViQmF0dGVyeU1hbmFnZXJQcm94eTo6V2ViQmF0dGVyeU1hbmFnZXJQcm94eSk6CisgICAgICAg
IChXZWJLaXQ6OldlYkJhdHRlcnlNYW5hZ2VyUHJveHk6On5XZWJCYXR0ZXJ5TWFuYWdlclByb3h5
KToKKyAgICAgICAgKFdlYktpdDo6V2ViQmF0dGVyeU1hbmFnZXJQcm94eTo6aW52YWxpZGF0ZSk6
CisgICAgICAgIChXZWJLaXQ6OldlYkJhdHRlcnlNYW5hZ2VyUHJveHk6OmluaXRpYWxpemVQcm92
aWRlcik6CisgICAgICAgIChXZWJLaXQ6OldlYkJhdHRlcnlNYW5hZ2VyUHJveHk6OmRpZFJlY2Vp
dmVNZXNzYWdlKToKKyAgICAgICAgKFdlYktpdDo6V2ViQmF0dGVyeU1hbmFnZXJQcm94eTo6c3Rh
cnRVcGRhdGluZyk6CisgICAgICAgIChXZWJLaXQ6OldlYkJhdHRlcnlNYW5hZ2VyUHJveHk6OnN0
b3BVcGRhdGluZyk6CisgICAgICAgIChXZWJLaXQ6OldlYkJhdHRlcnlNYW5hZ2VyUHJveHk6OnBy
b3ZpZGVyRGlkQ2hhbmdlQmF0dGVyeVN0YXR1cyk6CisgICAgICAgIChXZWJLaXQ6OldlYkJhdHRl
cnlNYW5hZ2VyUHJveHk6OnByb3ZpZGVyVXBkYXRlQmF0dGVyeVN0YXR1cyk6CisgICAgICAgICog
VUlQcm9jZXNzL1dlYkJhdHRlcnlNYW5hZ2VyUHJveHkuaDogQWRkZWQuCisgICAgICAgIChDb3Jl
SVBDKToKKyAgICAgICAgKFdlYktpdCk6CisgICAgICAgIChXZWJCYXR0ZXJ5TWFuYWdlclByb3h5
KToKKyAgICAgICAgKFdlYktpdDo6V2ViQmF0dGVyeU1hbmFnZXJQcm94eTo6Y2xlYXJDb250ZXh0
KToKKyAgICAgICAgKFdlYktpdDo6V2ViQmF0dGVyeU1hbmFnZXJQcm94eTo6dHlwZSk6CisgICAg
ICAgICogVUlQcm9jZXNzL1dlYkJhdHRlcnlNYW5hZ2VyUHJveHkubWVzc2FnZXMuaW46IEFkZGVk
LgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJCYXR0ZXJ5UHJvdmlkZXIuY3BwOiBBZGRlZC4KKyAg
ICAgICAgKFdlYktpdCk6CisgICAgICAgIChXZWJLaXQ6OldlYkJhdHRlcnlQcm92aWRlcjo6c3Rh
cnRVcGRhdGluZyk6CisgICAgICAgIChXZWJLaXQ6OldlYkJhdHRlcnlQcm92aWRlcjo6c3RvcFVw
ZGF0aW5nKToKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViQmF0dGVyeVByb3ZpZGVyLmg6IEFkZGVk
LgorICAgICAgICAoV2ViS2l0KToKKyAgICAgICAgKFdlYkJhdHRlcnlQcm92aWRlcik6CisgICAg
ICAgICogV2ViS2l0Mi5wcmk6CisgICAgICAgICogV2ViUHJvY2Vzcy9CYXR0ZXJ5L1dlYkJhdHRl
cnlNYW5hZ2VyLmNwcDogQWRkZWQuCisgICAgICAgIChXZWJLaXQpOgorICAgICAgICAoV2ViS2l0
OjpXZWJCYXR0ZXJ5TWFuYWdlcjo6V2ViQmF0dGVyeU1hbmFnZXIpOgorICAgICAgICAoV2ViS2l0
OjpXZWJCYXR0ZXJ5TWFuYWdlcjo6fldlYkJhdHRlcnlNYW5hZ2VyKToKKyAgICAgICAgKFdlYktp
dDo6V2ViQmF0dGVyeU1hbmFnZXI6OmRpZFJlY2VpdmVNZXNzYWdlKToKKyAgICAgICAgKFdlYktp
dDo6V2ViQmF0dGVyeU1hbmFnZXI6OnJlZ2lzdGVyV2ViUGFnZSk6CisgICAgICAgIChXZWJLaXQ6
OldlYkJhdHRlcnlNYW5hZ2VyOjp1bnJlZ2lzdGVyV2ViUGFnZSk6CisgICAgICAgIChXZWJLaXQ6
OldlYkJhdHRlcnlNYW5hZ2VyOjpkaWRDaGFuZ2VCYXR0ZXJ5U3RhdHVzKToKKyAgICAgICAgKFdl
YktpdDo6V2ViQmF0dGVyeU1hbmFnZXI6OnVwZGF0ZUJhdHRlcnlTdGF0dXMpOgorICAgICAgICAq
IFdlYlByb2Nlc3MvQmF0dGVyeS9XZWJCYXR0ZXJ5TWFuYWdlci5oOiBBZGRlZC4KKyAgICAgICAg
KENvcmVJUEMpOgorICAgICAgICAoV2ViS2l0KToKKyAgICAgICAgKFdlYkJhdHRlcnlNYW5hZ2Vy
KToKKyAgICAgICAgKiBXZWJQcm9jZXNzL0JhdHRlcnkvV2ViQmF0dGVyeU1hbmFnZXIubWVzc2Fn
ZXMuaW46IEFkZGVkLgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQmF0
dGVyeUNsaWVudC5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViS2l0KToKKyAgICAgICAgKFdlYktp
dDo6V2ViQmF0dGVyeUNsaWVudDo6c3RhcnRVcGRhdGluZyk6CisgICAgICAgIChXZWJLaXQ6Oldl
YkJhdHRlcnlDbGllbnQ6OnN0b3BVcGRhdGluZyk6CisgICAgICAgIChXZWJLaXQ6OldlYkJhdHRl
cnlDbGllbnQ6OmJhdHRlcnlDb250cm9sbGVyRGVzdHJveWVkKToKKyAgICAgICAgKiBXZWJQcm9j
ZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkJhdHRlcnlDbGllbnQuaDogQWRkZWQuCisgICAgICAgIChX
ZWJLaXQpOgorICAgICAgICAoV2ViQmF0dGVyeUNsaWVudCk6CisgICAgICAgIChXZWJLaXQ6Oldl
YkJhdHRlcnlDbGllbnQ6OldlYkJhdHRlcnlDbGllbnQpOgorICAgICAgICAoV2ViS2l0OjpXZWJC
YXR0ZXJ5Q2xpZW50Ojp+V2ViQmF0dGVyeUNsaWVudCk6CisgICAgICAgICogV2ViUHJvY2Vzcy9X
ZWJQcm9jZXNzLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzczo6V2ViUHJvY2Vzcyk6
CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3M6OmRpZFJlY2VpdmVNZXNzYWdlKToKKyAgICAg
ICAgKiBXZWJQcm9jZXNzL1dlYlByb2Nlc3MuaDoKKyAgICAgICAgKFdlYlByb2Nlc3MpOgorICAg
ICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzOjpiYXR0ZXJ5TWFuYWdlcik6CisgICAgICAgICogd2lu
L1dlYktpdDIudmNwcm9qOgorICAgICAgICAqIHdpbi9XZWJLaXQyQ29tbW9uLnZzcHJvcHM6Cisg
ICAgICAgICogd2luL1dlYktpdDJHZW5lcmF0ZWQubWFrZToKKwogMjAxMi0wNi0xOSAgUnl1YW4g
Q2hvaSAgPHJ5dWFuLmNob2lAc2Ftc3VuZy5jb20+CiAKICAgICAgICAgW0VGTF1bUmVncmVzc2lv
bl0gQnVpbGQgYnJlYWsgYWZ0ZXIgcjEyMDc4NgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIv
R05VbWFrZWZpbGUuYW0gYi9Tb3VyY2UvV2ViS2l0Mi9HTlVtYWtlZmlsZS5hbQppbmRleCAwMTZk
NjgxLi4wMWRkNDBjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9HTlVtYWtlZmlsZS5hbQor
KysgYi9Tb3VyY2UvV2ViS2l0Mi9HTlVtYWtlZmlsZS5hbQpAQCAtNTksNiArNTksNyBAQCBsaWJ3
ZWJraXQyZ3RrX0BXRUJLSVRHVEtfQVBJX01BSk9SX1ZFUlNJT05AX0BXRUJLSVRHVEtfQVBJX01J
Tk9SX1ZFUlNJT05AX2xhX0NQUAogCS1JJChzcmNkaXIpL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nl
c3MgXAogCS1JJChzcmNkaXIpL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvQXBwbGljYXRpb25D
YWNoZSBcCiAJLUkkKHNyY2RpcikvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9BdXRoZW50aWNh
dGlvbiBcCisJLUkkKHNyY2RpcikvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9CYXR0ZXJ5IFwK
IAktSSQoc3JjZGlyKS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0Nvb2tpZXMgXAogCS1JJChz
cmNkaXIpL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvRG93bmxvYWRzIFwKIAktSSQoc3JjZGly
KS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0Z1bGxTY3JlZW4gXApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdDIvR05VbWFrZWZpbGUubGlzdC5hbSBiL1NvdXJjZS9XZWJLaXQyL0dOVW1ha2Vm
aWxlLmxpc3QuYW0KaW5kZXggMzUyMzkxOC4uY2QyZWJkMSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdDIvR05VbWFrZWZpbGUubGlzdC5hbQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9HTlVtYWtlZmls
ZS5saXN0LmFtCkBAIC00Nyw2ICs0Nyw3IEBAIHdlYmtpdDJfaF9hcGkgKz0gXAogCSQoV2ViS2l0
MikvVUlQcm9jZXNzL0FQSS9DL1dLQXV0aGVudGljYXRpb25EZWNpc2lvbkxpc3RlbmVyLmggXAog
CSQoV2ViS2l0MikvVUlQcm9jZXNzL0FQSS9DL1dLQmFja0ZvcndhcmRMaXN0LmggXAogCSQoV2Vi
S2l0MikvVUlQcm9jZXNzL0FQSS9DL1dLQmFja0ZvcndhcmRMaXN0SXRlbS5oIFwKKwkkKFdlYktp
dDIpL1VJUHJvY2Vzcy9BUEkvQy9XS0JhdHRlcnlNYW5hZ2VyLmggXAogCSQoV2ViS2l0MikvVUlQ
cm9jZXNzL0FQSS9DL1dLQ29udGV4dC5oIFwKIAkkKFdlYktpdDIpL1VJUHJvY2Vzcy9BUEkvQy9X
S0NvbnRleHRQcml2YXRlLmggXAogCSQoV2ViS2l0MikvVUlQcm9jZXNzL0FQSS9DL1dLQ29va2ll
TWFuYWdlci5oIFwKQEAgLTE0Nyw2ICsxNDgsMTAgQEAgd2Via2l0Ml9idWlsdF9zb3VyY2VzICs9
IFwKIAlEZXJpdmVkU291cmNlcy9XZWJLaXQyL1dlYkFwcGxpY2F0aW9uQ2FjaGVNYW5hZ2VyTWVz
c2FnZXMuaCBcCiAJRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9XZWJBcHBsaWNhdGlvbkNhY2hlTWFu
YWdlclByb3h5TWVzc2FnZVJlY2VpdmVyLmNwcCBcCiAJRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9X
ZWJBcHBsaWNhdGlvbkNhY2hlTWFuYWdlclByb3h5TWVzc2FnZXMuaCBcCisJRGVyaXZlZFNvdXJj
ZXMvV2ViS2l0Mi9XZWJCYXR0ZXJ5TWFuYWdlck1lc3NhZ2VSZWNlaXZlci5jcHAgXAorCURlcml2
ZWRTb3VyY2VzL1dlYktpdDIvV2ViQmF0dGVyeU1hbmFnZXJNZXNzYWdlcy5oIFwKKwlEZXJpdmVk
U291cmNlcy9XZWJLaXQyL1dlYkJhdHRlcnlNYW5hZ2VyUHJveHlNZXNzYWdlUmVjZWl2ZXIuY3Bw
IFwKKwlEZXJpdmVkU291cmNlcy9XZWJLaXQyL1dlYkJhdHRlcnlNYW5hZ2VyUHJveHlNZXNzYWdl
cy5oIFwKIAlEZXJpdmVkU291cmNlcy9XZWJLaXQyL1dlYkNvbnRleHRNZXNzYWdlUmVjZWl2ZXIu
Y3BwIFwKIAlEZXJpdmVkU291cmNlcy9XZWJLaXQyL1dlYkNvbnRleHRNZXNzYWdlcy5oIFwKIAlE
ZXJpdmVkU291cmNlcy9XZWJLaXQyL1dlYkNvb2tpZU1hbmFnZXJNZXNzYWdlUmVjZWl2ZXIuY3Bw
IFwKQEAgLTQxNiw2ICs0MjEsOCBAQCB3ZWJraXQyX3NvdXJjZXMgKz0gXAogCVNvdXJjZS9XZWJL
aXQyL1NoYXJlZC9WaXNpdGVkTGlua1RhYmxlLmggXAogCVNvdXJjZS9XZWJLaXQyL1NoYXJlZC9X
ZWJCYWNrRm9yd2FyZExpc3RJdGVtLmNwcCBcCiAJU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYkJh
Y2tGb3J3YXJkTGlzdEl0ZW0uaCBcCisJU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYkJhdHRlcnlT
dGF0dXMuY3BwIFwKKwlTb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViQmF0dGVyeVN0YXR1cy5oIFwK
IAlTb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViQ2VydGlmaWNhdGVJbmZvLmggXAogCVNvdXJjZS9X
ZWJLaXQyL1NoYXJlZC9XZWJDb25uZWN0aW9uLmNwcCBcCiAJU291cmNlL1dlYktpdDIvU2hhcmVk
L1dlYkNvbm5lY3Rpb24uaCBcCkBAIC01MDAsNiArNTA3LDggQEAgd2Via2l0Ml9zb3VyY2VzICs9
IFwKIAlTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tCYWNrRm9yd2FyZExpc3QuaCBc
CiAJU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLQmFja0ZvcndhcmRMaXN0SXRlbS5j
cHAgXAogCVNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS0JhY2tGb3J3YXJkTGlzdEl0
ZW0uaCBcCisJU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLQmF0dGVyeU1hbmFnZXIu
Y3BwIFwKKwlTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tCYXR0ZXJ5TWFuYWdlci5o
IFwKIAlTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tDb250ZXh0LmNwcCBcCiAJU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLQ29udGV4dC5oIFwKIAlTb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvQVBJL0MvV0tDb250ZXh0UHJpdmF0ZS5oIFwKQEAgLTc1Niw2ICs3NjUsMTAg
QEAgd2Via2l0Ml9zb3VyY2VzICs9IFwKIAlTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViQXBw
bGljYXRpb25DYWNoZU1hbmFnZXJQcm94eS5jcHAgXAogCVNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9XZWJCYWNrRm9yd2FyZExpc3QuY3BwIFwKIAlTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2Vi
QmFja0ZvcndhcmRMaXN0LmggXAorCVNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJCYXR0ZXJ5
TWFuYWdlclByb3h5LmNwcCBcCisJU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkJhdHRlcnlN
YW5hZ2VyUHJveHkuaCBcCisJU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkJhdHRlcnlQcm92
aWRlci5jcHAgXAorCVNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJCYXR0ZXJ5UHJvdmlkZXIu
aCBcCiAJU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkNvbm5lY3Rpb25Ub1dlYlByb2Nlc3Mu
Y3BwIFwKIAlTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViQ29ubmVjdGlvblRvV2ViUHJvY2Vz
cy5oIFwKIAlTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViQ29udGV4dC5jcHAgXApAQCAtODQ5
LDYgKzg2Miw4IEBAIHdlYmtpdDJfc291cmNlcyArPSBcCiAJU291cmNlL1dlYktpdDIvV2ViUHJv
Y2Vzcy9BcHBsaWNhdGlvbkNhY2hlL1dlYkFwcGxpY2F0aW9uQ2FjaGVNYW5hZ2VyLmNwcCBcCiAJ
U291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9BdXRoZW50aWNhdGlvbi9BdXRoZW50aWNhdGlvbk1h
bmFnZXIuY3BwIFwKIAlTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0F1dGhlbnRpY2F0aW9uL0F1
dGhlbnRpY2F0aW9uTWFuYWdlci5oIFwKKwlTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0JhdHRl
cnkvV2ViQmF0dGVyeU1hbmFnZXIuY3BwIFwKKwlTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0Jh
dHRlcnkvV2ViQmF0dGVyeU1hbmFnZXIuaCBcCiAJU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9D
b29raWVzL1dlYkNvb2tpZU1hbmFnZXIuaCBcCiAJU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9D
b29raWVzL1dlYkNvb2tpZU1hbmFnZXIuY3BwIFwKIAlTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNz
L0Nvb2tpZXMvc291cC9XZWJDb29raWVNYW5hZ2VyU291cC5jcHAgXApAQCAtOTk3LDYgKzEwMTIs
OCBAQCB3ZWJraXQyX3NvdXJjZXMgKz0gXAogCVNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2Vi
Q29yZVN1cHBvcnQvc291cC9XZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0LmNwcCBcCiAJU291cmNl
L1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9zb3VwL1dlYkZyYW1lTmV0d29ya2lu
Z0NvbnRleHQuaCBcCiAJU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9X
ZWJBbHRlcm5hdGl2ZVRleHRDbGllbnQuaCBcCisJU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9X
ZWJDb3JlU3VwcG9ydC9XZWJCYXR0ZXJ5Q2xpZW50LmNwcCBcCisJU291cmNlL1dlYktpdDIvV2Vi
UHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJCYXR0ZXJ5Q2xpZW50LmggXAogCVNvdXJjZS9XZWJL
aXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNwcCBcCiAJU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaCBc
CiAJU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDb250ZXh0TWVu
dUNsaWVudC5jcHAgXApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvUGxhdGZvcm0vQ29yZUlQ
Qy9NZXNzYWdlSUQuaCBiL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL0NvcmVJUEMvTWVzc2FnZUlE
LmgKaW5kZXggNWYzOThhYS4uZDU0MTc2ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvUGxh
dGZvcm0vQ29yZUlQQy9NZXNzYWdlSUQuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9D
b3JlSVBDL01lc3NhZ2VJRC5oCkBAIC00MCw2ICs0MCw3IEBAIGVudW0gTWVzc2FnZUNsYXNzIHsK
ICAgICBNZXNzYWdlQ2xhc3NJbmplY3RlZEJ1bmRsZSwKICAgICBNZXNzYWdlQ2xhc3NMYXllclRy
ZWVIb3N0LAogICAgIE1lc3NhZ2VDbGFzc1dlYkFwcGxpY2F0aW9uQ2FjaGVNYW5hZ2VyLAorICAg
IE1lc3NhZ2VDbGFzc1dlYkJhdHRlcnlNYW5hZ2VyUHJveHksCiAgICAgTWVzc2FnZUNsYXNzV2Vi
Q29va2llTWFuYWdlciwKICAgICBNZXNzYWdlQ2xhc3NXZWJEYXRhYmFzZU1hbmFnZXIsCiAgICAg
TWVzc2FnZUNsYXNzV2ViRnVsbFNjcmVlbk1hbmFnZXIsCkBAIC02Miw2ICs2Myw3IEBAIGVudW0g
TWVzc2FnZUNsYXNzIHsKICAgICBNZXNzYWdlQ2xhc3NEcmF3aW5nQXJlYVByb3h5LAogICAgIE1l
c3NhZ2VDbGFzc0xheWVyVHJlZUhvc3RQcm94eSwKICAgICBNZXNzYWdlQ2xhc3NXZWJBcHBsaWNh
dGlvbkNhY2hlTWFuYWdlclByb3h5LAorICAgIE1lc3NhZ2VDbGFzc1dlYkJhdHRlcnlNYW5hZ2Vy
LAogICAgIE1lc3NhZ2VDbGFzc1dlYkNvbnRleHQsCiAgICAgTWVzc2FnZUNsYXNzV2ViQ29udGV4
dExlZ2FjeSwKICAgICBNZXNzYWdlQ2xhc3NXZWJDb29raWVNYW5hZ2VyUHJveHksCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQVBJL2MvV0tCYXNlLmggYi9Tb3VyY2UvV2ViS2l0
Mi9TaGFyZWQvQVBJL2MvV0tCYXNlLmgKaW5kZXggMzdhNjRmMC4uMDE0NzE0YyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL0FQSS9jL1dLQmFzZS5oCisrKyBiL1NvdXJjZS9XZWJL
aXQyL1NoYXJlZC9BUEkvYy9XS0Jhc2UuaApAQCAtODIsNiArODIsOCBAQCB0eXBlZGVmIGNvbnN0
IHN0cnVjdCBPcGFxdWVXS0F1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlKiBXS0F1dGhlbnRpY2F0aW9u
Q2hhbGxlbmdlUgogdHlwZWRlZiBjb25zdCBzdHJ1Y3QgT3BhcXVlV0tBdXRoZW50aWNhdGlvbkRl
Y2lzaW9uTGlzdGVuZXIqIFdLQXV0aGVudGljYXRpb25EZWNpc2lvbkxpc3RlbmVyUmVmOwogdHlw
ZWRlZiBjb25zdCBzdHJ1Y3QgT3BhcXVlV0tCYWNrRm9yd2FyZExpc3QqIFdLQmFja0ZvcndhcmRM
aXN0UmVmOwogdHlwZWRlZiBjb25zdCBzdHJ1Y3QgT3BhcXVlV0tCYWNrRm9yd2FyZExpc3RJdGVt
KiBXS0JhY2tGb3J3YXJkTGlzdEl0ZW1SZWY7Cit0eXBlZGVmIGNvbnN0IHN0cnVjdCBPcGFxdWVX
S0JhdHRlcnlNYW5hZ2VyKiBXS0JhdHRlcnlNYW5hZ2VyUmVmOwordHlwZWRlZiBjb25zdCBzdHJ1
Y3QgT3BhcXVlV0tCYXR0ZXJ5U3RhdHVzKiBXS0JhdHRlcnlTdGF0dXNSZWY7CiB0eXBlZGVmIGNv
bnN0IHN0cnVjdCBPcGFxdWVXS1Jlc291cmNlQ2FjaGVNYW5hZ2VyKiBXS1Jlc291cmNlQ2FjaGVN
YW5hZ2VyUmVmOwogdHlwZWRlZiBjb25zdCBzdHJ1Y3QgT3BhcXVlV0tDb250ZXh0KiBXS0NvbnRl
eHRSZWY7CiB0eXBlZGVmIGNvbnN0IHN0cnVjdCBPcGFxdWVXS0Nvb2tpZU1hbmFnZXIqIFdLQ29v
a2llTWFuYWdlclJlZjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9BUElPYmpl
Y3QuaCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9BUElPYmplY3QuaAppbmRleCBlYWQ3NGYwLi44
MzBmZWU4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQVBJT2JqZWN0LmgKKysr
IGIvU291cmNlL1dlYktpdDIvU2hhcmVkL0FQSU9iamVjdC5oCkBAIC03Miw2ICs3Miw4IEBAIHB1
YmxpYzoKICAgICAgICAgVHlwZUFwcGxpY2F0aW9uQ2FjaGVNYW5hZ2VyLAogICAgICAgICBUeXBl
QmFja0ZvcndhcmRMaXN0LAogICAgICAgICBUeXBlQmFja0ZvcndhcmRMaXN0SXRlbSwKKyAgICAg
ICAgVHlwZUJhdHRlcnlNYW5hZ2VyLAorICAgICAgICBUeXBlQmF0dGVyeVN0YXR1cywKICAgICAg
ICAgVHlwZUNhY2hlTWFuYWdlciwKICAgICAgICAgVHlwZUNvbnRleHQsCiAgICAgICAgIFR5cGVD
b29raWVNYW5hZ2VyLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYkJhdHRl
cnlTdGF0dXMuY3BwIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYkJhdHRlcnlTdGF0dXMuY3Bw
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmI3NTIyMWEKLS0tIC9kZXYvbnVs
bAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViQmF0dGVyeVN0YXR1cy5jcHAKQEAgLTAs
MCArMSw1NiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMiBJbnRlbCBDb3Jwb3JhdGlvbi4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICog
YXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFp
biB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMg
aW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHBy
b3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBS
T1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBB
TkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZ
IEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQu
IElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUg
TElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhF
TVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklD
RVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJS
VVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdI
RVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJ
TkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9G
IFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9T
U0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2lu
Y2x1ZGUgIldlYkJhdHRlcnlTdGF0dXMuaCIKKworI2luY2x1ZGUgIkFyZ3VtZW50Q29kZXJzLmgi
CisjaW5jbHVkZSAiQXJndW1lbnRzLmgiCisKK25hbWVzcGFjZSBXZWJLaXQgeworCitXZWJCYXR0
ZXJ5U3RhdHVzOjpXZWJCYXR0ZXJ5U3RhdHVzKGJvb2wgaXNDaGFyZ2luZywgZG91YmxlIGNoYXJn
aW5nVGltZSwgZG91YmxlIGRpc2NoYXJnaW5nVGltZSwgZG91YmxlIGxldmVsKQoreworICAgIG1f
ZGF0YS5pc0NoYXJnaW5nID0gaXNDaGFyZ2luZzsKKyAgICBtX2RhdGEuY2hhcmdpbmdUaW1lID0g
Y2hhcmdpbmdUaW1lOworICAgIG1fZGF0YS5kaXNjaGFyZ2luZ1RpbWUgPSBkaXNjaGFyZ2luZ1Rp
bWU7CisgICAgbV9kYXRhLmxldmVsID0gbGV2ZWw7Cit9CisKK1dlYkJhdHRlcnlTdGF0dXM6On5X
ZWJCYXR0ZXJ5U3RhdHVzKCkKK3sKK30KKwordm9pZCBXZWJCYXR0ZXJ5U3RhdHVzOjpEYXRhOjpl
bmNvZGUoQ29yZUlQQzo6QXJndW1lbnRFbmNvZGVyKiBlbmNvZGVyKSBjb25zdAoreworICAgIGVu
Y29kZXItPmVuY29kZShDb3JlSVBDOjpJbihpc0NoYXJnaW5nLCBjaGFyZ2luZ1RpbWUsIGRpc2No
YXJnaW5nVGltZSwgbGV2ZWwpKTsKK30KKworYm9vbCBXZWJCYXR0ZXJ5U3RhdHVzOjpEYXRhOjpk
ZWNvZGUoQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyKiBkZWNvZGVyLCBEYXRhJiBkYXRhKQorewor
ICAgIHJldHVybiBkZWNvZGVyLT5kZWNvZGUoQ29yZUlQQzo6T3V0KGRhdGEuaXNDaGFyZ2luZywg
ZGF0YS5jaGFyZ2luZ1RpbWUsIGRhdGEuZGlzY2hhcmdpbmdUaW1lLCBkYXRhLmxldmVsKSk7Cit9
CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2hh
cmVkL1dlYkJhdHRlcnlTdGF0dXMuaCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJCYXR0ZXJ5
U3RhdHVzLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNzVmNjM5ZQotLS0g
L2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJCYXR0ZXJ5U3RhdHVzLmgK
QEAgLTAsMCArMSw3MyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMiBJbnRlbCBDb3Jwb3Jh
dGlvbi4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0
IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1
dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJp
YWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJF
IElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycn
CisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRB
QklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NM
QUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwor
ICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lB
TCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1Ig
U0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICog
SU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJ
VFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJ
TkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkg
T1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBXZWJCYXR0ZXJ5
U3RhdHVzX2gKKyNkZWZpbmUgV2ViQmF0dGVyeVN0YXR1c19oCisKKyNpbmNsdWRlICJBUElPYmpl
Y3QuaCIKKyNpbmNsdWRlICJBcmd1bWVudERlY29kZXIuaCIKKyNpbmNsdWRlICJBcmd1bWVudEVu
Y29kZXIuaCIKKyNpbmNsdWRlIDx3dGYvUGFzc1JlZlB0ci5oPgorCituYW1lc3BhY2UgV2ViS2l0
IHsKKworY2xhc3MgV2ViQmF0dGVyeVN0YXR1cyA6IHB1YmxpYyBBUElPYmplY3QgeworcHVibGlj
OgorICAgIHN0YXRpYyBjb25zdCBUeXBlIEFQSVR5cGUgPSBUeXBlQmF0dGVyeVN0YXR1czsKKwor
ICAgIHN0cnVjdCBEYXRhIHsKKyAgICAgICAgdm9pZCBlbmNvZGUoQ29yZUlQQzo6QXJndW1lbnRF
bmNvZGVyKikgY29uc3Q7CisgICAgICAgIHN0YXRpYyBib29sIGRlY29kZShDb3JlSVBDOjpBcmd1
bWVudERlY29kZXIqLCBEYXRhJik7CisKKyAgICAgICAgYm9vbCBpc0NoYXJnaW5nOworICAgICAg
ICBkb3VibGUgY2hhcmdpbmdUaW1lOworICAgICAgICBkb3VibGUgZGlzY2hhcmdpbmdUaW1lOwor
ICAgICAgICBkb3VibGUgbGV2ZWw7CisgICAgfTsKKworICAgIHN0YXRpYyBQYXNzUmVmUHRyPFdl
YkJhdHRlcnlTdGF0dXM+IGNyZWF0ZShib29sIGlzQ2hhcmdpbmcsIGRvdWJsZSBjaGFyZ2luZ1Rp
bWUsIGRvdWJsZSBkaXNjaGFyZ2luZ1RpbWUsIGRvdWJsZSBsZXZlbCkKKyAgICB7CisgICAgICAg
IHJldHVybiBhZG9wdFJlZihuZXcgV2ViQmF0dGVyeVN0YXR1cyhpc0NoYXJnaW5nLCBjaGFyZ2lu
Z1RpbWUsIGRpc2NoYXJnaW5nVGltZSwgbGV2ZWwpKTsKKyAgICB9CisKKyAgICB2aXJ0dWFsIH5X
ZWJCYXR0ZXJ5U3RhdHVzKCk7CisgICAgZG91YmxlIGlzQ2hhcmdpbmcoKSBjb25zdCB7IHJldHVy
biBtX2RhdGEuaXNDaGFyZ2luZzsgfQorICAgIGRvdWJsZSBjaGFyZ2luZ1RpbWUoKSBjb25zdCB7
IHJldHVybiBtX2RhdGEuY2hhcmdpbmdUaW1lOyB9CisgICAgZG91YmxlIGRpc2NoYXJnaW5nVGlt
ZSgpIGNvbnN0IHsgcmV0dXJuIG1fZGF0YS5kaXNjaGFyZ2luZ1RpbWU7IH0KKyAgICBkb3VibGUg
bGV2ZWwoKSBjb25zdCB7IHJldHVybiBtX2RhdGEubGV2ZWw7IH0KKworICAgIGNvbnN0IERhdGEm
IGRhdGEoKSBjb25zdCB7IHJldHVybiBtX2RhdGE7IH0KKworcHJpdmF0ZToKKyAgICBXZWJCYXR0
ZXJ5U3RhdHVzKGJvb2wgaXNDaGFyZ2luZywgZG91YmxlIGNoYXJnaW5nVGltZSwgZG91YmxlIGRp
c2NoYXJnaW5nVGltZSwgZG91YmxlIGxldmVsKTsKKworICAgIHZpcnR1YWwgVHlwZSB0eXBlKCkg
Y29uc3QgeyByZXR1cm4gQVBJVHlwZTsgfQorCisgICAgRGF0YSBtX2RhdGE7Cit9OworCit9IC8v
IG5hbWVzcGFjZSBXZWJLaXQKKworI2VuZGlmIC8vIFdlYkJhdHRlcnlTdGF0dXNfaApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdDIvVGFyZ2V0LnByaSBiL1NvdXJjZS9XZWJLaXQyL1RhcmdldC5w
cmkKaW5kZXggOWU1YmM0ZS4uYjk2NGM0MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVGFy
Z2V0LnByaQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9UYXJnZXQucHJpCkBAIC05OSw2ICs5OSw3IEBA
IEhFQURFUlMgKz0gXAogICAgIFNoYXJlZC9WaXNpdGVkTGlua1RhYmxlLmggXAogICAgIFNoYXJl
ZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMuaCBcCiAgICAgU2hhcmVkL1dlYkJhY2tGb3J3YXJkTGlz
dEl0ZW0uaCBcCisgICAgU2hhcmVkL1dlYkJhdHRlcnlTdGF0dXMuaCBcCiAgICAgU2hhcmVkL1dl
YkNlcnRpZmljYXRlSW5mby5oIFwKICAgICBTaGFyZWQvV2ViQ29ubmVjdGlvbi5oIFwKICAgICBT
aGFyZWQvV2ViQ29ubmVjdGlvbkNsaWVudC5oIFwKQEAgLTE0Nyw2ICsxNDgsNyBAQCBIRUFERVJT
ICs9IFwKICAgICBVSVByb2Nlc3MvQVBJL0MvV0tBdXRoZW50aWNhdGlvbkRlY2lzaW9uTGlzdGVu
ZXIuaCBcCiAgICAgVUlQcm9jZXNzL0FQSS9DL1dLQmFja0ZvcndhcmRMaXN0LmggXAogICAgIFVJ
UHJvY2Vzcy9BUEkvQy9XS0JhY2tGb3J3YXJkTGlzdEl0ZW0uaCBcCisgICAgVUlQcm9jZXNzL0FQ
SS9DL1dLQmF0dGVyeU1hbmFnZXIuaCBcCiAgICAgVUlQcm9jZXNzL0FQSS9DL1dLQ29udGV4dC5o
IFwKICAgICBVSVByb2Nlc3MvQVBJL0MvV0tDb250ZXh0UHJpdmF0ZS5oIFwKICAgICBVSVByb2Nl
c3MvQVBJL0MvV0tDcmVkZW50aWFsLmggXApAQCAtMjI5LDYgKzIzMSw4IEBAIEhFQURFUlMgKz0g
XAogICAgIFVJUHJvY2Vzcy9WaXNpdGVkTGlua1Byb3ZpZGVyLmggXAogICAgIFVJUHJvY2Vzcy9X
ZWJBcHBsaWNhdGlvbkNhY2hlTWFuYWdlclByb3h5LmggXAogICAgIFVJUHJvY2Vzcy9XZWJCYWNr
Rm9yd2FyZExpc3QuaCBcCisgICAgVUlQcm9jZXNzL1dlYkJhdHRlcnlNYW5hZ2VyUHJveHkuaCBc
CisgICAgVUlQcm9jZXNzL1dlYkJhdHRlcnlQcm92aWRlci5oIFwKICAgICBVSVByb2Nlc3MvV2Vi
Q29ubmVjdGlvblRvV2ViUHJvY2Vzcy5oIFwKICAgICBVSVByb2Nlc3MvV2ViQ29udGV4dC5oIFwK
ICAgICBVSVByb2Nlc3MvV2ViQ29udGV4dENvbm5lY3Rpb25DbGllbnQuaCBcCkBAIC0yOTQsNiAr
Mjk4LDcgQEAgSEVBREVSUyArPSBcCiAgICAgVUlQcm9jZXNzL3F0L1dlYlBvcHVwTWVudVByb3h5
UXQuaCBcCiAgICAgV2ViUHJvY2Vzcy9BcHBsaWNhdGlvbkNhY2hlL1dlYkFwcGxpY2F0aW9uQ2Fj
aGVNYW5hZ2VyLmggXAogICAgIFdlYlByb2Nlc3MvQXV0aGVudGljYXRpb24vQXV0aGVudGljYXRp
b25NYW5hZ2VyLmggXAorICAgIFdlYlByb2Nlc3MvQmF0dGVyeS9XZWJCYXR0ZXJ5TWFuYWdlci5o
IFwKICAgICBXZWJQcm9jZXNzL0Nvb2tpZXMvV2ViQ29va2llTWFuYWdlci5oIFwKICAgICBXZWJQ
cm9jZXNzL0Rvd25sb2Fkcy9Eb3dubG9hZC5oIFwKICAgICBXZWJQcm9jZXNzL0Rvd25sb2Fkcy9E
b3dubG9hZE1hbmFnZXIuaCBcCkBAIC0zNDQsNiArMzQ5LDcgQEAgSEVBREVSUyArPSBcCiAgICAg
V2ViUHJvY2Vzcy9QbHVnaW5zL1BsdWdpblByb3h5LmggXAogICAgIFdlYlByb2Nlc3MvUGx1Z2lu
cy9QbHVnaW5Qcm9jZXNzQ29ubmVjdGlvbi5oIFwKICAgICBXZWJQcm9jZXNzL1BsdWdpbnMvUGx1
Z2luUHJvY2Vzc0Nvbm5lY3Rpb25NYW5hZ2VyLmggXAorICAgIFdlYlByb2Nlc3MvV2ViQ29yZVN1
cHBvcnQvV2ViQmF0dGVyeUNsaWVudC5oIFwKICAgICBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0
L1dlYkNocm9tZUNsaWVudC5oIFwKICAgICBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNv
bnRleHRNZW51Q2xpZW50LmggXAogICAgIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRGF0
YWJhc2VNYW5hZ2VyLmggXApAQCAtNDU4LDYgKzQ2NCw3IEBAIFNPVVJDRVMgKz0gXAogICAgIFNo
YXJlZC9VcGRhdGVJbmZvLmNwcCBcCiAgICAgU2hhcmVkL1Zpc2l0ZWRMaW5rVGFibGUuY3BwIFwK
ICAgICBTaGFyZWQvV2ViQmFja0ZvcndhcmRMaXN0SXRlbS5jcHAgXAorICAgIFNoYXJlZC9XZWJC
YXR0ZXJ5U3RhdHVzLmNwcCBcCiAgICAgU2hhcmVkL1dlYkNvbm5lY3Rpb24uY3BwIFwKICAgICBT
aGFyZWQvV2ViQ29ubmVjdGlvbkNsaWVudC5jcHAgXAogICAgIFNoYXJlZC9XZWJDb250ZXh0TWVu
dUl0ZW0uY3BwIFwKQEAgLTUwNSw2ICs1MTIsNyBAQCBTT1VSQ0VTICs9IFwKICAgICBVSVByb2Nl
c3MvQVBJL0MvV0tBdXRoZW50aWNhdGlvbkRlY2lzaW9uTGlzdGVuZXIuY3BwIFwKICAgICBVSVBy
b2Nlc3MvQVBJL0MvV0tCYWNrRm9yd2FyZExpc3QuY3BwIFwKICAgICBVSVByb2Nlc3MvQVBJL0Mv
V0tCYWNrRm9yd2FyZExpc3RJdGVtLmNwcCBcCisgICAgVUlQcm9jZXNzL0FQSS9DL1dLQmF0dGVy
eU1hbmFnZXIuY3BwIFwKICAgICBVSVByb2Nlc3MvQVBJL0MvV0tDb250ZXh0LmNwcCBcCiAgICAg
VUlQcm9jZXNzL0FQSS9DL1dLQ3JlZGVudGlhbC5jcHAgXAogICAgIFVJUHJvY2Vzcy9BUEkvQy9X
S0RhdGFiYXNlTWFuYWdlci5jcHAgXApAQCAtNTc4LDYgKzU4Niw4IEBAIFNPVVJDRVMgKz0gXAog
ICAgIFVJUHJvY2Vzcy9WaXNpdGVkTGlua1Byb3ZpZGVyLmNwcCBcCiAgICAgVUlQcm9jZXNzL1dl
YkFwcGxpY2F0aW9uQ2FjaGVNYW5hZ2VyUHJveHkuY3BwIFwKICAgICBVSVByb2Nlc3MvV2ViQmFj
a0ZvcndhcmRMaXN0LmNwcCBcCisgICAgVUlQcm9jZXNzL1dlYkJhdHRlcnlNYW5hZ2VyUHJveHku
Y3BwIFwKKyAgICBVSVByb2Nlc3MvV2ViQmF0dGVyeVByb3ZpZGVyLmNwcCBcCiAgICAgVUlQcm9j
ZXNzL1dlYkNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuY3BwIFwKICAgICBVSVByb2Nlc3MvV2ViQ29u
dGV4dC5jcHAgXAogICAgIFVJUHJvY2Vzcy9XZWJDb250ZXh0Q29ubmVjdGlvbkNsaWVudC5jcHAg
XApAQCAtNjQ3LDYgKzY1Nyw3IEBAIFNPVVJDRVMgKz0gXAogICAgIFVJUHJvY2Vzcy9xdC9RdFdl
Ykljb25EYXRhYmFzZUNsaWVudC5jcHAgXAogICAgIFdlYlByb2Nlc3MvQXBwbGljYXRpb25DYWNo
ZS9XZWJBcHBsaWNhdGlvbkNhY2hlTWFuYWdlci5jcHAgXAogICAgIFdlYlByb2Nlc3MvQXV0aGVu
dGljYXRpb24vQXV0aGVudGljYXRpb25NYW5hZ2VyLmNwcCBcCisgICAgV2ViUHJvY2Vzcy9CYXR0
ZXJ5L1dlYkJhdHRlcnlNYW5hZ2VyLmNwcCBcCiAgICAgV2ViUHJvY2Vzcy9Db29raWVzL1dlYkNv
b2tpZU1hbmFnZXIuY3BwIFwKICAgICBXZWJQcm9jZXNzL0Nvb2tpZXMvcXQvV2ViQ29va2llTWFu
YWdlclF0LmNwcCBcCiAgICAgV2ViUHJvY2Vzcy9Eb3dubG9hZHMvRG93bmxvYWQuY3BwIFwKQEAg
LTcxMCw2ICs3MjEsNyBAQCBTT1VSQ0VTICs9IFwKICAgICBXZWJQcm9jZXNzL1BsdWdpbnMvUGx1
Z2luUHJveHkuY3BwIFwKICAgICBXZWJQcm9jZXNzL1BsdWdpbnMvUGx1Z2luUHJvY2Vzc0Nvbm5l
Y3Rpb24uY3BwIFwKICAgICBXZWJQcm9jZXNzL1BsdWdpbnMvUGx1Z2luUHJvY2Vzc0Nvbm5lY3Rp
b25NYW5hZ2VyLmNwcCBcCisgICAgV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJCYXR0ZXJ5
Q2xpZW50LmNwcCBcCiAgICAgV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGll
bnQuY3BwIFwKICAgICBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNvbnRleHRNZW51Q2xp
ZW50LmNwcCBcCiAgICAgV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJEYXRhYmFzZU1hbmFn
ZXIuY3BwIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS0FQ
SUNhc3QuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS0FQSUNhc3QuaAppbmRl
eCA5YmM5ZWE2Li44YjliZDEwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
QVBJL0MvV0tBUElDYXN0LmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dL
QVBJQ2FzdC5oCkBAIC01Niw2ICs1Niw4IEBAIGNsYXNzIE5vdGlmaWNhdGlvblBlcm1pc3Npb25S
ZXF1ZXN0OwogY2xhc3MgV2ViQXBwbGljYXRpb25DYWNoZU1hbmFnZXJQcm94eTsKIGNsYXNzIFdl
YkJhY2tGb3J3YXJkTGlzdDsKIGNsYXNzIFdlYkJhY2tGb3J3YXJkTGlzdEl0ZW07CitjbGFzcyBX
ZWJCYXR0ZXJ5TWFuYWdlclByb3h5OworY2xhc3MgV2ViQmF0dGVyeVN0YXR1czsKIGNsYXNzIFdl
YlJlc291cmNlQ2FjaGVNYW5hZ2VyUHJveHk7CiBjbGFzcyBXZWJDb250ZXh0OwogY2xhc3MgV2Vi
Q29va2llTWFuYWdlclByb3h5OwpAQCAtOTQsNiArOTYsOCBAQCBXS19BRERfQVBJX01BUFBJTkco
V0tBdXRoZW50aWNhdGlvbkNoYWxsZW5nZVJlZiwgQXV0aGVudGljYXRpb25DaGFsbGVuZ2VQcm94
eSkKIFdLX0FERF9BUElfTUFQUElORyhXS0F1dGhlbnRpY2F0aW9uRGVjaXNpb25MaXN0ZW5lclJl
ZiwgQXV0aGVudGljYXRpb25EZWNpc2lvbkxpc3RlbmVyKQogV0tfQUREX0FQSV9NQVBQSU5HKFdL
QmFja0ZvcndhcmRMaXN0SXRlbVJlZiwgV2ViQmFja0ZvcndhcmRMaXN0SXRlbSkKIFdLX0FERF9B
UElfTUFQUElORyhXS0JhY2tGb3J3YXJkTGlzdFJlZiwgV2ViQmFja0ZvcndhcmRMaXN0KQorV0tf
QUREX0FQSV9NQVBQSU5HKFdLQmF0dGVyeU1hbmFnZXJSZWYsIFdlYkJhdHRlcnlNYW5hZ2VyUHJv
eHkpCitXS19BRERfQVBJX01BUFBJTkcoV0tCYXR0ZXJ5U3RhdHVzUmVmLCBXZWJCYXR0ZXJ5U3Rh
dHVzKQogV0tfQUREX0FQSV9NQVBQSU5HKFdLUmVzb3VyY2VDYWNoZU1hbmFnZXJSZWYsIFdlYlJl
c291cmNlQ2FjaGVNYW5hZ2VyUHJveHkpCiBXS19BRERfQVBJX01BUFBJTkcoV0tDb250ZXh0UmVm
LCBXZWJDb250ZXh0KQogV0tfQUREX0FQSV9NQVBQSU5HKFdLQ29va2llTWFuYWdlclJlZiwgV2Vi
Q29va2llTWFuYWdlclByb3h5KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L0FQSS9DL1dLQmF0dGVyeU1hbmFnZXIuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQ
SS9DL1dLQmF0dGVyeU1hbmFnZXIuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAuLjcyMDZkNTMKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
QVBJL0MvV0tCYXR0ZXJ5TWFuYWdlci5jcHAKQEAgLTAsMCArMSwzNyBAQAorLyoKKyAqIENvcHly
aWdodCAoQykgMjAxMiBJbnRlbCBDb3Jwb3JhdGlvbi4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAq
CisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJp
YnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXBy
b2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1l
bnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1
dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5E
IElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElF
RCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBM
SUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJ
Q1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExF
IElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJ
TkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVO
VElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQg
T0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBP
UiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBB
TkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBT
VFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJ
U0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FS
RSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0Uu
CisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIldLQmF0dGVyeU1hbmFnZXIu
aCIKKworI2luY2x1ZGUgIldLQVBJQ2FzdC5oIgorI2luY2x1ZGUgIldlYkJhdHRlcnlNYW5hZ2Vy
UHJveHkuaCIKKwordXNpbmcgbmFtZXNwYWNlIFdlYktpdDsKKworV0tUeXBlSUQgV0tCYXR0ZXJ5
TWFuYWdlckdldFR5cGVJRCgpCit7CisgICAgcmV0dXJuIHRvQVBJKFdlYkJhdHRlcnlNYW5hZ2Vy
UHJveHk6OkFQSVR5cGUpOworfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L0FQSS9DL1dLQmF0dGVyeU1hbmFnZXIuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkv
Qy9XS0JhdHRlcnlNYW5hZ2VyLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4u
OTFlMjdmOQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkv
Qy9XS0JhdHRlcnlNYW5hZ2VyLmgKQEAgLTAsMCArMSw1NSBAQAorLyoKKyAqIENvcHlyaWdodCAo
QykgMjAxMiBJbnRlbCBDb3Jwb3JhdGlvbi4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9u
cyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2Ug
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlv
biBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4K
KyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBD
T05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIK
KyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4g
T1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVD
VCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBE
QU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAq
IFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9G
SVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04g
QU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1Qg
TElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisg
KiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZF
TiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8K
KworI2lmbmRlZiBXS0JhdHRlcnlNYW5hZ2VyX2gKKyNkZWZpbmUgV0tCYXR0ZXJ5TWFuYWdlcl9o
CisKKyNpbmNsdWRlIDxXZWJLaXQyL1dLQmFzZS5oPgorCisjaWZkZWYgX19jcGx1c3BsdXMKK2V4
dGVybiAiQyIgeworI2VuZGlmCisKKy8vIFByb3ZpZGVyLgordHlwZWRlZiB2b2lkICgqV0tCYXR0
ZXJ5UHJvdmlkZXJTdGFydFVwZGF0aW5nQ2FsbGJhY2spKFdLQmF0dGVyeU1hbmFnZXJSZWYgYmF0
dGVyeU1hbmFnZXIsIGNvbnN0IHZvaWQqIGNsaWVudEluZm8pOwordHlwZWRlZiB2b2lkICgqV0tC
YXR0ZXJ5UHJvdmlkZXJTdG9wVXBkYXRpbmdDYWxsYmFjaykoV0tCYXR0ZXJ5TWFuYWdlclJlZiBi
YXR0ZXJ5TWFuYWdlciwgY29uc3Qgdm9pZCogY2xpZW50SW5mbyk7CisKK3N0cnVjdCBXS0JhdHRl
cnlQcm92aWRlciB7CisgICAgaW50ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZXJzaW9uOworICAgIGNvbnN0IHZvaWQgKiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xp
ZW50SW5mbzsKKyAgICBXS0JhdHRlcnlQcm92aWRlclN0YXJ0VXBkYXRpbmdDYWxsYmFjayAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0VXBkYXRpbmc7CisgICAgV0tCYXR0ZXJ5UHJv
dmlkZXJTdG9wVXBkYXRpbmdDYWxsYmFjayAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBz
dG9wVXBkYXRpbmc7Cit9OwordHlwZWRlZiBzdHJ1Y3QgV0tCYXR0ZXJ5UHJvdmlkZXIgV0tCYXR0
ZXJ5UHJvdmlkZXI7CisKK2VudW0geyBrV0tCYXR0ZXJ5UHJvdmlkZXJDdXJyZW50VmVyc2lvbiA9
IDAgfTsKKworV0tfRVhQT1JUIFdLVHlwZUlEIFdLQmF0dGVyeU1hbmFnZXJHZXRUeXBlSUQoKTsK
KworI2lmZGVmIF9fY3BsdXNwbHVzCit9CisjZW5kaWYKKworI2VuZGlmIC8qIFdLQmF0dGVyeU1h
bmFnZXJfaCAqLwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dl
YktpdDIuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XZWJLaXQyLmgKaW5kZXgg
NTIwOWU3OS4uMTg4OTU2NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQ
SS9DL1dlYktpdDIuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV2ViS2l0
Mi5oCkBAIC0zMiw2ICszMiw3IEBACiAjaW5jbHVkZSA8V2ViS2l0Mi9XS0FycmF5Lmg+CiAjaW5j
bHVkZSA8V2ViS2l0Mi9XS0JhY2tGb3J3YXJkTGlzdC5oPgogI2luY2x1ZGUgPFdlYktpdDIvV0tC
YWNrRm9yd2FyZExpc3RJdGVtLmg+CisjaW5jbHVkZSA8V2ViS2l0Mi9XS0JhdHRlcnlNYW5hZ2Vy
Lmg+CiAjaW5jbHVkZSA8V2ViS2l0Mi9XS0Nvbm5lY3Rpb25SZWYuaD4KICNpbmNsdWRlIDxXZWJL
aXQyL1dLQ29udGV4dC5oPgogI2luY2x1ZGUgPFdlYktpdDIvV0tEYXRhLmg+CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViQmF0dGVyeU1hbmFnZXJQcm94eS5jcHAgYi9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViQmF0dGVyeU1hbmFnZXJQcm94eS5jcHAKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZTU1OTA2YgotLS0gL2Rldi9udWxsCisrKyBi
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJCYXR0ZXJ5TWFuYWdlclByb3h5LmNwcApAQCAt
MCwwICsxLDk4IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEyIEludGVsIENvcnBvcmF0aW9u
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisg
KiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0
YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9u
cyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMg
cHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMg
UFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAq
IEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1F
RC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBC
RSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBF
WEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJW
SUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRF
UlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQg
T0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisj
aW5jbHVkZSAiV2ViQmF0dGVyeU1hbmFnZXJQcm94eS5oIgorCisjaW5jbHVkZSAiV2ViQmF0dGVy
eU1hbmFnZXJNZXNzYWdlcy5oIgorI2luY2x1ZGUgIldlYkNvbnRleHQuaCIKKworbmFtZXNwYWNl
IFdlYktpdCB7CisKK1Bhc3NSZWZQdHI8V2ViQmF0dGVyeU1hbmFnZXJQcm94eT4gV2ViQmF0dGVy
eU1hbmFnZXJQcm94eTo6Y3JlYXRlKFdlYkNvbnRleHQqIGNvbnRleHQpCit7CisgICAgcmV0dXJu
IGFkb3B0UmVmKG5ldyBXZWJCYXR0ZXJ5TWFuYWdlclByb3h5KGNvbnRleHQpKTsKK30KKworV2Vi
QmF0dGVyeU1hbmFnZXJQcm94eTo6V2ViQmF0dGVyeU1hbmFnZXJQcm94eShXZWJDb250ZXh0KiBj
b250ZXh0KQorICAgIDogbV9pc1VwZGF0aW5nKGZhbHNlKQorICAgICwgbV9jb250ZXh0KGNvbnRl
eHQpCit7Cit9CisKK1dlYkJhdHRlcnlNYW5hZ2VyUHJveHk6On5XZWJCYXR0ZXJ5TWFuYWdlclBy
b3h5KCkKK3sKK30KKwordm9pZCBXZWJCYXR0ZXJ5TWFuYWdlclByb3h5OjppbnZhbGlkYXRlKCkK
K3sKKyAgICBzdG9wVXBkYXRpbmcoKTsKK30KKwordm9pZCBXZWJCYXR0ZXJ5TWFuYWdlclByb3h5
Ojppbml0aWFsaXplUHJvdmlkZXIoY29uc3QgV0tCYXR0ZXJ5UHJvdmlkZXIqIHByb3ZpZGVyKQor
eworICAgIG1fcHJvdmlkZXIuaW5pdGlhbGl6ZShwcm92aWRlcik7Cit9CisKK3ZvaWQgV2ViQmF0
dGVyeU1hbmFnZXJQcm94eTo6ZGlkUmVjZWl2ZU1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiog
Y29ubmVjdGlvbiwgQ29yZUlQQzo6TWVzc2FnZUlEIG1lc3NhZ2VJRCwgQ29yZUlQQzo6QXJndW1l
bnREZWNvZGVyKiBhcmd1bWVudHMpCit7CisgICAgZGlkUmVjZWl2ZVdlYkJhdHRlcnlNYW5hZ2Vy
UHJveHlNZXNzYWdlKGNvbm5lY3Rpb24sIG1lc3NhZ2VJRCwgYXJndW1lbnRzKTsKK30KKwordm9p
ZCBXZWJCYXR0ZXJ5TWFuYWdlclByb3h5OjpzdGFydFVwZGF0aW5nKCkKK3sKKyAgICBpZiAobV9p
c1VwZGF0aW5nKQorICAgICAgICByZXR1cm47CisKKyAgICBtX3Byb3ZpZGVyLnN0YXJ0VXBkYXRp
bmcodGhpcyk7CisgICAgbV9pc1VwZGF0aW5nID0gdHJ1ZTsKK30KKwordm9pZCBXZWJCYXR0ZXJ5
TWFuYWdlclByb3h5OjpzdG9wVXBkYXRpbmcoKQoreworICAgIGlmICghbV9pc1VwZGF0aW5nKQor
ICAgICAgICByZXR1cm47CisKKyAgICBtX3Byb3ZpZGVyLnN0b3BVcGRhdGluZyh0aGlzKTsKKyAg
ICBtX2lzVXBkYXRpbmcgPSBmYWxzZTsKK30KKwordm9pZCBXZWJCYXR0ZXJ5TWFuYWdlclByb3h5
Ojpwcm92aWRlckRpZENoYW5nZUJhdHRlcnlTdGF0dXMoY29uc3QgV1RGOjpBdG9taWNTdHJpbmcm
IGV2ZW50VHlwZSwgV2ViQmF0dGVyeVN0YXR1cyogc3RhdHVzKQoreworICAgIGlmICghbV9jb250
ZXh0KQorICAgICAgICByZXR1cm47CisKKyAgICBtX2NvbnRleHQtPnNlbmRUb0FsbFByb2Nlc3Nl
cyhNZXNzYWdlczo6V2ViQmF0dGVyeU1hbmFnZXI6OkRpZENoYW5nZUJhdHRlcnlTdGF0dXMoZXZl
bnRUeXBlLCBzdGF0dXMtPmRhdGEoKSkpOworfQorCit2b2lkIFdlYkJhdHRlcnlNYW5hZ2VyUHJv
eHk6OnByb3ZpZGVyVXBkYXRlQmF0dGVyeVN0YXR1cyhXZWJCYXR0ZXJ5U3RhdHVzKiBzdGF0dXMp
Cit7CisgICAgaWYgKCFtX2NvbnRleHQpCisgICAgICAgIHJldHVybjsKKworICAgIG1fY29udGV4
dC0+c2VuZFRvQWxsUHJvY2Vzc2VzKE1lc3NhZ2VzOjpXZWJCYXR0ZXJ5TWFuYWdlcjo6VXBkYXRl
QmF0dGVyeVN0YXR1cyhzdGF0dXMtPmRhdGEoKSkpOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJL
aXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJCYXR0ZXJ5TWFuYWdl
clByb3h5LmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViQmF0dGVyeU1hbmFnZXJQcm94
eS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjQ4MzY4ZjQKLS0tIC9kZXYv
bnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViQmF0dGVyeU1hbmFnZXJQcm94
eS5oCkBAIC0wLDAgKzEsODAgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTIgSW50ZWwgQ29y
cG9yYXRpb24uIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUg
bXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0
cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1h
dGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZU
V0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMg
SVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNI
QU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBE
SVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRP
UlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQ
RUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RT
IE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MK
KyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElB
QklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9S
VCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkg
V0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgor
ICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5kZWYgV2ViQmF0
dGVyeU1hbmFnZXJQcm94eV9oCisjZGVmaW5lIFdlYkJhdHRlcnlNYW5hZ2VyUHJveHlfaAorCisj
aW5jbHVkZSAiQVBJT2JqZWN0LmgiCisjaW5jbHVkZSAiTWVzc2FnZUlELmgiCisjaW5jbHVkZSAi
V2ViQmF0dGVyeVByb3ZpZGVyLmgiCisjaW5jbHVkZSA8d3RmL0ZvcndhcmQuaD4KKworbmFtZXNw
YWNlIENvcmVJUEMgeworY2xhc3MgQXJndW1lbnREZWNvZGVyOworY2xhc3MgQ29ubmVjdGlvbjsK
K30KKworbmFtZXNwYWNlIFdlYktpdCB7CisKK2NsYXNzIFdlYkNvbnRleHQ7CitjbGFzcyBXZWJC
YXR0ZXJ5U3RhdHVzOworCitjbGFzcyBXZWJCYXR0ZXJ5TWFuYWdlclByb3h5IDogcHVibGljIEFQ
SU9iamVjdCB7CitwdWJsaWM6CisgICAgc3RhdGljIGNvbnN0IFR5cGUgQVBJVHlwZSA9IFR5cGVC
YXR0ZXJ5TWFuYWdlcjsKKworICAgIHN0YXRpYyBQYXNzUmVmUHRyPFdlYkJhdHRlcnlNYW5hZ2Vy
UHJveHk+IGNyZWF0ZShXZWJDb250ZXh0Kik7CisgICAgdmlydHVhbCB+V2ViQmF0dGVyeU1hbmFn
ZXJQcm94eSgpOworCisgICAgdm9pZCBpbnZhbGlkYXRlKCk7CisgICAgdm9pZCBjbGVhckNvbnRl
eHQoKSB7IG1fY29udGV4dCA9IDA7IH0KKworICAgIHZvaWQgaW5pdGlhbGl6ZVByb3ZpZGVyKGNv
bnN0IFdLQmF0dGVyeVByb3ZpZGVyKik7CisKKyAgICB2b2lkIHByb3ZpZGVyRGlkQ2hhbmdlQmF0
dGVyeVN0YXR1cyhjb25zdCBXVEY6OkF0b21pY1N0cmluZyYsIFdlYkJhdHRlcnlTdGF0dXMqKTsK
KyAgICB2b2lkIHByb3ZpZGVyVXBkYXRlQmF0dGVyeVN0YXR1cyhXZWJCYXR0ZXJ5U3RhdHVzKik7
CisKKyAgICB2b2lkIGRpZFJlY2VpdmVNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qLCBDb3Jl
SVBDOjpNZXNzYWdlSUQsIENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciopOworCitwcml2YXRlOgor
ICAgIGV4cGxpY2l0IFdlYkJhdHRlcnlNYW5hZ2VyUHJveHkoV2ViQ29udGV4dCopOworCisgICAg
dmlydHVhbCBUeXBlIHR5cGUoKSBjb25zdCB7IHJldHVybiBBUElUeXBlOyB9CisKKyAgICAvLyBJ
bXBsZW1lbnRlZCBpbiBnZW5lcmF0ZWQgV2ViQmF0dGVyeU1hbmFnZXJQcm94eU1lc3NhZ2VSZWNl
aXZlci5jcHAKKyAgICB2b2lkIGRpZFJlY2VpdmVXZWJCYXR0ZXJ5TWFuYWdlclByb3h5TWVzc2Fn
ZShDb3JlSVBDOjpDb25uZWN0aW9uKiwgQ29yZUlQQzo6TWVzc2FnZUlELCBDb3JlSVBDOjpBcmd1
bWVudERlY29kZXIqKTsKKworICAgIHZvaWQgc3RhcnRVcGRhdGluZygpOworICAgIHZvaWQgc3Rv
cFVwZGF0aW5nKCk7CisKKyAgICBib29sIG1faXNVcGRhdGluZzsKKworICAgIFdlYkNvbnRleHQq
IG1fY29udGV4dDsKKyAgICBXZWJCYXR0ZXJ5UHJvdmlkZXIgbV9wcm92aWRlcjsKK307CisKK30g
Ly8gbmFtZXNwYWNlIFdlYktpdAorCisjZW5kaWYgLy8gV2ViQmF0dGVyeU1hbmFnZXJQcm94eV9o
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViQmF0dGVyeU1hbmFnZXJQ
cm94eS5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJCYXR0ZXJ5TWFu
YWdlclByb3h5Lm1lc3NhZ2VzLmluCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAu
LjgwZDUzZDMKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2Vi
QmF0dGVyeU1hbmFnZXJQcm94eS5tZXNzYWdlcy5pbgpAQCAtMCwwICsxLDI2IEBACisjIENvcHly
aWdodCAoQykgMjAxMiBJbnRlbCBDb3Jwb3JhdGlvbi4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyMK
KyMgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0CisjIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworIyBhcmUgbWV0OgorIyAxLiAgUmVkaXN0cmlidXRp
b25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMgICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lci4KKyMgMi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVj
ZSB0aGUgYWJvdmUgY29weXJpZ2h0CisjICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisjICAgICBkb2N1bWVudGF0
aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9u
LgorIworIyBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBD
T05UUklCVVRPUlMgYGBBUyBJUycnIEFORAorIyBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJB
TlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAorIyBXQVJS
QU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBV
UlBPU0UgQVJFCisjIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1Ig
SVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SCisjIEFOWSBESVJFQ1QsIElORElSRUNULCBJ
TkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwKKyMgREFNQUdF
UyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRV
VEUgR09PRFMgT1IKKyMgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBP
UiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIKKyMgQ0FVU0VEIEFORCBPTiBBTlkgVEhF
T1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwK
KyMgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElO
IEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyMgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJ
U0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKworbWVzc2FnZXMgLT4gV2Vi
QmF0dGVyeU1hbmFnZXJQcm94eSB7CisgICAgU3RhcnRVcGRhdGluZygpOworICAgIFN0b3BVcGRh
dGluZygpOworfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkJhdHRl
cnlQcm92aWRlci5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViQmF0dGVyeVByb3Zp
ZGVyLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xMTEyYzRlCi0tLSAv
ZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkJhdHRlcnlQcm92aWRl
ci5jcHAKQEAgLTAsMCArMSw1MCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMiBJbnRlbCBD
b3Jwb3JhdGlvbi4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29k
ZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRp
c3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIg
bWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNP
RlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBB
UyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVS
Q0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJF
IERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJV
VE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwg
U1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09P
RFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVT
UworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBM
SUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBU
T1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFO
WSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9G
CisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNv
bmZpZy5oIgorI2luY2x1ZGUgIldlYkJhdHRlcnlQcm92aWRlci5oIgorCisjaW5jbHVkZSAiV0tB
UElDYXN0LmgiCisjaW5jbHVkZSAiV2ViQmF0dGVyeU1hbmFnZXJQcm94eS5oIgorCituYW1lc3Bh
Y2UgV2ViS2l0IHsKKwordm9pZCBXZWJCYXR0ZXJ5UHJvdmlkZXI6OnN0YXJ0VXBkYXRpbmcoV2Vi
QmF0dGVyeU1hbmFnZXJQcm94eSogYmF0dGVyeU1hbmFnZXIpCit7CisgICAgaWYgKCFtX2NsaWVu
dC5zdGFydFVwZGF0aW5nKQorICAgICAgICByZXR1cm47CisKKyAgICBtX2NsaWVudC5zdGFydFVw
ZGF0aW5nKHRvQVBJKGJhdHRlcnlNYW5hZ2VyKSwgbV9jbGllbnQuY2xpZW50SW5mbyk7Cit9CisK
K3ZvaWQgV2ViQmF0dGVyeVByb3ZpZGVyOjpzdG9wVXBkYXRpbmcoV2ViQmF0dGVyeU1hbmFnZXJQ
cm94eSogYmF0dGVyeU1hbmFnZXIpCit7CisgICAgaWYgKCFtX2NsaWVudC5zdG9wVXBkYXRpbmcp
CisgICAgICAgIHJldHVybjsKKworICAgIG1fY2xpZW50LnN0b3BVcGRhdGluZyh0b0FQSShiYXR0
ZXJ5TWFuYWdlciksIG1fY2xpZW50LmNsaWVudEluZm8pOworfQorCit9IC8vIG5hbWVzcGFjZSBX
ZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJCYXR0ZXJ5UHJv
dmlkZXIuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJCYXR0ZXJ5UHJvdmlkZXIuaApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lNDFjYjBiCi0tLSAvZGV2L251bGwK
KysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkJhdHRlcnlQcm92aWRlci5oCkBAIC0w
LDAgKzEsNDUgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTIgSW50ZWwgQ29ycG9yYXRpb24u
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAq
IGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRh
aW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25z
IGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBw
cm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQ
Uk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICog
QU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElU
WSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVE
LiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJF
IExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVY
RU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJ
Q0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVS
UlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBX
SEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVE
SU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBP
RiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBP
U1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5kZWYgV2ViQmF0dGVyeVByb3Zp
ZGVyX2gKKyNkZWZpbmUgV2ViQmF0dGVyeVByb3ZpZGVyX2gKKworI2luY2x1ZGUgIkFQSUNsaWVu
dC5oIgorI2luY2x1ZGUgIldLQmF0dGVyeU1hbmFnZXIuaCIKKyNpbmNsdWRlIDx3dGYvRm9yd2Fy
ZC5oPgorCituYW1lc3BhY2UgV2ViS2l0IHsKKworY2xhc3MgV2ViQmF0dGVyeU1hbmFnZXJQcm94
eTsKKworY2xhc3MgV2ViQmF0dGVyeVByb3ZpZGVyIDogcHVibGljIEFQSUNsaWVudDxXS0JhdHRl
cnlQcm92aWRlciwga1dLQmF0dGVyeVByb3ZpZGVyQ3VycmVudFZlcnNpb24+IHsKK3B1YmxpYzoK
KyAgICB2b2lkIHN0YXJ0VXBkYXRpbmcoV2ViQmF0dGVyeU1hbmFnZXJQcm94eSopOworICAgIHZv
aWQgc3RvcFVwZGF0aW5nKFdlYkJhdHRlcnlNYW5hZ2VyUHJveHkqKTsKK307CisKK30gLy8gbmFt
ZXNwYWNlIFdlYktpdAorCisjZW5kaWYgLy8gV2ViQmF0dGVyeVByb3ZpZGVyX2gKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQyL1dlYktpdDIucHJpIGIvU291cmNlL1dlYktpdDIvV2ViS2l0Mi5w
cmkKaW5kZXggMjRjYzVhMi4uNTQ1M2Y1MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2Vi
S2l0Mi5wcmkKKysrIGIvU291cmNlL1dlYktpdDIvV2ViS2l0Mi5wcmkKQEAgLTM2LDYgKzM2LDcg
QEAgSU5DTFVERVBBVEggKz0gXAogICAgICQkU09VUkNFX0RJUi9XZWJQcm9jZXNzIFwKICAgICAk
JFNPVVJDRV9ESVIvV2ViUHJvY2Vzcy9BcHBsaWNhdGlvbkNhY2hlIFwKICAgICAkJFNPVVJDRV9E
SVIvV2ViUHJvY2Vzcy9BdXRoZW50aWNhdGlvbiBcCisgICAgJCRTT1VSQ0VfRElSL1dlYlByb2Nl
c3MvQmF0dGVyeSBcCiAgICAgJCRTT1VSQ0VfRElSL1dlYlByb2Nlc3MvQ29va2llcyBcCiAgICAg
JCRTT1VSQ0VfRElSL1dlYlByb2Nlc3MvQ29va2llcy9xdCBcCiAgICAgJCRTT1VSQ0VfRElSL1dl
YlByb2Nlc3MvRG93bmxvYWRzIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nl
c3MvQmF0dGVyeS9XZWJCYXR0ZXJ5TWFuYWdlci5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9j
ZXNzL0JhdHRlcnkvV2ViQmF0dGVyeU1hbmFnZXIuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAuLjc5ZDczODcKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9X
ZWJQcm9jZXNzL0JhdHRlcnkvV2ViQmF0dGVyeU1hbmFnZXIuY3BwCkBAIC0wLDAgKzEsMTAyIEBA
CisvKgorICogQ29weXJpZ2h0IChDKSAyMDEyIEludGVsIENvcnBvcmF0aW9uLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0Ogor
ICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkg
Zm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhl
CisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0
aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkg
QVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQ
UkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5F
U1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZF
TlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9S
IEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9S
CisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBP
RiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhP
V0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgor
ICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdF
TkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBP
RiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBP
RiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiV2Vi
QmF0dGVyeU1hbmFnZXIuaCIKKworI2luY2x1ZGUgIldlYkJhdHRlcnlNYW5hZ2VyUHJveHlNZXNz
YWdlcy5oIgorI2luY2x1ZGUgIldlYlBhZ2UuaCIKKyNpbmNsdWRlICJXZWJQcm9jZXNzLmgiCisj
aW5jbHVkZSA8V2ViQ29yZS9CYXR0ZXJ5Q29udHJvbGxlci5oPgorI2luY2x1ZGUgPFdlYkNvcmUv
QmF0dGVyeVN0YXR1cy5oPgorI2luY2x1ZGUgPFdlYkNvcmUvUGFnZS5oPgorCit1c2luZyBuYW1l
c3BhY2UgV2ViQ29yZTsKKworbmFtZXNwYWNlIFdlYktpdCB7CisKK1dlYkJhdHRlcnlNYW5hZ2Vy
OjpXZWJCYXR0ZXJ5TWFuYWdlcihXZWJQcm9jZXNzKiBwcm9jZXNzKQorICAgIDogbV9wcm9jZXNz
KHByb2Nlc3MpCit7Cit9CisKK1dlYkJhdHRlcnlNYW5hZ2VyOjp+V2ViQmF0dGVyeU1hbmFnZXIo
KQoreworfQorCit2b2lkIFdlYkJhdHRlcnlNYW5hZ2VyOjpkaWRSZWNlaXZlTWVzc2FnZShDb3Jl
SVBDOjpDb25uZWN0aW9uKiBjb25uZWN0aW9uLCBDb3JlSVBDOjpNZXNzYWdlSUQgbWVzc2FnZUlE
LCBDb3JlSVBDOjpBcmd1bWVudERlY29kZXIqIGFyZ3VtZW50cykKK3sKKyAgICBkaWRSZWNlaXZl
V2ViQmF0dGVyeU1hbmFnZXJNZXNzYWdlKGNvbm5lY3Rpb24sIG1lc3NhZ2VJRCwgYXJndW1lbnRz
KTsKK30KKwordm9pZCBXZWJCYXR0ZXJ5TWFuYWdlcjo6cmVnaXN0ZXJXZWJQYWdlKFdlYlBhZ2Uq
IHBhZ2UpCit7CisgICAgYm9vbCB3YXNFbXB0eSA9IG1fcGFnZVNldC5pc0VtcHR5KCk7CisKKyAg
ICBtX3BhZ2VTZXQuYWRkKHBhZ2UpOworCisgICAgaWYgKHdhc0VtcHR5KQorICAgICAgICBtX3By
b2Nlc3MtPmNvbm5lY3Rpb24oKS0+c2VuZChNZXNzYWdlczo6V2ViQmF0dGVyeU1hbmFnZXJQcm94
eTo6U3RhcnRVcGRhdGluZygpLCAwKTsKK30KKwordm9pZCBXZWJCYXR0ZXJ5TWFuYWdlcjo6dW5y
ZWdpc3RlcldlYlBhZ2UoV2ViUGFnZSogcGFnZSkKK3sKKyAgICBtX3BhZ2VTZXQucmVtb3ZlKHBh
Z2UpOworCisgICAgaWYgKG1fcGFnZVNldC5pc0VtcHR5KCkpCisgICAgICAgIG1fcHJvY2Vzcy0+
Y29ubmVjdGlvbigpLT5zZW5kKE1lc3NhZ2VzOjpXZWJCYXR0ZXJ5TWFuYWdlclByb3h5OjpTdG9w
VXBkYXRpbmcoKSwgMCk7Cit9CisKK3ZvaWQgV2ViQmF0dGVyeU1hbmFnZXI6OmRpZENoYW5nZUJh
dHRlcnlTdGF0dXMoY29uc3QgV1RGOjpBdG9taWNTdHJpbmcmIGV2ZW50VHlwZSwgY29uc3QgV2Vi
QmF0dGVyeVN0YXR1czo6RGF0YSYgZGF0YSkKK3sKKyNpZiBFTkFCTEUoQkFUVEVSWV9TVEFUVVMp
CisgICAgUmVmUHRyPEJhdHRlcnlTdGF0dXM+IHN0YXR1cyA9IEJhdHRlcnlTdGF0dXM6OmNyZWF0
ZShkYXRhLmlzQ2hhcmdpbmcsIGRhdGEuY2hhcmdpbmdUaW1lLCBkYXRhLmRpc2NoYXJnaW5nVGlt
ZSwgZGF0YS5sZXZlbCk7CisKKyAgICBIYXNoU2V0PFdlYlBhZ2UqPjo6Y29uc3RfaXRlcmF0b3Ig
aXQgPSBtX3BhZ2VTZXQuYmVnaW4oKTsKKyAgICBIYXNoU2V0PFdlYlBhZ2UqPjo6Y29uc3RfaXRl
cmF0b3IgZW5kID0gbV9wYWdlU2V0LmVuZCgpOworICAgIGZvciAoOyBpdCAhPSBlbmQ7ICsraXQp
IHsKKyAgICAgICAgV2ViUGFnZSogcGFnZSA9ICppdDsKKyAgICAgICAgaWYgKHBhZ2UtPmNvcmVQ
YWdlKCkpCisgICAgICAgICAgICBCYXR0ZXJ5Q29udHJvbGxlcjo6ZnJvbShwYWdlLT5jb3JlUGFn
ZSgpKS0+ZGlkQ2hhbmdlQmF0dGVyeVN0YXR1cyhldmVudFR5cGUsIHN0YXR1cy5nZXQoKSk7Cisg
ICAgfQorI2VuZGlmIC8vIEVOQUJMRShCQVRURVJZX1NUQVRVUykKK30KKwordm9pZCBXZWJCYXR0
ZXJ5TWFuYWdlcjo6dXBkYXRlQmF0dGVyeVN0YXR1cyhjb25zdCBXZWJCYXR0ZXJ5U3RhdHVzOjpE
YXRhJiBkYXRhKQoreworI2lmIEVOQUJMRShCQVRURVJZX1NUQVRVUykKKyAgICBSZWZQdHI8QmF0
dGVyeVN0YXR1cz4gc3RhdHVzID0gQmF0dGVyeVN0YXR1czo6Y3JlYXRlKGRhdGEuaXNDaGFyZ2lu
ZywgZGF0YS5jaGFyZ2luZ1RpbWUsIGRhdGEuZGlzY2hhcmdpbmdUaW1lLCBkYXRhLmxldmVsKTsK
KworICAgIEhhc2hTZXQ8V2ViUGFnZSo+Ojpjb25zdF9pdGVyYXRvciBpdCA9IG1fcGFnZVNldC5i
ZWdpbigpOworICAgIEhhc2hTZXQ8V2ViUGFnZSo+Ojpjb25zdF9pdGVyYXRvciBlbmQgPSBtX3Bh
Z2VTZXQuZW5kKCk7CisgICAgZm9yICg7IGl0ICE9IGVuZDsgKytpdCkgeworICAgICAgICBXZWJQ
YWdlKiBwYWdlID0gKml0OworICAgICAgICBpZiAocGFnZS0+Y29yZVBhZ2UoKSkKKyAgICAgICAg
ICAgIEJhdHRlcnlDb250cm9sbGVyOjpmcm9tKHBhZ2UtPmNvcmVQYWdlKCkpLT51cGRhdGVCYXR0
ZXJ5U3RhdHVzKHN0YXR1cy5nZXQoKSk7CisgICAgfQorI2VuZGlmIC8vIEVOQUJMRShCQVRURVJZ
X1NUQVRVUykKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0Mi9XZWJQcm9jZXNzL0JhdHRlcnkvV2ViQmF0dGVyeU1hbmFnZXIuaCBiL1NvdXJjZS9X
ZWJLaXQyL1dlYlByb2Nlc3MvQmF0dGVyeS9XZWJCYXR0ZXJ5TWFuYWdlci5oCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmMyODg3YzAKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3Vy
Y2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0JhdHRlcnkvV2ViQmF0dGVyeU1hbmFnZXIuaApAQCAtMCww
ICsxLDcxIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEyIEludGVsIENvcnBvcmF0aW9uLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBh
cmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWlu
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBp
biBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJv
dmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJP
VklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFO
RCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkg
QU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4g
SU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBM
SUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVN
UExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNF
UzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJV
UFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hF
VEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElO
RyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0Yg
VEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVmIFdlYkJhdHRlcnlNYW5hZ2Vy
X2gKKyNkZWZpbmUgV2ViQmF0dGVyeU1hbmFnZXJfaAorCisjaW5jbHVkZSAiTWVzc2FnZUlELmgi
CisjaW5jbHVkZSAiV2ViQmF0dGVyeVN0YXR1cy5oIgorI2luY2x1ZGUgIldlYkNvcmVBcmd1bWVu
dENvZGVycy5oIgorI2luY2x1ZGUgPHd0Zi9IYXNoU2V0Lmg+CisjaW5jbHVkZSA8d3RmL05vbmNv
cHlhYmxlLmg+CisjaW5jbHVkZSA8d3RmL3RleHQvQXRvbWljU3RyaW5nLmg+CisKK25hbWVzcGFj
ZSBDb3JlSVBDIHsKK2NsYXNzIEFyZ3VtZW50RGVjb2RlcjsKK2NsYXNzIENvbm5lY3Rpb247Cit9
CisKK25hbWVzcGFjZSBXZWJLaXQgeworCitjbGFzcyBXZWJQYWdlOworY2xhc3MgV2ViUHJvY2Vz
czsKKworY2xhc3MgV2ViQmF0dGVyeU1hbmFnZXIgeworICAgIFdURl9NQUtFX05PTkNPUFlBQkxF
KFdlYkJhdHRlcnlNYW5hZ2VyKTsKKworcHVibGljOgorICAgIGV4cGxpY2l0IFdlYkJhdHRlcnlN
YW5hZ2VyKFdlYlByb2Nlc3MqKTsKKyAgICB+V2ViQmF0dGVyeU1hbmFnZXIoKTsKKworICAgIHZv
aWQgcmVnaXN0ZXJXZWJQYWdlKFdlYlBhZ2UqKTsKKyAgICB2b2lkIHVucmVnaXN0ZXJXZWJQYWdl
KFdlYlBhZ2UqKTsKKworICAgIHZvaWQgZGlkQ2hhbmdlQmF0dGVyeVN0YXR1cyhjb25zdCBXVEY6
OkF0b21pY1N0cmluZyYgZXZlbnRUeXBlLCBjb25zdCBXZWJCYXR0ZXJ5U3RhdHVzOjpEYXRhJik7
CisgICAgdm9pZCB1cGRhdGVCYXR0ZXJ5U3RhdHVzKGNvbnN0IFdlYkJhdHRlcnlTdGF0dXM6OkRh
dGEmKTsKKworICAgIHZvaWQgZGlkUmVjZWl2ZU1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbios
IENvcmVJUEM6Ok1lc3NhZ2VJRCwgQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyKik7CisKK3ByaXZh
dGU6CisgICAgLy8gSW1wbGVtZW50ZWQgaW4gZ2VuZXJhdGVkIFdlYkJhdHRlcnlNYW5hZ2VyTWVz
c2FnZVJlY2VpdmVyLmNwcAorICAgIHZvaWQgZGlkUmVjZWl2ZVdlYkJhdHRlcnlNYW5hZ2VyTWVz
c2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiwgQ29yZUlQQzo6TWVzc2FnZUlELCBDb3JlSVBDOjpB
cmd1bWVudERlY29kZXIqKTsKKworICAgIFdlYlByb2Nlc3MqIG1fcHJvY2VzczsKKyAgICBIYXNo
U2V0PFdlYlBhZ2UqPiBtX3BhZ2VTZXQ7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKKwor
I2VuZGlmIC8vIFdlYkJhdHRlcnlNYW5hZ2VyX2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQy
L1dlYlByb2Nlc3MvQmF0dGVyeS9XZWJCYXR0ZXJ5TWFuYWdlci5tZXNzYWdlcy5pbiBiL1NvdXJj
ZS9XZWJLaXQyL1dlYlByb2Nlc3MvQmF0dGVyeS9XZWJCYXR0ZXJ5TWFuYWdlci5tZXNzYWdlcy5p
bgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5jMWEyYWY4Ci0tLSAvZGV2L251
bGwKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9CYXR0ZXJ5L1dlYkJhdHRlcnlNYW5h
Z2VyLm1lc3NhZ2VzLmluCkBAIC0wLDAgKzEsMjYgQEAKKyMgQ29weXJpZ2h0IChDKSAyMDEyIElu
dGVsIENvcnBvcmF0aW9uLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorIworIyBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyMg
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zCisjIGFyZSBtZXQ6CisjIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNv
ZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorIyAgICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorIyAyLiAgUmVk
aXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyMgICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyMgICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVy
IG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisjCisjIFRISVMgU09G
VFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFT
IElTJycgQU5ECisjIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVECisjIFdBUlJBTlRJRVMgT0YgTUVSQ0hB
TlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKKyMgRElT
Q0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JT
IEJFIExJQUJMRSBGT1IKKyMgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJ
QUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTAorIyBEQU1BR0VTIChJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUgorIyBT
RVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVS
UlVQVElPTikgSE9XRVZFUgorIyBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZ
LCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLAorIyBPUiBUT1JUIChJTkNM
VURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0Yg
VEhFIFVTRQorIyBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLgorCittZXNzYWdlcyAtPiBXZWJCYXR0ZXJ5TWFuYWdlciB7
CisgICAgRGlkQ2hhbmdlQmF0dGVyeVN0YXR1cyhBdG9taWNTdHJpbmcgZXZlbnRUeXBlLCBXZWJL
aXQ6OldlYkJhdHRlcnlTdGF0dXM6OkRhdGEgc3RhdHVzKTsKKyAgICBVcGRhdGVCYXR0ZXJ5U3Rh
dHVzKFdlYktpdDo6V2ViQmF0dGVyeVN0YXR1czo6RGF0YSBzdGF0dXMpOworfQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJCYXR0ZXJ5Q2xp
ZW50LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQmF0
dGVyeUNsaWVudC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOTEwMzNm
YQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1
cHBvcnQvV2ViQmF0dGVyeUNsaWVudC5jcHAKQEAgLTAsMCArMSw1NyBAQAorLyoKKyAqIENvcHly
aWdodCAoQykgMjAxMiBJbnRlbCBDb3Jwb3JhdGlvbi4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAq
CisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJp
YnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXBy
b2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1l
bnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1
dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5E
IElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElF
RCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBM
SUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJ
Q1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExF
IElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJ
TkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVO
VElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQg
T0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBP
UiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBB
TkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBT
VFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJ
U0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FS
RSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0Uu
CisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIldlYkJhdHRlcnlDbGllbnQu
aCIKKworI2lmIEVOQUJMRShCQVRURVJZX1NUQVRVUykKKworI2luY2x1ZGUgIldlYkJhdHRlcnlN
YW5hZ2VyLmgiCisjaW5jbHVkZSAiV2ViUGFnZS5oIgorI2luY2x1ZGUgIldlYlByb2Nlc3MuaCIK
KwordXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CisKK25hbWVzcGFjZSBXZWJLaXQgeworCit2b2lk
IFdlYkJhdHRlcnlDbGllbnQ6OnN0YXJ0VXBkYXRpbmcoKQoreworICAgIFdlYlByb2Nlc3M6OnNo
YXJlZCgpLmJhdHRlcnlNYW5hZ2VyKCkucmVnaXN0ZXJXZWJQYWdlKG1fcGFnZSk7Cit9CisKK3Zv
aWQgV2ViQmF0dGVyeUNsaWVudDo6c3RvcFVwZGF0aW5nKCkKK3sKKyAgICBXZWJQcm9jZXNzOjpz
aGFyZWQoKS5iYXR0ZXJ5TWFuYWdlcigpLnVucmVnaXN0ZXJXZWJQYWdlKG1fcGFnZSk7Cit9CisK
K3ZvaWQgV2ViQmF0dGVyeUNsaWVudDo6YmF0dGVyeUNvbnRyb2xsZXJEZXN0cm95ZWQoKQorewor
ICAgIFdlYlByb2Nlc3M6OnNoYXJlZCgpLmJhdHRlcnlNYW5hZ2VyKCkudW5yZWdpc3RlcldlYlBh
Z2UobV9wYWdlKTsKKyAgICBkZWxldGUgdGhpczsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0
CisKKyNlbmRpZiAvLyBFTkFCTEUoQkFUVEVSWV9TVEFUVVMpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkJhdHRlcnlDbGllbnQuaCBiL1Nv
dXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQmF0dGVyeUNsaWVudC5o
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjFhOWY0ZTcKLS0tIC9kZXYvbnVs
bAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkJhdHRl
cnlDbGllbnQuaApAQCAtMCwwICsxLDU0IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEyIElu
dGVsIENvcnBvcmF0aW9uLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAor
ICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJj
ZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIu
IFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBv
dGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRI
SVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9S
UyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBP
RiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9T
RSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09O
VFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVO
VEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVU
RSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJV
U0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZ
IE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFks
IE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcg
SU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklT
RUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVm
IFdlYkJhdHRlcnlDbGllbnRfaAorI2RlZmluZSBXZWJCYXR0ZXJ5Q2xpZW50X2gKKworI2luY2x1
ZGUgPFdlYkNvcmUvQmF0dGVyeUNsaWVudC5oPgorCituYW1lc3BhY2UgV2ViS2l0IHsKKworY2xh
c3MgV2ViUGFnZTsKKworY2xhc3MgV2ViQmF0dGVyeUNsaWVudCA6IHB1YmxpYyBXZWJDb3JlOjpC
YXR0ZXJ5Q2xpZW50IHsKK3B1YmxpYzoKKyAgICBXZWJCYXR0ZXJ5Q2xpZW50KFdlYlBhZ2UqIHBh
Z2UpCisgICAgICAgIDogbV9wYWdlKHBhZ2UpCisgICAgeworICAgIH0KKworICAgIHZpcnR1YWwg
fldlYkJhdHRlcnlDbGllbnQoKSB7IH0KKworcHJpdmF0ZToKKyAgICB2aXJ0dWFsIHZvaWQgc3Rh
cnRVcGRhdGluZygpIE9WRVJSSURFOworICAgIHZpcnR1YWwgdm9pZCBzdG9wVXBkYXRpbmcoKSBP
VkVSUklERTsKKyAgICB2aXJ0dWFsIHZvaWQgYmF0dGVyeUNvbnRyb2xsZXJEZXN0cm95ZWQoKSBP
VkVSUklERTsKKworICAgIFdlYlBhZ2UqIG1fcGFnZTsKK307CisKK30gLy8gbmFtZXNwYWNlIFdl
YktpdAorCisjZW5kaWYgLy8gV2ViQmF0dGVyeUNsaWVudF9oCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJv
Y2Vzcy9XZWJQcm9jZXNzLmNwcAppbmRleCAyYjAzODJkLi4xZDY0YWM2IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuY3BwCisrKyBiL1NvdXJjZS9XZWJL
aXQyL1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5jcHAKQEAgLTE0NSw2ICsxNDUsNyBAQCBXZWJQcm9j
ZXNzOjpXZWJQcm9jZXNzKCkKICNlbmRpZgogICAgICwgbV90ZXh0Q2hlY2tlclN0YXRlKCkKICAg
ICAsIG1fZ2VvbG9jYXRpb25NYW5hZ2VyKHRoaXMpCisgICAgLCBtX2JhdHRlcnlNYW5hZ2VyKHRo
aXMpCiAjaWYgRU5BQkxFKE5PVElGSUNBVElPTlMpIHx8IEVOQUJMRShMRUdBQ1lfTk9USUZJQ0FU
SU9OUykKICAgICAsIG1fbm90aWZpY2F0aW9uTWFuYWdlcih0aGlzKQogI2VuZGlmCkBAIC02MzEs
NiArNjMyLDExIEBAIHZvaWQgV2ViUHJvY2Vzczo6ZGlkUmVjZWl2ZU1lc3NhZ2UoQ29yZUlQQzo6
Q29ubmVjdGlvbiogY29ubmVjdGlvbiwgQ29yZUlQQzo6TWVzCiAgICAgICAgIHJldHVybjsKICAg
ICB9CiAKKyAgICBpZiAobWVzc2FnZUlELmlzPENvcmVJUEM6Ok1lc3NhZ2VDbGFzc1dlYkJhdHRl
cnlNYW5hZ2VyPigpKSB7CisgICAgICAgIG1fYmF0dGVyeU1hbmFnZXIuZGlkUmVjZWl2ZU1lc3Nh
Z2UoY29ubmVjdGlvbiwgbWVzc2FnZUlELCBhcmd1bWVudHMpOworICAgICAgICByZXR1cm47Cisg
ICAgfQorCiAgICAgaWYgKG1lc3NhZ2VJRC5pczxDb3JlSVBDOjpNZXNzYWdlQ2xhc3NXZWJJY29u
RGF0YWJhc2VQcm94eT4oKSkgewogICAgICAgICBtX2ljb25EYXRhYmFzZVByb3h5LmRpZFJlY2Vp
dmVNZXNzYWdlKGNvbm5lY3Rpb24sIG1lc3NhZ2VJRCwgYXJndW1lbnRzKTsKICAgICAgICAgcmV0
dXJuOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmgg
Yi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuaAppbmRleCA5ODZjZTM2Li4x
MWRhMzAyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlByb2Nlc3Mu
aAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuaApAQCAtMzYsNiAr
MzYsNyBAQAogI2luY2x1ZGUgIlNoYXJlZE1lbW9yeS5oIgogI2luY2x1ZGUgIlRleHRDaGVja2Vy
U3RhdGUuaCIKICNpbmNsdWRlICJWaXNpdGVkTGlua1RhYmxlLmgiCisjaW5jbHVkZSAiV2ViQmF0
dGVyeU1hbmFnZXIuaCIKICNpbmNsdWRlICJXZWJDb25uZWN0aW9uVG9VSVByb2Nlc3MuaCIKICNp
bmNsdWRlICJXZWJHZW9sb2NhdGlvbk1hbmFnZXIuaCIKICNpbmNsdWRlICJXZWJJY29uRGF0YWJh
c2VQcm94eS5oIgpAQCAtMTQyLDYgKzE0Myw5IEBAIHB1YmxpYzoKIAogICAgIC8vIEdlb2xvY2F0
aW9uCiAgICAgV2ViR2VvbG9jYXRpb25NYW5hZ2VyJiBnZW9sb2NhdGlvbk1hbmFnZXIoKSB7IHJl
dHVybiBtX2dlb2xvY2F0aW9uTWFuYWdlcjsgfQorCisgICAgLy8gQmF0dGVyeQorICAgIFdlYkJh
dHRlcnlNYW5hZ2VyJiBiYXR0ZXJ5TWFuYWdlcigpIHsgcmV0dXJuIG1fYmF0dGVyeU1hbmFnZXI7
IH0KICAgICAKICNpZiBFTkFCTEUoTk9USUZJQ0FUSU9OUykgfHwgRU5BQkxFKExFR0FDWV9OT1RJ
RklDQVRJT05TKQogICAgIFdlYk5vdGlmaWNhdGlvbk1hbmFnZXImIG5vdGlmaWNhdGlvbk1hbmFn
ZXIoKSB7IHJldHVybiBtX25vdGlmaWNhdGlvbk1hbmFnZXI7IH0KQEAgLTI4Niw2ICsyOTAsNyBA
QCBwcml2YXRlOgogCiAgICAgVGV4dENoZWNrZXJTdGF0ZSBtX3RleHRDaGVja2VyU3RhdGU7CiAg
ICAgV2ViR2VvbG9jYXRpb25NYW5hZ2VyIG1fZ2VvbG9jYXRpb25NYW5hZ2VyOworICAgIFdlYkJh
dHRlcnlNYW5hZ2VyIG1fYmF0dGVyeU1hbmFnZXI7CiAjaWYgRU5BQkxFKE5PVElGSUNBVElPTlMp
IHx8IEVOQUJMRShMRUdBQ1lfTk9USUZJQ0FUSU9OUykKICAgICBXZWJOb3RpZmljYXRpb25NYW5h
Z2VyIG1fbm90aWZpY2F0aW9uTWFuYWdlcjsKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdDIvd2luL1dlYktpdDIudmNwcm9qIGIvU291cmNlL1dlYktpdDIvd2luL1dlYktpdDIudmNw
cm9qCmluZGV4IGMyZmVmMDkuLmY1MzY5NzkgMTAwNzU1Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL3dp
bi9XZWJLaXQyLnZjcHJvagorKysgYi9Tb3VyY2UvV2ViS2l0Mi93aW4vV2ViS2l0Mi52Y3Byb2oK
QEAgLTYwNyw2ICs2MDcsMTQgQEAKIAkJCQk+CiAJCQk8L0ZpbGU+CiAJCQk8RmlsZQorCQkJCVJl
bGF0aXZlUGF0aD0iLi5cU2hhcmVkXFdlYkJhdHRlcnlTdGF0dXMuY3BwIgorCQkJCT4KKwkJCTwv
RmlsZT4KKwkJCTxGaWxlCisJCQkJUmVsYXRpdmVQYXRoPSIuLlxTaGFyZWRcV2ViQmF0dGVyeVN0
YXR1cy5oIgorCQkJCT4KKwkJCTwvRmlsZT4KKwkJCTxGaWxlCiAJCQkJUmVsYXRpdmVQYXRoPSIu
LlxTaGFyZWRcV2ViQ2VydGlmaWNhdGVJbmZvLmgiCiAJCQkJPgogCQkJPC9GaWxlPgpAQCAtMTY1
MSw2ICsxNjU5LDIyIEBACiAJCQkJPC9GaWxlPgogCQkJPC9GaWx0ZXI+CiAJCQk8RmlsdGVyCisJ
CQkJTmFtZT0iQmF0dGVyeSIKKwkJCQk+CisJCQkJPEZpbGUKKwkJCQkJUmVsYXRpdmVQYXRoPSIu
LlxXZWJQcm9jZXNzXEJhdHRlcnlcV2ViR2VvbG9jYXRpb25NYW5hZ2VyLmNwcCIKKwkJCQkJPgor
CQkJCTwvRmlsZT4KKwkJCQk8RmlsZQorCQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXFdlYlByb2Nlc3Nc
QmF0dGVyeVxXZWJHZW9sb2NhdGlvbk1hbmFnZXIuaCIKKwkJCQkJPgorCQkJCTwvRmlsZT4KKwkJ
CQk8RmlsZQorCQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXFdlYlByb2Nlc3NcQmF0dGVyeVxXZWJHZW9s
b2NhdGlvbk1hbmFnZXIubWVzc2FnZXMuaW4iCisJCQkJCT4KKwkJCQk8L0ZpbGU+CisJCQk8L0Zp
bHRlcj4KKwkJCTxGaWx0ZXIKIAkJCQlOYW1lPSJHZW9sb2NhdGlvbiIKIAkJCQk+CiAJCQkJPEZp
bGUKQEAgLTE4MzAsNiArMTg1NCwxNCBAQAogCQkJCU5hbWU9IldlYkNvcmVTdXBwb3J0IgogCQkJ
CT4KIAkJCQk8RmlsZQorCQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXFdlYlByb2Nlc3NcV2ViQ29yZVN1
cHBvcnRcV2ViQmF0dGVyeUNsaWVudC5jcHAiCisJCQkJCT4KKwkJCQk8L0ZpbGU+CisJCQkJPEZp
bGUKKwkJCQkJUmVsYXRpdmVQYXRoPSIuLlxXZWJQcm9jZXNzXFdlYkNvcmVTdXBwb3J0XFdlYkJh
dHRlcnlDbGllbnQuaCIKKwkJCQkJPgorCQkJCTwvRmlsZT4KKwkJCQk8RmlsZQogCQkJCQlSZWxh
dGl2ZVBhdGg9Ii4uXFdlYlByb2Nlc3NcV2ViQ29yZVN1cHBvcnRcV2ViQ2hyb21lQ2xpZW50LmNw
cCIKIAkJCQkJPgogCQkJCTwvRmlsZT4KQEAgLTI4ODMsNiArMjkxNSwyNiBAQAogCQkJCT4KIAkJ
CTwvRmlsZT4KIAkJCTxGaWxlCisJCQkJUmVsYXRpdmVQYXRoPSIuLlxVSVByb2Nlc3NcV2ViQmF0
dGVyeU1hbmFnZXJQcm94eS5jcHAiCisJCQkJPgorCQkJPC9GaWxlPgorCQkJPEZpbGUKKwkJCQlS
ZWxhdGl2ZVBhdGg9Ii4uXFVJUHJvY2Vzc1xXZWJCYXR0ZXJ5TWFuYWdlclByb3h5LmgiCisJCQkJ
PgorCQkJPC9GaWxlPgorCQkJPEZpbGUKKwkJCQlSZWxhdGl2ZVBhdGg9Ii4uXFVJUHJvY2Vzc1xX
ZWJCYXR0ZXJ5TWFuYWdlclByb3h5Lm1lc3NhZ2VzLmluIgorCQkJCT4KKwkJCTwvRmlsZT4KKwkJ
CTxGaWxlCisJCQkJUmVsYXRpdmVQYXRoPSIuLlxVSVByb2Nlc3NcV2ViQmF0dGVyeVByb3ZpZGVy
LmNwcCIKKwkJCQk+CisJCQk8L0ZpbGU+CisJCQk8RmlsZQorCQkJCVJlbGF0aXZlUGF0aD0iLi5c
VUlQcm9jZXNzXFdlYkJhdHRlcnlQcm92aWRlci5oIgorCQkJCT4KKwkJCTwvRmlsZT4KKwkJCTxG
aWxlCiAJCQkJUmVsYXRpdmVQYXRoPSIuLlxVSVByb2Nlc3NcV2ViQ29ubmVjdGlvblRvV2ViUHJv
Y2Vzcy5jcHAiCiAJCQkJPgogCQkJPC9GaWxlPgpAQCAtMzMwOSw2ICszMzYxLDE0IEBACiAJCQkJ
CQk+CiAJCQkJCTwvRmlsZT4KIAkJCQkJPEZpbGUKKwkJCQkJCVJlbGF0aXZlUGF0aD0iLi5cVUlQ
cm9jZXNzXEFQSVxDXFdLQmF0dGVyeU1hbmFnZXIuY3BwIgorCQkJCQkJPgorCQkJCQk8L0ZpbGU+
CisJCQkJCTxGaWxlCisJCQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXFVJUHJvY2Vzc1xBUElcQ1xXS0Jh
dHRlcnlNYW5hZ2VyLmgiCisJCQkJCQk+CisJCQkJCTwvRmlsZT4KKwkJCQkJPEZpbGUKIAkJCQkJ
CVJlbGF0aXZlUGF0aD0iLi5cVUlQcm9jZXNzXEFQSVxDXFdLQ29udGV4dC5jcHAiCiAJCQkJCQk+
CiAJCQkJCTwvRmlsZT4KQEAgLTQyNDMsNiArNDMwMywyMiBAQAogCQkJCT4KIAkJCTwvRmlsZT4K
IAkJCTxGaWxlCisJCQkJUmVsYXRpdmVQYXRoPSIkKENvbmZpZ3VyYXRpb25CdWlsZERpcilcb2Jq
XCQoUHJvamVjdE5hbWUpXERlcml2ZWRTb3VyY2VzXFdlYkJhdHRlcnlNYW5hZ2VyTWVzc2FnZVJl
Y2VpdmVyLmNwcCIKKwkJCQk+CisJCQk8L0ZpbGU+CisJCQk8RmlsZQorCQkJCVJlbGF0aXZlUGF0
aD0iJChDb25maWd1cmF0aW9uQnVpbGREaXIpXG9ialwkKFByb2plY3ROYW1lKVxEZXJpdmVkU291
cmNlc1xXZWJCYXR0ZXJ5TWFuYWdlck1lc3NhZ2VzLmgiCisJCQkJPgorCQkJPC9GaWxlPgorCQkJ
PEZpbGUKKwkJCQlSZWxhdGl2ZVBhdGg9IiQoQ29uZmlndXJhdGlvbkJ1aWxkRGlyKVxvYmpcJChQ
cm9qZWN0TmFtZSlcRGVyaXZlZFNvdXJjZXNcV2ViQmF0dGVyeU1hbmFnZXJQcm94eU1lc3NhZ2VS
ZWNlaXZlci5jcHAiCisJCQkJPgorCQkJPC9GaWxlPgorCQkJPEZpbGUKKwkJCQlSZWxhdGl2ZVBh
dGg9IiQoQ29uZmlndXJhdGlvbkJ1aWxkRGlyKVxvYmpcJChQcm9qZWN0TmFtZSlcRGVyaXZlZFNv
dXJjZXNcV2ViQmF0dGVyeU1hbmFnZXJQcm94eU1lc3NhZ2VzLmgiCisJCQkJPgorCQkJPC9GaWxl
PgorCQkJPEZpbGUKIAkJCQlSZWxhdGl2ZVBhdGg9IiQoQ29uZmlndXJhdGlvbkJ1aWxkRGlyKVxv
YmpcJChQcm9qZWN0TmFtZSlcRGVyaXZlZFNvdXJjZXNcV2ViQ29udGV4dE1lc3NhZ2VSZWNlaXZl
ci5jcHAiCiAJCQkJPgogCQkJPC9GaWxlPgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvd2lu
L1dlYktpdDJDb21tb24udnNwcm9wcyBiL1NvdXJjZS9XZWJLaXQyL3dpbi9XZWJLaXQyQ29tbW9u
LnZzcHJvcHMKaW5kZXggODFkMzRkOS4uMWEwMGI1YyAxMDA3NTUKLS0tIGEvU291cmNlL1dlYktp
dDIvd2luL1dlYktpdDJDb21tb24udnNwcm9wcworKysgYi9Tb3VyY2UvV2ViS2l0Mi93aW4vV2Vi
S2l0MkNvbW1vbi52c3Byb3BzCkBAIC02LDcgKzYsNyBAQAogCT4KIAk8VG9vbAogCQlOYW1lPSJW
Q0NMQ29tcGlsZXJUb29sIgotCQlBZGRpdGlvbmFsSW5jbHVkZURpcmVjdG9yaWVzPSImcXVvdDsk
KFByb2plY3REaXIpJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcilcLi4mcXVvdDs7JnF1b3Q7JChQ
cm9qZWN0RGlyKVwuLlxQbGF0Zm9ybSZxdW90OzsmcXVvdDskKFByb2plY3REaXIpXC4uXFBsYXRm
b3JtXGNnJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcilcLi5cUGxhdGZvcm1cQ29yZUlQQyZxdW90
OzsmcXVvdDskKFByb2plY3REaXIpXC4uXFBsdWdpblByb2Nlc3MmcXVvdDs7JnF1b3Q7JChQcm9q
ZWN0RGlyKVwuLlxTaGFyZWQmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKVwuLlxTaGFyZWRcd2lu
JnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcilcLi5cU2hhcmVkXGNmJnF1b3Q7OyZxdW90OyQoUHJv
amVjdERpcilcLi5cU2hhcmVkXEFQSVxjJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcilcLi5cU2hh
cmVkXEFQSVxjXGNmJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcilcLi5cU2hhcmVkXEFQSVxjXHdp
biZxdW90OzsmcXVvdDskKFByb2plY3REaXIpXC4uXFNoYXJlZFxDb3JlSVBDU3VwcG9ydCZxdW90
OzsmcXVvdDskKFByb2plY3REaXIpXC4uXFNoYXJlZFxQbHVnaW5zJnF1b3Q7OyZxdW90OyQoUHJv
amVjdERpcilcLi5cU2hhcmVkXFBsdWdpbnNcTmV0c2NhcGUmcXVvdDs7JnF1b3Q7JChQcm9qZWN0
RGlyKVwuLlxVSVByb2Nlc3MmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKVwuLlxVSVByb2Nlc3Nc
QVBJXEMmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKVwuLlxVSVByb2Nlc3NcQVBJXENcd2luJnF1
b3Q7OyZxdW90OyQoUHJvamVjdERpcilcLi5cVUlQcm9jZXNzXEFQSVxjcHAmcXVvdDs7JnF1b3Q7
JChQcm9qZWN0RGlyKVwuLlxVSVByb2Nlc3NcQVBJXHdpbiZxdW90OzsmcXVvdDskKFByb2plY3RE
aXIpXC4uXFVJUHJvY2Vzc1xBdXRoZW50aWNhdGlvbiZxdW90OzsmcXVvdDskKFByb2plY3REaXIp
XC4uXFVJUHJvY2Vzc1xEb3dubG9hZHMmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKVwuLlxVSVBy
b2Nlc3NcTGF1bmNoZXImcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKVwuLlxVSVByb2Nlc3NcTm90
aWZpY2F0aW9ucyZxdW90OzsmcXVvdDskKFByb2plY3REaXIpXC4uXFVJUHJvY2Vzc1xQbHVnaW5z
JnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcilcLi5cVUlQcm9jZXNzXHdpbiZxdW90OzsmcXVvdDsk
KFByb2plY3REaXIpXC4uXFdlYlByb2Nlc3MmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKVwuLlxX
ZWJQcm9jZXNzXFdlYkNvcmVTdXBwb3J0JnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcilcLi5cV2Vi
UHJvY2Vzc1xXZWJDb3JlU3VwcG9ydFx3aW4mcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKVwuLlxX
ZWJQcm9jZXNzXFdlYlBhZ2UmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKVwuLlxXZWJQcm9jZXNz
XFdlYlBhZ2Vcd2luJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcilcLi5cV2ViUHJvY2Vzc1xJY29u
RGF0YWJhc2UmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKVwuLlxXZWJQcm9jZXNzXEluamVjdGVk
QnVuZGxlJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcilcLi5cV2ViUHJvY2Vzc1xJbmplY3RlZEJ1
bmRsZVxBUElcYyZxdW90OzsmcXVvdDskKFByb2plY3REaXIpXC4uXFdlYlByb2Nlc3NcSW5qZWN0
ZWRCdW5kbGVcRE9NJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcilcLi5cV2ViUHJvY2Vzc1xJbmpl
Y3RlZEJ1bmRsZVx3aW4mcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKVwuLlxXZWJQcm9jZXNzXFBs
dWdpbnMmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKVwuLlxXZWJQcm9jZXNzXFBsdWdpbnNcTmV0
c2NhcGUmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKVwuLlxXZWJQcm9jZXNzXHdpbiZxdW90Ozsm
cXVvdDskKFByb2plY3REaXIpXC4uXFdlYlByb2Nlc3NcQXBwbGljYXRpb25DYWNoZSZxdW90Ozsm
cXVvdDskKFByb2plY3REaXIpXC4uXFdlYlByb2Nlc3NcQXV0aGVudGljYXRpb24mcXVvdDs7JnF1
b3Q7JChQcm9qZWN0RGlyKVwuLlxXZWJQcm9jZXNzXENvb2tpZXMmcXVvdDs7JnF1b3Q7JChQcm9q
ZWN0RGlyKVwuLlxXZWJQcm9jZXNzXENvb2tpZXNcY2YmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGly
KVwuLlxXZWJQcm9jZXNzXERvd25sb2FkcyZxdW90OzsmcXVvdDskKFByb2plY3REaXIpXC4uXFdl
YlByb2Nlc3NcRG93bmxvYWRzXGNmJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcilcLi5cV2ViUHJv
Y2Vzc1xGdWxsU2NyZWVuJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcilcLi5cV2ViUHJvY2Vzc1xH
ZW9sb2NhdGlvbiZxdW90OzsmcXVvdDskKFByb2plY3REaXIpXC4uXFdlYlByb2Nlc3NcS2V5VmFs
dWVTdG9yYWdlJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcilcLi5cV2ViUHJvY2Vzc1xNZWRpYUNh
Y2hlJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcilcLi5cV2ViUHJvY2Vzc1xOb3RpZmljYXRpb25z
JnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcilcLi5cV2ViUHJvY2Vzc1xSZXNvdXJjZUNhY2hlJnF1
b3Q7OyZxdW90OyQoQ29uZmlndXJhdGlvbkJ1aWxkRGlyKVxvYmpcJChQcm9qZWN0TmFtZSlcRGVy
aXZlZFNvdXJjZXMmcXVvdDs7JnF1b3Q7JChDb25maWd1cmF0aW9uQnVpbGREaXIpXEluY2x1ZGUm
cXVvdDs7JnF1b3Q7JChDb25maWd1cmF0aW9uQnVpbGREaXIpXEluY2x1ZGVccHJpdmF0ZSZxdW90
OzsmcXVvdDskKFdlYktpdExpYnJhcmllc0RpcilcSW5jbHVkZSZxdW90OzsmcXVvdDskKFdlYktp
dExpYnJhcmllc0RpcilcSW5jbHVkZVxwcml2YXRlJnF1b3Q7OyZxdW90OyQoV2ViS2l0TGlicmFy
aWVzRGlyKVxJbmNsdWRlXHB0aHJlYWRzJnF1b3Q7OyZxdW90OyQoQ29uZmlndXJhdGlvbkJ1aWxk
RGlyKVxJbmNsdWRlXEphdmFTY3JpcHRDb3JlJnF1b3Q7OyZxdW90OyQoQ29uZmlndXJhdGlvbkJ1
aWxkRGlyKVxJbmNsdWRlXHByaXZhdGVcSmF2YVNjcmlwdENvcmUmcXVvdDs7JnF1b3Q7JChXZWJL
aXRMaWJyYXJpZXNEaXIpXEluY2x1ZGVcSmF2YVNjcmlwdENvcmUmcXVvdDs7JnF1b3Q7JChXZWJL
aXRMaWJyYXJpZXNEaXIpXEluY2x1ZGVccHJpdmF0ZVxKYXZhU2NyaXB0Q29yZSZxdW90OzsmcXVv
dDskKENvbmZpZ3VyYXRpb25CdWlsZERpcilcSW5jbHVkZVxXZWJDb3JlXEZvcndhcmRpbmdIZWFk
ZXJzJnF1b3Q7OyZxdW90OyQoV2ViS2l0TGlicmFyaWVzRGlyKVxJbmNsdWRlXFdlYkNvcmVcRm9y
d2FyZGluZ0hlYWRlcnMmcXVvdDsiCisJCUFkZGl0aW9uYWxJbmNsdWRlRGlyZWN0b3JpZXM9IiZx
dW90OyQoUHJvamVjdERpcikmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKVwuLiZxdW90OzsmcXVv
dDskKFByb2plY3REaXIpXC4uXFBsYXRmb3JtJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcilcLi5c
UGxhdGZvcm1cY2cmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKVwuLlxQbGF0Zm9ybVxDb3JlSVBD
JnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcilcLi5cUGx1Z2luUHJvY2VzcyZxdW90OzsmcXVvdDsk
KFByb2plY3REaXIpXC4uXFNoYXJlZCZxdW90OzsmcXVvdDskKFByb2plY3REaXIpXC4uXFNoYXJl
ZFx3aW4mcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKVwuLlxTaGFyZWRcY2YmcXVvdDs7JnF1b3Q7
JChQcm9qZWN0RGlyKVwuLlxTaGFyZWRcQVBJXGMmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKVwu
LlxTaGFyZWRcQVBJXGNcY2YmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKVwuLlxTaGFyZWRcQVBJ
XGNcd2luJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcilcLi5cU2hhcmVkXENvcmVJUENTdXBwb3J0
JnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcilcLi5cU2hhcmVkXFBsdWdpbnMmcXVvdDs7JnF1b3Q7
JChQcm9qZWN0RGlyKVwuLlxTaGFyZWRcUGx1Z2luc1xOZXRzY2FwZSZxdW90OzsmcXVvdDskKFBy
b2plY3REaXIpXC4uXFVJUHJvY2VzcyZxdW90OzsmcXVvdDskKFByb2plY3REaXIpXC4uXFVJUHJv
Y2Vzc1xBUElcQyZxdW90OzsmcXVvdDskKFByb2plY3REaXIpXC4uXFVJUHJvY2Vzc1xBUElcQ1x3
aW4mcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKVwuLlxVSVByb2Nlc3NcQVBJXGNwcCZxdW90Ozsm
cXVvdDskKFByb2plY3REaXIpXC4uXFVJUHJvY2Vzc1xBUElcd2luJnF1b3Q7OyZxdW90OyQoUHJv
amVjdERpcilcLi5cVUlQcm9jZXNzXEF1dGhlbnRpY2F0aW9uJnF1b3Q7OyZxdW90OyQoUHJvamVj
dERpcilcLi5cVUlQcm9jZXNzXERvd25sb2FkcyZxdW90OzsmcXVvdDskKFByb2plY3REaXIpXC4u
XFVJUHJvY2Vzc1xMYXVuY2hlciZxdW90OzsmcXVvdDskKFByb2plY3REaXIpXC4uXFVJUHJvY2Vz
c1xOb3RpZmljYXRpb25zJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcilcLi5cVUlQcm9jZXNzXFBs
dWdpbnMmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKVwuLlxVSVByb2Nlc3Ncd2luJnF1b3Q7OyZx
dW90OyQoUHJvamVjdERpcilcLi5cV2ViUHJvY2VzcyZxdW90OzsmcXVvdDskKFByb2plY3REaXIp
XC4uXFdlYlByb2Nlc3NcV2ViQ29yZVN1cHBvcnQmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKVwu
LlxXZWJQcm9jZXNzXFdlYkNvcmVTdXBwb3J0XHdpbiZxdW90OzsmcXVvdDskKFByb2plY3REaXIp
XC4uXFdlYlByb2Nlc3NcV2ViUGFnZSZxdW90OzsmcXVvdDskKFByb2plY3REaXIpXC4uXFdlYlBy
b2Nlc3NcV2ViUGFnZVx3aW4mcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKVwuLlxXZWJQcm9jZXNz
XEljb25EYXRhYmFzZSZxdW90OzsmcXVvdDskKFByb2plY3REaXIpXC4uXFdlYlByb2Nlc3NcSW5q
ZWN0ZWRCdW5kbGUmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKVwuLlxXZWJQcm9jZXNzXEluamVj
dGVkQnVuZGxlXEFQSVxjJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcilcLi5cV2ViUHJvY2Vzc1xJ
bmplY3RlZEJ1bmRsZVxET00mcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKVwuLlxXZWJQcm9jZXNz
XEluamVjdGVkQnVuZGxlXHdpbiZxdW90OzsmcXVvdDskKFByb2plY3REaXIpXC4uXFdlYlByb2Nl
c3NcUGx1Z2lucyZxdW90OzsmcXVvdDskKFByb2plY3REaXIpXC4uXFdlYlByb2Nlc3NcUGx1Z2lu
c1xOZXRzY2FwZSZxdW90OzsmcXVvdDskKFByb2plY3REaXIpXC4uXFdlYlByb2Nlc3Ncd2luJnF1
b3Q7OyZxdW90OyQoUHJvamVjdERpcilcLi5cV2ViUHJvY2Vzc1xBcHBsaWNhdGlvbkNhY2hlJnF1
b3Q7OyZxdW90OyQoUHJvamVjdERpcilcLi5cV2ViUHJvY2Vzc1xBdXRoZW50aWNhdGlvbiZxdW90
OzsmcXVvdDskKFByb2plY3REaXIpXC4uXFdlYlByb2Nlc3NcQmF0dGVyeSZxdW90OzsmcXVvdDsk
KFByb2plY3REaXIpXC4uXFdlYlByb2Nlc3NcQ29va2llcyZxdW90OzsmcXVvdDskKFByb2plY3RE
aXIpXC4uXFdlYlByb2Nlc3NcQ29va2llc1xjZiZxdW90OzsmcXVvdDskKFByb2plY3REaXIpXC4u
XFdlYlByb2Nlc3NcRG93bmxvYWRzJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcilcLi5cV2ViUHJv
Y2Vzc1xEb3dubG9hZHNcY2YmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKVwuLlxXZWJQcm9jZXNz
XEZ1bGxTY3JlZW4mcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKVwuLlxXZWJQcm9jZXNzXEdlb2xv
Y2F0aW9uJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcilcLi5cV2ViUHJvY2Vzc1xLZXlWYWx1ZVN0
b3JhZ2UmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKVwuLlxXZWJQcm9jZXNzXE1lZGlhQ2FjaGUm
cXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKVwuLlxXZWJQcm9jZXNzXE5vdGlmaWNhdGlvbnMmcXVv
dDs7JnF1b3Q7JChQcm9qZWN0RGlyKVwuLlxXZWJQcm9jZXNzXFJlc291cmNlQ2FjaGUmcXVvdDs7
JnF1b3Q7JChDb25maWd1cmF0aW9uQnVpbGREaXIpXG9ialwkKFByb2plY3ROYW1lKVxEZXJpdmVk
U291cmNlcyZxdW90OzsmcXVvdDskKENvbmZpZ3VyYXRpb25CdWlsZERpcilcSW5jbHVkZSZxdW90
OzsmcXVvdDskKENvbmZpZ3VyYXRpb25CdWlsZERpcilcSW5jbHVkZVxwcml2YXRlJnF1b3Q7OyZx
dW90OyQoV2ViS2l0TGlicmFyaWVzRGlyKVxJbmNsdWRlJnF1b3Q7OyZxdW90OyQoV2ViS2l0TGli
cmFyaWVzRGlyKVxJbmNsdWRlXHByaXZhdGUmcXVvdDs7JnF1b3Q7JChXZWJLaXRMaWJyYXJpZXNE
aXIpXEluY2x1ZGVccHRocmVhZHMmcXVvdDs7JnF1b3Q7JChDb25maWd1cmF0aW9uQnVpbGREaXIp
XEluY2x1ZGVcSmF2YVNjcmlwdENvcmUmcXVvdDs7JnF1b3Q7JChDb25maWd1cmF0aW9uQnVpbGRE
aXIpXEluY2x1ZGVccHJpdmF0ZVxKYXZhU2NyaXB0Q29yZSZxdW90OzsmcXVvdDskKFdlYktpdExp
YnJhcmllc0RpcilcSW5jbHVkZVxKYXZhU2NyaXB0Q29yZSZxdW90OzsmcXVvdDskKFdlYktpdExp
YnJhcmllc0RpcilcSW5jbHVkZVxwcml2YXRlXEphdmFTY3JpcHRDb3JlJnF1b3Q7OyZxdW90OyQo
Q29uZmlndXJhdGlvbkJ1aWxkRGlyKVxJbmNsdWRlXFdlYkNvcmVcRm9yd2FyZGluZ0hlYWRlcnMm
cXVvdDs7JnF1b3Q7JChXZWJLaXRMaWJyYXJpZXNEaXIpXEluY2x1ZGVcV2ViQ29yZVxGb3J3YXJk
aW5nSGVhZGVycyZxdW90OyIKIAkJUHJlcHJvY2Vzc29yRGVmaW5pdGlvbnM9Il9VU1JETEw7V0VC
S0lUX0VYUE9SVFM7RlJBTUVXT1JLX05BTUU9V2ViS2l0O0JVSUxESU5HX1dFQktJVCIKIAkJVXNl
UHJlY29tcGlsZWRIZWFkZXI9IjIiCiAJCVByZWNvbXBpbGVkSGVhZGVyVGhyb3VnaD0iV2ViS2l0
MlByZWZpeC5oIgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvd2luL1dlYktpdDJHZW5lcmF0
ZWQubWFrZSBiL1NvdXJjZS9XZWJLaXQyL3dpbi9XZWJLaXQyR2VuZXJhdGVkLm1ha2UKaW5kZXgg
Y2U3OTkxZi4uOGU2MDQyOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvd2luL1dlYktpdDJH
ZW5lcmF0ZWQubWFrZQorKysgYi9Tb3VyY2UvV2ViS2l0Mi93aW4vV2ViS2l0MkdlbmVyYXRlZC5t
YWtlCkBAIC01MSw2ICs1MSw3IEBAIGFsbDoKICAgICB4Y29weSAveSAvZCAiLi5cVUlQcm9jZXNz
XEFQSVxDXFdLQXV0aGVudGljYXRpb25EZWNpc2lvbkxpc3RlbmVyLmgiICIlQ29uZmlndXJhdGlv
bkJ1aWxkRGlyJVxpbmNsdWRlXFdlYktpdDIiCiAgICAgeGNvcHkgL3kgL2QgIi4uXFVJUHJvY2Vz
c1xBUElcQ1xXS0JhY2tGb3J3YXJkTGlzdC5oIiAiJUNvbmZpZ3VyYXRpb25CdWlsZERpciVcaW5j
bHVkZVxXZWJLaXQyIgogICAgIHhjb3B5IC95IC9kICIuLlxVSVByb2Nlc3NcQVBJXENcV0tCYWNr
Rm9yd2FyZExpc3RJdGVtLmgiICIlQ29uZmlndXJhdGlvbkJ1aWxkRGlyJVxpbmNsdWRlXFdlYktp
dDIiCisgICAgeGNvcHkgL3kgL2QgIi4uXFVJUHJvY2Vzc1xBUElcQ1xXS0JhdHRlcnlNYW5hZ2Vy
LmgiICIlQ29uZmlndXJhdGlvbkJ1aWxkRGlyJVxpbmNsdWRlXFdlYktpdDIiCiAgICAgeGNvcHkg
L3kgL2QgIi4uXFVJUHJvY2Vzc1xBUElcQ1xXS0NvbnRleHQuaCIgIiVDb25maWd1cmF0aW9uQnVp
bGREaXIlXGluY2x1ZGVcV2ViS2l0MiIKICAgICB4Y29weSAveSAvZCAiLi5cVUlQcm9jZXNzXEFQ
SVxDXFdLQ29udGV4dFByaXZhdGUuaCIgIiVDb25maWd1cmF0aW9uQnVpbGREaXIlXGluY2x1ZGVc
V2ViS2l0MiIKICAgICB4Y29weSAveSAvZCAiLi5cVUlQcm9jZXNzXEFQSVxDXFdLQ29va2llTWFu
YWdlci5oIiAiJUNvbmZpZ3VyYXRpb25CdWlsZERpciVcaW5jbHVkZVxXZWJLaXQyIgo=
</data>
<flag name="commit-queue"
          id="156311"
          type_id="3"
          status="-"
          setter="webkit-ews"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>148548</attachid>
            <date>2012-06-20 06:23:54 -0700</date>
            <delta_ts>2012-06-20 08:39:01 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>89558_battery_status_wk2.patch</filename>
            <type>text/plain</type>
            <size>69541</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NNYWtlTGlzdHMudHh0IGIvU291cmNlL1dlYktp
dDIvQ01ha2VMaXN0cy50eHQKaW5kZXggNDVkYmUyNC4uZmU1MTQ4NSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdDIvQ01ha2VMaXN0cy50eHQKKysrIGIvU291cmNlL1dlYktpdDIvQ01ha2VMaXN0
cy50eHQKQEAgLTIyLDYgKzIyLDcgQEAgU0VUKFdlYktpdDJfSU5DTFVERV9ESVJFQ1RPUklFUwog
ICAgICIke1dFQktJVDJfRElSfS9XZWJQcm9jZXNzIgogICAgICIke1dFQktJVDJfRElSfS9XZWJQ
cm9jZXNzL0FwcGxpY2F0aW9uQ2FjaGUiCiAgICAgIiR7V0VCS0lUMl9ESVJ9L1dlYlByb2Nlc3Mv
QXV0aGVudGljYXRpb24iCisgICAgIiR7V0VCS0lUMl9ESVJ9L1dlYlByb2Nlc3MvQmF0dGVyeSIK
ICAgICAiJHtXRUJLSVQyX0RJUn0vV2ViUHJvY2Vzcy9Db29raWVzIgogICAgICIke1dFQktJVDJf
RElSfS9XZWJQcm9jZXNzL0Rvd25sb2FkcyIKICAgICAiJHtXRUJLSVQyX0RJUn0vV2ViUHJvY2Vz
cy9GdWxsU2NyZWVuIgpAQCAtMTM3LDYgKzEzOCw3IEBAIFNFVChXZWJLaXQyX1NPVVJDRVMKICAg
ICBTaGFyZWQvVXBkYXRlSW5mby5jcHAKICAgICBTaGFyZWQvVmlzaXRlZExpbmtUYWJsZS5jcHAK
ICAgICBTaGFyZWQvV2ViQmFja0ZvcndhcmRMaXN0SXRlbS5jcHAKKyAgICBTaGFyZWQvV2ViQmF0
dGVyeVN0YXR1cy5jcHAKICAgICBTaGFyZWQvV2ViQ29ubmVjdGlvbi5jcHAKICAgICBTaGFyZWQv
V2ViQ29ubmVjdGlvbkNsaWVudC5jcHAKICAgICBTaGFyZWQvV2ViQ29udGV4dE1lbnVJdGVtLmNw
cApAQCAtMjE0LDYgKzIxNiw4IEBAIFNFVChXZWJLaXQyX1NPVVJDRVMKICAgICBVSVByb2Nlc3Mv
VmlzaXRlZExpbmtQcm92aWRlci5jcHAKICAgICBVSVByb2Nlc3MvV2ViQXBwbGljYXRpb25DYWNo
ZU1hbmFnZXJQcm94eS5jcHAKICAgICBVSVByb2Nlc3MvV2ViQmFja0ZvcndhcmRMaXN0LmNwcAor
ICAgIFVJUHJvY2Vzcy9XZWJCYXR0ZXJ5TWFuYWdlclByb3h5LmNwcAorICAgIFVJUHJvY2Vzcy9X
ZWJCYXR0ZXJ5UHJvdmlkZXIuY3BwCiAgICAgVUlQcm9jZXNzL1dlYkNvbm5lY3Rpb25Ub1dlYlBy
b2Nlc3MuY3BwCiAgICAgVUlQcm9jZXNzL1dlYkNvbnRleHQuY3BwCiAgICAgVUlQcm9jZXNzL1dl
YkNvbnRleHRDb25uZWN0aW9uQ2xpZW50LmNwcApAQCAtMjY0LDYgKzI2OCw3IEBAIFNFVChXZWJL
aXQyX1NPVVJDRVMKICAgICBVSVByb2Nlc3MvQVBJL0MvV0tBdXRoZW50aWNhdGlvbkRlY2lzaW9u
TGlzdGVuZXIuY3BwCiAgICAgVUlQcm9jZXNzL0FQSS9DL1dLQmFja0ZvcndhcmRMaXN0LmNwcAog
ICAgIFVJUHJvY2Vzcy9BUEkvQy9XS0JhY2tGb3J3YXJkTGlzdEl0ZW0uY3BwCisgICAgVUlQcm9j
ZXNzL0FQSS9DL1dLQmF0dGVyeU1hbmFnZXIuY3BwCiAgICAgVUlQcm9jZXNzL0FQSS9DL1dLQ29u
dGV4dC5jcHAKICAgICBVSVByb2Nlc3MvQVBJL0MvV0tDb29raWVNYW5hZ2VyLmNwcAogICAgIFVJ
UHJvY2Vzcy9BUEkvQy9XS0NyZWRlbnRpYWwuY3BwCkBAIC0zMjcsNiArMzMyLDggQEAgU0VUKFdl
YktpdDJfU09VUkNFUwogCiAgICAgV2ViUHJvY2Vzcy9BdXRoZW50aWNhdGlvbi9BdXRoZW50aWNh
dGlvbk1hbmFnZXIuY3BwCiAKKyAgICBXZWJQcm9jZXNzL0JhdHRlcnkvV2ViQmF0dGVyeU1hbmFn
ZXIuY3BwCisKICAgICBXZWJQcm9jZXNzL0Nvb2tpZXMvV2ViQ29va2llTWFuYWdlci5jcHAKIAog
ICAgIFdlYlByb2Nlc3MvRG93bmxvYWRzL0Rvd25sb2FkLmNwcApAQCAtNDAwLDYgKzQwNyw3IEBA
IFNFVChXZWJLaXQyX1NPVVJDRVMKIAogICAgIFdlYlByb2Nlc3MvUmVzb3VyY2VDYWNoZS9XZWJS
ZXNvdXJjZUNhY2hlTWFuYWdlci5jcHAKIAorICAgIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQv
V2ViQmF0dGVyeUNsaWVudC5jcHAKICAgICBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNo
cm9tZUNsaWVudC5jcHAKICAgICBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNvbnRleHRN
ZW51Q2xpZW50LmNwcAogICAgIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRGF0YWJhc2VN
YW5hZ2VyLmNwcApAQCAtNDQ1LDYgKzQ1Myw3IEBAIFNFVChXZWJLaXQyX01FU1NBR0VTX0lOX0ZJ
TEVTCiAgICAgVUlQcm9jZXNzL0RyYXdpbmdBcmVhUHJveHkubWVzc2FnZXMuaW4KICAgICBVSVBy
b2Nlc3MvTGF5ZXJUcmVlSG9zdFByb3h5Lm1lc3NhZ2VzLmluCiAgICAgVUlQcm9jZXNzL1dlYkFw
cGxpY2F0aW9uQ2FjaGVNYW5hZ2VyUHJveHkubWVzc2FnZXMuaW4KKyAgICBVSVByb2Nlc3MvV2Vi
QmF0dGVyeU1hbmFnZXJQcm94eS5tZXNzYWdlcy5pbgogICAgIFVJUHJvY2Vzcy9XZWJDb250ZXh0
Lm1lc3NhZ2VzLmluCiAgICAgVUlQcm9jZXNzL1dlYkNvb2tpZU1hbmFnZXJQcm94eS5tZXNzYWdl
cy5pbgogICAgIFVJUHJvY2Vzcy9XZWJEYXRhYmFzZU1hbmFnZXJQcm94eS5tZXNzYWdlcy5pbgpA
QCAtNDcwLDYgKzQ3OSw4IEBAIFNFVChXZWJLaXQyX01FU1NBR0VTX0lOX0ZJTEVTCiAKICAgICBX
ZWJQcm9jZXNzL0F1dGhlbnRpY2F0aW9uL0F1dGhlbnRpY2F0aW9uTWFuYWdlci5tZXNzYWdlcy5p
bgogCisgICAgV2ViUHJvY2Vzcy9CYXR0ZXJ5L1dlYkJhdHRlcnlNYW5hZ2VyLm1lc3NhZ2VzLmlu
CisKICAgICBXZWJQcm9jZXNzL0Nvb2tpZXMvV2ViQ29va2llTWFuYWdlci5tZXNzYWdlcy5pbgog
CiAgICAgV2ViUHJvY2Vzcy9GdWxsU2NyZWVuL1dlYkZ1bGxTY3JlZW5NYW5hZ2VyLm1lc3NhZ2Vz
LmluCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0
Mi9DaGFuZ2VMb2cKaW5kZXggOWY3NmY4YS4uYTBhMTFkMyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdDIvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsx
LDEwNCBAQAorMjAxMi0wNi0yMCAgQ2hyaXN0b3BoZSBEdW1leiAgPGNocmlzdG9waGUuZHVtZXpA
aW50ZWwuY29tPgorCisgICAgICAgIFtXSzJdIEFkZCBzdXBwb3J0IGZvciBCYXR0ZXJ5IFN0YXR1
cyBBUEkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTg5
NTU4CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRk
IHN1cHBvcnQgZm9yIEJhdHRlcnkgU3RhdHVzIEFQSSB0byBXZWJLaXQyLgorCisgICAgICAgICog
Q01ha2VMaXN0cy50eHQ6CisgICAgICAgICogRGVyaXZlZFNvdXJjZXMucHJpOgorICAgICAgICAq
IEdOVW1ha2VmaWxlLmFtOgorICAgICAgICAqIEdOVW1ha2VmaWxlLmxpc3QuYW06CisgICAgICAg
ICogUGxhdGZvcm0vQ29yZUlQQy9NZXNzYWdlSUQuaDoKKyAgICAgICAgKiBTaGFyZWQvQVBJL2Mv
V0tCYXNlLmg6CisgICAgICAgICogU2hhcmVkL0FQSU9iamVjdC5oOgorICAgICAgICAqIFNoYXJl
ZC9XZWJCYXR0ZXJ5U3RhdHVzLmNwcDogQWRkZWQuCisgICAgICAgIChXZWJLaXQpOgorICAgICAg
ICAoV2ViS2l0OjpXZWJCYXR0ZXJ5U3RhdHVzOjpXZWJCYXR0ZXJ5U3RhdHVzKToKKyAgICAgICAg
KFdlYktpdDo6V2ViQmF0dGVyeVN0YXR1czo6fldlYkJhdHRlcnlTdGF0dXMpOgorICAgICAgICAo
V2ViS2l0OjpXZWJCYXR0ZXJ5U3RhdHVzOjpEYXRhOjplbmNvZGUpOgorICAgICAgICAoV2ViS2l0
OjpXZWJCYXR0ZXJ5U3RhdHVzOjpEYXRhOjpkZWNvZGUpOgorICAgICAgICAqIFNoYXJlZC9XZWJC
YXR0ZXJ5U3RhdHVzLmg6IEFkZGVkLgorICAgICAgICAoV2ViS2l0KToKKyAgICAgICAgKFdlYkJh
dHRlcnlTdGF0dXMpOgorICAgICAgICAoRGF0YSk6CisgICAgICAgIChXZWJLaXQ6OldlYkJhdHRl
cnlTdGF0dXM6OmNyZWF0ZSk6CisgICAgICAgIChXZWJLaXQ6OldlYkJhdHRlcnlTdGF0dXM6Omlz
Q2hhcmdpbmcpOgorICAgICAgICAoV2ViS2l0OjpXZWJCYXR0ZXJ5U3RhdHVzOjpjaGFyZ2luZ1Rp
bWUpOgorICAgICAgICAoV2ViS2l0OjpXZWJCYXR0ZXJ5U3RhdHVzOjpkaXNjaGFyZ2luZ1RpbWUp
OgorICAgICAgICAoV2ViS2l0OjpXZWJCYXR0ZXJ5U3RhdHVzOjpsZXZlbCk6CisgICAgICAgIChX
ZWJLaXQ6OldlYkJhdHRlcnlTdGF0dXM6OmRhdGEpOgorICAgICAgICAoV2ViS2l0OjpXZWJCYXR0
ZXJ5U3RhdHVzOjp0eXBlKToKKyAgICAgICAgKiBUYXJnZXQucHJpOgorICAgICAgICAqIFVJUHJv
Y2Vzcy9BUEkvQy9XS0FQSUNhc3QuaDoKKyAgICAgICAgKFdlYktpdCk6CisgICAgICAgICogVUlQ
cm9jZXNzL0FQSS9DL1dLQmF0dGVyeU1hbmFnZXIuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdLQmF0
dGVyeU1hbmFnZXJHZXRUeXBlSUQpOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQy9XS0JhdHRl
cnlNYW5hZ2VyLmg6IEFkZGVkLgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQy9XZWJLaXQyLmg6
CisgICAgICAgICogVUlQcm9jZXNzL1dlYkJhdHRlcnlNYW5hZ2VyUHJveHkuY3BwOiBBZGRlZC4K
KyAgICAgICAgKFdlYktpdCk6CisgICAgICAgIChXZWJLaXQ6OldlYkJhdHRlcnlNYW5hZ2VyUHJv
eHk6OmNyZWF0ZSk6CisgICAgICAgIChXZWJLaXQ6OldlYkJhdHRlcnlNYW5hZ2VyUHJveHk6Oldl
YkJhdHRlcnlNYW5hZ2VyUHJveHkpOgorICAgICAgICAoV2ViS2l0OjpXZWJCYXR0ZXJ5TWFuYWdl
clByb3h5Ojp+V2ViQmF0dGVyeU1hbmFnZXJQcm94eSk6CisgICAgICAgIChXZWJLaXQ6OldlYkJh
dHRlcnlNYW5hZ2VyUHJveHk6OmludmFsaWRhdGUpOgorICAgICAgICAoV2ViS2l0OjpXZWJCYXR0
ZXJ5TWFuYWdlclByb3h5Ojppbml0aWFsaXplUHJvdmlkZXIpOgorICAgICAgICAoV2ViS2l0OjpX
ZWJCYXR0ZXJ5TWFuYWdlclByb3h5OjpkaWRSZWNlaXZlTWVzc2FnZSk6CisgICAgICAgIChXZWJL
aXQ6OldlYkJhdHRlcnlNYW5hZ2VyUHJveHk6OnN0YXJ0VXBkYXRpbmcpOgorICAgICAgICAoV2Vi
S2l0OjpXZWJCYXR0ZXJ5TWFuYWdlclByb3h5OjpzdG9wVXBkYXRpbmcpOgorICAgICAgICAoV2Vi
S2l0OjpXZWJCYXR0ZXJ5TWFuYWdlclByb3h5Ojpwcm92aWRlckRpZENoYW5nZUJhdHRlcnlTdGF0
dXMpOgorICAgICAgICAoV2ViS2l0OjpXZWJCYXR0ZXJ5TWFuYWdlclByb3h5Ojpwcm92aWRlclVw
ZGF0ZUJhdHRlcnlTdGF0dXMpOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJCYXR0ZXJ5TWFuYWdl
clByb3h5Lmg6IEFkZGVkLgorICAgICAgICAoQ29yZUlQQyk6CisgICAgICAgIChXZWJLaXQpOgor
ICAgICAgICAoV2ViQmF0dGVyeU1hbmFnZXJQcm94eSk6CisgICAgICAgIChXZWJLaXQ6OldlYkJh
dHRlcnlNYW5hZ2VyUHJveHk6OmNsZWFyQ29udGV4dCk6CisgICAgICAgIChXZWJLaXQ6OldlYkJh
dHRlcnlNYW5hZ2VyUHJveHk6OnR5cGUpOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJCYXR0ZXJ5
TWFuYWdlclByb3h5Lm1lc3NhZ2VzLmluOiBBZGRlZC4KKyAgICAgICAgKiBVSVByb2Nlc3MvV2Vi
QmF0dGVyeVByb3ZpZGVyLmNwcDogQWRkZWQuCisgICAgICAgIChXZWJLaXQpOgorICAgICAgICAo
V2ViS2l0OjpXZWJCYXR0ZXJ5UHJvdmlkZXI6OnN0YXJ0VXBkYXRpbmcpOgorICAgICAgICAoV2Vi
S2l0OjpXZWJCYXR0ZXJ5UHJvdmlkZXI6OnN0b3BVcGRhdGluZyk6CisgICAgICAgICogVUlQcm9j
ZXNzL1dlYkJhdHRlcnlQcm92aWRlci5oOiBBZGRlZC4KKyAgICAgICAgKFdlYktpdCk6CisgICAg
ICAgIChXZWJCYXR0ZXJ5UHJvdmlkZXIpOgorICAgICAgICAqIFdlYktpdDIucHJpOgorICAgICAg
ICAqIFdlYlByb2Nlc3MvQmF0dGVyeS9XZWJCYXR0ZXJ5TWFuYWdlci5jcHA6IEFkZGVkLgorICAg
ICAgICAoV2ViS2l0KToKKyAgICAgICAgKFdlYktpdDo6V2ViQmF0dGVyeU1hbmFnZXI6OldlYkJh
dHRlcnlNYW5hZ2VyKToKKyAgICAgICAgKFdlYktpdDo6V2ViQmF0dGVyeU1hbmFnZXI6On5XZWJC
YXR0ZXJ5TWFuYWdlcik6CisgICAgICAgIChXZWJLaXQ6OldlYkJhdHRlcnlNYW5hZ2VyOjpkaWRS
ZWNlaXZlTWVzc2FnZSk6CisgICAgICAgIChXZWJLaXQ6OldlYkJhdHRlcnlNYW5hZ2VyOjpyZWdp
c3RlcldlYlBhZ2UpOgorICAgICAgICAoV2ViS2l0OjpXZWJCYXR0ZXJ5TWFuYWdlcjo6dW5yZWdp
c3RlcldlYlBhZ2UpOgorICAgICAgICAoV2ViS2l0OjpXZWJCYXR0ZXJ5TWFuYWdlcjo6ZGlkQ2hh
bmdlQmF0dGVyeVN0YXR1cyk6CisgICAgICAgIChXZWJLaXQ6OldlYkJhdHRlcnlNYW5hZ2VyOjp1
cGRhdGVCYXR0ZXJ5U3RhdHVzKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL0JhdHRlcnkvV2ViQmF0
dGVyeU1hbmFnZXIuaDogQWRkZWQuCisgICAgICAgIChDb3JlSVBDKToKKyAgICAgICAgKFdlYktp
dCk6CisgICAgICAgIChXZWJCYXR0ZXJ5TWFuYWdlcik6CisgICAgICAgICogV2ViUHJvY2Vzcy9C
YXR0ZXJ5L1dlYkJhdHRlcnlNYW5hZ2VyLm1lc3NhZ2VzLmluOiBBZGRlZC4KKyAgICAgICAgKiBX
ZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkJhdHRlcnlDbGllbnQuY3BwOiBBZGRlZC4KKyAg
ICAgICAgKFdlYktpdCk6CisgICAgICAgIChXZWJLaXQ6OldlYkJhdHRlcnlDbGllbnQ6OnN0YXJ0
VXBkYXRpbmcpOgorICAgICAgICAoV2ViS2l0OjpXZWJCYXR0ZXJ5Q2xpZW50OjpzdG9wVXBkYXRp
bmcpOgorICAgICAgICAoV2ViS2l0OjpXZWJCYXR0ZXJ5Q2xpZW50OjpiYXR0ZXJ5Q29udHJvbGxl
ckRlc3Ryb3llZCk6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJCYXR0
ZXJ5Q2xpZW50Lmg6IEFkZGVkLgorICAgICAgICAoV2ViS2l0KToKKyAgICAgICAgKFdlYkJhdHRl
cnlDbGllbnQpOgorICAgICAgICAoV2ViS2l0OjpXZWJCYXR0ZXJ5Q2xpZW50OjpXZWJCYXR0ZXJ5
Q2xpZW50KToKKyAgICAgICAgKFdlYktpdDo6V2ViQmF0dGVyeUNsaWVudDo6fldlYkJhdHRlcnlD
bGllbnQpOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUHJvY2Vzcy5jcHA6CisgICAgICAgIChX
ZWJLaXQ6OldlYlByb2Nlc3M6OldlYlByb2Nlc3MpOgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9j
ZXNzOjpkaWRSZWNlaXZlTWVzc2FnZSk6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQcm9jZXNz
Lmg6CisgICAgICAgIChXZWJQcm9jZXNzKToKKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzczo6
YmF0dGVyeU1hbmFnZXIpOgorICAgICAgICAqIHdpbi9XZWJLaXQyLnZjcHJvajoKKyAgICAgICAg
KiB3aW4vV2ViS2l0MkNvbW1vbi52c3Byb3BzOgorICAgICAgICAqIHdpbi9XZWJLaXQyR2VuZXJh
dGVkLm1ha2U6CisKIDIwMTItMDYtMTkgIFJ5dWFuIENob2kgIDxyeXVhbi5jaG9pQHNhbXN1bmcu
Y29tPgogCiAgICAgICAgIFtFRkxdW1JlZ3Jlc3Npb25dIEJ1aWxkIGJyZWFrIGFmdGVyIHIxMjA3
ODYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0Rlcml2ZWRTb3VyY2VzLnByaSBiL1NvdXJj
ZS9XZWJLaXQyL0Rlcml2ZWRTb3VyY2VzLnByaQppbmRleCAwYTUwYzdkLi41MGE1ODk5IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9EZXJpdmVkU291cmNlcy5wcmkKKysrIGIvU291cmNlL1dl
YktpdDIvRGVyaXZlZFNvdXJjZXMucHJpCkBAIC00MCw2ICs0MCw3IEBAIFZQQVRIID0gXAogICAg
IFBsdWdpblByb2Nlc3MgXAogICAgIFdlYlByb2Nlc3MvQXBwbGljYXRpb25DYWNoZSBcCiAgICAg
V2ViUHJvY2Vzcy9BdXRoZW50aWNhdGlvbiBcCisgICAgV2ViUHJvY2Vzcy9CYXR0ZXJ5IFwKICAg
ICBXZWJQcm9jZXNzL0Nvb2tpZXMgXAogICAgIFdlYlByb2Nlc3MvRnVsbFNjcmVlbiBcCiAgICAg
V2ViUHJvY2Vzcy9HZW9sb2NhdGlvbiBcCkBAIC03MSw2ICs3Miw4IEBAIE1FU1NBR0VfUkVDRUlW
RVJTID0gXAogICAgIFBsdWdpblByb3h5Lm1lc3NhZ2VzLmluIFwKICAgICBXZWJBcHBsaWNhdGlv
bkNhY2hlTWFuYWdlci5tZXNzYWdlcy5pbiBcCiAgICAgV2ViQXBwbGljYXRpb25DYWNoZU1hbmFn
ZXJQcm94eS5tZXNzYWdlcy5pbiBcCisgICAgV2ViQmF0dGVyeU1hbmFnZXIubWVzc2FnZXMuaW4g
XAorICAgIFdlYkJhdHRlcnlNYW5hZ2VyUHJveHkubWVzc2FnZXMuaW4gXAogICAgIFdlYkNvbnRl
eHQubWVzc2FnZXMuaW4gXAogICAgIFdlYkNvb2tpZU1hbmFnZXIubWVzc2FnZXMuaW4gXAogICAg
IFdlYkNvb2tpZU1hbmFnZXJQcm94eS5tZXNzYWdlcy5pbiBcCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0Mi9HTlVtYWtlZmlsZS5hbSBiL1NvdXJjZS9XZWJLaXQyL0dOVW1ha2VmaWxlLmFtCmlu
ZGV4IDAxNmQ2ODEuLjVlNjc4MjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL0dOVW1ha2Vm
aWxlLmFtCisrKyBiL1NvdXJjZS9XZWJLaXQyL0dOVW1ha2VmaWxlLmFtCkBAIC01OSw2ICs1OSw3
IEBAIGxpYndlYmtpdDJndGtfQFdFQktJVEdUS19BUElfTUFKT1JfVkVSU0lPTkBfQFdFQktJVEdU
S19BUElfTUlOT1JfVkVSU0lPTkBfbGFfQ1BQCiAJLUkkKHNyY2RpcikvU291cmNlL1dlYktpdDIv
V2ViUHJvY2VzcyBcCiAJLUkkKHNyY2RpcikvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9BcHBs
aWNhdGlvbkNhY2hlIFwKIAktSSQoc3JjZGlyKS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0F1
dGhlbnRpY2F0aW9uIFwKKwktSSQoc3JjZGlyKS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0Jh
dHRlcnkgXAogCS1JJChzcmNkaXIpL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvQ29va2llcyBc
CiAJLUkkKHNyY2RpcikvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9Eb3dubG9hZHMgXAogCS1J
JChzcmNkaXIpL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvRnVsbFNjcmVlbiBcCkBAIC0yMTAs
NiArMjExLDcgQEAgdnBhdGggJS5tZXNzYWdlcy5pbiA9IFwKIAkkKFdlYktpdDIpL1dlYlByb2Nl
c3MgXAogCSQoV2ViS2l0MikvV2ViUHJvY2Vzcy9BcHBsaWNhdGlvbkNhY2hlIFwKIAkkKFdlYktp
dDIpL1dlYlByb2Nlc3MvQXV0aGVudGljYXRpb24gXAorCSQoV2ViS2l0MikvV2ViUHJvY2Vzcy9C
YXR0ZXJ5IFwKIAkkKFdlYktpdDIpL1dlYlByb2Nlc3MvQ29va2llcyBcCiAJJChXZWJLaXQyKS9X
ZWJQcm9jZXNzL0Z1bGxTY3JlZW4gXAogCSQoV2ViS2l0MikvV2ViUHJvY2Vzcy9HZW9sb2NhdGlv
biBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9HTlVtYWtlZmlsZS5saXN0LmFtIGIvU291
cmNlL1dlYktpdDIvR05VbWFrZWZpbGUubGlzdC5hbQppbmRleCAzNTIzOTE4Li5jZDJlYmQxIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9HTlVtYWtlZmlsZS5saXN0LmFtCisrKyBiL1NvdXJj
ZS9XZWJLaXQyL0dOVW1ha2VmaWxlLmxpc3QuYW0KQEAgLTQ3LDYgKzQ3LDcgQEAgd2Via2l0Ml9o
X2FwaSArPSBcCiAJJChXZWJLaXQyKS9VSVByb2Nlc3MvQVBJL0MvV0tBdXRoZW50aWNhdGlvbkRl
Y2lzaW9uTGlzdGVuZXIuaCBcCiAJJChXZWJLaXQyKS9VSVByb2Nlc3MvQVBJL0MvV0tCYWNrRm9y
d2FyZExpc3QuaCBcCiAJJChXZWJLaXQyKS9VSVByb2Nlc3MvQVBJL0MvV0tCYWNrRm9yd2FyZExp
c3RJdGVtLmggXAorCSQoV2ViS2l0MikvVUlQcm9jZXNzL0FQSS9DL1dLQmF0dGVyeU1hbmFnZXIu
aCBcCiAJJChXZWJLaXQyKS9VSVByb2Nlc3MvQVBJL0MvV0tDb250ZXh0LmggXAogCSQoV2ViS2l0
MikvVUlQcm9jZXNzL0FQSS9DL1dLQ29udGV4dFByaXZhdGUuaCBcCiAJJChXZWJLaXQyKS9VSVBy
b2Nlc3MvQVBJL0MvV0tDb29raWVNYW5hZ2VyLmggXApAQCAtMTQ3LDYgKzE0OCwxMCBAQCB3ZWJr
aXQyX2J1aWx0X3NvdXJjZXMgKz0gXAogCURlcml2ZWRTb3VyY2VzL1dlYktpdDIvV2ViQXBwbGlj
YXRpb25DYWNoZU1hbmFnZXJNZXNzYWdlcy5oIFwKIAlEZXJpdmVkU291cmNlcy9XZWJLaXQyL1dl
YkFwcGxpY2F0aW9uQ2FjaGVNYW5hZ2VyUHJveHlNZXNzYWdlUmVjZWl2ZXIuY3BwIFwKIAlEZXJp
dmVkU291cmNlcy9XZWJLaXQyL1dlYkFwcGxpY2F0aW9uQ2FjaGVNYW5hZ2VyUHJveHlNZXNzYWdl
cy5oIFwKKwlEZXJpdmVkU291cmNlcy9XZWJLaXQyL1dlYkJhdHRlcnlNYW5hZ2VyTWVzc2FnZVJl
Y2VpdmVyLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9XZWJCYXR0ZXJ5TWFuYWdlck1l
c3NhZ2VzLmggXAorCURlcml2ZWRTb3VyY2VzL1dlYktpdDIvV2ViQmF0dGVyeU1hbmFnZXJQcm94
eU1lc3NhZ2VSZWNlaXZlci5jcHAgXAorCURlcml2ZWRTb3VyY2VzL1dlYktpdDIvV2ViQmF0dGVy
eU1hbmFnZXJQcm94eU1lc3NhZ2VzLmggXAogCURlcml2ZWRTb3VyY2VzL1dlYktpdDIvV2ViQ29u
dGV4dE1lc3NhZ2VSZWNlaXZlci5jcHAgXAogCURlcml2ZWRTb3VyY2VzL1dlYktpdDIvV2ViQ29u
dGV4dE1lc3NhZ2VzLmggXAogCURlcml2ZWRTb3VyY2VzL1dlYktpdDIvV2ViQ29va2llTWFuYWdl
ck1lc3NhZ2VSZWNlaXZlci5jcHAgXApAQCAtNDE2LDYgKzQyMSw4IEBAIHdlYmtpdDJfc291cmNl
cyArPSBcCiAJU291cmNlL1dlYktpdDIvU2hhcmVkL1Zpc2l0ZWRMaW5rVGFibGUuaCBcCiAJU291
cmNlL1dlYktpdDIvU2hhcmVkL1dlYkJhY2tGb3J3YXJkTGlzdEl0ZW0uY3BwIFwKIAlTb3VyY2Uv
V2ViS2l0Mi9TaGFyZWQvV2ViQmFja0ZvcndhcmRMaXN0SXRlbS5oIFwKKwlTb3VyY2UvV2ViS2l0
Mi9TaGFyZWQvV2ViQmF0dGVyeVN0YXR1cy5jcHAgXAorCVNvdXJjZS9XZWJLaXQyL1NoYXJlZC9X
ZWJCYXR0ZXJ5U3RhdHVzLmggXAogCVNvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJDZXJ0aWZpY2F0
ZUluZm8uaCBcCiAJU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYkNvbm5lY3Rpb24uY3BwIFwKIAlT
b3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViQ29ubmVjdGlvbi5oIFwKQEAgLTUwMCw2ICs1MDcsOCBA
QCB3ZWJraXQyX3NvdXJjZXMgKz0gXAogCVNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9X
S0JhY2tGb3J3YXJkTGlzdC5oIFwKIAlTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tC
YWNrRm9yd2FyZExpc3RJdGVtLmNwcCBcCiAJU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9D
L1dLQmFja0ZvcndhcmRMaXN0SXRlbS5oIFwKKwlTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJ
L0MvV0tCYXR0ZXJ5TWFuYWdlci5jcHAgXAorCVNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkv
Qy9XS0JhdHRlcnlNYW5hZ2VyLmggXAogCVNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9X
S0NvbnRleHQuY3BwIFwKIAlTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tDb250ZXh0
LmggXAogCVNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS0NvbnRleHRQcml2YXRlLmgg
XApAQCAtNzU2LDYgKzc2NSwxMCBAQCB3ZWJraXQyX3NvdXJjZXMgKz0gXAogCVNvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9XZWJBcHBsaWNhdGlvbkNhY2hlTWFuYWdlclByb3h5LmNwcCBcCiAJU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkJhY2tGb3J3YXJkTGlzdC5jcHAgXAogCVNvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9XZWJCYWNrRm9yd2FyZExpc3QuaCBcCisJU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL1dlYkJhdHRlcnlNYW5hZ2VyUHJveHkuY3BwIFwKKwlTb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvV2ViQmF0dGVyeU1hbmFnZXJQcm94eS5oIFwKKwlTb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvV2ViQmF0dGVyeVByb3ZpZGVyLmNwcCBcCisJU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L1dlYkJhdHRlcnlQcm92aWRlci5oIFwKIAlTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViQ29u
bmVjdGlvblRvV2ViUHJvY2Vzcy5jcHAgXAogCVNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJD
b25uZWN0aW9uVG9XZWJQcm9jZXNzLmggXAogCVNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJD
b250ZXh0LmNwcCBcCkBAIC04NDksNiArODYyLDggQEAgd2Via2l0Ml9zb3VyY2VzICs9IFwKIAlT
b3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0FwcGxpY2F0aW9uQ2FjaGUvV2ViQXBwbGljYXRpb25D
YWNoZU1hbmFnZXIuY3BwIFwKIAlTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0F1dGhlbnRpY2F0
aW9uL0F1dGhlbnRpY2F0aW9uTWFuYWdlci5jcHAgXAogCVNvdXJjZS9XZWJLaXQyL1dlYlByb2Nl
c3MvQXV0aGVudGljYXRpb24vQXV0aGVudGljYXRpb25NYW5hZ2VyLmggXAorCVNvdXJjZS9XZWJL
aXQyL1dlYlByb2Nlc3MvQmF0dGVyeS9XZWJCYXR0ZXJ5TWFuYWdlci5jcHAgXAorCVNvdXJjZS9X
ZWJLaXQyL1dlYlByb2Nlc3MvQmF0dGVyeS9XZWJCYXR0ZXJ5TWFuYWdlci5oIFwKIAlTb3VyY2Uv
V2ViS2l0Mi9XZWJQcm9jZXNzL0Nvb2tpZXMvV2ViQ29va2llTWFuYWdlci5oIFwKIAlTb3VyY2Uv
V2ViS2l0Mi9XZWJQcm9jZXNzL0Nvb2tpZXMvV2ViQ29va2llTWFuYWdlci5jcHAgXAogCVNvdXJj
ZS9XZWJLaXQyL1dlYlByb2Nlc3MvQ29va2llcy9zb3VwL1dlYkNvb2tpZU1hbmFnZXJTb3VwLmNw
cCBcCkBAIC05OTcsNiArMTAxMiw4IEBAIHdlYmtpdDJfc291cmNlcyArPSBcCiAJU291cmNlL1dl
YktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9zb3VwL1dlYkZyYW1lTmV0d29ya2luZ0Nv
bnRleHQuY3BwIFwKIAlTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L3Nv
dXAvV2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dC5oIFwKIAlTb3VyY2UvV2ViS2l0Mi9XZWJQcm9j
ZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkFsdGVybmF0aXZlVGV4dENsaWVudC5oIFwKKwlTb3VyY2Uv
V2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkJhdHRlcnlDbGllbnQuY3BwIFwK
KwlTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkJhdHRlcnlDbGll
bnQuaCBcCiAJU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJv
bWVDbGllbnQuY3BwIFwKIAlTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0
L1dlYkNocm9tZUNsaWVudC5oIFwKIAlTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVT
dXBwb3J0L1dlYkNvbnRleHRNZW51Q2xpZW50LmNwcCBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0Mi9QbGF0Zm9ybS9Db3JlSVBDL01lc3NhZ2VJRC5oIGIvU291cmNlL1dlYktpdDIvUGxhdGZv
cm0vQ29yZUlQQy9NZXNzYWdlSUQuaAppbmRleCA1ZjM5OGFhLi5kNTQxNzZlIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9Db3JlSVBDL01lc3NhZ2VJRC5oCisrKyBiL1NvdXJj
ZS9XZWJLaXQyL1BsYXRmb3JtL0NvcmVJUEMvTWVzc2FnZUlELmgKQEAgLTQwLDYgKzQwLDcgQEAg
ZW51bSBNZXNzYWdlQ2xhc3MgewogICAgIE1lc3NhZ2VDbGFzc0luamVjdGVkQnVuZGxlLAogICAg
IE1lc3NhZ2VDbGFzc0xheWVyVHJlZUhvc3QsCiAgICAgTWVzc2FnZUNsYXNzV2ViQXBwbGljYXRp
b25DYWNoZU1hbmFnZXIsCisgICAgTWVzc2FnZUNsYXNzV2ViQmF0dGVyeU1hbmFnZXJQcm94eSwK
ICAgICBNZXNzYWdlQ2xhc3NXZWJDb29raWVNYW5hZ2VyLAogICAgIE1lc3NhZ2VDbGFzc1dlYkRh
dGFiYXNlTWFuYWdlciwKICAgICBNZXNzYWdlQ2xhc3NXZWJGdWxsU2NyZWVuTWFuYWdlciwKQEAg
LTYyLDYgKzYzLDcgQEAgZW51bSBNZXNzYWdlQ2xhc3MgewogICAgIE1lc3NhZ2VDbGFzc0RyYXdp
bmdBcmVhUHJveHksCiAgICAgTWVzc2FnZUNsYXNzTGF5ZXJUcmVlSG9zdFByb3h5LAogICAgIE1l
c3NhZ2VDbGFzc1dlYkFwcGxpY2F0aW9uQ2FjaGVNYW5hZ2VyUHJveHksCisgICAgTWVzc2FnZUNs
YXNzV2ViQmF0dGVyeU1hbmFnZXIsCiAgICAgTWVzc2FnZUNsYXNzV2ViQ29udGV4dCwKICAgICBN
ZXNzYWdlQ2xhc3NXZWJDb250ZXh0TGVnYWN5LAogICAgIE1lc3NhZ2VDbGFzc1dlYkNvb2tpZU1h
bmFnZXJQcm94eSwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9BUEkvYy9XS0Jh
c2UuaCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9BUEkvYy9XS0Jhc2UuaAppbmRleCAzN2E2NGYw
Li4wMTQ3MTRjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQVBJL2MvV0tCYXNl
LmgKKysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL0FQSS9jL1dLQmFzZS5oCkBAIC04Miw2ICs4
Miw4IEBAIHR5cGVkZWYgY29uc3Qgc3RydWN0IE9wYXF1ZVdLQXV0aGVudGljYXRpb25DaGFsbGVu
Z2UqIFdLQXV0aGVudGljYXRpb25DaGFsbGVuZ2VSCiB0eXBlZGVmIGNvbnN0IHN0cnVjdCBPcGFx
dWVXS0F1dGhlbnRpY2F0aW9uRGVjaXNpb25MaXN0ZW5lciogV0tBdXRoZW50aWNhdGlvbkRlY2lz
aW9uTGlzdGVuZXJSZWY7CiB0eXBlZGVmIGNvbnN0IHN0cnVjdCBPcGFxdWVXS0JhY2tGb3J3YXJk
TGlzdCogV0tCYWNrRm9yd2FyZExpc3RSZWY7CiB0eXBlZGVmIGNvbnN0IHN0cnVjdCBPcGFxdWVX
S0JhY2tGb3J3YXJkTGlzdEl0ZW0qIFdLQmFja0ZvcndhcmRMaXN0SXRlbVJlZjsKK3R5cGVkZWYg
Y29uc3Qgc3RydWN0IE9wYXF1ZVdLQmF0dGVyeU1hbmFnZXIqIFdLQmF0dGVyeU1hbmFnZXJSZWY7
Cit0eXBlZGVmIGNvbnN0IHN0cnVjdCBPcGFxdWVXS0JhdHRlcnlTdGF0dXMqIFdLQmF0dGVyeVN0
YXR1c1JlZjsKIHR5cGVkZWYgY29uc3Qgc3RydWN0IE9wYXF1ZVdLUmVzb3VyY2VDYWNoZU1hbmFn
ZXIqIFdLUmVzb3VyY2VDYWNoZU1hbmFnZXJSZWY7CiB0eXBlZGVmIGNvbnN0IHN0cnVjdCBPcGFx
dWVXS0NvbnRleHQqIFdLQ29udGV4dFJlZjsKIHR5cGVkZWYgY29uc3Qgc3RydWN0IE9wYXF1ZVdL
Q29va2llTWFuYWdlciogV0tDb29raWVNYW5hZ2VyUmVmOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdDIvU2hhcmVkL0FQSU9iamVjdC5oIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL0FQSU9iamVj
dC5oCmluZGV4IGVhZDc0ZjAuLjgzMGZlZTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1No
YXJlZC9BUElPYmplY3QuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQVBJT2JqZWN0LmgK
QEAgLTcyLDYgKzcyLDggQEAgcHVibGljOgogICAgICAgICBUeXBlQXBwbGljYXRpb25DYWNoZU1h
bmFnZXIsCiAgICAgICAgIFR5cGVCYWNrRm9yd2FyZExpc3QsCiAgICAgICAgIFR5cGVCYWNrRm9y
d2FyZExpc3RJdGVtLAorICAgICAgICBUeXBlQmF0dGVyeU1hbmFnZXIsCisgICAgICAgIFR5cGVC
YXR0ZXJ5U3RhdHVzLAogICAgICAgICBUeXBlQ2FjaGVNYW5hZ2VyLAogICAgICAgICBUeXBlQ29u
dGV4dCwKICAgICAgICAgVHlwZUNvb2tpZU1hbmFnZXIsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0Mi9TaGFyZWQvV2ViQmF0dGVyeVN0YXR1cy5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQv
V2ViQmF0dGVyeVN0YXR1cy5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4u
Yjc1MjIxYQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJCYXR0
ZXJ5U3RhdHVzLmNwcApAQCAtMCwwICsxLDU2IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEy
IEludGVsIENvcnBvcmF0aW9uLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNv
dXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAq
IDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9v
ciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAq
IFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJV
VE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMs
IElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElF
UyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVS
UE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMg
Q09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJ
REVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMg
KElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJ
VFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9S
IEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhF
T1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJ
VFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJ
TkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFE
VklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5j
bHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiV2ViQmF0dGVyeVN0YXR1cy5oIgorCisjaW5jbHVk
ZSAiQXJndW1lbnRDb2RlcnMuaCIKKyNpbmNsdWRlICJBcmd1bWVudHMuaCIKKworbmFtZXNwYWNl
IFdlYktpdCB7CisKK1dlYkJhdHRlcnlTdGF0dXM6OldlYkJhdHRlcnlTdGF0dXMoYm9vbCBpc0No
YXJnaW5nLCBkb3VibGUgY2hhcmdpbmdUaW1lLCBkb3VibGUgZGlzY2hhcmdpbmdUaW1lLCBkb3Vi
bGUgbGV2ZWwpCit7CisgICAgbV9kYXRhLmlzQ2hhcmdpbmcgPSBpc0NoYXJnaW5nOworICAgIG1f
ZGF0YS5jaGFyZ2luZ1RpbWUgPSBjaGFyZ2luZ1RpbWU7CisgICAgbV9kYXRhLmRpc2NoYXJnaW5n
VGltZSA9IGRpc2NoYXJnaW5nVGltZTsKKyAgICBtX2RhdGEubGV2ZWwgPSBsZXZlbDsKK30KKwor
V2ViQmF0dGVyeVN0YXR1czo6fldlYkJhdHRlcnlTdGF0dXMoKQoreworfQorCit2b2lkIFdlYkJh
dHRlcnlTdGF0dXM6OkRhdGE6OmVuY29kZShDb3JlSVBDOjpBcmd1bWVudEVuY29kZXIqIGVuY29k
ZXIpIGNvbnN0Cit7CisgICAgZW5jb2Rlci0+ZW5jb2RlKENvcmVJUEM6OkluKGlzQ2hhcmdpbmcs
IGNoYXJnaW5nVGltZSwgZGlzY2hhcmdpbmdUaW1lLCBsZXZlbCkpOworfQorCitib29sIFdlYkJh
dHRlcnlTdGF0dXM6OkRhdGE6OmRlY29kZShDb3JlSVBDOjpBcmd1bWVudERlY29kZXIqIGRlY29k
ZXIsIERhdGEmIGRhdGEpCit7CisgICAgcmV0dXJuIGRlY29kZXItPmRlY29kZShDb3JlSVBDOjpP
dXQoZGF0YS5pc0NoYXJnaW5nLCBkYXRhLmNoYXJnaW5nVGltZSwgZGF0YS5kaXNjaGFyZ2luZ1Rp
bWUsIGRhdGEubGV2ZWwpKTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViQmF0dGVyeVN0YXR1cy5oIGIvU291cmNlL1dlYktp
dDIvU2hhcmVkL1dlYkJhdHRlcnlTdGF0dXMuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwLi43NWY2MzllCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVk
L1dlYkJhdHRlcnlTdGF0dXMuaApAQCAtMCwwICsxLDczIEBACisvKgorICogQ29weXJpZ2h0IChD
KSAyMDEyIEludGVsIENvcnBvcmF0aW9uLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25z
IG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9u
IGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgor
ICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENP
TlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJB
TlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FS
UkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgor
ICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBP
UiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNU
LCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERB
TUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICog
U1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJ
VFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBB
TlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBM
SUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAq
IEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVO
IElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLwor
CisjaWZuZGVmIFdlYkJhdHRlcnlTdGF0dXNfaAorI2RlZmluZSBXZWJCYXR0ZXJ5U3RhdHVzX2gK
KworI2luY2x1ZGUgIkFQSU9iamVjdC5oIgorI2luY2x1ZGUgIkFyZ3VtZW50RGVjb2Rlci5oIgor
I2luY2x1ZGUgIkFyZ3VtZW50RW5jb2Rlci5oIgorI2luY2x1ZGUgPHd0Zi9QYXNzUmVmUHRyLmg+
CisKK25hbWVzcGFjZSBXZWJLaXQgeworCitjbGFzcyBXZWJCYXR0ZXJ5U3RhdHVzIDogcHVibGlj
IEFQSU9iamVjdCB7CitwdWJsaWM6CisgICAgc3RhdGljIGNvbnN0IFR5cGUgQVBJVHlwZSA9IFR5
cGVCYXR0ZXJ5U3RhdHVzOworCisgICAgc3RydWN0IERhdGEgeworICAgICAgICB2b2lkIGVuY29k
ZShDb3JlSVBDOjpBcmd1bWVudEVuY29kZXIqKSBjb25zdDsKKyAgICAgICAgc3RhdGljIGJvb2wg
ZGVjb2RlKENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciosIERhdGEmKTsKKworICAgICAgICBib29s
IGlzQ2hhcmdpbmc7CisgICAgICAgIGRvdWJsZSBjaGFyZ2luZ1RpbWU7CisgICAgICAgIGRvdWJs
ZSBkaXNjaGFyZ2luZ1RpbWU7CisgICAgICAgIGRvdWJsZSBsZXZlbDsKKyAgICB9OworCisgICAg
c3RhdGljIFBhc3NSZWZQdHI8V2ViQmF0dGVyeVN0YXR1cz4gY3JlYXRlKGJvb2wgaXNDaGFyZ2lu
ZywgZG91YmxlIGNoYXJnaW5nVGltZSwgZG91YmxlIGRpc2NoYXJnaW5nVGltZSwgZG91YmxlIGxl
dmVsKQorICAgIHsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBXZWJCYXR0ZXJ5U3RhdHVz
KGlzQ2hhcmdpbmcsIGNoYXJnaW5nVGltZSwgZGlzY2hhcmdpbmdUaW1lLCBsZXZlbCkpOworICAg
IH0KKworICAgIHZpcnR1YWwgfldlYkJhdHRlcnlTdGF0dXMoKTsKKyAgICBkb3VibGUgaXNDaGFy
Z2luZygpIGNvbnN0IHsgcmV0dXJuIG1fZGF0YS5pc0NoYXJnaW5nOyB9CisgICAgZG91YmxlIGNo
YXJnaW5nVGltZSgpIGNvbnN0IHsgcmV0dXJuIG1fZGF0YS5jaGFyZ2luZ1RpbWU7IH0KKyAgICBk
b3VibGUgZGlzY2hhcmdpbmdUaW1lKCkgY29uc3QgeyByZXR1cm4gbV9kYXRhLmRpc2NoYXJnaW5n
VGltZTsgfQorICAgIGRvdWJsZSBsZXZlbCgpIGNvbnN0IHsgcmV0dXJuIG1fZGF0YS5sZXZlbDsg
fQorCisgICAgY29uc3QgRGF0YSYgZGF0YSgpIGNvbnN0IHsgcmV0dXJuIG1fZGF0YTsgfQorCitw
cml2YXRlOgorICAgIFdlYkJhdHRlcnlTdGF0dXMoYm9vbCBpc0NoYXJnaW5nLCBkb3VibGUgY2hh
cmdpbmdUaW1lLCBkb3VibGUgZGlzY2hhcmdpbmdUaW1lLCBkb3VibGUgbGV2ZWwpOworCisgICAg
dmlydHVhbCBUeXBlIHR5cGUoKSBjb25zdCB7IHJldHVybiBBUElUeXBlOyB9CisKKyAgICBEYXRh
IG1fZGF0YTsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdAorCisjZW5kaWYgLy8gV2ViQmF0
dGVyeVN0YXR1c19oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9UYXJnZXQucHJpIGIvU291
cmNlL1dlYktpdDIvVGFyZ2V0LnByaQppbmRleCA5ZTViYzRlLi5iOTY0YzQzIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0Mi9UYXJnZXQucHJpCisrKyBiL1NvdXJjZS9XZWJLaXQyL1RhcmdldC5w
cmkKQEAgLTk5LDYgKzk5LDcgQEAgSEVBREVSUyArPSBcCiAgICAgU2hhcmVkL1Zpc2l0ZWRMaW5r
VGFibGUuaCBcCiAgICAgU2hhcmVkL1dlYkNvcmVBcmd1bWVudENvZGVycy5oIFwKICAgICBTaGFy
ZWQvV2ViQmFja0ZvcndhcmRMaXN0SXRlbS5oIFwKKyAgICBTaGFyZWQvV2ViQmF0dGVyeVN0YXR1
cy5oIFwKICAgICBTaGFyZWQvV2ViQ2VydGlmaWNhdGVJbmZvLmggXAogICAgIFNoYXJlZC9XZWJD
b25uZWN0aW9uLmggXAogICAgIFNoYXJlZC9XZWJDb25uZWN0aW9uQ2xpZW50LmggXApAQCAtMTQ3
LDYgKzE0OCw3IEBAIEhFQURFUlMgKz0gXAogICAgIFVJUHJvY2Vzcy9BUEkvQy9XS0F1dGhlbnRp
Y2F0aW9uRGVjaXNpb25MaXN0ZW5lci5oIFwKICAgICBVSVByb2Nlc3MvQVBJL0MvV0tCYWNrRm9y
d2FyZExpc3QuaCBcCiAgICAgVUlQcm9jZXNzL0FQSS9DL1dLQmFja0ZvcndhcmRMaXN0SXRlbS5o
IFwKKyAgICBVSVByb2Nlc3MvQVBJL0MvV0tCYXR0ZXJ5TWFuYWdlci5oIFwKICAgICBVSVByb2Nl
c3MvQVBJL0MvV0tDb250ZXh0LmggXAogICAgIFVJUHJvY2Vzcy9BUEkvQy9XS0NvbnRleHRQcml2
YXRlLmggXAogICAgIFVJUHJvY2Vzcy9BUEkvQy9XS0NyZWRlbnRpYWwuaCBcCkBAIC0yMjksNiAr
MjMxLDggQEAgSEVBREVSUyArPSBcCiAgICAgVUlQcm9jZXNzL1Zpc2l0ZWRMaW5rUHJvdmlkZXIu
aCBcCiAgICAgVUlQcm9jZXNzL1dlYkFwcGxpY2F0aW9uQ2FjaGVNYW5hZ2VyUHJveHkuaCBcCiAg
ICAgVUlQcm9jZXNzL1dlYkJhY2tGb3J3YXJkTGlzdC5oIFwKKyAgICBVSVByb2Nlc3MvV2ViQmF0
dGVyeU1hbmFnZXJQcm94eS5oIFwKKyAgICBVSVByb2Nlc3MvV2ViQmF0dGVyeVByb3ZpZGVyLmgg
XAogICAgIFVJUHJvY2Vzcy9XZWJDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmggXAogICAgIFVJUHJv
Y2Vzcy9XZWJDb250ZXh0LmggXAogICAgIFVJUHJvY2Vzcy9XZWJDb250ZXh0Q29ubmVjdGlvbkNs
aWVudC5oIFwKQEAgLTI5NCw2ICsyOTgsNyBAQCBIRUFERVJTICs9IFwKICAgICBVSVByb2Nlc3Mv
cXQvV2ViUG9wdXBNZW51UHJveHlRdC5oIFwKICAgICBXZWJQcm9jZXNzL0FwcGxpY2F0aW9uQ2Fj
aGUvV2ViQXBwbGljYXRpb25DYWNoZU1hbmFnZXIuaCBcCiAgICAgV2ViUHJvY2Vzcy9BdXRoZW50
aWNhdGlvbi9BdXRoZW50aWNhdGlvbk1hbmFnZXIuaCBcCisgICAgV2ViUHJvY2Vzcy9CYXR0ZXJ5
L1dlYkJhdHRlcnlNYW5hZ2VyLmggXAogICAgIFdlYlByb2Nlc3MvQ29va2llcy9XZWJDb29raWVN
YW5hZ2VyLmggXAogICAgIFdlYlByb2Nlc3MvRG93bmxvYWRzL0Rvd25sb2FkLmggXAogICAgIFdl
YlByb2Nlc3MvRG93bmxvYWRzL0Rvd25sb2FkTWFuYWdlci5oIFwKQEAgLTM0NCw2ICszNDksNyBA
QCBIRUFERVJTICs9IFwKICAgICBXZWJQcm9jZXNzL1BsdWdpbnMvUGx1Z2luUHJveHkuaCBcCiAg
ICAgV2ViUHJvY2Vzcy9QbHVnaW5zL1BsdWdpblByb2Nlc3NDb25uZWN0aW9uLmggXAogICAgIFdl
YlByb2Nlc3MvUGx1Z2lucy9QbHVnaW5Qcm9jZXNzQ29ubmVjdGlvbk1hbmFnZXIuaCBcCisgICAg
V2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJCYXR0ZXJ5Q2xpZW50LmggXAogICAgIFdlYlBy
b2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmggXAogICAgIFdlYlByb2Nlc3Mv
V2ViQ29yZVN1cHBvcnQvV2ViQ29udGV4dE1lbnVDbGllbnQuaCBcCiAgICAgV2ViUHJvY2Vzcy9X
ZWJDb3JlU3VwcG9ydC9XZWJEYXRhYmFzZU1hbmFnZXIuaCBcCkBAIC00NTgsNiArNDY0LDcgQEAg
U09VUkNFUyArPSBcCiAgICAgU2hhcmVkL1VwZGF0ZUluZm8uY3BwIFwKICAgICBTaGFyZWQvVmlz
aXRlZExpbmtUYWJsZS5jcHAgXAogICAgIFNoYXJlZC9XZWJCYWNrRm9yd2FyZExpc3RJdGVtLmNw
cCBcCisgICAgU2hhcmVkL1dlYkJhdHRlcnlTdGF0dXMuY3BwIFwKICAgICBTaGFyZWQvV2ViQ29u
bmVjdGlvbi5jcHAgXAogICAgIFNoYXJlZC9XZWJDb25uZWN0aW9uQ2xpZW50LmNwcCBcCiAgICAg
U2hhcmVkL1dlYkNvbnRleHRNZW51SXRlbS5jcHAgXApAQCAtNTA1LDYgKzUxMiw3IEBAIFNPVVJD
RVMgKz0gXAogICAgIFVJUHJvY2Vzcy9BUEkvQy9XS0F1dGhlbnRpY2F0aW9uRGVjaXNpb25MaXN0
ZW5lci5jcHAgXAogICAgIFVJUHJvY2Vzcy9BUEkvQy9XS0JhY2tGb3J3YXJkTGlzdC5jcHAgXAog
ICAgIFVJUHJvY2Vzcy9BUEkvQy9XS0JhY2tGb3J3YXJkTGlzdEl0ZW0uY3BwIFwKKyAgICBVSVBy
b2Nlc3MvQVBJL0MvV0tCYXR0ZXJ5TWFuYWdlci5jcHAgXAogICAgIFVJUHJvY2Vzcy9BUEkvQy9X
S0NvbnRleHQuY3BwIFwKICAgICBVSVByb2Nlc3MvQVBJL0MvV0tDcmVkZW50aWFsLmNwcCBcCiAg
ICAgVUlQcm9jZXNzL0FQSS9DL1dLRGF0YWJhc2VNYW5hZ2VyLmNwcCBcCkBAIC01NzgsNiArNTg2
LDggQEAgU09VUkNFUyArPSBcCiAgICAgVUlQcm9jZXNzL1Zpc2l0ZWRMaW5rUHJvdmlkZXIuY3Bw
IFwKICAgICBVSVByb2Nlc3MvV2ViQXBwbGljYXRpb25DYWNoZU1hbmFnZXJQcm94eS5jcHAgXAog
ICAgIFVJUHJvY2Vzcy9XZWJCYWNrRm9yd2FyZExpc3QuY3BwIFwKKyAgICBVSVByb2Nlc3MvV2Vi
QmF0dGVyeU1hbmFnZXJQcm94eS5jcHAgXAorICAgIFVJUHJvY2Vzcy9XZWJCYXR0ZXJ5UHJvdmlk
ZXIuY3BwIFwKICAgICBVSVByb2Nlc3MvV2ViQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5jcHAgXAog
ICAgIFVJUHJvY2Vzcy9XZWJDb250ZXh0LmNwcCBcCiAgICAgVUlQcm9jZXNzL1dlYkNvbnRleHRD
b25uZWN0aW9uQ2xpZW50LmNwcCBcCkBAIC02NDcsNiArNjU3LDcgQEAgU09VUkNFUyArPSBcCiAg
ICAgVUlQcm9jZXNzL3F0L1F0V2ViSWNvbkRhdGFiYXNlQ2xpZW50LmNwcCBcCiAgICAgV2ViUHJv
Y2Vzcy9BcHBsaWNhdGlvbkNhY2hlL1dlYkFwcGxpY2F0aW9uQ2FjaGVNYW5hZ2VyLmNwcCBcCiAg
ICAgV2ViUHJvY2Vzcy9BdXRoZW50aWNhdGlvbi9BdXRoZW50aWNhdGlvbk1hbmFnZXIuY3BwIFwK
KyAgICBXZWJQcm9jZXNzL0JhdHRlcnkvV2ViQmF0dGVyeU1hbmFnZXIuY3BwIFwKICAgICBXZWJQ
cm9jZXNzL0Nvb2tpZXMvV2ViQ29va2llTWFuYWdlci5jcHAgXAogICAgIFdlYlByb2Nlc3MvQ29v
a2llcy9xdC9XZWJDb29raWVNYW5hZ2VyUXQuY3BwIFwKICAgICBXZWJQcm9jZXNzL0Rvd25sb2Fk
cy9Eb3dubG9hZC5jcHAgXApAQCAtNzEwLDYgKzcyMSw3IEBAIFNPVVJDRVMgKz0gXAogICAgIFdl
YlByb2Nlc3MvUGx1Z2lucy9QbHVnaW5Qcm94eS5jcHAgXAogICAgIFdlYlByb2Nlc3MvUGx1Z2lu
cy9QbHVnaW5Qcm9jZXNzQ29ubmVjdGlvbi5jcHAgXAogICAgIFdlYlByb2Nlc3MvUGx1Z2lucy9Q
bHVnaW5Qcm9jZXNzQ29ubmVjdGlvbk1hbmFnZXIuY3BwIFwKKyAgICBXZWJQcm9jZXNzL1dlYkNv
cmVTdXBwb3J0L1dlYkJhdHRlcnlDbGllbnQuY3BwIFwKICAgICBXZWJQcm9jZXNzL1dlYkNvcmVT
dXBwb3J0L1dlYkNocm9tZUNsaWVudC5jcHAgXAogICAgIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBv
cnQvV2ViQ29udGV4dE1lbnVDbGllbnQuY3BwIFwKICAgICBXZWJQcm9jZXNzL1dlYkNvcmVTdXBw
b3J0L1dlYkRhdGFiYXNlTWFuYWdlci5jcHAgXApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL0FQSS9DL1dLQVBJQ2FzdC5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQ
SS9DL1dLQVBJQ2FzdC5oCmluZGV4IDliYzllYTYuLjhiOWJkMTAgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS0FQSUNhc3QuaAorKysgYi9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvQVBJL0MvV0tBUElDYXN0LmgKQEAgLTU2LDYgKzU2LDggQEAgY2xhc3MgTm90
aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3Q7CiBjbGFzcyBXZWJBcHBsaWNhdGlvbkNhY2hlTWFu
YWdlclByb3h5OwogY2xhc3MgV2ViQmFja0ZvcndhcmRMaXN0OwogY2xhc3MgV2ViQmFja0Zvcndh
cmRMaXN0SXRlbTsKK2NsYXNzIFdlYkJhdHRlcnlNYW5hZ2VyUHJveHk7CitjbGFzcyBXZWJCYXR0
ZXJ5U3RhdHVzOwogY2xhc3MgV2ViUmVzb3VyY2VDYWNoZU1hbmFnZXJQcm94eTsKIGNsYXNzIFdl
YkNvbnRleHQ7CiBjbGFzcyBXZWJDb29raWVNYW5hZ2VyUHJveHk7CkBAIC05NCw2ICs5Niw4IEBA
IFdLX0FERF9BUElfTUFQUElORyhXS0F1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlUmVmLCBBdXRoZW50
aWNhdGlvbkNoYWxsZW5nZVByb3h5KQogV0tfQUREX0FQSV9NQVBQSU5HKFdLQXV0aGVudGljYXRp
b25EZWNpc2lvbkxpc3RlbmVyUmVmLCBBdXRoZW50aWNhdGlvbkRlY2lzaW9uTGlzdGVuZXIpCiBX
S19BRERfQVBJX01BUFBJTkcoV0tCYWNrRm9yd2FyZExpc3RJdGVtUmVmLCBXZWJCYWNrRm9yd2Fy
ZExpc3RJdGVtKQogV0tfQUREX0FQSV9NQVBQSU5HKFdLQmFja0ZvcndhcmRMaXN0UmVmLCBXZWJC
YWNrRm9yd2FyZExpc3QpCitXS19BRERfQVBJX01BUFBJTkcoV0tCYXR0ZXJ5TWFuYWdlclJlZiwg
V2ViQmF0dGVyeU1hbmFnZXJQcm94eSkKK1dLX0FERF9BUElfTUFQUElORyhXS0JhdHRlcnlTdGF0
dXNSZWYsIFdlYkJhdHRlcnlTdGF0dXMpCiBXS19BRERfQVBJX01BUFBJTkcoV0tSZXNvdXJjZUNh
Y2hlTWFuYWdlclJlZiwgV2ViUmVzb3VyY2VDYWNoZU1hbmFnZXJQcm94eSkKIFdLX0FERF9BUElf
TUFQUElORyhXS0NvbnRleHRSZWYsIFdlYkNvbnRleHQpCiBXS19BRERfQVBJX01BUFBJTkcoV0tD
b29raWVNYW5hZ2VyUmVmLCBXZWJDb29raWVNYW5hZ2VyUHJveHkpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tCYXR0ZXJ5TWFuYWdlci5jcHAgYi9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tCYXR0ZXJ5TWFuYWdlci5jcHAKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNzIwNmQ1MwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS0JhdHRlcnlNYW5hZ2VyLmNwcApAQCAtMCwwICsx
LDM3IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEyIEludGVsIENvcnBvcmF0aW9uLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUg
bWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBi
aW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIg
aW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlk
ZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklE
RUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBB
TlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5E
IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4g
Tk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFC
TEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExB
UlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsg
TE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJ
T04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhF
UiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBO
RUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhF
IFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVk
ZSAiV0tCYXR0ZXJ5TWFuYWdlci5oIgorCisjaW5jbHVkZSAiV0tBUElDYXN0LmgiCisjaW5jbHVk
ZSAiV2ViQmF0dGVyeU1hbmFnZXJQcm94eS5oIgorCit1c2luZyBuYW1lc3BhY2UgV2ViS2l0Owor
CitXS1R5cGVJRCBXS0JhdHRlcnlNYW5hZ2VyR2V0VHlwZUlEKCkKK3sKKyAgICByZXR1cm4gdG9B
UEkoV2ViQmF0dGVyeU1hbmFnZXJQcm94eTo6QVBJVHlwZSk7Cit9CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tCYXR0ZXJ5TWFuYWdlci5oIGIvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLQmF0dGVyeU1hbmFnZXIuaApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwLi45MWUyN2Y5Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLQmF0dGVyeU1hbmFnZXIuaApAQCAtMCwwICsxLDU1IEBA
CisvKgorICogQ29weXJpZ2h0IChDKSAyMDEyIEludGVsIENvcnBvcmF0aW9uLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0Ogor
ICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkg
Zm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhl
CisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0
aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkg
QVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQ
UkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5F
U1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZF
TlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9S
IEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9S
CisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBP
RiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhP
V0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgor
ICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdF
TkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBP
RiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBP
RiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVmIFdLQmF0dGVyeU1hbmFnZXJfaAorI2RlZmlu
ZSBXS0JhdHRlcnlNYW5hZ2VyX2gKKworI2luY2x1ZGUgPFdlYktpdDIvV0tCYXNlLmg+CisKKyNp
ZmRlZiBfX2NwbHVzcGx1cworZXh0ZXJuICJDIiB7CisjZW5kaWYKKworLy8gUHJvdmlkZXIuCit0
eXBlZGVmIHZvaWQgKCpXS0JhdHRlcnlQcm92aWRlclN0YXJ0VXBkYXRpbmdDYWxsYmFjaykoV0tC
YXR0ZXJ5TWFuYWdlclJlZiBiYXR0ZXJ5TWFuYWdlciwgY29uc3Qgdm9pZCogY2xpZW50SW5mbyk7
Cit0eXBlZGVmIHZvaWQgKCpXS0JhdHRlcnlQcm92aWRlclN0b3BVcGRhdGluZ0NhbGxiYWNrKShX
S0JhdHRlcnlNYW5hZ2VyUmVmIGJhdHRlcnlNYW5hZ2VyLCBjb25zdCB2b2lkKiBjbGllbnRJbmZv
KTsKKworc3RydWN0IFdLQmF0dGVyeVByb3ZpZGVyIHsKKyAgICBpbnQgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlcnNpb247
CisgICAgY29uc3Qgdm9pZCAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBjbGllbnRJbmZvOworICAgIFdLQmF0dGVyeVByb3ZpZGVyU3RhcnRV
cGRhdGluZ0NhbGxiYWNrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRVcGRhdGlu
ZzsKKyAgICBXS0JhdHRlcnlQcm92aWRlclN0b3BVcGRhdGluZ0NhbGxiYWNrICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIHN0b3BVcGRhdGluZzsKK307Cit0eXBlZGVmIHN0cnVjdCBXS0Jh
dHRlcnlQcm92aWRlciBXS0JhdHRlcnlQcm92aWRlcjsKKworZW51bSB7IGtXS0JhdHRlcnlQcm92
aWRlckN1cnJlbnRWZXJzaW9uID0gMCB9OworCitXS19FWFBPUlQgV0tUeXBlSUQgV0tCYXR0ZXJ5
TWFuYWdlckdldFR5cGVJRCgpOworCisjaWZkZWYgX19jcGx1c3BsdXMKK30KKyNlbmRpZgorCisj
ZW5kaWYgLyogV0tCYXR0ZXJ5TWFuYWdlcl9oICovCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvQVBJL0MvV2ViS2l0Mi5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQ
SS9DL1dlYktpdDIuaAppbmRleCA1MjA5ZTc5Li4xODg5NTY1IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV2ViS2l0Mi5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9BUEkvQy9XZWJLaXQyLmgKQEAgLTMyLDYgKzMyLDcgQEAKICNpbmNsdWRlIDxXZWJL
aXQyL1dLQXJyYXkuaD4KICNpbmNsdWRlIDxXZWJLaXQyL1dLQmFja0ZvcndhcmRMaXN0Lmg+CiAj
aW5jbHVkZSA8V2ViS2l0Mi9XS0JhY2tGb3J3YXJkTGlzdEl0ZW0uaD4KKyNpbmNsdWRlIDxXZWJL
aXQyL1dLQmF0dGVyeU1hbmFnZXIuaD4KICNpbmNsdWRlIDxXZWJLaXQyL1dLQ29ubmVjdGlvblJl
Zi5oPgogI2luY2x1ZGUgPFdlYktpdDIvV0tDb250ZXh0Lmg+CiAjaW5jbHVkZSA8V2ViS2l0Mi9X
S0RhdGEuaD4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJCYXR0ZXJ5
TWFuYWdlclByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJCYXR0ZXJ5TWFu
YWdlclByb3h5LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lNTU5MDZi
Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkJhdHRlcnlN
YW5hZ2VyUHJveHkuY3BwCkBAIC0wLDAgKzEsOTggQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIw
MTIgSW50ZWwgQ29ycG9yYXRpb24uIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Yg
c291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgor
ICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5k
L29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgor
ICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJ
QlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElF
UywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5U
SUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQ
VVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElU
UyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElO
Q0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdF
UyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJT
VElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsg
T1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBU
SEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJ
TElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJ
U0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYg
QURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNp
bmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJXZWJCYXR0ZXJ5TWFuYWdlclByb3h5LmgiCisK
KyNpbmNsdWRlICJXZWJCYXR0ZXJ5TWFuYWdlck1lc3NhZ2VzLmgiCisjaW5jbHVkZSAiV2ViQ29u
dGV4dC5oIgorCituYW1lc3BhY2UgV2ViS2l0IHsKKworUGFzc1JlZlB0cjxXZWJCYXR0ZXJ5TWFu
YWdlclByb3h5PiBXZWJCYXR0ZXJ5TWFuYWdlclByb3h5OjpjcmVhdGUoV2ViQ29udGV4dCogY29u
dGV4dCkKK3sKKyAgICByZXR1cm4gYWRvcHRSZWYobmV3IFdlYkJhdHRlcnlNYW5hZ2VyUHJveHko
Y29udGV4dCkpOworfQorCitXZWJCYXR0ZXJ5TWFuYWdlclByb3h5OjpXZWJCYXR0ZXJ5TWFuYWdl
clByb3h5KFdlYkNvbnRleHQqIGNvbnRleHQpCisgICAgOiBtX2lzVXBkYXRpbmcoZmFsc2UpCisg
ICAgLCBtX2NvbnRleHQoY29udGV4dCkKK3sKK30KKworV2ViQmF0dGVyeU1hbmFnZXJQcm94eTo6
fldlYkJhdHRlcnlNYW5hZ2VyUHJveHkoKQoreworfQorCit2b2lkIFdlYkJhdHRlcnlNYW5hZ2Vy
UHJveHk6OmludmFsaWRhdGUoKQoreworICAgIHN0b3BVcGRhdGluZygpOworfQorCit2b2lkIFdl
YkJhdHRlcnlNYW5hZ2VyUHJveHk6OmluaXRpYWxpemVQcm92aWRlcihjb25zdCBXS0JhdHRlcnlQ
cm92aWRlciogcHJvdmlkZXIpCit7CisgICAgbV9wcm92aWRlci5pbml0aWFsaXplKHByb3ZpZGVy
KTsKK30KKwordm9pZCBXZWJCYXR0ZXJ5TWFuYWdlclByb3h5OjpkaWRSZWNlaXZlTWVzc2FnZShD
b3JlSVBDOjpDb25uZWN0aW9uKiBjb25uZWN0aW9uLCBDb3JlSVBDOjpNZXNzYWdlSUQgbWVzc2Fn
ZUlELCBDb3JlSVBDOjpBcmd1bWVudERlY29kZXIqIGFyZ3VtZW50cykKK3sKKyAgICBkaWRSZWNl
aXZlV2ViQmF0dGVyeU1hbmFnZXJQcm94eU1lc3NhZ2UoY29ubmVjdGlvbiwgbWVzc2FnZUlELCBh
cmd1bWVudHMpOworfQorCit2b2lkIFdlYkJhdHRlcnlNYW5hZ2VyUHJveHk6OnN0YXJ0VXBkYXRp
bmcoKQoreworICAgIGlmIChtX2lzVXBkYXRpbmcpCisgICAgICAgIHJldHVybjsKKworICAgIG1f
cHJvdmlkZXIuc3RhcnRVcGRhdGluZyh0aGlzKTsKKyAgICBtX2lzVXBkYXRpbmcgPSB0cnVlOwor
fQorCit2b2lkIFdlYkJhdHRlcnlNYW5hZ2VyUHJveHk6OnN0b3BVcGRhdGluZygpCit7CisgICAg
aWYgKCFtX2lzVXBkYXRpbmcpCisgICAgICAgIHJldHVybjsKKworICAgIG1fcHJvdmlkZXIuc3Rv
cFVwZGF0aW5nKHRoaXMpOworICAgIG1faXNVcGRhdGluZyA9IGZhbHNlOworfQorCit2b2lkIFdl
YkJhdHRlcnlNYW5hZ2VyUHJveHk6OnByb3ZpZGVyRGlkQ2hhbmdlQmF0dGVyeVN0YXR1cyhjb25z
dCBXVEY6OkF0b21pY1N0cmluZyYgZXZlbnRUeXBlLCBXZWJCYXR0ZXJ5U3RhdHVzKiBzdGF0dXMp
Cit7CisgICAgaWYgKCFtX2NvbnRleHQpCisgICAgICAgIHJldHVybjsKKworICAgIG1fY29udGV4
dC0+c2VuZFRvQWxsUHJvY2Vzc2VzKE1lc3NhZ2VzOjpXZWJCYXR0ZXJ5TWFuYWdlcjo6RGlkQ2hh
bmdlQmF0dGVyeVN0YXR1cyhldmVudFR5cGUsIHN0YXR1cy0+ZGF0YSgpKSk7Cit9CisKK3ZvaWQg
V2ViQmF0dGVyeU1hbmFnZXJQcm94eTo6cHJvdmlkZXJVcGRhdGVCYXR0ZXJ5U3RhdHVzKFdlYkJh
dHRlcnlTdGF0dXMqIHN0YXR1cykKK3sKKyAgICBpZiAoIW1fY29udGV4dCkKKyAgICAgICAgcmV0
dXJuOworCisgICAgbV9jb250ZXh0LT5zZW5kVG9BbGxQcm9jZXNzZXMoTWVzc2FnZXM6OldlYkJh
dHRlcnlNYW5hZ2VyOjpVcGRhdGVCYXR0ZXJ5U3RhdHVzKHN0YXR1cy0+ZGF0YSgpKSk7Cit9CisK
K30gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL1dlYkJhdHRlcnlNYW5hZ2VyUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9X
ZWJCYXR0ZXJ5TWFuYWdlclByb3h5LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MC4uNDgzNjhmNAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9X
ZWJCYXR0ZXJ5TWFuYWdlclByb3h5LmgKQEAgLTAsMCArMSw4MCBAQAorLyoKKyAqIENvcHlyaWdo
dCAoQykgMjAxMiBJbnRlbCBDb3Jwb3JhdGlvbi4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisg
KiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0
aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1
Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRh
dGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlv
bi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElU
UyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBX
QVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVE
IFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VM
QVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElO
Qy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJ
UkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElB
TCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YK
KyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQ
Uk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQg
T04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJ
Q1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0Up
CisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwg
RVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisg
Ki8KKworI2lmbmRlZiBXZWJCYXR0ZXJ5TWFuYWdlclByb3h5X2gKKyNkZWZpbmUgV2ViQmF0dGVy
eU1hbmFnZXJQcm94eV9oCisKKyNpbmNsdWRlICJBUElPYmplY3QuaCIKKyNpbmNsdWRlICJNZXNz
YWdlSUQuaCIKKyNpbmNsdWRlICJXZWJCYXR0ZXJ5UHJvdmlkZXIuaCIKKyNpbmNsdWRlIDx3dGYv
Rm9yd2FyZC5oPgorCituYW1lc3BhY2UgQ29yZUlQQyB7CitjbGFzcyBBcmd1bWVudERlY29kZXI7
CitjbGFzcyBDb25uZWN0aW9uOworfQorCituYW1lc3BhY2UgV2ViS2l0IHsKKworY2xhc3MgV2Vi
Q29udGV4dDsKK2NsYXNzIFdlYkJhdHRlcnlTdGF0dXM7CisKK2NsYXNzIFdlYkJhdHRlcnlNYW5h
Z2VyUHJveHkgOiBwdWJsaWMgQVBJT2JqZWN0IHsKK3B1YmxpYzoKKyAgICBzdGF0aWMgY29uc3Qg
VHlwZSBBUElUeXBlID0gVHlwZUJhdHRlcnlNYW5hZ2VyOworCisgICAgc3RhdGljIFBhc3NSZWZQ
dHI8V2ViQmF0dGVyeU1hbmFnZXJQcm94eT4gY3JlYXRlKFdlYkNvbnRleHQqKTsKKyAgICB2aXJ0
dWFsIH5XZWJCYXR0ZXJ5TWFuYWdlclByb3h5KCk7CisKKyAgICB2b2lkIGludmFsaWRhdGUoKTsK
KyAgICB2b2lkIGNsZWFyQ29udGV4dCgpIHsgbV9jb250ZXh0ID0gMDsgfQorCisgICAgdm9pZCBp
bml0aWFsaXplUHJvdmlkZXIoY29uc3QgV0tCYXR0ZXJ5UHJvdmlkZXIqKTsKKworICAgIHZvaWQg
cHJvdmlkZXJEaWRDaGFuZ2VCYXR0ZXJ5U3RhdHVzKGNvbnN0IFdURjo6QXRvbWljU3RyaW5nJiwg
V2ViQmF0dGVyeVN0YXR1cyopOworICAgIHZvaWQgcHJvdmlkZXJVcGRhdGVCYXR0ZXJ5U3RhdHVz
KFdlYkJhdHRlcnlTdGF0dXMqKTsKKworICAgIHZvaWQgZGlkUmVjZWl2ZU1lc3NhZ2UoQ29yZUlQ
Qzo6Q29ubmVjdGlvbiosIENvcmVJUEM6Ok1lc3NhZ2VJRCwgQ29yZUlQQzo6QXJndW1lbnREZWNv
ZGVyKik7CisKK3ByaXZhdGU6CisgICAgZXhwbGljaXQgV2ViQmF0dGVyeU1hbmFnZXJQcm94eShX
ZWJDb250ZXh0Kik7CisKKyAgICB2aXJ0dWFsIFR5cGUgdHlwZSgpIGNvbnN0IHsgcmV0dXJuIEFQ
SVR5cGU7IH0KKworICAgIC8vIEltcGxlbWVudGVkIGluIGdlbmVyYXRlZCBXZWJCYXR0ZXJ5TWFu
YWdlclByb3h5TWVzc2FnZVJlY2VpdmVyLmNwcAorICAgIHZvaWQgZGlkUmVjZWl2ZVdlYkJhdHRl
cnlNYW5hZ2VyUHJveHlNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qLCBDb3JlSVBDOjpNZXNz
YWdlSUQsIENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciopOworCisgICAgdm9pZCBzdGFydFVwZGF0
aW5nKCk7CisgICAgdm9pZCBzdG9wVXBkYXRpbmcoKTsKKworICAgIGJvb2wgbV9pc1VwZGF0aW5n
OworCisgICAgV2ViQ29udGV4dCogbV9jb250ZXh0OworICAgIFdlYkJhdHRlcnlQcm92aWRlciBt
X3Byb3ZpZGVyOworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CisKKyNlbmRpZiAvLyBXZWJC
YXR0ZXJ5TWFuYWdlclByb3h5X2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9XZWJCYXR0ZXJ5TWFuYWdlclByb3h5Lm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL1dlYkJhdHRlcnlNYW5hZ2VyUHJveHkubWVzc2FnZXMuaW4KbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMC4uODBkNTNkMwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9XZWJCYXR0ZXJ5TWFuYWdlclByb3h5Lm1lc3NhZ2VzLmluCkBAIC0w
LDAgKzEsMjYgQEAKKyMgQ29weXJpZ2h0IChDKSAyMDEyIEludGVsIENvcnBvcmF0aW9uLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgorIworIyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh
bmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyMgbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisjIGFyZSBtZXQ6
CisjIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFi
b3ZlIGNvcHlyaWdodAorIyAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorIyAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFy
eSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMgICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0
aGUKKyMgICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3
aXRoIHRoZSBkaXN0cmlidXRpb24uCisjCisjIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkg
QVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycgQU5ECisjIEFOWSBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
IFRIRSBJTVBMSUVECisjIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKKyMgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQg
U0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IKKyMgQU5Z
IERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09O
U0VRVUVOVElBTAorIyBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJP
Q1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUgorIyBTRVJWSUNFUzsgTE9TUyBPRiBVU0Us
IERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUgorIyBD
QVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNU
LCBTVFJJQ1QgTElBQklMSVRZLAorIyBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBP
VEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorIyBPRiBUSElTIFNP
RlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdF
LgorCittZXNzYWdlcyAtPiBXZWJCYXR0ZXJ5TWFuYWdlclByb3h5IHsKKyAgICBTdGFydFVwZGF0
aW5nKCk7CisgICAgU3RvcFVwZGF0aW5nKCk7Cit9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvV2ViQmF0dGVyeVByb3ZpZGVyLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9XZWJCYXR0ZXJ5UHJvdmlkZXIuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAuLjExMTJjNGUKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvV2ViQmF0dGVyeVByb3ZpZGVyLmNwcApAQCAtMCwwICsxLDUwIEBACisvKgorICogQ29weXJp
Z2h0IChDKSAyMDEyIEludGVsIENvcnBvcmF0aW9uLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoK
KyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmli
dXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJv
ZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVu
dGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0
aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQg
SVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVE
IFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJ
RUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElD
VUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUg
SU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElO
RElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5U
SUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBP
RgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9S
IFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFO
RCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNU
UklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lT
RSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJF
LCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4K
KyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiV2ViQmF0dGVyeVByb3ZpZGVy
LmgiCisKKyNpbmNsdWRlICJXS0FQSUNhc3QuaCIKKyNpbmNsdWRlICJXZWJCYXR0ZXJ5TWFuYWdl
clByb3h5LmgiCisKK25hbWVzcGFjZSBXZWJLaXQgeworCit2b2lkIFdlYkJhdHRlcnlQcm92aWRl
cjo6c3RhcnRVcGRhdGluZyhXZWJCYXR0ZXJ5TWFuYWdlclByb3h5KiBiYXR0ZXJ5TWFuYWdlcikK
K3sKKyAgICBpZiAoIW1fY2xpZW50LnN0YXJ0VXBkYXRpbmcpCisgICAgICAgIHJldHVybjsKKwor
ICAgIG1fY2xpZW50LnN0YXJ0VXBkYXRpbmcodG9BUEkoYmF0dGVyeU1hbmFnZXIpLCBtX2NsaWVu
dC5jbGllbnRJbmZvKTsKK30KKwordm9pZCBXZWJCYXR0ZXJ5UHJvdmlkZXI6OnN0b3BVcGRhdGlu
ZyhXZWJCYXR0ZXJ5TWFuYWdlclByb3h5KiBiYXR0ZXJ5TWFuYWdlcikKK3sKKyAgICBpZiAoIW1f
Y2xpZW50LnN0b3BVcGRhdGluZykKKyAgICAgICAgcmV0dXJuOworCisgICAgbV9jbGllbnQuc3Rv
cFVwZGF0aW5nKHRvQVBJKGJhdHRlcnlNYW5hZ2VyKSwgbV9jbGllbnQuY2xpZW50SW5mbyk7Cit9
CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL1dlYkJhdHRlcnlQcm92aWRlci5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dl
YkJhdHRlcnlQcm92aWRlci5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmU0
MWNiMGIKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViQmF0
dGVyeVByb3ZpZGVyLmgKQEAgLTAsMCArMSw0NSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAx
MiBJbnRlbCBDb3Jwb3JhdGlvbi4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBz
b3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisg
KiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQv
b3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisg
KiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklC
VVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVT
LCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJ
RVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBV
UlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRT
IENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5D
SURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VT
IChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNU
SVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBP
UiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRI
RU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklM
SVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklT
SU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBB
RFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lm
bmRlZiBXZWJCYXR0ZXJ5UHJvdmlkZXJfaAorI2RlZmluZSBXZWJCYXR0ZXJ5UHJvdmlkZXJfaAor
CisjaW5jbHVkZSAiQVBJQ2xpZW50LmgiCisjaW5jbHVkZSAiV0tCYXR0ZXJ5TWFuYWdlci5oIgor
I2luY2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+CisKK25hbWVzcGFjZSBXZWJLaXQgeworCitjbGFzcyBX
ZWJCYXR0ZXJ5TWFuYWdlclByb3h5OworCitjbGFzcyBXZWJCYXR0ZXJ5UHJvdmlkZXIgOiBwdWJs
aWMgQVBJQ2xpZW50PFdLQmF0dGVyeVByb3ZpZGVyLCBrV0tCYXR0ZXJ5UHJvdmlkZXJDdXJyZW50
VmVyc2lvbj4geworcHVibGljOgorICAgIHZvaWQgc3RhcnRVcGRhdGluZyhXZWJCYXR0ZXJ5TWFu
YWdlclByb3h5Kik7CisgICAgdm9pZCBzdG9wVXBkYXRpbmcoV2ViQmF0dGVyeU1hbmFnZXJQcm94
eSopOworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CisKKyNlbmRpZiAvLyBXZWJCYXR0ZXJ5
UHJvdmlkZXJfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViS2l0Mi5wcmkgYi9Tb3Vy
Y2UvV2ViS2l0Mi9XZWJLaXQyLnByaQppbmRleCAyNGNjNWEyLi41NDUzZjUzIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0Mi9XZWJLaXQyLnByaQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJLaXQy
LnByaQpAQCAtMzYsNiArMzYsNyBAQCBJTkNMVURFUEFUSCArPSBcCiAgICAgJCRTT1VSQ0VfRElS
L1dlYlByb2Nlc3MgXAogICAgICQkU09VUkNFX0RJUi9XZWJQcm9jZXNzL0FwcGxpY2F0aW9uQ2Fj
aGUgXAogICAgICQkU09VUkNFX0RJUi9XZWJQcm9jZXNzL0F1dGhlbnRpY2F0aW9uIFwKKyAgICAk
JFNPVVJDRV9ESVIvV2ViUHJvY2Vzcy9CYXR0ZXJ5IFwKICAgICAkJFNPVVJDRV9ESVIvV2ViUHJv
Y2Vzcy9Db29raWVzIFwKICAgICAkJFNPVVJDRV9ESVIvV2ViUHJvY2Vzcy9Db29raWVzL3F0IFwK
ICAgICAkJFNPVVJDRV9ESVIvV2ViUHJvY2Vzcy9Eb3dubG9hZHMgXApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9CYXR0ZXJ5L1dlYkJhdHRlcnlNYW5hZ2VyLmNwcCBiL1Nv
dXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvQmF0dGVyeS9XZWJCYXR0ZXJ5TWFuYWdlci5jcHAKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNzlkNzM4NwotLS0gL2Rldi9udWxsCisr
KyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvQmF0dGVyeS9XZWJCYXR0ZXJ5TWFuYWdlci5j
cHAKQEAgLTAsMCArMSwxMDIgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTIgSW50ZWwgQ29y
cG9yYXRpb24uIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUg
bXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0
cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1h
dGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZU
V0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMg
SVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNI
QU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBE
SVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRP
UlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQ
RUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RT
IE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MK
KyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElB
QklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9S
VCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkg
V0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgor
ICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25m
aWcuaCIKKyNpbmNsdWRlICJXZWJCYXR0ZXJ5TWFuYWdlci5oIgorCisjaW5jbHVkZSAiV2ViQmF0
dGVyeU1hbmFnZXJQcm94eU1lc3NhZ2VzLmgiCisjaW5jbHVkZSAiV2ViUGFnZS5oIgorI2luY2x1
ZGUgIldlYlByb2Nlc3MuaCIKKyNpbmNsdWRlIDxXZWJDb3JlL0JhdHRlcnlDb250cm9sbGVyLmg+
CisjaW5jbHVkZSA8V2ViQ29yZS9CYXR0ZXJ5U3RhdHVzLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9Q
YWdlLmg+CisKK3VzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOworCituYW1lc3BhY2UgV2ViS2l0IHsK
KworV2ViQmF0dGVyeU1hbmFnZXI6OldlYkJhdHRlcnlNYW5hZ2VyKFdlYlByb2Nlc3MqIHByb2Nl
c3MpCisgICAgOiBtX3Byb2Nlc3MocHJvY2VzcykKK3sKK30KKworV2ViQmF0dGVyeU1hbmFnZXI6
On5XZWJCYXR0ZXJ5TWFuYWdlcigpCit7Cit9CisKK3ZvaWQgV2ViQmF0dGVyeU1hbmFnZXI6OmRp
ZFJlY2VpdmVNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qIGNvbm5lY3Rpb24sIENvcmVJUEM6
Ok1lc3NhZ2VJRCBtZXNzYWdlSUQsIENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciogYXJndW1lbnRz
KQoreworICAgIGRpZFJlY2VpdmVXZWJCYXR0ZXJ5TWFuYWdlck1lc3NhZ2UoY29ubmVjdGlvbiwg
bWVzc2FnZUlELCBhcmd1bWVudHMpOworfQorCit2b2lkIFdlYkJhdHRlcnlNYW5hZ2VyOjpyZWdp
c3RlcldlYlBhZ2UoV2ViUGFnZSogcGFnZSkKK3sKKyAgICBib29sIHdhc0VtcHR5ID0gbV9wYWdl
U2V0LmlzRW1wdHkoKTsKKworICAgIG1fcGFnZVNldC5hZGQocGFnZSk7CisKKyAgICBpZiAod2Fz
RW1wdHkpCisgICAgICAgIG1fcHJvY2Vzcy0+Y29ubmVjdGlvbigpLT5zZW5kKE1lc3NhZ2VzOjpX
ZWJCYXR0ZXJ5TWFuYWdlclByb3h5OjpTdGFydFVwZGF0aW5nKCksIDApOworfQorCit2b2lkIFdl
YkJhdHRlcnlNYW5hZ2VyOjp1bnJlZ2lzdGVyV2ViUGFnZShXZWJQYWdlKiBwYWdlKQoreworICAg
IG1fcGFnZVNldC5yZW1vdmUocGFnZSk7CisKKyAgICBpZiAobV9wYWdlU2V0LmlzRW1wdHkoKSkK
KyAgICAgICAgbV9wcm9jZXNzLT5jb25uZWN0aW9uKCktPnNlbmQoTWVzc2FnZXM6OldlYkJhdHRl
cnlNYW5hZ2VyUHJveHk6OlN0b3BVcGRhdGluZygpLCAwKTsKK30KKwordm9pZCBXZWJCYXR0ZXJ5
TWFuYWdlcjo6ZGlkQ2hhbmdlQmF0dGVyeVN0YXR1cyhjb25zdCBXVEY6OkF0b21pY1N0cmluZyYg
ZXZlbnRUeXBlLCBjb25zdCBXZWJCYXR0ZXJ5U3RhdHVzOjpEYXRhJiBkYXRhKQoreworI2lmIEVO
QUJMRShCQVRURVJZX1NUQVRVUykKKyAgICBSZWZQdHI8QmF0dGVyeVN0YXR1cz4gc3RhdHVzID0g
QmF0dGVyeVN0YXR1czo6Y3JlYXRlKGRhdGEuaXNDaGFyZ2luZywgZGF0YS5jaGFyZ2luZ1RpbWUs
IGRhdGEuZGlzY2hhcmdpbmdUaW1lLCBkYXRhLmxldmVsKTsKKworICAgIEhhc2hTZXQ8V2ViUGFn
ZSo+Ojpjb25zdF9pdGVyYXRvciBpdCA9IG1fcGFnZVNldC5iZWdpbigpOworICAgIEhhc2hTZXQ8
V2ViUGFnZSo+Ojpjb25zdF9pdGVyYXRvciBlbmQgPSBtX3BhZ2VTZXQuZW5kKCk7CisgICAgZm9y
ICg7IGl0ICE9IGVuZDsgKytpdCkgeworICAgICAgICBXZWJQYWdlKiBwYWdlID0gKml0OworICAg
ICAgICBpZiAocGFnZS0+Y29yZVBhZ2UoKSkKKyAgICAgICAgICAgIEJhdHRlcnlDb250cm9sbGVy
Ojpmcm9tKHBhZ2UtPmNvcmVQYWdlKCkpLT5kaWRDaGFuZ2VCYXR0ZXJ5U3RhdHVzKGV2ZW50VHlw
ZSwgc3RhdHVzLmdldCgpKTsKKyAgICB9CisjZW5kaWYgLy8gRU5BQkxFKEJBVFRFUllfU1RBVFVT
KQorfQorCit2b2lkIFdlYkJhdHRlcnlNYW5hZ2VyOjp1cGRhdGVCYXR0ZXJ5U3RhdHVzKGNvbnN0
IFdlYkJhdHRlcnlTdGF0dXM6OkRhdGEmIGRhdGEpCit7CisjaWYgRU5BQkxFKEJBVFRFUllfU1RB
VFVTKQorICAgIFJlZlB0cjxCYXR0ZXJ5U3RhdHVzPiBzdGF0dXMgPSBCYXR0ZXJ5U3RhdHVzOjpj
cmVhdGUoZGF0YS5pc0NoYXJnaW5nLCBkYXRhLmNoYXJnaW5nVGltZSwgZGF0YS5kaXNjaGFyZ2lu
Z1RpbWUsIGRhdGEubGV2ZWwpOworCisgICAgSGFzaFNldDxXZWJQYWdlKj46OmNvbnN0X2l0ZXJh
dG9yIGl0ID0gbV9wYWdlU2V0LmJlZ2luKCk7CisgICAgSGFzaFNldDxXZWJQYWdlKj46OmNvbnN0
X2l0ZXJhdG9yIGVuZCA9IG1fcGFnZVNldC5lbmQoKTsKKyAgICBmb3IgKDsgaXQgIT0gZW5kOyAr
K2l0KSB7CisgICAgICAgIFdlYlBhZ2UqIHBhZ2UgPSAqaXQ7CisgICAgICAgIGlmIChwYWdlLT5j
b3JlUGFnZSgpKQorICAgICAgICAgICAgQmF0dGVyeUNvbnRyb2xsZXI6OmZyb20ocGFnZS0+Y29y
ZVBhZ2UoKSktPnVwZGF0ZUJhdHRlcnlTdGF0dXMoc3RhdHVzLmdldCgpKTsKKyAgICB9CisjZW5k
aWYgLy8gRU5BQkxFKEJBVFRFUllfU1RBVFVTKQorfQorCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvQmF0dGVyeS9XZWJCYXR0ZXJ5
TWFuYWdlci5oIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9CYXR0ZXJ5L1dlYkJhdHRlcnlN
YW5hZ2VyLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYzI4ODdjMAotLS0g
L2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvQmF0dGVyeS9XZWJCYXR0
ZXJ5TWFuYWdlci5oCkBAIC0wLDAgKzEsNzEgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTIg
SW50ZWwgQ29ycG9yYXRpb24uIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291
cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICog
Mi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29y
IG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICog
VEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVU
T1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywg
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVT
IE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQ
T1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBD
T05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lE
RU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAo
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElU
VVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1Ig
QlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVP
UlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElU
WSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lO
RyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURW
SVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5k
ZWYgV2ViQmF0dGVyeU1hbmFnZXJfaAorI2RlZmluZSBXZWJCYXR0ZXJ5TWFuYWdlcl9oCisKKyNp
bmNsdWRlICJNZXNzYWdlSUQuaCIKKyNpbmNsdWRlICJXZWJCYXR0ZXJ5U3RhdHVzLmgiCisjaW5j
bHVkZSAiV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmgiCisjaW5jbHVkZSA8d3RmL0hhc2hTZXQuaD4K
KyNpbmNsdWRlIDx3dGYvTm9uY29weWFibGUuaD4KKyNpbmNsdWRlIDx3dGYvdGV4dC9BdG9taWNT
dHJpbmcuaD4KKworbmFtZXNwYWNlIENvcmVJUEMgeworY2xhc3MgQXJndW1lbnREZWNvZGVyOwor
Y2xhc3MgQ29ubmVjdGlvbjsKK30KKworbmFtZXNwYWNlIFdlYktpdCB7CisKK2NsYXNzIFdlYlBh
Z2U7CitjbGFzcyBXZWJQcm9jZXNzOworCitjbGFzcyBXZWJCYXR0ZXJ5TWFuYWdlciB7CisgICAg
V1RGX01BS0VfTk9OQ09QWUFCTEUoV2ViQmF0dGVyeU1hbmFnZXIpOworCitwdWJsaWM6CisgICAg
ZXhwbGljaXQgV2ViQmF0dGVyeU1hbmFnZXIoV2ViUHJvY2VzcyopOworICAgIH5XZWJCYXR0ZXJ5
TWFuYWdlcigpOworCisgICAgdm9pZCByZWdpc3RlcldlYlBhZ2UoV2ViUGFnZSopOworICAgIHZv
aWQgdW5yZWdpc3RlcldlYlBhZ2UoV2ViUGFnZSopOworCisgICAgdm9pZCBkaWRDaGFuZ2VCYXR0
ZXJ5U3RhdHVzKGNvbnN0IFdURjo6QXRvbWljU3RyaW5nJiBldmVudFR5cGUsIGNvbnN0IFdlYkJh
dHRlcnlTdGF0dXM6OkRhdGEmKTsKKyAgICB2b2lkIHVwZGF0ZUJhdHRlcnlTdGF0dXMoY29uc3Qg
V2ViQmF0dGVyeVN0YXR1czo6RGF0YSYpOworCisgICAgdm9pZCBkaWRSZWNlaXZlTWVzc2FnZShD
b3JlSVBDOjpDb25uZWN0aW9uKiwgQ29yZUlQQzo6TWVzc2FnZUlELCBDb3JlSVBDOjpBcmd1bWVu
dERlY29kZXIqKTsKKworcHJpdmF0ZToKKyAgICAvLyBJbXBsZW1lbnRlZCBpbiBnZW5lcmF0ZWQg
V2ViQmF0dGVyeU1hbmFnZXJNZXNzYWdlUmVjZWl2ZXIuY3BwCisgICAgdm9pZCBkaWRSZWNlaXZl
V2ViQmF0dGVyeU1hbmFnZXJNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qLCBDb3JlSVBDOjpN
ZXNzYWdlSUQsIENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciopOworCisgICAgV2ViUHJvY2Vzcyog
bV9wcm9jZXNzOworICAgIEhhc2hTZXQ8V2ViUGFnZSo+IG1fcGFnZVNldDsKK307CisKK30gLy8g
bmFtZXNwYWNlIFdlYktpdAorCisjZW5kaWYgLy8gV2ViQmF0dGVyeU1hbmFnZXJfaApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9CYXR0ZXJ5L1dlYkJhdHRlcnlNYW5hZ2Vy
Lm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9CYXR0ZXJ5L1dlYkJhdHRl
cnlNYW5hZ2VyLm1lc3NhZ2VzLmluCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAu
LmMxYTJhZjgKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0Jh
dHRlcnkvV2ViQmF0dGVyeU1hbmFnZXIubWVzc2FnZXMuaW4KQEAgLTAsMCArMSwyNiBAQAorIyBD
b3B5cmlnaHQgKEMpIDIwMTIgSW50ZWwgQ29ycG9yYXRpb24uIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CisjCisjIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAorIyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyMgYXJlIG1ldDoKKyMgMS4gIFJlZGlzdHJp
YnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Cisj
ICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIuCisjIDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXBy
b2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorIyAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorIyAgICAgZG9jdW1l
bnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1
dGlvbi4KKyMKKyMgVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJ
VFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJyBBTkQKKyMgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBX
QVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQKKyMg
V0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB
UiBQVVJQT1NFIEFSRQorIyBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMu
IE9SIElUUyBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUgorIyBBTlkgRElSRUNULCBJTkRJUkVD
VCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMCisjIERB
TUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJT
VElUVVRFIEdPT0RTIE9SCisjIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklU
UzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSCisjIENBVVNFRCBBTkQgT04gQU5Z
IFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJ
VFksCisjIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lO
RyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisjIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYg
QURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisKK21lc3NhZ2VzIC0+
IFdlYkJhdHRlcnlNYW5hZ2VyIHsKKyAgICBEaWRDaGFuZ2VCYXR0ZXJ5U3RhdHVzKEF0b21pY1N0
cmluZyBldmVudFR5cGUsIFdlYktpdDo6V2ViQmF0dGVyeVN0YXR1czo6RGF0YSBzdGF0dXMpOwor
ICAgIFVwZGF0ZUJhdHRlcnlTdGF0dXMoV2ViS2l0OjpXZWJCYXR0ZXJ5U3RhdHVzOjpEYXRhIHN0
YXR1cyk7Cit9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVT
dXBwb3J0L1dlYkJhdHRlcnlDbGllbnQuY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9X
ZWJDb3JlU3VwcG9ydC9XZWJCYXR0ZXJ5Q2xpZW50LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwLi45MTAzM2ZhCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJCYXR0ZXJ5Q2xpZW50LmNwcApAQCAtMCwwICsx
LDU3IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEyIEludGVsIENvcnBvcmF0aW9uLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUg
bWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBi
aW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIg
aW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlk
ZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklE
RUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBB
TlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5E
IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4g
Tk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFC
TEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExB
UlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsg
TE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJ
T04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhF
UiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBO
RUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhF
IFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVk
ZSAiV2ViQmF0dGVyeUNsaWVudC5oIgorCisjaWYgRU5BQkxFKEJBVFRFUllfU1RBVFVTKQorCisj
aW5jbHVkZSAiV2ViQmF0dGVyeU1hbmFnZXIuaCIKKyNpbmNsdWRlICJXZWJQYWdlLmgiCisjaW5j
bHVkZSAiV2ViUHJvY2Vzcy5oIgorCit1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKKworbmFtZXNw
YWNlIFdlYktpdCB7CisKK3ZvaWQgV2ViQmF0dGVyeUNsaWVudDo6c3RhcnRVcGRhdGluZygpCit7
CisgICAgV2ViUHJvY2Vzczo6c2hhcmVkKCkuYmF0dGVyeU1hbmFnZXIoKS5yZWdpc3RlcldlYlBh
Z2UobV9wYWdlKTsKK30KKwordm9pZCBXZWJCYXR0ZXJ5Q2xpZW50OjpzdG9wVXBkYXRpbmcoKQor
eworICAgIFdlYlByb2Nlc3M6OnNoYXJlZCgpLmJhdHRlcnlNYW5hZ2VyKCkudW5yZWdpc3Rlcldl
YlBhZ2UobV9wYWdlKTsKK30KKwordm9pZCBXZWJCYXR0ZXJ5Q2xpZW50OjpiYXR0ZXJ5Q29udHJv
bGxlckRlc3Ryb3llZCgpCit7CisgICAgV2ViUHJvY2Vzczo6c2hhcmVkKCkuYmF0dGVyeU1hbmFn
ZXIoKS51bnJlZ2lzdGVyV2ViUGFnZShtX3BhZ2UpOworICAgIGRlbGV0ZSB0aGlzOworfQorCit9
IC8vIG5hbWVzcGFjZSBXZWJLaXQKKworI2VuZGlmIC8vIEVOQUJMRShCQVRURVJZX1NUQVRVUykK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2Vi
QmF0dGVyeUNsaWVudC5oIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9y
dC9XZWJCYXR0ZXJ5Q2xpZW50LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4u
MWE5ZjRlNwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2Vi
Q29yZVN1cHBvcnQvV2ViQmF0dGVyeUNsaWVudC5oCkBAIC0wLDAgKzEsNTQgQEAKKy8qCisgKiBD
b3B5cmlnaHQgKEMpIDIwMTIgSW50ZWwgQ29ycG9yYXRpb24uIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRp
c3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3Qg
cmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRv
Y3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0
cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMu
IEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUg
SU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBB
UFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVD
VCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNF
UVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVN
RU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFU
QSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVT
RUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFD
VCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RI
RVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09G
VFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFN
QUdFLgorICovCisKKyNpZm5kZWYgV2ViQmF0dGVyeUNsaWVudF9oCisjZGVmaW5lIFdlYkJhdHRl
cnlDbGllbnRfaAorCisjaW5jbHVkZSA8V2ViQ29yZS9CYXR0ZXJ5Q2xpZW50Lmg+CisKK25hbWVz
cGFjZSBXZWJLaXQgeworCitjbGFzcyBXZWJQYWdlOworCitjbGFzcyBXZWJCYXR0ZXJ5Q2xpZW50
IDogcHVibGljIFdlYkNvcmU6OkJhdHRlcnlDbGllbnQgeworcHVibGljOgorICAgIFdlYkJhdHRl
cnlDbGllbnQoV2ViUGFnZSogcGFnZSkKKyAgICAgICAgOiBtX3BhZ2UocGFnZSkKKyAgICB7Cisg
ICAgfQorCisgICAgdmlydHVhbCB+V2ViQmF0dGVyeUNsaWVudCgpIHsgfQorCitwcml2YXRlOgor
ICAgIHZpcnR1YWwgdm9pZCBzdGFydFVwZGF0aW5nKCkgT1ZFUlJJREU7CisgICAgdmlydHVhbCB2
b2lkIHN0b3BVcGRhdGluZygpIE9WRVJSSURFOworICAgIHZpcnR1YWwgdm9pZCBiYXR0ZXJ5Q29u
dHJvbGxlckRlc3Ryb3llZCgpIE9WRVJSSURFOworCisgICAgV2ViUGFnZSogbV9wYWdlOworfTsK
KworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CisKKyNlbmRpZiAvLyBXZWJCYXR0ZXJ5Q2xpZW50X2gK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5jcHAgYi9T
b3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuY3BwCmluZGV4IDJiMDM4MmQuLjFk
NjRhYzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5j
cHAKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmNwcApAQCAtMTQ1
LDYgKzE0NSw3IEBAIFdlYlByb2Nlc3M6OldlYlByb2Nlc3MoKQogI2VuZGlmCiAgICAgLCBtX3Rl
eHRDaGVja2VyU3RhdGUoKQogICAgICwgbV9nZW9sb2NhdGlvbk1hbmFnZXIodGhpcykKKyAgICAs
IG1fYmF0dGVyeU1hbmFnZXIodGhpcykKICNpZiBFTkFCTEUoTk9USUZJQ0FUSU9OUykgfHwgRU5B
QkxFKExFR0FDWV9OT1RJRklDQVRJT05TKQogICAgICwgbV9ub3RpZmljYXRpb25NYW5hZ2VyKHRo
aXMpCiAjZW5kaWYKQEAgLTYzMSw2ICs2MzIsMTEgQEAgdm9pZCBXZWJQcm9jZXNzOjpkaWRSZWNl
aXZlTWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiBjb25uZWN0aW9uLCBDb3JlSVBDOjpNZXMK
ICAgICAgICAgcmV0dXJuOwogICAgIH0KIAorICAgIGlmIChtZXNzYWdlSUQuaXM8Q29yZUlQQzo6
TWVzc2FnZUNsYXNzV2ViQmF0dGVyeU1hbmFnZXI+KCkpIHsKKyAgICAgICAgbV9iYXR0ZXJ5TWFu
YWdlci5kaWRSZWNlaXZlTWVzc2FnZShjb25uZWN0aW9uLCBtZXNzYWdlSUQsIGFyZ3VtZW50cyk7
CisgICAgICAgIHJldHVybjsKKyAgICB9CisKICAgICBpZiAobWVzc2FnZUlELmlzPENvcmVJUEM6
Ok1lc3NhZ2VDbGFzc1dlYkljb25EYXRhYmFzZVByb3h5PigpKSB7CiAgICAgICAgIG1faWNvbkRh
dGFiYXNlUHJveHkuZGlkUmVjZWl2ZU1lc3NhZ2UoY29ubmVjdGlvbiwgbWVzc2FnZUlELCBhcmd1
bWVudHMpOwogICAgICAgICByZXR1cm47CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQ
cm9jZXNzL1dlYlByb2Nlc3MuaCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUHJvY2Vz
cy5oCmluZGV4IDk4NmNlMzYuLjExZGEzMDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dl
YlByb2Nlc3MvV2ViUHJvY2Vzcy5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2Vi
UHJvY2Vzcy5oCkBAIC0zNiw2ICszNiw3IEBACiAjaW5jbHVkZSAiU2hhcmVkTWVtb3J5LmgiCiAj
aW5jbHVkZSAiVGV4dENoZWNrZXJTdGF0ZS5oIgogI2luY2x1ZGUgIlZpc2l0ZWRMaW5rVGFibGUu
aCIKKyNpbmNsdWRlICJXZWJCYXR0ZXJ5TWFuYWdlci5oIgogI2luY2x1ZGUgIldlYkNvbm5lY3Rp
b25Ub1VJUHJvY2Vzcy5oIgogI2luY2x1ZGUgIldlYkdlb2xvY2F0aW9uTWFuYWdlci5oIgogI2lu
Y2x1ZGUgIldlYkljb25EYXRhYmFzZVByb3h5LmgiCkBAIC0xNDIsNiArMTQzLDkgQEAgcHVibGlj
OgogCiAgICAgLy8gR2VvbG9jYXRpb24KICAgICBXZWJHZW9sb2NhdGlvbk1hbmFnZXImIGdlb2xv
Y2F0aW9uTWFuYWdlcigpIHsgcmV0dXJuIG1fZ2VvbG9jYXRpb25NYW5hZ2VyOyB9CisKKyAgICAv
LyBCYXR0ZXJ5CisgICAgV2ViQmF0dGVyeU1hbmFnZXImIGJhdHRlcnlNYW5hZ2VyKCkgeyByZXR1
cm4gbV9iYXR0ZXJ5TWFuYWdlcjsgfQogICAgIAogI2lmIEVOQUJMRShOT1RJRklDQVRJT05TKSB8
fCBFTkFCTEUoTEVHQUNZX05PVElGSUNBVElPTlMpCiAgICAgV2ViTm90aWZpY2F0aW9uTWFuYWdl
ciYgbm90aWZpY2F0aW9uTWFuYWdlcigpIHsgcmV0dXJuIG1fbm90aWZpY2F0aW9uTWFuYWdlcjsg
fQpAQCAtMjg2LDYgKzI5MCw3IEBAIHByaXZhdGU6CiAKICAgICBUZXh0Q2hlY2tlclN0YXRlIG1f
dGV4dENoZWNrZXJTdGF0ZTsKICAgICBXZWJHZW9sb2NhdGlvbk1hbmFnZXIgbV9nZW9sb2NhdGlv
bk1hbmFnZXI7CisgICAgV2ViQmF0dGVyeU1hbmFnZXIgbV9iYXR0ZXJ5TWFuYWdlcjsKICNpZiBF
TkFCTEUoTk9USUZJQ0FUSU9OUykgfHwgRU5BQkxFKExFR0FDWV9OT1RJRklDQVRJT05TKQogICAg
IFdlYk5vdGlmaWNhdGlvbk1hbmFnZXIgbV9ub3RpZmljYXRpb25NYW5hZ2VyOwogI2VuZGlmCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi93aW4vV2ViS2l0Mi52Y3Byb2ogYi9Tb3VyY2UvV2Vi
S2l0Mi93aW4vV2ViS2l0Mi52Y3Byb2oKaW5kZXggYzJmZWYwOS4uNjY4YjI4MCAxMDA3NTUKLS0t
IGEvU291cmNlL1dlYktpdDIvd2luL1dlYktpdDIudmNwcm9qCisrKyBiL1NvdXJjZS9XZWJLaXQy
L3dpbi9XZWJLaXQyLnZjcHJvagpAQCAtNjA3LDYgKzYwNywxNCBAQAogCQkJCT4KIAkJCTwvRmls
ZT4KIAkJCTxGaWxlCisJCQkJUmVsYXRpdmVQYXRoPSIuLlxTaGFyZWRcV2ViQmF0dGVyeVN0YXR1
cy5jcHAiCisJCQkJPgorCQkJPC9GaWxlPgorCQkJPEZpbGUKKwkJCQlSZWxhdGl2ZVBhdGg9Ii4u
XFNoYXJlZFxXZWJCYXR0ZXJ5U3RhdHVzLmgiCisJCQkJPgorCQkJPC9GaWxlPgorCQkJPEZpbGUK
IAkJCQlSZWxhdGl2ZVBhdGg9Ii4uXFNoYXJlZFxXZWJDZXJ0aWZpY2F0ZUluZm8uaCIKIAkJCQk+
CiAJCQk8L0ZpbGU+CkBAIC0xNjUxLDYgKzE2NTksMjIgQEAKIAkJCQk8L0ZpbGU+CiAJCQk8L0Zp
bHRlcj4KIAkJCTxGaWx0ZXIKKwkJCQlOYW1lPSJCYXR0ZXJ5IgorCQkJCT4KKwkJCQk8RmlsZQor
CQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXFdlYlByb2Nlc3NcQmF0dGVyeVxXZWJCYXR0ZXJ5TWFuYWdl
ci5jcHAiCisJCQkJCT4KKwkJCQk8L0ZpbGU+CisJCQkJPEZpbGUKKwkJCQkJUmVsYXRpdmVQYXRo
PSIuLlxXZWJQcm9jZXNzXEJhdHRlcnlcV2ViQmF0dGVyeU1hbmFnZXIuaCIKKwkJCQkJPgorCQkJ
CTwvRmlsZT4KKwkJCQk8RmlsZQorCQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXFdlYlByb2Nlc3NcQmF0
dGVyeVxXZWJCYXR0ZXJ5TWFuYWdlci5tZXNzYWdlcy5pbiIKKwkJCQkJPgorCQkJCTwvRmlsZT4K
KwkJCTwvRmlsdGVyPgorCQkJPEZpbHRlcgogCQkJCU5hbWU9Ikdlb2xvY2F0aW9uIgogCQkJCT4K
IAkJCQk8RmlsZQpAQCAtMTgzMCw2ICsxODU0LDE0IEBACiAJCQkJTmFtZT0iV2ViQ29yZVN1cHBv
cnQiCiAJCQkJPgogCQkJCTxGaWxlCisJCQkJCVJlbGF0aXZlUGF0aD0iLi5cV2ViUHJvY2Vzc1xX
ZWJDb3JlU3VwcG9ydFxXZWJCYXR0ZXJ5Q2xpZW50LmNwcCIKKwkJCQkJPgorCQkJCTwvRmlsZT4K
KwkJCQk8RmlsZQorCQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXFdlYlByb2Nlc3NcV2ViQ29yZVN1cHBv
cnRcV2ViQmF0dGVyeUNsaWVudC5oIgorCQkJCQk+CisJCQkJPC9GaWxlPgorCQkJCTxGaWxlCiAJ
CQkJCVJlbGF0aXZlUGF0aD0iLi5cV2ViUHJvY2Vzc1xXZWJDb3JlU3VwcG9ydFxXZWJDaHJvbWVD
bGllbnQuY3BwIgogCQkJCQk+CiAJCQkJPC9GaWxlPgpAQCAtMjg4Myw2ICsyOTE1LDI2IEBACiAJ
CQkJPgogCQkJPC9GaWxlPgogCQkJPEZpbGUKKwkJCQlSZWxhdGl2ZVBhdGg9Ii4uXFVJUHJvY2Vz
c1xXZWJCYXR0ZXJ5TWFuYWdlclByb3h5LmNwcCIKKwkJCQk+CisJCQk8L0ZpbGU+CisJCQk8Rmls
ZQorCQkJCVJlbGF0aXZlUGF0aD0iLi5cVUlQcm9jZXNzXFdlYkJhdHRlcnlNYW5hZ2VyUHJveHku
aCIKKwkJCQk+CisJCQk8L0ZpbGU+CisJCQk8RmlsZQorCQkJCVJlbGF0aXZlUGF0aD0iLi5cVUlQ
cm9jZXNzXFdlYkJhdHRlcnlNYW5hZ2VyUHJveHkubWVzc2FnZXMuaW4iCisJCQkJPgorCQkJPC9G
aWxlPgorCQkJPEZpbGUKKwkJCQlSZWxhdGl2ZVBhdGg9Ii4uXFVJUHJvY2Vzc1xXZWJCYXR0ZXJ5
UHJvdmlkZXIuY3BwIgorCQkJCT4KKwkJCTwvRmlsZT4KKwkJCTxGaWxlCisJCQkJUmVsYXRpdmVQ
YXRoPSIuLlxVSVByb2Nlc3NcV2ViQmF0dGVyeVByb3ZpZGVyLmgiCisJCQkJPgorCQkJPC9GaWxl
PgorCQkJPEZpbGUKIAkJCQlSZWxhdGl2ZVBhdGg9Ii4uXFVJUHJvY2Vzc1xXZWJDb25uZWN0aW9u
VG9XZWJQcm9jZXNzLmNwcCIKIAkJCQk+CiAJCQk8L0ZpbGU+CkBAIC0zMzA5LDYgKzMzNjEsMTQg
QEAKIAkJCQkJCT4KIAkJCQkJPC9GaWxlPgogCQkJCQk8RmlsZQorCQkJCQkJUmVsYXRpdmVQYXRo
PSIuLlxVSVByb2Nlc3NcQVBJXENcV0tCYXR0ZXJ5TWFuYWdlci5jcHAiCisJCQkJCQk+CisJCQkJ
CTwvRmlsZT4KKwkJCQkJPEZpbGUKKwkJCQkJCVJlbGF0aXZlUGF0aD0iLi5cVUlQcm9jZXNzXEFQ
SVxDXFdLQmF0dGVyeU1hbmFnZXIuaCIKKwkJCQkJCT4KKwkJCQkJPC9GaWxlPgorCQkJCQk8Rmls
ZQogCQkJCQkJUmVsYXRpdmVQYXRoPSIuLlxVSVByb2Nlc3NcQVBJXENcV0tDb250ZXh0LmNwcCIK
IAkJCQkJCT4KIAkJCQkJPC9GaWxlPgpAQCAtNDI0Myw2ICs0MzAzLDIyIEBACiAJCQkJPgogCQkJ
PC9GaWxlPgogCQkJPEZpbGUKKwkJCQlSZWxhdGl2ZVBhdGg9IiQoQ29uZmlndXJhdGlvbkJ1aWxk
RGlyKVxvYmpcJChQcm9qZWN0TmFtZSlcRGVyaXZlZFNvdXJjZXNcV2ViQmF0dGVyeU1hbmFnZXJN
ZXNzYWdlUmVjZWl2ZXIuY3BwIgorCQkJCT4KKwkJCTwvRmlsZT4KKwkJCTxGaWxlCisJCQkJUmVs
YXRpdmVQYXRoPSIkKENvbmZpZ3VyYXRpb25CdWlsZERpcilcb2JqXCQoUHJvamVjdE5hbWUpXERl
cml2ZWRTb3VyY2VzXFdlYkJhdHRlcnlNYW5hZ2VyTWVzc2FnZXMuaCIKKwkJCQk+CisJCQk8L0Zp
bGU+CisJCQk8RmlsZQorCQkJCVJlbGF0aXZlUGF0aD0iJChDb25maWd1cmF0aW9uQnVpbGREaXIp
XG9ialwkKFByb2plY3ROYW1lKVxEZXJpdmVkU291cmNlc1xXZWJCYXR0ZXJ5TWFuYWdlclByb3h5
TWVzc2FnZVJlY2VpdmVyLmNwcCIKKwkJCQk+CisJCQk8L0ZpbGU+CisJCQk8RmlsZQorCQkJCVJl
bGF0aXZlUGF0aD0iJChDb25maWd1cmF0aW9uQnVpbGREaXIpXG9ialwkKFByb2plY3ROYW1lKVxE
ZXJpdmVkU291cmNlc1xXZWJCYXR0ZXJ5TWFuYWdlclByb3h5TWVzc2FnZXMuaCIKKwkJCQk+CisJ
CQk8L0ZpbGU+CisJCQk8RmlsZQogCQkJCVJlbGF0aXZlUGF0aD0iJChDb25maWd1cmF0aW9uQnVp
bGREaXIpXG9ialwkKFByb2plY3ROYW1lKVxEZXJpdmVkU291cmNlc1xXZWJDb250ZXh0TWVzc2Fn
ZVJlY2VpdmVyLmNwcCIKIAkJCQk+CiAJCQk8L0ZpbGU+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0Mi93aW4vV2ViS2l0MkNvbW1vbi52c3Byb3BzIGIvU291cmNlL1dlYktpdDIvd2luL1dlYktp
dDJDb21tb24udnNwcm9wcwppbmRleCA4MWQzNGQ5Li4xYTAwYjVjIDEwMDc1NQotLS0gYS9Tb3Vy
Y2UvV2ViS2l0Mi93aW4vV2ViS2l0MkNvbW1vbi52c3Byb3BzCisrKyBiL1NvdXJjZS9XZWJLaXQy
L3dpbi9XZWJLaXQyQ29tbW9uLnZzcHJvcHMKQEAgLTYsNyArNiw3IEBACiAJPgogCTxUb29sCiAJ
CU5hbWU9IlZDQ0xDb21waWxlclRvb2wiCi0JCUFkZGl0aW9uYWxJbmNsdWRlRGlyZWN0b3JpZXM9
IiZxdW90OyQoUHJvamVjdERpcikmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKVwuLiZxdW90Ozsm
cXVvdDskKFByb2plY3REaXIpXC4uXFBsYXRmb3JtJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcilc
Li5cUGxhdGZvcm1cY2cmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKVwuLlxQbGF0Zm9ybVxDb3Jl
SVBDJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcilcLi5cUGx1Z2luUHJvY2VzcyZxdW90OzsmcXVv
dDskKFByb2plY3REaXIpXC4uXFNoYXJlZCZxdW90OzsmcXVvdDskKFByb2plY3REaXIpXC4uXFNo
YXJlZFx3aW4mcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKVwuLlxTaGFyZWRcY2YmcXVvdDs7JnF1
b3Q7JChQcm9qZWN0RGlyKVwuLlxTaGFyZWRcQVBJXGMmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGly
KVwuLlxTaGFyZWRcQVBJXGNcY2YmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKVwuLlxTaGFyZWRc
QVBJXGNcd2luJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcilcLi5cU2hhcmVkXENvcmVJUENTdXBw
b3J0JnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcilcLi5cU2hhcmVkXFBsdWdpbnMmcXVvdDs7JnF1
b3Q7JChQcm9qZWN0RGlyKVwuLlxTaGFyZWRcUGx1Z2luc1xOZXRzY2FwZSZxdW90OzsmcXVvdDsk
KFByb2plY3REaXIpXC4uXFVJUHJvY2VzcyZxdW90OzsmcXVvdDskKFByb2plY3REaXIpXC4uXFVJ
UHJvY2Vzc1xBUElcQyZxdW90OzsmcXVvdDskKFByb2plY3REaXIpXC4uXFVJUHJvY2Vzc1xBUElc
Q1x3aW4mcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKVwuLlxVSVByb2Nlc3NcQVBJXGNwcCZxdW90
OzsmcXVvdDskKFByb2plY3REaXIpXC4uXFVJUHJvY2Vzc1xBUElcd2luJnF1b3Q7OyZxdW90OyQo
UHJvamVjdERpcilcLi5cVUlQcm9jZXNzXEF1dGhlbnRpY2F0aW9uJnF1b3Q7OyZxdW90OyQoUHJv
amVjdERpcilcLi5cVUlQcm9jZXNzXERvd25sb2FkcyZxdW90OzsmcXVvdDskKFByb2plY3REaXIp
XC4uXFVJUHJvY2Vzc1xMYXVuY2hlciZxdW90OzsmcXVvdDskKFByb2plY3REaXIpXC4uXFVJUHJv
Y2Vzc1xOb3RpZmljYXRpb25zJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcilcLi5cVUlQcm9jZXNz
XFBsdWdpbnMmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKVwuLlxVSVByb2Nlc3Ncd2luJnF1b3Q7
OyZxdW90OyQoUHJvamVjdERpcilcLi5cV2ViUHJvY2VzcyZxdW90OzsmcXVvdDskKFByb2plY3RE
aXIpXC4uXFdlYlByb2Nlc3NcV2ViQ29yZVN1cHBvcnQmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGly
KVwuLlxXZWJQcm9jZXNzXFdlYkNvcmVTdXBwb3J0XHdpbiZxdW90OzsmcXVvdDskKFByb2plY3RE
aXIpXC4uXFdlYlByb2Nlc3NcV2ViUGFnZSZxdW90OzsmcXVvdDskKFByb2plY3REaXIpXC4uXFdl
YlByb2Nlc3NcV2ViUGFnZVx3aW4mcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKVwuLlxXZWJQcm9j
ZXNzXEljb25EYXRhYmFzZSZxdW90OzsmcXVvdDskKFByb2plY3REaXIpXC4uXFdlYlByb2Nlc3Nc
SW5qZWN0ZWRCdW5kbGUmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKVwuLlxXZWJQcm9jZXNzXElu
amVjdGVkQnVuZGxlXEFQSVxjJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcilcLi5cV2ViUHJvY2Vz
c1xJbmplY3RlZEJ1bmRsZVxET00mcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKVwuLlxXZWJQcm9j
ZXNzXEluamVjdGVkQnVuZGxlXHdpbiZxdW90OzsmcXVvdDskKFByb2plY3REaXIpXC4uXFdlYlBy
b2Nlc3NcUGx1Z2lucyZxdW90OzsmcXVvdDskKFByb2plY3REaXIpXC4uXFdlYlByb2Nlc3NcUGx1
Z2luc1xOZXRzY2FwZSZxdW90OzsmcXVvdDskKFByb2plY3REaXIpXC4uXFdlYlByb2Nlc3Ncd2lu
JnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcilcLi5cV2ViUHJvY2Vzc1xBcHBsaWNhdGlvbkNhY2hl
JnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcilcLi5cV2ViUHJvY2Vzc1xBdXRoZW50aWNhdGlvbiZx
dW90OzsmcXVvdDskKFByb2plY3REaXIpXC4uXFdlYlByb2Nlc3NcQ29va2llcyZxdW90OzsmcXVv
dDskKFByb2plY3REaXIpXC4uXFdlYlByb2Nlc3NcQ29va2llc1xjZiZxdW90OzsmcXVvdDskKFBy
b2plY3REaXIpXC4uXFdlYlByb2Nlc3NcRG93bmxvYWRzJnF1b3Q7OyZxdW90OyQoUHJvamVjdERp
cilcLi5cV2ViUHJvY2Vzc1xEb3dubG9hZHNcY2YmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKVwu
LlxXZWJQcm9jZXNzXEZ1bGxTY3JlZW4mcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKVwuLlxXZWJQ
cm9jZXNzXEdlb2xvY2F0aW9uJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcilcLi5cV2ViUHJvY2Vz
c1xLZXlWYWx1ZVN0b3JhZ2UmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKVwuLlxXZWJQcm9jZXNz
XE1lZGlhQ2FjaGUmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKVwuLlxXZWJQcm9jZXNzXE5vdGlm
aWNhdGlvbnMmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKVwuLlxXZWJQcm9jZXNzXFJlc291cmNl
Q2FjaGUmcXVvdDs7JnF1b3Q7JChDb25maWd1cmF0aW9uQnVpbGREaXIpXG9ialwkKFByb2plY3RO
YW1lKVxEZXJpdmVkU291cmNlcyZxdW90OzsmcXVvdDskKENvbmZpZ3VyYXRpb25CdWlsZERpcilc
SW5jbHVkZSZxdW90OzsmcXVvdDskKENvbmZpZ3VyYXRpb25CdWlsZERpcilcSW5jbHVkZVxwcml2
YXRlJnF1b3Q7OyZxdW90OyQoV2ViS2l0TGlicmFyaWVzRGlyKVxJbmNsdWRlJnF1b3Q7OyZxdW90
OyQoV2ViS2l0TGlicmFyaWVzRGlyKVxJbmNsdWRlXHByaXZhdGUmcXVvdDs7JnF1b3Q7JChXZWJL
aXRMaWJyYXJpZXNEaXIpXEluY2x1ZGVccHRocmVhZHMmcXVvdDs7JnF1b3Q7JChDb25maWd1cmF0
aW9uQnVpbGREaXIpXEluY2x1ZGVcSmF2YVNjcmlwdENvcmUmcXVvdDs7JnF1b3Q7JChDb25maWd1
cmF0aW9uQnVpbGREaXIpXEluY2x1ZGVccHJpdmF0ZVxKYXZhU2NyaXB0Q29yZSZxdW90OzsmcXVv
dDskKFdlYktpdExpYnJhcmllc0RpcilcSW5jbHVkZVxKYXZhU2NyaXB0Q29yZSZxdW90OzsmcXVv
dDskKFdlYktpdExpYnJhcmllc0RpcilcSW5jbHVkZVxwcml2YXRlXEphdmFTY3JpcHRDb3JlJnF1
b3Q7OyZxdW90OyQoQ29uZmlndXJhdGlvbkJ1aWxkRGlyKVxJbmNsdWRlXFdlYkNvcmVcRm9yd2Fy
ZGluZ0hlYWRlcnMmcXVvdDs7JnF1b3Q7JChXZWJLaXRMaWJyYXJpZXNEaXIpXEluY2x1ZGVcV2Vi
Q29yZVxGb3J3YXJkaW5nSGVhZGVycyZxdW90OyIKKwkJQWRkaXRpb25hbEluY2x1ZGVEaXJlY3Rv
cmllcz0iJnF1b3Q7JChQcm9qZWN0RGlyKSZxdW90OzsmcXVvdDskKFByb2plY3REaXIpXC4uJnF1
b3Q7OyZxdW90OyQoUHJvamVjdERpcilcLi5cUGxhdGZvcm0mcXVvdDs7JnF1b3Q7JChQcm9qZWN0
RGlyKVwuLlxQbGF0Zm9ybVxjZyZxdW90OzsmcXVvdDskKFByb2plY3REaXIpXC4uXFBsYXRmb3Jt
XENvcmVJUEMmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKVwuLlxQbHVnaW5Qcm9jZXNzJnF1b3Q7
OyZxdW90OyQoUHJvamVjdERpcilcLi5cU2hhcmVkJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcilc
Li5cU2hhcmVkXHdpbiZxdW90OzsmcXVvdDskKFByb2plY3REaXIpXC4uXFNoYXJlZFxjZiZxdW90
OzsmcXVvdDskKFByb2plY3REaXIpXC4uXFNoYXJlZFxBUElcYyZxdW90OzsmcXVvdDskKFByb2pl
Y3REaXIpXC4uXFNoYXJlZFxBUElcY1xjZiZxdW90OzsmcXVvdDskKFByb2plY3REaXIpXC4uXFNo
YXJlZFxBUElcY1x3aW4mcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKVwuLlxTaGFyZWRcQ29yZUlQ
Q1N1cHBvcnQmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKVwuLlxTaGFyZWRcUGx1Z2lucyZxdW90
OzsmcXVvdDskKFByb2plY3REaXIpXC4uXFNoYXJlZFxQbHVnaW5zXE5ldHNjYXBlJnF1b3Q7OyZx
dW90OyQoUHJvamVjdERpcilcLi5cVUlQcm9jZXNzJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcilc
Li5cVUlQcm9jZXNzXEFQSVxDJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcilcLi5cVUlQcm9jZXNz
XEFQSVxDXHdpbiZxdW90OzsmcXVvdDskKFByb2plY3REaXIpXC4uXFVJUHJvY2Vzc1xBUElcY3Bw
JnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcilcLi5cVUlQcm9jZXNzXEFQSVx3aW4mcXVvdDs7JnF1
b3Q7JChQcm9qZWN0RGlyKVwuLlxVSVByb2Nlc3NcQXV0aGVudGljYXRpb24mcXVvdDs7JnF1b3Q7
JChQcm9qZWN0RGlyKVwuLlxVSVByb2Nlc3NcRG93bmxvYWRzJnF1b3Q7OyZxdW90OyQoUHJvamVj
dERpcilcLi5cVUlQcm9jZXNzXExhdW5jaGVyJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcilcLi5c
VUlQcm9jZXNzXE5vdGlmaWNhdGlvbnMmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKVwuLlxVSVBy
b2Nlc3NcUGx1Z2lucyZxdW90OzsmcXVvdDskKFByb2plY3REaXIpXC4uXFVJUHJvY2Vzc1x3aW4m
cXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKVwuLlxXZWJQcm9jZXNzJnF1b3Q7OyZxdW90OyQoUHJv
amVjdERpcilcLi5cV2ViUHJvY2Vzc1xXZWJDb3JlU3VwcG9ydCZxdW90OzsmcXVvdDskKFByb2pl
Y3REaXIpXC4uXFdlYlByb2Nlc3NcV2ViQ29yZVN1cHBvcnRcd2luJnF1b3Q7OyZxdW90OyQoUHJv
amVjdERpcilcLi5cV2ViUHJvY2Vzc1xXZWJQYWdlJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcilc
Li5cV2ViUHJvY2Vzc1xXZWJQYWdlXHdpbiZxdW90OzsmcXVvdDskKFByb2plY3REaXIpXC4uXFdl
YlByb2Nlc3NcSWNvbkRhdGFiYXNlJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcilcLi5cV2ViUHJv
Y2Vzc1xJbmplY3RlZEJ1bmRsZSZxdW90OzsmcXVvdDskKFByb2plY3REaXIpXC4uXFdlYlByb2Nl
c3NcSW5qZWN0ZWRCdW5kbGVcQVBJXGMmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKVwuLlxXZWJQ
cm9jZXNzXEluamVjdGVkQnVuZGxlXERPTSZxdW90OzsmcXVvdDskKFByb2plY3REaXIpXC4uXFdl
YlByb2Nlc3NcSW5qZWN0ZWRCdW5kbGVcd2luJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcilcLi5c
V2ViUHJvY2Vzc1xQbHVnaW5zJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcilcLi5cV2ViUHJvY2Vz
c1xQbHVnaW5zXE5ldHNjYXBlJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcilcLi5cV2ViUHJvY2Vz
c1x3aW4mcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKVwuLlxXZWJQcm9jZXNzXEFwcGxpY2F0aW9u
Q2FjaGUmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKVwuLlxXZWJQcm9jZXNzXEF1dGhlbnRpY2F0
aW9uJnF1b3Q7OyZxdW90OyQoUHJvamVjdERpcilcLi5cV2ViUHJvY2Vzc1xCYXR0ZXJ5JnF1b3Q7
OyZxdW90OyQoUHJvamVjdERpcilcLi5cV2ViUHJvY2Vzc1xDb29raWVzJnF1b3Q7OyZxdW90OyQo
UHJvamVjdERpcilcLi5cV2ViUHJvY2Vzc1xDb29raWVzXGNmJnF1b3Q7OyZxdW90OyQoUHJvamVj
dERpcilcLi5cV2ViUHJvY2Vzc1xEb3dubG9hZHMmcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKVwu
LlxXZWJQcm9jZXNzXERvd25sb2Fkc1xjZiZxdW90OzsmcXVvdDskKFByb2plY3REaXIpXC4uXFdl
YlByb2Nlc3NcRnVsbFNjcmVlbiZxdW90OzsmcXVvdDskKFByb2plY3REaXIpXC4uXFdlYlByb2Nl
c3NcR2VvbG9jYXRpb24mcXVvdDs7JnF1b3Q7JChQcm9qZWN0RGlyKVwuLlxXZWJQcm9jZXNzXEtl
eVZhbHVlU3RvcmFnZSZxdW90OzsmcXVvdDskKFByb2plY3REaXIpXC4uXFdlYlByb2Nlc3NcTWVk
aWFDYWNoZSZxdW90OzsmcXVvdDskKFByb2plY3REaXIpXC4uXFdlYlByb2Nlc3NcTm90aWZpY2F0
aW9ucyZxdW90OzsmcXVvdDskKFByb2plY3REaXIpXC4uXFdlYlByb2Nlc3NcUmVzb3VyY2VDYWNo
ZSZxdW90OzsmcXVvdDskKENvbmZpZ3VyYXRpb25CdWlsZERpcilcb2JqXCQoUHJvamVjdE5hbWUp
XERlcml2ZWRTb3VyY2VzJnF1b3Q7OyZxdW90OyQoQ29uZmlndXJhdGlvbkJ1aWxkRGlyKVxJbmNs
dWRlJnF1b3Q7OyZxdW90OyQoQ29uZmlndXJhdGlvbkJ1aWxkRGlyKVxJbmNsdWRlXHByaXZhdGUm
cXVvdDs7JnF1b3Q7JChXZWJLaXRMaWJyYXJpZXNEaXIpXEluY2x1ZGUmcXVvdDs7JnF1b3Q7JChX
ZWJLaXRMaWJyYXJpZXNEaXIpXEluY2x1ZGVccHJpdmF0ZSZxdW90OzsmcXVvdDskKFdlYktpdExp
YnJhcmllc0RpcilcSW5jbHVkZVxwdGhyZWFkcyZxdW90OzsmcXVvdDskKENvbmZpZ3VyYXRpb25C
dWlsZERpcilcSW5jbHVkZVxKYXZhU2NyaXB0Q29yZSZxdW90OzsmcXVvdDskKENvbmZpZ3VyYXRp
b25CdWlsZERpcilcSW5jbHVkZVxwcml2YXRlXEphdmFTY3JpcHRDb3JlJnF1b3Q7OyZxdW90OyQo
V2ViS2l0TGlicmFyaWVzRGlyKVxJbmNsdWRlXEphdmFTY3JpcHRDb3JlJnF1b3Q7OyZxdW90OyQo
V2ViS2l0TGlicmFyaWVzRGlyKVxJbmNsdWRlXHByaXZhdGVcSmF2YVNjcmlwdENvcmUmcXVvdDs7
JnF1b3Q7JChDb25maWd1cmF0aW9uQnVpbGREaXIpXEluY2x1ZGVcV2ViQ29yZVxGb3J3YXJkaW5n
SGVhZGVycyZxdW90OzsmcXVvdDskKFdlYktpdExpYnJhcmllc0RpcilcSW5jbHVkZVxXZWJDb3Jl
XEZvcndhcmRpbmdIZWFkZXJzJnF1b3Q7IgogCQlQcmVwcm9jZXNzb3JEZWZpbml0aW9ucz0iX1VT
UkRMTDtXRUJLSVRfRVhQT1JUUztGUkFNRVdPUktfTkFNRT1XZWJLaXQ7QlVJTERJTkdfV0VCS0lU
IgogCQlVc2VQcmVjb21waWxlZEhlYWRlcj0iMiIKIAkJUHJlY29tcGlsZWRIZWFkZXJUaHJvdWdo
PSJXZWJLaXQyUHJlZml4LmgiCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi93aW4vV2ViS2l0
MkdlbmVyYXRlZC5tYWtlIGIvU291cmNlL1dlYktpdDIvd2luL1dlYktpdDJHZW5lcmF0ZWQubWFr
ZQppbmRleCBjZTc5OTFmLi44ZTYwNDI4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi93aW4v
V2ViS2l0MkdlbmVyYXRlZC5tYWtlCisrKyBiL1NvdXJjZS9XZWJLaXQyL3dpbi9XZWJLaXQyR2Vu
ZXJhdGVkLm1ha2UKQEAgLTUxLDYgKzUxLDcgQEAgYWxsOgogICAgIHhjb3B5IC95IC9kICIuLlxV
SVByb2Nlc3NcQVBJXENcV0tBdXRoZW50aWNhdGlvbkRlY2lzaW9uTGlzdGVuZXIuaCIgIiVDb25m
aWd1cmF0aW9uQnVpbGREaXIlXGluY2x1ZGVcV2ViS2l0MiIKICAgICB4Y29weSAveSAvZCAiLi5c
VUlQcm9jZXNzXEFQSVxDXFdLQmFja0ZvcndhcmRMaXN0LmgiICIlQ29uZmlndXJhdGlvbkJ1aWxk
RGlyJVxpbmNsdWRlXFdlYktpdDIiCiAgICAgeGNvcHkgL3kgL2QgIi4uXFVJUHJvY2Vzc1xBUElc
Q1xXS0JhY2tGb3J3YXJkTGlzdEl0ZW0uaCIgIiVDb25maWd1cmF0aW9uQnVpbGREaXIlXGluY2x1
ZGVcV2ViS2l0MiIKKyAgICB4Y29weSAveSAvZCAiLi5cVUlQcm9jZXNzXEFQSVxDXFdLQmF0dGVy
eU1hbmFnZXIuaCIgIiVDb25maWd1cmF0aW9uQnVpbGREaXIlXGluY2x1ZGVcV2ViS2l0MiIKICAg
ICB4Y29weSAveSAvZCAiLi5cVUlQcm9jZXNzXEFQSVxDXFdLQ29udGV4dC5oIiAiJUNvbmZpZ3Vy
YXRpb25CdWlsZERpciVcaW5jbHVkZVxXZWJLaXQyIgogICAgIHhjb3B5IC95IC9kICIuLlxVSVBy
b2Nlc3NcQVBJXENcV0tDb250ZXh0UHJpdmF0ZS5oIiAiJUNvbmZpZ3VyYXRpb25CdWlsZERpciVc
aW5jbHVkZVxXZWJLaXQyIgogICAgIHhjb3B5IC95IC9kICIuLlxVSVByb2Nlc3NcQVBJXENcV0tD
b29raWVNYW5hZ2VyLmgiICIlQ29uZmlndXJhdGlvbkJ1aWxkRGlyJVxpbmNsdWRlXFdlYktpdDIi
Cg==
</data>
<flag name="commit-queue"
          id="156324"
          type_id="3"
          status="-"
          setter="gustavo"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>148576</attachid>
            <date>2012-06-20 08:39:01 -0700</date>
            <delta_ts>2012-06-20 09:34:57 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>89558_battery_status_wk2.patch</filename>
            <type>text/plain</type>
            <size>59307</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NNYWtlTGlzdHMudHh0IGIvU291cmNlL1dlYktp
dDIvQ01ha2VMaXN0cy50eHQKaW5kZXggNDVkYmUyNC4uZmU1MTQ4NSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdDIvQ01ha2VMaXN0cy50eHQKKysrIGIvU291cmNlL1dlYktpdDIvQ01ha2VMaXN0
cy50eHQKQEAgLTIyLDYgKzIyLDcgQEAgU0VUKFdlYktpdDJfSU5DTFVERV9ESVJFQ1RPUklFUwog
ICAgICIke1dFQktJVDJfRElSfS9XZWJQcm9jZXNzIgogICAgICIke1dFQktJVDJfRElSfS9XZWJQ
cm9jZXNzL0FwcGxpY2F0aW9uQ2FjaGUiCiAgICAgIiR7V0VCS0lUMl9ESVJ9L1dlYlByb2Nlc3Mv
QXV0aGVudGljYXRpb24iCisgICAgIiR7V0VCS0lUMl9ESVJ9L1dlYlByb2Nlc3MvQmF0dGVyeSIK
ICAgICAiJHtXRUJLSVQyX0RJUn0vV2ViUHJvY2Vzcy9Db29raWVzIgogICAgICIke1dFQktJVDJf
RElSfS9XZWJQcm9jZXNzL0Rvd25sb2FkcyIKICAgICAiJHtXRUJLSVQyX0RJUn0vV2ViUHJvY2Vz
cy9GdWxsU2NyZWVuIgpAQCAtMTM3LDYgKzEzOCw3IEBAIFNFVChXZWJLaXQyX1NPVVJDRVMKICAg
ICBTaGFyZWQvVXBkYXRlSW5mby5jcHAKICAgICBTaGFyZWQvVmlzaXRlZExpbmtUYWJsZS5jcHAK
ICAgICBTaGFyZWQvV2ViQmFja0ZvcndhcmRMaXN0SXRlbS5jcHAKKyAgICBTaGFyZWQvV2ViQmF0
dGVyeVN0YXR1cy5jcHAKICAgICBTaGFyZWQvV2ViQ29ubmVjdGlvbi5jcHAKICAgICBTaGFyZWQv
V2ViQ29ubmVjdGlvbkNsaWVudC5jcHAKICAgICBTaGFyZWQvV2ViQ29udGV4dE1lbnVJdGVtLmNw
cApAQCAtMjE0LDYgKzIxNiw4IEBAIFNFVChXZWJLaXQyX1NPVVJDRVMKICAgICBVSVByb2Nlc3Mv
VmlzaXRlZExpbmtQcm92aWRlci5jcHAKICAgICBVSVByb2Nlc3MvV2ViQXBwbGljYXRpb25DYWNo
ZU1hbmFnZXJQcm94eS5jcHAKICAgICBVSVByb2Nlc3MvV2ViQmFja0ZvcndhcmRMaXN0LmNwcAor
ICAgIFVJUHJvY2Vzcy9XZWJCYXR0ZXJ5TWFuYWdlclByb3h5LmNwcAorICAgIFVJUHJvY2Vzcy9X
ZWJCYXR0ZXJ5UHJvdmlkZXIuY3BwCiAgICAgVUlQcm9jZXNzL1dlYkNvbm5lY3Rpb25Ub1dlYlBy
b2Nlc3MuY3BwCiAgICAgVUlQcm9jZXNzL1dlYkNvbnRleHQuY3BwCiAgICAgVUlQcm9jZXNzL1dl
YkNvbnRleHRDb25uZWN0aW9uQ2xpZW50LmNwcApAQCAtMjY0LDYgKzI2OCw3IEBAIFNFVChXZWJL
aXQyX1NPVVJDRVMKICAgICBVSVByb2Nlc3MvQVBJL0MvV0tBdXRoZW50aWNhdGlvbkRlY2lzaW9u
TGlzdGVuZXIuY3BwCiAgICAgVUlQcm9jZXNzL0FQSS9DL1dLQmFja0ZvcndhcmRMaXN0LmNwcAog
ICAgIFVJUHJvY2Vzcy9BUEkvQy9XS0JhY2tGb3J3YXJkTGlzdEl0ZW0uY3BwCisgICAgVUlQcm9j
ZXNzL0FQSS9DL1dLQmF0dGVyeU1hbmFnZXIuY3BwCiAgICAgVUlQcm9jZXNzL0FQSS9DL1dLQ29u
dGV4dC5jcHAKICAgICBVSVByb2Nlc3MvQVBJL0MvV0tDb29raWVNYW5hZ2VyLmNwcAogICAgIFVJ
UHJvY2Vzcy9BUEkvQy9XS0NyZWRlbnRpYWwuY3BwCkBAIC0zMjcsNiArMzMyLDggQEAgU0VUKFdl
YktpdDJfU09VUkNFUwogCiAgICAgV2ViUHJvY2Vzcy9BdXRoZW50aWNhdGlvbi9BdXRoZW50aWNh
dGlvbk1hbmFnZXIuY3BwCiAKKyAgICBXZWJQcm9jZXNzL0JhdHRlcnkvV2ViQmF0dGVyeU1hbmFn
ZXIuY3BwCisKICAgICBXZWJQcm9jZXNzL0Nvb2tpZXMvV2ViQ29va2llTWFuYWdlci5jcHAKIAog
ICAgIFdlYlByb2Nlc3MvRG93bmxvYWRzL0Rvd25sb2FkLmNwcApAQCAtNDAwLDYgKzQwNyw3IEBA
IFNFVChXZWJLaXQyX1NPVVJDRVMKIAogICAgIFdlYlByb2Nlc3MvUmVzb3VyY2VDYWNoZS9XZWJS
ZXNvdXJjZUNhY2hlTWFuYWdlci5jcHAKIAorICAgIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQv
V2ViQmF0dGVyeUNsaWVudC5jcHAKICAgICBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNo
cm9tZUNsaWVudC5jcHAKICAgICBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNvbnRleHRN
ZW51Q2xpZW50LmNwcAogICAgIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRGF0YWJhc2VN
YW5hZ2VyLmNwcApAQCAtNDQ1LDYgKzQ1Myw3IEBAIFNFVChXZWJLaXQyX01FU1NBR0VTX0lOX0ZJ
TEVTCiAgICAgVUlQcm9jZXNzL0RyYXdpbmdBcmVhUHJveHkubWVzc2FnZXMuaW4KICAgICBVSVBy
b2Nlc3MvTGF5ZXJUcmVlSG9zdFByb3h5Lm1lc3NhZ2VzLmluCiAgICAgVUlQcm9jZXNzL1dlYkFw
cGxpY2F0aW9uQ2FjaGVNYW5hZ2VyUHJveHkubWVzc2FnZXMuaW4KKyAgICBVSVByb2Nlc3MvV2Vi
QmF0dGVyeU1hbmFnZXJQcm94eS5tZXNzYWdlcy5pbgogICAgIFVJUHJvY2Vzcy9XZWJDb250ZXh0
Lm1lc3NhZ2VzLmluCiAgICAgVUlQcm9jZXNzL1dlYkNvb2tpZU1hbmFnZXJQcm94eS5tZXNzYWdl
cy5pbgogICAgIFVJUHJvY2Vzcy9XZWJEYXRhYmFzZU1hbmFnZXJQcm94eS5tZXNzYWdlcy5pbgpA
QCAtNDcwLDYgKzQ3OSw4IEBAIFNFVChXZWJLaXQyX01FU1NBR0VTX0lOX0ZJTEVTCiAKICAgICBX
ZWJQcm9jZXNzL0F1dGhlbnRpY2F0aW9uL0F1dGhlbnRpY2F0aW9uTWFuYWdlci5tZXNzYWdlcy5p
bgogCisgICAgV2ViUHJvY2Vzcy9CYXR0ZXJ5L1dlYkJhdHRlcnlNYW5hZ2VyLm1lc3NhZ2VzLmlu
CisKICAgICBXZWJQcm9jZXNzL0Nvb2tpZXMvV2ViQ29va2llTWFuYWdlci5tZXNzYWdlcy5pbgog
CiAgICAgV2ViUHJvY2Vzcy9GdWxsU2NyZWVuL1dlYkZ1bGxTY3JlZW5NYW5hZ2VyLm1lc3NhZ2Vz
LmluCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0
Mi9DaGFuZ2VMb2cKaW5kZXggYWNjMTQwNy4uMGRhYTZjMSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdDIvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsx
LDEwMCBAQAorMjAxMi0wNi0yMCAgQ2hyaXN0b3BoZSBEdW1leiAgPGNocmlzdG9waGUuZHVtZXpA
aW50ZWwuY29tPgorCisgICAgICAgIFtXSzJdIEFkZCBzdXBwb3J0IGZvciBCYXR0ZXJ5IFN0YXR1
cyBBUEkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTg5
NTU4CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRk
IHN1cHBvcnQgZm9yIEJhdHRlcnkgU3RhdHVzIEFQSSB0byBXZWJLaXQyLgorCisgICAgICAgICog
Q01ha2VMaXN0cy50eHQ6CisgICAgICAgICogRGVyaXZlZFNvdXJjZXMucHJpOgorICAgICAgICAq
IEdOVW1ha2VmaWxlLmFtOgorICAgICAgICAqIEdOVW1ha2VmaWxlLmxpc3QuYW06CisgICAgICAg
ICogUGxhdGZvcm0vQ29yZUlQQy9NZXNzYWdlSUQuaDoKKyAgICAgICAgKiBTaGFyZWQvQVBJL2Mv
V0tCYXNlLmg6CisgICAgICAgICogU2hhcmVkL0FQSU9iamVjdC5oOgorICAgICAgICAqIFNoYXJl
ZC9XZWJCYXR0ZXJ5U3RhdHVzLmNwcDogQWRkZWQuCisgICAgICAgIChXZWJLaXQpOgorICAgICAg
ICAoV2ViS2l0OjpXZWJCYXR0ZXJ5U3RhdHVzOjpXZWJCYXR0ZXJ5U3RhdHVzKToKKyAgICAgICAg
KFdlYktpdDo6V2ViQmF0dGVyeVN0YXR1czo6fldlYkJhdHRlcnlTdGF0dXMpOgorICAgICAgICAo
V2ViS2l0OjpXZWJCYXR0ZXJ5U3RhdHVzOjpEYXRhOjplbmNvZGUpOgorICAgICAgICAoV2ViS2l0
OjpXZWJCYXR0ZXJ5U3RhdHVzOjpEYXRhOjpkZWNvZGUpOgorICAgICAgICAqIFNoYXJlZC9XZWJC
YXR0ZXJ5U3RhdHVzLmg6IEFkZGVkLgorICAgICAgICAoV2ViS2l0KToKKyAgICAgICAgKFdlYkJh
dHRlcnlTdGF0dXMpOgorICAgICAgICAoRGF0YSk6CisgICAgICAgIChXZWJLaXQ6OldlYkJhdHRl
cnlTdGF0dXM6OmNyZWF0ZSk6CisgICAgICAgIChXZWJLaXQ6OldlYkJhdHRlcnlTdGF0dXM6Omlz
Q2hhcmdpbmcpOgorICAgICAgICAoV2ViS2l0OjpXZWJCYXR0ZXJ5U3RhdHVzOjpjaGFyZ2luZ1Rp
bWUpOgorICAgICAgICAoV2ViS2l0OjpXZWJCYXR0ZXJ5U3RhdHVzOjpkaXNjaGFyZ2luZ1RpbWUp
OgorICAgICAgICAoV2ViS2l0OjpXZWJCYXR0ZXJ5U3RhdHVzOjpsZXZlbCk6CisgICAgICAgIChX
ZWJLaXQ6OldlYkJhdHRlcnlTdGF0dXM6OmRhdGEpOgorICAgICAgICAoV2ViS2l0OjpXZWJCYXR0
ZXJ5U3RhdHVzOjp0eXBlKToKKyAgICAgICAgKiBUYXJnZXQucHJpOgorICAgICAgICAqIFVJUHJv
Y2Vzcy9BUEkvQy9XS0FQSUNhc3QuaDoKKyAgICAgICAgKFdlYktpdCk6CisgICAgICAgICogVUlQ
cm9jZXNzL0FQSS9DL1dLQmF0dGVyeU1hbmFnZXIuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdLQmF0
dGVyeU1hbmFnZXJHZXRUeXBlSUQpOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQy9XS0JhdHRl
cnlNYW5hZ2VyLmg6IEFkZGVkLgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJCYXR0ZXJ5TWFuYWdl
clByb3h5LmNwcDogQWRkZWQuCisgICAgICAgIChXZWJLaXQpOgorICAgICAgICAoV2ViS2l0OjpX
ZWJCYXR0ZXJ5TWFuYWdlclByb3h5OjpjcmVhdGUpOgorICAgICAgICAoV2ViS2l0OjpXZWJCYXR0
ZXJ5TWFuYWdlclByb3h5OjpXZWJCYXR0ZXJ5TWFuYWdlclByb3h5KToKKyAgICAgICAgKFdlYktp
dDo6V2ViQmF0dGVyeU1hbmFnZXJQcm94eTo6fldlYkJhdHRlcnlNYW5hZ2VyUHJveHkpOgorICAg
ICAgICAoV2ViS2l0OjpXZWJCYXR0ZXJ5TWFuYWdlclByb3h5OjppbnZhbGlkYXRlKToKKyAgICAg
ICAgKFdlYktpdDo6V2ViQmF0dGVyeU1hbmFnZXJQcm94eTo6aW5pdGlhbGl6ZVByb3ZpZGVyKToK
KyAgICAgICAgKFdlYktpdDo6V2ViQmF0dGVyeU1hbmFnZXJQcm94eTo6ZGlkUmVjZWl2ZU1lc3Nh
Z2UpOgorICAgICAgICAoV2ViS2l0OjpXZWJCYXR0ZXJ5TWFuYWdlclByb3h5OjpzdGFydFVwZGF0
aW5nKToKKyAgICAgICAgKFdlYktpdDo6V2ViQmF0dGVyeU1hbmFnZXJQcm94eTo6c3RvcFVwZGF0
aW5nKToKKyAgICAgICAgKFdlYktpdDo6V2ViQmF0dGVyeU1hbmFnZXJQcm94eTo6cHJvdmlkZXJE
aWRDaGFuZ2VCYXR0ZXJ5U3RhdHVzKToKKyAgICAgICAgKFdlYktpdDo6V2ViQmF0dGVyeU1hbmFn
ZXJQcm94eTo6cHJvdmlkZXJVcGRhdGVCYXR0ZXJ5U3RhdHVzKToKKyAgICAgICAgKiBVSVByb2Nl
c3MvV2ViQmF0dGVyeU1hbmFnZXJQcm94eS5oOiBBZGRlZC4KKyAgICAgICAgKENvcmVJUEMpOgor
ICAgICAgICAoV2ViS2l0KToKKyAgICAgICAgKFdlYkJhdHRlcnlNYW5hZ2VyUHJveHkpOgorICAg
ICAgICAoV2ViS2l0OjpXZWJCYXR0ZXJ5TWFuYWdlclByb3h5OjpjbGVhckNvbnRleHQpOgorICAg
ICAgICAoV2ViS2l0OjpXZWJCYXR0ZXJ5TWFuYWdlclByb3h5Ojp0eXBlKToKKyAgICAgICAgKiBV
SVByb2Nlc3MvV2ViQmF0dGVyeU1hbmFnZXJQcm94eS5tZXNzYWdlcy5pbjogQWRkZWQuCisgICAg
ICAgICogVUlQcm9jZXNzL1dlYkJhdHRlcnlQcm92aWRlci5jcHA6IEFkZGVkLgorICAgICAgICAo
V2ViS2l0KToKKyAgICAgICAgKFdlYktpdDo6V2ViQmF0dGVyeVByb3ZpZGVyOjpzdGFydFVwZGF0
aW5nKToKKyAgICAgICAgKFdlYktpdDo6V2ViQmF0dGVyeVByb3ZpZGVyOjpzdG9wVXBkYXRpbmcp
OgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJCYXR0ZXJ5UHJvdmlkZXIuaDogQWRkZWQuCisgICAg
ICAgIChXZWJLaXQpOgorICAgICAgICAoV2ViQmF0dGVyeVByb3ZpZGVyKToKKyAgICAgICAgKiBX
ZWJLaXQyLnByaToKKyAgICAgICAgKiBXZWJQcm9jZXNzL0JhdHRlcnkvV2ViQmF0dGVyeU1hbmFn
ZXIuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYktpdCk6CisgICAgICAgIChXZWJLaXQ6OldlYkJh
dHRlcnlNYW5hZ2VyOjpXZWJCYXR0ZXJ5TWFuYWdlcik6CisgICAgICAgIChXZWJLaXQ6OldlYkJh
dHRlcnlNYW5hZ2VyOjp+V2ViQmF0dGVyeU1hbmFnZXIpOgorICAgICAgICAoV2ViS2l0OjpXZWJC
YXR0ZXJ5TWFuYWdlcjo6ZGlkUmVjZWl2ZU1lc3NhZ2UpOgorICAgICAgICAoV2ViS2l0OjpXZWJC
YXR0ZXJ5TWFuYWdlcjo6cmVnaXN0ZXJXZWJQYWdlKToKKyAgICAgICAgKFdlYktpdDo6V2ViQmF0
dGVyeU1hbmFnZXI6OnVucmVnaXN0ZXJXZWJQYWdlKToKKyAgICAgICAgKFdlYktpdDo6V2ViQmF0
dGVyeU1hbmFnZXI6OmRpZENoYW5nZUJhdHRlcnlTdGF0dXMpOgorICAgICAgICAoV2ViS2l0OjpX
ZWJCYXR0ZXJ5TWFuYWdlcjo6dXBkYXRlQmF0dGVyeVN0YXR1cyk6CisgICAgICAgICogV2ViUHJv
Y2Vzcy9CYXR0ZXJ5L1dlYkJhdHRlcnlNYW5hZ2VyLmg6IEFkZGVkLgorICAgICAgICAoQ29yZUlQ
Qyk6CisgICAgICAgIChXZWJLaXQpOgorICAgICAgICAoV2ViQmF0dGVyeU1hbmFnZXIpOgorICAg
ICAgICAqIFdlYlByb2Nlc3MvQmF0dGVyeS9XZWJCYXR0ZXJ5TWFuYWdlci5tZXNzYWdlcy5pbjog
QWRkZWQuCisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJCYXR0ZXJ5Q2xp
ZW50LmNwcDogQWRkZWQuCisgICAgICAgIChXZWJLaXQpOgorICAgICAgICAoV2ViS2l0OjpXZWJC
YXR0ZXJ5Q2xpZW50OjpzdGFydFVwZGF0aW5nKToKKyAgICAgICAgKFdlYktpdDo6V2ViQmF0dGVy
eUNsaWVudDo6c3RvcFVwZGF0aW5nKToKKyAgICAgICAgKFdlYktpdDo6V2ViQmF0dGVyeUNsaWVu
dDo6YmF0dGVyeUNvbnRyb2xsZXJEZXN0cm95ZWQpOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2Vi
Q29yZVN1cHBvcnQvV2ViQmF0dGVyeUNsaWVudC5oOiBBZGRlZC4KKyAgICAgICAgKFdlYktpdCk6
CisgICAgICAgIChXZWJCYXR0ZXJ5Q2xpZW50KToKKyAgICAgICAgKFdlYktpdDo6V2ViQmF0dGVy
eUNsaWVudDo6V2ViQmF0dGVyeUNsaWVudCk6CisgICAgICAgIChXZWJLaXQ6OldlYkJhdHRlcnlD
bGllbnQ6On5XZWJCYXR0ZXJ5Q2xpZW50KToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlByb2Nl
c3MuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzOjpXZWJQcm9jZXNzKToKKyAgICAg
ICAgKFdlYktpdDo6V2ViUHJvY2Vzczo6ZGlkUmVjZWl2ZU1lc3NhZ2UpOgorICAgICAgICAqIFdl
YlByb2Nlc3MvV2ViUHJvY2Vzcy5oOgorICAgICAgICAoV2ViUHJvY2Vzcyk6CisgICAgICAgIChX
ZWJLaXQ6OldlYlByb2Nlc3M6OmJhdHRlcnlNYW5hZ2VyKToKKwogMjAxMi0wNi0yMCAgQWxleGlz
IE1lbmFyZCAgPGFsZXhpcy5tZW5hcmRAb3BlbmJvc3NhLm9yZz4KIAogICAgICAgICBSRUdSRVNT
SU9OICgxMjA3MDUpIDogTGF5ZXJUcmVlSG9zdFF0IGFzc2VydHMgaW4gZGVidWcuCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0Mi9EZXJpdmVkU291cmNlcy5wcmkgYi9Tb3VyY2UvV2ViS2l0Mi9E
ZXJpdmVkU291cmNlcy5wcmkKaW5kZXggMGE1MGM3ZC4uNTBhNTg5OSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdDIvRGVyaXZlZFNvdXJjZXMucHJpCisrKyBiL1NvdXJjZS9XZWJLaXQyL0Rlcml2
ZWRTb3VyY2VzLnByaQpAQCAtNDAsNiArNDAsNyBAQCBWUEFUSCA9IFwKICAgICBQbHVnaW5Qcm9j
ZXNzIFwKICAgICBXZWJQcm9jZXNzL0FwcGxpY2F0aW9uQ2FjaGUgXAogICAgIFdlYlByb2Nlc3Mv
QXV0aGVudGljYXRpb24gXAorICAgIFdlYlByb2Nlc3MvQmF0dGVyeSBcCiAgICAgV2ViUHJvY2Vz
cy9Db29raWVzIFwKICAgICBXZWJQcm9jZXNzL0Z1bGxTY3JlZW4gXAogICAgIFdlYlByb2Nlc3Mv
R2VvbG9jYXRpb24gXApAQCAtNzEsNiArNzIsOCBAQCBNRVNTQUdFX1JFQ0VJVkVSUyA9IFwKICAg
ICBQbHVnaW5Qcm94eS5tZXNzYWdlcy5pbiBcCiAgICAgV2ViQXBwbGljYXRpb25DYWNoZU1hbmFn
ZXIubWVzc2FnZXMuaW4gXAogICAgIFdlYkFwcGxpY2F0aW9uQ2FjaGVNYW5hZ2VyUHJveHkubWVz
c2FnZXMuaW4gXAorICAgIFdlYkJhdHRlcnlNYW5hZ2VyLm1lc3NhZ2VzLmluIFwKKyAgICBXZWJC
YXR0ZXJ5TWFuYWdlclByb3h5Lm1lc3NhZ2VzLmluIFwKICAgICBXZWJDb250ZXh0Lm1lc3NhZ2Vz
LmluIFwKICAgICBXZWJDb29raWVNYW5hZ2VyLm1lc3NhZ2VzLmluIFwKICAgICBXZWJDb29raWVN
YW5hZ2VyUHJveHkubWVzc2FnZXMuaW4gXApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvR05V
bWFrZWZpbGUuYW0gYi9Tb3VyY2UvV2ViS2l0Mi9HTlVtYWtlZmlsZS5hbQppbmRleCAwMTZkNjgx
Li4yOTNiNjMzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9HTlVtYWtlZmlsZS5hbQorKysg
Yi9Tb3VyY2UvV2ViS2l0Mi9HTlVtYWtlZmlsZS5hbQpAQCAtNTksNiArNTksNyBAQCBsaWJ3ZWJr
aXQyZ3RrX0BXRUJLSVRHVEtfQVBJX01BSk9SX1ZFUlNJT05AX0BXRUJLSVRHVEtfQVBJX01JTk9S
X1ZFUlNJT05AX2xhX0NQUAogCS1JJChzcmNkaXIpL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mg
XAogCS1JJChzcmNkaXIpL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvQXBwbGljYXRpb25DYWNo
ZSBcCiAJLUkkKHNyY2RpcikvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9BdXRoZW50aWNhdGlv
biBcCisJLUkkKHNyY2RpcikvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9CYXR0ZXJ5IFwKIAkt
SSQoc3JjZGlyKS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0Nvb2tpZXMgXAogCS1JJChzcmNk
aXIpL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvRG93bmxvYWRzIFwKIAktSSQoc3JjZGlyKS9T
b3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0Z1bGxTY3JlZW4gXApAQCAtMjEwLDYgKzIxMSw3IEBA
IHZwYXRoICUubWVzc2FnZXMuaW4gPSBcCiAJJChXZWJLaXQyKS9XZWJQcm9jZXNzIFwKIAkkKFdl
YktpdDIpL1dlYlByb2Nlc3MvQXBwbGljYXRpb25DYWNoZSBcCiAJJChXZWJLaXQyKS9XZWJQcm9j
ZXNzL0F1dGhlbnRpY2F0aW9uIFwKKwkkKFdlYktpdDIpL1dlYlByb2Nlc3MvQmF0dGVyeSBcCiAJ
JChXZWJLaXQyKS9XZWJQcm9jZXNzL0Nvb2tpZXMgXAogCSQoV2ViS2l0MikvV2ViUHJvY2Vzcy9G
dWxsU2NyZWVuIFwKIAkkKFdlYktpdDIpL1dlYlByb2Nlc3MvR2VvbG9jYXRpb24gXApAQCAtNTEy
LDYgKzUxNCw3IEBAIEVYVFJBX0RJU1QgKz0gXAogCSQoc2hlbGwgbHMgJChXZWJLaXQyKS9XZWJQ
cm9jZXNzLyouaW4pIFwKIAkkKHNoZWxsIGxzICQoV2ViS2l0MikvV2ViUHJvY2Vzcy9BcHBsaWNh
dGlvbkNhY2hlLyouaW4pIFwKIAkkKHNoZWxsIGxzICQoV2ViS2l0MikvV2ViUHJvY2Vzcy9BdXRo
ZW50aWNhdGlvbi8qLmluKSBcCisJJChzaGVsbCBscyAkKFdlYktpdDIpL1dlYlByb2Nlc3MvQmF0
dGVyeS8qLmluKSBcCiAJJChzaGVsbCBscyAkKFdlYktpdDIpL1dlYlByb2Nlc3MvQ29va2llcy8q
LmluKSBcCiAJJChzaGVsbCBscyAkKFdlYktpdDIpL1dlYlByb2Nlc3MvRnVsbFNjcmVlbi8qLmlu
KSBcCiAJJChzaGVsbCBscyAkKFdlYktpdDIpL1dlYlByb2Nlc3MvR2VvbG9jYXRpb24vKi5pbikg
XApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvR05VbWFrZWZpbGUubGlzdC5hbSBiL1NvdXJj
ZS9XZWJLaXQyL0dOVW1ha2VmaWxlLmxpc3QuYW0KaW5kZXggMzUyMzkxOC4uY2QyZWJkMSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdDIvR05VbWFrZWZpbGUubGlzdC5hbQorKysgYi9Tb3VyY2Uv
V2ViS2l0Mi9HTlVtYWtlZmlsZS5saXN0LmFtCkBAIC00Nyw2ICs0Nyw3IEBAIHdlYmtpdDJfaF9h
cGkgKz0gXAogCSQoV2ViS2l0MikvVUlQcm9jZXNzL0FQSS9DL1dLQXV0aGVudGljYXRpb25EZWNp
c2lvbkxpc3RlbmVyLmggXAogCSQoV2ViS2l0MikvVUlQcm9jZXNzL0FQSS9DL1dLQmFja0Zvcndh
cmRMaXN0LmggXAogCSQoV2ViS2l0MikvVUlQcm9jZXNzL0FQSS9DL1dLQmFja0ZvcndhcmRMaXN0
SXRlbS5oIFwKKwkkKFdlYktpdDIpL1VJUHJvY2Vzcy9BUEkvQy9XS0JhdHRlcnlNYW5hZ2VyLmgg
XAogCSQoV2ViS2l0MikvVUlQcm9jZXNzL0FQSS9DL1dLQ29udGV4dC5oIFwKIAkkKFdlYktpdDIp
L1VJUHJvY2Vzcy9BUEkvQy9XS0NvbnRleHRQcml2YXRlLmggXAogCSQoV2ViS2l0MikvVUlQcm9j
ZXNzL0FQSS9DL1dLQ29va2llTWFuYWdlci5oIFwKQEAgLTE0Nyw2ICsxNDgsMTAgQEAgd2Via2l0
Ml9idWlsdF9zb3VyY2VzICs9IFwKIAlEZXJpdmVkU291cmNlcy9XZWJLaXQyL1dlYkFwcGxpY2F0
aW9uQ2FjaGVNYW5hZ2VyTWVzc2FnZXMuaCBcCiAJRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9XZWJB
cHBsaWNhdGlvbkNhY2hlTWFuYWdlclByb3h5TWVzc2FnZVJlY2VpdmVyLmNwcCBcCiAJRGVyaXZl
ZFNvdXJjZXMvV2ViS2l0Mi9XZWJBcHBsaWNhdGlvbkNhY2hlTWFuYWdlclByb3h5TWVzc2FnZXMu
aCBcCisJRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9XZWJCYXR0ZXJ5TWFuYWdlck1lc3NhZ2VSZWNl
aXZlci5jcHAgXAorCURlcml2ZWRTb3VyY2VzL1dlYktpdDIvV2ViQmF0dGVyeU1hbmFnZXJNZXNz
YWdlcy5oIFwKKwlEZXJpdmVkU291cmNlcy9XZWJLaXQyL1dlYkJhdHRlcnlNYW5hZ2VyUHJveHlN
ZXNzYWdlUmVjZWl2ZXIuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9XZWJLaXQyL1dlYkJhdHRlcnlN
YW5hZ2VyUHJveHlNZXNzYWdlcy5oIFwKIAlEZXJpdmVkU291cmNlcy9XZWJLaXQyL1dlYkNvbnRl
eHRNZXNzYWdlUmVjZWl2ZXIuY3BwIFwKIAlEZXJpdmVkU291cmNlcy9XZWJLaXQyL1dlYkNvbnRl
eHRNZXNzYWdlcy5oIFwKIAlEZXJpdmVkU291cmNlcy9XZWJLaXQyL1dlYkNvb2tpZU1hbmFnZXJN
ZXNzYWdlUmVjZWl2ZXIuY3BwIFwKQEAgLTQxNiw2ICs0MjEsOCBAQCB3ZWJraXQyX3NvdXJjZXMg
Kz0gXAogCVNvdXJjZS9XZWJLaXQyL1NoYXJlZC9WaXNpdGVkTGlua1RhYmxlLmggXAogCVNvdXJj
ZS9XZWJLaXQyL1NoYXJlZC9XZWJCYWNrRm9yd2FyZExpc3RJdGVtLmNwcCBcCiAJU291cmNlL1dl
YktpdDIvU2hhcmVkL1dlYkJhY2tGb3J3YXJkTGlzdEl0ZW0uaCBcCisJU291cmNlL1dlYktpdDIv
U2hhcmVkL1dlYkJhdHRlcnlTdGF0dXMuY3BwIFwKKwlTb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2Vi
QmF0dGVyeVN0YXR1cy5oIFwKIAlTb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViQ2VydGlmaWNhdGVJ
bmZvLmggXAogCVNvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJDb25uZWN0aW9uLmNwcCBcCiAJU291
cmNlL1dlYktpdDIvU2hhcmVkL1dlYkNvbm5lY3Rpb24uaCBcCkBAIC01MDAsNiArNTA3LDggQEAg
d2Via2l0Ml9zb3VyY2VzICs9IFwKIAlTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tC
YWNrRm9yd2FyZExpc3QuaCBcCiAJU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLQmFj
a0ZvcndhcmRMaXN0SXRlbS5jcHAgXAogCVNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9X
S0JhY2tGb3J3YXJkTGlzdEl0ZW0uaCBcCisJU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9D
L1dLQmF0dGVyeU1hbmFnZXIuY3BwIFwKKwlTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0Mv
V0tCYXR0ZXJ5TWFuYWdlci5oIFwKIAlTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tD
b250ZXh0LmNwcCBcCiAJU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLQ29udGV4dC5o
IFwKIAlTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tDb250ZXh0UHJpdmF0ZS5oIFwK
QEAgLTc1Niw2ICs3NjUsMTAgQEAgd2Via2l0Ml9zb3VyY2VzICs9IFwKIAlTb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvV2ViQXBwbGljYXRpb25DYWNoZU1hbmFnZXJQcm94eS5jcHAgXAogCVNvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJCYWNrRm9yd2FyZExpc3QuY3BwIFwKIAlTb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvV2ViQmFja0ZvcndhcmRMaXN0LmggXAorCVNvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9XZWJCYXR0ZXJ5TWFuYWdlclByb3h5LmNwcCBcCisJU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL1dlYkJhdHRlcnlNYW5hZ2VyUHJveHkuaCBcCisJU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL1dlYkJhdHRlcnlQcm92aWRlci5jcHAgXAorCVNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9X
ZWJCYXR0ZXJ5UHJvdmlkZXIuaCBcCiAJU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkNvbm5l
Y3Rpb25Ub1dlYlByb2Nlc3MuY3BwIFwKIAlTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViQ29u
bmVjdGlvblRvV2ViUHJvY2Vzcy5oIFwKIAlTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViQ29u
dGV4dC5jcHAgXApAQCAtODQ5LDYgKzg2Miw4IEBAIHdlYmtpdDJfc291cmNlcyArPSBcCiAJU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9BcHBsaWNhdGlvbkNhY2hlL1dlYkFwcGxpY2F0aW9uQ2Fj
aGVNYW5hZ2VyLmNwcCBcCiAJU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9BdXRoZW50aWNhdGlv
bi9BdXRoZW50aWNhdGlvbk1hbmFnZXIuY3BwIFwKIAlTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNz
L0F1dGhlbnRpY2F0aW9uL0F1dGhlbnRpY2F0aW9uTWFuYWdlci5oIFwKKwlTb3VyY2UvV2ViS2l0
Mi9XZWJQcm9jZXNzL0JhdHRlcnkvV2ViQmF0dGVyeU1hbmFnZXIuY3BwIFwKKwlTb3VyY2UvV2Vi
S2l0Mi9XZWJQcm9jZXNzL0JhdHRlcnkvV2ViQmF0dGVyeU1hbmFnZXIuaCBcCiAJU291cmNlL1dl
YktpdDIvV2ViUHJvY2Vzcy9Db29raWVzL1dlYkNvb2tpZU1hbmFnZXIuaCBcCiAJU291cmNlL1dl
YktpdDIvV2ViUHJvY2Vzcy9Db29raWVzL1dlYkNvb2tpZU1hbmFnZXIuY3BwIFwKIAlTb3VyY2Uv
V2ViS2l0Mi9XZWJQcm9jZXNzL0Nvb2tpZXMvc291cC9XZWJDb29raWVNYW5hZ2VyU291cC5jcHAg
XApAQCAtOTk3LDYgKzEwMTIsOCBAQCB3ZWJraXQyX3NvdXJjZXMgKz0gXAogCVNvdXJjZS9XZWJL
aXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvc291cC9XZWJGcmFtZU5ldHdvcmtpbmdDb250
ZXh0LmNwcCBcCiAJU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9zb3Vw
L1dlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQuaCBcCiAJU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy9XZWJDb3JlU3VwcG9ydC9XZWJBbHRlcm5hdGl2ZVRleHRDbGllbnQuaCBcCisJU291cmNlL1dl
YktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJCYXR0ZXJ5Q2xpZW50LmNwcCBcCisJ
U291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJCYXR0ZXJ5Q2xpZW50
LmggXAogCVNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21l
Q2xpZW50LmNwcCBcCiAJU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9X
ZWJDaHJvbWVDbGllbnQuaCBcCiAJU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3Vw
cG9ydC9XZWJDb250ZXh0TWVudUNsaWVudC5jcHAgXApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dDIvUGxhdGZvcm0vQ29yZUlQQy9NZXNzYWdlSUQuaCBiL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3Jt
L0NvcmVJUEMvTWVzc2FnZUlELmgKaW5kZXggNWYzOThhYS4uZDU0MTc2ZSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdDIvUGxhdGZvcm0vQ29yZUlQQy9NZXNzYWdlSUQuaAorKysgYi9Tb3VyY2Uv
V2ViS2l0Mi9QbGF0Zm9ybS9Db3JlSVBDL01lc3NhZ2VJRC5oCkBAIC00MCw2ICs0MCw3IEBAIGVu
dW0gTWVzc2FnZUNsYXNzIHsKICAgICBNZXNzYWdlQ2xhc3NJbmplY3RlZEJ1bmRsZSwKICAgICBN
ZXNzYWdlQ2xhc3NMYXllclRyZWVIb3N0LAogICAgIE1lc3NhZ2VDbGFzc1dlYkFwcGxpY2F0aW9u
Q2FjaGVNYW5hZ2VyLAorICAgIE1lc3NhZ2VDbGFzc1dlYkJhdHRlcnlNYW5hZ2VyUHJveHksCiAg
ICAgTWVzc2FnZUNsYXNzV2ViQ29va2llTWFuYWdlciwKICAgICBNZXNzYWdlQ2xhc3NXZWJEYXRh
YmFzZU1hbmFnZXIsCiAgICAgTWVzc2FnZUNsYXNzV2ViRnVsbFNjcmVlbk1hbmFnZXIsCkBAIC02
Miw2ICs2Myw3IEBAIGVudW0gTWVzc2FnZUNsYXNzIHsKICAgICBNZXNzYWdlQ2xhc3NEcmF3aW5n
QXJlYVByb3h5LAogICAgIE1lc3NhZ2VDbGFzc0xheWVyVHJlZUhvc3RQcm94eSwKICAgICBNZXNz
YWdlQ2xhc3NXZWJBcHBsaWNhdGlvbkNhY2hlTWFuYWdlclByb3h5LAorICAgIE1lc3NhZ2VDbGFz
c1dlYkJhdHRlcnlNYW5hZ2VyLAogICAgIE1lc3NhZ2VDbGFzc1dlYkNvbnRleHQsCiAgICAgTWVz
c2FnZUNsYXNzV2ViQ29udGV4dExlZ2FjeSwKICAgICBNZXNzYWdlQ2xhc3NXZWJDb29raWVNYW5h
Z2VyUHJveHksCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQVBJL2MvV0tCYXNl
LmggYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQVBJL2MvV0tCYXNlLmgKaW5kZXggMzdhNjRmMC4u
MDE0NzE0YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvU2hhcmVkL0FQSS9jL1dLQmFzZS5o
CisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9BUEkvYy9XS0Jhc2UuaApAQCAtODIsNiArODIs
OCBAQCB0eXBlZGVmIGNvbnN0IHN0cnVjdCBPcGFxdWVXS0F1dGhlbnRpY2F0aW9uQ2hhbGxlbmdl
KiBXS0F1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlUgogdHlwZWRlZiBjb25zdCBzdHJ1Y3QgT3BhcXVl
V0tBdXRoZW50aWNhdGlvbkRlY2lzaW9uTGlzdGVuZXIqIFdLQXV0aGVudGljYXRpb25EZWNpc2lv
bkxpc3RlbmVyUmVmOwogdHlwZWRlZiBjb25zdCBzdHJ1Y3QgT3BhcXVlV0tCYWNrRm9yd2FyZExp
c3QqIFdLQmFja0ZvcndhcmRMaXN0UmVmOwogdHlwZWRlZiBjb25zdCBzdHJ1Y3QgT3BhcXVlV0tC
YWNrRm9yd2FyZExpc3RJdGVtKiBXS0JhY2tGb3J3YXJkTGlzdEl0ZW1SZWY7Cit0eXBlZGVmIGNv
bnN0IHN0cnVjdCBPcGFxdWVXS0JhdHRlcnlNYW5hZ2VyKiBXS0JhdHRlcnlNYW5hZ2VyUmVmOwor
dHlwZWRlZiBjb25zdCBzdHJ1Y3QgT3BhcXVlV0tCYXR0ZXJ5U3RhdHVzKiBXS0JhdHRlcnlTdGF0
dXNSZWY7CiB0eXBlZGVmIGNvbnN0IHN0cnVjdCBPcGFxdWVXS1Jlc291cmNlQ2FjaGVNYW5hZ2Vy
KiBXS1Jlc291cmNlQ2FjaGVNYW5hZ2VyUmVmOwogdHlwZWRlZiBjb25zdCBzdHJ1Y3QgT3BhcXVl
V0tDb250ZXh0KiBXS0NvbnRleHRSZWY7CiB0eXBlZGVmIGNvbnN0IHN0cnVjdCBPcGFxdWVXS0Nv
b2tpZU1hbmFnZXIqIFdLQ29va2llTWFuYWdlclJlZjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQyL1NoYXJlZC9BUElPYmplY3QuaCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9BUElPYmplY3Qu
aAppbmRleCBlYWQ3NGYwLi44MzBmZWU4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFy
ZWQvQVBJT2JqZWN0LmgKKysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL0FQSU9iamVjdC5oCkBA
IC03Miw2ICs3Miw4IEBAIHB1YmxpYzoKICAgICAgICAgVHlwZUFwcGxpY2F0aW9uQ2FjaGVNYW5h
Z2VyLAogICAgICAgICBUeXBlQmFja0ZvcndhcmRMaXN0LAogICAgICAgICBUeXBlQmFja0Zvcndh
cmRMaXN0SXRlbSwKKyAgICAgICAgVHlwZUJhdHRlcnlNYW5hZ2VyLAorICAgICAgICBUeXBlQmF0
dGVyeVN0YXR1cywKICAgICAgICAgVHlwZUNhY2hlTWFuYWdlciwKICAgICAgICAgVHlwZUNvbnRl
eHQsCiAgICAgICAgIFR5cGVDb29raWVNYW5hZ2VyLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dDIvU2hhcmVkL1dlYkJhdHRlcnlTdGF0dXMuY3BwIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL1dl
YkJhdHRlcnlTdGF0dXMuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmM4
ZDgwNmQKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViQmF0dGVy
eVN0YXR1cy5jcHAKQEAgLTAsMCArMSw2MCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMiBJ
bnRlbCBDb3Jwb3JhdGlvbi4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
KyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3Vy
Y2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAy
LiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Ig
b3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBU
SElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRP
UlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMg
T0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBP
U0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENP
TlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURF
TlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRV
VEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBC
VVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9S
WSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZ
LCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5H
IElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJ
U0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1
ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIldlYkJhdHRlcnlTdGF0dXMuaCIKKworI2lmIEVOQUJM
RShCQVRURVJZX1NUQVRVUykKKworI2luY2x1ZGUgIkFyZ3VtZW50Q29kZXJzLmgiCisjaW5jbHVk
ZSAiQXJndW1lbnRzLmgiCisKK25hbWVzcGFjZSBXZWJLaXQgeworCitXZWJCYXR0ZXJ5U3RhdHVz
OjpXZWJCYXR0ZXJ5U3RhdHVzKGJvb2wgaXNDaGFyZ2luZywgZG91YmxlIGNoYXJnaW5nVGltZSwg
ZG91YmxlIGRpc2NoYXJnaW5nVGltZSwgZG91YmxlIGxldmVsKQoreworICAgIG1fZGF0YS5pc0No
YXJnaW5nID0gaXNDaGFyZ2luZzsKKyAgICBtX2RhdGEuY2hhcmdpbmdUaW1lID0gY2hhcmdpbmdU
aW1lOworICAgIG1fZGF0YS5kaXNjaGFyZ2luZ1RpbWUgPSBkaXNjaGFyZ2luZ1RpbWU7CisgICAg
bV9kYXRhLmxldmVsID0gbGV2ZWw7Cit9CisKK1dlYkJhdHRlcnlTdGF0dXM6On5XZWJCYXR0ZXJ5
U3RhdHVzKCkKK3sKK30KKwordm9pZCBXZWJCYXR0ZXJ5U3RhdHVzOjpEYXRhOjplbmNvZGUoQ29y
ZUlQQzo6QXJndW1lbnRFbmNvZGVyKiBlbmNvZGVyKSBjb25zdAoreworICAgIGVuY29kZXItPmVu
Y29kZShDb3JlSVBDOjpJbihpc0NoYXJnaW5nLCBjaGFyZ2luZ1RpbWUsIGRpc2NoYXJnaW5nVGlt
ZSwgbGV2ZWwpKTsKK30KKworYm9vbCBXZWJCYXR0ZXJ5U3RhdHVzOjpEYXRhOjpkZWNvZGUoQ29y
ZUlQQzo6QXJndW1lbnREZWNvZGVyKiBkZWNvZGVyLCBEYXRhJiBkYXRhKQoreworICAgIHJldHVy
biBkZWNvZGVyLT5kZWNvZGUoQ29yZUlQQzo6T3V0KGRhdGEuaXNDaGFyZ2luZywgZGF0YS5jaGFy
Z2luZ1RpbWUsIGRhdGEuZGlzY2hhcmdpbmdUaW1lLCBkYXRhLmxldmVsKSk7Cit9CisKK30gLy8g
bmFtZXNwYWNlIFdlYktpdAorCisjZW5kaWYgLy8gRU5BQkxFKEJBVFRFUllfU1RBVFVTKQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYkJhdHRlcnlTdGF0dXMuaCBiL1NvdXJj
ZS9XZWJLaXQyL1NoYXJlZC9XZWJCYXR0ZXJ5U3RhdHVzLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMC4uZmQxZDc5MwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQy
L1NoYXJlZC9XZWJCYXR0ZXJ5U3RhdHVzLmgKQEAgLTAsMCArMSw3NyBAQAorLyoKKyAqIENvcHly
aWdodCAoQykgMjAxMiBJbnRlbCBDb3Jwb3JhdGlvbi4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAq
CisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJp
YnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXBy
b2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1l
bnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1
dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5E
IElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElF
RCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBM
SUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJ
Q1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExF
IElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJ
TkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVO
VElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQg
T0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBP
UiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBB
TkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBT
VFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJ
U0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FS
RSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0Uu
CisgKi8KKworI2lmbmRlZiBXZWJCYXR0ZXJ5U3RhdHVzX2gKKyNkZWZpbmUgV2ViQmF0dGVyeVN0
YXR1c19oCisKKyNpZiBFTkFCTEUoQkFUVEVSWV9TVEFUVVMpCisKKyNpbmNsdWRlICJBUElPYmpl
Y3QuaCIKKyNpbmNsdWRlICJBcmd1bWVudERlY29kZXIuaCIKKyNpbmNsdWRlICJBcmd1bWVudEVu
Y29kZXIuaCIKKyNpbmNsdWRlIDx3dGYvUGFzc1JlZlB0ci5oPgorCituYW1lc3BhY2UgV2ViS2l0
IHsKKworY2xhc3MgV2ViQmF0dGVyeVN0YXR1cyA6IHB1YmxpYyBBUElPYmplY3QgeworcHVibGlj
OgorICAgIHN0YXRpYyBjb25zdCBUeXBlIEFQSVR5cGUgPSBUeXBlQmF0dGVyeVN0YXR1czsKKwor
ICAgIHN0cnVjdCBEYXRhIHsKKyAgICAgICAgdm9pZCBlbmNvZGUoQ29yZUlQQzo6QXJndW1lbnRF
bmNvZGVyKikgY29uc3Q7CisgICAgICAgIHN0YXRpYyBib29sIGRlY29kZShDb3JlSVBDOjpBcmd1
bWVudERlY29kZXIqLCBEYXRhJik7CisKKyAgICAgICAgYm9vbCBpc0NoYXJnaW5nOworICAgICAg
ICBkb3VibGUgY2hhcmdpbmdUaW1lOworICAgICAgICBkb3VibGUgZGlzY2hhcmdpbmdUaW1lOwor
ICAgICAgICBkb3VibGUgbGV2ZWw7CisgICAgfTsKKworICAgIHN0YXRpYyBQYXNzUmVmUHRyPFdl
YkJhdHRlcnlTdGF0dXM+IGNyZWF0ZShib29sIGlzQ2hhcmdpbmcsIGRvdWJsZSBjaGFyZ2luZ1Rp
bWUsIGRvdWJsZSBkaXNjaGFyZ2luZ1RpbWUsIGRvdWJsZSBsZXZlbCkKKyAgICB7CisgICAgICAg
IHJldHVybiBhZG9wdFJlZihuZXcgV2ViQmF0dGVyeVN0YXR1cyhpc0NoYXJnaW5nLCBjaGFyZ2lu
Z1RpbWUsIGRpc2NoYXJnaW5nVGltZSwgbGV2ZWwpKTsKKyAgICB9CisKKyAgICB2aXJ0dWFsIH5X
ZWJCYXR0ZXJ5U3RhdHVzKCk7CisgICAgZG91YmxlIGlzQ2hhcmdpbmcoKSBjb25zdCB7IHJldHVy
biBtX2RhdGEuaXNDaGFyZ2luZzsgfQorICAgIGRvdWJsZSBjaGFyZ2luZ1RpbWUoKSBjb25zdCB7
IHJldHVybiBtX2RhdGEuY2hhcmdpbmdUaW1lOyB9CisgICAgZG91YmxlIGRpc2NoYXJnaW5nVGlt
ZSgpIGNvbnN0IHsgcmV0dXJuIG1fZGF0YS5kaXNjaGFyZ2luZ1RpbWU7IH0KKyAgICBkb3VibGUg
bGV2ZWwoKSBjb25zdCB7IHJldHVybiBtX2RhdGEubGV2ZWw7IH0KKworICAgIGNvbnN0IERhdGEm
IGRhdGEoKSBjb25zdCB7IHJldHVybiBtX2RhdGE7IH0KKworcHJpdmF0ZToKKyAgICBXZWJCYXR0
ZXJ5U3RhdHVzKGJvb2wgaXNDaGFyZ2luZywgZG91YmxlIGNoYXJnaW5nVGltZSwgZG91YmxlIGRp
c2NoYXJnaW5nVGltZSwgZG91YmxlIGxldmVsKTsKKworICAgIHZpcnR1YWwgVHlwZSB0eXBlKCkg
Y29uc3QgeyByZXR1cm4gQVBJVHlwZTsgfQorCisgICAgRGF0YSBtX2RhdGE7Cit9OworCit9IC8v
IG5hbWVzcGFjZSBXZWJLaXQKKworI2VuZGlmIC8vIEVOQUJMRShCQVRURVJZX1NUQVRVUykKKwor
I2VuZGlmIC8vIFdlYkJhdHRlcnlTdGF0dXNfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIv
VGFyZ2V0LnByaSBiL1NvdXJjZS9XZWJLaXQyL1RhcmdldC5wcmkKaW5kZXggOWU1YmM0ZS4uYjk2
NGM0MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVGFyZ2V0LnByaQorKysgYi9Tb3VyY2Uv
V2ViS2l0Mi9UYXJnZXQucHJpCkBAIC05OSw2ICs5OSw3IEBAIEhFQURFUlMgKz0gXAogICAgIFNo
YXJlZC9WaXNpdGVkTGlua1RhYmxlLmggXAogICAgIFNoYXJlZC9XZWJDb3JlQXJndW1lbnRDb2Rl
cnMuaCBcCiAgICAgU2hhcmVkL1dlYkJhY2tGb3J3YXJkTGlzdEl0ZW0uaCBcCisgICAgU2hhcmVk
L1dlYkJhdHRlcnlTdGF0dXMuaCBcCiAgICAgU2hhcmVkL1dlYkNlcnRpZmljYXRlSW5mby5oIFwK
ICAgICBTaGFyZWQvV2ViQ29ubmVjdGlvbi5oIFwKICAgICBTaGFyZWQvV2ViQ29ubmVjdGlvbkNs
aWVudC5oIFwKQEAgLTE0Nyw2ICsxNDgsNyBAQCBIRUFERVJTICs9IFwKICAgICBVSVByb2Nlc3Mv
QVBJL0MvV0tBdXRoZW50aWNhdGlvbkRlY2lzaW9uTGlzdGVuZXIuaCBcCiAgICAgVUlQcm9jZXNz
L0FQSS9DL1dLQmFja0ZvcndhcmRMaXN0LmggXAogICAgIFVJUHJvY2Vzcy9BUEkvQy9XS0JhY2tG
b3J3YXJkTGlzdEl0ZW0uaCBcCisgICAgVUlQcm9jZXNzL0FQSS9DL1dLQmF0dGVyeU1hbmFnZXIu
aCBcCiAgICAgVUlQcm9jZXNzL0FQSS9DL1dLQ29udGV4dC5oIFwKICAgICBVSVByb2Nlc3MvQVBJ
L0MvV0tDb250ZXh0UHJpdmF0ZS5oIFwKICAgICBVSVByb2Nlc3MvQVBJL0MvV0tDcmVkZW50aWFs
LmggXApAQCAtMjI5LDYgKzIzMSw4IEBAIEhFQURFUlMgKz0gXAogICAgIFVJUHJvY2Vzcy9WaXNp
dGVkTGlua1Byb3ZpZGVyLmggXAogICAgIFVJUHJvY2Vzcy9XZWJBcHBsaWNhdGlvbkNhY2hlTWFu
YWdlclByb3h5LmggXAogICAgIFVJUHJvY2Vzcy9XZWJCYWNrRm9yd2FyZExpc3QuaCBcCisgICAg
VUlQcm9jZXNzL1dlYkJhdHRlcnlNYW5hZ2VyUHJveHkuaCBcCisgICAgVUlQcm9jZXNzL1dlYkJh
dHRlcnlQcm92aWRlci5oIFwKICAgICBVSVByb2Nlc3MvV2ViQ29ubmVjdGlvblRvV2ViUHJvY2Vz
cy5oIFwKICAgICBVSVByb2Nlc3MvV2ViQ29udGV4dC5oIFwKICAgICBVSVByb2Nlc3MvV2ViQ29u
dGV4dENvbm5lY3Rpb25DbGllbnQuaCBcCkBAIC0yOTQsNiArMjk4LDcgQEAgSEVBREVSUyArPSBc
CiAgICAgVUlQcm9jZXNzL3F0L1dlYlBvcHVwTWVudVByb3h5UXQuaCBcCiAgICAgV2ViUHJvY2Vz
cy9BcHBsaWNhdGlvbkNhY2hlL1dlYkFwcGxpY2F0aW9uQ2FjaGVNYW5hZ2VyLmggXAogICAgIFdl
YlByb2Nlc3MvQXV0aGVudGljYXRpb24vQXV0aGVudGljYXRpb25NYW5hZ2VyLmggXAorICAgIFdl
YlByb2Nlc3MvQmF0dGVyeS9XZWJCYXR0ZXJ5TWFuYWdlci5oIFwKICAgICBXZWJQcm9jZXNzL0Nv
b2tpZXMvV2ViQ29va2llTWFuYWdlci5oIFwKICAgICBXZWJQcm9jZXNzL0Rvd25sb2Fkcy9Eb3du
bG9hZC5oIFwKICAgICBXZWJQcm9jZXNzL0Rvd25sb2Fkcy9Eb3dubG9hZE1hbmFnZXIuaCBcCkBA
IC0zNDQsNiArMzQ5LDcgQEAgSEVBREVSUyArPSBcCiAgICAgV2ViUHJvY2Vzcy9QbHVnaW5zL1Bs
dWdpblByb3h5LmggXAogICAgIFdlYlByb2Nlc3MvUGx1Z2lucy9QbHVnaW5Qcm9jZXNzQ29ubmVj
dGlvbi5oIFwKICAgICBXZWJQcm9jZXNzL1BsdWdpbnMvUGx1Z2luUHJvY2Vzc0Nvbm5lY3Rpb25N
YW5hZ2VyLmggXAorICAgIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQmF0dGVyeUNsaWVu
dC5oIFwKICAgICBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5oIFwK
ICAgICBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNvbnRleHRNZW51Q2xpZW50LmggXAog
ICAgIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRGF0YWJhc2VNYW5hZ2VyLmggXApAQCAt
NDU4LDYgKzQ2NCw3IEBAIFNPVVJDRVMgKz0gXAogICAgIFNoYXJlZC9VcGRhdGVJbmZvLmNwcCBc
CiAgICAgU2hhcmVkL1Zpc2l0ZWRMaW5rVGFibGUuY3BwIFwKICAgICBTaGFyZWQvV2ViQmFja0Zv
cndhcmRMaXN0SXRlbS5jcHAgXAorICAgIFNoYXJlZC9XZWJCYXR0ZXJ5U3RhdHVzLmNwcCBcCiAg
ICAgU2hhcmVkL1dlYkNvbm5lY3Rpb24uY3BwIFwKICAgICBTaGFyZWQvV2ViQ29ubmVjdGlvbkNs
aWVudC5jcHAgXAogICAgIFNoYXJlZC9XZWJDb250ZXh0TWVudUl0ZW0uY3BwIFwKQEAgLTUwNSw2
ICs1MTIsNyBAQCBTT1VSQ0VTICs9IFwKICAgICBVSVByb2Nlc3MvQVBJL0MvV0tBdXRoZW50aWNh
dGlvbkRlY2lzaW9uTGlzdGVuZXIuY3BwIFwKICAgICBVSVByb2Nlc3MvQVBJL0MvV0tCYWNrRm9y
d2FyZExpc3QuY3BwIFwKICAgICBVSVByb2Nlc3MvQVBJL0MvV0tCYWNrRm9yd2FyZExpc3RJdGVt
LmNwcCBcCisgICAgVUlQcm9jZXNzL0FQSS9DL1dLQmF0dGVyeU1hbmFnZXIuY3BwIFwKICAgICBV
SVByb2Nlc3MvQVBJL0MvV0tDb250ZXh0LmNwcCBcCiAgICAgVUlQcm9jZXNzL0FQSS9DL1dLQ3Jl
ZGVudGlhbC5jcHAgXAogICAgIFVJUHJvY2Vzcy9BUEkvQy9XS0RhdGFiYXNlTWFuYWdlci5jcHAg
XApAQCAtNTc4LDYgKzU4Niw4IEBAIFNPVVJDRVMgKz0gXAogICAgIFVJUHJvY2Vzcy9WaXNpdGVk
TGlua1Byb3ZpZGVyLmNwcCBcCiAgICAgVUlQcm9jZXNzL1dlYkFwcGxpY2F0aW9uQ2FjaGVNYW5h
Z2VyUHJveHkuY3BwIFwKICAgICBVSVByb2Nlc3MvV2ViQmFja0ZvcndhcmRMaXN0LmNwcCBcCisg
ICAgVUlQcm9jZXNzL1dlYkJhdHRlcnlNYW5hZ2VyUHJveHkuY3BwIFwKKyAgICBVSVByb2Nlc3Mv
V2ViQmF0dGVyeVByb3ZpZGVyLmNwcCBcCiAgICAgVUlQcm9jZXNzL1dlYkNvbm5lY3Rpb25Ub1dl
YlByb2Nlc3MuY3BwIFwKICAgICBVSVByb2Nlc3MvV2ViQ29udGV4dC5jcHAgXAogICAgIFVJUHJv
Y2Vzcy9XZWJDb250ZXh0Q29ubmVjdGlvbkNsaWVudC5jcHAgXApAQCAtNjQ3LDYgKzY1Nyw3IEBA
IFNPVVJDRVMgKz0gXAogICAgIFVJUHJvY2Vzcy9xdC9RdFdlYkljb25EYXRhYmFzZUNsaWVudC5j
cHAgXAogICAgIFdlYlByb2Nlc3MvQXBwbGljYXRpb25DYWNoZS9XZWJBcHBsaWNhdGlvbkNhY2hl
TWFuYWdlci5jcHAgXAogICAgIFdlYlByb2Nlc3MvQXV0aGVudGljYXRpb24vQXV0aGVudGljYXRp
b25NYW5hZ2VyLmNwcCBcCisgICAgV2ViUHJvY2Vzcy9CYXR0ZXJ5L1dlYkJhdHRlcnlNYW5hZ2Vy
LmNwcCBcCiAgICAgV2ViUHJvY2Vzcy9Db29raWVzL1dlYkNvb2tpZU1hbmFnZXIuY3BwIFwKICAg
ICBXZWJQcm9jZXNzL0Nvb2tpZXMvcXQvV2ViQ29va2llTWFuYWdlclF0LmNwcCBcCiAgICAgV2Vi
UHJvY2Vzcy9Eb3dubG9hZHMvRG93bmxvYWQuY3BwIFwKQEAgLTcxMCw2ICs3MjEsNyBAQCBTT1VS
Q0VTICs9IFwKICAgICBXZWJQcm9jZXNzL1BsdWdpbnMvUGx1Z2luUHJveHkuY3BwIFwKICAgICBX
ZWJQcm9jZXNzL1BsdWdpbnMvUGx1Z2luUHJvY2Vzc0Nvbm5lY3Rpb24uY3BwIFwKICAgICBXZWJQ
cm9jZXNzL1BsdWdpbnMvUGx1Z2luUHJvY2Vzc0Nvbm5lY3Rpb25NYW5hZ2VyLmNwcCBcCisgICAg
V2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJCYXR0ZXJ5Q2xpZW50LmNwcCBcCiAgICAgV2Vi
UHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuY3BwIFwKICAgICBXZWJQcm9j
ZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNvbnRleHRNZW51Q2xpZW50LmNwcCBcCiAgICAgV2ViUHJv
Y2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJEYXRhYmFzZU1hbmFnZXIuY3BwIFwKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS0FQSUNhc3QuaCBiL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9BUEkvQy9XS0FQSUNhc3QuaAppbmRleCA5YmM5ZWE2Li44YjliZDEwIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tBUElDYXN0LmgKKysr
IGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLQVBJQ2FzdC5oCkBAIC01Niw2ICs1
Niw4IEBAIGNsYXNzIE5vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0OwogY2xhc3MgV2ViQXBw
bGljYXRpb25DYWNoZU1hbmFnZXJQcm94eTsKIGNsYXNzIFdlYkJhY2tGb3J3YXJkTGlzdDsKIGNs
YXNzIFdlYkJhY2tGb3J3YXJkTGlzdEl0ZW07CitjbGFzcyBXZWJCYXR0ZXJ5TWFuYWdlclByb3h5
OworY2xhc3MgV2ViQmF0dGVyeVN0YXR1czsKIGNsYXNzIFdlYlJlc291cmNlQ2FjaGVNYW5hZ2Vy
UHJveHk7CiBjbGFzcyBXZWJDb250ZXh0OwogY2xhc3MgV2ViQ29va2llTWFuYWdlclByb3h5OwpA
QCAtOTQsNiArOTYsOCBAQCBXS19BRERfQVBJX01BUFBJTkcoV0tBdXRoZW50aWNhdGlvbkNoYWxs
ZW5nZVJlZiwgQXV0aGVudGljYXRpb25DaGFsbGVuZ2VQcm94eSkKIFdLX0FERF9BUElfTUFQUElO
RyhXS0F1dGhlbnRpY2F0aW9uRGVjaXNpb25MaXN0ZW5lclJlZiwgQXV0aGVudGljYXRpb25EZWNp
c2lvbkxpc3RlbmVyKQogV0tfQUREX0FQSV9NQVBQSU5HKFdLQmFja0ZvcndhcmRMaXN0SXRlbVJl
ZiwgV2ViQmFja0ZvcndhcmRMaXN0SXRlbSkKIFdLX0FERF9BUElfTUFQUElORyhXS0JhY2tGb3J3
YXJkTGlzdFJlZiwgV2ViQmFja0ZvcndhcmRMaXN0KQorV0tfQUREX0FQSV9NQVBQSU5HKFdLQmF0
dGVyeU1hbmFnZXJSZWYsIFdlYkJhdHRlcnlNYW5hZ2VyUHJveHkpCitXS19BRERfQVBJX01BUFBJ
TkcoV0tCYXR0ZXJ5U3RhdHVzUmVmLCBXZWJCYXR0ZXJ5U3RhdHVzKQogV0tfQUREX0FQSV9NQVBQ
SU5HKFdLUmVzb3VyY2VDYWNoZU1hbmFnZXJSZWYsIFdlYlJlc291cmNlQ2FjaGVNYW5hZ2VyUHJv
eHkpCiBXS19BRERfQVBJX01BUFBJTkcoV0tDb250ZXh0UmVmLCBXZWJDb250ZXh0KQogV0tfQURE
X0FQSV9NQVBQSU5HKFdLQ29va2llTWFuYWdlclJlZiwgV2ViQ29va2llTWFuYWdlclByb3h5KQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLQmF0dGVyeU1hbmFn
ZXIuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLQmF0dGVyeU1hbmFnZXIu
Y3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmQ2MTYyNWMKLS0tIC9kZXYv
bnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tCYXR0ZXJ5TWFuYWdl
ci5jcHAKQEAgLTAsMCArMSw0MSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMiBJbnRlbCBD
b3Jwb3JhdGlvbi4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29k
ZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRp
c3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIg
bWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNP
RlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBB
UyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVS
Q0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJF
IERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJV
VE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwg
U1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09P
RFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVT
UworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBM
SUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBU
T1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFO
WSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9G
CisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNv
bmZpZy5oIgorI2luY2x1ZGUgIldLQmF0dGVyeU1hbmFnZXIuaCIKKworI2lmIEVOQUJMRShCQVRU
RVJZX1NUQVRVUykKKworI2luY2x1ZGUgIldLQVBJQ2FzdC5oIgorI2luY2x1ZGUgIldlYkJhdHRl
cnlNYW5hZ2VyUHJveHkuaCIKKwordXNpbmcgbmFtZXNwYWNlIFdlYktpdDsKKworV0tUeXBlSUQg
V0tCYXR0ZXJ5TWFuYWdlckdldFR5cGVJRCgpCit7CisgICAgcmV0dXJuIHRvQVBJKFdlYkJhdHRl
cnlNYW5hZ2VyUHJveHk6OkFQSVR5cGUpOworfQorCisjZW5kaWYgLy8gRU5BQkxFKEJBVFRFUllf
U1RBVFVTKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLQmF0
dGVyeU1hbmFnZXIuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS0JhdHRlcnlN
YW5hZ2VyLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNTI4MmE2MQotLS0g
L2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS0JhdHRlcnlN
YW5hZ2VyLmgKQEAgLTAsMCArMSw1OSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMiBJbnRl
bCBDb3Jwb3JhdGlvbi4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAq
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2Ug
Y29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBS
ZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3Ro
ZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElT
IFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMg
YGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0Yg
TUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0Ug
QVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRS
SUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRB
TCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUg
R09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJ
TkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBP
RiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBP
UiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElO
IEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBX
S0JhdHRlcnlNYW5hZ2VyX2gKKyNkZWZpbmUgV0tCYXR0ZXJ5TWFuYWdlcl9oCisKKyNpZiBFTkFC
TEUoQkFUVEVSWV9TVEFUVVMpCisKKyNpbmNsdWRlIDxXZWJLaXQyL1dLQmFzZS5oPgorCisjaWZk
ZWYgX19jcGx1c3BsdXMKK2V4dGVybiAiQyIgeworI2VuZGlmCisKKy8vIFByb3ZpZGVyLgordHlw
ZWRlZiB2b2lkICgqV0tCYXR0ZXJ5UHJvdmlkZXJTdGFydFVwZGF0aW5nQ2FsbGJhY2spKFdLQmF0
dGVyeU1hbmFnZXJSZWYgYmF0dGVyeU1hbmFnZXIsIGNvbnN0IHZvaWQqIGNsaWVudEluZm8pOwor
dHlwZWRlZiB2b2lkICgqV0tCYXR0ZXJ5UHJvdmlkZXJTdG9wVXBkYXRpbmdDYWxsYmFjaykoV0tC
YXR0ZXJ5TWFuYWdlclJlZiBiYXR0ZXJ5TWFuYWdlciwgY29uc3Qgdm9pZCogY2xpZW50SW5mbyk7
CisKK3N0cnVjdCBXS0JhdHRlcnlQcm92aWRlciB7CisgICAgaW50ICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZXJzaW9uOwor
ICAgIGNvbnN0IHZvaWQgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgY2xpZW50SW5mbzsKKyAgICBXS0JhdHRlcnlQcm92aWRlclN0YXJ0VXBk
YXRpbmdDYWxsYmFjayAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0VXBkYXRpbmc7
CisgICAgV0tCYXR0ZXJ5UHJvdmlkZXJTdG9wVXBkYXRpbmdDYWxsYmFjayAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBzdG9wVXBkYXRpbmc7Cit9OwordHlwZWRlZiBzdHJ1Y3QgV0tCYXR0
ZXJ5UHJvdmlkZXIgV0tCYXR0ZXJ5UHJvdmlkZXI7CisKK2VudW0geyBrV0tCYXR0ZXJ5UHJvdmlk
ZXJDdXJyZW50VmVyc2lvbiA9IDAgfTsKKworV0tfRVhQT1JUIFdLVHlwZUlEIFdLQmF0dGVyeU1h
bmFnZXJHZXRUeXBlSUQoKTsKKworI2lmZGVmIF9fY3BsdXNwbHVzCit9CisjZW5kaWYKKworI2Vu
ZGlmIC8qIEVOQUJMRShCQVRURVJZX1NUQVRVUykgKi8KKworI2VuZGlmIC8qIFdLQmF0dGVyeU1h
bmFnZXJfaCAqLwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkJhdHRl
cnlNYW5hZ2VyUHJveHkuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkJhdHRlcnlN
YW5hZ2VyUHJveHkuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmMzODk3
ZTgKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViQmF0dGVy
eU1hbmFnZXJQcm94eS5jcHAKQEAgLTAsMCArMSwxMDIgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMp
IDIwMTIgSW50ZWwgQ29ycG9yYXRpb24uIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMg
b2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
LgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24g
YW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisg
KgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09O
VFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFO
VElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJS
QU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisg
KiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9S
IElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1Qs
IElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFN
QUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBT
VUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklU
UzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFO
WSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJ
QUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICog
QVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4g
SUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisK
KyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJXZWJCYXR0ZXJ5TWFuYWdlclByb3h5Lmgi
CisKKyNpZiBFTkFCTEUoQkFUVEVSWV9TVEFUVVMpCisKKyNpbmNsdWRlICJXZWJCYXR0ZXJ5TWFu
YWdlck1lc3NhZ2VzLmgiCisjaW5jbHVkZSAiV2ViQ29udGV4dC5oIgorCituYW1lc3BhY2UgV2Vi
S2l0IHsKKworUGFzc1JlZlB0cjxXZWJCYXR0ZXJ5TWFuYWdlclByb3h5PiBXZWJCYXR0ZXJ5TWFu
YWdlclByb3h5OjpjcmVhdGUoV2ViQ29udGV4dCogY29udGV4dCkKK3sKKyAgICByZXR1cm4gYWRv
cHRSZWYobmV3IFdlYkJhdHRlcnlNYW5hZ2VyUHJveHkoY29udGV4dCkpOworfQorCitXZWJCYXR0
ZXJ5TWFuYWdlclByb3h5OjpXZWJCYXR0ZXJ5TWFuYWdlclByb3h5KFdlYkNvbnRleHQqIGNvbnRl
eHQpCisgICAgOiBtX2lzVXBkYXRpbmcoZmFsc2UpCisgICAgLCBtX2NvbnRleHQoY29udGV4dCkK
K3sKK30KKworV2ViQmF0dGVyeU1hbmFnZXJQcm94eTo6fldlYkJhdHRlcnlNYW5hZ2VyUHJveHko
KQoreworfQorCit2b2lkIFdlYkJhdHRlcnlNYW5hZ2VyUHJveHk6OmludmFsaWRhdGUoKQorewor
ICAgIHN0b3BVcGRhdGluZygpOworfQorCit2b2lkIFdlYkJhdHRlcnlNYW5hZ2VyUHJveHk6Omlu
aXRpYWxpemVQcm92aWRlcihjb25zdCBXS0JhdHRlcnlQcm92aWRlciogcHJvdmlkZXIpCit7Cisg
ICAgbV9wcm92aWRlci5pbml0aWFsaXplKHByb3ZpZGVyKTsKK30KKwordm9pZCBXZWJCYXR0ZXJ5
TWFuYWdlclByb3h5OjpkaWRSZWNlaXZlTWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiBjb25u
ZWN0aW9uLCBDb3JlSVBDOjpNZXNzYWdlSUQgbWVzc2FnZUlELCBDb3JlSVBDOjpBcmd1bWVudERl
Y29kZXIqIGFyZ3VtZW50cykKK3sKKyAgICBkaWRSZWNlaXZlV2ViQmF0dGVyeU1hbmFnZXJQcm94
eU1lc3NhZ2UoY29ubmVjdGlvbiwgbWVzc2FnZUlELCBhcmd1bWVudHMpOworfQorCit2b2lkIFdl
YkJhdHRlcnlNYW5hZ2VyUHJveHk6OnN0YXJ0VXBkYXRpbmcoKQoreworICAgIGlmIChtX2lzVXBk
YXRpbmcpCisgICAgICAgIHJldHVybjsKKworICAgIG1fcHJvdmlkZXIuc3RhcnRVcGRhdGluZyh0
aGlzKTsKKyAgICBtX2lzVXBkYXRpbmcgPSB0cnVlOworfQorCit2b2lkIFdlYkJhdHRlcnlNYW5h
Z2VyUHJveHk6OnN0b3BVcGRhdGluZygpCit7CisgICAgaWYgKCFtX2lzVXBkYXRpbmcpCisgICAg
ICAgIHJldHVybjsKKworICAgIG1fcHJvdmlkZXIuc3RvcFVwZGF0aW5nKHRoaXMpOworICAgIG1f
aXNVcGRhdGluZyA9IGZhbHNlOworfQorCit2b2lkIFdlYkJhdHRlcnlNYW5hZ2VyUHJveHk6OnBy
b3ZpZGVyRGlkQ2hhbmdlQmF0dGVyeVN0YXR1cyhjb25zdCBXVEY6OkF0b21pY1N0cmluZyYgZXZl
bnRUeXBlLCBXZWJCYXR0ZXJ5U3RhdHVzKiBzdGF0dXMpCit7CisgICAgaWYgKCFtX2NvbnRleHQp
CisgICAgICAgIHJldHVybjsKKworICAgIG1fY29udGV4dC0+c2VuZFRvQWxsUHJvY2Vzc2VzKE1l
c3NhZ2VzOjpXZWJCYXR0ZXJ5TWFuYWdlcjo6RGlkQ2hhbmdlQmF0dGVyeVN0YXR1cyhldmVudFR5
cGUsIHN0YXR1cy0+ZGF0YSgpKSk7Cit9CisKK3ZvaWQgV2ViQmF0dGVyeU1hbmFnZXJQcm94eTo6
cHJvdmlkZXJVcGRhdGVCYXR0ZXJ5U3RhdHVzKFdlYkJhdHRlcnlTdGF0dXMqIHN0YXR1cykKK3sK
KyAgICBpZiAoIW1fY29udGV4dCkKKyAgICAgICAgcmV0dXJuOworCisgICAgbV9jb250ZXh0LT5z
ZW5kVG9BbGxQcm9jZXNzZXMoTWVzc2FnZXM6OldlYkJhdHRlcnlNYW5hZ2VyOjpVcGRhdGVCYXR0
ZXJ5U3RhdHVzKHN0YXR1cy0+ZGF0YSgpKSk7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdAor
CisjZW5kaWYgLy8gRU5BQkxFKEJBVFRFUllfU1RBVFVTKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL1dlYkJhdHRlcnlNYW5hZ2VyUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9XZWJCYXR0ZXJ5TWFuYWdlclByb3h5LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMC4uOWZhNWJkYwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9XZWJCYXR0ZXJ5TWFuYWdlclByb3h5LmgKQEAgLTAsMCArMSw4NCBAQAorLyoK
KyAqIENvcHlyaWdodCAoQykgMjAxMiBJbnRlbCBDb3Jwb3JhdGlvbi4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEu
IFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0g
bXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICog
ICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhl
IGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExF
IElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1Mg
T1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAq
IFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZP
UiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNI
QUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkg
RElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICog
Q09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJP
Q1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNF
LCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVS
IENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENP
TlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBP
UiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJ
UyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VD
SCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBXZWJCYXR0ZXJ5TWFuYWdlclByb3h5X2gKKyNkZWZp
bmUgV2ViQmF0dGVyeU1hbmFnZXJQcm94eV9oCisKKyNpZiBFTkFCTEUoQkFUVEVSWV9TVEFUVVMp
CisKKyNpbmNsdWRlICJBUElPYmplY3QuaCIKKyNpbmNsdWRlICJNZXNzYWdlSUQuaCIKKyNpbmNs
dWRlICJXZWJCYXR0ZXJ5UHJvdmlkZXIuaCIKKyNpbmNsdWRlIDx3dGYvRm9yd2FyZC5oPgorCitu
YW1lc3BhY2UgQ29yZUlQQyB7CitjbGFzcyBBcmd1bWVudERlY29kZXI7CitjbGFzcyBDb25uZWN0
aW9uOworfQorCituYW1lc3BhY2UgV2ViS2l0IHsKKworY2xhc3MgV2ViQ29udGV4dDsKK2NsYXNz
IFdlYkJhdHRlcnlTdGF0dXM7CisKK2NsYXNzIFdlYkJhdHRlcnlNYW5hZ2VyUHJveHkgOiBwdWJs
aWMgQVBJT2JqZWN0IHsKK3B1YmxpYzoKKyAgICBzdGF0aWMgY29uc3QgVHlwZSBBUElUeXBlID0g
VHlwZUJhdHRlcnlNYW5hZ2VyOworCisgICAgc3RhdGljIFBhc3NSZWZQdHI8V2ViQmF0dGVyeU1h
bmFnZXJQcm94eT4gY3JlYXRlKFdlYkNvbnRleHQqKTsKKyAgICB2aXJ0dWFsIH5XZWJCYXR0ZXJ5
TWFuYWdlclByb3h5KCk7CisKKyAgICB2b2lkIGludmFsaWRhdGUoKTsKKyAgICB2b2lkIGNsZWFy
Q29udGV4dCgpIHsgbV9jb250ZXh0ID0gMDsgfQorCisgICAgdm9pZCBpbml0aWFsaXplUHJvdmlk
ZXIoY29uc3QgV0tCYXR0ZXJ5UHJvdmlkZXIqKTsKKworICAgIHZvaWQgcHJvdmlkZXJEaWRDaGFu
Z2VCYXR0ZXJ5U3RhdHVzKGNvbnN0IFdURjo6QXRvbWljU3RyaW5nJiwgV2ViQmF0dGVyeVN0YXR1
cyopOworICAgIHZvaWQgcHJvdmlkZXJVcGRhdGVCYXR0ZXJ5U3RhdHVzKFdlYkJhdHRlcnlTdGF0
dXMqKTsKKworICAgIHZvaWQgZGlkUmVjZWl2ZU1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbios
IENvcmVJUEM6Ok1lc3NhZ2VJRCwgQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyKik7CisKK3ByaXZh
dGU6CisgICAgZXhwbGljaXQgV2ViQmF0dGVyeU1hbmFnZXJQcm94eShXZWJDb250ZXh0Kik7CisK
KyAgICB2aXJ0dWFsIFR5cGUgdHlwZSgpIGNvbnN0IHsgcmV0dXJuIEFQSVR5cGU7IH0KKworICAg
IC8vIEltcGxlbWVudGVkIGluIGdlbmVyYXRlZCBXZWJCYXR0ZXJ5TWFuYWdlclByb3h5TWVzc2Fn
ZVJlY2VpdmVyLmNwcAorICAgIHZvaWQgZGlkUmVjZWl2ZVdlYkJhdHRlcnlNYW5hZ2VyUHJveHlN
ZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qLCBDb3JlSVBDOjpNZXNzYWdlSUQsIENvcmVJUEM6
OkFyZ3VtZW50RGVjb2RlciopOworCisgICAgdm9pZCBzdGFydFVwZGF0aW5nKCk7CisgICAgdm9p
ZCBzdG9wVXBkYXRpbmcoKTsKKworICAgIGJvb2wgbV9pc1VwZGF0aW5nOworCisgICAgV2ViQ29u
dGV4dCogbV9jb250ZXh0OworICAgIFdlYkJhdHRlcnlQcm92aWRlciBtX3Byb3ZpZGVyOworfTsK
KworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CisKKyNlbmRpZiAvLyBFTkFCTEUoQkFUVEVSWV9TVEFU
VVMpCisKKyNlbmRpZiAvLyBXZWJCYXR0ZXJ5TWFuYWdlclByb3h5X2gKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJCYXR0ZXJ5TWFuYWdlclByb3h5Lm1lc3NhZ2VzLmlu
IGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkJhdHRlcnlNYW5hZ2VyUHJveHkubWVzc2Fn
ZXMuaW4KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uODBkNTNkMwotLS0gL2Rl
di9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJCYXR0ZXJ5TWFuYWdlclBy
b3h5Lm1lc3NhZ2VzLmluCkBAIC0wLDAgKzEsMjYgQEAKKyMgQ29weXJpZ2h0IChDKSAyMDEyIElu
dGVsIENvcnBvcmF0aW9uLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorIworIyBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyMg
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zCisjIGFyZSBtZXQ6CisjIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNv
ZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorIyAgICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorIyAyLiAgUmVk
aXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyMgICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyMgICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVy
IG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisjCisjIFRISVMgU09G
VFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFT
IElTJycgQU5ECisjIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVECisjIFdBUlJBTlRJRVMgT0YgTUVSQ0hB
TlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKKyMgRElT
Q0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JT
IEJFIExJQUJMRSBGT1IKKyMgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJ
QUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTAorIyBEQU1BR0VTIChJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUgorIyBT
RVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVS
UlVQVElPTikgSE9XRVZFUgorIyBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZ
LCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLAorIyBPUiBUT1JUIChJTkNM
VURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0Yg
VEhFIFVTRQorIyBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLgorCittZXNzYWdlcyAtPiBXZWJCYXR0ZXJ5TWFuYWdlclBy
b3h5IHsKKyAgICBTdGFydFVwZGF0aW5nKCk7CisgICAgU3RvcFVwZGF0aW5nKCk7Cit9CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViQmF0dGVyeVByb3ZpZGVyLmNwcCBi
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJCYXR0ZXJ5UHJvdmlkZXIuY3BwCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjgyODQxNjAKLS0tIC9kZXYvbnVsbAorKysgYi9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViQmF0dGVyeVByb3ZpZGVyLmNwcApAQCAtMCwwICsx
LDU0IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEyIEludGVsIENvcnBvcmF0aW9uLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUg
bWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBi
aW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIg
aW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlk
ZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklE
RUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBB
TlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5E
IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4g
Tk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFC
TEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExB
UlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsg
TE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJ
T04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhF
UiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBO
RUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhF
IFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVk
ZSAiV2ViQmF0dGVyeVByb3ZpZGVyLmgiCisKKyNpZiBFTkFCTEUoQkFUVEVSWV9TVEFUVVMpCisK
KyNpbmNsdWRlICJXS0FQSUNhc3QuaCIKKyNpbmNsdWRlICJXZWJCYXR0ZXJ5TWFuYWdlclByb3h5
LmgiCisKK25hbWVzcGFjZSBXZWJLaXQgeworCit2b2lkIFdlYkJhdHRlcnlQcm92aWRlcjo6c3Rh
cnRVcGRhdGluZyhXZWJCYXR0ZXJ5TWFuYWdlclByb3h5KiBiYXR0ZXJ5TWFuYWdlcikKK3sKKyAg
ICBpZiAoIW1fY2xpZW50LnN0YXJ0VXBkYXRpbmcpCisgICAgICAgIHJldHVybjsKKworICAgIG1f
Y2xpZW50LnN0YXJ0VXBkYXRpbmcodG9BUEkoYmF0dGVyeU1hbmFnZXIpLCBtX2NsaWVudC5jbGll
bnRJbmZvKTsKK30KKwordm9pZCBXZWJCYXR0ZXJ5UHJvdmlkZXI6OnN0b3BVcGRhdGluZyhXZWJC
YXR0ZXJ5TWFuYWdlclByb3h5KiBiYXR0ZXJ5TWFuYWdlcikKK3sKKyAgICBpZiAoIW1fY2xpZW50
LnN0b3BVcGRhdGluZykKKyAgICAgICAgcmV0dXJuOworCisgICAgbV9jbGllbnQuc3RvcFVwZGF0
aW5nKHRvQVBJKGJhdHRlcnlNYW5hZ2VyKSwgbV9jbGllbnQuY2xpZW50SW5mbyk7Cit9CisKK30g
Ly8gbmFtZXNwYWNlIFdlYktpdAorCisjZW5kaWYgLy8gRU5BQkxFKEJBVFRFUllfU1RBVFVTKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkJhdHRlcnlQcm92aWRlci5o
IGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkJhdHRlcnlQcm92aWRlci5oCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmY1OTkwNjgKLS0tIC9kZXYvbnVsbAorKysgYi9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViQmF0dGVyeVByb3ZpZGVyLmgKQEAgLTAsMCArMSw0
OSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMiBJbnRlbCBDb3Jwb3JhdGlvbi4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh
bmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBl
cm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1l
dDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmlu
YXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGlu
IHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVk
IHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVE
IEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5Z
IEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBG
SVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5P
IEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxF
IEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZ
LCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExP
U1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9O
KSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIg
SU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVH
TElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBV
U0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJ
VFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBXZWJCYXR0ZXJ5UHJvdmlkZXJfaAor
I2RlZmluZSBXZWJCYXR0ZXJ5UHJvdmlkZXJfaAorCisjaWYgRU5BQkxFKEJBVFRFUllfU1RBVFVT
KQorCisjaW5jbHVkZSAiQVBJQ2xpZW50LmgiCisjaW5jbHVkZSAiV0tCYXR0ZXJ5TWFuYWdlci5o
IgorI2luY2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+CisKK25hbWVzcGFjZSBXZWJLaXQgeworCitjbGFz
cyBXZWJCYXR0ZXJ5TWFuYWdlclByb3h5OworCitjbGFzcyBXZWJCYXR0ZXJ5UHJvdmlkZXIgOiBw
dWJsaWMgQVBJQ2xpZW50PFdLQmF0dGVyeVByb3ZpZGVyLCBrV0tCYXR0ZXJ5UHJvdmlkZXJDdXJy
ZW50VmVyc2lvbj4geworcHVibGljOgorICAgIHZvaWQgc3RhcnRVcGRhdGluZyhXZWJCYXR0ZXJ5
TWFuYWdlclByb3h5Kik7CisgICAgdm9pZCBzdG9wVXBkYXRpbmcoV2ViQmF0dGVyeU1hbmFnZXJQ
cm94eSopOworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CisKKyNlbmRpZiAvLyBFTkFCTEUo
QkFUVEVSWV9TVEFUVVMpCisKKyNlbmRpZiAvLyBXZWJCYXR0ZXJ5UHJvdmlkZXJfaApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdDIvV2ViS2l0Mi5wcmkgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJLaXQy
LnByaQppbmRleCAyNGNjNWEyLi41NDUzZjUzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9X
ZWJLaXQyLnByaQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJLaXQyLnByaQpAQCAtMzYsNiArMzYs
NyBAQCBJTkNMVURFUEFUSCArPSBcCiAgICAgJCRTT1VSQ0VfRElSL1dlYlByb2Nlc3MgXAogICAg
ICQkU09VUkNFX0RJUi9XZWJQcm9jZXNzL0FwcGxpY2F0aW9uQ2FjaGUgXAogICAgICQkU09VUkNF
X0RJUi9XZWJQcm9jZXNzL0F1dGhlbnRpY2F0aW9uIFwKKyAgICAkJFNPVVJDRV9ESVIvV2ViUHJv
Y2Vzcy9CYXR0ZXJ5IFwKICAgICAkJFNPVVJDRV9ESVIvV2ViUHJvY2Vzcy9Db29raWVzIFwKICAg
ICAkJFNPVVJDRV9ESVIvV2ViUHJvY2Vzcy9Db29raWVzL3F0IFwKICAgICAkJFNPVVJDRV9ESVIv
V2ViUHJvY2Vzcy9Eb3dubG9hZHMgXApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJv
Y2Vzcy9CYXR0ZXJ5L1dlYkJhdHRlcnlNYW5hZ2VyLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlBy
b2Nlc3MvQmF0dGVyeS9XZWJCYXR0ZXJ5TWFuYWdlci5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMC4uMDRkZWM4NgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQy
L1dlYlByb2Nlc3MvQmF0dGVyeS9XZWJCYXR0ZXJ5TWFuYWdlci5jcHAKQEAgLTAsMCArMSwxMDIg
QEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTIgSW50ZWwgQ29ycG9yYXRpb24uIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6
CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFy
eSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0
aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3
aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBC
WSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBF
WFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklU
TkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBF
VkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBG
T1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwg
T1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NT
IE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikg
SE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElO
CisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJ
R0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNF
IE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZ
IE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJX
ZWJCYXR0ZXJ5TWFuYWdlci5oIgorCisjaWYgRU5BQkxFKEJBVFRFUllfU1RBVFVTKQorCisjaW5j
bHVkZSAiV2ViQmF0dGVyeU1hbmFnZXJQcm94eU1lc3NhZ2VzLmgiCisjaW5jbHVkZSAiV2ViUGFn
ZS5oIgorI2luY2x1ZGUgIldlYlByb2Nlc3MuaCIKKyNpbmNsdWRlIDxXZWJDb3JlL0JhdHRlcnlD
b250cm9sbGVyLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9CYXR0ZXJ5U3RhdHVzLmg+CisjaW5jbHVk
ZSA8V2ViQ29yZS9QYWdlLmg+CisKK3VzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOworCituYW1lc3Bh
Y2UgV2ViS2l0IHsKKworV2ViQmF0dGVyeU1hbmFnZXI6OldlYkJhdHRlcnlNYW5hZ2VyKFdlYlBy
b2Nlc3MqIHByb2Nlc3MpCisgICAgOiBtX3Byb2Nlc3MocHJvY2VzcykKK3sKK30KKworV2ViQmF0
dGVyeU1hbmFnZXI6On5XZWJCYXR0ZXJ5TWFuYWdlcigpCit7Cit9CisKK3ZvaWQgV2ViQmF0dGVy
eU1hbmFnZXI6OmRpZFJlY2VpdmVNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qIGNvbm5lY3Rp
b24sIENvcmVJUEM6Ok1lc3NhZ2VJRCBtZXNzYWdlSUQsIENvcmVJUEM6OkFyZ3VtZW50RGVjb2Rl
ciogYXJndW1lbnRzKQoreworICAgIGRpZFJlY2VpdmVXZWJCYXR0ZXJ5TWFuYWdlck1lc3NhZ2Uo
Y29ubmVjdGlvbiwgbWVzc2FnZUlELCBhcmd1bWVudHMpOworfQorCit2b2lkIFdlYkJhdHRlcnlN
YW5hZ2VyOjpyZWdpc3RlcldlYlBhZ2UoV2ViUGFnZSogcGFnZSkKK3sKKyAgICBib29sIHdhc0Vt
cHR5ID0gbV9wYWdlU2V0LmlzRW1wdHkoKTsKKworICAgIG1fcGFnZVNldC5hZGQocGFnZSk7CisK
KyAgICBpZiAod2FzRW1wdHkpCisgICAgICAgIG1fcHJvY2Vzcy0+Y29ubmVjdGlvbigpLT5zZW5k
KE1lc3NhZ2VzOjpXZWJCYXR0ZXJ5TWFuYWdlclByb3h5OjpTdGFydFVwZGF0aW5nKCksIDApOwor
fQorCit2b2lkIFdlYkJhdHRlcnlNYW5hZ2VyOjp1bnJlZ2lzdGVyV2ViUGFnZShXZWJQYWdlKiBw
YWdlKQoreworICAgIG1fcGFnZVNldC5yZW1vdmUocGFnZSk7CisKKyAgICBpZiAobV9wYWdlU2V0
LmlzRW1wdHkoKSkKKyAgICAgICAgbV9wcm9jZXNzLT5jb25uZWN0aW9uKCktPnNlbmQoTWVzc2Fn
ZXM6OldlYkJhdHRlcnlNYW5hZ2VyUHJveHk6OlN0b3BVcGRhdGluZygpLCAwKTsKK30KKwordm9p
ZCBXZWJCYXR0ZXJ5TWFuYWdlcjo6ZGlkQ2hhbmdlQmF0dGVyeVN0YXR1cyhjb25zdCBXVEY6OkF0
b21pY1N0cmluZyYgZXZlbnRUeXBlLCBjb25zdCBXZWJCYXR0ZXJ5U3RhdHVzOjpEYXRhJiBkYXRh
KQoreworICAgIFJlZlB0cjxCYXR0ZXJ5U3RhdHVzPiBzdGF0dXMgPSBCYXR0ZXJ5U3RhdHVzOjpj
cmVhdGUoZGF0YS5pc0NoYXJnaW5nLCBkYXRhLmNoYXJnaW5nVGltZSwgZGF0YS5kaXNjaGFyZ2lu
Z1RpbWUsIGRhdGEubGV2ZWwpOworCisgICAgSGFzaFNldDxXZWJQYWdlKj46OmNvbnN0X2l0ZXJh
dG9yIGl0ID0gbV9wYWdlU2V0LmJlZ2luKCk7CisgICAgSGFzaFNldDxXZWJQYWdlKj46OmNvbnN0
X2l0ZXJhdG9yIGVuZCA9IG1fcGFnZVNldC5lbmQoKTsKKyAgICBmb3IgKDsgaXQgIT0gZW5kOyAr
K2l0KSB7CisgICAgICAgIFdlYlBhZ2UqIHBhZ2UgPSAqaXQ7CisgICAgICAgIGlmIChwYWdlLT5j
b3JlUGFnZSgpKQorICAgICAgICAgICAgQmF0dGVyeUNvbnRyb2xsZXI6OmZyb20ocGFnZS0+Y29y
ZVBhZ2UoKSktPmRpZENoYW5nZUJhdHRlcnlTdGF0dXMoZXZlbnRUeXBlLCBzdGF0dXMuZ2V0KCkp
OworICAgIH0KK30KKwordm9pZCBXZWJCYXR0ZXJ5TWFuYWdlcjo6dXBkYXRlQmF0dGVyeVN0YXR1
cyhjb25zdCBXZWJCYXR0ZXJ5U3RhdHVzOjpEYXRhJiBkYXRhKQoreworICAgIFJlZlB0cjxCYXR0
ZXJ5U3RhdHVzPiBzdGF0dXMgPSBCYXR0ZXJ5U3RhdHVzOjpjcmVhdGUoZGF0YS5pc0NoYXJnaW5n
LCBkYXRhLmNoYXJnaW5nVGltZSwgZGF0YS5kaXNjaGFyZ2luZ1RpbWUsIGRhdGEubGV2ZWwpOwor
CisgICAgSGFzaFNldDxXZWJQYWdlKj46OmNvbnN0X2l0ZXJhdG9yIGl0ID0gbV9wYWdlU2V0LmJl
Z2luKCk7CisgICAgSGFzaFNldDxXZWJQYWdlKj46OmNvbnN0X2l0ZXJhdG9yIGVuZCA9IG1fcGFn
ZVNldC5lbmQoKTsKKyAgICBmb3IgKDsgaXQgIT0gZW5kOyArK2l0KSB7CisgICAgICAgIFdlYlBh
Z2UqIHBhZ2UgPSAqaXQ7CisgICAgICAgIGlmIChwYWdlLT5jb3JlUGFnZSgpKQorICAgICAgICAg
ICAgQmF0dGVyeUNvbnRyb2xsZXI6OmZyb20ocGFnZS0+Y29yZVBhZ2UoKSktPnVwZGF0ZUJhdHRl
cnlTdGF0dXMoc3RhdHVzLmdldCgpKTsKKyAgICB9Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYktp
dAorCisjZW5kaWYgLy8gRU5BQkxFKEJBVFRFUllfU1RBVFVTKQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdDIvV2ViUHJvY2Vzcy9CYXR0ZXJ5L1dlYkJhdHRlcnlNYW5hZ2VyLmggYi9Tb3VyY2Uv
V2ViS2l0Mi9XZWJQcm9jZXNzL0JhdHRlcnkvV2ViQmF0dGVyeU1hbmFnZXIuaApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi41MDk3MThkCi0tLSAvZGV2L251bGwKKysrIGIvU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9CYXR0ZXJ5L1dlYkJhdHRlcnlNYW5hZ2VyLmgKQEAgLTAs
MCArMSw3NSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMiBJbnRlbCBDb3Jwb3JhdGlvbi4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICog
YXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFp
biB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMg
aW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHBy
b3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBS
T1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBB
TkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZ
IEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQu
IElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUg
TElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhF
TVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklD
RVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJS
VVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdI
RVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJ
TkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9G
IFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9T
U0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBXZWJCYXR0ZXJ5TWFuYWdl
cl9oCisjZGVmaW5lIFdlYkJhdHRlcnlNYW5hZ2VyX2gKKworI2lmIEVOQUJMRShCQVRURVJZX1NU
QVRVUykKKworI2luY2x1ZGUgIk1lc3NhZ2VJRC5oIgorI2luY2x1ZGUgIldlYkJhdHRlcnlTdGF0
dXMuaCIKKyNpbmNsdWRlICJXZWJDb3JlQXJndW1lbnRDb2RlcnMuaCIKKyNpbmNsdWRlIDx3dGYv
SGFzaFNldC5oPgorI2luY2x1ZGUgPHd0Zi9Ob25jb3B5YWJsZS5oPgorI2luY2x1ZGUgPHd0Zi90
ZXh0L0F0b21pY1N0cmluZy5oPgorCituYW1lc3BhY2UgQ29yZUlQQyB7CitjbGFzcyBBcmd1bWVu
dERlY29kZXI7CitjbGFzcyBDb25uZWN0aW9uOworfQorCituYW1lc3BhY2UgV2ViS2l0IHsKKwor
Y2xhc3MgV2ViUGFnZTsKK2NsYXNzIFdlYlByb2Nlc3M7CisKK2NsYXNzIFdlYkJhdHRlcnlNYW5h
Z2VyIHsKKyAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShXZWJCYXR0ZXJ5TWFuYWdlcik7CisKK3B1
YmxpYzoKKyAgICBleHBsaWNpdCBXZWJCYXR0ZXJ5TWFuYWdlcihXZWJQcm9jZXNzKik7CisgICAg
fldlYkJhdHRlcnlNYW5hZ2VyKCk7CisKKyAgICB2b2lkIHJlZ2lzdGVyV2ViUGFnZShXZWJQYWdl
Kik7CisgICAgdm9pZCB1bnJlZ2lzdGVyV2ViUGFnZShXZWJQYWdlKik7CisKKyAgICB2b2lkIGRp
ZENoYW5nZUJhdHRlcnlTdGF0dXMoY29uc3QgV1RGOjpBdG9taWNTdHJpbmcmIGV2ZW50VHlwZSwg
Y29uc3QgV2ViQmF0dGVyeVN0YXR1czo6RGF0YSYpOworICAgIHZvaWQgdXBkYXRlQmF0dGVyeVN0
YXR1cyhjb25zdCBXZWJCYXR0ZXJ5U3RhdHVzOjpEYXRhJik7CisKKyAgICB2b2lkIGRpZFJlY2Vp
dmVNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qLCBDb3JlSVBDOjpNZXNzYWdlSUQsIENvcmVJ
UEM6OkFyZ3VtZW50RGVjb2RlciopOworCitwcml2YXRlOgorICAgIC8vIEltcGxlbWVudGVkIGlu
IGdlbmVyYXRlZCBXZWJCYXR0ZXJ5TWFuYWdlck1lc3NhZ2VSZWNlaXZlci5jcHAKKyAgICB2b2lk
IGRpZFJlY2VpdmVXZWJCYXR0ZXJ5TWFuYWdlck1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbios
IENvcmVJUEM6Ok1lc3NhZ2VJRCwgQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyKik7CisKKyAgICBX
ZWJQcm9jZXNzKiBtX3Byb2Nlc3M7CisgICAgSGFzaFNldDxXZWJQYWdlKj4gbV9wYWdlU2V0Owor
fTsKKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CisKKyNlbmRpZiAvLyBFTkFCTEUoQkFUVEVSWV9T
VEFUVVMpCisKKyNlbmRpZiAvLyBXZWJCYXR0ZXJ5TWFuYWdlcl9oCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0JhdHRlcnkvV2ViQmF0dGVyeU1hbmFnZXIubWVzc2FnZXMu
aW4gYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0JhdHRlcnkvV2ViQmF0dGVyeU1hbmFnZXIu
bWVzc2FnZXMuaW4KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYzFhMmFmOAot
LS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvQmF0dGVyeS9XZWJC
YXR0ZXJ5TWFuYWdlci5tZXNzYWdlcy5pbgpAQCAtMCwwICsxLDI2IEBACisjIENvcHlyaWdodCAo
QykgMjAxMiBJbnRlbCBDb3Jwb3JhdGlvbi4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyMKKyMgUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0CisjIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucworIyBhcmUgbWV0OgorIyAxLiAgUmVkaXN0cmlidXRpb25zIG9m
IHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMgICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4K
KyMgMi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUg
YWJvdmUgY29weXJpZ2h0CisjICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisjICAgICBkb2N1bWVudGF0aW9uIGFu
ZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorIwor
IyBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklC
VVRPUlMgYGBBUyBJUycnIEFORAorIyBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMs
IElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAorIyBXQVJSQU5USUVT
IE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0Ug
QVJFCisjIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENP
TlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SCisjIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVO
VEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwKKyMgREFNQUdFUyAoSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09P
RFMgT1IKKyMgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJ
TkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIKKyMgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9G
IExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwKKyMgT1Ig
VE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBX
QVkgT1VUIE9GIFRIRSBVU0UKKyMgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9G
IFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKworbWVzc2FnZXMgLT4gV2ViQmF0dGVy
eU1hbmFnZXIgeworICAgIERpZENoYW5nZUJhdHRlcnlTdGF0dXMoQXRvbWljU3RyaW5nIGV2ZW50
VHlwZSwgV2ViS2l0OjpXZWJCYXR0ZXJ5U3RhdHVzOjpEYXRhIHN0YXR1cyk7CisgICAgVXBkYXRl
QmF0dGVyeVN0YXR1cyhXZWJLaXQ6OldlYkJhdHRlcnlTdGF0dXM6OkRhdGEgc3RhdHVzKTsKK30K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2Vi
QmF0dGVyeUNsaWVudC5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBw
b3J0L1dlYkJhdHRlcnlDbGllbnQuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAuLjkxMDMzZmEKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNz
L1dlYkNvcmVTdXBwb3J0L1dlYkJhdHRlcnlDbGllbnQuY3BwCkBAIC0wLDAgKzEsNTcgQEAKKy8q
CisgKiBDb3B5cmlnaHQgKEMpIDIwMTIgSW50ZWwgQ29ycG9yYXRpb24uIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAx
LiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3Jt
IG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAq
ICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRo
ZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBM
RSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNT
IE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisg
KiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBG
T1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBT
SEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5Z
IERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAq
IENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBS
T0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVT
RSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZF
UiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBD
T05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0Ug
T1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRI
SVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNV
Q0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJXZWJCYXR0
ZXJ5Q2xpZW50LmgiCisKKyNpZiBFTkFCTEUoQkFUVEVSWV9TVEFUVVMpCisKKyNpbmNsdWRlICJX
ZWJCYXR0ZXJ5TWFuYWdlci5oIgorI2luY2x1ZGUgIldlYlBhZ2UuaCIKKyNpbmNsdWRlICJXZWJQ
cm9jZXNzLmgiCisKK3VzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOworCituYW1lc3BhY2UgV2ViS2l0
IHsKKwordm9pZCBXZWJCYXR0ZXJ5Q2xpZW50OjpzdGFydFVwZGF0aW5nKCkKK3sKKyAgICBXZWJQ
cm9jZXNzOjpzaGFyZWQoKS5iYXR0ZXJ5TWFuYWdlcigpLnJlZ2lzdGVyV2ViUGFnZShtX3BhZ2Up
OworfQorCit2b2lkIFdlYkJhdHRlcnlDbGllbnQ6OnN0b3BVcGRhdGluZygpCit7CisgICAgV2Vi
UHJvY2Vzczo6c2hhcmVkKCkuYmF0dGVyeU1hbmFnZXIoKS51bnJlZ2lzdGVyV2ViUGFnZShtX3Bh
Z2UpOworfQorCit2b2lkIFdlYkJhdHRlcnlDbGllbnQ6OmJhdHRlcnlDb250cm9sbGVyRGVzdHJv
eWVkKCkKK3sKKyAgICBXZWJQcm9jZXNzOjpzaGFyZWQoKS5iYXR0ZXJ5TWFuYWdlcigpLnVucmVn
aXN0ZXJXZWJQYWdlKG1fcGFnZSk7CisgICAgZGVsZXRlIHRoaXM7Cit9CisKK30gLy8gbmFtZXNw
YWNlIFdlYktpdAorCisjZW5kaWYgLy8gRU5BQkxFKEJBVFRFUllfU1RBVFVTKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJCYXR0ZXJ5Q2xp
ZW50LmggYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkJhdHRl
cnlDbGllbnQuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5iMjYwYzYyCi0t
LSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9y
dC9XZWJCYXR0ZXJ5Q2xpZW50LmgKQEAgLTAsMCArMSw1OCBAQAorLyoKKyAqIENvcHlyaWdodCAo
QykgMjAxMiBJbnRlbCBDb3Jwb3JhdGlvbi4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9u
cyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2Ug
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlv
biBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4K
KyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBD
T05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIK
KyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4g
T1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVD
VCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBE
QU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAq
IFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9G
SVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04g
QU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1Qg
TElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisg
KiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZF
TiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8K
KworI2lmbmRlZiBXZWJCYXR0ZXJ5Q2xpZW50X2gKKyNkZWZpbmUgV2ViQmF0dGVyeUNsaWVudF9o
CisKKyNpZiBFTkFCTEUoQkFUVEVSWV9TVEFUVVMpCisKKyNpbmNsdWRlIDxXZWJDb3JlL0JhdHRl
cnlDbGllbnQuaD4KKworbmFtZXNwYWNlIFdlYktpdCB7CisKK2NsYXNzIFdlYlBhZ2U7CisKK2Ns
YXNzIFdlYkJhdHRlcnlDbGllbnQgOiBwdWJsaWMgV2ViQ29yZTo6QmF0dGVyeUNsaWVudCB7Citw
dWJsaWM6CisgICAgV2ViQmF0dGVyeUNsaWVudChXZWJQYWdlKiBwYWdlKQorICAgICAgICA6IG1f
cGFnZShwYWdlKQorICAgIHsKKyAgICB9CisKKyAgICB2aXJ0dWFsIH5XZWJCYXR0ZXJ5Q2xpZW50
KCkgeyB9CisKK3ByaXZhdGU6CisgICAgdmlydHVhbCB2b2lkIHN0YXJ0VXBkYXRpbmcoKSBPVkVS
UklERTsKKyAgICB2aXJ0dWFsIHZvaWQgc3RvcFVwZGF0aW5nKCkgT1ZFUlJJREU7CisgICAgdmly
dHVhbCB2b2lkIGJhdHRlcnlDb250cm9sbGVyRGVzdHJveWVkKCkgT1ZFUlJJREU7CisKKyAgICBX
ZWJQYWdlKiBtX3BhZ2U7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKKworI2VuZGlmIC8v
IEVOQUJMRShCQVRURVJZX1NUQVRVUykKKworI2VuZGlmIC8vIFdlYkJhdHRlcnlDbGllbnRfaApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmNwcCBiL1Nv
dXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5jcHAKaW5kZXggMmIwMzgyZC4uZmRm
MjVkNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmNw
cAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuY3BwCkBAIC0xNDUs
NiArMTQ1LDkgQEAgV2ViUHJvY2Vzczo6V2ViUHJvY2VzcygpCiAjZW5kaWYKICAgICAsIG1fdGV4
dENoZWNrZXJTdGF0ZSgpCiAgICAgLCBtX2dlb2xvY2F0aW9uTWFuYWdlcih0aGlzKQorI2lmIEVO
QUJMRShCQVRURVJZX1NUQVRVUykKKyAgICAsIG1fYmF0dGVyeU1hbmFnZXIodGhpcykKKyNlbmRp
ZgogI2lmIEVOQUJMRShOT1RJRklDQVRJT05TKSB8fCBFTkFCTEUoTEVHQUNZX05PVElGSUNBVElP
TlMpCiAgICAgLCBtX25vdGlmaWNhdGlvbk1hbmFnZXIodGhpcykKICNlbmRpZgpAQCAtNjMxLDYg
KzYzNCwxMyBAQCB2b2lkIFdlYlByb2Nlc3M6OmRpZFJlY2VpdmVNZXNzYWdlKENvcmVJUEM6OkNv
bm5lY3Rpb24qIGNvbm5lY3Rpb24sIENvcmVJUEM6Ok1lcwogICAgICAgICByZXR1cm47CiAgICAg
fQogCisjaWYgRU5BQkxFKEJBVFRFUllfU1RBVFVTKQorICAgIGlmIChtZXNzYWdlSUQuaXM8Q29y
ZUlQQzo6TWVzc2FnZUNsYXNzV2ViQmF0dGVyeU1hbmFnZXI+KCkpIHsKKyAgICAgICAgbV9iYXR0
ZXJ5TWFuYWdlci5kaWRSZWNlaXZlTWVzc2FnZShjb25uZWN0aW9uLCBtZXNzYWdlSUQsIGFyZ3Vt
ZW50cyk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisjZW5kaWYKKwogICAgIGlmIChtZXNzYWdl
SUQuaXM8Q29yZUlQQzo6TWVzc2FnZUNsYXNzV2ViSWNvbkRhdGFiYXNlUHJveHk+KCkpIHsKICAg
ICAgICAgbV9pY29uRGF0YWJhc2VQcm94eS5kaWRSZWNlaXZlTWVzc2FnZShjb25uZWN0aW9uLCBt
ZXNzYWdlSUQsIGFyZ3VtZW50cyk7CiAgICAgICAgIHJldHVybjsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5oIGIvU291cmNlL1dlYktpdDIvV2ViUHJv
Y2Vzcy9XZWJQcm9jZXNzLmgKaW5kZXggOTg2Y2UzNi4uY2MwYTdmOSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmgKKysrIGIvU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmgKQEAgLTU3LDYgKzU3LDEwIEBAIGNsYXNzIFFOZXR3b3Jr
QWNjZXNzTWFuYWdlcjsKICNpbmNsdWRlIDxkaXNwYXRjaC9kaXNwYXRjaC5oPgogI2VuZGlmCiAK
KyNpZiBFTkFCTEUoQkFUVEVSWV9TVEFUVVMpCisjaW5jbHVkZSAiV2ViQmF0dGVyeU1hbmFnZXIu
aCIKKyNlbmRpZgorCiAjaWYgRU5BQkxFKE5PVElGSUNBVElPTlMpIHx8IEVOQUJMRShMRUdBQ1lf
Tk9USUZJQ0FUSU9OUykKICNpbmNsdWRlICJXZWJOb3RpZmljYXRpb25NYW5hZ2VyLmgiCiAjZW5k
aWYKQEAgLTE0Miw2ICsxNDYsMTAgQEAgcHVibGljOgogCiAgICAgLy8gR2VvbG9jYXRpb24KICAg
ICBXZWJHZW9sb2NhdGlvbk1hbmFnZXImIGdlb2xvY2F0aW9uTWFuYWdlcigpIHsgcmV0dXJuIG1f
Z2VvbG9jYXRpb25NYW5hZ2VyOyB9CisKKyNpZiBFTkFCTEUoQkFUVEVSWV9TVEFUVVMpCisgICAg
V2ViQmF0dGVyeU1hbmFnZXImIGJhdHRlcnlNYW5hZ2VyKCkgeyByZXR1cm4gbV9iYXR0ZXJ5TWFu
YWdlcjsgfQorI2VuZGlmCiAgICAgCiAjaWYgRU5BQkxFKE5PVElGSUNBVElPTlMpIHx8IEVOQUJM
RShMRUdBQ1lfTk9USUZJQ0FUSU9OUykKICAgICBXZWJOb3RpZmljYXRpb25NYW5hZ2VyJiBub3Rp
ZmljYXRpb25NYW5hZ2VyKCkgeyByZXR1cm4gbV9ub3RpZmljYXRpb25NYW5hZ2VyOyB9CkBAIC0y
ODYsNiArMjk0LDkgQEAgcHJpdmF0ZToKIAogICAgIFRleHRDaGVja2VyU3RhdGUgbV90ZXh0Q2hl
Y2tlclN0YXRlOwogICAgIFdlYkdlb2xvY2F0aW9uTWFuYWdlciBtX2dlb2xvY2F0aW9uTWFuYWdl
cjsKKyNpZiBFTkFCTEUoQkFUVEVSWV9TVEFUVVMpCisgICAgV2ViQmF0dGVyeU1hbmFnZXIgbV9i
YXR0ZXJ5TWFuYWdlcjsKKyNlbmRpZgogI2lmIEVOQUJMRShOT1RJRklDQVRJT05TKSB8fCBFTkFC
TEUoTEVHQUNZX05PVElGSUNBVElPTlMpCiAgICAgV2ViTm90aWZpY2F0aW9uTWFuYWdlciBtX25v
dGlmaWNhdGlvbk1hbmFnZXI7CiAjZW5kaWYK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>148584</attachid>
            <date>2012-06-20 09:34:57 -0700</date>
            <delta_ts>2012-06-20 22:57:46 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>89558_battery_status_wk2.patch</filename>
            <type>text/plain</type>
            <size>59387</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NNYWtlTGlzdHMudHh0IGIvU291cmNlL1dlYktp
dDIvQ01ha2VMaXN0cy50eHQKaW5kZXggNDVkYmUyNC4uZmU1MTQ4NSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdDIvQ01ha2VMaXN0cy50eHQKKysrIGIvU291cmNlL1dlYktpdDIvQ01ha2VMaXN0
cy50eHQKQEAgLTIyLDYgKzIyLDcgQEAgU0VUKFdlYktpdDJfSU5DTFVERV9ESVJFQ1RPUklFUwog
ICAgICIke1dFQktJVDJfRElSfS9XZWJQcm9jZXNzIgogICAgICIke1dFQktJVDJfRElSfS9XZWJQ
cm9jZXNzL0FwcGxpY2F0aW9uQ2FjaGUiCiAgICAgIiR7V0VCS0lUMl9ESVJ9L1dlYlByb2Nlc3Mv
QXV0aGVudGljYXRpb24iCisgICAgIiR7V0VCS0lUMl9ESVJ9L1dlYlByb2Nlc3MvQmF0dGVyeSIK
ICAgICAiJHtXRUJLSVQyX0RJUn0vV2ViUHJvY2Vzcy9Db29raWVzIgogICAgICIke1dFQktJVDJf
RElSfS9XZWJQcm9jZXNzL0Rvd25sb2FkcyIKICAgICAiJHtXRUJLSVQyX0RJUn0vV2ViUHJvY2Vz
cy9GdWxsU2NyZWVuIgpAQCAtMTM3LDYgKzEzOCw3IEBAIFNFVChXZWJLaXQyX1NPVVJDRVMKICAg
ICBTaGFyZWQvVXBkYXRlSW5mby5jcHAKICAgICBTaGFyZWQvVmlzaXRlZExpbmtUYWJsZS5jcHAK
ICAgICBTaGFyZWQvV2ViQmFja0ZvcndhcmRMaXN0SXRlbS5jcHAKKyAgICBTaGFyZWQvV2ViQmF0
dGVyeVN0YXR1cy5jcHAKICAgICBTaGFyZWQvV2ViQ29ubmVjdGlvbi5jcHAKICAgICBTaGFyZWQv
V2ViQ29ubmVjdGlvbkNsaWVudC5jcHAKICAgICBTaGFyZWQvV2ViQ29udGV4dE1lbnVJdGVtLmNw
cApAQCAtMjE0LDYgKzIxNiw4IEBAIFNFVChXZWJLaXQyX1NPVVJDRVMKICAgICBVSVByb2Nlc3Mv
VmlzaXRlZExpbmtQcm92aWRlci5jcHAKICAgICBVSVByb2Nlc3MvV2ViQXBwbGljYXRpb25DYWNo
ZU1hbmFnZXJQcm94eS5jcHAKICAgICBVSVByb2Nlc3MvV2ViQmFja0ZvcndhcmRMaXN0LmNwcAor
ICAgIFVJUHJvY2Vzcy9XZWJCYXR0ZXJ5TWFuYWdlclByb3h5LmNwcAorICAgIFVJUHJvY2Vzcy9X
ZWJCYXR0ZXJ5UHJvdmlkZXIuY3BwCiAgICAgVUlQcm9jZXNzL1dlYkNvbm5lY3Rpb25Ub1dlYlBy
b2Nlc3MuY3BwCiAgICAgVUlQcm9jZXNzL1dlYkNvbnRleHQuY3BwCiAgICAgVUlQcm9jZXNzL1dl
YkNvbnRleHRDb25uZWN0aW9uQ2xpZW50LmNwcApAQCAtMjY0LDYgKzI2OCw3IEBAIFNFVChXZWJL
aXQyX1NPVVJDRVMKICAgICBVSVByb2Nlc3MvQVBJL0MvV0tBdXRoZW50aWNhdGlvbkRlY2lzaW9u
TGlzdGVuZXIuY3BwCiAgICAgVUlQcm9jZXNzL0FQSS9DL1dLQmFja0ZvcndhcmRMaXN0LmNwcAog
ICAgIFVJUHJvY2Vzcy9BUEkvQy9XS0JhY2tGb3J3YXJkTGlzdEl0ZW0uY3BwCisgICAgVUlQcm9j
ZXNzL0FQSS9DL1dLQmF0dGVyeU1hbmFnZXIuY3BwCiAgICAgVUlQcm9jZXNzL0FQSS9DL1dLQ29u
dGV4dC5jcHAKICAgICBVSVByb2Nlc3MvQVBJL0MvV0tDb29raWVNYW5hZ2VyLmNwcAogICAgIFVJ
UHJvY2Vzcy9BUEkvQy9XS0NyZWRlbnRpYWwuY3BwCkBAIC0zMjcsNiArMzMyLDggQEAgU0VUKFdl
YktpdDJfU09VUkNFUwogCiAgICAgV2ViUHJvY2Vzcy9BdXRoZW50aWNhdGlvbi9BdXRoZW50aWNh
dGlvbk1hbmFnZXIuY3BwCiAKKyAgICBXZWJQcm9jZXNzL0JhdHRlcnkvV2ViQmF0dGVyeU1hbmFn
ZXIuY3BwCisKICAgICBXZWJQcm9jZXNzL0Nvb2tpZXMvV2ViQ29va2llTWFuYWdlci5jcHAKIAog
ICAgIFdlYlByb2Nlc3MvRG93bmxvYWRzL0Rvd25sb2FkLmNwcApAQCAtNDAwLDYgKzQwNyw3IEBA
IFNFVChXZWJLaXQyX1NPVVJDRVMKIAogICAgIFdlYlByb2Nlc3MvUmVzb3VyY2VDYWNoZS9XZWJS
ZXNvdXJjZUNhY2hlTWFuYWdlci5jcHAKIAorICAgIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQv
V2ViQmF0dGVyeUNsaWVudC5jcHAKICAgICBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNo
cm9tZUNsaWVudC5jcHAKICAgICBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNvbnRleHRN
ZW51Q2xpZW50LmNwcAogICAgIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRGF0YWJhc2VN
YW5hZ2VyLmNwcApAQCAtNDQ1LDYgKzQ1Myw3IEBAIFNFVChXZWJLaXQyX01FU1NBR0VTX0lOX0ZJ
TEVTCiAgICAgVUlQcm9jZXNzL0RyYXdpbmdBcmVhUHJveHkubWVzc2FnZXMuaW4KICAgICBVSVBy
b2Nlc3MvTGF5ZXJUcmVlSG9zdFByb3h5Lm1lc3NhZ2VzLmluCiAgICAgVUlQcm9jZXNzL1dlYkFw
cGxpY2F0aW9uQ2FjaGVNYW5hZ2VyUHJveHkubWVzc2FnZXMuaW4KKyAgICBVSVByb2Nlc3MvV2Vi
QmF0dGVyeU1hbmFnZXJQcm94eS5tZXNzYWdlcy5pbgogICAgIFVJUHJvY2Vzcy9XZWJDb250ZXh0
Lm1lc3NhZ2VzLmluCiAgICAgVUlQcm9jZXNzL1dlYkNvb2tpZU1hbmFnZXJQcm94eS5tZXNzYWdl
cy5pbgogICAgIFVJUHJvY2Vzcy9XZWJEYXRhYmFzZU1hbmFnZXJQcm94eS5tZXNzYWdlcy5pbgpA
QCAtNDcwLDYgKzQ3OSw4IEBAIFNFVChXZWJLaXQyX01FU1NBR0VTX0lOX0ZJTEVTCiAKICAgICBX
ZWJQcm9jZXNzL0F1dGhlbnRpY2F0aW9uL0F1dGhlbnRpY2F0aW9uTWFuYWdlci5tZXNzYWdlcy5p
bgogCisgICAgV2ViUHJvY2Vzcy9CYXR0ZXJ5L1dlYkJhdHRlcnlNYW5hZ2VyLm1lc3NhZ2VzLmlu
CisKICAgICBXZWJQcm9jZXNzL0Nvb2tpZXMvV2ViQ29va2llTWFuYWdlci5tZXNzYWdlcy5pbgog
CiAgICAgV2ViUHJvY2Vzcy9GdWxsU2NyZWVuL1dlYkZ1bGxTY3JlZW5NYW5hZ2VyLm1lc3NhZ2Vz
LmluCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0
Mi9DaGFuZ2VMb2cKaW5kZXggYWNjMTQwNy4uMGRhYTZjMSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdDIvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsx
LDEwMCBAQAorMjAxMi0wNi0yMCAgQ2hyaXN0b3BoZSBEdW1leiAgPGNocmlzdG9waGUuZHVtZXpA
aW50ZWwuY29tPgorCisgICAgICAgIFtXSzJdIEFkZCBzdXBwb3J0IGZvciBCYXR0ZXJ5IFN0YXR1
cyBBUEkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTg5
NTU4CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRk
IHN1cHBvcnQgZm9yIEJhdHRlcnkgU3RhdHVzIEFQSSB0byBXZWJLaXQyLgorCisgICAgICAgICog
Q01ha2VMaXN0cy50eHQ6CisgICAgICAgICogRGVyaXZlZFNvdXJjZXMucHJpOgorICAgICAgICAq
IEdOVW1ha2VmaWxlLmFtOgorICAgICAgICAqIEdOVW1ha2VmaWxlLmxpc3QuYW06CisgICAgICAg
ICogUGxhdGZvcm0vQ29yZUlQQy9NZXNzYWdlSUQuaDoKKyAgICAgICAgKiBTaGFyZWQvQVBJL2Mv
V0tCYXNlLmg6CisgICAgICAgICogU2hhcmVkL0FQSU9iamVjdC5oOgorICAgICAgICAqIFNoYXJl
ZC9XZWJCYXR0ZXJ5U3RhdHVzLmNwcDogQWRkZWQuCisgICAgICAgIChXZWJLaXQpOgorICAgICAg
ICAoV2ViS2l0OjpXZWJCYXR0ZXJ5U3RhdHVzOjpXZWJCYXR0ZXJ5U3RhdHVzKToKKyAgICAgICAg
KFdlYktpdDo6V2ViQmF0dGVyeVN0YXR1czo6fldlYkJhdHRlcnlTdGF0dXMpOgorICAgICAgICAo
V2ViS2l0OjpXZWJCYXR0ZXJ5U3RhdHVzOjpEYXRhOjplbmNvZGUpOgorICAgICAgICAoV2ViS2l0
OjpXZWJCYXR0ZXJ5U3RhdHVzOjpEYXRhOjpkZWNvZGUpOgorICAgICAgICAqIFNoYXJlZC9XZWJC
YXR0ZXJ5U3RhdHVzLmg6IEFkZGVkLgorICAgICAgICAoV2ViS2l0KToKKyAgICAgICAgKFdlYkJh
dHRlcnlTdGF0dXMpOgorICAgICAgICAoRGF0YSk6CisgICAgICAgIChXZWJLaXQ6OldlYkJhdHRl
cnlTdGF0dXM6OmNyZWF0ZSk6CisgICAgICAgIChXZWJLaXQ6OldlYkJhdHRlcnlTdGF0dXM6Omlz
Q2hhcmdpbmcpOgorICAgICAgICAoV2ViS2l0OjpXZWJCYXR0ZXJ5U3RhdHVzOjpjaGFyZ2luZ1Rp
bWUpOgorICAgICAgICAoV2ViS2l0OjpXZWJCYXR0ZXJ5U3RhdHVzOjpkaXNjaGFyZ2luZ1RpbWUp
OgorICAgICAgICAoV2ViS2l0OjpXZWJCYXR0ZXJ5U3RhdHVzOjpsZXZlbCk6CisgICAgICAgIChX
ZWJLaXQ6OldlYkJhdHRlcnlTdGF0dXM6OmRhdGEpOgorICAgICAgICAoV2ViS2l0OjpXZWJCYXR0
ZXJ5U3RhdHVzOjp0eXBlKToKKyAgICAgICAgKiBUYXJnZXQucHJpOgorICAgICAgICAqIFVJUHJv
Y2Vzcy9BUEkvQy9XS0FQSUNhc3QuaDoKKyAgICAgICAgKFdlYktpdCk6CisgICAgICAgICogVUlQ
cm9jZXNzL0FQSS9DL1dLQmF0dGVyeU1hbmFnZXIuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdLQmF0
dGVyeU1hbmFnZXJHZXRUeXBlSUQpOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQy9XS0JhdHRl
cnlNYW5hZ2VyLmg6IEFkZGVkLgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJCYXR0ZXJ5TWFuYWdl
clByb3h5LmNwcDogQWRkZWQuCisgICAgICAgIChXZWJLaXQpOgorICAgICAgICAoV2ViS2l0OjpX
ZWJCYXR0ZXJ5TWFuYWdlclByb3h5OjpjcmVhdGUpOgorICAgICAgICAoV2ViS2l0OjpXZWJCYXR0
ZXJ5TWFuYWdlclByb3h5OjpXZWJCYXR0ZXJ5TWFuYWdlclByb3h5KToKKyAgICAgICAgKFdlYktp
dDo6V2ViQmF0dGVyeU1hbmFnZXJQcm94eTo6fldlYkJhdHRlcnlNYW5hZ2VyUHJveHkpOgorICAg
ICAgICAoV2ViS2l0OjpXZWJCYXR0ZXJ5TWFuYWdlclByb3h5OjppbnZhbGlkYXRlKToKKyAgICAg
ICAgKFdlYktpdDo6V2ViQmF0dGVyeU1hbmFnZXJQcm94eTo6aW5pdGlhbGl6ZVByb3ZpZGVyKToK
KyAgICAgICAgKFdlYktpdDo6V2ViQmF0dGVyeU1hbmFnZXJQcm94eTo6ZGlkUmVjZWl2ZU1lc3Nh
Z2UpOgorICAgICAgICAoV2ViS2l0OjpXZWJCYXR0ZXJ5TWFuYWdlclByb3h5OjpzdGFydFVwZGF0
aW5nKToKKyAgICAgICAgKFdlYktpdDo6V2ViQmF0dGVyeU1hbmFnZXJQcm94eTo6c3RvcFVwZGF0
aW5nKToKKyAgICAgICAgKFdlYktpdDo6V2ViQmF0dGVyeU1hbmFnZXJQcm94eTo6cHJvdmlkZXJE
aWRDaGFuZ2VCYXR0ZXJ5U3RhdHVzKToKKyAgICAgICAgKFdlYktpdDo6V2ViQmF0dGVyeU1hbmFn
ZXJQcm94eTo6cHJvdmlkZXJVcGRhdGVCYXR0ZXJ5U3RhdHVzKToKKyAgICAgICAgKiBVSVByb2Nl
c3MvV2ViQmF0dGVyeU1hbmFnZXJQcm94eS5oOiBBZGRlZC4KKyAgICAgICAgKENvcmVJUEMpOgor
ICAgICAgICAoV2ViS2l0KToKKyAgICAgICAgKFdlYkJhdHRlcnlNYW5hZ2VyUHJveHkpOgorICAg
ICAgICAoV2ViS2l0OjpXZWJCYXR0ZXJ5TWFuYWdlclByb3h5OjpjbGVhckNvbnRleHQpOgorICAg
ICAgICAoV2ViS2l0OjpXZWJCYXR0ZXJ5TWFuYWdlclByb3h5Ojp0eXBlKToKKyAgICAgICAgKiBV
SVByb2Nlc3MvV2ViQmF0dGVyeU1hbmFnZXJQcm94eS5tZXNzYWdlcy5pbjogQWRkZWQuCisgICAg
ICAgICogVUlQcm9jZXNzL1dlYkJhdHRlcnlQcm92aWRlci5jcHA6IEFkZGVkLgorICAgICAgICAo
V2ViS2l0KToKKyAgICAgICAgKFdlYktpdDo6V2ViQmF0dGVyeVByb3ZpZGVyOjpzdGFydFVwZGF0
aW5nKToKKyAgICAgICAgKFdlYktpdDo6V2ViQmF0dGVyeVByb3ZpZGVyOjpzdG9wVXBkYXRpbmcp
OgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJCYXR0ZXJ5UHJvdmlkZXIuaDogQWRkZWQuCisgICAg
ICAgIChXZWJLaXQpOgorICAgICAgICAoV2ViQmF0dGVyeVByb3ZpZGVyKToKKyAgICAgICAgKiBX
ZWJLaXQyLnByaToKKyAgICAgICAgKiBXZWJQcm9jZXNzL0JhdHRlcnkvV2ViQmF0dGVyeU1hbmFn
ZXIuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYktpdCk6CisgICAgICAgIChXZWJLaXQ6OldlYkJh
dHRlcnlNYW5hZ2VyOjpXZWJCYXR0ZXJ5TWFuYWdlcik6CisgICAgICAgIChXZWJLaXQ6OldlYkJh
dHRlcnlNYW5hZ2VyOjp+V2ViQmF0dGVyeU1hbmFnZXIpOgorICAgICAgICAoV2ViS2l0OjpXZWJC
YXR0ZXJ5TWFuYWdlcjo6ZGlkUmVjZWl2ZU1lc3NhZ2UpOgorICAgICAgICAoV2ViS2l0OjpXZWJC
YXR0ZXJ5TWFuYWdlcjo6cmVnaXN0ZXJXZWJQYWdlKToKKyAgICAgICAgKFdlYktpdDo6V2ViQmF0
dGVyeU1hbmFnZXI6OnVucmVnaXN0ZXJXZWJQYWdlKToKKyAgICAgICAgKFdlYktpdDo6V2ViQmF0
dGVyeU1hbmFnZXI6OmRpZENoYW5nZUJhdHRlcnlTdGF0dXMpOgorICAgICAgICAoV2ViS2l0OjpX
ZWJCYXR0ZXJ5TWFuYWdlcjo6dXBkYXRlQmF0dGVyeVN0YXR1cyk6CisgICAgICAgICogV2ViUHJv
Y2Vzcy9CYXR0ZXJ5L1dlYkJhdHRlcnlNYW5hZ2VyLmg6IEFkZGVkLgorICAgICAgICAoQ29yZUlQ
Qyk6CisgICAgICAgIChXZWJLaXQpOgorICAgICAgICAoV2ViQmF0dGVyeU1hbmFnZXIpOgorICAg
ICAgICAqIFdlYlByb2Nlc3MvQmF0dGVyeS9XZWJCYXR0ZXJ5TWFuYWdlci5tZXNzYWdlcy5pbjog
QWRkZWQuCisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJCYXR0ZXJ5Q2xp
ZW50LmNwcDogQWRkZWQuCisgICAgICAgIChXZWJLaXQpOgorICAgICAgICAoV2ViS2l0OjpXZWJC
YXR0ZXJ5Q2xpZW50OjpzdGFydFVwZGF0aW5nKToKKyAgICAgICAgKFdlYktpdDo6V2ViQmF0dGVy
eUNsaWVudDo6c3RvcFVwZGF0aW5nKToKKyAgICAgICAgKFdlYktpdDo6V2ViQmF0dGVyeUNsaWVu
dDo6YmF0dGVyeUNvbnRyb2xsZXJEZXN0cm95ZWQpOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2Vi
Q29yZVN1cHBvcnQvV2ViQmF0dGVyeUNsaWVudC5oOiBBZGRlZC4KKyAgICAgICAgKFdlYktpdCk6
CisgICAgICAgIChXZWJCYXR0ZXJ5Q2xpZW50KToKKyAgICAgICAgKFdlYktpdDo6V2ViQmF0dGVy
eUNsaWVudDo6V2ViQmF0dGVyeUNsaWVudCk6CisgICAgICAgIChXZWJLaXQ6OldlYkJhdHRlcnlD
bGllbnQ6On5XZWJCYXR0ZXJ5Q2xpZW50KToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlByb2Nl
c3MuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzOjpXZWJQcm9jZXNzKToKKyAgICAg
ICAgKFdlYktpdDo6V2ViUHJvY2Vzczo6ZGlkUmVjZWl2ZU1lc3NhZ2UpOgorICAgICAgICAqIFdl
YlByb2Nlc3MvV2ViUHJvY2Vzcy5oOgorICAgICAgICAoV2ViUHJvY2Vzcyk6CisgICAgICAgIChX
ZWJLaXQ6OldlYlByb2Nlc3M6OmJhdHRlcnlNYW5hZ2VyKToKKwogMjAxMi0wNi0yMCAgQWxleGlz
IE1lbmFyZCAgPGFsZXhpcy5tZW5hcmRAb3BlbmJvc3NhLm9yZz4KIAogICAgICAgICBSRUdSRVNT
SU9OICgxMjA3MDUpIDogTGF5ZXJUcmVlSG9zdFF0IGFzc2VydHMgaW4gZGVidWcuCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0Mi9EZXJpdmVkU291cmNlcy5wcmkgYi9Tb3VyY2UvV2ViS2l0Mi9E
ZXJpdmVkU291cmNlcy5wcmkKaW5kZXggMGE1MGM3ZC4uNTBhNTg5OSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdDIvRGVyaXZlZFNvdXJjZXMucHJpCisrKyBiL1NvdXJjZS9XZWJLaXQyL0Rlcml2
ZWRTb3VyY2VzLnByaQpAQCAtNDAsNiArNDAsNyBAQCBWUEFUSCA9IFwKICAgICBQbHVnaW5Qcm9j
ZXNzIFwKICAgICBXZWJQcm9jZXNzL0FwcGxpY2F0aW9uQ2FjaGUgXAogICAgIFdlYlByb2Nlc3Mv
QXV0aGVudGljYXRpb24gXAorICAgIFdlYlByb2Nlc3MvQmF0dGVyeSBcCiAgICAgV2ViUHJvY2Vz
cy9Db29raWVzIFwKICAgICBXZWJQcm9jZXNzL0Z1bGxTY3JlZW4gXAogICAgIFdlYlByb2Nlc3Mv
R2VvbG9jYXRpb24gXApAQCAtNzEsNiArNzIsOCBAQCBNRVNTQUdFX1JFQ0VJVkVSUyA9IFwKICAg
ICBQbHVnaW5Qcm94eS5tZXNzYWdlcy5pbiBcCiAgICAgV2ViQXBwbGljYXRpb25DYWNoZU1hbmFn
ZXIubWVzc2FnZXMuaW4gXAogICAgIFdlYkFwcGxpY2F0aW9uQ2FjaGVNYW5hZ2VyUHJveHkubWVz
c2FnZXMuaW4gXAorICAgIFdlYkJhdHRlcnlNYW5hZ2VyLm1lc3NhZ2VzLmluIFwKKyAgICBXZWJC
YXR0ZXJ5TWFuYWdlclByb3h5Lm1lc3NhZ2VzLmluIFwKICAgICBXZWJDb250ZXh0Lm1lc3NhZ2Vz
LmluIFwKICAgICBXZWJDb29raWVNYW5hZ2VyLm1lc3NhZ2VzLmluIFwKICAgICBXZWJDb29raWVN
YW5hZ2VyUHJveHkubWVzc2FnZXMuaW4gXApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvR05V
bWFrZWZpbGUuYW0gYi9Tb3VyY2UvV2ViS2l0Mi9HTlVtYWtlZmlsZS5hbQppbmRleCAwMTZkNjgx
Li4yOTNiNjMzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9HTlVtYWtlZmlsZS5hbQorKysg
Yi9Tb3VyY2UvV2ViS2l0Mi9HTlVtYWtlZmlsZS5hbQpAQCAtNTksNiArNTksNyBAQCBsaWJ3ZWJr
aXQyZ3RrX0BXRUJLSVRHVEtfQVBJX01BSk9SX1ZFUlNJT05AX0BXRUJLSVRHVEtfQVBJX01JTk9S
X1ZFUlNJT05AX2xhX0NQUAogCS1JJChzcmNkaXIpL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mg
XAogCS1JJChzcmNkaXIpL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvQXBwbGljYXRpb25DYWNo
ZSBcCiAJLUkkKHNyY2RpcikvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9BdXRoZW50aWNhdGlv
biBcCisJLUkkKHNyY2RpcikvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9CYXR0ZXJ5IFwKIAkt
SSQoc3JjZGlyKS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0Nvb2tpZXMgXAogCS1JJChzcmNk
aXIpL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvRG93bmxvYWRzIFwKIAktSSQoc3JjZGlyKS9T
b3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0Z1bGxTY3JlZW4gXApAQCAtMjEwLDYgKzIxMSw3IEBA
IHZwYXRoICUubWVzc2FnZXMuaW4gPSBcCiAJJChXZWJLaXQyKS9XZWJQcm9jZXNzIFwKIAkkKFdl
YktpdDIpL1dlYlByb2Nlc3MvQXBwbGljYXRpb25DYWNoZSBcCiAJJChXZWJLaXQyKS9XZWJQcm9j
ZXNzL0F1dGhlbnRpY2F0aW9uIFwKKwkkKFdlYktpdDIpL1dlYlByb2Nlc3MvQmF0dGVyeSBcCiAJ
JChXZWJLaXQyKS9XZWJQcm9jZXNzL0Nvb2tpZXMgXAogCSQoV2ViS2l0MikvV2ViUHJvY2Vzcy9G
dWxsU2NyZWVuIFwKIAkkKFdlYktpdDIpL1dlYlByb2Nlc3MvR2VvbG9jYXRpb24gXApAQCAtNTEy
LDYgKzUxNCw3IEBAIEVYVFJBX0RJU1QgKz0gXAogCSQoc2hlbGwgbHMgJChXZWJLaXQyKS9XZWJQ
cm9jZXNzLyouaW4pIFwKIAkkKHNoZWxsIGxzICQoV2ViS2l0MikvV2ViUHJvY2Vzcy9BcHBsaWNh
dGlvbkNhY2hlLyouaW4pIFwKIAkkKHNoZWxsIGxzICQoV2ViS2l0MikvV2ViUHJvY2Vzcy9BdXRo
ZW50aWNhdGlvbi8qLmluKSBcCisJJChzaGVsbCBscyAkKFdlYktpdDIpL1dlYlByb2Nlc3MvQmF0
dGVyeS8qLmluKSBcCiAJJChzaGVsbCBscyAkKFdlYktpdDIpL1dlYlByb2Nlc3MvQ29va2llcy8q
LmluKSBcCiAJJChzaGVsbCBscyAkKFdlYktpdDIpL1dlYlByb2Nlc3MvRnVsbFNjcmVlbi8qLmlu
KSBcCiAJJChzaGVsbCBscyAkKFdlYktpdDIpL1dlYlByb2Nlc3MvR2VvbG9jYXRpb24vKi5pbikg
XApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvR05VbWFrZWZpbGUubGlzdC5hbSBiL1NvdXJj
ZS9XZWJLaXQyL0dOVW1ha2VmaWxlLmxpc3QuYW0KaW5kZXggMzUyMzkxOC4uY2QyZWJkMSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdDIvR05VbWFrZWZpbGUubGlzdC5hbQorKysgYi9Tb3VyY2Uv
V2ViS2l0Mi9HTlVtYWtlZmlsZS5saXN0LmFtCkBAIC00Nyw2ICs0Nyw3IEBAIHdlYmtpdDJfaF9h
cGkgKz0gXAogCSQoV2ViS2l0MikvVUlQcm9jZXNzL0FQSS9DL1dLQXV0aGVudGljYXRpb25EZWNp
c2lvbkxpc3RlbmVyLmggXAogCSQoV2ViS2l0MikvVUlQcm9jZXNzL0FQSS9DL1dLQmFja0Zvcndh
cmRMaXN0LmggXAogCSQoV2ViS2l0MikvVUlQcm9jZXNzL0FQSS9DL1dLQmFja0ZvcndhcmRMaXN0
SXRlbS5oIFwKKwkkKFdlYktpdDIpL1VJUHJvY2Vzcy9BUEkvQy9XS0JhdHRlcnlNYW5hZ2VyLmgg
XAogCSQoV2ViS2l0MikvVUlQcm9jZXNzL0FQSS9DL1dLQ29udGV4dC5oIFwKIAkkKFdlYktpdDIp
L1VJUHJvY2Vzcy9BUEkvQy9XS0NvbnRleHRQcml2YXRlLmggXAogCSQoV2ViS2l0MikvVUlQcm9j
ZXNzL0FQSS9DL1dLQ29va2llTWFuYWdlci5oIFwKQEAgLTE0Nyw2ICsxNDgsMTAgQEAgd2Via2l0
Ml9idWlsdF9zb3VyY2VzICs9IFwKIAlEZXJpdmVkU291cmNlcy9XZWJLaXQyL1dlYkFwcGxpY2F0
aW9uQ2FjaGVNYW5hZ2VyTWVzc2FnZXMuaCBcCiAJRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9XZWJB
cHBsaWNhdGlvbkNhY2hlTWFuYWdlclByb3h5TWVzc2FnZVJlY2VpdmVyLmNwcCBcCiAJRGVyaXZl
ZFNvdXJjZXMvV2ViS2l0Mi9XZWJBcHBsaWNhdGlvbkNhY2hlTWFuYWdlclByb3h5TWVzc2FnZXMu
aCBcCisJRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9XZWJCYXR0ZXJ5TWFuYWdlck1lc3NhZ2VSZWNl
aXZlci5jcHAgXAorCURlcml2ZWRTb3VyY2VzL1dlYktpdDIvV2ViQmF0dGVyeU1hbmFnZXJNZXNz
YWdlcy5oIFwKKwlEZXJpdmVkU291cmNlcy9XZWJLaXQyL1dlYkJhdHRlcnlNYW5hZ2VyUHJveHlN
ZXNzYWdlUmVjZWl2ZXIuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9XZWJLaXQyL1dlYkJhdHRlcnlN
YW5hZ2VyUHJveHlNZXNzYWdlcy5oIFwKIAlEZXJpdmVkU291cmNlcy9XZWJLaXQyL1dlYkNvbnRl
eHRNZXNzYWdlUmVjZWl2ZXIuY3BwIFwKIAlEZXJpdmVkU291cmNlcy9XZWJLaXQyL1dlYkNvbnRl
eHRNZXNzYWdlcy5oIFwKIAlEZXJpdmVkU291cmNlcy9XZWJLaXQyL1dlYkNvb2tpZU1hbmFnZXJN
ZXNzYWdlUmVjZWl2ZXIuY3BwIFwKQEAgLTQxNiw2ICs0MjEsOCBAQCB3ZWJraXQyX3NvdXJjZXMg
Kz0gXAogCVNvdXJjZS9XZWJLaXQyL1NoYXJlZC9WaXNpdGVkTGlua1RhYmxlLmggXAogCVNvdXJj
ZS9XZWJLaXQyL1NoYXJlZC9XZWJCYWNrRm9yd2FyZExpc3RJdGVtLmNwcCBcCiAJU291cmNlL1dl
YktpdDIvU2hhcmVkL1dlYkJhY2tGb3J3YXJkTGlzdEl0ZW0uaCBcCisJU291cmNlL1dlYktpdDIv
U2hhcmVkL1dlYkJhdHRlcnlTdGF0dXMuY3BwIFwKKwlTb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2Vi
QmF0dGVyeVN0YXR1cy5oIFwKIAlTb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViQ2VydGlmaWNhdGVJ
bmZvLmggXAogCVNvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJDb25uZWN0aW9uLmNwcCBcCiAJU291
cmNlL1dlYktpdDIvU2hhcmVkL1dlYkNvbm5lY3Rpb24uaCBcCkBAIC01MDAsNiArNTA3LDggQEAg
d2Via2l0Ml9zb3VyY2VzICs9IFwKIAlTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tC
YWNrRm9yd2FyZExpc3QuaCBcCiAJU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLQmFj
a0ZvcndhcmRMaXN0SXRlbS5jcHAgXAogCVNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9X
S0JhY2tGb3J3YXJkTGlzdEl0ZW0uaCBcCisJU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9D
L1dLQmF0dGVyeU1hbmFnZXIuY3BwIFwKKwlTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0Mv
V0tCYXR0ZXJ5TWFuYWdlci5oIFwKIAlTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tD
b250ZXh0LmNwcCBcCiAJU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLQ29udGV4dC5o
IFwKIAlTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tDb250ZXh0UHJpdmF0ZS5oIFwK
QEAgLTc1Niw2ICs3NjUsMTAgQEAgd2Via2l0Ml9zb3VyY2VzICs9IFwKIAlTb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvV2ViQXBwbGljYXRpb25DYWNoZU1hbmFnZXJQcm94eS5jcHAgXAogCVNvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJCYWNrRm9yd2FyZExpc3QuY3BwIFwKIAlTb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvV2ViQmFja0ZvcndhcmRMaXN0LmggXAorCVNvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9XZWJCYXR0ZXJ5TWFuYWdlclByb3h5LmNwcCBcCisJU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL1dlYkJhdHRlcnlNYW5hZ2VyUHJveHkuaCBcCisJU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL1dlYkJhdHRlcnlQcm92aWRlci5jcHAgXAorCVNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9X
ZWJCYXR0ZXJ5UHJvdmlkZXIuaCBcCiAJU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkNvbm5l
Y3Rpb25Ub1dlYlByb2Nlc3MuY3BwIFwKIAlTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViQ29u
bmVjdGlvblRvV2ViUHJvY2Vzcy5oIFwKIAlTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViQ29u
dGV4dC5jcHAgXApAQCAtODQ5LDYgKzg2Miw4IEBAIHdlYmtpdDJfc291cmNlcyArPSBcCiAJU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9BcHBsaWNhdGlvbkNhY2hlL1dlYkFwcGxpY2F0aW9uQ2Fj
aGVNYW5hZ2VyLmNwcCBcCiAJU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9BdXRoZW50aWNhdGlv
bi9BdXRoZW50aWNhdGlvbk1hbmFnZXIuY3BwIFwKIAlTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNz
L0F1dGhlbnRpY2F0aW9uL0F1dGhlbnRpY2F0aW9uTWFuYWdlci5oIFwKKwlTb3VyY2UvV2ViS2l0
Mi9XZWJQcm9jZXNzL0JhdHRlcnkvV2ViQmF0dGVyeU1hbmFnZXIuY3BwIFwKKwlTb3VyY2UvV2Vi
S2l0Mi9XZWJQcm9jZXNzL0JhdHRlcnkvV2ViQmF0dGVyeU1hbmFnZXIuaCBcCiAJU291cmNlL1dl
YktpdDIvV2ViUHJvY2Vzcy9Db29raWVzL1dlYkNvb2tpZU1hbmFnZXIuaCBcCiAJU291cmNlL1dl
YktpdDIvV2ViUHJvY2Vzcy9Db29raWVzL1dlYkNvb2tpZU1hbmFnZXIuY3BwIFwKIAlTb3VyY2Uv
V2ViS2l0Mi9XZWJQcm9jZXNzL0Nvb2tpZXMvc291cC9XZWJDb29raWVNYW5hZ2VyU291cC5jcHAg
XApAQCAtOTk3LDYgKzEwMTIsOCBAQCB3ZWJraXQyX3NvdXJjZXMgKz0gXAogCVNvdXJjZS9XZWJL
aXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvc291cC9XZWJGcmFtZU5ldHdvcmtpbmdDb250
ZXh0LmNwcCBcCiAJU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9zb3Vw
L1dlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQuaCBcCiAJU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy9XZWJDb3JlU3VwcG9ydC9XZWJBbHRlcm5hdGl2ZVRleHRDbGllbnQuaCBcCisJU291cmNlL1dl
YktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJCYXR0ZXJ5Q2xpZW50LmNwcCBcCisJ
U291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJCYXR0ZXJ5Q2xpZW50
LmggXAogCVNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21l
Q2xpZW50LmNwcCBcCiAJU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9X
ZWJDaHJvbWVDbGllbnQuaCBcCiAJU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3Vw
cG9ydC9XZWJDb250ZXh0TWVudUNsaWVudC5jcHAgXApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dDIvUGxhdGZvcm0vQ29yZUlQQy9NZXNzYWdlSUQuaCBiL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3Jt
L0NvcmVJUEMvTWVzc2FnZUlELmgKaW5kZXggNWYzOThhYS4uZDU0MTc2ZSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdDIvUGxhdGZvcm0vQ29yZUlQQy9NZXNzYWdlSUQuaAorKysgYi9Tb3VyY2Uv
V2ViS2l0Mi9QbGF0Zm9ybS9Db3JlSVBDL01lc3NhZ2VJRC5oCkBAIC00MCw2ICs0MCw3IEBAIGVu
dW0gTWVzc2FnZUNsYXNzIHsKICAgICBNZXNzYWdlQ2xhc3NJbmplY3RlZEJ1bmRsZSwKICAgICBN
ZXNzYWdlQ2xhc3NMYXllclRyZWVIb3N0LAogICAgIE1lc3NhZ2VDbGFzc1dlYkFwcGxpY2F0aW9u
Q2FjaGVNYW5hZ2VyLAorICAgIE1lc3NhZ2VDbGFzc1dlYkJhdHRlcnlNYW5hZ2VyUHJveHksCiAg
ICAgTWVzc2FnZUNsYXNzV2ViQ29va2llTWFuYWdlciwKICAgICBNZXNzYWdlQ2xhc3NXZWJEYXRh
YmFzZU1hbmFnZXIsCiAgICAgTWVzc2FnZUNsYXNzV2ViRnVsbFNjcmVlbk1hbmFnZXIsCkBAIC02
Miw2ICs2Myw3IEBAIGVudW0gTWVzc2FnZUNsYXNzIHsKICAgICBNZXNzYWdlQ2xhc3NEcmF3aW5n
QXJlYVByb3h5LAogICAgIE1lc3NhZ2VDbGFzc0xheWVyVHJlZUhvc3RQcm94eSwKICAgICBNZXNz
YWdlQ2xhc3NXZWJBcHBsaWNhdGlvbkNhY2hlTWFuYWdlclByb3h5LAorICAgIE1lc3NhZ2VDbGFz
c1dlYkJhdHRlcnlNYW5hZ2VyLAogICAgIE1lc3NhZ2VDbGFzc1dlYkNvbnRleHQsCiAgICAgTWVz
c2FnZUNsYXNzV2ViQ29udGV4dExlZ2FjeSwKICAgICBNZXNzYWdlQ2xhc3NXZWJDb29raWVNYW5h
Z2VyUHJveHksCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQVBJL2MvV0tCYXNl
LmggYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQVBJL2MvV0tCYXNlLmgKaW5kZXggMzdhNjRmMC4u
MDE0NzE0YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvU2hhcmVkL0FQSS9jL1dLQmFzZS5o
CisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9BUEkvYy9XS0Jhc2UuaApAQCAtODIsNiArODIs
OCBAQCB0eXBlZGVmIGNvbnN0IHN0cnVjdCBPcGFxdWVXS0F1dGhlbnRpY2F0aW9uQ2hhbGxlbmdl
KiBXS0F1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlUgogdHlwZWRlZiBjb25zdCBzdHJ1Y3QgT3BhcXVl
V0tBdXRoZW50aWNhdGlvbkRlY2lzaW9uTGlzdGVuZXIqIFdLQXV0aGVudGljYXRpb25EZWNpc2lv
bkxpc3RlbmVyUmVmOwogdHlwZWRlZiBjb25zdCBzdHJ1Y3QgT3BhcXVlV0tCYWNrRm9yd2FyZExp
c3QqIFdLQmFja0ZvcndhcmRMaXN0UmVmOwogdHlwZWRlZiBjb25zdCBzdHJ1Y3QgT3BhcXVlV0tC
YWNrRm9yd2FyZExpc3RJdGVtKiBXS0JhY2tGb3J3YXJkTGlzdEl0ZW1SZWY7Cit0eXBlZGVmIGNv
bnN0IHN0cnVjdCBPcGFxdWVXS0JhdHRlcnlNYW5hZ2VyKiBXS0JhdHRlcnlNYW5hZ2VyUmVmOwor
dHlwZWRlZiBjb25zdCBzdHJ1Y3QgT3BhcXVlV0tCYXR0ZXJ5U3RhdHVzKiBXS0JhdHRlcnlTdGF0
dXNSZWY7CiB0eXBlZGVmIGNvbnN0IHN0cnVjdCBPcGFxdWVXS1Jlc291cmNlQ2FjaGVNYW5hZ2Vy
KiBXS1Jlc291cmNlQ2FjaGVNYW5hZ2VyUmVmOwogdHlwZWRlZiBjb25zdCBzdHJ1Y3QgT3BhcXVl
V0tDb250ZXh0KiBXS0NvbnRleHRSZWY7CiB0eXBlZGVmIGNvbnN0IHN0cnVjdCBPcGFxdWVXS0Nv
b2tpZU1hbmFnZXIqIFdLQ29va2llTWFuYWdlclJlZjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQyL1NoYXJlZC9BUElPYmplY3QuaCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9BUElPYmplY3Qu
aAppbmRleCBlYWQ3NGYwLi44MzBmZWU4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFy
ZWQvQVBJT2JqZWN0LmgKKysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL0FQSU9iamVjdC5oCkBA
IC03Miw2ICs3Miw4IEBAIHB1YmxpYzoKICAgICAgICAgVHlwZUFwcGxpY2F0aW9uQ2FjaGVNYW5h
Z2VyLAogICAgICAgICBUeXBlQmFja0ZvcndhcmRMaXN0LAogICAgICAgICBUeXBlQmFja0Zvcndh
cmRMaXN0SXRlbSwKKyAgICAgICAgVHlwZUJhdHRlcnlNYW5hZ2VyLAorICAgICAgICBUeXBlQmF0
dGVyeVN0YXR1cywKICAgICAgICAgVHlwZUNhY2hlTWFuYWdlciwKICAgICAgICAgVHlwZUNvbnRl
eHQsCiAgICAgICAgIFR5cGVDb29raWVNYW5hZ2VyLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dDIvU2hhcmVkL1dlYkJhdHRlcnlTdGF0dXMuY3BwIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL1dl
YkJhdHRlcnlTdGF0dXMuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmM4
ZDgwNmQKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViQmF0dGVy
eVN0YXR1cy5jcHAKQEAgLTAsMCArMSw2MCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMiBJ
bnRlbCBDb3Jwb3JhdGlvbi4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
KyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3Vy
Y2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAy
LiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Ig
b3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBU
SElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRP
UlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMg
T0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBP
U0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENP
TlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURF
TlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRV
VEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBC
VVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9S
WSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZ
LCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5H
IElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJ
U0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1
ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIldlYkJhdHRlcnlTdGF0dXMuaCIKKworI2lmIEVOQUJM
RShCQVRURVJZX1NUQVRVUykKKworI2luY2x1ZGUgIkFyZ3VtZW50Q29kZXJzLmgiCisjaW5jbHVk
ZSAiQXJndW1lbnRzLmgiCisKK25hbWVzcGFjZSBXZWJLaXQgeworCitXZWJCYXR0ZXJ5U3RhdHVz
OjpXZWJCYXR0ZXJ5U3RhdHVzKGJvb2wgaXNDaGFyZ2luZywgZG91YmxlIGNoYXJnaW5nVGltZSwg
ZG91YmxlIGRpc2NoYXJnaW5nVGltZSwgZG91YmxlIGxldmVsKQoreworICAgIG1fZGF0YS5pc0No
YXJnaW5nID0gaXNDaGFyZ2luZzsKKyAgICBtX2RhdGEuY2hhcmdpbmdUaW1lID0gY2hhcmdpbmdU
aW1lOworICAgIG1fZGF0YS5kaXNjaGFyZ2luZ1RpbWUgPSBkaXNjaGFyZ2luZ1RpbWU7CisgICAg
bV9kYXRhLmxldmVsID0gbGV2ZWw7Cit9CisKK1dlYkJhdHRlcnlTdGF0dXM6On5XZWJCYXR0ZXJ5
U3RhdHVzKCkKK3sKK30KKwordm9pZCBXZWJCYXR0ZXJ5U3RhdHVzOjpEYXRhOjplbmNvZGUoQ29y
ZUlQQzo6QXJndW1lbnRFbmNvZGVyKiBlbmNvZGVyKSBjb25zdAoreworICAgIGVuY29kZXItPmVu
Y29kZShDb3JlSVBDOjpJbihpc0NoYXJnaW5nLCBjaGFyZ2luZ1RpbWUsIGRpc2NoYXJnaW5nVGlt
ZSwgbGV2ZWwpKTsKK30KKworYm9vbCBXZWJCYXR0ZXJ5U3RhdHVzOjpEYXRhOjpkZWNvZGUoQ29y
ZUlQQzo6QXJndW1lbnREZWNvZGVyKiBkZWNvZGVyLCBEYXRhJiBkYXRhKQoreworICAgIHJldHVy
biBkZWNvZGVyLT5kZWNvZGUoQ29yZUlQQzo6T3V0KGRhdGEuaXNDaGFyZ2luZywgZGF0YS5jaGFy
Z2luZ1RpbWUsIGRhdGEuZGlzY2hhcmdpbmdUaW1lLCBkYXRhLmxldmVsKSk7Cit9CisKK30gLy8g
bmFtZXNwYWNlIFdlYktpdAorCisjZW5kaWYgLy8gRU5BQkxFKEJBVFRFUllfU1RBVFVTKQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYkJhdHRlcnlTdGF0dXMuaCBiL1NvdXJj
ZS9XZWJLaXQyL1NoYXJlZC9XZWJCYXR0ZXJ5U3RhdHVzLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMC4uZmQxZDc5MwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQy
L1NoYXJlZC9XZWJCYXR0ZXJ5U3RhdHVzLmgKQEAgLTAsMCArMSw3NyBAQAorLyoKKyAqIENvcHly
aWdodCAoQykgMjAxMiBJbnRlbCBDb3Jwb3JhdGlvbi4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAq
CisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJp
YnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXBy
b2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1l
bnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1
dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5E
IElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElF
RCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBM
SUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJ
Q1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExF
IElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJ
TkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVO
VElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQg
T0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBP
UiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBB
TkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBT
VFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJ
U0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FS
RSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0Uu
CisgKi8KKworI2lmbmRlZiBXZWJCYXR0ZXJ5U3RhdHVzX2gKKyNkZWZpbmUgV2ViQmF0dGVyeVN0
YXR1c19oCisKKyNpZiBFTkFCTEUoQkFUVEVSWV9TVEFUVVMpCisKKyNpbmNsdWRlICJBUElPYmpl
Y3QuaCIKKyNpbmNsdWRlICJBcmd1bWVudERlY29kZXIuaCIKKyNpbmNsdWRlICJBcmd1bWVudEVu
Y29kZXIuaCIKKyNpbmNsdWRlIDx3dGYvUGFzc1JlZlB0ci5oPgorCituYW1lc3BhY2UgV2ViS2l0
IHsKKworY2xhc3MgV2ViQmF0dGVyeVN0YXR1cyA6IHB1YmxpYyBBUElPYmplY3QgeworcHVibGlj
OgorICAgIHN0YXRpYyBjb25zdCBUeXBlIEFQSVR5cGUgPSBUeXBlQmF0dGVyeVN0YXR1czsKKwor
ICAgIHN0cnVjdCBEYXRhIHsKKyAgICAgICAgdm9pZCBlbmNvZGUoQ29yZUlQQzo6QXJndW1lbnRF
bmNvZGVyKikgY29uc3Q7CisgICAgICAgIHN0YXRpYyBib29sIGRlY29kZShDb3JlSVBDOjpBcmd1
bWVudERlY29kZXIqLCBEYXRhJik7CisKKyAgICAgICAgYm9vbCBpc0NoYXJnaW5nOworICAgICAg
ICBkb3VibGUgY2hhcmdpbmdUaW1lOworICAgICAgICBkb3VibGUgZGlzY2hhcmdpbmdUaW1lOwor
ICAgICAgICBkb3VibGUgbGV2ZWw7CisgICAgfTsKKworICAgIHN0YXRpYyBQYXNzUmVmUHRyPFdl
YkJhdHRlcnlTdGF0dXM+IGNyZWF0ZShib29sIGlzQ2hhcmdpbmcsIGRvdWJsZSBjaGFyZ2luZ1Rp
bWUsIGRvdWJsZSBkaXNjaGFyZ2luZ1RpbWUsIGRvdWJsZSBsZXZlbCkKKyAgICB7CisgICAgICAg
IHJldHVybiBhZG9wdFJlZihuZXcgV2ViQmF0dGVyeVN0YXR1cyhpc0NoYXJnaW5nLCBjaGFyZ2lu
Z1RpbWUsIGRpc2NoYXJnaW5nVGltZSwgbGV2ZWwpKTsKKyAgICB9CisKKyAgICB2aXJ0dWFsIH5X
ZWJCYXR0ZXJ5U3RhdHVzKCk7CisgICAgZG91YmxlIGlzQ2hhcmdpbmcoKSBjb25zdCB7IHJldHVy
biBtX2RhdGEuaXNDaGFyZ2luZzsgfQorICAgIGRvdWJsZSBjaGFyZ2luZ1RpbWUoKSBjb25zdCB7
IHJldHVybiBtX2RhdGEuY2hhcmdpbmdUaW1lOyB9CisgICAgZG91YmxlIGRpc2NoYXJnaW5nVGlt
ZSgpIGNvbnN0IHsgcmV0dXJuIG1fZGF0YS5kaXNjaGFyZ2luZ1RpbWU7IH0KKyAgICBkb3VibGUg
bGV2ZWwoKSBjb25zdCB7IHJldHVybiBtX2RhdGEubGV2ZWw7IH0KKworICAgIGNvbnN0IERhdGEm
IGRhdGEoKSBjb25zdCB7IHJldHVybiBtX2RhdGE7IH0KKworcHJpdmF0ZToKKyAgICBXZWJCYXR0
ZXJ5U3RhdHVzKGJvb2wgaXNDaGFyZ2luZywgZG91YmxlIGNoYXJnaW5nVGltZSwgZG91YmxlIGRp
c2NoYXJnaW5nVGltZSwgZG91YmxlIGxldmVsKTsKKworICAgIHZpcnR1YWwgVHlwZSB0eXBlKCkg
Y29uc3QgeyByZXR1cm4gQVBJVHlwZTsgfQorCisgICAgRGF0YSBtX2RhdGE7Cit9OworCit9IC8v
IG5hbWVzcGFjZSBXZWJLaXQKKworI2VuZGlmIC8vIEVOQUJMRShCQVRURVJZX1NUQVRVUykKKwor
I2VuZGlmIC8vIFdlYkJhdHRlcnlTdGF0dXNfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIv
VGFyZ2V0LnByaSBiL1NvdXJjZS9XZWJLaXQyL1RhcmdldC5wcmkKaW5kZXggOWU1YmM0ZS4uYjk2
NGM0MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVGFyZ2V0LnByaQorKysgYi9Tb3VyY2Uv
V2ViS2l0Mi9UYXJnZXQucHJpCkBAIC05OSw2ICs5OSw3IEBAIEhFQURFUlMgKz0gXAogICAgIFNo
YXJlZC9WaXNpdGVkTGlua1RhYmxlLmggXAogICAgIFNoYXJlZC9XZWJDb3JlQXJndW1lbnRDb2Rl
cnMuaCBcCiAgICAgU2hhcmVkL1dlYkJhY2tGb3J3YXJkTGlzdEl0ZW0uaCBcCisgICAgU2hhcmVk
L1dlYkJhdHRlcnlTdGF0dXMuaCBcCiAgICAgU2hhcmVkL1dlYkNlcnRpZmljYXRlSW5mby5oIFwK
ICAgICBTaGFyZWQvV2ViQ29ubmVjdGlvbi5oIFwKICAgICBTaGFyZWQvV2ViQ29ubmVjdGlvbkNs
aWVudC5oIFwKQEAgLTE0Nyw2ICsxNDgsNyBAQCBIRUFERVJTICs9IFwKICAgICBVSVByb2Nlc3Mv
QVBJL0MvV0tBdXRoZW50aWNhdGlvbkRlY2lzaW9uTGlzdGVuZXIuaCBcCiAgICAgVUlQcm9jZXNz
L0FQSS9DL1dLQmFja0ZvcndhcmRMaXN0LmggXAogICAgIFVJUHJvY2Vzcy9BUEkvQy9XS0JhY2tG
b3J3YXJkTGlzdEl0ZW0uaCBcCisgICAgVUlQcm9jZXNzL0FQSS9DL1dLQmF0dGVyeU1hbmFnZXIu
aCBcCiAgICAgVUlQcm9jZXNzL0FQSS9DL1dLQ29udGV4dC5oIFwKICAgICBVSVByb2Nlc3MvQVBJ
L0MvV0tDb250ZXh0UHJpdmF0ZS5oIFwKICAgICBVSVByb2Nlc3MvQVBJL0MvV0tDcmVkZW50aWFs
LmggXApAQCAtMjI5LDYgKzIzMSw4IEBAIEhFQURFUlMgKz0gXAogICAgIFVJUHJvY2Vzcy9WaXNp
dGVkTGlua1Byb3ZpZGVyLmggXAogICAgIFVJUHJvY2Vzcy9XZWJBcHBsaWNhdGlvbkNhY2hlTWFu
YWdlclByb3h5LmggXAogICAgIFVJUHJvY2Vzcy9XZWJCYWNrRm9yd2FyZExpc3QuaCBcCisgICAg
VUlQcm9jZXNzL1dlYkJhdHRlcnlNYW5hZ2VyUHJveHkuaCBcCisgICAgVUlQcm9jZXNzL1dlYkJh
dHRlcnlQcm92aWRlci5oIFwKICAgICBVSVByb2Nlc3MvV2ViQ29ubmVjdGlvblRvV2ViUHJvY2Vz
cy5oIFwKICAgICBVSVByb2Nlc3MvV2ViQ29udGV4dC5oIFwKICAgICBVSVByb2Nlc3MvV2ViQ29u
dGV4dENvbm5lY3Rpb25DbGllbnQuaCBcCkBAIC0yOTQsNiArMjk4LDcgQEAgSEVBREVSUyArPSBc
CiAgICAgVUlQcm9jZXNzL3F0L1dlYlBvcHVwTWVudVByb3h5UXQuaCBcCiAgICAgV2ViUHJvY2Vz
cy9BcHBsaWNhdGlvbkNhY2hlL1dlYkFwcGxpY2F0aW9uQ2FjaGVNYW5hZ2VyLmggXAogICAgIFdl
YlByb2Nlc3MvQXV0aGVudGljYXRpb24vQXV0aGVudGljYXRpb25NYW5hZ2VyLmggXAorICAgIFdl
YlByb2Nlc3MvQmF0dGVyeS9XZWJCYXR0ZXJ5TWFuYWdlci5oIFwKICAgICBXZWJQcm9jZXNzL0Nv
b2tpZXMvV2ViQ29va2llTWFuYWdlci5oIFwKICAgICBXZWJQcm9jZXNzL0Rvd25sb2Fkcy9Eb3du
bG9hZC5oIFwKICAgICBXZWJQcm9jZXNzL0Rvd25sb2Fkcy9Eb3dubG9hZE1hbmFnZXIuaCBcCkBA
IC0zNDQsNiArMzQ5LDcgQEAgSEVBREVSUyArPSBcCiAgICAgV2ViUHJvY2Vzcy9QbHVnaW5zL1Bs
dWdpblByb3h5LmggXAogICAgIFdlYlByb2Nlc3MvUGx1Z2lucy9QbHVnaW5Qcm9jZXNzQ29ubmVj
dGlvbi5oIFwKICAgICBXZWJQcm9jZXNzL1BsdWdpbnMvUGx1Z2luUHJvY2Vzc0Nvbm5lY3Rpb25N
YW5hZ2VyLmggXAorICAgIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQmF0dGVyeUNsaWVu
dC5oIFwKICAgICBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5oIFwK
ICAgICBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNvbnRleHRNZW51Q2xpZW50LmggXAog
ICAgIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRGF0YWJhc2VNYW5hZ2VyLmggXApAQCAt
NDU4LDYgKzQ2NCw3IEBAIFNPVVJDRVMgKz0gXAogICAgIFNoYXJlZC9VcGRhdGVJbmZvLmNwcCBc
CiAgICAgU2hhcmVkL1Zpc2l0ZWRMaW5rVGFibGUuY3BwIFwKICAgICBTaGFyZWQvV2ViQmFja0Zv
cndhcmRMaXN0SXRlbS5jcHAgXAorICAgIFNoYXJlZC9XZWJCYXR0ZXJ5U3RhdHVzLmNwcCBcCiAg
ICAgU2hhcmVkL1dlYkNvbm5lY3Rpb24uY3BwIFwKICAgICBTaGFyZWQvV2ViQ29ubmVjdGlvbkNs
aWVudC5jcHAgXAogICAgIFNoYXJlZC9XZWJDb250ZXh0TWVudUl0ZW0uY3BwIFwKQEAgLTUwNSw2
ICs1MTIsNyBAQCBTT1VSQ0VTICs9IFwKICAgICBVSVByb2Nlc3MvQVBJL0MvV0tBdXRoZW50aWNh
dGlvbkRlY2lzaW9uTGlzdGVuZXIuY3BwIFwKICAgICBVSVByb2Nlc3MvQVBJL0MvV0tCYWNrRm9y
d2FyZExpc3QuY3BwIFwKICAgICBVSVByb2Nlc3MvQVBJL0MvV0tCYWNrRm9yd2FyZExpc3RJdGVt
LmNwcCBcCisgICAgVUlQcm9jZXNzL0FQSS9DL1dLQmF0dGVyeU1hbmFnZXIuY3BwIFwKICAgICBV
SVByb2Nlc3MvQVBJL0MvV0tDb250ZXh0LmNwcCBcCiAgICAgVUlQcm9jZXNzL0FQSS9DL1dLQ3Jl
ZGVudGlhbC5jcHAgXAogICAgIFVJUHJvY2Vzcy9BUEkvQy9XS0RhdGFiYXNlTWFuYWdlci5jcHAg
XApAQCAtNTc4LDYgKzU4Niw4IEBAIFNPVVJDRVMgKz0gXAogICAgIFVJUHJvY2Vzcy9WaXNpdGVk
TGlua1Byb3ZpZGVyLmNwcCBcCiAgICAgVUlQcm9jZXNzL1dlYkFwcGxpY2F0aW9uQ2FjaGVNYW5h
Z2VyUHJveHkuY3BwIFwKICAgICBVSVByb2Nlc3MvV2ViQmFja0ZvcndhcmRMaXN0LmNwcCBcCisg
ICAgVUlQcm9jZXNzL1dlYkJhdHRlcnlNYW5hZ2VyUHJveHkuY3BwIFwKKyAgICBVSVByb2Nlc3Mv
V2ViQmF0dGVyeVByb3ZpZGVyLmNwcCBcCiAgICAgVUlQcm9jZXNzL1dlYkNvbm5lY3Rpb25Ub1dl
YlByb2Nlc3MuY3BwIFwKICAgICBVSVByb2Nlc3MvV2ViQ29udGV4dC5jcHAgXAogICAgIFVJUHJv
Y2Vzcy9XZWJDb250ZXh0Q29ubmVjdGlvbkNsaWVudC5jcHAgXApAQCAtNjQ3LDYgKzY1Nyw3IEBA
IFNPVVJDRVMgKz0gXAogICAgIFVJUHJvY2Vzcy9xdC9RdFdlYkljb25EYXRhYmFzZUNsaWVudC5j
cHAgXAogICAgIFdlYlByb2Nlc3MvQXBwbGljYXRpb25DYWNoZS9XZWJBcHBsaWNhdGlvbkNhY2hl
TWFuYWdlci5jcHAgXAogICAgIFdlYlByb2Nlc3MvQXV0aGVudGljYXRpb24vQXV0aGVudGljYXRp
b25NYW5hZ2VyLmNwcCBcCisgICAgV2ViUHJvY2Vzcy9CYXR0ZXJ5L1dlYkJhdHRlcnlNYW5hZ2Vy
LmNwcCBcCiAgICAgV2ViUHJvY2Vzcy9Db29raWVzL1dlYkNvb2tpZU1hbmFnZXIuY3BwIFwKICAg
ICBXZWJQcm9jZXNzL0Nvb2tpZXMvcXQvV2ViQ29va2llTWFuYWdlclF0LmNwcCBcCiAgICAgV2Vi
UHJvY2Vzcy9Eb3dubG9hZHMvRG93bmxvYWQuY3BwIFwKQEAgLTcxMCw2ICs3MjEsNyBAQCBTT1VS
Q0VTICs9IFwKICAgICBXZWJQcm9jZXNzL1BsdWdpbnMvUGx1Z2luUHJveHkuY3BwIFwKICAgICBX
ZWJQcm9jZXNzL1BsdWdpbnMvUGx1Z2luUHJvY2Vzc0Nvbm5lY3Rpb24uY3BwIFwKICAgICBXZWJQ
cm9jZXNzL1BsdWdpbnMvUGx1Z2luUHJvY2Vzc0Nvbm5lY3Rpb25NYW5hZ2VyLmNwcCBcCisgICAg
V2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJCYXR0ZXJ5Q2xpZW50LmNwcCBcCiAgICAgV2Vi
UHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuY3BwIFwKICAgICBXZWJQcm9j
ZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNvbnRleHRNZW51Q2xpZW50LmNwcCBcCiAgICAgV2ViUHJv
Y2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJEYXRhYmFzZU1hbmFnZXIuY3BwIFwKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS0FQSUNhc3QuaCBiL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9BUEkvQy9XS0FQSUNhc3QuaAppbmRleCA5YmM5ZWE2Li44YjliZDEwIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tBUElDYXN0LmgKKysr
IGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLQVBJQ2FzdC5oCkBAIC01Niw2ICs1
Niw4IEBAIGNsYXNzIE5vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0OwogY2xhc3MgV2ViQXBw
bGljYXRpb25DYWNoZU1hbmFnZXJQcm94eTsKIGNsYXNzIFdlYkJhY2tGb3J3YXJkTGlzdDsKIGNs
YXNzIFdlYkJhY2tGb3J3YXJkTGlzdEl0ZW07CitjbGFzcyBXZWJCYXR0ZXJ5TWFuYWdlclByb3h5
OworY2xhc3MgV2ViQmF0dGVyeVN0YXR1czsKIGNsYXNzIFdlYlJlc291cmNlQ2FjaGVNYW5hZ2Vy
UHJveHk7CiBjbGFzcyBXZWJDb250ZXh0OwogY2xhc3MgV2ViQ29va2llTWFuYWdlclByb3h5OwpA
QCAtOTQsNiArOTYsOCBAQCBXS19BRERfQVBJX01BUFBJTkcoV0tBdXRoZW50aWNhdGlvbkNoYWxs
ZW5nZVJlZiwgQXV0aGVudGljYXRpb25DaGFsbGVuZ2VQcm94eSkKIFdLX0FERF9BUElfTUFQUElO
RyhXS0F1dGhlbnRpY2F0aW9uRGVjaXNpb25MaXN0ZW5lclJlZiwgQXV0aGVudGljYXRpb25EZWNp
c2lvbkxpc3RlbmVyKQogV0tfQUREX0FQSV9NQVBQSU5HKFdLQmFja0ZvcndhcmRMaXN0SXRlbVJl
ZiwgV2ViQmFja0ZvcndhcmRMaXN0SXRlbSkKIFdLX0FERF9BUElfTUFQUElORyhXS0JhY2tGb3J3
YXJkTGlzdFJlZiwgV2ViQmFja0ZvcndhcmRMaXN0KQorV0tfQUREX0FQSV9NQVBQSU5HKFdLQmF0
dGVyeU1hbmFnZXJSZWYsIFdlYkJhdHRlcnlNYW5hZ2VyUHJveHkpCitXS19BRERfQVBJX01BUFBJ
TkcoV0tCYXR0ZXJ5U3RhdHVzUmVmLCBXZWJCYXR0ZXJ5U3RhdHVzKQogV0tfQUREX0FQSV9NQVBQ
SU5HKFdLUmVzb3VyY2VDYWNoZU1hbmFnZXJSZWYsIFdlYlJlc291cmNlQ2FjaGVNYW5hZ2VyUHJv
eHkpCiBXS19BRERfQVBJX01BUFBJTkcoV0tDb250ZXh0UmVmLCBXZWJDb250ZXh0KQogV0tfQURE
X0FQSV9NQVBQSU5HKFdLQ29va2llTWFuYWdlclJlZiwgV2ViQ29va2llTWFuYWdlclByb3h5KQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLQmF0dGVyeU1hbmFn
ZXIuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLQmF0dGVyeU1hbmFnZXIu
Y3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmQ2MTYyNWMKLS0tIC9kZXYv
bnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tCYXR0ZXJ5TWFuYWdl
ci5jcHAKQEAgLTAsMCArMSw0MSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMiBJbnRlbCBD
b3Jwb3JhdGlvbi4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29k
ZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRp
c3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIg
bWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNP
RlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBB
UyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVS
Q0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJF
IERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJV
VE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwg
U1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09P
RFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVT
UworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBM
SUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBU
T1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFO
WSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9G
CisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNv
bmZpZy5oIgorI2luY2x1ZGUgIldLQmF0dGVyeU1hbmFnZXIuaCIKKworI2lmIEVOQUJMRShCQVRU
RVJZX1NUQVRVUykKKworI2luY2x1ZGUgIldLQVBJQ2FzdC5oIgorI2luY2x1ZGUgIldlYkJhdHRl
cnlNYW5hZ2VyUHJveHkuaCIKKwordXNpbmcgbmFtZXNwYWNlIFdlYktpdDsKKworV0tUeXBlSUQg
V0tCYXR0ZXJ5TWFuYWdlckdldFR5cGVJRCgpCit7CisgICAgcmV0dXJuIHRvQVBJKFdlYkJhdHRl
cnlNYW5hZ2VyUHJveHk6OkFQSVR5cGUpOworfQorCisjZW5kaWYgLy8gRU5BQkxFKEJBVFRFUllf
U1RBVFVTKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLQmF0
dGVyeU1hbmFnZXIuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS0JhdHRlcnlN
YW5hZ2VyLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNTI4MmE2MQotLS0g
L2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS0JhdHRlcnlN
YW5hZ2VyLmgKQEAgLTAsMCArMSw1OSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMiBJbnRl
bCBDb3Jwb3JhdGlvbi4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAq
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2Ug
Y29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBS
ZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3Ro
ZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElT
IFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMg
YGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0Yg
TUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0Ug
QVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRS
SUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRB
TCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUg
R09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJ
TkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBP
RiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBP
UiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElO
IEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBX
S0JhdHRlcnlNYW5hZ2VyX2gKKyNkZWZpbmUgV0tCYXR0ZXJ5TWFuYWdlcl9oCisKKyNpZiBFTkFC
TEUoQkFUVEVSWV9TVEFUVVMpCisKKyNpbmNsdWRlIDxXZWJLaXQyL1dLQmFzZS5oPgorCisjaWZk
ZWYgX19jcGx1c3BsdXMKK2V4dGVybiAiQyIgeworI2VuZGlmCisKKy8vIFByb3ZpZGVyLgordHlw
ZWRlZiB2b2lkICgqV0tCYXR0ZXJ5UHJvdmlkZXJTdGFydFVwZGF0aW5nQ2FsbGJhY2spKFdLQmF0
dGVyeU1hbmFnZXJSZWYgYmF0dGVyeU1hbmFnZXIsIGNvbnN0IHZvaWQqIGNsaWVudEluZm8pOwor
dHlwZWRlZiB2b2lkICgqV0tCYXR0ZXJ5UHJvdmlkZXJTdG9wVXBkYXRpbmdDYWxsYmFjaykoV0tC
YXR0ZXJ5TWFuYWdlclJlZiBiYXR0ZXJ5TWFuYWdlciwgY29uc3Qgdm9pZCogY2xpZW50SW5mbyk7
CisKK3N0cnVjdCBXS0JhdHRlcnlQcm92aWRlciB7CisgICAgaW50ICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZXJzaW9uOwor
ICAgIGNvbnN0IHZvaWQgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgY2xpZW50SW5mbzsKKyAgICBXS0JhdHRlcnlQcm92aWRlclN0YXJ0VXBk
YXRpbmdDYWxsYmFjayAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0VXBkYXRpbmc7
CisgICAgV0tCYXR0ZXJ5UHJvdmlkZXJTdG9wVXBkYXRpbmdDYWxsYmFjayAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBzdG9wVXBkYXRpbmc7Cit9OwordHlwZWRlZiBzdHJ1Y3QgV0tCYXR0
ZXJ5UHJvdmlkZXIgV0tCYXR0ZXJ5UHJvdmlkZXI7CisKK2VudW0geyBrV0tCYXR0ZXJ5UHJvdmlk
ZXJDdXJyZW50VmVyc2lvbiA9IDAgfTsKKworV0tfRVhQT1JUIFdLVHlwZUlEIFdLQmF0dGVyeU1h
bmFnZXJHZXRUeXBlSUQoKTsKKworI2lmZGVmIF9fY3BsdXNwbHVzCit9CisjZW5kaWYKKworI2Vu
ZGlmIC8qIEVOQUJMRShCQVRURVJZX1NUQVRVUykgKi8KKworI2VuZGlmIC8qIFdLQmF0dGVyeU1h
bmFnZXJfaCAqLwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkJhdHRl
cnlNYW5hZ2VyUHJveHkuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkJhdHRlcnlN
YW5hZ2VyUHJveHkuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmMzODk3
ZTgKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViQmF0dGVy
eU1hbmFnZXJQcm94eS5jcHAKQEAgLTAsMCArMSwxMDIgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMp
IDIwMTIgSW50ZWwgQ29ycG9yYXRpb24uIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMg
b2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
LgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24g
YW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisg
KgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09O
VFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFO
VElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJS
QU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisg
KiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9S
IElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1Qs
IElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFN
QUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBT
VUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklU
UzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFO
WSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJ
QUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICog
QVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4g
SUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisK
KyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJXZWJCYXR0ZXJ5TWFuYWdlclByb3h5Lmgi
CisKKyNpZiBFTkFCTEUoQkFUVEVSWV9TVEFUVVMpCisKKyNpbmNsdWRlICJXZWJCYXR0ZXJ5TWFu
YWdlck1lc3NhZ2VzLmgiCisjaW5jbHVkZSAiV2ViQ29udGV4dC5oIgorCituYW1lc3BhY2UgV2Vi
S2l0IHsKKworUGFzc1JlZlB0cjxXZWJCYXR0ZXJ5TWFuYWdlclByb3h5PiBXZWJCYXR0ZXJ5TWFu
YWdlclByb3h5OjpjcmVhdGUoV2ViQ29udGV4dCogY29udGV4dCkKK3sKKyAgICByZXR1cm4gYWRv
cHRSZWYobmV3IFdlYkJhdHRlcnlNYW5hZ2VyUHJveHkoY29udGV4dCkpOworfQorCitXZWJCYXR0
ZXJ5TWFuYWdlclByb3h5OjpXZWJCYXR0ZXJ5TWFuYWdlclByb3h5KFdlYkNvbnRleHQqIGNvbnRl
eHQpCisgICAgOiBtX2lzVXBkYXRpbmcoZmFsc2UpCisgICAgLCBtX2NvbnRleHQoY29udGV4dCkK
K3sKK30KKworV2ViQmF0dGVyeU1hbmFnZXJQcm94eTo6fldlYkJhdHRlcnlNYW5hZ2VyUHJveHko
KQoreworfQorCit2b2lkIFdlYkJhdHRlcnlNYW5hZ2VyUHJveHk6OmludmFsaWRhdGUoKQorewor
ICAgIHN0b3BVcGRhdGluZygpOworfQorCit2b2lkIFdlYkJhdHRlcnlNYW5hZ2VyUHJveHk6Omlu
aXRpYWxpemVQcm92aWRlcihjb25zdCBXS0JhdHRlcnlQcm92aWRlciogcHJvdmlkZXIpCit7Cisg
ICAgbV9wcm92aWRlci5pbml0aWFsaXplKHByb3ZpZGVyKTsKK30KKwordm9pZCBXZWJCYXR0ZXJ5
TWFuYWdlclByb3h5OjpkaWRSZWNlaXZlTWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiBjb25u
ZWN0aW9uLCBDb3JlSVBDOjpNZXNzYWdlSUQgbWVzc2FnZUlELCBDb3JlSVBDOjpBcmd1bWVudERl
Y29kZXIqIGFyZ3VtZW50cykKK3sKKyAgICBkaWRSZWNlaXZlV2ViQmF0dGVyeU1hbmFnZXJQcm94
eU1lc3NhZ2UoY29ubmVjdGlvbiwgbWVzc2FnZUlELCBhcmd1bWVudHMpOworfQorCit2b2lkIFdl
YkJhdHRlcnlNYW5hZ2VyUHJveHk6OnN0YXJ0VXBkYXRpbmcoKQoreworICAgIGlmIChtX2lzVXBk
YXRpbmcpCisgICAgICAgIHJldHVybjsKKworICAgIG1fcHJvdmlkZXIuc3RhcnRVcGRhdGluZyh0
aGlzKTsKKyAgICBtX2lzVXBkYXRpbmcgPSB0cnVlOworfQorCit2b2lkIFdlYkJhdHRlcnlNYW5h
Z2VyUHJveHk6OnN0b3BVcGRhdGluZygpCit7CisgICAgaWYgKCFtX2lzVXBkYXRpbmcpCisgICAg
ICAgIHJldHVybjsKKworICAgIG1fcHJvdmlkZXIuc3RvcFVwZGF0aW5nKHRoaXMpOworICAgIG1f
aXNVcGRhdGluZyA9IGZhbHNlOworfQorCit2b2lkIFdlYkJhdHRlcnlNYW5hZ2VyUHJveHk6OnBy
b3ZpZGVyRGlkQ2hhbmdlQmF0dGVyeVN0YXR1cyhjb25zdCBXVEY6OkF0b21pY1N0cmluZyYgZXZl
bnRUeXBlLCBXZWJCYXR0ZXJ5U3RhdHVzKiBzdGF0dXMpCit7CisgICAgaWYgKCFtX2NvbnRleHQp
CisgICAgICAgIHJldHVybjsKKworICAgIG1fY29udGV4dC0+c2VuZFRvQWxsUHJvY2Vzc2VzKE1l
c3NhZ2VzOjpXZWJCYXR0ZXJ5TWFuYWdlcjo6RGlkQ2hhbmdlQmF0dGVyeVN0YXR1cyhldmVudFR5
cGUsIHN0YXR1cy0+ZGF0YSgpKSk7Cit9CisKK3ZvaWQgV2ViQmF0dGVyeU1hbmFnZXJQcm94eTo6
cHJvdmlkZXJVcGRhdGVCYXR0ZXJ5U3RhdHVzKFdlYkJhdHRlcnlTdGF0dXMqIHN0YXR1cykKK3sK
KyAgICBpZiAoIW1fY29udGV4dCkKKyAgICAgICAgcmV0dXJuOworCisgICAgbV9jb250ZXh0LT5z
ZW5kVG9BbGxQcm9jZXNzZXMoTWVzc2FnZXM6OldlYkJhdHRlcnlNYW5hZ2VyOjpVcGRhdGVCYXR0
ZXJ5U3RhdHVzKHN0YXR1cy0+ZGF0YSgpKSk7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdAor
CisjZW5kaWYgLy8gRU5BQkxFKEJBVFRFUllfU1RBVFVTKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL1dlYkJhdHRlcnlNYW5hZ2VyUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9XZWJCYXR0ZXJ5TWFuYWdlclByb3h5LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMC4uOWZhNWJkYwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9XZWJCYXR0ZXJ5TWFuYWdlclByb3h5LmgKQEAgLTAsMCArMSw4NCBAQAorLyoK
KyAqIENvcHlyaWdodCAoQykgMjAxMiBJbnRlbCBDb3Jwb3JhdGlvbi4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEu
IFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0g
bXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICog
ICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhl
IGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExF
IElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1Mg
T1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAq
IFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZP
UiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNI
QUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkg
RElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICog
Q09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJP
Q1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNF
LCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVS
IENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENP
TlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBP
UiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJ
UyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VD
SCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBXZWJCYXR0ZXJ5TWFuYWdlclByb3h5X2gKKyNkZWZp
bmUgV2ViQmF0dGVyeU1hbmFnZXJQcm94eV9oCisKKyNpZiBFTkFCTEUoQkFUVEVSWV9TVEFUVVMp
CisKKyNpbmNsdWRlICJBUElPYmplY3QuaCIKKyNpbmNsdWRlICJNZXNzYWdlSUQuaCIKKyNpbmNs
dWRlICJXZWJCYXR0ZXJ5UHJvdmlkZXIuaCIKKyNpbmNsdWRlIDx3dGYvRm9yd2FyZC5oPgorCitu
YW1lc3BhY2UgQ29yZUlQQyB7CitjbGFzcyBBcmd1bWVudERlY29kZXI7CitjbGFzcyBDb25uZWN0
aW9uOworfQorCituYW1lc3BhY2UgV2ViS2l0IHsKKworY2xhc3MgV2ViQ29udGV4dDsKK2NsYXNz
IFdlYkJhdHRlcnlTdGF0dXM7CisKK2NsYXNzIFdlYkJhdHRlcnlNYW5hZ2VyUHJveHkgOiBwdWJs
aWMgQVBJT2JqZWN0IHsKK3B1YmxpYzoKKyAgICBzdGF0aWMgY29uc3QgVHlwZSBBUElUeXBlID0g
VHlwZUJhdHRlcnlNYW5hZ2VyOworCisgICAgc3RhdGljIFBhc3NSZWZQdHI8V2ViQmF0dGVyeU1h
bmFnZXJQcm94eT4gY3JlYXRlKFdlYkNvbnRleHQqKTsKKyAgICB2aXJ0dWFsIH5XZWJCYXR0ZXJ5
TWFuYWdlclByb3h5KCk7CisKKyAgICB2b2lkIGludmFsaWRhdGUoKTsKKyAgICB2b2lkIGNsZWFy
Q29udGV4dCgpIHsgbV9jb250ZXh0ID0gMDsgfQorCisgICAgdm9pZCBpbml0aWFsaXplUHJvdmlk
ZXIoY29uc3QgV0tCYXR0ZXJ5UHJvdmlkZXIqKTsKKworICAgIHZvaWQgcHJvdmlkZXJEaWRDaGFu
Z2VCYXR0ZXJ5U3RhdHVzKGNvbnN0IFdURjo6QXRvbWljU3RyaW5nJiwgV2ViQmF0dGVyeVN0YXR1
cyopOworICAgIHZvaWQgcHJvdmlkZXJVcGRhdGVCYXR0ZXJ5U3RhdHVzKFdlYkJhdHRlcnlTdGF0
dXMqKTsKKworICAgIHZvaWQgZGlkUmVjZWl2ZU1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbios
IENvcmVJUEM6Ok1lc3NhZ2VJRCwgQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyKik7CisKK3ByaXZh
dGU6CisgICAgZXhwbGljaXQgV2ViQmF0dGVyeU1hbmFnZXJQcm94eShXZWJDb250ZXh0Kik7CisK
KyAgICB2aXJ0dWFsIFR5cGUgdHlwZSgpIGNvbnN0IHsgcmV0dXJuIEFQSVR5cGU7IH0KKworICAg
IC8vIEltcGxlbWVudGVkIGluIGdlbmVyYXRlZCBXZWJCYXR0ZXJ5TWFuYWdlclByb3h5TWVzc2Fn
ZVJlY2VpdmVyLmNwcAorICAgIHZvaWQgZGlkUmVjZWl2ZVdlYkJhdHRlcnlNYW5hZ2VyUHJveHlN
ZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qLCBDb3JlSVBDOjpNZXNzYWdlSUQsIENvcmVJUEM6
OkFyZ3VtZW50RGVjb2RlciopOworCisgICAgdm9pZCBzdGFydFVwZGF0aW5nKCk7CisgICAgdm9p
ZCBzdG9wVXBkYXRpbmcoKTsKKworICAgIGJvb2wgbV9pc1VwZGF0aW5nOworCisgICAgV2ViQ29u
dGV4dCogbV9jb250ZXh0OworICAgIFdlYkJhdHRlcnlQcm92aWRlciBtX3Byb3ZpZGVyOworfTsK
KworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CisKKyNlbmRpZiAvLyBFTkFCTEUoQkFUVEVSWV9TVEFU
VVMpCisKKyNlbmRpZiAvLyBXZWJCYXR0ZXJ5TWFuYWdlclByb3h5X2gKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJCYXR0ZXJ5TWFuYWdlclByb3h5Lm1lc3NhZ2VzLmlu
IGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkJhdHRlcnlNYW5hZ2VyUHJveHkubWVzc2Fn
ZXMuaW4KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uM2ZhZWZhMQotLS0gL2Rl
di9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJCYXR0ZXJ5TWFuYWdlclBy
b3h5Lm1lc3NhZ2VzLmluCkBAIC0wLDAgKzEsMzAgQEAKKyMgQ29weXJpZ2h0IChDKSAyMDEyIElu
dGVsIENvcnBvcmF0aW9uLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorIworIyBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyMg
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zCisjIGFyZSBtZXQ6CisjIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNv
ZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorIyAgICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorIyAyLiAgUmVk
aXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyMgICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyMgICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVy
IG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisjCisjIFRISVMgU09G
VFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFT
IElTJycgQU5ECisjIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVECisjIFdBUlJBTlRJRVMgT0YgTUVSQ0hB
TlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKKyMgRElT
Q0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JT
IEJFIExJQUJMRSBGT1IKKyMgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJ
QUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTAorIyBEQU1BR0VTIChJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUgorIyBT
RVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVS
UlVQVElPTikgSE9XRVZFUgorIyBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZ
LCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLAorIyBPUiBUT1JUIChJTkNM
VURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0Yg
VEhFIFVTRQorIyBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLgorCisjaWYgRU5BQkxFKEJBVFRFUllfU1RBVFVTKQorCitt
ZXNzYWdlcyAtPiBXZWJCYXR0ZXJ5TWFuYWdlclByb3h5IHsKKyAgICBTdGFydFVwZGF0aW5nKCk7
CisgICAgU3RvcFVwZGF0aW5nKCk7Cit9CisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL1dlYkJhdHRlcnlQcm92aWRlci5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvV2ViQmF0dGVyeVByb3ZpZGVyLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwLi44Mjg0MTYwCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL1dlYkJhdHRlcnlQcm92aWRlci5jcHAKQEAgLTAsMCArMSw1NCBAQAorLyoKKyAqIENv
cHlyaWdodCAoQykgMjAxMiBJbnRlbCBDb3Jwb3JhdGlvbi4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
KyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlz
dHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCBy
ZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9j
dW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3Ry
aWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4g
QU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1Q
TElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJ
TVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBB
UlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQ
UExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNU
LCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VR
VUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1F
TlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRB
LCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNF
RCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNU
LCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhF
UldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZU
V0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1B
R0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIldlYkJhdHRlcnlQcm92
aWRlci5oIgorCisjaWYgRU5BQkxFKEJBVFRFUllfU1RBVFVTKQorCisjaW5jbHVkZSAiV0tBUElD
YXN0LmgiCisjaW5jbHVkZSAiV2ViQmF0dGVyeU1hbmFnZXJQcm94eS5oIgorCituYW1lc3BhY2Ug
V2ViS2l0IHsKKwordm9pZCBXZWJCYXR0ZXJ5UHJvdmlkZXI6OnN0YXJ0VXBkYXRpbmcoV2ViQmF0
dGVyeU1hbmFnZXJQcm94eSogYmF0dGVyeU1hbmFnZXIpCit7CisgICAgaWYgKCFtX2NsaWVudC5z
dGFydFVwZGF0aW5nKQorICAgICAgICByZXR1cm47CisKKyAgICBtX2NsaWVudC5zdGFydFVwZGF0
aW5nKHRvQVBJKGJhdHRlcnlNYW5hZ2VyKSwgbV9jbGllbnQuY2xpZW50SW5mbyk7Cit9CisKK3Zv
aWQgV2ViQmF0dGVyeVByb3ZpZGVyOjpzdG9wVXBkYXRpbmcoV2ViQmF0dGVyeU1hbmFnZXJQcm94
eSogYmF0dGVyeU1hbmFnZXIpCit7CisgICAgaWYgKCFtX2NsaWVudC5zdG9wVXBkYXRpbmcpCisg
ICAgICAgIHJldHVybjsKKworICAgIG1fY2xpZW50LnN0b3BVcGRhdGluZyh0b0FQSShiYXR0ZXJ5
TWFuYWdlciksIG1fY2xpZW50LmNsaWVudEluZm8pOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJL
aXQKKworI2VuZGlmIC8vIEVOQUJMRShCQVRURVJZX1NUQVRVUykKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJCYXR0ZXJ5UHJvdmlkZXIuaCBiL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9XZWJCYXR0ZXJ5UHJvdmlkZXIuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwLi5mNTk5MDY4Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL1dlYkJhdHRlcnlQcm92aWRlci5oCkBAIC0wLDAgKzEsNDkgQEAKKy8qCisgKiBDb3B5
cmlnaHQgKEMpIDIwMTIgSW50ZWwgQ29ycG9yYXRpb24uIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisg
KgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3Ry
aWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVw
cm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3Vt
ZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmli
dXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFO
RCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJ
RUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1Q
TElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJU
SUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBM
RSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwg
SU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVF
TlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5U
IE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwg
T1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQg
QU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwg
U1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJX
SVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdB
UkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdF
LgorICovCisKKyNpZm5kZWYgV2ViQmF0dGVyeVByb3ZpZGVyX2gKKyNkZWZpbmUgV2ViQmF0dGVy
eVByb3ZpZGVyX2gKKworI2lmIEVOQUJMRShCQVRURVJZX1NUQVRVUykKKworI2luY2x1ZGUgIkFQ
SUNsaWVudC5oIgorI2luY2x1ZGUgIldLQmF0dGVyeU1hbmFnZXIuaCIKKyNpbmNsdWRlIDx3dGYv
Rm9yd2FyZC5oPgorCituYW1lc3BhY2UgV2ViS2l0IHsKKworY2xhc3MgV2ViQmF0dGVyeU1hbmFn
ZXJQcm94eTsKKworY2xhc3MgV2ViQmF0dGVyeVByb3ZpZGVyIDogcHVibGljIEFQSUNsaWVudDxX
S0JhdHRlcnlQcm92aWRlciwga1dLQmF0dGVyeVByb3ZpZGVyQ3VycmVudFZlcnNpb24+IHsKK3B1
YmxpYzoKKyAgICB2b2lkIHN0YXJ0VXBkYXRpbmcoV2ViQmF0dGVyeU1hbmFnZXJQcm94eSopOwor
ICAgIHZvaWQgc3RvcFVwZGF0aW5nKFdlYkJhdHRlcnlNYW5hZ2VyUHJveHkqKTsKK307CisKK30g
Ly8gbmFtZXNwYWNlIFdlYktpdAorCisjZW5kaWYgLy8gRU5BQkxFKEJBVFRFUllfU1RBVFVTKQor
CisjZW5kaWYgLy8gV2ViQmF0dGVyeVByb3ZpZGVyX2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQyL1dlYktpdDIucHJpIGIvU291cmNlL1dlYktpdDIvV2ViS2l0Mi5wcmkKaW5kZXggMjRjYzVh
Mi4uNTQ1M2Y1MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViS2l0Mi5wcmkKKysrIGIv
U291cmNlL1dlYktpdDIvV2ViS2l0Mi5wcmkKQEAgLTM2LDYgKzM2LDcgQEAgSU5DTFVERVBBVEgg
Kz0gXAogICAgICQkU09VUkNFX0RJUi9XZWJQcm9jZXNzIFwKICAgICAkJFNPVVJDRV9ESVIvV2Vi
UHJvY2Vzcy9BcHBsaWNhdGlvbkNhY2hlIFwKICAgICAkJFNPVVJDRV9ESVIvV2ViUHJvY2Vzcy9B
dXRoZW50aWNhdGlvbiBcCisgICAgJCRTT1VSQ0VfRElSL1dlYlByb2Nlc3MvQmF0dGVyeSBcCiAg
ICAgJCRTT1VSQ0VfRElSL1dlYlByb2Nlc3MvQ29va2llcyBcCiAgICAgJCRTT1VSQ0VfRElSL1dl
YlByb2Nlc3MvQ29va2llcy9xdCBcCiAgICAgJCRTT1VSQ0VfRElSL1dlYlByb2Nlc3MvRG93bmxv
YWRzIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvQmF0dGVyeS9XZWJC
YXR0ZXJ5TWFuYWdlci5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0JhdHRlcnkvV2Vi
QmF0dGVyeU1hbmFnZXIuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjA0
ZGVjODYKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0JhdHRl
cnkvV2ViQmF0dGVyeU1hbmFnZXIuY3BwCkBAIC0wLDAgKzEsMTAyIEBACisvKgorICogQ29weXJp
Z2h0IChDKSAyMDEyIEludGVsIENvcnBvcmF0aW9uLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoK
KyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmli
dXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJv
ZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVu
dGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0
aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQg
SVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVE
IFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJ
RUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElD
VUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUg
SU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElO
RElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5U
SUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBP
RgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9S
IFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFO
RCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNU
UklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lT
RSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJF
LCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4K
KyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiV2ViQmF0dGVyeU1hbmFnZXIu
aCIKKworI2lmIEVOQUJMRShCQVRURVJZX1NUQVRVUykKKworI2luY2x1ZGUgIldlYkJhdHRlcnlN
YW5hZ2VyUHJveHlNZXNzYWdlcy5oIgorI2luY2x1ZGUgIldlYlBhZ2UuaCIKKyNpbmNsdWRlICJX
ZWJQcm9jZXNzLmgiCisjaW5jbHVkZSA8V2ViQ29yZS9CYXR0ZXJ5Q29udHJvbGxlci5oPgorI2lu
Y2x1ZGUgPFdlYkNvcmUvQmF0dGVyeVN0YXR1cy5oPgorI2luY2x1ZGUgPFdlYkNvcmUvUGFnZS5o
PgorCit1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKKworbmFtZXNwYWNlIFdlYktpdCB7CisKK1dl
YkJhdHRlcnlNYW5hZ2VyOjpXZWJCYXR0ZXJ5TWFuYWdlcihXZWJQcm9jZXNzKiBwcm9jZXNzKQor
ICAgIDogbV9wcm9jZXNzKHByb2Nlc3MpCit7Cit9CisKK1dlYkJhdHRlcnlNYW5hZ2VyOjp+V2Vi
QmF0dGVyeU1hbmFnZXIoKQoreworfQorCit2b2lkIFdlYkJhdHRlcnlNYW5hZ2VyOjpkaWRSZWNl
aXZlTWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiBjb25uZWN0aW9uLCBDb3JlSVBDOjpNZXNz
YWdlSUQgbWVzc2FnZUlELCBDb3JlSVBDOjpBcmd1bWVudERlY29kZXIqIGFyZ3VtZW50cykKK3sK
KyAgICBkaWRSZWNlaXZlV2ViQmF0dGVyeU1hbmFnZXJNZXNzYWdlKGNvbm5lY3Rpb24sIG1lc3Nh
Z2VJRCwgYXJndW1lbnRzKTsKK30KKwordm9pZCBXZWJCYXR0ZXJ5TWFuYWdlcjo6cmVnaXN0ZXJX
ZWJQYWdlKFdlYlBhZ2UqIHBhZ2UpCit7CisgICAgYm9vbCB3YXNFbXB0eSA9IG1fcGFnZVNldC5p
c0VtcHR5KCk7CisKKyAgICBtX3BhZ2VTZXQuYWRkKHBhZ2UpOworCisgICAgaWYgKHdhc0VtcHR5
KQorICAgICAgICBtX3Byb2Nlc3MtPmNvbm5lY3Rpb24oKS0+c2VuZChNZXNzYWdlczo6V2ViQmF0
dGVyeU1hbmFnZXJQcm94eTo6U3RhcnRVcGRhdGluZygpLCAwKTsKK30KKwordm9pZCBXZWJCYXR0
ZXJ5TWFuYWdlcjo6dW5yZWdpc3RlcldlYlBhZ2UoV2ViUGFnZSogcGFnZSkKK3sKKyAgICBtX3Bh
Z2VTZXQucmVtb3ZlKHBhZ2UpOworCisgICAgaWYgKG1fcGFnZVNldC5pc0VtcHR5KCkpCisgICAg
ICAgIG1fcHJvY2Vzcy0+Y29ubmVjdGlvbigpLT5zZW5kKE1lc3NhZ2VzOjpXZWJCYXR0ZXJ5TWFu
YWdlclByb3h5OjpTdG9wVXBkYXRpbmcoKSwgMCk7Cit9CisKK3ZvaWQgV2ViQmF0dGVyeU1hbmFn
ZXI6OmRpZENoYW5nZUJhdHRlcnlTdGF0dXMoY29uc3QgV1RGOjpBdG9taWNTdHJpbmcmIGV2ZW50
VHlwZSwgY29uc3QgV2ViQmF0dGVyeVN0YXR1czo6RGF0YSYgZGF0YSkKK3sKKyAgICBSZWZQdHI8
QmF0dGVyeVN0YXR1cz4gc3RhdHVzID0gQmF0dGVyeVN0YXR1czo6Y3JlYXRlKGRhdGEuaXNDaGFy
Z2luZywgZGF0YS5jaGFyZ2luZ1RpbWUsIGRhdGEuZGlzY2hhcmdpbmdUaW1lLCBkYXRhLmxldmVs
KTsKKworICAgIEhhc2hTZXQ8V2ViUGFnZSo+Ojpjb25zdF9pdGVyYXRvciBpdCA9IG1fcGFnZVNl
dC5iZWdpbigpOworICAgIEhhc2hTZXQ8V2ViUGFnZSo+Ojpjb25zdF9pdGVyYXRvciBlbmQgPSBt
X3BhZ2VTZXQuZW5kKCk7CisgICAgZm9yICg7IGl0ICE9IGVuZDsgKytpdCkgeworICAgICAgICBX
ZWJQYWdlKiBwYWdlID0gKml0OworICAgICAgICBpZiAocGFnZS0+Y29yZVBhZ2UoKSkKKyAgICAg
ICAgICAgIEJhdHRlcnlDb250cm9sbGVyOjpmcm9tKHBhZ2UtPmNvcmVQYWdlKCkpLT5kaWRDaGFu
Z2VCYXR0ZXJ5U3RhdHVzKGV2ZW50VHlwZSwgc3RhdHVzLmdldCgpKTsKKyAgICB9Cit9CisKK3Zv
aWQgV2ViQmF0dGVyeU1hbmFnZXI6OnVwZGF0ZUJhdHRlcnlTdGF0dXMoY29uc3QgV2ViQmF0dGVy
eVN0YXR1czo6RGF0YSYgZGF0YSkKK3sKKyAgICBSZWZQdHI8QmF0dGVyeVN0YXR1cz4gc3RhdHVz
ID0gQmF0dGVyeVN0YXR1czo6Y3JlYXRlKGRhdGEuaXNDaGFyZ2luZywgZGF0YS5jaGFyZ2luZ1Rp
bWUsIGRhdGEuZGlzY2hhcmdpbmdUaW1lLCBkYXRhLmxldmVsKTsKKworICAgIEhhc2hTZXQ8V2Vi
UGFnZSo+Ojpjb25zdF9pdGVyYXRvciBpdCA9IG1fcGFnZVNldC5iZWdpbigpOworICAgIEhhc2hT
ZXQ8V2ViUGFnZSo+Ojpjb25zdF9pdGVyYXRvciBlbmQgPSBtX3BhZ2VTZXQuZW5kKCk7CisgICAg
Zm9yICg7IGl0ICE9IGVuZDsgKytpdCkgeworICAgICAgICBXZWJQYWdlKiBwYWdlID0gKml0Owor
ICAgICAgICBpZiAocGFnZS0+Y29yZVBhZ2UoKSkKKyAgICAgICAgICAgIEJhdHRlcnlDb250cm9s
bGVyOjpmcm9tKHBhZ2UtPmNvcmVQYWdlKCkpLT51cGRhdGVCYXR0ZXJ5U3RhdHVzKHN0YXR1cy5n
ZXQoKSk7CisgICAgfQorfQorCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKKworI2VuZGlmIC8vIEVO
QUJMRShCQVRURVJZX1NUQVRVUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nl
c3MvQmF0dGVyeS9XZWJCYXR0ZXJ5TWFuYWdlci5oIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy9CYXR0ZXJ5L1dlYkJhdHRlcnlNYW5hZ2VyLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMC4uNTA5NzE4ZAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlBy
b2Nlc3MvQmF0dGVyeS9XZWJCYXR0ZXJ5TWFuYWdlci5oCkBAIC0wLDAgKzEsNzUgQEAKKy8qCisg
KiBDb3B5cmlnaHQgKEMpIDIwMTIgSW50ZWwgQ29ycG9yYXRpb24uIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBS
ZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11
c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAg
IGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBk
aXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJ
TkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9S
IElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBU
SEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1Ig
QSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFM
TCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJ
UkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENP
TlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NV
UkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwg
REFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBD
QVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05U
UkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1Ig
T1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMg
U09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gg
REFNQUdFLgorICovCisKKyNpZm5kZWYgV2ViQmF0dGVyeU1hbmFnZXJfaAorI2RlZmluZSBXZWJC
YXR0ZXJ5TWFuYWdlcl9oCisKKyNpZiBFTkFCTEUoQkFUVEVSWV9TVEFUVVMpCisKKyNpbmNsdWRl
ICJNZXNzYWdlSUQuaCIKKyNpbmNsdWRlICJXZWJCYXR0ZXJ5U3RhdHVzLmgiCisjaW5jbHVkZSAi
V2ViQ29yZUFyZ3VtZW50Q29kZXJzLmgiCisjaW5jbHVkZSA8d3RmL0hhc2hTZXQuaD4KKyNpbmNs
dWRlIDx3dGYvTm9uY29weWFibGUuaD4KKyNpbmNsdWRlIDx3dGYvdGV4dC9BdG9taWNTdHJpbmcu
aD4KKworbmFtZXNwYWNlIENvcmVJUEMgeworY2xhc3MgQXJndW1lbnREZWNvZGVyOworY2xhc3Mg
Q29ubmVjdGlvbjsKK30KKworbmFtZXNwYWNlIFdlYktpdCB7CisKK2NsYXNzIFdlYlBhZ2U7Citj
bGFzcyBXZWJQcm9jZXNzOworCitjbGFzcyBXZWJCYXR0ZXJ5TWFuYWdlciB7CisgICAgV1RGX01B
S0VfTk9OQ09QWUFCTEUoV2ViQmF0dGVyeU1hbmFnZXIpOworCitwdWJsaWM6CisgICAgZXhwbGlj
aXQgV2ViQmF0dGVyeU1hbmFnZXIoV2ViUHJvY2VzcyopOworICAgIH5XZWJCYXR0ZXJ5TWFuYWdl
cigpOworCisgICAgdm9pZCByZWdpc3RlcldlYlBhZ2UoV2ViUGFnZSopOworICAgIHZvaWQgdW5y
ZWdpc3RlcldlYlBhZ2UoV2ViUGFnZSopOworCisgICAgdm9pZCBkaWRDaGFuZ2VCYXR0ZXJ5U3Rh
dHVzKGNvbnN0IFdURjo6QXRvbWljU3RyaW5nJiBldmVudFR5cGUsIGNvbnN0IFdlYkJhdHRlcnlT
dGF0dXM6OkRhdGEmKTsKKyAgICB2b2lkIHVwZGF0ZUJhdHRlcnlTdGF0dXMoY29uc3QgV2ViQmF0
dGVyeVN0YXR1czo6RGF0YSYpOworCisgICAgdm9pZCBkaWRSZWNlaXZlTWVzc2FnZShDb3JlSVBD
OjpDb25uZWN0aW9uKiwgQ29yZUlQQzo6TWVzc2FnZUlELCBDb3JlSVBDOjpBcmd1bWVudERlY29k
ZXIqKTsKKworcHJpdmF0ZToKKyAgICAvLyBJbXBsZW1lbnRlZCBpbiBnZW5lcmF0ZWQgV2ViQmF0
dGVyeU1hbmFnZXJNZXNzYWdlUmVjZWl2ZXIuY3BwCisgICAgdm9pZCBkaWRSZWNlaXZlV2ViQmF0
dGVyeU1hbmFnZXJNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qLCBDb3JlSVBDOjpNZXNzYWdl
SUQsIENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciopOworCisgICAgV2ViUHJvY2VzcyogbV9wcm9j
ZXNzOworICAgIEhhc2hTZXQ8V2ViUGFnZSo+IG1fcGFnZVNldDsKK307CisKK30gLy8gbmFtZXNw
YWNlIFdlYktpdAorCisjZW5kaWYgLy8gRU5BQkxFKEJBVFRFUllfU1RBVFVTKQorCisjZW5kaWYg
Ly8gV2ViQmF0dGVyeU1hbmFnZXJfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJv
Y2Vzcy9CYXR0ZXJ5L1dlYkJhdHRlcnlNYW5hZ2VyLm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktp
dDIvV2ViUHJvY2Vzcy9CYXR0ZXJ5L1dlYkJhdHRlcnlNYW5hZ2VyLm1lc3NhZ2VzLmluCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjM3ZTczZWYKLS0tIC9kZXYvbnVsbAorKysg
Yi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0JhdHRlcnkvV2ViQmF0dGVyeU1hbmFnZXIubWVz
c2FnZXMuaW4KQEAgLTAsMCArMSwzMCBAQAorIyBDb3B5cmlnaHQgKEMpIDIwMTIgSW50ZWwgQ29y
cG9yYXRpb24uIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisjCisjIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorIyBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMKKyMgYXJlIG1ldDoKKyMgMS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0
IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisjICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisjIDIuICBSZWRpc3RyaWJ1
dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAor
IyAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyIGluIHRoZQorIyAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJp
YWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyMKKyMgVEhJUyBTT0ZUV0FSRSBJ
UyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJyBB
TkQKKyMgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQKKyMgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRQorIyBESVNDTEFJTUVE
LiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMgQkUgTElB
QkxFIEZPUgorIyBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhF
TVBMQVJZLCBPUiBDT05TRVFVRU5USUFMCisjIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SCisjIFNFUlZJQ0VT
OyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9O
KSBIT1dFVkVSCisjIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRI
RVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksCisjIE9SIFRPUlQgKElOQ0xVRElORyBO
RUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNF
CisjIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkg
T0YgU1VDSCBEQU1BR0UuCisKKyNpZiBFTkFCTEUoQkFUVEVSWV9TVEFUVVMpCisKK21lc3NhZ2Vz
IC0+IFdlYkJhdHRlcnlNYW5hZ2VyIHsKKyAgICBEaWRDaGFuZ2VCYXR0ZXJ5U3RhdHVzKEF0b21p
Y1N0cmluZyBldmVudFR5cGUsIFdlYktpdDo6V2ViQmF0dGVyeVN0YXR1czo6RGF0YSBzdGF0dXMp
OworICAgIFVwZGF0ZUJhdHRlcnlTdGF0dXMoV2ViS2l0OjpXZWJCYXR0ZXJ5U3RhdHVzOjpEYXRh
IHN0YXR1cyk7Cit9CisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJv
Y2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJCYXR0ZXJ5Q2xpZW50LmNwcCBiL1NvdXJjZS9XZWJLaXQy
L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQmF0dGVyeUNsaWVudC5jcHAKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOTEwMzNmYQotLS0gL2Rldi9udWxsCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQmF0dGVyeUNsaWVudC5j
cHAKQEAgLTAsMCArMSw1NyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMiBJbnRlbCBDb3Jw
b3JhdGlvbi4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBt
dXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3Ry
aWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0
ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRX
QVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJ
UycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hB
TlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJ
U0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9S
UworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BF
Q0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMg
T1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwor
ICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFC
SUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JU
IChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBX
QVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisg
KiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZp
Zy5oIgorI2luY2x1ZGUgIldlYkJhdHRlcnlDbGllbnQuaCIKKworI2lmIEVOQUJMRShCQVRURVJZ
X1NUQVRVUykKKworI2luY2x1ZGUgIldlYkJhdHRlcnlNYW5hZ2VyLmgiCisjaW5jbHVkZSAiV2Vi
UGFnZS5oIgorI2luY2x1ZGUgIldlYlByb2Nlc3MuaCIKKwordXNpbmcgbmFtZXNwYWNlIFdlYkNv
cmU7CisKK25hbWVzcGFjZSBXZWJLaXQgeworCit2b2lkIFdlYkJhdHRlcnlDbGllbnQ6OnN0YXJ0
VXBkYXRpbmcoKQoreworICAgIFdlYlByb2Nlc3M6OnNoYXJlZCgpLmJhdHRlcnlNYW5hZ2VyKCku
cmVnaXN0ZXJXZWJQYWdlKG1fcGFnZSk7Cit9CisKK3ZvaWQgV2ViQmF0dGVyeUNsaWVudDo6c3Rv
cFVwZGF0aW5nKCkKK3sKKyAgICBXZWJQcm9jZXNzOjpzaGFyZWQoKS5iYXR0ZXJ5TWFuYWdlcigp
LnVucmVnaXN0ZXJXZWJQYWdlKG1fcGFnZSk7Cit9CisKK3ZvaWQgV2ViQmF0dGVyeUNsaWVudDo6
YmF0dGVyeUNvbnRyb2xsZXJEZXN0cm95ZWQoKQoreworICAgIFdlYlByb2Nlc3M6OnNoYXJlZCgp
LmJhdHRlcnlNYW5hZ2VyKCkudW5yZWdpc3RlcldlYlBhZ2UobV9wYWdlKTsKKyAgICBkZWxldGUg
dGhpczsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CisKKyNlbmRpZiAvLyBFTkFCTEUoQkFU
VEVSWV9TVEFUVVMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNv
cmVTdXBwb3J0L1dlYkJhdHRlcnlDbGllbnQuaCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
V2ViQ29yZVN1cHBvcnQvV2ViQmF0dGVyeUNsaWVudC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAuLmIyNjBjNjIKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9X
ZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkJhdHRlcnlDbGllbnQuaApAQCAtMCwwICsxLDU4
IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEyIEludGVsIENvcnBvcmF0aW9uLiBBbGwgcmln
aHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0
OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5h
cnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4g
dGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQg
d2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQg
QlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkg
RVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJ
VE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8g
RVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUg
Rk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlks
IE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9T
UyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04p
IEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJ
TgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdM
SUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVT
RSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElU
WSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVmIFdlYkJhdHRlcnlDbGllbnRfaAorI2Rl
ZmluZSBXZWJCYXR0ZXJ5Q2xpZW50X2gKKworI2lmIEVOQUJMRShCQVRURVJZX1NUQVRVUykKKwor
I2luY2x1ZGUgPFdlYkNvcmUvQmF0dGVyeUNsaWVudC5oPgorCituYW1lc3BhY2UgV2ViS2l0IHsK
KworY2xhc3MgV2ViUGFnZTsKKworY2xhc3MgV2ViQmF0dGVyeUNsaWVudCA6IHB1YmxpYyBXZWJD
b3JlOjpCYXR0ZXJ5Q2xpZW50IHsKK3B1YmxpYzoKKyAgICBXZWJCYXR0ZXJ5Q2xpZW50KFdlYlBh
Z2UqIHBhZ2UpCisgICAgICAgIDogbV9wYWdlKHBhZ2UpCisgICAgeworICAgIH0KKworICAgIHZp
cnR1YWwgfldlYkJhdHRlcnlDbGllbnQoKSB7IH0KKworcHJpdmF0ZToKKyAgICB2aXJ0dWFsIHZv
aWQgc3RhcnRVcGRhdGluZygpIE9WRVJSSURFOworICAgIHZpcnR1YWwgdm9pZCBzdG9wVXBkYXRp
bmcoKSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIHZvaWQgYmF0dGVyeUNvbnRyb2xsZXJEZXN0cm95
ZWQoKSBPVkVSUklERTsKKworICAgIFdlYlBhZ2UqIG1fcGFnZTsKK307CisKK30gLy8gbmFtZXNw
YWNlIFdlYktpdAorCisjZW5kaWYgLy8gRU5BQkxFKEJBVFRFUllfU1RBVFVTKQorCisjZW5kaWYg
Ly8gV2ViQmF0dGVyeUNsaWVudF9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9j
ZXNzL1dlYlByb2Nlc3MuY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQcm9jZXNz
LmNwcAppbmRleCAyYjAzODJkLi5mZGYyNWQ0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9X
ZWJQcm9jZXNzL1dlYlByb2Nlc3MuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
V2ViUHJvY2Vzcy5jcHAKQEAgLTE0NSw2ICsxNDUsOSBAQCBXZWJQcm9jZXNzOjpXZWJQcm9jZXNz
KCkKICNlbmRpZgogICAgICwgbV90ZXh0Q2hlY2tlclN0YXRlKCkKICAgICAsIG1fZ2VvbG9jYXRp
b25NYW5hZ2VyKHRoaXMpCisjaWYgRU5BQkxFKEJBVFRFUllfU1RBVFVTKQorICAgICwgbV9iYXR0
ZXJ5TWFuYWdlcih0aGlzKQorI2VuZGlmCiAjaWYgRU5BQkxFKE5PVElGSUNBVElPTlMpIHx8IEVO
QUJMRShMRUdBQ1lfTk9USUZJQ0FUSU9OUykKICAgICAsIG1fbm90aWZpY2F0aW9uTWFuYWdlcih0
aGlzKQogI2VuZGlmCkBAIC02MzEsNiArNjM0LDEzIEBAIHZvaWQgV2ViUHJvY2Vzczo6ZGlkUmVj
ZWl2ZU1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiogY29ubmVjdGlvbiwgQ29yZUlQQzo6TWVz
CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKKyNpZiBFTkFCTEUoQkFUVEVSWV9TVEFUVVMpCisg
ICAgaWYgKG1lc3NhZ2VJRC5pczxDb3JlSVBDOjpNZXNzYWdlQ2xhc3NXZWJCYXR0ZXJ5TWFuYWdl
cj4oKSkgeworICAgICAgICBtX2JhdHRlcnlNYW5hZ2VyLmRpZFJlY2VpdmVNZXNzYWdlKGNvbm5l
Y3Rpb24sIG1lc3NhZ2VJRCwgYXJndW1lbnRzKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKyNl
bmRpZgorCiAgICAgaWYgKG1lc3NhZ2VJRC5pczxDb3JlSVBDOjpNZXNzYWdlQ2xhc3NXZWJJY29u
RGF0YWJhc2VQcm94eT4oKSkgewogICAgICAgICBtX2ljb25EYXRhYmFzZVByb3h5LmRpZFJlY2Vp
dmVNZXNzYWdlKGNvbm5lY3Rpb24sIG1lc3NhZ2VJRCwgYXJndW1lbnRzKTsKICAgICAgICAgcmV0
dXJuOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmgg
Yi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuaAppbmRleCA5ODZjZTM2Li5j
YzBhN2Y5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlByb2Nlc3Mu
aAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuaApAQCAtNTcsNiAr
NTcsMTAgQEAgY2xhc3MgUU5ldHdvcmtBY2Nlc3NNYW5hZ2VyOwogI2luY2x1ZGUgPGRpc3BhdGNo
L2Rpc3BhdGNoLmg+CiAjZW5kaWYKIAorI2lmIEVOQUJMRShCQVRURVJZX1NUQVRVUykKKyNpbmNs
dWRlICJXZWJCYXR0ZXJ5TWFuYWdlci5oIgorI2VuZGlmCisKICNpZiBFTkFCTEUoTk9USUZJQ0FU
SU9OUykgfHwgRU5BQkxFKExFR0FDWV9OT1RJRklDQVRJT05TKQogI2luY2x1ZGUgIldlYk5vdGlm
aWNhdGlvbk1hbmFnZXIuaCIKICNlbmRpZgpAQCAtMTQyLDYgKzE0NiwxMCBAQCBwdWJsaWM6CiAK
ICAgICAvLyBHZW9sb2NhdGlvbgogICAgIFdlYkdlb2xvY2F0aW9uTWFuYWdlciYgZ2VvbG9jYXRp
b25NYW5hZ2VyKCkgeyByZXR1cm4gbV9nZW9sb2NhdGlvbk1hbmFnZXI7IH0KKworI2lmIEVOQUJM
RShCQVRURVJZX1NUQVRVUykKKyAgICBXZWJCYXR0ZXJ5TWFuYWdlciYgYmF0dGVyeU1hbmFnZXIo
KSB7IHJldHVybiBtX2JhdHRlcnlNYW5hZ2VyOyB9CisjZW5kaWYKICAgICAKICNpZiBFTkFCTEUo
Tk9USUZJQ0FUSU9OUykgfHwgRU5BQkxFKExFR0FDWV9OT1RJRklDQVRJT05TKQogICAgIFdlYk5v
dGlmaWNhdGlvbk1hbmFnZXImIG5vdGlmaWNhdGlvbk1hbmFnZXIoKSB7IHJldHVybiBtX25vdGlm
aWNhdGlvbk1hbmFnZXI7IH0KQEAgLTI4Niw2ICsyOTQsOSBAQCBwcml2YXRlOgogCiAgICAgVGV4
dENoZWNrZXJTdGF0ZSBtX3RleHRDaGVja2VyU3RhdGU7CiAgICAgV2ViR2VvbG9jYXRpb25NYW5h
Z2VyIG1fZ2VvbG9jYXRpb25NYW5hZ2VyOworI2lmIEVOQUJMRShCQVRURVJZX1NUQVRVUykKKyAg
ICBXZWJCYXR0ZXJ5TWFuYWdlciBtX2JhdHRlcnlNYW5hZ2VyOworI2VuZGlmCiAjaWYgRU5BQkxF
KE5PVElGSUNBVElPTlMpIHx8IEVOQUJMRShMRUdBQ1lfTk9USUZJQ0FUSU9OUykKICAgICBXZWJO
b3RpZmljYXRpb25NYW5hZ2VyIG1fbm90aWZpY2F0aW9uTWFuYWdlcjsKICNlbmRpZgo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>148734</attachid>
            <date>2012-06-20 22:57:46 -0700</date>
            <delta_ts>2012-07-03 16:34:12 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>89558_battery_status_wk2.patch</filename>
            <type>text/plain</type>
            <size>59318</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NNYWtlTGlzdHMudHh0IGIvU291cmNlL1dlYktp
dDIvQ01ha2VMaXN0cy50eHQKaW5kZXggYjhjNjAzMy4uOGQ5MzU3NCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdDIvQ01ha2VMaXN0cy50eHQKKysrIGIvU291cmNlL1dlYktpdDIvQ01ha2VMaXN0
cy50eHQKQEAgLTIyLDYgKzIyLDcgQEAgU0VUKFdlYktpdDJfSU5DTFVERV9ESVJFQ1RPUklFUwog
ICAgICIke1dFQktJVDJfRElSfS9XZWJQcm9jZXNzIgogICAgICIke1dFQktJVDJfRElSfS9XZWJQ
cm9jZXNzL0FwcGxpY2F0aW9uQ2FjaGUiCiAgICAgIiR7V0VCS0lUMl9ESVJ9L1dlYlByb2Nlc3Mv
QXV0aGVudGljYXRpb24iCisgICAgIiR7V0VCS0lUMl9ESVJ9L1dlYlByb2Nlc3MvQmF0dGVyeSIK
ICAgICAiJHtXRUJLSVQyX0RJUn0vV2ViUHJvY2Vzcy9Db29raWVzIgogICAgICIke1dFQktJVDJf
RElSfS9XZWJQcm9jZXNzL0Rvd25sb2FkcyIKICAgICAiJHtXRUJLSVQyX0RJUn0vV2ViUHJvY2Vz
cy9GdWxsU2NyZWVuIgpAQCAtMTM3LDYgKzEzOCw3IEBAIFNFVChXZWJLaXQyX1NPVVJDRVMKICAg
ICBTaGFyZWQvVXBkYXRlSW5mby5jcHAKICAgICBTaGFyZWQvVmlzaXRlZExpbmtUYWJsZS5jcHAK
ICAgICBTaGFyZWQvV2ViQmFja0ZvcndhcmRMaXN0SXRlbS5jcHAKKyAgICBTaGFyZWQvV2ViQmF0
dGVyeVN0YXR1cy5jcHAKICAgICBTaGFyZWQvV2ViQ29ubmVjdGlvbi5jcHAKICAgICBTaGFyZWQv
V2ViQ29ubmVjdGlvbkNsaWVudC5jcHAKICAgICBTaGFyZWQvV2ViQ29udGV4dE1lbnVJdGVtLmNw
cApAQCAtMjE0LDYgKzIxNiw4IEBAIFNFVChXZWJLaXQyX1NPVVJDRVMKICAgICBVSVByb2Nlc3Mv
VmlzaXRlZExpbmtQcm92aWRlci5jcHAKICAgICBVSVByb2Nlc3MvV2ViQXBwbGljYXRpb25DYWNo
ZU1hbmFnZXJQcm94eS5jcHAKICAgICBVSVByb2Nlc3MvV2ViQmFja0ZvcndhcmRMaXN0LmNwcAor
ICAgIFVJUHJvY2Vzcy9XZWJCYXR0ZXJ5TWFuYWdlclByb3h5LmNwcAorICAgIFVJUHJvY2Vzcy9X
ZWJCYXR0ZXJ5UHJvdmlkZXIuY3BwCiAgICAgVUlQcm9jZXNzL1dlYkNvbm5lY3Rpb25Ub1dlYlBy
b2Nlc3MuY3BwCiAgICAgVUlQcm9jZXNzL1dlYkNvbnRleHQuY3BwCiAgICAgVUlQcm9jZXNzL1dl
YkNvbnRleHRDb25uZWN0aW9uQ2xpZW50LmNwcApAQCAtMjY0LDYgKzI2OCw3IEBAIFNFVChXZWJL
aXQyX1NPVVJDRVMKICAgICBVSVByb2Nlc3MvQVBJL0MvV0tBdXRoZW50aWNhdGlvbkRlY2lzaW9u
TGlzdGVuZXIuY3BwCiAgICAgVUlQcm9jZXNzL0FQSS9DL1dLQmFja0ZvcndhcmRMaXN0LmNwcAog
ICAgIFVJUHJvY2Vzcy9BUEkvQy9XS0JhY2tGb3J3YXJkTGlzdEl0ZW0uY3BwCisgICAgVUlQcm9j
ZXNzL0FQSS9DL1dLQmF0dGVyeU1hbmFnZXIuY3BwCiAgICAgVUlQcm9jZXNzL0FQSS9DL1dLQ29u
dGV4dC5jcHAKICAgICBVSVByb2Nlc3MvQVBJL0MvV0tDb29raWVNYW5hZ2VyLmNwcAogICAgIFVJ
UHJvY2Vzcy9BUEkvQy9XS0NyZWRlbnRpYWwuY3BwCkBAIC0zMjcsNiArMzMyLDggQEAgU0VUKFdl
YktpdDJfU09VUkNFUwogCiAgICAgV2ViUHJvY2Vzcy9BdXRoZW50aWNhdGlvbi9BdXRoZW50aWNh
dGlvbk1hbmFnZXIuY3BwCiAKKyAgICBXZWJQcm9jZXNzL0JhdHRlcnkvV2ViQmF0dGVyeU1hbmFn
ZXIuY3BwCisKICAgICBXZWJQcm9jZXNzL0Nvb2tpZXMvV2ViQ29va2llTWFuYWdlci5jcHAKIAog
ICAgIFdlYlByb2Nlc3MvRG93bmxvYWRzL0Rvd25sb2FkLmNwcApAQCAtNDAwLDYgKzQwNyw3IEBA
IFNFVChXZWJLaXQyX1NPVVJDRVMKIAogICAgIFdlYlByb2Nlc3MvUmVzb3VyY2VDYWNoZS9XZWJS
ZXNvdXJjZUNhY2hlTWFuYWdlci5jcHAKIAorICAgIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQv
V2ViQmF0dGVyeUNsaWVudC5jcHAKICAgICBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNo
cm9tZUNsaWVudC5jcHAKICAgICBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNvbG9yQ2hv
b3Nlci5jcHAKICAgICBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNvbnRleHRNZW51Q2xp
ZW50LmNwcApAQCAtNDQ2LDYgKzQ1NCw3IEBAIFNFVChXZWJLaXQyX01FU1NBR0VTX0lOX0ZJTEVT
CiAgICAgVUlQcm9jZXNzL0RyYXdpbmdBcmVhUHJveHkubWVzc2FnZXMuaW4KICAgICBVSVByb2Nl
c3MvTGF5ZXJUcmVlSG9zdFByb3h5Lm1lc3NhZ2VzLmluCiAgICAgVUlQcm9jZXNzL1dlYkFwcGxp
Y2F0aW9uQ2FjaGVNYW5hZ2VyUHJveHkubWVzc2FnZXMuaW4KKyAgICBVSVByb2Nlc3MvV2ViQmF0
dGVyeU1hbmFnZXJQcm94eS5tZXNzYWdlcy5pbgogICAgIFVJUHJvY2Vzcy9XZWJDb250ZXh0Lm1l
c3NhZ2VzLmluCiAgICAgVUlQcm9jZXNzL1dlYkNvb2tpZU1hbmFnZXJQcm94eS5tZXNzYWdlcy5p
bgogICAgIFVJUHJvY2Vzcy9XZWJEYXRhYmFzZU1hbmFnZXJQcm94eS5tZXNzYWdlcy5pbgpAQCAt
NDcxLDYgKzQ4MCw4IEBAIFNFVChXZWJLaXQyX01FU1NBR0VTX0lOX0ZJTEVTCiAKICAgICBXZWJQ
cm9jZXNzL0F1dGhlbnRpY2F0aW9uL0F1dGhlbnRpY2F0aW9uTWFuYWdlci5tZXNzYWdlcy5pbgog
CisgICAgV2ViUHJvY2Vzcy9CYXR0ZXJ5L1dlYkJhdHRlcnlNYW5hZ2VyLm1lc3NhZ2VzLmluCisK
ICAgICBXZWJQcm9jZXNzL0Nvb2tpZXMvV2ViQ29va2llTWFuYWdlci5tZXNzYWdlcy5pbgogCiAg
ICAgV2ViUHJvY2Vzcy9GdWxsU2NyZWVuL1dlYkZ1bGxTY3JlZW5NYW5hZ2VyLm1lc3NhZ2VzLmlu
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cKaW5kZXggNjc5Y2ZlMS4uNTA5MTZlNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dDIvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEw
MCBAQAorMjAxMi0wNi0yMCAgQ2hyaXN0b3BoZSBEdW1leiAgPGNocmlzdG9waGUuZHVtZXpAaW50
ZWwuY29tPgorCisgICAgICAgIFtXSzJdIEFkZCBzdXBwb3J0IGZvciBCYXR0ZXJ5IFN0YXR1cyBB
UEkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTg5NTU4
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkIHN1
cHBvcnQgZm9yIEJhdHRlcnkgU3RhdHVzIEFQSSB0byBXZWJLaXQyLgorCisgICAgICAgICogQ01h
a2VMaXN0cy50eHQ6CisgICAgICAgICogRGVyaXZlZFNvdXJjZXMucHJpOgorICAgICAgICAqIEdO
VW1ha2VmaWxlLmFtOgorICAgICAgICAqIEdOVW1ha2VmaWxlLmxpc3QuYW06CisgICAgICAgICog
UGxhdGZvcm0vQ29yZUlQQy9NZXNzYWdlSUQuaDoKKyAgICAgICAgKiBTaGFyZWQvQVBJL2MvV0tC
YXNlLmg6CisgICAgICAgICogU2hhcmVkL0FQSU9iamVjdC5oOgorICAgICAgICAqIFNoYXJlZC9X
ZWJCYXR0ZXJ5U3RhdHVzLmNwcDogQWRkZWQuCisgICAgICAgIChXZWJLaXQpOgorICAgICAgICAo
V2ViS2l0OjpXZWJCYXR0ZXJ5U3RhdHVzOjpXZWJCYXR0ZXJ5U3RhdHVzKToKKyAgICAgICAgKFdl
YktpdDo6V2ViQmF0dGVyeVN0YXR1czo6fldlYkJhdHRlcnlTdGF0dXMpOgorICAgICAgICAoV2Vi
S2l0OjpXZWJCYXR0ZXJ5U3RhdHVzOjpEYXRhOjplbmNvZGUpOgorICAgICAgICAoV2ViS2l0OjpX
ZWJCYXR0ZXJ5U3RhdHVzOjpEYXRhOjpkZWNvZGUpOgorICAgICAgICAqIFNoYXJlZC9XZWJCYXR0
ZXJ5U3RhdHVzLmg6IEFkZGVkLgorICAgICAgICAoV2ViS2l0KToKKyAgICAgICAgKFdlYkJhdHRl
cnlTdGF0dXMpOgorICAgICAgICAoRGF0YSk6CisgICAgICAgIChXZWJLaXQ6OldlYkJhdHRlcnlT
dGF0dXM6OmNyZWF0ZSk6CisgICAgICAgIChXZWJLaXQ6OldlYkJhdHRlcnlTdGF0dXM6OmlzQ2hh
cmdpbmcpOgorICAgICAgICAoV2ViS2l0OjpXZWJCYXR0ZXJ5U3RhdHVzOjpjaGFyZ2luZ1RpbWUp
OgorICAgICAgICAoV2ViS2l0OjpXZWJCYXR0ZXJ5U3RhdHVzOjpkaXNjaGFyZ2luZ1RpbWUpOgor
ICAgICAgICAoV2ViS2l0OjpXZWJCYXR0ZXJ5U3RhdHVzOjpsZXZlbCk6CisgICAgICAgIChXZWJL
aXQ6OldlYkJhdHRlcnlTdGF0dXM6OmRhdGEpOgorICAgICAgICAoV2ViS2l0OjpXZWJCYXR0ZXJ5
U3RhdHVzOjp0eXBlKToKKyAgICAgICAgKiBUYXJnZXQucHJpOgorICAgICAgICAqIFVJUHJvY2Vz
cy9BUEkvQy9XS0FQSUNhc3QuaDoKKyAgICAgICAgKFdlYktpdCk6CisgICAgICAgICogVUlQcm9j
ZXNzL0FQSS9DL1dLQmF0dGVyeU1hbmFnZXIuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdLQmF0dGVy
eU1hbmFnZXJHZXRUeXBlSUQpOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQy9XS0JhdHRlcnlN
YW5hZ2VyLmg6IEFkZGVkLgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJCYXR0ZXJ5TWFuYWdlclBy
b3h5LmNwcDogQWRkZWQuCisgICAgICAgIChXZWJLaXQpOgorICAgICAgICAoV2ViS2l0OjpXZWJC
YXR0ZXJ5TWFuYWdlclByb3h5OjpjcmVhdGUpOgorICAgICAgICAoV2ViS2l0OjpXZWJCYXR0ZXJ5
TWFuYWdlclByb3h5OjpXZWJCYXR0ZXJ5TWFuYWdlclByb3h5KToKKyAgICAgICAgKFdlYktpdDo6
V2ViQmF0dGVyeU1hbmFnZXJQcm94eTo6fldlYkJhdHRlcnlNYW5hZ2VyUHJveHkpOgorICAgICAg
ICAoV2ViS2l0OjpXZWJCYXR0ZXJ5TWFuYWdlclByb3h5OjppbnZhbGlkYXRlKToKKyAgICAgICAg
KFdlYktpdDo6V2ViQmF0dGVyeU1hbmFnZXJQcm94eTo6aW5pdGlhbGl6ZVByb3ZpZGVyKToKKyAg
ICAgICAgKFdlYktpdDo6V2ViQmF0dGVyeU1hbmFnZXJQcm94eTo6ZGlkUmVjZWl2ZU1lc3NhZ2Up
OgorICAgICAgICAoV2ViS2l0OjpXZWJCYXR0ZXJ5TWFuYWdlclByb3h5OjpzdGFydFVwZGF0aW5n
KToKKyAgICAgICAgKFdlYktpdDo6V2ViQmF0dGVyeU1hbmFnZXJQcm94eTo6c3RvcFVwZGF0aW5n
KToKKyAgICAgICAgKFdlYktpdDo6V2ViQmF0dGVyeU1hbmFnZXJQcm94eTo6cHJvdmlkZXJEaWRD
aGFuZ2VCYXR0ZXJ5U3RhdHVzKToKKyAgICAgICAgKFdlYktpdDo6V2ViQmF0dGVyeU1hbmFnZXJQ
cm94eTo6cHJvdmlkZXJVcGRhdGVCYXR0ZXJ5U3RhdHVzKToKKyAgICAgICAgKiBVSVByb2Nlc3Mv
V2ViQmF0dGVyeU1hbmFnZXJQcm94eS5oOiBBZGRlZC4KKyAgICAgICAgKENvcmVJUEMpOgorICAg
ICAgICAoV2ViS2l0KToKKyAgICAgICAgKFdlYkJhdHRlcnlNYW5hZ2VyUHJveHkpOgorICAgICAg
ICAoV2ViS2l0OjpXZWJCYXR0ZXJ5TWFuYWdlclByb3h5OjpjbGVhckNvbnRleHQpOgorICAgICAg
ICAoV2ViS2l0OjpXZWJCYXR0ZXJ5TWFuYWdlclByb3h5Ojp0eXBlKToKKyAgICAgICAgKiBVSVBy
b2Nlc3MvV2ViQmF0dGVyeU1hbmFnZXJQcm94eS5tZXNzYWdlcy5pbjogQWRkZWQuCisgICAgICAg
ICogVUlQcm9jZXNzL1dlYkJhdHRlcnlQcm92aWRlci5jcHA6IEFkZGVkLgorICAgICAgICAoV2Vi
S2l0KToKKyAgICAgICAgKFdlYktpdDo6V2ViQmF0dGVyeVByb3ZpZGVyOjpzdGFydFVwZGF0aW5n
KToKKyAgICAgICAgKFdlYktpdDo6V2ViQmF0dGVyeVByb3ZpZGVyOjpzdG9wVXBkYXRpbmcpOgor
ICAgICAgICAqIFVJUHJvY2Vzcy9XZWJCYXR0ZXJ5UHJvdmlkZXIuaDogQWRkZWQuCisgICAgICAg
IChXZWJLaXQpOgorICAgICAgICAoV2ViQmF0dGVyeVByb3ZpZGVyKToKKyAgICAgICAgKiBXZWJL
aXQyLnByaToKKyAgICAgICAgKiBXZWJQcm9jZXNzL0JhdHRlcnkvV2ViQmF0dGVyeU1hbmFnZXIu
Y3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYktpdCk6CisgICAgICAgIChXZWJLaXQ6OldlYkJhdHRl
cnlNYW5hZ2VyOjpXZWJCYXR0ZXJ5TWFuYWdlcik6CisgICAgICAgIChXZWJLaXQ6OldlYkJhdHRl
cnlNYW5hZ2VyOjp+V2ViQmF0dGVyeU1hbmFnZXIpOgorICAgICAgICAoV2ViS2l0OjpXZWJCYXR0
ZXJ5TWFuYWdlcjo6ZGlkUmVjZWl2ZU1lc3NhZ2UpOgorICAgICAgICAoV2ViS2l0OjpXZWJCYXR0
ZXJ5TWFuYWdlcjo6cmVnaXN0ZXJXZWJQYWdlKToKKyAgICAgICAgKFdlYktpdDo6V2ViQmF0dGVy
eU1hbmFnZXI6OnVucmVnaXN0ZXJXZWJQYWdlKToKKyAgICAgICAgKFdlYktpdDo6V2ViQmF0dGVy
eU1hbmFnZXI6OmRpZENoYW5nZUJhdHRlcnlTdGF0dXMpOgorICAgICAgICAoV2ViS2l0OjpXZWJC
YXR0ZXJ5TWFuYWdlcjo6dXBkYXRlQmF0dGVyeVN0YXR1cyk6CisgICAgICAgICogV2ViUHJvY2Vz
cy9CYXR0ZXJ5L1dlYkJhdHRlcnlNYW5hZ2VyLmg6IEFkZGVkLgorICAgICAgICAoQ29yZUlQQyk6
CisgICAgICAgIChXZWJLaXQpOgorICAgICAgICAoV2ViQmF0dGVyeU1hbmFnZXIpOgorICAgICAg
ICAqIFdlYlByb2Nlc3MvQmF0dGVyeS9XZWJCYXR0ZXJ5TWFuYWdlci5tZXNzYWdlcy5pbjogQWRk
ZWQuCisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJCYXR0ZXJ5Q2xpZW50
LmNwcDogQWRkZWQuCisgICAgICAgIChXZWJLaXQpOgorICAgICAgICAoV2ViS2l0OjpXZWJCYXR0
ZXJ5Q2xpZW50OjpzdGFydFVwZGF0aW5nKToKKyAgICAgICAgKFdlYktpdDo6V2ViQmF0dGVyeUNs
aWVudDo6c3RvcFVwZGF0aW5nKToKKyAgICAgICAgKFdlYktpdDo6V2ViQmF0dGVyeUNsaWVudDo6
YmF0dGVyeUNvbnRyb2xsZXJEZXN0cm95ZWQpOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViQ29y
ZVN1cHBvcnQvV2ViQmF0dGVyeUNsaWVudC5oOiBBZGRlZC4KKyAgICAgICAgKFdlYktpdCk6Cisg
ICAgICAgIChXZWJCYXR0ZXJ5Q2xpZW50KToKKyAgICAgICAgKFdlYktpdDo6V2ViQmF0dGVyeUNs
aWVudDo6V2ViQmF0dGVyeUNsaWVudCk6CisgICAgICAgIChXZWJLaXQ6OldlYkJhdHRlcnlDbGll
bnQ6On5XZWJCYXR0ZXJ5Q2xpZW50KToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlByb2Nlc3Mu
Y3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzOjpXZWJQcm9jZXNzKToKKyAgICAgICAg
KFdlYktpdDo6V2ViUHJvY2Vzczo6ZGlkUmVjZWl2ZU1lc3NhZ2UpOgorICAgICAgICAqIFdlYlBy
b2Nlc3MvV2ViUHJvY2Vzcy5oOgorICAgICAgICAoV2ViUHJvY2Vzcyk6CisgICAgICAgIChXZWJL
aXQ6OldlYlByb2Nlc3M6OmJhdHRlcnlNYW5hZ2VyKToKKwogMjAxMi0wNi0yMCAgVGhpYWdvIE1h
cmNvcyBQLiBTYW50b3MgIDx0aGlhZ28uc2FudG9zQGludGVsLmNvbT4KIAogICAgICAgICBbV0sy
XSBDb2xvciBjaG9vc2VyIEFQSSBtaXNzaW5nCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9E
ZXJpdmVkU291cmNlcy5wcmkgYi9Tb3VyY2UvV2ViS2l0Mi9EZXJpdmVkU291cmNlcy5wcmkKaW5k
ZXggMGE1MGM3ZC4uNTBhNTg5OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvRGVyaXZlZFNv
dXJjZXMucHJpCisrKyBiL1NvdXJjZS9XZWJLaXQyL0Rlcml2ZWRTb3VyY2VzLnByaQpAQCAtNDAs
NiArNDAsNyBAQCBWUEFUSCA9IFwKICAgICBQbHVnaW5Qcm9jZXNzIFwKICAgICBXZWJQcm9jZXNz
L0FwcGxpY2F0aW9uQ2FjaGUgXAogICAgIFdlYlByb2Nlc3MvQXV0aGVudGljYXRpb24gXAorICAg
IFdlYlByb2Nlc3MvQmF0dGVyeSBcCiAgICAgV2ViUHJvY2Vzcy9Db29raWVzIFwKICAgICBXZWJQ
cm9jZXNzL0Z1bGxTY3JlZW4gXAogICAgIFdlYlByb2Nlc3MvR2VvbG9jYXRpb24gXApAQCAtNzEs
NiArNzIsOCBAQCBNRVNTQUdFX1JFQ0VJVkVSUyA9IFwKICAgICBQbHVnaW5Qcm94eS5tZXNzYWdl
cy5pbiBcCiAgICAgV2ViQXBwbGljYXRpb25DYWNoZU1hbmFnZXIubWVzc2FnZXMuaW4gXAogICAg
IFdlYkFwcGxpY2F0aW9uQ2FjaGVNYW5hZ2VyUHJveHkubWVzc2FnZXMuaW4gXAorICAgIFdlYkJh
dHRlcnlNYW5hZ2VyLm1lc3NhZ2VzLmluIFwKKyAgICBXZWJCYXR0ZXJ5TWFuYWdlclByb3h5Lm1l
c3NhZ2VzLmluIFwKICAgICBXZWJDb250ZXh0Lm1lc3NhZ2VzLmluIFwKICAgICBXZWJDb29raWVN
YW5hZ2VyLm1lc3NhZ2VzLmluIFwKICAgICBXZWJDb29raWVNYW5hZ2VyUHJveHkubWVzc2FnZXMu
aW4gXApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvR05VbWFrZWZpbGUuYW0gYi9Tb3VyY2Uv
V2ViS2l0Mi9HTlVtYWtlZmlsZS5hbQppbmRleCAwMTZkNjgxLi4yOTNiNjMzIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0Mi9HTlVtYWtlZmlsZS5hbQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9HTlVt
YWtlZmlsZS5hbQpAQCAtNTksNiArNTksNyBAQCBsaWJ3ZWJraXQyZ3RrX0BXRUJLSVRHVEtfQVBJ
X01BSk9SX1ZFUlNJT05AX0BXRUJLSVRHVEtfQVBJX01JTk9SX1ZFUlNJT05AX2xhX0NQUAogCS1J
JChzcmNkaXIpL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MgXAogCS1JJChzcmNkaXIpL1NvdXJj
ZS9XZWJLaXQyL1dlYlByb2Nlc3MvQXBwbGljYXRpb25DYWNoZSBcCiAJLUkkKHNyY2RpcikvU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9BdXRoZW50aWNhdGlvbiBcCisJLUkkKHNyY2RpcikvU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9CYXR0ZXJ5IFwKIAktSSQoc3JjZGlyKS9Tb3VyY2UvV2Vi
S2l0Mi9XZWJQcm9jZXNzL0Nvb2tpZXMgXAogCS1JJChzcmNkaXIpL1NvdXJjZS9XZWJLaXQyL1dl
YlByb2Nlc3MvRG93bmxvYWRzIFwKIAktSSQoc3JjZGlyKS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9j
ZXNzL0Z1bGxTY3JlZW4gXApAQCAtMjEwLDYgKzIxMSw3IEBAIHZwYXRoICUubWVzc2FnZXMuaW4g
PSBcCiAJJChXZWJLaXQyKS9XZWJQcm9jZXNzIFwKIAkkKFdlYktpdDIpL1dlYlByb2Nlc3MvQXBw
bGljYXRpb25DYWNoZSBcCiAJJChXZWJLaXQyKS9XZWJQcm9jZXNzL0F1dGhlbnRpY2F0aW9uIFwK
KwkkKFdlYktpdDIpL1dlYlByb2Nlc3MvQmF0dGVyeSBcCiAJJChXZWJLaXQyKS9XZWJQcm9jZXNz
L0Nvb2tpZXMgXAogCSQoV2ViS2l0MikvV2ViUHJvY2Vzcy9GdWxsU2NyZWVuIFwKIAkkKFdlYktp
dDIpL1dlYlByb2Nlc3MvR2VvbG9jYXRpb24gXApAQCAtNTEyLDYgKzUxNCw3IEBAIEVYVFJBX0RJ
U1QgKz0gXAogCSQoc2hlbGwgbHMgJChXZWJLaXQyKS9XZWJQcm9jZXNzLyouaW4pIFwKIAkkKHNo
ZWxsIGxzICQoV2ViS2l0MikvV2ViUHJvY2Vzcy9BcHBsaWNhdGlvbkNhY2hlLyouaW4pIFwKIAkk
KHNoZWxsIGxzICQoV2ViS2l0MikvV2ViUHJvY2Vzcy9BdXRoZW50aWNhdGlvbi8qLmluKSBcCisJ
JChzaGVsbCBscyAkKFdlYktpdDIpL1dlYlByb2Nlc3MvQmF0dGVyeS8qLmluKSBcCiAJJChzaGVs
bCBscyAkKFdlYktpdDIpL1dlYlByb2Nlc3MvQ29va2llcy8qLmluKSBcCiAJJChzaGVsbCBscyAk
KFdlYktpdDIpL1dlYlByb2Nlc3MvRnVsbFNjcmVlbi8qLmluKSBcCiAJJChzaGVsbCBscyAkKFdl
YktpdDIpL1dlYlByb2Nlc3MvR2VvbG9jYXRpb24vKi5pbikgXApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdDIvR05VbWFrZWZpbGUubGlzdC5hbSBiL1NvdXJjZS9XZWJLaXQyL0dOVW1ha2VmaWxl
Lmxpc3QuYW0KaW5kZXggMjM0MjMwNC4uYzk1ZmM2MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dDIvR05VbWFrZWZpbGUubGlzdC5hbQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9HTlVtYWtlZmlsZS5s
aXN0LmFtCkBAIC00Nyw2ICs0Nyw3IEBAIHdlYmtpdDJfaF9hcGkgKz0gXAogCSQoV2ViS2l0Mikv
VUlQcm9jZXNzL0FQSS9DL1dLQXV0aGVudGljYXRpb25EZWNpc2lvbkxpc3RlbmVyLmggXAogCSQo
V2ViS2l0MikvVUlQcm9jZXNzL0FQSS9DL1dLQmFja0ZvcndhcmRMaXN0LmggXAogCSQoV2ViS2l0
MikvVUlQcm9jZXNzL0FQSS9DL1dLQmFja0ZvcndhcmRMaXN0SXRlbS5oIFwKKwkkKFdlYktpdDIp
L1VJUHJvY2Vzcy9BUEkvQy9XS0JhdHRlcnlNYW5hZ2VyLmggXAogCSQoV2ViS2l0MikvVUlQcm9j
ZXNzL0FQSS9DL1dLQ29udGV4dC5oIFwKIAkkKFdlYktpdDIpL1VJUHJvY2Vzcy9BUEkvQy9XS0Nv
bnRleHRQcml2YXRlLmggXAogCSQoV2ViS2l0MikvVUlQcm9jZXNzL0FQSS9DL1dLQ29va2llTWFu
YWdlci5oIFwKQEAgLTE0Nyw2ICsxNDgsMTAgQEAgd2Via2l0Ml9idWlsdF9zb3VyY2VzICs9IFwK
IAlEZXJpdmVkU291cmNlcy9XZWJLaXQyL1dlYkFwcGxpY2F0aW9uQ2FjaGVNYW5hZ2VyTWVzc2Fn
ZXMuaCBcCiAJRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9XZWJBcHBsaWNhdGlvbkNhY2hlTWFuYWdl
clByb3h5TWVzc2FnZVJlY2VpdmVyLmNwcCBcCiAJRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9XZWJB
cHBsaWNhdGlvbkNhY2hlTWFuYWdlclByb3h5TWVzc2FnZXMuaCBcCisJRGVyaXZlZFNvdXJjZXMv
V2ViS2l0Mi9XZWJCYXR0ZXJ5TWFuYWdlck1lc3NhZ2VSZWNlaXZlci5jcHAgXAorCURlcml2ZWRT
b3VyY2VzL1dlYktpdDIvV2ViQmF0dGVyeU1hbmFnZXJNZXNzYWdlcy5oIFwKKwlEZXJpdmVkU291
cmNlcy9XZWJLaXQyL1dlYkJhdHRlcnlNYW5hZ2VyUHJveHlNZXNzYWdlUmVjZWl2ZXIuY3BwIFwK
KwlEZXJpdmVkU291cmNlcy9XZWJLaXQyL1dlYkJhdHRlcnlNYW5hZ2VyUHJveHlNZXNzYWdlcy5o
IFwKIAlEZXJpdmVkU291cmNlcy9XZWJLaXQyL1dlYkNvbnRleHRNZXNzYWdlUmVjZWl2ZXIuY3Bw
IFwKIAlEZXJpdmVkU291cmNlcy9XZWJLaXQyL1dlYkNvbnRleHRNZXNzYWdlcy5oIFwKIAlEZXJp
dmVkU291cmNlcy9XZWJLaXQyL1dlYkNvb2tpZU1hbmFnZXJNZXNzYWdlUmVjZWl2ZXIuY3BwIFwK
QEAgLTQxNiw2ICs0MjEsOCBAQCB3ZWJraXQyX3NvdXJjZXMgKz0gXAogCVNvdXJjZS9XZWJLaXQy
L1NoYXJlZC9WaXNpdGVkTGlua1RhYmxlLmggXAogCVNvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJC
YWNrRm9yd2FyZExpc3RJdGVtLmNwcCBcCiAJU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYkJhY2tG
b3J3YXJkTGlzdEl0ZW0uaCBcCisJU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYkJhdHRlcnlTdGF0
dXMuY3BwIFwKKwlTb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViQmF0dGVyeVN0YXR1cy5oIFwKIAlT
b3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViQ2VydGlmaWNhdGVJbmZvLmggXAogCVNvdXJjZS9XZWJL
aXQyL1NoYXJlZC9XZWJDb25uZWN0aW9uLmNwcCBcCiAJU291cmNlL1dlYktpdDIvU2hhcmVkL1dl
YkNvbm5lY3Rpb24uaCBcCkBAIC01MDAsNiArNTA3LDggQEAgd2Via2l0Ml9zb3VyY2VzICs9IFwK
IAlTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tCYWNrRm9yd2FyZExpc3QuaCBcCiAJ
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLQmFja0ZvcndhcmRMaXN0SXRlbS5jcHAg
XAogCVNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS0JhY2tGb3J3YXJkTGlzdEl0ZW0u
aCBcCisJU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLQmF0dGVyeU1hbmFnZXIuY3Bw
IFwKKwlTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tCYXR0ZXJ5TWFuYWdlci5oIFwK
IAlTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tDb250ZXh0LmNwcCBcCiAJU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLQ29udGV4dC5oIFwKIAlTb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvQVBJL0MvV0tDb250ZXh0UHJpdmF0ZS5oIFwKQEAgLTc1Niw2ICs3NjUsMTAgQEAg
d2Via2l0Ml9zb3VyY2VzICs9IFwKIAlTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViQXBwbGlj
YXRpb25DYWNoZU1hbmFnZXJQcm94eS5jcHAgXAogCVNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9X
ZWJCYWNrRm9yd2FyZExpc3QuY3BwIFwKIAlTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViQmFj
a0ZvcndhcmRMaXN0LmggXAorCVNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJCYXR0ZXJ5TWFu
YWdlclByb3h5LmNwcCBcCisJU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkJhdHRlcnlNYW5h
Z2VyUHJveHkuaCBcCisJU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkJhdHRlcnlQcm92aWRl
ci5jcHAgXAorCVNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJCYXR0ZXJ5UHJvdmlkZXIuaCBc
CiAJU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkNvbG9yQ2hvb3NlclByb3h5LmggXAogCVNv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmNwcCBcCiAJ
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuaCBcCkBA
IC04NTAsNiArODYzLDggQEAgd2Via2l0Ml9zb3VyY2VzICs9IFwKIAlTb3VyY2UvV2ViS2l0Mi9X
ZWJQcm9jZXNzL0FwcGxpY2F0aW9uQ2FjaGUvV2ViQXBwbGljYXRpb25DYWNoZU1hbmFnZXIuY3Bw
IFwKIAlTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0F1dGhlbnRpY2F0aW9uL0F1dGhlbnRpY2F0
aW9uTWFuYWdlci5jcHAgXAogCVNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvQXV0aGVudGljYXRp
b24vQXV0aGVudGljYXRpb25NYW5hZ2VyLmggXAorCVNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
QmF0dGVyeS9XZWJCYXR0ZXJ5TWFuYWdlci5jcHAgXAorCVNvdXJjZS9XZWJLaXQyL1dlYlByb2Nl
c3MvQmF0dGVyeS9XZWJCYXR0ZXJ5TWFuYWdlci5oIFwKIAlTb3VyY2UvV2ViS2l0Mi9XZWJQcm9j
ZXNzL0Nvb2tpZXMvV2ViQ29va2llTWFuYWdlci5oIFwKIAlTb3VyY2UvV2ViS2l0Mi9XZWJQcm9j
ZXNzL0Nvb2tpZXMvV2ViQ29va2llTWFuYWdlci5jcHAgXAogCVNvdXJjZS9XZWJLaXQyL1dlYlBy
b2Nlc3MvQ29va2llcy9zb3VwL1dlYkNvb2tpZU1hbmFnZXJTb3VwLmNwcCBcCkBAIC05OTgsNiAr
MTAxMyw4IEBAIHdlYmtpdDJfc291cmNlcyArPSBcCiAJU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy9XZWJDb3JlU3VwcG9ydC9zb3VwL1dlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQuY3BwIFwKIAlT
b3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L3NvdXAvV2ViRnJhbWVOZXR3
b3JraW5nQ29udGV4dC5oIFwKIAlTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBw
b3J0L1dlYkFsdGVybmF0aXZlVGV4dENsaWVudC5oIFwKKwlTb3VyY2UvV2ViS2l0Mi9XZWJQcm9j
ZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkJhdHRlcnlDbGllbnQuY3BwIFwKKwlTb3VyY2UvV2ViS2l0
Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkJhdHRlcnlDbGllbnQuaCBcCiAJU291cmNl
L1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuY3BwIFwK
IAlTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVu
dC5oIFwKIAlTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNvbG9y
Q2hvb3Nlci5jcHAgXApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvUGxhdGZvcm0vQ29yZUlQ
Qy9NZXNzYWdlSUQuaCBiL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL0NvcmVJUEMvTWVzc2FnZUlE
LmgKaW5kZXggNWYzOThhYS4uZDU0MTc2ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvUGxh
dGZvcm0vQ29yZUlQQy9NZXNzYWdlSUQuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9D
b3JlSVBDL01lc3NhZ2VJRC5oCkBAIC00MCw2ICs0MCw3IEBAIGVudW0gTWVzc2FnZUNsYXNzIHsK
ICAgICBNZXNzYWdlQ2xhc3NJbmplY3RlZEJ1bmRsZSwKICAgICBNZXNzYWdlQ2xhc3NMYXllclRy
ZWVIb3N0LAogICAgIE1lc3NhZ2VDbGFzc1dlYkFwcGxpY2F0aW9uQ2FjaGVNYW5hZ2VyLAorICAg
IE1lc3NhZ2VDbGFzc1dlYkJhdHRlcnlNYW5hZ2VyUHJveHksCiAgICAgTWVzc2FnZUNsYXNzV2Vi
Q29va2llTWFuYWdlciwKICAgICBNZXNzYWdlQ2xhc3NXZWJEYXRhYmFzZU1hbmFnZXIsCiAgICAg
TWVzc2FnZUNsYXNzV2ViRnVsbFNjcmVlbk1hbmFnZXIsCkBAIC02Miw2ICs2Myw3IEBAIGVudW0g
TWVzc2FnZUNsYXNzIHsKICAgICBNZXNzYWdlQ2xhc3NEcmF3aW5nQXJlYVByb3h5LAogICAgIE1l
c3NhZ2VDbGFzc0xheWVyVHJlZUhvc3RQcm94eSwKICAgICBNZXNzYWdlQ2xhc3NXZWJBcHBsaWNh
dGlvbkNhY2hlTWFuYWdlclByb3h5LAorICAgIE1lc3NhZ2VDbGFzc1dlYkJhdHRlcnlNYW5hZ2Vy
LAogICAgIE1lc3NhZ2VDbGFzc1dlYkNvbnRleHQsCiAgICAgTWVzc2FnZUNsYXNzV2ViQ29udGV4
dExlZ2FjeSwKICAgICBNZXNzYWdlQ2xhc3NXZWJDb29raWVNYW5hZ2VyUHJveHksCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQVBJL2MvV0tCYXNlLmggYi9Tb3VyY2UvV2ViS2l0
Mi9TaGFyZWQvQVBJL2MvV0tCYXNlLmgKaW5kZXggMzdhNjRmMC4uMDE0NzE0YyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL0FQSS9jL1dLQmFzZS5oCisrKyBiL1NvdXJjZS9XZWJL
aXQyL1NoYXJlZC9BUEkvYy9XS0Jhc2UuaApAQCAtODIsNiArODIsOCBAQCB0eXBlZGVmIGNvbnN0
IHN0cnVjdCBPcGFxdWVXS0F1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlKiBXS0F1dGhlbnRpY2F0aW9u
Q2hhbGxlbmdlUgogdHlwZWRlZiBjb25zdCBzdHJ1Y3QgT3BhcXVlV0tBdXRoZW50aWNhdGlvbkRl
Y2lzaW9uTGlzdGVuZXIqIFdLQXV0aGVudGljYXRpb25EZWNpc2lvbkxpc3RlbmVyUmVmOwogdHlw
ZWRlZiBjb25zdCBzdHJ1Y3QgT3BhcXVlV0tCYWNrRm9yd2FyZExpc3QqIFdLQmFja0ZvcndhcmRM
aXN0UmVmOwogdHlwZWRlZiBjb25zdCBzdHJ1Y3QgT3BhcXVlV0tCYWNrRm9yd2FyZExpc3RJdGVt
KiBXS0JhY2tGb3J3YXJkTGlzdEl0ZW1SZWY7Cit0eXBlZGVmIGNvbnN0IHN0cnVjdCBPcGFxdWVX
S0JhdHRlcnlNYW5hZ2VyKiBXS0JhdHRlcnlNYW5hZ2VyUmVmOwordHlwZWRlZiBjb25zdCBzdHJ1
Y3QgT3BhcXVlV0tCYXR0ZXJ5U3RhdHVzKiBXS0JhdHRlcnlTdGF0dXNSZWY7CiB0eXBlZGVmIGNv
bnN0IHN0cnVjdCBPcGFxdWVXS1Jlc291cmNlQ2FjaGVNYW5hZ2VyKiBXS1Jlc291cmNlQ2FjaGVN
YW5hZ2VyUmVmOwogdHlwZWRlZiBjb25zdCBzdHJ1Y3QgT3BhcXVlV0tDb250ZXh0KiBXS0NvbnRl
eHRSZWY7CiB0eXBlZGVmIGNvbnN0IHN0cnVjdCBPcGFxdWVXS0Nvb2tpZU1hbmFnZXIqIFdLQ29v
a2llTWFuYWdlclJlZjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9BUElPYmpl
Y3QuaCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9BUElPYmplY3QuaAppbmRleCBlYWQ3NGYwLi44
MzBmZWU4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQVBJT2JqZWN0LmgKKysr
IGIvU291cmNlL1dlYktpdDIvU2hhcmVkL0FQSU9iamVjdC5oCkBAIC03Miw2ICs3Miw4IEBAIHB1
YmxpYzoKICAgICAgICAgVHlwZUFwcGxpY2F0aW9uQ2FjaGVNYW5hZ2VyLAogICAgICAgICBUeXBl
QmFja0ZvcndhcmRMaXN0LAogICAgICAgICBUeXBlQmFja0ZvcndhcmRMaXN0SXRlbSwKKyAgICAg
ICAgVHlwZUJhdHRlcnlNYW5hZ2VyLAorICAgICAgICBUeXBlQmF0dGVyeVN0YXR1cywKICAgICAg
ICAgVHlwZUNhY2hlTWFuYWdlciwKICAgICAgICAgVHlwZUNvbnRleHQsCiAgICAgICAgIFR5cGVD
b29raWVNYW5hZ2VyLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYkJhdHRl
cnlTdGF0dXMuY3BwIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYkJhdHRlcnlTdGF0dXMuY3Bw
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmM4ZDgwNmQKLS0tIC9kZXYvbnVs
bAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViQmF0dGVyeVN0YXR1cy5jcHAKQEAgLTAs
MCArMSw2MCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMiBJbnRlbCBDb3Jwb3JhdGlvbi4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICog
YXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFp
biB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMg
aW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHBy
b3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBS
T1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBB
TkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZ
IEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQu
IElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUg
TElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhF
TVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklD
RVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJS
VVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdI
RVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJ
TkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9G
IFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9T
U0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2lu
Y2x1ZGUgIldlYkJhdHRlcnlTdGF0dXMuaCIKKworI2lmIEVOQUJMRShCQVRURVJZX1NUQVRVUykK
KworI2luY2x1ZGUgIkFyZ3VtZW50Q29kZXJzLmgiCisjaW5jbHVkZSAiQXJndW1lbnRzLmgiCisK
K25hbWVzcGFjZSBXZWJLaXQgeworCitXZWJCYXR0ZXJ5U3RhdHVzOjpXZWJCYXR0ZXJ5U3RhdHVz
KGJvb2wgaXNDaGFyZ2luZywgZG91YmxlIGNoYXJnaW5nVGltZSwgZG91YmxlIGRpc2NoYXJnaW5n
VGltZSwgZG91YmxlIGxldmVsKQoreworICAgIG1fZGF0YS5pc0NoYXJnaW5nID0gaXNDaGFyZ2lu
ZzsKKyAgICBtX2RhdGEuY2hhcmdpbmdUaW1lID0gY2hhcmdpbmdUaW1lOworICAgIG1fZGF0YS5k
aXNjaGFyZ2luZ1RpbWUgPSBkaXNjaGFyZ2luZ1RpbWU7CisgICAgbV9kYXRhLmxldmVsID0gbGV2
ZWw7Cit9CisKK1dlYkJhdHRlcnlTdGF0dXM6On5XZWJCYXR0ZXJ5U3RhdHVzKCkKK3sKK30KKwor
dm9pZCBXZWJCYXR0ZXJ5U3RhdHVzOjpEYXRhOjplbmNvZGUoQ29yZUlQQzo6QXJndW1lbnRFbmNv
ZGVyKiBlbmNvZGVyKSBjb25zdAoreworICAgIGVuY29kZXItPmVuY29kZShDb3JlSVBDOjpJbihp
c0NoYXJnaW5nLCBjaGFyZ2luZ1RpbWUsIGRpc2NoYXJnaW5nVGltZSwgbGV2ZWwpKTsKK30KKwor
Ym9vbCBXZWJCYXR0ZXJ5U3RhdHVzOjpEYXRhOjpkZWNvZGUoQ29yZUlQQzo6QXJndW1lbnREZWNv
ZGVyKiBkZWNvZGVyLCBEYXRhJiBkYXRhKQoreworICAgIHJldHVybiBkZWNvZGVyLT5kZWNvZGUo
Q29yZUlQQzo6T3V0KGRhdGEuaXNDaGFyZ2luZywgZGF0YS5jaGFyZ2luZ1RpbWUsIGRhdGEuZGlz
Y2hhcmdpbmdUaW1lLCBkYXRhLmxldmVsKSk7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdAor
CisjZW5kaWYgLy8gRU5BQkxFKEJBVFRFUllfU1RBVFVTKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdDIvU2hhcmVkL1dlYkJhdHRlcnlTdGF0dXMuaCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9X
ZWJCYXR0ZXJ5U3RhdHVzLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZmQx
ZDc5MwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJCYXR0ZXJ5
U3RhdHVzLmgKQEAgLTAsMCArMSw3NyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMiBJbnRl
bCBDb3Jwb3JhdGlvbi4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAq
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2Ug
Y29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBS
ZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3Ro
ZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElT
IFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMg
YGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0Yg
TUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0Ug
QVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRS
SUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRB
TCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUg
R09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJ
TkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBP
RiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBP
UiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElO
IEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBX
ZWJCYXR0ZXJ5U3RhdHVzX2gKKyNkZWZpbmUgV2ViQmF0dGVyeVN0YXR1c19oCisKKyNpZiBFTkFC
TEUoQkFUVEVSWV9TVEFUVVMpCisKKyNpbmNsdWRlICJBUElPYmplY3QuaCIKKyNpbmNsdWRlICJB
cmd1bWVudERlY29kZXIuaCIKKyNpbmNsdWRlICJBcmd1bWVudEVuY29kZXIuaCIKKyNpbmNsdWRl
IDx3dGYvUGFzc1JlZlB0ci5oPgorCituYW1lc3BhY2UgV2ViS2l0IHsKKworY2xhc3MgV2ViQmF0
dGVyeVN0YXR1cyA6IHB1YmxpYyBBUElPYmplY3QgeworcHVibGljOgorICAgIHN0YXRpYyBjb25z
dCBUeXBlIEFQSVR5cGUgPSBUeXBlQmF0dGVyeVN0YXR1czsKKworICAgIHN0cnVjdCBEYXRhIHsK
KyAgICAgICAgdm9pZCBlbmNvZGUoQ29yZUlQQzo6QXJndW1lbnRFbmNvZGVyKikgY29uc3Q7Cisg
ICAgICAgIHN0YXRpYyBib29sIGRlY29kZShDb3JlSVBDOjpBcmd1bWVudERlY29kZXIqLCBEYXRh
Jik7CisKKyAgICAgICAgYm9vbCBpc0NoYXJnaW5nOworICAgICAgICBkb3VibGUgY2hhcmdpbmdU
aW1lOworICAgICAgICBkb3VibGUgZGlzY2hhcmdpbmdUaW1lOworICAgICAgICBkb3VibGUgbGV2
ZWw7CisgICAgfTsKKworICAgIHN0YXRpYyBQYXNzUmVmUHRyPFdlYkJhdHRlcnlTdGF0dXM+IGNy
ZWF0ZShib29sIGlzQ2hhcmdpbmcsIGRvdWJsZSBjaGFyZ2luZ1RpbWUsIGRvdWJsZSBkaXNjaGFy
Z2luZ1RpbWUsIGRvdWJsZSBsZXZlbCkKKyAgICB7CisgICAgICAgIHJldHVybiBhZG9wdFJlZihu
ZXcgV2ViQmF0dGVyeVN0YXR1cyhpc0NoYXJnaW5nLCBjaGFyZ2luZ1RpbWUsIGRpc2NoYXJnaW5n
VGltZSwgbGV2ZWwpKTsKKyAgICB9CisKKyAgICB2aXJ0dWFsIH5XZWJCYXR0ZXJ5U3RhdHVzKCk7
CisgICAgZG91YmxlIGlzQ2hhcmdpbmcoKSBjb25zdCB7IHJldHVybiBtX2RhdGEuaXNDaGFyZ2lu
ZzsgfQorICAgIGRvdWJsZSBjaGFyZ2luZ1RpbWUoKSBjb25zdCB7IHJldHVybiBtX2RhdGEuY2hh
cmdpbmdUaW1lOyB9CisgICAgZG91YmxlIGRpc2NoYXJnaW5nVGltZSgpIGNvbnN0IHsgcmV0dXJu
IG1fZGF0YS5kaXNjaGFyZ2luZ1RpbWU7IH0KKyAgICBkb3VibGUgbGV2ZWwoKSBjb25zdCB7IHJl
dHVybiBtX2RhdGEubGV2ZWw7IH0KKworICAgIGNvbnN0IERhdGEmIGRhdGEoKSBjb25zdCB7IHJl
dHVybiBtX2RhdGE7IH0KKworcHJpdmF0ZToKKyAgICBXZWJCYXR0ZXJ5U3RhdHVzKGJvb2wgaXND
aGFyZ2luZywgZG91YmxlIGNoYXJnaW5nVGltZSwgZG91YmxlIGRpc2NoYXJnaW5nVGltZSwgZG91
YmxlIGxldmVsKTsKKworICAgIHZpcnR1YWwgVHlwZSB0eXBlKCkgY29uc3QgeyByZXR1cm4gQVBJ
VHlwZTsgfQorCisgICAgRGF0YSBtX2RhdGE7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQK
KworI2VuZGlmIC8vIEVOQUJMRShCQVRURVJZX1NUQVRVUykKKworI2VuZGlmIC8vIFdlYkJhdHRl
cnlTdGF0dXNfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVGFyZ2V0LnByaSBiL1NvdXJj
ZS9XZWJLaXQyL1RhcmdldC5wcmkKaW5kZXggYWEwOGUzYy4uZWJjNDAxNiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdDIvVGFyZ2V0LnByaQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9UYXJnZXQucHJp
CkBAIC05OSw2ICs5OSw3IEBAIEhFQURFUlMgKz0gXAogICAgIFNoYXJlZC9WaXNpdGVkTGlua1Rh
YmxlLmggXAogICAgIFNoYXJlZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMuaCBcCiAgICAgU2hhcmVk
L1dlYkJhY2tGb3J3YXJkTGlzdEl0ZW0uaCBcCisgICAgU2hhcmVkL1dlYkJhdHRlcnlTdGF0dXMu
aCBcCiAgICAgU2hhcmVkL1dlYkNlcnRpZmljYXRlSW5mby5oIFwKICAgICBTaGFyZWQvV2ViQ29u
bmVjdGlvbi5oIFwKICAgICBTaGFyZWQvV2ViQ29ubmVjdGlvbkNsaWVudC5oIFwKQEAgLTE0Nyw2
ICsxNDgsNyBAQCBIRUFERVJTICs9IFwKICAgICBVSVByb2Nlc3MvQVBJL0MvV0tBdXRoZW50aWNh
dGlvbkRlY2lzaW9uTGlzdGVuZXIuaCBcCiAgICAgVUlQcm9jZXNzL0FQSS9DL1dLQmFja0Zvcndh
cmRMaXN0LmggXAogICAgIFVJUHJvY2Vzcy9BUEkvQy9XS0JhY2tGb3J3YXJkTGlzdEl0ZW0uaCBc
CisgICAgVUlQcm9jZXNzL0FQSS9DL1dLQmF0dGVyeU1hbmFnZXIuaCBcCiAgICAgVUlQcm9jZXNz
L0FQSS9DL1dLQ29udGV4dC5oIFwKICAgICBVSVByb2Nlc3MvQVBJL0MvV0tDb250ZXh0UHJpdmF0
ZS5oIFwKICAgICBVSVByb2Nlc3MvQVBJL0MvV0tDcmVkZW50aWFsLmggXApAQCAtMjI5LDYgKzIz
MSw4IEBAIEhFQURFUlMgKz0gXAogICAgIFVJUHJvY2Vzcy9WaXNpdGVkTGlua1Byb3ZpZGVyLmgg
XAogICAgIFVJUHJvY2Vzcy9XZWJBcHBsaWNhdGlvbkNhY2hlTWFuYWdlclByb3h5LmggXAogICAg
IFVJUHJvY2Vzcy9XZWJCYWNrRm9yd2FyZExpc3QuaCBcCisgICAgVUlQcm9jZXNzL1dlYkJhdHRl
cnlNYW5hZ2VyUHJveHkuaCBcCisgICAgVUlQcm9jZXNzL1dlYkJhdHRlcnlQcm92aWRlci5oIFwK
ICAgICBVSVByb2Nlc3MvV2ViQ29sb3JDaG9vc2VyUHJveHkuaCBcCiAgICAgVUlQcm9jZXNzL1dl
YkNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuaCBcCiAgICAgVUlQcm9jZXNzL1dlYkNvbnRleHQuaCBc
CkBAIC0yOTUsNiArMjk5LDcgQEAgSEVBREVSUyArPSBcCiAgICAgVUlQcm9jZXNzL3F0L1dlYlBv
cHVwTWVudVByb3h5UXQuaCBcCiAgICAgV2ViUHJvY2Vzcy9BcHBsaWNhdGlvbkNhY2hlL1dlYkFw
cGxpY2F0aW9uQ2FjaGVNYW5hZ2VyLmggXAogICAgIFdlYlByb2Nlc3MvQXV0aGVudGljYXRpb24v
QXV0aGVudGljYXRpb25NYW5hZ2VyLmggXAorICAgIFdlYlByb2Nlc3MvQmF0dGVyeS9XZWJCYXR0
ZXJ5TWFuYWdlci5oIFwKICAgICBXZWJQcm9jZXNzL0Nvb2tpZXMvV2ViQ29va2llTWFuYWdlci5o
IFwKICAgICBXZWJQcm9jZXNzL0Rvd25sb2Fkcy9Eb3dubG9hZC5oIFwKICAgICBXZWJQcm9jZXNz
L0Rvd25sb2Fkcy9Eb3dubG9hZE1hbmFnZXIuaCBcCkBAIC0zNDUsNiArMzUwLDcgQEAgSEVBREVS
UyArPSBcCiAgICAgV2ViUHJvY2Vzcy9QbHVnaW5zL1BsdWdpblByb3h5LmggXAogICAgIFdlYlBy
b2Nlc3MvUGx1Z2lucy9QbHVnaW5Qcm9jZXNzQ29ubmVjdGlvbi5oIFwKICAgICBXZWJQcm9jZXNz
L1BsdWdpbnMvUGx1Z2luUHJvY2Vzc0Nvbm5lY3Rpb25NYW5hZ2VyLmggXAorICAgIFdlYlByb2Nl
c3MvV2ViQ29yZVN1cHBvcnQvV2ViQmF0dGVyeUNsaWVudC5oIFwKICAgICBXZWJQcm9jZXNzL1dl
YkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5oIFwKICAgICBXZWJQcm9jZXNzL1dlYkNvcmVT
dXBwb3J0L1dlYkNvbG9yQ2hvb3Nlci5oIFwKICAgICBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0
L1dlYkNvbnRleHRNZW51Q2xpZW50LmggXApAQCAtNDYwLDYgKzQ2Niw3IEBAIFNPVVJDRVMgKz0g
XAogICAgIFNoYXJlZC9VcGRhdGVJbmZvLmNwcCBcCiAgICAgU2hhcmVkL1Zpc2l0ZWRMaW5rVGFi
bGUuY3BwIFwKICAgICBTaGFyZWQvV2ViQmFja0ZvcndhcmRMaXN0SXRlbS5jcHAgXAorICAgIFNo
YXJlZC9XZWJCYXR0ZXJ5U3RhdHVzLmNwcCBcCiAgICAgU2hhcmVkL1dlYkNvbm5lY3Rpb24uY3Bw
IFwKICAgICBTaGFyZWQvV2ViQ29ubmVjdGlvbkNsaWVudC5jcHAgXAogICAgIFNoYXJlZC9XZWJD
b250ZXh0TWVudUl0ZW0uY3BwIFwKQEAgLTUwNyw2ICs1MTQsNyBAQCBTT1VSQ0VTICs9IFwKICAg
ICBVSVByb2Nlc3MvQVBJL0MvV0tBdXRoZW50aWNhdGlvbkRlY2lzaW9uTGlzdGVuZXIuY3BwIFwK
ICAgICBVSVByb2Nlc3MvQVBJL0MvV0tCYWNrRm9yd2FyZExpc3QuY3BwIFwKICAgICBVSVByb2Nl
c3MvQVBJL0MvV0tCYWNrRm9yd2FyZExpc3RJdGVtLmNwcCBcCisgICAgVUlQcm9jZXNzL0FQSS9D
L1dLQmF0dGVyeU1hbmFnZXIuY3BwIFwKICAgICBVSVByb2Nlc3MvQVBJL0MvV0tDb250ZXh0LmNw
cCBcCiAgICAgVUlQcm9jZXNzL0FQSS9DL1dLQ3JlZGVudGlhbC5jcHAgXAogICAgIFVJUHJvY2Vz
cy9BUEkvQy9XS0RhdGFiYXNlTWFuYWdlci5jcHAgXApAQCAtNTgwLDYgKzU4OCw4IEBAIFNPVVJD
RVMgKz0gXAogICAgIFVJUHJvY2Vzcy9WaXNpdGVkTGlua1Byb3ZpZGVyLmNwcCBcCiAgICAgVUlQ
cm9jZXNzL1dlYkFwcGxpY2F0aW9uQ2FjaGVNYW5hZ2VyUHJveHkuY3BwIFwKICAgICBVSVByb2Nl
c3MvV2ViQmFja0ZvcndhcmRMaXN0LmNwcCBcCisgICAgVUlQcm9jZXNzL1dlYkJhdHRlcnlNYW5h
Z2VyUHJveHkuY3BwIFwKKyAgICBVSVByb2Nlc3MvV2ViQmF0dGVyeVByb3ZpZGVyLmNwcCBcCiAg
ICAgVUlQcm9jZXNzL1dlYkNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuY3BwIFwKICAgICBVSVByb2Nl
c3MvV2ViQ29udGV4dC5jcHAgXAogICAgIFVJUHJvY2Vzcy9XZWJDb250ZXh0Q29ubmVjdGlvbkNs
aWVudC5jcHAgXApAQCAtNjQ5LDYgKzY1OSw3IEBAIFNPVVJDRVMgKz0gXAogICAgIFVJUHJvY2Vz
cy9xdC9RdFdlYkljb25EYXRhYmFzZUNsaWVudC5jcHAgXAogICAgIFdlYlByb2Nlc3MvQXBwbGlj
YXRpb25DYWNoZS9XZWJBcHBsaWNhdGlvbkNhY2hlTWFuYWdlci5jcHAgXAogICAgIFdlYlByb2Nl
c3MvQXV0aGVudGljYXRpb24vQXV0aGVudGljYXRpb25NYW5hZ2VyLmNwcCBcCisgICAgV2ViUHJv
Y2Vzcy9CYXR0ZXJ5L1dlYkJhdHRlcnlNYW5hZ2VyLmNwcCBcCiAgICAgV2ViUHJvY2Vzcy9Db29r
aWVzL1dlYkNvb2tpZU1hbmFnZXIuY3BwIFwKICAgICBXZWJQcm9jZXNzL0Nvb2tpZXMvcXQvV2Vi
Q29va2llTWFuYWdlclF0LmNwcCBcCiAgICAgV2ViUHJvY2Vzcy9Eb3dubG9hZHMvRG93bmxvYWQu
Y3BwIFwKQEAgLTcxMiw2ICs3MjMsNyBAQCBTT1VSQ0VTICs9IFwKICAgICBXZWJQcm9jZXNzL1Bs
dWdpbnMvUGx1Z2luUHJveHkuY3BwIFwKICAgICBXZWJQcm9jZXNzL1BsdWdpbnMvUGx1Z2luUHJv
Y2Vzc0Nvbm5lY3Rpb24uY3BwIFwKICAgICBXZWJQcm9jZXNzL1BsdWdpbnMvUGx1Z2luUHJvY2Vz
c0Nvbm5lY3Rpb25NYW5hZ2VyLmNwcCBcCisgICAgV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9X
ZWJCYXR0ZXJ5Q2xpZW50LmNwcCBcCiAgICAgV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJD
aHJvbWVDbGllbnQuY3BwIFwKICAgICBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNvbG9y
Q2hvb3Nlci5jcHAgXAogICAgIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ29udGV4dE1l
bnVDbGllbnQuY3BwIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkv
Qy9XS0FQSUNhc3QuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS0FQSUNhc3Qu
aAppbmRleCA5YmM5ZWE2Li44YjliZDEwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvQVBJL0MvV0tBUElDYXN0LmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQ
SS9DL1dLQVBJQ2FzdC5oCkBAIC01Niw2ICs1Niw4IEBAIGNsYXNzIE5vdGlmaWNhdGlvblBlcm1p
c3Npb25SZXF1ZXN0OwogY2xhc3MgV2ViQXBwbGljYXRpb25DYWNoZU1hbmFnZXJQcm94eTsKIGNs
YXNzIFdlYkJhY2tGb3J3YXJkTGlzdDsKIGNsYXNzIFdlYkJhY2tGb3J3YXJkTGlzdEl0ZW07Citj
bGFzcyBXZWJCYXR0ZXJ5TWFuYWdlclByb3h5OworY2xhc3MgV2ViQmF0dGVyeVN0YXR1czsKIGNs
YXNzIFdlYlJlc291cmNlQ2FjaGVNYW5hZ2VyUHJveHk7CiBjbGFzcyBXZWJDb250ZXh0OwogY2xh
c3MgV2ViQ29va2llTWFuYWdlclByb3h5OwpAQCAtOTQsNiArOTYsOCBAQCBXS19BRERfQVBJX01B
UFBJTkcoV0tBdXRoZW50aWNhdGlvbkNoYWxsZW5nZVJlZiwgQXV0aGVudGljYXRpb25DaGFsbGVu
Z2VQcm94eSkKIFdLX0FERF9BUElfTUFQUElORyhXS0F1dGhlbnRpY2F0aW9uRGVjaXNpb25MaXN0
ZW5lclJlZiwgQXV0aGVudGljYXRpb25EZWNpc2lvbkxpc3RlbmVyKQogV0tfQUREX0FQSV9NQVBQ
SU5HKFdLQmFja0ZvcndhcmRMaXN0SXRlbVJlZiwgV2ViQmFja0ZvcndhcmRMaXN0SXRlbSkKIFdL
X0FERF9BUElfTUFQUElORyhXS0JhY2tGb3J3YXJkTGlzdFJlZiwgV2ViQmFja0ZvcndhcmRMaXN0
KQorV0tfQUREX0FQSV9NQVBQSU5HKFdLQmF0dGVyeU1hbmFnZXJSZWYsIFdlYkJhdHRlcnlNYW5h
Z2VyUHJveHkpCitXS19BRERfQVBJX01BUFBJTkcoV0tCYXR0ZXJ5U3RhdHVzUmVmLCBXZWJCYXR0
ZXJ5U3RhdHVzKQogV0tfQUREX0FQSV9NQVBQSU5HKFdLUmVzb3VyY2VDYWNoZU1hbmFnZXJSZWYs
IFdlYlJlc291cmNlQ2FjaGVNYW5hZ2VyUHJveHkpCiBXS19BRERfQVBJX01BUFBJTkcoV0tDb250
ZXh0UmVmLCBXZWJDb250ZXh0KQogV0tfQUREX0FQSV9NQVBQSU5HKFdLQ29va2llTWFuYWdlclJl
ZiwgV2ViQ29va2llTWFuYWdlclByb3h5KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL0FQSS9DL1dLQmF0dGVyeU1hbmFnZXIuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL0FQSS9DL1dLQmF0dGVyeU1hbmFnZXIuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAuLmI3ZmQ1MDMKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvQVBJL0MvV0tCYXR0ZXJ5TWFuYWdlci5jcHAKQEAgLTAsMCArMSw0NCBAQAorLyoKKyAq
IENvcHlyaWdodCAoQykgMjAxMiBJbnRlbCBDb3Jwb3JhdGlvbi4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJl
ZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVz
dCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAg
ZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRp
c3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElO
Qy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1Ig
SU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRI
RSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBB
IFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxM
IEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElS
RUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09O
U0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VS
RU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBE
QVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENB
VVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRS
QUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBP
VEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBT
T0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBE
QU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIldLQmF0dGVyeU1h
bmFnZXIuaCIKKworI2luY2x1ZGUgIldLQVBJQ2FzdC5oIgorCisjaWYgRU5BQkxFKEJBVFRFUllf
U1RBVFVTKQorI2luY2x1ZGUgIldlYkJhdHRlcnlNYW5hZ2VyUHJveHkuaCIKKyNlbmRpZgorCit1
c2luZyBuYW1lc3BhY2UgV2ViS2l0OworCitXS1R5cGVJRCBXS0JhdHRlcnlNYW5hZ2VyR2V0VHlw
ZUlEKCkKK3sKKyNpZiBFTkFCTEUoQkFUVEVSWV9TVEFUVVMpCisgICAgcmV0dXJuIHRvQVBJKFdl
YkJhdHRlcnlNYW5hZ2VyUHJveHk6OkFQSVR5cGUpOworI2Vsc2UKKyAgICByZXR1cm4gMDsKKyNl
bmRpZgorfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLQmF0
dGVyeU1hbmFnZXIuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS0JhdHRlcnlN
YW5hZ2VyLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOTFlMjdmOQotLS0g
L2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS0JhdHRlcnlN
YW5hZ2VyLmgKQEAgLTAsMCArMSw1NSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMiBJbnRl
bCBDb3Jwb3JhdGlvbi4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAq
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2Ug
Y29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBS
ZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3Ro
ZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElT
IFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMg
YGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0Yg
TUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0Ug
QVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRS
SUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRB
TCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUg
R09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJ
TkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBP
RiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBP
UiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElO
IEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBX
S0JhdHRlcnlNYW5hZ2VyX2gKKyNkZWZpbmUgV0tCYXR0ZXJ5TWFuYWdlcl9oCisKKyNpbmNsdWRl
IDxXZWJLaXQyL1dLQmFzZS5oPgorCisjaWZkZWYgX19jcGx1c3BsdXMKK2V4dGVybiAiQyIgewor
I2VuZGlmCisKKy8vIFByb3ZpZGVyLgordHlwZWRlZiB2b2lkICgqV0tCYXR0ZXJ5UHJvdmlkZXJT
dGFydFVwZGF0aW5nQ2FsbGJhY2spKFdLQmF0dGVyeU1hbmFnZXJSZWYgYmF0dGVyeU1hbmFnZXIs
IGNvbnN0IHZvaWQqIGNsaWVudEluZm8pOwordHlwZWRlZiB2b2lkICgqV0tCYXR0ZXJ5UHJvdmlk
ZXJTdG9wVXBkYXRpbmdDYWxsYmFjaykoV0tCYXR0ZXJ5TWFuYWdlclJlZiBiYXR0ZXJ5TWFuYWdl
ciwgY29uc3Qgdm9pZCogY2xpZW50SW5mbyk7CisKK3N0cnVjdCBXS0JhdHRlcnlQcm92aWRlciB7
CisgICAgaW50ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICB2ZXJzaW9uOworICAgIGNvbnN0IHZvaWQgKiAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xpZW50SW5mbzsKKyAg
ICBXS0JhdHRlcnlQcm92aWRlclN0YXJ0VXBkYXRpbmdDYWxsYmFjayAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIHN0YXJ0VXBkYXRpbmc7CisgICAgV0tCYXR0ZXJ5UHJvdmlkZXJTdG9wVXBk
YXRpbmdDYWxsYmFjayAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdG9wVXBkYXRpbmc7
Cit9OwordHlwZWRlZiBzdHJ1Y3QgV0tCYXR0ZXJ5UHJvdmlkZXIgV0tCYXR0ZXJ5UHJvdmlkZXI7
CisKK2VudW0geyBrV0tCYXR0ZXJ5UHJvdmlkZXJDdXJyZW50VmVyc2lvbiA9IDAgfTsKKworV0tf
RVhQT1JUIFdLVHlwZUlEIFdLQmF0dGVyeU1hbmFnZXJHZXRUeXBlSUQoKTsKKworI2lmZGVmIF9f
Y3BsdXNwbHVzCit9CisjZW5kaWYKKworI2VuZGlmIC8qIFdLQmF0dGVyeU1hbmFnZXJfaCAqLwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkJhdHRlcnlNYW5hZ2VyUHJv
eHkuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkJhdHRlcnlNYW5hZ2VyUHJveHku
Y3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmMzODk3ZTgKLS0tIC9kZXYv
bnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViQmF0dGVyeU1hbmFnZXJQcm94
eS5jcHAKQEAgLTAsMCArMSwxMDIgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTIgSW50ZWwg
Q29ycG9yYXRpb24uIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNv
ZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVk
aXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVy
IG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBT
T0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBg
QVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1F
UkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFS
RSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklC
VVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUws
IFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdP
T0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5F
U1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0Yg
TElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1Ig
VE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBB
TlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBP
RgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJj
b25maWcuaCIKKyNpbmNsdWRlICJXZWJCYXR0ZXJ5TWFuYWdlclByb3h5LmgiCisKKyNpZiBFTkFC
TEUoQkFUVEVSWV9TVEFUVVMpCisKKyNpbmNsdWRlICJXZWJCYXR0ZXJ5TWFuYWdlck1lc3NhZ2Vz
LmgiCisjaW5jbHVkZSAiV2ViQ29udGV4dC5oIgorCituYW1lc3BhY2UgV2ViS2l0IHsKKworUGFz
c1JlZlB0cjxXZWJCYXR0ZXJ5TWFuYWdlclByb3h5PiBXZWJCYXR0ZXJ5TWFuYWdlclByb3h5Ojpj
cmVhdGUoV2ViQ29udGV4dCogY29udGV4dCkKK3sKKyAgICByZXR1cm4gYWRvcHRSZWYobmV3IFdl
YkJhdHRlcnlNYW5hZ2VyUHJveHkoY29udGV4dCkpOworfQorCitXZWJCYXR0ZXJ5TWFuYWdlclBy
b3h5OjpXZWJCYXR0ZXJ5TWFuYWdlclByb3h5KFdlYkNvbnRleHQqIGNvbnRleHQpCisgICAgOiBt
X2lzVXBkYXRpbmcoZmFsc2UpCisgICAgLCBtX2NvbnRleHQoY29udGV4dCkKK3sKK30KKworV2Vi
QmF0dGVyeU1hbmFnZXJQcm94eTo6fldlYkJhdHRlcnlNYW5hZ2VyUHJveHkoKQoreworfQorCit2
b2lkIFdlYkJhdHRlcnlNYW5hZ2VyUHJveHk6OmludmFsaWRhdGUoKQoreworICAgIHN0b3BVcGRh
dGluZygpOworfQorCit2b2lkIFdlYkJhdHRlcnlNYW5hZ2VyUHJveHk6OmluaXRpYWxpemVQcm92
aWRlcihjb25zdCBXS0JhdHRlcnlQcm92aWRlciogcHJvdmlkZXIpCit7CisgICAgbV9wcm92aWRl
ci5pbml0aWFsaXplKHByb3ZpZGVyKTsKK30KKwordm9pZCBXZWJCYXR0ZXJ5TWFuYWdlclByb3h5
OjpkaWRSZWNlaXZlTWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiBjb25uZWN0aW9uLCBDb3Jl
SVBDOjpNZXNzYWdlSUQgbWVzc2FnZUlELCBDb3JlSVBDOjpBcmd1bWVudERlY29kZXIqIGFyZ3Vt
ZW50cykKK3sKKyAgICBkaWRSZWNlaXZlV2ViQmF0dGVyeU1hbmFnZXJQcm94eU1lc3NhZ2UoY29u
bmVjdGlvbiwgbWVzc2FnZUlELCBhcmd1bWVudHMpOworfQorCit2b2lkIFdlYkJhdHRlcnlNYW5h
Z2VyUHJveHk6OnN0YXJ0VXBkYXRpbmcoKQoreworICAgIGlmIChtX2lzVXBkYXRpbmcpCisgICAg
ICAgIHJldHVybjsKKworICAgIG1fcHJvdmlkZXIuc3RhcnRVcGRhdGluZyh0aGlzKTsKKyAgICBt
X2lzVXBkYXRpbmcgPSB0cnVlOworfQorCit2b2lkIFdlYkJhdHRlcnlNYW5hZ2VyUHJveHk6OnN0
b3BVcGRhdGluZygpCit7CisgICAgaWYgKCFtX2lzVXBkYXRpbmcpCisgICAgICAgIHJldHVybjsK
KworICAgIG1fcHJvdmlkZXIuc3RvcFVwZGF0aW5nKHRoaXMpOworICAgIG1faXNVcGRhdGluZyA9
IGZhbHNlOworfQorCit2b2lkIFdlYkJhdHRlcnlNYW5hZ2VyUHJveHk6OnByb3ZpZGVyRGlkQ2hh
bmdlQmF0dGVyeVN0YXR1cyhjb25zdCBXVEY6OkF0b21pY1N0cmluZyYgZXZlbnRUeXBlLCBXZWJC
YXR0ZXJ5U3RhdHVzKiBzdGF0dXMpCit7CisgICAgaWYgKCFtX2NvbnRleHQpCisgICAgICAgIHJl
dHVybjsKKworICAgIG1fY29udGV4dC0+c2VuZFRvQWxsUHJvY2Vzc2VzKE1lc3NhZ2VzOjpXZWJC
YXR0ZXJ5TWFuYWdlcjo6RGlkQ2hhbmdlQmF0dGVyeVN0YXR1cyhldmVudFR5cGUsIHN0YXR1cy0+
ZGF0YSgpKSk7Cit9CisKK3ZvaWQgV2ViQmF0dGVyeU1hbmFnZXJQcm94eTo6cHJvdmlkZXJVcGRh
dGVCYXR0ZXJ5U3RhdHVzKFdlYkJhdHRlcnlTdGF0dXMqIHN0YXR1cykKK3sKKyAgICBpZiAoIW1f
Y29udGV4dCkKKyAgICAgICAgcmV0dXJuOworCisgICAgbV9jb250ZXh0LT5zZW5kVG9BbGxQcm9j
ZXNzZXMoTWVzc2FnZXM6OldlYkJhdHRlcnlNYW5hZ2VyOjpVcGRhdGVCYXR0ZXJ5U3RhdHVzKHN0
YXR1cy0+ZGF0YSgpKSk7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdAorCisjZW5kaWYgLy8g
RU5BQkxFKEJBVFRFUllfU1RBVFVTKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL1dlYkJhdHRlcnlNYW5hZ2VyUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9X
ZWJCYXR0ZXJ5TWFuYWdlclByb3h5LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MC4uOWZhNWJkYwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9X
ZWJCYXR0ZXJ5TWFuYWdlclByb3h5LmgKQEAgLTAsMCArMSw4NCBAQAorLyoKKyAqIENvcHlyaWdo
dCAoQykgMjAxMiBJbnRlbCBDb3Jwb3JhdGlvbi4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisg
KiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0
aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1
Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRh
dGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlv
bi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElU
UyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBX
QVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVE
IFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VM
QVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElO
Qy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJ
UkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElB
TCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YK
KyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQ
Uk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQg
T04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJ
Q1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0Up
CisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwg
RVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisg
Ki8KKworI2lmbmRlZiBXZWJCYXR0ZXJ5TWFuYWdlclByb3h5X2gKKyNkZWZpbmUgV2ViQmF0dGVy
eU1hbmFnZXJQcm94eV9oCisKKyNpZiBFTkFCTEUoQkFUVEVSWV9TVEFUVVMpCisKKyNpbmNsdWRl
ICJBUElPYmplY3QuaCIKKyNpbmNsdWRlICJNZXNzYWdlSUQuaCIKKyNpbmNsdWRlICJXZWJCYXR0
ZXJ5UHJvdmlkZXIuaCIKKyNpbmNsdWRlIDx3dGYvRm9yd2FyZC5oPgorCituYW1lc3BhY2UgQ29y
ZUlQQyB7CitjbGFzcyBBcmd1bWVudERlY29kZXI7CitjbGFzcyBDb25uZWN0aW9uOworfQorCitu
YW1lc3BhY2UgV2ViS2l0IHsKKworY2xhc3MgV2ViQ29udGV4dDsKK2NsYXNzIFdlYkJhdHRlcnlT
dGF0dXM7CisKK2NsYXNzIFdlYkJhdHRlcnlNYW5hZ2VyUHJveHkgOiBwdWJsaWMgQVBJT2JqZWN0
IHsKK3B1YmxpYzoKKyAgICBzdGF0aWMgY29uc3QgVHlwZSBBUElUeXBlID0gVHlwZUJhdHRlcnlN
YW5hZ2VyOworCisgICAgc3RhdGljIFBhc3NSZWZQdHI8V2ViQmF0dGVyeU1hbmFnZXJQcm94eT4g
Y3JlYXRlKFdlYkNvbnRleHQqKTsKKyAgICB2aXJ0dWFsIH5XZWJCYXR0ZXJ5TWFuYWdlclByb3h5
KCk7CisKKyAgICB2b2lkIGludmFsaWRhdGUoKTsKKyAgICB2b2lkIGNsZWFyQ29udGV4dCgpIHsg
bV9jb250ZXh0ID0gMDsgfQorCisgICAgdm9pZCBpbml0aWFsaXplUHJvdmlkZXIoY29uc3QgV0tC
YXR0ZXJ5UHJvdmlkZXIqKTsKKworICAgIHZvaWQgcHJvdmlkZXJEaWRDaGFuZ2VCYXR0ZXJ5U3Rh
dHVzKGNvbnN0IFdURjo6QXRvbWljU3RyaW5nJiwgV2ViQmF0dGVyeVN0YXR1cyopOworICAgIHZv
aWQgcHJvdmlkZXJVcGRhdGVCYXR0ZXJ5U3RhdHVzKFdlYkJhdHRlcnlTdGF0dXMqKTsKKworICAg
IHZvaWQgZGlkUmVjZWl2ZU1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiosIENvcmVJUEM6Ok1l
c3NhZ2VJRCwgQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyKik7CisKK3ByaXZhdGU6CisgICAgZXhw
bGljaXQgV2ViQmF0dGVyeU1hbmFnZXJQcm94eShXZWJDb250ZXh0Kik7CisKKyAgICB2aXJ0dWFs
IFR5cGUgdHlwZSgpIGNvbnN0IHsgcmV0dXJuIEFQSVR5cGU7IH0KKworICAgIC8vIEltcGxlbWVu
dGVkIGluIGdlbmVyYXRlZCBXZWJCYXR0ZXJ5TWFuYWdlclByb3h5TWVzc2FnZVJlY2VpdmVyLmNw
cAorICAgIHZvaWQgZGlkUmVjZWl2ZVdlYkJhdHRlcnlNYW5hZ2VyUHJveHlNZXNzYWdlKENvcmVJ
UEM6OkNvbm5lY3Rpb24qLCBDb3JlSVBDOjpNZXNzYWdlSUQsIENvcmVJUEM6OkFyZ3VtZW50RGVj
b2RlciopOworCisgICAgdm9pZCBzdGFydFVwZGF0aW5nKCk7CisgICAgdm9pZCBzdG9wVXBkYXRp
bmcoKTsKKworICAgIGJvb2wgbV9pc1VwZGF0aW5nOworCisgICAgV2ViQ29udGV4dCogbV9jb250
ZXh0OworICAgIFdlYkJhdHRlcnlQcm92aWRlciBtX3Byb3ZpZGVyOworfTsKKworfSAvLyBuYW1l
c3BhY2UgV2ViS2l0CisKKyNlbmRpZiAvLyBFTkFCTEUoQkFUVEVSWV9TVEFUVVMpCisKKyNlbmRp
ZiAvLyBXZWJCYXR0ZXJ5TWFuYWdlclByb3h5X2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9XZWJCYXR0ZXJ5TWFuYWdlclByb3h5Lm1lc3NhZ2VzLmluIGIvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL1dlYkJhdHRlcnlNYW5hZ2VyUHJveHkubWVzc2FnZXMuaW4KbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uM2ZhZWZhMQotLS0gL2Rldi9udWxsCisrKyBi
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJCYXR0ZXJ5TWFuYWdlclByb3h5Lm1lc3NhZ2Vz
LmluCkBAIC0wLDAgKzEsMzAgQEAKKyMgQ29weXJpZ2h0IChDKSAyMDEyIEludGVsIENvcnBvcmF0
aW9uLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorIworIyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyMgbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisj
IGFyZSBtZXQ6CisjIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRh
aW4gdGhlIGFib3ZlIGNvcHlyaWdodAorIyAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorIyAyLiAgUmVkaXN0cmlidXRpb25z
IGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMgICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lciBpbiB0aGUKKyMgICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBw
cm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisjCisjIFRISVMgU09GVFdBUkUgSVMgUFJP
VklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycgQU5ECisj
IEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sIFRIRSBJTVBMSUVECisjIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFO
RCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKKyMgRElTQ0xBSU1FRC4gSU4g
Tk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBG
T1IKKyMgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFS
WSwgT1IgQ09OU0VRVUVOVElBTAorIyBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUgorIyBTRVJWSUNFUzsgTE9T
UyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9X
RVZFUgorIyBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElO
IENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLAorIyBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElH
RU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorIyBP
RiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNV
Q0ggREFNQUdFLgorCisjaWYgRU5BQkxFKEJBVFRFUllfU1RBVFVTKQorCittZXNzYWdlcyAtPiBX
ZWJCYXR0ZXJ5TWFuYWdlclByb3h5IHsKKyAgICBTdGFydFVwZGF0aW5nKCk7CisgICAgU3RvcFVw
ZGF0aW5nKCk7Cit9CisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL1dlYkJhdHRlcnlQcm92aWRlci5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2Vi
QmF0dGVyeVByb3ZpZGVyLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44
Mjg0MTYwCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkJh
dHRlcnlQcm92aWRlci5jcHAKQEAgLTAsMCArMSw1NCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykg
MjAxMiBJbnRlbCBDb3Jwb3JhdGlvbi4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBv
ZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIu
CisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBh
bmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAq
CisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05U
UklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5U
SUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJB
TlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAq
IFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1Ig
SVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwg
SU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1B
R0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNV
QlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRT
OyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5Z
IFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElB
QklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBB
UklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJ
RiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKwor
I2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIldlYkJhdHRlcnlQcm92aWRlci5oIgorCisj
aWYgRU5BQkxFKEJBVFRFUllfU1RBVFVTKQorCisjaW5jbHVkZSAiV0tBUElDYXN0LmgiCisjaW5j
bHVkZSAiV2ViQmF0dGVyeU1hbmFnZXJQcm94eS5oIgorCituYW1lc3BhY2UgV2ViS2l0IHsKKwor
dm9pZCBXZWJCYXR0ZXJ5UHJvdmlkZXI6OnN0YXJ0VXBkYXRpbmcoV2ViQmF0dGVyeU1hbmFnZXJQ
cm94eSogYmF0dGVyeU1hbmFnZXIpCit7CisgICAgaWYgKCFtX2NsaWVudC5zdGFydFVwZGF0aW5n
KQorICAgICAgICByZXR1cm47CisKKyAgICBtX2NsaWVudC5zdGFydFVwZGF0aW5nKHRvQVBJKGJh
dHRlcnlNYW5hZ2VyKSwgbV9jbGllbnQuY2xpZW50SW5mbyk7Cit9CisKK3ZvaWQgV2ViQmF0dGVy
eVByb3ZpZGVyOjpzdG9wVXBkYXRpbmcoV2ViQmF0dGVyeU1hbmFnZXJQcm94eSogYmF0dGVyeU1h
bmFnZXIpCit7CisgICAgaWYgKCFtX2NsaWVudC5zdG9wVXBkYXRpbmcpCisgICAgICAgIHJldHVy
bjsKKworICAgIG1fY2xpZW50LnN0b3BVcGRhdGluZyh0b0FQSShiYXR0ZXJ5TWFuYWdlciksIG1f
Y2xpZW50LmNsaWVudEluZm8pOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKKworI2VuZGlm
IC8vIEVOQUJMRShCQVRURVJZX1NUQVRVUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9XZWJCYXR0ZXJ5UHJvdmlkZXIuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9X
ZWJCYXR0ZXJ5UHJvdmlkZXIuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5m
NTk5MDY4Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkJh
dHRlcnlQcm92aWRlci5oCkBAIC0wLDAgKzEsNDkgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIw
MTIgSW50ZWwgQ29ycG9yYXRpb24uIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Yg
c291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgor
ICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5k
L29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgor
ICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJ
QlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElF
UywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5U
SUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQ
VVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElU
UyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElO
Q0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdF
UyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJT
VElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsg
T1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBU
SEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJ
TElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJ
U0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYg
QURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNp
Zm5kZWYgV2ViQmF0dGVyeVByb3ZpZGVyX2gKKyNkZWZpbmUgV2ViQmF0dGVyeVByb3ZpZGVyX2gK
KworI2lmIEVOQUJMRShCQVRURVJZX1NUQVRVUykKKworI2luY2x1ZGUgIkFQSUNsaWVudC5oIgor
I2luY2x1ZGUgIldLQmF0dGVyeU1hbmFnZXIuaCIKKyNpbmNsdWRlIDx3dGYvRm9yd2FyZC5oPgor
CituYW1lc3BhY2UgV2ViS2l0IHsKKworY2xhc3MgV2ViQmF0dGVyeU1hbmFnZXJQcm94eTsKKwor
Y2xhc3MgV2ViQmF0dGVyeVByb3ZpZGVyIDogcHVibGljIEFQSUNsaWVudDxXS0JhdHRlcnlQcm92
aWRlciwga1dLQmF0dGVyeVByb3ZpZGVyQ3VycmVudFZlcnNpb24+IHsKK3B1YmxpYzoKKyAgICB2
b2lkIHN0YXJ0VXBkYXRpbmcoV2ViQmF0dGVyeU1hbmFnZXJQcm94eSopOworICAgIHZvaWQgc3Rv
cFVwZGF0aW5nKFdlYkJhdHRlcnlNYW5hZ2VyUHJveHkqKTsKK307CisKK30gLy8gbmFtZXNwYWNl
IFdlYktpdAorCisjZW5kaWYgLy8gRU5BQkxFKEJBVFRFUllfU1RBVFVTKQorCisjZW5kaWYgLy8g
V2ViQmF0dGVyeVByb3ZpZGVyX2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYktpdDIu
cHJpIGIvU291cmNlL1dlYktpdDIvV2ViS2l0Mi5wcmkKaW5kZXggMjRjYzVhMi4uNTQ1M2Y1MyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViS2l0Mi5wcmkKKysrIGIvU291cmNlL1dlYktp
dDIvV2ViS2l0Mi5wcmkKQEAgLTM2LDYgKzM2LDcgQEAgSU5DTFVERVBBVEggKz0gXAogICAgICQk
U09VUkNFX0RJUi9XZWJQcm9jZXNzIFwKICAgICAkJFNPVVJDRV9ESVIvV2ViUHJvY2Vzcy9BcHBs
aWNhdGlvbkNhY2hlIFwKICAgICAkJFNPVVJDRV9ESVIvV2ViUHJvY2Vzcy9BdXRoZW50aWNhdGlv
biBcCisgICAgJCRTT1VSQ0VfRElSL1dlYlByb2Nlc3MvQmF0dGVyeSBcCiAgICAgJCRTT1VSQ0Vf
RElSL1dlYlByb2Nlc3MvQ29va2llcyBcCiAgICAgJCRTT1VSQ0VfRElSL1dlYlByb2Nlc3MvQ29v
a2llcy9xdCBcCiAgICAgJCRTT1VSQ0VfRElSL1dlYlByb2Nlc3MvRG93bmxvYWRzIFwKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvQmF0dGVyeS9XZWJCYXR0ZXJ5TWFuYWdl
ci5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0JhdHRlcnkvV2ViQmF0dGVyeU1hbmFn
ZXIuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjA0ZGVjODYKLS0tIC9k
ZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0JhdHRlcnkvV2ViQmF0dGVy
eU1hbmFnZXIuY3BwCkBAIC0wLDAgKzEsMTAyIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEy
IEludGVsIENvcnBvcmF0aW9uLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNv
dXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAq
IDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9v
ciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAq
IFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJV
VE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMs
IElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElF
UyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVS
UE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMg
Q09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJ
REVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMg
KElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJ
VFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9S
IEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhF
T1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJ
VFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJ
TkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFE
VklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5j
bHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiV2ViQmF0dGVyeU1hbmFnZXIuaCIKKworI2lmIEVO
QUJMRShCQVRURVJZX1NUQVRVUykKKworI2luY2x1ZGUgIldlYkJhdHRlcnlNYW5hZ2VyUHJveHlN
ZXNzYWdlcy5oIgorI2luY2x1ZGUgIldlYlBhZ2UuaCIKKyNpbmNsdWRlICJXZWJQcm9jZXNzLmgi
CisjaW5jbHVkZSA8V2ViQ29yZS9CYXR0ZXJ5Q29udHJvbGxlci5oPgorI2luY2x1ZGUgPFdlYkNv
cmUvQmF0dGVyeVN0YXR1cy5oPgorI2luY2x1ZGUgPFdlYkNvcmUvUGFnZS5oPgorCit1c2luZyBu
YW1lc3BhY2UgV2ViQ29yZTsKKworbmFtZXNwYWNlIFdlYktpdCB7CisKK1dlYkJhdHRlcnlNYW5h
Z2VyOjpXZWJCYXR0ZXJ5TWFuYWdlcihXZWJQcm9jZXNzKiBwcm9jZXNzKQorICAgIDogbV9wcm9j
ZXNzKHByb2Nlc3MpCit7Cit9CisKK1dlYkJhdHRlcnlNYW5hZ2VyOjp+V2ViQmF0dGVyeU1hbmFn
ZXIoKQoreworfQorCit2b2lkIFdlYkJhdHRlcnlNYW5hZ2VyOjpkaWRSZWNlaXZlTWVzc2FnZShD
b3JlSVBDOjpDb25uZWN0aW9uKiBjb25uZWN0aW9uLCBDb3JlSVBDOjpNZXNzYWdlSUQgbWVzc2Fn
ZUlELCBDb3JlSVBDOjpBcmd1bWVudERlY29kZXIqIGFyZ3VtZW50cykKK3sKKyAgICBkaWRSZWNl
aXZlV2ViQmF0dGVyeU1hbmFnZXJNZXNzYWdlKGNvbm5lY3Rpb24sIG1lc3NhZ2VJRCwgYXJndW1l
bnRzKTsKK30KKwordm9pZCBXZWJCYXR0ZXJ5TWFuYWdlcjo6cmVnaXN0ZXJXZWJQYWdlKFdlYlBh
Z2UqIHBhZ2UpCit7CisgICAgYm9vbCB3YXNFbXB0eSA9IG1fcGFnZVNldC5pc0VtcHR5KCk7CisK
KyAgICBtX3BhZ2VTZXQuYWRkKHBhZ2UpOworCisgICAgaWYgKHdhc0VtcHR5KQorICAgICAgICBt
X3Byb2Nlc3MtPmNvbm5lY3Rpb24oKS0+c2VuZChNZXNzYWdlczo6V2ViQmF0dGVyeU1hbmFnZXJQ
cm94eTo6U3RhcnRVcGRhdGluZygpLCAwKTsKK30KKwordm9pZCBXZWJCYXR0ZXJ5TWFuYWdlcjo6
dW5yZWdpc3RlcldlYlBhZ2UoV2ViUGFnZSogcGFnZSkKK3sKKyAgICBtX3BhZ2VTZXQucmVtb3Zl
KHBhZ2UpOworCisgICAgaWYgKG1fcGFnZVNldC5pc0VtcHR5KCkpCisgICAgICAgIG1fcHJvY2Vz
cy0+Y29ubmVjdGlvbigpLT5zZW5kKE1lc3NhZ2VzOjpXZWJCYXR0ZXJ5TWFuYWdlclByb3h5OjpT
dG9wVXBkYXRpbmcoKSwgMCk7Cit9CisKK3ZvaWQgV2ViQmF0dGVyeU1hbmFnZXI6OmRpZENoYW5n
ZUJhdHRlcnlTdGF0dXMoY29uc3QgV1RGOjpBdG9taWNTdHJpbmcmIGV2ZW50VHlwZSwgY29uc3Qg
V2ViQmF0dGVyeVN0YXR1czo6RGF0YSYgZGF0YSkKK3sKKyAgICBSZWZQdHI8QmF0dGVyeVN0YXR1
cz4gc3RhdHVzID0gQmF0dGVyeVN0YXR1czo6Y3JlYXRlKGRhdGEuaXNDaGFyZ2luZywgZGF0YS5j
aGFyZ2luZ1RpbWUsIGRhdGEuZGlzY2hhcmdpbmdUaW1lLCBkYXRhLmxldmVsKTsKKworICAgIEhh
c2hTZXQ8V2ViUGFnZSo+Ojpjb25zdF9pdGVyYXRvciBpdCA9IG1fcGFnZVNldC5iZWdpbigpOwor
ICAgIEhhc2hTZXQ8V2ViUGFnZSo+Ojpjb25zdF9pdGVyYXRvciBlbmQgPSBtX3BhZ2VTZXQuZW5k
KCk7CisgICAgZm9yICg7IGl0ICE9IGVuZDsgKytpdCkgeworICAgICAgICBXZWJQYWdlKiBwYWdl
ID0gKml0OworICAgICAgICBpZiAocGFnZS0+Y29yZVBhZ2UoKSkKKyAgICAgICAgICAgIEJhdHRl
cnlDb250cm9sbGVyOjpmcm9tKHBhZ2UtPmNvcmVQYWdlKCkpLT5kaWRDaGFuZ2VCYXR0ZXJ5U3Rh
dHVzKGV2ZW50VHlwZSwgc3RhdHVzLmdldCgpKTsKKyAgICB9Cit9CisKK3ZvaWQgV2ViQmF0dGVy
eU1hbmFnZXI6OnVwZGF0ZUJhdHRlcnlTdGF0dXMoY29uc3QgV2ViQmF0dGVyeVN0YXR1czo6RGF0
YSYgZGF0YSkKK3sKKyAgICBSZWZQdHI8QmF0dGVyeVN0YXR1cz4gc3RhdHVzID0gQmF0dGVyeVN0
YXR1czo6Y3JlYXRlKGRhdGEuaXNDaGFyZ2luZywgZGF0YS5jaGFyZ2luZ1RpbWUsIGRhdGEuZGlz
Y2hhcmdpbmdUaW1lLCBkYXRhLmxldmVsKTsKKworICAgIEhhc2hTZXQ8V2ViUGFnZSo+Ojpjb25z
dF9pdGVyYXRvciBpdCA9IG1fcGFnZVNldC5iZWdpbigpOworICAgIEhhc2hTZXQ8V2ViUGFnZSo+
Ojpjb25zdF9pdGVyYXRvciBlbmQgPSBtX3BhZ2VTZXQuZW5kKCk7CisgICAgZm9yICg7IGl0ICE9
IGVuZDsgKytpdCkgeworICAgICAgICBXZWJQYWdlKiBwYWdlID0gKml0OworICAgICAgICBpZiAo
cGFnZS0+Y29yZVBhZ2UoKSkKKyAgICAgICAgICAgIEJhdHRlcnlDb250cm9sbGVyOjpmcm9tKHBh
Z2UtPmNvcmVQYWdlKCkpLT51cGRhdGVCYXR0ZXJ5U3RhdHVzKHN0YXR1cy5nZXQoKSk7CisgICAg
fQorfQorCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKKworI2VuZGlmIC8vIEVOQUJMRShCQVRURVJZ
X1NUQVRVUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvQmF0dGVyeS9X
ZWJCYXR0ZXJ5TWFuYWdlci5oIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9CYXR0ZXJ5L1dl
YkJhdHRlcnlNYW5hZ2VyLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNTA5
NzE4ZAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvQmF0dGVy
eS9XZWJCYXR0ZXJ5TWFuYWdlci5oCkBAIC0wLDAgKzEsNzUgQEAKKy8qCisgKiBDb3B5cmlnaHQg
KEMpIDIwMTIgSW50ZWwgQ29ycG9yYXRpb24uIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICog
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlv
bnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNl
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRp
b24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24u
CisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMg
Q09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FS
UkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBX
QVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS
CisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMu
IE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJF
Q1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwg
REFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisg
KiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJP
RklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9O
IEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNU
IExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQor
ICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVW
RU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICov
CisKKyNpZm5kZWYgV2ViQmF0dGVyeU1hbmFnZXJfaAorI2RlZmluZSBXZWJCYXR0ZXJ5TWFuYWdl
cl9oCisKKyNpZiBFTkFCTEUoQkFUVEVSWV9TVEFUVVMpCisKKyNpbmNsdWRlICJNZXNzYWdlSUQu
aCIKKyNpbmNsdWRlICJXZWJCYXR0ZXJ5U3RhdHVzLmgiCisjaW5jbHVkZSAiV2ViQ29yZUFyZ3Vt
ZW50Q29kZXJzLmgiCisjaW5jbHVkZSA8d3RmL0hhc2hTZXQuaD4KKyNpbmNsdWRlIDx3dGYvTm9u
Y29weWFibGUuaD4KKyNpbmNsdWRlIDx3dGYvdGV4dC9BdG9taWNTdHJpbmcuaD4KKworbmFtZXNw
YWNlIENvcmVJUEMgeworY2xhc3MgQXJndW1lbnREZWNvZGVyOworY2xhc3MgQ29ubmVjdGlvbjsK
K30KKworbmFtZXNwYWNlIFdlYktpdCB7CisKK2NsYXNzIFdlYlBhZ2U7CitjbGFzcyBXZWJQcm9j
ZXNzOworCitjbGFzcyBXZWJCYXR0ZXJ5TWFuYWdlciB7CisgICAgV1RGX01BS0VfTk9OQ09QWUFC
TEUoV2ViQmF0dGVyeU1hbmFnZXIpOworCitwdWJsaWM6CisgICAgZXhwbGljaXQgV2ViQmF0dGVy
eU1hbmFnZXIoV2ViUHJvY2VzcyopOworICAgIH5XZWJCYXR0ZXJ5TWFuYWdlcigpOworCisgICAg
dm9pZCByZWdpc3RlcldlYlBhZ2UoV2ViUGFnZSopOworICAgIHZvaWQgdW5yZWdpc3RlcldlYlBh
Z2UoV2ViUGFnZSopOworCisgICAgdm9pZCBkaWRDaGFuZ2VCYXR0ZXJ5U3RhdHVzKGNvbnN0IFdU
Rjo6QXRvbWljU3RyaW5nJiBldmVudFR5cGUsIGNvbnN0IFdlYkJhdHRlcnlTdGF0dXM6OkRhdGEm
KTsKKyAgICB2b2lkIHVwZGF0ZUJhdHRlcnlTdGF0dXMoY29uc3QgV2ViQmF0dGVyeVN0YXR1czo6
RGF0YSYpOworCisgICAgdm9pZCBkaWRSZWNlaXZlTWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9u
KiwgQ29yZUlQQzo6TWVzc2FnZUlELCBDb3JlSVBDOjpBcmd1bWVudERlY29kZXIqKTsKKworcHJp
dmF0ZToKKyAgICAvLyBJbXBsZW1lbnRlZCBpbiBnZW5lcmF0ZWQgV2ViQmF0dGVyeU1hbmFnZXJN
ZXNzYWdlUmVjZWl2ZXIuY3BwCisgICAgdm9pZCBkaWRSZWNlaXZlV2ViQmF0dGVyeU1hbmFnZXJN
ZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qLCBDb3JlSVBDOjpNZXNzYWdlSUQsIENvcmVJUEM6
OkFyZ3VtZW50RGVjb2RlciopOworCisgICAgV2ViUHJvY2VzcyogbV9wcm9jZXNzOworICAgIEhh
c2hTZXQ8V2ViUGFnZSo+IG1fcGFnZVNldDsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdAor
CisjZW5kaWYgLy8gRU5BQkxFKEJBVFRFUllfU1RBVFVTKQorCisjZW5kaWYgLy8gV2ViQmF0dGVy
eU1hbmFnZXJfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9CYXR0ZXJ5
L1dlYkJhdHRlcnlNYW5hZ2VyLm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy9CYXR0ZXJ5L1dlYkJhdHRlcnlNYW5hZ2VyLm1lc3NhZ2VzLmluCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAuLjM3ZTczZWYKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2Vi
S2l0Mi9XZWJQcm9jZXNzL0JhdHRlcnkvV2ViQmF0dGVyeU1hbmFnZXIubWVzc2FnZXMuaW4KQEAg
LTAsMCArMSwzMCBAQAorIyBDb3B5cmlnaHQgKEMpIDIwMTIgSW50ZWwgQ29ycG9yYXRpb24uIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCisjCisjIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorIyBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyMgYXJlIG1l
dDoKKyMgMS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUg
YWJvdmUgY29weXJpZ2h0CisjICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisjIDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmlu
YXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorIyAgICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGlu
IHRoZQorIyAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVk
IHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyMKKyMgVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBC
WSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJyBBTkQKKyMgQU5ZIEVY
UFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywgVEhFIElNUExJRUQKKyMgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5F
U1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRQorIyBESVNDTEFJTUVELiBJTiBOTyBFVkVO
VCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUgorIyBB
TlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBD
T05TRVFVRU5USUFMCisjIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQ
Uk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SCisjIFNFUlZJQ0VTOyBMT1NTIE9GIFVT
RSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSCisj
IENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJB
Q1QsIFNUUklDVCBMSUFCSUxJVFksCisjIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9S
IE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisjIE9GIFRISVMg
U09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1B
R0UuCisKKyNpZiBFTkFCTEUoQkFUVEVSWV9TVEFUVVMpCisKK21lc3NhZ2VzIC0+IFdlYkJhdHRl
cnlNYW5hZ2VyIHsKKyAgICBEaWRDaGFuZ2VCYXR0ZXJ5U3RhdHVzKEF0b21pY1N0cmluZyBldmVu
dFR5cGUsIFdlYktpdDo6V2ViQmF0dGVyeVN0YXR1czo6RGF0YSBzdGF0dXMpOworICAgIFVwZGF0
ZUJhdHRlcnlTdGF0dXMoV2ViS2l0OjpXZWJCYXR0ZXJ5U3RhdHVzOjpEYXRhIHN0YXR1cyk7Cit9
CisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3Jl
U3VwcG9ydC9XZWJCYXR0ZXJ5Q2xpZW50LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
V2ViQ29yZVN1cHBvcnQvV2ViQmF0dGVyeUNsaWVudC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMC4uOTEwMzNmYQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQy
L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQmF0dGVyeUNsaWVudC5jcHAKQEAgLTAsMCAr
MSw1NyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMiBJbnRlbCBDb3Jwb3JhdGlvbi4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJl
IG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4g
YmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
IGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3Zp
ZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJ
REVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQg
QU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFO
RCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElO
IE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElB
QkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBM
QVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7
IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBU
SU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRI
RVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcg
TkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRI
RSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lC
SUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1
ZGUgIldlYkJhdHRlcnlDbGllbnQuaCIKKworI2lmIEVOQUJMRShCQVRURVJZX1NUQVRVUykKKwor
I2luY2x1ZGUgIldlYkJhdHRlcnlNYW5hZ2VyLmgiCisjaW5jbHVkZSAiV2ViUGFnZS5oIgorI2lu
Y2x1ZGUgIldlYlByb2Nlc3MuaCIKKwordXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CisKK25hbWVz
cGFjZSBXZWJLaXQgeworCit2b2lkIFdlYkJhdHRlcnlDbGllbnQ6OnN0YXJ0VXBkYXRpbmcoKQor
eworICAgIFdlYlByb2Nlc3M6OnNoYXJlZCgpLmJhdHRlcnlNYW5hZ2VyKCkucmVnaXN0ZXJXZWJQ
YWdlKG1fcGFnZSk7Cit9CisKK3ZvaWQgV2ViQmF0dGVyeUNsaWVudDo6c3RvcFVwZGF0aW5nKCkK
K3sKKyAgICBXZWJQcm9jZXNzOjpzaGFyZWQoKS5iYXR0ZXJ5TWFuYWdlcigpLnVucmVnaXN0ZXJX
ZWJQYWdlKG1fcGFnZSk7Cit9CisKK3ZvaWQgV2ViQmF0dGVyeUNsaWVudDo6YmF0dGVyeUNvbnRy
b2xsZXJEZXN0cm95ZWQoKQoreworICAgIFdlYlByb2Nlc3M6OnNoYXJlZCgpLmJhdHRlcnlNYW5h
Z2VyKCkudW5yZWdpc3RlcldlYlBhZ2UobV9wYWdlKTsKKyAgICBkZWxldGUgdGhpczsKK30KKwor
fSAvLyBuYW1lc3BhY2UgV2ViS2l0CisKKyNlbmRpZiAvLyBFTkFCTEUoQkFUVEVSWV9TVEFUVVMp
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dl
YkJhdHRlcnlDbGllbnQuaCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBv
cnQvV2ViQmF0dGVyeUNsaWVudC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAu
LmIyNjBjNjIKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dl
YkNvcmVTdXBwb3J0L1dlYkJhdHRlcnlDbGllbnQuaApAQCAtMCwwICsxLDU4IEBACisvKgorICog
Q29weXJpZ2h0IChDKSAyMDEyIEludGVsIENvcnBvcmF0aW9uLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVk
aXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0
IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBk
b2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlz
dHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5D
LiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJ
TVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhF
IElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEg
UEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwg
QVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJF
Q1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05T
RVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJF
TUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERB
VEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FV
U0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJB
Q1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9U
SEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNP
RlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERB
TUFHRS4KKyAqLworCisjaWZuZGVmIFdlYkJhdHRlcnlDbGllbnRfaAorI2RlZmluZSBXZWJCYXR0
ZXJ5Q2xpZW50X2gKKworI2lmIEVOQUJMRShCQVRURVJZX1NUQVRVUykKKworI2luY2x1ZGUgPFdl
YkNvcmUvQmF0dGVyeUNsaWVudC5oPgorCituYW1lc3BhY2UgV2ViS2l0IHsKKworY2xhc3MgV2Vi
UGFnZTsKKworY2xhc3MgV2ViQmF0dGVyeUNsaWVudCA6IHB1YmxpYyBXZWJDb3JlOjpCYXR0ZXJ5
Q2xpZW50IHsKK3B1YmxpYzoKKyAgICBXZWJCYXR0ZXJ5Q2xpZW50KFdlYlBhZ2UqIHBhZ2UpCisg
ICAgICAgIDogbV9wYWdlKHBhZ2UpCisgICAgeworICAgIH0KKworICAgIHZpcnR1YWwgfldlYkJh
dHRlcnlDbGllbnQoKSB7IH0KKworcHJpdmF0ZToKKyAgICB2aXJ0dWFsIHZvaWQgc3RhcnRVcGRh
dGluZygpIE9WRVJSSURFOworICAgIHZpcnR1YWwgdm9pZCBzdG9wVXBkYXRpbmcoKSBPVkVSUklE
RTsKKyAgICB2aXJ0dWFsIHZvaWQgYmF0dGVyeUNvbnRyb2xsZXJEZXN0cm95ZWQoKSBPVkVSUklE
RTsKKworICAgIFdlYlBhZ2UqIG1fcGFnZTsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdAor
CisjZW5kaWYgLy8gRU5BQkxFKEJBVFRFUllfU1RBVFVTKQorCisjZW5kaWYgLy8gV2ViQmF0dGVy
eUNsaWVudF9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlByb2Nl
c3MuY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmNwcAppbmRleCAy
YjAzODJkLi5mZGYyNWQ0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dl
YlByb2Nlc3MuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5j
cHAKQEAgLTE0NSw2ICsxNDUsOSBAQCBXZWJQcm9jZXNzOjpXZWJQcm9jZXNzKCkKICNlbmRpZgog
ICAgICwgbV90ZXh0Q2hlY2tlclN0YXRlKCkKICAgICAsIG1fZ2VvbG9jYXRpb25NYW5hZ2VyKHRo
aXMpCisjaWYgRU5BQkxFKEJBVFRFUllfU1RBVFVTKQorICAgICwgbV9iYXR0ZXJ5TWFuYWdlcih0
aGlzKQorI2VuZGlmCiAjaWYgRU5BQkxFKE5PVElGSUNBVElPTlMpIHx8IEVOQUJMRShMRUdBQ1lf
Tk9USUZJQ0FUSU9OUykKICAgICAsIG1fbm90aWZpY2F0aW9uTWFuYWdlcih0aGlzKQogI2VuZGlm
CkBAIC02MzEsNiArNjM0LDEzIEBAIHZvaWQgV2ViUHJvY2Vzczo6ZGlkUmVjZWl2ZU1lc3NhZ2Uo
Q29yZUlQQzo6Q29ubmVjdGlvbiogY29ubmVjdGlvbiwgQ29yZUlQQzo6TWVzCiAgICAgICAgIHJl
dHVybjsKICAgICB9CiAKKyNpZiBFTkFCTEUoQkFUVEVSWV9TVEFUVVMpCisgICAgaWYgKG1lc3Nh
Z2VJRC5pczxDb3JlSVBDOjpNZXNzYWdlQ2xhc3NXZWJCYXR0ZXJ5TWFuYWdlcj4oKSkgeworICAg
ICAgICBtX2JhdHRlcnlNYW5hZ2VyLmRpZFJlY2VpdmVNZXNzYWdlKGNvbm5lY3Rpb24sIG1lc3Nh
Z2VJRCwgYXJndW1lbnRzKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKyNlbmRpZgorCiAgICAg
aWYgKG1lc3NhZ2VJRC5pczxDb3JlSVBDOjpNZXNzYWdlQ2xhc3NXZWJJY29uRGF0YWJhc2VQcm94
eT4oKSkgewogICAgICAgICBtX2ljb25EYXRhYmFzZVByb3h5LmRpZFJlY2VpdmVNZXNzYWdlKGNv
bm5lY3Rpb24sIG1lc3NhZ2VJRCwgYXJndW1lbnRzKTsKICAgICAgICAgcmV0dXJuOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmggYi9Tb3VyY2UvV2Vi
S2l0Mi9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuaAppbmRleCA5ODZjZTM2Li5jYzBhN2Y5IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuaAorKysgYi9Tb3Vy
Y2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuaApAQCAtNTcsNiArNTcsMTAgQEAgY2xh
c3MgUU5ldHdvcmtBY2Nlc3NNYW5hZ2VyOwogI2luY2x1ZGUgPGRpc3BhdGNoL2Rpc3BhdGNoLmg+
CiAjZW5kaWYKIAorI2lmIEVOQUJMRShCQVRURVJZX1NUQVRVUykKKyNpbmNsdWRlICJXZWJCYXR0
ZXJ5TWFuYWdlci5oIgorI2VuZGlmCisKICNpZiBFTkFCTEUoTk9USUZJQ0FUSU9OUykgfHwgRU5B
QkxFKExFR0FDWV9OT1RJRklDQVRJT05TKQogI2luY2x1ZGUgIldlYk5vdGlmaWNhdGlvbk1hbmFn
ZXIuaCIKICNlbmRpZgpAQCAtMTQyLDYgKzE0NiwxMCBAQCBwdWJsaWM6CiAKICAgICAvLyBHZW9s
b2NhdGlvbgogICAgIFdlYkdlb2xvY2F0aW9uTWFuYWdlciYgZ2VvbG9jYXRpb25NYW5hZ2VyKCkg
eyByZXR1cm4gbV9nZW9sb2NhdGlvbk1hbmFnZXI7IH0KKworI2lmIEVOQUJMRShCQVRURVJZX1NU
QVRVUykKKyAgICBXZWJCYXR0ZXJ5TWFuYWdlciYgYmF0dGVyeU1hbmFnZXIoKSB7IHJldHVybiBt
X2JhdHRlcnlNYW5hZ2VyOyB9CisjZW5kaWYKICAgICAKICNpZiBFTkFCTEUoTk9USUZJQ0FUSU9O
UykgfHwgRU5BQkxFKExFR0FDWV9OT1RJRklDQVRJT05TKQogICAgIFdlYk5vdGlmaWNhdGlvbk1h
bmFnZXImIG5vdGlmaWNhdGlvbk1hbmFnZXIoKSB7IHJldHVybiBtX25vdGlmaWNhdGlvbk1hbmFn
ZXI7IH0KQEAgLTI4Niw2ICsyOTQsOSBAQCBwcml2YXRlOgogCiAgICAgVGV4dENoZWNrZXJTdGF0
ZSBtX3RleHRDaGVja2VyU3RhdGU7CiAgICAgV2ViR2VvbG9jYXRpb25NYW5hZ2VyIG1fZ2VvbG9j
YXRpb25NYW5hZ2VyOworI2lmIEVOQUJMRShCQVRURVJZX1NUQVRVUykKKyAgICBXZWJCYXR0ZXJ5
TWFuYWdlciBtX2JhdHRlcnlNYW5hZ2VyOworI2VuZGlmCiAjaWYgRU5BQkxFKE5PVElGSUNBVElP
TlMpIHx8IEVOQUJMRShMRUdBQ1lfTk9USUZJQ0FUSU9OUykKICAgICBXZWJOb3RpZmljYXRpb25N
YW5hZ2VyIG1fbm90aWZpY2F0aW9uTWFuYWdlcjsKICNlbmRpZgo=
</data>

          </attachment>
      

    </bug>

</bugzilla>