<?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>76471</bug_id>
          
          <creation_ts>2012-01-17 12:09:25 -0800</creation_ts>
          <short_desc>Move RunLoop to WebCore/platform</short_desc>
          <delta_ts>2012-02-13 09:27:15 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>78504</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Sam Weinig">sam</reporter>
          <assigned_to name="Sam Weinig">sam</assigned_to>
          <cc>gustavo.noronha</cc>
    
    <cc>gustavo</cc>
    
    <cc>levin+threading</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>537268</commentid>
    <comment_count>0</comment_count>
    <who name="Sam Weinig">sam</who>
    <bug_when>2012-01-17 12:09:25 -0800</bug_when>
    <thetext>Move RunLoop to WebCore/platform</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>537269</commentid>
    <comment_count>1</comment_count>
      <attachid>122796</attachid>
    <who name="Sam Weinig">sam</who>
    <bug_when>2012-01-17 12:10:09 -0800</bug_when>
    <thetext>Created attachment 122796
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>537320</commentid>
    <comment_count>2</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-01-17 13:15:44 -0800</bug_when>
    <thetext>Attachment 122796 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;Source/WebCore/ChangeLog&apos;, u&apos;Source/WebCor...&quot; exit_code: 1

Source/WebKit2/WebProcess/win/WebProcessMainWin.cpp:32:  Alphabetical sorting problem.  [build/include_order] [4]
Source/WebKit2/Platform/CoreIPC/Connection.h:54:  Code inside a namespace should not be indented.  [whitespace/indent] [4]
Source/WebCore/platform/qt/RunLoopQt.cpp:31:  Alphabetical sorting problem.  [build/include_order] [4]
Source/WebCore/platform/qt/RunLoopQt.cpp:33:  Alphabetical sorting problem.  [build/include_order] [4]
Source/WebCore/platform/qt/RunLoopQt.cpp:38:  This { should be at the end of the previous line  [whitespace/braces] [4]
Source/WebKit2/WebProcess/Plugins/Netscape/NetscapePluginStream.h:31:  Alphabetical sorting problem.  [build/include_order] [4]
Source/WebKit2/UIProcess/Launcher/qt/ThreadLauncherQt.cpp:32:  Alphabetical sorting problem.  [build/include_order] [4]
Source/WebKit2/PluginProcess/PluginProcess.h:36:  Code inside a namespace should not be indented.  [whitespace/indent] [4]
Source/WebKit2/UIProcess/Launcher/win/ProcessLauncherWin.cpp:31:  Alphabetical sorting problem.  [build/include_order] [4]
Source/WebKit2/WebProcess/qt/WebProcessMainQt.cpp:31:  Alphabetical sorting problem.  [build/include_order] [4]
Source/WebKit2/UIProcess/Launcher/win/ThreadLauncherWin.cpp:31:  Alphabetical sorting problem.  [build/include_order] [4]
Total errors found: 11 in 62 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>537325</commentid>
    <comment_count>3</comment_count>
      <attachid>122796</attachid>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2012-01-17 13:27:15 -0800</bug_when>
    <thetext>Comment on attachment 122796
Patch

Attachment 122796 did not pass qt-ews (qt):
Output: http://queues.webkit.org/results/11111303</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>537335</commentid>
    <comment_count>4</comment_count>
      <attachid>122796</attachid>
    <who name="Gustavo Noronha (kov)">gustavo</who>
    <bug_when>2012-01-17 13:44:16 -0800</bug_when>
    <thetext>Comment on attachment 122796
Patch

Attachment 122796 did not pass gtk-ews (gtk):
Output: http://queues.webkit.org/results/11268315</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>537541</commentid>
    <comment_count>5</comment_count>
      <attachid>122859</attachid>
    <who name="Sam Weinig">sam</who>
    <bug_when>2012-01-17 18:37:12 -0800</bug_when>
    <thetext>Created attachment 122859
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>537642</commentid>
    <comment_count>6</comment_count>
      <attachid>122859</attachid>
    <who name="Gustavo Noronha (kov)">gustavo</who>
    <bug_when>2012-01-17 22:50:08 -0800</bug_when>
    <thetext>Comment on attachment 122859
Patch

Attachment 122859 did not pass gtk-ews (gtk):
Output: http://queues.webkit.org/results/11283088</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>538119</commentid>
    <comment_count>7</comment_count>
      <attachid>122984</attachid>
    <who name="Sam Weinig">sam</who>
    <bug_when>2012-01-18 13:46:48 -0800</bug_when>
    <thetext>Created attachment 122984
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>538141</commentid>
    <comment_count>8</comment_count>
      <attachid>122990</attachid>
    <who name="Sam Weinig">sam</who>
    <bug_when>2012-01-18 14:05:26 -0800</bug_when>
    <thetext>Created attachment 122990
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>538193</commentid>
    <comment_count>9</comment_count>
      <attachid>122990</attachid>
    <who name="Gustavo Noronha (kov)">gustavo</who>
    <bug_when>2012-01-18 14:45:34 -0800</bug_when>
    <thetext>Comment on attachment 122990
Patch

Attachment 122990 did not pass gtk-ews (gtk):
Output: http://queues.webkit.org/results/11196842</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>538326</commentid>
    <comment_count>10</comment_count>
      <attachid>123037</attachid>
    <who name="Sam Weinig">sam</who>
    <bug_when>2012-01-18 16:47:34 -0800</bug_when>
    <thetext>Created attachment 123037
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>538453</commentid>
    <comment_count>11</comment_count>
      <attachid>123037</attachid>
    <who name="Gustavo Noronha (kov)">gustavo</who>
    <bug_when>2012-01-18 21:20:49 -0800</bug_when>
    <thetext>Comment on attachment 123037
Patch

Attachment 123037 did not pass gtk-ews (gtk):
Output: http://queues.webkit.org/results/11284500</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>538787</commentid>
    <comment_count>12</comment_count>
      <attachid>123146</attachid>
    <who name="Sam Weinig">sam</who>
    <bug_when>2012-01-19 10:14:06 -0800</bug_when>
    <thetext>Created attachment 123146
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>538789</commentid>
    <comment_count>13</comment_count>
      <attachid>123146</attachid>
    <who name="Gustavo Noronha (kov)">gustavo</who>
    <bug_when>2012-01-19 10:19:55 -0800</bug_when>
    <thetext>Comment on attachment 123146
Patch

Attachment 123146 did not pass gtk-ews (gtk):
Output: http://queues.webkit.org/results/11132152</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>538857</commentid>
    <comment_count>14</comment_count>
      <attachid>123157</attachid>
    <who name="Sam Weinig">sam</who>
    <bug_when>2012-01-19 11:36:55 -0800</bug_when>
    <thetext>Created attachment 123157
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>539194</commentid>
    <comment_count>15</comment_count>
      <attachid>123157</attachid>
    <who name="Collabora GTK+ EWS bot">gustavo.noronha</who>
    <bug_when>2012-01-19 17:53:23 -0800</bug_when>
    <thetext>Comment on attachment 123157
Patch

Attachment 123157 did not pass gtk-ews (gtk):
Output: http://queues.webkit.org/results/11247264</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>539217</commentid>
    <comment_count>16</comment_count>
      <attachid>123157</attachid>
    <who name="Gustavo Noronha (kov)">gustavo</who>
    <bug_when>2012-01-19 18:24:32 -0800</bug_when>
    <thetext>Comment on attachment 123157
Patch

Attachment 123157 did not pass gtk-ews (gtk):
Output: http://queues.webkit.org/results/11253646</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>539242</commentid>
    <comment_count>17</comment_count>
    <who name="Sam Weinig">sam</who>
    <bug_when>2012-01-19 19:05:11 -0800</bug_when>
    <thetext>Committed r105475: &lt;http://trac.webkit.org/changeset/105475&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>122796</attachid>
            <date>2012-01-17 12:10:09 -0800</date>
            <delta_ts>2012-01-17 18:37:09 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-76471-20120117121016.patch</filename>
            <type>text/plain</type>
            <size>130170</size>
            <attacher name="Sam Weinig">sam</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTA1MTAxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOWVmZThkN2JlYWQ5ZjAz
NDIwN2VhOGQ4NjU1Njg0YzkwOWFhM2JjNi4uODRkMzIyYmVkM2IzMTUzYTY3OWQ5N2E3Y2Q3OWVm
YmY0OTRmZmMwOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDkxIEBACisyMDEyLTAxLTE3ICBTYW0g
V2VpbmlnICA8c2FtQHdlYmtpdC5vcmc+CisKKyAgICAgICAgTW92ZSBSdW5Mb29wIHRvIFdlYkNv
cmUvcGxhdGZvcm0KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTc2NDcxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgTm8gbmV3IHRlc3RzLiAoT09QUyEpCisKKyAgICAgICAgKiBHTlVtYWtlZmlsZS5saXN0LmFt
OgorICAgICAgICAqIFRhcmdldC5wcmk6CisgICAgICAgICogV2ViQ29yZS5leHAuaW46CisgICAg
ICAgICogV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2o6CisgICAgICAgICogV2ViQ29yZS54
Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIHBsYXRmb3JtL1J1bkxvb3AuY3Bw
OiBSZW5hbWVkIGZyb20gU291cmNlL1dlYktpdDIvUGxhdGZvcm0vUnVuTG9vcC5jcHAuCisgICAg
ICAgIChXZWJDb3JlOjpSdW5Mb29wOjppbml0aWFsaXplTWFpblJ1bkxvb3ApOgorICAgICAgICAo
V2ViQ29yZTo6UnVuTG9vcDo6Y3VycmVudCk6CisgICAgICAgIChXZWJDb3JlOjpSdW5Mb29wOjpt
YWluKToKKyAgICAgICAgKFdlYkNvcmU6OlJ1bkxvb3A6OnBlcmZvcm1Xb3JrKToKKyAgICAgICAg
KFdlYkNvcmU6OlJ1bkxvb3A6OmRpc3BhdGNoKToKKyAgICAgICAgKiBwbGF0Zm9ybS9SdW5Mb29w
Lmg6IFJlbmFtZWQgZnJvbSBTb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9SdW5Mb29wLmguCisgICAg
ICAgIChXZWJDb3JlOjpSdW5Mb29wOjpUaW1lckJhc2U6OnN0YXJ0UmVwZWF0aW5nKToKKyAgICAg
ICAgKFdlYkNvcmU6OlJ1bkxvb3A6OlRpbWVyQmFzZTo6c3RhcnRPbmVTaG90KToKKyAgICAgICAg
KFdlYkNvcmU6OlJ1bkxvb3A6OlRpbWVyQmFzZTo6aXNSZXBlYXRpbmcpOgorICAgICAgICAoV2Vi
Q29yZTo6UnVuTG9vcDo6VGltZXI6OlRpbWVyKToKKyAgICAgICAgKFdlYkNvcmU6OlJ1bkxvb3A6
OlRpbWVyOjpmaXJlZCk6CisgICAgICAgICogcGxhdGZvcm0vZ3RrL1J1bkxvb3BHdGsuY3BwOiBS
ZW5hbWVkIGZyb20gU291cmNlL1dlYktpdDIvUGxhdGZvcm0vZ3RrL1J1bkxvb3BHdGsuY3BwLgor
ICAgICAgICAoUnVuTG9vcDo6UnVuTG9vcCk6CisgICAgICAgIChSdW5Mb29wOjp+UnVuTG9vcCk6
CisgICAgICAgIChSdW5Mb29wOjpydW4pOgorICAgICAgICAoUnVuTG9vcDo6bWFpbkxvb3ApOgor
ICAgICAgICAoUnVuTG9vcDo6c3RvcCk6CisgICAgICAgIChSdW5Mb29wOjpxdWV1ZVdvcmspOgor
ICAgICAgICAoUnVuTG9vcDo6d2FrZVVwKToKKyAgICAgICAgKFJ1bkxvb3A6OlRpbWVyQmFzZTo6
VGltZXJCYXNlKToKKyAgICAgICAgKFJ1bkxvb3A6OlRpbWVyQmFzZTo6flRpbWVyQmFzZSk6Cisg
ICAgICAgIChSdW5Mb29wOjpUaW1lckJhc2U6OmNsZWFyVGltZXJTb3VyY2UpOgorICAgICAgICAo
UnVuTG9vcDo6VGltZXJCYXNlOjp0aW1lckZpcmVkQ2FsbGJhY2spOgorICAgICAgICAoUnVuTG9v
cDo6VGltZXJCYXNlOjpzdGFydCk6CisgICAgICAgIChSdW5Mb29wOjpUaW1lckJhc2U6OnN0b3Ap
OgorICAgICAgICAoUnVuTG9vcDo6VGltZXJCYXNlOjppc0FjdGl2ZSk6CisgICAgICAgICogcGxh
dGZvcm0vbWFjL1J1bkxvb3BNYWMubW06IFJlbmFtZWQgZnJvbSBTb3VyY2UvV2ViS2l0Mi9QbGF0
Zm9ybS9tYWMvUnVuTG9vcE1hYy5tbS4KKyAgICAgICAgKFdlYkNvcmU6OlJ1bkxvb3A6OnBlcmZv
cm1Xb3JrKToKKyAgICAgICAgKFdlYkNvcmU6OlJ1bkxvb3A6OlJ1bkxvb3ApOgorICAgICAgICAo
V2ViQ29yZTo6UnVuTG9vcDo6flJ1bkxvb3ApOgorICAgICAgICAoV2ViQ29yZTo6UnVuTG9vcDo6
cnVuKToKKyAgICAgICAgKFdlYkNvcmU6OlJ1bkxvb3A6OnJ1bkZvckR1cmF0aW9uKToKKyAgICAg
ICAgKFdlYkNvcmU6OlJ1bkxvb3A6OnN0b3ApOgorICAgICAgICAoV2ViQ29yZTo6UnVuTG9vcDo6
d2FrZVVwKToKKyAgICAgICAgKFdlYkNvcmU6OlJ1bkxvb3A6OlRpbWVyQmFzZTo6dGltZXJGaXJl
ZCk6CisgICAgICAgIChXZWJDb3JlOjpSdW5Mb29wOjpUaW1lckJhc2U6OlRpbWVyQmFzZSk6Cisg
ICAgICAgIChXZWJDb3JlOjpSdW5Mb29wOjpUaW1lckJhc2U6On5UaW1lckJhc2UpOgorICAgICAg
ICAoV2ViQ29yZTo6UnVuTG9vcDo6VGltZXJCYXNlOjpzdGFydCk6CisgICAgICAgIChXZWJDb3Jl
OjpSdW5Mb29wOjpUaW1lckJhc2U6OnN0b3ApOgorICAgICAgICAoV2ViQ29yZTo6UnVuTG9vcDo6
VGltZXJCYXNlOjppc0FjdGl2ZSk6CisgICAgICAgICogcGxhdGZvcm0vcXQvUnVuTG9vcFF0LmNw
cDogUmVuYW1lZCBmcm9tIFNvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL3F0L1J1bkxvb3BRdC5jcHAu
CisgICAgICAgIChSdW5Mb29wOjpUaW1lck9iamVjdDo6VGltZXJPYmplY3QpOgorICAgICAgICAo
UnVuTG9vcDo6VGltZXJPYmplY3Q6OnBlcmZvcm1Xb3JrKToKKyAgICAgICAgKFJ1bkxvb3A6OlRp
bWVyT2JqZWN0Ojp3YWtlVXApOgorICAgICAgICAoUnVuTG9vcDo6VGltZXJPYmplY3Q6OnRpbWVy
RXZlbnQpOgorICAgICAgICAoUnVuTG9vcDo6cnVuKToKKyAgICAgICAgKFJ1bkxvb3A6OnN0b3Ap
OgorICAgICAgICAoUnVuTG9vcDo6UnVuTG9vcCk6CisgICAgICAgIChSdW5Mb29wOjp+UnVuTG9v
cCk6CisgICAgICAgIChSdW5Mb29wOjp3YWtlVXApOgorICAgICAgICAoUnVuTG9vcDo6VGltZXJC
YXNlOjp0aW1lckZpcmVkKToKKyAgICAgICAgKFJ1bkxvb3A6OlRpbWVyQmFzZTo6VGltZXJCYXNl
KToKKyAgICAgICAgKFJ1bkxvb3A6OlRpbWVyQmFzZTo6flRpbWVyQmFzZSk6CisgICAgICAgIChS
dW5Mb29wOjpUaW1lckJhc2U6OnN0YXJ0KToKKyAgICAgICAgKFJ1bkxvb3A6OlRpbWVyQmFzZTo6
c3RvcCk6CisgICAgICAgIChSdW5Mb29wOjpUaW1lckJhc2U6OmlzQWN0aXZlKToKKyAgICAgICAg
KiBwbGF0Zm9ybS93aW4vUnVuTG9vcFdpbi5jcHA6IFJlbmFtZWQgZnJvbSBTb3VyY2UvV2ViS2l0
Mi9QbGF0Zm9ybS93aW4vUnVuTG9vcFdpbi5jcHAuCisgICAgICAgIChSdW5Mb29wOjpSdW5Mb29w
V25kUHJvYyk6CisgICAgICAgIChSdW5Mb29wOjp3bmRQcm9jKToKKyAgICAgICAgKFJ1bkxvb3A6
OnJ1bik6CisgICAgICAgIChSdW5Mb29wOjpzdG9wKToKKyAgICAgICAgKFJ1bkxvb3A6OnJlZ2lz
dGVyUnVuTG9vcE1lc3NhZ2VXaW5kb3dDbGFzcyk6CisgICAgICAgIChSdW5Mb29wOjpSdW5Mb29w
KToKKyAgICAgICAgKFJ1bkxvb3A6On5SdW5Mb29wKToKKyAgICAgICAgKFJ1bkxvb3A6Ondha2VV
cCk6CisgICAgICAgIChSdW5Mb29wOjpUaW1lckJhc2U6OnRpbWVyRmlyZWQpOgorICAgICAgICAo
Z2VuZXJhdGVUaW1lcklEKToKKyAgICAgICAgKFJ1bkxvb3A6OlRpbWVyQmFzZTo6VGltZXJCYXNl
KToKKyAgICAgICAgKFJ1bkxvb3A6OlRpbWVyQmFzZTo6flRpbWVyQmFzZSk6CisgICAgICAgIChS
dW5Mb29wOjpUaW1lckJhc2U6OnN0YXJ0KToKKyAgICAgICAgKFJ1bkxvb3A6OlRpbWVyQmFzZTo6
c3RvcCk6CisgICAgICAgIChSdW5Mb29wOjpUaW1lckJhc2U6OmlzQWN0aXZlKToKKwogMjAxMi0w
MS0xNiAgSm9uIExlZSAgPGpvbmxlZUBhcHBsZS5jb20+CiAKICAgICAgICAgQnVpbGQgZml4IGZv
ciByMTA1MDg2LgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nIGIvU291cmNl
L1dlYktpdDIvQ2hhbmdlTG9nCmluZGV4IDAwY2I0ODE2NjkyZmM0Mjc5ZWEyNDRlMTllYTE1OTY4
ZWQzN2U1MmEuLjgzNGU4YzllMzY3NzRkODI4MWM0ZWE3OTgzMWM4NDZiMzJjYjkzMjMgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFu
Z2VMb2cKQEAgLTEsMyArMSw2NSBAQAorMjAxMi0wMS0xNyAgU2FtIFdlaW5pZyAgPHNhbUB3ZWJr
aXQub3JnPgorCisgICAgICAgIE1vdmUgUnVuTG9vcCB0byBXZWJDb3JlL3BsYXRmb3JtCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03NjQ3MQorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogR05VbWFrZWZpbGUu
YW06CisgICAgICAgICogUGxhdGZvcm0vQ29yZUlQQy9Db25uZWN0aW9uLmNwcDoKKyAgICAgICAg
KiBQbGF0Zm9ybS9Db3JlSVBDL0Nvbm5lY3Rpb24uaDoKKyAgICAgICAgKiBQbGF0Zm9ybS9Db3Jl
SVBDL21hYy9Db25uZWN0aW9uTWFjLmNwcDoKKyAgICAgICAgKiBQbHVnaW5Qcm9jZXNzL1BsdWdp
bkNvbnRyb2xsZXJQcm94eS5oOgorICAgICAgICAqIFBsdWdpblByb2Nlc3MvUGx1Z2luUHJvY2Vz
cy5jcHA6CisgICAgICAgICogUGx1Z2luUHJvY2Vzcy9QbHVnaW5Qcm9jZXNzLmg6CisgICAgICAg
ICogUGx1Z2luUHJvY2Vzcy9XZWJQcm9jZXNzQ29ubmVjdGlvbi5jcHA6CisgICAgICAgICogUGx1
Z2luUHJvY2Vzcy9tYWMvUGx1Z2luUHJvY2Vzc01haW5NYWMubW06CisgICAgICAgICogUGx1Z2lu
UHJvY2Vzcy9xdC9QbHVnaW5Qcm9jZXNzTWFpblF0LmNwcDoKKyAgICAgICAgKiBTaGFyZWQvQ2hp
bGRQcm9jZXNzLmNwcDoKKyAgICAgICAgKiBTaGFyZWQvQ2hpbGRQcm9jZXNzLmg6CisgICAgICAg
ICogVGFyZ2V0LnByaToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL21hYy9GaW5kSW5kaWNhdG9y
V2luZG93Lmg6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9tYWMvV0tWaWV3Lm1tOgorICAgICAg
ICAqIFVJUHJvY2Vzcy9EcmF3aW5nQXJlYVByb3h5SW1wbC5oOgorICAgICAgICAqIFVJUHJvY2Vz
cy9MYXVuY2hlci9UaHJlYWRMYXVuY2hlci5jcHA6CisgICAgICAgICogVUlQcm9jZXNzL0xhdW5j
aGVyL2d0ay9Qcm9jZXNzTGF1bmNoZXJHdGsuY3BwOgorICAgICAgICAqIFVJUHJvY2Vzcy9MYXVu
Y2hlci9tYWMvUHJvY2Vzc0xhdW5jaGVyTWFjLm1tOgorICAgICAgICAqIFVJUHJvY2Vzcy9MYXVu
Y2hlci9tYWMvVGhyZWFkTGF1bmNoZXJNYWMubW06CisgICAgICAgICogVUlQcm9jZXNzL0xhdW5j
aGVyL3F0L1Byb2Nlc3NMYXVuY2hlclF0LmNwcDoKKyAgICAgICAgKiBVSVByb2Nlc3MvTGF1bmNo
ZXIvcXQvVGhyZWFkTGF1bmNoZXJRdC5jcHA6CisgICAgICAgICogVUlQcm9jZXNzL0xhdW5jaGVy
L3dpbi9Qcm9jZXNzTGF1bmNoZXJXaW4uY3BwOgorICAgICAgICAqIFVJUHJvY2Vzcy9MYXVuY2hl
ci93aW4vVGhyZWFkTGF1bmNoZXJXaW4uY3BwOgorICAgICAgICAqIFVJUHJvY2Vzcy9MYXllclRy
ZWVIb3N0UHJveHkuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvUGx1Z2lucy9QbHVnaW5Qcm9jZXNz
UHJveHkuY3BwOgorICAgICAgICAqIFVJUHJvY2Vzcy9SZXNwb25zaXZlbmVzc1RpbWVyLmNwcDoK
KyAgICAgICAgKiBVSVByb2Nlc3MvUmVzcG9uc2l2ZW5lc3NUaW1lci5oOgorICAgICAgICAqIFVJ
UHJvY2Vzcy9UaWxlZERyYXdpbmdBcmVhUHJveHkuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvVmlz
aXRlZExpbmtQcm92aWRlci5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJDb25uZWN0aW9uVG9X
ZWJQcm9jZXNzLmNwcDoKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViQ29ubmVjdGlvblRvV2ViUHJv
Y2Vzcy5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJDb250ZXh0LmNwcDoKKyAgICAgICAgKiBV
SVByb2Nlc3Mvd2luL1dlYlZpZXcuY3BwOgorICAgICAgICAqIFdlYktpdDIueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1BsdWdpbnMvTmV0c2NhcGUvTlBS
dW50aW1lT2JqZWN0TWFwLmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9QbHVnaW5zL05ldHNjYXBl
L05ldHNjYXBlUGx1Z2luLmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9QbHVnaW5zL05ldHNjYXBl
L05ldHNjYXBlUGx1Z2luU3RyZWFtLmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9QbHVnaW5zL1Bs
dWdpblZpZXcuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYkNvbm5lY3Rpb25Ub1VJUHJvY2Vz
cy5jcHA6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJDb25uZWN0aW9uVG9VSVByb2Nlc3MuaDoK
KyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkdyYXBoaWNzTGF5ZXIuaDoK
KyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvRHJhd2luZ0FyZWFJbXBsLmg6CisgICAgICAg
ICogV2ViUHJvY2Vzcy9XZWJQYWdlL0V2ZW50RGlzcGF0Y2hlci5jcHA6CisgICAgICAgICogV2Vi
UHJvY2Vzcy9XZWJQYWdlL1BhZ2VPdmVybGF5Lmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQ
YWdlL1dlYlBhZ2UuY3BwOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmg6
CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmNwcDoKKyAgICAgICAgKiBXZWJQcm9j
ZXNzL1dlYlByb2Nlc3MuaDoKKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzczo6cnVuTG9vcCk6
CisgICAgICAgICogV2ViUHJvY2Vzcy9tYWMvV2ViUHJvY2Vzc01haW5NYWMubW06CisgICAgICAg
ICogV2ViUHJvY2Vzcy9xdC9XZWJQcm9jZXNzTWFpblF0LmNwcDoKKyAgICAgICAgKiBXZWJQcm9j
ZXNzL3dpbi9XZWJQcm9jZXNzTWFpbldpbi5jcHA6CisgICAgICAgICogd2luL1dlYktpdDIudmNw
cm9qOgorCiAyMDEyLTAxLTE2ICBKb24gTGVlICA8am9ubGVlQGFwcGxlLmNvbT4KIAogICAgICAg
ICBCdWlsZCBmaXggZm9yIHIxMDUwODYuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9HTlVt
YWtlZmlsZS5saXN0LmFtIGIvU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbQppbmRl
eCBjZTY3ZjUxZGM0OTA2MGI5MmNjNDQ0ZjcyNjgxNmNjNDMwMTZhMzFkLi5kNzhhYjQ2ZjYzYTQ4
N2U3YTViYjk2NGJjZWU5ZmRlNGE2MzFiMDJhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9H
TlVtYWtlZmlsZS5saXN0LmFtCisrKyBiL1NvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3Qu
YW0KQEAgLTMyMTksNiArMzIxOSw4IEBAIHdlYmNvcmVfc291cmNlcyArPSBcCiAJU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vUG9wdXBNZW51U3R5bGUuaCBcCiAJU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vUHVyZ2VhYmxlQnVmZmVyLmggXAogCVNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1B1cmdlUHJp
b3JpdHkuaCBcCisJU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vUnVuTG9vcC5jcHAgXAorCVNvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL1J1bkxvb3AuaCBcCiAJU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
UnVudGltZUFwcGxpY2F0aW9uQ2hlY2tzLmNwcCBcCiAJU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
UnVudGltZUFwcGxpY2F0aW9uQ2hlY2tzLmggXAogCVNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Nj
aGVtZVJlZ2lzdHJ5LmNwcCBcCkBAIC00NDk0LDYgKzQ0OTYsNyBAQCB3ZWJjb3JlZ3RrX3NvdXJj
ZXMgKz0gXAogCVNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9SZW5kZXJUaGVtZUd0ay5oIFwK
IAlTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ndGsvUmVuZGVyVGhlbWVHdGsyLmNwcCBcCiAJU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3RrL1JlbmRlclRoZW1lR3RrMy5jcHAgXAorCVNvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2d0ay9SdW5Mb29wR3RrLmNwcCBcCiAJU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3RrL1Njcm9sbGJhclRoZW1lR3RrLmNwcCBcCiAJU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3RrL1Njcm9sbGJhclRoZW1lR3RrLmggXAogCVNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2d0
ay9TY3JvbGxiYXJUaGVtZUd0azIuY3BwIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1Rh
cmdldC5wcmkgYi9Tb3VyY2UvV2ViQ29yZS9UYXJnZXQucHJpCmluZGV4IGFhNjAyN2ZiYmJjYWMy
OWU3OTNmMjAxZWRjMjQ3OTQwZWY3NjRhZmIuLmQ4N2UyZGYzOWU4ZjJjMTZjZGM1MzQyM2UwZDIz
MmQ3ZWYxNzkzM2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1RhcmdldC5wcmkKKysrIGIv
U291cmNlL1dlYkNvcmUvVGFyZ2V0LnByaQpAQCAtMTEyNSw2ICsxMTI1LDcgQEAgU09VUkNFUyAr
PSBcCiAgICAgcGxhdGZvcm0vdGV4dC9SZWd1bGFyRXhwcmVzc2lvbi5jcHAgXAogICAgIHBsYXRm
b3JtL1BsYXRmb3JtRXZlbnQuY3BwIFwKICAgICBwbGF0Zm9ybS9SdW50aW1lQXBwbGljYXRpb25D
aGVja3MuY3BwIFwKKyAgICBwbGF0Zm9ybS9SdW5Mb29wLmNwcCBcCiAgICAgcGxhdGZvcm0vU2No
ZW1lUmVnaXN0cnkuY3BwIFwKICAgICBwbGF0Zm9ybS9TY3JvbGxhYmxlQXJlYS5jcHAgXAogICAg
IHBsYXRmb3JtL1Njcm9sbEFuaW1hdG9yLmNwcCBcCkBAIC0yNzk3LDYgKzI3OTgsNyBAQCBTT1VS
Q0VTICs9IFwKICAgICBwbGF0Zm9ybS9xdC9EcmFnSW1hZ2VRdC5jcHAgXAogICAgIHBsYXRmb3Jt
L3F0L0V2ZW50TG9vcFF0LmNwcCBcCiAgICAgcGxhdGZvcm0vcXQvRmlsZVN5c3RlbVF0LmNwcCBc
CisgICAgcGxhdGZvcm0vcXQvUnVuTG9vcFF0LmNwcCBcCiAgICAgcGxhdGZvcm0vcXQvU2hhcmVk
QnVmZmVyUXQuY3BwIFwKICAgICBwbGF0Zm9ybS9xdC9UaGlyZFBhcnR5Q29va2llc1F0LmNwcCBc
CiAgICAgcGxhdGZvcm0vZ3JhcGhpY3MvcXQvRm9udENhY2hlUXQuY3BwIFwKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZXhwLmluIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5l
eHAuaW4KaW5kZXggM2E1YjI5YmFkMWY0ZWZlYTNiZGI5YTQzMTk2NGQ4MjMxNjgxOWUxZS4uNjRk
ZjAxNzZiNjhmZDExN2Q4NmE2M2RkYTg1ZWFhYjZmNDc3NGI2OCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvV2ViQ29yZS5leHAuaW4KKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5leHAu
aW4KQEAgLTI4MCw3ICsyODAsNiBAQCBfX1pON1dlYkNvcmUxMlByaW50Q29udGV4dDlzcG9vbFBh
Z2VFUk5TXzE1R3JhcGhpY3NDb250ZXh0RWlmCiBfX1pON1dlYkNvcmUxMlByaW50Q29udGV4dDlz
cG9vbFJlY3RFUk5TXzE1R3JhcGhpY3NDb250ZXh0RVJLTlNfN0ludFJlY3RFCiBfX1pON1dlYkNv
cmUxMlByaW50Q29udGV4dEMxRVBOU181RnJhbWVFCiBfX1pON1dlYkNvcmUxMlByaW50Q29udGV4
dEQxRXYKLV9fWk5LN1dlYkNvcmUxMlJlbmRlck9iamVjdDEzc3R5bGVJblJlZ2lvbkV2CiBfX1pO
N1dlYkNvcmUxMlJlbmRlck9iamVjdDE2cmVwYWludFJlY3RhbmdsZUVSS05TXzdJbnRSZWN0RWIK
IF9fWk43V2ViQ29yZTEyUmVuZGVyV2lkZ2V0MjhyZXN1bWVXaWRnZXRIaWVyYXJjaHlVcGRhdGVz
RXYKIF9fWk43V2ViQ29yZTEyUmVuZGVyV2lkZ2V0MjlzdXNwZW5kV2lkZ2V0SGllcmFyY2h5VXBk
YXRlc0V2CkBAIC0zNjQsOSArMzYzLDYgQEAgX19aTjdXZWJDb3JlMTRSZXNvdXJjZUhhbmRsZTIw
Zm9yY2VDb250ZW50U25pZmZpbmdFdgogX19aTjdXZWJDb3JlMTRSZXNvdXJjZUhhbmRsZTI2c3lu
Y2hyb25vdXNMb2FkUnVuTG9vcE1vZGVFdgogX19aTjdXZWJDb3JlMTRSZXNvdXJjZUhhbmRsZTM1
Y3JlYXRlUHJpdmF0ZUJyb3dzaW5nU3RvcmFnZVNlc3Npb25FUEsxMF9fQ0ZTdHJpbmcKIF9fWk43
V2ViQ29yZTE0UmVzb3VyY2VMb2FkZXIxNGNhbmNlbGxlZEVycm9yRXYKLSNpZiBFTkFCTEUoU1ZH
KQotX19aTjdXZWJDb3JlMTRTVkdTTUlMRWxlbWVudDEzaXNTTUlMRWxlbWVudEVQTlNfNE5vZGVF
Ci0jZW5kaWYKIF9fWk43V2ViQ29yZTE0U2NoZW1lUmVnaXN0cnkyNHJlZ2lzdGVyVVJMU2NoZW1l
QXNMb2NhbEVSS04zV1RGNlN0cmluZ0UKIF9fWk43V2ViQ29yZTE0U2NoZW1lUmVnaXN0cnkyNXJl
Z2lzdGVyVVJMU2NoZW1lQXNTZWN1cmVFUktOM1dURjZTdHJpbmdFCiBfX1pON1dlYkNvcmUxNFNj
aGVtZVJlZ2lzdHJ5MzJyZWdpc3RlclVSTFNjaGVtZUFzRW1wdHlEb2N1bWVudEVSS04zV1RGNlN0
cmluZ0UKQEAgLTYxNSw5ICs2MTEsNiBAQCBfX1pON1dlYkNvcmUyMU1lbW9yeVByZXNzdXJlSGFu
ZGxlcjdpbnN0YWxsRXYKIF9fWk43V2ViQ29yZTIxUGxhdGZvcm1LZXlib2FyZEV2ZW50MjRkaXNh
bWJpZ3VhdGVLZXlEb3duRXZlbnRFTlNfMTNQbGF0Zm9ybUV2ZW50NFR5cGVFYgogX19aTjdXZWJD
b3JlMjFSZXNvdXJjZUxvYWRTY2hlZHVsZXIyMHNlcnZlUGVuZGluZ1JlcXVlc3RzRU5TXzIwUmVz
b3VyY2VMb2FkUHJpb3JpdHlFCiBfX1pON1dlYkNvcmUyMVJlc291cmNlTG9hZFNjaGVkdWxlcjI0
c2NoZWR1bGVQbHVnaW5TdHJlYW1Mb2FkRVBOU181RnJhbWVFUE5TXzMyTmV0c2NhcGVQbHVnSW5T
dHJlYW1Mb2FkZXJDbGllbnRFUktOU18xNVJlc291cmNlUmVxdWVzdEUKLSNpZiBFTkFCTEUoU1ZH
KQotX19aTjdXZWJDb3JlMjFTVkdEb2N1bWVudEV4dGVuc2lvbnMyMXNhbXBsZUFuaW1hdGlvbkF0
VGltZUVSS04zV1RGNlN0cmluZ0VQTlNfMTRTVkdTTUlMRWxlbWVudEVkCi0jZW5kaWYKIF9fWk43
V2ViQ29yZTIxU2VyaWFsaXplZFNjcmlwdFZhbHVlMTFkZXNlcmlhbGl6ZUVQSzE1T3BhcXVlSlND
b250ZXh0UFBLMTNPcGFxdWVKU1ZhbHVlCiBfX1pON1dlYkNvcmUyMVNlcmlhbGl6ZWRTY3JpcHRW
YWx1ZTZjcmVhdGVFUEsxNU9wYXF1ZUpTQ29udGV4dFBLMTNPcGFxdWVKU1ZhbHVlUFM2XwogX19a
TjdXZWJDb3JlMjFTZXJpYWxpemVkU2NyaXB0VmFsdWVDMUVSTjNXVEY2VmVjdG9ySWhMbTBFRUUK
QEAgLTkwMyw2ICs4OTYsMTcgQEAgX19aTjdXZWJDb3JlN0ludFJlY3Q1dW5pdGVFUktTMF8KIF9f
Wk43V2ViQ29yZTdJbnRSZWN0OWludGVyc2VjdEVSS1MwXwogX19aTjdXZWJDb3JlN0ludFJlY3RD
MUVSS05TXzlGbG9hdFJlY3RFCiBfX1pON1dlYkNvcmU3SW50U2l6ZUMxRVJLNkNHU2l6ZQorX19a
TjdXZWJDb3JlN1J1bkxvb3AxNHJ1bkZvckR1cmF0aW9uRWQKK19fWk43V2ViQ29yZTdSdW5Mb29w
MjFpbml0aWFsaXplTWFpblJ1bkxvb3BFdgorX19aTjdXZWJDb3JlN1J1bkxvb3AzcnVuRXYKK19f
Wk43V2ViQ29yZTdSdW5Mb29wNG1haW5FdgorX19aTjdXZWJDb3JlN1J1bkxvb3A0c3RvcEV2Citf
X1pON1dlYkNvcmU3UnVuTG9vcDdjdXJyZW50RXYKK19fWk43V2ViQ29yZTdSdW5Mb29wOGRpc3Bh
dGNoRVJLTjNXVEY4RnVuY3Rpb25JRnZ2RUVFCitfX1pON1dlYkNvcmU3UnVuTG9vcDlUaW1lckJh
c2U0c3RvcEV2CitfX1pON1dlYkNvcmU3UnVuTG9vcDlUaW1lckJhc2U1c3RhcnRFZGIKK19fWk43
V2ViQ29yZTdSdW5Mb29wOVRpbWVyQmFzZUMyRVBTMF8KK19fWk43V2ViQ29yZTdSdW5Mb29wOVRp
bWVyQmFzZUQyRXYKIF9fWk43V2ViQ29yZTdUZXh0UnVuMTlhbGxvd3NSb3VuZGluZ0hhY2tzRXYK
IF9fWk43V2ViQ29yZTdUZXh0UnVuMjFzX2FsbG93c1JvdW5kaW5nSGFja3NFCiBfX1pON1dlYkNv
cmU3VGV4dFJ1bjIyc2V0QWxsb3dzUm91bmRpbmdIYWNrc0ViCkBAIC05MTIsMTUgKzkxNiw5IEBA
IF9fWk43V2ViQ29yZTdyZXBsYWNlRVJOM1dURjZTdHJpbmdFUktOU18xN1JlZ3VsYXJFeHByZXNz
aW9uRVJLUzFfCiBfX1pON1dlYkNvcmU3dG9SYW5nZUVOM0pTQzdKU1ZhbHVlRQogX19aTjdXZWJD
b3JlOERvY3VtZW50MTFjcmVhdGVSYW5nZUV2CiBfX1pON1dlYkNvcmU4RG9jdW1lbnQxMnVwZGF0
ZUxheW91dEV2Ci0jaWYgRU5BQkxFKFNWRykKLV9fWk43V2ViQ29yZThEb2N1bWVudDEzc3ZnRXh0
ZW5zaW9uc0V2Ci0jZW5kaWYKIF9fWk43V2ViQ29yZThEb2N1bWVudDE0c2V0Rm9jdXNlZE5vZGVF
TjNXVEYxMFBhc3NSZWZQdHJJTlNfNE5vZGVFRUUKIF9fWk43V2ViQ29yZThEb2N1bWVudDE2aXNQ
YWdlQm94VmlzaWJsZUVpCiBfX1pON1dlYkNvcmU4RG9jdW1lbnQxN2dldEZvY3VzYWJsZU5vZGVz
RVJOM1dURjZWZWN0b3JJTlMxXzZSZWZQdHJJTlNfNE5vZGVFRUVMbTBFRUUKLSNpZiBFTkFCTEUo
U1ZHKQotX19aTjdXZWJDb3JlOERvY3VtZW50MTlhY2Nlc3NTVkdFeHRlbnNpb25zRXYKLSNlbmRp
ZgogX19aTjdXZWJDb3JlOERvY3VtZW50MjBzdHlsZVNlbGVjdG9yQ2hhbmdlZEVOU18yM1N0eWxl
U2VsZWN0b3JVcGRhdGVGbGFnRQogX19aTjdXZWJDb3JlOERvY3VtZW50MjJjcmVhdGVEb2N1bWVu
dEZyYWdtZW50RXYKIF9fWk43V2ViQ29yZThEb2N1bWVudDIzZGlkQWRkV2hlZWxFdmVudEhhbmRs
ZXJFdgpAQCAtMTE4OCw2ICsxMTg2LDcgQEAgX19aTks3V2ViQ29yZTExU2NyaXB0VmFsdWU5Z2V0
U3RyaW5nRVBOM0pTQzlFeGVjU3RhdGVFUk4zV1RGNlN0cmluZ0UKIF9fWk5LN1dlYkNvcmUxMklj
b25EYXRhYmFzZTEyZGF0YWJhc2VQYXRoRXYKIF9fWk5LN1dlYkNvcmUxMkljb25EYXRhYmFzZTI0
c2hvdWxkU3RvcFRocmVhZEFjdGl2aXR5RXYKIF9fWk5LN1dlYkNvcmUxMkljb25EYXRhYmFzZTlp
c0VuYWJsZWRFdgorX19aTks3V2ViQ29yZTEyUmVuZGVyT2JqZWN0MTNzdHlsZUluUmVnaW9uRXYK
IF9fWk5LN1dlYkNvcmUxMlJlbmRlck9iamVjdDE0ZW5jbG9zaW5nTGF5ZXJFdgogX19aTks3V2Vi
Q29yZTEyUmVuZGVyT2JqZWN0MTVsb2NhbFRvQWJzb2x1dGVFUktOU18xMEZsb2F0UG9pbnRFYmIK
IF9fWk5LN1dlYkNvcmUxMlJlbmRlck9iamVjdDIzYWJzb2x1dGVCb3VuZGluZ0JveFJlY3RFYgpA
QCAtMTI0OSw4ICsxMjQ4LDggQEAgX19aTks3V2ViQ29yZTE0UmVzb3VyY2VMb2FkZXIxMWZyYW1l
TG9hZGVyRXYKIF9fWk5LN1dlYkNvcmUxNFNjcm9sbGFibGVBcmVhMTRzY3JvbGxBbmltYXRvckV2
CiBfX1pOSzdXZWJDb3JlMTRTY3JvbGxhYmxlQXJlYTIwY29udGVudEFyZWFXaWxsUGFpbnRFdgog
X19aTks3V2ViQ29yZTE0U2Nyb2xsYWJsZUFyZWEyMm1vdXNlRXhpdGVkQ29udGVudEFyZWFFdgot
X19aTks3V2ViQ29yZTE0U2Nyb2xsYWJsZUFyZWEyM21vdXNlTW92ZWRJbkNvbnRlbnRBcmVhRXYK
IF9fWk5LN1dlYkNvcmUxNFNjcm9sbGFibGVBcmVhMjNtb3VzZUVudGVyZWRDb250ZW50QXJlYUV2
CitfX1pOSzdXZWJDb3JlMTRTY3JvbGxhYmxlQXJlYTIzbW91c2VNb3ZlZEluQ29udGVudEFyZWFF
dgogX19aTks3V2ViQ29yZTE0U2VjdXJpdHlPcmlnaW4xMGNhbkRpc3BsYXlFUktOU180S1VSTEUK
IF9fWk5LN1dlYkNvcmUxNFNlY3VyaXR5T3JpZ2luMThkYXRhYmFzZUlkZW50aWZpZXJFdgogX19a
Tks3V2ViQ29yZTE0U2VjdXJpdHlPcmlnaW41ZXF1YWxFUEtTMF8KQEAgLTE0MTgsNiArMTQxNyw3
IEBAIF9fWk5LN1dlYkNvcmU3SW50UmVjdDhjb250YWluc0VSS1MwXwogX19aTks3V2ViQ29yZTdJ
bnRSZWN0Y3Y2Q0dSZWN0RXYKIF9fWk5LN1dlYkNvcmU3SW50UmVjdGN2N19OU1JlY3RFdgogX19a
Tks3V2ViQ29yZTdJbnRTaXplY3Y2Q0dTaXplRXYKK19fWk5LN1dlYkNvcmU3UnVuTG9vcDlUaW1l
ckJhc2U4aXNBY3RpdmVFdgogX19aTks3V2ViQ29yZThEb2N1bWVudDEwcmVuZGVyVmlld0V2CiBf
X1pOSzdXZWJDb3JlOERvY3VtZW50MTFjb21wbGV0ZVVSTEVSS04zV1RGNlN0cmluZ0UKIF9fWk5L
N1dlYkNvcmU4RG9jdW1lbnQxM2F4T2JqZWN0Q2FjaGVFdgpAQCAtMTU5OCw2ICsxNTk4LDEzIEBA
IF93a0NyZWF0ZUFYVGV4dE1hcmtlcgogX3drR2V0Qnl0ZXNGcm9tQVhUZXh0TWFya2VyCiBfd2tD
cmVhdGVBWFVJRWxlbWVudFJlZgogCisjaWYgRU5BQkxFKFNWRykKK19fWk43V2ViQ29yZTE0U1ZH
U01JTEVsZW1lbnQxM2lzU01JTEVsZW1lbnRFUE5TXzROb2RlRQorX19aTjdXZWJDb3JlMjFTVkdE
b2N1bWVudEV4dGVuc2lvbnMyMXNhbXBsZUFuaW1hdGlvbkF0VGltZUVSS04zV1RGNlN0cmluZ0VQ
TlNfMTRTVkdTTUlMRWxlbWVudEVkCitfX1pON1dlYkNvcmU4RG9jdW1lbnQxM3N2Z0V4dGVuc2lv
bnNFdgorX19aTjdXZWJDb3JlOERvY3VtZW50MTlhY2Nlc3NTVkdFeHRlbnNpb25zRXYKKyNlbmRp
ZgorCiAjaWYgRU5BQkxFKDNEX1JFTkRFUklORykKIF9XZWJDb3JlSGFzM0RSZW5kZXJpbmcKICNl
bmRpZgpAQCAtMjA1Myw2ICsyMDYwLDMgQEAgX19aTjdXZWJDb3JlMjBTY3JvbGxpbmdDb29yZGlu
YXRvcjE4aGFuZGxlR2VzdHVyZUV2ZW50RVJLTlNfMjBQbGF0Zm9ybUdlc3R1cmVFdmUKICNlbmRp
ZgogCiAjZW5kaWYKLQotCi0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmNw
cm9qL1dlYkNvcmUudmNwcm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29y
ZS52Y3Byb2oKaW5kZXggZTc3YzFmZjEyYjQ0MzRmZGI5YzhlMzhmNmIwODFmZmZhODg4MjMxZC4u
ODJlOWY2NjhkNDBkNTUyN2M1Y2Q5MmY1ZWUzNzBiMzc5M2M5Zjc3ZCAxMDA3NTUKLS0tIGEvU291
cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2oKKysrIGIvU291cmNlL1dl
YkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2oKQEAgLTI2NjUwLDYgKzI2NjUwLDE0
IEBACiAJCQkJPgogCQkJPC9GaWxlPgogCQkJPEZpbGUKKwkJCQlSZWxhdGl2ZVBhdGg9Ii4uXHBs
YXRmb3JtXFJ1bkxvb3AuY3BwIgorCQkJCT4KKwkJCTwvRmlsZT4KKwkJCTxGaWxlCisJCQkJUmVs
YXRpdmVQYXRoPSIuLlxwbGF0Zm9ybVxSdW5Mb29wLmgiCisJCQkJPgorCQkJPC9GaWxlPgorCQkJ
PEZpbGUKIAkJCQlSZWxhdGl2ZVBhdGg9Ii4uXHBsYXRmb3JtXFJ1bnRpbWVBcHBsaWNhdGlvbkNo
ZWNrcy5jcHAiCiAJCQkJPgogCQkJPC9GaWxlPgpAQCAtMjcwNjEsNiArMjcwNjksMTAgQEAKIAkJ
CQkJPgogCQkJCTwvRmlsZT4KIAkJCQk8RmlsZQorCQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXHBsYXRm
b3JtXHdpblxSdW5Mb29wV2luLmNwcCIKKwkJCQkJPgorCQkJCTwvRmlsZT4KKwkJCQk8RmlsZQog
CQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXHBsYXRmb3JtXHdpblxTY3JvbGxiYXJUaGVtZVNhZmFyaS5j
cHAiCiAJCQkJCT4KIAkJCQk8L0ZpbGU+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJD
b3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhj
b2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggNjlkNjE2YWIxMDExYjMzNmE0OGVmMTgxMzJk
YjM2MWZlN2ViNjRkNS4uYmU3ZmI2MjUzODEyNjkzZDljMThiMmU2NWQxZjdkMWJkYjliNjAyZiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhw
cm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
agpAQCAtNDk4MCw2ICs0OTgwLDkgQEAKIAkJQkMwNkVFMDQwQkZENzFBQTAwODU2RTlEIC8qIEpT
SFRNTFRhYmxlRWxlbWVudC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSBCQzA2RUUwMjBCRkQ3MUFBMDA4NTZFOUQgLyogSlNIVE1MVGFibGVFbGVtZW50
LmNwcCAqLzsgfTsKIAkJQkMwNkVFMDUwQkZENzFBQTAwODU2RTlEIC8qIEpTSFRNTFRhYmxlRWxl
bWVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkMw
NkVFMDMwQkZENzFBQTAwODU2RTlEIC8qIEpTSFRNTFRhYmxlRWxlbWVudC5oICovOyB9OwogCQlC
QzA3M0JBQTBDMzk5QjFGMDAwRjU5NzkgLyogRmxvYXRDb252ZXJzaW9uLmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCQzA3M0JBOTBDMzk5QjFGMDAwRjU5
NzkgLyogRmxvYXRDb252ZXJzaW9uLmggKi87IH07CisJCUJDMEIzNTgzMTRDNEY5NTQwMDU1RTIy
QSAvKiBSdW5Mb29wTWFjLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gQkMwQjM1ODIxNEM0Rjk1NDAwNTVFMjJBIC8qIFJ1bkxvb3BNYWMubW0gKi87IH07
CisJCUJDMEIzNTg3MTRDNEY5ODMwMDU1RTIyQSAvKiBSdW5Mb29wLmNwcCBpbiBTb3VyY2VzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDMEIzNTg1MTRDNEY5ODMwMDU1RTIy
QSAvKiBSdW5Mb29wLmNwcCAqLzsgfTsKKwkJQkMwQjM1ODgxNEM0Rjk4MzAwNTVFMjJBIC8qIFJ1
bkxvb3AuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJD
MEIzNTg2MTRDNEY5ODMwMDU1RTIyQSAvKiBSdW5Mb29wLmggKi87IHNldHRpbmdzID0ge0FUVFJJ
QlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJQkMwQjM2QTQwQ0QzQzY3QzAwQUM3RUI1IC8q
IENvbnNvbGUuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gQkMwQjM2QTEwQ0QzQzY3QzAwQUM3RUI1IC8qIENvbnNvbGUuY3BwICovOyB9OwogCQlCQzBC
MzZBNTBDRDNDNjdDMDBBQzdFQjUgLyogQ29uc29sZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkMwQjM2QTIwQ0QzQzY3QzAwQUM3RUI1IC8qIENvbnNv
bGUuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlC
QzEyNEVFNzBDMjY0MUNEMDA5RTIzNDkgLyogQmFySW5mby5jcHAgaW4gU291cmNlcyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCQzEyNEVFNDBDMjY0MUNEMDA5RTIzNDkgLyog
QmFySW5mby5jcHAgKi87IH07CkBAIC03MjI0LDcgKzcyMjcsNiBAQAogCQkxQUJGRTc1MjBDRDk2
OEQwMDBGRTQ4MzQgLyogU1FMVHJhbnNhY3Rpb24uY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAuY3BwOyBwYXRoID0gU1FMVHJhbnNhY3Rpb24uY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQkxQUMyMjYwQTBEQjY5RjE5MDA4OUI2NjkgLyogSlNET01BcHBsaWNhdGlvbkNhY2hl
LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTRE9NQXBwbGljYXRp
b25DYWNoZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTFBQzIyNjBCMERCNjlG
MTkwMDg5QjY2OSAvKiBKU0RPTUFwcGxpY2F0aW9uQ2FjaGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gSlNET01BcHBsaWNhdGlvbkNhY2hlLmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07Ci0JCTFBQzY5MjY5MTRBMTI1MzEwMEJEODVGMSAvKiBTY3JvbGxhYmxlQXJlYUNs
aWVudC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTY3JvbGxhYmxlQXJlYUNs
aWVudC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkxQUNFNTNERDBBOEQxODgxMDAy
Mjk0N0QgLyogSlNET01QYXJzZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsg
cGF0aCA9IEpTRE9NUGFyc2VyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMUFD
RTUzREUwQThEMTg4MTAwMjI5NDdEIC8qIEpTRE9NUGFyc2VyLmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBKU0RPTVBhcnNlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQkxQUNFNTNFMTBBOEQxOEU3MDAyMjk0N0QgLyogRE9NUGFyc2VyLmNwcCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBET01QYXJzZXIuY3BwOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwpAQCAtMTE4NDEsNiArMTE4NDMsOSBAQAogCQlCQzA2RjI0QzA2RDE4QTdF
MDA0QTZGQTMgLyogWFNMVFByb2Nlc3Nvci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDMwOyBpbmRlbnRXaWR0aCA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBYU0xUUHJvY2Vzc29yLmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IHRhYldpZHRoID0gODsgdXNlc1RhYnMgPSAwOyB9OwogCQlCQzA2RjI0RDA2RDE4QTdF
MDA0QTZGQTMgLyogWFNMVFByb2Nlc3NvckxpYnhzbHQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBpbmRlbnRXaWR0aCA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gWFNMVFByb2Nlc3NvckxpYnhzbHQu
Y3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB0YWJXaWR0aCA9IDg7IHVzZXNUYWJzID0gMDsg
fTsKIAkJQkMwNzNCQTkwQzM5OUIxRjAwMEY1OTc5IC8qIEZsb2F0Q29udmVyc2lvbi5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRmxvYXRDb252ZXJzaW9uLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CisJCUJDMEIzNTgyMTRDNEY5NTQwMDU1RTIyQSAvKiBSdW5Mb29w
TWFjLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gUnVuTG9vcE1h
Yy5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQkMwQjM1ODUxNEM0Rjk4MzAwNTVF
MjJBIC8qIFJ1bkxvb3AuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0g
UnVuTG9vcC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUJDMEIzNTg2MTRDNEY5
ODMwMDU1RTIyQSAvKiBSdW5Mb29wLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IFJ1bkxvb3AuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQkMwQjM2QTEwQ0QzQzY3
QzAwQUM3RUI1IC8qIENvbnNvbGUuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsg
cGF0aCA9IENvbnNvbGUuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlCQzBCMzZB
MjBDRDNDNjdDMDBBQzdFQjUgLyogQ29uc29sZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gQ29uc29sZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlCQzBCMzZB
MzBDRDNDNjdDMDBBQzdFQjUgLyogQ29uc29sZS5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9
IENvbnNvbGUuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTQ5MjIsNiArMTQ5
MjcsNyBAQAogCQkJCUQzOUQwMDZDMTFGOEUzMDgwMDYwNDFGMiAvKiBQb3B1cE1lbnVNYWMuaCAq
LywKIAkJCQkwNjY4RTE4RTBBREQ5NjQwMDA0MTI4RTAgLyogUG9wdXBNZW51TWFjLm1tICovLAog
CQkJCUU0RDY4Nzc2MEVEN0FFM0QwMDZFQTk3OCAvKiBQdXJnZWFibGVCdWZmZXJNYWMuY3BwICov
LAorCQkJCUJDMEIzNTgyMTRDNEY5NTQwMDU1RTIyQSAvKiBSdW5Mb29wTWFjLm1tICovLAogCQkJ
CTFDRTI0Rjk2MEQ3Q0FGMEUwMDdFMDRDMiAvKiBTY2hlZHVsZVBhaXJNYWMubW0gKi8sCiAJCQkJ
QkNBRTFGQTUxMjkzOURCNzAwNENCMDI2IC8qIFNjcm9sbEFuaW1hdG9yTWFjLmggKi8sCiAJCQkJ
QkM1MTE1NkQxMkIxNzQ5QzAwQzk2NzU0IC8qIFNjcm9sbEFuaW1hdG9yTWFjLm1tICovLApAQCAt
MTk2MDgsNiArMTk2MTQsOCBAQAogCQkJCUJDM0JFMTJBMEU5ODA5MkYwMDgzNTU4OCAvKiBQb3B1
cE1lbnVTdHlsZS5oICovLAogCQkJCUU0RDY4Nzc4MEVEN0FFNEYwMDZFQTk3OCAvKiBQdXJnZWFi
bGVCdWZmZXIuaCAqLywKIAkJCQk3RTMzQ0QwMDEyN0YzNDBEMDBCRThGMTcgLyogUHVyZ2VQcmlv
cml0eS5oICovLAorCQkJCUJDMEIzNTg1MTRDNEY5ODMwMDU1RTIyQSAvKiBSdW5Mb29wLmNwcCAq
LywKKwkJCQlCQzBCMzU4NjE0QzRGOTgzMDA1NUUyMkEgLyogUnVuTG9vcC5oICovLAogCQkJCTFD
NjNBMjQ2MEY3MTY0NjYwMEMwOUQ1QSAvKiBSdW5Mb29wVGltZXIuaCAqLywKIAkJCQkyOTNFQUUy
MDEzNTZCMzJFMDA2N0FDRjkgLyogUnVudGltZUFwcGxpY2F0aW9uQ2hlY2tzLmNwcCAqLywKIAkJ
CQkyOTNFQUUxRTEzNTZCMkZFMDA2N0FDRjkgLyogUnVudGltZUFwcGxpY2F0aW9uQ2hlY2tzLmgg
Ki8sCkBAIC0xOTYxNSw3ICsxOTYyMyw2IEBACiAJCQkJNTE2MkM3RjMxMUY3N0VGQjAwNjEyRUZF
IC8qIFNjaGVtZVJlZ2lzdHJ5LmggKi8sCiAJCQkJQkM4QUUzNEMxMkVBMDk2QTAwRUIzQUU2IC8q
IFNjcm9sbGFibGVBcmVhLmNwcCAqLywKIAkJCQlCQzhBRTM0RDEyRUEwOTZBMDBFQjNBRTYgLyog
U2Nyb2xsYWJsZUFyZWEuaCAqLywKLQkJCQkxQUM2OTI2OTE0QTEyNTMxMDBCRDg1RjEgLyogU2Ny
b2xsYWJsZUFyZWFDbGllbnQuaCAqLywKIAkJCQlDQTNCRjY3QjEwRDk5QkFFMDBFNkNFNTMgLyog
U2Nyb2xsQW5pbWF0b3IuY3BwICovLAogCQkJCUNBM0JGNjdEMTBEOTlCQUUwMEU2Q0U1MyAvKiBT
Y3JvbGxBbmltYXRvci5oICovLAogCQkJCUJDQUE5MEMyMEE3RUJBNjAwMDhCMTIyOSAvKiBTY3Jv
bGxiYXIuY3BwICovLApAQCAtMjQwMTYsNiArMjQwMjMsNyBAQAogCQkJCTUwM0QwQ0FFMTRCNUIw
QkEwMEYzMkY1NyAvKiBTdHlsZUN1c3RvbUZpbHRlclByb2dyYW0uaCBpbiBIZWFkZXJzICovLAog
CQkJCTUwQUNFMkNCMTRCNUQ3OTMwMDQ0NjY2NiAvKiBDdXN0b21GaWx0ZXJPcGVyYXRpb24uaCBp
biBIZWFkZXJzICovLAogCQkJCTdBQ0Q4OEQ0MTRDMDhCRDYwMDg0RUREMiAvKiBJbnNwZWN0b3JJ
bmRleGVkREJBZ2VudC5oIGluIEhlYWRlcnMgKi8sCisJCQkJQkMwQjM1ODgxNEM0Rjk4MzAwNTVF
MjJBIC8qIFJ1bkxvb3AuaCBpbiBIZWFkZXJzICovLAogCQkJKTsKIAkJCXJ1bk9ubHlGb3JEZXBs
b3ltZW50UG9zdHByb2Nlc3NpbmcgPSAwOwogCQl9OwpAQCAtMjY5MzEsNiArMjY5MzksOCBAQAog
CQkJCUE4RjQ1N0EwMTRCQzFBODgwMDBDRUE1OSAvKiBET01XaW5kb3dTUUxEYXRhYmFzZS5jcHAg
aW4gU291cmNlcyAqLywKIAkJCQk1MDNEMENBQTE0QjVCMDg3MDBGMzJGNTcgLyogQ3VzdG9tRmls
dGVyUHJvZ3JhbS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk3QUNEODhEMzE0QzA4QkQ2MDA4NEVE
RDIgLyogSW5zcGVjdG9ySW5kZXhlZERCQWdlbnQuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJQkMw
QjM1ODMxNEM0Rjk1NDAwNTVFMjJBIC8qIFJ1bkxvb3BNYWMubW0gaW4gU291cmNlcyAqLywKKwkJ
CQlCQzBCMzU4NzE0QzRGOTgzMDA1NUUyMkEgLyogUnVuTG9vcC5jcHAgaW4gU291cmNlcyAqLywK
IAkJCSk7CiAJCQlydW5Pbmx5Rm9yRGVwbG95bWVudFBvc3Rwcm9jZXNzaW5nID0gMDsKIAkJfTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1J1bkxvb3AuY3BwIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vUnVuTG9vcC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNDQxYzU4NjNmNjZiNjY5
MDEwMTgyZmIxNTRkOGFkZDQzNjEzZTA5OAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL1J1bkxvb3AuY3BwCkBAIC0wLDAgKzEsNzQgQEAKKy8qCisgKiBDb3B5cmln
aHQgKEMpIDIwMTAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9m
IHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4K
KyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFu
ZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoK
KyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRS
SUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJ
RVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFO
VElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICog
UFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJ
VFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJ
TkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFH
RVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VC
U1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7
IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkg
VEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFC
SUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFS
SVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElG
IEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisj
aW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiUnVuTG9vcC5oIgorCisjaW5jbHVkZSA8d3Rm
L1N0ZExpYkV4dHJhcy5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK3N0YXRpYyBSdW5Mb29w
KiBzX21haW5SdW5Mb29wOworCit2b2lkIFJ1bkxvb3A6OmluaXRpYWxpemVNYWluUnVuTG9vcCgp
Cit7CisgICAgaWYgKHNfbWFpblJ1bkxvb3ApCisgICAgICAgIHJldHVybjsKKyAgICBzX21haW5S
dW5Mb29wID0gUnVuTG9vcDo6Y3VycmVudCgpOworfQorCitSdW5Mb29wKiBSdW5Mb29wOjpjdXJy
ZW50KCkKK3sKKyAgICBERUZJTkVfU1RBVElDX0xPQ0FMKFdURjo6VGhyZWFkU3BlY2lmaWM8UnVu
TG9vcD4sIHJ1bkxvb3BEYXRhLCAoKSk7CisgICAgcmV0dXJuICYqcnVuTG9vcERhdGE7Cit9CisK
K1J1bkxvb3AqIFJ1bkxvb3A6Om1haW4oKQoreworICAgIEFTU0VSVChzX21haW5SdW5Mb29wKTsK
KyAgICByZXR1cm4gc19tYWluUnVuTG9vcDsKK30KKwordm9pZCBSdW5Mb29wOjpwZXJmb3JtV29y
aygpCit7CisgICAgVmVjdG9yPEZ1bmN0aW9uPHZvaWQoKT4gPiBmdW5jdGlvblF1ZXVlOworICAg
IHsKKyAgICAgICAgTXV0ZXhMb2NrZXIgbG9ja2VyKG1fZnVuY3Rpb25RdWV1ZUxvY2spOworICAg
ICAgICBtX2Z1bmN0aW9uUXVldWUuc3dhcChmdW5jdGlvblF1ZXVlKTsKKyAgICB9CisKKyAgICBm
b3IgKHNpemVfdCBpID0gMDsgaSA8IGZ1bmN0aW9uUXVldWUuc2l6ZSgpOyArK2kpCisgICAgICAg
IGZ1bmN0aW9uUXVldWVbaV0oKTsKK30KKwordm9pZCBSdW5Mb29wOjpkaXNwYXRjaChjb25zdCBG
dW5jdGlvbjx2b2lkKCk+JiBmdW5jdGlvbikKK3sKKyAgICBNdXRleExvY2tlciBsb2NrZXIobV9m
dW5jdGlvblF1ZXVlTG9jayk7CisgICAgbV9mdW5jdGlvblF1ZXVlLmFwcGVuZChmdW5jdGlvbik7
CisKKyAgICB3YWtlVXAoKTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vUnVuTG9vcC5oIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vUnVuTG9vcC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjZlMDQzMjZmZTUzNzZlOTI1NmRiNzM2ZGRmODI4
YTk1MTFmY2Y4YzcKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9S
dW5Mb29wLmgKQEAgLTAsMCArMSwxNjUgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAgQXBw
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDEwIE5va2lh
IENvcnBvcmF0aW9uIGFuZC9vciBpdHMgc3Vic2lkaWFyeSgtaWVzKQorICogUG9ydGlvbnMgQ29w
eXJpZ2h0IChjKSAyMDEwIE1vdG9yb2xhIE1vYmlsaXR5LCBJbmMuICBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4g
UmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBt
dXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAg
ICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUg
ZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUg
SU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBP
UiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICog
VEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9S
IEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hB
TEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBE
SVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBD
T05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9D
VVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0Us
IERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIg
Q0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09O
VFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9S
IE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElT
IFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNI
IERBTUFHRS4KKyAqLworCisjaWZuZGVmIFJ1bkxvb3BfaAorI2RlZmluZSBSdW5Mb29wX2gKKwor
I2luY2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+CisjaW5jbHVkZSA8d3RmL0Z1bmN0aW9uYWwuaD4KKyNp
bmNsdWRlIDx3dGYvSGFzaE1hcC5oPgorI2luY2x1ZGUgPHd0Zi9UaHJlYWRTcGVjaWZpYy5oPgor
I2luY2x1ZGUgPHd0Zi9UaHJlYWRpbmcuaD4KKyNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+CisKKyNp
ZiBQTEFURk9STShHVEspCisjaW5jbHVkZSA8d3RmL2dvYmplY3QvR1JlZlB0ci5oPgordHlwZWRl
ZiBzdHJ1Y3QgX0dTb3VyY2UgR1NvdXJjZTsKK3R5cGVkZWYgc3RydWN0IF9HTWFpbkxvb3AgR01h
aW5Mb29wOwordHlwZWRlZiBzdHJ1Y3QgX0dNYWluQ29udGV4dCBHTWFpbkNvbnRleHQ7Cit0eXBl
ZGVmIGludCBnYm9vbGVhbjsKKyNlbmRpZgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNz
IFJ1bkxvb3AgeworcHVibGljOgorICAgIC8vIE11c3QgYmUgY2FsbGVkIGZyb20gdGhlIG1haW4g
dGhyZWFkLgorICAgIHN0YXRpYyB2b2lkIGluaXRpYWxpemVNYWluUnVuTG9vcCgpOworCisgICAg
c3RhdGljIFJ1bkxvb3AqIGN1cnJlbnQoKTsKKyAgICBzdGF0aWMgUnVuTG9vcCogbWFpbigpOwor
CisgICAgdm9pZCBkaXNwYXRjaChjb25zdCBGdW5jdGlvbjx2b2lkKCk+Jik7CisKKyAgICBzdGF0
aWMgdm9pZCBydW4oKTsKKyAgICB2b2lkIHN0b3AoKTsKKworI2lmIFBMQVRGT1JNKE1BQykKKyAg
ICB2b2lkIHJ1bkZvckR1cmF0aW9uKGRvdWJsZSBkdXJhdGlvbik7CisjZW5kaWYKKyAgICAKKyAg
ICBjbGFzcyBUaW1lckJhc2UgeworICAgICAgICBmcmllbmQgY2xhc3MgUnVuTG9vcDsKKyAgICBw
dWJsaWM6CisgICAgICAgIFRpbWVyQmFzZShSdW5Mb29wKik7CisgICAgICAgIHZpcnR1YWwgflRp
bWVyQmFzZSgpOworCisgICAgICAgIHZvaWQgc3RhcnRSZXBlYXRpbmcoZG91YmxlIHJlcGVhdElu
dGVydmFsKSB7IHN0YXJ0KHJlcGVhdEludGVydmFsLCB0cnVlKTsgfQorICAgICAgICB2b2lkIHN0
YXJ0T25lU2hvdChkb3VibGUgaW50ZXJ2YWwpIHsgc3RhcnQoaW50ZXJ2YWwsIGZhbHNlKTsgfQor
CisgICAgICAgIHZvaWQgc3RvcCgpOworICAgICAgICBib29sIGlzQWN0aXZlKCkgY29uc3Q7CisK
KyAgICAgICAgdmlydHVhbCB2b2lkIGZpcmVkKCkgPSAwOworCisgICAgcHJpdmF0ZToKKyAgICAg
ICAgdm9pZCBzdGFydChkb3VibGUgbmV4dEZpcmVJbnRlcnZhbCwgYm9vbCByZXBlYXQpOworCisg
ICAgICAgIFJ1bkxvb3AqIG1fcnVuTG9vcDsKKworI2lmIFBMQVRGT1JNKFdJTikKKyAgICAgICAg
c3RhdGljIHZvaWQgdGltZXJGaXJlZChSdW5Mb29wKiwgdWludDY0X3QgSUQpOworICAgICAgICB1
aW50NjRfdCBtX0lEOworICAgICAgICBib29sIG1faXNSZXBlYXRpbmc7CisjZWxpZiBQTEFURk9S
TShNQUMpCisgICAgICAgIHN0YXRpYyB2b2lkIHRpbWVyRmlyZWQoQ0ZSdW5Mb29wVGltZXJSZWYs
IHZvaWQqKTsKKyAgICAgICAgQ0ZSdW5Mb29wVGltZXJSZWYgbV90aW1lcjsKKyNlbGlmIFBMQVRG
T1JNKFFUKQorICAgICAgICBzdGF0aWMgdm9pZCB0aW1lckZpcmVkKFJ1bkxvb3AqLCBpbnQgSUQp
OworICAgICAgICBpbnQgbV9JRDsKKyAgICAgICAgYm9vbCBtX2lzUmVwZWF0aW5nOworI2VsaWYg
UExBVEZPUk0oR1RLKQorICAgICAgICBzdGF0aWMgZ2Jvb2xlYW4gdGltZXJGaXJlZENhbGxiYWNr
KFJ1bkxvb3A6OlRpbWVyQmFzZSopOworICAgICAgICBnYm9vbGVhbiBpc1JlcGVhdGluZygpIGNv
bnN0IHsgcmV0dXJuIG1faXNSZXBlYXRpbmc7IH0KKyAgICAgICAgdm9pZCBjbGVhclRpbWVyU291
cmNlKCk7CisgICAgICAgIEdSZWZQdHI8R1NvdXJjZT4gbV90aW1lclNvdXJjZTsKKyAgICAgICAg
Z2Jvb2xlYW4gbV9pc1JlcGVhdGluZzsKKyNlbmRpZgorICAgIH07CisKKyAgICB0ZW1wbGF0ZSA8
dHlwZW5hbWUgVGltZXJGaXJlZENsYXNzPgorICAgIGNsYXNzIFRpbWVyIDogcHVibGljIFRpbWVy
QmFzZSB7CisgICAgcHVibGljOgorICAgICAgICB0eXBlZGVmIHZvaWQgKFRpbWVyRmlyZWRDbGFz
czo6KlRpbWVyRmlyZWRGdW5jdGlvbikoKTsKKworICAgICAgICBUaW1lcihSdW5Mb29wKiBydW5M
b29wLCBUaW1lckZpcmVkQ2xhc3MqIG8sIFRpbWVyRmlyZWRGdW5jdGlvbiBmKQorICAgICAgICAg
ICAgOiBUaW1lckJhc2UocnVuTG9vcCkKKyAgICAgICAgICAgICwgbV9vYmplY3QobykKKyAgICAg
ICAgICAgICwgbV9mdW5jdGlvbihmKQorICAgICAgICB7CisgICAgICAgIH0KKworICAgIHByaXZh
dGU6CisgICAgICAgIHZpcnR1YWwgdm9pZCBmaXJlZCgpIHsgKG1fb2JqZWN0LT4qbV9mdW5jdGlv
bikoKTsgfQorCisgICAgICAgIFRpbWVyRmlyZWRDbGFzcyogbV9vYmplY3Q7CisgICAgICAgIFRp
bWVyRmlyZWRGdW5jdGlvbiBtX2Z1bmN0aW9uOworICAgIH07CisKK3ByaXZhdGU6CisgICAgZnJp
ZW5kIGNsYXNzIFdURjo6VGhyZWFkU3BlY2lmaWM8UnVuTG9vcD47CisKKyAgICBSdW5Mb29wKCk7
CisgICAgflJ1bkxvb3AoKTsKKworICAgIHZvaWQgcGVyZm9ybVdvcmsoKTsKKyAgICB2b2lkIHdh
a2VVcCgpOworCisgICAgTXV0ZXggbV9mdW5jdGlvblF1ZXVlTG9jazsKKyAgICBWZWN0b3I8RnVu
Y3Rpb248dm9pZCgpPiA+IG1fZnVuY3Rpb25RdWV1ZTsKKworI2lmIFBMQVRGT1JNKFdJTikKKyAg
ICBzdGF0aWMgYm9vbCByZWdpc3RlclJ1bkxvb3BNZXNzYWdlV2luZG93Q2xhc3MoKTsKKyAgICBz
dGF0aWMgTFJFU1VMVCBDQUxMQkFDSyBSdW5Mb29wV25kUHJvYyhIV05ELCBVSU5ULCBXUEFSQU0s
IExQQVJBTSk7CisgICAgTFJFU1VMVCB3bmRQcm9jKEhXTkQgaFduZCwgVUlOVCBtZXNzYWdlLCBX
UEFSQU0gd1BhcmFtLCBMUEFSQU0gbFBhcmFtKTsKKyAgICBIV05EIG1fcnVuTG9vcE1lc3NhZ2VX
aW5kb3c7CisKKyAgICB0eXBlZGVmIEhhc2hNYXA8dWludDY0X3QsIFRpbWVyQmFzZSo+IFRpbWVy
TWFwOworICAgIFRpbWVyTWFwIG1fYWN0aXZlVGltZXJzOworI2VsaWYgUExBVEZPUk0oTUFDKQor
ICAgIHN0YXRpYyB2b2lkIHBlcmZvcm1Xb3JrKHZvaWQqKTsKKyAgICBDRlJ1bkxvb3BSZWYgbV9y
dW5Mb29wOworICAgIENGUnVuTG9vcFNvdXJjZVJlZiBtX3J1bkxvb3BTb3VyY2U7CisgICAgaW50
IG1fbmVzdGluZ0xldmVsOworI2VsaWYgUExBVEZPUk0oUVQpCisgICAgdHlwZWRlZiBIYXNoTWFw
PGludCwgVGltZXJCYXNlKj4gVGltZXJNYXA7CisgICAgVGltZXJNYXAgbV9hY3RpdmVUaW1lcnM7
CisgICAgY2xhc3MgVGltZXJPYmplY3Q7CisgICAgVGltZXJPYmplY3QqIG1fdGltZXJPYmplY3Q7
CisjZWxpZiBQTEFURk9STShHVEspCitwdWJsaWM6CisgICAgc3RhdGljIGdib29sZWFuIHF1ZXVl
V29yayhSdW5Mb29wKik7CisgICAgR01haW5Mb29wKiBtYWluTG9vcCgpOworcHJpdmF0ZToKKyAg
ICBHTWFpbkNvbnRleHQqIG1fcnVuTG9vcENvbnRleHQ7CisgICAgR01haW5Mb29wKiBtX3J1bkxv
b3BNYWluOworI2VuZGlmCit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAv
LyBSdW5Mb29wX2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9SdW5M
b29wR3RrLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9SdW5Mb29wR3RrLmNwcApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi44MWNiZWFhZjE4N2M1OWUxY2U3MWZlNDQyOWI4NmQxYjk2NzE2NzkyCi0tLSAv
ZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3RrL1J1bkxvb3BHdGsuY3Bw
CkBAIC0wLDAgKzEsMTM0IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEwIEFwcGxlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIFBvcnRpb25zIENvcHlyaWdodCAoYykgMjAxMCBNb3Rv
cm9sYSBNb2JpbGl0eSwgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBz
b3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisg
KiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQv
b3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisg
KiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklC
VVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVT
LCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJ
RVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBV
UlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRT
IENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5D
SURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VT
IChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNU
SVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBP
UiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRI
RU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklM
SVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklT
SU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBB
RFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lu
Y2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlJ1bkxvb3AuaCIKKworI2luY2x1ZGUgIldLQmFz
ZS5oIgorI2luY2x1ZGUgPGdsaWIuaD4KKworUnVuTG9vcDo6UnVuTG9vcCgpCit7CisgICAgbV9y
dW5Mb29wQ29udGV4dCA9IGdfbWFpbl9jb250ZXh0X2RlZmF1bHQoKTsKKyAgICBBU1NFUlQobV9y
dW5Mb29wQ29udGV4dCk7CisgICAgbV9ydW5Mb29wTWFpbiA9IGdfbWFpbl9sb29wX25ldyhtX3J1
bkxvb3BDb250ZXh0LCBGQUxTRSk7CisgICAgQVNTRVJUKG1fcnVuTG9vcE1haW4pOworfQorCitS
dW5Mb29wOjp+UnVuTG9vcCgpCit7CisgICAgaWYgKG1fcnVuTG9vcE1haW4pIHsKKyAgICAgICAg
aWYgKGdfbWFpbl9sb29wX2lzX3J1bm5pbmcobV9ydW5Mb29wTWFpbikpCisgICAgICAgICAgICBn
X21haW5fbG9vcF9xdWl0KG1fcnVuTG9vcE1haW4pOworICAgICAgICBnX21haW5fbG9vcF91bnJl
ZihtX3J1bkxvb3BNYWluKTsKKyAgICB9CisKKyAgICBpZiAobV9ydW5Mb29wQ29udGV4dCkKKyAg
ICAgICAgZ19tYWluX2NvbnRleHRfdW5yZWYobV9ydW5Mb29wQ29udGV4dCk7Cit9CisKK3ZvaWQg
UnVuTG9vcDo6cnVuKCkKK3sKKyAgICBnX21haW5fbG9vcF9ydW4oUnVuTG9vcDo6bWFpbigpLT5t
YWluTG9vcCgpKTsKK30KKworR01haW5Mb29wKiBSdW5Mb29wOjptYWluTG9vcCgpCit7CisgICAg
cmV0dXJuIG1fcnVuTG9vcE1haW47Cit9CisKK3ZvaWQgUnVuTG9vcDo6c3RvcCgpCit7CisgICAg
Z19tYWluX2xvb3BfcXVpdChtX3J1bkxvb3BNYWluKTsKK30KKworZ2Jvb2xlYW4gUnVuTG9vcDo6
cXVldWVXb3JrKFJ1bkxvb3AqIHJ1bkxvb3ApCit7CisgICAgcnVuTG9vcC0+cGVyZm9ybVdvcmso
KTsKKyAgICByZXR1cm4gRkFMU0U7Cit9CisKK3ZvaWQgUnVuTG9vcDo6d2FrZVVwKCkKK3sKKyAg
ICBHUmVmUHRyPEdTb3VyY2U+IHNvdXJjZSA9IGFkb3B0R1JlZihnX2lkbGVfc291cmNlX25ldygp
KTsKKyAgICBnX3NvdXJjZV9zZXRfcHJpb3JpdHkoc291cmNlLmdldCgpLCBHX1BSSU9SSVRZX0RF
RkFVTFQpOworICAgIGdfc291cmNlX3NldF9jYWxsYmFjayhzb3VyY2UuZ2V0KCksIHJlaW50ZXJw
cmV0X2Nhc3Q8R1NvdXJjZUZ1bmM+KCZSdW5Mb29wOjpxdWV1ZVdvcmspLCB0aGlzLCAwKTsKKyAg
ICBnX3NvdXJjZV9hdHRhY2goc291cmNlLmdldCgpLCBtX3J1bkxvb3BDb250ZXh0KTsKKworICAg
IGdfbWFpbl9jb250ZXh0X3dha2V1cChtX3J1bkxvb3BDb250ZXh0KTsKK30KKworUnVuTG9vcDo6
VGltZXJCYXNlOjpUaW1lckJhc2UoUnVuTG9vcCogcnVuTG9vcCkKKyAgICA6IG1fcnVuTG9vcChy
dW5Mb29wKQorICAgICwgbV90aW1lclNvdXJjZSgwKQoreworfQorCitSdW5Mb29wOjpUaW1lckJh
c2U6On5UaW1lckJhc2UoKQoreworICAgIHN0b3AoKTsKK30KKwordm9pZCBSdW5Mb29wOjpUaW1l
ckJhc2U6OmNsZWFyVGltZXJTb3VyY2UoKQoreworICAgIG1fdGltZXJTb3VyY2UgPSAwOworfQor
CitnYm9vbGVhbiBSdW5Mb29wOjpUaW1lckJhc2U6OnRpbWVyRmlyZWRDYWxsYmFjayhSdW5Mb29w
OjpUaW1lckJhc2UqIHRpbWVyKQoreworICAgIEdTb3VyY2UqIGN1cnJlbnRUaW1lclNvdXJjZSA9
IHRpbWVyLT5tX3RpbWVyU291cmNlLmdldCgpOworICAgIGJvb2wgaXNSZXBlYXRpbmcgPSB0aW1l
ci0+aXNSZXBlYXRpbmcoKTsKKyAgICAvLyBUaGlzIGNhbiBjaGFuZ2UgdGhlIHRpbWVyU291cmNl
IGJ5IHN0YXJ0aW5nIGEgbmV3IHRpbWVyIHdpdGhpbiB0aGUgY2FsbGJhY2suCisgICAgdGltZXIt
PmZpcmVkKCk7CisgICAgaWYgKCFpc1JlcGVhdGluZyAmJiBjdXJyZW50VGltZXJTb3VyY2UgPT0g
dGltZXItPm1fdGltZXJTb3VyY2UuZ2V0KCkpCisgICAgICAgIHRpbWVyLT5jbGVhclRpbWVyU291
cmNlKCk7CisgICAgcmV0dXJuIGlzUmVwZWF0aW5nOworfQorCit2b2lkIFJ1bkxvb3A6OlRpbWVy
QmFzZTo6c3RhcnQoZG91YmxlIGZpcmVJbnRlcnZhbCwgYm9vbCByZXBlYXQpCit7CisgICAgaWYg
KG1fdGltZXJTb3VyY2UpCisgICAgICAgIHN0b3AoKTsKKworICAgIG1fdGltZXJTb3VyY2UgPSBh
ZG9wdEdSZWYoZ190aW1lb3V0X3NvdXJjZV9uZXcoc3RhdGljX2Nhc3Q8Z3VpbnQ+KGZpcmVJbnRl
cnZhbCAqIDEwMDApKSk7CisgICAgbV9pc1JlcGVhdGluZyA9IHJlcGVhdDsKKyAgICBnX3NvdXJj
ZV9zZXRfY2FsbGJhY2sobV90aW1lclNvdXJjZS5nZXQoKSwgcmVpbnRlcnByZXRfY2FzdDxHU291
cmNlRnVuYz4oJlJ1bkxvb3A6OlRpbWVyQmFzZTo6dGltZXJGaXJlZENhbGxiYWNrKSwgdGhpcywg
MCk7CisgICAgZ19zb3VyY2VfYXR0YWNoKG1fdGltZXJTb3VyY2UuZ2V0KCksIG1fcnVuTG9vcC0+
bV9ydW5Mb29wQ29udGV4dCk7Cit9CisKK3ZvaWQgUnVuTG9vcDo6VGltZXJCYXNlOjpzdG9wKCkK
K3sKKyAgICBpZiAoIW1fdGltZXJTb3VyY2UpCisgICAgICAgIHJldHVybjsKKworICAgIGdfc291
cmNlX2Rlc3Ryb3kobV90aW1lclNvdXJjZS5nZXQoKSk7CisgICAgY2xlYXJUaW1lclNvdXJjZSgp
OworfQorCitib29sIFJ1bkxvb3A6OlRpbWVyQmFzZTo6aXNBY3RpdmUoKSBjb25zdAoreworICAg
IHJldHVybiBtX3RpbWVyU291cmNlOworfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vbWFjL1J1bkxvb3BNYWMubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvUnVu
TG9vcE1hYy5tbQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5hNTY3YWZkZDVjODc3Y2I1OGU5YjAzMTg4NDA4MjhkMGYw
MTYwZDBlCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1J1
bkxvb3BNYWMubW0KQEAgLTAsMCArMSwxNTcgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAg
QXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2Rl
IG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlz
dHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBt
YXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09G
VFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFT
IElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJD
SEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUg
RElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVU
T1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBT
UEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09E
UyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNT
CisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJ
QUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRP
UlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5Z
IFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YK
KyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW1wb3J0ICJjb25m
aWcuaCIKKyNpbXBvcnQgIlJ1bkxvb3AuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCit2b2lk
IFJ1bkxvb3A6OnBlcmZvcm1Xb3JrKHZvaWQqIGNvbnRleHQpCit7CisgICAgLy8gV3JhcCBtYWlu
IHRocmVhZCBpbiBhbiBBdXRvcmVsZWFzZSBwb29sLiAgU2VuZGluZyBtZXNzYWdlcyBjYW4gY2Fs
bCAKKyAgICAvLyBpbnRvIG9iamMgY29kZSBhbmQgYWNjdW11bGF0ZSBtZW1vcnkuICAKKyAgICBp
ZiAoY3VycmVudCgpID09IG1haW4oKSkgeworICAgICAgICBOU0F1dG9yZWxlYXNlUG9vbCAqcG9v
bCA9IFtbTlNBdXRvcmVsZWFzZVBvb2wgYWxsb2NdIGluaXRdOworICAgICAgICBzdGF0aWNfY2Fz
dDxSdW5Mb29wKj4oY29udGV4dCktPnBlcmZvcm1Xb3JrKCk7CisgICAgICAgIFtwb29sIGRyYWlu
XTsKKyAgICB9IGVsc2UKKyAgICAgICAgc3RhdGljX2Nhc3Q8UnVuTG9vcCo+KGNvbnRleHQpLT5w
ZXJmb3JtV29yaygpOworfQorCitSdW5Mb29wOjpSdW5Mb29wKCkKKyAgICA6IG1fcnVuTG9vcChD
RlJ1bkxvb3BHZXRDdXJyZW50KCkpCisgICAgLCBtX25lc3RpbmdMZXZlbCgwKQoreworICAgIENG
UnVuTG9vcFNvdXJjZUNvbnRleHQgY29udGV4dCA9IHsgMCwgdGhpcywgMCwgMCwgMCwgMCwgMCwg
MCwgMCwgcGVyZm9ybVdvcmsgfTsKKyAgICBtX3J1bkxvb3BTb3VyY2UgPSBDRlJ1bkxvb3BTb3Vy
Y2VDcmVhdGUoa0NGQWxsb2NhdG9yRGVmYXVsdCwgMCwgJmNvbnRleHQpOworICAgIENGUnVuTG9v
cEFkZFNvdXJjZShtX3J1bkxvb3AsIG1fcnVuTG9vcFNvdXJjZSwga0NGUnVuTG9vcENvbW1vbk1v
ZGVzKTsKK30KKworUnVuTG9vcDo6flJ1bkxvb3AoKQoreworICAgIC8vIEZJWE1FOiBUZWFyIGRv
d24gdGhlIHdvcmsgaXRlbSBxdWV1ZSBoZXJlLgorICAgIENGUnVuTG9vcFNvdXJjZUludmFsaWRh
dGUobV9ydW5Mb29wU291cmNlKTsKKyAgICBDRlJlbGVhc2UobV9ydW5Mb29wU291cmNlKTsKK30K
Kwordm9pZCBSdW5Mb29wOjpydW4oKQoreworICAgIGN1cnJlbnQoKS0+bV9uZXN0aW5nTGV2ZWwr
KzsKKyAgICBpZiAoY3VycmVudCgpID09IG1haW4oKSAmJiBjdXJyZW50KCktPm1fbmVzdGluZ0xl
dmVsID09IDEpIHsKKyAgICAgICAgLy8gVXNlIC1bTlNBcHBsaWNhdGlvbiBydW5dIGZvciB0aGUg
bWFpbiBydW4gbG9vcC4KKyAgICAgICAgW05TQXBwIHJ1bl07CisgICAgfSBlbHNlIHsKKyAgICAg
ICAgTlNBdXRvcmVsZWFzZVBvb2wgKnBvb2wgPSBbW05TQXV0b3JlbGVhc2VQb29sIGFsbG9jXSBp
bml0XTsKKyAgICAgICAgQ0ZSdW5Mb29wUnVuKCk7CisgICAgICAgIFtwb29sIGRyYWluXTsKKyAg
ICB9CisgICAgY3VycmVudCgpLT5tX25lc3RpbmdMZXZlbC0tOworfQorCit2b2lkIFJ1bkxvb3A6
OnJ1bkZvckR1cmF0aW9uKGRvdWJsZSBkdXJhdGlvbikKK3sKKyAgICBDRlJ1bkxvb3BSdW5Jbk1v
ZGUoa0NGUnVuTG9vcERlZmF1bHRNb2RlLCBkdXJhdGlvbiwgdHJ1ZSk7Cit9CisKK3ZvaWQgUnVu
TG9vcDo6c3RvcCgpCit7CisgICAgQVNTRVJUKG1fcnVuTG9vcCA9PSBDRlJ1bkxvb3BHZXRDdXJy
ZW50KCkpOworICAgIAorICAgIGlmIChtX3J1bkxvb3AgPT0gbWFpbigpLT5tX3J1bkxvb3AgJiYg
bV9uZXN0aW5nTGV2ZWwgPT0gMSkgeworICAgICAgICBbTlNBcHAgc3RvcDpuaWxdOworICAgICAg
ICBOU0V2ZW50ICpldmVudCA9IFtOU0V2ZW50IG90aGVyRXZlbnRXaXRoVHlwZTpOU0FwcGxpY2F0
aW9uRGVmaW5lZAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBs
b2NhdGlvbjpOU01ha2VQb2ludCgwLCAwKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgbW9kaWZpZXJGbGFnczowCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgdGltZXN0YW1wOjAuMAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICB3aW5kb3dOdW1iZXI6MAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgY29udGV4dDpuaWwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIHN1YnR5cGU6IDAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgZGF0YTE6MAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBkYXRhMjowXTsKKyAgICAgICAgW05TQXBwIHBvc3RFdmVudDpldmVu
dCBhdFN0YXJ0OnRydWVdOworICAgIH0gZWxzZQorICAgICAgICBDRlJ1bkxvb3BTdG9wKG1fcnVu
TG9vcCk7Cit9CisKK3ZvaWQgUnVuTG9vcDo6d2FrZVVwKCkKK3sKKyAgICBDRlJ1bkxvb3BTb3Vy
Y2VTaWduYWwobV9ydW5Mb29wU291cmNlKTsKKyAgICBDRlJ1bkxvb3BXYWtlVXAobV9ydW5Mb29w
KTsKK30KKworLy8gUnVuTG9vcDo6VGltZXIKKwordm9pZCBSdW5Mb29wOjpUaW1lckJhc2U6OnRp
bWVyRmlyZWQoQ0ZSdW5Mb29wVGltZXJSZWYsIHZvaWQqIGNvbnRleHQpCit7CisgICAgVGltZXJC
YXNlKiB0aW1lciA9IHN0YXRpY19jYXN0PFRpbWVyQmFzZSo+KGNvbnRleHQpOworICAgIAorICAg
IC8vIFdyYXAgbWFpbiB0aHJlYWQgaW4gYW4gQXV0b3JlbGVhc2UgcG9vbC4gIFRoZSB0aW1lciBj
YW4gY2FsbCAKKyAgICAvLyBpbnRvIG9iamMgY29kZSBhbmQgYWNjdW11bGF0ZSBtZW1vcnkgb3V0
c2lkZSBvZiB0aGUgbWFpbiBldmVudCBsb29wLgorICAgIGlmIChjdXJyZW50KCkgPT0gbWFpbigp
KSB7CisgICAgICAgIE5TQXV0b3JlbGVhc2VQb29sICpwb29sID0gW1tOU0F1dG9yZWxlYXNlUG9v
bCBhbGxvY10gaW5pdF07IAorICAgICAgICB0aW1lci0+ZmlyZWQoKTsKKyAgICAgICAgW3Bvb2wg
ZHJhaW5dOworICAgIH0gZWxzZQorICAgICAgICB0aW1lci0+ZmlyZWQoKTsKK30KKworUnVuTG9v
cDo6VGltZXJCYXNlOjpUaW1lckJhc2UoUnVuTG9vcCogcnVuTG9vcCkKKyAgICA6IG1fcnVuTG9v
cChydW5Mb29wKQorICAgICwgbV90aW1lcigwKQoreworfQorCitSdW5Mb29wOjpUaW1lckJhc2U6
On5UaW1lckJhc2UoKQoreworICAgIHN0b3AoKTsKK30KKwordm9pZCBSdW5Mb29wOjpUaW1lckJh
c2U6OnN0YXJ0KGRvdWJsZSBuZXh0RmlyZUludGVydmFsLCBib29sIHJlcGVhdCkKK3sKKyAgICBp
ZiAobV90aW1lcikKKyAgICAgICAgc3RvcCgpOworCisgICAgQ0ZSdW5Mb29wVGltZXJDb250ZXh0
IGNvbnRleHQgPSB7IDAsIHRoaXMsIDAsIDAsIDAgfTsKKyAgICBDRlRpbWVJbnRlcnZhbCByZXBl
YXRJbnRlcnZhbCA9IHJlcGVhdCA/IG5leHRGaXJlSW50ZXJ2YWwgOiAwOworICAgIG1fdGltZXIg
PSBDRlJ1bkxvb3BUaW1lckNyZWF0ZShrQ0ZBbGxvY2F0b3JEZWZhdWx0LCBDRkFic29sdXRlVGlt
ZUdldEN1cnJlbnQoKSArIG5leHRGaXJlSW50ZXJ2YWwsIHJlcGVhdEludGVydmFsLCAwLCAwLCB0
aW1lckZpcmVkLCAmY29udGV4dCk7CisgICAgQ0ZSdW5Mb29wQWRkVGltZXIobV9ydW5Mb29wLT5t
X3J1bkxvb3AsIG1fdGltZXIsIGtDRlJ1bkxvb3BDb21tb25Nb2Rlcyk7Cit9CisKK3ZvaWQgUnVu
TG9vcDo6VGltZXJCYXNlOjpzdG9wKCkKK3sKKyAgICBpZiAoIW1fdGltZXIpCisgICAgICAgIHJl
dHVybjsKKworICAgIENGUnVuTG9vcFRpbWVySW52YWxpZGF0ZShtX3RpbWVyKTsKKyAgICBDRlJl
bGVhc2UobV90aW1lcik7CisgICAgbV90aW1lciA9IDA7Cit9CisKK2Jvb2wgUnVuTG9vcDo6VGlt
ZXJCYXNlOjppc0FjdGl2ZSgpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1fdGltZXIgJiYgQ0ZSdW5M
b29wVGltZXJJc1ZhbGlkKG1fdGltZXIpOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9xdC9SdW5Mb29wUXQuY3BwIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vcXQvUnVuTG9vcFF0LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4wMDdhMGE1
YjFhZmUwOTgwMzk4OTA5YWI3MGJiNzNiOWQ5ZjA4ZGU3Ci0tLSAvZGV2L251bGwKKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vcXQvUnVuTG9vcFF0LmNwcApAQCAtMCwwICsxLDE2MyBAQAor
LyoKKyAqIENvcHlyaWdodCAoQykgMjAxMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CisgKiBDb3B5cmlnaHQgKEMpIDIwMTAgTm9raWEgQ29ycG9yYXRpb24gYW5kL29yIGl0cyBzdWJz
aWRpYXJ5KC1pZXMpCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6
CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFy
eSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0
aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3
aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBC
WSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBF
WFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklU
TkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBF
VkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBG
T1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwg
T1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NT
IE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikg
SE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElO
CisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJ
R0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNF
IE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZ
IE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJS
dW5Mb29wLmgiCisKKyNpbmNsdWRlIDxRQ29yZUFwcGxpY2F0aW9uPgorI2luY2x1ZGUgPFFBYnN0
cmFjdEV2ZW50RGlzcGF0Y2hlcj4KKyNpbmNsdWRlIDxRT2JqZWN0PgorI2luY2x1ZGUgPFFNZXRh
TWV0aG9kPgorI2luY2x1ZGUgPFFNZXRhT2JqZWN0PgorI2luY2x1ZGUgPFFUaW1lckV2ZW50Pgor
CitjbGFzcyBSdW5Mb29wOjpUaW1lck9iamVjdCA6IHB1YmxpYyBRT2JqZWN0Cit7CisgICAgUV9P
QkpFQ1QKK3B1YmxpYzoKKyAgICBUaW1lck9iamVjdChSdW5Mb29wKiBydW5Mb29wKSA6IG1fcnVu
TG9vcChydW5Mb29wKQorICAgIHsKKyAgICAgICAgaW50IG1ldGhvZEluZGV4ID0gbWV0YU9iamVj
dCgpLT5pbmRleE9mTWV0aG9kKCJwZXJmb3JtV29yaygpIik7CisgICAgICAgIG1fbWV0aG9kID0g
bWV0YU9iamVjdCgpLT5tZXRob2QobWV0aG9kSW5kZXgpOworICAgIH0KKworICAgIFFfU0xPVCB2
b2lkIHBlcmZvcm1Xb3JrKCkgeyBtX3J1bkxvb3AtPnBlcmZvcm1Xb3JrKCk7IH0KKyAgICBpbmxp
bmUgdm9pZCB3YWtlVXAoKSB7IG1fbWV0aG9kLmludm9rZSh0aGlzLCBRdDo6UXVldWVkQ29ubmVj
dGlvbik7IH0KKworcHJvdGVjdGVkOgorICAgIHZpcnR1YWwgdm9pZCB0aW1lckV2ZW50KFFUaW1l
ckV2ZW50KiBldmVudCkKKyAgICB7CisgICAgICAgIFJ1bkxvb3A6OlRpbWVyQmFzZTo6dGltZXJG
aXJlZChtX3J1bkxvb3AsIGV2ZW50LT50aW1lcklkKCkpOworICAgIH0KKworcHJpdmF0ZToKKyAg
ICBSdW5Mb29wKiBtX3J1bkxvb3A7CisgICAgUU1ldGFNZXRob2QgbV9tZXRob2Q7Cit9OworCitz
dGF0aWMgUUV2ZW50TG9vcCogY3VycmVudEV2ZW50TG9vcDsKKwordm9pZCBSdW5Mb29wOjpydW4o
KQoreworICAgIHN0YXRpYyBib29sIG1haW5FdmVudExvb3BJc1J1bm5pbmcgPSBmYWxzZTsKKyAg
ICBpZiAoIW1haW5FdmVudExvb3BJc1J1bm5pbmcpIHsKKyAgICAgICAgbWFpbkV2ZW50TG9vcElz
UnVubmluZyA9IHRydWU7CisgICAgICAgIFFDb3JlQXBwbGljYXRpb246OmV4ZWMoKTsKKyAgICAg
ICAgbWFpbkV2ZW50TG9vcElzUnVubmluZyA9IGZhbHNlOworICAgIH0gZWxzZSB7CisgICAgICAg
IFFFdmVudExvb3AgZXZlbnRMb29wOworCisgICAgICAgIFFFdmVudExvb3AqIHByZXZpb3VzRXZl
bnRMb29wID0gY3VycmVudEV2ZW50TG9vcDsKKyAgICAgICAgY3VycmVudEV2ZW50TG9vcCA9ICZl
dmVudExvb3A7CisKKyAgICAgICAgZXZlbnRMb29wLmV4ZWMoKTsKKworICAgICAgICBjdXJyZW50
RXZlbnRMb29wID0gcHJldmlvdXNFdmVudExvb3A7CisgICAgfQorfQorCit2b2lkIFJ1bkxvb3A6
OnN0b3AoKQoreworICAgIGlmIChjdXJyZW50RXZlbnRMb29wKQorICAgICAgICBjdXJyZW50RXZl
bnRMb29wLT5leGl0KCk7CisgICAgZWxzZQorICAgICAgICBRQ29yZUFwcGxpY2F0aW9uOjpleGl0
KCk7Cit9CisKK1J1bkxvb3A6OlJ1bkxvb3AoKQorICAgIDogbV90aW1lck9iamVjdChuZXcgVGlt
ZXJPYmplY3QodGhpcykpCit7Cit9CisKK1J1bkxvb3A6On5SdW5Mb29wKCkKK3sKKyAgICBkZWxl
dGUgbV90aW1lck9iamVjdDsKK30KKwordm9pZCBSdW5Mb29wOjp3YWtlVXAoKQoreworICAgIG1f
dGltZXJPYmplY3QtPndha2VVcCgpOworfQorCisvLyBSdW5Mb29wOjpUaW1lcgorCit2b2lkIFJ1
bkxvb3A6OlRpbWVyQmFzZTo6dGltZXJGaXJlZChSdW5Mb29wKiBydW5Mb29wLCBpbnQgSUQpCit7
CisgICAgVGltZXJNYXA6Oml0ZXJhdG9yIGl0ID0gcnVuTG9vcC0+bV9hY3RpdmVUaW1lcnMuZmlu
ZChJRCk7CisgICAgQVNTRVJUKGl0ICE9IHJ1bkxvb3AtPm1fYWN0aXZlVGltZXJzLmVuZCgpKTsK
KyAgICBUaW1lckJhc2UqIHRpbWVyID0gaXQtPnNlY29uZDsKKworICAgIGlmICghdGltZXItPm1f
aXNSZXBlYXRpbmcpIHsKKyAgICAgICAgLy8gU3RvcCB0aGUgdGltZXIgKGNhbGxpbmcgc3RvcCB3
b3VsZCBuZWVkIGFub3RoZXIgaGFzaCB0YWJsZSBsb29rdXApLgorICAgICAgICBydW5Mb29wLT5t
X2FjdGl2ZVRpbWVycy5yZW1vdmUoaXQpOworICAgICAgICBydW5Mb29wLT5tX3RpbWVyT2JqZWN0
LT5raWxsVGltZXIodGltZXItPm1fSUQpOworICAgICAgICB0aW1lci0+bV9JRCA9IDA7CisgICAg
fQorCisgICAgdGltZXItPmZpcmVkKCk7Cit9CisKK1J1bkxvb3A6OlRpbWVyQmFzZTo6VGltZXJC
YXNlKFJ1bkxvb3AqIHJ1bkxvb3ApCisgICAgOiBtX3J1bkxvb3AocnVuTG9vcCkKKyAgICAsIG1f
SUQoMCkKKyAgICAsIG1faXNSZXBlYXRpbmcoZmFsc2UpCit7Cit9CisKK1J1bkxvb3A6OlRpbWVy
QmFzZTo6flRpbWVyQmFzZSgpCit7CisgICAgc3RvcCgpOworfQorCit2b2lkIFJ1bkxvb3A6OlRp
bWVyQmFzZTo6c3RhcnQoZG91YmxlIG5leHRGaXJlSW50ZXJ2YWwsIGJvb2wgcmVwZWF0KQorewor
ICAgIHN0b3AoKTsKKyAgICBpbnQgbWlsbGlzID0gc3RhdGljX2Nhc3Q8aW50PihuZXh0RmlyZUlu
dGVydmFsICogMTAwMCk7CisgICAgbV9pc1JlcGVhdGluZyA9IHJlcGVhdDsKKyAgICBtX0lEID0g
bV9ydW5Mb29wLT5tX3RpbWVyT2JqZWN0LT5zdGFydFRpbWVyKG1pbGxpcyk7CisgICAgQVNTRVJU
KG1fSUQpOworICAgIG1fcnVuTG9vcC0+bV9hY3RpdmVUaW1lcnMuc2V0KG1fSUQsIHRoaXMpOwor
fQorCit2b2lkIFJ1bkxvb3A6OlRpbWVyQmFzZTo6c3RvcCgpCit7CisgICAgaWYgKCFtX0lEKQor
ICAgICAgICByZXR1cm47CisgICAgVGltZXJNYXA6Oml0ZXJhdG9yIGl0ID0gbV9ydW5Mb29wLT5t
X2FjdGl2ZVRpbWVycy5maW5kKG1fSUQpOworICAgIGlmIChpdCA9PSBtX3J1bkxvb3AtPm1fYWN0
aXZlVGltZXJzLmVuZCgpKQorICAgICAgICByZXR1cm47CisKKyAgICBtX3J1bkxvb3AtPm1fYWN0
aXZlVGltZXJzLnJlbW92ZShpdCk7CisgICAgbV9ydW5Mb29wLT5tX3RpbWVyT2JqZWN0LT5raWxs
VGltZXIobV9JRCk7CisgICAgbV9JRCA9IDA7Cit9CisKK2Jvb2wgUnVuTG9vcDo6VGltZXJCYXNl
Ojppc0FjdGl2ZSgpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1fSUQ7Cit9CisKKyNpbmNsdWRlICJS
dW5Mb29wUXQubW9jIgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vd2luL1J1
bkxvb3BXaW4uY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vd2luL1J1bkxvb3BXaW4uY3Bw
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLmRmYmNhZWU1NjJlNjUzNTkxMWFlYWNkMWZmYjA0OWJlMTc4ZjAxZjUKLS0t
IC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS93aW4vUnVuTG9vcFdpbi5j
cHAKQEAgLTAsMCArMSwxNzkgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAgQXBwbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisg
KiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0
YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9u
cyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMg
cHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMg
UFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAq
IEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1F
RC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBC
RSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBF
WEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJW
SUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRF
UlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQg
T0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisj
aW5jbHVkZSAiUnVuTG9vcC5oIgorCisjaW5jbHVkZSAiQmluYXJ5U2VtYXBob3JlLmgiCisjaW5j
bHVkZSA8d3RmL0N1cnJlbnRUaW1lLmg+CisKK3VzaW5nIG5hbWVzcGFjZSBDb3JlSVBDOwordXNp
bmcgbmFtZXNwYWNlIHN0ZDsKKworc3RhdGljIGNvbnN0IFVJTlQgUGVyZm9ybVdvcmtNZXNzYWdl
ID0gV01fVVNFUiArIDE7CitzdGF0aWMgY29uc3QgTFBXU1RSIGtSdW5Mb29wTWVzc2FnZVdpbmRv
d0NsYXNzTmFtZSA9IEwiUnVuTG9vcE1lc3NhZ2VXaW5kb3ciOworCitMUkVTVUxUIENBTExCQUNL
IFJ1bkxvb3A6OlJ1bkxvb3BXbmRQcm9jKEhXTkQgaFduZCwgVUlOVCBtZXNzYWdlLCBXUEFSQU0g
d1BhcmFtLCBMUEFSQU0gbFBhcmFtKQoreworICAgIExPTkdfUFRSIGxvbmdQdHIgPSA6OkdldFdp
bmRvd0xvbmdQdHIoaFduZCwgMCk7CisgICAgCisgICAgaWYgKFJ1bkxvb3AqIHJ1bkxvb3AgPSBy
ZWludGVycHJldF9jYXN0PFJ1bkxvb3AqPihsb25nUHRyKSkKKyAgICAgICAgcmV0dXJuIHJ1bkxv
b3AtPnduZFByb2MoaFduZCwgbWVzc2FnZSwgd1BhcmFtLCBsUGFyYW0pOworCisgICAgaWYgKG1l
c3NhZ2UgPT0gV01fQ1JFQVRFKSB7CisgICAgICAgIExQQ1JFQVRFU1RSVUNUIGNyZWF0ZVN0cnVj
dCA9IHJlaW50ZXJwcmV0X2Nhc3Q8TFBDUkVBVEVTVFJVQ1Q+KGxQYXJhbSk7CisKKyAgICAgICAg
Ly8gQXNzb2NpYXRlIHRoZSBSdW5Mb29wIHdpdGggdGhlIHdpbmRvdy4KKyAgICAgICAgOjpTZXRX
aW5kb3dMb25nUHRyKGhXbmQsIDAsIChMT05HX1BUUiljcmVhdGVTdHJ1Y3QtPmxwQ3JlYXRlUGFy
YW1zKTsKKyAgICAgICAgcmV0dXJuIDA7CisgICAgfQorCisgICAgcmV0dXJuIDo6RGVmV2luZG93
UHJvYyhoV25kLCBtZXNzYWdlLCB3UGFyYW0sIGxQYXJhbSk7Cit9CisKK0xSRVNVTFQgUnVuTG9v
cDo6d25kUHJvYyhIV05EIGhXbmQsIFVJTlQgbWVzc2FnZSwgV1BBUkFNIHdQYXJhbSwgTFBBUkFN
IGxQYXJhbSkKK3sKKyAgICBzd2l0Y2ggKG1lc3NhZ2UpIHsKKyAgICBjYXNlIFBlcmZvcm1Xb3Jr
TWVzc2FnZToKKyAgICAgICAgcGVyZm9ybVdvcmsoKTsKKyAgICAgICAgcmV0dXJuIDA7CisgICAg
Y2FzZSBXTV9USU1FUjoKKyAgICAgICAgUnVuTG9vcDo6VGltZXJCYXNlOjp0aW1lckZpcmVkKHRo
aXMsIHdQYXJhbSk7CisgICAgICAgIHJldHVybiAwOworICAgIH0KKworICAgIHJldHVybiA6OkRl
ZldpbmRvd1Byb2MoaFduZCwgbWVzc2FnZSwgd1BhcmFtLCBsUGFyYW0pOworfQorCit2b2lkIFJ1
bkxvb3A6OnJ1bigpCit7CisgICAgTVNHIG1lc3NhZ2U7CisgICAgd2hpbGUgKEJPT0wgcmVzdWx0
ID0gOjpHZXRNZXNzYWdlKCZtZXNzYWdlLCAwLCAwLCAwKSkgeworICAgICAgICBpZiAocmVzdWx0
ID09IC0xKQorICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIDo6VHJhbnNsYXRlTWVzc2FnZSgm
bWVzc2FnZSk7CisgICAgICAgIDo6RGlzcGF0Y2hNZXNzYWdlKCZtZXNzYWdlKTsKKyAgICB9Cit9
CisKK3ZvaWQgUnVuTG9vcDo6c3RvcCgpCit7CisgICAgOjpQb3N0UXVpdE1lc3NhZ2UoMCk7Cit9
CisKK2Jvb2wgUnVuTG9vcDo6cmVnaXN0ZXJSdW5Mb29wTWVzc2FnZVdpbmRvd0NsYXNzKCkKK3sK
KyAgICAvLyBGSVhNRTogVGhpcyByZWFsbHkgb25seSBuZWVkcyB0byBiZSBjYWxsZWQgb25jZS4K
KworICAgIFdORENMQVNTRVggd2luZG93Q2xhc3MgPSB7IDAgfTsKKyAgICB3aW5kb3dDbGFzcy5j
YlNpemUgICAgICAgICAgPSBzaXplb2Yod2luZG93Q2xhc3MpOworICAgIHdpbmRvd0NsYXNzLmxw
Zm5XbmRQcm9jICAgICA9IFJ1bkxvb3A6OlJ1bkxvb3BXbmRQcm9jOworICAgIHdpbmRvd0NsYXNz
LmNiV25kRXh0cmEgICAgICA9IHNpemVvZihSdW5Mb29wKik7CisgICAgd2luZG93Q2xhc3MubHBz
ekNsYXNzTmFtZSAgID0ga1J1bkxvb3BNZXNzYWdlV2luZG93Q2xhc3NOYW1lOworCisgICAgcmV0
dXJuICEhOjpSZWdpc3RlckNsYXNzRXgoJndpbmRvd0NsYXNzKTsKK30KKworUnVuTG9vcDo6UnVu
TG9vcCgpCit7CisgICAgcmVnaXN0ZXJSdW5Mb29wTWVzc2FnZVdpbmRvd0NsYXNzKCk7CisKKyAg
ICBtX3J1bkxvb3BNZXNzYWdlV2luZG93ID0gOjpDcmVhdGVXaW5kb3coa1J1bkxvb3BNZXNzYWdl
V2luZG93Q2xhc3NOYW1lLCAwLCAwLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBDV19VU0VERUZBVUxULCAwLCBDV19VU0VERUZBVUxULCAwLAorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBIV05EX01FU1NBR0UsIDAsIDAsIHRo
aXMpOworICAgIEFTU0VSVCg6OklzV2luZG93KG1fcnVuTG9vcE1lc3NhZ2VXaW5kb3cpKTsKK30K
KworUnVuTG9vcDo6flJ1bkxvb3AoKQoreworICAgIC8vIEZJWE1FOiBUZWFyIGRvd24gdGhlIHdv
cmsgaXRlbSBxdWV1ZSBoZXJlLgorfQorCit2b2lkIFJ1bkxvb3A6Ondha2VVcCgpCit7CisgICAg
Ly8gRklYTUU6IE5vIG5lZWQgdG8gd2FrZSB1cCB0aGUgcnVuIGxvb3AgaWYgd2UndmUgYWxyZWFk
eSBjYWxsZWQgZGlzcGF0Y2gKKyAgICAvLyBiZWZvcmUgdGhlIHJ1biBsb29wIGhhcyBoYWQgdGhl
IHRpbWUgdG8gcmVzcG9uZC4KKyAgICA6OlBvc3RNZXNzYWdlKG1fcnVuTG9vcE1lc3NhZ2VXaW5k
b3csIFBlcmZvcm1Xb3JrTWVzc2FnZSwgcmVpbnRlcnByZXRfY2FzdDxXUEFSQU0+KHRoaXMpLCAw
KTsKK30KKworLy8gUnVuTG9vcDo6VGltZXIKKwordm9pZCBSdW5Mb29wOjpUaW1lckJhc2U6OnRp
bWVyRmlyZWQoUnVuTG9vcCogcnVuTG9vcCwgdWludDY0X3QgSUQpCit7CisgICAgVGltZXJNYXA6
Oml0ZXJhdG9yIGl0ID0gcnVuTG9vcC0+bV9hY3RpdmVUaW1lcnMuZmluZChJRCk7CisgICAgaWYg
KGl0ID09IHJ1bkxvb3AtPm1fYWN0aXZlVGltZXJzLmVuZCgpKSB7CisgICAgICAgIC8vIFRoZSB0
aW1lciBtdXN0IGhhdmUgYmVlbiBzdG9wcGVkIGFmdGVyIHRoZSBXTV9USU1FUiBtZXNzYWdlIHdh
cyBwb3N0ZWQgdG8gdGhlIG1lc3NhZ2UgcXVldWUuCisgICAgICAgIHJldHVybjsKKyAgICB9CisK
KyAgICBUaW1lckJhc2UqIHRpbWVyID0gaXQtPnNlY29uZDsKKworICAgIGlmICghdGltZXItPm1f
aXNSZXBlYXRpbmcpIHsKKyAgICAgICAgcnVuTG9vcC0+bV9hY3RpdmVUaW1lcnMucmVtb3ZlKGl0
KTsKKyAgICAgICAgOjpLaWxsVGltZXIocnVuTG9vcC0+bV9ydW5Mb29wTWVzc2FnZVdpbmRvdywg
SUQpOworICAgIH0KKworICAgIHRpbWVyLT5maXJlZCgpOworfQorCitzdGF0aWMgdWludDY0X3Qg
Z2VuZXJhdGVUaW1lcklEKCkKK3sKKyAgICBzdGF0aWMgdWludDY0X3QgdW5pcXVlVGltZXJJRCA9
IDE7CisgICAgcmV0dXJuIHVuaXF1ZVRpbWVySUQrKzsKK30KKworUnVuTG9vcDo6VGltZXJCYXNl
OjpUaW1lckJhc2UoUnVuTG9vcCogcnVuTG9vcCkKKyAgICA6IG1fcnVuTG9vcChydW5Mb29wKQor
ICAgICwgbV9JRChnZW5lcmF0ZVRpbWVySUQoKSkKKyAgICAsIG1faXNSZXBlYXRpbmcoZmFsc2Up
Cit7Cit9CisKK1J1bkxvb3A6OlRpbWVyQmFzZTo6flRpbWVyQmFzZSgpCit7CisgICAgc3RvcCgp
OworfQorCit2b2lkIFJ1bkxvb3A6OlRpbWVyQmFzZTo6c3RhcnQoZG91YmxlIG5leHRGaXJlSW50
ZXJ2YWwsIGJvb2wgcmVwZWF0KQoreworICAgIG1faXNSZXBlYXRpbmcgPSByZXBlYXQ7CisgICAg
bV9ydW5Mb29wLT5tX2FjdGl2ZVRpbWVycy5zZXQobV9JRCwgdGhpcyk7CisgICAgOjpTZXRUaW1l
cihtX3J1bkxvb3AtPm1fcnVuTG9vcE1lc3NhZ2VXaW5kb3csIG1fSUQsIG5leHRGaXJlSW50ZXJ2
YWwgKiAxMDAwLCAwKTsKK30KKwordm9pZCBSdW5Mb29wOjpUaW1lckJhc2U6OnN0b3AoKQorewor
ICAgIFRpbWVyTWFwOjppdGVyYXRvciBpdCA9IG1fcnVuTG9vcC0+bV9hY3RpdmVUaW1lcnMuZmlu
ZChtX0lEKTsKKyAgICBpZiAoaXQgPT0gbV9ydW5Mb29wLT5tX2FjdGl2ZVRpbWVycy5lbmQoKSkK
KyAgICAgICAgcmV0dXJuOworCisgICAgbV9ydW5Mb29wLT5tX2FjdGl2ZVRpbWVycy5yZW1vdmUo
aXQpOworICAgIDo6S2lsbFRpbWVyKG1fcnVuTG9vcC0+bV9ydW5Mb29wTWVzc2FnZVdpbmRvdywg
bV9JRCk7Cit9CisKK2Jvb2wgUnVuTG9vcDo6VGltZXJCYXNlOjppc0FjdGl2ZSgpIGNvbnN0Cit7
CisgICAgcmV0dXJuIG1fcnVuTG9vcC0+bV9hY3RpdmVUaW1lcnMuY29udGFpbnMobV9JRCk7Cit9
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9HTlVtYWtlZmlsZS5hbSBiL1NvdXJjZS9XZWJL
aXQyL0dOVW1ha2VmaWxlLmFtCmluZGV4IGE3NzFiOWQ4ZDRjMzgxNWViNzVkMjgwZTFhMWM3MmY4
ZjgwZjExOGEuLjhiMjZjNWVmYjJkMWM3Y2JlYWQyMjk2NjA5YjMzNTI1ZjYxZGQwYzQgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL0dOVW1ha2VmaWxlLmFtCisrKyBiL1NvdXJjZS9XZWJLaXQy
L0dOVW1ha2VmaWxlLmFtCkBAIC0yMDksMTUgKzIwOSwxMiBAQCBsaWJ3ZWJraXQyZ3RrX0BXRUJL
SVRHVEtfQVBJX01BSk9SX1ZFUlNJT05AX0BXRUJLSVRHVEtfQVBJX01JTk9SX1ZFUlNJT05AX2xh
X1NPVQogCVNvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL0NvcmVJUEMvdW5peC9Db25uZWN0aW9uVW5p
eC5jcHAgXAogCVNvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL2d0ay9Mb2dnaW5nR3RrLmNwcCBcCiAJ
U291cmNlL1dlYktpdDIvUGxhdGZvcm0vZ3RrL01vZHVsZUd0ay5jcHAgXAotCVNvdXJjZS9XZWJL
aXQyL1BsYXRmb3JtL2d0ay9SdW5Mb29wR3RrLmNwcCBcCiAJU291cmNlL1dlYktpdDIvUGxhdGZv
cm0vZ3RrL1dvcmtRdWV1ZUd0ay5jcHAgXAogCVNvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL0xvZ2dp
bmcuY3BwIFwKIAlTb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9Mb2dnaW5nLmggXAogCVNvdXJjZS9X
ZWJLaXQyL1BsYXRmb3JtL01vZHVsZS5jcHAgXAogCVNvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL01v
ZHVsZS5oIFwKIAlTb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9QbGF0Zm9ybVByb2Nlc3NJZGVudGlm
aWVyLmggXAotCVNvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL1J1bkxvb3AuY3BwIFwKLQlTb3VyY2Uv
V2ViS2l0Mi9QbGF0Zm9ybS9SdW5Mb29wLmggXAogCVNvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL1No
YXJlZE1lbW9yeS5oIFwKIAlTb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS91bml4L1NoYXJlZE1lbW9y
eVVuaXguY3BwIFwKIAlTb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9Xb3JrUXVldWUuY3BwIFwKQEAg
LTEzNjQsMTEgKzEzNjEsOCBAQCBQcm9ncmFtc19XZWJLaXRQbHVnaW5Qcm9jZXNzX1NPVVJDRVMg
PSBcCiAJU291cmNlL1dlYktpdDIvUGxhdGZvcm0vTW9kdWxlLmggXAogCVNvdXJjZS9XZWJLaXQy
L1BsYXRmb3JtL1dvcmtRdWV1ZS5jcHAgXAogCVNvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL1dvcmtR
dWV1ZS5oIFwKLQlTb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9SdW5Mb29wLmNwcCBcCi0JU291cmNl
L1dlYktpdDIvUGxhdGZvcm0vUnVuTG9vcC5oIFwKIAlTb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9T
aGFyZWRNZW1vcnkuaCBcCiAJU291cmNlL1dlYktpdDIvUGxhdGZvcm0vZ3RrL01vZHVsZUd0ay5j
cHAgXAotCVNvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL2d0ay9SdW5Mb29wR3RrLmNwcCBcCiAJU291
cmNlL1dlYktpdDIvUGxhdGZvcm0vZ3RrL1dvcmtRdWV1ZUd0ay5jcHAgXAogCVNvdXJjZS9XZWJL
aXQyL1BsYXRmb3JtL3VuaXgvU2hhcmVkTWVtb3J5VW5peC5jcHAgXAogCVNvdXJjZS9XZWJLaXQy
L1BsdWdpblByb2Nlc3MvUGx1Z2luQ29udHJvbGxlclByb3h5LmNwcCBcCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9Db3JlSVBDL0Nvbm5lY3Rpb24uY3BwIGIvU291cmNlL1dl
YktpdDIvUGxhdGZvcm0vQ29yZUlQQy9Db25uZWN0aW9uLmNwcAppbmRleCAzZTE3YmJkMjMzYWFk
NmZlYzU5ZDY4YzYwNDgyMWFjYWYyNTVjN2EyLi4zYzJmMTRjZWQwM2U4ZjA5YmYwNTM5Njg4OWIx
ODRlZjhiODVjNTllIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9Db3JlSVBD
L0Nvbm5lY3Rpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL0NvcmVJUEMvQ29u
bmVjdGlvbi5jcHAKQEAgLTI4LDEwICsyOCwxMSBAQAogCiAjaW5jbHVkZSAiQmluYXJ5U2VtYXBo
b3JlLmgiCiAjaW5jbHVkZSAiQ29yZUlQQ01lc3NhZ2VLaW5kcy5oIgotI2luY2x1ZGUgIlJ1bkxv
b3AuaCIKKyNpbmNsdWRlIDxXZWJDb3JlL1J1bkxvb3AuaD4KICNpbmNsdWRlIDx3dGYvQ3VycmVu
dFRpbWUuaD4KIAogdXNpbmcgbmFtZXNwYWNlIHN0ZDsKK3VzaW5nIG5hbWVzcGFjZSBXZWJDb3Jl
OwogCiBuYW1lc3BhY2UgQ29yZUlQQyB7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1Bs
YXRmb3JtL0NvcmVJUEMvQ29ubmVjdGlvbi5oIGIvU291cmNlL1dlYktpdDIvUGxhdGZvcm0vQ29y
ZUlQQy9Db25uZWN0aW9uLmgKaW5kZXggYmFmYTk5OTE4NzUzYWRhNGE3ZTllNTA5NmU3ZTRhZGU0
MTYxN2MwYS4uMzc0ODg2YmFlMWM0OTZjNTQwYTUyZTEzMGViOWViNzUxMjBhODZmOSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdDIvUGxhdGZvcm0vQ29yZUlQQy9Db25uZWN0aW9uLmgKKysrIGIv
U291cmNlL1dlYktpdDIvUGxhdGZvcm0vQ29yZUlQQy9Db25uZWN0aW9uLmgKQEAgLTUwLDcgKzUw
LDkgQEAgY2xhc3MgUVNvY2tldE5vdGlmaWVyOwogI2luY2x1ZGUgIlBsYXRmb3JtUHJvY2Vzc0lk
ZW50aWZpZXIuaCIKICNlbmRpZgogCi1jbGFzcyBSdW5Mb29wOworbmFtZXNwYWNlIFdlYkNvcmUg
eworICAgIGNsYXNzIFJ1bkxvb3A7Cit9CiAKIG5hbWVzcGFjZSBDb3JlSVBDIHsKIApAQCAtMTE4
LDggKzEyMCw4IEBAIHB1YmxpYzoKICAgICB0eXBlZGVmIGludCBJZGVudGlmaWVyOwogI2VuZGlm
CiAKLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxDb25uZWN0aW9uPiBjcmVhdGVTZXJ2ZXJDb25uZWN0
aW9uKElkZW50aWZpZXIsIENsaWVudCosIFJ1bkxvb3AqIGNsaWVudFJ1bkxvb3ApOwotICAgIHN0
YXRpYyBQYXNzUmVmUHRyPENvbm5lY3Rpb24+IGNyZWF0ZUNsaWVudENvbm5lY3Rpb24oSWRlbnRp
ZmllciwgQ2xpZW50KiwgUnVuTG9vcCogY2xpZW50UnVuTG9vcCk7CisgICAgc3RhdGljIFBhc3NS
ZWZQdHI8Q29ubmVjdGlvbj4gY3JlYXRlU2VydmVyQ29ubmVjdGlvbihJZGVudGlmaWVyLCBDbGll
bnQqLCBXZWJDb3JlOjpSdW5Mb29wKiBjbGllbnRSdW5Mb29wKTsKKyAgICBzdGF0aWMgUGFzc1Jl
ZlB0cjxDb25uZWN0aW9uPiBjcmVhdGVDbGllbnRDb25uZWN0aW9uKElkZW50aWZpZXIsIENsaWVu
dCosIFdlYkNvcmU6OlJ1bkxvb3AqIGNsaWVudFJ1bkxvb3ApOwogICAgIH5Db25uZWN0aW9uKCk7
CiAKICNpZiBPUyhEQVJXSU4pCkBAIC0yMDcsNyArMjA5LDcgQEAgcHVibGljOgogICAgIHR5cGVk
ZWYgTWVzc2FnZTxBcmd1bWVudEVuY29kZXI+IE91dGdvaW5nTWVzc2FnZTsKIAogcHJpdmF0ZToK
LSAgICBDb25uZWN0aW9uKElkZW50aWZpZXIsIGJvb2wgaXNTZXJ2ZXIsIENsaWVudCosIFJ1bkxv
b3AqIGNsaWVudFJ1bkxvb3ApOworICAgIENvbm5lY3Rpb24oSWRlbnRpZmllciwgYm9vbCBpc1Nl
cnZlciwgQ2xpZW50KiwgV2ViQ29yZTo6UnVuTG9vcCogY2xpZW50UnVuTG9vcCk7CiAgICAgdm9p
ZCBwbGF0Zm9ybUluaXRpYWxpemUoSWRlbnRpZmllcik7CiAgICAgdm9pZCBwbGF0Zm9ybUludmFs
aWRhdGUoKTsKICAgICAKQEAgLTI1Myw3ICsyNTUsNyBAQCBwcml2YXRlOgogCiAgICAgYm9vbCBt
X2lzQ29ubmVjdGVkOwogICAgIFdvcmtRdWV1ZSBtX2Nvbm5lY3Rpb25RdWV1ZTsKLSAgICBSdW5M
b29wKiBtX2NsaWVudFJ1bkxvb3A7CisgICAgV2ViQ29yZTo6UnVuTG9vcCogbV9jbGllbnRSdW5M
b29wOwogCiAgICAgVmVjdG9yPFF1ZXVlQ2xpZW50Kj4gbV9jb25uZWN0aW9uUXVldWVDbGllbnRz
OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9Db3JlSVBDL21hYy9Db25u
ZWN0aW9uTWFjLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL0NvcmVJUEMvbWFjL0Nvbm5l
Y3Rpb25NYWMuY3BwCmluZGV4IDk3OTc1YWJlYWJhN2VmNzg5YTk3YTc5OTRiNDNmMjg1ZDZkOGY5
YzQuLjExMTlhMjg0N2ViZmE5YzUxYzE0ODE4ODA3NzI2MDk4NTkxODYxMDYgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL0NvcmVJUEMvbWFjL0Nvbm5lY3Rpb25NYWMuY3BwCisr
KyBiL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL0NvcmVJUEMvbWFjL0Nvbm5lY3Rpb25NYWMuY3Bw
CkBAIC0yOSwxMSArMjksMTIgQEAKICNpbmNsdWRlICJDb3JlSVBDTWVzc2FnZUtpbmRzLmgiCiAj
aW5jbHVkZSAiTWFjaFBvcnQuaCIKICNpbmNsdWRlICJNYWNoVXRpbGl0aWVzLmgiCi0jaW5jbHVk
ZSAiUnVuTG9vcC5oIgorI2luY2x1ZGUgPFdlYkNvcmUvUnVuTG9vcC5oPgogI2luY2x1ZGUgPG1h
Y2gvbWFjaF9lcnJvci5oPgogI2luY2x1ZGUgPG1hY2gvdm1fbWFwLmg+CiAKIHVzaW5nIG5hbWVz
cGFjZSBzdGQ7Cit1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKIAogbmFtZXNwYWNlIENvcmVJUEMg
ewogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9SdW5Mb29wLmNwcCBiL1Nv
dXJjZS9XZWJLaXQyL1BsYXRmb3JtL1J1bkxvb3AuY3BwCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCBlNDk1ZWNjNTgzYWNjYTYxYmEwNGJlMDM5OWI4ZjM1MzU3NDdmNjUwLi4wMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJLaXQyL1Bs
YXRmb3JtL1J1bkxvb3AuY3BwCisrKyAvZGV2L251bGwKQEAgLTEsNzAgKzAsMCBAQAotLyoKLSAq
IENvcHlyaWdodCAoQykgMjAxMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgot
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1
dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k
dWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50
YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRp
b24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJ
VFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwotICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQg
V0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBUSEUgSU1QTElF
RCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNV
TEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJ
TkMuIE9SIElUUyBDT05UUklCVVRPUlMKLSAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5E
SVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKLSAqIENPTlNFUVVFTlRJ
QUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9G
Ci0gKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1Ig
UFJPRklUUzsgT1IgQlVTSU5FU1MKLSAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5E
IE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCi0gKiBDT05UUkFDVCwgU1RS
SUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNF
KQotICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUs
IEVWRU4gSUYgQURWSVNFRCBPRgotICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgot
ICovCi0KLSNpbmNsdWRlICJjb25maWcuaCIKLSNpbmNsdWRlICJSdW5Mb29wLmgiCi0KLSNpbmNs
dWRlIDx3dGYvU3RkTGliRXh0cmFzLmg+Ci0KLXN0YXRpYyBSdW5Mb29wKiBzX21haW5SdW5Mb29w
OwotCi12b2lkIFJ1bkxvb3A6OmluaXRpYWxpemVNYWluUnVuTG9vcCgpCi17Ci0gICAgaWYgKHNf
bWFpblJ1bkxvb3ApCi0gICAgICAgIHJldHVybjsKLSAgICBzX21haW5SdW5Mb29wID0gUnVuTG9v
cDo6Y3VycmVudCgpOwotfQotCi1SdW5Mb29wKiBSdW5Mb29wOjpjdXJyZW50KCkKLXsKLSAgICBE
RUZJTkVfU1RBVElDX0xPQ0FMKFdURjo6VGhyZWFkU3BlY2lmaWM8UnVuTG9vcD4sIHJ1bkxvb3BE
YXRhLCAoKSk7Ci0gICAgcmV0dXJuICYqcnVuTG9vcERhdGE7Ci19Ci0KLVJ1bkxvb3AqIFJ1bkxv
b3A6Om1haW4oKQotewotICAgIEFTU0VSVChzX21haW5SdW5Mb29wKTsKLSAgICByZXR1cm4gc19t
YWluUnVuTG9vcDsKLX0KLQotdm9pZCBSdW5Mb29wOjpwZXJmb3JtV29yaygpCi17Ci0gICAgVmVj
dG9yPEZ1bmN0aW9uPHZvaWQoKT4gPiBmdW5jdGlvblF1ZXVlOwotICAgIHsKLSAgICAgICAgTXV0
ZXhMb2NrZXIgbG9ja2VyKG1fZnVuY3Rpb25RdWV1ZUxvY2spOwotICAgICAgICBtX2Z1bmN0aW9u
UXVldWUuc3dhcChmdW5jdGlvblF1ZXVlKTsKLSAgICB9Ci0KLSAgICBmb3IgKHNpemVfdCBpID0g
MDsgaSA8IGZ1bmN0aW9uUXVldWUuc2l6ZSgpOyArK2kpCi0gICAgICAgIGZ1bmN0aW9uUXVldWVb
aV0oKTsKLX0KLQotdm9pZCBSdW5Mb29wOjpkaXNwYXRjaChjb25zdCBGdW5jdGlvbjx2b2lkKCk+
JiBmdW5jdGlvbikKLXsKLSAgICBNdXRleExvY2tlciBsb2NrZXIobV9mdW5jdGlvblF1ZXVlTG9j
ayk7Ci0gICAgbV9mdW5jdGlvblF1ZXVlLmFwcGVuZChmdW5jdGlvbik7Ci0KLSAgICB3YWtlVXAo
KTsKLX0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL1J1bkxvb3AuaCBiL1Nv
dXJjZS9XZWJLaXQyL1BsYXRmb3JtL1J1bkxvb3AuaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggNTdhNzlhOGYzZjA2MGM0MDUzYTVlMmZiMDc0Mjg2YWNhNzMzNTBhYi4uMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9QbGF0
Zm9ybS9SdW5Mb29wLmgKKysrIC9kZXYvbnVsbApAQCAtMSwxNjEgKzAsMCBAQAotLyoKLSAqIENv
cHlyaWdodCAoQykgMjAxMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKiBDb3B5
cmlnaHQgKEMpIDIwMTAgTm9raWEgQ29ycG9yYXRpb24gYW5kL29yIGl0cyBzdWJzaWRpYXJ5KC1p
ZXMpCi0gKiBQb3J0aW9ucyBDb3B5cmlnaHQgKGMpIDIwMTAgTW90b3JvbGEgTW9iaWxpdHksIElu
Yy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMK
LSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCBy
ZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRp
b25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFs
cyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJ
UyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwot
ICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sCi0gKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJ
TElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJ
TUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKLSAq
IEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUws
IEVYRU1QTEFSWSwgT1IKLSAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCi0gKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNF
UlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKLSAqIElO
VEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZ
LCBXSEVUSEVSIElOCi0gKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5D
TFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQotICogQVJJU0lORyBJTiBBTlkgV0FZIE9V
VCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgotICogVEhF
IFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNpZm5kZWYgUnVuTG9vcF9oCi0j
ZGVmaW5lIFJ1bkxvb3BfaAotCi0jaW5jbHVkZSA8d3RmL0ZvcndhcmQuaD4KLSNpbmNsdWRlIDx3
dGYvRnVuY3Rpb25hbC5oPgotI2luY2x1ZGUgPHd0Zi9IYXNoTWFwLmg+Ci0jaW5jbHVkZSA8d3Rm
L1Bhc3NPd25QdHIuaD4KLSNpbmNsdWRlIDx3dGYvVGhyZWFkU3BlY2lmaWMuaD4KLSNpbmNsdWRl
IDx3dGYvVGhyZWFkaW5nLmg+Ci0jaW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgotI2lmIFBMQVRGT1JN
KEdUSykKLSNpbmNsdWRlIDx3dGYvZ29iamVjdC9HUmVmUHRyLmg+Ci10eXBlZGVmIHN0cnVjdCBf
R1NvdXJjZSBHU291cmNlOwotdHlwZWRlZiBzdHJ1Y3QgX0dNYWluTG9vcCBHTWFpbkxvb3A7Ci10
eXBlZGVmIHN0cnVjdCBfR01haW5Db250ZXh0IEdNYWluQ29udGV4dDsKLXR5cGVkZWYgaW50IGdi
b29sZWFuOwotI2VuZGlmCi0KLWNsYXNzIFJ1bkxvb3AgewotcHVibGljOgotICAgIC8vIE11c3Qg
YmUgY2FsbGVkIGZyb20gdGhlIG1haW4gdGhyZWFkLgotICAgIHN0YXRpYyB2b2lkIGluaXRpYWxp
emVNYWluUnVuTG9vcCgpOwotCi0gICAgc3RhdGljIFJ1bkxvb3AqIGN1cnJlbnQoKTsKLSAgICBz
dGF0aWMgUnVuTG9vcCogbWFpbigpOwotCi0gICAgdm9pZCBkaXNwYXRjaChjb25zdCBGdW5jdGlv
bjx2b2lkKCk+Jik7Ci0KLSAgICBzdGF0aWMgdm9pZCBydW4oKTsKLSAgICB2b2lkIHN0b3AoKTsK
LQotI2lmIFBMQVRGT1JNKE1BQykKLSAgICB2b2lkIHJ1bkZvckR1cmF0aW9uKGRvdWJsZSBkdXJh
dGlvbik7Ci0jZW5kaWYKLSAgICAKLSAgICBjbGFzcyBUaW1lckJhc2UgewotICAgICAgICBmcmll
bmQgY2xhc3MgUnVuTG9vcDsKLSAgICBwdWJsaWM6Ci0gICAgICAgIFRpbWVyQmFzZShSdW5Mb29w
Kik7Ci0gICAgICAgIHZpcnR1YWwgflRpbWVyQmFzZSgpOwotCi0gICAgICAgIHZvaWQgc3RhcnRS
ZXBlYXRpbmcoZG91YmxlIHJlcGVhdEludGVydmFsKSB7IHN0YXJ0KHJlcGVhdEludGVydmFsLCB0
cnVlKTsgfQotICAgICAgICB2b2lkIHN0YXJ0T25lU2hvdChkb3VibGUgaW50ZXJ2YWwpIHsgc3Rh
cnQoaW50ZXJ2YWwsIGZhbHNlKTsgfQotCi0gICAgICAgIHZvaWQgc3RvcCgpOwotICAgICAgICBi
b29sIGlzQWN0aXZlKCkgY29uc3Q7Ci0KLSAgICAgICAgdmlydHVhbCB2b2lkIGZpcmVkKCkgPSAw
OwotCi0gICAgcHJpdmF0ZToKLSAgICAgICAgdm9pZCBzdGFydChkb3VibGUgbmV4dEZpcmVJbnRl
cnZhbCwgYm9vbCByZXBlYXQpOwotCi0gICAgICAgIFJ1bkxvb3AqIG1fcnVuTG9vcDsKLQotI2lm
IFBMQVRGT1JNKFdJTikKLSAgICAgICAgc3RhdGljIHZvaWQgdGltZXJGaXJlZChSdW5Mb29wKiwg
dWludDY0X3QgSUQpOwotICAgICAgICB1aW50NjRfdCBtX0lEOwotICAgICAgICBib29sIG1faXNS
ZXBlYXRpbmc7Ci0jZWxpZiBQTEFURk9STShNQUMpCi0gICAgICAgIHN0YXRpYyB2b2lkIHRpbWVy
RmlyZWQoQ0ZSdW5Mb29wVGltZXJSZWYsIHZvaWQqKTsKLSAgICAgICAgQ0ZSdW5Mb29wVGltZXJS
ZWYgbV90aW1lcjsKLSNlbGlmIFBMQVRGT1JNKFFUKQotICAgICAgICBzdGF0aWMgdm9pZCB0aW1l
ckZpcmVkKFJ1bkxvb3AqLCBpbnQgSUQpOwotICAgICAgICBpbnQgbV9JRDsKLSAgICAgICAgYm9v
bCBtX2lzUmVwZWF0aW5nOwotI2VsaWYgUExBVEZPUk0oR1RLKQotICAgICAgICBzdGF0aWMgZ2Jv
b2xlYW4gdGltZXJGaXJlZENhbGxiYWNrKFJ1bkxvb3A6OlRpbWVyQmFzZSopOwotICAgICAgICBn
Ym9vbGVhbiBpc1JlcGVhdGluZygpIGNvbnN0IHsgcmV0dXJuIG1faXNSZXBlYXRpbmc7IH0KLSAg
ICAgICAgdm9pZCBjbGVhclRpbWVyU291cmNlKCk7Ci0gICAgICAgIEdSZWZQdHI8R1NvdXJjZT4g
bV90aW1lclNvdXJjZTsKLSAgICAgICAgZ2Jvb2xlYW4gbV9pc1JlcGVhdGluZzsKLSNlbmRpZgot
ICAgIH07Ci0KLSAgICB0ZW1wbGF0ZSA8dHlwZW5hbWUgVGltZXJGaXJlZENsYXNzPgotICAgIGNs
YXNzIFRpbWVyIDogcHVibGljIFRpbWVyQmFzZSB7Ci0gICAgcHVibGljOgotICAgICAgICB0eXBl
ZGVmIHZvaWQgKFRpbWVyRmlyZWRDbGFzczo6KlRpbWVyRmlyZWRGdW5jdGlvbikoKTsKLQotICAg
ICAgICBUaW1lcihSdW5Mb29wKiBydW5Mb29wLCBUaW1lckZpcmVkQ2xhc3MqIG8sIFRpbWVyRmly
ZWRGdW5jdGlvbiBmKQotICAgICAgICAgICAgOiBUaW1lckJhc2UocnVuTG9vcCkKLSAgICAgICAg
ICAgICwgbV9vYmplY3QobykKLSAgICAgICAgICAgICwgbV9mdW5jdGlvbihmKQotICAgICAgICB7
Ci0gICAgICAgIH0KLQotICAgIHByaXZhdGU6Ci0gICAgICAgIHZpcnR1YWwgdm9pZCBmaXJlZCgp
IHsgKG1fb2JqZWN0LT4qbV9mdW5jdGlvbikoKTsgfQotCi0gICAgICAgIFRpbWVyRmlyZWRDbGFz
cyogbV9vYmplY3Q7Ci0gICAgICAgIFRpbWVyRmlyZWRGdW5jdGlvbiBtX2Z1bmN0aW9uOwotICAg
IH07Ci0KLXByaXZhdGU6Ci0gICAgZnJpZW5kIGNsYXNzIFdURjo6VGhyZWFkU3BlY2lmaWM8UnVu
TG9vcD47Ci0KLSAgICBSdW5Mb29wKCk7Ci0gICAgflJ1bkxvb3AoKTsKLQotICAgIHZvaWQgcGVy
Zm9ybVdvcmsoKTsKLSAgICB2b2lkIHdha2VVcCgpOwotCi0gICAgTXV0ZXggbV9mdW5jdGlvblF1
ZXVlTG9jazsKLSAgICBWZWN0b3I8RnVuY3Rpb248dm9pZCgpPiA+IG1fZnVuY3Rpb25RdWV1ZTsK
LQotI2lmIFBMQVRGT1JNKFdJTikKLSAgICBzdGF0aWMgYm9vbCByZWdpc3RlclJ1bkxvb3BNZXNz
YWdlV2luZG93Q2xhc3MoKTsKLSAgICBzdGF0aWMgTFJFU1VMVCBDQUxMQkFDSyBSdW5Mb29wV25k
UHJvYyhIV05ELCBVSU5ULCBXUEFSQU0sIExQQVJBTSk7Ci0gICAgTFJFU1VMVCB3bmRQcm9jKEhX
TkQgaFduZCwgVUlOVCBtZXNzYWdlLCBXUEFSQU0gd1BhcmFtLCBMUEFSQU0gbFBhcmFtKTsKLSAg
ICBIV05EIG1fcnVuTG9vcE1lc3NhZ2VXaW5kb3c7Ci0KLSAgICB0eXBlZGVmIEhhc2hNYXA8dWlu
dDY0X3QsIFRpbWVyQmFzZSo+IFRpbWVyTWFwOwotICAgIFRpbWVyTWFwIG1fYWN0aXZlVGltZXJz
OwotI2VsaWYgUExBVEZPUk0oTUFDKQotICAgIHN0YXRpYyB2b2lkIHBlcmZvcm1Xb3JrKHZvaWQq
KTsKLSAgICBDRlJ1bkxvb3BSZWYgbV9ydW5Mb29wOwotICAgIENGUnVuTG9vcFNvdXJjZVJlZiBt
X3J1bkxvb3BTb3VyY2U7Ci0gICAgaW50IG1fbmVzdGluZ0xldmVsOwotI2VsaWYgUExBVEZPUk0o
UVQpCi0gICAgdHlwZWRlZiBIYXNoTWFwPGludCwgVGltZXJCYXNlKj4gVGltZXJNYXA7Ci0gICAg
VGltZXJNYXAgbV9hY3RpdmVUaW1lcnM7Ci0gICAgY2xhc3MgVGltZXJPYmplY3Q7Ci0gICAgVGlt
ZXJPYmplY3QqIG1fdGltZXJPYmplY3Q7Ci0jZWxpZiBQTEFURk9STShHVEspCi1wdWJsaWM6Ci0g
ICAgc3RhdGljIGdib29sZWFuIHF1ZXVlV29yayhSdW5Mb29wKik7Ci0gICAgR01haW5Mb29wKiBt
YWluTG9vcCgpOwotcHJpdmF0ZToKLSAgICBHTWFpbkNvbnRleHQqIG1fcnVuTG9vcENvbnRleHQ7
Ci0gICAgR01haW5Mb29wKiBtX3J1bkxvb3BNYWluOwotI2VuZGlmCi19OwotCi0jZW5kaWYgLy8g
UnVuTG9vcF9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9ndGsvUnVuTG9v
cEd0ay5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9ndGsvUnVuTG9vcEd0ay5jcHAKZGVs
ZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDgxY2JlYWFmMTg3YzU5ZTFjZTcxZmU0NDI5Yjg2
ZDFiOTY3MTY3OTIuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0t
IGEvU291cmNlL1dlYktpdDIvUGxhdGZvcm0vZ3RrL1J1bkxvb3BHdGsuY3BwCisrKyAvZGV2L251
bGwKQEAgLTEsMTM0ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTAgQXBwbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICogUG9ydGlvbnMgQ29weXJpZ2h0IChjKSAyMDEwIE1v
dG9yb2xhIE1vYmlsaXR5LCBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9m
IHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4K
LSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUg
YWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFu
ZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoK
LSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRS
SUJVVE9SUyBgYEFTIElTJycKLSAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJ
RVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogVEhFIElNUExJRUQgV0FSUkFO
VElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICog
UFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJ
VFMgQ09OVFJJQlVUT1JTCi0gKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJ
TkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCi0gKiBDT05TRVFVRU5USUFMIERBTUFH
RVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgotICogU1VC
U1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7
IE9SIEJVU0lORVNTCi0gKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkg
VEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgotICogQ09OVFJBQ1QsIFNUUklDVCBMSUFC
SUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKLSAqIEFS
SVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElG
IEFEVklTRUQgT0YKLSAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0j
aW5jbHVkZSAiY29uZmlnLmgiCi0jaW5jbHVkZSAiUnVuTG9vcC5oIgotCi0jaW5jbHVkZSAiV0tC
YXNlLmgiCi0jaW5jbHVkZSA8Z2xpYi5oPgotCi1SdW5Mb29wOjpSdW5Mb29wKCkKLXsKLSAgICBt
X3J1bkxvb3BDb250ZXh0ID0gZ19tYWluX2NvbnRleHRfZGVmYXVsdCgpOwotICAgIEFTU0VSVCht
X3J1bkxvb3BDb250ZXh0KTsKLSAgICBtX3J1bkxvb3BNYWluID0gZ19tYWluX2xvb3BfbmV3KG1f
cnVuTG9vcENvbnRleHQsIEZBTFNFKTsKLSAgICBBU1NFUlQobV9ydW5Mb29wTWFpbik7Ci19Ci0K
LVJ1bkxvb3A6On5SdW5Mb29wKCkKLXsKLSAgICBpZiAobV9ydW5Mb29wTWFpbikgewotICAgICAg
ICBpZiAoZ19tYWluX2xvb3BfaXNfcnVubmluZyhtX3J1bkxvb3BNYWluKSkKLSAgICAgICAgICAg
IGdfbWFpbl9sb29wX3F1aXQobV9ydW5Mb29wTWFpbik7Ci0gICAgICAgIGdfbWFpbl9sb29wX3Vu
cmVmKG1fcnVuTG9vcE1haW4pOwotICAgIH0KLQotICAgIGlmIChtX3J1bkxvb3BDb250ZXh0KQot
ICAgICAgICBnX21haW5fY29udGV4dF91bnJlZihtX3J1bkxvb3BDb250ZXh0KTsKLX0KLQotdm9p
ZCBSdW5Mb29wOjpydW4oKQotewotICAgIGdfbWFpbl9sb29wX3J1bihSdW5Mb29wOjptYWluKCkt
Pm1haW5Mb29wKCkpOwotfQotCi1HTWFpbkxvb3AqIFJ1bkxvb3A6Om1haW5Mb29wKCkKLXsKLSAg
ICByZXR1cm4gbV9ydW5Mb29wTWFpbjsKLX0KLQotdm9pZCBSdW5Mb29wOjpzdG9wKCkKLXsKLSAg
ICBnX21haW5fbG9vcF9xdWl0KG1fcnVuTG9vcE1haW4pOwotfQotCi1nYm9vbGVhbiBSdW5Mb29w
OjpxdWV1ZVdvcmsoUnVuTG9vcCogcnVuTG9vcCkKLXsKLSAgICBydW5Mb29wLT5wZXJmb3JtV29y
aygpOwotICAgIHJldHVybiBGQUxTRTsKLX0KLQotdm9pZCBSdW5Mb29wOjp3YWtlVXAoKQotewot
ICAgIEdSZWZQdHI8R1NvdXJjZT4gc291cmNlID0gYWRvcHRHUmVmKGdfaWRsZV9zb3VyY2VfbmV3
KCkpOwotICAgIGdfc291cmNlX3NldF9wcmlvcml0eShzb3VyY2UuZ2V0KCksIEdfUFJJT1JJVFlf
REVGQVVMVCk7Ci0gICAgZ19zb3VyY2Vfc2V0X2NhbGxiYWNrKHNvdXJjZS5nZXQoKSwgcmVpbnRl
cnByZXRfY2FzdDxHU291cmNlRnVuYz4oJlJ1bkxvb3A6OnF1ZXVlV29yayksIHRoaXMsIDApOwot
ICAgIGdfc291cmNlX2F0dGFjaChzb3VyY2UuZ2V0KCksIG1fcnVuTG9vcENvbnRleHQpOwotCi0g
ICAgZ19tYWluX2NvbnRleHRfd2FrZXVwKG1fcnVuTG9vcENvbnRleHQpOwotfQotCi1SdW5Mb29w
OjpUaW1lckJhc2U6OlRpbWVyQmFzZShSdW5Mb29wKiBydW5Mb29wKQotICAgIDogbV9ydW5Mb29w
KHJ1bkxvb3ApCi0gICAgLCBtX3RpbWVyU291cmNlKDApCi17Ci19Ci0KLVJ1bkxvb3A6OlRpbWVy
QmFzZTo6flRpbWVyQmFzZSgpCi17Ci0gICAgc3RvcCgpOwotfQotCi12b2lkIFJ1bkxvb3A6OlRp
bWVyQmFzZTo6Y2xlYXJUaW1lclNvdXJjZSgpCi17Ci0gICAgbV90aW1lclNvdXJjZSA9IDA7Ci19
Ci0KLWdib29sZWFuIFJ1bkxvb3A6OlRpbWVyQmFzZTo6dGltZXJGaXJlZENhbGxiYWNrKFJ1bkxv
b3A6OlRpbWVyQmFzZSogdGltZXIpCi17Ci0gICAgR1NvdXJjZSogY3VycmVudFRpbWVyU291cmNl
ID0gdGltZXItPm1fdGltZXJTb3VyY2UuZ2V0KCk7Ci0gICAgYm9vbCBpc1JlcGVhdGluZyA9IHRp
bWVyLT5pc1JlcGVhdGluZygpOwotICAgIC8vIFRoaXMgY2FuIGNoYW5nZSB0aGUgdGltZXJTb3Vy
Y2UgYnkgc3RhcnRpbmcgYSBuZXcgdGltZXIgd2l0aGluIHRoZSBjYWxsYmFjay4KLSAgICB0aW1l
ci0+ZmlyZWQoKTsKLSAgICBpZiAoIWlzUmVwZWF0aW5nICYmIGN1cnJlbnRUaW1lclNvdXJjZSA9
PSB0aW1lci0+bV90aW1lclNvdXJjZS5nZXQoKSkKLSAgICAgICAgdGltZXItPmNsZWFyVGltZXJT
b3VyY2UoKTsKLSAgICByZXR1cm4gaXNSZXBlYXRpbmc7Ci19Ci0KLXZvaWQgUnVuTG9vcDo6VGlt
ZXJCYXNlOjpzdGFydChkb3VibGUgZmlyZUludGVydmFsLCBib29sIHJlcGVhdCkKLXsKLSAgICBp
ZiAobV90aW1lclNvdXJjZSkKLSAgICAgICAgc3RvcCgpOwotCi0gICAgbV90aW1lclNvdXJjZSA9
IGFkb3B0R1JlZihnX3RpbWVvdXRfc291cmNlX25ldyhzdGF0aWNfY2FzdDxndWludD4oZmlyZUlu
dGVydmFsICogMTAwMCkpKTsKLSAgICBtX2lzUmVwZWF0aW5nID0gcmVwZWF0OwotICAgIGdfc291
cmNlX3NldF9jYWxsYmFjayhtX3RpbWVyU291cmNlLmdldCgpLCByZWludGVycHJldF9jYXN0PEdT
b3VyY2VGdW5jPigmUnVuTG9vcDo6VGltZXJCYXNlOjp0aW1lckZpcmVkQ2FsbGJhY2spLCB0aGlz
LCAwKTsKLSAgICBnX3NvdXJjZV9hdHRhY2gobV90aW1lclNvdXJjZS5nZXQoKSwgbV9ydW5Mb29w
LT5tX3J1bkxvb3BDb250ZXh0KTsKLX0KLQotdm9pZCBSdW5Mb29wOjpUaW1lckJhc2U6OnN0b3Ao
KQotewotICAgIGlmICghbV90aW1lclNvdXJjZSkKLSAgICAgICAgcmV0dXJuOwotCi0gICAgZ19z
b3VyY2VfZGVzdHJveShtX3RpbWVyU291cmNlLmdldCgpKTsKLSAgICBjbGVhclRpbWVyU291cmNl
KCk7Ci19Ci0KLWJvb2wgUnVuTG9vcDo6VGltZXJCYXNlOjppc0FjdGl2ZSgpIGNvbnN0Ci17Ci0g
ICAgcmV0dXJuIG1fdGltZXJTb3VyY2U7Ci19CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9Q
bGF0Zm9ybS9tYWMvUnVuTG9vcE1hYy5tbSBiL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL21hYy9S
dW5Mb29wTWFjLm1tCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwM2JiODZlOGQ5Mjc4
MzJkYjgwMjIyMjEzZjY0OTY4MzFkYmJhNDAzLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL21hYy9SdW5Mb29wTWFj
Lm1tCisrKyAvZGV2L251bGwKQEAgLTEsMTUzICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMp
IDIwMTAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAot
ICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJj
ZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIu
IFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUg
Y29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBv
dGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRI
SVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9S
UyBgYEFTIElTJycKLSAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBP
RiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9T
RSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09O
VFJJQlVUT1JTCi0gKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVO
VEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCi0gKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgotICogU1VCU1RJVFVU
RSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJV
U0lORVNTCi0gKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZ
IE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgotICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFks
IE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKLSAqIEFSSVNJTkcg
SU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklT
RUQgT0YKLSAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jaW1wb3J0
ICJjb25maWcuaCIKLSNpbXBvcnQgIlJ1bkxvb3AuaCIKLQotdm9pZCBSdW5Mb29wOjpwZXJmb3Jt
V29yayh2b2lkKiBjb250ZXh0KQotewotICAgIC8vIFdyYXAgbWFpbiB0aHJlYWQgaW4gYW4gQXV0
b3JlbGVhc2UgcG9vbC4gIFNlbmRpbmcgbWVzc2FnZXMgY2FuIGNhbGwgCi0gICAgLy8gaW50byBv
YmpjIGNvZGUgYW5kIGFjY3VtdWxhdGUgbWVtb3J5LiAgCi0gICAgaWYgKGN1cnJlbnQoKSA9PSBt
YWluKCkpIHsKLSAgICAgICAgTlNBdXRvcmVsZWFzZVBvb2wgKnBvb2wgPSBbW05TQXV0b3JlbGVh
c2VQb29sIGFsbG9jXSBpbml0XTsKLSAgICAgICAgc3RhdGljX2Nhc3Q8UnVuTG9vcCo+KGNvbnRl
eHQpLT5wZXJmb3JtV29yaygpOwotICAgICAgICBbcG9vbCBkcmFpbl07Ci0gICAgfSBlbHNlCi0g
ICAgICAgIHN0YXRpY19jYXN0PFJ1bkxvb3AqPihjb250ZXh0KS0+cGVyZm9ybVdvcmsoKTsKLX0K
LQotUnVuTG9vcDo6UnVuTG9vcCgpCi0gICAgOiBtX3J1bkxvb3AoQ0ZSdW5Mb29wR2V0Q3VycmVu
dCgpKQotICAgICwgbV9uZXN0aW5nTGV2ZWwoMCkKLXsKLSAgICBDRlJ1bkxvb3BTb3VyY2VDb250
ZXh0IGNvbnRleHQgPSB7IDAsIHRoaXMsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIHBlcmZvcm1Xb3Jr
IH07Ci0gICAgbV9ydW5Mb29wU291cmNlID0gQ0ZSdW5Mb29wU291cmNlQ3JlYXRlKGtDRkFsbG9j
YXRvckRlZmF1bHQsIDAsICZjb250ZXh0KTsKLSAgICBDRlJ1bkxvb3BBZGRTb3VyY2UobV9ydW5M
b29wLCBtX3J1bkxvb3BTb3VyY2UsIGtDRlJ1bkxvb3BDb21tb25Nb2Rlcyk7Ci19Ci0KLVJ1bkxv
b3A6On5SdW5Mb29wKCkKLXsKLSAgICAvLyBGSVhNRTogVGVhciBkb3duIHRoZSB3b3JrIGl0ZW0g
cXVldWUgaGVyZS4KLSAgICBDRlJ1bkxvb3BTb3VyY2VJbnZhbGlkYXRlKG1fcnVuTG9vcFNvdXJj
ZSk7Ci0gICAgQ0ZSZWxlYXNlKG1fcnVuTG9vcFNvdXJjZSk7Ci19Ci0KLXZvaWQgUnVuTG9vcDo6
cnVuKCkKLXsKLSAgICBjdXJyZW50KCktPm1fbmVzdGluZ0xldmVsKys7Ci0gICAgaWYgKGN1cnJl
bnQoKSA9PSBtYWluKCkgJiYgY3VycmVudCgpLT5tX25lc3RpbmdMZXZlbCA9PSAxKSB7Ci0gICAg
ICAgIC8vIFVzZSAtW05TQXBwbGljYXRpb24gcnVuXSBmb3IgdGhlIG1haW4gcnVuIGxvb3AuCi0g
ICAgICAgIFtOU0FwcCBydW5dOwotICAgIH0gZWxzZSB7Ci0gICAgICAgIE5TQXV0b3JlbGVhc2VQ
b29sICpwb29sID0gW1tOU0F1dG9yZWxlYXNlUG9vbCBhbGxvY10gaW5pdF07Ci0gICAgICAgIENG
UnVuTG9vcFJ1bigpOwotICAgICAgICBbcG9vbCBkcmFpbl07Ci0gICAgfQotICAgIGN1cnJlbnQo
KS0+bV9uZXN0aW5nTGV2ZWwtLTsKLX0KLQotdm9pZCBSdW5Mb29wOjpydW5Gb3JEdXJhdGlvbihk
b3VibGUgZHVyYXRpb24pCi17Ci0gICAgQ0ZSdW5Mb29wUnVuSW5Nb2RlKGtDRlJ1bkxvb3BEZWZh
dWx0TW9kZSwgZHVyYXRpb24sIHRydWUpOwotfQotCi12b2lkIFJ1bkxvb3A6OnN0b3AoKQotewot
ICAgIEFTU0VSVChtX3J1bkxvb3AgPT0gQ0ZSdW5Mb29wR2V0Q3VycmVudCgpKTsKLSAgICAKLSAg
ICBpZiAobV9ydW5Mb29wID09IG1haW4oKS0+bV9ydW5Mb29wICYmIG1fbmVzdGluZ0xldmVsID09
IDEpIHsKLSAgICAgICAgW05TQXBwIHN0b3A6bmlsXTsKLSAgICAgICAgTlNFdmVudCAqZXZlbnQg
PSBbTlNFdmVudCBvdGhlckV2ZW50V2l0aFR5cGU6TlNBcHBsaWNhdGlvbkRlZmluZWQKLSAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9jYXRpb246TlNNYWtlUG9p
bnQoMCwgMCkKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1vZGlmaWVy
RmxhZ3M6MAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRpbWVz
dGFtcDowLjAKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2luZG93
TnVtYmVyOjAKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNv
bnRleHQ6bmlsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBz
dWJ0eXBlOiAwCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IGRhdGExOjAKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ZGF0YTI6MF07Ci0gICAgICAgIFtOU0FwcCBwb3N0RXZlbnQ6ZXZlbnQgYXRTdGFydDp0cnVlXTsK
LSAgICB9IGVsc2UKLSAgICAgICAgQ0ZSdW5Mb29wU3RvcChtX3J1bkxvb3ApOwotfQotCi12b2lk
IFJ1bkxvb3A6Ondha2VVcCgpCi17Ci0gICAgQ0ZSdW5Mb29wU291cmNlU2lnbmFsKG1fcnVuTG9v
cFNvdXJjZSk7Ci0gICAgQ0ZSdW5Mb29wV2FrZVVwKG1fcnVuTG9vcCk7Ci19Ci0KLS8vIFJ1bkxv
b3A6OlRpbWVyCi0KLXZvaWQgUnVuTG9vcDo6VGltZXJCYXNlOjp0aW1lckZpcmVkKENGUnVuTG9v
cFRpbWVyUmVmLCB2b2lkKiBjb250ZXh0KQotewotICAgIFRpbWVyQmFzZSogdGltZXIgPSBzdGF0
aWNfY2FzdDxUaW1lckJhc2UqPihjb250ZXh0KTsKLSAgICAKLSAgICAvLyBXcmFwIG1haW4gdGhy
ZWFkIGluIGFuIEF1dG9yZWxlYXNlIHBvb2wuICBUaGUgdGltZXIgY2FuIGNhbGwgCi0gICAgLy8g
aW50byBvYmpjIGNvZGUgYW5kIGFjY3VtdWxhdGUgbWVtb3J5IG91dHNpZGUgb2YgdGhlIG1haW4g
ZXZlbnQgbG9vcC4KLSAgICBpZiAoY3VycmVudCgpID09IG1haW4oKSkgewotICAgICAgICBOU0F1
dG9yZWxlYXNlUG9vbCAqcG9vbCA9IFtbTlNBdXRvcmVsZWFzZVBvb2wgYWxsb2NdIGluaXRdOyAK
LSAgICAgICAgdGltZXItPmZpcmVkKCk7Ci0gICAgICAgIFtwb29sIGRyYWluXTsKLSAgICB9IGVs
c2UKLSAgICAgICAgdGltZXItPmZpcmVkKCk7Ci19Ci0KLVJ1bkxvb3A6OlRpbWVyQmFzZTo6VGlt
ZXJCYXNlKFJ1bkxvb3AqIHJ1bkxvb3ApCi0gICAgOiBtX3J1bkxvb3AocnVuTG9vcCkKLSAgICAs
IG1fdGltZXIoMCkKLXsKLX0KLQotUnVuTG9vcDo6VGltZXJCYXNlOjp+VGltZXJCYXNlKCkKLXsK
LSAgICBzdG9wKCk7Ci19Ci0KLXZvaWQgUnVuTG9vcDo6VGltZXJCYXNlOjpzdGFydChkb3VibGUg
bmV4dEZpcmVJbnRlcnZhbCwgYm9vbCByZXBlYXQpCi17Ci0gICAgaWYgKG1fdGltZXIpCi0gICAg
ICAgIHN0b3AoKTsKLQotICAgIENGUnVuTG9vcFRpbWVyQ29udGV4dCBjb250ZXh0ID0geyAwLCB0
aGlzLCAwLCAwLCAwIH07Ci0gICAgQ0ZUaW1lSW50ZXJ2YWwgcmVwZWF0SW50ZXJ2YWwgPSByZXBl
YXQgPyBuZXh0RmlyZUludGVydmFsIDogMDsKLSAgICBtX3RpbWVyID0gQ0ZSdW5Mb29wVGltZXJD
cmVhdGUoa0NGQWxsb2NhdG9yRGVmYXVsdCwgQ0ZBYnNvbHV0ZVRpbWVHZXRDdXJyZW50KCkgKyBu
ZXh0RmlyZUludGVydmFsLCByZXBlYXRJbnRlcnZhbCwgMCwgMCwgdGltZXJGaXJlZCwgJmNvbnRl
eHQpOwotICAgIENGUnVuTG9vcEFkZFRpbWVyKG1fcnVuTG9vcC0+bV9ydW5Mb29wLCBtX3RpbWVy
LCBrQ0ZSdW5Mb29wQ29tbW9uTW9kZXMpOwotfQotCi12b2lkIFJ1bkxvb3A6OlRpbWVyQmFzZTo6
c3RvcCgpCi17Ci0gICAgaWYgKCFtX3RpbWVyKQotICAgICAgICByZXR1cm47Ci0KLSAgICBDRlJ1
bkxvb3BUaW1lckludmFsaWRhdGUobV90aW1lcik7Ci0gICAgQ0ZSZWxlYXNlKG1fdGltZXIpOwot
ICAgIG1fdGltZXIgPSAwOwotfQotCi1ib29sIFJ1bkxvb3A6OlRpbWVyQmFzZTo6aXNBY3RpdmUo
KSBjb25zdAotewotICAgIHJldHVybiBtX3RpbWVyICYmIENGUnVuTG9vcFRpbWVySXNWYWxpZCht
X3RpbWVyKTsKLX0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL3F0L1J1bkxv
b3BRdC5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9xdC9SdW5Mb29wUXQuY3BwCmRlbGV0
ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDdhMGE1YjFhZmUwOTgwMzk4OTA5YWI3MGJiNzNi
OWQ5ZjA4ZGU3Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBh
L1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL3F0L1J1bkxvb3BRdC5jcHAKKysrIC9kZXYvbnVsbApA
QCAtMSwxNjMgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMCBBcHBsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTAgTm9raWEgQ29ycG9yYXRp
b24gYW5kL29yIGl0cyBzdWJzaWRpYXJ5KC1pZXMpCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUg
bXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0
cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmln
aHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1h
dGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZU
V0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMg
SVMnJwotICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNI
QU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBE
SVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRP
UlMKLSAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQ
RUNJQUwsIEVYRU1QTEFSWSwgT1IKLSAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCi0gKiBTVUJTVElUVVRFIEdPT0RT
IE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MK
LSAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElB
QklMSVRZLCBXSEVUSEVSIElOCi0gKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9S
VCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQotICogQVJJU0lORyBJTiBBTlkg
V0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgot
ICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNpbmNsdWRlICJjb25m
aWcuaCIKLSNpbmNsdWRlICJSdW5Mb29wLmgiCi0KLSNpbmNsdWRlIDxRQ29yZUFwcGxpY2F0aW9u
PgotI2luY2x1ZGUgPFFBYnN0cmFjdEV2ZW50RGlzcGF0Y2hlcj4KLSNpbmNsdWRlIDxRT2JqZWN0
PgotI2luY2x1ZGUgPFFNZXRhTWV0aG9kPgotI2luY2x1ZGUgPFFNZXRhT2JqZWN0PgotI2luY2x1
ZGUgPFFUaW1lckV2ZW50PgotCi1jbGFzcyBSdW5Mb29wOjpUaW1lck9iamVjdCA6IHB1YmxpYyBR
T2JqZWN0Ci17Ci0gICAgUV9PQkpFQ1QKLXB1YmxpYzoKLSAgICBUaW1lck9iamVjdChSdW5Mb29w
KiBydW5Mb29wKSA6IG1fcnVuTG9vcChydW5Mb29wKQotICAgIHsKLSAgICAgICAgaW50IG1ldGhv
ZEluZGV4ID0gbWV0YU9iamVjdCgpLT5pbmRleE9mTWV0aG9kKCJwZXJmb3JtV29yaygpIik7Ci0g
ICAgICAgIG1fbWV0aG9kID0gbWV0YU9iamVjdCgpLT5tZXRob2QobWV0aG9kSW5kZXgpOwotICAg
IH0KLQotICAgIFFfU0xPVCB2b2lkIHBlcmZvcm1Xb3JrKCkgeyBtX3J1bkxvb3AtPnBlcmZvcm1X
b3JrKCk7IH0KLSAgICBpbmxpbmUgdm9pZCB3YWtlVXAoKSB7IG1fbWV0aG9kLmludm9rZSh0aGlz
LCBRdDo6UXVldWVkQ29ubmVjdGlvbik7IH0KLQotcHJvdGVjdGVkOgotICAgIHZpcnR1YWwgdm9p
ZCB0aW1lckV2ZW50KFFUaW1lckV2ZW50KiBldmVudCkKLSAgICB7Ci0gICAgICAgIFJ1bkxvb3A6
OlRpbWVyQmFzZTo6dGltZXJGaXJlZChtX3J1bkxvb3AsIGV2ZW50LT50aW1lcklkKCkpOwotICAg
IH0KLQotcHJpdmF0ZToKLSAgICBSdW5Mb29wKiBtX3J1bkxvb3A7Ci0gICAgUU1ldGFNZXRob2Qg
bV9tZXRob2Q7Ci19OwotCi1zdGF0aWMgUUV2ZW50TG9vcCogY3VycmVudEV2ZW50TG9vcDsKLQot
dm9pZCBSdW5Mb29wOjpydW4oKQotewotICAgIHN0YXRpYyBib29sIG1haW5FdmVudExvb3BJc1J1
bm5pbmcgPSBmYWxzZTsKLSAgICBpZiAoIW1haW5FdmVudExvb3BJc1J1bm5pbmcpIHsKLSAgICAg
ICAgbWFpbkV2ZW50TG9vcElzUnVubmluZyA9IHRydWU7Ci0gICAgICAgIFFDb3JlQXBwbGljYXRp
b246OmV4ZWMoKTsKLSAgICAgICAgbWFpbkV2ZW50TG9vcElzUnVubmluZyA9IGZhbHNlOwotICAg
IH0gZWxzZSB7Ci0gICAgICAgIFFFdmVudExvb3AgZXZlbnRMb29wOwotCi0gICAgICAgIFFFdmVu
dExvb3AqIHByZXZpb3VzRXZlbnRMb29wID0gY3VycmVudEV2ZW50TG9vcDsKLSAgICAgICAgY3Vy
cmVudEV2ZW50TG9vcCA9ICZldmVudExvb3A7Ci0KLSAgICAgICAgZXZlbnRMb29wLmV4ZWMoKTsK
LQotICAgICAgICBjdXJyZW50RXZlbnRMb29wID0gcHJldmlvdXNFdmVudExvb3A7Ci0gICAgfQot
fQotCi12b2lkIFJ1bkxvb3A6OnN0b3AoKQotewotICAgIGlmIChjdXJyZW50RXZlbnRMb29wKQot
ICAgICAgICBjdXJyZW50RXZlbnRMb29wLT5leGl0KCk7Ci0gICAgZWxzZQotICAgICAgICBRQ29y
ZUFwcGxpY2F0aW9uOjpleGl0KCk7Ci19Ci0KLVJ1bkxvb3A6OlJ1bkxvb3AoKQotICAgIDogbV90
aW1lck9iamVjdChuZXcgVGltZXJPYmplY3QodGhpcykpCi17Ci19Ci0KLVJ1bkxvb3A6On5SdW5M
b29wKCkKLXsKLSAgICBkZWxldGUgbV90aW1lck9iamVjdDsKLX0KLQotdm9pZCBSdW5Mb29wOjp3
YWtlVXAoKQotewotICAgIG1fdGltZXJPYmplY3QtPndha2VVcCgpOwotfQotCi0vLyBSdW5Mb29w
OjpUaW1lcgotCi12b2lkIFJ1bkxvb3A6OlRpbWVyQmFzZTo6dGltZXJGaXJlZChSdW5Mb29wKiBy
dW5Mb29wLCBpbnQgSUQpCi17Ci0gICAgVGltZXJNYXA6Oml0ZXJhdG9yIGl0ID0gcnVuTG9vcC0+
bV9hY3RpdmVUaW1lcnMuZmluZChJRCk7Ci0gICAgQVNTRVJUKGl0ICE9IHJ1bkxvb3AtPm1fYWN0
aXZlVGltZXJzLmVuZCgpKTsKLSAgICBUaW1lckJhc2UqIHRpbWVyID0gaXQtPnNlY29uZDsKLQot
ICAgIGlmICghdGltZXItPm1faXNSZXBlYXRpbmcpIHsKLSAgICAgICAgLy8gU3RvcCB0aGUgdGlt
ZXIgKGNhbGxpbmcgc3RvcCB3b3VsZCBuZWVkIGFub3RoZXIgaGFzaCB0YWJsZSBsb29rdXApLgot
ICAgICAgICBydW5Mb29wLT5tX2FjdGl2ZVRpbWVycy5yZW1vdmUoaXQpOwotICAgICAgICBydW5M
b29wLT5tX3RpbWVyT2JqZWN0LT5raWxsVGltZXIodGltZXItPm1fSUQpOwotICAgICAgICB0aW1l
ci0+bV9JRCA9IDA7Ci0gICAgfQotCi0gICAgdGltZXItPmZpcmVkKCk7Ci19Ci0KLVJ1bkxvb3A6
OlRpbWVyQmFzZTo6VGltZXJCYXNlKFJ1bkxvb3AqIHJ1bkxvb3ApCi0gICAgOiBtX3J1bkxvb3Ao
cnVuTG9vcCkKLSAgICAsIG1fSUQoMCkKLSAgICAsIG1faXNSZXBlYXRpbmcoZmFsc2UpCi17Ci19
Ci0KLVJ1bkxvb3A6OlRpbWVyQmFzZTo6flRpbWVyQmFzZSgpCi17Ci0gICAgc3RvcCgpOwotfQot
Ci12b2lkIFJ1bkxvb3A6OlRpbWVyQmFzZTo6c3RhcnQoZG91YmxlIG5leHRGaXJlSW50ZXJ2YWws
IGJvb2wgcmVwZWF0KQotewotICAgIHN0b3AoKTsKLSAgICBpbnQgbWlsbGlzID0gc3RhdGljX2Nh
c3Q8aW50PihuZXh0RmlyZUludGVydmFsICogMTAwMCk7Ci0gICAgbV9pc1JlcGVhdGluZyA9IHJl
cGVhdDsKLSAgICBtX0lEID0gbV9ydW5Mb29wLT5tX3RpbWVyT2JqZWN0LT5zdGFydFRpbWVyKG1p
bGxpcyk7Ci0gICAgQVNTRVJUKG1fSUQpOwotICAgIG1fcnVuTG9vcC0+bV9hY3RpdmVUaW1lcnMu
c2V0KG1fSUQsIHRoaXMpOwotfQotCi12b2lkIFJ1bkxvb3A6OlRpbWVyQmFzZTo6c3RvcCgpCi17
Ci0gICAgaWYgKCFtX0lEKQotICAgICAgICByZXR1cm47Ci0gICAgVGltZXJNYXA6Oml0ZXJhdG9y
IGl0ID0gbV9ydW5Mb29wLT5tX2FjdGl2ZVRpbWVycy5maW5kKG1fSUQpOwotICAgIGlmIChpdCA9
PSBtX3J1bkxvb3AtPm1fYWN0aXZlVGltZXJzLmVuZCgpKQotICAgICAgICByZXR1cm47Ci0KLSAg
ICBtX3J1bkxvb3AtPm1fYWN0aXZlVGltZXJzLnJlbW92ZShpdCk7Ci0gICAgbV9ydW5Mb29wLT5t
X3RpbWVyT2JqZWN0LT5raWxsVGltZXIobV9JRCk7Ci0gICAgbV9JRCA9IDA7Ci19Ci0KLWJvb2wg
UnVuTG9vcDo6VGltZXJCYXNlOjppc0FjdGl2ZSgpIGNvbnN0Ci17Ci0gICAgcmV0dXJuIG1fSUQ7
Ci19Ci0KLSNpbmNsdWRlICJSdW5Mb29wUXQubW9jIgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dDIvUGxhdGZvcm0vd2luL1J1bkxvb3BXaW4uY3BwIGIvU291cmNlL1dlYktpdDIvUGxhdGZvcm0v
d2luL1J1bkxvb3BXaW4uY3BwCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBkZmJjYWVl
NTYyZTY1MzU5MTFhZWFjZDFmZmIwNDliZTE3OGYwMWY1Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL3dpbi9SdW5M
b29wV2luLmNwcAorKysgL2Rldi9udWxsCkBAIC0xLDE3OSArMCwwIEBACi0vKgotICogQ29weXJp
Z2h0IChDKSAyMDEwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBv
ZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIu
Ci0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhl
IGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBh
bmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAq
Ci0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05U
UklCVVRPUlMgYGBBUyBJUycnCi0gKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5U
SUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFRIRSBJTVBMSUVEIFdBUlJB
TlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAq
IFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1Ig
SVRTIENPTlRSSUJVVE9SUwotICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwg
SU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgotICogQ09OU0VRVUVOVElBTCBEQU1B
R0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKLSAqIFNV
QlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRT
OyBPUiBCVVNJTkVTUwotICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5Z
IFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KLSAqIENPTlRSQUNULCBTVFJJQ1QgTElB
QklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCi0gKiBB
UklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJ
RiBBRFZJU0VEIE9GCi0gKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQot
I2luY2x1ZGUgImNvbmZpZy5oIgotI2luY2x1ZGUgIlJ1bkxvb3AuaCIKLQotI2luY2x1ZGUgIkJp
bmFyeVNlbWFwaG9yZS5oIgotI2luY2x1ZGUgPHd0Zi9DdXJyZW50VGltZS5oPgotCi11c2luZyBu
YW1lc3BhY2UgQ29yZUlQQzsKLXVzaW5nIG5hbWVzcGFjZSBzdGQ7Ci0KLXN0YXRpYyBjb25zdCBV
SU5UIFBlcmZvcm1Xb3JrTWVzc2FnZSA9IFdNX1VTRVIgKyAxOwotc3RhdGljIGNvbnN0IExQV1NU
UiBrUnVuTG9vcE1lc3NhZ2VXaW5kb3dDbGFzc05hbWUgPSBMIlJ1bkxvb3BNZXNzYWdlV2luZG93
IjsKLQotTFJFU1VMVCBDQUxMQkFDSyBSdW5Mb29wOjpSdW5Mb29wV25kUHJvYyhIV05EIGhXbmQs
IFVJTlQgbWVzc2FnZSwgV1BBUkFNIHdQYXJhbSwgTFBBUkFNIGxQYXJhbSkKLXsKLSAgICBMT05H
X1BUUiBsb25nUHRyID0gOjpHZXRXaW5kb3dMb25nUHRyKGhXbmQsIDApOwotICAgIAotICAgIGlm
IChSdW5Mb29wKiBydW5Mb29wID0gcmVpbnRlcnByZXRfY2FzdDxSdW5Mb29wKj4obG9uZ1B0cikp
Ci0gICAgICAgIHJldHVybiBydW5Mb29wLT53bmRQcm9jKGhXbmQsIG1lc3NhZ2UsIHdQYXJhbSwg
bFBhcmFtKTsKLQotICAgIGlmIChtZXNzYWdlID09IFdNX0NSRUFURSkgewotICAgICAgICBMUENS
RUFURVNUUlVDVCBjcmVhdGVTdHJ1Y3QgPSByZWludGVycHJldF9jYXN0PExQQ1JFQVRFU1RSVUNU
PihsUGFyYW0pOwotCi0gICAgICAgIC8vIEFzc29jaWF0ZSB0aGUgUnVuTG9vcCB3aXRoIHRoZSB3
aW5kb3cuCi0gICAgICAgIDo6U2V0V2luZG93TG9uZ1B0cihoV25kLCAwLCAoTE9OR19QVFIpY3Jl
YXRlU3RydWN0LT5scENyZWF0ZVBhcmFtcyk7Ci0gICAgICAgIHJldHVybiAwOwotICAgIH0KLQot
ICAgIHJldHVybiA6OkRlZldpbmRvd1Byb2MoaFduZCwgbWVzc2FnZSwgd1BhcmFtLCBsUGFyYW0p
OwotfQotCi1MUkVTVUxUIFJ1bkxvb3A6OnduZFByb2MoSFdORCBoV25kLCBVSU5UIG1lc3NhZ2Us
IFdQQVJBTSB3UGFyYW0sIExQQVJBTSBsUGFyYW0pCi17Ci0gICAgc3dpdGNoIChtZXNzYWdlKSB7
Ci0gICAgY2FzZSBQZXJmb3JtV29ya01lc3NhZ2U6Ci0gICAgICAgIHBlcmZvcm1Xb3JrKCk7Ci0g
ICAgICAgIHJldHVybiAwOwotICAgIGNhc2UgV01fVElNRVI6Ci0gICAgICAgIFJ1bkxvb3A6OlRp
bWVyQmFzZTo6dGltZXJGaXJlZCh0aGlzLCB3UGFyYW0pOwotICAgICAgICByZXR1cm4gMDsKLSAg
ICB9Ci0KLSAgICByZXR1cm4gOjpEZWZXaW5kb3dQcm9jKGhXbmQsIG1lc3NhZ2UsIHdQYXJhbSwg
bFBhcmFtKTsKLX0KLQotdm9pZCBSdW5Mb29wOjpydW4oKQotewotICAgIE1TRyBtZXNzYWdlOwot
ICAgIHdoaWxlIChCT09MIHJlc3VsdCA9IDo6R2V0TWVzc2FnZSgmbWVzc2FnZSwgMCwgMCwgMCkp
IHsKLSAgICAgICAgaWYgKHJlc3VsdCA9PSAtMSkKLSAgICAgICAgICAgIGJyZWFrOwotICAgICAg
ICA6OlRyYW5zbGF0ZU1lc3NhZ2UoJm1lc3NhZ2UpOwotICAgICAgICA6OkRpc3BhdGNoTWVzc2Fn
ZSgmbWVzc2FnZSk7Ci0gICAgfQotfQotCi12b2lkIFJ1bkxvb3A6OnN0b3AoKQotewotICAgIDo6
UG9zdFF1aXRNZXNzYWdlKDApOwotfQotCi1ib29sIFJ1bkxvb3A6OnJlZ2lzdGVyUnVuTG9vcE1l
c3NhZ2VXaW5kb3dDbGFzcygpCi17Ci0gICAgLy8gRklYTUU6IFRoaXMgcmVhbGx5IG9ubHkgbmVl
ZHMgdG8gYmUgY2FsbGVkIG9uY2UuCi0KLSAgICBXTkRDTEFTU0VYIHdpbmRvd0NsYXNzID0geyAw
IH07Ci0gICAgd2luZG93Q2xhc3MuY2JTaXplICAgICAgICAgID0gc2l6ZW9mKHdpbmRvd0NsYXNz
KTsKLSAgICB3aW5kb3dDbGFzcy5scGZuV25kUHJvYyAgICAgPSBSdW5Mb29wOjpSdW5Mb29wV25k
UHJvYzsKLSAgICB3aW5kb3dDbGFzcy5jYlduZEV4dHJhICAgICAgPSBzaXplb2YoUnVuTG9vcCop
OwotICAgIHdpbmRvd0NsYXNzLmxwc3pDbGFzc05hbWUgICA9IGtSdW5Mb29wTWVzc2FnZVdpbmRv
d0NsYXNzTmFtZTsKLQotICAgIHJldHVybiAhITo6UmVnaXN0ZXJDbGFzc0V4KCZ3aW5kb3dDbGFz
cyk7Ci19Ci0KLVJ1bkxvb3A6OlJ1bkxvb3AoKQotewotICAgIHJlZ2lzdGVyUnVuTG9vcE1lc3Nh
Z2VXaW5kb3dDbGFzcygpOwotCi0gICAgbV9ydW5Mb29wTWVzc2FnZVdpbmRvdyA9IDo6Q3JlYXRl
V2luZG93KGtSdW5Mb29wTWVzc2FnZVdpbmRvd0NsYXNzTmFtZSwgMCwgMCwKLSAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ1dfVVNFREVGQVVMVCwgMCwgQ1dfVVNF
REVGQVVMVCwgMCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
SFdORF9NRVNTQUdFLCAwLCAwLCB0aGlzKTsKLSAgICBBU1NFUlQoOjpJc1dpbmRvdyhtX3J1bkxv
b3BNZXNzYWdlV2luZG93KSk7Ci19Ci0KLVJ1bkxvb3A6On5SdW5Mb29wKCkKLXsKLSAgICAvLyBG
SVhNRTogVGVhciBkb3duIHRoZSB3b3JrIGl0ZW0gcXVldWUgaGVyZS4KLX0KLQotdm9pZCBSdW5M
b29wOjp3YWtlVXAoKQotewotICAgIC8vIEZJWE1FOiBObyBuZWVkIHRvIHdha2UgdXAgdGhlIHJ1
biBsb29wIGlmIHdlJ3ZlIGFscmVhZHkgY2FsbGVkIGRpc3BhdGNoCi0gICAgLy8gYmVmb3JlIHRo
ZSBydW4gbG9vcCBoYXMgaGFkIHRoZSB0aW1lIHRvIHJlc3BvbmQuCi0gICAgOjpQb3N0TWVzc2Fn
ZShtX3J1bkxvb3BNZXNzYWdlV2luZG93LCBQZXJmb3JtV29ya01lc3NhZ2UsIHJlaW50ZXJwcmV0
X2Nhc3Q8V1BBUkFNPih0aGlzKSwgMCk7Ci19Ci0KLS8vIFJ1bkxvb3A6OlRpbWVyCi0KLXZvaWQg
UnVuTG9vcDo6VGltZXJCYXNlOjp0aW1lckZpcmVkKFJ1bkxvb3AqIHJ1bkxvb3AsIHVpbnQ2NF90
IElEKQotewotICAgIFRpbWVyTWFwOjppdGVyYXRvciBpdCA9IHJ1bkxvb3AtPm1fYWN0aXZlVGlt
ZXJzLmZpbmQoSUQpOwotICAgIGlmIChpdCA9PSBydW5Mb29wLT5tX2FjdGl2ZVRpbWVycy5lbmQo
KSkgewotICAgICAgICAvLyBUaGUgdGltZXIgbXVzdCBoYXZlIGJlZW4gc3RvcHBlZCBhZnRlciB0
aGUgV01fVElNRVIgbWVzc2FnZSB3YXMgcG9zdGVkIHRvIHRoZSBtZXNzYWdlIHF1ZXVlLgotICAg
ICAgICByZXR1cm47Ci0gICAgfQotCi0gICAgVGltZXJCYXNlKiB0aW1lciA9IGl0LT5zZWNvbmQ7
Ci0KLSAgICBpZiAoIXRpbWVyLT5tX2lzUmVwZWF0aW5nKSB7Ci0gICAgICAgIHJ1bkxvb3AtPm1f
YWN0aXZlVGltZXJzLnJlbW92ZShpdCk7Ci0gICAgICAgIDo6S2lsbFRpbWVyKHJ1bkxvb3AtPm1f
cnVuTG9vcE1lc3NhZ2VXaW5kb3csIElEKTsKLSAgICB9Ci0KLSAgICB0aW1lci0+ZmlyZWQoKTsK
LX0KLQotc3RhdGljIHVpbnQ2NF90IGdlbmVyYXRlVGltZXJJRCgpCi17Ci0gICAgc3RhdGljIHVp
bnQ2NF90IHVuaXF1ZVRpbWVySUQgPSAxOwotICAgIHJldHVybiB1bmlxdWVUaW1lcklEKys7Ci19
Ci0KLVJ1bkxvb3A6OlRpbWVyQmFzZTo6VGltZXJCYXNlKFJ1bkxvb3AqIHJ1bkxvb3ApCi0gICAg
OiBtX3J1bkxvb3AocnVuTG9vcCkKLSAgICAsIG1fSUQoZ2VuZXJhdGVUaW1lcklEKCkpCi0gICAg
LCBtX2lzUmVwZWF0aW5nKGZhbHNlKQotewotfQotCi1SdW5Mb29wOjpUaW1lckJhc2U6On5UaW1l
ckJhc2UoKQotewotICAgIHN0b3AoKTsKLX0KLQotdm9pZCBSdW5Mb29wOjpUaW1lckJhc2U6OnN0
YXJ0KGRvdWJsZSBuZXh0RmlyZUludGVydmFsLCBib29sIHJlcGVhdCkKLXsKLSAgICBtX2lzUmVw
ZWF0aW5nID0gcmVwZWF0OwotICAgIG1fcnVuTG9vcC0+bV9hY3RpdmVUaW1lcnMuc2V0KG1fSUQs
IHRoaXMpOwotICAgIDo6U2V0VGltZXIobV9ydW5Mb29wLT5tX3J1bkxvb3BNZXNzYWdlV2luZG93
LCBtX0lELCBuZXh0RmlyZUludGVydmFsICogMTAwMCwgMCk7Ci19Ci0KLXZvaWQgUnVuTG9vcDo6
VGltZXJCYXNlOjpzdG9wKCkKLXsKLSAgICBUaW1lck1hcDo6aXRlcmF0b3IgaXQgPSBtX3J1bkxv
b3AtPm1fYWN0aXZlVGltZXJzLmZpbmQobV9JRCk7Ci0gICAgaWYgKGl0ID09IG1fcnVuTG9vcC0+
bV9hY3RpdmVUaW1lcnMuZW5kKCkpCi0gICAgICAgIHJldHVybjsKLQotICAgIG1fcnVuTG9vcC0+
bV9hY3RpdmVUaW1lcnMucmVtb3ZlKGl0KTsKLSAgICA6OktpbGxUaW1lcihtX3J1bkxvb3AtPm1f
cnVuTG9vcE1lc3NhZ2VXaW5kb3csIG1fSUQpOwotfQotCi1ib29sIFJ1bkxvb3A6OlRpbWVyQmFz
ZTo6aXNBY3RpdmUoKSBjb25zdAotewotICAgIHJldHVybiBtX3J1bkxvb3AtPm1fYWN0aXZlVGlt
ZXJzLmNvbnRhaW5zKG1fSUQpOwotfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvUGx1Z2lu
UHJvY2Vzcy9QbHVnaW5Db250cm9sbGVyUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQyL1BsdWdpblBy
b2Nlc3MvUGx1Z2luQ29udHJvbGxlclByb3h5LmgKaW5kZXggNTFjMzQ4ZGExYTUyY2QyMGU1OTk5
OTA3YTVjYmVhZDk1ZmQ2OGVjMy4uYzc5MjExYThjMmFkMmI0MzQ5NDRkOTlkNWFkY2RiNjQzNGRk
YjJlMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvUGx1Z2luUHJvY2Vzcy9QbHVnaW5Db250
cm9sbGVyUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9QbHVnaW5Qcm9jZXNzL1BsdWdpbkNv
bnRyb2xsZXJQcm94eS5oCkBAIC0zMiw4ICszMiw4IEBACiAjaW5jbHVkZSAiUGx1Z2luLmgiCiAj
aW5jbHVkZSAiUGx1Z2luQ29udHJvbGxlci5oIgogI2luY2x1ZGUgIlBsdWdpbkNvbnRyb2xsZXJQ
cm94eU1lc3NhZ2VzLmgiCi0jaW5jbHVkZSAiUnVuTG9vcC5oIgogI2luY2x1ZGUgIlNoYXJlYWJs
ZUJpdG1hcC5oIgorI2luY2x1ZGUgPFdlYkNvcmUvUnVuTG9vcC5oPgogI2luY2x1ZGUgPHd0Zi9O
b25jb3B5YWJsZS5oPgogCiAjaWYgUExBVEZPUk0oTUFDKQpAQCAtMTY3LDE0ICsxNjcsMTQgQEAg
cHJpdmF0ZToKICAgICBXZWJDb3JlOjpJbnRSZWN0IG1fZGlydHlSZWN0OwogCiAgICAgLy8gVGhl
IHBhaW50IHRpbWVyLCB1c2VkIGZvciBjb2FsZXNjaW5nIHBhaW50aW5nLgotICAgIFJ1bkxvb3A6
OlRpbWVyPFBsdWdpbkNvbnRyb2xsZXJQcm94eT4gbV9wYWludFRpbWVyOworICAgIFdlYkNvcmU6
OlJ1bkxvb3A6OlRpbWVyPFBsdWdpbkNvbnRyb2xsZXJQcm94eT4gbV9wYWludFRpbWVyOwogICAg
IAogICAgIC8vIEEgY291bnRlciB1c2VkIHRvIHByZXZlbnQgdGhlIHBsdWctaW4gZnJvbSBiZWlu
ZyBkZXN0cm95ZWQuCiAgICAgdW5zaWduZWQgbV9wbHVnaW5EZXN0cnVjdGlvblByb3RlY3RDb3Vu
dDsKIAogICAgIC8vIEEgdGltZXIgdGhhdCB3ZSB1c2UgdG8gcHJldmVudCBkZXN0cnVjdGlvbiBv
ZiB0aGUgcGx1Zy1pbiB3aGlsZSBwbHVnLWluCiAgICAgLy8gY29kZSBpcyBvbiB0aGUgc3RhY2su
Ci0gICAgUnVuTG9vcDo6VGltZXI8UGx1Z2luQ29udHJvbGxlclByb3h5PiBtX3BsdWdpbkRlc3Ry
b3lUaW1lcjsKKyAgICBXZWJDb3JlOjpSdW5Mb29wOjpUaW1lcjxQbHVnaW5Db250cm9sbGVyUHJv
eHk+IG1fcGx1Z2luRGVzdHJveVRpbWVyOwogCiAgICAgLy8gV2lsbCBwb2ludCB0byB0aGUgcGx1
Zy1pbiBjcmVhdGlvbiBwYXJhbWV0ZXJzIG9mIHRoZSBwbHVnLWluIHdlJ3JlIGN1cnJlbnRseSBp
bml0aWFsaXppbmcgYW5kIHdpbGwgYmUgbnVsbCB3aGVuIHdlJ3JlIGRvbmUgaW5pdGlhbGl6aW5n
LgogICAgIGNvbnN0IFBsdWdpbkNyZWF0aW9uUGFyYW1ldGVycyogbV9wbHVnaW5DcmVhdGlvblBh
cmFtZXRlcnM7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9QbHVnaW5Qcm9jZXNzL1BsdWdp
blByb2Nlc3MuY3BwIGIvU291cmNlL1dlYktpdDIvUGx1Z2luUHJvY2Vzcy9QbHVnaW5Qcm9jZXNz
LmNwcAppbmRleCBhMzY2ZjVkYjcxNDIxMzcwNmJkZWI1OTg1NTk3NDM4YThkNTRlNjNlLi4wOTli
ZjNhNDhmZmQyM2ZjNGU0YWM3NzEyZGM5MjY3YjMxN2VkYjU5IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0Mi9QbHVnaW5Qcm9jZXNzL1BsdWdpblByb2Nlc3MuY3BwCisrKyBiL1NvdXJjZS9XZWJL
aXQyL1BsdWdpblByb2Nlc3MvUGx1Z2luUHJvY2Vzcy5jcHAKQEAgLTM2LDYgKzM2LDcgQEAKICNp
bmNsdWRlICJQbHVnaW5Qcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmgiCiAjaW5jbHVkZSAiV2Vi
UHJvY2Vzc0Nvbm5lY3Rpb24uaCIKICNpbmNsdWRlIDxXZWJDb3JlL05vdEltcGxlbWVudGVkLmg+
CisjaW5jbHVkZSA8V2ViQ29yZS9SdW5Mb29wLmg+CiAKICNpZiBVU0UoVU5JWF9ET01BSU5fU09D
S0VUUykKICNpbmNsdWRlIDxlcnJuby5oPgpAQCAtNTUsNiArNTYsOCBAQAogI2VuZGlmIC8vIFNP
Q0tfU0VRUEFDS0VUCiAjZW5kaWYgLy8gVVNFKFVOSVhfRE9NQUlOX1NPQ0tFVFMpCiAKK3VzaW5n
IG5hbWVzcGFjZSBXZWJDb3JlOworCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAogc3RhdGljIGNvbnN0
IGRvdWJsZSBzaHV0ZG93blRpbWVvdXQgPSAxNS4wOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dDIvUGx1Z2luUHJvY2Vzcy9QbHVnaW5Qcm9jZXNzLmggYi9Tb3VyY2UvV2ViS2l0Mi9QbHVnaW5Q
cm9jZXNzL1BsdWdpblByb2Nlc3MuaAppbmRleCBhNjEwMzI2YjQ3OTZjYzQ0ZDFmNzJlMTYzZmI5
YTg0YTdiOTczYzRhLi5hOWFiMTdkNGJmNGYzNTE4YzQzNzEwYWQwYTBjNzk4NDQwNjkxODc3IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9QbHVnaW5Qcm9jZXNzL1BsdWdpblByb2Nlc3MuaAor
KysgYi9Tb3VyY2UvV2ViS2l0Mi9QbHVnaW5Qcm9jZXNzL1BsdWdpblByb2Nlc3MuaApAQCAtMjks
MTAgKzI5LDEzIEBACiAjaWYgRU5BQkxFKFBMVUdJTl9QUk9DRVNTKQogCiAjaW5jbHVkZSAiQ2hp
bGRQcm9jZXNzLmgiCi0jaW5jbHVkZSAiUnVuTG9vcC5oIgogI2luY2x1ZGUgPHd0Zi9Gb3J3YXJk
Lmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CiAKK25hbWVzcGFjZSBXZWJDb3Jl
IHsKKyAgICBjbGFzcyBSdW5Mb29wOworfQorCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAogY2xhc3Mg
TmV0c2NhcGVQbHVnaW5Nb2R1bGU7CkBAIC00NCw3ICs0Nyw3IEBAIGNsYXNzIFBsdWdpblByb2Nl
c3MgOiBDaGlsZFByb2Nlc3MgewogcHVibGljOgogICAgIHN0YXRpYyBQbHVnaW5Qcm9jZXNzJiBz
aGFyZWQoKTsKIAotICAgIHZvaWQgaW5pdGlhbGl6ZShDb3JlSVBDOjpDb25uZWN0aW9uOjpJZGVu
dGlmaWVyLCBSdW5Mb29wKik7CisgICAgdm9pZCBpbml0aWFsaXplKENvcmVJUEM6OkNvbm5lY3Rp
b246OklkZW50aWZpZXIsIFdlYkNvcmU6OlJ1bkxvb3AqKTsKICAgICB2b2lkIHJlbW92ZVdlYlBy
b2Nlc3NDb25uZWN0aW9uKFdlYlByb2Nlc3NDb25uZWN0aW9uKiB3ZWJQcm9jZXNzQ29ubmVjdGlv
bik7CiAKICAgICBOZXRzY2FwZVBsdWdpbk1vZHVsZSogbmV0c2NhcGVQbHVnaW5Nb2R1bGUoKTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1BsdWdpblByb2Nlc3MvV2ViUHJvY2Vzc0Nvbm5l
Y3Rpb24uY3BwIGIvU291cmNlL1dlYktpdDIvUGx1Z2luUHJvY2Vzcy9XZWJQcm9jZXNzQ29ubmVj
dGlvbi5jcHAKaW5kZXggYWI2M2IwNWJiZGY4NmYyYjIzMjljOGRjMzNkMDg3MTgwY2I3MzlmZC4u
YTI3ZDExMzkwNjlkYTk3N2ZjODJlY2JkZDJhZWM5NGM3YTdlZDY1ZiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdDIvUGx1Z2luUHJvY2Vzcy9XZWJQcm9jZXNzQ29ubmVjdGlvbi5jcHAKKysrIGIv
U291cmNlL1dlYktpdDIvUGx1Z2luUHJvY2Vzcy9XZWJQcm9jZXNzQ29ubmVjdGlvbi5jcHAKQEAg
LTM0LDEwICszNCwxMSBAQAogI2luY2x1ZGUgIlBsdWdpbkNyZWF0aW9uUGFyYW1ldGVycy5oIgog
I2luY2x1ZGUgIlBsdWdpblByb2Nlc3MuaCIKICNpbmNsdWRlICJQbHVnaW5Qcm9jZXNzQ29ubmVj
dGlvbk1lc3NhZ2VzLmgiCi0jaW5jbHVkZSAiUnVuTG9vcC5oIgorI2luY2x1ZGUgPFdlYkNvcmUv
UnVuTG9vcC5oPgogCi1uYW1lc3BhY2UgV2ViS2l0IHsKK3VzaW5nIG5hbWVzcGFjZSBXZWJDb3Jl
OwogCituYW1lc3BhY2UgV2ViS2l0IHsKIAogY2xhc3MgQ29ubmVjdGlvblN0YWNrIHsKIHB1Ymxp
YzoKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1BsdWdpblByb2Nlc3MvbWFjL1BsdWdpblBy
b2Nlc3NNYWluTWFjLm1tIGIvU291cmNlL1dlYktpdDIvUGx1Z2luUHJvY2Vzcy9tYWMvUGx1Z2lu
UHJvY2Vzc01haW5NYWMubW0KaW5kZXggNWU5M2UyYmRkYTQxM2ZiOGMzZDkyOWFhZGFlMDQ2MWEz
MzM2Mjg2ZC4uODU2MWY5OTU5NDQwOWNmMDc4ZWYxNmQwMTQxMzNlYjAyYzhiNWY1ZSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdDIvUGx1Z2luUHJvY2Vzcy9tYWMvUGx1Z2luUHJvY2Vzc01haW5N
YWMubW0KKysrIGIvU291cmNlL1dlYktpdDIvUGx1Z2luUHJvY2Vzcy9tYWMvUGx1Z2luUHJvY2Vz
c01haW5NYWMubW0KQEAgLTMyLDE5ICszMiwyMSBAQAogI2ltcG9ydCAiRW52aXJvbm1lbnRVdGls
aXRpZXMuaCIKICNpbXBvcnQgIk5ldHNjYXBlUGx1Z2luTW9kdWxlLmgiCiAjaW1wb3J0ICJQbHVn
aW5Qcm9jZXNzLmgiCi0jaW1wb3J0ICJSdW5Mb29wLmgiCisjaW1wb3J0IDxXZWJDb3JlL1J1bkxv
b3AuaD4KICNpbXBvcnQgPFdlYktpdFN5c3RlbUludGVyZmFjZS5oPgogI2ltcG9ydCA8bWFjaC9t
YWNoX2Vycm9yLmg+CiAjaW1wb3J0IDxydW50aW1lL0luaXRpYWxpemVUaHJlYWRpbmcuaD4KICNp
bXBvcnQgPHNlcnZlcnMvYm9vdHN0cmFwLmg+CisjaW1wb3J0IDxzdGRpby5oPgogI2ltcG9ydCA8
d3RmL01haW5UaHJlYWQuaD4KICNpbXBvcnQgPHd0Zi9SZXRhaW5QdHIuaD4KICNpbXBvcnQgPHd0
Zi90ZXh0L0NTdHJpbmcuaD4KICNpbXBvcnQgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgotI2luY2x1
ZGUgPHN0ZGlvLmg+CiAKICNkZWZpbmUgU0hPV19DUkFTSF9SRVBPUlRFUiAxCiAKK3VzaW5nIG5h
bWVzcGFjZSBXZWJDb3JlOworCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAogLy8gRklYTUU6IFRoZXJl
IGlzIG11Y2ggY29kZSBoZXJlIHRoYXQgaXMgZHVwbGljYXRlZCBpbiBXZWJQcm9jZXNzTWFpbk1h
Yy5tbSwgd2Ugc2hvdWxkIGFkZCBhIHNoYXJlZCBiYXNlIGNsYXNzIHdoZXJlCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0Mi9QbHVnaW5Qcm9jZXNzL3F0L1BsdWdpblByb2Nlc3NNYWluUXQuY3Bw
IGIvU291cmNlL1dlYktpdDIvUGx1Z2luUHJvY2Vzcy9xdC9QbHVnaW5Qcm9jZXNzTWFpblF0LmNw
cAppbmRleCAzZTAwMzNmZjBhYjMzNzY1MGU1M2QwODFjODlmNDQ0MTRhNjc4YTc1Li5kM2EwZWMz
ZTI0NTk1NmI5ODUwMGQ1NjdlNTY1ZmFhMTUwNmEwMDUzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0Mi9QbHVnaW5Qcm9jZXNzL3F0L1BsdWdpblByb2Nlc3NNYWluUXQuY3BwCisrKyBiL1NvdXJj
ZS9XZWJLaXQyL1BsdWdpblByb2Nlc3MvcXQvUGx1Z2luUHJvY2Vzc01haW5RdC5jcHAKQEAgLTMw
LDggKzMwLDggQEAKIAogI2luY2x1ZGUgIkNvbW1hbmRMaW5lLmgiCiAjaW5jbHVkZSAiUGx1Z2lu
UHJvY2Vzcy5oIgotI2luY2x1ZGUgIlJ1bkxvb3AuaCIKICNpbmNsdWRlIDxXZWJDb3JlL05vdElt
cGxlbWVudGVkLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9SdW5Mb29wLmg+CiAjaW5jbHVkZSA8cnVu
dGltZS9Jbml0aWFsaXplVGhyZWFkaW5nLmg+CiAjaW5jbHVkZSA8d3RmL01haW5UaHJlYWQuaD4K
ICNpbmNsdWRlIDx3dGYvUmV0YWluUHRyLmg+CkBAIC00MCw2ICs0MCw4IEBACiAKICNkZWZpbmUg
U0hPV19DUkFTSF9SRVBPUlRFUiAxCiAKK3VzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOworCiBuYW1l
c3BhY2UgV2ViS2l0IHsKIAogaW50IFBsdWdpblByb2Nlc3NNYWluKGNvbnN0IENvbW1hbmRMaW5l
JiBjb21tYW5kTGluZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9DaGlsZFBy
b2Nlc3MuY3BwIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL0NoaWxkUHJvY2Vzcy5jcHAKaW5kZXgg
OGIzY2RiMjgyY2I5YjgzZjRiNDhlMjA3NTM0NmY4NWZmYjlkNGE2Yy4uNTcxZmU5NTg2MGUzMGVm
NjdmYWIyMGY4NTFmMjkzYTA1ZmM0YTgyOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvU2hh
cmVkL0NoaWxkUHJvY2Vzcy5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL0NoaWxkUHJv
Y2Vzcy5jcHAKQEAgLTMwLDYgKzMwLDggQEAKICNpbmNsdWRlIDx1bmlzdGQuaD4KICNlbmRpZgog
Cit1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKKwogbmFtZXNwYWNlIFdlYktpdCB7CiAKIHZvaWQg
Q2hpbGRQcm9jZXNzOjpkaXNhYmxlVGVybWluYXRpb24oKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdDIvU2hhcmVkL0NoaWxkUHJvY2Vzcy5oIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL0NoaWxk
UHJvY2Vzcy5oCmluZGV4IDQyNTk4MzBkOGI3Mjk0MzQ5ZWE0Nzk2MjdiNDM0OWIwNzVjNmFjYTYu
LjUwZWNlYjU5NGVjMjhmYzhlM2ZlNDhlOTM4Y2UxZWZjYzI5MTEyYzYgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQyL1NoYXJlZC9DaGlsZFByb2Nlc3MuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9T
aGFyZWQvQ2hpbGRQcm9jZXNzLmgKQEAgLTI3LDcgKzI3LDcgQEAKICNkZWZpbmUgQ2hpbGRQcm9j
ZXNzX2gKIAogI2luY2x1ZGUgIkNvbm5lY3Rpb24uaCIKLSNpbmNsdWRlICJSdW5Mb29wLmgiCisj
aW5jbHVkZSA8V2ViQ29yZS9SdW5Mb29wLmg+CiAKIG5hbWVzcGFjZSBXZWJLaXQgewogCkBAIC03
Nyw3ICs3Nyw3IEBAIHByaXZhdGU6CiAgICAgLy8gYWZ0ZXIgYSBnaXZlbiBwZXJpb2Qgb2YgdGlt
ZS4KICAgICB1bnNpZ25lZCBtX3Rlcm1pbmF0aW9uQ291bnRlcjsKIAotICAgIFJ1bkxvb3A6OlRp
bWVyPENoaWxkUHJvY2Vzcz4gbV90ZXJtaW5hdGlvblRpbWVyOworICAgIFdlYkNvcmU6OlJ1bkxv
b3A6OlRpbWVyPENoaWxkUHJvY2Vzcz4gbV90ZXJtaW5hdGlvblRpbWVyOwogfTsKIAogfSAvLyBu
YW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9UYXJnZXQucHJpIGIv
U291cmNlL1dlYktpdDIvVGFyZ2V0LnByaQppbmRleCAzNTk4M2YwNzY1NmRiNDgwZjgzNWFjY2Y2
M2ZlM2NkNjZkYTk3YzkwLi41ZWUyNzk3MjI0OTA0ZjRhNDc2YWY2MjBhODViZTY0NjZmMTA2ZTc1
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9UYXJnZXQucHJpCisrKyBiL1NvdXJjZS9XZWJL
aXQyL1RhcmdldC5wcmkKQEAgLTMxLDcgKzMxLDYgQEAgSEVBREVSUyArPSBcCiAgICAgUGxhdGZv
cm0vTG9nZ2luZy5oIFwKICAgICBQbGF0Zm9ybS9Nb2R1bGUuaCBcCiAgICAgUGxhdGZvcm0vUGxh
dGZvcm1Qcm9jZXNzSWRlbnRpZmllci5oIFwKLSAgICBQbGF0Zm9ybS9SdW5Mb29wLmggXAogICAg
IFBsYXRmb3JtL1NoYXJlZE1lbW9yeS5oIFwKICAgICBQbGF0Zm9ybS9Xb3JrUXVldWUuaCBcCiAg
ICAgUGx1Z2luUHJvY2Vzcy9QbHVnaW5Db250cm9sbGVyUHJveHkuaCBcCkBAIC0zNzMsMTAgKzM3
Miw4IEBAIFNPVVJDRVMgKz0gXAogICAgIFBsYXRmb3JtL0NvcmVJUEMvRGF0YVJlZmVyZW5jZS5j
cHAgXAogICAgIFBsYXRmb3JtL0xvZ2dpbmcuY3BwIFwKICAgICBQbGF0Zm9ybS9Nb2R1bGUuY3Bw
IFwKLSAgICBQbGF0Zm9ybS9SdW5Mb29wLmNwcCBcCiAgICAgUGxhdGZvcm0vV29ya1F1ZXVlLmNw
cCBcCiAgICAgUGxhdGZvcm0vcXQvTW9kdWxlUXQuY3BwIFwKLSAgICBQbGF0Zm9ybS9xdC9SdW5M
b29wUXQuY3BwIFwKICAgICBQbHVnaW5Qcm9jZXNzL1BsdWdpbkNvbnRyb2xsZXJQcm94eS5jcHAg
XAogICAgIFBsdWdpblByb2Nlc3MvUGx1Z2luUHJvY2Vzcy5jcHAgXAogICAgIFBsdWdpblByb2Nl
c3MvV2ViUHJvY2Vzc0Nvbm5lY3Rpb24uY3BwIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9BUEkvbWFjL0ZpbmRJbmRpY2F0b3JXaW5kb3cuaCBiL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9BUEkvbWFjL0ZpbmRJbmRpY2F0b3JXaW5kb3cuaAppbmRleCA3ODM2YTU0NmE1
NGFhZDEzOGU0YTI3MzFlN2MyMDdkNGE5YTY3Yjg3Li5jYmUzNGExYTkwZmI5YmE5YTViZjc5MzY1
YmIxN2QyMzRhOWQ4YTQzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJ
L21hYy9GaW5kSW5kaWNhdG9yV2luZG93LmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L0FQSS9tYWMvRmluZEluZGljYXRvcldpbmRvdy5oCkBAIC0yNiwxMiArMjYsMTIgQEAKICNpZm5k
ZWYgRmluZEluZGljYXRvcldpbmRvd19oCiAjZGVmaW5lIEZpbmRJbmRpY2F0b3JXaW5kb3dfaAog
CisjaW1wb3J0ICJXZWJLaXRTeXN0ZW1JbnRlcmZhY2UuaCIKKyNpbXBvcnQgPFdlYkNvcmUvUnVu
TG9vcC5oPgogI2ltcG9ydCA8d3RmL05vbmNvcHlhYmxlLmg+CiAjaW1wb3J0IDx3dGYvUGFzc093
blB0ci5oPgogI2ltcG9ydCA8d3RmL1JlZlB0ci5oPgogI2ltcG9ydCA8d3RmL1JldGFpblB0ci5o
PgotI2ltcG9ydCAiUnVuTG9vcC5oIgotI2ltcG9ydCAiV2ViS2l0U3lzdGVtSW50ZXJmYWNlLmgi
CiAKIEBjbGFzcyBXS0ZpbmRJbmRpY2F0b3JXaW5kb3dBbmltYXRpb247CiBAY2xhc3MgV0tWaWV3
OwpAQCAtNjgsNyArNjgsNyBAQCBwcml2YXRlOgogICAgIFdLV2luZG93Qm91bmNlQW5pbWF0aW9u
Q29udGV4dFJlZiBtX2JvdW5jZUFuaW1hdGlvbkNvbnRleHQ7CiAgICAgUmV0YWluUHRyPFdLRmlu
ZEluZGljYXRvcldpbmRvd0FuaW1hdGlvbj4gbV9ib3VuY2VBbmltYXRpb247CiAKLSAgICBSdW5M
b29wOjpUaW1lcjxGaW5kSW5kaWNhdG9yV2luZG93PiBtX3N0YXJ0RmFkZU91dFRpbWVyOworICAg
IFdlYkNvcmU6OlJ1bkxvb3A6OlRpbWVyPEZpbmRJbmRpY2F0b3JXaW5kb3c+IG1fc3RhcnRGYWRl
T3V0VGltZXI7CiAgICAgUmV0YWluUHRyPFdLRmluZEluZGljYXRvcldpbmRvd0FuaW1hdGlvbj4g
bV9mYWRlT3V0QW5pbWF0aW9uOwogfTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL0FQSS9tYWMvV0tWaWV3Lm1tIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9t
YWMvV0tWaWV3Lm1tCmluZGV4IDBjZWNiZDc1YThlZDE3ODk4NGNiNTg5Mzc1NWZiOTRmZmMwYjY1
NTUuLjA3NmI3MDRhMzI2NmI1OTNmZDhhZjhhYjRmM2RkNDY1NDVhM2I2NWQgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvbWFjL1dLVmlldy5tbQorKysgYi9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvQVBJL21hYy9XS1ZpZXcubW0KQEAgLTQwLDcgKzQwLDYgQEAKICNp
bXBvcnQgIlBERlZpZXdDb250cm9sbGVyLmgiCiAjaW1wb3J0ICJQYWdlQ2xpZW50SW1wbC5oIgog
I2ltcG9ydCAiUGFzdGVib2FyZFR5cGVzLmgiCi0jaW1wb3J0ICJSdW5Mb29wLmgiCiAjaW1wb3J0
ICJUZXh0Q2hlY2tlci5oIgogI2ltcG9ydCAiVGV4dENoZWNrZXJTdGF0ZS5oIgogI2ltcG9ydCAi
VGlsZWRDb3JlQW5pbWF0aW9uRHJhd2luZ0FyZWFQcm94eS5oIgpAQCAtNzAsNiArNjksNyBAQAog
I2ltcG9ydCA8V2ViQ29yZS9QbGF0Zm9ybUV2ZW50RmFjdG9yeU1hYy5oPgogI2ltcG9ydCA8V2Vi
Q29yZS9QbGF0Zm9ybVNjcmVlbi5oPgogI2ltcG9ydCA8V2ViQ29yZS9SZWdpb24uaD4KKyNpbXBv
cnQgPFdlYkNvcmUvUnVuTG9vcC5oPgogI2ltcG9ydCA8V2ViS2l0U3lzdGVtSW50ZXJmYWNlLmg+
CiAjaW1wb3J0IDx3dGYvUmVmUHRyLmg+CiAjaW1wb3J0IDx3dGYvUmV0YWluUHRyLmg+CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvRHJhd2luZ0FyZWFQcm94eUltcGwuaCBi
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9EcmF3aW5nQXJlYVByb3h5SW1wbC5oCmluZGV4IDA1
ZDczNTQyMzYyNjdhNTViNDVjNjA5YjhkMmJhNTQ3ZTEwZjhiZGIuLmMxNjUxZjQxZmE5MzVkMWY0
ODA4NDEzMTZiNmEyMThhZWUyYmU4YTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9EcmF3aW5nQXJlYVByb3h5SW1wbC5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9EcmF3aW5nQXJlYVByb3h5SW1wbC5oCkBAIC0yOSw3ICsyOSw3IEBACiAjaW5jbHVkZSAiQmFj
a2luZ1N0b3JlLmgiCiAjaW5jbHVkZSAiRHJhd2luZ0FyZWFQcm94eS5oIgogI2luY2x1ZGUgIkxh
eWVyVHJlZUNvbnRleHQuaCIKLSNpbmNsdWRlICJSdW5Mb29wLmgiCisjaW5jbHVkZSA8V2ViQ29y
ZS9SdW5Mb29wLmg+CiAjaW5jbHVkZSA8d3RmL093blB0ci5oPgogI2luY2x1ZGUgPHd0Zi9QYXNz
T3duUHRyLmg+CiAKQEAgLTExNiw3ICsxMTYsNyBAQCBwcml2YXRlOgogICAgIGJvb2wgbV9pc0Jh
Y2tpbmdTdG9yZURpc2NhcmRhYmxlOwogICAgIE93blB0cjxCYWNraW5nU3RvcmU+IG1fYmFja2lu
Z1N0b3JlOwogCi0gICAgUnVuTG9vcDo6VGltZXI8RHJhd2luZ0FyZWFQcm94eUltcGw+IG1fZGlz
Y2FyZEJhY2tpbmdTdG9yZVRpbWVyOworICAgIFdlYkNvcmU6OlJ1bkxvb3A6OlRpbWVyPERyYXdp
bmdBcmVhUHJveHlJbXBsPiBtX2Rpc2NhcmRCYWNraW5nU3RvcmVUaW1lcjsKIH07CiAKIH0gLy8g
bmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0xh
dW5jaGVyL1RocmVhZExhdW5jaGVyLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9MYXVu
Y2hlci9UaHJlYWRMYXVuY2hlci5jcHAKaW5kZXggM2MwZmJmMTYwY2M3NmU2MDE4NDE1ZDZkM2Iz
NGM2OTYxNjE2YmEwNC4uZjM3YTVkM2EyNzE1YWExNTc4MGRmZGFmZTFjNGE0YzVlNGQwZGU4NSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0xhdW5jaGVyL1RocmVhZExhdW5j
aGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvTGF1bmNoZXIvVGhyZWFkTGF1
bmNoZXIuY3BwCkBAIC0yNiw3ICsyNiw5IEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVk
ZSAiVGhyZWFkTGF1bmNoZXIuaCIKIAotI2luY2x1ZGUgIlJ1bkxvb3AuaCIKKyNpbmNsdWRlIDxX
ZWJDb3JlL1J1bkxvb3AuaD4KKwordXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiAKIG5hbWVzcGFj
ZSBXZWJLaXQgewogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvTGF1bmNo
ZXIvZ3RrL1Byb2Nlc3NMYXVuY2hlckd0ay5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
TGF1bmNoZXIvZ3RrL1Byb2Nlc3NMYXVuY2hlckd0ay5jcHAKaW5kZXggYzYzNDVhNmM2OTI1N2Vl
MDNmZTU4M2M5ZjViOGNiYjBlNTY0ZjhmNC4uOTRjYWQ1ZmM0NDgyMGRhMTk4ZGE4NzFjY2JkNmZh
NDdlNDM4OWIyYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0xhdW5jaGVy
L2d0ay9Qcm9jZXNzTGF1bmNoZXJHdGsuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9MYXVuY2hlci9ndGsvUHJvY2Vzc0xhdW5jaGVyR3RrLmNwcApAQCAtMjgsMTkgKzI4LDIwIEBA
CiAjaW5jbHVkZSAiUHJvY2Vzc0xhdW5jaGVyLmgiCiAKICNpbmNsdWRlICJDb25uZWN0aW9uLmgi
Ci0jaW5jbHVkZSAiUnVuTG9vcC5oIgogI2luY2x1ZGUgPFdlYkNvcmUvRmlsZVN5c3RlbS5oPgog
I2luY2x1ZGUgPFdlYkNvcmUvUmVzb3VyY2VIYW5kbGUuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL1J1
bkxvb3AuaD4KICNpbmNsdWRlIDxlcnJuby5oPgogI2luY2x1ZGUgPGxvY2FsZS5oPgotI2lmIE9T
KExJTlVYKQotI2luY2x1ZGUgPHN5cy9wcmN0bC5oPgotI2VuZGlmCiAjaW5jbHVkZSA8d3RmL3Rl
eHQvQ1N0cmluZy5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgogI2luY2x1ZGUg
PHd0Zi9nb2JqZWN0L0dPd25QdHIuaD4KICNpbmNsdWRlIDx3dGYvZ29iamVjdC9HbGliVXRpbGl0
aWVzLmg+CiAKKyNpZiBPUyhMSU5VWCkKKyNpbmNsdWRlIDxzeXMvcHJjdGwuaD4KKyNlbmRpZgor
CiAjaWZkZWYgU09DS19TRVFQQUNLRVQKICNkZWZpbmUgU09DS0VUX1RZUEUgU09DS19TRVFQQUNL
RVQKICNlbHNlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvTGF1bmNoZXIv
bWFjL1Byb2Nlc3NMYXVuY2hlck1hYy5tbSBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9MYXVu
Y2hlci9tYWMvUHJvY2Vzc0xhdW5jaGVyTWFjLm1tCmluZGV4IGM3MGY2MmVkZmJjZjg3YzZhYjI4
YWU2YmM3MmM0YWMyNzhkN2U5NzQuLmRjODM5Yzg0ZjVmMzNmYmFmMGRhOTYwZjE1NzdhOGQ2Njg1
MGY5Y2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9MYXVuY2hlci9tYWMv
UHJvY2Vzc0xhdW5jaGVyTWFjLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9MYXVu
Y2hlci9tYWMvUHJvY2Vzc0xhdW5jaGVyTWFjLm1tCkBAIC0yOCw5ICsyOCw5IEBACiAKICNpbXBv
cnQgIkR5bmFtaWNMaW5rZXJFbnZpcm9ubWVudEV4dHJhY3Rvci5oIgogI2ltcG9ydCAiRW52aXJv
bm1lbnRWYXJpYWJsZXMuaCIKLSNpbXBvcnQgIlJ1bkxvb3AuaCIKICNpbXBvcnQgIldlYlByb2Nl
c3MuaCIKICNpbXBvcnQgIldlYktpdFN5c3RlbUludGVyZmFjZS5oIgorI2ltcG9ydCA8V2ViQ29y
ZS9SdW5Mb29wLmg+CiAjaW1wb3J0IDxjcnRfZXh0ZXJucy5oPgogI2ltcG9ydCA8bWFjaC1vL2R5
bGQuaD4KICNpbXBvcnQgPG1hY2gvbWFjaGluZS5oPgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL0xhdW5jaGVyL21hYy9UaHJlYWRMYXVuY2hlck1hYy5tbSBiL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9MYXVuY2hlci9tYWMvVGhyZWFkTGF1bmNoZXJNYWMubW0KaW5kZXgg
MWM3NGI3ZDI4N2FmOWJhNjU5MmM3ZGYzOWIyYTA1MzE0MGYzZWYwMy4uZGQ1M2IzZWYxNGU5OTQw
MTQzYWJjYTMxYmE2MjdjOWFlYzE4Mjc3MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL0xhdW5jaGVyL21hYy9UaHJlYWRMYXVuY2hlck1hYy5tbQorKysgYi9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvTGF1bmNoZXIvbWFjL1RocmVhZExhdW5jaGVyTWFjLm1tCkBAIC0yNiwx
MyArMjYsMTUgQEAKICNpbXBvcnQgImNvbmZpZy5oIgogI2ltcG9ydCAiVGhyZWFkTGF1bmNoZXIu
aCIKIAotI2ltcG9ydCAiUnVuTG9vcC5oIgogI2ltcG9ydCAiV2ViUHJvY2Vzcy5oIgogI2ltcG9y
dCAiV2ViU3lzdGVtSW50ZXJmYWNlLmgiCiAjaW1wb3J0IDxydW50aW1lL0luaXRpYWxpemVUaHJl
YWRpbmcuaD4KKyNpbXBvcnQgPFdlYkNvcmUvUnVuTG9vcC5oPgogI2ltcG9ydCA8d3RmL01haW5U
aHJlYWQuaD4KICNpbXBvcnQgPHd0Zi9UaHJlYWRpbmcuaD4KIAordXNpbmcgbmFtZXNwYWNlIFdl
YkNvcmU7CisKIG5hbWVzcGFjZSBXZWJLaXQgewogCiBzdGF0aWMgdm9pZCogd2ViVGhyZWFkQm9k
eSh2b2lkKiBjb250ZXh0KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0xh
dW5jaGVyL3F0L1Byb2Nlc3NMYXVuY2hlclF0LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9MYXVuY2hlci9xdC9Qcm9jZXNzTGF1bmNoZXJRdC5jcHAKaW5kZXggODM3ZjU5YmFmMWI1ZmY1
YTE2NTQ1ZjY1OTA3ZjZhZDM1MDQwMTAxZC4uOGU4MjYyMDYzNjdlZWQ4ZWIxYzI1Y2UyZjRiNDU2
NGIwOGY3NGEwOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0xhdW5jaGVy
L3F0L1Byb2Nlc3NMYXVuY2hlclF0LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
TGF1bmNoZXIvcXQvUHJvY2Vzc0xhdW5jaGVyUXQuY3BwCkBAIC0yOCw3ICsyOCw2IEBACiAjaW5j
bHVkZSAiUHJvY2Vzc0xhdW5jaGVyLmgiCiAKICNpbmNsdWRlICJDb25uZWN0aW9uLmgiCi0jaW5j
bHVkZSAiUnVuTG9vcC5oIgogI2luY2x1ZGUgIldlYlByb2Nlc3MuaCIKICNpbmNsdWRlIDxRQ29y
ZUFwcGxpY2F0aW9uPgogI2luY2x1ZGUgPFFEZWJ1Zz4KQEAgLTM5LDYgKzM4LDcgQEAKICNpbmNs
dWRlIDxRU3RyaW5nPgogI2luY2x1ZGUgPFF0Q29yZS9xZ2xvYmFsLmg+CiAjaW5jbHVkZSA8V2Vi
Q29yZS9Ob3RJbXBsZW1lbnRlZC5oPgorI2luY2x1ZGUgPFdlYkNvcmUvUnVuTG9vcC5oPgogI2lu
Y2x1ZGUgPGVycm5vLmg+CiAjaW5jbHVkZSA8ZmNudGwuaD4KICNpbmNsdWRlIDxydW50aW1lL0lu
aXRpYWxpemVUaHJlYWRpbmcuaD4KQEAgLTUwLDYgKzUwLDcgQEAKICNpbmNsdWRlIDx3dGYvUGFz
c1JlZlB0ci5oPgogI2luY2x1ZGUgPHd0Zi9UaHJlYWRpbmcuaD4KICNpbmNsdWRlIDx3dGYvdGV4
dC9XVEZTdHJpbmcuaD4KKwogI2lmIGRlZmluZWQoUV9PU19MSU5VWCkKICNpbmNsdWRlIDxzeXMv
cHJjdGwuaD4KICNpbmNsdWRlIDxzaWduYWwuaD4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9MYXVuY2hlci9xdC9UaHJlYWRMYXVuY2hlclF0LmNwcCBiL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9MYXVuY2hlci9xdC9UaHJlYWRMYXVuY2hlclF0LmNwcAppbmRleCA3Yjk1
Y2EwNDk5YTc4ODRhY2YwOGZjNWI3NzUyY2Y2ZmEzZjE5ZjQxLi43MTdlODhmYjM5YjNmNjQzMjYz
MjczOTY2MTM4MTYwMjZhZTJiYjU4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvTGF1bmNoZXIvcXQvVGhyZWFkTGF1bmNoZXJRdC5jcHAKKysrIGIvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL0xhdW5jaGVyL3F0L1RocmVhZExhdW5jaGVyUXQuY3BwCkBAIC0yNyw5ICsyNyw5
IEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiVGhyZWFkTGF1bmNoZXIuaCIKIAot
I2luY2x1ZGUgIlJ1bkxvb3AuaCIKICNpbmNsdWRlICJXZWJQcm9jZXNzLmgiCiAjaW5jbHVkZSA8
cnVudGltZS9Jbml0aWFsaXplVGhyZWFkaW5nLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9SdW5Mb29w
Lmg+CiAjaW5jbHVkZSA8d3RmL01haW5UaHJlYWQuaD4KICNpbmNsdWRlIDx3dGYvVGhyZWFkaW5n
Lmg+CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9MYXVuY2hlci93aW4v
UHJvY2Vzc0xhdW5jaGVyV2luLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9MYXVuY2hl
ci93aW4vUHJvY2Vzc0xhdW5jaGVyV2luLmNwcAppbmRleCBkNTI2YzAzMDc4ZDU3Y2JhZGZhMjg5
NTg1MTYwODYzNzg1ZTA1NTQ2Li41MWJiMWJkNGUwMzI5MzNiYTY0N2ExMWJlZTJjODRhMTVjMWNh
YWZlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvTGF1bmNoZXIvd2luL1By
b2Nlc3NMYXVuY2hlcldpbi5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0xhdW5j
aGVyL3dpbi9Qcm9jZXNzTGF1bmNoZXJXaW4uY3BwCkBAIC0yNyw4ICsyNyw4IEBACiAjaW5jbHVk
ZSAiUHJvY2Vzc0xhdW5jaGVyLmgiCiAKICNpbmNsdWRlICJDb25uZWN0aW9uLmgiCi0jaW5jbHVk
ZSAiUnVuTG9vcC5oIgogI2luY2x1ZGUgPHNobHdhcGkuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL1J1
bkxvb3AuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KIAogI2lmZGVmIERFQlVH
X0FMTApAQCAtNDMsNiArNDMsOCBAQCBjb25zdCBMUENXU1RSIHdlYktpdERMTE5hbWUgPSBMIldl
YktpdF9kZWJ1Zy5kbGwiOwogY29uc3QgTFBDV1NUUiB3ZWJLaXRETExOYW1lID0gTCJXZWJLaXQu
ZGxsIjsKICNlbmRpZgogCit1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKKwogbmFtZXNwYWNlIFdl
YktpdCB7CiAKIHZvaWQgUHJvY2Vzc0xhdW5jaGVyOjpsYXVuY2hQcm9jZXNzKCkKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9MYXVuY2hlci93aW4vVGhyZWFkTGF1bmNoZXJX
aW4uY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0xhdW5jaGVyL3dpbi9UaHJlYWRMYXVu
Y2hlcldpbi5jcHAKaW5kZXggMjU5Njk5OGVhMjM5MjBhMTNkOTVlMWZlYjdjZmEyYmVjMWQ1OWNi
ZC4uMWViMzcyZmE4Njc1OTQyOWViOTQ0NjIyZTZiYTU1ZDAxYTNmNTliZSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0xhdW5jaGVyL3dpbi9UaHJlYWRMYXVuY2hlcldpbi5j
cHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0xhdW5jaGVyL3dpbi9UaHJlYWRMYXVu
Y2hlcldpbi5jcHAKQEAgLTI2LDkgKzI2LDkgQEAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNs
dWRlICJUaHJlYWRMYXVuY2hlci5oIgogCi0jaW5jbHVkZSAiUnVuTG9vcC5oIgogI2luY2x1ZGUg
IldlYlByb2Nlc3MuaCIKICNpbmNsdWRlIDxydW50aW1lL0luaXRpYWxpemVUaHJlYWRpbmcuaD4K
KyNpbmNsdWRlIDxXZWJDb3JlL1J1bkxvb3AuaD4KICNpbmNsdWRlIDx3dGYvTWFpblRocmVhZC5o
PgogI2luY2x1ZGUgPHd0Zi9UaHJlYWRpbmcuaD4KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL0xheWVyVHJlZUhvc3RQcm94eS5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL0xheWVyVHJlZUhvc3RQcm94eS5oCmluZGV4IGQ1MjgxZDM4MmYyMGQ2MTExZTRkZjMyNmY5
MDYxMWI3MjYwZGFhMjcuLmJiMmZkYmIwMzkzMmNmZjJlMGQ2ZmRiYTA3ZjQyMzY3NzdkNWNkM2Yg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9MYXllclRyZWVIb3N0UHJveHku
aAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvTGF5ZXJUcmVlSG9zdFByb3h5LmgKQEAg
LTI0LDEyICsyNCwxMiBAQAogI2luY2x1ZGUgIkRyYXdpbmdBcmVhUHJveHkuaCIKICNpbmNsdWRl
ICJNZXNzYWdlUXVldWUuaCIKICNpbmNsdWRlICJSZWdpb24uaCIKLSNpbmNsdWRlICJSdW5Mb29w
LmgiCiAjaW5jbHVkZSAiV2ViTGF5ZXJUcmVlSW5mby5oIgogI2luY2x1ZGUgPFdlYkNvcmUvR3Jh
cGhpY3NDb250ZXh0Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9HcmFwaGljc0xheWVyLmg+CiAjaW5j
bHVkZSA8V2ViQ29yZS9JbnRSZWN0Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9JbnRTaXplLmg+Cisj
aW5jbHVkZSA8V2ViQ29yZS9SdW5Mb29wLmg+CiAjaW5jbHVkZSA8d3RmL0hhc2hTZXQuaD4KIAog
I2lmIFVTRShURVhUVVJFX01BUFBFUikKQEAgLTgzLDcgKzgzLDcgQEAgcHJvdGVjdGVkOgogICAg
IHZpcnR1YWwgYm9vbCBzaG93UmVwYWludENvdW50ZXIoKSBjb25zdCB7IHJldHVybiBmYWxzZTsg
fQogICAgIHZvaWQgcGFpbnRDb250ZW50cyhjb25zdCBXZWJDb3JlOjpHcmFwaGljc0xheWVyKiwg
V2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0JiwgV2ViQ29yZTo6R3JhcGhpY3NMYXllclBhaW50aW5n
UGhhc2UsIGNvbnN0IFdlYkNvcmU6OkludFJlY3QmKSB7IH0KIAotICAgIFJ1bkxvb3A6OlRpbWVy
PExheWVyVHJlZUhvc3RQcm94eT4gbV9hbmltYXRpb25UaW1lcjsKKyAgICBXZWJDb3JlOjpSdW5M
b29wOjpUaW1lcjxMYXllclRyZWVIb3N0UHJveHk+IG1fYW5pbWF0aW9uVGltZXI7CiAgICAgRHJh
d2luZ0FyZWFQcm94eSogbV9kcmF3aW5nQXJlYVByb3h5OwogCiAgICAgdHlwZWRlZiBIYXNoTWFw
PFdlYkxheWVySUQsIFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXIqPiBMYXllck1hcDsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9QbHVnaW5zL1BsdWdpblByb2Nlc3NQcm94eS5j
cHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvUGx1Z2lucy9QbHVnaW5Qcm9jZXNzUHJveHku
Y3BwCmluZGV4IDQxYzdhNDdjYjkwMDY0ZGE5Y2MwOTkzMjRlOWU4MGQxNmU4MTY0YzEuLjU0ODJk
ODRkMjlmNjQwOTAzOTZmMjk1MjEwNzBlNWNlZmQ2ZGZiMDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9QbHVnaW5zL1BsdWdpblByb2Nlc3NQcm94eS5jcHAKKysrIGIvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL1BsdWdpbnMvUGx1Z2luUHJvY2Vzc1Byb3h5LmNwcApAQCAt
MzEsMTggKzMxLDIwIEBACiAjaW5jbHVkZSAiUGx1Z2luUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVy
cy5oIgogI2luY2x1ZGUgIlBsdWdpblByb2Nlc3NNYW5hZ2VyLmgiCiAjaW5jbHVkZSAiUGx1Z2lu
UHJvY2Vzc01lc3NhZ2VzLmgiCi0jaW5jbHVkZSAiUnVuTG9vcC5oIgogI2luY2x1ZGUgIldlYkNv
bnRleHQuaCIKICNpbmNsdWRlICJXZWJDb3JlQXJndW1lbnRDb2RlcnMuaCIKICNpbmNsdWRlICJX
ZWJQbHVnaW5TaXRlRGF0YU1hbmFnZXIuaCIKICNpbmNsdWRlICJXZWJQcm9jZXNzTWVzc2FnZXMu
aCIKICNpbmNsdWRlICJXZWJQcm9jZXNzUHJveHkuaCIKICNpbmNsdWRlIDxXZWJDb3JlL05vdElt
cGxlbWVudGVkLmg+CisjaW1wb3J0IDxXZWJDb3JlL1J1bkxvb3AuaD4KIAogI2lmIFBMQVRGT1JN
KE1BQykKICNpbmNsdWRlICJNYWNoUG9ydC5oIgogI2VuZGlmCiAKK3VzaW5nIG5hbWVzcGFjZSBX
ZWJDb3JlOworCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAogUGFzc093blB0cjxQbHVnaW5Qcm9jZXNz
UHJveHk+IFBsdWdpblByb2Nlc3NQcm94eTo6Y3JlYXRlKFBsdWdpblByb2Nlc3NNYW5hZ2VyKiBQ
bHVnaW5Qcm9jZXNzTWFuYWdlciwgY29uc3QgUGx1Z2luTW9kdWxlSW5mbyYgcGx1Z2luSW5mbykK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9SZXNwb25zaXZlbmVzc1RpbWVy
LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9SZXNwb25zaXZlbmVzc1RpbWVyLmNwcApp
bmRleCAwNTdjYzc0MzU0YTE0ZTU3ZGMyZmUxZjNiODY3NDMzYWNjMzdjZDAxLi44NzgzOGNhMjYy
ODA3N2FiODdjODEyZjIwYmRkZWE4MjIxMGUxYjZjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvUmVzcG9uc2l2ZW5lc3NUaW1lci5jcHAKKysrIGIvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL1Jlc3BvbnNpdmVuZXNzVGltZXIuY3BwCkBAIC0yNiw2ICsyNiw4IEBACiAjaW5j
bHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiUmVzcG9uc2l2ZW5lc3NUaW1lci5oIgogCit1c2lu
ZyBuYW1lc3BhY2UgV2ViQ29yZTsKKwogbmFtZXNwYWNlIFdlYktpdCB7CiAKIHN0YXRpYyBjb25z
dCBkb3VibGUga1Jlc3BvbnNpdmVuZXNzVGltZW91dCA9IDM7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvUmVzcG9uc2l2ZW5lc3NUaW1lci5oIGIvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL1Jlc3BvbnNpdmVuZXNzVGltZXIuaAppbmRleCA2NTkxOTE2MTJmODAxYjE0ZDlk
ODgxMjJhY2I0ZWIzOGI1ZWE2ZTViLi4zNjczMzE1MWZjODdmNjdkMTcyYTI4M2ZlMDMwYTY4NmU3
ZWI0M2E5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvUmVzcG9uc2l2ZW5l
c3NUaW1lci5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9SZXNwb25zaXZlbmVzc1Rp
bWVyLmgKQEAgLTI2LDcgKzI2LDcgQEAKICNpZm5kZWYgUmVzcG9uc2l2ZW5lc3NUaW1lcl9oCiAj
ZGVmaW5lIFJlc3BvbnNpdmVuZXNzVGltZXJfaAogCi0jaW5jbHVkZSAiUnVuTG9vcC5oIgorI2lu
Y2x1ZGUgPFdlYkNvcmUvUnVuTG9vcC5oPgogCiBuYW1lc3BhY2UgV2ViS2l0IHsKIApAQCAtNTUs
NyArNTUsNyBAQCBwcml2YXRlOgogICAgIFJlc3BvbnNpdmVuZXNzVGltZXI6OkNsaWVudCogbV9j
bGllbnQ7CiAgICAgYm9vbCBtX2lzUmVzcG9uc2l2ZTsKIAotICAgIFJ1bkxvb3A6OlRpbWVyPFJl
c3BvbnNpdmVuZXNzVGltZXI+IG1fdGltZXI7CisgICAgV2ViQ29yZTo6UnVuTG9vcDo6VGltZXI8
UmVzcG9uc2l2ZW5lc3NUaW1lcj4gbV90aW1lcjsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktp
dApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1RpbGVkRHJhd2luZ0FyZWFQ
cm94eS5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1RpbGVkRHJhd2luZ0FyZWFQcm94eS5o
CmluZGV4IDg1NTk3N2RlOWMyNTAyN2ZhYzJiMmQ2MjU4ZWQzZDU0ODM2NzBiYjEuLjBmY2NjZjRl
MTg1NmZkZTU3M2MyZDY4MjNiZDZiOTczMGRiNmQ0MWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9UaWxlZERyYXdpbmdBcmVhUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvVGlsZWREcmF3aW5nQXJlYVByb3h5LmgKQEAgLTMxLDEwICszMSw5IEBACiAj
aW5jbHVkZSAiRHJhd2luZ0FyZWFQcm94eS5oIgogI2luY2x1ZGUgPFdlYkNvcmUvR3JhcGhpY3ND
b250ZXh0Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9JbnRSZWN0Lmg+CisjaW5jbHVkZSA8V2ViQ29y
ZS9SdW5Mb29wLmg+CiAjaW5jbHVkZSA8d3RmL0hhc2hTZXQuaD4KIAotI2luY2x1ZGUgIlJ1bkxv
b3AuaCIKLQogI2lmIFBMQVRGT1JNKE1BQykKICNpbmNsdWRlIDx3dGYvUmV0YWluUHRyLmg+CiAj
aWZkZWYgX19PQkpDX18KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9WaXNp
dGVkTGlua1Byb3ZpZGVyLmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvVmlzaXRlZExpbmtQ
cm92aWRlci5oCmluZGV4IGE0MjhkNWI4MzZiODBhYTMyZWRjNTM3Y2UwZGEwNjY3Zjg2OTZhYjEu
LjQ2MWM1YWM5NGU3YzJjNGU2MGIyOTJlMjU4YmJkNDNhZGQzMjA5ZjEgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9WaXNpdGVkTGlua1Byb3ZpZGVyLmgKKysrIGIvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL1Zpc2l0ZWRMaW5rUHJvdmlkZXIuaApAQCAtMjYsOSArMjYsOSBA
QAogI2lmbmRlZiBWaXNpdGVkTGlua1Byb3ZpZGVyX2gKICNkZWZpbmUgVmlzaXRlZExpbmtQcm92
aWRlcl9oCiAKLSNpbmNsdWRlICJSdW5Mb29wLmgiCiAjaW5jbHVkZSAiVmlzaXRlZExpbmtUYWJs
ZS5oIgogI2luY2x1ZGUgPFdlYkNvcmUvTGlua0hhc2guaD4KKyNpbmNsdWRlIDxXZWJDb3JlL1J1
bkxvb3AuaD4KICNpbmNsdWRlIDx3dGYvRm9yd2FyZC5oPgogI2luY2x1ZGUgPHd0Zi9IYXNoU2V0
Lmg+CiAKQEAgLTU4LDcgKzU4LDcgQEAgcHJpdmF0ZToKICAgICBWaXNpdGVkTGlua1RhYmxlIG1f
dGFibGU7CiAKICAgICBIYXNoU2V0PFdlYkNvcmU6OkxpbmtIYXNoLCBXZWJDb3JlOjpMaW5rSGFz
aEhhc2g+IG1fcGVuZGluZ1Zpc2l0ZWRMaW5rczsKLSAgICBSdW5Mb29wOjpUaW1lcjxWaXNpdGVk
TGlua1Byb3ZpZGVyPiBtX3BlbmRpbmdWaXNpdGVkTGlua3NUaW1lcjsKKyAgICBXZWJDb3JlOjpS
dW5Mb29wOjpUaW1lcjxWaXNpdGVkTGlua1Byb3ZpZGVyPiBtX3BlbmRpbmdWaXNpdGVkTGlua3NU
aW1lcjsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL1dlYkNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuY3BwIGIvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL1dlYkNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuY3BwCmluZGV4IGIxZDEw
M2ZiY2UxZDJmNTlkMTI5ZWZmZTIxZGYwODI5NjhjYmIwNWYuLmJlODE0YzBhOWFkMjE2MGRmMzYy
MjhjYmE3MTYxODMzYzk0N2FjYzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9XZWJDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvV2ViQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5jcHAKQEAgLTMwLDYgKzMwLDggQEAKICNp
bmNsdWRlICJXZWJDb250ZXh0VXNlck1lc3NhZ2VDb2RlcnMuaCIKICNpbmNsdWRlICJXZWJQcm9j
ZXNzUHJveHkuaCIKIAordXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CisKIG5hbWVzcGFjZSBXZWJL
aXQgewogCiBQYXNzUmVmUHRyPFdlYkNvbm5lY3Rpb25Ub1dlYlByb2Nlc3M+IFdlYkNvbm5lY3Rp
b25Ub1dlYlByb2Nlc3M6OmNyZWF0ZShXZWJQcm9jZXNzUHJveHkqIHByb2Nlc3MsIENvcmVJUEM6
OkNvbm5lY3Rpb246OklkZW50aWZpZXIgY29ubmVjdGlvbklkZW50aWZpZXIsIFJ1bkxvb3AqIHJ1
bkxvb3ApCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViQ29ubmVjdGlv
blRvV2ViUHJvY2Vzcy5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkNvbm5lY3Rpb25U
b1dlYlByb2Nlc3MuaAppbmRleCBiOWQ1OGYyYzcwMzBiNjI1Nzk3YjAzYTY4NWYxOGY5ZTc0YjZj
ZWNjLi5mNDk2MmUyNmNjMDM5MDZkNTY3ZjE3YmFhNmRmYTAxMWQ1OTUzODNmIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5oCisr
KyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmgK
QEAgLTM1LDE0ICszNSwxNCBAQCBjbGFzcyBXZWJQcm9jZXNzUHJveHk7CiAKIGNsYXNzIFdlYkNv
bm5lY3Rpb25Ub1dlYlByb2Nlc3MgOiBwdWJsaWMgV2ViQ29ubmVjdGlvbiwgQ29yZUlQQzo6Q29u
bmVjdGlvbjo6Q2xpZW50IHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxXZWJDb25u
ZWN0aW9uVG9XZWJQcm9jZXNzPiBjcmVhdGUoV2ViUHJvY2Vzc1Byb3h5KiwgQ29yZUlQQzo6Q29u
bmVjdGlvbjo6SWRlbnRpZmllciwgUnVuTG9vcCopOworICAgIHN0YXRpYyBQYXNzUmVmUHRyPFdl
YkNvbm5lY3Rpb25Ub1dlYlByb2Nlc3M+IGNyZWF0ZShXZWJQcm9jZXNzUHJveHkqLCBDb3JlSVBD
OjpDb25uZWN0aW9uOjpJZGVudGlmaWVyLCBXZWJDb3JlOjpSdW5Mb29wKik7CiAKICAgICBDb3Jl
SVBDOjpDb25uZWN0aW9uKiBjb25uZWN0aW9uKCkgeyByZXR1cm4gbV9jb25uZWN0aW9uLmdldCgp
OyB9CiAKICAgICB2b2lkIGludmFsaWRhdGUoKTsKIAogcHJpdmF0ZToKLSAgICBXZWJDb25uZWN0
aW9uVG9XZWJQcm9jZXNzKFdlYlByb2Nlc3NQcm94eSosIENvcmVJUEM6OkNvbm5lY3Rpb246Oklk
ZW50aWZpZXIsIFJ1bkxvb3AqKTsKKyAgICBXZWJDb25uZWN0aW9uVG9XZWJQcm9jZXNzKFdlYlBy
b2Nlc3NQcm94eSosIENvcmVJUEM6OkNvbm5lY3Rpb246OklkZW50aWZpZXIsIFdlYkNvcmU6OlJ1
bkxvb3AqKTsKIAogICAgIC8vIFdlYkNvbm5lY3Rpb24KICAgICB2aXJ0dWFsIHZvaWQgcG9zdE1l
c3NhZ2UoY29uc3QgU3RyaW5nJiwgQVBJT2JqZWN0Kik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvV2ViQ29udGV4dC5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
V2ViQ29udGV4dC5jcHAKaW5kZXggMThiY2ExMTZhYTUxMjkyY2FmMDEwYTQzOTVlNzljZGU3NmVl
ZjVmOC4uNmQ5NjFlMmI4MmQ2YjEwMWJhMWY2Yjk4ZjJjN2YyOGI2YzdiMzU4NSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkNvbnRleHQuY3BwCisrKyBiL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9XZWJDb250ZXh0LmNwcApAQCAtMzEsNyArMzEsNiBAQAogI2luY2x1
ZGUgIkluamVjdGVkQnVuZGxlTWVzc2FnZUtpbmRzLmgiCiAjaW5jbHVkZSAiTG9nZ2luZy5oIgog
I2luY2x1ZGUgIk11dGFibGVEaWN0aW9uYXJ5LmgiCi0jaW5jbHVkZSAiUnVuTG9vcC5oIgogI2lu
Y2x1ZGUgIlNhbmRib3hFeHRlbnNpb24uaCIKICNpbmNsdWRlICJTdGF0aXN0aWNzRGF0YS5oIgog
I2luY2x1ZGUgIlRleHRDaGVja2VyLmgiCkBAIC01OCw2ICs1Nyw3IEBACiAjaW5jbHVkZSA8V2Vi
Q29yZS9MaW5rSGFzaC5oPgogI2luY2x1ZGUgPFdlYkNvcmUvTG9nZ2luZy5oPgogI2luY2x1ZGUg
PFdlYkNvcmUvUmVzb3VyY2VSZXF1ZXN0Lmg+CisjaW5jbHVkZSA8V2ViQ29yZS9SdW5Mb29wLmg+
CiAjaW5jbHVkZSA8cnVudGltZS9Jbml0aWFsaXplVGhyZWFkaW5nLmg+CiAjaW5jbHVkZSA8d3Rm
L0N1cnJlbnRUaW1lLmg+CiAjaW5jbHVkZSA8d3RmL01haW5UaHJlYWQuaD4KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy93aW4vV2ViVmlldy5jcHAgYi9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3Mvd2luL1dlYlZpZXcuY3BwCmluZGV4IGQ0NGUyNTU2MGUyZTE1ODUxNWEwMmQz
ZDJmOTgzN2E1YjEwYjc1ZWMuLmU5YTNkMDRiMDg5Y2RjNGZkMTQwNDJjYTY3YzA4NDU2ODM4N2M3
ZmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy93aW4vV2ViVmlldy5jcHAK
KysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL3dpbi9XZWJWaWV3LmNwcApAQCAtMzIsMTEg
KzMyLDcgQEAKICNpbmNsdWRlICJOYXRpdmVXZWJLZXlib2FyZEV2ZW50LmgiCiAjaW5jbHVkZSAi
TmF0aXZlV2ViTW91c2VFdmVudC5oIgogI2luY2x1ZGUgIk5hdGl2ZVdlYldoZWVsRXZlbnQuaCIK
LSNpbmNsdWRlICJSdW5Mb29wLmgiCiAjaW5jbHVkZSAiV0tBUElDYXN0LmgiCi0jaWYgVVNFKENH
KQotI2luY2x1ZGUgIldLQ0FDRlZpZXdXaW5kb3cuaCIKLSNlbmRpZgogI2luY2x1ZGUgIldlYkNv
bnRleHQuaCIKICNpbmNsdWRlICJXZWJDb250ZXh0TWVudVByb3h5V2luLmgiCiAjaW5jbHVkZSAi
V2ViRWRpdENvbW1hbmRQcm94eS5oIgpAQCAtNDksMTggKzQ1LDIxIEBACiAjaW5jbHVkZSA8V2Vi
Q29yZS9EcmFnU2Vzc2lvbi5oPgogI2luY2x1ZGUgPFdlYkNvcmUvRWRpdG9yLmg+CiAjaW5jbHVk
ZSA8V2ViQ29yZS9GbG9hdFJlY3QuaD4KLSNpZiBVU0UoQ0cpCi0jaW5jbHVkZSA8V2ViQ29yZS9H
cmFwaGljc0NvbnRleHRDRy5oPgotI2VuZGlmCiAjaW5jbHVkZSA8V2ViQ29yZS9JbnRSZWN0Lmg+
CiAjaW5jbHVkZSA8V2ViQ29yZS9Ob3RJbXBsZW1lbnRlZC5oPgogI2luY2x1ZGUgPFdlYkNvcmUv
UmVnaW9uLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9SdW5Mb29wLmg+CiAjaW5jbHVkZSA8V2ViQ29y
ZS9Tb2Z0TGlua2luZy5oPgogI2luY2x1ZGUgPFdlYkNvcmUvV2ViQ29yZUluc3RhbmNlSGFuZGxl
Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9XaW5kb3dNZXNzYWdlQnJvYWRjYXN0ZXIuaD4KICNpbmNs
dWRlIDxXZWJDb3JlL1dpbmRvd3NUb3VjaC5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmlu
Zy5oPgogCisjaWYgVVNFKENHKQorI2luY2x1ZGUgIldLQ0FDRlZpZXdXaW5kb3cuaCIKKyNpbmNs
dWRlIDxXZWJDb3JlL0dyYXBoaWNzQ29udGV4dENHLmg+CisjZW5kaWYKKwogI2lmIEVOQUJMRShG
VUxMU0NSRUVOX0FQSSkKICNpbmNsdWRlICJXZWJGdWxsU2NyZWVuTWFuYWdlclByb3h5LmgiCiAj
aW5jbHVkZSA8V2ViQ29yZS9GdWxsU2NyZWVuQ29udHJvbGxlci5oPgpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdDIvV2ViS2l0Mi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dl
YktpdDIvV2ViS2l0Mi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IGY4NTFlZGM3NGE2
MjVlNTNiZTY5M2YwYmEyMGU0ZTczYzRkMmRlOGQuLjMzYWE4MTM1M2U0YjA4NjU1YWIzNTlhZGIx
ZGJkMDdiNWY4ZGZhMTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYktpdDIueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJLaXQyLnhjb2RlcHJv
ai9wcm9qZWN0LnBieHByb2oKQEAgLTQ2NSw3ICs0NjUsNiBAQAogCQlCNjM0MDNGOTE0OTEwRDU3
MDAxMDcwQjUgLyogQVBJT2JqZWN0LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IEI2MzQwM0Y4MTQ5MTBENTcwMDEwNzBCNSAvKiBBUElPYmplY3QuY3Bw
ICovOyB9OwogCQlCODc4QjYxNTEzMzQyOERDMDA2ODg4RTkgLyogQ29ycmVjdGlvblBhbmVsLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCODc4QjYxMzEz
MzQyOERDMDA2ODg4RTkgLyogQ29ycmVjdGlvblBhbmVsLmggKi87IH07CiAJCUI4NzhCNjE2MTMz
NDI4REMwMDY4ODhFOSAvKiBDb3JyZWN0aW9uUGFuZWwubW0gaW4gU291cmNlcyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCODc4QjYxNDEzMzQyOERDMDA2ODg4RTkgLyogQ29y
cmVjdGlvblBhbmVsLm1tICovOyB9OwotCQlCQzAwOTJGNzExNTgzN0EzMDBFMEFFMkEgLyogUnVu
TG9vcE1hYy5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IEJDMDA5MkY1MTE1ODM3QTMwMEUwQUUyQSAvKiBSdW5Mb29wTWFjLm1tICovOyB9OwogCQlCQzAw
OTJGODExNTgzN0EzMDBFMEFFMkEgLyogV29ya1F1ZXVlTWFjLmNwcCBpbiBTb3VyY2VzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDMDA5MkY2MTE1ODM3QTMwMEUwQUUyQSAv
KiBXb3JrUXVldWVNYWMuY3BwICovOyB9OwogCQlCQzAzMkQ3NTEwRjQzNzhEMDA1OEMxNUEgLyog
V2ViQ2hyb21lQ2xpZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSBCQzAzMkQ2MDEwRjQzNzhEMDA1OEMxNUEgLyogV2ViQ2hyb21lQ2xpZW50LmggKi87
IH07CiAJCUJDMDMyRDc3MTBGNDM3OEQwMDU4QzE1QSAvKiBXZWJDb250ZXh0TWVudUNsaWVudC5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkMwMzJENjIx
MEY0Mzc4RDAwNThDMTVBIC8qIFdlYkNvbnRleHRNZW51Q2xpZW50LmggKi87IH07CkBAIC01NTks
OCArNTU4LDYgQEAKIAkJQkMyRDAyMTcxMkFDNDFDQjAwRTczMkEzIC8qIFNhbWVEb2N1bWVudE5h
dmlnYXRpb25UeXBlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSBCQzJEMDIxNjEyQUM0MUNCMDBFNzMyQTMgLyogU2FtZURvY3VtZW50TmF2aWdhdGlvblR5
cGUuaCAqLzsgfTsKIAkJQkMyRDAyMTkxMkFDNDI2QzAwRTczMkEzIC8qIFdLUGFnZUxvYWRUeXBl
cy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkMyRDAy
MTgxMkFDNDI2QzAwRTczMkEzIC8qIFdLUGFnZUxvYWRUeXBlcy5oICovOyBzZXR0aW5ncyA9IHtB
VFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCUJDMkRGQkEzMTJBNzYxQTUwMEU3MzJB
MyAvKiBXZWJQcmVmZXJlbmNlc0NGLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IEJDMkRGQkEyMTJBNzYxQTUwMEU3MzJBMyAvKiBXZWJQcmVmZXJlbmNl
c0NGLmNwcCAqLzsgfTsKLQkJQkMyRTZFODcxMTQxOTcxNTAwQTYzQjFFIC8qIFJ1bkxvb3AuY3Bw
IGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkMyRTZFNzcx
MTQxOTcwQzAwQTYzQjFFIC8qIFJ1bkxvb3AuY3BwICovOyB9OwotCQlCQzJFNkU4ODExNDE5NzE1
MDBBNjNCMUUgLyogUnVuTG9vcC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gQkMyRTZFNzgxMTQxOTcwQzAwQTYzQjFFIC8qIFJ1bkxvb3AuaCAqLzsgfTsK
IAkJQkMyRTZFOEQxMTQxOTcxNTAwQTYzQjFFIC8qIFdvcmtRdWV1ZS5jcHAgaW4gU291cmNlcyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCQzJFNkU3RDExNDE5NzBDMDBBNjNC
MUUgLyogV29ya1F1ZXVlLmNwcCAqLzsgfTsKIAkJQkMyRTZFOEUxMTQxOTcxNTAwQTYzQjFFIC8q
IFdvcmtRdWV1ZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gQkMyRTZFN0UxMTQxOTcwQzAwQTYzQjFFIC8qIFdvcmtRdWV1ZS5oICovOyB9OwogCQlCQzMw
NjVDNDEyNTkyRjg5MDBFNzEyNzggLyogV2ViUHJvY2Vzc01hYy5tbSBpbiBTb3VyY2VzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDMzA2NUMzMTI1OTJGODkwMEU3MTI3OCAv
KiBXZWJQcm9jZXNzTWFjLm1tICovOyB9OwpAQCAtMTQ4Myw3ICsxNDgwLDYgQEAKIAkJQjYzNDAz
RjgxNDkxMEQ1NzAwMTA3MEI1IC8qIEFQSU9iamVjdC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5jcHA7IHBhdGggPSBBUElPYmplY3QuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQlCODc4QjYxMzEzMzQyOERDMDA2ODg4RTkgLyogQ29ycmVjdGlvblBhbmVsLmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IENvcnJlY3Rpb25QYW5lbC5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQlCODc4QjYxNDEzMzQyOERDMDA2ODg4RTkgLyogQ29ycmVjdGlv
blBhbmVsLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gQ29ycmVj
dGlvblBhbmVsLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQlCQzAwOTJGNTExNTgz
N0EzMDBFMEFFMkEgLyogUnVuTG9vcE1hYy5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9i
amNwcDsgcGF0aCA9IFJ1bkxvb3BNYWMubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CUJDMDA5MkY2MTE1ODM3QTMwMEUwQUUyQSAvKiBXb3JrUXVldWVNYWMuY3BwICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gV29ya1F1ZXVlTWFjLmNwcDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJQkMwMzJENjAxMEY0Mzc4RDAwNThDMTVBIC8qIFdlYkNocm9tZUNs
aWVudC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJDaHJvbWVDbGllbnQu
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQkMwMzJENjIxMEY0Mzc4RDAwNThDMTVB
IC8qIFdlYkNvbnRleHRNZW51Q2xpZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IFdlYkNvbnRleHRNZW51Q2xpZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBA
IC0xNTgzLDggKzE1NzksNiBAQAogCQlCQzJEMDIxNjEyQUM0MUNCMDBFNzMyQTMgLyogU2FtZURv
Y3VtZW50TmF2aWdhdGlvblR5cGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
U2FtZURvY3VtZW50TmF2aWdhdGlvblR5cGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJQkMyRDAyMTgxMkFDNDI2QzAwRTczMkEzIC8qIFdLUGFnZUxvYWRUeXBlcy5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXS1BhZ2VMb2FkVHlwZXMuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJQkMyREZCQTIxMkE3NjFBNTAwRTczMkEzIC8qIFdlYlByZWZlcmVu
Y2VzQ0YuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0gV2ViUHJlZmVy
ZW5jZXNDRi5jcHA7IHBhdGggPSBjZi9XZWJQcmVmZXJlbmNlc0NGLmNwcDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKLQkJQkMyRTZFNzcxMTQxOTcwQzAwQTYzQjFFIC8qIFJ1bkxvb3AuY3Bw
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUnVuTG9vcC5jcHA7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCUJDMkU2RTc4MTE0MTk3MEMwMEE2M0IxRSAvKiBSdW5M
b29wLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJ1bkxvb3AuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQkMyRTZFN0QxMTQxOTcwQzAwQTYzQjFFIC8qIFdvcmtR
dWV1ZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXb3JrUXVldWUu
Y3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlCQzJFNkU3RTExNDE5NzBDMDBBNjNC
MUUgLyogV29ya1F1ZXVlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdvcmtR
dWV1ZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlCQzMwNjVDMzEyNTkyRjg5MDBF
NzEyNzggLyogV2ViUHJvY2Vzc01hYy5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNw
cDsgcGF0aCA9IFdlYlByb2Nlc3NNYWMubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBA
IC0yMjYwLDcgKzIyNTQsNiBAQAogCQkJCTFBMjRCNUYwMTFGNTMxRTgwMEMzODI2OSAvKiBNYWNo
VXRpbGl0aWVzLmNwcCAqLywKIAkJCQkxQTI0QjVGMTExRjUzMUU4MDBDMzgyNjkgLyogTWFjaFV0
aWxpdGllcy5oICovLAogCQkJCUMwRTNBQTQ4MTIwOUU0NTAwMEE0OUQwMSAvKiBNb2R1bGVNYWMu
bW0gKi8sCi0JCQkJQkMwMDkyRjUxMTU4MzdBMzAwRTBBRTJBIC8qIFJ1bkxvb3BNYWMubW0gKi8s
CiAJCQkJMUEyNEJGMzkxMjA4OTZBNjAwRkJCMDU5IC8qIFNoYXJlZE1lbW9yeU1hYy5jcHAgKi8s
CiAJCQkJQkMwMDkyRjYxMTU4MzdBMzAwRTBBRTJBIC8qIFdvcmtRdWV1ZU1hYy5jcHAgKi8sCiAJ
CQkpOwpAQCAtMzI4Miw4ICszMjc1LDYgQEAKIAkJCQlDMEUzQUE0NTEyMDlFMkJBMDBBNDlEMDEg
LyogTW9kdWxlLmNwcCAqLywKIAkJCQlDMEUzQUE0NDEyMDlFMkJBMDBBNDlEMDEgLyogTW9kdWxl
LmggKi8sCiAJCQkJQkM4NzgwRkIxMTYxQzJCODAwQ0MyNzY4IC8qIFBsYXRmb3JtUHJvY2Vzc0lk
ZW50aWZpZXIuaCAqLywKLQkJCQlCQzJFNkU3NzExNDE5NzBDMDBBNjNCMUUgLyogUnVuTG9vcC5j
cHAgKi8sCi0JCQkJQkMyRTZFNzgxMTQxOTcwQzAwQTYzQjFFIC8qIFJ1bkxvb3AuaCAqLywKIAkJ
CQkxQTI0QkVEMzEyMDg5NEQxMDBGQkIwNTkgLyogU2hhcmVkTWVtb3J5LmggKi8sCiAJCQkJQkMy
RTZFN0QxMTQxOTcwQzAwQTYzQjFFIC8qIFdvcmtRdWV1ZS5jcHAgKi8sCiAJCQkJQkMyRTZFN0Ux
MTQxOTcwQzAwQTYzQjFFIC8qIFdvcmtRdWV1ZS5oICovLApAQCAtMzg0OCw3ICszODM5LDYgQEAK
IAkJCQlCQzFBN0M1ODExMzZFMTlDMDBGQjcxNjcgLyogUHJvY2Vzc0xhdW5jaGVyLmggaW4gSGVh
ZGVycyAqLywKIAkJCQlCQzU5NzA3NTExNjU5MUQwMDA1NTFGQ0EgLyogUHJvY2Vzc01vZGVsLmgg
aW4gSGVhZGVycyAqLywKIAkJCQkxQTMwMDY2RTExMTBGNEY3MDAzMTkzN0MgLyogUmVzcG9uc2l2
ZW5lc3NUaW1lci5oIGluIEhlYWRlcnMgKi8sCi0JCQkJQkMyRTZFODgxMTQxOTcxNTAwQTYzQjFF
IC8qIFJ1bkxvb3AuaCBpbiBIZWFkZXJzICovLAogCQkJCUJDMkQwMjE3MTJBQzQxQ0IwMEU3MzJB
MyAvKiBTYW1lRG9jdW1lbnROYXZpZ2F0aW9uVHlwZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMUFB
QjRBOEQxMjk2RjBBMjAwMjM5NTJGIC8qIFNhbmRib3hFeHRlbnNpb24uaCBpbiBIZWFkZXJzICov
LAogCQkJCTUxRDEzMDU0MTM4MkVBQzAwMDM1MUVERCAvKiBTZWNJdGVtUmVxdWVzdERhdGEuaCBp
biBIZWFkZXJzICovLApAQCAtNDU4MSw4ICs0NTcxLDYgQEAKIAkJCQkxQUUxMTdGNjExREJCMzA5
MDA5ODE2MTUgLyogUHJvY2Vzc0xhdW5jaGVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUJDMTEx
QjFEMTEyRjVGRTYwMDMzN0JBQiAvKiBQcm9jZXNzTGF1bmNoZXJNYWMubW0gaW4gU291cmNlcyAq
LywKIAkJCQlCQzExMUIwOTExMkY1RTNDMDAzMzdCQUIgLyogUmVzcG9uc2l2ZW5lc3NUaW1lci5j
cHAgaW4gU291cmNlcyAqLywKLQkJCQlCQzJFNkU4NzExNDE5NzE1MDBBNjNCMUUgLyogUnVuTG9v
cC5jcHAgaW4gU291cmNlcyAqLywKLQkJCQlCQzAwOTJGNzExNTgzN0EzMDBFMEFFMkEgLyogUnVu
TG9vcE1hYy5tbSBpbiBTb3VyY2VzICovLAogCQkJCTFBQUI0QUFBMTI5NkYxNTQwMDIzOTUyRiAv
KiBTYW5kYm94RXh0ZW5zaW9uTWFjLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJNTFEMTMwNTMxMzgy
RUFDMDAwMzUxRUREIC8qIFNlY0l0ZW1SZXF1ZXN0RGF0YS5jcHAgaW4gU291cmNlcyAqLywKIAkJ
CQk1MUQxMzA1NTEzODJFQUMwMDAzNTFFREQgLyogU2VjSXRlbVJlc3BvbnNlRGF0YS5jcHAgaW4g
U291cmNlcyAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lu
cy9OZXRzY2FwZS9OUFJ1bnRpbWVPYmplY3RNYXAuaCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nl
c3MvUGx1Z2lucy9OZXRzY2FwZS9OUFJ1bnRpbWVPYmplY3RNYXAuaAppbmRleCBiZWY3MDFiZWU3
OTU2ODI2Yzg4NjA0MmUwZTc4MjJjMzRlODQ1N2YyLi5kZWZmZDU0MzE3ZDE3YzUxODc1YjFlNzJm
OTU5Njg1NDY3MGMwMzZkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1Bs
dWdpbnMvTmV0c2NhcGUvTlBSdW50aW1lT2JqZWN0TWFwLmgKKysrIGIvU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9QbHVnaW5zL05ldHNjYXBlL05QUnVudGltZU9iamVjdE1hcC5oCkBAIC0yNiw5
ICsyNiw3IEBACiAjaWZuZGVmIE5QSlNPYmplY3RXcmFwcGVyTWFwX2gKICNkZWZpbmUgTlBKU09i
amVjdFdyYXBwZXJNYXBfaAogCi0KLSNpbmNsdWRlICJSdW5Mb29wLmgiCi0KKyNpbmNsdWRlIDxX
ZWJDb3JlL1J1bkxvb3AuaD4KICNpbmNsdWRlIDxoZWFwL1dlYWsuaD4KICNpbmNsdWRlIDx3dGYv
Rm9yd2FyZC5oPgogI2luY2x1ZGUgPHd0Zi9IYXNoTWFwLmg+CkBAIC05OCw3ICs5Niw3IEBAIHBy
aXZhdGU6CiAgICAgSGFzaE1hcDxKU0M6OkpTT2JqZWN0KiwgTlBKU09iamVjdCo+IG1fbnBKU09i
amVjdHM7CiAgICAgSGFzaE1hcDxOUE9iamVjdCosIEpTQzo6V2VhazxKU05QT2JqZWN0PiA+IG1f
anNOUE9iamVjdHM7CiAgICAgVmVjdG9yPE5QT2JqZWN0Kj4gbV9ucE9iamVjdHNUb0ZpbmFsaXpl
OwotICAgIFJ1bkxvb3A6OlRpbWVyPE5QUnVudGltZU9iamVjdE1hcD4gbV9maW5hbGl6YXRpb25U
aW1lcjsKKyAgICBXZWJDb3JlOjpSdW5Mb29wOjpUaW1lcjxOUFJ1bnRpbWVPYmplY3RNYXA+IG1f
ZmluYWxpemF0aW9uVGltZXI7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9OZXRzY2FwZS9OZXRzY2FwZVBs
dWdpbi5oIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL05ldHNjYXBlL05ldHNj
YXBlUGx1Z2luLmgKaW5kZXggODQ1NDE4MjBjODYwNGM5ZTU4YWYxYzcxZjhkNzliYThkOWU4Mjg3
YS4uYWRhZDJkMDE1YjcwZjYyYzMxNjkzOTYxNjZhNmEzYWU0Yzg0MDMxNCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL05ldHNjYXBlL05ldHNjYXBlUGx1Z2lu
LmgKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL05ldHNjYXBlL05ldHNj
YXBlUGx1Z2luLmgKQEAgLTI4LDEwICsyOCwxMCBAQAogCiAjaW5jbHVkZSAiTmV0c2NhcGVQbHVn
aW5Nb2R1bGUuaCIKICNpbmNsdWRlICJQbHVnaW4uaCIKLSNpbmNsdWRlICJSdW5Mb29wLmgiCiAj
aW5jbHVkZSA8V2ViQ29yZS9BZmZpbmVUcmFuc2Zvcm0uaD4KICNpbmNsdWRlIDxXZWJDb3JlL0dy
YXBoaWNzTGF5ZXIuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0ludFJlY3QuaD4KKyNpbmNsdWRlIDxX
ZWJDb3JlL1J1bkxvb3AuaD4KICNpbmNsdWRlIDx3dGYvSGFzaE1hcC5oPgogI2luY2x1ZGUgPHd0
Zi90ZXh0L0NTdHJpbmcuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9TdHJpbmdIYXNoLmg+CkBAIC0y
OTEsNyArMjkxLDcgQEAgcHJpdmF0ZToKICAgICAgICAgYm9vbCBtX3JlcGVhdDsKICAgICAgICAg
VGltZXJGdW5jIG1fdGltZXJGdW5jOwogCi0gICAgICAgIFJ1bkxvb3A6OlRpbWVyPFRpbWVyPiBt
X3RpbWVyOworICAgICAgICBXZWJDb3JlOjpSdW5Mb29wOjpUaW1lcjxUaW1lcj4gbV90aW1lcjsK
ICAgICB9OwogICAgIHR5cGVkZWYgSGFzaE1hcDx1bnNpZ25lZCwgVGltZXIqPiBUaW1lck1hcDsK
ICAgICBUaW1lck1hcCBtX3RpbWVyczsKQEAgLTMzMiw3ICszMzIsNyBAQCBwcml2YXRlOgogCiAg
ICAgLy8gRklYTUU6IEl0J3MgYSBiaXQgd2FzdGVmdWwgdG8gaGF2ZSBvbmUgbnVsbCBldmVudCB0
aW1lciBwZXIgcGx1Zy1pbi4KICAgICAvLyBXZSBzaG91bGQgaW52ZXN0aWdhdGUgaGF2aW5nIG9u
ZSBwZXIgd2luZG93LgotICAgIFJ1bkxvb3A6OlRpbWVyPE5ldHNjYXBlUGx1Z2luPiBtX251bGxF
dmVudFRpbWVyOworICAgIFdlYkNvcmU6OlJ1bkxvb3A6OlRpbWVyPE5ldHNjYXBlUGx1Z2luPiBt
X251bGxFdmVudFRpbWVyOwogICAgIE5QX0NHQ29udGV4dCBtX25wQ0dDb250ZXh0OwogI2VuZGlm
CiAjZWxpZiBQTFVHSU5fQVJDSElURUNUVVJFKFdJTikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9OZXRzY2FwZS9OZXRzY2FwZVBsdWdpblN0cmVhbS5oIGIv
U291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL05ldHNjYXBlL05ldHNjYXBlUGx1Z2lu
U3RyZWFtLmgKaW5kZXggZGUyNjgyN2ZjNzJiNjRmODhmNWQwMWQ0MzY1ZTZmYjRjYzNlNzQwMy4u
ZDc3MDdkMGNmMzMyMThiMTVmY2Y4YTFjZjAzY2I2ZjkxYmI2MGJiMSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL05ldHNjYXBlL05ldHNjYXBlUGx1Z2luU3Ry
ZWFtLmgKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL05ldHNjYXBlL05l
dHNjYXBlUGx1Z2luU3RyZWFtLmgKQEAgLTI2LDkgKzI2LDkgQEAKICNpZm5kZWYgTmV0c2NhcGVQ
bHVnaW5TdHJlYW1faAogI2RlZmluZSBOZXRzY2FwZVBsdWdpblN0cmVhbV9oCiAKLSNpbmNsdWRl
ICJSdW5Mb29wLmgiCiAjaW5jbHVkZSA8V2ViQ29yZS9GaWxlU3lzdGVtLmg+CiAjaW5jbHVkZSA8
V2ViQ29yZS9ucHJ1bnRpbWVfaW50ZXJuYWwuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL1J1bkxvb3Au
aD4KICNpbmNsdWRlIDx3dGYvRm9yd2FyZC5oPgogI2luY2x1ZGUgPHd0Zi9QYXNzUmVmUHRyLmg+
CiAjaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KQEAgLTEwMyw3ICsxMDMsNyBAQCBwcml2YXRl
OgogICAgIENTdHJpbmcgbV9taW1lVHlwZTsKICAgICBDU3RyaW5nIG1faGVhZGVyczsKIAotICAg
IFJ1bkxvb3A6OlRpbWVyPE5ldHNjYXBlUGx1Z2luU3RyZWFtPiBtX2RlbGl2ZXJ5RGF0YVRpbWVy
OworICAgIFdlYkNvcmU6OlJ1bkxvb3A6OlRpbWVyPE5ldHNjYXBlUGx1Z2luU3RyZWFtPiBtX2Rl
bGl2ZXJ5RGF0YVRpbWVyOwogICAgIE93blB0cjwgVmVjdG9yPHVpbnQ4X3Q+ID4gbV9kZWxpdmVy
eURhdGE7CiAgICAgYm9vbCBtX3N0b3BTdHJlYW1XaGVuRG9uZURlbGl2ZXJpbmc7CiB9OwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL1BsdWdpblZpZXcuaCBi
L1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9QbHVnaW5WaWV3LmgKaW5kZXggOTYy
NGFjOTU0ZmFiZThmNTUyMjM0YjgzNWRmNzAzMmIzYjYwYWE1Mi4uY2Q2MzYzYTU4YmJlYWQzMTgx
NTI1NDk1NTU3YzhkZGViOTMxOTZhZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJv
Y2Vzcy9QbHVnaW5zL1BsdWdpblZpZXcuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNz
L1BsdWdpbnMvUGx1Z2luVmlldy5oCkBAIC0yOSwxMyArMjksMTIgQEAKICNpbmNsdWRlICJOUFJ1
bnRpbWVPYmplY3RNYXAuaCIKICNpbmNsdWRlICJQbHVnaW4uaCIKICNpbmNsdWRlICJQbHVnaW5D
b250cm9sbGVyLmgiCi0jaW5jbHVkZSAiUnVuTG9vcC5oIgogI2luY2x1ZGUgIldlYkZyYW1lLmgi
Ci0KICNpbmNsdWRlIDxXZWJDb3JlL01lZGlhQ2FuU3RhcnRMaXN0ZW5lci5oPgorI2luY2x1ZGUg
PFdlYkNvcmUvUGx1Z2luVmlld0Jhc2UuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1Jlc291cmNlRXJy
b3IuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1Jlc291cmNlUmVzcG9uc2UuaD4KLSNpbmNsdWRlIDxX
ZWJDb3JlL1BsdWdpblZpZXdCYXNlLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9SdW5Mb29wLmg+CiAj
aW5jbHVkZSA8d3RmL0RlcXVlLmg+CiAKIC8vIEZJWE1FOiBFdmVudHVhbGx5IHRoaXMgc2hvdWxk
IG1vdmUgdG8gV2ViQ29yZS4KQEAgLTE4MCw3ICsxNzksNyBAQCBwcml2YXRlOgogCiAgICAgLy8g
UGVuZGluZyBVUkxSZXF1ZXN0cyB0aGF0IHRoZSBwbHVnLWluIGhhcyBtYWRlLgogICAgIERlcXVl
PFJlZlB0cjxVUkxSZXF1ZXN0PiA+IG1fcGVuZGluZ1VSTFJlcXVlc3RzOwotICAgIFJ1bkxvb3A6
OlRpbWVyPFBsdWdpblZpZXc+IG1fcGVuZGluZ1VSTFJlcXVlc3RzVGltZXI7CisgICAgV2ViQ29y
ZTo6UnVuTG9vcDo6VGltZXI8UGx1Z2luVmlldz4gbV9wZW5kaW5nVVJMUmVxdWVzdHNUaW1lcjsK
IAogICAgIC8vIFBlbmRpbmcgZnJhbWUgbG9hZHMgdGhhdCB0aGUgcGx1Zy1pbiBoYXMgbWFkZS4K
ICAgICB0eXBlZGVmIEhhc2hNYXA8UmVmUHRyPFdlYkZyYW1lPiwgUmVmUHRyPFVSTFJlcXVlc3Q+
ID4gRnJhbWVMb2FkTWFwOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9X
ZWJDb25uZWN0aW9uVG9VSVByb2Nlc3MuY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9X
ZWJDb25uZWN0aW9uVG9VSVByb2Nlc3MuY3BwCmluZGV4IDlhNjRhZGQxYzQyM2IwYjAxNDdkOTJi
NTI1NTA5Mjg1MWU2N2Y2ZDEuLjVlNzk1NWQ2NzYxOTAxZGVkYjdjMmRjYzY3NGQwZmIzOWYyNjdj
NzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29ubmVjdGlvblRv
VUlQcm9jZXNzLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvbm5lY3Rp
b25Ub1VJUHJvY2Vzcy5jcHAKQEAgLTMwLDYgKzMwLDggQEAKICNpbmNsdWRlICJXZWJDb25uZWN0
aW9uTWVzc2FnZUtpbmRzLmgiCiAjaW5jbHVkZSAiV2ViUHJvY2Vzcy5oIgogCit1c2luZyBuYW1l
c3BhY2UgV2ViQ29yZTsKKwogbmFtZXNwYWNlIFdlYktpdCB7CiAKIFBhc3NSZWZQdHI8V2ViQ29u
bmVjdGlvblRvVUlQcm9jZXNzPiBXZWJDb25uZWN0aW9uVG9VSVByb2Nlc3M6OmNyZWF0ZShXZWJQ
cm9jZXNzKiBwcm9jZXNzLCBDb3JlSVBDOjpDb25uZWN0aW9uOjpJZGVudGlmaWVyIGNvbm5lY3Rp
b25JZGVudGlmaWVyLCBSdW5Mb29wKiBydW5Mb29wKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dDIvV2ViUHJvY2Vzcy9XZWJDb25uZWN0aW9uVG9VSVByb2Nlc3MuaCBiL1NvdXJjZS9XZWJLaXQy
L1dlYlByb2Nlc3MvV2ViQ29ubmVjdGlvblRvVUlQcm9jZXNzLmgKaW5kZXggMWQ5Yzk2YzgwYjYw
OGQ4ZTI4OGRiZDEwNTc2ZGEyYjc3MjQzYThjNS4uNDJiOWNkNzE2YjEyNDczMGUyZDgwMGFkYzUx
NGM1MDg0MmU1MDMxZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJD
b25uZWN0aW9uVG9VSVByb2Nlc3MuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dl
YkNvbm5lY3Rpb25Ub1VJUHJvY2Vzcy5oCkBAIC0zNSwxNCArMzUsMTQgQEAgY2xhc3MgV2ViUHJv
Y2VzczsKIAogY2xhc3MgV2ViQ29ubmVjdGlvblRvVUlQcm9jZXNzIDogcHVibGljIFdlYkNvbm5l
Y3Rpb24sIENvcmVJUEM6OkNvbm5lY3Rpb246OkNsaWVudCB7CiBwdWJsaWM6Ci0gICAgc3RhdGlj
IFBhc3NSZWZQdHI8V2ViQ29ubmVjdGlvblRvVUlQcm9jZXNzPiBjcmVhdGUoV2ViUHJvY2Vzcyos
IENvcmVJUEM6OkNvbm5lY3Rpb246OklkZW50aWZpZXIsIFJ1bkxvb3AqKTsKKyAgICBzdGF0aWMg
UGFzc1JlZlB0cjxXZWJDb25uZWN0aW9uVG9VSVByb2Nlc3M+IGNyZWF0ZShXZWJQcm9jZXNzKiwg
Q29yZUlQQzo6Q29ubmVjdGlvbjo6SWRlbnRpZmllciwgV2ViQ29yZTo6UnVuTG9vcCopOwogCiAg
ICAgQ29yZUlQQzo6Q29ubmVjdGlvbiogY29ubmVjdGlvbigpIHsgcmV0dXJuIG1fY29ubmVjdGlv
bi5nZXQoKTsgfQogCiAgICAgdm9pZCBpbnZhbGlkYXRlKCk7CiAKIHByaXZhdGU6Ci0gICAgV2Vi
Q29ubmVjdGlvblRvVUlQcm9jZXNzKFdlYlByb2Nlc3MqLCBDb3JlSVBDOjpDb25uZWN0aW9uOjpJ
ZGVudGlmaWVyLCBSdW5Mb29wKik7CisgICAgV2ViQ29ubmVjdGlvblRvVUlQcm9jZXNzKFdlYlBy
b2Nlc3MqLCBDb3JlSVBDOjpDb25uZWN0aW9uOjpJZGVudGlmaWVyLCBXZWJDb3JlOjpSdW5Mb29w
Kik7CiAKICAgICAvLyBXZWJDb25uZWN0aW9uCiAgICAgdmlydHVhbCB2b2lkIHBvc3RNZXNzYWdl
KGNvbnN0IFN0cmluZyYsIEFQSU9iamVjdCopOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJHcmFwaGljc0xheWVyLmggYi9Tb3VyY2UvV2Vi
S2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkdyYXBoaWNzTGF5ZXIuaAppbmRleCBi
NzUwOWIzMzRmMmY1NGQ5ZDI3ZTNmY2JlNTIxOWExMGFkNzE2YmEzLi5kYjAzZDA3MTFkYWUwMmRl
ZDc4ZTkzMThiZWY0NDgwOWY2ODdlNDQ5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQ
cm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkdyYXBoaWNzTGF5ZXIuaAorKysgYi9Tb3VyY2UvV2Vi
S2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkdyYXBoaWNzTGF5ZXIuaApAQCAtMjUs
NyArMjUsNiBAQAogI2luY2x1ZGUgIkdyYXBoaWNzTGF5ZXIuaCIKICNpbmNsdWRlICJJbWFnZS5o
IgogI2luY2x1ZGUgIkludFNpemUuaCIKLSNpbmNsdWRlICJSdW5Mb29wLmgiCiAjaW5jbHVkZSAi
U2hhcmVhYmxlQml0bWFwLmgiCiAjaW5jbHVkZSAiVGlsZWRCYWNraW5nU3RvcmUuaCIKICNpbmNs
dWRlICJUaWxlZEJhY2tpbmdTdG9yZUNsaWVudC5oIgpAQCAtMzQsNiArMzMsNyBAQAogI2luY2x1
ZGUgIlVwZGF0ZUluZm8uaCIKICNpbmNsdWRlICJXZWJMYXllclRyZWVJbmZvLmgiCiAjaW5jbHVk
ZSAiV2ViUHJvY2Vzcy5oIgorI2luY2x1ZGUgPFdlYkNvcmUvUnVuTG9vcC5oPgogCiAjaWYgVVNF
KEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9X
ZWJQcm9jZXNzL1dlYlBhZ2UvRHJhd2luZ0FyZWFJbXBsLmggYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQ
cm9jZXNzL1dlYlBhZ2UvRHJhd2luZ0FyZWFJbXBsLmgKaW5kZXggMGRhYmY2MDNhMTEyNjk0YzE1
MTdkZTUwMWZiODI0MDQyMTM0MmE5Yi4uMjhjOGNlNjhjZDBlNDczNjBjZGU2ZjNhNjUyNmVlNzZk
MTQxOTU5ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL0Ry
YXdpbmdBcmVhSW1wbC5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9E
cmF3aW5nQXJlYUltcGwuaApAQCAtMjgsOCArMjgsOCBAQAogCiAjaW5jbHVkZSAiRHJhd2luZ0Fy
ZWEuaCIKICNpbmNsdWRlICJMYXllclRyZWVIb3N0LmgiCi0jaW5jbHVkZSAiUnVuTG9vcC5oIgog
I2luY2x1ZGUgPFdlYkNvcmUvUmVnaW9uLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9SdW5Mb29wLmg+
CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICBjbGFzcyBHcmFwaGljc0NvbnRleHQ7CkBAIC0x
MzEsOCArMTMxLDggQEAgcHJpdmF0ZToKICAgICBib29sIG1faXNQYWludGluZ1N1c3BlbmRlZDsK
ICAgICBib29sIG1fYWx3YXlzVXNlQ29tcG9zaXRpbmc7CiAKLSAgICBSdW5Mb29wOjpUaW1lcjxE
cmF3aW5nQXJlYUltcGw+IG1fZGlzcGxheVRpbWVyOwotICAgIFJ1bkxvb3A6OlRpbWVyPERyYXdp
bmdBcmVhSW1wbD4gbV9leGl0Q29tcG9zaXRpbmdUaW1lcjsKKyAgICBXZWJDb3JlOjpSdW5Mb29w
OjpUaW1lcjxEcmF3aW5nQXJlYUltcGw+IG1fZGlzcGxheVRpbWVyOworICAgIFdlYkNvcmU6OlJ1
bkxvb3A6OlRpbWVyPERyYXdpbmdBcmVhSW1wbD4gbV9leGl0Q29tcG9zaXRpbmdUaW1lcjsKIAog
ICAgIC8vIFRoZSBsYXllciB0cmVlIGhvc3QgdGhhdCBoYW5kbGVzIGFjY2VsZXJhdGVkIGNvbXBv
c2l0aW5nLgogICAgIFJlZlB0cjxMYXllclRyZWVIb3N0PiBtX2xheWVyVHJlZUhvc3Q7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvRXZlbnREaXNwYXRjaGVy
LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9FdmVudERpc3BhdGNoZXIu
Y3BwCmluZGV4IDFhOTFkOGUzYzAyMzQ4NDM5YjlmMzJkY2Y4MzQwNjFmMDEzN2RiZjUuLjNjMmU3
M2VjYTZjMzEwODE5N2YwOWQzMmEyYmY3MDIwZmU5MzkyNmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9FdmVudERpc3BhdGNoZXIuY3BwCisrKyBiL1NvdXJj
ZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9FdmVudERpc3BhdGNoZXIuY3BwCkBAIC0yNiwx
MyArMjYsMTMgQEAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJFdmVudERpc3BhdGNo
ZXIuaCIKIAotI2luY2x1ZGUgIlJ1bkxvb3AuaCIKICNpbmNsdWRlICJXZWJFdmVudC5oIgogI2lu
Y2x1ZGUgIldlYkV2ZW50Q29udmVyc2lvbi5oIgogI2luY2x1ZGUgIldlYlBhZ2UuaCIKICNpbmNs
dWRlICJXZWJQYWdlUHJveHlNZXNzYWdlcy5oIgogI2luY2x1ZGUgIldlYlByb2Nlc3MuaCIKICNp
bmNsdWRlIDxXZWJDb3JlL1BhZ2UuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL1J1bkxvb3AuaD4KICNp
bmNsdWRlIDx3dGYvTWFpblRocmVhZC5oPgogCiAjaWYgRU5BQkxFKFRIUkVBREVEX1NDUk9MTElO
RykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9QYWdlT3Zl
cmxheS5oIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1BhZ2VPdmVybGF5LmgK
aW5kZXggMWY2MWNlYmU5MjYyNDM5N2QxOWRiYWIyYzk4MDE3MDY4NDVjZmJhNi4uOTQ5NzY3ODA2
ZjI3NDMzYzE0MzYzZTYxMjFlYjM4ZmM4NzY1YWNkMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1BhZ2VPdmVybGF5LmgKKysrIGIvU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9XZWJQYWdlL1BhZ2VPdmVybGF5LmgKQEAgLTI3LDcgKzI3LDcgQEAKICNkZWZp
bmUgUGFnZU92ZXJsYXlfaAogCiAjaW5jbHVkZSAiQVBJT2JqZWN0LmgiCi0jaW5jbHVkZSAiUnVu
TG9vcC5oIgorI2luY2x1ZGUgPFdlYkNvcmUvUnVuTG9vcC5oPgogI2luY2x1ZGUgPHd0Zi9QYXNz
UmVmUHRyLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKQEAgLTg2LDcgKzg2LDcgQEAgcHJpdmF0
ZToKICAgICBDbGllbnQqIG1fY2xpZW50OwogICAgIFdlYlBhZ2UqIG1fd2ViUGFnZTsKIAotICAg
IFJ1bkxvb3A6OlRpbWVyPFBhZ2VPdmVybGF5PiBtX2ZhZGVBbmltYXRpb25UaW1lcjsKKyAgICBX
ZWJDb3JlOjpSdW5Mb29wOjpUaW1lcjxQYWdlT3ZlcmxheT4gbV9mYWRlQW5pbWF0aW9uVGltZXI7
CiAgICAgZG91YmxlIG1fZmFkZUFuaW1hdGlvblN0YXJ0VGltZTsKICAgICBkb3VibGUgbV9mYWRl
QW5pbWF0aW9uRHVyYXRpb247CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nl
c3MvV2ViUGFnZS9XZWJQYWdlLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFn
ZS9XZWJQYWdlLmNwcAppbmRleCBhMWMzYzJjMDAzMzcwOTQ3YjMwODIwZDA5Y2EzMGE4Mzk3YzJm
YTQwLi41NDUzMGYxOThhMDU4NWJiNGI0OWFiNjIxMmQyMDRhZGU5ZDE3MTU4IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKKysrIGIvU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCkBAIC00MCw3ICs0MCw2
IEBACiAjaW5jbHVkZSAiUGx1Z2luUHJveHkuaCIKICNpbmNsdWRlICJQbHVnaW5WaWV3LmgiCiAj
aW5jbHVkZSAiUHJpbnRJbmZvLmgiCi0jaW5jbHVkZSAiUnVuTG9vcC5oIgogI2luY2x1ZGUgIlNl
c3Npb25TdGF0ZS5oIgogI2luY2x1ZGUgIlNoYXJlYWJsZUJpdG1hcC5oIgogI2luY2x1ZGUgIldl
YkJhY2tGb3J3YXJkTGlzdC5oIgpAQCAtMTA0LDYgKzEwMyw3IEBACiAjaW5jbHVkZSA8V2ViQ29y
ZS9SZW5kZXJWaWV3Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9SZXBsYWNlU2VsZWN0aW9uQ29tbWFu
ZC5oPgogI2luY2x1ZGUgPFdlYkNvcmUvUmVzb3VyY2VSZXF1ZXN0Lmg+CisjaW5jbHVkZSA8V2Vi
Q29yZS9SdW5Mb29wLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9TY2hlbWVSZWdpc3RyeS5oPgogI2lu
Y2x1ZGUgPFdlYkNvcmUvU2NyaXB0VmFsdWUuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1NlcmlhbGl6
ZWRTY3JpcHRWYWx1ZS5oPgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9X
ZWJQYWdlL1dlYlBhZ2UuaCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQ
YWdlLmgKaW5kZXggNDAwNzJjZmJmMTU2MGNkMGJkNThiYzg0ZDExNmIyZjI4MTIxZDQ2OC4uODZl
YTBkNzVhMjM5ODA3NzRhZTU1NzZjMTNkOGE3ZWUxOTZlNWY5ZCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaAorKysgYi9Tb3VyY2UvV2ViS2l0
Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oCkBAIC02NzcsNyArNjc3LDcgQEAgcHJpdmF0
ZToKICAgICBSZWZQdHI8V2ViQ29yZTo6Tm9kZT4gbV9nZXN0dXJlVGFyZ2V0Tm9kZTsKICNlbmRp
ZgogICAgIAotICAgIFJ1bkxvb3A6OlRpbWVyPFdlYlBhZ2U+IG1fc2V0Q2FuU3RhcnRNZWRpYVRp
bWVyOworICAgIFdlYkNvcmU6OlJ1bkxvb3A6OlRpbWVyPFdlYlBhZ2U+IG1fc2V0Q2FuU3RhcnRN
ZWRpYVRpbWVyOwogCiAgICAgSGFzaE1hcDx1aW50NjRfdCwgUmVmUHRyPFdlYlVuZG9TdGVwPiA+
IG1fdW5kb1N0ZXBNYXA7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
V2ViUHJvY2Vzcy5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuY3Bw
CmluZGV4IDM5YjNiYzhlNWI3YmI4N2E2ZjY4NDQ3OGExYmZlODliMmQ0MzRjZGQuLmFiNzBiMmEx
ZmI3ZjMyMTNiYWVjZmM4YTVkZjMzZTAzMTNmMTRkZWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQyL1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJv
Y2Vzcy9XZWJQcm9jZXNzLmNwcApAQCAtMzEsNyArMzEsNiBAQAogI2luY2x1ZGUgIkluamVjdGVk
QnVuZGxlLmgiCiAjaW5jbHVkZSAiSW5qZWN0ZWRCdW5kbGVNZXNzYWdlS2luZHMuaCIKICNpbmNs
dWRlICJJbmplY3RlZEJ1bmRsZVVzZXJNZXNzYWdlQ29kZXJzLmgiCi0jaW5jbHVkZSAiUnVuTG9v
cC5oIgogI2luY2x1ZGUgIlNhbmRib3hFeHRlbnNpb24uaCIKICNpbmNsdWRlICJTdGF0aXN0aWNz
RGF0YS5oIgogI2luY2x1ZGUgIldlYkFwcGxpY2F0aW9uQ2FjaGVNYW5hZ2VyLmgiCkBAIC03Miw2
ICs3MSw3IEBACiAjaW5jbHVkZSA8V2ViQ29yZS9QYWdlQ2FjaGUuaD4KICNpbmNsdWRlIDxXZWJD
b3JlL1BhZ2VHcm91cC5oPgogI2luY2x1ZGUgPFdlYkNvcmUvUmVzb3VyY2VIYW5kbGUuaD4KKyNp
bmNsdWRlIDxXZWJDb3JlL1J1bkxvb3AuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1NjaGVtZVJlZ2lz
dHJ5Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9TZWN1cml0eU9yaWdpbi5oPgogI2luY2x1ZGUgPFdl
YkNvcmUvU2V0dGluZ3MuaD4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
V2ViUHJvY2Vzcy5oIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmgKaW5k
ZXggMWU1MDI4NGMwYmJlYmM4MjlmNjE3MjliZGZhMGJlODA4ZWFkZDZiYy4uNThmM2QzMDI1Mjkz
MWQ2OGNjNThiMGY5NjgxMTdmYWJiNDc3YWY0YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmgKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9X
ZWJQcm9jZXNzLmgKQEAgLTgyLDEwICs4MiwxMCBAQCBjbGFzcyBXZWJQcm9jZXNzIDogcHVibGlj
IENoaWxkUHJvY2VzcywgcHJpdmF0ZSBDb3JlSVBDOjpDb25uZWN0aW9uOjpRdWV1ZUNsaWVudAog
cHVibGljOgogICAgIHN0YXRpYyBXZWJQcm9jZXNzJiBzaGFyZWQoKTsKIAotICAgIHZvaWQgaW5p
dGlhbGl6ZShDb3JlSVBDOjpDb25uZWN0aW9uOjpJZGVudGlmaWVyLCBSdW5Mb29wKik7CisgICAg
dm9pZCBpbml0aWFsaXplKENvcmVJUEM6OkNvbm5lY3Rpb246OklkZW50aWZpZXIsIFdlYkNvcmU6
OlJ1bkxvb3AqKTsKIAogICAgIENvcmVJUEM6OkNvbm5lY3Rpb24qIGNvbm5lY3Rpb24oKSBjb25z
dCB7IHJldHVybiBtX2Nvbm5lY3Rpb24tPmNvbm5lY3Rpb24oKTsgfQotICAgIFJ1bkxvb3AqIHJ1
bkxvb3AoKSBjb25zdCB7IHJldHVybiBtX3J1bkxvb3A7IH0KKyAgICBXZWJDb3JlOjpSdW5Mb29w
KiBydW5Mb29wKCkgY29uc3QgeyByZXR1cm4gbV9ydW5Mb29wOyB9CiAKICAgICBXZWJDb25uZWN0
aW9uVG9VSVByb2Nlc3MqIHdlYkNvbm5lY3Rpb25Ub1VJUHJvY2VzcygpIGNvbnN0IHsgcmV0dXJu
IG1fY29ubmVjdGlvbi5nZXQoKTsgfQogCkBAIC0yNDEsNyArMjQxLDcgQEAgcHJpdmF0ZToKIAog
ICAgIGJvb2wgbV9pbkRpZENsb3NlOwogCi0gICAgUnVuTG9vcCogbV9ydW5Mb29wOworICAgIFdl
YkNvcmU6OlJ1bkxvb3AqIG1fcnVuTG9vcDsKIAogICAgIC8vIEZJWE1FOiBUaGUgdmlzaXRlZCBs
aW5rIHRhYmxlIHNob3VsZCBub3QgYmUgcGVyIHByb2Nlc3MuCiAgICAgVmlzaXRlZExpbmtUYWJs
ZSBtX3Zpc2l0ZWRMaW5rVGFibGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9j
ZXNzL21hYy9XZWJQcm9jZXNzTWFpbk1hYy5tbSBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
bWFjL1dlYlByb2Nlc3NNYWluTWFjLm1tCmluZGV4IGI1YTNmZTA3ZDA2Nzg0M2JlNWIzYzM1MGEx
NGEwOTBmOTljMTViYTAuLjRlMmIxNTUzMjIxMGMwMDQ0ZjJiOTg4MTMzZjdiYmRkZjZjODU1Njkg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvbWFjL1dlYlByb2Nlc3NNYWlu
TWFjLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvbWFjL1dlYlByb2Nlc3NNYWlu
TWFjLm1tCkBAIC0yOSw5ICsyOSw5IEBACiAjaW1wb3J0ICJDb21tYW5kTGluZS5oIgogI2ltcG9y
dCAiRW52aXJvbm1lbnRVdGlsaXRpZXMuaCIKICNpbXBvcnQgIkVudmlyb25tZW50VmFyaWFibGVz
LmgiCi0jaW1wb3J0ICJSdW5Mb29wLmgiCiAjaW1wb3J0ICJXZWJQcm9jZXNzLmgiCiAjaW1wb3J0
ICJXZWJTeXN0ZW1JbnRlcmZhY2UuaCIKKyNpbXBvcnQgPFdlYkNvcmUvUnVuTG9vcC5oPgogI2lt
cG9ydCA8V2ViS2l0Mi9XS1ZpZXcuaD4KICNpbXBvcnQgPFdlYktpdFN5c3RlbUludGVyZmFjZS5o
PgogI2ltcG9ydCA8bWFjaC9tYWNoX2Vycm9yLmg+CkBAIC00Myw4ICs0Myw4IEBACiAjaW1wb3J0
IDxzdGRpby5oPgogI2ltcG9ydCA8c3lzZXhpdHMuaD4KICNpbXBvcnQgPHVuaXN0ZC5oPgotI2lt
cG9ydCA8d3RmL1JldGFpblB0ci5oPgogI2ltcG9ydCA8d3RmL01haW5UaHJlYWQuaD4KKyNpbXBv
cnQgPHd0Zi9SZXRhaW5QdHIuaD4KICNpbXBvcnQgPHd0Zi90ZXh0L0NTdHJpbmcuaD4KICNpbXBv
cnQgPHd0Zi90ZXh0L1N0cmluZ0J1aWxkZXIuaD4KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dDIvV2ViUHJvY2Vzcy9xdC9XZWJQcm9jZXNzTWFpblF0LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dl
YlByb2Nlc3MvcXQvV2ViUHJvY2Vzc01haW5RdC5jcHAKaW5kZXggYzM4ZTM4MjQxZDI3MjU5ZDQ2
OWM5YzNhZTVjYTBjMGEwMTdlN2RhMy4uODAxNjc3NDc0ODIxMDBmNzI3OTEyNWIwNThkOTVlZGU5
ZDIzMzEyMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9xdC9XZWJQcm9j
ZXNzTWFpblF0LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL3F0L1dlYlByb2Nl
c3NNYWluUXQuY3BwCkBAIC0yNSw5ICsyNSwxMCBAQAogICovCiAKICNpbmNsdWRlICJjb25maWcu
aCIKLSNpbmNsdWRlICJSdW5Mb29wLmgiCi0jaW5jbHVkZSA8cnVudGltZS9Jbml0aWFsaXplVGhy
ZWFkaW5nLmg+CisKICNpbmNsdWRlICJXZWJQcm9jZXNzLmgiCisjaW5jbHVkZSA8cnVudGltZS9J
bml0aWFsaXplVGhyZWFkaW5nLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9SdW5Mb29wLmg+CiAjaW5j
bHVkZSA8d3RmL01haW5UaHJlYWQuaD4KIAogI2luY2x1ZGUgPFFBcHBsaWNhdGlvbj4KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mvd2luL1dlYlByb2Nlc3NNYWluV2luLmNw
cCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mvd2luL1dlYlByb2Nlc3NNYWluV2luLmNwcApp
bmRleCA1ZWRlZWZlNWNkZGI1YWYyZGM0NDc4YWY0NDlhZTZiYWZkMzg0N2IxLi40ZjA2MjI3M2Ni
ZGJhZmNlYTRiZTA3MGIwNjJkZGIzZTMxOTk0ODlmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9XZWJQcm9jZXNzL3dpbi9XZWJQcm9jZXNzTWFpbldpbi5jcHAKKysrIGIvU291cmNlL1dlYktp
dDIvV2ViUHJvY2Vzcy93aW4vV2ViUHJvY2Vzc01haW5XaW4uY3BwCkBAIC0yNywxNCArMjcsMTYg
QEAKICNpbmNsdWRlICJXZWJQcm9jZXNzTWFpbi5oIgogCiAjaW5jbHVkZSAiQ29tbWFuZExpbmUu
aCIKLSNpbmNsdWRlICJSdW5Mb29wLmgiCiAjaW5jbHVkZSAiV2ViUHJvY2Vzcy5oIgogI2luY2x1
ZGUgPFdlYkNvcmUvU29mdExpbmtpbmcuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL1J1bkxvb3AuaD4K
ICNpbmNsdWRlIDxydW50aW1lL0luaXRpYWxpemVUaHJlYWRpbmcuaD4KICNpbmNsdWRlIDx3dGYv
TWFpblRocmVhZC5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L1N0cmluZ0hhc2guaD4KICNpbmNsdWRl
IDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KIAordXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CisKIG5h
bWVzcGFjZSBXZWJLaXQgewogCiAjaWYgVVNFKFNBRkFSSV9USEVNRSkKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQyL3dpbi9XZWJLaXQyLnZjcHJvaiBiL1NvdXJjZS9XZWJLaXQyL3dpbi9XZWJL
aXQyLnZjcHJvagppbmRleCA3NTIyNzhkZGMwMTVjY2Y0NDViYTFjN2JlYzYwZjU0MTgwNTQ3YTZl
Li4xNjdiYTNkOTEyN2I4N2RkMDU1NDdlZDdhYjRlZjcxMTY5OTEyMzUyIDEwMDc1NQotLS0gYS9T
b3VyY2UvV2ViS2l0Mi93aW4vV2ViS2l0Mi52Y3Byb2oKKysrIGIvU291cmNlL1dlYktpdDIvd2lu
L1dlYktpdDIudmNwcm9qCkBAIC0zODg3LDE0ICszODg3LDYgQEAKIAkJCQk+CiAJCQk8L0ZpbGU+
CiAJCQk8RmlsZQotCQkJCVJlbGF0aXZlUGF0aD0iLi5cUGxhdGZvcm1cUnVuTG9vcC5jcHAiCi0J
CQkJPgotCQkJPC9GaWxlPgotCQkJPEZpbGUKLQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXFBsYXRmb3Jt
XFJ1bkxvb3AuaCIKLQkJCQk+Ci0JCQk8L0ZpbGU+Ci0JCQk8RmlsZQogCQkJCVJlbGF0aXZlUGF0
aD0iLi5cUGxhdGZvcm1cU2hhcmVkTWVtb3J5LmgiCiAJCQkJPgogCQkJPC9GaWxlPgpAQCAtMzk0
MiwxMCArMzkzNCw2IEBACiAJCQkJCT4KIAkJCQk8L0ZpbGU+CiAJCQkJPEZpbGUKLQkJCQkJUmVs
YXRpdmVQYXRoPSIuLlxQbGF0Zm9ybVx3aW5cUnVuTG9vcFdpbi5jcHAiCi0JCQkJCT4KLQkJCQk8
L0ZpbGU+Ci0JCQkJPEZpbGUKIAkJCQkJUmVsYXRpdmVQYXRoPSIuLlxQbGF0Zm9ybVx3aW5cU2hh
cmVkTWVtb3J5V2luLmNwcCIKIAkJCQkJPgogCQkJCTwvRmlsZT4K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>122859</attachid>
            <date>2012-01-17 18:37:12 -0800</date>
            <delta_ts>2012-01-18 13:46:44 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-76471-20120117183719.patch</filename>
            <type>text/plain</type>
            <size>130415</size>
            <attacher name="Sam Weinig">sam</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTA1MjI3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggM2FjYzFlNzRjN2QzMjRm
ZTBjNDM1MjVmZWViZTk4ZjZjZDliZWNmMy4uYzgyNDI2ZDI1Nzk0ZGE3YTIyMDk5ZjQxNzYwMTNi
MjUzNTQ4ZTY4MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDkxIEBACisyMDEyLTAxLTE3ICBTYW0g
V2VpbmlnICA8c2FtQHdlYmtpdC5vcmc+CisKKyAgICAgICAgTW92ZSBSdW5Mb29wIHRvIFdlYkNv
cmUvcGxhdGZvcm0KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTc2NDcxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgTm8gbmV3IHRlc3RzLiAoT09QUyEpCisKKyAgICAgICAgKiBHTlVtYWtlZmlsZS5saXN0LmFt
OgorICAgICAgICAqIFRhcmdldC5wcmk6CisgICAgICAgICogV2ViQ29yZS5leHAuaW46CisgICAg
ICAgICogV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2o6CisgICAgICAgICogV2ViQ29yZS54
Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIHBsYXRmb3JtL1J1bkxvb3AuY3Bw
OiBSZW5hbWVkIGZyb20gU291cmNlL1dlYktpdDIvUGxhdGZvcm0vUnVuTG9vcC5jcHAuCisgICAg
ICAgIChXZWJDb3JlOjpSdW5Mb29wOjppbml0aWFsaXplTWFpblJ1bkxvb3ApOgorICAgICAgICAo
V2ViQ29yZTo6UnVuTG9vcDo6Y3VycmVudCk6CisgICAgICAgIChXZWJDb3JlOjpSdW5Mb29wOjpt
YWluKToKKyAgICAgICAgKFdlYkNvcmU6OlJ1bkxvb3A6OnBlcmZvcm1Xb3JrKToKKyAgICAgICAg
KFdlYkNvcmU6OlJ1bkxvb3A6OmRpc3BhdGNoKToKKyAgICAgICAgKiBwbGF0Zm9ybS9SdW5Mb29w
Lmg6IFJlbmFtZWQgZnJvbSBTb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9SdW5Mb29wLmguCisgICAg
ICAgIChXZWJDb3JlOjpSdW5Mb29wOjpUaW1lckJhc2U6OnN0YXJ0UmVwZWF0aW5nKToKKyAgICAg
ICAgKFdlYkNvcmU6OlJ1bkxvb3A6OlRpbWVyQmFzZTo6c3RhcnRPbmVTaG90KToKKyAgICAgICAg
KFdlYkNvcmU6OlJ1bkxvb3A6OlRpbWVyQmFzZTo6aXNSZXBlYXRpbmcpOgorICAgICAgICAoV2Vi
Q29yZTo6UnVuTG9vcDo6VGltZXI6OlRpbWVyKToKKyAgICAgICAgKFdlYkNvcmU6OlJ1bkxvb3A6
OlRpbWVyOjpmaXJlZCk6CisgICAgICAgICogcGxhdGZvcm0vZ3RrL1J1bkxvb3BHdGsuY3BwOiBS
ZW5hbWVkIGZyb20gU291cmNlL1dlYktpdDIvUGxhdGZvcm0vZ3RrL1J1bkxvb3BHdGsuY3BwLgor
ICAgICAgICAoUnVuTG9vcDo6UnVuTG9vcCk6CisgICAgICAgIChSdW5Mb29wOjp+UnVuTG9vcCk6
CisgICAgICAgIChSdW5Mb29wOjpydW4pOgorICAgICAgICAoUnVuTG9vcDo6bWFpbkxvb3ApOgor
ICAgICAgICAoUnVuTG9vcDo6c3RvcCk6CisgICAgICAgIChSdW5Mb29wOjpxdWV1ZVdvcmspOgor
ICAgICAgICAoUnVuTG9vcDo6d2FrZVVwKToKKyAgICAgICAgKFJ1bkxvb3A6OlRpbWVyQmFzZTo6
VGltZXJCYXNlKToKKyAgICAgICAgKFJ1bkxvb3A6OlRpbWVyQmFzZTo6flRpbWVyQmFzZSk6Cisg
ICAgICAgIChSdW5Mb29wOjpUaW1lckJhc2U6OmNsZWFyVGltZXJTb3VyY2UpOgorICAgICAgICAo
UnVuTG9vcDo6VGltZXJCYXNlOjp0aW1lckZpcmVkQ2FsbGJhY2spOgorICAgICAgICAoUnVuTG9v
cDo6VGltZXJCYXNlOjpzdGFydCk6CisgICAgICAgIChSdW5Mb29wOjpUaW1lckJhc2U6OnN0b3Ap
OgorICAgICAgICAoUnVuTG9vcDo6VGltZXJCYXNlOjppc0FjdGl2ZSk6CisgICAgICAgICogcGxh
dGZvcm0vbWFjL1J1bkxvb3BNYWMubW06IFJlbmFtZWQgZnJvbSBTb3VyY2UvV2ViS2l0Mi9QbGF0
Zm9ybS9tYWMvUnVuTG9vcE1hYy5tbS4KKyAgICAgICAgKFdlYkNvcmU6OlJ1bkxvb3A6OnBlcmZv
cm1Xb3JrKToKKyAgICAgICAgKFdlYkNvcmU6OlJ1bkxvb3A6OlJ1bkxvb3ApOgorICAgICAgICAo
V2ViQ29yZTo6UnVuTG9vcDo6flJ1bkxvb3ApOgorICAgICAgICAoV2ViQ29yZTo6UnVuTG9vcDo6
cnVuKToKKyAgICAgICAgKFdlYkNvcmU6OlJ1bkxvb3A6OnJ1bkZvckR1cmF0aW9uKToKKyAgICAg
ICAgKFdlYkNvcmU6OlJ1bkxvb3A6OnN0b3ApOgorICAgICAgICAoV2ViQ29yZTo6UnVuTG9vcDo6
d2FrZVVwKToKKyAgICAgICAgKFdlYkNvcmU6OlJ1bkxvb3A6OlRpbWVyQmFzZTo6dGltZXJGaXJl
ZCk6CisgICAgICAgIChXZWJDb3JlOjpSdW5Mb29wOjpUaW1lckJhc2U6OlRpbWVyQmFzZSk6Cisg
ICAgICAgIChXZWJDb3JlOjpSdW5Mb29wOjpUaW1lckJhc2U6On5UaW1lckJhc2UpOgorICAgICAg
ICAoV2ViQ29yZTo6UnVuTG9vcDo6VGltZXJCYXNlOjpzdGFydCk6CisgICAgICAgIChXZWJDb3Jl
OjpSdW5Mb29wOjpUaW1lckJhc2U6OnN0b3ApOgorICAgICAgICAoV2ViQ29yZTo6UnVuTG9vcDo6
VGltZXJCYXNlOjppc0FjdGl2ZSk6CisgICAgICAgICogcGxhdGZvcm0vcXQvUnVuTG9vcFF0LmNw
cDogUmVuYW1lZCBmcm9tIFNvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL3F0L1J1bkxvb3BRdC5jcHAu
CisgICAgICAgIChSdW5Mb29wOjpUaW1lck9iamVjdDo6VGltZXJPYmplY3QpOgorICAgICAgICAo
UnVuTG9vcDo6VGltZXJPYmplY3Q6OnBlcmZvcm1Xb3JrKToKKyAgICAgICAgKFJ1bkxvb3A6OlRp
bWVyT2JqZWN0Ojp3YWtlVXApOgorICAgICAgICAoUnVuTG9vcDo6VGltZXJPYmplY3Q6OnRpbWVy
RXZlbnQpOgorICAgICAgICAoUnVuTG9vcDo6cnVuKToKKyAgICAgICAgKFJ1bkxvb3A6OnN0b3Ap
OgorICAgICAgICAoUnVuTG9vcDo6UnVuTG9vcCk6CisgICAgICAgIChSdW5Mb29wOjp+UnVuTG9v
cCk6CisgICAgICAgIChSdW5Mb29wOjp3YWtlVXApOgorICAgICAgICAoUnVuTG9vcDo6VGltZXJC
YXNlOjp0aW1lckZpcmVkKToKKyAgICAgICAgKFJ1bkxvb3A6OlRpbWVyQmFzZTo6VGltZXJCYXNl
KToKKyAgICAgICAgKFJ1bkxvb3A6OlRpbWVyQmFzZTo6flRpbWVyQmFzZSk6CisgICAgICAgIChS
dW5Mb29wOjpUaW1lckJhc2U6OnN0YXJ0KToKKyAgICAgICAgKFJ1bkxvb3A6OlRpbWVyQmFzZTo6
c3RvcCk6CisgICAgICAgIChSdW5Mb29wOjpUaW1lckJhc2U6OmlzQWN0aXZlKToKKyAgICAgICAg
KiBwbGF0Zm9ybS93aW4vUnVuTG9vcFdpbi5jcHA6IFJlbmFtZWQgZnJvbSBTb3VyY2UvV2ViS2l0
Mi9QbGF0Zm9ybS93aW4vUnVuTG9vcFdpbi5jcHAuCisgICAgICAgIChSdW5Mb29wOjpSdW5Mb29w
V25kUHJvYyk6CisgICAgICAgIChSdW5Mb29wOjp3bmRQcm9jKToKKyAgICAgICAgKFJ1bkxvb3A6
OnJ1bik6CisgICAgICAgIChSdW5Mb29wOjpzdG9wKToKKyAgICAgICAgKFJ1bkxvb3A6OnJlZ2lz
dGVyUnVuTG9vcE1lc3NhZ2VXaW5kb3dDbGFzcyk6CisgICAgICAgIChSdW5Mb29wOjpSdW5Mb29w
KToKKyAgICAgICAgKFJ1bkxvb3A6On5SdW5Mb29wKToKKyAgICAgICAgKFJ1bkxvb3A6Ondha2VV
cCk6CisgICAgICAgIChSdW5Mb29wOjpUaW1lckJhc2U6OnRpbWVyRmlyZWQpOgorICAgICAgICAo
Z2VuZXJhdGVUaW1lcklEKToKKyAgICAgICAgKFJ1bkxvb3A6OlRpbWVyQmFzZTo6VGltZXJCYXNl
KToKKyAgICAgICAgKFJ1bkxvb3A6OlRpbWVyQmFzZTo6flRpbWVyQmFzZSk6CisgICAgICAgIChS
dW5Mb29wOjpUaW1lckJhc2U6OnN0YXJ0KToKKyAgICAgICAgKFJ1bkxvb3A6OlRpbWVyQmFzZTo6
c3RvcCk6CisgICAgICAgIChSdW5Mb29wOjpUaW1lckJhc2U6OmlzQWN0aXZlKToKKwogMjAxMi0w
MS0xNyAgTmF0ZSBDaGFwaW4gIDxqYXBoZXRAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIEVuc3Vy
ZSB3ZSBkb24ndCBjYW5jZWwgcmV2YWxpZGF0aW9uIG9mIGEgQ2FjaGVkUmVzb3VyY2UKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxv
ZwppbmRleCAyYzQ4MWQ2ZjQwZWY2YWE2M2FmMWQ0ZTUwMDI3ZGJhNGZlNWY4M2QyLi5kNDBkNzQ3
OGJiNTc2NTkyYzgxY2NjYjNlZjM5OTNmNTZhYmQ4N2FlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0Mi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0xLDUgKzEs
NjcgQEAKIDIwMTItMDEtMTcgIFNhbSBXZWluaWcgIDxzYW1Ad2Via2l0Lm9yZz4KIAorICAgICAg
ICBNb3ZlIFJ1bkxvb3AgdG8gV2ViQ29yZS9wbGF0Zm9ybQorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzY0NzEKKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIEdOVW1ha2VmaWxlLmFtOgorICAgICAgICAqIFBs
YXRmb3JtL0NvcmVJUEMvQ29ubmVjdGlvbi5jcHA6CisgICAgICAgICogUGxhdGZvcm0vQ29yZUlQ
Qy9Db25uZWN0aW9uLmg6CisgICAgICAgICogUGxhdGZvcm0vQ29yZUlQQy9tYWMvQ29ubmVjdGlv
bk1hYy5jcHA6CisgICAgICAgICogUGx1Z2luUHJvY2Vzcy9QbHVnaW5Db250cm9sbGVyUHJveHku
aDoKKyAgICAgICAgKiBQbHVnaW5Qcm9jZXNzL1BsdWdpblByb2Nlc3MuY3BwOgorICAgICAgICAq
IFBsdWdpblByb2Nlc3MvUGx1Z2luUHJvY2Vzcy5oOgorICAgICAgICAqIFBsdWdpblByb2Nlc3Mv
V2ViUHJvY2Vzc0Nvbm5lY3Rpb24uY3BwOgorICAgICAgICAqIFBsdWdpblByb2Nlc3MvbWFjL1Bs
dWdpblByb2Nlc3NNYWluTWFjLm1tOgorICAgICAgICAqIFBsdWdpblByb2Nlc3MvcXQvUGx1Z2lu
UHJvY2Vzc01haW5RdC5jcHA6CisgICAgICAgICogU2hhcmVkL0NoaWxkUHJvY2Vzcy5jcHA6Cisg
ICAgICAgICogU2hhcmVkL0NoaWxkUHJvY2Vzcy5oOgorICAgICAgICAqIFRhcmdldC5wcmk6Cisg
ICAgICAgICogVUlQcm9jZXNzL0FQSS9tYWMvRmluZEluZGljYXRvcldpbmRvdy5oOgorICAgICAg
ICAqIFVJUHJvY2Vzcy9BUEkvbWFjL1dLVmlldy5tbToKKyAgICAgICAgKiBVSVByb2Nlc3MvRHJh
d2luZ0FyZWFQcm94eUltcGwuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvTGF1bmNoZXIvVGhyZWFk
TGF1bmNoZXIuY3BwOgorICAgICAgICAqIFVJUHJvY2Vzcy9MYXVuY2hlci9ndGsvUHJvY2Vzc0xh
dW5jaGVyR3RrLmNwcDoKKyAgICAgICAgKiBVSVByb2Nlc3MvTGF1bmNoZXIvbWFjL1Byb2Nlc3NM
YXVuY2hlck1hYy5tbToKKyAgICAgICAgKiBVSVByb2Nlc3MvTGF1bmNoZXIvbWFjL1RocmVhZExh
dW5jaGVyTWFjLm1tOgorICAgICAgICAqIFVJUHJvY2Vzcy9MYXVuY2hlci9xdC9Qcm9jZXNzTGF1
bmNoZXJRdC5jcHA6CisgICAgICAgICogVUlQcm9jZXNzL0xhdW5jaGVyL3F0L1RocmVhZExhdW5j
aGVyUXQuY3BwOgorICAgICAgICAqIFVJUHJvY2Vzcy9MYXVuY2hlci93aW4vUHJvY2Vzc0xhdW5j
aGVyV2luLmNwcDoKKyAgICAgICAgKiBVSVByb2Nlc3MvTGF1bmNoZXIvd2luL1RocmVhZExhdW5j
aGVyV2luLmNwcDoKKyAgICAgICAgKiBVSVByb2Nlc3MvTGF5ZXJUcmVlSG9zdFByb3h5Lmg6Cisg
ICAgICAgICogVUlQcm9jZXNzL1BsdWdpbnMvUGx1Z2luUHJvY2Vzc1Byb3h5LmNwcDoKKyAgICAg
ICAgKiBVSVByb2Nlc3MvUmVzcG9uc2l2ZW5lc3NUaW1lci5jcHA6CisgICAgICAgICogVUlQcm9j
ZXNzL1Jlc3BvbnNpdmVuZXNzVGltZXIuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvVGlsZWREcmF3
aW5nQXJlYVByb3h5Lmg6CisgICAgICAgICogVUlQcm9jZXNzL1Zpc2l0ZWRMaW5rUHJvdmlkZXIu
aDoKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5jcHA6Cisg
ICAgICAgICogVUlQcm9jZXNzL1dlYkNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuaDoKKyAgICAgICAg
KiBVSVByb2Nlc3MvV2ViQ29udGV4dC5jcHA6CisgICAgICAgICogVUlQcm9jZXNzL3dpbi9XZWJW
aWV3LmNwcDoKKyAgICAgICAgKiBXZWJLaXQyLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6Cisg
ICAgICAgICogV2ViUHJvY2Vzcy9QbHVnaW5zL05ldHNjYXBlL05QUnVudGltZU9iamVjdE1hcC5o
OgorICAgICAgICAqIFdlYlByb2Nlc3MvUGx1Z2lucy9OZXRzY2FwZS9OZXRzY2FwZVBsdWdpbi5o
OgorICAgICAgICAqIFdlYlByb2Nlc3MvUGx1Z2lucy9OZXRzY2FwZS9OZXRzY2FwZVBsdWdpblN0
cmVhbS5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvUGx1Z2lucy9QbHVnaW5WaWV3Lmg6CisgICAg
ICAgICogV2ViUHJvY2Vzcy9XZWJDb25uZWN0aW9uVG9VSVByb2Nlc3MuY3BwOgorICAgICAgICAq
IFdlYlByb2Nlc3MvV2ViQ29ubmVjdGlvblRvVUlQcm9jZXNzLmg6CisgICAgICAgICogV2ViUHJv
Y2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJHcmFwaGljc0xheWVyLmg6CisgICAgICAgICogV2ViUHJv
Y2Vzcy9XZWJQYWdlL0RyYXdpbmdBcmVhSW1wbC5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2Vi
UGFnZS9FdmVudERpc3BhdGNoZXIuY3BwOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9Q
YWdlT3ZlcmxheS5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcDoK
KyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oOgorICAgICAgICAqIFdlYlBy
b2Nlc3MvV2ViUHJvY2Vzcy5jcHA6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmg6
CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3M6OnJ1bkxvb3ApOgorICAgICAgICAqIFdlYlBy
b2Nlc3MvbWFjL1dlYlByb2Nlc3NNYWluTWFjLm1tOgorICAgICAgICAqIFdlYlByb2Nlc3MvcXQv
V2ViUHJvY2Vzc01haW5RdC5jcHA6CisgICAgICAgICogV2ViUHJvY2Vzcy93aW4vV2ViUHJvY2Vz
c01haW5XaW4uY3BwOgorICAgICAgICAqIHdpbi9XZWJLaXQyLnZjcHJvajoKKworMjAxMi0wMS0x
NyAgU2FtIFdlaW5pZyAgPHNhbUB3ZWJraXQub3JnPgorCiAgICAgICAgIFJlbmFtZSBxdWlja0xv
b2tQcmV2aWV3SXRlbXNBdFdpbmRvd0xvY2F0aW9uOiB0byBxdWlja0xvb2tXaXRoRXZlbnQ6CiAg
ICAgICAgIDxyZGFyOi8vcHJvYmxlbS8xMDY4ODkxMz4KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbSBiL1NvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxp
c3QuYW0KaW5kZXggODQxZWY3MTlkMTU5NDE5NjM3MTdkNWRmYWU0ZWM4MmU2Yjg2OTY2ZC4uYmMy
NmUyOTU0MWZhMDE5ZmZkYzA2YzY0NDEwNWEyOWM2MDVhNWNiMCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtl
ZmlsZS5saXN0LmFtCkBAIC0zMjIzLDYgKzMyMjMsOCBAQCB3ZWJjb3JlX3NvdXJjZXMgKz0gXAog
CVNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1BvcHVwTWVudVN0eWxlLmggXAogCVNvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL1B1cmdlYWJsZUJ1ZmZlci5oIFwKIAlTb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9QdXJnZVByaW9yaXR5LmggXAorCVNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1J1bkxvb3AuY3Bw
IFwKKwlTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9SdW5Mb29wLmggXAogCVNvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL1J1bnRpbWVBcHBsaWNhdGlvbkNoZWNrcy5jcHAgXAogCVNvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL1J1bnRpbWVBcHBsaWNhdGlvbkNoZWNrcy5oIFwKIAlTb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9TY2hlbWVSZWdpc3RyeS5jcHAgXApAQCAtNDQ5OCw2ICs0NTAwLDcgQEAgd2ViY29y
ZWd0a19zb3VyY2VzICs9IFwKIAlTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ndGsvUmVuZGVyVGhl
bWVHdGsuaCBcCiAJU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3RrL1JlbmRlclRoZW1lR3RrMi5j
cHAgXAogCVNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9SZW5kZXJUaGVtZUd0azMuY3BwIFwK
KwlTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ndGsvUnVuTG9vcEd0ay5jcHAgXAogCVNvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2d0ay9TY3JvbGxiYXJUaGVtZUd0ay5jcHAgXAogCVNvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2d0ay9TY3JvbGxiYXJUaGVtZUd0ay5oIFwKIAlTb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ndGsvU2Nyb2xsYmFyVGhlbWVHdGsyLmNwcCBcCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9UYXJnZXQucHJpIGIvU291cmNlL1dlYkNvcmUvVGFyZ2V0LnByaQppbmRleCA1Nzg1
ZTAxMDQ2N2UwNzc5ZTk2YTg3YjZmYTEyMjA2N2NmMTEyYWFiLi44NWZlOTE5MDEzZmYyNjA5N2Rk
MGUxMDkxM2U2MWJjMzc0ZDI3ZDRhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9UYXJnZXQu
cHJpCisrKyBiL1NvdXJjZS9XZWJDb3JlL1RhcmdldC5wcmkKQEAgLTExMjYsNiArMTEyNiw3IEBA
IFNPVVJDRVMgKz0gXAogICAgIHBsYXRmb3JtL3RleHQvUmVndWxhckV4cHJlc3Npb24uY3BwIFwK
ICAgICBwbGF0Zm9ybS9QbGF0Zm9ybUV2ZW50LmNwcCBcCiAgICAgcGxhdGZvcm0vUnVudGltZUFw
cGxpY2F0aW9uQ2hlY2tzLmNwcCBcCisgICAgcGxhdGZvcm0vUnVuTG9vcC5jcHAgXAogICAgIHBs
YXRmb3JtL1NjaGVtZVJlZ2lzdHJ5LmNwcCBcCiAgICAgcGxhdGZvcm0vU2Nyb2xsYWJsZUFyZWEu
Y3BwIFwKICAgICBwbGF0Zm9ybS9TY3JvbGxBbmltYXRvci5jcHAgXApAQCAtMjc5OCw2ICsyNzk5
LDcgQEAgU09VUkNFUyArPSBcCiAgICAgcGxhdGZvcm0vcXQvRHJhZ0ltYWdlUXQuY3BwIFwKICAg
ICBwbGF0Zm9ybS9xdC9FdmVudExvb3BRdC5jcHAgXAogICAgIHBsYXRmb3JtL3F0L0ZpbGVTeXN0
ZW1RdC5jcHAgXAorICAgIHBsYXRmb3JtL3F0L1J1bkxvb3BRdC5jcHAgXAogICAgIHBsYXRmb3Jt
L3F0L1NoYXJlZEJ1ZmZlclF0LmNwcCBcCiAgICAgcGxhdGZvcm0vcXQvVGhpcmRQYXJ0eUNvb2tp
ZXNRdC5jcHAgXAogICAgIHBsYXRmb3JtL2dyYXBoaWNzL3F0L0ZvbnRDYWNoZVF0LmNwcCBcCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmV4cC5pbiBiL1NvdXJjZS9XZWJDb3Jl
L1dlYkNvcmUuZXhwLmluCmluZGV4IDNhNWIyOWJhZDFmNGVmZWEzYmRiOWE0MzE5NjRkODIzMTY4
MTllMWUuLjY0ZGYwMTc2YjY4ZmQxMTdkODZhNjNkZGE4NWVhYWI2ZjQ3NzRiNjggMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZXhwLmluCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dl
YkNvcmUuZXhwLmluCkBAIC0yODAsNyArMjgwLDYgQEAgX19aTjdXZWJDb3JlMTJQcmludENvbnRl
eHQ5c3Bvb2xQYWdlRVJOU18xNUdyYXBoaWNzQ29udGV4dEVpZgogX19aTjdXZWJDb3JlMTJQcmlu
dENvbnRleHQ5c3Bvb2xSZWN0RVJOU18xNUdyYXBoaWNzQ29udGV4dEVSS05TXzdJbnRSZWN0RQog
X19aTjdXZWJDb3JlMTJQcmludENvbnRleHRDMUVQTlNfNUZyYW1lRQogX19aTjdXZWJDb3JlMTJQ
cmludENvbnRleHREMUV2Ci1fX1pOSzdXZWJDb3JlMTJSZW5kZXJPYmplY3QxM3N0eWxlSW5SZWdp
b25FdgogX19aTjdXZWJDb3JlMTJSZW5kZXJPYmplY3QxNnJlcGFpbnRSZWN0YW5nbGVFUktOU183
SW50UmVjdEViCiBfX1pON1dlYkNvcmUxMlJlbmRlcldpZGdldDI4cmVzdW1lV2lkZ2V0SGllcmFy
Y2h5VXBkYXRlc0V2CiBfX1pON1dlYkNvcmUxMlJlbmRlcldpZGdldDI5c3VzcGVuZFdpZGdldEhp
ZXJhcmNoeVVwZGF0ZXNFdgpAQCAtMzY0LDkgKzM2Myw2IEBAIF9fWk43V2ViQ29yZTE0UmVzb3Vy
Y2VIYW5kbGUyMGZvcmNlQ29udGVudFNuaWZmaW5nRXYKIF9fWk43V2ViQ29yZTE0UmVzb3VyY2VI
YW5kbGUyNnN5bmNocm9ub3VzTG9hZFJ1bkxvb3BNb2RlRXYKIF9fWk43V2ViQ29yZTE0UmVzb3Vy
Y2VIYW5kbGUzNWNyZWF0ZVByaXZhdGVCcm93c2luZ1N0b3JhZ2VTZXNzaW9uRVBLMTBfX0NGU3Ry
aW5nCiBfX1pON1dlYkNvcmUxNFJlc291cmNlTG9hZGVyMTRjYW5jZWxsZWRFcnJvckV2Ci0jaWYg
RU5BQkxFKFNWRykKLV9fWk43V2ViQ29yZTE0U1ZHU01JTEVsZW1lbnQxM2lzU01JTEVsZW1lbnRF
UE5TXzROb2RlRQotI2VuZGlmCiBfX1pON1dlYkNvcmUxNFNjaGVtZVJlZ2lzdHJ5MjRyZWdpc3Rl
clVSTFNjaGVtZUFzTG9jYWxFUktOM1dURjZTdHJpbmdFCiBfX1pON1dlYkNvcmUxNFNjaGVtZVJl
Z2lzdHJ5MjVyZWdpc3RlclVSTFNjaGVtZUFzU2VjdXJlRVJLTjNXVEY2U3RyaW5nRQogX19aTjdX
ZWJDb3JlMTRTY2hlbWVSZWdpc3RyeTMycmVnaXN0ZXJVUkxTY2hlbWVBc0VtcHR5RG9jdW1lbnRF
UktOM1dURjZTdHJpbmdFCkBAIC02MTUsOSArNjExLDYgQEAgX19aTjdXZWJDb3JlMjFNZW1vcnlQ
cmVzc3VyZUhhbmRsZXI3aW5zdGFsbEV2CiBfX1pON1dlYkNvcmUyMVBsYXRmb3JtS2V5Ym9hcmRF
dmVudDI0ZGlzYW1iaWd1YXRlS2V5RG93bkV2ZW50RU5TXzEzUGxhdGZvcm1FdmVudDRUeXBlRWIK
IF9fWk43V2ViQ29yZTIxUmVzb3VyY2VMb2FkU2NoZWR1bGVyMjBzZXJ2ZVBlbmRpbmdSZXF1ZXN0
c0VOU18yMFJlc291cmNlTG9hZFByaW9yaXR5RQogX19aTjdXZWJDb3JlMjFSZXNvdXJjZUxvYWRT
Y2hlZHVsZXIyNHNjaGVkdWxlUGx1Z2luU3RyZWFtTG9hZEVQTlNfNUZyYW1lRVBOU18zMk5ldHNj
YXBlUGx1Z0luU3RyZWFtTG9hZGVyQ2xpZW50RVJLTlNfMTVSZXNvdXJjZVJlcXVlc3RFCi0jaWYg
RU5BQkxFKFNWRykKLV9fWk43V2ViQ29yZTIxU1ZHRG9jdW1lbnRFeHRlbnNpb25zMjFzYW1wbGVB
bmltYXRpb25BdFRpbWVFUktOM1dURjZTdHJpbmdFUE5TXzE0U1ZHU01JTEVsZW1lbnRFZAotI2Vu
ZGlmCiBfX1pON1dlYkNvcmUyMVNlcmlhbGl6ZWRTY3JpcHRWYWx1ZTExZGVzZXJpYWxpemVFUEsx
NU9wYXF1ZUpTQ29udGV4dFBQSzEzT3BhcXVlSlNWYWx1ZQogX19aTjdXZWJDb3JlMjFTZXJpYWxp
emVkU2NyaXB0VmFsdWU2Y3JlYXRlRVBLMTVPcGFxdWVKU0NvbnRleHRQSzEzT3BhcXVlSlNWYWx1
ZVBTNl8KIF9fWk43V2ViQ29yZTIxU2VyaWFsaXplZFNjcmlwdFZhbHVlQzFFUk4zV1RGNlZlY3Rv
ckloTG0wRUVFCkBAIC05MDMsNiArODk2LDE3IEBAIF9fWk43V2ViQ29yZTdJbnRSZWN0NXVuaXRl
RVJLUzBfCiBfX1pON1dlYkNvcmU3SW50UmVjdDlpbnRlcnNlY3RFUktTMF8KIF9fWk43V2ViQ29y
ZTdJbnRSZWN0QzFFUktOU185RmxvYXRSZWN0RQogX19aTjdXZWJDb3JlN0ludFNpemVDMUVSSzZD
R1NpemUKK19fWk43V2ViQ29yZTdSdW5Mb29wMTRydW5Gb3JEdXJhdGlvbkVkCitfX1pON1dlYkNv
cmU3UnVuTG9vcDIxaW5pdGlhbGl6ZU1haW5SdW5Mb29wRXYKK19fWk43V2ViQ29yZTdSdW5Mb29w
M3J1bkV2CitfX1pON1dlYkNvcmU3UnVuTG9vcDRtYWluRXYKK19fWk43V2ViQ29yZTdSdW5Mb29w
NHN0b3BFdgorX19aTjdXZWJDb3JlN1J1bkxvb3A3Y3VycmVudEV2CitfX1pON1dlYkNvcmU3UnVu
TG9vcDhkaXNwYXRjaEVSS04zV1RGOEZ1bmN0aW9uSUZ2dkVFRQorX19aTjdXZWJDb3JlN1J1bkxv
b3A5VGltZXJCYXNlNHN0b3BFdgorX19aTjdXZWJDb3JlN1J1bkxvb3A5VGltZXJCYXNlNXN0YXJ0
RWRiCitfX1pON1dlYkNvcmU3UnVuTG9vcDlUaW1lckJhc2VDMkVQUzBfCitfX1pON1dlYkNvcmU3
UnVuTG9vcDlUaW1lckJhc2VEMkV2CiBfX1pON1dlYkNvcmU3VGV4dFJ1bjE5YWxsb3dzUm91bmRp
bmdIYWNrc0V2CiBfX1pON1dlYkNvcmU3VGV4dFJ1bjIxc19hbGxvd3NSb3VuZGluZ0hhY2tzRQog
X19aTjdXZWJDb3JlN1RleHRSdW4yMnNldEFsbG93c1JvdW5kaW5nSGFja3NFYgpAQCAtOTEyLDE1
ICs5MTYsOSBAQCBfX1pON1dlYkNvcmU3cmVwbGFjZUVSTjNXVEY2U3RyaW5nRVJLTlNfMTdSZWd1
bGFyRXhwcmVzc2lvbkVSS1MxXwogX19aTjdXZWJDb3JlN3RvUmFuZ2VFTjNKU0M3SlNWYWx1ZUUK
IF9fWk43V2ViQ29yZThEb2N1bWVudDExY3JlYXRlUmFuZ2VFdgogX19aTjdXZWJDb3JlOERvY3Vt
ZW50MTJ1cGRhdGVMYXlvdXRFdgotI2lmIEVOQUJMRShTVkcpCi1fX1pON1dlYkNvcmU4RG9jdW1l
bnQxM3N2Z0V4dGVuc2lvbnNFdgotI2VuZGlmCiBfX1pON1dlYkNvcmU4RG9jdW1lbnQxNHNldEZv
Y3VzZWROb2RlRU4zV1RGMTBQYXNzUmVmUHRySU5TXzROb2RlRUVFCiBfX1pON1dlYkNvcmU4RG9j
dW1lbnQxNmlzUGFnZUJveFZpc2libGVFaQogX19aTjdXZWJDb3JlOERvY3VtZW50MTdnZXRGb2N1
c2FibGVOb2Rlc0VSTjNXVEY2VmVjdG9ySU5TMV82UmVmUHRySU5TXzROb2RlRUVFTG0wRUVFCi0j
aWYgRU5BQkxFKFNWRykKLV9fWk43V2ViQ29yZThEb2N1bWVudDE5YWNjZXNzU1ZHRXh0ZW5zaW9u
c0V2Ci0jZW5kaWYKIF9fWk43V2ViQ29yZThEb2N1bWVudDIwc3R5bGVTZWxlY3RvckNoYW5nZWRF
TlNfMjNTdHlsZVNlbGVjdG9yVXBkYXRlRmxhZ0UKIF9fWk43V2ViQ29yZThEb2N1bWVudDIyY3Jl
YXRlRG9jdW1lbnRGcmFnbWVudEV2CiBfX1pON1dlYkNvcmU4RG9jdW1lbnQyM2RpZEFkZFdoZWVs
RXZlbnRIYW5kbGVyRXYKQEAgLTExODgsNiArMTE4Niw3IEBAIF9fWk5LN1dlYkNvcmUxMVNjcmlw
dFZhbHVlOWdldFN0cmluZ0VQTjNKU0M5RXhlY1N0YXRlRVJOM1dURjZTdHJpbmdFCiBfX1pOSzdX
ZWJDb3JlMTJJY29uRGF0YWJhc2UxMmRhdGFiYXNlUGF0aEV2CiBfX1pOSzdXZWJDb3JlMTJJY29u
RGF0YWJhc2UyNHNob3VsZFN0b3BUaHJlYWRBY3Rpdml0eUV2CiBfX1pOSzdXZWJDb3JlMTJJY29u
RGF0YWJhc2U5aXNFbmFibGVkRXYKK19fWk5LN1dlYkNvcmUxMlJlbmRlck9iamVjdDEzc3R5bGVJ
blJlZ2lvbkV2CiBfX1pOSzdXZWJDb3JlMTJSZW5kZXJPYmplY3QxNGVuY2xvc2luZ0xheWVyRXYK
IF9fWk5LN1dlYkNvcmUxMlJlbmRlck9iamVjdDE1bG9jYWxUb0Fic29sdXRlRVJLTlNfMTBGbG9h
dFBvaW50RWJiCiBfX1pOSzdXZWJDb3JlMTJSZW5kZXJPYmplY3QyM2Fic29sdXRlQm91bmRpbmdC
b3hSZWN0RWIKQEAgLTEyNDksOCArMTI0OCw4IEBAIF9fWk5LN1dlYkNvcmUxNFJlc291cmNlTG9h
ZGVyMTFmcmFtZUxvYWRlckV2CiBfX1pOSzdXZWJDb3JlMTRTY3JvbGxhYmxlQXJlYTE0c2Nyb2xs
QW5pbWF0b3JFdgogX19aTks3V2ViQ29yZTE0U2Nyb2xsYWJsZUFyZWEyMGNvbnRlbnRBcmVhV2ls
bFBhaW50RXYKIF9fWk5LN1dlYkNvcmUxNFNjcm9sbGFibGVBcmVhMjJtb3VzZUV4aXRlZENvbnRl
bnRBcmVhRXYKLV9fWk5LN1dlYkNvcmUxNFNjcm9sbGFibGVBcmVhMjNtb3VzZU1vdmVkSW5Db250
ZW50QXJlYUV2CiBfX1pOSzdXZWJDb3JlMTRTY3JvbGxhYmxlQXJlYTIzbW91c2VFbnRlcmVkQ29u
dGVudEFyZWFFdgorX19aTks3V2ViQ29yZTE0U2Nyb2xsYWJsZUFyZWEyM21vdXNlTW92ZWRJbkNv
bnRlbnRBcmVhRXYKIF9fWk5LN1dlYkNvcmUxNFNlY3VyaXR5T3JpZ2luMTBjYW5EaXNwbGF5RVJL
TlNfNEtVUkxFCiBfX1pOSzdXZWJDb3JlMTRTZWN1cml0eU9yaWdpbjE4ZGF0YWJhc2VJZGVudGlm
aWVyRXYKIF9fWk5LN1dlYkNvcmUxNFNlY3VyaXR5T3JpZ2luNWVxdWFsRVBLUzBfCkBAIC0xNDE4
LDYgKzE0MTcsNyBAQCBfX1pOSzdXZWJDb3JlN0ludFJlY3Q4Y29udGFpbnNFUktTMF8KIF9fWk5L
N1dlYkNvcmU3SW50UmVjdGN2NkNHUmVjdEV2CiBfX1pOSzdXZWJDb3JlN0ludFJlY3RjdjdfTlNS
ZWN0RXYKIF9fWk5LN1dlYkNvcmU3SW50U2l6ZWN2NkNHU2l6ZUV2CitfX1pOSzdXZWJDb3JlN1J1
bkxvb3A5VGltZXJCYXNlOGlzQWN0aXZlRXYKIF9fWk5LN1dlYkNvcmU4RG9jdW1lbnQxMHJlbmRl
clZpZXdFdgogX19aTks3V2ViQ29yZThEb2N1bWVudDExY29tcGxldGVVUkxFUktOM1dURjZTdHJp
bmdFCiBfX1pOSzdXZWJDb3JlOERvY3VtZW50MTNheE9iamVjdENhY2hlRXYKQEAgLTE1OTgsNiAr
MTU5OCwxMyBAQCBfd2tDcmVhdGVBWFRleHRNYXJrZXIKIF93a0dldEJ5dGVzRnJvbUFYVGV4dE1h
cmtlcgogX3drQ3JlYXRlQVhVSUVsZW1lbnRSZWYKIAorI2lmIEVOQUJMRShTVkcpCitfX1pON1dl
YkNvcmUxNFNWR1NNSUxFbGVtZW50MTNpc1NNSUxFbGVtZW50RVBOU180Tm9kZUUKK19fWk43V2Vi
Q29yZTIxU1ZHRG9jdW1lbnRFeHRlbnNpb25zMjFzYW1wbGVBbmltYXRpb25BdFRpbWVFUktOM1dU
RjZTdHJpbmdFUE5TXzE0U1ZHU01JTEVsZW1lbnRFZAorX19aTjdXZWJDb3JlOERvY3VtZW50MTNz
dmdFeHRlbnNpb25zRXYKK19fWk43V2ViQ29yZThEb2N1bWVudDE5YWNjZXNzU1ZHRXh0ZW5zaW9u
c0V2CisjZW5kaWYKKwogI2lmIEVOQUJMRSgzRF9SRU5ERVJJTkcpCiBfV2ViQ29yZUhhczNEUmVu
ZGVyaW5nCiAjZW5kaWYKQEAgLTIwNTMsNiArMjA2MCwzIEBAIF9fWk43V2ViQ29yZTIwU2Nyb2xs
aW5nQ29vcmRpbmF0b3IxOGhhbmRsZUdlc3R1cmVFdmVudEVSS05TXzIwUGxhdGZvcm1HZXN0dXJl
RXZlCiAjZW5kaWYKIAogI2VuZGlmCi0KLQotCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9X
ZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmNw
cm9qL1dlYkNvcmUudmNwcm9qCmluZGV4IGRhMjhkMjMzZGVkZDk4ODVkZmY2NjRlM2JhOWUxOWZi
ZWYzYjVmODIuLmI5MzhkZmJlZTgwZmE2NGMzYmJiYjVkZTA0YzAwZGM2MGZjZGEzNjAgMTAwNzU1
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qCisrKyBi
L1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qCkBAIC0yNjY1MCw2
ICsyNjY1MCwxNCBAQAogCQkJCT4KIAkJCTwvRmlsZT4KIAkJCTxGaWxlCisJCQkJUmVsYXRpdmVQ
YXRoPSIuLlxwbGF0Zm9ybVxSdW5Mb29wLmNwcCIKKwkJCQk+CisJCQk8L0ZpbGU+CisJCQk8Rmls
ZQorCQkJCVJlbGF0aXZlUGF0aD0iLi5ccGxhdGZvcm1cUnVuTG9vcC5oIgorCQkJCT4KKwkJCTwv
RmlsZT4KKwkJCTxGaWxlCiAJCQkJUmVsYXRpdmVQYXRoPSIuLlxwbGF0Zm9ybVxSdW50aW1lQXBw
bGljYXRpb25DaGVja3MuY3BwIgogCQkJCT4KIAkJCTwvRmlsZT4KQEAgLTI3MDYxLDYgKzI3MDY5
LDEwIEBACiAJCQkJCT4KIAkJCQk8L0ZpbGU+CiAJCQkJPEZpbGUKKwkJCQkJUmVsYXRpdmVQYXRo
PSIuLlxwbGF0Zm9ybVx3aW5cUnVuTG9vcFdpbi5jcHAiCisJCQkJCT4KKwkJCQk8L0ZpbGU+CisJ
CQkJPEZpbGUKIAkJCQkJUmVsYXRpdmVQYXRoPSIuLlxwbGF0Zm9ybVx3aW5cU2Nyb2xsYmFyVGhl
bWVTYWZhcmkuY3BwIgogCQkJCQk+CiAJCQkJPC9GaWxlPgpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYkNvcmUv
V2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDcyYzNiNTM2ODc3MWJmYWEw
ZjRiMDUzMGUwODgyZTMyYTcxNWRlNTIuLjBiYjM3Y2Y2OTBkNGRjMjY1NzQ2MjhiOWZhNTZkNWI0
ZWFiMDJmYWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9q
ZWN0LnBieHByb2oKQEAgLTQ5ODMsNiArNDk4Myw5IEBACiAJCUJDMDZFRTA0MEJGRDcxQUEwMDg1
NkU5RCAvKiBKU0hUTUxUYWJsZUVsZW1lbnQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gQkMwNkVFMDIwQkZENzFBQTAwODU2RTlEIC8qIEpTSFRNTFRh
YmxlRWxlbWVudC5jcHAgKi87IH07CiAJCUJDMDZFRTA1MEJGRDcxQUEwMDg1NkU5RCAvKiBKU0hU
TUxUYWJsZUVsZW1lbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IEJDMDZFRTAzMEJGRDcxQUEwMDg1NkU5RCAvKiBKU0hUTUxUYWJsZUVsZW1lbnQuaCAq
LzsgfTsKIAkJQkMwNzNCQUEwQzM5OUIxRjAwMEY1OTc5IC8qIEZsb2F0Q29udmVyc2lvbi5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkMwNzNCQTkwQzM5
OUIxRjAwMEY1OTc5IC8qIEZsb2F0Q29udmVyc2lvbi5oICovOyB9OworCQlCQzBCMzU4MzE0QzRG
OTU0MDA1NUUyMkEgLyogUnVuTG9vcE1hYy5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IEJDMEIzNTgyMTRDNEY5NTQwMDU1RTIyQSAvKiBSdW5Mb29wTWFj
Lm1tICovOyB9OworCQlCQzBCMzU4NzE0QzRGOTgzMDA1NUUyMkEgLyogUnVuTG9vcC5jcHAgaW4g
U291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCQzBCMzU4NTE0QzRG
OTgzMDA1NUUyMkEgLyogUnVuTG9vcC5jcHAgKi87IH07CisJCUJDMEIzNTg4MTRDNEY5ODMwMDU1
RTIyQSAvKiBSdW5Mb29wLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSBCQzBCMzU4NjE0QzRGOTgzMDA1NUUyMkEgLyogUnVuTG9vcC5oICovOyBzZXR0aW5n
cyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCUJDMEIzNkE0MENEM0M2N0Mw
MEFDN0VCNSAvKiBDb25zb2xlLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IEJDMEIzNkExMENEM0M2N0MwMEFDN0VCNSAvKiBDb25zb2xlLmNwcCAqLzsg
fTsKIAkJQkMwQjM2QTUwQ0QzQzY3QzAwQUM3RUI1IC8qIENvbnNvbGUuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDMEIzNkEyMENEM0M2N0MwMEFDN0VC
NSAvKiBDb25zb2xlLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsg
fTsgfTsKIAkJQkMxMjRFRTcwQzI2NDFDRDAwOUUyMzQ5IC8qIEJhckluZm8uY3BwIGluIFNvdXJj
ZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkMxMjRFRTQwQzI2NDFDRDAw
OUUyMzQ5IC8qIEJhckluZm8uY3BwICovOyB9OwpAQCAtNzIyNyw3ICs3MjMwLDYgQEAKIAkJMUFC
RkU3NTIwQ0Q5NjhEMDAwRkU0ODM0IC8qIFNRTFRyYW5zYWN0aW9uLmNwcCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFNRTFRyYW5zYWN0aW9uLmNwcDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJMUFDMjI2MEEwREI2OUYxOTAwODlCNjY5IC8qIEpTRE9NQXBwbGlj
YXRpb25DYWNoZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU0RP
TUFwcGxpY2F0aW9uQ2FjaGUuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkxQUMy
MjYwQjBEQjY5RjE5MDA4OUI2NjkgLyogSlNET01BcHBsaWNhdGlvbkNhY2hlLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTRE9NQXBwbGljYXRpb25DYWNoZS5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwotCQkxQUM2OTI2OTE0QTEyNTMxMDBCRDg1RjEgLyogU2Nyb2xs
YWJsZUFyZWFDbGllbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU2Nyb2xs
YWJsZUFyZWFDbGllbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMUFDRTUzREQw
QThEMTg4MTAwMjI5NDdEIC8qIEpTRE9NUGFyc2VyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5jcHA7IHBhdGggPSBKU0RPTVBhcnNlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCTFBQ0U1M0RFMEE4RDE4ODEwMDIyOTQ3RCAvKiBKU0RPTVBhcnNlci5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNET01QYXJzZXIuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJMUFDRTUzRTEwQThEMThFNzAwMjI5NDdEIC8qIERPTVBhcnNlci5jcHAg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gRE9NUGFyc2VyLmNwcDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTExODQ4LDYgKzExODUwLDkgQEAKIAkJQkMwNkYy
NEMwNkQxOEE3RTAwNEE2RkEzIC8qIFhTTFRQcm9jZXNzb3IuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgaW5kZW50V2lkdGggPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gWFNMVFByb2Nlc3Nvci5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB0YWJXaWR0aCA9IDg7IHVzZXNUYWJzID0gMDsgfTsKIAkJQkMwNkYy
NEQwNkQxOEE3RTAwNEE2RkEzIC8qIFhTTFRQcm9jZXNzb3JMaWJ4c2x0LmNwcCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgaW5kZW50V2lkdGggPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFhTTFRQcm9jZXNz
b3JMaWJ4c2x0LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgdGFiV2lkdGggPSA4OyB1c2Vz
VGFicyA9IDA7IH07CiAJCUJDMDczQkE5MEMzOTlCMUYwMDBGNTk3OSAvKiBGbG9hdENvbnZlcnNp
b24uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEZsb2F0Q29udmVyc2lvbi5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlCQzBCMzU4MjE0QzRGOTU0MDA1NUUyMkEg
LyogUnVuTG9vcE1hYy5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9
IFJ1bkxvb3BNYWMubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUJDMEIzNTg1MTRD
NEY5ODMwMDU1RTIyQSAvKiBSdW5Mb29wLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNw
cDsgcGF0aCA9IFJ1bkxvb3AuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlCQzBC
MzU4NjE0QzRGOTgzMDA1NUUyMkEgLyogUnVuTG9vcC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBSdW5Mb29wLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUJDMEIz
NkExMENEM0M2N0MwMEFDN0VCNSAvKiBDb25zb2xlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5jcHA7IHBhdGggPSBDb25zb2xlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJQkMwQjM2QTIwQ0QzQzY3QzAwQUM3RUI1IC8qIENvbnNvbGUuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IENvbnNvbGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJQkMwQjM2QTMwQ0QzQzY3QzAwQUM3RUI1IC8qIENvbnNvbGUuaWRsICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHRl
eHQ7IHBhdGggPSBDb25zb2xlLmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTE0
OTMwLDYgKzE0OTM1LDcgQEAKIAkJCQlEMzlEMDA2QzExRjhFMzA4MDA2MDQxRjIgLyogUG9wdXBN
ZW51TWFjLmggKi8sCiAJCQkJMDY2OEUxOEUwQUREOTY0MDAwNDEyOEUwIC8qIFBvcHVwTWVudU1h
Yy5tbSAqLywKIAkJCQlFNEQ2ODc3NjBFRDdBRTNEMDA2RUE5NzggLyogUHVyZ2VhYmxlQnVmZmVy
TWFjLmNwcCAqLywKKwkJCQlCQzBCMzU4MjE0QzRGOTU0MDA1NUUyMkEgLyogUnVuTG9vcE1hYy5t
bSAqLywKIAkJCQkxQ0UyNEY5NjBEN0NBRjBFMDA3RTA0QzIgLyogU2NoZWR1bGVQYWlyTWFjLm1t
ICovLAogCQkJCUJDQUUxRkE1MTI5MzlEQjcwMDRDQjAyNiAvKiBTY3JvbGxBbmltYXRvck1hYy5o
ICovLAogCQkJCUJDNTExNTZEMTJCMTc0OUMwMEM5Njc1NCAvKiBTY3JvbGxBbmltYXRvck1hYy5t
bSAqLywKQEAgLTE5NjE5LDYgKzE5NjI1LDggQEAKIAkJCQlCQzNCRTEyQTBFOTgwOTJGMDA4MzU1
ODggLyogUG9wdXBNZW51U3R5bGUuaCAqLywKIAkJCQlFNEQ2ODc3ODBFRDdBRTRGMDA2RUE5Nzgg
LyogUHVyZ2VhYmxlQnVmZmVyLmggKi8sCiAJCQkJN0UzM0NEMDAxMjdGMzQwRDAwQkU4RjE3IC8q
IFB1cmdlUHJpb3JpdHkuaCAqLywKKwkJCQlCQzBCMzU4NTE0QzRGOTgzMDA1NUUyMkEgLyogUnVu
TG9vcC5jcHAgKi8sCisJCQkJQkMwQjM1ODYxNEM0Rjk4MzAwNTVFMjJBIC8qIFJ1bkxvb3AuaCAq
LywKIAkJCQkxQzYzQTI0NjBGNzE2NDY2MDBDMDlENUEgLyogUnVuTG9vcFRpbWVyLmggKi8sCiAJ
CQkJMjkzRUFFMjAxMzU2QjMyRTAwNjdBQ0Y5IC8qIFJ1bnRpbWVBcHBsaWNhdGlvbkNoZWNrcy5j
cHAgKi8sCiAJCQkJMjkzRUFFMUUxMzU2QjJGRTAwNjdBQ0Y5IC8qIFJ1bnRpbWVBcHBsaWNhdGlv
bkNoZWNrcy5oICovLApAQCAtMTk2MjYsNyArMTk2MzQsNiBAQAogCQkJCTUxNjJDN0YzMTFGNzdF
RkIwMDYxMkVGRSAvKiBTY2hlbWVSZWdpc3RyeS5oICovLAogCQkJCUJDOEFFMzRDMTJFQTA5NkEw
MEVCM0FFNiAvKiBTY3JvbGxhYmxlQXJlYS5jcHAgKi8sCiAJCQkJQkM4QUUzNEQxMkVBMDk2QTAw
RUIzQUU2IC8qIFNjcm9sbGFibGVBcmVhLmggKi8sCi0JCQkJMUFDNjkyNjkxNEExMjUzMTAwQkQ4
NUYxIC8qIFNjcm9sbGFibGVBcmVhQ2xpZW50LmggKi8sCiAJCQkJQ0EzQkY2N0IxMEQ5OUJBRTAw
RTZDRTUzIC8qIFNjcm9sbEFuaW1hdG9yLmNwcCAqLywKIAkJCQlDQTNCRjY3RDEwRDk5QkFFMDBF
NkNFNTMgLyogU2Nyb2xsQW5pbWF0b3IuaCAqLywKIAkJCQlCQ0FBOTBDMjBBN0VCQTYwMDA4QjEy
MjkgLyogU2Nyb2xsYmFyLmNwcCAqLywKQEAgLTI0MDI4LDYgKzI0MDM1LDcgQEAKIAkJCQk1MEFD
RTJDQjE0QjVENzkzMDA0NDY2NjYgLyogQ3VzdG9tRmlsdGVyT3BlcmF0aW9uLmggaW4gSGVhZGVy
cyAqLywKIAkJCQk3QUNEODhENDE0QzA4QkQ2MDA4NEVERDIgLyogSW5zcGVjdG9ySW5kZXhlZERC
QWdlbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCTkxMDg5RDMyMTRDMzM2MDAwMDVBRkM0OSAvKiBK
U1VpbnQ4Q2xhbXBlZEFycmF5LmggaW4gSGVhZGVycyAqLywKKwkJCQlCQzBCMzU4ODE0QzRGOTgz
MDA1NUUyMkEgLyogUnVuTG9vcC5oIGluIEhlYWRlcnMgKi8sCiAJCQkpOwogCQkJcnVuT25seUZv
ckRlcGxveW1lbnRQb3N0cHJvY2Vzc2luZyA9IDA7CiAJCX07CkBAIC0yNjk0NSw2ICsyNjk1Myw4
IEBACiAJCQkJN0FDRDg4RDMxNEMwOEJENjAwODRFREQyIC8qIEluc3BlY3RvckluZGV4ZWREQkFn
ZW50LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTkxQTM5MDVCMTRDMEY2MTEwMEY2NzkwMSAvKiBK
U1VpbnQ4Q2xhbXBlZEFycmF5Q3VzdG9tLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTkxMDg5RDMz
MTRDMzM2MDUwMDVBRkM0OSAvKiBKU1VpbnQ4Q2xhbXBlZEFycmF5LmNwcCBpbiBTb3VyY2VzICov
LAorCQkJCUJDMEIzNTgzMTRDNEY5NTQwMDU1RTIyQSAvKiBSdW5Mb29wTWFjLm1tIGluIFNvdXJj
ZXMgKi8sCisJCQkJQkMwQjM1ODcxNEM0Rjk4MzAwNTVFMjJBIC8qIFJ1bkxvb3AuY3BwIGluIFNv
dXJjZXMgKi8sCiAJCQkpOwogCQkJcnVuT25seUZvckRlcGxveW1lbnRQb3N0cHJvY2Vzc2luZyA9
IDA7CiAJCX07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9SdW5Mb29wLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1J1bkxvb3AuY3BwCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjQ0MWM1
ODYzZjY2YjY2OTAxMDE4MmZiMTU0ZDhhZGQ0MzYxM2UwOTgKLS0tIC9kZXYvbnVsbAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9SdW5Mb29wLmNwcApAQCAtMCwwICsxLDc0IEBACisvKgor
ICogQ29weXJpZ2h0IChDKSAyMDEwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAq
CisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJp
YnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXBy
b2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1l
bnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1
dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5E
IElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElF
RCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBM
SUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJ
Q1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExF
IElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJ
TkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVO
VElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQg
T0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBP
UiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBB
TkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBT
VFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJ
U0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FS
RSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0Uu
CisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlJ1bkxvb3AuaCIKKworI2lu
Y2x1ZGUgPHd0Zi9TdGRMaWJFeHRyYXMuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitzdGF0
aWMgUnVuTG9vcCogc19tYWluUnVuTG9vcDsKKwordm9pZCBSdW5Mb29wOjppbml0aWFsaXplTWFp
blJ1bkxvb3AoKQoreworICAgIGlmIChzX21haW5SdW5Mb29wKQorICAgICAgICByZXR1cm47Cisg
ICAgc19tYWluUnVuTG9vcCA9IFJ1bkxvb3A6OmN1cnJlbnQoKTsKK30KKworUnVuTG9vcCogUnVu
TG9vcDo6Y3VycmVudCgpCit7CisgICAgREVGSU5FX1NUQVRJQ19MT0NBTChXVEY6OlRocmVhZFNw
ZWNpZmljPFJ1bkxvb3A+LCBydW5Mb29wRGF0YSwgKCkpOworICAgIHJldHVybiAmKnJ1bkxvb3BE
YXRhOworfQorCitSdW5Mb29wKiBSdW5Mb29wOjptYWluKCkKK3sKKyAgICBBU1NFUlQoc19tYWlu
UnVuTG9vcCk7CisgICAgcmV0dXJuIHNfbWFpblJ1bkxvb3A7Cit9CisKK3ZvaWQgUnVuTG9vcDo6
cGVyZm9ybVdvcmsoKQoreworICAgIFZlY3RvcjxGdW5jdGlvbjx2b2lkKCk+ID4gZnVuY3Rpb25R
dWV1ZTsKKyAgICB7CisgICAgICAgIE11dGV4TG9ja2VyIGxvY2tlcihtX2Z1bmN0aW9uUXVldWVM
b2NrKTsKKyAgICAgICAgbV9mdW5jdGlvblF1ZXVlLnN3YXAoZnVuY3Rpb25RdWV1ZSk7CisgICAg
fQorCisgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBmdW5jdGlvblF1ZXVlLnNpemUoKTsgKytp
KQorICAgICAgICBmdW5jdGlvblF1ZXVlW2ldKCk7Cit9CisKK3ZvaWQgUnVuTG9vcDo6ZGlzcGF0
Y2goY29uc3QgRnVuY3Rpb248dm9pZCgpPiYgZnVuY3Rpb24pCit7CisgICAgTXV0ZXhMb2NrZXIg
bG9ja2VyKG1fZnVuY3Rpb25RdWV1ZUxvY2spOworICAgIG1fZnVuY3Rpb25RdWV1ZS5hcHBlbmQo
ZnVuY3Rpb24pOworCisgICAgd2FrZVVwKCk7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1J1bkxvb3AuaCBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL1J1bkxvb3AuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42ZTA0MzI2ZmU1Mzc2ZTkyNTZk
YjczNmRkZjgyOGE5NTExZmNmOGM3Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vUnVuTG9vcC5oCkBAIC0wLDAgKzEsMTY1IEBACisvKgorICogQ29weXJpZ2h0IChD
KSAyMDEwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykg
MjAxMCBOb2tpYSBDb3Jwb3JhdGlvbiBhbmQvb3IgaXRzIHN1YnNpZGlhcnkoLWllcykKKyAqIFBv
cnRpb25zIENvcHlyaWdodCAoYykgMjAxMCBNb3Rvcm9sYSBNb2JpbGl0eSwgSW5jLiAgQWxsIHJp
Z2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh
bmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBl
cm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1l
dDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmlu
YXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGlu
IHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVk
IHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVE
IEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5Z
IEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBG
SVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5P
IEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxF
IEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZ
LCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExP
U1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9O
KSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIg
SU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVH
TElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBV
U0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJ
VFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBSdW5Mb29wX2gKKyNkZWZpbmUgUnVu
TG9vcF9oCisKKyNpbmNsdWRlIDx3dGYvRm9yd2FyZC5oPgorI2luY2x1ZGUgPHd0Zi9GdW5jdGlv
bmFsLmg+CisjaW5jbHVkZSA8d3RmL0hhc2hNYXAuaD4KKyNpbmNsdWRlIDx3dGYvVGhyZWFkU3Bl
Y2lmaWMuaD4KKyNpbmNsdWRlIDx3dGYvVGhyZWFkaW5nLmg+CisjaW5jbHVkZSA8d3RmL1ZlY3Rv
ci5oPgorCisjaWYgUExBVEZPUk0oR1RLKQorI2luY2x1ZGUgPHd0Zi9nb2JqZWN0L0dSZWZQdHIu
aD4KK3R5cGVkZWYgc3RydWN0IF9HU291cmNlIEdTb3VyY2U7Cit0eXBlZGVmIHN0cnVjdCBfR01h
aW5Mb29wIEdNYWluTG9vcDsKK3R5cGVkZWYgc3RydWN0IF9HTWFpbkNvbnRleHQgR01haW5Db250
ZXh0OwordHlwZWRlZiBpbnQgZ2Jvb2xlYW47CisjZW5kaWYKKworbmFtZXNwYWNlIFdlYkNvcmUg
eworCitjbGFzcyBSdW5Mb29wIHsKK3B1YmxpYzoKKyAgICAvLyBNdXN0IGJlIGNhbGxlZCBmcm9t
IHRoZSBtYWluIHRocmVhZC4KKyAgICBzdGF0aWMgdm9pZCBpbml0aWFsaXplTWFpblJ1bkxvb3Ao
KTsKKworICAgIHN0YXRpYyBSdW5Mb29wKiBjdXJyZW50KCk7CisgICAgc3RhdGljIFJ1bkxvb3Aq
IG1haW4oKTsKKworICAgIHZvaWQgZGlzcGF0Y2goY29uc3QgRnVuY3Rpb248dm9pZCgpPiYpOwor
CisgICAgc3RhdGljIHZvaWQgcnVuKCk7CisgICAgdm9pZCBzdG9wKCk7CisKKyNpZiBQTEFURk9S
TShNQUMpCisgICAgdm9pZCBydW5Gb3JEdXJhdGlvbihkb3VibGUgZHVyYXRpb24pOworI2VuZGlm
CisgICAgCisgICAgY2xhc3MgVGltZXJCYXNlIHsKKyAgICAgICAgZnJpZW5kIGNsYXNzIFJ1bkxv
b3A7CisgICAgcHVibGljOgorICAgICAgICBUaW1lckJhc2UoUnVuTG9vcCopOworICAgICAgICB2
aXJ0dWFsIH5UaW1lckJhc2UoKTsKKworICAgICAgICB2b2lkIHN0YXJ0UmVwZWF0aW5nKGRvdWJs
ZSByZXBlYXRJbnRlcnZhbCkgeyBzdGFydChyZXBlYXRJbnRlcnZhbCwgdHJ1ZSk7IH0KKyAgICAg
ICAgdm9pZCBzdGFydE9uZVNob3QoZG91YmxlIGludGVydmFsKSB7IHN0YXJ0KGludGVydmFsLCBm
YWxzZSk7IH0KKworICAgICAgICB2b2lkIHN0b3AoKTsKKyAgICAgICAgYm9vbCBpc0FjdGl2ZSgp
IGNvbnN0OworCisgICAgICAgIHZpcnR1YWwgdm9pZCBmaXJlZCgpID0gMDsKKworICAgIHByaXZh
dGU6CisgICAgICAgIHZvaWQgc3RhcnQoZG91YmxlIG5leHRGaXJlSW50ZXJ2YWwsIGJvb2wgcmVw
ZWF0KTsKKworICAgICAgICBSdW5Mb29wKiBtX3J1bkxvb3A7CisKKyNpZiBQTEFURk9STShXSU4p
CisgICAgICAgIHN0YXRpYyB2b2lkIHRpbWVyRmlyZWQoUnVuTG9vcCosIHVpbnQ2NF90IElEKTsK
KyAgICAgICAgdWludDY0X3QgbV9JRDsKKyAgICAgICAgYm9vbCBtX2lzUmVwZWF0aW5nOworI2Vs
aWYgUExBVEZPUk0oTUFDKQorICAgICAgICBzdGF0aWMgdm9pZCB0aW1lckZpcmVkKENGUnVuTG9v
cFRpbWVyUmVmLCB2b2lkKik7CisgICAgICAgIENGUnVuTG9vcFRpbWVyUmVmIG1fdGltZXI7Cisj
ZWxpZiBQTEFURk9STShRVCkKKyAgICAgICAgc3RhdGljIHZvaWQgdGltZXJGaXJlZChSdW5Mb29w
KiwgaW50IElEKTsKKyAgICAgICAgaW50IG1fSUQ7CisgICAgICAgIGJvb2wgbV9pc1JlcGVhdGlu
ZzsKKyNlbGlmIFBMQVRGT1JNKEdUSykKKyAgICAgICAgc3RhdGljIGdib29sZWFuIHRpbWVyRmly
ZWRDYWxsYmFjayhSdW5Mb29wOjpUaW1lckJhc2UqKTsKKyAgICAgICAgZ2Jvb2xlYW4gaXNSZXBl
YXRpbmcoKSBjb25zdCB7IHJldHVybiBtX2lzUmVwZWF0aW5nOyB9CisgICAgICAgIHZvaWQgY2xl
YXJUaW1lclNvdXJjZSgpOworICAgICAgICBHUmVmUHRyPEdTb3VyY2U+IG1fdGltZXJTb3VyY2U7
CisgICAgICAgIGdib29sZWFuIG1faXNSZXBlYXRpbmc7CisjZW5kaWYKKyAgICB9OworCisgICAg
dGVtcGxhdGUgPHR5cGVuYW1lIFRpbWVyRmlyZWRDbGFzcz4KKyAgICBjbGFzcyBUaW1lciA6IHB1
YmxpYyBUaW1lckJhc2UgeworICAgIHB1YmxpYzoKKyAgICAgICAgdHlwZWRlZiB2b2lkIChUaW1l
ckZpcmVkQ2xhc3M6OipUaW1lckZpcmVkRnVuY3Rpb24pKCk7CisKKyAgICAgICAgVGltZXIoUnVu
TG9vcCogcnVuTG9vcCwgVGltZXJGaXJlZENsYXNzKiBvLCBUaW1lckZpcmVkRnVuY3Rpb24gZikK
KyAgICAgICAgICAgIDogVGltZXJCYXNlKHJ1bkxvb3ApCisgICAgICAgICAgICAsIG1fb2JqZWN0
KG8pCisgICAgICAgICAgICAsIG1fZnVuY3Rpb24oZikKKyAgICAgICAgeworICAgICAgICB9CisK
KyAgICBwcml2YXRlOgorICAgICAgICB2aXJ0dWFsIHZvaWQgZmlyZWQoKSB7IChtX29iamVjdC0+
Km1fZnVuY3Rpb24pKCk7IH0KKworICAgICAgICBUaW1lckZpcmVkQ2xhc3MqIG1fb2JqZWN0Owor
ICAgICAgICBUaW1lckZpcmVkRnVuY3Rpb24gbV9mdW5jdGlvbjsKKyAgICB9OworCitwcml2YXRl
OgorICAgIGZyaWVuZCBjbGFzcyBXVEY6OlRocmVhZFNwZWNpZmljPFJ1bkxvb3A+OworCisgICAg
UnVuTG9vcCgpOworICAgIH5SdW5Mb29wKCk7CisKKyAgICB2b2lkIHBlcmZvcm1Xb3JrKCk7Cisg
ICAgdm9pZCB3YWtlVXAoKTsKKworICAgIE11dGV4IG1fZnVuY3Rpb25RdWV1ZUxvY2s7CisgICAg
VmVjdG9yPEZ1bmN0aW9uPHZvaWQoKT4gPiBtX2Z1bmN0aW9uUXVldWU7CisKKyNpZiBQTEFURk9S
TShXSU4pCisgICAgc3RhdGljIGJvb2wgcmVnaXN0ZXJSdW5Mb29wTWVzc2FnZVdpbmRvd0NsYXNz
KCk7CisgICAgc3RhdGljIExSRVNVTFQgQ0FMTEJBQ0sgUnVuTG9vcFduZFByb2MoSFdORCwgVUlO
VCwgV1BBUkFNLCBMUEFSQU0pOworICAgIExSRVNVTFQgd25kUHJvYyhIV05EIGhXbmQsIFVJTlQg
bWVzc2FnZSwgV1BBUkFNIHdQYXJhbSwgTFBBUkFNIGxQYXJhbSk7CisgICAgSFdORCBtX3J1bkxv
b3BNZXNzYWdlV2luZG93OworCisgICAgdHlwZWRlZiBIYXNoTWFwPHVpbnQ2NF90LCBUaW1lckJh
c2UqPiBUaW1lck1hcDsKKyAgICBUaW1lck1hcCBtX2FjdGl2ZVRpbWVyczsKKyNlbGlmIFBMQVRG
T1JNKE1BQykKKyAgICBzdGF0aWMgdm9pZCBwZXJmb3JtV29yayh2b2lkKik7CisgICAgQ0ZSdW5M
b29wUmVmIG1fcnVuTG9vcDsKKyAgICBDRlJ1bkxvb3BTb3VyY2VSZWYgbV9ydW5Mb29wU291cmNl
OworICAgIGludCBtX25lc3RpbmdMZXZlbDsKKyNlbGlmIFBMQVRGT1JNKFFUKQorICAgIHR5cGVk
ZWYgSGFzaE1hcDxpbnQsIFRpbWVyQmFzZSo+IFRpbWVyTWFwOworICAgIFRpbWVyTWFwIG1fYWN0
aXZlVGltZXJzOworICAgIGNsYXNzIFRpbWVyT2JqZWN0OworICAgIFRpbWVyT2JqZWN0KiBtX3Rp
bWVyT2JqZWN0OworI2VsaWYgUExBVEZPUk0oR1RLKQorcHVibGljOgorICAgIHN0YXRpYyBnYm9v
bGVhbiBxdWV1ZVdvcmsoUnVuTG9vcCopOworICAgIEdNYWluTG9vcCogbWFpbkxvb3AoKTsKK3By
aXZhdGU6CisgICAgR01haW5Db250ZXh0KiBtX3J1bkxvb3BDb250ZXh0OworICAgIEdNYWluTG9v
cCogbV9ydW5Mb29wTWFpbjsKKyNlbmRpZgorfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQor
CisjZW5kaWYgLy8gUnVuTG9vcF9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ndGsvUnVuTG9vcEd0ay5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ndGsvUnVuTG9v
cEd0ay5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uOTI5YTdiOThlYmZlNGM2NDY5MTliMzM2MjQ3NGNmYTdiYzkx
NDU5YgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9SdW5M
b29wR3RrLmNwcApAQCAtMCwwICsxLDEzNyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMCBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBQb3J0aW9ucyBDb3B5cmlnaHQgKGMp
IDIwMTAgTW90b3JvbGEgTW9iaWxpdHksIEluYy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgor
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1
dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k
dWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50
YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRp
b24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJ
VFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQg
V0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElF
RCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNV
TEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJ
TkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5E
SVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJ
QUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9G
CisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1Ig
UFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5E
IE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RS
SUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNF
KQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUs
IEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgor
ICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJSdW5Mb29wLmgiCisKKyNpbmNs
dWRlIDxnbGliLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworUnVuTG9vcDo6UnVuTG9vcCgp
Cit7CisgICAgbV9ydW5Mb29wQ29udGV4dCA9IGdfbWFpbl9jb250ZXh0X2RlZmF1bHQoKTsKKyAg
ICBBU1NFUlQobV9ydW5Mb29wQ29udGV4dCk7CisgICAgbV9ydW5Mb29wTWFpbiA9IGdfbWFpbl9s
b29wX25ldyhtX3J1bkxvb3BDb250ZXh0LCBGQUxTRSk7CisgICAgQVNTRVJUKG1fcnVuTG9vcE1h
aW4pOworfQorCitSdW5Mb29wOjp+UnVuTG9vcCgpCit7CisgICAgaWYgKG1fcnVuTG9vcE1haW4p
IHsKKyAgICAgICAgaWYgKGdfbWFpbl9sb29wX2lzX3J1bm5pbmcobV9ydW5Mb29wTWFpbikpCisg
ICAgICAgICAgICBnX21haW5fbG9vcF9xdWl0KG1fcnVuTG9vcE1haW4pOworICAgICAgICBnX21h
aW5fbG9vcF91bnJlZihtX3J1bkxvb3BNYWluKTsKKyAgICB9CisKKyAgICBpZiAobV9ydW5Mb29w
Q29udGV4dCkKKyAgICAgICAgZ19tYWluX2NvbnRleHRfdW5yZWYobV9ydW5Mb29wQ29udGV4dCk7
Cit9CisKK3ZvaWQgUnVuTG9vcDo6cnVuKCkKK3sKKyAgICBnX21haW5fbG9vcF9ydW4oUnVuTG9v
cDo6bWFpbigpLT5tYWluTG9vcCgpKTsKK30KKworR01haW5Mb29wKiBSdW5Mb29wOjptYWluTG9v
cCgpCit7CisgICAgcmV0dXJuIG1fcnVuTG9vcE1haW47Cit9CisKK3ZvaWQgUnVuTG9vcDo6c3Rv
cCgpCit7CisgICAgZ19tYWluX2xvb3BfcXVpdChtX3J1bkxvb3BNYWluKTsKK30KKworZ2Jvb2xl
YW4gUnVuTG9vcDo6cXVldWVXb3JrKFJ1bkxvb3AqIHJ1bkxvb3ApCit7CisgICAgcnVuTG9vcC0+
cGVyZm9ybVdvcmsoKTsKKyAgICByZXR1cm4gRkFMU0U7Cit9CisKK3ZvaWQgUnVuTG9vcDo6d2Fr
ZVVwKCkKK3sKKyAgICBHUmVmUHRyPEdTb3VyY2U+IHNvdXJjZSA9IGFkb3B0R1JlZihnX2lkbGVf
c291cmNlX25ldygpKTsKKyAgICBnX3NvdXJjZV9zZXRfcHJpb3JpdHkoc291cmNlLmdldCgpLCBH
X1BSSU9SSVRZX0RFRkFVTFQpOworICAgIGdfc291cmNlX3NldF9jYWxsYmFjayhzb3VyY2UuZ2V0
KCksIHJlaW50ZXJwcmV0X2Nhc3Q8R1NvdXJjZUZ1bmM+KCZSdW5Mb29wOjpxdWV1ZVdvcmspLCB0
aGlzLCAwKTsKKyAgICBnX3NvdXJjZV9hdHRhY2goc291cmNlLmdldCgpLCBtX3J1bkxvb3BDb250
ZXh0KTsKKworICAgIGdfbWFpbl9jb250ZXh0X3dha2V1cChtX3J1bkxvb3BDb250ZXh0KTsKK30K
KworUnVuTG9vcDo6VGltZXJCYXNlOjpUaW1lckJhc2UoUnVuTG9vcCogcnVuTG9vcCkKKyAgICA6
IG1fcnVuTG9vcChydW5Mb29wKQorICAgICwgbV90aW1lclNvdXJjZSgwKQoreworfQorCitSdW5M
b29wOjpUaW1lckJhc2U6On5UaW1lckJhc2UoKQoreworICAgIHN0b3AoKTsKK30KKwordm9pZCBS
dW5Mb29wOjpUaW1lckJhc2U6OmNsZWFyVGltZXJTb3VyY2UoKQoreworICAgIG1fdGltZXJTb3Vy
Y2UgPSAwOworfQorCitnYm9vbGVhbiBSdW5Mb29wOjpUaW1lckJhc2U6OnRpbWVyRmlyZWRDYWxs
YmFjayhSdW5Mb29wOjpUaW1lckJhc2UqIHRpbWVyKQoreworICAgIEdTb3VyY2UqIGN1cnJlbnRU
aW1lclNvdXJjZSA9IHRpbWVyLT5tX3RpbWVyU291cmNlLmdldCgpOworICAgIGJvb2wgaXNSZXBl
YXRpbmcgPSB0aW1lci0+aXNSZXBlYXRpbmcoKTsKKyAgICAvLyBUaGlzIGNhbiBjaGFuZ2UgdGhl
IHRpbWVyU291cmNlIGJ5IHN0YXJ0aW5nIGEgbmV3IHRpbWVyIHdpdGhpbiB0aGUgY2FsbGJhY2su
CisgICAgdGltZXItPmZpcmVkKCk7CisgICAgaWYgKCFpc1JlcGVhdGluZyAmJiBjdXJyZW50VGlt
ZXJTb3VyY2UgPT0gdGltZXItPm1fdGltZXJTb3VyY2UuZ2V0KCkpCisgICAgICAgIHRpbWVyLT5j
bGVhclRpbWVyU291cmNlKCk7CisgICAgcmV0dXJuIGlzUmVwZWF0aW5nOworfQorCit2b2lkIFJ1
bkxvb3A6OlRpbWVyQmFzZTo6c3RhcnQoZG91YmxlIGZpcmVJbnRlcnZhbCwgYm9vbCByZXBlYXQp
Cit7CisgICAgaWYgKG1fdGltZXJTb3VyY2UpCisgICAgICAgIHN0b3AoKTsKKworICAgIG1fdGlt
ZXJTb3VyY2UgPSBhZG9wdEdSZWYoZ190aW1lb3V0X3NvdXJjZV9uZXcoc3RhdGljX2Nhc3Q8Z3Vp
bnQ+KGZpcmVJbnRlcnZhbCAqIDEwMDApKSk7CisgICAgbV9pc1JlcGVhdGluZyA9IHJlcGVhdDsK
KyAgICBnX3NvdXJjZV9zZXRfY2FsbGJhY2sobV90aW1lclNvdXJjZS5nZXQoKSwgcmVpbnRlcnBy
ZXRfY2FzdDxHU291cmNlRnVuYz4oJlJ1bkxvb3A6OlRpbWVyQmFzZTo6dGltZXJGaXJlZENhbGxi
YWNrKSwgdGhpcywgMCk7CisgICAgZ19zb3VyY2VfYXR0YWNoKG1fdGltZXJTb3VyY2UuZ2V0KCks
IG1fcnVuTG9vcC0+bV9ydW5Mb29wQ29udGV4dCk7Cit9CisKK3ZvaWQgUnVuTG9vcDo6VGltZXJC
YXNlOjpzdG9wKCkKK3sKKyAgICBpZiAoIW1fdGltZXJTb3VyY2UpCisgICAgICAgIHJldHVybjsK
KworICAgIGdfc291cmNlX2Rlc3Ryb3kobV90aW1lclNvdXJjZS5nZXQoKSk7CisgICAgY2xlYXJU
aW1lclNvdXJjZSgpOworfQorCitib29sIFJ1bkxvb3A6OlRpbWVyQmFzZTo6aXNBY3RpdmUoKSBj
b25zdAoreworICAgIHJldHVybiBtX3RpbWVyU291cmNlOworfQorCit9IC8vIG5hbWVzcGFjZSBX
ZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvUnVuTG9vcE1h
Yy5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9SdW5Mb29wTWFjLm1tCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLmE1NjdhZmRkNWM4NzdjYjU4ZTliMDMxODg0MDgyOGQwZjAxNjBkMGUKLS0tIC9kZXYvbnVs
bAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvUnVuTG9vcE1hYy5tbQpAQCAtMCww
ICsxLDE1NyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMCBBcHBsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6
CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFy
eSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0
aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3
aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBC
WSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBF
WFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklU
TkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBF
VkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBG
T1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwg
T1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NT
IE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikg
SE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElO
CisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJ
R0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNF
IE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZ
IE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbXBvcnQgImNvbmZpZy5oIgorI2ltcG9ydCAiUnVu
TG9vcC5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK3ZvaWQgUnVuTG9vcDo6cGVyZm9ybVdv
cmsodm9pZCogY29udGV4dCkKK3sKKyAgICAvLyBXcmFwIG1haW4gdGhyZWFkIGluIGFuIEF1dG9y
ZWxlYXNlIHBvb2wuICBTZW5kaW5nIG1lc3NhZ2VzIGNhbiBjYWxsIAorICAgIC8vIGludG8gb2Jq
YyBjb2RlIGFuZCBhY2N1bXVsYXRlIG1lbW9yeS4gIAorICAgIGlmIChjdXJyZW50KCkgPT0gbWFp
bigpKSB7CisgICAgICAgIE5TQXV0b3JlbGVhc2VQb29sICpwb29sID0gW1tOU0F1dG9yZWxlYXNl
UG9vbCBhbGxvY10gaW5pdF07CisgICAgICAgIHN0YXRpY19jYXN0PFJ1bkxvb3AqPihjb250ZXh0
KS0+cGVyZm9ybVdvcmsoKTsKKyAgICAgICAgW3Bvb2wgZHJhaW5dOworICAgIH0gZWxzZQorICAg
ICAgICBzdGF0aWNfY2FzdDxSdW5Mb29wKj4oY29udGV4dCktPnBlcmZvcm1Xb3JrKCk7Cit9CisK
K1J1bkxvb3A6OlJ1bkxvb3AoKQorICAgIDogbV9ydW5Mb29wKENGUnVuTG9vcEdldEN1cnJlbnQo
KSkKKyAgICAsIG1fbmVzdGluZ0xldmVsKDApCit7CisgICAgQ0ZSdW5Mb29wU291cmNlQ29udGV4
dCBjb250ZXh0ID0geyAwLCB0aGlzLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCBwZXJmb3JtV29yayB9
OworICAgIG1fcnVuTG9vcFNvdXJjZSA9IENGUnVuTG9vcFNvdXJjZUNyZWF0ZShrQ0ZBbGxvY2F0
b3JEZWZhdWx0LCAwLCAmY29udGV4dCk7CisgICAgQ0ZSdW5Mb29wQWRkU291cmNlKG1fcnVuTG9v
cCwgbV9ydW5Mb29wU291cmNlLCBrQ0ZSdW5Mb29wQ29tbW9uTW9kZXMpOworfQorCitSdW5Mb29w
Ojp+UnVuTG9vcCgpCit7CisgICAgLy8gRklYTUU6IFRlYXIgZG93biB0aGUgd29yayBpdGVtIHF1
ZXVlIGhlcmUuCisgICAgQ0ZSdW5Mb29wU291cmNlSW52YWxpZGF0ZShtX3J1bkxvb3BTb3VyY2Up
OworICAgIENGUmVsZWFzZShtX3J1bkxvb3BTb3VyY2UpOworfQorCit2b2lkIFJ1bkxvb3A6OnJ1
bigpCit7CisgICAgY3VycmVudCgpLT5tX25lc3RpbmdMZXZlbCsrOworICAgIGlmIChjdXJyZW50
KCkgPT0gbWFpbigpICYmIGN1cnJlbnQoKS0+bV9uZXN0aW5nTGV2ZWwgPT0gMSkgeworICAgICAg
ICAvLyBVc2UgLVtOU0FwcGxpY2F0aW9uIHJ1bl0gZm9yIHRoZSBtYWluIHJ1biBsb29wLgorICAg
ICAgICBbTlNBcHAgcnVuXTsKKyAgICB9IGVsc2UgeworICAgICAgICBOU0F1dG9yZWxlYXNlUG9v
bCAqcG9vbCA9IFtbTlNBdXRvcmVsZWFzZVBvb2wgYWxsb2NdIGluaXRdOworICAgICAgICBDRlJ1
bkxvb3BSdW4oKTsKKyAgICAgICAgW3Bvb2wgZHJhaW5dOworICAgIH0KKyAgICBjdXJyZW50KCkt
Pm1fbmVzdGluZ0xldmVsLS07Cit9CisKK3ZvaWQgUnVuTG9vcDo6cnVuRm9yRHVyYXRpb24oZG91
YmxlIGR1cmF0aW9uKQoreworICAgIENGUnVuTG9vcFJ1bkluTW9kZShrQ0ZSdW5Mb29wRGVmYXVs
dE1vZGUsIGR1cmF0aW9uLCB0cnVlKTsKK30KKwordm9pZCBSdW5Mb29wOjpzdG9wKCkKK3sKKyAg
ICBBU1NFUlQobV9ydW5Mb29wID09IENGUnVuTG9vcEdldEN1cnJlbnQoKSk7CisgICAgCisgICAg
aWYgKG1fcnVuTG9vcCA9PSBtYWluKCktPm1fcnVuTG9vcCAmJiBtX25lc3RpbmdMZXZlbCA9PSAx
KSB7CisgICAgICAgIFtOU0FwcCBzdG9wOm5pbF07CisgICAgICAgIE5TRXZlbnQgKmV2ZW50ID0g
W05TRXZlbnQgb3RoZXJFdmVudFdpdGhUeXBlOk5TQXBwbGljYXRpb25EZWZpbmVkCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvY2F0aW9uOk5TTWFrZVBvaW50
KDAsIDApCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtb2RpZmllckZs
YWdzOjAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aW1lc3Rh
bXA6MC4wCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpbmRvd051
bWJlcjowCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb250
ZXh0Om5pbAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Vi
dHlwZTogMAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBk
YXRhMTowCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRh
dGEyOjBdOworICAgICAgICBbTlNBcHAgcG9zdEV2ZW50OmV2ZW50IGF0U3RhcnQ6dHJ1ZV07Cisg
ICAgfSBlbHNlCisgICAgICAgIENGUnVuTG9vcFN0b3AobV9ydW5Mb29wKTsKK30KKwordm9pZCBS
dW5Mb29wOjp3YWtlVXAoKQoreworICAgIENGUnVuTG9vcFNvdXJjZVNpZ25hbChtX3J1bkxvb3BT
b3VyY2UpOworICAgIENGUnVuTG9vcFdha2VVcChtX3J1bkxvb3ApOworfQorCisvLyBSdW5Mb29w
OjpUaW1lcgorCit2b2lkIFJ1bkxvb3A6OlRpbWVyQmFzZTo6dGltZXJGaXJlZChDRlJ1bkxvb3BU
aW1lclJlZiwgdm9pZCogY29udGV4dCkKK3sKKyAgICBUaW1lckJhc2UqIHRpbWVyID0gc3RhdGlj
X2Nhc3Q8VGltZXJCYXNlKj4oY29udGV4dCk7CisgICAgCisgICAgLy8gV3JhcCBtYWluIHRocmVh
ZCBpbiBhbiBBdXRvcmVsZWFzZSBwb29sLiAgVGhlIHRpbWVyIGNhbiBjYWxsIAorICAgIC8vIGlu
dG8gb2JqYyBjb2RlIGFuZCBhY2N1bXVsYXRlIG1lbW9yeSBvdXRzaWRlIG9mIHRoZSBtYWluIGV2
ZW50IGxvb3AuCisgICAgaWYgKGN1cnJlbnQoKSA9PSBtYWluKCkpIHsKKyAgICAgICAgTlNBdXRv
cmVsZWFzZVBvb2wgKnBvb2wgPSBbW05TQXV0b3JlbGVhc2VQb29sIGFsbG9jXSBpbml0XTsgCisg
ICAgICAgIHRpbWVyLT5maXJlZCgpOworICAgICAgICBbcG9vbCBkcmFpbl07CisgICAgfSBlbHNl
CisgICAgICAgIHRpbWVyLT5maXJlZCgpOworfQorCitSdW5Mb29wOjpUaW1lckJhc2U6OlRpbWVy
QmFzZShSdW5Mb29wKiBydW5Mb29wKQorICAgIDogbV9ydW5Mb29wKHJ1bkxvb3ApCisgICAgLCBt
X3RpbWVyKDApCit7Cit9CisKK1J1bkxvb3A6OlRpbWVyQmFzZTo6flRpbWVyQmFzZSgpCit7Cisg
ICAgc3RvcCgpOworfQorCit2b2lkIFJ1bkxvb3A6OlRpbWVyQmFzZTo6c3RhcnQoZG91YmxlIG5l
eHRGaXJlSW50ZXJ2YWwsIGJvb2wgcmVwZWF0KQoreworICAgIGlmIChtX3RpbWVyKQorICAgICAg
ICBzdG9wKCk7CisKKyAgICBDRlJ1bkxvb3BUaW1lckNvbnRleHQgY29udGV4dCA9IHsgMCwgdGhp
cywgMCwgMCwgMCB9OworICAgIENGVGltZUludGVydmFsIHJlcGVhdEludGVydmFsID0gcmVwZWF0
ID8gbmV4dEZpcmVJbnRlcnZhbCA6IDA7CisgICAgbV90aW1lciA9IENGUnVuTG9vcFRpbWVyQ3Jl
YXRlKGtDRkFsbG9jYXRvckRlZmF1bHQsIENGQWJzb2x1dGVUaW1lR2V0Q3VycmVudCgpICsgbmV4
dEZpcmVJbnRlcnZhbCwgcmVwZWF0SW50ZXJ2YWwsIDAsIDAsIHRpbWVyRmlyZWQsICZjb250ZXh0
KTsKKyAgICBDRlJ1bkxvb3BBZGRUaW1lcihtX3J1bkxvb3AtPm1fcnVuTG9vcCwgbV90aW1lciwg
a0NGUnVuTG9vcENvbW1vbk1vZGVzKTsKK30KKwordm9pZCBSdW5Mb29wOjpUaW1lckJhc2U6OnN0
b3AoKQoreworICAgIGlmICghbV90aW1lcikKKyAgICAgICAgcmV0dXJuOworCisgICAgQ0ZSdW5M
b29wVGltZXJJbnZhbGlkYXRlKG1fdGltZXIpOworICAgIENGUmVsZWFzZShtX3RpbWVyKTsKKyAg
ICBtX3RpbWVyID0gMDsKK30KKworYm9vbCBSdW5Mb29wOjpUaW1lckJhc2U6OmlzQWN0aXZlKCkg
Y29uc3QKK3sKKyAgICByZXR1cm4gbV90aW1lciAmJiBDRlJ1bkxvb3BUaW1lcklzVmFsaWQobV90
aW1lcik7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL3F0L1J1bkxvb3BRdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9xdC9SdW5Mb29wUXQuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjJhODdlMmZjOGY2Njc3NzY5ZjczMTQzZTU3
MWUwOWM1YTU0YzZlYmEKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9xdC9SdW5Mb29wUXQuY3BwCkBAIC0wLDAgKzEsMTY2IEBACisvKgorICogQ29weXJpZ2h0IChD
KSAyMDEwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykg
MjAxMCBOb2tpYSBDb3Jwb3JhdGlvbiBhbmQvb3IgaXRzIHN1YnNpZGlhcnkoLWllcykKKyAqCisg
KiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0
aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1
Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRh
dGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlv
bi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElU
UyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBX
QVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVE
IFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VM
QVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElO
Qy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJ
UkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElB
TCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YK
KyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQ
Uk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQg
T04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJ
Q1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0Up
CisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwg
RVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisg
Ki8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlJ1bkxvb3AuaCIKKworI2luY2x1
ZGUgPFFBYnN0cmFjdEV2ZW50RGlzcGF0Y2hlcj4KKyNpbmNsdWRlIDxRQ29yZUFwcGxpY2F0aW9u
PgorI2luY2x1ZGUgPFFNZXRhTWV0aG9kPgorI2luY2x1ZGUgPFFNZXRhT2JqZWN0PgorI2luY2x1
ZGUgPFFPYmplY3Q+CisjaW5jbHVkZSA8UVRpbWVyRXZlbnQ+CisKK25hbWVzcGFjZSBXZWJDb3Jl
IHsKKworY2xhc3MgUnVuTG9vcDo6VGltZXJPYmplY3QgOiBwdWJsaWMgUU9iamVjdCB7CisgICAg
UV9PQkpFQ1QKK3B1YmxpYzoKKyAgICBUaW1lck9iamVjdChSdW5Mb29wKiBydW5Mb29wKSA6IG1f
cnVuTG9vcChydW5Mb29wKQorICAgIHsKKyAgICAgICAgaW50IG1ldGhvZEluZGV4ID0gbWV0YU9i
amVjdCgpLT5pbmRleE9mTWV0aG9kKCJwZXJmb3JtV29yaygpIik7CisgICAgICAgIG1fbWV0aG9k
ID0gbWV0YU9iamVjdCgpLT5tZXRob2QobWV0aG9kSW5kZXgpOworICAgIH0KKworICAgIFFfU0xP
VCB2b2lkIHBlcmZvcm1Xb3JrKCkgeyBtX3J1bkxvb3AtPnBlcmZvcm1Xb3JrKCk7IH0KKyAgICBp
bmxpbmUgdm9pZCB3YWtlVXAoKSB7IG1fbWV0aG9kLmludm9rZSh0aGlzLCBRdDo6UXVldWVkQ29u
bmVjdGlvbik7IH0KKworcHJvdGVjdGVkOgorICAgIHZpcnR1YWwgdm9pZCB0aW1lckV2ZW50KFFU
aW1lckV2ZW50KiBldmVudCkKKyAgICB7CisgICAgICAgIFJ1bkxvb3A6OlRpbWVyQmFzZTo6dGlt
ZXJGaXJlZChtX3J1bkxvb3AsIGV2ZW50LT50aW1lcklkKCkpOworICAgIH0KKworcHJpdmF0ZToK
KyAgICBSdW5Mb29wKiBtX3J1bkxvb3A7CisgICAgUU1ldGFNZXRob2QgbV9tZXRob2Q7Cit9Owor
CitzdGF0aWMgUUV2ZW50TG9vcCogY3VycmVudEV2ZW50TG9vcDsKKwordm9pZCBSdW5Mb29wOjpy
dW4oKQoreworICAgIHN0YXRpYyBib29sIG1haW5FdmVudExvb3BJc1J1bm5pbmcgPSBmYWxzZTsK
KyAgICBpZiAoIW1haW5FdmVudExvb3BJc1J1bm5pbmcpIHsKKyAgICAgICAgbWFpbkV2ZW50TG9v
cElzUnVubmluZyA9IHRydWU7CisgICAgICAgIFFDb3JlQXBwbGljYXRpb246OmV4ZWMoKTsKKyAg
ICAgICAgbWFpbkV2ZW50TG9vcElzUnVubmluZyA9IGZhbHNlOworICAgIH0gZWxzZSB7CisgICAg
ICAgIFFFdmVudExvb3AgZXZlbnRMb29wOworCisgICAgICAgIFFFdmVudExvb3AqIHByZXZpb3Vz
RXZlbnRMb29wID0gY3VycmVudEV2ZW50TG9vcDsKKyAgICAgICAgY3VycmVudEV2ZW50TG9vcCA9
ICZldmVudExvb3A7CisKKyAgICAgICAgZXZlbnRMb29wLmV4ZWMoKTsKKworICAgICAgICBjdXJy
ZW50RXZlbnRMb29wID0gcHJldmlvdXNFdmVudExvb3A7CisgICAgfQorfQorCit2b2lkIFJ1bkxv
b3A6OnN0b3AoKQoreworICAgIGlmIChjdXJyZW50RXZlbnRMb29wKQorICAgICAgICBjdXJyZW50
RXZlbnRMb29wLT5leGl0KCk7CisgICAgZWxzZQorICAgICAgICBRQ29yZUFwcGxpY2F0aW9uOjpl
eGl0KCk7Cit9CisKK1J1bkxvb3A6OlJ1bkxvb3AoKQorICAgIDogbV90aW1lck9iamVjdChuZXcg
VGltZXJPYmplY3QodGhpcykpCit7Cit9CisKK1J1bkxvb3A6On5SdW5Mb29wKCkKK3sKKyAgICBk
ZWxldGUgbV90aW1lck9iamVjdDsKK30KKwordm9pZCBSdW5Mb29wOjp3YWtlVXAoKQoreworICAg
IG1fdGltZXJPYmplY3QtPndha2VVcCgpOworfQorCisvLyBSdW5Mb29wOjpUaW1lcgorCit2b2lk
IFJ1bkxvb3A6OlRpbWVyQmFzZTo6dGltZXJGaXJlZChSdW5Mb29wKiBydW5Mb29wLCBpbnQgSUQp
Cit7CisgICAgVGltZXJNYXA6Oml0ZXJhdG9yIGl0ID0gcnVuTG9vcC0+bV9hY3RpdmVUaW1lcnMu
ZmluZChJRCk7CisgICAgQVNTRVJUKGl0ICE9IHJ1bkxvb3AtPm1fYWN0aXZlVGltZXJzLmVuZCgp
KTsKKyAgICBUaW1lckJhc2UqIHRpbWVyID0gaXQtPnNlY29uZDsKKworICAgIGlmICghdGltZXIt
Pm1faXNSZXBlYXRpbmcpIHsKKyAgICAgICAgLy8gU3RvcCB0aGUgdGltZXIgKGNhbGxpbmcgc3Rv
cCB3b3VsZCBuZWVkIGFub3RoZXIgaGFzaCB0YWJsZSBsb29rdXApLgorICAgICAgICBydW5Mb29w
LT5tX2FjdGl2ZVRpbWVycy5yZW1vdmUoaXQpOworICAgICAgICBydW5Mb29wLT5tX3RpbWVyT2Jq
ZWN0LT5raWxsVGltZXIodGltZXItPm1fSUQpOworICAgICAgICB0aW1lci0+bV9JRCA9IDA7Cisg
ICAgfQorCisgICAgdGltZXItPmZpcmVkKCk7Cit9CisKK1J1bkxvb3A6OlRpbWVyQmFzZTo6VGlt
ZXJCYXNlKFJ1bkxvb3AqIHJ1bkxvb3ApCisgICAgOiBtX3J1bkxvb3AocnVuTG9vcCkKKyAgICAs
IG1fSUQoMCkKKyAgICAsIG1faXNSZXBlYXRpbmcoZmFsc2UpCit7Cit9CisKK1J1bkxvb3A6OlRp
bWVyQmFzZTo6flRpbWVyQmFzZSgpCit7CisgICAgc3RvcCgpOworfQorCit2b2lkIFJ1bkxvb3A6
OlRpbWVyQmFzZTo6c3RhcnQoZG91YmxlIG5leHRGaXJlSW50ZXJ2YWwsIGJvb2wgcmVwZWF0KQor
eworICAgIHN0b3AoKTsKKyAgICBpbnQgbWlsbGlzID0gc3RhdGljX2Nhc3Q8aW50PihuZXh0Rmly
ZUludGVydmFsICogMTAwMCk7CisgICAgbV9pc1JlcGVhdGluZyA9IHJlcGVhdDsKKyAgICBtX0lE
ID0gbV9ydW5Mb29wLT5tX3RpbWVyT2JqZWN0LT5zdGFydFRpbWVyKG1pbGxpcyk7CisgICAgQVNT
RVJUKG1fSUQpOworICAgIG1fcnVuTG9vcC0+bV9hY3RpdmVUaW1lcnMuc2V0KG1fSUQsIHRoaXMp
OworfQorCit2b2lkIFJ1bkxvb3A6OlRpbWVyQmFzZTo6c3RvcCgpCit7CisgICAgaWYgKCFtX0lE
KQorICAgICAgICByZXR1cm47CisgICAgVGltZXJNYXA6Oml0ZXJhdG9yIGl0ID0gbV9ydW5Mb29w
LT5tX2FjdGl2ZVRpbWVycy5maW5kKG1fSUQpOworICAgIGlmIChpdCA9PSBtX3J1bkxvb3AtPm1f
YWN0aXZlVGltZXJzLmVuZCgpKQorICAgICAgICByZXR1cm47CisKKyAgICBtX3J1bkxvb3AtPm1f
YWN0aXZlVGltZXJzLnJlbW92ZShpdCk7CisgICAgbV9ydW5Mb29wLT5tX3RpbWVyT2JqZWN0LT5r
aWxsVGltZXIobV9JRCk7CisgICAgbV9JRCA9IDA7Cit9CisKK2Jvb2wgUnVuTG9vcDo6VGltZXJC
YXNlOjppc0FjdGl2ZSgpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1fSUQ7Cit9CisKKyNpbmNsdWRl
ICJSdW5Mb29wUXQubW9jIgorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS93aW4vUnVuTG9vcFdpbi5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS93aW4vUnVuTG9vcFdpbi5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMTIwYzI1MmE2Njg2ZjJi
NWNlM2RhZGQ5YjY0NGQwMDBjY2Q1YjM1ZAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL3dpbi9SdW5Mb29wV2luLmNwcApAQCAtMCwwICsxLDE4MSBAQAorLyoKKyAq
IENvcHlyaWdodCAoQykgMjAxMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgor
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1
dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k
dWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50
YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRp
b24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJ
VFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQg
V0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElF
RCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNV
TEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJ
TkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5E
SVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJ
QUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9G
CisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1Ig
UFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5E
IE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RS
SUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNF
KQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUs
IEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgor
ICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJSdW5Mb29wLmgiCisKKyNpbmNs
dWRlIDx3dGYvQ3VycmVudFRpbWUuaD4KKwordXNpbmcgbmFtZXNwYWNlIHN0ZDsKKworbmFtZXNw
YWNlIFdlYkNvcmUgeworCitzdGF0aWMgY29uc3QgVUlOVCBQZXJmb3JtV29ya01lc3NhZ2UgPSBX
TV9VU0VSICsgMTsKK3N0YXRpYyBjb25zdCBMUFdTVFIga1J1bkxvb3BNZXNzYWdlV2luZG93Q2xh
c3NOYW1lID0gTCJSdW5Mb29wTWVzc2FnZVdpbmRvdyI7CisKK0xSRVNVTFQgQ0FMTEJBQ0sgUnVu
TG9vcDo6UnVuTG9vcFduZFByb2MoSFdORCBoV25kLCBVSU5UIG1lc3NhZ2UsIFdQQVJBTSB3UGFy
YW0sIExQQVJBTSBsUGFyYW0pCit7CisgICAgTE9OR19QVFIgbG9uZ1B0ciA9IDo6R2V0V2luZG93
TG9uZ1B0cihoV25kLCAwKTsKKyAgICAKKyAgICBpZiAoUnVuTG9vcCogcnVuTG9vcCA9IHJlaW50
ZXJwcmV0X2Nhc3Q8UnVuTG9vcCo+KGxvbmdQdHIpKQorICAgICAgICByZXR1cm4gcnVuTG9vcC0+
d25kUHJvYyhoV25kLCBtZXNzYWdlLCB3UGFyYW0sIGxQYXJhbSk7CisKKyAgICBpZiAobWVzc2Fn
ZSA9PSBXTV9DUkVBVEUpIHsKKyAgICAgICAgTFBDUkVBVEVTVFJVQ1QgY3JlYXRlU3RydWN0ID0g
cmVpbnRlcnByZXRfY2FzdDxMUENSRUFURVNUUlVDVD4obFBhcmFtKTsKKworICAgICAgICAvLyBB
c3NvY2lhdGUgdGhlIFJ1bkxvb3Agd2l0aCB0aGUgd2luZG93LgorICAgICAgICA6OlNldFdpbmRv
d0xvbmdQdHIoaFduZCwgMCwgKExPTkdfUFRSKWNyZWF0ZVN0cnVjdC0+bHBDcmVhdGVQYXJhbXMp
OworICAgICAgICByZXR1cm4gMDsKKyAgICB9CisKKyAgICByZXR1cm4gOjpEZWZXaW5kb3dQcm9j
KGhXbmQsIG1lc3NhZ2UsIHdQYXJhbSwgbFBhcmFtKTsKK30KKworTFJFU1VMVCBSdW5Mb29wOjp3
bmRQcm9jKEhXTkQgaFduZCwgVUlOVCBtZXNzYWdlLCBXUEFSQU0gd1BhcmFtLCBMUEFSQU0gbFBh
cmFtKQoreworICAgIHN3aXRjaCAobWVzc2FnZSkgeworICAgIGNhc2UgUGVyZm9ybVdvcmtNZXNz
YWdlOgorICAgICAgICBwZXJmb3JtV29yaygpOworICAgICAgICByZXR1cm4gMDsKKyAgICBjYXNl
IFdNX1RJTUVSOgorICAgICAgICBSdW5Mb29wOjpUaW1lckJhc2U6OnRpbWVyRmlyZWQodGhpcywg
d1BhcmFtKTsKKyAgICAgICAgcmV0dXJuIDA7CisgICAgfQorCisgICAgcmV0dXJuIDo6RGVmV2lu
ZG93UHJvYyhoV25kLCBtZXNzYWdlLCB3UGFyYW0sIGxQYXJhbSk7Cit9CisKK3ZvaWQgUnVuTG9v
cDo6cnVuKCkKK3sKKyAgICBNU0cgbWVzc2FnZTsKKyAgICB3aGlsZSAoQk9PTCByZXN1bHQgPSA6
OkdldE1lc3NhZ2UoJm1lc3NhZ2UsIDAsIDAsIDApKSB7CisgICAgICAgIGlmIChyZXN1bHQgPT0g
LTEpCisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgOjpUcmFuc2xhdGVNZXNzYWdlKCZtZXNz
YWdlKTsKKyAgICAgICAgOjpEaXNwYXRjaE1lc3NhZ2UoJm1lc3NhZ2UpOworICAgIH0KK30KKwor
dm9pZCBSdW5Mb29wOjpzdG9wKCkKK3sKKyAgICA6OlBvc3RRdWl0TWVzc2FnZSgwKTsKK30KKwor
Ym9vbCBSdW5Mb29wOjpyZWdpc3RlclJ1bkxvb3BNZXNzYWdlV2luZG93Q2xhc3MoKQoreworICAg
IC8vIEZJWE1FOiBUaGlzIHJlYWxseSBvbmx5IG5lZWRzIHRvIGJlIGNhbGxlZCBvbmNlLgorCisg
ICAgV05EQ0xBU1NFWCB3aW5kb3dDbGFzcyA9IHsgMCB9OworICAgIHdpbmRvd0NsYXNzLmNiU2l6
ZSAgICAgICAgICA9IHNpemVvZih3aW5kb3dDbGFzcyk7CisgICAgd2luZG93Q2xhc3MubHBmbldu
ZFByb2MgICAgID0gUnVuTG9vcDo6UnVuTG9vcFduZFByb2M7CisgICAgd2luZG93Q2xhc3MuY2JX
bmRFeHRyYSAgICAgID0gc2l6ZW9mKFJ1bkxvb3AqKTsKKyAgICB3aW5kb3dDbGFzcy5scHN6Q2xh
c3NOYW1lICAgPSBrUnVuTG9vcE1lc3NhZ2VXaW5kb3dDbGFzc05hbWU7CisKKyAgICByZXR1cm4g
ISE6OlJlZ2lzdGVyQ2xhc3NFeCgmd2luZG93Q2xhc3MpOworfQorCitSdW5Mb29wOjpSdW5Mb29w
KCkKK3sKKyAgICByZWdpc3RlclJ1bkxvb3BNZXNzYWdlV2luZG93Q2xhc3MoKTsKKworICAgIG1f
cnVuTG9vcE1lc3NhZ2VXaW5kb3cgPSA6OkNyZWF0ZVdpbmRvdyhrUnVuTG9vcE1lc3NhZ2VXaW5k
b3dDbGFzc05hbWUsIDAsIDAsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIENXX1VTRURFRkFVTFQsIDAsIENXX1VTRURFRkFVTFQsIDAsCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEhXTkRfTUVTU0FHRSwgMCwgMCwgdGhpcyk7
CisgICAgQVNTRVJUKDo6SXNXaW5kb3cobV9ydW5Mb29wTWVzc2FnZVdpbmRvdykpOworfQorCitS
dW5Mb29wOjp+UnVuTG9vcCgpCit7CisgICAgLy8gRklYTUU6IFRlYXIgZG93biB0aGUgd29yayBp
dGVtIHF1ZXVlIGhlcmUuCit9CisKK3ZvaWQgUnVuTG9vcDo6d2FrZVVwKCkKK3sKKyAgICAvLyBG
SVhNRTogTm8gbmVlZCB0byB3YWtlIHVwIHRoZSBydW4gbG9vcCBpZiB3ZSd2ZSBhbHJlYWR5IGNh
bGxlZCBkaXNwYXRjaAorICAgIC8vIGJlZm9yZSB0aGUgcnVuIGxvb3AgaGFzIGhhZCB0aGUgdGlt
ZSB0byByZXNwb25kLgorICAgIDo6UG9zdE1lc3NhZ2UobV9ydW5Mb29wTWVzc2FnZVdpbmRvdywg
UGVyZm9ybVdvcmtNZXNzYWdlLCByZWludGVycHJldF9jYXN0PFdQQVJBTT4odGhpcyksIDApOwor
fQorCisvLyBSdW5Mb29wOjpUaW1lcgorCit2b2lkIFJ1bkxvb3A6OlRpbWVyQmFzZTo6dGltZXJG
aXJlZChSdW5Mb29wKiBydW5Mb29wLCB1aW50NjRfdCBJRCkKK3sKKyAgICBUaW1lck1hcDo6aXRl
cmF0b3IgaXQgPSBydW5Mb29wLT5tX2FjdGl2ZVRpbWVycy5maW5kKElEKTsKKyAgICBpZiAoaXQg
PT0gcnVuTG9vcC0+bV9hY3RpdmVUaW1lcnMuZW5kKCkpIHsKKyAgICAgICAgLy8gVGhlIHRpbWVy
IG11c3QgaGF2ZSBiZWVuIHN0b3BwZWQgYWZ0ZXIgdGhlIFdNX1RJTUVSIG1lc3NhZ2Ugd2FzIHBv
c3RlZCB0byB0aGUgbWVzc2FnZSBxdWV1ZS4KKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAg
IFRpbWVyQmFzZSogdGltZXIgPSBpdC0+c2Vjb25kOworCisgICAgaWYgKCF0aW1lci0+bV9pc1Jl
cGVhdGluZykgeworICAgICAgICBydW5Mb29wLT5tX2FjdGl2ZVRpbWVycy5yZW1vdmUoaXQpOwor
ICAgICAgICA6OktpbGxUaW1lcihydW5Mb29wLT5tX3J1bkxvb3BNZXNzYWdlV2luZG93LCBJRCk7
CisgICAgfQorCisgICAgdGltZXItPmZpcmVkKCk7Cit9CisKK3N0YXRpYyB1aW50NjRfdCBnZW5l
cmF0ZVRpbWVySUQoKQoreworICAgIHN0YXRpYyB1aW50NjRfdCB1bmlxdWVUaW1lcklEID0gMTsK
KyAgICByZXR1cm4gdW5pcXVlVGltZXJJRCsrOworfQorCitSdW5Mb29wOjpUaW1lckJhc2U6OlRp
bWVyQmFzZShSdW5Mb29wKiBydW5Mb29wKQorICAgIDogbV9ydW5Mb29wKHJ1bkxvb3ApCisgICAg
LCBtX0lEKGdlbmVyYXRlVGltZXJJRCgpKQorICAgICwgbV9pc1JlcGVhdGluZyhmYWxzZSkKK3sK
K30KKworUnVuTG9vcDo6VGltZXJCYXNlOjp+VGltZXJCYXNlKCkKK3sKKyAgICBzdG9wKCk7Cit9
CisKK3ZvaWQgUnVuTG9vcDo6VGltZXJCYXNlOjpzdGFydChkb3VibGUgbmV4dEZpcmVJbnRlcnZh
bCwgYm9vbCByZXBlYXQpCit7CisgICAgbV9pc1JlcGVhdGluZyA9IHJlcGVhdDsKKyAgICBtX3J1
bkxvb3AtPm1fYWN0aXZlVGltZXJzLnNldChtX0lELCB0aGlzKTsKKyAgICA6OlNldFRpbWVyKG1f
cnVuTG9vcC0+bV9ydW5Mb29wTWVzc2FnZVdpbmRvdywgbV9JRCwgbmV4dEZpcmVJbnRlcnZhbCAq
IDEwMDAsIDApOworfQorCit2b2lkIFJ1bkxvb3A6OlRpbWVyQmFzZTo6c3RvcCgpCit7CisgICAg
VGltZXJNYXA6Oml0ZXJhdG9yIGl0ID0gbV9ydW5Mb29wLT5tX2FjdGl2ZVRpbWVycy5maW5kKG1f
SUQpOworICAgIGlmIChpdCA9PSBtX3J1bkxvb3AtPm1fYWN0aXZlVGltZXJzLmVuZCgpKQorICAg
ICAgICByZXR1cm47CisKKyAgICBtX3J1bkxvb3AtPm1fYWN0aXZlVGltZXJzLnJlbW92ZShpdCk7
CisgICAgOjpLaWxsVGltZXIobV9ydW5Mb29wLT5tX3J1bkxvb3BNZXNzYWdlV2luZG93LCBtX0lE
KTsKK30KKworYm9vbCBSdW5Mb29wOjpUaW1lckJhc2U6OmlzQWN0aXZlKCkgY29uc3QKK3sKKyAg
ICByZXR1cm4gbV9ydW5Mb29wLT5tX2FjdGl2ZVRpbWVycy5jb250YWlucyhtX0lEKTsKK30KKwor
fSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvR05VbWFr
ZWZpbGUuYW0gYi9Tb3VyY2UvV2ViS2l0Mi9HTlVtYWtlZmlsZS5hbQppbmRleCBhNzcxYjlkOGQ0
YzM4MTVlYjc1ZDI4MGUxYTFjNzJmOGY4MGYxMThhLi44YjI2YzVlZmIyZDFjN2NiZWFkMjI5NjYw
OWIzMzUyNWY2MWRkMGM0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9HTlVtYWtlZmlsZS5h
bQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9HTlVtYWtlZmlsZS5hbQpAQCAtMjA5LDE1ICsyMDksMTIg
QEAgbGlid2Via2l0Mmd0a19AV0VCS0lUR1RLX0FQSV9NQUpPUl9WRVJTSU9OQF9AV0VCS0lUR1RL
X0FQSV9NSU5PUl9WRVJTSU9OQF9sYV9TT1UKIAlTb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9Db3Jl
SVBDL3VuaXgvQ29ubmVjdGlvblVuaXguY3BwIFwKIAlTb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9n
dGsvTG9nZ2luZ0d0ay5jcHAgXAogCVNvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL2d0ay9Nb2R1bGVH
dGsuY3BwIFwKLQlTb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9ndGsvUnVuTG9vcEd0ay5jcHAgXAog
CVNvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL2d0ay9Xb3JrUXVldWVHdGsuY3BwIFwKIAlTb3VyY2Uv
V2ViS2l0Mi9QbGF0Zm9ybS9Mb2dnaW5nLmNwcCBcCiAJU291cmNlL1dlYktpdDIvUGxhdGZvcm0v
TG9nZ2luZy5oIFwKIAlTb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9Nb2R1bGUuY3BwIFwKIAlTb3Vy
Y2UvV2ViS2l0Mi9QbGF0Zm9ybS9Nb2R1bGUuaCBcCiAJU291cmNlL1dlYktpdDIvUGxhdGZvcm0v
UGxhdGZvcm1Qcm9jZXNzSWRlbnRpZmllci5oIFwKLQlTb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9S
dW5Mb29wLmNwcCBcCi0JU291cmNlL1dlYktpdDIvUGxhdGZvcm0vUnVuTG9vcC5oIFwKIAlTb3Vy
Y2UvV2ViS2l0Mi9QbGF0Zm9ybS9TaGFyZWRNZW1vcnkuaCBcCiAJU291cmNlL1dlYktpdDIvUGxh
dGZvcm0vdW5peC9TaGFyZWRNZW1vcnlVbml4LmNwcCBcCiAJU291cmNlL1dlYktpdDIvUGxhdGZv
cm0vV29ya1F1ZXVlLmNwcCBcCkBAIC0xMzY0LDExICsxMzYxLDggQEAgUHJvZ3JhbXNfV2ViS2l0
UGx1Z2luUHJvY2Vzc19TT1VSQ0VTID0gXAogCVNvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL01vZHVs
ZS5oIFwKIAlTb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9Xb3JrUXVldWUuY3BwIFwKIAlTb3VyY2Uv
V2ViS2l0Mi9QbGF0Zm9ybS9Xb3JrUXVldWUuaCBcCi0JU291cmNlL1dlYktpdDIvUGxhdGZvcm0v
UnVuTG9vcC5jcHAgXAotCVNvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL1J1bkxvb3AuaCBcCiAJU291
cmNlL1dlYktpdDIvUGxhdGZvcm0vU2hhcmVkTWVtb3J5LmggXAogCVNvdXJjZS9XZWJLaXQyL1Bs
YXRmb3JtL2d0ay9Nb2R1bGVHdGsuY3BwIFwKLQlTb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9ndGsv
UnVuTG9vcEd0ay5jcHAgXAogCVNvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL2d0ay9Xb3JrUXVldWVH
dGsuY3BwIFwKIAlTb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS91bml4L1NoYXJlZE1lbW9yeVVuaXgu
Y3BwIFwKIAlTb3VyY2UvV2ViS2l0Mi9QbHVnaW5Qcm9jZXNzL1BsdWdpbkNvbnRyb2xsZXJQcm94
eS5jcHAgXApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvUGxhdGZvcm0vQ29yZUlQQy9Db25u
ZWN0aW9uLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL0NvcmVJUEMvQ29ubmVjdGlvbi5j
cHAKaW5kZXggM2UxN2JiZDIzM2FhZDZmZWM1OWQ2OGM2MDQ4MjFhY2FmMjU1YzdhMi4uM2MyZjE0
Y2VkMDNlOGYwOWJmMDUzOTY4ODliMTg0ZWY4Yjg1YzU5ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdDIvUGxhdGZvcm0vQ29yZUlQQy9Db25uZWN0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0
Mi9QbGF0Zm9ybS9Db3JlSVBDL0Nvbm5lY3Rpb24uY3BwCkBAIC0yOCwxMCArMjgsMTEgQEAKIAog
I2luY2x1ZGUgIkJpbmFyeVNlbWFwaG9yZS5oIgogI2luY2x1ZGUgIkNvcmVJUENNZXNzYWdlS2lu
ZHMuaCIKLSNpbmNsdWRlICJSdW5Mb29wLmgiCisjaW5jbHVkZSA8V2ViQ29yZS9SdW5Mb29wLmg+
CiAjaW5jbHVkZSA8d3RmL0N1cnJlbnRUaW1lLmg+CiAKIHVzaW5nIG5hbWVzcGFjZSBzdGQ7Cit1
c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKIAogbmFtZXNwYWNlIENvcmVJUEMgewogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9Db3JlSVBDL0Nvbm5lY3Rpb24uaCBiL1NvdXJj
ZS9XZWJLaXQyL1BsYXRmb3JtL0NvcmVJUEMvQ29ubmVjdGlvbi5oCmluZGV4IGJhZmE5OTkxODc1
M2FkYTRhN2U5ZTUwOTZlN2U0YWRlNDE2MTdjMGEuLjgxNTUzYWViNzZiZjA0ZGE3OGI3OWQ3MzBk
NjIzOGVjYmU0YTM1ZjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL0NvcmVJ
UEMvQ29ubmVjdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL0NvcmVJUEMvQ29u
bmVjdGlvbi5oCkBAIC01MCw3ICs1MCw5IEBAIGNsYXNzIFFTb2NrZXROb3RpZmllcjsKICNpbmNs
dWRlICJQbGF0Zm9ybVByb2Nlc3NJZGVudGlmaWVyLmgiCiAjZW5kaWYKIAorbmFtZXNwYWNlIFdl
YkNvcmUgewogY2xhc3MgUnVuTG9vcDsKK30KIAogbmFtZXNwYWNlIENvcmVJUEMgewogCkBAIC0x
MTgsOCArMTIwLDggQEAgcHVibGljOgogICAgIHR5cGVkZWYgaW50IElkZW50aWZpZXI7CiAjZW5k
aWYKIAotICAgIHN0YXRpYyBQYXNzUmVmUHRyPENvbm5lY3Rpb24+IGNyZWF0ZVNlcnZlckNvbm5l
Y3Rpb24oSWRlbnRpZmllciwgQ2xpZW50KiwgUnVuTG9vcCogY2xpZW50UnVuTG9vcCk7Ci0gICAg
c3RhdGljIFBhc3NSZWZQdHI8Q29ubmVjdGlvbj4gY3JlYXRlQ2xpZW50Q29ubmVjdGlvbihJZGVu
dGlmaWVyLCBDbGllbnQqLCBSdW5Mb29wKiBjbGllbnRSdW5Mb29wKTsKKyAgICBzdGF0aWMgUGFz
c1JlZlB0cjxDb25uZWN0aW9uPiBjcmVhdGVTZXJ2ZXJDb25uZWN0aW9uKElkZW50aWZpZXIsIENs
aWVudCosIFdlYkNvcmU6OlJ1bkxvb3AqIGNsaWVudFJ1bkxvb3ApOworICAgIHN0YXRpYyBQYXNz
UmVmUHRyPENvbm5lY3Rpb24+IGNyZWF0ZUNsaWVudENvbm5lY3Rpb24oSWRlbnRpZmllciwgQ2xp
ZW50KiwgV2ViQ29yZTo6UnVuTG9vcCogY2xpZW50UnVuTG9vcCk7CiAgICAgfkNvbm5lY3Rpb24o
KTsKIAogI2lmIE9TKERBUldJTikKQEAgLTIwNyw3ICsyMDksNyBAQCBwdWJsaWM6CiAgICAgdHlw
ZWRlZiBNZXNzYWdlPEFyZ3VtZW50RW5jb2Rlcj4gT3V0Z29pbmdNZXNzYWdlOwogCiBwcml2YXRl
OgotICAgIENvbm5lY3Rpb24oSWRlbnRpZmllciwgYm9vbCBpc1NlcnZlciwgQ2xpZW50KiwgUnVu
TG9vcCogY2xpZW50UnVuTG9vcCk7CisgICAgQ29ubmVjdGlvbihJZGVudGlmaWVyLCBib29sIGlz
U2VydmVyLCBDbGllbnQqLCBXZWJDb3JlOjpSdW5Mb29wKiBjbGllbnRSdW5Mb29wKTsKICAgICB2
b2lkIHBsYXRmb3JtSW5pdGlhbGl6ZShJZGVudGlmaWVyKTsKICAgICB2b2lkIHBsYXRmb3JtSW52
YWxpZGF0ZSgpOwogICAgIApAQCAtMjUzLDcgKzI1NSw3IEBAIHByaXZhdGU6CiAKICAgICBib29s
IG1faXNDb25uZWN0ZWQ7CiAgICAgV29ya1F1ZXVlIG1fY29ubmVjdGlvblF1ZXVlOwotICAgIFJ1
bkxvb3AqIG1fY2xpZW50UnVuTG9vcDsKKyAgICBXZWJDb3JlOjpSdW5Mb29wKiBtX2NsaWVudFJ1
bkxvb3A7CiAKICAgICBWZWN0b3I8UXVldWVDbGllbnQqPiBtX2Nvbm5lY3Rpb25RdWV1ZUNsaWVu
dHM7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL0NvcmVJUEMvbWFjL0Nv
bm5lY3Rpb25NYWMuY3BwIGIvU291cmNlL1dlYktpdDIvUGxhdGZvcm0vQ29yZUlQQy9tYWMvQ29u
bmVjdGlvbk1hYy5jcHAKaW5kZXggOTc5NzVhYmVhYmE3ZWY3ODlhOTdhNzk5NGI0M2YyODVkNmQ4
ZjljNC4uMTExOWEyODQ3ZWJmYTljNTFjMTQ4MTg4MDc3MjYwOTg1OTE4NjEwNiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdDIvUGxhdGZvcm0vQ29yZUlQQy9tYWMvQ29ubmVjdGlvbk1hYy5jcHAK
KysrIGIvU291cmNlL1dlYktpdDIvUGxhdGZvcm0vQ29yZUlQQy9tYWMvQ29ubmVjdGlvbk1hYy5j
cHAKQEAgLTI5LDExICsyOSwxMiBAQAogI2luY2x1ZGUgIkNvcmVJUENNZXNzYWdlS2luZHMuaCIK
ICNpbmNsdWRlICJNYWNoUG9ydC5oIgogI2luY2x1ZGUgIk1hY2hVdGlsaXRpZXMuaCIKLSNpbmNs
dWRlICJSdW5Mb29wLmgiCisjaW5jbHVkZSA8V2ViQ29yZS9SdW5Mb29wLmg+CiAjaW5jbHVkZSA8
bWFjaC9tYWNoX2Vycm9yLmg+CiAjaW5jbHVkZSA8bWFjaC92bV9tYXAuaD4KIAogdXNpbmcgbmFt
ZXNwYWNlIHN0ZDsKK3VzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogCiBuYW1lc3BhY2UgQ29yZUlQ
QyB7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL1J1bkxvb3AuY3BwIGIv
U291cmNlL1dlYktpdDIvUGxhdGZvcm0vUnVuTG9vcC5jcHAKZGVsZXRlZCBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IGU0OTVlY2M1ODNhY2NhNjFiYTA0YmUwMzk5YjhmMzUzNTc0N2Y2NTAuLjAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYktpdDIv
UGxhdGZvcm0vUnVuTG9vcC5jcHAKKysrIC9kZXYvbnVsbApAQCAtMSw3MCArMCwwIEBACi0vKgot
ICogQ29weXJpZ2h0IChDKSAyMDEwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAq
Ci0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJp
YnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0g
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXBy
b2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1l
bnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1
dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5E
IElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCi0gKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElF
RCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFRIRSBJTVBM
SUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJ
Q1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExF
IElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwotICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJ
TkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgotICogQ09OU0VRVUVO
VElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQg
T0YKLSAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBP
UiBQUk9GSVRTOyBPUiBCVVNJTkVTUwotICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBB
TkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KLSAqIENPTlRSQUNULCBT
VFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJ
U0UpCi0gKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FS
RSwgRVZFTiBJRiBBRFZJU0VEIE9GCi0gKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0Uu
Ci0gKi8KLQotI2luY2x1ZGUgImNvbmZpZy5oIgotI2luY2x1ZGUgIlJ1bkxvb3AuaCIKLQotI2lu
Y2x1ZGUgPHd0Zi9TdGRMaWJFeHRyYXMuaD4KLQotc3RhdGljIFJ1bkxvb3AqIHNfbWFpblJ1bkxv
b3A7Ci0KLXZvaWQgUnVuTG9vcDo6aW5pdGlhbGl6ZU1haW5SdW5Mb29wKCkKLXsKLSAgICBpZiAo
c19tYWluUnVuTG9vcCkKLSAgICAgICAgcmV0dXJuOwotICAgIHNfbWFpblJ1bkxvb3AgPSBSdW5M
b29wOjpjdXJyZW50KCk7Ci19Ci0KLVJ1bkxvb3AqIFJ1bkxvb3A6OmN1cnJlbnQoKQotewotICAg
IERFRklORV9TVEFUSUNfTE9DQUwoV1RGOjpUaHJlYWRTcGVjaWZpYzxSdW5Mb29wPiwgcnVuTG9v
cERhdGEsICgpKTsKLSAgICByZXR1cm4gJipydW5Mb29wRGF0YTsKLX0KLQotUnVuTG9vcCogUnVu
TG9vcDo6bWFpbigpCi17Ci0gICAgQVNTRVJUKHNfbWFpblJ1bkxvb3ApOwotICAgIHJldHVybiBz
X21haW5SdW5Mb29wOwotfQotCi12b2lkIFJ1bkxvb3A6OnBlcmZvcm1Xb3JrKCkKLXsKLSAgICBW
ZWN0b3I8RnVuY3Rpb248dm9pZCgpPiA+IGZ1bmN0aW9uUXVldWU7Ci0gICAgewotICAgICAgICBN
dXRleExvY2tlciBsb2NrZXIobV9mdW5jdGlvblF1ZXVlTG9jayk7Ci0gICAgICAgIG1fZnVuY3Rp
b25RdWV1ZS5zd2FwKGZ1bmN0aW9uUXVldWUpOwotICAgIH0KLQotICAgIGZvciAoc2l6ZV90IGkg
PSAwOyBpIDwgZnVuY3Rpb25RdWV1ZS5zaXplKCk7ICsraSkKLSAgICAgICAgZnVuY3Rpb25RdWV1
ZVtpXSgpOwotfQotCi12b2lkIFJ1bkxvb3A6OmRpc3BhdGNoKGNvbnN0IEZ1bmN0aW9uPHZvaWQo
KT4mIGZ1bmN0aW9uKQotewotICAgIE11dGV4TG9ja2VyIGxvY2tlcihtX2Z1bmN0aW9uUXVldWVM
b2NrKTsKLSAgICBtX2Z1bmN0aW9uUXVldWUuYXBwZW5kKGZ1bmN0aW9uKTsKLQotICAgIHdha2VV
cCgpOwotfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvUGxhdGZvcm0vUnVuTG9vcC5oIGIv
U291cmNlL1dlYktpdDIvUGxhdGZvcm0vUnVuTG9vcC5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCA1N2E3OWE4ZjNmMDYwYzQwNTNhNWUyZmIwNzQyODZhY2E3MzM1MGFiLi4wMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJLaXQyL1Bs
YXRmb3JtL1J1bkxvb3AuaAorKysgL2Rldi9udWxsCkBAIC0xLDE2MSArMCwwIEBACi0vKgotICog
Q29weXJpZ2h0IChDKSAyMDEwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqIENv
cHlyaWdodCAoQykgMjAxMCBOb2tpYSBDb3Jwb3JhdGlvbiBhbmQvb3IgaXRzIHN1YnNpZGlhcnko
LWllcykKLSAqIFBvcnRpb25zIENvcHlyaWdodCAoYykgMjAxMCBNb3Rvcm9sYSBNb2JpbGl0eSwg
SW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0
IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1
dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAot
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJp
YWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJF
IElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycn
Ci0gKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywKLSAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRB
QklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NM
QUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwot
ICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lB
TCwgRVhFTVBMQVJZLCBPUgotICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKLSAqIFNVQlNUSVRVVEUgR09PRFMgT1Ig
U0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwotICog
SU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJ
VFksIFdIRVRIRVIgSU4KLSAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJ
TkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCi0gKiBBUklTSU5HIElOIEFOWSBXQVkg
T1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCi0gKiBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI2lmbmRlZiBSdW5Mb29wX2gK
LSNkZWZpbmUgUnVuTG9vcF9oCi0KLSNpbmNsdWRlIDx3dGYvRm9yd2FyZC5oPgotI2luY2x1ZGUg
PHd0Zi9GdW5jdGlvbmFsLmg+Ci0jaW5jbHVkZSA8d3RmL0hhc2hNYXAuaD4KLSNpbmNsdWRlIDx3
dGYvUGFzc093blB0ci5oPgotI2luY2x1ZGUgPHd0Zi9UaHJlYWRTcGVjaWZpYy5oPgotI2luY2x1
ZGUgPHd0Zi9UaHJlYWRpbmcuaD4KLSNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+Ci0jaWYgUExBVEZP
Uk0oR1RLKQotI2luY2x1ZGUgPHd0Zi9nb2JqZWN0L0dSZWZQdHIuaD4KLXR5cGVkZWYgc3RydWN0
IF9HU291cmNlIEdTb3VyY2U7Ci10eXBlZGVmIHN0cnVjdCBfR01haW5Mb29wIEdNYWluTG9vcDsK
LXR5cGVkZWYgc3RydWN0IF9HTWFpbkNvbnRleHQgR01haW5Db250ZXh0OwotdHlwZWRlZiBpbnQg
Z2Jvb2xlYW47Ci0jZW5kaWYKLQotY2xhc3MgUnVuTG9vcCB7Ci1wdWJsaWM6Ci0gICAgLy8gTXVz
dCBiZSBjYWxsZWQgZnJvbSB0aGUgbWFpbiB0aHJlYWQuCi0gICAgc3RhdGljIHZvaWQgaW5pdGlh
bGl6ZU1haW5SdW5Mb29wKCk7Ci0KLSAgICBzdGF0aWMgUnVuTG9vcCogY3VycmVudCgpOwotICAg
IHN0YXRpYyBSdW5Mb29wKiBtYWluKCk7Ci0KLSAgICB2b2lkIGRpc3BhdGNoKGNvbnN0IEZ1bmN0
aW9uPHZvaWQoKT4mKTsKLQotICAgIHN0YXRpYyB2b2lkIHJ1bigpOwotICAgIHZvaWQgc3RvcCgp
OwotCi0jaWYgUExBVEZPUk0oTUFDKQotICAgIHZvaWQgcnVuRm9yRHVyYXRpb24oZG91YmxlIGR1
cmF0aW9uKTsKLSNlbmRpZgotICAgIAotICAgIGNsYXNzIFRpbWVyQmFzZSB7Ci0gICAgICAgIGZy
aWVuZCBjbGFzcyBSdW5Mb29wOwotICAgIHB1YmxpYzoKLSAgICAgICAgVGltZXJCYXNlKFJ1bkxv
b3AqKTsKLSAgICAgICAgdmlydHVhbCB+VGltZXJCYXNlKCk7Ci0KLSAgICAgICAgdm9pZCBzdGFy
dFJlcGVhdGluZyhkb3VibGUgcmVwZWF0SW50ZXJ2YWwpIHsgc3RhcnQocmVwZWF0SW50ZXJ2YWws
IHRydWUpOyB9Ci0gICAgICAgIHZvaWQgc3RhcnRPbmVTaG90KGRvdWJsZSBpbnRlcnZhbCkgeyBz
dGFydChpbnRlcnZhbCwgZmFsc2UpOyB9Ci0KLSAgICAgICAgdm9pZCBzdG9wKCk7Ci0gICAgICAg
IGJvb2wgaXNBY3RpdmUoKSBjb25zdDsKLQotICAgICAgICB2aXJ0dWFsIHZvaWQgZmlyZWQoKSA9
IDA7Ci0KLSAgICBwcml2YXRlOgotICAgICAgICB2b2lkIHN0YXJ0KGRvdWJsZSBuZXh0RmlyZUlu
dGVydmFsLCBib29sIHJlcGVhdCk7Ci0KLSAgICAgICAgUnVuTG9vcCogbV9ydW5Mb29wOwotCi0j
aWYgUExBVEZPUk0oV0lOKQotICAgICAgICBzdGF0aWMgdm9pZCB0aW1lckZpcmVkKFJ1bkxvb3Aq
LCB1aW50NjRfdCBJRCk7Ci0gICAgICAgIHVpbnQ2NF90IG1fSUQ7Ci0gICAgICAgIGJvb2wgbV9p
c1JlcGVhdGluZzsKLSNlbGlmIFBMQVRGT1JNKE1BQykKLSAgICAgICAgc3RhdGljIHZvaWQgdGlt
ZXJGaXJlZChDRlJ1bkxvb3BUaW1lclJlZiwgdm9pZCopOwotICAgICAgICBDRlJ1bkxvb3BUaW1l
clJlZiBtX3RpbWVyOwotI2VsaWYgUExBVEZPUk0oUVQpCi0gICAgICAgIHN0YXRpYyB2b2lkIHRp
bWVyRmlyZWQoUnVuTG9vcCosIGludCBJRCk7Ci0gICAgICAgIGludCBtX0lEOwotICAgICAgICBi
b29sIG1faXNSZXBlYXRpbmc7Ci0jZWxpZiBQTEFURk9STShHVEspCi0gICAgICAgIHN0YXRpYyBn
Ym9vbGVhbiB0aW1lckZpcmVkQ2FsbGJhY2soUnVuTG9vcDo6VGltZXJCYXNlKik7Ci0gICAgICAg
IGdib29sZWFuIGlzUmVwZWF0aW5nKCkgY29uc3QgeyByZXR1cm4gbV9pc1JlcGVhdGluZzsgfQot
ICAgICAgICB2b2lkIGNsZWFyVGltZXJTb3VyY2UoKTsKLSAgICAgICAgR1JlZlB0cjxHU291cmNl
PiBtX3RpbWVyU291cmNlOwotICAgICAgICBnYm9vbGVhbiBtX2lzUmVwZWF0aW5nOwotI2VuZGlm
Ci0gICAgfTsKLQotICAgIHRlbXBsYXRlIDx0eXBlbmFtZSBUaW1lckZpcmVkQ2xhc3M+Ci0gICAg
Y2xhc3MgVGltZXIgOiBwdWJsaWMgVGltZXJCYXNlIHsKLSAgICBwdWJsaWM6Ci0gICAgICAgIHR5
cGVkZWYgdm9pZCAoVGltZXJGaXJlZENsYXNzOjoqVGltZXJGaXJlZEZ1bmN0aW9uKSgpOwotCi0g
ICAgICAgIFRpbWVyKFJ1bkxvb3AqIHJ1bkxvb3AsIFRpbWVyRmlyZWRDbGFzcyogbywgVGltZXJG
aXJlZEZ1bmN0aW9uIGYpCi0gICAgICAgICAgICA6IFRpbWVyQmFzZShydW5Mb29wKQotICAgICAg
ICAgICAgLCBtX29iamVjdChvKQotICAgICAgICAgICAgLCBtX2Z1bmN0aW9uKGYpCi0gICAgICAg
IHsKLSAgICAgICAgfQotCi0gICAgcHJpdmF0ZToKLSAgICAgICAgdmlydHVhbCB2b2lkIGZpcmVk
KCkgeyAobV9vYmplY3QtPiptX2Z1bmN0aW9uKSgpOyB9Ci0KLSAgICAgICAgVGltZXJGaXJlZENs
YXNzKiBtX29iamVjdDsKLSAgICAgICAgVGltZXJGaXJlZEZ1bmN0aW9uIG1fZnVuY3Rpb247Ci0g
ICAgfTsKLQotcHJpdmF0ZToKLSAgICBmcmllbmQgY2xhc3MgV1RGOjpUaHJlYWRTcGVjaWZpYzxS
dW5Mb29wPjsKLQotICAgIFJ1bkxvb3AoKTsKLSAgICB+UnVuTG9vcCgpOwotCi0gICAgdm9pZCBw
ZXJmb3JtV29yaygpOwotICAgIHZvaWQgd2FrZVVwKCk7Ci0KLSAgICBNdXRleCBtX2Z1bmN0aW9u
UXVldWVMb2NrOwotICAgIFZlY3RvcjxGdW5jdGlvbjx2b2lkKCk+ID4gbV9mdW5jdGlvblF1ZXVl
OwotCi0jaWYgUExBVEZPUk0oV0lOKQotICAgIHN0YXRpYyBib29sIHJlZ2lzdGVyUnVuTG9vcE1l
c3NhZ2VXaW5kb3dDbGFzcygpOwotICAgIHN0YXRpYyBMUkVTVUxUIENBTExCQUNLIFJ1bkxvb3BX
bmRQcm9jKEhXTkQsIFVJTlQsIFdQQVJBTSwgTFBBUkFNKTsKLSAgICBMUkVTVUxUIHduZFByb2Mo
SFdORCBoV25kLCBVSU5UIG1lc3NhZ2UsIFdQQVJBTSB3UGFyYW0sIExQQVJBTSBsUGFyYW0pOwot
ICAgIEhXTkQgbV9ydW5Mb29wTWVzc2FnZVdpbmRvdzsKLQotICAgIHR5cGVkZWYgSGFzaE1hcDx1
aW50NjRfdCwgVGltZXJCYXNlKj4gVGltZXJNYXA7Ci0gICAgVGltZXJNYXAgbV9hY3RpdmVUaW1l
cnM7Ci0jZWxpZiBQTEFURk9STShNQUMpCi0gICAgc3RhdGljIHZvaWQgcGVyZm9ybVdvcmsodm9p
ZCopOwotICAgIENGUnVuTG9vcFJlZiBtX3J1bkxvb3A7Ci0gICAgQ0ZSdW5Mb29wU291cmNlUmVm
IG1fcnVuTG9vcFNvdXJjZTsKLSAgICBpbnQgbV9uZXN0aW5nTGV2ZWw7Ci0jZWxpZiBQTEFURk9S
TShRVCkKLSAgICB0eXBlZGVmIEhhc2hNYXA8aW50LCBUaW1lckJhc2UqPiBUaW1lck1hcDsKLSAg
ICBUaW1lck1hcCBtX2FjdGl2ZVRpbWVyczsKLSAgICBjbGFzcyBUaW1lck9iamVjdDsKLSAgICBU
aW1lck9iamVjdCogbV90aW1lck9iamVjdDsKLSNlbGlmIFBMQVRGT1JNKEdUSykKLXB1YmxpYzoK
LSAgICBzdGF0aWMgZ2Jvb2xlYW4gcXVldWVXb3JrKFJ1bkxvb3AqKTsKLSAgICBHTWFpbkxvb3Aq
IG1haW5Mb29wKCk7Ci1wcml2YXRlOgotICAgIEdNYWluQ29udGV4dCogbV9ydW5Mb29wQ29udGV4
dDsKLSAgICBHTWFpbkxvb3AqIG1fcnVuTG9vcE1haW47Ci0jZW5kaWYKLX07Ci0KLSNlbmRpZiAv
LyBSdW5Mb29wX2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL2d0ay9SdW5M
b29wR3RrLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL2d0ay9SdW5Mb29wR3RrLmNwcApk
ZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggODFjYmVhYWYxODdjNTllMWNlNzFmZTQ0Mjli
ODZkMWI5NjcxNjc5Mi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAot
LS0gYS9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9ndGsvUnVuTG9vcEd0ay5jcHAKKysrIC9kZXYv
bnVsbApAQCAtMSwxMzQgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMCBBcHBsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKiBQb3J0aW9ucyBDb3B5cmlnaHQgKGMpIDIwMTAg
TW90b3JvbGEgTW9iaWxpdHksIEluYy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMg
b2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
LgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24g
YW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0g
KgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09O
VFJJQlVUT1JTIGBgQVMgSVMnJwotICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFO
VElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBUSEUgSU1QTElFRCBXQVJS
QU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0g
KiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9S
IElUUyBDT05UUklCVVRPUlMKLSAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1Qs
IElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKLSAqIENPTlNFUVVFTlRJQUwgREFN
QUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCi0gKiBT
VUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklU
UzsgT1IgQlVTSU5FU1MKLSAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFO
WSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCi0gKiBDT05UUkFDVCwgU1RSSUNUIExJ
QUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQotICog
QVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4g
SUYgQURWSVNFRCBPRgotICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0K
LSNpbmNsdWRlICJjb25maWcuaCIKLSNpbmNsdWRlICJSdW5Mb29wLmgiCi0KLSNpbmNsdWRlICJX
S0Jhc2UuaCIKLSNpbmNsdWRlIDxnbGliLmg+Ci0KLVJ1bkxvb3A6OlJ1bkxvb3AoKQotewotICAg
IG1fcnVuTG9vcENvbnRleHQgPSBnX21haW5fY29udGV4dF9kZWZhdWx0KCk7Ci0gICAgQVNTRVJU
KG1fcnVuTG9vcENvbnRleHQpOwotICAgIG1fcnVuTG9vcE1haW4gPSBnX21haW5fbG9vcF9uZXco
bV9ydW5Mb29wQ29udGV4dCwgRkFMU0UpOwotICAgIEFTU0VSVChtX3J1bkxvb3BNYWluKTsKLX0K
LQotUnVuTG9vcDo6flJ1bkxvb3AoKQotewotICAgIGlmIChtX3J1bkxvb3BNYWluKSB7Ci0gICAg
ICAgIGlmIChnX21haW5fbG9vcF9pc19ydW5uaW5nKG1fcnVuTG9vcE1haW4pKQotICAgICAgICAg
ICAgZ19tYWluX2xvb3BfcXVpdChtX3J1bkxvb3BNYWluKTsKLSAgICAgICAgZ19tYWluX2xvb3Bf
dW5yZWYobV9ydW5Mb29wTWFpbik7Ci0gICAgfQotCi0gICAgaWYgKG1fcnVuTG9vcENvbnRleHQp
Ci0gICAgICAgIGdfbWFpbl9jb250ZXh0X3VucmVmKG1fcnVuTG9vcENvbnRleHQpOwotfQotCi12
b2lkIFJ1bkxvb3A6OnJ1bigpCi17Ci0gICAgZ19tYWluX2xvb3BfcnVuKFJ1bkxvb3A6Om1haW4o
KS0+bWFpbkxvb3AoKSk7Ci19Ci0KLUdNYWluTG9vcCogUnVuTG9vcDo6bWFpbkxvb3AoKQotewot
ICAgIHJldHVybiBtX3J1bkxvb3BNYWluOwotfQotCi12b2lkIFJ1bkxvb3A6OnN0b3AoKQotewot
ICAgIGdfbWFpbl9sb29wX3F1aXQobV9ydW5Mb29wTWFpbik7Ci19Ci0KLWdib29sZWFuIFJ1bkxv
b3A6OnF1ZXVlV29yayhSdW5Mb29wKiBydW5Mb29wKQotewotICAgIHJ1bkxvb3AtPnBlcmZvcm1X
b3JrKCk7Ci0gICAgcmV0dXJuIEZBTFNFOwotfQotCi12b2lkIFJ1bkxvb3A6Ondha2VVcCgpCi17
Ci0gICAgR1JlZlB0cjxHU291cmNlPiBzb3VyY2UgPSBhZG9wdEdSZWYoZ19pZGxlX3NvdXJjZV9u
ZXcoKSk7Ci0gICAgZ19zb3VyY2Vfc2V0X3ByaW9yaXR5KHNvdXJjZS5nZXQoKSwgR19QUklPUklU
WV9ERUZBVUxUKTsKLSAgICBnX3NvdXJjZV9zZXRfY2FsbGJhY2soc291cmNlLmdldCgpLCByZWlu
dGVycHJldF9jYXN0PEdTb3VyY2VGdW5jPigmUnVuTG9vcDo6cXVldWVXb3JrKSwgdGhpcywgMCk7
Ci0gICAgZ19zb3VyY2VfYXR0YWNoKHNvdXJjZS5nZXQoKSwgbV9ydW5Mb29wQ29udGV4dCk7Ci0K
LSAgICBnX21haW5fY29udGV4dF93YWtldXAobV9ydW5Mb29wQ29udGV4dCk7Ci19Ci0KLVJ1bkxv
b3A6OlRpbWVyQmFzZTo6VGltZXJCYXNlKFJ1bkxvb3AqIHJ1bkxvb3ApCi0gICAgOiBtX3J1bkxv
b3AocnVuTG9vcCkKLSAgICAsIG1fdGltZXJTb3VyY2UoMCkKLXsKLX0KLQotUnVuTG9vcDo6VGlt
ZXJCYXNlOjp+VGltZXJCYXNlKCkKLXsKLSAgICBzdG9wKCk7Ci19Ci0KLXZvaWQgUnVuTG9vcDo6
VGltZXJCYXNlOjpjbGVhclRpbWVyU291cmNlKCkKLXsKLSAgICBtX3RpbWVyU291cmNlID0gMDsK
LX0KLQotZ2Jvb2xlYW4gUnVuTG9vcDo6VGltZXJCYXNlOjp0aW1lckZpcmVkQ2FsbGJhY2soUnVu
TG9vcDo6VGltZXJCYXNlKiB0aW1lcikKLXsKLSAgICBHU291cmNlKiBjdXJyZW50VGltZXJTb3Vy
Y2UgPSB0aW1lci0+bV90aW1lclNvdXJjZS5nZXQoKTsKLSAgICBib29sIGlzUmVwZWF0aW5nID0g
dGltZXItPmlzUmVwZWF0aW5nKCk7Ci0gICAgLy8gVGhpcyBjYW4gY2hhbmdlIHRoZSB0aW1lclNv
dXJjZSBieSBzdGFydGluZyBhIG5ldyB0aW1lciB3aXRoaW4gdGhlIGNhbGxiYWNrLgotICAgIHRp
bWVyLT5maXJlZCgpOwotICAgIGlmICghaXNSZXBlYXRpbmcgJiYgY3VycmVudFRpbWVyU291cmNl
ID09IHRpbWVyLT5tX3RpbWVyU291cmNlLmdldCgpKQotICAgICAgICB0aW1lci0+Y2xlYXJUaW1l
clNvdXJjZSgpOwotICAgIHJldHVybiBpc1JlcGVhdGluZzsKLX0KLQotdm9pZCBSdW5Mb29wOjpU
aW1lckJhc2U6OnN0YXJ0KGRvdWJsZSBmaXJlSW50ZXJ2YWwsIGJvb2wgcmVwZWF0KQotewotICAg
IGlmIChtX3RpbWVyU291cmNlKQotICAgICAgICBzdG9wKCk7Ci0KLSAgICBtX3RpbWVyU291cmNl
ID0gYWRvcHRHUmVmKGdfdGltZW91dF9zb3VyY2VfbmV3KHN0YXRpY19jYXN0PGd1aW50PihmaXJl
SW50ZXJ2YWwgKiAxMDAwKSkpOwotICAgIG1faXNSZXBlYXRpbmcgPSByZXBlYXQ7Ci0gICAgZ19z
b3VyY2Vfc2V0X2NhbGxiYWNrKG1fdGltZXJTb3VyY2UuZ2V0KCksIHJlaW50ZXJwcmV0X2Nhc3Q8
R1NvdXJjZUZ1bmM+KCZSdW5Mb29wOjpUaW1lckJhc2U6OnRpbWVyRmlyZWRDYWxsYmFjayksIHRo
aXMsIDApOwotICAgIGdfc291cmNlX2F0dGFjaChtX3RpbWVyU291cmNlLmdldCgpLCBtX3J1bkxv
b3AtPm1fcnVuTG9vcENvbnRleHQpOwotfQotCi12b2lkIFJ1bkxvb3A6OlRpbWVyQmFzZTo6c3Rv
cCgpCi17Ci0gICAgaWYgKCFtX3RpbWVyU291cmNlKQotICAgICAgICByZXR1cm47Ci0KLSAgICBn
X3NvdXJjZV9kZXN0cm95KG1fdGltZXJTb3VyY2UuZ2V0KCkpOwotICAgIGNsZWFyVGltZXJTb3Vy
Y2UoKTsKLX0KLQotYm9vbCBSdW5Mb29wOjpUaW1lckJhc2U6OmlzQWN0aXZlKCkgY29uc3QKLXsK
LSAgICByZXR1cm4gbV90aW1lclNvdXJjZTsKLX0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQy
L1BsYXRmb3JtL21hYy9SdW5Mb29wTWFjLm1tIGIvU291cmNlL1dlYktpdDIvUGxhdGZvcm0vbWFj
L1J1bkxvb3BNYWMubW0KZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAzYmI4NmU4ZDky
NzgzMmRiODAyMjIyMTNmNjQ5NjgzMWRiYmE0MDMuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYktpdDIvUGxhdGZvcm0vbWFjL1J1bkxvb3BN
YWMubW0KKysrIC9kZXYvbnVsbApAQCAtMSwxNTMgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAo
QykgMjAxMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291
cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICog
Mi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92
ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29y
IG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICog
VEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVU
T1JTIGBgQVMgSVMnJwotICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywg
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBUSEUgSU1QTElFRCBXQVJSQU5USUVT
IE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQ
T1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBD
T05UUklCVVRPUlMKLSAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lE
RU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKLSAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAo
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCi0gKiBTVUJTVElU
VVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1Ig
QlVTSU5FU1MKLSAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVP
UlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCi0gKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElU
WSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQotICogQVJJU0lO
RyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURW
SVNFRCBPRgotICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNpbXBv
cnQgImNvbmZpZy5oIgotI2ltcG9ydCAiUnVuTG9vcC5oIgotCi12b2lkIFJ1bkxvb3A6OnBlcmZv
cm1Xb3JrKHZvaWQqIGNvbnRleHQpCi17Ci0gICAgLy8gV3JhcCBtYWluIHRocmVhZCBpbiBhbiBB
dXRvcmVsZWFzZSBwb29sLiAgU2VuZGluZyBtZXNzYWdlcyBjYW4gY2FsbCAKLSAgICAvLyBpbnRv
IG9iamMgY29kZSBhbmQgYWNjdW11bGF0ZSBtZW1vcnkuICAKLSAgICBpZiAoY3VycmVudCgpID09
IG1haW4oKSkgewotICAgICAgICBOU0F1dG9yZWxlYXNlUG9vbCAqcG9vbCA9IFtbTlNBdXRvcmVs
ZWFzZVBvb2wgYWxsb2NdIGluaXRdOwotICAgICAgICBzdGF0aWNfY2FzdDxSdW5Mb29wKj4oY29u
dGV4dCktPnBlcmZvcm1Xb3JrKCk7Ci0gICAgICAgIFtwb29sIGRyYWluXTsKLSAgICB9IGVsc2UK
LSAgICAgICAgc3RhdGljX2Nhc3Q8UnVuTG9vcCo+KGNvbnRleHQpLT5wZXJmb3JtV29yaygpOwot
fQotCi1SdW5Mb29wOjpSdW5Mb29wKCkKLSAgICA6IG1fcnVuTG9vcChDRlJ1bkxvb3BHZXRDdXJy
ZW50KCkpCi0gICAgLCBtX25lc3RpbmdMZXZlbCgwKQotewotICAgIENGUnVuTG9vcFNvdXJjZUNv
bnRleHQgY29udGV4dCA9IHsgMCwgdGhpcywgMCwgMCwgMCwgMCwgMCwgMCwgMCwgcGVyZm9ybVdv
cmsgfTsKLSAgICBtX3J1bkxvb3BTb3VyY2UgPSBDRlJ1bkxvb3BTb3VyY2VDcmVhdGUoa0NGQWxs
b2NhdG9yRGVmYXVsdCwgMCwgJmNvbnRleHQpOwotICAgIENGUnVuTG9vcEFkZFNvdXJjZShtX3J1
bkxvb3AsIG1fcnVuTG9vcFNvdXJjZSwga0NGUnVuTG9vcENvbW1vbk1vZGVzKTsKLX0KLQotUnVu
TG9vcDo6flJ1bkxvb3AoKQotewotICAgIC8vIEZJWE1FOiBUZWFyIGRvd24gdGhlIHdvcmsgaXRl
bSBxdWV1ZSBoZXJlLgotICAgIENGUnVuTG9vcFNvdXJjZUludmFsaWRhdGUobV9ydW5Mb29wU291
cmNlKTsKLSAgICBDRlJlbGVhc2UobV9ydW5Mb29wU291cmNlKTsKLX0KLQotdm9pZCBSdW5Mb29w
OjpydW4oKQotewotICAgIGN1cnJlbnQoKS0+bV9uZXN0aW5nTGV2ZWwrKzsKLSAgICBpZiAoY3Vy
cmVudCgpID09IG1haW4oKSAmJiBjdXJyZW50KCktPm1fbmVzdGluZ0xldmVsID09IDEpIHsKLSAg
ICAgICAgLy8gVXNlIC1bTlNBcHBsaWNhdGlvbiBydW5dIGZvciB0aGUgbWFpbiBydW4gbG9vcC4K
LSAgICAgICAgW05TQXBwIHJ1bl07Ci0gICAgfSBlbHNlIHsKLSAgICAgICAgTlNBdXRvcmVsZWFz
ZVBvb2wgKnBvb2wgPSBbW05TQXV0b3JlbGVhc2VQb29sIGFsbG9jXSBpbml0XTsKLSAgICAgICAg
Q0ZSdW5Mb29wUnVuKCk7Ci0gICAgICAgIFtwb29sIGRyYWluXTsKLSAgICB9Ci0gICAgY3VycmVu
dCgpLT5tX25lc3RpbmdMZXZlbC0tOwotfQotCi12b2lkIFJ1bkxvb3A6OnJ1bkZvckR1cmF0aW9u
KGRvdWJsZSBkdXJhdGlvbikKLXsKLSAgICBDRlJ1bkxvb3BSdW5Jbk1vZGUoa0NGUnVuTG9vcERl
ZmF1bHRNb2RlLCBkdXJhdGlvbiwgdHJ1ZSk7Ci19Ci0KLXZvaWQgUnVuTG9vcDo6c3RvcCgpCi17
Ci0gICAgQVNTRVJUKG1fcnVuTG9vcCA9PSBDRlJ1bkxvb3BHZXRDdXJyZW50KCkpOwotICAgIAot
ICAgIGlmIChtX3J1bkxvb3AgPT0gbWFpbigpLT5tX3J1bkxvb3AgJiYgbV9uZXN0aW5nTGV2ZWwg
PT0gMSkgewotICAgICAgICBbTlNBcHAgc3RvcDpuaWxdOwotICAgICAgICBOU0V2ZW50ICpldmVu
dCA9IFtOU0V2ZW50IG90aGVyRXZlbnRXaXRoVHlwZTpOU0FwcGxpY2F0aW9uRGVmaW5lZAotICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb2NhdGlvbjpOU01ha2VQ
b2ludCgwLCAwKQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbW9kaWZp
ZXJGbGFnczowCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGlt
ZXN0YW1wOjAuMAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aW5k
b3dOdW1iZXI6MAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
Y29udGV4dDpuaWwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IHN1YnR5cGU6IDAKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgZGF0YTE6MAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBkYXRhMjowXTsKLSAgICAgICAgW05TQXBwIHBvc3RFdmVudDpldmVudCBhdFN0YXJ0OnRydWVd
OwotICAgIH0gZWxzZQotICAgICAgICBDRlJ1bkxvb3BTdG9wKG1fcnVuTG9vcCk7Ci19Ci0KLXZv
aWQgUnVuTG9vcDo6d2FrZVVwKCkKLXsKLSAgICBDRlJ1bkxvb3BTb3VyY2VTaWduYWwobV9ydW5M
b29wU291cmNlKTsKLSAgICBDRlJ1bkxvb3BXYWtlVXAobV9ydW5Mb29wKTsKLX0KLQotLy8gUnVu
TG9vcDo6VGltZXIKLQotdm9pZCBSdW5Mb29wOjpUaW1lckJhc2U6OnRpbWVyRmlyZWQoQ0ZSdW5M
b29wVGltZXJSZWYsIHZvaWQqIGNvbnRleHQpCi17Ci0gICAgVGltZXJCYXNlKiB0aW1lciA9IHN0
YXRpY19jYXN0PFRpbWVyQmFzZSo+KGNvbnRleHQpOwotICAgIAotICAgIC8vIFdyYXAgbWFpbiB0
aHJlYWQgaW4gYW4gQXV0b3JlbGVhc2UgcG9vbC4gIFRoZSB0aW1lciBjYW4gY2FsbCAKLSAgICAv
LyBpbnRvIG9iamMgY29kZSBhbmQgYWNjdW11bGF0ZSBtZW1vcnkgb3V0c2lkZSBvZiB0aGUgbWFp
biBldmVudCBsb29wLgotICAgIGlmIChjdXJyZW50KCkgPT0gbWFpbigpKSB7Ci0gICAgICAgIE5T
QXV0b3JlbGVhc2VQb29sICpwb29sID0gW1tOU0F1dG9yZWxlYXNlUG9vbCBhbGxvY10gaW5pdF07
IAotICAgICAgICB0aW1lci0+ZmlyZWQoKTsKLSAgICAgICAgW3Bvb2wgZHJhaW5dOwotICAgIH0g
ZWxzZQotICAgICAgICB0aW1lci0+ZmlyZWQoKTsKLX0KLQotUnVuTG9vcDo6VGltZXJCYXNlOjpU
aW1lckJhc2UoUnVuTG9vcCogcnVuTG9vcCkKLSAgICA6IG1fcnVuTG9vcChydW5Mb29wKQotICAg
ICwgbV90aW1lcigwKQotewotfQotCi1SdW5Mb29wOjpUaW1lckJhc2U6On5UaW1lckJhc2UoKQot
ewotICAgIHN0b3AoKTsKLX0KLQotdm9pZCBSdW5Mb29wOjpUaW1lckJhc2U6OnN0YXJ0KGRvdWJs
ZSBuZXh0RmlyZUludGVydmFsLCBib29sIHJlcGVhdCkKLXsKLSAgICBpZiAobV90aW1lcikKLSAg
ICAgICAgc3RvcCgpOwotCi0gICAgQ0ZSdW5Mb29wVGltZXJDb250ZXh0IGNvbnRleHQgPSB7IDAs
IHRoaXMsIDAsIDAsIDAgfTsKLSAgICBDRlRpbWVJbnRlcnZhbCByZXBlYXRJbnRlcnZhbCA9IHJl
cGVhdCA/IG5leHRGaXJlSW50ZXJ2YWwgOiAwOwotICAgIG1fdGltZXIgPSBDRlJ1bkxvb3BUaW1l
ckNyZWF0ZShrQ0ZBbGxvY2F0b3JEZWZhdWx0LCBDRkFic29sdXRlVGltZUdldEN1cnJlbnQoKSAr
IG5leHRGaXJlSW50ZXJ2YWwsIHJlcGVhdEludGVydmFsLCAwLCAwLCB0aW1lckZpcmVkLCAmY29u
dGV4dCk7Ci0gICAgQ0ZSdW5Mb29wQWRkVGltZXIobV9ydW5Mb29wLT5tX3J1bkxvb3AsIG1fdGlt
ZXIsIGtDRlJ1bkxvb3BDb21tb25Nb2Rlcyk7Ci19Ci0KLXZvaWQgUnVuTG9vcDo6VGltZXJCYXNl
OjpzdG9wKCkKLXsKLSAgICBpZiAoIW1fdGltZXIpCi0gICAgICAgIHJldHVybjsKLQotICAgIENG
UnVuTG9vcFRpbWVySW52YWxpZGF0ZShtX3RpbWVyKTsKLSAgICBDRlJlbGVhc2UobV90aW1lcik7
Ci0gICAgbV90aW1lciA9IDA7Ci19Ci0KLWJvb2wgUnVuTG9vcDo6VGltZXJCYXNlOjppc0FjdGl2
ZSgpIGNvbnN0Ci17Ci0gICAgcmV0dXJuIG1fdGltZXIgJiYgQ0ZSdW5Mb29wVGltZXJJc1ZhbGlk
KG1fdGltZXIpOwotfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvUGxhdGZvcm0vcXQvUnVu
TG9vcFF0LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL3F0L1J1bkxvb3BRdC5jcHAKZGVs
ZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwN2EwYTViMWFmZTA5ODAzOTg5MDlhYjcwYmI3
M2I5ZDlmMDhkZTcuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0t
IGEvU291cmNlL1dlYktpdDIvUGxhdGZvcm0vcXQvUnVuTG9vcFF0LmNwcAorKysgL2Rldi9udWxs
CkBAIC0xLDE2MyArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDEwIEFwcGxlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqIENvcHlyaWdodCAoQykgMjAxMCBOb2tpYSBDb3Jwb3Jh
dGlvbiBhbmQvb3IgaXRzIHN1YnNpZGlhcnkoLWllcykKLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29k
ZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRp
c3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHly
aWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIg
bWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNP
RlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBB
UyBJUycnCi0gKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVS
Q0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJF
IERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJV
VE9SUwotICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwg
U1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgotICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKLSAqIFNVQlNUSVRVVEUgR09P
RFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVT
UwotICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBM
SUFCSUxJVFksIFdIRVRIRVIgSU4KLSAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBU
T1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCi0gKiBBUklTSU5HIElOIEFO
WSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9G
Ci0gKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI2luY2x1ZGUgImNv
bmZpZy5oIgotI2luY2x1ZGUgIlJ1bkxvb3AuaCIKLQotI2luY2x1ZGUgPFFDb3JlQXBwbGljYXRp
b24+Ci0jaW5jbHVkZSA8UUFic3RyYWN0RXZlbnREaXNwYXRjaGVyPgotI2luY2x1ZGUgPFFPYmpl
Y3Q+Ci0jaW5jbHVkZSA8UU1ldGFNZXRob2Q+Ci0jaW5jbHVkZSA8UU1ldGFPYmplY3Q+Ci0jaW5j
bHVkZSA8UVRpbWVyRXZlbnQ+Ci0KLWNsYXNzIFJ1bkxvb3A6OlRpbWVyT2JqZWN0IDogcHVibGlj
IFFPYmplY3QKLXsKLSAgICBRX09CSkVDVAotcHVibGljOgotICAgIFRpbWVyT2JqZWN0KFJ1bkxv
b3AqIHJ1bkxvb3ApIDogbV9ydW5Mb29wKHJ1bkxvb3ApCi0gICAgewotICAgICAgICBpbnQgbWV0
aG9kSW5kZXggPSBtZXRhT2JqZWN0KCktPmluZGV4T2ZNZXRob2QoInBlcmZvcm1Xb3JrKCkiKTsK
LSAgICAgICAgbV9tZXRob2QgPSBtZXRhT2JqZWN0KCktPm1ldGhvZChtZXRob2RJbmRleCk7Ci0g
ICAgfQotCi0gICAgUV9TTE9UIHZvaWQgcGVyZm9ybVdvcmsoKSB7IG1fcnVuTG9vcC0+cGVyZm9y
bVdvcmsoKTsgfQotICAgIGlubGluZSB2b2lkIHdha2VVcCgpIHsgbV9tZXRob2QuaW52b2tlKHRo
aXMsIFF0OjpRdWV1ZWRDb25uZWN0aW9uKTsgfQotCi1wcm90ZWN0ZWQ6Ci0gICAgdmlydHVhbCB2
b2lkIHRpbWVyRXZlbnQoUVRpbWVyRXZlbnQqIGV2ZW50KQotICAgIHsKLSAgICAgICAgUnVuTG9v
cDo6VGltZXJCYXNlOjp0aW1lckZpcmVkKG1fcnVuTG9vcCwgZXZlbnQtPnRpbWVySWQoKSk7Ci0g
ICAgfQotCi1wcml2YXRlOgotICAgIFJ1bkxvb3AqIG1fcnVuTG9vcDsKLSAgICBRTWV0YU1ldGhv
ZCBtX21ldGhvZDsKLX07Ci0KLXN0YXRpYyBRRXZlbnRMb29wKiBjdXJyZW50RXZlbnRMb29wOwot
Ci12b2lkIFJ1bkxvb3A6OnJ1bigpCi17Ci0gICAgc3RhdGljIGJvb2wgbWFpbkV2ZW50TG9vcElz
UnVubmluZyA9IGZhbHNlOwotICAgIGlmICghbWFpbkV2ZW50TG9vcElzUnVubmluZykgewotICAg
ICAgICBtYWluRXZlbnRMb29wSXNSdW5uaW5nID0gdHJ1ZTsKLSAgICAgICAgUUNvcmVBcHBsaWNh
dGlvbjo6ZXhlYygpOwotICAgICAgICBtYWluRXZlbnRMb29wSXNSdW5uaW5nID0gZmFsc2U7Ci0g
ICAgfSBlbHNlIHsKLSAgICAgICAgUUV2ZW50TG9vcCBldmVudExvb3A7Ci0KLSAgICAgICAgUUV2
ZW50TG9vcCogcHJldmlvdXNFdmVudExvb3AgPSBjdXJyZW50RXZlbnRMb29wOwotICAgICAgICBj
dXJyZW50RXZlbnRMb29wID0gJmV2ZW50TG9vcDsKLQotICAgICAgICBldmVudExvb3AuZXhlYygp
OwotCi0gICAgICAgIGN1cnJlbnRFdmVudExvb3AgPSBwcmV2aW91c0V2ZW50TG9vcDsKLSAgICB9
Ci19Ci0KLXZvaWQgUnVuTG9vcDo6c3RvcCgpCi17Ci0gICAgaWYgKGN1cnJlbnRFdmVudExvb3Ap
Ci0gICAgICAgIGN1cnJlbnRFdmVudExvb3AtPmV4aXQoKTsKLSAgICBlbHNlCi0gICAgICAgIFFD
b3JlQXBwbGljYXRpb246OmV4aXQoKTsKLX0KLQotUnVuTG9vcDo6UnVuTG9vcCgpCi0gICAgOiBt
X3RpbWVyT2JqZWN0KG5ldyBUaW1lck9iamVjdCh0aGlzKSkKLXsKLX0KLQotUnVuTG9vcDo6flJ1
bkxvb3AoKQotewotICAgIGRlbGV0ZSBtX3RpbWVyT2JqZWN0OwotfQotCi12b2lkIFJ1bkxvb3A6
Ondha2VVcCgpCi17Ci0gICAgbV90aW1lck9iamVjdC0+d2FrZVVwKCk7Ci19Ci0KLS8vIFJ1bkxv
b3A6OlRpbWVyCi0KLXZvaWQgUnVuTG9vcDo6VGltZXJCYXNlOjp0aW1lckZpcmVkKFJ1bkxvb3Aq
IHJ1bkxvb3AsIGludCBJRCkKLXsKLSAgICBUaW1lck1hcDo6aXRlcmF0b3IgaXQgPSBydW5Mb29w
LT5tX2FjdGl2ZVRpbWVycy5maW5kKElEKTsKLSAgICBBU1NFUlQoaXQgIT0gcnVuTG9vcC0+bV9h
Y3RpdmVUaW1lcnMuZW5kKCkpOwotICAgIFRpbWVyQmFzZSogdGltZXIgPSBpdC0+c2Vjb25kOwot
Ci0gICAgaWYgKCF0aW1lci0+bV9pc1JlcGVhdGluZykgewotICAgICAgICAvLyBTdG9wIHRoZSB0
aW1lciAoY2FsbGluZyBzdG9wIHdvdWxkIG5lZWQgYW5vdGhlciBoYXNoIHRhYmxlIGxvb2t1cCku
Ci0gICAgICAgIHJ1bkxvb3AtPm1fYWN0aXZlVGltZXJzLnJlbW92ZShpdCk7Ci0gICAgICAgIHJ1
bkxvb3AtPm1fdGltZXJPYmplY3QtPmtpbGxUaW1lcih0aW1lci0+bV9JRCk7Ci0gICAgICAgIHRp
bWVyLT5tX0lEID0gMDsKLSAgICB9Ci0KLSAgICB0aW1lci0+ZmlyZWQoKTsKLX0KLQotUnVuTG9v
cDo6VGltZXJCYXNlOjpUaW1lckJhc2UoUnVuTG9vcCogcnVuTG9vcCkKLSAgICA6IG1fcnVuTG9v
cChydW5Mb29wKQotICAgICwgbV9JRCgwKQotICAgICwgbV9pc1JlcGVhdGluZyhmYWxzZSkKLXsK
LX0KLQotUnVuTG9vcDo6VGltZXJCYXNlOjp+VGltZXJCYXNlKCkKLXsKLSAgICBzdG9wKCk7Ci19
Ci0KLXZvaWQgUnVuTG9vcDo6VGltZXJCYXNlOjpzdGFydChkb3VibGUgbmV4dEZpcmVJbnRlcnZh
bCwgYm9vbCByZXBlYXQpCi17Ci0gICAgc3RvcCgpOwotICAgIGludCBtaWxsaXMgPSBzdGF0aWNf
Y2FzdDxpbnQ+KG5leHRGaXJlSW50ZXJ2YWwgKiAxMDAwKTsKLSAgICBtX2lzUmVwZWF0aW5nID0g
cmVwZWF0OwotICAgIG1fSUQgPSBtX3J1bkxvb3AtPm1fdGltZXJPYmplY3QtPnN0YXJ0VGltZXIo
bWlsbGlzKTsKLSAgICBBU1NFUlQobV9JRCk7Ci0gICAgbV9ydW5Mb29wLT5tX2FjdGl2ZVRpbWVy
cy5zZXQobV9JRCwgdGhpcyk7Ci19Ci0KLXZvaWQgUnVuTG9vcDo6VGltZXJCYXNlOjpzdG9wKCkK
LXsKLSAgICBpZiAoIW1fSUQpCi0gICAgICAgIHJldHVybjsKLSAgICBUaW1lck1hcDo6aXRlcmF0
b3IgaXQgPSBtX3J1bkxvb3AtPm1fYWN0aXZlVGltZXJzLmZpbmQobV9JRCk7Ci0gICAgaWYgKGl0
ID09IG1fcnVuTG9vcC0+bV9hY3RpdmVUaW1lcnMuZW5kKCkpCi0gICAgICAgIHJldHVybjsKLQot
ICAgIG1fcnVuTG9vcC0+bV9hY3RpdmVUaW1lcnMucmVtb3ZlKGl0KTsKLSAgICBtX3J1bkxvb3At
Pm1fdGltZXJPYmplY3QtPmtpbGxUaW1lcihtX0lEKTsKLSAgICBtX0lEID0gMDsKLX0KLQotYm9v
bCBSdW5Mb29wOjpUaW1lckJhc2U6OmlzQWN0aXZlKCkgY29uc3QKLXsKLSAgICByZXR1cm4gbV9J
RDsKLX0KLQotI2luY2x1ZGUgIlJ1bkxvb3BRdC5tb2MiCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0Mi9QbGF0Zm9ybS93aW4vUnVuTG9vcFdpbi5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9y
bS93aW4vUnVuTG9vcFdpbi5jcHAKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGRmYmNh
ZWU1NjJlNjUzNTkxMWFlYWNkMWZmYjA0OWJlMTc4ZjAxZjUuLjAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYktpdDIvUGxhdGZvcm0vd2luL1J1
bkxvb3BXaW4uY3BwCisrKyAvZGV2L251bGwKQEAgLTEsMTc5ICswLDAgQEAKLS8qCi0gKiBDb3B5
cmlnaHQgKEMpIDIwMTAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25z
IG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0
aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9u
IGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgot
ICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENP
TlRSSUJVVE9SUyBgYEFTIElTJycKLSAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJB
TlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogVEhFIElNUExJRUQgV0FS
UkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgot
ICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBP
UiBJVFMgQ09OVFJJQlVUT1JTCi0gKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNU
LCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCi0gKiBDT05TRVFVRU5USUFMIERB
TUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgotICog
U1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJ
VFM7IE9SIEJVU0lORVNTCi0gKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBB
TlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgotICogQ09OVFJBQ1QsIFNUUklDVCBM
SUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKLSAq
IEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVO
IElGIEFEVklTRUQgT0YKLSAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwot
Ci0jaW5jbHVkZSAiY29uZmlnLmgiCi0jaW5jbHVkZSAiUnVuTG9vcC5oIgotCi0jaW5jbHVkZSAi
QmluYXJ5U2VtYXBob3JlLmgiCi0jaW5jbHVkZSA8d3RmL0N1cnJlbnRUaW1lLmg+Ci0KLXVzaW5n
IG5hbWVzcGFjZSBDb3JlSVBDOwotdXNpbmcgbmFtZXNwYWNlIHN0ZDsKLQotc3RhdGljIGNvbnN0
IFVJTlQgUGVyZm9ybVdvcmtNZXNzYWdlID0gV01fVVNFUiArIDE7Ci1zdGF0aWMgY29uc3QgTFBX
U1RSIGtSdW5Mb29wTWVzc2FnZVdpbmRvd0NsYXNzTmFtZSA9IEwiUnVuTG9vcE1lc3NhZ2VXaW5k
b3ciOwotCi1MUkVTVUxUIENBTExCQUNLIFJ1bkxvb3A6OlJ1bkxvb3BXbmRQcm9jKEhXTkQgaFdu
ZCwgVUlOVCBtZXNzYWdlLCBXUEFSQU0gd1BhcmFtLCBMUEFSQU0gbFBhcmFtKQotewotICAgIExP
TkdfUFRSIGxvbmdQdHIgPSA6OkdldFdpbmRvd0xvbmdQdHIoaFduZCwgMCk7Ci0gICAgCi0gICAg
aWYgKFJ1bkxvb3AqIHJ1bkxvb3AgPSByZWludGVycHJldF9jYXN0PFJ1bkxvb3AqPihsb25nUHRy
KSkKLSAgICAgICAgcmV0dXJuIHJ1bkxvb3AtPnduZFByb2MoaFduZCwgbWVzc2FnZSwgd1BhcmFt
LCBsUGFyYW0pOwotCi0gICAgaWYgKG1lc3NhZ2UgPT0gV01fQ1JFQVRFKSB7Ci0gICAgICAgIExQ
Q1JFQVRFU1RSVUNUIGNyZWF0ZVN0cnVjdCA9IHJlaW50ZXJwcmV0X2Nhc3Q8TFBDUkVBVEVTVFJV
Q1Q+KGxQYXJhbSk7Ci0KLSAgICAgICAgLy8gQXNzb2NpYXRlIHRoZSBSdW5Mb29wIHdpdGggdGhl
IHdpbmRvdy4KLSAgICAgICAgOjpTZXRXaW5kb3dMb25nUHRyKGhXbmQsIDAsIChMT05HX1BUUilj
cmVhdGVTdHJ1Y3QtPmxwQ3JlYXRlUGFyYW1zKTsKLSAgICAgICAgcmV0dXJuIDA7Ci0gICAgfQot
Ci0gICAgcmV0dXJuIDo6RGVmV2luZG93UHJvYyhoV25kLCBtZXNzYWdlLCB3UGFyYW0sIGxQYXJh
bSk7Ci19Ci0KLUxSRVNVTFQgUnVuTG9vcDo6d25kUHJvYyhIV05EIGhXbmQsIFVJTlQgbWVzc2Fn
ZSwgV1BBUkFNIHdQYXJhbSwgTFBBUkFNIGxQYXJhbSkKLXsKLSAgICBzd2l0Y2ggKG1lc3NhZ2Up
IHsKLSAgICBjYXNlIFBlcmZvcm1Xb3JrTWVzc2FnZToKLSAgICAgICAgcGVyZm9ybVdvcmsoKTsK
LSAgICAgICAgcmV0dXJuIDA7Ci0gICAgY2FzZSBXTV9USU1FUjoKLSAgICAgICAgUnVuTG9vcDo6
VGltZXJCYXNlOjp0aW1lckZpcmVkKHRoaXMsIHdQYXJhbSk7Ci0gICAgICAgIHJldHVybiAwOwot
ICAgIH0KLQotICAgIHJldHVybiA6OkRlZldpbmRvd1Byb2MoaFduZCwgbWVzc2FnZSwgd1BhcmFt
LCBsUGFyYW0pOwotfQotCi12b2lkIFJ1bkxvb3A6OnJ1bigpCi17Ci0gICAgTVNHIG1lc3NhZ2U7
Ci0gICAgd2hpbGUgKEJPT0wgcmVzdWx0ID0gOjpHZXRNZXNzYWdlKCZtZXNzYWdlLCAwLCAwLCAw
KSkgewotICAgICAgICBpZiAocmVzdWx0ID09IC0xKQotICAgICAgICAgICAgYnJlYWs7Ci0gICAg
ICAgIDo6VHJhbnNsYXRlTWVzc2FnZSgmbWVzc2FnZSk7Ci0gICAgICAgIDo6RGlzcGF0Y2hNZXNz
YWdlKCZtZXNzYWdlKTsKLSAgICB9Ci19Ci0KLXZvaWQgUnVuTG9vcDo6c3RvcCgpCi17Ci0gICAg
OjpQb3N0UXVpdE1lc3NhZ2UoMCk7Ci19Ci0KLWJvb2wgUnVuTG9vcDo6cmVnaXN0ZXJSdW5Mb29w
TWVzc2FnZVdpbmRvd0NsYXNzKCkKLXsKLSAgICAvLyBGSVhNRTogVGhpcyByZWFsbHkgb25seSBu
ZWVkcyB0byBiZSBjYWxsZWQgb25jZS4KLQotICAgIFdORENMQVNTRVggd2luZG93Q2xhc3MgPSB7
IDAgfTsKLSAgICB3aW5kb3dDbGFzcy5jYlNpemUgICAgICAgICAgPSBzaXplb2Yod2luZG93Q2xh
c3MpOwotICAgIHdpbmRvd0NsYXNzLmxwZm5XbmRQcm9jICAgICA9IFJ1bkxvb3A6OlJ1bkxvb3BX
bmRQcm9jOwotICAgIHdpbmRvd0NsYXNzLmNiV25kRXh0cmEgICAgICA9IHNpemVvZihSdW5Mb29w
Kik7Ci0gICAgd2luZG93Q2xhc3MubHBzekNsYXNzTmFtZSAgID0ga1J1bkxvb3BNZXNzYWdlV2lu
ZG93Q2xhc3NOYW1lOwotCi0gICAgcmV0dXJuICEhOjpSZWdpc3RlckNsYXNzRXgoJndpbmRvd0Ns
YXNzKTsKLX0KLQotUnVuTG9vcDo6UnVuTG9vcCgpCi17Ci0gICAgcmVnaXN0ZXJSdW5Mb29wTWVz
c2FnZVdpbmRvd0NsYXNzKCk7Ci0KLSAgICBtX3J1bkxvb3BNZXNzYWdlV2luZG93ID0gOjpDcmVh
dGVXaW5kb3coa1J1bkxvb3BNZXNzYWdlV2luZG93Q2xhc3NOYW1lLCAwLCAwLAotICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDV19VU0VERUZBVUxULCAwLCBDV19V
U0VERUZBVUxULCAwLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBIV05EX01FU1NBR0UsIDAsIDAsIHRoaXMpOwotICAgIEFTU0VSVCg6OklzV2luZG93KG1fcnVu
TG9vcE1lc3NhZ2VXaW5kb3cpKTsKLX0KLQotUnVuTG9vcDo6flJ1bkxvb3AoKQotewotICAgIC8v
IEZJWE1FOiBUZWFyIGRvd24gdGhlIHdvcmsgaXRlbSBxdWV1ZSBoZXJlLgotfQotCi12b2lkIFJ1
bkxvb3A6Ondha2VVcCgpCi17Ci0gICAgLy8gRklYTUU6IE5vIG5lZWQgdG8gd2FrZSB1cCB0aGUg
cnVuIGxvb3AgaWYgd2UndmUgYWxyZWFkeSBjYWxsZWQgZGlzcGF0Y2gKLSAgICAvLyBiZWZvcmUg
dGhlIHJ1biBsb29wIGhhcyBoYWQgdGhlIHRpbWUgdG8gcmVzcG9uZC4KLSAgICA6OlBvc3RNZXNz
YWdlKG1fcnVuTG9vcE1lc3NhZ2VXaW5kb3csIFBlcmZvcm1Xb3JrTWVzc2FnZSwgcmVpbnRlcnBy
ZXRfY2FzdDxXUEFSQU0+KHRoaXMpLCAwKTsKLX0KLQotLy8gUnVuTG9vcDo6VGltZXIKLQotdm9p
ZCBSdW5Mb29wOjpUaW1lckJhc2U6OnRpbWVyRmlyZWQoUnVuTG9vcCogcnVuTG9vcCwgdWludDY0
X3QgSUQpCi17Ci0gICAgVGltZXJNYXA6Oml0ZXJhdG9yIGl0ID0gcnVuTG9vcC0+bV9hY3RpdmVU
aW1lcnMuZmluZChJRCk7Ci0gICAgaWYgKGl0ID09IHJ1bkxvb3AtPm1fYWN0aXZlVGltZXJzLmVu
ZCgpKSB7Ci0gICAgICAgIC8vIFRoZSB0aW1lciBtdXN0IGhhdmUgYmVlbiBzdG9wcGVkIGFmdGVy
IHRoZSBXTV9USU1FUiBtZXNzYWdlIHdhcyBwb3N0ZWQgdG8gdGhlIG1lc3NhZ2UgcXVldWUuCi0g
ICAgICAgIHJldHVybjsKLSAgICB9Ci0KLSAgICBUaW1lckJhc2UqIHRpbWVyID0gaXQtPnNlY29u
ZDsKLQotICAgIGlmICghdGltZXItPm1faXNSZXBlYXRpbmcpIHsKLSAgICAgICAgcnVuTG9vcC0+
bV9hY3RpdmVUaW1lcnMucmVtb3ZlKGl0KTsKLSAgICAgICAgOjpLaWxsVGltZXIocnVuTG9vcC0+
bV9ydW5Mb29wTWVzc2FnZVdpbmRvdywgSUQpOwotICAgIH0KLQotICAgIHRpbWVyLT5maXJlZCgp
OwotfQotCi1zdGF0aWMgdWludDY0X3QgZ2VuZXJhdGVUaW1lcklEKCkKLXsKLSAgICBzdGF0aWMg
dWludDY0X3QgdW5pcXVlVGltZXJJRCA9IDE7Ci0gICAgcmV0dXJuIHVuaXF1ZVRpbWVySUQrKzsK
LX0KLQotUnVuTG9vcDo6VGltZXJCYXNlOjpUaW1lckJhc2UoUnVuTG9vcCogcnVuTG9vcCkKLSAg
ICA6IG1fcnVuTG9vcChydW5Mb29wKQotICAgICwgbV9JRChnZW5lcmF0ZVRpbWVySUQoKSkKLSAg
ICAsIG1faXNSZXBlYXRpbmcoZmFsc2UpCi17Ci19Ci0KLVJ1bkxvb3A6OlRpbWVyQmFzZTo6flRp
bWVyQmFzZSgpCi17Ci0gICAgc3RvcCgpOwotfQotCi12b2lkIFJ1bkxvb3A6OlRpbWVyQmFzZTo6
c3RhcnQoZG91YmxlIG5leHRGaXJlSW50ZXJ2YWwsIGJvb2wgcmVwZWF0KQotewotICAgIG1faXNS
ZXBlYXRpbmcgPSByZXBlYXQ7Ci0gICAgbV9ydW5Mb29wLT5tX2FjdGl2ZVRpbWVycy5zZXQobV9J
RCwgdGhpcyk7Ci0gICAgOjpTZXRUaW1lcihtX3J1bkxvb3AtPm1fcnVuTG9vcE1lc3NhZ2VXaW5k
b3csIG1fSUQsIG5leHRGaXJlSW50ZXJ2YWwgKiAxMDAwLCAwKTsKLX0KLQotdm9pZCBSdW5Mb29w
OjpUaW1lckJhc2U6OnN0b3AoKQotewotICAgIFRpbWVyTWFwOjppdGVyYXRvciBpdCA9IG1fcnVu
TG9vcC0+bV9hY3RpdmVUaW1lcnMuZmluZChtX0lEKTsKLSAgICBpZiAoaXQgPT0gbV9ydW5Mb29w
LT5tX2FjdGl2ZVRpbWVycy5lbmQoKSkKLSAgICAgICAgcmV0dXJuOwotCi0gICAgbV9ydW5Mb29w
LT5tX2FjdGl2ZVRpbWVycy5yZW1vdmUoaXQpOwotICAgIDo6S2lsbFRpbWVyKG1fcnVuTG9vcC0+
bV9ydW5Mb29wTWVzc2FnZVdpbmRvdywgbV9JRCk7Ci19Ci0KLWJvb2wgUnVuTG9vcDo6VGltZXJC
YXNlOjppc0FjdGl2ZSgpIGNvbnN0Ci17Ci0gICAgcmV0dXJuIG1fcnVuTG9vcC0+bV9hY3RpdmVU
aW1lcnMuY29udGFpbnMobV9JRCk7Ci19CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9QbHVn
aW5Qcm9jZXNzL1BsdWdpbkNvbnRyb2xsZXJQcm94eS5oIGIvU291cmNlL1dlYktpdDIvUGx1Z2lu
UHJvY2Vzcy9QbHVnaW5Db250cm9sbGVyUHJveHkuaAppbmRleCA1MWMzNDhkYTFhNTJjZDIwZTU5
OTk5MDdhNWNiZWFkOTVmZDY4ZWMzLi5jNzkyMTFhOGMyYWQyYjQzNDk0NGQ5OWQ1YWRjZGI2NDM0
ZGRiMmUzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9QbHVnaW5Qcm9jZXNzL1BsdWdpbkNv
bnRyb2xsZXJQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1BsdWdpblByb2Nlc3MvUGx1Z2lu
Q29udHJvbGxlclByb3h5LmgKQEAgLTMyLDggKzMyLDggQEAKICNpbmNsdWRlICJQbHVnaW4uaCIK
ICNpbmNsdWRlICJQbHVnaW5Db250cm9sbGVyLmgiCiAjaW5jbHVkZSAiUGx1Z2luQ29udHJvbGxl
clByb3h5TWVzc2FnZXMuaCIKLSNpbmNsdWRlICJSdW5Mb29wLmgiCiAjaW5jbHVkZSAiU2hhcmVh
YmxlQml0bWFwLmgiCisjaW5jbHVkZSA8V2ViQ29yZS9SdW5Mb29wLmg+CiAjaW5jbHVkZSA8d3Rm
L05vbmNvcHlhYmxlLmg+CiAKICNpZiBQTEFURk9STShNQUMpCkBAIC0xNjcsMTQgKzE2NywxNCBA
QCBwcml2YXRlOgogICAgIFdlYkNvcmU6OkludFJlY3QgbV9kaXJ0eVJlY3Q7CiAKICAgICAvLyBU
aGUgcGFpbnQgdGltZXIsIHVzZWQgZm9yIGNvYWxlc2NpbmcgcGFpbnRpbmcuCi0gICAgUnVuTG9v
cDo6VGltZXI8UGx1Z2luQ29udHJvbGxlclByb3h5PiBtX3BhaW50VGltZXI7CisgICAgV2ViQ29y
ZTo6UnVuTG9vcDo6VGltZXI8UGx1Z2luQ29udHJvbGxlclByb3h5PiBtX3BhaW50VGltZXI7CiAg
ICAgCiAgICAgLy8gQSBjb3VudGVyIHVzZWQgdG8gcHJldmVudCB0aGUgcGx1Zy1pbiBmcm9tIGJl
aW5nIGRlc3Ryb3llZC4KICAgICB1bnNpZ25lZCBtX3BsdWdpbkRlc3RydWN0aW9uUHJvdGVjdENv
dW50OwogCiAgICAgLy8gQSB0aW1lciB0aGF0IHdlIHVzZSB0byBwcmV2ZW50IGRlc3RydWN0aW9u
IG9mIHRoZSBwbHVnLWluIHdoaWxlIHBsdWctaW4KICAgICAvLyBjb2RlIGlzIG9uIHRoZSBzdGFj
ay4KLSAgICBSdW5Mb29wOjpUaW1lcjxQbHVnaW5Db250cm9sbGVyUHJveHk+IG1fcGx1Z2luRGVz
dHJveVRpbWVyOworICAgIFdlYkNvcmU6OlJ1bkxvb3A6OlRpbWVyPFBsdWdpbkNvbnRyb2xsZXJQ
cm94eT4gbV9wbHVnaW5EZXN0cm95VGltZXI7CiAKICAgICAvLyBXaWxsIHBvaW50IHRvIHRoZSBw
bHVnLWluIGNyZWF0aW9uIHBhcmFtZXRlcnMgb2YgdGhlIHBsdWctaW4gd2UncmUgY3VycmVudGx5
IGluaXRpYWxpemluZyBhbmQgd2lsbCBiZSBudWxsIHdoZW4gd2UncmUgZG9uZSBpbml0aWFsaXpp
bmcuCiAgICAgY29uc3QgUGx1Z2luQ3JlYXRpb25QYXJhbWV0ZXJzKiBtX3BsdWdpbkNyZWF0aW9u
UGFyYW1ldGVyczsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1BsdWdpblByb2Nlc3MvUGx1
Z2luUHJvY2Vzcy5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9QbHVnaW5Qcm9jZXNzL1BsdWdpblByb2Nl
c3MuY3BwCmluZGV4IGEzNjZmNWRiNzE0MjEzNzA2YmRlYjU5ODU1OTc0MzhhOGQ1NGU2M2UuLjA5
OWJmM2E0OGZmZDIzZmM0ZTRhYzc3MTJkYzkyNjdiMzE3ZWRiNTkgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQyL1BsdWdpblByb2Nlc3MvUGx1Z2luUHJvY2Vzcy5jcHAKKysrIGIvU291cmNlL1dl
YktpdDIvUGx1Z2luUHJvY2Vzcy9QbHVnaW5Qcm9jZXNzLmNwcApAQCAtMzYsNiArMzYsNyBAQAog
I2luY2x1ZGUgIlBsdWdpblByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuaCIKICNpbmNsdWRlICJX
ZWJQcm9jZXNzQ29ubmVjdGlvbi5oIgogI2luY2x1ZGUgPFdlYkNvcmUvTm90SW1wbGVtZW50ZWQu
aD4KKyNpbmNsdWRlIDxXZWJDb3JlL1J1bkxvb3AuaD4KIAogI2lmIFVTRShVTklYX0RPTUFJTl9T
T0NLRVRTKQogI2luY2x1ZGUgPGVycm5vLmg+CkBAIC01NSw2ICs1Niw4IEBACiAjZW5kaWYgLy8g
U09DS19TRVFQQUNLRVQKICNlbmRpZiAvLyBVU0UoVU5JWF9ET01BSU5fU09DS0VUUykKIAordXNp
bmcgbmFtZXNwYWNlIFdlYkNvcmU7CisKIG5hbWVzcGFjZSBXZWJLaXQgewogCiBzdGF0aWMgY29u
c3QgZG91YmxlIHNodXRkb3duVGltZW91dCA9IDE1LjA7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0Mi9QbHVnaW5Qcm9jZXNzL1BsdWdpblByb2Nlc3MuaCBiL1NvdXJjZS9XZWJLaXQyL1BsdWdp
blByb2Nlc3MvUGx1Z2luUHJvY2Vzcy5oCmluZGV4IGE2MTAzMjZiNDc5NmNjNDRkMWY3MmUxNjNm
YjlhODRhN2I5NzNjNGEuLjBjZjM5YzZlNTllYzExMmY0MDk2ZTE4NDgzNDgwMjdlZWYwODhhYTkg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1BsdWdpblByb2Nlc3MvUGx1Z2luUHJvY2Vzcy5o
CisrKyBiL1NvdXJjZS9XZWJLaXQyL1BsdWdpblByb2Nlc3MvUGx1Z2luUHJvY2Vzcy5oCkBAIC0y
OSwxMCArMjksMTMgQEAKICNpZiBFTkFCTEUoUExVR0lOX1BST0NFU1MpCiAKICNpbmNsdWRlICJD
aGlsZFByb2Nlc3MuaCIKLSNpbmNsdWRlICJSdW5Mb29wLmgiCiAjaW5jbHVkZSA8d3RmL0Zvcndh
cmQuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KIAorbmFtZXNwYWNlIFdlYkNv
cmUgeworY2xhc3MgUnVuTG9vcDsKK30KKwogbmFtZXNwYWNlIFdlYktpdCB7CiAKIGNsYXNzIE5l
dHNjYXBlUGx1Z2luTW9kdWxlOwpAQCAtNDQsNyArNDcsNyBAQCBjbGFzcyBQbHVnaW5Qcm9jZXNz
IDogQ2hpbGRQcm9jZXNzIHsKIHB1YmxpYzoKICAgICBzdGF0aWMgUGx1Z2luUHJvY2VzcyYgc2hh
cmVkKCk7CiAKLSAgICB2b2lkIGluaXRpYWxpemUoQ29yZUlQQzo6Q29ubmVjdGlvbjo6SWRlbnRp
ZmllciwgUnVuTG9vcCopOworICAgIHZvaWQgaW5pdGlhbGl6ZShDb3JlSVBDOjpDb25uZWN0aW9u
OjpJZGVudGlmaWVyLCBXZWJDb3JlOjpSdW5Mb29wKik7CiAgICAgdm9pZCByZW1vdmVXZWJQcm9j
ZXNzQ29ubmVjdGlvbihXZWJQcm9jZXNzQ29ubmVjdGlvbiogd2ViUHJvY2Vzc0Nvbm5lY3Rpb24p
OwogCiAgICAgTmV0c2NhcGVQbHVnaW5Nb2R1bGUqIG5ldHNjYXBlUGx1Z2luTW9kdWxlKCk7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9QbHVnaW5Qcm9jZXNzL1dlYlByb2Nlc3NDb25uZWN0
aW9uLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1BsdWdpblByb2Nlc3MvV2ViUHJvY2Vzc0Nvbm5lY3Rp
b24uY3BwCmluZGV4IGFiNjNiMDViYmRmODZmMmIyMzI5YzhkYzMzZDA4NzE4MGNiNzM5ZmQuLmEy
N2QxMTM5MDY5ZGE5NzdmYzgyZWNiZGQyYWVjOTRjN2E3ZWQ2NWYgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQyL1BsdWdpblByb2Nlc3MvV2ViUHJvY2Vzc0Nvbm5lY3Rpb24uY3BwCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL1BsdWdpblByb2Nlc3MvV2ViUHJvY2Vzc0Nvbm5lY3Rpb24uY3BwCkBAIC0z
NCwxMCArMzQsMTEgQEAKICNpbmNsdWRlICJQbHVnaW5DcmVhdGlvblBhcmFtZXRlcnMuaCIKICNp
bmNsdWRlICJQbHVnaW5Qcm9jZXNzLmgiCiAjaW5jbHVkZSAiUGx1Z2luUHJvY2Vzc0Nvbm5lY3Rp
b25NZXNzYWdlcy5oIgotI2luY2x1ZGUgIlJ1bkxvb3AuaCIKKyNpbmNsdWRlIDxXZWJDb3JlL1J1
bkxvb3AuaD4KIAotbmFtZXNwYWNlIFdlYktpdCB7Cit1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsK
IAorbmFtZXNwYWNlIFdlYktpdCB7CiAKIGNsYXNzIENvbm5lY3Rpb25TdGFjayB7CiBwdWJsaWM6
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9QbHVnaW5Qcm9jZXNzL21hYy9QbHVnaW5Qcm9j
ZXNzTWFpbk1hYy5tbSBiL1NvdXJjZS9XZWJLaXQyL1BsdWdpblByb2Nlc3MvbWFjL1BsdWdpblBy
b2Nlc3NNYWluTWFjLm1tCmluZGV4IDVlOTNlMmJkZGE0MTNmYjhjM2Q5MjlhYWRhZTA0NjFhMzMz
NjI4NmQuLjg1NjFmOTk1OTQ0MDljZjA3OGVmMTZkMDE0MTMzZWIwMmM4YjVmNWUgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQyL1BsdWdpblByb2Nlc3MvbWFjL1BsdWdpblByb2Nlc3NNYWluTWFj
Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQyL1BsdWdpblByb2Nlc3MvbWFjL1BsdWdpblByb2Nlc3NN
YWluTWFjLm1tCkBAIC0zMiwxOSArMzIsMjEgQEAKICNpbXBvcnQgIkVudmlyb25tZW50VXRpbGl0
aWVzLmgiCiAjaW1wb3J0ICJOZXRzY2FwZVBsdWdpbk1vZHVsZS5oIgogI2ltcG9ydCAiUGx1Z2lu
UHJvY2Vzcy5oIgotI2ltcG9ydCAiUnVuTG9vcC5oIgorI2ltcG9ydCA8V2ViQ29yZS9SdW5Mb29w
Lmg+CiAjaW1wb3J0IDxXZWJLaXRTeXN0ZW1JbnRlcmZhY2UuaD4KICNpbXBvcnQgPG1hY2gvbWFj
aF9lcnJvci5oPgogI2ltcG9ydCA8cnVudGltZS9Jbml0aWFsaXplVGhyZWFkaW5nLmg+CiAjaW1w
b3J0IDxzZXJ2ZXJzL2Jvb3RzdHJhcC5oPgorI2ltcG9ydCA8c3RkaW8uaD4KICNpbXBvcnQgPHd0
Zi9NYWluVGhyZWFkLmg+CiAjaW1wb3J0IDx3dGYvUmV0YWluUHRyLmg+CiAjaW1wb3J0IDx3dGYv
dGV4dC9DU3RyaW5nLmg+CiAjaW1wb3J0IDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KLSNpbmNsdWRl
IDxzdGRpby5oPgogCiAjZGVmaW5lIFNIT1dfQ1JBU0hfUkVQT1JURVIgMQogCit1c2luZyBuYW1l
c3BhY2UgV2ViQ29yZTsKKwogbmFtZXNwYWNlIFdlYktpdCB7CiAKIC8vIEZJWE1FOiBUaGVyZSBp
cyBtdWNoIGNvZGUgaGVyZSB0aGF0IGlzIGR1cGxpY2F0ZWQgaW4gV2ViUHJvY2Vzc01haW5NYWMu
bW0sIHdlIHNob3VsZCBhZGQgYSBzaGFyZWQgYmFzZSBjbGFzcyB3aGVyZQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdDIvUGx1Z2luUHJvY2Vzcy9xdC9QbHVnaW5Qcm9jZXNzTWFpblF0LmNwcCBi
L1NvdXJjZS9XZWJLaXQyL1BsdWdpblByb2Nlc3MvcXQvUGx1Z2luUHJvY2Vzc01haW5RdC5jcHAK
aW5kZXggM2UwMDMzZmYwYWIzMzc2NTBlNTNkMDgxYzg5ZjQ0NDE0YTY3OGE3NS4uZDNhMGVjM2Uy
NDU5NTZiOTg1MDBkNTY3ZTU2NWZhYTE1MDZhMDA1MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dDIvUGx1Z2luUHJvY2Vzcy9xdC9QbHVnaW5Qcm9jZXNzTWFpblF0LmNwcAorKysgYi9Tb3VyY2Uv
V2ViS2l0Mi9QbHVnaW5Qcm9jZXNzL3F0L1BsdWdpblByb2Nlc3NNYWluUXQuY3BwCkBAIC0zMCw4
ICszMCw4IEBACiAKICNpbmNsdWRlICJDb21tYW5kTGluZS5oIgogI2luY2x1ZGUgIlBsdWdpblBy
b2Nlc3MuaCIKLSNpbmNsdWRlICJSdW5Mb29wLmgiCiAjaW5jbHVkZSA8V2ViQ29yZS9Ob3RJbXBs
ZW1lbnRlZC5oPgorI2luY2x1ZGUgPFdlYkNvcmUvUnVuTG9vcC5oPgogI2luY2x1ZGUgPHJ1bnRp
bWUvSW5pdGlhbGl6ZVRocmVhZGluZy5oPgogI2luY2x1ZGUgPHd0Zi9NYWluVGhyZWFkLmg+CiAj
aW5jbHVkZSA8d3RmL1JldGFpblB0ci5oPgpAQCAtNDAsNiArNDAsOCBAQAogCiAjZGVmaW5lIFNI
T1dfQ1JBU0hfUkVQT1JURVIgMQogCit1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKKwogbmFtZXNw
YWNlIFdlYktpdCB7CiAKIGludCBQbHVnaW5Qcm9jZXNzTWFpbihjb25zdCBDb21tYW5kTGluZSYg
Y29tbWFuZExpbmUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQ2hpbGRQcm9j
ZXNzLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9DaGlsZFByb2Nlc3MuY3BwCmluZGV4IDhi
M2NkYjI4MmNiOWI4M2Y0YjQ4ZTIwNzUzNDZmODVmZmI5ZDRhNmMuLjU3MWZlOTU4NjBlMzBlZjY3
ZmFiMjBmODUxZjI5M2EwNWZjNGE4MjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJl
ZC9DaGlsZFByb2Nlc3MuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9DaGlsZFByb2Nl
c3MuY3BwCkBAIC0zMCw2ICszMCw4IEBACiAjaW5jbHVkZSA8dW5pc3RkLmg+CiAjZW5kaWYKIAor
dXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CisKIG5hbWVzcGFjZSBXZWJLaXQgewogCiB2b2lkIENo
aWxkUHJvY2Vzczo6ZGlzYWJsZVRlcm1pbmF0aW9uKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQyL1NoYXJlZC9DaGlsZFByb2Nlc3MuaCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9DaGlsZFBy
b2Nlc3MuaAppbmRleCA0MjU5ODMwZDhiNzI5NDM0OWVhNDc5NjI3YjQzNDliMDc1YzZhY2E2Li41
MGVjZWI1OTRlYzI4ZmM4ZTNmZTQ4ZTkzOGNlMWVmY2MyOTExMmM2IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0Mi9TaGFyZWQvQ2hpbGRQcm9jZXNzLmgKKysrIGIvU291cmNlL1dlYktpdDIvU2hh
cmVkL0NoaWxkUHJvY2Vzcy5oCkBAIC0yNyw3ICsyNyw3IEBACiAjZGVmaW5lIENoaWxkUHJvY2Vz
c19oCiAKICNpbmNsdWRlICJDb25uZWN0aW9uLmgiCi0jaW5jbHVkZSAiUnVuTG9vcC5oIgorI2lu
Y2x1ZGUgPFdlYkNvcmUvUnVuTG9vcC5oPgogCiBuYW1lc3BhY2UgV2ViS2l0IHsKIApAQCAtNzcs
NyArNzcsNyBAQCBwcml2YXRlOgogICAgIC8vIGFmdGVyIGEgZ2l2ZW4gcGVyaW9kIG9mIHRpbWUu
CiAgICAgdW5zaWduZWQgbV90ZXJtaW5hdGlvbkNvdW50ZXI7CiAKLSAgICBSdW5Mb29wOjpUaW1l
cjxDaGlsZFByb2Nlc3M+IG1fdGVybWluYXRpb25UaW1lcjsKKyAgICBXZWJDb3JlOjpSdW5Mb29w
OjpUaW1lcjxDaGlsZFByb2Nlc3M+IG1fdGVybWluYXRpb25UaW1lcjsKIH07CiAKIH0gLy8gbmFt
ZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVGFyZ2V0LnByaSBiL1Nv
dXJjZS9XZWJLaXQyL1RhcmdldC5wcmkKaW5kZXggMzU5ODNmMDc2NTZkYjQ4MGY4MzVhY2NmNjNm
ZTNjZDY2ZGE5N2M5MC4uNWVlMjc5NzIyNDkwNGY0YTQ3NmFmNjIwYTg1YmU2NDY2ZjEwNmU3NSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVGFyZ2V0LnByaQorKysgYi9Tb3VyY2UvV2ViS2l0
Mi9UYXJnZXQucHJpCkBAIC0zMSw3ICszMSw2IEBAIEhFQURFUlMgKz0gXAogICAgIFBsYXRmb3Jt
L0xvZ2dpbmcuaCBcCiAgICAgUGxhdGZvcm0vTW9kdWxlLmggXAogICAgIFBsYXRmb3JtL1BsYXRm
b3JtUHJvY2Vzc0lkZW50aWZpZXIuaCBcCi0gICAgUGxhdGZvcm0vUnVuTG9vcC5oIFwKICAgICBQ
bGF0Zm9ybS9TaGFyZWRNZW1vcnkuaCBcCiAgICAgUGxhdGZvcm0vV29ya1F1ZXVlLmggXAogICAg
IFBsdWdpblByb2Nlc3MvUGx1Z2luQ29udHJvbGxlclByb3h5LmggXApAQCAtMzczLDEwICszNzIs
OCBAQCBTT1VSQ0VTICs9IFwKICAgICBQbGF0Zm9ybS9Db3JlSVBDL0RhdGFSZWZlcmVuY2UuY3Bw
IFwKICAgICBQbGF0Zm9ybS9Mb2dnaW5nLmNwcCBcCiAgICAgUGxhdGZvcm0vTW9kdWxlLmNwcCBc
Ci0gICAgUGxhdGZvcm0vUnVuTG9vcC5jcHAgXAogICAgIFBsYXRmb3JtL1dvcmtRdWV1ZS5jcHAg
XAogICAgIFBsYXRmb3JtL3F0L01vZHVsZVF0LmNwcCBcCi0gICAgUGxhdGZvcm0vcXQvUnVuTG9v
cFF0LmNwcCBcCiAgICAgUGx1Z2luUHJvY2Vzcy9QbHVnaW5Db250cm9sbGVyUHJveHkuY3BwIFwK
ICAgICBQbHVnaW5Qcm9jZXNzL1BsdWdpblByb2Nlc3MuY3BwIFwKICAgICBQbHVnaW5Qcm9jZXNz
L1dlYlByb2Nlc3NDb25uZWN0aW9uLmNwcCBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvQVBJL21hYy9GaW5kSW5kaWNhdG9yV2luZG93LmggYi9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvQVBJL21hYy9GaW5kSW5kaWNhdG9yV2luZG93LmgKaW5kZXggNzgzNmE1NDZhNTRh
YWQxMzhlNGEyNzMxZTdjMjA3ZDRhOWE2N2I4Ny4uY2JlMzRhMWE5MGZiOWJhOWE1YmY3OTM2NWJi
MTdkMjM0YTlkOGE0MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9t
YWMvRmluZEluZGljYXRvcldpbmRvdy5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9B
UEkvbWFjL0ZpbmRJbmRpY2F0b3JXaW5kb3cuaApAQCAtMjYsMTIgKzI2LDEyIEBACiAjaWZuZGVm
IEZpbmRJbmRpY2F0b3JXaW5kb3dfaAogI2RlZmluZSBGaW5kSW5kaWNhdG9yV2luZG93X2gKIAor
I2ltcG9ydCAiV2ViS2l0U3lzdGVtSW50ZXJmYWNlLmgiCisjaW1wb3J0IDxXZWJDb3JlL1J1bkxv
b3AuaD4KICNpbXBvcnQgPHd0Zi9Ob25jb3B5YWJsZS5oPgogI2ltcG9ydCA8d3RmL1Bhc3NPd25Q
dHIuaD4KICNpbXBvcnQgPHd0Zi9SZWZQdHIuaD4KICNpbXBvcnQgPHd0Zi9SZXRhaW5QdHIuaD4K
LSNpbXBvcnQgIlJ1bkxvb3AuaCIKLSNpbXBvcnQgIldlYktpdFN5c3RlbUludGVyZmFjZS5oIgog
CiBAY2xhc3MgV0tGaW5kSW5kaWNhdG9yV2luZG93QW5pbWF0aW9uOwogQGNsYXNzIFdLVmlldzsK
QEAgLTY4LDcgKzY4LDcgQEAgcHJpdmF0ZToKICAgICBXS1dpbmRvd0JvdW5jZUFuaW1hdGlvbkNv
bnRleHRSZWYgbV9ib3VuY2VBbmltYXRpb25Db250ZXh0OwogICAgIFJldGFpblB0cjxXS0ZpbmRJ
bmRpY2F0b3JXaW5kb3dBbmltYXRpb24+IG1fYm91bmNlQW5pbWF0aW9uOwogCi0gICAgUnVuTG9v
cDo6VGltZXI8RmluZEluZGljYXRvcldpbmRvdz4gbV9zdGFydEZhZGVPdXRUaW1lcjsKKyAgICBX
ZWJDb3JlOjpSdW5Mb29wOjpUaW1lcjxGaW5kSW5kaWNhdG9yV2luZG93PiBtX3N0YXJ0RmFkZU91
dFRpbWVyOwogICAgIFJldGFpblB0cjxXS0ZpbmRJbmRpY2F0b3JXaW5kb3dBbmltYXRpb24+IG1f
ZmFkZU91dEFuaW1hdGlvbjsKIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9BUEkvbWFjL1dLVmlldy5tbSBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvbWFj
L1dLVmlldy5tbQppbmRleCAxZDg3MDlkODJhMjI0ZDRiZjBlODYxZjk5YTk3Nzg0ZDg3YTdmYzQ4
Li4zZWMzZTdmY2I2MGEwNWRjYzBhYTk4MGZkNjU1YjgxMjY5ZmFlYmIwIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL21hYy9XS1ZpZXcubW0KKysrIGIvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL0FQSS9tYWMvV0tWaWV3Lm1tCkBAIC00MCw3ICs0MCw2IEBACiAjaW1w
b3J0ICJQREZWaWV3Q29udHJvbGxlci5oIgogI2ltcG9ydCAiUGFnZUNsaWVudEltcGwuaCIKICNp
bXBvcnQgIlBhc3RlYm9hcmRUeXBlcy5oIgotI2ltcG9ydCAiUnVuTG9vcC5oIgogI2ltcG9ydCAi
VGV4dENoZWNrZXIuaCIKICNpbXBvcnQgIlRleHRDaGVja2VyU3RhdGUuaCIKICNpbXBvcnQgIlRp
bGVkQ29yZUFuaW1hdGlvbkRyYXdpbmdBcmVhUHJveHkuaCIKQEAgLTcwLDYgKzY5LDcgQEAKICNp
bXBvcnQgPFdlYkNvcmUvUGxhdGZvcm1FdmVudEZhY3RvcnlNYWMuaD4KICNpbXBvcnQgPFdlYkNv
cmUvUGxhdGZvcm1TY3JlZW4uaD4KICNpbXBvcnQgPFdlYkNvcmUvUmVnaW9uLmg+CisjaW1wb3J0
IDxXZWJDb3JlL1J1bkxvb3AuaD4KICNpbXBvcnQgPFdlYktpdFN5c3RlbUludGVyZmFjZS5oPgog
I2ltcG9ydCA8d3RmL1JlZlB0ci5oPgogI2ltcG9ydCA8d3RmL1JldGFpblB0ci5oPgpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0RyYXdpbmdBcmVhUHJveHlJbXBsLmggYi9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvRHJhd2luZ0FyZWFQcm94eUltcGwuaAppbmRleCAwNWQ3
MzU0MjM2MjY3YTU1YjQ1YzYwOWI4ZDJiYTU0N2UxMGY4YmRiLi5jMTY1MWY0MWZhOTM1ZDFmNDgw
ODQxMzE2YjZhMjE4YWVlMmJlOGE1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvRHJhd2luZ0FyZWFQcm94eUltcGwuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
RHJhd2luZ0FyZWFQcm94eUltcGwuaApAQCAtMjksNyArMjksNyBAQAogI2luY2x1ZGUgIkJhY2tp
bmdTdG9yZS5oIgogI2luY2x1ZGUgIkRyYXdpbmdBcmVhUHJveHkuaCIKICNpbmNsdWRlICJMYXll
clRyZWVDb250ZXh0LmgiCi0jaW5jbHVkZSAiUnVuTG9vcC5oIgorI2luY2x1ZGUgPFdlYkNvcmUv
UnVuTG9vcC5oPgogI2luY2x1ZGUgPHd0Zi9Pd25QdHIuaD4KICNpbmNsdWRlIDx3dGYvUGFzc093
blB0ci5oPgogCkBAIC0xMTYsNyArMTE2LDcgQEAgcHJpdmF0ZToKICAgICBib29sIG1faXNCYWNr
aW5nU3RvcmVEaXNjYXJkYWJsZTsKICAgICBPd25QdHI8QmFja2luZ1N0b3JlPiBtX2JhY2tpbmdT
dG9yZTsKIAotICAgIFJ1bkxvb3A6OlRpbWVyPERyYXdpbmdBcmVhUHJveHlJbXBsPiBtX2Rpc2Nh
cmRCYWNraW5nU3RvcmVUaW1lcjsKKyAgICBXZWJDb3JlOjpSdW5Mb29wOjpUaW1lcjxEcmF3aW5n
QXJlYVByb3h5SW1wbD4gbV9kaXNjYXJkQmFja2luZ1N0b3JlVGltZXI7CiB9OwogCiB9IC8vIG5h
bWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9MYXVu
Y2hlci9UaHJlYWRMYXVuY2hlci5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvTGF1bmNo
ZXIvVGhyZWFkTGF1bmNoZXIuY3BwCmluZGV4IDNjMGZiZjE2MGNjNzZlNjAxODQxNWQ2ZDNiMzRj
Njk2MTYxNmJhMDQuLmYzN2E1ZDNhMjcxNWFhMTU3ODBkZmRhZmUxYzRhNGM1ZTRkMGRlODUgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9MYXVuY2hlci9UaHJlYWRMYXVuY2hl
ci5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0xhdW5jaGVyL1RocmVhZExhdW5j
aGVyLmNwcApAQCAtMjYsNyArMjYsOSBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUg
IlRocmVhZExhdW5jaGVyLmgiCiAKLSNpbmNsdWRlICJSdW5Mb29wLmgiCisjaW5jbHVkZSA8V2Vi
Q29yZS9SdW5Mb29wLmg+CisKK3VzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogCiBuYW1lc3BhY2Ug
V2ViS2l0IHsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0xhdW5jaGVy
L2d0ay9Qcm9jZXNzTGF1bmNoZXJHdGsuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0xh
dW5jaGVyL2d0ay9Qcm9jZXNzTGF1bmNoZXJHdGsuY3BwCmluZGV4IGM2MzQ1YTZjNjkyNTdlZTAz
ZmU1ODNjOWY1YjhjYmIwZTU2NGY4ZjQuLjk0Y2FkNWZjNDQ4MjBkYTE5OGRhODcxY2NiZDZmYTQ3
ZTQzODliMmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9MYXVuY2hlci9n
dGsvUHJvY2Vzc0xhdW5jaGVyR3RrLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
TGF1bmNoZXIvZ3RrL1Byb2Nlc3NMYXVuY2hlckd0ay5jcHAKQEAgLTI4LDE5ICsyOCwyMCBAQAog
I2luY2x1ZGUgIlByb2Nlc3NMYXVuY2hlci5oIgogCiAjaW5jbHVkZSAiQ29ubmVjdGlvbi5oIgot
I2luY2x1ZGUgIlJ1bkxvb3AuaCIKICNpbmNsdWRlIDxXZWJDb3JlL0ZpbGVTeXN0ZW0uaD4KICNp
bmNsdWRlIDxXZWJDb3JlL1Jlc291cmNlSGFuZGxlLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9SdW5M
b29wLmg+CiAjaW5jbHVkZSA8ZXJybm8uaD4KICNpbmNsdWRlIDxsb2NhbGUuaD4KLSNpZiBPUyhM
SU5VWCkKLSNpbmNsdWRlIDxzeXMvcHJjdGwuaD4KLSNlbmRpZgogI2luY2x1ZGUgPHd0Zi90ZXh0
L0NTdHJpbmcuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KICNpbmNsdWRlIDx3
dGYvZ29iamVjdC9HT3duUHRyLmg+CiAjaW5jbHVkZSA8d3RmL2dvYmplY3QvR2xpYlV0aWxpdGll
cy5oPgogCisjaWYgT1MoTElOVVgpCisjaW5jbHVkZSA8c3lzL3ByY3RsLmg+CisjZW5kaWYKKwog
I2lmZGVmIFNPQ0tfU0VRUEFDS0VUCiAjZGVmaW5lIFNPQ0tFVF9UWVBFIFNPQ0tfU0VRUEFDS0VU
CiAjZWxzZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0xhdW5jaGVyL21h
Yy9Qcm9jZXNzTGF1bmNoZXJNYWMubW0gYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvTGF1bmNo
ZXIvbWFjL1Byb2Nlc3NMYXVuY2hlck1hYy5tbQppbmRleCBjNzBmNjJlZGZiY2Y4N2M2YWIyOGFl
NmJjNzJjNGFjMjc4ZDdlOTc0Li5kYzgzOWM4NGY1ZjMzZmJhZjBkYTk2MGYxNTc3YThkNjY4NTBm
OWNmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvTGF1bmNoZXIvbWFjL1By
b2Nlc3NMYXVuY2hlck1hYy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvTGF1bmNo
ZXIvbWFjL1Byb2Nlc3NMYXVuY2hlck1hYy5tbQpAQCAtMjgsOSArMjgsOSBAQAogCiAjaW1wb3J0
ICJEeW5hbWljTGlua2VyRW52aXJvbm1lbnRFeHRyYWN0b3IuaCIKICNpbXBvcnQgIkVudmlyb25t
ZW50VmFyaWFibGVzLmgiCi0jaW1wb3J0ICJSdW5Mb29wLmgiCiAjaW1wb3J0ICJXZWJQcm9jZXNz
LmgiCiAjaW1wb3J0ICJXZWJLaXRTeXN0ZW1JbnRlcmZhY2UuaCIKKyNpbXBvcnQgPFdlYkNvcmUv
UnVuTG9vcC5oPgogI2ltcG9ydCA8Y3J0X2V4dGVybnMuaD4KICNpbXBvcnQgPG1hY2gtby9keWxk
Lmg+CiAjaW1wb3J0IDxtYWNoL21hY2hpbmUuaD4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9MYXVuY2hlci9tYWMvVGhyZWFkTGF1bmNoZXJNYWMubW0gYi9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvTGF1bmNoZXIvbWFjL1RocmVhZExhdW5jaGVyTWFjLm1tCmluZGV4IDFj
NzRiN2QyODdhZjliYTY1OTJjN2RmMzliMmEwNTMxNDBmM2VmMDMuLmRkNTNiM2VmMTRlOTk0MDE0
M2FiY2EzMWJhNjI3YzlhZWMxODI3NzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9MYXVuY2hlci9tYWMvVGhyZWFkTGF1bmNoZXJNYWMubW0KKysrIGIvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL0xhdW5jaGVyL21hYy9UaHJlYWRMYXVuY2hlck1hYy5tbQpAQCAtMjYsMTMg
KzI2LDE1IEBACiAjaW1wb3J0ICJjb25maWcuaCIKICNpbXBvcnQgIlRocmVhZExhdW5jaGVyLmgi
CiAKLSNpbXBvcnQgIlJ1bkxvb3AuaCIKICNpbXBvcnQgIldlYlByb2Nlc3MuaCIKICNpbXBvcnQg
IldlYlN5c3RlbUludGVyZmFjZS5oIgogI2ltcG9ydCA8cnVudGltZS9Jbml0aWFsaXplVGhyZWFk
aW5nLmg+CisjaW1wb3J0IDxXZWJDb3JlL1J1bkxvb3AuaD4KICNpbXBvcnQgPHd0Zi9NYWluVGhy
ZWFkLmg+CiAjaW1wb3J0IDx3dGYvVGhyZWFkaW5nLmg+CiAKK3VzaW5nIG5hbWVzcGFjZSBXZWJD
b3JlOworCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAogc3RhdGljIHZvaWQqIHdlYlRocmVhZEJvZHko
dm9pZCogY29udGV4dCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9MYXVu
Y2hlci9xdC9Qcm9jZXNzTGF1bmNoZXJRdC5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
TGF1bmNoZXIvcXQvUHJvY2Vzc0xhdW5jaGVyUXQuY3BwCmluZGV4IDgzN2Y1OWJhZjFiNWZmNWEx
NjU0NWY2NTkwN2Y2YWQzNTA0MDEwMWQuLjhlODI2MjA2MzY3ZWVkOGViMWMyNWNlMmY0YjQ1NjRi
MDhmNzRhMDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9MYXVuY2hlci9x
dC9Qcm9jZXNzTGF1bmNoZXJRdC5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0xh
dW5jaGVyL3F0L1Byb2Nlc3NMYXVuY2hlclF0LmNwcApAQCAtMjgsNyArMjgsNiBAQAogI2luY2x1
ZGUgIlByb2Nlc3NMYXVuY2hlci5oIgogCiAjaW5jbHVkZSAiQ29ubmVjdGlvbi5oIgotI2luY2x1
ZGUgIlJ1bkxvb3AuaCIKICNpbmNsdWRlICJXZWJQcm9jZXNzLmgiCiAjaW5jbHVkZSA8UUNvcmVB
cHBsaWNhdGlvbj4KICNpbmNsdWRlIDxRRGVidWc+CkBAIC0zOSw2ICszOCw3IEBACiAjaW5jbHVk
ZSA8UVN0cmluZz4KICNpbmNsdWRlIDxRdENvcmUvcWdsb2JhbC5oPgogI2luY2x1ZGUgPFdlYkNv
cmUvTm90SW1wbGVtZW50ZWQuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL1J1bkxvb3AuaD4KICNpbmNs
dWRlIDxlcnJuby5oPgogI2luY2x1ZGUgPGZjbnRsLmg+CiAjaW5jbHVkZSA8cnVudGltZS9Jbml0
aWFsaXplVGhyZWFkaW5nLmg+CkBAIC01MCw2ICs1MCw3IEBACiAjaW5jbHVkZSA8d3RmL1Bhc3NS
ZWZQdHIuaD4KICNpbmNsdWRlIDx3dGYvVGhyZWFkaW5nLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQv
V1RGU3RyaW5nLmg+CisKICNpZiBkZWZpbmVkKFFfT1NfTElOVVgpCiAjaW5jbHVkZSA8c3lzL3By
Y3RsLmg+CiAjaW5jbHVkZSA8c2lnbmFsLmg+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvTGF1bmNoZXIvcXQvVGhyZWFkTGF1bmNoZXJRdC5jcHAgYi9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvTGF1bmNoZXIvcXQvVGhyZWFkTGF1bmNoZXJRdC5jcHAKaW5kZXggN2I5NWNh
MDQ5OWE3ODg0YWNmMDhmYzViNzc1MmNmNmZhM2YxOWY0MS4uMWQwY2FmM2FlYzQ3ZTc4ODZhODNi
ODBlZTU5Y2MyMTQ4ZjJmYjU4YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L0xhdW5jaGVyL3F0L1RocmVhZExhdW5jaGVyUXQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9MYXVuY2hlci9xdC9UaHJlYWRMYXVuY2hlclF0LmNwcApAQCAtMjcsOCArMjcsOCBA
QAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIlRocmVhZExhdW5jaGVyLmgiCiAKLSNp
bmNsdWRlICJSdW5Mb29wLmgiCiAjaW5jbHVkZSAiV2ViUHJvY2Vzcy5oIgorI2luY2x1ZGUgPFdl
YkNvcmUvUnVuTG9vcC5oPgogI2luY2x1ZGUgPHJ1bnRpbWUvSW5pdGlhbGl6ZVRocmVhZGluZy5o
PgogI2luY2x1ZGUgPHd0Zi9NYWluVGhyZWFkLmg+CiAjaW5jbHVkZSA8d3RmL1RocmVhZGluZy5o
PgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0xhdW5jaGVyL3dpbi9Qcm9j
ZXNzTGF1bmNoZXJXaW4uY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0xhdW5jaGVyL3dp
bi9Qcm9jZXNzTGF1bmNoZXJXaW4uY3BwCmluZGV4IGQ1MjZjMDMwNzhkNTdjYmFkZmEyODk1ODUx
NjA4NjM3ODVlMDU1NDYuLjdkZTc4MmY2OGVkZTI2NGMwOWRhYzVjYTY1OWJjNzhjZjNjMTQyODkg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9MYXVuY2hlci93aW4vUHJvY2Vz
c0xhdW5jaGVyV2luLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvTGF1bmNoZXIv
d2luL1Byb2Nlc3NMYXVuY2hlcldpbi5jcHAKQEAgLTI3LDcgKzI3LDcgQEAKICNpbmNsdWRlICJQ
cm9jZXNzTGF1bmNoZXIuaCIKIAogI2luY2x1ZGUgIkNvbm5lY3Rpb24uaCIKLSNpbmNsdWRlICJS
dW5Mb29wLmgiCisjaW5jbHVkZSA8V2ViQ29yZS9SdW5Mb29wLmg+CiAjaW5jbHVkZSA8c2hsd2Fw
aS5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgogCkBAIC00Myw2ICs0Myw4IEBA
IGNvbnN0IExQQ1dTVFIgd2ViS2l0RExMTmFtZSA9IEwiV2ViS2l0X2RlYnVnLmRsbCI7CiBjb25z
dCBMUENXU1RSIHdlYktpdERMTE5hbWUgPSBMIldlYktpdC5kbGwiOwogI2VuZGlmCiAKK3VzaW5n
IG5hbWVzcGFjZSBXZWJDb3JlOworCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAogdm9pZCBQcm9jZXNz
TGF1bmNoZXI6OmxhdW5jaFByb2Nlc3MoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL0xhdW5jaGVyL3dpbi9UaHJlYWRMYXVuY2hlcldpbi5jcHAgYi9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvTGF1bmNoZXIvd2luL1RocmVhZExhdW5jaGVyV2luLmNwcAppbmRleCAyNTk2
OTk4ZWEyMzkyMGExM2Q5NWUxZmViN2NmYTJiZWMxZDU5Y2JkLi5mOWQxYzA0ODFkMWYwMzViMWNm
MGU5ZGYyYzNmNGMzMmMwMDMxYzI5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvTGF1bmNoZXIvd2luL1RocmVhZExhdW5jaGVyV2luLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvTGF1bmNoZXIvd2luL1RocmVhZExhdW5jaGVyV2luLmNwcApAQCAtMjYsOCAr
MjYsOCBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIlRocmVhZExhdW5jaGVyLmgi
CiAKLSNpbmNsdWRlICJSdW5Mb29wLmgiCiAjaW5jbHVkZSAiV2ViUHJvY2Vzcy5oIgorI2luY2x1
ZGUgPFdlYkNvcmUvUnVuTG9vcC5oPgogI2luY2x1ZGUgPHJ1bnRpbWUvSW5pdGlhbGl6ZVRocmVh
ZGluZy5oPgogI2luY2x1ZGUgPHd0Zi9NYWluVGhyZWFkLmg+CiAjaW5jbHVkZSA8d3RmL1RocmVh
ZGluZy5oPgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0xheWVyVHJlZUhv
c3RQcm94eS5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0xheWVyVHJlZUhvc3RQcm94eS5o
CmluZGV4IGQ1MjgxZDM4MmYyMGQ2MTExZTRkZjMyNmY5MDYxMWI3MjYwZGFhMjcuLmJiMmZkYmIw
MzkzMmNmZjJlMGQ2ZmRiYTA3ZjQyMzY3NzdkNWNkM2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9MYXllclRyZWVIb3N0UHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvTGF5ZXJUcmVlSG9zdFByb3h5LmgKQEAgLTI0LDEyICsyNCwxMiBAQAogI2luY2x1
ZGUgIkRyYXdpbmdBcmVhUHJveHkuaCIKICNpbmNsdWRlICJNZXNzYWdlUXVldWUuaCIKICNpbmNs
dWRlICJSZWdpb24uaCIKLSNpbmNsdWRlICJSdW5Mb29wLmgiCiAjaW5jbHVkZSAiV2ViTGF5ZXJU
cmVlSW5mby5oIgogI2luY2x1ZGUgPFdlYkNvcmUvR3JhcGhpY3NDb250ZXh0Lmg+CiAjaW5jbHVk
ZSA8V2ViQ29yZS9HcmFwaGljc0xheWVyLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9JbnRSZWN0Lmg+
CiAjaW5jbHVkZSA8V2ViQ29yZS9JbnRTaXplLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9SdW5Mb29w
Lmg+CiAjaW5jbHVkZSA8d3RmL0hhc2hTZXQuaD4KIAogI2lmIFVTRShURVhUVVJFX01BUFBFUikK
QEAgLTgzLDcgKzgzLDcgQEAgcHJvdGVjdGVkOgogICAgIHZpcnR1YWwgYm9vbCBzaG93UmVwYWlu
dENvdW50ZXIoKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQogICAgIHZvaWQgcGFpbnRDb250ZW50
cyhjb25zdCBXZWJDb3JlOjpHcmFwaGljc0xheWVyKiwgV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0
JiwgV2ViQ29yZTo6R3JhcGhpY3NMYXllclBhaW50aW5nUGhhc2UsIGNvbnN0IFdlYkNvcmU6Oklu
dFJlY3QmKSB7IH0KIAotICAgIFJ1bkxvb3A6OlRpbWVyPExheWVyVHJlZUhvc3RQcm94eT4gbV9h
bmltYXRpb25UaW1lcjsKKyAgICBXZWJDb3JlOjpSdW5Mb29wOjpUaW1lcjxMYXllclRyZWVIb3N0
UHJveHk+IG1fYW5pbWF0aW9uVGltZXI7CiAgICAgRHJhd2luZ0FyZWFQcm94eSogbV9kcmF3aW5n
QXJlYVByb3h5OwogCiAgICAgdHlwZWRlZiBIYXNoTWFwPFdlYkxheWVySUQsIFdlYkNvcmU6Okdy
YXBoaWNzTGF5ZXIqPiBMYXllck1hcDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9QbHVnaW5zL1BsdWdpblByb2Nlc3NQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvUGx1Z2lucy9QbHVnaW5Qcm9jZXNzUHJveHkuY3BwCmluZGV4IDQxYzdhNDdjYjkwMDY0
ZGE5Y2MwOTkzMjRlOWU4MGQxNmU4MTY0YzEuLjU0ODJkODRkMjlmNjQwOTAzOTZmMjk1MjEwNzBl
NWNlZmQ2ZGZiMDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9QbHVnaW5z
L1BsdWdpblByb2Nlc3NQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1Bs
dWdpbnMvUGx1Z2luUHJvY2Vzc1Byb3h5LmNwcApAQCAtMzEsMTggKzMxLDIwIEBACiAjaW5jbHVk
ZSAiUGx1Z2luUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5oIgogI2luY2x1ZGUgIlBsdWdpblBy
b2Nlc3NNYW5hZ2VyLmgiCiAjaW5jbHVkZSAiUGx1Z2luUHJvY2Vzc01lc3NhZ2VzLmgiCi0jaW5j
bHVkZSAiUnVuTG9vcC5oIgogI2luY2x1ZGUgIldlYkNvbnRleHQuaCIKICNpbmNsdWRlICJXZWJD
b3JlQXJndW1lbnRDb2RlcnMuaCIKICNpbmNsdWRlICJXZWJQbHVnaW5TaXRlRGF0YU1hbmFnZXIu
aCIKICNpbmNsdWRlICJXZWJQcm9jZXNzTWVzc2FnZXMuaCIKICNpbmNsdWRlICJXZWJQcm9jZXNz
UHJveHkuaCIKICNpbmNsdWRlIDxXZWJDb3JlL05vdEltcGxlbWVudGVkLmg+CisjaW1wb3J0IDxX
ZWJDb3JlL1J1bkxvb3AuaD4KIAogI2lmIFBMQVRGT1JNKE1BQykKICNpbmNsdWRlICJNYWNoUG9y
dC5oIgogI2VuZGlmCiAKK3VzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOworCiBuYW1lc3BhY2UgV2Vi
S2l0IHsKIAogUGFzc093blB0cjxQbHVnaW5Qcm9jZXNzUHJveHk+IFBsdWdpblByb2Nlc3NQcm94
eTo6Y3JlYXRlKFBsdWdpblByb2Nlc3NNYW5hZ2VyKiBQbHVnaW5Qcm9jZXNzTWFuYWdlciwgY29u
c3QgUGx1Z2luTW9kdWxlSW5mbyYgcGx1Z2luSW5mbykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9SZXNwb25zaXZlbmVzc1RpbWVyLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9SZXNwb25zaXZlbmVzc1RpbWVyLmNwcAppbmRleCAwNTdjYzc0MzU0YTE0ZTU3ZGMy
ZmUxZjNiODY3NDMzYWNjMzdjZDAxLi44NzgzOGNhMjYyODA3N2FiODdjODEyZjIwYmRkZWE4MjIx
MGUxYjZjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvUmVzcG9uc2l2ZW5l
c3NUaW1lci5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1Jlc3BvbnNpdmVuZXNz
VGltZXIuY3BwCkBAIC0yNiw2ICsyNiw4IEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVk
ZSAiUmVzcG9uc2l2ZW5lc3NUaW1lci5oIgogCit1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKKwog
bmFtZXNwYWNlIFdlYktpdCB7CiAKIHN0YXRpYyBjb25zdCBkb3VibGUga1Jlc3BvbnNpdmVuZXNz
VGltZW91dCA9IDM7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvUmVzcG9u
c2l2ZW5lc3NUaW1lci5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1Jlc3BvbnNpdmVuZXNz
VGltZXIuaAppbmRleCA2NTkxOTE2MTJmODAxYjE0ZDlkODgxMjJhY2I0ZWIzOGI1ZWE2ZTViLi4z
NjczMzE1MWZjODdmNjdkMTcyYTI4M2ZlMDMwYTY4NmU3ZWI0M2E5IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvUmVzcG9uc2l2ZW5lc3NUaW1lci5oCisrKyBiL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9SZXNwb25zaXZlbmVzc1RpbWVyLmgKQEAgLTI2LDcgKzI2LDcgQEAK
ICNpZm5kZWYgUmVzcG9uc2l2ZW5lc3NUaW1lcl9oCiAjZGVmaW5lIFJlc3BvbnNpdmVuZXNzVGlt
ZXJfaAogCi0jaW5jbHVkZSAiUnVuTG9vcC5oIgorI2luY2x1ZGUgPFdlYkNvcmUvUnVuTG9vcC5o
PgogCiBuYW1lc3BhY2UgV2ViS2l0IHsKIApAQCAtNTUsNyArNTUsNyBAQCBwcml2YXRlOgogICAg
IFJlc3BvbnNpdmVuZXNzVGltZXI6OkNsaWVudCogbV9jbGllbnQ7CiAgICAgYm9vbCBtX2lzUmVz
cG9uc2l2ZTsKIAotICAgIFJ1bkxvb3A6OlRpbWVyPFJlc3BvbnNpdmVuZXNzVGltZXI+IG1fdGlt
ZXI7CisgICAgV2ViQ29yZTo6UnVuTG9vcDo6VGltZXI8UmVzcG9uc2l2ZW5lc3NUaW1lcj4gbV90
aW1lcjsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL1RpbGVkRHJhd2luZ0FyZWFQcm94eS5oIGIvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL1RpbGVkRHJhd2luZ0FyZWFQcm94eS5oCmluZGV4IDg1NTk3N2RlOWMyNTAyN2Zh
YzJiMmQ2MjU4ZWQzZDU0ODM2NzBiYjEuLjBmY2NjZjRlMTg1NmZkZTU3M2MyZDY4MjNiZDZiOTcz
MGRiNmQ0MWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9UaWxlZERyYXdp
bmdBcmVhUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvVGlsZWREcmF3aW5n
QXJlYVByb3h5LmgKQEAgLTMxLDEwICszMSw5IEBACiAjaW5jbHVkZSAiRHJhd2luZ0FyZWFQcm94
eS5oIgogI2luY2x1ZGUgPFdlYkNvcmUvR3JhcGhpY3NDb250ZXh0Lmg+CiAjaW5jbHVkZSA8V2Vi
Q29yZS9JbnRSZWN0Lmg+CisjaW5jbHVkZSA8V2ViQ29yZS9SdW5Mb29wLmg+CiAjaW5jbHVkZSA8
d3RmL0hhc2hTZXQuaD4KIAotI2luY2x1ZGUgIlJ1bkxvb3AuaCIKLQogI2lmIFBMQVRGT1JNKE1B
QykKICNpbmNsdWRlIDx3dGYvUmV0YWluUHRyLmg+CiAjaWZkZWYgX19PQkpDX18KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9WaXNpdGVkTGlua1Byb3ZpZGVyLmggYi9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvVmlzaXRlZExpbmtQcm92aWRlci5oCmluZGV4IGE0MjhkNWI4
MzZiODBhYTMyZWRjNTM3Y2UwZGEwNjY3Zjg2OTZhYjEuLjQ2MWM1YWM5NGU3YzJjNGU2MGIyOTJl
MjU4YmJkNDNhZGQzMjA5ZjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9W
aXNpdGVkTGlua1Byb3ZpZGVyLmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1Zpc2l0
ZWRMaW5rUHJvdmlkZXIuaApAQCAtMjYsOSArMjYsOSBAQAogI2lmbmRlZiBWaXNpdGVkTGlua1By
b3ZpZGVyX2gKICNkZWZpbmUgVmlzaXRlZExpbmtQcm92aWRlcl9oCiAKLSNpbmNsdWRlICJSdW5M
b29wLmgiCiAjaW5jbHVkZSAiVmlzaXRlZExpbmtUYWJsZS5oIgogI2luY2x1ZGUgPFdlYkNvcmUv
TGlua0hhc2guaD4KKyNpbmNsdWRlIDxXZWJDb3JlL1J1bkxvb3AuaD4KICNpbmNsdWRlIDx3dGYv
Rm9yd2FyZC5oPgogI2luY2x1ZGUgPHd0Zi9IYXNoU2V0Lmg+CiAKQEAgLTU4LDcgKzU4LDcgQEAg
cHJpdmF0ZToKICAgICBWaXNpdGVkTGlua1RhYmxlIG1fdGFibGU7CiAKICAgICBIYXNoU2V0PFdl
YkNvcmU6OkxpbmtIYXNoLCBXZWJDb3JlOjpMaW5rSGFzaEhhc2g+IG1fcGVuZGluZ1Zpc2l0ZWRM
aW5rczsKLSAgICBSdW5Mb29wOjpUaW1lcjxWaXNpdGVkTGlua1Byb3ZpZGVyPiBtX3BlbmRpbmdW
aXNpdGVkTGlua3NUaW1lcjsKKyAgICBXZWJDb3JlOjpSdW5Mb29wOjpUaW1lcjxWaXNpdGVkTGlu
a1Byb3ZpZGVyPiBtX3BlbmRpbmdWaXNpdGVkTGlua3NUaW1lcjsKIH07CiAKIH0gLy8gbmFtZXNw
YWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkNvbm5l
Y3Rpb25Ub1dlYlByb2Nlc3MuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkNvbm5l
Y3Rpb25Ub1dlYlByb2Nlc3MuY3BwCmluZGV4IGIxZDEwM2ZiY2UxZDJmNTlkMTI5ZWZmZTIxZGYw
ODI5NjhjYmIwNWYuLmJlODE0YzBhOWFkMjE2MGRmMzYyMjhjYmE3MTYxODMzYzk0N2FjYzUgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJDb25uZWN0aW9uVG9XZWJQcm9j
ZXNzLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViQ29ubmVjdGlvblRvV2Vi
UHJvY2Vzcy5jcHAKQEAgLTMwLDYgKzMwLDggQEAKICNpbmNsdWRlICJXZWJDb250ZXh0VXNlck1l
c3NhZ2VDb2RlcnMuaCIKICNpbmNsdWRlICJXZWJQcm9jZXNzUHJveHkuaCIKIAordXNpbmcgbmFt
ZXNwYWNlIFdlYkNvcmU7CisKIG5hbWVzcGFjZSBXZWJLaXQgewogCiBQYXNzUmVmUHRyPFdlYkNv
bm5lY3Rpb25Ub1dlYlByb2Nlc3M+IFdlYkNvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OmNyZWF0ZShX
ZWJQcm9jZXNzUHJveHkqIHByb2Nlc3MsIENvcmVJUEM6OkNvbm5lY3Rpb246OklkZW50aWZpZXIg
Y29ubmVjdGlvbklkZW50aWZpZXIsIFJ1bkxvb3AqIHJ1bkxvb3ApCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5oIGIvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL1dlYkNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuaAppbmRleCBiOWQ1
OGYyYzcwMzBiNjI1Nzk3YjAzYTY4NWYxOGY5ZTc0YjZjZWNjLi5mNDk2MmUyNmNjMDM5MDZkNTY3
ZjE3YmFhNmRmYTAxMWQ1OTUzODNmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvV2ViQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9XZWJDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmgKQEAgLTM1LDE0ICszNSwxNCBAQCBjbGFz
cyBXZWJQcm9jZXNzUHJveHk7CiAKIGNsYXNzIFdlYkNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MgOiBw
dWJsaWMgV2ViQ29ubmVjdGlvbiwgQ29yZUlQQzo6Q29ubmVjdGlvbjo6Q2xpZW50IHsKIHB1Ymxp
YzoKLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxXZWJDb25uZWN0aW9uVG9XZWJQcm9jZXNzPiBjcmVh
dGUoV2ViUHJvY2Vzc1Byb3h5KiwgQ29yZUlQQzo6Q29ubmVjdGlvbjo6SWRlbnRpZmllciwgUnVu
TG9vcCopOworICAgIHN0YXRpYyBQYXNzUmVmUHRyPFdlYkNvbm5lY3Rpb25Ub1dlYlByb2Nlc3M+
IGNyZWF0ZShXZWJQcm9jZXNzUHJveHkqLCBDb3JlSVBDOjpDb25uZWN0aW9uOjpJZGVudGlmaWVy
LCBXZWJDb3JlOjpSdW5Mb29wKik7CiAKICAgICBDb3JlSVBDOjpDb25uZWN0aW9uKiBjb25uZWN0
aW9uKCkgeyByZXR1cm4gbV9jb25uZWN0aW9uLmdldCgpOyB9CiAKICAgICB2b2lkIGludmFsaWRh
dGUoKTsKIAogcHJpdmF0ZToKLSAgICBXZWJDb25uZWN0aW9uVG9XZWJQcm9jZXNzKFdlYlByb2Nl
c3NQcm94eSosIENvcmVJUEM6OkNvbm5lY3Rpb246OklkZW50aWZpZXIsIFJ1bkxvb3AqKTsKKyAg
ICBXZWJDb25uZWN0aW9uVG9XZWJQcm9jZXNzKFdlYlByb2Nlc3NQcm94eSosIENvcmVJUEM6OkNv
bm5lY3Rpb246OklkZW50aWZpZXIsIFdlYkNvcmU6OlJ1bkxvb3AqKTsKIAogICAgIC8vIFdlYkNv
bm5lY3Rpb24KICAgICB2aXJ0dWFsIHZvaWQgcG9zdE1lc3NhZ2UoY29uc3QgU3RyaW5nJiwgQVBJ
T2JqZWN0Kik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViQ29udGV4
dC5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViQ29udGV4dC5jcHAKaW5kZXggMThi
Y2ExMTZhYTUxMjkyY2FmMDEwYTQzOTVlNzljZGU3NmVlZjVmOC4uNmQ5NjFlMmI4MmQ2YjEwMWJh
MWY2Yjk4ZjJjN2YyOGI2YzdiMzU4NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL1dlYkNvbnRleHQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJDb250
ZXh0LmNwcApAQCAtMzEsNyArMzEsNiBAQAogI2luY2x1ZGUgIkluamVjdGVkQnVuZGxlTWVzc2Fn
ZUtpbmRzLmgiCiAjaW5jbHVkZSAiTG9nZ2luZy5oIgogI2luY2x1ZGUgIk11dGFibGVEaWN0aW9u
YXJ5LmgiCi0jaW5jbHVkZSAiUnVuTG9vcC5oIgogI2luY2x1ZGUgIlNhbmRib3hFeHRlbnNpb24u
aCIKICNpbmNsdWRlICJTdGF0aXN0aWNzRGF0YS5oIgogI2luY2x1ZGUgIlRleHRDaGVja2VyLmgi
CkBAIC01OCw2ICs1Nyw3IEBACiAjaW5jbHVkZSA8V2ViQ29yZS9MaW5rSGFzaC5oPgogI2luY2x1
ZGUgPFdlYkNvcmUvTG9nZ2luZy5oPgogI2luY2x1ZGUgPFdlYkNvcmUvUmVzb3VyY2VSZXF1ZXN0
Lmg+CisjaW5jbHVkZSA8V2ViQ29yZS9SdW5Mb29wLmg+CiAjaW5jbHVkZSA8cnVudGltZS9Jbml0
aWFsaXplVGhyZWFkaW5nLmg+CiAjaW5jbHVkZSA8d3RmL0N1cnJlbnRUaW1lLmg+CiAjaW5jbHVk
ZSA8d3RmL01haW5UaHJlYWQuaD4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy93aW4vV2ViVmlldy5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mvd2luL1dlYlZpZXcu
Y3BwCmluZGV4IGQ0NGUyNTU2MGUyZTE1ODUxNWEwMmQzZDJmOTgzN2E1YjEwYjc1ZWMuLmU5YTNk
MDRiMDg5Y2RjNGZkMTQwNDJjYTY3YzA4NDU2ODM4N2M3ZmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy93aW4vV2ViVmlldy5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL3dpbi9XZWJWaWV3LmNwcApAQCAtMzIsMTEgKzMyLDcgQEAKICNpbmNsdWRlICJOYXRp
dmVXZWJLZXlib2FyZEV2ZW50LmgiCiAjaW5jbHVkZSAiTmF0aXZlV2ViTW91c2VFdmVudC5oIgog
I2luY2x1ZGUgIk5hdGl2ZVdlYldoZWVsRXZlbnQuaCIKLSNpbmNsdWRlICJSdW5Mb29wLmgiCiAj
aW5jbHVkZSAiV0tBUElDYXN0LmgiCi0jaWYgVVNFKENHKQotI2luY2x1ZGUgIldLQ0FDRlZpZXdX
aW5kb3cuaCIKLSNlbmRpZgogI2luY2x1ZGUgIldlYkNvbnRleHQuaCIKICNpbmNsdWRlICJXZWJD
b250ZXh0TWVudVByb3h5V2luLmgiCiAjaW5jbHVkZSAiV2ViRWRpdENvbW1hbmRQcm94eS5oIgpA
QCAtNDksMTggKzQ1LDIxIEBACiAjaW5jbHVkZSA8V2ViQ29yZS9EcmFnU2Vzc2lvbi5oPgogI2lu
Y2x1ZGUgPFdlYkNvcmUvRWRpdG9yLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9GbG9hdFJlY3QuaD4K
LSNpZiBVU0UoQ0cpCi0jaW5jbHVkZSA8V2ViQ29yZS9HcmFwaGljc0NvbnRleHRDRy5oPgotI2Vu
ZGlmCiAjaW5jbHVkZSA8V2ViQ29yZS9JbnRSZWN0Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9Ob3RJ
bXBsZW1lbnRlZC5oPgogI2luY2x1ZGUgPFdlYkNvcmUvUmVnaW9uLmg+CisjaW5jbHVkZSA8V2Vi
Q29yZS9SdW5Mb29wLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9Tb2Z0TGlua2luZy5oPgogI2luY2x1
ZGUgPFdlYkNvcmUvV2ViQ29yZUluc3RhbmNlSGFuZGxlLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9X
aW5kb3dNZXNzYWdlQnJvYWRjYXN0ZXIuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1dpbmRvd3NUb3Vj
aC5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgogCisjaWYgVVNFKENHKQorI2lu
Y2x1ZGUgIldLQ0FDRlZpZXdXaW5kb3cuaCIKKyNpbmNsdWRlIDxXZWJDb3JlL0dyYXBoaWNzQ29u
dGV4dENHLmg+CisjZW5kaWYKKwogI2lmIEVOQUJMRShGVUxMU0NSRUVOX0FQSSkKICNpbmNsdWRl
ICJXZWJGdWxsU2NyZWVuTWFuYWdlclByb3h5LmgiCiAjaW5jbHVkZSA8V2ViQ29yZS9GdWxsU2Ny
ZWVuQ29udHJvbGxlci5oPgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViS2l0Mi54Y29k
ZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYktpdDIvV2ViS2l0Mi54Y29kZXByb2ov
cHJvamVjdC5wYnhwcm9qCmluZGV4IGY4NTFlZGM3NGE2MjVlNTNiZTY5M2YwYmEyMGU0ZTczYzRk
MmRlOGQuLjMzYWE4MTM1M2U0YjA4NjU1YWIzNTlhZGIxZGJkMDdiNWY4ZGZhMTUgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQyL1dlYktpdDIueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysg
Yi9Tb3VyY2UvV2ViS2l0Mi9XZWJLaXQyLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTQ2
NSw3ICs0NjUsNiBAQAogCQlCNjM0MDNGOTE0OTEwRDU3MDAxMDcwQjUgLyogQVBJT2JqZWN0LmNw
cCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEI2MzQwM0Y4
MTQ5MTBENTcwMDEwNzBCNSAvKiBBUElPYmplY3QuY3BwICovOyB9OwogCQlCODc4QjYxNTEzMzQy
OERDMDA2ODg4RTkgLyogQ29ycmVjdGlvblBhbmVsLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCODc4QjYxMzEzMzQyOERDMDA2ODg4RTkgLyogQ29ycmVj
dGlvblBhbmVsLmggKi87IH07CiAJCUI4NzhCNjE2MTMzNDI4REMwMDY4ODhFOSAvKiBDb3JyZWN0
aW9uUGFuZWwubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSBCODc4QjYxNDEzMzQyOERDMDA2ODg4RTkgLyogQ29ycmVjdGlvblBhbmVsLm1tICovOyB9Owot
CQlCQzAwOTJGNzExNTgzN0EzMDBFMEFFMkEgLyogUnVuTG9vcE1hYy5tbSBpbiBTb3VyY2VzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDMDA5MkY1MTE1ODM3QTMwMEUwQUUy
QSAvKiBSdW5Mb29wTWFjLm1tICovOyB9OwogCQlCQzAwOTJGODExNTgzN0EzMDBFMEFFMkEgLyog
V29ya1F1ZXVlTWFjLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IEJDMDA5MkY2MTE1ODM3QTMwMEUwQUUyQSAvKiBXb3JrUXVldWVNYWMuY3BwICovOyB9
OwogCQlCQzAzMkQ3NTEwRjQzNzhEMDA1OEMxNUEgLyogV2ViQ2hyb21lQ2xpZW50LmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCQzAzMkQ2MDEwRjQzNzhE
MDA1OEMxNUEgLyogV2ViQ2hyb21lQ2xpZW50LmggKi87IH07CiAJCUJDMDMyRDc3MTBGNDM3OEQw
MDU4QzE1QSAvKiBXZWJDb250ZXh0TWVudUNsaWVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkMwMzJENjIxMEY0Mzc4RDAwNThDMTVBIC8qIFdlYkNv
bnRleHRNZW51Q2xpZW50LmggKi87IH07CkBAIC01NTksOCArNTU4LDYgQEAKIAkJQkMyRDAyMTcx
MkFDNDFDQjAwRTczMkEzIC8qIFNhbWVEb2N1bWVudE5hdmlnYXRpb25UeXBlLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCQzJEMDIxNjEyQUM0MUNCMDBF
NzMyQTMgLyogU2FtZURvY3VtZW50TmF2aWdhdGlvblR5cGUuaCAqLzsgfTsKIAkJQkMyRDAyMTkx
MkFDNDI2QzAwRTczMkEzIC8qIFdLUGFnZUxvYWRUeXBlcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkMyRDAyMTgxMkFDNDI2QzAwRTczMkEzIC8qIFdL
UGFnZUxvYWRUeXBlcy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7
IH07IH07CiAJCUJDMkRGQkEzMTJBNzYxQTUwMEU3MzJBMyAvKiBXZWJQcmVmZXJlbmNlc0NGLmNw
cCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDMkRGQkEy
MTJBNzYxQTUwMEU3MzJBMyAvKiBXZWJQcmVmZXJlbmNlc0NGLmNwcCAqLzsgfTsKLQkJQkMyRTZF
ODcxMTQxOTcxNTAwQTYzQjFFIC8qIFJ1bkxvb3AuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkMyRTZFNzcxMTQxOTcwQzAwQTYzQjFFIC8qIFJ1bkxv
b3AuY3BwICovOyB9OwotCQlCQzJFNkU4ODExNDE5NzE1MDBBNjNCMUUgLyogUnVuTG9vcC5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkMyRTZFNzgxMTQx
OTcwQzAwQTYzQjFFIC8qIFJ1bkxvb3AuaCAqLzsgfTsKIAkJQkMyRTZFOEQxMTQxOTcxNTAwQTYz
QjFFIC8qIFdvcmtRdWV1ZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSBCQzJFNkU3RDExNDE5NzBDMDBBNjNCMUUgLyogV29ya1F1ZXVlLmNwcCAqLzsg
fTsKIAkJQkMyRTZFOEUxMTQxOTcxNTAwQTYzQjFFIC8qIFdvcmtRdWV1ZS5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkMyRTZFN0UxMTQxOTcwQzAwQTYz
QjFFIC8qIFdvcmtRdWV1ZS5oICovOyB9OwogCQlCQzMwNjVDNDEyNTkyRjg5MDBFNzEyNzggLyog
V2ViUHJvY2Vzc01hYy5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IEJDMzA2NUMzMTI1OTJGODkwMEU3MTI3OCAvKiBXZWJQcm9jZXNzTWFjLm1tICovOyB9
OwpAQCAtMTQ4Myw3ICsxNDgwLDYgQEAKIAkJQjYzNDAzRjgxNDkxMEQ1NzAwMTA3MEI1IC8qIEFQ
SU9iamVjdC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBBUElPYmpl
Y3QuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlCODc4QjYxMzEzMzQyOERDMDA2
ODg4RTkgLyogQ29ycmVjdGlvblBhbmVsLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IENvcnJlY3Rpb25QYW5lbC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlCODc4
QjYxNDEzMzQyOERDMDA2ODg4RTkgLyogQ29ycmVjdGlvblBhbmVsLm1tICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gQ29ycmVjdGlvblBhbmVsLm1tOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwotCQlCQzAwOTJGNTExNTgzN0EzMDBFMEFFMkEgLyogUnVuTG9vcE1h
Yy5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFJ1bkxvb3BNYWMu
bW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUJDMDA5MkY2MTE1ODM3QTMwMEUwQUUy
QSAvKiBXb3JrUXVldWVNYWMuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRo
ID0gV29ya1F1ZXVlTWFjLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQkMwMzJE
NjAxMEY0Mzc4RDAwNThDMTVBIC8qIFdlYkNocm9tZUNsaWVudC5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBXZWJDaHJvbWVDbGllbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJQkMwMzJENjIxMEY0Mzc4RDAwNThDMTVBIC8qIFdlYkNvbnRleHRNZW51Q2xpZW50
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYkNvbnRleHRNZW51Q2xpZW50
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xNTgzLDggKzE1NzksNiBAQAogCQlC
QzJEMDIxNjEyQUM0MUNCMDBFNzMyQTMgLyogU2FtZURvY3VtZW50TmF2aWdhdGlvblR5cGUuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU2FtZURvY3VtZW50TmF2aWdhdGlvblR5
cGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQkMyRDAyMTgxMkFDNDI2QzAwRTcz
MkEzIC8qIFdLUGFnZUxvYWRUeXBlcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBXS1BhZ2VMb2FkVHlwZXMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQkMyREZC
QTIxMkE3NjFBNTAwRTczMkEzIC8qIFdlYlByZWZlcmVuY2VzQ0YuY3BwICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jcHAuY3BwOyBuYW1lID0gV2ViUHJlZmVyZW5jZXNDRi5jcHA7IHBhdGggPSBjZi9X
ZWJQcmVmZXJlbmNlc0NGLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJQkMyRTZF
NzcxMTQxOTcwQzAwQTYzQjFFIC8qIFJ1bkxvb3AuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAuY3BwOyBwYXRoID0gUnVuTG9vcC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0J
CUJDMkU2RTc4MTE0MTk3MEMwMEE2M0IxRSAvKiBSdW5Mb29wLmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IFJ1bkxvb3AuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
QkMyRTZFN0QxMTQxOTcwQzAwQTYzQjFFIC8qIFdvcmtRdWV1ZS5jcHAgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXb3JrUXVldWUuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQlCQzJFNkU3RTExNDE5NzBDMDBBNjNCMUUgLyogV29ya1F1ZXVlLmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdvcmtRdWV1ZS5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQlCQzMwNjVDMzEyNTkyRjg5MDBFNzEyNzggLyogV2ViUHJvY2Vzc01hYy5t
bSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFdlYlByb2Nlc3NNYWMu
bW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0yMjYwLDcgKzIyNTQsNiBAQAogCQkJ
CTFBMjRCNUYwMTFGNTMxRTgwMEMzODI2OSAvKiBNYWNoVXRpbGl0aWVzLmNwcCAqLywKIAkJCQkx
QTI0QjVGMTExRjUzMUU4MDBDMzgyNjkgLyogTWFjaFV0aWxpdGllcy5oICovLAogCQkJCUMwRTNB
QTQ4MTIwOUU0NTAwMEE0OUQwMSAvKiBNb2R1bGVNYWMubW0gKi8sCi0JCQkJQkMwMDkyRjUxMTU4
MzdBMzAwRTBBRTJBIC8qIFJ1bkxvb3BNYWMubW0gKi8sCiAJCQkJMUEyNEJGMzkxMjA4OTZBNjAw
RkJCMDU5IC8qIFNoYXJlZE1lbW9yeU1hYy5jcHAgKi8sCiAJCQkJQkMwMDkyRjYxMTU4MzdBMzAw
RTBBRTJBIC8qIFdvcmtRdWV1ZU1hYy5jcHAgKi8sCiAJCQkpOwpAQCAtMzI4Miw4ICszMjc1LDYg
QEAKIAkJCQlDMEUzQUE0NTEyMDlFMkJBMDBBNDlEMDEgLyogTW9kdWxlLmNwcCAqLywKIAkJCQlD
MEUzQUE0NDEyMDlFMkJBMDBBNDlEMDEgLyogTW9kdWxlLmggKi8sCiAJCQkJQkM4NzgwRkIxMTYx
QzJCODAwQ0MyNzY4IC8qIFBsYXRmb3JtUHJvY2Vzc0lkZW50aWZpZXIuaCAqLywKLQkJCQlCQzJF
NkU3NzExNDE5NzBDMDBBNjNCMUUgLyogUnVuTG9vcC5jcHAgKi8sCi0JCQkJQkMyRTZFNzgxMTQx
OTcwQzAwQTYzQjFFIC8qIFJ1bkxvb3AuaCAqLywKIAkJCQkxQTI0QkVEMzEyMDg5NEQxMDBGQkIw
NTkgLyogU2hhcmVkTWVtb3J5LmggKi8sCiAJCQkJQkMyRTZFN0QxMTQxOTcwQzAwQTYzQjFFIC8q
IFdvcmtRdWV1ZS5jcHAgKi8sCiAJCQkJQkMyRTZFN0UxMTQxOTcwQzAwQTYzQjFFIC8qIFdvcmtR
dWV1ZS5oICovLApAQCAtMzg0OCw3ICszODM5LDYgQEAKIAkJCQlCQzFBN0M1ODExMzZFMTlDMDBG
QjcxNjcgLyogUHJvY2Vzc0xhdW5jaGVyLmggaW4gSGVhZGVycyAqLywKIAkJCQlCQzU5NzA3NTEx
NjU5MUQwMDA1NTFGQ0EgLyogUHJvY2Vzc01vZGVsLmggaW4gSGVhZGVycyAqLywKIAkJCQkxQTMw
MDY2RTExMTBGNEY3MDAzMTkzN0MgLyogUmVzcG9uc2l2ZW5lc3NUaW1lci5oIGluIEhlYWRlcnMg
Ki8sCi0JCQkJQkMyRTZFODgxMTQxOTcxNTAwQTYzQjFFIC8qIFJ1bkxvb3AuaCBpbiBIZWFkZXJz
ICovLAogCQkJCUJDMkQwMjE3MTJBQzQxQ0IwMEU3MzJBMyAvKiBTYW1lRG9jdW1lbnROYXZpZ2F0
aW9uVHlwZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMUFBQjRBOEQxMjk2RjBBMjAwMjM5NTJGIC8q
IFNhbmRib3hFeHRlbnNpb24uaCBpbiBIZWFkZXJzICovLAogCQkJCTUxRDEzMDU0MTM4MkVBQzAw
MDM1MUVERCAvKiBTZWNJdGVtUmVxdWVzdERhdGEuaCBpbiBIZWFkZXJzICovLApAQCAtNDU4MSw4
ICs0NTcxLDYgQEAKIAkJCQkxQUUxMTdGNjExREJCMzA5MDA5ODE2MTUgLyogUHJvY2Vzc0xhdW5j
aGVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUJDMTExQjFEMTEyRjVGRTYwMDMzN0JBQiAvKiBQ
cm9jZXNzTGF1bmNoZXJNYWMubW0gaW4gU291cmNlcyAqLywKIAkJCQlCQzExMUIwOTExMkY1RTND
MDAzMzdCQUIgLyogUmVzcG9uc2l2ZW5lc3NUaW1lci5jcHAgaW4gU291cmNlcyAqLywKLQkJCQlC
QzJFNkU4NzExNDE5NzE1MDBBNjNCMUUgLyogUnVuTG9vcC5jcHAgaW4gU291cmNlcyAqLywKLQkJ
CQlCQzAwOTJGNzExNTgzN0EzMDBFMEFFMkEgLyogUnVuTG9vcE1hYy5tbSBpbiBTb3VyY2VzICov
LAogCQkJCTFBQUI0QUFBMTI5NkYxNTQwMDIzOTUyRiAvKiBTYW5kYm94RXh0ZW5zaW9uTWFjLm1t
IGluIFNvdXJjZXMgKi8sCiAJCQkJNTFEMTMwNTMxMzgyRUFDMDAwMzUxRUREIC8qIFNlY0l0ZW1S
ZXF1ZXN0RGF0YS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk1MUQxMzA1NTEzODJFQUMwMDAzNTFF
REQgLyogU2VjSXRlbVJlc3BvbnNlRGF0YS5jcHAgaW4gU291cmNlcyAqLywKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9OZXRzY2FwZS9OUFJ1bnRpbWVPYmpl
Y3RNYXAuaCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9OZXRzY2FwZS9OUFJ1
bnRpbWVPYmplY3RNYXAuaAppbmRleCBiZWY3MDFiZWU3OTU2ODI2Yzg4NjA0MmUwZTc4MjJjMzRl
ODQ1N2YyLi5kZWZmZDU0MzE3ZDE3YzUxODc1YjFlNzJmOTU5Njg1NDY3MGMwMzZkIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvTmV0c2NhcGUvTlBSdW50aW1l
T2JqZWN0TWFwLmgKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL05ldHNj
YXBlL05QUnVudGltZU9iamVjdE1hcC5oCkBAIC0yNiw5ICsyNiw3IEBACiAjaWZuZGVmIE5QSlNP
YmplY3RXcmFwcGVyTWFwX2gKICNkZWZpbmUgTlBKU09iamVjdFdyYXBwZXJNYXBfaAogCi0KLSNp
bmNsdWRlICJSdW5Mb29wLmgiCi0KKyNpbmNsdWRlIDxXZWJDb3JlL1J1bkxvb3AuaD4KICNpbmNs
dWRlIDxoZWFwL1dlYWsuaD4KICNpbmNsdWRlIDx3dGYvRm9yd2FyZC5oPgogI2luY2x1ZGUgPHd0
Zi9IYXNoTWFwLmg+CkBAIC05OCw3ICs5Niw3IEBAIHByaXZhdGU6CiAgICAgSGFzaE1hcDxKU0M6
OkpTT2JqZWN0KiwgTlBKU09iamVjdCo+IG1fbnBKU09iamVjdHM7CiAgICAgSGFzaE1hcDxOUE9i
amVjdCosIEpTQzo6V2VhazxKU05QT2JqZWN0PiA+IG1fanNOUE9iamVjdHM7CiAgICAgVmVjdG9y
PE5QT2JqZWN0Kj4gbV9ucE9iamVjdHNUb0ZpbmFsaXplOwotICAgIFJ1bkxvb3A6OlRpbWVyPE5Q
UnVudGltZU9iamVjdE1hcD4gbV9maW5hbGl6YXRpb25UaW1lcjsKKyAgICBXZWJDb3JlOjpSdW5M
b29wOjpUaW1lcjxOUFJ1bnRpbWVPYmplY3RNYXA+IG1fZmluYWxpemF0aW9uVGltZXI7CiB9Owog
CiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlBy
b2Nlc3MvUGx1Z2lucy9OZXRzY2FwZS9OZXRzY2FwZVBsdWdpbi5oIGIvU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9QbHVnaW5zL05ldHNjYXBlL05ldHNjYXBlUGx1Z2luLmgKaW5kZXggODQ1NDE4
MjBjODYwNGM5ZTU4YWYxYzcxZjhkNzliYThkOWU4Mjg3YS4uYWRhZDJkMDE1YjcwZjYyYzMxNjkz
OTYxNjZhNmEzYWU0Yzg0MDMxNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy9QbHVnaW5zL05ldHNjYXBlL05ldHNjYXBlUGx1Z2luLmgKKysrIGIvU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9QbHVnaW5zL05ldHNjYXBlL05ldHNjYXBlUGx1Z2luLmgKQEAgLTI4LDEwICsy
OCwxMCBAQAogCiAjaW5jbHVkZSAiTmV0c2NhcGVQbHVnaW5Nb2R1bGUuaCIKICNpbmNsdWRlICJQ
bHVnaW4uaCIKLSNpbmNsdWRlICJSdW5Mb29wLmgiCiAjaW5jbHVkZSA8V2ViQ29yZS9BZmZpbmVU
cmFuc2Zvcm0uaD4KICNpbmNsdWRlIDxXZWJDb3JlL0dyYXBoaWNzTGF5ZXIuaD4KICNpbmNsdWRl
IDxXZWJDb3JlL0ludFJlY3QuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL1J1bkxvb3AuaD4KICNpbmNs
dWRlIDx3dGYvSGFzaE1hcC5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L0NTdHJpbmcuaD4KICNpbmNs
dWRlIDx3dGYvdGV4dC9TdHJpbmdIYXNoLmg+CkBAIC0yOTEsNyArMjkxLDcgQEAgcHJpdmF0ZToK
ICAgICAgICAgYm9vbCBtX3JlcGVhdDsKICAgICAgICAgVGltZXJGdW5jIG1fdGltZXJGdW5jOwog
Ci0gICAgICAgIFJ1bkxvb3A6OlRpbWVyPFRpbWVyPiBtX3RpbWVyOworICAgICAgICBXZWJDb3Jl
OjpSdW5Mb29wOjpUaW1lcjxUaW1lcj4gbV90aW1lcjsKICAgICB9OwogICAgIHR5cGVkZWYgSGFz
aE1hcDx1bnNpZ25lZCwgVGltZXIqPiBUaW1lck1hcDsKICAgICBUaW1lck1hcCBtX3RpbWVyczsK
QEAgLTMzMiw3ICszMzIsNyBAQCBwcml2YXRlOgogCiAgICAgLy8gRklYTUU6IEl0J3MgYSBiaXQg
d2FzdGVmdWwgdG8gaGF2ZSBvbmUgbnVsbCBldmVudCB0aW1lciBwZXIgcGx1Zy1pbi4KICAgICAv
LyBXZSBzaG91bGQgaW52ZXN0aWdhdGUgaGF2aW5nIG9uZSBwZXIgd2luZG93LgotICAgIFJ1bkxv
b3A6OlRpbWVyPE5ldHNjYXBlUGx1Z2luPiBtX251bGxFdmVudFRpbWVyOworICAgIFdlYkNvcmU6
OlJ1bkxvb3A6OlRpbWVyPE5ldHNjYXBlUGx1Z2luPiBtX251bGxFdmVudFRpbWVyOwogICAgIE5Q
X0NHQ29udGV4dCBtX25wQ0dDb250ZXh0OwogI2VuZGlmCiAjZWxpZiBQTFVHSU5fQVJDSElURUNU
VVJFKFdJTikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9O
ZXRzY2FwZS9OZXRzY2FwZVBsdWdpblN0cmVhbS5oIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy9QbHVnaW5zL05ldHNjYXBlL05ldHNjYXBlUGx1Z2luU3RyZWFtLmgKaW5kZXggZGUyNjgyN2Zj
NzJiNjRmODhmNWQwMWQ0MzY1ZTZmYjRjYzNlNzQwMy4uMDU4NzNlNGY0YTU2MWI3NjRkYWFlZTI2
MDIxNDUwMDE4ZGY3NmMyZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9Q
bHVnaW5zL05ldHNjYXBlL05ldHNjYXBlUGx1Z2luU3RyZWFtLmgKKysrIGIvU291cmNlL1dlYktp
dDIvV2ViUHJvY2Vzcy9QbHVnaW5zL05ldHNjYXBlL05ldHNjYXBlUGx1Z2luU3RyZWFtLmgKQEAg
LTI2LDggKzI2LDggQEAKICNpZm5kZWYgTmV0c2NhcGVQbHVnaW5TdHJlYW1faAogI2RlZmluZSBO
ZXRzY2FwZVBsdWdpblN0cmVhbV9oCiAKLSNpbmNsdWRlICJSdW5Mb29wLmgiCiAjaW5jbHVkZSA8
V2ViQ29yZS9GaWxlU3lzdGVtLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9SdW5Mb29wLmg+CiAjaW5j
bHVkZSA8V2ViQ29yZS9ucHJ1bnRpbWVfaW50ZXJuYWwuaD4KICNpbmNsdWRlIDx3dGYvRm9yd2Fy
ZC5oPgogI2luY2x1ZGUgPHd0Zi9QYXNzUmVmUHRyLmg+CkBAIC0zNiw3ICszNiw3IEBACiAjaW5j
bHVkZSA8d3RmL3RleHQvQ1N0cmluZy5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7Ci0gICAgY2xh
c3MgS1VSTDsKK2NsYXNzIEtVUkw7CiB9CiAKIG5hbWVzcGFjZSBXZWJLaXQgewpAQCAtMTAzLDcg
KzEwMyw3IEBAIHByaXZhdGU6CiAgICAgQ1N0cmluZyBtX21pbWVUeXBlOwogICAgIENTdHJpbmcg
bV9oZWFkZXJzOwogCi0gICAgUnVuTG9vcDo6VGltZXI8TmV0c2NhcGVQbHVnaW5TdHJlYW0+IG1f
ZGVsaXZlcnlEYXRhVGltZXI7CisgICAgV2ViQ29yZTo6UnVuTG9vcDo6VGltZXI8TmV0c2NhcGVQ
bHVnaW5TdHJlYW0+IG1fZGVsaXZlcnlEYXRhVGltZXI7CiAgICAgT3duUHRyPCBWZWN0b3I8dWlu
dDhfdD4gPiBtX2RlbGl2ZXJ5RGF0YTsKICAgICBib29sIG1fc3RvcFN0cmVhbVdoZW5Eb25lRGVs
aXZlcmluZzsKIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdp
bnMvUGx1Z2luVmlldy5oIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL1BsdWdp
blZpZXcuaAppbmRleCA5NjI0YWM5NTRmYWJlOGY1NTIyMzRiODM1ZGY3MDMyYjNiNjBhYTUyLi5j
ZDYzNjNhNThiYmVhZDMxODE1MjU0OTU1NTdjOGRkZWI5MzE5NmFmIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvUGx1Z2luVmlldy5oCisrKyBiL1NvdXJjZS9X
ZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9QbHVnaW5WaWV3LmgKQEAgLTI5LDEzICsyOSwxMiBA
QAogI2luY2x1ZGUgIk5QUnVudGltZU9iamVjdE1hcC5oIgogI2luY2x1ZGUgIlBsdWdpbi5oIgog
I2luY2x1ZGUgIlBsdWdpbkNvbnRyb2xsZXIuaCIKLSNpbmNsdWRlICJSdW5Mb29wLmgiCiAjaW5j
bHVkZSAiV2ViRnJhbWUuaCIKLQogI2luY2x1ZGUgPFdlYkNvcmUvTWVkaWFDYW5TdGFydExpc3Rl
bmVyLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9QbHVnaW5WaWV3QmFzZS5oPgogI2luY2x1ZGUgPFdl
YkNvcmUvUmVzb3VyY2VFcnJvci5oPgogI2luY2x1ZGUgPFdlYkNvcmUvUmVzb3VyY2VSZXNwb25z
ZS5oPgotI2luY2x1ZGUgPFdlYkNvcmUvUGx1Z2luVmlld0Jhc2UuaD4KKyNpbmNsdWRlIDxXZWJD
b3JlL1J1bkxvb3AuaD4KICNpbmNsdWRlIDx3dGYvRGVxdWUuaD4KIAogLy8gRklYTUU6IEV2ZW50
dWFsbHkgdGhpcyBzaG91bGQgbW92ZSB0byBXZWJDb3JlLgpAQCAtMTgwLDcgKzE3OSw3IEBAIHBy
aXZhdGU6CiAKICAgICAvLyBQZW5kaW5nIFVSTFJlcXVlc3RzIHRoYXQgdGhlIHBsdWctaW4gaGFz
IG1hZGUuCiAgICAgRGVxdWU8UmVmUHRyPFVSTFJlcXVlc3Q+ID4gbV9wZW5kaW5nVVJMUmVxdWVz
dHM7Ci0gICAgUnVuTG9vcDo6VGltZXI8UGx1Z2luVmlldz4gbV9wZW5kaW5nVVJMUmVxdWVzdHNU
aW1lcjsKKyAgICBXZWJDb3JlOjpSdW5Mb29wOjpUaW1lcjxQbHVnaW5WaWV3PiBtX3BlbmRpbmdV
UkxSZXF1ZXN0c1RpbWVyOwogCiAgICAgLy8gUGVuZGluZyBmcmFtZSBsb2FkcyB0aGF0IHRoZSBw
bHVnLWluIGhhcyBtYWRlLgogICAgIHR5cGVkZWYgSGFzaE1hcDxSZWZQdHI8V2ViRnJhbWU+LCBS
ZWZQdHI8VVJMUmVxdWVzdD4gPiBGcmFtZUxvYWRNYXA7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0Mi9XZWJQcm9jZXNzL1dlYkNvbm5lY3Rpb25Ub1VJUHJvY2Vzcy5jcHAgYi9Tb3VyY2UvV2Vi
S2l0Mi9XZWJQcm9jZXNzL1dlYkNvbm5lY3Rpb25Ub1VJUHJvY2Vzcy5jcHAKaW5kZXggOWE2NGFk
ZDFjNDIzYjBiMDE0N2Q5MmI1MjU1MDkyODUxZTY3ZjZkMS4uNWU3OTU1ZDY3NjE5MDFkZWRiN2My
ZGNjNjc0ZDBmYjM5ZjI2N2M3NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy9XZWJDb25uZWN0aW9uVG9VSVByb2Nlc3MuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlBy
b2Nlc3MvV2ViQ29ubmVjdGlvblRvVUlQcm9jZXNzLmNwcApAQCAtMzAsNiArMzAsOCBAQAogI2lu
Y2x1ZGUgIldlYkNvbm5lY3Rpb25NZXNzYWdlS2luZHMuaCIKICNpbmNsdWRlICJXZWJQcm9jZXNz
LmgiCiAKK3VzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOworCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAog
UGFzc1JlZlB0cjxXZWJDb25uZWN0aW9uVG9VSVByb2Nlc3M+IFdlYkNvbm5lY3Rpb25Ub1VJUHJv
Y2Vzczo6Y3JlYXRlKFdlYlByb2Nlc3MqIHByb2Nlc3MsIENvcmVJUEM6OkNvbm5lY3Rpb246Oklk
ZW50aWZpZXIgY29ubmVjdGlvbklkZW50aWZpZXIsIFJ1bkxvb3AqIHJ1bkxvb3ApCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvbm5lY3Rpb25Ub1VJUHJvY2Vzcy5o
IGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb25uZWN0aW9uVG9VSVByb2Nlc3MuaApp
bmRleCAxZDljOTZjODBiNjA4ZDhlMjg4ZGJkMTA1NzZkYTJiNzcyNDNhOGM1Li40MmI5Y2Q3MTZi
MTI0NzMwZTJkODAwYWRjNTE0YzUwODQyZTUwMzFmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9XZWJQcm9jZXNzL1dlYkNvbm5lY3Rpb25Ub1VJUHJvY2Vzcy5oCisrKyBiL1NvdXJjZS9XZWJL
aXQyL1dlYlByb2Nlc3MvV2ViQ29ubmVjdGlvblRvVUlQcm9jZXNzLmgKQEAgLTM1LDE0ICszNSwx
NCBAQCBjbGFzcyBXZWJQcm9jZXNzOwogCiBjbGFzcyBXZWJDb25uZWN0aW9uVG9VSVByb2Nlc3Mg
OiBwdWJsaWMgV2ViQ29ubmVjdGlvbiwgQ29yZUlQQzo6Q29ubmVjdGlvbjo6Q2xpZW50IHsKIHB1
YmxpYzoKLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxXZWJDb25uZWN0aW9uVG9VSVByb2Nlc3M+IGNy
ZWF0ZShXZWJQcm9jZXNzKiwgQ29yZUlQQzo6Q29ubmVjdGlvbjo6SWRlbnRpZmllciwgUnVuTG9v
cCopOworICAgIHN0YXRpYyBQYXNzUmVmUHRyPFdlYkNvbm5lY3Rpb25Ub1VJUHJvY2Vzcz4gY3Jl
YXRlKFdlYlByb2Nlc3MqLCBDb3JlSVBDOjpDb25uZWN0aW9uOjpJZGVudGlmaWVyLCBXZWJDb3Jl
OjpSdW5Mb29wKik7CiAKICAgICBDb3JlSVBDOjpDb25uZWN0aW9uKiBjb25uZWN0aW9uKCkgeyBy
ZXR1cm4gbV9jb25uZWN0aW9uLmdldCgpOyB9CiAKICAgICB2b2lkIGludmFsaWRhdGUoKTsKIAog
cHJpdmF0ZToKLSAgICBXZWJDb25uZWN0aW9uVG9VSVByb2Nlc3MoV2ViUHJvY2VzcyosIENvcmVJ
UEM6OkNvbm5lY3Rpb246OklkZW50aWZpZXIsIFJ1bkxvb3AqKTsKKyAgICBXZWJDb25uZWN0aW9u
VG9VSVByb2Nlc3MoV2ViUHJvY2VzcyosIENvcmVJUEM6OkNvbm5lY3Rpb246OklkZW50aWZpZXIs
IFdlYkNvcmU6OlJ1bkxvb3AqKTsKIAogICAgIC8vIFdlYkNvbm5lY3Rpb24KICAgICB2aXJ0dWFs
IHZvaWQgcG9zdE1lc3NhZ2UoY29uc3QgU3RyaW5nJiwgQVBJT2JqZWN0Kik7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkdyYXBoaWNzTGF5
ZXIuaCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViR3JhcGhp
Y3NMYXllci5oCmluZGV4IGI3NTA5YjMzNGYyZjU0ZDlkMjdlM2ZjYmU1MjE5YTEwYWQ3MTZiYTMu
LmRiMDNkMDcxMWRhZTAyZGVkNzhlOTMxOGJlZjQ0ODA5ZjY4N2U0NDkgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViR3JhcGhpY3NMYXllci5o
CisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViR3JhcGhp
Y3NMYXllci5oCkBAIC0yNSw3ICsyNSw2IEBACiAjaW5jbHVkZSAiR3JhcGhpY3NMYXllci5oIgog
I2luY2x1ZGUgIkltYWdlLmgiCiAjaW5jbHVkZSAiSW50U2l6ZS5oIgotI2luY2x1ZGUgIlJ1bkxv
b3AuaCIKICNpbmNsdWRlICJTaGFyZWFibGVCaXRtYXAuaCIKICNpbmNsdWRlICJUaWxlZEJhY2tp
bmdTdG9yZS5oIgogI2luY2x1ZGUgIlRpbGVkQmFja2luZ1N0b3JlQ2xpZW50LmgiCkBAIC0zNCw2
ICszMyw3IEBACiAjaW5jbHVkZSAiVXBkYXRlSW5mby5oIgogI2luY2x1ZGUgIldlYkxheWVyVHJl
ZUluZm8uaCIKICNpbmNsdWRlICJXZWJQcm9jZXNzLmgiCisjaW5jbHVkZSA8V2ViQ29yZS9SdW5M
b29wLmg+CiAKICNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9EcmF3aW5nQXJlYUltcGwuaCBiL1Nv
dXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9EcmF3aW5nQXJlYUltcGwuaAppbmRleCAw
ZGFiZjYwM2ExMTI2OTRjMTUxN2RlNTAxZmI4MjQwNDIxMzQyYTliLi4yOGM4Y2U2OGNkMGU0NzM2
MGNkZTZmM2E2NTI2ZWU3NmQxNDE5NTllIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQ
cm9jZXNzL1dlYlBhZ2UvRHJhd2luZ0FyZWFJbXBsLmgKKysrIGIvU291cmNlL1dlYktpdDIvV2Vi
UHJvY2Vzcy9XZWJQYWdlL0RyYXdpbmdBcmVhSW1wbC5oCkBAIC0yOCw4ICsyOCw4IEBACiAKICNp
bmNsdWRlICJEcmF3aW5nQXJlYS5oIgogI2luY2x1ZGUgIkxheWVyVHJlZUhvc3QuaCIKLSNpbmNs
dWRlICJSdW5Mb29wLmgiCiAjaW5jbHVkZSA8V2ViQ29yZS9SZWdpb24uaD4KKyNpbmNsdWRlIDxX
ZWJDb3JlL1J1bkxvb3AuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogICAgIGNsYXNzIEdyYXBo
aWNzQ29udGV4dDsKQEAgLTEzMSw4ICsxMzEsOCBAQCBwcml2YXRlOgogICAgIGJvb2wgbV9pc1Bh
aW50aW5nU3VzcGVuZGVkOwogICAgIGJvb2wgbV9hbHdheXNVc2VDb21wb3NpdGluZzsKIAotICAg
IFJ1bkxvb3A6OlRpbWVyPERyYXdpbmdBcmVhSW1wbD4gbV9kaXNwbGF5VGltZXI7Ci0gICAgUnVu
TG9vcDo6VGltZXI8RHJhd2luZ0FyZWFJbXBsPiBtX2V4aXRDb21wb3NpdGluZ1RpbWVyOworICAg
IFdlYkNvcmU6OlJ1bkxvb3A6OlRpbWVyPERyYXdpbmdBcmVhSW1wbD4gbV9kaXNwbGF5VGltZXI7
CisgICAgV2ViQ29yZTo6UnVuTG9vcDo6VGltZXI8RHJhd2luZ0FyZWFJbXBsPiBtX2V4aXRDb21w
b3NpdGluZ1RpbWVyOwogCiAgICAgLy8gVGhlIGxheWVyIHRyZWUgaG9zdCB0aGF0IGhhbmRsZXMg
YWNjZWxlcmF0ZWQgY29tcG9zaXRpbmcuCiAgICAgUmVmUHRyPExheWVyVHJlZUhvc3Q+IG1fbGF5
ZXJUcmVlSG9zdDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFn
ZS9FdmVudERpc3BhdGNoZXIuY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdl
L0V2ZW50RGlzcGF0Y2hlci5jcHAKaW5kZXggMWE5MWQ4ZTNjMDIzNDg0MzliOWYzMmRjZjgzNDA2
MWYwMTM3ZGJmNS4uM2MyZTczZWNhNmMzMTA4MTk3ZjA5ZDMyYTJiZjcwMjBmZTkzOTI2ZCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL0V2ZW50RGlzcGF0Y2hl
ci5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL0V2ZW50RGlzcGF0
Y2hlci5jcHAKQEAgLTI2LDEzICsyNiwxMyBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1
ZGUgIkV2ZW50RGlzcGF0Y2hlci5oIgogCi0jaW5jbHVkZSAiUnVuTG9vcC5oIgogI2luY2x1ZGUg
IldlYkV2ZW50LmgiCiAjaW5jbHVkZSAiV2ViRXZlbnRDb252ZXJzaW9uLmgiCiAjaW5jbHVkZSAi
V2ViUGFnZS5oIgogI2luY2x1ZGUgIldlYlBhZ2VQcm94eU1lc3NhZ2VzLmgiCiAjaW5jbHVkZSAi
V2ViUHJvY2Vzcy5oIgogI2luY2x1ZGUgPFdlYkNvcmUvUGFnZS5oPgorI2luY2x1ZGUgPFdlYkNv
cmUvUnVuTG9vcC5oPgogI2luY2x1ZGUgPHd0Zi9NYWluVGhyZWFkLmg+CiAKICNpZiBFTkFCTEUo
VEhSRUFERURfU0NST0xMSU5HKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy9XZWJQYWdlL1BhZ2VPdmVybGF5LmggYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBh
Z2UvUGFnZU92ZXJsYXkuaAppbmRleCAxZjYxY2ViZTkyNjI0Mzk3ZDE5ZGJhYjJjOTgwMTcwNjg0
NWNmYmE2Li45NDk3Njc4MDZmMjc0MzNjMTQzNjNlNjEyMWViMzhmYzg3NjVhY2QwIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvUGFnZU92ZXJsYXkuaAorKysg
Yi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvUGFnZU92ZXJsYXkuaApAQCAtMjcs
NyArMjcsNyBAQAogI2RlZmluZSBQYWdlT3ZlcmxheV9oCiAKICNpbmNsdWRlICJBUElPYmplY3Qu
aCIKLSNpbmNsdWRlICJSdW5Mb29wLmgiCisjaW5jbHVkZSA8V2ViQ29yZS9SdW5Mb29wLmg+CiAj
aW5jbHVkZSA8d3RmL1Bhc3NSZWZQdHIuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewpAQCAtODYs
NyArODYsNyBAQCBwcml2YXRlOgogICAgIENsaWVudCogbV9jbGllbnQ7CiAgICAgV2ViUGFnZSog
bV93ZWJQYWdlOwogCi0gICAgUnVuTG9vcDo6VGltZXI8UGFnZU92ZXJsYXk+IG1fZmFkZUFuaW1h
dGlvblRpbWVyOworICAgIFdlYkNvcmU6OlJ1bkxvb3A6OlRpbWVyPFBhZ2VPdmVybGF5PiBtX2Zh
ZGVBbmltYXRpb25UaW1lcjsKICAgICBkb3VibGUgbV9mYWRlQW5pbWF0aW9uU3RhcnRUaW1lOwog
ICAgIGRvdWJsZSBtX2ZhZGVBbmltYXRpb25EdXJhdGlvbjsKIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwIGIvU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCmluZGV4IGExYzNjMmMwMDMzNzA5NDdiMzA4
MjBkMDljYTMwYTgzOTdjMmZhNDAuLjU0NTMwZjE5OGEwNTg1YmI0YjQ5YWI2MjEyZDIwNGFkZTlk
MTcxNTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQ
YWdlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5j
cHAKQEAgLTQwLDcgKzQwLDYgQEAKICNpbmNsdWRlICJQbHVnaW5Qcm94eS5oIgogI2luY2x1ZGUg
IlBsdWdpblZpZXcuaCIKICNpbmNsdWRlICJQcmludEluZm8uaCIKLSNpbmNsdWRlICJSdW5Mb29w
LmgiCiAjaW5jbHVkZSAiU2Vzc2lvblN0YXRlLmgiCiAjaW5jbHVkZSAiU2hhcmVhYmxlQml0bWFw
LmgiCiAjaW5jbHVkZSAiV2ViQmFja0ZvcndhcmRMaXN0LmgiCkBAIC0xMDQsNiArMTAzLDcgQEAK
ICNpbmNsdWRlIDxXZWJDb3JlL1JlbmRlclZpZXcuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1JlcGxh
Y2VTZWxlY3Rpb25Db21tYW5kLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9SZXNvdXJjZVJlcXVlc3Qu
aD4KKyNpbmNsdWRlIDxXZWJDb3JlL1J1bkxvb3AuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1NjaGVt
ZVJlZ2lzdHJ5Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9TY3JpcHRWYWx1ZS5oPgogI2luY2x1ZGUg
PFdlYkNvcmUvU2VyaWFsaXplZFNjcmlwdFZhbHVlLmg+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oIGIvU291cmNlL1dlYktpdDIvV2ViUHJv
Y2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaAppbmRleCA0MDA3MmNmYmYxNTYwY2QwYmQ1OGJjODRkMTE2
YjJmMjgxMjFkNDY4Li44NmVhMGQ3NWEyMzk4MDc3NGFlNTU3NmMxM2Q4YTdlZTE5NmU1ZjlkIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oCisr
KyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmgKQEAgLTY3Nyw3
ICs2NzcsNyBAQCBwcml2YXRlOgogICAgIFJlZlB0cjxXZWJDb3JlOjpOb2RlPiBtX2dlc3R1cmVU
YXJnZXROb2RlOwogI2VuZGlmCiAgICAgCi0gICAgUnVuTG9vcDo6VGltZXI8V2ViUGFnZT4gbV9z
ZXRDYW5TdGFydE1lZGlhVGltZXI7CisgICAgV2ViQ29yZTo6UnVuTG9vcDo6VGltZXI8V2ViUGFn
ZT4gbV9zZXRDYW5TdGFydE1lZGlhVGltZXI7CiAKICAgICBIYXNoTWFwPHVpbnQ2NF90LCBSZWZQ
dHI8V2ViVW5kb1N0ZXA+ID4gbV91bmRvU3RlcE1hcDsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdDIvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nl
c3MvV2ViUHJvY2Vzcy5jcHAKaW5kZXggMzliM2JjOGU1YjdiYjg3YTZmNjg0NDc4YTFiZmU4OWIy
ZDQzNGNkZC4uYWI3MGIyYTFmYjdmMzIxM2JhZWNmYzhhNWRmMzNlMDMxM2YxNGRlYiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuY3BwCkBAIC0zMSw3ICszMSw2IEBACiAj
aW5jbHVkZSAiSW5qZWN0ZWRCdW5kbGUuaCIKICNpbmNsdWRlICJJbmplY3RlZEJ1bmRsZU1lc3Nh
Z2VLaW5kcy5oIgogI2luY2x1ZGUgIkluamVjdGVkQnVuZGxlVXNlck1lc3NhZ2VDb2RlcnMuaCIK
LSNpbmNsdWRlICJSdW5Mb29wLmgiCiAjaW5jbHVkZSAiU2FuZGJveEV4dGVuc2lvbi5oIgogI2lu
Y2x1ZGUgIlN0YXRpc3RpY3NEYXRhLmgiCiAjaW5jbHVkZSAiV2ViQXBwbGljYXRpb25DYWNoZU1h
bmFnZXIuaCIKQEAgLTcyLDYgKzcxLDcgQEAKICNpbmNsdWRlIDxXZWJDb3JlL1BhZ2VDYWNoZS5o
PgogI2luY2x1ZGUgPFdlYkNvcmUvUGFnZUdyb3VwLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9SZXNv
dXJjZUhhbmRsZS5oPgorI2luY2x1ZGUgPFdlYkNvcmUvUnVuTG9vcC5oPgogI2luY2x1ZGUgPFdl
YkNvcmUvU2NoZW1lUmVnaXN0cnkuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1NlY3VyaXR5T3JpZ2lu
Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9TZXR0aW5ncy5oPgpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdDIvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmggYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNz
L1dlYlByb2Nlc3MuaAppbmRleCAxZTUwMjg0YzBiYmViYzgyOWY2MTcyOWJkZmEwYmU4MDhlYWRk
NmJjLi41OGYzZDMwMjUyOTMxZDY4Y2M1OGIwZjk2ODExN2ZhYmI0NzdhZjRjIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuaAorKysgYi9Tb3VyY2UvV2Vi
S2l0Mi9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuaApAQCAtODIsMTAgKzgyLDEwIEBAIGNsYXNzIFdl
YlByb2Nlc3MgOiBwdWJsaWMgQ2hpbGRQcm9jZXNzLCBwcml2YXRlIENvcmVJUEM6OkNvbm5lY3Rp
b246OlF1ZXVlQ2xpZW50CiBwdWJsaWM6CiAgICAgc3RhdGljIFdlYlByb2Nlc3MmIHNoYXJlZCgp
OwogCi0gICAgdm9pZCBpbml0aWFsaXplKENvcmVJUEM6OkNvbm5lY3Rpb246OklkZW50aWZpZXIs
IFJ1bkxvb3AqKTsKKyAgICB2b2lkIGluaXRpYWxpemUoQ29yZUlQQzo6Q29ubmVjdGlvbjo6SWRl
bnRpZmllciwgV2ViQ29yZTo6UnVuTG9vcCopOwogCiAgICAgQ29yZUlQQzo6Q29ubmVjdGlvbiog
Y29ubmVjdGlvbigpIGNvbnN0IHsgcmV0dXJuIG1fY29ubmVjdGlvbi0+Y29ubmVjdGlvbigpOyB9
Ci0gICAgUnVuTG9vcCogcnVuTG9vcCgpIGNvbnN0IHsgcmV0dXJuIG1fcnVuTG9vcDsgfQorICAg
IFdlYkNvcmU6OlJ1bkxvb3AqIHJ1bkxvb3AoKSBjb25zdCB7IHJldHVybiBtX3J1bkxvb3A7IH0K
IAogICAgIFdlYkNvbm5lY3Rpb25Ub1VJUHJvY2Vzcyogd2ViQ29ubmVjdGlvblRvVUlQcm9jZXNz
KCkgY29uc3QgeyByZXR1cm4gbV9jb25uZWN0aW9uLmdldCgpOyB9CiAKQEAgLTI0MSw3ICsyNDEs
NyBAQCBwcml2YXRlOgogCiAgICAgYm9vbCBtX2luRGlkQ2xvc2U7CiAKLSAgICBSdW5Mb29wKiBt
X3J1bkxvb3A7CisgICAgV2ViQ29yZTo6UnVuTG9vcCogbV9ydW5Mb29wOwogCiAgICAgLy8gRklY
TUU6IFRoZSB2aXNpdGVkIGxpbmsgdGFibGUgc2hvdWxkIG5vdCBiZSBwZXIgcHJvY2Vzcy4KICAg
ICBWaXNpdGVkTGlua1RhYmxlIG1fdmlzaXRlZExpbmtUYWJsZTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQyL1dlYlByb2Nlc3MvbWFjL1dlYlByb2Nlc3NNYWluTWFjLm1tIGIvU291cmNlL1dl
YktpdDIvV2ViUHJvY2Vzcy9tYWMvV2ViUHJvY2Vzc01haW5NYWMubW0KaW5kZXggYjVhM2ZlMDdk
MDY3ODQzYmU1YjNjMzUwYTE0YTA5MGY5OWMxNWJhMC4uNGUyYjE1NTMyMjEwYzAwNDRmMmI5ODgx
MzNmN2JiZGRmNmM4NTU2OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9t
YWMvV2ViUHJvY2Vzc01haW5NYWMubW0KKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9t
YWMvV2ViUHJvY2Vzc01haW5NYWMubW0KQEAgLTI5LDkgKzI5LDkgQEAKICNpbXBvcnQgIkNvbW1h
bmRMaW5lLmgiCiAjaW1wb3J0ICJFbnZpcm9ubWVudFV0aWxpdGllcy5oIgogI2ltcG9ydCAiRW52
aXJvbm1lbnRWYXJpYWJsZXMuaCIKLSNpbXBvcnQgIlJ1bkxvb3AuaCIKICNpbXBvcnQgIldlYlBy
b2Nlc3MuaCIKICNpbXBvcnQgIldlYlN5c3RlbUludGVyZmFjZS5oIgorI2ltcG9ydCA8V2ViQ29y
ZS9SdW5Mb29wLmg+CiAjaW1wb3J0IDxXZWJLaXQyL1dLVmlldy5oPgogI2ltcG9ydCA8V2ViS2l0
U3lzdGVtSW50ZXJmYWNlLmg+CiAjaW1wb3J0IDxtYWNoL21hY2hfZXJyb3IuaD4KQEAgLTQzLDgg
KzQzLDggQEAKICNpbXBvcnQgPHN0ZGlvLmg+CiAjaW1wb3J0IDxzeXNleGl0cy5oPgogI2ltcG9y
dCA8dW5pc3RkLmg+Ci0jaW1wb3J0IDx3dGYvUmV0YWluUHRyLmg+CiAjaW1wb3J0IDx3dGYvTWFp
blRocmVhZC5oPgorI2ltcG9ydCA8d3RmL1JldGFpblB0ci5oPgogI2ltcG9ydCA8d3RmL3RleHQv
Q1N0cmluZy5oPgogI2ltcG9ydCA8d3RmL3RleHQvU3RyaW5nQnVpbGRlci5oPgogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL3F0L1dlYlByb2Nlc3NNYWluUXQuY3BwIGIv
U291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9xdC9XZWJQcm9jZXNzTWFpblF0LmNwcAppbmRleCBj
MzhlMzgyNDFkMjcyNTlkNDY5YzljM2FlNWNhMGMwYTAxN2U3ZGEzLi45MWU3YWU0Mzc4ZjBjNDFk
OGNmODEwMDZkNjEyN2E4ODU4MzRlZDViIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQ
cm9jZXNzL3F0L1dlYlByb2Nlc3NNYWluUXQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlBy
b2Nlc3MvcXQvV2ViUHJvY2Vzc01haW5RdC5jcHAKQEAgLTI1LDkgKzI1LDEwIEBACiAgKi8KIAog
I2luY2x1ZGUgImNvbmZpZy5oIgotI2luY2x1ZGUgIlJ1bkxvb3AuaCIKLSNpbmNsdWRlIDxydW50
aW1lL0luaXRpYWxpemVUaHJlYWRpbmcuaD4KKwogI2luY2x1ZGUgIldlYlByb2Nlc3MuaCIKKyNp
bmNsdWRlIDxXZWJDb3JlL1J1bkxvb3AuaD4KKyNpbmNsdWRlIDxydW50aW1lL0luaXRpYWxpemVU
aHJlYWRpbmcuaD4KICNpbmNsdWRlIDx3dGYvTWFpblRocmVhZC5oPgogCiAjaW5jbHVkZSA8UUFw
cGxpY2F0aW9uPgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy93aW4vV2Vi
UHJvY2Vzc01haW5XaW4uY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy93aW4vV2ViUHJv
Y2Vzc01haW5XaW4uY3BwCmluZGV4IDVlZGVlZmU1Y2RkYjVhZjJkYzQ0NzhhZjQ0OWFlNmJhZmQz
ODQ3YjEuLjJhNzA2ODVlNDg1ZTA2MzViMTUxNjhmYTU1MGNkYzcwYjllYTI1MWUgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mvd2luL1dlYlByb2Nlc3NNYWluV2luLmNwcAor
KysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL3dpbi9XZWJQcm9jZXNzTWFpbldpbi5jcHAK
QEAgLTI3LDE0ICsyNywxNiBAQAogI2luY2x1ZGUgIldlYlByb2Nlc3NNYWluLmgiCiAKICNpbmNs
dWRlICJDb21tYW5kTGluZS5oIgotI2luY2x1ZGUgIlJ1bkxvb3AuaCIKICNpbmNsdWRlICJXZWJQ
cm9jZXNzLmgiCisjaW5jbHVkZSA8V2ViQ29yZS9SdW5Mb29wLmg+CiAjaW5jbHVkZSA8V2ViQ29y
ZS9Tb2Z0TGlua2luZy5oPgogI2luY2x1ZGUgPHJ1bnRpbWUvSW5pdGlhbGl6ZVRocmVhZGluZy5o
PgogI2luY2x1ZGUgPHd0Zi9NYWluVGhyZWFkLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvU3RyaW5n
SGFzaC5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgogCit1c2luZyBuYW1lc3Bh
Y2UgV2ViQ29yZTsKKwogbmFtZXNwYWNlIFdlYktpdCB7CiAKICNpZiBVU0UoU0FGQVJJX1RIRU1F
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvd2luL1dlYktpdDIudmNwcm9qIGIvU291cmNl
L1dlYktpdDIvd2luL1dlYktpdDIudmNwcm9qCmluZGV4IDc1MjI3OGRkYzAxNWNjZjQ0NWJhMWM3
YmVjNjBmNTQxODA1NDdhNmUuLjE2N2JhM2Q5MTI3Yjg3ZGQwNTU0N2VkN2FiNGVmNzExNjk5MTIz
NTIgMTAwNzU1Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL3dpbi9XZWJLaXQyLnZjcHJvagorKysgYi9T
b3VyY2UvV2ViS2l0Mi93aW4vV2ViS2l0Mi52Y3Byb2oKQEAgLTM4ODcsMTQgKzM4ODcsNiBAQAog
CQkJCT4KIAkJCTwvRmlsZT4KIAkJCTxGaWxlCi0JCQkJUmVsYXRpdmVQYXRoPSIuLlxQbGF0Zm9y
bVxSdW5Mb29wLmNwcCIKLQkJCQk+Ci0JCQk8L0ZpbGU+Ci0JCQk8RmlsZQotCQkJCVJlbGF0aXZl
UGF0aD0iLi5cUGxhdGZvcm1cUnVuTG9vcC5oIgotCQkJCT4KLQkJCTwvRmlsZT4KLQkJCTxGaWxl
CiAJCQkJUmVsYXRpdmVQYXRoPSIuLlxQbGF0Zm9ybVxTaGFyZWRNZW1vcnkuaCIKIAkJCQk+CiAJ
CQk8L0ZpbGU+CkBAIC0zOTQyLDEwICszOTM0LDYgQEAKIAkJCQkJPgogCQkJCTwvRmlsZT4KIAkJ
CQk8RmlsZQotCQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXFBsYXRmb3JtXHdpblxSdW5Mb29wV2luLmNw
cCIKLQkJCQkJPgotCQkJCTwvRmlsZT4KLQkJCQk8RmlsZQogCQkJCQlSZWxhdGl2ZVBhdGg9Ii4u
XFBsYXRmb3JtXHdpblxTaGFyZWRNZW1vcnlXaW4uY3BwIgogCQkJCQk+CiAJCQkJPC9GaWxlPgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>122984</attachid>
            <date>2012-01-18 13:46:48 -0800</date>
            <delta_ts>2012-01-18 14:05:23 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-76471-20120118134656.patch</filename>
            <type>text/plain</type>
            <size>131025</size>
            <attacher name="Sam Weinig">sam</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTA1MjI3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggM2FjYzFlNzRjN2QzMjRm
ZTBjNDM1MjVmZWViZTk4ZjZjZDliZWNmMy4uYzgyNDI2ZDI1Nzk0ZGE3YTIyMDk5ZjQxNzYwMTNi
MjUzNTQ4ZTY4MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDkxIEBACisyMDEyLTAxLTE3ICBTYW0g
V2VpbmlnICA8c2FtQHdlYmtpdC5vcmc+CisKKyAgICAgICAgTW92ZSBSdW5Mb29wIHRvIFdlYkNv
cmUvcGxhdGZvcm0KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTc2NDcxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgTm8gbmV3IHRlc3RzLiAoT09QUyEpCisKKyAgICAgICAgKiBHTlVtYWtlZmlsZS5saXN0LmFt
OgorICAgICAgICAqIFRhcmdldC5wcmk6CisgICAgICAgICogV2ViQ29yZS5leHAuaW46CisgICAg
ICAgICogV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2o6CisgICAgICAgICogV2ViQ29yZS54
Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIHBsYXRmb3JtL1J1bkxvb3AuY3Bw
OiBSZW5hbWVkIGZyb20gU291cmNlL1dlYktpdDIvUGxhdGZvcm0vUnVuTG9vcC5jcHAuCisgICAg
ICAgIChXZWJDb3JlOjpSdW5Mb29wOjppbml0aWFsaXplTWFpblJ1bkxvb3ApOgorICAgICAgICAo
V2ViQ29yZTo6UnVuTG9vcDo6Y3VycmVudCk6CisgICAgICAgIChXZWJDb3JlOjpSdW5Mb29wOjpt
YWluKToKKyAgICAgICAgKFdlYkNvcmU6OlJ1bkxvb3A6OnBlcmZvcm1Xb3JrKToKKyAgICAgICAg
KFdlYkNvcmU6OlJ1bkxvb3A6OmRpc3BhdGNoKToKKyAgICAgICAgKiBwbGF0Zm9ybS9SdW5Mb29w
Lmg6IFJlbmFtZWQgZnJvbSBTb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9SdW5Mb29wLmguCisgICAg
ICAgIChXZWJDb3JlOjpSdW5Mb29wOjpUaW1lckJhc2U6OnN0YXJ0UmVwZWF0aW5nKToKKyAgICAg
ICAgKFdlYkNvcmU6OlJ1bkxvb3A6OlRpbWVyQmFzZTo6c3RhcnRPbmVTaG90KToKKyAgICAgICAg
KFdlYkNvcmU6OlJ1bkxvb3A6OlRpbWVyQmFzZTo6aXNSZXBlYXRpbmcpOgorICAgICAgICAoV2Vi
Q29yZTo6UnVuTG9vcDo6VGltZXI6OlRpbWVyKToKKyAgICAgICAgKFdlYkNvcmU6OlJ1bkxvb3A6
OlRpbWVyOjpmaXJlZCk6CisgICAgICAgICogcGxhdGZvcm0vZ3RrL1J1bkxvb3BHdGsuY3BwOiBS
ZW5hbWVkIGZyb20gU291cmNlL1dlYktpdDIvUGxhdGZvcm0vZ3RrL1J1bkxvb3BHdGsuY3BwLgor
ICAgICAgICAoUnVuTG9vcDo6UnVuTG9vcCk6CisgICAgICAgIChSdW5Mb29wOjp+UnVuTG9vcCk6
CisgICAgICAgIChSdW5Mb29wOjpydW4pOgorICAgICAgICAoUnVuTG9vcDo6bWFpbkxvb3ApOgor
ICAgICAgICAoUnVuTG9vcDo6c3RvcCk6CisgICAgICAgIChSdW5Mb29wOjpxdWV1ZVdvcmspOgor
ICAgICAgICAoUnVuTG9vcDo6d2FrZVVwKToKKyAgICAgICAgKFJ1bkxvb3A6OlRpbWVyQmFzZTo6
VGltZXJCYXNlKToKKyAgICAgICAgKFJ1bkxvb3A6OlRpbWVyQmFzZTo6flRpbWVyQmFzZSk6Cisg
ICAgICAgIChSdW5Mb29wOjpUaW1lckJhc2U6OmNsZWFyVGltZXJTb3VyY2UpOgorICAgICAgICAo
UnVuTG9vcDo6VGltZXJCYXNlOjp0aW1lckZpcmVkQ2FsbGJhY2spOgorICAgICAgICAoUnVuTG9v
cDo6VGltZXJCYXNlOjpzdGFydCk6CisgICAgICAgIChSdW5Mb29wOjpUaW1lckJhc2U6OnN0b3Ap
OgorICAgICAgICAoUnVuTG9vcDo6VGltZXJCYXNlOjppc0FjdGl2ZSk6CisgICAgICAgICogcGxh
dGZvcm0vbWFjL1J1bkxvb3BNYWMubW06IFJlbmFtZWQgZnJvbSBTb3VyY2UvV2ViS2l0Mi9QbGF0
Zm9ybS9tYWMvUnVuTG9vcE1hYy5tbS4KKyAgICAgICAgKFdlYkNvcmU6OlJ1bkxvb3A6OnBlcmZv
cm1Xb3JrKToKKyAgICAgICAgKFdlYkNvcmU6OlJ1bkxvb3A6OlJ1bkxvb3ApOgorICAgICAgICAo
V2ViQ29yZTo6UnVuTG9vcDo6flJ1bkxvb3ApOgorICAgICAgICAoV2ViQ29yZTo6UnVuTG9vcDo6
cnVuKToKKyAgICAgICAgKFdlYkNvcmU6OlJ1bkxvb3A6OnJ1bkZvckR1cmF0aW9uKToKKyAgICAg
ICAgKFdlYkNvcmU6OlJ1bkxvb3A6OnN0b3ApOgorICAgICAgICAoV2ViQ29yZTo6UnVuTG9vcDo6
d2FrZVVwKToKKyAgICAgICAgKFdlYkNvcmU6OlJ1bkxvb3A6OlRpbWVyQmFzZTo6dGltZXJGaXJl
ZCk6CisgICAgICAgIChXZWJDb3JlOjpSdW5Mb29wOjpUaW1lckJhc2U6OlRpbWVyQmFzZSk6Cisg
ICAgICAgIChXZWJDb3JlOjpSdW5Mb29wOjpUaW1lckJhc2U6On5UaW1lckJhc2UpOgorICAgICAg
ICAoV2ViQ29yZTo6UnVuTG9vcDo6VGltZXJCYXNlOjpzdGFydCk6CisgICAgICAgIChXZWJDb3Jl
OjpSdW5Mb29wOjpUaW1lckJhc2U6OnN0b3ApOgorICAgICAgICAoV2ViQ29yZTo6UnVuTG9vcDo6
VGltZXJCYXNlOjppc0FjdGl2ZSk6CisgICAgICAgICogcGxhdGZvcm0vcXQvUnVuTG9vcFF0LmNw
cDogUmVuYW1lZCBmcm9tIFNvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL3F0L1J1bkxvb3BRdC5jcHAu
CisgICAgICAgIChSdW5Mb29wOjpUaW1lck9iamVjdDo6VGltZXJPYmplY3QpOgorICAgICAgICAo
UnVuTG9vcDo6VGltZXJPYmplY3Q6OnBlcmZvcm1Xb3JrKToKKyAgICAgICAgKFJ1bkxvb3A6OlRp
bWVyT2JqZWN0Ojp3YWtlVXApOgorICAgICAgICAoUnVuTG9vcDo6VGltZXJPYmplY3Q6OnRpbWVy
RXZlbnQpOgorICAgICAgICAoUnVuTG9vcDo6cnVuKToKKyAgICAgICAgKFJ1bkxvb3A6OnN0b3Ap
OgorICAgICAgICAoUnVuTG9vcDo6UnVuTG9vcCk6CisgICAgICAgIChSdW5Mb29wOjp+UnVuTG9v
cCk6CisgICAgICAgIChSdW5Mb29wOjp3YWtlVXApOgorICAgICAgICAoUnVuTG9vcDo6VGltZXJC
YXNlOjp0aW1lckZpcmVkKToKKyAgICAgICAgKFJ1bkxvb3A6OlRpbWVyQmFzZTo6VGltZXJCYXNl
KToKKyAgICAgICAgKFJ1bkxvb3A6OlRpbWVyQmFzZTo6flRpbWVyQmFzZSk6CisgICAgICAgIChS
dW5Mb29wOjpUaW1lckJhc2U6OnN0YXJ0KToKKyAgICAgICAgKFJ1bkxvb3A6OlRpbWVyQmFzZTo6
c3RvcCk6CisgICAgICAgIChSdW5Mb29wOjpUaW1lckJhc2U6OmlzQWN0aXZlKToKKyAgICAgICAg
KiBwbGF0Zm9ybS93aW4vUnVuTG9vcFdpbi5jcHA6IFJlbmFtZWQgZnJvbSBTb3VyY2UvV2ViS2l0
Mi9QbGF0Zm9ybS93aW4vUnVuTG9vcFdpbi5jcHAuCisgICAgICAgIChSdW5Mb29wOjpSdW5Mb29w
V25kUHJvYyk6CisgICAgICAgIChSdW5Mb29wOjp3bmRQcm9jKToKKyAgICAgICAgKFJ1bkxvb3A6
OnJ1bik6CisgICAgICAgIChSdW5Mb29wOjpzdG9wKToKKyAgICAgICAgKFJ1bkxvb3A6OnJlZ2lz
dGVyUnVuTG9vcE1lc3NhZ2VXaW5kb3dDbGFzcyk6CisgICAgICAgIChSdW5Mb29wOjpSdW5Mb29w
KToKKyAgICAgICAgKFJ1bkxvb3A6On5SdW5Mb29wKToKKyAgICAgICAgKFJ1bkxvb3A6Ondha2VV
cCk6CisgICAgICAgIChSdW5Mb29wOjpUaW1lckJhc2U6OnRpbWVyRmlyZWQpOgorICAgICAgICAo
Z2VuZXJhdGVUaW1lcklEKToKKyAgICAgICAgKFJ1bkxvb3A6OlRpbWVyQmFzZTo6VGltZXJCYXNl
KToKKyAgICAgICAgKFJ1bkxvb3A6OlRpbWVyQmFzZTo6flRpbWVyQmFzZSk6CisgICAgICAgIChS
dW5Mb29wOjpUaW1lckJhc2U6OnN0YXJ0KToKKyAgICAgICAgKFJ1bkxvb3A6OlRpbWVyQmFzZTo6
c3RvcCk6CisgICAgICAgIChSdW5Mb29wOjpUaW1lckJhc2U6OmlzQWN0aXZlKToKKwogMjAxMi0w
MS0xNyAgTmF0ZSBDaGFwaW4gIDxqYXBoZXRAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIEVuc3Vy
ZSB3ZSBkb24ndCBjYW5jZWwgcmV2YWxpZGF0aW9uIG9mIGEgQ2FjaGVkUmVzb3VyY2UKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxv
ZwppbmRleCAyYzQ4MWQ2ZjQwZWY2YWE2M2FmMWQ0ZTUwMDI3ZGJhNGZlNWY4M2QyLi5kNDBkNzQ3
OGJiNTc2NTkyYzgxY2NjYjNlZjM5OTNmNTZhYmQ4N2FlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0Mi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0xLDUgKzEs
NjcgQEAKIDIwMTItMDEtMTcgIFNhbSBXZWluaWcgIDxzYW1Ad2Via2l0Lm9yZz4KIAorICAgICAg
ICBNb3ZlIFJ1bkxvb3AgdG8gV2ViQ29yZS9wbGF0Zm9ybQorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzY0NzEKKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIEdOVW1ha2VmaWxlLmFtOgorICAgICAgICAqIFBs
YXRmb3JtL0NvcmVJUEMvQ29ubmVjdGlvbi5jcHA6CisgICAgICAgICogUGxhdGZvcm0vQ29yZUlQ
Qy9Db25uZWN0aW9uLmg6CisgICAgICAgICogUGxhdGZvcm0vQ29yZUlQQy9tYWMvQ29ubmVjdGlv
bk1hYy5jcHA6CisgICAgICAgICogUGx1Z2luUHJvY2Vzcy9QbHVnaW5Db250cm9sbGVyUHJveHku
aDoKKyAgICAgICAgKiBQbHVnaW5Qcm9jZXNzL1BsdWdpblByb2Nlc3MuY3BwOgorICAgICAgICAq
IFBsdWdpblByb2Nlc3MvUGx1Z2luUHJvY2Vzcy5oOgorICAgICAgICAqIFBsdWdpblByb2Nlc3Mv
V2ViUHJvY2Vzc0Nvbm5lY3Rpb24uY3BwOgorICAgICAgICAqIFBsdWdpblByb2Nlc3MvbWFjL1Bs
dWdpblByb2Nlc3NNYWluTWFjLm1tOgorICAgICAgICAqIFBsdWdpblByb2Nlc3MvcXQvUGx1Z2lu
UHJvY2Vzc01haW5RdC5jcHA6CisgICAgICAgICogU2hhcmVkL0NoaWxkUHJvY2Vzcy5jcHA6Cisg
ICAgICAgICogU2hhcmVkL0NoaWxkUHJvY2Vzcy5oOgorICAgICAgICAqIFRhcmdldC5wcmk6Cisg
ICAgICAgICogVUlQcm9jZXNzL0FQSS9tYWMvRmluZEluZGljYXRvcldpbmRvdy5oOgorICAgICAg
ICAqIFVJUHJvY2Vzcy9BUEkvbWFjL1dLVmlldy5tbToKKyAgICAgICAgKiBVSVByb2Nlc3MvRHJh
d2luZ0FyZWFQcm94eUltcGwuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvTGF1bmNoZXIvVGhyZWFk
TGF1bmNoZXIuY3BwOgorICAgICAgICAqIFVJUHJvY2Vzcy9MYXVuY2hlci9ndGsvUHJvY2Vzc0xh
dW5jaGVyR3RrLmNwcDoKKyAgICAgICAgKiBVSVByb2Nlc3MvTGF1bmNoZXIvbWFjL1Byb2Nlc3NM
YXVuY2hlck1hYy5tbToKKyAgICAgICAgKiBVSVByb2Nlc3MvTGF1bmNoZXIvbWFjL1RocmVhZExh
dW5jaGVyTWFjLm1tOgorICAgICAgICAqIFVJUHJvY2Vzcy9MYXVuY2hlci9xdC9Qcm9jZXNzTGF1
bmNoZXJRdC5jcHA6CisgICAgICAgICogVUlQcm9jZXNzL0xhdW5jaGVyL3F0L1RocmVhZExhdW5j
aGVyUXQuY3BwOgorICAgICAgICAqIFVJUHJvY2Vzcy9MYXVuY2hlci93aW4vUHJvY2Vzc0xhdW5j
aGVyV2luLmNwcDoKKyAgICAgICAgKiBVSVByb2Nlc3MvTGF1bmNoZXIvd2luL1RocmVhZExhdW5j
aGVyV2luLmNwcDoKKyAgICAgICAgKiBVSVByb2Nlc3MvTGF5ZXJUcmVlSG9zdFByb3h5Lmg6Cisg
ICAgICAgICogVUlQcm9jZXNzL1BsdWdpbnMvUGx1Z2luUHJvY2Vzc1Byb3h5LmNwcDoKKyAgICAg
ICAgKiBVSVByb2Nlc3MvUmVzcG9uc2l2ZW5lc3NUaW1lci5jcHA6CisgICAgICAgICogVUlQcm9j
ZXNzL1Jlc3BvbnNpdmVuZXNzVGltZXIuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvVGlsZWREcmF3
aW5nQXJlYVByb3h5Lmg6CisgICAgICAgICogVUlQcm9jZXNzL1Zpc2l0ZWRMaW5rUHJvdmlkZXIu
aDoKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5jcHA6Cisg
ICAgICAgICogVUlQcm9jZXNzL1dlYkNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuaDoKKyAgICAgICAg
KiBVSVByb2Nlc3MvV2ViQ29udGV4dC5jcHA6CisgICAgICAgICogVUlQcm9jZXNzL3dpbi9XZWJW
aWV3LmNwcDoKKyAgICAgICAgKiBXZWJLaXQyLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6Cisg
ICAgICAgICogV2ViUHJvY2Vzcy9QbHVnaW5zL05ldHNjYXBlL05QUnVudGltZU9iamVjdE1hcC5o
OgorICAgICAgICAqIFdlYlByb2Nlc3MvUGx1Z2lucy9OZXRzY2FwZS9OZXRzY2FwZVBsdWdpbi5o
OgorICAgICAgICAqIFdlYlByb2Nlc3MvUGx1Z2lucy9OZXRzY2FwZS9OZXRzY2FwZVBsdWdpblN0
cmVhbS5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvUGx1Z2lucy9QbHVnaW5WaWV3Lmg6CisgICAg
ICAgICogV2ViUHJvY2Vzcy9XZWJDb25uZWN0aW9uVG9VSVByb2Nlc3MuY3BwOgorICAgICAgICAq
IFdlYlByb2Nlc3MvV2ViQ29ubmVjdGlvblRvVUlQcm9jZXNzLmg6CisgICAgICAgICogV2ViUHJv
Y2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJHcmFwaGljc0xheWVyLmg6CisgICAgICAgICogV2ViUHJv
Y2Vzcy9XZWJQYWdlL0RyYXdpbmdBcmVhSW1wbC5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2Vi
UGFnZS9FdmVudERpc3BhdGNoZXIuY3BwOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9Q
YWdlT3ZlcmxheS5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcDoK
KyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oOgorICAgICAgICAqIFdlYlBy
b2Nlc3MvV2ViUHJvY2Vzcy5jcHA6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmg6
CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3M6OnJ1bkxvb3ApOgorICAgICAgICAqIFdlYlBy
b2Nlc3MvbWFjL1dlYlByb2Nlc3NNYWluTWFjLm1tOgorICAgICAgICAqIFdlYlByb2Nlc3MvcXQv
V2ViUHJvY2Vzc01haW5RdC5jcHA6CisgICAgICAgICogV2ViUHJvY2Vzcy93aW4vV2ViUHJvY2Vz
c01haW5XaW4uY3BwOgorICAgICAgICAqIHdpbi9XZWJLaXQyLnZjcHJvajoKKworMjAxMi0wMS0x
NyAgU2FtIFdlaW5pZyAgPHNhbUB3ZWJraXQub3JnPgorCiAgICAgICAgIFJlbmFtZSBxdWlja0xv
b2tQcmV2aWV3SXRlbXNBdFdpbmRvd0xvY2F0aW9uOiB0byBxdWlja0xvb2tXaXRoRXZlbnQ6CiAg
ICAgICAgIDxyZGFyOi8vcHJvYmxlbS8xMDY4ODkxMz4KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbSBiL1NvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxp
c3QuYW0KaW5kZXggODQxZWY3MTlkMTU5NDE5NjM3MTdkNWRmYWU0ZWM4MmU2Yjg2OTY2ZC4uYmMy
NmUyOTU0MWZhMDE5ZmZkYzA2YzY0NDEwNWEyOWM2MDVhNWNiMCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtl
ZmlsZS5saXN0LmFtCkBAIC0zMjIzLDYgKzMyMjMsOCBAQCB3ZWJjb3JlX3NvdXJjZXMgKz0gXAog
CVNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1BvcHVwTWVudVN0eWxlLmggXAogCVNvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL1B1cmdlYWJsZUJ1ZmZlci5oIFwKIAlTb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9QdXJnZVByaW9yaXR5LmggXAorCVNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1J1bkxvb3AuY3Bw
IFwKKwlTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9SdW5Mb29wLmggXAogCVNvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL1J1bnRpbWVBcHBsaWNhdGlvbkNoZWNrcy5jcHAgXAogCVNvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL1J1bnRpbWVBcHBsaWNhdGlvbkNoZWNrcy5oIFwKIAlTb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9TY2hlbWVSZWdpc3RyeS5jcHAgXApAQCAtNDQ5OCw2ICs0NTAwLDcgQEAgd2ViY29y
ZWd0a19zb3VyY2VzICs9IFwKIAlTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ndGsvUmVuZGVyVGhl
bWVHdGsuaCBcCiAJU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3RrL1JlbmRlclRoZW1lR3RrMi5j
cHAgXAogCVNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9SZW5kZXJUaGVtZUd0azMuY3BwIFwK
KwlTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ndGsvUnVuTG9vcEd0ay5jcHAgXAogCVNvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2d0ay9TY3JvbGxiYXJUaGVtZUd0ay5jcHAgXAogCVNvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2d0ay9TY3JvbGxiYXJUaGVtZUd0ay5oIFwKIAlTb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ndGsvU2Nyb2xsYmFyVGhlbWVHdGsyLmNwcCBcCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9UYXJnZXQucHJpIGIvU291cmNlL1dlYkNvcmUvVGFyZ2V0LnByaQppbmRleCA1Nzg1
ZTAxMDQ2N2UwNzc5ZTk2YTg3YjZmYTEyMjA2N2NmMTEyYWFiLi44NWZlOTE5MDEzZmYyNjA5N2Rk
MGUxMDkxM2U2MWJjMzc0ZDI3ZDRhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9UYXJnZXQu
cHJpCisrKyBiL1NvdXJjZS9XZWJDb3JlL1RhcmdldC5wcmkKQEAgLTExMjYsNiArMTEyNiw3IEBA
IFNPVVJDRVMgKz0gXAogICAgIHBsYXRmb3JtL3RleHQvUmVndWxhckV4cHJlc3Npb24uY3BwIFwK
ICAgICBwbGF0Zm9ybS9QbGF0Zm9ybUV2ZW50LmNwcCBcCiAgICAgcGxhdGZvcm0vUnVudGltZUFw
cGxpY2F0aW9uQ2hlY2tzLmNwcCBcCisgICAgcGxhdGZvcm0vUnVuTG9vcC5jcHAgXAogICAgIHBs
YXRmb3JtL1NjaGVtZVJlZ2lzdHJ5LmNwcCBcCiAgICAgcGxhdGZvcm0vU2Nyb2xsYWJsZUFyZWEu
Y3BwIFwKICAgICBwbGF0Zm9ybS9TY3JvbGxBbmltYXRvci5jcHAgXApAQCAtMjc5OCw2ICsyNzk5
LDcgQEAgU09VUkNFUyArPSBcCiAgICAgcGxhdGZvcm0vcXQvRHJhZ0ltYWdlUXQuY3BwIFwKICAg
ICBwbGF0Zm9ybS9xdC9FdmVudExvb3BRdC5jcHAgXAogICAgIHBsYXRmb3JtL3F0L0ZpbGVTeXN0
ZW1RdC5jcHAgXAorICAgIHBsYXRmb3JtL3F0L1J1bkxvb3BRdC5jcHAgXAogICAgIHBsYXRmb3Jt
L3F0L1NoYXJlZEJ1ZmZlclF0LmNwcCBcCiAgICAgcGxhdGZvcm0vcXQvVGhpcmRQYXJ0eUNvb2tp
ZXNRdC5jcHAgXAogICAgIHBsYXRmb3JtL2dyYXBoaWNzL3F0L0ZvbnRDYWNoZVF0LmNwcCBcCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmV4cC5pbiBiL1NvdXJjZS9XZWJDb3Jl
L1dlYkNvcmUuZXhwLmluCmluZGV4IDNhNWIyOWJhZDFmNGVmZWEzYmRiOWE0MzE5NjRkODIzMTY4
MTllMWUuLjY0ZGYwMTc2YjY4ZmQxMTdkODZhNjNkZGE4NWVhYWI2ZjQ3NzRiNjggMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZXhwLmluCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dl
YkNvcmUuZXhwLmluCkBAIC0yODAsNyArMjgwLDYgQEAgX19aTjdXZWJDb3JlMTJQcmludENvbnRl
eHQ5c3Bvb2xQYWdlRVJOU18xNUdyYXBoaWNzQ29udGV4dEVpZgogX19aTjdXZWJDb3JlMTJQcmlu
dENvbnRleHQ5c3Bvb2xSZWN0RVJOU18xNUdyYXBoaWNzQ29udGV4dEVSS05TXzdJbnRSZWN0RQog
X19aTjdXZWJDb3JlMTJQcmludENvbnRleHRDMUVQTlNfNUZyYW1lRQogX19aTjdXZWJDb3JlMTJQ
cmludENvbnRleHREMUV2Ci1fX1pOSzdXZWJDb3JlMTJSZW5kZXJPYmplY3QxM3N0eWxlSW5SZWdp
b25FdgogX19aTjdXZWJDb3JlMTJSZW5kZXJPYmplY3QxNnJlcGFpbnRSZWN0YW5nbGVFUktOU183
SW50UmVjdEViCiBfX1pON1dlYkNvcmUxMlJlbmRlcldpZGdldDI4cmVzdW1lV2lkZ2V0SGllcmFy
Y2h5VXBkYXRlc0V2CiBfX1pON1dlYkNvcmUxMlJlbmRlcldpZGdldDI5c3VzcGVuZFdpZGdldEhp
ZXJhcmNoeVVwZGF0ZXNFdgpAQCAtMzY0LDkgKzM2Myw2IEBAIF9fWk43V2ViQ29yZTE0UmVzb3Vy
Y2VIYW5kbGUyMGZvcmNlQ29udGVudFNuaWZmaW5nRXYKIF9fWk43V2ViQ29yZTE0UmVzb3VyY2VI
YW5kbGUyNnN5bmNocm9ub3VzTG9hZFJ1bkxvb3BNb2RlRXYKIF9fWk43V2ViQ29yZTE0UmVzb3Vy
Y2VIYW5kbGUzNWNyZWF0ZVByaXZhdGVCcm93c2luZ1N0b3JhZ2VTZXNzaW9uRVBLMTBfX0NGU3Ry
aW5nCiBfX1pON1dlYkNvcmUxNFJlc291cmNlTG9hZGVyMTRjYW5jZWxsZWRFcnJvckV2Ci0jaWYg
RU5BQkxFKFNWRykKLV9fWk43V2ViQ29yZTE0U1ZHU01JTEVsZW1lbnQxM2lzU01JTEVsZW1lbnRF
UE5TXzROb2RlRQotI2VuZGlmCiBfX1pON1dlYkNvcmUxNFNjaGVtZVJlZ2lzdHJ5MjRyZWdpc3Rl
clVSTFNjaGVtZUFzTG9jYWxFUktOM1dURjZTdHJpbmdFCiBfX1pON1dlYkNvcmUxNFNjaGVtZVJl
Z2lzdHJ5MjVyZWdpc3RlclVSTFNjaGVtZUFzU2VjdXJlRVJLTjNXVEY2U3RyaW5nRQogX19aTjdX
ZWJDb3JlMTRTY2hlbWVSZWdpc3RyeTMycmVnaXN0ZXJVUkxTY2hlbWVBc0VtcHR5RG9jdW1lbnRF
UktOM1dURjZTdHJpbmdFCkBAIC02MTUsOSArNjExLDYgQEAgX19aTjdXZWJDb3JlMjFNZW1vcnlQ
cmVzc3VyZUhhbmRsZXI3aW5zdGFsbEV2CiBfX1pON1dlYkNvcmUyMVBsYXRmb3JtS2V5Ym9hcmRF
dmVudDI0ZGlzYW1iaWd1YXRlS2V5RG93bkV2ZW50RU5TXzEzUGxhdGZvcm1FdmVudDRUeXBlRWIK
IF9fWk43V2ViQ29yZTIxUmVzb3VyY2VMb2FkU2NoZWR1bGVyMjBzZXJ2ZVBlbmRpbmdSZXF1ZXN0
c0VOU18yMFJlc291cmNlTG9hZFByaW9yaXR5RQogX19aTjdXZWJDb3JlMjFSZXNvdXJjZUxvYWRT
Y2hlZHVsZXIyNHNjaGVkdWxlUGx1Z2luU3RyZWFtTG9hZEVQTlNfNUZyYW1lRVBOU18zMk5ldHNj
YXBlUGx1Z0luU3RyZWFtTG9hZGVyQ2xpZW50RVJLTlNfMTVSZXNvdXJjZVJlcXVlc3RFCi0jaWYg
RU5BQkxFKFNWRykKLV9fWk43V2ViQ29yZTIxU1ZHRG9jdW1lbnRFeHRlbnNpb25zMjFzYW1wbGVB
bmltYXRpb25BdFRpbWVFUktOM1dURjZTdHJpbmdFUE5TXzE0U1ZHU01JTEVsZW1lbnRFZAotI2Vu
ZGlmCiBfX1pON1dlYkNvcmUyMVNlcmlhbGl6ZWRTY3JpcHRWYWx1ZTExZGVzZXJpYWxpemVFUEsx
NU9wYXF1ZUpTQ29udGV4dFBQSzEzT3BhcXVlSlNWYWx1ZQogX19aTjdXZWJDb3JlMjFTZXJpYWxp
emVkU2NyaXB0VmFsdWU2Y3JlYXRlRVBLMTVPcGFxdWVKU0NvbnRleHRQSzEzT3BhcXVlSlNWYWx1
ZVBTNl8KIF9fWk43V2ViQ29yZTIxU2VyaWFsaXplZFNjcmlwdFZhbHVlQzFFUk4zV1RGNlZlY3Rv
ckloTG0wRUVFCkBAIC05MDMsNiArODk2LDE3IEBAIF9fWk43V2ViQ29yZTdJbnRSZWN0NXVuaXRl
RVJLUzBfCiBfX1pON1dlYkNvcmU3SW50UmVjdDlpbnRlcnNlY3RFUktTMF8KIF9fWk43V2ViQ29y
ZTdJbnRSZWN0QzFFUktOU185RmxvYXRSZWN0RQogX19aTjdXZWJDb3JlN0ludFNpemVDMUVSSzZD
R1NpemUKK19fWk43V2ViQ29yZTdSdW5Mb29wMTRydW5Gb3JEdXJhdGlvbkVkCitfX1pON1dlYkNv
cmU3UnVuTG9vcDIxaW5pdGlhbGl6ZU1haW5SdW5Mb29wRXYKK19fWk43V2ViQ29yZTdSdW5Mb29w
M3J1bkV2CitfX1pON1dlYkNvcmU3UnVuTG9vcDRtYWluRXYKK19fWk43V2ViQ29yZTdSdW5Mb29w
NHN0b3BFdgorX19aTjdXZWJDb3JlN1J1bkxvb3A3Y3VycmVudEV2CitfX1pON1dlYkNvcmU3UnVu
TG9vcDhkaXNwYXRjaEVSS04zV1RGOEZ1bmN0aW9uSUZ2dkVFRQorX19aTjdXZWJDb3JlN1J1bkxv
b3A5VGltZXJCYXNlNHN0b3BFdgorX19aTjdXZWJDb3JlN1J1bkxvb3A5VGltZXJCYXNlNXN0YXJ0
RWRiCitfX1pON1dlYkNvcmU3UnVuTG9vcDlUaW1lckJhc2VDMkVQUzBfCitfX1pON1dlYkNvcmU3
UnVuTG9vcDlUaW1lckJhc2VEMkV2CiBfX1pON1dlYkNvcmU3VGV4dFJ1bjE5YWxsb3dzUm91bmRp
bmdIYWNrc0V2CiBfX1pON1dlYkNvcmU3VGV4dFJ1bjIxc19hbGxvd3NSb3VuZGluZ0hhY2tzRQog
X19aTjdXZWJDb3JlN1RleHRSdW4yMnNldEFsbG93c1JvdW5kaW5nSGFja3NFYgpAQCAtOTEyLDE1
ICs5MTYsOSBAQCBfX1pON1dlYkNvcmU3cmVwbGFjZUVSTjNXVEY2U3RyaW5nRVJLTlNfMTdSZWd1
bGFyRXhwcmVzc2lvbkVSS1MxXwogX19aTjdXZWJDb3JlN3RvUmFuZ2VFTjNKU0M3SlNWYWx1ZUUK
IF9fWk43V2ViQ29yZThEb2N1bWVudDExY3JlYXRlUmFuZ2VFdgogX19aTjdXZWJDb3JlOERvY3Vt
ZW50MTJ1cGRhdGVMYXlvdXRFdgotI2lmIEVOQUJMRShTVkcpCi1fX1pON1dlYkNvcmU4RG9jdW1l
bnQxM3N2Z0V4dGVuc2lvbnNFdgotI2VuZGlmCiBfX1pON1dlYkNvcmU4RG9jdW1lbnQxNHNldEZv
Y3VzZWROb2RlRU4zV1RGMTBQYXNzUmVmUHRySU5TXzROb2RlRUVFCiBfX1pON1dlYkNvcmU4RG9j
dW1lbnQxNmlzUGFnZUJveFZpc2libGVFaQogX19aTjdXZWJDb3JlOERvY3VtZW50MTdnZXRGb2N1
c2FibGVOb2Rlc0VSTjNXVEY2VmVjdG9ySU5TMV82UmVmUHRySU5TXzROb2RlRUVFTG0wRUVFCi0j
aWYgRU5BQkxFKFNWRykKLV9fWk43V2ViQ29yZThEb2N1bWVudDE5YWNjZXNzU1ZHRXh0ZW5zaW9u
c0V2Ci0jZW5kaWYKIF9fWk43V2ViQ29yZThEb2N1bWVudDIwc3R5bGVTZWxlY3RvckNoYW5nZWRF
TlNfMjNTdHlsZVNlbGVjdG9yVXBkYXRlRmxhZ0UKIF9fWk43V2ViQ29yZThEb2N1bWVudDIyY3Jl
YXRlRG9jdW1lbnRGcmFnbWVudEV2CiBfX1pON1dlYkNvcmU4RG9jdW1lbnQyM2RpZEFkZFdoZWVs
RXZlbnRIYW5kbGVyRXYKQEAgLTExODgsNiArMTE4Niw3IEBAIF9fWk5LN1dlYkNvcmUxMVNjcmlw
dFZhbHVlOWdldFN0cmluZ0VQTjNKU0M5RXhlY1N0YXRlRVJOM1dURjZTdHJpbmdFCiBfX1pOSzdX
ZWJDb3JlMTJJY29uRGF0YWJhc2UxMmRhdGFiYXNlUGF0aEV2CiBfX1pOSzdXZWJDb3JlMTJJY29u
RGF0YWJhc2UyNHNob3VsZFN0b3BUaHJlYWRBY3Rpdml0eUV2CiBfX1pOSzdXZWJDb3JlMTJJY29u
RGF0YWJhc2U5aXNFbmFibGVkRXYKK19fWk5LN1dlYkNvcmUxMlJlbmRlck9iamVjdDEzc3R5bGVJ
blJlZ2lvbkV2CiBfX1pOSzdXZWJDb3JlMTJSZW5kZXJPYmplY3QxNGVuY2xvc2luZ0xheWVyRXYK
IF9fWk5LN1dlYkNvcmUxMlJlbmRlck9iamVjdDE1bG9jYWxUb0Fic29sdXRlRVJLTlNfMTBGbG9h
dFBvaW50RWJiCiBfX1pOSzdXZWJDb3JlMTJSZW5kZXJPYmplY3QyM2Fic29sdXRlQm91bmRpbmdC
b3hSZWN0RWIKQEAgLTEyNDksOCArMTI0OCw4IEBAIF9fWk5LN1dlYkNvcmUxNFJlc291cmNlTG9h
ZGVyMTFmcmFtZUxvYWRlckV2CiBfX1pOSzdXZWJDb3JlMTRTY3JvbGxhYmxlQXJlYTE0c2Nyb2xs
QW5pbWF0b3JFdgogX19aTks3V2ViQ29yZTE0U2Nyb2xsYWJsZUFyZWEyMGNvbnRlbnRBcmVhV2ls
bFBhaW50RXYKIF9fWk5LN1dlYkNvcmUxNFNjcm9sbGFibGVBcmVhMjJtb3VzZUV4aXRlZENvbnRl
bnRBcmVhRXYKLV9fWk5LN1dlYkNvcmUxNFNjcm9sbGFibGVBcmVhMjNtb3VzZU1vdmVkSW5Db250
ZW50QXJlYUV2CiBfX1pOSzdXZWJDb3JlMTRTY3JvbGxhYmxlQXJlYTIzbW91c2VFbnRlcmVkQ29u
dGVudEFyZWFFdgorX19aTks3V2ViQ29yZTE0U2Nyb2xsYWJsZUFyZWEyM21vdXNlTW92ZWRJbkNv
bnRlbnRBcmVhRXYKIF9fWk5LN1dlYkNvcmUxNFNlY3VyaXR5T3JpZ2luMTBjYW5EaXNwbGF5RVJL
TlNfNEtVUkxFCiBfX1pOSzdXZWJDb3JlMTRTZWN1cml0eU9yaWdpbjE4ZGF0YWJhc2VJZGVudGlm
aWVyRXYKIF9fWk5LN1dlYkNvcmUxNFNlY3VyaXR5T3JpZ2luNWVxdWFsRVBLUzBfCkBAIC0xNDE4
LDYgKzE0MTcsNyBAQCBfX1pOSzdXZWJDb3JlN0ludFJlY3Q4Y29udGFpbnNFUktTMF8KIF9fWk5L
N1dlYkNvcmU3SW50UmVjdGN2NkNHUmVjdEV2CiBfX1pOSzdXZWJDb3JlN0ludFJlY3RjdjdfTlNS
ZWN0RXYKIF9fWk5LN1dlYkNvcmU3SW50U2l6ZWN2NkNHU2l6ZUV2CitfX1pOSzdXZWJDb3JlN1J1
bkxvb3A5VGltZXJCYXNlOGlzQWN0aXZlRXYKIF9fWk5LN1dlYkNvcmU4RG9jdW1lbnQxMHJlbmRl
clZpZXdFdgogX19aTks3V2ViQ29yZThEb2N1bWVudDExY29tcGxldGVVUkxFUktOM1dURjZTdHJp
bmdFCiBfX1pOSzdXZWJDb3JlOERvY3VtZW50MTNheE9iamVjdENhY2hlRXYKQEAgLTE1OTgsNiAr
MTU5OCwxMyBAQCBfd2tDcmVhdGVBWFRleHRNYXJrZXIKIF93a0dldEJ5dGVzRnJvbUFYVGV4dE1h
cmtlcgogX3drQ3JlYXRlQVhVSUVsZW1lbnRSZWYKIAorI2lmIEVOQUJMRShTVkcpCitfX1pON1dl
YkNvcmUxNFNWR1NNSUxFbGVtZW50MTNpc1NNSUxFbGVtZW50RVBOU180Tm9kZUUKK19fWk43V2Vi
Q29yZTIxU1ZHRG9jdW1lbnRFeHRlbnNpb25zMjFzYW1wbGVBbmltYXRpb25BdFRpbWVFUktOM1dU
RjZTdHJpbmdFUE5TXzE0U1ZHU01JTEVsZW1lbnRFZAorX19aTjdXZWJDb3JlOERvY3VtZW50MTNz
dmdFeHRlbnNpb25zRXYKK19fWk43V2ViQ29yZThEb2N1bWVudDE5YWNjZXNzU1ZHRXh0ZW5zaW9u
c0V2CisjZW5kaWYKKwogI2lmIEVOQUJMRSgzRF9SRU5ERVJJTkcpCiBfV2ViQ29yZUhhczNEUmVu
ZGVyaW5nCiAjZW5kaWYKQEAgLTIwNTMsNiArMjA2MCwzIEBAIF9fWk43V2ViQ29yZTIwU2Nyb2xs
aW5nQ29vcmRpbmF0b3IxOGhhbmRsZUdlc3R1cmVFdmVudEVSS05TXzIwUGxhdGZvcm1HZXN0dXJl
RXZlCiAjZW5kaWYKIAogI2VuZGlmCi0KLQotCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9X
ZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmNw
cm9qL1dlYkNvcmUudmNwcm9qCmluZGV4IGRhMjhkMjMzZGVkZDk4ODVkZmY2NjRlM2JhOWUxOWZi
ZWYzYjVmODIuLmI5MzhkZmJlZTgwZmE2NGMzYmJiYjVkZTA0YzAwZGM2MGZjZGEzNjAgMTAwNzU1
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qCisrKyBi
L1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qCkBAIC0yNjY1MCw2
ICsyNjY1MCwxNCBAQAogCQkJCT4KIAkJCTwvRmlsZT4KIAkJCTxGaWxlCisJCQkJUmVsYXRpdmVQ
YXRoPSIuLlxwbGF0Zm9ybVxSdW5Mb29wLmNwcCIKKwkJCQk+CisJCQk8L0ZpbGU+CisJCQk8Rmls
ZQorCQkJCVJlbGF0aXZlUGF0aD0iLi5ccGxhdGZvcm1cUnVuTG9vcC5oIgorCQkJCT4KKwkJCTwv
RmlsZT4KKwkJCTxGaWxlCiAJCQkJUmVsYXRpdmVQYXRoPSIuLlxwbGF0Zm9ybVxSdW50aW1lQXBw
bGljYXRpb25DaGVja3MuY3BwIgogCQkJCT4KIAkJCTwvRmlsZT4KQEAgLTI3MDYxLDYgKzI3MDY5
LDEwIEBACiAJCQkJCT4KIAkJCQk8L0ZpbGU+CiAJCQkJPEZpbGUKKwkJCQkJUmVsYXRpdmVQYXRo
PSIuLlxwbGF0Zm9ybVx3aW5cUnVuTG9vcFdpbi5jcHAiCisJCQkJCT4KKwkJCQk8L0ZpbGU+CisJ
CQkJPEZpbGUKIAkJCQkJUmVsYXRpdmVQYXRoPSIuLlxwbGF0Zm9ybVx3aW5cU2Nyb2xsYmFyVGhl
bWVTYWZhcmkuY3BwIgogCQkJCQk+CiAJCQkJPC9GaWxlPgpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYkNvcmUv
V2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDcyYzNiNTM2ODc3MWJmYWEw
ZjRiMDUzMGUwODgyZTMyYTcxNWRlNTIuLjBiYjM3Y2Y2OTBkNGRjMjY1NzQ2MjhiOWZhNTZkNWI0
ZWFiMDJmYWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9q
ZWN0LnBieHByb2oKQEAgLTQ5ODMsNiArNDk4Myw5IEBACiAJCUJDMDZFRTA0MEJGRDcxQUEwMDg1
NkU5RCAvKiBKU0hUTUxUYWJsZUVsZW1lbnQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gQkMwNkVFMDIwQkZENzFBQTAwODU2RTlEIC8qIEpTSFRNTFRh
YmxlRWxlbWVudC5jcHAgKi87IH07CiAJCUJDMDZFRTA1MEJGRDcxQUEwMDg1NkU5RCAvKiBKU0hU
TUxUYWJsZUVsZW1lbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IEJDMDZFRTAzMEJGRDcxQUEwMDg1NkU5RCAvKiBKU0hUTUxUYWJsZUVsZW1lbnQuaCAq
LzsgfTsKIAkJQkMwNzNCQUEwQzM5OUIxRjAwMEY1OTc5IC8qIEZsb2F0Q29udmVyc2lvbi5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkMwNzNCQTkwQzM5
OUIxRjAwMEY1OTc5IC8qIEZsb2F0Q29udmVyc2lvbi5oICovOyB9OworCQlCQzBCMzU4MzE0QzRG
OTU0MDA1NUUyMkEgLyogUnVuTG9vcE1hYy5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IEJDMEIzNTgyMTRDNEY5NTQwMDU1RTIyQSAvKiBSdW5Mb29wTWFj
Lm1tICovOyB9OworCQlCQzBCMzU4NzE0QzRGOTgzMDA1NUUyMkEgLyogUnVuTG9vcC5jcHAgaW4g
U291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCQzBCMzU4NTE0QzRG
OTgzMDA1NUUyMkEgLyogUnVuTG9vcC5jcHAgKi87IH07CisJCUJDMEIzNTg4MTRDNEY5ODMwMDU1
RTIyQSAvKiBSdW5Mb29wLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSBCQzBCMzU4NjE0QzRGOTgzMDA1NUUyMkEgLyogUnVuTG9vcC5oICovOyBzZXR0aW5n
cyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCUJDMEIzNkE0MENEM0M2N0Mw
MEFDN0VCNSAvKiBDb25zb2xlLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IEJDMEIzNkExMENEM0M2N0MwMEFDN0VCNSAvKiBDb25zb2xlLmNwcCAqLzsg
fTsKIAkJQkMwQjM2QTUwQ0QzQzY3QzAwQUM3RUI1IC8qIENvbnNvbGUuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDMEIzNkEyMENEM0M2N0MwMEFDN0VC
NSAvKiBDb25zb2xlLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsg
fTsgfTsKIAkJQkMxMjRFRTcwQzI2NDFDRDAwOUUyMzQ5IC8qIEJhckluZm8uY3BwIGluIFNvdXJj
ZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkMxMjRFRTQwQzI2NDFDRDAw
OUUyMzQ5IC8qIEJhckluZm8uY3BwICovOyB9OwpAQCAtNzIyNyw3ICs3MjMwLDYgQEAKIAkJMUFC
RkU3NTIwQ0Q5NjhEMDAwRkU0ODM0IC8qIFNRTFRyYW5zYWN0aW9uLmNwcCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFNRTFRyYW5zYWN0aW9uLmNwcDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJMUFDMjI2MEEwREI2OUYxOTAwODlCNjY5IC8qIEpTRE9NQXBwbGlj
YXRpb25DYWNoZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU0RP
TUFwcGxpY2F0aW9uQ2FjaGUuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkxQUMy
MjYwQjBEQjY5RjE5MDA4OUI2NjkgLyogSlNET01BcHBsaWNhdGlvbkNhY2hlLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTRE9NQXBwbGljYXRpb25DYWNoZS5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwotCQkxQUM2OTI2OTE0QTEyNTMxMDBCRDg1RjEgLyogU2Nyb2xs
YWJsZUFyZWFDbGllbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU2Nyb2xs
YWJsZUFyZWFDbGllbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMUFDRTUzREQw
QThEMTg4MTAwMjI5NDdEIC8qIEpTRE9NUGFyc2VyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5jcHA7IHBhdGggPSBKU0RPTVBhcnNlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCTFBQ0U1M0RFMEE4RDE4ODEwMDIyOTQ3RCAvKiBKU0RPTVBhcnNlci5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNET01QYXJzZXIuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJMUFDRTUzRTEwQThEMThFNzAwMjI5NDdEIC8qIERPTVBhcnNlci5jcHAg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gRE9NUGFyc2VyLmNwcDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTExODQ4LDYgKzExODUwLDkgQEAKIAkJQkMwNkYy
NEMwNkQxOEE3RTAwNEE2RkEzIC8qIFhTTFRQcm9jZXNzb3IuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgaW5kZW50V2lkdGggPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gWFNMVFByb2Nlc3Nvci5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB0YWJXaWR0aCA9IDg7IHVzZXNUYWJzID0gMDsgfTsKIAkJQkMwNkYy
NEQwNkQxOEE3RTAwNEE2RkEzIC8qIFhTTFRQcm9jZXNzb3JMaWJ4c2x0LmNwcCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgaW5kZW50V2lkdGggPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFhTTFRQcm9jZXNz
b3JMaWJ4c2x0LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgdGFiV2lkdGggPSA4OyB1c2Vz
VGFicyA9IDA7IH07CiAJCUJDMDczQkE5MEMzOTlCMUYwMDBGNTk3OSAvKiBGbG9hdENvbnZlcnNp
b24uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEZsb2F0Q29udmVyc2lvbi5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlCQzBCMzU4MjE0QzRGOTU0MDA1NUUyMkEg
LyogUnVuTG9vcE1hYy5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9
IFJ1bkxvb3BNYWMubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUJDMEIzNTg1MTRD
NEY5ODMwMDU1RTIyQSAvKiBSdW5Mb29wLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNw
cDsgcGF0aCA9IFJ1bkxvb3AuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlCQzBC
MzU4NjE0QzRGOTgzMDA1NUUyMkEgLyogUnVuTG9vcC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBSdW5Mb29wLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUJDMEIz
NkExMENEM0M2N0MwMEFDN0VCNSAvKiBDb25zb2xlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5jcHA7IHBhdGggPSBDb25zb2xlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJQkMwQjM2QTIwQ0QzQzY3QzAwQUM3RUI1IC8qIENvbnNvbGUuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IENvbnNvbGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJQkMwQjM2QTMwQ0QzQzY3QzAwQUM3RUI1IC8qIENvbnNvbGUuaWRsICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHRl
eHQ7IHBhdGggPSBDb25zb2xlLmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTE0
OTMwLDYgKzE0OTM1LDcgQEAKIAkJCQlEMzlEMDA2QzExRjhFMzA4MDA2MDQxRjIgLyogUG9wdXBN
ZW51TWFjLmggKi8sCiAJCQkJMDY2OEUxOEUwQUREOTY0MDAwNDEyOEUwIC8qIFBvcHVwTWVudU1h
Yy5tbSAqLywKIAkJCQlFNEQ2ODc3NjBFRDdBRTNEMDA2RUE5NzggLyogUHVyZ2VhYmxlQnVmZmVy
TWFjLmNwcCAqLywKKwkJCQlCQzBCMzU4MjE0QzRGOTU0MDA1NUUyMkEgLyogUnVuTG9vcE1hYy5t
bSAqLywKIAkJCQkxQ0UyNEY5NjBEN0NBRjBFMDA3RTA0QzIgLyogU2NoZWR1bGVQYWlyTWFjLm1t
ICovLAogCQkJCUJDQUUxRkE1MTI5MzlEQjcwMDRDQjAyNiAvKiBTY3JvbGxBbmltYXRvck1hYy5o
ICovLAogCQkJCUJDNTExNTZEMTJCMTc0OUMwMEM5Njc1NCAvKiBTY3JvbGxBbmltYXRvck1hYy5t
bSAqLywKQEAgLTE5NjE5LDYgKzE5NjI1LDggQEAKIAkJCQlCQzNCRTEyQTBFOTgwOTJGMDA4MzU1
ODggLyogUG9wdXBNZW51U3R5bGUuaCAqLywKIAkJCQlFNEQ2ODc3ODBFRDdBRTRGMDA2RUE5Nzgg
LyogUHVyZ2VhYmxlQnVmZmVyLmggKi8sCiAJCQkJN0UzM0NEMDAxMjdGMzQwRDAwQkU4RjE3IC8q
IFB1cmdlUHJpb3JpdHkuaCAqLywKKwkJCQlCQzBCMzU4NTE0QzRGOTgzMDA1NUUyMkEgLyogUnVu
TG9vcC5jcHAgKi8sCisJCQkJQkMwQjM1ODYxNEM0Rjk4MzAwNTVFMjJBIC8qIFJ1bkxvb3AuaCAq
LywKIAkJCQkxQzYzQTI0NjBGNzE2NDY2MDBDMDlENUEgLyogUnVuTG9vcFRpbWVyLmggKi8sCiAJ
CQkJMjkzRUFFMjAxMzU2QjMyRTAwNjdBQ0Y5IC8qIFJ1bnRpbWVBcHBsaWNhdGlvbkNoZWNrcy5j
cHAgKi8sCiAJCQkJMjkzRUFFMUUxMzU2QjJGRTAwNjdBQ0Y5IC8qIFJ1bnRpbWVBcHBsaWNhdGlv
bkNoZWNrcy5oICovLApAQCAtMTk2MjYsNyArMTk2MzQsNiBAQAogCQkJCTUxNjJDN0YzMTFGNzdF
RkIwMDYxMkVGRSAvKiBTY2hlbWVSZWdpc3RyeS5oICovLAogCQkJCUJDOEFFMzRDMTJFQTA5NkEw
MEVCM0FFNiAvKiBTY3JvbGxhYmxlQXJlYS5jcHAgKi8sCiAJCQkJQkM4QUUzNEQxMkVBMDk2QTAw
RUIzQUU2IC8qIFNjcm9sbGFibGVBcmVhLmggKi8sCi0JCQkJMUFDNjkyNjkxNEExMjUzMTAwQkQ4
NUYxIC8qIFNjcm9sbGFibGVBcmVhQ2xpZW50LmggKi8sCiAJCQkJQ0EzQkY2N0IxMEQ5OUJBRTAw
RTZDRTUzIC8qIFNjcm9sbEFuaW1hdG9yLmNwcCAqLywKIAkJCQlDQTNCRjY3RDEwRDk5QkFFMDBF
NkNFNTMgLyogU2Nyb2xsQW5pbWF0b3IuaCAqLywKIAkJCQlCQ0FBOTBDMjBBN0VCQTYwMDA4QjEy
MjkgLyogU2Nyb2xsYmFyLmNwcCAqLywKQEAgLTI0MDI4LDYgKzI0MDM1LDcgQEAKIAkJCQk1MEFD
RTJDQjE0QjVENzkzMDA0NDY2NjYgLyogQ3VzdG9tRmlsdGVyT3BlcmF0aW9uLmggaW4gSGVhZGVy
cyAqLywKIAkJCQk3QUNEODhENDE0QzA4QkQ2MDA4NEVERDIgLyogSW5zcGVjdG9ySW5kZXhlZERC
QWdlbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCTkxMDg5RDMyMTRDMzM2MDAwMDVBRkM0OSAvKiBK
U1VpbnQ4Q2xhbXBlZEFycmF5LmggaW4gSGVhZGVycyAqLywKKwkJCQlCQzBCMzU4ODE0QzRGOTgz
MDA1NUUyMkEgLyogUnVuTG9vcC5oIGluIEhlYWRlcnMgKi8sCiAJCQkpOwogCQkJcnVuT25seUZv
ckRlcGxveW1lbnRQb3N0cHJvY2Vzc2luZyA9IDA7CiAJCX07CkBAIC0yNjk0NSw2ICsyNjk1Myw4
IEBACiAJCQkJN0FDRDg4RDMxNEMwOEJENjAwODRFREQyIC8qIEluc3BlY3RvckluZGV4ZWREQkFn
ZW50LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTkxQTM5MDVCMTRDMEY2MTEwMEY2NzkwMSAvKiBK
U1VpbnQ4Q2xhbXBlZEFycmF5Q3VzdG9tLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTkxMDg5RDMz
MTRDMzM2MDUwMDVBRkM0OSAvKiBKU1VpbnQ4Q2xhbXBlZEFycmF5LmNwcCBpbiBTb3VyY2VzICov
LAorCQkJCUJDMEIzNTgzMTRDNEY5NTQwMDU1RTIyQSAvKiBSdW5Mb29wTWFjLm1tIGluIFNvdXJj
ZXMgKi8sCisJCQkJQkMwQjM1ODcxNEM0Rjk4MzAwNTVFMjJBIC8qIFJ1bkxvb3AuY3BwIGluIFNv
dXJjZXMgKi8sCiAJCQkpOwogCQkJcnVuT25seUZvckRlcGxveW1lbnRQb3N0cHJvY2Vzc2luZyA9
IDA7CiAJCX07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9SdW5Mb29wLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1J1bkxvb3AuY3BwCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjQ0MWM1
ODYzZjY2YjY2OTAxMDE4MmZiMTU0ZDhhZGQ0MzYxM2UwOTgKLS0tIC9kZXYvbnVsbAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9SdW5Mb29wLmNwcApAQCAtMCwwICsxLDc0IEBACisvKgor
ICogQ29weXJpZ2h0IChDKSAyMDEwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAq
CisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJp
YnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXBy
b2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1l
bnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1
dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5E
IElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElF
RCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBM
SUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJ
Q1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExF
IElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJ
TkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVO
VElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQg
T0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBP
UiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBB
TkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBT
VFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJ
U0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FS
RSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0Uu
CisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlJ1bkxvb3AuaCIKKworI2lu
Y2x1ZGUgPHd0Zi9TdGRMaWJFeHRyYXMuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitzdGF0
aWMgUnVuTG9vcCogc19tYWluUnVuTG9vcDsKKwordm9pZCBSdW5Mb29wOjppbml0aWFsaXplTWFp
blJ1bkxvb3AoKQoreworICAgIGlmIChzX21haW5SdW5Mb29wKQorICAgICAgICByZXR1cm47Cisg
ICAgc19tYWluUnVuTG9vcCA9IFJ1bkxvb3A6OmN1cnJlbnQoKTsKK30KKworUnVuTG9vcCogUnVu
TG9vcDo6Y3VycmVudCgpCit7CisgICAgREVGSU5FX1NUQVRJQ19MT0NBTChXVEY6OlRocmVhZFNw
ZWNpZmljPFJ1bkxvb3A+LCBydW5Mb29wRGF0YSwgKCkpOworICAgIHJldHVybiAmKnJ1bkxvb3BE
YXRhOworfQorCitSdW5Mb29wKiBSdW5Mb29wOjptYWluKCkKK3sKKyAgICBBU1NFUlQoc19tYWlu
UnVuTG9vcCk7CisgICAgcmV0dXJuIHNfbWFpblJ1bkxvb3A7Cit9CisKK3ZvaWQgUnVuTG9vcDo6
cGVyZm9ybVdvcmsoKQoreworICAgIFZlY3RvcjxGdW5jdGlvbjx2b2lkKCk+ID4gZnVuY3Rpb25R
dWV1ZTsKKyAgICB7CisgICAgICAgIE11dGV4TG9ja2VyIGxvY2tlcihtX2Z1bmN0aW9uUXVldWVM
b2NrKTsKKyAgICAgICAgbV9mdW5jdGlvblF1ZXVlLnN3YXAoZnVuY3Rpb25RdWV1ZSk7CisgICAg
fQorCisgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBmdW5jdGlvblF1ZXVlLnNpemUoKTsgKytp
KQorICAgICAgICBmdW5jdGlvblF1ZXVlW2ldKCk7Cit9CisKK3ZvaWQgUnVuTG9vcDo6ZGlzcGF0
Y2goY29uc3QgRnVuY3Rpb248dm9pZCgpPiYgZnVuY3Rpb24pCit7CisgICAgTXV0ZXhMb2NrZXIg
bG9ja2VyKG1fZnVuY3Rpb25RdWV1ZUxvY2spOworICAgIG1fZnVuY3Rpb25RdWV1ZS5hcHBlbmQo
ZnVuY3Rpb24pOworCisgICAgd2FrZVVwKCk7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1J1bkxvb3AuaCBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL1J1bkxvb3AuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42ZTA0MzI2ZmU1Mzc2ZTkyNTZk
YjczNmRkZjgyOGE5NTExZmNmOGM3Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vUnVuTG9vcC5oCkBAIC0wLDAgKzEsMTY1IEBACisvKgorICogQ29weXJpZ2h0IChD
KSAyMDEwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykg
MjAxMCBOb2tpYSBDb3Jwb3JhdGlvbiBhbmQvb3IgaXRzIHN1YnNpZGlhcnkoLWllcykKKyAqIFBv
cnRpb25zIENvcHlyaWdodCAoYykgMjAxMCBNb3Rvcm9sYSBNb2JpbGl0eSwgSW5jLiAgQWxsIHJp
Z2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh
bmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBl
cm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1l
dDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmlu
YXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGlu
IHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVk
IHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVE
IEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5Z
IEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBG
SVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5P
IEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxF
IEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZ
LCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExP
U1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9O
KSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIg
SU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVH
TElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBV
U0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJ
VFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBSdW5Mb29wX2gKKyNkZWZpbmUgUnVu
TG9vcF9oCisKKyNpbmNsdWRlIDx3dGYvRm9yd2FyZC5oPgorI2luY2x1ZGUgPHd0Zi9GdW5jdGlv
bmFsLmg+CisjaW5jbHVkZSA8d3RmL0hhc2hNYXAuaD4KKyNpbmNsdWRlIDx3dGYvVGhyZWFkU3Bl
Y2lmaWMuaD4KKyNpbmNsdWRlIDx3dGYvVGhyZWFkaW5nLmg+CisjaW5jbHVkZSA8d3RmL1ZlY3Rv
ci5oPgorCisjaWYgUExBVEZPUk0oR1RLKQorI2luY2x1ZGUgPHd0Zi9nb2JqZWN0L0dSZWZQdHIu
aD4KK3R5cGVkZWYgc3RydWN0IF9HU291cmNlIEdTb3VyY2U7Cit0eXBlZGVmIHN0cnVjdCBfR01h
aW5Mb29wIEdNYWluTG9vcDsKK3R5cGVkZWYgc3RydWN0IF9HTWFpbkNvbnRleHQgR01haW5Db250
ZXh0OwordHlwZWRlZiBpbnQgZ2Jvb2xlYW47CisjZW5kaWYKKworbmFtZXNwYWNlIFdlYkNvcmUg
eworCitjbGFzcyBSdW5Mb29wIHsKK3B1YmxpYzoKKyAgICAvLyBNdXN0IGJlIGNhbGxlZCBmcm9t
IHRoZSBtYWluIHRocmVhZC4KKyAgICBzdGF0aWMgdm9pZCBpbml0aWFsaXplTWFpblJ1bkxvb3Ao
KTsKKworICAgIHN0YXRpYyBSdW5Mb29wKiBjdXJyZW50KCk7CisgICAgc3RhdGljIFJ1bkxvb3Aq
IG1haW4oKTsKKworICAgIHZvaWQgZGlzcGF0Y2goY29uc3QgRnVuY3Rpb248dm9pZCgpPiYpOwor
CisgICAgc3RhdGljIHZvaWQgcnVuKCk7CisgICAgdm9pZCBzdG9wKCk7CisKKyNpZiBQTEFURk9S
TShNQUMpCisgICAgdm9pZCBydW5Gb3JEdXJhdGlvbihkb3VibGUgZHVyYXRpb24pOworI2VuZGlm
CisgICAgCisgICAgY2xhc3MgVGltZXJCYXNlIHsKKyAgICAgICAgZnJpZW5kIGNsYXNzIFJ1bkxv
b3A7CisgICAgcHVibGljOgorICAgICAgICBUaW1lckJhc2UoUnVuTG9vcCopOworICAgICAgICB2
aXJ0dWFsIH5UaW1lckJhc2UoKTsKKworICAgICAgICB2b2lkIHN0YXJ0UmVwZWF0aW5nKGRvdWJs
ZSByZXBlYXRJbnRlcnZhbCkgeyBzdGFydChyZXBlYXRJbnRlcnZhbCwgdHJ1ZSk7IH0KKyAgICAg
ICAgdm9pZCBzdGFydE9uZVNob3QoZG91YmxlIGludGVydmFsKSB7IHN0YXJ0KGludGVydmFsLCBm
YWxzZSk7IH0KKworICAgICAgICB2b2lkIHN0b3AoKTsKKyAgICAgICAgYm9vbCBpc0FjdGl2ZSgp
IGNvbnN0OworCisgICAgICAgIHZpcnR1YWwgdm9pZCBmaXJlZCgpID0gMDsKKworICAgIHByaXZh
dGU6CisgICAgICAgIHZvaWQgc3RhcnQoZG91YmxlIG5leHRGaXJlSW50ZXJ2YWwsIGJvb2wgcmVw
ZWF0KTsKKworICAgICAgICBSdW5Mb29wKiBtX3J1bkxvb3A7CisKKyNpZiBQTEFURk9STShXSU4p
CisgICAgICAgIHN0YXRpYyB2b2lkIHRpbWVyRmlyZWQoUnVuTG9vcCosIHVpbnQ2NF90IElEKTsK
KyAgICAgICAgdWludDY0X3QgbV9JRDsKKyAgICAgICAgYm9vbCBtX2lzUmVwZWF0aW5nOworI2Vs
aWYgUExBVEZPUk0oTUFDKQorICAgICAgICBzdGF0aWMgdm9pZCB0aW1lckZpcmVkKENGUnVuTG9v
cFRpbWVyUmVmLCB2b2lkKik7CisgICAgICAgIENGUnVuTG9vcFRpbWVyUmVmIG1fdGltZXI7Cisj
ZWxpZiBQTEFURk9STShRVCkKKyAgICAgICAgc3RhdGljIHZvaWQgdGltZXJGaXJlZChSdW5Mb29w
KiwgaW50IElEKTsKKyAgICAgICAgaW50IG1fSUQ7CisgICAgICAgIGJvb2wgbV9pc1JlcGVhdGlu
ZzsKKyNlbGlmIFBMQVRGT1JNKEdUSykKKyAgICAgICAgc3RhdGljIGdib29sZWFuIHRpbWVyRmly
ZWRDYWxsYmFjayhSdW5Mb29wOjpUaW1lckJhc2UqKTsKKyAgICAgICAgZ2Jvb2xlYW4gaXNSZXBl
YXRpbmcoKSBjb25zdCB7IHJldHVybiBtX2lzUmVwZWF0aW5nOyB9CisgICAgICAgIHZvaWQgY2xl
YXJUaW1lclNvdXJjZSgpOworICAgICAgICBHUmVmUHRyPEdTb3VyY2U+IG1fdGltZXJTb3VyY2U7
CisgICAgICAgIGdib29sZWFuIG1faXNSZXBlYXRpbmc7CisjZW5kaWYKKyAgICB9OworCisgICAg
dGVtcGxhdGUgPHR5cGVuYW1lIFRpbWVyRmlyZWRDbGFzcz4KKyAgICBjbGFzcyBUaW1lciA6IHB1
YmxpYyBUaW1lckJhc2UgeworICAgIHB1YmxpYzoKKyAgICAgICAgdHlwZWRlZiB2b2lkIChUaW1l
ckZpcmVkQ2xhc3M6OipUaW1lckZpcmVkRnVuY3Rpb24pKCk7CisKKyAgICAgICAgVGltZXIoUnVu
TG9vcCogcnVuTG9vcCwgVGltZXJGaXJlZENsYXNzKiBvLCBUaW1lckZpcmVkRnVuY3Rpb24gZikK
KyAgICAgICAgICAgIDogVGltZXJCYXNlKHJ1bkxvb3ApCisgICAgICAgICAgICAsIG1fb2JqZWN0
KG8pCisgICAgICAgICAgICAsIG1fZnVuY3Rpb24oZikKKyAgICAgICAgeworICAgICAgICB9CisK
KyAgICBwcml2YXRlOgorICAgICAgICB2aXJ0dWFsIHZvaWQgZmlyZWQoKSB7IChtX29iamVjdC0+
Km1fZnVuY3Rpb24pKCk7IH0KKworICAgICAgICBUaW1lckZpcmVkQ2xhc3MqIG1fb2JqZWN0Owor
ICAgICAgICBUaW1lckZpcmVkRnVuY3Rpb24gbV9mdW5jdGlvbjsKKyAgICB9OworCitwcml2YXRl
OgorICAgIGZyaWVuZCBjbGFzcyBXVEY6OlRocmVhZFNwZWNpZmljPFJ1bkxvb3A+OworCisgICAg
UnVuTG9vcCgpOworICAgIH5SdW5Mb29wKCk7CisKKyAgICB2b2lkIHBlcmZvcm1Xb3JrKCk7Cisg
ICAgdm9pZCB3YWtlVXAoKTsKKworICAgIE11dGV4IG1fZnVuY3Rpb25RdWV1ZUxvY2s7CisgICAg
VmVjdG9yPEZ1bmN0aW9uPHZvaWQoKT4gPiBtX2Z1bmN0aW9uUXVldWU7CisKKyNpZiBQTEFURk9S
TShXSU4pCisgICAgc3RhdGljIGJvb2wgcmVnaXN0ZXJSdW5Mb29wTWVzc2FnZVdpbmRvd0NsYXNz
KCk7CisgICAgc3RhdGljIExSRVNVTFQgQ0FMTEJBQ0sgUnVuTG9vcFduZFByb2MoSFdORCwgVUlO
VCwgV1BBUkFNLCBMUEFSQU0pOworICAgIExSRVNVTFQgd25kUHJvYyhIV05EIGhXbmQsIFVJTlQg
bWVzc2FnZSwgV1BBUkFNIHdQYXJhbSwgTFBBUkFNIGxQYXJhbSk7CisgICAgSFdORCBtX3J1bkxv
b3BNZXNzYWdlV2luZG93OworCisgICAgdHlwZWRlZiBIYXNoTWFwPHVpbnQ2NF90LCBUaW1lckJh
c2UqPiBUaW1lck1hcDsKKyAgICBUaW1lck1hcCBtX2FjdGl2ZVRpbWVyczsKKyNlbGlmIFBMQVRG
T1JNKE1BQykKKyAgICBzdGF0aWMgdm9pZCBwZXJmb3JtV29yayh2b2lkKik7CisgICAgQ0ZSdW5M
b29wUmVmIG1fcnVuTG9vcDsKKyAgICBDRlJ1bkxvb3BTb3VyY2VSZWYgbV9ydW5Mb29wU291cmNl
OworICAgIGludCBtX25lc3RpbmdMZXZlbDsKKyNlbGlmIFBMQVRGT1JNKFFUKQorICAgIHR5cGVk
ZWYgSGFzaE1hcDxpbnQsIFRpbWVyQmFzZSo+IFRpbWVyTWFwOworICAgIFRpbWVyTWFwIG1fYWN0
aXZlVGltZXJzOworICAgIGNsYXNzIFRpbWVyT2JqZWN0OworICAgIFRpbWVyT2JqZWN0KiBtX3Rp
bWVyT2JqZWN0OworI2VsaWYgUExBVEZPUk0oR1RLKQorcHVibGljOgorICAgIHN0YXRpYyBnYm9v
bGVhbiBxdWV1ZVdvcmsoUnVuTG9vcCopOworICAgIEdNYWluTG9vcCogbWFpbkxvb3AoKTsKK3By
aXZhdGU6CisgICAgR01haW5Db250ZXh0KiBtX3J1bkxvb3BDb250ZXh0OworICAgIEdNYWluTG9v
cCogbV9ydW5Mb29wTWFpbjsKKyNlbmRpZgorfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQor
CisjZW5kaWYgLy8gUnVuTG9vcF9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ndGsvUnVuTG9vcEd0ay5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ndGsvUnVuTG9v
cEd0ay5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uOTI5YTdiOThlYmZlNGM2NDY5MTliMzM2MjQ3NGNmYTdiYzkx
NDU5YgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9SdW5M
b29wR3RrLmNwcApAQCAtMCwwICsxLDEzNyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMCBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBQb3J0aW9ucyBDb3B5cmlnaHQgKGMp
IDIwMTAgTW90b3JvbGEgTW9iaWxpdHksIEluYy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgor
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1
dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k
dWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50
YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRp
b24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJ
VFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQg
V0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElF
RCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNV
TEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJ
TkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5E
SVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJ
QUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9G
CisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1Ig
UFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5E
IE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RS
SUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNF
KQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUs
IEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgor
ICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJSdW5Mb29wLmgiCisKKyNpbmNs
dWRlIDxnbGliLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworUnVuTG9vcDo6UnVuTG9vcCgp
Cit7CisgICAgbV9ydW5Mb29wQ29udGV4dCA9IGdfbWFpbl9jb250ZXh0X2RlZmF1bHQoKTsKKyAg
ICBBU1NFUlQobV9ydW5Mb29wQ29udGV4dCk7CisgICAgbV9ydW5Mb29wTWFpbiA9IGdfbWFpbl9s
b29wX25ldyhtX3J1bkxvb3BDb250ZXh0LCBGQUxTRSk7CisgICAgQVNTRVJUKG1fcnVuTG9vcE1h
aW4pOworfQorCitSdW5Mb29wOjp+UnVuTG9vcCgpCit7CisgICAgaWYgKG1fcnVuTG9vcE1haW4p
IHsKKyAgICAgICAgaWYgKGdfbWFpbl9sb29wX2lzX3J1bm5pbmcobV9ydW5Mb29wTWFpbikpCisg
ICAgICAgICAgICBnX21haW5fbG9vcF9xdWl0KG1fcnVuTG9vcE1haW4pOworICAgICAgICBnX21h
aW5fbG9vcF91bnJlZihtX3J1bkxvb3BNYWluKTsKKyAgICB9CisKKyAgICBpZiAobV9ydW5Mb29w
Q29udGV4dCkKKyAgICAgICAgZ19tYWluX2NvbnRleHRfdW5yZWYobV9ydW5Mb29wQ29udGV4dCk7
Cit9CisKK3ZvaWQgUnVuTG9vcDo6cnVuKCkKK3sKKyAgICBnX21haW5fbG9vcF9ydW4oUnVuTG9v
cDo6bWFpbigpLT5tYWluTG9vcCgpKTsKK30KKworR01haW5Mb29wKiBSdW5Mb29wOjptYWluTG9v
cCgpCit7CisgICAgcmV0dXJuIG1fcnVuTG9vcE1haW47Cit9CisKK3ZvaWQgUnVuTG9vcDo6c3Rv
cCgpCit7CisgICAgZ19tYWluX2xvb3BfcXVpdChtX3J1bkxvb3BNYWluKTsKK30KKworZ2Jvb2xl
YW4gUnVuTG9vcDo6cXVldWVXb3JrKFJ1bkxvb3AqIHJ1bkxvb3ApCit7CisgICAgcnVuTG9vcC0+
cGVyZm9ybVdvcmsoKTsKKyAgICByZXR1cm4gRkFMU0U7Cit9CisKK3ZvaWQgUnVuTG9vcDo6d2Fr
ZVVwKCkKK3sKKyAgICBHUmVmUHRyPEdTb3VyY2U+IHNvdXJjZSA9IGFkb3B0R1JlZihnX2lkbGVf
c291cmNlX25ldygpKTsKKyAgICBnX3NvdXJjZV9zZXRfcHJpb3JpdHkoc291cmNlLmdldCgpLCBH
X1BSSU9SSVRZX0RFRkFVTFQpOworICAgIGdfc291cmNlX3NldF9jYWxsYmFjayhzb3VyY2UuZ2V0
KCksIHJlaW50ZXJwcmV0X2Nhc3Q8R1NvdXJjZUZ1bmM+KCZSdW5Mb29wOjpxdWV1ZVdvcmspLCB0
aGlzLCAwKTsKKyAgICBnX3NvdXJjZV9hdHRhY2goc291cmNlLmdldCgpLCBtX3J1bkxvb3BDb250
ZXh0KTsKKworICAgIGdfbWFpbl9jb250ZXh0X3dha2V1cChtX3J1bkxvb3BDb250ZXh0KTsKK30K
KworUnVuTG9vcDo6VGltZXJCYXNlOjpUaW1lckJhc2UoUnVuTG9vcCogcnVuTG9vcCkKKyAgICA6
IG1fcnVuTG9vcChydW5Mb29wKQorICAgICwgbV90aW1lclNvdXJjZSgwKQoreworfQorCitSdW5M
b29wOjpUaW1lckJhc2U6On5UaW1lckJhc2UoKQoreworICAgIHN0b3AoKTsKK30KKwordm9pZCBS
dW5Mb29wOjpUaW1lckJhc2U6OmNsZWFyVGltZXJTb3VyY2UoKQoreworICAgIG1fdGltZXJTb3Vy
Y2UgPSAwOworfQorCitnYm9vbGVhbiBSdW5Mb29wOjpUaW1lckJhc2U6OnRpbWVyRmlyZWRDYWxs
YmFjayhSdW5Mb29wOjpUaW1lckJhc2UqIHRpbWVyKQoreworICAgIEdTb3VyY2UqIGN1cnJlbnRU
aW1lclNvdXJjZSA9IHRpbWVyLT5tX3RpbWVyU291cmNlLmdldCgpOworICAgIGJvb2wgaXNSZXBl
YXRpbmcgPSB0aW1lci0+aXNSZXBlYXRpbmcoKTsKKyAgICAvLyBUaGlzIGNhbiBjaGFuZ2UgdGhl
IHRpbWVyU291cmNlIGJ5IHN0YXJ0aW5nIGEgbmV3IHRpbWVyIHdpdGhpbiB0aGUgY2FsbGJhY2su
CisgICAgdGltZXItPmZpcmVkKCk7CisgICAgaWYgKCFpc1JlcGVhdGluZyAmJiBjdXJyZW50VGlt
ZXJTb3VyY2UgPT0gdGltZXItPm1fdGltZXJTb3VyY2UuZ2V0KCkpCisgICAgICAgIHRpbWVyLT5j
bGVhclRpbWVyU291cmNlKCk7CisgICAgcmV0dXJuIGlzUmVwZWF0aW5nOworfQorCit2b2lkIFJ1
bkxvb3A6OlRpbWVyQmFzZTo6c3RhcnQoZG91YmxlIGZpcmVJbnRlcnZhbCwgYm9vbCByZXBlYXQp
Cit7CisgICAgaWYgKG1fdGltZXJTb3VyY2UpCisgICAgICAgIHN0b3AoKTsKKworICAgIG1fdGlt
ZXJTb3VyY2UgPSBhZG9wdEdSZWYoZ190aW1lb3V0X3NvdXJjZV9uZXcoc3RhdGljX2Nhc3Q8Z3Vp
bnQ+KGZpcmVJbnRlcnZhbCAqIDEwMDApKSk7CisgICAgbV9pc1JlcGVhdGluZyA9IHJlcGVhdDsK
KyAgICBnX3NvdXJjZV9zZXRfY2FsbGJhY2sobV90aW1lclNvdXJjZS5nZXQoKSwgcmVpbnRlcnBy
ZXRfY2FzdDxHU291cmNlRnVuYz4oJlJ1bkxvb3A6OlRpbWVyQmFzZTo6dGltZXJGaXJlZENhbGxi
YWNrKSwgdGhpcywgMCk7CisgICAgZ19zb3VyY2VfYXR0YWNoKG1fdGltZXJTb3VyY2UuZ2V0KCks
IG1fcnVuTG9vcC0+bV9ydW5Mb29wQ29udGV4dCk7Cit9CisKK3ZvaWQgUnVuTG9vcDo6VGltZXJC
YXNlOjpzdG9wKCkKK3sKKyAgICBpZiAoIW1fdGltZXJTb3VyY2UpCisgICAgICAgIHJldHVybjsK
KworICAgIGdfc291cmNlX2Rlc3Ryb3kobV90aW1lclNvdXJjZS5nZXQoKSk7CisgICAgY2xlYXJU
aW1lclNvdXJjZSgpOworfQorCitib29sIFJ1bkxvb3A6OlRpbWVyQmFzZTo6aXNBY3RpdmUoKSBj
b25zdAoreworICAgIHJldHVybiBtX3RpbWVyU291cmNlOworfQorCit9IC8vIG5hbWVzcGFjZSBX
ZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvUnVuTG9vcE1h
Yy5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9SdW5Mb29wTWFjLm1tCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLmE1NjdhZmRkNWM4NzdjYjU4ZTliMDMxODg0MDgyOGQwZjAxNjBkMGUKLS0tIC9kZXYvbnVs
bAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvUnVuTG9vcE1hYy5tbQpAQCAtMCww
ICsxLDE1NyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMCBBcHBsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6
CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFy
eSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0
aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3
aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBC
WSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBF
WFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklU
TkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBF
VkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBG
T1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwg
T1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NT
IE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikg
SE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElO
CisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJ
R0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNF
IE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZ
IE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbXBvcnQgImNvbmZpZy5oIgorI2ltcG9ydCAiUnVu
TG9vcC5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK3ZvaWQgUnVuTG9vcDo6cGVyZm9ybVdv
cmsodm9pZCogY29udGV4dCkKK3sKKyAgICAvLyBXcmFwIG1haW4gdGhyZWFkIGluIGFuIEF1dG9y
ZWxlYXNlIHBvb2wuICBTZW5kaW5nIG1lc3NhZ2VzIGNhbiBjYWxsIAorICAgIC8vIGludG8gb2Jq
YyBjb2RlIGFuZCBhY2N1bXVsYXRlIG1lbW9yeS4gIAorICAgIGlmIChjdXJyZW50KCkgPT0gbWFp
bigpKSB7CisgICAgICAgIE5TQXV0b3JlbGVhc2VQb29sICpwb29sID0gW1tOU0F1dG9yZWxlYXNl
UG9vbCBhbGxvY10gaW5pdF07CisgICAgICAgIHN0YXRpY19jYXN0PFJ1bkxvb3AqPihjb250ZXh0
KS0+cGVyZm9ybVdvcmsoKTsKKyAgICAgICAgW3Bvb2wgZHJhaW5dOworICAgIH0gZWxzZQorICAg
ICAgICBzdGF0aWNfY2FzdDxSdW5Mb29wKj4oY29udGV4dCktPnBlcmZvcm1Xb3JrKCk7Cit9CisK
K1J1bkxvb3A6OlJ1bkxvb3AoKQorICAgIDogbV9ydW5Mb29wKENGUnVuTG9vcEdldEN1cnJlbnQo
KSkKKyAgICAsIG1fbmVzdGluZ0xldmVsKDApCit7CisgICAgQ0ZSdW5Mb29wU291cmNlQ29udGV4
dCBjb250ZXh0ID0geyAwLCB0aGlzLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCBwZXJmb3JtV29yayB9
OworICAgIG1fcnVuTG9vcFNvdXJjZSA9IENGUnVuTG9vcFNvdXJjZUNyZWF0ZShrQ0ZBbGxvY2F0
b3JEZWZhdWx0LCAwLCAmY29udGV4dCk7CisgICAgQ0ZSdW5Mb29wQWRkU291cmNlKG1fcnVuTG9v
cCwgbV9ydW5Mb29wU291cmNlLCBrQ0ZSdW5Mb29wQ29tbW9uTW9kZXMpOworfQorCitSdW5Mb29w
Ojp+UnVuTG9vcCgpCit7CisgICAgLy8gRklYTUU6IFRlYXIgZG93biB0aGUgd29yayBpdGVtIHF1
ZXVlIGhlcmUuCisgICAgQ0ZSdW5Mb29wU291cmNlSW52YWxpZGF0ZShtX3J1bkxvb3BTb3VyY2Up
OworICAgIENGUmVsZWFzZShtX3J1bkxvb3BTb3VyY2UpOworfQorCit2b2lkIFJ1bkxvb3A6OnJ1
bigpCit7CisgICAgY3VycmVudCgpLT5tX25lc3RpbmdMZXZlbCsrOworICAgIGlmIChjdXJyZW50
KCkgPT0gbWFpbigpICYmIGN1cnJlbnQoKS0+bV9uZXN0aW5nTGV2ZWwgPT0gMSkgeworICAgICAg
ICAvLyBVc2UgLVtOU0FwcGxpY2F0aW9uIHJ1bl0gZm9yIHRoZSBtYWluIHJ1biBsb29wLgorICAg
ICAgICBbTlNBcHAgcnVuXTsKKyAgICB9IGVsc2UgeworICAgICAgICBOU0F1dG9yZWxlYXNlUG9v
bCAqcG9vbCA9IFtbTlNBdXRvcmVsZWFzZVBvb2wgYWxsb2NdIGluaXRdOworICAgICAgICBDRlJ1
bkxvb3BSdW4oKTsKKyAgICAgICAgW3Bvb2wgZHJhaW5dOworICAgIH0KKyAgICBjdXJyZW50KCkt
Pm1fbmVzdGluZ0xldmVsLS07Cit9CisKK3ZvaWQgUnVuTG9vcDo6cnVuRm9yRHVyYXRpb24oZG91
YmxlIGR1cmF0aW9uKQoreworICAgIENGUnVuTG9vcFJ1bkluTW9kZShrQ0ZSdW5Mb29wRGVmYXVs
dE1vZGUsIGR1cmF0aW9uLCB0cnVlKTsKK30KKwordm9pZCBSdW5Mb29wOjpzdG9wKCkKK3sKKyAg
ICBBU1NFUlQobV9ydW5Mb29wID09IENGUnVuTG9vcEdldEN1cnJlbnQoKSk7CisgICAgCisgICAg
aWYgKG1fcnVuTG9vcCA9PSBtYWluKCktPm1fcnVuTG9vcCAmJiBtX25lc3RpbmdMZXZlbCA9PSAx
KSB7CisgICAgICAgIFtOU0FwcCBzdG9wOm5pbF07CisgICAgICAgIE5TRXZlbnQgKmV2ZW50ID0g
W05TRXZlbnQgb3RoZXJFdmVudFdpdGhUeXBlOk5TQXBwbGljYXRpb25EZWZpbmVkCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvY2F0aW9uOk5TTWFrZVBvaW50
KDAsIDApCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtb2RpZmllckZs
YWdzOjAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aW1lc3Rh
bXA6MC4wCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpbmRvd051
bWJlcjowCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb250
ZXh0Om5pbAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Vi
dHlwZTogMAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBk
YXRhMTowCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRh
dGEyOjBdOworICAgICAgICBbTlNBcHAgcG9zdEV2ZW50OmV2ZW50IGF0U3RhcnQ6dHJ1ZV07Cisg
ICAgfSBlbHNlCisgICAgICAgIENGUnVuTG9vcFN0b3AobV9ydW5Mb29wKTsKK30KKwordm9pZCBS
dW5Mb29wOjp3YWtlVXAoKQoreworICAgIENGUnVuTG9vcFNvdXJjZVNpZ25hbChtX3J1bkxvb3BT
b3VyY2UpOworICAgIENGUnVuTG9vcFdha2VVcChtX3J1bkxvb3ApOworfQorCisvLyBSdW5Mb29w
OjpUaW1lcgorCit2b2lkIFJ1bkxvb3A6OlRpbWVyQmFzZTo6dGltZXJGaXJlZChDRlJ1bkxvb3BU
aW1lclJlZiwgdm9pZCogY29udGV4dCkKK3sKKyAgICBUaW1lckJhc2UqIHRpbWVyID0gc3RhdGlj
X2Nhc3Q8VGltZXJCYXNlKj4oY29udGV4dCk7CisgICAgCisgICAgLy8gV3JhcCBtYWluIHRocmVh
ZCBpbiBhbiBBdXRvcmVsZWFzZSBwb29sLiAgVGhlIHRpbWVyIGNhbiBjYWxsIAorICAgIC8vIGlu
dG8gb2JqYyBjb2RlIGFuZCBhY2N1bXVsYXRlIG1lbW9yeSBvdXRzaWRlIG9mIHRoZSBtYWluIGV2
ZW50IGxvb3AuCisgICAgaWYgKGN1cnJlbnQoKSA9PSBtYWluKCkpIHsKKyAgICAgICAgTlNBdXRv
cmVsZWFzZVBvb2wgKnBvb2wgPSBbW05TQXV0b3JlbGVhc2VQb29sIGFsbG9jXSBpbml0XTsgCisg
ICAgICAgIHRpbWVyLT5maXJlZCgpOworICAgICAgICBbcG9vbCBkcmFpbl07CisgICAgfSBlbHNl
CisgICAgICAgIHRpbWVyLT5maXJlZCgpOworfQorCitSdW5Mb29wOjpUaW1lckJhc2U6OlRpbWVy
QmFzZShSdW5Mb29wKiBydW5Mb29wKQorICAgIDogbV9ydW5Mb29wKHJ1bkxvb3ApCisgICAgLCBt
X3RpbWVyKDApCit7Cit9CisKK1J1bkxvb3A6OlRpbWVyQmFzZTo6flRpbWVyQmFzZSgpCit7Cisg
ICAgc3RvcCgpOworfQorCit2b2lkIFJ1bkxvb3A6OlRpbWVyQmFzZTo6c3RhcnQoZG91YmxlIG5l
eHRGaXJlSW50ZXJ2YWwsIGJvb2wgcmVwZWF0KQoreworICAgIGlmIChtX3RpbWVyKQorICAgICAg
ICBzdG9wKCk7CisKKyAgICBDRlJ1bkxvb3BUaW1lckNvbnRleHQgY29udGV4dCA9IHsgMCwgdGhp
cywgMCwgMCwgMCB9OworICAgIENGVGltZUludGVydmFsIHJlcGVhdEludGVydmFsID0gcmVwZWF0
ID8gbmV4dEZpcmVJbnRlcnZhbCA6IDA7CisgICAgbV90aW1lciA9IENGUnVuTG9vcFRpbWVyQ3Jl
YXRlKGtDRkFsbG9jYXRvckRlZmF1bHQsIENGQWJzb2x1dGVUaW1lR2V0Q3VycmVudCgpICsgbmV4
dEZpcmVJbnRlcnZhbCwgcmVwZWF0SW50ZXJ2YWwsIDAsIDAsIHRpbWVyRmlyZWQsICZjb250ZXh0
KTsKKyAgICBDRlJ1bkxvb3BBZGRUaW1lcihtX3J1bkxvb3AtPm1fcnVuTG9vcCwgbV90aW1lciwg
a0NGUnVuTG9vcENvbW1vbk1vZGVzKTsKK30KKwordm9pZCBSdW5Mb29wOjpUaW1lckJhc2U6OnN0
b3AoKQoreworICAgIGlmICghbV90aW1lcikKKyAgICAgICAgcmV0dXJuOworCisgICAgQ0ZSdW5M
b29wVGltZXJJbnZhbGlkYXRlKG1fdGltZXIpOworICAgIENGUmVsZWFzZShtX3RpbWVyKTsKKyAg
ICBtX3RpbWVyID0gMDsKK30KKworYm9vbCBSdW5Mb29wOjpUaW1lckJhc2U6OmlzQWN0aXZlKCkg
Y29uc3QKK3sKKyAgICByZXR1cm4gbV90aW1lciAmJiBDRlJ1bkxvb3BUaW1lcklzVmFsaWQobV90
aW1lcik7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL3F0L1J1bkxvb3BRdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9xdC9SdW5Mb29wUXQuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjJhODdlMmZjOGY2Njc3NzY5ZjczMTQzZTU3
MWUwOWM1YTU0YzZlYmEKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9xdC9SdW5Mb29wUXQuY3BwCkBAIC0wLDAgKzEsMTY2IEBACisvKgorICogQ29weXJpZ2h0IChD
KSAyMDEwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykg
MjAxMCBOb2tpYSBDb3Jwb3JhdGlvbiBhbmQvb3IgaXRzIHN1YnNpZGlhcnkoLWllcykKKyAqCisg
KiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0
aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1
Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRh
dGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlv
bi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElU
UyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBX
QVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVE
IFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VM
QVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElO
Qy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJ
UkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElB
TCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YK
KyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQ
Uk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQg
T04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJ
Q1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0Up
CisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwg
RVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisg
Ki8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlJ1bkxvb3AuaCIKKworI2luY2x1
ZGUgPFFBYnN0cmFjdEV2ZW50RGlzcGF0Y2hlcj4KKyNpbmNsdWRlIDxRQ29yZUFwcGxpY2F0aW9u
PgorI2luY2x1ZGUgPFFNZXRhTWV0aG9kPgorI2luY2x1ZGUgPFFNZXRhT2JqZWN0PgorI2luY2x1
ZGUgPFFPYmplY3Q+CisjaW5jbHVkZSA8UVRpbWVyRXZlbnQ+CisKK25hbWVzcGFjZSBXZWJDb3Jl
IHsKKworY2xhc3MgUnVuTG9vcDo6VGltZXJPYmplY3QgOiBwdWJsaWMgUU9iamVjdCB7CisgICAg
UV9PQkpFQ1QKK3B1YmxpYzoKKyAgICBUaW1lck9iamVjdChSdW5Mb29wKiBydW5Mb29wKSA6IG1f
cnVuTG9vcChydW5Mb29wKQorICAgIHsKKyAgICAgICAgaW50IG1ldGhvZEluZGV4ID0gbWV0YU9i
amVjdCgpLT5pbmRleE9mTWV0aG9kKCJwZXJmb3JtV29yaygpIik7CisgICAgICAgIG1fbWV0aG9k
ID0gbWV0YU9iamVjdCgpLT5tZXRob2QobWV0aG9kSW5kZXgpOworICAgIH0KKworICAgIFFfU0xP
VCB2b2lkIHBlcmZvcm1Xb3JrKCkgeyBtX3J1bkxvb3AtPnBlcmZvcm1Xb3JrKCk7IH0KKyAgICBp
bmxpbmUgdm9pZCB3YWtlVXAoKSB7IG1fbWV0aG9kLmludm9rZSh0aGlzLCBRdDo6UXVldWVkQ29u
bmVjdGlvbik7IH0KKworcHJvdGVjdGVkOgorICAgIHZpcnR1YWwgdm9pZCB0aW1lckV2ZW50KFFU
aW1lckV2ZW50KiBldmVudCkKKyAgICB7CisgICAgICAgIFJ1bkxvb3A6OlRpbWVyQmFzZTo6dGlt
ZXJGaXJlZChtX3J1bkxvb3AsIGV2ZW50LT50aW1lcklkKCkpOworICAgIH0KKworcHJpdmF0ZToK
KyAgICBSdW5Mb29wKiBtX3J1bkxvb3A7CisgICAgUU1ldGFNZXRob2QgbV9tZXRob2Q7Cit9Owor
CitzdGF0aWMgUUV2ZW50TG9vcCogY3VycmVudEV2ZW50TG9vcDsKKwordm9pZCBSdW5Mb29wOjpy
dW4oKQoreworICAgIHN0YXRpYyBib29sIG1haW5FdmVudExvb3BJc1J1bm5pbmcgPSBmYWxzZTsK
KyAgICBpZiAoIW1haW5FdmVudExvb3BJc1J1bm5pbmcpIHsKKyAgICAgICAgbWFpbkV2ZW50TG9v
cElzUnVubmluZyA9IHRydWU7CisgICAgICAgIFFDb3JlQXBwbGljYXRpb246OmV4ZWMoKTsKKyAg
ICAgICAgbWFpbkV2ZW50TG9vcElzUnVubmluZyA9IGZhbHNlOworICAgIH0gZWxzZSB7CisgICAg
ICAgIFFFdmVudExvb3AgZXZlbnRMb29wOworCisgICAgICAgIFFFdmVudExvb3AqIHByZXZpb3Vz
RXZlbnRMb29wID0gY3VycmVudEV2ZW50TG9vcDsKKyAgICAgICAgY3VycmVudEV2ZW50TG9vcCA9
ICZldmVudExvb3A7CisKKyAgICAgICAgZXZlbnRMb29wLmV4ZWMoKTsKKworICAgICAgICBjdXJy
ZW50RXZlbnRMb29wID0gcHJldmlvdXNFdmVudExvb3A7CisgICAgfQorfQorCit2b2lkIFJ1bkxv
b3A6OnN0b3AoKQoreworICAgIGlmIChjdXJyZW50RXZlbnRMb29wKQorICAgICAgICBjdXJyZW50
RXZlbnRMb29wLT5leGl0KCk7CisgICAgZWxzZQorICAgICAgICBRQ29yZUFwcGxpY2F0aW9uOjpl
eGl0KCk7Cit9CisKK1J1bkxvb3A6OlJ1bkxvb3AoKQorICAgIDogbV90aW1lck9iamVjdChuZXcg
VGltZXJPYmplY3QodGhpcykpCit7Cit9CisKK1J1bkxvb3A6On5SdW5Mb29wKCkKK3sKKyAgICBk
ZWxldGUgbV90aW1lck9iamVjdDsKK30KKwordm9pZCBSdW5Mb29wOjp3YWtlVXAoKQoreworICAg
IG1fdGltZXJPYmplY3QtPndha2VVcCgpOworfQorCisvLyBSdW5Mb29wOjpUaW1lcgorCit2b2lk
IFJ1bkxvb3A6OlRpbWVyQmFzZTo6dGltZXJGaXJlZChSdW5Mb29wKiBydW5Mb29wLCBpbnQgSUQp
Cit7CisgICAgVGltZXJNYXA6Oml0ZXJhdG9yIGl0ID0gcnVuTG9vcC0+bV9hY3RpdmVUaW1lcnMu
ZmluZChJRCk7CisgICAgQVNTRVJUKGl0ICE9IHJ1bkxvb3AtPm1fYWN0aXZlVGltZXJzLmVuZCgp
KTsKKyAgICBUaW1lckJhc2UqIHRpbWVyID0gaXQtPnNlY29uZDsKKworICAgIGlmICghdGltZXIt
Pm1faXNSZXBlYXRpbmcpIHsKKyAgICAgICAgLy8gU3RvcCB0aGUgdGltZXIgKGNhbGxpbmcgc3Rv
cCB3b3VsZCBuZWVkIGFub3RoZXIgaGFzaCB0YWJsZSBsb29rdXApLgorICAgICAgICBydW5Mb29w
LT5tX2FjdGl2ZVRpbWVycy5yZW1vdmUoaXQpOworICAgICAgICBydW5Mb29wLT5tX3RpbWVyT2Jq
ZWN0LT5raWxsVGltZXIodGltZXItPm1fSUQpOworICAgICAgICB0aW1lci0+bV9JRCA9IDA7Cisg
ICAgfQorCisgICAgdGltZXItPmZpcmVkKCk7Cit9CisKK1J1bkxvb3A6OlRpbWVyQmFzZTo6VGlt
ZXJCYXNlKFJ1bkxvb3AqIHJ1bkxvb3ApCisgICAgOiBtX3J1bkxvb3AocnVuTG9vcCkKKyAgICAs
IG1fSUQoMCkKKyAgICAsIG1faXNSZXBlYXRpbmcoZmFsc2UpCit7Cit9CisKK1J1bkxvb3A6OlRp
bWVyQmFzZTo6flRpbWVyQmFzZSgpCit7CisgICAgc3RvcCgpOworfQorCit2b2lkIFJ1bkxvb3A6
OlRpbWVyQmFzZTo6c3RhcnQoZG91YmxlIG5leHRGaXJlSW50ZXJ2YWwsIGJvb2wgcmVwZWF0KQor
eworICAgIHN0b3AoKTsKKyAgICBpbnQgbWlsbGlzID0gc3RhdGljX2Nhc3Q8aW50PihuZXh0Rmly
ZUludGVydmFsICogMTAwMCk7CisgICAgbV9pc1JlcGVhdGluZyA9IHJlcGVhdDsKKyAgICBtX0lE
ID0gbV9ydW5Mb29wLT5tX3RpbWVyT2JqZWN0LT5zdGFydFRpbWVyKG1pbGxpcyk7CisgICAgQVNT
RVJUKG1fSUQpOworICAgIG1fcnVuTG9vcC0+bV9hY3RpdmVUaW1lcnMuc2V0KG1fSUQsIHRoaXMp
OworfQorCit2b2lkIFJ1bkxvb3A6OlRpbWVyQmFzZTo6c3RvcCgpCit7CisgICAgaWYgKCFtX0lE
KQorICAgICAgICByZXR1cm47CisgICAgVGltZXJNYXA6Oml0ZXJhdG9yIGl0ID0gbV9ydW5Mb29w
LT5tX2FjdGl2ZVRpbWVycy5maW5kKG1fSUQpOworICAgIGlmIChpdCA9PSBtX3J1bkxvb3AtPm1f
YWN0aXZlVGltZXJzLmVuZCgpKQorICAgICAgICByZXR1cm47CisKKyAgICBtX3J1bkxvb3AtPm1f
YWN0aXZlVGltZXJzLnJlbW92ZShpdCk7CisgICAgbV9ydW5Mb29wLT5tX3RpbWVyT2JqZWN0LT5r
aWxsVGltZXIobV9JRCk7CisgICAgbV9JRCA9IDA7Cit9CisKK2Jvb2wgUnVuTG9vcDo6VGltZXJC
YXNlOjppc0FjdGl2ZSgpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1fSUQ7Cit9CisKKyNpbmNsdWRl
ICJSdW5Mb29wUXQubW9jIgorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS93aW4vUnVuTG9vcFdpbi5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS93aW4vUnVuTG9vcFdpbi5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMTIwYzI1MmE2Njg2ZjJi
NWNlM2RhZGQ5YjY0NGQwMDBjY2Q1YjM1ZAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL3dpbi9SdW5Mb29wV2luLmNwcApAQCAtMCwwICsxLDE4MSBAQAorLyoKKyAq
IENvcHlyaWdodCAoQykgMjAxMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgor
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1
dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k
dWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50
YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRp
b24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJ
VFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQg
V0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElF
RCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNV
TEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJ
TkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5E
SVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJ
QUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9G
CisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1Ig
UFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5E
IE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RS
SUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNF
KQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUs
IEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgor
ICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJSdW5Mb29wLmgiCisKKyNpbmNs
dWRlIDx3dGYvQ3VycmVudFRpbWUuaD4KKwordXNpbmcgbmFtZXNwYWNlIHN0ZDsKKworbmFtZXNw
YWNlIFdlYkNvcmUgeworCitzdGF0aWMgY29uc3QgVUlOVCBQZXJmb3JtV29ya01lc3NhZ2UgPSBX
TV9VU0VSICsgMTsKK3N0YXRpYyBjb25zdCBMUFdTVFIga1J1bkxvb3BNZXNzYWdlV2luZG93Q2xh
c3NOYW1lID0gTCJSdW5Mb29wTWVzc2FnZVdpbmRvdyI7CisKK0xSRVNVTFQgQ0FMTEJBQ0sgUnVu
TG9vcDo6UnVuTG9vcFduZFByb2MoSFdORCBoV25kLCBVSU5UIG1lc3NhZ2UsIFdQQVJBTSB3UGFy
YW0sIExQQVJBTSBsUGFyYW0pCit7CisgICAgTE9OR19QVFIgbG9uZ1B0ciA9IDo6R2V0V2luZG93
TG9uZ1B0cihoV25kLCAwKTsKKyAgICAKKyAgICBpZiAoUnVuTG9vcCogcnVuTG9vcCA9IHJlaW50
ZXJwcmV0X2Nhc3Q8UnVuTG9vcCo+KGxvbmdQdHIpKQorICAgICAgICByZXR1cm4gcnVuTG9vcC0+
d25kUHJvYyhoV25kLCBtZXNzYWdlLCB3UGFyYW0sIGxQYXJhbSk7CisKKyAgICBpZiAobWVzc2Fn
ZSA9PSBXTV9DUkVBVEUpIHsKKyAgICAgICAgTFBDUkVBVEVTVFJVQ1QgY3JlYXRlU3RydWN0ID0g
cmVpbnRlcnByZXRfY2FzdDxMUENSRUFURVNUUlVDVD4obFBhcmFtKTsKKworICAgICAgICAvLyBB
c3NvY2lhdGUgdGhlIFJ1bkxvb3Agd2l0aCB0aGUgd2luZG93LgorICAgICAgICA6OlNldFdpbmRv
d0xvbmdQdHIoaFduZCwgMCwgKExPTkdfUFRSKWNyZWF0ZVN0cnVjdC0+bHBDcmVhdGVQYXJhbXMp
OworICAgICAgICByZXR1cm4gMDsKKyAgICB9CisKKyAgICByZXR1cm4gOjpEZWZXaW5kb3dQcm9j
KGhXbmQsIG1lc3NhZ2UsIHdQYXJhbSwgbFBhcmFtKTsKK30KKworTFJFU1VMVCBSdW5Mb29wOjp3
bmRQcm9jKEhXTkQgaFduZCwgVUlOVCBtZXNzYWdlLCBXUEFSQU0gd1BhcmFtLCBMUEFSQU0gbFBh
cmFtKQoreworICAgIHN3aXRjaCAobWVzc2FnZSkgeworICAgIGNhc2UgUGVyZm9ybVdvcmtNZXNz
YWdlOgorICAgICAgICBwZXJmb3JtV29yaygpOworICAgICAgICByZXR1cm4gMDsKKyAgICBjYXNl
IFdNX1RJTUVSOgorICAgICAgICBSdW5Mb29wOjpUaW1lckJhc2U6OnRpbWVyRmlyZWQodGhpcywg
d1BhcmFtKTsKKyAgICAgICAgcmV0dXJuIDA7CisgICAgfQorCisgICAgcmV0dXJuIDo6RGVmV2lu
ZG93UHJvYyhoV25kLCBtZXNzYWdlLCB3UGFyYW0sIGxQYXJhbSk7Cit9CisKK3ZvaWQgUnVuTG9v
cDo6cnVuKCkKK3sKKyAgICBNU0cgbWVzc2FnZTsKKyAgICB3aGlsZSAoQk9PTCByZXN1bHQgPSA6
OkdldE1lc3NhZ2UoJm1lc3NhZ2UsIDAsIDAsIDApKSB7CisgICAgICAgIGlmIChyZXN1bHQgPT0g
LTEpCisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgOjpUcmFuc2xhdGVNZXNzYWdlKCZtZXNz
YWdlKTsKKyAgICAgICAgOjpEaXNwYXRjaE1lc3NhZ2UoJm1lc3NhZ2UpOworICAgIH0KK30KKwor
dm9pZCBSdW5Mb29wOjpzdG9wKCkKK3sKKyAgICA6OlBvc3RRdWl0TWVzc2FnZSgwKTsKK30KKwor
Ym9vbCBSdW5Mb29wOjpyZWdpc3RlclJ1bkxvb3BNZXNzYWdlV2luZG93Q2xhc3MoKQoreworICAg
IC8vIEZJWE1FOiBUaGlzIHJlYWxseSBvbmx5IG5lZWRzIHRvIGJlIGNhbGxlZCBvbmNlLgorCisg
ICAgV05EQ0xBU1NFWCB3aW5kb3dDbGFzcyA9IHsgMCB9OworICAgIHdpbmRvd0NsYXNzLmNiU2l6
ZSAgICAgICAgICA9IHNpemVvZih3aW5kb3dDbGFzcyk7CisgICAgd2luZG93Q2xhc3MubHBmbldu
ZFByb2MgICAgID0gUnVuTG9vcDo6UnVuTG9vcFduZFByb2M7CisgICAgd2luZG93Q2xhc3MuY2JX
bmRFeHRyYSAgICAgID0gc2l6ZW9mKFJ1bkxvb3AqKTsKKyAgICB3aW5kb3dDbGFzcy5scHN6Q2xh
c3NOYW1lICAgPSBrUnVuTG9vcE1lc3NhZ2VXaW5kb3dDbGFzc05hbWU7CisKKyAgICByZXR1cm4g
ISE6OlJlZ2lzdGVyQ2xhc3NFeCgmd2luZG93Q2xhc3MpOworfQorCitSdW5Mb29wOjpSdW5Mb29w
KCkKK3sKKyAgICByZWdpc3RlclJ1bkxvb3BNZXNzYWdlV2luZG93Q2xhc3MoKTsKKworICAgIG1f
cnVuTG9vcE1lc3NhZ2VXaW5kb3cgPSA6OkNyZWF0ZVdpbmRvdyhrUnVuTG9vcE1lc3NhZ2VXaW5k
b3dDbGFzc05hbWUsIDAsIDAsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIENXX1VTRURFRkFVTFQsIDAsIENXX1VTRURFRkFVTFQsIDAsCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEhXTkRfTUVTU0FHRSwgMCwgMCwgdGhpcyk7
CisgICAgQVNTRVJUKDo6SXNXaW5kb3cobV9ydW5Mb29wTWVzc2FnZVdpbmRvdykpOworfQorCitS
dW5Mb29wOjp+UnVuTG9vcCgpCit7CisgICAgLy8gRklYTUU6IFRlYXIgZG93biB0aGUgd29yayBp
dGVtIHF1ZXVlIGhlcmUuCit9CisKK3ZvaWQgUnVuTG9vcDo6d2FrZVVwKCkKK3sKKyAgICAvLyBG
SVhNRTogTm8gbmVlZCB0byB3YWtlIHVwIHRoZSBydW4gbG9vcCBpZiB3ZSd2ZSBhbHJlYWR5IGNh
bGxlZCBkaXNwYXRjaAorICAgIC8vIGJlZm9yZSB0aGUgcnVuIGxvb3AgaGFzIGhhZCB0aGUgdGlt
ZSB0byByZXNwb25kLgorICAgIDo6UG9zdE1lc3NhZ2UobV9ydW5Mb29wTWVzc2FnZVdpbmRvdywg
UGVyZm9ybVdvcmtNZXNzYWdlLCByZWludGVycHJldF9jYXN0PFdQQVJBTT4odGhpcyksIDApOwor
fQorCisvLyBSdW5Mb29wOjpUaW1lcgorCit2b2lkIFJ1bkxvb3A6OlRpbWVyQmFzZTo6dGltZXJG
aXJlZChSdW5Mb29wKiBydW5Mb29wLCB1aW50NjRfdCBJRCkKK3sKKyAgICBUaW1lck1hcDo6aXRl
cmF0b3IgaXQgPSBydW5Mb29wLT5tX2FjdGl2ZVRpbWVycy5maW5kKElEKTsKKyAgICBpZiAoaXQg
PT0gcnVuTG9vcC0+bV9hY3RpdmVUaW1lcnMuZW5kKCkpIHsKKyAgICAgICAgLy8gVGhlIHRpbWVy
IG11c3QgaGF2ZSBiZWVuIHN0b3BwZWQgYWZ0ZXIgdGhlIFdNX1RJTUVSIG1lc3NhZ2Ugd2FzIHBv
c3RlZCB0byB0aGUgbWVzc2FnZSBxdWV1ZS4KKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAg
IFRpbWVyQmFzZSogdGltZXIgPSBpdC0+c2Vjb25kOworCisgICAgaWYgKCF0aW1lci0+bV9pc1Jl
cGVhdGluZykgeworICAgICAgICBydW5Mb29wLT5tX2FjdGl2ZVRpbWVycy5yZW1vdmUoaXQpOwor
ICAgICAgICA6OktpbGxUaW1lcihydW5Mb29wLT5tX3J1bkxvb3BNZXNzYWdlV2luZG93LCBJRCk7
CisgICAgfQorCisgICAgdGltZXItPmZpcmVkKCk7Cit9CisKK3N0YXRpYyB1aW50NjRfdCBnZW5l
cmF0ZVRpbWVySUQoKQoreworICAgIHN0YXRpYyB1aW50NjRfdCB1bmlxdWVUaW1lcklEID0gMTsK
KyAgICByZXR1cm4gdW5pcXVlVGltZXJJRCsrOworfQorCitSdW5Mb29wOjpUaW1lckJhc2U6OlRp
bWVyQmFzZShSdW5Mb29wKiBydW5Mb29wKQorICAgIDogbV9ydW5Mb29wKHJ1bkxvb3ApCisgICAg
LCBtX0lEKGdlbmVyYXRlVGltZXJJRCgpKQorICAgICwgbV9pc1JlcGVhdGluZyhmYWxzZSkKK3sK
K30KKworUnVuTG9vcDo6VGltZXJCYXNlOjp+VGltZXJCYXNlKCkKK3sKKyAgICBzdG9wKCk7Cit9
CisKK3ZvaWQgUnVuTG9vcDo6VGltZXJCYXNlOjpzdGFydChkb3VibGUgbmV4dEZpcmVJbnRlcnZh
bCwgYm9vbCByZXBlYXQpCit7CisgICAgbV9pc1JlcGVhdGluZyA9IHJlcGVhdDsKKyAgICBtX3J1
bkxvb3AtPm1fYWN0aXZlVGltZXJzLnNldChtX0lELCB0aGlzKTsKKyAgICA6OlNldFRpbWVyKG1f
cnVuTG9vcC0+bV9ydW5Mb29wTWVzc2FnZVdpbmRvdywgbV9JRCwgbmV4dEZpcmVJbnRlcnZhbCAq
IDEwMDAsIDApOworfQorCit2b2lkIFJ1bkxvb3A6OlRpbWVyQmFzZTo6c3RvcCgpCit7CisgICAg
VGltZXJNYXA6Oml0ZXJhdG9yIGl0ID0gbV9ydW5Mb29wLT5tX2FjdGl2ZVRpbWVycy5maW5kKG1f
SUQpOworICAgIGlmIChpdCA9PSBtX3J1bkxvb3AtPm1fYWN0aXZlVGltZXJzLmVuZCgpKQorICAg
ICAgICByZXR1cm47CisKKyAgICBtX3J1bkxvb3AtPm1fYWN0aXZlVGltZXJzLnJlbW92ZShpdCk7
CisgICAgOjpLaWxsVGltZXIobV9ydW5Mb29wLT5tX3J1bkxvb3BNZXNzYWdlV2luZG93LCBtX0lE
KTsKK30KKworYm9vbCBSdW5Mb29wOjpUaW1lckJhc2U6OmlzQWN0aXZlKCkgY29uc3QKK3sKKyAg
ICByZXR1cm4gbV9ydW5Mb29wLT5tX2FjdGl2ZVRpbWVycy5jb250YWlucyhtX0lEKTsKK30KKwor
fSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvR05VbWFr
ZWZpbGUuYW0gYi9Tb3VyY2UvV2ViS2l0Mi9HTlVtYWtlZmlsZS5hbQppbmRleCBhNzcxYjlkOGQ0
YzM4MTVlYjc1ZDI4MGUxYTFjNzJmOGY4MGYxMThhLi44YjI2YzVlZmIyZDFjN2NiZWFkMjI5NjYw
OWIzMzUyNWY2MWRkMGM0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9HTlVtYWtlZmlsZS5h
bQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9HTlVtYWtlZmlsZS5hbQpAQCAtMjA5LDE1ICsyMDksMTIg
QEAgbGlid2Via2l0Mmd0a19AV0VCS0lUR1RLX0FQSV9NQUpPUl9WRVJTSU9OQF9AV0VCS0lUR1RL
X0FQSV9NSU5PUl9WRVJTSU9OQF9sYV9TT1UKIAlTb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9Db3Jl
SVBDL3VuaXgvQ29ubmVjdGlvblVuaXguY3BwIFwKIAlTb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9n
dGsvTG9nZ2luZ0d0ay5jcHAgXAogCVNvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL2d0ay9Nb2R1bGVH
dGsuY3BwIFwKLQlTb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9ndGsvUnVuTG9vcEd0ay5jcHAgXAog
CVNvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL2d0ay9Xb3JrUXVldWVHdGsuY3BwIFwKIAlTb3VyY2Uv
V2ViS2l0Mi9QbGF0Zm9ybS9Mb2dnaW5nLmNwcCBcCiAJU291cmNlL1dlYktpdDIvUGxhdGZvcm0v
TG9nZ2luZy5oIFwKIAlTb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9Nb2R1bGUuY3BwIFwKIAlTb3Vy
Y2UvV2ViS2l0Mi9QbGF0Zm9ybS9Nb2R1bGUuaCBcCiAJU291cmNlL1dlYktpdDIvUGxhdGZvcm0v
UGxhdGZvcm1Qcm9jZXNzSWRlbnRpZmllci5oIFwKLQlTb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9S
dW5Mb29wLmNwcCBcCi0JU291cmNlL1dlYktpdDIvUGxhdGZvcm0vUnVuTG9vcC5oIFwKIAlTb3Vy
Y2UvV2ViS2l0Mi9QbGF0Zm9ybS9TaGFyZWRNZW1vcnkuaCBcCiAJU291cmNlL1dlYktpdDIvUGxh
dGZvcm0vdW5peC9TaGFyZWRNZW1vcnlVbml4LmNwcCBcCiAJU291cmNlL1dlYktpdDIvUGxhdGZv
cm0vV29ya1F1ZXVlLmNwcCBcCkBAIC0xMzY0LDExICsxMzYxLDggQEAgUHJvZ3JhbXNfV2ViS2l0
UGx1Z2luUHJvY2Vzc19TT1VSQ0VTID0gXAogCVNvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL01vZHVs
ZS5oIFwKIAlTb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9Xb3JrUXVldWUuY3BwIFwKIAlTb3VyY2Uv
V2ViS2l0Mi9QbGF0Zm9ybS9Xb3JrUXVldWUuaCBcCi0JU291cmNlL1dlYktpdDIvUGxhdGZvcm0v
UnVuTG9vcC5jcHAgXAotCVNvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL1J1bkxvb3AuaCBcCiAJU291
cmNlL1dlYktpdDIvUGxhdGZvcm0vU2hhcmVkTWVtb3J5LmggXAogCVNvdXJjZS9XZWJLaXQyL1Bs
YXRmb3JtL2d0ay9Nb2R1bGVHdGsuY3BwIFwKLQlTb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9ndGsv
UnVuTG9vcEd0ay5jcHAgXAogCVNvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL2d0ay9Xb3JrUXVldWVH
dGsuY3BwIFwKIAlTb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS91bml4L1NoYXJlZE1lbW9yeVVuaXgu
Y3BwIFwKIAlTb3VyY2UvV2ViS2l0Mi9QbHVnaW5Qcm9jZXNzL1BsdWdpbkNvbnRyb2xsZXJQcm94
eS5jcHAgXApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvUGxhdGZvcm0vQ29yZUlQQy9Db25u
ZWN0aW9uLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL0NvcmVJUEMvQ29ubmVjdGlvbi5j
cHAKaW5kZXggM2UxN2JiZDIzM2FhZDZmZWM1OWQ2OGM2MDQ4MjFhY2FmMjU1YzdhMi4uM2MyZjE0
Y2VkMDNlOGYwOWJmMDUzOTY4ODliMTg0ZWY4Yjg1YzU5ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdDIvUGxhdGZvcm0vQ29yZUlQQy9Db25uZWN0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0
Mi9QbGF0Zm9ybS9Db3JlSVBDL0Nvbm5lY3Rpb24uY3BwCkBAIC0yOCwxMCArMjgsMTEgQEAKIAog
I2luY2x1ZGUgIkJpbmFyeVNlbWFwaG9yZS5oIgogI2luY2x1ZGUgIkNvcmVJUENNZXNzYWdlS2lu
ZHMuaCIKLSNpbmNsdWRlICJSdW5Mb29wLmgiCisjaW5jbHVkZSA8V2ViQ29yZS9SdW5Mb29wLmg+
CiAjaW5jbHVkZSA8d3RmL0N1cnJlbnRUaW1lLmg+CiAKIHVzaW5nIG5hbWVzcGFjZSBzdGQ7Cit1
c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKIAogbmFtZXNwYWNlIENvcmVJUEMgewogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9Db3JlSVBDL0Nvbm5lY3Rpb24uaCBiL1NvdXJj
ZS9XZWJLaXQyL1BsYXRmb3JtL0NvcmVJUEMvQ29ubmVjdGlvbi5oCmluZGV4IGJhZmE5OTkxODc1
M2FkYTRhN2U5ZTUwOTZlN2U0YWRlNDE2MTdjMGEuLjgxNTUzYWViNzZiZjA0ZGE3OGI3OWQ3MzBk
NjIzOGVjYmU0YTM1ZjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL0NvcmVJ
UEMvQ29ubmVjdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL0NvcmVJUEMvQ29u
bmVjdGlvbi5oCkBAIC01MCw3ICs1MCw5IEBAIGNsYXNzIFFTb2NrZXROb3RpZmllcjsKICNpbmNs
dWRlICJQbGF0Zm9ybVByb2Nlc3NJZGVudGlmaWVyLmgiCiAjZW5kaWYKIAorbmFtZXNwYWNlIFdl
YkNvcmUgewogY2xhc3MgUnVuTG9vcDsKK30KIAogbmFtZXNwYWNlIENvcmVJUEMgewogCkBAIC0x
MTgsOCArMTIwLDggQEAgcHVibGljOgogICAgIHR5cGVkZWYgaW50IElkZW50aWZpZXI7CiAjZW5k
aWYKIAotICAgIHN0YXRpYyBQYXNzUmVmUHRyPENvbm5lY3Rpb24+IGNyZWF0ZVNlcnZlckNvbm5l
Y3Rpb24oSWRlbnRpZmllciwgQ2xpZW50KiwgUnVuTG9vcCogY2xpZW50UnVuTG9vcCk7Ci0gICAg
c3RhdGljIFBhc3NSZWZQdHI8Q29ubmVjdGlvbj4gY3JlYXRlQ2xpZW50Q29ubmVjdGlvbihJZGVu
dGlmaWVyLCBDbGllbnQqLCBSdW5Mb29wKiBjbGllbnRSdW5Mb29wKTsKKyAgICBzdGF0aWMgUGFz
c1JlZlB0cjxDb25uZWN0aW9uPiBjcmVhdGVTZXJ2ZXJDb25uZWN0aW9uKElkZW50aWZpZXIsIENs
aWVudCosIFdlYkNvcmU6OlJ1bkxvb3AqIGNsaWVudFJ1bkxvb3ApOworICAgIHN0YXRpYyBQYXNz
UmVmUHRyPENvbm5lY3Rpb24+IGNyZWF0ZUNsaWVudENvbm5lY3Rpb24oSWRlbnRpZmllciwgQ2xp
ZW50KiwgV2ViQ29yZTo6UnVuTG9vcCogY2xpZW50UnVuTG9vcCk7CiAgICAgfkNvbm5lY3Rpb24o
KTsKIAogI2lmIE9TKERBUldJTikKQEAgLTIwNyw3ICsyMDksNyBAQCBwdWJsaWM6CiAgICAgdHlw
ZWRlZiBNZXNzYWdlPEFyZ3VtZW50RW5jb2Rlcj4gT3V0Z29pbmdNZXNzYWdlOwogCiBwcml2YXRl
OgotICAgIENvbm5lY3Rpb24oSWRlbnRpZmllciwgYm9vbCBpc1NlcnZlciwgQ2xpZW50KiwgUnVu
TG9vcCogY2xpZW50UnVuTG9vcCk7CisgICAgQ29ubmVjdGlvbihJZGVudGlmaWVyLCBib29sIGlz
U2VydmVyLCBDbGllbnQqLCBXZWJDb3JlOjpSdW5Mb29wKiBjbGllbnRSdW5Mb29wKTsKICAgICB2
b2lkIHBsYXRmb3JtSW5pdGlhbGl6ZShJZGVudGlmaWVyKTsKICAgICB2b2lkIHBsYXRmb3JtSW52
YWxpZGF0ZSgpOwogICAgIApAQCAtMjUzLDcgKzI1NSw3IEBAIHByaXZhdGU6CiAKICAgICBib29s
IG1faXNDb25uZWN0ZWQ7CiAgICAgV29ya1F1ZXVlIG1fY29ubmVjdGlvblF1ZXVlOwotICAgIFJ1
bkxvb3AqIG1fY2xpZW50UnVuTG9vcDsKKyAgICBXZWJDb3JlOjpSdW5Mb29wKiBtX2NsaWVudFJ1
bkxvb3A7CiAKICAgICBWZWN0b3I8UXVldWVDbGllbnQqPiBtX2Nvbm5lY3Rpb25RdWV1ZUNsaWVu
dHM7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL0NvcmVJUEMvbWFjL0Nv
bm5lY3Rpb25NYWMuY3BwIGIvU291cmNlL1dlYktpdDIvUGxhdGZvcm0vQ29yZUlQQy9tYWMvQ29u
bmVjdGlvbk1hYy5jcHAKaW5kZXggOTc5NzVhYmVhYmE3ZWY3ODlhOTdhNzk5NGI0M2YyODVkNmQ4
ZjljNC4uMTExOWEyODQ3ZWJmYTljNTFjMTQ4MTg4MDc3MjYwOTg1OTE4NjEwNiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdDIvUGxhdGZvcm0vQ29yZUlQQy9tYWMvQ29ubmVjdGlvbk1hYy5jcHAK
KysrIGIvU291cmNlL1dlYktpdDIvUGxhdGZvcm0vQ29yZUlQQy9tYWMvQ29ubmVjdGlvbk1hYy5j
cHAKQEAgLTI5LDExICsyOSwxMiBAQAogI2luY2x1ZGUgIkNvcmVJUENNZXNzYWdlS2luZHMuaCIK
ICNpbmNsdWRlICJNYWNoUG9ydC5oIgogI2luY2x1ZGUgIk1hY2hVdGlsaXRpZXMuaCIKLSNpbmNs
dWRlICJSdW5Mb29wLmgiCisjaW5jbHVkZSA8V2ViQ29yZS9SdW5Mb29wLmg+CiAjaW5jbHVkZSA8
bWFjaC9tYWNoX2Vycm9yLmg+CiAjaW5jbHVkZSA8bWFjaC92bV9tYXAuaD4KIAogdXNpbmcgbmFt
ZXNwYWNlIHN0ZDsKK3VzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogCiBuYW1lc3BhY2UgQ29yZUlQ
QyB7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL1J1bkxvb3AuY3BwIGIv
U291cmNlL1dlYktpdDIvUGxhdGZvcm0vUnVuTG9vcC5jcHAKZGVsZXRlZCBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IGU0OTVlY2M1ODNhY2NhNjFiYTA0YmUwMzk5YjhmMzUzNTc0N2Y2NTAuLjAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYktpdDIv
UGxhdGZvcm0vUnVuTG9vcC5jcHAKKysrIC9kZXYvbnVsbApAQCAtMSw3MCArMCwwIEBACi0vKgot
ICogQ29weXJpZ2h0IChDKSAyMDEwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAq
Ci0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJp
YnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0g
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXBy
b2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1l
bnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1
dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5E
IElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCi0gKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElF
RCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFRIRSBJTVBM
SUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJ
Q1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExF
IElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwotICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJ
TkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgotICogQ09OU0VRVUVO
VElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQg
T0YKLSAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBP
UiBQUk9GSVRTOyBPUiBCVVNJTkVTUwotICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBB
TkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KLSAqIENPTlRSQUNULCBT
VFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJ
U0UpCi0gKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FS
RSwgRVZFTiBJRiBBRFZJU0VEIE9GCi0gKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0Uu
Ci0gKi8KLQotI2luY2x1ZGUgImNvbmZpZy5oIgotI2luY2x1ZGUgIlJ1bkxvb3AuaCIKLQotI2lu
Y2x1ZGUgPHd0Zi9TdGRMaWJFeHRyYXMuaD4KLQotc3RhdGljIFJ1bkxvb3AqIHNfbWFpblJ1bkxv
b3A7Ci0KLXZvaWQgUnVuTG9vcDo6aW5pdGlhbGl6ZU1haW5SdW5Mb29wKCkKLXsKLSAgICBpZiAo
c19tYWluUnVuTG9vcCkKLSAgICAgICAgcmV0dXJuOwotICAgIHNfbWFpblJ1bkxvb3AgPSBSdW5M
b29wOjpjdXJyZW50KCk7Ci19Ci0KLVJ1bkxvb3AqIFJ1bkxvb3A6OmN1cnJlbnQoKQotewotICAg
IERFRklORV9TVEFUSUNfTE9DQUwoV1RGOjpUaHJlYWRTcGVjaWZpYzxSdW5Mb29wPiwgcnVuTG9v
cERhdGEsICgpKTsKLSAgICByZXR1cm4gJipydW5Mb29wRGF0YTsKLX0KLQotUnVuTG9vcCogUnVu
TG9vcDo6bWFpbigpCi17Ci0gICAgQVNTRVJUKHNfbWFpblJ1bkxvb3ApOwotICAgIHJldHVybiBz
X21haW5SdW5Mb29wOwotfQotCi12b2lkIFJ1bkxvb3A6OnBlcmZvcm1Xb3JrKCkKLXsKLSAgICBW
ZWN0b3I8RnVuY3Rpb248dm9pZCgpPiA+IGZ1bmN0aW9uUXVldWU7Ci0gICAgewotICAgICAgICBN
dXRleExvY2tlciBsb2NrZXIobV9mdW5jdGlvblF1ZXVlTG9jayk7Ci0gICAgICAgIG1fZnVuY3Rp
b25RdWV1ZS5zd2FwKGZ1bmN0aW9uUXVldWUpOwotICAgIH0KLQotICAgIGZvciAoc2l6ZV90IGkg
PSAwOyBpIDwgZnVuY3Rpb25RdWV1ZS5zaXplKCk7ICsraSkKLSAgICAgICAgZnVuY3Rpb25RdWV1
ZVtpXSgpOwotfQotCi12b2lkIFJ1bkxvb3A6OmRpc3BhdGNoKGNvbnN0IEZ1bmN0aW9uPHZvaWQo
KT4mIGZ1bmN0aW9uKQotewotICAgIE11dGV4TG9ja2VyIGxvY2tlcihtX2Z1bmN0aW9uUXVldWVM
b2NrKTsKLSAgICBtX2Z1bmN0aW9uUXVldWUuYXBwZW5kKGZ1bmN0aW9uKTsKLQotICAgIHdha2VV
cCgpOwotfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvUGxhdGZvcm0vUnVuTG9vcC5oIGIv
U291cmNlL1dlYktpdDIvUGxhdGZvcm0vUnVuTG9vcC5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCA1N2E3OWE4ZjNmMDYwYzQwNTNhNWUyZmIwNzQyODZhY2E3MzM1MGFiLi4wMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJLaXQyL1Bs
YXRmb3JtL1J1bkxvb3AuaAorKysgL2Rldi9udWxsCkBAIC0xLDE2MSArMCwwIEBACi0vKgotICog
Q29weXJpZ2h0IChDKSAyMDEwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqIENv
cHlyaWdodCAoQykgMjAxMCBOb2tpYSBDb3Jwb3JhdGlvbiBhbmQvb3IgaXRzIHN1YnNpZGlhcnko
LWllcykKLSAqIFBvcnRpb25zIENvcHlyaWdodCAoYykgMjAxMCBNb3Rvcm9sYSBNb2JpbGl0eSwg
SW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0
IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1
dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAot
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJp
YWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJF
IElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycn
Ci0gKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywKLSAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRB
QklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NM
QUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwot
ICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lB
TCwgRVhFTVBMQVJZLCBPUgotICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKLSAqIFNVQlNUSVRVVEUgR09PRFMgT1Ig
U0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwotICog
SU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJ
VFksIFdIRVRIRVIgSU4KLSAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJ
TkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCi0gKiBBUklTSU5HIElOIEFOWSBXQVkg
T1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCi0gKiBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI2lmbmRlZiBSdW5Mb29wX2gK
LSNkZWZpbmUgUnVuTG9vcF9oCi0KLSNpbmNsdWRlIDx3dGYvRm9yd2FyZC5oPgotI2luY2x1ZGUg
PHd0Zi9GdW5jdGlvbmFsLmg+Ci0jaW5jbHVkZSA8d3RmL0hhc2hNYXAuaD4KLSNpbmNsdWRlIDx3
dGYvUGFzc093blB0ci5oPgotI2luY2x1ZGUgPHd0Zi9UaHJlYWRTcGVjaWZpYy5oPgotI2luY2x1
ZGUgPHd0Zi9UaHJlYWRpbmcuaD4KLSNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+Ci0jaWYgUExBVEZP
Uk0oR1RLKQotI2luY2x1ZGUgPHd0Zi9nb2JqZWN0L0dSZWZQdHIuaD4KLXR5cGVkZWYgc3RydWN0
IF9HU291cmNlIEdTb3VyY2U7Ci10eXBlZGVmIHN0cnVjdCBfR01haW5Mb29wIEdNYWluTG9vcDsK
LXR5cGVkZWYgc3RydWN0IF9HTWFpbkNvbnRleHQgR01haW5Db250ZXh0OwotdHlwZWRlZiBpbnQg
Z2Jvb2xlYW47Ci0jZW5kaWYKLQotY2xhc3MgUnVuTG9vcCB7Ci1wdWJsaWM6Ci0gICAgLy8gTXVz
dCBiZSBjYWxsZWQgZnJvbSB0aGUgbWFpbiB0aHJlYWQuCi0gICAgc3RhdGljIHZvaWQgaW5pdGlh
bGl6ZU1haW5SdW5Mb29wKCk7Ci0KLSAgICBzdGF0aWMgUnVuTG9vcCogY3VycmVudCgpOwotICAg
IHN0YXRpYyBSdW5Mb29wKiBtYWluKCk7Ci0KLSAgICB2b2lkIGRpc3BhdGNoKGNvbnN0IEZ1bmN0
aW9uPHZvaWQoKT4mKTsKLQotICAgIHN0YXRpYyB2b2lkIHJ1bigpOwotICAgIHZvaWQgc3RvcCgp
OwotCi0jaWYgUExBVEZPUk0oTUFDKQotICAgIHZvaWQgcnVuRm9yRHVyYXRpb24oZG91YmxlIGR1
cmF0aW9uKTsKLSNlbmRpZgotICAgIAotICAgIGNsYXNzIFRpbWVyQmFzZSB7Ci0gICAgICAgIGZy
aWVuZCBjbGFzcyBSdW5Mb29wOwotICAgIHB1YmxpYzoKLSAgICAgICAgVGltZXJCYXNlKFJ1bkxv
b3AqKTsKLSAgICAgICAgdmlydHVhbCB+VGltZXJCYXNlKCk7Ci0KLSAgICAgICAgdm9pZCBzdGFy
dFJlcGVhdGluZyhkb3VibGUgcmVwZWF0SW50ZXJ2YWwpIHsgc3RhcnQocmVwZWF0SW50ZXJ2YWws
IHRydWUpOyB9Ci0gICAgICAgIHZvaWQgc3RhcnRPbmVTaG90KGRvdWJsZSBpbnRlcnZhbCkgeyBz
dGFydChpbnRlcnZhbCwgZmFsc2UpOyB9Ci0KLSAgICAgICAgdm9pZCBzdG9wKCk7Ci0gICAgICAg
IGJvb2wgaXNBY3RpdmUoKSBjb25zdDsKLQotICAgICAgICB2aXJ0dWFsIHZvaWQgZmlyZWQoKSA9
IDA7Ci0KLSAgICBwcml2YXRlOgotICAgICAgICB2b2lkIHN0YXJ0KGRvdWJsZSBuZXh0RmlyZUlu
dGVydmFsLCBib29sIHJlcGVhdCk7Ci0KLSAgICAgICAgUnVuTG9vcCogbV9ydW5Mb29wOwotCi0j
aWYgUExBVEZPUk0oV0lOKQotICAgICAgICBzdGF0aWMgdm9pZCB0aW1lckZpcmVkKFJ1bkxvb3Aq
LCB1aW50NjRfdCBJRCk7Ci0gICAgICAgIHVpbnQ2NF90IG1fSUQ7Ci0gICAgICAgIGJvb2wgbV9p
c1JlcGVhdGluZzsKLSNlbGlmIFBMQVRGT1JNKE1BQykKLSAgICAgICAgc3RhdGljIHZvaWQgdGlt
ZXJGaXJlZChDRlJ1bkxvb3BUaW1lclJlZiwgdm9pZCopOwotICAgICAgICBDRlJ1bkxvb3BUaW1l
clJlZiBtX3RpbWVyOwotI2VsaWYgUExBVEZPUk0oUVQpCi0gICAgICAgIHN0YXRpYyB2b2lkIHRp
bWVyRmlyZWQoUnVuTG9vcCosIGludCBJRCk7Ci0gICAgICAgIGludCBtX0lEOwotICAgICAgICBi
b29sIG1faXNSZXBlYXRpbmc7Ci0jZWxpZiBQTEFURk9STShHVEspCi0gICAgICAgIHN0YXRpYyBn
Ym9vbGVhbiB0aW1lckZpcmVkQ2FsbGJhY2soUnVuTG9vcDo6VGltZXJCYXNlKik7Ci0gICAgICAg
IGdib29sZWFuIGlzUmVwZWF0aW5nKCkgY29uc3QgeyByZXR1cm4gbV9pc1JlcGVhdGluZzsgfQot
ICAgICAgICB2b2lkIGNsZWFyVGltZXJTb3VyY2UoKTsKLSAgICAgICAgR1JlZlB0cjxHU291cmNl
PiBtX3RpbWVyU291cmNlOwotICAgICAgICBnYm9vbGVhbiBtX2lzUmVwZWF0aW5nOwotI2VuZGlm
Ci0gICAgfTsKLQotICAgIHRlbXBsYXRlIDx0eXBlbmFtZSBUaW1lckZpcmVkQ2xhc3M+Ci0gICAg
Y2xhc3MgVGltZXIgOiBwdWJsaWMgVGltZXJCYXNlIHsKLSAgICBwdWJsaWM6Ci0gICAgICAgIHR5
cGVkZWYgdm9pZCAoVGltZXJGaXJlZENsYXNzOjoqVGltZXJGaXJlZEZ1bmN0aW9uKSgpOwotCi0g
ICAgICAgIFRpbWVyKFJ1bkxvb3AqIHJ1bkxvb3AsIFRpbWVyRmlyZWRDbGFzcyogbywgVGltZXJG
aXJlZEZ1bmN0aW9uIGYpCi0gICAgICAgICAgICA6IFRpbWVyQmFzZShydW5Mb29wKQotICAgICAg
ICAgICAgLCBtX29iamVjdChvKQotICAgICAgICAgICAgLCBtX2Z1bmN0aW9uKGYpCi0gICAgICAg
IHsKLSAgICAgICAgfQotCi0gICAgcHJpdmF0ZToKLSAgICAgICAgdmlydHVhbCB2b2lkIGZpcmVk
KCkgeyAobV9vYmplY3QtPiptX2Z1bmN0aW9uKSgpOyB9Ci0KLSAgICAgICAgVGltZXJGaXJlZENs
YXNzKiBtX29iamVjdDsKLSAgICAgICAgVGltZXJGaXJlZEZ1bmN0aW9uIG1fZnVuY3Rpb247Ci0g
ICAgfTsKLQotcHJpdmF0ZToKLSAgICBmcmllbmQgY2xhc3MgV1RGOjpUaHJlYWRTcGVjaWZpYzxS
dW5Mb29wPjsKLQotICAgIFJ1bkxvb3AoKTsKLSAgICB+UnVuTG9vcCgpOwotCi0gICAgdm9pZCBw
ZXJmb3JtV29yaygpOwotICAgIHZvaWQgd2FrZVVwKCk7Ci0KLSAgICBNdXRleCBtX2Z1bmN0aW9u
UXVldWVMb2NrOwotICAgIFZlY3RvcjxGdW5jdGlvbjx2b2lkKCk+ID4gbV9mdW5jdGlvblF1ZXVl
OwotCi0jaWYgUExBVEZPUk0oV0lOKQotICAgIHN0YXRpYyBib29sIHJlZ2lzdGVyUnVuTG9vcE1l
c3NhZ2VXaW5kb3dDbGFzcygpOwotICAgIHN0YXRpYyBMUkVTVUxUIENBTExCQUNLIFJ1bkxvb3BX
bmRQcm9jKEhXTkQsIFVJTlQsIFdQQVJBTSwgTFBBUkFNKTsKLSAgICBMUkVTVUxUIHduZFByb2Mo
SFdORCBoV25kLCBVSU5UIG1lc3NhZ2UsIFdQQVJBTSB3UGFyYW0sIExQQVJBTSBsUGFyYW0pOwot
ICAgIEhXTkQgbV9ydW5Mb29wTWVzc2FnZVdpbmRvdzsKLQotICAgIHR5cGVkZWYgSGFzaE1hcDx1
aW50NjRfdCwgVGltZXJCYXNlKj4gVGltZXJNYXA7Ci0gICAgVGltZXJNYXAgbV9hY3RpdmVUaW1l
cnM7Ci0jZWxpZiBQTEFURk9STShNQUMpCi0gICAgc3RhdGljIHZvaWQgcGVyZm9ybVdvcmsodm9p
ZCopOwotICAgIENGUnVuTG9vcFJlZiBtX3J1bkxvb3A7Ci0gICAgQ0ZSdW5Mb29wU291cmNlUmVm
IG1fcnVuTG9vcFNvdXJjZTsKLSAgICBpbnQgbV9uZXN0aW5nTGV2ZWw7Ci0jZWxpZiBQTEFURk9S
TShRVCkKLSAgICB0eXBlZGVmIEhhc2hNYXA8aW50LCBUaW1lckJhc2UqPiBUaW1lck1hcDsKLSAg
ICBUaW1lck1hcCBtX2FjdGl2ZVRpbWVyczsKLSAgICBjbGFzcyBUaW1lck9iamVjdDsKLSAgICBU
aW1lck9iamVjdCogbV90aW1lck9iamVjdDsKLSNlbGlmIFBMQVRGT1JNKEdUSykKLXB1YmxpYzoK
LSAgICBzdGF0aWMgZ2Jvb2xlYW4gcXVldWVXb3JrKFJ1bkxvb3AqKTsKLSAgICBHTWFpbkxvb3Aq
IG1haW5Mb29wKCk7Ci1wcml2YXRlOgotICAgIEdNYWluQ29udGV4dCogbV9ydW5Mb29wQ29udGV4
dDsKLSAgICBHTWFpbkxvb3AqIG1fcnVuTG9vcE1haW47Ci0jZW5kaWYKLX07Ci0KLSNlbmRpZiAv
LyBSdW5Mb29wX2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL2d0ay9SdW5M
b29wR3RrLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL2d0ay9SdW5Mb29wR3RrLmNwcApk
ZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggODFjYmVhYWYxODdjNTllMWNlNzFmZTQ0Mjli
ODZkMWI5NjcxNjc5Mi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAot
LS0gYS9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9ndGsvUnVuTG9vcEd0ay5jcHAKKysrIC9kZXYv
bnVsbApAQCAtMSwxMzQgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMCBBcHBsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKiBQb3J0aW9ucyBDb3B5cmlnaHQgKGMpIDIwMTAg
TW90b3JvbGEgTW9iaWxpdHksIEluYy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMg
b2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
LgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24g
YW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0g
KgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09O
VFJJQlVUT1JTIGBgQVMgSVMnJwotICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFO
VElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBUSEUgSU1QTElFRCBXQVJS
QU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0g
KiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9S
IElUUyBDT05UUklCVVRPUlMKLSAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1Qs
IElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKLSAqIENPTlNFUVVFTlRJQUwgREFN
QUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCi0gKiBT
VUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklU
UzsgT1IgQlVTSU5FU1MKLSAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFO
WSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCi0gKiBDT05UUkFDVCwgU1RSSUNUIExJ
QUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQotICog
QVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4g
SUYgQURWSVNFRCBPRgotICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0K
LSNpbmNsdWRlICJjb25maWcuaCIKLSNpbmNsdWRlICJSdW5Mb29wLmgiCi0KLSNpbmNsdWRlICJX
S0Jhc2UuaCIKLSNpbmNsdWRlIDxnbGliLmg+Ci0KLVJ1bkxvb3A6OlJ1bkxvb3AoKQotewotICAg
IG1fcnVuTG9vcENvbnRleHQgPSBnX21haW5fY29udGV4dF9kZWZhdWx0KCk7Ci0gICAgQVNTRVJU
KG1fcnVuTG9vcENvbnRleHQpOwotICAgIG1fcnVuTG9vcE1haW4gPSBnX21haW5fbG9vcF9uZXco
bV9ydW5Mb29wQ29udGV4dCwgRkFMU0UpOwotICAgIEFTU0VSVChtX3J1bkxvb3BNYWluKTsKLX0K
LQotUnVuTG9vcDo6flJ1bkxvb3AoKQotewotICAgIGlmIChtX3J1bkxvb3BNYWluKSB7Ci0gICAg
ICAgIGlmIChnX21haW5fbG9vcF9pc19ydW5uaW5nKG1fcnVuTG9vcE1haW4pKQotICAgICAgICAg
ICAgZ19tYWluX2xvb3BfcXVpdChtX3J1bkxvb3BNYWluKTsKLSAgICAgICAgZ19tYWluX2xvb3Bf
dW5yZWYobV9ydW5Mb29wTWFpbik7Ci0gICAgfQotCi0gICAgaWYgKG1fcnVuTG9vcENvbnRleHQp
Ci0gICAgICAgIGdfbWFpbl9jb250ZXh0X3VucmVmKG1fcnVuTG9vcENvbnRleHQpOwotfQotCi12
b2lkIFJ1bkxvb3A6OnJ1bigpCi17Ci0gICAgZ19tYWluX2xvb3BfcnVuKFJ1bkxvb3A6Om1haW4o
KS0+bWFpbkxvb3AoKSk7Ci19Ci0KLUdNYWluTG9vcCogUnVuTG9vcDo6bWFpbkxvb3AoKQotewot
ICAgIHJldHVybiBtX3J1bkxvb3BNYWluOwotfQotCi12b2lkIFJ1bkxvb3A6OnN0b3AoKQotewot
ICAgIGdfbWFpbl9sb29wX3F1aXQobV9ydW5Mb29wTWFpbik7Ci19Ci0KLWdib29sZWFuIFJ1bkxv
b3A6OnF1ZXVlV29yayhSdW5Mb29wKiBydW5Mb29wKQotewotICAgIHJ1bkxvb3AtPnBlcmZvcm1X
b3JrKCk7Ci0gICAgcmV0dXJuIEZBTFNFOwotfQotCi12b2lkIFJ1bkxvb3A6Ondha2VVcCgpCi17
Ci0gICAgR1JlZlB0cjxHU291cmNlPiBzb3VyY2UgPSBhZG9wdEdSZWYoZ19pZGxlX3NvdXJjZV9u
ZXcoKSk7Ci0gICAgZ19zb3VyY2Vfc2V0X3ByaW9yaXR5KHNvdXJjZS5nZXQoKSwgR19QUklPUklU
WV9ERUZBVUxUKTsKLSAgICBnX3NvdXJjZV9zZXRfY2FsbGJhY2soc291cmNlLmdldCgpLCByZWlu
dGVycHJldF9jYXN0PEdTb3VyY2VGdW5jPigmUnVuTG9vcDo6cXVldWVXb3JrKSwgdGhpcywgMCk7
Ci0gICAgZ19zb3VyY2VfYXR0YWNoKHNvdXJjZS5nZXQoKSwgbV9ydW5Mb29wQ29udGV4dCk7Ci0K
LSAgICBnX21haW5fY29udGV4dF93YWtldXAobV9ydW5Mb29wQ29udGV4dCk7Ci19Ci0KLVJ1bkxv
b3A6OlRpbWVyQmFzZTo6VGltZXJCYXNlKFJ1bkxvb3AqIHJ1bkxvb3ApCi0gICAgOiBtX3J1bkxv
b3AocnVuTG9vcCkKLSAgICAsIG1fdGltZXJTb3VyY2UoMCkKLXsKLX0KLQotUnVuTG9vcDo6VGlt
ZXJCYXNlOjp+VGltZXJCYXNlKCkKLXsKLSAgICBzdG9wKCk7Ci19Ci0KLXZvaWQgUnVuTG9vcDo6
VGltZXJCYXNlOjpjbGVhclRpbWVyU291cmNlKCkKLXsKLSAgICBtX3RpbWVyU291cmNlID0gMDsK
LX0KLQotZ2Jvb2xlYW4gUnVuTG9vcDo6VGltZXJCYXNlOjp0aW1lckZpcmVkQ2FsbGJhY2soUnVu
TG9vcDo6VGltZXJCYXNlKiB0aW1lcikKLXsKLSAgICBHU291cmNlKiBjdXJyZW50VGltZXJTb3Vy
Y2UgPSB0aW1lci0+bV90aW1lclNvdXJjZS5nZXQoKTsKLSAgICBib29sIGlzUmVwZWF0aW5nID0g
dGltZXItPmlzUmVwZWF0aW5nKCk7Ci0gICAgLy8gVGhpcyBjYW4gY2hhbmdlIHRoZSB0aW1lclNv
dXJjZSBieSBzdGFydGluZyBhIG5ldyB0aW1lciB3aXRoaW4gdGhlIGNhbGxiYWNrLgotICAgIHRp
bWVyLT5maXJlZCgpOwotICAgIGlmICghaXNSZXBlYXRpbmcgJiYgY3VycmVudFRpbWVyU291cmNl
ID09IHRpbWVyLT5tX3RpbWVyU291cmNlLmdldCgpKQotICAgICAgICB0aW1lci0+Y2xlYXJUaW1l
clNvdXJjZSgpOwotICAgIHJldHVybiBpc1JlcGVhdGluZzsKLX0KLQotdm9pZCBSdW5Mb29wOjpU
aW1lckJhc2U6OnN0YXJ0KGRvdWJsZSBmaXJlSW50ZXJ2YWwsIGJvb2wgcmVwZWF0KQotewotICAg
IGlmIChtX3RpbWVyU291cmNlKQotICAgICAgICBzdG9wKCk7Ci0KLSAgICBtX3RpbWVyU291cmNl
ID0gYWRvcHRHUmVmKGdfdGltZW91dF9zb3VyY2VfbmV3KHN0YXRpY19jYXN0PGd1aW50PihmaXJl
SW50ZXJ2YWwgKiAxMDAwKSkpOwotICAgIG1faXNSZXBlYXRpbmcgPSByZXBlYXQ7Ci0gICAgZ19z
b3VyY2Vfc2V0X2NhbGxiYWNrKG1fdGltZXJTb3VyY2UuZ2V0KCksIHJlaW50ZXJwcmV0X2Nhc3Q8
R1NvdXJjZUZ1bmM+KCZSdW5Mb29wOjpUaW1lckJhc2U6OnRpbWVyRmlyZWRDYWxsYmFjayksIHRo
aXMsIDApOwotICAgIGdfc291cmNlX2F0dGFjaChtX3RpbWVyU291cmNlLmdldCgpLCBtX3J1bkxv
b3AtPm1fcnVuTG9vcENvbnRleHQpOwotfQotCi12b2lkIFJ1bkxvb3A6OlRpbWVyQmFzZTo6c3Rv
cCgpCi17Ci0gICAgaWYgKCFtX3RpbWVyU291cmNlKQotICAgICAgICByZXR1cm47Ci0KLSAgICBn
X3NvdXJjZV9kZXN0cm95KG1fdGltZXJTb3VyY2UuZ2V0KCkpOwotICAgIGNsZWFyVGltZXJTb3Vy
Y2UoKTsKLX0KLQotYm9vbCBSdW5Mb29wOjpUaW1lckJhc2U6OmlzQWN0aXZlKCkgY29uc3QKLXsK
LSAgICByZXR1cm4gbV90aW1lclNvdXJjZTsKLX0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQy
L1BsYXRmb3JtL21hYy9SdW5Mb29wTWFjLm1tIGIvU291cmNlL1dlYktpdDIvUGxhdGZvcm0vbWFj
L1J1bkxvb3BNYWMubW0KZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAzYmI4NmU4ZDky
NzgzMmRiODAyMjIyMTNmNjQ5NjgzMWRiYmE0MDMuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYktpdDIvUGxhdGZvcm0vbWFjL1J1bkxvb3BN
YWMubW0KKysrIC9kZXYvbnVsbApAQCAtMSwxNTMgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAo
QykgMjAxMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291
cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICog
Mi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92
ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29y
IG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICog
VEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVU
T1JTIGBgQVMgSVMnJwotICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywg
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBUSEUgSU1QTElFRCBXQVJSQU5USUVT
IE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQ
T1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBD
T05UUklCVVRPUlMKLSAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lE
RU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKLSAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAo
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCi0gKiBTVUJTVElU
VVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1Ig
QlVTSU5FU1MKLSAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVP
UlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCi0gKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElU
WSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQotICogQVJJU0lO
RyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURW
SVNFRCBPRgotICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNpbXBv
cnQgImNvbmZpZy5oIgotI2ltcG9ydCAiUnVuTG9vcC5oIgotCi12b2lkIFJ1bkxvb3A6OnBlcmZv
cm1Xb3JrKHZvaWQqIGNvbnRleHQpCi17Ci0gICAgLy8gV3JhcCBtYWluIHRocmVhZCBpbiBhbiBB
dXRvcmVsZWFzZSBwb29sLiAgU2VuZGluZyBtZXNzYWdlcyBjYW4gY2FsbCAKLSAgICAvLyBpbnRv
IG9iamMgY29kZSBhbmQgYWNjdW11bGF0ZSBtZW1vcnkuICAKLSAgICBpZiAoY3VycmVudCgpID09
IG1haW4oKSkgewotICAgICAgICBOU0F1dG9yZWxlYXNlUG9vbCAqcG9vbCA9IFtbTlNBdXRvcmVs
ZWFzZVBvb2wgYWxsb2NdIGluaXRdOwotICAgICAgICBzdGF0aWNfY2FzdDxSdW5Mb29wKj4oY29u
dGV4dCktPnBlcmZvcm1Xb3JrKCk7Ci0gICAgICAgIFtwb29sIGRyYWluXTsKLSAgICB9IGVsc2UK
LSAgICAgICAgc3RhdGljX2Nhc3Q8UnVuTG9vcCo+KGNvbnRleHQpLT5wZXJmb3JtV29yaygpOwot
fQotCi1SdW5Mb29wOjpSdW5Mb29wKCkKLSAgICA6IG1fcnVuTG9vcChDRlJ1bkxvb3BHZXRDdXJy
ZW50KCkpCi0gICAgLCBtX25lc3RpbmdMZXZlbCgwKQotewotICAgIENGUnVuTG9vcFNvdXJjZUNv
bnRleHQgY29udGV4dCA9IHsgMCwgdGhpcywgMCwgMCwgMCwgMCwgMCwgMCwgMCwgcGVyZm9ybVdv
cmsgfTsKLSAgICBtX3J1bkxvb3BTb3VyY2UgPSBDRlJ1bkxvb3BTb3VyY2VDcmVhdGUoa0NGQWxs
b2NhdG9yRGVmYXVsdCwgMCwgJmNvbnRleHQpOwotICAgIENGUnVuTG9vcEFkZFNvdXJjZShtX3J1
bkxvb3AsIG1fcnVuTG9vcFNvdXJjZSwga0NGUnVuTG9vcENvbW1vbk1vZGVzKTsKLX0KLQotUnVu
TG9vcDo6flJ1bkxvb3AoKQotewotICAgIC8vIEZJWE1FOiBUZWFyIGRvd24gdGhlIHdvcmsgaXRl
bSBxdWV1ZSBoZXJlLgotICAgIENGUnVuTG9vcFNvdXJjZUludmFsaWRhdGUobV9ydW5Mb29wU291
cmNlKTsKLSAgICBDRlJlbGVhc2UobV9ydW5Mb29wU291cmNlKTsKLX0KLQotdm9pZCBSdW5Mb29w
OjpydW4oKQotewotICAgIGN1cnJlbnQoKS0+bV9uZXN0aW5nTGV2ZWwrKzsKLSAgICBpZiAoY3Vy
cmVudCgpID09IG1haW4oKSAmJiBjdXJyZW50KCktPm1fbmVzdGluZ0xldmVsID09IDEpIHsKLSAg
ICAgICAgLy8gVXNlIC1bTlNBcHBsaWNhdGlvbiBydW5dIGZvciB0aGUgbWFpbiBydW4gbG9vcC4K
LSAgICAgICAgW05TQXBwIHJ1bl07Ci0gICAgfSBlbHNlIHsKLSAgICAgICAgTlNBdXRvcmVsZWFz
ZVBvb2wgKnBvb2wgPSBbW05TQXV0b3JlbGVhc2VQb29sIGFsbG9jXSBpbml0XTsKLSAgICAgICAg
Q0ZSdW5Mb29wUnVuKCk7Ci0gICAgICAgIFtwb29sIGRyYWluXTsKLSAgICB9Ci0gICAgY3VycmVu
dCgpLT5tX25lc3RpbmdMZXZlbC0tOwotfQotCi12b2lkIFJ1bkxvb3A6OnJ1bkZvckR1cmF0aW9u
KGRvdWJsZSBkdXJhdGlvbikKLXsKLSAgICBDRlJ1bkxvb3BSdW5Jbk1vZGUoa0NGUnVuTG9vcERl
ZmF1bHRNb2RlLCBkdXJhdGlvbiwgdHJ1ZSk7Ci19Ci0KLXZvaWQgUnVuTG9vcDo6c3RvcCgpCi17
Ci0gICAgQVNTRVJUKG1fcnVuTG9vcCA9PSBDRlJ1bkxvb3BHZXRDdXJyZW50KCkpOwotICAgIAot
ICAgIGlmIChtX3J1bkxvb3AgPT0gbWFpbigpLT5tX3J1bkxvb3AgJiYgbV9uZXN0aW5nTGV2ZWwg
PT0gMSkgewotICAgICAgICBbTlNBcHAgc3RvcDpuaWxdOwotICAgICAgICBOU0V2ZW50ICpldmVu
dCA9IFtOU0V2ZW50IG90aGVyRXZlbnRXaXRoVHlwZTpOU0FwcGxpY2F0aW9uRGVmaW5lZAotICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb2NhdGlvbjpOU01ha2VQ
b2ludCgwLCAwKQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbW9kaWZp
ZXJGbGFnczowCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGlt
ZXN0YW1wOjAuMAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aW5k
b3dOdW1iZXI6MAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
Y29udGV4dDpuaWwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IHN1YnR5cGU6IDAKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgZGF0YTE6MAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBkYXRhMjowXTsKLSAgICAgICAgW05TQXBwIHBvc3RFdmVudDpldmVudCBhdFN0YXJ0OnRydWVd
OwotICAgIH0gZWxzZQotICAgICAgICBDRlJ1bkxvb3BTdG9wKG1fcnVuTG9vcCk7Ci19Ci0KLXZv
aWQgUnVuTG9vcDo6d2FrZVVwKCkKLXsKLSAgICBDRlJ1bkxvb3BTb3VyY2VTaWduYWwobV9ydW5M
b29wU291cmNlKTsKLSAgICBDRlJ1bkxvb3BXYWtlVXAobV9ydW5Mb29wKTsKLX0KLQotLy8gUnVu
TG9vcDo6VGltZXIKLQotdm9pZCBSdW5Mb29wOjpUaW1lckJhc2U6OnRpbWVyRmlyZWQoQ0ZSdW5M
b29wVGltZXJSZWYsIHZvaWQqIGNvbnRleHQpCi17Ci0gICAgVGltZXJCYXNlKiB0aW1lciA9IHN0
YXRpY19jYXN0PFRpbWVyQmFzZSo+KGNvbnRleHQpOwotICAgIAotICAgIC8vIFdyYXAgbWFpbiB0
aHJlYWQgaW4gYW4gQXV0b3JlbGVhc2UgcG9vbC4gIFRoZSB0aW1lciBjYW4gY2FsbCAKLSAgICAv
LyBpbnRvIG9iamMgY29kZSBhbmQgYWNjdW11bGF0ZSBtZW1vcnkgb3V0c2lkZSBvZiB0aGUgbWFp
biBldmVudCBsb29wLgotICAgIGlmIChjdXJyZW50KCkgPT0gbWFpbigpKSB7Ci0gICAgICAgIE5T
QXV0b3JlbGVhc2VQb29sICpwb29sID0gW1tOU0F1dG9yZWxlYXNlUG9vbCBhbGxvY10gaW5pdF07
IAotICAgICAgICB0aW1lci0+ZmlyZWQoKTsKLSAgICAgICAgW3Bvb2wgZHJhaW5dOwotICAgIH0g
ZWxzZQotICAgICAgICB0aW1lci0+ZmlyZWQoKTsKLX0KLQotUnVuTG9vcDo6VGltZXJCYXNlOjpU
aW1lckJhc2UoUnVuTG9vcCogcnVuTG9vcCkKLSAgICA6IG1fcnVuTG9vcChydW5Mb29wKQotICAg
ICwgbV90aW1lcigwKQotewotfQotCi1SdW5Mb29wOjpUaW1lckJhc2U6On5UaW1lckJhc2UoKQot
ewotICAgIHN0b3AoKTsKLX0KLQotdm9pZCBSdW5Mb29wOjpUaW1lckJhc2U6OnN0YXJ0KGRvdWJs
ZSBuZXh0RmlyZUludGVydmFsLCBib29sIHJlcGVhdCkKLXsKLSAgICBpZiAobV90aW1lcikKLSAg
ICAgICAgc3RvcCgpOwotCi0gICAgQ0ZSdW5Mb29wVGltZXJDb250ZXh0IGNvbnRleHQgPSB7IDAs
IHRoaXMsIDAsIDAsIDAgfTsKLSAgICBDRlRpbWVJbnRlcnZhbCByZXBlYXRJbnRlcnZhbCA9IHJl
cGVhdCA/IG5leHRGaXJlSW50ZXJ2YWwgOiAwOwotICAgIG1fdGltZXIgPSBDRlJ1bkxvb3BUaW1l
ckNyZWF0ZShrQ0ZBbGxvY2F0b3JEZWZhdWx0LCBDRkFic29sdXRlVGltZUdldEN1cnJlbnQoKSAr
IG5leHRGaXJlSW50ZXJ2YWwsIHJlcGVhdEludGVydmFsLCAwLCAwLCB0aW1lckZpcmVkLCAmY29u
dGV4dCk7Ci0gICAgQ0ZSdW5Mb29wQWRkVGltZXIobV9ydW5Mb29wLT5tX3J1bkxvb3AsIG1fdGlt
ZXIsIGtDRlJ1bkxvb3BDb21tb25Nb2Rlcyk7Ci19Ci0KLXZvaWQgUnVuTG9vcDo6VGltZXJCYXNl
OjpzdG9wKCkKLXsKLSAgICBpZiAoIW1fdGltZXIpCi0gICAgICAgIHJldHVybjsKLQotICAgIENG
UnVuTG9vcFRpbWVySW52YWxpZGF0ZShtX3RpbWVyKTsKLSAgICBDRlJlbGVhc2UobV90aW1lcik7
Ci0gICAgbV90aW1lciA9IDA7Ci19Ci0KLWJvb2wgUnVuTG9vcDo6VGltZXJCYXNlOjppc0FjdGl2
ZSgpIGNvbnN0Ci17Ci0gICAgcmV0dXJuIG1fdGltZXIgJiYgQ0ZSdW5Mb29wVGltZXJJc1ZhbGlk
KG1fdGltZXIpOwotfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvUGxhdGZvcm0vcXQvUnVu
TG9vcFF0LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL3F0L1J1bkxvb3BRdC5jcHAKZGVs
ZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwN2EwYTViMWFmZTA5ODAzOTg5MDlhYjcwYmI3
M2I5ZDlmMDhkZTcuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0t
IGEvU291cmNlL1dlYktpdDIvUGxhdGZvcm0vcXQvUnVuTG9vcFF0LmNwcAorKysgL2Rldi9udWxs
CkBAIC0xLDE2MyArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDEwIEFwcGxlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqIENvcHlyaWdodCAoQykgMjAxMCBOb2tpYSBDb3Jwb3Jh
dGlvbiBhbmQvb3IgaXRzIHN1YnNpZGlhcnkoLWllcykKLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29k
ZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRp
c3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHly
aWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIg
bWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNP
RlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBB
UyBJUycnCi0gKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVS
Q0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJF
IERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJV
VE9SUwotICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwg
U1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgotICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKLSAqIFNVQlNUSVRVVEUgR09P
RFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVT
UwotICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBM
SUFCSUxJVFksIFdIRVRIRVIgSU4KLSAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBU
T1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCi0gKiBBUklTSU5HIElOIEFO
WSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9G
Ci0gKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI2luY2x1ZGUgImNv
bmZpZy5oIgotI2luY2x1ZGUgIlJ1bkxvb3AuaCIKLQotI2luY2x1ZGUgPFFDb3JlQXBwbGljYXRp
b24+Ci0jaW5jbHVkZSA8UUFic3RyYWN0RXZlbnREaXNwYXRjaGVyPgotI2luY2x1ZGUgPFFPYmpl
Y3Q+Ci0jaW5jbHVkZSA8UU1ldGFNZXRob2Q+Ci0jaW5jbHVkZSA8UU1ldGFPYmplY3Q+Ci0jaW5j
bHVkZSA8UVRpbWVyRXZlbnQ+Ci0KLWNsYXNzIFJ1bkxvb3A6OlRpbWVyT2JqZWN0IDogcHVibGlj
IFFPYmplY3QKLXsKLSAgICBRX09CSkVDVAotcHVibGljOgotICAgIFRpbWVyT2JqZWN0KFJ1bkxv
b3AqIHJ1bkxvb3ApIDogbV9ydW5Mb29wKHJ1bkxvb3ApCi0gICAgewotICAgICAgICBpbnQgbWV0
aG9kSW5kZXggPSBtZXRhT2JqZWN0KCktPmluZGV4T2ZNZXRob2QoInBlcmZvcm1Xb3JrKCkiKTsK
LSAgICAgICAgbV9tZXRob2QgPSBtZXRhT2JqZWN0KCktPm1ldGhvZChtZXRob2RJbmRleCk7Ci0g
ICAgfQotCi0gICAgUV9TTE9UIHZvaWQgcGVyZm9ybVdvcmsoKSB7IG1fcnVuTG9vcC0+cGVyZm9y
bVdvcmsoKTsgfQotICAgIGlubGluZSB2b2lkIHdha2VVcCgpIHsgbV9tZXRob2QuaW52b2tlKHRo
aXMsIFF0OjpRdWV1ZWRDb25uZWN0aW9uKTsgfQotCi1wcm90ZWN0ZWQ6Ci0gICAgdmlydHVhbCB2
b2lkIHRpbWVyRXZlbnQoUVRpbWVyRXZlbnQqIGV2ZW50KQotICAgIHsKLSAgICAgICAgUnVuTG9v
cDo6VGltZXJCYXNlOjp0aW1lckZpcmVkKG1fcnVuTG9vcCwgZXZlbnQtPnRpbWVySWQoKSk7Ci0g
ICAgfQotCi1wcml2YXRlOgotICAgIFJ1bkxvb3AqIG1fcnVuTG9vcDsKLSAgICBRTWV0YU1ldGhv
ZCBtX21ldGhvZDsKLX07Ci0KLXN0YXRpYyBRRXZlbnRMb29wKiBjdXJyZW50RXZlbnRMb29wOwot
Ci12b2lkIFJ1bkxvb3A6OnJ1bigpCi17Ci0gICAgc3RhdGljIGJvb2wgbWFpbkV2ZW50TG9vcElz
UnVubmluZyA9IGZhbHNlOwotICAgIGlmICghbWFpbkV2ZW50TG9vcElzUnVubmluZykgewotICAg
ICAgICBtYWluRXZlbnRMb29wSXNSdW5uaW5nID0gdHJ1ZTsKLSAgICAgICAgUUNvcmVBcHBsaWNh
dGlvbjo6ZXhlYygpOwotICAgICAgICBtYWluRXZlbnRMb29wSXNSdW5uaW5nID0gZmFsc2U7Ci0g
ICAgfSBlbHNlIHsKLSAgICAgICAgUUV2ZW50TG9vcCBldmVudExvb3A7Ci0KLSAgICAgICAgUUV2
ZW50TG9vcCogcHJldmlvdXNFdmVudExvb3AgPSBjdXJyZW50RXZlbnRMb29wOwotICAgICAgICBj
dXJyZW50RXZlbnRMb29wID0gJmV2ZW50TG9vcDsKLQotICAgICAgICBldmVudExvb3AuZXhlYygp
OwotCi0gICAgICAgIGN1cnJlbnRFdmVudExvb3AgPSBwcmV2aW91c0V2ZW50TG9vcDsKLSAgICB9
Ci19Ci0KLXZvaWQgUnVuTG9vcDo6c3RvcCgpCi17Ci0gICAgaWYgKGN1cnJlbnRFdmVudExvb3Ap
Ci0gICAgICAgIGN1cnJlbnRFdmVudExvb3AtPmV4aXQoKTsKLSAgICBlbHNlCi0gICAgICAgIFFD
b3JlQXBwbGljYXRpb246OmV4aXQoKTsKLX0KLQotUnVuTG9vcDo6UnVuTG9vcCgpCi0gICAgOiBt
X3RpbWVyT2JqZWN0KG5ldyBUaW1lck9iamVjdCh0aGlzKSkKLXsKLX0KLQotUnVuTG9vcDo6flJ1
bkxvb3AoKQotewotICAgIGRlbGV0ZSBtX3RpbWVyT2JqZWN0OwotfQotCi12b2lkIFJ1bkxvb3A6
Ondha2VVcCgpCi17Ci0gICAgbV90aW1lck9iamVjdC0+d2FrZVVwKCk7Ci19Ci0KLS8vIFJ1bkxv
b3A6OlRpbWVyCi0KLXZvaWQgUnVuTG9vcDo6VGltZXJCYXNlOjp0aW1lckZpcmVkKFJ1bkxvb3Aq
IHJ1bkxvb3AsIGludCBJRCkKLXsKLSAgICBUaW1lck1hcDo6aXRlcmF0b3IgaXQgPSBydW5Mb29w
LT5tX2FjdGl2ZVRpbWVycy5maW5kKElEKTsKLSAgICBBU1NFUlQoaXQgIT0gcnVuTG9vcC0+bV9h
Y3RpdmVUaW1lcnMuZW5kKCkpOwotICAgIFRpbWVyQmFzZSogdGltZXIgPSBpdC0+c2Vjb25kOwot
Ci0gICAgaWYgKCF0aW1lci0+bV9pc1JlcGVhdGluZykgewotICAgICAgICAvLyBTdG9wIHRoZSB0
aW1lciAoY2FsbGluZyBzdG9wIHdvdWxkIG5lZWQgYW5vdGhlciBoYXNoIHRhYmxlIGxvb2t1cCku
Ci0gICAgICAgIHJ1bkxvb3AtPm1fYWN0aXZlVGltZXJzLnJlbW92ZShpdCk7Ci0gICAgICAgIHJ1
bkxvb3AtPm1fdGltZXJPYmplY3QtPmtpbGxUaW1lcih0aW1lci0+bV9JRCk7Ci0gICAgICAgIHRp
bWVyLT5tX0lEID0gMDsKLSAgICB9Ci0KLSAgICB0aW1lci0+ZmlyZWQoKTsKLX0KLQotUnVuTG9v
cDo6VGltZXJCYXNlOjpUaW1lckJhc2UoUnVuTG9vcCogcnVuTG9vcCkKLSAgICA6IG1fcnVuTG9v
cChydW5Mb29wKQotICAgICwgbV9JRCgwKQotICAgICwgbV9pc1JlcGVhdGluZyhmYWxzZSkKLXsK
LX0KLQotUnVuTG9vcDo6VGltZXJCYXNlOjp+VGltZXJCYXNlKCkKLXsKLSAgICBzdG9wKCk7Ci19
Ci0KLXZvaWQgUnVuTG9vcDo6VGltZXJCYXNlOjpzdGFydChkb3VibGUgbmV4dEZpcmVJbnRlcnZh
bCwgYm9vbCByZXBlYXQpCi17Ci0gICAgc3RvcCgpOwotICAgIGludCBtaWxsaXMgPSBzdGF0aWNf
Y2FzdDxpbnQ+KG5leHRGaXJlSW50ZXJ2YWwgKiAxMDAwKTsKLSAgICBtX2lzUmVwZWF0aW5nID0g
cmVwZWF0OwotICAgIG1fSUQgPSBtX3J1bkxvb3AtPm1fdGltZXJPYmplY3QtPnN0YXJ0VGltZXIo
bWlsbGlzKTsKLSAgICBBU1NFUlQobV9JRCk7Ci0gICAgbV9ydW5Mb29wLT5tX2FjdGl2ZVRpbWVy
cy5zZXQobV9JRCwgdGhpcyk7Ci19Ci0KLXZvaWQgUnVuTG9vcDo6VGltZXJCYXNlOjpzdG9wKCkK
LXsKLSAgICBpZiAoIW1fSUQpCi0gICAgICAgIHJldHVybjsKLSAgICBUaW1lck1hcDo6aXRlcmF0
b3IgaXQgPSBtX3J1bkxvb3AtPm1fYWN0aXZlVGltZXJzLmZpbmQobV9JRCk7Ci0gICAgaWYgKGl0
ID09IG1fcnVuTG9vcC0+bV9hY3RpdmVUaW1lcnMuZW5kKCkpCi0gICAgICAgIHJldHVybjsKLQot
ICAgIG1fcnVuTG9vcC0+bV9hY3RpdmVUaW1lcnMucmVtb3ZlKGl0KTsKLSAgICBtX3J1bkxvb3At
Pm1fdGltZXJPYmplY3QtPmtpbGxUaW1lcihtX0lEKTsKLSAgICBtX0lEID0gMDsKLX0KLQotYm9v
bCBSdW5Mb29wOjpUaW1lckJhc2U6OmlzQWN0aXZlKCkgY29uc3QKLXsKLSAgICByZXR1cm4gbV9J
RDsKLX0KLQotI2luY2x1ZGUgIlJ1bkxvb3BRdC5tb2MiCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0Mi9QbGF0Zm9ybS93aW4vUnVuTG9vcFdpbi5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9y
bS93aW4vUnVuTG9vcFdpbi5jcHAKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGRmYmNh
ZWU1NjJlNjUzNTkxMWFlYWNkMWZmYjA0OWJlMTc4ZjAxZjUuLjAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYktpdDIvUGxhdGZvcm0vd2luL1J1
bkxvb3BXaW4uY3BwCisrKyAvZGV2L251bGwKQEAgLTEsMTc5ICswLDAgQEAKLS8qCi0gKiBDb3B5
cmlnaHQgKEMpIDIwMTAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25z
IG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0
aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9u
IGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgot
ICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENP
TlRSSUJVVE9SUyBgYEFTIElTJycKLSAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJB
TlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogVEhFIElNUExJRUQgV0FS
UkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgot
ICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBP
UiBJVFMgQ09OVFJJQlVUT1JTCi0gKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNU
LCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCi0gKiBDT05TRVFVRU5USUFMIERB
TUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgotICog
U1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJ
VFM7IE9SIEJVU0lORVNTCi0gKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBB
TlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgotICogQ09OVFJBQ1QsIFNUUklDVCBM
SUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKLSAq
IEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVO
IElGIEFEVklTRUQgT0YKLSAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwot
Ci0jaW5jbHVkZSAiY29uZmlnLmgiCi0jaW5jbHVkZSAiUnVuTG9vcC5oIgotCi0jaW5jbHVkZSAi
QmluYXJ5U2VtYXBob3JlLmgiCi0jaW5jbHVkZSA8d3RmL0N1cnJlbnRUaW1lLmg+Ci0KLXVzaW5n
IG5hbWVzcGFjZSBDb3JlSVBDOwotdXNpbmcgbmFtZXNwYWNlIHN0ZDsKLQotc3RhdGljIGNvbnN0
IFVJTlQgUGVyZm9ybVdvcmtNZXNzYWdlID0gV01fVVNFUiArIDE7Ci1zdGF0aWMgY29uc3QgTFBX
U1RSIGtSdW5Mb29wTWVzc2FnZVdpbmRvd0NsYXNzTmFtZSA9IEwiUnVuTG9vcE1lc3NhZ2VXaW5k
b3ciOwotCi1MUkVTVUxUIENBTExCQUNLIFJ1bkxvb3A6OlJ1bkxvb3BXbmRQcm9jKEhXTkQgaFdu
ZCwgVUlOVCBtZXNzYWdlLCBXUEFSQU0gd1BhcmFtLCBMUEFSQU0gbFBhcmFtKQotewotICAgIExP
TkdfUFRSIGxvbmdQdHIgPSA6OkdldFdpbmRvd0xvbmdQdHIoaFduZCwgMCk7Ci0gICAgCi0gICAg
aWYgKFJ1bkxvb3AqIHJ1bkxvb3AgPSByZWludGVycHJldF9jYXN0PFJ1bkxvb3AqPihsb25nUHRy
KSkKLSAgICAgICAgcmV0dXJuIHJ1bkxvb3AtPnduZFByb2MoaFduZCwgbWVzc2FnZSwgd1BhcmFt
LCBsUGFyYW0pOwotCi0gICAgaWYgKG1lc3NhZ2UgPT0gV01fQ1JFQVRFKSB7Ci0gICAgICAgIExQ
Q1JFQVRFU1RSVUNUIGNyZWF0ZVN0cnVjdCA9IHJlaW50ZXJwcmV0X2Nhc3Q8TFBDUkVBVEVTVFJV
Q1Q+KGxQYXJhbSk7Ci0KLSAgICAgICAgLy8gQXNzb2NpYXRlIHRoZSBSdW5Mb29wIHdpdGggdGhl
IHdpbmRvdy4KLSAgICAgICAgOjpTZXRXaW5kb3dMb25nUHRyKGhXbmQsIDAsIChMT05HX1BUUilj
cmVhdGVTdHJ1Y3QtPmxwQ3JlYXRlUGFyYW1zKTsKLSAgICAgICAgcmV0dXJuIDA7Ci0gICAgfQot
Ci0gICAgcmV0dXJuIDo6RGVmV2luZG93UHJvYyhoV25kLCBtZXNzYWdlLCB3UGFyYW0sIGxQYXJh
bSk7Ci19Ci0KLUxSRVNVTFQgUnVuTG9vcDo6d25kUHJvYyhIV05EIGhXbmQsIFVJTlQgbWVzc2Fn
ZSwgV1BBUkFNIHdQYXJhbSwgTFBBUkFNIGxQYXJhbSkKLXsKLSAgICBzd2l0Y2ggKG1lc3NhZ2Up
IHsKLSAgICBjYXNlIFBlcmZvcm1Xb3JrTWVzc2FnZToKLSAgICAgICAgcGVyZm9ybVdvcmsoKTsK
LSAgICAgICAgcmV0dXJuIDA7Ci0gICAgY2FzZSBXTV9USU1FUjoKLSAgICAgICAgUnVuTG9vcDo6
VGltZXJCYXNlOjp0aW1lckZpcmVkKHRoaXMsIHdQYXJhbSk7Ci0gICAgICAgIHJldHVybiAwOwot
ICAgIH0KLQotICAgIHJldHVybiA6OkRlZldpbmRvd1Byb2MoaFduZCwgbWVzc2FnZSwgd1BhcmFt
LCBsUGFyYW0pOwotfQotCi12b2lkIFJ1bkxvb3A6OnJ1bigpCi17Ci0gICAgTVNHIG1lc3NhZ2U7
Ci0gICAgd2hpbGUgKEJPT0wgcmVzdWx0ID0gOjpHZXRNZXNzYWdlKCZtZXNzYWdlLCAwLCAwLCAw
KSkgewotICAgICAgICBpZiAocmVzdWx0ID09IC0xKQotICAgICAgICAgICAgYnJlYWs7Ci0gICAg
ICAgIDo6VHJhbnNsYXRlTWVzc2FnZSgmbWVzc2FnZSk7Ci0gICAgICAgIDo6RGlzcGF0Y2hNZXNz
YWdlKCZtZXNzYWdlKTsKLSAgICB9Ci19Ci0KLXZvaWQgUnVuTG9vcDo6c3RvcCgpCi17Ci0gICAg
OjpQb3N0UXVpdE1lc3NhZ2UoMCk7Ci19Ci0KLWJvb2wgUnVuTG9vcDo6cmVnaXN0ZXJSdW5Mb29w
TWVzc2FnZVdpbmRvd0NsYXNzKCkKLXsKLSAgICAvLyBGSVhNRTogVGhpcyByZWFsbHkgb25seSBu
ZWVkcyB0byBiZSBjYWxsZWQgb25jZS4KLQotICAgIFdORENMQVNTRVggd2luZG93Q2xhc3MgPSB7
IDAgfTsKLSAgICB3aW5kb3dDbGFzcy5jYlNpemUgICAgICAgICAgPSBzaXplb2Yod2luZG93Q2xh
c3MpOwotICAgIHdpbmRvd0NsYXNzLmxwZm5XbmRQcm9jICAgICA9IFJ1bkxvb3A6OlJ1bkxvb3BX
bmRQcm9jOwotICAgIHdpbmRvd0NsYXNzLmNiV25kRXh0cmEgICAgICA9IHNpemVvZihSdW5Mb29w
Kik7Ci0gICAgd2luZG93Q2xhc3MubHBzekNsYXNzTmFtZSAgID0ga1J1bkxvb3BNZXNzYWdlV2lu
ZG93Q2xhc3NOYW1lOwotCi0gICAgcmV0dXJuICEhOjpSZWdpc3RlckNsYXNzRXgoJndpbmRvd0Ns
YXNzKTsKLX0KLQotUnVuTG9vcDo6UnVuTG9vcCgpCi17Ci0gICAgcmVnaXN0ZXJSdW5Mb29wTWVz
c2FnZVdpbmRvd0NsYXNzKCk7Ci0KLSAgICBtX3J1bkxvb3BNZXNzYWdlV2luZG93ID0gOjpDcmVh
dGVXaW5kb3coa1J1bkxvb3BNZXNzYWdlV2luZG93Q2xhc3NOYW1lLCAwLCAwLAotICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDV19VU0VERUZBVUxULCAwLCBDV19V
U0VERUZBVUxULCAwLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBIV05EX01FU1NBR0UsIDAsIDAsIHRoaXMpOwotICAgIEFTU0VSVCg6OklzV2luZG93KG1fcnVu
TG9vcE1lc3NhZ2VXaW5kb3cpKTsKLX0KLQotUnVuTG9vcDo6flJ1bkxvb3AoKQotewotICAgIC8v
IEZJWE1FOiBUZWFyIGRvd24gdGhlIHdvcmsgaXRlbSBxdWV1ZSBoZXJlLgotfQotCi12b2lkIFJ1
bkxvb3A6Ondha2VVcCgpCi17Ci0gICAgLy8gRklYTUU6IE5vIG5lZWQgdG8gd2FrZSB1cCB0aGUg
cnVuIGxvb3AgaWYgd2UndmUgYWxyZWFkeSBjYWxsZWQgZGlzcGF0Y2gKLSAgICAvLyBiZWZvcmUg
dGhlIHJ1biBsb29wIGhhcyBoYWQgdGhlIHRpbWUgdG8gcmVzcG9uZC4KLSAgICA6OlBvc3RNZXNz
YWdlKG1fcnVuTG9vcE1lc3NhZ2VXaW5kb3csIFBlcmZvcm1Xb3JrTWVzc2FnZSwgcmVpbnRlcnBy
ZXRfY2FzdDxXUEFSQU0+KHRoaXMpLCAwKTsKLX0KLQotLy8gUnVuTG9vcDo6VGltZXIKLQotdm9p
ZCBSdW5Mb29wOjpUaW1lckJhc2U6OnRpbWVyRmlyZWQoUnVuTG9vcCogcnVuTG9vcCwgdWludDY0
X3QgSUQpCi17Ci0gICAgVGltZXJNYXA6Oml0ZXJhdG9yIGl0ID0gcnVuTG9vcC0+bV9hY3RpdmVU
aW1lcnMuZmluZChJRCk7Ci0gICAgaWYgKGl0ID09IHJ1bkxvb3AtPm1fYWN0aXZlVGltZXJzLmVu
ZCgpKSB7Ci0gICAgICAgIC8vIFRoZSB0aW1lciBtdXN0IGhhdmUgYmVlbiBzdG9wcGVkIGFmdGVy
IHRoZSBXTV9USU1FUiBtZXNzYWdlIHdhcyBwb3N0ZWQgdG8gdGhlIG1lc3NhZ2UgcXVldWUuCi0g
ICAgICAgIHJldHVybjsKLSAgICB9Ci0KLSAgICBUaW1lckJhc2UqIHRpbWVyID0gaXQtPnNlY29u
ZDsKLQotICAgIGlmICghdGltZXItPm1faXNSZXBlYXRpbmcpIHsKLSAgICAgICAgcnVuTG9vcC0+
bV9hY3RpdmVUaW1lcnMucmVtb3ZlKGl0KTsKLSAgICAgICAgOjpLaWxsVGltZXIocnVuTG9vcC0+
bV9ydW5Mb29wTWVzc2FnZVdpbmRvdywgSUQpOwotICAgIH0KLQotICAgIHRpbWVyLT5maXJlZCgp
OwotfQotCi1zdGF0aWMgdWludDY0X3QgZ2VuZXJhdGVUaW1lcklEKCkKLXsKLSAgICBzdGF0aWMg
dWludDY0X3QgdW5pcXVlVGltZXJJRCA9IDE7Ci0gICAgcmV0dXJuIHVuaXF1ZVRpbWVySUQrKzsK
LX0KLQotUnVuTG9vcDo6VGltZXJCYXNlOjpUaW1lckJhc2UoUnVuTG9vcCogcnVuTG9vcCkKLSAg
ICA6IG1fcnVuTG9vcChydW5Mb29wKQotICAgICwgbV9JRChnZW5lcmF0ZVRpbWVySUQoKSkKLSAg
ICAsIG1faXNSZXBlYXRpbmcoZmFsc2UpCi17Ci19Ci0KLVJ1bkxvb3A6OlRpbWVyQmFzZTo6flRp
bWVyQmFzZSgpCi17Ci0gICAgc3RvcCgpOwotfQotCi12b2lkIFJ1bkxvb3A6OlRpbWVyQmFzZTo6
c3RhcnQoZG91YmxlIG5leHRGaXJlSW50ZXJ2YWwsIGJvb2wgcmVwZWF0KQotewotICAgIG1faXNS
ZXBlYXRpbmcgPSByZXBlYXQ7Ci0gICAgbV9ydW5Mb29wLT5tX2FjdGl2ZVRpbWVycy5zZXQobV9J
RCwgdGhpcyk7Ci0gICAgOjpTZXRUaW1lcihtX3J1bkxvb3AtPm1fcnVuTG9vcE1lc3NhZ2VXaW5k
b3csIG1fSUQsIG5leHRGaXJlSW50ZXJ2YWwgKiAxMDAwLCAwKTsKLX0KLQotdm9pZCBSdW5Mb29w
OjpUaW1lckJhc2U6OnN0b3AoKQotewotICAgIFRpbWVyTWFwOjppdGVyYXRvciBpdCA9IG1fcnVu
TG9vcC0+bV9hY3RpdmVUaW1lcnMuZmluZChtX0lEKTsKLSAgICBpZiAoaXQgPT0gbV9ydW5Mb29w
LT5tX2FjdGl2ZVRpbWVycy5lbmQoKSkKLSAgICAgICAgcmV0dXJuOwotCi0gICAgbV9ydW5Mb29w
LT5tX2FjdGl2ZVRpbWVycy5yZW1vdmUoaXQpOwotICAgIDo6S2lsbFRpbWVyKG1fcnVuTG9vcC0+
bV9ydW5Mb29wTWVzc2FnZVdpbmRvdywgbV9JRCk7Ci19Ci0KLWJvb2wgUnVuTG9vcDo6VGltZXJC
YXNlOjppc0FjdGl2ZSgpIGNvbnN0Ci17Ci0gICAgcmV0dXJuIG1fcnVuTG9vcC0+bV9hY3RpdmVU
aW1lcnMuY29udGFpbnMobV9JRCk7Ci19CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9QbHVn
aW5Qcm9jZXNzL1BsdWdpbkNvbnRyb2xsZXJQcm94eS5oIGIvU291cmNlL1dlYktpdDIvUGx1Z2lu
UHJvY2Vzcy9QbHVnaW5Db250cm9sbGVyUHJveHkuaAppbmRleCA1MWMzNDhkYTFhNTJjZDIwZTU5
OTk5MDdhNWNiZWFkOTVmZDY4ZWMzLi5jNzkyMTFhOGMyYWQyYjQzNDk0NGQ5OWQ1YWRjZGI2NDM0
ZGRiMmUzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9QbHVnaW5Qcm9jZXNzL1BsdWdpbkNv
bnRyb2xsZXJQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1BsdWdpblByb2Nlc3MvUGx1Z2lu
Q29udHJvbGxlclByb3h5LmgKQEAgLTMyLDggKzMyLDggQEAKICNpbmNsdWRlICJQbHVnaW4uaCIK
ICNpbmNsdWRlICJQbHVnaW5Db250cm9sbGVyLmgiCiAjaW5jbHVkZSAiUGx1Z2luQ29udHJvbGxl
clByb3h5TWVzc2FnZXMuaCIKLSNpbmNsdWRlICJSdW5Mb29wLmgiCiAjaW5jbHVkZSAiU2hhcmVh
YmxlQml0bWFwLmgiCisjaW5jbHVkZSA8V2ViQ29yZS9SdW5Mb29wLmg+CiAjaW5jbHVkZSA8d3Rm
L05vbmNvcHlhYmxlLmg+CiAKICNpZiBQTEFURk9STShNQUMpCkBAIC0xNjcsMTQgKzE2NywxNCBA
QCBwcml2YXRlOgogICAgIFdlYkNvcmU6OkludFJlY3QgbV9kaXJ0eVJlY3Q7CiAKICAgICAvLyBU
aGUgcGFpbnQgdGltZXIsIHVzZWQgZm9yIGNvYWxlc2NpbmcgcGFpbnRpbmcuCi0gICAgUnVuTG9v
cDo6VGltZXI8UGx1Z2luQ29udHJvbGxlclByb3h5PiBtX3BhaW50VGltZXI7CisgICAgV2ViQ29y
ZTo6UnVuTG9vcDo6VGltZXI8UGx1Z2luQ29udHJvbGxlclByb3h5PiBtX3BhaW50VGltZXI7CiAg
ICAgCiAgICAgLy8gQSBjb3VudGVyIHVzZWQgdG8gcHJldmVudCB0aGUgcGx1Zy1pbiBmcm9tIGJl
aW5nIGRlc3Ryb3llZC4KICAgICB1bnNpZ25lZCBtX3BsdWdpbkRlc3RydWN0aW9uUHJvdGVjdENv
dW50OwogCiAgICAgLy8gQSB0aW1lciB0aGF0IHdlIHVzZSB0byBwcmV2ZW50IGRlc3RydWN0aW9u
IG9mIHRoZSBwbHVnLWluIHdoaWxlIHBsdWctaW4KICAgICAvLyBjb2RlIGlzIG9uIHRoZSBzdGFj
ay4KLSAgICBSdW5Mb29wOjpUaW1lcjxQbHVnaW5Db250cm9sbGVyUHJveHk+IG1fcGx1Z2luRGVz
dHJveVRpbWVyOworICAgIFdlYkNvcmU6OlJ1bkxvb3A6OlRpbWVyPFBsdWdpbkNvbnRyb2xsZXJQ
cm94eT4gbV9wbHVnaW5EZXN0cm95VGltZXI7CiAKICAgICAvLyBXaWxsIHBvaW50IHRvIHRoZSBw
bHVnLWluIGNyZWF0aW9uIHBhcmFtZXRlcnMgb2YgdGhlIHBsdWctaW4gd2UncmUgY3VycmVudGx5
IGluaXRpYWxpemluZyBhbmQgd2lsbCBiZSBudWxsIHdoZW4gd2UncmUgZG9uZSBpbml0aWFsaXpp
bmcuCiAgICAgY29uc3QgUGx1Z2luQ3JlYXRpb25QYXJhbWV0ZXJzKiBtX3BsdWdpbkNyZWF0aW9u
UGFyYW1ldGVyczsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1BsdWdpblByb2Nlc3MvUGx1
Z2luUHJvY2Vzcy5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9QbHVnaW5Qcm9jZXNzL1BsdWdpblByb2Nl
c3MuY3BwCmluZGV4IGEzNjZmNWRiNzE0MjEzNzA2YmRlYjU5ODU1OTc0MzhhOGQ1NGU2M2UuLjA5
OWJmM2E0OGZmZDIzZmM0ZTRhYzc3MTJkYzkyNjdiMzE3ZWRiNTkgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQyL1BsdWdpblByb2Nlc3MvUGx1Z2luUHJvY2Vzcy5jcHAKKysrIGIvU291cmNlL1dl
YktpdDIvUGx1Z2luUHJvY2Vzcy9QbHVnaW5Qcm9jZXNzLmNwcApAQCAtMzYsNiArMzYsNyBAQAog
I2luY2x1ZGUgIlBsdWdpblByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuaCIKICNpbmNsdWRlICJX
ZWJQcm9jZXNzQ29ubmVjdGlvbi5oIgogI2luY2x1ZGUgPFdlYkNvcmUvTm90SW1wbGVtZW50ZWQu
aD4KKyNpbmNsdWRlIDxXZWJDb3JlL1J1bkxvb3AuaD4KIAogI2lmIFVTRShVTklYX0RPTUFJTl9T
T0NLRVRTKQogI2luY2x1ZGUgPGVycm5vLmg+CkBAIC01NSw2ICs1Niw4IEBACiAjZW5kaWYgLy8g
U09DS19TRVFQQUNLRVQKICNlbmRpZiAvLyBVU0UoVU5JWF9ET01BSU5fU09DS0VUUykKIAordXNp
bmcgbmFtZXNwYWNlIFdlYkNvcmU7CisKIG5hbWVzcGFjZSBXZWJLaXQgewogCiBzdGF0aWMgY29u
c3QgZG91YmxlIHNodXRkb3duVGltZW91dCA9IDE1LjA7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0Mi9QbHVnaW5Qcm9jZXNzL1BsdWdpblByb2Nlc3MuaCBiL1NvdXJjZS9XZWJLaXQyL1BsdWdp
blByb2Nlc3MvUGx1Z2luUHJvY2Vzcy5oCmluZGV4IGE2MTAzMjZiNDc5NmNjNDRkMWY3MmUxNjNm
YjlhODRhN2I5NzNjNGEuLjBjZjM5YzZlNTllYzExMmY0MDk2ZTE4NDgzNDgwMjdlZWYwODhhYTkg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1BsdWdpblByb2Nlc3MvUGx1Z2luUHJvY2Vzcy5o
CisrKyBiL1NvdXJjZS9XZWJLaXQyL1BsdWdpblByb2Nlc3MvUGx1Z2luUHJvY2Vzcy5oCkBAIC0y
OSwxMCArMjksMTMgQEAKICNpZiBFTkFCTEUoUExVR0lOX1BST0NFU1MpCiAKICNpbmNsdWRlICJD
aGlsZFByb2Nlc3MuaCIKLSNpbmNsdWRlICJSdW5Mb29wLmgiCiAjaW5jbHVkZSA8d3RmL0Zvcndh
cmQuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KIAorbmFtZXNwYWNlIFdlYkNv
cmUgeworY2xhc3MgUnVuTG9vcDsKK30KKwogbmFtZXNwYWNlIFdlYktpdCB7CiAKIGNsYXNzIE5l
dHNjYXBlUGx1Z2luTW9kdWxlOwpAQCAtNDQsNyArNDcsNyBAQCBjbGFzcyBQbHVnaW5Qcm9jZXNz
IDogQ2hpbGRQcm9jZXNzIHsKIHB1YmxpYzoKICAgICBzdGF0aWMgUGx1Z2luUHJvY2VzcyYgc2hh
cmVkKCk7CiAKLSAgICB2b2lkIGluaXRpYWxpemUoQ29yZUlQQzo6Q29ubmVjdGlvbjo6SWRlbnRp
ZmllciwgUnVuTG9vcCopOworICAgIHZvaWQgaW5pdGlhbGl6ZShDb3JlSVBDOjpDb25uZWN0aW9u
OjpJZGVudGlmaWVyLCBXZWJDb3JlOjpSdW5Mb29wKik7CiAgICAgdm9pZCByZW1vdmVXZWJQcm9j
ZXNzQ29ubmVjdGlvbihXZWJQcm9jZXNzQ29ubmVjdGlvbiogd2ViUHJvY2Vzc0Nvbm5lY3Rpb24p
OwogCiAgICAgTmV0c2NhcGVQbHVnaW5Nb2R1bGUqIG5ldHNjYXBlUGx1Z2luTW9kdWxlKCk7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9QbHVnaW5Qcm9jZXNzL1dlYlByb2Nlc3NDb25uZWN0
aW9uLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1BsdWdpblByb2Nlc3MvV2ViUHJvY2Vzc0Nvbm5lY3Rp
b24uY3BwCmluZGV4IGFiNjNiMDViYmRmODZmMmIyMzI5YzhkYzMzZDA4NzE4MGNiNzM5ZmQuLmEy
N2QxMTM5MDY5ZGE5NzdmYzgyZWNiZGQyYWVjOTRjN2E3ZWQ2NWYgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQyL1BsdWdpblByb2Nlc3MvV2ViUHJvY2Vzc0Nvbm5lY3Rpb24uY3BwCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL1BsdWdpblByb2Nlc3MvV2ViUHJvY2Vzc0Nvbm5lY3Rpb24uY3BwCkBAIC0z
NCwxMCArMzQsMTEgQEAKICNpbmNsdWRlICJQbHVnaW5DcmVhdGlvblBhcmFtZXRlcnMuaCIKICNp
bmNsdWRlICJQbHVnaW5Qcm9jZXNzLmgiCiAjaW5jbHVkZSAiUGx1Z2luUHJvY2Vzc0Nvbm5lY3Rp
b25NZXNzYWdlcy5oIgotI2luY2x1ZGUgIlJ1bkxvb3AuaCIKKyNpbmNsdWRlIDxXZWJDb3JlL1J1
bkxvb3AuaD4KIAotbmFtZXNwYWNlIFdlYktpdCB7Cit1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsK
IAorbmFtZXNwYWNlIFdlYktpdCB7CiAKIGNsYXNzIENvbm5lY3Rpb25TdGFjayB7CiBwdWJsaWM6
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9QbHVnaW5Qcm9jZXNzL21hYy9QbHVnaW5Qcm9j
ZXNzTWFpbk1hYy5tbSBiL1NvdXJjZS9XZWJLaXQyL1BsdWdpblByb2Nlc3MvbWFjL1BsdWdpblBy
b2Nlc3NNYWluTWFjLm1tCmluZGV4IDVlOTNlMmJkZGE0MTNmYjhjM2Q5MjlhYWRhZTA0NjFhMzMz
NjI4NmQuLjg1NjFmOTk1OTQ0MDljZjA3OGVmMTZkMDE0MTMzZWIwMmM4YjVmNWUgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQyL1BsdWdpblByb2Nlc3MvbWFjL1BsdWdpblByb2Nlc3NNYWluTWFj
Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQyL1BsdWdpblByb2Nlc3MvbWFjL1BsdWdpblByb2Nlc3NN
YWluTWFjLm1tCkBAIC0zMiwxOSArMzIsMjEgQEAKICNpbXBvcnQgIkVudmlyb25tZW50VXRpbGl0
aWVzLmgiCiAjaW1wb3J0ICJOZXRzY2FwZVBsdWdpbk1vZHVsZS5oIgogI2ltcG9ydCAiUGx1Z2lu
UHJvY2Vzcy5oIgotI2ltcG9ydCAiUnVuTG9vcC5oIgorI2ltcG9ydCA8V2ViQ29yZS9SdW5Mb29w
Lmg+CiAjaW1wb3J0IDxXZWJLaXRTeXN0ZW1JbnRlcmZhY2UuaD4KICNpbXBvcnQgPG1hY2gvbWFj
aF9lcnJvci5oPgogI2ltcG9ydCA8cnVudGltZS9Jbml0aWFsaXplVGhyZWFkaW5nLmg+CiAjaW1w
b3J0IDxzZXJ2ZXJzL2Jvb3RzdHJhcC5oPgorI2ltcG9ydCA8c3RkaW8uaD4KICNpbXBvcnQgPHd0
Zi9NYWluVGhyZWFkLmg+CiAjaW1wb3J0IDx3dGYvUmV0YWluUHRyLmg+CiAjaW1wb3J0IDx3dGYv
dGV4dC9DU3RyaW5nLmg+CiAjaW1wb3J0IDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KLSNpbmNsdWRl
IDxzdGRpby5oPgogCiAjZGVmaW5lIFNIT1dfQ1JBU0hfUkVQT1JURVIgMQogCit1c2luZyBuYW1l
c3BhY2UgV2ViQ29yZTsKKwogbmFtZXNwYWNlIFdlYktpdCB7CiAKIC8vIEZJWE1FOiBUaGVyZSBp
cyBtdWNoIGNvZGUgaGVyZSB0aGF0IGlzIGR1cGxpY2F0ZWQgaW4gV2ViUHJvY2Vzc01haW5NYWMu
bW0sIHdlIHNob3VsZCBhZGQgYSBzaGFyZWQgYmFzZSBjbGFzcyB3aGVyZQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdDIvUGx1Z2luUHJvY2Vzcy9xdC9QbHVnaW5Qcm9jZXNzTWFpblF0LmNwcCBi
L1NvdXJjZS9XZWJLaXQyL1BsdWdpblByb2Nlc3MvcXQvUGx1Z2luUHJvY2Vzc01haW5RdC5jcHAK
aW5kZXggM2UwMDMzZmYwYWIzMzc2NTBlNTNkMDgxYzg5ZjQ0NDE0YTY3OGE3NS4uZDNhMGVjM2Uy
NDU5NTZiOTg1MDBkNTY3ZTU2NWZhYTE1MDZhMDA1MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dDIvUGx1Z2luUHJvY2Vzcy9xdC9QbHVnaW5Qcm9jZXNzTWFpblF0LmNwcAorKysgYi9Tb3VyY2Uv
V2ViS2l0Mi9QbHVnaW5Qcm9jZXNzL3F0L1BsdWdpblByb2Nlc3NNYWluUXQuY3BwCkBAIC0zMCw4
ICszMCw4IEBACiAKICNpbmNsdWRlICJDb21tYW5kTGluZS5oIgogI2luY2x1ZGUgIlBsdWdpblBy
b2Nlc3MuaCIKLSNpbmNsdWRlICJSdW5Mb29wLmgiCiAjaW5jbHVkZSA8V2ViQ29yZS9Ob3RJbXBs
ZW1lbnRlZC5oPgorI2luY2x1ZGUgPFdlYkNvcmUvUnVuTG9vcC5oPgogI2luY2x1ZGUgPHJ1bnRp
bWUvSW5pdGlhbGl6ZVRocmVhZGluZy5oPgogI2luY2x1ZGUgPHd0Zi9NYWluVGhyZWFkLmg+CiAj
aW5jbHVkZSA8d3RmL1JldGFpblB0ci5oPgpAQCAtNDAsNiArNDAsOCBAQAogCiAjZGVmaW5lIFNI
T1dfQ1JBU0hfUkVQT1JURVIgMQogCit1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKKwogbmFtZXNw
YWNlIFdlYktpdCB7CiAKIGludCBQbHVnaW5Qcm9jZXNzTWFpbihjb25zdCBDb21tYW5kTGluZSYg
Y29tbWFuZExpbmUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQ2hpbGRQcm9j
ZXNzLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9DaGlsZFByb2Nlc3MuY3BwCmluZGV4IDhi
M2NkYjI4MmNiOWI4M2Y0YjQ4ZTIwNzUzNDZmODVmZmI5ZDRhNmMuLjU3MWZlOTU4NjBlMzBlZjY3
ZmFiMjBmODUxZjI5M2EwNWZjNGE4MjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJl
ZC9DaGlsZFByb2Nlc3MuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9DaGlsZFByb2Nl
c3MuY3BwCkBAIC0zMCw2ICszMCw4IEBACiAjaW5jbHVkZSA8dW5pc3RkLmg+CiAjZW5kaWYKIAor
dXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CisKIG5hbWVzcGFjZSBXZWJLaXQgewogCiB2b2lkIENo
aWxkUHJvY2Vzczo6ZGlzYWJsZVRlcm1pbmF0aW9uKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQyL1NoYXJlZC9DaGlsZFByb2Nlc3MuaCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9DaGlsZFBy
b2Nlc3MuaAppbmRleCA0MjU5ODMwZDhiNzI5NDM0OWVhNDc5NjI3YjQzNDliMDc1YzZhY2E2Li41
MGVjZWI1OTRlYzI4ZmM4ZTNmZTQ4ZTkzOGNlMWVmY2MyOTExMmM2IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0Mi9TaGFyZWQvQ2hpbGRQcm9jZXNzLmgKKysrIGIvU291cmNlL1dlYktpdDIvU2hh
cmVkL0NoaWxkUHJvY2Vzcy5oCkBAIC0yNyw3ICsyNyw3IEBACiAjZGVmaW5lIENoaWxkUHJvY2Vz
c19oCiAKICNpbmNsdWRlICJDb25uZWN0aW9uLmgiCi0jaW5jbHVkZSAiUnVuTG9vcC5oIgorI2lu
Y2x1ZGUgPFdlYkNvcmUvUnVuTG9vcC5oPgogCiBuYW1lc3BhY2UgV2ViS2l0IHsKIApAQCAtNzcs
NyArNzcsNyBAQCBwcml2YXRlOgogICAgIC8vIGFmdGVyIGEgZ2l2ZW4gcGVyaW9kIG9mIHRpbWUu
CiAgICAgdW5zaWduZWQgbV90ZXJtaW5hdGlvbkNvdW50ZXI7CiAKLSAgICBSdW5Mb29wOjpUaW1l
cjxDaGlsZFByb2Nlc3M+IG1fdGVybWluYXRpb25UaW1lcjsKKyAgICBXZWJDb3JlOjpSdW5Mb29w
OjpUaW1lcjxDaGlsZFByb2Nlc3M+IG1fdGVybWluYXRpb25UaW1lcjsKIH07CiAKIH0gLy8gbmFt
ZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVGFyZ2V0LnByaSBiL1Nv
dXJjZS9XZWJLaXQyL1RhcmdldC5wcmkKaW5kZXggMzU5ODNmMDc2NTZkYjQ4MGY4MzVhY2NmNjNm
ZTNjZDY2ZGE5N2M5MC4uNWVlMjc5NzIyNDkwNGY0YTQ3NmFmNjIwYTg1YmU2NDY2ZjEwNmU3NSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVGFyZ2V0LnByaQorKysgYi9Tb3VyY2UvV2ViS2l0
Mi9UYXJnZXQucHJpCkBAIC0zMSw3ICszMSw2IEBAIEhFQURFUlMgKz0gXAogICAgIFBsYXRmb3Jt
L0xvZ2dpbmcuaCBcCiAgICAgUGxhdGZvcm0vTW9kdWxlLmggXAogICAgIFBsYXRmb3JtL1BsYXRm
b3JtUHJvY2Vzc0lkZW50aWZpZXIuaCBcCi0gICAgUGxhdGZvcm0vUnVuTG9vcC5oIFwKICAgICBQ
bGF0Zm9ybS9TaGFyZWRNZW1vcnkuaCBcCiAgICAgUGxhdGZvcm0vV29ya1F1ZXVlLmggXAogICAg
IFBsdWdpblByb2Nlc3MvUGx1Z2luQ29udHJvbGxlclByb3h5LmggXApAQCAtMzczLDEwICszNzIs
OCBAQCBTT1VSQ0VTICs9IFwKICAgICBQbGF0Zm9ybS9Db3JlSVBDL0RhdGFSZWZlcmVuY2UuY3Bw
IFwKICAgICBQbGF0Zm9ybS9Mb2dnaW5nLmNwcCBcCiAgICAgUGxhdGZvcm0vTW9kdWxlLmNwcCBc
Ci0gICAgUGxhdGZvcm0vUnVuTG9vcC5jcHAgXAogICAgIFBsYXRmb3JtL1dvcmtRdWV1ZS5jcHAg
XAogICAgIFBsYXRmb3JtL3F0L01vZHVsZVF0LmNwcCBcCi0gICAgUGxhdGZvcm0vcXQvUnVuTG9v
cFF0LmNwcCBcCiAgICAgUGx1Z2luUHJvY2Vzcy9QbHVnaW5Db250cm9sbGVyUHJveHkuY3BwIFwK
ICAgICBQbHVnaW5Qcm9jZXNzL1BsdWdpblByb2Nlc3MuY3BwIFwKICAgICBQbHVnaW5Qcm9jZXNz
L1dlYlByb2Nlc3NDb25uZWN0aW9uLmNwcCBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvQVBJL21hYy9GaW5kSW5kaWNhdG9yV2luZG93LmggYi9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvQVBJL21hYy9GaW5kSW5kaWNhdG9yV2luZG93LmgKaW5kZXggNzgzNmE1NDZhNTRh
YWQxMzhlNGEyNzMxZTdjMjA3ZDRhOWE2N2I4Ny4uY2JlMzRhMWE5MGZiOWJhOWE1YmY3OTM2NWJi
MTdkMjM0YTlkOGE0MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9t
YWMvRmluZEluZGljYXRvcldpbmRvdy5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9B
UEkvbWFjL0ZpbmRJbmRpY2F0b3JXaW5kb3cuaApAQCAtMjYsMTIgKzI2LDEyIEBACiAjaWZuZGVm
IEZpbmRJbmRpY2F0b3JXaW5kb3dfaAogI2RlZmluZSBGaW5kSW5kaWNhdG9yV2luZG93X2gKIAor
I2ltcG9ydCAiV2ViS2l0U3lzdGVtSW50ZXJmYWNlLmgiCisjaW1wb3J0IDxXZWJDb3JlL1J1bkxv
b3AuaD4KICNpbXBvcnQgPHd0Zi9Ob25jb3B5YWJsZS5oPgogI2ltcG9ydCA8d3RmL1Bhc3NPd25Q
dHIuaD4KICNpbXBvcnQgPHd0Zi9SZWZQdHIuaD4KICNpbXBvcnQgPHd0Zi9SZXRhaW5QdHIuaD4K
LSNpbXBvcnQgIlJ1bkxvb3AuaCIKLSNpbXBvcnQgIldlYktpdFN5c3RlbUludGVyZmFjZS5oIgog
CiBAY2xhc3MgV0tGaW5kSW5kaWNhdG9yV2luZG93QW5pbWF0aW9uOwogQGNsYXNzIFdLVmlldzsK
QEAgLTY4LDcgKzY4LDcgQEAgcHJpdmF0ZToKICAgICBXS1dpbmRvd0JvdW5jZUFuaW1hdGlvbkNv
bnRleHRSZWYgbV9ib3VuY2VBbmltYXRpb25Db250ZXh0OwogICAgIFJldGFpblB0cjxXS0ZpbmRJ
bmRpY2F0b3JXaW5kb3dBbmltYXRpb24+IG1fYm91bmNlQW5pbWF0aW9uOwogCi0gICAgUnVuTG9v
cDo6VGltZXI8RmluZEluZGljYXRvcldpbmRvdz4gbV9zdGFydEZhZGVPdXRUaW1lcjsKKyAgICBX
ZWJDb3JlOjpSdW5Mb29wOjpUaW1lcjxGaW5kSW5kaWNhdG9yV2luZG93PiBtX3N0YXJ0RmFkZU91
dFRpbWVyOwogICAgIFJldGFpblB0cjxXS0ZpbmRJbmRpY2F0b3JXaW5kb3dBbmltYXRpb24+IG1f
ZmFkZU91dEFuaW1hdGlvbjsKIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9BUEkvbWFjL1dLVmlldy5tbSBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvbWFj
L1dLVmlldy5tbQppbmRleCAxZDg3MDlkODJhMjI0ZDRiZjBlODYxZjk5YTk3Nzg0ZDg3YTdmYzQ4
Li4zZWMzZTdmY2I2MGEwNWRjYzBhYTk4MGZkNjU1YjgxMjY5ZmFlYmIwIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL21hYy9XS1ZpZXcubW0KKysrIGIvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL0FQSS9tYWMvV0tWaWV3Lm1tCkBAIC00MCw3ICs0MCw2IEBACiAjaW1w
b3J0ICJQREZWaWV3Q29udHJvbGxlci5oIgogI2ltcG9ydCAiUGFnZUNsaWVudEltcGwuaCIKICNp
bXBvcnQgIlBhc3RlYm9hcmRUeXBlcy5oIgotI2ltcG9ydCAiUnVuTG9vcC5oIgogI2ltcG9ydCAi
VGV4dENoZWNrZXIuaCIKICNpbXBvcnQgIlRleHRDaGVja2VyU3RhdGUuaCIKICNpbXBvcnQgIlRp
bGVkQ29yZUFuaW1hdGlvbkRyYXdpbmdBcmVhUHJveHkuaCIKQEAgLTcwLDYgKzY5LDcgQEAKICNp
bXBvcnQgPFdlYkNvcmUvUGxhdGZvcm1FdmVudEZhY3RvcnlNYWMuaD4KICNpbXBvcnQgPFdlYkNv
cmUvUGxhdGZvcm1TY3JlZW4uaD4KICNpbXBvcnQgPFdlYkNvcmUvUmVnaW9uLmg+CisjaW1wb3J0
IDxXZWJDb3JlL1J1bkxvb3AuaD4KICNpbXBvcnQgPFdlYktpdFN5c3RlbUludGVyZmFjZS5oPgog
I2ltcG9ydCA8d3RmL1JlZlB0ci5oPgogI2ltcG9ydCA8d3RmL1JldGFpblB0ci5oPgpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0RyYXdpbmdBcmVhUHJveHlJbXBsLmggYi9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvRHJhd2luZ0FyZWFQcm94eUltcGwuaAppbmRleCAwNWQ3
MzU0MjM2MjY3YTU1YjQ1YzYwOWI4ZDJiYTU0N2UxMGY4YmRiLi5jMTY1MWY0MWZhOTM1ZDFmNDgw
ODQxMzE2YjZhMjE4YWVlMmJlOGE1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvRHJhd2luZ0FyZWFQcm94eUltcGwuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
RHJhd2luZ0FyZWFQcm94eUltcGwuaApAQCAtMjksNyArMjksNyBAQAogI2luY2x1ZGUgIkJhY2tp
bmdTdG9yZS5oIgogI2luY2x1ZGUgIkRyYXdpbmdBcmVhUHJveHkuaCIKICNpbmNsdWRlICJMYXll
clRyZWVDb250ZXh0LmgiCi0jaW5jbHVkZSAiUnVuTG9vcC5oIgorI2luY2x1ZGUgPFdlYkNvcmUv
UnVuTG9vcC5oPgogI2luY2x1ZGUgPHd0Zi9Pd25QdHIuaD4KICNpbmNsdWRlIDx3dGYvUGFzc093
blB0ci5oPgogCkBAIC0xMTYsNyArMTE2LDcgQEAgcHJpdmF0ZToKICAgICBib29sIG1faXNCYWNr
aW5nU3RvcmVEaXNjYXJkYWJsZTsKICAgICBPd25QdHI8QmFja2luZ1N0b3JlPiBtX2JhY2tpbmdT
dG9yZTsKIAotICAgIFJ1bkxvb3A6OlRpbWVyPERyYXdpbmdBcmVhUHJveHlJbXBsPiBtX2Rpc2Nh
cmRCYWNraW5nU3RvcmVUaW1lcjsKKyAgICBXZWJDb3JlOjpSdW5Mb29wOjpUaW1lcjxEcmF3aW5n
QXJlYVByb3h5SW1wbD4gbV9kaXNjYXJkQmFja2luZ1N0b3JlVGltZXI7CiB9OwogCiB9IC8vIG5h
bWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9MYXVu
Y2hlci9UaHJlYWRMYXVuY2hlci5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvTGF1bmNo
ZXIvVGhyZWFkTGF1bmNoZXIuY3BwCmluZGV4IDNjMGZiZjE2MGNjNzZlNjAxODQxNWQ2ZDNiMzRj
Njk2MTYxNmJhMDQuLmYzN2E1ZDNhMjcxNWFhMTU3ODBkZmRhZmUxYzRhNGM1ZTRkMGRlODUgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9MYXVuY2hlci9UaHJlYWRMYXVuY2hl
ci5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0xhdW5jaGVyL1RocmVhZExhdW5j
aGVyLmNwcApAQCAtMjYsNyArMjYsOSBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUg
IlRocmVhZExhdW5jaGVyLmgiCiAKLSNpbmNsdWRlICJSdW5Mb29wLmgiCisjaW5jbHVkZSA8V2Vi
Q29yZS9SdW5Mb29wLmg+CisKK3VzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogCiBuYW1lc3BhY2Ug
V2ViS2l0IHsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0xhdW5jaGVy
L2d0ay9Qcm9jZXNzTGF1bmNoZXJHdGsuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0xh
dW5jaGVyL2d0ay9Qcm9jZXNzTGF1bmNoZXJHdGsuY3BwCmluZGV4IGM2MzQ1YTZjNjkyNTdlZTAz
ZmU1ODNjOWY1YjhjYmIwZTU2NGY4ZjQuLjk0Y2FkNWZjNDQ4MjBkYTE5OGRhODcxY2NiZDZmYTQ3
ZTQzODliMmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9MYXVuY2hlci9n
dGsvUHJvY2Vzc0xhdW5jaGVyR3RrLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
TGF1bmNoZXIvZ3RrL1Byb2Nlc3NMYXVuY2hlckd0ay5jcHAKQEAgLTI4LDE5ICsyOCwyMCBAQAog
I2luY2x1ZGUgIlByb2Nlc3NMYXVuY2hlci5oIgogCiAjaW5jbHVkZSAiQ29ubmVjdGlvbi5oIgot
I2luY2x1ZGUgIlJ1bkxvb3AuaCIKICNpbmNsdWRlIDxXZWJDb3JlL0ZpbGVTeXN0ZW0uaD4KICNp
bmNsdWRlIDxXZWJDb3JlL1Jlc291cmNlSGFuZGxlLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9SdW5M
b29wLmg+CiAjaW5jbHVkZSA8ZXJybm8uaD4KICNpbmNsdWRlIDxsb2NhbGUuaD4KLSNpZiBPUyhM
SU5VWCkKLSNpbmNsdWRlIDxzeXMvcHJjdGwuaD4KLSNlbmRpZgogI2luY2x1ZGUgPHd0Zi90ZXh0
L0NTdHJpbmcuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KICNpbmNsdWRlIDx3
dGYvZ29iamVjdC9HT3duUHRyLmg+CiAjaW5jbHVkZSA8d3RmL2dvYmplY3QvR2xpYlV0aWxpdGll
cy5oPgogCisjaWYgT1MoTElOVVgpCisjaW5jbHVkZSA8c3lzL3ByY3RsLmg+CisjZW5kaWYKKwog
I2lmZGVmIFNPQ0tfU0VRUEFDS0VUCiAjZGVmaW5lIFNPQ0tFVF9UWVBFIFNPQ0tfU0VRUEFDS0VU
CiAjZWxzZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0xhdW5jaGVyL21h
Yy9Qcm9jZXNzTGF1bmNoZXJNYWMubW0gYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvTGF1bmNo
ZXIvbWFjL1Byb2Nlc3NMYXVuY2hlck1hYy5tbQppbmRleCBjNzBmNjJlZGZiY2Y4N2M2YWIyOGFl
NmJjNzJjNGFjMjc4ZDdlOTc0Li5kYzgzOWM4NGY1ZjMzZmJhZjBkYTk2MGYxNTc3YThkNjY4NTBm
OWNmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvTGF1bmNoZXIvbWFjL1By
b2Nlc3NMYXVuY2hlck1hYy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvTGF1bmNo
ZXIvbWFjL1Byb2Nlc3NMYXVuY2hlck1hYy5tbQpAQCAtMjgsOSArMjgsOSBAQAogCiAjaW1wb3J0
ICJEeW5hbWljTGlua2VyRW52aXJvbm1lbnRFeHRyYWN0b3IuaCIKICNpbXBvcnQgIkVudmlyb25t
ZW50VmFyaWFibGVzLmgiCi0jaW1wb3J0ICJSdW5Mb29wLmgiCiAjaW1wb3J0ICJXZWJQcm9jZXNz
LmgiCiAjaW1wb3J0ICJXZWJLaXRTeXN0ZW1JbnRlcmZhY2UuaCIKKyNpbXBvcnQgPFdlYkNvcmUv
UnVuTG9vcC5oPgogI2ltcG9ydCA8Y3J0X2V4dGVybnMuaD4KICNpbXBvcnQgPG1hY2gtby9keWxk
Lmg+CiAjaW1wb3J0IDxtYWNoL21hY2hpbmUuaD4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9MYXVuY2hlci9tYWMvVGhyZWFkTGF1bmNoZXJNYWMubW0gYi9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvTGF1bmNoZXIvbWFjL1RocmVhZExhdW5jaGVyTWFjLm1tCmluZGV4IDFj
NzRiN2QyODdhZjliYTY1OTJjN2RmMzliMmEwNTMxNDBmM2VmMDMuLmRkNTNiM2VmMTRlOTk0MDE0
M2FiY2EzMWJhNjI3YzlhZWMxODI3NzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9MYXVuY2hlci9tYWMvVGhyZWFkTGF1bmNoZXJNYWMubW0KKysrIGIvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL0xhdW5jaGVyL21hYy9UaHJlYWRMYXVuY2hlck1hYy5tbQpAQCAtMjYsMTMg
KzI2LDE1IEBACiAjaW1wb3J0ICJjb25maWcuaCIKICNpbXBvcnQgIlRocmVhZExhdW5jaGVyLmgi
CiAKLSNpbXBvcnQgIlJ1bkxvb3AuaCIKICNpbXBvcnQgIldlYlByb2Nlc3MuaCIKICNpbXBvcnQg
IldlYlN5c3RlbUludGVyZmFjZS5oIgogI2ltcG9ydCA8cnVudGltZS9Jbml0aWFsaXplVGhyZWFk
aW5nLmg+CisjaW1wb3J0IDxXZWJDb3JlL1J1bkxvb3AuaD4KICNpbXBvcnQgPHd0Zi9NYWluVGhy
ZWFkLmg+CiAjaW1wb3J0IDx3dGYvVGhyZWFkaW5nLmg+CiAKK3VzaW5nIG5hbWVzcGFjZSBXZWJD
b3JlOworCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAogc3RhdGljIHZvaWQqIHdlYlRocmVhZEJvZHko
dm9pZCogY29udGV4dCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9MYXVu
Y2hlci9xdC9Qcm9jZXNzTGF1bmNoZXJRdC5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
TGF1bmNoZXIvcXQvUHJvY2Vzc0xhdW5jaGVyUXQuY3BwCmluZGV4IDgzN2Y1OWJhZjFiNWZmNWEx
NjU0NWY2NTkwN2Y2YWQzNTA0MDEwMWQuLjhlODI2MjA2MzY3ZWVkOGViMWMyNWNlMmY0YjQ1NjRi
MDhmNzRhMDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9MYXVuY2hlci9x
dC9Qcm9jZXNzTGF1bmNoZXJRdC5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0xh
dW5jaGVyL3F0L1Byb2Nlc3NMYXVuY2hlclF0LmNwcApAQCAtMjgsNyArMjgsNiBAQAogI2luY2x1
ZGUgIlByb2Nlc3NMYXVuY2hlci5oIgogCiAjaW5jbHVkZSAiQ29ubmVjdGlvbi5oIgotI2luY2x1
ZGUgIlJ1bkxvb3AuaCIKICNpbmNsdWRlICJXZWJQcm9jZXNzLmgiCiAjaW5jbHVkZSA8UUNvcmVB
cHBsaWNhdGlvbj4KICNpbmNsdWRlIDxRRGVidWc+CkBAIC0zOSw2ICszOCw3IEBACiAjaW5jbHVk
ZSA8UVN0cmluZz4KICNpbmNsdWRlIDxRdENvcmUvcWdsb2JhbC5oPgogI2luY2x1ZGUgPFdlYkNv
cmUvTm90SW1wbGVtZW50ZWQuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL1J1bkxvb3AuaD4KICNpbmNs
dWRlIDxlcnJuby5oPgogI2luY2x1ZGUgPGZjbnRsLmg+CiAjaW5jbHVkZSA8cnVudGltZS9Jbml0
aWFsaXplVGhyZWFkaW5nLmg+CkBAIC01MCw2ICs1MCw3IEBACiAjaW5jbHVkZSA8d3RmL1Bhc3NS
ZWZQdHIuaD4KICNpbmNsdWRlIDx3dGYvVGhyZWFkaW5nLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQv
V1RGU3RyaW5nLmg+CisKICNpZiBkZWZpbmVkKFFfT1NfTElOVVgpCiAjaW5jbHVkZSA8c3lzL3By
Y3RsLmg+CiAjaW5jbHVkZSA8c2lnbmFsLmg+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvTGF1bmNoZXIvcXQvVGhyZWFkTGF1bmNoZXJRdC5jcHAgYi9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvTGF1bmNoZXIvcXQvVGhyZWFkTGF1bmNoZXJRdC5jcHAKaW5kZXggN2I5NWNh
MDQ5OWE3ODg0YWNmMDhmYzViNzc1MmNmNmZhM2YxOWY0MS4uMWQwY2FmM2FlYzQ3ZTc4ODZhODNi
ODBlZTU5Y2MyMTQ4ZjJmYjU4YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L0xhdW5jaGVyL3F0L1RocmVhZExhdW5jaGVyUXQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9MYXVuY2hlci9xdC9UaHJlYWRMYXVuY2hlclF0LmNwcApAQCAtMjcsOCArMjcsOCBA
QAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIlRocmVhZExhdW5jaGVyLmgiCiAKLSNp
bmNsdWRlICJSdW5Mb29wLmgiCiAjaW5jbHVkZSAiV2ViUHJvY2Vzcy5oIgorI2luY2x1ZGUgPFdl
YkNvcmUvUnVuTG9vcC5oPgogI2luY2x1ZGUgPHJ1bnRpbWUvSW5pdGlhbGl6ZVRocmVhZGluZy5o
PgogI2luY2x1ZGUgPHd0Zi9NYWluVGhyZWFkLmg+CiAjaW5jbHVkZSA8d3RmL1RocmVhZGluZy5o
PgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0xhdW5jaGVyL3dpbi9Qcm9j
ZXNzTGF1bmNoZXJXaW4uY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0xhdW5jaGVyL3dp
bi9Qcm9jZXNzTGF1bmNoZXJXaW4uY3BwCmluZGV4IGQ1MjZjMDMwNzhkNTdjYmFkZmEyODk1ODUx
NjA4NjM3ODVlMDU1NDYuLjdkZTc4MmY2OGVkZTI2NGMwOWRhYzVjYTY1OWJjNzhjZjNjMTQyODkg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9MYXVuY2hlci93aW4vUHJvY2Vz
c0xhdW5jaGVyV2luLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvTGF1bmNoZXIv
d2luL1Byb2Nlc3NMYXVuY2hlcldpbi5jcHAKQEAgLTI3LDcgKzI3LDcgQEAKICNpbmNsdWRlICJQ
cm9jZXNzTGF1bmNoZXIuaCIKIAogI2luY2x1ZGUgIkNvbm5lY3Rpb24uaCIKLSNpbmNsdWRlICJS
dW5Mb29wLmgiCisjaW5jbHVkZSA8V2ViQ29yZS9SdW5Mb29wLmg+CiAjaW5jbHVkZSA8c2hsd2Fw
aS5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgogCkBAIC00Myw2ICs0Myw4IEBA
IGNvbnN0IExQQ1dTVFIgd2ViS2l0RExMTmFtZSA9IEwiV2ViS2l0X2RlYnVnLmRsbCI7CiBjb25z
dCBMUENXU1RSIHdlYktpdERMTE5hbWUgPSBMIldlYktpdC5kbGwiOwogI2VuZGlmCiAKK3VzaW5n
IG5hbWVzcGFjZSBXZWJDb3JlOworCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAogdm9pZCBQcm9jZXNz
TGF1bmNoZXI6OmxhdW5jaFByb2Nlc3MoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL0xhdW5jaGVyL3dpbi9UaHJlYWRMYXVuY2hlcldpbi5jcHAgYi9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvTGF1bmNoZXIvd2luL1RocmVhZExhdW5jaGVyV2luLmNwcAppbmRleCAyNTk2
OTk4ZWEyMzkyMGExM2Q5NWUxZmViN2NmYTJiZWMxZDU5Y2JkLi5mOWQxYzA0ODFkMWYwMzViMWNm
MGU5ZGYyYzNmNGMzMmMwMDMxYzI5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvTGF1bmNoZXIvd2luL1RocmVhZExhdW5jaGVyV2luLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvTGF1bmNoZXIvd2luL1RocmVhZExhdW5jaGVyV2luLmNwcApAQCAtMjYsOCAr
MjYsOCBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIlRocmVhZExhdW5jaGVyLmgi
CiAKLSNpbmNsdWRlICJSdW5Mb29wLmgiCiAjaW5jbHVkZSAiV2ViUHJvY2Vzcy5oIgorI2luY2x1
ZGUgPFdlYkNvcmUvUnVuTG9vcC5oPgogI2luY2x1ZGUgPHJ1bnRpbWUvSW5pdGlhbGl6ZVRocmVh
ZGluZy5oPgogI2luY2x1ZGUgPHd0Zi9NYWluVGhyZWFkLmg+CiAjaW5jbHVkZSA8d3RmL1RocmVh
ZGluZy5oPgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0xheWVyVHJlZUhv
c3RQcm94eS5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0xheWVyVHJlZUhvc3RQcm94eS5o
CmluZGV4IGQ1MjgxZDM4MmYyMGQ2MTExZTRkZjMyNmY5MDYxMWI3MjYwZGFhMjcuLmJiMmZkYmIw
MzkzMmNmZjJlMGQ2ZmRiYTA3ZjQyMzY3NzdkNWNkM2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9MYXllclRyZWVIb3N0UHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvTGF5ZXJUcmVlSG9zdFByb3h5LmgKQEAgLTI0LDEyICsyNCwxMiBAQAogI2luY2x1
ZGUgIkRyYXdpbmdBcmVhUHJveHkuaCIKICNpbmNsdWRlICJNZXNzYWdlUXVldWUuaCIKICNpbmNs
dWRlICJSZWdpb24uaCIKLSNpbmNsdWRlICJSdW5Mb29wLmgiCiAjaW5jbHVkZSAiV2ViTGF5ZXJU
cmVlSW5mby5oIgogI2luY2x1ZGUgPFdlYkNvcmUvR3JhcGhpY3NDb250ZXh0Lmg+CiAjaW5jbHVk
ZSA8V2ViQ29yZS9HcmFwaGljc0xheWVyLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9JbnRSZWN0Lmg+
CiAjaW5jbHVkZSA8V2ViQ29yZS9JbnRTaXplLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9SdW5Mb29w
Lmg+CiAjaW5jbHVkZSA8d3RmL0hhc2hTZXQuaD4KIAogI2lmIFVTRShURVhUVVJFX01BUFBFUikK
QEAgLTgzLDcgKzgzLDcgQEAgcHJvdGVjdGVkOgogICAgIHZpcnR1YWwgYm9vbCBzaG93UmVwYWlu
dENvdW50ZXIoKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQogICAgIHZvaWQgcGFpbnRDb250ZW50
cyhjb25zdCBXZWJDb3JlOjpHcmFwaGljc0xheWVyKiwgV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0
JiwgV2ViQ29yZTo6R3JhcGhpY3NMYXllclBhaW50aW5nUGhhc2UsIGNvbnN0IFdlYkNvcmU6Oklu
dFJlY3QmKSB7IH0KIAotICAgIFJ1bkxvb3A6OlRpbWVyPExheWVyVHJlZUhvc3RQcm94eT4gbV9h
bmltYXRpb25UaW1lcjsKKyAgICBXZWJDb3JlOjpSdW5Mb29wOjpUaW1lcjxMYXllclRyZWVIb3N0
UHJveHk+IG1fYW5pbWF0aW9uVGltZXI7CiAgICAgRHJhd2luZ0FyZWFQcm94eSogbV9kcmF3aW5n
QXJlYVByb3h5OwogCiAgICAgdHlwZWRlZiBIYXNoTWFwPFdlYkxheWVySUQsIFdlYkNvcmU6Okdy
YXBoaWNzTGF5ZXIqPiBMYXllck1hcDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9QbHVnaW5zL1BsdWdpblByb2Nlc3NQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvUGx1Z2lucy9QbHVnaW5Qcm9jZXNzUHJveHkuY3BwCmluZGV4IDQxYzdhNDdjYjkwMDY0
ZGE5Y2MwOTkzMjRlOWU4MGQxNmU4MTY0YzEuLjU0ODJkODRkMjlmNjQwOTAzOTZmMjk1MjEwNzBl
NWNlZmQ2ZGZiMDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9QbHVnaW5z
L1BsdWdpblByb2Nlc3NQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1Bs
dWdpbnMvUGx1Z2luUHJvY2Vzc1Byb3h5LmNwcApAQCAtMzEsMTggKzMxLDIwIEBACiAjaW5jbHVk
ZSAiUGx1Z2luUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5oIgogI2luY2x1ZGUgIlBsdWdpblBy
b2Nlc3NNYW5hZ2VyLmgiCiAjaW5jbHVkZSAiUGx1Z2luUHJvY2Vzc01lc3NhZ2VzLmgiCi0jaW5j
bHVkZSAiUnVuTG9vcC5oIgogI2luY2x1ZGUgIldlYkNvbnRleHQuaCIKICNpbmNsdWRlICJXZWJD
b3JlQXJndW1lbnRDb2RlcnMuaCIKICNpbmNsdWRlICJXZWJQbHVnaW5TaXRlRGF0YU1hbmFnZXIu
aCIKICNpbmNsdWRlICJXZWJQcm9jZXNzTWVzc2FnZXMuaCIKICNpbmNsdWRlICJXZWJQcm9jZXNz
UHJveHkuaCIKICNpbmNsdWRlIDxXZWJDb3JlL05vdEltcGxlbWVudGVkLmg+CisjaW1wb3J0IDxX
ZWJDb3JlL1J1bkxvb3AuaD4KIAogI2lmIFBMQVRGT1JNKE1BQykKICNpbmNsdWRlICJNYWNoUG9y
dC5oIgogI2VuZGlmCiAKK3VzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOworCiBuYW1lc3BhY2UgV2Vi
S2l0IHsKIAogUGFzc093blB0cjxQbHVnaW5Qcm9jZXNzUHJveHk+IFBsdWdpblByb2Nlc3NQcm94
eTo6Y3JlYXRlKFBsdWdpblByb2Nlc3NNYW5hZ2VyKiBQbHVnaW5Qcm9jZXNzTWFuYWdlciwgY29u
c3QgUGx1Z2luTW9kdWxlSW5mbyYgcGx1Z2luSW5mbykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9SZXNwb25zaXZlbmVzc1RpbWVyLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9SZXNwb25zaXZlbmVzc1RpbWVyLmNwcAppbmRleCAwNTdjYzc0MzU0YTE0ZTU3ZGMy
ZmUxZjNiODY3NDMzYWNjMzdjZDAxLi44NzgzOGNhMjYyODA3N2FiODdjODEyZjIwYmRkZWE4MjIx
MGUxYjZjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvUmVzcG9uc2l2ZW5l
c3NUaW1lci5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1Jlc3BvbnNpdmVuZXNz
VGltZXIuY3BwCkBAIC0yNiw2ICsyNiw4IEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVk
ZSAiUmVzcG9uc2l2ZW5lc3NUaW1lci5oIgogCit1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKKwog
bmFtZXNwYWNlIFdlYktpdCB7CiAKIHN0YXRpYyBjb25zdCBkb3VibGUga1Jlc3BvbnNpdmVuZXNz
VGltZW91dCA9IDM7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvUmVzcG9u
c2l2ZW5lc3NUaW1lci5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1Jlc3BvbnNpdmVuZXNz
VGltZXIuaAppbmRleCA2NTkxOTE2MTJmODAxYjE0ZDlkODgxMjJhY2I0ZWIzOGI1ZWE2ZTViLi4z
NjczMzE1MWZjODdmNjdkMTcyYTI4M2ZlMDMwYTY4NmU3ZWI0M2E5IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvUmVzcG9uc2l2ZW5lc3NUaW1lci5oCisrKyBiL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9SZXNwb25zaXZlbmVzc1RpbWVyLmgKQEAgLTI2LDcgKzI2LDcgQEAK
ICNpZm5kZWYgUmVzcG9uc2l2ZW5lc3NUaW1lcl9oCiAjZGVmaW5lIFJlc3BvbnNpdmVuZXNzVGlt
ZXJfaAogCi0jaW5jbHVkZSAiUnVuTG9vcC5oIgorI2luY2x1ZGUgPFdlYkNvcmUvUnVuTG9vcC5o
PgogCiBuYW1lc3BhY2UgV2ViS2l0IHsKIApAQCAtNTUsNyArNTUsNyBAQCBwcml2YXRlOgogICAg
IFJlc3BvbnNpdmVuZXNzVGltZXI6OkNsaWVudCogbV9jbGllbnQ7CiAgICAgYm9vbCBtX2lzUmVz
cG9uc2l2ZTsKIAotICAgIFJ1bkxvb3A6OlRpbWVyPFJlc3BvbnNpdmVuZXNzVGltZXI+IG1fdGlt
ZXI7CisgICAgV2ViQ29yZTo6UnVuTG9vcDo6VGltZXI8UmVzcG9uc2l2ZW5lc3NUaW1lcj4gbV90
aW1lcjsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL1RpbGVkRHJhd2luZ0FyZWFQcm94eS5oIGIvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL1RpbGVkRHJhd2luZ0FyZWFQcm94eS5oCmluZGV4IDg1NTk3N2RlOWMyNTAyN2Zh
YzJiMmQ2MjU4ZWQzZDU0ODM2NzBiYjEuLjBmY2NjZjRlMTg1NmZkZTU3M2MyZDY4MjNiZDZiOTcz
MGRiNmQ0MWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9UaWxlZERyYXdp
bmdBcmVhUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvVGlsZWREcmF3aW5n
QXJlYVByb3h5LmgKQEAgLTMxLDEwICszMSw5IEBACiAjaW5jbHVkZSAiRHJhd2luZ0FyZWFQcm94
eS5oIgogI2luY2x1ZGUgPFdlYkNvcmUvR3JhcGhpY3NDb250ZXh0Lmg+CiAjaW5jbHVkZSA8V2Vi
Q29yZS9JbnRSZWN0Lmg+CisjaW5jbHVkZSA8V2ViQ29yZS9SdW5Mb29wLmg+CiAjaW5jbHVkZSA8
d3RmL0hhc2hTZXQuaD4KIAotI2luY2x1ZGUgIlJ1bkxvb3AuaCIKLQogI2lmIFBMQVRGT1JNKE1B
QykKICNpbmNsdWRlIDx3dGYvUmV0YWluUHRyLmg+CiAjaWZkZWYgX19PQkpDX18KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9WaXNpdGVkTGlua1Byb3ZpZGVyLmggYi9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvVmlzaXRlZExpbmtQcm92aWRlci5oCmluZGV4IGE0MjhkNWI4
MzZiODBhYTMyZWRjNTM3Y2UwZGEwNjY3Zjg2OTZhYjEuLjQ2MWM1YWM5NGU3YzJjNGU2MGIyOTJl
MjU4YmJkNDNhZGQzMjA5ZjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9W
aXNpdGVkTGlua1Byb3ZpZGVyLmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1Zpc2l0
ZWRMaW5rUHJvdmlkZXIuaApAQCAtMjYsOSArMjYsOSBAQAogI2lmbmRlZiBWaXNpdGVkTGlua1By
b3ZpZGVyX2gKICNkZWZpbmUgVmlzaXRlZExpbmtQcm92aWRlcl9oCiAKLSNpbmNsdWRlICJSdW5M
b29wLmgiCiAjaW5jbHVkZSAiVmlzaXRlZExpbmtUYWJsZS5oIgogI2luY2x1ZGUgPFdlYkNvcmUv
TGlua0hhc2guaD4KKyNpbmNsdWRlIDxXZWJDb3JlL1J1bkxvb3AuaD4KICNpbmNsdWRlIDx3dGYv
Rm9yd2FyZC5oPgogI2luY2x1ZGUgPHd0Zi9IYXNoU2V0Lmg+CiAKQEAgLTU4LDcgKzU4LDcgQEAg
cHJpdmF0ZToKICAgICBWaXNpdGVkTGlua1RhYmxlIG1fdGFibGU7CiAKICAgICBIYXNoU2V0PFdl
YkNvcmU6OkxpbmtIYXNoLCBXZWJDb3JlOjpMaW5rSGFzaEhhc2g+IG1fcGVuZGluZ1Zpc2l0ZWRM
aW5rczsKLSAgICBSdW5Mb29wOjpUaW1lcjxWaXNpdGVkTGlua1Byb3ZpZGVyPiBtX3BlbmRpbmdW
aXNpdGVkTGlua3NUaW1lcjsKKyAgICBXZWJDb3JlOjpSdW5Mb29wOjpUaW1lcjxWaXNpdGVkTGlu
a1Byb3ZpZGVyPiBtX3BlbmRpbmdWaXNpdGVkTGlua3NUaW1lcjsKIH07CiAKIH0gLy8gbmFtZXNw
YWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkNvbm5l
Y3Rpb25Ub1dlYlByb2Nlc3MuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkNvbm5l
Y3Rpb25Ub1dlYlByb2Nlc3MuY3BwCmluZGV4IGIxZDEwM2ZiY2UxZDJmNTlkMTI5ZWZmZTIxZGYw
ODI5NjhjYmIwNWYuLmJlODE0YzBhOWFkMjE2MGRmMzYyMjhjYmE3MTYxODMzYzk0N2FjYzUgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJDb25uZWN0aW9uVG9XZWJQcm9j
ZXNzLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViQ29ubmVjdGlvblRvV2Vi
UHJvY2Vzcy5jcHAKQEAgLTMwLDYgKzMwLDggQEAKICNpbmNsdWRlICJXZWJDb250ZXh0VXNlck1l
c3NhZ2VDb2RlcnMuaCIKICNpbmNsdWRlICJXZWJQcm9jZXNzUHJveHkuaCIKIAordXNpbmcgbmFt
ZXNwYWNlIFdlYkNvcmU7CisKIG5hbWVzcGFjZSBXZWJLaXQgewogCiBQYXNzUmVmUHRyPFdlYkNv
bm5lY3Rpb25Ub1dlYlByb2Nlc3M+IFdlYkNvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OmNyZWF0ZShX
ZWJQcm9jZXNzUHJveHkqIHByb2Nlc3MsIENvcmVJUEM6OkNvbm5lY3Rpb246OklkZW50aWZpZXIg
Y29ubmVjdGlvbklkZW50aWZpZXIsIFJ1bkxvb3AqIHJ1bkxvb3ApCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5oIGIvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL1dlYkNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuaAppbmRleCBiOWQ1
OGYyYzcwMzBiNjI1Nzk3YjAzYTY4NWYxOGY5ZTc0YjZjZWNjLi5mNDk2MmUyNmNjMDM5MDZkNTY3
ZjE3YmFhNmRmYTAxMWQ1OTUzODNmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvV2ViQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9XZWJDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmgKQEAgLTM1LDE0ICszNSwxNCBAQCBjbGFz
cyBXZWJQcm9jZXNzUHJveHk7CiAKIGNsYXNzIFdlYkNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MgOiBw
dWJsaWMgV2ViQ29ubmVjdGlvbiwgQ29yZUlQQzo6Q29ubmVjdGlvbjo6Q2xpZW50IHsKIHB1Ymxp
YzoKLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxXZWJDb25uZWN0aW9uVG9XZWJQcm9jZXNzPiBjcmVh
dGUoV2ViUHJvY2Vzc1Byb3h5KiwgQ29yZUlQQzo6Q29ubmVjdGlvbjo6SWRlbnRpZmllciwgUnVu
TG9vcCopOworICAgIHN0YXRpYyBQYXNzUmVmUHRyPFdlYkNvbm5lY3Rpb25Ub1dlYlByb2Nlc3M+
IGNyZWF0ZShXZWJQcm9jZXNzUHJveHkqLCBDb3JlSVBDOjpDb25uZWN0aW9uOjpJZGVudGlmaWVy
LCBXZWJDb3JlOjpSdW5Mb29wKik7CiAKICAgICBDb3JlSVBDOjpDb25uZWN0aW9uKiBjb25uZWN0
aW9uKCkgeyByZXR1cm4gbV9jb25uZWN0aW9uLmdldCgpOyB9CiAKICAgICB2b2lkIGludmFsaWRh
dGUoKTsKIAogcHJpdmF0ZToKLSAgICBXZWJDb25uZWN0aW9uVG9XZWJQcm9jZXNzKFdlYlByb2Nl
c3NQcm94eSosIENvcmVJUEM6OkNvbm5lY3Rpb246OklkZW50aWZpZXIsIFJ1bkxvb3AqKTsKKyAg
ICBXZWJDb25uZWN0aW9uVG9XZWJQcm9jZXNzKFdlYlByb2Nlc3NQcm94eSosIENvcmVJUEM6OkNv
bm5lY3Rpb246OklkZW50aWZpZXIsIFdlYkNvcmU6OlJ1bkxvb3AqKTsKIAogICAgIC8vIFdlYkNv
bm5lY3Rpb24KICAgICB2aXJ0dWFsIHZvaWQgcG9zdE1lc3NhZ2UoY29uc3QgU3RyaW5nJiwgQVBJ
T2JqZWN0Kik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViQ29udGV4
dC5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViQ29udGV4dC5jcHAKaW5kZXggMThi
Y2ExMTZhYTUxMjkyY2FmMDEwYTQzOTVlNzljZGU3NmVlZjVmOC4uNmQ5NjFlMmI4MmQ2YjEwMWJh
MWY2Yjk4ZjJjN2YyOGI2YzdiMzU4NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL1dlYkNvbnRleHQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJDb250
ZXh0LmNwcApAQCAtMzEsNyArMzEsNiBAQAogI2luY2x1ZGUgIkluamVjdGVkQnVuZGxlTWVzc2Fn
ZUtpbmRzLmgiCiAjaW5jbHVkZSAiTG9nZ2luZy5oIgogI2luY2x1ZGUgIk11dGFibGVEaWN0aW9u
YXJ5LmgiCi0jaW5jbHVkZSAiUnVuTG9vcC5oIgogI2luY2x1ZGUgIlNhbmRib3hFeHRlbnNpb24u
aCIKICNpbmNsdWRlICJTdGF0aXN0aWNzRGF0YS5oIgogI2luY2x1ZGUgIlRleHRDaGVja2VyLmgi
CkBAIC01OCw2ICs1Nyw3IEBACiAjaW5jbHVkZSA8V2ViQ29yZS9MaW5rSGFzaC5oPgogI2luY2x1
ZGUgPFdlYkNvcmUvTG9nZ2luZy5oPgogI2luY2x1ZGUgPFdlYkNvcmUvUmVzb3VyY2VSZXF1ZXN0
Lmg+CisjaW5jbHVkZSA8V2ViQ29yZS9SdW5Mb29wLmg+CiAjaW5jbHVkZSA8cnVudGltZS9Jbml0
aWFsaXplVGhyZWFkaW5nLmg+CiAjaW5jbHVkZSA8d3RmL0N1cnJlbnRUaW1lLmg+CiAjaW5jbHVk
ZSA8d3RmL01haW5UaHJlYWQuaD4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy93aW4vV2ViVmlldy5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mvd2luL1dlYlZpZXcu
Y3BwCmluZGV4IGQ0NGUyNTU2MGUyZTE1ODUxNWEwMmQzZDJmOTgzN2E1YjEwYjc1ZWMuLmU5YTNk
MDRiMDg5Y2RjNGZkMTQwNDJjYTY3YzA4NDU2ODM4N2M3ZmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy93aW4vV2ViVmlldy5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL3dpbi9XZWJWaWV3LmNwcApAQCAtMzIsMTEgKzMyLDcgQEAKICNpbmNsdWRlICJOYXRp
dmVXZWJLZXlib2FyZEV2ZW50LmgiCiAjaW5jbHVkZSAiTmF0aXZlV2ViTW91c2VFdmVudC5oIgog
I2luY2x1ZGUgIk5hdGl2ZVdlYldoZWVsRXZlbnQuaCIKLSNpbmNsdWRlICJSdW5Mb29wLmgiCiAj
aW5jbHVkZSAiV0tBUElDYXN0LmgiCi0jaWYgVVNFKENHKQotI2luY2x1ZGUgIldLQ0FDRlZpZXdX
aW5kb3cuaCIKLSNlbmRpZgogI2luY2x1ZGUgIldlYkNvbnRleHQuaCIKICNpbmNsdWRlICJXZWJD
b250ZXh0TWVudVByb3h5V2luLmgiCiAjaW5jbHVkZSAiV2ViRWRpdENvbW1hbmRQcm94eS5oIgpA
QCAtNDksMTggKzQ1LDIxIEBACiAjaW5jbHVkZSA8V2ViQ29yZS9EcmFnU2Vzc2lvbi5oPgogI2lu
Y2x1ZGUgPFdlYkNvcmUvRWRpdG9yLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9GbG9hdFJlY3QuaD4K
LSNpZiBVU0UoQ0cpCi0jaW5jbHVkZSA8V2ViQ29yZS9HcmFwaGljc0NvbnRleHRDRy5oPgotI2Vu
ZGlmCiAjaW5jbHVkZSA8V2ViQ29yZS9JbnRSZWN0Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9Ob3RJ
bXBsZW1lbnRlZC5oPgogI2luY2x1ZGUgPFdlYkNvcmUvUmVnaW9uLmg+CisjaW5jbHVkZSA8V2Vi
Q29yZS9SdW5Mb29wLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9Tb2Z0TGlua2luZy5oPgogI2luY2x1
ZGUgPFdlYkNvcmUvV2ViQ29yZUluc3RhbmNlSGFuZGxlLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9X
aW5kb3dNZXNzYWdlQnJvYWRjYXN0ZXIuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1dpbmRvd3NUb3Vj
aC5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgogCisjaWYgVVNFKENHKQorI2lu
Y2x1ZGUgIldLQ0FDRlZpZXdXaW5kb3cuaCIKKyNpbmNsdWRlIDxXZWJDb3JlL0dyYXBoaWNzQ29u
dGV4dENHLmg+CisjZW5kaWYKKwogI2lmIEVOQUJMRShGVUxMU0NSRUVOX0FQSSkKICNpbmNsdWRl
ICJXZWJGdWxsU2NyZWVuTWFuYWdlclByb3h5LmgiCiAjaW5jbHVkZSA8V2ViQ29yZS9GdWxsU2Ny
ZWVuQ29udHJvbGxlci5oPgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViS2l0Mi54Y29k
ZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYktpdDIvV2ViS2l0Mi54Y29kZXByb2ov
cHJvamVjdC5wYnhwcm9qCmluZGV4IGY4NTFlZGM3NGE2MjVlNTNiZTY5M2YwYmEyMGU0ZTczYzRk
MmRlOGQuLjMzYWE4MTM1M2U0YjA4NjU1YWIzNTlhZGIxZGJkMDdiNWY4ZGZhMTUgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQyL1dlYktpdDIueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysg
Yi9Tb3VyY2UvV2ViS2l0Mi9XZWJLaXQyLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTQ2
NSw3ICs0NjUsNiBAQAogCQlCNjM0MDNGOTE0OTEwRDU3MDAxMDcwQjUgLyogQVBJT2JqZWN0LmNw
cCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEI2MzQwM0Y4
MTQ5MTBENTcwMDEwNzBCNSAvKiBBUElPYmplY3QuY3BwICovOyB9OwogCQlCODc4QjYxNTEzMzQy
OERDMDA2ODg4RTkgLyogQ29ycmVjdGlvblBhbmVsLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCODc4QjYxMzEzMzQyOERDMDA2ODg4RTkgLyogQ29ycmVj
dGlvblBhbmVsLmggKi87IH07CiAJCUI4NzhCNjE2MTMzNDI4REMwMDY4ODhFOSAvKiBDb3JyZWN0
aW9uUGFuZWwubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSBCODc4QjYxNDEzMzQyOERDMDA2ODg4RTkgLyogQ29ycmVjdGlvblBhbmVsLm1tICovOyB9Owot
CQlCQzAwOTJGNzExNTgzN0EzMDBFMEFFMkEgLyogUnVuTG9vcE1hYy5tbSBpbiBTb3VyY2VzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDMDA5MkY1MTE1ODM3QTMwMEUwQUUy
QSAvKiBSdW5Mb29wTWFjLm1tICovOyB9OwogCQlCQzAwOTJGODExNTgzN0EzMDBFMEFFMkEgLyog
V29ya1F1ZXVlTWFjLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IEJDMDA5MkY2MTE1ODM3QTMwMEUwQUUyQSAvKiBXb3JrUXVldWVNYWMuY3BwICovOyB9
OwogCQlCQzAzMkQ3NTEwRjQzNzhEMDA1OEMxNUEgLyogV2ViQ2hyb21lQ2xpZW50LmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCQzAzMkQ2MDEwRjQzNzhE
MDA1OEMxNUEgLyogV2ViQ2hyb21lQ2xpZW50LmggKi87IH07CiAJCUJDMDMyRDc3MTBGNDM3OEQw
MDU4QzE1QSAvKiBXZWJDb250ZXh0TWVudUNsaWVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkMwMzJENjIxMEY0Mzc4RDAwNThDMTVBIC8qIFdlYkNv
bnRleHRNZW51Q2xpZW50LmggKi87IH07CkBAIC01NTksOCArNTU4LDYgQEAKIAkJQkMyRDAyMTcx
MkFDNDFDQjAwRTczMkEzIC8qIFNhbWVEb2N1bWVudE5hdmlnYXRpb25UeXBlLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCQzJEMDIxNjEyQUM0MUNCMDBF
NzMyQTMgLyogU2FtZURvY3VtZW50TmF2aWdhdGlvblR5cGUuaCAqLzsgfTsKIAkJQkMyRDAyMTkx
MkFDNDI2QzAwRTczMkEzIC8qIFdLUGFnZUxvYWRUeXBlcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkMyRDAyMTgxMkFDNDI2QzAwRTczMkEzIC8qIFdL
UGFnZUxvYWRUeXBlcy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7
IH07IH07CiAJCUJDMkRGQkEzMTJBNzYxQTUwMEU3MzJBMyAvKiBXZWJQcmVmZXJlbmNlc0NGLmNw
cCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDMkRGQkEy
MTJBNzYxQTUwMEU3MzJBMyAvKiBXZWJQcmVmZXJlbmNlc0NGLmNwcCAqLzsgfTsKLQkJQkMyRTZF
ODcxMTQxOTcxNTAwQTYzQjFFIC8qIFJ1bkxvb3AuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkMyRTZFNzcxMTQxOTcwQzAwQTYzQjFFIC8qIFJ1bkxv
b3AuY3BwICovOyB9OwotCQlCQzJFNkU4ODExNDE5NzE1MDBBNjNCMUUgLyogUnVuTG9vcC5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkMyRTZFNzgxMTQx
OTcwQzAwQTYzQjFFIC8qIFJ1bkxvb3AuaCAqLzsgfTsKIAkJQkMyRTZFOEQxMTQxOTcxNTAwQTYz
QjFFIC8qIFdvcmtRdWV1ZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSBCQzJFNkU3RDExNDE5NzBDMDBBNjNCMUUgLyogV29ya1F1ZXVlLmNwcCAqLzsg
fTsKIAkJQkMyRTZFOEUxMTQxOTcxNTAwQTYzQjFFIC8qIFdvcmtRdWV1ZS5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkMyRTZFN0UxMTQxOTcwQzAwQTYz
QjFFIC8qIFdvcmtRdWV1ZS5oICovOyB9OwogCQlCQzMwNjVDNDEyNTkyRjg5MDBFNzEyNzggLyog
V2ViUHJvY2Vzc01hYy5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IEJDMzA2NUMzMTI1OTJGODkwMEU3MTI3OCAvKiBXZWJQcm9jZXNzTWFjLm1tICovOyB9
OwpAQCAtMTQ4Myw3ICsxNDgwLDYgQEAKIAkJQjYzNDAzRjgxNDkxMEQ1NzAwMTA3MEI1IC8qIEFQ
SU9iamVjdC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBBUElPYmpl
Y3QuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlCODc4QjYxMzEzMzQyOERDMDA2
ODg4RTkgLyogQ29ycmVjdGlvblBhbmVsLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IENvcnJlY3Rpb25QYW5lbC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlCODc4
QjYxNDEzMzQyOERDMDA2ODg4RTkgLyogQ29ycmVjdGlvblBhbmVsLm1tICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gQ29ycmVjdGlvblBhbmVsLm1tOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwotCQlCQzAwOTJGNTExNTgzN0EzMDBFMEFFMkEgLyogUnVuTG9vcE1h
Yy5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFJ1bkxvb3BNYWMu
bW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUJDMDA5MkY2MTE1ODM3QTMwMEUwQUUy
QSAvKiBXb3JrUXVldWVNYWMuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRo
ID0gV29ya1F1ZXVlTWFjLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQkMwMzJE
NjAxMEY0Mzc4RDAwNThDMTVBIC8qIFdlYkNocm9tZUNsaWVudC5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBXZWJDaHJvbWVDbGllbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJQkMwMzJENjIxMEY0Mzc4RDAwNThDMTVBIC8qIFdlYkNvbnRleHRNZW51Q2xpZW50
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYkNvbnRleHRNZW51Q2xpZW50
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xNTgzLDggKzE1NzksNiBAQAogCQlC
QzJEMDIxNjEyQUM0MUNCMDBFNzMyQTMgLyogU2FtZURvY3VtZW50TmF2aWdhdGlvblR5cGUuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU2FtZURvY3VtZW50TmF2aWdhdGlvblR5
cGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQkMyRDAyMTgxMkFDNDI2QzAwRTcz
MkEzIC8qIFdLUGFnZUxvYWRUeXBlcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBXS1BhZ2VMb2FkVHlwZXMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQkMyREZC
QTIxMkE3NjFBNTAwRTczMkEzIC8qIFdlYlByZWZlcmVuY2VzQ0YuY3BwICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jcHAuY3BwOyBuYW1lID0gV2ViUHJlZmVyZW5jZXNDRi5jcHA7IHBhdGggPSBjZi9X
ZWJQcmVmZXJlbmNlc0NGLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJQkMyRTZF
NzcxMTQxOTcwQzAwQTYzQjFFIC8qIFJ1bkxvb3AuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAuY3BwOyBwYXRoID0gUnVuTG9vcC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0J
CUJDMkU2RTc4MTE0MTk3MEMwMEE2M0IxRSAvKiBSdW5Mb29wLmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IFJ1bkxvb3AuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
QkMyRTZFN0QxMTQxOTcwQzAwQTYzQjFFIC8qIFdvcmtRdWV1ZS5jcHAgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXb3JrUXVldWUuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQlCQzJFNkU3RTExNDE5NzBDMDBBNjNCMUUgLyogV29ya1F1ZXVlLmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdvcmtRdWV1ZS5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQlCQzMwNjVDMzEyNTkyRjg5MDBFNzEyNzggLyogV2ViUHJvY2Vzc01hYy5t
bSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFdlYlByb2Nlc3NNYWMu
bW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0yMjYwLDcgKzIyNTQsNiBAQAogCQkJ
CTFBMjRCNUYwMTFGNTMxRTgwMEMzODI2OSAvKiBNYWNoVXRpbGl0aWVzLmNwcCAqLywKIAkJCQkx
QTI0QjVGMTExRjUzMUU4MDBDMzgyNjkgLyogTWFjaFV0aWxpdGllcy5oICovLAogCQkJCUMwRTNB
QTQ4MTIwOUU0NTAwMEE0OUQwMSAvKiBNb2R1bGVNYWMubW0gKi8sCi0JCQkJQkMwMDkyRjUxMTU4
MzdBMzAwRTBBRTJBIC8qIFJ1bkxvb3BNYWMubW0gKi8sCiAJCQkJMUEyNEJGMzkxMjA4OTZBNjAw
RkJCMDU5IC8qIFNoYXJlZE1lbW9yeU1hYy5jcHAgKi8sCiAJCQkJQkMwMDkyRjYxMTU4MzdBMzAw
RTBBRTJBIC8qIFdvcmtRdWV1ZU1hYy5jcHAgKi8sCiAJCQkpOwpAQCAtMzI4Miw4ICszMjc1LDYg
QEAKIAkJCQlDMEUzQUE0NTEyMDlFMkJBMDBBNDlEMDEgLyogTW9kdWxlLmNwcCAqLywKIAkJCQlD
MEUzQUE0NDEyMDlFMkJBMDBBNDlEMDEgLyogTW9kdWxlLmggKi8sCiAJCQkJQkM4NzgwRkIxMTYx
QzJCODAwQ0MyNzY4IC8qIFBsYXRmb3JtUHJvY2Vzc0lkZW50aWZpZXIuaCAqLywKLQkJCQlCQzJF
NkU3NzExNDE5NzBDMDBBNjNCMUUgLyogUnVuTG9vcC5jcHAgKi8sCi0JCQkJQkMyRTZFNzgxMTQx
OTcwQzAwQTYzQjFFIC8qIFJ1bkxvb3AuaCAqLywKIAkJCQkxQTI0QkVEMzEyMDg5NEQxMDBGQkIw
NTkgLyogU2hhcmVkTWVtb3J5LmggKi8sCiAJCQkJQkMyRTZFN0QxMTQxOTcwQzAwQTYzQjFFIC8q
IFdvcmtRdWV1ZS5jcHAgKi8sCiAJCQkJQkMyRTZFN0UxMTQxOTcwQzAwQTYzQjFFIC8qIFdvcmtR
dWV1ZS5oICovLApAQCAtMzg0OCw3ICszODM5LDYgQEAKIAkJCQlCQzFBN0M1ODExMzZFMTlDMDBG
QjcxNjcgLyogUHJvY2Vzc0xhdW5jaGVyLmggaW4gSGVhZGVycyAqLywKIAkJCQlCQzU5NzA3NTEx
NjU5MUQwMDA1NTFGQ0EgLyogUHJvY2Vzc01vZGVsLmggaW4gSGVhZGVycyAqLywKIAkJCQkxQTMw
MDY2RTExMTBGNEY3MDAzMTkzN0MgLyogUmVzcG9uc2l2ZW5lc3NUaW1lci5oIGluIEhlYWRlcnMg
Ki8sCi0JCQkJQkMyRTZFODgxMTQxOTcxNTAwQTYzQjFFIC8qIFJ1bkxvb3AuaCBpbiBIZWFkZXJz
ICovLAogCQkJCUJDMkQwMjE3MTJBQzQxQ0IwMEU3MzJBMyAvKiBTYW1lRG9jdW1lbnROYXZpZ2F0
aW9uVHlwZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMUFBQjRBOEQxMjk2RjBBMjAwMjM5NTJGIC8q
IFNhbmRib3hFeHRlbnNpb24uaCBpbiBIZWFkZXJzICovLAogCQkJCTUxRDEzMDU0MTM4MkVBQzAw
MDM1MUVERCAvKiBTZWNJdGVtUmVxdWVzdERhdGEuaCBpbiBIZWFkZXJzICovLApAQCAtNDU4MSw4
ICs0NTcxLDYgQEAKIAkJCQkxQUUxMTdGNjExREJCMzA5MDA5ODE2MTUgLyogUHJvY2Vzc0xhdW5j
aGVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUJDMTExQjFEMTEyRjVGRTYwMDMzN0JBQiAvKiBQ
cm9jZXNzTGF1bmNoZXJNYWMubW0gaW4gU291cmNlcyAqLywKIAkJCQlCQzExMUIwOTExMkY1RTND
MDAzMzdCQUIgLyogUmVzcG9uc2l2ZW5lc3NUaW1lci5jcHAgaW4gU291cmNlcyAqLywKLQkJCQlC
QzJFNkU4NzExNDE5NzE1MDBBNjNCMUUgLyogUnVuTG9vcC5jcHAgaW4gU291cmNlcyAqLywKLQkJ
CQlCQzAwOTJGNzExNTgzN0EzMDBFMEFFMkEgLyogUnVuTG9vcE1hYy5tbSBpbiBTb3VyY2VzICov
LAogCQkJCTFBQUI0QUFBMTI5NkYxNTQwMDIzOTUyRiAvKiBTYW5kYm94RXh0ZW5zaW9uTWFjLm1t
IGluIFNvdXJjZXMgKi8sCiAJCQkJNTFEMTMwNTMxMzgyRUFDMDAwMzUxRUREIC8qIFNlY0l0ZW1S
ZXF1ZXN0RGF0YS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk1MUQxMzA1NTEzODJFQUMwMDAzNTFF
REQgLyogU2VjSXRlbVJlc3BvbnNlRGF0YS5jcHAgaW4gU291cmNlcyAqLywKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9OZXRzY2FwZS9OUFJ1bnRpbWVPYmpl
Y3RNYXAuaCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9OZXRzY2FwZS9OUFJ1
bnRpbWVPYmplY3RNYXAuaAppbmRleCBiZWY3MDFiZWU3OTU2ODI2Yzg4NjA0MmUwZTc4MjJjMzRl
ODQ1N2YyLi5kZWZmZDU0MzE3ZDE3YzUxODc1YjFlNzJmOTU5Njg1NDY3MGMwMzZkIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvTmV0c2NhcGUvTlBSdW50aW1l
T2JqZWN0TWFwLmgKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL05ldHNj
YXBlL05QUnVudGltZU9iamVjdE1hcC5oCkBAIC0yNiw5ICsyNiw3IEBACiAjaWZuZGVmIE5QSlNP
YmplY3RXcmFwcGVyTWFwX2gKICNkZWZpbmUgTlBKU09iamVjdFdyYXBwZXJNYXBfaAogCi0KLSNp
bmNsdWRlICJSdW5Mb29wLmgiCi0KKyNpbmNsdWRlIDxXZWJDb3JlL1J1bkxvb3AuaD4KICNpbmNs
dWRlIDxoZWFwL1dlYWsuaD4KICNpbmNsdWRlIDx3dGYvRm9yd2FyZC5oPgogI2luY2x1ZGUgPHd0
Zi9IYXNoTWFwLmg+CkBAIC05OCw3ICs5Niw3IEBAIHByaXZhdGU6CiAgICAgSGFzaE1hcDxKU0M6
OkpTT2JqZWN0KiwgTlBKU09iamVjdCo+IG1fbnBKU09iamVjdHM7CiAgICAgSGFzaE1hcDxOUE9i
amVjdCosIEpTQzo6V2VhazxKU05QT2JqZWN0PiA+IG1fanNOUE9iamVjdHM7CiAgICAgVmVjdG9y
PE5QT2JqZWN0Kj4gbV9ucE9iamVjdHNUb0ZpbmFsaXplOwotICAgIFJ1bkxvb3A6OlRpbWVyPE5Q
UnVudGltZU9iamVjdE1hcD4gbV9maW5hbGl6YXRpb25UaW1lcjsKKyAgICBXZWJDb3JlOjpSdW5M
b29wOjpUaW1lcjxOUFJ1bnRpbWVPYmplY3RNYXA+IG1fZmluYWxpemF0aW9uVGltZXI7CiB9Owog
CiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlBy
b2Nlc3MvUGx1Z2lucy9OZXRzY2FwZS9OZXRzY2FwZVBsdWdpbi5oIGIvU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9QbHVnaW5zL05ldHNjYXBlL05ldHNjYXBlUGx1Z2luLmgKaW5kZXggODQ1NDE4
MjBjODYwNGM5ZTU4YWYxYzcxZjhkNzliYThkOWU4Mjg3YS4uYWRhZDJkMDE1YjcwZjYyYzMxNjkz
OTYxNjZhNmEzYWU0Yzg0MDMxNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy9QbHVnaW5zL05ldHNjYXBlL05ldHNjYXBlUGx1Z2luLmgKKysrIGIvU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9QbHVnaW5zL05ldHNjYXBlL05ldHNjYXBlUGx1Z2luLmgKQEAgLTI4LDEwICsy
OCwxMCBAQAogCiAjaW5jbHVkZSAiTmV0c2NhcGVQbHVnaW5Nb2R1bGUuaCIKICNpbmNsdWRlICJQ
bHVnaW4uaCIKLSNpbmNsdWRlICJSdW5Mb29wLmgiCiAjaW5jbHVkZSA8V2ViQ29yZS9BZmZpbmVU
cmFuc2Zvcm0uaD4KICNpbmNsdWRlIDxXZWJDb3JlL0dyYXBoaWNzTGF5ZXIuaD4KICNpbmNsdWRl
IDxXZWJDb3JlL0ludFJlY3QuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL1J1bkxvb3AuaD4KICNpbmNs
dWRlIDx3dGYvSGFzaE1hcC5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L0NTdHJpbmcuaD4KICNpbmNs
dWRlIDx3dGYvdGV4dC9TdHJpbmdIYXNoLmg+CkBAIC0yOTEsNyArMjkxLDcgQEAgcHJpdmF0ZToK
ICAgICAgICAgYm9vbCBtX3JlcGVhdDsKICAgICAgICAgVGltZXJGdW5jIG1fdGltZXJGdW5jOwog
Ci0gICAgICAgIFJ1bkxvb3A6OlRpbWVyPFRpbWVyPiBtX3RpbWVyOworICAgICAgICBXZWJDb3Jl
OjpSdW5Mb29wOjpUaW1lcjxUaW1lcj4gbV90aW1lcjsKICAgICB9OwogICAgIHR5cGVkZWYgSGFz
aE1hcDx1bnNpZ25lZCwgVGltZXIqPiBUaW1lck1hcDsKICAgICBUaW1lck1hcCBtX3RpbWVyczsK
QEAgLTMzMiw3ICszMzIsNyBAQCBwcml2YXRlOgogCiAgICAgLy8gRklYTUU6IEl0J3MgYSBiaXQg
d2FzdGVmdWwgdG8gaGF2ZSBvbmUgbnVsbCBldmVudCB0aW1lciBwZXIgcGx1Zy1pbi4KICAgICAv
LyBXZSBzaG91bGQgaW52ZXN0aWdhdGUgaGF2aW5nIG9uZSBwZXIgd2luZG93LgotICAgIFJ1bkxv
b3A6OlRpbWVyPE5ldHNjYXBlUGx1Z2luPiBtX251bGxFdmVudFRpbWVyOworICAgIFdlYkNvcmU6
OlJ1bkxvb3A6OlRpbWVyPE5ldHNjYXBlUGx1Z2luPiBtX251bGxFdmVudFRpbWVyOwogICAgIE5Q
X0NHQ29udGV4dCBtX25wQ0dDb250ZXh0OwogI2VuZGlmCiAjZWxpZiBQTFVHSU5fQVJDSElURUNU
VVJFKFdJTikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9O
ZXRzY2FwZS9OZXRzY2FwZVBsdWdpblN0cmVhbS5oIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy9QbHVnaW5zL05ldHNjYXBlL05ldHNjYXBlUGx1Z2luU3RyZWFtLmgKaW5kZXggZGUyNjgyN2Zj
NzJiNjRmODhmNWQwMWQ0MzY1ZTZmYjRjYzNlNzQwMy4uMDU4NzNlNGY0YTU2MWI3NjRkYWFlZTI2
MDIxNDUwMDE4ZGY3NmMyZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9Q
bHVnaW5zL05ldHNjYXBlL05ldHNjYXBlUGx1Z2luU3RyZWFtLmgKKysrIGIvU291cmNlL1dlYktp
dDIvV2ViUHJvY2Vzcy9QbHVnaW5zL05ldHNjYXBlL05ldHNjYXBlUGx1Z2luU3RyZWFtLmgKQEAg
LTI2LDggKzI2LDggQEAKICNpZm5kZWYgTmV0c2NhcGVQbHVnaW5TdHJlYW1faAogI2RlZmluZSBO
ZXRzY2FwZVBsdWdpblN0cmVhbV9oCiAKLSNpbmNsdWRlICJSdW5Mb29wLmgiCiAjaW5jbHVkZSA8
V2ViQ29yZS9GaWxlU3lzdGVtLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9SdW5Mb29wLmg+CiAjaW5j
bHVkZSA8V2ViQ29yZS9ucHJ1bnRpbWVfaW50ZXJuYWwuaD4KICNpbmNsdWRlIDx3dGYvRm9yd2Fy
ZC5oPgogI2luY2x1ZGUgPHd0Zi9QYXNzUmVmUHRyLmg+CkBAIC0zNiw3ICszNiw3IEBACiAjaW5j
bHVkZSA8d3RmL3RleHQvQ1N0cmluZy5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7Ci0gICAgY2xh
c3MgS1VSTDsKK2NsYXNzIEtVUkw7CiB9CiAKIG5hbWVzcGFjZSBXZWJLaXQgewpAQCAtMTAzLDcg
KzEwMyw3IEBAIHByaXZhdGU6CiAgICAgQ1N0cmluZyBtX21pbWVUeXBlOwogICAgIENTdHJpbmcg
bV9oZWFkZXJzOwogCi0gICAgUnVuTG9vcDo6VGltZXI8TmV0c2NhcGVQbHVnaW5TdHJlYW0+IG1f
ZGVsaXZlcnlEYXRhVGltZXI7CisgICAgV2ViQ29yZTo6UnVuTG9vcDo6VGltZXI8TmV0c2NhcGVQ
bHVnaW5TdHJlYW0+IG1fZGVsaXZlcnlEYXRhVGltZXI7CiAgICAgT3duUHRyPCBWZWN0b3I8dWlu
dDhfdD4gPiBtX2RlbGl2ZXJ5RGF0YTsKICAgICBib29sIG1fc3RvcFN0cmVhbVdoZW5Eb25lRGVs
aXZlcmluZzsKIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdp
bnMvUGx1Z2luVmlldy5oIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL1BsdWdp
blZpZXcuaAppbmRleCA5NjI0YWM5NTRmYWJlOGY1NTIyMzRiODM1ZGY3MDMyYjNiNjBhYTUyLi5j
ZDYzNjNhNThiYmVhZDMxODE1MjU0OTU1NTdjOGRkZWI5MzE5NmFmIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvUGx1Z2luVmlldy5oCisrKyBiL1NvdXJjZS9X
ZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9QbHVnaW5WaWV3LmgKQEAgLTI5LDEzICsyOSwxMiBA
QAogI2luY2x1ZGUgIk5QUnVudGltZU9iamVjdE1hcC5oIgogI2luY2x1ZGUgIlBsdWdpbi5oIgog
I2luY2x1ZGUgIlBsdWdpbkNvbnRyb2xsZXIuaCIKLSNpbmNsdWRlICJSdW5Mb29wLmgiCiAjaW5j
bHVkZSAiV2ViRnJhbWUuaCIKLQogI2luY2x1ZGUgPFdlYkNvcmUvTWVkaWFDYW5TdGFydExpc3Rl
bmVyLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9QbHVnaW5WaWV3QmFzZS5oPgogI2luY2x1ZGUgPFdl
YkNvcmUvUmVzb3VyY2VFcnJvci5oPgogI2luY2x1ZGUgPFdlYkNvcmUvUmVzb3VyY2VSZXNwb25z
ZS5oPgotI2luY2x1ZGUgPFdlYkNvcmUvUGx1Z2luVmlld0Jhc2UuaD4KKyNpbmNsdWRlIDxXZWJD
b3JlL1J1bkxvb3AuaD4KICNpbmNsdWRlIDx3dGYvRGVxdWUuaD4KIAogLy8gRklYTUU6IEV2ZW50
dWFsbHkgdGhpcyBzaG91bGQgbW92ZSB0byBXZWJDb3JlLgpAQCAtMTgwLDcgKzE3OSw3IEBAIHBy
aXZhdGU6CiAKICAgICAvLyBQZW5kaW5nIFVSTFJlcXVlc3RzIHRoYXQgdGhlIHBsdWctaW4gaGFz
IG1hZGUuCiAgICAgRGVxdWU8UmVmUHRyPFVSTFJlcXVlc3Q+ID4gbV9wZW5kaW5nVVJMUmVxdWVz
dHM7Ci0gICAgUnVuTG9vcDo6VGltZXI8UGx1Z2luVmlldz4gbV9wZW5kaW5nVVJMUmVxdWVzdHNU
aW1lcjsKKyAgICBXZWJDb3JlOjpSdW5Mb29wOjpUaW1lcjxQbHVnaW5WaWV3PiBtX3BlbmRpbmdV
UkxSZXF1ZXN0c1RpbWVyOwogCiAgICAgLy8gUGVuZGluZyBmcmFtZSBsb2FkcyB0aGF0IHRoZSBw
bHVnLWluIGhhcyBtYWRlLgogICAgIHR5cGVkZWYgSGFzaE1hcDxSZWZQdHI8V2ViRnJhbWU+LCBS
ZWZQdHI8VVJMUmVxdWVzdD4gPiBGcmFtZUxvYWRNYXA7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0Mi9XZWJQcm9jZXNzL1dlYkNvbm5lY3Rpb25Ub1VJUHJvY2Vzcy5jcHAgYi9Tb3VyY2UvV2Vi
S2l0Mi9XZWJQcm9jZXNzL1dlYkNvbm5lY3Rpb25Ub1VJUHJvY2Vzcy5jcHAKaW5kZXggOWE2NGFk
ZDFjNDIzYjBiMDE0N2Q5MmI1MjU1MDkyODUxZTY3ZjZkMS4uNWU3OTU1ZDY3NjE5MDFkZWRiN2My
ZGNjNjc0ZDBmYjM5ZjI2N2M3NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy9XZWJDb25uZWN0aW9uVG9VSVByb2Nlc3MuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlBy
b2Nlc3MvV2ViQ29ubmVjdGlvblRvVUlQcm9jZXNzLmNwcApAQCAtMzAsNiArMzAsOCBAQAogI2lu
Y2x1ZGUgIldlYkNvbm5lY3Rpb25NZXNzYWdlS2luZHMuaCIKICNpbmNsdWRlICJXZWJQcm9jZXNz
LmgiCiAKK3VzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOworCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAog
UGFzc1JlZlB0cjxXZWJDb25uZWN0aW9uVG9VSVByb2Nlc3M+IFdlYkNvbm5lY3Rpb25Ub1VJUHJv
Y2Vzczo6Y3JlYXRlKFdlYlByb2Nlc3MqIHByb2Nlc3MsIENvcmVJUEM6OkNvbm5lY3Rpb246Oklk
ZW50aWZpZXIgY29ubmVjdGlvbklkZW50aWZpZXIsIFJ1bkxvb3AqIHJ1bkxvb3ApCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvbm5lY3Rpb25Ub1VJUHJvY2Vzcy5o
IGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb25uZWN0aW9uVG9VSVByb2Nlc3MuaApp
bmRleCAxZDljOTZjODBiNjA4ZDhlMjg4ZGJkMTA1NzZkYTJiNzcyNDNhOGM1Li40MmI5Y2Q3MTZi
MTI0NzMwZTJkODAwYWRjNTE0YzUwODQyZTUwMzFmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9XZWJQcm9jZXNzL1dlYkNvbm5lY3Rpb25Ub1VJUHJvY2Vzcy5oCisrKyBiL1NvdXJjZS9XZWJL
aXQyL1dlYlByb2Nlc3MvV2ViQ29ubmVjdGlvblRvVUlQcm9jZXNzLmgKQEAgLTM1LDE0ICszNSwx
NCBAQCBjbGFzcyBXZWJQcm9jZXNzOwogCiBjbGFzcyBXZWJDb25uZWN0aW9uVG9VSVByb2Nlc3Mg
OiBwdWJsaWMgV2ViQ29ubmVjdGlvbiwgQ29yZUlQQzo6Q29ubmVjdGlvbjo6Q2xpZW50IHsKIHB1
YmxpYzoKLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxXZWJDb25uZWN0aW9uVG9VSVByb2Nlc3M+IGNy
ZWF0ZShXZWJQcm9jZXNzKiwgQ29yZUlQQzo6Q29ubmVjdGlvbjo6SWRlbnRpZmllciwgUnVuTG9v
cCopOworICAgIHN0YXRpYyBQYXNzUmVmUHRyPFdlYkNvbm5lY3Rpb25Ub1VJUHJvY2Vzcz4gY3Jl
YXRlKFdlYlByb2Nlc3MqLCBDb3JlSVBDOjpDb25uZWN0aW9uOjpJZGVudGlmaWVyLCBXZWJDb3Jl
OjpSdW5Mb29wKik7CiAKICAgICBDb3JlSVBDOjpDb25uZWN0aW9uKiBjb25uZWN0aW9uKCkgeyBy
ZXR1cm4gbV9jb25uZWN0aW9uLmdldCgpOyB9CiAKICAgICB2b2lkIGludmFsaWRhdGUoKTsKIAog
cHJpdmF0ZToKLSAgICBXZWJDb25uZWN0aW9uVG9VSVByb2Nlc3MoV2ViUHJvY2VzcyosIENvcmVJ
UEM6OkNvbm5lY3Rpb246OklkZW50aWZpZXIsIFJ1bkxvb3AqKTsKKyAgICBXZWJDb25uZWN0aW9u
VG9VSVByb2Nlc3MoV2ViUHJvY2VzcyosIENvcmVJUEM6OkNvbm5lY3Rpb246OklkZW50aWZpZXIs
IFdlYkNvcmU6OlJ1bkxvb3AqKTsKIAogICAgIC8vIFdlYkNvbm5lY3Rpb24KICAgICB2aXJ0dWFs
IHZvaWQgcG9zdE1lc3NhZ2UoY29uc3QgU3RyaW5nJiwgQVBJT2JqZWN0Kik7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkdyYXBoaWNzTGF5
ZXIuaCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViR3JhcGhp
Y3NMYXllci5oCmluZGV4IGI3NTA5YjMzNGYyZjU0ZDlkMjdlM2ZjYmU1MjE5YTEwYWQ3MTZiYTMu
LmRiMDNkMDcxMWRhZTAyZGVkNzhlOTMxOGJlZjQ0ODA5ZjY4N2U0NDkgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViR3JhcGhpY3NMYXllci5o
CisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViR3JhcGhp
Y3NMYXllci5oCkBAIC0yNSw3ICsyNSw2IEBACiAjaW5jbHVkZSAiR3JhcGhpY3NMYXllci5oIgog
I2luY2x1ZGUgIkltYWdlLmgiCiAjaW5jbHVkZSAiSW50U2l6ZS5oIgotI2luY2x1ZGUgIlJ1bkxv
b3AuaCIKICNpbmNsdWRlICJTaGFyZWFibGVCaXRtYXAuaCIKICNpbmNsdWRlICJUaWxlZEJhY2tp
bmdTdG9yZS5oIgogI2luY2x1ZGUgIlRpbGVkQmFja2luZ1N0b3JlQ2xpZW50LmgiCkBAIC0zNCw2
ICszMyw3IEBACiAjaW5jbHVkZSAiVXBkYXRlSW5mby5oIgogI2luY2x1ZGUgIldlYkxheWVyVHJl
ZUluZm8uaCIKICNpbmNsdWRlICJXZWJQcm9jZXNzLmgiCisjaW5jbHVkZSA8V2ViQ29yZS9SdW5M
b29wLmg+CiAKICNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9EcmF3aW5nQXJlYUltcGwuaCBiL1Nv
dXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9EcmF3aW5nQXJlYUltcGwuaAppbmRleCAw
ZGFiZjYwM2ExMTI2OTRjMTUxN2RlNTAxZmI4MjQwNDIxMzQyYTliLi4yOGM4Y2U2OGNkMGU0NzM2
MGNkZTZmM2E2NTI2ZWU3NmQxNDE5NTllIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQ
cm9jZXNzL1dlYlBhZ2UvRHJhd2luZ0FyZWFJbXBsLmgKKysrIGIvU291cmNlL1dlYktpdDIvV2Vi
UHJvY2Vzcy9XZWJQYWdlL0RyYXdpbmdBcmVhSW1wbC5oCkBAIC0yOCw4ICsyOCw4IEBACiAKICNp
bmNsdWRlICJEcmF3aW5nQXJlYS5oIgogI2luY2x1ZGUgIkxheWVyVHJlZUhvc3QuaCIKLSNpbmNs
dWRlICJSdW5Mb29wLmgiCiAjaW5jbHVkZSA8V2ViQ29yZS9SZWdpb24uaD4KKyNpbmNsdWRlIDxX
ZWJDb3JlL1J1bkxvb3AuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogICAgIGNsYXNzIEdyYXBo
aWNzQ29udGV4dDsKQEAgLTEzMSw4ICsxMzEsOCBAQCBwcml2YXRlOgogICAgIGJvb2wgbV9pc1Bh
aW50aW5nU3VzcGVuZGVkOwogICAgIGJvb2wgbV9hbHdheXNVc2VDb21wb3NpdGluZzsKIAotICAg
IFJ1bkxvb3A6OlRpbWVyPERyYXdpbmdBcmVhSW1wbD4gbV9kaXNwbGF5VGltZXI7Ci0gICAgUnVu
TG9vcDo6VGltZXI8RHJhd2luZ0FyZWFJbXBsPiBtX2V4aXRDb21wb3NpdGluZ1RpbWVyOworICAg
IFdlYkNvcmU6OlJ1bkxvb3A6OlRpbWVyPERyYXdpbmdBcmVhSW1wbD4gbV9kaXNwbGF5VGltZXI7
CisgICAgV2ViQ29yZTo6UnVuTG9vcDo6VGltZXI8RHJhd2luZ0FyZWFJbXBsPiBtX2V4aXRDb21w
b3NpdGluZ1RpbWVyOwogCiAgICAgLy8gVGhlIGxheWVyIHRyZWUgaG9zdCB0aGF0IGhhbmRsZXMg
YWNjZWxlcmF0ZWQgY29tcG9zaXRpbmcuCiAgICAgUmVmUHRyPExheWVyVHJlZUhvc3Q+IG1fbGF5
ZXJUcmVlSG9zdDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFn
ZS9FdmVudERpc3BhdGNoZXIuY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdl
L0V2ZW50RGlzcGF0Y2hlci5jcHAKaW5kZXggMWE5MWQ4ZTNjMDIzNDg0MzliOWYzMmRjZjgzNDA2
MWYwMTM3ZGJmNS4uM2MyZTczZWNhNmMzMTA4MTk3ZjA5ZDMyYTJiZjcwMjBmZTkzOTI2ZCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL0V2ZW50RGlzcGF0Y2hl
ci5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL0V2ZW50RGlzcGF0
Y2hlci5jcHAKQEAgLTI2LDEzICsyNiwxMyBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1
ZGUgIkV2ZW50RGlzcGF0Y2hlci5oIgogCi0jaW5jbHVkZSAiUnVuTG9vcC5oIgogI2luY2x1ZGUg
IldlYkV2ZW50LmgiCiAjaW5jbHVkZSAiV2ViRXZlbnRDb252ZXJzaW9uLmgiCiAjaW5jbHVkZSAi
V2ViUGFnZS5oIgogI2luY2x1ZGUgIldlYlBhZ2VQcm94eU1lc3NhZ2VzLmgiCiAjaW5jbHVkZSAi
V2ViUHJvY2Vzcy5oIgogI2luY2x1ZGUgPFdlYkNvcmUvUGFnZS5oPgorI2luY2x1ZGUgPFdlYkNv
cmUvUnVuTG9vcC5oPgogI2luY2x1ZGUgPHd0Zi9NYWluVGhyZWFkLmg+CiAKICNpZiBFTkFCTEUo
VEhSRUFERURfU0NST0xMSU5HKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy9XZWJQYWdlL1BhZ2VPdmVybGF5LmggYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBh
Z2UvUGFnZU92ZXJsYXkuaAppbmRleCAxZjYxY2ViZTkyNjI0Mzk3ZDE5ZGJhYjJjOTgwMTcwNjg0
NWNmYmE2Li45NDk3Njc4MDZmMjc0MzNjMTQzNjNlNjEyMWViMzhmYzg3NjVhY2QwIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvUGFnZU92ZXJsYXkuaAorKysg
Yi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvUGFnZU92ZXJsYXkuaApAQCAtMjcs
NyArMjcsNyBAQAogI2RlZmluZSBQYWdlT3ZlcmxheV9oCiAKICNpbmNsdWRlICJBUElPYmplY3Qu
aCIKLSNpbmNsdWRlICJSdW5Mb29wLmgiCisjaW5jbHVkZSA8V2ViQ29yZS9SdW5Mb29wLmg+CiAj
aW5jbHVkZSA8d3RmL1Bhc3NSZWZQdHIuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewpAQCAtODYs
NyArODYsNyBAQCBwcml2YXRlOgogICAgIENsaWVudCogbV9jbGllbnQ7CiAgICAgV2ViUGFnZSog
bV93ZWJQYWdlOwogCi0gICAgUnVuTG9vcDo6VGltZXI8UGFnZU92ZXJsYXk+IG1fZmFkZUFuaW1h
dGlvblRpbWVyOworICAgIFdlYkNvcmU6OlJ1bkxvb3A6OlRpbWVyPFBhZ2VPdmVybGF5PiBtX2Zh
ZGVBbmltYXRpb25UaW1lcjsKICAgICBkb3VibGUgbV9mYWRlQW5pbWF0aW9uU3RhcnRUaW1lOwog
ICAgIGRvdWJsZSBtX2ZhZGVBbmltYXRpb25EdXJhdGlvbjsKIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwIGIvU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCmluZGV4IGExYzNjMmMwMDMzNzA5NDdiMzA4
MjBkMDljYTMwYTgzOTdjMmZhNDAuLjU0NTMwZjE5OGEwNTg1YmI0YjQ5YWI2MjEyZDIwNGFkZTlk
MTcxNTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQ
YWdlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5j
cHAKQEAgLTQwLDcgKzQwLDYgQEAKICNpbmNsdWRlICJQbHVnaW5Qcm94eS5oIgogI2luY2x1ZGUg
IlBsdWdpblZpZXcuaCIKICNpbmNsdWRlICJQcmludEluZm8uaCIKLSNpbmNsdWRlICJSdW5Mb29w
LmgiCiAjaW5jbHVkZSAiU2Vzc2lvblN0YXRlLmgiCiAjaW5jbHVkZSAiU2hhcmVhYmxlQml0bWFw
LmgiCiAjaW5jbHVkZSAiV2ViQmFja0ZvcndhcmRMaXN0LmgiCkBAIC0xMDQsNiArMTAzLDcgQEAK
ICNpbmNsdWRlIDxXZWJDb3JlL1JlbmRlclZpZXcuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1JlcGxh
Y2VTZWxlY3Rpb25Db21tYW5kLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9SZXNvdXJjZVJlcXVlc3Qu
aD4KKyNpbmNsdWRlIDxXZWJDb3JlL1J1bkxvb3AuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1NjaGVt
ZVJlZ2lzdHJ5Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9TY3JpcHRWYWx1ZS5oPgogI2luY2x1ZGUg
PFdlYkNvcmUvU2VyaWFsaXplZFNjcmlwdFZhbHVlLmg+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oIGIvU291cmNlL1dlYktpdDIvV2ViUHJv
Y2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaAppbmRleCA0MDA3MmNmYmYxNTYwY2QwYmQ1OGJjODRkMTE2
YjJmMjgxMjFkNDY4Li44NmVhMGQ3NWEyMzk4MDc3NGFlNTU3NmMxM2Q4YTdlZTE5NmU1ZjlkIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oCisr
KyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmgKQEAgLTY3Nyw3
ICs2NzcsNyBAQCBwcml2YXRlOgogICAgIFJlZlB0cjxXZWJDb3JlOjpOb2RlPiBtX2dlc3R1cmVU
YXJnZXROb2RlOwogI2VuZGlmCiAgICAgCi0gICAgUnVuTG9vcDo6VGltZXI8V2ViUGFnZT4gbV9z
ZXRDYW5TdGFydE1lZGlhVGltZXI7CisgICAgV2ViQ29yZTo6UnVuTG9vcDo6VGltZXI8V2ViUGFn
ZT4gbV9zZXRDYW5TdGFydE1lZGlhVGltZXI7CiAKICAgICBIYXNoTWFwPHVpbnQ2NF90LCBSZWZQ
dHI8V2ViVW5kb1N0ZXA+ID4gbV91bmRvU3RlcE1hcDsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdDIvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nl
c3MvV2ViUHJvY2Vzcy5jcHAKaW5kZXggMzliM2JjOGU1YjdiYjg3YTZmNjg0NDc4YTFiZmU4OWIy
ZDQzNGNkZC4uYWI3MGIyYTFmYjdmMzIxM2JhZWNmYzhhNWRmMzNlMDMxM2YxNGRlYiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuY3BwCkBAIC0zMSw3ICszMSw2IEBACiAj
aW5jbHVkZSAiSW5qZWN0ZWRCdW5kbGUuaCIKICNpbmNsdWRlICJJbmplY3RlZEJ1bmRsZU1lc3Nh
Z2VLaW5kcy5oIgogI2luY2x1ZGUgIkluamVjdGVkQnVuZGxlVXNlck1lc3NhZ2VDb2RlcnMuaCIK
LSNpbmNsdWRlICJSdW5Mb29wLmgiCiAjaW5jbHVkZSAiU2FuZGJveEV4dGVuc2lvbi5oIgogI2lu
Y2x1ZGUgIlN0YXRpc3RpY3NEYXRhLmgiCiAjaW5jbHVkZSAiV2ViQXBwbGljYXRpb25DYWNoZU1h
bmFnZXIuaCIKQEAgLTcyLDYgKzcxLDcgQEAKICNpbmNsdWRlIDxXZWJDb3JlL1BhZ2VDYWNoZS5o
PgogI2luY2x1ZGUgPFdlYkNvcmUvUGFnZUdyb3VwLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9SZXNv
dXJjZUhhbmRsZS5oPgorI2luY2x1ZGUgPFdlYkNvcmUvUnVuTG9vcC5oPgogI2luY2x1ZGUgPFdl
YkNvcmUvU2NoZW1lUmVnaXN0cnkuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1NlY3VyaXR5T3JpZ2lu
Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9TZXR0aW5ncy5oPgpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdDIvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmggYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNz
L1dlYlByb2Nlc3MuaAppbmRleCAxZTUwMjg0YzBiYmViYzgyOWY2MTcyOWJkZmEwYmU4MDhlYWRk
NmJjLi41OGYzZDMwMjUyOTMxZDY4Y2M1OGIwZjk2ODExN2ZhYmI0NzdhZjRjIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuaAorKysgYi9Tb3VyY2UvV2Vi
S2l0Mi9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuaApAQCAtODIsMTAgKzgyLDEwIEBAIGNsYXNzIFdl
YlByb2Nlc3MgOiBwdWJsaWMgQ2hpbGRQcm9jZXNzLCBwcml2YXRlIENvcmVJUEM6OkNvbm5lY3Rp
b246OlF1ZXVlQ2xpZW50CiBwdWJsaWM6CiAgICAgc3RhdGljIFdlYlByb2Nlc3MmIHNoYXJlZCgp
OwogCi0gICAgdm9pZCBpbml0aWFsaXplKENvcmVJUEM6OkNvbm5lY3Rpb246OklkZW50aWZpZXIs
IFJ1bkxvb3AqKTsKKyAgICB2b2lkIGluaXRpYWxpemUoQ29yZUlQQzo6Q29ubmVjdGlvbjo6SWRl
bnRpZmllciwgV2ViQ29yZTo6UnVuTG9vcCopOwogCiAgICAgQ29yZUlQQzo6Q29ubmVjdGlvbiog
Y29ubmVjdGlvbigpIGNvbnN0IHsgcmV0dXJuIG1fY29ubmVjdGlvbi0+Y29ubmVjdGlvbigpOyB9
Ci0gICAgUnVuTG9vcCogcnVuTG9vcCgpIGNvbnN0IHsgcmV0dXJuIG1fcnVuTG9vcDsgfQorICAg
IFdlYkNvcmU6OlJ1bkxvb3AqIHJ1bkxvb3AoKSBjb25zdCB7IHJldHVybiBtX3J1bkxvb3A7IH0K
IAogICAgIFdlYkNvbm5lY3Rpb25Ub1VJUHJvY2Vzcyogd2ViQ29ubmVjdGlvblRvVUlQcm9jZXNz
KCkgY29uc3QgeyByZXR1cm4gbV9jb25uZWN0aW9uLmdldCgpOyB9CiAKQEAgLTI0MSw3ICsyNDEs
NyBAQCBwcml2YXRlOgogCiAgICAgYm9vbCBtX2luRGlkQ2xvc2U7CiAKLSAgICBSdW5Mb29wKiBt
X3J1bkxvb3A7CisgICAgV2ViQ29yZTo6UnVuTG9vcCogbV9ydW5Mb29wOwogCiAgICAgLy8gRklY
TUU6IFRoZSB2aXNpdGVkIGxpbmsgdGFibGUgc2hvdWxkIG5vdCBiZSBwZXIgcHJvY2Vzcy4KICAg
ICBWaXNpdGVkTGlua1RhYmxlIG1fdmlzaXRlZExpbmtUYWJsZTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQyL1dlYlByb2Nlc3MvZ3RrL1dlYlByb2Nlc3NNYWluR3RrLmNwcCBiL1NvdXJjZS9X
ZWJLaXQyL1dlYlByb2Nlc3MvZ3RrL1dlYlByb2Nlc3NNYWluR3RrLmNwcAppbmRleCBmYjk2OThl
ZGFhZjUyZDk1NGI5NWM3NzMwNTBiODY5NzQwNzM2NWFjLi42NzY2MGY5M2UwZDY3ZWVhOTVlZWUy
ZDQ0OGY5MjQ3ODliYjQ5N2VjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNz
L2d0ay9XZWJQcm9jZXNzTWFpbkd0ay5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy9ndGsvV2ViUHJvY2Vzc01haW5HdGsuY3BwCkBAIC0zMSw3ICszMSw3IEBACiAjaW5jbHVkZSAi
V0tCYXNlLmgiCiAjaW5jbHVkZSA8V2ViQ29yZS9HdGtBdXRoZW50aWNhdGlvbkRpYWxvZy5oPgog
I2luY2x1ZGUgPFdlYkNvcmUvUmVzb3VyY2VIYW5kbGUuaD4KLSNpbmNsdWRlIDxXZWJLaXQyL1J1
bkxvb3AuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL1J1bkxvb3AuaD4KICNpbmNsdWRlIDxXZWJLaXQy
L1dlYlByb2Nlc3MuaD4KICNpbmNsdWRlIDxndGsvZ3RrLmg+CiAjaW5jbHVkZSA8cnVudGltZS9J
bml0aWFsaXplVGhyZWFkaW5nLmg+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9j
ZXNzL21hYy9XZWJQcm9jZXNzTWFpbk1hYy5tbSBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
bWFjL1dlYlByb2Nlc3NNYWluTWFjLm1tCmluZGV4IGI1YTNmZTA3ZDA2Nzg0M2JlNWIzYzM1MGEx
NGEwOTBmOTljMTViYTAuLjRlMmIxNTUzMjIxMGMwMDQ0ZjJiOTg4MTMzZjdiYmRkZjZjODU1Njkg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvbWFjL1dlYlByb2Nlc3NNYWlu
TWFjLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvbWFjL1dlYlByb2Nlc3NNYWlu
TWFjLm1tCkBAIC0yOSw5ICsyOSw5IEBACiAjaW1wb3J0ICJDb21tYW5kTGluZS5oIgogI2ltcG9y
dCAiRW52aXJvbm1lbnRVdGlsaXRpZXMuaCIKICNpbXBvcnQgIkVudmlyb25tZW50VmFyaWFibGVz
LmgiCi0jaW1wb3J0ICJSdW5Mb29wLmgiCiAjaW1wb3J0ICJXZWJQcm9jZXNzLmgiCiAjaW1wb3J0
ICJXZWJTeXN0ZW1JbnRlcmZhY2UuaCIKKyNpbXBvcnQgPFdlYkNvcmUvUnVuTG9vcC5oPgogI2lt
cG9ydCA8V2ViS2l0Mi9XS1ZpZXcuaD4KICNpbXBvcnQgPFdlYktpdFN5c3RlbUludGVyZmFjZS5o
PgogI2ltcG9ydCA8bWFjaC9tYWNoX2Vycm9yLmg+CkBAIC00Myw4ICs0Myw4IEBACiAjaW1wb3J0
IDxzdGRpby5oPgogI2ltcG9ydCA8c3lzZXhpdHMuaD4KICNpbXBvcnQgPHVuaXN0ZC5oPgotI2lt
cG9ydCA8d3RmL1JldGFpblB0ci5oPgogI2ltcG9ydCA8d3RmL01haW5UaHJlYWQuaD4KKyNpbXBv
cnQgPHd0Zi9SZXRhaW5QdHIuaD4KICNpbXBvcnQgPHd0Zi90ZXh0L0NTdHJpbmcuaD4KICNpbXBv
cnQgPHd0Zi90ZXh0L1N0cmluZ0J1aWxkZXIuaD4KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dDIvV2ViUHJvY2Vzcy9xdC9XZWJQcm9jZXNzTWFpblF0LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dl
YlByb2Nlc3MvcXQvV2ViUHJvY2Vzc01haW5RdC5jcHAKaW5kZXggYzM4ZTM4MjQxZDI3MjU5ZDQ2
OWM5YzNhZTVjYTBjMGEwMTdlN2RhMy4uOTFlN2FlNDM3OGYwYzQxZDhjZjgxMDA2ZDYxMjdhODg1
ODM0ZWQ1YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9xdC9XZWJQcm9j
ZXNzTWFpblF0LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL3F0L1dlYlByb2Nl
c3NNYWluUXQuY3BwCkBAIC0yNSw5ICsyNSwxMCBAQAogICovCiAKICNpbmNsdWRlICJjb25maWcu
aCIKLSNpbmNsdWRlICJSdW5Mb29wLmgiCi0jaW5jbHVkZSA8cnVudGltZS9Jbml0aWFsaXplVGhy
ZWFkaW5nLmg+CisKICNpbmNsdWRlICJXZWJQcm9jZXNzLmgiCisjaW5jbHVkZSA8V2ViQ29yZS9S
dW5Mb29wLmg+CisjaW5jbHVkZSA8cnVudGltZS9Jbml0aWFsaXplVGhyZWFkaW5nLmg+CiAjaW5j
bHVkZSA8d3RmL01haW5UaHJlYWQuaD4KIAogI2luY2x1ZGUgPFFBcHBsaWNhdGlvbj4KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mvd2luL1dlYlByb2Nlc3NNYWluV2luLmNw
cCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mvd2luL1dlYlByb2Nlc3NNYWluV2luLmNwcApp
bmRleCA1ZWRlZWZlNWNkZGI1YWYyZGM0NDc4YWY0NDlhZTZiYWZkMzg0N2IxLi4yYTcwNjg1ZTQ4
NWUwNjM1YjE1MTY4ZmE1NTBjZGM3MGI5ZWEyNTFlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9XZWJQcm9jZXNzL3dpbi9XZWJQcm9jZXNzTWFpbldpbi5jcHAKKysrIGIvU291cmNlL1dlYktp
dDIvV2ViUHJvY2Vzcy93aW4vV2ViUHJvY2Vzc01haW5XaW4uY3BwCkBAIC0yNywxNCArMjcsMTYg
QEAKICNpbmNsdWRlICJXZWJQcm9jZXNzTWFpbi5oIgogCiAjaW5jbHVkZSAiQ29tbWFuZExpbmUu
aCIKLSNpbmNsdWRlICJSdW5Mb29wLmgiCiAjaW5jbHVkZSAiV2ViUHJvY2Vzcy5oIgorI2luY2x1
ZGUgPFdlYkNvcmUvUnVuTG9vcC5oPgogI2luY2x1ZGUgPFdlYkNvcmUvU29mdExpbmtpbmcuaD4K
ICNpbmNsdWRlIDxydW50aW1lL0luaXRpYWxpemVUaHJlYWRpbmcuaD4KICNpbmNsdWRlIDx3dGYv
TWFpblRocmVhZC5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L1N0cmluZ0hhc2guaD4KICNpbmNsdWRl
IDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KIAordXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CisKIG5h
bWVzcGFjZSBXZWJLaXQgewogCiAjaWYgVVNFKFNBRkFSSV9USEVNRSkKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQyL3dpbi9XZWJLaXQyLnZjcHJvaiBiL1NvdXJjZS9XZWJLaXQyL3dpbi9XZWJL
aXQyLnZjcHJvagppbmRleCA3NTIyNzhkZGMwMTVjY2Y0NDViYTFjN2JlYzYwZjU0MTgwNTQ3YTZl
Li4xNjdiYTNkOTEyN2I4N2RkMDU1NDdlZDdhYjRlZjcxMTY5OTEyMzUyIDEwMDc1NQotLS0gYS9T
b3VyY2UvV2ViS2l0Mi93aW4vV2ViS2l0Mi52Y3Byb2oKKysrIGIvU291cmNlL1dlYktpdDIvd2lu
L1dlYktpdDIudmNwcm9qCkBAIC0zODg3LDE0ICszODg3LDYgQEAKIAkJCQk+CiAJCQk8L0ZpbGU+
CiAJCQk8RmlsZQotCQkJCVJlbGF0aXZlUGF0aD0iLi5cUGxhdGZvcm1cUnVuTG9vcC5jcHAiCi0J
CQkJPgotCQkJPC9GaWxlPgotCQkJPEZpbGUKLQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXFBsYXRmb3Jt
XFJ1bkxvb3AuaCIKLQkJCQk+Ci0JCQk8L0ZpbGU+Ci0JCQk8RmlsZQogCQkJCVJlbGF0aXZlUGF0
aD0iLi5cUGxhdGZvcm1cU2hhcmVkTWVtb3J5LmgiCiAJCQkJPgogCQkJPC9GaWxlPgpAQCAtMzk0
MiwxMCArMzkzNCw2IEBACiAJCQkJCT4KIAkJCQk8L0ZpbGU+CiAJCQkJPEZpbGUKLQkJCQkJUmVs
YXRpdmVQYXRoPSIuLlxQbGF0Zm9ybVx3aW5cUnVuTG9vcFdpbi5jcHAiCi0JCQkJCT4KLQkJCQk8
L0ZpbGU+Ci0JCQkJPEZpbGUKIAkJCQkJUmVsYXRpdmVQYXRoPSIuLlxQbGF0Zm9ybVx3aW5cU2hh
cmVkTWVtb3J5V2luLmNwcCIKIAkJCQkJPgogCQkJCTwvRmlsZT4K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>122990</attachid>
            <date>2012-01-18 14:05:26 -0800</date>
            <delta_ts>2012-01-18 16:47:31 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-76471-20120118140535.patch</filename>
            <type>text/plain</type>
            <size>128449</size>
            <attacher name="Sam Weinig">sam</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTA1MzE3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMjIxOTRlZDE3NmVlNTlk
N2ExYzkwMmE5OTVhNmI3ZDg0NTE0MWZmOS4uMmM1YTEyZWNlZDk4ZmZhY2Q3ZTc0OTI1Nzk1ZmU4
ODhjZTE3MjA1NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI1IEBACisyMDEyLTAxLTE4ICBTYW0g
V2VpbmlnICA8c2FtQHdlYmtpdC5vcmc+CisKKyAgICAgICAgTW92ZSBSdW5Mb29wIHRvIFdlYkNv
cmUvcGxhdGZvcm0KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTc2NDcxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgKiBHTlVtYWtlZmlsZS5saXN0LmFtOgorICAgICAgICAqIFRhcmdldC5wcmk6CisgICAgICAg
ICogV2ViQ29yZS5leHAuaW46CisgICAgICAgICogV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3By
b2o6CisgICAgICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAg
ICBBZGQgbmV3bHkgbW92ZWQgZmlsZXMuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9SdW5Mb29wLmNw
cDogTW92ZWQgZnJvbSBTb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9SdW5Mb29wLmNwcC4KKyAgICAg
ICAgKiBwbGF0Zm9ybS9SdW5Mb29wLmg6IE1vdmVkIGZyb20gU291cmNlL1dlYktpdDIvUGxhdGZv
cm0vUnVuTG9vcC5oLgorICAgICAgICAqIHBsYXRmb3JtL2d0ay9SdW5Mb29wR3RrLmNwcDogTW92
ZWQgZnJvbSBTb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9ndGsvUnVuTG9vcEd0ay5jcHAuCisgICAg
ICAgICogcGxhdGZvcm0vbWFjL1J1bkxvb3BNYWMubW06IE1vdmVkIGZyb20gU291cmNlL1dlYktp
dDIvUGxhdGZvcm0vbWFjL1J1bkxvb3BNYWMubW0uCisgICAgICAgICogcGxhdGZvcm0vcXQvUnVu
TG9vcFF0LmNwcDogTW92ZWQgZnJvbSBTb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9xdC9SdW5Mb29w
UXQuY3BwLgorICAgICAgICAqIHBsYXRmb3JtL3dpbi9SdW5Mb29wV2luLmNwcDogTW92ZWQgZnJv
bSBTb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS93aW4vUnVuTG9vcFdpbi5jcHAuCisgICAgICAgIE1v
dmUgdGhlIGZpbGVzLgorCiAyMDEyLTAxLTE4ICBFcmljIENhcmxzb24gIDxlcmljLmNhcmxzb25A
YXBwbGUuY29tPgogCiAgICAgICAgIFByb3ZpZGUgYWNjZXNzIHRvIHVzZXIncyBsaXN0IG9mIHBy
ZWZlcnJlZCBsYW5ndWFnZXMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZyBi
L1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwppbmRleCA0ZDJhN2FmN2EwMmM2OTEyZDI3YjVkNWM1
NDBhZjhhMThjZDViZDU3Li42Y2UwNmMzNzNiZDc1NTE0YTQ4YmZkZDQ2OGUwMTA1ZGU3ZGM0N2Ey
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktp
dDIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNjcgQEAKKzIwMTItMDEtMTggIFNhbSBXZWluaWcgIDxz
YW1Ad2Via2l0Lm9yZz4KKworICAgICAgICBNb3ZlIFJ1bkxvb3AgdG8gV2ViQ29yZS9wbGF0Zm9y
bQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzY0NzEK
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIEdOVW1h
a2VmaWxlLmFtOgorICAgICAgICAqIFBsYXRmb3JtL0NvcmVJUEMvQ29ubmVjdGlvbi5jcHA6Cisg
ICAgICAgICogUGxhdGZvcm0vQ29yZUlQQy9Db25uZWN0aW9uLmg6CisgICAgICAgICogUGxhdGZv
cm0vQ29yZUlQQy9tYWMvQ29ubmVjdGlvbk1hYy5jcHA6CisgICAgICAgICogUGx1Z2luUHJvY2Vz
cy9QbHVnaW5Db250cm9sbGVyUHJveHkuaDoKKyAgICAgICAgKiBQbHVnaW5Qcm9jZXNzL1BsdWdp
blByb2Nlc3MuY3BwOgorICAgICAgICAqIFBsdWdpblByb2Nlc3MvUGx1Z2luUHJvY2Vzcy5oOgor
ICAgICAgICAqIFBsdWdpblByb2Nlc3MvV2ViUHJvY2Vzc0Nvbm5lY3Rpb24uY3BwOgorICAgICAg
ICAqIFBsdWdpblByb2Nlc3MvbWFjL1BsdWdpblByb2Nlc3NNYWluTWFjLm1tOgorICAgICAgICAq
IFBsdWdpblByb2Nlc3MvcXQvUGx1Z2luUHJvY2Vzc01haW5RdC5jcHA6CisgICAgICAgICogU2hh
cmVkL0NoaWxkUHJvY2Vzcy5jcHA6CisgICAgICAgICogU2hhcmVkL0NoaWxkUHJvY2Vzcy5oOgor
ICAgICAgICAqIFRhcmdldC5wcmk6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9tYWMvRmluZElu
ZGljYXRvcldpbmRvdy5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvbWFjL1dLVmlldy5tbToK
KyAgICAgICAgKiBVSVByb2Nlc3MvRHJhd2luZ0FyZWFQcm94eUltcGwuaDoKKyAgICAgICAgKiBV
SVByb2Nlc3MvTGF1bmNoZXIvVGhyZWFkTGF1bmNoZXIuY3BwOgorICAgICAgICAqIFVJUHJvY2Vz
cy9MYXVuY2hlci9ndGsvUHJvY2Vzc0xhdW5jaGVyR3RrLmNwcDoKKyAgICAgICAgKiBVSVByb2Nl
c3MvTGF1bmNoZXIvbWFjL1Byb2Nlc3NMYXVuY2hlck1hYy5tbToKKyAgICAgICAgKiBVSVByb2Nl
c3MvTGF1bmNoZXIvbWFjL1RocmVhZExhdW5jaGVyTWFjLm1tOgorICAgICAgICAqIFVJUHJvY2Vz
cy9MYXVuY2hlci9xdC9Qcm9jZXNzTGF1bmNoZXJRdC5jcHA6CisgICAgICAgICogVUlQcm9jZXNz
L0xhdW5jaGVyL3F0L1RocmVhZExhdW5jaGVyUXQuY3BwOgorICAgICAgICAqIFVJUHJvY2Vzcy9M
YXVuY2hlci93aW4vUHJvY2Vzc0xhdW5jaGVyV2luLmNwcDoKKyAgICAgICAgKiBVSVByb2Nlc3Mv
TGF1bmNoZXIvd2luL1RocmVhZExhdW5jaGVyV2luLmNwcDoKKyAgICAgICAgKiBVSVByb2Nlc3Mv
TGF5ZXJUcmVlSG9zdFByb3h5Lmg6CisgICAgICAgICogVUlQcm9jZXNzL1BsdWdpbnMvUGx1Z2lu
UHJvY2Vzc1Byb3h5LmNwcDoKKyAgICAgICAgKiBVSVByb2Nlc3MvUmVzcG9uc2l2ZW5lc3NUaW1l
ci5jcHA6CisgICAgICAgICogVUlQcm9jZXNzL1Jlc3BvbnNpdmVuZXNzVGltZXIuaDoKKyAgICAg
ICAgKiBVSVByb2Nlc3MvVGlsZWREcmF3aW5nQXJlYVByb3h5Lmg6CisgICAgICAgICogVUlQcm9j
ZXNzL1Zpc2l0ZWRMaW5rUHJvdmlkZXIuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViQ29ubmVj
dGlvblRvV2ViUHJvY2Vzcy5jcHA6CisgICAgICAgICogVUlQcm9jZXNzL1dlYkNvbm5lY3Rpb25U
b1dlYlByb2Nlc3MuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViQ29udGV4dC5jcHA6CisgICAg
ICAgICogVUlQcm9jZXNzL3dpbi9XZWJWaWV3LmNwcDoKKyAgICAgICAgKiBXZWJLaXQyLnhjb2Rl
cHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogV2ViUHJvY2Vzcy9QbHVnaW5zL05ldHNj
YXBlL05QUnVudGltZU9iamVjdE1hcC5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvUGx1Z2lucy9O
ZXRzY2FwZS9OZXRzY2FwZVBsdWdpbi5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvUGx1Z2lucy9O
ZXRzY2FwZS9OZXRzY2FwZVBsdWdpblN0cmVhbS5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvUGx1
Z2lucy9QbHVnaW5WaWV3Lmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJDb25uZWN0aW9uVG9V
SVByb2Nlc3MuY3BwOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViQ29ubmVjdGlvblRvVUlQcm9j
ZXNzLmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJHcmFwaGljc0xh
eWVyLmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL0RyYXdpbmdBcmVhSW1wbC5oOgor
ICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9FdmVudERpc3BhdGNoZXIuY3BwOgorICAgICAg
ICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9QYWdlT3ZlcmxheS5oOgorICAgICAgICAqIFdlYlByb2Nl
c3MvV2ViUGFnZS9XZWJQYWdlLmNwcDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2Vi
UGFnZS5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUHJvY2Vzcy5jcHA6CisgICAgICAgICog
V2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmg6CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3M6OnJ1
bkxvb3ApOgorICAgICAgICAqIFdlYlByb2Nlc3MvZ3RrL1dlYlByb2Nlc3NNYWluR3RrLmNwcDoK
KyAgICAgICAgKiBXZWJQcm9jZXNzL21hYy9XZWJQcm9jZXNzTWFpbk1hYy5tbToKKyAgICAgICAg
KiBXZWJQcm9jZXNzL3F0L1dlYlByb2Nlc3NNYWluUXQuY3BwOgorICAgICAgICAqIFdlYlByb2Nl
c3Mvd2luL1dlYlByb2Nlc3NNYWluV2luLmNwcDoKKyAgICAgICAgKiB3aW4vV2ViS2l0Mi52Y3By
b2o6CisgICAgICAgIFJlbW92ZSBSdW5Mb29wIGNvZGUgYW5kIHVwZGF0ZSAjaW5jbHVkZXMuCisK
IDIwMTItMDEtMTggIEVyaWMgQ2FybHNvbiAgPGVyaWMuY2FybHNvbkBhcHBsZS5jb20+CiAKICAg
ICAgICAgUHJvdmlkZSBhY2Nlc3MgdG8gdXNlcidzIGxpc3Qgb2YgcHJlZmVycmVkIGxhbmd1YWdl
cwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbSBiL1NvdXJj
ZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0KaW5kZXggYmJiMjY1OTY3MmYxMTExZGIxZDUz
Y2VhYmY4NWMxNTFjMGFjNDIyNy4uODNlMTliMzMxYjI4NzIzZTM1NTU3OWY3NzM3YTUwZjhiODg4
ZjYxMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbQorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0LmFtCkBAIC0zMjI2LDYgKzMyMjYsOCBA
QCB3ZWJjb3JlX3NvdXJjZXMgKz0gXAogCVNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1BvcHVwTWVu
dVN0eWxlLmggXAogCVNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1B1cmdlYWJsZUJ1ZmZlci5oIFwK
IAlTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9QdXJnZVByaW9yaXR5LmggXAorCVNvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL1J1bkxvb3AuY3BwIFwKKwlTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9SdW5M
b29wLmggXAogCVNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1J1bnRpbWVBcHBsaWNhdGlvbkNoZWNr
cy5jcHAgXAogCVNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1J1bnRpbWVBcHBsaWNhdGlvbkNoZWNr
cy5oIFwKIAlTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY2hlbWVSZWdpc3RyeS5jcHAgXApAQCAt
NDUwMSw2ICs0NTAzLDcgQEAgd2ViY29yZWd0a19zb3VyY2VzICs9IFwKIAlTb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ndGsvUmVuZGVyVGhlbWVHdGsuaCBcCiAJU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3RrL1JlbmRlclRoZW1lR3RrMi5jcHAgXAogCVNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2d0
ay9SZW5kZXJUaGVtZUd0azMuY3BwIFwKKwlTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ndGsvUnVu
TG9vcEd0ay5jcHAgXAogCVNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9TY3JvbGxiYXJUaGVt
ZUd0ay5jcHAgXAogCVNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9TY3JvbGxiYXJUaGVtZUd0
ay5oIFwKIAlTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ndGsvU2Nyb2xsYmFyVGhlbWVHdGsyLmNw
cCBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9UYXJnZXQucHJpIGIvU291cmNlL1dlYkNv
cmUvVGFyZ2V0LnByaQppbmRleCA0NTdkYjBjZTBiY2ViOGIwN2RjNDQ5NDQ0NmM3ZjE4NjkxZmU2
NTViLi45Nzk1NmJjYmM0MWViZjlhYzI1OTIxNjIxNWU1MTBhYjdlZjNlMzRkIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9UYXJnZXQucHJpCisrKyBiL1NvdXJjZS9XZWJDb3JlL1RhcmdldC5w
cmkKQEAgLTExMjgsNiArMTEyOCw3IEBAIFNPVVJDRVMgKz0gXAogICAgIHBsYXRmb3JtL3RleHQv
UmVndWxhckV4cHJlc3Npb24uY3BwIFwKICAgICBwbGF0Zm9ybS9QbGF0Zm9ybUV2ZW50LmNwcCBc
CiAgICAgcGxhdGZvcm0vUnVudGltZUFwcGxpY2F0aW9uQ2hlY2tzLmNwcCBcCisgICAgcGxhdGZv
cm0vUnVuTG9vcC5jcHAgXAogICAgIHBsYXRmb3JtL1NjaGVtZVJlZ2lzdHJ5LmNwcCBcCiAgICAg
cGxhdGZvcm0vU2Nyb2xsYWJsZUFyZWEuY3BwIFwKICAgICBwbGF0Zm9ybS9TY3JvbGxBbmltYXRv
ci5jcHAgXApAQCAtMjgwMiw2ICsyODAzLDcgQEAgU09VUkNFUyArPSBcCiAgICAgcGxhdGZvcm0v
cXQvRHJhZ0ltYWdlUXQuY3BwIFwKICAgICBwbGF0Zm9ybS9xdC9FdmVudExvb3BRdC5jcHAgXAog
ICAgIHBsYXRmb3JtL3F0L0ZpbGVTeXN0ZW1RdC5jcHAgXAorICAgIHBsYXRmb3JtL3F0L1J1bkxv
b3BRdC5jcHAgXAogICAgIHBsYXRmb3JtL3F0L1NoYXJlZEJ1ZmZlclF0LmNwcCBcCiAgICAgcGxh
dGZvcm0vcXQvVGhpcmRQYXJ0eUNvb2tpZXNRdC5jcHAgXAogICAgIHBsYXRmb3JtL2dyYXBoaWNz
L3F0L0ZvbnRDYWNoZVF0LmNwcCBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3Jl
LmV4cC5pbiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZXhwLmluCmluZGV4IGY3NDM4NjIwYTMw
ZmQwYTI2OWU5ZTRhZDE3MmQ2YmUyYTNiZDhkNjkuLjRmODdjN2Q5YWY5OTFmNWJjZGQ4NDg1MjJk
MDM2ZjBmOTE4NDE2YmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZXhwLmlu
CisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZXhwLmluCkBAIC0yODAsNyArMjgwLDYgQEAg
X19aTjdXZWJDb3JlMTJQcmludENvbnRleHQ5c3Bvb2xQYWdlRVJOU18xNUdyYXBoaWNzQ29udGV4
dEVpZgogX19aTjdXZWJDb3JlMTJQcmludENvbnRleHQ5c3Bvb2xSZWN0RVJOU18xNUdyYXBoaWNz
Q29udGV4dEVSS05TXzdJbnRSZWN0RQogX19aTjdXZWJDb3JlMTJQcmludENvbnRleHRDMUVQTlNf
NUZyYW1lRQogX19aTjdXZWJDb3JlMTJQcmludENvbnRleHREMUV2Ci1fX1pOSzdXZWJDb3JlMTJS
ZW5kZXJPYmplY3QxM3N0eWxlSW5SZWdpb25FdgogX19aTjdXZWJDb3JlMTJSZW5kZXJPYmplY3Qx
NnJlcGFpbnRSZWN0YW5nbGVFUktOU183SW50UmVjdEViCiBfX1pON1dlYkNvcmUxMlJlbmRlcldp
ZGdldDI4cmVzdW1lV2lkZ2V0SGllcmFyY2h5VXBkYXRlc0V2CiBfX1pON1dlYkNvcmUxMlJlbmRl
cldpZGdldDI5c3VzcGVuZFdpZGdldEhpZXJhcmNoeVVwZGF0ZXNFdgpAQCAtMzY0LDkgKzM2Myw2
IEBAIF9fWk43V2ViQ29yZTE0UmVzb3VyY2VIYW5kbGUyMGZvcmNlQ29udGVudFNuaWZmaW5nRXYK
IF9fWk43V2ViQ29yZTE0UmVzb3VyY2VIYW5kbGUyNnN5bmNocm9ub3VzTG9hZFJ1bkxvb3BNb2Rl
RXYKIF9fWk43V2ViQ29yZTE0UmVzb3VyY2VIYW5kbGUzNWNyZWF0ZVByaXZhdGVCcm93c2luZ1N0
b3JhZ2VTZXNzaW9uRVBLMTBfX0NGU3RyaW5nCiBfX1pON1dlYkNvcmUxNFJlc291cmNlTG9hZGVy
MTRjYW5jZWxsZWRFcnJvckV2Ci0jaWYgRU5BQkxFKFNWRykKLV9fWk43V2ViQ29yZTE0U1ZHU01J
TEVsZW1lbnQxM2lzU01JTEVsZW1lbnRFUE5TXzROb2RlRQotI2VuZGlmCiBfX1pON1dlYkNvcmUx
NFNjaGVtZVJlZ2lzdHJ5MjRyZWdpc3RlclVSTFNjaGVtZUFzTG9jYWxFUktOM1dURjZTdHJpbmdF
CiBfX1pON1dlYkNvcmUxNFNjaGVtZVJlZ2lzdHJ5MjVyZWdpc3RlclVSTFNjaGVtZUFzU2VjdXJl
RVJLTjNXVEY2U3RyaW5nRQogX19aTjdXZWJDb3JlMTRTY2hlbWVSZWdpc3RyeTMycmVnaXN0ZXJV
UkxTY2hlbWVBc0VtcHR5RG9jdW1lbnRFUktOM1dURjZTdHJpbmdFCkBAIC02MTUsOSArNjExLDYg
QEAgX19aTjdXZWJDb3JlMjFNZW1vcnlQcmVzc3VyZUhhbmRsZXI3aW5zdGFsbEV2CiBfX1pON1dl
YkNvcmUyMVBsYXRmb3JtS2V5Ym9hcmRFdmVudDI0ZGlzYW1iaWd1YXRlS2V5RG93bkV2ZW50RU5T
XzEzUGxhdGZvcm1FdmVudDRUeXBlRWIKIF9fWk43V2ViQ29yZTIxUmVzb3VyY2VMb2FkU2NoZWR1
bGVyMjBzZXJ2ZVBlbmRpbmdSZXF1ZXN0c0VOU18yMFJlc291cmNlTG9hZFByaW9yaXR5RQogX19a
TjdXZWJDb3JlMjFSZXNvdXJjZUxvYWRTY2hlZHVsZXIyNHNjaGVkdWxlUGx1Z2luU3RyZWFtTG9h
ZEVQTlNfNUZyYW1lRVBOU18zMk5ldHNjYXBlUGx1Z0luU3RyZWFtTG9hZGVyQ2xpZW50RVJLTlNf
MTVSZXNvdXJjZVJlcXVlc3RFCi0jaWYgRU5BQkxFKFNWRykKLV9fWk43V2ViQ29yZTIxU1ZHRG9j
dW1lbnRFeHRlbnNpb25zMjFzYW1wbGVBbmltYXRpb25BdFRpbWVFUktOM1dURjZTdHJpbmdFUE5T
XzE0U1ZHU01JTEVsZW1lbnRFZAotI2VuZGlmCiBfX1pON1dlYkNvcmUyMVNlcmlhbGl6ZWRTY3Jp
cHRWYWx1ZTExZGVzZXJpYWxpemVFUEsxNU9wYXF1ZUpTQ29udGV4dFBQSzEzT3BhcXVlSlNWYWx1
ZQogX19aTjdXZWJDb3JlMjFTZXJpYWxpemVkU2NyaXB0VmFsdWU2Y3JlYXRlRVBLMTVPcGFxdWVK
U0NvbnRleHRQSzEzT3BhcXVlSlNWYWx1ZVBTNl8KIF9fWk43V2ViQ29yZTIxU2VyaWFsaXplZFNj
cmlwdFZhbHVlQzFFUk4zV1RGNlZlY3RvckloTG0wRUVFCkBAIC05MDgsNiArOTAxLDE3IEBAIF9f
Wk43V2ViQ29yZTdJbnRSZWN0NXVuaXRlRVJLUzBfCiBfX1pON1dlYkNvcmU3SW50UmVjdDlpbnRl
cnNlY3RFUktTMF8KIF9fWk43V2ViQ29yZTdJbnRSZWN0QzFFUktOU185RmxvYXRSZWN0RQogX19a
TjdXZWJDb3JlN0ludFNpemVDMUVSSzZDR1NpemUKK19fWk43V2ViQ29yZTdSdW5Mb29wMTRydW5G
b3JEdXJhdGlvbkVkCitfX1pON1dlYkNvcmU3UnVuTG9vcDIxaW5pdGlhbGl6ZU1haW5SdW5Mb29w
RXYKK19fWk43V2ViQ29yZTdSdW5Mb29wM3J1bkV2CitfX1pON1dlYkNvcmU3UnVuTG9vcDRtYWlu
RXYKK19fWk43V2ViQ29yZTdSdW5Mb29wNHN0b3BFdgorX19aTjdXZWJDb3JlN1J1bkxvb3A3Y3Vy
cmVudEV2CitfX1pON1dlYkNvcmU3UnVuTG9vcDhkaXNwYXRjaEVSS04zV1RGOEZ1bmN0aW9uSUZ2
dkVFRQorX19aTjdXZWJDb3JlN1J1bkxvb3A5VGltZXJCYXNlNHN0b3BFdgorX19aTjdXZWJDb3Jl
N1J1bkxvb3A5VGltZXJCYXNlNXN0YXJ0RWRiCitfX1pON1dlYkNvcmU3UnVuTG9vcDlUaW1lckJh
c2VDMkVQUzBfCitfX1pON1dlYkNvcmU3UnVuTG9vcDlUaW1lckJhc2VEMkV2CiBfX1pON1dlYkNv
cmU3VGV4dFJ1bjE5YWxsb3dzUm91bmRpbmdIYWNrc0V2CiBfX1pON1dlYkNvcmU3VGV4dFJ1bjIx
c19hbGxvd3NSb3VuZGluZ0hhY2tzRQogX19aTjdXZWJDb3JlN1RleHRSdW4yMnNldEFsbG93c1Jv
dW5kaW5nSGFja3NFYgpAQCAtOTE3LDE1ICs5MjEsOSBAQCBfX1pON1dlYkNvcmU3cmVwbGFjZUVS
TjNXVEY2U3RyaW5nRVJLTlNfMTdSZWd1bGFyRXhwcmVzc2lvbkVSS1MxXwogX19aTjdXZWJDb3Jl
N3RvUmFuZ2VFTjNKU0M3SlNWYWx1ZUUKIF9fWk43V2ViQ29yZThEb2N1bWVudDExY3JlYXRlUmFu
Z2VFdgogX19aTjdXZWJDb3JlOERvY3VtZW50MTJ1cGRhdGVMYXlvdXRFdgotI2lmIEVOQUJMRShT
VkcpCi1fX1pON1dlYkNvcmU4RG9jdW1lbnQxM3N2Z0V4dGVuc2lvbnNFdgotI2VuZGlmCiBfX1pO
N1dlYkNvcmU4RG9jdW1lbnQxNHNldEZvY3VzZWROb2RlRU4zV1RGMTBQYXNzUmVmUHRySU5TXzRO
b2RlRUVFCiBfX1pON1dlYkNvcmU4RG9jdW1lbnQxNmlzUGFnZUJveFZpc2libGVFaQogX19aTjdX
ZWJDb3JlOERvY3VtZW50MTdnZXRGb2N1c2FibGVOb2Rlc0VSTjNXVEY2VmVjdG9ySU5TMV82UmVm
UHRySU5TXzROb2RlRUVFTG0wRUVFCi0jaWYgRU5BQkxFKFNWRykKLV9fWk43V2ViQ29yZThEb2N1
bWVudDE5YWNjZXNzU1ZHRXh0ZW5zaW9uc0V2Ci0jZW5kaWYKIF9fWk43V2ViQ29yZThEb2N1bWVu
dDIwc3R5bGVTZWxlY3RvckNoYW5nZWRFTlNfMjNTdHlsZVNlbGVjdG9yVXBkYXRlRmxhZ0UKIF9f
Wk43V2ViQ29yZThEb2N1bWVudDIyY3JlYXRlRG9jdW1lbnRGcmFnbWVudEV2CiBfX1pON1dlYkNv
cmU4RG9jdW1lbnQyM2RpZEFkZFdoZWVsRXZlbnRIYW5kbGVyRXYKQEAgLTExOTMsNiArMTE5MSw3
IEBAIF9fWk5LN1dlYkNvcmUxMVNjcmlwdFZhbHVlOWdldFN0cmluZ0VQTjNKU0M5RXhlY1N0YXRl
RVJOM1dURjZTdHJpbmdFCiBfX1pOSzdXZWJDb3JlMTJJY29uRGF0YWJhc2UxMmRhdGFiYXNlUGF0
aEV2CiBfX1pOSzdXZWJDb3JlMTJJY29uRGF0YWJhc2UyNHNob3VsZFN0b3BUaHJlYWRBY3Rpdml0
eUV2CiBfX1pOSzdXZWJDb3JlMTJJY29uRGF0YWJhc2U5aXNFbmFibGVkRXYKK19fWk5LN1dlYkNv
cmUxMlJlbmRlck9iamVjdDEzc3R5bGVJblJlZ2lvbkV2CiBfX1pOSzdXZWJDb3JlMTJSZW5kZXJP
YmplY3QxNGVuY2xvc2luZ0xheWVyRXYKIF9fWk5LN1dlYkNvcmUxMlJlbmRlck9iamVjdDE1bG9j
YWxUb0Fic29sdXRlRVJLTlNfMTBGbG9hdFBvaW50RWJiCiBfX1pOSzdXZWJDb3JlMTJSZW5kZXJP
YmplY3QyM2Fic29sdXRlQm91bmRpbmdCb3hSZWN0RWIKQEAgLTEyNTQsOCArMTI1Myw4IEBAIF9f
Wk5LN1dlYkNvcmUxNFJlc291cmNlTG9hZGVyMTFmcmFtZUxvYWRlckV2CiBfX1pOSzdXZWJDb3Jl
MTRTY3JvbGxhYmxlQXJlYTE0c2Nyb2xsQW5pbWF0b3JFdgogX19aTks3V2ViQ29yZTE0U2Nyb2xs
YWJsZUFyZWEyMGNvbnRlbnRBcmVhV2lsbFBhaW50RXYKIF9fWk5LN1dlYkNvcmUxNFNjcm9sbGFi
bGVBcmVhMjJtb3VzZUV4aXRlZENvbnRlbnRBcmVhRXYKLV9fWk5LN1dlYkNvcmUxNFNjcm9sbGFi
bGVBcmVhMjNtb3VzZU1vdmVkSW5Db250ZW50QXJlYUV2CiBfX1pOSzdXZWJDb3JlMTRTY3JvbGxh
YmxlQXJlYTIzbW91c2VFbnRlcmVkQ29udGVudEFyZWFFdgorX19aTks3V2ViQ29yZTE0U2Nyb2xs
YWJsZUFyZWEyM21vdXNlTW92ZWRJbkNvbnRlbnRBcmVhRXYKIF9fWk5LN1dlYkNvcmUxNFNlY3Vy
aXR5T3JpZ2luMTBjYW5EaXNwbGF5RVJLTlNfNEtVUkxFCiBfX1pOSzdXZWJDb3JlMTRTZWN1cml0
eU9yaWdpbjE4ZGF0YWJhc2VJZGVudGlmaWVyRXYKIF9fWk5LN1dlYkNvcmUxNFNlY3VyaXR5T3Jp
Z2luNWVxdWFsRVBLUzBfCkBAIC0xNDIzLDYgKzE0MjIsNyBAQCBfX1pOSzdXZWJDb3JlN0ludFJl
Y3Q4Y29udGFpbnNFUktTMF8KIF9fWk5LN1dlYkNvcmU3SW50UmVjdGN2NkNHUmVjdEV2CiBfX1pO
SzdXZWJDb3JlN0ludFJlY3RjdjdfTlNSZWN0RXYKIF9fWk5LN1dlYkNvcmU3SW50U2l6ZWN2NkNH
U2l6ZUV2CitfX1pOSzdXZWJDb3JlN1J1bkxvb3A5VGltZXJCYXNlOGlzQWN0aXZlRXYKIF9fWk5L
N1dlYkNvcmU4RG9jdW1lbnQxMHJlbmRlclZpZXdFdgogX19aTks3V2ViQ29yZThEb2N1bWVudDEx
Y29tcGxldGVVUkxFUktOM1dURjZTdHJpbmdFCiBfX1pOSzdXZWJDb3JlOERvY3VtZW50MTNheE9i
amVjdENhY2hlRXYKQEAgLTE2MDQsNiArMTYwNCwxMyBAQCBfd2tDcmVhdGVBWFRleHRNYXJrZXIK
IF93a0dldEJ5dGVzRnJvbUFYVGV4dE1hcmtlcgogX3drQ3JlYXRlQVhVSUVsZW1lbnRSZWYKIAor
I2lmIEVOQUJMRShTVkcpCitfX1pON1dlYkNvcmUxNFNWR1NNSUxFbGVtZW50MTNpc1NNSUxFbGVt
ZW50RVBOU180Tm9kZUUKK19fWk43V2ViQ29yZTIxU1ZHRG9jdW1lbnRFeHRlbnNpb25zMjFzYW1w
bGVBbmltYXRpb25BdFRpbWVFUktOM1dURjZTdHJpbmdFUE5TXzE0U1ZHU01JTEVsZW1lbnRFZAor
X19aTjdXZWJDb3JlOERvY3VtZW50MTNzdmdFeHRlbnNpb25zRXYKK19fWk43V2ViQ29yZThEb2N1
bWVudDE5YWNjZXNzU1ZHRXh0ZW5zaW9uc0V2CisjZW5kaWYKKwogI2lmIEVOQUJMRSgzRF9SRU5E
RVJJTkcpCiBfV2ViQ29yZUhhczNEUmVuZGVyaW5nCiAjZW5kaWYKQEAgLTIwNTksNiArMjA2Niwz
IEBAIF9fWk43V2ViQ29yZTIwU2Nyb2xsaW5nQ29vcmRpbmF0b3IxOGhhbmRsZUdlc3R1cmVFdmVu
dEVSS05TXzIwUGxhdGZvcm1HZXN0dXJlRXZlCiAjZW5kaWYKIAogI2VuZGlmCi0KLQotCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvaiBiL1Nv
dXJjZS9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qCmluZGV4IGU4NmQzOWU5
ZjA3ZDUxNDJhNGNiMTY4NTE2NTEyODU4MzczZTIyZDIuLjYyYzM4M2I1YjUyMmZhNjc3ZmVjZGUy
ZjA4Yjg2Yjk1MzIyMzZkZDcgMTAwNzU1Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmNw
cm9qL1dlYkNvcmUudmNwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dl
YkNvcmUudmNwcm9qCkBAIC0yNjY1MCw2ICsyNjY1MCwxNCBAQAogCQkJCT4KIAkJCTwvRmlsZT4K
IAkJCTxGaWxlCisJCQkJUmVsYXRpdmVQYXRoPSIuLlxwbGF0Zm9ybVxSdW5Mb29wLmNwcCIKKwkJ
CQk+CisJCQk8L0ZpbGU+CisJCQk8RmlsZQorCQkJCVJlbGF0aXZlUGF0aD0iLi5ccGxhdGZvcm1c
UnVuTG9vcC5oIgorCQkJCT4KKwkJCTwvRmlsZT4KKwkJCTxGaWxlCiAJCQkJUmVsYXRpdmVQYXRo
PSIuLlxwbGF0Zm9ybVxSdW50aW1lQXBwbGljYXRpb25DaGVja3MuY3BwIgogCQkJCT4KIAkJCTwv
RmlsZT4KQEAgLTI3MDYxLDYgKzI3MDY5LDEwIEBACiAJCQkJCT4KIAkJCQk8L0ZpbGU+CiAJCQkJ
PEZpbGUKKwkJCQkJUmVsYXRpdmVQYXRoPSIuLlxwbGF0Zm9ybVx3aW5cUnVuTG9vcFdpbi5jcHAi
CisJCQkJCT4KKwkJCQk8L0ZpbGU+CisJCQkJPEZpbGUKIAkJCQkJUmVsYXRpdmVQYXRoPSIuLlxw
bGF0Zm9ybVx3aW5cU2Nyb2xsYmFyVGhlbWVTYWZhcmkuY3BwIgogCQkJCQk+CiAJCQkJPC9GaWxl
PgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5w
Ynhwcm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9q
CmluZGV4IDc1YjJiOWVjN2I0ZjQ1YTQ3NTMwMTIxMmMzYjQ1Yzc3OTNiODBiZDMuLmYxMzc0OTdj
NzZlYjZkNGU0MWEwYjUwNDNkMmZlOTU0YmI4OGRkOWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTQ5ODcsNiArNDk4Nyw5IEBA
CiAJCUJDMDZFRTA0MEJGRDcxQUEwMDg1NkU5RCAvKiBKU0hUTUxUYWJsZUVsZW1lbnQuY3BwIGlu
IFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkMwNkVFMDIwQkZE
NzFBQTAwODU2RTlEIC8qIEpTSFRNTFRhYmxlRWxlbWVudC5jcHAgKi87IH07CiAJCUJDMDZFRTA1
MEJGRDcxQUEwMDg1NkU5RCAvKiBKU0hUTUxUYWJsZUVsZW1lbnQuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDMDZFRTAzMEJGRDcxQUEwMDg1NkU5RCAv
KiBKU0hUTUxUYWJsZUVsZW1lbnQuaCAqLzsgfTsKIAkJQkMwNzNCQUEwQzM5OUIxRjAwMEY1OTc5
IC8qIEZsb2F0Q29udmVyc2lvbi5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gQkMwNzNCQTkwQzM5OUIxRjAwMEY1OTc5IC8qIEZsb2F0Q29udmVyc2lvbi5o
ICovOyB9OworCQlCQzBCMzU4MzE0QzRGOTU0MDA1NUUyMkEgLyogUnVuTG9vcE1hYy5tbSBpbiBT
b3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDMEIzNTgyMTRDNEY5
NTQwMDU1RTIyQSAvKiBSdW5Mb29wTWFjLm1tICovOyB9OworCQlCQzBCMzU4NzE0QzRGOTgzMDA1
NUUyMkEgLyogUnVuTG9vcC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSBCQzBCMzU4NTE0QzRGOTgzMDA1NUUyMkEgLyogUnVuTG9vcC5jcHAgKi87IH07
CisJCUJDMEIzNTg4MTRDNEY5ODMwMDU1RTIyQSAvKiBSdW5Mb29wLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCQzBCMzU4NjE0QzRGOTgzMDA1NUUyMkEg
LyogUnVuTG9vcC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07
IH07CiAJCUJDMEIzNkE0MENEM0M2N0MwMEFDN0VCNSAvKiBDb25zb2xlLmNwcCBpbiBTb3VyY2Vz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDMEIzNkExMENEM0M2N0MwMEFD
N0VCNSAvKiBDb25zb2xlLmNwcCAqLzsgfTsKIAkJQkMwQjM2QTUwQ0QzQzY3QzAwQUM3RUI1IC8q
IENvbnNvbGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IEJDMEIzNkEyMENEM0M2N0MwMEFDN0VCNSAvKiBDb25zb2xlLmggKi87IHNldHRpbmdzID0ge0FU
VFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJQkMxMjRFRTcwQzI2NDFDRDAwOUUyMzQ5
IC8qIEJhckluZm8uY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gQkMxMjRFRTQwQzI2NDFDRDAwOUUyMzQ5IC8qIEJhckluZm8uY3BwICovOyB9OwpAQCAt
NzIzMiw3ICs3MjM1LDYgQEAKIAkJMUFCRkU3NTIwQ0Q5NjhEMDAwRkU0ODM0IC8qIFNRTFRyYW5z
YWN0aW9uLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFNRTFRyYW5z
YWN0aW9uLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMUFDMjI2MEEwREI2OUYx
OTAwODlCNjY5IC8qIEpTRE9NQXBwbGljYXRpb25DYWNoZS5jcHAgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5jcHA7IHBhdGggPSBKU0RPTUFwcGxpY2F0aW9uQ2FjaGUuY3BwOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQkxQUMyMjYwQjBEQjY5RjE5MDA4OUI2NjkgLyogSlNET01BcHBs
aWNhdGlvbkNhY2hlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTRE9NQXBw
bGljYXRpb25DYWNoZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQkxQUM2OTI2OTE0
QTEyNTMxMDBCRDg1RjEgLyogU2Nyb2xsYWJsZUFyZWFDbGllbnQuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gU2Nyb2xsYWJsZUFyZWFDbGllbnQuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJMUFDRTUzREQwQThEMTg4MTAwMjI5NDdEIC8qIEpTRE9NUGFyc2VyLmNw
cCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU0RPTVBhcnNlci5jcHA7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTFBQ0U1M0RFMEE4RDE4ODEwMDIyOTQ3RCAv
KiBKU0RPTVBhcnNlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNET01Q
YXJzZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMUFDRTUzRTEwQThEMThFNzAw
MjI5NDdEIC8qIERPTVBhcnNlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBw
YXRoID0gRE9NUGFyc2VyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTExODU2
LDYgKzExODU4LDkgQEAKIAkJQkMwNkYyNEMwNkQxOEE3RTAwNEE2RkEzIC8qIFhTTFRQcm9jZXNz
b3IuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgaW5k
ZW50V2lkdGggPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
WFNMVFByb2Nlc3Nvci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB0YWJXaWR0aCA9IDg7IHVz
ZXNUYWJzID0gMDsgfTsKIAkJQkMwNkYyNEQwNkQxOEE3RTAwNEE2RkEzIC8qIFhTTFRQcm9jZXNz
b3JMaWJ4c2x0LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSAzMDsgaW5kZW50V2lkdGggPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
LmNwcDsgcGF0aCA9IFhTTFRQcm9jZXNzb3JMaWJ4c2x0LmNwcDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgdGFiV2lkdGggPSA4OyB1c2VzVGFicyA9IDA7IH07CiAJCUJDMDczQkE5MEMzOTlCMUYw
MDBGNTk3OSAvKiBGbG9hdENvbnZlcnNpb24uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IEZsb2F0Q29udmVyc2lvbi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlC
QzBCMzU4MjE0QzRGOTU0MDA1NUUyMkEgLyogUnVuTG9vcE1hYy5tbSAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFJ1bkxvb3BNYWMubW07IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CisJCUJDMEIzNTg1MTRDNEY5ODMwMDU1RTIyQSAvKiBSdW5Mb29wLmNwcCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFJ1bkxvb3AuY3BwOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OworCQlCQzBCMzU4NjE0QzRGOTgzMDA1NUUyMkEgLyogUnVuTG9vcC5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBSdW5Mb29wLmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCUJDMEIzNkExMENEM0M2N0MwMEFDN0VCNSAvKiBDb25zb2xlLmNw
cCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBDb25zb2xlLmNwcDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQkMwQjM2QTIwQ0QzQzY3QzAwQUM3RUI1IC8qIENv
bnNvbGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IENvbnNvbGUuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQkMwQjM2QTMwQ0QzQzY3QzAwQUM3RUI1IC8qIENv
bnNvbGUuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMw
OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBDb25zb2xlLmlkbDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTE0OTQ1LDYgKzE0OTUwLDcgQEAKIAkJCQlEMzlEMDA2QzEx
RjhFMzA4MDA2MDQxRjIgLyogUG9wdXBNZW51TWFjLmggKi8sCiAJCQkJMDY2OEUxOEUwQUREOTY0
MDAwNDEyOEUwIC8qIFBvcHVwTWVudU1hYy5tbSAqLywKIAkJCQlFNEQ2ODc3NjBFRDdBRTNEMDA2
RUE5NzggLyogUHVyZ2VhYmxlQnVmZmVyTWFjLmNwcCAqLywKKwkJCQlCQzBCMzU4MjE0QzRGOTU0
MDA1NUUyMkEgLyogUnVuTG9vcE1hYy5tbSAqLywKIAkJCQkxQ0UyNEY5NjBEN0NBRjBFMDA3RTA0
QzIgLyogU2NoZWR1bGVQYWlyTWFjLm1tICovLAogCQkJCUJDQUUxRkE1MTI5MzlEQjcwMDRDQjAy
NiAvKiBTY3JvbGxBbmltYXRvck1hYy5oICovLAogCQkJCUJDNTExNTZEMTJCMTc0OUMwMEM5Njc1
NCAvKiBTY3JvbGxBbmltYXRvck1hYy5tbSAqLywKQEAgLTE5NjM3LDYgKzE5NjQzLDggQEAKIAkJ
CQlCQzNCRTEyQTBFOTgwOTJGMDA4MzU1ODggLyogUG9wdXBNZW51U3R5bGUuaCAqLywKIAkJCQlF
NEQ2ODc3ODBFRDdBRTRGMDA2RUE5NzggLyogUHVyZ2VhYmxlQnVmZmVyLmggKi8sCiAJCQkJN0Uz
M0NEMDAxMjdGMzQwRDAwQkU4RjE3IC8qIFB1cmdlUHJpb3JpdHkuaCAqLywKKwkJCQlCQzBCMzU4
NTE0QzRGOTgzMDA1NUUyMkEgLyogUnVuTG9vcC5jcHAgKi8sCisJCQkJQkMwQjM1ODYxNEM0Rjk4
MzAwNTVFMjJBIC8qIFJ1bkxvb3AuaCAqLywKIAkJCQkxQzYzQTI0NjBGNzE2NDY2MDBDMDlENUEg
LyogUnVuTG9vcFRpbWVyLmggKi8sCiAJCQkJMjkzRUFFMjAxMzU2QjMyRTAwNjdBQ0Y5IC8qIFJ1
bnRpbWVBcHBsaWNhdGlvbkNoZWNrcy5jcHAgKi8sCiAJCQkJMjkzRUFFMUUxMzU2QjJGRTAwNjdB
Q0Y5IC8qIFJ1bnRpbWVBcHBsaWNhdGlvbkNoZWNrcy5oICovLApAQCAtMTk2NDQsNyArMTk2NTIs
NiBAQAogCQkJCTUxNjJDN0YzMTFGNzdFRkIwMDYxMkVGRSAvKiBTY2hlbWVSZWdpc3RyeS5oICov
LAogCQkJCUJDOEFFMzRDMTJFQTA5NkEwMEVCM0FFNiAvKiBTY3JvbGxhYmxlQXJlYS5jcHAgKi8s
CiAJCQkJQkM4QUUzNEQxMkVBMDk2QTAwRUIzQUU2IC8qIFNjcm9sbGFibGVBcmVhLmggKi8sCi0J
CQkJMUFDNjkyNjkxNEExMjUzMTAwQkQ4NUYxIC8qIFNjcm9sbGFibGVBcmVhQ2xpZW50LmggKi8s
CiAJCQkJQ0EzQkY2N0IxMEQ5OUJBRTAwRTZDRTUzIC8qIFNjcm9sbEFuaW1hdG9yLmNwcCAqLywK
IAkJCQlDQTNCRjY3RDEwRDk5QkFFMDBFNkNFNTMgLyogU2Nyb2xsQW5pbWF0b3IuaCAqLywKIAkJ
CQlCQ0FBOTBDMjBBN0VCQTYwMDA4QjEyMjkgLyogU2Nyb2xsYmFyLmNwcCAqLywKQEAgLTI0MDQy
LDYgKzI0MDQ5LDcgQEAKIAkJCQlGRDUzNzM1MzEzN0I2NTE4MDAwMDhEQ0UgLyogWmVyb1BvbGUu
aCBpbiBIZWFkZXJzICovLAogCQkJCTUwOUNDOUZCMTRDMDY5RUQwMEJCRUNCRCAvKiBDdXN0b21G
aWx0ZXJQYXJhbWV0ZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTUwQ0MwODlBMTRDNkU5OUMwMDE3
QUI1MSAvKiBDdXN0b21GaWx0ZXJOdW1iZXJQYXJhbWV0ZXIuaCBpbiBIZWFkZXJzICovLAorCQkJ
CUJDMEIzNTg4MTRDNEY5ODMwMDU1RTIyQSAvKiBSdW5Mb29wLmggaW4gSGVhZGVycyAqLywKIAkJ
CSk7CiAJCQlydW5Pbmx5Rm9yRGVwbG95bWVudFBvc3Rwcm9jZXNzaW5nID0gMDsKIAkJfTsKQEAg
LTI2OTYxLDYgKzI2OTY5LDggQEAKIAkJCQk5NzdFMkUwRTEyRjBGQzlDMDBDMTMzNzkgLyogWFNT
QXVkaXRvci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlGRDUzNzM1MjEzN0I2NTE4MDAwMDhEQ0Ug
LyogWmVyb1BvbGUuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNTBDQzBBMzkxNEM2RjVCMTAwMTdB
QjUxIC8qIEN1c3RvbUZpbHRlck9wZXJhdGlvbi5jcHAgaW4gU291cmNlcyAqLywKKwkJCQlCQzBC
MzU4MzE0QzRGOTU0MDA1NUUyMkEgLyogUnVuTG9vcE1hYy5tbSBpbiBTb3VyY2VzICovLAorCQkJ
CUJDMEIzNTg3MTRDNEY5ODMwMDU1RTIyQSAvKiBSdW5Mb29wLmNwcCBpbiBTb3VyY2VzICovLAog
CQkJKTsKIAkJCXJ1bk9ubHlGb3JEZXBsb3ltZW50UG9zdHByb2Nlc3NpbmcgPSAwOwogCQl9Owpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vUnVuTG9vcC5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9SdW5Mb29wLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40NDFjNTg2M2Y2NmI2Njkw
MTAxODJmYjE1NGQ4YWRkNDM2MTNlMDk4Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vUnVuTG9vcC5jcHAKQEAgLTAsMCArMSw3NCBAQAorLyoKKyAqIENvcHlyaWdo
dCAoQykgMjAxMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Yg
c291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgor
ICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5k
L29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgor
ICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJ
QlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElF
UywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5U
SUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQ
VVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElU
UyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElO
Q0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdF
UyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJT
VElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsg
T1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBU
SEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJ
TElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJ
U0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYg
QURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNp
bmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJSdW5Mb29wLmgiCisKKyNpbmNsdWRlIDx3dGYv
U3RkTGliRXh0cmFzLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworc3RhdGljIFJ1bkxvb3Aq
IHNfbWFpblJ1bkxvb3A7CisKK3ZvaWQgUnVuTG9vcDo6aW5pdGlhbGl6ZU1haW5SdW5Mb29wKCkK
K3sKKyAgICBpZiAoc19tYWluUnVuTG9vcCkKKyAgICAgICAgcmV0dXJuOworICAgIHNfbWFpblJ1
bkxvb3AgPSBSdW5Mb29wOjpjdXJyZW50KCk7Cit9CisKK1J1bkxvb3AqIFJ1bkxvb3A6OmN1cnJl
bnQoKQoreworICAgIERFRklORV9TVEFUSUNfTE9DQUwoV1RGOjpUaHJlYWRTcGVjaWZpYzxSdW5M
b29wPiwgcnVuTG9vcERhdGEsICgpKTsKKyAgICByZXR1cm4gJipydW5Mb29wRGF0YTsKK30KKwor
UnVuTG9vcCogUnVuTG9vcDo6bWFpbigpCit7CisgICAgQVNTRVJUKHNfbWFpblJ1bkxvb3ApOwor
ICAgIHJldHVybiBzX21haW5SdW5Mb29wOworfQorCit2b2lkIFJ1bkxvb3A6OnBlcmZvcm1Xb3Jr
KCkKK3sKKyAgICBWZWN0b3I8RnVuY3Rpb248dm9pZCgpPiA+IGZ1bmN0aW9uUXVldWU7CisgICAg
eworICAgICAgICBNdXRleExvY2tlciBsb2NrZXIobV9mdW5jdGlvblF1ZXVlTG9jayk7CisgICAg
ICAgIG1fZnVuY3Rpb25RdWV1ZS5zd2FwKGZ1bmN0aW9uUXVldWUpOworICAgIH0KKworICAgIGZv
ciAoc2l6ZV90IGkgPSAwOyBpIDwgZnVuY3Rpb25RdWV1ZS5zaXplKCk7ICsraSkKKyAgICAgICAg
ZnVuY3Rpb25RdWV1ZVtpXSgpOworfQorCit2b2lkIFJ1bkxvb3A6OmRpc3BhdGNoKGNvbnN0IEZ1
bmN0aW9uPHZvaWQoKT4mIGZ1bmN0aW9uKQoreworICAgIE11dGV4TG9ja2VyIGxvY2tlcihtX2Z1
bmN0aW9uUXVldWVMb2NrKTsKKyAgICBtX2Z1bmN0aW9uUXVldWUuYXBwZW5kKGZ1bmN0aW9uKTsK
KworICAgIHdha2VVcCgpOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9SdW5Mb29wLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9SdW5Mb29wLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNmUwNDMyNmZlNTM3NmU5MjU2ZGI3MzZkZGY4Mjhh
OTUxMWZjZjhjNwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1J1
bkxvb3AuaApAQCAtMCwwICsxLDE2NSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMCBBcHBs
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAgTm9raWEg
Q29ycG9yYXRpb24gYW5kL29yIGl0cyBzdWJzaWRpYXJ5KC1pZXMpCisgKiBQb3J0aW9ucyBDb3B5
cmlnaHQgKGMpIDIwMTAgTW90b3JvbGEgTW9iaWxpdHksIEluYy4gIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBS
ZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11
c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAg
IGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBk
aXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJ
TkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9S
IElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBU
SEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1Ig
QSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFM
TCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJ
UkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENP
TlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NV
UkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwg
REFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBD
QVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05U
UkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1Ig
T1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMg
U09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gg
REFNQUdFLgorICovCisKKyNpZm5kZWYgUnVuTG9vcF9oCisjZGVmaW5lIFJ1bkxvb3BfaAorCisj
aW5jbHVkZSA8d3RmL0ZvcndhcmQuaD4KKyNpbmNsdWRlIDx3dGYvRnVuY3Rpb25hbC5oPgorI2lu
Y2x1ZGUgPHd0Zi9IYXNoTWFwLmg+CisjaW5jbHVkZSA8d3RmL1RocmVhZFNwZWNpZmljLmg+Cisj
aW5jbHVkZSA8d3RmL1RocmVhZGluZy5oPgorI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KKworI2lm
IFBMQVRGT1JNKEdUSykKKyNpbmNsdWRlIDx3dGYvZ29iamVjdC9HUmVmUHRyLmg+Cit0eXBlZGVm
IHN0cnVjdCBfR1NvdXJjZSBHU291cmNlOwordHlwZWRlZiBzdHJ1Y3QgX0dNYWluTG9vcCBHTWFp
bkxvb3A7Cit0eXBlZGVmIHN0cnVjdCBfR01haW5Db250ZXh0IEdNYWluQ29udGV4dDsKK3R5cGVk
ZWYgaW50IGdib29sZWFuOworI2VuZGlmCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3Mg
UnVuTG9vcCB7CitwdWJsaWM6CisgICAgLy8gTXVzdCBiZSBjYWxsZWQgZnJvbSB0aGUgbWFpbiB0
aHJlYWQuCisgICAgc3RhdGljIHZvaWQgaW5pdGlhbGl6ZU1haW5SdW5Mb29wKCk7CisKKyAgICBz
dGF0aWMgUnVuTG9vcCogY3VycmVudCgpOworICAgIHN0YXRpYyBSdW5Mb29wKiBtYWluKCk7CisK
KyAgICB2b2lkIGRpc3BhdGNoKGNvbnN0IEZ1bmN0aW9uPHZvaWQoKT4mKTsKKworICAgIHN0YXRp
YyB2b2lkIHJ1bigpOworICAgIHZvaWQgc3RvcCgpOworCisjaWYgUExBVEZPUk0oTUFDKQorICAg
IHZvaWQgcnVuRm9yRHVyYXRpb24oZG91YmxlIGR1cmF0aW9uKTsKKyNlbmRpZgorICAgIAorICAg
IGNsYXNzIFRpbWVyQmFzZSB7CisgICAgICAgIGZyaWVuZCBjbGFzcyBSdW5Mb29wOworICAgIHB1
YmxpYzoKKyAgICAgICAgVGltZXJCYXNlKFJ1bkxvb3AqKTsKKyAgICAgICAgdmlydHVhbCB+VGlt
ZXJCYXNlKCk7CisKKyAgICAgICAgdm9pZCBzdGFydFJlcGVhdGluZyhkb3VibGUgcmVwZWF0SW50
ZXJ2YWwpIHsgc3RhcnQocmVwZWF0SW50ZXJ2YWwsIHRydWUpOyB9CisgICAgICAgIHZvaWQgc3Rh
cnRPbmVTaG90KGRvdWJsZSBpbnRlcnZhbCkgeyBzdGFydChpbnRlcnZhbCwgZmFsc2UpOyB9CisK
KyAgICAgICAgdm9pZCBzdG9wKCk7CisgICAgICAgIGJvb2wgaXNBY3RpdmUoKSBjb25zdDsKKwor
ICAgICAgICB2aXJ0dWFsIHZvaWQgZmlyZWQoKSA9IDA7CisKKyAgICBwcml2YXRlOgorICAgICAg
ICB2b2lkIHN0YXJ0KGRvdWJsZSBuZXh0RmlyZUludGVydmFsLCBib29sIHJlcGVhdCk7CisKKyAg
ICAgICAgUnVuTG9vcCogbV9ydW5Mb29wOworCisjaWYgUExBVEZPUk0oV0lOKQorICAgICAgICBz
dGF0aWMgdm9pZCB0aW1lckZpcmVkKFJ1bkxvb3AqLCB1aW50NjRfdCBJRCk7CisgICAgICAgIHVp
bnQ2NF90IG1fSUQ7CisgICAgICAgIGJvb2wgbV9pc1JlcGVhdGluZzsKKyNlbGlmIFBMQVRGT1JN
KE1BQykKKyAgICAgICAgc3RhdGljIHZvaWQgdGltZXJGaXJlZChDRlJ1bkxvb3BUaW1lclJlZiwg
dm9pZCopOworICAgICAgICBDRlJ1bkxvb3BUaW1lclJlZiBtX3RpbWVyOworI2VsaWYgUExBVEZP
Uk0oUVQpCisgICAgICAgIHN0YXRpYyB2b2lkIHRpbWVyRmlyZWQoUnVuTG9vcCosIGludCBJRCk7
CisgICAgICAgIGludCBtX0lEOworICAgICAgICBib29sIG1faXNSZXBlYXRpbmc7CisjZWxpZiBQ
TEFURk9STShHVEspCisgICAgICAgIHN0YXRpYyBnYm9vbGVhbiB0aW1lckZpcmVkQ2FsbGJhY2so
UnVuTG9vcDo6VGltZXJCYXNlKik7CisgICAgICAgIGdib29sZWFuIGlzUmVwZWF0aW5nKCkgY29u
c3QgeyByZXR1cm4gbV9pc1JlcGVhdGluZzsgfQorICAgICAgICB2b2lkIGNsZWFyVGltZXJTb3Vy
Y2UoKTsKKyAgICAgICAgR1JlZlB0cjxHU291cmNlPiBtX3RpbWVyU291cmNlOworICAgICAgICBn
Ym9vbGVhbiBtX2lzUmVwZWF0aW5nOworI2VuZGlmCisgICAgfTsKKworICAgIHRlbXBsYXRlIDx0
eXBlbmFtZSBUaW1lckZpcmVkQ2xhc3M+CisgICAgY2xhc3MgVGltZXIgOiBwdWJsaWMgVGltZXJC
YXNlIHsKKyAgICBwdWJsaWM6CisgICAgICAgIHR5cGVkZWYgdm9pZCAoVGltZXJGaXJlZENsYXNz
OjoqVGltZXJGaXJlZEZ1bmN0aW9uKSgpOworCisgICAgICAgIFRpbWVyKFJ1bkxvb3AqIHJ1bkxv
b3AsIFRpbWVyRmlyZWRDbGFzcyogbywgVGltZXJGaXJlZEZ1bmN0aW9uIGYpCisgICAgICAgICAg
ICA6IFRpbWVyQmFzZShydW5Mb29wKQorICAgICAgICAgICAgLCBtX29iamVjdChvKQorICAgICAg
ICAgICAgLCBtX2Z1bmN0aW9uKGYpCisgICAgICAgIHsKKyAgICAgICAgfQorCisgICAgcHJpdmF0
ZToKKyAgICAgICAgdmlydHVhbCB2b2lkIGZpcmVkKCkgeyAobV9vYmplY3QtPiptX2Z1bmN0aW9u
KSgpOyB9CisKKyAgICAgICAgVGltZXJGaXJlZENsYXNzKiBtX29iamVjdDsKKyAgICAgICAgVGlt
ZXJGaXJlZEZ1bmN0aW9uIG1fZnVuY3Rpb247CisgICAgfTsKKworcHJpdmF0ZToKKyAgICBmcmll
bmQgY2xhc3MgV1RGOjpUaHJlYWRTcGVjaWZpYzxSdW5Mb29wPjsKKworICAgIFJ1bkxvb3AoKTsK
KyAgICB+UnVuTG9vcCgpOworCisgICAgdm9pZCBwZXJmb3JtV29yaygpOworICAgIHZvaWQgd2Fr
ZVVwKCk7CisKKyAgICBNdXRleCBtX2Z1bmN0aW9uUXVldWVMb2NrOworICAgIFZlY3RvcjxGdW5j
dGlvbjx2b2lkKCk+ID4gbV9mdW5jdGlvblF1ZXVlOworCisjaWYgUExBVEZPUk0oV0lOKQorICAg
IHN0YXRpYyBib29sIHJlZ2lzdGVyUnVuTG9vcE1lc3NhZ2VXaW5kb3dDbGFzcygpOworICAgIHN0
YXRpYyBMUkVTVUxUIENBTExCQUNLIFJ1bkxvb3BXbmRQcm9jKEhXTkQsIFVJTlQsIFdQQVJBTSwg
TFBBUkFNKTsKKyAgICBMUkVTVUxUIHduZFByb2MoSFdORCBoV25kLCBVSU5UIG1lc3NhZ2UsIFdQ
QVJBTSB3UGFyYW0sIExQQVJBTSBsUGFyYW0pOworICAgIEhXTkQgbV9ydW5Mb29wTWVzc2FnZVdp
bmRvdzsKKworICAgIHR5cGVkZWYgSGFzaE1hcDx1aW50NjRfdCwgVGltZXJCYXNlKj4gVGltZXJN
YXA7CisgICAgVGltZXJNYXAgbV9hY3RpdmVUaW1lcnM7CisjZWxpZiBQTEFURk9STShNQUMpCisg
ICAgc3RhdGljIHZvaWQgcGVyZm9ybVdvcmsodm9pZCopOworICAgIENGUnVuTG9vcFJlZiBtX3J1
bkxvb3A7CisgICAgQ0ZSdW5Mb29wU291cmNlUmVmIG1fcnVuTG9vcFNvdXJjZTsKKyAgICBpbnQg
bV9uZXN0aW5nTGV2ZWw7CisjZWxpZiBQTEFURk9STShRVCkKKyAgICB0eXBlZGVmIEhhc2hNYXA8
aW50LCBUaW1lckJhc2UqPiBUaW1lck1hcDsKKyAgICBUaW1lck1hcCBtX2FjdGl2ZVRpbWVyczsK
KyAgICBjbGFzcyBUaW1lck9iamVjdDsKKyAgICBUaW1lck9iamVjdCogbV90aW1lck9iamVjdDsK
KyNlbGlmIFBMQVRGT1JNKEdUSykKK3B1YmxpYzoKKyAgICBzdGF0aWMgZ2Jvb2xlYW4gcXVldWVX
b3JrKFJ1bkxvb3AqKTsKKyAgICBHTWFpbkxvb3AqIG1haW5Mb29wKCk7Citwcml2YXRlOgorICAg
IEdNYWluQ29udGV4dCogbV9ydW5Mb29wQ29udGV4dDsKKyAgICBHTWFpbkxvb3AqIG1fcnVuTG9v
cE1haW47CisjZW5kaWYKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8v
IFJ1bkxvb3BfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3RrL1J1bkxv
b3BHdGsuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3RrL1J1bkxvb3BHdGsuY3BwCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLjkyOWE3Yjk4ZWJmZTRjNjQ2OTE5YjMzNjI0NzRjZmE3YmM5MTQ1OWIKLS0tIC9k
ZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ndGsvUnVuTG9vcEd0ay5jcHAK
QEAgLTAsMCArMSwxMzcgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAgQXBwbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgorICogUG9ydGlvbnMgQ29weXJpZ2h0IChjKSAyMDEwIE1vdG9y
b2xhIE1vYmlsaXR5LCBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNv
dXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAq
IDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9v
ciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAq
IFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJV
VE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMs
IElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElF
UyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVS
UE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMg
Q09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJ
REVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMg
KElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJ
VFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9S
IEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhF
T1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJ
VFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJ
TkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFE
VklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5j
bHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiUnVuTG9vcC5oIgorCisjaW5jbHVkZSA8Z2xpYi5o
PgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK1J1bkxvb3A6OlJ1bkxvb3AoKQoreworICAgIG1f
cnVuTG9vcENvbnRleHQgPSBnX21haW5fY29udGV4dF9kZWZhdWx0KCk7CisgICAgQVNTRVJUKG1f
cnVuTG9vcENvbnRleHQpOworICAgIG1fcnVuTG9vcE1haW4gPSBnX21haW5fbG9vcF9uZXcobV9y
dW5Mb29wQ29udGV4dCwgRkFMU0UpOworICAgIEFTU0VSVChtX3J1bkxvb3BNYWluKTsKK30KKwor
UnVuTG9vcDo6flJ1bkxvb3AoKQoreworICAgIGlmIChtX3J1bkxvb3BNYWluKSB7CisgICAgICAg
IGlmIChnX21haW5fbG9vcF9pc19ydW5uaW5nKG1fcnVuTG9vcE1haW4pKQorICAgICAgICAgICAg
Z19tYWluX2xvb3BfcXVpdChtX3J1bkxvb3BNYWluKTsKKyAgICAgICAgZ19tYWluX2xvb3BfdW5y
ZWYobV9ydW5Mb29wTWFpbik7CisgICAgfQorCisgICAgaWYgKG1fcnVuTG9vcENvbnRleHQpCisg
ICAgICAgIGdfbWFpbl9jb250ZXh0X3VucmVmKG1fcnVuTG9vcENvbnRleHQpOworfQorCit2b2lk
IFJ1bkxvb3A6OnJ1bigpCit7CisgICAgZ19tYWluX2xvb3BfcnVuKFJ1bkxvb3A6Om1haW4oKS0+
bWFpbkxvb3AoKSk7Cit9CisKK0dNYWluTG9vcCogUnVuTG9vcDo6bWFpbkxvb3AoKQoreworICAg
IHJldHVybiBtX3J1bkxvb3BNYWluOworfQorCit2b2lkIFJ1bkxvb3A6OnN0b3AoKQoreworICAg
IGdfbWFpbl9sb29wX3F1aXQobV9ydW5Mb29wTWFpbik7Cit9CisKK2dib29sZWFuIFJ1bkxvb3A6
OnF1ZXVlV29yayhSdW5Mb29wKiBydW5Mb29wKQoreworICAgIHJ1bkxvb3AtPnBlcmZvcm1Xb3Jr
KCk7CisgICAgcmV0dXJuIEZBTFNFOworfQorCit2b2lkIFJ1bkxvb3A6Ondha2VVcCgpCit7Cisg
ICAgR1JlZlB0cjxHU291cmNlPiBzb3VyY2UgPSBhZG9wdEdSZWYoZ19pZGxlX3NvdXJjZV9uZXco
KSk7CisgICAgZ19zb3VyY2Vfc2V0X3ByaW9yaXR5KHNvdXJjZS5nZXQoKSwgR19QUklPUklUWV9E
RUZBVUxUKTsKKyAgICBnX3NvdXJjZV9zZXRfY2FsbGJhY2soc291cmNlLmdldCgpLCByZWludGVy
cHJldF9jYXN0PEdTb3VyY2VGdW5jPigmUnVuTG9vcDo6cXVldWVXb3JrKSwgdGhpcywgMCk7Cisg
ICAgZ19zb3VyY2VfYXR0YWNoKHNvdXJjZS5nZXQoKSwgbV9ydW5Mb29wQ29udGV4dCk7CisKKyAg
ICBnX21haW5fY29udGV4dF93YWtldXAobV9ydW5Mb29wQ29udGV4dCk7Cit9CisKK1J1bkxvb3A6
OlRpbWVyQmFzZTo6VGltZXJCYXNlKFJ1bkxvb3AqIHJ1bkxvb3ApCisgICAgOiBtX3J1bkxvb3Ao
cnVuTG9vcCkKKyAgICAsIG1fdGltZXJTb3VyY2UoMCkKK3sKK30KKworUnVuTG9vcDo6VGltZXJC
YXNlOjp+VGltZXJCYXNlKCkKK3sKKyAgICBzdG9wKCk7Cit9CisKK3ZvaWQgUnVuTG9vcDo6VGlt
ZXJCYXNlOjpjbGVhclRpbWVyU291cmNlKCkKK3sKKyAgICBtX3RpbWVyU291cmNlID0gMDsKK30K
KworZ2Jvb2xlYW4gUnVuTG9vcDo6VGltZXJCYXNlOjp0aW1lckZpcmVkQ2FsbGJhY2soUnVuTG9v
cDo6VGltZXJCYXNlKiB0aW1lcikKK3sKKyAgICBHU291cmNlKiBjdXJyZW50VGltZXJTb3VyY2Ug
PSB0aW1lci0+bV90aW1lclNvdXJjZS5nZXQoKTsKKyAgICBib29sIGlzUmVwZWF0aW5nID0gdGlt
ZXItPmlzUmVwZWF0aW5nKCk7CisgICAgLy8gVGhpcyBjYW4gY2hhbmdlIHRoZSB0aW1lclNvdXJj
ZSBieSBzdGFydGluZyBhIG5ldyB0aW1lciB3aXRoaW4gdGhlIGNhbGxiYWNrLgorICAgIHRpbWVy
LT5maXJlZCgpOworICAgIGlmICghaXNSZXBlYXRpbmcgJiYgY3VycmVudFRpbWVyU291cmNlID09
IHRpbWVyLT5tX3RpbWVyU291cmNlLmdldCgpKQorICAgICAgICB0aW1lci0+Y2xlYXJUaW1lclNv
dXJjZSgpOworICAgIHJldHVybiBpc1JlcGVhdGluZzsKK30KKwordm9pZCBSdW5Mb29wOjpUaW1l
ckJhc2U6OnN0YXJ0KGRvdWJsZSBmaXJlSW50ZXJ2YWwsIGJvb2wgcmVwZWF0KQoreworICAgIGlm
IChtX3RpbWVyU291cmNlKQorICAgICAgICBzdG9wKCk7CisKKyAgICBtX3RpbWVyU291cmNlID0g
YWRvcHRHUmVmKGdfdGltZW91dF9zb3VyY2VfbmV3KHN0YXRpY19jYXN0PGd1aW50PihmaXJlSW50
ZXJ2YWwgKiAxMDAwKSkpOworICAgIG1faXNSZXBlYXRpbmcgPSByZXBlYXQ7CisgICAgZ19zb3Vy
Y2Vfc2V0X2NhbGxiYWNrKG1fdGltZXJTb3VyY2UuZ2V0KCksIHJlaW50ZXJwcmV0X2Nhc3Q8R1Nv
dXJjZUZ1bmM+KCZSdW5Mb29wOjpUaW1lckJhc2U6OnRpbWVyRmlyZWRDYWxsYmFjayksIHRoaXMs
IDApOworICAgIGdfc291cmNlX2F0dGFjaChtX3RpbWVyU291cmNlLmdldCgpLCBtX3J1bkxvb3At
Pm1fcnVuTG9vcENvbnRleHQpOworfQorCit2b2lkIFJ1bkxvb3A6OlRpbWVyQmFzZTo6c3RvcCgp
Cit7CisgICAgaWYgKCFtX3RpbWVyU291cmNlKQorICAgICAgICByZXR1cm47CisKKyAgICBnX3Nv
dXJjZV9kZXN0cm95KG1fdGltZXJTb3VyY2UuZ2V0KCkpOworICAgIGNsZWFyVGltZXJTb3VyY2Uo
KTsKK30KKworYm9vbCBSdW5Mb29wOjpUaW1lckJhc2U6OmlzQWN0aXZlKCkgY29uc3QKK3sKKyAg
ICByZXR1cm4gbV90aW1lclNvdXJjZTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1J1bkxvb3BNYWMubW0gYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvUnVuTG9vcE1hYy5tbQpuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5hNTY3YWZk
ZDVjODc3Y2I1OGU5YjAzMTg4NDA4MjhkMGYwMTYwZDBlCi0tLSAvZGV2L251bGwKKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1J1bkxvb3BNYWMubW0KQEAgLTAsMCArMSwxNTcgQEAK
Ky8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVk
aXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0
IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBk
b2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlz
dHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5D
LiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJ
TVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhF
IElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEg
UEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwg
QVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJF
Q1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05T
RVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJF
TUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERB
VEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FV
U0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJB
Q1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9U
SEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNP
RlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERB
TUFHRS4KKyAqLworCisjaW1wb3J0ICJjb25maWcuaCIKKyNpbXBvcnQgIlJ1bkxvb3AuaCIKKwor
bmFtZXNwYWNlIFdlYkNvcmUgeworCit2b2lkIFJ1bkxvb3A6OnBlcmZvcm1Xb3JrKHZvaWQqIGNv
bnRleHQpCit7CisgICAgLy8gV3JhcCBtYWluIHRocmVhZCBpbiBhbiBBdXRvcmVsZWFzZSBwb29s
LiAgU2VuZGluZyBtZXNzYWdlcyBjYW4gY2FsbCAKKyAgICAvLyBpbnRvIG9iamMgY29kZSBhbmQg
YWNjdW11bGF0ZSBtZW1vcnkuICAKKyAgICBpZiAoY3VycmVudCgpID09IG1haW4oKSkgeworICAg
ICAgICBOU0F1dG9yZWxlYXNlUG9vbCAqcG9vbCA9IFtbTlNBdXRvcmVsZWFzZVBvb2wgYWxsb2Nd
IGluaXRdOworICAgICAgICBzdGF0aWNfY2FzdDxSdW5Mb29wKj4oY29udGV4dCktPnBlcmZvcm1X
b3JrKCk7CisgICAgICAgIFtwb29sIGRyYWluXTsKKyAgICB9IGVsc2UKKyAgICAgICAgc3RhdGlj
X2Nhc3Q8UnVuTG9vcCo+KGNvbnRleHQpLT5wZXJmb3JtV29yaygpOworfQorCitSdW5Mb29wOjpS
dW5Mb29wKCkKKyAgICA6IG1fcnVuTG9vcChDRlJ1bkxvb3BHZXRDdXJyZW50KCkpCisgICAgLCBt
X25lc3RpbmdMZXZlbCgwKQoreworICAgIENGUnVuTG9vcFNvdXJjZUNvbnRleHQgY29udGV4dCA9
IHsgMCwgdGhpcywgMCwgMCwgMCwgMCwgMCwgMCwgMCwgcGVyZm9ybVdvcmsgfTsKKyAgICBtX3J1
bkxvb3BTb3VyY2UgPSBDRlJ1bkxvb3BTb3VyY2VDcmVhdGUoa0NGQWxsb2NhdG9yRGVmYXVsdCwg
MCwgJmNvbnRleHQpOworICAgIENGUnVuTG9vcEFkZFNvdXJjZShtX3J1bkxvb3AsIG1fcnVuTG9v
cFNvdXJjZSwga0NGUnVuTG9vcENvbW1vbk1vZGVzKTsKK30KKworUnVuTG9vcDo6flJ1bkxvb3Ao
KQoreworICAgIC8vIEZJWE1FOiBUZWFyIGRvd24gdGhlIHdvcmsgaXRlbSBxdWV1ZSBoZXJlLgor
ICAgIENGUnVuTG9vcFNvdXJjZUludmFsaWRhdGUobV9ydW5Mb29wU291cmNlKTsKKyAgICBDRlJl
bGVhc2UobV9ydW5Mb29wU291cmNlKTsKK30KKwordm9pZCBSdW5Mb29wOjpydW4oKQoreworICAg
IGN1cnJlbnQoKS0+bV9uZXN0aW5nTGV2ZWwrKzsKKyAgICBpZiAoY3VycmVudCgpID09IG1haW4o
KSAmJiBjdXJyZW50KCktPm1fbmVzdGluZ0xldmVsID09IDEpIHsKKyAgICAgICAgLy8gVXNlIC1b
TlNBcHBsaWNhdGlvbiBydW5dIGZvciB0aGUgbWFpbiBydW4gbG9vcC4KKyAgICAgICAgW05TQXBw
IHJ1bl07CisgICAgfSBlbHNlIHsKKyAgICAgICAgTlNBdXRvcmVsZWFzZVBvb2wgKnBvb2wgPSBb
W05TQXV0b3JlbGVhc2VQb29sIGFsbG9jXSBpbml0XTsKKyAgICAgICAgQ0ZSdW5Mb29wUnVuKCk7
CisgICAgICAgIFtwb29sIGRyYWluXTsKKyAgICB9CisgICAgY3VycmVudCgpLT5tX25lc3RpbmdM
ZXZlbC0tOworfQorCit2b2lkIFJ1bkxvb3A6OnJ1bkZvckR1cmF0aW9uKGRvdWJsZSBkdXJhdGlv
bikKK3sKKyAgICBDRlJ1bkxvb3BSdW5Jbk1vZGUoa0NGUnVuTG9vcERlZmF1bHRNb2RlLCBkdXJh
dGlvbiwgdHJ1ZSk7Cit9CisKK3ZvaWQgUnVuTG9vcDo6c3RvcCgpCit7CisgICAgQVNTRVJUKG1f
cnVuTG9vcCA9PSBDRlJ1bkxvb3BHZXRDdXJyZW50KCkpOworICAgIAorICAgIGlmIChtX3J1bkxv
b3AgPT0gbWFpbigpLT5tX3J1bkxvb3AgJiYgbV9uZXN0aW5nTGV2ZWwgPT0gMSkgeworICAgICAg
ICBbTlNBcHAgc3RvcDpuaWxdOworICAgICAgICBOU0V2ZW50ICpldmVudCA9IFtOU0V2ZW50IG90
aGVyRXZlbnRXaXRoVHlwZTpOU0FwcGxpY2F0aW9uRGVmaW5lZAorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBsb2NhdGlvbjpOU01ha2VQb2ludCgwLCAwKQorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbW9kaWZpZXJGbGFnczowCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGltZXN0YW1wOjAuMAorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aW5kb3dOdW1iZXI6MAorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29udGV4dDpuaWwKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN1YnR5cGU6IDAKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0YTE6MAorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRhMjowXTsKKyAg
ICAgICAgW05TQXBwIHBvc3RFdmVudDpldmVudCBhdFN0YXJ0OnRydWVdOworICAgIH0gZWxzZQor
ICAgICAgICBDRlJ1bkxvb3BTdG9wKG1fcnVuTG9vcCk7Cit9CisKK3ZvaWQgUnVuTG9vcDo6d2Fr
ZVVwKCkKK3sKKyAgICBDRlJ1bkxvb3BTb3VyY2VTaWduYWwobV9ydW5Mb29wU291cmNlKTsKKyAg
ICBDRlJ1bkxvb3BXYWtlVXAobV9ydW5Mb29wKTsKK30KKworLy8gUnVuTG9vcDo6VGltZXIKKwor
dm9pZCBSdW5Mb29wOjpUaW1lckJhc2U6OnRpbWVyRmlyZWQoQ0ZSdW5Mb29wVGltZXJSZWYsIHZv
aWQqIGNvbnRleHQpCit7CisgICAgVGltZXJCYXNlKiB0aW1lciA9IHN0YXRpY19jYXN0PFRpbWVy
QmFzZSo+KGNvbnRleHQpOworICAgIAorICAgIC8vIFdyYXAgbWFpbiB0aHJlYWQgaW4gYW4gQXV0
b3JlbGVhc2UgcG9vbC4gIFRoZSB0aW1lciBjYW4gY2FsbCAKKyAgICAvLyBpbnRvIG9iamMgY29k
ZSBhbmQgYWNjdW11bGF0ZSBtZW1vcnkgb3V0c2lkZSBvZiB0aGUgbWFpbiBldmVudCBsb29wLgor
ICAgIGlmIChjdXJyZW50KCkgPT0gbWFpbigpKSB7CisgICAgICAgIE5TQXV0b3JlbGVhc2VQb29s
ICpwb29sID0gW1tOU0F1dG9yZWxlYXNlUG9vbCBhbGxvY10gaW5pdF07IAorICAgICAgICB0aW1l
ci0+ZmlyZWQoKTsKKyAgICAgICAgW3Bvb2wgZHJhaW5dOworICAgIH0gZWxzZQorICAgICAgICB0
aW1lci0+ZmlyZWQoKTsKK30KKworUnVuTG9vcDo6VGltZXJCYXNlOjpUaW1lckJhc2UoUnVuTG9v
cCogcnVuTG9vcCkKKyAgICA6IG1fcnVuTG9vcChydW5Mb29wKQorICAgICwgbV90aW1lcigwKQor
eworfQorCitSdW5Mb29wOjpUaW1lckJhc2U6On5UaW1lckJhc2UoKQoreworICAgIHN0b3AoKTsK
K30KKwordm9pZCBSdW5Mb29wOjpUaW1lckJhc2U6OnN0YXJ0KGRvdWJsZSBuZXh0RmlyZUludGVy
dmFsLCBib29sIHJlcGVhdCkKK3sKKyAgICBpZiAobV90aW1lcikKKyAgICAgICAgc3RvcCgpOwor
CisgICAgQ0ZSdW5Mb29wVGltZXJDb250ZXh0IGNvbnRleHQgPSB7IDAsIHRoaXMsIDAsIDAsIDAg
fTsKKyAgICBDRlRpbWVJbnRlcnZhbCByZXBlYXRJbnRlcnZhbCA9IHJlcGVhdCA/IG5leHRGaXJl
SW50ZXJ2YWwgOiAwOworICAgIG1fdGltZXIgPSBDRlJ1bkxvb3BUaW1lckNyZWF0ZShrQ0ZBbGxv
Y2F0b3JEZWZhdWx0LCBDRkFic29sdXRlVGltZUdldEN1cnJlbnQoKSArIG5leHRGaXJlSW50ZXJ2
YWwsIHJlcGVhdEludGVydmFsLCAwLCAwLCB0aW1lckZpcmVkLCAmY29udGV4dCk7CisgICAgQ0ZS
dW5Mb29wQWRkVGltZXIobV9ydW5Mb29wLT5tX3J1bkxvb3AsIG1fdGltZXIsIGtDRlJ1bkxvb3BD
b21tb25Nb2Rlcyk7Cit9CisKK3ZvaWQgUnVuTG9vcDo6VGltZXJCYXNlOjpzdG9wKCkKK3sKKyAg
ICBpZiAoIW1fdGltZXIpCisgICAgICAgIHJldHVybjsKKworICAgIENGUnVuTG9vcFRpbWVySW52
YWxpZGF0ZShtX3RpbWVyKTsKKyAgICBDRlJlbGVhc2UobV90aW1lcik7CisgICAgbV90aW1lciA9
IDA7Cit9CisKK2Jvb2wgUnVuTG9vcDo6VGltZXJCYXNlOjppc0FjdGl2ZSgpIGNvbnN0Cit7Cisg
ICAgcmV0dXJuIG1fdGltZXIgJiYgQ0ZSdW5Mb29wVGltZXJJc1ZhbGlkKG1fdGltZXIpOworfQor
Cit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9xdC9SdW5Mb29wUXQuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vcXQvUnVuTG9v
cFF0LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi4yYTg3ZTJmYzhmNjY3Nzc2OWY3MzE0M2U1NzFlMDljNWE1NGM2
ZWJhCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vcXQvUnVuTG9v
cFF0LmNwcApAQCAtMCwwICsxLDE2NiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMCBBcHBs
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAgTm9raWEg
Q29ycG9yYXRpb24gYW5kL29yIGl0cyBzdWJzaWRpYXJ5KC1pZXMpCisgKgorICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291
cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICog
Mi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29y
IG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICog
VEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVU
T1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywg
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVT
IE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQ
T1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBD
T05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lE
RU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAo
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElU
VVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1Ig
QlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVP
UlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElU
WSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lO
RyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURW
SVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNs
dWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJSdW5Mb29wLmgiCisKKyNpbmNsdWRlIDxRQWJzdHJh
Y3RFdmVudERpc3BhdGNoZXI+CisjaW5jbHVkZSA8UUNvcmVBcHBsaWNhdGlvbj4KKyNpbmNsdWRl
IDxRTWV0YU1ldGhvZD4KKyNpbmNsdWRlIDxRTWV0YU9iamVjdD4KKyNpbmNsdWRlIDxRT2JqZWN0
PgorI2luY2x1ZGUgPFFUaW1lckV2ZW50PgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNz
IFJ1bkxvb3A6OlRpbWVyT2JqZWN0IDogcHVibGljIFFPYmplY3QgeworICAgIFFfT0JKRUNUCitw
dWJsaWM6CisgICAgVGltZXJPYmplY3QoUnVuTG9vcCogcnVuTG9vcCkgOiBtX3J1bkxvb3AocnVu
TG9vcCkKKyAgICB7CisgICAgICAgIGludCBtZXRob2RJbmRleCA9IG1ldGFPYmplY3QoKS0+aW5k
ZXhPZk1ldGhvZCgicGVyZm9ybVdvcmsoKSIpOworICAgICAgICBtX21ldGhvZCA9IG1ldGFPYmpl
Y3QoKS0+bWV0aG9kKG1ldGhvZEluZGV4KTsKKyAgICB9CisKKyAgICBRX1NMT1Qgdm9pZCBwZXJm
b3JtV29yaygpIHsgbV9ydW5Mb29wLT5wZXJmb3JtV29yaygpOyB9CisgICAgaW5saW5lIHZvaWQg
d2FrZVVwKCkgeyBtX21ldGhvZC5pbnZva2UodGhpcywgUXQ6OlF1ZXVlZENvbm5lY3Rpb24pOyB9
CisKK3Byb3RlY3RlZDoKKyAgICB2aXJ0dWFsIHZvaWQgdGltZXJFdmVudChRVGltZXJFdmVudCog
ZXZlbnQpCisgICAgeworICAgICAgICBSdW5Mb29wOjpUaW1lckJhc2U6OnRpbWVyRmlyZWQobV9y
dW5Mb29wLCBldmVudC0+dGltZXJJZCgpKTsKKyAgICB9CisKK3ByaXZhdGU6CisgICAgUnVuTG9v
cCogbV9ydW5Mb29wOworICAgIFFNZXRhTWV0aG9kIG1fbWV0aG9kOworfTsKKworc3RhdGljIFFF
dmVudExvb3AqIGN1cnJlbnRFdmVudExvb3A7CisKK3ZvaWQgUnVuTG9vcDo6cnVuKCkKK3sKKyAg
ICBzdGF0aWMgYm9vbCBtYWluRXZlbnRMb29wSXNSdW5uaW5nID0gZmFsc2U7CisgICAgaWYgKCFt
YWluRXZlbnRMb29wSXNSdW5uaW5nKSB7CisgICAgICAgIG1haW5FdmVudExvb3BJc1J1bm5pbmcg
PSB0cnVlOworICAgICAgICBRQ29yZUFwcGxpY2F0aW9uOjpleGVjKCk7CisgICAgICAgIG1haW5F
dmVudExvb3BJc1J1bm5pbmcgPSBmYWxzZTsKKyAgICB9IGVsc2UgeworICAgICAgICBRRXZlbnRM
b29wIGV2ZW50TG9vcDsKKworICAgICAgICBRRXZlbnRMb29wKiBwcmV2aW91c0V2ZW50TG9vcCA9
IGN1cnJlbnRFdmVudExvb3A7CisgICAgICAgIGN1cnJlbnRFdmVudExvb3AgPSAmZXZlbnRMb29w
OworCisgICAgICAgIGV2ZW50TG9vcC5leGVjKCk7CisKKyAgICAgICAgY3VycmVudEV2ZW50TG9v
cCA9IHByZXZpb3VzRXZlbnRMb29wOworICAgIH0KK30KKwordm9pZCBSdW5Mb29wOjpzdG9wKCkK
K3sKKyAgICBpZiAoY3VycmVudEV2ZW50TG9vcCkKKyAgICAgICAgY3VycmVudEV2ZW50TG9vcC0+
ZXhpdCgpOworICAgIGVsc2UKKyAgICAgICAgUUNvcmVBcHBsaWNhdGlvbjo6ZXhpdCgpOworfQor
CitSdW5Mb29wOjpSdW5Mb29wKCkKKyAgICA6IG1fdGltZXJPYmplY3QobmV3IFRpbWVyT2JqZWN0
KHRoaXMpKQoreworfQorCitSdW5Mb29wOjp+UnVuTG9vcCgpCit7CisgICAgZGVsZXRlIG1fdGlt
ZXJPYmplY3Q7Cit9CisKK3ZvaWQgUnVuTG9vcDo6d2FrZVVwKCkKK3sKKyAgICBtX3RpbWVyT2Jq
ZWN0LT53YWtlVXAoKTsKK30KKworLy8gUnVuTG9vcDo6VGltZXIKKwordm9pZCBSdW5Mb29wOjpU
aW1lckJhc2U6OnRpbWVyRmlyZWQoUnVuTG9vcCogcnVuTG9vcCwgaW50IElEKQoreworICAgIFRp
bWVyTWFwOjppdGVyYXRvciBpdCA9IHJ1bkxvb3AtPm1fYWN0aXZlVGltZXJzLmZpbmQoSUQpOwor
ICAgIEFTU0VSVChpdCAhPSBydW5Mb29wLT5tX2FjdGl2ZVRpbWVycy5lbmQoKSk7CisgICAgVGlt
ZXJCYXNlKiB0aW1lciA9IGl0LT5zZWNvbmQ7CisKKyAgICBpZiAoIXRpbWVyLT5tX2lzUmVwZWF0
aW5nKSB7CisgICAgICAgIC8vIFN0b3AgdGhlIHRpbWVyIChjYWxsaW5nIHN0b3Agd291bGQgbmVl
ZCBhbm90aGVyIGhhc2ggdGFibGUgbG9va3VwKS4KKyAgICAgICAgcnVuTG9vcC0+bV9hY3RpdmVU
aW1lcnMucmVtb3ZlKGl0KTsKKyAgICAgICAgcnVuTG9vcC0+bV90aW1lck9iamVjdC0+a2lsbFRp
bWVyKHRpbWVyLT5tX0lEKTsKKyAgICAgICAgdGltZXItPm1fSUQgPSAwOworICAgIH0KKworICAg
IHRpbWVyLT5maXJlZCgpOworfQorCitSdW5Mb29wOjpUaW1lckJhc2U6OlRpbWVyQmFzZShSdW5M
b29wKiBydW5Mb29wKQorICAgIDogbV9ydW5Mb29wKHJ1bkxvb3ApCisgICAgLCBtX0lEKDApCisg
ICAgLCBtX2lzUmVwZWF0aW5nKGZhbHNlKQoreworfQorCitSdW5Mb29wOjpUaW1lckJhc2U6On5U
aW1lckJhc2UoKQoreworICAgIHN0b3AoKTsKK30KKwordm9pZCBSdW5Mb29wOjpUaW1lckJhc2U6
OnN0YXJ0KGRvdWJsZSBuZXh0RmlyZUludGVydmFsLCBib29sIHJlcGVhdCkKK3sKKyAgICBzdG9w
KCk7CisgICAgaW50IG1pbGxpcyA9IHN0YXRpY19jYXN0PGludD4obmV4dEZpcmVJbnRlcnZhbCAq
IDEwMDApOworICAgIG1faXNSZXBlYXRpbmcgPSByZXBlYXQ7CisgICAgbV9JRCA9IG1fcnVuTG9v
cC0+bV90aW1lck9iamVjdC0+c3RhcnRUaW1lcihtaWxsaXMpOworICAgIEFTU0VSVChtX0lEKTsK
KyAgICBtX3J1bkxvb3AtPm1fYWN0aXZlVGltZXJzLnNldChtX0lELCB0aGlzKTsKK30KKwordm9p
ZCBSdW5Mb29wOjpUaW1lckJhc2U6OnN0b3AoKQoreworICAgIGlmICghbV9JRCkKKyAgICAgICAg
cmV0dXJuOworICAgIFRpbWVyTWFwOjppdGVyYXRvciBpdCA9IG1fcnVuTG9vcC0+bV9hY3RpdmVU
aW1lcnMuZmluZChtX0lEKTsKKyAgICBpZiAoaXQgPT0gbV9ydW5Mb29wLT5tX2FjdGl2ZVRpbWVy
cy5lbmQoKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgbV9ydW5Mb29wLT5tX2FjdGl2ZVRpbWVy
cy5yZW1vdmUoaXQpOworICAgIG1fcnVuTG9vcC0+bV90aW1lck9iamVjdC0+a2lsbFRpbWVyKG1f
SUQpOworICAgIG1fSUQgPSAwOworfQorCitib29sIFJ1bkxvb3A6OlRpbWVyQmFzZTo6aXNBY3Rp
dmUoKSBjb25zdAoreworICAgIHJldHVybiBtX0lEOworfQorCisjaW5jbHVkZSAiUnVuTG9vcFF0
Lm1vYyIKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vd2luL1J1bkxvb3BXaW4uY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
d2luL1J1bkxvb3BXaW4uY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjEyMGMyNTJhNjY4NmYyYjVjZTNkYWRkOWI2
NDRkMDAwY2NkNWIzNWQKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS93aW4vUnVuTG9vcFdpbi5jcHAKQEAgLTAsMCArMSwxODEgQEAKKy8qCisgKiBDb3B5cmlnaHQg
KEMpIDIwMTAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNv
dXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAq
IDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9v
ciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAq
IFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJV
VE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMs
IElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElF
UyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVS
UE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMg
Q09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJ
REVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMg
KElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJ
VFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9S
IEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhF
T1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJ
VFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJ
TkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFE
VklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5j
bHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiUnVuTG9vcC5oIgorCisjaW5jbHVkZSA8d3RmL0N1
cnJlbnRUaW1lLmg+CisKK3VzaW5nIG5hbWVzcGFjZSBzdGQ7CisKK25hbWVzcGFjZSBXZWJDb3Jl
IHsKKworc3RhdGljIGNvbnN0IFVJTlQgUGVyZm9ybVdvcmtNZXNzYWdlID0gV01fVVNFUiArIDE7
CitzdGF0aWMgY29uc3QgTFBXU1RSIGtSdW5Mb29wTWVzc2FnZVdpbmRvd0NsYXNzTmFtZSA9IEwi
UnVuTG9vcE1lc3NhZ2VXaW5kb3ciOworCitMUkVTVUxUIENBTExCQUNLIFJ1bkxvb3A6OlJ1bkxv
b3BXbmRQcm9jKEhXTkQgaFduZCwgVUlOVCBtZXNzYWdlLCBXUEFSQU0gd1BhcmFtLCBMUEFSQU0g
bFBhcmFtKQoreworICAgIExPTkdfUFRSIGxvbmdQdHIgPSA6OkdldFdpbmRvd0xvbmdQdHIoaFdu
ZCwgMCk7CisgICAgCisgICAgaWYgKFJ1bkxvb3AqIHJ1bkxvb3AgPSByZWludGVycHJldF9jYXN0
PFJ1bkxvb3AqPihsb25nUHRyKSkKKyAgICAgICAgcmV0dXJuIHJ1bkxvb3AtPnduZFByb2MoaFdu
ZCwgbWVzc2FnZSwgd1BhcmFtLCBsUGFyYW0pOworCisgICAgaWYgKG1lc3NhZ2UgPT0gV01fQ1JF
QVRFKSB7CisgICAgICAgIExQQ1JFQVRFU1RSVUNUIGNyZWF0ZVN0cnVjdCA9IHJlaW50ZXJwcmV0
X2Nhc3Q8TFBDUkVBVEVTVFJVQ1Q+KGxQYXJhbSk7CisKKyAgICAgICAgLy8gQXNzb2NpYXRlIHRo
ZSBSdW5Mb29wIHdpdGggdGhlIHdpbmRvdy4KKyAgICAgICAgOjpTZXRXaW5kb3dMb25nUHRyKGhX
bmQsIDAsIChMT05HX1BUUiljcmVhdGVTdHJ1Y3QtPmxwQ3JlYXRlUGFyYW1zKTsKKyAgICAgICAg
cmV0dXJuIDA7CisgICAgfQorCisgICAgcmV0dXJuIDo6RGVmV2luZG93UHJvYyhoV25kLCBtZXNz
YWdlLCB3UGFyYW0sIGxQYXJhbSk7Cit9CisKK0xSRVNVTFQgUnVuTG9vcDo6d25kUHJvYyhIV05E
IGhXbmQsIFVJTlQgbWVzc2FnZSwgV1BBUkFNIHdQYXJhbSwgTFBBUkFNIGxQYXJhbSkKK3sKKyAg
ICBzd2l0Y2ggKG1lc3NhZ2UpIHsKKyAgICBjYXNlIFBlcmZvcm1Xb3JrTWVzc2FnZToKKyAgICAg
ICAgcGVyZm9ybVdvcmsoKTsKKyAgICAgICAgcmV0dXJuIDA7CisgICAgY2FzZSBXTV9USU1FUjoK
KyAgICAgICAgUnVuTG9vcDo6VGltZXJCYXNlOjp0aW1lckZpcmVkKHRoaXMsIHdQYXJhbSk7Cisg
ICAgICAgIHJldHVybiAwOworICAgIH0KKworICAgIHJldHVybiA6OkRlZldpbmRvd1Byb2MoaFdu
ZCwgbWVzc2FnZSwgd1BhcmFtLCBsUGFyYW0pOworfQorCit2b2lkIFJ1bkxvb3A6OnJ1bigpCit7
CisgICAgTVNHIG1lc3NhZ2U7CisgICAgd2hpbGUgKEJPT0wgcmVzdWx0ID0gOjpHZXRNZXNzYWdl
KCZtZXNzYWdlLCAwLCAwLCAwKSkgeworICAgICAgICBpZiAocmVzdWx0ID09IC0xKQorICAgICAg
ICAgICAgYnJlYWs7CisgICAgICAgIDo6VHJhbnNsYXRlTWVzc2FnZSgmbWVzc2FnZSk7CisgICAg
ICAgIDo6RGlzcGF0Y2hNZXNzYWdlKCZtZXNzYWdlKTsKKyAgICB9Cit9CisKK3ZvaWQgUnVuTG9v
cDo6c3RvcCgpCit7CisgICAgOjpQb3N0UXVpdE1lc3NhZ2UoMCk7Cit9CisKK2Jvb2wgUnVuTG9v
cDo6cmVnaXN0ZXJSdW5Mb29wTWVzc2FnZVdpbmRvd0NsYXNzKCkKK3sKKyAgICAvLyBGSVhNRTog
VGhpcyByZWFsbHkgb25seSBuZWVkcyB0byBiZSBjYWxsZWQgb25jZS4KKworICAgIFdORENMQVNT
RVggd2luZG93Q2xhc3MgPSB7IDAgfTsKKyAgICB3aW5kb3dDbGFzcy5jYlNpemUgICAgICAgICAg
PSBzaXplb2Yod2luZG93Q2xhc3MpOworICAgIHdpbmRvd0NsYXNzLmxwZm5XbmRQcm9jICAgICA9
IFJ1bkxvb3A6OlJ1bkxvb3BXbmRQcm9jOworICAgIHdpbmRvd0NsYXNzLmNiV25kRXh0cmEgICAg
ICA9IHNpemVvZihSdW5Mb29wKik7CisgICAgd2luZG93Q2xhc3MubHBzekNsYXNzTmFtZSAgID0g
a1J1bkxvb3BNZXNzYWdlV2luZG93Q2xhc3NOYW1lOworCisgICAgcmV0dXJuICEhOjpSZWdpc3Rl
ckNsYXNzRXgoJndpbmRvd0NsYXNzKTsKK30KKworUnVuTG9vcDo6UnVuTG9vcCgpCit7CisgICAg
cmVnaXN0ZXJSdW5Mb29wTWVzc2FnZVdpbmRvd0NsYXNzKCk7CisKKyAgICBtX3J1bkxvb3BNZXNz
YWdlV2luZG93ID0gOjpDcmVhdGVXaW5kb3coa1J1bkxvb3BNZXNzYWdlV2luZG93Q2xhc3NOYW1l
LCAwLCAwLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDV19V
U0VERUZBVUxULCAwLCBDV19VU0VERUZBVUxULCAwLAorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBIV05EX01FU1NBR0UsIDAsIDAsIHRoaXMpOworICAgIEFTU0VS
VCg6OklzV2luZG93KG1fcnVuTG9vcE1lc3NhZ2VXaW5kb3cpKTsKK30KKworUnVuTG9vcDo6flJ1
bkxvb3AoKQoreworICAgIC8vIEZJWE1FOiBUZWFyIGRvd24gdGhlIHdvcmsgaXRlbSBxdWV1ZSBo
ZXJlLgorfQorCit2b2lkIFJ1bkxvb3A6Ondha2VVcCgpCit7CisgICAgLy8gRklYTUU6IE5vIG5l
ZWQgdG8gd2FrZSB1cCB0aGUgcnVuIGxvb3AgaWYgd2UndmUgYWxyZWFkeSBjYWxsZWQgZGlzcGF0
Y2gKKyAgICAvLyBiZWZvcmUgdGhlIHJ1biBsb29wIGhhcyBoYWQgdGhlIHRpbWUgdG8gcmVzcG9u
ZC4KKyAgICA6OlBvc3RNZXNzYWdlKG1fcnVuTG9vcE1lc3NhZ2VXaW5kb3csIFBlcmZvcm1Xb3Jr
TWVzc2FnZSwgcmVpbnRlcnByZXRfY2FzdDxXUEFSQU0+KHRoaXMpLCAwKTsKK30KKworLy8gUnVu
TG9vcDo6VGltZXIKKwordm9pZCBSdW5Mb29wOjpUaW1lckJhc2U6OnRpbWVyRmlyZWQoUnVuTG9v
cCogcnVuTG9vcCwgdWludDY0X3QgSUQpCit7CisgICAgVGltZXJNYXA6Oml0ZXJhdG9yIGl0ID0g
cnVuTG9vcC0+bV9hY3RpdmVUaW1lcnMuZmluZChJRCk7CisgICAgaWYgKGl0ID09IHJ1bkxvb3At
Pm1fYWN0aXZlVGltZXJzLmVuZCgpKSB7CisgICAgICAgIC8vIFRoZSB0aW1lciBtdXN0IGhhdmUg
YmVlbiBzdG9wcGVkIGFmdGVyIHRoZSBXTV9USU1FUiBtZXNzYWdlIHdhcyBwb3N0ZWQgdG8gdGhl
IG1lc3NhZ2UgcXVldWUuCisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBUaW1lckJhc2Uq
IHRpbWVyID0gaXQtPnNlY29uZDsKKworICAgIGlmICghdGltZXItPm1faXNSZXBlYXRpbmcpIHsK
KyAgICAgICAgcnVuTG9vcC0+bV9hY3RpdmVUaW1lcnMucmVtb3ZlKGl0KTsKKyAgICAgICAgOjpL
aWxsVGltZXIocnVuTG9vcC0+bV9ydW5Mb29wTWVzc2FnZVdpbmRvdywgSUQpOworICAgIH0KKwor
ICAgIHRpbWVyLT5maXJlZCgpOworfQorCitzdGF0aWMgdWludDY0X3QgZ2VuZXJhdGVUaW1lcklE
KCkKK3sKKyAgICBzdGF0aWMgdWludDY0X3QgdW5pcXVlVGltZXJJRCA9IDE7CisgICAgcmV0dXJu
IHVuaXF1ZVRpbWVySUQrKzsKK30KKworUnVuTG9vcDo6VGltZXJCYXNlOjpUaW1lckJhc2UoUnVu
TG9vcCogcnVuTG9vcCkKKyAgICA6IG1fcnVuTG9vcChydW5Mb29wKQorICAgICwgbV9JRChnZW5l
cmF0ZVRpbWVySUQoKSkKKyAgICAsIG1faXNSZXBlYXRpbmcoZmFsc2UpCit7Cit9CisKK1J1bkxv
b3A6OlRpbWVyQmFzZTo6flRpbWVyQmFzZSgpCit7CisgICAgc3RvcCgpOworfQorCit2b2lkIFJ1
bkxvb3A6OlRpbWVyQmFzZTo6c3RhcnQoZG91YmxlIG5leHRGaXJlSW50ZXJ2YWwsIGJvb2wgcmVw
ZWF0KQoreworICAgIG1faXNSZXBlYXRpbmcgPSByZXBlYXQ7CisgICAgbV9ydW5Mb29wLT5tX2Fj
dGl2ZVRpbWVycy5zZXQobV9JRCwgdGhpcyk7CisgICAgOjpTZXRUaW1lcihtX3J1bkxvb3AtPm1f
cnVuTG9vcE1lc3NhZ2VXaW5kb3csIG1fSUQsIG5leHRGaXJlSW50ZXJ2YWwgKiAxMDAwLCAwKTsK
K30KKwordm9pZCBSdW5Mb29wOjpUaW1lckJhc2U6OnN0b3AoKQoreworICAgIFRpbWVyTWFwOjpp
dGVyYXRvciBpdCA9IG1fcnVuTG9vcC0+bV9hY3RpdmVUaW1lcnMuZmluZChtX0lEKTsKKyAgICBp
ZiAoaXQgPT0gbV9ydW5Mb29wLT5tX2FjdGl2ZVRpbWVycy5lbmQoKSkKKyAgICAgICAgcmV0dXJu
OworCisgICAgbV9ydW5Mb29wLT5tX2FjdGl2ZVRpbWVycy5yZW1vdmUoaXQpOworICAgIDo6S2ls
bFRpbWVyKG1fcnVuTG9vcC0+bV9ydW5Mb29wTWVzc2FnZVdpbmRvdywgbV9JRCk7Cit9CisKK2Jv
b2wgUnVuTG9vcDo6VGltZXJCYXNlOjppc0FjdGl2ZSgpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1f
cnVuTG9vcC0+bV9hY3RpdmVUaW1lcnMuY29udGFpbnMobV9JRCk7Cit9CisKK30gLy8gbmFtZXNw
YWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0dOVW1ha2VmaWxlLmFtIGIv
U291cmNlL1dlYktpdDIvR05VbWFrZWZpbGUuYW0KaW5kZXggYTc3MWI5ZDhkNGMzODE1ZWI3NWQy
ODBlMWExYzcyZjhmODBmMTE4YS4uOGIyNmM1ZWZiMmQxYzdjYmVhZDIyOTY2MDliMzM1MjVmNjFk
ZDBjNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvR05VbWFrZWZpbGUuYW0KKysrIGIvU291
cmNlL1dlYktpdDIvR05VbWFrZWZpbGUuYW0KQEAgLTIwOSwxNSArMjA5LDEyIEBAIGxpYndlYmtp
dDJndGtfQFdFQktJVEdUS19BUElfTUFKT1JfVkVSU0lPTkBfQFdFQktJVEdUS19BUElfTUlOT1Jf
VkVSU0lPTkBfbGFfU09VCiAJU291cmNlL1dlYktpdDIvUGxhdGZvcm0vQ29yZUlQQy91bml4L0Nv
bm5lY3Rpb25Vbml4LmNwcCBcCiAJU291cmNlL1dlYktpdDIvUGxhdGZvcm0vZ3RrL0xvZ2dpbmdH
dGsuY3BwIFwKIAlTb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9ndGsvTW9kdWxlR3RrLmNwcCBcCi0J
U291cmNlL1dlYktpdDIvUGxhdGZvcm0vZ3RrL1J1bkxvb3BHdGsuY3BwIFwKIAlTb3VyY2UvV2Vi
S2l0Mi9QbGF0Zm9ybS9ndGsvV29ya1F1ZXVlR3RrLmNwcCBcCiAJU291cmNlL1dlYktpdDIvUGxh
dGZvcm0vTG9nZ2luZy5jcHAgXAogCVNvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL0xvZ2dpbmcuaCBc
CiAJU291cmNlL1dlYktpdDIvUGxhdGZvcm0vTW9kdWxlLmNwcCBcCiAJU291cmNlL1dlYktpdDIv
UGxhdGZvcm0vTW9kdWxlLmggXAogCVNvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL1BsYXRmb3JtUHJv
Y2Vzc0lkZW50aWZpZXIuaCBcCi0JU291cmNlL1dlYktpdDIvUGxhdGZvcm0vUnVuTG9vcC5jcHAg
XAotCVNvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL1J1bkxvb3AuaCBcCiAJU291cmNlL1dlYktpdDIv
UGxhdGZvcm0vU2hhcmVkTWVtb3J5LmggXAogCVNvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL3VuaXgv
U2hhcmVkTWVtb3J5VW5peC5jcHAgXAogCVNvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL1dvcmtRdWV1
ZS5jcHAgXApAQCAtMTM2NCwxMSArMTM2MSw4IEBAIFByb2dyYW1zX1dlYktpdFBsdWdpblByb2Nl
c3NfU09VUkNFUyA9IFwKIAlTb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9Nb2R1bGUuaCBcCiAJU291
cmNlL1dlYktpdDIvUGxhdGZvcm0vV29ya1F1ZXVlLmNwcCBcCiAJU291cmNlL1dlYktpdDIvUGxh
dGZvcm0vV29ya1F1ZXVlLmggXAotCVNvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL1J1bkxvb3AuY3Bw
IFwKLQlTb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9SdW5Mb29wLmggXAogCVNvdXJjZS9XZWJLaXQy
L1BsYXRmb3JtL1NoYXJlZE1lbW9yeS5oIFwKIAlTb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9ndGsv
TW9kdWxlR3RrLmNwcCBcCi0JU291cmNlL1dlYktpdDIvUGxhdGZvcm0vZ3RrL1J1bkxvb3BHdGsu
Y3BwIFwKIAlTb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9ndGsvV29ya1F1ZXVlR3RrLmNwcCBcCiAJ
U291cmNlL1dlYktpdDIvUGxhdGZvcm0vdW5peC9TaGFyZWRNZW1vcnlVbml4LmNwcCBcCiAJU291
cmNlL1dlYktpdDIvUGx1Z2luUHJvY2Vzcy9QbHVnaW5Db250cm9sbGVyUHJveHkuY3BwIFwKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL0NvcmVJUEMvQ29ubmVjdGlvbi5jcHAg
Yi9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9Db3JlSVBDL0Nvbm5lY3Rpb24uY3BwCmluZGV4IDNl
MTdiYmQyMzNhYWQ2ZmVjNTlkNjhjNjA0ODIxYWNhZjI1NWM3YTIuLjNjMmYxNGNlZDAzZThmMDli
ZjA1Mzk2ODg5YjE4NGVmOGI4NWM1OWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1BsYXRm
b3JtL0NvcmVJUEMvQ29ubmVjdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvUGxhdGZvcm0v
Q29yZUlQQy9Db25uZWN0aW9uLmNwcApAQCAtMjgsMTAgKzI4LDExIEBACiAKICNpbmNsdWRlICJC
aW5hcnlTZW1hcGhvcmUuaCIKICNpbmNsdWRlICJDb3JlSVBDTWVzc2FnZUtpbmRzLmgiCi0jaW5j
bHVkZSAiUnVuTG9vcC5oIgorI2luY2x1ZGUgPFdlYkNvcmUvUnVuTG9vcC5oPgogI2luY2x1ZGUg
PHd0Zi9DdXJyZW50VGltZS5oPgogCiB1c2luZyBuYW1lc3BhY2Ugc3RkOwordXNpbmcgbmFtZXNw
YWNlIFdlYkNvcmU7CiAKIG5hbWVzcGFjZSBDb3JlSVBDIHsKIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdDIvUGxhdGZvcm0vQ29yZUlQQy9Db25uZWN0aW9uLmggYi9Tb3VyY2UvV2ViS2l0Mi9Q
bGF0Zm9ybS9Db3JlSVBDL0Nvbm5lY3Rpb24uaAppbmRleCBiYWZhOTk5MTg3NTNhZGE0YTdlOWU1
MDk2ZTdlNGFkZTQxNjE3YzBhLi44MTU1M2FlYjc2YmYwNGRhNzhiNzlkNzMwZDYyMzhlY2JlNGEz
NWYwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9Db3JlSVBDL0Nvbm5lY3Rp
b24uaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9Db3JlSVBDL0Nvbm5lY3Rpb24uaApA
QCAtNTAsNyArNTAsOSBAQCBjbGFzcyBRU29ja2V0Tm90aWZpZXI7CiAjaW5jbHVkZSAiUGxhdGZv
cm1Qcm9jZXNzSWRlbnRpZmllci5oIgogI2VuZGlmCiAKK25hbWVzcGFjZSBXZWJDb3JlIHsKIGNs
YXNzIFJ1bkxvb3A7Cit9CiAKIG5hbWVzcGFjZSBDb3JlSVBDIHsKIApAQCAtMTE4LDggKzEyMCw4
IEBAIHB1YmxpYzoKICAgICB0eXBlZGVmIGludCBJZGVudGlmaWVyOwogI2VuZGlmCiAKLSAgICBz
dGF0aWMgUGFzc1JlZlB0cjxDb25uZWN0aW9uPiBjcmVhdGVTZXJ2ZXJDb25uZWN0aW9uKElkZW50
aWZpZXIsIENsaWVudCosIFJ1bkxvb3AqIGNsaWVudFJ1bkxvb3ApOwotICAgIHN0YXRpYyBQYXNz
UmVmUHRyPENvbm5lY3Rpb24+IGNyZWF0ZUNsaWVudENvbm5lY3Rpb24oSWRlbnRpZmllciwgQ2xp
ZW50KiwgUnVuTG9vcCogY2xpZW50UnVuTG9vcCk7CisgICAgc3RhdGljIFBhc3NSZWZQdHI8Q29u
bmVjdGlvbj4gY3JlYXRlU2VydmVyQ29ubmVjdGlvbihJZGVudGlmaWVyLCBDbGllbnQqLCBXZWJD
b3JlOjpSdW5Mb29wKiBjbGllbnRSdW5Mb29wKTsKKyAgICBzdGF0aWMgUGFzc1JlZlB0cjxDb25u
ZWN0aW9uPiBjcmVhdGVDbGllbnRDb25uZWN0aW9uKElkZW50aWZpZXIsIENsaWVudCosIFdlYkNv
cmU6OlJ1bkxvb3AqIGNsaWVudFJ1bkxvb3ApOwogICAgIH5Db25uZWN0aW9uKCk7CiAKICNpZiBP
UyhEQVJXSU4pCkBAIC0yMDcsNyArMjA5LDcgQEAgcHVibGljOgogICAgIHR5cGVkZWYgTWVzc2Fn
ZTxBcmd1bWVudEVuY29kZXI+IE91dGdvaW5nTWVzc2FnZTsKIAogcHJpdmF0ZToKLSAgICBDb25u
ZWN0aW9uKElkZW50aWZpZXIsIGJvb2wgaXNTZXJ2ZXIsIENsaWVudCosIFJ1bkxvb3AqIGNsaWVu
dFJ1bkxvb3ApOworICAgIENvbm5lY3Rpb24oSWRlbnRpZmllciwgYm9vbCBpc1NlcnZlciwgQ2xp
ZW50KiwgV2ViQ29yZTo6UnVuTG9vcCogY2xpZW50UnVuTG9vcCk7CiAgICAgdm9pZCBwbGF0Zm9y
bUluaXRpYWxpemUoSWRlbnRpZmllcik7CiAgICAgdm9pZCBwbGF0Zm9ybUludmFsaWRhdGUoKTsK
ICAgICAKQEAgLTI1Myw3ICsyNTUsNyBAQCBwcml2YXRlOgogCiAgICAgYm9vbCBtX2lzQ29ubmVj
dGVkOwogICAgIFdvcmtRdWV1ZSBtX2Nvbm5lY3Rpb25RdWV1ZTsKLSAgICBSdW5Mb29wKiBtX2Ns
aWVudFJ1bkxvb3A7CisgICAgV2ViQ29yZTo6UnVuTG9vcCogbV9jbGllbnRSdW5Mb29wOwogCiAg
ICAgVmVjdG9yPFF1ZXVlQ2xpZW50Kj4gbV9jb25uZWN0aW9uUXVldWVDbGllbnRzOwogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9Db3JlSVBDL21hYy9Db25uZWN0aW9uTWFj
LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL0NvcmVJUEMvbWFjL0Nvbm5lY3Rpb25NYWMu
Y3BwCmluZGV4IDk3OTc1YWJlYWJhN2VmNzg5YTk3YTc5OTRiNDNmMjg1ZDZkOGY5YzQuLjExMTlh
Mjg0N2ViZmE5YzUxYzE0ODE4ODA3NzI2MDk4NTkxODYxMDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQyL1BsYXRmb3JtL0NvcmVJUEMvbWFjL0Nvbm5lY3Rpb25NYWMuY3BwCisrKyBiL1NvdXJj
ZS9XZWJLaXQyL1BsYXRmb3JtL0NvcmVJUEMvbWFjL0Nvbm5lY3Rpb25NYWMuY3BwCkBAIC0yOSwx
MSArMjksMTIgQEAKICNpbmNsdWRlICJDb3JlSVBDTWVzc2FnZUtpbmRzLmgiCiAjaW5jbHVkZSAi
TWFjaFBvcnQuaCIKICNpbmNsdWRlICJNYWNoVXRpbGl0aWVzLmgiCi0jaW5jbHVkZSAiUnVuTG9v
cC5oIgorI2luY2x1ZGUgPFdlYkNvcmUvUnVuTG9vcC5oPgogI2luY2x1ZGUgPG1hY2gvbWFjaF9l
cnJvci5oPgogI2luY2x1ZGUgPG1hY2gvdm1fbWFwLmg+CiAKIHVzaW5nIG5hbWVzcGFjZSBzdGQ7
Cit1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKIAogbmFtZXNwYWNlIENvcmVJUEMgewogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9SdW5Mb29wLmNwcCBiL1NvdXJjZS9XZWJL
aXQyL1BsYXRmb3JtL1J1bkxvb3AuY3BwCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBl
NDk1ZWNjNTgzYWNjYTYxYmEwNGJlMDM5OWI4ZjM1MzU3NDdmNjUwLi4wMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL1J1
bkxvb3AuY3BwCisrKyAvZGV2L251bGwKQEAgLTEsNzAgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdo
dCAoQykgMjAxMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Yg
c291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgot
ICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5k
L29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgot
ICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJ
QlVUT1JTIGBgQVMgSVMnJwotICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElF
UywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBUSEUgSU1QTElFRCBXQVJSQU5U
SUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQ
VVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElU
UyBDT05UUklCVVRPUlMKLSAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElO
Q0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKLSAqIENPTlNFUVVFTlRJQUwgREFNQUdF
UyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCi0gKiBTVUJT
VElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsg
T1IgQlVTSU5FU1MKLSAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBU
SEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCi0gKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJ
TElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQotICogQVJJ
U0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYg
QURWSVNFRCBPRgotICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNp
bmNsdWRlICJjb25maWcuaCIKLSNpbmNsdWRlICJSdW5Mb29wLmgiCi0KLSNpbmNsdWRlIDx3dGYv
U3RkTGliRXh0cmFzLmg+Ci0KLXN0YXRpYyBSdW5Mb29wKiBzX21haW5SdW5Mb29wOwotCi12b2lk
IFJ1bkxvb3A6OmluaXRpYWxpemVNYWluUnVuTG9vcCgpCi17Ci0gICAgaWYgKHNfbWFpblJ1bkxv
b3ApCi0gICAgICAgIHJldHVybjsKLSAgICBzX21haW5SdW5Mb29wID0gUnVuTG9vcDo6Y3VycmVu
dCgpOwotfQotCi1SdW5Mb29wKiBSdW5Mb29wOjpjdXJyZW50KCkKLXsKLSAgICBERUZJTkVfU1RB
VElDX0xPQ0FMKFdURjo6VGhyZWFkU3BlY2lmaWM8UnVuTG9vcD4sIHJ1bkxvb3BEYXRhLCAoKSk7
Ci0gICAgcmV0dXJuICYqcnVuTG9vcERhdGE7Ci19Ci0KLVJ1bkxvb3AqIFJ1bkxvb3A6Om1haW4o
KQotewotICAgIEFTU0VSVChzX21haW5SdW5Mb29wKTsKLSAgICByZXR1cm4gc19tYWluUnVuTG9v
cDsKLX0KLQotdm9pZCBSdW5Mb29wOjpwZXJmb3JtV29yaygpCi17Ci0gICAgVmVjdG9yPEZ1bmN0
aW9uPHZvaWQoKT4gPiBmdW5jdGlvblF1ZXVlOwotICAgIHsKLSAgICAgICAgTXV0ZXhMb2NrZXIg
bG9ja2VyKG1fZnVuY3Rpb25RdWV1ZUxvY2spOwotICAgICAgICBtX2Z1bmN0aW9uUXVldWUuc3dh
cChmdW5jdGlvblF1ZXVlKTsKLSAgICB9Ci0KLSAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IGZ1
bmN0aW9uUXVldWUuc2l6ZSgpOyArK2kpCi0gICAgICAgIGZ1bmN0aW9uUXVldWVbaV0oKTsKLX0K
LQotdm9pZCBSdW5Mb29wOjpkaXNwYXRjaChjb25zdCBGdW5jdGlvbjx2b2lkKCk+JiBmdW5jdGlv
bikKLXsKLSAgICBNdXRleExvY2tlciBsb2NrZXIobV9mdW5jdGlvblF1ZXVlTG9jayk7Ci0gICAg
bV9mdW5jdGlvblF1ZXVlLmFwcGVuZChmdW5jdGlvbik7Ci0KLSAgICB3YWtlVXAoKTsKLX0KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL1J1bkxvb3AuaCBiL1NvdXJjZS9XZWJL
aXQyL1BsYXRmb3JtL1J1bkxvb3AuaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNTdh
NzlhOGYzZjA2MGM0MDUzYTVlMmZiMDc0Mjg2YWNhNzMzNTBhYi4uMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9SdW5M
b29wLmgKKysrIC9kZXYvbnVsbApAQCAtMSwxNjEgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAo
QykgMjAxMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKiBDb3B5cmlnaHQgKEMp
IDIwMTAgTm9raWEgQ29ycG9yYXRpb24gYW5kL29yIGl0cyBzdWJzaWRpYXJ5KC1pZXMpCi0gKiBQ
b3J0aW9ucyBDb3B5cmlnaHQgKGMpIDIwMTAgTW90b3JvbGEgTW9iaWxpdHksIEluYy4gIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBt
ZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhl
IGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJp
bmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBp
biB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRl
ZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURF
RCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwotICogQU5EIEFO
WSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sCi0gKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQg
RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBO
TyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKLSAqIEJFIExJQUJM
RSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFS
WSwgT1IKLSAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sIFBST0NVUkVNRU5UIE9GCi0gKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBM
T1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKLSAqIElOVEVSUlVQVElP
TikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVS
IElOCi0gKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5F
R0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQotICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUg
VVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgotICogVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNpZm5kZWYgUnVuTG9vcF9oCi0jZGVmaW5lIFJ1
bkxvb3BfaAotCi0jaW5jbHVkZSA8d3RmL0ZvcndhcmQuaD4KLSNpbmNsdWRlIDx3dGYvRnVuY3Rp
b25hbC5oPgotI2luY2x1ZGUgPHd0Zi9IYXNoTWFwLmg+Ci0jaW5jbHVkZSA8d3RmL1Bhc3NPd25Q
dHIuaD4KLSNpbmNsdWRlIDx3dGYvVGhyZWFkU3BlY2lmaWMuaD4KLSNpbmNsdWRlIDx3dGYvVGhy
ZWFkaW5nLmg+Ci0jaW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgotI2lmIFBMQVRGT1JNKEdUSykKLSNp
bmNsdWRlIDx3dGYvZ29iamVjdC9HUmVmUHRyLmg+Ci10eXBlZGVmIHN0cnVjdCBfR1NvdXJjZSBH
U291cmNlOwotdHlwZWRlZiBzdHJ1Y3QgX0dNYWluTG9vcCBHTWFpbkxvb3A7Ci10eXBlZGVmIHN0
cnVjdCBfR01haW5Db250ZXh0IEdNYWluQ29udGV4dDsKLXR5cGVkZWYgaW50IGdib29sZWFuOwot
I2VuZGlmCi0KLWNsYXNzIFJ1bkxvb3AgewotcHVibGljOgotICAgIC8vIE11c3QgYmUgY2FsbGVk
IGZyb20gdGhlIG1haW4gdGhyZWFkLgotICAgIHN0YXRpYyB2b2lkIGluaXRpYWxpemVNYWluUnVu
TG9vcCgpOwotCi0gICAgc3RhdGljIFJ1bkxvb3AqIGN1cnJlbnQoKTsKLSAgICBzdGF0aWMgUnVu
TG9vcCogbWFpbigpOwotCi0gICAgdm9pZCBkaXNwYXRjaChjb25zdCBGdW5jdGlvbjx2b2lkKCk+
Jik7Ci0KLSAgICBzdGF0aWMgdm9pZCBydW4oKTsKLSAgICB2b2lkIHN0b3AoKTsKLQotI2lmIFBM
QVRGT1JNKE1BQykKLSAgICB2b2lkIHJ1bkZvckR1cmF0aW9uKGRvdWJsZSBkdXJhdGlvbik7Ci0j
ZW5kaWYKLSAgICAKLSAgICBjbGFzcyBUaW1lckJhc2UgewotICAgICAgICBmcmllbmQgY2xhc3Mg
UnVuTG9vcDsKLSAgICBwdWJsaWM6Ci0gICAgICAgIFRpbWVyQmFzZShSdW5Mb29wKik7Ci0gICAg
ICAgIHZpcnR1YWwgflRpbWVyQmFzZSgpOwotCi0gICAgICAgIHZvaWQgc3RhcnRSZXBlYXRpbmco
ZG91YmxlIHJlcGVhdEludGVydmFsKSB7IHN0YXJ0KHJlcGVhdEludGVydmFsLCB0cnVlKTsgfQot
ICAgICAgICB2b2lkIHN0YXJ0T25lU2hvdChkb3VibGUgaW50ZXJ2YWwpIHsgc3RhcnQoaW50ZXJ2
YWwsIGZhbHNlKTsgfQotCi0gICAgICAgIHZvaWQgc3RvcCgpOwotICAgICAgICBib29sIGlzQWN0
aXZlKCkgY29uc3Q7Ci0KLSAgICAgICAgdmlydHVhbCB2b2lkIGZpcmVkKCkgPSAwOwotCi0gICAg
cHJpdmF0ZToKLSAgICAgICAgdm9pZCBzdGFydChkb3VibGUgbmV4dEZpcmVJbnRlcnZhbCwgYm9v
bCByZXBlYXQpOwotCi0gICAgICAgIFJ1bkxvb3AqIG1fcnVuTG9vcDsKLQotI2lmIFBMQVRGT1JN
KFdJTikKLSAgICAgICAgc3RhdGljIHZvaWQgdGltZXJGaXJlZChSdW5Mb29wKiwgdWludDY0X3Qg
SUQpOwotICAgICAgICB1aW50NjRfdCBtX0lEOwotICAgICAgICBib29sIG1faXNSZXBlYXRpbmc7
Ci0jZWxpZiBQTEFURk9STShNQUMpCi0gICAgICAgIHN0YXRpYyB2b2lkIHRpbWVyRmlyZWQoQ0ZS
dW5Mb29wVGltZXJSZWYsIHZvaWQqKTsKLSAgICAgICAgQ0ZSdW5Mb29wVGltZXJSZWYgbV90aW1l
cjsKLSNlbGlmIFBMQVRGT1JNKFFUKQotICAgICAgICBzdGF0aWMgdm9pZCB0aW1lckZpcmVkKFJ1
bkxvb3AqLCBpbnQgSUQpOwotICAgICAgICBpbnQgbV9JRDsKLSAgICAgICAgYm9vbCBtX2lzUmVw
ZWF0aW5nOwotI2VsaWYgUExBVEZPUk0oR1RLKQotICAgICAgICBzdGF0aWMgZ2Jvb2xlYW4gdGlt
ZXJGaXJlZENhbGxiYWNrKFJ1bkxvb3A6OlRpbWVyQmFzZSopOwotICAgICAgICBnYm9vbGVhbiBp
c1JlcGVhdGluZygpIGNvbnN0IHsgcmV0dXJuIG1faXNSZXBlYXRpbmc7IH0KLSAgICAgICAgdm9p
ZCBjbGVhclRpbWVyU291cmNlKCk7Ci0gICAgICAgIEdSZWZQdHI8R1NvdXJjZT4gbV90aW1lclNv
dXJjZTsKLSAgICAgICAgZ2Jvb2xlYW4gbV9pc1JlcGVhdGluZzsKLSNlbmRpZgotICAgIH07Ci0K
LSAgICB0ZW1wbGF0ZSA8dHlwZW5hbWUgVGltZXJGaXJlZENsYXNzPgotICAgIGNsYXNzIFRpbWVy
IDogcHVibGljIFRpbWVyQmFzZSB7Ci0gICAgcHVibGljOgotICAgICAgICB0eXBlZGVmIHZvaWQg
KFRpbWVyRmlyZWRDbGFzczo6KlRpbWVyRmlyZWRGdW5jdGlvbikoKTsKLQotICAgICAgICBUaW1l
cihSdW5Mb29wKiBydW5Mb29wLCBUaW1lckZpcmVkQ2xhc3MqIG8sIFRpbWVyRmlyZWRGdW5jdGlv
biBmKQotICAgICAgICAgICAgOiBUaW1lckJhc2UocnVuTG9vcCkKLSAgICAgICAgICAgICwgbV9v
YmplY3QobykKLSAgICAgICAgICAgICwgbV9mdW5jdGlvbihmKQotICAgICAgICB7Ci0gICAgICAg
IH0KLQotICAgIHByaXZhdGU6Ci0gICAgICAgIHZpcnR1YWwgdm9pZCBmaXJlZCgpIHsgKG1fb2Jq
ZWN0LT4qbV9mdW5jdGlvbikoKTsgfQotCi0gICAgICAgIFRpbWVyRmlyZWRDbGFzcyogbV9vYmpl
Y3Q7Ci0gICAgICAgIFRpbWVyRmlyZWRGdW5jdGlvbiBtX2Z1bmN0aW9uOwotICAgIH07Ci0KLXBy
aXZhdGU6Ci0gICAgZnJpZW5kIGNsYXNzIFdURjo6VGhyZWFkU3BlY2lmaWM8UnVuTG9vcD47Ci0K
LSAgICBSdW5Mb29wKCk7Ci0gICAgflJ1bkxvb3AoKTsKLQotICAgIHZvaWQgcGVyZm9ybVdvcmso
KTsKLSAgICB2b2lkIHdha2VVcCgpOwotCi0gICAgTXV0ZXggbV9mdW5jdGlvblF1ZXVlTG9jazsK
LSAgICBWZWN0b3I8RnVuY3Rpb248dm9pZCgpPiA+IG1fZnVuY3Rpb25RdWV1ZTsKLQotI2lmIFBM
QVRGT1JNKFdJTikKLSAgICBzdGF0aWMgYm9vbCByZWdpc3RlclJ1bkxvb3BNZXNzYWdlV2luZG93
Q2xhc3MoKTsKLSAgICBzdGF0aWMgTFJFU1VMVCBDQUxMQkFDSyBSdW5Mb29wV25kUHJvYyhIV05E
LCBVSU5ULCBXUEFSQU0sIExQQVJBTSk7Ci0gICAgTFJFU1VMVCB3bmRQcm9jKEhXTkQgaFduZCwg
VUlOVCBtZXNzYWdlLCBXUEFSQU0gd1BhcmFtLCBMUEFSQU0gbFBhcmFtKTsKLSAgICBIV05EIG1f
cnVuTG9vcE1lc3NhZ2VXaW5kb3c7Ci0KLSAgICB0eXBlZGVmIEhhc2hNYXA8dWludDY0X3QsIFRp
bWVyQmFzZSo+IFRpbWVyTWFwOwotICAgIFRpbWVyTWFwIG1fYWN0aXZlVGltZXJzOwotI2VsaWYg
UExBVEZPUk0oTUFDKQotICAgIHN0YXRpYyB2b2lkIHBlcmZvcm1Xb3JrKHZvaWQqKTsKLSAgICBD
RlJ1bkxvb3BSZWYgbV9ydW5Mb29wOwotICAgIENGUnVuTG9vcFNvdXJjZVJlZiBtX3J1bkxvb3BT
b3VyY2U7Ci0gICAgaW50IG1fbmVzdGluZ0xldmVsOwotI2VsaWYgUExBVEZPUk0oUVQpCi0gICAg
dHlwZWRlZiBIYXNoTWFwPGludCwgVGltZXJCYXNlKj4gVGltZXJNYXA7Ci0gICAgVGltZXJNYXAg
bV9hY3RpdmVUaW1lcnM7Ci0gICAgY2xhc3MgVGltZXJPYmplY3Q7Ci0gICAgVGltZXJPYmplY3Qq
IG1fdGltZXJPYmplY3Q7Ci0jZWxpZiBQTEFURk9STShHVEspCi1wdWJsaWM6Ci0gICAgc3RhdGlj
IGdib29sZWFuIHF1ZXVlV29yayhSdW5Mb29wKik7Ci0gICAgR01haW5Mb29wKiBtYWluTG9vcCgp
OwotcHJpdmF0ZToKLSAgICBHTWFpbkNvbnRleHQqIG1fcnVuTG9vcENvbnRleHQ7Ci0gICAgR01h
aW5Mb29wKiBtX3J1bkxvb3BNYWluOwotI2VuZGlmCi19OwotCi0jZW5kaWYgLy8gUnVuTG9vcF9o
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9ndGsvUnVuTG9vcEd0ay5jcHAg
Yi9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9ndGsvUnVuTG9vcEd0ay5jcHAKZGVsZXRlZCBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDgxY2JlYWFmMTg3YzU5ZTFjZTcxZmU0NDI5Yjg2ZDFiOTY3MTY3
OTIuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNl
L1dlYktpdDIvUGxhdGZvcm0vZ3RrL1J1bkxvb3BHdGsuY3BwCisrKyAvZGV2L251bGwKQEAgLTEs
MTM0ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTAgQXBwbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgotICogUG9ydGlvbnMgQ29weXJpZ2h0IChjKSAyMDEwIE1vdG9yb2xhIE1v
YmlsaXR5LCBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICog
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBj
b2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJl
ZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29w
eXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhl
ciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMg
U09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBg
YEFTIElTJycKLSAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBN
RVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBB
UkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJ
QlVUT1JTCi0gKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFM
LCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCi0gKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgotICogU1VCU1RJVFVURSBH
T09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lO
RVNTCi0gKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9G
IExJQUJJTElUWSwgV0hFVEhFUiBJTgotICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9S
IFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKLSAqIEFSSVNJTkcgSU4g
QU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQg
T0YKLSAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jaW5jbHVkZSAi
Y29uZmlnLmgiCi0jaW5jbHVkZSAiUnVuTG9vcC5oIgotCi0jaW5jbHVkZSAiV0tCYXNlLmgiCi0j
aW5jbHVkZSA8Z2xpYi5oPgotCi1SdW5Mb29wOjpSdW5Mb29wKCkKLXsKLSAgICBtX3J1bkxvb3BD
b250ZXh0ID0gZ19tYWluX2NvbnRleHRfZGVmYXVsdCgpOwotICAgIEFTU0VSVChtX3J1bkxvb3BD
b250ZXh0KTsKLSAgICBtX3J1bkxvb3BNYWluID0gZ19tYWluX2xvb3BfbmV3KG1fcnVuTG9vcENv
bnRleHQsIEZBTFNFKTsKLSAgICBBU1NFUlQobV9ydW5Mb29wTWFpbik7Ci19Ci0KLVJ1bkxvb3A6
On5SdW5Mb29wKCkKLXsKLSAgICBpZiAobV9ydW5Mb29wTWFpbikgewotICAgICAgICBpZiAoZ19t
YWluX2xvb3BfaXNfcnVubmluZyhtX3J1bkxvb3BNYWluKSkKLSAgICAgICAgICAgIGdfbWFpbl9s
b29wX3F1aXQobV9ydW5Mb29wTWFpbik7Ci0gICAgICAgIGdfbWFpbl9sb29wX3VucmVmKG1fcnVu
TG9vcE1haW4pOwotICAgIH0KLQotICAgIGlmIChtX3J1bkxvb3BDb250ZXh0KQotICAgICAgICBn
X21haW5fY29udGV4dF91bnJlZihtX3J1bkxvb3BDb250ZXh0KTsKLX0KLQotdm9pZCBSdW5Mb29w
OjpydW4oKQotewotICAgIGdfbWFpbl9sb29wX3J1bihSdW5Mb29wOjptYWluKCktPm1haW5Mb29w
KCkpOwotfQotCi1HTWFpbkxvb3AqIFJ1bkxvb3A6Om1haW5Mb29wKCkKLXsKLSAgICByZXR1cm4g
bV9ydW5Mb29wTWFpbjsKLX0KLQotdm9pZCBSdW5Mb29wOjpzdG9wKCkKLXsKLSAgICBnX21haW5f
bG9vcF9xdWl0KG1fcnVuTG9vcE1haW4pOwotfQotCi1nYm9vbGVhbiBSdW5Mb29wOjpxdWV1ZVdv
cmsoUnVuTG9vcCogcnVuTG9vcCkKLXsKLSAgICBydW5Mb29wLT5wZXJmb3JtV29yaygpOwotICAg
IHJldHVybiBGQUxTRTsKLX0KLQotdm9pZCBSdW5Mb29wOjp3YWtlVXAoKQotewotICAgIEdSZWZQ
dHI8R1NvdXJjZT4gc291cmNlID0gYWRvcHRHUmVmKGdfaWRsZV9zb3VyY2VfbmV3KCkpOwotICAg
IGdfc291cmNlX3NldF9wcmlvcml0eShzb3VyY2UuZ2V0KCksIEdfUFJJT1JJVFlfREVGQVVMVCk7
Ci0gICAgZ19zb3VyY2Vfc2V0X2NhbGxiYWNrKHNvdXJjZS5nZXQoKSwgcmVpbnRlcnByZXRfY2Fz
dDxHU291cmNlRnVuYz4oJlJ1bkxvb3A6OnF1ZXVlV29yayksIHRoaXMsIDApOwotICAgIGdfc291
cmNlX2F0dGFjaChzb3VyY2UuZ2V0KCksIG1fcnVuTG9vcENvbnRleHQpOwotCi0gICAgZ19tYWlu
X2NvbnRleHRfd2FrZXVwKG1fcnVuTG9vcENvbnRleHQpOwotfQotCi1SdW5Mb29wOjpUaW1lckJh
c2U6OlRpbWVyQmFzZShSdW5Mb29wKiBydW5Mb29wKQotICAgIDogbV9ydW5Mb29wKHJ1bkxvb3Ap
Ci0gICAgLCBtX3RpbWVyU291cmNlKDApCi17Ci19Ci0KLVJ1bkxvb3A6OlRpbWVyQmFzZTo6flRp
bWVyQmFzZSgpCi17Ci0gICAgc3RvcCgpOwotfQotCi12b2lkIFJ1bkxvb3A6OlRpbWVyQmFzZTo6
Y2xlYXJUaW1lclNvdXJjZSgpCi17Ci0gICAgbV90aW1lclNvdXJjZSA9IDA7Ci19Ci0KLWdib29s
ZWFuIFJ1bkxvb3A6OlRpbWVyQmFzZTo6dGltZXJGaXJlZENhbGxiYWNrKFJ1bkxvb3A6OlRpbWVy
QmFzZSogdGltZXIpCi17Ci0gICAgR1NvdXJjZSogY3VycmVudFRpbWVyU291cmNlID0gdGltZXIt
Pm1fdGltZXJTb3VyY2UuZ2V0KCk7Ci0gICAgYm9vbCBpc1JlcGVhdGluZyA9IHRpbWVyLT5pc1Jl
cGVhdGluZygpOwotICAgIC8vIFRoaXMgY2FuIGNoYW5nZSB0aGUgdGltZXJTb3VyY2UgYnkgc3Rh
cnRpbmcgYSBuZXcgdGltZXIgd2l0aGluIHRoZSBjYWxsYmFjay4KLSAgICB0aW1lci0+ZmlyZWQo
KTsKLSAgICBpZiAoIWlzUmVwZWF0aW5nICYmIGN1cnJlbnRUaW1lclNvdXJjZSA9PSB0aW1lci0+
bV90aW1lclNvdXJjZS5nZXQoKSkKLSAgICAgICAgdGltZXItPmNsZWFyVGltZXJTb3VyY2UoKTsK
LSAgICByZXR1cm4gaXNSZXBlYXRpbmc7Ci19Ci0KLXZvaWQgUnVuTG9vcDo6VGltZXJCYXNlOjpz
dGFydChkb3VibGUgZmlyZUludGVydmFsLCBib29sIHJlcGVhdCkKLXsKLSAgICBpZiAobV90aW1l
clNvdXJjZSkKLSAgICAgICAgc3RvcCgpOwotCi0gICAgbV90aW1lclNvdXJjZSA9IGFkb3B0R1Jl
ZihnX3RpbWVvdXRfc291cmNlX25ldyhzdGF0aWNfY2FzdDxndWludD4oZmlyZUludGVydmFsICog
MTAwMCkpKTsKLSAgICBtX2lzUmVwZWF0aW5nID0gcmVwZWF0OwotICAgIGdfc291cmNlX3NldF9j
YWxsYmFjayhtX3RpbWVyU291cmNlLmdldCgpLCByZWludGVycHJldF9jYXN0PEdTb3VyY2VGdW5j
PigmUnVuTG9vcDo6VGltZXJCYXNlOjp0aW1lckZpcmVkQ2FsbGJhY2spLCB0aGlzLCAwKTsKLSAg
ICBnX3NvdXJjZV9hdHRhY2gobV90aW1lclNvdXJjZS5nZXQoKSwgbV9ydW5Mb29wLT5tX3J1bkxv
b3BDb250ZXh0KTsKLX0KLQotdm9pZCBSdW5Mb29wOjpUaW1lckJhc2U6OnN0b3AoKQotewotICAg
IGlmICghbV90aW1lclNvdXJjZSkKLSAgICAgICAgcmV0dXJuOwotCi0gICAgZ19zb3VyY2VfZGVz
dHJveShtX3RpbWVyU291cmNlLmdldCgpKTsKLSAgICBjbGVhclRpbWVyU291cmNlKCk7Ci19Ci0K
LWJvb2wgUnVuTG9vcDo6VGltZXJCYXNlOjppc0FjdGl2ZSgpIGNvbnN0Ci17Ci0gICAgcmV0dXJu
IG1fdGltZXJTb3VyY2U7Ci19CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9t
YWMvUnVuTG9vcE1hYy5tbSBiL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL21hYy9SdW5Mb29wTWFj
Lm1tCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwM2JiODZlOGQ5Mjc4MzJkYjgwMjIy
MjEzZjY0OTY4MzFkYmJhNDAzLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwCi0tLSBhL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL21hYy9SdW5Mb29wTWFjLm1tCisrKyAv
ZGV2L251bGwKQEAgLTEsMTUzICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTAgQXBw
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11
c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJp
YnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0
Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRl
cmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdB
UkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElT
JycKLSAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLAotICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFO
VEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElT
Q0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JT
Ci0gKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVD
SUFMLCBFWEVNUExBUlksIE9SCi0gKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgotICogU1VCU1RJVFVURSBHT09EUyBP
UiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCi0g
KiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJ
TElUWSwgV0hFVEhFUiBJTgotICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQg
KElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKLSAqIEFSSVNJTkcgSU4gQU5ZIFdB
WSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKLSAq
IFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jaW1wb3J0ICJjb25maWcu
aCIKLSNpbXBvcnQgIlJ1bkxvb3AuaCIKLQotdm9pZCBSdW5Mb29wOjpwZXJmb3JtV29yayh2b2lk
KiBjb250ZXh0KQotewotICAgIC8vIFdyYXAgbWFpbiB0aHJlYWQgaW4gYW4gQXV0b3JlbGVhc2Ug
cG9vbC4gIFNlbmRpbmcgbWVzc2FnZXMgY2FuIGNhbGwgCi0gICAgLy8gaW50byBvYmpjIGNvZGUg
YW5kIGFjY3VtdWxhdGUgbWVtb3J5LiAgCi0gICAgaWYgKGN1cnJlbnQoKSA9PSBtYWluKCkpIHsK
LSAgICAgICAgTlNBdXRvcmVsZWFzZVBvb2wgKnBvb2wgPSBbW05TQXV0b3JlbGVhc2VQb29sIGFs
bG9jXSBpbml0XTsKLSAgICAgICAgc3RhdGljX2Nhc3Q8UnVuTG9vcCo+KGNvbnRleHQpLT5wZXJm
b3JtV29yaygpOwotICAgICAgICBbcG9vbCBkcmFpbl07Ci0gICAgfSBlbHNlCi0gICAgICAgIHN0
YXRpY19jYXN0PFJ1bkxvb3AqPihjb250ZXh0KS0+cGVyZm9ybVdvcmsoKTsKLX0KLQotUnVuTG9v
cDo6UnVuTG9vcCgpCi0gICAgOiBtX3J1bkxvb3AoQ0ZSdW5Mb29wR2V0Q3VycmVudCgpKQotICAg
ICwgbV9uZXN0aW5nTGV2ZWwoMCkKLXsKLSAgICBDRlJ1bkxvb3BTb3VyY2VDb250ZXh0IGNvbnRl
eHQgPSB7IDAsIHRoaXMsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIHBlcmZvcm1Xb3JrIH07Ci0gICAg
bV9ydW5Mb29wU291cmNlID0gQ0ZSdW5Mb29wU291cmNlQ3JlYXRlKGtDRkFsbG9jYXRvckRlZmF1
bHQsIDAsICZjb250ZXh0KTsKLSAgICBDRlJ1bkxvb3BBZGRTb3VyY2UobV9ydW5Mb29wLCBtX3J1
bkxvb3BTb3VyY2UsIGtDRlJ1bkxvb3BDb21tb25Nb2Rlcyk7Ci19Ci0KLVJ1bkxvb3A6On5SdW5M
b29wKCkKLXsKLSAgICAvLyBGSVhNRTogVGVhciBkb3duIHRoZSB3b3JrIGl0ZW0gcXVldWUgaGVy
ZS4KLSAgICBDRlJ1bkxvb3BTb3VyY2VJbnZhbGlkYXRlKG1fcnVuTG9vcFNvdXJjZSk7Ci0gICAg
Q0ZSZWxlYXNlKG1fcnVuTG9vcFNvdXJjZSk7Ci19Ci0KLXZvaWQgUnVuTG9vcDo6cnVuKCkKLXsK
LSAgICBjdXJyZW50KCktPm1fbmVzdGluZ0xldmVsKys7Ci0gICAgaWYgKGN1cnJlbnQoKSA9PSBt
YWluKCkgJiYgY3VycmVudCgpLT5tX25lc3RpbmdMZXZlbCA9PSAxKSB7Ci0gICAgICAgIC8vIFVz
ZSAtW05TQXBwbGljYXRpb24gcnVuXSBmb3IgdGhlIG1haW4gcnVuIGxvb3AuCi0gICAgICAgIFtO
U0FwcCBydW5dOwotICAgIH0gZWxzZSB7Ci0gICAgICAgIE5TQXV0b3JlbGVhc2VQb29sICpwb29s
ID0gW1tOU0F1dG9yZWxlYXNlUG9vbCBhbGxvY10gaW5pdF07Ci0gICAgICAgIENGUnVuTG9vcFJ1
bigpOwotICAgICAgICBbcG9vbCBkcmFpbl07Ci0gICAgfQotICAgIGN1cnJlbnQoKS0+bV9uZXN0
aW5nTGV2ZWwtLTsKLX0KLQotdm9pZCBSdW5Mb29wOjpydW5Gb3JEdXJhdGlvbihkb3VibGUgZHVy
YXRpb24pCi17Ci0gICAgQ0ZSdW5Mb29wUnVuSW5Nb2RlKGtDRlJ1bkxvb3BEZWZhdWx0TW9kZSwg
ZHVyYXRpb24sIHRydWUpOwotfQotCi12b2lkIFJ1bkxvb3A6OnN0b3AoKQotewotICAgIEFTU0VS
VChtX3J1bkxvb3AgPT0gQ0ZSdW5Mb29wR2V0Q3VycmVudCgpKTsKLSAgICAKLSAgICBpZiAobV9y
dW5Mb29wID09IG1haW4oKS0+bV9ydW5Mb29wICYmIG1fbmVzdGluZ0xldmVsID09IDEpIHsKLSAg
ICAgICAgW05TQXBwIHN0b3A6bmlsXTsKLSAgICAgICAgTlNFdmVudCAqZXZlbnQgPSBbTlNFdmVu
dCBvdGhlckV2ZW50V2l0aFR5cGU6TlNBcHBsaWNhdGlvbkRlZmluZWQKLSAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9jYXRpb246TlNNYWtlUG9pbnQoMCwgMCkK
LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1vZGlmaWVyRmxhZ3M6MAot
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRpbWVzdGFtcDowLjAK
LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2luZG93TnVtYmVyOjAK
LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRleHQ6bmls
Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdWJ0eXBlOiAw
Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGExOjAK
LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0YTI6MF07
Ci0gICAgICAgIFtOU0FwcCBwb3N0RXZlbnQ6ZXZlbnQgYXRTdGFydDp0cnVlXTsKLSAgICB9IGVs
c2UKLSAgICAgICAgQ0ZSdW5Mb29wU3RvcChtX3J1bkxvb3ApOwotfQotCi12b2lkIFJ1bkxvb3A6
Ondha2VVcCgpCi17Ci0gICAgQ0ZSdW5Mb29wU291cmNlU2lnbmFsKG1fcnVuTG9vcFNvdXJjZSk7
Ci0gICAgQ0ZSdW5Mb29wV2FrZVVwKG1fcnVuTG9vcCk7Ci19Ci0KLS8vIFJ1bkxvb3A6OlRpbWVy
Ci0KLXZvaWQgUnVuTG9vcDo6VGltZXJCYXNlOjp0aW1lckZpcmVkKENGUnVuTG9vcFRpbWVyUmVm
LCB2b2lkKiBjb250ZXh0KQotewotICAgIFRpbWVyQmFzZSogdGltZXIgPSBzdGF0aWNfY2FzdDxU
aW1lckJhc2UqPihjb250ZXh0KTsKLSAgICAKLSAgICAvLyBXcmFwIG1haW4gdGhyZWFkIGluIGFu
IEF1dG9yZWxlYXNlIHBvb2wuICBUaGUgdGltZXIgY2FuIGNhbGwgCi0gICAgLy8gaW50byBvYmpj
IGNvZGUgYW5kIGFjY3VtdWxhdGUgbWVtb3J5IG91dHNpZGUgb2YgdGhlIG1haW4gZXZlbnQgbG9v
cC4KLSAgICBpZiAoY3VycmVudCgpID09IG1haW4oKSkgewotICAgICAgICBOU0F1dG9yZWxlYXNl
UG9vbCAqcG9vbCA9IFtbTlNBdXRvcmVsZWFzZVBvb2wgYWxsb2NdIGluaXRdOyAKLSAgICAgICAg
dGltZXItPmZpcmVkKCk7Ci0gICAgICAgIFtwb29sIGRyYWluXTsKLSAgICB9IGVsc2UKLSAgICAg
ICAgdGltZXItPmZpcmVkKCk7Ci19Ci0KLVJ1bkxvb3A6OlRpbWVyQmFzZTo6VGltZXJCYXNlKFJ1
bkxvb3AqIHJ1bkxvb3ApCi0gICAgOiBtX3J1bkxvb3AocnVuTG9vcCkKLSAgICAsIG1fdGltZXIo
MCkKLXsKLX0KLQotUnVuTG9vcDo6VGltZXJCYXNlOjp+VGltZXJCYXNlKCkKLXsKLSAgICBzdG9w
KCk7Ci19Ci0KLXZvaWQgUnVuTG9vcDo6VGltZXJCYXNlOjpzdGFydChkb3VibGUgbmV4dEZpcmVJ
bnRlcnZhbCwgYm9vbCByZXBlYXQpCi17Ci0gICAgaWYgKG1fdGltZXIpCi0gICAgICAgIHN0b3Ao
KTsKLQotICAgIENGUnVuTG9vcFRpbWVyQ29udGV4dCBjb250ZXh0ID0geyAwLCB0aGlzLCAwLCAw
LCAwIH07Ci0gICAgQ0ZUaW1lSW50ZXJ2YWwgcmVwZWF0SW50ZXJ2YWwgPSByZXBlYXQgPyBuZXh0
RmlyZUludGVydmFsIDogMDsKLSAgICBtX3RpbWVyID0gQ0ZSdW5Mb29wVGltZXJDcmVhdGUoa0NG
QWxsb2NhdG9yRGVmYXVsdCwgQ0ZBYnNvbHV0ZVRpbWVHZXRDdXJyZW50KCkgKyBuZXh0RmlyZUlu
dGVydmFsLCByZXBlYXRJbnRlcnZhbCwgMCwgMCwgdGltZXJGaXJlZCwgJmNvbnRleHQpOwotICAg
IENGUnVuTG9vcEFkZFRpbWVyKG1fcnVuTG9vcC0+bV9ydW5Mb29wLCBtX3RpbWVyLCBrQ0ZSdW5M
b29wQ29tbW9uTW9kZXMpOwotfQotCi12b2lkIFJ1bkxvb3A6OlRpbWVyQmFzZTo6c3RvcCgpCi17
Ci0gICAgaWYgKCFtX3RpbWVyKQotICAgICAgICByZXR1cm47Ci0KLSAgICBDRlJ1bkxvb3BUaW1l
ckludmFsaWRhdGUobV90aW1lcik7Ci0gICAgQ0ZSZWxlYXNlKG1fdGltZXIpOwotICAgIG1fdGlt
ZXIgPSAwOwotfQotCi1ib29sIFJ1bkxvb3A6OlRpbWVyQmFzZTo6aXNBY3RpdmUoKSBjb25zdAot
ewotICAgIHJldHVybiBtX3RpbWVyICYmIENGUnVuTG9vcFRpbWVySXNWYWxpZChtX3RpbWVyKTsK
LX0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL3F0L1J1bkxvb3BRdC5jcHAg
Yi9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9xdC9SdW5Mb29wUXQuY3BwCmRlbGV0ZWQgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDdhMGE1YjFhZmUwOTgwMzk4OTA5YWI3MGJiNzNiOWQ5ZjA4ZGU3
Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9X
ZWJLaXQyL1BsYXRmb3JtL3F0L1J1bkxvb3BRdC5jcHAKKysrIC9kZXYvbnVsbApAQCAtMSwxNjMg
KzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMCBBcHBsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTAgTm9raWEgQ29ycG9yYXRpb24gYW5kL29y
IGl0cyBzdWJzaWRpYXJ5KC1pZXMpCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAq
IGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRh
aW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25z
IGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBw
cm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQ
Uk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwotICog
QU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sCi0gKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElU
WSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVE
LiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKLSAqIEJF
IExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVY
RU1QTEFSWSwgT1IKLSAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCi0gKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJ
Q0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKLSAqIElOVEVS
UlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBX
SEVUSEVSIElOCi0gKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVE
SU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQotICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBP
RiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgotICogVEhFIFBP
U1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNpbmNsdWRlICJjb25maWcuaCIKLSNp
bmNsdWRlICJSdW5Mb29wLmgiCi0KLSNpbmNsdWRlIDxRQ29yZUFwcGxpY2F0aW9uPgotI2luY2x1
ZGUgPFFBYnN0cmFjdEV2ZW50RGlzcGF0Y2hlcj4KLSNpbmNsdWRlIDxRT2JqZWN0PgotI2luY2x1
ZGUgPFFNZXRhTWV0aG9kPgotI2luY2x1ZGUgPFFNZXRhT2JqZWN0PgotI2luY2x1ZGUgPFFUaW1l
ckV2ZW50PgotCi1jbGFzcyBSdW5Mb29wOjpUaW1lck9iamVjdCA6IHB1YmxpYyBRT2JqZWN0Ci17
Ci0gICAgUV9PQkpFQ1QKLXB1YmxpYzoKLSAgICBUaW1lck9iamVjdChSdW5Mb29wKiBydW5Mb29w
KSA6IG1fcnVuTG9vcChydW5Mb29wKQotICAgIHsKLSAgICAgICAgaW50IG1ldGhvZEluZGV4ID0g
bWV0YU9iamVjdCgpLT5pbmRleE9mTWV0aG9kKCJwZXJmb3JtV29yaygpIik7Ci0gICAgICAgIG1f
bWV0aG9kID0gbWV0YU9iamVjdCgpLT5tZXRob2QobWV0aG9kSW5kZXgpOwotICAgIH0KLQotICAg
IFFfU0xPVCB2b2lkIHBlcmZvcm1Xb3JrKCkgeyBtX3J1bkxvb3AtPnBlcmZvcm1Xb3JrKCk7IH0K
LSAgICBpbmxpbmUgdm9pZCB3YWtlVXAoKSB7IG1fbWV0aG9kLmludm9rZSh0aGlzLCBRdDo6UXVl
dWVkQ29ubmVjdGlvbik7IH0KLQotcHJvdGVjdGVkOgotICAgIHZpcnR1YWwgdm9pZCB0aW1lckV2
ZW50KFFUaW1lckV2ZW50KiBldmVudCkKLSAgICB7Ci0gICAgICAgIFJ1bkxvb3A6OlRpbWVyQmFz
ZTo6dGltZXJGaXJlZChtX3J1bkxvb3AsIGV2ZW50LT50aW1lcklkKCkpOwotICAgIH0KLQotcHJp
dmF0ZToKLSAgICBSdW5Mb29wKiBtX3J1bkxvb3A7Ci0gICAgUU1ldGFNZXRob2QgbV9tZXRob2Q7
Ci19OwotCi1zdGF0aWMgUUV2ZW50TG9vcCogY3VycmVudEV2ZW50TG9vcDsKLQotdm9pZCBSdW5M
b29wOjpydW4oKQotewotICAgIHN0YXRpYyBib29sIG1haW5FdmVudExvb3BJc1J1bm5pbmcgPSBm
YWxzZTsKLSAgICBpZiAoIW1haW5FdmVudExvb3BJc1J1bm5pbmcpIHsKLSAgICAgICAgbWFpbkV2
ZW50TG9vcElzUnVubmluZyA9IHRydWU7Ci0gICAgICAgIFFDb3JlQXBwbGljYXRpb246OmV4ZWMo
KTsKLSAgICAgICAgbWFpbkV2ZW50TG9vcElzUnVubmluZyA9IGZhbHNlOwotICAgIH0gZWxzZSB7
Ci0gICAgICAgIFFFdmVudExvb3AgZXZlbnRMb29wOwotCi0gICAgICAgIFFFdmVudExvb3AqIHBy
ZXZpb3VzRXZlbnRMb29wID0gY3VycmVudEV2ZW50TG9vcDsKLSAgICAgICAgY3VycmVudEV2ZW50
TG9vcCA9ICZldmVudExvb3A7Ci0KLSAgICAgICAgZXZlbnRMb29wLmV4ZWMoKTsKLQotICAgICAg
ICBjdXJyZW50RXZlbnRMb29wID0gcHJldmlvdXNFdmVudExvb3A7Ci0gICAgfQotfQotCi12b2lk
IFJ1bkxvb3A6OnN0b3AoKQotewotICAgIGlmIChjdXJyZW50RXZlbnRMb29wKQotICAgICAgICBj
dXJyZW50RXZlbnRMb29wLT5leGl0KCk7Ci0gICAgZWxzZQotICAgICAgICBRQ29yZUFwcGxpY2F0
aW9uOjpleGl0KCk7Ci19Ci0KLVJ1bkxvb3A6OlJ1bkxvb3AoKQotICAgIDogbV90aW1lck9iamVj
dChuZXcgVGltZXJPYmplY3QodGhpcykpCi17Ci19Ci0KLVJ1bkxvb3A6On5SdW5Mb29wKCkKLXsK
LSAgICBkZWxldGUgbV90aW1lck9iamVjdDsKLX0KLQotdm9pZCBSdW5Mb29wOjp3YWtlVXAoKQot
ewotICAgIG1fdGltZXJPYmplY3QtPndha2VVcCgpOwotfQotCi0vLyBSdW5Mb29wOjpUaW1lcgot
Ci12b2lkIFJ1bkxvb3A6OlRpbWVyQmFzZTo6dGltZXJGaXJlZChSdW5Mb29wKiBydW5Mb29wLCBp
bnQgSUQpCi17Ci0gICAgVGltZXJNYXA6Oml0ZXJhdG9yIGl0ID0gcnVuTG9vcC0+bV9hY3RpdmVU
aW1lcnMuZmluZChJRCk7Ci0gICAgQVNTRVJUKGl0ICE9IHJ1bkxvb3AtPm1fYWN0aXZlVGltZXJz
LmVuZCgpKTsKLSAgICBUaW1lckJhc2UqIHRpbWVyID0gaXQtPnNlY29uZDsKLQotICAgIGlmICgh
dGltZXItPm1faXNSZXBlYXRpbmcpIHsKLSAgICAgICAgLy8gU3RvcCB0aGUgdGltZXIgKGNhbGxp
bmcgc3RvcCB3b3VsZCBuZWVkIGFub3RoZXIgaGFzaCB0YWJsZSBsb29rdXApLgotICAgICAgICBy
dW5Mb29wLT5tX2FjdGl2ZVRpbWVycy5yZW1vdmUoaXQpOwotICAgICAgICBydW5Mb29wLT5tX3Rp
bWVyT2JqZWN0LT5raWxsVGltZXIodGltZXItPm1fSUQpOwotICAgICAgICB0aW1lci0+bV9JRCA9
IDA7Ci0gICAgfQotCi0gICAgdGltZXItPmZpcmVkKCk7Ci19Ci0KLVJ1bkxvb3A6OlRpbWVyQmFz
ZTo6VGltZXJCYXNlKFJ1bkxvb3AqIHJ1bkxvb3ApCi0gICAgOiBtX3J1bkxvb3AocnVuTG9vcCkK
LSAgICAsIG1fSUQoMCkKLSAgICAsIG1faXNSZXBlYXRpbmcoZmFsc2UpCi17Ci19Ci0KLVJ1bkxv
b3A6OlRpbWVyQmFzZTo6flRpbWVyQmFzZSgpCi17Ci0gICAgc3RvcCgpOwotfQotCi12b2lkIFJ1
bkxvb3A6OlRpbWVyQmFzZTo6c3RhcnQoZG91YmxlIG5leHRGaXJlSW50ZXJ2YWwsIGJvb2wgcmVw
ZWF0KQotewotICAgIHN0b3AoKTsKLSAgICBpbnQgbWlsbGlzID0gc3RhdGljX2Nhc3Q8aW50Pihu
ZXh0RmlyZUludGVydmFsICogMTAwMCk7Ci0gICAgbV9pc1JlcGVhdGluZyA9IHJlcGVhdDsKLSAg
ICBtX0lEID0gbV9ydW5Mb29wLT5tX3RpbWVyT2JqZWN0LT5zdGFydFRpbWVyKG1pbGxpcyk7Ci0g
ICAgQVNTRVJUKG1fSUQpOwotICAgIG1fcnVuTG9vcC0+bV9hY3RpdmVUaW1lcnMuc2V0KG1fSUQs
IHRoaXMpOwotfQotCi12b2lkIFJ1bkxvb3A6OlRpbWVyQmFzZTo6c3RvcCgpCi17Ci0gICAgaWYg
KCFtX0lEKQotICAgICAgICByZXR1cm47Ci0gICAgVGltZXJNYXA6Oml0ZXJhdG9yIGl0ID0gbV9y
dW5Mb29wLT5tX2FjdGl2ZVRpbWVycy5maW5kKG1fSUQpOwotICAgIGlmIChpdCA9PSBtX3J1bkxv
b3AtPm1fYWN0aXZlVGltZXJzLmVuZCgpKQotICAgICAgICByZXR1cm47Ci0KLSAgICBtX3J1bkxv
b3AtPm1fYWN0aXZlVGltZXJzLnJlbW92ZShpdCk7Ci0gICAgbV9ydW5Mb29wLT5tX3RpbWVyT2Jq
ZWN0LT5raWxsVGltZXIobV9JRCk7Ci0gICAgbV9JRCA9IDA7Ci19Ci0KLWJvb2wgUnVuTG9vcDo6
VGltZXJCYXNlOjppc0FjdGl2ZSgpIGNvbnN0Ci17Ci0gICAgcmV0dXJuIG1fSUQ7Ci19Ci0KLSNp
bmNsdWRlICJSdW5Mb29wUXQubW9jIgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvUGxhdGZv
cm0vd2luL1J1bkxvb3BXaW4uY3BwIGIvU291cmNlL1dlYktpdDIvUGxhdGZvcm0vd2luL1J1bkxv
b3BXaW4uY3BwCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBkZmJjYWVlNTYyZTY1MzU5
MTFhZWFjZDFmZmIwNDliZTE3OGYwMWY1Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL3dpbi9SdW5Mb29wV2luLmNw
cAorKysgL2Rldi9udWxsCkBAIC0xLDE3OSArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAy
MDEwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAq
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2Ug
Y29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBS
ZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNv
cHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3Ro
ZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElT
IFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMg
YGBBUyBJUycnCi0gKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0Yg
TUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0Ug
QVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRS
SUJVVE9SUwotICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRB
TCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgotICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKLSAqIFNVQlNUSVRVVEUg
R09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJ
TkVTUwotICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBP
RiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KLSAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBP
UiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCi0gKiBBUklTSU5HIElO
IEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GCi0gKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI2luY2x1ZGUg
ImNvbmZpZy5oIgotI2luY2x1ZGUgIlJ1bkxvb3AuaCIKLQotI2luY2x1ZGUgIkJpbmFyeVNlbWFw
aG9yZS5oIgotI2luY2x1ZGUgPHd0Zi9DdXJyZW50VGltZS5oPgotCi11c2luZyBuYW1lc3BhY2Ug
Q29yZUlQQzsKLXVzaW5nIG5hbWVzcGFjZSBzdGQ7Ci0KLXN0YXRpYyBjb25zdCBVSU5UIFBlcmZv
cm1Xb3JrTWVzc2FnZSA9IFdNX1VTRVIgKyAxOwotc3RhdGljIGNvbnN0IExQV1NUUiBrUnVuTG9v
cE1lc3NhZ2VXaW5kb3dDbGFzc05hbWUgPSBMIlJ1bkxvb3BNZXNzYWdlV2luZG93IjsKLQotTFJF
U1VMVCBDQUxMQkFDSyBSdW5Mb29wOjpSdW5Mb29wV25kUHJvYyhIV05EIGhXbmQsIFVJTlQgbWVz
c2FnZSwgV1BBUkFNIHdQYXJhbSwgTFBBUkFNIGxQYXJhbSkKLXsKLSAgICBMT05HX1BUUiBsb25n
UHRyID0gOjpHZXRXaW5kb3dMb25nUHRyKGhXbmQsIDApOwotICAgIAotICAgIGlmIChSdW5Mb29w
KiBydW5Mb29wID0gcmVpbnRlcnByZXRfY2FzdDxSdW5Mb29wKj4obG9uZ1B0cikpCi0gICAgICAg
IHJldHVybiBydW5Mb29wLT53bmRQcm9jKGhXbmQsIG1lc3NhZ2UsIHdQYXJhbSwgbFBhcmFtKTsK
LQotICAgIGlmIChtZXNzYWdlID09IFdNX0NSRUFURSkgewotICAgICAgICBMUENSRUFURVNUUlVD
VCBjcmVhdGVTdHJ1Y3QgPSByZWludGVycHJldF9jYXN0PExQQ1JFQVRFU1RSVUNUPihsUGFyYW0p
OwotCi0gICAgICAgIC8vIEFzc29jaWF0ZSB0aGUgUnVuTG9vcCB3aXRoIHRoZSB3aW5kb3cuCi0g
ICAgICAgIDo6U2V0V2luZG93TG9uZ1B0cihoV25kLCAwLCAoTE9OR19QVFIpY3JlYXRlU3RydWN0
LT5scENyZWF0ZVBhcmFtcyk7Ci0gICAgICAgIHJldHVybiAwOwotICAgIH0KLQotICAgIHJldHVy
biA6OkRlZldpbmRvd1Byb2MoaFduZCwgbWVzc2FnZSwgd1BhcmFtLCBsUGFyYW0pOwotfQotCi1M
UkVTVUxUIFJ1bkxvb3A6OnduZFByb2MoSFdORCBoV25kLCBVSU5UIG1lc3NhZ2UsIFdQQVJBTSB3
UGFyYW0sIExQQVJBTSBsUGFyYW0pCi17Ci0gICAgc3dpdGNoIChtZXNzYWdlKSB7Ci0gICAgY2Fz
ZSBQZXJmb3JtV29ya01lc3NhZ2U6Ci0gICAgICAgIHBlcmZvcm1Xb3JrKCk7Ci0gICAgICAgIHJl
dHVybiAwOwotICAgIGNhc2UgV01fVElNRVI6Ci0gICAgICAgIFJ1bkxvb3A6OlRpbWVyQmFzZTo6
dGltZXJGaXJlZCh0aGlzLCB3UGFyYW0pOwotICAgICAgICByZXR1cm4gMDsKLSAgICB9Ci0KLSAg
ICByZXR1cm4gOjpEZWZXaW5kb3dQcm9jKGhXbmQsIG1lc3NhZ2UsIHdQYXJhbSwgbFBhcmFtKTsK
LX0KLQotdm9pZCBSdW5Mb29wOjpydW4oKQotewotICAgIE1TRyBtZXNzYWdlOwotICAgIHdoaWxl
IChCT09MIHJlc3VsdCA9IDo6R2V0TWVzc2FnZSgmbWVzc2FnZSwgMCwgMCwgMCkpIHsKLSAgICAg
ICAgaWYgKHJlc3VsdCA9PSAtMSkKLSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICA6OlRyYW5z
bGF0ZU1lc3NhZ2UoJm1lc3NhZ2UpOwotICAgICAgICA6OkRpc3BhdGNoTWVzc2FnZSgmbWVzc2Fn
ZSk7Ci0gICAgfQotfQotCi12b2lkIFJ1bkxvb3A6OnN0b3AoKQotewotICAgIDo6UG9zdFF1aXRN
ZXNzYWdlKDApOwotfQotCi1ib29sIFJ1bkxvb3A6OnJlZ2lzdGVyUnVuTG9vcE1lc3NhZ2VXaW5k
b3dDbGFzcygpCi17Ci0gICAgLy8gRklYTUU6IFRoaXMgcmVhbGx5IG9ubHkgbmVlZHMgdG8gYmUg
Y2FsbGVkIG9uY2UuCi0KLSAgICBXTkRDTEFTU0VYIHdpbmRvd0NsYXNzID0geyAwIH07Ci0gICAg
d2luZG93Q2xhc3MuY2JTaXplICAgICAgICAgID0gc2l6ZW9mKHdpbmRvd0NsYXNzKTsKLSAgICB3
aW5kb3dDbGFzcy5scGZuV25kUHJvYyAgICAgPSBSdW5Mb29wOjpSdW5Mb29wV25kUHJvYzsKLSAg
ICB3aW5kb3dDbGFzcy5jYlduZEV4dHJhICAgICAgPSBzaXplb2YoUnVuTG9vcCopOwotICAgIHdp
bmRvd0NsYXNzLmxwc3pDbGFzc05hbWUgICA9IGtSdW5Mb29wTWVzc2FnZVdpbmRvd0NsYXNzTmFt
ZTsKLQotICAgIHJldHVybiAhITo6UmVnaXN0ZXJDbGFzc0V4KCZ3aW5kb3dDbGFzcyk7Ci19Ci0K
LVJ1bkxvb3A6OlJ1bkxvb3AoKQotewotICAgIHJlZ2lzdGVyUnVuTG9vcE1lc3NhZ2VXaW5kb3dD
bGFzcygpOwotCi0gICAgbV9ydW5Mb29wTWVzc2FnZVdpbmRvdyA9IDo6Q3JlYXRlV2luZG93KGtS
dW5Mb29wTWVzc2FnZVdpbmRvd0NsYXNzTmFtZSwgMCwgMCwKLSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgQ1dfVVNFREVGQVVMVCwgMCwgQ1dfVVNFREVGQVVMVCwg
MCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSFdORF9NRVNT
QUdFLCAwLCAwLCB0aGlzKTsKLSAgICBBU1NFUlQoOjpJc1dpbmRvdyhtX3J1bkxvb3BNZXNzYWdl
V2luZG93KSk7Ci19Ci0KLVJ1bkxvb3A6On5SdW5Mb29wKCkKLXsKLSAgICAvLyBGSVhNRTogVGVh
ciBkb3duIHRoZSB3b3JrIGl0ZW0gcXVldWUgaGVyZS4KLX0KLQotdm9pZCBSdW5Mb29wOjp3YWtl
VXAoKQotewotICAgIC8vIEZJWE1FOiBObyBuZWVkIHRvIHdha2UgdXAgdGhlIHJ1biBsb29wIGlm
IHdlJ3ZlIGFscmVhZHkgY2FsbGVkIGRpc3BhdGNoCi0gICAgLy8gYmVmb3JlIHRoZSBydW4gbG9v
cCBoYXMgaGFkIHRoZSB0aW1lIHRvIHJlc3BvbmQuCi0gICAgOjpQb3N0TWVzc2FnZShtX3J1bkxv
b3BNZXNzYWdlV2luZG93LCBQZXJmb3JtV29ya01lc3NhZ2UsIHJlaW50ZXJwcmV0X2Nhc3Q8V1BB
UkFNPih0aGlzKSwgMCk7Ci19Ci0KLS8vIFJ1bkxvb3A6OlRpbWVyCi0KLXZvaWQgUnVuTG9vcDo6
VGltZXJCYXNlOjp0aW1lckZpcmVkKFJ1bkxvb3AqIHJ1bkxvb3AsIHVpbnQ2NF90IElEKQotewot
ICAgIFRpbWVyTWFwOjppdGVyYXRvciBpdCA9IHJ1bkxvb3AtPm1fYWN0aXZlVGltZXJzLmZpbmQo
SUQpOwotICAgIGlmIChpdCA9PSBydW5Mb29wLT5tX2FjdGl2ZVRpbWVycy5lbmQoKSkgewotICAg
ICAgICAvLyBUaGUgdGltZXIgbXVzdCBoYXZlIGJlZW4gc3RvcHBlZCBhZnRlciB0aGUgV01fVElN
RVIgbWVzc2FnZSB3YXMgcG9zdGVkIHRvIHRoZSBtZXNzYWdlIHF1ZXVlLgotICAgICAgICByZXR1
cm47Ci0gICAgfQotCi0gICAgVGltZXJCYXNlKiB0aW1lciA9IGl0LT5zZWNvbmQ7Ci0KLSAgICBp
ZiAoIXRpbWVyLT5tX2lzUmVwZWF0aW5nKSB7Ci0gICAgICAgIHJ1bkxvb3AtPm1fYWN0aXZlVGlt
ZXJzLnJlbW92ZShpdCk7Ci0gICAgICAgIDo6S2lsbFRpbWVyKHJ1bkxvb3AtPm1fcnVuTG9vcE1l
c3NhZ2VXaW5kb3csIElEKTsKLSAgICB9Ci0KLSAgICB0aW1lci0+ZmlyZWQoKTsKLX0KLQotc3Rh
dGljIHVpbnQ2NF90IGdlbmVyYXRlVGltZXJJRCgpCi17Ci0gICAgc3RhdGljIHVpbnQ2NF90IHVu
aXF1ZVRpbWVySUQgPSAxOwotICAgIHJldHVybiB1bmlxdWVUaW1lcklEKys7Ci19Ci0KLVJ1bkxv
b3A6OlRpbWVyQmFzZTo6VGltZXJCYXNlKFJ1bkxvb3AqIHJ1bkxvb3ApCi0gICAgOiBtX3J1bkxv
b3AocnVuTG9vcCkKLSAgICAsIG1fSUQoZ2VuZXJhdGVUaW1lcklEKCkpCi0gICAgLCBtX2lzUmVw
ZWF0aW5nKGZhbHNlKQotewotfQotCi1SdW5Mb29wOjpUaW1lckJhc2U6On5UaW1lckJhc2UoKQot
ewotICAgIHN0b3AoKTsKLX0KLQotdm9pZCBSdW5Mb29wOjpUaW1lckJhc2U6OnN0YXJ0KGRvdWJs
ZSBuZXh0RmlyZUludGVydmFsLCBib29sIHJlcGVhdCkKLXsKLSAgICBtX2lzUmVwZWF0aW5nID0g
cmVwZWF0OwotICAgIG1fcnVuTG9vcC0+bV9hY3RpdmVUaW1lcnMuc2V0KG1fSUQsIHRoaXMpOwot
ICAgIDo6U2V0VGltZXIobV9ydW5Mb29wLT5tX3J1bkxvb3BNZXNzYWdlV2luZG93LCBtX0lELCBu
ZXh0RmlyZUludGVydmFsICogMTAwMCwgMCk7Ci19Ci0KLXZvaWQgUnVuTG9vcDo6VGltZXJCYXNl
OjpzdG9wKCkKLXsKLSAgICBUaW1lck1hcDo6aXRlcmF0b3IgaXQgPSBtX3J1bkxvb3AtPm1fYWN0
aXZlVGltZXJzLmZpbmQobV9JRCk7Ci0gICAgaWYgKGl0ID09IG1fcnVuTG9vcC0+bV9hY3RpdmVU
aW1lcnMuZW5kKCkpCi0gICAgICAgIHJldHVybjsKLQotICAgIG1fcnVuTG9vcC0+bV9hY3RpdmVU
aW1lcnMucmVtb3ZlKGl0KTsKLSAgICA6OktpbGxUaW1lcihtX3J1bkxvb3AtPm1fcnVuTG9vcE1l
c3NhZ2VXaW5kb3csIG1fSUQpOwotfQotCi1ib29sIFJ1bkxvb3A6OlRpbWVyQmFzZTo6aXNBY3Rp
dmUoKSBjb25zdAotewotICAgIHJldHVybiBtX3J1bkxvb3AtPm1fYWN0aXZlVGltZXJzLmNvbnRh
aW5zKG1fSUQpOwotfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvUGx1Z2luUHJvY2Vzcy9Q
bHVnaW5Db250cm9sbGVyUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQyL1BsdWdpblByb2Nlc3MvUGx1
Z2luQ29udHJvbGxlclByb3h5LmgKaW5kZXggNTFjMzQ4ZGExYTUyY2QyMGU1OTk5OTA3YTVjYmVh
ZDk1ZmQ2OGVjMy4uYzc5MjExYThjMmFkMmI0MzQ5NDRkOTlkNWFkY2RiNjQzNGRkYjJlMyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdDIvUGx1Z2luUHJvY2Vzcy9QbHVnaW5Db250cm9sbGVyUHJv
eHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9QbHVnaW5Qcm9jZXNzL1BsdWdpbkNvbnRyb2xsZXJQ
cm94eS5oCkBAIC0zMiw4ICszMiw4IEBACiAjaW5jbHVkZSAiUGx1Z2luLmgiCiAjaW5jbHVkZSAi
UGx1Z2luQ29udHJvbGxlci5oIgogI2luY2x1ZGUgIlBsdWdpbkNvbnRyb2xsZXJQcm94eU1lc3Nh
Z2VzLmgiCi0jaW5jbHVkZSAiUnVuTG9vcC5oIgogI2luY2x1ZGUgIlNoYXJlYWJsZUJpdG1hcC5o
IgorI2luY2x1ZGUgPFdlYkNvcmUvUnVuTG9vcC5oPgogI2luY2x1ZGUgPHd0Zi9Ob25jb3B5YWJs
ZS5oPgogCiAjaWYgUExBVEZPUk0oTUFDKQpAQCAtMTY3LDE0ICsxNjcsMTQgQEAgcHJpdmF0ZToK
ICAgICBXZWJDb3JlOjpJbnRSZWN0IG1fZGlydHlSZWN0OwogCiAgICAgLy8gVGhlIHBhaW50IHRp
bWVyLCB1c2VkIGZvciBjb2FsZXNjaW5nIHBhaW50aW5nLgotICAgIFJ1bkxvb3A6OlRpbWVyPFBs
dWdpbkNvbnRyb2xsZXJQcm94eT4gbV9wYWludFRpbWVyOworICAgIFdlYkNvcmU6OlJ1bkxvb3A6
OlRpbWVyPFBsdWdpbkNvbnRyb2xsZXJQcm94eT4gbV9wYWludFRpbWVyOwogICAgIAogICAgIC8v
IEEgY291bnRlciB1c2VkIHRvIHByZXZlbnQgdGhlIHBsdWctaW4gZnJvbSBiZWluZyBkZXN0cm95
ZWQuCiAgICAgdW5zaWduZWQgbV9wbHVnaW5EZXN0cnVjdGlvblByb3RlY3RDb3VudDsKIAogICAg
IC8vIEEgdGltZXIgdGhhdCB3ZSB1c2UgdG8gcHJldmVudCBkZXN0cnVjdGlvbiBvZiB0aGUgcGx1
Zy1pbiB3aGlsZSBwbHVnLWluCiAgICAgLy8gY29kZSBpcyBvbiB0aGUgc3RhY2suCi0gICAgUnVu
TG9vcDo6VGltZXI8UGx1Z2luQ29udHJvbGxlclByb3h5PiBtX3BsdWdpbkRlc3Ryb3lUaW1lcjsK
KyAgICBXZWJDb3JlOjpSdW5Mb29wOjpUaW1lcjxQbHVnaW5Db250cm9sbGVyUHJveHk+IG1fcGx1
Z2luRGVzdHJveVRpbWVyOwogCiAgICAgLy8gV2lsbCBwb2ludCB0byB0aGUgcGx1Zy1pbiBjcmVh
dGlvbiBwYXJhbWV0ZXJzIG9mIHRoZSBwbHVnLWluIHdlJ3JlIGN1cnJlbnRseSBpbml0aWFsaXpp
bmcgYW5kIHdpbGwgYmUgbnVsbCB3aGVuIHdlJ3JlIGRvbmUgaW5pdGlhbGl6aW5nLgogICAgIGNv
bnN0IFBsdWdpbkNyZWF0aW9uUGFyYW1ldGVycyogbV9wbHVnaW5DcmVhdGlvblBhcmFtZXRlcnM7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9QbHVnaW5Qcm9jZXNzL1BsdWdpblByb2Nlc3Mu
Y3BwIGIvU291cmNlL1dlYktpdDIvUGx1Z2luUHJvY2Vzcy9QbHVnaW5Qcm9jZXNzLmNwcAppbmRl
eCBhMzY2ZjVkYjcxNDIxMzcwNmJkZWI1OTg1NTk3NDM4YThkNTRlNjNlLi4wOTliZjNhNDhmZmQy
M2ZjNGU0YWM3NzEyZGM5MjY3YjMxN2VkYjU5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9Q
bHVnaW5Qcm9jZXNzL1BsdWdpblByb2Nlc3MuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1BsdWdp
blByb2Nlc3MvUGx1Z2luUHJvY2Vzcy5jcHAKQEAgLTM2LDYgKzM2LDcgQEAKICNpbmNsdWRlICJQ
bHVnaW5Qcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmgiCiAjaW5jbHVkZSAiV2ViUHJvY2Vzc0Nv
bm5lY3Rpb24uaCIKICNpbmNsdWRlIDxXZWJDb3JlL05vdEltcGxlbWVudGVkLmg+CisjaW5jbHVk
ZSA8V2ViQ29yZS9SdW5Mb29wLmg+CiAKICNpZiBVU0UoVU5JWF9ET01BSU5fU09DS0VUUykKICNp
bmNsdWRlIDxlcnJuby5oPgpAQCAtNTUsNiArNTYsOCBAQAogI2VuZGlmIC8vIFNPQ0tfU0VRUEFD
S0VUCiAjZW5kaWYgLy8gVVNFKFVOSVhfRE9NQUlOX1NPQ0tFVFMpCiAKK3VzaW5nIG5hbWVzcGFj
ZSBXZWJDb3JlOworCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAogc3RhdGljIGNvbnN0IGRvdWJsZSBz
aHV0ZG93blRpbWVvdXQgPSAxNS4wOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvUGx1Z2lu
UHJvY2Vzcy9QbHVnaW5Qcm9jZXNzLmggYi9Tb3VyY2UvV2ViS2l0Mi9QbHVnaW5Qcm9jZXNzL1Bs
dWdpblByb2Nlc3MuaAppbmRleCBhNjEwMzI2YjQ3OTZjYzQ0ZDFmNzJlMTYzZmI5YTg0YTdiOTcz
YzRhLi4wY2YzOWM2ZTU5ZWMxMTJmNDA5NmUxODQ4MzQ4MDI3ZWVmMDg4YWE5IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0Mi9QbHVnaW5Qcm9jZXNzL1BsdWdpblByb2Nlc3MuaAorKysgYi9Tb3Vy
Y2UvV2ViS2l0Mi9QbHVnaW5Qcm9jZXNzL1BsdWdpblByb2Nlc3MuaApAQCAtMjksMTAgKzI5LDEz
IEBACiAjaWYgRU5BQkxFKFBMVUdJTl9QUk9DRVNTKQogCiAjaW5jbHVkZSAiQ2hpbGRQcm9jZXNz
LmgiCi0jaW5jbHVkZSAiUnVuTG9vcC5oIgogI2luY2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+CiAjaW5j
bHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CiAKK25hbWVzcGFjZSBXZWJDb3JlIHsKK2NsYXNz
IFJ1bkxvb3A7Cit9CisKIG5hbWVzcGFjZSBXZWJLaXQgewogCiBjbGFzcyBOZXRzY2FwZVBsdWdp
bk1vZHVsZTsKQEAgLTQ0LDcgKzQ3LDcgQEAgY2xhc3MgUGx1Z2luUHJvY2VzcyA6IENoaWxkUHJv
Y2VzcyB7CiBwdWJsaWM6CiAgICAgc3RhdGljIFBsdWdpblByb2Nlc3MmIHNoYXJlZCgpOwogCi0g
ICAgdm9pZCBpbml0aWFsaXplKENvcmVJUEM6OkNvbm5lY3Rpb246OklkZW50aWZpZXIsIFJ1bkxv
b3AqKTsKKyAgICB2b2lkIGluaXRpYWxpemUoQ29yZUlQQzo6Q29ubmVjdGlvbjo6SWRlbnRpZmll
ciwgV2ViQ29yZTo6UnVuTG9vcCopOwogICAgIHZvaWQgcmVtb3ZlV2ViUHJvY2Vzc0Nvbm5lY3Rp
b24oV2ViUHJvY2Vzc0Nvbm5lY3Rpb24qIHdlYlByb2Nlc3NDb25uZWN0aW9uKTsKIAogICAgIE5l
dHNjYXBlUGx1Z2luTW9kdWxlKiBuZXRzY2FwZVBsdWdpbk1vZHVsZSgpOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdDIvUGx1Z2luUHJvY2Vzcy9XZWJQcm9jZXNzQ29ubmVjdGlvbi5jcHAgYi9T
b3VyY2UvV2ViS2l0Mi9QbHVnaW5Qcm9jZXNzL1dlYlByb2Nlc3NDb25uZWN0aW9uLmNwcAppbmRl
eCBhYjYzYjA1YmJkZjg2ZjJiMjMyOWM4ZGMzM2QwODcxODBjYjczOWZkLi5hMjdkMTEzOTA2OWRh
OTc3ZmM4MmVjYmRkMmFlYzk0YzdhN2VkNjVmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9Q
bHVnaW5Qcm9jZXNzL1dlYlByb2Nlc3NDb25uZWN0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0
Mi9QbHVnaW5Qcm9jZXNzL1dlYlByb2Nlc3NDb25uZWN0aW9uLmNwcApAQCAtMzQsMTAgKzM0LDEx
IEBACiAjaW5jbHVkZSAiUGx1Z2luQ3JlYXRpb25QYXJhbWV0ZXJzLmgiCiAjaW5jbHVkZSAiUGx1
Z2luUHJvY2Vzcy5oIgogI2luY2x1ZGUgIlBsdWdpblByb2Nlc3NDb25uZWN0aW9uTWVzc2FnZXMu
aCIKLSNpbmNsdWRlICJSdW5Mb29wLmgiCisjaW5jbHVkZSA8V2ViQ29yZS9SdW5Mb29wLmg+CiAK
LW5hbWVzcGFjZSBXZWJLaXQgewordXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiAKK25hbWVzcGFj
ZSBXZWJLaXQgewogCiBjbGFzcyBDb25uZWN0aW9uU3RhY2sgewogcHVibGljOgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdDIvUGx1Z2luUHJvY2Vzcy9tYWMvUGx1Z2luUHJvY2Vzc01haW5NYWMu
bW0gYi9Tb3VyY2UvV2ViS2l0Mi9QbHVnaW5Qcm9jZXNzL21hYy9QbHVnaW5Qcm9jZXNzTWFpbk1h
Yy5tbQppbmRleCA1ZTkzZTJiZGRhNDEzZmI4YzNkOTI5YWFkYWUwNDYxYTMzMzYyODZkLi44NTYx
Zjk5NTk0NDA5Y2YwNzhlZjE2ZDAxNDEzM2ViMDJjOGI1ZjVlIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0Mi9QbHVnaW5Qcm9jZXNzL21hYy9QbHVnaW5Qcm9jZXNzTWFpbk1hYy5tbQorKysgYi9T
b3VyY2UvV2ViS2l0Mi9QbHVnaW5Qcm9jZXNzL21hYy9QbHVnaW5Qcm9jZXNzTWFpbk1hYy5tbQpA
QCAtMzIsMTkgKzMyLDIxIEBACiAjaW1wb3J0ICJFbnZpcm9ubWVudFV0aWxpdGllcy5oIgogI2lt
cG9ydCAiTmV0c2NhcGVQbHVnaW5Nb2R1bGUuaCIKICNpbXBvcnQgIlBsdWdpblByb2Nlc3MuaCIK
LSNpbXBvcnQgIlJ1bkxvb3AuaCIKKyNpbXBvcnQgPFdlYkNvcmUvUnVuTG9vcC5oPgogI2ltcG9y
dCA8V2ViS2l0U3lzdGVtSW50ZXJmYWNlLmg+CiAjaW1wb3J0IDxtYWNoL21hY2hfZXJyb3IuaD4K
ICNpbXBvcnQgPHJ1bnRpbWUvSW5pdGlhbGl6ZVRocmVhZGluZy5oPgogI2ltcG9ydCA8c2VydmVy
cy9ib290c3RyYXAuaD4KKyNpbXBvcnQgPHN0ZGlvLmg+CiAjaW1wb3J0IDx3dGYvTWFpblRocmVh
ZC5oPgogI2ltcG9ydCA8d3RmL1JldGFpblB0ci5oPgogI2ltcG9ydCA8d3RmL3RleHQvQ1N0cmlu
Zy5oPgogI2ltcG9ydCA8d3RmL3RleHQvV1RGU3RyaW5nLmg+Ci0jaW5jbHVkZSA8c3RkaW8uaD4K
IAogI2RlZmluZSBTSE9XX0NSQVNIX1JFUE9SVEVSIDEKIAordXNpbmcgbmFtZXNwYWNlIFdlYkNv
cmU7CisKIG5hbWVzcGFjZSBXZWJLaXQgewogCiAvLyBGSVhNRTogVGhlcmUgaXMgbXVjaCBjb2Rl
IGhlcmUgdGhhdCBpcyBkdXBsaWNhdGVkIGluIFdlYlByb2Nlc3NNYWluTWFjLm1tLCB3ZSBzaG91
bGQgYWRkIGEgc2hhcmVkIGJhc2UgY2xhc3Mgd2hlcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQyL1BsdWdpblByb2Nlc3MvcXQvUGx1Z2luUHJvY2Vzc01haW5RdC5jcHAgYi9Tb3VyY2UvV2Vi
S2l0Mi9QbHVnaW5Qcm9jZXNzL3F0L1BsdWdpblByb2Nlc3NNYWluUXQuY3BwCmluZGV4IDNlMDAz
M2ZmMGFiMzM3NjUwZTUzZDA4MWM4OWY0NDQxNGE2NzhhNzUuLmQzYTBlYzNlMjQ1OTU2Yjk4NTAw
ZDU2N2U1NjVmYWExNTA2YTAwNTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1BsdWdpblBy
b2Nlc3MvcXQvUGx1Z2luUHJvY2Vzc01haW5RdC5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvUGx1
Z2luUHJvY2Vzcy9xdC9QbHVnaW5Qcm9jZXNzTWFpblF0LmNwcApAQCAtMzAsOCArMzAsOCBAQAog
CiAjaW5jbHVkZSAiQ29tbWFuZExpbmUuaCIKICNpbmNsdWRlICJQbHVnaW5Qcm9jZXNzLmgiCi0j
aW5jbHVkZSAiUnVuTG9vcC5oIgogI2luY2x1ZGUgPFdlYkNvcmUvTm90SW1wbGVtZW50ZWQuaD4K
KyNpbmNsdWRlIDxXZWJDb3JlL1J1bkxvb3AuaD4KICNpbmNsdWRlIDxydW50aW1lL0luaXRpYWxp
emVUaHJlYWRpbmcuaD4KICNpbmNsdWRlIDx3dGYvTWFpblRocmVhZC5oPgogI2luY2x1ZGUgPHd0
Zi9SZXRhaW5QdHIuaD4KQEAgLTQwLDYgKzQwLDggQEAKIAogI2RlZmluZSBTSE9XX0NSQVNIX1JF
UE9SVEVSIDEKIAordXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CisKIG5hbWVzcGFjZSBXZWJLaXQg
ewogCiBpbnQgUGx1Z2luUHJvY2Vzc01haW4oY29uc3QgQ29tbWFuZExpbmUmIGNvbW1hbmRMaW5l
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL0NoaWxkUHJvY2Vzcy5jcHAgYi9T
b3VyY2UvV2ViS2l0Mi9TaGFyZWQvQ2hpbGRQcm9jZXNzLmNwcAppbmRleCA4YjNjZGIyODJjYjli
ODNmNGI0OGUyMDc1MzQ2Zjg1ZmZiOWQ0YTZjLi41NzFmZTk1ODYwZTMwZWY2N2ZhYjIwZjg1MWYy
OTNhMDVmYzRhODI5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQ2hpbGRQcm9j
ZXNzLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQ2hpbGRQcm9jZXNzLmNwcApAQCAt
MzAsNiArMzAsOCBAQAogI2luY2x1ZGUgPHVuaXN0ZC5oPgogI2VuZGlmCiAKK3VzaW5nIG5hbWVz
cGFjZSBXZWJDb3JlOworCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAogdm9pZCBDaGlsZFByb2Nlc3M6
OmRpc2FibGVUZXJtaW5hdGlvbigpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQv
Q2hpbGRQcm9jZXNzLmggYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQ2hpbGRQcm9jZXNzLmgKaW5k
ZXggNDI1OTgzMGQ4YjcyOTQzNDllYTQ3OTYyN2I0MzQ5YjA3NWM2YWNhNi4uNTBlY2ViNTk0ZWMy
OGZjOGUzZmU0OGU5MzhjZTFlZmNjMjkxMTJjNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIv
U2hhcmVkL0NoaWxkUHJvY2Vzcy5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9DaGlsZFBy
b2Nlc3MuaApAQCAtMjcsNyArMjcsNyBAQAogI2RlZmluZSBDaGlsZFByb2Nlc3NfaAogCiAjaW5j
bHVkZSAiQ29ubmVjdGlvbi5oIgotI2luY2x1ZGUgIlJ1bkxvb3AuaCIKKyNpbmNsdWRlIDxXZWJD
b3JlL1J1bkxvb3AuaD4KIAogbmFtZXNwYWNlIFdlYktpdCB7CiAKQEAgLTc3LDcgKzc3LDcgQEAg
cHJpdmF0ZToKICAgICAvLyBhZnRlciBhIGdpdmVuIHBlcmlvZCBvZiB0aW1lLgogICAgIHVuc2ln
bmVkIG1fdGVybWluYXRpb25Db3VudGVyOwogCi0gICAgUnVuTG9vcDo6VGltZXI8Q2hpbGRQcm9j
ZXNzPiBtX3Rlcm1pbmF0aW9uVGltZXI7CisgICAgV2ViQ29yZTo6UnVuTG9vcDo6VGltZXI8Q2hp
bGRQcm9jZXNzPiBtX3Rlcm1pbmF0aW9uVGltZXI7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJL
aXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1RhcmdldC5wcmkgYi9Tb3VyY2UvV2ViS2l0
Mi9UYXJnZXQucHJpCmluZGV4IDM1OTgzZjA3NjU2ZGI0ODBmODM1YWNjZjYzZmUzY2Q2NmRhOTdj
OTAuLjVlZTI3OTcyMjQ5MDRmNGE0NzZhZjYyMGE4NWJlNjQ2NmYxMDZlNzUgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQyL1RhcmdldC5wcmkKKysrIGIvU291cmNlL1dlYktpdDIvVGFyZ2V0LnBy
aQpAQCAtMzEsNyArMzEsNiBAQCBIRUFERVJTICs9IFwKICAgICBQbGF0Zm9ybS9Mb2dnaW5nLmgg
XAogICAgIFBsYXRmb3JtL01vZHVsZS5oIFwKICAgICBQbGF0Zm9ybS9QbGF0Zm9ybVByb2Nlc3NJ
ZGVudGlmaWVyLmggXAotICAgIFBsYXRmb3JtL1J1bkxvb3AuaCBcCiAgICAgUGxhdGZvcm0vU2hh
cmVkTWVtb3J5LmggXAogICAgIFBsYXRmb3JtL1dvcmtRdWV1ZS5oIFwKICAgICBQbHVnaW5Qcm9j
ZXNzL1BsdWdpbkNvbnRyb2xsZXJQcm94eS5oIFwKQEAgLTM3MywxMCArMzcyLDggQEAgU09VUkNF
UyArPSBcCiAgICAgUGxhdGZvcm0vQ29yZUlQQy9EYXRhUmVmZXJlbmNlLmNwcCBcCiAgICAgUGxh
dGZvcm0vTG9nZ2luZy5jcHAgXAogICAgIFBsYXRmb3JtL01vZHVsZS5jcHAgXAotICAgIFBsYXRm
b3JtL1J1bkxvb3AuY3BwIFwKICAgICBQbGF0Zm9ybS9Xb3JrUXVldWUuY3BwIFwKICAgICBQbGF0
Zm9ybS9xdC9Nb2R1bGVRdC5jcHAgXAotICAgIFBsYXRmb3JtL3F0L1J1bkxvb3BRdC5jcHAgXAog
ICAgIFBsdWdpblByb2Nlc3MvUGx1Z2luQ29udHJvbGxlclByb3h5LmNwcCBcCiAgICAgUGx1Z2lu
UHJvY2Vzcy9QbHVnaW5Qcm9jZXNzLmNwcCBcCiAgICAgUGx1Z2luUHJvY2Vzcy9XZWJQcm9jZXNz
Q29ubmVjdGlvbi5jcHAgXApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQ
SS9tYWMvRmluZEluZGljYXRvcldpbmRvdy5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQ
SS9tYWMvRmluZEluZGljYXRvcldpbmRvdy5oCmluZGV4IDc4MzZhNTQ2YTU0YWFkMTM4ZTRhMjcz
MWU3YzIwN2Q0YTlhNjdiODcuLmNiZTM0YTFhOTBmYjliYTlhNWJmNzkzNjViYjE3ZDIzNGE5ZDhh
NDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvbWFjL0ZpbmRJbmRp
Y2F0b3JXaW5kb3cuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL21hYy9GaW5k
SW5kaWNhdG9yV2luZG93LmgKQEAgLTI2LDEyICsyNiwxMiBAQAogI2lmbmRlZiBGaW5kSW5kaWNh
dG9yV2luZG93X2gKICNkZWZpbmUgRmluZEluZGljYXRvcldpbmRvd19oCiAKKyNpbXBvcnQgIldl
YktpdFN5c3RlbUludGVyZmFjZS5oIgorI2ltcG9ydCA8V2ViQ29yZS9SdW5Mb29wLmg+CiAjaW1w
b3J0IDx3dGYvTm9uY29weWFibGUuaD4KICNpbXBvcnQgPHd0Zi9QYXNzT3duUHRyLmg+CiAjaW1w
b3J0IDx3dGYvUmVmUHRyLmg+CiAjaW1wb3J0IDx3dGYvUmV0YWluUHRyLmg+Ci0jaW1wb3J0ICJS
dW5Mb29wLmgiCi0jaW1wb3J0ICJXZWJLaXRTeXN0ZW1JbnRlcmZhY2UuaCIKIAogQGNsYXNzIFdL
RmluZEluZGljYXRvcldpbmRvd0FuaW1hdGlvbjsKIEBjbGFzcyBXS1ZpZXc7CkBAIC02OCw3ICs2
OCw3IEBAIHByaXZhdGU6CiAgICAgV0tXaW5kb3dCb3VuY2VBbmltYXRpb25Db250ZXh0UmVmIG1f
Ym91bmNlQW5pbWF0aW9uQ29udGV4dDsKICAgICBSZXRhaW5QdHI8V0tGaW5kSW5kaWNhdG9yV2lu
ZG93QW5pbWF0aW9uPiBtX2JvdW5jZUFuaW1hdGlvbjsKIAotICAgIFJ1bkxvb3A6OlRpbWVyPEZp
bmRJbmRpY2F0b3JXaW5kb3c+IG1fc3RhcnRGYWRlT3V0VGltZXI7CisgICAgV2ViQ29yZTo6UnVu
TG9vcDo6VGltZXI8RmluZEluZGljYXRvcldpbmRvdz4gbV9zdGFydEZhZGVPdXRUaW1lcjsKICAg
ICBSZXRhaW5QdHI8V0tGaW5kSW5kaWNhdG9yV2luZG93QW5pbWF0aW9uPiBtX2ZhZGVPdXRBbmlt
YXRpb247CiB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL21h
Yy9XS1ZpZXcubW0gYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL21hYy9XS1ZpZXcubW0K
aW5kZXggMWQ4NzA5ZDgyYTIyNGQ0YmYwZTg2MWY5OWE5Nzc4NGQ4N2E3ZmM0OC4uM2VjM2U3ZmNi
NjBhMDVkY2MwYWE5ODBmZDY1NWI4MTI2OWZhZWJiMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL0FQSS9tYWMvV0tWaWV3Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9BUEkvbWFjL1dLVmlldy5tbQpAQCAtNDAsNyArNDAsNiBAQAogI2ltcG9ydCAiUERGVmll
d0NvbnRyb2xsZXIuaCIKICNpbXBvcnQgIlBhZ2VDbGllbnRJbXBsLmgiCiAjaW1wb3J0ICJQYXN0
ZWJvYXJkVHlwZXMuaCIKLSNpbXBvcnQgIlJ1bkxvb3AuaCIKICNpbXBvcnQgIlRleHRDaGVja2Vy
LmgiCiAjaW1wb3J0ICJUZXh0Q2hlY2tlclN0YXRlLmgiCiAjaW1wb3J0ICJUaWxlZENvcmVBbmlt
YXRpb25EcmF3aW5nQXJlYVByb3h5LmgiCkBAIC03MCw2ICs2OSw3IEBACiAjaW1wb3J0IDxXZWJD
b3JlL1BsYXRmb3JtRXZlbnRGYWN0b3J5TWFjLmg+CiAjaW1wb3J0IDxXZWJDb3JlL1BsYXRmb3Jt
U2NyZWVuLmg+CiAjaW1wb3J0IDxXZWJDb3JlL1JlZ2lvbi5oPgorI2ltcG9ydCA8V2ViQ29yZS9S
dW5Mb29wLmg+CiAjaW1wb3J0IDxXZWJLaXRTeXN0ZW1JbnRlcmZhY2UuaD4KICNpbXBvcnQgPHd0
Zi9SZWZQdHIuaD4KICNpbXBvcnQgPHd0Zi9SZXRhaW5QdHIuaD4KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9EcmF3aW5nQXJlYVByb3h5SW1wbC5oIGIvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL0RyYXdpbmdBcmVhUHJveHlJbXBsLmgKaW5kZXggMDVkNzM1NDIzNjI2N2E1
NWI0NWM2MDliOGQyYmE1NDdlMTBmOGJkYi4uYzE2NTFmNDFmYTkzNWQxZjQ4MDg0MTMxNmI2YTIx
OGFlZTJiZThhNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0RyYXdpbmdB
cmVhUHJveHlJbXBsLmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0RyYXdpbmdBcmVh
UHJveHlJbXBsLmgKQEAgLTI5LDcgKzI5LDcgQEAKICNpbmNsdWRlICJCYWNraW5nU3RvcmUuaCIK
ICNpbmNsdWRlICJEcmF3aW5nQXJlYVByb3h5LmgiCiAjaW5jbHVkZSAiTGF5ZXJUcmVlQ29udGV4
dC5oIgotI2luY2x1ZGUgIlJ1bkxvb3AuaCIKKyNpbmNsdWRlIDxXZWJDb3JlL1J1bkxvb3AuaD4K
ICNpbmNsdWRlIDx3dGYvT3duUHRyLmg+CiAjaW5jbHVkZSA8d3RmL1Bhc3NPd25QdHIuaD4KIApA
QCAtMTE2LDcgKzExNiw3IEBAIHByaXZhdGU6CiAgICAgYm9vbCBtX2lzQmFja2luZ1N0b3JlRGlz
Y2FyZGFibGU7CiAgICAgT3duUHRyPEJhY2tpbmdTdG9yZT4gbV9iYWNraW5nU3RvcmU7CiAKLSAg
ICBSdW5Mb29wOjpUaW1lcjxEcmF3aW5nQXJlYVByb3h5SW1wbD4gbV9kaXNjYXJkQmFja2luZ1N0
b3JlVGltZXI7CisgICAgV2ViQ29yZTo6UnVuTG9vcDo6VGltZXI8RHJhd2luZ0FyZWFQcm94eUlt
cGw+IG1fZGlzY2FyZEJhY2tpbmdTdG9yZVRpbWVyOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2Vi
S2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvTGF1bmNoZXIvVGhyZWFk
TGF1bmNoZXIuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0xhdW5jaGVyL1RocmVhZExh
dW5jaGVyLmNwcAppbmRleCAzYzBmYmYxNjBjYzc2ZTYwMTg0MTVkNmQzYjM0YzY5NjE2MTZiYTA0
Li5mMzdhNWQzYTI3MTVhYTE1NzgwZGZkYWZlMWM0YTRjNWU0ZDBkZTg1IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvTGF1bmNoZXIvVGhyZWFkTGF1bmNoZXIuY3BwCisrKyBi
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9MYXVuY2hlci9UaHJlYWRMYXVuY2hlci5jcHAKQEAg
LTI2LDcgKzI2LDkgQEAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJUaHJlYWRMYXVu
Y2hlci5oIgogCi0jaW5jbHVkZSAiUnVuTG9vcC5oIgorI2luY2x1ZGUgPFdlYkNvcmUvUnVuTG9v
cC5oPgorCit1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKIAogbmFtZXNwYWNlIFdlYktpdCB7CiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9MYXVuY2hlci9ndGsvUHJvY2Vz
c0xhdW5jaGVyR3RrLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9MYXVuY2hlci9ndGsv
UHJvY2Vzc0xhdW5jaGVyR3RrLmNwcAppbmRleCBjNjM0NWE2YzY5MjU3ZWUwM2ZlNTgzYzlmNWI4
Y2JiMGU1NjRmOGY0Li45NGNhZDVmYzQ0ODIwZGExOThkYTg3MWNjYmQ2ZmE0N2U0Mzg5YjJiIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvTGF1bmNoZXIvZ3RrL1Byb2Nlc3NM
YXVuY2hlckd0ay5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0xhdW5jaGVyL2d0
ay9Qcm9jZXNzTGF1bmNoZXJHdGsuY3BwCkBAIC0yOCwxOSArMjgsMjAgQEAKICNpbmNsdWRlICJQ
cm9jZXNzTGF1bmNoZXIuaCIKIAogI2luY2x1ZGUgIkNvbm5lY3Rpb24uaCIKLSNpbmNsdWRlICJS
dW5Mb29wLmgiCiAjaW5jbHVkZSA8V2ViQ29yZS9GaWxlU3lzdGVtLmg+CiAjaW5jbHVkZSA8V2Vi
Q29yZS9SZXNvdXJjZUhhbmRsZS5oPgorI2luY2x1ZGUgPFdlYkNvcmUvUnVuTG9vcC5oPgogI2lu
Y2x1ZGUgPGVycm5vLmg+CiAjaW5jbHVkZSA8bG9jYWxlLmg+Ci0jaWYgT1MoTElOVVgpCi0jaW5j
bHVkZSA8c3lzL3ByY3RsLmg+Ci0jZW5kaWYKICNpbmNsdWRlIDx3dGYvdGV4dC9DU3RyaW5nLmg+
CiAjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CiAjaW5jbHVkZSA8d3RmL2dvYmplY3Qv
R093blB0ci5oPgogI2luY2x1ZGUgPHd0Zi9nb2JqZWN0L0dsaWJVdGlsaXRpZXMuaD4KIAorI2lm
IE9TKExJTlVYKQorI2luY2x1ZGUgPHN5cy9wcmN0bC5oPgorI2VuZGlmCisKICNpZmRlZiBTT0NL
X1NFUVBBQ0tFVAogI2RlZmluZSBTT0NLRVRfVFlQRSBTT0NLX1NFUVBBQ0tFVAogI2Vsc2UKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9MYXVuY2hlci9tYWMvUHJvY2Vzc0xh
dW5jaGVyTWFjLm1tIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0xhdW5jaGVyL21hYy9Qcm9j
ZXNzTGF1bmNoZXJNYWMubW0KaW5kZXggYzcwZjYyZWRmYmNmODdjNmFiMjhhZTZiYzcyYzRhYzI3
OGQ3ZTk3NC4uZGM4MzljODRmNWYzM2ZiYWYwZGE5NjBmMTU3N2E4ZDY2ODUwZjljZiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0xhdW5jaGVyL21hYy9Qcm9jZXNzTGF1bmNo
ZXJNYWMubW0KKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0xhdW5jaGVyL21hYy9Qcm9j
ZXNzTGF1bmNoZXJNYWMubW0KQEAgLTI4LDkgKzI4LDkgQEAKIAogI2ltcG9ydCAiRHluYW1pY0xp
bmtlckVudmlyb25tZW50RXh0cmFjdG9yLmgiCiAjaW1wb3J0ICJFbnZpcm9ubWVudFZhcmlhYmxl
cy5oIgotI2ltcG9ydCAiUnVuTG9vcC5oIgogI2ltcG9ydCAiV2ViUHJvY2Vzcy5oIgogI2ltcG9y
dCAiV2ViS2l0U3lzdGVtSW50ZXJmYWNlLmgiCisjaW1wb3J0IDxXZWJDb3JlL1J1bkxvb3AuaD4K
ICNpbXBvcnQgPGNydF9leHRlcm5zLmg+CiAjaW1wb3J0IDxtYWNoLW8vZHlsZC5oPgogI2ltcG9y
dCA8bWFjaC9tYWNoaW5lLmg+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
TGF1bmNoZXIvbWFjL1RocmVhZExhdW5jaGVyTWFjLm1tIGIvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL0xhdW5jaGVyL21hYy9UaHJlYWRMYXVuY2hlck1hYy5tbQppbmRleCAxYzc0YjdkMjg3YWY5
YmE2NTkyYzdkZjM5YjJhMDUzMTQwZjNlZjAzLi5kZDUzYjNlZjE0ZTk5NDAxNDNhYmNhMzFiYTYy
N2M5YWVjMTgyNzcwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvTGF1bmNo
ZXIvbWFjL1RocmVhZExhdW5jaGVyTWFjLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9MYXVuY2hlci9tYWMvVGhyZWFkTGF1bmNoZXJNYWMubW0KQEAgLTI2LDEzICsyNiwxNSBAQAog
I2ltcG9ydCAiY29uZmlnLmgiCiAjaW1wb3J0ICJUaHJlYWRMYXVuY2hlci5oIgogCi0jaW1wb3J0
ICJSdW5Mb29wLmgiCiAjaW1wb3J0ICJXZWJQcm9jZXNzLmgiCiAjaW1wb3J0ICJXZWJTeXN0ZW1J
bnRlcmZhY2UuaCIKICNpbXBvcnQgPHJ1bnRpbWUvSW5pdGlhbGl6ZVRocmVhZGluZy5oPgorI2lt
cG9ydCA8V2ViQ29yZS9SdW5Mb29wLmg+CiAjaW1wb3J0IDx3dGYvTWFpblRocmVhZC5oPgogI2lt
cG9ydCA8d3RmL1RocmVhZGluZy5oPgogCit1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKKwogbmFt
ZXNwYWNlIFdlYktpdCB7CiAKIHN0YXRpYyB2b2lkKiB3ZWJUaHJlYWRCb2R5KHZvaWQqIGNvbnRl
eHQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvTGF1bmNoZXIvcXQvUHJv
Y2Vzc0xhdW5jaGVyUXQuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0xhdW5jaGVyL3F0
L1Byb2Nlc3NMYXVuY2hlclF0LmNwcAppbmRleCA4MzdmNTliYWYxYjVmZjVhMTY1NDVmNjU5MDdm
NmFkMzUwNDAxMDFkLi44ZTgyNjIwNjM2N2VlZDhlYjFjMjVjZTJmNGI0NTY0YjA4Zjc0YTA4IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvTGF1bmNoZXIvcXQvUHJvY2Vzc0xh
dW5jaGVyUXQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9MYXVuY2hlci9xdC9Q
cm9jZXNzTGF1bmNoZXJRdC5jcHAKQEAgLTI4LDcgKzI4LDYgQEAKICNpbmNsdWRlICJQcm9jZXNz
TGF1bmNoZXIuaCIKIAogI2luY2x1ZGUgIkNvbm5lY3Rpb24uaCIKLSNpbmNsdWRlICJSdW5Mb29w
LmgiCiAjaW5jbHVkZSAiV2ViUHJvY2Vzcy5oIgogI2luY2x1ZGUgPFFDb3JlQXBwbGljYXRpb24+
CiAjaW5jbHVkZSA8UURlYnVnPgpAQCAtMzksNiArMzgsNyBAQAogI2luY2x1ZGUgPFFTdHJpbmc+
CiAjaW5jbHVkZSA8UXRDb3JlL3FnbG9iYWwuaD4KICNpbmNsdWRlIDxXZWJDb3JlL05vdEltcGxl
bWVudGVkLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9SdW5Mb29wLmg+CiAjaW5jbHVkZSA8ZXJybm8u
aD4KICNpbmNsdWRlIDxmY250bC5oPgogI2luY2x1ZGUgPHJ1bnRpbWUvSW5pdGlhbGl6ZVRocmVh
ZGluZy5oPgpAQCAtNTAsNiArNTAsNyBAQAogI2luY2x1ZGUgPHd0Zi9QYXNzUmVmUHRyLmg+CiAj
aW5jbHVkZSA8d3RmL1RocmVhZGluZy5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5o
PgorCiAjaWYgZGVmaW5lZChRX09TX0xJTlVYKQogI2luY2x1ZGUgPHN5cy9wcmN0bC5oPgogI2lu
Y2x1ZGUgPHNpZ25hbC5oPgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0xh
dW5jaGVyL3F0L1RocmVhZExhdW5jaGVyUXQuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L0xhdW5jaGVyL3F0L1RocmVhZExhdW5jaGVyUXQuY3BwCmluZGV4IDdiOTVjYTA0OTlhNzg4NGFj
ZjA4ZmM1Yjc3NTJjZjZmYTNmMTlmNDEuLjFkMGNhZjNhZWM0N2U3ODg2YTgzYjgwZWU1OWNjMjE0
OGYyZmI1OGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9MYXVuY2hlci9x
dC9UaHJlYWRMYXVuY2hlclF0LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvTGF1
bmNoZXIvcXQvVGhyZWFkTGF1bmNoZXJRdC5jcHAKQEAgLTI3LDggKzI3LDggQEAKICNpbmNsdWRl
ICJjb25maWcuaCIKICNpbmNsdWRlICJUaHJlYWRMYXVuY2hlci5oIgogCi0jaW5jbHVkZSAiUnVu
TG9vcC5oIgogI2luY2x1ZGUgIldlYlByb2Nlc3MuaCIKKyNpbmNsdWRlIDxXZWJDb3JlL1J1bkxv
b3AuaD4KICNpbmNsdWRlIDxydW50aW1lL0luaXRpYWxpemVUaHJlYWRpbmcuaD4KICNpbmNsdWRl
IDx3dGYvTWFpblRocmVhZC5oPgogI2luY2x1ZGUgPHd0Zi9UaHJlYWRpbmcuaD4KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9MYXVuY2hlci93aW4vUHJvY2Vzc0xhdW5jaGVy
V2luLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9MYXVuY2hlci93aW4vUHJvY2Vzc0xh
dW5jaGVyV2luLmNwcAppbmRleCBkNTI2YzAzMDc4ZDU3Y2JhZGZhMjg5NTg1MTYwODYzNzg1ZTA1
NTQ2Li43ZGU3ODJmNjhlZGUyNjRjMDlkYWM1Y2E2NTliYzc4Y2YzYzE0Mjg5IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvTGF1bmNoZXIvd2luL1Byb2Nlc3NMYXVuY2hlcldp
bi5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0xhdW5jaGVyL3dpbi9Qcm9jZXNz
TGF1bmNoZXJXaW4uY3BwCkBAIC0yNyw3ICsyNyw3IEBACiAjaW5jbHVkZSAiUHJvY2Vzc0xhdW5j
aGVyLmgiCiAKICNpbmNsdWRlICJDb25uZWN0aW9uLmgiCi0jaW5jbHVkZSAiUnVuTG9vcC5oIgor
I2luY2x1ZGUgPFdlYkNvcmUvUnVuTG9vcC5oPgogI2luY2x1ZGUgPHNobHdhcGkuaD4KICNpbmNs
dWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KIApAQCAtNDMsNiArNDMsOCBAQCBjb25zdCBMUENX
U1RSIHdlYktpdERMTE5hbWUgPSBMIldlYktpdF9kZWJ1Zy5kbGwiOwogY29uc3QgTFBDV1NUUiB3
ZWJLaXRETExOYW1lID0gTCJXZWJLaXQuZGxsIjsKICNlbmRpZgogCit1c2luZyBuYW1lc3BhY2Ug
V2ViQ29yZTsKKwogbmFtZXNwYWNlIFdlYktpdCB7CiAKIHZvaWQgUHJvY2Vzc0xhdW5jaGVyOjps
YXVuY2hQcm9jZXNzKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9MYXVu
Y2hlci93aW4vVGhyZWFkTGF1bmNoZXJXaW4uY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L0xhdW5jaGVyL3dpbi9UaHJlYWRMYXVuY2hlcldpbi5jcHAKaW5kZXggMjU5Njk5OGVhMjM5MjBh
MTNkOTVlMWZlYjdjZmEyYmVjMWQ1OWNiZC4uZjlkMWMwNDgxZDFmMDM1YjFjZjBlOWRmMmMzZjRj
MzJjMDAzMWMyOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0xhdW5jaGVy
L3dpbi9UaHJlYWRMYXVuY2hlcldpbi5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L0xhdW5jaGVyL3dpbi9UaHJlYWRMYXVuY2hlcldpbi5jcHAKQEAgLTI2LDggKzI2LDggQEAKICNp
bmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJUaHJlYWRMYXVuY2hlci5oIgogCi0jaW5jbHVk
ZSAiUnVuTG9vcC5oIgogI2luY2x1ZGUgIldlYlByb2Nlc3MuaCIKKyNpbmNsdWRlIDxXZWJDb3Jl
L1J1bkxvb3AuaD4KICNpbmNsdWRlIDxydW50aW1lL0luaXRpYWxpemVUaHJlYWRpbmcuaD4KICNp
bmNsdWRlIDx3dGYvTWFpblRocmVhZC5oPgogI2luY2x1ZGUgPHd0Zi9UaHJlYWRpbmcuaD4KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9MYXllclRyZWVIb3N0UHJveHkuaCBi
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9MYXllclRyZWVIb3N0UHJveHkuaAppbmRleCBkNTI4
MWQzODJmMjBkNjExMWU0ZGYzMjZmOTA2MTFiNzI2MGRhYTI3Li5iYjJmZGJiMDM5MzJjZmYyZTBk
NmZkYmEwN2Y0MjM2Nzc3ZDVjZDNmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvTGF5ZXJUcmVlSG9zdFByb3h5LmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0xh
eWVyVHJlZUhvc3RQcm94eS5oCkBAIC0yNCwxMiArMjQsMTIgQEAKICNpbmNsdWRlICJEcmF3aW5n
QXJlYVByb3h5LmgiCiAjaW5jbHVkZSAiTWVzc2FnZVF1ZXVlLmgiCiAjaW5jbHVkZSAiUmVnaW9u
LmgiCi0jaW5jbHVkZSAiUnVuTG9vcC5oIgogI2luY2x1ZGUgIldlYkxheWVyVHJlZUluZm8uaCIK
ICNpbmNsdWRlIDxXZWJDb3JlL0dyYXBoaWNzQ29udGV4dC5oPgogI2luY2x1ZGUgPFdlYkNvcmUv
R3JhcGhpY3NMYXllci5oPgogI2luY2x1ZGUgPFdlYkNvcmUvSW50UmVjdC5oPgogI2luY2x1ZGUg
PFdlYkNvcmUvSW50U2l6ZS5oPgorI2luY2x1ZGUgPFdlYkNvcmUvUnVuTG9vcC5oPgogI2luY2x1
ZGUgPHd0Zi9IYXNoU2V0Lmg+CiAKICNpZiBVU0UoVEVYVFVSRV9NQVBQRVIpCkBAIC04Myw3ICs4
Myw3IEBAIHByb3RlY3RlZDoKICAgICB2aXJ0dWFsIGJvb2wgc2hvd1JlcGFpbnRDb3VudGVyKCkg
Y29uc3QgeyByZXR1cm4gZmFsc2U7IH0KICAgICB2b2lkIHBhaW50Q29udGVudHMoY29uc3QgV2Vi
Q29yZTo6R3JhcGhpY3NMYXllciosIFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dCYsIFdlYkNvcmU6
OkdyYXBoaWNzTGF5ZXJQYWludGluZ1BoYXNlLCBjb25zdCBXZWJDb3JlOjpJbnRSZWN0JikgeyB9
CiAKLSAgICBSdW5Mb29wOjpUaW1lcjxMYXllclRyZWVIb3N0UHJveHk+IG1fYW5pbWF0aW9uVGlt
ZXI7CisgICAgV2ViQ29yZTo6UnVuTG9vcDo6VGltZXI8TGF5ZXJUcmVlSG9zdFByb3h5PiBtX2Fu
aW1hdGlvblRpbWVyOwogICAgIERyYXdpbmdBcmVhUHJveHkqIG1fZHJhd2luZ0FyZWFQcm94eTsK
IAogICAgIHR5cGVkZWYgSGFzaE1hcDxXZWJMYXllcklELCBXZWJDb3JlOjpHcmFwaGljc0xheWVy
Kj4gTGF5ZXJNYXA7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvUGx1Z2lu
cy9QbHVnaW5Qcm9jZXNzUHJveHkuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1BsdWdp
bnMvUGx1Z2luUHJvY2Vzc1Byb3h5LmNwcAppbmRleCA0MWM3YTQ3Y2I5MDA2NGRhOWNjMDk5MzI0
ZTllODBkMTZlODE2NGMxLi41NDgyZDg0ZDI5ZjY0MDkwMzk2ZjI5NTIxMDcwZTVjZWZkNmRmYjAw
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvUGx1Z2lucy9QbHVnaW5Qcm9j
ZXNzUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9QbHVnaW5zL1BsdWdp
blByb2Nlc3NQcm94eS5jcHAKQEAgLTMxLDE4ICszMSwyMCBAQAogI2luY2x1ZGUgIlBsdWdpblBy
b2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuaCIKICNpbmNsdWRlICJQbHVnaW5Qcm9jZXNzTWFuYWdl
ci5oIgogI2luY2x1ZGUgIlBsdWdpblByb2Nlc3NNZXNzYWdlcy5oIgotI2luY2x1ZGUgIlJ1bkxv
b3AuaCIKICNpbmNsdWRlICJXZWJDb250ZXh0LmgiCiAjaW5jbHVkZSAiV2ViQ29yZUFyZ3VtZW50
Q29kZXJzLmgiCiAjaW5jbHVkZSAiV2ViUGx1Z2luU2l0ZURhdGFNYW5hZ2VyLmgiCiAjaW5jbHVk
ZSAiV2ViUHJvY2Vzc01lc3NhZ2VzLmgiCiAjaW5jbHVkZSAiV2ViUHJvY2Vzc1Byb3h5LmgiCiAj
aW5jbHVkZSA8V2ViQ29yZS9Ob3RJbXBsZW1lbnRlZC5oPgorI2ltcG9ydCA8V2ViQ29yZS9SdW5M
b29wLmg+CiAKICNpZiBQTEFURk9STShNQUMpCiAjaW5jbHVkZSAiTWFjaFBvcnQuaCIKICNlbmRp
ZgogCit1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKKwogbmFtZXNwYWNlIFdlYktpdCB7CiAKIFBh
c3NPd25QdHI8UGx1Z2luUHJvY2Vzc1Byb3h5PiBQbHVnaW5Qcm9jZXNzUHJveHk6OmNyZWF0ZShQ
bHVnaW5Qcm9jZXNzTWFuYWdlciogUGx1Z2luUHJvY2Vzc01hbmFnZXIsIGNvbnN0IFBsdWdpbk1v
ZHVsZUluZm8mIHBsdWdpbkluZm8pCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvUmVzcG9uc2l2ZW5lc3NUaW1lci5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvUmVz
cG9uc2l2ZW5lc3NUaW1lci5jcHAKaW5kZXggMDU3Y2M3NDM1NGExNGU1N2RjMmZlMWYzYjg2NzQz
M2FjYzM3Y2QwMS4uODc4MzhjYTI2MjgwNzdhYjg3YzgxMmYyMGJkZGVhODIyMTBlMWI2YyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1Jlc3BvbnNpdmVuZXNzVGltZXIuY3Bw
CisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9SZXNwb25zaXZlbmVzc1RpbWVyLmNwcApA
QCAtMjYsNiArMjYsOCBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIlJlc3BvbnNp
dmVuZXNzVGltZXIuaCIKIAordXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CisKIG5hbWVzcGFjZSBX
ZWJLaXQgewogCiBzdGF0aWMgY29uc3QgZG91YmxlIGtSZXNwb25zaXZlbmVzc1RpbWVvdXQgPSAz
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1Jlc3BvbnNpdmVuZXNzVGlt
ZXIuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9SZXNwb25zaXZlbmVzc1RpbWVyLmgKaW5k
ZXggNjU5MTkxNjEyZjgwMWIxNGQ5ZDg4MTIyYWNiNGViMzhiNWVhNmU1Yi4uMzY3MzMxNTFmYzg3
ZjY3ZDE3MmEyODNmZTAzMGE2ODZlN2ViNDNhOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL1Jlc3BvbnNpdmVuZXNzVGltZXIuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvUmVzcG9uc2l2ZW5lc3NUaW1lci5oCkBAIC0yNiw3ICsyNiw3IEBACiAjaWZuZGVmIFJl
c3BvbnNpdmVuZXNzVGltZXJfaAogI2RlZmluZSBSZXNwb25zaXZlbmVzc1RpbWVyX2gKIAotI2lu
Y2x1ZGUgIlJ1bkxvb3AuaCIKKyNpbmNsdWRlIDxXZWJDb3JlL1J1bkxvb3AuaD4KIAogbmFtZXNw
YWNlIFdlYktpdCB7CiAKQEAgLTU1LDcgKzU1LDcgQEAgcHJpdmF0ZToKICAgICBSZXNwb25zaXZl
bmVzc1RpbWVyOjpDbGllbnQqIG1fY2xpZW50OwogICAgIGJvb2wgbV9pc1Jlc3BvbnNpdmU7CiAK
LSAgICBSdW5Mb29wOjpUaW1lcjxSZXNwb25zaXZlbmVzc1RpbWVyPiBtX3RpbWVyOworICAgIFdl
YkNvcmU6OlJ1bkxvb3A6OlRpbWVyPFJlc3BvbnNpdmVuZXNzVGltZXI+IG1fdGltZXI7CiB9Owog
CiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9UaWxlZERyYXdpbmdBcmVhUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9U
aWxlZERyYXdpbmdBcmVhUHJveHkuaAppbmRleCA4NTU5NzdkZTljMjUwMjdmYWMyYjJkNjI1OGVk
M2Q1NDgzNjcwYmIxLi4wZmNjY2Y0ZTE4NTZmZGU1NzNjMmQ2ODIzYmQ2Yjk3MzBkYjZkNDFkIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvVGlsZWREcmF3aW5nQXJlYVByb3h5
LmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1RpbGVkRHJhd2luZ0FyZWFQcm94eS5o
CkBAIC0zMSwxMCArMzEsOSBAQAogI2luY2x1ZGUgIkRyYXdpbmdBcmVhUHJveHkuaCIKICNpbmNs
dWRlIDxXZWJDb3JlL0dyYXBoaWNzQ29udGV4dC5oPgogI2luY2x1ZGUgPFdlYkNvcmUvSW50UmVj
dC5oPgorI2luY2x1ZGUgPFdlYkNvcmUvUnVuTG9vcC5oPgogI2luY2x1ZGUgPHd0Zi9IYXNoU2V0
Lmg+CiAKLSNpbmNsdWRlICJSdW5Mb29wLmgiCi0KICNpZiBQTEFURk9STShNQUMpCiAjaW5jbHVk
ZSA8d3RmL1JldGFpblB0ci5oPgogI2lmZGVmIF9fT0JKQ19fCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvVmlzaXRlZExpbmtQcm92aWRlci5oIGIvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL1Zpc2l0ZWRMaW5rUHJvdmlkZXIuaAppbmRleCBhNDI4ZDViODM2YjgwYWEzMmVk
YzUzN2NlMGRhMDY2N2Y4Njk2YWIxLi40NjFjNWFjOTRlN2MyYzRlNjBiMjkyZTI1OGJiZDQzYWRk
MzIwOWYxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvVmlzaXRlZExpbmtQ
cm92aWRlci5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9WaXNpdGVkTGlua1Byb3Zp
ZGVyLmgKQEAgLTI2LDkgKzI2LDkgQEAKICNpZm5kZWYgVmlzaXRlZExpbmtQcm92aWRlcl9oCiAj
ZGVmaW5lIFZpc2l0ZWRMaW5rUHJvdmlkZXJfaAogCi0jaW5jbHVkZSAiUnVuTG9vcC5oIgogI2lu
Y2x1ZGUgIlZpc2l0ZWRMaW5rVGFibGUuaCIKICNpbmNsdWRlIDxXZWJDb3JlL0xpbmtIYXNoLmg+
CisjaW5jbHVkZSA8V2ViQ29yZS9SdW5Mb29wLmg+CiAjaW5jbHVkZSA8d3RmL0ZvcndhcmQuaD4K
ICNpbmNsdWRlIDx3dGYvSGFzaFNldC5oPgogCkBAIC01OCw3ICs1OCw3IEBAIHByaXZhdGU6CiAg
ICAgVmlzaXRlZExpbmtUYWJsZSBtX3RhYmxlOwogCiAgICAgSGFzaFNldDxXZWJDb3JlOjpMaW5r
SGFzaCwgV2ViQ29yZTo6TGlua0hhc2hIYXNoPiBtX3BlbmRpbmdWaXNpdGVkTGlua3M7Ci0gICAg
UnVuTG9vcDo6VGltZXI8VmlzaXRlZExpbmtQcm92aWRlcj4gbV9wZW5kaW5nVmlzaXRlZExpbmtz
VGltZXI7CisgICAgV2ViQ29yZTo6UnVuTG9vcDo6VGltZXI8VmlzaXRlZExpbmtQcm92aWRlcj4g
bV9wZW5kaW5nVmlzaXRlZExpbmtzVGltZXI7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJDb25uZWN0aW9uVG9XZWJQ
cm9jZXNzLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJDb25uZWN0aW9uVG9XZWJQ
cm9jZXNzLmNwcAppbmRleCBiMWQxMDNmYmNlMWQyZjU5ZDEyOWVmZmUyMWRmMDgyOTY4Y2JiMDVm
Li5iZTgxNGMwYTlhZDIxNjBkZjM2MjI4Y2JhNzE2MTgzM2M5NDdhY2M1IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5jcHAKKysr
IGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuY3Bw
CkBAIC0zMCw2ICszMCw4IEBACiAjaW5jbHVkZSAiV2ViQ29udGV4dFVzZXJNZXNzYWdlQ29kZXJz
LmgiCiAjaW5jbHVkZSAiV2ViUHJvY2Vzc1Byb3h5LmgiCiAKK3VzaW5nIG5hbWVzcGFjZSBXZWJD
b3JlOworCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAogUGFzc1JlZlB0cjxXZWJDb25uZWN0aW9uVG9X
ZWJQcm9jZXNzPiBXZWJDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpjcmVhdGUoV2ViUHJvY2Vzc1By
b3h5KiBwcm9jZXNzLCBDb3JlSVBDOjpDb25uZWN0aW9uOjpJZGVudGlmaWVyIGNvbm5lY3Rpb25J
ZGVudGlmaWVyLCBSdW5Mb29wKiBydW5Mb29wKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL1dlYkNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuaCBiL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9XZWJDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmgKaW5kZXggYjlkNThmMmM3MDMwYjYy
NTc5N2IwM2E2ODVmMThmOWU3NGI2Y2VjYy4uZjQ5NjJlMjZjYzAzOTA2ZDU2N2YxN2JhYTZkZmEw
MTFkNTk1MzgzZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkNvbm5l
Y3Rpb25Ub1dlYlByb2Nlc3MuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViQ29u
bmVjdGlvblRvV2ViUHJvY2Vzcy5oCkBAIC0zNSwxNCArMzUsMTQgQEAgY2xhc3MgV2ViUHJvY2Vz
c1Byb3h5OwogCiBjbGFzcyBXZWJDb25uZWN0aW9uVG9XZWJQcm9jZXNzIDogcHVibGljIFdlYkNv
bm5lY3Rpb24sIENvcmVJUEM6OkNvbm5lY3Rpb246OkNsaWVudCB7CiBwdWJsaWM6Ci0gICAgc3Rh
dGljIFBhc3NSZWZQdHI8V2ViQ29ubmVjdGlvblRvV2ViUHJvY2Vzcz4gY3JlYXRlKFdlYlByb2Nl
c3NQcm94eSosIENvcmVJUEM6OkNvbm5lY3Rpb246OklkZW50aWZpZXIsIFJ1bkxvb3AqKTsKKyAg
ICBzdGF0aWMgUGFzc1JlZlB0cjxXZWJDb25uZWN0aW9uVG9XZWJQcm9jZXNzPiBjcmVhdGUoV2Vi
UHJvY2Vzc1Byb3h5KiwgQ29yZUlQQzo6Q29ubmVjdGlvbjo6SWRlbnRpZmllciwgV2ViQ29yZTo6
UnVuTG9vcCopOwogCiAgICAgQ29yZUlQQzo6Q29ubmVjdGlvbiogY29ubmVjdGlvbigpIHsgcmV0
dXJuIG1fY29ubmVjdGlvbi5nZXQoKTsgfQogCiAgICAgdm9pZCBpbnZhbGlkYXRlKCk7CiAKIHBy
aXZhdGU6Ci0gICAgV2ViQ29ubmVjdGlvblRvV2ViUHJvY2VzcyhXZWJQcm9jZXNzUHJveHkqLCBD
b3JlSVBDOjpDb25uZWN0aW9uOjpJZGVudGlmaWVyLCBSdW5Mb29wKik7CisgICAgV2ViQ29ubmVj
dGlvblRvV2ViUHJvY2VzcyhXZWJQcm9jZXNzUHJveHkqLCBDb3JlSVBDOjpDb25uZWN0aW9uOjpJ
ZGVudGlmaWVyLCBXZWJDb3JlOjpSdW5Mb29wKik7CiAKICAgICAvLyBXZWJDb25uZWN0aW9uCiAg
ICAgdmlydHVhbCB2b2lkIHBvc3RNZXNzYWdlKGNvbnN0IFN0cmluZyYsIEFQSU9iamVjdCopOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkNvbnRleHQuY3BwIGIvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkNvbnRleHQuY3BwCmluZGV4IDFjM2RkM2I2YzQ1ZmYy
MjBmYmJhNzYwYmI1YjljYTViY2EzYjUxNTMuLmJiMzU2MGJlMjllNDUzNzZmYmI3ZTI4MDRjYjA5
NDQ4NjRkMzk4NWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJDb250
ZXh0LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViQ29udGV4dC5jcHAKQEAg
LTMxLDcgKzMxLDYgQEAKICNpbmNsdWRlICJJbmplY3RlZEJ1bmRsZU1lc3NhZ2VLaW5kcy5oIgog
I2luY2x1ZGUgIkxvZ2dpbmcuaCIKICNpbmNsdWRlICJNdXRhYmxlRGljdGlvbmFyeS5oIgotI2lu
Y2x1ZGUgIlJ1bkxvb3AuaCIKICNpbmNsdWRlICJTYW5kYm94RXh0ZW5zaW9uLmgiCiAjaW5jbHVk
ZSAiU3RhdGlzdGljc0RhdGEuaCIKICNpbmNsdWRlICJUZXh0Q2hlY2tlci5oIgpAQCAtNTgsNiAr
NTcsNyBAQAogI2luY2x1ZGUgPFdlYkNvcmUvTGlua0hhc2guaD4KICNpbmNsdWRlIDxXZWJDb3Jl
L0xvZ2dpbmcuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1Jlc291cmNlUmVxdWVzdC5oPgorI2luY2x1
ZGUgPFdlYkNvcmUvUnVuTG9vcC5oPgogI2luY2x1ZGUgPHJ1bnRpbWUvSW5pdGlhbGl6ZVRocmVh
ZGluZy5oPgogI2luY2x1ZGUgPHd0Zi9DdXJyZW50VGltZS5oPgogI2luY2x1ZGUgPHd0Zi9NYWlu
VGhyZWFkLmg+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mvd2luL1dlYlZp
ZXcuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL3dpbi9XZWJWaWV3LmNwcAppbmRleCBk
NDRlMjU1NjBlMmUxNTg1MTVhMDJkM2QyZjk4MzdhNWIxMGI3NWVjLi5lOWEzZDA0YjA4OWNkYzRm
ZDE0MDQyY2E2N2MwODQ1NjgzODdjN2ZiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3Mvd2luL1dlYlZpZXcuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy93aW4v
V2ViVmlldy5jcHAKQEAgLTMyLDExICszMiw3IEBACiAjaW5jbHVkZSAiTmF0aXZlV2ViS2V5Ym9h
cmRFdmVudC5oIgogI2luY2x1ZGUgIk5hdGl2ZVdlYk1vdXNlRXZlbnQuaCIKICNpbmNsdWRlICJO
YXRpdmVXZWJXaGVlbEV2ZW50LmgiCi0jaW5jbHVkZSAiUnVuTG9vcC5oIgogI2luY2x1ZGUgIldL
QVBJQ2FzdC5oIgotI2lmIFVTRShDRykKLSNpbmNsdWRlICJXS0NBQ0ZWaWV3V2luZG93LmgiCi0j
ZW5kaWYKICNpbmNsdWRlICJXZWJDb250ZXh0LmgiCiAjaW5jbHVkZSAiV2ViQ29udGV4dE1lbnVQ
cm94eVdpbi5oIgogI2luY2x1ZGUgIldlYkVkaXRDb21tYW5kUHJveHkuaCIKQEAgLTQ5LDE4ICs0
NSwyMSBAQAogI2luY2x1ZGUgPFdlYkNvcmUvRHJhZ1Nlc3Npb24uaD4KICNpbmNsdWRlIDxXZWJD
b3JlL0VkaXRvci5oPgogI2luY2x1ZGUgPFdlYkNvcmUvRmxvYXRSZWN0Lmg+Ci0jaWYgVVNFKENH
KQotI2luY2x1ZGUgPFdlYkNvcmUvR3JhcGhpY3NDb250ZXh0Q0cuaD4KLSNlbmRpZgogI2luY2x1
ZGUgPFdlYkNvcmUvSW50UmVjdC5oPgogI2luY2x1ZGUgPFdlYkNvcmUvTm90SW1wbGVtZW50ZWQu
aD4KICNpbmNsdWRlIDxXZWJDb3JlL1JlZ2lvbi5oPgorI2luY2x1ZGUgPFdlYkNvcmUvUnVuTG9v
cC5oPgogI2luY2x1ZGUgPFdlYkNvcmUvU29mdExpbmtpbmcuaD4KICNpbmNsdWRlIDxXZWJDb3Jl
L1dlYkNvcmVJbnN0YW5jZUhhbmRsZS5oPgogI2luY2x1ZGUgPFdlYkNvcmUvV2luZG93TWVzc2Fn
ZUJyb2FkY2FzdGVyLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9XaW5kb3dzVG91Y2guaD4KICNpbmNs
dWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KIAorI2lmIFVTRShDRykKKyNpbmNsdWRlICJXS0NB
Q0ZWaWV3V2luZG93LmgiCisjaW5jbHVkZSA8V2ViQ29yZS9HcmFwaGljc0NvbnRleHRDRy5oPgor
I2VuZGlmCisKICNpZiBFTkFCTEUoRlVMTFNDUkVFTl9BUEkpCiAjaW5jbHVkZSAiV2ViRnVsbFNj
cmVlbk1hbmFnZXJQcm94eS5oIgogI2luY2x1ZGUgPFdlYkNvcmUvRnVsbFNjcmVlbkNvbnRyb2xs
ZXIuaD4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYktpdDIueGNvZGVwcm9qL3Byb2pl
Y3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJLaXQyL1dlYktpdDIueGNvZGVwcm9qL3Byb2plY3QucGJ4
cHJvagppbmRleCBmODUxZWRjNzRhNjI1ZTUzYmU2OTNmMGJhMjBlNGU3M2M0ZDJkZThkLi4zM2Fh
ODEzNTNlNGIwODY1NWFiMzU5YWRiMWRiZDA3YjVmOGRmYTE1IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0Mi9XZWJLaXQyLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dl
YktpdDIvV2ViS2l0Mi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC00NjUsNyArNDY1LDYg
QEAKIAkJQjYzNDAzRjkxNDkxMEQ1NzAwMTA3MEI1IC8qIEFQSU9iamVjdC5jcHAgaW4gU291cmNl
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCNjM0MDNGODE0OTEwRDU3MDAx
MDcwQjUgLyogQVBJT2JqZWN0LmNwcCAqLzsgfTsKIAkJQjg3OEI2MTUxMzM0MjhEQzAwNjg4OEU5
IC8qIENvcnJlY3Rpb25QYW5lbC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gQjg3OEI2MTMxMzM0MjhEQzAwNjg4OEU5IC8qIENvcnJlY3Rpb25QYW5lbC5o
ICovOyB9OwogCQlCODc4QjYxNjEzMzQyOERDMDA2ODg4RTkgLyogQ29ycmVjdGlvblBhbmVsLm1t
IGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQjg3OEI2MTQx
MzM0MjhEQzAwNjg4OEU5IC8qIENvcnJlY3Rpb25QYW5lbC5tbSAqLzsgfTsKLQkJQkMwMDkyRjcx
MTU4MzdBMzAwRTBBRTJBIC8qIFJ1bkxvb3BNYWMubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCQzAwOTJGNTExNTgzN0EzMDBFMEFFMkEgLyogUnVuTG9v
cE1hYy5tbSAqLzsgfTsKIAkJQkMwMDkyRjgxMTU4MzdBMzAwRTBBRTJBIC8qIFdvcmtRdWV1ZU1h
Yy5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCQzAw
OTJGNjExNTgzN0EzMDBFMEFFMkEgLyogV29ya1F1ZXVlTWFjLmNwcCAqLzsgfTsKIAkJQkMwMzJE
NzUxMEY0Mzc4RDAwNThDMTVBIC8qIFdlYkNocm9tZUNsaWVudC5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkMwMzJENjAxMEY0Mzc4RDAwNThDMTVBIC8q
IFdlYkNocm9tZUNsaWVudC5oICovOyB9OwogCQlCQzAzMkQ3NzEwRjQzNzhEMDA1OEMxNUEgLyog
V2ViQ29udGV4dE1lbnVDbGllbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IEJDMDMyRDYyMTBGNDM3OEQwMDU4QzE1QSAvKiBXZWJDb250ZXh0TWVudUNs
aWVudC5oICovOyB9OwpAQCAtNTU5LDggKzU1OCw2IEBACiAJCUJDMkQwMjE3MTJBQzQxQ0IwMEU3
MzJBMyAvKiBTYW1lRG9jdW1lbnROYXZpZ2F0aW9uVHlwZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkMyRDAyMTYxMkFDNDFDQjAwRTczMkEzIC8qIFNh
bWVEb2N1bWVudE5hdmlnYXRpb25UeXBlLmggKi87IH07CiAJCUJDMkQwMjE5MTJBQzQyNkMwMEU3
MzJBMyAvKiBXS1BhZ2VMb2FkVHlwZXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IEJDMkQwMjE4MTJBQzQyNkMwMEU3MzJBMyAvKiBXS1BhZ2VMb2FkVHlw
ZXMuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlC
QzJERkJBMzEyQTc2MUE1MDBFNzMyQTMgLyogV2ViUHJlZmVyZW5jZXNDRi5jcHAgaW4gU291cmNl
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCQzJERkJBMjEyQTc2MUE1MDBF
NzMyQTMgLyogV2ViUHJlZmVyZW5jZXNDRi5jcHAgKi87IH07Ci0JCUJDMkU2RTg3MTE0MTk3MTUw
MEE2M0IxRSAvKiBSdW5Mb29wLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IEJDMkU2RTc3MTE0MTk3MEMwMEE2M0IxRSAvKiBSdW5Mb29wLmNwcCAqLzsg
fTsKLQkJQkMyRTZFODgxMTQxOTcxNTAwQTYzQjFFIC8qIFJ1bkxvb3AuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDMkU2RTc4MTE0MTk3MEMwMEE2M0Ix
RSAvKiBSdW5Mb29wLmggKi87IH07CiAJCUJDMkU2RThEMTE0MTk3MTUwMEE2M0IxRSAvKiBXb3Jr
UXVldWUuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
QkMyRTZFN0QxMTQxOTcwQzAwQTYzQjFFIC8qIFdvcmtRdWV1ZS5jcHAgKi87IH07CiAJCUJDMkU2
RThFMTE0MTk3MTUwMEE2M0IxRSAvKiBXb3JrUXVldWUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDMkU2RTdFMTE0MTk3MEMwMEE2M0IxRSAvKiBXb3Jr
UXVldWUuaCAqLzsgfTsKIAkJQkMzMDY1QzQxMjU5MkY4OTAwRTcxMjc4IC8qIFdlYlByb2Nlc3NN
YWMubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCQzMw
NjVDMzEyNTkyRjg5MDBFNzEyNzggLyogV2ViUHJvY2Vzc01hYy5tbSAqLzsgfTsKQEAgLTE0ODMs
NyArMTQ4MCw2IEBACiAJCUI2MzQwM0Y4MTQ5MTBENTcwMDEwNzBCNSAvKiBBUElPYmplY3QuY3Bw
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gQVBJT2JqZWN0LmNwcDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQjg3OEI2MTMxMzM0MjhEQzAwNjg4OEU5IC8qIENv
cnJlY3Rpb25QYW5lbC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBDb3JyZWN0
aW9uUGFuZWwuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQjg3OEI2MTQxMzM0MjhE
QzAwNjg4OEU5IC8qIENvcnJlY3Rpb25QYW5lbC5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
Lm9iamNwcDsgcGF0aCA9IENvcnJlY3Rpb25QYW5lbC5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKLQkJQkMwMDkyRjUxMTU4MzdBMzAwRTBBRTJBIC8qIFJ1bkxvb3BNYWMubW0gKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBSdW5Mb29wTWFjLm1tOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQlCQzAwOTJGNjExNTgzN0EzMDBFMEFFMkEgLyogV29ya1F1
ZXVlTWFjLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdvcmtRdWV1
ZU1hYy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUJDMDMyRDYwMTBGNDM3OEQw
MDU4QzE1QSAvKiBXZWJDaHJvbWVDbGllbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gV2ViQ2hyb21lQ2xpZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUJD
MDMyRDYyMTBGNDM3OEQwMDU4QzE1QSAvKiBXZWJDb250ZXh0TWVudUNsaWVudC5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJDb250ZXh0TWVudUNsaWVudC5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTU4Myw4ICsxNTc5LDYgQEAKIAkJQkMyRDAyMTYxMkFD
NDFDQjAwRTczMkEzIC8qIFNhbWVEb2N1bWVudE5hdmlnYXRpb25UeXBlLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNhbWVEb2N1bWVudE5hdmlnYXRpb25UeXBlLmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUJDMkQwMjE4MTJBQzQyNkMwMEU3MzJBMyAvKiBXS1Bh
Z2VMb2FkVHlwZXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV0tQYWdlTG9h
ZFR5cGVzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUJDMkRGQkEyMTJBNzYxQTUw
MEU3MzJBMyAvKiBXZWJQcmVmZXJlbmNlc0NGLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
LmNwcDsgbmFtZSA9IFdlYlByZWZlcmVuY2VzQ0YuY3BwOyBwYXRoID0gY2YvV2ViUHJlZmVyZW5j
ZXNDRi5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCUJDMkU2RTc3MTE0MTk3MEMw
MEE2M0IxRSAvKiBSdW5Mb29wLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0
aCA9IFJ1bkxvb3AuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQlCQzJFNkU3ODEx
NDE5NzBDMDBBNjNCMUUgLyogUnVuTG9vcC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBSdW5Mb29wLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUJDMkU2RTdEMTE0
MTk3MEMwMEE2M0IxRSAvKiBXb3JrUXVldWUuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAu
Y3BwOyBwYXRoID0gV29ya1F1ZXVlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
QkMyRTZFN0UxMTQxOTcwQzAwQTYzQjFFIC8qIFdvcmtRdWV1ZS5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBXb3JrUXVldWUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJQkMzMDY1QzMxMjU5MkY4OTAwRTcxMjc4IC8qIFdlYlByb2Nlc3NNYWMubW0gKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBXZWJQcm9jZXNzTWFjLm1tOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwpAQCAtMjI2MCw3ICsyMjU0LDYgQEAKIAkJCQkxQTI0QjVGMDEx
RjUzMUU4MDBDMzgyNjkgLyogTWFjaFV0aWxpdGllcy5jcHAgKi8sCiAJCQkJMUEyNEI1RjExMUY1
MzFFODAwQzM4MjY5IC8qIE1hY2hVdGlsaXRpZXMuaCAqLywKIAkJCQlDMEUzQUE0ODEyMDlFNDUw
MDBBNDlEMDEgLyogTW9kdWxlTWFjLm1tICovLAotCQkJCUJDMDA5MkY1MTE1ODM3QTMwMEUwQUUy
QSAvKiBSdW5Mb29wTWFjLm1tICovLAogCQkJCTFBMjRCRjM5MTIwODk2QTYwMEZCQjA1OSAvKiBT
aGFyZWRNZW1vcnlNYWMuY3BwICovLAogCQkJCUJDMDA5MkY2MTE1ODM3QTMwMEUwQUUyQSAvKiBX
b3JrUXVldWVNYWMuY3BwICovLAogCQkJKTsKQEAgLTMyODIsOCArMzI3NSw2IEBACiAJCQkJQzBF
M0FBNDUxMjA5RTJCQTAwQTQ5RDAxIC8qIE1vZHVsZS5jcHAgKi8sCiAJCQkJQzBFM0FBNDQxMjA5
RTJCQTAwQTQ5RDAxIC8qIE1vZHVsZS5oICovLAogCQkJCUJDODc4MEZCMTE2MUMyQjgwMENDMjc2
OCAvKiBQbGF0Zm9ybVByb2Nlc3NJZGVudGlmaWVyLmggKi8sCi0JCQkJQkMyRTZFNzcxMTQxOTcw
QzAwQTYzQjFFIC8qIFJ1bkxvb3AuY3BwICovLAotCQkJCUJDMkU2RTc4MTE0MTk3MEMwMEE2M0Ix
RSAvKiBSdW5Mb29wLmggKi8sCiAJCQkJMUEyNEJFRDMxMjA4OTREMTAwRkJCMDU5IC8qIFNoYXJl
ZE1lbW9yeS5oICovLAogCQkJCUJDMkU2RTdEMTE0MTk3MEMwMEE2M0IxRSAvKiBXb3JrUXVldWUu
Y3BwICovLAogCQkJCUJDMkU2RTdFMTE0MTk3MEMwMEE2M0IxRSAvKiBXb3JrUXVldWUuaCAqLywK
QEAgLTM4NDgsNyArMzgzOSw2IEBACiAJCQkJQkMxQTdDNTgxMTM2RTE5QzAwRkI3MTY3IC8qIFBy
b2Nlc3NMYXVuY2hlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkM1OTcwNzUxMTY1OTFEMDAwNTUx
RkNBIC8qIFByb2Nlc3NNb2RlbC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMUEzMDA2NkUxMTEwRjRG
NzAwMzE5MzdDIC8qIFJlc3BvbnNpdmVuZXNzVGltZXIuaCBpbiBIZWFkZXJzICovLAotCQkJCUJD
MkU2RTg4MTE0MTk3MTUwMEE2M0IxRSAvKiBSdW5Mb29wLmggaW4gSGVhZGVycyAqLywKIAkJCQlC
QzJEMDIxNzEyQUM0MUNCMDBFNzMyQTMgLyogU2FtZURvY3VtZW50TmF2aWdhdGlvblR5cGUuaCBp
biBIZWFkZXJzICovLAogCQkJCTFBQUI0QThEMTI5NkYwQTIwMDIzOTUyRiAvKiBTYW5kYm94RXh0
ZW5zaW9uLmggaW4gSGVhZGVycyAqLywKIAkJCQk1MUQxMzA1NDEzODJFQUMwMDAzNTFFREQgLyog
U2VjSXRlbVJlcXVlc3REYXRhLmggaW4gSGVhZGVycyAqLywKQEAgLTQ1ODEsOCArNDU3MSw2IEBA
CiAJCQkJMUFFMTE3RjYxMURCQjMwOTAwOTgxNjE1IC8qIFByb2Nlc3NMYXVuY2hlci5jcHAgaW4g
U291cmNlcyAqLywKIAkJCQlCQzExMUIxRDExMkY1RkU2MDAzMzdCQUIgLyogUHJvY2Vzc0xhdW5j
aGVyTWFjLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJQkMxMTFCMDkxMTJGNUUzQzAwMzM3QkFCIC8q
IFJlc3BvbnNpdmVuZXNzVGltZXIuY3BwIGluIFNvdXJjZXMgKi8sCi0JCQkJQkMyRTZFODcxMTQx
OTcxNTAwQTYzQjFFIC8qIFJ1bkxvb3AuY3BwIGluIFNvdXJjZXMgKi8sCi0JCQkJQkMwMDkyRjcx
MTU4MzdBMzAwRTBBRTJBIC8qIFJ1bkxvb3BNYWMubW0gaW4gU291cmNlcyAqLywKIAkJCQkxQUFC
NEFBQTEyOTZGMTU0MDAyMzk1MkYgLyogU2FuZGJveEV4dGVuc2lvbk1hYy5tbSBpbiBTb3VyY2Vz
ICovLAogCQkJCTUxRDEzMDUzMTM4MkVBQzAwMDM1MUVERCAvKiBTZWNJdGVtUmVxdWVzdERhdGEu
Y3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNTFEMTMwNTUxMzgyRUFDMDAwMzUxRUREIC8qIFNlY0l0
ZW1SZXNwb25zZURhdGEuY3BwIGluIFNvdXJjZXMgKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvTmV0c2NhcGUvTlBSdW50aW1lT2JqZWN0TWFwLmggYi9T
b3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvTmV0c2NhcGUvTlBSdW50aW1lT2JqZWN0
TWFwLmgKaW5kZXggYmVmNzAxYmVlNzk1NjgyNmM4ODYwNDJlMGU3ODIyYzM0ZTg0NTdmMi4uZGVm
ZmQ1NDMxN2QxN2M1MTg3NWIxZTcyZjk1OTY4NTQ2NzBjMDM2ZCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL05ldHNjYXBlL05QUnVudGltZU9iamVjdE1hcC5o
CisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9OZXRzY2FwZS9OUFJ1bnRp
bWVPYmplY3RNYXAuaApAQCAtMjYsOSArMjYsNyBAQAogI2lmbmRlZiBOUEpTT2JqZWN0V3JhcHBl
ck1hcF9oCiAjZGVmaW5lIE5QSlNPYmplY3RXcmFwcGVyTWFwX2gKIAotCi0jaW5jbHVkZSAiUnVu
TG9vcC5oIgotCisjaW5jbHVkZSA8V2ViQ29yZS9SdW5Mb29wLmg+CiAjaW5jbHVkZSA8aGVhcC9X
ZWFrLmg+CiAjaW5jbHVkZSA8d3RmL0ZvcndhcmQuaD4KICNpbmNsdWRlIDx3dGYvSGFzaE1hcC5o
PgpAQCAtOTgsNyArOTYsNyBAQCBwcml2YXRlOgogICAgIEhhc2hNYXA8SlNDOjpKU09iamVjdCos
IE5QSlNPYmplY3QqPiBtX25wSlNPYmplY3RzOwogICAgIEhhc2hNYXA8TlBPYmplY3QqLCBKU0M6
OldlYWs8SlNOUE9iamVjdD4gPiBtX2pzTlBPYmplY3RzOwogICAgIFZlY3RvcjxOUE9iamVjdCo+
IG1fbnBPYmplY3RzVG9GaW5hbGl6ZTsKLSAgICBSdW5Mb29wOjpUaW1lcjxOUFJ1bnRpbWVPYmpl
Y3RNYXA+IG1fZmluYWxpemF0aW9uVGltZXI7CisgICAgV2ViQ29yZTo6UnVuTG9vcDo6VGltZXI8
TlBSdW50aW1lT2JqZWN0TWFwPiBtX2ZpbmFsaXphdGlvblRpbWVyOwogfTsKIAogfSAvLyBuYW1l
c3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdp
bnMvTmV0c2NhcGUvTmV0c2NhcGVQbHVnaW4uaCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
UGx1Z2lucy9OZXRzY2FwZS9OZXRzY2FwZVBsdWdpbi5oCmluZGV4IDg0NTQxODIwYzg2MDRjOWU1
OGFmMWM3MWY4ZDc5YmE4ZDllODI4N2EuLmFkYWQyZDAxNWI3MGY2MmMzMTY5Mzk2MTY2YTZhM2Fl
NGM4NDAzMTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9O
ZXRzY2FwZS9OZXRzY2FwZVBsdWdpbi5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
UGx1Z2lucy9OZXRzY2FwZS9OZXRzY2FwZVBsdWdpbi5oCkBAIC0yOCwxMCArMjgsMTAgQEAKIAog
I2luY2x1ZGUgIk5ldHNjYXBlUGx1Z2luTW9kdWxlLmgiCiAjaW5jbHVkZSAiUGx1Z2luLmgiCi0j
aW5jbHVkZSAiUnVuTG9vcC5oIgogI2luY2x1ZGUgPFdlYkNvcmUvQWZmaW5lVHJhbnNmb3JtLmg+
CiAjaW5jbHVkZSA8V2ViQ29yZS9HcmFwaGljc0xheWVyLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9J
bnRSZWN0Lmg+CisjaW5jbHVkZSA8V2ViQ29yZS9SdW5Mb29wLmg+CiAjaW5jbHVkZSA8d3RmL0hh
c2hNYXAuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9DU3RyaW5nLmg+CiAjaW5jbHVkZSA8d3RmL3Rl
eHQvU3RyaW5nSGFzaC5oPgpAQCAtMjkxLDcgKzI5MSw3IEBAIHByaXZhdGU6CiAgICAgICAgIGJv
b2wgbV9yZXBlYXQ7CiAgICAgICAgIFRpbWVyRnVuYyBtX3RpbWVyRnVuYzsKIAotICAgICAgICBS
dW5Mb29wOjpUaW1lcjxUaW1lcj4gbV90aW1lcjsKKyAgICAgICAgV2ViQ29yZTo6UnVuTG9vcDo6
VGltZXI8VGltZXI+IG1fdGltZXI7CiAgICAgfTsKICAgICB0eXBlZGVmIEhhc2hNYXA8dW5zaWdu
ZWQsIFRpbWVyKj4gVGltZXJNYXA7CiAgICAgVGltZXJNYXAgbV90aW1lcnM7CkBAIC0zMzIsNyAr
MzMyLDcgQEAgcHJpdmF0ZToKIAogICAgIC8vIEZJWE1FOiBJdCdzIGEgYml0IHdhc3RlZnVsIHRv
IGhhdmUgb25lIG51bGwgZXZlbnQgdGltZXIgcGVyIHBsdWctaW4uCiAgICAgLy8gV2Ugc2hvdWxk
IGludmVzdGlnYXRlIGhhdmluZyBvbmUgcGVyIHdpbmRvdy4KLSAgICBSdW5Mb29wOjpUaW1lcjxO
ZXRzY2FwZVBsdWdpbj4gbV9udWxsRXZlbnRUaW1lcjsKKyAgICBXZWJDb3JlOjpSdW5Mb29wOjpU
aW1lcjxOZXRzY2FwZVBsdWdpbj4gbV9udWxsRXZlbnRUaW1lcjsKICAgICBOUF9DR0NvbnRleHQg
bV9ucENHQ29udGV4dDsKICNlbmRpZgogI2VsaWYgUExVR0lOX0FSQ0hJVEVDVFVSRShXSU4pCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvTmV0c2NhcGUvTmV0
c2NhcGVQbHVnaW5TdHJlYW0uaCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9O
ZXRzY2FwZS9OZXRzY2FwZVBsdWdpblN0cmVhbS5oCmluZGV4IGRlMjY4MjdmYzcyYjY0Zjg4ZjVk
MDFkNDM2NWU2ZmI0Y2MzZTc0MDMuLjA1ODczZTRmNGE1NjFiNzY0ZGFhZWUyNjAyMTQ1MDAxOGRm
NzZjMmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9OZXRz
Y2FwZS9OZXRzY2FwZVBsdWdpblN0cmVhbS5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nl
c3MvUGx1Z2lucy9OZXRzY2FwZS9OZXRzY2FwZVBsdWdpblN0cmVhbS5oCkBAIC0yNiw4ICsyNiw4
IEBACiAjaWZuZGVmIE5ldHNjYXBlUGx1Z2luU3RyZWFtX2gKICNkZWZpbmUgTmV0c2NhcGVQbHVn
aW5TdHJlYW1faAogCi0jaW5jbHVkZSAiUnVuTG9vcC5oIgogI2luY2x1ZGUgPFdlYkNvcmUvRmls
ZVN5c3RlbS5oPgorI2luY2x1ZGUgPFdlYkNvcmUvUnVuTG9vcC5oPgogI2luY2x1ZGUgPFdlYkNv
cmUvbnBydW50aW1lX2ludGVybmFsLmg+CiAjaW5jbHVkZSA8d3RmL0ZvcndhcmQuaD4KICNpbmNs
dWRlIDx3dGYvUGFzc1JlZlB0ci5oPgpAQCAtMzYsNyArMzYsNyBAQAogI2luY2x1ZGUgPHd0Zi90
ZXh0L0NTdHJpbmcuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewotICAgIGNsYXNzIEtVUkw7Citj
bGFzcyBLVVJMOwogfQogCiBuYW1lc3BhY2UgV2ViS2l0IHsKQEAgLTEwMyw3ICsxMDMsNyBAQCBw
cml2YXRlOgogICAgIENTdHJpbmcgbV9taW1lVHlwZTsKICAgICBDU3RyaW5nIG1faGVhZGVyczsK
IAotICAgIFJ1bkxvb3A6OlRpbWVyPE5ldHNjYXBlUGx1Z2luU3RyZWFtPiBtX2RlbGl2ZXJ5RGF0
YVRpbWVyOworICAgIFdlYkNvcmU6OlJ1bkxvb3A6OlRpbWVyPE5ldHNjYXBlUGx1Z2luU3RyZWFt
PiBtX2RlbGl2ZXJ5RGF0YVRpbWVyOwogICAgIE93blB0cjwgVmVjdG9yPHVpbnQ4X3Q+ID4gbV9k
ZWxpdmVyeURhdGE7CiAgICAgYm9vbCBtX3N0b3BTdHJlYW1XaGVuRG9uZURlbGl2ZXJpbmc7CiB9
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL1BsdWdpblZp
ZXcuaCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9QbHVnaW5WaWV3LmgKaW5k
ZXggOTYyNGFjOTU0ZmFiZThmNTUyMjM0YjgzNWRmNzAzMmIzYjYwYWE1Mi4uY2Q2MzYzYTU4YmJl
YWQzMTgxNTI1NDk1NTU3YzhkZGViOTMxOTZhZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9QbHVnaW5zL1BsdWdpblZpZXcuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQ
cm9jZXNzL1BsdWdpbnMvUGx1Z2luVmlldy5oCkBAIC0yOSwxMyArMjksMTIgQEAKICNpbmNsdWRl
ICJOUFJ1bnRpbWVPYmplY3RNYXAuaCIKICNpbmNsdWRlICJQbHVnaW4uaCIKICNpbmNsdWRlICJQ
bHVnaW5Db250cm9sbGVyLmgiCi0jaW5jbHVkZSAiUnVuTG9vcC5oIgogI2luY2x1ZGUgIldlYkZy
YW1lLmgiCi0KICNpbmNsdWRlIDxXZWJDb3JlL01lZGlhQ2FuU3RhcnRMaXN0ZW5lci5oPgorI2lu
Y2x1ZGUgPFdlYkNvcmUvUGx1Z2luVmlld0Jhc2UuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1Jlc291
cmNlRXJyb3IuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1Jlc291cmNlUmVzcG9uc2UuaD4KLSNpbmNs
dWRlIDxXZWJDb3JlL1BsdWdpblZpZXdCYXNlLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9SdW5Mb29w
Lmg+CiAjaW5jbHVkZSA8d3RmL0RlcXVlLmg+CiAKIC8vIEZJWE1FOiBFdmVudHVhbGx5IHRoaXMg
c2hvdWxkIG1vdmUgdG8gV2ViQ29yZS4KQEAgLTE4MCw3ICsxNzksNyBAQCBwcml2YXRlOgogCiAg
ICAgLy8gUGVuZGluZyBVUkxSZXF1ZXN0cyB0aGF0IHRoZSBwbHVnLWluIGhhcyBtYWRlLgogICAg
IERlcXVlPFJlZlB0cjxVUkxSZXF1ZXN0PiA+IG1fcGVuZGluZ1VSTFJlcXVlc3RzOwotICAgIFJ1
bkxvb3A6OlRpbWVyPFBsdWdpblZpZXc+IG1fcGVuZGluZ1VSTFJlcXVlc3RzVGltZXI7CisgICAg
V2ViQ29yZTo6UnVuTG9vcDo6VGltZXI8UGx1Z2luVmlldz4gbV9wZW5kaW5nVVJMUmVxdWVzdHNU
aW1lcjsKIAogICAgIC8vIFBlbmRpbmcgZnJhbWUgbG9hZHMgdGhhdCB0aGUgcGx1Zy1pbiBoYXMg
bWFkZS4KICAgICB0eXBlZGVmIEhhc2hNYXA8UmVmUHRyPFdlYkZyYW1lPiwgUmVmUHRyPFVSTFJl
cXVlc3Q+ID4gRnJhbWVMb2FkTWFwOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJv
Y2Vzcy9XZWJDb25uZWN0aW9uVG9VSVByb2Nlc3MuY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJv
Y2Vzcy9XZWJDb25uZWN0aW9uVG9VSVByb2Nlc3MuY3BwCmluZGV4IDlhNjRhZGQxYzQyM2IwYjAx
NDdkOTJiNTI1NTA5Mjg1MWU2N2Y2ZDEuLjVlNzk1NWQ2NzYxOTAxZGVkYjdjMmRjYzY3NGQwZmIz
OWYyNjdjNzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29ubmVj
dGlvblRvVUlQcm9jZXNzLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNv
bm5lY3Rpb25Ub1VJUHJvY2Vzcy5jcHAKQEAgLTMwLDYgKzMwLDggQEAKICNpbmNsdWRlICJXZWJD
b25uZWN0aW9uTWVzc2FnZUtpbmRzLmgiCiAjaW5jbHVkZSAiV2ViUHJvY2Vzcy5oIgogCit1c2lu
ZyBuYW1lc3BhY2UgV2ViQ29yZTsKKwogbmFtZXNwYWNlIFdlYktpdCB7CiAKIFBhc3NSZWZQdHI8
V2ViQ29ubmVjdGlvblRvVUlQcm9jZXNzPiBXZWJDb25uZWN0aW9uVG9VSVByb2Nlc3M6OmNyZWF0
ZShXZWJQcm9jZXNzKiBwcm9jZXNzLCBDb3JlSVBDOjpDb25uZWN0aW9uOjpJZGVudGlmaWVyIGNv
bm5lY3Rpb25JZGVudGlmaWVyLCBSdW5Mb29wKiBydW5Mb29wKQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb25uZWN0aW9uVG9VSVByb2Nlc3MuaCBiL1NvdXJjZS9X
ZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29ubmVjdGlvblRvVUlQcm9jZXNzLmgKaW5kZXggMWQ5Yzk2
YzgwYjYwOGQ4ZTI4OGRiZDEwNTc2ZGEyYjc3MjQzYThjNS4uNDJiOWNkNzE2YjEyNDczMGUyZDgw
MGFkYzUxNGM1MDg0MmU1MDMxZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy9XZWJDb25uZWN0aW9uVG9VSVByb2Nlc3MuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9j
ZXNzL1dlYkNvbm5lY3Rpb25Ub1VJUHJvY2Vzcy5oCkBAIC0zNSwxNCArMzUsMTQgQEAgY2xhc3Mg
V2ViUHJvY2VzczsKIAogY2xhc3MgV2ViQ29ubmVjdGlvblRvVUlQcm9jZXNzIDogcHVibGljIFdl
YkNvbm5lY3Rpb24sIENvcmVJUEM6OkNvbm5lY3Rpb246OkNsaWVudCB7CiBwdWJsaWM6Ci0gICAg
c3RhdGljIFBhc3NSZWZQdHI8V2ViQ29ubmVjdGlvblRvVUlQcm9jZXNzPiBjcmVhdGUoV2ViUHJv
Y2VzcyosIENvcmVJUEM6OkNvbm5lY3Rpb246OklkZW50aWZpZXIsIFJ1bkxvb3AqKTsKKyAgICBz
dGF0aWMgUGFzc1JlZlB0cjxXZWJDb25uZWN0aW9uVG9VSVByb2Nlc3M+IGNyZWF0ZShXZWJQcm9j
ZXNzKiwgQ29yZUlQQzo6Q29ubmVjdGlvbjo6SWRlbnRpZmllciwgV2ViQ29yZTo6UnVuTG9vcCop
OwogCiAgICAgQ29yZUlQQzo6Q29ubmVjdGlvbiogY29ubmVjdGlvbigpIHsgcmV0dXJuIG1fY29u
bmVjdGlvbi5nZXQoKTsgfQogCiAgICAgdm9pZCBpbnZhbGlkYXRlKCk7CiAKIHByaXZhdGU6Ci0g
ICAgV2ViQ29ubmVjdGlvblRvVUlQcm9jZXNzKFdlYlByb2Nlc3MqLCBDb3JlSVBDOjpDb25uZWN0
aW9uOjpJZGVudGlmaWVyLCBSdW5Mb29wKik7CisgICAgV2ViQ29ubmVjdGlvblRvVUlQcm9jZXNz
KFdlYlByb2Nlc3MqLCBDb3JlSVBDOjpDb25uZWN0aW9uOjpJZGVudGlmaWVyLCBXZWJDb3JlOjpS
dW5Mb29wKik7CiAKICAgICAvLyBXZWJDb25uZWN0aW9uCiAgICAgdmlydHVhbCB2b2lkIHBvc3RN
ZXNzYWdlKGNvbnN0IFN0cmluZyYsIEFQSU9iamVjdCopOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJHcmFwaGljc0xheWVyLmggYi9Tb3Vy
Y2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkdyYXBoaWNzTGF5ZXIuaApp
bmRleCBiNzUwOWIzMzRmMmY1NGQ5ZDI3ZTNmY2JlNTIxOWExMGFkNzE2YmEzLi5kYjAzZDA3MTFk
YWUwMmRlZDc4ZTkzMThiZWY0NDgwOWY2ODdlNDQ5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkdyYXBoaWNzTGF5ZXIuaAorKysgYi9Tb3Vy
Y2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkdyYXBoaWNzTGF5ZXIuaApA
QCAtMjUsNyArMjUsNiBAQAogI2luY2x1ZGUgIkdyYXBoaWNzTGF5ZXIuaCIKICNpbmNsdWRlICJJ
bWFnZS5oIgogI2luY2x1ZGUgIkludFNpemUuaCIKLSNpbmNsdWRlICJSdW5Mb29wLmgiCiAjaW5j
bHVkZSAiU2hhcmVhYmxlQml0bWFwLmgiCiAjaW5jbHVkZSAiVGlsZWRCYWNraW5nU3RvcmUuaCIK
ICNpbmNsdWRlICJUaWxlZEJhY2tpbmdTdG9yZUNsaWVudC5oIgpAQCAtMzQsNiArMzMsNyBAQAog
I2luY2x1ZGUgIlVwZGF0ZUluZm8uaCIKICNpbmNsdWRlICJXZWJMYXllclRyZWVJbmZvLmgiCiAj
aW5jbHVkZSAiV2ViUHJvY2Vzcy5oIgorI2luY2x1ZGUgPFdlYkNvcmUvUnVuTG9vcC5oPgogCiAj
aWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvRHJhd2luZ0FyZWFJbXBsLmggYi9Tb3VyY2UvV2ViS2l0
Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvRHJhd2luZ0FyZWFJbXBsLmgKaW5kZXggMGRhYmY2MDNhMTEy
Njk0YzE1MTdkZTUwMWZiODI0MDQyMTM0MmE5Yi4uMjhjOGNlNjhjZDBlNDczNjBjZGU2ZjNhNjUy
NmVlNzZkMTQxOTU5ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQ
YWdlL0RyYXdpbmdBcmVhSW1wbC5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2Vi
UGFnZS9EcmF3aW5nQXJlYUltcGwuaApAQCAtMjgsOCArMjgsOCBAQAogCiAjaW5jbHVkZSAiRHJh
d2luZ0FyZWEuaCIKICNpbmNsdWRlICJMYXllclRyZWVIb3N0LmgiCi0jaW5jbHVkZSAiUnVuTG9v
cC5oIgogI2luY2x1ZGUgPFdlYkNvcmUvUmVnaW9uLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9SdW5M
b29wLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICBjbGFzcyBHcmFwaGljc0NvbnRleHQ7
CkBAIC0xMzEsOCArMTMxLDggQEAgcHJpdmF0ZToKICAgICBib29sIG1faXNQYWludGluZ1N1c3Bl
bmRlZDsKICAgICBib29sIG1fYWx3YXlzVXNlQ29tcG9zaXRpbmc7CiAKLSAgICBSdW5Mb29wOjpU
aW1lcjxEcmF3aW5nQXJlYUltcGw+IG1fZGlzcGxheVRpbWVyOwotICAgIFJ1bkxvb3A6OlRpbWVy
PERyYXdpbmdBcmVhSW1wbD4gbV9leGl0Q29tcG9zaXRpbmdUaW1lcjsKKyAgICBXZWJDb3JlOjpS
dW5Mb29wOjpUaW1lcjxEcmF3aW5nQXJlYUltcGw+IG1fZGlzcGxheVRpbWVyOworICAgIFdlYkNv
cmU6OlJ1bkxvb3A6OlRpbWVyPERyYXdpbmdBcmVhSW1wbD4gbV9leGl0Q29tcG9zaXRpbmdUaW1l
cjsKIAogICAgIC8vIFRoZSBsYXllciB0cmVlIGhvc3QgdGhhdCBoYW5kbGVzIGFjY2VsZXJhdGVk
IGNvbXBvc2l0aW5nLgogICAgIFJlZlB0cjxMYXllclRyZWVIb3N0PiBtX2xheWVyVHJlZUhvc3Q7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvRXZlbnREaXNw
YXRjaGVyLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9FdmVudERpc3Bh
dGNoZXIuY3BwCmluZGV4IDFhOTFkOGUzYzAyMzQ4NDM5YjlmMzJkY2Y4MzQwNjFmMDEzN2RiZjUu
LjNjMmU3M2VjYTZjMzEwODE5N2YwOWQzMmEyYmY3MDIwZmU5MzkyNmQgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9FdmVudERpc3BhdGNoZXIuY3BwCisrKyBi
L1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9FdmVudERpc3BhdGNoZXIuY3BwCkBA
IC0yNiwxMyArMjYsMTMgQEAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJFdmVudERp
c3BhdGNoZXIuaCIKIAotI2luY2x1ZGUgIlJ1bkxvb3AuaCIKICNpbmNsdWRlICJXZWJFdmVudC5o
IgogI2luY2x1ZGUgIldlYkV2ZW50Q29udmVyc2lvbi5oIgogI2luY2x1ZGUgIldlYlBhZ2UuaCIK
ICNpbmNsdWRlICJXZWJQYWdlUHJveHlNZXNzYWdlcy5oIgogI2luY2x1ZGUgIldlYlByb2Nlc3Mu
aCIKICNpbmNsdWRlIDxXZWJDb3JlL1BhZ2UuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL1J1bkxvb3Au
aD4KICNpbmNsdWRlIDx3dGYvTWFpblRocmVhZC5oPgogCiAjaWYgRU5BQkxFKFRIUkVBREVEX1ND
Uk9MTElORykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9Q
YWdlT3ZlcmxheS5oIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1BhZ2VPdmVy
bGF5LmgKaW5kZXggMWY2MWNlYmU5MjYyNDM5N2QxOWRiYWIyYzk4MDE3MDY4NDVjZmJhNi4uOTQ5
NzY3ODA2ZjI3NDMzYzE0MzYzZTYxMjFlYjM4ZmM4NzY1YWNkMCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1BhZ2VPdmVybGF5LmgKKysrIGIvU291cmNlL1dl
YktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1BhZ2VPdmVybGF5LmgKQEAgLTI3LDcgKzI3LDcgQEAK
ICNkZWZpbmUgUGFnZU92ZXJsYXlfaAogCiAjaW5jbHVkZSAiQVBJT2JqZWN0LmgiCi0jaW5jbHVk
ZSAiUnVuTG9vcC5oIgorI2luY2x1ZGUgPFdlYkNvcmUvUnVuTG9vcC5oPgogI2luY2x1ZGUgPHd0
Zi9QYXNzUmVmUHRyLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKQEAgLTg2LDcgKzg2LDcgQEAg
cHJpdmF0ZToKICAgICBDbGllbnQqIG1fY2xpZW50OwogICAgIFdlYlBhZ2UqIG1fd2ViUGFnZTsK
IAotICAgIFJ1bkxvb3A6OlRpbWVyPFBhZ2VPdmVybGF5PiBtX2ZhZGVBbmltYXRpb25UaW1lcjsK
KyAgICBXZWJDb3JlOjpSdW5Mb29wOjpUaW1lcjxQYWdlT3ZlcmxheT4gbV9mYWRlQW5pbWF0aW9u
VGltZXI7CiAgICAgZG91YmxlIG1fZmFkZUFuaW1hdGlvblN0YXJ0VGltZTsKICAgICBkb3VibGUg
bV9mYWRlQW5pbWF0aW9uRHVyYXRpb247CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dl
YlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
V2ViUGFnZS9XZWJQYWdlLmNwcAppbmRleCBhMWMzYzJjMDAzMzcwOTQ3YjMwODIwZDA5Y2EzMGE4
Mzk3YzJmYTQwLi41NDUzMGYxOThhMDU4NWJiNGI0OWFiNjIxMmQyMDRhZGU5ZDE3MTU4IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKKysr
IGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCkBAIC00MCw3
ICs0MCw2IEBACiAjaW5jbHVkZSAiUGx1Z2luUHJveHkuaCIKICNpbmNsdWRlICJQbHVnaW5WaWV3
LmgiCiAjaW5jbHVkZSAiUHJpbnRJbmZvLmgiCi0jaW5jbHVkZSAiUnVuTG9vcC5oIgogI2luY2x1
ZGUgIlNlc3Npb25TdGF0ZS5oIgogI2luY2x1ZGUgIlNoYXJlYWJsZUJpdG1hcC5oIgogI2luY2x1
ZGUgIldlYkJhY2tGb3J3YXJkTGlzdC5oIgpAQCAtMTA0LDYgKzEwMyw3IEBACiAjaW5jbHVkZSA8
V2ViQ29yZS9SZW5kZXJWaWV3Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9SZXBsYWNlU2VsZWN0aW9u
Q29tbWFuZC5oPgogI2luY2x1ZGUgPFdlYkNvcmUvUmVzb3VyY2VSZXF1ZXN0Lmg+CisjaW5jbHVk
ZSA8V2ViQ29yZS9SdW5Mb29wLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9TY2hlbWVSZWdpc3RyeS5o
PgogI2luY2x1ZGUgPFdlYkNvcmUvU2NyaXB0VmFsdWUuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1Nl
cmlhbGl6ZWRTY3JpcHRWYWx1ZS5oPgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJv
Y2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFn
ZS9XZWJQYWdlLmgKaW5kZXggNDAwNzJjZmJmMTU2MGNkMGJkNThiYzg0ZDExNmIyZjI4MTIxZDQ2
OC4uODZlYTBkNzVhMjM5ODA3NzRhZTU1NzZjMTNkOGE3ZWUxOTZlNWY5ZCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaAorKysgYi9Tb3VyY2Uv
V2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oCkBAIC02NzcsNyArNjc3LDcgQEAg
cHJpdmF0ZToKICAgICBSZWZQdHI8V2ViQ29yZTo6Tm9kZT4gbV9nZXN0dXJlVGFyZ2V0Tm9kZTsK
ICNlbmRpZgogICAgIAotICAgIFJ1bkxvb3A6OlRpbWVyPFdlYlBhZ2U+IG1fc2V0Q2FuU3RhcnRN
ZWRpYVRpbWVyOworICAgIFdlYkNvcmU6OlJ1bkxvb3A6OlRpbWVyPFdlYlBhZ2U+IG1fc2V0Q2Fu
U3RhcnRNZWRpYVRpbWVyOwogCiAgICAgSGFzaE1hcDx1aW50NjRfdCwgUmVmUHRyPFdlYlVuZG9T
dGVwPiA+IG1fdW5kb1N0ZXBNYXA7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlBy
b2Nlc3MvV2ViUHJvY2Vzcy5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlByb2Nl
c3MuY3BwCmluZGV4IGM0YWZhMGYzZGUzMDcyNjRiYjE3NDJiOGE4ZGQ2ZTMwNDkwNDc1ZDAuLmQw
OTgxMDcxZjYxMTg2YzJiNjI2MDMxZTk5ZDUwNmMyOTQzZmYxMTQgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5jcHAKKysrIGIvU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmNwcApAQCAtMzEsNyArMzEsNiBAQAogI2luY2x1ZGUgIklu
amVjdGVkQnVuZGxlLmgiCiAjaW5jbHVkZSAiSW5qZWN0ZWRCdW5kbGVNZXNzYWdlS2luZHMuaCIK
ICNpbmNsdWRlICJJbmplY3RlZEJ1bmRsZVVzZXJNZXNzYWdlQ29kZXJzLmgiCi0jaW5jbHVkZSAi
UnVuTG9vcC5oIgogI2luY2x1ZGUgIlNhbmRib3hFeHRlbnNpb24uaCIKICNpbmNsdWRlICJTdGF0
aXN0aWNzRGF0YS5oIgogI2luY2x1ZGUgIldlYkFwcGxpY2F0aW9uQ2FjaGVNYW5hZ2VyLmgiCkBA
IC03Miw2ICs3MSw3IEBACiAjaW5jbHVkZSA8V2ViQ29yZS9QYWdlQ2FjaGUuaD4KICNpbmNsdWRl
IDxXZWJDb3JlL1BhZ2VHcm91cC5oPgogI2luY2x1ZGUgPFdlYkNvcmUvUmVzb3VyY2VIYW5kbGUu
aD4KKyNpbmNsdWRlIDxXZWJDb3JlL1J1bkxvb3AuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1NjaGVt
ZVJlZ2lzdHJ5Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9TZWN1cml0eU9yaWdpbi5oPgogI2luY2x1
ZGUgPFdlYkNvcmUvU2V0dGluZ3MuaD4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlBy
b2Nlc3MvV2ViUHJvY2Vzcy5oIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQcm9jZXNz
LmgKaW5kZXggOWZiMzdjNzJlNzQyMDE5ZWFiMTQ5ZjQxZTJjZjM2YjVjMzRkZmJmZi4uZWZhMmU2
ODFhNjJhOGU2ZDkzNTg3NDY2OTM5YWQzM2Q0MjNiOTJmYiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdDIvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmgKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJv
Y2Vzcy9XZWJQcm9jZXNzLmgKQEAgLTgyLDEwICs4MiwxMCBAQCBjbGFzcyBXZWJQcm9jZXNzIDog
cHVibGljIENoaWxkUHJvY2VzcywgcHJpdmF0ZSBDb3JlSVBDOjpDb25uZWN0aW9uOjpRdWV1ZUNs
aWVudAogcHVibGljOgogICAgIHN0YXRpYyBXZWJQcm9jZXNzJiBzaGFyZWQoKTsKIAotICAgIHZv
aWQgaW5pdGlhbGl6ZShDb3JlSVBDOjpDb25uZWN0aW9uOjpJZGVudGlmaWVyLCBSdW5Mb29wKik7
CisgICAgdm9pZCBpbml0aWFsaXplKENvcmVJUEM6OkNvbm5lY3Rpb246OklkZW50aWZpZXIsIFdl
YkNvcmU6OlJ1bkxvb3AqKTsKIAogICAgIENvcmVJUEM6OkNvbm5lY3Rpb24qIGNvbm5lY3Rpb24o
KSBjb25zdCB7IHJldHVybiBtX2Nvbm5lY3Rpb24tPmNvbm5lY3Rpb24oKTsgfQotICAgIFJ1bkxv
b3AqIHJ1bkxvb3AoKSBjb25zdCB7IHJldHVybiBtX3J1bkxvb3A7IH0KKyAgICBXZWJDb3JlOjpS
dW5Mb29wKiBydW5Mb29wKCkgY29uc3QgeyByZXR1cm4gbV9ydW5Mb29wOyB9CiAKICAgICBXZWJD
b25uZWN0aW9uVG9VSVByb2Nlc3MqIHdlYkNvbm5lY3Rpb25Ub1VJUHJvY2VzcygpIGNvbnN0IHsg
cmV0dXJuIG1fY29ubmVjdGlvbi5nZXQoKTsgfQogCkBAIC0yNDEsNyArMjQxLDcgQEAgcHJpdmF0
ZToKIAogICAgIGJvb2wgbV9pbkRpZENsb3NlOwogCi0gICAgUnVuTG9vcCogbV9ydW5Mb29wOwor
ICAgIFdlYkNvcmU6OlJ1bkxvb3AqIG1fcnVuTG9vcDsKIAogICAgIC8vIEZJWE1FOiBUaGUgdmlz
aXRlZCBsaW5rIHRhYmxlIHNob3VsZCBub3QgYmUgcGVyIHByb2Nlc3MuCiAgICAgVmlzaXRlZExp
bmtUYWJsZSBtX3Zpc2l0ZWRMaW5rVGFibGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9X
ZWJQcm9jZXNzL2d0ay9XZWJQcm9jZXNzTWFpbkd0ay5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQ
cm9jZXNzL2d0ay9XZWJQcm9jZXNzTWFpbkd0ay5jcHAKaW5kZXggZmI5Njk4ZWRhYWY1MmQ5NTRi
OTVjNzczMDUwYjg2OTc0MDczNjVhYy4uNjc2NjBmOTNlMGQ2N2VlYTk1ZWVlMmQ0NDhmOTI0Nzg5
YmI0OTdlYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9ndGsvV2ViUHJv
Y2Vzc01haW5HdGsuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvZ3RrL1dlYlBy
b2Nlc3NNYWluR3RrLmNwcApAQCAtMzEsNyArMzEsNyBAQAogI2luY2x1ZGUgIldLQmFzZS5oIgog
I2luY2x1ZGUgPFdlYkNvcmUvR3RrQXV0aGVudGljYXRpb25EaWFsb2cuaD4KICNpbmNsdWRlIDxX
ZWJDb3JlL1Jlc291cmNlSGFuZGxlLmg+Ci0jaW5jbHVkZSA8V2ViS2l0Mi9SdW5Mb29wLmg+Cisj
aW5jbHVkZSA8V2ViQ29yZS9SdW5Mb29wLmg+CiAjaW5jbHVkZSA8V2ViS2l0Mi9XZWJQcm9jZXNz
Lmg+CiAjaW5jbHVkZSA8Z3RrL2d0ay5oPgogI2luY2x1ZGUgPHJ1bnRpbWUvSW5pdGlhbGl6ZVRo
cmVhZGluZy5oPgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9tYWMvV2Vi
UHJvY2Vzc01haW5NYWMubW0gYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL21hYy9XZWJQcm9j
ZXNzTWFpbk1hYy5tbQppbmRleCBiNWEzZmUwN2QwNjc4NDNiZTViM2MzNTBhMTRhMDkwZjk5YzE1
YmEwLi40ZTJiMTU1MzIyMTBjMDA0NGYyYjk4ODEzM2Y3YmJkZGY2Yzg1NTY5IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL21hYy9XZWJQcm9jZXNzTWFpbk1hYy5tbQorKysg
Yi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL21hYy9XZWJQcm9jZXNzTWFpbk1hYy5tbQpAQCAt
MjksOSArMjksOSBAQAogI2ltcG9ydCAiQ29tbWFuZExpbmUuaCIKICNpbXBvcnQgIkVudmlyb25t
ZW50VXRpbGl0aWVzLmgiCiAjaW1wb3J0ICJFbnZpcm9ubWVudFZhcmlhYmxlcy5oIgotI2ltcG9y
dCAiUnVuTG9vcC5oIgogI2ltcG9ydCAiV2ViUHJvY2Vzcy5oIgogI2ltcG9ydCAiV2ViU3lzdGVt
SW50ZXJmYWNlLmgiCisjaW1wb3J0IDxXZWJDb3JlL1J1bkxvb3AuaD4KICNpbXBvcnQgPFdlYktp
dDIvV0tWaWV3Lmg+CiAjaW1wb3J0IDxXZWJLaXRTeXN0ZW1JbnRlcmZhY2UuaD4KICNpbXBvcnQg
PG1hY2gvbWFjaF9lcnJvci5oPgpAQCAtNDMsOCArNDMsOCBAQAogI2ltcG9ydCA8c3RkaW8uaD4K
ICNpbXBvcnQgPHN5c2V4aXRzLmg+CiAjaW1wb3J0IDx1bmlzdGQuaD4KLSNpbXBvcnQgPHd0Zi9S
ZXRhaW5QdHIuaD4KICNpbXBvcnQgPHd0Zi9NYWluVGhyZWFkLmg+CisjaW1wb3J0IDx3dGYvUmV0
YWluUHRyLmg+CiAjaW1wb3J0IDx3dGYvdGV4dC9DU3RyaW5nLmg+CiAjaW1wb3J0IDx3dGYvdGV4
dC9TdHJpbmdCdWlsZGVyLmg+CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nl
c3MvcXQvV2ViUHJvY2Vzc01haW5RdC5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL3F0
L1dlYlByb2Nlc3NNYWluUXQuY3BwCmluZGV4IGMzOGUzODI0MWQyNzI1OWQ0NjljOWMzYWU1Y2Ew
YzBhMDE3ZTdkYTMuLjkxZTdhZTQzNzhmMGM0MWQ4Y2Y4MTAwNmQ2MTI3YTg4NTgzNGVkNWIgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvcXQvV2ViUHJvY2Vzc01haW5RdC5j
cHAKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9xdC9XZWJQcm9jZXNzTWFpblF0LmNw
cApAQCAtMjUsOSArMjUsMTAgQEAKICAqLwogCiAjaW5jbHVkZSAiY29uZmlnLmgiCi0jaW5jbHVk
ZSAiUnVuTG9vcC5oIgotI2luY2x1ZGUgPHJ1bnRpbWUvSW5pdGlhbGl6ZVRocmVhZGluZy5oPgor
CiAjaW5jbHVkZSAiV2ViUHJvY2Vzcy5oIgorI2luY2x1ZGUgPFdlYkNvcmUvUnVuTG9vcC5oPgor
I2luY2x1ZGUgPHJ1bnRpbWUvSW5pdGlhbGl6ZVRocmVhZGluZy5oPgogI2luY2x1ZGUgPHd0Zi9N
YWluVGhyZWFkLmg+CiAKICNpbmNsdWRlIDxRQXBwbGljYXRpb24+CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0Mi9XZWJQcm9jZXNzL3dpbi9XZWJQcm9jZXNzTWFpbldpbi5jcHAgYi9Tb3VyY2Uv
V2ViS2l0Mi9XZWJQcm9jZXNzL3dpbi9XZWJQcm9jZXNzTWFpbldpbi5jcHAKaW5kZXggNWVkZWVm
ZTVjZGRiNWFmMmRjNDQ3OGFmNDQ5YWU2YmFmZDM4NDdiMS4uMmE3MDY4NWU0ODVlMDYzNWIxNTE2
OGZhNTUwY2RjNzBiOWVhMjUxZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy93aW4vV2ViUHJvY2Vzc01haW5XaW4uY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nl
c3Mvd2luL1dlYlByb2Nlc3NNYWluV2luLmNwcApAQCAtMjcsMTQgKzI3LDE2IEBACiAjaW5jbHVk
ZSAiV2ViUHJvY2Vzc01haW4uaCIKIAogI2luY2x1ZGUgIkNvbW1hbmRMaW5lLmgiCi0jaW5jbHVk
ZSAiUnVuTG9vcC5oIgogI2luY2x1ZGUgIldlYlByb2Nlc3MuaCIKKyNpbmNsdWRlIDxXZWJDb3Jl
L1J1bkxvb3AuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1NvZnRMaW5raW5nLmg+CiAjaW5jbHVkZSA8
cnVudGltZS9Jbml0aWFsaXplVGhyZWFkaW5nLmg+CiAjaW5jbHVkZSA8d3RmL01haW5UaHJlYWQu
aD4KICNpbmNsdWRlIDx3dGYvdGV4dC9TdHJpbmdIYXNoLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQv
V1RGU3RyaW5nLmg+CiAKK3VzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOworCiBuYW1lc3BhY2UgV2Vi
S2l0IHsKIAogI2lmIFVTRShTQUZBUklfVEhFTUUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
Mi93aW4vV2ViS2l0Mi52Y3Byb2ogYi9Tb3VyY2UvV2ViS2l0Mi93aW4vV2ViS2l0Mi52Y3Byb2oK
aW5kZXggNzUyMjc4ZGRjMDE1Y2NmNDQ1YmExYzdiZWM2MGY1NDE4MDU0N2E2ZS4uMTY3YmEzZDkx
MjdiODdkZDA1NTQ3ZWQ3YWI0ZWY3MTE2OTkxMjM1MiAxMDA3NTUKLS0tIGEvU291cmNlL1dlYktp
dDIvd2luL1dlYktpdDIudmNwcm9qCisrKyBiL1NvdXJjZS9XZWJLaXQyL3dpbi9XZWJLaXQyLnZj
cHJvagpAQCAtMzg4NywxNCArMzg4Nyw2IEBACiAJCQkJPgogCQkJPC9GaWxlPgogCQkJPEZpbGUK
LQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXFBsYXRmb3JtXFJ1bkxvb3AuY3BwIgotCQkJCT4KLQkJCTwv
RmlsZT4KLQkJCTxGaWxlCi0JCQkJUmVsYXRpdmVQYXRoPSIuLlxQbGF0Zm9ybVxSdW5Mb29wLmgi
Ci0JCQkJPgotCQkJPC9GaWxlPgotCQkJPEZpbGUKIAkJCQlSZWxhdGl2ZVBhdGg9Ii4uXFBsYXRm
b3JtXFNoYXJlZE1lbW9yeS5oIgogCQkJCT4KIAkJCTwvRmlsZT4KQEAgLTM5NDIsMTAgKzM5MzQs
NiBAQAogCQkJCQk+CiAJCQkJPC9GaWxlPgogCQkJCTxGaWxlCi0JCQkJCVJlbGF0aXZlUGF0aD0i
Li5cUGxhdGZvcm1cd2luXFJ1bkxvb3BXaW4uY3BwIgotCQkJCQk+Ci0JCQkJPC9GaWxlPgotCQkJ
CTxGaWxlCiAJCQkJCVJlbGF0aXZlUGF0aD0iLi5cUGxhdGZvcm1cd2luXFNoYXJlZE1lbW9yeVdp
bi5jcHAiCiAJCQkJCT4KIAkJCQk8L0ZpbGU+Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>123037</attachid>
            <date>2012-01-18 16:47:34 -0800</date>
            <delta_ts>2012-01-19 10:14:01 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-76471-20120118164743.patch</filename>
            <type>text/plain</type>
            <size>128610</size>
            <attacher name="Sam Weinig">sam</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTA1MzE3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMjIxOTRlZDE3NmVlNTlk
N2ExYzkwMmE5OTVhNmI3ZDg0NTE0MWZmOS4uMmM1YTEyZWNlZDk4ZmZhY2Q3ZTc0OTI1Nzk1ZmU4
ODhjZTE3MjA1NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI1IEBACisyMDEyLTAxLTE4ICBTYW0g
V2VpbmlnICA8c2FtQHdlYmtpdC5vcmc+CisKKyAgICAgICAgTW92ZSBSdW5Mb29wIHRvIFdlYkNv
cmUvcGxhdGZvcm0KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTc2NDcxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgKiBHTlVtYWtlZmlsZS5saXN0LmFtOgorICAgICAgICAqIFRhcmdldC5wcmk6CisgICAgICAg
ICogV2ViQ29yZS5leHAuaW46CisgICAgICAgICogV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3By
b2o6CisgICAgICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAg
ICBBZGQgbmV3bHkgbW92ZWQgZmlsZXMuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9SdW5Mb29wLmNw
cDogTW92ZWQgZnJvbSBTb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9SdW5Mb29wLmNwcC4KKyAgICAg
ICAgKiBwbGF0Zm9ybS9SdW5Mb29wLmg6IE1vdmVkIGZyb20gU291cmNlL1dlYktpdDIvUGxhdGZv
cm0vUnVuTG9vcC5oLgorICAgICAgICAqIHBsYXRmb3JtL2d0ay9SdW5Mb29wR3RrLmNwcDogTW92
ZWQgZnJvbSBTb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9ndGsvUnVuTG9vcEd0ay5jcHAuCisgICAg
ICAgICogcGxhdGZvcm0vbWFjL1J1bkxvb3BNYWMubW06IE1vdmVkIGZyb20gU291cmNlL1dlYktp
dDIvUGxhdGZvcm0vbWFjL1J1bkxvb3BNYWMubW0uCisgICAgICAgICogcGxhdGZvcm0vcXQvUnVu
TG9vcFF0LmNwcDogTW92ZWQgZnJvbSBTb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9xdC9SdW5Mb29w
UXQuY3BwLgorICAgICAgICAqIHBsYXRmb3JtL3dpbi9SdW5Mb29wV2luLmNwcDogTW92ZWQgZnJv
bSBTb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS93aW4vUnVuTG9vcFdpbi5jcHAuCisgICAgICAgIE1v
dmUgdGhlIGZpbGVzLgorCiAyMDEyLTAxLTE4ICBFcmljIENhcmxzb24gIDxlcmljLmNhcmxzb25A
YXBwbGUuY29tPgogCiAgICAgICAgIFByb3ZpZGUgYWNjZXNzIHRvIHVzZXIncyBsaXN0IG9mIHBy
ZWZlcnJlZCBsYW5ndWFnZXMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZyBi
L1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwppbmRleCA0ZDJhN2FmN2EwMmM2OTEyZDI3YjVkNWM1
NDBhZjhhMThjZDViZDU3Li42Y2UwNmMzNzNiZDc1NTE0YTQ4YmZkZDQ2OGUwMTA1ZGU3ZGM0N2Ey
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktp
dDIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNjcgQEAKKzIwMTItMDEtMTggIFNhbSBXZWluaWcgIDxz
YW1Ad2Via2l0Lm9yZz4KKworICAgICAgICBNb3ZlIFJ1bkxvb3AgdG8gV2ViQ29yZS9wbGF0Zm9y
bQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzY0NzEK
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIEdOVW1h
a2VmaWxlLmFtOgorICAgICAgICAqIFBsYXRmb3JtL0NvcmVJUEMvQ29ubmVjdGlvbi5jcHA6Cisg
ICAgICAgICogUGxhdGZvcm0vQ29yZUlQQy9Db25uZWN0aW9uLmg6CisgICAgICAgICogUGxhdGZv
cm0vQ29yZUlQQy9tYWMvQ29ubmVjdGlvbk1hYy5jcHA6CisgICAgICAgICogUGx1Z2luUHJvY2Vz
cy9QbHVnaW5Db250cm9sbGVyUHJveHkuaDoKKyAgICAgICAgKiBQbHVnaW5Qcm9jZXNzL1BsdWdp
blByb2Nlc3MuY3BwOgorICAgICAgICAqIFBsdWdpblByb2Nlc3MvUGx1Z2luUHJvY2Vzcy5oOgor
ICAgICAgICAqIFBsdWdpblByb2Nlc3MvV2ViUHJvY2Vzc0Nvbm5lY3Rpb24uY3BwOgorICAgICAg
ICAqIFBsdWdpblByb2Nlc3MvbWFjL1BsdWdpblByb2Nlc3NNYWluTWFjLm1tOgorICAgICAgICAq
IFBsdWdpblByb2Nlc3MvcXQvUGx1Z2luUHJvY2Vzc01haW5RdC5jcHA6CisgICAgICAgICogU2hh
cmVkL0NoaWxkUHJvY2Vzcy5jcHA6CisgICAgICAgICogU2hhcmVkL0NoaWxkUHJvY2Vzcy5oOgor
ICAgICAgICAqIFRhcmdldC5wcmk6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9tYWMvRmluZElu
ZGljYXRvcldpbmRvdy5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvbWFjL1dLVmlldy5tbToK
KyAgICAgICAgKiBVSVByb2Nlc3MvRHJhd2luZ0FyZWFQcm94eUltcGwuaDoKKyAgICAgICAgKiBV
SVByb2Nlc3MvTGF1bmNoZXIvVGhyZWFkTGF1bmNoZXIuY3BwOgorICAgICAgICAqIFVJUHJvY2Vz
cy9MYXVuY2hlci9ndGsvUHJvY2Vzc0xhdW5jaGVyR3RrLmNwcDoKKyAgICAgICAgKiBVSVByb2Nl
c3MvTGF1bmNoZXIvbWFjL1Byb2Nlc3NMYXVuY2hlck1hYy5tbToKKyAgICAgICAgKiBVSVByb2Nl
c3MvTGF1bmNoZXIvbWFjL1RocmVhZExhdW5jaGVyTWFjLm1tOgorICAgICAgICAqIFVJUHJvY2Vz
cy9MYXVuY2hlci9xdC9Qcm9jZXNzTGF1bmNoZXJRdC5jcHA6CisgICAgICAgICogVUlQcm9jZXNz
L0xhdW5jaGVyL3F0L1RocmVhZExhdW5jaGVyUXQuY3BwOgorICAgICAgICAqIFVJUHJvY2Vzcy9M
YXVuY2hlci93aW4vUHJvY2Vzc0xhdW5jaGVyV2luLmNwcDoKKyAgICAgICAgKiBVSVByb2Nlc3Mv
TGF1bmNoZXIvd2luL1RocmVhZExhdW5jaGVyV2luLmNwcDoKKyAgICAgICAgKiBVSVByb2Nlc3Mv
TGF5ZXJUcmVlSG9zdFByb3h5Lmg6CisgICAgICAgICogVUlQcm9jZXNzL1BsdWdpbnMvUGx1Z2lu
UHJvY2Vzc1Byb3h5LmNwcDoKKyAgICAgICAgKiBVSVByb2Nlc3MvUmVzcG9uc2l2ZW5lc3NUaW1l
ci5jcHA6CisgICAgICAgICogVUlQcm9jZXNzL1Jlc3BvbnNpdmVuZXNzVGltZXIuaDoKKyAgICAg
ICAgKiBVSVByb2Nlc3MvVGlsZWREcmF3aW5nQXJlYVByb3h5Lmg6CisgICAgICAgICogVUlQcm9j
ZXNzL1Zpc2l0ZWRMaW5rUHJvdmlkZXIuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViQ29ubmVj
dGlvblRvV2ViUHJvY2Vzcy5jcHA6CisgICAgICAgICogVUlQcm9jZXNzL1dlYkNvbm5lY3Rpb25U
b1dlYlByb2Nlc3MuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViQ29udGV4dC5jcHA6CisgICAg
ICAgICogVUlQcm9jZXNzL3dpbi9XZWJWaWV3LmNwcDoKKyAgICAgICAgKiBXZWJLaXQyLnhjb2Rl
cHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogV2ViUHJvY2Vzcy9QbHVnaW5zL05ldHNj
YXBlL05QUnVudGltZU9iamVjdE1hcC5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvUGx1Z2lucy9O
ZXRzY2FwZS9OZXRzY2FwZVBsdWdpbi5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvUGx1Z2lucy9O
ZXRzY2FwZS9OZXRzY2FwZVBsdWdpblN0cmVhbS5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvUGx1
Z2lucy9QbHVnaW5WaWV3Lmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJDb25uZWN0aW9uVG9V
SVByb2Nlc3MuY3BwOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViQ29ubmVjdGlvblRvVUlQcm9j
ZXNzLmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJHcmFwaGljc0xh
eWVyLmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL0RyYXdpbmdBcmVhSW1wbC5oOgor
ICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9FdmVudERpc3BhdGNoZXIuY3BwOgorICAgICAg
ICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9QYWdlT3ZlcmxheS5oOgorICAgICAgICAqIFdlYlByb2Nl
c3MvV2ViUGFnZS9XZWJQYWdlLmNwcDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2Vi
UGFnZS5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUHJvY2Vzcy5jcHA6CisgICAgICAgICog
V2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmg6CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3M6OnJ1
bkxvb3ApOgorICAgICAgICAqIFdlYlByb2Nlc3MvZ3RrL1dlYlByb2Nlc3NNYWluR3RrLmNwcDoK
KyAgICAgICAgKiBXZWJQcm9jZXNzL21hYy9XZWJQcm9jZXNzTWFpbk1hYy5tbToKKyAgICAgICAg
KiBXZWJQcm9jZXNzL3F0L1dlYlByb2Nlc3NNYWluUXQuY3BwOgorICAgICAgICAqIFdlYlByb2Nl
c3Mvd2luL1dlYlByb2Nlc3NNYWluV2luLmNwcDoKKyAgICAgICAgKiB3aW4vV2ViS2l0Mi52Y3By
b2o6CisgICAgICAgIFJlbW92ZSBSdW5Mb29wIGNvZGUgYW5kIHVwZGF0ZSAjaW5jbHVkZXMuCisK
IDIwMTItMDEtMTggIEVyaWMgQ2FybHNvbiAgPGVyaWMuY2FybHNvbkBhcHBsZS5jb20+CiAKICAg
ICAgICAgUHJvdmlkZSBhY2Nlc3MgdG8gdXNlcidzIGxpc3Qgb2YgcHJlZmVycmVkIGxhbmd1YWdl
cwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbSBiL1NvdXJj
ZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0KaW5kZXggYmJiMjY1OTY3MmYxMTExZGIxZDUz
Y2VhYmY4NWMxNTFjMGFjNDIyNy4uODNlMTliMzMxYjI4NzIzZTM1NTU3OWY3NzM3YTUwZjhiODg4
ZjYxMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbQorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0LmFtCkBAIC0zMjI2LDYgKzMyMjYsOCBA
QCB3ZWJjb3JlX3NvdXJjZXMgKz0gXAogCVNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1BvcHVwTWVu
dVN0eWxlLmggXAogCVNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1B1cmdlYWJsZUJ1ZmZlci5oIFwK
IAlTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9QdXJnZVByaW9yaXR5LmggXAorCVNvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL1J1bkxvb3AuY3BwIFwKKwlTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9SdW5M
b29wLmggXAogCVNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1J1bnRpbWVBcHBsaWNhdGlvbkNoZWNr
cy5jcHAgXAogCVNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1J1bnRpbWVBcHBsaWNhdGlvbkNoZWNr
cy5oIFwKIAlTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY2hlbWVSZWdpc3RyeS5jcHAgXApAQCAt
NDUwMSw2ICs0NTAzLDcgQEAgd2ViY29yZWd0a19zb3VyY2VzICs9IFwKIAlTb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ndGsvUmVuZGVyVGhlbWVHdGsuaCBcCiAJU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3RrL1JlbmRlclRoZW1lR3RrMi5jcHAgXAogCVNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2d0
ay9SZW5kZXJUaGVtZUd0azMuY3BwIFwKKwlTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ndGsvUnVu
TG9vcEd0ay5jcHAgXAogCVNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9TY3JvbGxiYXJUaGVt
ZUd0ay5jcHAgXAogCVNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9TY3JvbGxiYXJUaGVtZUd0
ay5oIFwKIAlTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ndGsvU2Nyb2xsYmFyVGhlbWVHdGsyLmNw
cCBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9UYXJnZXQucHJpIGIvU291cmNlL1dlYkNv
cmUvVGFyZ2V0LnByaQppbmRleCA0NTdkYjBjZTBiY2ViOGIwN2RjNDQ5NDQ0NmM3ZjE4NjkxZmU2
NTViLi45Nzk1NmJjYmM0MWViZjlhYzI1OTIxNjIxNWU1MTBhYjdlZjNlMzRkIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9UYXJnZXQucHJpCisrKyBiL1NvdXJjZS9XZWJDb3JlL1RhcmdldC5w
cmkKQEAgLTExMjgsNiArMTEyOCw3IEBAIFNPVVJDRVMgKz0gXAogICAgIHBsYXRmb3JtL3RleHQv
UmVndWxhckV4cHJlc3Npb24uY3BwIFwKICAgICBwbGF0Zm9ybS9QbGF0Zm9ybUV2ZW50LmNwcCBc
CiAgICAgcGxhdGZvcm0vUnVudGltZUFwcGxpY2F0aW9uQ2hlY2tzLmNwcCBcCisgICAgcGxhdGZv
cm0vUnVuTG9vcC5jcHAgXAogICAgIHBsYXRmb3JtL1NjaGVtZVJlZ2lzdHJ5LmNwcCBcCiAgICAg
cGxhdGZvcm0vU2Nyb2xsYWJsZUFyZWEuY3BwIFwKICAgICBwbGF0Zm9ybS9TY3JvbGxBbmltYXRv
ci5jcHAgXApAQCAtMjgwMiw2ICsyODAzLDcgQEAgU09VUkNFUyArPSBcCiAgICAgcGxhdGZvcm0v
cXQvRHJhZ0ltYWdlUXQuY3BwIFwKICAgICBwbGF0Zm9ybS9xdC9FdmVudExvb3BRdC5jcHAgXAog
ICAgIHBsYXRmb3JtL3F0L0ZpbGVTeXN0ZW1RdC5jcHAgXAorICAgIHBsYXRmb3JtL3F0L1J1bkxv
b3BRdC5jcHAgXAogICAgIHBsYXRmb3JtL3F0L1NoYXJlZEJ1ZmZlclF0LmNwcCBcCiAgICAgcGxh
dGZvcm0vcXQvVGhpcmRQYXJ0eUNvb2tpZXNRdC5jcHAgXAogICAgIHBsYXRmb3JtL2dyYXBoaWNz
L3F0L0ZvbnRDYWNoZVF0LmNwcCBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3Jl
LmV4cC5pbiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZXhwLmluCmluZGV4IGY3NDM4NjIwYTMw
ZmQwYTI2OWU5ZTRhZDE3MmQ2YmUyYTNiZDhkNjkuLjRmODdjN2Q5YWY5OTFmNWJjZGQ4NDg1MjJk
MDM2ZjBmOTE4NDE2YmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZXhwLmlu
CisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZXhwLmluCkBAIC0yODAsNyArMjgwLDYgQEAg
X19aTjdXZWJDb3JlMTJQcmludENvbnRleHQ5c3Bvb2xQYWdlRVJOU18xNUdyYXBoaWNzQ29udGV4
dEVpZgogX19aTjdXZWJDb3JlMTJQcmludENvbnRleHQ5c3Bvb2xSZWN0RVJOU18xNUdyYXBoaWNz
Q29udGV4dEVSS05TXzdJbnRSZWN0RQogX19aTjdXZWJDb3JlMTJQcmludENvbnRleHRDMUVQTlNf
NUZyYW1lRQogX19aTjdXZWJDb3JlMTJQcmludENvbnRleHREMUV2Ci1fX1pOSzdXZWJDb3JlMTJS
ZW5kZXJPYmplY3QxM3N0eWxlSW5SZWdpb25FdgogX19aTjdXZWJDb3JlMTJSZW5kZXJPYmplY3Qx
NnJlcGFpbnRSZWN0YW5nbGVFUktOU183SW50UmVjdEViCiBfX1pON1dlYkNvcmUxMlJlbmRlcldp
ZGdldDI4cmVzdW1lV2lkZ2V0SGllcmFyY2h5VXBkYXRlc0V2CiBfX1pON1dlYkNvcmUxMlJlbmRl
cldpZGdldDI5c3VzcGVuZFdpZGdldEhpZXJhcmNoeVVwZGF0ZXNFdgpAQCAtMzY0LDkgKzM2Myw2
IEBAIF9fWk43V2ViQ29yZTE0UmVzb3VyY2VIYW5kbGUyMGZvcmNlQ29udGVudFNuaWZmaW5nRXYK
IF9fWk43V2ViQ29yZTE0UmVzb3VyY2VIYW5kbGUyNnN5bmNocm9ub3VzTG9hZFJ1bkxvb3BNb2Rl
RXYKIF9fWk43V2ViQ29yZTE0UmVzb3VyY2VIYW5kbGUzNWNyZWF0ZVByaXZhdGVCcm93c2luZ1N0
b3JhZ2VTZXNzaW9uRVBLMTBfX0NGU3RyaW5nCiBfX1pON1dlYkNvcmUxNFJlc291cmNlTG9hZGVy
MTRjYW5jZWxsZWRFcnJvckV2Ci0jaWYgRU5BQkxFKFNWRykKLV9fWk43V2ViQ29yZTE0U1ZHU01J
TEVsZW1lbnQxM2lzU01JTEVsZW1lbnRFUE5TXzROb2RlRQotI2VuZGlmCiBfX1pON1dlYkNvcmUx
NFNjaGVtZVJlZ2lzdHJ5MjRyZWdpc3RlclVSTFNjaGVtZUFzTG9jYWxFUktOM1dURjZTdHJpbmdF
CiBfX1pON1dlYkNvcmUxNFNjaGVtZVJlZ2lzdHJ5MjVyZWdpc3RlclVSTFNjaGVtZUFzU2VjdXJl
RVJLTjNXVEY2U3RyaW5nRQogX19aTjdXZWJDb3JlMTRTY2hlbWVSZWdpc3RyeTMycmVnaXN0ZXJV
UkxTY2hlbWVBc0VtcHR5RG9jdW1lbnRFUktOM1dURjZTdHJpbmdFCkBAIC02MTUsOSArNjExLDYg
QEAgX19aTjdXZWJDb3JlMjFNZW1vcnlQcmVzc3VyZUhhbmRsZXI3aW5zdGFsbEV2CiBfX1pON1dl
YkNvcmUyMVBsYXRmb3JtS2V5Ym9hcmRFdmVudDI0ZGlzYW1iaWd1YXRlS2V5RG93bkV2ZW50RU5T
XzEzUGxhdGZvcm1FdmVudDRUeXBlRWIKIF9fWk43V2ViQ29yZTIxUmVzb3VyY2VMb2FkU2NoZWR1
bGVyMjBzZXJ2ZVBlbmRpbmdSZXF1ZXN0c0VOU18yMFJlc291cmNlTG9hZFByaW9yaXR5RQogX19a
TjdXZWJDb3JlMjFSZXNvdXJjZUxvYWRTY2hlZHVsZXIyNHNjaGVkdWxlUGx1Z2luU3RyZWFtTG9h
ZEVQTlNfNUZyYW1lRVBOU18zMk5ldHNjYXBlUGx1Z0luU3RyZWFtTG9hZGVyQ2xpZW50RVJLTlNf
MTVSZXNvdXJjZVJlcXVlc3RFCi0jaWYgRU5BQkxFKFNWRykKLV9fWk43V2ViQ29yZTIxU1ZHRG9j
dW1lbnRFeHRlbnNpb25zMjFzYW1wbGVBbmltYXRpb25BdFRpbWVFUktOM1dURjZTdHJpbmdFUE5T
XzE0U1ZHU01JTEVsZW1lbnRFZAotI2VuZGlmCiBfX1pON1dlYkNvcmUyMVNlcmlhbGl6ZWRTY3Jp
cHRWYWx1ZTExZGVzZXJpYWxpemVFUEsxNU9wYXF1ZUpTQ29udGV4dFBQSzEzT3BhcXVlSlNWYWx1
ZQogX19aTjdXZWJDb3JlMjFTZXJpYWxpemVkU2NyaXB0VmFsdWU2Y3JlYXRlRVBLMTVPcGFxdWVK
U0NvbnRleHRQSzEzT3BhcXVlSlNWYWx1ZVBTNl8KIF9fWk43V2ViQ29yZTIxU2VyaWFsaXplZFNj
cmlwdFZhbHVlQzFFUk4zV1RGNlZlY3RvckloTG0wRUVFCkBAIC05MDgsNiArOTAxLDE3IEBAIF9f
Wk43V2ViQ29yZTdJbnRSZWN0NXVuaXRlRVJLUzBfCiBfX1pON1dlYkNvcmU3SW50UmVjdDlpbnRl
cnNlY3RFUktTMF8KIF9fWk43V2ViQ29yZTdJbnRSZWN0QzFFUktOU185RmxvYXRSZWN0RQogX19a
TjdXZWJDb3JlN0ludFNpemVDMUVSSzZDR1NpemUKK19fWk43V2ViQ29yZTdSdW5Mb29wMTRydW5G
b3JEdXJhdGlvbkVkCitfX1pON1dlYkNvcmU3UnVuTG9vcDIxaW5pdGlhbGl6ZU1haW5SdW5Mb29w
RXYKK19fWk43V2ViQ29yZTdSdW5Mb29wM3J1bkV2CitfX1pON1dlYkNvcmU3UnVuTG9vcDRtYWlu
RXYKK19fWk43V2ViQ29yZTdSdW5Mb29wNHN0b3BFdgorX19aTjdXZWJDb3JlN1J1bkxvb3A3Y3Vy
cmVudEV2CitfX1pON1dlYkNvcmU3UnVuTG9vcDhkaXNwYXRjaEVSS04zV1RGOEZ1bmN0aW9uSUZ2
dkVFRQorX19aTjdXZWJDb3JlN1J1bkxvb3A5VGltZXJCYXNlNHN0b3BFdgorX19aTjdXZWJDb3Jl
N1J1bkxvb3A5VGltZXJCYXNlNXN0YXJ0RWRiCitfX1pON1dlYkNvcmU3UnVuTG9vcDlUaW1lckJh
c2VDMkVQUzBfCitfX1pON1dlYkNvcmU3UnVuTG9vcDlUaW1lckJhc2VEMkV2CiBfX1pON1dlYkNv
cmU3VGV4dFJ1bjE5YWxsb3dzUm91bmRpbmdIYWNrc0V2CiBfX1pON1dlYkNvcmU3VGV4dFJ1bjIx
c19hbGxvd3NSb3VuZGluZ0hhY2tzRQogX19aTjdXZWJDb3JlN1RleHRSdW4yMnNldEFsbG93c1Jv
dW5kaW5nSGFja3NFYgpAQCAtOTE3LDE1ICs5MjEsOSBAQCBfX1pON1dlYkNvcmU3cmVwbGFjZUVS
TjNXVEY2U3RyaW5nRVJLTlNfMTdSZWd1bGFyRXhwcmVzc2lvbkVSS1MxXwogX19aTjdXZWJDb3Jl
N3RvUmFuZ2VFTjNKU0M3SlNWYWx1ZUUKIF9fWk43V2ViQ29yZThEb2N1bWVudDExY3JlYXRlUmFu
Z2VFdgogX19aTjdXZWJDb3JlOERvY3VtZW50MTJ1cGRhdGVMYXlvdXRFdgotI2lmIEVOQUJMRShT
VkcpCi1fX1pON1dlYkNvcmU4RG9jdW1lbnQxM3N2Z0V4dGVuc2lvbnNFdgotI2VuZGlmCiBfX1pO
N1dlYkNvcmU4RG9jdW1lbnQxNHNldEZvY3VzZWROb2RlRU4zV1RGMTBQYXNzUmVmUHRySU5TXzRO
b2RlRUVFCiBfX1pON1dlYkNvcmU4RG9jdW1lbnQxNmlzUGFnZUJveFZpc2libGVFaQogX19aTjdX
ZWJDb3JlOERvY3VtZW50MTdnZXRGb2N1c2FibGVOb2Rlc0VSTjNXVEY2VmVjdG9ySU5TMV82UmVm
UHRySU5TXzROb2RlRUVFTG0wRUVFCi0jaWYgRU5BQkxFKFNWRykKLV9fWk43V2ViQ29yZThEb2N1
bWVudDE5YWNjZXNzU1ZHRXh0ZW5zaW9uc0V2Ci0jZW5kaWYKIF9fWk43V2ViQ29yZThEb2N1bWVu
dDIwc3R5bGVTZWxlY3RvckNoYW5nZWRFTlNfMjNTdHlsZVNlbGVjdG9yVXBkYXRlRmxhZ0UKIF9f
Wk43V2ViQ29yZThEb2N1bWVudDIyY3JlYXRlRG9jdW1lbnRGcmFnbWVudEV2CiBfX1pON1dlYkNv
cmU4RG9jdW1lbnQyM2RpZEFkZFdoZWVsRXZlbnRIYW5kbGVyRXYKQEAgLTExOTMsNiArMTE5MSw3
IEBAIF9fWk5LN1dlYkNvcmUxMVNjcmlwdFZhbHVlOWdldFN0cmluZ0VQTjNKU0M5RXhlY1N0YXRl
RVJOM1dURjZTdHJpbmdFCiBfX1pOSzdXZWJDb3JlMTJJY29uRGF0YWJhc2UxMmRhdGFiYXNlUGF0
aEV2CiBfX1pOSzdXZWJDb3JlMTJJY29uRGF0YWJhc2UyNHNob3VsZFN0b3BUaHJlYWRBY3Rpdml0
eUV2CiBfX1pOSzdXZWJDb3JlMTJJY29uRGF0YWJhc2U5aXNFbmFibGVkRXYKK19fWk5LN1dlYkNv
cmUxMlJlbmRlck9iamVjdDEzc3R5bGVJblJlZ2lvbkV2CiBfX1pOSzdXZWJDb3JlMTJSZW5kZXJP
YmplY3QxNGVuY2xvc2luZ0xheWVyRXYKIF9fWk5LN1dlYkNvcmUxMlJlbmRlck9iamVjdDE1bG9j
YWxUb0Fic29sdXRlRVJLTlNfMTBGbG9hdFBvaW50RWJiCiBfX1pOSzdXZWJDb3JlMTJSZW5kZXJP
YmplY3QyM2Fic29sdXRlQm91bmRpbmdCb3hSZWN0RWIKQEAgLTEyNTQsOCArMTI1Myw4IEBAIF9f
Wk5LN1dlYkNvcmUxNFJlc291cmNlTG9hZGVyMTFmcmFtZUxvYWRlckV2CiBfX1pOSzdXZWJDb3Jl
MTRTY3JvbGxhYmxlQXJlYTE0c2Nyb2xsQW5pbWF0b3JFdgogX19aTks3V2ViQ29yZTE0U2Nyb2xs
YWJsZUFyZWEyMGNvbnRlbnRBcmVhV2lsbFBhaW50RXYKIF9fWk5LN1dlYkNvcmUxNFNjcm9sbGFi
bGVBcmVhMjJtb3VzZUV4aXRlZENvbnRlbnRBcmVhRXYKLV9fWk5LN1dlYkNvcmUxNFNjcm9sbGFi
bGVBcmVhMjNtb3VzZU1vdmVkSW5Db250ZW50QXJlYUV2CiBfX1pOSzdXZWJDb3JlMTRTY3JvbGxh
YmxlQXJlYTIzbW91c2VFbnRlcmVkQ29udGVudEFyZWFFdgorX19aTks3V2ViQ29yZTE0U2Nyb2xs
YWJsZUFyZWEyM21vdXNlTW92ZWRJbkNvbnRlbnRBcmVhRXYKIF9fWk5LN1dlYkNvcmUxNFNlY3Vy
aXR5T3JpZ2luMTBjYW5EaXNwbGF5RVJLTlNfNEtVUkxFCiBfX1pOSzdXZWJDb3JlMTRTZWN1cml0
eU9yaWdpbjE4ZGF0YWJhc2VJZGVudGlmaWVyRXYKIF9fWk5LN1dlYkNvcmUxNFNlY3VyaXR5T3Jp
Z2luNWVxdWFsRVBLUzBfCkBAIC0xNDIzLDYgKzE0MjIsNyBAQCBfX1pOSzdXZWJDb3JlN0ludFJl
Y3Q4Y29udGFpbnNFUktTMF8KIF9fWk5LN1dlYkNvcmU3SW50UmVjdGN2NkNHUmVjdEV2CiBfX1pO
SzdXZWJDb3JlN0ludFJlY3RjdjdfTlNSZWN0RXYKIF9fWk5LN1dlYkNvcmU3SW50U2l6ZWN2NkNH
U2l6ZUV2CitfX1pOSzdXZWJDb3JlN1J1bkxvb3A5VGltZXJCYXNlOGlzQWN0aXZlRXYKIF9fWk5L
N1dlYkNvcmU4RG9jdW1lbnQxMHJlbmRlclZpZXdFdgogX19aTks3V2ViQ29yZThEb2N1bWVudDEx
Y29tcGxldGVVUkxFUktOM1dURjZTdHJpbmdFCiBfX1pOSzdXZWJDb3JlOERvY3VtZW50MTNheE9i
amVjdENhY2hlRXYKQEAgLTE2MDQsNiArMTYwNCwxMyBAQCBfd2tDcmVhdGVBWFRleHRNYXJrZXIK
IF93a0dldEJ5dGVzRnJvbUFYVGV4dE1hcmtlcgogX3drQ3JlYXRlQVhVSUVsZW1lbnRSZWYKIAor
I2lmIEVOQUJMRShTVkcpCitfX1pON1dlYkNvcmUxNFNWR1NNSUxFbGVtZW50MTNpc1NNSUxFbGVt
ZW50RVBOU180Tm9kZUUKK19fWk43V2ViQ29yZTIxU1ZHRG9jdW1lbnRFeHRlbnNpb25zMjFzYW1w
bGVBbmltYXRpb25BdFRpbWVFUktOM1dURjZTdHJpbmdFUE5TXzE0U1ZHU01JTEVsZW1lbnRFZAor
X19aTjdXZWJDb3JlOERvY3VtZW50MTNzdmdFeHRlbnNpb25zRXYKK19fWk43V2ViQ29yZThEb2N1
bWVudDE5YWNjZXNzU1ZHRXh0ZW5zaW9uc0V2CisjZW5kaWYKKwogI2lmIEVOQUJMRSgzRF9SRU5E
RVJJTkcpCiBfV2ViQ29yZUhhczNEUmVuZGVyaW5nCiAjZW5kaWYKQEAgLTIwNTksNiArMjA2Niwz
IEBAIF9fWk43V2ViQ29yZTIwU2Nyb2xsaW5nQ29vcmRpbmF0b3IxOGhhbmRsZUdlc3R1cmVFdmVu
dEVSS05TXzIwUGxhdGZvcm1HZXN0dXJlRXZlCiAjZW5kaWYKIAogI2VuZGlmCi0KLQotCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvaiBiL1Nv
dXJjZS9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qCmluZGV4IGU4NmQzOWU5
ZjA3ZDUxNDJhNGNiMTY4NTE2NTEyODU4MzczZTIyZDIuLjYyYzM4M2I1YjUyMmZhNjc3ZmVjZGUy
ZjA4Yjg2Yjk1MzIyMzZkZDcgMTAwNzU1Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmNw
cm9qL1dlYkNvcmUudmNwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dl
YkNvcmUudmNwcm9qCkBAIC0yNjY1MCw2ICsyNjY1MCwxNCBAQAogCQkJCT4KIAkJCTwvRmlsZT4K
IAkJCTxGaWxlCisJCQkJUmVsYXRpdmVQYXRoPSIuLlxwbGF0Zm9ybVxSdW5Mb29wLmNwcCIKKwkJ
CQk+CisJCQk8L0ZpbGU+CisJCQk8RmlsZQorCQkJCVJlbGF0aXZlUGF0aD0iLi5ccGxhdGZvcm1c
UnVuTG9vcC5oIgorCQkJCT4KKwkJCTwvRmlsZT4KKwkJCTxGaWxlCiAJCQkJUmVsYXRpdmVQYXRo
PSIuLlxwbGF0Zm9ybVxSdW50aW1lQXBwbGljYXRpb25DaGVja3MuY3BwIgogCQkJCT4KIAkJCTwv
RmlsZT4KQEAgLTI3MDYxLDYgKzI3MDY5LDEwIEBACiAJCQkJCT4KIAkJCQk8L0ZpbGU+CiAJCQkJ
PEZpbGUKKwkJCQkJUmVsYXRpdmVQYXRoPSIuLlxwbGF0Zm9ybVx3aW5cUnVuTG9vcFdpbi5jcHAi
CisJCQkJCT4KKwkJCQk8L0ZpbGU+CisJCQkJPEZpbGUKIAkJCQkJUmVsYXRpdmVQYXRoPSIuLlxw
bGF0Zm9ybVx3aW5cU2Nyb2xsYmFyVGhlbWVTYWZhcmkuY3BwIgogCQkJCQk+CiAJCQkJPC9GaWxl
PgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5w
Ynhwcm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9q
CmluZGV4IDc1YjJiOWVjN2I0ZjQ1YTQ3NTMwMTIxMmMzYjQ1Yzc3OTNiODBiZDMuLmYxMzc0OTdj
NzZlYjZkNGU0MWEwYjUwNDNkMmZlOTU0YmI4OGRkOWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTQ5ODcsNiArNDk4Nyw5IEBA
CiAJCUJDMDZFRTA0MEJGRDcxQUEwMDg1NkU5RCAvKiBKU0hUTUxUYWJsZUVsZW1lbnQuY3BwIGlu
IFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkMwNkVFMDIwQkZE
NzFBQTAwODU2RTlEIC8qIEpTSFRNTFRhYmxlRWxlbWVudC5jcHAgKi87IH07CiAJCUJDMDZFRTA1
MEJGRDcxQUEwMDg1NkU5RCAvKiBKU0hUTUxUYWJsZUVsZW1lbnQuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDMDZFRTAzMEJGRDcxQUEwMDg1NkU5RCAv
KiBKU0hUTUxUYWJsZUVsZW1lbnQuaCAqLzsgfTsKIAkJQkMwNzNCQUEwQzM5OUIxRjAwMEY1OTc5
IC8qIEZsb2F0Q29udmVyc2lvbi5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gQkMwNzNCQTkwQzM5OUIxRjAwMEY1OTc5IC8qIEZsb2F0Q29udmVyc2lvbi5o
ICovOyB9OworCQlCQzBCMzU4MzE0QzRGOTU0MDA1NUUyMkEgLyogUnVuTG9vcE1hYy5tbSBpbiBT
b3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDMEIzNTgyMTRDNEY5
NTQwMDU1RTIyQSAvKiBSdW5Mb29wTWFjLm1tICovOyB9OworCQlCQzBCMzU4NzE0QzRGOTgzMDA1
NUUyMkEgLyogUnVuTG9vcC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSBCQzBCMzU4NTE0QzRGOTgzMDA1NUUyMkEgLyogUnVuTG9vcC5jcHAgKi87IH07
CisJCUJDMEIzNTg4MTRDNEY5ODMwMDU1RTIyQSAvKiBSdW5Mb29wLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCQzBCMzU4NjE0QzRGOTgzMDA1NUUyMkEg
LyogUnVuTG9vcC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07
IH07CiAJCUJDMEIzNkE0MENEM0M2N0MwMEFDN0VCNSAvKiBDb25zb2xlLmNwcCBpbiBTb3VyY2Vz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDMEIzNkExMENEM0M2N0MwMEFD
N0VCNSAvKiBDb25zb2xlLmNwcCAqLzsgfTsKIAkJQkMwQjM2QTUwQ0QzQzY3QzAwQUM3RUI1IC8q
IENvbnNvbGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IEJDMEIzNkEyMENEM0M2N0MwMEFDN0VCNSAvKiBDb25zb2xlLmggKi87IHNldHRpbmdzID0ge0FU
VFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJQkMxMjRFRTcwQzI2NDFDRDAwOUUyMzQ5
IC8qIEJhckluZm8uY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gQkMxMjRFRTQwQzI2NDFDRDAwOUUyMzQ5IC8qIEJhckluZm8uY3BwICovOyB9OwpAQCAt
NzIzMiw3ICs3MjM1LDYgQEAKIAkJMUFCRkU3NTIwQ0Q5NjhEMDAwRkU0ODM0IC8qIFNRTFRyYW5z
YWN0aW9uLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFNRTFRyYW5z
YWN0aW9uLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMUFDMjI2MEEwREI2OUYx
OTAwODlCNjY5IC8qIEpTRE9NQXBwbGljYXRpb25DYWNoZS5jcHAgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5jcHA7IHBhdGggPSBKU0RPTUFwcGxpY2F0aW9uQ2FjaGUuY3BwOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQkxQUMyMjYwQjBEQjY5RjE5MDA4OUI2NjkgLyogSlNET01BcHBs
aWNhdGlvbkNhY2hlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTRE9NQXBw
bGljYXRpb25DYWNoZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQkxQUM2OTI2OTE0
QTEyNTMxMDBCRDg1RjEgLyogU2Nyb2xsYWJsZUFyZWFDbGllbnQuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gU2Nyb2xsYWJsZUFyZWFDbGllbnQuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJMUFDRTUzREQwQThEMTg4MTAwMjI5NDdEIC8qIEpTRE9NUGFyc2VyLmNw
cCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU0RPTVBhcnNlci5jcHA7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTFBQ0U1M0RFMEE4RDE4ODEwMDIyOTQ3RCAv
KiBKU0RPTVBhcnNlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNET01Q
YXJzZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMUFDRTUzRTEwQThEMThFNzAw
MjI5NDdEIC8qIERPTVBhcnNlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBw
YXRoID0gRE9NUGFyc2VyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTExODU2
LDYgKzExODU4LDkgQEAKIAkJQkMwNkYyNEMwNkQxOEE3RTAwNEE2RkEzIC8qIFhTTFRQcm9jZXNz
b3IuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgaW5k
ZW50V2lkdGggPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
WFNMVFByb2Nlc3Nvci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB0YWJXaWR0aCA9IDg7IHVz
ZXNUYWJzID0gMDsgfTsKIAkJQkMwNkYyNEQwNkQxOEE3RTAwNEE2RkEzIC8qIFhTTFRQcm9jZXNz
b3JMaWJ4c2x0LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSAzMDsgaW5kZW50V2lkdGggPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
LmNwcDsgcGF0aCA9IFhTTFRQcm9jZXNzb3JMaWJ4c2x0LmNwcDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgdGFiV2lkdGggPSA4OyB1c2VzVGFicyA9IDA7IH07CiAJCUJDMDczQkE5MEMzOTlCMUYw
MDBGNTk3OSAvKiBGbG9hdENvbnZlcnNpb24uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IEZsb2F0Q29udmVyc2lvbi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlC
QzBCMzU4MjE0QzRGOTU0MDA1NUUyMkEgLyogUnVuTG9vcE1hYy5tbSAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFJ1bkxvb3BNYWMubW07IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CisJCUJDMEIzNTg1MTRDNEY5ODMwMDU1RTIyQSAvKiBSdW5Mb29wLmNwcCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFJ1bkxvb3AuY3BwOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OworCQlCQzBCMzU4NjE0QzRGOTgzMDA1NUUyMkEgLyogUnVuTG9vcC5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBSdW5Mb29wLmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCUJDMEIzNkExMENEM0M2N0MwMEFDN0VCNSAvKiBDb25zb2xlLmNw
cCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBDb25zb2xlLmNwcDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQkMwQjM2QTIwQ0QzQzY3QzAwQUM3RUI1IC8qIENv
bnNvbGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IENvbnNvbGUuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQkMwQjM2QTMwQ0QzQzY3QzAwQUM3RUI1IC8qIENv
bnNvbGUuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMw
OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBDb25zb2xlLmlkbDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTE0OTQ1LDYgKzE0OTUwLDcgQEAKIAkJCQlEMzlEMDA2QzEx
RjhFMzA4MDA2MDQxRjIgLyogUG9wdXBNZW51TWFjLmggKi8sCiAJCQkJMDY2OEUxOEUwQUREOTY0
MDAwNDEyOEUwIC8qIFBvcHVwTWVudU1hYy5tbSAqLywKIAkJCQlFNEQ2ODc3NjBFRDdBRTNEMDA2
RUE5NzggLyogUHVyZ2VhYmxlQnVmZmVyTWFjLmNwcCAqLywKKwkJCQlCQzBCMzU4MjE0QzRGOTU0
MDA1NUUyMkEgLyogUnVuTG9vcE1hYy5tbSAqLywKIAkJCQkxQ0UyNEY5NjBEN0NBRjBFMDA3RTA0
QzIgLyogU2NoZWR1bGVQYWlyTWFjLm1tICovLAogCQkJCUJDQUUxRkE1MTI5MzlEQjcwMDRDQjAy
NiAvKiBTY3JvbGxBbmltYXRvck1hYy5oICovLAogCQkJCUJDNTExNTZEMTJCMTc0OUMwMEM5Njc1
NCAvKiBTY3JvbGxBbmltYXRvck1hYy5tbSAqLywKQEAgLTE5NjM3LDYgKzE5NjQzLDggQEAKIAkJ
CQlCQzNCRTEyQTBFOTgwOTJGMDA4MzU1ODggLyogUG9wdXBNZW51U3R5bGUuaCAqLywKIAkJCQlF
NEQ2ODc3ODBFRDdBRTRGMDA2RUE5NzggLyogUHVyZ2VhYmxlQnVmZmVyLmggKi8sCiAJCQkJN0Uz
M0NEMDAxMjdGMzQwRDAwQkU4RjE3IC8qIFB1cmdlUHJpb3JpdHkuaCAqLywKKwkJCQlCQzBCMzU4
NTE0QzRGOTgzMDA1NUUyMkEgLyogUnVuTG9vcC5jcHAgKi8sCisJCQkJQkMwQjM1ODYxNEM0Rjk4
MzAwNTVFMjJBIC8qIFJ1bkxvb3AuaCAqLywKIAkJCQkxQzYzQTI0NjBGNzE2NDY2MDBDMDlENUEg
LyogUnVuTG9vcFRpbWVyLmggKi8sCiAJCQkJMjkzRUFFMjAxMzU2QjMyRTAwNjdBQ0Y5IC8qIFJ1
bnRpbWVBcHBsaWNhdGlvbkNoZWNrcy5jcHAgKi8sCiAJCQkJMjkzRUFFMUUxMzU2QjJGRTAwNjdB
Q0Y5IC8qIFJ1bnRpbWVBcHBsaWNhdGlvbkNoZWNrcy5oICovLApAQCAtMTk2NDQsNyArMTk2NTIs
NiBAQAogCQkJCTUxNjJDN0YzMTFGNzdFRkIwMDYxMkVGRSAvKiBTY2hlbWVSZWdpc3RyeS5oICov
LAogCQkJCUJDOEFFMzRDMTJFQTA5NkEwMEVCM0FFNiAvKiBTY3JvbGxhYmxlQXJlYS5jcHAgKi8s
CiAJCQkJQkM4QUUzNEQxMkVBMDk2QTAwRUIzQUU2IC8qIFNjcm9sbGFibGVBcmVhLmggKi8sCi0J
CQkJMUFDNjkyNjkxNEExMjUzMTAwQkQ4NUYxIC8qIFNjcm9sbGFibGVBcmVhQ2xpZW50LmggKi8s
CiAJCQkJQ0EzQkY2N0IxMEQ5OUJBRTAwRTZDRTUzIC8qIFNjcm9sbEFuaW1hdG9yLmNwcCAqLywK
IAkJCQlDQTNCRjY3RDEwRDk5QkFFMDBFNkNFNTMgLyogU2Nyb2xsQW5pbWF0b3IuaCAqLywKIAkJ
CQlCQ0FBOTBDMjBBN0VCQTYwMDA4QjEyMjkgLyogU2Nyb2xsYmFyLmNwcCAqLywKQEAgLTI0MDQy
LDYgKzI0MDQ5LDcgQEAKIAkJCQlGRDUzNzM1MzEzN0I2NTE4MDAwMDhEQ0UgLyogWmVyb1BvbGUu
aCBpbiBIZWFkZXJzICovLAogCQkJCTUwOUNDOUZCMTRDMDY5RUQwMEJCRUNCRCAvKiBDdXN0b21G
aWx0ZXJQYXJhbWV0ZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTUwQ0MwODlBMTRDNkU5OUMwMDE3
QUI1MSAvKiBDdXN0b21GaWx0ZXJOdW1iZXJQYXJhbWV0ZXIuaCBpbiBIZWFkZXJzICovLAorCQkJ
CUJDMEIzNTg4MTRDNEY5ODMwMDU1RTIyQSAvKiBSdW5Mb29wLmggaW4gSGVhZGVycyAqLywKIAkJ
CSk7CiAJCQlydW5Pbmx5Rm9yRGVwbG95bWVudFBvc3Rwcm9jZXNzaW5nID0gMDsKIAkJfTsKQEAg
LTI2OTYxLDYgKzI2OTY5LDggQEAKIAkJCQk5NzdFMkUwRTEyRjBGQzlDMDBDMTMzNzkgLyogWFNT
QXVkaXRvci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlGRDUzNzM1MjEzN0I2NTE4MDAwMDhEQ0Ug
LyogWmVyb1BvbGUuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNTBDQzBBMzkxNEM2RjVCMTAwMTdB
QjUxIC8qIEN1c3RvbUZpbHRlck9wZXJhdGlvbi5jcHAgaW4gU291cmNlcyAqLywKKwkJCQlCQzBC
MzU4MzE0QzRGOTU0MDA1NUUyMkEgLyogUnVuTG9vcE1hYy5tbSBpbiBTb3VyY2VzICovLAorCQkJ
CUJDMEIzNTg3MTRDNEY5ODMwMDU1RTIyQSAvKiBSdW5Mb29wLmNwcCBpbiBTb3VyY2VzICovLAog
CQkJKTsKIAkJCXJ1bk9ubHlGb3JEZXBsb3ltZW50UG9zdHByb2Nlc3NpbmcgPSAwOwogCQl9Owpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vUnVuTG9vcC5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9SdW5Mb29wLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40NDFjNTg2M2Y2NmI2Njkw
MTAxODJmYjE1NGQ4YWRkNDM2MTNlMDk4Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vUnVuTG9vcC5jcHAKQEAgLTAsMCArMSw3NCBAQAorLyoKKyAqIENvcHlyaWdo
dCAoQykgMjAxMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Yg
c291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgor
ICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5k
L29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgor
ICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJ
QlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElF
UywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5U
SUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQ
VVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElU
UyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElO
Q0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdF
UyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJT
VElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsg
T1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBU
SEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJ
TElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJ
U0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYg
QURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNp
bmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJSdW5Mb29wLmgiCisKKyNpbmNsdWRlIDx3dGYv
U3RkTGliRXh0cmFzLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworc3RhdGljIFJ1bkxvb3Aq
IHNfbWFpblJ1bkxvb3A7CisKK3ZvaWQgUnVuTG9vcDo6aW5pdGlhbGl6ZU1haW5SdW5Mb29wKCkK
K3sKKyAgICBpZiAoc19tYWluUnVuTG9vcCkKKyAgICAgICAgcmV0dXJuOworICAgIHNfbWFpblJ1
bkxvb3AgPSBSdW5Mb29wOjpjdXJyZW50KCk7Cit9CisKK1J1bkxvb3AqIFJ1bkxvb3A6OmN1cnJl
bnQoKQoreworICAgIERFRklORV9TVEFUSUNfTE9DQUwoV1RGOjpUaHJlYWRTcGVjaWZpYzxSdW5M
b29wPiwgcnVuTG9vcERhdGEsICgpKTsKKyAgICByZXR1cm4gJipydW5Mb29wRGF0YTsKK30KKwor
UnVuTG9vcCogUnVuTG9vcDo6bWFpbigpCit7CisgICAgQVNTRVJUKHNfbWFpblJ1bkxvb3ApOwor
ICAgIHJldHVybiBzX21haW5SdW5Mb29wOworfQorCit2b2lkIFJ1bkxvb3A6OnBlcmZvcm1Xb3Jr
KCkKK3sKKyAgICBWZWN0b3I8RnVuY3Rpb248dm9pZCgpPiA+IGZ1bmN0aW9uUXVldWU7CisgICAg
eworICAgICAgICBNdXRleExvY2tlciBsb2NrZXIobV9mdW5jdGlvblF1ZXVlTG9jayk7CisgICAg
ICAgIG1fZnVuY3Rpb25RdWV1ZS5zd2FwKGZ1bmN0aW9uUXVldWUpOworICAgIH0KKworICAgIGZv
ciAoc2l6ZV90IGkgPSAwOyBpIDwgZnVuY3Rpb25RdWV1ZS5zaXplKCk7ICsraSkKKyAgICAgICAg
ZnVuY3Rpb25RdWV1ZVtpXSgpOworfQorCit2b2lkIFJ1bkxvb3A6OmRpc3BhdGNoKGNvbnN0IEZ1
bmN0aW9uPHZvaWQoKT4mIGZ1bmN0aW9uKQoreworICAgIE11dGV4TG9ja2VyIGxvY2tlcihtX2Z1
bmN0aW9uUXVldWVMb2NrKTsKKyAgICBtX2Z1bmN0aW9uUXVldWUuYXBwZW5kKGZ1bmN0aW9uKTsK
KworICAgIHdha2VVcCgpOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9SdW5Mb29wLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9SdW5Mb29wLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNmUwNDMyNmZlNTM3NmU5MjU2ZGI3MzZkZGY4Mjhh
OTUxMWZjZjhjNwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1J1
bkxvb3AuaApAQCAtMCwwICsxLDE2NSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMCBBcHBs
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAgTm9raWEg
Q29ycG9yYXRpb24gYW5kL29yIGl0cyBzdWJzaWRpYXJ5KC1pZXMpCisgKiBQb3J0aW9ucyBDb3B5
cmlnaHQgKGMpIDIwMTAgTW90b3JvbGEgTW9iaWxpdHksIEluYy4gIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBS
ZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11
c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAg
IGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBk
aXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJ
TkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9S
IElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBU
SEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1Ig
QSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFM
TCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJ
UkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENP
TlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NV
UkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwg
REFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBD
QVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05U
UkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1Ig
T1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMg
U09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gg
REFNQUdFLgorICovCisKKyNpZm5kZWYgUnVuTG9vcF9oCisjZGVmaW5lIFJ1bkxvb3BfaAorCisj
aW5jbHVkZSA8d3RmL0ZvcndhcmQuaD4KKyNpbmNsdWRlIDx3dGYvRnVuY3Rpb25hbC5oPgorI2lu
Y2x1ZGUgPHd0Zi9IYXNoTWFwLmg+CisjaW5jbHVkZSA8d3RmL1RocmVhZFNwZWNpZmljLmg+Cisj
aW5jbHVkZSA8d3RmL1RocmVhZGluZy5oPgorI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KKworI2lm
IFBMQVRGT1JNKEdUSykKKyNpbmNsdWRlIDx3dGYvZ29iamVjdC9HUmVmUHRyLmg+Cit0eXBlZGVm
IHN0cnVjdCBfR1NvdXJjZSBHU291cmNlOwordHlwZWRlZiBzdHJ1Y3QgX0dNYWluTG9vcCBHTWFp
bkxvb3A7Cit0eXBlZGVmIHN0cnVjdCBfR01haW5Db250ZXh0IEdNYWluQ29udGV4dDsKK3R5cGVk
ZWYgaW50IGdib29sZWFuOworI2VuZGlmCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3Mg
UnVuTG9vcCB7CitwdWJsaWM6CisgICAgLy8gTXVzdCBiZSBjYWxsZWQgZnJvbSB0aGUgbWFpbiB0
aHJlYWQuCisgICAgc3RhdGljIHZvaWQgaW5pdGlhbGl6ZU1haW5SdW5Mb29wKCk7CisKKyAgICBz
dGF0aWMgUnVuTG9vcCogY3VycmVudCgpOworICAgIHN0YXRpYyBSdW5Mb29wKiBtYWluKCk7CisK
KyAgICB2b2lkIGRpc3BhdGNoKGNvbnN0IEZ1bmN0aW9uPHZvaWQoKT4mKTsKKworICAgIHN0YXRp
YyB2b2lkIHJ1bigpOworICAgIHZvaWQgc3RvcCgpOworCisjaWYgUExBVEZPUk0oTUFDKQorICAg
IHZvaWQgcnVuRm9yRHVyYXRpb24oZG91YmxlIGR1cmF0aW9uKTsKKyNlbmRpZgorICAgIAorICAg
IGNsYXNzIFRpbWVyQmFzZSB7CisgICAgICAgIGZyaWVuZCBjbGFzcyBSdW5Mb29wOworICAgIHB1
YmxpYzoKKyAgICAgICAgVGltZXJCYXNlKFJ1bkxvb3AqKTsKKyAgICAgICAgdmlydHVhbCB+VGlt
ZXJCYXNlKCk7CisKKyAgICAgICAgdm9pZCBzdGFydFJlcGVhdGluZyhkb3VibGUgcmVwZWF0SW50
ZXJ2YWwpIHsgc3RhcnQocmVwZWF0SW50ZXJ2YWwsIHRydWUpOyB9CisgICAgICAgIHZvaWQgc3Rh
cnRPbmVTaG90KGRvdWJsZSBpbnRlcnZhbCkgeyBzdGFydChpbnRlcnZhbCwgZmFsc2UpOyB9CisK
KyAgICAgICAgdm9pZCBzdG9wKCk7CisgICAgICAgIGJvb2wgaXNBY3RpdmUoKSBjb25zdDsKKwor
ICAgICAgICB2aXJ0dWFsIHZvaWQgZmlyZWQoKSA9IDA7CisKKyAgICBwcml2YXRlOgorICAgICAg
ICB2b2lkIHN0YXJ0KGRvdWJsZSBuZXh0RmlyZUludGVydmFsLCBib29sIHJlcGVhdCk7CisKKyAg
ICAgICAgUnVuTG9vcCogbV9ydW5Mb29wOworCisjaWYgUExBVEZPUk0oV0lOKQorICAgICAgICBz
dGF0aWMgdm9pZCB0aW1lckZpcmVkKFJ1bkxvb3AqLCB1aW50NjRfdCBJRCk7CisgICAgICAgIHVp
bnQ2NF90IG1fSUQ7CisgICAgICAgIGJvb2wgbV9pc1JlcGVhdGluZzsKKyNlbGlmIFBMQVRGT1JN
KE1BQykKKyAgICAgICAgc3RhdGljIHZvaWQgdGltZXJGaXJlZChDRlJ1bkxvb3BUaW1lclJlZiwg
dm9pZCopOworICAgICAgICBDRlJ1bkxvb3BUaW1lclJlZiBtX3RpbWVyOworI2VsaWYgUExBVEZP
Uk0oUVQpCisgICAgICAgIHN0YXRpYyB2b2lkIHRpbWVyRmlyZWQoUnVuTG9vcCosIGludCBJRCk7
CisgICAgICAgIGludCBtX0lEOworICAgICAgICBib29sIG1faXNSZXBlYXRpbmc7CisjZWxpZiBQ
TEFURk9STShHVEspCisgICAgICAgIHN0YXRpYyBnYm9vbGVhbiB0aW1lckZpcmVkQ2FsbGJhY2so
UnVuTG9vcDo6VGltZXJCYXNlKik7CisgICAgICAgIGdib29sZWFuIGlzUmVwZWF0aW5nKCkgY29u
c3QgeyByZXR1cm4gbV9pc1JlcGVhdGluZzsgfQorICAgICAgICB2b2lkIGNsZWFyVGltZXJTb3Vy
Y2UoKTsKKyAgICAgICAgR1JlZlB0cjxHU291cmNlPiBtX3RpbWVyU291cmNlOworICAgICAgICBn
Ym9vbGVhbiBtX2lzUmVwZWF0aW5nOworI2VuZGlmCisgICAgfTsKKworICAgIHRlbXBsYXRlIDx0
eXBlbmFtZSBUaW1lckZpcmVkQ2xhc3M+CisgICAgY2xhc3MgVGltZXIgOiBwdWJsaWMgVGltZXJC
YXNlIHsKKyAgICBwdWJsaWM6CisgICAgICAgIHR5cGVkZWYgdm9pZCAoVGltZXJGaXJlZENsYXNz
OjoqVGltZXJGaXJlZEZ1bmN0aW9uKSgpOworCisgICAgICAgIFRpbWVyKFJ1bkxvb3AqIHJ1bkxv
b3AsIFRpbWVyRmlyZWRDbGFzcyogbywgVGltZXJGaXJlZEZ1bmN0aW9uIGYpCisgICAgICAgICAg
ICA6IFRpbWVyQmFzZShydW5Mb29wKQorICAgICAgICAgICAgLCBtX29iamVjdChvKQorICAgICAg
ICAgICAgLCBtX2Z1bmN0aW9uKGYpCisgICAgICAgIHsKKyAgICAgICAgfQorCisgICAgcHJpdmF0
ZToKKyAgICAgICAgdmlydHVhbCB2b2lkIGZpcmVkKCkgeyAobV9vYmplY3QtPiptX2Z1bmN0aW9u
KSgpOyB9CisKKyAgICAgICAgVGltZXJGaXJlZENsYXNzKiBtX29iamVjdDsKKyAgICAgICAgVGlt
ZXJGaXJlZEZ1bmN0aW9uIG1fZnVuY3Rpb247CisgICAgfTsKKworcHJpdmF0ZToKKyAgICBmcmll
bmQgY2xhc3MgV1RGOjpUaHJlYWRTcGVjaWZpYzxSdW5Mb29wPjsKKworICAgIFJ1bkxvb3AoKTsK
KyAgICB+UnVuTG9vcCgpOworCisgICAgdm9pZCBwZXJmb3JtV29yaygpOworICAgIHZvaWQgd2Fr
ZVVwKCk7CisKKyAgICBNdXRleCBtX2Z1bmN0aW9uUXVldWVMb2NrOworICAgIFZlY3RvcjxGdW5j
dGlvbjx2b2lkKCk+ID4gbV9mdW5jdGlvblF1ZXVlOworCisjaWYgUExBVEZPUk0oV0lOKQorICAg
IHN0YXRpYyBib29sIHJlZ2lzdGVyUnVuTG9vcE1lc3NhZ2VXaW5kb3dDbGFzcygpOworICAgIHN0
YXRpYyBMUkVTVUxUIENBTExCQUNLIFJ1bkxvb3BXbmRQcm9jKEhXTkQsIFVJTlQsIFdQQVJBTSwg
TFBBUkFNKTsKKyAgICBMUkVTVUxUIHduZFByb2MoSFdORCBoV25kLCBVSU5UIG1lc3NhZ2UsIFdQ
QVJBTSB3UGFyYW0sIExQQVJBTSBsUGFyYW0pOworICAgIEhXTkQgbV9ydW5Mb29wTWVzc2FnZVdp
bmRvdzsKKworICAgIHR5cGVkZWYgSGFzaE1hcDx1aW50NjRfdCwgVGltZXJCYXNlKj4gVGltZXJN
YXA7CisgICAgVGltZXJNYXAgbV9hY3RpdmVUaW1lcnM7CisjZWxpZiBQTEFURk9STShNQUMpCisg
ICAgc3RhdGljIHZvaWQgcGVyZm9ybVdvcmsodm9pZCopOworICAgIENGUnVuTG9vcFJlZiBtX3J1
bkxvb3A7CisgICAgQ0ZSdW5Mb29wU291cmNlUmVmIG1fcnVuTG9vcFNvdXJjZTsKKyAgICBpbnQg
bV9uZXN0aW5nTGV2ZWw7CisjZWxpZiBQTEFURk9STShRVCkKKyAgICB0eXBlZGVmIEhhc2hNYXA8
aW50LCBUaW1lckJhc2UqPiBUaW1lck1hcDsKKyAgICBUaW1lck1hcCBtX2FjdGl2ZVRpbWVyczsK
KyAgICBjbGFzcyBUaW1lck9iamVjdDsKKyAgICBUaW1lck9iamVjdCogbV90aW1lck9iamVjdDsK
KyNlbGlmIFBMQVRGT1JNKEdUSykKK3B1YmxpYzoKKyAgICBzdGF0aWMgZ2Jvb2xlYW4gcXVldWVX
b3JrKFJ1bkxvb3AqKTsKKyAgICBHTWFpbkxvb3AqIG1haW5Mb29wKCk7Citwcml2YXRlOgorICAg
IEdNYWluQ29udGV4dCogbV9ydW5Mb29wQ29udGV4dDsKKyAgICBHTWFpbkxvb3AqIG1fcnVuTG9v
cE1haW47CisjZW5kaWYKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8v
IFJ1bkxvb3BfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3RrL1J1bkxv
b3BHdGsuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3RrL1J1bkxvb3BHdGsuY3BwCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLjkyOWE3Yjk4ZWJmZTRjNjQ2OTE5YjMzNjI0NzRjZmE3YmM5MTQ1OWIKLS0tIC9k
ZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ndGsvUnVuTG9vcEd0ay5jcHAK
QEAgLTAsMCArMSwxMzcgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAgQXBwbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgorICogUG9ydGlvbnMgQ29weXJpZ2h0IChjKSAyMDEwIE1vdG9y
b2xhIE1vYmlsaXR5LCBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNv
dXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAq
IDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9v
ciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAq
IFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJV
VE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMs
IElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElF
UyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVS
UE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMg
Q09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJ
REVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMg
KElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJ
VFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9S
IEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhF
T1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJ
VFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJ
TkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFE
VklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5j
bHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiUnVuTG9vcC5oIgorCisjaW5jbHVkZSA8Z2xpYi5o
PgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK1J1bkxvb3A6OlJ1bkxvb3AoKQoreworICAgIG1f
cnVuTG9vcENvbnRleHQgPSBnX21haW5fY29udGV4dF9kZWZhdWx0KCk7CisgICAgQVNTRVJUKG1f
cnVuTG9vcENvbnRleHQpOworICAgIG1fcnVuTG9vcE1haW4gPSBnX21haW5fbG9vcF9uZXcobV9y
dW5Mb29wQ29udGV4dCwgRkFMU0UpOworICAgIEFTU0VSVChtX3J1bkxvb3BNYWluKTsKK30KKwor
UnVuTG9vcDo6flJ1bkxvb3AoKQoreworICAgIGlmIChtX3J1bkxvb3BNYWluKSB7CisgICAgICAg
IGlmIChnX21haW5fbG9vcF9pc19ydW5uaW5nKG1fcnVuTG9vcE1haW4pKQorICAgICAgICAgICAg
Z19tYWluX2xvb3BfcXVpdChtX3J1bkxvb3BNYWluKTsKKyAgICAgICAgZ19tYWluX2xvb3BfdW5y
ZWYobV9ydW5Mb29wTWFpbik7CisgICAgfQorCisgICAgaWYgKG1fcnVuTG9vcENvbnRleHQpCisg
ICAgICAgIGdfbWFpbl9jb250ZXh0X3VucmVmKG1fcnVuTG9vcENvbnRleHQpOworfQorCit2b2lk
IFJ1bkxvb3A6OnJ1bigpCit7CisgICAgZ19tYWluX2xvb3BfcnVuKFJ1bkxvb3A6Om1haW4oKS0+
bWFpbkxvb3AoKSk7Cit9CisKK0dNYWluTG9vcCogUnVuTG9vcDo6bWFpbkxvb3AoKQoreworICAg
IHJldHVybiBtX3J1bkxvb3BNYWluOworfQorCit2b2lkIFJ1bkxvb3A6OnN0b3AoKQoreworICAg
IGdfbWFpbl9sb29wX3F1aXQobV9ydW5Mb29wTWFpbik7Cit9CisKK2dib29sZWFuIFJ1bkxvb3A6
OnF1ZXVlV29yayhSdW5Mb29wKiBydW5Mb29wKQoreworICAgIHJ1bkxvb3AtPnBlcmZvcm1Xb3Jr
KCk7CisgICAgcmV0dXJuIEZBTFNFOworfQorCit2b2lkIFJ1bkxvb3A6Ondha2VVcCgpCit7Cisg
ICAgR1JlZlB0cjxHU291cmNlPiBzb3VyY2UgPSBhZG9wdEdSZWYoZ19pZGxlX3NvdXJjZV9uZXco
KSk7CisgICAgZ19zb3VyY2Vfc2V0X3ByaW9yaXR5KHNvdXJjZS5nZXQoKSwgR19QUklPUklUWV9E
RUZBVUxUKTsKKyAgICBnX3NvdXJjZV9zZXRfY2FsbGJhY2soc291cmNlLmdldCgpLCByZWludGVy
cHJldF9jYXN0PEdTb3VyY2VGdW5jPigmUnVuTG9vcDo6cXVldWVXb3JrKSwgdGhpcywgMCk7Cisg
ICAgZ19zb3VyY2VfYXR0YWNoKHNvdXJjZS5nZXQoKSwgbV9ydW5Mb29wQ29udGV4dCk7CisKKyAg
ICBnX21haW5fY29udGV4dF93YWtldXAobV9ydW5Mb29wQ29udGV4dCk7Cit9CisKK1J1bkxvb3A6
OlRpbWVyQmFzZTo6VGltZXJCYXNlKFJ1bkxvb3AqIHJ1bkxvb3ApCisgICAgOiBtX3J1bkxvb3Ao
cnVuTG9vcCkKKyAgICAsIG1fdGltZXJTb3VyY2UoMCkKK3sKK30KKworUnVuTG9vcDo6VGltZXJC
YXNlOjp+VGltZXJCYXNlKCkKK3sKKyAgICBzdG9wKCk7Cit9CisKK3ZvaWQgUnVuTG9vcDo6VGlt
ZXJCYXNlOjpjbGVhclRpbWVyU291cmNlKCkKK3sKKyAgICBtX3RpbWVyU291cmNlID0gMDsKK30K
KworZ2Jvb2xlYW4gUnVuTG9vcDo6VGltZXJCYXNlOjp0aW1lckZpcmVkQ2FsbGJhY2soUnVuTG9v
cDo6VGltZXJCYXNlKiB0aW1lcikKK3sKKyAgICBHU291cmNlKiBjdXJyZW50VGltZXJTb3VyY2Ug
PSB0aW1lci0+bV90aW1lclNvdXJjZS5nZXQoKTsKKyAgICBib29sIGlzUmVwZWF0aW5nID0gdGlt
ZXItPmlzUmVwZWF0aW5nKCk7CisgICAgLy8gVGhpcyBjYW4gY2hhbmdlIHRoZSB0aW1lclNvdXJj
ZSBieSBzdGFydGluZyBhIG5ldyB0aW1lciB3aXRoaW4gdGhlIGNhbGxiYWNrLgorICAgIHRpbWVy
LT5maXJlZCgpOworICAgIGlmICghaXNSZXBlYXRpbmcgJiYgY3VycmVudFRpbWVyU291cmNlID09
IHRpbWVyLT5tX3RpbWVyU291cmNlLmdldCgpKQorICAgICAgICB0aW1lci0+Y2xlYXJUaW1lclNv
dXJjZSgpOworICAgIHJldHVybiBpc1JlcGVhdGluZzsKK30KKwordm9pZCBSdW5Mb29wOjpUaW1l
ckJhc2U6OnN0YXJ0KGRvdWJsZSBmaXJlSW50ZXJ2YWwsIGJvb2wgcmVwZWF0KQoreworICAgIGlm
IChtX3RpbWVyU291cmNlKQorICAgICAgICBzdG9wKCk7CisKKyAgICBtX3RpbWVyU291cmNlID0g
YWRvcHRHUmVmKGdfdGltZW91dF9zb3VyY2VfbmV3KHN0YXRpY19jYXN0PGd1aW50PihmaXJlSW50
ZXJ2YWwgKiAxMDAwKSkpOworICAgIG1faXNSZXBlYXRpbmcgPSByZXBlYXQ7CisgICAgZ19zb3Vy
Y2Vfc2V0X2NhbGxiYWNrKG1fdGltZXJTb3VyY2UuZ2V0KCksIHJlaW50ZXJwcmV0X2Nhc3Q8R1Nv
dXJjZUZ1bmM+KCZSdW5Mb29wOjpUaW1lckJhc2U6OnRpbWVyRmlyZWRDYWxsYmFjayksIHRoaXMs
IDApOworICAgIGdfc291cmNlX2F0dGFjaChtX3RpbWVyU291cmNlLmdldCgpLCBtX3J1bkxvb3At
Pm1fcnVuTG9vcENvbnRleHQpOworfQorCit2b2lkIFJ1bkxvb3A6OlRpbWVyQmFzZTo6c3RvcCgp
Cit7CisgICAgaWYgKCFtX3RpbWVyU291cmNlKQorICAgICAgICByZXR1cm47CisKKyAgICBnX3Nv
dXJjZV9kZXN0cm95KG1fdGltZXJTb3VyY2UuZ2V0KCkpOworICAgIGNsZWFyVGltZXJTb3VyY2Uo
KTsKK30KKworYm9vbCBSdW5Mb29wOjpUaW1lckJhc2U6OmlzQWN0aXZlKCkgY29uc3QKK3sKKyAg
ICByZXR1cm4gbV90aW1lclNvdXJjZTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1J1bkxvb3BNYWMubW0gYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvUnVuTG9vcE1hYy5tbQpuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5hNTY3YWZk
ZDVjODc3Y2I1OGU5YjAzMTg4NDA4MjhkMGYwMTYwZDBlCi0tLSAvZGV2L251bGwKKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1J1bkxvb3BNYWMubW0KQEAgLTAsMCArMSwxNTcgQEAK
Ky8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVk
aXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0
IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBk
b2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlz
dHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5D
LiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJ
TVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhF
IElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEg
UEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwg
QVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJF
Q1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05T
RVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJF
TUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERB
VEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FV
U0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJB
Q1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9U
SEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNP
RlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERB
TUFHRS4KKyAqLworCisjaW1wb3J0ICJjb25maWcuaCIKKyNpbXBvcnQgIlJ1bkxvb3AuaCIKKwor
bmFtZXNwYWNlIFdlYkNvcmUgeworCit2b2lkIFJ1bkxvb3A6OnBlcmZvcm1Xb3JrKHZvaWQqIGNv
bnRleHQpCit7CisgICAgLy8gV3JhcCBtYWluIHRocmVhZCBpbiBhbiBBdXRvcmVsZWFzZSBwb29s
LiAgU2VuZGluZyBtZXNzYWdlcyBjYW4gY2FsbCAKKyAgICAvLyBpbnRvIG9iamMgY29kZSBhbmQg
YWNjdW11bGF0ZSBtZW1vcnkuICAKKyAgICBpZiAoY3VycmVudCgpID09IG1haW4oKSkgeworICAg
ICAgICBOU0F1dG9yZWxlYXNlUG9vbCAqcG9vbCA9IFtbTlNBdXRvcmVsZWFzZVBvb2wgYWxsb2Nd
IGluaXRdOworICAgICAgICBzdGF0aWNfY2FzdDxSdW5Mb29wKj4oY29udGV4dCktPnBlcmZvcm1X
b3JrKCk7CisgICAgICAgIFtwb29sIGRyYWluXTsKKyAgICB9IGVsc2UKKyAgICAgICAgc3RhdGlj
X2Nhc3Q8UnVuTG9vcCo+KGNvbnRleHQpLT5wZXJmb3JtV29yaygpOworfQorCitSdW5Mb29wOjpS
dW5Mb29wKCkKKyAgICA6IG1fcnVuTG9vcChDRlJ1bkxvb3BHZXRDdXJyZW50KCkpCisgICAgLCBt
X25lc3RpbmdMZXZlbCgwKQoreworICAgIENGUnVuTG9vcFNvdXJjZUNvbnRleHQgY29udGV4dCA9
IHsgMCwgdGhpcywgMCwgMCwgMCwgMCwgMCwgMCwgMCwgcGVyZm9ybVdvcmsgfTsKKyAgICBtX3J1
bkxvb3BTb3VyY2UgPSBDRlJ1bkxvb3BTb3VyY2VDcmVhdGUoa0NGQWxsb2NhdG9yRGVmYXVsdCwg
MCwgJmNvbnRleHQpOworICAgIENGUnVuTG9vcEFkZFNvdXJjZShtX3J1bkxvb3AsIG1fcnVuTG9v
cFNvdXJjZSwga0NGUnVuTG9vcENvbW1vbk1vZGVzKTsKK30KKworUnVuTG9vcDo6flJ1bkxvb3Ao
KQoreworICAgIC8vIEZJWE1FOiBUZWFyIGRvd24gdGhlIHdvcmsgaXRlbSBxdWV1ZSBoZXJlLgor
ICAgIENGUnVuTG9vcFNvdXJjZUludmFsaWRhdGUobV9ydW5Mb29wU291cmNlKTsKKyAgICBDRlJl
bGVhc2UobV9ydW5Mb29wU291cmNlKTsKK30KKwordm9pZCBSdW5Mb29wOjpydW4oKQoreworICAg
IGN1cnJlbnQoKS0+bV9uZXN0aW5nTGV2ZWwrKzsKKyAgICBpZiAoY3VycmVudCgpID09IG1haW4o
KSAmJiBjdXJyZW50KCktPm1fbmVzdGluZ0xldmVsID09IDEpIHsKKyAgICAgICAgLy8gVXNlIC1b
TlNBcHBsaWNhdGlvbiBydW5dIGZvciB0aGUgbWFpbiBydW4gbG9vcC4KKyAgICAgICAgW05TQXBw
IHJ1bl07CisgICAgfSBlbHNlIHsKKyAgICAgICAgTlNBdXRvcmVsZWFzZVBvb2wgKnBvb2wgPSBb
W05TQXV0b3JlbGVhc2VQb29sIGFsbG9jXSBpbml0XTsKKyAgICAgICAgQ0ZSdW5Mb29wUnVuKCk7
CisgICAgICAgIFtwb29sIGRyYWluXTsKKyAgICB9CisgICAgY3VycmVudCgpLT5tX25lc3RpbmdM
ZXZlbC0tOworfQorCit2b2lkIFJ1bkxvb3A6OnJ1bkZvckR1cmF0aW9uKGRvdWJsZSBkdXJhdGlv
bikKK3sKKyAgICBDRlJ1bkxvb3BSdW5Jbk1vZGUoa0NGUnVuTG9vcERlZmF1bHRNb2RlLCBkdXJh
dGlvbiwgdHJ1ZSk7Cit9CisKK3ZvaWQgUnVuTG9vcDo6c3RvcCgpCit7CisgICAgQVNTRVJUKG1f
cnVuTG9vcCA9PSBDRlJ1bkxvb3BHZXRDdXJyZW50KCkpOworICAgIAorICAgIGlmIChtX3J1bkxv
b3AgPT0gbWFpbigpLT5tX3J1bkxvb3AgJiYgbV9uZXN0aW5nTGV2ZWwgPT0gMSkgeworICAgICAg
ICBbTlNBcHAgc3RvcDpuaWxdOworICAgICAgICBOU0V2ZW50ICpldmVudCA9IFtOU0V2ZW50IG90
aGVyRXZlbnRXaXRoVHlwZTpOU0FwcGxpY2F0aW9uRGVmaW5lZAorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBsb2NhdGlvbjpOU01ha2VQb2ludCgwLCAwKQorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbW9kaWZpZXJGbGFnczowCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGltZXN0YW1wOjAuMAorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aW5kb3dOdW1iZXI6MAorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29udGV4dDpuaWwKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN1YnR5cGU6IDAKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0YTE6MAorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRhMjowXTsKKyAg
ICAgICAgW05TQXBwIHBvc3RFdmVudDpldmVudCBhdFN0YXJ0OnRydWVdOworICAgIH0gZWxzZQor
ICAgICAgICBDRlJ1bkxvb3BTdG9wKG1fcnVuTG9vcCk7Cit9CisKK3ZvaWQgUnVuTG9vcDo6d2Fr
ZVVwKCkKK3sKKyAgICBDRlJ1bkxvb3BTb3VyY2VTaWduYWwobV9ydW5Mb29wU291cmNlKTsKKyAg
ICBDRlJ1bkxvb3BXYWtlVXAobV9ydW5Mb29wKTsKK30KKworLy8gUnVuTG9vcDo6VGltZXIKKwor
dm9pZCBSdW5Mb29wOjpUaW1lckJhc2U6OnRpbWVyRmlyZWQoQ0ZSdW5Mb29wVGltZXJSZWYsIHZv
aWQqIGNvbnRleHQpCit7CisgICAgVGltZXJCYXNlKiB0aW1lciA9IHN0YXRpY19jYXN0PFRpbWVy
QmFzZSo+KGNvbnRleHQpOworICAgIAorICAgIC8vIFdyYXAgbWFpbiB0aHJlYWQgaW4gYW4gQXV0
b3JlbGVhc2UgcG9vbC4gIFRoZSB0aW1lciBjYW4gY2FsbCAKKyAgICAvLyBpbnRvIG9iamMgY29k
ZSBhbmQgYWNjdW11bGF0ZSBtZW1vcnkgb3V0c2lkZSBvZiB0aGUgbWFpbiBldmVudCBsb29wLgor
ICAgIGlmIChjdXJyZW50KCkgPT0gbWFpbigpKSB7CisgICAgICAgIE5TQXV0b3JlbGVhc2VQb29s
ICpwb29sID0gW1tOU0F1dG9yZWxlYXNlUG9vbCBhbGxvY10gaW5pdF07IAorICAgICAgICB0aW1l
ci0+ZmlyZWQoKTsKKyAgICAgICAgW3Bvb2wgZHJhaW5dOworICAgIH0gZWxzZQorICAgICAgICB0
aW1lci0+ZmlyZWQoKTsKK30KKworUnVuTG9vcDo6VGltZXJCYXNlOjpUaW1lckJhc2UoUnVuTG9v
cCogcnVuTG9vcCkKKyAgICA6IG1fcnVuTG9vcChydW5Mb29wKQorICAgICwgbV90aW1lcigwKQor
eworfQorCitSdW5Mb29wOjpUaW1lckJhc2U6On5UaW1lckJhc2UoKQoreworICAgIHN0b3AoKTsK
K30KKwordm9pZCBSdW5Mb29wOjpUaW1lckJhc2U6OnN0YXJ0KGRvdWJsZSBuZXh0RmlyZUludGVy
dmFsLCBib29sIHJlcGVhdCkKK3sKKyAgICBpZiAobV90aW1lcikKKyAgICAgICAgc3RvcCgpOwor
CisgICAgQ0ZSdW5Mb29wVGltZXJDb250ZXh0IGNvbnRleHQgPSB7IDAsIHRoaXMsIDAsIDAsIDAg
fTsKKyAgICBDRlRpbWVJbnRlcnZhbCByZXBlYXRJbnRlcnZhbCA9IHJlcGVhdCA/IG5leHRGaXJl
SW50ZXJ2YWwgOiAwOworICAgIG1fdGltZXIgPSBDRlJ1bkxvb3BUaW1lckNyZWF0ZShrQ0ZBbGxv
Y2F0b3JEZWZhdWx0LCBDRkFic29sdXRlVGltZUdldEN1cnJlbnQoKSArIG5leHRGaXJlSW50ZXJ2
YWwsIHJlcGVhdEludGVydmFsLCAwLCAwLCB0aW1lckZpcmVkLCAmY29udGV4dCk7CisgICAgQ0ZS
dW5Mb29wQWRkVGltZXIobV9ydW5Mb29wLT5tX3J1bkxvb3AsIG1fdGltZXIsIGtDRlJ1bkxvb3BD
b21tb25Nb2Rlcyk7Cit9CisKK3ZvaWQgUnVuTG9vcDo6VGltZXJCYXNlOjpzdG9wKCkKK3sKKyAg
ICBpZiAoIW1fdGltZXIpCisgICAgICAgIHJldHVybjsKKworICAgIENGUnVuTG9vcFRpbWVySW52
YWxpZGF0ZShtX3RpbWVyKTsKKyAgICBDRlJlbGVhc2UobV90aW1lcik7CisgICAgbV90aW1lciA9
IDA7Cit9CisKK2Jvb2wgUnVuTG9vcDo6VGltZXJCYXNlOjppc0FjdGl2ZSgpIGNvbnN0Cit7Cisg
ICAgcmV0dXJuIG1fdGltZXIgJiYgQ0ZSdW5Mb29wVGltZXJJc1ZhbGlkKG1fdGltZXIpOworfQor
Cit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9xdC9SdW5Mb29wUXQuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vcXQvUnVuTG9v
cFF0LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi4yYTg3ZTJmYzhmNjY3Nzc2OWY3MzE0M2U1NzFlMDljNWE1NGM2
ZWJhCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vcXQvUnVuTG9v
cFF0LmNwcApAQCAtMCwwICsxLDE2NiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMCBBcHBs
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAgTm9raWEg
Q29ycG9yYXRpb24gYW5kL29yIGl0cyBzdWJzaWRpYXJ5KC1pZXMpCisgKgorICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291
cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICog
Mi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29y
IG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICog
VEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVU
T1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywg
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVT
IE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQ
T1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBD
T05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lE
RU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAo
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElU
VVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1Ig
QlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVP
UlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElU
WSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lO
RyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURW
SVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNs
dWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJSdW5Mb29wLmgiCisKKyNpbmNsdWRlIDxRQWJzdHJh
Y3RFdmVudERpc3BhdGNoZXI+CisjaW5jbHVkZSA8UUNvcmVBcHBsaWNhdGlvbj4KKyNpbmNsdWRl
IDxRTWV0YU1ldGhvZD4KKyNpbmNsdWRlIDxRTWV0YU9iamVjdD4KKyNpbmNsdWRlIDxRT2JqZWN0
PgorI2luY2x1ZGUgPFFUaW1lckV2ZW50PgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNz
IFJ1bkxvb3A6OlRpbWVyT2JqZWN0IDogcHVibGljIFFPYmplY3QgeworICAgIFFfT0JKRUNUCitw
dWJsaWM6CisgICAgVGltZXJPYmplY3QoUnVuTG9vcCogcnVuTG9vcCkgOiBtX3J1bkxvb3AocnVu
TG9vcCkKKyAgICB7CisgICAgICAgIGludCBtZXRob2RJbmRleCA9IG1ldGFPYmplY3QoKS0+aW5k
ZXhPZk1ldGhvZCgicGVyZm9ybVdvcmsoKSIpOworICAgICAgICBtX21ldGhvZCA9IG1ldGFPYmpl
Y3QoKS0+bWV0aG9kKG1ldGhvZEluZGV4KTsKKyAgICB9CisKKyAgICBRX1NMT1Qgdm9pZCBwZXJm
b3JtV29yaygpIHsgbV9ydW5Mb29wLT5wZXJmb3JtV29yaygpOyB9CisgICAgaW5saW5lIHZvaWQg
d2FrZVVwKCkgeyBtX21ldGhvZC5pbnZva2UodGhpcywgUXQ6OlF1ZXVlZENvbm5lY3Rpb24pOyB9
CisKK3Byb3RlY3RlZDoKKyAgICB2aXJ0dWFsIHZvaWQgdGltZXJFdmVudChRVGltZXJFdmVudCog
ZXZlbnQpCisgICAgeworICAgICAgICBSdW5Mb29wOjpUaW1lckJhc2U6OnRpbWVyRmlyZWQobV9y
dW5Mb29wLCBldmVudC0+dGltZXJJZCgpKTsKKyAgICB9CisKK3ByaXZhdGU6CisgICAgUnVuTG9v
cCogbV9ydW5Mb29wOworICAgIFFNZXRhTWV0aG9kIG1fbWV0aG9kOworfTsKKworc3RhdGljIFFF
dmVudExvb3AqIGN1cnJlbnRFdmVudExvb3A7CisKK3ZvaWQgUnVuTG9vcDo6cnVuKCkKK3sKKyAg
ICBzdGF0aWMgYm9vbCBtYWluRXZlbnRMb29wSXNSdW5uaW5nID0gZmFsc2U7CisgICAgaWYgKCFt
YWluRXZlbnRMb29wSXNSdW5uaW5nKSB7CisgICAgICAgIG1haW5FdmVudExvb3BJc1J1bm5pbmcg
PSB0cnVlOworICAgICAgICBRQ29yZUFwcGxpY2F0aW9uOjpleGVjKCk7CisgICAgICAgIG1haW5F
dmVudExvb3BJc1J1bm5pbmcgPSBmYWxzZTsKKyAgICB9IGVsc2UgeworICAgICAgICBRRXZlbnRM
b29wIGV2ZW50TG9vcDsKKworICAgICAgICBRRXZlbnRMb29wKiBwcmV2aW91c0V2ZW50TG9vcCA9
IGN1cnJlbnRFdmVudExvb3A7CisgICAgICAgIGN1cnJlbnRFdmVudExvb3AgPSAmZXZlbnRMb29w
OworCisgICAgICAgIGV2ZW50TG9vcC5leGVjKCk7CisKKyAgICAgICAgY3VycmVudEV2ZW50TG9v
cCA9IHByZXZpb3VzRXZlbnRMb29wOworICAgIH0KK30KKwordm9pZCBSdW5Mb29wOjpzdG9wKCkK
K3sKKyAgICBpZiAoY3VycmVudEV2ZW50TG9vcCkKKyAgICAgICAgY3VycmVudEV2ZW50TG9vcC0+
ZXhpdCgpOworICAgIGVsc2UKKyAgICAgICAgUUNvcmVBcHBsaWNhdGlvbjo6ZXhpdCgpOworfQor
CitSdW5Mb29wOjpSdW5Mb29wKCkKKyAgICA6IG1fdGltZXJPYmplY3QobmV3IFRpbWVyT2JqZWN0
KHRoaXMpKQoreworfQorCitSdW5Mb29wOjp+UnVuTG9vcCgpCit7CisgICAgZGVsZXRlIG1fdGlt
ZXJPYmplY3Q7Cit9CisKK3ZvaWQgUnVuTG9vcDo6d2FrZVVwKCkKK3sKKyAgICBtX3RpbWVyT2Jq
ZWN0LT53YWtlVXAoKTsKK30KKworLy8gUnVuTG9vcDo6VGltZXIKKwordm9pZCBSdW5Mb29wOjpU
aW1lckJhc2U6OnRpbWVyRmlyZWQoUnVuTG9vcCogcnVuTG9vcCwgaW50IElEKQoreworICAgIFRp
bWVyTWFwOjppdGVyYXRvciBpdCA9IHJ1bkxvb3AtPm1fYWN0aXZlVGltZXJzLmZpbmQoSUQpOwor
ICAgIEFTU0VSVChpdCAhPSBydW5Mb29wLT5tX2FjdGl2ZVRpbWVycy5lbmQoKSk7CisgICAgVGlt
ZXJCYXNlKiB0aW1lciA9IGl0LT5zZWNvbmQ7CisKKyAgICBpZiAoIXRpbWVyLT5tX2lzUmVwZWF0
aW5nKSB7CisgICAgICAgIC8vIFN0b3AgdGhlIHRpbWVyIChjYWxsaW5nIHN0b3Agd291bGQgbmVl
ZCBhbm90aGVyIGhhc2ggdGFibGUgbG9va3VwKS4KKyAgICAgICAgcnVuTG9vcC0+bV9hY3RpdmVU
aW1lcnMucmVtb3ZlKGl0KTsKKyAgICAgICAgcnVuTG9vcC0+bV90aW1lck9iamVjdC0+a2lsbFRp
bWVyKHRpbWVyLT5tX0lEKTsKKyAgICAgICAgdGltZXItPm1fSUQgPSAwOworICAgIH0KKworICAg
IHRpbWVyLT5maXJlZCgpOworfQorCitSdW5Mb29wOjpUaW1lckJhc2U6OlRpbWVyQmFzZShSdW5M
b29wKiBydW5Mb29wKQorICAgIDogbV9ydW5Mb29wKHJ1bkxvb3ApCisgICAgLCBtX0lEKDApCisg
ICAgLCBtX2lzUmVwZWF0aW5nKGZhbHNlKQoreworfQorCitSdW5Mb29wOjpUaW1lckJhc2U6On5U
aW1lckJhc2UoKQoreworICAgIHN0b3AoKTsKK30KKwordm9pZCBSdW5Mb29wOjpUaW1lckJhc2U6
OnN0YXJ0KGRvdWJsZSBuZXh0RmlyZUludGVydmFsLCBib29sIHJlcGVhdCkKK3sKKyAgICBzdG9w
KCk7CisgICAgaW50IG1pbGxpcyA9IHN0YXRpY19jYXN0PGludD4obmV4dEZpcmVJbnRlcnZhbCAq
IDEwMDApOworICAgIG1faXNSZXBlYXRpbmcgPSByZXBlYXQ7CisgICAgbV9JRCA9IG1fcnVuTG9v
cC0+bV90aW1lck9iamVjdC0+c3RhcnRUaW1lcihtaWxsaXMpOworICAgIEFTU0VSVChtX0lEKTsK
KyAgICBtX3J1bkxvb3AtPm1fYWN0aXZlVGltZXJzLnNldChtX0lELCB0aGlzKTsKK30KKwordm9p
ZCBSdW5Mb29wOjpUaW1lckJhc2U6OnN0b3AoKQoreworICAgIGlmICghbV9JRCkKKyAgICAgICAg
cmV0dXJuOworICAgIFRpbWVyTWFwOjppdGVyYXRvciBpdCA9IG1fcnVuTG9vcC0+bV9hY3RpdmVU
aW1lcnMuZmluZChtX0lEKTsKKyAgICBpZiAoaXQgPT0gbV9ydW5Mb29wLT5tX2FjdGl2ZVRpbWVy
cy5lbmQoKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgbV9ydW5Mb29wLT5tX2FjdGl2ZVRpbWVy
cy5yZW1vdmUoaXQpOworICAgIG1fcnVuTG9vcC0+bV90aW1lck9iamVjdC0+a2lsbFRpbWVyKG1f
SUQpOworICAgIG1fSUQgPSAwOworfQorCitib29sIFJ1bkxvb3A6OlRpbWVyQmFzZTo6aXNBY3Rp
dmUoKSBjb25zdAoreworICAgIHJldHVybiBtX0lEOworfQorCisjaW5jbHVkZSAiUnVuTG9vcFF0
Lm1vYyIKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vd2luL1J1bkxvb3BXaW4uY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
d2luL1J1bkxvb3BXaW4uY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjEyMGMyNTJhNjY4NmYyYjVjZTNkYWRkOWI2
NDRkMDAwY2NkNWIzNWQKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS93aW4vUnVuTG9vcFdpbi5jcHAKQEAgLTAsMCArMSwxODEgQEAKKy8qCisgKiBDb3B5cmlnaHQg
KEMpIDIwMTAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNv
dXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAq
IDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9v
ciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAq
IFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJV
VE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMs
IElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElF
UyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVS
UE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMg
Q09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJ
REVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMg
KElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJ
VFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9S
IEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhF
T1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJ
VFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJ
TkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFE
VklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5j
bHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiUnVuTG9vcC5oIgorCisjaW5jbHVkZSA8d3RmL0N1
cnJlbnRUaW1lLmg+CisKK3VzaW5nIG5hbWVzcGFjZSBzdGQ7CisKK25hbWVzcGFjZSBXZWJDb3Jl
IHsKKworc3RhdGljIGNvbnN0IFVJTlQgUGVyZm9ybVdvcmtNZXNzYWdlID0gV01fVVNFUiArIDE7
CitzdGF0aWMgY29uc3QgTFBXU1RSIGtSdW5Mb29wTWVzc2FnZVdpbmRvd0NsYXNzTmFtZSA9IEwi
UnVuTG9vcE1lc3NhZ2VXaW5kb3ciOworCitMUkVTVUxUIENBTExCQUNLIFJ1bkxvb3A6OlJ1bkxv
b3BXbmRQcm9jKEhXTkQgaFduZCwgVUlOVCBtZXNzYWdlLCBXUEFSQU0gd1BhcmFtLCBMUEFSQU0g
bFBhcmFtKQoreworICAgIExPTkdfUFRSIGxvbmdQdHIgPSA6OkdldFdpbmRvd0xvbmdQdHIoaFdu
ZCwgMCk7CisgICAgCisgICAgaWYgKFJ1bkxvb3AqIHJ1bkxvb3AgPSByZWludGVycHJldF9jYXN0
PFJ1bkxvb3AqPihsb25nUHRyKSkKKyAgICAgICAgcmV0dXJuIHJ1bkxvb3AtPnduZFByb2MoaFdu
ZCwgbWVzc2FnZSwgd1BhcmFtLCBsUGFyYW0pOworCisgICAgaWYgKG1lc3NhZ2UgPT0gV01fQ1JF
QVRFKSB7CisgICAgICAgIExQQ1JFQVRFU1RSVUNUIGNyZWF0ZVN0cnVjdCA9IHJlaW50ZXJwcmV0
X2Nhc3Q8TFBDUkVBVEVTVFJVQ1Q+KGxQYXJhbSk7CisKKyAgICAgICAgLy8gQXNzb2NpYXRlIHRo
ZSBSdW5Mb29wIHdpdGggdGhlIHdpbmRvdy4KKyAgICAgICAgOjpTZXRXaW5kb3dMb25nUHRyKGhX
bmQsIDAsIChMT05HX1BUUiljcmVhdGVTdHJ1Y3QtPmxwQ3JlYXRlUGFyYW1zKTsKKyAgICAgICAg
cmV0dXJuIDA7CisgICAgfQorCisgICAgcmV0dXJuIDo6RGVmV2luZG93UHJvYyhoV25kLCBtZXNz
YWdlLCB3UGFyYW0sIGxQYXJhbSk7Cit9CisKK0xSRVNVTFQgUnVuTG9vcDo6d25kUHJvYyhIV05E
IGhXbmQsIFVJTlQgbWVzc2FnZSwgV1BBUkFNIHdQYXJhbSwgTFBBUkFNIGxQYXJhbSkKK3sKKyAg
ICBzd2l0Y2ggKG1lc3NhZ2UpIHsKKyAgICBjYXNlIFBlcmZvcm1Xb3JrTWVzc2FnZToKKyAgICAg
ICAgcGVyZm9ybVdvcmsoKTsKKyAgICAgICAgcmV0dXJuIDA7CisgICAgY2FzZSBXTV9USU1FUjoK
KyAgICAgICAgUnVuTG9vcDo6VGltZXJCYXNlOjp0aW1lckZpcmVkKHRoaXMsIHdQYXJhbSk7Cisg
ICAgICAgIHJldHVybiAwOworICAgIH0KKworICAgIHJldHVybiA6OkRlZldpbmRvd1Byb2MoaFdu
ZCwgbWVzc2FnZSwgd1BhcmFtLCBsUGFyYW0pOworfQorCit2b2lkIFJ1bkxvb3A6OnJ1bigpCit7
CisgICAgTVNHIG1lc3NhZ2U7CisgICAgd2hpbGUgKEJPT0wgcmVzdWx0ID0gOjpHZXRNZXNzYWdl
KCZtZXNzYWdlLCAwLCAwLCAwKSkgeworICAgICAgICBpZiAocmVzdWx0ID09IC0xKQorICAgICAg
ICAgICAgYnJlYWs7CisgICAgICAgIDo6VHJhbnNsYXRlTWVzc2FnZSgmbWVzc2FnZSk7CisgICAg
ICAgIDo6RGlzcGF0Y2hNZXNzYWdlKCZtZXNzYWdlKTsKKyAgICB9Cit9CisKK3ZvaWQgUnVuTG9v
cDo6c3RvcCgpCit7CisgICAgOjpQb3N0UXVpdE1lc3NhZ2UoMCk7Cit9CisKK2Jvb2wgUnVuTG9v
cDo6cmVnaXN0ZXJSdW5Mb29wTWVzc2FnZVdpbmRvd0NsYXNzKCkKK3sKKyAgICAvLyBGSVhNRTog
VGhpcyByZWFsbHkgb25seSBuZWVkcyB0byBiZSBjYWxsZWQgb25jZS4KKworICAgIFdORENMQVNT
RVggd2luZG93Q2xhc3MgPSB7IDAgfTsKKyAgICB3aW5kb3dDbGFzcy5jYlNpemUgICAgICAgICAg
PSBzaXplb2Yod2luZG93Q2xhc3MpOworICAgIHdpbmRvd0NsYXNzLmxwZm5XbmRQcm9jICAgICA9
IFJ1bkxvb3A6OlJ1bkxvb3BXbmRQcm9jOworICAgIHdpbmRvd0NsYXNzLmNiV25kRXh0cmEgICAg
ICA9IHNpemVvZihSdW5Mb29wKik7CisgICAgd2luZG93Q2xhc3MubHBzekNsYXNzTmFtZSAgID0g
a1J1bkxvb3BNZXNzYWdlV2luZG93Q2xhc3NOYW1lOworCisgICAgcmV0dXJuICEhOjpSZWdpc3Rl
ckNsYXNzRXgoJndpbmRvd0NsYXNzKTsKK30KKworUnVuTG9vcDo6UnVuTG9vcCgpCit7CisgICAg
cmVnaXN0ZXJSdW5Mb29wTWVzc2FnZVdpbmRvd0NsYXNzKCk7CisKKyAgICBtX3J1bkxvb3BNZXNz
YWdlV2luZG93ID0gOjpDcmVhdGVXaW5kb3coa1J1bkxvb3BNZXNzYWdlV2luZG93Q2xhc3NOYW1l
LCAwLCAwLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDV19V
U0VERUZBVUxULCAwLCBDV19VU0VERUZBVUxULCAwLAorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBIV05EX01FU1NBR0UsIDAsIDAsIHRoaXMpOworICAgIEFTU0VS
VCg6OklzV2luZG93KG1fcnVuTG9vcE1lc3NhZ2VXaW5kb3cpKTsKK30KKworUnVuTG9vcDo6flJ1
bkxvb3AoKQoreworICAgIC8vIEZJWE1FOiBUZWFyIGRvd24gdGhlIHdvcmsgaXRlbSBxdWV1ZSBo
ZXJlLgorfQorCit2b2lkIFJ1bkxvb3A6Ondha2VVcCgpCit7CisgICAgLy8gRklYTUU6IE5vIG5l
ZWQgdG8gd2FrZSB1cCB0aGUgcnVuIGxvb3AgaWYgd2UndmUgYWxyZWFkeSBjYWxsZWQgZGlzcGF0
Y2gKKyAgICAvLyBiZWZvcmUgdGhlIHJ1biBsb29wIGhhcyBoYWQgdGhlIHRpbWUgdG8gcmVzcG9u
ZC4KKyAgICA6OlBvc3RNZXNzYWdlKG1fcnVuTG9vcE1lc3NhZ2VXaW5kb3csIFBlcmZvcm1Xb3Jr
TWVzc2FnZSwgcmVpbnRlcnByZXRfY2FzdDxXUEFSQU0+KHRoaXMpLCAwKTsKK30KKworLy8gUnVu
TG9vcDo6VGltZXIKKwordm9pZCBSdW5Mb29wOjpUaW1lckJhc2U6OnRpbWVyRmlyZWQoUnVuTG9v
cCogcnVuTG9vcCwgdWludDY0X3QgSUQpCit7CisgICAgVGltZXJNYXA6Oml0ZXJhdG9yIGl0ID0g
cnVuTG9vcC0+bV9hY3RpdmVUaW1lcnMuZmluZChJRCk7CisgICAgaWYgKGl0ID09IHJ1bkxvb3At
Pm1fYWN0aXZlVGltZXJzLmVuZCgpKSB7CisgICAgICAgIC8vIFRoZSB0aW1lciBtdXN0IGhhdmUg
YmVlbiBzdG9wcGVkIGFmdGVyIHRoZSBXTV9USU1FUiBtZXNzYWdlIHdhcyBwb3N0ZWQgdG8gdGhl
IG1lc3NhZ2UgcXVldWUuCisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBUaW1lckJhc2Uq
IHRpbWVyID0gaXQtPnNlY29uZDsKKworICAgIGlmICghdGltZXItPm1faXNSZXBlYXRpbmcpIHsK
KyAgICAgICAgcnVuTG9vcC0+bV9hY3RpdmVUaW1lcnMucmVtb3ZlKGl0KTsKKyAgICAgICAgOjpL
aWxsVGltZXIocnVuTG9vcC0+bV9ydW5Mb29wTWVzc2FnZVdpbmRvdywgSUQpOworICAgIH0KKwor
ICAgIHRpbWVyLT5maXJlZCgpOworfQorCitzdGF0aWMgdWludDY0X3QgZ2VuZXJhdGVUaW1lcklE
KCkKK3sKKyAgICBzdGF0aWMgdWludDY0X3QgdW5pcXVlVGltZXJJRCA9IDE7CisgICAgcmV0dXJu
IHVuaXF1ZVRpbWVySUQrKzsKK30KKworUnVuTG9vcDo6VGltZXJCYXNlOjpUaW1lckJhc2UoUnVu
TG9vcCogcnVuTG9vcCkKKyAgICA6IG1fcnVuTG9vcChydW5Mb29wKQorICAgICwgbV9JRChnZW5l
cmF0ZVRpbWVySUQoKSkKKyAgICAsIG1faXNSZXBlYXRpbmcoZmFsc2UpCit7Cit9CisKK1J1bkxv
b3A6OlRpbWVyQmFzZTo6flRpbWVyQmFzZSgpCit7CisgICAgc3RvcCgpOworfQorCit2b2lkIFJ1
bkxvb3A6OlRpbWVyQmFzZTo6c3RhcnQoZG91YmxlIG5leHRGaXJlSW50ZXJ2YWwsIGJvb2wgcmVw
ZWF0KQoreworICAgIG1faXNSZXBlYXRpbmcgPSByZXBlYXQ7CisgICAgbV9ydW5Mb29wLT5tX2Fj
dGl2ZVRpbWVycy5zZXQobV9JRCwgdGhpcyk7CisgICAgOjpTZXRUaW1lcihtX3J1bkxvb3AtPm1f
cnVuTG9vcE1lc3NhZ2VXaW5kb3csIG1fSUQsIG5leHRGaXJlSW50ZXJ2YWwgKiAxMDAwLCAwKTsK
K30KKwordm9pZCBSdW5Mb29wOjpUaW1lckJhc2U6OnN0b3AoKQoreworICAgIFRpbWVyTWFwOjpp
dGVyYXRvciBpdCA9IG1fcnVuTG9vcC0+bV9hY3RpdmVUaW1lcnMuZmluZChtX0lEKTsKKyAgICBp
ZiAoaXQgPT0gbV9ydW5Mb29wLT5tX2FjdGl2ZVRpbWVycy5lbmQoKSkKKyAgICAgICAgcmV0dXJu
OworCisgICAgbV9ydW5Mb29wLT5tX2FjdGl2ZVRpbWVycy5yZW1vdmUoaXQpOworICAgIDo6S2ls
bFRpbWVyKG1fcnVuTG9vcC0+bV9ydW5Mb29wTWVzc2FnZVdpbmRvdywgbV9JRCk7Cit9CisKK2Jv
b2wgUnVuTG9vcDo6VGltZXJCYXNlOjppc0FjdGl2ZSgpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1f
cnVuTG9vcC0+bV9hY3RpdmVUaW1lcnMuY29udGFpbnMobV9JRCk7Cit9CisKK30gLy8gbmFtZXNw
YWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0dOVW1ha2VmaWxlLmFtIGIv
U291cmNlL1dlYktpdDIvR05VbWFrZWZpbGUuYW0KaW5kZXggYTc3MWI5ZDhkNGMzODE1ZWI3NWQy
ODBlMWExYzcyZjhmODBmMTE4YS4uOGIyNmM1ZWZiMmQxYzdjYmVhZDIyOTY2MDliMzM1MjVmNjFk
ZDBjNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvR05VbWFrZWZpbGUuYW0KKysrIGIvU291
cmNlL1dlYktpdDIvR05VbWFrZWZpbGUuYW0KQEAgLTIwOSwxNSArMjA5LDEyIEBAIGxpYndlYmtp
dDJndGtfQFdFQktJVEdUS19BUElfTUFKT1JfVkVSU0lPTkBfQFdFQktJVEdUS19BUElfTUlOT1Jf
VkVSU0lPTkBfbGFfU09VCiAJU291cmNlL1dlYktpdDIvUGxhdGZvcm0vQ29yZUlQQy91bml4L0Nv
bm5lY3Rpb25Vbml4LmNwcCBcCiAJU291cmNlL1dlYktpdDIvUGxhdGZvcm0vZ3RrL0xvZ2dpbmdH
dGsuY3BwIFwKIAlTb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9ndGsvTW9kdWxlR3RrLmNwcCBcCi0J
U291cmNlL1dlYktpdDIvUGxhdGZvcm0vZ3RrL1J1bkxvb3BHdGsuY3BwIFwKIAlTb3VyY2UvV2Vi
S2l0Mi9QbGF0Zm9ybS9ndGsvV29ya1F1ZXVlR3RrLmNwcCBcCiAJU291cmNlL1dlYktpdDIvUGxh
dGZvcm0vTG9nZ2luZy5jcHAgXAogCVNvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL0xvZ2dpbmcuaCBc
CiAJU291cmNlL1dlYktpdDIvUGxhdGZvcm0vTW9kdWxlLmNwcCBcCiAJU291cmNlL1dlYktpdDIv
UGxhdGZvcm0vTW9kdWxlLmggXAogCVNvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL1BsYXRmb3JtUHJv
Y2Vzc0lkZW50aWZpZXIuaCBcCi0JU291cmNlL1dlYktpdDIvUGxhdGZvcm0vUnVuTG9vcC5jcHAg
XAotCVNvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL1J1bkxvb3AuaCBcCiAJU291cmNlL1dlYktpdDIv
UGxhdGZvcm0vU2hhcmVkTWVtb3J5LmggXAogCVNvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL3VuaXgv
U2hhcmVkTWVtb3J5VW5peC5jcHAgXAogCVNvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL1dvcmtRdWV1
ZS5jcHAgXApAQCAtMTM2NCwxMSArMTM2MSw4IEBAIFByb2dyYW1zX1dlYktpdFBsdWdpblByb2Nl
c3NfU09VUkNFUyA9IFwKIAlTb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9Nb2R1bGUuaCBcCiAJU291
cmNlL1dlYktpdDIvUGxhdGZvcm0vV29ya1F1ZXVlLmNwcCBcCiAJU291cmNlL1dlYktpdDIvUGxh
dGZvcm0vV29ya1F1ZXVlLmggXAotCVNvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL1J1bkxvb3AuY3Bw
IFwKLQlTb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9SdW5Mb29wLmggXAogCVNvdXJjZS9XZWJLaXQy
L1BsYXRmb3JtL1NoYXJlZE1lbW9yeS5oIFwKIAlTb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9ndGsv
TW9kdWxlR3RrLmNwcCBcCi0JU291cmNlL1dlYktpdDIvUGxhdGZvcm0vZ3RrL1J1bkxvb3BHdGsu
Y3BwIFwKIAlTb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9ndGsvV29ya1F1ZXVlR3RrLmNwcCBcCiAJ
U291cmNlL1dlYktpdDIvUGxhdGZvcm0vdW5peC9TaGFyZWRNZW1vcnlVbml4LmNwcCBcCiAJU291
cmNlL1dlYktpdDIvUGx1Z2luUHJvY2Vzcy9QbHVnaW5Db250cm9sbGVyUHJveHkuY3BwIFwKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL0NvcmVJUEMvQ29ubmVjdGlvbi5jcHAg
Yi9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9Db3JlSVBDL0Nvbm5lY3Rpb24uY3BwCmluZGV4IDNl
MTdiYmQyMzNhYWQ2ZmVjNTlkNjhjNjA0ODIxYWNhZjI1NWM3YTIuLjNjMmYxNGNlZDAzZThmMDli
ZjA1Mzk2ODg5YjE4NGVmOGI4NWM1OWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1BsYXRm
b3JtL0NvcmVJUEMvQ29ubmVjdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvUGxhdGZvcm0v
Q29yZUlQQy9Db25uZWN0aW9uLmNwcApAQCAtMjgsMTAgKzI4LDExIEBACiAKICNpbmNsdWRlICJC
aW5hcnlTZW1hcGhvcmUuaCIKICNpbmNsdWRlICJDb3JlSVBDTWVzc2FnZUtpbmRzLmgiCi0jaW5j
bHVkZSAiUnVuTG9vcC5oIgorI2luY2x1ZGUgPFdlYkNvcmUvUnVuTG9vcC5oPgogI2luY2x1ZGUg
PHd0Zi9DdXJyZW50VGltZS5oPgogCiB1c2luZyBuYW1lc3BhY2Ugc3RkOwordXNpbmcgbmFtZXNw
YWNlIFdlYkNvcmU7CiAKIG5hbWVzcGFjZSBDb3JlSVBDIHsKIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdDIvUGxhdGZvcm0vQ29yZUlQQy9Db25uZWN0aW9uLmggYi9Tb3VyY2UvV2ViS2l0Mi9Q
bGF0Zm9ybS9Db3JlSVBDL0Nvbm5lY3Rpb24uaAppbmRleCBiYWZhOTk5MTg3NTNhZGE0YTdlOWU1
MDk2ZTdlNGFkZTQxNjE3YzBhLi44MTU1M2FlYjc2YmYwNGRhNzhiNzlkNzMwZDYyMzhlY2JlNGEz
NWYwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9Db3JlSVBDL0Nvbm5lY3Rp
b24uaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9Db3JlSVBDL0Nvbm5lY3Rpb24uaApA
QCAtNTAsNyArNTAsOSBAQCBjbGFzcyBRU29ja2V0Tm90aWZpZXI7CiAjaW5jbHVkZSAiUGxhdGZv
cm1Qcm9jZXNzSWRlbnRpZmllci5oIgogI2VuZGlmCiAKK25hbWVzcGFjZSBXZWJDb3JlIHsKIGNs
YXNzIFJ1bkxvb3A7Cit9CiAKIG5hbWVzcGFjZSBDb3JlSVBDIHsKIApAQCAtMTE4LDggKzEyMCw4
IEBAIHB1YmxpYzoKICAgICB0eXBlZGVmIGludCBJZGVudGlmaWVyOwogI2VuZGlmCiAKLSAgICBz
dGF0aWMgUGFzc1JlZlB0cjxDb25uZWN0aW9uPiBjcmVhdGVTZXJ2ZXJDb25uZWN0aW9uKElkZW50
aWZpZXIsIENsaWVudCosIFJ1bkxvb3AqIGNsaWVudFJ1bkxvb3ApOwotICAgIHN0YXRpYyBQYXNz
UmVmUHRyPENvbm5lY3Rpb24+IGNyZWF0ZUNsaWVudENvbm5lY3Rpb24oSWRlbnRpZmllciwgQ2xp
ZW50KiwgUnVuTG9vcCogY2xpZW50UnVuTG9vcCk7CisgICAgc3RhdGljIFBhc3NSZWZQdHI8Q29u
bmVjdGlvbj4gY3JlYXRlU2VydmVyQ29ubmVjdGlvbihJZGVudGlmaWVyLCBDbGllbnQqLCBXZWJD
b3JlOjpSdW5Mb29wKiBjbGllbnRSdW5Mb29wKTsKKyAgICBzdGF0aWMgUGFzc1JlZlB0cjxDb25u
ZWN0aW9uPiBjcmVhdGVDbGllbnRDb25uZWN0aW9uKElkZW50aWZpZXIsIENsaWVudCosIFdlYkNv
cmU6OlJ1bkxvb3AqIGNsaWVudFJ1bkxvb3ApOwogICAgIH5Db25uZWN0aW9uKCk7CiAKICNpZiBP
UyhEQVJXSU4pCkBAIC0yMDcsNyArMjA5LDcgQEAgcHVibGljOgogICAgIHR5cGVkZWYgTWVzc2Fn
ZTxBcmd1bWVudEVuY29kZXI+IE91dGdvaW5nTWVzc2FnZTsKIAogcHJpdmF0ZToKLSAgICBDb25u
ZWN0aW9uKElkZW50aWZpZXIsIGJvb2wgaXNTZXJ2ZXIsIENsaWVudCosIFJ1bkxvb3AqIGNsaWVu
dFJ1bkxvb3ApOworICAgIENvbm5lY3Rpb24oSWRlbnRpZmllciwgYm9vbCBpc1NlcnZlciwgQ2xp
ZW50KiwgV2ViQ29yZTo6UnVuTG9vcCogY2xpZW50UnVuTG9vcCk7CiAgICAgdm9pZCBwbGF0Zm9y
bUluaXRpYWxpemUoSWRlbnRpZmllcik7CiAgICAgdm9pZCBwbGF0Zm9ybUludmFsaWRhdGUoKTsK
ICAgICAKQEAgLTI1Myw3ICsyNTUsNyBAQCBwcml2YXRlOgogCiAgICAgYm9vbCBtX2lzQ29ubmVj
dGVkOwogICAgIFdvcmtRdWV1ZSBtX2Nvbm5lY3Rpb25RdWV1ZTsKLSAgICBSdW5Mb29wKiBtX2Ns
aWVudFJ1bkxvb3A7CisgICAgV2ViQ29yZTo6UnVuTG9vcCogbV9jbGllbnRSdW5Mb29wOwogCiAg
ICAgVmVjdG9yPFF1ZXVlQ2xpZW50Kj4gbV9jb25uZWN0aW9uUXVldWVDbGllbnRzOwogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9Db3JlSVBDL21hYy9Db25uZWN0aW9uTWFj
LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL0NvcmVJUEMvbWFjL0Nvbm5lY3Rpb25NYWMu
Y3BwCmluZGV4IDk3OTc1YWJlYWJhN2VmNzg5YTk3YTc5OTRiNDNmMjg1ZDZkOGY5YzQuLjExMTlh
Mjg0N2ViZmE5YzUxYzE0ODE4ODA3NzI2MDk4NTkxODYxMDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQyL1BsYXRmb3JtL0NvcmVJUEMvbWFjL0Nvbm5lY3Rpb25NYWMuY3BwCisrKyBiL1NvdXJj
ZS9XZWJLaXQyL1BsYXRmb3JtL0NvcmVJUEMvbWFjL0Nvbm5lY3Rpb25NYWMuY3BwCkBAIC0yOSwx
MSArMjksMTIgQEAKICNpbmNsdWRlICJDb3JlSVBDTWVzc2FnZUtpbmRzLmgiCiAjaW5jbHVkZSAi
TWFjaFBvcnQuaCIKICNpbmNsdWRlICJNYWNoVXRpbGl0aWVzLmgiCi0jaW5jbHVkZSAiUnVuTG9v
cC5oIgorI2luY2x1ZGUgPFdlYkNvcmUvUnVuTG9vcC5oPgogI2luY2x1ZGUgPG1hY2gvbWFjaF9l
cnJvci5oPgogI2luY2x1ZGUgPG1hY2gvdm1fbWFwLmg+CiAKIHVzaW5nIG5hbWVzcGFjZSBzdGQ7
Cit1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKIAogbmFtZXNwYWNlIENvcmVJUEMgewogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9SdW5Mb29wLmNwcCBiL1NvdXJjZS9XZWJL
aXQyL1BsYXRmb3JtL1J1bkxvb3AuY3BwCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBl
NDk1ZWNjNTgzYWNjYTYxYmEwNGJlMDM5OWI4ZjM1MzU3NDdmNjUwLi4wMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL1J1
bkxvb3AuY3BwCisrKyAvZGV2L251bGwKQEAgLTEsNzAgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdo
dCAoQykgMjAxMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Yg
c291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgot
ICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5k
L29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgot
ICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJ
QlVUT1JTIGBgQVMgSVMnJwotICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElF
UywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBUSEUgSU1QTElFRCBXQVJSQU5U
SUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQ
VVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElU
UyBDT05UUklCVVRPUlMKLSAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElO
Q0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKLSAqIENPTlNFUVVFTlRJQUwgREFNQUdF
UyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCi0gKiBTVUJT
VElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsg
T1IgQlVTSU5FU1MKLSAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBU
SEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCi0gKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJ
TElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQotICogQVJJ
U0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYg
QURWSVNFRCBPRgotICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNp
bmNsdWRlICJjb25maWcuaCIKLSNpbmNsdWRlICJSdW5Mb29wLmgiCi0KLSNpbmNsdWRlIDx3dGYv
U3RkTGliRXh0cmFzLmg+Ci0KLXN0YXRpYyBSdW5Mb29wKiBzX21haW5SdW5Mb29wOwotCi12b2lk
IFJ1bkxvb3A6OmluaXRpYWxpemVNYWluUnVuTG9vcCgpCi17Ci0gICAgaWYgKHNfbWFpblJ1bkxv
b3ApCi0gICAgICAgIHJldHVybjsKLSAgICBzX21haW5SdW5Mb29wID0gUnVuTG9vcDo6Y3VycmVu
dCgpOwotfQotCi1SdW5Mb29wKiBSdW5Mb29wOjpjdXJyZW50KCkKLXsKLSAgICBERUZJTkVfU1RB
VElDX0xPQ0FMKFdURjo6VGhyZWFkU3BlY2lmaWM8UnVuTG9vcD4sIHJ1bkxvb3BEYXRhLCAoKSk7
Ci0gICAgcmV0dXJuICYqcnVuTG9vcERhdGE7Ci19Ci0KLVJ1bkxvb3AqIFJ1bkxvb3A6Om1haW4o
KQotewotICAgIEFTU0VSVChzX21haW5SdW5Mb29wKTsKLSAgICByZXR1cm4gc19tYWluUnVuTG9v
cDsKLX0KLQotdm9pZCBSdW5Mb29wOjpwZXJmb3JtV29yaygpCi17Ci0gICAgVmVjdG9yPEZ1bmN0
aW9uPHZvaWQoKT4gPiBmdW5jdGlvblF1ZXVlOwotICAgIHsKLSAgICAgICAgTXV0ZXhMb2NrZXIg
bG9ja2VyKG1fZnVuY3Rpb25RdWV1ZUxvY2spOwotICAgICAgICBtX2Z1bmN0aW9uUXVldWUuc3dh
cChmdW5jdGlvblF1ZXVlKTsKLSAgICB9Ci0KLSAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IGZ1
bmN0aW9uUXVldWUuc2l6ZSgpOyArK2kpCi0gICAgICAgIGZ1bmN0aW9uUXVldWVbaV0oKTsKLX0K
LQotdm9pZCBSdW5Mb29wOjpkaXNwYXRjaChjb25zdCBGdW5jdGlvbjx2b2lkKCk+JiBmdW5jdGlv
bikKLXsKLSAgICBNdXRleExvY2tlciBsb2NrZXIobV9mdW5jdGlvblF1ZXVlTG9jayk7Ci0gICAg
bV9mdW5jdGlvblF1ZXVlLmFwcGVuZChmdW5jdGlvbik7Ci0KLSAgICB3YWtlVXAoKTsKLX0KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL1J1bkxvb3AuaCBiL1NvdXJjZS9XZWJL
aXQyL1BsYXRmb3JtL1J1bkxvb3AuaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNTdh
NzlhOGYzZjA2MGM0MDUzYTVlMmZiMDc0Mjg2YWNhNzMzNTBhYi4uMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9SdW5M
b29wLmgKKysrIC9kZXYvbnVsbApAQCAtMSwxNjEgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAo
QykgMjAxMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKiBDb3B5cmlnaHQgKEMp
IDIwMTAgTm9raWEgQ29ycG9yYXRpb24gYW5kL29yIGl0cyBzdWJzaWRpYXJ5KC1pZXMpCi0gKiBQ
b3J0aW9ucyBDb3B5cmlnaHQgKGMpIDIwMTAgTW90b3JvbGEgTW9iaWxpdHksIEluYy4gIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBt
ZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhl
IGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJp
bmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBp
biB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRl
ZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURF
RCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwotICogQU5EIEFO
WSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sCi0gKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQg
RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBO
TyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKLSAqIEJFIExJQUJM
RSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFS
WSwgT1IKLSAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sIFBST0NVUkVNRU5UIE9GCi0gKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBM
T1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKLSAqIElOVEVSUlVQVElP
TikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVS
IElOCi0gKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5F
R0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQotICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUg
VVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgotICogVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNpZm5kZWYgUnVuTG9vcF9oCi0jZGVmaW5lIFJ1
bkxvb3BfaAotCi0jaW5jbHVkZSA8d3RmL0ZvcndhcmQuaD4KLSNpbmNsdWRlIDx3dGYvRnVuY3Rp
b25hbC5oPgotI2luY2x1ZGUgPHd0Zi9IYXNoTWFwLmg+Ci0jaW5jbHVkZSA8d3RmL1Bhc3NPd25Q
dHIuaD4KLSNpbmNsdWRlIDx3dGYvVGhyZWFkU3BlY2lmaWMuaD4KLSNpbmNsdWRlIDx3dGYvVGhy
ZWFkaW5nLmg+Ci0jaW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgotI2lmIFBMQVRGT1JNKEdUSykKLSNp
bmNsdWRlIDx3dGYvZ29iamVjdC9HUmVmUHRyLmg+Ci10eXBlZGVmIHN0cnVjdCBfR1NvdXJjZSBH
U291cmNlOwotdHlwZWRlZiBzdHJ1Y3QgX0dNYWluTG9vcCBHTWFpbkxvb3A7Ci10eXBlZGVmIHN0
cnVjdCBfR01haW5Db250ZXh0IEdNYWluQ29udGV4dDsKLXR5cGVkZWYgaW50IGdib29sZWFuOwot
I2VuZGlmCi0KLWNsYXNzIFJ1bkxvb3AgewotcHVibGljOgotICAgIC8vIE11c3QgYmUgY2FsbGVk
IGZyb20gdGhlIG1haW4gdGhyZWFkLgotICAgIHN0YXRpYyB2b2lkIGluaXRpYWxpemVNYWluUnVu
TG9vcCgpOwotCi0gICAgc3RhdGljIFJ1bkxvb3AqIGN1cnJlbnQoKTsKLSAgICBzdGF0aWMgUnVu
TG9vcCogbWFpbigpOwotCi0gICAgdm9pZCBkaXNwYXRjaChjb25zdCBGdW5jdGlvbjx2b2lkKCk+
Jik7Ci0KLSAgICBzdGF0aWMgdm9pZCBydW4oKTsKLSAgICB2b2lkIHN0b3AoKTsKLQotI2lmIFBM
QVRGT1JNKE1BQykKLSAgICB2b2lkIHJ1bkZvckR1cmF0aW9uKGRvdWJsZSBkdXJhdGlvbik7Ci0j
ZW5kaWYKLSAgICAKLSAgICBjbGFzcyBUaW1lckJhc2UgewotICAgICAgICBmcmllbmQgY2xhc3Mg
UnVuTG9vcDsKLSAgICBwdWJsaWM6Ci0gICAgICAgIFRpbWVyQmFzZShSdW5Mb29wKik7Ci0gICAg
ICAgIHZpcnR1YWwgflRpbWVyQmFzZSgpOwotCi0gICAgICAgIHZvaWQgc3RhcnRSZXBlYXRpbmco
ZG91YmxlIHJlcGVhdEludGVydmFsKSB7IHN0YXJ0KHJlcGVhdEludGVydmFsLCB0cnVlKTsgfQot
ICAgICAgICB2b2lkIHN0YXJ0T25lU2hvdChkb3VibGUgaW50ZXJ2YWwpIHsgc3RhcnQoaW50ZXJ2
YWwsIGZhbHNlKTsgfQotCi0gICAgICAgIHZvaWQgc3RvcCgpOwotICAgICAgICBib29sIGlzQWN0
aXZlKCkgY29uc3Q7Ci0KLSAgICAgICAgdmlydHVhbCB2b2lkIGZpcmVkKCkgPSAwOwotCi0gICAg
cHJpdmF0ZToKLSAgICAgICAgdm9pZCBzdGFydChkb3VibGUgbmV4dEZpcmVJbnRlcnZhbCwgYm9v
bCByZXBlYXQpOwotCi0gICAgICAgIFJ1bkxvb3AqIG1fcnVuTG9vcDsKLQotI2lmIFBMQVRGT1JN
KFdJTikKLSAgICAgICAgc3RhdGljIHZvaWQgdGltZXJGaXJlZChSdW5Mb29wKiwgdWludDY0X3Qg
SUQpOwotICAgICAgICB1aW50NjRfdCBtX0lEOwotICAgICAgICBib29sIG1faXNSZXBlYXRpbmc7
Ci0jZWxpZiBQTEFURk9STShNQUMpCi0gICAgICAgIHN0YXRpYyB2b2lkIHRpbWVyRmlyZWQoQ0ZS
dW5Mb29wVGltZXJSZWYsIHZvaWQqKTsKLSAgICAgICAgQ0ZSdW5Mb29wVGltZXJSZWYgbV90aW1l
cjsKLSNlbGlmIFBMQVRGT1JNKFFUKQotICAgICAgICBzdGF0aWMgdm9pZCB0aW1lckZpcmVkKFJ1
bkxvb3AqLCBpbnQgSUQpOwotICAgICAgICBpbnQgbV9JRDsKLSAgICAgICAgYm9vbCBtX2lzUmVw
ZWF0aW5nOwotI2VsaWYgUExBVEZPUk0oR1RLKQotICAgICAgICBzdGF0aWMgZ2Jvb2xlYW4gdGlt
ZXJGaXJlZENhbGxiYWNrKFJ1bkxvb3A6OlRpbWVyQmFzZSopOwotICAgICAgICBnYm9vbGVhbiBp
c1JlcGVhdGluZygpIGNvbnN0IHsgcmV0dXJuIG1faXNSZXBlYXRpbmc7IH0KLSAgICAgICAgdm9p
ZCBjbGVhclRpbWVyU291cmNlKCk7Ci0gICAgICAgIEdSZWZQdHI8R1NvdXJjZT4gbV90aW1lclNv
dXJjZTsKLSAgICAgICAgZ2Jvb2xlYW4gbV9pc1JlcGVhdGluZzsKLSNlbmRpZgotICAgIH07Ci0K
LSAgICB0ZW1wbGF0ZSA8dHlwZW5hbWUgVGltZXJGaXJlZENsYXNzPgotICAgIGNsYXNzIFRpbWVy
IDogcHVibGljIFRpbWVyQmFzZSB7Ci0gICAgcHVibGljOgotICAgICAgICB0eXBlZGVmIHZvaWQg
KFRpbWVyRmlyZWRDbGFzczo6KlRpbWVyRmlyZWRGdW5jdGlvbikoKTsKLQotICAgICAgICBUaW1l
cihSdW5Mb29wKiBydW5Mb29wLCBUaW1lckZpcmVkQ2xhc3MqIG8sIFRpbWVyRmlyZWRGdW5jdGlv
biBmKQotICAgICAgICAgICAgOiBUaW1lckJhc2UocnVuTG9vcCkKLSAgICAgICAgICAgICwgbV9v
YmplY3QobykKLSAgICAgICAgICAgICwgbV9mdW5jdGlvbihmKQotICAgICAgICB7Ci0gICAgICAg
IH0KLQotICAgIHByaXZhdGU6Ci0gICAgICAgIHZpcnR1YWwgdm9pZCBmaXJlZCgpIHsgKG1fb2Jq
ZWN0LT4qbV9mdW5jdGlvbikoKTsgfQotCi0gICAgICAgIFRpbWVyRmlyZWRDbGFzcyogbV9vYmpl
Y3Q7Ci0gICAgICAgIFRpbWVyRmlyZWRGdW5jdGlvbiBtX2Z1bmN0aW9uOwotICAgIH07Ci0KLXBy
aXZhdGU6Ci0gICAgZnJpZW5kIGNsYXNzIFdURjo6VGhyZWFkU3BlY2lmaWM8UnVuTG9vcD47Ci0K
LSAgICBSdW5Mb29wKCk7Ci0gICAgflJ1bkxvb3AoKTsKLQotICAgIHZvaWQgcGVyZm9ybVdvcmso
KTsKLSAgICB2b2lkIHdha2VVcCgpOwotCi0gICAgTXV0ZXggbV9mdW5jdGlvblF1ZXVlTG9jazsK
LSAgICBWZWN0b3I8RnVuY3Rpb248dm9pZCgpPiA+IG1fZnVuY3Rpb25RdWV1ZTsKLQotI2lmIFBM
QVRGT1JNKFdJTikKLSAgICBzdGF0aWMgYm9vbCByZWdpc3RlclJ1bkxvb3BNZXNzYWdlV2luZG93
Q2xhc3MoKTsKLSAgICBzdGF0aWMgTFJFU1VMVCBDQUxMQkFDSyBSdW5Mb29wV25kUHJvYyhIV05E
LCBVSU5ULCBXUEFSQU0sIExQQVJBTSk7Ci0gICAgTFJFU1VMVCB3bmRQcm9jKEhXTkQgaFduZCwg
VUlOVCBtZXNzYWdlLCBXUEFSQU0gd1BhcmFtLCBMUEFSQU0gbFBhcmFtKTsKLSAgICBIV05EIG1f
cnVuTG9vcE1lc3NhZ2VXaW5kb3c7Ci0KLSAgICB0eXBlZGVmIEhhc2hNYXA8dWludDY0X3QsIFRp
bWVyQmFzZSo+IFRpbWVyTWFwOwotICAgIFRpbWVyTWFwIG1fYWN0aXZlVGltZXJzOwotI2VsaWYg
UExBVEZPUk0oTUFDKQotICAgIHN0YXRpYyB2b2lkIHBlcmZvcm1Xb3JrKHZvaWQqKTsKLSAgICBD
RlJ1bkxvb3BSZWYgbV9ydW5Mb29wOwotICAgIENGUnVuTG9vcFNvdXJjZVJlZiBtX3J1bkxvb3BT
b3VyY2U7Ci0gICAgaW50IG1fbmVzdGluZ0xldmVsOwotI2VsaWYgUExBVEZPUk0oUVQpCi0gICAg
dHlwZWRlZiBIYXNoTWFwPGludCwgVGltZXJCYXNlKj4gVGltZXJNYXA7Ci0gICAgVGltZXJNYXAg
bV9hY3RpdmVUaW1lcnM7Ci0gICAgY2xhc3MgVGltZXJPYmplY3Q7Ci0gICAgVGltZXJPYmplY3Qq
IG1fdGltZXJPYmplY3Q7Ci0jZWxpZiBQTEFURk9STShHVEspCi1wdWJsaWM6Ci0gICAgc3RhdGlj
IGdib29sZWFuIHF1ZXVlV29yayhSdW5Mb29wKik7Ci0gICAgR01haW5Mb29wKiBtYWluTG9vcCgp
OwotcHJpdmF0ZToKLSAgICBHTWFpbkNvbnRleHQqIG1fcnVuTG9vcENvbnRleHQ7Ci0gICAgR01h
aW5Mb29wKiBtX3J1bkxvb3BNYWluOwotI2VuZGlmCi19OwotCi0jZW5kaWYgLy8gUnVuTG9vcF9o
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9ndGsvUnVuTG9vcEd0ay5jcHAg
Yi9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9ndGsvUnVuTG9vcEd0ay5jcHAKZGVsZXRlZCBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDgxY2JlYWFmMTg3YzU5ZTFjZTcxZmU0NDI5Yjg2ZDFiOTY3MTY3
OTIuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNl
L1dlYktpdDIvUGxhdGZvcm0vZ3RrL1J1bkxvb3BHdGsuY3BwCisrKyAvZGV2L251bGwKQEAgLTEs
MTM0ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTAgQXBwbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgotICogUG9ydGlvbnMgQ29weXJpZ2h0IChjKSAyMDEwIE1vdG9yb2xhIE1v
YmlsaXR5LCBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICog
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBj
b2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJl
ZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29w
eXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhl
ciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMg
U09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBg
YEFTIElTJycKLSAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBN
RVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBB
UkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJ
QlVUT1JTCi0gKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFM
LCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCi0gKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgotICogU1VCU1RJVFVURSBH
T09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lO
RVNTCi0gKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9G
IExJQUJJTElUWSwgV0hFVEhFUiBJTgotICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9S
IFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKLSAqIEFSSVNJTkcgSU4g
QU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQg
T0YKLSAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jaW5jbHVkZSAi
Y29uZmlnLmgiCi0jaW5jbHVkZSAiUnVuTG9vcC5oIgotCi0jaW5jbHVkZSAiV0tCYXNlLmgiCi0j
aW5jbHVkZSA8Z2xpYi5oPgotCi1SdW5Mb29wOjpSdW5Mb29wKCkKLXsKLSAgICBtX3J1bkxvb3BD
b250ZXh0ID0gZ19tYWluX2NvbnRleHRfZGVmYXVsdCgpOwotICAgIEFTU0VSVChtX3J1bkxvb3BD
b250ZXh0KTsKLSAgICBtX3J1bkxvb3BNYWluID0gZ19tYWluX2xvb3BfbmV3KG1fcnVuTG9vcENv
bnRleHQsIEZBTFNFKTsKLSAgICBBU1NFUlQobV9ydW5Mb29wTWFpbik7Ci19Ci0KLVJ1bkxvb3A6
On5SdW5Mb29wKCkKLXsKLSAgICBpZiAobV9ydW5Mb29wTWFpbikgewotICAgICAgICBpZiAoZ19t
YWluX2xvb3BfaXNfcnVubmluZyhtX3J1bkxvb3BNYWluKSkKLSAgICAgICAgICAgIGdfbWFpbl9s
b29wX3F1aXQobV9ydW5Mb29wTWFpbik7Ci0gICAgICAgIGdfbWFpbl9sb29wX3VucmVmKG1fcnVu
TG9vcE1haW4pOwotICAgIH0KLQotICAgIGlmIChtX3J1bkxvb3BDb250ZXh0KQotICAgICAgICBn
X21haW5fY29udGV4dF91bnJlZihtX3J1bkxvb3BDb250ZXh0KTsKLX0KLQotdm9pZCBSdW5Mb29w
OjpydW4oKQotewotICAgIGdfbWFpbl9sb29wX3J1bihSdW5Mb29wOjptYWluKCktPm1haW5Mb29w
KCkpOwotfQotCi1HTWFpbkxvb3AqIFJ1bkxvb3A6Om1haW5Mb29wKCkKLXsKLSAgICByZXR1cm4g
bV9ydW5Mb29wTWFpbjsKLX0KLQotdm9pZCBSdW5Mb29wOjpzdG9wKCkKLXsKLSAgICBnX21haW5f
bG9vcF9xdWl0KG1fcnVuTG9vcE1haW4pOwotfQotCi1nYm9vbGVhbiBSdW5Mb29wOjpxdWV1ZVdv
cmsoUnVuTG9vcCogcnVuTG9vcCkKLXsKLSAgICBydW5Mb29wLT5wZXJmb3JtV29yaygpOwotICAg
IHJldHVybiBGQUxTRTsKLX0KLQotdm9pZCBSdW5Mb29wOjp3YWtlVXAoKQotewotICAgIEdSZWZQ
dHI8R1NvdXJjZT4gc291cmNlID0gYWRvcHRHUmVmKGdfaWRsZV9zb3VyY2VfbmV3KCkpOwotICAg
IGdfc291cmNlX3NldF9wcmlvcml0eShzb3VyY2UuZ2V0KCksIEdfUFJJT1JJVFlfREVGQVVMVCk7
Ci0gICAgZ19zb3VyY2Vfc2V0X2NhbGxiYWNrKHNvdXJjZS5nZXQoKSwgcmVpbnRlcnByZXRfY2Fz
dDxHU291cmNlRnVuYz4oJlJ1bkxvb3A6OnF1ZXVlV29yayksIHRoaXMsIDApOwotICAgIGdfc291
cmNlX2F0dGFjaChzb3VyY2UuZ2V0KCksIG1fcnVuTG9vcENvbnRleHQpOwotCi0gICAgZ19tYWlu
X2NvbnRleHRfd2FrZXVwKG1fcnVuTG9vcENvbnRleHQpOwotfQotCi1SdW5Mb29wOjpUaW1lckJh
c2U6OlRpbWVyQmFzZShSdW5Mb29wKiBydW5Mb29wKQotICAgIDogbV9ydW5Mb29wKHJ1bkxvb3Ap
Ci0gICAgLCBtX3RpbWVyU291cmNlKDApCi17Ci19Ci0KLVJ1bkxvb3A6OlRpbWVyQmFzZTo6flRp
bWVyQmFzZSgpCi17Ci0gICAgc3RvcCgpOwotfQotCi12b2lkIFJ1bkxvb3A6OlRpbWVyQmFzZTo6
Y2xlYXJUaW1lclNvdXJjZSgpCi17Ci0gICAgbV90aW1lclNvdXJjZSA9IDA7Ci19Ci0KLWdib29s
ZWFuIFJ1bkxvb3A6OlRpbWVyQmFzZTo6dGltZXJGaXJlZENhbGxiYWNrKFJ1bkxvb3A6OlRpbWVy
QmFzZSogdGltZXIpCi17Ci0gICAgR1NvdXJjZSogY3VycmVudFRpbWVyU291cmNlID0gdGltZXIt
Pm1fdGltZXJTb3VyY2UuZ2V0KCk7Ci0gICAgYm9vbCBpc1JlcGVhdGluZyA9IHRpbWVyLT5pc1Jl
cGVhdGluZygpOwotICAgIC8vIFRoaXMgY2FuIGNoYW5nZSB0aGUgdGltZXJTb3VyY2UgYnkgc3Rh
cnRpbmcgYSBuZXcgdGltZXIgd2l0aGluIHRoZSBjYWxsYmFjay4KLSAgICB0aW1lci0+ZmlyZWQo
KTsKLSAgICBpZiAoIWlzUmVwZWF0aW5nICYmIGN1cnJlbnRUaW1lclNvdXJjZSA9PSB0aW1lci0+
bV90aW1lclNvdXJjZS5nZXQoKSkKLSAgICAgICAgdGltZXItPmNsZWFyVGltZXJTb3VyY2UoKTsK
LSAgICByZXR1cm4gaXNSZXBlYXRpbmc7Ci19Ci0KLXZvaWQgUnVuTG9vcDo6VGltZXJCYXNlOjpz
dGFydChkb3VibGUgZmlyZUludGVydmFsLCBib29sIHJlcGVhdCkKLXsKLSAgICBpZiAobV90aW1l
clNvdXJjZSkKLSAgICAgICAgc3RvcCgpOwotCi0gICAgbV90aW1lclNvdXJjZSA9IGFkb3B0R1Jl
ZihnX3RpbWVvdXRfc291cmNlX25ldyhzdGF0aWNfY2FzdDxndWludD4oZmlyZUludGVydmFsICog
MTAwMCkpKTsKLSAgICBtX2lzUmVwZWF0aW5nID0gcmVwZWF0OwotICAgIGdfc291cmNlX3NldF9j
YWxsYmFjayhtX3RpbWVyU291cmNlLmdldCgpLCByZWludGVycHJldF9jYXN0PEdTb3VyY2VGdW5j
PigmUnVuTG9vcDo6VGltZXJCYXNlOjp0aW1lckZpcmVkQ2FsbGJhY2spLCB0aGlzLCAwKTsKLSAg
ICBnX3NvdXJjZV9hdHRhY2gobV90aW1lclNvdXJjZS5nZXQoKSwgbV9ydW5Mb29wLT5tX3J1bkxv
b3BDb250ZXh0KTsKLX0KLQotdm9pZCBSdW5Mb29wOjpUaW1lckJhc2U6OnN0b3AoKQotewotICAg
IGlmICghbV90aW1lclNvdXJjZSkKLSAgICAgICAgcmV0dXJuOwotCi0gICAgZ19zb3VyY2VfZGVz
dHJveShtX3RpbWVyU291cmNlLmdldCgpKTsKLSAgICBjbGVhclRpbWVyU291cmNlKCk7Ci19Ci0K
LWJvb2wgUnVuTG9vcDo6VGltZXJCYXNlOjppc0FjdGl2ZSgpIGNvbnN0Ci17Ci0gICAgcmV0dXJu
IG1fdGltZXJTb3VyY2U7Ci19CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9t
YWMvUnVuTG9vcE1hYy5tbSBiL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL21hYy9SdW5Mb29wTWFj
Lm1tCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwM2JiODZlOGQ5Mjc4MzJkYjgwMjIy
MjEzZjY0OTY4MzFkYmJhNDAzLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwCi0tLSBhL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL21hYy9SdW5Mb29wTWFjLm1tCisrKyAv
ZGV2L251bGwKQEAgLTEsMTUzICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTAgQXBw
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11
c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJp
YnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0
Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRl
cmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdB
UkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElT
JycKLSAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLAotICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFO
VEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElT
Q0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JT
Ci0gKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVD
SUFMLCBFWEVNUExBUlksIE9SCi0gKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgotICogU1VCU1RJVFVURSBHT09EUyBP
UiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCi0g
KiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJ
TElUWSwgV0hFVEhFUiBJTgotICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQg
KElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKLSAqIEFSSVNJTkcgSU4gQU5ZIFdB
WSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKLSAq
IFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jaW1wb3J0ICJjb25maWcu
aCIKLSNpbXBvcnQgIlJ1bkxvb3AuaCIKLQotdm9pZCBSdW5Mb29wOjpwZXJmb3JtV29yayh2b2lk
KiBjb250ZXh0KQotewotICAgIC8vIFdyYXAgbWFpbiB0aHJlYWQgaW4gYW4gQXV0b3JlbGVhc2Ug
cG9vbC4gIFNlbmRpbmcgbWVzc2FnZXMgY2FuIGNhbGwgCi0gICAgLy8gaW50byBvYmpjIGNvZGUg
YW5kIGFjY3VtdWxhdGUgbWVtb3J5LiAgCi0gICAgaWYgKGN1cnJlbnQoKSA9PSBtYWluKCkpIHsK
LSAgICAgICAgTlNBdXRvcmVsZWFzZVBvb2wgKnBvb2wgPSBbW05TQXV0b3JlbGVhc2VQb29sIGFs
bG9jXSBpbml0XTsKLSAgICAgICAgc3RhdGljX2Nhc3Q8UnVuTG9vcCo+KGNvbnRleHQpLT5wZXJm
b3JtV29yaygpOwotICAgICAgICBbcG9vbCBkcmFpbl07Ci0gICAgfSBlbHNlCi0gICAgICAgIHN0
YXRpY19jYXN0PFJ1bkxvb3AqPihjb250ZXh0KS0+cGVyZm9ybVdvcmsoKTsKLX0KLQotUnVuTG9v
cDo6UnVuTG9vcCgpCi0gICAgOiBtX3J1bkxvb3AoQ0ZSdW5Mb29wR2V0Q3VycmVudCgpKQotICAg
ICwgbV9uZXN0aW5nTGV2ZWwoMCkKLXsKLSAgICBDRlJ1bkxvb3BTb3VyY2VDb250ZXh0IGNvbnRl
eHQgPSB7IDAsIHRoaXMsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIHBlcmZvcm1Xb3JrIH07Ci0gICAg
bV9ydW5Mb29wU291cmNlID0gQ0ZSdW5Mb29wU291cmNlQ3JlYXRlKGtDRkFsbG9jYXRvckRlZmF1
bHQsIDAsICZjb250ZXh0KTsKLSAgICBDRlJ1bkxvb3BBZGRTb3VyY2UobV9ydW5Mb29wLCBtX3J1
bkxvb3BTb3VyY2UsIGtDRlJ1bkxvb3BDb21tb25Nb2Rlcyk7Ci19Ci0KLVJ1bkxvb3A6On5SdW5M
b29wKCkKLXsKLSAgICAvLyBGSVhNRTogVGVhciBkb3duIHRoZSB3b3JrIGl0ZW0gcXVldWUgaGVy
ZS4KLSAgICBDRlJ1bkxvb3BTb3VyY2VJbnZhbGlkYXRlKG1fcnVuTG9vcFNvdXJjZSk7Ci0gICAg
Q0ZSZWxlYXNlKG1fcnVuTG9vcFNvdXJjZSk7Ci19Ci0KLXZvaWQgUnVuTG9vcDo6cnVuKCkKLXsK
LSAgICBjdXJyZW50KCktPm1fbmVzdGluZ0xldmVsKys7Ci0gICAgaWYgKGN1cnJlbnQoKSA9PSBt
YWluKCkgJiYgY3VycmVudCgpLT5tX25lc3RpbmdMZXZlbCA9PSAxKSB7Ci0gICAgICAgIC8vIFVz
ZSAtW05TQXBwbGljYXRpb24gcnVuXSBmb3IgdGhlIG1haW4gcnVuIGxvb3AuCi0gICAgICAgIFtO
U0FwcCBydW5dOwotICAgIH0gZWxzZSB7Ci0gICAgICAgIE5TQXV0b3JlbGVhc2VQb29sICpwb29s
ID0gW1tOU0F1dG9yZWxlYXNlUG9vbCBhbGxvY10gaW5pdF07Ci0gICAgICAgIENGUnVuTG9vcFJ1
bigpOwotICAgICAgICBbcG9vbCBkcmFpbl07Ci0gICAgfQotICAgIGN1cnJlbnQoKS0+bV9uZXN0
aW5nTGV2ZWwtLTsKLX0KLQotdm9pZCBSdW5Mb29wOjpydW5Gb3JEdXJhdGlvbihkb3VibGUgZHVy
YXRpb24pCi17Ci0gICAgQ0ZSdW5Mb29wUnVuSW5Nb2RlKGtDRlJ1bkxvb3BEZWZhdWx0TW9kZSwg
ZHVyYXRpb24sIHRydWUpOwotfQotCi12b2lkIFJ1bkxvb3A6OnN0b3AoKQotewotICAgIEFTU0VS
VChtX3J1bkxvb3AgPT0gQ0ZSdW5Mb29wR2V0Q3VycmVudCgpKTsKLSAgICAKLSAgICBpZiAobV9y
dW5Mb29wID09IG1haW4oKS0+bV9ydW5Mb29wICYmIG1fbmVzdGluZ0xldmVsID09IDEpIHsKLSAg
ICAgICAgW05TQXBwIHN0b3A6bmlsXTsKLSAgICAgICAgTlNFdmVudCAqZXZlbnQgPSBbTlNFdmVu
dCBvdGhlckV2ZW50V2l0aFR5cGU6TlNBcHBsaWNhdGlvbkRlZmluZWQKLSAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9jYXRpb246TlNNYWtlUG9pbnQoMCwgMCkK
LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1vZGlmaWVyRmxhZ3M6MAot
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRpbWVzdGFtcDowLjAK
LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2luZG93TnVtYmVyOjAK
LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRleHQ6bmls
Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdWJ0eXBlOiAw
Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGExOjAK
LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0YTI6MF07
Ci0gICAgICAgIFtOU0FwcCBwb3N0RXZlbnQ6ZXZlbnQgYXRTdGFydDp0cnVlXTsKLSAgICB9IGVs
c2UKLSAgICAgICAgQ0ZSdW5Mb29wU3RvcChtX3J1bkxvb3ApOwotfQotCi12b2lkIFJ1bkxvb3A6
Ondha2VVcCgpCi17Ci0gICAgQ0ZSdW5Mb29wU291cmNlU2lnbmFsKG1fcnVuTG9vcFNvdXJjZSk7
Ci0gICAgQ0ZSdW5Mb29wV2FrZVVwKG1fcnVuTG9vcCk7Ci19Ci0KLS8vIFJ1bkxvb3A6OlRpbWVy
Ci0KLXZvaWQgUnVuTG9vcDo6VGltZXJCYXNlOjp0aW1lckZpcmVkKENGUnVuTG9vcFRpbWVyUmVm
LCB2b2lkKiBjb250ZXh0KQotewotICAgIFRpbWVyQmFzZSogdGltZXIgPSBzdGF0aWNfY2FzdDxU
aW1lckJhc2UqPihjb250ZXh0KTsKLSAgICAKLSAgICAvLyBXcmFwIG1haW4gdGhyZWFkIGluIGFu
IEF1dG9yZWxlYXNlIHBvb2wuICBUaGUgdGltZXIgY2FuIGNhbGwgCi0gICAgLy8gaW50byBvYmpj
IGNvZGUgYW5kIGFjY3VtdWxhdGUgbWVtb3J5IG91dHNpZGUgb2YgdGhlIG1haW4gZXZlbnQgbG9v
cC4KLSAgICBpZiAoY3VycmVudCgpID09IG1haW4oKSkgewotICAgICAgICBOU0F1dG9yZWxlYXNl
UG9vbCAqcG9vbCA9IFtbTlNBdXRvcmVsZWFzZVBvb2wgYWxsb2NdIGluaXRdOyAKLSAgICAgICAg
dGltZXItPmZpcmVkKCk7Ci0gICAgICAgIFtwb29sIGRyYWluXTsKLSAgICB9IGVsc2UKLSAgICAg
ICAgdGltZXItPmZpcmVkKCk7Ci19Ci0KLVJ1bkxvb3A6OlRpbWVyQmFzZTo6VGltZXJCYXNlKFJ1
bkxvb3AqIHJ1bkxvb3ApCi0gICAgOiBtX3J1bkxvb3AocnVuTG9vcCkKLSAgICAsIG1fdGltZXIo
MCkKLXsKLX0KLQotUnVuTG9vcDo6VGltZXJCYXNlOjp+VGltZXJCYXNlKCkKLXsKLSAgICBzdG9w
KCk7Ci19Ci0KLXZvaWQgUnVuTG9vcDo6VGltZXJCYXNlOjpzdGFydChkb3VibGUgbmV4dEZpcmVJ
bnRlcnZhbCwgYm9vbCByZXBlYXQpCi17Ci0gICAgaWYgKG1fdGltZXIpCi0gICAgICAgIHN0b3Ao
KTsKLQotICAgIENGUnVuTG9vcFRpbWVyQ29udGV4dCBjb250ZXh0ID0geyAwLCB0aGlzLCAwLCAw
LCAwIH07Ci0gICAgQ0ZUaW1lSW50ZXJ2YWwgcmVwZWF0SW50ZXJ2YWwgPSByZXBlYXQgPyBuZXh0
RmlyZUludGVydmFsIDogMDsKLSAgICBtX3RpbWVyID0gQ0ZSdW5Mb29wVGltZXJDcmVhdGUoa0NG
QWxsb2NhdG9yRGVmYXVsdCwgQ0ZBYnNvbHV0ZVRpbWVHZXRDdXJyZW50KCkgKyBuZXh0RmlyZUlu
dGVydmFsLCByZXBlYXRJbnRlcnZhbCwgMCwgMCwgdGltZXJGaXJlZCwgJmNvbnRleHQpOwotICAg
IENGUnVuTG9vcEFkZFRpbWVyKG1fcnVuTG9vcC0+bV9ydW5Mb29wLCBtX3RpbWVyLCBrQ0ZSdW5M
b29wQ29tbW9uTW9kZXMpOwotfQotCi12b2lkIFJ1bkxvb3A6OlRpbWVyQmFzZTo6c3RvcCgpCi17
Ci0gICAgaWYgKCFtX3RpbWVyKQotICAgICAgICByZXR1cm47Ci0KLSAgICBDRlJ1bkxvb3BUaW1l
ckludmFsaWRhdGUobV90aW1lcik7Ci0gICAgQ0ZSZWxlYXNlKG1fdGltZXIpOwotICAgIG1fdGlt
ZXIgPSAwOwotfQotCi1ib29sIFJ1bkxvb3A6OlRpbWVyQmFzZTo6aXNBY3RpdmUoKSBjb25zdAot
ewotICAgIHJldHVybiBtX3RpbWVyICYmIENGUnVuTG9vcFRpbWVySXNWYWxpZChtX3RpbWVyKTsK
LX0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL3F0L1J1bkxvb3BRdC5jcHAg
Yi9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9xdC9SdW5Mb29wUXQuY3BwCmRlbGV0ZWQgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDdhMGE1YjFhZmUwOTgwMzk4OTA5YWI3MGJiNzNiOWQ5ZjA4ZGU3
Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9X
ZWJLaXQyL1BsYXRmb3JtL3F0L1J1bkxvb3BRdC5jcHAKKysrIC9kZXYvbnVsbApAQCAtMSwxNjMg
KzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMCBBcHBsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTAgTm9raWEgQ29ycG9yYXRpb24gYW5kL29y
IGl0cyBzdWJzaWRpYXJ5KC1pZXMpCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAq
IGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRh
aW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25z
IGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBw
cm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQ
Uk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwotICog
QU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sCi0gKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElU
WSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVE
LiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKLSAqIEJF
IExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVY
RU1QTEFSWSwgT1IKLSAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCi0gKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJ
Q0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKLSAqIElOVEVS
UlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBX
SEVUSEVSIElOCi0gKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVE
SU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQotICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBP
RiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgotICogVEhFIFBP
U1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNpbmNsdWRlICJjb25maWcuaCIKLSNp
bmNsdWRlICJSdW5Mb29wLmgiCi0KLSNpbmNsdWRlIDxRQ29yZUFwcGxpY2F0aW9uPgotI2luY2x1
ZGUgPFFBYnN0cmFjdEV2ZW50RGlzcGF0Y2hlcj4KLSNpbmNsdWRlIDxRT2JqZWN0PgotI2luY2x1
ZGUgPFFNZXRhTWV0aG9kPgotI2luY2x1ZGUgPFFNZXRhT2JqZWN0PgotI2luY2x1ZGUgPFFUaW1l
ckV2ZW50PgotCi1jbGFzcyBSdW5Mb29wOjpUaW1lck9iamVjdCA6IHB1YmxpYyBRT2JqZWN0Ci17
Ci0gICAgUV9PQkpFQ1QKLXB1YmxpYzoKLSAgICBUaW1lck9iamVjdChSdW5Mb29wKiBydW5Mb29w
KSA6IG1fcnVuTG9vcChydW5Mb29wKQotICAgIHsKLSAgICAgICAgaW50IG1ldGhvZEluZGV4ID0g
bWV0YU9iamVjdCgpLT5pbmRleE9mTWV0aG9kKCJwZXJmb3JtV29yaygpIik7Ci0gICAgICAgIG1f
bWV0aG9kID0gbWV0YU9iamVjdCgpLT5tZXRob2QobWV0aG9kSW5kZXgpOwotICAgIH0KLQotICAg
IFFfU0xPVCB2b2lkIHBlcmZvcm1Xb3JrKCkgeyBtX3J1bkxvb3AtPnBlcmZvcm1Xb3JrKCk7IH0K
LSAgICBpbmxpbmUgdm9pZCB3YWtlVXAoKSB7IG1fbWV0aG9kLmludm9rZSh0aGlzLCBRdDo6UXVl
dWVkQ29ubmVjdGlvbik7IH0KLQotcHJvdGVjdGVkOgotICAgIHZpcnR1YWwgdm9pZCB0aW1lckV2
ZW50KFFUaW1lckV2ZW50KiBldmVudCkKLSAgICB7Ci0gICAgICAgIFJ1bkxvb3A6OlRpbWVyQmFz
ZTo6dGltZXJGaXJlZChtX3J1bkxvb3AsIGV2ZW50LT50aW1lcklkKCkpOwotICAgIH0KLQotcHJp
dmF0ZToKLSAgICBSdW5Mb29wKiBtX3J1bkxvb3A7Ci0gICAgUU1ldGFNZXRob2QgbV9tZXRob2Q7
Ci19OwotCi1zdGF0aWMgUUV2ZW50TG9vcCogY3VycmVudEV2ZW50TG9vcDsKLQotdm9pZCBSdW5M
b29wOjpydW4oKQotewotICAgIHN0YXRpYyBib29sIG1haW5FdmVudExvb3BJc1J1bm5pbmcgPSBm
YWxzZTsKLSAgICBpZiAoIW1haW5FdmVudExvb3BJc1J1bm5pbmcpIHsKLSAgICAgICAgbWFpbkV2
ZW50TG9vcElzUnVubmluZyA9IHRydWU7Ci0gICAgICAgIFFDb3JlQXBwbGljYXRpb246OmV4ZWMo
KTsKLSAgICAgICAgbWFpbkV2ZW50TG9vcElzUnVubmluZyA9IGZhbHNlOwotICAgIH0gZWxzZSB7
Ci0gICAgICAgIFFFdmVudExvb3AgZXZlbnRMb29wOwotCi0gICAgICAgIFFFdmVudExvb3AqIHBy
ZXZpb3VzRXZlbnRMb29wID0gY3VycmVudEV2ZW50TG9vcDsKLSAgICAgICAgY3VycmVudEV2ZW50
TG9vcCA9ICZldmVudExvb3A7Ci0KLSAgICAgICAgZXZlbnRMb29wLmV4ZWMoKTsKLQotICAgICAg
ICBjdXJyZW50RXZlbnRMb29wID0gcHJldmlvdXNFdmVudExvb3A7Ci0gICAgfQotfQotCi12b2lk
IFJ1bkxvb3A6OnN0b3AoKQotewotICAgIGlmIChjdXJyZW50RXZlbnRMb29wKQotICAgICAgICBj
dXJyZW50RXZlbnRMb29wLT5leGl0KCk7Ci0gICAgZWxzZQotICAgICAgICBRQ29yZUFwcGxpY2F0
aW9uOjpleGl0KCk7Ci19Ci0KLVJ1bkxvb3A6OlJ1bkxvb3AoKQotICAgIDogbV90aW1lck9iamVj
dChuZXcgVGltZXJPYmplY3QodGhpcykpCi17Ci19Ci0KLVJ1bkxvb3A6On5SdW5Mb29wKCkKLXsK
LSAgICBkZWxldGUgbV90aW1lck9iamVjdDsKLX0KLQotdm9pZCBSdW5Mb29wOjp3YWtlVXAoKQot
ewotICAgIG1fdGltZXJPYmplY3QtPndha2VVcCgpOwotfQotCi0vLyBSdW5Mb29wOjpUaW1lcgot
Ci12b2lkIFJ1bkxvb3A6OlRpbWVyQmFzZTo6dGltZXJGaXJlZChSdW5Mb29wKiBydW5Mb29wLCBp
bnQgSUQpCi17Ci0gICAgVGltZXJNYXA6Oml0ZXJhdG9yIGl0ID0gcnVuTG9vcC0+bV9hY3RpdmVU
aW1lcnMuZmluZChJRCk7Ci0gICAgQVNTRVJUKGl0ICE9IHJ1bkxvb3AtPm1fYWN0aXZlVGltZXJz
LmVuZCgpKTsKLSAgICBUaW1lckJhc2UqIHRpbWVyID0gaXQtPnNlY29uZDsKLQotICAgIGlmICgh
dGltZXItPm1faXNSZXBlYXRpbmcpIHsKLSAgICAgICAgLy8gU3RvcCB0aGUgdGltZXIgKGNhbGxp
bmcgc3RvcCB3b3VsZCBuZWVkIGFub3RoZXIgaGFzaCB0YWJsZSBsb29rdXApLgotICAgICAgICBy
dW5Mb29wLT5tX2FjdGl2ZVRpbWVycy5yZW1vdmUoaXQpOwotICAgICAgICBydW5Mb29wLT5tX3Rp
bWVyT2JqZWN0LT5raWxsVGltZXIodGltZXItPm1fSUQpOwotICAgICAgICB0aW1lci0+bV9JRCA9
IDA7Ci0gICAgfQotCi0gICAgdGltZXItPmZpcmVkKCk7Ci19Ci0KLVJ1bkxvb3A6OlRpbWVyQmFz
ZTo6VGltZXJCYXNlKFJ1bkxvb3AqIHJ1bkxvb3ApCi0gICAgOiBtX3J1bkxvb3AocnVuTG9vcCkK
LSAgICAsIG1fSUQoMCkKLSAgICAsIG1faXNSZXBlYXRpbmcoZmFsc2UpCi17Ci19Ci0KLVJ1bkxv
b3A6OlRpbWVyQmFzZTo6flRpbWVyQmFzZSgpCi17Ci0gICAgc3RvcCgpOwotfQotCi12b2lkIFJ1
bkxvb3A6OlRpbWVyQmFzZTo6c3RhcnQoZG91YmxlIG5leHRGaXJlSW50ZXJ2YWwsIGJvb2wgcmVw
ZWF0KQotewotICAgIHN0b3AoKTsKLSAgICBpbnQgbWlsbGlzID0gc3RhdGljX2Nhc3Q8aW50Pihu
ZXh0RmlyZUludGVydmFsICogMTAwMCk7Ci0gICAgbV9pc1JlcGVhdGluZyA9IHJlcGVhdDsKLSAg
ICBtX0lEID0gbV9ydW5Mb29wLT5tX3RpbWVyT2JqZWN0LT5zdGFydFRpbWVyKG1pbGxpcyk7Ci0g
ICAgQVNTRVJUKG1fSUQpOwotICAgIG1fcnVuTG9vcC0+bV9hY3RpdmVUaW1lcnMuc2V0KG1fSUQs
IHRoaXMpOwotfQotCi12b2lkIFJ1bkxvb3A6OlRpbWVyQmFzZTo6c3RvcCgpCi17Ci0gICAgaWYg
KCFtX0lEKQotICAgICAgICByZXR1cm47Ci0gICAgVGltZXJNYXA6Oml0ZXJhdG9yIGl0ID0gbV9y
dW5Mb29wLT5tX2FjdGl2ZVRpbWVycy5maW5kKG1fSUQpOwotICAgIGlmIChpdCA9PSBtX3J1bkxv
b3AtPm1fYWN0aXZlVGltZXJzLmVuZCgpKQotICAgICAgICByZXR1cm47Ci0KLSAgICBtX3J1bkxv
b3AtPm1fYWN0aXZlVGltZXJzLnJlbW92ZShpdCk7Ci0gICAgbV9ydW5Mb29wLT5tX3RpbWVyT2Jq
ZWN0LT5raWxsVGltZXIobV9JRCk7Ci0gICAgbV9JRCA9IDA7Ci19Ci0KLWJvb2wgUnVuTG9vcDo6
VGltZXJCYXNlOjppc0FjdGl2ZSgpIGNvbnN0Ci17Ci0gICAgcmV0dXJuIG1fSUQ7Ci19Ci0KLSNp
bmNsdWRlICJSdW5Mb29wUXQubW9jIgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvUGxhdGZv
cm0vd2luL1J1bkxvb3BXaW4uY3BwIGIvU291cmNlL1dlYktpdDIvUGxhdGZvcm0vd2luL1J1bkxv
b3BXaW4uY3BwCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBkZmJjYWVlNTYyZTY1MzU5
MTFhZWFjZDFmZmIwNDliZTE3OGYwMWY1Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL3dpbi9SdW5Mb29wV2luLmNw
cAorKysgL2Rldi9udWxsCkBAIC0xLDE3OSArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAy
MDEwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAq
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2Ug
Y29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBS
ZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNv
cHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3Ro
ZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElT
IFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMg
YGBBUyBJUycnCi0gKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0Yg
TUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0Ug
QVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRS
SUJVVE9SUwotICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRB
TCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgotICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKLSAqIFNVQlNUSVRVVEUg
R09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJ
TkVTUwotICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBP
RiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KLSAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBP
UiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCi0gKiBBUklTSU5HIElO
IEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GCi0gKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI2luY2x1ZGUg
ImNvbmZpZy5oIgotI2luY2x1ZGUgIlJ1bkxvb3AuaCIKLQotI2luY2x1ZGUgIkJpbmFyeVNlbWFw
aG9yZS5oIgotI2luY2x1ZGUgPHd0Zi9DdXJyZW50VGltZS5oPgotCi11c2luZyBuYW1lc3BhY2Ug
Q29yZUlQQzsKLXVzaW5nIG5hbWVzcGFjZSBzdGQ7Ci0KLXN0YXRpYyBjb25zdCBVSU5UIFBlcmZv
cm1Xb3JrTWVzc2FnZSA9IFdNX1VTRVIgKyAxOwotc3RhdGljIGNvbnN0IExQV1NUUiBrUnVuTG9v
cE1lc3NhZ2VXaW5kb3dDbGFzc05hbWUgPSBMIlJ1bkxvb3BNZXNzYWdlV2luZG93IjsKLQotTFJF
U1VMVCBDQUxMQkFDSyBSdW5Mb29wOjpSdW5Mb29wV25kUHJvYyhIV05EIGhXbmQsIFVJTlQgbWVz
c2FnZSwgV1BBUkFNIHdQYXJhbSwgTFBBUkFNIGxQYXJhbSkKLXsKLSAgICBMT05HX1BUUiBsb25n
UHRyID0gOjpHZXRXaW5kb3dMb25nUHRyKGhXbmQsIDApOwotICAgIAotICAgIGlmIChSdW5Mb29w
KiBydW5Mb29wID0gcmVpbnRlcnByZXRfY2FzdDxSdW5Mb29wKj4obG9uZ1B0cikpCi0gICAgICAg
IHJldHVybiBydW5Mb29wLT53bmRQcm9jKGhXbmQsIG1lc3NhZ2UsIHdQYXJhbSwgbFBhcmFtKTsK
LQotICAgIGlmIChtZXNzYWdlID09IFdNX0NSRUFURSkgewotICAgICAgICBMUENSRUFURVNUUlVD
VCBjcmVhdGVTdHJ1Y3QgPSByZWludGVycHJldF9jYXN0PExQQ1JFQVRFU1RSVUNUPihsUGFyYW0p
OwotCi0gICAgICAgIC8vIEFzc29jaWF0ZSB0aGUgUnVuTG9vcCB3aXRoIHRoZSB3aW5kb3cuCi0g
ICAgICAgIDo6U2V0V2luZG93TG9uZ1B0cihoV25kLCAwLCAoTE9OR19QVFIpY3JlYXRlU3RydWN0
LT5scENyZWF0ZVBhcmFtcyk7Ci0gICAgICAgIHJldHVybiAwOwotICAgIH0KLQotICAgIHJldHVy
biA6OkRlZldpbmRvd1Byb2MoaFduZCwgbWVzc2FnZSwgd1BhcmFtLCBsUGFyYW0pOwotfQotCi1M
UkVTVUxUIFJ1bkxvb3A6OnduZFByb2MoSFdORCBoV25kLCBVSU5UIG1lc3NhZ2UsIFdQQVJBTSB3
UGFyYW0sIExQQVJBTSBsUGFyYW0pCi17Ci0gICAgc3dpdGNoIChtZXNzYWdlKSB7Ci0gICAgY2Fz
ZSBQZXJmb3JtV29ya01lc3NhZ2U6Ci0gICAgICAgIHBlcmZvcm1Xb3JrKCk7Ci0gICAgICAgIHJl
dHVybiAwOwotICAgIGNhc2UgV01fVElNRVI6Ci0gICAgICAgIFJ1bkxvb3A6OlRpbWVyQmFzZTo6
dGltZXJGaXJlZCh0aGlzLCB3UGFyYW0pOwotICAgICAgICByZXR1cm4gMDsKLSAgICB9Ci0KLSAg
ICByZXR1cm4gOjpEZWZXaW5kb3dQcm9jKGhXbmQsIG1lc3NhZ2UsIHdQYXJhbSwgbFBhcmFtKTsK
LX0KLQotdm9pZCBSdW5Mb29wOjpydW4oKQotewotICAgIE1TRyBtZXNzYWdlOwotICAgIHdoaWxl
IChCT09MIHJlc3VsdCA9IDo6R2V0TWVzc2FnZSgmbWVzc2FnZSwgMCwgMCwgMCkpIHsKLSAgICAg
ICAgaWYgKHJlc3VsdCA9PSAtMSkKLSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICA6OlRyYW5z
bGF0ZU1lc3NhZ2UoJm1lc3NhZ2UpOwotICAgICAgICA6OkRpc3BhdGNoTWVzc2FnZSgmbWVzc2Fn
ZSk7Ci0gICAgfQotfQotCi12b2lkIFJ1bkxvb3A6OnN0b3AoKQotewotICAgIDo6UG9zdFF1aXRN
ZXNzYWdlKDApOwotfQotCi1ib29sIFJ1bkxvb3A6OnJlZ2lzdGVyUnVuTG9vcE1lc3NhZ2VXaW5k
b3dDbGFzcygpCi17Ci0gICAgLy8gRklYTUU6IFRoaXMgcmVhbGx5IG9ubHkgbmVlZHMgdG8gYmUg
Y2FsbGVkIG9uY2UuCi0KLSAgICBXTkRDTEFTU0VYIHdpbmRvd0NsYXNzID0geyAwIH07Ci0gICAg
d2luZG93Q2xhc3MuY2JTaXplICAgICAgICAgID0gc2l6ZW9mKHdpbmRvd0NsYXNzKTsKLSAgICB3
aW5kb3dDbGFzcy5scGZuV25kUHJvYyAgICAgPSBSdW5Mb29wOjpSdW5Mb29wV25kUHJvYzsKLSAg
ICB3aW5kb3dDbGFzcy5jYlduZEV4dHJhICAgICAgPSBzaXplb2YoUnVuTG9vcCopOwotICAgIHdp
bmRvd0NsYXNzLmxwc3pDbGFzc05hbWUgICA9IGtSdW5Mb29wTWVzc2FnZVdpbmRvd0NsYXNzTmFt
ZTsKLQotICAgIHJldHVybiAhITo6UmVnaXN0ZXJDbGFzc0V4KCZ3aW5kb3dDbGFzcyk7Ci19Ci0K
LVJ1bkxvb3A6OlJ1bkxvb3AoKQotewotICAgIHJlZ2lzdGVyUnVuTG9vcE1lc3NhZ2VXaW5kb3dD
bGFzcygpOwotCi0gICAgbV9ydW5Mb29wTWVzc2FnZVdpbmRvdyA9IDo6Q3JlYXRlV2luZG93KGtS
dW5Mb29wTWVzc2FnZVdpbmRvd0NsYXNzTmFtZSwgMCwgMCwKLSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgQ1dfVVNFREVGQVVMVCwgMCwgQ1dfVVNFREVGQVVMVCwg
MCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSFdORF9NRVNT
QUdFLCAwLCAwLCB0aGlzKTsKLSAgICBBU1NFUlQoOjpJc1dpbmRvdyhtX3J1bkxvb3BNZXNzYWdl
V2luZG93KSk7Ci19Ci0KLVJ1bkxvb3A6On5SdW5Mb29wKCkKLXsKLSAgICAvLyBGSVhNRTogVGVh
ciBkb3duIHRoZSB3b3JrIGl0ZW0gcXVldWUgaGVyZS4KLX0KLQotdm9pZCBSdW5Mb29wOjp3YWtl
VXAoKQotewotICAgIC8vIEZJWE1FOiBObyBuZWVkIHRvIHdha2UgdXAgdGhlIHJ1biBsb29wIGlm
IHdlJ3ZlIGFscmVhZHkgY2FsbGVkIGRpc3BhdGNoCi0gICAgLy8gYmVmb3JlIHRoZSBydW4gbG9v
cCBoYXMgaGFkIHRoZSB0aW1lIHRvIHJlc3BvbmQuCi0gICAgOjpQb3N0TWVzc2FnZShtX3J1bkxv
b3BNZXNzYWdlV2luZG93LCBQZXJmb3JtV29ya01lc3NhZ2UsIHJlaW50ZXJwcmV0X2Nhc3Q8V1BB
UkFNPih0aGlzKSwgMCk7Ci19Ci0KLS8vIFJ1bkxvb3A6OlRpbWVyCi0KLXZvaWQgUnVuTG9vcDo6
VGltZXJCYXNlOjp0aW1lckZpcmVkKFJ1bkxvb3AqIHJ1bkxvb3AsIHVpbnQ2NF90IElEKQotewot
ICAgIFRpbWVyTWFwOjppdGVyYXRvciBpdCA9IHJ1bkxvb3AtPm1fYWN0aXZlVGltZXJzLmZpbmQo
SUQpOwotICAgIGlmIChpdCA9PSBydW5Mb29wLT5tX2FjdGl2ZVRpbWVycy5lbmQoKSkgewotICAg
ICAgICAvLyBUaGUgdGltZXIgbXVzdCBoYXZlIGJlZW4gc3RvcHBlZCBhZnRlciB0aGUgV01fVElN
RVIgbWVzc2FnZSB3YXMgcG9zdGVkIHRvIHRoZSBtZXNzYWdlIHF1ZXVlLgotICAgICAgICByZXR1
cm47Ci0gICAgfQotCi0gICAgVGltZXJCYXNlKiB0aW1lciA9IGl0LT5zZWNvbmQ7Ci0KLSAgICBp
ZiAoIXRpbWVyLT5tX2lzUmVwZWF0aW5nKSB7Ci0gICAgICAgIHJ1bkxvb3AtPm1fYWN0aXZlVGlt
ZXJzLnJlbW92ZShpdCk7Ci0gICAgICAgIDo6S2lsbFRpbWVyKHJ1bkxvb3AtPm1fcnVuTG9vcE1l
c3NhZ2VXaW5kb3csIElEKTsKLSAgICB9Ci0KLSAgICB0aW1lci0+ZmlyZWQoKTsKLX0KLQotc3Rh
dGljIHVpbnQ2NF90IGdlbmVyYXRlVGltZXJJRCgpCi17Ci0gICAgc3RhdGljIHVpbnQ2NF90IHVu
aXF1ZVRpbWVySUQgPSAxOwotICAgIHJldHVybiB1bmlxdWVUaW1lcklEKys7Ci19Ci0KLVJ1bkxv
b3A6OlRpbWVyQmFzZTo6VGltZXJCYXNlKFJ1bkxvb3AqIHJ1bkxvb3ApCi0gICAgOiBtX3J1bkxv
b3AocnVuTG9vcCkKLSAgICAsIG1fSUQoZ2VuZXJhdGVUaW1lcklEKCkpCi0gICAgLCBtX2lzUmVw
ZWF0aW5nKGZhbHNlKQotewotfQotCi1SdW5Mb29wOjpUaW1lckJhc2U6On5UaW1lckJhc2UoKQot
ewotICAgIHN0b3AoKTsKLX0KLQotdm9pZCBSdW5Mb29wOjpUaW1lckJhc2U6OnN0YXJ0KGRvdWJs
ZSBuZXh0RmlyZUludGVydmFsLCBib29sIHJlcGVhdCkKLXsKLSAgICBtX2lzUmVwZWF0aW5nID0g
cmVwZWF0OwotICAgIG1fcnVuTG9vcC0+bV9hY3RpdmVUaW1lcnMuc2V0KG1fSUQsIHRoaXMpOwot
ICAgIDo6U2V0VGltZXIobV9ydW5Mb29wLT5tX3J1bkxvb3BNZXNzYWdlV2luZG93LCBtX0lELCBu
ZXh0RmlyZUludGVydmFsICogMTAwMCwgMCk7Ci19Ci0KLXZvaWQgUnVuTG9vcDo6VGltZXJCYXNl
OjpzdG9wKCkKLXsKLSAgICBUaW1lck1hcDo6aXRlcmF0b3IgaXQgPSBtX3J1bkxvb3AtPm1fYWN0
aXZlVGltZXJzLmZpbmQobV9JRCk7Ci0gICAgaWYgKGl0ID09IG1fcnVuTG9vcC0+bV9hY3RpdmVU
aW1lcnMuZW5kKCkpCi0gICAgICAgIHJldHVybjsKLQotICAgIG1fcnVuTG9vcC0+bV9hY3RpdmVU
aW1lcnMucmVtb3ZlKGl0KTsKLSAgICA6OktpbGxUaW1lcihtX3J1bkxvb3AtPm1fcnVuTG9vcE1l
c3NhZ2VXaW5kb3csIG1fSUQpOwotfQotCi1ib29sIFJ1bkxvb3A6OlRpbWVyQmFzZTo6aXNBY3Rp
dmUoKSBjb25zdAotewotICAgIHJldHVybiBtX3J1bkxvb3AtPm1fYWN0aXZlVGltZXJzLmNvbnRh
aW5zKG1fSUQpOwotfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvUGx1Z2luUHJvY2Vzcy9Q
bHVnaW5Db250cm9sbGVyUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQyL1BsdWdpblByb2Nlc3MvUGx1
Z2luQ29udHJvbGxlclByb3h5LmgKaW5kZXggNTFjMzQ4ZGExYTUyY2QyMGU1OTk5OTA3YTVjYmVh
ZDk1ZmQ2OGVjMy4uYzc5MjExYThjMmFkMmI0MzQ5NDRkOTlkNWFkY2RiNjQzNGRkYjJlMyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdDIvUGx1Z2luUHJvY2Vzcy9QbHVnaW5Db250cm9sbGVyUHJv
eHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9QbHVnaW5Qcm9jZXNzL1BsdWdpbkNvbnRyb2xsZXJQ
cm94eS5oCkBAIC0zMiw4ICszMiw4IEBACiAjaW5jbHVkZSAiUGx1Z2luLmgiCiAjaW5jbHVkZSAi
UGx1Z2luQ29udHJvbGxlci5oIgogI2luY2x1ZGUgIlBsdWdpbkNvbnRyb2xsZXJQcm94eU1lc3Nh
Z2VzLmgiCi0jaW5jbHVkZSAiUnVuTG9vcC5oIgogI2luY2x1ZGUgIlNoYXJlYWJsZUJpdG1hcC5o
IgorI2luY2x1ZGUgPFdlYkNvcmUvUnVuTG9vcC5oPgogI2luY2x1ZGUgPHd0Zi9Ob25jb3B5YWJs
ZS5oPgogCiAjaWYgUExBVEZPUk0oTUFDKQpAQCAtMTY3LDE0ICsxNjcsMTQgQEAgcHJpdmF0ZToK
ICAgICBXZWJDb3JlOjpJbnRSZWN0IG1fZGlydHlSZWN0OwogCiAgICAgLy8gVGhlIHBhaW50IHRp
bWVyLCB1c2VkIGZvciBjb2FsZXNjaW5nIHBhaW50aW5nLgotICAgIFJ1bkxvb3A6OlRpbWVyPFBs
dWdpbkNvbnRyb2xsZXJQcm94eT4gbV9wYWludFRpbWVyOworICAgIFdlYkNvcmU6OlJ1bkxvb3A6
OlRpbWVyPFBsdWdpbkNvbnRyb2xsZXJQcm94eT4gbV9wYWludFRpbWVyOwogICAgIAogICAgIC8v
IEEgY291bnRlciB1c2VkIHRvIHByZXZlbnQgdGhlIHBsdWctaW4gZnJvbSBiZWluZyBkZXN0cm95
ZWQuCiAgICAgdW5zaWduZWQgbV9wbHVnaW5EZXN0cnVjdGlvblByb3RlY3RDb3VudDsKIAogICAg
IC8vIEEgdGltZXIgdGhhdCB3ZSB1c2UgdG8gcHJldmVudCBkZXN0cnVjdGlvbiBvZiB0aGUgcGx1
Zy1pbiB3aGlsZSBwbHVnLWluCiAgICAgLy8gY29kZSBpcyBvbiB0aGUgc3RhY2suCi0gICAgUnVu
TG9vcDo6VGltZXI8UGx1Z2luQ29udHJvbGxlclByb3h5PiBtX3BsdWdpbkRlc3Ryb3lUaW1lcjsK
KyAgICBXZWJDb3JlOjpSdW5Mb29wOjpUaW1lcjxQbHVnaW5Db250cm9sbGVyUHJveHk+IG1fcGx1
Z2luRGVzdHJveVRpbWVyOwogCiAgICAgLy8gV2lsbCBwb2ludCB0byB0aGUgcGx1Zy1pbiBjcmVh
dGlvbiBwYXJhbWV0ZXJzIG9mIHRoZSBwbHVnLWluIHdlJ3JlIGN1cnJlbnRseSBpbml0aWFsaXpp
bmcgYW5kIHdpbGwgYmUgbnVsbCB3aGVuIHdlJ3JlIGRvbmUgaW5pdGlhbGl6aW5nLgogICAgIGNv
bnN0IFBsdWdpbkNyZWF0aW9uUGFyYW1ldGVycyogbV9wbHVnaW5DcmVhdGlvblBhcmFtZXRlcnM7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9QbHVnaW5Qcm9jZXNzL1BsdWdpblByb2Nlc3Mu
Y3BwIGIvU291cmNlL1dlYktpdDIvUGx1Z2luUHJvY2Vzcy9QbHVnaW5Qcm9jZXNzLmNwcAppbmRl
eCBhMzY2ZjVkYjcxNDIxMzcwNmJkZWI1OTg1NTk3NDM4YThkNTRlNjNlLi4wOTliZjNhNDhmZmQy
M2ZjNGU0YWM3NzEyZGM5MjY3YjMxN2VkYjU5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9Q
bHVnaW5Qcm9jZXNzL1BsdWdpblByb2Nlc3MuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1BsdWdp
blByb2Nlc3MvUGx1Z2luUHJvY2Vzcy5jcHAKQEAgLTM2LDYgKzM2LDcgQEAKICNpbmNsdWRlICJQ
bHVnaW5Qcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmgiCiAjaW5jbHVkZSAiV2ViUHJvY2Vzc0Nv
bm5lY3Rpb24uaCIKICNpbmNsdWRlIDxXZWJDb3JlL05vdEltcGxlbWVudGVkLmg+CisjaW5jbHVk
ZSA8V2ViQ29yZS9SdW5Mb29wLmg+CiAKICNpZiBVU0UoVU5JWF9ET01BSU5fU09DS0VUUykKICNp
bmNsdWRlIDxlcnJuby5oPgpAQCAtNTUsNiArNTYsOCBAQAogI2VuZGlmIC8vIFNPQ0tfU0VRUEFD
S0VUCiAjZW5kaWYgLy8gVVNFKFVOSVhfRE9NQUlOX1NPQ0tFVFMpCiAKK3VzaW5nIG5hbWVzcGFj
ZSBXZWJDb3JlOworCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAogc3RhdGljIGNvbnN0IGRvdWJsZSBz
aHV0ZG93blRpbWVvdXQgPSAxNS4wOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvUGx1Z2lu
UHJvY2Vzcy9QbHVnaW5Qcm9jZXNzLmggYi9Tb3VyY2UvV2ViS2l0Mi9QbHVnaW5Qcm9jZXNzL1Bs
dWdpblByb2Nlc3MuaAppbmRleCBhNjEwMzI2YjQ3OTZjYzQ0ZDFmNzJlMTYzZmI5YTg0YTdiOTcz
YzRhLi4wY2YzOWM2ZTU5ZWMxMTJmNDA5NmUxODQ4MzQ4MDI3ZWVmMDg4YWE5IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0Mi9QbHVnaW5Qcm9jZXNzL1BsdWdpblByb2Nlc3MuaAorKysgYi9Tb3Vy
Y2UvV2ViS2l0Mi9QbHVnaW5Qcm9jZXNzL1BsdWdpblByb2Nlc3MuaApAQCAtMjksMTAgKzI5LDEz
IEBACiAjaWYgRU5BQkxFKFBMVUdJTl9QUk9DRVNTKQogCiAjaW5jbHVkZSAiQ2hpbGRQcm9jZXNz
LmgiCi0jaW5jbHVkZSAiUnVuTG9vcC5oIgogI2luY2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+CiAjaW5j
bHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CiAKK25hbWVzcGFjZSBXZWJDb3JlIHsKK2NsYXNz
IFJ1bkxvb3A7Cit9CisKIG5hbWVzcGFjZSBXZWJLaXQgewogCiBjbGFzcyBOZXRzY2FwZVBsdWdp
bk1vZHVsZTsKQEAgLTQ0LDcgKzQ3LDcgQEAgY2xhc3MgUGx1Z2luUHJvY2VzcyA6IENoaWxkUHJv
Y2VzcyB7CiBwdWJsaWM6CiAgICAgc3RhdGljIFBsdWdpblByb2Nlc3MmIHNoYXJlZCgpOwogCi0g
ICAgdm9pZCBpbml0aWFsaXplKENvcmVJUEM6OkNvbm5lY3Rpb246OklkZW50aWZpZXIsIFJ1bkxv
b3AqKTsKKyAgICB2b2lkIGluaXRpYWxpemUoQ29yZUlQQzo6Q29ubmVjdGlvbjo6SWRlbnRpZmll
ciwgV2ViQ29yZTo6UnVuTG9vcCopOwogICAgIHZvaWQgcmVtb3ZlV2ViUHJvY2Vzc0Nvbm5lY3Rp
b24oV2ViUHJvY2Vzc0Nvbm5lY3Rpb24qIHdlYlByb2Nlc3NDb25uZWN0aW9uKTsKIAogICAgIE5l
dHNjYXBlUGx1Z2luTW9kdWxlKiBuZXRzY2FwZVBsdWdpbk1vZHVsZSgpOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdDIvUGx1Z2luUHJvY2Vzcy9XZWJQcm9jZXNzQ29ubmVjdGlvbi5jcHAgYi9T
b3VyY2UvV2ViS2l0Mi9QbHVnaW5Qcm9jZXNzL1dlYlByb2Nlc3NDb25uZWN0aW9uLmNwcAppbmRl
eCBhYjYzYjA1YmJkZjg2ZjJiMjMyOWM4ZGMzM2QwODcxODBjYjczOWZkLi5hMjdkMTEzOTA2OWRh
OTc3ZmM4MmVjYmRkMmFlYzk0YzdhN2VkNjVmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9Q
bHVnaW5Qcm9jZXNzL1dlYlByb2Nlc3NDb25uZWN0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0
Mi9QbHVnaW5Qcm9jZXNzL1dlYlByb2Nlc3NDb25uZWN0aW9uLmNwcApAQCAtMzQsMTAgKzM0LDEx
IEBACiAjaW5jbHVkZSAiUGx1Z2luQ3JlYXRpb25QYXJhbWV0ZXJzLmgiCiAjaW5jbHVkZSAiUGx1
Z2luUHJvY2Vzcy5oIgogI2luY2x1ZGUgIlBsdWdpblByb2Nlc3NDb25uZWN0aW9uTWVzc2FnZXMu
aCIKLSNpbmNsdWRlICJSdW5Mb29wLmgiCisjaW5jbHVkZSA8V2ViQ29yZS9SdW5Mb29wLmg+CiAK
LW5hbWVzcGFjZSBXZWJLaXQgewordXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiAKK25hbWVzcGFj
ZSBXZWJLaXQgewogCiBjbGFzcyBDb25uZWN0aW9uU3RhY2sgewogcHVibGljOgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdDIvUGx1Z2luUHJvY2Vzcy9tYWMvUGx1Z2luUHJvY2Vzc01haW5NYWMu
bW0gYi9Tb3VyY2UvV2ViS2l0Mi9QbHVnaW5Qcm9jZXNzL21hYy9QbHVnaW5Qcm9jZXNzTWFpbk1h
Yy5tbQppbmRleCA1ZTkzZTJiZGRhNDEzZmI4YzNkOTI5YWFkYWUwNDYxYTMzMzYyODZkLi44NTYx
Zjk5NTk0NDA5Y2YwNzhlZjE2ZDAxNDEzM2ViMDJjOGI1ZjVlIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0Mi9QbHVnaW5Qcm9jZXNzL21hYy9QbHVnaW5Qcm9jZXNzTWFpbk1hYy5tbQorKysgYi9T
b3VyY2UvV2ViS2l0Mi9QbHVnaW5Qcm9jZXNzL21hYy9QbHVnaW5Qcm9jZXNzTWFpbk1hYy5tbQpA
QCAtMzIsMTkgKzMyLDIxIEBACiAjaW1wb3J0ICJFbnZpcm9ubWVudFV0aWxpdGllcy5oIgogI2lt
cG9ydCAiTmV0c2NhcGVQbHVnaW5Nb2R1bGUuaCIKICNpbXBvcnQgIlBsdWdpblByb2Nlc3MuaCIK
LSNpbXBvcnQgIlJ1bkxvb3AuaCIKKyNpbXBvcnQgPFdlYkNvcmUvUnVuTG9vcC5oPgogI2ltcG9y
dCA8V2ViS2l0U3lzdGVtSW50ZXJmYWNlLmg+CiAjaW1wb3J0IDxtYWNoL21hY2hfZXJyb3IuaD4K
ICNpbXBvcnQgPHJ1bnRpbWUvSW5pdGlhbGl6ZVRocmVhZGluZy5oPgogI2ltcG9ydCA8c2VydmVy
cy9ib290c3RyYXAuaD4KKyNpbXBvcnQgPHN0ZGlvLmg+CiAjaW1wb3J0IDx3dGYvTWFpblRocmVh
ZC5oPgogI2ltcG9ydCA8d3RmL1JldGFpblB0ci5oPgogI2ltcG9ydCA8d3RmL3RleHQvQ1N0cmlu
Zy5oPgogI2ltcG9ydCA8d3RmL3RleHQvV1RGU3RyaW5nLmg+Ci0jaW5jbHVkZSA8c3RkaW8uaD4K
IAogI2RlZmluZSBTSE9XX0NSQVNIX1JFUE9SVEVSIDEKIAordXNpbmcgbmFtZXNwYWNlIFdlYkNv
cmU7CisKIG5hbWVzcGFjZSBXZWJLaXQgewogCiAvLyBGSVhNRTogVGhlcmUgaXMgbXVjaCBjb2Rl
IGhlcmUgdGhhdCBpcyBkdXBsaWNhdGVkIGluIFdlYlByb2Nlc3NNYWluTWFjLm1tLCB3ZSBzaG91
bGQgYWRkIGEgc2hhcmVkIGJhc2UgY2xhc3Mgd2hlcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQyL1BsdWdpblByb2Nlc3MvcXQvUGx1Z2luUHJvY2Vzc01haW5RdC5jcHAgYi9Tb3VyY2UvV2Vi
S2l0Mi9QbHVnaW5Qcm9jZXNzL3F0L1BsdWdpblByb2Nlc3NNYWluUXQuY3BwCmluZGV4IDNlMDAz
M2ZmMGFiMzM3NjUwZTUzZDA4MWM4OWY0NDQxNGE2NzhhNzUuLmQzYTBlYzNlMjQ1OTU2Yjk4NTAw
ZDU2N2U1NjVmYWExNTA2YTAwNTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1BsdWdpblBy
b2Nlc3MvcXQvUGx1Z2luUHJvY2Vzc01haW5RdC5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvUGx1
Z2luUHJvY2Vzcy9xdC9QbHVnaW5Qcm9jZXNzTWFpblF0LmNwcApAQCAtMzAsOCArMzAsOCBAQAog
CiAjaW5jbHVkZSAiQ29tbWFuZExpbmUuaCIKICNpbmNsdWRlICJQbHVnaW5Qcm9jZXNzLmgiCi0j
aW5jbHVkZSAiUnVuTG9vcC5oIgogI2luY2x1ZGUgPFdlYkNvcmUvTm90SW1wbGVtZW50ZWQuaD4K
KyNpbmNsdWRlIDxXZWJDb3JlL1J1bkxvb3AuaD4KICNpbmNsdWRlIDxydW50aW1lL0luaXRpYWxp
emVUaHJlYWRpbmcuaD4KICNpbmNsdWRlIDx3dGYvTWFpblRocmVhZC5oPgogI2luY2x1ZGUgPHd0
Zi9SZXRhaW5QdHIuaD4KQEAgLTQwLDYgKzQwLDggQEAKIAogI2RlZmluZSBTSE9XX0NSQVNIX1JF
UE9SVEVSIDEKIAordXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CisKIG5hbWVzcGFjZSBXZWJLaXQg
ewogCiBpbnQgUGx1Z2luUHJvY2Vzc01haW4oY29uc3QgQ29tbWFuZExpbmUmIGNvbW1hbmRMaW5l
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL0NoaWxkUHJvY2Vzcy5jcHAgYi9T
b3VyY2UvV2ViS2l0Mi9TaGFyZWQvQ2hpbGRQcm9jZXNzLmNwcAppbmRleCA4YjNjZGIyODJjYjli
ODNmNGI0OGUyMDc1MzQ2Zjg1ZmZiOWQ0YTZjLi41NzFmZTk1ODYwZTMwZWY2N2ZhYjIwZjg1MWYy
OTNhMDVmYzRhODI5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQ2hpbGRQcm9j
ZXNzLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQ2hpbGRQcm9jZXNzLmNwcApAQCAt
MzAsNiArMzAsOCBAQAogI2luY2x1ZGUgPHVuaXN0ZC5oPgogI2VuZGlmCiAKK3VzaW5nIG5hbWVz
cGFjZSBXZWJDb3JlOworCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAogdm9pZCBDaGlsZFByb2Nlc3M6
OmRpc2FibGVUZXJtaW5hdGlvbigpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQv
Q2hpbGRQcm9jZXNzLmggYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQ2hpbGRQcm9jZXNzLmgKaW5k
ZXggNDI1OTgzMGQ4YjcyOTQzNDllYTQ3OTYyN2I0MzQ5YjA3NWM2YWNhNi4uNTBlY2ViNTk0ZWMy
OGZjOGUzZmU0OGU5MzhjZTFlZmNjMjkxMTJjNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIv
U2hhcmVkL0NoaWxkUHJvY2Vzcy5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9DaGlsZFBy
b2Nlc3MuaApAQCAtMjcsNyArMjcsNyBAQAogI2RlZmluZSBDaGlsZFByb2Nlc3NfaAogCiAjaW5j
bHVkZSAiQ29ubmVjdGlvbi5oIgotI2luY2x1ZGUgIlJ1bkxvb3AuaCIKKyNpbmNsdWRlIDxXZWJD
b3JlL1J1bkxvb3AuaD4KIAogbmFtZXNwYWNlIFdlYktpdCB7CiAKQEAgLTc3LDcgKzc3LDcgQEAg
cHJpdmF0ZToKICAgICAvLyBhZnRlciBhIGdpdmVuIHBlcmlvZCBvZiB0aW1lLgogICAgIHVuc2ln
bmVkIG1fdGVybWluYXRpb25Db3VudGVyOwogCi0gICAgUnVuTG9vcDo6VGltZXI8Q2hpbGRQcm9j
ZXNzPiBtX3Rlcm1pbmF0aW9uVGltZXI7CisgICAgV2ViQ29yZTo6UnVuTG9vcDo6VGltZXI8Q2hp
bGRQcm9jZXNzPiBtX3Rlcm1pbmF0aW9uVGltZXI7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJL
aXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1RhcmdldC5wcmkgYi9Tb3VyY2UvV2ViS2l0
Mi9UYXJnZXQucHJpCmluZGV4IDM1OTgzZjA3NjU2ZGI0ODBmODM1YWNjZjYzZmUzY2Q2NmRhOTdj
OTAuLjVlZTI3OTcyMjQ5MDRmNGE0NzZhZjYyMGE4NWJlNjQ2NmYxMDZlNzUgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQyL1RhcmdldC5wcmkKKysrIGIvU291cmNlL1dlYktpdDIvVGFyZ2V0LnBy
aQpAQCAtMzEsNyArMzEsNiBAQCBIRUFERVJTICs9IFwKICAgICBQbGF0Zm9ybS9Mb2dnaW5nLmgg
XAogICAgIFBsYXRmb3JtL01vZHVsZS5oIFwKICAgICBQbGF0Zm9ybS9QbGF0Zm9ybVByb2Nlc3NJ
ZGVudGlmaWVyLmggXAotICAgIFBsYXRmb3JtL1J1bkxvb3AuaCBcCiAgICAgUGxhdGZvcm0vU2hh
cmVkTWVtb3J5LmggXAogICAgIFBsYXRmb3JtL1dvcmtRdWV1ZS5oIFwKICAgICBQbHVnaW5Qcm9j
ZXNzL1BsdWdpbkNvbnRyb2xsZXJQcm94eS5oIFwKQEAgLTM3MywxMCArMzcyLDggQEAgU09VUkNF
UyArPSBcCiAgICAgUGxhdGZvcm0vQ29yZUlQQy9EYXRhUmVmZXJlbmNlLmNwcCBcCiAgICAgUGxh
dGZvcm0vTG9nZ2luZy5jcHAgXAogICAgIFBsYXRmb3JtL01vZHVsZS5jcHAgXAotICAgIFBsYXRm
b3JtL1J1bkxvb3AuY3BwIFwKICAgICBQbGF0Zm9ybS9Xb3JrUXVldWUuY3BwIFwKICAgICBQbGF0
Zm9ybS9xdC9Nb2R1bGVRdC5jcHAgXAotICAgIFBsYXRmb3JtL3F0L1J1bkxvb3BRdC5jcHAgXAog
ICAgIFBsdWdpblByb2Nlc3MvUGx1Z2luQ29udHJvbGxlclByb3h5LmNwcCBcCiAgICAgUGx1Z2lu
UHJvY2Vzcy9QbHVnaW5Qcm9jZXNzLmNwcCBcCiAgICAgUGx1Z2luUHJvY2Vzcy9XZWJQcm9jZXNz
Q29ubmVjdGlvbi5jcHAgXApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQ
SS9tYWMvRmluZEluZGljYXRvcldpbmRvdy5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQ
SS9tYWMvRmluZEluZGljYXRvcldpbmRvdy5oCmluZGV4IDc4MzZhNTQ2YTU0YWFkMTM4ZTRhMjcz
MWU3YzIwN2Q0YTlhNjdiODcuLmNiZTM0YTFhOTBmYjliYTlhNWJmNzkzNjViYjE3ZDIzNGE5ZDhh
NDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvbWFjL0ZpbmRJbmRp
Y2F0b3JXaW5kb3cuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL21hYy9GaW5k
SW5kaWNhdG9yV2luZG93LmgKQEAgLTI2LDEyICsyNiwxMiBAQAogI2lmbmRlZiBGaW5kSW5kaWNh
dG9yV2luZG93X2gKICNkZWZpbmUgRmluZEluZGljYXRvcldpbmRvd19oCiAKKyNpbXBvcnQgIldl
YktpdFN5c3RlbUludGVyZmFjZS5oIgorI2ltcG9ydCA8V2ViQ29yZS9SdW5Mb29wLmg+CiAjaW1w
b3J0IDx3dGYvTm9uY29weWFibGUuaD4KICNpbXBvcnQgPHd0Zi9QYXNzT3duUHRyLmg+CiAjaW1w
b3J0IDx3dGYvUmVmUHRyLmg+CiAjaW1wb3J0IDx3dGYvUmV0YWluUHRyLmg+Ci0jaW1wb3J0ICJS
dW5Mb29wLmgiCi0jaW1wb3J0ICJXZWJLaXRTeXN0ZW1JbnRlcmZhY2UuaCIKIAogQGNsYXNzIFdL
RmluZEluZGljYXRvcldpbmRvd0FuaW1hdGlvbjsKIEBjbGFzcyBXS1ZpZXc7CkBAIC02OCw3ICs2
OCw3IEBAIHByaXZhdGU6CiAgICAgV0tXaW5kb3dCb3VuY2VBbmltYXRpb25Db250ZXh0UmVmIG1f
Ym91bmNlQW5pbWF0aW9uQ29udGV4dDsKICAgICBSZXRhaW5QdHI8V0tGaW5kSW5kaWNhdG9yV2lu
ZG93QW5pbWF0aW9uPiBtX2JvdW5jZUFuaW1hdGlvbjsKIAotICAgIFJ1bkxvb3A6OlRpbWVyPEZp
bmRJbmRpY2F0b3JXaW5kb3c+IG1fc3RhcnRGYWRlT3V0VGltZXI7CisgICAgV2ViQ29yZTo6UnVu
TG9vcDo6VGltZXI8RmluZEluZGljYXRvcldpbmRvdz4gbV9zdGFydEZhZGVPdXRUaW1lcjsKICAg
ICBSZXRhaW5QdHI8V0tGaW5kSW5kaWNhdG9yV2luZG93QW5pbWF0aW9uPiBtX2ZhZGVPdXRBbmlt
YXRpb247CiB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL21h
Yy9XS1ZpZXcubW0gYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL21hYy9XS1ZpZXcubW0K
aW5kZXggMWQ4NzA5ZDgyYTIyNGQ0YmYwZTg2MWY5OWE5Nzc4NGQ4N2E3ZmM0OC4uM2VjM2U3ZmNi
NjBhMDVkY2MwYWE5ODBmZDY1NWI4MTI2OWZhZWJiMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL0FQSS9tYWMvV0tWaWV3Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9BUEkvbWFjL1dLVmlldy5tbQpAQCAtNDAsNyArNDAsNiBAQAogI2ltcG9ydCAiUERGVmll
d0NvbnRyb2xsZXIuaCIKICNpbXBvcnQgIlBhZ2VDbGllbnRJbXBsLmgiCiAjaW1wb3J0ICJQYXN0
ZWJvYXJkVHlwZXMuaCIKLSNpbXBvcnQgIlJ1bkxvb3AuaCIKICNpbXBvcnQgIlRleHRDaGVja2Vy
LmgiCiAjaW1wb3J0ICJUZXh0Q2hlY2tlclN0YXRlLmgiCiAjaW1wb3J0ICJUaWxlZENvcmVBbmlt
YXRpb25EcmF3aW5nQXJlYVByb3h5LmgiCkBAIC03MCw2ICs2OSw3IEBACiAjaW1wb3J0IDxXZWJD
b3JlL1BsYXRmb3JtRXZlbnRGYWN0b3J5TWFjLmg+CiAjaW1wb3J0IDxXZWJDb3JlL1BsYXRmb3Jt
U2NyZWVuLmg+CiAjaW1wb3J0IDxXZWJDb3JlL1JlZ2lvbi5oPgorI2ltcG9ydCA8V2ViQ29yZS9S
dW5Mb29wLmg+CiAjaW1wb3J0IDxXZWJLaXRTeXN0ZW1JbnRlcmZhY2UuaD4KICNpbXBvcnQgPHd0
Zi9SZWZQdHIuaD4KICNpbXBvcnQgPHd0Zi9SZXRhaW5QdHIuaD4KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9EcmF3aW5nQXJlYVByb3h5SW1wbC5oIGIvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL0RyYXdpbmdBcmVhUHJveHlJbXBsLmgKaW5kZXggMDVkNzM1NDIzNjI2N2E1
NWI0NWM2MDliOGQyYmE1NDdlMTBmOGJkYi4uYzE2NTFmNDFmYTkzNWQxZjQ4MDg0MTMxNmI2YTIx
OGFlZTJiZThhNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0RyYXdpbmdB
cmVhUHJveHlJbXBsLmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0RyYXdpbmdBcmVh
UHJveHlJbXBsLmgKQEAgLTI5LDcgKzI5LDcgQEAKICNpbmNsdWRlICJCYWNraW5nU3RvcmUuaCIK
ICNpbmNsdWRlICJEcmF3aW5nQXJlYVByb3h5LmgiCiAjaW5jbHVkZSAiTGF5ZXJUcmVlQ29udGV4
dC5oIgotI2luY2x1ZGUgIlJ1bkxvb3AuaCIKKyNpbmNsdWRlIDxXZWJDb3JlL1J1bkxvb3AuaD4K
ICNpbmNsdWRlIDx3dGYvT3duUHRyLmg+CiAjaW5jbHVkZSA8d3RmL1Bhc3NPd25QdHIuaD4KIApA
QCAtMTE2LDcgKzExNiw3IEBAIHByaXZhdGU6CiAgICAgYm9vbCBtX2lzQmFja2luZ1N0b3JlRGlz
Y2FyZGFibGU7CiAgICAgT3duUHRyPEJhY2tpbmdTdG9yZT4gbV9iYWNraW5nU3RvcmU7CiAKLSAg
ICBSdW5Mb29wOjpUaW1lcjxEcmF3aW5nQXJlYVByb3h5SW1wbD4gbV9kaXNjYXJkQmFja2luZ1N0
b3JlVGltZXI7CisgICAgV2ViQ29yZTo6UnVuTG9vcDo6VGltZXI8RHJhd2luZ0FyZWFQcm94eUlt
cGw+IG1fZGlzY2FyZEJhY2tpbmdTdG9yZVRpbWVyOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2Vi
S2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvTGF1bmNoZXIvVGhyZWFk
TGF1bmNoZXIuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0xhdW5jaGVyL1RocmVhZExh
dW5jaGVyLmNwcAppbmRleCAzYzBmYmYxNjBjYzc2ZTYwMTg0MTVkNmQzYjM0YzY5NjE2MTZiYTA0
Li5mMzdhNWQzYTI3MTVhYTE1NzgwZGZkYWZlMWM0YTRjNWU0ZDBkZTg1IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvTGF1bmNoZXIvVGhyZWFkTGF1bmNoZXIuY3BwCisrKyBi
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9MYXVuY2hlci9UaHJlYWRMYXVuY2hlci5jcHAKQEAg
LTI2LDcgKzI2LDkgQEAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJUaHJlYWRMYXVu
Y2hlci5oIgogCi0jaW5jbHVkZSAiUnVuTG9vcC5oIgorI2luY2x1ZGUgPFdlYkNvcmUvUnVuTG9v
cC5oPgorCit1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKIAogbmFtZXNwYWNlIFdlYktpdCB7CiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9MYXVuY2hlci9ndGsvUHJvY2Vz
c0xhdW5jaGVyR3RrLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9MYXVuY2hlci9ndGsv
UHJvY2Vzc0xhdW5jaGVyR3RrLmNwcAppbmRleCBjNjM0NWE2YzY5MjU3ZWUwM2ZlNTgzYzlmNWI4
Y2JiMGU1NjRmOGY0Li45NGNhZDVmYzQ0ODIwZGExOThkYTg3MWNjYmQ2ZmE0N2U0Mzg5YjJiIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvTGF1bmNoZXIvZ3RrL1Byb2Nlc3NM
YXVuY2hlckd0ay5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0xhdW5jaGVyL2d0
ay9Qcm9jZXNzTGF1bmNoZXJHdGsuY3BwCkBAIC0yOCwxOSArMjgsMjAgQEAKICNpbmNsdWRlICJQ
cm9jZXNzTGF1bmNoZXIuaCIKIAogI2luY2x1ZGUgIkNvbm5lY3Rpb24uaCIKLSNpbmNsdWRlICJS
dW5Mb29wLmgiCiAjaW5jbHVkZSA8V2ViQ29yZS9GaWxlU3lzdGVtLmg+CiAjaW5jbHVkZSA8V2Vi
Q29yZS9SZXNvdXJjZUhhbmRsZS5oPgorI2luY2x1ZGUgPFdlYkNvcmUvUnVuTG9vcC5oPgogI2lu
Y2x1ZGUgPGVycm5vLmg+CiAjaW5jbHVkZSA8bG9jYWxlLmg+Ci0jaWYgT1MoTElOVVgpCi0jaW5j
bHVkZSA8c3lzL3ByY3RsLmg+Ci0jZW5kaWYKICNpbmNsdWRlIDx3dGYvdGV4dC9DU3RyaW5nLmg+
CiAjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CiAjaW5jbHVkZSA8d3RmL2dvYmplY3Qv
R093blB0ci5oPgogI2luY2x1ZGUgPHd0Zi9nb2JqZWN0L0dsaWJVdGlsaXRpZXMuaD4KIAorI2lm
IE9TKExJTlVYKQorI2luY2x1ZGUgPHN5cy9wcmN0bC5oPgorI2VuZGlmCisKICNpZmRlZiBTT0NL
X1NFUVBBQ0tFVAogI2RlZmluZSBTT0NLRVRfVFlQRSBTT0NLX1NFUVBBQ0tFVAogI2Vsc2UKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9MYXVuY2hlci9tYWMvUHJvY2Vzc0xh
dW5jaGVyTWFjLm1tIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0xhdW5jaGVyL21hYy9Qcm9j
ZXNzTGF1bmNoZXJNYWMubW0KaW5kZXggYzcwZjYyZWRmYmNmODdjNmFiMjhhZTZiYzcyYzRhYzI3
OGQ3ZTk3NC4uZGM4MzljODRmNWYzM2ZiYWYwZGE5NjBmMTU3N2E4ZDY2ODUwZjljZiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0xhdW5jaGVyL21hYy9Qcm9jZXNzTGF1bmNo
ZXJNYWMubW0KKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0xhdW5jaGVyL21hYy9Qcm9j
ZXNzTGF1bmNoZXJNYWMubW0KQEAgLTI4LDkgKzI4LDkgQEAKIAogI2ltcG9ydCAiRHluYW1pY0xp
bmtlckVudmlyb25tZW50RXh0cmFjdG9yLmgiCiAjaW1wb3J0ICJFbnZpcm9ubWVudFZhcmlhYmxl
cy5oIgotI2ltcG9ydCAiUnVuTG9vcC5oIgogI2ltcG9ydCAiV2ViUHJvY2Vzcy5oIgogI2ltcG9y
dCAiV2ViS2l0U3lzdGVtSW50ZXJmYWNlLmgiCisjaW1wb3J0IDxXZWJDb3JlL1J1bkxvb3AuaD4K
ICNpbXBvcnQgPGNydF9leHRlcm5zLmg+CiAjaW1wb3J0IDxtYWNoLW8vZHlsZC5oPgogI2ltcG9y
dCA8bWFjaC9tYWNoaW5lLmg+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
TGF1bmNoZXIvbWFjL1RocmVhZExhdW5jaGVyTWFjLm1tIGIvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL0xhdW5jaGVyL21hYy9UaHJlYWRMYXVuY2hlck1hYy5tbQppbmRleCAxYzc0YjdkMjg3YWY5
YmE2NTkyYzdkZjM5YjJhMDUzMTQwZjNlZjAzLi5kZDUzYjNlZjE0ZTk5NDAxNDNhYmNhMzFiYTYy
N2M5YWVjMTgyNzcwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvTGF1bmNo
ZXIvbWFjL1RocmVhZExhdW5jaGVyTWFjLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9MYXVuY2hlci9tYWMvVGhyZWFkTGF1bmNoZXJNYWMubW0KQEAgLTI2LDEzICsyNiwxNSBAQAog
I2ltcG9ydCAiY29uZmlnLmgiCiAjaW1wb3J0ICJUaHJlYWRMYXVuY2hlci5oIgogCi0jaW1wb3J0
ICJSdW5Mb29wLmgiCiAjaW1wb3J0ICJXZWJQcm9jZXNzLmgiCiAjaW1wb3J0ICJXZWJTeXN0ZW1J
bnRlcmZhY2UuaCIKICNpbXBvcnQgPHJ1bnRpbWUvSW5pdGlhbGl6ZVRocmVhZGluZy5oPgorI2lt
cG9ydCA8V2ViQ29yZS9SdW5Mb29wLmg+CiAjaW1wb3J0IDx3dGYvTWFpblRocmVhZC5oPgogI2lt
cG9ydCA8d3RmL1RocmVhZGluZy5oPgogCit1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKKwogbmFt
ZXNwYWNlIFdlYktpdCB7CiAKIHN0YXRpYyB2b2lkKiB3ZWJUaHJlYWRCb2R5KHZvaWQqIGNvbnRl
eHQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvTGF1bmNoZXIvcXQvUHJv
Y2Vzc0xhdW5jaGVyUXQuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0xhdW5jaGVyL3F0
L1Byb2Nlc3NMYXVuY2hlclF0LmNwcAppbmRleCA4MzdmNTliYWYxYjVmZjVhMTY1NDVmNjU5MDdm
NmFkMzUwNDAxMDFkLi44ZTgyNjIwNjM2N2VlZDhlYjFjMjVjZTJmNGI0NTY0YjA4Zjc0YTA4IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvTGF1bmNoZXIvcXQvUHJvY2Vzc0xh
dW5jaGVyUXQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9MYXVuY2hlci9xdC9Q
cm9jZXNzTGF1bmNoZXJRdC5jcHAKQEAgLTI4LDcgKzI4LDYgQEAKICNpbmNsdWRlICJQcm9jZXNz
TGF1bmNoZXIuaCIKIAogI2luY2x1ZGUgIkNvbm5lY3Rpb24uaCIKLSNpbmNsdWRlICJSdW5Mb29w
LmgiCiAjaW5jbHVkZSAiV2ViUHJvY2Vzcy5oIgogI2luY2x1ZGUgPFFDb3JlQXBwbGljYXRpb24+
CiAjaW5jbHVkZSA8UURlYnVnPgpAQCAtMzksNiArMzgsNyBAQAogI2luY2x1ZGUgPFFTdHJpbmc+
CiAjaW5jbHVkZSA8UXRDb3JlL3FnbG9iYWwuaD4KICNpbmNsdWRlIDxXZWJDb3JlL05vdEltcGxl
bWVudGVkLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9SdW5Mb29wLmg+CiAjaW5jbHVkZSA8ZXJybm8u
aD4KICNpbmNsdWRlIDxmY250bC5oPgogI2luY2x1ZGUgPHJ1bnRpbWUvSW5pdGlhbGl6ZVRocmVh
ZGluZy5oPgpAQCAtNTAsNiArNTAsNyBAQAogI2luY2x1ZGUgPHd0Zi9QYXNzUmVmUHRyLmg+CiAj
aW5jbHVkZSA8d3RmL1RocmVhZGluZy5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5o
PgorCiAjaWYgZGVmaW5lZChRX09TX0xJTlVYKQogI2luY2x1ZGUgPHN5cy9wcmN0bC5oPgogI2lu
Y2x1ZGUgPHNpZ25hbC5oPgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0xh
dW5jaGVyL3F0L1RocmVhZExhdW5jaGVyUXQuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L0xhdW5jaGVyL3F0L1RocmVhZExhdW5jaGVyUXQuY3BwCmluZGV4IDdiOTVjYTA0OTlhNzg4NGFj
ZjA4ZmM1Yjc3NTJjZjZmYTNmMTlmNDEuLjFkMGNhZjNhZWM0N2U3ODg2YTgzYjgwZWU1OWNjMjE0
OGYyZmI1OGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9MYXVuY2hlci9x
dC9UaHJlYWRMYXVuY2hlclF0LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvTGF1
bmNoZXIvcXQvVGhyZWFkTGF1bmNoZXJRdC5jcHAKQEAgLTI3LDggKzI3LDggQEAKICNpbmNsdWRl
ICJjb25maWcuaCIKICNpbmNsdWRlICJUaHJlYWRMYXVuY2hlci5oIgogCi0jaW5jbHVkZSAiUnVu
TG9vcC5oIgogI2luY2x1ZGUgIldlYlByb2Nlc3MuaCIKKyNpbmNsdWRlIDxXZWJDb3JlL1J1bkxv
b3AuaD4KICNpbmNsdWRlIDxydW50aW1lL0luaXRpYWxpemVUaHJlYWRpbmcuaD4KICNpbmNsdWRl
IDx3dGYvTWFpblRocmVhZC5oPgogI2luY2x1ZGUgPHd0Zi9UaHJlYWRpbmcuaD4KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9MYXVuY2hlci93aW4vUHJvY2Vzc0xhdW5jaGVy
V2luLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9MYXVuY2hlci93aW4vUHJvY2Vzc0xh
dW5jaGVyV2luLmNwcAppbmRleCBkNTI2YzAzMDc4ZDU3Y2JhZGZhMjg5NTg1MTYwODYzNzg1ZTA1
NTQ2Li43ZGU3ODJmNjhlZGUyNjRjMDlkYWM1Y2E2NTliYzc4Y2YzYzE0Mjg5IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvTGF1bmNoZXIvd2luL1Byb2Nlc3NMYXVuY2hlcldp
bi5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0xhdW5jaGVyL3dpbi9Qcm9jZXNz
TGF1bmNoZXJXaW4uY3BwCkBAIC0yNyw3ICsyNyw3IEBACiAjaW5jbHVkZSAiUHJvY2Vzc0xhdW5j
aGVyLmgiCiAKICNpbmNsdWRlICJDb25uZWN0aW9uLmgiCi0jaW5jbHVkZSAiUnVuTG9vcC5oIgor
I2luY2x1ZGUgPFdlYkNvcmUvUnVuTG9vcC5oPgogI2luY2x1ZGUgPHNobHdhcGkuaD4KICNpbmNs
dWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KIApAQCAtNDMsNiArNDMsOCBAQCBjb25zdCBMUENX
U1RSIHdlYktpdERMTE5hbWUgPSBMIldlYktpdF9kZWJ1Zy5kbGwiOwogY29uc3QgTFBDV1NUUiB3
ZWJLaXRETExOYW1lID0gTCJXZWJLaXQuZGxsIjsKICNlbmRpZgogCit1c2luZyBuYW1lc3BhY2Ug
V2ViQ29yZTsKKwogbmFtZXNwYWNlIFdlYktpdCB7CiAKIHZvaWQgUHJvY2Vzc0xhdW5jaGVyOjps
YXVuY2hQcm9jZXNzKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9MYXVu
Y2hlci93aW4vVGhyZWFkTGF1bmNoZXJXaW4uY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L0xhdW5jaGVyL3dpbi9UaHJlYWRMYXVuY2hlcldpbi5jcHAKaW5kZXggMjU5Njk5OGVhMjM5MjBh
MTNkOTVlMWZlYjdjZmEyYmVjMWQ1OWNiZC4uZjlkMWMwNDgxZDFmMDM1YjFjZjBlOWRmMmMzZjRj
MzJjMDAzMWMyOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0xhdW5jaGVy
L3dpbi9UaHJlYWRMYXVuY2hlcldpbi5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L0xhdW5jaGVyL3dpbi9UaHJlYWRMYXVuY2hlcldpbi5jcHAKQEAgLTI2LDggKzI2LDggQEAKICNp
bmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJUaHJlYWRMYXVuY2hlci5oIgogCi0jaW5jbHVk
ZSAiUnVuTG9vcC5oIgogI2luY2x1ZGUgIldlYlByb2Nlc3MuaCIKKyNpbmNsdWRlIDxXZWJDb3Jl
L1J1bkxvb3AuaD4KICNpbmNsdWRlIDxydW50aW1lL0luaXRpYWxpemVUaHJlYWRpbmcuaD4KICNp
bmNsdWRlIDx3dGYvTWFpblRocmVhZC5oPgogI2luY2x1ZGUgPHd0Zi9UaHJlYWRpbmcuaD4KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9MYXllclRyZWVIb3N0UHJveHkuaCBi
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9MYXllclRyZWVIb3N0UHJveHkuaAppbmRleCBkNTI4
MWQzODJmMjBkNjExMWU0ZGYzMjZmOTA2MTFiNzI2MGRhYTI3Li5iYjJmZGJiMDM5MzJjZmYyZTBk
NmZkYmEwN2Y0MjM2Nzc3ZDVjZDNmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvTGF5ZXJUcmVlSG9zdFByb3h5LmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0xh
eWVyVHJlZUhvc3RQcm94eS5oCkBAIC0yNCwxMiArMjQsMTIgQEAKICNpbmNsdWRlICJEcmF3aW5n
QXJlYVByb3h5LmgiCiAjaW5jbHVkZSAiTWVzc2FnZVF1ZXVlLmgiCiAjaW5jbHVkZSAiUmVnaW9u
LmgiCi0jaW5jbHVkZSAiUnVuTG9vcC5oIgogI2luY2x1ZGUgIldlYkxheWVyVHJlZUluZm8uaCIK
ICNpbmNsdWRlIDxXZWJDb3JlL0dyYXBoaWNzQ29udGV4dC5oPgogI2luY2x1ZGUgPFdlYkNvcmUv
R3JhcGhpY3NMYXllci5oPgogI2luY2x1ZGUgPFdlYkNvcmUvSW50UmVjdC5oPgogI2luY2x1ZGUg
PFdlYkNvcmUvSW50U2l6ZS5oPgorI2luY2x1ZGUgPFdlYkNvcmUvUnVuTG9vcC5oPgogI2luY2x1
ZGUgPHd0Zi9IYXNoU2V0Lmg+CiAKICNpZiBVU0UoVEVYVFVSRV9NQVBQRVIpCkBAIC04Myw3ICs4
Myw3IEBAIHByb3RlY3RlZDoKICAgICB2aXJ0dWFsIGJvb2wgc2hvd1JlcGFpbnRDb3VudGVyKCkg
Y29uc3QgeyByZXR1cm4gZmFsc2U7IH0KICAgICB2b2lkIHBhaW50Q29udGVudHMoY29uc3QgV2Vi
Q29yZTo6R3JhcGhpY3NMYXllciosIFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dCYsIFdlYkNvcmU6
OkdyYXBoaWNzTGF5ZXJQYWludGluZ1BoYXNlLCBjb25zdCBXZWJDb3JlOjpJbnRSZWN0JikgeyB9
CiAKLSAgICBSdW5Mb29wOjpUaW1lcjxMYXllclRyZWVIb3N0UHJveHk+IG1fYW5pbWF0aW9uVGlt
ZXI7CisgICAgV2ViQ29yZTo6UnVuTG9vcDo6VGltZXI8TGF5ZXJUcmVlSG9zdFByb3h5PiBtX2Fu
aW1hdGlvblRpbWVyOwogICAgIERyYXdpbmdBcmVhUHJveHkqIG1fZHJhd2luZ0FyZWFQcm94eTsK
IAogICAgIHR5cGVkZWYgSGFzaE1hcDxXZWJMYXllcklELCBXZWJDb3JlOjpHcmFwaGljc0xheWVy
Kj4gTGF5ZXJNYXA7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvUGx1Z2lu
cy9QbHVnaW5Qcm9jZXNzUHJveHkuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1BsdWdp
bnMvUGx1Z2luUHJvY2Vzc1Byb3h5LmNwcAppbmRleCA0MWM3YTQ3Y2I5MDA2NGRhOWNjMDk5MzI0
ZTllODBkMTZlODE2NGMxLi41NDgyZDg0ZDI5ZjY0MDkwMzk2ZjI5NTIxMDcwZTVjZWZkNmRmYjAw
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvUGx1Z2lucy9QbHVnaW5Qcm9j
ZXNzUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9QbHVnaW5zL1BsdWdp
blByb2Nlc3NQcm94eS5jcHAKQEAgLTMxLDE4ICszMSwyMCBAQAogI2luY2x1ZGUgIlBsdWdpblBy
b2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuaCIKICNpbmNsdWRlICJQbHVnaW5Qcm9jZXNzTWFuYWdl
ci5oIgogI2luY2x1ZGUgIlBsdWdpblByb2Nlc3NNZXNzYWdlcy5oIgotI2luY2x1ZGUgIlJ1bkxv
b3AuaCIKICNpbmNsdWRlICJXZWJDb250ZXh0LmgiCiAjaW5jbHVkZSAiV2ViQ29yZUFyZ3VtZW50
Q29kZXJzLmgiCiAjaW5jbHVkZSAiV2ViUGx1Z2luU2l0ZURhdGFNYW5hZ2VyLmgiCiAjaW5jbHVk
ZSAiV2ViUHJvY2Vzc01lc3NhZ2VzLmgiCiAjaW5jbHVkZSAiV2ViUHJvY2Vzc1Byb3h5LmgiCiAj
aW5jbHVkZSA8V2ViQ29yZS9Ob3RJbXBsZW1lbnRlZC5oPgorI2ltcG9ydCA8V2ViQ29yZS9SdW5M
b29wLmg+CiAKICNpZiBQTEFURk9STShNQUMpCiAjaW5jbHVkZSAiTWFjaFBvcnQuaCIKICNlbmRp
ZgogCit1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKKwogbmFtZXNwYWNlIFdlYktpdCB7CiAKIFBh
c3NPd25QdHI8UGx1Z2luUHJvY2Vzc1Byb3h5PiBQbHVnaW5Qcm9jZXNzUHJveHk6OmNyZWF0ZShQ
bHVnaW5Qcm9jZXNzTWFuYWdlciogUGx1Z2luUHJvY2Vzc01hbmFnZXIsIGNvbnN0IFBsdWdpbk1v
ZHVsZUluZm8mIHBsdWdpbkluZm8pCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvUmVzcG9uc2l2ZW5lc3NUaW1lci5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvUmVz
cG9uc2l2ZW5lc3NUaW1lci5jcHAKaW5kZXggMDU3Y2M3NDM1NGExNGU1N2RjMmZlMWYzYjg2NzQz
M2FjYzM3Y2QwMS4uODc4MzhjYTI2MjgwNzdhYjg3YzgxMmYyMGJkZGVhODIyMTBlMWI2YyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1Jlc3BvbnNpdmVuZXNzVGltZXIuY3Bw
CisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9SZXNwb25zaXZlbmVzc1RpbWVyLmNwcApA
QCAtMjYsNiArMjYsOCBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIlJlc3BvbnNp
dmVuZXNzVGltZXIuaCIKIAordXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CisKIG5hbWVzcGFjZSBX
ZWJLaXQgewogCiBzdGF0aWMgY29uc3QgZG91YmxlIGtSZXNwb25zaXZlbmVzc1RpbWVvdXQgPSAz
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1Jlc3BvbnNpdmVuZXNzVGlt
ZXIuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9SZXNwb25zaXZlbmVzc1RpbWVyLmgKaW5k
ZXggNjU5MTkxNjEyZjgwMWIxNGQ5ZDg4MTIyYWNiNGViMzhiNWVhNmU1Yi4uMzY3MzMxNTFmYzg3
ZjY3ZDE3MmEyODNmZTAzMGE2ODZlN2ViNDNhOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL1Jlc3BvbnNpdmVuZXNzVGltZXIuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvUmVzcG9uc2l2ZW5lc3NUaW1lci5oCkBAIC0yNiw3ICsyNiw3IEBACiAjaWZuZGVmIFJl
c3BvbnNpdmVuZXNzVGltZXJfaAogI2RlZmluZSBSZXNwb25zaXZlbmVzc1RpbWVyX2gKIAotI2lu
Y2x1ZGUgIlJ1bkxvb3AuaCIKKyNpbmNsdWRlIDxXZWJDb3JlL1J1bkxvb3AuaD4KIAogbmFtZXNw
YWNlIFdlYktpdCB7CiAKQEAgLTU1LDcgKzU1LDcgQEAgcHJpdmF0ZToKICAgICBSZXNwb25zaXZl
bmVzc1RpbWVyOjpDbGllbnQqIG1fY2xpZW50OwogICAgIGJvb2wgbV9pc1Jlc3BvbnNpdmU7CiAK
LSAgICBSdW5Mb29wOjpUaW1lcjxSZXNwb25zaXZlbmVzc1RpbWVyPiBtX3RpbWVyOworICAgIFdl
YkNvcmU6OlJ1bkxvb3A6OlRpbWVyPFJlc3BvbnNpdmVuZXNzVGltZXI+IG1fdGltZXI7CiB9Owog
CiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9UaWxlZERyYXdpbmdBcmVhUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9U
aWxlZERyYXdpbmdBcmVhUHJveHkuaAppbmRleCA4NTU5NzdkZTljMjUwMjdmYWMyYjJkNjI1OGVk
M2Q1NDgzNjcwYmIxLi4wZmNjY2Y0ZTE4NTZmZGU1NzNjMmQ2ODIzYmQ2Yjk3MzBkYjZkNDFkIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvVGlsZWREcmF3aW5nQXJlYVByb3h5
LmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1RpbGVkRHJhd2luZ0FyZWFQcm94eS5o
CkBAIC0zMSwxMCArMzEsOSBAQAogI2luY2x1ZGUgIkRyYXdpbmdBcmVhUHJveHkuaCIKICNpbmNs
dWRlIDxXZWJDb3JlL0dyYXBoaWNzQ29udGV4dC5oPgogI2luY2x1ZGUgPFdlYkNvcmUvSW50UmVj
dC5oPgorI2luY2x1ZGUgPFdlYkNvcmUvUnVuTG9vcC5oPgogI2luY2x1ZGUgPHd0Zi9IYXNoU2V0
Lmg+CiAKLSNpbmNsdWRlICJSdW5Mb29wLmgiCi0KICNpZiBQTEFURk9STShNQUMpCiAjaW5jbHVk
ZSA8d3RmL1JldGFpblB0ci5oPgogI2lmZGVmIF9fT0JKQ19fCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvVmlzaXRlZExpbmtQcm92aWRlci5oIGIvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL1Zpc2l0ZWRMaW5rUHJvdmlkZXIuaAppbmRleCBhNDI4ZDViODM2YjgwYWEzMmVk
YzUzN2NlMGRhMDY2N2Y4Njk2YWIxLi40NjFjNWFjOTRlN2MyYzRlNjBiMjkyZTI1OGJiZDQzYWRk
MzIwOWYxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvVmlzaXRlZExpbmtQ
cm92aWRlci5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9WaXNpdGVkTGlua1Byb3Zp
ZGVyLmgKQEAgLTI2LDkgKzI2LDkgQEAKICNpZm5kZWYgVmlzaXRlZExpbmtQcm92aWRlcl9oCiAj
ZGVmaW5lIFZpc2l0ZWRMaW5rUHJvdmlkZXJfaAogCi0jaW5jbHVkZSAiUnVuTG9vcC5oIgogI2lu
Y2x1ZGUgIlZpc2l0ZWRMaW5rVGFibGUuaCIKICNpbmNsdWRlIDxXZWJDb3JlL0xpbmtIYXNoLmg+
CisjaW5jbHVkZSA8V2ViQ29yZS9SdW5Mb29wLmg+CiAjaW5jbHVkZSA8d3RmL0ZvcndhcmQuaD4K
ICNpbmNsdWRlIDx3dGYvSGFzaFNldC5oPgogCkBAIC01OCw3ICs1OCw3IEBAIHByaXZhdGU6CiAg
ICAgVmlzaXRlZExpbmtUYWJsZSBtX3RhYmxlOwogCiAgICAgSGFzaFNldDxXZWJDb3JlOjpMaW5r
SGFzaCwgV2ViQ29yZTo6TGlua0hhc2hIYXNoPiBtX3BlbmRpbmdWaXNpdGVkTGlua3M7Ci0gICAg
UnVuTG9vcDo6VGltZXI8VmlzaXRlZExpbmtQcm92aWRlcj4gbV9wZW5kaW5nVmlzaXRlZExpbmtz
VGltZXI7CisgICAgV2ViQ29yZTo6UnVuTG9vcDo6VGltZXI8VmlzaXRlZExpbmtQcm92aWRlcj4g
bV9wZW5kaW5nVmlzaXRlZExpbmtzVGltZXI7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJDb25uZWN0aW9uVG9XZWJQ
cm9jZXNzLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJDb25uZWN0aW9uVG9XZWJQ
cm9jZXNzLmNwcAppbmRleCBiMWQxMDNmYmNlMWQyZjU5ZDEyOWVmZmUyMWRmMDgyOTY4Y2JiMDVm
Li5iZTgxNGMwYTlhZDIxNjBkZjM2MjI4Y2JhNzE2MTgzM2M5NDdhY2M1IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5jcHAKKysr
IGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuY3Bw
CkBAIC0zMCw2ICszMCw4IEBACiAjaW5jbHVkZSAiV2ViQ29udGV4dFVzZXJNZXNzYWdlQ29kZXJz
LmgiCiAjaW5jbHVkZSAiV2ViUHJvY2Vzc1Byb3h5LmgiCiAKK3VzaW5nIG5hbWVzcGFjZSBXZWJD
b3JlOworCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAogUGFzc1JlZlB0cjxXZWJDb25uZWN0aW9uVG9X
ZWJQcm9jZXNzPiBXZWJDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpjcmVhdGUoV2ViUHJvY2Vzc1By
b3h5KiBwcm9jZXNzLCBDb3JlSVBDOjpDb25uZWN0aW9uOjpJZGVudGlmaWVyIGNvbm5lY3Rpb25J
ZGVudGlmaWVyLCBSdW5Mb29wKiBydW5Mb29wKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL1dlYkNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuaCBiL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9XZWJDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmgKaW5kZXggYjlkNThmMmM3MDMwYjYy
NTc5N2IwM2E2ODVmMThmOWU3NGI2Y2VjYy4uZjQ5NjJlMjZjYzAzOTA2ZDU2N2YxN2JhYTZkZmEw
MTFkNTk1MzgzZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkNvbm5l
Y3Rpb25Ub1dlYlByb2Nlc3MuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViQ29u
bmVjdGlvblRvV2ViUHJvY2Vzcy5oCkBAIC0zNSwxNCArMzUsMTQgQEAgY2xhc3MgV2ViUHJvY2Vz
c1Byb3h5OwogCiBjbGFzcyBXZWJDb25uZWN0aW9uVG9XZWJQcm9jZXNzIDogcHVibGljIFdlYkNv
bm5lY3Rpb24sIENvcmVJUEM6OkNvbm5lY3Rpb246OkNsaWVudCB7CiBwdWJsaWM6Ci0gICAgc3Rh
dGljIFBhc3NSZWZQdHI8V2ViQ29ubmVjdGlvblRvV2ViUHJvY2Vzcz4gY3JlYXRlKFdlYlByb2Nl
c3NQcm94eSosIENvcmVJUEM6OkNvbm5lY3Rpb246OklkZW50aWZpZXIsIFJ1bkxvb3AqKTsKKyAg
ICBzdGF0aWMgUGFzc1JlZlB0cjxXZWJDb25uZWN0aW9uVG9XZWJQcm9jZXNzPiBjcmVhdGUoV2Vi
UHJvY2Vzc1Byb3h5KiwgQ29yZUlQQzo6Q29ubmVjdGlvbjo6SWRlbnRpZmllciwgV2ViQ29yZTo6
UnVuTG9vcCopOwogCiAgICAgQ29yZUlQQzo6Q29ubmVjdGlvbiogY29ubmVjdGlvbigpIHsgcmV0
dXJuIG1fY29ubmVjdGlvbi5nZXQoKTsgfQogCiAgICAgdm9pZCBpbnZhbGlkYXRlKCk7CiAKIHBy
aXZhdGU6Ci0gICAgV2ViQ29ubmVjdGlvblRvV2ViUHJvY2VzcyhXZWJQcm9jZXNzUHJveHkqLCBD
b3JlSVBDOjpDb25uZWN0aW9uOjpJZGVudGlmaWVyLCBSdW5Mb29wKik7CisgICAgV2ViQ29ubmVj
dGlvblRvV2ViUHJvY2VzcyhXZWJQcm9jZXNzUHJveHkqLCBDb3JlSVBDOjpDb25uZWN0aW9uOjpJ
ZGVudGlmaWVyLCBXZWJDb3JlOjpSdW5Mb29wKik7CiAKICAgICAvLyBXZWJDb25uZWN0aW9uCiAg
ICAgdmlydHVhbCB2b2lkIHBvc3RNZXNzYWdlKGNvbnN0IFN0cmluZyYsIEFQSU9iamVjdCopOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkNvbnRleHQuY3BwIGIvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkNvbnRleHQuY3BwCmluZGV4IDFjM2RkM2I2YzQ1ZmYy
MjBmYmJhNzYwYmI1YjljYTViY2EzYjUxNTMuLmJiMzU2MGJlMjllNDUzNzZmYmI3ZTI4MDRjYjA5
NDQ4NjRkMzk4NWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJDb250
ZXh0LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViQ29udGV4dC5jcHAKQEAg
LTMxLDcgKzMxLDYgQEAKICNpbmNsdWRlICJJbmplY3RlZEJ1bmRsZU1lc3NhZ2VLaW5kcy5oIgog
I2luY2x1ZGUgIkxvZ2dpbmcuaCIKICNpbmNsdWRlICJNdXRhYmxlRGljdGlvbmFyeS5oIgotI2lu
Y2x1ZGUgIlJ1bkxvb3AuaCIKICNpbmNsdWRlICJTYW5kYm94RXh0ZW5zaW9uLmgiCiAjaW5jbHVk
ZSAiU3RhdGlzdGljc0RhdGEuaCIKICNpbmNsdWRlICJUZXh0Q2hlY2tlci5oIgpAQCAtNTgsNiAr
NTcsNyBAQAogI2luY2x1ZGUgPFdlYkNvcmUvTGlua0hhc2guaD4KICNpbmNsdWRlIDxXZWJDb3Jl
L0xvZ2dpbmcuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1Jlc291cmNlUmVxdWVzdC5oPgorI2luY2x1
ZGUgPFdlYkNvcmUvUnVuTG9vcC5oPgogI2luY2x1ZGUgPHJ1bnRpbWUvSW5pdGlhbGl6ZVRocmVh
ZGluZy5oPgogI2luY2x1ZGUgPHd0Zi9DdXJyZW50VGltZS5oPgogI2luY2x1ZGUgPHd0Zi9NYWlu
VGhyZWFkLmg+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mvd2luL1dlYlZp
ZXcuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL3dpbi9XZWJWaWV3LmNwcAppbmRleCBk
NDRlMjU1NjBlMmUxNTg1MTVhMDJkM2QyZjk4MzdhNWIxMGI3NWVjLi5lOWEzZDA0YjA4OWNkYzRm
ZDE0MDQyY2E2N2MwODQ1NjgzODdjN2ZiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3Mvd2luL1dlYlZpZXcuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy93aW4v
V2ViVmlldy5jcHAKQEAgLTMyLDExICszMiw3IEBACiAjaW5jbHVkZSAiTmF0aXZlV2ViS2V5Ym9h
cmRFdmVudC5oIgogI2luY2x1ZGUgIk5hdGl2ZVdlYk1vdXNlRXZlbnQuaCIKICNpbmNsdWRlICJO
YXRpdmVXZWJXaGVlbEV2ZW50LmgiCi0jaW5jbHVkZSAiUnVuTG9vcC5oIgogI2luY2x1ZGUgIldL
QVBJQ2FzdC5oIgotI2lmIFVTRShDRykKLSNpbmNsdWRlICJXS0NBQ0ZWaWV3V2luZG93LmgiCi0j
ZW5kaWYKICNpbmNsdWRlICJXZWJDb250ZXh0LmgiCiAjaW5jbHVkZSAiV2ViQ29udGV4dE1lbnVQ
cm94eVdpbi5oIgogI2luY2x1ZGUgIldlYkVkaXRDb21tYW5kUHJveHkuaCIKQEAgLTQ5LDE4ICs0
NSwyMSBAQAogI2luY2x1ZGUgPFdlYkNvcmUvRHJhZ1Nlc3Npb24uaD4KICNpbmNsdWRlIDxXZWJD
b3JlL0VkaXRvci5oPgogI2luY2x1ZGUgPFdlYkNvcmUvRmxvYXRSZWN0Lmg+Ci0jaWYgVVNFKENH
KQotI2luY2x1ZGUgPFdlYkNvcmUvR3JhcGhpY3NDb250ZXh0Q0cuaD4KLSNlbmRpZgogI2luY2x1
ZGUgPFdlYkNvcmUvSW50UmVjdC5oPgogI2luY2x1ZGUgPFdlYkNvcmUvTm90SW1wbGVtZW50ZWQu
aD4KICNpbmNsdWRlIDxXZWJDb3JlL1JlZ2lvbi5oPgorI2luY2x1ZGUgPFdlYkNvcmUvUnVuTG9v
cC5oPgogI2luY2x1ZGUgPFdlYkNvcmUvU29mdExpbmtpbmcuaD4KICNpbmNsdWRlIDxXZWJDb3Jl
L1dlYkNvcmVJbnN0YW5jZUhhbmRsZS5oPgogI2luY2x1ZGUgPFdlYkNvcmUvV2luZG93TWVzc2Fn
ZUJyb2FkY2FzdGVyLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9XaW5kb3dzVG91Y2guaD4KICNpbmNs
dWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KIAorI2lmIFVTRShDRykKKyNpbmNsdWRlICJXS0NB
Q0ZWaWV3V2luZG93LmgiCisjaW5jbHVkZSA8V2ViQ29yZS9HcmFwaGljc0NvbnRleHRDRy5oPgor
I2VuZGlmCisKICNpZiBFTkFCTEUoRlVMTFNDUkVFTl9BUEkpCiAjaW5jbHVkZSAiV2ViRnVsbFNj
cmVlbk1hbmFnZXJQcm94eS5oIgogI2luY2x1ZGUgPFdlYkNvcmUvRnVsbFNjcmVlbkNvbnRyb2xs
ZXIuaD4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYktpdDIueGNvZGVwcm9qL3Byb2pl
Y3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJLaXQyL1dlYktpdDIueGNvZGVwcm9qL3Byb2plY3QucGJ4
cHJvagppbmRleCBmODUxZWRjNzRhNjI1ZTUzYmU2OTNmMGJhMjBlNGU3M2M0ZDJkZThkLi4zM2Fh
ODEzNTNlNGIwODY1NWFiMzU5YWRiMWRiZDA3YjVmOGRmYTE1IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0Mi9XZWJLaXQyLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dl
YktpdDIvV2ViS2l0Mi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC00NjUsNyArNDY1LDYg
QEAKIAkJQjYzNDAzRjkxNDkxMEQ1NzAwMTA3MEI1IC8qIEFQSU9iamVjdC5jcHAgaW4gU291cmNl
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCNjM0MDNGODE0OTEwRDU3MDAx
MDcwQjUgLyogQVBJT2JqZWN0LmNwcCAqLzsgfTsKIAkJQjg3OEI2MTUxMzM0MjhEQzAwNjg4OEU5
IC8qIENvcnJlY3Rpb25QYW5lbC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gQjg3OEI2MTMxMzM0MjhEQzAwNjg4OEU5IC8qIENvcnJlY3Rpb25QYW5lbC5o
ICovOyB9OwogCQlCODc4QjYxNjEzMzQyOERDMDA2ODg4RTkgLyogQ29ycmVjdGlvblBhbmVsLm1t
IGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQjg3OEI2MTQx
MzM0MjhEQzAwNjg4OEU5IC8qIENvcnJlY3Rpb25QYW5lbC5tbSAqLzsgfTsKLQkJQkMwMDkyRjcx
MTU4MzdBMzAwRTBBRTJBIC8qIFJ1bkxvb3BNYWMubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCQzAwOTJGNTExNTgzN0EzMDBFMEFFMkEgLyogUnVuTG9v
cE1hYy5tbSAqLzsgfTsKIAkJQkMwMDkyRjgxMTU4MzdBMzAwRTBBRTJBIC8qIFdvcmtRdWV1ZU1h
Yy5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCQzAw
OTJGNjExNTgzN0EzMDBFMEFFMkEgLyogV29ya1F1ZXVlTWFjLmNwcCAqLzsgfTsKIAkJQkMwMzJE
NzUxMEY0Mzc4RDAwNThDMTVBIC8qIFdlYkNocm9tZUNsaWVudC5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkMwMzJENjAxMEY0Mzc4RDAwNThDMTVBIC8q
IFdlYkNocm9tZUNsaWVudC5oICovOyB9OwogCQlCQzAzMkQ3NzEwRjQzNzhEMDA1OEMxNUEgLyog
V2ViQ29udGV4dE1lbnVDbGllbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IEJDMDMyRDYyMTBGNDM3OEQwMDU4QzE1QSAvKiBXZWJDb250ZXh0TWVudUNs
aWVudC5oICovOyB9OwpAQCAtNTU5LDggKzU1OCw2IEBACiAJCUJDMkQwMjE3MTJBQzQxQ0IwMEU3
MzJBMyAvKiBTYW1lRG9jdW1lbnROYXZpZ2F0aW9uVHlwZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkMyRDAyMTYxMkFDNDFDQjAwRTczMkEzIC8qIFNh
bWVEb2N1bWVudE5hdmlnYXRpb25UeXBlLmggKi87IH07CiAJCUJDMkQwMjE5MTJBQzQyNkMwMEU3
MzJBMyAvKiBXS1BhZ2VMb2FkVHlwZXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IEJDMkQwMjE4MTJBQzQyNkMwMEU3MzJBMyAvKiBXS1BhZ2VMb2FkVHlw
ZXMuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlC
QzJERkJBMzEyQTc2MUE1MDBFNzMyQTMgLyogV2ViUHJlZmVyZW5jZXNDRi5jcHAgaW4gU291cmNl
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCQzJERkJBMjEyQTc2MUE1MDBF
NzMyQTMgLyogV2ViUHJlZmVyZW5jZXNDRi5jcHAgKi87IH07Ci0JCUJDMkU2RTg3MTE0MTk3MTUw
MEE2M0IxRSAvKiBSdW5Mb29wLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IEJDMkU2RTc3MTE0MTk3MEMwMEE2M0IxRSAvKiBSdW5Mb29wLmNwcCAqLzsg
fTsKLQkJQkMyRTZFODgxMTQxOTcxNTAwQTYzQjFFIC8qIFJ1bkxvb3AuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDMkU2RTc4MTE0MTk3MEMwMEE2M0Ix
RSAvKiBSdW5Mb29wLmggKi87IH07CiAJCUJDMkU2RThEMTE0MTk3MTUwMEE2M0IxRSAvKiBXb3Jr
UXVldWUuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
QkMyRTZFN0QxMTQxOTcwQzAwQTYzQjFFIC8qIFdvcmtRdWV1ZS5jcHAgKi87IH07CiAJCUJDMkU2
RThFMTE0MTk3MTUwMEE2M0IxRSAvKiBXb3JrUXVldWUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDMkU2RTdFMTE0MTk3MEMwMEE2M0IxRSAvKiBXb3Jr
UXVldWUuaCAqLzsgfTsKIAkJQkMzMDY1QzQxMjU5MkY4OTAwRTcxMjc4IC8qIFdlYlByb2Nlc3NN
YWMubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCQzMw
NjVDMzEyNTkyRjg5MDBFNzEyNzggLyogV2ViUHJvY2Vzc01hYy5tbSAqLzsgfTsKQEAgLTE0ODMs
NyArMTQ4MCw2IEBACiAJCUI2MzQwM0Y4MTQ5MTBENTcwMDEwNzBCNSAvKiBBUElPYmplY3QuY3Bw
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gQVBJT2JqZWN0LmNwcDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQjg3OEI2MTMxMzM0MjhEQzAwNjg4OEU5IC8qIENv
cnJlY3Rpb25QYW5lbC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBDb3JyZWN0
aW9uUGFuZWwuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQjg3OEI2MTQxMzM0MjhE
QzAwNjg4OEU5IC8qIENvcnJlY3Rpb25QYW5lbC5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
Lm9iamNwcDsgcGF0aCA9IENvcnJlY3Rpb25QYW5lbC5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKLQkJQkMwMDkyRjUxMTU4MzdBMzAwRTBBRTJBIC8qIFJ1bkxvb3BNYWMubW0gKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBSdW5Mb29wTWFjLm1tOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQlCQzAwOTJGNjExNTgzN0EzMDBFMEFFMkEgLyogV29ya1F1
ZXVlTWFjLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdvcmtRdWV1
ZU1hYy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUJDMDMyRDYwMTBGNDM3OEQw
MDU4QzE1QSAvKiBXZWJDaHJvbWVDbGllbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gV2ViQ2hyb21lQ2xpZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUJD
MDMyRDYyMTBGNDM3OEQwMDU4QzE1QSAvKiBXZWJDb250ZXh0TWVudUNsaWVudC5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJDb250ZXh0TWVudUNsaWVudC5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTU4Myw4ICsxNTc5LDYgQEAKIAkJQkMyRDAyMTYxMkFD
NDFDQjAwRTczMkEzIC8qIFNhbWVEb2N1bWVudE5hdmlnYXRpb25UeXBlLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNhbWVEb2N1bWVudE5hdmlnYXRpb25UeXBlLmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUJDMkQwMjE4MTJBQzQyNkMwMEU3MzJBMyAvKiBXS1Bh
Z2VMb2FkVHlwZXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV0tQYWdlTG9h
ZFR5cGVzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUJDMkRGQkEyMTJBNzYxQTUw
MEU3MzJBMyAvKiBXZWJQcmVmZXJlbmNlc0NGLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
LmNwcDsgbmFtZSA9IFdlYlByZWZlcmVuY2VzQ0YuY3BwOyBwYXRoID0gY2YvV2ViUHJlZmVyZW5j
ZXNDRi5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCUJDMkU2RTc3MTE0MTk3MEMw
MEE2M0IxRSAvKiBSdW5Mb29wLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0
aCA9IFJ1bkxvb3AuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQlCQzJFNkU3ODEx
NDE5NzBDMDBBNjNCMUUgLyogUnVuTG9vcC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBSdW5Mb29wLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUJDMkU2RTdEMTE0
MTk3MEMwMEE2M0IxRSAvKiBXb3JrUXVldWUuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAu
Y3BwOyBwYXRoID0gV29ya1F1ZXVlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
QkMyRTZFN0UxMTQxOTcwQzAwQTYzQjFFIC8qIFdvcmtRdWV1ZS5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBXb3JrUXVldWUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJQkMzMDY1QzMxMjU5MkY4OTAwRTcxMjc4IC8qIFdlYlByb2Nlc3NNYWMubW0gKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBXZWJQcm9jZXNzTWFjLm1tOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwpAQCAtMjI2MCw3ICsyMjU0LDYgQEAKIAkJCQkxQTI0QjVGMDEx
RjUzMUU4MDBDMzgyNjkgLyogTWFjaFV0aWxpdGllcy5jcHAgKi8sCiAJCQkJMUEyNEI1RjExMUY1
MzFFODAwQzM4MjY5IC8qIE1hY2hVdGlsaXRpZXMuaCAqLywKIAkJCQlDMEUzQUE0ODEyMDlFNDUw
MDBBNDlEMDEgLyogTW9kdWxlTWFjLm1tICovLAotCQkJCUJDMDA5MkY1MTE1ODM3QTMwMEUwQUUy
QSAvKiBSdW5Mb29wTWFjLm1tICovLAogCQkJCTFBMjRCRjM5MTIwODk2QTYwMEZCQjA1OSAvKiBT
aGFyZWRNZW1vcnlNYWMuY3BwICovLAogCQkJCUJDMDA5MkY2MTE1ODM3QTMwMEUwQUUyQSAvKiBX
b3JrUXVldWVNYWMuY3BwICovLAogCQkJKTsKQEAgLTMyODIsOCArMzI3NSw2IEBACiAJCQkJQzBF
M0FBNDUxMjA5RTJCQTAwQTQ5RDAxIC8qIE1vZHVsZS5jcHAgKi8sCiAJCQkJQzBFM0FBNDQxMjA5
RTJCQTAwQTQ5RDAxIC8qIE1vZHVsZS5oICovLAogCQkJCUJDODc4MEZCMTE2MUMyQjgwMENDMjc2
OCAvKiBQbGF0Zm9ybVByb2Nlc3NJZGVudGlmaWVyLmggKi8sCi0JCQkJQkMyRTZFNzcxMTQxOTcw
QzAwQTYzQjFFIC8qIFJ1bkxvb3AuY3BwICovLAotCQkJCUJDMkU2RTc4MTE0MTk3MEMwMEE2M0Ix
RSAvKiBSdW5Mb29wLmggKi8sCiAJCQkJMUEyNEJFRDMxMjA4OTREMTAwRkJCMDU5IC8qIFNoYXJl
ZE1lbW9yeS5oICovLAogCQkJCUJDMkU2RTdEMTE0MTk3MEMwMEE2M0IxRSAvKiBXb3JrUXVldWUu
Y3BwICovLAogCQkJCUJDMkU2RTdFMTE0MTk3MEMwMEE2M0IxRSAvKiBXb3JrUXVldWUuaCAqLywK
QEAgLTM4NDgsNyArMzgzOSw2IEBACiAJCQkJQkMxQTdDNTgxMTM2RTE5QzAwRkI3MTY3IC8qIFBy
b2Nlc3NMYXVuY2hlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkM1OTcwNzUxMTY1OTFEMDAwNTUx
RkNBIC8qIFByb2Nlc3NNb2RlbC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMUEzMDA2NkUxMTEwRjRG
NzAwMzE5MzdDIC8qIFJlc3BvbnNpdmVuZXNzVGltZXIuaCBpbiBIZWFkZXJzICovLAotCQkJCUJD
MkU2RTg4MTE0MTk3MTUwMEE2M0IxRSAvKiBSdW5Mb29wLmggaW4gSGVhZGVycyAqLywKIAkJCQlC
QzJEMDIxNzEyQUM0MUNCMDBFNzMyQTMgLyogU2FtZURvY3VtZW50TmF2aWdhdGlvblR5cGUuaCBp
biBIZWFkZXJzICovLAogCQkJCTFBQUI0QThEMTI5NkYwQTIwMDIzOTUyRiAvKiBTYW5kYm94RXh0
ZW5zaW9uLmggaW4gSGVhZGVycyAqLywKIAkJCQk1MUQxMzA1NDEzODJFQUMwMDAzNTFFREQgLyog
U2VjSXRlbVJlcXVlc3REYXRhLmggaW4gSGVhZGVycyAqLywKQEAgLTQ1ODEsOCArNDU3MSw2IEBA
CiAJCQkJMUFFMTE3RjYxMURCQjMwOTAwOTgxNjE1IC8qIFByb2Nlc3NMYXVuY2hlci5jcHAgaW4g
U291cmNlcyAqLywKIAkJCQlCQzExMUIxRDExMkY1RkU2MDAzMzdCQUIgLyogUHJvY2Vzc0xhdW5j
aGVyTWFjLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJQkMxMTFCMDkxMTJGNUUzQzAwMzM3QkFCIC8q
IFJlc3BvbnNpdmVuZXNzVGltZXIuY3BwIGluIFNvdXJjZXMgKi8sCi0JCQkJQkMyRTZFODcxMTQx
OTcxNTAwQTYzQjFFIC8qIFJ1bkxvb3AuY3BwIGluIFNvdXJjZXMgKi8sCi0JCQkJQkMwMDkyRjcx
MTU4MzdBMzAwRTBBRTJBIC8qIFJ1bkxvb3BNYWMubW0gaW4gU291cmNlcyAqLywKIAkJCQkxQUFC
NEFBQTEyOTZGMTU0MDAyMzk1MkYgLyogU2FuZGJveEV4dGVuc2lvbk1hYy5tbSBpbiBTb3VyY2Vz
ICovLAogCQkJCTUxRDEzMDUzMTM4MkVBQzAwMDM1MUVERCAvKiBTZWNJdGVtUmVxdWVzdERhdGEu
Y3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNTFEMTMwNTUxMzgyRUFDMDAwMzUxRUREIC8qIFNlY0l0
ZW1SZXNwb25zZURhdGEuY3BwIGluIFNvdXJjZXMgKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvTmV0c2NhcGUvTlBSdW50aW1lT2JqZWN0TWFwLmggYi9T
b3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvTmV0c2NhcGUvTlBSdW50aW1lT2JqZWN0
TWFwLmgKaW5kZXggYmVmNzAxYmVlNzk1NjgyNmM4ODYwNDJlMGU3ODIyYzM0ZTg0NTdmMi4uZGVm
ZmQ1NDMxN2QxN2M1MTg3NWIxZTcyZjk1OTY4NTQ2NzBjMDM2ZCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL05ldHNjYXBlL05QUnVudGltZU9iamVjdE1hcC5o
CisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9OZXRzY2FwZS9OUFJ1bnRp
bWVPYmplY3RNYXAuaApAQCAtMjYsOSArMjYsNyBAQAogI2lmbmRlZiBOUEpTT2JqZWN0V3JhcHBl
ck1hcF9oCiAjZGVmaW5lIE5QSlNPYmplY3RXcmFwcGVyTWFwX2gKIAotCi0jaW5jbHVkZSAiUnVu
TG9vcC5oIgotCisjaW5jbHVkZSA8V2ViQ29yZS9SdW5Mb29wLmg+CiAjaW5jbHVkZSA8aGVhcC9X
ZWFrLmg+CiAjaW5jbHVkZSA8d3RmL0ZvcndhcmQuaD4KICNpbmNsdWRlIDx3dGYvSGFzaE1hcC5o
PgpAQCAtOTgsNyArOTYsNyBAQCBwcml2YXRlOgogICAgIEhhc2hNYXA8SlNDOjpKU09iamVjdCos
IE5QSlNPYmplY3QqPiBtX25wSlNPYmplY3RzOwogICAgIEhhc2hNYXA8TlBPYmplY3QqLCBKU0M6
OldlYWs8SlNOUE9iamVjdD4gPiBtX2pzTlBPYmplY3RzOwogICAgIFZlY3RvcjxOUE9iamVjdCo+
IG1fbnBPYmplY3RzVG9GaW5hbGl6ZTsKLSAgICBSdW5Mb29wOjpUaW1lcjxOUFJ1bnRpbWVPYmpl
Y3RNYXA+IG1fZmluYWxpemF0aW9uVGltZXI7CisgICAgV2ViQ29yZTo6UnVuTG9vcDo6VGltZXI8
TlBSdW50aW1lT2JqZWN0TWFwPiBtX2ZpbmFsaXphdGlvblRpbWVyOwogfTsKIAogfSAvLyBuYW1l
c3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdp
bnMvTmV0c2NhcGUvTmV0c2NhcGVQbHVnaW4uaCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
UGx1Z2lucy9OZXRzY2FwZS9OZXRzY2FwZVBsdWdpbi5oCmluZGV4IDg0NTQxODIwYzg2MDRjOWU1
OGFmMWM3MWY4ZDc5YmE4ZDllODI4N2EuLmFkYWQyZDAxNWI3MGY2MmMzMTY5Mzk2MTY2YTZhM2Fl
NGM4NDAzMTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9O
ZXRzY2FwZS9OZXRzY2FwZVBsdWdpbi5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
UGx1Z2lucy9OZXRzY2FwZS9OZXRzY2FwZVBsdWdpbi5oCkBAIC0yOCwxMCArMjgsMTAgQEAKIAog
I2luY2x1ZGUgIk5ldHNjYXBlUGx1Z2luTW9kdWxlLmgiCiAjaW5jbHVkZSAiUGx1Z2luLmgiCi0j
aW5jbHVkZSAiUnVuTG9vcC5oIgogI2luY2x1ZGUgPFdlYkNvcmUvQWZmaW5lVHJhbnNmb3JtLmg+
CiAjaW5jbHVkZSA8V2ViQ29yZS9HcmFwaGljc0xheWVyLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9J
bnRSZWN0Lmg+CisjaW5jbHVkZSA8V2ViQ29yZS9SdW5Mb29wLmg+CiAjaW5jbHVkZSA8d3RmL0hh
c2hNYXAuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9DU3RyaW5nLmg+CiAjaW5jbHVkZSA8d3RmL3Rl
eHQvU3RyaW5nSGFzaC5oPgpAQCAtMjkxLDcgKzI5MSw3IEBAIHByaXZhdGU6CiAgICAgICAgIGJv
b2wgbV9yZXBlYXQ7CiAgICAgICAgIFRpbWVyRnVuYyBtX3RpbWVyRnVuYzsKIAotICAgICAgICBS
dW5Mb29wOjpUaW1lcjxUaW1lcj4gbV90aW1lcjsKKyAgICAgICAgV2ViQ29yZTo6UnVuTG9vcDo6
VGltZXI8VGltZXI+IG1fdGltZXI7CiAgICAgfTsKICAgICB0eXBlZGVmIEhhc2hNYXA8dW5zaWdu
ZWQsIFRpbWVyKj4gVGltZXJNYXA7CiAgICAgVGltZXJNYXAgbV90aW1lcnM7CkBAIC0zMzIsNyAr
MzMyLDcgQEAgcHJpdmF0ZToKIAogICAgIC8vIEZJWE1FOiBJdCdzIGEgYml0IHdhc3RlZnVsIHRv
IGhhdmUgb25lIG51bGwgZXZlbnQgdGltZXIgcGVyIHBsdWctaW4uCiAgICAgLy8gV2Ugc2hvdWxk
IGludmVzdGlnYXRlIGhhdmluZyBvbmUgcGVyIHdpbmRvdy4KLSAgICBSdW5Mb29wOjpUaW1lcjxO
ZXRzY2FwZVBsdWdpbj4gbV9udWxsRXZlbnRUaW1lcjsKKyAgICBXZWJDb3JlOjpSdW5Mb29wOjpU
aW1lcjxOZXRzY2FwZVBsdWdpbj4gbV9udWxsRXZlbnRUaW1lcjsKICAgICBOUF9DR0NvbnRleHQg
bV9ucENHQ29udGV4dDsKICNlbmRpZgogI2VsaWYgUExVR0lOX0FSQ0hJVEVDVFVSRShXSU4pCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvTmV0c2NhcGUvTmV0
c2NhcGVQbHVnaW5TdHJlYW0uaCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9O
ZXRzY2FwZS9OZXRzY2FwZVBsdWdpblN0cmVhbS5oCmluZGV4IGRlMjY4MjdmYzcyYjY0Zjg4ZjVk
MDFkNDM2NWU2ZmI0Y2MzZTc0MDMuLjA1ODczZTRmNGE1NjFiNzY0ZGFhZWUyNjAyMTQ1MDAxOGRm
NzZjMmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9OZXRz
Y2FwZS9OZXRzY2FwZVBsdWdpblN0cmVhbS5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nl
c3MvUGx1Z2lucy9OZXRzY2FwZS9OZXRzY2FwZVBsdWdpblN0cmVhbS5oCkBAIC0yNiw4ICsyNiw4
IEBACiAjaWZuZGVmIE5ldHNjYXBlUGx1Z2luU3RyZWFtX2gKICNkZWZpbmUgTmV0c2NhcGVQbHVn
aW5TdHJlYW1faAogCi0jaW5jbHVkZSAiUnVuTG9vcC5oIgogI2luY2x1ZGUgPFdlYkNvcmUvRmls
ZVN5c3RlbS5oPgorI2luY2x1ZGUgPFdlYkNvcmUvUnVuTG9vcC5oPgogI2luY2x1ZGUgPFdlYkNv
cmUvbnBydW50aW1lX2ludGVybmFsLmg+CiAjaW5jbHVkZSA8d3RmL0ZvcndhcmQuaD4KICNpbmNs
dWRlIDx3dGYvUGFzc1JlZlB0ci5oPgpAQCAtMzYsNyArMzYsNyBAQAogI2luY2x1ZGUgPHd0Zi90
ZXh0L0NTdHJpbmcuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewotICAgIGNsYXNzIEtVUkw7Citj
bGFzcyBLVVJMOwogfQogCiBuYW1lc3BhY2UgV2ViS2l0IHsKQEAgLTEwMyw3ICsxMDMsNyBAQCBw
cml2YXRlOgogICAgIENTdHJpbmcgbV9taW1lVHlwZTsKICAgICBDU3RyaW5nIG1faGVhZGVyczsK
IAotICAgIFJ1bkxvb3A6OlRpbWVyPE5ldHNjYXBlUGx1Z2luU3RyZWFtPiBtX2RlbGl2ZXJ5RGF0
YVRpbWVyOworICAgIFdlYkNvcmU6OlJ1bkxvb3A6OlRpbWVyPE5ldHNjYXBlUGx1Z2luU3RyZWFt
PiBtX2RlbGl2ZXJ5RGF0YVRpbWVyOwogICAgIE93blB0cjwgVmVjdG9yPHVpbnQ4X3Q+ID4gbV9k
ZWxpdmVyeURhdGE7CiAgICAgYm9vbCBtX3N0b3BTdHJlYW1XaGVuRG9uZURlbGl2ZXJpbmc7CiB9
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL1BsdWdpblZp
ZXcuaCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9QbHVnaW5WaWV3LmgKaW5k
ZXggOTYyNGFjOTU0ZmFiZThmNTUyMjM0YjgzNWRmNzAzMmIzYjYwYWE1Mi4uY2Q2MzYzYTU4YmJl
YWQzMTgxNTI1NDk1NTU3YzhkZGViOTMxOTZhZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9QbHVnaW5zL1BsdWdpblZpZXcuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQ
cm9jZXNzL1BsdWdpbnMvUGx1Z2luVmlldy5oCkBAIC0yOSwxMyArMjksMTIgQEAKICNpbmNsdWRl
ICJOUFJ1bnRpbWVPYmplY3RNYXAuaCIKICNpbmNsdWRlICJQbHVnaW4uaCIKICNpbmNsdWRlICJQ
bHVnaW5Db250cm9sbGVyLmgiCi0jaW5jbHVkZSAiUnVuTG9vcC5oIgogI2luY2x1ZGUgIldlYkZy
YW1lLmgiCi0KICNpbmNsdWRlIDxXZWJDb3JlL01lZGlhQ2FuU3RhcnRMaXN0ZW5lci5oPgorI2lu
Y2x1ZGUgPFdlYkNvcmUvUGx1Z2luVmlld0Jhc2UuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1Jlc291
cmNlRXJyb3IuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1Jlc291cmNlUmVzcG9uc2UuaD4KLSNpbmNs
dWRlIDxXZWJDb3JlL1BsdWdpblZpZXdCYXNlLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9SdW5Mb29w
Lmg+CiAjaW5jbHVkZSA8d3RmL0RlcXVlLmg+CiAKIC8vIEZJWE1FOiBFdmVudHVhbGx5IHRoaXMg
c2hvdWxkIG1vdmUgdG8gV2ViQ29yZS4KQEAgLTE4MCw3ICsxNzksNyBAQCBwcml2YXRlOgogCiAg
ICAgLy8gUGVuZGluZyBVUkxSZXF1ZXN0cyB0aGF0IHRoZSBwbHVnLWluIGhhcyBtYWRlLgogICAg
IERlcXVlPFJlZlB0cjxVUkxSZXF1ZXN0PiA+IG1fcGVuZGluZ1VSTFJlcXVlc3RzOwotICAgIFJ1
bkxvb3A6OlRpbWVyPFBsdWdpblZpZXc+IG1fcGVuZGluZ1VSTFJlcXVlc3RzVGltZXI7CisgICAg
V2ViQ29yZTo6UnVuTG9vcDo6VGltZXI8UGx1Z2luVmlldz4gbV9wZW5kaW5nVVJMUmVxdWVzdHNU
aW1lcjsKIAogICAgIC8vIFBlbmRpbmcgZnJhbWUgbG9hZHMgdGhhdCB0aGUgcGx1Zy1pbiBoYXMg
bWFkZS4KICAgICB0eXBlZGVmIEhhc2hNYXA8UmVmUHRyPFdlYkZyYW1lPiwgUmVmUHRyPFVSTFJl
cXVlc3Q+ID4gRnJhbWVMb2FkTWFwOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJv
Y2Vzcy9XZWJDb25uZWN0aW9uVG9VSVByb2Nlc3MuY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJv
Y2Vzcy9XZWJDb25uZWN0aW9uVG9VSVByb2Nlc3MuY3BwCmluZGV4IDlhNjRhZGQxYzQyM2IwYjAx
NDdkOTJiNTI1NTA5Mjg1MWU2N2Y2ZDEuLjVlNzk1NWQ2NzYxOTAxZGVkYjdjMmRjYzY3NGQwZmIz
OWYyNjdjNzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29ubmVj
dGlvblRvVUlQcm9jZXNzLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNv
bm5lY3Rpb25Ub1VJUHJvY2Vzcy5jcHAKQEAgLTMwLDYgKzMwLDggQEAKICNpbmNsdWRlICJXZWJD
b25uZWN0aW9uTWVzc2FnZUtpbmRzLmgiCiAjaW5jbHVkZSAiV2ViUHJvY2Vzcy5oIgogCit1c2lu
ZyBuYW1lc3BhY2UgV2ViQ29yZTsKKwogbmFtZXNwYWNlIFdlYktpdCB7CiAKIFBhc3NSZWZQdHI8
V2ViQ29ubmVjdGlvblRvVUlQcm9jZXNzPiBXZWJDb25uZWN0aW9uVG9VSVByb2Nlc3M6OmNyZWF0
ZShXZWJQcm9jZXNzKiBwcm9jZXNzLCBDb3JlSVBDOjpDb25uZWN0aW9uOjpJZGVudGlmaWVyIGNv
bm5lY3Rpb25JZGVudGlmaWVyLCBSdW5Mb29wKiBydW5Mb29wKQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb25uZWN0aW9uVG9VSVByb2Nlc3MuaCBiL1NvdXJjZS9X
ZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29ubmVjdGlvblRvVUlQcm9jZXNzLmgKaW5kZXggMWQ5Yzk2
YzgwYjYwOGQ4ZTI4OGRiZDEwNTc2ZGEyYjc3MjQzYThjNS4uNDJiOWNkNzE2YjEyNDczMGUyZDgw
MGFkYzUxNGM1MDg0MmU1MDMxZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy9XZWJDb25uZWN0aW9uVG9VSVByb2Nlc3MuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9j
ZXNzL1dlYkNvbm5lY3Rpb25Ub1VJUHJvY2Vzcy5oCkBAIC0zNSwxNCArMzUsMTQgQEAgY2xhc3Mg
V2ViUHJvY2VzczsKIAogY2xhc3MgV2ViQ29ubmVjdGlvblRvVUlQcm9jZXNzIDogcHVibGljIFdl
YkNvbm5lY3Rpb24sIENvcmVJUEM6OkNvbm5lY3Rpb246OkNsaWVudCB7CiBwdWJsaWM6Ci0gICAg
c3RhdGljIFBhc3NSZWZQdHI8V2ViQ29ubmVjdGlvblRvVUlQcm9jZXNzPiBjcmVhdGUoV2ViUHJv
Y2VzcyosIENvcmVJUEM6OkNvbm5lY3Rpb246OklkZW50aWZpZXIsIFJ1bkxvb3AqKTsKKyAgICBz
dGF0aWMgUGFzc1JlZlB0cjxXZWJDb25uZWN0aW9uVG9VSVByb2Nlc3M+IGNyZWF0ZShXZWJQcm9j
ZXNzKiwgQ29yZUlQQzo6Q29ubmVjdGlvbjo6SWRlbnRpZmllciwgV2ViQ29yZTo6UnVuTG9vcCop
OwogCiAgICAgQ29yZUlQQzo6Q29ubmVjdGlvbiogY29ubmVjdGlvbigpIHsgcmV0dXJuIG1fY29u
bmVjdGlvbi5nZXQoKTsgfQogCiAgICAgdm9pZCBpbnZhbGlkYXRlKCk7CiAKIHByaXZhdGU6Ci0g
ICAgV2ViQ29ubmVjdGlvblRvVUlQcm9jZXNzKFdlYlByb2Nlc3MqLCBDb3JlSVBDOjpDb25uZWN0
aW9uOjpJZGVudGlmaWVyLCBSdW5Mb29wKik7CisgICAgV2ViQ29ubmVjdGlvblRvVUlQcm9jZXNz
KFdlYlByb2Nlc3MqLCBDb3JlSVBDOjpDb25uZWN0aW9uOjpJZGVudGlmaWVyLCBXZWJDb3JlOjpS
dW5Mb29wKik7CiAKICAgICAvLyBXZWJDb25uZWN0aW9uCiAgICAgdmlydHVhbCB2b2lkIHBvc3RN
ZXNzYWdlKGNvbnN0IFN0cmluZyYsIEFQSU9iamVjdCopOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJHcmFwaGljc0xheWVyLmggYi9Tb3Vy
Y2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkdyYXBoaWNzTGF5ZXIuaApp
bmRleCBiNzUwOWIzMzRmMmY1NGQ5ZDI3ZTNmY2JlNTIxOWExMGFkNzE2YmEzLi5kYjAzZDA3MTFk
YWUwMmRlZDc4ZTkzMThiZWY0NDgwOWY2ODdlNDQ5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkdyYXBoaWNzTGF5ZXIuaAorKysgYi9Tb3Vy
Y2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkdyYXBoaWNzTGF5ZXIuaApA
QCAtMjUsNyArMjUsNiBAQAogI2luY2x1ZGUgIkdyYXBoaWNzTGF5ZXIuaCIKICNpbmNsdWRlICJJ
bWFnZS5oIgogI2luY2x1ZGUgIkludFNpemUuaCIKLSNpbmNsdWRlICJSdW5Mb29wLmgiCiAjaW5j
bHVkZSAiU2hhcmVhYmxlQml0bWFwLmgiCiAjaW5jbHVkZSAiVGlsZWRCYWNraW5nU3RvcmUuaCIK
ICNpbmNsdWRlICJUaWxlZEJhY2tpbmdTdG9yZUNsaWVudC5oIgpAQCAtMzQsNiArMzMsNyBAQAog
I2luY2x1ZGUgIlVwZGF0ZUluZm8uaCIKICNpbmNsdWRlICJXZWJMYXllclRyZWVJbmZvLmgiCiAj
aW5jbHVkZSAiV2ViUHJvY2Vzcy5oIgorI2luY2x1ZGUgPFdlYkNvcmUvUnVuTG9vcC5oPgogCiAj
aWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvRHJhd2luZ0FyZWFJbXBsLmggYi9Tb3VyY2UvV2ViS2l0
Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvRHJhd2luZ0FyZWFJbXBsLmgKaW5kZXggMGRhYmY2MDNhMTEy
Njk0YzE1MTdkZTUwMWZiODI0MDQyMTM0MmE5Yi4uMjhjOGNlNjhjZDBlNDczNjBjZGU2ZjNhNjUy
NmVlNzZkMTQxOTU5ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQ
YWdlL0RyYXdpbmdBcmVhSW1wbC5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2Vi
UGFnZS9EcmF3aW5nQXJlYUltcGwuaApAQCAtMjgsOCArMjgsOCBAQAogCiAjaW5jbHVkZSAiRHJh
d2luZ0FyZWEuaCIKICNpbmNsdWRlICJMYXllclRyZWVIb3N0LmgiCi0jaW5jbHVkZSAiUnVuTG9v
cC5oIgogI2luY2x1ZGUgPFdlYkNvcmUvUmVnaW9uLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9SdW5M
b29wLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICBjbGFzcyBHcmFwaGljc0NvbnRleHQ7
CkBAIC0xMzEsOCArMTMxLDggQEAgcHJpdmF0ZToKICAgICBib29sIG1faXNQYWludGluZ1N1c3Bl
bmRlZDsKICAgICBib29sIG1fYWx3YXlzVXNlQ29tcG9zaXRpbmc7CiAKLSAgICBSdW5Mb29wOjpU
aW1lcjxEcmF3aW5nQXJlYUltcGw+IG1fZGlzcGxheVRpbWVyOwotICAgIFJ1bkxvb3A6OlRpbWVy
PERyYXdpbmdBcmVhSW1wbD4gbV9leGl0Q29tcG9zaXRpbmdUaW1lcjsKKyAgICBXZWJDb3JlOjpS
dW5Mb29wOjpUaW1lcjxEcmF3aW5nQXJlYUltcGw+IG1fZGlzcGxheVRpbWVyOworICAgIFdlYkNv
cmU6OlJ1bkxvb3A6OlRpbWVyPERyYXdpbmdBcmVhSW1wbD4gbV9leGl0Q29tcG9zaXRpbmdUaW1l
cjsKIAogICAgIC8vIFRoZSBsYXllciB0cmVlIGhvc3QgdGhhdCBoYW5kbGVzIGFjY2VsZXJhdGVk
IGNvbXBvc2l0aW5nLgogICAgIFJlZlB0cjxMYXllclRyZWVIb3N0PiBtX2xheWVyVHJlZUhvc3Q7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvRXZlbnREaXNw
YXRjaGVyLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9FdmVudERpc3Bh
dGNoZXIuY3BwCmluZGV4IDFhOTFkOGUzYzAyMzQ4NDM5YjlmMzJkY2Y4MzQwNjFmMDEzN2RiZjUu
LjNjMmU3M2VjYTZjMzEwODE5N2YwOWQzMmEyYmY3MDIwZmU5MzkyNmQgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9FdmVudERpc3BhdGNoZXIuY3BwCisrKyBi
L1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9FdmVudERpc3BhdGNoZXIuY3BwCkBA
IC0yNiwxMyArMjYsMTMgQEAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJFdmVudERp
c3BhdGNoZXIuaCIKIAotI2luY2x1ZGUgIlJ1bkxvb3AuaCIKICNpbmNsdWRlICJXZWJFdmVudC5o
IgogI2luY2x1ZGUgIldlYkV2ZW50Q29udmVyc2lvbi5oIgogI2luY2x1ZGUgIldlYlBhZ2UuaCIK
ICNpbmNsdWRlICJXZWJQYWdlUHJveHlNZXNzYWdlcy5oIgogI2luY2x1ZGUgIldlYlByb2Nlc3Mu
aCIKICNpbmNsdWRlIDxXZWJDb3JlL1BhZ2UuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL1J1bkxvb3Au
aD4KICNpbmNsdWRlIDx3dGYvTWFpblRocmVhZC5oPgogCiAjaWYgRU5BQkxFKFRIUkVBREVEX1ND
Uk9MTElORykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9Q
YWdlT3ZlcmxheS5oIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1BhZ2VPdmVy
bGF5LmgKaW5kZXggMWY2MWNlYmU5MjYyNDM5N2QxOWRiYWIyYzk4MDE3MDY4NDVjZmJhNi4uOTQ5
NzY3ODA2ZjI3NDMzYzE0MzYzZTYxMjFlYjM4ZmM4NzY1YWNkMCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1BhZ2VPdmVybGF5LmgKKysrIGIvU291cmNlL1dl
YktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1BhZ2VPdmVybGF5LmgKQEAgLTI3LDcgKzI3LDcgQEAK
ICNkZWZpbmUgUGFnZU92ZXJsYXlfaAogCiAjaW5jbHVkZSAiQVBJT2JqZWN0LmgiCi0jaW5jbHVk
ZSAiUnVuTG9vcC5oIgorI2luY2x1ZGUgPFdlYkNvcmUvUnVuTG9vcC5oPgogI2luY2x1ZGUgPHd0
Zi9QYXNzUmVmUHRyLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKQEAgLTg2LDcgKzg2LDcgQEAg
cHJpdmF0ZToKICAgICBDbGllbnQqIG1fY2xpZW50OwogICAgIFdlYlBhZ2UqIG1fd2ViUGFnZTsK
IAotICAgIFJ1bkxvb3A6OlRpbWVyPFBhZ2VPdmVybGF5PiBtX2ZhZGVBbmltYXRpb25UaW1lcjsK
KyAgICBXZWJDb3JlOjpSdW5Mb29wOjpUaW1lcjxQYWdlT3ZlcmxheT4gbV9mYWRlQW5pbWF0aW9u
VGltZXI7CiAgICAgZG91YmxlIG1fZmFkZUFuaW1hdGlvblN0YXJ0VGltZTsKICAgICBkb3VibGUg
bV9mYWRlQW5pbWF0aW9uRHVyYXRpb247CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dl
YlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
V2ViUGFnZS9XZWJQYWdlLmNwcAppbmRleCBhMWMzYzJjMDAzMzcwOTQ3YjMwODIwZDA5Y2EzMGE4
Mzk3YzJmYTQwLi41NDUzMGYxOThhMDU4NWJiNGI0OWFiNjIxMmQyMDRhZGU5ZDE3MTU4IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKKysr
IGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCkBAIC00MCw3
ICs0MCw2IEBACiAjaW5jbHVkZSAiUGx1Z2luUHJveHkuaCIKICNpbmNsdWRlICJQbHVnaW5WaWV3
LmgiCiAjaW5jbHVkZSAiUHJpbnRJbmZvLmgiCi0jaW5jbHVkZSAiUnVuTG9vcC5oIgogI2luY2x1
ZGUgIlNlc3Npb25TdGF0ZS5oIgogI2luY2x1ZGUgIlNoYXJlYWJsZUJpdG1hcC5oIgogI2luY2x1
ZGUgIldlYkJhY2tGb3J3YXJkTGlzdC5oIgpAQCAtMTA0LDYgKzEwMyw3IEBACiAjaW5jbHVkZSA8
V2ViQ29yZS9SZW5kZXJWaWV3Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9SZXBsYWNlU2VsZWN0aW9u
Q29tbWFuZC5oPgogI2luY2x1ZGUgPFdlYkNvcmUvUmVzb3VyY2VSZXF1ZXN0Lmg+CisjaW5jbHVk
ZSA8V2ViQ29yZS9SdW5Mb29wLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9TY2hlbWVSZWdpc3RyeS5o
PgogI2luY2x1ZGUgPFdlYkNvcmUvU2NyaXB0VmFsdWUuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1Nl
cmlhbGl6ZWRTY3JpcHRWYWx1ZS5oPgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJv
Y2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFn
ZS9XZWJQYWdlLmgKaW5kZXggNDAwNzJjZmJmMTU2MGNkMGJkNThiYzg0ZDExNmIyZjI4MTIxZDQ2
OC4uODZlYTBkNzVhMjM5ODA3NzRhZTU1NzZjMTNkOGE3ZWUxOTZlNWY5ZCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaAorKysgYi9Tb3VyY2Uv
V2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oCkBAIC02NzcsNyArNjc3LDcgQEAg
cHJpdmF0ZToKICAgICBSZWZQdHI8V2ViQ29yZTo6Tm9kZT4gbV9nZXN0dXJlVGFyZ2V0Tm9kZTsK
ICNlbmRpZgogICAgIAotICAgIFJ1bkxvb3A6OlRpbWVyPFdlYlBhZ2U+IG1fc2V0Q2FuU3RhcnRN
ZWRpYVRpbWVyOworICAgIFdlYkNvcmU6OlJ1bkxvb3A6OlRpbWVyPFdlYlBhZ2U+IG1fc2V0Q2Fu
U3RhcnRNZWRpYVRpbWVyOwogCiAgICAgSGFzaE1hcDx1aW50NjRfdCwgUmVmUHRyPFdlYlVuZG9T
dGVwPiA+IG1fdW5kb1N0ZXBNYXA7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlBy
b2Nlc3MvV2ViUHJvY2Vzcy5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlByb2Nl
c3MuY3BwCmluZGV4IGM0YWZhMGYzZGUzMDcyNjRiYjE3NDJiOGE4ZGQ2ZTMwNDkwNDc1ZDAuLmQw
OTgxMDcxZjYxMTg2YzJiNjI2MDMxZTk5ZDUwNmMyOTQzZmYxMTQgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5jcHAKKysrIGIvU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmNwcApAQCAtMzEsNyArMzEsNiBAQAogI2luY2x1ZGUgIklu
amVjdGVkQnVuZGxlLmgiCiAjaW5jbHVkZSAiSW5qZWN0ZWRCdW5kbGVNZXNzYWdlS2luZHMuaCIK
ICNpbmNsdWRlICJJbmplY3RlZEJ1bmRsZVVzZXJNZXNzYWdlQ29kZXJzLmgiCi0jaW5jbHVkZSAi
UnVuTG9vcC5oIgogI2luY2x1ZGUgIlNhbmRib3hFeHRlbnNpb24uaCIKICNpbmNsdWRlICJTdGF0
aXN0aWNzRGF0YS5oIgogI2luY2x1ZGUgIldlYkFwcGxpY2F0aW9uQ2FjaGVNYW5hZ2VyLmgiCkBA
IC03Miw2ICs3MSw3IEBACiAjaW5jbHVkZSA8V2ViQ29yZS9QYWdlQ2FjaGUuaD4KICNpbmNsdWRl
IDxXZWJDb3JlL1BhZ2VHcm91cC5oPgogI2luY2x1ZGUgPFdlYkNvcmUvUmVzb3VyY2VIYW5kbGUu
aD4KKyNpbmNsdWRlIDxXZWJDb3JlL1J1bkxvb3AuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1NjaGVt
ZVJlZ2lzdHJ5Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9TZWN1cml0eU9yaWdpbi5oPgogI2luY2x1
ZGUgPFdlYkNvcmUvU2V0dGluZ3MuaD4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlBy
b2Nlc3MvV2ViUHJvY2Vzcy5oIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQcm9jZXNz
LmgKaW5kZXggOWZiMzdjNzJlNzQyMDE5ZWFiMTQ5ZjQxZTJjZjM2YjVjMzRkZmJmZi4uZWZhMmU2
ODFhNjJhOGU2ZDkzNTg3NDY2OTM5YWQzM2Q0MjNiOTJmYiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdDIvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmgKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJv
Y2Vzcy9XZWJQcm9jZXNzLmgKQEAgLTgyLDEwICs4MiwxMCBAQCBjbGFzcyBXZWJQcm9jZXNzIDog
cHVibGljIENoaWxkUHJvY2VzcywgcHJpdmF0ZSBDb3JlSVBDOjpDb25uZWN0aW9uOjpRdWV1ZUNs
aWVudAogcHVibGljOgogICAgIHN0YXRpYyBXZWJQcm9jZXNzJiBzaGFyZWQoKTsKIAotICAgIHZv
aWQgaW5pdGlhbGl6ZShDb3JlSVBDOjpDb25uZWN0aW9uOjpJZGVudGlmaWVyLCBSdW5Mb29wKik7
CisgICAgdm9pZCBpbml0aWFsaXplKENvcmVJUEM6OkNvbm5lY3Rpb246OklkZW50aWZpZXIsIFdl
YkNvcmU6OlJ1bkxvb3AqKTsKIAogICAgIENvcmVJUEM6OkNvbm5lY3Rpb24qIGNvbm5lY3Rpb24o
KSBjb25zdCB7IHJldHVybiBtX2Nvbm5lY3Rpb24tPmNvbm5lY3Rpb24oKTsgfQotICAgIFJ1bkxv
b3AqIHJ1bkxvb3AoKSBjb25zdCB7IHJldHVybiBtX3J1bkxvb3A7IH0KKyAgICBXZWJDb3JlOjpS
dW5Mb29wKiBydW5Mb29wKCkgY29uc3QgeyByZXR1cm4gbV9ydW5Mb29wOyB9CiAKICAgICBXZWJD
b25uZWN0aW9uVG9VSVByb2Nlc3MqIHdlYkNvbm5lY3Rpb25Ub1VJUHJvY2VzcygpIGNvbnN0IHsg
cmV0dXJuIG1fY29ubmVjdGlvbi5nZXQoKTsgfQogCkBAIC0yNDEsNyArMjQxLDcgQEAgcHJpdmF0
ZToKIAogICAgIGJvb2wgbV9pbkRpZENsb3NlOwogCi0gICAgUnVuTG9vcCogbV9ydW5Mb29wOwor
ICAgIFdlYkNvcmU6OlJ1bkxvb3AqIG1fcnVuTG9vcDsKIAogICAgIC8vIEZJWE1FOiBUaGUgdmlz
aXRlZCBsaW5rIHRhYmxlIHNob3VsZCBub3QgYmUgcGVyIHByb2Nlc3MuCiAgICAgVmlzaXRlZExp
bmtUYWJsZSBtX3Zpc2l0ZWRMaW5rVGFibGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9X
ZWJQcm9jZXNzL2d0ay9XZWJQcm9jZXNzTWFpbkd0ay5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQ
cm9jZXNzL2d0ay9XZWJQcm9jZXNzTWFpbkd0ay5jcHAKaW5kZXggZmI5Njk4ZWRhYWY1MmQ5NTRi
OTVjNzczMDUwYjg2OTc0MDczNjVhYy4uMThjNTA2YmNjMzk3N2E2M2E1NmM3MGNiYTZhNDMzY2M0
NWI0YzkzOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9ndGsvV2ViUHJv
Y2Vzc01haW5HdGsuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvZ3RrL1dlYlBy
b2Nlc3NNYWluR3RrLmNwcApAQCAtMzEsMTMgKzMxLDE1IEBACiAjaW5jbHVkZSAiV0tCYXNlLmgi
CiAjaW5jbHVkZSA8V2ViQ29yZS9HdGtBdXRoZW50aWNhdGlvbkRpYWxvZy5oPgogI2luY2x1ZGUg
PFdlYkNvcmUvUmVzb3VyY2VIYW5kbGUuaD4KLSNpbmNsdWRlIDxXZWJLaXQyL1J1bkxvb3AuaD4K
KyNpbmNsdWRlIDxXZWJDb3JlL1J1bkxvb3AuaD4KICNpbmNsdWRlIDxXZWJLaXQyL1dlYlByb2Nl
c3MuaD4KICNpbmNsdWRlIDxndGsvZ3RrLmg+CiAjaW5jbHVkZSA8cnVudGltZS9Jbml0aWFsaXpl
VGhyZWFkaW5nLmg+CiAjaW5jbHVkZSA8dW5pc3RkLmg+CiAjaW5jbHVkZSA8d3RmL01haW5UaHJl
YWQuaD4KIAordXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CisKIG5hbWVzcGFjZSBXZWJLaXQgewog
CiBXS19FWFBPUlQgaW50IFdlYlByb2Nlc3NNYWluR3RrKGludCBhcmdjLCBjaGFyKiBhcmd2W10p
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL21hYy9XZWJQcm9jZXNzTWFp
bk1hYy5tbSBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvbWFjL1dlYlByb2Nlc3NNYWluTWFj
Lm1tCmluZGV4IGI1YTNmZTA3ZDA2Nzg0M2JlNWIzYzM1MGExNGEwOTBmOTljMTViYTAuLjRlMmIx
NTUzMjIxMGMwMDQ0ZjJiOTg4MTMzZjdiYmRkZjZjODU1NjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQyL1dlYlByb2Nlc3MvbWFjL1dlYlByb2Nlc3NNYWluTWFjLm1tCisrKyBiL1NvdXJjZS9X
ZWJLaXQyL1dlYlByb2Nlc3MvbWFjL1dlYlByb2Nlc3NNYWluTWFjLm1tCkBAIC0yOSw5ICsyOSw5
IEBACiAjaW1wb3J0ICJDb21tYW5kTGluZS5oIgogI2ltcG9ydCAiRW52aXJvbm1lbnRVdGlsaXRp
ZXMuaCIKICNpbXBvcnQgIkVudmlyb25tZW50VmFyaWFibGVzLmgiCi0jaW1wb3J0ICJSdW5Mb29w
LmgiCiAjaW1wb3J0ICJXZWJQcm9jZXNzLmgiCiAjaW1wb3J0ICJXZWJTeXN0ZW1JbnRlcmZhY2Uu
aCIKKyNpbXBvcnQgPFdlYkNvcmUvUnVuTG9vcC5oPgogI2ltcG9ydCA8V2ViS2l0Mi9XS1ZpZXcu
aD4KICNpbXBvcnQgPFdlYktpdFN5c3RlbUludGVyZmFjZS5oPgogI2ltcG9ydCA8bWFjaC9tYWNo
X2Vycm9yLmg+CkBAIC00Myw4ICs0Myw4IEBACiAjaW1wb3J0IDxzdGRpby5oPgogI2ltcG9ydCA8
c3lzZXhpdHMuaD4KICNpbXBvcnQgPHVuaXN0ZC5oPgotI2ltcG9ydCA8d3RmL1JldGFpblB0ci5o
PgogI2ltcG9ydCA8d3RmL01haW5UaHJlYWQuaD4KKyNpbXBvcnQgPHd0Zi9SZXRhaW5QdHIuaD4K
ICNpbXBvcnQgPHd0Zi90ZXh0L0NTdHJpbmcuaD4KICNpbXBvcnQgPHd0Zi90ZXh0L1N0cmluZ0J1
aWxkZXIuaD4KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9xdC9XZWJQ
cm9jZXNzTWFpblF0LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvcXQvV2ViUHJvY2Vz
c01haW5RdC5jcHAKaW5kZXggYzM4ZTM4MjQxZDI3MjU5ZDQ2OWM5YzNhZTVjYTBjMGEwMTdlN2Rh
My4uOTFlN2FlNDM3OGYwYzQxZDhjZjgxMDA2ZDYxMjdhODg1ODM0ZWQ1YiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9xdC9XZWJQcm9jZXNzTWFpblF0LmNwcAorKysgYi9T
b3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL3F0L1dlYlByb2Nlc3NNYWluUXQuY3BwCkBAIC0yNSw5
ICsyNSwxMCBAQAogICovCiAKICNpbmNsdWRlICJjb25maWcuaCIKLSNpbmNsdWRlICJSdW5Mb29w
LmgiCi0jaW5jbHVkZSA8cnVudGltZS9Jbml0aWFsaXplVGhyZWFkaW5nLmg+CisKICNpbmNsdWRl
ICJXZWJQcm9jZXNzLmgiCisjaW5jbHVkZSA8V2ViQ29yZS9SdW5Mb29wLmg+CisjaW5jbHVkZSA8
cnVudGltZS9Jbml0aWFsaXplVGhyZWFkaW5nLmg+CiAjaW5jbHVkZSA8d3RmL01haW5UaHJlYWQu
aD4KIAogI2luY2x1ZGUgPFFBcHBsaWNhdGlvbj4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQy
L1dlYlByb2Nlc3Mvd2luL1dlYlByb2Nlc3NNYWluV2luLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dl
YlByb2Nlc3Mvd2luL1dlYlByb2Nlc3NNYWluV2luLmNwcAppbmRleCA1ZWRlZWZlNWNkZGI1YWYy
ZGM0NDc4YWY0NDlhZTZiYWZkMzg0N2IxLi4yYTcwNjg1ZTQ4NWUwNjM1YjE1MTY4ZmE1NTBjZGM3
MGI5ZWEyNTFlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL3dpbi9XZWJQ
cm9jZXNzTWFpbldpbi5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy93aW4vV2Vi
UHJvY2Vzc01haW5XaW4uY3BwCkBAIC0yNywxNCArMjcsMTYgQEAKICNpbmNsdWRlICJXZWJQcm9j
ZXNzTWFpbi5oIgogCiAjaW5jbHVkZSAiQ29tbWFuZExpbmUuaCIKLSNpbmNsdWRlICJSdW5Mb29w
LmgiCiAjaW5jbHVkZSAiV2ViUHJvY2Vzcy5oIgorI2luY2x1ZGUgPFdlYkNvcmUvUnVuTG9vcC5o
PgogI2luY2x1ZGUgPFdlYkNvcmUvU29mdExpbmtpbmcuaD4KICNpbmNsdWRlIDxydW50aW1lL0lu
aXRpYWxpemVUaHJlYWRpbmcuaD4KICNpbmNsdWRlIDx3dGYvTWFpblRocmVhZC5oPgogI2luY2x1
ZGUgPHd0Zi90ZXh0L1N0cmluZ0hhc2guaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcu
aD4KIAordXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CisKIG5hbWVzcGFjZSBXZWJLaXQgewogCiAj
aWYgVVNFKFNBRkFSSV9USEVNRSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL3dpbi9XZWJL
aXQyLnZjcHJvaiBiL1NvdXJjZS9XZWJLaXQyL3dpbi9XZWJLaXQyLnZjcHJvagppbmRleCA3NTIy
NzhkZGMwMTVjY2Y0NDViYTFjN2JlYzYwZjU0MTgwNTQ3YTZlLi4xNjdiYTNkOTEyN2I4N2RkMDU1
NDdlZDdhYjRlZjcxMTY5OTEyMzUyIDEwMDc1NQotLS0gYS9Tb3VyY2UvV2ViS2l0Mi93aW4vV2Vi
S2l0Mi52Y3Byb2oKKysrIGIvU291cmNlL1dlYktpdDIvd2luL1dlYktpdDIudmNwcm9qCkBAIC0z
ODg3LDE0ICszODg3LDYgQEAKIAkJCQk+CiAJCQk8L0ZpbGU+CiAJCQk8RmlsZQotCQkJCVJlbGF0
aXZlUGF0aD0iLi5cUGxhdGZvcm1cUnVuTG9vcC5jcHAiCi0JCQkJPgotCQkJPC9GaWxlPgotCQkJ
PEZpbGUKLQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXFBsYXRmb3JtXFJ1bkxvb3AuaCIKLQkJCQk+Ci0J
CQk8L0ZpbGU+Ci0JCQk8RmlsZQogCQkJCVJlbGF0aXZlUGF0aD0iLi5cUGxhdGZvcm1cU2hhcmVk
TWVtb3J5LmgiCiAJCQkJPgogCQkJPC9GaWxlPgpAQCAtMzk0MiwxMCArMzkzNCw2IEBACiAJCQkJ
CT4KIAkJCQk8L0ZpbGU+CiAJCQkJPEZpbGUKLQkJCQkJUmVsYXRpdmVQYXRoPSIuLlxQbGF0Zm9y
bVx3aW5cUnVuTG9vcFdpbi5jcHAiCi0JCQkJCT4KLQkJCQk8L0ZpbGU+Ci0JCQkJPEZpbGUKIAkJ
CQkJUmVsYXRpdmVQYXRoPSIuLlxQbGF0Zm9ybVx3aW5cU2hhcmVkTWVtb3J5V2luLmNwcCIKIAkJ
CQkJPgogCQkJCTwvRmlsZT4K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>123146</attachid>
            <date>2012-01-19 10:14:06 -0800</date>
            <delta_ts>2012-01-19 11:36:50 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-76471-20120119101415.patch</filename>
            <type>text/plain</type>
            <size>129184</size>
            <attacher name="Sam Weinig">sam</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTA1NDIzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZTEwODY5NGJjODkwODJh
NGVkYmVhYmZjMDJhMjNmMWJmMTQwNmM4Yi4uNTBmMjU4ZjdlNDdlNjdiNDRiMjc3NWVmYTYzMWFi
YTg5MTFlZDA0OSAxMDA3NTUKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI1IEBACisyMDEyLTAxLTE4ICBTYW0g
V2VpbmlnICA8c2FtQHdlYmtpdC5vcmc+CisKKyAgICAgICAgTW92ZSBSdW5Mb29wIHRvIFdlYkNv
cmUvcGxhdGZvcm0KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTc2NDcxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgKiBHTlVtYWtlZmlsZS5saXN0LmFtOgorICAgICAgICAqIFRhcmdldC5wcmk6CisgICAgICAg
ICogV2ViQ29yZS5leHAuaW46CisgICAgICAgICogV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3By
b2o6CisgICAgICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAg
ICBBZGQgbmV3bHkgbW92ZWQgZmlsZXMuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9SdW5Mb29wLmNw
cDogTW92ZWQgZnJvbSBTb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9SdW5Mb29wLmNwcC4KKyAgICAg
ICAgKiBwbGF0Zm9ybS9SdW5Mb29wLmg6IE1vdmVkIGZyb20gU291cmNlL1dlYktpdDIvUGxhdGZv
cm0vUnVuTG9vcC5oLgorICAgICAgICAqIHBsYXRmb3JtL2d0ay9SdW5Mb29wR3RrLmNwcDogTW92
ZWQgZnJvbSBTb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9ndGsvUnVuTG9vcEd0ay5jcHAuCisgICAg
ICAgICogcGxhdGZvcm0vbWFjL1J1bkxvb3BNYWMubW06IE1vdmVkIGZyb20gU291cmNlL1dlYktp
dDIvUGxhdGZvcm0vbWFjL1J1bkxvb3BNYWMubW0uCisgICAgICAgICogcGxhdGZvcm0vcXQvUnVu
TG9vcFF0LmNwcDogTW92ZWQgZnJvbSBTb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9xdC9SdW5Mb29w
UXQuY3BwLgorICAgICAgICAqIHBsYXRmb3JtL3dpbi9SdW5Mb29wV2luLmNwcDogTW92ZWQgZnJv
bSBTb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS93aW4vUnVuTG9vcFdpbi5jcHAuCisgICAgICAgIE1v
dmUgdGhlIGZpbGVzLgorCiAyMDEyLTAxLTE5ICBLZW4gQnVjaGFuYW4gPGtlbnJiQGNocm9taXVt
Lm9yZz4KIAogICAgICAgICBMYXlvdXQgVGVzdCBmYXN0L3RleHQvaW50ZXJuYXRpb25hbC9zcGFj
ZXMtY29tYmluZWQtaW4tdmVydGljYWwtdGV4dC5odG1sIGlzIGZhaWxpbmcKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwppbmRl
eCBiZWM2MGU5MzRhZjgxM2E5N2NmYmIwODk4MmM4MGQwOGMzMDM2ZjVhLi5iZDhjOTMwNGE1NTgy
MTE5YzExZjRlMDUwMjRkNzM4MGJmNGFlOTZmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNjcgQEAK
KzIwMTItMDEtMTggIFNhbSBXZWluaWcgIDxzYW1Ad2Via2l0Lm9yZz4KKworICAgICAgICBNb3Zl
IFJ1bkxvb3AgdG8gV2ViQ29yZS9wbGF0Zm9ybQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzY0NzEKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICAqIEdOVW1ha2VmaWxlLmFtOgorICAgICAgICAqIFBsYXRmb3Jt
L0NvcmVJUEMvQ29ubmVjdGlvbi5jcHA6CisgICAgICAgICogUGxhdGZvcm0vQ29yZUlQQy9Db25u
ZWN0aW9uLmg6CisgICAgICAgICogUGxhdGZvcm0vQ29yZUlQQy9tYWMvQ29ubmVjdGlvbk1hYy5j
cHA6CisgICAgICAgICogUGx1Z2luUHJvY2Vzcy9QbHVnaW5Db250cm9sbGVyUHJveHkuaDoKKyAg
ICAgICAgKiBQbHVnaW5Qcm9jZXNzL1BsdWdpblByb2Nlc3MuY3BwOgorICAgICAgICAqIFBsdWdp
blByb2Nlc3MvUGx1Z2luUHJvY2Vzcy5oOgorICAgICAgICAqIFBsdWdpblByb2Nlc3MvV2ViUHJv
Y2Vzc0Nvbm5lY3Rpb24uY3BwOgorICAgICAgICAqIFBsdWdpblByb2Nlc3MvbWFjL1BsdWdpblBy
b2Nlc3NNYWluTWFjLm1tOgorICAgICAgICAqIFBsdWdpblByb2Nlc3MvcXQvUGx1Z2luUHJvY2Vz
c01haW5RdC5jcHA6CisgICAgICAgICogU2hhcmVkL0NoaWxkUHJvY2Vzcy5jcHA6CisgICAgICAg
ICogU2hhcmVkL0NoaWxkUHJvY2Vzcy5oOgorICAgICAgICAqIFRhcmdldC5wcmk6CisgICAgICAg
ICogVUlQcm9jZXNzL0FQSS9tYWMvRmluZEluZGljYXRvcldpbmRvdy5oOgorICAgICAgICAqIFVJ
UHJvY2Vzcy9BUEkvbWFjL1dLVmlldy5tbToKKyAgICAgICAgKiBVSVByb2Nlc3MvRHJhd2luZ0Fy
ZWFQcm94eUltcGwuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvTGF1bmNoZXIvVGhyZWFkTGF1bmNo
ZXIuY3BwOgorICAgICAgICAqIFVJUHJvY2Vzcy9MYXVuY2hlci9ndGsvUHJvY2Vzc0xhdW5jaGVy
R3RrLmNwcDoKKyAgICAgICAgKiBVSVByb2Nlc3MvTGF1bmNoZXIvbWFjL1Byb2Nlc3NMYXVuY2hl
ck1hYy5tbToKKyAgICAgICAgKiBVSVByb2Nlc3MvTGF1bmNoZXIvbWFjL1RocmVhZExhdW5jaGVy
TWFjLm1tOgorICAgICAgICAqIFVJUHJvY2Vzcy9MYXVuY2hlci9xdC9Qcm9jZXNzTGF1bmNoZXJR
dC5jcHA6CisgICAgICAgICogVUlQcm9jZXNzL0xhdW5jaGVyL3F0L1RocmVhZExhdW5jaGVyUXQu
Y3BwOgorICAgICAgICAqIFVJUHJvY2Vzcy9MYXVuY2hlci93aW4vUHJvY2Vzc0xhdW5jaGVyV2lu
LmNwcDoKKyAgICAgICAgKiBVSVByb2Nlc3MvTGF1bmNoZXIvd2luL1RocmVhZExhdW5jaGVyV2lu
LmNwcDoKKyAgICAgICAgKiBVSVByb2Nlc3MvTGF5ZXJUcmVlSG9zdFByb3h5Lmg6CisgICAgICAg
ICogVUlQcm9jZXNzL1BsdWdpbnMvUGx1Z2luUHJvY2Vzc1Byb3h5LmNwcDoKKyAgICAgICAgKiBV
SVByb2Nlc3MvUmVzcG9uc2l2ZW5lc3NUaW1lci5jcHA6CisgICAgICAgICogVUlQcm9jZXNzL1Jl
c3BvbnNpdmVuZXNzVGltZXIuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvVGlsZWREcmF3aW5nQXJl
YVByb3h5Lmg6CisgICAgICAgICogVUlQcm9jZXNzL1Zpc2l0ZWRMaW5rUHJvdmlkZXIuaDoKKyAg
ICAgICAgKiBVSVByb2Nlc3MvV2ViQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5jcHA6CisgICAgICAg
ICogVUlQcm9jZXNzL1dlYkNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuaDoKKyAgICAgICAgKiBVSVBy
b2Nlc3MvV2ViQ29udGV4dC5jcHA6CisgICAgICAgICogVUlQcm9jZXNzL3dpbi9XZWJWaWV3LmNw
cDoKKyAgICAgICAgKiBXZWJLaXQyLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAg
ICogV2ViUHJvY2Vzcy9QbHVnaW5zL05ldHNjYXBlL05QUnVudGltZU9iamVjdE1hcC5oOgorICAg
ICAgICAqIFdlYlByb2Nlc3MvUGx1Z2lucy9OZXRzY2FwZS9OZXRzY2FwZVBsdWdpbi5oOgorICAg
ICAgICAqIFdlYlByb2Nlc3MvUGx1Z2lucy9OZXRzY2FwZS9OZXRzY2FwZVBsdWdpblN0cmVhbS5o
OgorICAgICAgICAqIFdlYlByb2Nlc3MvUGx1Z2lucy9QbHVnaW5WaWV3Lmg6CisgICAgICAgICog
V2ViUHJvY2Vzcy9XZWJDb25uZWN0aW9uVG9VSVByb2Nlc3MuY3BwOgorICAgICAgICAqIFdlYlBy
b2Nlc3MvV2ViQ29ubmVjdGlvblRvVUlQcm9jZXNzLmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9X
ZWJDb3JlU3VwcG9ydC9XZWJHcmFwaGljc0xheWVyLmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9X
ZWJQYWdlL0RyYXdpbmdBcmVhSW1wbC5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9F
dmVudERpc3BhdGNoZXIuY3BwOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9QYWdlT3Zl
cmxheS5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcDoKKyAgICAg
ICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oOgorICAgICAgICAqIFdlYlByb2Nlc3Mv
V2ViUHJvY2Vzcy5jcHA6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmg6CisgICAg
ICAgIChXZWJLaXQ6OldlYlByb2Nlc3M6OnJ1bkxvb3ApOgorICAgICAgICAqIFdlYlByb2Nlc3Mv
Z3RrL1dlYlByb2Nlc3NNYWluR3RrLmNwcDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL21hYy9XZWJQ
cm9jZXNzTWFpbk1hYy5tbToKKyAgICAgICAgKiBXZWJQcm9jZXNzL3F0L1dlYlByb2Nlc3NNYWlu
UXQuY3BwOgorICAgICAgICAqIFdlYlByb2Nlc3Mvd2luL1dlYlByb2Nlc3NNYWluV2luLmNwcDoK
KyAgICAgICAgKiB3aW4vV2ViS2l0Mi52Y3Byb2o6CisgICAgICAgIFJlbW92ZSBSdW5Mb29wIGNv
ZGUgYW5kIHVwZGF0ZSAjaW5jbHVkZXMuCisKIDIwMTItMDEtMTkgIENhcmxvcyBHYXJjaWEgQ2Ft
cG9zICA8Y2dhcmNpYUBpZ2FsaWEuY29tPgogCiAgICAgICAgIFtHVEtdIFdlYktpdDIgR1RLKyBB
UEkgcHVibGljIGhlYWRlcnMgYXJlIG5vdCBpbnN0YWxsZWQKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0gYi9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5s
aXN0LmFtCmluZGV4IGJiYjI2NTk2NzJmMTExMWRiMWQ1M2NlYWJmODVjMTUxYzBhYzQyMjcuLjgz
ZTE5YjMzMWIyODcyM2UzNTU1NzlmNzczN2E1MGY4Yjg4OGY2MTIgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0KKysrIGIvU291cmNlL1dlYkNvcmUvR05VbWFr
ZWZpbGUubGlzdC5hbQpAQCAtMzIyNiw2ICszMjI2LDggQEAgd2ViY29yZV9zb3VyY2VzICs9IFwK
IAlTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9Qb3B1cE1lbnVTdHlsZS5oIFwKIAlTb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9QdXJnZWFibGVCdWZmZXIuaCBcCiAJU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vUHVyZ2VQcmlvcml0eS5oIFwKKwlTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9SdW5Mb29wLmNw
cCBcCisJU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vUnVuTG9vcC5oIFwKIAlTb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9SdW50aW1lQXBwbGljYXRpb25DaGVja3MuY3BwIFwKIAlTb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9SdW50aW1lQXBwbGljYXRpb25DaGVja3MuaCBcCiAJU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vU2NoZW1lUmVnaXN0cnkuY3BwIFwKQEAgLTQ1MDEsNiArNDUwMyw3IEBAIHdlYmNv
cmVndGtfc291cmNlcyArPSBcCiAJU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3RrL1JlbmRlclRo
ZW1lR3RrLmggXAogCVNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9SZW5kZXJUaGVtZUd0azIu
Y3BwIFwKIAlTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ndGsvUmVuZGVyVGhlbWVHdGszLmNwcCBc
CisJU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3RrL1J1bkxvb3BHdGsuY3BwIFwKIAlTb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ndGsvU2Nyb2xsYmFyVGhlbWVHdGsuY3BwIFwKIAlTb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ndGsvU2Nyb2xsYmFyVGhlbWVHdGsuaCBcCiAJU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3RrL1Njcm9sbGJhclRoZW1lR3RrMi5jcHAgXApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvVGFyZ2V0LnByaSBiL1NvdXJjZS9XZWJDb3JlL1RhcmdldC5wcmkKaW5kZXggNDU3
ZGIwY2UwYmNlYjhiMDdkYzQ0OTQ0NDZjN2YxODY5MWZlNjU1Yi4uOTc5NTZiY2JjNDFlYmY5YWMy
NTkyMTYyMTVlNTEwYWI3ZWYzZTM0ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvVGFyZ2V0
LnByaQorKysgYi9Tb3VyY2UvV2ViQ29yZS9UYXJnZXQucHJpCkBAIC0xMTI4LDYgKzExMjgsNyBA
QCBTT1VSQ0VTICs9IFwKICAgICBwbGF0Zm9ybS90ZXh0L1JlZ3VsYXJFeHByZXNzaW9uLmNwcCBc
CiAgICAgcGxhdGZvcm0vUGxhdGZvcm1FdmVudC5jcHAgXAogICAgIHBsYXRmb3JtL1J1bnRpbWVB
cHBsaWNhdGlvbkNoZWNrcy5jcHAgXAorICAgIHBsYXRmb3JtL1J1bkxvb3AuY3BwIFwKICAgICBw
bGF0Zm9ybS9TY2hlbWVSZWdpc3RyeS5jcHAgXAogICAgIHBsYXRmb3JtL1Njcm9sbGFibGVBcmVh
LmNwcCBcCiAgICAgcGxhdGZvcm0vU2Nyb2xsQW5pbWF0b3IuY3BwIFwKQEAgLTI4MDIsNiArMjgw
Myw3IEBAIFNPVVJDRVMgKz0gXAogICAgIHBsYXRmb3JtL3F0L0RyYWdJbWFnZVF0LmNwcCBcCiAg
ICAgcGxhdGZvcm0vcXQvRXZlbnRMb29wUXQuY3BwIFwKICAgICBwbGF0Zm9ybS9xdC9GaWxlU3lz
dGVtUXQuY3BwIFwKKyAgICBwbGF0Zm9ybS9xdC9SdW5Mb29wUXQuY3BwIFwKICAgICBwbGF0Zm9y
bS9xdC9TaGFyZWRCdWZmZXJRdC5jcHAgXAogICAgIHBsYXRmb3JtL3F0L1RoaXJkUGFydHlDb29r
aWVzUXQuY3BwIFwKICAgICBwbGF0Zm9ybS9ncmFwaGljcy9xdC9Gb250Q2FjaGVRdC5jcHAgXApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5leHAuaW4gYi9Tb3VyY2UvV2ViQ29y
ZS9XZWJDb3JlLmV4cC5pbgppbmRleCAzZGIzZmMzZDYxZTgyOGZiYmJhNGY5Y2MyZDUxZTMwMmE1
ZGMyYzQzLi5hMzY1ZWFhZGQ5MTM4ZWU4MDkzMDI1OTFlZmZjMjUwMWJlODFiN2JhIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmV4cC5pbgorKysgYi9Tb3VyY2UvV2ViQ29yZS9X
ZWJDb3JlLmV4cC5pbgpAQCAtMjgwLDcgKzI4MCw2IEBAIF9fWk43V2ViQ29yZTEyUHJpbnRDb250
ZXh0OXNwb29sUGFnZUVSTlNfMTVHcmFwaGljc0NvbnRleHRFaWYKIF9fWk43V2ViQ29yZTEyUHJp
bnRDb250ZXh0OXNwb29sUmVjdEVSTlNfMTVHcmFwaGljc0NvbnRleHRFUktOU183SW50UmVjdEUK
IF9fWk43V2ViQ29yZTEyUHJpbnRDb250ZXh0QzFFUE5TXzVGcmFtZUUKIF9fWk43V2ViQ29yZTEy
UHJpbnRDb250ZXh0RDFFdgotX19aTks3V2ViQ29yZTEyUmVuZGVyT2JqZWN0MTNzdHlsZUluUmVn
aW9uRXYKIF9fWk43V2ViQ29yZTEyUmVuZGVyT2JqZWN0MTZyZXBhaW50UmVjdGFuZ2xlRVJLTlNf
N0ludFJlY3RFYgogX19aTjdXZWJDb3JlMTJSZW5kZXJXaWRnZXQyOHJlc3VtZVdpZGdldEhpZXJh
cmNoeVVwZGF0ZXNFdgogX19aTjdXZWJDb3JlMTJSZW5kZXJXaWRnZXQyOXN1c3BlbmRXaWRnZXRI
aWVyYXJjaHlVcGRhdGVzRXYKQEAgLTM2NCw5ICszNjMsNiBAQCBfX1pON1dlYkNvcmUxNFJlc291
cmNlSGFuZGxlMjBmb3JjZUNvbnRlbnRTbmlmZmluZ0V2CiBfX1pON1dlYkNvcmUxNFJlc291cmNl
SGFuZGxlMjZzeW5jaHJvbm91c0xvYWRSdW5Mb29wTW9kZUV2CiBfX1pON1dlYkNvcmUxNFJlc291
cmNlSGFuZGxlMzVjcmVhdGVQcml2YXRlQnJvd3NpbmdTdG9yYWdlU2Vzc2lvbkVQSzEwX19DRlN0
cmluZwogX19aTjdXZWJDb3JlMTRSZXNvdXJjZUxvYWRlcjE0Y2FuY2VsbGVkRXJyb3JFdgotI2lm
IEVOQUJMRShTVkcpCi1fX1pON1dlYkNvcmUxNFNWR1NNSUxFbGVtZW50MTNpc1NNSUxFbGVtZW50
RVBOU180Tm9kZUUKLSNlbmRpZgogX19aTjdXZWJDb3JlMTRTY2hlbWVSZWdpc3RyeTI0cmVnaXN0
ZXJVUkxTY2hlbWVBc0xvY2FsRVJLTjNXVEY2U3RyaW5nRQogX19aTjdXZWJDb3JlMTRTY2hlbWVS
ZWdpc3RyeTI1cmVnaXN0ZXJVUkxTY2hlbWVBc1NlY3VyZUVSS04zV1RGNlN0cmluZ0UKIF9fWk43
V2ViQ29yZTE0U2NoZW1lUmVnaXN0cnkzMnJlZ2lzdGVyVVJMU2NoZW1lQXNFbXB0eURvY3VtZW50
RVJLTjNXVEY2U3RyaW5nRQpAQCAtNjE1LDkgKzYxMSw2IEBAIF9fWk43V2ViQ29yZTIxTWVtb3J5
UHJlc3N1cmVIYW5kbGVyN2luc3RhbGxFdgogX19aTjdXZWJDb3JlMjFQbGF0Zm9ybUtleWJvYXJk
RXZlbnQyNGRpc2FtYmlndWF0ZUtleURvd25FdmVudEVOU18xM1BsYXRmb3JtRXZlbnQ0VHlwZUVi
CiBfX1pON1dlYkNvcmUyMVJlc291cmNlTG9hZFNjaGVkdWxlcjIwc2VydmVQZW5kaW5nUmVxdWVz
dHNFTlNfMjBSZXNvdXJjZUxvYWRQcmlvcml0eUUKIF9fWk43V2ViQ29yZTIxUmVzb3VyY2VMb2Fk
U2NoZWR1bGVyMjRzY2hlZHVsZVBsdWdpblN0cmVhbUxvYWRFUE5TXzVGcmFtZUVQTlNfMzJOZXRz
Y2FwZVBsdWdJblN0cmVhbUxvYWRlckNsaWVudEVSS05TXzE1UmVzb3VyY2VSZXF1ZXN0RQotI2lm
IEVOQUJMRShTVkcpCi1fX1pON1dlYkNvcmUyMVNWR0RvY3VtZW50RXh0ZW5zaW9uczIxc2FtcGxl
QW5pbWF0aW9uQXRUaW1lRVJLTjNXVEY2U3RyaW5nRVBOU18xNFNWR1NNSUxFbGVtZW50RWQKLSNl
bmRpZgogX19aTjdXZWJDb3JlMjFTZXJpYWxpemVkU2NyaXB0VmFsdWUxMWRlc2VyaWFsaXplRVBL
MTVPcGFxdWVKU0NvbnRleHRQUEsxM09wYXF1ZUpTVmFsdWUKIF9fWk43V2ViQ29yZTIxU2VyaWFs
aXplZFNjcmlwdFZhbHVlNmNyZWF0ZUVQSzE1T3BhcXVlSlNDb250ZXh0UEsxM09wYXF1ZUpTVmFs
dWVQUzZfCiBfX1pON1dlYkNvcmUyMVNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUMxRVJOM1dURjZWZWN0
b3JJaExtMEVFRQpAQCAtOTA4LDYgKzkwMSwxNyBAQCBfX1pON1dlYkNvcmU3SW50UmVjdDV1bml0
ZUVSS1MwXwogX19aTjdXZWJDb3JlN0ludFJlY3Q5aW50ZXJzZWN0RVJLUzBfCiBfX1pON1dlYkNv
cmU3SW50UmVjdEMxRVJLTlNfOUZsb2F0UmVjdEUKIF9fWk43V2ViQ29yZTdJbnRTaXplQzFFUks2
Q0dTaXplCitfX1pON1dlYkNvcmU3UnVuTG9vcDE0cnVuRm9yRHVyYXRpb25FZAorX19aTjdXZWJD
b3JlN1J1bkxvb3AyMWluaXRpYWxpemVNYWluUnVuTG9vcEV2CitfX1pON1dlYkNvcmU3UnVuTG9v
cDNydW5FdgorX19aTjdXZWJDb3JlN1J1bkxvb3A0bWFpbkV2CitfX1pON1dlYkNvcmU3UnVuTG9v
cDRzdG9wRXYKK19fWk43V2ViQ29yZTdSdW5Mb29wN2N1cnJlbnRFdgorX19aTjdXZWJDb3JlN1J1
bkxvb3A4ZGlzcGF0Y2hFUktOM1dURjhGdW5jdGlvbklGdnZFRUUKK19fWk43V2ViQ29yZTdSdW5M
b29wOVRpbWVyQmFzZTRzdG9wRXYKK19fWk43V2ViQ29yZTdSdW5Mb29wOVRpbWVyQmFzZTVzdGFy
dEVkYgorX19aTjdXZWJDb3JlN1J1bkxvb3A5VGltZXJCYXNlQzJFUFMwXworX19aTjdXZWJDb3Jl
N1J1bkxvb3A5VGltZXJCYXNlRDJFdgogX19aTjdXZWJDb3JlN1RleHRSdW4xOWFsbG93c1JvdW5k
aW5nSGFja3NFdgogX19aTjdXZWJDb3JlN1RleHRSdW4yMXNfYWxsb3dzUm91bmRpbmdIYWNrc0UK
IF9fWk43V2ViQ29yZTdUZXh0UnVuMjJzZXRBbGxvd3NSb3VuZGluZ0hhY2tzRWIKQEAgLTkxNywx
NSArOTIxLDkgQEAgX19aTjdXZWJDb3JlN3JlcGxhY2VFUk4zV1RGNlN0cmluZ0VSS05TXzE3UmVn
dWxhckV4cHJlc3Npb25FUktTMV8KIF9fWk43V2ViQ29yZTd0b1JhbmdlRU4zSlNDN0pTVmFsdWVF
CiBfX1pON1dlYkNvcmU4RG9jdW1lbnQxMWNyZWF0ZVJhbmdlRXYKIF9fWk43V2ViQ29yZThEb2N1
bWVudDEydXBkYXRlTGF5b3V0RXYKLSNpZiBFTkFCTEUoU1ZHKQotX19aTjdXZWJDb3JlOERvY3Vt
ZW50MTNzdmdFeHRlbnNpb25zRXYKLSNlbmRpZgogX19aTjdXZWJDb3JlOERvY3VtZW50MTRzZXRG
b2N1c2VkTm9kZUVOM1dURjEwUGFzc1JlZlB0cklOU180Tm9kZUVFRQogX19aTjdXZWJDb3JlOERv
Y3VtZW50MTZpc1BhZ2VCb3hWaXNpYmxlRWkKIF9fWk43V2ViQ29yZThEb2N1bWVudDE3Z2V0Rm9j
dXNhYmxlTm9kZXNFUk4zV1RGNlZlY3RvcklOUzFfNlJlZlB0cklOU180Tm9kZUVFRUxtMEVFRQot
I2lmIEVOQUJMRShTVkcpCi1fX1pON1dlYkNvcmU4RG9jdW1lbnQxOWFjY2Vzc1NWR0V4dGVuc2lv
bnNFdgotI2VuZGlmCiBfX1pON1dlYkNvcmU4RG9jdW1lbnQyMHN0eWxlU2VsZWN0b3JDaGFuZ2Vk
RU5TXzIzU3R5bGVTZWxlY3RvclVwZGF0ZUZsYWdFCiBfX1pON1dlYkNvcmU4RG9jdW1lbnQyMmNy
ZWF0ZURvY3VtZW50RnJhZ21lbnRFdgogX19aTjdXZWJDb3JlOERvY3VtZW50MjNkaWRBZGRXaGVl
bEV2ZW50SGFuZGxlckV2CkBAIC0xMTkzLDYgKzExOTEsNyBAQCBfX1pOSzdXZWJDb3JlMTFTY3Jp
cHRWYWx1ZTlnZXRTdHJpbmdFUE4zSlNDOUV4ZWNTdGF0ZUVSTjNXVEY2U3RyaW5nRQogX19aTks3
V2ViQ29yZTEySWNvbkRhdGFiYXNlMTJkYXRhYmFzZVBhdGhFdgogX19aTks3V2ViQ29yZTEySWNv
bkRhdGFiYXNlMjRzaG91bGRTdG9wVGhyZWFkQWN0aXZpdHlFdgogX19aTks3V2ViQ29yZTEySWNv
bkRhdGFiYXNlOWlzRW5hYmxlZEV2CitfX1pOSzdXZWJDb3JlMTJSZW5kZXJPYmplY3QxM3N0eWxl
SW5SZWdpb25FdgogX19aTks3V2ViQ29yZTEyUmVuZGVyT2JqZWN0MTRlbmNsb3NpbmdMYXllckV2
CiBfX1pOSzdXZWJDb3JlMTJSZW5kZXJPYmplY3QxNWxvY2FsVG9BYnNvbHV0ZUVSS05TXzEwRmxv
YXRQb2ludEViYgogX19aTks3V2ViQ29yZTEyUmVuZGVyT2JqZWN0MjNhYnNvbHV0ZUJvdW5kaW5n
Qm94UmVjdEViCkBAIC0xMjU0LDggKzEyNTMsOCBAQCBfX1pOSzdXZWJDb3JlMTRSZXNvdXJjZUxv
YWRlcjExZnJhbWVMb2FkZXJFdgogX19aTks3V2ViQ29yZTE0U2Nyb2xsYWJsZUFyZWExNHNjcm9s
bEFuaW1hdG9yRXYKIF9fWk5LN1dlYkNvcmUxNFNjcm9sbGFibGVBcmVhMjBjb250ZW50QXJlYVdp
bGxQYWludEV2CiBfX1pOSzdXZWJDb3JlMTRTY3JvbGxhYmxlQXJlYTIybW91c2VFeGl0ZWRDb250
ZW50QXJlYUV2Ci1fX1pOSzdXZWJDb3JlMTRTY3JvbGxhYmxlQXJlYTIzbW91c2VNb3ZlZEluQ29u
dGVudEFyZWFFdgogX19aTks3V2ViQ29yZTE0U2Nyb2xsYWJsZUFyZWEyM21vdXNlRW50ZXJlZENv
bnRlbnRBcmVhRXYKK19fWk5LN1dlYkNvcmUxNFNjcm9sbGFibGVBcmVhMjNtb3VzZU1vdmVkSW5D
b250ZW50QXJlYUV2CiBfX1pOSzdXZWJDb3JlMTRTZWN1cml0eU9yaWdpbjEwY2FuRGlzcGxheUVS
S05TXzRLVVJMRQogX19aTks3V2ViQ29yZTE0U2VjdXJpdHlPcmlnaW4xOGRhdGFiYXNlSWRlbnRp
ZmllckV2CiBfX1pOSzdXZWJDb3JlMTRTZWN1cml0eU9yaWdpbjVlcXVhbEVQS1MwXwpAQCAtMTQy
NCw2ICsxNDIzLDcgQEAgX19aTks3V2ViQ29yZTdJbnRSZWN0OGNvbnRhaW5zRVJLUzBfCiBfX1pO
SzdXZWJDb3JlN0ludFJlY3RjdjZDR1JlY3RFdgogX19aTks3V2ViQ29yZTdJbnRSZWN0Y3Y3X05T
UmVjdEV2CiBfX1pOSzdXZWJDb3JlN0ludFNpemVjdjZDR1NpemVFdgorX19aTks3V2ViQ29yZTdS
dW5Mb29wOVRpbWVyQmFzZThpc0FjdGl2ZUV2CiBfX1pOSzdXZWJDb3JlOERvY3VtZW50MTByZW5k
ZXJWaWV3RXYKIF9fWk5LN1dlYkNvcmU4RG9jdW1lbnQxMWNvbXBsZXRlVVJMRVJLTjNXVEY2U3Ry
aW5nRQogX19aTks3V2ViQ29yZThEb2N1bWVudDEzYXhPYmplY3RDYWNoZUV2CkBAIC0xNjA1LDYg
KzE2MDUsMTMgQEAgX3drQ3JlYXRlQVhUZXh0TWFya2VyCiBfd2tHZXRCeXRlc0Zyb21BWFRleHRN
YXJrZXIKIF93a0NyZWF0ZUFYVUlFbGVtZW50UmVmCiAKKyNpZiBFTkFCTEUoU1ZHKQorX19aTjdX
ZWJDb3JlMTRTVkdTTUlMRWxlbWVudDEzaXNTTUlMRWxlbWVudEVQTlNfNE5vZGVFCitfX1pON1dl
YkNvcmUyMVNWR0RvY3VtZW50RXh0ZW5zaW9uczIxc2FtcGxlQW5pbWF0aW9uQXRUaW1lRVJLTjNX
VEY2U3RyaW5nRVBOU18xNFNWR1NNSUxFbGVtZW50RWQKK19fWk43V2ViQ29yZThEb2N1bWVudDEz
c3ZnRXh0ZW5zaW9uc0V2CitfX1pON1dlYkNvcmU4RG9jdW1lbnQxOWFjY2Vzc1NWR0V4dGVuc2lv
bnNFdgorI2VuZGlmCisKICNpZiBFTkFCTEUoM0RfUkVOREVSSU5HKQogX1dlYkNvcmVIYXMzRFJl
bmRlcmluZwogI2VuZGlmCkBAIC0yMDYwLDYgKzIwNjcsMyBAQCBfX1pON1dlYkNvcmUyMFNjcm9s
bGluZ0Nvb3JkaW5hdG9yMThoYW5kbGVHZXN0dXJlRXZlbnRFUktOU18yMFBsYXRmb3JtR2VzdHVy
ZUV2ZQogI2VuZGlmCiAKICNlbmRpZgotCi0KLQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
V2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZj
cHJvai9XZWJDb3JlLnZjcHJvagppbmRleCBlODZkMzllOWYwN2Q1MTQyYTRjYjE2ODUxNjUxMjg1
ODM3M2UyMmQyLi42MmMzODNiNWI1MjJmYTY3N2ZlY2RlMmYwOGI4NmI5NTMyMjM2ZGQ3IDEwMDc1
NQotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvagorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvagpAQCAtMjY2NTAs
NiArMjY2NTAsMTQgQEAKIAkJCQk+CiAJCQk8L0ZpbGU+CiAJCQk8RmlsZQorCQkJCVJlbGF0aXZl
UGF0aD0iLi5ccGxhdGZvcm1cUnVuTG9vcC5jcHAiCisJCQkJPgorCQkJPC9GaWxlPgorCQkJPEZp
bGUKKwkJCQlSZWxhdGl2ZVBhdGg9Ii4uXHBsYXRmb3JtXFJ1bkxvb3AuaCIKKwkJCQk+CisJCQk8
L0ZpbGU+CisJCQk8RmlsZQogCQkJCVJlbGF0aXZlUGF0aD0iLi5ccGxhdGZvcm1cUnVudGltZUFw
cGxpY2F0aW9uQ2hlY2tzLmNwcCIKIAkJCQk+CiAJCQk8L0ZpbGU+CkBAIC0yNzA2MSw2ICsyNzA2
OSwxMCBAQAogCQkJCQk+CiAJCQkJPC9GaWxlPgogCQkJCTxGaWxlCisJCQkJCVJlbGF0aXZlUGF0
aD0iLi5ccGxhdGZvcm1cd2luXFJ1bkxvb3BXaW4uY3BwIgorCQkJCQk+CisJCQkJPC9GaWxlPgor
CQkJCTxGaWxlCiAJCQkJCVJlbGF0aXZlUGF0aD0iLi5ccGxhdGZvcm1cd2luXFNjcm9sbGJhclRo
ZW1lU2FmYXJpLmNwcCIKIAkJCQkJPgogCQkJCTwvRmlsZT4KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJDb3Jl
L1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCA3NWIyYjllYzdiNGY0NWE0
NzUzMDEyMTJjM2I0NWM3NzkzYjgwYmQzLi5mMTM3NDk3Yzc2ZWI2ZDRlNDFhMGI1MDQzZDJmZTk1
NGJiODhkZDllIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9w
cm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJv
amVjdC5wYnhwcm9qCkBAIC00OTg3LDYgKzQ5ODcsOSBAQAogCQlCQzA2RUUwNDBCRkQ3MUFBMDA4
NTZFOUQgLyogSlNIVE1MVGFibGVFbGVtZW50LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDMDZFRTAyMEJGRDcxQUEwMDg1NkU5RCAvKiBKU0hUTUxU
YWJsZUVsZW1lbnQuY3BwICovOyB9OwogCQlCQzA2RUUwNTBCRkQ3MUFBMDA4NTZFOUQgLyogSlNI
VE1MVGFibGVFbGVtZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSBCQzA2RUUwMzBCRkQ3MUFBMDA4NTZFOUQgLyogSlNIVE1MVGFibGVFbGVtZW50Lmgg
Ki87IH07CiAJCUJDMDczQkFBMEMzOTlCMUYwMDBGNTk3OSAvKiBGbG9hdENvbnZlcnNpb24uaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDMDczQkE5MEMz
OTlCMUYwMDBGNTk3OSAvKiBGbG9hdENvbnZlcnNpb24uaCAqLzsgfTsKKwkJQkMwQjM1ODMxNEM0
Rjk1NDAwNTVFMjJBIC8qIFJ1bkxvb3BNYWMubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSBCQzBCMzU4MjE0QzRGOTU0MDA1NUUyMkEgLyogUnVuTG9vcE1h
Yy5tbSAqLzsgfTsKKwkJQkMwQjM1ODcxNEM0Rjk4MzAwNTVFMjJBIC8qIFJ1bkxvb3AuY3BwIGlu
IFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkMwQjM1ODUxNEM0
Rjk4MzAwNTVFMjJBIC8qIFJ1bkxvb3AuY3BwICovOyB9OworCQlCQzBCMzU4ODE0QzRGOTgzMDA1
NUUyMkEgLyogUnVuTG9vcC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gQkMwQjM1ODYxNEM0Rjk4MzAwNTVFMjJBIC8qIFJ1bkxvb3AuaCAqLzsgc2V0dGlu
Z3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlCQzBCMzZBNDBDRDNDNjdD
MDBBQzdFQjUgLyogQ29uc29sZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSBCQzBCMzZBMTBDRDNDNjdDMDBBQzdFQjUgLyogQ29uc29sZS5jcHAgKi87
IH07CiAJCUJDMEIzNkE1MENEM0M2N0MwMEFDN0VCNSAvKiBDb25zb2xlLmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCQzBCMzZBMjBDRDNDNjdDMDBBQzdF
QjUgLyogQ29uc29sZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7
IH07IH07CiAJCUJDMTI0RUU3MEMyNjQxQ0QwMDlFMjM0OSAvKiBCYXJJbmZvLmNwcCBpbiBTb3Vy
Y2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDMTI0RUU0MEMyNjQxQ0Qw
MDlFMjM0OSAvKiBCYXJJbmZvLmNwcCAqLzsgfTsKQEAgLTcyMzIsNyArNzIzNSw2IEBACiAJCTFB
QkZFNzUyMENEOTY4RDAwMEZFNDgzNCAvKiBTUUxUcmFuc2FjdGlvbi5jcHAgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBTUUxUcmFuc2FjdGlvbi5jcHA7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCTFBQzIyNjBBMERCNjlGMTkwMDg5QjY2OSAvKiBKU0RPTUFwcGxp
Y2F0aW9uQ2FjaGUuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNE
T01BcHBsaWNhdGlvbkNhY2hlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMUFD
MjI2MEIwREI2OUYxOTAwODlCNjY5IC8qIEpTRE9NQXBwbGljYXRpb25DYWNoZS5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBKU0RPTUFwcGxpY2F0aW9uQ2FjaGUuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJMUFDNjkyNjkxNEExMjUzMTAwQkQ4NUYxIC8qIFNjcm9s
bGFibGVBcmVhQ2xpZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNjcm9s
bGFibGVBcmVhQ2xpZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTFBQ0U1M0RE
MEE4RDE4ODEwMDIyOTQ3RCAvKiBKU0RPTVBhcnNlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAuY3BwOyBwYXRoID0gSlNET01QYXJzZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQkxQUNFNTNERTBBOEQxODgxMDAyMjk0N0QgLyogSlNET01QYXJzZXIuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTRE9NUGFyc2VyLmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCTFBQ0U1M0UxMEE4RDE4RTcwMDIyOTQ3RCAvKiBET01QYXJzZXIuY3Bw
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IERPTVBhcnNlci5jcHA7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xMTg1Niw2ICsxMTg1OCw5IEBACiAJCUJDMDZG
MjRDMDZEMThBN0UwMDRBNkZBMyAvKiBYU0xUUHJvY2Vzc29yLmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGluZGVudFdpZHRoID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFhTTFRQcm9jZXNzb3IuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgdGFiV2lkdGggPSA4OyB1c2VzVGFicyA9IDA7IH07CiAJCUJDMDZG
MjREMDZEMThBN0UwMDRBNkZBMyAvKiBYU0xUUHJvY2Vzc29yTGlieHNsdC5jcHAgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGluZGVudFdpZHRoID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBYU0xUUHJvY2Vz
c29yTGlieHNsdC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IHRhYldpZHRoID0gODsgdXNl
c1RhYnMgPSAwOyB9OwogCQlCQzA3M0JBOTBDMzk5QjFGMDAwRjU5NzkgLyogRmxvYXRDb252ZXJz
aW9uLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBGbG9hdENvbnZlcnNpb24u
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQkMwQjM1ODIxNEM0Rjk1NDAwNTVFMjJB
IC8qIFJ1bkxvb3BNYWMubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGgg
PSBSdW5Mb29wTWFjLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlCQzBCMzU4NTE0
QzRGOTgzMDA1NUUyMkEgLyogUnVuTG9vcC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5j
cHA7IHBhdGggPSBSdW5Mb29wLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQkMw
QjM1ODYxNEM0Rjk4MzAwNTVFMjJBIC8qIFJ1bkxvb3AuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gUnVuTG9vcC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlCQzBC
MzZBMTBDRDNDNjdDMDBBQzdFQjUgLyogQ29uc29sZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAuY3BwOyBwYXRoID0gQ29uc29sZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCUJDMEIzNkEyMENEM0M2N0MwMEFDN0VCNSAvKiBDb25zb2xlLmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBDb25zb2xlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCUJDMEIzNkEzMENEM0M2N0MwMEFDN0VCNSAvKiBDb25zb2xlLmlkbCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSB0
ZXh0OyBwYXRoID0gQ29uc29sZS5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0x
NDk0NSw2ICsxNDk1MCw3IEBACiAJCQkJRDM5RDAwNkMxMUY4RTMwODAwNjA0MUYyIC8qIFBvcHVw
TWVudU1hYy5oICovLAogCQkJCTA2NjhFMThFMEFERDk2NDAwMDQxMjhFMCAvKiBQb3B1cE1lbnVN
YWMubW0gKi8sCiAJCQkJRTRENjg3NzYwRUQ3QUUzRDAwNkVBOTc4IC8qIFB1cmdlYWJsZUJ1ZmZl
ck1hYy5jcHAgKi8sCisJCQkJQkMwQjM1ODIxNEM0Rjk1NDAwNTVFMjJBIC8qIFJ1bkxvb3BNYWMu
bW0gKi8sCiAJCQkJMUNFMjRGOTYwRDdDQUYwRTAwN0UwNEMyIC8qIFNjaGVkdWxlUGFpck1hYy5t
bSAqLywKIAkJCQlCQ0FFMUZBNTEyOTM5REI3MDA0Q0IwMjYgLyogU2Nyb2xsQW5pbWF0b3JNYWMu
aCAqLywKIAkJCQlCQzUxMTU2RDEyQjE3NDlDMDBDOTY3NTQgLyogU2Nyb2xsQW5pbWF0b3JNYWMu
bW0gKi8sCkBAIC0xOTYzNyw2ICsxOTY0Myw4IEBACiAJCQkJQkMzQkUxMkEwRTk4MDkyRjAwODM1
NTg4IC8qIFBvcHVwTWVudVN0eWxlLmggKi8sCiAJCQkJRTRENjg3NzgwRUQ3QUU0RjAwNkVBOTc4
IC8qIFB1cmdlYWJsZUJ1ZmZlci5oICovLAogCQkJCTdFMzNDRDAwMTI3RjM0MEQwMEJFOEYxNyAv
KiBQdXJnZVByaW9yaXR5LmggKi8sCisJCQkJQkMwQjM1ODUxNEM0Rjk4MzAwNTVFMjJBIC8qIFJ1
bkxvb3AuY3BwICovLAorCQkJCUJDMEIzNTg2MTRDNEY5ODMwMDU1RTIyQSAvKiBSdW5Mb29wLmgg
Ki8sCiAJCQkJMUM2M0EyNDYwRjcxNjQ2NjAwQzA5RDVBIC8qIFJ1bkxvb3BUaW1lci5oICovLAog
CQkJCTI5M0VBRTIwMTM1NkIzMkUwMDY3QUNGOSAvKiBSdW50aW1lQXBwbGljYXRpb25DaGVja3Mu
Y3BwICovLAogCQkJCTI5M0VBRTFFMTM1NkIyRkUwMDY3QUNGOSAvKiBSdW50aW1lQXBwbGljYXRp
b25DaGVja3MuaCAqLywKQEAgLTE5NjQ0LDcgKzE5NjUyLDYgQEAKIAkJCQk1MTYyQzdGMzExRjc3
RUZCMDA2MTJFRkUgLyogU2NoZW1lUmVnaXN0cnkuaCAqLywKIAkJCQlCQzhBRTM0QzEyRUEwOTZB
MDBFQjNBRTYgLyogU2Nyb2xsYWJsZUFyZWEuY3BwICovLAogCQkJCUJDOEFFMzREMTJFQTA5NkEw
MEVCM0FFNiAvKiBTY3JvbGxhYmxlQXJlYS5oICovLAotCQkJCTFBQzY5MjY5MTRBMTI1MzEwMEJE
ODVGMSAvKiBTY3JvbGxhYmxlQXJlYUNsaWVudC5oICovLAogCQkJCUNBM0JGNjdCMTBEOTlCQUUw
MEU2Q0U1MyAvKiBTY3JvbGxBbmltYXRvci5jcHAgKi8sCiAJCQkJQ0EzQkY2N0QxMEQ5OUJBRTAw
RTZDRTUzIC8qIFNjcm9sbEFuaW1hdG9yLmggKi8sCiAJCQkJQkNBQTkwQzIwQTdFQkE2MDAwOEIx
MjI5IC8qIFNjcm9sbGJhci5jcHAgKi8sCkBAIC0yNDA0Miw2ICsyNDA0OSw3IEBACiAJCQkJRkQ1
MzczNTMxMzdCNjUxODAwMDA4RENFIC8qIFplcm9Qb2xlLmggaW4gSGVhZGVycyAqLywKIAkJCQk1
MDlDQzlGQjE0QzA2OUVEMDBCQkVDQkQgLyogQ3VzdG9tRmlsdGVyUGFyYW1ldGVyLmggaW4gSGVh
ZGVycyAqLywKIAkJCQk1MENDMDg5QTE0QzZFOTlDMDAxN0FCNTEgLyogQ3VzdG9tRmlsdGVyTnVt
YmVyUGFyYW1ldGVyLmggaW4gSGVhZGVycyAqLywKKwkJCQlCQzBCMzU4ODE0QzRGOTgzMDA1NUUy
MkEgLyogUnVuTG9vcC5oIGluIEhlYWRlcnMgKi8sCiAJCQkpOwogCQkJcnVuT25seUZvckRlcGxv
eW1lbnRQb3N0cHJvY2Vzc2luZyA9IDA7CiAJCX07CkBAIC0yNjk2MSw2ICsyNjk2OSw4IEBACiAJ
CQkJOTc3RTJFMEUxMkYwRkM5QzAwQzEzMzc5IC8qIFhTU0F1ZGl0b3IuY3BwIGluIFNvdXJjZXMg
Ki8sCiAJCQkJRkQ1MzczNTIxMzdCNjUxODAwMDA4RENFIC8qIFplcm9Qb2xlLmNwcCBpbiBTb3Vy
Y2VzICovLAogCQkJCTUwQ0MwQTM5MTRDNkY1QjEwMDE3QUI1MSAvKiBDdXN0b21GaWx0ZXJPcGVy
YXRpb24uY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJQkMwQjM1ODMxNEM0Rjk1NDAwNTVFMjJBIC8q
IFJ1bkxvb3BNYWMubW0gaW4gU291cmNlcyAqLywKKwkJCQlCQzBCMzU4NzE0QzRGOTgzMDA1NUUy
MkEgLyogUnVuTG9vcC5jcHAgaW4gU291cmNlcyAqLywKIAkJCSk7CiAJCQlydW5Pbmx5Rm9yRGVw
bG95bWVudFBvc3Rwcm9jZXNzaW5nID0gMDsKIAkJfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL1J1bkxvb3AuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vUnVuTG9v
cC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uNDQxYzU4NjNmNjZiNjY5MDEwMTgyZmIxNTRkOGFkZDQzNjEzZTA5
OAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1J1bkxvb3AuY3Bw
CkBAIC0wLDAgKzEsNzQgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAgQXBwbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBh
cmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWlu
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBp
biBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJv
dmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJP
VklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFO
RCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkg
QU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4g
SU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBM
SUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVN
UExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNF
UzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJV
UFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hF
VEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElO
RyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0Yg
VEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5j
bHVkZSAiUnVuTG9vcC5oIgorCisjaW5jbHVkZSA8d3RmL1N0ZExpYkV4dHJhcy5oPgorCituYW1l
c3BhY2UgV2ViQ29yZSB7CisKK3N0YXRpYyBSdW5Mb29wKiBzX21haW5SdW5Mb29wOworCit2b2lk
IFJ1bkxvb3A6OmluaXRpYWxpemVNYWluUnVuTG9vcCgpCit7CisgICAgaWYgKHNfbWFpblJ1bkxv
b3ApCisgICAgICAgIHJldHVybjsKKyAgICBzX21haW5SdW5Mb29wID0gUnVuTG9vcDo6Y3VycmVu
dCgpOworfQorCitSdW5Mb29wKiBSdW5Mb29wOjpjdXJyZW50KCkKK3sKKyAgICBERUZJTkVfU1RB
VElDX0xPQ0FMKFdURjo6VGhyZWFkU3BlY2lmaWM8UnVuTG9vcD4sIHJ1bkxvb3BEYXRhLCAoKSk7
CisgICAgcmV0dXJuICYqcnVuTG9vcERhdGE7Cit9CisKK1J1bkxvb3AqIFJ1bkxvb3A6Om1haW4o
KQoreworICAgIEFTU0VSVChzX21haW5SdW5Mb29wKTsKKyAgICByZXR1cm4gc19tYWluUnVuTG9v
cDsKK30KKwordm9pZCBSdW5Mb29wOjpwZXJmb3JtV29yaygpCit7CisgICAgVmVjdG9yPEZ1bmN0
aW9uPHZvaWQoKT4gPiBmdW5jdGlvblF1ZXVlOworICAgIHsKKyAgICAgICAgTXV0ZXhMb2NrZXIg
bG9ja2VyKG1fZnVuY3Rpb25RdWV1ZUxvY2spOworICAgICAgICBtX2Z1bmN0aW9uUXVldWUuc3dh
cChmdW5jdGlvblF1ZXVlKTsKKyAgICB9CisKKyAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IGZ1
bmN0aW9uUXVldWUuc2l6ZSgpOyArK2kpCisgICAgICAgIGZ1bmN0aW9uUXVldWVbaV0oKTsKK30K
Kwordm9pZCBSdW5Mb29wOjpkaXNwYXRjaChjb25zdCBGdW5jdGlvbjx2b2lkKCk+JiBmdW5jdGlv
bikKK3sKKyAgICBNdXRleExvY2tlciBsb2NrZXIobV9mdW5jdGlvblF1ZXVlTG9jayk7CisgICAg
bV9mdW5jdGlvblF1ZXVlLmFwcGVuZChmdW5jdGlvbik7CisKKyAgICB3YWtlVXAoKTsKK30KKwor
fSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vUnVuTG9vcC5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vUnVuTG9vcC5oCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLjZlMDQzMjZmZTUzNzZlOTI1NmRiNzM2ZGRmODI4YTk1MTFmY2Y4YzcKLS0tIC9kZXYvbnVs
bAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9SdW5Mb29wLmgKQEAgLTAsMCArMSwxNjUg
QEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgorICogQ29weXJpZ2h0IChDKSAyMDEwIE5va2lhIENvcnBvcmF0aW9uIGFuZC9vciBpdHMg
c3Vic2lkaWFyeSgtaWVzKQorICogUG9ydGlvbnMgQ29weXJpZ2h0IChjKSAyMDEwIE1vdG9yb2xh
IE1vYmlsaXR5LCBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAor
ICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJj
ZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIu
IFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBv
dGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRI
SVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9S
UyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBP
RiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9T
RSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09O
VFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVO
VEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVU
RSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJV
U0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZ
IE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFks
IE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcg
SU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklT
RUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVm
IFJ1bkxvb3BfaAorI2RlZmluZSBSdW5Mb29wX2gKKworI2luY2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+
CisjaW5jbHVkZSA8d3RmL0Z1bmN0aW9uYWwuaD4KKyNpbmNsdWRlIDx3dGYvSGFzaE1hcC5oPgor
I2luY2x1ZGUgPHd0Zi9UaHJlYWRTcGVjaWZpYy5oPgorI2luY2x1ZGUgPHd0Zi9UaHJlYWRpbmcu
aD4KKyNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+CisKKyNpZiBQTEFURk9STShHVEspCisjaW5jbHVk
ZSA8d3RmL2dvYmplY3QvR1JlZlB0ci5oPgordHlwZWRlZiBzdHJ1Y3QgX0dTb3VyY2UgR1NvdXJj
ZTsKK3R5cGVkZWYgc3RydWN0IF9HTWFpbkxvb3AgR01haW5Mb29wOwordHlwZWRlZiBzdHJ1Y3Qg
X0dNYWluQ29udGV4dCBHTWFpbkNvbnRleHQ7Cit0eXBlZGVmIGludCBnYm9vbGVhbjsKKyNlbmRp
ZgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIFJ1bkxvb3AgeworcHVibGljOgorICAg
IC8vIE11c3QgYmUgY2FsbGVkIGZyb20gdGhlIG1haW4gdGhyZWFkLgorICAgIHN0YXRpYyB2b2lk
IGluaXRpYWxpemVNYWluUnVuTG9vcCgpOworCisgICAgc3RhdGljIFJ1bkxvb3AqIGN1cnJlbnQo
KTsKKyAgICBzdGF0aWMgUnVuTG9vcCogbWFpbigpOworCisgICAgdm9pZCBkaXNwYXRjaChjb25z
dCBGdW5jdGlvbjx2b2lkKCk+Jik7CisKKyAgICBzdGF0aWMgdm9pZCBydW4oKTsKKyAgICB2b2lk
IHN0b3AoKTsKKworI2lmIFBMQVRGT1JNKE1BQykKKyAgICB2b2lkIHJ1bkZvckR1cmF0aW9uKGRv
dWJsZSBkdXJhdGlvbik7CisjZW5kaWYKKyAgICAKKyAgICBjbGFzcyBUaW1lckJhc2UgeworICAg
ICAgICBmcmllbmQgY2xhc3MgUnVuTG9vcDsKKyAgICBwdWJsaWM6CisgICAgICAgIFRpbWVyQmFz
ZShSdW5Mb29wKik7CisgICAgICAgIHZpcnR1YWwgflRpbWVyQmFzZSgpOworCisgICAgICAgIHZv
aWQgc3RhcnRSZXBlYXRpbmcoZG91YmxlIHJlcGVhdEludGVydmFsKSB7IHN0YXJ0KHJlcGVhdElu
dGVydmFsLCB0cnVlKTsgfQorICAgICAgICB2b2lkIHN0YXJ0T25lU2hvdChkb3VibGUgaW50ZXJ2
YWwpIHsgc3RhcnQoaW50ZXJ2YWwsIGZhbHNlKTsgfQorCisgICAgICAgIHZvaWQgc3RvcCgpOwor
ICAgICAgICBib29sIGlzQWN0aXZlKCkgY29uc3Q7CisKKyAgICAgICAgdmlydHVhbCB2b2lkIGZp
cmVkKCkgPSAwOworCisgICAgcHJpdmF0ZToKKyAgICAgICAgdm9pZCBzdGFydChkb3VibGUgbmV4
dEZpcmVJbnRlcnZhbCwgYm9vbCByZXBlYXQpOworCisgICAgICAgIFJ1bkxvb3AqIG1fcnVuTG9v
cDsKKworI2lmIFBMQVRGT1JNKFdJTikKKyAgICAgICAgc3RhdGljIHZvaWQgdGltZXJGaXJlZChS
dW5Mb29wKiwgdWludDY0X3QgSUQpOworICAgICAgICB1aW50NjRfdCBtX0lEOworICAgICAgICBi
b29sIG1faXNSZXBlYXRpbmc7CisjZWxpZiBQTEFURk9STShNQUMpCisgICAgICAgIHN0YXRpYyB2
b2lkIHRpbWVyRmlyZWQoQ0ZSdW5Mb29wVGltZXJSZWYsIHZvaWQqKTsKKyAgICAgICAgQ0ZSdW5M
b29wVGltZXJSZWYgbV90aW1lcjsKKyNlbGlmIFBMQVRGT1JNKFFUKQorICAgICAgICBzdGF0aWMg
dm9pZCB0aW1lckZpcmVkKFJ1bkxvb3AqLCBpbnQgSUQpOworICAgICAgICBpbnQgbV9JRDsKKyAg
ICAgICAgYm9vbCBtX2lzUmVwZWF0aW5nOworI2VsaWYgUExBVEZPUk0oR1RLKQorICAgICAgICBz
dGF0aWMgZ2Jvb2xlYW4gdGltZXJGaXJlZENhbGxiYWNrKFJ1bkxvb3A6OlRpbWVyQmFzZSopOwor
ICAgICAgICBnYm9vbGVhbiBpc1JlcGVhdGluZygpIGNvbnN0IHsgcmV0dXJuIG1faXNSZXBlYXRp
bmc7IH0KKyAgICAgICAgdm9pZCBjbGVhclRpbWVyU291cmNlKCk7CisgICAgICAgIEdSZWZQdHI8
R1NvdXJjZT4gbV90aW1lclNvdXJjZTsKKyAgICAgICAgZ2Jvb2xlYW4gbV9pc1JlcGVhdGluZzsK
KyNlbmRpZgorICAgIH07CisKKyAgICB0ZW1wbGF0ZSA8dHlwZW5hbWUgVGltZXJGaXJlZENsYXNz
PgorICAgIGNsYXNzIFRpbWVyIDogcHVibGljIFRpbWVyQmFzZSB7CisgICAgcHVibGljOgorICAg
ICAgICB0eXBlZGVmIHZvaWQgKFRpbWVyRmlyZWRDbGFzczo6KlRpbWVyRmlyZWRGdW5jdGlvbiko
KTsKKworICAgICAgICBUaW1lcihSdW5Mb29wKiBydW5Mb29wLCBUaW1lckZpcmVkQ2xhc3MqIG8s
IFRpbWVyRmlyZWRGdW5jdGlvbiBmKQorICAgICAgICAgICAgOiBUaW1lckJhc2UocnVuTG9vcCkK
KyAgICAgICAgICAgICwgbV9vYmplY3QobykKKyAgICAgICAgICAgICwgbV9mdW5jdGlvbihmKQor
ICAgICAgICB7CisgICAgICAgIH0KKworICAgIHByaXZhdGU6CisgICAgICAgIHZpcnR1YWwgdm9p
ZCBmaXJlZCgpIHsgKG1fb2JqZWN0LT4qbV9mdW5jdGlvbikoKTsgfQorCisgICAgICAgIFRpbWVy
RmlyZWRDbGFzcyogbV9vYmplY3Q7CisgICAgICAgIFRpbWVyRmlyZWRGdW5jdGlvbiBtX2Z1bmN0
aW9uOworICAgIH07CisKK3ByaXZhdGU6CisgICAgZnJpZW5kIGNsYXNzIFdURjo6VGhyZWFkU3Bl
Y2lmaWM8UnVuTG9vcD47CisKKyAgICBSdW5Mb29wKCk7CisgICAgflJ1bkxvb3AoKTsKKworICAg
IHZvaWQgcGVyZm9ybVdvcmsoKTsKKyAgICB2b2lkIHdha2VVcCgpOworCisgICAgTXV0ZXggbV9m
dW5jdGlvblF1ZXVlTG9jazsKKyAgICBWZWN0b3I8RnVuY3Rpb248dm9pZCgpPiA+IG1fZnVuY3Rp
b25RdWV1ZTsKKworI2lmIFBMQVRGT1JNKFdJTikKKyAgICBzdGF0aWMgYm9vbCByZWdpc3RlclJ1
bkxvb3BNZXNzYWdlV2luZG93Q2xhc3MoKTsKKyAgICBzdGF0aWMgTFJFU1VMVCBDQUxMQkFDSyBS
dW5Mb29wV25kUHJvYyhIV05ELCBVSU5ULCBXUEFSQU0sIExQQVJBTSk7CisgICAgTFJFU1VMVCB3
bmRQcm9jKEhXTkQgaFduZCwgVUlOVCBtZXNzYWdlLCBXUEFSQU0gd1BhcmFtLCBMUEFSQU0gbFBh
cmFtKTsKKyAgICBIV05EIG1fcnVuTG9vcE1lc3NhZ2VXaW5kb3c7CisKKyAgICB0eXBlZGVmIEhh
c2hNYXA8dWludDY0X3QsIFRpbWVyQmFzZSo+IFRpbWVyTWFwOworICAgIFRpbWVyTWFwIG1fYWN0
aXZlVGltZXJzOworI2VsaWYgUExBVEZPUk0oTUFDKQorICAgIHN0YXRpYyB2b2lkIHBlcmZvcm1X
b3JrKHZvaWQqKTsKKyAgICBDRlJ1bkxvb3BSZWYgbV9ydW5Mb29wOworICAgIENGUnVuTG9vcFNv
dXJjZVJlZiBtX3J1bkxvb3BTb3VyY2U7CisgICAgaW50IG1fbmVzdGluZ0xldmVsOworI2VsaWYg
UExBVEZPUk0oUVQpCisgICAgdHlwZWRlZiBIYXNoTWFwPGludCwgVGltZXJCYXNlKj4gVGltZXJN
YXA7CisgICAgVGltZXJNYXAgbV9hY3RpdmVUaW1lcnM7CisgICAgY2xhc3MgVGltZXJPYmplY3Q7
CisgICAgVGltZXJPYmplY3QqIG1fdGltZXJPYmplY3Q7CisjZWxpZiBQTEFURk9STShHVEspCitw
dWJsaWM6CisgICAgc3RhdGljIGdib29sZWFuIHF1ZXVlV29yayhSdW5Mb29wKik7CisgICAgR01h
aW5Mb29wKiBtYWluTG9vcCgpOworcHJpdmF0ZToKKyAgICBHTWFpbkNvbnRleHQqIG1fcnVuTG9v
cENvbnRleHQ7CisgICAgR01haW5Mb29wKiBtX3J1bkxvb3BNYWluOworI2VuZGlmCit9OworCit9
IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBSdW5Mb29wX2gKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9SdW5Mb29wR3RrLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2d0ay9SdW5Mb29wR3RrLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45MjlhN2I5OGViZmU0
YzY0NjkxOWIzMzYyNDc0Y2ZhN2JjOTE0NTliCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3RrL1J1bkxvb3BHdGsuY3BwCkBAIC0wLDAgKzEsMTM3IEBACisvKgor
ICogQ29weXJpZ2h0IChDKSAyMDEwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAq
IFBvcnRpb25zIENvcHlyaWdodCAoYykgMjAxMCBNb3Rvcm9sYSBNb2JpbGl0eSwgSW5jLiAgQWxs
IHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJl
IG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4g
YmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
IGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3Zp
ZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJ
REVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQg
QU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFO
RCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElO
IE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElB
QkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBM
QVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7
IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBU
SU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRI
RVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcg
TkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRI
RSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lC
SUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1
ZGUgIlJ1bkxvb3AuaCIKKworI2luY2x1ZGUgPGdsaWIuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUg
eworCitSdW5Mb29wOjpSdW5Mb29wKCkKK3sKKyAgICBtX3J1bkxvb3BDb250ZXh0ID0gZ19tYWlu
X2NvbnRleHRfZGVmYXVsdCgpOworICAgIEFTU0VSVChtX3J1bkxvb3BDb250ZXh0KTsKKyAgICBt
X3J1bkxvb3BNYWluID0gZ19tYWluX2xvb3BfbmV3KG1fcnVuTG9vcENvbnRleHQsIEZBTFNFKTsK
KyAgICBBU1NFUlQobV9ydW5Mb29wTWFpbik7Cit9CisKK1J1bkxvb3A6On5SdW5Mb29wKCkKK3sK
KyAgICBpZiAobV9ydW5Mb29wTWFpbikgeworICAgICAgICBpZiAoZ19tYWluX2xvb3BfaXNfcnVu
bmluZyhtX3J1bkxvb3BNYWluKSkKKyAgICAgICAgICAgIGdfbWFpbl9sb29wX3F1aXQobV9ydW5M
b29wTWFpbik7CisgICAgICAgIGdfbWFpbl9sb29wX3VucmVmKG1fcnVuTG9vcE1haW4pOworICAg
IH0KKworICAgIGlmIChtX3J1bkxvb3BDb250ZXh0KQorICAgICAgICBnX21haW5fY29udGV4dF91
bnJlZihtX3J1bkxvb3BDb250ZXh0KTsKK30KKwordm9pZCBSdW5Mb29wOjpydW4oKQoreworICAg
IGdfbWFpbl9sb29wX3J1bihSdW5Mb29wOjptYWluKCktPm1haW5Mb29wKCkpOworfQorCitHTWFp
bkxvb3AqIFJ1bkxvb3A6Om1haW5Mb29wKCkKK3sKKyAgICByZXR1cm4gbV9ydW5Mb29wTWFpbjsK
K30KKwordm9pZCBSdW5Mb29wOjpzdG9wKCkKK3sKKyAgICBnX21haW5fbG9vcF9xdWl0KG1fcnVu
TG9vcE1haW4pOworfQorCitnYm9vbGVhbiBSdW5Mb29wOjpxdWV1ZVdvcmsoUnVuTG9vcCogcnVu
TG9vcCkKK3sKKyAgICBydW5Mb29wLT5wZXJmb3JtV29yaygpOworICAgIHJldHVybiBGQUxTRTsK
K30KKwordm9pZCBSdW5Mb29wOjp3YWtlVXAoKQoreworICAgIEdSZWZQdHI8R1NvdXJjZT4gc291
cmNlID0gYWRvcHRHUmVmKGdfaWRsZV9zb3VyY2VfbmV3KCkpOworICAgIGdfc291cmNlX3NldF9w
cmlvcml0eShzb3VyY2UuZ2V0KCksIEdfUFJJT1JJVFlfREVGQVVMVCk7CisgICAgZ19zb3VyY2Vf
c2V0X2NhbGxiYWNrKHNvdXJjZS5nZXQoKSwgcmVpbnRlcnByZXRfY2FzdDxHU291cmNlRnVuYz4o
JlJ1bkxvb3A6OnF1ZXVlV29yayksIHRoaXMsIDApOworICAgIGdfc291cmNlX2F0dGFjaChzb3Vy
Y2UuZ2V0KCksIG1fcnVuTG9vcENvbnRleHQpOworCisgICAgZ19tYWluX2NvbnRleHRfd2FrZXVw
KG1fcnVuTG9vcENvbnRleHQpOworfQorCitSdW5Mb29wOjpUaW1lckJhc2U6OlRpbWVyQmFzZShS
dW5Mb29wKiBydW5Mb29wKQorICAgIDogbV9ydW5Mb29wKHJ1bkxvb3ApCisgICAgLCBtX3RpbWVy
U291cmNlKDApCit7Cit9CisKK1J1bkxvb3A6OlRpbWVyQmFzZTo6flRpbWVyQmFzZSgpCit7Cisg
ICAgc3RvcCgpOworfQorCit2b2lkIFJ1bkxvb3A6OlRpbWVyQmFzZTo6Y2xlYXJUaW1lclNvdXJj
ZSgpCit7CisgICAgbV90aW1lclNvdXJjZSA9IDA7Cit9CisKK2dib29sZWFuIFJ1bkxvb3A6OlRp
bWVyQmFzZTo6dGltZXJGaXJlZENhbGxiYWNrKFJ1bkxvb3A6OlRpbWVyQmFzZSogdGltZXIpCit7
CisgICAgR1NvdXJjZSogY3VycmVudFRpbWVyU291cmNlID0gdGltZXItPm1fdGltZXJTb3VyY2Uu
Z2V0KCk7CisgICAgYm9vbCBpc1JlcGVhdGluZyA9IHRpbWVyLT5pc1JlcGVhdGluZygpOworICAg
IC8vIFRoaXMgY2FuIGNoYW5nZSB0aGUgdGltZXJTb3VyY2UgYnkgc3RhcnRpbmcgYSBuZXcgdGlt
ZXIgd2l0aGluIHRoZSBjYWxsYmFjay4KKyAgICB0aW1lci0+ZmlyZWQoKTsKKyAgICBpZiAoIWlz
UmVwZWF0aW5nICYmIGN1cnJlbnRUaW1lclNvdXJjZSA9PSB0aW1lci0+bV90aW1lclNvdXJjZS5n
ZXQoKSkKKyAgICAgICAgdGltZXItPmNsZWFyVGltZXJTb3VyY2UoKTsKKyAgICByZXR1cm4gaXNS
ZXBlYXRpbmc7Cit9CisKK3ZvaWQgUnVuTG9vcDo6VGltZXJCYXNlOjpzdGFydChkb3VibGUgZmly
ZUludGVydmFsLCBib29sIHJlcGVhdCkKK3sKKyAgICBpZiAobV90aW1lclNvdXJjZSkKKyAgICAg
ICAgc3RvcCgpOworCisgICAgbV90aW1lclNvdXJjZSA9IGFkb3B0R1JlZihnX3RpbWVvdXRfc291
cmNlX25ldyhzdGF0aWNfY2FzdDxndWludD4oZmlyZUludGVydmFsICogMTAwMCkpKTsKKyAgICBt
X2lzUmVwZWF0aW5nID0gcmVwZWF0OworICAgIGdfc291cmNlX3NldF9jYWxsYmFjayhtX3RpbWVy
U291cmNlLmdldCgpLCByZWludGVycHJldF9jYXN0PEdTb3VyY2VGdW5jPigmUnVuTG9vcDo6VGlt
ZXJCYXNlOjp0aW1lckZpcmVkQ2FsbGJhY2spLCB0aGlzLCAwKTsKKyAgICBnX3NvdXJjZV9hdHRh
Y2gobV90aW1lclNvdXJjZS5nZXQoKSwgbV9ydW5Mb29wLT5tX3J1bkxvb3BDb250ZXh0KTsKK30K
Kwordm9pZCBSdW5Mb29wOjpUaW1lckJhc2U6OnN0b3AoKQoreworICAgIGlmICghbV90aW1lclNv
dXJjZSkKKyAgICAgICAgcmV0dXJuOworCisgICAgZ19zb3VyY2VfZGVzdHJveShtX3RpbWVyU291
cmNlLmdldCgpKTsKKyAgICBjbGVhclRpbWVyU291cmNlKCk7Cit9CisKK2Jvb2wgUnVuTG9vcDo6
VGltZXJCYXNlOjppc0FjdGl2ZSgpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1fdGltZXJTb3VyY2U7
Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL21hYy9SdW5Mb29wTWFjLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFj
L1J1bkxvb3BNYWMubW0KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYTU2N2FmZGQ1Yzg3N2NiNThlOWIwMzE4ODQwODI4
ZDBmMDE2MGQwZQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21h
Yy9SdW5Mb29wTWFjLm1tCkBAIC0wLDAgKzEsMTU3IEBACisvKgorICogQ29weXJpZ2h0IChDKSAy
MDEwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAq
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2Ug
Y29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBS
ZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3Ro
ZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElT
IFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMg
YGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0Yg
TUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0Ug
QVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRS
SUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRB
TCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUg
R09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJ
TkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBP
RiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBP
UiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElO
IEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2ltcG9ydCAi
Y29uZmlnLmgiCisjaW1wb3J0ICJSdW5Mb29wLmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKwor
dm9pZCBSdW5Mb29wOjpwZXJmb3JtV29yayh2b2lkKiBjb250ZXh0KQoreworICAgIC8vIFdyYXAg
bWFpbiB0aHJlYWQgaW4gYW4gQXV0b3JlbGVhc2UgcG9vbC4gIFNlbmRpbmcgbWVzc2FnZXMgY2Fu
IGNhbGwgCisgICAgLy8gaW50byBvYmpjIGNvZGUgYW5kIGFjY3VtdWxhdGUgbWVtb3J5LiAgCisg
ICAgaWYgKGN1cnJlbnQoKSA9PSBtYWluKCkpIHsKKyAgICAgICAgTlNBdXRvcmVsZWFzZVBvb2wg
KnBvb2wgPSBbW05TQXV0b3JlbGVhc2VQb29sIGFsbG9jXSBpbml0XTsKKyAgICAgICAgc3RhdGlj
X2Nhc3Q8UnVuTG9vcCo+KGNvbnRleHQpLT5wZXJmb3JtV29yaygpOworICAgICAgICBbcG9vbCBk
cmFpbl07CisgICAgfSBlbHNlCisgICAgICAgIHN0YXRpY19jYXN0PFJ1bkxvb3AqPihjb250ZXh0
KS0+cGVyZm9ybVdvcmsoKTsKK30KKworUnVuTG9vcDo6UnVuTG9vcCgpCisgICAgOiBtX3J1bkxv
b3AoQ0ZSdW5Mb29wR2V0Q3VycmVudCgpKQorICAgICwgbV9uZXN0aW5nTGV2ZWwoMCkKK3sKKyAg
ICBDRlJ1bkxvb3BTb3VyY2VDb250ZXh0IGNvbnRleHQgPSB7IDAsIHRoaXMsIDAsIDAsIDAsIDAs
IDAsIDAsIDAsIHBlcmZvcm1Xb3JrIH07CisgICAgbV9ydW5Mb29wU291cmNlID0gQ0ZSdW5Mb29w
U291cmNlQ3JlYXRlKGtDRkFsbG9jYXRvckRlZmF1bHQsIDAsICZjb250ZXh0KTsKKyAgICBDRlJ1
bkxvb3BBZGRTb3VyY2UobV9ydW5Mb29wLCBtX3J1bkxvb3BTb3VyY2UsIGtDRlJ1bkxvb3BDb21t
b25Nb2Rlcyk7Cit9CisKK1J1bkxvb3A6On5SdW5Mb29wKCkKK3sKKyAgICAvLyBGSVhNRTogVGVh
ciBkb3duIHRoZSB3b3JrIGl0ZW0gcXVldWUgaGVyZS4KKyAgICBDRlJ1bkxvb3BTb3VyY2VJbnZh
bGlkYXRlKG1fcnVuTG9vcFNvdXJjZSk7CisgICAgQ0ZSZWxlYXNlKG1fcnVuTG9vcFNvdXJjZSk7
Cit9CisKK3ZvaWQgUnVuTG9vcDo6cnVuKCkKK3sKKyAgICBjdXJyZW50KCktPm1fbmVzdGluZ0xl
dmVsKys7CisgICAgaWYgKGN1cnJlbnQoKSA9PSBtYWluKCkgJiYgY3VycmVudCgpLT5tX25lc3Rp
bmdMZXZlbCA9PSAxKSB7CisgICAgICAgIC8vIFVzZSAtW05TQXBwbGljYXRpb24gcnVuXSBmb3Ig
dGhlIG1haW4gcnVuIGxvb3AuCisgICAgICAgIFtOU0FwcCBydW5dOworICAgIH0gZWxzZSB7Cisg
ICAgICAgIE5TQXV0b3JlbGVhc2VQb29sICpwb29sID0gW1tOU0F1dG9yZWxlYXNlUG9vbCBhbGxv
Y10gaW5pdF07CisgICAgICAgIENGUnVuTG9vcFJ1bigpOworICAgICAgICBbcG9vbCBkcmFpbl07
CisgICAgfQorICAgIGN1cnJlbnQoKS0+bV9uZXN0aW5nTGV2ZWwtLTsKK30KKwordm9pZCBSdW5M
b29wOjpydW5Gb3JEdXJhdGlvbihkb3VibGUgZHVyYXRpb24pCit7CisgICAgQ0ZSdW5Mb29wUnVu
SW5Nb2RlKGtDRlJ1bkxvb3BEZWZhdWx0TW9kZSwgZHVyYXRpb24sIHRydWUpOworfQorCit2b2lk
IFJ1bkxvb3A6OnN0b3AoKQoreworICAgIEFTU0VSVChtX3J1bkxvb3AgPT0gQ0ZSdW5Mb29wR2V0
Q3VycmVudCgpKTsKKyAgICAKKyAgICBpZiAobV9ydW5Mb29wID09IG1haW4oKS0+bV9ydW5Mb29w
ICYmIG1fbmVzdGluZ0xldmVsID09IDEpIHsKKyAgICAgICAgW05TQXBwIHN0b3A6bmlsXTsKKyAg
ICAgICAgTlNFdmVudCAqZXZlbnQgPSBbTlNFdmVudCBvdGhlckV2ZW50V2l0aFR5cGU6TlNBcHBs
aWNhdGlvbkRlZmluZWQKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgbG9jYXRpb246TlNNYWtlUG9pbnQoMCwgMCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIG1vZGlmaWVyRmxhZ3M6MAorICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIHRpbWVzdGFtcDowLjAKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgd2luZG93TnVtYmVyOjAKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIGNvbnRleHQ6bmlsCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBzdWJ0eXBlOiAwCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIGRhdGExOjAKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgZGF0YTI6MF07CisgICAgICAgIFtOU0FwcCBwb3N0RXZlbnQ6
ZXZlbnQgYXRTdGFydDp0cnVlXTsKKyAgICB9IGVsc2UKKyAgICAgICAgQ0ZSdW5Mb29wU3RvcCht
X3J1bkxvb3ApOworfQorCit2b2lkIFJ1bkxvb3A6Ondha2VVcCgpCit7CisgICAgQ0ZSdW5Mb29w
U291cmNlU2lnbmFsKG1fcnVuTG9vcFNvdXJjZSk7CisgICAgQ0ZSdW5Mb29wV2FrZVVwKG1fcnVu
TG9vcCk7Cit9CisKKy8vIFJ1bkxvb3A6OlRpbWVyCisKK3ZvaWQgUnVuTG9vcDo6VGltZXJCYXNl
Ojp0aW1lckZpcmVkKENGUnVuTG9vcFRpbWVyUmVmLCB2b2lkKiBjb250ZXh0KQoreworICAgIFRp
bWVyQmFzZSogdGltZXIgPSBzdGF0aWNfY2FzdDxUaW1lckJhc2UqPihjb250ZXh0KTsKKyAgICAK
KyAgICAvLyBXcmFwIG1haW4gdGhyZWFkIGluIGFuIEF1dG9yZWxlYXNlIHBvb2wuICBUaGUgdGlt
ZXIgY2FuIGNhbGwgCisgICAgLy8gaW50byBvYmpjIGNvZGUgYW5kIGFjY3VtdWxhdGUgbWVtb3J5
IG91dHNpZGUgb2YgdGhlIG1haW4gZXZlbnQgbG9vcC4KKyAgICBpZiAoY3VycmVudCgpID09IG1h
aW4oKSkgeworICAgICAgICBOU0F1dG9yZWxlYXNlUG9vbCAqcG9vbCA9IFtbTlNBdXRvcmVsZWFz
ZVBvb2wgYWxsb2NdIGluaXRdOyAKKyAgICAgICAgdGltZXItPmZpcmVkKCk7CisgICAgICAgIFtw
b29sIGRyYWluXTsKKyAgICB9IGVsc2UKKyAgICAgICAgdGltZXItPmZpcmVkKCk7Cit9CisKK1J1
bkxvb3A6OlRpbWVyQmFzZTo6VGltZXJCYXNlKFJ1bkxvb3AqIHJ1bkxvb3ApCisgICAgOiBtX3J1
bkxvb3AocnVuTG9vcCkKKyAgICAsIG1fdGltZXIoMCkKK3sKK30KKworUnVuTG9vcDo6VGltZXJC
YXNlOjp+VGltZXJCYXNlKCkKK3sKKyAgICBzdG9wKCk7Cit9CisKK3ZvaWQgUnVuTG9vcDo6VGlt
ZXJCYXNlOjpzdGFydChkb3VibGUgbmV4dEZpcmVJbnRlcnZhbCwgYm9vbCByZXBlYXQpCit7Cisg
ICAgaWYgKG1fdGltZXIpCisgICAgICAgIHN0b3AoKTsKKworICAgIENGUnVuTG9vcFRpbWVyQ29u
dGV4dCBjb250ZXh0ID0geyAwLCB0aGlzLCAwLCAwLCAwIH07CisgICAgQ0ZUaW1lSW50ZXJ2YWwg
cmVwZWF0SW50ZXJ2YWwgPSByZXBlYXQgPyBuZXh0RmlyZUludGVydmFsIDogMDsKKyAgICBtX3Rp
bWVyID0gQ0ZSdW5Mb29wVGltZXJDcmVhdGUoa0NGQWxsb2NhdG9yRGVmYXVsdCwgQ0ZBYnNvbHV0
ZVRpbWVHZXRDdXJyZW50KCkgKyBuZXh0RmlyZUludGVydmFsLCByZXBlYXRJbnRlcnZhbCwgMCwg
MCwgdGltZXJGaXJlZCwgJmNvbnRleHQpOworICAgIENGUnVuTG9vcEFkZFRpbWVyKG1fcnVuTG9v
cC0+bV9ydW5Mb29wLCBtX3RpbWVyLCBrQ0ZSdW5Mb29wQ29tbW9uTW9kZXMpOworfQorCit2b2lk
IFJ1bkxvb3A6OlRpbWVyQmFzZTo6c3RvcCgpCit7CisgICAgaWYgKCFtX3RpbWVyKQorICAgICAg
ICByZXR1cm47CisKKyAgICBDRlJ1bkxvb3BUaW1lckludmFsaWRhdGUobV90aW1lcik7CisgICAg
Q0ZSZWxlYXNlKG1fdGltZXIpOworICAgIG1fdGltZXIgPSAwOworfQorCitib29sIFJ1bkxvb3A6
OlRpbWVyQmFzZTo6aXNBY3RpdmUoKSBjb25zdAoreworICAgIHJldHVybiBtX3RpbWVyICYmIENG
UnVuTG9vcFRpbWVySXNWYWxpZChtX3RpbWVyKTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29y
ZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vcXQvUnVuTG9vcFF0LmNwcCBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3F0L1J1bkxvb3BRdC5jcHAKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMmE4
N2UyZmM4ZjY2Nzc3NjlmNzMxNDNlNTcxZTA5YzVhNTRjNmViYQotLS0gL2Rldi9udWxsCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3F0L1J1bkxvb3BRdC5jcHAKQEAgLTAsMCArMSwxNjYg
QEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgorICogQ29weXJpZ2h0IChDKSAyMDEwIE5va2lhIENvcnBvcmF0aW9uIGFuZC9vciBpdHMg
c3Vic2lkaWFyeSgtaWVzKQorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUg
bWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBi
aW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIg
aW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlk
ZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklE
RUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBB
TlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5E
IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4g
Tk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFC
TEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExB
UlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsg
TE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJ
T04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhF
UiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBO
RUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhF
IFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVk
ZSAiUnVuTG9vcC5oIgorCisjaW5jbHVkZSA8UUFic3RyYWN0RXZlbnREaXNwYXRjaGVyPgorI2lu
Y2x1ZGUgPFFDb3JlQXBwbGljYXRpb24+CisjaW5jbHVkZSA8UU1ldGFNZXRob2Q+CisjaW5jbHVk
ZSA8UU1ldGFPYmplY3Q+CisjaW5jbHVkZSA8UU9iamVjdD4KKyNpbmNsdWRlIDxRVGltZXJFdmVu
dD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBSdW5Mb29wOjpUaW1lck9iamVjdCA6
IHB1YmxpYyBRT2JqZWN0IHsKKyAgICBRX09CSkVDVAorcHVibGljOgorICAgIFRpbWVyT2JqZWN0
KFJ1bkxvb3AqIHJ1bkxvb3ApIDogbV9ydW5Mb29wKHJ1bkxvb3ApCisgICAgeworICAgICAgICBp
bnQgbWV0aG9kSW5kZXggPSBtZXRhT2JqZWN0KCktPmluZGV4T2ZNZXRob2QoInBlcmZvcm1Xb3Jr
KCkiKTsKKyAgICAgICAgbV9tZXRob2QgPSBtZXRhT2JqZWN0KCktPm1ldGhvZChtZXRob2RJbmRl
eCk7CisgICAgfQorCisgICAgUV9TTE9UIHZvaWQgcGVyZm9ybVdvcmsoKSB7IG1fcnVuTG9vcC0+
cGVyZm9ybVdvcmsoKTsgfQorICAgIGlubGluZSB2b2lkIHdha2VVcCgpIHsgbV9tZXRob2QuaW52
b2tlKHRoaXMsIFF0OjpRdWV1ZWRDb25uZWN0aW9uKTsgfQorCitwcm90ZWN0ZWQ6CisgICAgdmly
dHVhbCB2b2lkIHRpbWVyRXZlbnQoUVRpbWVyRXZlbnQqIGV2ZW50KQorICAgIHsKKyAgICAgICAg
UnVuTG9vcDo6VGltZXJCYXNlOjp0aW1lckZpcmVkKG1fcnVuTG9vcCwgZXZlbnQtPnRpbWVySWQo
KSk7CisgICAgfQorCitwcml2YXRlOgorICAgIFJ1bkxvb3AqIG1fcnVuTG9vcDsKKyAgICBRTWV0
YU1ldGhvZCBtX21ldGhvZDsKK307CisKK3N0YXRpYyBRRXZlbnRMb29wKiBjdXJyZW50RXZlbnRM
b29wOworCit2b2lkIFJ1bkxvb3A6OnJ1bigpCit7CisgICAgc3RhdGljIGJvb2wgbWFpbkV2ZW50
TG9vcElzUnVubmluZyA9IGZhbHNlOworICAgIGlmICghbWFpbkV2ZW50TG9vcElzUnVubmluZykg
eworICAgICAgICBtYWluRXZlbnRMb29wSXNSdW5uaW5nID0gdHJ1ZTsKKyAgICAgICAgUUNvcmVB
cHBsaWNhdGlvbjo6ZXhlYygpOworICAgICAgICBtYWluRXZlbnRMb29wSXNSdW5uaW5nID0gZmFs
c2U7CisgICAgfSBlbHNlIHsKKyAgICAgICAgUUV2ZW50TG9vcCBldmVudExvb3A7CisKKyAgICAg
ICAgUUV2ZW50TG9vcCogcHJldmlvdXNFdmVudExvb3AgPSBjdXJyZW50RXZlbnRMb29wOworICAg
ICAgICBjdXJyZW50RXZlbnRMb29wID0gJmV2ZW50TG9vcDsKKworICAgICAgICBldmVudExvb3Au
ZXhlYygpOworCisgICAgICAgIGN1cnJlbnRFdmVudExvb3AgPSBwcmV2aW91c0V2ZW50TG9vcDsK
KyAgICB9Cit9CisKK3ZvaWQgUnVuTG9vcDo6c3RvcCgpCit7CisgICAgaWYgKGN1cnJlbnRFdmVu
dExvb3ApCisgICAgICAgIGN1cnJlbnRFdmVudExvb3AtPmV4aXQoKTsKKyAgICBlbHNlCisgICAg
ICAgIFFDb3JlQXBwbGljYXRpb246OmV4aXQoKTsKK30KKworUnVuTG9vcDo6UnVuTG9vcCgpCisg
ICAgOiBtX3RpbWVyT2JqZWN0KG5ldyBUaW1lck9iamVjdCh0aGlzKSkKK3sKK30KKworUnVuTG9v
cDo6flJ1bkxvb3AoKQoreworICAgIGRlbGV0ZSBtX3RpbWVyT2JqZWN0OworfQorCit2b2lkIFJ1
bkxvb3A6Ondha2VVcCgpCit7CisgICAgbV90aW1lck9iamVjdC0+d2FrZVVwKCk7Cit9CisKKy8v
IFJ1bkxvb3A6OlRpbWVyCisKK3ZvaWQgUnVuTG9vcDo6VGltZXJCYXNlOjp0aW1lckZpcmVkKFJ1
bkxvb3AqIHJ1bkxvb3AsIGludCBJRCkKK3sKKyAgICBUaW1lck1hcDo6aXRlcmF0b3IgaXQgPSBy
dW5Mb29wLT5tX2FjdGl2ZVRpbWVycy5maW5kKElEKTsKKyAgICBBU1NFUlQoaXQgIT0gcnVuTG9v
cC0+bV9hY3RpdmVUaW1lcnMuZW5kKCkpOworICAgIFRpbWVyQmFzZSogdGltZXIgPSBpdC0+c2Vj
b25kOworCisgICAgaWYgKCF0aW1lci0+bV9pc1JlcGVhdGluZykgeworICAgICAgICAvLyBTdG9w
IHRoZSB0aW1lciAoY2FsbGluZyBzdG9wIHdvdWxkIG5lZWQgYW5vdGhlciBoYXNoIHRhYmxlIGxv
b2t1cCkuCisgICAgICAgIHJ1bkxvb3AtPm1fYWN0aXZlVGltZXJzLnJlbW92ZShpdCk7CisgICAg
ICAgIHJ1bkxvb3AtPm1fdGltZXJPYmplY3QtPmtpbGxUaW1lcih0aW1lci0+bV9JRCk7CisgICAg
ICAgIHRpbWVyLT5tX0lEID0gMDsKKyAgICB9CisKKyAgICB0aW1lci0+ZmlyZWQoKTsKK30KKwor
UnVuTG9vcDo6VGltZXJCYXNlOjpUaW1lckJhc2UoUnVuTG9vcCogcnVuTG9vcCkKKyAgICA6IG1f
cnVuTG9vcChydW5Mb29wKQorICAgICwgbV9JRCgwKQorICAgICwgbV9pc1JlcGVhdGluZyhmYWxz
ZSkKK3sKK30KKworUnVuTG9vcDo6VGltZXJCYXNlOjp+VGltZXJCYXNlKCkKK3sKKyAgICBzdG9w
KCk7Cit9CisKK3ZvaWQgUnVuTG9vcDo6VGltZXJCYXNlOjpzdGFydChkb3VibGUgbmV4dEZpcmVJ
bnRlcnZhbCwgYm9vbCByZXBlYXQpCit7CisgICAgc3RvcCgpOworICAgIGludCBtaWxsaXMgPSBz
dGF0aWNfY2FzdDxpbnQ+KG5leHRGaXJlSW50ZXJ2YWwgKiAxMDAwKTsKKyAgICBtX2lzUmVwZWF0
aW5nID0gcmVwZWF0OworICAgIG1fSUQgPSBtX3J1bkxvb3AtPm1fdGltZXJPYmplY3QtPnN0YXJ0
VGltZXIobWlsbGlzKTsKKyAgICBBU1NFUlQobV9JRCk7CisgICAgbV9ydW5Mb29wLT5tX2FjdGl2
ZVRpbWVycy5zZXQobV9JRCwgdGhpcyk7Cit9CisKK3ZvaWQgUnVuTG9vcDo6VGltZXJCYXNlOjpz
dG9wKCkKK3sKKyAgICBpZiAoIW1fSUQpCisgICAgICAgIHJldHVybjsKKyAgICBUaW1lck1hcDo6
aXRlcmF0b3IgaXQgPSBtX3J1bkxvb3AtPm1fYWN0aXZlVGltZXJzLmZpbmQobV9JRCk7CisgICAg
aWYgKGl0ID09IG1fcnVuTG9vcC0+bV9hY3RpdmVUaW1lcnMuZW5kKCkpCisgICAgICAgIHJldHVy
bjsKKworICAgIG1fcnVuTG9vcC0+bV9hY3RpdmVUaW1lcnMucmVtb3ZlKGl0KTsKKyAgICBtX3J1
bkxvb3AtPm1fdGltZXJPYmplY3QtPmtpbGxUaW1lcihtX0lEKTsKKyAgICBtX0lEID0gMDsKK30K
KworYm9vbCBSdW5Mb29wOjpUaW1lckJhc2U6OmlzQWN0aXZlKCkgY29uc3QKK3sKKyAgICByZXR1
cm4gbV9JRDsKK30KKworI2luY2x1ZGUgIlJ1bkxvb3BRdC5tb2MiCisKK30gLy8gbmFtZXNwYWNl
IFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3dpbi9SdW5Mb29w
V2luLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3dpbi9SdW5Mb29wV2luLmNwcApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi4xMjBjMjUyYTY2ODZmMmI1Y2UzZGFkZDliNjQ0ZDAwMGNjZDViMzVkCi0tLSAvZGV2
L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vd2luL1J1bkxvb3BXaW4uY3BwCkBA
IC0wLDAgKzEsMTgxIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEwIEFwcGxlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJl
IG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4g
YmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
IGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3Zp
ZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJ
REVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQg
QU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFO
RCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElO
IE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElB
QkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBM
QVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7
IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBU
SU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRI
RVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcg
TkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRI
RSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lC
SUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1
ZGUgIlJ1bkxvb3AuaCIKKworI2luY2x1ZGUgPHd0Zi9DdXJyZW50VGltZS5oPgorCit1c2luZyBu
YW1lc3BhY2Ugc3RkOworCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK3N0YXRpYyBjb25zdCBVSU5U
IFBlcmZvcm1Xb3JrTWVzc2FnZSA9IFdNX1VTRVIgKyAxOworc3RhdGljIGNvbnN0IExQV1NUUiBr
UnVuTG9vcE1lc3NhZ2VXaW5kb3dDbGFzc05hbWUgPSBMIlJ1bkxvb3BNZXNzYWdlV2luZG93IjsK
KworTFJFU1VMVCBDQUxMQkFDSyBSdW5Mb29wOjpSdW5Mb29wV25kUHJvYyhIV05EIGhXbmQsIFVJ
TlQgbWVzc2FnZSwgV1BBUkFNIHdQYXJhbSwgTFBBUkFNIGxQYXJhbSkKK3sKKyAgICBMT05HX1BU
UiBsb25nUHRyID0gOjpHZXRXaW5kb3dMb25nUHRyKGhXbmQsIDApOworICAgIAorICAgIGlmIChS
dW5Mb29wKiBydW5Mb29wID0gcmVpbnRlcnByZXRfY2FzdDxSdW5Mb29wKj4obG9uZ1B0cikpCisg
ICAgICAgIHJldHVybiBydW5Mb29wLT53bmRQcm9jKGhXbmQsIG1lc3NhZ2UsIHdQYXJhbSwgbFBh
cmFtKTsKKworICAgIGlmIChtZXNzYWdlID09IFdNX0NSRUFURSkgeworICAgICAgICBMUENSRUFU
RVNUUlVDVCBjcmVhdGVTdHJ1Y3QgPSByZWludGVycHJldF9jYXN0PExQQ1JFQVRFU1RSVUNUPihs
UGFyYW0pOworCisgICAgICAgIC8vIEFzc29jaWF0ZSB0aGUgUnVuTG9vcCB3aXRoIHRoZSB3aW5k
b3cuCisgICAgICAgIDo6U2V0V2luZG93TG9uZ1B0cihoV25kLCAwLCAoTE9OR19QVFIpY3JlYXRl
U3RydWN0LT5scENyZWF0ZVBhcmFtcyk7CisgICAgICAgIHJldHVybiAwOworICAgIH0KKworICAg
IHJldHVybiA6OkRlZldpbmRvd1Byb2MoaFduZCwgbWVzc2FnZSwgd1BhcmFtLCBsUGFyYW0pOwor
fQorCitMUkVTVUxUIFJ1bkxvb3A6OnduZFByb2MoSFdORCBoV25kLCBVSU5UIG1lc3NhZ2UsIFdQ
QVJBTSB3UGFyYW0sIExQQVJBTSBsUGFyYW0pCit7CisgICAgc3dpdGNoIChtZXNzYWdlKSB7Cisg
ICAgY2FzZSBQZXJmb3JtV29ya01lc3NhZ2U6CisgICAgICAgIHBlcmZvcm1Xb3JrKCk7CisgICAg
ICAgIHJldHVybiAwOworICAgIGNhc2UgV01fVElNRVI6CisgICAgICAgIFJ1bkxvb3A6OlRpbWVy
QmFzZTo6dGltZXJGaXJlZCh0aGlzLCB3UGFyYW0pOworICAgICAgICByZXR1cm4gMDsKKyAgICB9
CisKKyAgICByZXR1cm4gOjpEZWZXaW5kb3dQcm9jKGhXbmQsIG1lc3NhZ2UsIHdQYXJhbSwgbFBh
cmFtKTsKK30KKwordm9pZCBSdW5Mb29wOjpydW4oKQoreworICAgIE1TRyBtZXNzYWdlOworICAg
IHdoaWxlIChCT09MIHJlc3VsdCA9IDo6R2V0TWVzc2FnZSgmbWVzc2FnZSwgMCwgMCwgMCkpIHsK
KyAgICAgICAgaWYgKHJlc3VsdCA9PSAtMSkKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICA6
OlRyYW5zbGF0ZU1lc3NhZ2UoJm1lc3NhZ2UpOworICAgICAgICA6OkRpc3BhdGNoTWVzc2FnZSgm
bWVzc2FnZSk7CisgICAgfQorfQorCit2b2lkIFJ1bkxvb3A6OnN0b3AoKQoreworICAgIDo6UG9z
dFF1aXRNZXNzYWdlKDApOworfQorCitib29sIFJ1bkxvb3A6OnJlZ2lzdGVyUnVuTG9vcE1lc3Nh
Z2VXaW5kb3dDbGFzcygpCit7CisgICAgLy8gRklYTUU6IFRoaXMgcmVhbGx5IG9ubHkgbmVlZHMg
dG8gYmUgY2FsbGVkIG9uY2UuCisKKyAgICBXTkRDTEFTU0VYIHdpbmRvd0NsYXNzID0geyAwIH07
CisgICAgd2luZG93Q2xhc3MuY2JTaXplICAgICAgICAgID0gc2l6ZW9mKHdpbmRvd0NsYXNzKTsK
KyAgICB3aW5kb3dDbGFzcy5scGZuV25kUHJvYyAgICAgPSBSdW5Mb29wOjpSdW5Mb29wV25kUHJv
YzsKKyAgICB3aW5kb3dDbGFzcy5jYlduZEV4dHJhICAgICAgPSBzaXplb2YoUnVuTG9vcCopOwor
ICAgIHdpbmRvd0NsYXNzLmxwc3pDbGFzc05hbWUgICA9IGtSdW5Mb29wTWVzc2FnZVdpbmRvd0Ns
YXNzTmFtZTsKKworICAgIHJldHVybiAhITo6UmVnaXN0ZXJDbGFzc0V4KCZ3aW5kb3dDbGFzcyk7
Cit9CisKK1J1bkxvb3A6OlJ1bkxvb3AoKQoreworICAgIHJlZ2lzdGVyUnVuTG9vcE1lc3NhZ2VX
aW5kb3dDbGFzcygpOworCisgICAgbV9ydW5Mb29wTWVzc2FnZVdpbmRvdyA9IDo6Q3JlYXRlV2lu
ZG93KGtSdW5Mb29wTWVzc2FnZVdpbmRvd0NsYXNzTmFtZSwgMCwgMCwKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ1dfVVNFREVGQVVMVCwgMCwgQ1dfVVNFREVG
QVVMVCwgMCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSFdO
RF9NRVNTQUdFLCAwLCAwLCB0aGlzKTsKKyAgICBBU1NFUlQoOjpJc1dpbmRvdyhtX3J1bkxvb3BN
ZXNzYWdlV2luZG93KSk7Cit9CisKK1J1bkxvb3A6On5SdW5Mb29wKCkKK3sKKyAgICAvLyBGSVhN
RTogVGVhciBkb3duIHRoZSB3b3JrIGl0ZW0gcXVldWUgaGVyZS4KK30KKwordm9pZCBSdW5Mb29w
Ojp3YWtlVXAoKQoreworICAgIC8vIEZJWE1FOiBObyBuZWVkIHRvIHdha2UgdXAgdGhlIHJ1biBs
b29wIGlmIHdlJ3ZlIGFscmVhZHkgY2FsbGVkIGRpc3BhdGNoCisgICAgLy8gYmVmb3JlIHRoZSBy
dW4gbG9vcCBoYXMgaGFkIHRoZSB0aW1lIHRvIHJlc3BvbmQuCisgICAgOjpQb3N0TWVzc2FnZSht
X3J1bkxvb3BNZXNzYWdlV2luZG93LCBQZXJmb3JtV29ya01lc3NhZ2UsIHJlaW50ZXJwcmV0X2Nh
c3Q8V1BBUkFNPih0aGlzKSwgMCk7Cit9CisKKy8vIFJ1bkxvb3A6OlRpbWVyCisKK3ZvaWQgUnVu
TG9vcDo6VGltZXJCYXNlOjp0aW1lckZpcmVkKFJ1bkxvb3AqIHJ1bkxvb3AsIHVpbnQ2NF90IElE
KQoreworICAgIFRpbWVyTWFwOjppdGVyYXRvciBpdCA9IHJ1bkxvb3AtPm1fYWN0aXZlVGltZXJz
LmZpbmQoSUQpOworICAgIGlmIChpdCA9PSBydW5Mb29wLT5tX2FjdGl2ZVRpbWVycy5lbmQoKSkg
eworICAgICAgICAvLyBUaGUgdGltZXIgbXVzdCBoYXZlIGJlZW4gc3RvcHBlZCBhZnRlciB0aGUg
V01fVElNRVIgbWVzc2FnZSB3YXMgcG9zdGVkIHRvIHRoZSBtZXNzYWdlIHF1ZXVlLgorICAgICAg
ICByZXR1cm47CisgICAgfQorCisgICAgVGltZXJCYXNlKiB0aW1lciA9IGl0LT5zZWNvbmQ7CisK
KyAgICBpZiAoIXRpbWVyLT5tX2lzUmVwZWF0aW5nKSB7CisgICAgICAgIHJ1bkxvb3AtPm1fYWN0
aXZlVGltZXJzLnJlbW92ZShpdCk7CisgICAgICAgIDo6S2lsbFRpbWVyKHJ1bkxvb3AtPm1fcnVu
TG9vcE1lc3NhZ2VXaW5kb3csIElEKTsKKyAgICB9CisKKyAgICB0aW1lci0+ZmlyZWQoKTsKK30K
Kworc3RhdGljIHVpbnQ2NF90IGdlbmVyYXRlVGltZXJJRCgpCit7CisgICAgc3RhdGljIHVpbnQ2
NF90IHVuaXF1ZVRpbWVySUQgPSAxOworICAgIHJldHVybiB1bmlxdWVUaW1lcklEKys7Cit9CisK
K1J1bkxvb3A6OlRpbWVyQmFzZTo6VGltZXJCYXNlKFJ1bkxvb3AqIHJ1bkxvb3ApCisgICAgOiBt
X3J1bkxvb3AocnVuTG9vcCkKKyAgICAsIG1fSUQoZ2VuZXJhdGVUaW1lcklEKCkpCisgICAgLCBt
X2lzUmVwZWF0aW5nKGZhbHNlKQoreworfQorCitSdW5Mb29wOjpUaW1lckJhc2U6On5UaW1lckJh
c2UoKQoreworICAgIHN0b3AoKTsKK30KKwordm9pZCBSdW5Mb29wOjpUaW1lckJhc2U6OnN0YXJ0
KGRvdWJsZSBuZXh0RmlyZUludGVydmFsLCBib29sIHJlcGVhdCkKK3sKKyAgICBtX2lzUmVwZWF0
aW5nID0gcmVwZWF0OworICAgIG1fcnVuTG9vcC0+bV9hY3RpdmVUaW1lcnMuc2V0KG1fSUQsIHRo
aXMpOworICAgIDo6U2V0VGltZXIobV9ydW5Mb29wLT5tX3J1bkxvb3BNZXNzYWdlV2luZG93LCBt
X0lELCBuZXh0RmlyZUludGVydmFsICogMTAwMCwgMCk7Cit9CisKK3ZvaWQgUnVuTG9vcDo6VGlt
ZXJCYXNlOjpzdG9wKCkKK3sKKyAgICBUaW1lck1hcDo6aXRlcmF0b3IgaXQgPSBtX3J1bkxvb3At
Pm1fYWN0aXZlVGltZXJzLmZpbmQobV9JRCk7CisgICAgaWYgKGl0ID09IG1fcnVuTG9vcC0+bV9h
Y3RpdmVUaW1lcnMuZW5kKCkpCisgICAgICAgIHJldHVybjsKKworICAgIG1fcnVuTG9vcC0+bV9h
Y3RpdmVUaW1lcnMucmVtb3ZlKGl0KTsKKyAgICA6OktpbGxUaW1lcihtX3J1bkxvb3AtPm1fcnVu
TG9vcE1lc3NhZ2VXaW5kb3csIG1fSUQpOworfQorCitib29sIFJ1bkxvb3A6OlRpbWVyQmFzZTo6
aXNBY3RpdmUoKSBjb25zdAoreworICAgIHJldHVybiBtX3J1bkxvb3AtPm1fYWN0aXZlVGltZXJz
LmNvbnRhaW5zKG1fSUQpOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0Mi9HTlVtYWtlZmlsZS5hbSBiL1NvdXJjZS9XZWJLaXQyL0dOVW1ha2Vm
aWxlLmFtCmluZGV4IDA5ZmZlZWFmYTBmMWIyOTk5YWQ1YmQzZDA5ZGU3YTExNGFjYWMzNGMuLmM2
YzA3OWFjZDQ4YjQwMmVjMTJkYzc3MWI3ZWQ0Y2VhOTRhN2RhNmQgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQyL0dOVW1ha2VmaWxlLmFtCisrKyBiL1NvdXJjZS9XZWJLaXQyL0dOVW1ha2VmaWxl
LmFtCkBAIC0yMTAsMTUgKzIxMCwxMiBAQCBsaWJ3ZWJraXQyZ3RrX0BXRUJLSVRHVEtfQVBJX01B
Sk9SX1ZFUlNJT05AX0BXRUJLSVRHVEtfQVBJX01JTk9SX1ZFUlNJT05AX2xhX1NPVQogCVNvdXJj
ZS9XZWJLaXQyL1BsYXRmb3JtL0NvcmVJUEMvdW5peC9Db25uZWN0aW9uVW5peC5jcHAgXAogCVNv
dXJjZS9XZWJLaXQyL1BsYXRmb3JtL2d0ay9Mb2dnaW5nR3RrLmNwcCBcCiAJU291cmNlL1dlYktp
dDIvUGxhdGZvcm0vZ3RrL01vZHVsZUd0ay5jcHAgXAotCVNvdXJjZS9XZWJLaXQyL1BsYXRmb3Jt
L2d0ay9SdW5Mb29wR3RrLmNwcCBcCiAJU291cmNlL1dlYktpdDIvUGxhdGZvcm0vZ3RrL1dvcmtR
dWV1ZUd0ay5jcHAgXAogCVNvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL0xvZ2dpbmcuY3BwIFwKIAlT
b3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9Mb2dnaW5nLmggXAogCVNvdXJjZS9XZWJLaXQyL1BsYXRm
b3JtL01vZHVsZS5jcHAgXAogCVNvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL01vZHVsZS5oIFwKIAlT
b3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9QbGF0Zm9ybVByb2Nlc3NJZGVudGlmaWVyLmggXAotCVNv
dXJjZS9XZWJLaXQyL1BsYXRmb3JtL1J1bkxvb3AuY3BwIFwKLQlTb3VyY2UvV2ViS2l0Mi9QbGF0
Zm9ybS9SdW5Mb29wLmggXAogCVNvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL1NoYXJlZE1lbW9yeS5o
IFwKIAlTb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS91bml4L1NoYXJlZE1lbW9yeVVuaXguY3BwIFwK
IAlTb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9Xb3JrUXVldWUuY3BwIFwKQEAgLTEzNjUsMTEgKzEz
NjIsOCBAQCBQcm9ncmFtc19XZWJLaXRQbHVnaW5Qcm9jZXNzX1NPVVJDRVMgPSBcCiAJU291cmNl
L1dlYktpdDIvUGxhdGZvcm0vTW9kdWxlLmggXAogCVNvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL1dv
cmtRdWV1ZS5jcHAgXAogCVNvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL1dvcmtRdWV1ZS5oIFwKLQlT
b3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9SdW5Mb29wLmNwcCBcCi0JU291cmNlL1dlYktpdDIvUGxh
dGZvcm0vUnVuTG9vcC5oIFwKIAlTb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9TaGFyZWRNZW1vcnku
aCBcCiAJU291cmNlL1dlYktpdDIvUGxhdGZvcm0vZ3RrL01vZHVsZUd0ay5jcHAgXAotCVNvdXJj
ZS9XZWJLaXQyL1BsYXRmb3JtL2d0ay9SdW5Mb29wR3RrLmNwcCBcCiAJU291cmNlL1dlYktpdDIv
UGxhdGZvcm0vZ3RrL1dvcmtRdWV1ZUd0ay5jcHAgXAogCVNvdXJjZS9XZWJLaXQyL1BsYXRmb3Jt
L3VuaXgvU2hhcmVkTWVtb3J5VW5peC5jcHAgXAogCVNvdXJjZS9XZWJLaXQyL1BsdWdpblByb2Nl
c3MvUGx1Z2luQ29udHJvbGxlclByb3h5LmNwcCBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
Mi9QbGF0Zm9ybS9Db3JlSVBDL0Nvbm5lY3Rpb24uY3BwIGIvU291cmNlL1dlYktpdDIvUGxhdGZv
cm0vQ29yZUlQQy9Db25uZWN0aW9uLmNwcAppbmRleCAzZTE3YmJkMjMzYWFkNmZlYzU5ZDY4YzYw
NDgyMWFjYWYyNTVjN2EyLi4zYzJmMTRjZWQwM2U4ZjA5YmYwNTM5Njg4OWIxODRlZjhiODVjNTll
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9Db3JlSVBDL0Nvbm5lY3Rpb24u
Y3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL0NvcmVJUEMvQ29ubmVjdGlvbi5jcHAK
QEAgLTI4LDEwICsyOCwxMSBAQAogCiAjaW5jbHVkZSAiQmluYXJ5U2VtYXBob3JlLmgiCiAjaW5j
bHVkZSAiQ29yZUlQQ01lc3NhZ2VLaW5kcy5oIgotI2luY2x1ZGUgIlJ1bkxvb3AuaCIKKyNpbmNs
dWRlIDxXZWJDb3JlL1J1bkxvb3AuaD4KICNpbmNsdWRlIDx3dGYvQ3VycmVudFRpbWUuaD4KIAog
dXNpbmcgbmFtZXNwYWNlIHN0ZDsKK3VzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogCiBuYW1lc3Bh
Y2UgQ29yZUlQQyB7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL0NvcmVJ
UEMvQ29ubmVjdGlvbi5oIGIvU291cmNlL1dlYktpdDIvUGxhdGZvcm0vQ29yZUlQQy9Db25uZWN0
aW9uLmgKaW5kZXggYmFmYTk5OTE4NzUzYWRhNGE3ZTllNTA5NmU3ZTRhZGU0MTYxN2MwYS4uODE1
NTNhZWI3NmJmMDRkYTc4Yjc5ZDczMGQ2MjM4ZWNiZTRhMzVmMCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdDIvUGxhdGZvcm0vQ29yZUlQQy9Db25uZWN0aW9uLmgKKysrIGIvU291cmNlL1dlYktp
dDIvUGxhdGZvcm0vQ29yZUlQQy9Db25uZWN0aW9uLmgKQEAgLTUwLDcgKzUwLDkgQEAgY2xhc3Mg
UVNvY2tldE5vdGlmaWVyOwogI2luY2x1ZGUgIlBsYXRmb3JtUHJvY2Vzc0lkZW50aWZpZXIuaCIK
ICNlbmRpZgogCituYW1lc3BhY2UgV2ViQ29yZSB7CiBjbGFzcyBSdW5Mb29wOworfQogCiBuYW1l
c3BhY2UgQ29yZUlQQyB7CiAKQEAgLTExOCw4ICsxMjAsOCBAQCBwdWJsaWM6CiAgICAgdHlwZWRl
ZiBpbnQgSWRlbnRpZmllcjsKICNlbmRpZgogCi0gICAgc3RhdGljIFBhc3NSZWZQdHI8Q29ubmVj
dGlvbj4gY3JlYXRlU2VydmVyQ29ubmVjdGlvbihJZGVudGlmaWVyLCBDbGllbnQqLCBSdW5Mb29w
KiBjbGllbnRSdW5Mb29wKTsKLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxDb25uZWN0aW9uPiBjcmVh
dGVDbGllbnRDb25uZWN0aW9uKElkZW50aWZpZXIsIENsaWVudCosIFJ1bkxvb3AqIGNsaWVudFJ1
bkxvb3ApOworICAgIHN0YXRpYyBQYXNzUmVmUHRyPENvbm5lY3Rpb24+IGNyZWF0ZVNlcnZlckNv
bm5lY3Rpb24oSWRlbnRpZmllciwgQ2xpZW50KiwgV2ViQ29yZTo6UnVuTG9vcCogY2xpZW50UnVu
TG9vcCk7CisgICAgc3RhdGljIFBhc3NSZWZQdHI8Q29ubmVjdGlvbj4gY3JlYXRlQ2xpZW50Q29u
bmVjdGlvbihJZGVudGlmaWVyLCBDbGllbnQqLCBXZWJDb3JlOjpSdW5Mb29wKiBjbGllbnRSdW5M
b29wKTsKICAgICB+Q29ubmVjdGlvbigpOwogCiAjaWYgT1MoREFSV0lOKQpAQCAtMjA3LDcgKzIw
OSw3IEBAIHB1YmxpYzoKICAgICB0eXBlZGVmIE1lc3NhZ2U8QXJndW1lbnRFbmNvZGVyPiBPdXRn
b2luZ01lc3NhZ2U7CiAKIHByaXZhdGU6Ci0gICAgQ29ubmVjdGlvbihJZGVudGlmaWVyLCBib29s
IGlzU2VydmVyLCBDbGllbnQqLCBSdW5Mb29wKiBjbGllbnRSdW5Mb29wKTsKKyAgICBDb25uZWN0
aW9uKElkZW50aWZpZXIsIGJvb2wgaXNTZXJ2ZXIsIENsaWVudCosIFdlYkNvcmU6OlJ1bkxvb3Aq
IGNsaWVudFJ1bkxvb3ApOwogICAgIHZvaWQgcGxhdGZvcm1Jbml0aWFsaXplKElkZW50aWZpZXIp
OwogICAgIHZvaWQgcGxhdGZvcm1JbnZhbGlkYXRlKCk7CiAgICAgCkBAIC0yNTMsNyArMjU1LDcg
QEAgcHJpdmF0ZToKIAogICAgIGJvb2wgbV9pc0Nvbm5lY3RlZDsKICAgICBXb3JrUXVldWUgbV9j
b25uZWN0aW9uUXVldWU7Ci0gICAgUnVuTG9vcCogbV9jbGllbnRSdW5Mb29wOworICAgIFdlYkNv
cmU6OlJ1bkxvb3AqIG1fY2xpZW50UnVuTG9vcDsKIAogICAgIFZlY3RvcjxRdWV1ZUNsaWVudCo+
IG1fY29ubmVjdGlvblF1ZXVlQ2xpZW50czsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIv
UGxhdGZvcm0vQ29yZUlQQy9tYWMvQ29ubmVjdGlvbk1hYy5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9Q
bGF0Zm9ybS9Db3JlSVBDL21hYy9Db25uZWN0aW9uTWFjLmNwcAppbmRleCA5Nzk3NWFiZWFiYTdl
Zjc4OWE5N2E3OTk0YjQzZjI4NWQ2ZDhmOWM0Li4xMTE5YTI4NDdlYmZhOWM1MWMxNDgxODgwNzcy
NjA5ODU5MTg2MTA2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9Db3JlSVBD
L21hYy9Db25uZWN0aW9uTWFjLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9Db3Jl
SVBDL21hYy9Db25uZWN0aW9uTWFjLmNwcApAQCAtMjksMTEgKzI5LDEyIEBACiAjaW5jbHVkZSAi
Q29yZUlQQ01lc3NhZ2VLaW5kcy5oIgogI2luY2x1ZGUgIk1hY2hQb3J0LmgiCiAjaW5jbHVkZSAi
TWFjaFV0aWxpdGllcy5oIgotI2luY2x1ZGUgIlJ1bkxvb3AuaCIKKyNpbmNsdWRlIDxXZWJDb3Jl
L1J1bkxvb3AuaD4KICNpbmNsdWRlIDxtYWNoL21hY2hfZXJyb3IuaD4KICNpbmNsdWRlIDxtYWNo
L3ZtX21hcC5oPgogCiB1c2luZyBuYW1lc3BhY2Ugc3RkOwordXNpbmcgbmFtZXNwYWNlIFdlYkNv
cmU7CiAKIG5hbWVzcGFjZSBDb3JlSVBDIHsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIv
UGxhdGZvcm0vUnVuTG9vcC5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9SdW5Mb29wLmNw
cApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZTQ5NWVjYzU4M2FjY2E2MWJhMDRiZTAz
OTliOGYzNTM1NzQ3ZjY1MC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9SdW5Mb29wLmNwcAorKysgL2Rldi9udWxs
CkBAIC0xLDcwICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTAgQXBwbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBh
cmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWlu
IHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBp
biBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJv
dmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJP
VklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKLSAqIEFO
RCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLAotICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkg
QU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4g
SU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCi0gKiBCRSBM
SUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVN
UExBUlksIE9SCi0gKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgotICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNF
UzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCi0gKiBJTlRFUlJV
UFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hF
VEhFUiBJTgotICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElO
RyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKLSAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0Yg
VEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKLSAqIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jaW5jbHVkZSAiY29uZmlnLmgiCi0jaW5j
bHVkZSAiUnVuTG9vcC5oIgotCi0jaW5jbHVkZSA8d3RmL1N0ZExpYkV4dHJhcy5oPgotCi1zdGF0
aWMgUnVuTG9vcCogc19tYWluUnVuTG9vcDsKLQotdm9pZCBSdW5Mb29wOjppbml0aWFsaXplTWFp
blJ1bkxvb3AoKQotewotICAgIGlmIChzX21haW5SdW5Mb29wKQotICAgICAgICByZXR1cm47Ci0g
ICAgc19tYWluUnVuTG9vcCA9IFJ1bkxvb3A6OmN1cnJlbnQoKTsKLX0KLQotUnVuTG9vcCogUnVu
TG9vcDo6Y3VycmVudCgpCi17Ci0gICAgREVGSU5FX1NUQVRJQ19MT0NBTChXVEY6OlRocmVhZFNw
ZWNpZmljPFJ1bkxvb3A+LCBydW5Mb29wRGF0YSwgKCkpOwotICAgIHJldHVybiAmKnJ1bkxvb3BE
YXRhOwotfQotCi1SdW5Mb29wKiBSdW5Mb29wOjptYWluKCkKLXsKLSAgICBBU1NFUlQoc19tYWlu
UnVuTG9vcCk7Ci0gICAgcmV0dXJuIHNfbWFpblJ1bkxvb3A7Ci19Ci0KLXZvaWQgUnVuTG9vcDo6
cGVyZm9ybVdvcmsoKQotewotICAgIFZlY3RvcjxGdW5jdGlvbjx2b2lkKCk+ID4gZnVuY3Rpb25R
dWV1ZTsKLSAgICB7Ci0gICAgICAgIE11dGV4TG9ja2VyIGxvY2tlcihtX2Z1bmN0aW9uUXVldWVM
b2NrKTsKLSAgICAgICAgbV9mdW5jdGlvblF1ZXVlLnN3YXAoZnVuY3Rpb25RdWV1ZSk7Ci0gICAg
fQotCi0gICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBmdW5jdGlvblF1ZXVlLnNpemUoKTsgKytp
KQotICAgICAgICBmdW5jdGlvblF1ZXVlW2ldKCk7Ci19Ci0KLXZvaWQgUnVuTG9vcDo6ZGlzcGF0
Y2goY29uc3QgRnVuY3Rpb248dm9pZCgpPiYgZnVuY3Rpb24pCi17Ci0gICAgTXV0ZXhMb2NrZXIg
bG9ja2VyKG1fZnVuY3Rpb25RdWV1ZUxvY2spOwotICAgIG1fZnVuY3Rpb25RdWV1ZS5hcHBlbmQo
ZnVuY3Rpb24pOwotCi0gICAgd2FrZVVwKCk7Ci19CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
Mi9QbGF0Zm9ybS9SdW5Mb29wLmggYi9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9SdW5Mb29wLmgK
ZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDU3YTc5YThmM2YwNjBjNDA1M2E1ZTJmYjA3
NDI4NmFjYTczMzUwYWIuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAK
LS0tIGEvU291cmNlL1dlYktpdDIvUGxhdGZvcm0vUnVuTG9vcC5oCisrKyAvZGV2L251bGwKQEAg
LTEsMTYxICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTAgQXBwbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgotICogQ29weXJpZ2h0IChDKSAyMDEwIE5va2lhIENvcnBvcmF0aW9u
IGFuZC9vciBpdHMgc3Vic2lkaWFyeSgtaWVzKQotICogUG9ydGlvbnMgQ29weXJpZ2h0IChjKSAy
MDEwIE1vdG9yb2xhIE1vYmlsaXR5LCBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAq
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRp
b25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVj
ZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0
aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9u
LgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRT
IENPTlRSSUJVVE9SUyBgYEFTIElTJycKLSAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdB
UlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogVEhFIElNUExJRUQg
V0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB
UgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5D
LiBPUiBJVFMgQ09OVFJJQlVUT1JTCi0gKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElS
RUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCi0gKiBDT05TRVFVRU5USUFM
IERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgot
ICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBS
T0ZJVFM7IE9SIEJVU0lORVNTCi0gKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBP
TiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgotICogQ09OVFJBQ1QsIFNUUklD
VCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkK
LSAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBF
VkVOIElGIEFEVklTRUQgT0YKLSAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAq
LwotCi0jaWZuZGVmIFJ1bkxvb3BfaAotI2RlZmluZSBSdW5Mb29wX2gKLQotI2luY2x1ZGUgPHd0
Zi9Gb3J3YXJkLmg+Ci0jaW5jbHVkZSA8d3RmL0Z1bmN0aW9uYWwuaD4KLSNpbmNsdWRlIDx3dGYv
SGFzaE1hcC5oPgotI2luY2x1ZGUgPHd0Zi9QYXNzT3duUHRyLmg+Ci0jaW5jbHVkZSA8d3RmL1Ro
cmVhZFNwZWNpZmljLmg+Ci0jaW5jbHVkZSA8d3RmL1RocmVhZGluZy5oPgotI2luY2x1ZGUgPHd0
Zi9WZWN0b3IuaD4KLSNpZiBQTEFURk9STShHVEspCi0jaW5jbHVkZSA8d3RmL2dvYmplY3QvR1Jl
ZlB0ci5oPgotdHlwZWRlZiBzdHJ1Y3QgX0dTb3VyY2UgR1NvdXJjZTsKLXR5cGVkZWYgc3RydWN0
IF9HTWFpbkxvb3AgR01haW5Mb29wOwotdHlwZWRlZiBzdHJ1Y3QgX0dNYWluQ29udGV4dCBHTWFp
bkNvbnRleHQ7Ci10eXBlZGVmIGludCBnYm9vbGVhbjsKLSNlbmRpZgotCi1jbGFzcyBSdW5Mb29w
IHsKLXB1YmxpYzoKLSAgICAvLyBNdXN0IGJlIGNhbGxlZCBmcm9tIHRoZSBtYWluIHRocmVhZC4K
LSAgICBzdGF0aWMgdm9pZCBpbml0aWFsaXplTWFpblJ1bkxvb3AoKTsKLQotICAgIHN0YXRpYyBS
dW5Mb29wKiBjdXJyZW50KCk7Ci0gICAgc3RhdGljIFJ1bkxvb3AqIG1haW4oKTsKLQotICAgIHZv
aWQgZGlzcGF0Y2goY29uc3QgRnVuY3Rpb248dm9pZCgpPiYpOwotCi0gICAgc3RhdGljIHZvaWQg
cnVuKCk7Ci0gICAgdm9pZCBzdG9wKCk7Ci0KLSNpZiBQTEFURk9STShNQUMpCi0gICAgdm9pZCBy
dW5Gb3JEdXJhdGlvbihkb3VibGUgZHVyYXRpb24pOwotI2VuZGlmCi0gICAgCi0gICAgY2xhc3Mg
VGltZXJCYXNlIHsKLSAgICAgICAgZnJpZW5kIGNsYXNzIFJ1bkxvb3A7Ci0gICAgcHVibGljOgot
ICAgICAgICBUaW1lckJhc2UoUnVuTG9vcCopOwotICAgICAgICB2aXJ0dWFsIH5UaW1lckJhc2Uo
KTsKLQotICAgICAgICB2b2lkIHN0YXJ0UmVwZWF0aW5nKGRvdWJsZSByZXBlYXRJbnRlcnZhbCkg
eyBzdGFydChyZXBlYXRJbnRlcnZhbCwgdHJ1ZSk7IH0KLSAgICAgICAgdm9pZCBzdGFydE9uZVNo
b3QoZG91YmxlIGludGVydmFsKSB7IHN0YXJ0KGludGVydmFsLCBmYWxzZSk7IH0KLQotICAgICAg
ICB2b2lkIHN0b3AoKTsKLSAgICAgICAgYm9vbCBpc0FjdGl2ZSgpIGNvbnN0OwotCi0gICAgICAg
IHZpcnR1YWwgdm9pZCBmaXJlZCgpID0gMDsKLQotICAgIHByaXZhdGU6Ci0gICAgICAgIHZvaWQg
c3RhcnQoZG91YmxlIG5leHRGaXJlSW50ZXJ2YWwsIGJvb2wgcmVwZWF0KTsKLQotICAgICAgICBS
dW5Mb29wKiBtX3J1bkxvb3A7Ci0KLSNpZiBQTEFURk9STShXSU4pCi0gICAgICAgIHN0YXRpYyB2
b2lkIHRpbWVyRmlyZWQoUnVuTG9vcCosIHVpbnQ2NF90IElEKTsKLSAgICAgICAgdWludDY0X3Qg
bV9JRDsKLSAgICAgICAgYm9vbCBtX2lzUmVwZWF0aW5nOwotI2VsaWYgUExBVEZPUk0oTUFDKQot
ICAgICAgICBzdGF0aWMgdm9pZCB0aW1lckZpcmVkKENGUnVuTG9vcFRpbWVyUmVmLCB2b2lkKik7
Ci0gICAgICAgIENGUnVuTG9vcFRpbWVyUmVmIG1fdGltZXI7Ci0jZWxpZiBQTEFURk9STShRVCkK
LSAgICAgICAgc3RhdGljIHZvaWQgdGltZXJGaXJlZChSdW5Mb29wKiwgaW50IElEKTsKLSAgICAg
ICAgaW50IG1fSUQ7Ci0gICAgICAgIGJvb2wgbV9pc1JlcGVhdGluZzsKLSNlbGlmIFBMQVRGT1JN
KEdUSykKLSAgICAgICAgc3RhdGljIGdib29sZWFuIHRpbWVyRmlyZWRDYWxsYmFjayhSdW5Mb29w
OjpUaW1lckJhc2UqKTsKLSAgICAgICAgZ2Jvb2xlYW4gaXNSZXBlYXRpbmcoKSBjb25zdCB7IHJl
dHVybiBtX2lzUmVwZWF0aW5nOyB9Ci0gICAgICAgIHZvaWQgY2xlYXJUaW1lclNvdXJjZSgpOwot
ICAgICAgICBHUmVmUHRyPEdTb3VyY2U+IG1fdGltZXJTb3VyY2U7Ci0gICAgICAgIGdib29sZWFu
IG1faXNSZXBlYXRpbmc7Ci0jZW5kaWYKLSAgICB9OwotCi0gICAgdGVtcGxhdGUgPHR5cGVuYW1l
IFRpbWVyRmlyZWRDbGFzcz4KLSAgICBjbGFzcyBUaW1lciA6IHB1YmxpYyBUaW1lckJhc2Ugewot
ICAgIHB1YmxpYzoKLSAgICAgICAgdHlwZWRlZiB2b2lkIChUaW1lckZpcmVkQ2xhc3M6OipUaW1l
ckZpcmVkRnVuY3Rpb24pKCk7Ci0KLSAgICAgICAgVGltZXIoUnVuTG9vcCogcnVuTG9vcCwgVGlt
ZXJGaXJlZENsYXNzKiBvLCBUaW1lckZpcmVkRnVuY3Rpb24gZikKLSAgICAgICAgICAgIDogVGlt
ZXJCYXNlKHJ1bkxvb3ApCi0gICAgICAgICAgICAsIG1fb2JqZWN0KG8pCi0gICAgICAgICAgICAs
IG1fZnVuY3Rpb24oZikKLSAgICAgICAgewotICAgICAgICB9Ci0KLSAgICBwcml2YXRlOgotICAg
ICAgICB2aXJ0dWFsIHZvaWQgZmlyZWQoKSB7IChtX29iamVjdC0+Km1fZnVuY3Rpb24pKCk7IH0K
LQotICAgICAgICBUaW1lckZpcmVkQ2xhc3MqIG1fb2JqZWN0OwotICAgICAgICBUaW1lckZpcmVk
RnVuY3Rpb24gbV9mdW5jdGlvbjsKLSAgICB9OwotCi1wcml2YXRlOgotICAgIGZyaWVuZCBjbGFz
cyBXVEY6OlRocmVhZFNwZWNpZmljPFJ1bkxvb3A+OwotCi0gICAgUnVuTG9vcCgpOwotICAgIH5S
dW5Mb29wKCk7Ci0KLSAgICB2b2lkIHBlcmZvcm1Xb3JrKCk7Ci0gICAgdm9pZCB3YWtlVXAoKTsK
LQotICAgIE11dGV4IG1fZnVuY3Rpb25RdWV1ZUxvY2s7Ci0gICAgVmVjdG9yPEZ1bmN0aW9uPHZv
aWQoKT4gPiBtX2Z1bmN0aW9uUXVldWU7Ci0KLSNpZiBQTEFURk9STShXSU4pCi0gICAgc3RhdGlj
IGJvb2wgcmVnaXN0ZXJSdW5Mb29wTWVzc2FnZVdpbmRvd0NsYXNzKCk7Ci0gICAgc3RhdGljIExS
RVNVTFQgQ0FMTEJBQ0sgUnVuTG9vcFduZFByb2MoSFdORCwgVUlOVCwgV1BBUkFNLCBMUEFSQU0p
OwotICAgIExSRVNVTFQgd25kUHJvYyhIV05EIGhXbmQsIFVJTlQgbWVzc2FnZSwgV1BBUkFNIHdQ
YXJhbSwgTFBBUkFNIGxQYXJhbSk7Ci0gICAgSFdORCBtX3J1bkxvb3BNZXNzYWdlV2luZG93Owot
Ci0gICAgdHlwZWRlZiBIYXNoTWFwPHVpbnQ2NF90LCBUaW1lckJhc2UqPiBUaW1lck1hcDsKLSAg
ICBUaW1lck1hcCBtX2FjdGl2ZVRpbWVyczsKLSNlbGlmIFBMQVRGT1JNKE1BQykKLSAgICBzdGF0
aWMgdm9pZCBwZXJmb3JtV29yayh2b2lkKik7Ci0gICAgQ0ZSdW5Mb29wUmVmIG1fcnVuTG9vcDsK
LSAgICBDRlJ1bkxvb3BTb3VyY2VSZWYgbV9ydW5Mb29wU291cmNlOwotICAgIGludCBtX25lc3Rp
bmdMZXZlbDsKLSNlbGlmIFBMQVRGT1JNKFFUKQotICAgIHR5cGVkZWYgSGFzaE1hcDxpbnQsIFRp
bWVyQmFzZSo+IFRpbWVyTWFwOwotICAgIFRpbWVyTWFwIG1fYWN0aXZlVGltZXJzOwotICAgIGNs
YXNzIFRpbWVyT2JqZWN0OwotICAgIFRpbWVyT2JqZWN0KiBtX3RpbWVyT2JqZWN0OwotI2VsaWYg
UExBVEZPUk0oR1RLKQotcHVibGljOgotICAgIHN0YXRpYyBnYm9vbGVhbiBxdWV1ZVdvcmsoUnVu
TG9vcCopOwotICAgIEdNYWluTG9vcCogbWFpbkxvb3AoKTsKLXByaXZhdGU6Ci0gICAgR01haW5D
b250ZXh0KiBtX3J1bkxvb3BDb250ZXh0OwotICAgIEdNYWluTG9vcCogbV9ydW5Mb29wTWFpbjsK
LSNlbmRpZgotfTsKLQotI2VuZGlmIC8vIFJ1bkxvb3BfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdDIvUGxhdGZvcm0vZ3RrL1J1bkxvb3BHdGsuY3BwIGIvU291cmNlL1dlYktpdDIvUGxhdGZv
cm0vZ3RrL1J1bkxvb3BHdGsuY3BwCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA4MWNi
ZWFhZjE4N2M1OWUxY2U3MWZlNDQyOWI4NmQxYjk2NzE2NzkyLi4wMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL2d0ay9S
dW5Mb29wR3RrLmNwcAorKysgL2Rldi9udWxsCkBAIC0xLDEzNCArMCwwIEBACi0vKgotICogQ29w
eXJpZ2h0IChDKSAyMDEwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqIFBvcnRp
b25zIENvcHlyaWdodCAoYykgMjAxMCBNb3Rvcm9sYSBNb2JpbGl0eSwgSW5jLiAgQWxsIHJpZ2h0
cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoK
LSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJv
dmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5
IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRo
ZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdp
dGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZ
IEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCi0gKiBBTkQgQU5ZIEVY
UFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywKLSAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRO
RVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVW
RU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwotICogQkUgTElBQkxFIEZP
UiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBP
UgotICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywgUFJPQ1VSRU1FTlQgT0YKLSAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1Mg
T0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwotICogSU5URVJSVVBUSU9OKSBI
T1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4K
LSAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElH
RU5DRSBPUiBPVEhFUldJU0UpCi0gKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0Ug
T0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCi0gKiBUSEUgUE9TU0lCSUxJVFkg
T0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI2luY2x1ZGUgImNvbmZpZy5oIgotI2luY2x1ZGUgIlJ1
bkxvb3AuaCIKLQotI2luY2x1ZGUgIldLQmFzZS5oIgotI2luY2x1ZGUgPGdsaWIuaD4KLQotUnVu
TG9vcDo6UnVuTG9vcCgpCi17Ci0gICAgbV9ydW5Mb29wQ29udGV4dCA9IGdfbWFpbl9jb250ZXh0
X2RlZmF1bHQoKTsKLSAgICBBU1NFUlQobV9ydW5Mb29wQ29udGV4dCk7Ci0gICAgbV9ydW5Mb29w
TWFpbiA9IGdfbWFpbl9sb29wX25ldyhtX3J1bkxvb3BDb250ZXh0LCBGQUxTRSk7Ci0gICAgQVNT
RVJUKG1fcnVuTG9vcE1haW4pOwotfQotCi1SdW5Mb29wOjp+UnVuTG9vcCgpCi17Ci0gICAgaWYg
KG1fcnVuTG9vcE1haW4pIHsKLSAgICAgICAgaWYgKGdfbWFpbl9sb29wX2lzX3J1bm5pbmcobV9y
dW5Mb29wTWFpbikpCi0gICAgICAgICAgICBnX21haW5fbG9vcF9xdWl0KG1fcnVuTG9vcE1haW4p
OwotICAgICAgICBnX21haW5fbG9vcF91bnJlZihtX3J1bkxvb3BNYWluKTsKLSAgICB9Ci0KLSAg
ICBpZiAobV9ydW5Mb29wQ29udGV4dCkKLSAgICAgICAgZ19tYWluX2NvbnRleHRfdW5yZWYobV9y
dW5Mb29wQ29udGV4dCk7Ci19Ci0KLXZvaWQgUnVuTG9vcDo6cnVuKCkKLXsKLSAgICBnX21haW5f
bG9vcF9ydW4oUnVuTG9vcDo6bWFpbigpLT5tYWluTG9vcCgpKTsKLX0KLQotR01haW5Mb29wKiBS
dW5Mb29wOjptYWluTG9vcCgpCi17Ci0gICAgcmV0dXJuIG1fcnVuTG9vcE1haW47Ci19Ci0KLXZv
aWQgUnVuTG9vcDo6c3RvcCgpCi17Ci0gICAgZ19tYWluX2xvb3BfcXVpdChtX3J1bkxvb3BNYWlu
KTsKLX0KLQotZ2Jvb2xlYW4gUnVuTG9vcDo6cXVldWVXb3JrKFJ1bkxvb3AqIHJ1bkxvb3ApCi17
Ci0gICAgcnVuTG9vcC0+cGVyZm9ybVdvcmsoKTsKLSAgICByZXR1cm4gRkFMU0U7Ci19Ci0KLXZv
aWQgUnVuTG9vcDo6d2FrZVVwKCkKLXsKLSAgICBHUmVmUHRyPEdTb3VyY2U+IHNvdXJjZSA9IGFk
b3B0R1JlZihnX2lkbGVfc291cmNlX25ldygpKTsKLSAgICBnX3NvdXJjZV9zZXRfcHJpb3JpdHko
c291cmNlLmdldCgpLCBHX1BSSU9SSVRZX0RFRkFVTFQpOwotICAgIGdfc291cmNlX3NldF9jYWxs
YmFjayhzb3VyY2UuZ2V0KCksIHJlaW50ZXJwcmV0X2Nhc3Q8R1NvdXJjZUZ1bmM+KCZSdW5Mb29w
OjpxdWV1ZVdvcmspLCB0aGlzLCAwKTsKLSAgICBnX3NvdXJjZV9hdHRhY2goc291cmNlLmdldCgp
LCBtX3J1bkxvb3BDb250ZXh0KTsKLQotICAgIGdfbWFpbl9jb250ZXh0X3dha2V1cChtX3J1bkxv
b3BDb250ZXh0KTsKLX0KLQotUnVuTG9vcDo6VGltZXJCYXNlOjpUaW1lckJhc2UoUnVuTG9vcCog
cnVuTG9vcCkKLSAgICA6IG1fcnVuTG9vcChydW5Mb29wKQotICAgICwgbV90aW1lclNvdXJjZSgw
KQotewotfQotCi1SdW5Mb29wOjpUaW1lckJhc2U6On5UaW1lckJhc2UoKQotewotICAgIHN0b3Ao
KTsKLX0KLQotdm9pZCBSdW5Mb29wOjpUaW1lckJhc2U6OmNsZWFyVGltZXJTb3VyY2UoKQotewot
ICAgIG1fdGltZXJTb3VyY2UgPSAwOwotfQotCi1nYm9vbGVhbiBSdW5Mb29wOjpUaW1lckJhc2U6
OnRpbWVyRmlyZWRDYWxsYmFjayhSdW5Mb29wOjpUaW1lckJhc2UqIHRpbWVyKQotewotICAgIEdT
b3VyY2UqIGN1cnJlbnRUaW1lclNvdXJjZSA9IHRpbWVyLT5tX3RpbWVyU291cmNlLmdldCgpOwot
ICAgIGJvb2wgaXNSZXBlYXRpbmcgPSB0aW1lci0+aXNSZXBlYXRpbmcoKTsKLSAgICAvLyBUaGlz
IGNhbiBjaGFuZ2UgdGhlIHRpbWVyU291cmNlIGJ5IHN0YXJ0aW5nIGEgbmV3IHRpbWVyIHdpdGhp
biB0aGUgY2FsbGJhY2suCi0gICAgdGltZXItPmZpcmVkKCk7Ci0gICAgaWYgKCFpc1JlcGVhdGlu
ZyAmJiBjdXJyZW50VGltZXJTb3VyY2UgPT0gdGltZXItPm1fdGltZXJTb3VyY2UuZ2V0KCkpCi0g
ICAgICAgIHRpbWVyLT5jbGVhclRpbWVyU291cmNlKCk7Ci0gICAgcmV0dXJuIGlzUmVwZWF0aW5n
OwotfQotCi12b2lkIFJ1bkxvb3A6OlRpbWVyQmFzZTo6c3RhcnQoZG91YmxlIGZpcmVJbnRlcnZh
bCwgYm9vbCByZXBlYXQpCi17Ci0gICAgaWYgKG1fdGltZXJTb3VyY2UpCi0gICAgICAgIHN0b3Ao
KTsKLQotICAgIG1fdGltZXJTb3VyY2UgPSBhZG9wdEdSZWYoZ190aW1lb3V0X3NvdXJjZV9uZXco
c3RhdGljX2Nhc3Q8Z3VpbnQ+KGZpcmVJbnRlcnZhbCAqIDEwMDApKSk7Ci0gICAgbV9pc1JlcGVh
dGluZyA9IHJlcGVhdDsKLSAgICBnX3NvdXJjZV9zZXRfY2FsbGJhY2sobV90aW1lclNvdXJjZS5n
ZXQoKSwgcmVpbnRlcnByZXRfY2FzdDxHU291cmNlRnVuYz4oJlJ1bkxvb3A6OlRpbWVyQmFzZTo6
dGltZXJGaXJlZENhbGxiYWNrKSwgdGhpcywgMCk7Ci0gICAgZ19zb3VyY2VfYXR0YWNoKG1fdGlt
ZXJTb3VyY2UuZ2V0KCksIG1fcnVuTG9vcC0+bV9ydW5Mb29wQ29udGV4dCk7Ci19Ci0KLXZvaWQg
UnVuTG9vcDo6VGltZXJCYXNlOjpzdG9wKCkKLXsKLSAgICBpZiAoIW1fdGltZXJTb3VyY2UpCi0g
ICAgICAgIHJldHVybjsKLQotICAgIGdfc291cmNlX2Rlc3Ryb3kobV90aW1lclNvdXJjZS5nZXQo
KSk7Ci0gICAgY2xlYXJUaW1lclNvdXJjZSgpOwotfQotCi1ib29sIFJ1bkxvb3A6OlRpbWVyQmFz
ZTo6aXNBY3RpdmUoKSBjb25zdAotewotICAgIHJldHVybiBtX3RpbWVyU291cmNlOwotfQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdDIvUGxhdGZvcm0vbWFjL1J1bkxvb3BNYWMubW0gYi9Tb3Vy
Y2UvV2ViS2l0Mi9QbGF0Zm9ybS9tYWMvUnVuTG9vcE1hYy5tbQpkZWxldGVkIGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDNiYjg2ZThkOTI3ODMyZGI4MDIyMjIxM2Y2NDk2ODMxZGJiYTQwMy4uMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9QbGF0Zm9ybS9tYWMvUnVuTG9vcE1hYy5tbQorKysgL2Rldi9udWxsCkBAIC0xLDE1MyArMCww
IEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDEwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEu
IFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29w
eXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0g
bXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICog
ICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhl
IGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExF
IElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCi0gKiBBTkQgQU5ZIEVYUFJFU1Mg
T1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAq
IFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZP
UiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNI
QUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwotICogQkUgTElBQkxFIEZPUiBBTlkg
RElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgotICog
Q09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJP
Q1VSRU1FTlQgT0YKLSAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNF
LCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwotICogSU5URVJSVVBUSU9OKSBIT1dFVkVS
IENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KLSAqIENP
TlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBP
UiBPVEhFUldJU0UpCi0gKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJ
UyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCi0gKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VD
SCBEQU1BR0UuCi0gKi8KLQotI2ltcG9ydCAiY29uZmlnLmgiCi0jaW1wb3J0ICJSdW5Mb29wLmgi
Ci0KLXZvaWQgUnVuTG9vcDo6cGVyZm9ybVdvcmsodm9pZCogY29udGV4dCkKLXsKLSAgICAvLyBX
cmFwIG1haW4gdGhyZWFkIGluIGFuIEF1dG9yZWxlYXNlIHBvb2wuICBTZW5kaW5nIG1lc3NhZ2Vz
IGNhbiBjYWxsIAotICAgIC8vIGludG8gb2JqYyBjb2RlIGFuZCBhY2N1bXVsYXRlIG1lbW9yeS4g
IAotICAgIGlmIChjdXJyZW50KCkgPT0gbWFpbigpKSB7Ci0gICAgICAgIE5TQXV0b3JlbGVhc2VQ
b29sICpwb29sID0gW1tOU0F1dG9yZWxlYXNlUG9vbCBhbGxvY10gaW5pdF07Ci0gICAgICAgIHN0
YXRpY19jYXN0PFJ1bkxvb3AqPihjb250ZXh0KS0+cGVyZm9ybVdvcmsoKTsKLSAgICAgICAgW3Bv
b2wgZHJhaW5dOwotICAgIH0gZWxzZQotICAgICAgICBzdGF0aWNfY2FzdDxSdW5Mb29wKj4oY29u
dGV4dCktPnBlcmZvcm1Xb3JrKCk7Ci19Ci0KLVJ1bkxvb3A6OlJ1bkxvb3AoKQotICAgIDogbV9y
dW5Mb29wKENGUnVuTG9vcEdldEN1cnJlbnQoKSkKLSAgICAsIG1fbmVzdGluZ0xldmVsKDApCi17
Ci0gICAgQ0ZSdW5Mb29wU291cmNlQ29udGV4dCBjb250ZXh0ID0geyAwLCB0aGlzLCAwLCAwLCAw
LCAwLCAwLCAwLCAwLCBwZXJmb3JtV29yayB9OwotICAgIG1fcnVuTG9vcFNvdXJjZSA9IENGUnVu
TG9vcFNvdXJjZUNyZWF0ZShrQ0ZBbGxvY2F0b3JEZWZhdWx0LCAwLCAmY29udGV4dCk7Ci0gICAg
Q0ZSdW5Mb29wQWRkU291cmNlKG1fcnVuTG9vcCwgbV9ydW5Mb29wU291cmNlLCBrQ0ZSdW5Mb29w
Q29tbW9uTW9kZXMpOwotfQotCi1SdW5Mb29wOjp+UnVuTG9vcCgpCi17Ci0gICAgLy8gRklYTUU6
IFRlYXIgZG93biB0aGUgd29yayBpdGVtIHF1ZXVlIGhlcmUuCi0gICAgQ0ZSdW5Mb29wU291cmNl
SW52YWxpZGF0ZShtX3J1bkxvb3BTb3VyY2UpOwotICAgIENGUmVsZWFzZShtX3J1bkxvb3BTb3Vy
Y2UpOwotfQotCi12b2lkIFJ1bkxvb3A6OnJ1bigpCi17Ci0gICAgY3VycmVudCgpLT5tX25lc3Rp
bmdMZXZlbCsrOwotICAgIGlmIChjdXJyZW50KCkgPT0gbWFpbigpICYmIGN1cnJlbnQoKS0+bV9u
ZXN0aW5nTGV2ZWwgPT0gMSkgewotICAgICAgICAvLyBVc2UgLVtOU0FwcGxpY2F0aW9uIHJ1bl0g
Zm9yIHRoZSBtYWluIHJ1biBsb29wLgotICAgICAgICBbTlNBcHAgcnVuXTsKLSAgICB9IGVsc2Ug
ewotICAgICAgICBOU0F1dG9yZWxlYXNlUG9vbCAqcG9vbCA9IFtbTlNBdXRvcmVsZWFzZVBvb2wg
YWxsb2NdIGluaXRdOwotICAgICAgICBDRlJ1bkxvb3BSdW4oKTsKLSAgICAgICAgW3Bvb2wgZHJh
aW5dOwotICAgIH0KLSAgICBjdXJyZW50KCktPm1fbmVzdGluZ0xldmVsLS07Ci19Ci0KLXZvaWQg
UnVuTG9vcDo6cnVuRm9yRHVyYXRpb24oZG91YmxlIGR1cmF0aW9uKQotewotICAgIENGUnVuTG9v
cFJ1bkluTW9kZShrQ0ZSdW5Mb29wRGVmYXVsdE1vZGUsIGR1cmF0aW9uLCB0cnVlKTsKLX0KLQot
dm9pZCBSdW5Mb29wOjpzdG9wKCkKLXsKLSAgICBBU1NFUlQobV9ydW5Mb29wID09IENGUnVuTG9v
cEdldEN1cnJlbnQoKSk7Ci0gICAgCi0gICAgaWYgKG1fcnVuTG9vcCA9PSBtYWluKCktPm1fcnVu
TG9vcCAmJiBtX25lc3RpbmdMZXZlbCA9PSAxKSB7Ci0gICAgICAgIFtOU0FwcCBzdG9wOm5pbF07
Ci0gICAgICAgIE5TRXZlbnQgKmV2ZW50ID0gW05TRXZlbnQgb3RoZXJFdmVudFdpdGhUeXBlOk5T
QXBwbGljYXRpb25EZWZpbmVkCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIGxvY2F0aW9uOk5TTWFrZVBvaW50KDAsIDApCi0gICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBtb2RpZmllckZsYWdzOjAKLSAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICB0aW1lc3RhbXA6MC4wCi0gICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIHdpbmRvd051bWJlcjowCi0gICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBjb250ZXh0Om5pbAotICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgc3VidHlwZTogMAotICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRhMTowCi0gICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGEyOjBdOwotICAgICAgICBbTlNBcHAgcG9zdEV2
ZW50OmV2ZW50IGF0U3RhcnQ6dHJ1ZV07Ci0gICAgfSBlbHNlCi0gICAgICAgIENGUnVuTG9vcFN0
b3AobV9ydW5Mb29wKTsKLX0KLQotdm9pZCBSdW5Mb29wOjp3YWtlVXAoKQotewotICAgIENGUnVu
TG9vcFNvdXJjZVNpZ25hbChtX3J1bkxvb3BTb3VyY2UpOwotICAgIENGUnVuTG9vcFdha2VVcCht
X3J1bkxvb3ApOwotfQotCi0vLyBSdW5Mb29wOjpUaW1lcgotCi12b2lkIFJ1bkxvb3A6OlRpbWVy
QmFzZTo6dGltZXJGaXJlZChDRlJ1bkxvb3BUaW1lclJlZiwgdm9pZCogY29udGV4dCkKLXsKLSAg
ICBUaW1lckJhc2UqIHRpbWVyID0gc3RhdGljX2Nhc3Q8VGltZXJCYXNlKj4oY29udGV4dCk7Ci0g
ICAgCi0gICAgLy8gV3JhcCBtYWluIHRocmVhZCBpbiBhbiBBdXRvcmVsZWFzZSBwb29sLiAgVGhl
IHRpbWVyIGNhbiBjYWxsIAotICAgIC8vIGludG8gb2JqYyBjb2RlIGFuZCBhY2N1bXVsYXRlIG1l
bW9yeSBvdXRzaWRlIG9mIHRoZSBtYWluIGV2ZW50IGxvb3AuCi0gICAgaWYgKGN1cnJlbnQoKSA9
PSBtYWluKCkpIHsKLSAgICAgICAgTlNBdXRvcmVsZWFzZVBvb2wgKnBvb2wgPSBbW05TQXV0b3Jl
bGVhc2VQb29sIGFsbG9jXSBpbml0XTsgCi0gICAgICAgIHRpbWVyLT5maXJlZCgpOwotICAgICAg
ICBbcG9vbCBkcmFpbl07Ci0gICAgfSBlbHNlCi0gICAgICAgIHRpbWVyLT5maXJlZCgpOwotfQot
Ci1SdW5Mb29wOjpUaW1lckJhc2U6OlRpbWVyQmFzZShSdW5Mb29wKiBydW5Mb29wKQotICAgIDog
bV9ydW5Mb29wKHJ1bkxvb3ApCi0gICAgLCBtX3RpbWVyKDApCi17Ci19Ci0KLVJ1bkxvb3A6OlRp
bWVyQmFzZTo6flRpbWVyQmFzZSgpCi17Ci0gICAgc3RvcCgpOwotfQotCi12b2lkIFJ1bkxvb3A6
OlRpbWVyQmFzZTo6c3RhcnQoZG91YmxlIG5leHRGaXJlSW50ZXJ2YWwsIGJvb2wgcmVwZWF0KQot
ewotICAgIGlmIChtX3RpbWVyKQotICAgICAgICBzdG9wKCk7Ci0KLSAgICBDRlJ1bkxvb3BUaW1l
ckNvbnRleHQgY29udGV4dCA9IHsgMCwgdGhpcywgMCwgMCwgMCB9OwotICAgIENGVGltZUludGVy
dmFsIHJlcGVhdEludGVydmFsID0gcmVwZWF0ID8gbmV4dEZpcmVJbnRlcnZhbCA6IDA7Ci0gICAg
bV90aW1lciA9IENGUnVuTG9vcFRpbWVyQ3JlYXRlKGtDRkFsbG9jYXRvckRlZmF1bHQsIENGQWJz
b2x1dGVUaW1lR2V0Q3VycmVudCgpICsgbmV4dEZpcmVJbnRlcnZhbCwgcmVwZWF0SW50ZXJ2YWws
IDAsIDAsIHRpbWVyRmlyZWQsICZjb250ZXh0KTsKLSAgICBDRlJ1bkxvb3BBZGRUaW1lcihtX3J1
bkxvb3AtPm1fcnVuTG9vcCwgbV90aW1lciwga0NGUnVuTG9vcENvbW1vbk1vZGVzKTsKLX0KLQot
dm9pZCBSdW5Mb29wOjpUaW1lckJhc2U6OnN0b3AoKQotewotICAgIGlmICghbV90aW1lcikKLSAg
ICAgICAgcmV0dXJuOwotCi0gICAgQ0ZSdW5Mb29wVGltZXJJbnZhbGlkYXRlKG1fdGltZXIpOwot
ICAgIENGUmVsZWFzZShtX3RpbWVyKTsKLSAgICBtX3RpbWVyID0gMDsKLX0KLQotYm9vbCBSdW5M
b29wOjpUaW1lckJhc2U6OmlzQWN0aXZlKCkgY29uc3QKLXsKLSAgICByZXR1cm4gbV90aW1lciAm
JiBDRlJ1bkxvb3BUaW1lcklzVmFsaWQobV90aW1lcik7Ci19CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0Mi9QbGF0Zm9ybS9xdC9SdW5Mb29wUXQuY3BwIGIvU291cmNlL1dlYktpdDIvUGxhdGZv
cm0vcXQvUnVuTG9vcFF0LmNwcApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDA3YTBh
NWIxYWZlMDk4MDM5ODkwOWFiNzBiYjczYjlkOWYwOGRlNy4uMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9xdC9SdW5M
b29wUXQuY3BwCisrKyAvZGV2L251bGwKQEAgLTEsMTYzICswLDAgQEAKLS8qCi0gKiBDb3B5cmln
aHQgKEMpIDIwMTAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICogQ29weXJpZ2h0
IChDKSAyMDEwIE5va2lhIENvcnBvcmF0aW9uIGFuZC9vciBpdHMgc3Vic2lkaWFyeSgtaWVzKQot
ICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0
cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQK
LSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJl
cHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1
bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJp
YnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBB
TkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKLSAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBM
SUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogVEhFIElN
UExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFS
VElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQ
TEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCi0gKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1Qs
IElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCi0gKiBDT05TRVFV
RU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVO
VCBPRgotICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEs
IE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCi0gKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VE
IEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgotICogQ09OVFJBQ1Qs
IFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVS
V0lTRSkKLSAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YKLSAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFH
RS4KLSAqLwotCi0jaW5jbHVkZSAiY29uZmlnLmgiCi0jaW5jbHVkZSAiUnVuTG9vcC5oIgotCi0j
aW5jbHVkZSA8UUNvcmVBcHBsaWNhdGlvbj4KLSNpbmNsdWRlIDxRQWJzdHJhY3RFdmVudERpc3Bh
dGNoZXI+Ci0jaW5jbHVkZSA8UU9iamVjdD4KLSNpbmNsdWRlIDxRTWV0YU1ldGhvZD4KLSNpbmNs
dWRlIDxRTWV0YU9iamVjdD4KLSNpbmNsdWRlIDxRVGltZXJFdmVudD4KLQotY2xhc3MgUnVuTG9v
cDo6VGltZXJPYmplY3QgOiBwdWJsaWMgUU9iamVjdAotewotICAgIFFfT0JKRUNUCi1wdWJsaWM6
Ci0gICAgVGltZXJPYmplY3QoUnVuTG9vcCogcnVuTG9vcCkgOiBtX3J1bkxvb3AocnVuTG9vcCkK
LSAgICB7Ci0gICAgICAgIGludCBtZXRob2RJbmRleCA9IG1ldGFPYmplY3QoKS0+aW5kZXhPZk1l
dGhvZCgicGVyZm9ybVdvcmsoKSIpOwotICAgICAgICBtX21ldGhvZCA9IG1ldGFPYmplY3QoKS0+
bWV0aG9kKG1ldGhvZEluZGV4KTsKLSAgICB9Ci0KLSAgICBRX1NMT1Qgdm9pZCBwZXJmb3JtV29y
aygpIHsgbV9ydW5Mb29wLT5wZXJmb3JtV29yaygpOyB9Ci0gICAgaW5saW5lIHZvaWQgd2FrZVVw
KCkgeyBtX21ldGhvZC5pbnZva2UodGhpcywgUXQ6OlF1ZXVlZENvbm5lY3Rpb24pOyB9Ci0KLXBy
b3RlY3RlZDoKLSAgICB2aXJ0dWFsIHZvaWQgdGltZXJFdmVudChRVGltZXJFdmVudCogZXZlbnQp
Ci0gICAgewotICAgICAgICBSdW5Mb29wOjpUaW1lckJhc2U6OnRpbWVyRmlyZWQobV9ydW5Mb29w
LCBldmVudC0+dGltZXJJZCgpKTsKLSAgICB9Ci0KLXByaXZhdGU6Ci0gICAgUnVuTG9vcCogbV9y
dW5Mb29wOwotICAgIFFNZXRhTWV0aG9kIG1fbWV0aG9kOwotfTsKLQotc3RhdGljIFFFdmVudExv
b3AqIGN1cnJlbnRFdmVudExvb3A7Ci0KLXZvaWQgUnVuTG9vcDo6cnVuKCkKLXsKLSAgICBzdGF0
aWMgYm9vbCBtYWluRXZlbnRMb29wSXNSdW5uaW5nID0gZmFsc2U7Ci0gICAgaWYgKCFtYWluRXZl
bnRMb29wSXNSdW5uaW5nKSB7Ci0gICAgICAgIG1haW5FdmVudExvb3BJc1J1bm5pbmcgPSB0cnVl
OwotICAgICAgICBRQ29yZUFwcGxpY2F0aW9uOjpleGVjKCk7Ci0gICAgICAgIG1haW5FdmVudExv
b3BJc1J1bm5pbmcgPSBmYWxzZTsKLSAgICB9IGVsc2UgewotICAgICAgICBRRXZlbnRMb29wIGV2
ZW50TG9vcDsKLQotICAgICAgICBRRXZlbnRMb29wKiBwcmV2aW91c0V2ZW50TG9vcCA9IGN1cnJl
bnRFdmVudExvb3A7Ci0gICAgICAgIGN1cnJlbnRFdmVudExvb3AgPSAmZXZlbnRMb29wOwotCi0g
ICAgICAgIGV2ZW50TG9vcC5leGVjKCk7Ci0KLSAgICAgICAgY3VycmVudEV2ZW50TG9vcCA9IHBy
ZXZpb3VzRXZlbnRMb29wOwotICAgIH0KLX0KLQotdm9pZCBSdW5Mb29wOjpzdG9wKCkKLXsKLSAg
ICBpZiAoY3VycmVudEV2ZW50TG9vcCkKLSAgICAgICAgY3VycmVudEV2ZW50TG9vcC0+ZXhpdCgp
OwotICAgIGVsc2UKLSAgICAgICAgUUNvcmVBcHBsaWNhdGlvbjo6ZXhpdCgpOwotfQotCi1SdW5M
b29wOjpSdW5Mb29wKCkKLSAgICA6IG1fdGltZXJPYmplY3QobmV3IFRpbWVyT2JqZWN0KHRoaXMp
KQotewotfQotCi1SdW5Mb29wOjp+UnVuTG9vcCgpCi17Ci0gICAgZGVsZXRlIG1fdGltZXJPYmpl
Y3Q7Ci19Ci0KLXZvaWQgUnVuTG9vcDo6d2FrZVVwKCkKLXsKLSAgICBtX3RpbWVyT2JqZWN0LT53
YWtlVXAoKTsKLX0KLQotLy8gUnVuTG9vcDo6VGltZXIKLQotdm9pZCBSdW5Mb29wOjpUaW1lckJh
c2U6OnRpbWVyRmlyZWQoUnVuTG9vcCogcnVuTG9vcCwgaW50IElEKQotewotICAgIFRpbWVyTWFw
OjppdGVyYXRvciBpdCA9IHJ1bkxvb3AtPm1fYWN0aXZlVGltZXJzLmZpbmQoSUQpOwotICAgIEFT
U0VSVChpdCAhPSBydW5Mb29wLT5tX2FjdGl2ZVRpbWVycy5lbmQoKSk7Ci0gICAgVGltZXJCYXNl
KiB0aW1lciA9IGl0LT5zZWNvbmQ7Ci0KLSAgICBpZiAoIXRpbWVyLT5tX2lzUmVwZWF0aW5nKSB7
Ci0gICAgICAgIC8vIFN0b3AgdGhlIHRpbWVyIChjYWxsaW5nIHN0b3Agd291bGQgbmVlZCBhbm90
aGVyIGhhc2ggdGFibGUgbG9va3VwKS4KLSAgICAgICAgcnVuTG9vcC0+bV9hY3RpdmVUaW1lcnMu
cmVtb3ZlKGl0KTsKLSAgICAgICAgcnVuTG9vcC0+bV90aW1lck9iamVjdC0+a2lsbFRpbWVyKHRp
bWVyLT5tX0lEKTsKLSAgICAgICAgdGltZXItPm1fSUQgPSAwOwotICAgIH0KLQotICAgIHRpbWVy
LT5maXJlZCgpOwotfQotCi1SdW5Mb29wOjpUaW1lckJhc2U6OlRpbWVyQmFzZShSdW5Mb29wKiBy
dW5Mb29wKQotICAgIDogbV9ydW5Mb29wKHJ1bkxvb3ApCi0gICAgLCBtX0lEKDApCi0gICAgLCBt
X2lzUmVwZWF0aW5nKGZhbHNlKQotewotfQotCi1SdW5Mb29wOjpUaW1lckJhc2U6On5UaW1lckJh
c2UoKQotewotICAgIHN0b3AoKTsKLX0KLQotdm9pZCBSdW5Mb29wOjpUaW1lckJhc2U6OnN0YXJ0
KGRvdWJsZSBuZXh0RmlyZUludGVydmFsLCBib29sIHJlcGVhdCkKLXsKLSAgICBzdG9wKCk7Ci0g
ICAgaW50IG1pbGxpcyA9IHN0YXRpY19jYXN0PGludD4obmV4dEZpcmVJbnRlcnZhbCAqIDEwMDAp
OwotICAgIG1faXNSZXBlYXRpbmcgPSByZXBlYXQ7Ci0gICAgbV9JRCA9IG1fcnVuTG9vcC0+bV90
aW1lck9iamVjdC0+c3RhcnRUaW1lcihtaWxsaXMpOwotICAgIEFTU0VSVChtX0lEKTsKLSAgICBt
X3J1bkxvb3AtPm1fYWN0aXZlVGltZXJzLnNldChtX0lELCB0aGlzKTsKLX0KLQotdm9pZCBSdW5M
b29wOjpUaW1lckJhc2U6OnN0b3AoKQotewotICAgIGlmICghbV9JRCkKLSAgICAgICAgcmV0dXJu
OwotICAgIFRpbWVyTWFwOjppdGVyYXRvciBpdCA9IG1fcnVuTG9vcC0+bV9hY3RpdmVUaW1lcnMu
ZmluZChtX0lEKTsKLSAgICBpZiAoaXQgPT0gbV9ydW5Mb29wLT5tX2FjdGl2ZVRpbWVycy5lbmQo
KSkKLSAgICAgICAgcmV0dXJuOwotCi0gICAgbV9ydW5Mb29wLT5tX2FjdGl2ZVRpbWVycy5yZW1v
dmUoaXQpOwotICAgIG1fcnVuTG9vcC0+bV90aW1lck9iamVjdC0+a2lsbFRpbWVyKG1fSUQpOwot
ICAgIG1fSUQgPSAwOwotfQotCi1ib29sIFJ1bkxvb3A6OlRpbWVyQmFzZTo6aXNBY3RpdmUoKSBj
b25zdAotewotICAgIHJldHVybiBtX0lEOwotfQotCi0jaW5jbHVkZSAiUnVuTG9vcFF0Lm1vYyIK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL3dpbi9SdW5Mb29wV2luLmNwcCBi
L1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL3dpbi9SdW5Mb29wV2luLmNwcApkZWxldGVkIGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggZGZiY2FlZTU2MmU2NTM1OTExYWVhY2QxZmZiMDQ5YmUxNzhmMDFm
NS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2Uv
V2ViS2l0Mi9QbGF0Zm9ybS93aW4vUnVuTG9vcFdpbi5jcHAKKysrIC9kZXYvbnVsbApAQCAtMSwx
NzkgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMCBBcHBsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6
Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFi
b3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFy
eSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0
aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3
aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBC
WSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwotICogQU5EIEFOWSBF
WFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sCi0gKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklU
TkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBF
VkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKLSAqIEJFIExJQUJMRSBG
T1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwg
T1IKLSAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sIFBST0NVUkVNRU5UIE9GCi0gKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NT
IE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKLSAqIElOVEVSUlVQVElPTikg
SE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElO
Ci0gKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJ
R0VOQ0UgT1IgT1RIRVJXSVNFKQotICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNF
IE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgotICogVEhFIFBPU1NJQklMSVRZ
IE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNpbmNsdWRlICJjb25maWcuaCIKLSNpbmNsdWRlICJS
dW5Mb29wLmgiCi0KLSNpbmNsdWRlICJCaW5hcnlTZW1hcGhvcmUuaCIKLSNpbmNsdWRlIDx3dGYv
Q3VycmVudFRpbWUuaD4KLQotdXNpbmcgbmFtZXNwYWNlIENvcmVJUEM7Ci11c2luZyBuYW1lc3Bh
Y2Ugc3RkOwotCi1zdGF0aWMgY29uc3QgVUlOVCBQZXJmb3JtV29ya01lc3NhZ2UgPSBXTV9VU0VS
ICsgMTsKLXN0YXRpYyBjb25zdCBMUFdTVFIga1J1bkxvb3BNZXNzYWdlV2luZG93Q2xhc3NOYW1l
ID0gTCJSdW5Mb29wTWVzc2FnZVdpbmRvdyI7Ci0KLUxSRVNVTFQgQ0FMTEJBQ0sgUnVuTG9vcDo6
UnVuTG9vcFduZFByb2MoSFdORCBoV25kLCBVSU5UIG1lc3NhZ2UsIFdQQVJBTSB3UGFyYW0sIExQ
QVJBTSBsUGFyYW0pCi17Ci0gICAgTE9OR19QVFIgbG9uZ1B0ciA9IDo6R2V0V2luZG93TG9uZ1B0
cihoV25kLCAwKTsKLSAgICAKLSAgICBpZiAoUnVuTG9vcCogcnVuTG9vcCA9IHJlaW50ZXJwcmV0
X2Nhc3Q8UnVuTG9vcCo+KGxvbmdQdHIpKQotICAgICAgICByZXR1cm4gcnVuTG9vcC0+d25kUHJv
YyhoV25kLCBtZXNzYWdlLCB3UGFyYW0sIGxQYXJhbSk7Ci0KLSAgICBpZiAobWVzc2FnZSA9PSBX
TV9DUkVBVEUpIHsKLSAgICAgICAgTFBDUkVBVEVTVFJVQ1QgY3JlYXRlU3RydWN0ID0gcmVpbnRl
cnByZXRfY2FzdDxMUENSRUFURVNUUlVDVD4obFBhcmFtKTsKLQotICAgICAgICAvLyBBc3NvY2lh
dGUgdGhlIFJ1bkxvb3Agd2l0aCB0aGUgd2luZG93LgotICAgICAgICA6OlNldFdpbmRvd0xvbmdQ
dHIoaFduZCwgMCwgKExPTkdfUFRSKWNyZWF0ZVN0cnVjdC0+bHBDcmVhdGVQYXJhbXMpOwotICAg
ICAgICByZXR1cm4gMDsKLSAgICB9Ci0KLSAgICByZXR1cm4gOjpEZWZXaW5kb3dQcm9jKGhXbmQs
IG1lc3NhZ2UsIHdQYXJhbSwgbFBhcmFtKTsKLX0KLQotTFJFU1VMVCBSdW5Mb29wOjp3bmRQcm9j
KEhXTkQgaFduZCwgVUlOVCBtZXNzYWdlLCBXUEFSQU0gd1BhcmFtLCBMUEFSQU0gbFBhcmFtKQot
ewotICAgIHN3aXRjaCAobWVzc2FnZSkgewotICAgIGNhc2UgUGVyZm9ybVdvcmtNZXNzYWdlOgot
ICAgICAgICBwZXJmb3JtV29yaygpOwotICAgICAgICByZXR1cm4gMDsKLSAgICBjYXNlIFdNX1RJ
TUVSOgotICAgICAgICBSdW5Mb29wOjpUaW1lckJhc2U6OnRpbWVyRmlyZWQodGhpcywgd1BhcmFt
KTsKLSAgICAgICAgcmV0dXJuIDA7Ci0gICAgfQotCi0gICAgcmV0dXJuIDo6RGVmV2luZG93UHJv
YyhoV25kLCBtZXNzYWdlLCB3UGFyYW0sIGxQYXJhbSk7Ci19Ci0KLXZvaWQgUnVuTG9vcDo6cnVu
KCkKLXsKLSAgICBNU0cgbWVzc2FnZTsKLSAgICB3aGlsZSAoQk9PTCByZXN1bHQgPSA6OkdldE1l
c3NhZ2UoJm1lc3NhZ2UsIDAsIDAsIDApKSB7Ci0gICAgICAgIGlmIChyZXN1bHQgPT0gLTEpCi0g
ICAgICAgICAgICBicmVhazsKLSAgICAgICAgOjpUcmFuc2xhdGVNZXNzYWdlKCZtZXNzYWdlKTsK
LSAgICAgICAgOjpEaXNwYXRjaE1lc3NhZ2UoJm1lc3NhZ2UpOwotICAgIH0KLX0KLQotdm9pZCBS
dW5Mb29wOjpzdG9wKCkKLXsKLSAgICA6OlBvc3RRdWl0TWVzc2FnZSgwKTsKLX0KLQotYm9vbCBS
dW5Mb29wOjpyZWdpc3RlclJ1bkxvb3BNZXNzYWdlV2luZG93Q2xhc3MoKQotewotICAgIC8vIEZJ
WE1FOiBUaGlzIHJlYWxseSBvbmx5IG5lZWRzIHRvIGJlIGNhbGxlZCBvbmNlLgotCi0gICAgV05E
Q0xBU1NFWCB3aW5kb3dDbGFzcyA9IHsgMCB9OwotICAgIHdpbmRvd0NsYXNzLmNiU2l6ZSAgICAg
ICAgICA9IHNpemVvZih3aW5kb3dDbGFzcyk7Ci0gICAgd2luZG93Q2xhc3MubHBmblduZFByb2Mg
ICAgID0gUnVuTG9vcDo6UnVuTG9vcFduZFByb2M7Ci0gICAgd2luZG93Q2xhc3MuY2JXbmRFeHRy
YSAgICAgID0gc2l6ZW9mKFJ1bkxvb3AqKTsKLSAgICB3aW5kb3dDbGFzcy5scHN6Q2xhc3NOYW1l
ICAgPSBrUnVuTG9vcE1lc3NhZ2VXaW5kb3dDbGFzc05hbWU7Ci0KLSAgICByZXR1cm4gISE6OlJl
Z2lzdGVyQ2xhc3NFeCgmd2luZG93Q2xhc3MpOwotfQotCi1SdW5Mb29wOjpSdW5Mb29wKCkKLXsK
LSAgICByZWdpc3RlclJ1bkxvb3BNZXNzYWdlV2luZG93Q2xhc3MoKTsKLQotICAgIG1fcnVuTG9v
cE1lc3NhZ2VXaW5kb3cgPSA6OkNyZWF0ZVdpbmRvdyhrUnVuTG9vcE1lc3NhZ2VXaW5kb3dDbGFz
c05hbWUsIDAsIDAsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IENXX1VTRURFRkFVTFQsIDAsIENXX1VTRURFRkFVTFQsIDAsCi0gICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIEhXTkRfTUVTU0FHRSwgMCwgMCwgdGhpcyk7Ci0gICAg
QVNTRVJUKDo6SXNXaW5kb3cobV9ydW5Mb29wTWVzc2FnZVdpbmRvdykpOwotfQotCi1SdW5Mb29w
Ojp+UnVuTG9vcCgpCi17Ci0gICAgLy8gRklYTUU6IFRlYXIgZG93biB0aGUgd29yayBpdGVtIHF1
ZXVlIGhlcmUuCi19Ci0KLXZvaWQgUnVuTG9vcDo6d2FrZVVwKCkKLXsKLSAgICAvLyBGSVhNRTog
Tm8gbmVlZCB0byB3YWtlIHVwIHRoZSBydW4gbG9vcCBpZiB3ZSd2ZSBhbHJlYWR5IGNhbGxlZCBk
aXNwYXRjaAotICAgIC8vIGJlZm9yZSB0aGUgcnVuIGxvb3AgaGFzIGhhZCB0aGUgdGltZSB0byBy
ZXNwb25kLgotICAgIDo6UG9zdE1lc3NhZ2UobV9ydW5Mb29wTWVzc2FnZVdpbmRvdywgUGVyZm9y
bVdvcmtNZXNzYWdlLCByZWludGVycHJldF9jYXN0PFdQQVJBTT4odGhpcyksIDApOwotfQotCi0v
LyBSdW5Mb29wOjpUaW1lcgotCi12b2lkIFJ1bkxvb3A6OlRpbWVyQmFzZTo6dGltZXJGaXJlZChS
dW5Mb29wKiBydW5Mb29wLCB1aW50NjRfdCBJRCkKLXsKLSAgICBUaW1lck1hcDo6aXRlcmF0b3Ig
aXQgPSBydW5Mb29wLT5tX2FjdGl2ZVRpbWVycy5maW5kKElEKTsKLSAgICBpZiAoaXQgPT0gcnVu
TG9vcC0+bV9hY3RpdmVUaW1lcnMuZW5kKCkpIHsKLSAgICAgICAgLy8gVGhlIHRpbWVyIG11c3Qg
aGF2ZSBiZWVuIHN0b3BwZWQgYWZ0ZXIgdGhlIFdNX1RJTUVSIG1lc3NhZ2Ugd2FzIHBvc3RlZCB0
byB0aGUgbWVzc2FnZSBxdWV1ZS4KLSAgICAgICAgcmV0dXJuOwotICAgIH0KLQotICAgIFRpbWVy
QmFzZSogdGltZXIgPSBpdC0+c2Vjb25kOwotCi0gICAgaWYgKCF0aW1lci0+bV9pc1JlcGVhdGlu
ZykgewotICAgICAgICBydW5Mb29wLT5tX2FjdGl2ZVRpbWVycy5yZW1vdmUoaXQpOwotICAgICAg
ICA6OktpbGxUaW1lcihydW5Mb29wLT5tX3J1bkxvb3BNZXNzYWdlV2luZG93LCBJRCk7Ci0gICAg
fQotCi0gICAgdGltZXItPmZpcmVkKCk7Ci19Ci0KLXN0YXRpYyB1aW50NjRfdCBnZW5lcmF0ZVRp
bWVySUQoKQotewotICAgIHN0YXRpYyB1aW50NjRfdCB1bmlxdWVUaW1lcklEID0gMTsKLSAgICBy
ZXR1cm4gdW5pcXVlVGltZXJJRCsrOwotfQotCi1SdW5Mb29wOjpUaW1lckJhc2U6OlRpbWVyQmFz
ZShSdW5Mb29wKiBydW5Mb29wKQotICAgIDogbV9ydW5Mb29wKHJ1bkxvb3ApCi0gICAgLCBtX0lE
KGdlbmVyYXRlVGltZXJJRCgpKQotICAgICwgbV9pc1JlcGVhdGluZyhmYWxzZSkKLXsKLX0KLQot
UnVuTG9vcDo6VGltZXJCYXNlOjp+VGltZXJCYXNlKCkKLXsKLSAgICBzdG9wKCk7Ci19Ci0KLXZv
aWQgUnVuTG9vcDo6VGltZXJCYXNlOjpzdGFydChkb3VibGUgbmV4dEZpcmVJbnRlcnZhbCwgYm9v
bCByZXBlYXQpCi17Ci0gICAgbV9pc1JlcGVhdGluZyA9IHJlcGVhdDsKLSAgICBtX3J1bkxvb3At
Pm1fYWN0aXZlVGltZXJzLnNldChtX0lELCB0aGlzKTsKLSAgICA6OlNldFRpbWVyKG1fcnVuTG9v
cC0+bV9ydW5Mb29wTWVzc2FnZVdpbmRvdywgbV9JRCwgbmV4dEZpcmVJbnRlcnZhbCAqIDEwMDAs
IDApOwotfQotCi12b2lkIFJ1bkxvb3A6OlRpbWVyQmFzZTo6c3RvcCgpCi17Ci0gICAgVGltZXJN
YXA6Oml0ZXJhdG9yIGl0ID0gbV9ydW5Mb29wLT5tX2FjdGl2ZVRpbWVycy5maW5kKG1fSUQpOwot
ICAgIGlmIChpdCA9PSBtX3J1bkxvb3AtPm1fYWN0aXZlVGltZXJzLmVuZCgpKQotICAgICAgICBy
ZXR1cm47Ci0KLSAgICBtX3J1bkxvb3AtPm1fYWN0aXZlVGltZXJzLnJlbW92ZShpdCk7Ci0gICAg
OjpLaWxsVGltZXIobV9ydW5Mb29wLT5tX3J1bkxvb3BNZXNzYWdlV2luZG93LCBtX0lEKTsKLX0K
LQotYm9vbCBSdW5Mb29wOjpUaW1lckJhc2U6OmlzQWN0aXZlKCkgY29uc3QKLXsKLSAgICByZXR1
cm4gbV9ydW5Mb29wLT5tX2FjdGl2ZVRpbWVycy5jb250YWlucyhtX0lEKTsKLX0KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQyL1BsdWdpblByb2Nlc3MvUGx1Z2luQ29udHJvbGxlclByb3h5Lmgg
Yi9Tb3VyY2UvV2ViS2l0Mi9QbHVnaW5Qcm9jZXNzL1BsdWdpbkNvbnRyb2xsZXJQcm94eS5oCmlu
ZGV4IDUxYzM0OGRhMWE1MmNkMjBlNTk5OTkwN2E1Y2JlYWQ5NWZkNjhlYzMuLmM3OTIxMWE4YzJh
ZDJiNDM0OTQ0ZDk5ZDVhZGNkYjY0MzRkZGIyZTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQy
L1BsdWdpblByb2Nlc3MvUGx1Z2luQ29udHJvbGxlclByb3h5LmgKKysrIGIvU291cmNlL1dlYktp
dDIvUGx1Z2luUHJvY2Vzcy9QbHVnaW5Db250cm9sbGVyUHJveHkuaApAQCAtMzIsOCArMzIsOCBA
QAogI2luY2x1ZGUgIlBsdWdpbi5oIgogI2luY2x1ZGUgIlBsdWdpbkNvbnRyb2xsZXIuaCIKICNp
bmNsdWRlICJQbHVnaW5Db250cm9sbGVyUHJveHlNZXNzYWdlcy5oIgotI2luY2x1ZGUgIlJ1bkxv
b3AuaCIKICNpbmNsdWRlICJTaGFyZWFibGVCaXRtYXAuaCIKKyNpbmNsdWRlIDxXZWJDb3JlL1J1
bkxvb3AuaD4KICNpbmNsdWRlIDx3dGYvTm9uY29weWFibGUuaD4KIAogI2lmIFBMQVRGT1JNKE1B
QykKQEAgLTE2NywxNCArMTY3LDE0IEBAIHByaXZhdGU6CiAgICAgV2ViQ29yZTo6SW50UmVjdCBt
X2RpcnR5UmVjdDsKIAogICAgIC8vIFRoZSBwYWludCB0aW1lciwgdXNlZCBmb3IgY29hbGVzY2lu
ZyBwYWludGluZy4KLSAgICBSdW5Mb29wOjpUaW1lcjxQbHVnaW5Db250cm9sbGVyUHJveHk+IG1f
cGFpbnRUaW1lcjsKKyAgICBXZWJDb3JlOjpSdW5Mb29wOjpUaW1lcjxQbHVnaW5Db250cm9sbGVy
UHJveHk+IG1fcGFpbnRUaW1lcjsKICAgICAKICAgICAvLyBBIGNvdW50ZXIgdXNlZCB0byBwcmV2
ZW50IHRoZSBwbHVnLWluIGZyb20gYmVpbmcgZGVzdHJveWVkLgogICAgIHVuc2lnbmVkIG1fcGx1
Z2luRGVzdHJ1Y3Rpb25Qcm90ZWN0Q291bnQ7CiAKICAgICAvLyBBIHRpbWVyIHRoYXQgd2UgdXNl
IHRvIHByZXZlbnQgZGVzdHJ1Y3Rpb24gb2YgdGhlIHBsdWctaW4gd2hpbGUgcGx1Zy1pbgogICAg
IC8vIGNvZGUgaXMgb24gdGhlIHN0YWNrLgotICAgIFJ1bkxvb3A6OlRpbWVyPFBsdWdpbkNvbnRy
b2xsZXJQcm94eT4gbV9wbHVnaW5EZXN0cm95VGltZXI7CisgICAgV2ViQ29yZTo6UnVuTG9vcDo6
VGltZXI8UGx1Z2luQ29udHJvbGxlclByb3h5PiBtX3BsdWdpbkRlc3Ryb3lUaW1lcjsKIAogICAg
IC8vIFdpbGwgcG9pbnQgdG8gdGhlIHBsdWctaW4gY3JlYXRpb24gcGFyYW1ldGVycyBvZiB0aGUg
cGx1Zy1pbiB3ZSdyZSBjdXJyZW50bHkgaW5pdGlhbGl6aW5nIGFuZCB3aWxsIGJlIG51bGwgd2hl
biB3ZSdyZSBkb25lIGluaXRpYWxpemluZy4KICAgICBjb25zdCBQbHVnaW5DcmVhdGlvblBhcmFt
ZXRlcnMqIG1fcGx1Z2luQ3JlYXRpb25QYXJhbWV0ZXJzOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdDIvUGx1Z2luUHJvY2Vzcy9QbHVnaW5Qcm9jZXNzLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1Bs
dWdpblByb2Nlc3MvUGx1Z2luUHJvY2Vzcy5jcHAKaW5kZXggYTM2NmY1ZGI3MTQyMTM3MDZiZGVi
NTk4NTU5NzQzOGE4ZDU0ZTYzZS4uMDk5YmYzYTQ4ZmZkMjNmYzRlNGFjNzcxMmRjOTI2N2IzMTdl
ZGI1OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvUGx1Z2luUHJvY2Vzcy9QbHVnaW5Qcm9j
ZXNzLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9QbHVnaW5Qcm9jZXNzL1BsdWdpblByb2Nlc3Mu
Y3BwCkBAIC0zNiw2ICszNiw3IEBACiAjaW5jbHVkZSAiUGx1Z2luUHJvY2Vzc0NyZWF0aW9uUGFy
YW1ldGVycy5oIgogI2luY2x1ZGUgIldlYlByb2Nlc3NDb25uZWN0aW9uLmgiCiAjaW5jbHVkZSA8
V2ViQ29yZS9Ob3RJbXBsZW1lbnRlZC5oPgorI2luY2x1ZGUgPFdlYkNvcmUvUnVuTG9vcC5oPgog
CiAjaWYgVVNFKFVOSVhfRE9NQUlOX1NPQ0tFVFMpCiAjaW5jbHVkZSA8ZXJybm8uaD4KQEAgLTU1
LDYgKzU2LDggQEAKICNlbmRpZiAvLyBTT0NLX1NFUVBBQ0tFVAogI2VuZGlmIC8vIFVTRShVTklY
X0RPTUFJTl9TT0NLRVRTKQogCit1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKKwogbmFtZXNwYWNl
IFdlYktpdCB7CiAKIHN0YXRpYyBjb25zdCBkb3VibGUgc2h1dGRvd25UaW1lb3V0ID0gMTUuMDsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1BsdWdpblByb2Nlc3MvUGx1Z2luUHJvY2Vzcy5o
IGIvU291cmNlL1dlYktpdDIvUGx1Z2luUHJvY2Vzcy9QbHVnaW5Qcm9jZXNzLmgKaW5kZXggYTYx
MDMyNmI0Nzk2Y2M0NGQxZjcyZTE2M2ZiOWE4NGE3Yjk3M2M0YS4uMGNmMzljNmU1OWVjMTEyZjQw
OTZlMTg0ODM0ODAyN2VlZjA4OGFhOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvUGx1Z2lu
UHJvY2Vzcy9QbHVnaW5Qcm9jZXNzLmgKKysrIGIvU291cmNlL1dlYktpdDIvUGx1Z2luUHJvY2Vz
cy9QbHVnaW5Qcm9jZXNzLmgKQEAgLTI5LDEwICsyOSwxMyBAQAogI2lmIEVOQUJMRShQTFVHSU5f
UFJPQ0VTUykKIAogI2luY2x1ZGUgIkNoaWxkUHJvY2Vzcy5oIgotI2luY2x1ZGUgIlJ1bkxvb3Au
aCIKICNpbmNsdWRlIDx3dGYvRm9yd2FyZC5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmlu
Zy5oPgogCituYW1lc3BhY2UgV2ViQ29yZSB7CitjbGFzcyBSdW5Mb29wOworfQorCiBuYW1lc3Bh
Y2UgV2ViS2l0IHsKIAogY2xhc3MgTmV0c2NhcGVQbHVnaW5Nb2R1bGU7CkBAIC00NCw3ICs0Nyw3
IEBAIGNsYXNzIFBsdWdpblByb2Nlc3MgOiBDaGlsZFByb2Nlc3MgewogcHVibGljOgogICAgIHN0
YXRpYyBQbHVnaW5Qcm9jZXNzJiBzaGFyZWQoKTsKIAotICAgIHZvaWQgaW5pdGlhbGl6ZShDb3Jl
SVBDOjpDb25uZWN0aW9uOjpJZGVudGlmaWVyLCBSdW5Mb29wKik7CisgICAgdm9pZCBpbml0aWFs
aXplKENvcmVJUEM6OkNvbm5lY3Rpb246OklkZW50aWZpZXIsIFdlYkNvcmU6OlJ1bkxvb3AqKTsK
ICAgICB2b2lkIHJlbW92ZVdlYlByb2Nlc3NDb25uZWN0aW9uKFdlYlByb2Nlc3NDb25uZWN0aW9u
KiB3ZWJQcm9jZXNzQ29ubmVjdGlvbik7CiAKICAgICBOZXRzY2FwZVBsdWdpbk1vZHVsZSogbmV0
c2NhcGVQbHVnaW5Nb2R1bGUoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1BsdWdpblBy
b2Nlc3MvV2ViUHJvY2Vzc0Nvbm5lY3Rpb24uY3BwIGIvU291cmNlL1dlYktpdDIvUGx1Z2luUHJv
Y2Vzcy9XZWJQcm9jZXNzQ29ubmVjdGlvbi5jcHAKaW5kZXggYWI2M2IwNWJiZGY4NmYyYjIzMjlj
OGRjMzNkMDg3MTgwY2I3MzlmZC4uYTI3ZDExMzkwNjlkYTk3N2ZjODJlY2JkZDJhZWM5NGM3YTdl
ZDY1ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvUGx1Z2luUHJvY2Vzcy9XZWJQcm9jZXNz
Q29ubmVjdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvUGx1Z2luUHJvY2Vzcy9XZWJQcm9j
ZXNzQ29ubmVjdGlvbi5jcHAKQEAgLTM0LDEwICszNCwxMSBAQAogI2luY2x1ZGUgIlBsdWdpbkNy
ZWF0aW9uUGFyYW1ldGVycy5oIgogI2luY2x1ZGUgIlBsdWdpblByb2Nlc3MuaCIKICNpbmNsdWRl
ICJQbHVnaW5Qcm9jZXNzQ29ubmVjdGlvbk1lc3NhZ2VzLmgiCi0jaW5jbHVkZSAiUnVuTG9vcC5o
IgorI2luY2x1ZGUgPFdlYkNvcmUvUnVuTG9vcC5oPgogCi1uYW1lc3BhY2UgV2ViS2l0IHsKK3Vz
aW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogCituYW1lc3BhY2UgV2ViS2l0IHsKIAogY2xhc3MgQ29u
bmVjdGlvblN0YWNrIHsKIHB1YmxpYzoKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1BsdWdp
blByb2Nlc3MvbWFjL1BsdWdpblByb2Nlc3NNYWluTWFjLm1tIGIvU291cmNlL1dlYktpdDIvUGx1
Z2luUHJvY2Vzcy9tYWMvUGx1Z2luUHJvY2Vzc01haW5NYWMubW0KaW5kZXggNWU5M2UyYmRkYTQx
M2ZiOGMzZDkyOWFhZGFlMDQ2MWEzMzM2Mjg2ZC4uODU2MWY5OTU5NDQwOWNmMDc4ZWYxNmQwMTQx
MzNlYjAyYzhiNWY1ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvUGx1Z2luUHJvY2Vzcy9t
YWMvUGx1Z2luUHJvY2Vzc01haW5NYWMubW0KKysrIGIvU291cmNlL1dlYktpdDIvUGx1Z2luUHJv
Y2Vzcy9tYWMvUGx1Z2luUHJvY2Vzc01haW5NYWMubW0KQEAgLTMyLDE5ICszMiwyMSBAQAogI2lt
cG9ydCAiRW52aXJvbm1lbnRVdGlsaXRpZXMuaCIKICNpbXBvcnQgIk5ldHNjYXBlUGx1Z2luTW9k
dWxlLmgiCiAjaW1wb3J0ICJQbHVnaW5Qcm9jZXNzLmgiCi0jaW1wb3J0ICJSdW5Mb29wLmgiCisj
aW1wb3J0IDxXZWJDb3JlL1J1bkxvb3AuaD4KICNpbXBvcnQgPFdlYktpdFN5c3RlbUludGVyZmFj
ZS5oPgogI2ltcG9ydCA8bWFjaC9tYWNoX2Vycm9yLmg+CiAjaW1wb3J0IDxydW50aW1lL0luaXRp
YWxpemVUaHJlYWRpbmcuaD4KICNpbXBvcnQgPHNlcnZlcnMvYm9vdHN0cmFwLmg+CisjaW1wb3J0
IDxzdGRpby5oPgogI2ltcG9ydCA8d3RmL01haW5UaHJlYWQuaD4KICNpbXBvcnQgPHd0Zi9SZXRh
aW5QdHIuaD4KICNpbXBvcnQgPHd0Zi90ZXh0L0NTdHJpbmcuaD4KICNpbXBvcnQgPHd0Zi90ZXh0
L1dURlN0cmluZy5oPgotI2luY2x1ZGUgPHN0ZGlvLmg+CiAKICNkZWZpbmUgU0hPV19DUkFTSF9S
RVBPUlRFUiAxCiAKK3VzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOworCiBuYW1lc3BhY2UgV2ViS2l0
IHsKIAogLy8gRklYTUU6IFRoZXJlIGlzIG11Y2ggY29kZSBoZXJlIHRoYXQgaXMgZHVwbGljYXRl
ZCBpbiBXZWJQcm9jZXNzTWFpbk1hYy5tbSwgd2Ugc2hvdWxkIGFkZCBhIHNoYXJlZCBiYXNlIGNs
YXNzIHdoZXJlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9QbHVnaW5Qcm9jZXNzL3F0L1Bs
dWdpblByb2Nlc3NNYWluUXQuY3BwIGIvU291cmNlL1dlYktpdDIvUGx1Z2luUHJvY2Vzcy9xdC9Q
bHVnaW5Qcm9jZXNzTWFpblF0LmNwcAppbmRleCAzZTAwMzNmZjBhYjMzNzY1MGU1M2QwODFjODlm
NDQ0MTRhNjc4YTc1Li5kM2EwZWMzZTI0NTk1NmI5ODUwMGQ1NjdlNTY1ZmFhMTUwNmEwMDUzIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9QbHVnaW5Qcm9jZXNzL3F0L1BsdWdpblByb2Nlc3NN
YWluUXQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1BsdWdpblByb2Nlc3MvcXQvUGx1Z2luUHJv
Y2Vzc01haW5RdC5jcHAKQEAgLTMwLDggKzMwLDggQEAKIAogI2luY2x1ZGUgIkNvbW1hbmRMaW5l
LmgiCiAjaW5jbHVkZSAiUGx1Z2luUHJvY2Vzcy5oIgotI2luY2x1ZGUgIlJ1bkxvb3AuaCIKICNp
bmNsdWRlIDxXZWJDb3JlL05vdEltcGxlbWVudGVkLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9SdW5M
b29wLmg+CiAjaW5jbHVkZSA8cnVudGltZS9Jbml0aWFsaXplVGhyZWFkaW5nLmg+CiAjaW5jbHVk
ZSA8d3RmL01haW5UaHJlYWQuaD4KICNpbmNsdWRlIDx3dGYvUmV0YWluUHRyLmg+CkBAIC00MCw2
ICs0MCw4IEBACiAKICNkZWZpbmUgU0hPV19DUkFTSF9SRVBPUlRFUiAxCiAKK3VzaW5nIG5hbWVz
cGFjZSBXZWJDb3JlOworCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAogaW50IFBsdWdpblByb2Nlc3NN
YWluKGNvbnN0IENvbW1hbmRMaW5lJiBjb21tYW5kTGluZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQyL1NoYXJlZC9DaGlsZFByb2Nlc3MuY3BwIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL0No
aWxkUHJvY2Vzcy5jcHAKaW5kZXggOGIzY2RiMjgyY2I5YjgzZjRiNDhlMjA3NTM0NmY4NWZmYjlk
NGE2Yy4uNTcxZmU5NTg2MGUzMGVmNjdmYWIyMGY4NTFmMjkzYTA1ZmM0YTgyOSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL0NoaWxkUHJvY2Vzcy5jcHAKKysrIGIvU291cmNlL1dl
YktpdDIvU2hhcmVkL0NoaWxkUHJvY2Vzcy5jcHAKQEAgLTMwLDYgKzMwLDggQEAKICNpbmNsdWRl
IDx1bmlzdGQuaD4KICNlbmRpZgogCit1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKKwogbmFtZXNw
YWNlIFdlYktpdCB7CiAKIHZvaWQgQ2hpbGRQcm9jZXNzOjpkaXNhYmxlVGVybWluYXRpb24oKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL0NoaWxkUHJvY2Vzcy5oIGIvU291cmNl
L1dlYktpdDIvU2hhcmVkL0NoaWxkUHJvY2Vzcy5oCmluZGV4IDQyNTk4MzBkOGI3Mjk0MzQ5ZWE0
Nzk2MjdiNDM0OWIwNzVjNmFjYTYuLjUwZWNlYjU5NGVjMjhmYzhlM2ZlNDhlOTM4Y2UxZWZjYzI5
MTEyYzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9DaGlsZFByb2Nlc3MuaAor
KysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQ2hpbGRQcm9jZXNzLmgKQEAgLTI3LDcgKzI3LDcg
QEAKICNkZWZpbmUgQ2hpbGRQcm9jZXNzX2gKIAogI2luY2x1ZGUgIkNvbm5lY3Rpb24uaCIKLSNp
bmNsdWRlICJSdW5Mb29wLmgiCisjaW5jbHVkZSA8V2ViQ29yZS9SdW5Mb29wLmg+CiAKIG5hbWVz
cGFjZSBXZWJLaXQgewogCkBAIC03Nyw3ICs3Nyw3IEBAIHByaXZhdGU6CiAgICAgLy8gYWZ0ZXIg
YSBnaXZlbiBwZXJpb2Qgb2YgdGltZS4KICAgICB1bnNpZ25lZCBtX3Rlcm1pbmF0aW9uQ291bnRl
cjsKIAotICAgIFJ1bkxvb3A6OlRpbWVyPENoaWxkUHJvY2Vzcz4gbV90ZXJtaW5hdGlvblRpbWVy
OworICAgIFdlYkNvcmU6OlJ1bkxvb3A6OlRpbWVyPENoaWxkUHJvY2Vzcz4gbV90ZXJtaW5hdGlv
blRpbWVyOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0Mi9UYXJnZXQucHJpIGIvU291cmNlL1dlYktpdDIvVGFyZ2V0LnByaQppbmRleCAzNTk4
M2YwNzY1NmRiNDgwZjgzNWFjY2Y2M2ZlM2NkNjZkYTk3YzkwLi41ZWUyNzk3MjI0OTA0ZjRhNDc2
YWY2MjBhODViZTY0NjZmMTA2ZTc1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9UYXJnZXQu
cHJpCisrKyBiL1NvdXJjZS9XZWJLaXQyL1RhcmdldC5wcmkKQEAgLTMxLDcgKzMxLDYgQEAgSEVB
REVSUyArPSBcCiAgICAgUGxhdGZvcm0vTG9nZ2luZy5oIFwKICAgICBQbGF0Zm9ybS9Nb2R1bGUu
aCBcCiAgICAgUGxhdGZvcm0vUGxhdGZvcm1Qcm9jZXNzSWRlbnRpZmllci5oIFwKLSAgICBQbGF0
Zm9ybS9SdW5Mb29wLmggXAogICAgIFBsYXRmb3JtL1NoYXJlZE1lbW9yeS5oIFwKICAgICBQbGF0
Zm9ybS9Xb3JrUXVldWUuaCBcCiAgICAgUGx1Z2luUHJvY2Vzcy9QbHVnaW5Db250cm9sbGVyUHJv
eHkuaCBcCkBAIC0zNzMsMTAgKzM3Miw4IEBAIFNPVVJDRVMgKz0gXAogICAgIFBsYXRmb3JtL0Nv
cmVJUEMvRGF0YVJlZmVyZW5jZS5jcHAgXAogICAgIFBsYXRmb3JtL0xvZ2dpbmcuY3BwIFwKICAg
ICBQbGF0Zm9ybS9Nb2R1bGUuY3BwIFwKLSAgICBQbGF0Zm9ybS9SdW5Mb29wLmNwcCBcCiAgICAg
UGxhdGZvcm0vV29ya1F1ZXVlLmNwcCBcCiAgICAgUGxhdGZvcm0vcXQvTW9kdWxlUXQuY3BwIFwK
LSAgICBQbGF0Zm9ybS9xdC9SdW5Mb29wUXQuY3BwIFwKICAgICBQbHVnaW5Qcm9jZXNzL1BsdWdp
bkNvbnRyb2xsZXJQcm94eS5jcHAgXAogICAgIFBsdWdpblByb2Nlc3MvUGx1Z2luUHJvY2Vzcy5j
cHAgXAogICAgIFBsdWdpblByb2Nlc3MvV2ViUHJvY2Vzc0Nvbm5lY3Rpb24uY3BwIFwKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvbWFjL0ZpbmRJbmRpY2F0b3JXaW5k
b3cuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvbWFjL0ZpbmRJbmRpY2F0b3JXaW5k
b3cuaAppbmRleCA3ODM2YTU0NmE1NGFhZDEzOGU0YTI3MzFlN2MyMDdkNGE5YTY3Yjg3Li5jYmUz
NGExYTkwZmI5YmE5YTViZjc5MzY1YmIxN2QyMzRhOWQ4YTQzIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvQVBJL21hYy9GaW5kSW5kaWNhdG9yV2luZG93LmgKKysrIGIvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9tYWMvRmluZEluZGljYXRvcldpbmRvdy5oCkBAIC0y
NiwxMiArMjYsMTIgQEAKICNpZm5kZWYgRmluZEluZGljYXRvcldpbmRvd19oCiAjZGVmaW5lIEZp
bmRJbmRpY2F0b3JXaW5kb3dfaAogCisjaW1wb3J0ICJXZWJLaXRTeXN0ZW1JbnRlcmZhY2UuaCIK
KyNpbXBvcnQgPFdlYkNvcmUvUnVuTG9vcC5oPgogI2ltcG9ydCA8d3RmL05vbmNvcHlhYmxlLmg+
CiAjaW1wb3J0IDx3dGYvUGFzc093blB0ci5oPgogI2ltcG9ydCA8d3RmL1JlZlB0ci5oPgogI2lt
cG9ydCA8d3RmL1JldGFpblB0ci5oPgotI2ltcG9ydCAiUnVuTG9vcC5oIgotI2ltcG9ydCAiV2Vi
S2l0U3lzdGVtSW50ZXJmYWNlLmgiCiAKIEBjbGFzcyBXS0ZpbmRJbmRpY2F0b3JXaW5kb3dBbmlt
YXRpb247CiBAY2xhc3MgV0tWaWV3OwpAQCAtNjgsNyArNjgsNyBAQCBwcml2YXRlOgogICAgIFdL
V2luZG93Qm91bmNlQW5pbWF0aW9uQ29udGV4dFJlZiBtX2JvdW5jZUFuaW1hdGlvbkNvbnRleHQ7
CiAgICAgUmV0YWluUHRyPFdLRmluZEluZGljYXRvcldpbmRvd0FuaW1hdGlvbj4gbV9ib3VuY2VB
bmltYXRpb247CiAKLSAgICBSdW5Mb29wOjpUaW1lcjxGaW5kSW5kaWNhdG9yV2luZG93PiBtX3N0
YXJ0RmFkZU91dFRpbWVyOworICAgIFdlYkNvcmU6OlJ1bkxvb3A6OlRpbWVyPEZpbmRJbmRpY2F0
b3JXaW5kb3c+IG1fc3RhcnRGYWRlT3V0VGltZXI7CiAgICAgUmV0YWluUHRyPFdLRmluZEluZGlj
YXRvcldpbmRvd0FuaW1hdGlvbj4gbV9mYWRlT3V0QW5pbWF0aW9uOwogfTsKIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9tYWMvV0tWaWV3Lm1tIGIvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL0FQSS9tYWMvV0tWaWV3Lm1tCmluZGV4IDFkODcwOWQ4MmEyMjRkNGJm
MGU4NjFmOTlhOTc3ODRkODdhN2ZjNDguLjNlYzNlN2ZjYjYwYTA1ZGNjMGFhOTgwZmQ2NTViODEy
NjlmYWViYjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvbWFjL1dL
Vmlldy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL21hYy9XS1ZpZXcubW0K
QEAgLTQwLDcgKzQwLDYgQEAKICNpbXBvcnQgIlBERlZpZXdDb250cm9sbGVyLmgiCiAjaW1wb3J0
ICJQYWdlQ2xpZW50SW1wbC5oIgogI2ltcG9ydCAiUGFzdGVib2FyZFR5cGVzLmgiCi0jaW1wb3J0
ICJSdW5Mb29wLmgiCiAjaW1wb3J0ICJUZXh0Q2hlY2tlci5oIgogI2ltcG9ydCAiVGV4dENoZWNr
ZXJTdGF0ZS5oIgogI2ltcG9ydCAiVGlsZWRDb3JlQW5pbWF0aW9uRHJhd2luZ0FyZWFQcm94eS5o
IgpAQCAtNzAsNiArNjksNyBAQAogI2ltcG9ydCA8V2ViQ29yZS9QbGF0Zm9ybUV2ZW50RmFjdG9y
eU1hYy5oPgogI2ltcG9ydCA8V2ViQ29yZS9QbGF0Zm9ybVNjcmVlbi5oPgogI2ltcG9ydCA8V2Vi
Q29yZS9SZWdpb24uaD4KKyNpbXBvcnQgPFdlYkNvcmUvUnVuTG9vcC5oPgogI2ltcG9ydCA8V2Vi
S2l0U3lzdGVtSW50ZXJmYWNlLmg+CiAjaW1wb3J0IDx3dGYvUmVmUHRyLmg+CiAjaW1wb3J0IDx3
dGYvUmV0YWluUHRyLmg+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvRHJh
d2luZ0FyZWFQcm94eUltcGwuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9EcmF3aW5nQXJl
YVByb3h5SW1wbC5oCmluZGV4IDA1ZDczNTQyMzYyNjdhNTViNDVjNjA5YjhkMmJhNTQ3ZTEwZjhi
ZGIuLmMxNjUxZjQxZmE5MzVkMWY0ODA4NDEzMTZiNmEyMThhZWUyYmU4YTUgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9EcmF3aW5nQXJlYVByb3h5SW1wbC5oCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9EcmF3aW5nQXJlYVByb3h5SW1wbC5oCkBAIC0yOSw3ICsy
OSw3IEBACiAjaW5jbHVkZSAiQmFja2luZ1N0b3JlLmgiCiAjaW5jbHVkZSAiRHJhd2luZ0FyZWFQ
cm94eS5oIgogI2luY2x1ZGUgIkxheWVyVHJlZUNvbnRleHQuaCIKLSNpbmNsdWRlICJSdW5Mb29w
LmgiCisjaW5jbHVkZSA8V2ViQ29yZS9SdW5Mb29wLmg+CiAjaW5jbHVkZSA8d3RmL093blB0ci5o
PgogI2luY2x1ZGUgPHd0Zi9QYXNzT3duUHRyLmg+CiAKQEAgLTExNiw3ICsxMTYsNyBAQCBwcml2
YXRlOgogICAgIGJvb2wgbV9pc0JhY2tpbmdTdG9yZURpc2NhcmRhYmxlOwogICAgIE93blB0cjxC
YWNraW5nU3RvcmU+IG1fYmFja2luZ1N0b3JlOwogCi0gICAgUnVuTG9vcDo6VGltZXI8RHJhd2lu
Z0FyZWFQcm94eUltcGw+IG1fZGlzY2FyZEJhY2tpbmdTdG9yZVRpbWVyOworICAgIFdlYkNvcmU6
OlJ1bkxvb3A6OlRpbWVyPERyYXdpbmdBcmVhUHJveHlJbXBsPiBtX2Rpc2NhcmRCYWNraW5nU3Rv
cmVUaW1lcjsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL0xhdW5jaGVyL1RocmVhZExhdW5jaGVyLmNwcCBiL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9MYXVuY2hlci9UaHJlYWRMYXVuY2hlci5jcHAKaW5kZXggM2MwZmJm
MTYwY2M3NmU2MDE4NDE1ZDZkM2IzNGM2OTYxNjE2YmEwNC4uZjM3YTVkM2EyNzE1YWExNTc4MGRm
ZGFmZTFjNGE0YzVlNGQwZGU4NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L0xhdW5jaGVyL1RocmVhZExhdW5jaGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvTGF1bmNoZXIvVGhyZWFkTGF1bmNoZXIuY3BwCkBAIC0yNiw3ICsyNiw5IEBACiAjaW5jbHVk
ZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiVGhyZWFkTGF1bmNoZXIuaCIKIAotI2luY2x1ZGUgIlJ1
bkxvb3AuaCIKKyNpbmNsdWRlIDxXZWJDb3JlL1J1bkxvb3AuaD4KKwordXNpbmcgbmFtZXNwYWNl
IFdlYkNvcmU7CiAKIG5hbWVzcGFjZSBXZWJLaXQgewogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvTGF1bmNoZXIvZ3RrL1Byb2Nlc3NMYXVuY2hlckd0ay5jcHAgYi9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvTGF1bmNoZXIvZ3RrL1Byb2Nlc3NMYXVuY2hlckd0ay5jcHAK
aW5kZXggYzYzNDVhNmM2OTI1N2VlMDNmZTU4M2M5ZjViOGNiYjBlNTY0ZjhmNC4uOTRjYWQ1ZmM0
NDgyMGRhMTk4ZGE4NzFjY2JkNmZhNDdlNDM4OWIyYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL0xhdW5jaGVyL2d0ay9Qcm9jZXNzTGF1bmNoZXJHdGsuY3BwCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9MYXVuY2hlci9ndGsvUHJvY2Vzc0xhdW5jaGVyR3RrLmNw
cApAQCAtMjgsMTkgKzI4LDIwIEBACiAjaW5jbHVkZSAiUHJvY2Vzc0xhdW5jaGVyLmgiCiAKICNp
bmNsdWRlICJDb25uZWN0aW9uLmgiCi0jaW5jbHVkZSAiUnVuTG9vcC5oIgogI2luY2x1ZGUgPFdl
YkNvcmUvRmlsZVN5c3RlbS5oPgogI2luY2x1ZGUgPFdlYkNvcmUvUmVzb3VyY2VIYW5kbGUuaD4K
KyNpbmNsdWRlIDxXZWJDb3JlL1J1bkxvb3AuaD4KICNpbmNsdWRlIDxlcnJuby5oPgogI2luY2x1
ZGUgPGxvY2FsZS5oPgotI2lmIE9TKExJTlVYKQotI2luY2x1ZGUgPHN5cy9wcmN0bC5oPgotI2Vu
ZGlmCiAjaW5jbHVkZSA8d3RmL3RleHQvQ1N0cmluZy5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L1dU
RlN0cmluZy5oPgogI2luY2x1ZGUgPHd0Zi9nb2JqZWN0L0dPd25QdHIuaD4KICNpbmNsdWRlIDx3
dGYvZ29iamVjdC9HbGliVXRpbGl0aWVzLmg+CiAKKyNpZiBPUyhMSU5VWCkKKyNpbmNsdWRlIDxz
eXMvcHJjdGwuaD4KKyNlbmRpZgorCiAjaWZkZWYgU09DS19TRVFQQUNLRVQKICNkZWZpbmUgU09D
S0VUX1RZUEUgU09DS19TRVFQQUNLRVQKICNlbHNlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvTGF1bmNoZXIvbWFjL1Byb2Nlc3NMYXVuY2hlck1hYy5tbSBiL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9MYXVuY2hlci9tYWMvUHJvY2Vzc0xhdW5jaGVyTWFjLm1tCmluZGV4
IGM3MGY2MmVkZmJjZjg3YzZhYjI4YWU2YmM3MmM0YWMyNzhkN2U5NzQuLmRjODM5Yzg0ZjVmMzNm
YmFmMGRhOTYwZjE1NzdhOGQ2Njg1MGY5Y2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9MYXVuY2hlci9tYWMvUHJvY2Vzc0xhdW5jaGVyTWFjLm1tCisrKyBiL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9MYXVuY2hlci9tYWMvUHJvY2Vzc0xhdW5jaGVyTWFjLm1tCkBAIC0y
OCw5ICsyOCw5IEBACiAKICNpbXBvcnQgIkR5bmFtaWNMaW5rZXJFbnZpcm9ubWVudEV4dHJhY3Rv
ci5oIgogI2ltcG9ydCAiRW52aXJvbm1lbnRWYXJpYWJsZXMuaCIKLSNpbXBvcnQgIlJ1bkxvb3Au
aCIKICNpbXBvcnQgIldlYlByb2Nlc3MuaCIKICNpbXBvcnQgIldlYktpdFN5c3RlbUludGVyZmFj
ZS5oIgorI2ltcG9ydCA8V2ViQ29yZS9SdW5Mb29wLmg+CiAjaW1wb3J0IDxjcnRfZXh0ZXJucy5o
PgogI2ltcG9ydCA8bWFjaC1vL2R5bGQuaD4KICNpbXBvcnQgPG1hY2gvbWFjaGluZS5oPgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0xhdW5jaGVyL21hYy9UaHJlYWRMYXVu
Y2hlck1hYy5tbSBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9MYXVuY2hlci9tYWMvVGhyZWFk
TGF1bmNoZXJNYWMubW0KaW5kZXggMWM3NGI3ZDI4N2FmOWJhNjU5MmM3ZGYzOWIyYTA1MzE0MGYz
ZWYwMy4uZGQ1M2IzZWYxNGU5OTQwMTQzYWJjYTMxYmE2MjdjOWFlYzE4Mjc3MCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0xhdW5jaGVyL21hYy9UaHJlYWRMYXVuY2hlck1h
Yy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvTGF1bmNoZXIvbWFjL1RocmVhZExh
dW5jaGVyTWFjLm1tCkBAIC0yNiwxMyArMjYsMTUgQEAKICNpbXBvcnQgImNvbmZpZy5oIgogI2lt
cG9ydCAiVGhyZWFkTGF1bmNoZXIuaCIKIAotI2ltcG9ydCAiUnVuTG9vcC5oIgogI2ltcG9ydCAi
V2ViUHJvY2Vzcy5oIgogI2ltcG9ydCAiV2ViU3lzdGVtSW50ZXJmYWNlLmgiCiAjaW1wb3J0IDxy
dW50aW1lL0luaXRpYWxpemVUaHJlYWRpbmcuaD4KKyNpbXBvcnQgPFdlYkNvcmUvUnVuTG9vcC5o
PgogI2ltcG9ydCA8d3RmL01haW5UaHJlYWQuaD4KICNpbXBvcnQgPHd0Zi9UaHJlYWRpbmcuaD4K
IAordXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CisKIG5hbWVzcGFjZSBXZWJLaXQgewogCiBzdGF0
aWMgdm9pZCogd2ViVGhyZWFkQm9keSh2b2lkKiBjb250ZXh0KQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL0xhdW5jaGVyL3F0L1Byb2Nlc3NMYXVuY2hlclF0LmNwcCBiL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9MYXVuY2hlci9xdC9Qcm9jZXNzTGF1bmNoZXJRdC5jcHAK
aW5kZXggODM3ZjU5YmFmMWI1ZmY1YTE2NTQ1ZjY1OTA3ZjZhZDM1MDQwMTAxZC4uOGU4MjYyMDYz
NjdlZWQ4ZWIxYzI1Y2UyZjRiNDU2NGIwOGY3NGEwOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL0xhdW5jaGVyL3F0L1Byb2Nlc3NMYXVuY2hlclF0LmNwcAorKysgYi9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvTGF1bmNoZXIvcXQvUHJvY2Vzc0xhdW5jaGVyUXQuY3BwCkBA
IC0yOCw3ICsyOCw2IEBACiAjaW5jbHVkZSAiUHJvY2Vzc0xhdW5jaGVyLmgiCiAKICNpbmNsdWRl
ICJDb25uZWN0aW9uLmgiCi0jaW5jbHVkZSAiUnVuTG9vcC5oIgogI2luY2x1ZGUgIldlYlByb2Nl
c3MuaCIKICNpbmNsdWRlIDxRQ29yZUFwcGxpY2F0aW9uPgogI2luY2x1ZGUgPFFEZWJ1Zz4KQEAg
LTM5LDYgKzM4LDcgQEAKICNpbmNsdWRlIDxRU3RyaW5nPgogI2luY2x1ZGUgPFF0Q29yZS9xZ2xv
YmFsLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9Ob3RJbXBsZW1lbnRlZC5oPgorI2luY2x1ZGUgPFdl
YkNvcmUvUnVuTG9vcC5oPgogI2luY2x1ZGUgPGVycm5vLmg+CiAjaW5jbHVkZSA8ZmNudGwuaD4K
ICNpbmNsdWRlIDxydW50aW1lL0luaXRpYWxpemVUaHJlYWRpbmcuaD4KQEAgLTUwLDYgKzUwLDcg
QEAKICNpbmNsdWRlIDx3dGYvUGFzc1JlZlB0ci5oPgogI2luY2x1ZGUgPHd0Zi9UaHJlYWRpbmcu
aD4KICNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KKwogI2lmIGRlZmluZWQoUV9PU19M
SU5VWCkKICNpbmNsdWRlIDxzeXMvcHJjdGwuaD4KICNpbmNsdWRlIDxzaWduYWwuaD4KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9MYXVuY2hlci9xdC9UaHJlYWRMYXVuY2hl
clF0LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9MYXVuY2hlci9xdC9UaHJlYWRMYXVu
Y2hlclF0LmNwcAppbmRleCA3Yjk1Y2EwNDk5YTc4ODRhY2YwOGZjNWI3NzUyY2Y2ZmEzZjE5ZjQx
Li4xZDBjYWYzYWVjNDdlNzg4NmE4M2I4MGVlNTljYzIxNDhmMmZiNThiIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvTGF1bmNoZXIvcXQvVGhyZWFkTGF1bmNoZXJRdC5jcHAK
KysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0xhdW5jaGVyL3F0L1RocmVhZExhdW5jaGVy
UXQuY3BwCkBAIC0yNyw4ICsyNyw4IEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAi
VGhyZWFkTGF1bmNoZXIuaCIKIAotI2luY2x1ZGUgIlJ1bkxvb3AuaCIKICNpbmNsdWRlICJXZWJQ
cm9jZXNzLmgiCisjaW5jbHVkZSA8V2ViQ29yZS9SdW5Mb29wLmg+CiAjaW5jbHVkZSA8cnVudGlt
ZS9Jbml0aWFsaXplVGhyZWFkaW5nLmg+CiAjaW5jbHVkZSA8d3RmL01haW5UaHJlYWQuaD4KICNp
bmNsdWRlIDx3dGYvVGhyZWFkaW5nLmg+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvTGF1bmNoZXIvd2luL1Byb2Nlc3NMYXVuY2hlcldpbi5jcHAgYi9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvTGF1bmNoZXIvd2luL1Byb2Nlc3NMYXVuY2hlcldpbi5jcHAKaW5kZXggZDUy
NmMwMzA3OGQ1N2NiYWRmYTI4OTU4NTE2MDg2Mzc4NWUwNTU0Ni4uN2RlNzgyZjY4ZWRlMjY0YzA5
ZGFjNWNhNjU5YmM3OGNmM2MxNDI4OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL0xhdW5jaGVyL3dpbi9Qcm9jZXNzTGF1bmNoZXJXaW4uY3BwCisrKyBiL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9MYXVuY2hlci93aW4vUHJvY2Vzc0xhdW5jaGVyV2luLmNwcApAQCAtMjcs
NyArMjcsNyBAQAogI2luY2x1ZGUgIlByb2Nlc3NMYXVuY2hlci5oIgogCiAjaW5jbHVkZSAiQ29u
bmVjdGlvbi5oIgotI2luY2x1ZGUgIlJ1bkxvb3AuaCIKKyNpbmNsdWRlIDxXZWJDb3JlL1J1bkxv
b3AuaD4KICNpbmNsdWRlIDxzaGx3YXBpLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5n
Lmg+CiAKQEAgLTQzLDYgKzQzLDggQEAgY29uc3QgTFBDV1NUUiB3ZWJLaXRETExOYW1lID0gTCJX
ZWJLaXRfZGVidWcuZGxsIjsKIGNvbnN0IExQQ1dTVFIgd2ViS2l0RExMTmFtZSA9IEwiV2ViS2l0
LmRsbCI7CiAjZW5kaWYKIAordXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CisKIG5hbWVzcGFjZSBX
ZWJLaXQgewogCiB2b2lkIFByb2Nlc3NMYXVuY2hlcjo6bGF1bmNoUHJvY2VzcygpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvTGF1bmNoZXIvd2luL1RocmVhZExhdW5jaGVy
V2luLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9MYXVuY2hlci93aW4vVGhyZWFkTGF1
bmNoZXJXaW4uY3BwCmluZGV4IDI1OTY5OThlYTIzOTIwYTEzZDk1ZTFmZWI3Y2ZhMmJlYzFkNTlj
YmQuLmY5ZDFjMDQ4MWQxZjAzNWIxY2YwZTlkZjJjM2Y0YzMyYzAwMzFjMjkgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9MYXVuY2hlci93aW4vVGhyZWFkTGF1bmNoZXJXaW4u
Y3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9MYXVuY2hlci93aW4vVGhyZWFkTGF1
bmNoZXJXaW4uY3BwCkBAIC0yNiw4ICsyNiw4IEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5j
bHVkZSAiVGhyZWFkTGF1bmNoZXIuaCIKIAotI2luY2x1ZGUgIlJ1bkxvb3AuaCIKICNpbmNsdWRl
ICJXZWJQcm9jZXNzLmgiCisjaW5jbHVkZSA8V2ViQ29yZS9SdW5Mb29wLmg+CiAjaW5jbHVkZSA8
cnVudGltZS9Jbml0aWFsaXplVGhyZWFkaW5nLmg+CiAjaW5jbHVkZSA8d3RmL01haW5UaHJlYWQu
aD4KICNpbmNsdWRlIDx3dGYvVGhyZWFkaW5nLmg+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvTGF5ZXJUcmVlSG9zdFByb3h5LmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvTGF5ZXJUcmVlSG9zdFByb3h5LmgKaW5kZXggODlkNWZiZThmZTE1MzZlYjg5ZDcwYjNmY2Rj
ODFlY2NhMjMzYjcyMS4uNDZjNGQxNGU0MTU5MDEwMmU2MjZhOTMxNTc5Mzk5NzljMDMxMDQ2NSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0xheWVyVHJlZUhvc3RQcm94eS5o
CisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9MYXllclRyZWVIb3N0UHJveHkuaApAQCAt
MjQsMTIgKzI0LDEyIEBACiAjaW5jbHVkZSAiRHJhd2luZ0FyZWFQcm94eS5oIgogI2luY2x1ZGUg
Ik1lc3NhZ2VRdWV1ZS5oIgogI2luY2x1ZGUgIlJlZ2lvbi5oIgotI2luY2x1ZGUgIlJ1bkxvb3Au
aCIKICNpbmNsdWRlICJXZWJMYXllclRyZWVJbmZvLmgiCiAjaW5jbHVkZSA8V2ViQ29yZS9HcmFw
aGljc0NvbnRleHQuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0dyYXBoaWNzTGF5ZXIuaD4KICNpbmNs
dWRlIDxXZWJDb3JlL0ludFJlY3QuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0ludFNpemUuaD4KKyNp
bmNsdWRlIDxXZWJDb3JlL1J1bkxvb3AuaD4KICNpbmNsdWRlIDx3dGYvSGFzaFNldC5oPgogCiAj
aWYgVVNFKFRFWFRVUkVfTUFQUEVSKQpAQCAtODIsNyArODIsNyBAQCBwcm90ZWN0ZWQ6CiAgICAg
dmlydHVhbCBib29sIHNob3dSZXBhaW50Q291bnRlcigpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9
CiAgICAgdm9pZCBwYWludENvbnRlbnRzKGNvbnN0IFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXIqLCBX
ZWJDb3JlOjpHcmFwaGljc0NvbnRleHQmLCBXZWJDb3JlOjpHcmFwaGljc0xheWVyUGFpbnRpbmdQ
aGFzZSwgY29uc3QgV2ViQ29yZTo6SW50UmVjdCYpIHsgfQogCi0gICAgUnVuTG9vcDo6VGltZXI8
TGF5ZXJUcmVlSG9zdFByb3h5PiBtX2FuaW1hdGlvblRpbWVyOworICAgIFdlYkNvcmU6OlJ1bkxv
b3A6OlRpbWVyPExheWVyVHJlZUhvc3RQcm94eT4gbV9hbmltYXRpb25UaW1lcjsKICAgICBEcmF3
aW5nQXJlYVByb3h5KiBtX2RyYXdpbmdBcmVhUHJveHk7CiAKICAgICB0eXBlZGVmIEhhc2hNYXA8
V2ViTGF5ZXJJRCwgV2ViQ29yZTo6R3JhcGhpY3NMYXllcio+IExheWVyTWFwOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1BsdWdpbnMvUGx1Z2luUHJvY2Vzc1Byb3h5LmNw
cCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9QbHVnaW5zL1BsdWdpblByb2Nlc3NQcm94eS5j
cHAKaW5kZXggNDFjN2E0N2NiOTAwNjRkYTljYzA5OTMyNGU5ZTgwZDE2ZTgxNjRjMS4uNTQ4MmQ4
NGQyOWY2NDA5MDM5NmYyOTUyMTA3MGU1Y2VmZDZkZmIwMCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL1BsdWdpbnMvUGx1Z2luUHJvY2Vzc1Byb3h5LmNwcAorKysgYi9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvUGx1Z2lucy9QbHVnaW5Qcm9jZXNzUHJveHkuY3BwCkBAIC0z
MSwxOCArMzEsMjAgQEAKICNpbmNsdWRlICJQbHVnaW5Qcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJz
LmgiCiAjaW5jbHVkZSAiUGx1Z2luUHJvY2Vzc01hbmFnZXIuaCIKICNpbmNsdWRlICJQbHVnaW5Q
cm9jZXNzTWVzc2FnZXMuaCIKLSNpbmNsdWRlICJSdW5Mb29wLmgiCiAjaW5jbHVkZSAiV2ViQ29u
dGV4dC5oIgogI2luY2x1ZGUgIldlYkNvcmVBcmd1bWVudENvZGVycy5oIgogI2luY2x1ZGUgIldl
YlBsdWdpblNpdGVEYXRhTWFuYWdlci5oIgogI2luY2x1ZGUgIldlYlByb2Nlc3NNZXNzYWdlcy5o
IgogI2luY2x1ZGUgIldlYlByb2Nlc3NQcm94eS5oIgogI2luY2x1ZGUgPFdlYkNvcmUvTm90SW1w
bGVtZW50ZWQuaD4KKyNpbXBvcnQgPFdlYkNvcmUvUnVuTG9vcC5oPgogCiAjaWYgUExBVEZPUk0o
TUFDKQogI2luY2x1ZGUgIk1hY2hQb3J0LmgiCiAjZW5kaWYKIAordXNpbmcgbmFtZXNwYWNlIFdl
YkNvcmU7CisKIG5hbWVzcGFjZSBXZWJLaXQgewogCiBQYXNzT3duUHRyPFBsdWdpblByb2Nlc3NQ
cm94eT4gUGx1Z2luUHJvY2Vzc1Byb3h5OjpjcmVhdGUoUGx1Z2luUHJvY2Vzc01hbmFnZXIqIFBs
dWdpblByb2Nlc3NNYW5hZ2VyLCBjb25zdCBQbHVnaW5Nb2R1bGVJbmZvJiBwbHVnaW5JbmZvKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1Jlc3BvbnNpdmVuZXNzVGltZXIu
Y3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1Jlc3BvbnNpdmVuZXNzVGltZXIuY3BwCmlu
ZGV4IDA1N2NjNzQzNTRhMTRlNTdkYzJmZTFmM2I4Njc0MzNhY2MzN2NkMDEuLjg3ODM4Y2EyNjI4
MDc3YWI4N2M4MTJmMjBiZGRlYTgyMjEwZTFiNmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9SZXNwb25zaXZlbmVzc1RpbWVyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvUmVzcG9uc2l2ZW5lc3NUaW1lci5jcHAKQEAgLTI2LDYgKzI2LDggQEAKICNpbmNs
dWRlICJjb25maWcuaCIKICNpbmNsdWRlICJSZXNwb25zaXZlbmVzc1RpbWVyLmgiCiAKK3VzaW5n
IG5hbWVzcGFjZSBXZWJDb3JlOworCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAogc3RhdGljIGNvbnN0
IGRvdWJsZSBrUmVzcG9uc2l2ZW5lc3NUaW1lb3V0ID0gMzsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9SZXNwb25zaXZlbmVzc1RpbWVyLmggYi9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvUmVzcG9uc2l2ZW5lc3NUaW1lci5oCmluZGV4IDY1OTE5MTYxMmY4MDFiMTRkOWQ4
ODEyMmFjYjRlYjM4YjVlYTZlNWIuLjM2NzMzMTUxZmM4N2Y2N2QxNzJhMjgzZmUwMzBhNjg2ZTdl
YjQzYTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9SZXNwb25zaXZlbmVz
c1RpbWVyLmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1Jlc3BvbnNpdmVuZXNzVGlt
ZXIuaApAQCAtMjYsNyArMjYsNyBAQAogI2lmbmRlZiBSZXNwb25zaXZlbmVzc1RpbWVyX2gKICNk
ZWZpbmUgUmVzcG9uc2l2ZW5lc3NUaW1lcl9oCiAKLSNpbmNsdWRlICJSdW5Mb29wLmgiCisjaW5j
bHVkZSA8V2ViQ29yZS9SdW5Mb29wLmg+CiAKIG5hbWVzcGFjZSBXZWJLaXQgewogCkBAIC01NSw3
ICs1NSw3IEBAIHByaXZhdGU6CiAgICAgUmVzcG9uc2l2ZW5lc3NUaW1lcjo6Q2xpZW50KiBtX2Ns
aWVudDsKICAgICBib29sIG1faXNSZXNwb25zaXZlOwogCi0gICAgUnVuTG9vcDo6VGltZXI8UmVz
cG9uc2l2ZW5lc3NUaW1lcj4gbV90aW1lcjsKKyAgICBXZWJDb3JlOjpSdW5Mb29wOjpUaW1lcjxS
ZXNwb25zaXZlbmVzc1RpbWVyPiBtX3RpbWVyOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvVGlsZWREcmF3aW5nQXJlYVBy
b3h5LmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvVGlsZWREcmF3aW5nQXJlYVByb3h5LmgK
aW5kZXggODU1OTc3ZGU5YzI1MDI3ZmFjMmIyZDYyNThlZDNkNTQ4MzY3MGJiMS4uMGZjY2NmNGUx
ODU2ZmRlNTczYzJkNjgyM2JkNmI5NzMwZGI2ZDQxZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL1RpbGVkRHJhd2luZ0FyZWFQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9UaWxlZERyYXdpbmdBcmVhUHJveHkuaApAQCAtMzEsMTAgKzMxLDkgQEAKICNp
bmNsdWRlICJEcmF3aW5nQXJlYVByb3h5LmgiCiAjaW5jbHVkZSA8V2ViQ29yZS9HcmFwaGljc0Nv
bnRleHQuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0ludFJlY3QuaD4KKyNpbmNsdWRlIDxXZWJDb3Jl
L1J1bkxvb3AuaD4KICNpbmNsdWRlIDx3dGYvSGFzaFNldC5oPgogCi0jaW5jbHVkZSAiUnVuTG9v
cC5oIgotCiAjaWYgUExBVEZPUk0oTUFDKQogI2luY2x1ZGUgPHd0Zi9SZXRhaW5QdHIuaD4KICNp
ZmRlZiBfX09CSkNfXwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1Zpc2l0
ZWRMaW5rUHJvdmlkZXIuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9WaXNpdGVkTGlua1By
b3ZpZGVyLmgKaW5kZXggYTQyOGQ1YjgzNmI4MGFhMzJlZGM1MzdjZTBkYTA2NjdmODY5NmFiMS4u
NDYxYzVhYzk0ZTdjMmM0ZTYwYjI5MmUyNThiYmQ0M2FkZDMyMDlmMSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL1Zpc2l0ZWRMaW5rUHJvdmlkZXIuaAorKysgYi9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvVmlzaXRlZExpbmtQcm92aWRlci5oCkBAIC0yNiw5ICsyNiw5IEBA
CiAjaWZuZGVmIFZpc2l0ZWRMaW5rUHJvdmlkZXJfaAogI2RlZmluZSBWaXNpdGVkTGlua1Byb3Zp
ZGVyX2gKIAotI2luY2x1ZGUgIlJ1bkxvb3AuaCIKICNpbmNsdWRlICJWaXNpdGVkTGlua1RhYmxl
LmgiCiAjaW5jbHVkZSA8V2ViQ29yZS9MaW5rSGFzaC5oPgorI2luY2x1ZGUgPFdlYkNvcmUvUnVu
TG9vcC5oPgogI2luY2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+CiAjaW5jbHVkZSA8d3RmL0hhc2hTZXQu
aD4KIApAQCAtNTgsNyArNTgsNyBAQCBwcml2YXRlOgogICAgIFZpc2l0ZWRMaW5rVGFibGUgbV90
YWJsZTsKIAogICAgIEhhc2hTZXQ8V2ViQ29yZTo6TGlua0hhc2gsIFdlYkNvcmU6OkxpbmtIYXNo
SGFzaD4gbV9wZW5kaW5nVmlzaXRlZExpbmtzOwotICAgIFJ1bkxvb3A6OlRpbWVyPFZpc2l0ZWRM
aW5rUHJvdmlkZXI+IG1fcGVuZGluZ1Zpc2l0ZWRMaW5rc1RpbWVyOworICAgIFdlYkNvcmU6OlJ1
bkxvb3A6OlRpbWVyPFZpc2l0ZWRMaW5rUHJvdmlkZXI+IG1fcGVuZGluZ1Zpc2l0ZWRMaW5rc1Rp
bWVyOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvV2ViQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5jcHAgYi9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvV2ViQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5jcHAKaW5kZXggYjFkMTAz
ZmJjZTFkMmY1OWQxMjllZmZlMjFkZjA4Mjk2OGNiYjA1Zi4uYmU4MTRjMGE5YWQyMTYwZGYzNjIy
OGNiYTcxNjE4MzNjOTQ3YWNjNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L1dlYkNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9XZWJDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmNwcApAQCAtMzAsNiArMzAsOCBAQAogI2lu
Y2x1ZGUgIldlYkNvbnRleHRVc2VyTWVzc2FnZUNvZGVycy5oIgogI2luY2x1ZGUgIldlYlByb2Nl
c3NQcm94eS5oIgogCit1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKKwogbmFtZXNwYWNlIFdlYktp
dCB7CiAKIFBhc3NSZWZQdHI8V2ViQ29ubmVjdGlvblRvV2ViUHJvY2Vzcz4gV2ViQ29ubmVjdGlv
blRvV2ViUHJvY2Vzczo6Y3JlYXRlKFdlYlByb2Nlc3NQcm94eSogcHJvY2VzcywgQ29yZUlQQzo6
Q29ubmVjdGlvbjo6SWRlbnRpZmllciBjb25uZWN0aW9uSWRlbnRpZmllciwgUnVuTG9vcCogcnVu
TG9vcCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJDb25uZWN0aW9u
VG9XZWJQcm9jZXNzLmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViQ29ubmVjdGlvblRv
V2ViUHJvY2Vzcy5oCmluZGV4IGI5ZDU4ZjJjNzAzMGI2MjU3OTdiMDNhNjg1ZjE4ZjllNzRiNmNl
Y2MuLmY0OTYyZTI2Y2MwMzkwNmQ1NjdmMTdiYWE2ZGZhMDExZDU5NTM4M2YgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmgKKysr
IGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuaApA
QCAtMzUsMTQgKzM1LDE0IEBAIGNsYXNzIFdlYlByb2Nlc3NQcm94eTsKIAogY2xhc3MgV2ViQ29u
bmVjdGlvblRvV2ViUHJvY2VzcyA6IHB1YmxpYyBXZWJDb25uZWN0aW9uLCBDb3JlSVBDOjpDb25u
ZWN0aW9uOjpDbGllbnQgewogcHVibGljOgotICAgIHN0YXRpYyBQYXNzUmVmUHRyPFdlYkNvbm5l
Y3Rpb25Ub1dlYlByb2Nlc3M+IGNyZWF0ZShXZWJQcm9jZXNzUHJveHkqLCBDb3JlSVBDOjpDb25u
ZWN0aW9uOjpJZGVudGlmaWVyLCBSdW5Mb29wKik7CisgICAgc3RhdGljIFBhc3NSZWZQdHI8V2Vi
Q29ubmVjdGlvblRvV2ViUHJvY2Vzcz4gY3JlYXRlKFdlYlByb2Nlc3NQcm94eSosIENvcmVJUEM6
OkNvbm5lY3Rpb246OklkZW50aWZpZXIsIFdlYkNvcmU6OlJ1bkxvb3AqKTsKIAogICAgIENvcmVJ
UEM6OkNvbm5lY3Rpb24qIGNvbm5lY3Rpb24oKSB7IHJldHVybiBtX2Nvbm5lY3Rpb24uZ2V0KCk7
IH0KIAogICAgIHZvaWQgaW52YWxpZGF0ZSgpOwogCiBwcml2YXRlOgotICAgIFdlYkNvbm5lY3Rp
b25Ub1dlYlByb2Nlc3MoV2ViUHJvY2Vzc1Byb3h5KiwgQ29yZUlQQzo6Q29ubmVjdGlvbjo6SWRl
bnRpZmllciwgUnVuTG9vcCopOworICAgIFdlYkNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MoV2ViUHJv
Y2Vzc1Byb3h5KiwgQ29yZUlQQzo6Q29ubmVjdGlvbjo6SWRlbnRpZmllciwgV2ViQ29yZTo6UnVu
TG9vcCopOwogCiAgICAgLy8gV2ViQ29ubmVjdGlvbgogICAgIHZpcnR1YWwgdm9pZCBwb3N0TWVz
c2FnZShjb25zdCBTdHJpbmcmLCBBUElPYmplY3QqKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9XZWJDb250ZXh0LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9X
ZWJDb250ZXh0LmNwcAppbmRleCBlNGQxYTVjNDE0NjNhOWI5Mjc0ZGI4OTQ2YmE4Njk3YjQ3ZGFj
NDA0Li4yM2NhNTZiZTZiYTEzOWNhZWE4Y2ZmMDQ0MzQ1MDY4NTUxOGFkNWQyIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViQ29udGV4dC5jcHAKKysrIGIvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL1dlYkNvbnRleHQuY3BwCkBAIC0zMSw3ICszMSw2IEBACiAjaW5jbHVk
ZSAiSW5qZWN0ZWRCdW5kbGVNZXNzYWdlS2luZHMuaCIKICNpbmNsdWRlICJMb2dnaW5nLmgiCiAj
aW5jbHVkZSAiTXV0YWJsZURpY3Rpb25hcnkuaCIKLSNpbmNsdWRlICJSdW5Mb29wLmgiCiAjaW5j
bHVkZSAiU2FuZGJveEV4dGVuc2lvbi5oIgogI2luY2x1ZGUgIlN0YXRpc3RpY3NEYXRhLmgiCiAj
aW5jbHVkZSAiVGV4dENoZWNrZXIuaCIKQEAgLTU4LDYgKzU3LDcgQEAKICNpbmNsdWRlIDxXZWJD
b3JlL0xpbmtIYXNoLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9Mb2dnaW5nLmg+CiAjaW5jbHVkZSA8
V2ViQ29yZS9SZXNvdXJjZVJlcXVlc3QuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL1J1bkxvb3AuaD4K
ICNpbmNsdWRlIDxydW50aW1lL0luaXRpYWxpemVUaHJlYWRpbmcuaD4KICNpbmNsdWRlIDx3dGYv
Q3VycmVudFRpbWUuaD4KICNpbmNsdWRlIDx3dGYvTWFpblRocmVhZC5oPgpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL3dpbi9XZWJWaWV3LmNwcCBiL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy93aW4vV2ViVmlldy5jcHAKaW5kZXggZDQ0ZTI1NTYwZTJlMTU4NTE1YTAyZDNk
MmY5ODM3YTViMTBiNzVlYy4uZTlhM2QwNGIwODljZGM0ZmQxNDA0MmNhNjdjMDg0NTY4Mzg3Yzdm
YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL3dpbi9XZWJWaWV3LmNwcAor
KysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mvd2luL1dlYlZpZXcuY3BwCkBAIC0zMiwxMSAr
MzIsNyBAQAogI2luY2x1ZGUgIk5hdGl2ZVdlYktleWJvYXJkRXZlbnQuaCIKICNpbmNsdWRlICJO
YXRpdmVXZWJNb3VzZUV2ZW50LmgiCiAjaW5jbHVkZSAiTmF0aXZlV2ViV2hlZWxFdmVudC5oIgot
I2luY2x1ZGUgIlJ1bkxvb3AuaCIKICNpbmNsdWRlICJXS0FQSUNhc3QuaCIKLSNpZiBVU0UoQ0cp
Ci0jaW5jbHVkZSAiV0tDQUNGVmlld1dpbmRvdy5oIgotI2VuZGlmCiAjaW5jbHVkZSAiV2ViQ29u
dGV4dC5oIgogI2luY2x1ZGUgIldlYkNvbnRleHRNZW51UHJveHlXaW4uaCIKICNpbmNsdWRlICJX
ZWJFZGl0Q29tbWFuZFByb3h5LmgiCkBAIC00OSwxOCArNDUsMjEgQEAKICNpbmNsdWRlIDxXZWJD
b3JlL0RyYWdTZXNzaW9uLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9FZGl0b3IuaD4KICNpbmNsdWRl
IDxXZWJDb3JlL0Zsb2F0UmVjdC5oPgotI2lmIFVTRShDRykKLSNpbmNsdWRlIDxXZWJDb3JlL0dy
YXBoaWNzQ29udGV4dENHLmg+Ci0jZW5kaWYKICNpbmNsdWRlIDxXZWJDb3JlL0ludFJlY3QuaD4K
ICNpbmNsdWRlIDxXZWJDb3JlL05vdEltcGxlbWVudGVkLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9S
ZWdpb24uaD4KKyNpbmNsdWRlIDxXZWJDb3JlL1J1bkxvb3AuaD4KICNpbmNsdWRlIDxXZWJDb3Jl
L1NvZnRMaW5raW5nLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9XZWJDb3JlSW5zdGFuY2VIYW5kbGUu
aD4KICNpbmNsdWRlIDxXZWJDb3JlL1dpbmRvd01lc3NhZ2VCcm9hZGNhc3Rlci5oPgogI2luY2x1
ZGUgPFdlYkNvcmUvV2luZG93c1RvdWNoLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5n
Lmg+CiAKKyNpZiBVU0UoQ0cpCisjaW5jbHVkZSAiV0tDQUNGVmlld1dpbmRvdy5oIgorI2luY2x1
ZGUgPFdlYkNvcmUvR3JhcGhpY3NDb250ZXh0Q0cuaD4KKyNlbmRpZgorCiAjaWYgRU5BQkxFKEZV
TExTQ1JFRU5fQVBJKQogI2luY2x1ZGUgIldlYkZ1bGxTY3JlZW5NYW5hZ2VyUHJveHkuaCIKICNp
bmNsdWRlIDxXZWJDb3JlL0Z1bGxTY3JlZW5Db250cm9sbGVyLmg+CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0Mi9XZWJLaXQyLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2Vi
S2l0Mi9XZWJLaXQyLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggZjg1MWVkYzc0YTYy
NWU1M2JlNjkzZjBiYTIwZTRlNzNjNGQyZGU4ZC4uMzNhYTgxMzUzZTRiMDg2NTVhYjM1OWFkYjFk
YmQwN2I1ZjhkZmExNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViS2l0Mi54Y29kZXBy
b2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYktpdDIueGNvZGVwcm9q
L3Byb2plY3QucGJ4cHJvagpAQCAtNDY1LDcgKzQ2NSw2IEBACiAJCUI2MzQwM0Y5MTQ5MTBENTcw
MDEwNzBCNSAvKiBBUElPYmplY3QuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gQjYzNDAzRjgxNDkxMEQ1NzAwMTA3MEI1IC8qIEFQSU9iamVjdC5jcHAg
Ki87IH07CiAJCUI4NzhCNjE1MTMzNDI4REMwMDY4ODhFOSAvKiBDb3JyZWN0aW9uUGFuZWwuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEI4NzhCNjEzMTMz
NDI4REMwMDY4ODhFOSAvKiBDb3JyZWN0aW9uUGFuZWwuaCAqLzsgfTsKIAkJQjg3OEI2MTYxMzM0
MjhEQzAwNjg4OEU5IC8qIENvcnJlY3Rpb25QYW5lbC5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEI4NzhCNjE0MTMzNDI4REMwMDY4ODhFOSAvKiBDb3Jy
ZWN0aW9uUGFuZWwubW0gKi87IH07Ci0JCUJDMDA5MkY3MTE1ODM3QTMwMEUwQUUyQSAvKiBSdW5M
b29wTWFjLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
QkMwMDkyRjUxMTU4MzdBMzAwRTBBRTJBIC8qIFJ1bkxvb3BNYWMubW0gKi87IH07CiAJCUJDMDA5
MkY4MTE1ODM3QTMwMEUwQUUyQSAvKiBXb3JrUXVldWVNYWMuY3BwIGluIFNvdXJjZXMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkMwMDkyRjYxMTU4MzdBMzAwRTBBRTJBIC8q
IFdvcmtRdWV1ZU1hYy5jcHAgKi87IH07CiAJCUJDMDMyRDc1MTBGNDM3OEQwMDU4QzE1QSAvKiBX
ZWJDaHJvbWVDbGllbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IEJDMDMyRDYwMTBGNDM3OEQwMDU4QzE1QSAvKiBXZWJDaHJvbWVDbGllbnQuaCAqLzsg
fTsKIAkJQkMwMzJENzcxMEY0Mzc4RDAwNThDMTVBIC8qIFdlYkNvbnRleHRNZW51Q2xpZW50Lmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCQzAzMkQ2MjEw
RjQzNzhEMDA1OEMxNUEgLyogV2ViQ29udGV4dE1lbnVDbGllbnQuaCAqLzsgfTsKQEAgLTU1OSw4
ICs1NTgsNiBAQAogCQlCQzJEMDIxNzEyQUM0MUNCMDBFNzMyQTMgLyogU2FtZURvY3VtZW50TmF2
aWdhdGlvblR5cGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IEJDMkQwMjE2MTJBQzQxQ0IwMEU3MzJBMyAvKiBTYW1lRG9jdW1lbnROYXZpZ2F0aW9uVHlw
ZS5oICovOyB9OwogCQlCQzJEMDIxOTEyQUM0MjZDMDBFNzMyQTMgLyogV0tQYWdlTG9hZFR5cGVz
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCQzJEMDIx
ODEyQUM0MjZDMDBFNzMyQTMgLyogV0tQYWdlTG9hZFR5cGVzLmggKi87IHNldHRpbmdzID0ge0FU
VFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJQkMyREZCQTMxMkE3NjFBNTAwRTczMkEz
IC8qIFdlYlByZWZlcmVuY2VzQ0YuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gQkMyREZCQTIxMkE3NjFBNTAwRTczMkEzIC8qIFdlYlByZWZlcmVuY2Vz
Q0YuY3BwICovOyB9OwotCQlCQzJFNkU4NzExNDE5NzE1MDBBNjNCMUUgLyogUnVuTG9vcC5jcHAg
aW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCQzJFNkU3NzEx
NDE5NzBDMDBBNjNCMUUgLyogUnVuTG9vcC5jcHAgKi87IH07Ci0JCUJDMkU2RTg4MTE0MTk3MTUw
MEE2M0IxRSAvKiBSdW5Mb29wLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSBCQzJFNkU3ODExNDE5NzBDMDBBNjNCMUUgLyogUnVuTG9vcC5oICovOyB9Owog
CQlCQzJFNkU4RDExNDE5NzE1MDBBNjNCMUUgLyogV29ya1F1ZXVlLmNwcCBpbiBTb3VyY2VzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDMkU2RTdEMTE0MTk3MEMwMEE2M0Ix
RSAvKiBXb3JrUXVldWUuY3BwICovOyB9OwogCQlCQzJFNkU4RTExNDE5NzE1MDBBNjNCMUUgLyog
V29ya1F1ZXVlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSBCQzJFNkU3RTExNDE5NzBDMDBBNjNCMUUgLyogV29ya1F1ZXVlLmggKi87IH07CiAJCUJDMzA2
NUM0MTI1OTJGODkwMEU3MTI3OCAvKiBXZWJQcm9jZXNzTWFjLm1tIGluIFNvdXJjZXMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkMzMDY1QzMxMjU5MkY4OTAwRTcxMjc4IC8q
IFdlYlByb2Nlc3NNYWMubW0gKi87IH07CkBAIC0xNDgzLDcgKzE0ODAsNiBAQAogCQlCNjM0MDNG
ODE0OTEwRDU3MDAxMDcwQjUgLyogQVBJT2JqZWN0LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Y3BwLmNwcDsgcGF0aCA9IEFQSU9iamVjdC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCUI4NzhCNjEzMTMzNDI4REMwMDY4ODhFOSAvKiBDb3JyZWN0aW9uUGFuZWwuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQ29ycmVjdGlvblBhbmVsLmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCUI4NzhCNjE0MTMzNDI4REMwMDY4ODhFOSAvKiBDb3JyZWN0aW9u
UGFuZWwubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBDb3JyZWN0
aW9uUGFuZWwubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCUJDMDA5MkY1MTE1ODM3
QTMwMEUwQUUyQSAvKiBSdW5Mb29wTWFjLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2Jq
Y3BwOyBwYXRoID0gUnVuTG9vcE1hYy5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
QkMwMDkyRjYxMTU4MzdBMzAwRTBBRTJBIC8qIFdvcmtRdWV1ZU1hYy5jcHAgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXb3JrUXVldWVNYWMuY3BwOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQlCQzAzMkQ2MDEwRjQzNzhEMDA1OEMxNUEgLyogV2ViQ2hyb21lQ2xp
ZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYkNocm9tZUNsaWVudC5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlCQzAzMkQ2MjEwRjQzNzhEMDA1OEMxNUEg
LyogV2ViQ29udGV4dE1lbnVDbGllbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gV2ViQ29udGV4dE1lbnVDbGllbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAg
LTE1ODMsOCArMTU3OSw2IEBACiAJCUJDMkQwMjE2MTJBQzQxQ0IwMEU3MzJBMyAvKiBTYW1lRG9j
dW1lbnROYXZpZ2F0aW9uVHlwZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBT
YW1lRG9jdW1lbnROYXZpZ2F0aW9uVHlwZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQlCQzJEMDIxODEyQUM0MjZDMDBFNzMyQTMgLyogV0tQYWdlTG9hZFR5cGVzLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdLUGFnZUxvYWRUeXBlcy5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQlCQzJERkJBMjEyQTc2MUE1MDBFNzMyQTMgLyogV2ViUHJlZmVyZW5j
ZXNDRi5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBXZWJQcmVmZXJl
bmNlc0NGLmNwcDsgcGF0aCA9IGNmL1dlYlByZWZlcmVuY2VzQ0YuY3BwOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwotCQlCQzJFNkU3NzExNDE5NzBDMDBBNjNCMUUgLyogUnVuTG9vcC5jcHAg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBSdW5Mb29wLmNwcDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJQkMyRTZFNzgxMTQxOTcwQzAwQTYzQjFFIC8qIFJ1bkxv
b3AuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUnVuTG9vcC5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQlCQzJFNkU3RDExNDE5NzBDMDBBNjNCMUUgLyogV29ya1F1
ZXVlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdvcmtRdWV1ZS5j
cHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUJDMkU2RTdFMTE0MTk3MEMwMEE2M0Ix
RSAvKiBXb3JrUXVldWUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV29ya1F1
ZXVlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUJDMzA2NUMzMTI1OTJGODkwMEU3
MTI3OCAvKiBXZWJQcm9jZXNzTWFjLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3Bw
OyBwYXRoID0gV2ViUHJvY2Vzc01hYy5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAg
LTIyNjAsNyArMjI1NCw2IEBACiAJCQkJMUEyNEI1RjAxMUY1MzFFODAwQzM4MjY5IC8qIE1hY2hV
dGlsaXRpZXMuY3BwICovLAogCQkJCTFBMjRCNUYxMTFGNTMxRTgwMEMzODI2OSAvKiBNYWNoVXRp
bGl0aWVzLmggKi8sCiAJCQkJQzBFM0FBNDgxMjA5RTQ1MDAwQTQ5RDAxIC8qIE1vZHVsZU1hYy5t
bSAqLywKLQkJCQlCQzAwOTJGNTExNTgzN0EzMDBFMEFFMkEgLyogUnVuTG9vcE1hYy5tbSAqLywK
IAkJCQkxQTI0QkYzOTEyMDg5NkE2MDBGQkIwNTkgLyogU2hhcmVkTWVtb3J5TWFjLmNwcCAqLywK
IAkJCQlCQzAwOTJGNjExNTgzN0EzMDBFMEFFMkEgLyogV29ya1F1ZXVlTWFjLmNwcCAqLywKIAkJ
CSk7CkBAIC0zMjgyLDggKzMyNzUsNiBAQAogCQkJCUMwRTNBQTQ1MTIwOUUyQkEwMEE0OUQwMSAv
KiBNb2R1bGUuY3BwICovLAogCQkJCUMwRTNBQTQ0MTIwOUUyQkEwMEE0OUQwMSAvKiBNb2R1bGUu
aCAqLywKIAkJCQlCQzg3ODBGQjExNjFDMkI4MDBDQzI3NjggLyogUGxhdGZvcm1Qcm9jZXNzSWRl
bnRpZmllci5oICovLAotCQkJCUJDMkU2RTc3MTE0MTk3MEMwMEE2M0IxRSAvKiBSdW5Mb29wLmNw
cCAqLywKLQkJCQlCQzJFNkU3ODExNDE5NzBDMDBBNjNCMUUgLyogUnVuTG9vcC5oICovLAogCQkJ
CTFBMjRCRUQzMTIwODk0RDEwMEZCQjA1OSAvKiBTaGFyZWRNZW1vcnkuaCAqLywKIAkJCQlCQzJF
NkU3RDExNDE5NzBDMDBBNjNCMUUgLyogV29ya1F1ZXVlLmNwcCAqLywKIAkJCQlCQzJFNkU3RTEx
NDE5NzBDMDBBNjNCMUUgLyogV29ya1F1ZXVlLmggKi8sCkBAIC0zODQ4LDcgKzM4MzksNiBAQAog
CQkJCUJDMUE3QzU4MTEzNkUxOUMwMEZCNzE2NyAvKiBQcm9jZXNzTGF1bmNoZXIuaCBpbiBIZWFk
ZXJzICovLAogCQkJCUJDNTk3MDc1MTE2NTkxRDAwMDU1MUZDQSAvKiBQcm9jZXNzTW9kZWwuaCBp
biBIZWFkZXJzICovLAogCQkJCTFBMzAwNjZFMTExMEY0RjcwMDMxOTM3QyAvKiBSZXNwb25zaXZl
bmVzc1RpbWVyLmggaW4gSGVhZGVycyAqLywKLQkJCQlCQzJFNkU4ODExNDE5NzE1MDBBNjNCMUUg
LyogUnVuTG9vcC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkMyRDAyMTcxMkFDNDFDQjAwRTczMkEz
IC8qIFNhbWVEb2N1bWVudE5hdmlnYXRpb25UeXBlLmggaW4gSGVhZGVycyAqLywKIAkJCQkxQUFC
NEE4RDEyOTZGMEEyMDAyMzk1MkYgLyogU2FuZGJveEV4dGVuc2lvbi5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJNTFEMTMwNTQxMzgyRUFDMDAwMzUxRUREIC8qIFNlY0l0ZW1SZXF1ZXN0RGF0YS5oIGlu
IEhlYWRlcnMgKi8sCkBAIC00NTgxLDggKzQ1NzEsNiBAQAogCQkJCTFBRTExN0Y2MTFEQkIzMDkw
MDk4MTYxNSAvKiBQcm9jZXNzTGF1bmNoZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQkMxMTFC
MUQxMTJGNUZFNjAwMzM3QkFCIC8qIFByb2Nlc3NMYXVuY2hlck1hYy5tbSBpbiBTb3VyY2VzICov
LAogCQkJCUJDMTExQjA5MTEyRjVFM0MwMDMzN0JBQiAvKiBSZXNwb25zaXZlbmVzc1RpbWVyLmNw
cCBpbiBTb3VyY2VzICovLAotCQkJCUJDMkU2RTg3MTE0MTk3MTUwMEE2M0IxRSAvKiBSdW5Mb29w
LmNwcCBpbiBTb3VyY2VzICovLAotCQkJCUJDMDA5MkY3MTE1ODM3QTMwMEUwQUUyQSAvKiBSdW5M
b29wTWFjLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJMUFBQjRBQUExMjk2RjE1NDAwMjM5NTJGIC8q
IFNhbmRib3hFeHRlbnNpb25NYWMubW0gaW4gU291cmNlcyAqLywKIAkJCQk1MUQxMzA1MzEzODJF
QUMwMDAzNTFFREQgLyogU2VjSXRlbVJlcXVlc3REYXRhLmNwcCBpbiBTb3VyY2VzICovLAogCQkJ
CTUxRDEzMDU1MTM4MkVBQzAwMDM1MUVERCAvKiBTZWNJdGVtUmVzcG9uc2VEYXRhLmNwcCBpbiBT
b3VyY2VzICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5z
L05ldHNjYXBlL05QUnVudGltZU9iamVjdE1hcC5oIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy9QbHVnaW5zL05ldHNjYXBlL05QUnVudGltZU9iamVjdE1hcC5oCmluZGV4IGJlZjcwMWJlZTc5
NTY4MjZjODg2MDQyZTBlNzgyMmMzNGU4NDU3ZjIuLmRlZmZkNTQzMTdkMTdjNTE4NzViMWU3MmY5
NTk2ODU0NjcwYzAzNmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1
Z2lucy9OZXRzY2FwZS9OUFJ1bnRpbWVPYmplY3RNYXAuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9X
ZWJQcm9jZXNzL1BsdWdpbnMvTmV0c2NhcGUvTlBSdW50aW1lT2JqZWN0TWFwLmgKQEAgLTI2LDkg
KzI2LDcgQEAKICNpZm5kZWYgTlBKU09iamVjdFdyYXBwZXJNYXBfaAogI2RlZmluZSBOUEpTT2Jq
ZWN0V3JhcHBlck1hcF9oCiAKLQotI2luY2x1ZGUgIlJ1bkxvb3AuaCIKLQorI2luY2x1ZGUgPFdl
YkNvcmUvUnVuTG9vcC5oPgogI2luY2x1ZGUgPGhlYXAvV2Vhay5oPgogI2luY2x1ZGUgPHd0Zi9G
b3J3YXJkLmg+CiAjaW5jbHVkZSA8d3RmL0hhc2hNYXAuaD4KQEAgLTk4LDcgKzk2LDcgQEAgcHJp
dmF0ZToKICAgICBIYXNoTWFwPEpTQzo6SlNPYmplY3QqLCBOUEpTT2JqZWN0Kj4gbV9ucEpTT2Jq
ZWN0czsKICAgICBIYXNoTWFwPE5QT2JqZWN0KiwgSlNDOjpXZWFrPEpTTlBPYmplY3Q+ID4gbV9q
c05QT2JqZWN0czsKICAgICBWZWN0b3I8TlBPYmplY3QqPiBtX25wT2JqZWN0c1RvRmluYWxpemU7
Ci0gICAgUnVuTG9vcDo6VGltZXI8TlBSdW50aW1lT2JqZWN0TWFwPiBtX2ZpbmFsaXphdGlvblRp
bWVyOworICAgIFdlYkNvcmU6OlJ1bkxvb3A6OlRpbWVyPE5QUnVudGltZU9iamVjdE1hcD4gbV9m
aW5hbGl6YXRpb25UaW1lcjsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL05ldHNjYXBlL05ldHNjYXBlUGx1
Z2luLmggYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvTmV0c2NhcGUvTmV0c2Nh
cGVQbHVnaW4uaAppbmRleCA4NDU0MTgyMGM4NjA0YzllNThhZjFjNzFmOGQ3OWJhOGQ5ZTgyODdh
Li5hZGFkMmQwMTViNzBmNjJjMzE2OTM5NjE2NmE2YTNhZTRjODQwMzE0IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvTmV0c2NhcGUvTmV0c2NhcGVQbHVnaW4u
aAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvTmV0c2NhcGUvTmV0c2Nh
cGVQbHVnaW4uaApAQCAtMjgsMTAgKzI4LDEwIEBACiAKICNpbmNsdWRlICJOZXRzY2FwZVBsdWdp
bk1vZHVsZS5oIgogI2luY2x1ZGUgIlBsdWdpbi5oIgotI2luY2x1ZGUgIlJ1bkxvb3AuaCIKICNp
bmNsdWRlIDxXZWJDb3JlL0FmZmluZVRyYW5zZm9ybS5oPgogI2luY2x1ZGUgPFdlYkNvcmUvR3Jh
cGhpY3NMYXllci5oPgogI2luY2x1ZGUgPFdlYkNvcmUvSW50UmVjdC5oPgorI2luY2x1ZGUgPFdl
YkNvcmUvUnVuTG9vcC5oPgogI2luY2x1ZGUgPHd0Zi9IYXNoTWFwLmg+CiAjaW5jbHVkZSA8d3Rm
L3RleHQvQ1N0cmluZy5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L1N0cmluZ0hhc2guaD4KQEAgLTI5
MSw3ICsyOTEsNyBAQCBwcml2YXRlOgogICAgICAgICBib29sIG1fcmVwZWF0OwogICAgICAgICBU
aW1lckZ1bmMgbV90aW1lckZ1bmM7CiAKLSAgICAgICAgUnVuTG9vcDo6VGltZXI8VGltZXI+IG1f
dGltZXI7CisgICAgICAgIFdlYkNvcmU6OlJ1bkxvb3A6OlRpbWVyPFRpbWVyPiBtX3RpbWVyOwog
ICAgIH07CiAgICAgdHlwZWRlZiBIYXNoTWFwPHVuc2lnbmVkLCBUaW1lcio+IFRpbWVyTWFwOwog
ICAgIFRpbWVyTWFwIG1fdGltZXJzOwpAQCAtMzMyLDcgKzMzMiw3IEBAIHByaXZhdGU6CiAKICAg
ICAvLyBGSVhNRTogSXQncyBhIGJpdCB3YXN0ZWZ1bCB0byBoYXZlIG9uZSBudWxsIGV2ZW50IHRp
bWVyIHBlciBwbHVnLWluLgogICAgIC8vIFdlIHNob3VsZCBpbnZlc3RpZ2F0ZSBoYXZpbmcgb25l
IHBlciB3aW5kb3cuCi0gICAgUnVuTG9vcDo6VGltZXI8TmV0c2NhcGVQbHVnaW4+IG1fbnVsbEV2
ZW50VGltZXI7CisgICAgV2ViQ29yZTo6UnVuTG9vcDo6VGltZXI8TmV0c2NhcGVQbHVnaW4+IG1f
bnVsbEV2ZW50VGltZXI7CiAgICAgTlBfQ0dDb250ZXh0IG1fbnBDR0NvbnRleHQ7CiAjZW5kaWYK
ICNlbGlmIFBMVUdJTl9BUkNISVRFQ1RVUkUoV0lOKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dDIvV2ViUHJvY2Vzcy9QbHVnaW5zL05ldHNjYXBlL05ldHNjYXBlUGx1Z2luU3RyZWFtLmNwcCBi
L1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9OZXRzY2FwZS9OZXRzY2FwZVBsdWdp
blN0cmVhbS5jcHAKaW5kZXggMjNhODNmZTZkNjFlYzNjNGI5YTU1NDIyNGYzZWZkZWM1MDRmZWMw
Yy4uYWJlNTEzMGZmOTNhYjNiNDIzMTYwZmZlOWE2ZjAxNjQ5N2IyNjdmMSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL05ldHNjYXBlL05ldHNjYXBlUGx1Z2lu
U3RyZWFtLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvTmV0c2Nh
cGUvTmV0c2NhcGVQbHVnaW5TdHJlYW0uY3BwCkBAIC0yOCw2ICsyOCw3IEBACiAKICNpbmNsdWRl
ICJOZXRzY2FwZVBsdWdpbi5oIgogI2luY2x1ZGUgPHV0aWxpdHk+CisjaW5jbHVkZSA8d3RmL1Zl
Y3Rvci5oPgogCiB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKIHVzaW5nIG5hbWVzcGFjZSBzdGQ7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvTmV0c2NhcGUv
TmV0c2NhcGVQbHVnaW5TdHJlYW0uaCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lu
cy9OZXRzY2FwZS9OZXRzY2FwZVBsdWdpblN0cmVhbS5oCmluZGV4IGRlMjY4MjdmYzcyYjY0Zjg4
ZjVkMDFkNDM2NWU2ZmI0Y2MzZTc0MDMuLjA1ODczZTRmNGE1NjFiNzY0ZGFhZWUyNjAyMTQ1MDAx
OGRmNzZjMmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9O
ZXRzY2FwZS9OZXRzY2FwZVBsdWdpblN0cmVhbS5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlBy
b2Nlc3MvUGx1Z2lucy9OZXRzY2FwZS9OZXRzY2FwZVBsdWdpblN0cmVhbS5oCkBAIC0yNiw4ICsy
Niw4IEBACiAjaWZuZGVmIE5ldHNjYXBlUGx1Z2luU3RyZWFtX2gKICNkZWZpbmUgTmV0c2NhcGVQ
bHVnaW5TdHJlYW1faAogCi0jaW5jbHVkZSAiUnVuTG9vcC5oIgogI2luY2x1ZGUgPFdlYkNvcmUv
RmlsZVN5c3RlbS5oPgorI2luY2x1ZGUgPFdlYkNvcmUvUnVuTG9vcC5oPgogI2luY2x1ZGUgPFdl
YkNvcmUvbnBydW50aW1lX2ludGVybmFsLmg+CiAjaW5jbHVkZSA8d3RmL0ZvcndhcmQuaD4KICNp
bmNsdWRlIDx3dGYvUGFzc1JlZlB0ci5oPgpAQCAtMzYsNyArMzYsNyBAQAogI2luY2x1ZGUgPHd0
Zi90ZXh0L0NTdHJpbmcuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewotICAgIGNsYXNzIEtVUkw7
CitjbGFzcyBLVVJMOwogfQogCiBuYW1lc3BhY2UgV2ViS2l0IHsKQEAgLTEwMyw3ICsxMDMsNyBA
QCBwcml2YXRlOgogICAgIENTdHJpbmcgbV9taW1lVHlwZTsKICAgICBDU3RyaW5nIG1faGVhZGVy
czsKIAotICAgIFJ1bkxvb3A6OlRpbWVyPE5ldHNjYXBlUGx1Z2luU3RyZWFtPiBtX2RlbGl2ZXJ5
RGF0YVRpbWVyOworICAgIFdlYkNvcmU6OlJ1bkxvb3A6OlRpbWVyPE5ldHNjYXBlUGx1Z2luU3Ry
ZWFtPiBtX2RlbGl2ZXJ5RGF0YVRpbWVyOwogICAgIE93blB0cjwgVmVjdG9yPHVpbnQ4X3Q+ID4g
bV9kZWxpdmVyeURhdGE7CiAgICAgYm9vbCBtX3N0b3BTdHJlYW1XaGVuRG9uZURlbGl2ZXJpbmc7
CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL1BsdWdp
blZpZXcuaCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9QbHVnaW5WaWV3LmgK
aW5kZXggOTYyNGFjOTU0ZmFiZThmNTUyMjM0YjgzNWRmNzAzMmIzYjYwYWE1Mi4uY2Q2MzYzYTU4
YmJlYWQzMTgxNTI1NDk1NTU3YzhkZGViOTMxOTZhZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dDIvV2ViUHJvY2Vzcy9QbHVnaW5zL1BsdWdpblZpZXcuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9X
ZWJQcm9jZXNzL1BsdWdpbnMvUGx1Z2luVmlldy5oCkBAIC0yOSwxMyArMjksMTIgQEAKICNpbmNs
dWRlICJOUFJ1bnRpbWVPYmplY3RNYXAuaCIKICNpbmNsdWRlICJQbHVnaW4uaCIKICNpbmNsdWRl
ICJQbHVnaW5Db250cm9sbGVyLmgiCi0jaW5jbHVkZSAiUnVuTG9vcC5oIgogI2luY2x1ZGUgIldl
YkZyYW1lLmgiCi0KICNpbmNsdWRlIDxXZWJDb3JlL01lZGlhQ2FuU3RhcnRMaXN0ZW5lci5oPgor
I2luY2x1ZGUgPFdlYkNvcmUvUGx1Z2luVmlld0Jhc2UuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1Jl
c291cmNlRXJyb3IuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1Jlc291cmNlUmVzcG9uc2UuaD4KLSNp
bmNsdWRlIDxXZWJDb3JlL1BsdWdpblZpZXdCYXNlLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9SdW5M
b29wLmg+CiAjaW5jbHVkZSA8d3RmL0RlcXVlLmg+CiAKIC8vIEZJWE1FOiBFdmVudHVhbGx5IHRo
aXMgc2hvdWxkIG1vdmUgdG8gV2ViQ29yZS4KQEAgLTE4MCw3ICsxNzksNyBAQCBwcml2YXRlOgog
CiAgICAgLy8gUGVuZGluZyBVUkxSZXF1ZXN0cyB0aGF0IHRoZSBwbHVnLWluIGhhcyBtYWRlLgog
ICAgIERlcXVlPFJlZlB0cjxVUkxSZXF1ZXN0PiA+IG1fcGVuZGluZ1VSTFJlcXVlc3RzOwotICAg
IFJ1bkxvb3A6OlRpbWVyPFBsdWdpblZpZXc+IG1fcGVuZGluZ1VSTFJlcXVlc3RzVGltZXI7Cisg
ICAgV2ViQ29yZTo6UnVuTG9vcDo6VGltZXI8UGx1Z2luVmlldz4gbV9wZW5kaW5nVVJMUmVxdWVz
dHNUaW1lcjsKIAogICAgIC8vIFBlbmRpbmcgZnJhbWUgbG9hZHMgdGhhdCB0aGUgcGx1Zy1pbiBo
YXMgbWFkZS4KICAgICB0eXBlZGVmIEhhc2hNYXA8UmVmUHRyPFdlYkZyYW1lPiwgUmVmUHRyPFVS
TFJlcXVlc3Q+ID4gRnJhbWVMb2FkTWFwOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2Vi
UHJvY2Vzcy9XZWJDb25uZWN0aW9uVG9VSVByb2Nlc3MuY3BwIGIvU291cmNlL1dlYktpdDIvV2Vi
UHJvY2Vzcy9XZWJDb25uZWN0aW9uVG9VSVByb2Nlc3MuY3BwCmluZGV4IDlhNjRhZGQxYzQyM2Iw
YjAxNDdkOTJiNTI1NTA5Mjg1MWU2N2Y2ZDEuLjVlNzk1NWQ2NzYxOTAxZGVkYjdjMmRjYzY3NGQw
ZmIzOWYyNjdjNzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29u
bmVjdGlvblRvVUlQcm9jZXNzLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dl
YkNvbm5lY3Rpb25Ub1VJUHJvY2Vzcy5jcHAKQEAgLTMwLDYgKzMwLDggQEAKICNpbmNsdWRlICJX
ZWJDb25uZWN0aW9uTWVzc2FnZUtpbmRzLmgiCiAjaW5jbHVkZSAiV2ViUHJvY2Vzcy5oIgogCit1
c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKKwogbmFtZXNwYWNlIFdlYktpdCB7CiAKIFBhc3NSZWZQ
dHI8V2ViQ29ubmVjdGlvblRvVUlQcm9jZXNzPiBXZWJDb25uZWN0aW9uVG9VSVByb2Nlc3M6OmNy
ZWF0ZShXZWJQcm9jZXNzKiBwcm9jZXNzLCBDb3JlSVBDOjpDb25uZWN0aW9uOjpJZGVudGlmaWVy
IGNvbm5lY3Rpb25JZGVudGlmaWVyLCBSdW5Mb29wKiBydW5Mb29wKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb25uZWN0aW9uVG9VSVByb2Nlc3MuaCBiL1NvdXJj
ZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29ubmVjdGlvblRvVUlQcm9jZXNzLmgKaW5kZXggMWQ5
Yzk2YzgwYjYwOGQ4ZTI4OGRiZDEwNTc2ZGEyYjc3MjQzYThjNS4uNDJiOWNkNzE2YjEyNDczMGUy
ZDgwMGFkYzUxNGM1MDg0MmU1MDMxZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJv
Y2Vzcy9XZWJDb25uZWN0aW9uVG9VSVByb2Nlc3MuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQ
cm9jZXNzL1dlYkNvbm5lY3Rpb25Ub1VJUHJvY2Vzcy5oCkBAIC0zNSwxNCArMzUsMTQgQEAgY2xh
c3MgV2ViUHJvY2VzczsKIAogY2xhc3MgV2ViQ29ubmVjdGlvblRvVUlQcm9jZXNzIDogcHVibGlj
IFdlYkNvbm5lY3Rpb24sIENvcmVJUEM6OkNvbm5lY3Rpb246OkNsaWVudCB7CiBwdWJsaWM6Ci0g
ICAgc3RhdGljIFBhc3NSZWZQdHI8V2ViQ29ubmVjdGlvblRvVUlQcm9jZXNzPiBjcmVhdGUoV2Vi
UHJvY2VzcyosIENvcmVJUEM6OkNvbm5lY3Rpb246OklkZW50aWZpZXIsIFJ1bkxvb3AqKTsKKyAg
ICBzdGF0aWMgUGFzc1JlZlB0cjxXZWJDb25uZWN0aW9uVG9VSVByb2Nlc3M+IGNyZWF0ZShXZWJQ
cm9jZXNzKiwgQ29yZUlQQzo6Q29ubmVjdGlvbjo6SWRlbnRpZmllciwgV2ViQ29yZTo6UnVuTG9v
cCopOwogCiAgICAgQ29yZUlQQzo6Q29ubmVjdGlvbiogY29ubmVjdGlvbigpIHsgcmV0dXJuIG1f
Y29ubmVjdGlvbi5nZXQoKTsgfQogCiAgICAgdm9pZCBpbnZhbGlkYXRlKCk7CiAKIHByaXZhdGU6
Ci0gICAgV2ViQ29ubmVjdGlvblRvVUlQcm9jZXNzKFdlYlByb2Nlc3MqLCBDb3JlSVBDOjpDb25u
ZWN0aW9uOjpJZGVudGlmaWVyLCBSdW5Mb29wKik7CisgICAgV2ViQ29ubmVjdGlvblRvVUlQcm9j
ZXNzKFdlYlByb2Nlc3MqLCBDb3JlSVBDOjpDb25uZWN0aW9uOjpJZGVudGlmaWVyLCBXZWJDb3Jl
OjpSdW5Mb29wKik7CiAKICAgICAvLyBXZWJDb25uZWN0aW9uCiAgICAgdmlydHVhbCB2b2lkIHBv
c3RNZXNzYWdlKGNvbnN0IFN0cmluZyYsIEFQSU9iamVjdCopOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJHcmFwaGljc0xheWVyLmggYi9T
b3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkdyYXBoaWNzTGF5ZXIu
aAppbmRleCA4MTVkMjYxZjBjMDc1N2FiYTM5ODI0Mzc0NzY3NWFjMjE4MmQ3YjU0Li4zYzU3OWZk
OWUwMDBkYTQzYmRlMzhlNzc5Zjk3YjczMjBkN2YxYzJlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkdyYXBoaWNzTGF5ZXIuaAorKysgYi9T
b3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkdyYXBoaWNzTGF5ZXIu
aApAQCAtMjYsNyArMjYsNiBAQAogI2luY2x1ZGUgIkltYWdlLmgiCiAjaW5jbHVkZSAiSW50U2l6
ZS5oIgogI2luY2x1ZGUgIkxheWVyVHJhbnNmb3JtLmgiCi0jaW5jbHVkZSAiUnVuTG9vcC5oIgog
I2luY2x1ZGUgIlNoYXJlYWJsZUJpdG1hcC5oIgogI2luY2x1ZGUgIlRpbGVkQmFja2luZ1N0b3Jl
LmgiCiAjaW5jbHVkZSAiVGlsZWRCYWNraW5nU3RvcmVDbGllbnQuaCIKQEAgLTM1LDYgKzM0LDcg
QEAKICNpbmNsdWRlICJVcGRhdGVJbmZvLmgiCiAjaW5jbHVkZSAiV2ViTGF5ZXJUcmVlSW5mby5o
IgogI2luY2x1ZGUgIldlYlByb2Nlc3MuaCIKKyNpbmNsdWRlIDxXZWJDb3JlL1J1bkxvb3AuaD4K
IAogI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL0RyYXdpbmdBcmVhSW1wbC5oIGIvU291cmNlL1dl
YktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL0RyYXdpbmdBcmVhSW1wbC5oCmluZGV4IDBkYWJmNjAz
YTExMjY5NGMxNTE3ZGU1MDFmYjgyNDA0MjEzNDJhOWIuLjI4YzhjZTY4Y2QwZTQ3MzYwY2RlNmYz
YTY1MjZlZTc2ZDE0MTk1OWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
V2ViUGFnZS9EcmF3aW5nQXJlYUltcGwuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNz
L1dlYlBhZ2UvRHJhd2luZ0FyZWFJbXBsLmgKQEAgLTI4LDggKzI4LDggQEAKIAogI2luY2x1ZGUg
IkRyYXdpbmdBcmVhLmgiCiAjaW5jbHVkZSAiTGF5ZXJUcmVlSG9zdC5oIgotI2luY2x1ZGUgIlJ1
bkxvb3AuaCIKICNpbmNsdWRlIDxXZWJDb3JlL1JlZ2lvbi5oPgorI2luY2x1ZGUgPFdlYkNvcmUv
UnVuTG9vcC5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgY2xhc3MgR3JhcGhpY3NDb250
ZXh0OwpAQCAtMTMxLDggKzEzMSw4IEBAIHByaXZhdGU6CiAgICAgYm9vbCBtX2lzUGFpbnRpbmdT
dXNwZW5kZWQ7CiAgICAgYm9vbCBtX2Fsd2F5c1VzZUNvbXBvc2l0aW5nOwogCi0gICAgUnVuTG9v
cDo6VGltZXI8RHJhd2luZ0FyZWFJbXBsPiBtX2Rpc3BsYXlUaW1lcjsKLSAgICBSdW5Mb29wOjpU
aW1lcjxEcmF3aW5nQXJlYUltcGw+IG1fZXhpdENvbXBvc2l0aW5nVGltZXI7CisgICAgV2ViQ29y
ZTo6UnVuTG9vcDo6VGltZXI8RHJhd2luZ0FyZWFJbXBsPiBtX2Rpc3BsYXlUaW1lcjsKKyAgICBX
ZWJDb3JlOjpSdW5Mb29wOjpUaW1lcjxEcmF3aW5nQXJlYUltcGw+IG1fZXhpdENvbXBvc2l0aW5n
VGltZXI7CiAKICAgICAvLyBUaGUgbGF5ZXIgdHJlZSBob3N0IHRoYXQgaGFuZGxlcyBhY2NlbGVy
YXRlZCBjb21wb3NpdGluZy4KICAgICBSZWZQdHI8TGF5ZXJUcmVlSG9zdD4gbV9sYXllclRyZWVI
b3N0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL0V2ZW50
RGlzcGF0Y2hlci5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvRXZlbnRE
aXNwYXRjaGVyLmNwcAppbmRleCAxYTkxZDhlM2MwMjM0ODQzOWI5ZjMyZGNmODM0MDYxZjAxMzdk
YmY1Li4zYzJlNzNlY2E2YzMxMDgxOTdmMDlkMzJhMmJmNzAyMGZlOTM5MjZkIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvRXZlbnREaXNwYXRjaGVyLmNwcAor
KysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvRXZlbnREaXNwYXRjaGVyLmNw
cApAQCAtMjYsMTMgKzI2LDEzIEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiRXZl
bnREaXNwYXRjaGVyLmgiCiAKLSNpbmNsdWRlICJSdW5Mb29wLmgiCiAjaW5jbHVkZSAiV2ViRXZl
bnQuaCIKICNpbmNsdWRlICJXZWJFdmVudENvbnZlcnNpb24uaCIKICNpbmNsdWRlICJXZWJQYWdl
LmgiCiAjaW5jbHVkZSAiV2ViUGFnZVByb3h5TWVzc2FnZXMuaCIKICNpbmNsdWRlICJXZWJQcm9j
ZXNzLmgiCiAjaW5jbHVkZSA8V2ViQ29yZS9QYWdlLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9SdW5M
b29wLmg+CiAjaW5jbHVkZSA8d3RmL01haW5UaHJlYWQuaD4KIAogI2lmIEVOQUJMRShUSFJFQURF
RF9TQ1JPTExJTkcpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBh
Z2UvUGFnZU92ZXJsYXkuaCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9QYWdl
T3ZlcmxheS5oCmluZGV4IDFmNjFjZWJlOTI2MjQzOTdkMTlkYmFiMmM5ODAxNzA2ODQ1Y2ZiYTYu
Ljk0OTc2NzgwNmYyNzQzM2MxNDM2M2U2MTIxZWIzOGZjODc2NWFjZDAgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9QYWdlT3ZlcmxheS5oCisrKyBiL1NvdXJj
ZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9QYWdlT3ZlcmxheS5oCkBAIC0yNyw3ICsyNyw3
IEBACiAjZGVmaW5lIFBhZ2VPdmVybGF5X2gKIAogI2luY2x1ZGUgIkFQSU9iamVjdC5oIgotI2lu
Y2x1ZGUgIlJ1bkxvb3AuaCIKKyNpbmNsdWRlIDxXZWJDb3JlL1J1bkxvb3AuaD4KICNpbmNsdWRl
IDx3dGYvUGFzc1JlZlB0ci5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CkBAIC04Niw3ICs4Niw3
IEBAIHByaXZhdGU6CiAgICAgQ2xpZW50KiBtX2NsaWVudDsKICAgICBXZWJQYWdlKiBtX3dlYlBh
Z2U7CiAKLSAgICBSdW5Mb29wOjpUaW1lcjxQYWdlT3ZlcmxheT4gbV9mYWRlQW5pbWF0aW9uVGlt
ZXI7CisgICAgV2ViQ29yZTo6UnVuTG9vcDo6VGltZXI8UGFnZU92ZXJsYXk+IG1fZmFkZUFuaW1h
dGlvblRpbWVyOwogICAgIGRvdWJsZSBtX2ZhZGVBbmltYXRpb25TdGFydFRpbWU7CiAgICAgZG91
YmxlIG1fZmFkZUFuaW1hdGlvbkR1cmF0aW9uOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9j
ZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKaW5kZXggMzY1ZDU3ODA3NGU1NTA0OTZiMDZlNzdhYTMx
MjNhYjEzOGUwZTYzZC4uNDUwYzdlODNlODM0YjQwZDViNzQwMjU4NTFmM2U3NWMwMGFlNmI0MSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3Bw
CisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcApAQCAt
NDAsNyArNDAsNiBAQAogI2luY2x1ZGUgIlBsdWdpblByb3h5LmgiCiAjaW5jbHVkZSAiUGx1Z2lu
Vmlldy5oIgogI2luY2x1ZGUgIlByaW50SW5mby5oIgotI2luY2x1ZGUgIlJ1bkxvb3AuaCIKICNp
bmNsdWRlICJTZXNzaW9uU3RhdGUuaCIKICNpbmNsdWRlICJTaGFyZWFibGVCaXRtYXAuaCIKICNp
bmNsdWRlICJXZWJCYWNrRm9yd2FyZExpc3QuaCIKQEAgLTEwNCw2ICsxMDMsNyBAQAogI2luY2x1
ZGUgPFdlYkNvcmUvUmVuZGVyVmlldy5oPgogI2luY2x1ZGUgPFdlYkNvcmUvUmVwbGFjZVNlbGVj
dGlvbkNvbW1hbmQuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1Jlc291cmNlUmVxdWVzdC5oPgorI2lu
Y2x1ZGUgPFdlYkNvcmUvUnVuTG9vcC5oPgogI2luY2x1ZGUgPFdlYkNvcmUvU2NoZW1lUmVnaXN0
cnkuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1NjcmlwdFZhbHVlLmg+CiAjaW5jbHVkZSA8V2ViQ29y
ZS9TZXJpYWxpemVkU2NyaXB0VmFsdWUuaD4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dl
YlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmggYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dl
YlBhZ2UvV2ViUGFnZS5oCmluZGV4IDQwMDcyY2ZiZjE1NjBjZDBiZDU4YmM4NGQxMTZiMmYyODEy
MWQ0NjguLjg2ZWEwZDc1YTIzOTgwNzc0YWU1NTc2YzEzZDhhN2VlMTk2ZTVmOWQgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmgKKysrIGIvU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaApAQCAtNjc3LDcgKzY3Nyw3
IEBAIHByaXZhdGU6CiAgICAgUmVmUHRyPFdlYkNvcmU6Ok5vZGU+IG1fZ2VzdHVyZVRhcmdldE5v
ZGU7CiAjZW5kaWYKICAgICAKLSAgICBSdW5Mb29wOjpUaW1lcjxXZWJQYWdlPiBtX3NldENhblN0
YXJ0TWVkaWFUaW1lcjsKKyAgICBXZWJDb3JlOjpSdW5Mb29wOjpUaW1lcjxXZWJQYWdlPiBtX3Nl
dENhblN0YXJ0TWVkaWFUaW1lcjsKIAogICAgIEhhc2hNYXA8dWludDY0X3QsIFJlZlB0cjxXZWJV
bmRvU3RlcD4gPiBtX3VuZG9TdGVwTWFwOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9X
ZWJQcm9jZXNzL1dlYlByb2Nlc3MuY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQ
cm9jZXNzLmNwcAppbmRleCBjNGFmYTBmM2RlMzA3MjY0YmIxNzQyYjhhOGRkNmUzMDQ5MDQ3NWQw
Li5kMDk4MTA3MWY2MTE4NmMyYjYyNjAzMWU5OWQ1MDZjMjk0M2ZmMTE0IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuY3BwCisrKyBiL1NvdXJjZS9XZWJL
aXQyL1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5jcHAKQEAgLTMxLDcgKzMxLDYgQEAKICNpbmNsdWRl
ICJJbmplY3RlZEJ1bmRsZS5oIgogI2luY2x1ZGUgIkluamVjdGVkQnVuZGxlTWVzc2FnZUtpbmRz
LmgiCiAjaW5jbHVkZSAiSW5qZWN0ZWRCdW5kbGVVc2VyTWVzc2FnZUNvZGVycy5oIgotI2luY2x1
ZGUgIlJ1bkxvb3AuaCIKICNpbmNsdWRlICJTYW5kYm94RXh0ZW5zaW9uLmgiCiAjaW5jbHVkZSAi
U3RhdGlzdGljc0RhdGEuaCIKICNpbmNsdWRlICJXZWJBcHBsaWNhdGlvbkNhY2hlTWFuYWdlci5o
IgpAQCAtNzIsNiArNzEsNyBAQAogI2luY2x1ZGUgPFdlYkNvcmUvUGFnZUNhY2hlLmg+CiAjaW5j
bHVkZSA8V2ViQ29yZS9QYWdlR3JvdXAuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1Jlc291cmNlSGFu
ZGxlLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9SdW5Mb29wLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9T
Y2hlbWVSZWdpc3RyeS5oPgogI2luY2x1ZGUgPFdlYkNvcmUvU2VjdXJpdHlPcmlnaW4uaD4KICNp
bmNsdWRlIDxXZWJDb3JlL1NldHRpbmdzLmg+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9X
ZWJQcm9jZXNzL1dlYlByb2Nlc3MuaCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUHJv
Y2Vzcy5oCmluZGV4IDlmYjM3YzcyZTc0MjAxOWVhYjE0OWY0MWUyY2YzNmI1YzM0ZGZiZmYuLmVm
YTJlNjgxYTYyYThlNmQ5MzU4NzQ2NjkzOWFkMzNkNDIzYjkyZmIgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dl
YlByb2Nlc3MvV2ViUHJvY2Vzcy5oCkBAIC04MiwxMCArODIsMTAgQEAgY2xhc3MgV2ViUHJvY2Vz
cyA6IHB1YmxpYyBDaGlsZFByb2Nlc3MsIHByaXZhdGUgQ29yZUlQQzo6Q29ubmVjdGlvbjo6UXVl
dWVDbGllbnQKIHB1YmxpYzoKICAgICBzdGF0aWMgV2ViUHJvY2VzcyYgc2hhcmVkKCk7CiAKLSAg
ICB2b2lkIGluaXRpYWxpemUoQ29yZUlQQzo6Q29ubmVjdGlvbjo6SWRlbnRpZmllciwgUnVuTG9v
cCopOworICAgIHZvaWQgaW5pdGlhbGl6ZShDb3JlSVBDOjpDb25uZWN0aW9uOjpJZGVudGlmaWVy
LCBXZWJDb3JlOjpSdW5Mb29wKik7CiAKICAgICBDb3JlSVBDOjpDb25uZWN0aW9uKiBjb25uZWN0
aW9uKCkgY29uc3QgeyByZXR1cm4gbV9jb25uZWN0aW9uLT5jb25uZWN0aW9uKCk7IH0KLSAgICBS
dW5Mb29wKiBydW5Mb29wKCkgY29uc3QgeyByZXR1cm4gbV9ydW5Mb29wOyB9CisgICAgV2ViQ29y
ZTo6UnVuTG9vcCogcnVuTG9vcCgpIGNvbnN0IHsgcmV0dXJuIG1fcnVuTG9vcDsgfQogCiAgICAg
V2ViQ29ubmVjdGlvblRvVUlQcm9jZXNzKiB3ZWJDb25uZWN0aW9uVG9VSVByb2Nlc3MoKSBjb25z
dCB7IHJldHVybiBtX2Nvbm5lY3Rpb24uZ2V0KCk7IH0KIApAQCAtMjQxLDcgKzI0MSw3IEBAIHBy
aXZhdGU6CiAKICAgICBib29sIG1faW5EaWRDbG9zZTsKIAotICAgIFJ1bkxvb3AqIG1fcnVuTG9v
cDsKKyAgICBXZWJDb3JlOjpSdW5Mb29wKiBtX3J1bkxvb3A7CiAKICAgICAvLyBGSVhNRTogVGhl
IHZpc2l0ZWQgbGluayB0YWJsZSBzaG91bGQgbm90IGJlIHBlciBwcm9jZXNzLgogICAgIFZpc2l0
ZWRMaW5rVGFibGUgbV92aXNpdGVkTGlua1RhYmxlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dDIvV2ViUHJvY2Vzcy9ndGsvV2ViUHJvY2Vzc01haW5HdGsuY3BwIGIvU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9ndGsvV2ViUHJvY2Vzc01haW5HdGsuY3BwCmluZGV4IGZiOTY5OGVkYWFmNTJk
OTU0Yjk1Yzc3MzA1MGI4Njk3NDA3MzY1YWMuLjE4YzUwNmJjYzM5NzdhNjNhNTZjNzBjYmE2YTQz
M2NjNDViNGM5MzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvZ3RrL1dl
YlByb2Nlc3NNYWluR3RrLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL2d0ay9X
ZWJQcm9jZXNzTWFpbkd0ay5jcHAKQEAgLTMxLDEzICszMSwxNSBAQAogI2luY2x1ZGUgIldLQmFz
ZS5oIgogI2luY2x1ZGUgPFdlYkNvcmUvR3RrQXV0aGVudGljYXRpb25EaWFsb2cuaD4KICNpbmNs
dWRlIDxXZWJDb3JlL1Jlc291cmNlSGFuZGxlLmg+Ci0jaW5jbHVkZSA8V2ViS2l0Mi9SdW5Mb29w
Lmg+CisjaW5jbHVkZSA8V2ViQ29yZS9SdW5Mb29wLmg+CiAjaW5jbHVkZSA8V2ViS2l0Mi9XZWJQ
cm9jZXNzLmg+CiAjaW5jbHVkZSA8Z3RrL2d0ay5oPgogI2luY2x1ZGUgPHJ1bnRpbWUvSW5pdGlh
bGl6ZVRocmVhZGluZy5oPgogI2luY2x1ZGUgPHVuaXN0ZC5oPgogI2luY2x1ZGUgPHd0Zi9NYWlu
VGhyZWFkLmg+CiAKK3VzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOworCiBuYW1lc3BhY2UgV2ViS2l0
IHsKIAogV0tfRVhQT1JUIGludCBXZWJQcm9jZXNzTWFpbkd0ayhpbnQgYXJnYywgY2hhciogYXJn
dltdKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9tYWMvV2ViUHJvY2Vz
c01haW5NYWMubW0gYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL21hYy9XZWJQcm9jZXNzTWFp
bk1hYy5tbQppbmRleCBiNWEzZmUwN2QwNjc4NDNiZTViM2MzNTBhMTRhMDkwZjk5YzE1YmEwLi40
ZTJiMTU1MzIyMTBjMDA0NGYyYjk4ODEzM2Y3YmJkZGY2Yzg1NTY5IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0Mi9XZWJQcm9jZXNzL21hYy9XZWJQcm9jZXNzTWFpbk1hYy5tbQorKysgYi9Tb3Vy
Y2UvV2ViS2l0Mi9XZWJQcm9jZXNzL21hYy9XZWJQcm9jZXNzTWFpbk1hYy5tbQpAQCAtMjksOSAr
MjksOSBAQAogI2ltcG9ydCAiQ29tbWFuZExpbmUuaCIKICNpbXBvcnQgIkVudmlyb25tZW50VXRp
bGl0aWVzLmgiCiAjaW1wb3J0ICJFbnZpcm9ubWVudFZhcmlhYmxlcy5oIgotI2ltcG9ydCAiUnVu
TG9vcC5oIgogI2ltcG9ydCAiV2ViUHJvY2Vzcy5oIgogI2ltcG9ydCAiV2ViU3lzdGVtSW50ZXJm
YWNlLmgiCisjaW1wb3J0IDxXZWJDb3JlL1J1bkxvb3AuaD4KICNpbXBvcnQgPFdlYktpdDIvV0tW
aWV3Lmg+CiAjaW1wb3J0IDxXZWJLaXRTeXN0ZW1JbnRlcmZhY2UuaD4KICNpbXBvcnQgPG1hY2gv
bWFjaF9lcnJvci5oPgpAQCAtNDMsOCArNDMsOCBAQAogI2ltcG9ydCA8c3RkaW8uaD4KICNpbXBv
cnQgPHN5c2V4aXRzLmg+CiAjaW1wb3J0IDx1bmlzdGQuaD4KLSNpbXBvcnQgPHd0Zi9SZXRhaW5Q
dHIuaD4KICNpbXBvcnQgPHd0Zi9NYWluVGhyZWFkLmg+CisjaW1wb3J0IDx3dGYvUmV0YWluUHRy
Lmg+CiAjaW1wb3J0IDx3dGYvdGV4dC9DU3RyaW5nLmg+CiAjaW1wb3J0IDx3dGYvdGV4dC9TdHJp
bmdCdWlsZGVyLmg+CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvcXQv
V2ViUHJvY2Vzc01haW5RdC5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL3F0L1dlYlBy
b2Nlc3NNYWluUXQuY3BwCmluZGV4IGMzOGUzODI0MWQyNzI1OWQ0NjljOWMzYWU1Y2EwYzBhMDE3
ZTdkYTMuLjkxZTdhZTQzNzhmMGM0MWQ4Y2Y4MTAwNmQ2MTI3YTg4NTgzNGVkNWIgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvcXQvV2ViUHJvY2Vzc01haW5RdC5jcHAKKysr
IGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9xdC9XZWJQcm9jZXNzTWFpblF0LmNwcApAQCAt
MjUsOSArMjUsMTAgQEAKICAqLwogCiAjaW5jbHVkZSAiY29uZmlnLmgiCi0jaW5jbHVkZSAiUnVu
TG9vcC5oIgotI2luY2x1ZGUgPHJ1bnRpbWUvSW5pdGlhbGl6ZVRocmVhZGluZy5oPgorCiAjaW5j
bHVkZSAiV2ViUHJvY2Vzcy5oIgorI2luY2x1ZGUgPFdlYkNvcmUvUnVuTG9vcC5oPgorI2luY2x1
ZGUgPHJ1bnRpbWUvSW5pdGlhbGl6ZVRocmVhZGluZy5oPgogI2luY2x1ZGUgPHd0Zi9NYWluVGhy
ZWFkLmg+CiAKICNpbmNsdWRlIDxRQXBwbGljYXRpb24+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0Mi9XZWJQcm9jZXNzL3dpbi9XZWJQcm9jZXNzTWFpbldpbi5jcHAgYi9Tb3VyY2UvV2ViS2l0
Mi9XZWJQcm9jZXNzL3dpbi9XZWJQcm9jZXNzTWFpbldpbi5jcHAKaW5kZXggNWVkZWVmZTVjZGRi
NWFmMmRjNDQ3OGFmNDQ5YWU2YmFmZDM4NDdiMS4uMmE3MDY4NWU0ODVlMDYzNWIxNTE2OGZhNTUw
Y2RjNzBiOWVhMjUxZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy93aW4v
V2ViUHJvY2Vzc01haW5XaW4uY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mvd2lu
L1dlYlByb2Nlc3NNYWluV2luLmNwcApAQCAtMjcsMTQgKzI3LDE2IEBACiAjaW5jbHVkZSAiV2Vi
UHJvY2Vzc01haW4uaCIKIAogI2luY2x1ZGUgIkNvbW1hbmRMaW5lLmgiCi0jaW5jbHVkZSAiUnVu
TG9vcC5oIgogI2luY2x1ZGUgIldlYlByb2Nlc3MuaCIKKyNpbmNsdWRlIDxXZWJDb3JlL1J1bkxv
b3AuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1NvZnRMaW5raW5nLmg+CiAjaW5jbHVkZSA8cnVudGlt
ZS9Jbml0aWFsaXplVGhyZWFkaW5nLmg+CiAjaW5jbHVkZSA8d3RmL01haW5UaHJlYWQuaD4KICNp
bmNsdWRlIDx3dGYvdGV4dC9TdHJpbmdIYXNoLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3Ry
aW5nLmg+CiAKK3VzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOworCiBuYW1lc3BhY2UgV2ViS2l0IHsK
IAogI2lmIFVTRShTQUZBUklfVEhFTUUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi93aW4v
V2ViS2l0Mi52Y3Byb2ogYi9Tb3VyY2UvV2ViS2l0Mi93aW4vV2ViS2l0Mi52Y3Byb2oKaW5kZXgg
NzUyMjc4ZGRjMDE1Y2NmNDQ1YmExYzdiZWM2MGY1NDE4MDU0N2E2ZS4uMTY3YmEzZDkxMjdiODdk
ZDA1NTQ3ZWQ3YWI0ZWY3MTE2OTkxMjM1MiAxMDA3NTUKLS0tIGEvU291cmNlL1dlYktpdDIvd2lu
L1dlYktpdDIudmNwcm9qCisrKyBiL1NvdXJjZS9XZWJLaXQyL3dpbi9XZWJLaXQyLnZjcHJvagpA
QCAtMzg4NywxNCArMzg4Nyw2IEBACiAJCQkJPgogCQkJPC9GaWxlPgogCQkJPEZpbGUKLQkJCQlS
ZWxhdGl2ZVBhdGg9Ii4uXFBsYXRmb3JtXFJ1bkxvb3AuY3BwIgotCQkJCT4KLQkJCTwvRmlsZT4K
LQkJCTxGaWxlCi0JCQkJUmVsYXRpdmVQYXRoPSIuLlxQbGF0Zm9ybVxSdW5Mb29wLmgiCi0JCQkJ
PgotCQkJPC9GaWxlPgotCQkJPEZpbGUKIAkJCQlSZWxhdGl2ZVBhdGg9Ii4uXFBsYXRmb3JtXFNo
YXJlZE1lbW9yeS5oIgogCQkJCT4KIAkJCTwvRmlsZT4KQEAgLTM5NDIsMTAgKzM5MzQsNiBAQAog
CQkJCQk+CiAJCQkJPC9GaWxlPgogCQkJCTxGaWxlCi0JCQkJCVJlbGF0aXZlUGF0aD0iLi5cUGxh
dGZvcm1cd2luXFJ1bkxvb3BXaW4uY3BwIgotCQkJCQk+Ci0JCQkJPC9GaWxlPgotCQkJCTxGaWxl
CiAJCQkJCVJlbGF0aXZlUGF0aD0iLi5cUGxhdGZvcm1cd2luXFNoYXJlZE1lbW9yeVdpbi5jcHAi
CiAJCQkJCT4KIAkJCQk8L0ZpbGU+Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>123157</attachid>
            <date>2012-01-19 11:36:55 -0800</date>
            <delta_ts>2012-01-19 18:24:32 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-76471-20120119113704.patch</filename>
            <type>text/plain</type>
            <size>129213</size>
            <attacher name="Sam Weinig">sam</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTA1NDIzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZTEwODY5NGJjODkwODJh
NGVkYmVhYmZjMDJhMjNmMWJmMTQwNmM4Yi4uNTBmMjU4ZjdlNDdlNjdiNDRiMjc3NWVmYTYzMWFi
YTg5MTFlZDA0OSAxMDA3NTUKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI1IEBACisyMDEyLTAxLTE4ICBTYW0g
V2VpbmlnICA8c2FtQHdlYmtpdC5vcmc+CisKKyAgICAgICAgTW92ZSBSdW5Mb29wIHRvIFdlYkNv
cmUvcGxhdGZvcm0KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTc2NDcxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgKiBHTlVtYWtlZmlsZS5saXN0LmFtOgorICAgICAgICAqIFRhcmdldC5wcmk6CisgICAgICAg
ICogV2ViQ29yZS5leHAuaW46CisgICAgICAgICogV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3By
b2o6CisgICAgICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAg
ICBBZGQgbmV3bHkgbW92ZWQgZmlsZXMuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9SdW5Mb29wLmNw
cDogTW92ZWQgZnJvbSBTb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9SdW5Mb29wLmNwcC4KKyAgICAg
ICAgKiBwbGF0Zm9ybS9SdW5Mb29wLmg6IE1vdmVkIGZyb20gU291cmNlL1dlYktpdDIvUGxhdGZv
cm0vUnVuTG9vcC5oLgorICAgICAgICAqIHBsYXRmb3JtL2d0ay9SdW5Mb29wR3RrLmNwcDogTW92
ZWQgZnJvbSBTb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9ndGsvUnVuTG9vcEd0ay5jcHAuCisgICAg
ICAgICogcGxhdGZvcm0vbWFjL1J1bkxvb3BNYWMubW06IE1vdmVkIGZyb20gU291cmNlL1dlYktp
dDIvUGxhdGZvcm0vbWFjL1J1bkxvb3BNYWMubW0uCisgICAgICAgICogcGxhdGZvcm0vcXQvUnVu
TG9vcFF0LmNwcDogTW92ZWQgZnJvbSBTb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9xdC9SdW5Mb29w
UXQuY3BwLgorICAgICAgICAqIHBsYXRmb3JtL3dpbi9SdW5Mb29wV2luLmNwcDogTW92ZWQgZnJv
bSBTb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS93aW4vUnVuTG9vcFdpbi5jcHAuCisgICAgICAgIE1v
dmUgdGhlIGZpbGVzLgorCiAyMDEyLTAxLTE5ICBLZW4gQnVjaGFuYW4gPGtlbnJiQGNocm9taXVt
Lm9yZz4KIAogICAgICAgICBMYXlvdXQgVGVzdCBmYXN0L3RleHQvaW50ZXJuYXRpb25hbC9zcGFj
ZXMtY29tYmluZWQtaW4tdmVydGljYWwtdGV4dC5odG1sIGlzIGZhaWxpbmcKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwppbmRl
eCBiZWM2MGU5MzRhZjgxM2E5N2NmYmIwODk4MmM4MGQwOGMzMDM2ZjVhLi5iZDhjOTMwNGE1NTgy
MTE5YzExZjRlMDUwMjRkNzM4MGJmNGFlOTZmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNjcgQEAK
KzIwMTItMDEtMTggIFNhbSBXZWluaWcgIDxzYW1Ad2Via2l0Lm9yZz4KKworICAgICAgICBNb3Zl
IFJ1bkxvb3AgdG8gV2ViQ29yZS9wbGF0Zm9ybQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzY0NzEKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICAqIEdOVW1ha2VmaWxlLmFtOgorICAgICAgICAqIFBsYXRmb3Jt
L0NvcmVJUEMvQ29ubmVjdGlvbi5jcHA6CisgICAgICAgICogUGxhdGZvcm0vQ29yZUlQQy9Db25u
ZWN0aW9uLmg6CisgICAgICAgICogUGxhdGZvcm0vQ29yZUlQQy9tYWMvQ29ubmVjdGlvbk1hYy5j
cHA6CisgICAgICAgICogUGx1Z2luUHJvY2Vzcy9QbHVnaW5Db250cm9sbGVyUHJveHkuaDoKKyAg
ICAgICAgKiBQbHVnaW5Qcm9jZXNzL1BsdWdpblByb2Nlc3MuY3BwOgorICAgICAgICAqIFBsdWdp
blByb2Nlc3MvUGx1Z2luUHJvY2Vzcy5oOgorICAgICAgICAqIFBsdWdpblByb2Nlc3MvV2ViUHJv
Y2Vzc0Nvbm5lY3Rpb24uY3BwOgorICAgICAgICAqIFBsdWdpblByb2Nlc3MvbWFjL1BsdWdpblBy
b2Nlc3NNYWluTWFjLm1tOgorICAgICAgICAqIFBsdWdpblByb2Nlc3MvcXQvUGx1Z2luUHJvY2Vz
c01haW5RdC5jcHA6CisgICAgICAgICogU2hhcmVkL0NoaWxkUHJvY2Vzcy5jcHA6CisgICAgICAg
ICogU2hhcmVkL0NoaWxkUHJvY2Vzcy5oOgorICAgICAgICAqIFRhcmdldC5wcmk6CisgICAgICAg
ICogVUlQcm9jZXNzL0FQSS9tYWMvRmluZEluZGljYXRvcldpbmRvdy5oOgorICAgICAgICAqIFVJ
UHJvY2Vzcy9BUEkvbWFjL1dLVmlldy5tbToKKyAgICAgICAgKiBVSVByb2Nlc3MvRHJhd2luZ0Fy
ZWFQcm94eUltcGwuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvTGF1bmNoZXIvVGhyZWFkTGF1bmNo
ZXIuY3BwOgorICAgICAgICAqIFVJUHJvY2Vzcy9MYXVuY2hlci9ndGsvUHJvY2Vzc0xhdW5jaGVy
R3RrLmNwcDoKKyAgICAgICAgKiBVSVByb2Nlc3MvTGF1bmNoZXIvbWFjL1Byb2Nlc3NMYXVuY2hl
ck1hYy5tbToKKyAgICAgICAgKiBVSVByb2Nlc3MvTGF1bmNoZXIvbWFjL1RocmVhZExhdW5jaGVy
TWFjLm1tOgorICAgICAgICAqIFVJUHJvY2Vzcy9MYXVuY2hlci9xdC9Qcm9jZXNzTGF1bmNoZXJR
dC5jcHA6CisgICAgICAgICogVUlQcm9jZXNzL0xhdW5jaGVyL3F0L1RocmVhZExhdW5jaGVyUXQu
Y3BwOgorICAgICAgICAqIFVJUHJvY2Vzcy9MYXVuY2hlci93aW4vUHJvY2Vzc0xhdW5jaGVyV2lu
LmNwcDoKKyAgICAgICAgKiBVSVByb2Nlc3MvTGF1bmNoZXIvd2luL1RocmVhZExhdW5jaGVyV2lu
LmNwcDoKKyAgICAgICAgKiBVSVByb2Nlc3MvTGF5ZXJUcmVlSG9zdFByb3h5Lmg6CisgICAgICAg
ICogVUlQcm9jZXNzL1BsdWdpbnMvUGx1Z2luUHJvY2Vzc1Byb3h5LmNwcDoKKyAgICAgICAgKiBV
SVByb2Nlc3MvUmVzcG9uc2l2ZW5lc3NUaW1lci5jcHA6CisgICAgICAgICogVUlQcm9jZXNzL1Jl
c3BvbnNpdmVuZXNzVGltZXIuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvVGlsZWREcmF3aW5nQXJl
YVByb3h5Lmg6CisgICAgICAgICogVUlQcm9jZXNzL1Zpc2l0ZWRMaW5rUHJvdmlkZXIuaDoKKyAg
ICAgICAgKiBVSVByb2Nlc3MvV2ViQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5jcHA6CisgICAgICAg
ICogVUlQcm9jZXNzL1dlYkNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuaDoKKyAgICAgICAgKiBVSVBy
b2Nlc3MvV2ViQ29udGV4dC5jcHA6CisgICAgICAgICogVUlQcm9jZXNzL3dpbi9XZWJWaWV3LmNw
cDoKKyAgICAgICAgKiBXZWJLaXQyLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAg
ICogV2ViUHJvY2Vzcy9QbHVnaW5zL05ldHNjYXBlL05QUnVudGltZU9iamVjdE1hcC5oOgorICAg
ICAgICAqIFdlYlByb2Nlc3MvUGx1Z2lucy9OZXRzY2FwZS9OZXRzY2FwZVBsdWdpbi5oOgorICAg
ICAgICAqIFdlYlByb2Nlc3MvUGx1Z2lucy9OZXRzY2FwZS9OZXRzY2FwZVBsdWdpblN0cmVhbS5o
OgorICAgICAgICAqIFdlYlByb2Nlc3MvUGx1Z2lucy9QbHVnaW5WaWV3Lmg6CisgICAgICAgICog
V2ViUHJvY2Vzcy9XZWJDb25uZWN0aW9uVG9VSVByb2Nlc3MuY3BwOgorICAgICAgICAqIFdlYlBy
b2Nlc3MvV2ViQ29ubmVjdGlvblRvVUlQcm9jZXNzLmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9X
ZWJDb3JlU3VwcG9ydC9XZWJHcmFwaGljc0xheWVyLmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9X
ZWJQYWdlL0RyYXdpbmdBcmVhSW1wbC5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9F
dmVudERpc3BhdGNoZXIuY3BwOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9QYWdlT3Zl
cmxheS5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcDoKKyAgICAg
ICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oOgorICAgICAgICAqIFdlYlByb2Nlc3Mv
V2ViUHJvY2Vzcy5jcHA6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmg6CisgICAg
ICAgIChXZWJLaXQ6OldlYlByb2Nlc3M6OnJ1bkxvb3ApOgorICAgICAgICAqIFdlYlByb2Nlc3Mv
Z3RrL1dlYlByb2Nlc3NNYWluR3RrLmNwcDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL21hYy9XZWJQ
cm9jZXNzTWFpbk1hYy5tbToKKyAgICAgICAgKiBXZWJQcm9jZXNzL3F0L1dlYlByb2Nlc3NNYWlu
UXQuY3BwOgorICAgICAgICAqIFdlYlByb2Nlc3Mvd2luL1dlYlByb2Nlc3NNYWluV2luLmNwcDoK
KyAgICAgICAgKiB3aW4vV2ViS2l0Mi52Y3Byb2o6CisgICAgICAgIFJlbW92ZSBSdW5Mb29wIGNv
ZGUgYW5kIHVwZGF0ZSAjaW5jbHVkZXMuCisKIDIwMTItMDEtMTkgIENhcmxvcyBHYXJjaWEgQ2Ft
cG9zICA8Y2dhcmNpYUBpZ2FsaWEuY29tPgogCiAgICAgICAgIFtHVEtdIFdlYktpdDIgR1RLKyBB
UEkgcHVibGljIGhlYWRlcnMgYXJlIG5vdCBpbnN0YWxsZWQKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0gYi9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5s
aXN0LmFtCmluZGV4IGJiYjI2NTk2NzJmMTExMWRiMWQ1M2NlYWJmODVjMTUxYzBhYzQyMjcuLjgz
ZTE5YjMzMWIyODcyM2UzNTU1NzlmNzczN2E1MGY4Yjg4OGY2MTIgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0KKysrIGIvU291cmNlL1dlYkNvcmUvR05VbWFr
ZWZpbGUubGlzdC5hbQpAQCAtMzIyNiw2ICszMjI2LDggQEAgd2ViY29yZV9zb3VyY2VzICs9IFwK
IAlTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9Qb3B1cE1lbnVTdHlsZS5oIFwKIAlTb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9QdXJnZWFibGVCdWZmZXIuaCBcCiAJU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vUHVyZ2VQcmlvcml0eS5oIFwKKwlTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9SdW5Mb29wLmNw
cCBcCisJU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vUnVuTG9vcC5oIFwKIAlTb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9SdW50aW1lQXBwbGljYXRpb25DaGVja3MuY3BwIFwKIAlTb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9SdW50aW1lQXBwbGljYXRpb25DaGVja3MuaCBcCiAJU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vU2NoZW1lUmVnaXN0cnkuY3BwIFwKQEAgLTQ1MDEsNiArNDUwMyw3IEBAIHdlYmNv
cmVndGtfc291cmNlcyArPSBcCiAJU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3RrL1JlbmRlclRo
ZW1lR3RrLmggXAogCVNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9SZW5kZXJUaGVtZUd0azIu
Y3BwIFwKIAlTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ndGsvUmVuZGVyVGhlbWVHdGszLmNwcCBc
CisJU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3RrL1J1bkxvb3BHdGsuY3BwIFwKIAlTb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ndGsvU2Nyb2xsYmFyVGhlbWVHdGsuY3BwIFwKIAlTb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ndGsvU2Nyb2xsYmFyVGhlbWVHdGsuaCBcCiAJU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3RrL1Njcm9sbGJhclRoZW1lR3RrMi5jcHAgXApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvVGFyZ2V0LnByaSBiL1NvdXJjZS9XZWJDb3JlL1RhcmdldC5wcmkKaW5kZXggNDU3
ZGIwY2UwYmNlYjhiMDdkYzQ0OTQ0NDZjN2YxODY5MWZlNjU1Yi4uOTc5NTZiY2JjNDFlYmY5YWMy
NTkyMTYyMTVlNTEwYWI3ZWYzZTM0ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvVGFyZ2V0
LnByaQorKysgYi9Tb3VyY2UvV2ViQ29yZS9UYXJnZXQucHJpCkBAIC0xMTI4LDYgKzExMjgsNyBA
QCBTT1VSQ0VTICs9IFwKICAgICBwbGF0Zm9ybS90ZXh0L1JlZ3VsYXJFeHByZXNzaW9uLmNwcCBc
CiAgICAgcGxhdGZvcm0vUGxhdGZvcm1FdmVudC5jcHAgXAogICAgIHBsYXRmb3JtL1J1bnRpbWVB
cHBsaWNhdGlvbkNoZWNrcy5jcHAgXAorICAgIHBsYXRmb3JtL1J1bkxvb3AuY3BwIFwKICAgICBw
bGF0Zm9ybS9TY2hlbWVSZWdpc3RyeS5jcHAgXAogICAgIHBsYXRmb3JtL1Njcm9sbGFibGVBcmVh
LmNwcCBcCiAgICAgcGxhdGZvcm0vU2Nyb2xsQW5pbWF0b3IuY3BwIFwKQEAgLTI4MDIsNiArMjgw
Myw3IEBAIFNPVVJDRVMgKz0gXAogICAgIHBsYXRmb3JtL3F0L0RyYWdJbWFnZVF0LmNwcCBcCiAg
ICAgcGxhdGZvcm0vcXQvRXZlbnRMb29wUXQuY3BwIFwKICAgICBwbGF0Zm9ybS9xdC9GaWxlU3lz
dGVtUXQuY3BwIFwKKyAgICBwbGF0Zm9ybS9xdC9SdW5Mb29wUXQuY3BwIFwKICAgICBwbGF0Zm9y
bS9xdC9TaGFyZWRCdWZmZXJRdC5jcHAgXAogICAgIHBsYXRmb3JtL3F0L1RoaXJkUGFydHlDb29r
aWVzUXQuY3BwIFwKICAgICBwbGF0Zm9ybS9ncmFwaGljcy9xdC9Gb250Q2FjaGVRdC5jcHAgXApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5leHAuaW4gYi9Tb3VyY2UvV2ViQ29y
ZS9XZWJDb3JlLmV4cC5pbgppbmRleCAzZGIzZmMzZDYxZTgyOGZiYmJhNGY5Y2MyZDUxZTMwMmE1
ZGMyYzQzLi5hMzY1ZWFhZGQ5MTM4ZWU4MDkzMDI1OTFlZmZjMjUwMWJlODFiN2JhIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmV4cC5pbgorKysgYi9Tb3VyY2UvV2ViQ29yZS9X
ZWJDb3JlLmV4cC5pbgpAQCAtMjgwLDcgKzI4MCw2IEBAIF9fWk43V2ViQ29yZTEyUHJpbnRDb250
ZXh0OXNwb29sUGFnZUVSTlNfMTVHcmFwaGljc0NvbnRleHRFaWYKIF9fWk43V2ViQ29yZTEyUHJp
bnRDb250ZXh0OXNwb29sUmVjdEVSTlNfMTVHcmFwaGljc0NvbnRleHRFUktOU183SW50UmVjdEUK
IF9fWk43V2ViQ29yZTEyUHJpbnRDb250ZXh0QzFFUE5TXzVGcmFtZUUKIF9fWk43V2ViQ29yZTEy
UHJpbnRDb250ZXh0RDFFdgotX19aTks3V2ViQ29yZTEyUmVuZGVyT2JqZWN0MTNzdHlsZUluUmVn
aW9uRXYKIF9fWk43V2ViQ29yZTEyUmVuZGVyT2JqZWN0MTZyZXBhaW50UmVjdGFuZ2xlRVJLTlNf
N0ludFJlY3RFYgogX19aTjdXZWJDb3JlMTJSZW5kZXJXaWRnZXQyOHJlc3VtZVdpZGdldEhpZXJh
cmNoeVVwZGF0ZXNFdgogX19aTjdXZWJDb3JlMTJSZW5kZXJXaWRnZXQyOXN1c3BlbmRXaWRnZXRI
aWVyYXJjaHlVcGRhdGVzRXYKQEAgLTM2NCw5ICszNjMsNiBAQCBfX1pON1dlYkNvcmUxNFJlc291
cmNlSGFuZGxlMjBmb3JjZUNvbnRlbnRTbmlmZmluZ0V2CiBfX1pON1dlYkNvcmUxNFJlc291cmNl
SGFuZGxlMjZzeW5jaHJvbm91c0xvYWRSdW5Mb29wTW9kZUV2CiBfX1pON1dlYkNvcmUxNFJlc291
cmNlSGFuZGxlMzVjcmVhdGVQcml2YXRlQnJvd3NpbmdTdG9yYWdlU2Vzc2lvbkVQSzEwX19DRlN0
cmluZwogX19aTjdXZWJDb3JlMTRSZXNvdXJjZUxvYWRlcjE0Y2FuY2VsbGVkRXJyb3JFdgotI2lm
IEVOQUJMRShTVkcpCi1fX1pON1dlYkNvcmUxNFNWR1NNSUxFbGVtZW50MTNpc1NNSUxFbGVtZW50
RVBOU180Tm9kZUUKLSNlbmRpZgogX19aTjdXZWJDb3JlMTRTY2hlbWVSZWdpc3RyeTI0cmVnaXN0
ZXJVUkxTY2hlbWVBc0xvY2FsRVJLTjNXVEY2U3RyaW5nRQogX19aTjdXZWJDb3JlMTRTY2hlbWVS
ZWdpc3RyeTI1cmVnaXN0ZXJVUkxTY2hlbWVBc1NlY3VyZUVSS04zV1RGNlN0cmluZ0UKIF9fWk43
V2ViQ29yZTE0U2NoZW1lUmVnaXN0cnkzMnJlZ2lzdGVyVVJMU2NoZW1lQXNFbXB0eURvY3VtZW50
RVJLTjNXVEY2U3RyaW5nRQpAQCAtNjE1LDkgKzYxMSw2IEBAIF9fWk43V2ViQ29yZTIxTWVtb3J5
UHJlc3N1cmVIYW5kbGVyN2luc3RhbGxFdgogX19aTjdXZWJDb3JlMjFQbGF0Zm9ybUtleWJvYXJk
RXZlbnQyNGRpc2FtYmlndWF0ZUtleURvd25FdmVudEVOU18xM1BsYXRmb3JtRXZlbnQ0VHlwZUVi
CiBfX1pON1dlYkNvcmUyMVJlc291cmNlTG9hZFNjaGVkdWxlcjIwc2VydmVQZW5kaW5nUmVxdWVz
dHNFTlNfMjBSZXNvdXJjZUxvYWRQcmlvcml0eUUKIF9fWk43V2ViQ29yZTIxUmVzb3VyY2VMb2Fk
U2NoZWR1bGVyMjRzY2hlZHVsZVBsdWdpblN0cmVhbUxvYWRFUE5TXzVGcmFtZUVQTlNfMzJOZXRz
Y2FwZVBsdWdJblN0cmVhbUxvYWRlckNsaWVudEVSS05TXzE1UmVzb3VyY2VSZXF1ZXN0RQotI2lm
IEVOQUJMRShTVkcpCi1fX1pON1dlYkNvcmUyMVNWR0RvY3VtZW50RXh0ZW5zaW9uczIxc2FtcGxl
QW5pbWF0aW9uQXRUaW1lRVJLTjNXVEY2U3RyaW5nRVBOU18xNFNWR1NNSUxFbGVtZW50RWQKLSNl
bmRpZgogX19aTjdXZWJDb3JlMjFTZXJpYWxpemVkU2NyaXB0VmFsdWUxMWRlc2VyaWFsaXplRVBL
MTVPcGFxdWVKU0NvbnRleHRQUEsxM09wYXF1ZUpTVmFsdWUKIF9fWk43V2ViQ29yZTIxU2VyaWFs
aXplZFNjcmlwdFZhbHVlNmNyZWF0ZUVQSzE1T3BhcXVlSlNDb250ZXh0UEsxM09wYXF1ZUpTVmFs
dWVQUzZfCiBfX1pON1dlYkNvcmUyMVNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUMxRVJOM1dURjZWZWN0
b3JJaExtMEVFRQpAQCAtOTA4LDYgKzkwMSwxNyBAQCBfX1pON1dlYkNvcmU3SW50UmVjdDV1bml0
ZUVSS1MwXwogX19aTjdXZWJDb3JlN0ludFJlY3Q5aW50ZXJzZWN0RVJLUzBfCiBfX1pON1dlYkNv
cmU3SW50UmVjdEMxRVJLTlNfOUZsb2F0UmVjdEUKIF9fWk43V2ViQ29yZTdJbnRTaXplQzFFUks2
Q0dTaXplCitfX1pON1dlYkNvcmU3UnVuTG9vcDE0cnVuRm9yRHVyYXRpb25FZAorX19aTjdXZWJD
b3JlN1J1bkxvb3AyMWluaXRpYWxpemVNYWluUnVuTG9vcEV2CitfX1pON1dlYkNvcmU3UnVuTG9v
cDNydW5FdgorX19aTjdXZWJDb3JlN1J1bkxvb3A0bWFpbkV2CitfX1pON1dlYkNvcmU3UnVuTG9v
cDRzdG9wRXYKK19fWk43V2ViQ29yZTdSdW5Mb29wN2N1cnJlbnRFdgorX19aTjdXZWJDb3JlN1J1
bkxvb3A4ZGlzcGF0Y2hFUktOM1dURjhGdW5jdGlvbklGdnZFRUUKK19fWk43V2ViQ29yZTdSdW5M
b29wOVRpbWVyQmFzZTRzdG9wRXYKK19fWk43V2ViQ29yZTdSdW5Mb29wOVRpbWVyQmFzZTVzdGFy
dEVkYgorX19aTjdXZWJDb3JlN1J1bkxvb3A5VGltZXJCYXNlQzJFUFMwXworX19aTjdXZWJDb3Jl
N1J1bkxvb3A5VGltZXJCYXNlRDJFdgogX19aTjdXZWJDb3JlN1RleHRSdW4xOWFsbG93c1JvdW5k
aW5nSGFja3NFdgogX19aTjdXZWJDb3JlN1RleHRSdW4yMXNfYWxsb3dzUm91bmRpbmdIYWNrc0UK
IF9fWk43V2ViQ29yZTdUZXh0UnVuMjJzZXRBbGxvd3NSb3VuZGluZ0hhY2tzRWIKQEAgLTkxNywx
NSArOTIxLDkgQEAgX19aTjdXZWJDb3JlN3JlcGxhY2VFUk4zV1RGNlN0cmluZ0VSS05TXzE3UmVn
dWxhckV4cHJlc3Npb25FUktTMV8KIF9fWk43V2ViQ29yZTd0b1JhbmdlRU4zSlNDN0pTVmFsdWVF
CiBfX1pON1dlYkNvcmU4RG9jdW1lbnQxMWNyZWF0ZVJhbmdlRXYKIF9fWk43V2ViQ29yZThEb2N1
bWVudDEydXBkYXRlTGF5b3V0RXYKLSNpZiBFTkFCTEUoU1ZHKQotX19aTjdXZWJDb3JlOERvY3Vt
ZW50MTNzdmdFeHRlbnNpb25zRXYKLSNlbmRpZgogX19aTjdXZWJDb3JlOERvY3VtZW50MTRzZXRG
b2N1c2VkTm9kZUVOM1dURjEwUGFzc1JlZlB0cklOU180Tm9kZUVFRQogX19aTjdXZWJDb3JlOERv
Y3VtZW50MTZpc1BhZ2VCb3hWaXNpYmxlRWkKIF9fWk43V2ViQ29yZThEb2N1bWVudDE3Z2V0Rm9j
dXNhYmxlTm9kZXNFUk4zV1RGNlZlY3RvcklOUzFfNlJlZlB0cklOU180Tm9kZUVFRUxtMEVFRQot
I2lmIEVOQUJMRShTVkcpCi1fX1pON1dlYkNvcmU4RG9jdW1lbnQxOWFjY2Vzc1NWR0V4dGVuc2lv
bnNFdgotI2VuZGlmCiBfX1pON1dlYkNvcmU4RG9jdW1lbnQyMHN0eWxlU2VsZWN0b3JDaGFuZ2Vk
RU5TXzIzU3R5bGVTZWxlY3RvclVwZGF0ZUZsYWdFCiBfX1pON1dlYkNvcmU4RG9jdW1lbnQyMmNy
ZWF0ZURvY3VtZW50RnJhZ21lbnRFdgogX19aTjdXZWJDb3JlOERvY3VtZW50MjNkaWRBZGRXaGVl
bEV2ZW50SGFuZGxlckV2CkBAIC0xMTkzLDYgKzExOTEsNyBAQCBfX1pOSzdXZWJDb3JlMTFTY3Jp
cHRWYWx1ZTlnZXRTdHJpbmdFUE4zSlNDOUV4ZWNTdGF0ZUVSTjNXVEY2U3RyaW5nRQogX19aTks3
V2ViQ29yZTEySWNvbkRhdGFiYXNlMTJkYXRhYmFzZVBhdGhFdgogX19aTks3V2ViQ29yZTEySWNv
bkRhdGFiYXNlMjRzaG91bGRTdG9wVGhyZWFkQWN0aXZpdHlFdgogX19aTks3V2ViQ29yZTEySWNv
bkRhdGFiYXNlOWlzRW5hYmxlZEV2CitfX1pOSzdXZWJDb3JlMTJSZW5kZXJPYmplY3QxM3N0eWxl
SW5SZWdpb25FdgogX19aTks3V2ViQ29yZTEyUmVuZGVyT2JqZWN0MTRlbmNsb3NpbmdMYXllckV2
CiBfX1pOSzdXZWJDb3JlMTJSZW5kZXJPYmplY3QxNWxvY2FsVG9BYnNvbHV0ZUVSS05TXzEwRmxv
YXRQb2ludEViYgogX19aTks3V2ViQ29yZTEyUmVuZGVyT2JqZWN0MjNhYnNvbHV0ZUJvdW5kaW5n
Qm94UmVjdEViCkBAIC0xMjU0LDggKzEyNTMsOCBAQCBfX1pOSzdXZWJDb3JlMTRSZXNvdXJjZUxv
YWRlcjExZnJhbWVMb2FkZXJFdgogX19aTks3V2ViQ29yZTE0U2Nyb2xsYWJsZUFyZWExNHNjcm9s
bEFuaW1hdG9yRXYKIF9fWk5LN1dlYkNvcmUxNFNjcm9sbGFibGVBcmVhMjBjb250ZW50QXJlYVdp
bGxQYWludEV2CiBfX1pOSzdXZWJDb3JlMTRTY3JvbGxhYmxlQXJlYTIybW91c2VFeGl0ZWRDb250
ZW50QXJlYUV2Ci1fX1pOSzdXZWJDb3JlMTRTY3JvbGxhYmxlQXJlYTIzbW91c2VNb3ZlZEluQ29u
dGVudEFyZWFFdgogX19aTks3V2ViQ29yZTE0U2Nyb2xsYWJsZUFyZWEyM21vdXNlRW50ZXJlZENv
bnRlbnRBcmVhRXYKK19fWk5LN1dlYkNvcmUxNFNjcm9sbGFibGVBcmVhMjNtb3VzZU1vdmVkSW5D
b250ZW50QXJlYUV2CiBfX1pOSzdXZWJDb3JlMTRTZWN1cml0eU9yaWdpbjEwY2FuRGlzcGxheUVS
S05TXzRLVVJMRQogX19aTks3V2ViQ29yZTE0U2VjdXJpdHlPcmlnaW4xOGRhdGFiYXNlSWRlbnRp
ZmllckV2CiBfX1pOSzdXZWJDb3JlMTRTZWN1cml0eU9yaWdpbjVlcXVhbEVQS1MwXwpAQCAtMTQy
NCw2ICsxNDIzLDcgQEAgX19aTks3V2ViQ29yZTdJbnRSZWN0OGNvbnRhaW5zRVJLUzBfCiBfX1pO
SzdXZWJDb3JlN0ludFJlY3RjdjZDR1JlY3RFdgogX19aTks3V2ViQ29yZTdJbnRSZWN0Y3Y3X05T
UmVjdEV2CiBfX1pOSzdXZWJDb3JlN0ludFNpemVjdjZDR1NpemVFdgorX19aTks3V2ViQ29yZTdS
dW5Mb29wOVRpbWVyQmFzZThpc0FjdGl2ZUV2CiBfX1pOSzdXZWJDb3JlOERvY3VtZW50MTByZW5k
ZXJWaWV3RXYKIF9fWk5LN1dlYkNvcmU4RG9jdW1lbnQxMWNvbXBsZXRlVVJMRVJLTjNXVEY2U3Ry
aW5nRQogX19aTks3V2ViQ29yZThEb2N1bWVudDEzYXhPYmplY3RDYWNoZUV2CkBAIC0xNjA1LDYg
KzE2MDUsMTMgQEAgX3drQ3JlYXRlQVhUZXh0TWFya2VyCiBfd2tHZXRCeXRlc0Zyb21BWFRleHRN
YXJrZXIKIF93a0NyZWF0ZUFYVUlFbGVtZW50UmVmCiAKKyNpZiBFTkFCTEUoU1ZHKQorX19aTjdX
ZWJDb3JlMTRTVkdTTUlMRWxlbWVudDEzaXNTTUlMRWxlbWVudEVQTlNfNE5vZGVFCitfX1pON1dl
YkNvcmUyMVNWR0RvY3VtZW50RXh0ZW5zaW9uczIxc2FtcGxlQW5pbWF0aW9uQXRUaW1lRVJLTjNX
VEY2U3RyaW5nRVBOU18xNFNWR1NNSUxFbGVtZW50RWQKK19fWk43V2ViQ29yZThEb2N1bWVudDEz
c3ZnRXh0ZW5zaW9uc0V2CitfX1pON1dlYkNvcmU4RG9jdW1lbnQxOWFjY2Vzc1NWR0V4dGVuc2lv
bnNFdgorI2VuZGlmCisKICNpZiBFTkFCTEUoM0RfUkVOREVSSU5HKQogX1dlYkNvcmVIYXMzRFJl
bmRlcmluZwogI2VuZGlmCkBAIC0yMDYwLDYgKzIwNjcsMyBAQCBfX1pON1dlYkNvcmUyMFNjcm9s
bGluZ0Nvb3JkaW5hdG9yMThoYW5kbGVHZXN0dXJlRXZlbnRFUktOU18yMFBsYXRmb3JtR2VzdHVy
ZUV2ZQogI2VuZGlmCiAKICNlbmRpZgotCi0KLQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
V2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZj
cHJvai9XZWJDb3JlLnZjcHJvagppbmRleCBlODZkMzllOWYwN2Q1MTQyYTRjYjE2ODUxNjUxMjg1
ODM3M2UyMmQyLi42MmMzODNiNWI1MjJmYTY3N2ZlY2RlMmYwOGI4NmI5NTMyMjM2ZGQ3IDEwMDc1
NQotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvagorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvagpAQCAtMjY2NTAs
NiArMjY2NTAsMTQgQEAKIAkJCQk+CiAJCQk8L0ZpbGU+CiAJCQk8RmlsZQorCQkJCVJlbGF0aXZl
UGF0aD0iLi5ccGxhdGZvcm1cUnVuTG9vcC5jcHAiCisJCQkJPgorCQkJPC9GaWxlPgorCQkJPEZp
bGUKKwkJCQlSZWxhdGl2ZVBhdGg9Ii4uXHBsYXRmb3JtXFJ1bkxvb3AuaCIKKwkJCQk+CisJCQk8
L0ZpbGU+CisJCQk8RmlsZQogCQkJCVJlbGF0aXZlUGF0aD0iLi5ccGxhdGZvcm1cUnVudGltZUFw
cGxpY2F0aW9uQ2hlY2tzLmNwcCIKIAkJCQk+CiAJCQk8L0ZpbGU+CkBAIC0yNzA2MSw2ICsyNzA2
OSwxMCBAQAogCQkJCQk+CiAJCQkJPC9GaWxlPgogCQkJCTxGaWxlCisJCQkJCVJlbGF0aXZlUGF0
aD0iLi5ccGxhdGZvcm1cd2luXFJ1bkxvb3BXaW4uY3BwIgorCQkJCQk+CisJCQkJPC9GaWxlPgor
CQkJCTxGaWxlCiAJCQkJCVJlbGF0aXZlUGF0aD0iLi5ccGxhdGZvcm1cd2luXFNjcm9sbGJhclRo
ZW1lU2FmYXJpLmNwcCIKIAkJCQkJPgogCQkJCTwvRmlsZT4KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJDb3Jl
L1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCA3NWIyYjllYzdiNGY0NWE0
NzUzMDEyMTJjM2I0NWM3NzkzYjgwYmQzLi5mMTM3NDk3Yzc2ZWI2ZDRlNDFhMGI1MDQzZDJmZTk1
NGJiODhkZDllIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9w
cm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJv
amVjdC5wYnhwcm9qCkBAIC00OTg3LDYgKzQ5ODcsOSBAQAogCQlCQzA2RUUwNDBCRkQ3MUFBMDA4
NTZFOUQgLyogSlNIVE1MVGFibGVFbGVtZW50LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDMDZFRTAyMEJGRDcxQUEwMDg1NkU5RCAvKiBKU0hUTUxU
YWJsZUVsZW1lbnQuY3BwICovOyB9OwogCQlCQzA2RUUwNTBCRkQ3MUFBMDA4NTZFOUQgLyogSlNI
VE1MVGFibGVFbGVtZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSBCQzA2RUUwMzBCRkQ3MUFBMDA4NTZFOUQgLyogSlNIVE1MVGFibGVFbGVtZW50Lmgg
Ki87IH07CiAJCUJDMDczQkFBMEMzOTlCMUYwMDBGNTk3OSAvKiBGbG9hdENvbnZlcnNpb24uaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDMDczQkE5MEMz
OTlCMUYwMDBGNTk3OSAvKiBGbG9hdENvbnZlcnNpb24uaCAqLzsgfTsKKwkJQkMwQjM1ODMxNEM0
Rjk1NDAwNTVFMjJBIC8qIFJ1bkxvb3BNYWMubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSBCQzBCMzU4MjE0QzRGOTU0MDA1NUUyMkEgLyogUnVuTG9vcE1h
Yy5tbSAqLzsgfTsKKwkJQkMwQjM1ODcxNEM0Rjk4MzAwNTVFMjJBIC8qIFJ1bkxvb3AuY3BwIGlu
IFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkMwQjM1ODUxNEM0
Rjk4MzAwNTVFMjJBIC8qIFJ1bkxvb3AuY3BwICovOyB9OworCQlCQzBCMzU4ODE0QzRGOTgzMDA1
NUUyMkEgLyogUnVuTG9vcC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gQkMwQjM1ODYxNEM0Rjk4MzAwNTVFMjJBIC8qIFJ1bkxvb3AuaCAqLzsgc2V0dGlu
Z3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlCQzBCMzZBNDBDRDNDNjdD
MDBBQzdFQjUgLyogQ29uc29sZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSBCQzBCMzZBMTBDRDNDNjdDMDBBQzdFQjUgLyogQ29uc29sZS5jcHAgKi87
IH07CiAJCUJDMEIzNkE1MENEM0M2N0MwMEFDN0VCNSAvKiBDb25zb2xlLmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCQzBCMzZBMjBDRDNDNjdDMDBBQzdF
QjUgLyogQ29uc29sZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7
IH07IH07CiAJCUJDMTI0RUU3MEMyNjQxQ0QwMDlFMjM0OSAvKiBCYXJJbmZvLmNwcCBpbiBTb3Vy
Y2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDMTI0RUU0MEMyNjQxQ0Qw
MDlFMjM0OSAvKiBCYXJJbmZvLmNwcCAqLzsgfTsKQEAgLTcyMzIsNyArNzIzNSw2IEBACiAJCTFB
QkZFNzUyMENEOTY4RDAwMEZFNDgzNCAvKiBTUUxUcmFuc2FjdGlvbi5jcHAgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBTUUxUcmFuc2FjdGlvbi5jcHA7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCTFBQzIyNjBBMERCNjlGMTkwMDg5QjY2OSAvKiBKU0RPTUFwcGxp
Y2F0aW9uQ2FjaGUuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNE
T01BcHBsaWNhdGlvbkNhY2hlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMUFD
MjI2MEIwREI2OUYxOTAwODlCNjY5IC8qIEpTRE9NQXBwbGljYXRpb25DYWNoZS5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBKU0RPTUFwcGxpY2F0aW9uQ2FjaGUuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJMUFDNjkyNjkxNEExMjUzMTAwQkQ4NUYxIC8qIFNjcm9s
bGFibGVBcmVhQ2xpZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNjcm9s
bGFibGVBcmVhQ2xpZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTFBQ0U1M0RE
MEE4RDE4ODEwMDIyOTQ3RCAvKiBKU0RPTVBhcnNlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAuY3BwOyBwYXRoID0gSlNET01QYXJzZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQkxQUNFNTNERTBBOEQxODgxMDAyMjk0N0QgLyogSlNET01QYXJzZXIuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTRE9NUGFyc2VyLmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCTFBQ0U1M0UxMEE4RDE4RTcwMDIyOTQ3RCAvKiBET01QYXJzZXIuY3Bw
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IERPTVBhcnNlci5jcHA7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xMTg1Niw2ICsxMTg1OCw5IEBACiAJCUJDMDZG
MjRDMDZEMThBN0UwMDRBNkZBMyAvKiBYU0xUUHJvY2Vzc29yLmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGluZGVudFdpZHRoID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFhTTFRQcm9jZXNzb3IuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgdGFiV2lkdGggPSA4OyB1c2VzVGFicyA9IDA7IH07CiAJCUJDMDZG
MjREMDZEMThBN0UwMDRBNkZBMyAvKiBYU0xUUHJvY2Vzc29yTGlieHNsdC5jcHAgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGluZGVudFdpZHRoID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBYU0xUUHJvY2Vz
c29yTGlieHNsdC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IHRhYldpZHRoID0gODsgdXNl
c1RhYnMgPSAwOyB9OwogCQlCQzA3M0JBOTBDMzk5QjFGMDAwRjU5NzkgLyogRmxvYXRDb252ZXJz
aW9uLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBGbG9hdENvbnZlcnNpb24u
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQkMwQjM1ODIxNEM0Rjk1NDAwNTVFMjJB
IC8qIFJ1bkxvb3BNYWMubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGgg
PSBSdW5Mb29wTWFjLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlCQzBCMzU4NTE0
QzRGOTgzMDA1NUUyMkEgLyogUnVuTG9vcC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5j
cHA7IHBhdGggPSBSdW5Mb29wLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQkMw
QjM1ODYxNEM0Rjk4MzAwNTVFMjJBIC8qIFJ1bkxvb3AuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gUnVuTG9vcC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlCQzBC
MzZBMTBDRDNDNjdDMDBBQzdFQjUgLyogQ29uc29sZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAuY3BwOyBwYXRoID0gQ29uc29sZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCUJDMEIzNkEyMENEM0M2N0MwMEFDN0VCNSAvKiBDb25zb2xlLmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBDb25zb2xlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCUJDMEIzNkEzMENEM0M2N0MwMEFDN0VCNSAvKiBDb25zb2xlLmlkbCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSB0
ZXh0OyBwYXRoID0gQ29uc29sZS5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0x
NDk0NSw2ICsxNDk1MCw3IEBACiAJCQkJRDM5RDAwNkMxMUY4RTMwODAwNjA0MUYyIC8qIFBvcHVw
TWVudU1hYy5oICovLAogCQkJCTA2NjhFMThFMEFERDk2NDAwMDQxMjhFMCAvKiBQb3B1cE1lbnVN
YWMubW0gKi8sCiAJCQkJRTRENjg3NzYwRUQ3QUUzRDAwNkVBOTc4IC8qIFB1cmdlYWJsZUJ1ZmZl
ck1hYy5jcHAgKi8sCisJCQkJQkMwQjM1ODIxNEM0Rjk1NDAwNTVFMjJBIC8qIFJ1bkxvb3BNYWMu
bW0gKi8sCiAJCQkJMUNFMjRGOTYwRDdDQUYwRTAwN0UwNEMyIC8qIFNjaGVkdWxlUGFpck1hYy5t
bSAqLywKIAkJCQlCQ0FFMUZBNTEyOTM5REI3MDA0Q0IwMjYgLyogU2Nyb2xsQW5pbWF0b3JNYWMu
aCAqLywKIAkJCQlCQzUxMTU2RDEyQjE3NDlDMDBDOTY3NTQgLyogU2Nyb2xsQW5pbWF0b3JNYWMu
bW0gKi8sCkBAIC0xOTYzNyw2ICsxOTY0Myw4IEBACiAJCQkJQkMzQkUxMkEwRTk4MDkyRjAwODM1
NTg4IC8qIFBvcHVwTWVudVN0eWxlLmggKi8sCiAJCQkJRTRENjg3NzgwRUQ3QUU0RjAwNkVBOTc4
IC8qIFB1cmdlYWJsZUJ1ZmZlci5oICovLAogCQkJCTdFMzNDRDAwMTI3RjM0MEQwMEJFOEYxNyAv
KiBQdXJnZVByaW9yaXR5LmggKi8sCisJCQkJQkMwQjM1ODUxNEM0Rjk4MzAwNTVFMjJBIC8qIFJ1
bkxvb3AuY3BwICovLAorCQkJCUJDMEIzNTg2MTRDNEY5ODMwMDU1RTIyQSAvKiBSdW5Mb29wLmgg
Ki8sCiAJCQkJMUM2M0EyNDYwRjcxNjQ2NjAwQzA5RDVBIC8qIFJ1bkxvb3BUaW1lci5oICovLAog
CQkJCTI5M0VBRTIwMTM1NkIzMkUwMDY3QUNGOSAvKiBSdW50aW1lQXBwbGljYXRpb25DaGVja3Mu
Y3BwICovLAogCQkJCTI5M0VBRTFFMTM1NkIyRkUwMDY3QUNGOSAvKiBSdW50aW1lQXBwbGljYXRp
b25DaGVja3MuaCAqLywKQEAgLTE5NjQ0LDcgKzE5NjUyLDYgQEAKIAkJCQk1MTYyQzdGMzExRjc3
RUZCMDA2MTJFRkUgLyogU2NoZW1lUmVnaXN0cnkuaCAqLywKIAkJCQlCQzhBRTM0QzEyRUEwOTZB
MDBFQjNBRTYgLyogU2Nyb2xsYWJsZUFyZWEuY3BwICovLAogCQkJCUJDOEFFMzREMTJFQTA5NkEw
MEVCM0FFNiAvKiBTY3JvbGxhYmxlQXJlYS5oICovLAotCQkJCTFBQzY5MjY5MTRBMTI1MzEwMEJE
ODVGMSAvKiBTY3JvbGxhYmxlQXJlYUNsaWVudC5oICovLAogCQkJCUNBM0JGNjdCMTBEOTlCQUUw
MEU2Q0U1MyAvKiBTY3JvbGxBbmltYXRvci5jcHAgKi8sCiAJCQkJQ0EzQkY2N0QxMEQ5OUJBRTAw
RTZDRTUzIC8qIFNjcm9sbEFuaW1hdG9yLmggKi8sCiAJCQkJQkNBQTkwQzIwQTdFQkE2MDAwOEIx
MjI5IC8qIFNjcm9sbGJhci5jcHAgKi8sCkBAIC0yNDA0Miw2ICsyNDA0OSw3IEBACiAJCQkJRkQ1
MzczNTMxMzdCNjUxODAwMDA4RENFIC8qIFplcm9Qb2xlLmggaW4gSGVhZGVycyAqLywKIAkJCQk1
MDlDQzlGQjE0QzA2OUVEMDBCQkVDQkQgLyogQ3VzdG9tRmlsdGVyUGFyYW1ldGVyLmggaW4gSGVh
ZGVycyAqLywKIAkJCQk1MENDMDg5QTE0QzZFOTlDMDAxN0FCNTEgLyogQ3VzdG9tRmlsdGVyTnVt
YmVyUGFyYW1ldGVyLmggaW4gSGVhZGVycyAqLywKKwkJCQlCQzBCMzU4ODE0QzRGOTgzMDA1NUUy
MkEgLyogUnVuTG9vcC5oIGluIEhlYWRlcnMgKi8sCiAJCQkpOwogCQkJcnVuT25seUZvckRlcGxv
eW1lbnRQb3N0cHJvY2Vzc2luZyA9IDA7CiAJCX07CkBAIC0yNjk2MSw2ICsyNjk2OSw4IEBACiAJ
CQkJOTc3RTJFMEUxMkYwRkM5QzAwQzEzMzc5IC8qIFhTU0F1ZGl0b3IuY3BwIGluIFNvdXJjZXMg
Ki8sCiAJCQkJRkQ1MzczNTIxMzdCNjUxODAwMDA4RENFIC8qIFplcm9Qb2xlLmNwcCBpbiBTb3Vy
Y2VzICovLAogCQkJCTUwQ0MwQTM5MTRDNkY1QjEwMDE3QUI1MSAvKiBDdXN0b21GaWx0ZXJPcGVy
YXRpb24uY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJQkMwQjM1ODMxNEM0Rjk1NDAwNTVFMjJBIC8q
IFJ1bkxvb3BNYWMubW0gaW4gU291cmNlcyAqLywKKwkJCQlCQzBCMzU4NzE0QzRGOTgzMDA1NUUy
MkEgLyogUnVuTG9vcC5jcHAgaW4gU291cmNlcyAqLywKIAkJCSk7CiAJCQlydW5Pbmx5Rm9yRGVw
bG95bWVudFBvc3Rwcm9jZXNzaW5nID0gMDsKIAkJfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL1J1bkxvb3AuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vUnVuTG9v
cC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uNDQxYzU4NjNmNjZiNjY5MDEwMTgyZmIxNTRkOGFkZDQzNjEzZTA5
OAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1J1bkxvb3AuY3Bw
CkBAIC0wLDAgKzEsNzQgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAgQXBwbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBh
cmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWlu
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBp
biBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJv
dmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJP
VklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFO
RCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkg
QU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4g
SU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBM
SUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVN
UExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNF
UzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJV
UFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hF
VEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElO
RyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0Yg
VEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5j
bHVkZSAiUnVuTG9vcC5oIgorCisjaW5jbHVkZSA8d3RmL1N0ZExpYkV4dHJhcy5oPgorCituYW1l
c3BhY2UgV2ViQ29yZSB7CisKK3N0YXRpYyBSdW5Mb29wKiBzX21haW5SdW5Mb29wOworCit2b2lk
IFJ1bkxvb3A6OmluaXRpYWxpemVNYWluUnVuTG9vcCgpCit7CisgICAgaWYgKHNfbWFpblJ1bkxv
b3ApCisgICAgICAgIHJldHVybjsKKyAgICBzX21haW5SdW5Mb29wID0gUnVuTG9vcDo6Y3VycmVu
dCgpOworfQorCitSdW5Mb29wKiBSdW5Mb29wOjpjdXJyZW50KCkKK3sKKyAgICBERUZJTkVfU1RB
VElDX0xPQ0FMKFdURjo6VGhyZWFkU3BlY2lmaWM8UnVuTG9vcD4sIHJ1bkxvb3BEYXRhLCAoKSk7
CisgICAgcmV0dXJuICYqcnVuTG9vcERhdGE7Cit9CisKK1J1bkxvb3AqIFJ1bkxvb3A6Om1haW4o
KQoreworICAgIEFTU0VSVChzX21haW5SdW5Mb29wKTsKKyAgICByZXR1cm4gc19tYWluUnVuTG9v
cDsKK30KKwordm9pZCBSdW5Mb29wOjpwZXJmb3JtV29yaygpCit7CisgICAgVmVjdG9yPEZ1bmN0
aW9uPHZvaWQoKT4gPiBmdW5jdGlvblF1ZXVlOworICAgIHsKKyAgICAgICAgTXV0ZXhMb2NrZXIg
bG9ja2VyKG1fZnVuY3Rpb25RdWV1ZUxvY2spOworICAgICAgICBtX2Z1bmN0aW9uUXVldWUuc3dh
cChmdW5jdGlvblF1ZXVlKTsKKyAgICB9CisKKyAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IGZ1
bmN0aW9uUXVldWUuc2l6ZSgpOyArK2kpCisgICAgICAgIGZ1bmN0aW9uUXVldWVbaV0oKTsKK30K
Kwordm9pZCBSdW5Mb29wOjpkaXNwYXRjaChjb25zdCBGdW5jdGlvbjx2b2lkKCk+JiBmdW5jdGlv
bikKK3sKKyAgICBNdXRleExvY2tlciBsb2NrZXIobV9mdW5jdGlvblF1ZXVlTG9jayk7CisgICAg
bV9mdW5jdGlvblF1ZXVlLmFwcGVuZChmdW5jdGlvbik7CisKKyAgICB3YWtlVXAoKTsKK30KKwor
fSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vUnVuTG9vcC5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vUnVuTG9vcC5oCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLjZlMDQzMjZmZTUzNzZlOTI1NmRiNzM2ZGRmODI4YTk1MTFmY2Y4YzcKLS0tIC9kZXYvbnVs
bAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9SdW5Mb29wLmgKQEAgLTAsMCArMSwxNjUg
QEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgorICogQ29weXJpZ2h0IChDKSAyMDEwIE5va2lhIENvcnBvcmF0aW9uIGFuZC9vciBpdHMg
c3Vic2lkaWFyeSgtaWVzKQorICogUG9ydGlvbnMgQ29weXJpZ2h0IChjKSAyMDEwIE1vdG9yb2xh
IE1vYmlsaXR5LCBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAor
ICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJj
ZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIu
IFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBv
dGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRI
SVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9S
UyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBP
RiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9T
RSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09O
VFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVO
VEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVU
RSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJV
U0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZ
IE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFks
IE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcg
SU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklT
RUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVm
IFJ1bkxvb3BfaAorI2RlZmluZSBSdW5Mb29wX2gKKworI2luY2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+
CisjaW5jbHVkZSA8d3RmL0Z1bmN0aW9uYWwuaD4KKyNpbmNsdWRlIDx3dGYvSGFzaE1hcC5oPgor
I2luY2x1ZGUgPHd0Zi9UaHJlYWRTcGVjaWZpYy5oPgorI2luY2x1ZGUgPHd0Zi9UaHJlYWRpbmcu
aD4KKyNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+CisKKyNpZiBQTEFURk9STShHVEspCisjaW5jbHVk
ZSA8d3RmL2dvYmplY3QvR1JlZlB0ci5oPgordHlwZWRlZiBzdHJ1Y3QgX0dTb3VyY2UgR1NvdXJj
ZTsKK3R5cGVkZWYgc3RydWN0IF9HTWFpbkxvb3AgR01haW5Mb29wOwordHlwZWRlZiBzdHJ1Y3Qg
X0dNYWluQ29udGV4dCBHTWFpbkNvbnRleHQ7Cit0eXBlZGVmIGludCBnYm9vbGVhbjsKKyNlbmRp
ZgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIFJ1bkxvb3AgeworcHVibGljOgorICAg
IC8vIE11c3QgYmUgY2FsbGVkIGZyb20gdGhlIG1haW4gdGhyZWFkLgorICAgIHN0YXRpYyB2b2lk
IGluaXRpYWxpemVNYWluUnVuTG9vcCgpOworCisgICAgc3RhdGljIFJ1bkxvb3AqIGN1cnJlbnQo
KTsKKyAgICBzdGF0aWMgUnVuTG9vcCogbWFpbigpOworCisgICAgdm9pZCBkaXNwYXRjaChjb25z
dCBGdW5jdGlvbjx2b2lkKCk+Jik7CisKKyAgICBzdGF0aWMgdm9pZCBydW4oKTsKKyAgICB2b2lk
IHN0b3AoKTsKKworI2lmIFBMQVRGT1JNKE1BQykKKyAgICB2b2lkIHJ1bkZvckR1cmF0aW9uKGRv
dWJsZSBkdXJhdGlvbik7CisjZW5kaWYKKyAgICAKKyAgICBjbGFzcyBUaW1lckJhc2UgeworICAg
ICAgICBmcmllbmQgY2xhc3MgUnVuTG9vcDsKKyAgICBwdWJsaWM6CisgICAgICAgIFRpbWVyQmFz
ZShSdW5Mb29wKik7CisgICAgICAgIHZpcnR1YWwgflRpbWVyQmFzZSgpOworCisgICAgICAgIHZv
aWQgc3RhcnRSZXBlYXRpbmcoZG91YmxlIHJlcGVhdEludGVydmFsKSB7IHN0YXJ0KHJlcGVhdElu
dGVydmFsLCB0cnVlKTsgfQorICAgICAgICB2b2lkIHN0YXJ0T25lU2hvdChkb3VibGUgaW50ZXJ2
YWwpIHsgc3RhcnQoaW50ZXJ2YWwsIGZhbHNlKTsgfQorCisgICAgICAgIHZvaWQgc3RvcCgpOwor
ICAgICAgICBib29sIGlzQWN0aXZlKCkgY29uc3Q7CisKKyAgICAgICAgdmlydHVhbCB2b2lkIGZp
cmVkKCkgPSAwOworCisgICAgcHJpdmF0ZToKKyAgICAgICAgdm9pZCBzdGFydChkb3VibGUgbmV4
dEZpcmVJbnRlcnZhbCwgYm9vbCByZXBlYXQpOworCisgICAgICAgIFJ1bkxvb3AqIG1fcnVuTG9v
cDsKKworI2lmIFBMQVRGT1JNKFdJTikKKyAgICAgICAgc3RhdGljIHZvaWQgdGltZXJGaXJlZChS
dW5Mb29wKiwgdWludDY0X3QgSUQpOworICAgICAgICB1aW50NjRfdCBtX0lEOworICAgICAgICBi
b29sIG1faXNSZXBlYXRpbmc7CisjZWxpZiBQTEFURk9STShNQUMpCisgICAgICAgIHN0YXRpYyB2
b2lkIHRpbWVyRmlyZWQoQ0ZSdW5Mb29wVGltZXJSZWYsIHZvaWQqKTsKKyAgICAgICAgQ0ZSdW5M
b29wVGltZXJSZWYgbV90aW1lcjsKKyNlbGlmIFBMQVRGT1JNKFFUKQorICAgICAgICBzdGF0aWMg
dm9pZCB0aW1lckZpcmVkKFJ1bkxvb3AqLCBpbnQgSUQpOworICAgICAgICBpbnQgbV9JRDsKKyAg
ICAgICAgYm9vbCBtX2lzUmVwZWF0aW5nOworI2VsaWYgUExBVEZPUk0oR1RLKQorICAgICAgICBz
dGF0aWMgZ2Jvb2xlYW4gdGltZXJGaXJlZENhbGxiYWNrKFJ1bkxvb3A6OlRpbWVyQmFzZSopOwor
ICAgICAgICBnYm9vbGVhbiBpc1JlcGVhdGluZygpIGNvbnN0IHsgcmV0dXJuIG1faXNSZXBlYXRp
bmc7IH0KKyAgICAgICAgdm9pZCBjbGVhclRpbWVyU291cmNlKCk7CisgICAgICAgIEdSZWZQdHI8
R1NvdXJjZT4gbV90aW1lclNvdXJjZTsKKyAgICAgICAgZ2Jvb2xlYW4gbV9pc1JlcGVhdGluZzsK
KyNlbmRpZgorICAgIH07CisKKyAgICB0ZW1wbGF0ZSA8dHlwZW5hbWUgVGltZXJGaXJlZENsYXNz
PgorICAgIGNsYXNzIFRpbWVyIDogcHVibGljIFRpbWVyQmFzZSB7CisgICAgcHVibGljOgorICAg
ICAgICB0eXBlZGVmIHZvaWQgKFRpbWVyRmlyZWRDbGFzczo6KlRpbWVyRmlyZWRGdW5jdGlvbiko
KTsKKworICAgICAgICBUaW1lcihSdW5Mb29wKiBydW5Mb29wLCBUaW1lckZpcmVkQ2xhc3MqIG8s
IFRpbWVyRmlyZWRGdW5jdGlvbiBmKQorICAgICAgICAgICAgOiBUaW1lckJhc2UocnVuTG9vcCkK
KyAgICAgICAgICAgICwgbV9vYmplY3QobykKKyAgICAgICAgICAgICwgbV9mdW5jdGlvbihmKQor
ICAgICAgICB7CisgICAgICAgIH0KKworICAgIHByaXZhdGU6CisgICAgICAgIHZpcnR1YWwgdm9p
ZCBmaXJlZCgpIHsgKG1fb2JqZWN0LT4qbV9mdW5jdGlvbikoKTsgfQorCisgICAgICAgIFRpbWVy
RmlyZWRDbGFzcyogbV9vYmplY3Q7CisgICAgICAgIFRpbWVyRmlyZWRGdW5jdGlvbiBtX2Z1bmN0
aW9uOworICAgIH07CisKK3ByaXZhdGU6CisgICAgZnJpZW5kIGNsYXNzIFdURjo6VGhyZWFkU3Bl
Y2lmaWM8UnVuTG9vcD47CisKKyAgICBSdW5Mb29wKCk7CisgICAgflJ1bkxvb3AoKTsKKworICAg
IHZvaWQgcGVyZm9ybVdvcmsoKTsKKyAgICB2b2lkIHdha2VVcCgpOworCisgICAgTXV0ZXggbV9m
dW5jdGlvblF1ZXVlTG9jazsKKyAgICBWZWN0b3I8RnVuY3Rpb248dm9pZCgpPiA+IG1fZnVuY3Rp
b25RdWV1ZTsKKworI2lmIFBMQVRGT1JNKFdJTikKKyAgICBzdGF0aWMgYm9vbCByZWdpc3RlclJ1
bkxvb3BNZXNzYWdlV2luZG93Q2xhc3MoKTsKKyAgICBzdGF0aWMgTFJFU1VMVCBDQUxMQkFDSyBS
dW5Mb29wV25kUHJvYyhIV05ELCBVSU5ULCBXUEFSQU0sIExQQVJBTSk7CisgICAgTFJFU1VMVCB3
bmRQcm9jKEhXTkQgaFduZCwgVUlOVCBtZXNzYWdlLCBXUEFSQU0gd1BhcmFtLCBMUEFSQU0gbFBh
cmFtKTsKKyAgICBIV05EIG1fcnVuTG9vcE1lc3NhZ2VXaW5kb3c7CisKKyAgICB0eXBlZGVmIEhh
c2hNYXA8dWludDY0X3QsIFRpbWVyQmFzZSo+IFRpbWVyTWFwOworICAgIFRpbWVyTWFwIG1fYWN0
aXZlVGltZXJzOworI2VsaWYgUExBVEZPUk0oTUFDKQorICAgIHN0YXRpYyB2b2lkIHBlcmZvcm1X
b3JrKHZvaWQqKTsKKyAgICBDRlJ1bkxvb3BSZWYgbV9ydW5Mb29wOworICAgIENGUnVuTG9vcFNv
dXJjZVJlZiBtX3J1bkxvb3BTb3VyY2U7CisgICAgaW50IG1fbmVzdGluZ0xldmVsOworI2VsaWYg
UExBVEZPUk0oUVQpCisgICAgdHlwZWRlZiBIYXNoTWFwPGludCwgVGltZXJCYXNlKj4gVGltZXJN
YXA7CisgICAgVGltZXJNYXAgbV9hY3RpdmVUaW1lcnM7CisgICAgY2xhc3MgVGltZXJPYmplY3Q7
CisgICAgVGltZXJPYmplY3QqIG1fdGltZXJPYmplY3Q7CisjZWxpZiBQTEFURk9STShHVEspCitw
dWJsaWM6CisgICAgc3RhdGljIGdib29sZWFuIHF1ZXVlV29yayhSdW5Mb29wKik7CisgICAgR01h
aW5Mb29wKiBtYWluTG9vcCgpOworcHJpdmF0ZToKKyAgICBHTWFpbkNvbnRleHQqIG1fcnVuTG9v
cENvbnRleHQ7CisgICAgR01haW5Mb29wKiBtX3J1bkxvb3BNYWluOworI2VuZGlmCit9OworCit9
IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBSdW5Mb29wX2gKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9SdW5Mb29wR3RrLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2d0ay9SdW5Mb29wR3RrLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45MjlhN2I5OGViZmU0
YzY0NjkxOWIzMzYyNDc0Y2ZhN2JjOTE0NTliCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3RrL1J1bkxvb3BHdGsuY3BwCkBAIC0wLDAgKzEsMTM3IEBACisvKgor
ICogQ29weXJpZ2h0IChDKSAyMDEwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAq
IFBvcnRpb25zIENvcHlyaWdodCAoYykgMjAxMCBNb3Rvcm9sYSBNb2JpbGl0eSwgSW5jLiAgQWxs
IHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJl
IG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4g
YmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
IGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3Zp
ZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJ
REVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQg
QU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFO
RCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElO
IE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElB
QkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBM
QVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7
IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBU
SU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRI
RVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcg
TkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRI
RSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lC
SUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1
ZGUgIlJ1bkxvb3AuaCIKKworI2luY2x1ZGUgPGdsaWIuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUg
eworCitSdW5Mb29wOjpSdW5Mb29wKCkKK3sKKyAgICBtX3J1bkxvb3BDb250ZXh0ID0gZ19tYWlu
X2NvbnRleHRfZGVmYXVsdCgpOworICAgIEFTU0VSVChtX3J1bkxvb3BDb250ZXh0KTsKKyAgICBt
X3J1bkxvb3BNYWluID0gZ19tYWluX2xvb3BfbmV3KG1fcnVuTG9vcENvbnRleHQsIEZBTFNFKTsK
KyAgICBBU1NFUlQobV9ydW5Mb29wTWFpbik7Cit9CisKK1J1bkxvb3A6On5SdW5Mb29wKCkKK3sK
KyAgICBpZiAobV9ydW5Mb29wTWFpbikgeworICAgICAgICBpZiAoZ19tYWluX2xvb3BfaXNfcnVu
bmluZyhtX3J1bkxvb3BNYWluKSkKKyAgICAgICAgICAgIGdfbWFpbl9sb29wX3F1aXQobV9ydW5M
b29wTWFpbik7CisgICAgICAgIGdfbWFpbl9sb29wX3VucmVmKG1fcnVuTG9vcE1haW4pOworICAg
IH0KKworICAgIGlmIChtX3J1bkxvb3BDb250ZXh0KQorICAgICAgICBnX21haW5fY29udGV4dF91
bnJlZihtX3J1bkxvb3BDb250ZXh0KTsKK30KKwordm9pZCBSdW5Mb29wOjpydW4oKQoreworICAg
IGdfbWFpbl9sb29wX3J1bihSdW5Mb29wOjptYWluKCktPm1haW5Mb29wKCkpOworfQorCitHTWFp
bkxvb3AqIFJ1bkxvb3A6Om1haW5Mb29wKCkKK3sKKyAgICByZXR1cm4gbV9ydW5Mb29wTWFpbjsK
K30KKwordm9pZCBSdW5Mb29wOjpzdG9wKCkKK3sKKyAgICBnX21haW5fbG9vcF9xdWl0KG1fcnVu
TG9vcE1haW4pOworfQorCitnYm9vbGVhbiBSdW5Mb29wOjpxdWV1ZVdvcmsoUnVuTG9vcCogcnVu
TG9vcCkKK3sKKyAgICBydW5Mb29wLT5wZXJmb3JtV29yaygpOworICAgIHJldHVybiBGQUxTRTsK
K30KKwordm9pZCBSdW5Mb29wOjp3YWtlVXAoKQoreworICAgIEdSZWZQdHI8R1NvdXJjZT4gc291
cmNlID0gYWRvcHRHUmVmKGdfaWRsZV9zb3VyY2VfbmV3KCkpOworICAgIGdfc291cmNlX3NldF9w
cmlvcml0eShzb3VyY2UuZ2V0KCksIEdfUFJJT1JJVFlfREVGQVVMVCk7CisgICAgZ19zb3VyY2Vf
c2V0X2NhbGxiYWNrKHNvdXJjZS5nZXQoKSwgcmVpbnRlcnByZXRfY2FzdDxHU291cmNlRnVuYz4o
JlJ1bkxvb3A6OnF1ZXVlV29yayksIHRoaXMsIDApOworICAgIGdfc291cmNlX2F0dGFjaChzb3Vy
Y2UuZ2V0KCksIG1fcnVuTG9vcENvbnRleHQpOworCisgICAgZ19tYWluX2NvbnRleHRfd2FrZXVw
KG1fcnVuTG9vcENvbnRleHQpOworfQorCitSdW5Mb29wOjpUaW1lckJhc2U6OlRpbWVyQmFzZShS
dW5Mb29wKiBydW5Mb29wKQorICAgIDogbV9ydW5Mb29wKHJ1bkxvb3ApCisgICAgLCBtX3RpbWVy
U291cmNlKDApCit7Cit9CisKK1J1bkxvb3A6OlRpbWVyQmFzZTo6flRpbWVyQmFzZSgpCit7Cisg
ICAgc3RvcCgpOworfQorCit2b2lkIFJ1bkxvb3A6OlRpbWVyQmFzZTo6Y2xlYXJUaW1lclNvdXJj
ZSgpCit7CisgICAgbV90aW1lclNvdXJjZSA9IDA7Cit9CisKK2dib29sZWFuIFJ1bkxvb3A6OlRp
bWVyQmFzZTo6dGltZXJGaXJlZENhbGxiYWNrKFJ1bkxvb3A6OlRpbWVyQmFzZSogdGltZXIpCit7
CisgICAgR1NvdXJjZSogY3VycmVudFRpbWVyU291cmNlID0gdGltZXItPm1fdGltZXJTb3VyY2Uu
Z2V0KCk7CisgICAgYm9vbCBpc1JlcGVhdGluZyA9IHRpbWVyLT5pc1JlcGVhdGluZygpOworICAg
IC8vIFRoaXMgY2FuIGNoYW5nZSB0aGUgdGltZXJTb3VyY2UgYnkgc3RhcnRpbmcgYSBuZXcgdGlt
ZXIgd2l0aGluIHRoZSBjYWxsYmFjay4KKyAgICB0aW1lci0+ZmlyZWQoKTsKKyAgICBpZiAoIWlz
UmVwZWF0aW5nICYmIGN1cnJlbnRUaW1lclNvdXJjZSA9PSB0aW1lci0+bV90aW1lclNvdXJjZS5n
ZXQoKSkKKyAgICAgICAgdGltZXItPmNsZWFyVGltZXJTb3VyY2UoKTsKKyAgICByZXR1cm4gaXNS
ZXBlYXRpbmc7Cit9CisKK3ZvaWQgUnVuTG9vcDo6VGltZXJCYXNlOjpzdGFydChkb3VibGUgZmly
ZUludGVydmFsLCBib29sIHJlcGVhdCkKK3sKKyAgICBpZiAobV90aW1lclNvdXJjZSkKKyAgICAg
ICAgc3RvcCgpOworCisgICAgbV90aW1lclNvdXJjZSA9IGFkb3B0R1JlZihnX3RpbWVvdXRfc291
cmNlX25ldyhzdGF0aWNfY2FzdDxndWludD4oZmlyZUludGVydmFsICogMTAwMCkpKTsKKyAgICBt
X2lzUmVwZWF0aW5nID0gcmVwZWF0OworICAgIGdfc291cmNlX3NldF9jYWxsYmFjayhtX3RpbWVy
U291cmNlLmdldCgpLCByZWludGVycHJldF9jYXN0PEdTb3VyY2VGdW5jPigmUnVuTG9vcDo6VGlt
ZXJCYXNlOjp0aW1lckZpcmVkQ2FsbGJhY2spLCB0aGlzLCAwKTsKKyAgICBnX3NvdXJjZV9hdHRh
Y2gobV90aW1lclNvdXJjZS5nZXQoKSwgbV9ydW5Mb29wLT5tX3J1bkxvb3BDb250ZXh0KTsKK30K
Kwordm9pZCBSdW5Mb29wOjpUaW1lckJhc2U6OnN0b3AoKQoreworICAgIGlmICghbV90aW1lclNv
dXJjZSkKKyAgICAgICAgcmV0dXJuOworCisgICAgZ19zb3VyY2VfZGVzdHJveShtX3RpbWVyU291
cmNlLmdldCgpKTsKKyAgICBjbGVhclRpbWVyU291cmNlKCk7Cit9CisKK2Jvb2wgUnVuTG9vcDo6
VGltZXJCYXNlOjppc0FjdGl2ZSgpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1fdGltZXJTb3VyY2U7
Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL21hYy9SdW5Mb29wTWFjLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFj
L1J1bkxvb3BNYWMubW0KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYTU2N2FmZGQ1Yzg3N2NiNThlOWIwMzE4ODQwODI4
ZDBmMDE2MGQwZQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21h
Yy9SdW5Mb29wTWFjLm1tCkBAIC0wLDAgKzEsMTU3IEBACisvKgorICogQ29weXJpZ2h0IChDKSAy
MDEwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAq
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2Ug
Y29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBS
ZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3Ro
ZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElT
IFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMg
YGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0Yg
TUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0Ug
QVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRS
SUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRB
TCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUg
R09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJ
TkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBP
RiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBP
UiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElO
IEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2ltcG9ydCAi
Y29uZmlnLmgiCisjaW1wb3J0ICJSdW5Mb29wLmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKwor
dm9pZCBSdW5Mb29wOjpwZXJmb3JtV29yayh2b2lkKiBjb250ZXh0KQoreworICAgIC8vIFdyYXAg
bWFpbiB0aHJlYWQgaW4gYW4gQXV0b3JlbGVhc2UgcG9vbC4gIFNlbmRpbmcgbWVzc2FnZXMgY2Fu
IGNhbGwgCisgICAgLy8gaW50byBvYmpjIGNvZGUgYW5kIGFjY3VtdWxhdGUgbWVtb3J5LiAgCisg
ICAgaWYgKGN1cnJlbnQoKSA9PSBtYWluKCkpIHsKKyAgICAgICAgTlNBdXRvcmVsZWFzZVBvb2wg
KnBvb2wgPSBbW05TQXV0b3JlbGVhc2VQb29sIGFsbG9jXSBpbml0XTsKKyAgICAgICAgc3RhdGlj
X2Nhc3Q8UnVuTG9vcCo+KGNvbnRleHQpLT5wZXJmb3JtV29yaygpOworICAgICAgICBbcG9vbCBk
cmFpbl07CisgICAgfSBlbHNlCisgICAgICAgIHN0YXRpY19jYXN0PFJ1bkxvb3AqPihjb250ZXh0
KS0+cGVyZm9ybVdvcmsoKTsKK30KKworUnVuTG9vcDo6UnVuTG9vcCgpCisgICAgOiBtX3J1bkxv
b3AoQ0ZSdW5Mb29wR2V0Q3VycmVudCgpKQorICAgICwgbV9uZXN0aW5nTGV2ZWwoMCkKK3sKKyAg
ICBDRlJ1bkxvb3BTb3VyY2VDb250ZXh0IGNvbnRleHQgPSB7IDAsIHRoaXMsIDAsIDAsIDAsIDAs
IDAsIDAsIDAsIHBlcmZvcm1Xb3JrIH07CisgICAgbV9ydW5Mb29wU291cmNlID0gQ0ZSdW5Mb29w
U291cmNlQ3JlYXRlKGtDRkFsbG9jYXRvckRlZmF1bHQsIDAsICZjb250ZXh0KTsKKyAgICBDRlJ1
bkxvb3BBZGRTb3VyY2UobV9ydW5Mb29wLCBtX3J1bkxvb3BTb3VyY2UsIGtDRlJ1bkxvb3BDb21t
b25Nb2Rlcyk7Cit9CisKK1J1bkxvb3A6On5SdW5Mb29wKCkKK3sKKyAgICAvLyBGSVhNRTogVGVh
ciBkb3duIHRoZSB3b3JrIGl0ZW0gcXVldWUgaGVyZS4KKyAgICBDRlJ1bkxvb3BTb3VyY2VJbnZh
bGlkYXRlKG1fcnVuTG9vcFNvdXJjZSk7CisgICAgQ0ZSZWxlYXNlKG1fcnVuTG9vcFNvdXJjZSk7
Cit9CisKK3ZvaWQgUnVuTG9vcDo6cnVuKCkKK3sKKyAgICBjdXJyZW50KCktPm1fbmVzdGluZ0xl
dmVsKys7CisgICAgaWYgKGN1cnJlbnQoKSA9PSBtYWluKCkgJiYgY3VycmVudCgpLT5tX25lc3Rp
bmdMZXZlbCA9PSAxKSB7CisgICAgICAgIC8vIFVzZSAtW05TQXBwbGljYXRpb24gcnVuXSBmb3Ig
dGhlIG1haW4gcnVuIGxvb3AuCisgICAgICAgIFtOU0FwcCBydW5dOworICAgIH0gZWxzZSB7Cisg
ICAgICAgIE5TQXV0b3JlbGVhc2VQb29sICpwb29sID0gW1tOU0F1dG9yZWxlYXNlUG9vbCBhbGxv
Y10gaW5pdF07CisgICAgICAgIENGUnVuTG9vcFJ1bigpOworICAgICAgICBbcG9vbCBkcmFpbl07
CisgICAgfQorICAgIGN1cnJlbnQoKS0+bV9uZXN0aW5nTGV2ZWwtLTsKK30KKwordm9pZCBSdW5M
b29wOjpydW5Gb3JEdXJhdGlvbihkb3VibGUgZHVyYXRpb24pCit7CisgICAgQ0ZSdW5Mb29wUnVu
SW5Nb2RlKGtDRlJ1bkxvb3BEZWZhdWx0TW9kZSwgZHVyYXRpb24sIHRydWUpOworfQorCit2b2lk
IFJ1bkxvb3A6OnN0b3AoKQoreworICAgIEFTU0VSVChtX3J1bkxvb3AgPT0gQ0ZSdW5Mb29wR2V0
Q3VycmVudCgpKTsKKyAgICAKKyAgICBpZiAobV9ydW5Mb29wID09IG1haW4oKS0+bV9ydW5Mb29w
ICYmIG1fbmVzdGluZ0xldmVsID09IDEpIHsKKyAgICAgICAgW05TQXBwIHN0b3A6bmlsXTsKKyAg
ICAgICAgTlNFdmVudCAqZXZlbnQgPSBbTlNFdmVudCBvdGhlckV2ZW50V2l0aFR5cGU6TlNBcHBs
aWNhdGlvbkRlZmluZWQKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgbG9jYXRpb246TlNNYWtlUG9pbnQoMCwgMCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIG1vZGlmaWVyRmxhZ3M6MAorICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIHRpbWVzdGFtcDowLjAKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgd2luZG93TnVtYmVyOjAKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIGNvbnRleHQ6bmlsCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBzdWJ0eXBlOiAwCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIGRhdGExOjAKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgZGF0YTI6MF07CisgICAgICAgIFtOU0FwcCBwb3N0RXZlbnQ6
ZXZlbnQgYXRTdGFydDp0cnVlXTsKKyAgICB9IGVsc2UKKyAgICAgICAgQ0ZSdW5Mb29wU3RvcCht
X3J1bkxvb3ApOworfQorCit2b2lkIFJ1bkxvb3A6Ondha2VVcCgpCit7CisgICAgQ0ZSdW5Mb29w
U291cmNlU2lnbmFsKG1fcnVuTG9vcFNvdXJjZSk7CisgICAgQ0ZSdW5Mb29wV2FrZVVwKG1fcnVu
TG9vcCk7Cit9CisKKy8vIFJ1bkxvb3A6OlRpbWVyCisKK3ZvaWQgUnVuTG9vcDo6VGltZXJCYXNl
Ojp0aW1lckZpcmVkKENGUnVuTG9vcFRpbWVyUmVmLCB2b2lkKiBjb250ZXh0KQoreworICAgIFRp
bWVyQmFzZSogdGltZXIgPSBzdGF0aWNfY2FzdDxUaW1lckJhc2UqPihjb250ZXh0KTsKKyAgICAK
KyAgICAvLyBXcmFwIG1haW4gdGhyZWFkIGluIGFuIEF1dG9yZWxlYXNlIHBvb2wuICBUaGUgdGlt
ZXIgY2FuIGNhbGwgCisgICAgLy8gaW50byBvYmpjIGNvZGUgYW5kIGFjY3VtdWxhdGUgbWVtb3J5
IG91dHNpZGUgb2YgdGhlIG1haW4gZXZlbnQgbG9vcC4KKyAgICBpZiAoY3VycmVudCgpID09IG1h
aW4oKSkgeworICAgICAgICBOU0F1dG9yZWxlYXNlUG9vbCAqcG9vbCA9IFtbTlNBdXRvcmVsZWFz
ZVBvb2wgYWxsb2NdIGluaXRdOyAKKyAgICAgICAgdGltZXItPmZpcmVkKCk7CisgICAgICAgIFtw
b29sIGRyYWluXTsKKyAgICB9IGVsc2UKKyAgICAgICAgdGltZXItPmZpcmVkKCk7Cit9CisKK1J1
bkxvb3A6OlRpbWVyQmFzZTo6VGltZXJCYXNlKFJ1bkxvb3AqIHJ1bkxvb3ApCisgICAgOiBtX3J1
bkxvb3AocnVuTG9vcCkKKyAgICAsIG1fdGltZXIoMCkKK3sKK30KKworUnVuTG9vcDo6VGltZXJC
YXNlOjp+VGltZXJCYXNlKCkKK3sKKyAgICBzdG9wKCk7Cit9CisKK3ZvaWQgUnVuTG9vcDo6VGlt
ZXJCYXNlOjpzdGFydChkb3VibGUgbmV4dEZpcmVJbnRlcnZhbCwgYm9vbCByZXBlYXQpCit7Cisg
ICAgaWYgKG1fdGltZXIpCisgICAgICAgIHN0b3AoKTsKKworICAgIENGUnVuTG9vcFRpbWVyQ29u
dGV4dCBjb250ZXh0ID0geyAwLCB0aGlzLCAwLCAwLCAwIH07CisgICAgQ0ZUaW1lSW50ZXJ2YWwg
cmVwZWF0SW50ZXJ2YWwgPSByZXBlYXQgPyBuZXh0RmlyZUludGVydmFsIDogMDsKKyAgICBtX3Rp
bWVyID0gQ0ZSdW5Mb29wVGltZXJDcmVhdGUoa0NGQWxsb2NhdG9yRGVmYXVsdCwgQ0ZBYnNvbHV0
ZVRpbWVHZXRDdXJyZW50KCkgKyBuZXh0RmlyZUludGVydmFsLCByZXBlYXRJbnRlcnZhbCwgMCwg
MCwgdGltZXJGaXJlZCwgJmNvbnRleHQpOworICAgIENGUnVuTG9vcEFkZFRpbWVyKG1fcnVuTG9v
cC0+bV9ydW5Mb29wLCBtX3RpbWVyLCBrQ0ZSdW5Mb29wQ29tbW9uTW9kZXMpOworfQorCit2b2lk
IFJ1bkxvb3A6OlRpbWVyQmFzZTo6c3RvcCgpCit7CisgICAgaWYgKCFtX3RpbWVyKQorICAgICAg
ICByZXR1cm47CisKKyAgICBDRlJ1bkxvb3BUaW1lckludmFsaWRhdGUobV90aW1lcik7CisgICAg
Q0ZSZWxlYXNlKG1fdGltZXIpOworICAgIG1fdGltZXIgPSAwOworfQorCitib29sIFJ1bkxvb3A6
OlRpbWVyQmFzZTo6aXNBY3RpdmUoKSBjb25zdAoreworICAgIHJldHVybiBtX3RpbWVyICYmIENG
UnVuTG9vcFRpbWVySXNWYWxpZChtX3RpbWVyKTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29y
ZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vcXQvUnVuTG9vcFF0LmNwcCBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3F0L1J1bkxvb3BRdC5jcHAKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMmE4
N2UyZmM4ZjY2Nzc3NjlmNzMxNDNlNTcxZTA5YzVhNTRjNmViYQotLS0gL2Rldi9udWxsCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3F0L1J1bkxvb3BRdC5jcHAKQEAgLTAsMCArMSwxNjYg
QEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgorICogQ29weXJpZ2h0IChDKSAyMDEwIE5va2lhIENvcnBvcmF0aW9uIGFuZC9vciBpdHMg
c3Vic2lkaWFyeSgtaWVzKQorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUg
bWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBi
aW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIg
aW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlk
ZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklE
RUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBB
TlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5E
IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4g
Tk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFC
TEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExB
UlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsg
TE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJ
T04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhF
UiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBO
RUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhF
IFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVk
ZSAiUnVuTG9vcC5oIgorCisjaW5jbHVkZSA8UUFic3RyYWN0RXZlbnREaXNwYXRjaGVyPgorI2lu
Y2x1ZGUgPFFDb3JlQXBwbGljYXRpb24+CisjaW5jbHVkZSA8UU1ldGFNZXRob2Q+CisjaW5jbHVk
ZSA8UU1ldGFPYmplY3Q+CisjaW5jbHVkZSA8UU9iamVjdD4KKyNpbmNsdWRlIDxRVGltZXJFdmVu
dD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBSdW5Mb29wOjpUaW1lck9iamVjdCA6
IHB1YmxpYyBRT2JqZWN0IHsKKyAgICBRX09CSkVDVAorcHVibGljOgorICAgIFRpbWVyT2JqZWN0
KFJ1bkxvb3AqIHJ1bkxvb3ApIDogbV9ydW5Mb29wKHJ1bkxvb3ApCisgICAgeworICAgICAgICBp
bnQgbWV0aG9kSW5kZXggPSBtZXRhT2JqZWN0KCktPmluZGV4T2ZNZXRob2QoInBlcmZvcm1Xb3Jr
KCkiKTsKKyAgICAgICAgbV9tZXRob2QgPSBtZXRhT2JqZWN0KCktPm1ldGhvZChtZXRob2RJbmRl
eCk7CisgICAgfQorCisgICAgUV9TTE9UIHZvaWQgcGVyZm9ybVdvcmsoKSB7IG1fcnVuTG9vcC0+
cGVyZm9ybVdvcmsoKTsgfQorICAgIGlubGluZSB2b2lkIHdha2VVcCgpIHsgbV9tZXRob2QuaW52
b2tlKHRoaXMsIFF0OjpRdWV1ZWRDb25uZWN0aW9uKTsgfQorCitwcm90ZWN0ZWQ6CisgICAgdmly
dHVhbCB2b2lkIHRpbWVyRXZlbnQoUVRpbWVyRXZlbnQqIGV2ZW50KQorICAgIHsKKyAgICAgICAg
UnVuTG9vcDo6VGltZXJCYXNlOjp0aW1lckZpcmVkKG1fcnVuTG9vcCwgZXZlbnQtPnRpbWVySWQo
KSk7CisgICAgfQorCitwcml2YXRlOgorICAgIFJ1bkxvb3AqIG1fcnVuTG9vcDsKKyAgICBRTWV0
YU1ldGhvZCBtX21ldGhvZDsKK307CisKK3N0YXRpYyBRRXZlbnRMb29wKiBjdXJyZW50RXZlbnRM
b29wOworCit2b2lkIFJ1bkxvb3A6OnJ1bigpCit7CisgICAgc3RhdGljIGJvb2wgbWFpbkV2ZW50
TG9vcElzUnVubmluZyA9IGZhbHNlOworICAgIGlmICghbWFpbkV2ZW50TG9vcElzUnVubmluZykg
eworICAgICAgICBtYWluRXZlbnRMb29wSXNSdW5uaW5nID0gdHJ1ZTsKKyAgICAgICAgUUNvcmVB
cHBsaWNhdGlvbjo6ZXhlYygpOworICAgICAgICBtYWluRXZlbnRMb29wSXNSdW5uaW5nID0gZmFs
c2U7CisgICAgfSBlbHNlIHsKKyAgICAgICAgUUV2ZW50TG9vcCBldmVudExvb3A7CisKKyAgICAg
ICAgUUV2ZW50TG9vcCogcHJldmlvdXNFdmVudExvb3AgPSBjdXJyZW50RXZlbnRMb29wOworICAg
ICAgICBjdXJyZW50RXZlbnRMb29wID0gJmV2ZW50TG9vcDsKKworICAgICAgICBldmVudExvb3Au
ZXhlYygpOworCisgICAgICAgIGN1cnJlbnRFdmVudExvb3AgPSBwcmV2aW91c0V2ZW50TG9vcDsK
KyAgICB9Cit9CisKK3ZvaWQgUnVuTG9vcDo6c3RvcCgpCit7CisgICAgaWYgKGN1cnJlbnRFdmVu
dExvb3ApCisgICAgICAgIGN1cnJlbnRFdmVudExvb3AtPmV4aXQoKTsKKyAgICBlbHNlCisgICAg
ICAgIFFDb3JlQXBwbGljYXRpb246OmV4aXQoKTsKK30KKworUnVuTG9vcDo6UnVuTG9vcCgpCisg
ICAgOiBtX3RpbWVyT2JqZWN0KG5ldyBUaW1lck9iamVjdCh0aGlzKSkKK3sKK30KKworUnVuTG9v
cDo6flJ1bkxvb3AoKQoreworICAgIGRlbGV0ZSBtX3RpbWVyT2JqZWN0OworfQorCit2b2lkIFJ1
bkxvb3A6Ondha2VVcCgpCit7CisgICAgbV90aW1lck9iamVjdC0+d2FrZVVwKCk7Cit9CisKKy8v
IFJ1bkxvb3A6OlRpbWVyCisKK3ZvaWQgUnVuTG9vcDo6VGltZXJCYXNlOjp0aW1lckZpcmVkKFJ1
bkxvb3AqIHJ1bkxvb3AsIGludCBJRCkKK3sKKyAgICBUaW1lck1hcDo6aXRlcmF0b3IgaXQgPSBy
dW5Mb29wLT5tX2FjdGl2ZVRpbWVycy5maW5kKElEKTsKKyAgICBBU1NFUlQoaXQgIT0gcnVuTG9v
cC0+bV9hY3RpdmVUaW1lcnMuZW5kKCkpOworICAgIFRpbWVyQmFzZSogdGltZXIgPSBpdC0+c2Vj
b25kOworCisgICAgaWYgKCF0aW1lci0+bV9pc1JlcGVhdGluZykgeworICAgICAgICAvLyBTdG9w
IHRoZSB0aW1lciAoY2FsbGluZyBzdG9wIHdvdWxkIG5lZWQgYW5vdGhlciBoYXNoIHRhYmxlIGxv
b2t1cCkuCisgICAgICAgIHJ1bkxvb3AtPm1fYWN0aXZlVGltZXJzLnJlbW92ZShpdCk7CisgICAg
ICAgIHJ1bkxvb3AtPm1fdGltZXJPYmplY3QtPmtpbGxUaW1lcih0aW1lci0+bV9JRCk7CisgICAg
ICAgIHRpbWVyLT5tX0lEID0gMDsKKyAgICB9CisKKyAgICB0aW1lci0+ZmlyZWQoKTsKK30KKwor
UnVuTG9vcDo6VGltZXJCYXNlOjpUaW1lckJhc2UoUnVuTG9vcCogcnVuTG9vcCkKKyAgICA6IG1f
cnVuTG9vcChydW5Mb29wKQorICAgICwgbV9JRCgwKQorICAgICwgbV9pc1JlcGVhdGluZyhmYWxz
ZSkKK3sKK30KKworUnVuTG9vcDo6VGltZXJCYXNlOjp+VGltZXJCYXNlKCkKK3sKKyAgICBzdG9w
KCk7Cit9CisKK3ZvaWQgUnVuTG9vcDo6VGltZXJCYXNlOjpzdGFydChkb3VibGUgbmV4dEZpcmVJ
bnRlcnZhbCwgYm9vbCByZXBlYXQpCit7CisgICAgc3RvcCgpOworICAgIGludCBtaWxsaXMgPSBz
dGF0aWNfY2FzdDxpbnQ+KG5leHRGaXJlSW50ZXJ2YWwgKiAxMDAwKTsKKyAgICBtX2lzUmVwZWF0
aW5nID0gcmVwZWF0OworICAgIG1fSUQgPSBtX3J1bkxvb3AtPm1fdGltZXJPYmplY3QtPnN0YXJ0
VGltZXIobWlsbGlzKTsKKyAgICBBU1NFUlQobV9JRCk7CisgICAgbV9ydW5Mb29wLT5tX2FjdGl2
ZVRpbWVycy5zZXQobV9JRCwgdGhpcyk7Cit9CisKK3ZvaWQgUnVuTG9vcDo6VGltZXJCYXNlOjpz
dG9wKCkKK3sKKyAgICBpZiAoIW1fSUQpCisgICAgICAgIHJldHVybjsKKyAgICBUaW1lck1hcDo6
aXRlcmF0b3IgaXQgPSBtX3J1bkxvb3AtPm1fYWN0aXZlVGltZXJzLmZpbmQobV9JRCk7CisgICAg
aWYgKGl0ID09IG1fcnVuTG9vcC0+bV9hY3RpdmVUaW1lcnMuZW5kKCkpCisgICAgICAgIHJldHVy
bjsKKworICAgIG1fcnVuTG9vcC0+bV9hY3RpdmVUaW1lcnMucmVtb3ZlKGl0KTsKKyAgICBtX3J1
bkxvb3AtPm1fdGltZXJPYmplY3QtPmtpbGxUaW1lcihtX0lEKTsKKyAgICBtX0lEID0gMDsKK30K
KworYm9vbCBSdW5Mb29wOjpUaW1lckJhc2U6OmlzQWN0aXZlKCkgY29uc3QKK3sKKyAgICByZXR1
cm4gbV9JRDsKK30KKworI2luY2x1ZGUgIlJ1bkxvb3BRdC5tb2MiCisKK30gLy8gbmFtZXNwYWNl
IFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3dpbi9SdW5Mb29w
V2luLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3dpbi9SdW5Mb29wV2luLmNwcApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi4xMjBjMjUyYTY2ODZmMmI1Y2UzZGFkZDliNjQ0ZDAwMGNjZDViMzVkCi0tLSAvZGV2
L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vd2luL1J1bkxvb3BXaW4uY3BwCkBA
IC0wLDAgKzEsMTgxIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEwIEFwcGxlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJl
IG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4g
YmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
IGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3Zp
ZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJ
REVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQg
QU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFO
RCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElO
IE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElB
QkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBM
QVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7
IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBU
SU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRI
RVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcg
TkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRI
RSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lC
SUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1
ZGUgIlJ1bkxvb3AuaCIKKworI2luY2x1ZGUgPHd0Zi9DdXJyZW50VGltZS5oPgorCit1c2luZyBu
YW1lc3BhY2Ugc3RkOworCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK3N0YXRpYyBjb25zdCBVSU5U
IFBlcmZvcm1Xb3JrTWVzc2FnZSA9IFdNX1VTRVIgKyAxOworc3RhdGljIGNvbnN0IExQV1NUUiBr
UnVuTG9vcE1lc3NhZ2VXaW5kb3dDbGFzc05hbWUgPSBMIlJ1bkxvb3BNZXNzYWdlV2luZG93IjsK
KworTFJFU1VMVCBDQUxMQkFDSyBSdW5Mb29wOjpSdW5Mb29wV25kUHJvYyhIV05EIGhXbmQsIFVJ
TlQgbWVzc2FnZSwgV1BBUkFNIHdQYXJhbSwgTFBBUkFNIGxQYXJhbSkKK3sKKyAgICBMT05HX1BU
UiBsb25nUHRyID0gOjpHZXRXaW5kb3dMb25nUHRyKGhXbmQsIDApOworICAgIAorICAgIGlmIChS
dW5Mb29wKiBydW5Mb29wID0gcmVpbnRlcnByZXRfY2FzdDxSdW5Mb29wKj4obG9uZ1B0cikpCisg
ICAgICAgIHJldHVybiBydW5Mb29wLT53bmRQcm9jKGhXbmQsIG1lc3NhZ2UsIHdQYXJhbSwgbFBh
cmFtKTsKKworICAgIGlmIChtZXNzYWdlID09IFdNX0NSRUFURSkgeworICAgICAgICBMUENSRUFU
RVNUUlVDVCBjcmVhdGVTdHJ1Y3QgPSByZWludGVycHJldF9jYXN0PExQQ1JFQVRFU1RSVUNUPihs
UGFyYW0pOworCisgICAgICAgIC8vIEFzc29jaWF0ZSB0aGUgUnVuTG9vcCB3aXRoIHRoZSB3aW5k
b3cuCisgICAgICAgIDo6U2V0V2luZG93TG9uZ1B0cihoV25kLCAwLCAoTE9OR19QVFIpY3JlYXRl
U3RydWN0LT5scENyZWF0ZVBhcmFtcyk7CisgICAgICAgIHJldHVybiAwOworICAgIH0KKworICAg
IHJldHVybiA6OkRlZldpbmRvd1Byb2MoaFduZCwgbWVzc2FnZSwgd1BhcmFtLCBsUGFyYW0pOwor
fQorCitMUkVTVUxUIFJ1bkxvb3A6OnduZFByb2MoSFdORCBoV25kLCBVSU5UIG1lc3NhZ2UsIFdQ
QVJBTSB3UGFyYW0sIExQQVJBTSBsUGFyYW0pCit7CisgICAgc3dpdGNoIChtZXNzYWdlKSB7Cisg
ICAgY2FzZSBQZXJmb3JtV29ya01lc3NhZ2U6CisgICAgICAgIHBlcmZvcm1Xb3JrKCk7CisgICAg
ICAgIHJldHVybiAwOworICAgIGNhc2UgV01fVElNRVI6CisgICAgICAgIFJ1bkxvb3A6OlRpbWVy
QmFzZTo6dGltZXJGaXJlZCh0aGlzLCB3UGFyYW0pOworICAgICAgICByZXR1cm4gMDsKKyAgICB9
CisKKyAgICByZXR1cm4gOjpEZWZXaW5kb3dQcm9jKGhXbmQsIG1lc3NhZ2UsIHdQYXJhbSwgbFBh
cmFtKTsKK30KKwordm9pZCBSdW5Mb29wOjpydW4oKQoreworICAgIE1TRyBtZXNzYWdlOworICAg
IHdoaWxlIChCT09MIHJlc3VsdCA9IDo6R2V0TWVzc2FnZSgmbWVzc2FnZSwgMCwgMCwgMCkpIHsK
KyAgICAgICAgaWYgKHJlc3VsdCA9PSAtMSkKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICA6
OlRyYW5zbGF0ZU1lc3NhZ2UoJm1lc3NhZ2UpOworICAgICAgICA6OkRpc3BhdGNoTWVzc2FnZSgm
bWVzc2FnZSk7CisgICAgfQorfQorCit2b2lkIFJ1bkxvb3A6OnN0b3AoKQoreworICAgIDo6UG9z
dFF1aXRNZXNzYWdlKDApOworfQorCitib29sIFJ1bkxvb3A6OnJlZ2lzdGVyUnVuTG9vcE1lc3Nh
Z2VXaW5kb3dDbGFzcygpCit7CisgICAgLy8gRklYTUU6IFRoaXMgcmVhbGx5IG9ubHkgbmVlZHMg
dG8gYmUgY2FsbGVkIG9uY2UuCisKKyAgICBXTkRDTEFTU0VYIHdpbmRvd0NsYXNzID0geyAwIH07
CisgICAgd2luZG93Q2xhc3MuY2JTaXplICAgICAgICAgID0gc2l6ZW9mKHdpbmRvd0NsYXNzKTsK
KyAgICB3aW5kb3dDbGFzcy5scGZuV25kUHJvYyAgICAgPSBSdW5Mb29wOjpSdW5Mb29wV25kUHJv
YzsKKyAgICB3aW5kb3dDbGFzcy5jYlduZEV4dHJhICAgICAgPSBzaXplb2YoUnVuTG9vcCopOwor
ICAgIHdpbmRvd0NsYXNzLmxwc3pDbGFzc05hbWUgICA9IGtSdW5Mb29wTWVzc2FnZVdpbmRvd0Ns
YXNzTmFtZTsKKworICAgIHJldHVybiAhITo6UmVnaXN0ZXJDbGFzc0V4KCZ3aW5kb3dDbGFzcyk7
Cit9CisKK1J1bkxvb3A6OlJ1bkxvb3AoKQoreworICAgIHJlZ2lzdGVyUnVuTG9vcE1lc3NhZ2VX
aW5kb3dDbGFzcygpOworCisgICAgbV9ydW5Mb29wTWVzc2FnZVdpbmRvdyA9IDo6Q3JlYXRlV2lu
ZG93KGtSdW5Mb29wTWVzc2FnZVdpbmRvd0NsYXNzTmFtZSwgMCwgMCwKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ1dfVVNFREVGQVVMVCwgMCwgQ1dfVVNFREVG
QVVMVCwgMCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSFdO
RF9NRVNTQUdFLCAwLCAwLCB0aGlzKTsKKyAgICBBU1NFUlQoOjpJc1dpbmRvdyhtX3J1bkxvb3BN
ZXNzYWdlV2luZG93KSk7Cit9CisKK1J1bkxvb3A6On5SdW5Mb29wKCkKK3sKKyAgICAvLyBGSVhN
RTogVGVhciBkb3duIHRoZSB3b3JrIGl0ZW0gcXVldWUgaGVyZS4KK30KKwordm9pZCBSdW5Mb29w
Ojp3YWtlVXAoKQoreworICAgIC8vIEZJWE1FOiBObyBuZWVkIHRvIHdha2UgdXAgdGhlIHJ1biBs
b29wIGlmIHdlJ3ZlIGFscmVhZHkgY2FsbGVkIGRpc3BhdGNoCisgICAgLy8gYmVmb3JlIHRoZSBy
dW4gbG9vcCBoYXMgaGFkIHRoZSB0aW1lIHRvIHJlc3BvbmQuCisgICAgOjpQb3N0TWVzc2FnZSht
X3J1bkxvb3BNZXNzYWdlV2luZG93LCBQZXJmb3JtV29ya01lc3NhZ2UsIHJlaW50ZXJwcmV0X2Nh
c3Q8V1BBUkFNPih0aGlzKSwgMCk7Cit9CisKKy8vIFJ1bkxvb3A6OlRpbWVyCisKK3ZvaWQgUnVu
TG9vcDo6VGltZXJCYXNlOjp0aW1lckZpcmVkKFJ1bkxvb3AqIHJ1bkxvb3AsIHVpbnQ2NF90IElE
KQoreworICAgIFRpbWVyTWFwOjppdGVyYXRvciBpdCA9IHJ1bkxvb3AtPm1fYWN0aXZlVGltZXJz
LmZpbmQoSUQpOworICAgIGlmIChpdCA9PSBydW5Mb29wLT5tX2FjdGl2ZVRpbWVycy5lbmQoKSkg
eworICAgICAgICAvLyBUaGUgdGltZXIgbXVzdCBoYXZlIGJlZW4gc3RvcHBlZCBhZnRlciB0aGUg
V01fVElNRVIgbWVzc2FnZSB3YXMgcG9zdGVkIHRvIHRoZSBtZXNzYWdlIHF1ZXVlLgorICAgICAg
ICByZXR1cm47CisgICAgfQorCisgICAgVGltZXJCYXNlKiB0aW1lciA9IGl0LT5zZWNvbmQ7CisK
KyAgICBpZiAoIXRpbWVyLT5tX2lzUmVwZWF0aW5nKSB7CisgICAgICAgIHJ1bkxvb3AtPm1fYWN0
aXZlVGltZXJzLnJlbW92ZShpdCk7CisgICAgICAgIDo6S2lsbFRpbWVyKHJ1bkxvb3AtPm1fcnVu
TG9vcE1lc3NhZ2VXaW5kb3csIElEKTsKKyAgICB9CisKKyAgICB0aW1lci0+ZmlyZWQoKTsKK30K
Kworc3RhdGljIHVpbnQ2NF90IGdlbmVyYXRlVGltZXJJRCgpCit7CisgICAgc3RhdGljIHVpbnQ2
NF90IHVuaXF1ZVRpbWVySUQgPSAxOworICAgIHJldHVybiB1bmlxdWVUaW1lcklEKys7Cit9CisK
K1J1bkxvb3A6OlRpbWVyQmFzZTo6VGltZXJCYXNlKFJ1bkxvb3AqIHJ1bkxvb3ApCisgICAgOiBt
X3J1bkxvb3AocnVuTG9vcCkKKyAgICAsIG1fSUQoZ2VuZXJhdGVUaW1lcklEKCkpCisgICAgLCBt
X2lzUmVwZWF0aW5nKGZhbHNlKQoreworfQorCitSdW5Mb29wOjpUaW1lckJhc2U6On5UaW1lckJh
c2UoKQoreworICAgIHN0b3AoKTsKK30KKwordm9pZCBSdW5Mb29wOjpUaW1lckJhc2U6OnN0YXJ0
KGRvdWJsZSBuZXh0RmlyZUludGVydmFsLCBib29sIHJlcGVhdCkKK3sKKyAgICBtX2lzUmVwZWF0
aW5nID0gcmVwZWF0OworICAgIG1fcnVuTG9vcC0+bV9hY3RpdmVUaW1lcnMuc2V0KG1fSUQsIHRo
aXMpOworICAgIDo6U2V0VGltZXIobV9ydW5Mb29wLT5tX3J1bkxvb3BNZXNzYWdlV2luZG93LCBt
X0lELCBuZXh0RmlyZUludGVydmFsICogMTAwMCwgMCk7Cit9CisKK3ZvaWQgUnVuTG9vcDo6VGlt
ZXJCYXNlOjpzdG9wKCkKK3sKKyAgICBUaW1lck1hcDo6aXRlcmF0b3IgaXQgPSBtX3J1bkxvb3At
Pm1fYWN0aXZlVGltZXJzLmZpbmQobV9JRCk7CisgICAgaWYgKGl0ID09IG1fcnVuTG9vcC0+bV9h
Y3RpdmVUaW1lcnMuZW5kKCkpCisgICAgICAgIHJldHVybjsKKworICAgIG1fcnVuTG9vcC0+bV9h
Y3RpdmVUaW1lcnMucmVtb3ZlKGl0KTsKKyAgICA6OktpbGxUaW1lcihtX3J1bkxvb3AtPm1fcnVu
TG9vcE1lc3NhZ2VXaW5kb3csIG1fSUQpOworfQorCitib29sIFJ1bkxvb3A6OlRpbWVyQmFzZTo6
aXNBY3RpdmUoKSBjb25zdAoreworICAgIHJldHVybiBtX3J1bkxvb3AtPm1fYWN0aXZlVGltZXJz
LmNvbnRhaW5zKG1fSUQpOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0Mi9HTlVtYWtlZmlsZS5hbSBiL1NvdXJjZS9XZWJLaXQyL0dOVW1ha2Vm
aWxlLmFtCmluZGV4IDA5ZmZlZWFmYTBmMWIyOTk5YWQ1YmQzZDA5ZGU3YTExNGFjYWMzNGMuLmM2
YzA3OWFjZDQ4YjQwMmVjMTJkYzc3MWI3ZWQ0Y2VhOTRhN2RhNmQgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQyL0dOVW1ha2VmaWxlLmFtCisrKyBiL1NvdXJjZS9XZWJLaXQyL0dOVW1ha2VmaWxl
LmFtCkBAIC0yMTAsMTUgKzIxMCwxMiBAQCBsaWJ3ZWJraXQyZ3RrX0BXRUJLSVRHVEtfQVBJX01B
Sk9SX1ZFUlNJT05AX0BXRUJLSVRHVEtfQVBJX01JTk9SX1ZFUlNJT05AX2xhX1NPVQogCVNvdXJj
ZS9XZWJLaXQyL1BsYXRmb3JtL0NvcmVJUEMvdW5peC9Db25uZWN0aW9uVW5peC5jcHAgXAogCVNv
dXJjZS9XZWJLaXQyL1BsYXRmb3JtL2d0ay9Mb2dnaW5nR3RrLmNwcCBcCiAJU291cmNlL1dlYktp
dDIvUGxhdGZvcm0vZ3RrL01vZHVsZUd0ay5jcHAgXAotCVNvdXJjZS9XZWJLaXQyL1BsYXRmb3Jt
L2d0ay9SdW5Mb29wR3RrLmNwcCBcCiAJU291cmNlL1dlYktpdDIvUGxhdGZvcm0vZ3RrL1dvcmtR
dWV1ZUd0ay5jcHAgXAogCVNvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL0xvZ2dpbmcuY3BwIFwKIAlT
b3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9Mb2dnaW5nLmggXAogCVNvdXJjZS9XZWJLaXQyL1BsYXRm
b3JtL01vZHVsZS5jcHAgXAogCVNvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL01vZHVsZS5oIFwKIAlT
b3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9QbGF0Zm9ybVByb2Nlc3NJZGVudGlmaWVyLmggXAotCVNv
dXJjZS9XZWJLaXQyL1BsYXRmb3JtL1J1bkxvb3AuY3BwIFwKLQlTb3VyY2UvV2ViS2l0Mi9QbGF0
Zm9ybS9SdW5Mb29wLmggXAogCVNvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL1NoYXJlZE1lbW9yeS5o
IFwKIAlTb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS91bml4L1NoYXJlZE1lbW9yeVVuaXguY3BwIFwK
IAlTb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9Xb3JrUXVldWUuY3BwIFwKQEAgLTEzNjUsMTEgKzEz
NjIsOCBAQCBQcm9ncmFtc19XZWJLaXRQbHVnaW5Qcm9jZXNzX1NPVVJDRVMgPSBcCiAJU291cmNl
L1dlYktpdDIvUGxhdGZvcm0vTW9kdWxlLmggXAogCVNvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL1dv
cmtRdWV1ZS5jcHAgXAogCVNvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL1dvcmtRdWV1ZS5oIFwKLQlT
b3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9SdW5Mb29wLmNwcCBcCi0JU291cmNlL1dlYktpdDIvUGxh
dGZvcm0vUnVuTG9vcC5oIFwKIAlTb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9TaGFyZWRNZW1vcnku
aCBcCiAJU291cmNlL1dlYktpdDIvUGxhdGZvcm0vZ3RrL01vZHVsZUd0ay5jcHAgXAotCVNvdXJj
ZS9XZWJLaXQyL1BsYXRmb3JtL2d0ay9SdW5Mb29wR3RrLmNwcCBcCiAJU291cmNlL1dlYktpdDIv
UGxhdGZvcm0vZ3RrL1dvcmtRdWV1ZUd0ay5jcHAgXAogCVNvdXJjZS9XZWJLaXQyL1BsYXRmb3Jt
L3VuaXgvU2hhcmVkTWVtb3J5VW5peC5jcHAgXAogCVNvdXJjZS9XZWJLaXQyL1BsdWdpblByb2Nl
c3MvUGx1Z2luQ29udHJvbGxlclByb3h5LmNwcCBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
Mi9QbGF0Zm9ybS9Db3JlSVBDL0Nvbm5lY3Rpb24uY3BwIGIvU291cmNlL1dlYktpdDIvUGxhdGZv
cm0vQ29yZUlQQy9Db25uZWN0aW9uLmNwcAppbmRleCAzZTE3YmJkMjMzYWFkNmZlYzU5ZDY4YzYw
NDgyMWFjYWYyNTVjN2EyLi4zYzJmMTRjZWQwM2U4ZjA5YmYwNTM5Njg4OWIxODRlZjhiODVjNTll
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9Db3JlSVBDL0Nvbm5lY3Rpb24u
Y3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL0NvcmVJUEMvQ29ubmVjdGlvbi5jcHAK
QEAgLTI4LDEwICsyOCwxMSBAQAogCiAjaW5jbHVkZSAiQmluYXJ5U2VtYXBob3JlLmgiCiAjaW5j
bHVkZSAiQ29yZUlQQ01lc3NhZ2VLaW5kcy5oIgotI2luY2x1ZGUgIlJ1bkxvb3AuaCIKKyNpbmNs
dWRlIDxXZWJDb3JlL1J1bkxvb3AuaD4KICNpbmNsdWRlIDx3dGYvQ3VycmVudFRpbWUuaD4KIAog
dXNpbmcgbmFtZXNwYWNlIHN0ZDsKK3VzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogCiBuYW1lc3Bh
Y2UgQ29yZUlQQyB7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL0NvcmVJ
UEMvQ29ubmVjdGlvbi5oIGIvU291cmNlL1dlYktpdDIvUGxhdGZvcm0vQ29yZUlQQy9Db25uZWN0
aW9uLmgKaW5kZXggYmFmYTk5OTE4NzUzYWRhNGE3ZTllNTA5NmU3ZTRhZGU0MTYxN2MwYS4uODE1
NTNhZWI3NmJmMDRkYTc4Yjc5ZDczMGQ2MjM4ZWNiZTRhMzVmMCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdDIvUGxhdGZvcm0vQ29yZUlQQy9Db25uZWN0aW9uLmgKKysrIGIvU291cmNlL1dlYktp
dDIvUGxhdGZvcm0vQ29yZUlQQy9Db25uZWN0aW9uLmgKQEAgLTUwLDcgKzUwLDkgQEAgY2xhc3Mg
UVNvY2tldE5vdGlmaWVyOwogI2luY2x1ZGUgIlBsYXRmb3JtUHJvY2Vzc0lkZW50aWZpZXIuaCIK
ICNlbmRpZgogCituYW1lc3BhY2UgV2ViQ29yZSB7CiBjbGFzcyBSdW5Mb29wOworfQogCiBuYW1l
c3BhY2UgQ29yZUlQQyB7CiAKQEAgLTExOCw4ICsxMjAsOCBAQCBwdWJsaWM6CiAgICAgdHlwZWRl
ZiBpbnQgSWRlbnRpZmllcjsKICNlbmRpZgogCi0gICAgc3RhdGljIFBhc3NSZWZQdHI8Q29ubmVj
dGlvbj4gY3JlYXRlU2VydmVyQ29ubmVjdGlvbihJZGVudGlmaWVyLCBDbGllbnQqLCBSdW5Mb29w
KiBjbGllbnRSdW5Mb29wKTsKLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxDb25uZWN0aW9uPiBjcmVh
dGVDbGllbnRDb25uZWN0aW9uKElkZW50aWZpZXIsIENsaWVudCosIFJ1bkxvb3AqIGNsaWVudFJ1
bkxvb3ApOworICAgIHN0YXRpYyBQYXNzUmVmUHRyPENvbm5lY3Rpb24+IGNyZWF0ZVNlcnZlckNv
bm5lY3Rpb24oSWRlbnRpZmllciwgQ2xpZW50KiwgV2ViQ29yZTo6UnVuTG9vcCogY2xpZW50UnVu
TG9vcCk7CisgICAgc3RhdGljIFBhc3NSZWZQdHI8Q29ubmVjdGlvbj4gY3JlYXRlQ2xpZW50Q29u
bmVjdGlvbihJZGVudGlmaWVyLCBDbGllbnQqLCBXZWJDb3JlOjpSdW5Mb29wKiBjbGllbnRSdW5M
b29wKTsKICAgICB+Q29ubmVjdGlvbigpOwogCiAjaWYgT1MoREFSV0lOKQpAQCAtMjA3LDcgKzIw
OSw3IEBAIHB1YmxpYzoKICAgICB0eXBlZGVmIE1lc3NhZ2U8QXJndW1lbnRFbmNvZGVyPiBPdXRn
b2luZ01lc3NhZ2U7CiAKIHByaXZhdGU6Ci0gICAgQ29ubmVjdGlvbihJZGVudGlmaWVyLCBib29s
IGlzU2VydmVyLCBDbGllbnQqLCBSdW5Mb29wKiBjbGllbnRSdW5Mb29wKTsKKyAgICBDb25uZWN0
aW9uKElkZW50aWZpZXIsIGJvb2wgaXNTZXJ2ZXIsIENsaWVudCosIFdlYkNvcmU6OlJ1bkxvb3Aq
IGNsaWVudFJ1bkxvb3ApOwogICAgIHZvaWQgcGxhdGZvcm1Jbml0aWFsaXplKElkZW50aWZpZXIp
OwogICAgIHZvaWQgcGxhdGZvcm1JbnZhbGlkYXRlKCk7CiAgICAgCkBAIC0yNTMsNyArMjU1LDcg
QEAgcHJpdmF0ZToKIAogICAgIGJvb2wgbV9pc0Nvbm5lY3RlZDsKICAgICBXb3JrUXVldWUgbV9j
b25uZWN0aW9uUXVldWU7Ci0gICAgUnVuTG9vcCogbV9jbGllbnRSdW5Mb29wOworICAgIFdlYkNv
cmU6OlJ1bkxvb3AqIG1fY2xpZW50UnVuTG9vcDsKIAogICAgIFZlY3RvcjxRdWV1ZUNsaWVudCo+
IG1fY29ubmVjdGlvblF1ZXVlQ2xpZW50czsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIv
UGxhdGZvcm0vQ29yZUlQQy9tYWMvQ29ubmVjdGlvbk1hYy5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9Q
bGF0Zm9ybS9Db3JlSVBDL21hYy9Db25uZWN0aW9uTWFjLmNwcAppbmRleCA5Nzk3NWFiZWFiYTdl
Zjc4OWE5N2E3OTk0YjQzZjI4NWQ2ZDhmOWM0Li4xMTE5YTI4NDdlYmZhOWM1MWMxNDgxODgwNzcy
NjA5ODU5MTg2MTA2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9Db3JlSVBD
L21hYy9Db25uZWN0aW9uTWFjLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9Db3Jl
SVBDL21hYy9Db25uZWN0aW9uTWFjLmNwcApAQCAtMjksMTEgKzI5LDEyIEBACiAjaW5jbHVkZSAi
Q29yZUlQQ01lc3NhZ2VLaW5kcy5oIgogI2luY2x1ZGUgIk1hY2hQb3J0LmgiCiAjaW5jbHVkZSAi
TWFjaFV0aWxpdGllcy5oIgotI2luY2x1ZGUgIlJ1bkxvb3AuaCIKKyNpbmNsdWRlIDxXZWJDb3Jl
L1J1bkxvb3AuaD4KICNpbmNsdWRlIDxtYWNoL21hY2hfZXJyb3IuaD4KICNpbmNsdWRlIDxtYWNo
L3ZtX21hcC5oPgogCiB1c2luZyBuYW1lc3BhY2Ugc3RkOwordXNpbmcgbmFtZXNwYWNlIFdlYkNv
cmU7CiAKIG5hbWVzcGFjZSBDb3JlSVBDIHsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIv
UGxhdGZvcm0vUnVuTG9vcC5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9SdW5Mb29wLmNw
cApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZTQ5NWVjYzU4M2FjY2E2MWJhMDRiZTAz
OTliOGYzNTM1NzQ3ZjY1MC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9SdW5Mb29wLmNwcAorKysgL2Rldi9udWxs
CkBAIC0xLDcwICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTAgQXBwbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBh
cmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWlu
IHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBp
biBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJv
dmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJP
VklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKLSAqIEFO
RCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLAotICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkg
QU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4g
SU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCi0gKiBCRSBM
SUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVN
UExBUlksIE9SCi0gKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgotICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNF
UzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCi0gKiBJTlRFUlJV
UFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hF
VEhFUiBJTgotICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElO
RyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKLSAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0Yg
VEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKLSAqIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jaW5jbHVkZSAiY29uZmlnLmgiCi0jaW5j
bHVkZSAiUnVuTG9vcC5oIgotCi0jaW5jbHVkZSA8d3RmL1N0ZExpYkV4dHJhcy5oPgotCi1zdGF0
aWMgUnVuTG9vcCogc19tYWluUnVuTG9vcDsKLQotdm9pZCBSdW5Mb29wOjppbml0aWFsaXplTWFp
blJ1bkxvb3AoKQotewotICAgIGlmIChzX21haW5SdW5Mb29wKQotICAgICAgICByZXR1cm47Ci0g
ICAgc19tYWluUnVuTG9vcCA9IFJ1bkxvb3A6OmN1cnJlbnQoKTsKLX0KLQotUnVuTG9vcCogUnVu
TG9vcDo6Y3VycmVudCgpCi17Ci0gICAgREVGSU5FX1NUQVRJQ19MT0NBTChXVEY6OlRocmVhZFNw
ZWNpZmljPFJ1bkxvb3A+LCBydW5Mb29wRGF0YSwgKCkpOwotICAgIHJldHVybiAmKnJ1bkxvb3BE
YXRhOwotfQotCi1SdW5Mb29wKiBSdW5Mb29wOjptYWluKCkKLXsKLSAgICBBU1NFUlQoc19tYWlu
UnVuTG9vcCk7Ci0gICAgcmV0dXJuIHNfbWFpblJ1bkxvb3A7Ci19Ci0KLXZvaWQgUnVuTG9vcDo6
cGVyZm9ybVdvcmsoKQotewotICAgIFZlY3RvcjxGdW5jdGlvbjx2b2lkKCk+ID4gZnVuY3Rpb25R
dWV1ZTsKLSAgICB7Ci0gICAgICAgIE11dGV4TG9ja2VyIGxvY2tlcihtX2Z1bmN0aW9uUXVldWVM
b2NrKTsKLSAgICAgICAgbV9mdW5jdGlvblF1ZXVlLnN3YXAoZnVuY3Rpb25RdWV1ZSk7Ci0gICAg
fQotCi0gICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBmdW5jdGlvblF1ZXVlLnNpemUoKTsgKytp
KQotICAgICAgICBmdW5jdGlvblF1ZXVlW2ldKCk7Ci19Ci0KLXZvaWQgUnVuTG9vcDo6ZGlzcGF0
Y2goY29uc3QgRnVuY3Rpb248dm9pZCgpPiYgZnVuY3Rpb24pCi17Ci0gICAgTXV0ZXhMb2NrZXIg
bG9ja2VyKG1fZnVuY3Rpb25RdWV1ZUxvY2spOwotICAgIG1fZnVuY3Rpb25RdWV1ZS5hcHBlbmQo
ZnVuY3Rpb24pOwotCi0gICAgd2FrZVVwKCk7Ci19CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
Mi9QbGF0Zm9ybS9SdW5Mb29wLmggYi9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9SdW5Mb29wLmgK
ZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDU3YTc5YThmM2YwNjBjNDA1M2E1ZTJmYjA3
NDI4NmFjYTczMzUwYWIuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAK
LS0tIGEvU291cmNlL1dlYktpdDIvUGxhdGZvcm0vUnVuTG9vcC5oCisrKyAvZGV2L251bGwKQEAg
LTEsMTYxICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTAgQXBwbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgotICogQ29weXJpZ2h0IChDKSAyMDEwIE5va2lhIENvcnBvcmF0aW9u
IGFuZC9vciBpdHMgc3Vic2lkaWFyeSgtaWVzKQotICogUG9ydGlvbnMgQ29weXJpZ2h0IChjKSAy
MDEwIE1vdG9yb2xhIE1vYmlsaXR5LCBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAq
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRp
b25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVj
ZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0
aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9u
LgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRT
IENPTlRSSUJVVE9SUyBgYEFTIElTJycKLSAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdB
UlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogVEhFIElNUExJRUQg
V0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB
UgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5D
LiBPUiBJVFMgQ09OVFJJQlVUT1JTCi0gKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElS
RUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCi0gKiBDT05TRVFVRU5USUFM
IERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgot
ICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBS
T0ZJVFM7IE9SIEJVU0lORVNTCi0gKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBP
TiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgotICogQ09OVFJBQ1QsIFNUUklD
VCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkK
LSAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBF
VkVOIElGIEFEVklTRUQgT0YKLSAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAq
LwotCi0jaWZuZGVmIFJ1bkxvb3BfaAotI2RlZmluZSBSdW5Mb29wX2gKLQotI2luY2x1ZGUgPHd0
Zi9Gb3J3YXJkLmg+Ci0jaW5jbHVkZSA8d3RmL0Z1bmN0aW9uYWwuaD4KLSNpbmNsdWRlIDx3dGYv
SGFzaE1hcC5oPgotI2luY2x1ZGUgPHd0Zi9QYXNzT3duUHRyLmg+Ci0jaW5jbHVkZSA8d3RmL1Ro
cmVhZFNwZWNpZmljLmg+Ci0jaW5jbHVkZSA8d3RmL1RocmVhZGluZy5oPgotI2luY2x1ZGUgPHd0
Zi9WZWN0b3IuaD4KLSNpZiBQTEFURk9STShHVEspCi0jaW5jbHVkZSA8d3RmL2dvYmplY3QvR1Jl
ZlB0ci5oPgotdHlwZWRlZiBzdHJ1Y3QgX0dTb3VyY2UgR1NvdXJjZTsKLXR5cGVkZWYgc3RydWN0
IF9HTWFpbkxvb3AgR01haW5Mb29wOwotdHlwZWRlZiBzdHJ1Y3QgX0dNYWluQ29udGV4dCBHTWFp
bkNvbnRleHQ7Ci10eXBlZGVmIGludCBnYm9vbGVhbjsKLSNlbmRpZgotCi1jbGFzcyBSdW5Mb29w
IHsKLXB1YmxpYzoKLSAgICAvLyBNdXN0IGJlIGNhbGxlZCBmcm9tIHRoZSBtYWluIHRocmVhZC4K
LSAgICBzdGF0aWMgdm9pZCBpbml0aWFsaXplTWFpblJ1bkxvb3AoKTsKLQotICAgIHN0YXRpYyBS
dW5Mb29wKiBjdXJyZW50KCk7Ci0gICAgc3RhdGljIFJ1bkxvb3AqIG1haW4oKTsKLQotICAgIHZv
aWQgZGlzcGF0Y2goY29uc3QgRnVuY3Rpb248dm9pZCgpPiYpOwotCi0gICAgc3RhdGljIHZvaWQg
cnVuKCk7Ci0gICAgdm9pZCBzdG9wKCk7Ci0KLSNpZiBQTEFURk9STShNQUMpCi0gICAgdm9pZCBy
dW5Gb3JEdXJhdGlvbihkb3VibGUgZHVyYXRpb24pOwotI2VuZGlmCi0gICAgCi0gICAgY2xhc3Mg
VGltZXJCYXNlIHsKLSAgICAgICAgZnJpZW5kIGNsYXNzIFJ1bkxvb3A7Ci0gICAgcHVibGljOgot
ICAgICAgICBUaW1lckJhc2UoUnVuTG9vcCopOwotICAgICAgICB2aXJ0dWFsIH5UaW1lckJhc2Uo
KTsKLQotICAgICAgICB2b2lkIHN0YXJ0UmVwZWF0aW5nKGRvdWJsZSByZXBlYXRJbnRlcnZhbCkg
eyBzdGFydChyZXBlYXRJbnRlcnZhbCwgdHJ1ZSk7IH0KLSAgICAgICAgdm9pZCBzdGFydE9uZVNo
b3QoZG91YmxlIGludGVydmFsKSB7IHN0YXJ0KGludGVydmFsLCBmYWxzZSk7IH0KLQotICAgICAg
ICB2b2lkIHN0b3AoKTsKLSAgICAgICAgYm9vbCBpc0FjdGl2ZSgpIGNvbnN0OwotCi0gICAgICAg
IHZpcnR1YWwgdm9pZCBmaXJlZCgpID0gMDsKLQotICAgIHByaXZhdGU6Ci0gICAgICAgIHZvaWQg
c3RhcnQoZG91YmxlIG5leHRGaXJlSW50ZXJ2YWwsIGJvb2wgcmVwZWF0KTsKLQotICAgICAgICBS
dW5Mb29wKiBtX3J1bkxvb3A7Ci0KLSNpZiBQTEFURk9STShXSU4pCi0gICAgICAgIHN0YXRpYyB2
b2lkIHRpbWVyRmlyZWQoUnVuTG9vcCosIHVpbnQ2NF90IElEKTsKLSAgICAgICAgdWludDY0X3Qg
bV9JRDsKLSAgICAgICAgYm9vbCBtX2lzUmVwZWF0aW5nOwotI2VsaWYgUExBVEZPUk0oTUFDKQot
ICAgICAgICBzdGF0aWMgdm9pZCB0aW1lckZpcmVkKENGUnVuTG9vcFRpbWVyUmVmLCB2b2lkKik7
Ci0gICAgICAgIENGUnVuTG9vcFRpbWVyUmVmIG1fdGltZXI7Ci0jZWxpZiBQTEFURk9STShRVCkK
LSAgICAgICAgc3RhdGljIHZvaWQgdGltZXJGaXJlZChSdW5Mb29wKiwgaW50IElEKTsKLSAgICAg
ICAgaW50IG1fSUQ7Ci0gICAgICAgIGJvb2wgbV9pc1JlcGVhdGluZzsKLSNlbGlmIFBMQVRGT1JN
KEdUSykKLSAgICAgICAgc3RhdGljIGdib29sZWFuIHRpbWVyRmlyZWRDYWxsYmFjayhSdW5Mb29w
OjpUaW1lckJhc2UqKTsKLSAgICAgICAgZ2Jvb2xlYW4gaXNSZXBlYXRpbmcoKSBjb25zdCB7IHJl
dHVybiBtX2lzUmVwZWF0aW5nOyB9Ci0gICAgICAgIHZvaWQgY2xlYXJUaW1lclNvdXJjZSgpOwot
ICAgICAgICBHUmVmUHRyPEdTb3VyY2U+IG1fdGltZXJTb3VyY2U7Ci0gICAgICAgIGdib29sZWFu
IG1faXNSZXBlYXRpbmc7Ci0jZW5kaWYKLSAgICB9OwotCi0gICAgdGVtcGxhdGUgPHR5cGVuYW1l
IFRpbWVyRmlyZWRDbGFzcz4KLSAgICBjbGFzcyBUaW1lciA6IHB1YmxpYyBUaW1lckJhc2Ugewot
ICAgIHB1YmxpYzoKLSAgICAgICAgdHlwZWRlZiB2b2lkIChUaW1lckZpcmVkQ2xhc3M6OipUaW1l
ckZpcmVkRnVuY3Rpb24pKCk7Ci0KLSAgICAgICAgVGltZXIoUnVuTG9vcCogcnVuTG9vcCwgVGlt
ZXJGaXJlZENsYXNzKiBvLCBUaW1lckZpcmVkRnVuY3Rpb24gZikKLSAgICAgICAgICAgIDogVGlt
ZXJCYXNlKHJ1bkxvb3ApCi0gICAgICAgICAgICAsIG1fb2JqZWN0KG8pCi0gICAgICAgICAgICAs
IG1fZnVuY3Rpb24oZikKLSAgICAgICAgewotICAgICAgICB9Ci0KLSAgICBwcml2YXRlOgotICAg
ICAgICB2aXJ0dWFsIHZvaWQgZmlyZWQoKSB7IChtX29iamVjdC0+Km1fZnVuY3Rpb24pKCk7IH0K
LQotICAgICAgICBUaW1lckZpcmVkQ2xhc3MqIG1fb2JqZWN0OwotICAgICAgICBUaW1lckZpcmVk
RnVuY3Rpb24gbV9mdW5jdGlvbjsKLSAgICB9OwotCi1wcml2YXRlOgotICAgIGZyaWVuZCBjbGFz
cyBXVEY6OlRocmVhZFNwZWNpZmljPFJ1bkxvb3A+OwotCi0gICAgUnVuTG9vcCgpOwotICAgIH5S
dW5Mb29wKCk7Ci0KLSAgICB2b2lkIHBlcmZvcm1Xb3JrKCk7Ci0gICAgdm9pZCB3YWtlVXAoKTsK
LQotICAgIE11dGV4IG1fZnVuY3Rpb25RdWV1ZUxvY2s7Ci0gICAgVmVjdG9yPEZ1bmN0aW9uPHZv
aWQoKT4gPiBtX2Z1bmN0aW9uUXVldWU7Ci0KLSNpZiBQTEFURk9STShXSU4pCi0gICAgc3RhdGlj
IGJvb2wgcmVnaXN0ZXJSdW5Mb29wTWVzc2FnZVdpbmRvd0NsYXNzKCk7Ci0gICAgc3RhdGljIExS
RVNVTFQgQ0FMTEJBQ0sgUnVuTG9vcFduZFByb2MoSFdORCwgVUlOVCwgV1BBUkFNLCBMUEFSQU0p
OwotICAgIExSRVNVTFQgd25kUHJvYyhIV05EIGhXbmQsIFVJTlQgbWVzc2FnZSwgV1BBUkFNIHdQ
YXJhbSwgTFBBUkFNIGxQYXJhbSk7Ci0gICAgSFdORCBtX3J1bkxvb3BNZXNzYWdlV2luZG93Owot
Ci0gICAgdHlwZWRlZiBIYXNoTWFwPHVpbnQ2NF90LCBUaW1lckJhc2UqPiBUaW1lck1hcDsKLSAg
ICBUaW1lck1hcCBtX2FjdGl2ZVRpbWVyczsKLSNlbGlmIFBMQVRGT1JNKE1BQykKLSAgICBzdGF0
aWMgdm9pZCBwZXJmb3JtV29yayh2b2lkKik7Ci0gICAgQ0ZSdW5Mb29wUmVmIG1fcnVuTG9vcDsK
LSAgICBDRlJ1bkxvb3BTb3VyY2VSZWYgbV9ydW5Mb29wU291cmNlOwotICAgIGludCBtX25lc3Rp
bmdMZXZlbDsKLSNlbGlmIFBMQVRGT1JNKFFUKQotICAgIHR5cGVkZWYgSGFzaE1hcDxpbnQsIFRp
bWVyQmFzZSo+IFRpbWVyTWFwOwotICAgIFRpbWVyTWFwIG1fYWN0aXZlVGltZXJzOwotICAgIGNs
YXNzIFRpbWVyT2JqZWN0OwotICAgIFRpbWVyT2JqZWN0KiBtX3RpbWVyT2JqZWN0OwotI2VsaWYg
UExBVEZPUk0oR1RLKQotcHVibGljOgotICAgIHN0YXRpYyBnYm9vbGVhbiBxdWV1ZVdvcmsoUnVu
TG9vcCopOwotICAgIEdNYWluTG9vcCogbWFpbkxvb3AoKTsKLXByaXZhdGU6Ci0gICAgR01haW5D
b250ZXh0KiBtX3J1bkxvb3BDb250ZXh0OwotICAgIEdNYWluTG9vcCogbV9ydW5Mb29wTWFpbjsK
LSNlbmRpZgotfTsKLQotI2VuZGlmIC8vIFJ1bkxvb3BfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdDIvUGxhdGZvcm0vZ3RrL1J1bkxvb3BHdGsuY3BwIGIvU291cmNlL1dlYktpdDIvUGxhdGZv
cm0vZ3RrL1J1bkxvb3BHdGsuY3BwCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA4MWNi
ZWFhZjE4N2M1OWUxY2U3MWZlNDQyOWI4NmQxYjk2NzE2NzkyLi4wMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL2d0ay9S
dW5Mb29wR3RrLmNwcAorKysgL2Rldi9udWxsCkBAIC0xLDEzNCArMCwwIEBACi0vKgotICogQ29w
eXJpZ2h0IChDKSAyMDEwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqIFBvcnRp
b25zIENvcHlyaWdodCAoYykgMjAxMCBNb3Rvcm9sYSBNb2JpbGl0eSwgSW5jLiAgQWxsIHJpZ2h0
cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoK
LSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJv
dmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5
IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRo
ZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdp
dGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZ
IEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCi0gKiBBTkQgQU5ZIEVY
UFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywKLSAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRO
RVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVW
RU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwotICogQkUgTElBQkxFIEZP
UiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBP
UgotICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywgUFJPQ1VSRU1FTlQgT0YKLSAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1Mg
T0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwotICogSU5URVJSVVBUSU9OKSBI
T1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4K
LSAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElH
RU5DRSBPUiBPVEhFUldJU0UpCi0gKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0Ug
T0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCi0gKiBUSEUgUE9TU0lCSUxJVFkg
T0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI2luY2x1ZGUgImNvbmZpZy5oIgotI2luY2x1ZGUgIlJ1
bkxvb3AuaCIKLQotI2luY2x1ZGUgIldLQmFzZS5oIgotI2luY2x1ZGUgPGdsaWIuaD4KLQotUnVu
TG9vcDo6UnVuTG9vcCgpCi17Ci0gICAgbV9ydW5Mb29wQ29udGV4dCA9IGdfbWFpbl9jb250ZXh0
X2RlZmF1bHQoKTsKLSAgICBBU1NFUlQobV9ydW5Mb29wQ29udGV4dCk7Ci0gICAgbV9ydW5Mb29w
TWFpbiA9IGdfbWFpbl9sb29wX25ldyhtX3J1bkxvb3BDb250ZXh0LCBGQUxTRSk7Ci0gICAgQVNT
RVJUKG1fcnVuTG9vcE1haW4pOwotfQotCi1SdW5Mb29wOjp+UnVuTG9vcCgpCi17Ci0gICAgaWYg
KG1fcnVuTG9vcE1haW4pIHsKLSAgICAgICAgaWYgKGdfbWFpbl9sb29wX2lzX3J1bm5pbmcobV9y
dW5Mb29wTWFpbikpCi0gICAgICAgICAgICBnX21haW5fbG9vcF9xdWl0KG1fcnVuTG9vcE1haW4p
OwotICAgICAgICBnX21haW5fbG9vcF91bnJlZihtX3J1bkxvb3BNYWluKTsKLSAgICB9Ci0KLSAg
ICBpZiAobV9ydW5Mb29wQ29udGV4dCkKLSAgICAgICAgZ19tYWluX2NvbnRleHRfdW5yZWYobV9y
dW5Mb29wQ29udGV4dCk7Ci19Ci0KLXZvaWQgUnVuTG9vcDo6cnVuKCkKLXsKLSAgICBnX21haW5f
bG9vcF9ydW4oUnVuTG9vcDo6bWFpbigpLT5tYWluTG9vcCgpKTsKLX0KLQotR01haW5Mb29wKiBS
dW5Mb29wOjptYWluTG9vcCgpCi17Ci0gICAgcmV0dXJuIG1fcnVuTG9vcE1haW47Ci19Ci0KLXZv
aWQgUnVuTG9vcDo6c3RvcCgpCi17Ci0gICAgZ19tYWluX2xvb3BfcXVpdChtX3J1bkxvb3BNYWlu
KTsKLX0KLQotZ2Jvb2xlYW4gUnVuTG9vcDo6cXVldWVXb3JrKFJ1bkxvb3AqIHJ1bkxvb3ApCi17
Ci0gICAgcnVuTG9vcC0+cGVyZm9ybVdvcmsoKTsKLSAgICByZXR1cm4gRkFMU0U7Ci19Ci0KLXZv
aWQgUnVuTG9vcDo6d2FrZVVwKCkKLXsKLSAgICBHUmVmUHRyPEdTb3VyY2U+IHNvdXJjZSA9IGFk
b3B0R1JlZihnX2lkbGVfc291cmNlX25ldygpKTsKLSAgICBnX3NvdXJjZV9zZXRfcHJpb3JpdHko
c291cmNlLmdldCgpLCBHX1BSSU9SSVRZX0RFRkFVTFQpOwotICAgIGdfc291cmNlX3NldF9jYWxs
YmFjayhzb3VyY2UuZ2V0KCksIHJlaW50ZXJwcmV0X2Nhc3Q8R1NvdXJjZUZ1bmM+KCZSdW5Mb29w
OjpxdWV1ZVdvcmspLCB0aGlzLCAwKTsKLSAgICBnX3NvdXJjZV9hdHRhY2goc291cmNlLmdldCgp
LCBtX3J1bkxvb3BDb250ZXh0KTsKLQotICAgIGdfbWFpbl9jb250ZXh0X3dha2V1cChtX3J1bkxv
b3BDb250ZXh0KTsKLX0KLQotUnVuTG9vcDo6VGltZXJCYXNlOjpUaW1lckJhc2UoUnVuTG9vcCog
cnVuTG9vcCkKLSAgICA6IG1fcnVuTG9vcChydW5Mb29wKQotICAgICwgbV90aW1lclNvdXJjZSgw
KQotewotfQotCi1SdW5Mb29wOjpUaW1lckJhc2U6On5UaW1lckJhc2UoKQotewotICAgIHN0b3Ao
KTsKLX0KLQotdm9pZCBSdW5Mb29wOjpUaW1lckJhc2U6OmNsZWFyVGltZXJTb3VyY2UoKQotewot
ICAgIG1fdGltZXJTb3VyY2UgPSAwOwotfQotCi1nYm9vbGVhbiBSdW5Mb29wOjpUaW1lckJhc2U6
OnRpbWVyRmlyZWRDYWxsYmFjayhSdW5Mb29wOjpUaW1lckJhc2UqIHRpbWVyKQotewotICAgIEdT
b3VyY2UqIGN1cnJlbnRUaW1lclNvdXJjZSA9IHRpbWVyLT5tX3RpbWVyU291cmNlLmdldCgpOwot
ICAgIGJvb2wgaXNSZXBlYXRpbmcgPSB0aW1lci0+aXNSZXBlYXRpbmcoKTsKLSAgICAvLyBUaGlz
IGNhbiBjaGFuZ2UgdGhlIHRpbWVyU291cmNlIGJ5IHN0YXJ0aW5nIGEgbmV3IHRpbWVyIHdpdGhp
biB0aGUgY2FsbGJhY2suCi0gICAgdGltZXItPmZpcmVkKCk7Ci0gICAgaWYgKCFpc1JlcGVhdGlu
ZyAmJiBjdXJyZW50VGltZXJTb3VyY2UgPT0gdGltZXItPm1fdGltZXJTb3VyY2UuZ2V0KCkpCi0g
ICAgICAgIHRpbWVyLT5jbGVhclRpbWVyU291cmNlKCk7Ci0gICAgcmV0dXJuIGlzUmVwZWF0aW5n
OwotfQotCi12b2lkIFJ1bkxvb3A6OlRpbWVyQmFzZTo6c3RhcnQoZG91YmxlIGZpcmVJbnRlcnZh
bCwgYm9vbCByZXBlYXQpCi17Ci0gICAgaWYgKG1fdGltZXJTb3VyY2UpCi0gICAgICAgIHN0b3Ao
KTsKLQotICAgIG1fdGltZXJTb3VyY2UgPSBhZG9wdEdSZWYoZ190aW1lb3V0X3NvdXJjZV9uZXco
c3RhdGljX2Nhc3Q8Z3VpbnQ+KGZpcmVJbnRlcnZhbCAqIDEwMDApKSk7Ci0gICAgbV9pc1JlcGVh
dGluZyA9IHJlcGVhdDsKLSAgICBnX3NvdXJjZV9zZXRfY2FsbGJhY2sobV90aW1lclNvdXJjZS5n
ZXQoKSwgcmVpbnRlcnByZXRfY2FzdDxHU291cmNlRnVuYz4oJlJ1bkxvb3A6OlRpbWVyQmFzZTo6
dGltZXJGaXJlZENhbGxiYWNrKSwgdGhpcywgMCk7Ci0gICAgZ19zb3VyY2VfYXR0YWNoKG1fdGlt
ZXJTb3VyY2UuZ2V0KCksIG1fcnVuTG9vcC0+bV9ydW5Mb29wQ29udGV4dCk7Ci19Ci0KLXZvaWQg
UnVuTG9vcDo6VGltZXJCYXNlOjpzdG9wKCkKLXsKLSAgICBpZiAoIW1fdGltZXJTb3VyY2UpCi0g
ICAgICAgIHJldHVybjsKLQotICAgIGdfc291cmNlX2Rlc3Ryb3kobV90aW1lclNvdXJjZS5nZXQo
KSk7Ci0gICAgY2xlYXJUaW1lclNvdXJjZSgpOwotfQotCi1ib29sIFJ1bkxvb3A6OlRpbWVyQmFz
ZTo6aXNBY3RpdmUoKSBjb25zdAotewotICAgIHJldHVybiBtX3RpbWVyU291cmNlOwotfQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdDIvUGxhdGZvcm0vbWFjL1J1bkxvb3BNYWMubW0gYi9Tb3Vy
Y2UvV2ViS2l0Mi9QbGF0Zm9ybS9tYWMvUnVuTG9vcE1hYy5tbQpkZWxldGVkIGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDNiYjg2ZThkOTI3ODMyZGI4MDIyMjIxM2Y2NDk2ODMxZGJiYTQwMy4uMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9QbGF0Zm9ybS9tYWMvUnVuTG9vcE1hYy5tbQorKysgL2Rldi9udWxsCkBAIC0xLDE1MyArMCww
IEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDEwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEu
IFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29w
eXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0g
bXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICog
ICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhl
IGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExF
IElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCi0gKiBBTkQgQU5ZIEVYUFJFU1Mg
T1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAq
IFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZP
UiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNI
QUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwotICogQkUgTElBQkxFIEZPUiBBTlkg
RElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgotICog
Q09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJP
Q1VSRU1FTlQgT0YKLSAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNF
LCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwotICogSU5URVJSVVBUSU9OKSBIT1dFVkVS
IENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KLSAqIENP
TlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBP
UiBPVEhFUldJU0UpCi0gKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJ
UyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCi0gKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VD
SCBEQU1BR0UuCi0gKi8KLQotI2ltcG9ydCAiY29uZmlnLmgiCi0jaW1wb3J0ICJSdW5Mb29wLmgi
Ci0KLXZvaWQgUnVuTG9vcDo6cGVyZm9ybVdvcmsodm9pZCogY29udGV4dCkKLXsKLSAgICAvLyBX
cmFwIG1haW4gdGhyZWFkIGluIGFuIEF1dG9yZWxlYXNlIHBvb2wuICBTZW5kaW5nIG1lc3NhZ2Vz
IGNhbiBjYWxsIAotICAgIC8vIGludG8gb2JqYyBjb2RlIGFuZCBhY2N1bXVsYXRlIG1lbW9yeS4g
IAotICAgIGlmIChjdXJyZW50KCkgPT0gbWFpbigpKSB7Ci0gICAgICAgIE5TQXV0b3JlbGVhc2VQ
b29sICpwb29sID0gW1tOU0F1dG9yZWxlYXNlUG9vbCBhbGxvY10gaW5pdF07Ci0gICAgICAgIHN0
YXRpY19jYXN0PFJ1bkxvb3AqPihjb250ZXh0KS0+cGVyZm9ybVdvcmsoKTsKLSAgICAgICAgW3Bv
b2wgZHJhaW5dOwotICAgIH0gZWxzZQotICAgICAgICBzdGF0aWNfY2FzdDxSdW5Mb29wKj4oY29u
dGV4dCktPnBlcmZvcm1Xb3JrKCk7Ci19Ci0KLVJ1bkxvb3A6OlJ1bkxvb3AoKQotICAgIDogbV9y
dW5Mb29wKENGUnVuTG9vcEdldEN1cnJlbnQoKSkKLSAgICAsIG1fbmVzdGluZ0xldmVsKDApCi17
Ci0gICAgQ0ZSdW5Mb29wU291cmNlQ29udGV4dCBjb250ZXh0ID0geyAwLCB0aGlzLCAwLCAwLCAw
LCAwLCAwLCAwLCAwLCBwZXJmb3JtV29yayB9OwotICAgIG1fcnVuTG9vcFNvdXJjZSA9IENGUnVu
TG9vcFNvdXJjZUNyZWF0ZShrQ0ZBbGxvY2F0b3JEZWZhdWx0LCAwLCAmY29udGV4dCk7Ci0gICAg
Q0ZSdW5Mb29wQWRkU291cmNlKG1fcnVuTG9vcCwgbV9ydW5Mb29wU291cmNlLCBrQ0ZSdW5Mb29w
Q29tbW9uTW9kZXMpOwotfQotCi1SdW5Mb29wOjp+UnVuTG9vcCgpCi17Ci0gICAgLy8gRklYTUU6
IFRlYXIgZG93biB0aGUgd29yayBpdGVtIHF1ZXVlIGhlcmUuCi0gICAgQ0ZSdW5Mb29wU291cmNl
SW52YWxpZGF0ZShtX3J1bkxvb3BTb3VyY2UpOwotICAgIENGUmVsZWFzZShtX3J1bkxvb3BTb3Vy
Y2UpOwotfQotCi12b2lkIFJ1bkxvb3A6OnJ1bigpCi17Ci0gICAgY3VycmVudCgpLT5tX25lc3Rp
bmdMZXZlbCsrOwotICAgIGlmIChjdXJyZW50KCkgPT0gbWFpbigpICYmIGN1cnJlbnQoKS0+bV9u
ZXN0aW5nTGV2ZWwgPT0gMSkgewotICAgICAgICAvLyBVc2UgLVtOU0FwcGxpY2F0aW9uIHJ1bl0g
Zm9yIHRoZSBtYWluIHJ1biBsb29wLgotICAgICAgICBbTlNBcHAgcnVuXTsKLSAgICB9IGVsc2Ug
ewotICAgICAgICBOU0F1dG9yZWxlYXNlUG9vbCAqcG9vbCA9IFtbTlNBdXRvcmVsZWFzZVBvb2wg
YWxsb2NdIGluaXRdOwotICAgICAgICBDRlJ1bkxvb3BSdW4oKTsKLSAgICAgICAgW3Bvb2wgZHJh
aW5dOwotICAgIH0KLSAgICBjdXJyZW50KCktPm1fbmVzdGluZ0xldmVsLS07Ci19Ci0KLXZvaWQg
UnVuTG9vcDo6cnVuRm9yRHVyYXRpb24oZG91YmxlIGR1cmF0aW9uKQotewotICAgIENGUnVuTG9v
cFJ1bkluTW9kZShrQ0ZSdW5Mb29wRGVmYXVsdE1vZGUsIGR1cmF0aW9uLCB0cnVlKTsKLX0KLQot
dm9pZCBSdW5Mb29wOjpzdG9wKCkKLXsKLSAgICBBU1NFUlQobV9ydW5Mb29wID09IENGUnVuTG9v
cEdldEN1cnJlbnQoKSk7Ci0gICAgCi0gICAgaWYgKG1fcnVuTG9vcCA9PSBtYWluKCktPm1fcnVu
TG9vcCAmJiBtX25lc3RpbmdMZXZlbCA9PSAxKSB7Ci0gICAgICAgIFtOU0FwcCBzdG9wOm5pbF07
Ci0gICAgICAgIE5TRXZlbnQgKmV2ZW50ID0gW05TRXZlbnQgb3RoZXJFdmVudFdpdGhUeXBlOk5T
QXBwbGljYXRpb25EZWZpbmVkCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIGxvY2F0aW9uOk5TTWFrZVBvaW50KDAsIDApCi0gICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBtb2RpZmllckZsYWdzOjAKLSAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICB0aW1lc3RhbXA6MC4wCi0gICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIHdpbmRvd051bWJlcjowCi0gICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBjb250ZXh0Om5pbAotICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgc3VidHlwZTogMAotICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRhMTowCi0gICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGEyOjBdOwotICAgICAgICBbTlNBcHAgcG9zdEV2
ZW50OmV2ZW50IGF0U3RhcnQ6dHJ1ZV07Ci0gICAgfSBlbHNlCi0gICAgICAgIENGUnVuTG9vcFN0
b3AobV9ydW5Mb29wKTsKLX0KLQotdm9pZCBSdW5Mb29wOjp3YWtlVXAoKQotewotICAgIENGUnVu
TG9vcFNvdXJjZVNpZ25hbChtX3J1bkxvb3BTb3VyY2UpOwotICAgIENGUnVuTG9vcFdha2VVcCht
X3J1bkxvb3ApOwotfQotCi0vLyBSdW5Mb29wOjpUaW1lcgotCi12b2lkIFJ1bkxvb3A6OlRpbWVy
QmFzZTo6dGltZXJGaXJlZChDRlJ1bkxvb3BUaW1lclJlZiwgdm9pZCogY29udGV4dCkKLXsKLSAg
ICBUaW1lckJhc2UqIHRpbWVyID0gc3RhdGljX2Nhc3Q8VGltZXJCYXNlKj4oY29udGV4dCk7Ci0g
ICAgCi0gICAgLy8gV3JhcCBtYWluIHRocmVhZCBpbiBhbiBBdXRvcmVsZWFzZSBwb29sLiAgVGhl
IHRpbWVyIGNhbiBjYWxsIAotICAgIC8vIGludG8gb2JqYyBjb2RlIGFuZCBhY2N1bXVsYXRlIG1l
bW9yeSBvdXRzaWRlIG9mIHRoZSBtYWluIGV2ZW50IGxvb3AuCi0gICAgaWYgKGN1cnJlbnQoKSA9
PSBtYWluKCkpIHsKLSAgICAgICAgTlNBdXRvcmVsZWFzZVBvb2wgKnBvb2wgPSBbW05TQXV0b3Jl
bGVhc2VQb29sIGFsbG9jXSBpbml0XTsgCi0gICAgICAgIHRpbWVyLT5maXJlZCgpOwotICAgICAg
ICBbcG9vbCBkcmFpbl07Ci0gICAgfSBlbHNlCi0gICAgICAgIHRpbWVyLT5maXJlZCgpOwotfQot
Ci1SdW5Mb29wOjpUaW1lckJhc2U6OlRpbWVyQmFzZShSdW5Mb29wKiBydW5Mb29wKQotICAgIDog
bV9ydW5Mb29wKHJ1bkxvb3ApCi0gICAgLCBtX3RpbWVyKDApCi17Ci19Ci0KLVJ1bkxvb3A6OlRp
bWVyQmFzZTo6flRpbWVyQmFzZSgpCi17Ci0gICAgc3RvcCgpOwotfQotCi12b2lkIFJ1bkxvb3A6
OlRpbWVyQmFzZTo6c3RhcnQoZG91YmxlIG5leHRGaXJlSW50ZXJ2YWwsIGJvb2wgcmVwZWF0KQot
ewotICAgIGlmIChtX3RpbWVyKQotICAgICAgICBzdG9wKCk7Ci0KLSAgICBDRlJ1bkxvb3BUaW1l
ckNvbnRleHQgY29udGV4dCA9IHsgMCwgdGhpcywgMCwgMCwgMCB9OwotICAgIENGVGltZUludGVy
dmFsIHJlcGVhdEludGVydmFsID0gcmVwZWF0ID8gbmV4dEZpcmVJbnRlcnZhbCA6IDA7Ci0gICAg
bV90aW1lciA9IENGUnVuTG9vcFRpbWVyQ3JlYXRlKGtDRkFsbG9jYXRvckRlZmF1bHQsIENGQWJz
b2x1dGVUaW1lR2V0Q3VycmVudCgpICsgbmV4dEZpcmVJbnRlcnZhbCwgcmVwZWF0SW50ZXJ2YWws
IDAsIDAsIHRpbWVyRmlyZWQsICZjb250ZXh0KTsKLSAgICBDRlJ1bkxvb3BBZGRUaW1lcihtX3J1
bkxvb3AtPm1fcnVuTG9vcCwgbV90aW1lciwga0NGUnVuTG9vcENvbW1vbk1vZGVzKTsKLX0KLQot
dm9pZCBSdW5Mb29wOjpUaW1lckJhc2U6OnN0b3AoKQotewotICAgIGlmICghbV90aW1lcikKLSAg
ICAgICAgcmV0dXJuOwotCi0gICAgQ0ZSdW5Mb29wVGltZXJJbnZhbGlkYXRlKG1fdGltZXIpOwot
ICAgIENGUmVsZWFzZShtX3RpbWVyKTsKLSAgICBtX3RpbWVyID0gMDsKLX0KLQotYm9vbCBSdW5M
b29wOjpUaW1lckJhc2U6OmlzQWN0aXZlKCkgY29uc3QKLXsKLSAgICByZXR1cm4gbV90aW1lciAm
JiBDRlJ1bkxvb3BUaW1lcklzVmFsaWQobV90aW1lcik7Ci19CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0Mi9QbGF0Zm9ybS9xdC9SdW5Mb29wUXQuY3BwIGIvU291cmNlL1dlYktpdDIvUGxhdGZv
cm0vcXQvUnVuTG9vcFF0LmNwcApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDA3YTBh
NWIxYWZlMDk4MDM5ODkwOWFiNzBiYjczYjlkOWYwOGRlNy4uMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9xdC9SdW5M
b29wUXQuY3BwCisrKyAvZGV2L251bGwKQEAgLTEsMTYzICswLDAgQEAKLS8qCi0gKiBDb3B5cmln
aHQgKEMpIDIwMTAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICogQ29weXJpZ2h0
IChDKSAyMDEwIE5va2lhIENvcnBvcmF0aW9uIGFuZC9vciBpdHMgc3Vic2lkaWFyeSgtaWVzKQot
ICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0
cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQK
LSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJl
cHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1
bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJp
YnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBB
TkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKLSAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBM
SUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogVEhFIElN
UExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFS
VElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQ
TEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCi0gKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1Qs
IElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCi0gKiBDT05TRVFV
RU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVO
VCBPRgotICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEs
IE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCi0gKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VE
IEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgotICogQ09OVFJBQ1Qs
IFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVS
V0lTRSkKLSAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YKLSAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFH
RS4KLSAqLwotCi0jaW5jbHVkZSAiY29uZmlnLmgiCi0jaW5jbHVkZSAiUnVuTG9vcC5oIgotCi0j
aW5jbHVkZSA8UUNvcmVBcHBsaWNhdGlvbj4KLSNpbmNsdWRlIDxRQWJzdHJhY3RFdmVudERpc3Bh
dGNoZXI+Ci0jaW5jbHVkZSA8UU9iamVjdD4KLSNpbmNsdWRlIDxRTWV0YU1ldGhvZD4KLSNpbmNs
dWRlIDxRTWV0YU9iamVjdD4KLSNpbmNsdWRlIDxRVGltZXJFdmVudD4KLQotY2xhc3MgUnVuTG9v
cDo6VGltZXJPYmplY3QgOiBwdWJsaWMgUU9iamVjdAotewotICAgIFFfT0JKRUNUCi1wdWJsaWM6
Ci0gICAgVGltZXJPYmplY3QoUnVuTG9vcCogcnVuTG9vcCkgOiBtX3J1bkxvb3AocnVuTG9vcCkK
LSAgICB7Ci0gICAgICAgIGludCBtZXRob2RJbmRleCA9IG1ldGFPYmplY3QoKS0+aW5kZXhPZk1l
dGhvZCgicGVyZm9ybVdvcmsoKSIpOwotICAgICAgICBtX21ldGhvZCA9IG1ldGFPYmplY3QoKS0+
bWV0aG9kKG1ldGhvZEluZGV4KTsKLSAgICB9Ci0KLSAgICBRX1NMT1Qgdm9pZCBwZXJmb3JtV29y
aygpIHsgbV9ydW5Mb29wLT5wZXJmb3JtV29yaygpOyB9Ci0gICAgaW5saW5lIHZvaWQgd2FrZVVw
KCkgeyBtX21ldGhvZC5pbnZva2UodGhpcywgUXQ6OlF1ZXVlZENvbm5lY3Rpb24pOyB9Ci0KLXBy
b3RlY3RlZDoKLSAgICB2aXJ0dWFsIHZvaWQgdGltZXJFdmVudChRVGltZXJFdmVudCogZXZlbnQp
Ci0gICAgewotICAgICAgICBSdW5Mb29wOjpUaW1lckJhc2U6OnRpbWVyRmlyZWQobV9ydW5Mb29w
LCBldmVudC0+dGltZXJJZCgpKTsKLSAgICB9Ci0KLXByaXZhdGU6Ci0gICAgUnVuTG9vcCogbV9y
dW5Mb29wOwotICAgIFFNZXRhTWV0aG9kIG1fbWV0aG9kOwotfTsKLQotc3RhdGljIFFFdmVudExv
b3AqIGN1cnJlbnRFdmVudExvb3A7Ci0KLXZvaWQgUnVuTG9vcDo6cnVuKCkKLXsKLSAgICBzdGF0
aWMgYm9vbCBtYWluRXZlbnRMb29wSXNSdW5uaW5nID0gZmFsc2U7Ci0gICAgaWYgKCFtYWluRXZl
bnRMb29wSXNSdW5uaW5nKSB7Ci0gICAgICAgIG1haW5FdmVudExvb3BJc1J1bm5pbmcgPSB0cnVl
OwotICAgICAgICBRQ29yZUFwcGxpY2F0aW9uOjpleGVjKCk7Ci0gICAgICAgIG1haW5FdmVudExv
b3BJc1J1bm5pbmcgPSBmYWxzZTsKLSAgICB9IGVsc2UgewotICAgICAgICBRRXZlbnRMb29wIGV2
ZW50TG9vcDsKLQotICAgICAgICBRRXZlbnRMb29wKiBwcmV2aW91c0V2ZW50TG9vcCA9IGN1cnJl
bnRFdmVudExvb3A7Ci0gICAgICAgIGN1cnJlbnRFdmVudExvb3AgPSAmZXZlbnRMb29wOwotCi0g
ICAgICAgIGV2ZW50TG9vcC5leGVjKCk7Ci0KLSAgICAgICAgY3VycmVudEV2ZW50TG9vcCA9IHBy
ZXZpb3VzRXZlbnRMb29wOwotICAgIH0KLX0KLQotdm9pZCBSdW5Mb29wOjpzdG9wKCkKLXsKLSAg
ICBpZiAoY3VycmVudEV2ZW50TG9vcCkKLSAgICAgICAgY3VycmVudEV2ZW50TG9vcC0+ZXhpdCgp
OwotICAgIGVsc2UKLSAgICAgICAgUUNvcmVBcHBsaWNhdGlvbjo6ZXhpdCgpOwotfQotCi1SdW5M
b29wOjpSdW5Mb29wKCkKLSAgICA6IG1fdGltZXJPYmplY3QobmV3IFRpbWVyT2JqZWN0KHRoaXMp
KQotewotfQotCi1SdW5Mb29wOjp+UnVuTG9vcCgpCi17Ci0gICAgZGVsZXRlIG1fdGltZXJPYmpl
Y3Q7Ci19Ci0KLXZvaWQgUnVuTG9vcDo6d2FrZVVwKCkKLXsKLSAgICBtX3RpbWVyT2JqZWN0LT53
YWtlVXAoKTsKLX0KLQotLy8gUnVuTG9vcDo6VGltZXIKLQotdm9pZCBSdW5Mb29wOjpUaW1lckJh
c2U6OnRpbWVyRmlyZWQoUnVuTG9vcCogcnVuTG9vcCwgaW50IElEKQotewotICAgIFRpbWVyTWFw
OjppdGVyYXRvciBpdCA9IHJ1bkxvb3AtPm1fYWN0aXZlVGltZXJzLmZpbmQoSUQpOwotICAgIEFT
U0VSVChpdCAhPSBydW5Mb29wLT5tX2FjdGl2ZVRpbWVycy5lbmQoKSk7Ci0gICAgVGltZXJCYXNl
KiB0aW1lciA9IGl0LT5zZWNvbmQ7Ci0KLSAgICBpZiAoIXRpbWVyLT5tX2lzUmVwZWF0aW5nKSB7
Ci0gICAgICAgIC8vIFN0b3AgdGhlIHRpbWVyIChjYWxsaW5nIHN0b3Agd291bGQgbmVlZCBhbm90
aGVyIGhhc2ggdGFibGUgbG9va3VwKS4KLSAgICAgICAgcnVuTG9vcC0+bV9hY3RpdmVUaW1lcnMu
cmVtb3ZlKGl0KTsKLSAgICAgICAgcnVuTG9vcC0+bV90aW1lck9iamVjdC0+a2lsbFRpbWVyKHRp
bWVyLT5tX0lEKTsKLSAgICAgICAgdGltZXItPm1fSUQgPSAwOwotICAgIH0KLQotICAgIHRpbWVy
LT5maXJlZCgpOwotfQotCi1SdW5Mb29wOjpUaW1lckJhc2U6OlRpbWVyQmFzZShSdW5Mb29wKiBy
dW5Mb29wKQotICAgIDogbV9ydW5Mb29wKHJ1bkxvb3ApCi0gICAgLCBtX0lEKDApCi0gICAgLCBt
X2lzUmVwZWF0aW5nKGZhbHNlKQotewotfQotCi1SdW5Mb29wOjpUaW1lckJhc2U6On5UaW1lckJh
c2UoKQotewotICAgIHN0b3AoKTsKLX0KLQotdm9pZCBSdW5Mb29wOjpUaW1lckJhc2U6OnN0YXJ0
KGRvdWJsZSBuZXh0RmlyZUludGVydmFsLCBib29sIHJlcGVhdCkKLXsKLSAgICBzdG9wKCk7Ci0g
ICAgaW50IG1pbGxpcyA9IHN0YXRpY19jYXN0PGludD4obmV4dEZpcmVJbnRlcnZhbCAqIDEwMDAp
OwotICAgIG1faXNSZXBlYXRpbmcgPSByZXBlYXQ7Ci0gICAgbV9JRCA9IG1fcnVuTG9vcC0+bV90
aW1lck9iamVjdC0+c3RhcnRUaW1lcihtaWxsaXMpOwotICAgIEFTU0VSVChtX0lEKTsKLSAgICBt
X3J1bkxvb3AtPm1fYWN0aXZlVGltZXJzLnNldChtX0lELCB0aGlzKTsKLX0KLQotdm9pZCBSdW5M
b29wOjpUaW1lckJhc2U6OnN0b3AoKQotewotICAgIGlmICghbV9JRCkKLSAgICAgICAgcmV0dXJu
OwotICAgIFRpbWVyTWFwOjppdGVyYXRvciBpdCA9IG1fcnVuTG9vcC0+bV9hY3RpdmVUaW1lcnMu
ZmluZChtX0lEKTsKLSAgICBpZiAoaXQgPT0gbV9ydW5Mb29wLT5tX2FjdGl2ZVRpbWVycy5lbmQo
KSkKLSAgICAgICAgcmV0dXJuOwotCi0gICAgbV9ydW5Mb29wLT5tX2FjdGl2ZVRpbWVycy5yZW1v
dmUoaXQpOwotICAgIG1fcnVuTG9vcC0+bV90aW1lck9iamVjdC0+a2lsbFRpbWVyKG1fSUQpOwot
ICAgIG1fSUQgPSAwOwotfQotCi1ib29sIFJ1bkxvb3A6OlRpbWVyQmFzZTo6aXNBY3RpdmUoKSBj
b25zdAotewotICAgIHJldHVybiBtX0lEOwotfQotCi0jaW5jbHVkZSAiUnVuTG9vcFF0Lm1vYyIK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL3dpbi9SdW5Mb29wV2luLmNwcCBi
L1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL3dpbi9SdW5Mb29wV2luLmNwcApkZWxldGVkIGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggZGZiY2FlZTU2MmU2NTM1OTExYWVhY2QxZmZiMDQ5YmUxNzhmMDFm
NS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2Uv
V2ViS2l0Mi9QbGF0Zm9ybS93aW4vUnVuTG9vcFdpbi5jcHAKKysrIC9kZXYvbnVsbApAQCAtMSwx
NzkgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMCBBcHBsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6
Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFi
b3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFy
eSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0
aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3
aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBC
WSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwotICogQU5EIEFOWSBF
WFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sCi0gKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklU
TkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBF
VkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKLSAqIEJFIExJQUJMRSBG
T1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwg
T1IKLSAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sIFBST0NVUkVNRU5UIE9GCi0gKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NT
IE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKLSAqIElOVEVSUlVQVElPTikg
SE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElO
Ci0gKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJ
R0VOQ0UgT1IgT1RIRVJXSVNFKQotICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNF
IE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgotICogVEhFIFBPU1NJQklMSVRZ
IE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNpbmNsdWRlICJjb25maWcuaCIKLSNpbmNsdWRlICJS
dW5Mb29wLmgiCi0KLSNpbmNsdWRlICJCaW5hcnlTZW1hcGhvcmUuaCIKLSNpbmNsdWRlIDx3dGYv
Q3VycmVudFRpbWUuaD4KLQotdXNpbmcgbmFtZXNwYWNlIENvcmVJUEM7Ci11c2luZyBuYW1lc3Bh
Y2Ugc3RkOwotCi1zdGF0aWMgY29uc3QgVUlOVCBQZXJmb3JtV29ya01lc3NhZ2UgPSBXTV9VU0VS
ICsgMTsKLXN0YXRpYyBjb25zdCBMUFdTVFIga1J1bkxvb3BNZXNzYWdlV2luZG93Q2xhc3NOYW1l
ID0gTCJSdW5Mb29wTWVzc2FnZVdpbmRvdyI7Ci0KLUxSRVNVTFQgQ0FMTEJBQ0sgUnVuTG9vcDo6
UnVuTG9vcFduZFByb2MoSFdORCBoV25kLCBVSU5UIG1lc3NhZ2UsIFdQQVJBTSB3UGFyYW0sIExQ
QVJBTSBsUGFyYW0pCi17Ci0gICAgTE9OR19QVFIgbG9uZ1B0ciA9IDo6R2V0V2luZG93TG9uZ1B0
cihoV25kLCAwKTsKLSAgICAKLSAgICBpZiAoUnVuTG9vcCogcnVuTG9vcCA9IHJlaW50ZXJwcmV0
X2Nhc3Q8UnVuTG9vcCo+KGxvbmdQdHIpKQotICAgICAgICByZXR1cm4gcnVuTG9vcC0+d25kUHJv
YyhoV25kLCBtZXNzYWdlLCB3UGFyYW0sIGxQYXJhbSk7Ci0KLSAgICBpZiAobWVzc2FnZSA9PSBX
TV9DUkVBVEUpIHsKLSAgICAgICAgTFBDUkVBVEVTVFJVQ1QgY3JlYXRlU3RydWN0ID0gcmVpbnRl
cnByZXRfY2FzdDxMUENSRUFURVNUUlVDVD4obFBhcmFtKTsKLQotICAgICAgICAvLyBBc3NvY2lh
dGUgdGhlIFJ1bkxvb3Agd2l0aCB0aGUgd2luZG93LgotICAgICAgICA6OlNldFdpbmRvd0xvbmdQ
dHIoaFduZCwgMCwgKExPTkdfUFRSKWNyZWF0ZVN0cnVjdC0+bHBDcmVhdGVQYXJhbXMpOwotICAg
ICAgICByZXR1cm4gMDsKLSAgICB9Ci0KLSAgICByZXR1cm4gOjpEZWZXaW5kb3dQcm9jKGhXbmQs
IG1lc3NhZ2UsIHdQYXJhbSwgbFBhcmFtKTsKLX0KLQotTFJFU1VMVCBSdW5Mb29wOjp3bmRQcm9j
KEhXTkQgaFduZCwgVUlOVCBtZXNzYWdlLCBXUEFSQU0gd1BhcmFtLCBMUEFSQU0gbFBhcmFtKQot
ewotICAgIHN3aXRjaCAobWVzc2FnZSkgewotICAgIGNhc2UgUGVyZm9ybVdvcmtNZXNzYWdlOgot
ICAgICAgICBwZXJmb3JtV29yaygpOwotICAgICAgICByZXR1cm4gMDsKLSAgICBjYXNlIFdNX1RJ
TUVSOgotICAgICAgICBSdW5Mb29wOjpUaW1lckJhc2U6OnRpbWVyRmlyZWQodGhpcywgd1BhcmFt
KTsKLSAgICAgICAgcmV0dXJuIDA7Ci0gICAgfQotCi0gICAgcmV0dXJuIDo6RGVmV2luZG93UHJv
YyhoV25kLCBtZXNzYWdlLCB3UGFyYW0sIGxQYXJhbSk7Ci19Ci0KLXZvaWQgUnVuTG9vcDo6cnVu
KCkKLXsKLSAgICBNU0cgbWVzc2FnZTsKLSAgICB3aGlsZSAoQk9PTCByZXN1bHQgPSA6OkdldE1l
c3NhZ2UoJm1lc3NhZ2UsIDAsIDAsIDApKSB7Ci0gICAgICAgIGlmIChyZXN1bHQgPT0gLTEpCi0g
ICAgICAgICAgICBicmVhazsKLSAgICAgICAgOjpUcmFuc2xhdGVNZXNzYWdlKCZtZXNzYWdlKTsK
LSAgICAgICAgOjpEaXNwYXRjaE1lc3NhZ2UoJm1lc3NhZ2UpOwotICAgIH0KLX0KLQotdm9pZCBS
dW5Mb29wOjpzdG9wKCkKLXsKLSAgICA6OlBvc3RRdWl0TWVzc2FnZSgwKTsKLX0KLQotYm9vbCBS
dW5Mb29wOjpyZWdpc3RlclJ1bkxvb3BNZXNzYWdlV2luZG93Q2xhc3MoKQotewotICAgIC8vIEZJ
WE1FOiBUaGlzIHJlYWxseSBvbmx5IG5lZWRzIHRvIGJlIGNhbGxlZCBvbmNlLgotCi0gICAgV05E
Q0xBU1NFWCB3aW5kb3dDbGFzcyA9IHsgMCB9OwotICAgIHdpbmRvd0NsYXNzLmNiU2l6ZSAgICAg
ICAgICA9IHNpemVvZih3aW5kb3dDbGFzcyk7Ci0gICAgd2luZG93Q2xhc3MubHBmblduZFByb2Mg
ICAgID0gUnVuTG9vcDo6UnVuTG9vcFduZFByb2M7Ci0gICAgd2luZG93Q2xhc3MuY2JXbmRFeHRy
YSAgICAgID0gc2l6ZW9mKFJ1bkxvb3AqKTsKLSAgICB3aW5kb3dDbGFzcy5scHN6Q2xhc3NOYW1l
ICAgPSBrUnVuTG9vcE1lc3NhZ2VXaW5kb3dDbGFzc05hbWU7Ci0KLSAgICByZXR1cm4gISE6OlJl
Z2lzdGVyQ2xhc3NFeCgmd2luZG93Q2xhc3MpOwotfQotCi1SdW5Mb29wOjpSdW5Mb29wKCkKLXsK
LSAgICByZWdpc3RlclJ1bkxvb3BNZXNzYWdlV2luZG93Q2xhc3MoKTsKLQotICAgIG1fcnVuTG9v
cE1lc3NhZ2VXaW5kb3cgPSA6OkNyZWF0ZVdpbmRvdyhrUnVuTG9vcE1lc3NhZ2VXaW5kb3dDbGFz
c05hbWUsIDAsIDAsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IENXX1VTRURFRkFVTFQsIDAsIENXX1VTRURFRkFVTFQsIDAsCi0gICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIEhXTkRfTUVTU0FHRSwgMCwgMCwgdGhpcyk7Ci0gICAg
QVNTRVJUKDo6SXNXaW5kb3cobV9ydW5Mb29wTWVzc2FnZVdpbmRvdykpOwotfQotCi1SdW5Mb29w
Ojp+UnVuTG9vcCgpCi17Ci0gICAgLy8gRklYTUU6IFRlYXIgZG93biB0aGUgd29yayBpdGVtIHF1
ZXVlIGhlcmUuCi19Ci0KLXZvaWQgUnVuTG9vcDo6d2FrZVVwKCkKLXsKLSAgICAvLyBGSVhNRTog
Tm8gbmVlZCB0byB3YWtlIHVwIHRoZSBydW4gbG9vcCBpZiB3ZSd2ZSBhbHJlYWR5IGNhbGxlZCBk
aXNwYXRjaAotICAgIC8vIGJlZm9yZSB0aGUgcnVuIGxvb3AgaGFzIGhhZCB0aGUgdGltZSB0byBy
ZXNwb25kLgotICAgIDo6UG9zdE1lc3NhZ2UobV9ydW5Mb29wTWVzc2FnZVdpbmRvdywgUGVyZm9y
bVdvcmtNZXNzYWdlLCByZWludGVycHJldF9jYXN0PFdQQVJBTT4odGhpcyksIDApOwotfQotCi0v
LyBSdW5Mb29wOjpUaW1lcgotCi12b2lkIFJ1bkxvb3A6OlRpbWVyQmFzZTo6dGltZXJGaXJlZChS
dW5Mb29wKiBydW5Mb29wLCB1aW50NjRfdCBJRCkKLXsKLSAgICBUaW1lck1hcDo6aXRlcmF0b3Ig
aXQgPSBydW5Mb29wLT5tX2FjdGl2ZVRpbWVycy5maW5kKElEKTsKLSAgICBpZiAoaXQgPT0gcnVu
TG9vcC0+bV9hY3RpdmVUaW1lcnMuZW5kKCkpIHsKLSAgICAgICAgLy8gVGhlIHRpbWVyIG11c3Qg
aGF2ZSBiZWVuIHN0b3BwZWQgYWZ0ZXIgdGhlIFdNX1RJTUVSIG1lc3NhZ2Ugd2FzIHBvc3RlZCB0
byB0aGUgbWVzc2FnZSBxdWV1ZS4KLSAgICAgICAgcmV0dXJuOwotICAgIH0KLQotICAgIFRpbWVy
QmFzZSogdGltZXIgPSBpdC0+c2Vjb25kOwotCi0gICAgaWYgKCF0aW1lci0+bV9pc1JlcGVhdGlu
ZykgewotICAgICAgICBydW5Mb29wLT5tX2FjdGl2ZVRpbWVycy5yZW1vdmUoaXQpOwotICAgICAg
ICA6OktpbGxUaW1lcihydW5Mb29wLT5tX3J1bkxvb3BNZXNzYWdlV2luZG93LCBJRCk7Ci0gICAg
fQotCi0gICAgdGltZXItPmZpcmVkKCk7Ci19Ci0KLXN0YXRpYyB1aW50NjRfdCBnZW5lcmF0ZVRp
bWVySUQoKQotewotICAgIHN0YXRpYyB1aW50NjRfdCB1bmlxdWVUaW1lcklEID0gMTsKLSAgICBy
ZXR1cm4gdW5pcXVlVGltZXJJRCsrOwotfQotCi1SdW5Mb29wOjpUaW1lckJhc2U6OlRpbWVyQmFz
ZShSdW5Mb29wKiBydW5Mb29wKQotICAgIDogbV9ydW5Mb29wKHJ1bkxvb3ApCi0gICAgLCBtX0lE
KGdlbmVyYXRlVGltZXJJRCgpKQotICAgICwgbV9pc1JlcGVhdGluZyhmYWxzZSkKLXsKLX0KLQot
UnVuTG9vcDo6VGltZXJCYXNlOjp+VGltZXJCYXNlKCkKLXsKLSAgICBzdG9wKCk7Ci19Ci0KLXZv
aWQgUnVuTG9vcDo6VGltZXJCYXNlOjpzdGFydChkb3VibGUgbmV4dEZpcmVJbnRlcnZhbCwgYm9v
bCByZXBlYXQpCi17Ci0gICAgbV9pc1JlcGVhdGluZyA9IHJlcGVhdDsKLSAgICBtX3J1bkxvb3At
Pm1fYWN0aXZlVGltZXJzLnNldChtX0lELCB0aGlzKTsKLSAgICA6OlNldFRpbWVyKG1fcnVuTG9v
cC0+bV9ydW5Mb29wTWVzc2FnZVdpbmRvdywgbV9JRCwgbmV4dEZpcmVJbnRlcnZhbCAqIDEwMDAs
IDApOwotfQotCi12b2lkIFJ1bkxvb3A6OlRpbWVyQmFzZTo6c3RvcCgpCi17Ci0gICAgVGltZXJN
YXA6Oml0ZXJhdG9yIGl0ID0gbV9ydW5Mb29wLT5tX2FjdGl2ZVRpbWVycy5maW5kKG1fSUQpOwot
ICAgIGlmIChpdCA9PSBtX3J1bkxvb3AtPm1fYWN0aXZlVGltZXJzLmVuZCgpKQotICAgICAgICBy
ZXR1cm47Ci0KLSAgICBtX3J1bkxvb3AtPm1fYWN0aXZlVGltZXJzLnJlbW92ZShpdCk7Ci0gICAg
OjpLaWxsVGltZXIobV9ydW5Mb29wLT5tX3J1bkxvb3BNZXNzYWdlV2luZG93LCBtX0lEKTsKLX0K
LQotYm9vbCBSdW5Mb29wOjpUaW1lckJhc2U6OmlzQWN0aXZlKCkgY29uc3QKLXsKLSAgICByZXR1
cm4gbV9ydW5Mb29wLT5tX2FjdGl2ZVRpbWVycy5jb250YWlucyhtX0lEKTsKLX0KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQyL1BsdWdpblByb2Nlc3MvUGx1Z2luQ29udHJvbGxlclByb3h5Lmgg
Yi9Tb3VyY2UvV2ViS2l0Mi9QbHVnaW5Qcm9jZXNzL1BsdWdpbkNvbnRyb2xsZXJQcm94eS5oCmlu
ZGV4IDUxYzM0OGRhMWE1MmNkMjBlNTk5OTkwN2E1Y2JlYWQ5NWZkNjhlYzMuLmM3OTIxMWE4YzJh
ZDJiNDM0OTQ0ZDk5ZDVhZGNkYjY0MzRkZGIyZTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQy
L1BsdWdpblByb2Nlc3MvUGx1Z2luQ29udHJvbGxlclByb3h5LmgKKysrIGIvU291cmNlL1dlYktp
dDIvUGx1Z2luUHJvY2Vzcy9QbHVnaW5Db250cm9sbGVyUHJveHkuaApAQCAtMzIsOCArMzIsOCBA
QAogI2luY2x1ZGUgIlBsdWdpbi5oIgogI2luY2x1ZGUgIlBsdWdpbkNvbnRyb2xsZXIuaCIKICNp
bmNsdWRlICJQbHVnaW5Db250cm9sbGVyUHJveHlNZXNzYWdlcy5oIgotI2luY2x1ZGUgIlJ1bkxv
b3AuaCIKICNpbmNsdWRlICJTaGFyZWFibGVCaXRtYXAuaCIKKyNpbmNsdWRlIDxXZWJDb3JlL1J1
bkxvb3AuaD4KICNpbmNsdWRlIDx3dGYvTm9uY29weWFibGUuaD4KIAogI2lmIFBMQVRGT1JNKE1B
QykKQEAgLTE2NywxNCArMTY3LDE0IEBAIHByaXZhdGU6CiAgICAgV2ViQ29yZTo6SW50UmVjdCBt
X2RpcnR5UmVjdDsKIAogICAgIC8vIFRoZSBwYWludCB0aW1lciwgdXNlZCBmb3IgY29hbGVzY2lu
ZyBwYWludGluZy4KLSAgICBSdW5Mb29wOjpUaW1lcjxQbHVnaW5Db250cm9sbGVyUHJveHk+IG1f
cGFpbnRUaW1lcjsKKyAgICBXZWJDb3JlOjpSdW5Mb29wOjpUaW1lcjxQbHVnaW5Db250cm9sbGVy
UHJveHk+IG1fcGFpbnRUaW1lcjsKICAgICAKICAgICAvLyBBIGNvdW50ZXIgdXNlZCB0byBwcmV2
ZW50IHRoZSBwbHVnLWluIGZyb20gYmVpbmcgZGVzdHJveWVkLgogICAgIHVuc2lnbmVkIG1fcGx1
Z2luRGVzdHJ1Y3Rpb25Qcm90ZWN0Q291bnQ7CiAKICAgICAvLyBBIHRpbWVyIHRoYXQgd2UgdXNl
IHRvIHByZXZlbnQgZGVzdHJ1Y3Rpb24gb2YgdGhlIHBsdWctaW4gd2hpbGUgcGx1Zy1pbgogICAg
IC8vIGNvZGUgaXMgb24gdGhlIHN0YWNrLgotICAgIFJ1bkxvb3A6OlRpbWVyPFBsdWdpbkNvbnRy
b2xsZXJQcm94eT4gbV9wbHVnaW5EZXN0cm95VGltZXI7CisgICAgV2ViQ29yZTo6UnVuTG9vcDo6
VGltZXI8UGx1Z2luQ29udHJvbGxlclByb3h5PiBtX3BsdWdpbkRlc3Ryb3lUaW1lcjsKIAogICAg
IC8vIFdpbGwgcG9pbnQgdG8gdGhlIHBsdWctaW4gY3JlYXRpb24gcGFyYW1ldGVycyBvZiB0aGUg
cGx1Zy1pbiB3ZSdyZSBjdXJyZW50bHkgaW5pdGlhbGl6aW5nIGFuZCB3aWxsIGJlIG51bGwgd2hl
biB3ZSdyZSBkb25lIGluaXRpYWxpemluZy4KICAgICBjb25zdCBQbHVnaW5DcmVhdGlvblBhcmFt
ZXRlcnMqIG1fcGx1Z2luQ3JlYXRpb25QYXJhbWV0ZXJzOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdDIvUGx1Z2luUHJvY2Vzcy9QbHVnaW5Qcm9jZXNzLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1Bs
dWdpblByb2Nlc3MvUGx1Z2luUHJvY2Vzcy5jcHAKaW5kZXggYTM2NmY1ZGI3MTQyMTM3MDZiZGVi
NTk4NTU5NzQzOGE4ZDU0ZTYzZS4uMDk5YmYzYTQ4ZmZkMjNmYzRlNGFjNzcxMmRjOTI2N2IzMTdl
ZGI1OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvUGx1Z2luUHJvY2Vzcy9QbHVnaW5Qcm9j
ZXNzLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9QbHVnaW5Qcm9jZXNzL1BsdWdpblByb2Nlc3Mu
Y3BwCkBAIC0zNiw2ICszNiw3IEBACiAjaW5jbHVkZSAiUGx1Z2luUHJvY2Vzc0NyZWF0aW9uUGFy
YW1ldGVycy5oIgogI2luY2x1ZGUgIldlYlByb2Nlc3NDb25uZWN0aW9uLmgiCiAjaW5jbHVkZSA8
V2ViQ29yZS9Ob3RJbXBsZW1lbnRlZC5oPgorI2luY2x1ZGUgPFdlYkNvcmUvUnVuTG9vcC5oPgog
CiAjaWYgVVNFKFVOSVhfRE9NQUlOX1NPQ0tFVFMpCiAjaW5jbHVkZSA8ZXJybm8uaD4KQEAgLTU1
LDYgKzU2LDggQEAKICNlbmRpZiAvLyBTT0NLX1NFUVBBQ0tFVAogI2VuZGlmIC8vIFVTRShVTklY
X0RPTUFJTl9TT0NLRVRTKQogCit1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKKwogbmFtZXNwYWNl
IFdlYktpdCB7CiAKIHN0YXRpYyBjb25zdCBkb3VibGUgc2h1dGRvd25UaW1lb3V0ID0gMTUuMDsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1BsdWdpblByb2Nlc3MvUGx1Z2luUHJvY2Vzcy5o
IGIvU291cmNlL1dlYktpdDIvUGx1Z2luUHJvY2Vzcy9QbHVnaW5Qcm9jZXNzLmgKaW5kZXggYTYx
MDMyNmI0Nzk2Y2M0NGQxZjcyZTE2M2ZiOWE4NGE3Yjk3M2M0YS4uMGNmMzljNmU1OWVjMTEyZjQw
OTZlMTg0ODM0ODAyN2VlZjA4OGFhOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvUGx1Z2lu
UHJvY2Vzcy9QbHVnaW5Qcm9jZXNzLmgKKysrIGIvU291cmNlL1dlYktpdDIvUGx1Z2luUHJvY2Vz
cy9QbHVnaW5Qcm9jZXNzLmgKQEAgLTI5LDEwICsyOSwxMyBAQAogI2lmIEVOQUJMRShQTFVHSU5f
UFJPQ0VTUykKIAogI2luY2x1ZGUgIkNoaWxkUHJvY2Vzcy5oIgotI2luY2x1ZGUgIlJ1bkxvb3Au
aCIKICNpbmNsdWRlIDx3dGYvRm9yd2FyZC5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmlu
Zy5oPgogCituYW1lc3BhY2UgV2ViQ29yZSB7CitjbGFzcyBSdW5Mb29wOworfQorCiBuYW1lc3Bh
Y2UgV2ViS2l0IHsKIAogY2xhc3MgTmV0c2NhcGVQbHVnaW5Nb2R1bGU7CkBAIC00NCw3ICs0Nyw3
IEBAIGNsYXNzIFBsdWdpblByb2Nlc3MgOiBDaGlsZFByb2Nlc3MgewogcHVibGljOgogICAgIHN0
YXRpYyBQbHVnaW5Qcm9jZXNzJiBzaGFyZWQoKTsKIAotICAgIHZvaWQgaW5pdGlhbGl6ZShDb3Jl
SVBDOjpDb25uZWN0aW9uOjpJZGVudGlmaWVyLCBSdW5Mb29wKik7CisgICAgdm9pZCBpbml0aWFs
aXplKENvcmVJUEM6OkNvbm5lY3Rpb246OklkZW50aWZpZXIsIFdlYkNvcmU6OlJ1bkxvb3AqKTsK
ICAgICB2b2lkIHJlbW92ZVdlYlByb2Nlc3NDb25uZWN0aW9uKFdlYlByb2Nlc3NDb25uZWN0aW9u
KiB3ZWJQcm9jZXNzQ29ubmVjdGlvbik7CiAKICAgICBOZXRzY2FwZVBsdWdpbk1vZHVsZSogbmV0
c2NhcGVQbHVnaW5Nb2R1bGUoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1BsdWdpblBy
b2Nlc3MvV2ViUHJvY2Vzc0Nvbm5lY3Rpb24uY3BwIGIvU291cmNlL1dlYktpdDIvUGx1Z2luUHJv
Y2Vzcy9XZWJQcm9jZXNzQ29ubmVjdGlvbi5jcHAKaW5kZXggYWI2M2IwNWJiZGY4NmYyYjIzMjlj
OGRjMzNkMDg3MTgwY2I3MzlmZC4uYTI3ZDExMzkwNjlkYTk3N2ZjODJlY2JkZDJhZWM5NGM3YTdl
ZDY1ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvUGx1Z2luUHJvY2Vzcy9XZWJQcm9jZXNz
Q29ubmVjdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvUGx1Z2luUHJvY2Vzcy9XZWJQcm9j
ZXNzQ29ubmVjdGlvbi5jcHAKQEAgLTM0LDEwICszNCwxMSBAQAogI2luY2x1ZGUgIlBsdWdpbkNy
ZWF0aW9uUGFyYW1ldGVycy5oIgogI2luY2x1ZGUgIlBsdWdpblByb2Nlc3MuaCIKICNpbmNsdWRl
ICJQbHVnaW5Qcm9jZXNzQ29ubmVjdGlvbk1lc3NhZ2VzLmgiCi0jaW5jbHVkZSAiUnVuTG9vcC5o
IgorI2luY2x1ZGUgPFdlYkNvcmUvUnVuTG9vcC5oPgogCi1uYW1lc3BhY2UgV2ViS2l0IHsKK3Vz
aW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogCituYW1lc3BhY2UgV2ViS2l0IHsKIAogY2xhc3MgQ29u
bmVjdGlvblN0YWNrIHsKIHB1YmxpYzoKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1BsdWdp
blByb2Nlc3MvbWFjL1BsdWdpblByb2Nlc3NNYWluTWFjLm1tIGIvU291cmNlL1dlYktpdDIvUGx1
Z2luUHJvY2Vzcy9tYWMvUGx1Z2luUHJvY2Vzc01haW5NYWMubW0KaW5kZXggNWU5M2UyYmRkYTQx
M2ZiOGMzZDkyOWFhZGFlMDQ2MWEzMzM2Mjg2ZC4uODU2MWY5OTU5NDQwOWNmMDc4ZWYxNmQwMTQx
MzNlYjAyYzhiNWY1ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvUGx1Z2luUHJvY2Vzcy9t
YWMvUGx1Z2luUHJvY2Vzc01haW5NYWMubW0KKysrIGIvU291cmNlL1dlYktpdDIvUGx1Z2luUHJv
Y2Vzcy9tYWMvUGx1Z2luUHJvY2Vzc01haW5NYWMubW0KQEAgLTMyLDE5ICszMiwyMSBAQAogI2lt
cG9ydCAiRW52aXJvbm1lbnRVdGlsaXRpZXMuaCIKICNpbXBvcnQgIk5ldHNjYXBlUGx1Z2luTW9k
dWxlLmgiCiAjaW1wb3J0ICJQbHVnaW5Qcm9jZXNzLmgiCi0jaW1wb3J0ICJSdW5Mb29wLmgiCisj
aW1wb3J0IDxXZWJDb3JlL1J1bkxvb3AuaD4KICNpbXBvcnQgPFdlYktpdFN5c3RlbUludGVyZmFj
ZS5oPgogI2ltcG9ydCA8bWFjaC9tYWNoX2Vycm9yLmg+CiAjaW1wb3J0IDxydW50aW1lL0luaXRp
YWxpemVUaHJlYWRpbmcuaD4KICNpbXBvcnQgPHNlcnZlcnMvYm9vdHN0cmFwLmg+CisjaW1wb3J0
IDxzdGRpby5oPgogI2ltcG9ydCA8d3RmL01haW5UaHJlYWQuaD4KICNpbXBvcnQgPHd0Zi9SZXRh
aW5QdHIuaD4KICNpbXBvcnQgPHd0Zi90ZXh0L0NTdHJpbmcuaD4KICNpbXBvcnQgPHd0Zi90ZXh0
L1dURlN0cmluZy5oPgotI2luY2x1ZGUgPHN0ZGlvLmg+CiAKICNkZWZpbmUgU0hPV19DUkFTSF9S
RVBPUlRFUiAxCiAKK3VzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOworCiBuYW1lc3BhY2UgV2ViS2l0
IHsKIAogLy8gRklYTUU6IFRoZXJlIGlzIG11Y2ggY29kZSBoZXJlIHRoYXQgaXMgZHVwbGljYXRl
ZCBpbiBXZWJQcm9jZXNzTWFpbk1hYy5tbSwgd2Ugc2hvdWxkIGFkZCBhIHNoYXJlZCBiYXNlIGNs
YXNzIHdoZXJlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9QbHVnaW5Qcm9jZXNzL3F0L1Bs
dWdpblByb2Nlc3NNYWluUXQuY3BwIGIvU291cmNlL1dlYktpdDIvUGx1Z2luUHJvY2Vzcy9xdC9Q
bHVnaW5Qcm9jZXNzTWFpblF0LmNwcAppbmRleCAzZTAwMzNmZjBhYjMzNzY1MGU1M2QwODFjODlm
NDQ0MTRhNjc4YTc1Li5kM2EwZWMzZTI0NTk1NmI5ODUwMGQ1NjdlNTY1ZmFhMTUwNmEwMDUzIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9QbHVnaW5Qcm9jZXNzL3F0L1BsdWdpblByb2Nlc3NN
YWluUXQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1BsdWdpblByb2Nlc3MvcXQvUGx1Z2luUHJv
Y2Vzc01haW5RdC5jcHAKQEAgLTMwLDggKzMwLDggQEAKIAogI2luY2x1ZGUgIkNvbW1hbmRMaW5l
LmgiCiAjaW5jbHVkZSAiUGx1Z2luUHJvY2Vzcy5oIgotI2luY2x1ZGUgIlJ1bkxvb3AuaCIKICNp
bmNsdWRlIDxXZWJDb3JlL05vdEltcGxlbWVudGVkLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9SdW5M
b29wLmg+CiAjaW5jbHVkZSA8cnVudGltZS9Jbml0aWFsaXplVGhyZWFkaW5nLmg+CiAjaW5jbHVk
ZSA8d3RmL01haW5UaHJlYWQuaD4KICNpbmNsdWRlIDx3dGYvUmV0YWluUHRyLmg+CkBAIC00MCw2
ICs0MCw4IEBACiAKICNkZWZpbmUgU0hPV19DUkFTSF9SRVBPUlRFUiAxCiAKK3VzaW5nIG5hbWVz
cGFjZSBXZWJDb3JlOworCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAogaW50IFBsdWdpblByb2Nlc3NN
YWluKGNvbnN0IENvbW1hbmRMaW5lJiBjb21tYW5kTGluZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQyL1NoYXJlZC9DaGlsZFByb2Nlc3MuY3BwIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL0No
aWxkUHJvY2Vzcy5jcHAKaW5kZXggOGIzY2RiMjgyY2I5YjgzZjRiNDhlMjA3NTM0NmY4NWZmYjlk
NGE2Yy4uNTcxZmU5NTg2MGUzMGVmNjdmYWIyMGY4NTFmMjkzYTA1ZmM0YTgyOSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL0NoaWxkUHJvY2Vzcy5jcHAKKysrIGIvU291cmNlL1dl
YktpdDIvU2hhcmVkL0NoaWxkUHJvY2Vzcy5jcHAKQEAgLTMwLDYgKzMwLDggQEAKICNpbmNsdWRl
IDx1bmlzdGQuaD4KICNlbmRpZgogCit1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKKwogbmFtZXNw
YWNlIFdlYktpdCB7CiAKIHZvaWQgQ2hpbGRQcm9jZXNzOjpkaXNhYmxlVGVybWluYXRpb24oKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL0NoaWxkUHJvY2Vzcy5oIGIvU291cmNl
L1dlYktpdDIvU2hhcmVkL0NoaWxkUHJvY2Vzcy5oCmluZGV4IDQyNTk4MzBkOGI3Mjk0MzQ5ZWE0
Nzk2MjdiNDM0OWIwNzVjNmFjYTYuLjUwZWNlYjU5NGVjMjhmYzhlM2ZlNDhlOTM4Y2UxZWZjYzI5
MTEyYzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9DaGlsZFByb2Nlc3MuaAor
KysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQ2hpbGRQcm9jZXNzLmgKQEAgLTI3LDcgKzI3LDcg
QEAKICNkZWZpbmUgQ2hpbGRQcm9jZXNzX2gKIAogI2luY2x1ZGUgIkNvbm5lY3Rpb24uaCIKLSNp
bmNsdWRlICJSdW5Mb29wLmgiCisjaW5jbHVkZSA8V2ViQ29yZS9SdW5Mb29wLmg+CiAKIG5hbWVz
cGFjZSBXZWJLaXQgewogCkBAIC03Nyw3ICs3Nyw3IEBAIHByaXZhdGU6CiAgICAgLy8gYWZ0ZXIg
YSBnaXZlbiBwZXJpb2Qgb2YgdGltZS4KICAgICB1bnNpZ25lZCBtX3Rlcm1pbmF0aW9uQ291bnRl
cjsKIAotICAgIFJ1bkxvb3A6OlRpbWVyPENoaWxkUHJvY2Vzcz4gbV90ZXJtaW5hdGlvblRpbWVy
OworICAgIFdlYkNvcmU6OlJ1bkxvb3A6OlRpbWVyPENoaWxkUHJvY2Vzcz4gbV90ZXJtaW5hdGlv
blRpbWVyOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0Mi9UYXJnZXQucHJpIGIvU291cmNlL1dlYktpdDIvVGFyZ2V0LnByaQppbmRleCAzNTk4
M2YwNzY1NmRiNDgwZjgzNWFjY2Y2M2ZlM2NkNjZkYTk3YzkwLi41ZWUyNzk3MjI0OTA0ZjRhNDc2
YWY2MjBhODViZTY0NjZmMTA2ZTc1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9UYXJnZXQu
cHJpCisrKyBiL1NvdXJjZS9XZWJLaXQyL1RhcmdldC5wcmkKQEAgLTMxLDcgKzMxLDYgQEAgSEVB
REVSUyArPSBcCiAgICAgUGxhdGZvcm0vTG9nZ2luZy5oIFwKICAgICBQbGF0Zm9ybS9Nb2R1bGUu
aCBcCiAgICAgUGxhdGZvcm0vUGxhdGZvcm1Qcm9jZXNzSWRlbnRpZmllci5oIFwKLSAgICBQbGF0
Zm9ybS9SdW5Mb29wLmggXAogICAgIFBsYXRmb3JtL1NoYXJlZE1lbW9yeS5oIFwKICAgICBQbGF0
Zm9ybS9Xb3JrUXVldWUuaCBcCiAgICAgUGx1Z2luUHJvY2Vzcy9QbHVnaW5Db250cm9sbGVyUHJv
eHkuaCBcCkBAIC0zNzMsMTAgKzM3Miw4IEBAIFNPVVJDRVMgKz0gXAogICAgIFBsYXRmb3JtL0Nv
cmVJUEMvRGF0YVJlZmVyZW5jZS5jcHAgXAogICAgIFBsYXRmb3JtL0xvZ2dpbmcuY3BwIFwKICAg
ICBQbGF0Zm9ybS9Nb2R1bGUuY3BwIFwKLSAgICBQbGF0Zm9ybS9SdW5Mb29wLmNwcCBcCiAgICAg
UGxhdGZvcm0vV29ya1F1ZXVlLmNwcCBcCiAgICAgUGxhdGZvcm0vcXQvTW9kdWxlUXQuY3BwIFwK
LSAgICBQbGF0Zm9ybS9xdC9SdW5Mb29wUXQuY3BwIFwKICAgICBQbHVnaW5Qcm9jZXNzL1BsdWdp
bkNvbnRyb2xsZXJQcm94eS5jcHAgXAogICAgIFBsdWdpblByb2Nlc3MvUGx1Z2luUHJvY2Vzcy5j
cHAgXAogICAgIFBsdWdpblByb2Nlc3MvV2ViUHJvY2Vzc0Nvbm5lY3Rpb24uY3BwIFwKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvbWFjL0ZpbmRJbmRpY2F0b3JXaW5k
b3cuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvbWFjL0ZpbmRJbmRpY2F0b3JXaW5k
b3cuaAppbmRleCA3ODM2YTU0NmE1NGFhZDEzOGU0YTI3MzFlN2MyMDdkNGE5YTY3Yjg3Li5jYmUz
NGExYTkwZmI5YmE5YTViZjc5MzY1YmIxN2QyMzRhOWQ4YTQzIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvQVBJL21hYy9GaW5kSW5kaWNhdG9yV2luZG93LmgKKysrIGIvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9tYWMvRmluZEluZGljYXRvcldpbmRvdy5oCkBAIC0y
NiwxMiArMjYsMTIgQEAKICNpZm5kZWYgRmluZEluZGljYXRvcldpbmRvd19oCiAjZGVmaW5lIEZp
bmRJbmRpY2F0b3JXaW5kb3dfaAogCisjaW1wb3J0ICJXZWJLaXRTeXN0ZW1JbnRlcmZhY2UuaCIK
KyNpbXBvcnQgPFdlYkNvcmUvUnVuTG9vcC5oPgogI2ltcG9ydCA8d3RmL05vbmNvcHlhYmxlLmg+
CiAjaW1wb3J0IDx3dGYvUGFzc093blB0ci5oPgogI2ltcG9ydCA8d3RmL1JlZlB0ci5oPgogI2lt
cG9ydCA8d3RmL1JldGFpblB0ci5oPgotI2ltcG9ydCAiUnVuTG9vcC5oIgotI2ltcG9ydCAiV2Vi
S2l0U3lzdGVtSW50ZXJmYWNlLmgiCiAKIEBjbGFzcyBXS0ZpbmRJbmRpY2F0b3JXaW5kb3dBbmlt
YXRpb247CiBAY2xhc3MgV0tWaWV3OwpAQCAtNjgsNyArNjgsNyBAQCBwcml2YXRlOgogICAgIFdL
V2luZG93Qm91bmNlQW5pbWF0aW9uQ29udGV4dFJlZiBtX2JvdW5jZUFuaW1hdGlvbkNvbnRleHQ7
CiAgICAgUmV0YWluUHRyPFdLRmluZEluZGljYXRvcldpbmRvd0FuaW1hdGlvbj4gbV9ib3VuY2VB
bmltYXRpb247CiAKLSAgICBSdW5Mb29wOjpUaW1lcjxGaW5kSW5kaWNhdG9yV2luZG93PiBtX3N0
YXJ0RmFkZU91dFRpbWVyOworICAgIFdlYkNvcmU6OlJ1bkxvb3A6OlRpbWVyPEZpbmRJbmRpY2F0
b3JXaW5kb3c+IG1fc3RhcnRGYWRlT3V0VGltZXI7CiAgICAgUmV0YWluUHRyPFdLRmluZEluZGlj
YXRvcldpbmRvd0FuaW1hdGlvbj4gbV9mYWRlT3V0QW5pbWF0aW9uOwogfTsKIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9tYWMvV0tWaWV3Lm1tIGIvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL0FQSS9tYWMvV0tWaWV3Lm1tCmluZGV4IDFkODcwOWQ4MmEyMjRkNGJm
MGU4NjFmOTlhOTc3ODRkODdhN2ZjNDguLjNlYzNlN2ZjYjYwYTA1ZGNjMGFhOTgwZmQ2NTViODEy
NjlmYWViYjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvbWFjL1dL
Vmlldy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL21hYy9XS1ZpZXcubW0K
QEAgLTQwLDcgKzQwLDYgQEAKICNpbXBvcnQgIlBERlZpZXdDb250cm9sbGVyLmgiCiAjaW1wb3J0
ICJQYWdlQ2xpZW50SW1wbC5oIgogI2ltcG9ydCAiUGFzdGVib2FyZFR5cGVzLmgiCi0jaW1wb3J0
ICJSdW5Mb29wLmgiCiAjaW1wb3J0ICJUZXh0Q2hlY2tlci5oIgogI2ltcG9ydCAiVGV4dENoZWNr
ZXJTdGF0ZS5oIgogI2ltcG9ydCAiVGlsZWRDb3JlQW5pbWF0aW9uRHJhd2luZ0FyZWFQcm94eS5o
IgpAQCAtNzAsNiArNjksNyBAQAogI2ltcG9ydCA8V2ViQ29yZS9QbGF0Zm9ybUV2ZW50RmFjdG9y
eU1hYy5oPgogI2ltcG9ydCA8V2ViQ29yZS9QbGF0Zm9ybVNjcmVlbi5oPgogI2ltcG9ydCA8V2Vi
Q29yZS9SZWdpb24uaD4KKyNpbXBvcnQgPFdlYkNvcmUvUnVuTG9vcC5oPgogI2ltcG9ydCA8V2Vi
S2l0U3lzdGVtSW50ZXJmYWNlLmg+CiAjaW1wb3J0IDx3dGYvUmVmUHRyLmg+CiAjaW1wb3J0IDx3
dGYvUmV0YWluUHRyLmg+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvRHJh
d2luZ0FyZWFQcm94eUltcGwuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9EcmF3aW5nQXJl
YVByb3h5SW1wbC5oCmluZGV4IDA1ZDczNTQyMzYyNjdhNTViNDVjNjA5YjhkMmJhNTQ3ZTEwZjhi
ZGIuLmMxNjUxZjQxZmE5MzVkMWY0ODA4NDEzMTZiNmEyMThhZWUyYmU4YTUgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9EcmF3aW5nQXJlYVByb3h5SW1wbC5oCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9EcmF3aW5nQXJlYVByb3h5SW1wbC5oCkBAIC0yOSw3ICsy
OSw3IEBACiAjaW5jbHVkZSAiQmFja2luZ1N0b3JlLmgiCiAjaW5jbHVkZSAiRHJhd2luZ0FyZWFQ
cm94eS5oIgogI2luY2x1ZGUgIkxheWVyVHJlZUNvbnRleHQuaCIKLSNpbmNsdWRlICJSdW5Mb29w
LmgiCisjaW5jbHVkZSA8V2ViQ29yZS9SdW5Mb29wLmg+CiAjaW5jbHVkZSA8d3RmL093blB0ci5o
PgogI2luY2x1ZGUgPHd0Zi9QYXNzT3duUHRyLmg+CiAKQEAgLTExNiw3ICsxMTYsNyBAQCBwcml2
YXRlOgogICAgIGJvb2wgbV9pc0JhY2tpbmdTdG9yZURpc2NhcmRhYmxlOwogICAgIE93blB0cjxC
YWNraW5nU3RvcmU+IG1fYmFja2luZ1N0b3JlOwogCi0gICAgUnVuTG9vcDo6VGltZXI8RHJhd2lu
Z0FyZWFQcm94eUltcGw+IG1fZGlzY2FyZEJhY2tpbmdTdG9yZVRpbWVyOworICAgIFdlYkNvcmU6
OlJ1bkxvb3A6OlRpbWVyPERyYXdpbmdBcmVhUHJveHlJbXBsPiBtX2Rpc2NhcmRCYWNraW5nU3Rv
cmVUaW1lcjsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL0xhdW5jaGVyL1RocmVhZExhdW5jaGVyLmNwcCBiL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9MYXVuY2hlci9UaHJlYWRMYXVuY2hlci5jcHAKaW5kZXggM2MwZmJm
MTYwY2M3NmU2MDE4NDE1ZDZkM2IzNGM2OTYxNjE2YmEwNC4uZjM3YTVkM2EyNzE1YWExNTc4MGRm
ZGFmZTFjNGE0YzVlNGQwZGU4NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L0xhdW5jaGVyL1RocmVhZExhdW5jaGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvTGF1bmNoZXIvVGhyZWFkTGF1bmNoZXIuY3BwCkBAIC0yNiw3ICsyNiw5IEBACiAjaW5jbHVk
ZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiVGhyZWFkTGF1bmNoZXIuaCIKIAotI2luY2x1ZGUgIlJ1
bkxvb3AuaCIKKyNpbmNsdWRlIDxXZWJDb3JlL1J1bkxvb3AuaD4KKwordXNpbmcgbmFtZXNwYWNl
IFdlYkNvcmU7CiAKIG5hbWVzcGFjZSBXZWJLaXQgewogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvTGF1bmNoZXIvZ3RrL1Byb2Nlc3NMYXVuY2hlckd0ay5jcHAgYi9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvTGF1bmNoZXIvZ3RrL1Byb2Nlc3NMYXVuY2hlckd0ay5jcHAK
aW5kZXggYzYzNDVhNmM2OTI1N2VlMDNmZTU4M2M5ZjViOGNiYjBlNTY0ZjhmNC4uOTRjYWQ1ZmM0
NDgyMGRhMTk4ZGE4NzFjY2JkNmZhNDdlNDM4OWIyYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL0xhdW5jaGVyL2d0ay9Qcm9jZXNzTGF1bmNoZXJHdGsuY3BwCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9MYXVuY2hlci9ndGsvUHJvY2Vzc0xhdW5jaGVyR3RrLmNw
cApAQCAtMjgsMTkgKzI4LDIwIEBACiAjaW5jbHVkZSAiUHJvY2Vzc0xhdW5jaGVyLmgiCiAKICNp
bmNsdWRlICJDb25uZWN0aW9uLmgiCi0jaW5jbHVkZSAiUnVuTG9vcC5oIgogI2luY2x1ZGUgPFdl
YkNvcmUvRmlsZVN5c3RlbS5oPgogI2luY2x1ZGUgPFdlYkNvcmUvUmVzb3VyY2VIYW5kbGUuaD4K
KyNpbmNsdWRlIDxXZWJDb3JlL1J1bkxvb3AuaD4KICNpbmNsdWRlIDxlcnJuby5oPgogI2luY2x1
ZGUgPGxvY2FsZS5oPgotI2lmIE9TKExJTlVYKQotI2luY2x1ZGUgPHN5cy9wcmN0bC5oPgotI2Vu
ZGlmCiAjaW5jbHVkZSA8d3RmL3RleHQvQ1N0cmluZy5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L1dU
RlN0cmluZy5oPgogI2luY2x1ZGUgPHd0Zi9nb2JqZWN0L0dPd25QdHIuaD4KICNpbmNsdWRlIDx3
dGYvZ29iamVjdC9HbGliVXRpbGl0aWVzLmg+CiAKKyNpZiBPUyhMSU5VWCkKKyNpbmNsdWRlIDxz
eXMvcHJjdGwuaD4KKyNlbmRpZgorCiAjaWZkZWYgU09DS19TRVFQQUNLRVQKICNkZWZpbmUgU09D
S0VUX1RZUEUgU09DS19TRVFQQUNLRVQKICNlbHNlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvTGF1bmNoZXIvbWFjL1Byb2Nlc3NMYXVuY2hlck1hYy5tbSBiL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9MYXVuY2hlci9tYWMvUHJvY2Vzc0xhdW5jaGVyTWFjLm1tCmluZGV4
IGM3MGY2MmVkZmJjZjg3YzZhYjI4YWU2YmM3MmM0YWMyNzhkN2U5NzQuLmRjODM5Yzg0ZjVmMzNm
YmFmMGRhOTYwZjE1NzdhOGQ2Njg1MGY5Y2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9MYXVuY2hlci9tYWMvUHJvY2Vzc0xhdW5jaGVyTWFjLm1tCisrKyBiL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9MYXVuY2hlci9tYWMvUHJvY2Vzc0xhdW5jaGVyTWFjLm1tCkBAIC0y
OCw5ICsyOCw5IEBACiAKICNpbXBvcnQgIkR5bmFtaWNMaW5rZXJFbnZpcm9ubWVudEV4dHJhY3Rv
ci5oIgogI2ltcG9ydCAiRW52aXJvbm1lbnRWYXJpYWJsZXMuaCIKLSNpbXBvcnQgIlJ1bkxvb3Au
aCIKICNpbXBvcnQgIldlYlByb2Nlc3MuaCIKICNpbXBvcnQgIldlYktpdFN5c3RlbUludGVyZmFj
ZS5oIgorI2ltcG9ydCA8V2ViQ29yZS9SdW5Mb29wLmg+CiAjaW1wb3J0IDxjcnRfZXh0ZXJucy5o
PgogI2ltcG9ydCA8bWFjaC1vL2R5bGQuaD4KICNpbXBvcnQgPG1hY2gvbWFjaGluZS5oPgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0xhdW5jaGVyL21hYy9UaHJlYWRMYXVu
Y2hlck1hYy5tbSBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9MYXVuY2hlci9tYWMvVGhyZWFk
TGF1bmNoZXJNYWMubW0KaW5kZXggMWM3NGI3ZDI4N2FmOWJhNjU5MmM3ZGYzOWIyYTA1MzE0MGYz
ZWYwMy4uZGQ1M2IzZWYxNGU5OTQwMTQzYWJjYTMxYmE2MjdjOWFlYzE4Mjc3MCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0xhdW5jaGVyL21hYy9UaHJlYWRMYXVuY2hlck1h
Yy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvTGF1bmNoZXIvbWFjL1RocmVhZExh
dW5jaGVyTWFjLm1tCkBAIC0yNiwxMyArMjYsMTUgQEAKICNpbXBvcnQgImNvbmZpZy5oIgogI2lt
cG9ydCAiVGhyZWFkTGF1bmNoZXIuaCIKIAotI2ltcG9ydCAiUnVuTG9vcC5oIgogI2ltcG9ydCAi
V2ViUHJvY2Vzcy5oIgogI2ltcG9ydCAiV2ViU3lzdGVtSW50ZXJmYWNlLmgiCiAjaW1wb3J0IDxy
dW50aW1lL0luaXRpYWxpemVUaHJlYWRpbmcuaD4KKyNpbXBvcnQgPFdlYkNvcmUvUnVuTG9vcC5o
PgogI2ltcG9ydCA8d3RmL01haW5UaHJlYWQuaD4KICNpbXBvcnQgPHd0Zi9UaHJlYWRpbmcuaD4K
IAordXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CisKIG5hbWVzcGFjZSBXZWJLaXQgewogCiBzdGF0
aWMgdm9pZCogd2ViVGhyZWFkQm9keSh2b2lkKiBjb250ZXh0KQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL0xhdW5jaGVyL3F0L1Byb2Nlc3NMYXVuY2hlclF0LmNwcCBiL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9MYXVuY2hlci9xdC9Qcm9jZXNzTGF1bmNoZXJRdC5jcHAK
aW5kZXggODM3ZjU5YmFmMWI1ZmY1YTE2NTQ1ZjY1OTA3ZjZhZDM1MDQwMTAxZC4uOGU4MjYyMDYz
NjdlZWQ4ZWIxYzI1Y2UyZjRiNDU2NGIwOGY3NGEwOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL0xhdW5jaGVyL3F0L1Byb2Nlc3NMYXVuY2hlclF0LmNwcAorKysgYi9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvTGF1bmNoZXIvcXQvUHJvY2Vzc0xhdW5jaGVyUXQuY3BwCkBA
IC0yOCw3ICsyOCw2IEBACiAjaW5jbHVkZSAiUHJvY2Vzc0xhdW5jaGVyLmgiCiAKICNpbmNsdWRl
ICJDb25uZWN0aW9uLmgiCi0jaW5jbHVkZSAiUnVuTG9vcC5oIgogI2luY2x1ZGUgIldlYlByb2Nl
c3MuaCIKICNpbmNsdWRlIDxRQ29yZUFwcGxpY2F0aW9uPgogI2luY2x1ZGUgPFFEZWJ1Zz4KQEAg
LTM5LDYgKzM4LDcgQEAKICNpbmNsdWRlIDxRU3RyaW5nPgogI2luY2x1ZGUgPFF0Q29yZS9xZ2xv
YmFsLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9Ob3RJbXBsZW1lbnRlZC5oPgorI2luY2x1ZGUgPFdl
YkNvcmUvUnVuTG9vcC5oPgogI2luY2x1ZGUgPGVycm5vLmg+CiAjaW5jbHVkZSA8ZmNudGwuaD4K
ICNpbmNsdWRlIDxydW50aW1lL0luaXRpYWxpemVUaHJlYWRpbmcuaD4KQEAgLTUwLDYgKzUwLDcg
QEAKICNpbmNsdWRlIDx3dGYvUGFzc1JlZlB0ci5oPgogI2luY2x1ZGUgPHd0Zi9UaHJlYWRpbmcu
aD4KICNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KKwogI2lmIGRlZmluZWQoUV9PU19M
SU5VWCkKICNpbmNsdWRlIDxzeXMvcHJjdGwuaD4KICNpbmNsdWRlIDxzaWduYWwuaD4KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9MYXVuY2hlci9xdC9UaHJlYWRMYXVuY2hl
clF0LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9MYXVuY2hlci9xdC9UaHJlYWRMYXVu
Y2hlclF0LmNwcAppbmRleCA3Yjk1Y2EwNDk5YTc4ODRhY2YwOGZjNWI3NzUyY2Y2ZmEzZjE5ZjQx
Li4xZDBjYWYzYWVjNDdlNzg4NmE4M2I4MGVlNTljYzIxNDhmMmZiNThiIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvTGF1bmNoZXIvcXQvVGhyZWFkTGF1bmNoZXJRdC5jcHAK
KysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0xhdW5jaGVyL3F0L1RocmVhZExhdW5jaGVy
UXQuY3BwCkBAIC0yNyw4ICsyNyw4IEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAi
VGhyZWFkTGF1bmNoZXIuaCIKIAotI2luY2x1ZGUgIlJ1bkxvb3AuaCIKICNpbmNsdWRlICJXZWJQ
cm9jZXNzLmgiCisjaW5jbHVkZSA8V2ViQ29yZS9SdW5Mb29wLmg+CiAjaW5jbHVkZSA8cnVudGlt
ZS9Jbml0aWFsaXplVGhyZWFkaW5nLmg+CiAjaW5jbHVkZSA8d3RmL01haW5UaHJlYWQuaD4KICNp
bmNsdWRlIDx3dGYvVGhyZWFkaW5nLmg+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvTGF1bmNoZXIvd2luL1Byb2Nlc3NMYXVuY2hlcldpbi5jcHAgYi9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvTGF1bmNoZXIvd2luL1Byb2Nlc3NMYXVuY2hlcldpbi5jcHAKaW5kZXggZDUy
NmMwMzA3OGQ1N2NiYWRmYTI4OTU4NTE2MDg2Mzc4NWUwNTU0Ni4uN2RlNzgyZjY4ZWRlMjY0YzA5
ZGFjNWNhNjU5YmM3OGNmM2MxNDI4OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL0xhdW5jaGVyL3dpbi9Qcm9jZXNzTGF1bmNoZXJXaW4uY3BwCisrKyBiL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9MYXVuY2hlci93aW4vUHJvY2Vzc0xhdW5jaGVyV2luLmNwcApAQCAtMjcs
NyArMjcsNyBAQAogI2luY2x1ZGUgIlByb2Nlc3NMYXVuY2hlci5oIgogCiAjaW5jbHVkZSAiQ29u
bmVjdGlvbi5oIgotI2luY2x1ZGUgIlJ1bkxvb3AuaCIKKyNpbmNsdWRlIDxXZWJDb3JlL1J1bkxv
b3AuaD4KICNpbmNsdWRlIDxzaGx3YXBpLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5n
Lmg+CiAKQEAgLTQzLDYgKzQzLDggQEAgY29uc3QgTFBDV1NUUiB3ZWJLaXRETExOYW1lID0gTCJX
ZWJLaXRfZGVidWcuZGxsIjsKIGNvbnN0IExQQ1dTVFIgd2ViS2l0RExMTmFtZSA9IEwiV2ViS2l0
LmRsbCI7CiAjZW5kaWYKIAordXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CisKIG5hbWVzcGFjZSBX
ZWJLaXQgewogCiB2b2lkIFByb2Nlc3NMYXVuY2hlcjo6bGF1bmNoUHJvY2VzcygpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvTGF1bmNoZXIvd2luL1RocmVhZExhdW5jaGVy
V2luLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9MYXVuY2hlci93aW4vVGhyZWFkTGF1
bmNoZXJXaW4uY3BwCmluZGV4IDI1OTY5OThlYTIzOTIwYTEzZDk1ZTFmZWI3Y2ZhMmJlYzFkNTlj
YmQuLmY5ZDFjMDQ4MWQxZjAzNWIxY2YwZTlkZjJjM2Y0YzMyYzAwMzFjMjkgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9MYXVuY2hlci93aW4vVGhyZWFkTGF1bmNoZXJXaW4u
Y3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9MYXVuY2hlci93aW4vVGhyZWFkTGF1
bmNoZXJXaW4uY3BwCkBAIC0yNiw4ICsyNiw4IEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5j
bHVkZSAiVGhyZWFkTGF1bmNoZXIuaCIKIAotI2luY2x1ZGUgIlJ1bkxvb3AuaCIKICNpbmNsdWRl
ICJXZWJQcm9jZXNzLmgiCisjaW5jbHVkZSA8V2ViQ29yZS9SdW5Mb29wLmg+CiAjaW5jbHVkZSA8
cnVudGltZS9Jbml0aWFsaXplVGhyZWFkaW5nLmg+CiAjaW5jbHVkZSA8d3RmL01haW5UaHJlYWQu
aD4KICNpbmNsdWRlIDx3dGYvVGhyZWFkaW5nLmg+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvTGF5ZXJUcmVlSG9zdFByb3h5LmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvTGF5ZXJUcmVlSG9zdFByb3h5LmgKaW5kZXggODlkNWZiZThmZTE1MzZlYjg5ZDcwYjNmY2Rj
ODFlY2NhMjMzYjcyMS4uNDZjNGQxNGU0MTU5MDEwMmU2MjZhOTMxNTc5Mzk5NzljMDMxMDQ2NSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0xheWVyVHJlZUhvc3RQcm94eS5o
CisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9MYXllclRyZWVIb3N0UHJveHkuaApAQCAt
MjQsMTIgKzI0LDEyIEBACiAjaW5jbHVkZSAiRHJhd2luZ0FyZWFQcm94eS5oIgogI2luY2x1ZGUg
Ik1lc3NhZ2VRdWV1ZS5oIgogI2luY2x1ZGUgIlJlZ2lvbi5oIgotI2luY2x1ZGUgIlJ1bkxvb3Au
aCIKICNpbmNsdWRlICJXZWJMYXllclRyZWVJbmZvLmgiCiAjaW5jbHVkZSA8V2ViQ29yZS9HcmFw
aGljc0NvbnRleHQuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0dyYXBoaWNzTGF5ZXIuaD4KICNpbmNs
dWRlIDxXZWJDb3JlL0ludFJlY3QuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0ludFNpemUuaD4KKyNp
bmNsdWRlIDxXZWJDb3JlL1J1bkxvb3AuaD4KICNpbmNsdWRlIDx3dGYvSGFzaFNldC5oPgogCiAj
aWYgVVNFKFRFWFRVUkVfTUFQUEVSKQpAQCAtODIsNyArODIsNyBAQCBwcm90ZWN0ZWQ6CiAgICAg
dmlydHVhbCBib29sIHNob3dSZXBhaW50Q291bnRlcigpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9
CiAgICAgdm9pZCBwYWludENvbnRlbnRzKGNvbnN0IFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXIqLCBX
ZWJDb3JlOjpHcmFwaGljc0NvbnRleHQmLCBXZWJDb3JlOjpHcmFwaGljc0xheWVyUGFpbnRpbmdQ
aGFzZSwgY29uc3QgV2ViQ29yZTo6SW50UmVjdCYpIHsgfQogCi0gICAgUnVuTG9vcDo6VGltZXI8
TGF5ZXJUcmVlSG9zdFByb3h5PiBtX2FuaW1hdGlvblRpbWVyOworICAgIFdlYkNvcmU6OlJ1bkxv
b3A6OlRpbWVyPExheWVyVHJlZUhvc3RQcm94eT4gbV9hbmltYXRpb25UaW1lcjsKICAgICBEcmF3
aW5nQXJlYVByb3h5KiBtX2RyYXdpbmdBcmVhUHJveHk7CiAKICAgICB0eXBlZGVmIEhhc2hNYXA8
V2ViTGF5ZXJJRCwgV2ViQ29yZTo6R3JhcGhpY3NMYXllcio+IExheWVyTWFwOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1BsdWdpbnMvUGx1Z2luUHJvY2Vzc1Byb3h5LmNw
cCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9QbHVnaW5zL1BsdWdpblByb2Nlc3NQcm94eS5j
cHAKaW5kZXggNDFjN2E0N2NiOTAwNjRkYTljYzA5OTMyNGU5ZTgwZDE2ZTgxNjRjMS4uNTQ4MmQ4
NGQyOWY2NDA5MDM5NmYyOTUyMTA3MGU1Y2VmZDZkZmIwMCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL1BsdWdpbnMvUGx1Z2luUHJvY2Vzc1Byb3h5LmNwcAorKysgYi9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvUGx1Z2lucy9QbHVnaW5Qcm9jZXNzUHJveHkuY3BwCkBAIC0z
MSwxOCArMzEsMjAgQEAKICNpbmNsdWRlICJQbHVnaW5Qcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJz
LmgiCiAjaW5jbHVkZSAiUGx1Z2luUHJvY2Vzc01hbmFnZXIuaCIKICNpbmNsdWRlICJQbHVnaW5Q
cm9jZXNzTWVzc2FnZXMuaCIKLSNpbmNsdWRlICJSdW5Mb29wLmgiCiAjaW5jbHVkZSAiV2ViQ29u
dGV4dC5oIgogI2luY2x1ZGUgIldlYkNvcmVBcmd1bWVudENvZGVycy5oIgogI2luY2x1ZGUgIldl
YlBsdWdpblNpdGVEYXRhTWFuYWdlci5oIgogI2luY2x1ZGUgIldlYlByb2Nlc3NNZXNzYWdlcy5o
IgogI2luY2x1ZGUgIldlYlByb2Nlc3NQcm94eS5oIgogI2luY2x1ZGUgPFdlYkNvcmUvTm90SW1w
bGVtZW50ZWQuaD4KKyNpbXBvcnQgPFdlYkNvcmUvUnVuTG9vcC5oPgogCiAjaWYgUExBVEZPUk0o
TUFDKQogI2luY2x1ZGUgIk1hY2hQb3J0LmgiCiAjZW5kaWYKIAordXNpbmcgbmFtZXNwYWNlIFdl
YkNvcmU7CisKIG5hbWVzcGFjZSBXZWJLaXQgewogCiBQYXNzT3duUHRyPFBsdWdpblByb2Nlc3NQ
cm94eT4gUGx1Z2luUHJvY2Vzc1Byb3h5OjpjcmVhdGUoUGx1Z2luUHJvY2Vzc01hbmFnZXIqIFBs
dWdpblByb2Nlc3NNYW5hZ2VyLCBjb25zdCBQbHVnaW5Nb2R1bGVJbmZvJiBwbHVnaW5JbmZvKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1Jlc3BvbnNpdmVuZXNzVGltZXIu
Y3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1Jlc3BvbnNpdmVuZXNzVGltZXIuY3BwCmlu
ZGV4IDA1N2NjNzQzNTRhMTRlNTdkYzJmZTFmM2I4Njc0MzNhY2MzN2NkMDEuLjg3ODM4Y2EyNjI4
MDc3YWI4N2M4MTJmMjBiZGRlYTgyMjEwZTFiNmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9SZXNwb25zaXZlbmVzc1RpbWVyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvUmVzcG9uc2l2ZW5lc3NUaW1lci5jcHAKQEAgLTI2LDYgKzI2LDggQEAKICNpbmNs
dWRlICJjb25maWcuaCIKICNpbmNsdWRlICJSZXNwb25zaXZlbmVzc1RpbWVyLmgiCiAKK3VzaW5n
IG5hbWVzcGFjZSBXZWJDb3JlOworCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAogc3RhdGljIGNvbnN0
IGRvdWJsZSBrUmVzcG9uc2l2ZW5lc3NUaW1lb3V0ID0gMzsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9SZXNwb25zaXZlbmVzc1RpbWVyLmggYi9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvUmVzcG9uc2l2ZW5lc3NUaW1lci5oCmluZGV4IDY1OTE5MTYxMmY4MDFiMTRkOWQ4
ODEyMmFjYjRlYjM4YjVlYTZlNWIuLjM2NzMzMTUxZmM4N2Y2N2QxNzJhMjgzZmUwMzBhNjg2ZTdl
YjQzYTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9SZXNwb25zaXZlbmVz
c1RpbWVyLmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1Jlc3BvbnNpdmVuZXNzVGlt
ZXIuaApAQCAtMjYsNyArMjYsNyBAQAogI2lmbmRlZiBSZXNwb25zaXZlbmVzc1RpbWVyX2gKICNk
ZWZpbmUgUmVzcG9uc2l2ZW5lc3NUaW1lcl9oCiAKLSNpbmNsdWRlICJSdW5Mb29wLmgiCisjaW5j
bHVkZSA8V2ViQ29yZS9SdW5Mb29wLmg+CiAKIG5hbWVzcGFjZSBXZWJLaXQgewogCkBAIC01NSw3
ICs1NSw3IEBAIHByaXZhdGU6CiAgICAgUmVzcG9uc2l2ZW5lc3NUaW1lcjo6Q2xpZW50KiBtX2Ns
aWVudDsKICAgICBib29sIG1faXNSZXNwb25zaXZlOwogCi0gICAgUnVuTG9vcDo6VGltZXI8UmVz
cG9uc2l2ZW5lc3NUaW1lcj4gbV90aW1lcjsKKyAgICBXZWJDb3JlOjpSdW5Mb29wOjpUaW1lcjxS
ZXNwb25zaXZlbmVzc1RpbWVyPiBtX3RpbWVyOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvVGlsZWREcmF3aW5nQXJlYVBy
b3h5LmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvVGlsZWREcmF3aW5nQXJlYVByb3h5LmgK
aW5kZXggODU1OTc3ZGU5YzI1MDI3ZmFjMmIyZDYyNThlZDNkNTQ4MzY3MGJiMS4uMGZjY2NmNGUx
ODU2ZmRlNTczYzJkNjgyM2JkNmI5NzMwZGI2ZDQxZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL1RpbGVkRHJhd2luZ0FyZWFQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9UaWxlZERyYXdpbmdBcmVhUHJveHkuaApAQCAtMzEsMTAgKzMxLDkgQEAKICNp
bmNsdWRlICJEcmF3aW5nQXJlYVByb3h5LmgiCiAjaW5jbHVkZSA8V2ViQ29yZS9HcmFwaGljc0Nv
bnRleHQuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0ludFJlY3QuaD4KKyNpbmNsdWRlIDxXZWJDb3Jl
L1J1bkxvb3AuaD4KICNpbmNsdWRlIDx3dGYvSGFzaFNldC5oPgogCi0jaW5jbHVkZSAiUnVuTG9v
cC5oIgotCiAjaWYgUExBVEZPUk0oTUFDKQogI2luY2x1ZGUgPHd0Zi9SZXRhaW5QdHIuaD4KICNp
ZmRlZiBfX09CSkNfXwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1Zpc2l0
ZWRMaW5rUHJvdmlkZXIuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9WaXNpdGVkTGlua1By
b3ZpZGVyLmgKaW5kZXggYTQyOGQ1YjgzNmI4MGFhMzJlZGM1MzdjZTBkYTA2NjdmODY5NmFiMS4u
NDYxYzVhYzk0ZTdjMmM0ZTYwYjI5MmUyNThiYmQ0M2FkZDMyMDlmMSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL1Zpc2l0ZWRMaW5rUHJvdmlkZXIuaAorKysgYi9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvVmlzaXRlZExpbmtQcm92aWRlci5oCkBAIC0yNiw5ICsyNiw5IEBA
CiAjaWZuZGVmIFZpc2l0ZWRMaW5rUHJvdmlkZXJfaAogI2RlZmluZSBWaXNpdGVkTGlua1Byb3Zp
ZGVyX2gKIAotI2luY2x1ZGUgIlJ1bkxvb3AuaCIKICNpbmNsdWRlICJWaXNpdGVkTGlua1RhYmxl
LmgiCiAjaW5jbHVkZSA8V2ViQ29yZS9MaW5rSGFzaC5oPgorI2luY2x1ZGUgPFdlYkNvcmUvUnVu
TG9vcC5oPgogI2luY2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+CiAjaW5jbHVkZSA8d3RmL0hhc2hTZXQu
aD4KIApAQCAtNTgsNyArNTgsNyBAQCBwcml2YXRlOgogICAgIFZpc2l0ZWRMaW5rVGFibGUgbV90
YWJsZTsKIAogICAgIEhhc2hTZXQ8V2ViQ29yZTo6TGlua0hhc2gsIFdlYkNvcmU6OkxpbmtIYXNo
SGFzaD4gbV9wZW5kaW5nVmlzaXRlZExpbmtzOwotICAgIFJ1bkxvb3A6OlRpbWVyPFZpc2l0ZWRM
aW5rUHJvdmlkZXI+IG1fcGVuZGluZ1Zpc2l0ZWRMaW5rc1RpbWVyOworICAgIFdlYkNvcmU6OlJ1
bkxvb3A6OlRpbWVyPFZpc2l0ZWRMaW5rUHJvdmlkZXI+IG1fcGVuZGluZ1Zpc2l0ZWRMaW5rc1Rp
bWVyOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvV2ViQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5jcHAgYi9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvV2ViQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5jcHAKaW5kZXggYjFkMTAz
ZmJjZTFkMmY1OWQxMjllZmZlMjFkZjA4Mjk2OGNiYjA1Zi4uYmU4MTRjMGE5YWQyMTYwZGYzNjIy
OGNiYTcxNjE4MzNjOTQ3YWNjNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L1dlYkNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9XZWJDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmNwcApAQCAtMzAsNiArMzAsOCBAQAogI2lu
Y2x1ZGUgIldlYkNvbnRleHRVc2VyTWVzc2FnZUNvZGVycy5oIgogI2luY2x1ZGUgIldlYlByb2Nl
c3NQcm94eS5oIgogCit1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKKwogbmFtZXNwYWNlIFdlYktp
dCB7CiAKIFBhc3NSZWZQdHI8V2ViQ29ubmVjdGlvblRvV2ViUHJvY2Vzcz4gV2ViQ29ubmVjdGlv
blRvV2ViUHJvY2Vzczo6Y3JlYXRlKFdlYlByb2Nlc3NQcm94eSogcHJvY2VzcywgQ29yZUlQQzo6
Q29ubmVjdGlvbjo6SWRlbnRpZmllciBjb25uZWN0aW9uSWRlbnRpZmllciwgUnVuTG9vcCogcnVu
TG9vcCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJDb25uZWN0aW9u
VG9XZWJQcm9jZXNzLmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViQ29ubmVjdGlvblRv
V2ViUHJvY2Vzcy5oCmluZGV4IGI5ZDU4ZjJjNzAzMGI2MjU3OTdiMDNhNjg1ZjE4ZjllNzRiNmNl
Y2MuLmY0OTYyZTI2Y2MwMzkwNmQ1NjdmMTdiYWE2ZGZhMDExZDU5NTM4M2YgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmgKKysr
IGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuaApA
QCAtMzUsMTQgKzM1LDE0IEBAIGNsYXNzIFdlYlByb2Nlc3NQcm94eTsKIAogY2xhc3MgV2ViQ29u
bmVjdGlvblRvV2ViUHJvY2VzcyA6IHB1YmxpYyBXZWJDb25uZWN0aW9uLCBDb3JlSVBDOjpDb25u
ZWN0aW9uOjpDbGllbnQgewogcHVibGljOgotICAgIHN0YXRpYyBQYXNzUmVmUHRyPFdlYkNvbm5l
Y3Rpb25Ub1dlYlByb2Nlc3M+IGNyZWF0ZShXZWJQcm9jZXNzUHJveHkqLCBDb3JlSVBDOjpDb25u
ZWN0aW9uOjpJZGVudGlmaWVyLCBSdW5Mb29wKik7CisgICAgc3RhdGljIFBhc3NSZWZQdHI8V2Vi
Q29ubmVjdGlvblRvV2ViUHJvY2Vzcz4gY3JlYXRlKFdlYlByb2Nlc3NQcm94eSosIENvcmVJUEM6
OkNvbm5lY3Rpb246OklkZW50aWZpZXIsIFdlYkNvcmU6OlJ1bkxvb3AqKTsKIAogICAgIENvcmVJ
UEM6OkNvbm5lY3Rpb24qIGNvbm5lY3Rpb24oKSB7IHJldHVybiBtX2Nvbm5lY3Rpb24uZ2V0KCk7
IH0KIAogICAgIHZvaWQgaW52YWxpZGF0ZSgpOwogCiBwcml2YXRlOgotICAgIFdlYkNvbm5lY3Rp
b25Ub1dlYlByb2Nlc3MoV2ViUHJvY2Vzc1Byb3h5KiwgQ29yZUlQQzo6Q29ubmVjdGlvbjo6SWRl
bnRpZmllciwgUnVuTG9vcCopOworICAgIFdlYkNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MoV2ViUHJv
Y2Vzc1Byb3h5KiwgQ29yZUlQQzo6Q29ubmVjdGlvbjo6SWRlbnRpZmllciwgV2ViQ29yZTo6UnVu
TG9vcCopOwogCiAgICAgLy8gV2ViQ29ubmVjdGlvbgogICAgIHZpcnR1YWwgdm9pZCBwb3N0TWVz
c2FnZShjb25zdCBTdHJpbmcmLCBBUElPYmplY3QqKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9XZWJDb250ZXh0LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9X
ZWJDb250ZXh0LmNwcAppbmRleCBlNGQxYTVjNDE0NjNhOWI5Mjc0ZGI4OTQ2YmE4Njk3YjQ3ZGFj
NDA0Li4yM2NhNTZiZTZiYTEzOWNhZWE4Y2ZmMDQ0MzQ1MDY4NTUxOGFkNWQyIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViQ29udGV4dC5jcHAKKysrIGIvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL1dlYkNvbnRleHQuY3BwCkBAIC0zMSw3ICszMSw2IEBACiAjaW5jbHVk
ZSAiSW5qZWN0ZWRCdW5kbGVNZXNzYWdlS2luZHMuaCIKICNpbmNsdWRlICJMb2dnaW5nLmgiCiAj
aW5jbHVkZSAiTXV0YWJsZURpY3Rpb25hcnkuaCIKLSNpbmNsdWRlICJSdW5Mb29wLmgiCiAjaW5j
bHVkZSAiU2FuZGJveEV4dGVuc2lvbi5oIgogI2luY2x1ZGUgIlN0YXRpc3RpY3NEYXRhLmgiCiAj
aW5jbHVkZSAiVGV4dENoZWNrZXIuaCIKQEAgLTU4LDYgKzU3LDcgQEAKICNpbmNsdWRlIDxXZWJD
b3JlL0xpbmtIYXNoLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9Mb2dnaW5nLmg+CiAjaW5jbHVkZSA8
V2ViQ29yZS9SZXNvdXJjZVJlcXVlc3QuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL1J1bkxvb3AuaD4K
ICNpbmNsdWRlIDxydW50aW1lL0luaXRpYWxpemVUaHJlYWRpbmcuaD4KICNpbmNsdWRlIDx3dGYv
Q3VycmVudFRpbWUuaD4KICNpbmNsdWRlIDx3dGYvTWFpblRocmVhZC5oPgpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL3dpbi9XZWJWaWV3LmNwcCBiL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy93aW4vV2ViVmlldy5jcHAKaW5kZXggZDQ0ZTI1NTYwZTJlMTU4NTE1YTAyZDNk
MmY5ODM3YTViMTBiNzVlYy4uZTlhM2QwNGIwODljZGM0ZmQxNDA0MmNhNjdjMDg0NTY4Mzg3Yzdm
YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL3dpbi9XZWJWaWV3LmNwcAor
KysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mvd2luL1dlYlZpZXcuY3BwCkBAIC0zMiwxMSAr
MzIsNyBAQAogI2luY2x1ZGUgIk5hdGl2ZVdlYktleWJvYXJkRXZlbnQuaCIKICNpbmNsdWRlICJO
YXRpdmVXZWJNb3VzZUV2ZW50LmgiCiAjaW5jbHVkZSAiTmF0aXZlV2ViV2hlZWxFdmVudC5oIgot
I2luY2x1ZGUgIlJ1bkxvb3AuaCIKICNpbmNsdWRlICJXS0FQSUNhc3QuaCIKLSNpZiBVU0UoQ0cp
Ci0jaW5jbHVkZSAiV0tDQUNGVmlld1dpbmRvdy5oIgotI2VuZGlmCiAjaW5jbHVkZSAiV2ViQ29u
dGV4dC5oIgogI2luY2x1ZGUgIldlYkNvbnRleHRNZW51UHJveHlXaW4uaCIKICNpbmNsdWRlICJX
ZWJFZGl0Q29tbWFuZFByb3h5LmgiCkBAIC00OSwxOCArNDUsMjEgQEAKICNpbmNsdWRlIDxXZWJD
b3JlL0RyYWdTZXNzaW9uLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9FZGl0b3IuaD4KICNpbmNsdWRl
IDxXZWJDb3JlL0Zsb2F0UmVjdC5oPgotI2lmIFVTRShDRykKLSNpbmNsdWRlIDxXZWJDb3JlL0dy
YXBoaWNzQ29udGV4dENHLmg+Ci0jZW5kaWYKICNpbmNsdWRlIDxXZWJDb3JlL0ludFJlY3QuaD4K
ICNpbmNsdWRlIDxXZWJDb3JlL05vdEltcGxlbWVudGVkLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9S
ZWdpb24uaD4KKyNpbmNsdWRlIDxXZWJDb3JlL1J1bkxvb3AuaD4KICNpbmNsdWRlIDxXZWJDb3Jl
L1NvZnRMaW5raW5nLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9XZWJDb3JlSW5zdGFuY2VIYW5kbGUu
aD4KICNpbmNsdWRlIDxXZWJDb3JlL1dpbmRvd01lc3NhZ2VCcm9hZGNhc3Rlci5oPgogI2luY2x1
ZGUgPFdlYkNvcmUvV2luZG93c1RvdWNoLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5n
Lmg+CiAKKyNpZiBVU0UoQ0cpCisjaW5jbHVkZSAiV0tDQUNGVmlld1dpbmRvdy5oIgorI2luY2x1
ZGUgPFdlYkNvcmUvR3JhcGhpY3NDb250ZXh0Q0cuaD4KKyNlbmRpZgorCiAjaWYgRU5BQkxFKEZV
TExTQ1JFRU5fQVBJKQogI2luY2x1ZGUgIldlYkZ1bGxTY3JlZW5NYW5hZ2VyUHJveHkuaCIKICNp
bmNsdWRlIDxXZWJDb3JlL0Z1bGxTY3JlZW5Db250cm9sbGVyLmg+CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0Mi9XZWJLaXQyLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2Vi
S2l0Mi9XZWJLaXQyLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggZjg1MWVkYzc0YTYy
NWU1M2JlNjkzZjBiYTIwZTRlNzNjNGQyZGU4ZC4uMzNhYTgxMzUzZTRiMDg2NTVhYjM1OWFkYjFk
YmQwN2I1ZjhkZmExNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViS2l0Mi54Y29kZXBy
b2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYktpdDIueGNvZGVwcm9q
L3Byb2plY3QucGJ4cHJvagpAQCAtNDY1LDcgKzQ2NSw2IEBACiAJCUI2MzQwM0Y5MTQ5MTBENTcw
MDEwNzBCNSAvKiBBUElPYmplY3QuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gQjYzNDAzRjgxNDkxMEQ1NzAwMTA3MEI1IC8qIEFQSU9iamVjdC5jcHAg
Ki87IH07CiAJCUI4NzhCNjE1MTMzNDI4REMwMDY4ODhFOSAvKiBDb3JyZWN0aW9uUGFuZWwuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEI4NzhCNjEzMTMz
NDI4REMwMDY4ODhFOSAvKiBDb3JyZWN0aW9uUGFuZWwuaCAqLzsgfTsKIAkJQjg3OEI2MTYxMzM0
MjhEQzAwNjg4OEU5IC8qIENvcnJlY3Rpb25QYW5lbC5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEI4NzhCNjE0MTMzNDI4REMwMDY4ODhFOSAvKiBDb3Jy
ZWN0aW9uUGFuZWwubW0gKi87IH07Ci0JCUJDMDA5MkY3MTE1ODM3QTMwMEUwQUUyQSAvKiBSdW5M
b29wTWFjLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
QkMwMDkyRjUxMTU4MzdBMzAwRTBBRTJBIC8qIFJ1bkxvb3BNYWMubW0gKi87IH07CiAJCUJDMDA5
MkY4MTE1ODM3QTMwMEUwQUUyQSAvKiBXb3JrUXVldWVNYWMuY3BwIGluIFNvdXJjZXMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkMwMDkyRjYxMTU4MzdBMzAwRTBBRTJBIC8q
IFdvcmtRdWV1ZU1hYy5jcHAgKi87IH07CiAJCUJDMDMyRDc1MTBGNDM3OEQwMDU4QzE1QSAvKiBX
ZWJDaHJvbWVDbGllbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IEJDMDMyRDYwMTBGNDM3OEQwMDU4QzE1QSAvKiBXZWJDaHJvbWVDbGllbnQuaCAqLzsg
fTsKIAkJQkMwMzJENzcxMEY0Mzc4RDAwNThDMTVBIC8qIFdlYkNvbnRleHRNZW51Q2xpZW50Lmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCQzAzMkQ2MjEw
RjQzNzhEMDA1OEMxNUEgLyogV2ViQ29udGV4dE1lbnVDbGllbnQuaCAqLzsgfTsKQEAgLTU1OSw4
ICs1NTgsNiBAQAogCQlCQzJEMDIxNzEyQUM0MUNCMDBFNzMyQTMgLyogU2FtZURvY3VtZW50TmF2
aWdhdGlvblR5cGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IEJDMkQwMjE2MTJBQzQxQ0IwMEU3MzJBMyAvKiBTYW1lRG9jdW1lbnROYXZpZ2F0aW9uVHlw
ZS5oICovOyB9OwogCQlCQzJEMDIxOTEyQUM0MjZDMDBFNzMyQTMgLyogV0tQYWdlTG9hZFR5cGVz
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCQzJEMDIx
ODEyQUM0MjZDMDBFNzMyQTMgLyogV0tQYWdlTG9hZFR5cGVzLmggKi87IHNldHRpbmdzID0ge0FU
VFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJQkMyREZCQTMxMkE3NjFBNTAwRTczMkEz
IC8qIFdlYlByZWZlcmVuY2VzQ0YuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gQkMyREZCQTIxMkE3NjFBNTAwRTczMkEzIC8qIFdlYlByZWZlcmVuY2Vz
Q0YuY3BwICovOyB9OwotCQlCQzJFNkU4NzExNDE5NzE1MDBBNjNCMUUgLyogUnVuTG9vcC5jcHAg
aW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCQzJFNkU3NzEx
NDE5NzBDMDBBNjNCMUUgLyogUnVuTG9vcC5jcHAgKi87IH07Ci0JCUJDMkU2RTg4MTE0MTk3MTUw
MEE2M0IxRSAvKiBSdW5Mb29wLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSBCQzJFNkU3ODExNDE5NzBDMDBBNjNCMUUgLyogUnVuTG9vcC5oICovOyB9Owog
CQlCQzJFNkU4RDExNDE5NzE1MDBBNjNCMUUgLyogV29ya1F1ZXVlLmNwcCBpbiBTb3VyY2VzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDMkU2RTdEMTE0MTk3MEMwMEE2M0Ix
RSAvKiBXb3JrUXVldWUuY3BwICovOyB9OwogCQlCQzJFNkU4RTExNDE5NzE1MDBBNjNCMUUgLyog
V29ya1F1ZXVlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSBCQzJFNkU3RTExNDE5NzBDMDBBNjNCMUUgLyogV29ya1F1ZXVlLmggKi87IH07CiAJCUJDMzA2
NUM0MTI1OTJGODkwMEU3MTI3OCAvKiBXZWJQcm9jZXNzTWFjLm1tIGluIFNvdXJjZXMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkMzMDY1QzMxMjU5MkY4OTAwRTcxMjc4IC8q
IFdlYlByb2Nlc3NNYWMubW0gKi87IH07CkBAIC0xNDgzLDcgKzE0ODAsNiBAQAogCQlCNjM0MDNG
ODE0OTEwRDU3MDAxMDcwQjUgLyogQVBJT2JqZWN0LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Y3BwLmNwcDsgcGF0aCA9IEFQSU9iamVjdC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCUI4NzhCNjEzMTMzNDI4REMwMDY4ODhFOSAvKiBDb3JyZWN0aW9uUGFuZWwuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQ29ycmVjdGlvblBhbmVsLmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCUI4NzhCNjE0MTMzNDI4REMwMDY4ODhFOSAvKiBDb3JyZWN0aW9u
UGFuZWwubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBDb3JyZWN0
aW9uUGFuZWwubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCUJDMDA5MkY1MTE1ODM3
QTMwMEUwQUUyQSAvKiBSdW5Mb29wTWFjLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2Jq
Y3BwOyBwYXRoID0gUnVuTG9vcE1hYy5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
QkMwMDkyRjYxMTU4MzdBMzAwRTBBRTJBIC8qIFdvcmtRdWV1ZU1hYy5jcHAgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXb3JrUXVldWVNYWMuY3BwOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQlCQzAzMkQ2MDEwRjQzNzhEMDA1OEMxNUEgLyogV2ViQ2hyb21lQ2xp
ZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYkNocm9tZUNsaWVudC5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlCQzAzMkQ2MjEwRjQzNzhEMDA1OEMxNUEg
LyogV2ViQ29udGV4dE1lbnVDbGllbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gV2ViQ29udGV4dE1lbnVDbGllbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAg
LTE1ODMsOCArMTU3OSw2IEBACiAJCUJDMkQwMjE2MTJBQzQxQ0IwMEU3MzJBMyAvKiBTYW1lRG9j
dW1lbnROYXZpZ2F0aW9uVHlwZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBT
YW1lRG9jdW1lbnROYXZpZ2F0aW9uVHlwZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQlCQzJEMDIxODEyQUM0MjZDMDBFNzMyQTMgLyogV0tQYWdlTG9hZFR5cGVzLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdLUGFnZUxvYWRUeXBlcy5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQlCQzJERkJBMjEyQTc2MUE1MDBFNzMyQTMgLyogV2ViUHJlZmVyZW5j
ZXNDRi5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBXZWJQcmVmZXJl
bmNlc0NGLmNwcDsgcGF0aCA9IGNmL1dlYlByZWZlcmVuY2VzQ0YuY3BwOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwotCQlCQzJFNkU3NzExNDE5NzBDMDBBNjNCMUUgLyogUnVuTG9vcC5jcHAg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBSdW5Mb29wLmNwcDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJQkMyRTZFNzgxMTQxOTcwQzAwQTYzQjFFIC8qIFJ1bkxv
b3AuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUnVuTG9vcC5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQlCQzJFNkU3RDExNDE5NzBDMDBBNjNCMUUgLyogV29ya1F1
ZXVlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdvcmtRdWV1ZS5j
cHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUJDMkU2RTdFMTE0MTk3MEMwMEE2M0Ix
RSAvKiBXb3JrUXVldWUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV29ya1F1
ZXVlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUJDMzA2NUMzMTI1OTJGODkwMEU3
MTI3OCAvKiBXZWJQcm9jZXNzTWFjLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3Bw
OyBwYXRoID0gV2ViUHJvY2Vzc01hYy5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAg
LTIyNjAsNyArMjI1NCw2IEBACiAJCQkJMUEyNEI1RjAxMUY1MzFFODAwQzM4MjY5IC8qIE1hY2hV
dGlsaXRpZXMuY3BwICovLAogCQkJCTFBMjRCNUYxMTFGNTMxRTgwMEMzODI2OSAvKiBNYWNoVXRp
bGl0aWVzLmggKi8sCiAJCQkJQzBFM0FBNDgxMjA5RTQ1MDAwQTQ5RDAxIC8qIE1vZHVsZU1hYy5t
bSAqLywKLQkJCQlCQzAwOTJGNTExNTgzN0EzMDBFMEFFMkEgLyogUnVuTG9vcE1hYy5tbSAqLywK
IAkJCQkxQTI0QkYzOTEyMDg5NkE2MDBGQkIwNTkgLyogU2hhcmVkTWVtb3J5TWFjLmNwcCAqLywK
IAkJCQlCQzAwOTJGNjExNTgzN0EzMDBFMEFFMkEgLyogV29ya1F1ZXVlTWFjLmNwcCAqLywKIAkJ
CSk7CkBAIC0zMjgyLDggKzMyNzUsNiBAQAogCQkJCUMwRTNBQTQ1MTIwOUUyQkEwMEE0OUQwMSAv
KiBNb2R1bGUuY3BwICovLAogCQkJCUMwRTNBQTQ0MTIwOUUyQkEwMEE0OUQwMSAvKiBNb2R1bGUu
aCAqLywKIAkJCQlCQzg3ODBGQjExNjFDMkI4MDBDQzI3NjggLyogUGxhdGZvcm1Qcm9jZXNzSWRl
bnRpZmllci5oICovLAotCQkJCUJDMkU2RTc3MTE0MTk3MEMwMEE2M0IxRSAvKiBSdW5Mb29wLmNw
cCAqLywKLQkJCQlCQzJFNkU3ODExNDE5NzBDMDBBNjNCMUUgLyogUnVuTG9vcC5oICovLAogCQkJ
CTFBMjRCRUQzMTIwODk0RDEwMEZCQjA1OSAvKiBTaGFyZWRNZW1vcnkuaCAqLywKIAkJCQlCQzJF
NkU3RDExNDE5NzBDMDBBNjNCMUUgLyogV29ya1F1ZXVlLmNwcCAqLywKIAkJCQlCQzJFNkU3RTEx
NDE5NzBDMDBBNjNCMUUgLyogV29ya1F1ZXVlLmggKi8sCkBAIC0zODQ4LDcgKzM4MzksNiBAQAog
CQkJCUJDMUE3QzU4MTEzNkUxOUMwMEZCNzE2NyAvKiBQcm9jZXNzTGF1bmNoZXIuaCBpbiBIZWFk
ZXJzICovLAogCQkJCUJDNTk3MDc1MTE2NTkxRDAwMDU1MUZDQSAvKiBQcm9jZXNzTW9kZWwuaCBp
biBIZWFkZXJzICovLAogCQkJCTFBMzAwNjZFMTExMEY0RjcwMDMxOTM3QyAvKiBSZXNwb25zaXZl
bmVzc1RpbWVyLmggaW4gSGVhZGVycyAqLywKLQkJCQlCQzJFNkU4ODExNDE5NzE1MDBBNjNCMUUg
LyogUnVuTG9vcC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkMyRDAyMTcxMkFDNDFDQjAwRTczMkEz
IC8qIFNhbWVEb2N1bWVudE5hdmlnYXRpb25UeXBlLmggaW4gSGVhZGVycyAqLywKIAkJCQkxQUFC
NEE4RDEyOTZGMEEyMDAyMzk1MkYgLyogU2FuZGJveEV4dGVuc2lvbi5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJNTFEMTMwNTQxMzgyRUFDMDAwMzUxRUREIC8qIFNlY0l0ZW1SZXF1ZXN0RGF0YS5oIGlu
IEhlYWRlcnMgKi8sCkBAIC00NTgxLDggKzQ1NzEsNiBAQAogCQkJCTFBRTExN0Y2MTFEQkIzMDkw
MDk4MTYxNSAvKiBQcm9jZXNzTGF1bmNoZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQkMxMTFC
MUQxMTJGNUZFNjAwMzM3QkFCIC8qIFByb2Nlc3NMYXVuY2hlck1hYy5tbSBpbiBTb3VyY2VzICov
LAogCQkJCUJDMTExQjA5MTEyRjVFM0MwMDMzN0JBQiAvKiBSZXNwb25zaXZlbmVzc1RpbWVyLmNw
cCBpbiBTb3VyY2VzICovLAotCQkJCUJDMkU2RTg3MTE0MTk3MTUwMEE2M0IxRSAvKiBSdW5Mb29w
LmNwcCBpbiBTb3VyY2VzICovLAotCQkJCUJDMDA5MkY3MTE1ODM3QTMwMEUwQUUyQSAvKiBSdW5M
b29wTWFjLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJMUFBQjRBQUExMjk2RjE1NDAwMjM5NTJGIC8q
IFNhbmRib3hFeHRlbnNpb25NYWMubW0gaW4gU291cmNlcyAqLywKIAkJCQk1MUQxMzA1MzEzODJF
QUMwMDAzNTFFREQgLyogU2VjSXRlbVJlcXVlc3REYXRhLmNwcCBpbiBTb3VyY2VzICovLAogCQkJ
CTUxRDEzMDU1MTM4MkVBQzAwMDM1MUVERCAvKiBTZWNJdGVtUmVzcG9uc2VEYXRhLmNwcCBpbiBT
b3VyY2VzICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5z
L05ldHNjYXBlL05QUnVudGltZU9iamVjdE1hcC5oIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy9QbHVnaW5zL05ldHNjYXBlL05QUnVudGltZU9iamVjdE1hcC5oCmluZGV4IGJlZjcwMWJlZTc5
NTY4MjZjODg2MDQyZTBlNzgyMmMzNGU4NDU3ZjIuLmRlZmZkNTQzMTdkMTdjNTE4NzViMWU3MmY5
NTk2ODU0NjcwYzAzNmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1
Z2lucy9OZXRzY2FwZS9OUFJ1bnRpbWVPYmplY3RNYXAuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9X
ZWJQcm9jZXNzL1BsdWdpbnMvTmV0c2NhcGUvTlBSdW50aW1lT2JqZWN0TWFwLmgKQEAgLTI2LDkg
KzI2LDcgQEAKICNpZm5kZWYgTlBKU09iamVjdFdyYXBwZXJNYXBfaAogI2RlZmluZSBOUEpTT2Jq
ZWN0V3JhcHBlck1hcF9oCiAKLQotI2luY2x1ZGUgIlJ1bkxvb3AuaCIKLQorI2luY2x1ZGUgPFdl
YkNvcmUvUnVuTG9vcC5oPgogI2luY2x1ZGUgPGhlYXAvV2Vhay5oPgogI2luY2x1ZGUgPHd0Zi9G
b3J3YXJkLmg+CiAjaW5jbHVkZSA8d3RmL0hhc2hNYXAuaD4KQEAgLTk4LDcgKzk2LDcgQEAgcHJp
dmF0ZToKICAgICBIYXNoTWFwPEpTQzo6SlNPYmplY3QqLCBOUEpTT2JqZWN0Kj4gbV9ucEpTT2Jq
ZWN0czsKICAgICBIYXNoTWFwPE5QT2JqZWN0KiwgSlNDOjpXZWFrPEpTTlBPYmplY3Q+ID4gbV9q
c05QT2JqZWN0czsKICAgICBWZWN0b3I8TlBPYmplY3QqPiBtX25wT2JqZWN0c1RvRmluYWxpemU7
Ci0gICAgUnVuTG9vcDo6VGltZXI8TlBSdW50aW1lT2JqZWN0TWFwPiBtX2ZpbmFsaXphdGlvblRp
bWVyOworICAgIFdlYkNvcmU6OlJ1bkxvb3A6OlRpbWVyPE5QUnVudGltZU9iamVjdE1hcD4gbV9m
aW5hbGl6YXRpb25UaW1lcjsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL05ldHNjYXBlL05ldHNjYXBlUGx1
Z2luLmggYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvTmV0c2NhcGUvTmV0c2Nh
cGVQbHVnaW4uaAppbmRleCA4NDU0MTgyMGM4NjA0YzllNThhZjFjNzFmOGQ3OWJhOGQ5ZTgyODdh
Li5hZGFkMmQwMTViNzBmNjJjMzE2OTM5NjE2NmE2YTNhZTRjODQwMzE0IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvTmV0c2NhcGUvTmV0c2NhcGVQbHVnaW4u
aAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvTmV0c2NhcGUvTmV0c2Nh
cGVQbHVnaW4uaApAQCAtMjgsMTAgKzI4LDEwIEBACiAKICNpbmNsdWRlICJOZXRzY2FwZVBsdWdp
bk1vZHVsZS5oIgogI2luY2x1ZGUgIlBsdWdpbi5oIgotI2luY2x1ZGUgIlJ1bkxvb3AuaCIKICNp
bmNsdWRlIDxXZWJDb3JlL0FmZmluZVRyYW5zZm9ybS5oPgogI2luY2x1ZGUgPFdlYkNvcmUvR3Jh
cGhpY3NMYXllci5oPgogI2luY2x1ZGUgPFdlYkNvcmUvSW50UmVjdC5oPgorI2luY2x1ZGUgPFdl
YkNvcmUvUnVuTG9vcC5oPgogI2luY2x1ZGUgPHd0Zi9IYXNoTWFwLmg+CiAjaW5jbHVkZSA8d3Rm
L3RleHQvQ1N0cmluZy5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L1N0cmluZ0hhc2guaD4KQEAgLTI5
MSw3ICsyOTEsNyBAQCBwcml2YXRlOgogICAgICAgICBib29sIG1fcmVwZWF0OwogICAgICAgICBU
aW1lckZ1bmMgbV90aW1lckZ1bmM7CiAKLSAgICAgICAgUnVuTG9vcDo6VGltZXI8VGltZXI+IG1f
dGltZXI7CisgICAgICAgIFdlYkNvcmU6OlJ1bkxvb3A6OlRpbWVyPFRpbWVyPiBtX3RpbWVyOwog
ICAgIH07CiAgICAgdHlwZWRlZiBIYXNoTWFwPHVuc2lnbmVkLCBUaW1lcio+IFRpbWVyTWFwOwog
ICAgIFRpbWVyTWFwIG1fdGltZXJzOwpAQCAtMzMyLDcgKzMzMiw3IEBAIHByaXZhdGU6CiAKICAg
ICAvLyBGSVhNRTogSXQncyBhIGJpdCB3YXN0ZWZ1bCB0byBoYXZlIG9uZSBudWxsIGV2ZW50IHRp
bWVyIHBlciBwbHVnLWluLgogICAgIC8vIFdlIHNob3VsZCBpbnZlc3RpZ2F0ZSBoYXZpbmcgb25l
IHBlciB3aW5kb3cuCi0gICAgUnVuTG9vcDo6VGltZXI8TmV0c2NhcGVQbHVnaW4+IG1fbnVsbEV2
ZW50VGltZXI7CisgICAgV2ViQ29yZTo6UnVuTG9vcDo6VGltZXI8TmV0c2NhcGVQbHVnaW4+IG1f
bnVsbEV2ZW50VGltZXI7CiAgICAgTlBfQ0dDb250ZXh0IG1fbnBDR0NvbnRleHQ7CiAjZW5kaWYK
ICNlbGlmIFBMVUdJTl9BUkNISVRFQ1RVUkUoV0lOKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dDIvV2ViUHJvY2Vzcy9QbHVnaW5zL05ldHNjYXBlL05ldHNjYXBlUGx1Z2luU3RyZWFtLmNwcCBi
L1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9OZXRzY2FwZS9OZXRzY2FwZVBsdWdp
blN0cmVhbS5jcHAKaW5kZXggMjNhODNmZTZkNjFlYzNjNGI5YTU1NDIyNGYzZWZkZWM1MDRmZWMw
Yy4uNWU0OTZlMzA2YWZmNGU4ZDY2YjgwYWYxY2IwYjU1MmMwZGEzOTg1MSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL05ldHNjYXBlL05ldHNjYXBlUGx1Z2lu
U3RyZWFtLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvTmV0c2Nh
cGUvTmV0c2NhcGVQbHVnaW5TdHJlYW0uY3BwCkBAIC0yOCw2ICsyOCw4IEBACiAKICNpbmNsdWRl
ICJOZXRzY2FwZVBsdWdpbi5oIgogI2luY2x1ZGUgPHV0aWxpdHk+CisjaW5jbHVkZSA8d3RmL1Bh
c3NPd25QdHIuaD4KKyNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+CiAKIHVzaW5nIG5hbWVzcGFjZSBX
ZWJDb3JlOwogdXNpbmcgbmFtZXNwYWNlIHN0ZDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQy
L1dlYlByb2Nlc3MvUGx1Z2lucy9OZXRzY2FwZS9OZXRzY2FwZVBsdWdpblN0cmVhbS5oIGIvU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL05ldHNjYXBlL05ldHNjYXBlUGx1Z2luU3Ry
ZWFtLmgKaW5kZXggZGUyNjgyN2ZjNzJiNjRmODhmNWQwMWQ0MzY1ZTZmYjRjYzNlNzQwMy4uMDU4
NzNlNGY0YTU2MWI3NjRkYWFlZTI2MDIxNDUwMDE4ZGY3NmMyZSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL05ldHNjYXBlL05ldHNjYXBlUGx1Z2luU3RyZWFt
LmgKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL05ldHNjYXBlL05ldHNj
YXBlUGx1Z2luU3RyZWFtLmgKQEAgLTI2LDggKzI2LDggQEAKICNpZm5kZWYgTmV0c2NhcGVQbHVn
aW5TdHJlYW1faAogI2RlZmluZSBOZXRzY2FwZVBsdWdpblN0cmVhbV9oCiAKLSNpbmNsdWRlICJS
dW5Mb29wLmgiCiAjaW5jbHVkZSA8V2ViQ29yZS9GaWxlU3lzdGVtLmg+CisjaW5jbHVkZSA8V2Vi
Q29yZS9SdW5Mb29wLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9ucHJ1bnRpbWVfaW50ZXJuYWwuaD4K
ICNpbmNsdWRlIDx3dGYvRm9yd2FyZC5oPgogI2luY2x1ZGUgPHd0Zi9QYXNzUmVmUHRyLmg+CkBA
IC0zNiw3ICszNiw3IEBACiAjaW5jbHVkZSA8d3RmL3RleHQvQ1N0cmluZy5oPgogCiBuYW1lc3Bh
Y2UgV2ViQ29yZSB7Ci0gICAgY2xhc3MgS1VSTDsKK2NsYXNzIEtVUkw7CiB9CiAKIG5hbWVzcGFj
ZSBXZWJLaXQgewpAQCAtMTAzLDcgKzEwMyw3IEBAIHByaXZhdGU6CiAgICAgQ1N0cmluZyBtX21p
bWVUeXBlOwogICAgIENTdHJpbmcgbV9oZWFkZXJzOwogCi0gICAgUnVuTG9vcDo6VGltZXI8TmV0
c2NhcGVQbHVnaW5TdHJlYW0+IG1fZGVsaXZlcnlEYXRhVGltZXI7CisgICAgV2ViQ29yZTo6UnVu
TG9vcDo6VGltZXI8TmV0c2NhcGVQbHVnaW5TdHJlYW0+IG1fZGVsaXZlcnlEYXRhVGltZXI7CiAg
ICAgT3duUHRyPCBWZWN0b3I8dWludDhfdD4gPiBtX2RlbGl2ZXJ5RGF0YTsKICAgICBib29sIG1f
c3RvcFN0cmVhbVdoZW5Eb25lRGVsaXZlcmluZzsKIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvUGx1Z2luVmlldy5oIGIvU291cmNlL1dlYktpdDIvV2Vi
UHJvY2Vzcy9QbHVnaW5zL1BsdWdpblZpZXcuaAppbmRleCA5NjI0YWM5NTRmYWJlOGY1NTIyMzRi
ODM1ZGY3MDMyYjNiNjBhYTUyLi5jZDYzNjNhNThiYmVhZDMxODE1MjU0OTU1NTdjOGRkZWI5MzE5
NmFmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvUGx1Z2lu
Vmlldy5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9QbHVnaW5WaWV3
LmgKQEAgLTI5LDEzICsyOSwxMiBAQAogI2luY2x1ZGUgIk5QUnVudGltZU9iamVjdE1hcC5oIgog
I2luY2x1ZGUgIlBsdWdpbi5oIgogI2luY2x1ZGUgIlBsdWdpbkNvbnRyb2xsZXIuaCIKLSNpbmNs
dWRlICJSdW5Mb29wLmgiCiAjaW5jbHVkZSAiV2ViRnJhbWUuaCIKLQogI2luY2x1ZGUgPFdlYkNv
cmUvTWVkaWFDYW5TdGFydExpc3RlbmVyLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9QbHVnaW5WaWV3
QmFzZS5oPgogI2luY2x1ZGUgPFdlYkNvcmUvUmVzb3VyY2VFcnJvci5oPgogI2luY2x1ZGUgPFdl
YkNvcmUvUmVzb3VyY2VSZXNwb25zZS5oPgotI2luY2x1ZGUgPFdlYkNvcmUvUGx1Z2luVmlld0Jh
c2UuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL1J1bkxvb3AuaD4KICNpbmNsdWRlIDx3dGYvRGVxdWUu
aD4KIAogLy8gRklYTUU6IEV2ZW50dWFsbHkgdGhpcyBzaG91bGQgbW92ZSB0byBXZWJDb3JlLgpA
QCAtMTgwLDcgKzE3OSw3IEBAIHByaXZhdGU6CiAKICAgICAvLyBQZW5kaW5nIFVSTFJlcXVlc3Rz
IHRoYXQgdGhlIHBsdWctaW4gaGFzIG1hZGUuCiAgICAgRGVxdWU8UmVmUHRyPFVSTFJlcXVlc3Q+
ID4gbV9wZW5kaW5nVVJMUmVxdWVzdHM7Ci0gICAgUnVuTG9vcDo6VGltZXI8UGx1Z2luVmlldz4g
bV9wZW5kaW5nVVJMUmVxdWVzdHNUaW1lcjsKKyAgICBXZWJDb3JlOjpSdW5Mb29wOjpUaW1lcjxQ
bHVnaW5WaWV3PiBtX3BlbmRpbmdVUkxSZXF1ZXN0c1RpbWVyOwogCiAgICAgLy8gUGVuZGluZyBm
cmFtZSBsb2FkcyB0aGF0IHRoZSBwbHVnLWluIGhhcyBtYWRlLgogICAgIHR5cGVkZWYgSGFzaE1h
cDxSZWZQdHI8V2ViRnJhbWU+LCBSZWZQdHI8VVJMUmVxdWVzdD4gPiBGcmFtZUxvYWRNYXA7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvbm5lY3Rpb25Ub1VJUHJv
Y2Vzcy5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvbm5lY3Rpb25Ub1VJUHJv
Y2Vzcy5jcHAKaW5kZXggOWE2NGFkZDFjNDIzYjBiMDE0N2Q5MmI1MjU1MDkyODUxZTY3ZjZkMS4u
NWU3OTU1ZDY3NjE5MDFkZWRiN2MyZGNjNjc0ZDBmYjM5ZjI2N2M3NyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb25uZWN0aW9uVG9VSVByb2Nlc3MuY3BwCisrKyBi
L1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29ubmVjdGlvblRvVUlQcm9jZXNzLmNwcApA
QCAtMzAsNiArMzAsOCBAQAogI2luY2x1ZGUgIldlYkNvbm5lY3Rpb25NZXNzYWdlS2luZHMuaCIK
ICNpbmNsdWRlICJXZWJQcm9jZXNzLmgiCiAKK3VzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOworCiBu
YW1lc3BhY2UgV2ViS2l0IHsKIAogUGFzc1JlZlB0cjxXZWJDb25uZWN0aW9uVG9VSVByb2Nlc3M+
IFdlYkNvbm5lY3Rpb25Ub1VJUHJvY2Vzczo6Y3JlYXRlKFdlYlByb2Nlc3MqIHByb2Nlc3MsIENv
cmVJUEM6OkNvbm5lY3Rpb246OklkZW50aWZpZXIgY29ubmVjdGlvbklkZW50aWZpZXIsIFJ1bkxv
b3AqIHJ1bkxvb3ApCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNv
bm5lY3Rpb25Ub1VJUHJvY2Vzcy5oIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb25u
ZWN0aW9uVG9VSVByb2Nlc3MuaAppbmRleCAxZDljOTZjODBiNjA4ZDhlMjg4ZGJkMTA1NzZkYTJi
NzcyNDNhOGM1Li40MmI5Y2Q3MTZiMTI0NzMwZTJkODAwYWRjNTE0YzUwODQyZTUwMzFmIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvbm5lY3Rpb25Ub1VJUHJvY2Vz
cy5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29ubmVjdGlvblRvVUlQcm9j
ZXNzLmgKQEAgLTM1LDE0ICszNSwxNCBAQCBjbGFzcyBXZWJQcm9jZXNzOwogCiBjbGFzcyBXZWJD
b25uZWN0aW9uVG9VSVByb2Nlc3MgOiBwdWJsaWMgV2ViQ29ubmVjdGlvbiwgQ29yZUlQQzo6Q29u
bmVjdGlvbjo6Q2xpZW50IHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxXZWJDb25u
ZWN0aW9uVG9VSVByb2Nlc3M+IGNyZWF0ZShXZWJQcm9jZXNzKiwgQ29yZUlQQzo6Q29ubmVjdGlv
bjo6SWRlbnRpZmllciwgUnVuTG9vcCopOworICAgIHN0YXRpYyBQYXNzUmVmUHRyPFdlYkNvbm5l
Y3Rpb25Ub1VJUHJvY2Vzcz4gY3JlYXRlKFdlYlByb2Nlc3MqLCBDb3JlSVBDOjpDb25uZWN0aW9u
OjpJZGVudGlmaWVyLCBXZWJDb3JlOjpSdW5Mb29wKik7CiAKICAgICBDb3JlSVBDOjpDb25uZWN0
aW9uKiBjb25uZWN0aW9uKCkgeyByZXR1cm4gbV9jb25uZWN0aW9uLmdldCgpOyB9CiAKICAgICB2
b2lkIGludmFsaWRhdGUoKTsKIAogcHJpdmF0ZToKLSAgICBXZWJDb25uZWN0aW9uVG9VSVByb2Nl
c3MoV2ViUHJvY2VzcyosIENvcmVJUEM6OkNvbm5lY3Rpb246OklkZW50aWZpZXIsIFJ1bkxvb3Aq
KTsKKyAgICBXZWJDb25uZWN0aW9uVG9VSVByb2Nlc3MoV2ViUHJvY2VzcyosIENvcmVJUEM6OkNv
bm5lY3Rpb246OklkZW50aWZpZXIsIFdlYkNvcmU6OlJ1bkxvb3AqKTsKIAogICAgIC8vIFdlYkNv
bm5lY3Rpb24KICAgICB2aXJ0dWFsIHZvaWQgcG9zdE1lc3NhZ2UoY29uc3QgU3RyaW5nJiwgQVBJ
T2JqZWN0Kik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVT
dXBwb3J0L1dlYkdyYXBoaWNzTGF5ZXIuaCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2Vi
Q29yZVN1cHBvcnQvV2ViR3JhcGhpY3NMYXllci5oCmluZGV4IDgxNWQyNjFmMGMwNzU3YWJhMzk4
MjQzNzQ3Njc1YWMyMTgyZDdiNTQuLjNjNTc5ZmQ5ZTAwMGRhNDNiZGUzOGU3NzlmOTdiNzMyMGQ3
ZjFjMmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBv
cnQvV2ViR3JhcGhpY3NMYXllci5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2Vi
Q29yZVN1cHBvcnQvV2ViR3JhcGhpY3NMYXllci5oCkBAIC0yNiw3ICsyNiw2IEBACiAjaW5jbHVk
ZSAiSW1hZ2UuaCIKICNpbmNsdWRlICJJbnRTaXplLmgiCiAjaW5jbHVkZSAiTGF5ZXJUcmFuc2Zv
cm0uaCIKLSNpbmNsdWRlICJSdW5Mb29wLmgiCiAjaW5jbHVkZSAiU2hhcmVhYmxlQml0bWFwLmgi
CiAjaW5jbHVkZSAiVGlsZWRCYWNraW5nU3RvcmUuaCIKICNpbmNsdWRlICJUaWxlZEJhY2tpbmdT
dG9yZUNsaWVudC5oIgpAQCAtMzUsNiArMzQsNyBAQAogI2luY2x1ZGUgIlVwZGF0ZUluZm8uaCIK
ICNpbmNsdWRlICJXZWJMYXllclRyZWVJbmZvLmgiCiAjaW5jbHVkZSAiV2ViUHJvY2Vzcy5oIgor
I2luY2x1ZGUgPFdlYkNvcmUvUnVuTG9vcC5oPgogCiAjaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBP
U0lUSU5HKQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2Uv
RHJhd2luZ0FyZWFJbXBsLmggYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvRHJh
d2luZ0FyZWFJbXBsLmgKaW5kZXggMGRhYmY2MDNhMTEyNjk0YzE1MTdkZTUwMWZiODI0MDQyMTM0
MmE5Yi4uMjhjOGNlNjhjZDBlNDczNjBjZGU2ZjNhNjUyNmVlNzZkMTQxOTU5ZSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL0RyYXdpbmdBcmVhSW1wbC5oCisr
KyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9EcmF3aW5nQXJlYUltcGwuaApA
QCAtMjgsOCArMjgsOCBAQAogCiAjaW5jbHVkZSAiRHJhd2luZ0FyZWEuaCIKICNpbmNsdWRlICJM
YXllclRyZWVIb3N0LmgiCi0jaW5jbHVkZSAiUnVuTG9vcC5oIgogI2luY2x1ZGUgPFdlYkNvcmUv
UmVnaW9uLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9SdW5Mb29wLmg+CiAKIG5hbWVzcGFjZSBXZWJD
b3JlIHsKICAgICBjbGFzcyBHcmFwaGljc0NvbnRleHQ7CkBAIC0xMzEsOCArMTMxLDggQEAgcHJp
dmF0ZToKICAgICBib29sIG1faXNQYWludGluZ1N1c3BlbmRlZDsKICAgICBib29sIG1fYWx3YXlz
VXNlQ29tcG9zaXRpbmc7CiAKLSAgICBSdW5Mb29wOjpUaW1lcjxEcmF3aW5nQXJlYUltcGw+IG1f
ZGlzcGxheVRpbWVyOwotICAgIFJ1bkxvb3A6OlRpbWVyPERyYXdpbmdBcmVhSW1wbD4gbV9leGl0
Q29tcG9zaXRpbmdUaW1lcjsKKyAgICBXZWJDb3JlOjpSdW5Mb29wOjpUaW1lcjxEcmF3aW5nQXJl
YUltcGw+IG1fZGlzcGxheVRpbWVyOworICAgIFdlYkNvcmU6OlJ1bkxvb3A6OlRpbWVyPERyYXdp
bmdBcmVhSW1wbD4gbV9leGl0Q29tcG9zaXRpbmdUaW1lcjsKIAogICAgIC8vIFRoZSBsYXllciB0
cmVlIGhvc3QgdGhhdCBoYW5kbGVzIGFjY2VsZXJhdGVkIGNvbXBvc2l0aW5nLgogICAgIFJlZlB0
cjxMYXllclRyZWVIb3N0PiBtX2xheWVyVHJlZUhvc3Q7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvRXZlbnREaXNwYXRjaGVyLmNwcCBiL1NvdXJjZS9XZWJL
aXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9FdmVudERpc3BhdGNoZXIuY3BwCmluZGV4IDFhOTFkOGUz
YzAyMzQ4NDM5YjlmMzJkY2Y4MzQwNjFmMDEzN2RiZjUuLjNjMmU3M2VjYTZjMzEwODE5N2YwOWQz
MmEyYmY3MDIwZmU5MzkyNmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
V2ViUGFnZS9FdmVudERpc3BhdGNoZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nl
c3MvV2ViUGFnZS9FdmVudERpc3BhdGNoZXIuY3BwCkBAIC0yNiwxMyArMjYsMTMgQEAKICNpbmNs
dWRlICJjb25maWcuaCIKICNpbmNsdWRlICJFdmVudERpc3BhdGNoZXIuaCIKIAotI2luY2x1ZGUg
IlJ1bkxvb3AuaCIKICNpbmNsdWRlICJXZWJFdmVudC5oIgogI2luY2x1ZGUgIldlYkV2ZW50Q29u
dmVyc2lvbi5oIgogI2luY2x1ZGUgIldlYlBhZ2UuaCIKICNpbmNsdWRlICJXZWJQYWdlUHJveHlN
ZXNzYWdlcy5oIgogI2luY2x1ZGUgIldlYlByb2Nlc3MuaCIKICNpbmNsdWRlIDxXZWJDb3JlL1Bh
Z2UuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL1J1bkxvb3AuaD4KICNpbmNsdWRlIDx3dGYvTWFpblRo
cmVhZC5oPgogCiAjaWYgRU5BQkxFKFRIUkVBREVEX1NDUk9MTElORykKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9QYWdlT3ZlcmxheS5oIGIvU291cmNlL1dl
YktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1BhZ2VPdmVybGF5LmgKaW5kZXggMWY2MWNlYmU5MjYy
NDM5N2QxOWRiYWIyYzk4MDE3MDY4NDVjZmJhNi4uOTQ5NzY3ODA2ZjI3NDMzYzE0MzYzZTYxMjFl
YjM4ZmM4NzY1YWNkMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQ
YWdlL1BhZ2VPdmVybGF5LmgKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdl
L1BhZ2VPdmVybGF5LmgKQEAgLTI3LDcgKzI3LDcgQEAKICNkZWZpbmUgUGFnZU92ZXJsYXlfaAog
CiAjaW5jbHVkZSAiQVBJT2JqZWN0LmgiCi0jaW5jbHVkZSAiUnVuTG9vcC5oIgorI2luY2x1ZGUg
PFdlYkNvcmUvUnVuTG9vcC5oPgogI2luY2x1ZGUgPHd0Zi9QYXNzUmVmUHRyLmg+CiAKIG5hbWVz
cGFjZSBXZWJDb3JlIHsKQEAgLTg2LDcgKzg2LDcgQEAgcHJpdmF0ZToKICAgICBDbGllbnQqIG1f
Y2xpZW50OwogICAgIFdlYlBhZ2UqIG1fd2ViUGFnZTsKIAotICAgIFJ1bkxvb3A6OlRpbWVyPFBh
Z2VPdmVybGF5PiBtX2ZhZGVBbmltYXRpb25UaW1lcjsKKyAgICBXZWJDb3JlOjpSdW5Mb29wOjpU
aW1lcjxQYWdlT3ZlcmxheT4gbV9mYWRlQW5pbWF0aW9uVGltZXI7CiAgICAgZG91YmxlIG1fZmFk
ZUFuaW1hdGlvblN0YXJ0VGltZTsKICAgICBkb3VibGUgbV9mYWRlQW5pbWF0aW9uRHVyYXRpb247
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdl
LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcAppbmRl
eCAzNjVkNTc4MDc0ZTU1MDQ5NmIwNmU3N2FhMzEyM2FiMTM4ZTBlNjNkLi40NTBjN2U4M2U4MzRi
NDBkNWI3NDAyNTg1MWYzZTc1YzAwYWU2YjQxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9X
ZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJv
Y2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCkBAIC00MCw3ICs0MCw2IEBACiAjaW5jbHVkZSAiUGx1
Z2luUHJveHkuaCIKICNpbmNsdWRlICJQbHVnaW5WaWV3LmgiCiAjaW5jbHVkZSAiUHJpbnRJbmZv
LmgiCi0jaW5jbHVkZSAiUnVuTG9vcC5oIgogI2luY2x1ZGUgIlNlc3Npb25TdGF0ZS5oIgogI2lu
Y2x1ZGUgIlNoYXJlYWJsZUJpdG1hcC5oIgogI2luY2x1ZGUgIldlYkJhY2tGb3J3YXJkTGlzdC5o
IgpAQCAtMTA0LDYgKzEwMyw3IEBACiAjaW5jbHVkZSA8V2ViQ29yZS9SZW5kZXJWaWV3Lmg+CiAj
aW5jbHVkZSA8V2ViQ29yZS9SZXBsYWNlU2VsZWN0aW9uQ29tbWFuZC5oPgogI2luY2x1ZGUgPFdl
YkNvcmUvUmVzb3VyY2VSZXF1ZXN0Lmg+CisjaW5jbHVkZSA8V2ViQ29yZS9SdW5Mb29wLmg+CiAj
aW5jbHVkZSA8V2ViQ29yZS9TY2hlbWVSZWdpc3RyeS5oPgogI2luY2x1ZGUgPFdlYkNvcmUvU2Ny
aXB0VmFsdWUuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1NlcmlhbGl6ZWRTY3JpcHRWYWx1ZS5oPgpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaCBi
L1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmgKaW5kZXggNDAwNzJj
ZmJmMTU2MGNkMGJkNThiYzg0ZDExNmIyZjI4MTIxZDQ2OC4uODZlYTBkNzVhMjM5ODA3NzRhZTU1
NzZjMTNkOGE3ZWUxOTZlNWY5ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy9XZWJQYWdlL1dlYlBhZ2UuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBh
Z2UvV2ViUGFnZS5oCkBAIC02NzcsNyArNjc3LDcgQEAgcHJpdmF0ZToKICAgICBSZWZQdHI8V2Vi
Q29yZTo6Tm9kZT4gbV9nZXN0dXJlVGFyZ2V0Tm9kZTsKICNlbmRpZgogICAgIAotICAgIFJ1bkxv
b3A6OlRpbWVyPFdlYlBhZ2U+IG1fc2V0Q2FuU3RhcnRNZWRpYVRpbWVyOworICAgIFdlYkNvcmU6
OlJ1bkxvb3A6OlRpbWVyPFdlYlBhZ2U+IG1fc2V0Q2FuU3RhcnRNZWRpYVRpbWVyOwogCiAgICAg
SGFzaE1hcDx1aW50NjRfdCwgUmVmUHRyPFdlYlVuZG9TdGVwPiA+IG1fdW5kb1N0ZXBNYXA7CiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5jcHAgYi9T
b3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuY3BwCmluZGV4IGM0YWZhMGYzZGUz
MDcyNjRiYjE3NDJiOGE4ZGQ2ZTMwNDkwNDc1ZDAuLmQwOTgxMDcxZjYxMTg2YzJiNjI2MDMxZTk5
ZDUwNmMyOTQzZmYxMTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2Vi
UHJvY2Vzcy5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmNw
cApAQCAtMzEsNyArMzEsNiBAQAogI2luY2x1ZGUgIkluamVjdGVkQnVuZGxlLmgiCiAjaW5jbHVk
ZSAiSW5qZWN0ZWRCdW5kbGVNZXNzYWdlS2luZHMuaCIKICNpbmNsdWRlICJJbmplY3RlZEJ1bmRs
ZVVzZXJNZXNzYWdlQ29kZXJzLmgiCi0jaW5jbHVkZSAiUnVuTG9vcC5oIgogI2luY2x1ZGUgIlNh
bmRib3hFeHRlbnNpb24uaCIKICNpbmNsdWRlICJTdGF0aXN0aWNzRGF0YS5oIgogI2luY2x1ZGUg
IldlYkFwcGxpY2F0aW9uQ2FjaGVNYW5hZ2VyLmgiCkBAIC03Miw2ICs3MSw3IEBACiAjaW5jbHVk
ZSA8V2ViQ29yZS9QYWdlQ2FjaGUuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1BhZ2VHcm91cC5oPgog
I2luY2x1ZGUgPFdlYkNvcmUvUmVzb3VyY2VIYW5kbGUuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL1J1
bkxvb3AuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1NjaGVtZVJlZ2lzdHJ5Lmg+CiAjaW5jbHVkZSA8
V2ViQ29yZS9TZWN1cml0eU9yaWdpbi5oPgogI2luY2x1ZGUgPFdlYkNvcmUvU2V0dGluZ3MuaD4K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5oIGIvU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmgKaW5kZXggOWZiMzdjNzJlNzQyMDE5
ZWFiMTQ5ZjQxZTJjZjM2YjVjMzRkZmJmZi4uZWZhMmU2ODFhNjJhOGU2ZDkzNTg3NDY2OTM5YWQz
M2Q0MjNiOTJmYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQcm9j
ZXNzLmgKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmgKQEAgLTgy
LDEwICs4MiwxMCBAQCBjbGFzcyBXZWJQcm9jZXNzIDogcHVibGljIENoaWxkUHJvY2VzcywgcHJp
dmF0ZSBDb3JlSVBDOjpDb25uZWN0aW9uOjpRdWV1ZUNsaWVudAogcHVibGljOgogICAgIHN0YXRp
YyBXZWJQcm9jZXNzJiBzaGFyZWQoKTsKIAotICAgIHZvaWQgaW5pdGlhbGl6ZShDb3JlSVBDOjpD
b25uZWN0aW9uOjpJZGVudGlmaWVyLCBSdW5Mb29wKik7CisgICAgdm9pZCBpbml0aWFsaXplKENv
cmVJUEM6OkNvbm5lY3Rpb246OklkZW50aWZpZXIsIFdlYkNvcmU6OlJ1bkxvb3AqKTsKIAogICAg
IENvcmVJUEM6OkNvbm5lY3Rpb24qIGNvbm5lY3Rpb24oKSBjb25zdCB7IHJldHVybiBtX2Nvbm5l
Y3Rpb24tPmNvbm5lY3Rpb24oKTsgfQotICAgIFJ1bkxvb3AqIHJ1bkxvb3AoKSBjb25zdCB7IHJl
dHVybiBtX3J1bkxvb3A7IH0KKyAgICBXZWJDb3JlOjpSdW5Mb29wKiBydW5Mb29wKCkgY29uc3Qg
eyByZXR1cm4gbV9ydW5Mb29wOyB9CiAKICAgICBXZWJDb25uZWN0aW9uVG9VSVByb2Nlc3MqIHdl
YkNvbm5lY3Rpb25Ub1VJUHJvY2VzcygpIGNvbnN0IHsgcmV0dXJuIG1fY29ubmVjdGlvbi5nZXQo
KTsgfQogCkBAIC0yNDEsNyArMjQxLDcgQEAgcHJpdmF0ZToKIAogICAgIGJvb2wgbV9pbkRpZENs
b3NlOwogCi0gICAgUnVuTG9vcCogbV9ydW5Mb29wOworICAgIFdlYkNvcmU6OlJ1bkxvb3AqIG1f
cnVuTG9vcDsKIAogICAgIC8vIEZJWE1FOiBUaGUgdmlzaXRlZCBsaW5rIHRhYmxlIHNob3VsZCBu
b3QgYmUgcGVyIHByb2Nlc3MuCiAgICAgVmlzaXRlZExpbmtUYWJsZSBtX3Zpc2l0ZWRMaW5rVGFi
bGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL2d0ay9XZWJQcm9jZXNz
TWFpbkd0ay5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL2d0ay9XZWJQcm9jZXNzTWFp
bkd0ay5jcHAKaW5kZXggZmI5Njk4ZWRhYWY1MmQ5NTRiOTVjNzczMDUwYjg2OTc0MDczNjVhYy4u
MThjNTA2YmNjMzk3N2E2M2E1NmM3MGNiYTZhNDMzY2M0NWI0YzkzOCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9ndGsvV2ViUHJvY2Vzc01haW5HdGsuY3BwCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvZ3RrL1dlYlByb2Nlc3NNYWluR3RrLmNwcApAQCAtMzEs
MTMgKzMxLDE1IEBACiAjaW5jbHVkZSAiV0tCYXNlLmgiCiAjaW5jbHVkZSA8V2ViQ29yZS9HdGtB
dXRoZW50aWNhdGlvbkRpYWxvZy5oPgogI2luY2x1ZGUgPFdlYkNvcmUvUmVzb3VyY2VIYW5kbGUu
aD4KLSNpbmNsdWRlIDxXZWJLaXQyL1J1bkxvb3AuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL1J1bkxv
b3AuaD4KICNpbmNsdWRlIDxXZWJLaXQyL1dlYlByb2Nlc3MuaD4KICNpbmNsdWRlIDxndGsvZ3Rr
Lmg+CiAjaW5jbHVkZSA8cnVudGltZS9Jbml0aWFsaXplVGhyZWFkaW5nLmg+CiAjaW5jbHVkZSA8
dW5pc3RkLmg+CiAjaW5jbHVkZSA8d3RmL01haW5UaHJlYWQuaD4KIAordXNpbmcgbmFtZXNwYWNl
IFdlYkNvcmU7CisKIG5hbWVzcGFjZSBXZWJLaXQgewogCiBXS19FWFBPUlQgaW50IFdlYlByb2Nl
c3NNYWluR3RrKGludCBhcmdjLCBjaGFyKiBhcmd2W10pCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0Mi9XZWJQcm9jZXNzL21hYy9XZWJQcm9jZXNzTWFpbk1hYy5tbSBiL1NvdXJjZS9XZWJLaXQy
L1dlYlByb2Nlc3MvbWFjL1dlYlByb2Nlc3NNYWluTWFjLm1tCmluZGV4IGI1YTNmZTA3ZDA2Nzg0
M2JlNWIzYzM1MGExNGEwOTBmOTljMTViYTAuLjRlMmIxNTUzMjIxMGMwMDQ0ZjJiOTg4MTMzZjdi
YmRkZjZjODU1NjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvbWFjL1dl
YlByb2Nlc3NNYWluTWFjLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvbWFjL1dl
YlByb2Nlc3NNYWluTWFjLm1tCkBAIC0yOSw5ICsyOSw5IEBACiAjaW1wb3J0ICJDb21tYW5kTGlu
ZS5oIgogI2ltcG9ydCAiRW52aXJvbm1lbnRVdGlsaXRpZXMuaCIKICNpbXBvcnQgIkVudmlyb25t
ZW50VmFyaWFibGVzLmgiCi0jaW1wb3J0ICJSdW5Mb29wLmgiCiAjaW1wb3J0ICJXZWJQcm9jZXNz
LmgiCiAjaW1wb3J0ICJXZWJTeXN0ZW1JbnRlcmZhY2UuaCIKKyNpbXBvcnQgPFdlYkNvcmUvUnVu
TG9vcC5oPgogI2ltcG9ydCA8V2ViS2l0Mi9XS1ZpZXcuaD4KICNpbXBvcnQgPFdlYktpdFN5c3Rl
bUludGVyZmFjZS5oPgogI2ltcG9ydCA8bWFjaC9tYWNoX2Vycm9yLmg+CkBAIC00Myw4ICs0Myw4
IEBACiAjaW1wb3J0IDxzdGRpby5oPgogI2ltcG9ydCA8c3lzZXhpdHMuaD4KICNpbXBvcnQgPHVu
aXN0ZC5oPgotI2ltcG9ydCA8d3RmL1JldGFpblB0ci5oPgogI2ltcG9ydCA8d3RmL01haW5UaHJl
YWQuaD4KKyNpbXBvcnQgPHd0Zi9SZXRhaW5QdHIuaD4KICNpbXBvcnQgPHd0Zi90ZXh0L0NTdHJp
bmcuaD4KICNpbXBvcnQgPHd0Zi90ZXh0L1N0cmluZ0J1aWxkZXIuaD4KIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9xdC9XZWJQcm9jZXNzTWFpblF0LmNwcCBiL1NvdXJj
ZS9XZWJLaXQyL1dlYlByb2Nlc3MvcXQvV2ViUHJvY2Vzc01haW5RdC5jcHAKaW5kZXggYzM4ZTM4
MjQxZDI3MjU5ZDQ2OWM5YzNhZTVjYTBjMGEwMTdlN2RhMy4uOTFlN2FlNDM3OGYwYzQxZDhjZjgx
MDA2ZDYxMjdhODg1ODM0ZWQ1YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy9xdC9XZWJQcm9jZXNzTWFpblF0LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNz
L3F0L1dlYlByb2Nlc3NNYWluUXQuY3BwCkBAIC0yNSw5ICsyNSwxMCBAQAogICovCiAKICNpbmNs
dWRlICJjb25maWcuaCIKLSNpbmNsdWRlICJSdW5Mb29wLmgiCi0jaW5jbHVkZSA8cnVudGltZS9J
bml0aWFsaXplVGhyZWFkaW5nLmg+CisKICNpbmNsdWRlICJXZWJQcm9jZXNzLmgiCisjaW5jbHVk
ZSA8V2ViQ29yZS9SdW5Mb29wLmg+CisjaW5jbHVkZSA8cnVudGltZS9Jbml0aWFsaXplVGhyZWFk
aW5nLmg+CiAjaW5jbHVkZSA8d3RmL01haW5UaHJlYWQuaD4KIAogI2luY2x1ZGUgPFFBcHBsaWNh
dGlvbj4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mvd2luL1dlYlByb2Nl
c3NNYWluV2luLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mvd2luL1dlYlByb2Nlc3NN
YWluV2luLmNwcAppbmRleCA1ZWRlZWZlNWNkZGI1YWYyZGM0NDc4YWY0NDlhZTZiYWZkMzg0N2Ix
Li4yYTcwNjg1ZTQ4NWUwNjM1YjE1MTY4ZmE1NTBjZGM3MGI5ZWEyNTFlIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL3dpbi9XZWJQcm9jZXNzTWFpbldpbi5jcHAKKysrIGIv
U291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy93aW4vV2ViUHJvY2Vzc01haW5XaW4uY3BwCkBAIC0y
NywxNCArMjcsMTYgQEAKICNpbmNsdWRlICJXZWJQcm9jZXNzTWFpbi5oIgogCiAjaW5jbHVkZSAi
Q29tbWFuZExpbmUuaCIKLSNpbmNsdWRlICJSdW5Mb29wLmgiCiAjaW5jbHVkZSAiV2ViUHJvY2Vz
cy5oIgorI2luY2x1ZGUgPFdlYkNvcmUvUnVuTG9vcC5oPgogI2luY2x1ZGUgPFdlYkNvcmUvU29m
dExpbmtpbmcuaD4KICNpbmNsdWRlIDxydW50aW1lL0luaXRpYWxpemVUaHJlYWRpbmcuaD4KICNp
bmNsdWRlIDx3dGYvTWFpblRocmVhZC5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L1N0cmluZ0hhc2gu
aD4KICNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KIAordXNpbmcgbmFtZXNwYWNlIFdl
YkNvcmU7CisKIG5hbWVzcGFjZSBXZWJLaXQgewogCiAjaWYgVVNFKFNBRkFSSV9USEVNRSkKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL3dpbi9XZWJLaXQyLnZjcHJvaiBiL1NvdXJjZS9XZWJL
aXQyL3dpbi9XZWJLaXQyLnZjcHJvagppbmRleCA3NTIyNzhkZGMwMTVjY2Y0NDViYTFjN2JlYzYw
ZjU0MTgwNTQ3YTZlLi4xNjdiYTNkOTEyN2I4N2RkMDU1NDdlZDdhYjRlZjcxMTY5OTEyMzUyIDEw
MDc1NQotLS0gYS9Tb3VyY2UvV2ViS2l0Mi93aW4vV2ViS2l0Mi52Y3Byb2oKKysrIGIvU291cmNl
L1dlYktpdDIvd2luL1dlYktpdDIudmNwcm9qCkBAIC0zODg3LDE0ICszODg3LDYgQEAKIAkJCQk+
CiAJCQk8L0ZpbGU+CiAJCQk8RmlsZQotCQkJCVJlbGF0aXZlUGF0aD0iLi5cUGxhdGZvcm1cUnVu
TG9vcC5jcHAiCi0JCQkJPgotCQkJPC9GaWxlPgotCQkJPEZpbGUKLQkJCQlSZWxhdGl2ZVBhdGg9
Ii4uXFBsYXRmb3JtXFJ1bkxvb3AuaCIKLQkJCQk+Ci0JCQk8L0ZpbGU+Ci0JCQk8RmlsZQogCQkJ
CVJlbGF0aXZlUGF0aD0iLi5cUGxhdGZvcm1cU2hhcmVkTWVtb3J5LmgiCiAJCQkJPgogCQkJPC9G
aWxlPgpAQCAtMzk0MiwxMCArMzkzNCw2IEBACiAJCQkJCT4KIAkJCQk8L0ZpbGU+CiAJCQkJPEZp
bGUKLQkJCQkJUmVsYXRpdmVQYXRoPSIuLlxQbGF0Zm9ybVx3aW5cUnVuTG9vcFdpbi5jcHAiCi0J
CQkJCT4KLQkJCQk8L0ZpbGU+Ci0JCQkJPEZpbGUKIAkJCQkJUmVsYXRpdmVQYXRoPSIuLlxQbGF0
Zm9ybVx3aW5cU2hhcmVkTWVtb3J5V2luLmNwcCIKIAkJCQkJPgogCQkJCTwvRmlsZT4K
</data>
<flag name="review"
          id="124148"
          type_id="1"
          status="+"
          setter="andersca"
    />
    <flag name="commit-queue"
          id="124244"
          type_id="3"
          status="-"
          setter="gustavo.noronha"
    />
          </attachment>
      

    </bug>

</bugzilla>