<?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>70077</bug_id>
          
          <creation_ts>2011-10-13 17:12:21 -0700</creation_ts>
          <short_desc>Implement WEBGL_debug_shaders and WEBGL_debug_renderer_info extensions</short_desc>
          <delta_ts>2011-10-19 17:00:03 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebGL</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>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Zhenyao Mo">zmo</reporter>
          <assigned_to name="Zhenyao Mo">zmo</assigned_to>
          <cc>abarth</cc>
    
    <cc>cmarrin</cc>
    
    <cc>dbates</cc>
    
    <cc>fishd</cc>
    
    <cc>jamesr</cc>
    
    <cc>japhet</cc>
    
    <cc>kbr</cc>
    
    <cc>paroga</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>483666</commentid>
    <comment_count>0</comment_count>
    <who name="Zhenyao Mo">zmo</who>
    <bug_when>2011-10-13 17:12:21 -0700</bug_when>
    <thetext>Specs for two extensions:

https://cvs.khronos.org/svn/repos/registry/trunk/public/webgl/extensions/WEBGL_debug_shaders/index.html
https://cvs.khronos.org/svn/repos/registry/trunk/public/webgl/extensions/WEBGL_debug_renderer_info/index.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>484194</commentid>
    <comment_count>1</comment_count>
      <attachid>111055</attachid>
    <who name="Zhenyao Mo">zmo</who>
    <bug_when>2011-10-14 12:44:12 -0700</bug_when>
    <thetext>Created attachment 111055
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>484204</commentid>
    <comment_count>2</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-10-14 12:48:40 -0700</bug_when>
    <thetext>Please wait for approval from fishd@chromium.org before submitting because this patch contains changes to the Chromium public API.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>484207</commentid>
    <comment_count>3</comment_count>
    <who name="Zhenyao Mo">zmo</who>
    <bug_when>2011-10-14 12:49:53 -0700</bug_when>
    <thetext>Whether the current WebGLRenderingContext is for privileged content or not is not implemented in this patch.

The current patch is tested with 

https://cvs.khronos.org/svn/repos/registry/trunk/public/webgl/sdk/tests/conformance/extensions/webgl_debug_renderer_info.html
https://cvs.khronos.org/svn/repos/registry/trunk/public/webgl/sdk/tests/conformance/extensions/webgl_debug_shaders.html

for both WebGLRenderingContext::allowPrivilegedExtensions() returns true and false.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>484226</commentid>
    <comment_count>4</comment_count>
      <attachid>111055</attachid>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2011-10-14 13:14:53 -0700</bug_when>
    <thetext>Comment on attachment 111055
Patch

Attachment 111055 did not pass qt-ews (qt):
Output: http://queues.webkit.org/results/10067607</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>484233</commentid>
    <comment_count>5</comment_count>
      <attachid>111066</attachid>
    <who name="Zhenyao Mo">zmo</who>
    <bug_when>2011-10-14 13:23:23 -0700</bug_when>
    <thetext>Created attachment 111066
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>484251</commentid>
    <comment_count>6</comment_count>
      <attachid>111066</attachid>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2011-10-14 13:47:44 -0700</bug_when>
    <thetext>Comment on attachment 111066
Patch

Attachment 111066 did not pass qt-ews (qt):
Output: http://queues.webkit.org/results/10052674</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>484298</commentid>
    <comment_count>7</comment_count>
      <attachid>111079</attachid>
    <who name="Zhenyao Mo">zmo</who>
    <bug_when>2011-10-14 14:30:34 -0700</bug_when>
    <thetext>Created attachment 111079
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>484308</commentid>
    <comment_count>8</comment_count>
      <attachid>111080</attachid>
    <who name="Zhenyao Mo">zmo</who>
    <bug_when>2011-10-14 14:39:55 -0700</bug_when>
    <thetext>Created attachment 111080
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>484318</commentid>
    <comment_count>9</comment_count>
      <attachid>111084</attachid>
    <who name="Zhenyao Mo">zmo</who>
    <bug_when>2011-10-14 14:47:45 -0700</bug_when>
    <thetext>Created attachment 111084
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>484346</commentid>
    <comment_count>10</comment_count>
      <attachid>111084</attachid>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2011-10-14 15:15:33 -0700</bug_when>
    <thetext>Comment on attachment 111084
Patch

Attachment 111084 did not pass qt-ews (qt):
Output: http://queues.webkit.org/results/10052699</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>484357</commentid>
    <comment_count>11</comment_count>
      <attachid>111095</attachid>
    <who name="Zhenyao Mo">zmo</who>
    <bug_when>2011-10-14 15:24:02 -0700</bug_when>
    <thetext>Created attachment 111095
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>484387</commentid>
    <comment_count>12</comment_count>
      <attachid>111095</attachid>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2011-10-14 16:04:14 -0700</bug_when>
    <thetext>Comment on attachment 111095
Patch

Attachment 111095 did not pass qt-ews (qt):
Output: http://queues.webkit.org/results/10066667</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>484416</commentid>
    <comment_count>13</comment_count>
      <attachid>111111</attachid>
    <who name="Zhenyao Mo">zmo</who>
    <bug_when>2011-10-14 17:06:57 -0700</bug_when>
    <thetext>Created attachment 111111
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>484430</commentid>
    <comment_count>14</comment_count>
      <attachid>111111</attachid>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2011-10-14 17:23:51 -0700</bug_when>
    <thetext>Comment on attachment 111111
Patch

Attachment 111111 did not pass qt-ews (qt):
Output: http://queues.webkit.org/results/10066747</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>484805</commentid>
    <comment_count>15</comment_count>
      <attachid>111185</attachid>
    <who name="Zhenyao Mo">zmo</who>
    <bug_when>2011-10-16 13:10:29 -0700</bug_when>
    <thetext>Created attachment 111185
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>484808</commentid>
    <comment_count>16</comment_count>
      <attachid>111185</attachid>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2011-10-16 13:23:35 -0700</bug_when>
    <thetext>Comment on attachment 111185
Patch

Attachment 111185 did not pass qt-ews (qt):
Output: http://queues.webkit.org/results/10080502</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>484813</commentid>
    <comment_count>17</comment_count>
    <who name="Patrick R. Gansterer">paroga</who>
    <bug_when>2011-10-16 13:48:53 -0700</bug_when>
    <thetext>Please create _on_ clean enty to the changelog and add the new files to CMakeList, GNUMakeFile and vcproj too.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>484897</commentid>
    <comment_count>18</comment_count>
      <attachid>111185</attachid>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2011-10-16 21:06:56 -0700</bug_when>
    <thetext>Comment on attachment 111185
Patch

r- per comment 17.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>485151</commentid>
    <comment_count>19</comment_count>
      <attachid>111265</attachid>
    <who name="Zhenyao Mo">zmo</who>
    <bug_when>2011-10-17 08:11:12 -0700</bug_when>
    <thetext>Created attachment 111265
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>485153</commentid>
    <comment_count>20</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-10-17 08:12:43 -0700</bug_when>
    <thetext>Attachment 111265 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/update-webkit&apos;, &apos;--chromium&apos;]&quot; exit_code: 2

Updating OpenSource
Current branch master is up to date.
Updating chromium port dependencies using gclient...
Error: Can&apos;t switch the checkout to http://v8.googlecode.com/svn/branches/3.6@9637; UUID don&apos;t match and there is local changes in /mnt/git/webkit-style-queue/Source/WebKit/chromium/v8. Delete the directory and try again.
Re-trying &apos;depot_tools/gclient sync&apos;
Error: Can&apos;t switch the checkout to http://v8.googlecode.com/svn/branches/3.6@9637; UUID don&apos;t match and there is local changes in /mnt/git/webkit-style-queue/Source/WebKit/chromium/v8. Delete the directory and try again.
Re-trying &apos;depot_tools/gclient sync&apos;
Error: Can&apos;t switch the checkout to http://v8.googlecode.com/svn/branches/3.6@9637; UUID don&apos;t match and there is local changes in /mnt/git/webkit-style-queue/Source/WebKit/chromium/v8. Delete the directory and try again.
Error: &apos;depot_tools/gclient sync&apos; failed 3 tries and returned 256 at Tools/Scripts/update-webkit-chromium line 107.
Re-trying &apos;depot_tools/gclient sync&apos;
No such file or directory at Tools/Scripts/update-webkit line 104.


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>485155</commentid>
    <comment_count>21</comment_count>
      <attachid>111265</attachid>
    <who name="Darin Fisher (:fishd, Google)">fishd</who>
    <bug_when>2011-10-17 08:17:17 -0700</bug_when>
    <thetext>Comment on attachment 111265
Patch

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

&gt; Source/WebKit/chromium/public/WebGraphicsContext3D.h:370
&gt; +    virtual WebString getTranslatedShaderSourceANGLE(WebGLId shader) { return WebString(); }

WebKit API change LGTM</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>485170</commentid>
    <comment_count>22</comment_count>
      <attachid>111268</attachid>
    <who name="Zhenyao Mo">zmo</who>
    <bug_when>2011-10-17 08:28:29 -0700</bug_when>
    <thetext>Created attachment 111268
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>485174</commentid>
    <comment_count>23</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-10-17 08:31:30 -0700</bug_when>
    <thetext>Attachment 111268 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/update-webkit&apos;, &apos;--chromium&apos;]&quot; exit_code: 2

Updating OpenSource
From git://git.webkit.org/WebKit
   a891ab4..3e87a7a  master     -&gt; origin/master
	M	Tools/ChangeLog
	M	Tools/Scripts/webkitdirs.pm
r97622 = ed5ce88c4a887a8a1849fa2e1fe5f707e3a7c311 (refs/remotes/trunk)
	M	Tools/ChangeLog
	M	Tools/Scripts/run-qtwebkit-tests
r97623 = 3e87a7a4343696b900ed25b42741b4e88dcaee01 (refs/remotes/trunk)
First, rewinding head to replay your work on top of it...
Fast-forwarded master to refs/remotes/trunk.
Updating chromium port dependencies using gclient...
Error: Can&apos;t switch the checkout to http://v8.googlecode.com/svn/branches/3.6@9637; UUID don&apos;t match and there is local changes in /mnt/git/webkit-style-queue/Source/WebKit/chromium/v8. Delete the directory and try again.
Re-trying &apos;depot_tools/gclient sync&apos;
Error: Can&apos;t switch the checkout to http://v8.googlecode.com/svn/branches/3.6@9637; UUID don&apos;t match and there is local changes in /mnt/git/webkit-style-queue/Source/WebKit/chromium/v8. Delete the directory and try again.
Re-trying &apos;depot_tools/gclient sync&apos;
Error: Can&apos;t switch the checkout to http://v8.googlecode.com/svn/branches/3.6@9637; UUID don&apos;t match and there is local changes in /mnt/git/webkit-style-queue/Source/WebKit/chromium/v8. Delete the directory and try again.
Error: &apos;depot_tools/gclient sync&apos; failed 3 tries and returned 256 at Tools/Scripts/update-webkit-chromium line 107.
Re-trying &apos;depot_tools/gclient sync&apos;
No such file or directory at Tools/Scripts/update-webkit line 104.


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>486095</commentid>
    <comment_count>24</comment_count>
    <who name="Zhenyao Mo">zmo</who>
    <bug_when>2011-10-18 09:32:28 -0700</bug_when>
    <thetext>QT bot is finally green.  Please review.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>487021</commentid>
    <comment_count>25</comment_count>
      <attachid>111268</attachid>
    <who name="Kenneth Russell">kbr</who>
    <bug_when>2011-10-19 14:43:38 -0700</bug_when>
    <thetext>Comment on attachment 111268
Patch

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

The code looks good overall. Couple of issues that need to be cleaned up.

&gt; Source/WebCore/ChangeLog:49
&gt; +2011-10-14  Mark Hahnenberg  &lt;mhahnenberg@apple.com&gt;

There&apos;s a merge problem in the ChangeLog. Please unapply, sync and reapply your changes.

&gt; Source/WebCore/html/canvas/WebGLRenderingContext.cpp:2017
&gt; +    }

This block is duplicated from above and needs to be removed.

&gt; Source/WebCore/html/canvas/WebGLRenderingContext.h:630
&gt; +    // Determine if we are running the privileged code in the browser.

&quot;the privileged&quot; -&gt; &quot;privileged&quot;. Also, for clarity, I think you should add &quot;, for example, a Safari or Chrome extension&quot;.

&gt; Source/WebKit/chromium/ChangeLog:15
&gt; +2011-10-14  Dmitry Lomov  &lt;dslomov@google.com&gt;

Another merge problem in the ChangeLog.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>487048</commentid>
    <comment_count>26</comment_count>
      <attachid>111682</attachid>
    <who name="Zhenyao Mo">zmo</who>
    <bug_when>2011-10-19 15:25:04 -0700</bug_when>
    <thetext>Created attachment 111682
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>487050</commentid>
    <comment_count>27</comment_count>
    <who name="Zhenyao Mo">zmo</who>
    <bug_when>2011-10-19 15:27:19 -0700</bug_when>
    <thetext>(In reply to comment #25)
&gt; (From update of attachment 111268 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=111268&amp;action=review
&gt; 
&gt; The code looks good overall. Couple of issues that need to be cleaned up.
&gt; 
&gt; &gt; Source/WebCore/ChangeLog:49
&gt; &gt; +2011-10-14  Mark Hahnenberg  &lt;mhahnenberg@apple.com&gt;
&gt; 
&gt; There&apos;s a merge problem in the ChangeLog. Please unapply, sync and reapply your changes.

Done.

&gt; 
&gt; &gt; Source/WebCore/html/canvas/WebGLRenderingContext.cpp:2017
&gt; &gt; +    }
&gt; 
&gt; This block is duplicated from above and needs to be removed.

Done.

&gt; 
&gt; &gt; Source/WebCore/html/canvas/WebGLRenderingContext.h:630
&gt; &gt; +    // Determine if we are running the privileged code in the browser.
&gt; 
&gt; &quot;the privileged&quot; -&gt; &quot;privileged&quot;. Also, for clarity, I think you should add &quot;, for example, a Safari or Chrome extension&quot;.

Done.

&gt; 
&gt; &gt; Source/WebKit/chromium/ChangeLog:15
&gt; &gt; +2011-10-14  Dmitry Lomov  &lt;dslomov@google.com&gt;
&gt; 
&gt; Another merge problem in the ChangeLog.

Done.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>487122</commentid>
    <comment_count>28</comment_count>
      <attachid>111682</attachid>
    <who name="Kenneth Russell">kbr</who>
    <bug_when>2011-10-19 16:34:10 -0700</bug_when>
    <thetext>Comment on attachment 111682
Patch

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

Looks good modulo two tiny nits. r=me

&gt; Source/WebCore/ChangeLog:1
&gt; +2011-10-14  Zhenyao Mo  &lt;zmo@google.com&gt;

Please make sure the date gets fixed upon landing.

&gt; Source/WebKit/chromium/ChangeLog:1
&gt; +2011-10-14  Zhenyao Mo  &lt;zmo@google.com&gt;

Same here.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>487145</commentid>
    <comment_count>29</comment_count>
    <who name="Zhenyao Mo">zmo</who>
    <bug_when>2011-10-19 17:00:03 -0700</bug_when>
    <thetext>Committed r97896: &lt;http://trac.webkit.org/changeset/97896&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>111055</attachid>
            <date>2011-10-14 12:44:12 -0700</date>
            <delta_ts>2011-10-14 13:23:19 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-70077-20111014124411.patch</filename>
            <type>text/plain</type>
            <size>38506</size>
            <attacher name="Zhenyao Mo">zmo</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDk3MzUyKQorKysgU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsNDcgQEAKKzIwMTEtMTAtMTQgIFpoZW55YW8g
TW8gIDx6bW9AZ29vZ2xlLmNvbT4KKworICAgICAgICBJbXBsZW1lbnQgV0VCR0xfZGVidWdfc2hh
ZGVycyBhbmQgV0VCR0xfZGVidWdfcmVuZGVyZXJfaW5mbyBleHRlbnNpb25zCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03MDA3NworCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogV2ViQ29yZS5neXBpOiBhZGRl
ZCBuZXcgZXh0ZW5zaW9uIGNsYXNzIGZpbGVzLgorICAgICAgICAqIGJpbmRpbmdzL2pzL0pTV2Vi
R0xSZW5kZXJpbmdDb250ZXh0Q3VzdG9tLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OnRvSlMpOiBI
YW5kbGVzIHR3byBuZXcgZXh0ZW5zaW9ucy4KKyAgICAgICAgKiBiaW5kaW5ncy92OC9jdXN0b20v
VjhXZWJHTFJlbmRlcmluZ0NvbnRleHRDdXN0b20uY3BwOgorICAgICAgICAoV2ViQ29yZTo6dG9W
OE9iamVjdCk6IERpdHRvLgorICAgICAgICAqIGh0bWwvY2FudmFzL1dlYkdMRGVidWdSZW5kZXJl
ckluZm8uY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OldlYkdMRGVidWdSZW5kZXJlcklu
Zm86OldlYkdMRGVidWdSZW5kZXJlckluZm8pOgorICAgICAgICAoV2ViQ29yZTo6V2ViR0xEZWJ1
Z1JlbmRlcmVySW5mbzo6fldlYkdMRGVidWdSZW5kZXJlckluZm8pOgorICAgICAgICAoV2ViQ29y
ZTo6V2ViR0xEZWJ1Z1JlbmRlcmVySW5mbzo6Z2V0TmFtZSk6CisgICAgICAgIChXZWJDb3JlOjpX
ZWJHTERlYnVnUmVuZGVyZXJJbmZvOjpjcmVhdGUpOgorICAgICAgICAqIGh0bWwvY2FudmFzL1dl
YkdMRGVidWdSZW5kZXJlckluZm8uaDogQWRkZWQuCisgICAgICAgICogaHRtbC9jYW52YXMvV2Vi
R0xEZWJ1Z1JlbmRlcmVySW5mby5pZGw6IEFkZGVkLgorICAgICAgICAqIGh0bWwvY2FudmFzL1dl
YkdMRGVidWdTaGFkZXJzLmNwcDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpXZWJHTERlYnVn
U2hhZGVyczo6V2ViR0xEZWJ1Z1NoYWRlcnMpOgorICAgICAgICAoV2ViQ29yZTo6V2ViR0xEZWJ1
Z1NoYWRlcnM6On5XZWJHTERlYnVnU2hhZGVycyk6CisgICAgICAgIChXZWJDb3JlOjpXZWJHTERl
YnVnU2hhZGVyczo6Z2V0TmFtZSk6CisgICAgICAgIChXZWJDb3JlOjpXZWJHTERlYnVnU2hhZGVy
czo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OldlYkdMRGVidWdTaGFkZXJzOjpnZXRUcmFu
c2xhdGVkU2hhZGVyU291cmNlKToKKyAgICAgICAgKiBodG1sL2NhbnZhcy9XZWJHTERlYnVnU2hh
ZGVycy5oOiBBZGRlZC4KKyAgICAgICAgKiBodG1sL2NhbnZhcy9XZWJHTERlYnVnU2hhZGVycy5p
ZGw6IEFkZGVkLgorICAgICAgICAqIGh0bWwvY2FudmFzL1dlYkdMRXh0ZW5zaW9uLmg6CisgICAg
ICAgICogaHRtbC9jYW52YXMvV2ViR0xSZW5kZXJpbmdDb250ZXh0LmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OldlYkdMUmVuZGVyaW5nQ29udGV4dDo6YWxsb3dQcml2aWxlZ2VkRXh0ZW5zaW9ucyk6
IFRvIGJlIGltcGxlbWVudGVkIC0gZGVjaWRpbmcgd2hldGhlciB0aGUgdHdvIGV4dGVuc2lvbnMg
c2hvdWxkIGJlIGFsbG93ZWQgb3Igbm90LgorICAgICAgICAoV2ViQ29yZTo6V2ViR0xSZW5kZXJp
bmdDb250ZXh0OjpnZXRFeHRlbnNpb24pOiBIYW5kbGVzIHR3byBuZXcgZXh0ZW5zaW9ucy4KKyAg
ICAgICAgKFdlYkNvcmU6OldlYkdMUmVuZGVyaW5nQ29udGV4dDo6Z2V0UGFyYW1ldGVyKTogSGFu
ZGxlcyBVTk1BU0tFRF9WRU5ET1JfV0VCR0wgLyBVTk1BU0tFRF9SRU5ERVJFUl9XRUJHTAorICAg
ICAgICAoV2ViQ29yZTo6V2ViR0xSZW5kZXJpbmdDb250ZXh0OjpnZXRTdXBwb3J0ZWRFeHRlbnNp
b25zKTogSGFuZGxlcyB0d28gbmV3IGV4dGVuc2lvbnMuCisgICAgICAgICogaHRtbC9jYW52YXMv
V2ViR0xSZW5kZXJpbmdDb250ZXh0Lmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvRXh0
ZW5zaW9uczNELmg6IERpdHRvLgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNz
VHlwZXMzRC5oOiBBZGQgR0MzRGNoYXIuCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2hy
b21pdW0vRXh0ZW5zaW9uczNEQ2hyb21pdW0uaDogSGFuZGxlcyB0d28gbmV3IGV4dGVuc2lvbnMu
CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0V4dGVuc2lvbnMzRE9wZW5HTC5j
cHA6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6Z2V0VHJhbnNsYXRlZFNoYWRlclNvdXJjZUFO
R0xFKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wvRXh0ZW5zaW9uczNET3Bl
bkdMLmg6IERpdHRvLgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL3F0L0V4dGVuc2lvbnMz
RFF0LmNwcDogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpFeHRlbnNpb25zM0RRdDo6Z2V0VHJh
bnNsYXRlZFNoYWRlclNvdXJjZUFOR0xFKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9x
dC9FeHRlbnNpb25zM0RRdC5oOiBEaXR0by4KKwogMjAxMS0xMC0xMyAgS2VudCBUYW11cmEgIDx0
a2VudEBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgUkVHUkVTU0lPTihyODk5MTUpOiA8aW5wdXQg
dHlwZT1lbWFpbCBtdWx0aXBsZT4gZG9uJ3Qgc2hvdyB0aGUgZGVmYXVsdCB2YWx1ZQpJbmRleDog
U291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3Jl
L1dlYkNvcmUuZ3lwaQkocmV2aXNpb24gOTczNTIpCisrKyBTb3VyY2UvV2ViQ29yZS9XZWJDb3Jl
Lmd5cGkJKHdvcmtpbmcgY29weSkKQEAgLTEzNjEsNiArMTM2MSw4IEBACiAgICAgICAgICAgICAn
aHRtbC9jYW52YXMvV2ViR0xCdWZmZXIuaWRsJywKICAgICAgICAgICAgICdodG1sL2NhbnZhcy9X
ZWJHTENvbnRleHRBdHRyaWJ1dGVzLmlkbCcsCiAgICAgICAgICAgICAnaHRtbC9jYW52YXMvV2Vi
R0xDb250ZXh0RXZlbnQuaWRsJywKKyAgICAgICAgICAgICdodG1sL2NhbnZhcy9XZWJHTERlYnVn
UmVuZGVyZXJJbmZvLmlkbCcsCisgICAgICAgICAgICAnaHRtbC9jYW52YXMvV2ViR0xEZWJ1Z1No
YWRlcnMuaWRsJywKICAgICAgICAgICAgICdodG1sL2NhbnZhcy9XZWJHTEZyYW1lYnVmZmVyLmlk
bCcsCiAgICAgICAgICAgICAnaHRtbC9jYW52YXMvV2ViR0xQcm9ncmFtLmlkbCcsCiAgICAgICAg
ICAgICAnaHRtbC9jYW52YXMvV2ViR0xSZW5kZXJidWZmZXIuaWRsJywKQEAgLTU2NjIsNiArNTY2
NCwxMCBAQAogICAgICAgICAgICAgJ2h0bWwvY2FudmFzL1dlYkdMQ29udGV4dEF0dHJpYnV0ZXMu
aCcsCiAgICAgICAgICAgICAnaHRtbC9jYW52YXMvV2ViR0xDb250ZXh0RXZlbnQuY3BwJywKICAg
ICAgICAgICAgICdodG1sL2NhbnZhcy9XZWJHTENvbnRleHRFdmVudC5oJywKKyAgICAgICAgICAg
ICdodG1sL2NhbnZhcy9XZWJHTERlYnVnUmVuZGVyZXJJbmZvLmNwcCcsCisgICAgICAgICAgICAn
aHRtbC9jYW52YXMvV2ViR0xEZWJ1Z1JlbmRlcmVySW5mby5oJywKKyAgICAgICAgICAgICdodG1s
L2NhbnZhcy9XZWJHTERlYnVnU2hhZGVycy5jcHAnLAorICAgICAgICAgICAgJ2h0bWwvY2FudmFz
L1dlYkdMRGVidWdTaGFkZXJzLmgnLAogICAgICAgICAgICAgJ2h0bWwvY2FudmFzL1dlYkdMRXh0
ZW5zaW9uLmNwcCcsCiAgICAgICAgICAgICAnaHRtbC9jYW52YXMvV2ViR0xFeHRlbnNpb24uaCcs
CiAgICAgICAgICAgICAnaHRtbC9jYW52YXMvV2ViR0xGcmFtZWJ1ZmZlci5jcHAnLApJbmRleDog
U291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNXZWJHTFJlbmRlcmluZ0NvbnRleHRDdXN0b20u
Y3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTV2ViR0xSZW5k
ZXJpbmdDb250ZXh0Q3VzdG9tLmNwcAkocmV2aXNpb24gOTczNTIpCisrKyBTb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9qcy9KU1dlYkdMUmVuZGVyaW5nQ29udGV4dEN1c3RvbS5jcHAJKHdvcmtpbmcg
Y29weSkKQEAgLTE4Nyw2ICsxODcsMTAgQEAgc3RhdGljIEpTVmFsdWUgdG9KUyhFeGVjU3RhdGUq
IGV4ZWMsIEpTRAogICAgICAgICByZXR1cm4gdG9KUyhleGVjLCBnbG9iYWxPYmplY3QsIHN0YXRp
Y19jYXN0PE9FU1RleHR1cmVGbG9hdCo+KGV4dGVuc2lvbikpOwogICAgIGNhc2UgV2ViR0xFeHRl
bnNpb246Ok9FU1ZlcnRleEFycmF5T2JqZWN0TmFtZToKICAgICAgICAgcmV0dXJuIHRvSlMoZXhl
YywgZ2xvYmFsT2JqZWN0LCBzdGF0aWNfY2FzdDxPRVNWZXJ0ZXhBcnJheU9iamVjdCo+KGV4dGVu
c2lvbikpOworICAgIGNhc2UgV2ViR0xFeHRlbnNpb246OldlYkdMRGVidWdSZW5kZXJlckluZm9O
YW1lOgorICAgICAgICByZXR1cm4gdG9KUyhleGVjLCBnbG9iYWxPYmplY3QsIHN0YXRpY19jYXN0
PFdlYkdMRGVidWdSZW5kZXJlckluZm8qPihleHRlbnNpb24pKTsKKyAgICBjYXNlIFdlYkdMRXh0
ZW5zaW9uOjpXZWJHTERlYnVnU2hhZGVyc05hbWU6CisgICAgICAgIHJldHVybiB0b0pTKGV4ZWMs
IGdsb2JhbE9iamVjdCwgc3RhdGljX2Nhc3Q8V2ViR0xEZWJ1Z1NoYWRlcnMqPihleHRlbnNpb24p
KTsKICAgICB9CiAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CiAgICAgcmV0dXJuIGpzTnVsbCgp
OwpJbmRleDogU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4V2ViR0xSZW5kZXJp
bmdDb250ZXh0Q3VzdG9tLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy92OC9jdXN0b20vVjhXZWJHTFJlbmRlcmluZ0NvbnRleHRDdXN0b20uY3BwCShyZXZpc2lvbiA5
NzM1MikKKysrIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9WOFdlYkdMUmVuZGVy
aW5nQ29udGV4dEN1c3RvbS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTU2LDYgKzU2LDggQEAKICNp
bmNsdWRlICJWOFVpbnQzMkFycmF5LmgiCiAjaW5jbHVkZSAiVjhVaW50OEFycmF5LmgiCiAjaW5j
bHVkZSAiVjhXZWJHTEJ1ZmZlci5oIgorI2luY2x1ZGUgIlY4V2ViR0xEZWJ1Z1JlbmRlcmVySW5m
by5oIgorI2luY2x1ZGUgIlY4V2ViR0xEZWJ1Z1NoYWRlcnMuaCIKICNpbmNsdWRlICJWOFdlYkdM
RnJhbWVidWZmZXIuaCIKICNpbmNsdWRlICJWOFdlYkdMUHJvZ3JhbS5oIgogI2luY2x1ZGUgIlY4
V2ViR0xSZW5kZXJidWZmZXIuaCIKQEAgLTE4Miw2ICsxODQsMTQgQEAgc3RhdGljIHY4OjpIYW5k
bGU8djg6OlZhbHVlPiB0b1Y4T2JqZWN0KAogICAgICAgICBleHRlbnNpb25PYmplY3QgPSB0b1Y4
KHN0YXRpY19jYXN0PE9FU1ZlcnRleEFycmF5T2JqZWN0Kj4oZXh0ZW5zaW9uKSk7CiAgICAgICAg
IHJlZmVyZW5jZU5hbWUgPSAib2VzVmVydGV4QXJyYXlPYmplY3ROYW1lIjsKICAgICAgICAgYnJl
YWs7CisgICAgY2FzZSBXZWJHTEV4dGVuc2lvbjo6V2ViR0xEZWJ1Z1JlbmRlcmVySW5mb05hbWU6
CisgICAgICAgIGV4dGVuc2lvbk9iamVjdCA9IHRvVjgoc3RhdGljX2Nhc3Q8V2ViR0xEZWJ1Z1Jl
bmRlcmVySW5mbyo+KGV4dGVuc2lvbikpOworICAgICAgICByZWZlcmVuY2VOYW1lID0gIndlYkdM
RGVidWdSZW5kZXJlckluZm9OYW1lIjsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBXZWJHTEV4
dGVuc2lvbjo6V2ViR0xEZWJ1Z1NoYWRlcnNOYW1lOgorICAgICAgICBleHRlbnNpb25PYmplY3Qg
PSB0b1Y4KHN0YXRpY19jYXN0PFdlYkdMRGVidWdTaGFkZXJzKj4oZXh0ZW5zaW9uKSk7CisgICAg
ICAgIHJlZmVyZW5jZU5hbWUgPSAid2ViR0xEZWJ1Z1NoYWRlcnNOYW1lIjsKKyAgICAgICAgYnJl
YWs7CiAgICAgfQogICAgIEFTU0VSVCghZXh0ZW5zaW9uT2JqZWN0LklzRW1wdHkoKSk7CiAgICAg
VjhET01XcmFwcGVyOjpzZXROYW1lZEhpZGRlblJlZmVyZW5jZShjb250ZXh0T2JqZWN0LCByZWZl
cmVuY2VOYW1lLCBleHRlbnNpb25PYmplY3QpOwpJbmRleDogU291cmNlL1dlYkNvcmUvaHRtbC9j
YW52YXMvV2ViR0xEZWJ1Z1JlbmRlcmVySW5mby5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dl
YkNvcmUvaHRtbC9jYW52YXMvV2ViR0xEZWJ1Z1JlbmRlcmVySW5mby5jcHAJKHJldmlzaW9uIDAp
CisrKyBTb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTERlYnVnUmVuZGVyZXJJbmZvLmNw
cAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSw1NyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAx
MSBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICog
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zCisgKiBhcmUgbWV0OgorICoKKyAqIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291
cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAq
IDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgICBkb2N1bWVudGF0aW9uIGFu
ZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoK
KyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgQU5EIElUUyBDT05UUklCVVRP
UlMgIkFTIElTIiBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVECisgKiBXQVJSQU5USUVTIE9G
IE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJF
CisgKiBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBPUiBJVFMgQ09OVFJJQlVU
T1JTIEJFIExJQUJMRSBGT1IgQU5ZCisgKiBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBT
UEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUworICogKElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9S
IFNFUlZJQ0VTOworICogTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNT
IElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5ECisgKiBPTiBBTlkgVEhFT1JZIE9GIExJ
QUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAor
ICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZ
IE9VVCBPRiBUSEUgVVNFIE9GCisgKiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0Yg
VEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcu
aCIKKworI2lmIEVOQUJMRShXRUJHTCkKKworI2luY2x1ZGUgIldlYkdMRGVidWdSZW5kZXJlcklu
Zm8uaCIKKworI2luY2x1ZGUgIldlYkdMUmVuZGVyaW5nQ29udGV4dC5oIgorCituYW1lc3BhY2Ug
V2ViQ29yZSB7CisKK1dlYkdMRGVidWdSZW5kZXJlckluZm86OldlYkdMRGVidWdSZW5kZXJlcklu
Zm8oV2ViR0xSZW5kZXJpbmdDb250ZXh0KiBjb250ZXh0KQorICAgIDogV2ViR0xFeHRlbnNpb24o
Y29udGV4dCkKK3sKK30KKworV2ViR0xEZWJ1Z1JlbmRlcmVySW5mbzo6fldlYkdMRGVidWdSZW5k
ZXJlckluZm8oKQoreworfQorCitXZWJHTEV4dGVuc2lvbjo6RXh0ZW5zaW9uTmFtZSBXZWJHTERl
YnVnUmVuZGVyZXJJbmZvOjpnZXROYW1lKCkgY29uc3QKK3sKKyAgICByZXR1cm4gV2ViR0xEZWJ1
Z1JlbmRlcmVySW5mb05hbWU7Cit9CisKK1Bhc3NPd25QdHI8V2ViR0xEZWJ1Z1JlbmRlcmVySW5m
bz4gV2ViR0xEZWJ1Z1JlbmRlcmVySW5mbzo6Y3JlYXRlKFdlYkdMUmVuZGVyaW5nQ29udGV4dCog
Y29udGV4dCkKK3sKKyAgICByZXR1cm4gYWRvcHRQdHIobmV3IFdlYkdMRGVidWdSZW5kZXJlcklu
Zm8oY29udGV4dCkpOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBF
TkFCTEUoV0VCR0wpCgpQcm9wZXJ0eSBjaGFuZ2VzIG9uOiBTb3VyY2UvV2ViQ29yZS9odG1sL2Nh
bnZhcy9XZWJHTERlYnVnUmVuZGVyZXJJbmZvLmNwcApfX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCkFkZGVkOiBzdm46ZW9s
LXN0eWxlCiAgICsgTEYKCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTERl
YnVnUmVuZGVyZXJJbmZvLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvaHRtbC9jYW52
YXMvV2ViR0xEZWJ1Z1JlbmRlcmVySW5mby5oCShyZXZpc2lvbiAwKQorKysgU291cmNlL1dlYkNv
cmUvaHRtbC9jYW52YXMvV2ViR0xEZWJ1Z1JlbmRlcmVySW5mby5oCShyZXZpc2lvbiAwKQpAQCAt
MCwwICsxLDUyIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDExIEdvb2dsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBt
ZXQ6CisgKgorICogMS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFp
biB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gIFJlZGlzdHJpYnV0aW9u
cyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyIGluIHRoZQorICogICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFs
cyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJ
UyBQUk9WSURFRCBCWSBBUFBMRSBBTkQgSVRTIENPTlRSSUJVVE9SUyAiQVMgSVMiIEFORCBBTlkK
KyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywgVEhFIElNUExJRUQKKyAqIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFO
RCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKKyAqIERJU0NMQUlNRUQuIElO
IE5PIEVWRU5UIFNIQUxMIEFQUExFIE9SIElUUyBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBB
TlkKKyAqIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwg
T1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTCisgKiAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7CisgKiBMT1NT
IE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dF
VkVSIENBVVNFRCBBTkQKKyAqIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElO
IENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJ
R0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YK
KyAqIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBXZWJHTERlYnVnUmVuZGVyZXJJbmZvX2gKKyNk
ZWZpbmUgV2ViR0xEZWJ1Z1JlbmRlcmVySW5mb19oCisKKyNpbmNsdWRlICJXZWJHTEV4dGVuc2lv
bi5oIgorI2luY2x1ZGUgPHd0Zi9QYXNzT3duUHRyLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsK
KworY2xhc3MgV2ViR0xEZWJ1Z1JlbmRlcmVySW5mbyA6IHB1YmxpYyBXZWJHTEV4dGVuc2lvbiB7
CitwdWJsaWM6CisgICAgZW51bSBFbnVtVHlwZSB7CisgICAgICAgIFVOTUFTS0VEX1ZFTkRPUl9X
RUJHTCA9IDB4OTI0NSwKKyAgICAgICAgVU5NQVNLRURfUkVOREVSRVJfV0VCR0wgPSAweDkyNDYK
KyAgICB9OworCisgICAgc3RhdGljIFBhc3NPd25QdHI8V2ViR0xEZWJ1Z1JlbmRlcmVySW5mbz4g
Y3JlYXRlKFdlYkdMUmVuZGVyaW5nQ29udGV4dCopOworCisgICAgdmlydHVhbCB+V2ViR0xEZWJ1
Z1JlbmRlcmVySW5mbygpOworICAgIHZpcnR1YWwgRXh0ZW5zaW9uTmFtZSBnZXROYW1lKCkgY29u
c3Q7CisKK3ByaXZhdGU6CisgICAgV2ViR0xEZWJ1Z1JlbmRlcmVySW5mbyhXZWJHTFJlbmRlcmlu
Z0NvbnRleHQqKTsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIFdl
YkdMRGVidWdSZW5kZXJlckluZm9faAoKUHJvcGVydHkgY2hhbmdlcyBvbjogU291cmNlL1dlYkNv
cmUvaHRtbC9jYW52YXMvV2ViR0xEZWJ1Z1JlbmRlcmVySW5mby5oCl9fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KQWRkZWQ6
IHN2bjplb2wtc3R5bGUKICAgKyBMRgoKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFz
L1dlYkdMRGVidWdSZW5kZXJlckluZm8uaWRsCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3Jl
L2h0bWwvY2FudmFzL1dlYkdMRGVidWdSZW5kZXJlckluZm8uaWRsCShyZXZpc2lvbiAwKQorKysg
U291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xEZWJ1Z1JlbmRlcmVySW5mby5pZGwJKHJl
dmlzaW9uIDApCkBAIC0wLDAgKzEsMzYgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTEgR29v
Z2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucworICogYXJlIG1ldDoKKyAqCisgKiAxLiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBj
b2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiAg
UmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Ig
b3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBU
SElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIEFORCBJVFMgQ09OVFJJQlVUT1JTICJB
UyBJUyIgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAorICogV0FSUkFOVElFUyBPRiBNRVJD
SEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRQorICog
RElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgT1IgSVRTIENPTlRSSUJVVE9SUyBC
RSBMSUFCTEUgRk9SIEFOWQorICogRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lB
TCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMKKyAqIChJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJW
SUNFUzsKKyAqIExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRF
UlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORAorICogT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJ
VFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJ
TkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQg
T0YgVEhFIFVTRSBPRgorICogVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCittb2R1bGUgaHRtbCB7CisgICAgaW50
ZXJmYWNlIFsKKyAgICAgICAgQ29uZGl0aW9uYWw9V0VCR0wsCisgICAgICAgIEdlbmVyYXRlSXNS
ZWFjaGFibGU9SW1wbENvbnRleHQsCisgICAgICAgIE9taXRDb25zdHJ1Y3RvciwKKyAgICAgICAg
RG9udENoZWNrRW51bXMKKyAgICBdIFdlYkdMRGVidWdSZW5kZXJlckluZm8geworICAgICAgICBj
b25zdCB1bnNpZ25lZCBpbnQgVU5NQVNLRURfVkVORE9SX1dFQkdMID0gMHg5MjQ1OworICAgICAg
ICBjb25zdCB1bnNpZ25lZCBpbnQgVU5NQVNLRURfUkVOREVSRVJfV0VCR0wgPSAweDkyNDY7Cisg
ICAgfTsKK30KClByb3BlcnR5IGNoYW5nZXMgb246IFNvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFz
L1dlYkdMRGVidWdSZW5kZXJlckluZm8uaWRsCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KQWRkZWQ6IHN2bjplb2wtc3R5
bGUKICAgKyBMRgoKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMRGVidWdT
aGFkZXJzLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJH
TERlYnVnU2hhZGVycy5jcHAJKHJldmlzaW9uIDApCisrKyBTb3VyY2UvV2ViQ29yZS9odG1sL2Nh
bnZhcy9XZWJHTERlYnVnU2hhZGVycy5jcHAJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsODYgQEAK
Ky8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTEgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqCisgKiAx
LiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBm
b3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhl
CisgKiAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdp
dGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZ
IEFQUExFIEFORCBJVFMgQ09OVFJJQlVUT1JTICJBUyBJUyIgQU5EIEFOWQorICogRVhQUkVTUyBP
UiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUg
SU1QTElFRAorICogV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9S
IEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRQorICogRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hB
TEwgQVBQTEUgT1IgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWQorICogRElSRUNU
LCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5U
SUFMIERBTUFHRVMKKyAqIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1F
TlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsKKyAqIExPU1MgT0YgVVNFLCBEQVRB
LCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFO
RAorICogT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNU
UklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhF
UldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRgorICogVEhJUyBTT0ZU
V0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4K
KyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisKKyNpZiBFTkFCTEUoV0VCR0wpCisKKyNpbmNs
dWRlICJXZWJHTERlYnVnU2hhZGVycy5oIgorCisjaW5jbHVkZSAiRXh0ZW5zaW9uczNELmgiCisj
aW5jbHVkZSAiV2ViR0xSZW5kZXJpbmdDb250ZXh0LmgiCisjaW5jbHVkZSAiV2ViR0xTaGFkZXIu
aCIKKworI2luY2x1ZGUgPHd0Zi9Pd25BcnJheVB0ci5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7
CisKK1dlYkdMRGVidWdTaGFkZXJzOjpXZWJHTERlYnVnU2hhZGVycyhXZWJHTFJlbmRlcmluZ0Nv
bnRleHQqIGNvbnRleHQpCisgICAgOiBXZWJHTEV4dGVuc2lvbihjb250ZXh0KQoreworfQorCitX
ZWJHTERlYnVnU2hhZGVyczo6fldlYkdMRGVidWdTaGFkZXJzKCkKK3sKK30KKworV2ViR0xFeHRl
bnNpb246OkV4dGVuc2lvbk5hbWUgV2ViR0xEZWJ1Z1NoYWRlcnM6OmdldE5hbWUoKSBjb25zdAor
eworICAgIHJldHVybiBXZWJHTERlYnVnU2hhZGVyc05hbWU7Cit9CisKK1Bhc3NPd25QdHI8V2Vi
R0xEZWJ1Z1NoYWRlcnM+IFdlYkdMRGVidWdTaGFkZXJzOjpjcmVhdGUoV2ViR0xSZW5kZXJpbmdD
b250ZXh0KiBjb250ZXh0KQoreworICAgIHJldHVybiBhZG9wdFB0cihuZXcgV2ViR0xEZWJ1Z1No
YWRlcnMoY29udGV4dCkpOworfQorCitTdHJpbmcgV2ViR0xEZWJ1Z1NoYWRlcnM6OmdldFRyYW5z
bGF0ZWRTaGFkZXJTb3VyY2UoV2ViR0xTaGFkZXIqIHNoYWRlciwgRXhjZXB0aW9uQ29kZSYgZWMp
Cit7CisgICAgVU5VU0VEX1BBUkFNKGVjKTsKKyAgICBpZiAobV9jb250ZXh0LT5pc0NvbnRleHRM
b3N0KCkpCisgICAgICAgIHJldHVybiBTdHJpbmcoKTsKKyAgICBpZiAoIW1fY29udGV4dC0+dmFs
aWRhdGVXZWJHTE9iamVjdChzaGFkZXIpKQorICAgICAgICByZXR1cm4gIiI7CisgICAgRXh0ZW5z
aW9uczNEKiBleHRlbnNpb25zID0gbV9jb250ZXh0LT5ncmFwaGljc0NvbnRleHQzRCgpLT5nZXRF
eHRlbnNpb25zKCk7CisgICAgQVNTRVJUKGV4dGVuc2lvbnMpOworCisgICAgR0MzRGludCBidWZT
aXplID0gMDsKKyAgICBtX2NvbnRleHQtPmdyYXBoaWNzQ29udGV4dDNEKCktPmdldFNoYWRlcml2
KAorICAgICAgICBzaGFkZXItPm9iamVjdCgpLCBFeHRlbnNpb25zM0Q6OlRSQU5TTEFURURfU0hB
REVSX1NPVVJDRV9MRU5HVEhfQU5HTEUsICZidWZTaXplKTsKKyAgICBpZiAoIWJ1ZlNpemUpCisg
ICAgICAgIHJldHVybiAiIjsKKworICAgIE93bkFycmF5UHRyPEdDM0RjaGFyPiBzb3VyY2UgPSBh
ZG9wdEFycmF5UHRyKG5ldyBHQzNEY2hhcltidWZTaXplXSk7CisgICAgR0MzRHNpemVpIGxlbmd0
aCA9IDA7CisgICAgZXh0ZW5zaW9ucy0+Z2V0VHJhbnNsYXRlZFNoYWRlclNvdXJjZUFOR0xFKAor
ICAgICAgICBzaGFkZXItPm9iamVjdCgpLCBzdGF0aWNfY2FzdDxHQzNEc2l6ZWk+KGJ1ZlNpemUp
LCAmbGVuZ3RoLCBzb3VyY2UuZ2V0KCkpOworICAgIEFTU0VSVChidWZTaXplID09IHN0YXRpY19j
YXN0PEdDM0RpbnQ+KGxlbmd0aCArIDEpKTsKKworICAgIHJldHVybiBTdHJpbmcoc291cmNlLmdl
dCgpKTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gRU5BQkxFKFdF
QkdMKQoKUHJvcGVydHkgY2hhbmdlcyBvbjogU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2Vi
R0xEZWJ1Z1NoYWRlcnMuY3BwCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX18KQWRkZWQ6IHN2bjplb2wtc3R5bGUKICAgKyBM
RgoKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMRGVidWdTaGFkZXJzLmgK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xEZWJ1Z1NoYWRl
cnMuaAkocmV2aXNpb24gMCkKKysrIFNvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMRGVi
dWdTaGFkZXJzLmgJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsNTIgQEAKKy8qCisgKiBDb3B5cmln
aHQgKEMpIDIwMTEgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqCisgKiAxLiAgUmVkaXN0cmlidXRp
b25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIuCisgKiAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k
dWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICAgZG9jdW1l
bnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1
dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIEFORCBJVFMg
Q09OVFJJQlVUT1JTICJBUyBJUyIgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJB
TlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAorICogV0FS
UkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQ
VVJQT1NFIEFSRQorICogRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgT1IgSVRT
IENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWQorICogRElSRUNULCBJTkRJUkVDVCwgSU5D
SURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMKKyAq
IChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVU
RSBHT09EUyBPUiBTRVJWSUNFUzsKKyAqIExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBP
UiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORAorICogT04gQU5ZIFRI
RU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFks
IE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcg
SU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRgorICogVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBB
RFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVm
IFdlYkdMRGVidWdTaGFkZXJzX2gKKyNkZWZpbmUgV2ViR0xEZWJ1Z1NoYWRlcnNfaAorCisjaW5j
bHVkZSAiRXhjZXB0aW9uQ29kZS5oIgorI2luY2x1ZGUgIldlYkdMRXh0ZW5zaW9uLmgiCisjaW5j
bHVkZSA8d3RmL1Bhc3NPd25QdHIuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBX
ZWJHTFNoYWRlcjsKKworY2xhc3MgV2ViR0xEZWJ1Z1NoYWRlcnMgOiBwdWJsaWMgV2ViR0xFeHRl
bnNpb24geworcHVibGljOgorICAgIHN0YXRpYyBQYXNzT3duUHRyPFdlYkdMRGVidWdTaGFkZXJz
PiBjcmVhdGUoV2ViR0xSZW5kZXJpbmdDb250ZXh0Kik7CisKKyAgICB2aXJ0dWFsIH5XZWJHTERl
YnVnU2hhZGVycygpOworICAgIHZpcnR1YWwgRXh0ZW5zaW9uTmFtZSBnZXROYW1lKCkgY29uc3Q7
CisKKyAgICBTdHJpbmcgZ2V0VHJhbnNsYXRlZFNoYWRlclNvdXJjZShXZWJHTFNoYWRlciosIEV4
Y2VwdGlvbkNvZGUmKTsKKworcHJpdmF0ZToKKyAgICBXZWJHTERlYnVnU2hhZGVycyhXZWJHTFJl
bmRlcmluZ0NvbnRleHQqKTsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlm
IC8vIFdlYkdMRGVidWdTaGFkZXJzX2gKClByb3BlcnR5IGNoYW5nZXMgb246IFNvdXJjZS9XZWJD
b3JlL2h0bWwvY2FudmFzL1dlYkdMRGVidWdTaGFkZXJzLmgKX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpBZGRlZDogc3Zu
OmVvbC1zdHlsZQogICArIExGCgpJbmRleDogU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2Vi
R0xEZWJ1Z1NoYWRlcnMuaWRsCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2h0bWwvY2Fu
dmFzL1dlYkdMRGVidWdTaGFkZXJzLmlkbAkocmV2aXNpb24gMCkKKysrIFNvdXJjZS9XZWJDb3Jl
L2h0bWwvY2FudmFzL1dlYkdMRGVidWdTaGFkZXJzLmlkbAkocmV2aXNpb24gMCkKQEAgLTAsMCAr
MSwzNCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMSBHb29nbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0Ogor
ICoKKyAqIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4g
YmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ciBpbiB0aGUKKyAqICAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJv
dmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJP
VklERUQgQlkgQVBQTEUgQU5EIElUUyBDT05UUklCVVRPUlMgIkFTIElTIiBBTkQgQU5ZCisgKiBF
WFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sIFRIRSBJTVBMSUVECisgKiBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklU
TkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCisgKiBESVNDTEFJTUVELiBJTiBOTyBF
VkVOVCBTSEFMTCBBUFBMRSBPUiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZCisg
KiBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENP
TlNFUVVFTlRJQUwgREFNQUdFUworICogKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQ
Uk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOworICogTE9TUyBPRiBV
U0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBD
QVVTRUQgQU5ECisgKiBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05U
UkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNF
IE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GCisgKiBU
SElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gg
REFNQUdFLgorICovCisKK21vZHVsZSBodG1sIHsKKyAgICBpbnRlcmZhY2UgWworICAgICAgICBD
b25kaXRpb25hbD1XRUJHTCwKKyAgICAgICAgR2VuZXJhdGVJc1JlYWNoYWJsZT1JbXBsQ29udGV4
dCwKKyAgICAgICAgT21pdENvbnN0cnVjdG9yCisgICAgXSBXZWJHTERlYnVnU2hhZGVycyB7Cisg
ICAgICAgIFtTdHJpY3RUeXBlQ2hlY2tpbmcsIENvbnZlcnROdWxsU3RyaW5nVG89TnVsbF0gRE9N
U3RyaW5nIGdldFRyYW5zbGF0ZWRTaGFkZXJTb3VyY2UoaW4gV2ViR0xTaGFkZXIgc2hhZGVyKSBy
YWlzZXMoRE9NRXhjZXB0aW9uKTsKKyAgICB9OworfQoKUHJvcGVydHkgY2hhbmdlcyBvbjogU291
cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xEZWJ1Z1NoYWRlcnMuaWRsCl9fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18K
QWRkZWQ6IHN2bjplb2wtc3R5bGUKICAgKyBMRgoKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2h0bWwv
Y2FudmFzL1dlYkdMRXh0ZW5zaW9uLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvaHRt
bC9jYW52YXMvV2ViR0xFeHRlbnNpb24uaAkocmV2aXNpb24gOTczNTIpCisrKyBTb3VyY2UvV2Vi
Q29yZS9odG1sL2NhbnZhcy9XZWJHTEV4dGVuc2lvbi5oCSh3b3JraW5nIGNvcHkpCkBAIC0zOCw2
ICszOCw4IEBAIHB1YmxpYzoKICAgICAgICAgT0VTVGV4dHVyZUZsb2F0TmFtZSwKICAgICAgICAg
T0VTU3RhbmRhcmREZXJpdmF0aXZlc05hbWUsCiAgICAgICAgIE9FU1ZlcnRleEFycmF5T2JqZWN0
TmFtZSwKKyAgICAgICAgV2ViR0xEZWJ1Z1JlbmRlcmVySW5mb05hbWUsCisgICAgICAgIFdlYkdM
RGVidWdTaGFkZXJzTmFtZSwKICAgICB9OwogCiAgICAgdm9pZCByZWYoKSB7IG1fY29udGV4dC0+
cmVmKCk7IH0KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMUmVuZGVyaW5n
Q29udGV4dC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2Vi
R0xSZW5kZXJpbmdDb250ZXh0LmNwcAkocmV2aXNpb24gOTczNTIpCisrKyBTb3VyY2UvV2ViQ29y
ZS9odG1sL2NhbnZhcy9XZWJHTFJlbmRlcmluZ0NvbnRleHQuY3BwCSh3b3JraW5nIGNvcHkpCkBA
IC0zMiw3ICszMiw2IEBACiAjaW5jbHVkZSAiQ2FjaGVkSW1hZ2UuaCIKICNpbmNsdWRlICJDYW52
YXNQaXhlbEFycmF5LmgiCiAjaW5jbHVkZSAiQ2hlY2tlZEludC5oIgotI2luY2x1ZGUgIldlYktp
dExvc2VDb250ZXh0LmgiCiAjaW5jbHVkZSAiQ29uc29sZS5oIgogI2luY2x1ZGUgIkRPTVdpbmRv
dy5oIgogI2luY2x1ZGUgIkV4dGVuc2lvbnMzRC5oIgpAQCAtNTcsMTIgKzU2LDE1IEBACiAjaW5j
bHVkZSAiV2ViR0xCdWZmZXIuaCIKICNpbmNsdWRlICJXZWJHTENvbnRleHRBdHRyaWJ1dGVzLmgi
CiAjaW5jbHVkZSAiV2ViR0xDb250ZXh0RXZlbnQuaCIKKyNpbmNsdWRlICJXZWJHTERlYnVnUmVu
ZGVyZXJJbmZvLmgiCisjaW5jbHVkZSAiV2ViR0xEZWJ1Z1NoYWRlcnMuaCIKICNpbmNsdWRlICJX
ZWJHTEZyYW1lYnVmZmVyLmgiCiAjaW5jbHVkZSAiV2ViR0xQcm9ncmFtLmgiCiAjaW5jbHVkZSAi
V2ViR0xSZW5kZXJidWZmZXIuaCIKICNpbmNsdWRlICJXZWJHTFNoYWRlci5oIgogI2luY2x1ZGUg
IldlYkdMVGV4dHVyZS5oIgogI2luY2x1ZGUgIldlYkdMVW5pZm9ybUxvY2F0aW9uLmgiCisjaW5j
bHVkZSAiV2ViS2l0TG9zZUNvbnRleHQuaCIKIAogI2luY2x1ZGUgPHd0Zi9CeXRlQXJyYXkuaD4K
ICNpbmNsdWRlIDx3dGYvT3duQXJyYXlQdHIuaD4KQEAgLTQ3Myw2ICs0NzUsMTIgQEAgdm9pZCBX
ZWJHTFJlbmRlcmluZ0NvbnRleHQ6OnNldHVwRmxhZ3MoKQogICAgIH0KIH0KIAorYm9vbCBXZWJH
TFJlbmRlcmluZ0NvbnRleHQ6OmFsbG93UHJpdmlsZWdlZEV4dGVuc2lvbnMoKSBjb25zdAorewor
ICAgIC8vIEZJWE1FOiBpbXBsZW1lbnQgdGhpcyBmdW5jdGlvbi4KKyAgICByZXR1cm4gdHJ1ZTsK
K30KKwogV2ViR0xSZW5kZXJpbmdDb250ZXh0Ojp+V2ViR0xSZW5kZXJpbmdDb250ZXh0KCkKIHsK
ICAgICBkZXRhY2hBbmRSZW1vdmVBbGxPYmplY3RzKCk7CkBAIC0xOTk5LDYgKzIwMDcsMjggQEAg
V2ViR0xFeHRlbnNpb24qIFdlYkdMUmVuZGVyaW5nQ29udGV4dDo6ZwogICAgICAgICAgICAgbV93
ZWJraXRMb3NlQ29udGV4dCA9IFdlYktpdExvc2VDb250ZXh0OjpjcmVhdGUodGhpcyk7CiAgICAg
ICAgIHJldHVybiBtX3dlYmtpdExvc2VDb250ZXh0LmdldCgpOwogICAgIH0KKyAgICBpZiAoZXF1
YWxJZ25vcmluZ0Nhc2UobmFtZSwgIk9FU19zdGFuZGFyZF9kZXJpdmF0aXZlcyIpCisgICAgICAg
ICYmIG1fY29udGV4dC0+Z2V0RXh0ZW5zaW9ucygpLT5zdXBwb3J0cygiR0xfT0VTX3N0YW5kYXJk
X2Rlcml2YXRpdmVzIikpIHsKKyAgICAgICAgaWYgKCFtX29lc1N0YW5kYXJkRGVyaXZhdGl2ZXMp
IHsKKyAgICAgICAgICAgIG1fY29udGV4dC0+Z2V0RXh0ZW5zaW9ucygpLT5lbnN1cmVFbmFibGVk
KCJHTF9PRVNfc3RhbmRhcmRfZGVyaXZhdGl2ZXMiKTsKKyAgICAgICAgICAgIG1fb2VzU3RhbmRh
cmREZXJpdmF0aXZlcyA9IE9FU1N0YW5kYXJkRGVyaXZhdGl2ZXM6OmNyZWF0ZSh0aGlzKTsKKyAg
ICAgICAgfQorICAgICAgICByZXR1cm4gbV9vZXNTdGFuZGFyZERlcml2YXRpdmVzLmdldCgpOwor
ICAgIH0KKworICAgIGlmIChhbGxvd1ByaXZpbGVnZWRFeHRlbnNpb25zKCkpIHsKKyAgICAgICAg
aWYgKGVxdWFsSWdub3JpbmdDYXNlKG5hbWUsICJXRUJHTF9kZWJ1Z19yZW5kZXJlcl9pbmZvIikp
IHsKKyAgICAgICAgICAgIGlmICghbV93ZWJnbERlYnVnUmVuZGVyZXJJbmZvKQorICAgICAgICAg
ICAgICAgIG1fd2ViZ2xEZWJ1Z1JlbmRlcmVySW5mbyA9IFdlYkdMRGVidWdSZW5kZXJlckluZm86
OmNyZWF0ZSh0aGlzKTsKKyAgICAgICAgICAgIHJldHVybiBtX3dlYmdsRGVidWdSZW5kZXJlcklu
Zm8uZ2V0KCk7CisgICAgICAgIH0KKyAgICAgICAgaWYgKGVxdWFsSWdub3JpbmdDYXNlKG5hbWUs
ICJXRUJHTF9kZWJ1Z19zaGFkZXJzIikKKyAgICAgICAgICAgICYmIG1fY29udGV4dC0+Z2V0RXh0
ZW5zaW9ucygpLT5zdXBwb3J0cygiR0xfQU5HTEVfdHJhbnNsYXRlZF9zaGFkZXJfc291cmNlIikp
IHsKKyAgICAgICAgICAgIGlmICghbV93ZWJnbERlYnVnU2hhZGVycykKKyAgICAgICAgICAgICAg
ICBtX3dlYmdsRGVidWdTaGFkZXJzID0gV2ViR0xEZWJ1Z1NoYWRlcnM6OmNyZWF0ZSh0aGlzKTsK
KyAgICAgICAgICAgIHJldHVybiBtX3dlYmdsRGVidWdTaGFkZXJzLmdldCgpOworICAgICAgICB9
CisgICAgfQogCiAgICAgcmV0dXJuIDA7CiB9CkBAIC0yMjQ1LDYgKzIyNzUsMTYgQEAgV2ViR0xH
ZXRJbmZvIFdlYkdMUmVuZGVyaW5nQ29udGV4dDo6Z2V0UAogICAgICAgICAgICAgcmV0dXJuIGdl
dFVuc2lnbmVkSW50UGFyYW1ldGVyKEV4dGVuc2lvbnMzRDo6RlJBR01FTlRfU0hBREVSX0RFUklW
QVRJVkVfSElOVF9PRVMpOwogICAgICAgICBtX2NvbnRleHQtPnN5bnRoZXNpemVHTEVycm9yKEdy
YXBoaWNzQ29udGV4dDNEOjpJTlZBTElEX0VOVU0pOwogICAgICAgICByZXR1cm4gV2ViR0xHZXRJ
bmZvKCk7CisgICAgY2FzZSBXZWJHTERlYnVnUmVuZGVyZXJJbmZvOjpVTk1BU0tFRF9SRU5ERVJF
Ul9XRUJHTDoKKyAgICAgICAgaWYgKG1fd2ViZ2xEZWJ1Z1JlbmRlcmVySW5mbykKKyAgICAgICAg
ICAgIHJldHVybiBXZWJHTEdldEluZm8obV9jb250ZXh0LT5nZXRTdHJpbmcoR3JhcGhpY3NDb250
ZXh0M0Q6OlJFTkRFUkVSKSk7CisgICAgICAgIG1fY29udGV4dC0+c3ludGhlc2l6ZUdMRXJyb3Io
R3JhcGhpY3NDb250ZXh0M0Q6OklOVkFMSURfRU5VTSk7CisgICAgICAgIHJldHVybiBXZWJHTEdl
dEluZm8oKTsKKyAgICBjYXNlIFdlYkdMRGVidWdSZW5kZXJlckluZm86OlVOTUFTS0VEX1ZFTkRP
Ul9XRUJHTDoKKyAgICAgICAgaWYgKG1fd2ViZ2xEZWJ1Z1JlbmRlcmVySW5mbykKKyAgICAgICAg
ICAgIHJldHVybiBXZWJHTEdldEluZm8obV9jb250ZXh0LT5nZXRTdHJpbmcoR3JhcGhpY3NDb250
ZXh0M0Q6OlZFTkRPUikpOworICAgICAgICBtX2NvbnRleHQtPnN5bnRoZXNpemVHTEVycm9yKEdy
YXBoaWNzQ29udGV4dDNEOjpJTlZBTElEX0VOVU0pOworICAgICAgICByZXR1cm4gV2ViR0xHZXRJ
bmZvKCk7CiAgICAgY2FzZSBFeHRlbnNpb25zM0Q6OlZFUlRFWF9BUlJBWV9CSU5ESU5HX09FUzog
Ly8gT0VTX3ZlcnRleF9hcnJheV9vYmplY3QKICAgICAgICAgaWYgKG1fb2VzVmVydGV4QXJyYXlP
YmplY3QpIHsKICAgICAgICAgICAgIGlmICghbV9ib3VuZFZlcnRleEFycmF5T2JqZWN0LT5pc0Rl
ZmF1bHRPYmplY3QoKSkKQEAgLTI0MTcsNiArMjQ1NywxMyBAQCBWZWN0b3I8U3RyaW5nPiBXZWJH
TFJlbmRlcmluZ0NvbnRleHQ6OmdlCiAgICAgaWYgKG1fY29udGV4dC0+Z2V0RXh0ZW5zaW9ucygp
LT5zdXBwb3J0cygiR0xfT0VTX3ZlcnRleF9hcnJheV9vYmplY3QiKSkKICAgICAgICAgcmVzdWx0
LmFwcGVuZCgiT0VTX3ZlcnRleF9hcnJheV9vYmplY3QiKTsKICAgICByZXN1bHQuYXBwZW5kKCJX
RUJLSVRfbG9zZV9jb250ZXh0Iik7CisKKyAgICBpZiAoYWxsb3dQcml2aWxlZ2VkRXh0ZW5zaW9u
cygpKSB7CisgICAgICAgIGlmIChtX2NvbnRleHQtPmdldEV4dGVuc2lvbnMoKS0+c3VwcG9ydHMo
IkdMX0FOR0xFX3RyYW5zbGF0ZWRfc2hhZGVyX3NvdXJjZSIpKQorICAgICAgICAgICAgcmVzdWx0
LmFwcGVuZCgiV0VCR0xfZGVidWdfc2hhZGVycyIpOworICAgICAgICByZXN1bHQuYXBwZW5kKCJX
RUJHTF9kZWJ1Z19yZW5kZXJlcl9pbmZvIik7CisgICAgfQorCiAgICAgcmV0dXJuIHJlc3VsdDsK
IH0KIApJbmRleDogU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xSZW5kZXJpbmdDb250
ZXh0LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xSZW5k
ZXJpbmdDb250ZXh0LmgJKHJldmlzaW9uIDk3MzUyKQorKysgU291cmNlL1dlYkNvcmUvaHRtbC9j
YW52YXMvV2ViR0xSZW5kZXJpbmdDb250ZXh0LmgJKHdvcmtpbmcgY29weSkKQEAgLTQwLDkgKzQw
LDE5IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAorY2xhc3MgSFRNTEltYWdlRWxlbWVudDsK
K2NsYXNzIEhUTUxWaWRlb0VsZW1lbnQ7CitjbGFzcyBJbWFnZUJ1ZmZlcjsKK2NsYXNzIEltYWdl
RGF0YTsKK2NsYXNzIEludFNpemU7CitjbGFzcyBPRVNTdGFuZGFyZERlcml2YXRpdmVzOworY2xh
c3MgT0VTVGV4dHVyZUZsb2F0OworY2xhc3MgT0VTVmVydGV4QXJyYXlPYmplY3Q7CiBjbGFzcyBX
ZWJHTEFjdGl2ZUluZm87CiBjbGFzcyBXZWJHTEJ1ZmZlcjsKIGNsYXNzIFdlYkdMQ29udGV4dEF0
dHJpYnV0ZXM7CitjbGFzcyBXZWJHTERlYnVnUmVuZGVyZXJJbmZvOworY2xhc3MgV2ViR0xEZWJ1
Z1NoYWRlcnM7CiBjbGFzcyBXZWJHTEV4dGVuc2lvbjsKIGNsYXNzIFdlYkdMRnJhbWVidWZmZXI7
CiBjbGFzcyBXZWJHTE9iamVjdDsKQEAgLTUxLDE2ICs2MSw4IEBAIGNsYXNzIFdlYkdMUmVuZGVy
YnVmZmVyOwogY2xhc3MgV2ViR0xTaGFkZXI7CiBjbGFzcyBXZWJHTFRleHR1cmU7CiBjbGFzcyBX
ZWJHTFVuaWZvcm1Mb2NhdGlvbjsKLWNsYXNzIFdlYktpdExvc2VDb250ZXh0OwotY2xhc3MgSFRN
TEltYWdlRWxlbWVudDsKLWNsYXNzIEhUTUxWaWRlb0VsZW1lbnQ7Ci1jbGFzcyBJbWFnZUJ1ZmZl
cjsKLWNsYXNzIEltYWdlRGF0YTsKLWNsYXNzIEludFNpemU7Ci1jbGFzcyBPRVNTdGFuZGFyZERl
cml2YXRpdmVzOwotY2xhc3MgT0VTVGV4dHVyZUZsb2F0OwotY2xhc3MgT0VTVmVydGV4QXJyYXlP
YmplY3Q7CiBjbGFzcyBXZWJHTFZlcnRleEFycmF5T2JqZWN0T0VTOworY2xhc3MgV2ViS2l0TG9z
ZUNvbnRleHQ7CiAKIGNsYXNzIFdlYkdMUmVuZGVyaW5nQ29udGV4dCA6IHB1YmxpYyBDYW52YXNS
ZW5kZXJpbmdDb250ZXh0IHsKIHB1YmxpYzoKQEAgLTMwNiw2ICszMDgsNyBAQCBwdWJsaWM6CiAg
IHByaXZhdGU6CiAgICAgZnJpZW5kIGNsYXNzIFdlYkdMT2JqZWN0OwogICAgIGZyaWVuZCBjbGFz
cyBPRVNWZXJ0ZXhBcnJheU9iamVjdDsKKyAgICBmcmllbmQgY2xhc3MgV2ViR0xEZWJ1Z1NoYWRl
cnM7CiAKICAgICBXZWJHTFJlbmRlcmluZ0NvbnRleHQoSFRNTENhbnZhc0VsZW1lbnQqLCBQYXNz
UmVmUHRyPEdyYXBoaWNzQ29udGV4dDNEPiwgR3JhcGhpY3NDb250ZXh0M0Q6OkF0dHJpYnV0ZXMp
OwogICAgIHZvaWQgaW5pdGlhbGl6ZU5ld0NvbnRleHQoKTsKQEAgLTQ3NCw2ICs0NzcsOCBAQCBw
dWJsaWM6CiAgICAgT3duUHRyPE9FU1N0YW5kYXJkRGVyaXZhdGl2ZXM+IG1fb2VzU3RhbmRhcmRE
ZXJpdmF0aXZlczsKICAgICBPd25QdHI8T0VTVmVydGV4QXJyYXlPYmplY3Q+IG1fb2VzVmVydGV4
QXJyYXlPYmplY3Q7CiAgICAgT3duUHRyPFdlYktpdExvc2VDb250ZXh0PiBtX3dlYmtpdExvc2VD
b250ZXh0OworICAgIE93blB0cjxXZWJHTERlYnVnUmVuZGVyZXJJbmZvPiBtX3dlYmdsRGVidWdS
ZW5kZXJlckluZm87CisgICAgT3duUHRyPFdlYkdMRGVidWdTaGFkZXJzPiBtX3dlYmdsRGVidWdT
aGFkZXJzOwogCiAgICAgLy8gSGVscGVycyBmb3IgZ2V0UGFyYW1ldGVyIGFuZCBvdGhlcnMKICAg
ICBXZWJHTEdldEluZm8gZ2V0Qm9vbGVhblBhcmFtZXRlcihHQzNEZW51bSk7CkBAIC02MjIsNiAr
NjI3LDkgQEAgcHVibGljOgogICAgIC8vIEhlbHBlciBmb3IgcmVzdG9yYXRpb24gYWZ0ZXIgY29u
dGV4dCBsb3N0LgogICAgIHZvaWQgbWF5YmVSZXN0b3JlQ29udGV4dChMb3N0Q29udGV4dE1vZGUp
OwogCisgICAgLy8gRGV0ZXJtaW5lIGlmIHdlIGFyZSBydW5uaW5nIHRoZSBwcml2aWxlZ2VkIGNv
ZGUgaW4gdGhlIGJyb3dzZXIuCisgICAgYm9vbCBhbGxvd1ByaXZpbGVnZWRFeHRlbnNpb25zKCkg
Y29uc3Q7CisKICAgICBmcmllbmQgY2xhc3MgV2ViR0xTdGF0ZVJlc3RvcmVyOwogfTsKIApJbmRl
eDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRXh0ZW5zaW9uczNELmgKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRXh0ZW5zaW9uczNELmgJ
KHJldmlzaW9uIDk3MzUyKQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRXh0
ZW5zaW9uczNELmgJKHdvcmtpbmcgY29weSkKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJp
Z2h0IChDKSAyMDEwIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmln
aHQgKEMpIDIwMTEgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtNTYsNiArNTYsNyBAQCBwdWJsaWM6CiAgICAgLy8gICBH
TF9PRVNfc3RhbmRhcmRfZGVyaXZhdGl2ZXMKICAgICAvLyAgIEdMX09FU19yZ2I4X3JnYmE4CiAg
ICAgLy8gICBHTF9PRVNfdmVydGV4X2FycmF5X29iamVjdAorICAgIC8vICAgR0xfQU5HTEVfdHJh
bnNsYXRlZF9zaGFkZXJfc291cmNlCiAKICAgICAvLyBUYWtlcyBmdWxsIG5hbWUgb2YgZXh0ZW5z
aW9uOyBmb3IgZXhhbXBsZSwKICAgICAvLyAiR0xfRVhUX3RleHR1cmVfZm9ybWF0X0JHUkE4ODg4
Ii4KQEAgLTEwMyw2ICsxMDQsOSBAQCBwdWJsaWM6CiAgICAgICAgIAogICAgICAgICAvLyBHTF9P
RVNfdmVydGV4X2FycmF5X29iamVjdCBuYW1lcwogICAgICAgICBWRVJURVhfQVJSQVlfQklORElO
R19PRVMgPSAweDg1QjUsCisKKyAgICAgICAgLy8gR0xfQU5HTEVfdHJhbnNsYXRlZF9zaGFkZXJf
c291cmNlCisgICAgICAgIFRSQU5TTEFURURfU0hBREVSX1NPVVJDRV9MRU5HVEhfQU5HTEUgPSAw
eDkzQTAsCiAgICAgfTsKIAogICAgIC8vIEdMX0FSQl9yb2J1c3RuZXNzCkBAIC0xMjUsNiArMTI5
LDkgQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBkZWxldGVWZXJ0ZXhBcnJheU9FUyhQbGF0
Zm9ybTNET2JqZWN0KSA9IDA7CiAgICAgdmlydHVhbCBHQzNEYm9vbGVhbiBpc1ZlcnRleEFycmF5
T0VTKFBsYXRmb3JtM0RPYmplY3QpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgYmluZFZlcnRleEFy
cmF5T0VTKFBsYXRmb3JtM0RPYmplY3QpID0gMDsKKworICAgIC8vIEdMX0FOR0xFX3RyYW5zbGF0
ZWRfc2hhZGVyX3NvdXJjZQorICAgIHZpcnR1YWwgdm9pZCBnZXRUcmFuc2xhdGVkU2hhZGVyU291
cmNlQU5HTEUoUGxhdGZvcm0zRE9iamVjdCBzaGFkZXIsIEdDM0RzaXplaSBidWZTaXplLCBHQzNE
c2l6ZWkqIGxlbmd0aCwgR0MzRGNoYXIqIHNvdXJjZSkgPSAwOwogfTsKIAogfSAvLyBuYW1lc3Bh
Y2UgV2ViQ29yZQpJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhp
Y3NUeXBlczNELmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvR3JhcGhpY3NUeXBlczNELmgJKHJldmlzaW9uIDk3MzUyKQorKysgU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NUeXBlczNELmgJKHdvcmtpbmcgY29weSkKQEAgLTQ0
LDYgKzQ0LDcgQEAgdHlwZWRlZiBmbG9hdCBHQzNEZmxvYXQ7CiB0eXBlZGVmIGZsb2F0IEdDM0Rj
bGFtcGY7CiB0eXBlZGVmIHNpZ25lZCBsb25nIGludCBHQzNEaW50cHRyOwogdHlwZWRlZiBzaWdu
ZWQgbG9uZyBpbnQgR0MzRHNpemVpcHRyOwordHlwZWRlZiBjaGFyIEdDM0RjaGFyOwogCiB0eXBl
ZGVmIEdDM0R1aW50IFBsYXRmb3JtM0RPYmplY3Q7CiAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0V4dGVuc2lvbnMzRENocm9taXVtLmgKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vRXh0ZW5zaW9u
czNEQ2hyb21pdW0uaAkocmV2aXNpb24gOTczNTIpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9jaHJvbWl1bS9FeHRlbnNpb25zM0RDaHJvbWl1bS5oCSh3b3JraW5nIGNvcHkp
CkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMCBHb29nbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDExIEdvb2dsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTU2
LDYgKzU2LDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBkZWxldGVWZXJ0ZXhBcnJheU9F
UyhQbGF0Zm9ybTNET2JqZWN0KTsKICAgICB2aXJ0dWFsIEdDM0Rib29sZWFuIGlzVmVydGV4QXJy
YXlPRVMoUGxhdGZvcm0zRE9iamVjdCk7CiAgICAgdmlydHVhbCB2b2lkIGJpbmRWZXJ0ZXhBcnJh
eU9FUyhQbGF0Zm9ybTNET2JqZWN0KTsKKyAgICB2aXJ0dWFsIHZvaWQgZ2V0VHJhbnNsYXRlZFNo
YWRlclNvdXJjZUFOR0xFKFBsYXRmb3JtM0RPYmplY3Qgc2hhZGVyLCBHQzNEc2l6ZWkgYnVmU2l6
ZSwgR0MzRHNpemVpKiBsZW5ndGgsIEdDM0RjaGFyKiBzb3VyY2UpOwogCiAgICAgZW51bSB7CiAg
ICAgICAgIC8vIEdMX0NIUk9NSVVNX21hcF9zdWIgKGVudW1zIGluaGVyaXRlZCBmcm9tIEdMX0FS
Ql92ZXJ0ZXhfYnVmZmVyX29iamVjdCkKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL29wZW5nbC9FeHRlbnNpb25zM0RPcGVuR0wuY3BwCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL29wZW5nbC9FeHRlbnNpb25zM0RPcGVuR0wuY3Bw
CShyZXZpc2lvbiA5NzM1MikKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL29w
ZW5nbC9FeHRlbnNpb25zM0RPcGVuR0wuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEsNSBA
QAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMCBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgorICogQ29weXJpZ2h0IChDKSAyMDExIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTE5Myw2ICsxOTMsMTEgQEAg
dm9pZCBFeHRlbnNpb25zM0RPcGVuR0w6OmJpbmRWZXJ0ZXhBcnJheQogI2VuZGlmCiB9CiAKK3Zv
aWQgZ2V0VHJhbnNsYXRlZFNoYWRlclNvdXJjZUFOR0xFKFBsYXRmb3JtM0RPYmplY3Qgc2hhZGVy
LCBHQzNEc2l6ZWkgYnVmU2l6ZSwgR0MzRHNpemVpKiBsZW5ndGgsIEdDM0RjaGFyKiBzb3VyY2Up
Cit7CisgICAgLy8gRklYTUU6IGltcGxlbWVudCB0aGlzIGZ1bmN0aW9uIGFuZCBhZGQgR0xfQU5H
TEVfdHJhbnNsYXRlZF9zaGFkZXJfc291cmNlIGluIHN1cHBvcnRzKCkuCit9CisKIH0gLy8gbmFt
ZXNwYWNlIFdlYkNvcmUKIAogI2VuZGlmIC8vIEVOQUJMRShXRUJHTCkKSW5kZXg6IFNvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL29wZW5nbC9FeHRlbnNpb25zM0RPcGVuR0wuaAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wvRXh0ZW5z
aW9uczNET3BlbkdMLmgJKHJldmlzaW9uIDk3MzUyKQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3Mvb3BlbmdsL0V4dGVuc2lvbnMzRE9wZW5HTC5oCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMCBHb29nbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDExIEdvb2dsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTUwLDYg
KzUwLDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBkZWxldGVWZXJ0ZXhBcnJheU9FUyhQ
bGF0Zm9ybTNET2JqZWN0KTsKICAgICB2aXJ0dWFsIEdDM0Rib29sZWFuIGlzVmVydGV4QXJyYXlP
RVMoUGxhdGZvcm0zRE9iamVjdCk7CiAgICAgdmlydHVhbCB2b2lkIGJpbmRWZXJ0ZXhBcnJheU9F
UyhQbGF0Zm9ybTNET2JqZWN0KTsKKyAgICB2aXJ0dWFsIHZvaWQgZ2V0VHJhbnNsYXRlZFNoYWRl
clNvdXJjZUFOR0xFKFBsYXRmb3JtM0RPYmplY3Qgc2hhZGVyLCBHQzNEc2l6ZWkgYnVmU2l6ZSwg
R0MzRHNpemVpKiBsZW5ndGgsIEdDM0RjaGFyKiBzb3VyY2UpOwogCiBwcml2YXRlOgogICAgIC8v
IFRoaXMgY2xhc3Mgb25seSBuZWVkcyB0byBiZSBpbnN0YW50aWF0ZWQgYnkgR3JhcGhpY3NDb250
ZXh0M0QgaW1wbGVtZW50YXRpb25zLgpJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvcXQvRXh0ZW5zaW9uczNEUXQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL3F0L0V4dGVuc2lvbnMzRFF0LmNwcAkocmV2aXNpb24gOTczNTIp
CisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9xdC9FeHRlbnNpb25zM0RRdC5j
cHAJKHdvcmtpbmcgY29weSkKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAy
MDEwIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIw
MTEgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAq
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucwpAQCAtODgsNiArODgsMTAgQEAgdm9pZCBFeHRlbnNpb25zM0RRdDo6YmluZFZl
cnRleEFycmF5T0VTKAogewogfQogCit2b2lkIEV4dGVuc2lvbnMzRFF0OjpnZXRUcmFuc2xhdGVk
U2hhZGVyU291cmNlQU5HTEUoUGxhdGZvcm0zRE9iamVjdCBzaGFkZXIsIEdDM0RzaXplaSBidWZT
aXplLCBHQzNEc2l6ZWkqIGxlbmd0aCwgR0MzRGNoYXIqIHNvdXJjZSkKK3sKK30KKwogfSAvLyBu
YW1lc3BhY2UgV2ViQ29yZQogCiAjZW5kaWYgLy8gRU5BQkxFKFdFQkdMKQpJbmRleDogU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvcXQvRXh0ZW5zaW9uczNEUXQuaAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9xdC9FeHRlbnNpb25zM0RRdC5o
CShyZXZpc2lvbiA5NzM1MikKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3F0
L0V4dGVuc2lvbnMzRFF0LmgJKHdvcmtpbmcgY29weSkKQEAgLTEsNSArMSw1IEBACiAvKgotICog
Q29weXJpZ2h0IChDKSAyMDEwIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBD
b3B5cmlnaHQgKEMpIDIwMTEgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAg
KiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtNDUsNiArNDUsNyBAQCBwdWJsaWM6CiAgICAg
dmlydHVhbCB2b2lkIGRlbGV0ZVZlcnRleEFycmF5T0VTKFBsYXRmb3JtM0RPYmplY3QpOwogICAg
IHZpcnR1YWwgR0MzRGJvb2xlYW4gaXNWZXJ0ZXhBcnJheU9FUyhQbGF0Zm9ybTNET2JqZWN0KTsK
ICAgICB2aXJ0dWFsIHZvaWQgYmluZFZlcnRleEFycmF5T0VTKFBsYXRmb3JtM0RPYmplY3QpOwor
ICAgIHZpcnR1YWwgdm9pZCBnZXRUcmFuc2xhdGVkU2hhZGVyU291cmNlQU5HTEUoUGxhdGZvcm0z
RE9iamVjdCBzaGFkZXIsIEdDM0RzaXplaSBidWZTaXplLCBHQzNEc2l6ZWkqIGxlbmd0aCwgR0Mz
RGNoYXIqIHNvdXJjZSk7CiAKIHByaXZhdGU6CiAgICAgLy8gVGhpcyBjbGFzcyBvbmx5IG5lZWRz
IHRvIGJlIGluc3RhbnRpYXRlZCBieSBHcmFwaGljc0NvbnRleHQzRCBpbXBsZW1lbnRhdGlvbnMu
CkluZGV4OiBTb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwkocmV2aXNpb24gOTczNTIpCisrKyBTb3Vy
Y2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE3
IEBACisyMDExLTEwLTE0ICBaaGVueWFvIE1vICA8em1vQGdvb2dsZS5jb20+CisKKyAgICAgICAg
SW1wbGVtZW50IFdFQkdMX2RlYnVnX3NoYWRlcnMgYW5kIFdFQkdMX2RlYnVnX3JlbmRlcmVyX2lu
Zm8gZXh0ZW5zaW9ucworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9NzAwNzcKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICAqIHB1YmxpYy9XZWJHcmFwaGljc0NvbnRleHQzRC5oOiBBZGRlZCBzdXBwb3J0IGZvciBn
ZXRUcmFuc2xhdGVkU2hhZGVyU291cmNlQU5HTEUuCisgICAgICAgIChXZWJLaXQ6OldlYkdyYXBo
aWNzQ29udGV4dDNEOjpnZXRUcmFuc2xhdGVkU2hhZGVyU291cmNlQU5HTEUpOgorICAgICAgICAq
IHNyYy9FeHRlbnNpb25zM0RDaHJvbWl1bS5jcHA6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6
RXh0ZW5zaW9uczNEQ2hyb21pdW06OmdldFRyYW5zbGF0ZWRTaGFkZXJTb3VyY2VBTkdMRSk6Cisg
ICAgICAgICogc3JjL0dyYXBoaWNzQ29udGV4dDNEQ2hyb21pdW0uY3BwOiBEaXR0by4KKyAgICAg
ICAgKiBzcmMvR3JhcGhpY3NDb250ZXh0M0RQcml2YXRlLmg6IERpdHRvLgorCiAyMDExLTEwLTEy
ICBKb3NlcGggUGVjb3Jhcm8gIDxqb2VwZWNrQHdlYmtpdC5vcmc+CiAKICAgICAgICAgUGFzcyBQ
YXJzZWQgQWNjZXB0IEF0dHJpYnV0ZSBNSU1FIFR5cGVzIHRvIFdlYktpdCBDbGllbnRzCkluZGV4
OiBTb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJHcmFwaGljc0NvbnRleHQzRC5oCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYkdyYXBoaWNzQ29u
dGV4dDNELmgJKHJldmlzaW9uIDk3MzUyKQorKysgU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJs
aWMvV2ViR3JhcGhpY3NDb250ZXh0M0QuaAkod29ya2luZyBjb3B5KQpAQCAtMzY1LDYgKzM2NSwx
MCBAQCBwdWJsaWM6CiAgICAgLy8gc3RhdGUgaXMgc3RpY2t5LCByYXRoZXIgdGhhbiByZXBvcnRl
ZCBvbmx5IG9uY2UuCiAgICAgdmlydHVhbCBXR0MzRGVudW0gZ2V0R3JhcGhpY3NSZXNldFN0YXR1
c0FSQigpIHsgcmV0dXJuIDA7IC8qIEdMX05PX0VSUk9SICovIH0KIAorICAgIC8vIEZJWE1FOiBt
YWtlIHRoaXMgZnVuY3Rpb24gcHVyZSB2aXJ0dWFsIG9uY2UgaXQgaXMgaW1wbGVtZW50ZWQgaW4K
KyAgICAvLyBib3RoIGNvbW1hbmQgYnVmZmVyIHBvcnQgYW5kIGluLXByb2Nlc3MgcG9ydC4KKyAg
ICB2aXJ0dWFsIHZvaWQgZ2V0VHJhbnNsYXRlZFNoYWRlclNvdXJjZUFOR0xFKFdlYkdMSWQgc2hh
ZGVyLCBXR0MzRHNpemVpIGJ1ZlNpemUsIFdHQzNEc2l6ZWkqIGxlbmd0aCwgV0dDM0RjaGFyKiBz
b3VyY2UpIHsgfQorCiAjaWYgV0VCS0lUX1VTSU5HX1NLSUEKICAgICBHckdMSW50ZXJmYWNlKiBj
cmVhdGVHckdMSW50ZXJmYWNlKCk7CiAjZW5kaWYKSW5kZXg6IFNvdXJjZS9XZWJLaXQvY2hyb21p
dW0vc3JjL0V4dGVuc2lvbnMzRENocm9taXVtLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
S2l0L2Nocm9taXVtL3NyYy9FeHRlbnNpb25zM0RDaHJvbWl1bS5jcHAJKHJldmlzaW9uIDk3MzUy
KQorKysgU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvRXh0ZW5zaW9uczNEQ2hyb21pdW0uY3Bw
CSh3b3JraW5nIGNvcHkpCkBAIC0xMTUsNiArMTE1LDExIEBAIHZvaWQgRXh0ZW5zaW9uczNEQ2hy
b21pdW06OmJpbmRWZXJ0ZXhBcnIKIHsKIH0KIAordm9pZCBFeHRlbnNpb25zM0RDaHJvbWl1bTo6
Z2V0VHJhbnNsYXRlZFNoYWRlclNvdXJjZUFOR0xFKFBsYXRmb3JtM0RPYmplY3Qgc2hhZGVyLCBH
QzNEc2l6ZWkgYnVmU2l6ZSwgR0MzRHNpemVpKiBsZW5ndGgsIEdDM0RjaGFyKiBzb3VyY2UpCit7
CisgICAgbV9wcml2YXRlLT5nZXRUcmFuc2xhdGVkU2hhZGVyU291cmNlQU5HTEUoc2hhZGVyLCBi
dWZTaXplLCBsZW5ndGgsIHNvdXJjZSk7Cit9CisKIHZvaWQgRXh0ZW5zaW9uczNEQ2hyb21pdW06
OnNldFN3YXBCdWZmZXJzQ29tcGxldGVDYWxsYmFja0NIUk9NSVVNKFBhc3NPd25QdHI8U3dhcEJ1
ZmZlcnNDb21wbGV0ZUNhbGxiYWNrQ0hST01JVU0+IGNhbGxiYWNrKQogewogICAgIG1fcHJpdmF0
ZS0+c2V0U3dhcEJ1ZmZlcnNDb21wbGV0ZUNhbGxiYWNrQ0hST01JVU0oY2FsbGJhY2spOwpJbmRl
eDogU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvR3JhcGhpY3NDb250ZXh0M0RDaHJvbWl1bS5j
cHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvR3JhcGhpY3NDb250
ZXh0M0RDaHJvbWl1bS5jcHAJKHJldmlzaW9uIDk3MzUyKQorKysgU291cmNlL1dlYktpdC9jaHJv
bWl1bS9zcmMvR3JhcGhpY3NDb250ZXh0M0RDaHJvbWl1bS5jcHAJKHdvcmtpbmcgY29weSkKQEAg
LTg4Nyw2ICs4ODcsOCBAQCBERUxFR0FURV9UT19JTVBMXzUocmVuZGVyYnVmZmVyU3RvcmFnZU11
CiBERUxFR0FURV9UT19JTVBMKHJhdGVMaW1pdE9mZnNjcmVlbkNvbnRleHRDSFJPTUlVTSkKIERF
TEVHQVRFX1RPX0lNUExfUihnZXRHcmFwaGljc1Jlc2V0U3RhdHVzQVJCLCBHQzNEZW51bSkKIAor
REVMRUdBVEVfVE9fSU1QTF80KGdldFRyYW5zbGF0ZWRTaGFkZXJTb3VyY2VBTkdMRSwgUGxhdGZv
cm0zRE9iamVjdCwgR0MzRHNpemVpLCBHQzNEc2l6ZWkqLCBHQzNEY2hhciopCisKIC8vLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLQogLy8gR3JhcGhpY3NDb250ZXh0M0QKIC8vCkluZGV4OiBTb3VyY2UvV2ViS2l0L2No
cm9taXVtL3NyYy9HcmFwaGljc0NvbnRleHQzRFByaXZhdGUuaAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvV2ViS2l0L2Nocm9taXVtL3NyYy9HcmFwaGljc0NvbnRleHQzRFByaXZhdGUuaAkocmV2aXNp
b24gOTczNTIpCisrKyBTb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9HcmFwaGljc0NvbnRleHQz
RFByaXZhdGUuaAkod29ya2luZyBjb3B5KQpAQCAtMzAzLDYgKzMwMyw5IEBAIHB1YmxpYzoKICAg
ICAvLyBHTF9BUkJfcm9idXN0bmVzcwogICAgIEdDM0RlbnVtIGdldEdyYXBoaWNzUmVzZXRTdGF0
dXNBUkIoKTsKIAorICAgIC8vIEdMX0FOR0xFX3RyYW5zbGF0ZWRfc2hhZGVyX3NvdXJjZQorICAg
IHZvaWQgZ2V0VHJhbnNsYXRlZFNoYWRlclNvdXJjZUFOR0xFKFBsYXRmb3JtM0RPYmplY3Qgc2hh
ZGVyLCBHQzNEc2l6ZWkgYnVmU2l6ZSwgR0MzRHNpemVpKiBsZW5ndGgsIEdDM0RjaGFyKiBzb3Vy
Y2UpOworCiBwcml2YXRlOgogICAgIEdyYXBoaWNzQ29udGV4dDNEUHJpdmF0ZShXZWJLaXQ6Oldl
YlZpZXdJbXBsKiwgUGFzc093blB0cjxXZWJLaXQ6OldlYkdyYXBoaWNzQ29udGV4dDNEPiwgR3Jh
cGhpY3NDb250ZXh0M0Q6OkF0dHJpYnV0ZXMpOwogCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>111066</attachid>
            <date>2011-10-14 13:23:23 -0700</date>
            <delta_ts>2011-10-14 14:30:30 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-70077-20111014132322.patch</filename>
            <type>text/plain</type>
            <size>38722</size>
            <attacher name="Zhenyao Mo">zmo</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDk3NDk3KQorKysgU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsNDcgQEAKKzIwMTEtMTAtMTQgIFpoZW55YW8g
TW8gIDx6bW9AZ29vZ2xlLmNvbT4KKworICAgICAgICBJbXBsZW1lbnQgV0VCR0xfZGVidWdfc2hh
ZGVycyBhbmQgV0VCR0xfZGVidWdfcmVuZGVyZXJfaW5mbyBleHRlbnNpb25zCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03MDA3NworCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogV2ViQ29yZS5neXBpOiBhZGRl
ZCBuZXcgZXh0ZW5zaW9uIGNsYXNzIGZpbGVzLgorICAgICAgICAqIGJpbmRpbmdzL2pzL0pTV2Vi
R0xSZW5kZXJpbmdDb250ZXh0Q3VzdG9tLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OnRvSlMpOiBI
YW5kbGVzIHR3byBuZXcgZXh0ZW5zaW9ucy4KKyAgICAgICAgKiBiaW5kaW5ncy92OC9jdXN0b20v
VjhXZWJHTFJlbmRlcmluZ0NvbnRleHRDdXN0b20uY3BwOgorICAgICAgICAoV2ViQ29yZTo6dG9W
OE9iamVjdCk6IERpdHRvLgorICAgICAgICAqIGh0bWwvY2FudmFzL1dlYkdMRGVidWdSZW5kZXJl
ckluZm8uY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OldlYkdMRGVidWdSZW5kZXJlcklu
Zm86OldlYkdMRGVidWdSZW5kZXJlckluZm8pOgorICAgICAgICAoV2ViQ29yZTo6V2ViR0xEZWJ1
Z1JlbmRlcmVySW5mbzo6fldlYkdMRGVidWdSZW5kZXJlckluZm8pOgorICAgICAgICAoV2ViQ29y
ZTo6V2ViR0xEZWJ1Z1JlbmRlcmVySW5mbzo6Z2V0TmFtZSk6CisgICAgICAgIChXZWJDb3JlOjpX
ZWJHTERlYnVnUmVuZGVyZXJJbmZvOjpjcmVhdGUpOgorICAgICAgICAqIGh0bWwvY2FudmFzL1dl
YkdMRGVidWdSZW5kZXJlckluZm8uaDogQWRkZWQuCisgICAgICAgICogaHRtbC9jYW52YXMvV2Vi
R0xEZWJ1Z1JlbmRlcmVySW5mby5pZGw6IEFkZGVkLgorICAgICAgICAqIGh0bWwvY2FudmFzL1dl
YkdMRGVidWdTaGFkZXJzLmNwcDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpXZWJHTERlYnVn
U2hhZGVyczo6V2ViR0xEZWJ1Z1NoYWRlcnMpOgorICAgICAgICAoV2ViQ29yZTo6V2ViR0xEZWJ1
Z1NoYWRlcnM6On5XZWJHTERlYnVnU2hhZGVycyk6CisgICAgICAgIChXZWJDb3JlOjpXZWJHTERl
YnVnU2hhZGVyczo6Z2V0TmFtZSk6CisgICAgICAgIChXZWJDb3JlOjpXZWJHTERlYnVnU2hhZGVy
czo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OldlYkdMRGVidWdTaGFkZXJzOjpnZXRUcmFu
c2xhdGVkU2hhZGVyU291cmNlKToKKyAgICAgICAgKiBodG1sL2NhbnZhcy9XZWJHTERlYnVnU2hh
ZGVycy5oOiBBZGRlZC4KKyAgICAgICAgKiBodG1sL2NhbnZhcy9XZWJHTERlYnVnU2hhZGVycy5p
ZGw6IEFkZGVkLgorICAgICAgICAqIGh0bWwvY2FudmFzL1dlYkdMRXh0ZW5zaW9uLmg6CisgICAg
ICAgICogaHRtbC9jYW52YXMvV2ViR0xSZW5kZXJpbmdDb250ZXh0LmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OldlYkdMUmVuZGVyaW5nQ29udGV4dDo6YWxsb3dQcml2aWxlZ2VkRXh0ZW5zaW9ucyk6
IFRvIGJlIGltcGxlbWVudGVkIC0gZGVjaWRpbmcgd2hldGhlciB0aGUgdHdvIGV4dGVuc2lvbnMg
c2hvdWxkIGJlIGFsbG93ZWQgb3Igbm90LgorICAgICAgICAoV2ViQ29yZTo6V2ViR0xSZW5kZXJp
bmdDb250ZXh0OjpnZXRFeHRlbnNpb24pOiBIYW5kbGVzIHR3byBuZXcgZXh0ZW5zaW9ucy4KKyAg
ICAgICAgKFdlYkNvcmU6OldlYkdMUmVuZGVyaW5nQ29udGV4dDo6Z2V0UGFyYW1ldGVyKTogSGFu
ZGxlcyBVTk1BU0tFRF9WRU5ET1JfV0VCR0wgLyBVTk1BU0tFRF9SRU5ERVJFUl9XRUJHTAorICAg
ICAgICAoV2ViQ29yZTo6V2ViR0xSZW5kZXJpbmdDb250ZXh0OjpnZXRTdXBwb3J0ZWRFeHRlbnNp
b25zKTogSGFuZGxlcyB0d28gbmV3IGV4dGVuc2lvbnMuCisgICAgICAgICogaHRtbC9jYW52YXMv
V2ViR0xSZW5kZXJpbmdDb250ZXh0Lmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvRXh0
ZW5zaW9uczNELmg6IERpdHRvLgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNz
VHlwZXMzRC5oOiBBZGQgR0MzRGNoYXIuCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2hy
b21pdW0vRXh0ZW5zaW9uczNEQ2hyb21pdW0uaDogSGFuZGxlcyB0d28gbmV3IGV4dGVuc2lvbnMu
CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0V4dGVuc2lvbnMzRE9wZW5HTC5j
cHA6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6Z2V0VHJhbnNsYXRlZFNoYWRlclNvdXJjZUFO
R0xFKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wvRXh0ZW5zaW9uczNET3Bl
bkdMLmg6IERpdHRvLgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL3F0L0V4dGVuc2lvbnMz
RFF0LmNwcDogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpFeHRlbnNpb25zM0RRdDo6Z2V0VHJh
bnNsYXRlZFNoYWRlclNvdXJjZUFOR0xFKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9x
dC9FeHRlbnNpb25zM0RRdC5oOiBEaXR0by4KKwogMjAxMS0xMC0xNCAgRGFuaWVsIENoZW5nICA8
ZGNoZW5nQGNocm9taXVtLm9yZz4KIAogICAgICAgICBDb250ZXh0LWF3YXJlIEhUTUwgcGFzdGUg
Zm9yIENocm9taXVtCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpCShyZXZpc2lvbiA5NzQ5NykKKysrIFNv
dXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQkod29ya2luZyBjb3B5KQpAQCAtMTM2Miw2ICsxMzYy
LDggQEAKICAgICAgICAgICAgICdodG1sL2NhbnZhcy9XZWJHTEJ1ZmZlci5pZGwnLAogICAgICAg
ICAgICAgJ2h0bWwvY2FudmFzL1dlYkdMQ29udGV4dEF0dHJpYnV0ZXMuaWRsJywKICAgICAgICAg
ICAgICdodG1sL2NhbnZhcy9XZWJHTENvbnRleHRFdmVudC5pZGwnLAorICAgICAgICAgICAgJ2h0
bWwvY2FudmFzL1dlYkdMRGVidWdSZW5kZXJlckluZm8uaWRsJywKKyAgICAgICAgICAgICdodG1s
L2NhbnZhcy9XZWJHTERlYnVnU2hhZGVycy5pZGwnLAogICAgICAgICAgICAgJ2h0bWwvY2FudmFz
L1dlYkdMRnJhbWVidWZmZXIuaWRsJywKICAgICAgICAgICAgICdodG1sL2NhbnZhcy9XZWJHTFBy
b2dyYW0uaWRsJywKICAgICAgICAgICAgICdodG1sL2NhbnZhcy9XZWJHTFJlbmRlcmJ1ZmZlci5p
ZGwnLApAQCAtNTY2Miw2ICs1NjY0LDEwIEBACiAgICAgICAgICAgICAnaHRtbC9jYW52YXMvV2Vi
R0xDb250ZXh0QXR0cmlidXRlcy5oJywKICAgICAgICAgICAgICdodG1sL2NhbnZhcy9XZWJHTENv
bnRleHRFdmVudC5jcHAnLAogICAgICAgICAgICAgJ2h0bWwvY2FudmFzL1dlYkdMQ29udGV4dEV2
ZW50LmgnLAorICAgICAgICAgICAgJ2h0bWwvY2FudmFzL1dlYkdMRGVidWdSZW5kZXJlckluZm8u
Y3BwJywKKyAgICAgICAgICAgICdodG1sL2NhbnZhcy9XZWJHTERlYnVnUmVuZGVyZXJJbmZvLmgn
LAorICAgICAgICAgICAgJ2h0bWwvY2FudmFzL1dlYkdMRGVidWdTaGFkZXJzLmNwcCcsCisgICAg
ICAgICAgICAnaHRtbC9jYW52YXMvV2ViR0xEZWJ1Z1NoYWRlcnMuaCcsCiAgICAgICAgICAgICAn
aHRtbC9jYW52YXMvV2ViR0xFeHRlbnNpb24uY3BwJywKICAgICAgICAgICAgICdodG1sL2NhbnZh
cy9XZWJHTEV4dGVuc2lvbi5oJywKICAgICAgICAgICAgICdodG1sL2NhbnZhcy9XZWJHTEZyYW1l
YnVmZmVyLmNwcCcsCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1dlYkdMUmVu
ZGVyaW5nQ29udGV4dEN1c3RvbS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3MvanMvSlNXZWJHTFJlbmRlcmluZ0NvbnRleHRDdXN0b20uY3BwCShyZXZpc2lvbiA5NzQ5
NykKKysrIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTV2ViR0xSZW5kZXJpbmdDb250ZXh0
Q3VzdG9tLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNTgsNiArNTgsOCBAQAogI2luY2x1ZGUgIk9F
U1ZlcnRleEFycmF5T2JqZWN0LmgiCiAjaW5jbHVkZSAiV2ViR0xWZXJ0ZXhBcnJheU9iamVjdE9F
Uy5oIgogI2luY2x1ZGUgIldlYkdMQnVmZmVyLmgiCisjaW5jbHVkZSAiV2ViR0xEZWJ1Z1JlbmRl
cmVySW5mby5oIgorI2luY2x1ZGUgIldlYkdMRGVidWdTaGFkZXJzLmgiCiAjaW5jbHVkZSAiRmxv
YXQzMkFycmF5LmgiCiAjaW5jbHVkZSAiV2ViR0xFeHRlbnNpb24uaCIKICNpbmNsdWRlICJXZWJH
TEZyYW1lYnVmZmVyLmgiCkBAIC0xODcsNiArMTg5LDEwIEBAIHN0YXRpYyBKU1ZhbHVlIHRvSlMo
RXhlY1N0YXRlKiBleGVjLCBKU0QKICAgICAgICAgcmV0dXJuIHRvSlMoZXhlYywgZ2xvYmFsT2Jq
ZWN0LCBzdGF0aWNfY2FzdDxPRVNUZXh0dXJlRmxvYXQqPihleHRlbnNpb24pKTsKICAgICBjYXNl
IFdlYkdMRXh0ZW5zaW9uOjpPRVNWZXJ0ZXhBcnJheU9iamVjdE5hbWU6CiAgICAgICAgIHJldHVy
biB0b0pTKGV4ZWMsIGdsb2JhbE9iamVjdCwgc3RhdGljX2Nhc3Q8T0VTVmVydGV4QXJyYXlPYmpl
Y3QqPihleHRlbnNpb24pKTsKKyAgICBjYXNlIFdlYkdMRXh0ZW5zaW9uOjpXZWJHTERlYnVnUmVu
ZGVyZXJJbmZvTmFtZToKKyAgICAgICAgcmV0dXJuIHRvSlMoZXhlYywgZ2xvYmFsT2JqZWN0LCBz
dGF0aWNfY2FzdDxXZWJHTERlYnVnUmVuZGVyZXJJbmZvKj4oZXh0ZW5zaW9uKSk7CisgICAgY2Fz
ZSBXZWJHTEV4dGVuc2lvbjo6V2ViR0xEZWJ1Z1NoYWRlcnNOYW1lOgorICAgICAgICByZXR1cm4g
dG9KUyhleGVjLCBnbG9iYWxPYmplY3QsIHN0YXRpY19jYXN0PFdlYkdMRGVidWdTaGFkZXJzKj4o
ZXh0ZW5zaW9uKSk7CiAgICAgfQogICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwogICAgIHJldHVy
biBqc051bGwoKTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9WOFdl
YkdMUmVuZGVyaW5nQ29udGV4dEN1c3RvbS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNv
cmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4V2ViR0xSZW5kZXJpbmdDb250ZXh0Q3VzdG9tLmNwcAko
cmV2aXNpb24gOTc0OTcpCisrKyBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0b20vVjhX
ZWJHTFJlbmRlcmluZ0NvbnRleHRDdXN0b20uY3BwCSh3b3JraW5nIGNvcHkpCkBAIC01Niw2ICs1
Niw4IEBACiAjaW5jbHVkZSAiVjhVaW50MzJBcnJheS5oIgogI2luY2x1ZGUgIlY4VWludDhBcnJh
eS5oIgogI2luY2x1ZGUgIlY4V2ViR0xCdWZmZXIuaCIKKyNpbmNsdWRlICJWOFdlYkdMRGVidWdS
ZW5kZXJlckluZm8uaCIKKyNpbmNsdWRlICJWOFdlYkdMRGVidWdTaGFkZXJzLmgiCiAjaW5jbHVk
ZSAiVjhXZWJHTEZyYW1lYnVmZmVyLmgiCiAjaW5jbHVkZSAiVjhXZWJHTFByb2dyYW0uaCIKICNp
bmNsdWRlICJWOFdlYkdMUmVuZGVyYnVmZmVyLmgiCkBAIC0xODIsNiArMTg0LDE0IEBAIHN0YXRp
YyB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gdG9WOE9iamVjdCgKICAgICAgICAgZXh0ZW5zaW9uT2Jq
ZWN0ID0gdG9WOChzdGF0aWNfY2FzdDxPRVNWZXJ0ZXhBcnJheU9iamVjdCo+KGV4dGVuc2lvbikp
OwogICAgICAgICByZWZlcmVuY2VOYW1lID0gIm9lc1ZlcnRleEFycmF5T2JqZWN0TmFtZSI7CiAg
ICAgICAgIGJyZWFrOworICAgIGNhc2UgV2ViR0xFeHRlbnNpb246OldlYkdMRGVidWdSZW5kZXJl
ckluZm9OYW1lOgorICAgICAgICBleHRlbnNpb25PYmplY3QgPSB0b1Y4KHN0YXRpY19jYXN0PFdl
YkdMRGVidWdSZW5kZXJlckluZm8qPihleHRlbnNpb24pKTsKKyAgICAgICAgcmVmZXJlbmNlTmFt
ZSA9ICJ3ZWJHTERlYnVnUmVuZGVyZXJJbmZvTmFtZSI7CisgICAgICAgIGJyZWFrOworICAgIGNh
c2UgV2ViR0xFeHRlbnNpb246OldlYkdMRGVidWdTaGFkZXJzTmFtZToKKyAgICAgICAgZXh0ZW5z
aW9uT2JqZWN0ID0gdG9WOChzdGF0aWNfY2FzdDxXZWJHTERlYnVnU2hhZGVycyo+KGV4dGVuc2lv
bikpOworICAgICAgICByZWZlcmVuY2VOYW1lID0gIndlYkdMRGVidWdTaGFkZXJzTmFtZSI7Cisg
ICAgICAgIGJyZWFrOwogICAgIH0KICAgICBBU1NFUlQoIWV4dGVuc2lvbk9iamVjdC5Jc0VtcHR5
KCkpOwogICAgIFY4RE9NV3JhcHBlcjo6c2V0TmFtZWRIaWRkZW5SZWZlcmVuY2UoY29udGV4dE9i
amVjdCwgcmVmZXJlbmNlTmFtZSwgZXh0ZW5zaW9uT2JqZWN0KTsKSW5kZXg6IFNvdXJjZS9XZWJD
b3JlL2h0bWwvY2FudmFzL1dlYkdMRGVidWdSZW5kZXJlckluZm8uY3BwCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMRGVidWdSZW5kZXJlckluZm8uY3BwCShy
ZXZpc2lvbiAwKQorKysgU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xEZWJ1Z1JlbmRl
cmVySW5mby5jcHAJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsNTcgQEAKKy8qCisgKiBDb3B5cmln
aHQgKEMpIDIwMTEgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqCisgKiAxLiAgUmVkaXN0cmlidXRp
b25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIuCisgKiAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k
dWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICAgZG9jdW1l
bnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1
dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIEFORCBJVFMg
Q09OVFJJQlVUT1JTICJBUyBJUyIgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJB
TlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAorICogV0FS
UkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQ
VVJQT1NFIEFSRQorICogRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgT1IgSVRT
IENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWQorICogRElSRUNULCBJTkRJUkVDVCwgSU5D
SURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMKKyAq
IChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVU
RSBHT09EUyBPUiBTRVJWSUNFUzsKKyAqIExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBP
UiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORAorICogT04gQU5ZIFRI
RU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFks
IE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcg
SU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRgorICogVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBB
RFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVk
ZSAiY29uZmlnLmgiCisKKyNpZiBFTkFCTEUoV0VCR0wpCisKKyNpbmNsdWRlICJXZWJHTERlYnVn
UmVuZGVyZXJJbmZvLmgiCisKKyNpbmNsdWRlICJXZWJHTFJlbmRlcmluZ0NvbnRleHQuaCIKKwor
bmFtZXNwYWNlIFdlYkNvcmUgeworCitXZWJHTERlYnVnUmVuZGVyZXJJbmZvOjpXZWJHTERlYnVn
UmVuZGVyZXJJbmZvKFdlYkdMUmVuZGVyaW5nQ29udGV4dCogY29udGV4dCkKKyAgICA6IFdlYkdM
RXh0ZW5zaW9uKGNvbnRleHQpCit7Cit9CisKK1dlYkdMRGVidWdSZW5kZXJlckluZm86On5XZWJH
TERlYnVnUmVuZGVyZXJJbmZvKCkKK3sKK30KKworV2ViR0xFeHRlbnNpb246OkV4dGVuc2lvbk5h
bWUgV2ViR0xEZWJ1Z1JlbmRlcmVySW5mbzo6Z2V0TmFtZSgpIGNvbnN0Cit7CisgICAgcmV0dXJu
IFdlYkdMRGVidWdSZW5kZXJlckluZm9OYW1lOworfQorCitQYXNzT3duUHRyPFdlYkdMRGVidWdS
ZW5kZXJlckluZm8+IFdlYkdMRGVidWdSZW5kZXJlckluZm86OmNyZWF0ZShXZWJHTFJlbmRlcmlu
Z0NvbnRleHQqIGNvbnRleHQpCit7CisgICAgcmV0dXJuIGFkb3B0UHRyKG5ldyBXZWJHTERlYnVn
UmVuZGVyZXJJbmZvKGNvbnRleHQpKTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisj
ZW5kaWYgLy8gRU5BQkxFKFdFQkdMKQoKUHJvcGVydHkgY2hhbmdlcyBvbjogU291cmNlL1dlYkNv
cmUvaHRtbC9jYW52YXMvV2ViR0xEZWJ1Z1JlbmRlcmVySW5mby5jcHAKX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpBZGRl
ZDogc3ZuOmVvbC1zdHlsZQogICArIExGCgpJbmRleDogU291cmNlL1dlYkNvcmUvaHRtbC9jYW52
YXMvV2ViR0xEZWJ1Z1JlbmRlcmVySW5mby5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3Jl
L2h0bWwvY2FudmFzL1dlYkdMRGVidWdSZW5kZXJlckluZm8uaAkocmV2aXNpb24gMCkKKysrIFNv
dXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMRGVidWdSZW5kZXJlckluZm8uaAkocmV2aXNp
b24gMCkKQEAgLTAsMCArMSw1MiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMSBHb29nbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
CisgKiBhcmUgbWV0OgorICoKKyAqIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUg
bXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuICBSZWRp
c3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhl
ciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMg
U09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgQU5EIElUUyBDT05UUklCVVRPUlMgIkFTIElT
IiBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVECisgKiBXQVJSQU5USUVTIE9GIE1FUkNIQU5U
QUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCisgKiBESVND
TEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBPUiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJ
QUJMRSBGT1IgQU5ZCisgKiBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBF
WEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUworICogKElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VT
OworICogTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQ
VElPTikgSE9XRVZFUiBDQVVTRUQgQU5ECisgKiBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBU
SEUgVVNFIE9GCisgKiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5kZWYgV2ViR0xEZWJ1Z1JlbmRlcmVy
SW5mb19oCisjZGVmaW5lIFdlYkdMRGVidWdSZW5kZXJlckluZm9faAorCisjaW5jbHVkZSAiV2Vi
R0xFeHRlbnNpb24uaCIKKyNpbmNsdWRlIDx3dGYvUGFzc093blB0ci5oPgorCituYW1lc3BhY2Ug
V2ViQ29yZSB7CisKK2NsYXNzIFdlYkdMRGVidWdSZW5kZXJlckluZm8gOiBwdWJsaWMgV2ViR0xF
eHRlbnNpb24geworcHVibGljOgorICAgIGVudW0gRW51bVR5cGUgeworICAgICAgICBVTk1BU0tF
RF9WRU5ET1JfV0VCR0wgPSAweDkyNDUsCisgICAgICAgIFVOTUFTS0VEX1JFTkRFUkVSX1dFQkdM
ID0gMHg5MjQ2CisgICAgfTsKKworICAgIHN0YXRpYyBQYXNzT3duUHRyPFdlYkdMRGVidWdSZW5k
ZXJlckluZm8+IGNyZWF0ZShXZWJHTFJlbmRlcmluZ0NvbnRleHQqKTsKKworICAgIHZpcnR1YWwg
fldlYkdMRGVidWdSZW5kZXJlckluZm8oKTsKKyAgICB2aXJ0dWFsIEV4dGVuc2lvbk5hbWUgZ2V0
TmFtZSgpIGNvbnN0OworCitwcml2YXRlOgorICAgIFdlYkdMRGVidWdSZW5kZXJlckluZm8oV2Vi
R0xSZW5kZXJpbmdDb250ZXh0Kik7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNl
bmRpZiAvLyBXZWJHTERlYnVnUmVuZGVyZXJJbmZvX2gKClByb3BlcnR5IGNoYW5nZXMgb246IFNv
dXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMRGVidWdSZW5kZXJlckluZm8uaApfX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fCkFkZGVkOiBzdm46ZW9sLXN0eWxlCiAgICsgTEYKCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9o
dG1sL2NhbnZhcy9XZWJHTERlYnVnUmVuZGVyZXJJbmZvLmlkbAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTERlYnVnUmVuZGVyZXJJbmZvLmlkbAkocmV2aXNp
b24gMCkKKysrIFNvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMRGVidWdSZW5kZXJlcklu
Zm8uaWRsCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDM2IEBACisvKgorICogQ29weXJpZ2h0IChD
KSAyMDExIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKgorICogMS4gIFJlZGlzdHJpYnV0aW9ucyBv
ZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
LgorICogMi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgIGRvY3VtZW50YXRp
b24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24u
CisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBBTkQgSVRTIENPTlRS
SUJVVE9SUyAiQVMgSVMiIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVT
LCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQKKyAqIFdBUlJBTlRJ
RVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9T
RSBBUkUKKyAqIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIE9SIElUUyBDT05U
UklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkKKyAqIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5U
QUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTCisgKiAoSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09P
RFMgT1IgU0VSVklDRVM7CisgKiBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVT
SU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQKKyAqIE9OIEFOWSBUSEVPUlkg
T0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBU
T1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFO
WSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YKKyAqIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNF
RCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworbW9kdWxlIGh0bWwg
eworICAgIGludGVyZmFjZSBbCisgICAgICAgIENvbmRpdGlvbmFsPVdFQkdMLAorICAgICAgICBH
ZW5lcmF0ZUlzUmVhY2hhYmxlPUltcGxDb250ZXh0LAorICAgICAgICBPbWl0Q29uc3RydWN0b3Is
CisgICAgICAgIERvbnRDaGVja0VudW1zCisgICAgXSBXZWJHTERlYnVnUmVuZGVyZXJJbmZvIHsK
KyAgICAgICAgY29uc3QgdW5zaWduZWQgaW50IFVOTUFTS0VEX1ZFTkRPUl9XRUJHTCA9IDB4OTI0
NTsKKyAgICAgICAgY29uc3QgdW5zaWduZWQgaW50IFVOTUFTS0VEX1JFTkRFUkVSX1dFQkdMID0g
MHg5MjQ2OworICAgIH07Cit9CgpQcm9wZXJ0eSBjaGFuZ2VzIG9uOiBTb3VyY2UvV2ViQ29yZS9o
dG1sL2NhbnZhcy9XZWJHTERlYnVnUmVuZGVyZXJJbmZvLmlkbApfX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCkFkZGVkOiBz
dm46ZW9sLXN0eWxlCiAgICsgTEYKCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9X
ZWJHTERlYnVnU2hhZGVycy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvaHRtbC9j
YW52YXMvV2ViR0xEZWJ1Z1NoYWRlcnMuY3BwCShyZXZpc2lvbiAwKQorKysgU291cmNlL1dlYkNv
cmUvaHRtbC9jYW52YXMvV2ViR0xEZWJ1Z1NoYWRlcnMuY3BwCShyZXZpc2lvbiAwKQpAQCAtMCww
ICsxLDg2IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDExIEdvb2dsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6
CisgKgorICogMS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gIFJlZGlzdHJpYnV0aW9ucyBp
biBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyIGluIHRoZQorICogICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBw
cm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQ
Uk9WSURFRCBCWSBBUFBMRSBBTkQgSVRTIENPTlRSSUJVVE9SUyAiQVMgSVMiIEFORCBBTlkKKyAq
IEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywgVEhFIElNUExJRUQKKyAqIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBG
SVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKKyAqIERJU0NMQUlNRUQuIElOIE5P
IEVWRU5UIFNIQUxMIEFQUExFIE9SIElUUyBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkK
KyAqIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1Ig
Q09OU0VRVUVOVElBTCBEQU1BR0VTCisgKiAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
IFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7CisgKiBMT1NTIE9G
IFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVS
IENBVVNFRCBBTkQKKyAqIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENP
TlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YKKyAq
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VD
SCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorCisjaWYgRU5BQkxFKFdFQkdM
KQorCisjaW5jbHVkZSAiV2ViR0xEZWJ1Z1NoYWRlcnMuaCIKKworI2luY2x1ZGUgIkV4dGVuc2lv
bnMzRC5oIgorI2luY2x1ZGUgIldlYkdMUmVuZGVyaW5nQ29udGV4dC5oIgorI2luY2x1ZGUgIldl
YkdMU2hhZGVyLmgiCisKKyNpbmNsdWRlIDx3dGYvT3duQXJyYXlQdHIuaD4KKworbmFtZXNwYWNl
IFdlYkNvcmUgeworCitXZWJHTERlYnVnU2hhZGVyczo6V2ViR0xEZWJ1Z1NoYWRlcnMoV2ViR0xS
ZW5kZXJpbmdDb250ZXh0KiBjb250ZXh0KQorICAgIDogV2ViR0xFeHRlbnNpb24oY29udGV4dCkK
K3sKK30KKworV2ViR0xEZWJ1Z1NoYWRlcnM6On5XZWJHTERlYnVnU2hhZGVycygpCit7Cit9CisK
K1dlYkdMRXh0ZW5zaW9uOjpFeHRlbnNpb25OYW1lIFdlYkdMRGVidWdTaGFkZXJzOjpnZXROYW1l
KCkgY29uc3QKK3sKKyAgICByZXR1cm4gV2ViR0xEZWJ1Z1NoYWRlcnNOYW1lOworfQorCitQYXNz
T3duUHRyPFdlYkdMRGVidWdTaGFkZXJzPiBXZWJHTERlYnVnU2hhZGVyczo6Y3JlYXRlKFdlYkdM
UmVuZGVyaW5nQ29udGV4dCogY29udGV4dCkKK3sKKyAgICByZXR1cm4gYWRvcHRQdHIobmV3IFdl
YkdMRGVidWdTaGFkZXJzKGNvbnRleHQpKTsKK30KKworU3RyaW5nIFdlYkdMRGVidWdTaGFkZXJz
OjpnZXRUcmFuc2xhdGVkU2hhZGVyU291cmNlKFdlYkdMU2hhZGVyKiBzaGFkZXIsIEV4Y2VwdGlv
bkNvZGUmIGVjKQoreworICAgIFVOVVNFRF9QQVJBTShlYyk7CisgICAgaWYgKG1fY29udGV4dC0+
aXNDb250ZXh0TG9zdCgpKQorICAgICAgICByZXR1cm4gU3RyaW5nKCk7CisgICAgaWYgKCFtX2Nv
bnRleHQtPnZhbGlkYXRlV2ViR0xPYmplY3Qoc2hhZGVyKSkKKyAgICAgICAgcmV0dXJuICIiOwor
ICAgIEV4dGVuc2lvbnMzRCogZXh0ZW5zaW9ucyA9IG1fY29udGV4dC0+Z3JhcGhpY3NDb250ZXh0
M0QoKS0+Z2V0RXh0ZW5zaW9ucygpOworICAgIEFTU0VSVChleHRlbnNpb25zKTsKKworICAgIEdD
M0RpbnQgYnVmU2l6ZSA9IDA7CisgICAgbV9jb250ZXh0LT5ncmFwaGljc0NvbnRleHQzRCgpLT5n
ZXRTaGFkZXJpdigKKyAgICAgICAgc2hhZGVyLT5vYmplY3QoKSwgRXh0ZW5zaW9uczNEOjpUUkFO
U0xBVEVEX1NIQURFUl9TT1VSQ0VfTEVOR1RIX0FOR0xFLCAmYnVmU2l6ZSk7CisgICAgaWYgKCFi
dWZTaXplKQorICAgICAgICByZXR1cm4gIiI7CisKKyAgICBPd25BcnJheVB0cjxHQzNEY2hhcj4g
c291cmNlID0gYWRvcHRBcnJheVB0cihuZXcgR0MzRGNoYXJbYnVmU2l6ZV0pOworICAgIEdDM0Rz
aXplaSBsZW5ndGggPSAwOworICAgIGV4dGVuc2lvbnMtPmdldFRyYW5zbGF0ZWRTaGFkZXJTb3Vy
Y2VBTkdMRSgKKyAgICAgICAgc2hhZGVyLT5vYmplY3QoKSwgc3RhdGljX2Nhc3Q8R0MzRHNpemVp
PihidWZTaXplKSwgJmxlbmd0aCwgc291cmNlLmdldCgpKTsKKyAgICBBU1NFUlQoYnVmU2l6ZSA9
PSBzdGF0aWNfY2FzdDxHQzNEaW50PihsZW5ndGggKyAxKSk7CisKKyAgICByZXR1cm4gU3RyaW5n
KHNvdXJjZS5nZXQoKSk7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8v
IEVOQUJMRShXRUJHTCkKClByb3BlcnR5IGNoYW5nZXMgb246IFNvdXJjZS9XZWJDb3JlL2h0bWwv
Y2FudmFzL1dlYkdMRGVidWdTaGFkZXJzLmNwcApfX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCkFkZGVkOiBzdm46ZW9sLXN0
eWxlCiAgICsgTEYKCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTERlYnVn
U2hhZGVycy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdM
RGVidWdTaGFkZXJzLmgJKHJldmlzaW9uIDApCisrKyBTb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZh
cy9XZWJHTERlYnVnU2hhZGVycy5oCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDUyIEBACisvKgor
ICogQ29weXJpZ2h0IChDKSAyMDExIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisg
KgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKgorICogMS4gIFJl
ZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyLgorICogMi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBt
dXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICog
ICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRo
ZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBM
RSBBTkQgSVRTIENPTlRSSUJVVE9SUyAiQVMgSVMiIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1Q
TElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJ
RUQKKyAqIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBB
UlRJQ1VMQVIgUFVSUE9TRSBBUkUKKyAqIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQ
UExFIE9SIElUUyBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkKKyAqIERJUkVDVCwgSU5E
SVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBE
QU1BR0VTCisgKiAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9G
IFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7CisgKiBMT1NTIE9GIFVTRSwgREFUQSwgT1Ig
UFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQKKyAq
IE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1Qg
TElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNF
KSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YKKyAqIFRISVMgU09GVFdBUkUs
IEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8K
KworI2lmbmRlZiBXZWJHTERlYnVnU2hhZGVyc19oCisjZGVmaW5lIFdlYkdMRGVidWdTaGFkZXJz
X2gKKworI2luY2x1ZGUgIkV4Y2VwdGlvbkNvZGUuaCIKKyNpbmNsdWRlICJXZWJHTEV4dGVuc2lv
bi5oIgorI2luY2x1ZGUgPHd0Zi9QYXNzT3duUHRyLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsK
KworY2xhc3MgV2ViR0xTaGFkZXI7CisKK2NsYXNzIFdlYkdMRGVidWdTaGFkZXJzIDogcHVibGlj
IFdlYkdMRXh0ZW5zaW9uIHsKK3B1YmxpYzoKKyAgICBzdGF0aWMgUGFzc093blB0cjxXZWJHTERl
YnVnU2hhZGVycz4gY3JlYXRlKFdlYkdMUmVuZGVyaW5nQ29udGV4dCopOworCisgICAgdmlydHVh
bCB+V2ViR0xEZWJ1Z1NoYWRlcnMoKTsKKyAgICB2aXJ0dWFsIEV4dGVuc2lvbk5hbWUgZ2V0TmFt
ZSgpIGNvbnN0OworCisgICAgU3RyaW5nIGdldFRyYW5zbGF0ZWRTaGFkZXJTb3VyY2UoV2ViR0xT
aGFkZXIqLCBFeGNlcHRpb25Db2RlJik7CisKK3ByaXZhdGU6CisgICAgV2ViR0xEZWJ1Z1NoYWRl
cnMoV2ViR0xSZW5kZXJpbmdDb250ZXh0Kik7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3Jl
CisKKyNlbmRpZiAvLyBXZWJHTERlYnVnU2hhZGVyc19oCgpQcm9wZXJ0eSBjaGFuZ2VzIG9uOiBT
b3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTERlYnVnU2hhZGVycy5oCl9fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18K
QWRkZWQ6IHN2bjplb2wtc3R5bGUKICAgKyBMRgoKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2h0bWwv
Y2FudmFzL1dlYkdMRGVidWdTaGFkZXJzLmlkbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29y
ZS9odG1sL2NhbnZhcy9XZWJHTERlYnVnU2hhZGVycy5pZGwJKHJldmlzaW9uIDApCisrKyBTb3Vy
Y2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTERlYnVnU2hhZGVycy5pZGwJKHJldmlzaW9uIDAp
CkBAIC0wLDAgKzEsMzQgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTEgR29vZ2xlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICog
YXJlIG1ldDoKKyAqCisgKiAxLiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3Qg
cmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiAgUmVkaXN0cmli
dXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0
ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRX
QVJFIElTIFBST1ZJREVEIEJZIEFQUExFIEFORCBJVFMgQ09OVFJJQlVUT1JTICJBUyBJUyIgQU5E
IEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAorICogV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRQorICogRElTQ0xBSU1F
RC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgT1IgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUg
Rk9SIEFOWQorICogRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBM
QVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMKKyAqIChJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsKKyAq
IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04p
IEhPV0VWRVIgQ0FVU0VEIEFORAorICogT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRI
RVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcg
TkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVT
RSBPRgorICogVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElU
WSBPRiBTVUNIIERBTUFHRS4KKyAqLworCittb2R1bGUgaHRtbCB7CisgICAgaW50ZXJmYWNlIFsK
KyAgICAgICAgQ29uZGl0aW9uYWw9V0VCR0wsCisgICAgICAgIEdlbmVyYXRlSXNSZWFjaGFibGU9
SW1wbENvbnRleHQsCisgICAgICAgIE9taXRDb25zdHJ1Y3RvcgorICAgIF0gV2ViR0xEZWJ1Z1No
YWRlcnMgeworICAgICAgICBbU3RyaWN0VHlwZUNoZWNraW5nLCBDb252ZXJ0TnVsbFN0cmluZ1Rv
PU51bGxdIERPTVN0cmluZyBnZXRUcmFuc2xhdGVkU2hhZGVyU291cmNlKGluIFdlYkdMU2hhZGVy
IHNoYWRlcikgcmFpc2VzKERPTUV4Y2VwdGlvbik7CisgICAgfTsKK30KClByb3BlcnR5IGNoYW5n
ZXMgb246IFNvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMRGVidWdTaGFkZXJzLmlkbApf
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fCkFkZGVkOiBzdm46ZW9sLXN0eWxlCiAgICsgTEYKCkluZGV4OiBTb3VyY2UvV2Vi
Q29yZS9odG1sL2NhbnZhcy9XZWJHTEV4dGVuc2lvbi5oCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9X
ZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMRXh0ZW5zaW9uLmgJKHJldmlzaW9uIDk3NDk3KQorKysg
U291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xFeHRlbnNpb24uaAkod29ya2luZyBjb3B5
KQpAQCAtMzgsNiArMzgsOCBAQCBwdWJsaWM6CiAgICAgICAgIE9FU1RleHR1cmVGbG9hdE5hbWUs
CiAgICAgICAgIE9FU1N0YW5kYXJkRGVyaXZhdGl2ZXNOYW1lLAogICAgICAgICBPRVNWZXJ0ZXhB
cnJheU9iamVjdE5hbWUsCisgICAgICAgIFdlYkdMRGVidWdSZW5kZXJlckluZm9OYW1lLAorICAg
ICAgICBXZWJHTERlYnVnU2hhZGVyc05hbWUsCiAgICAgfTsKIAogICAgIHZvaWQgcmVmKCkgeyBt
X2NvbnRleHQtPnJlZigpOyB9CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJH
TFJlbmRlcmluZ0NvbnRleHQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2h0bWwv
Y2FudmFzL1dlYkdMUmVuZGVyaW5nQ29udGV4dC5jcHAJKHJldmlzaW9uIDk3NDk3KQorKysgU291
cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xSZW5kZXJpbmdDb250ZXh0LmNwcAkod29ya2lu
ZyBjb3B5KQpAQCAtMzIsNyArMzIsNiBAQAogI2luY2x1ZGUgIkNhY2hlZEltYWdlLmgiCiAjaW5j
bHVkZSAiQ2FudmFzUGl4ZWxBcnJheS5oIgogI2luY2x1ZGUgIkNoZWNrZWRJbnQuaCIKLSNpbmNs
dWRlICJXZWJLaXRMb3NlQ29udGV4dC5oIgogI2luY2x1ZGUgIkNvbnNvbGUuaCIKICNpbmNsdWRl
ICJET01XaW5kb3cuaCIKICNpbmNsdWRlICJFeHRlbnNpb25zM0QuaCIKQEAgLTU3LDEyICs1Niwx
NSBAQAogI2luY2x1ZGUgIldlYkdMQnVmZmVyLmgiCiAjaW5jbHVkZSAiV2ViR0xDb250ZXh0QXR0
cmlidXRlcy5oIgogI2luY2x1ZGUgIldlYkdMQ29udGV4dEV2ZW50LmgiCisjaW5jbHVkZSAiV2Vi
R0xEZWJ1Z1JlbmRlcmVySW5mby5oIgorI2luY2x1ZGUgIldlYkdMRGVidWdTaGFkZXJzLmgiCiAj
aW5jbHVkZSAiV2ViR0xGcmFtZWJ1ZmZlci5oIgogI2luY2x1ZGUgIldlYkdMUHJvZ3JhbS5oIgog
I2luY2x1ZGUgIldlYkdMUmVuZGVyYnVmZmVyLmgiCiAjaW5jbHVkZSAiV2ViR0xTaGFkZXIuaCIK
ICNpbmNsdWRlICJXZWJHTFRleHR1cmUuaCIKICNpbmNsdWRlICJXZWJHTFVuaWZvcm1Mb2NhdGlv
bi5oIgorI2luY2x1ZGUgIldlYktpdExvc2VDb250ZXh0LmgiCiAKICNpbmNsdWRlIDx3dGYvQnl0
ZUFycmF5Lmg+CiAjaW5jbHVkZSA8d3RmL093bkFycmF5UHRyLmg+CkBAIC00NzMsNiArNDc1LDEy
IEBAIHZvaWQgV2ViR0xSZW5kZXJpbmdDb250ZXh0OjpzZXR1cEZsYWdzKCkKICAgICB9CiB9CiAK
K2Jvb2wgV2ViR0xSZW5kZXJpbmdDb250ZXh0OjphbGxvd1ByaXZpbGVnZWRFeHRlbnNpb25zKCkg
Y29uc3QKK3sKKyAgICAvLyBGSVhNRTogaW1wbGVtZW50IHRoaXMgZnVuY3Rpb24uCisgICAgcmV0
dXJuIHRydWU7Cit9CisKIFdlYkdMUmVuZGVyaW5nQ29udGV4dDo6fldlYkdMUmVuZGVyaW5nQ29u
dGV4dCgpCiB7CiAgICAgZGV0YWNoQW5kUmVtb3ZlQWxsT2JqZWN0cygpOwpAQCAtMTk5OSw2ICsy
MDA3LDI4IEBAIFdlYkdMRXh0ZW5zaW9uKiBXZWJHTFJlbmRlcmluZ0NvbnRleHQ6OmcKICAgICAg
ICAgICAgIG1fd2Via2l0TG9zZUNvbnRleHQgPSBXZWJLaXRMb3NlQ29udGV4dDo6Y3JlYXRlKHRo
aXMpOwogICAgICAgICByZXR1cm4gbV93ZWJraXRMb3NlQ29udGV4dC5nZXQoKTsKICAgICB9Cisg
ICAgaWYgKGVxdWFsSWdub3JpbmdDYXNlKG5hbWUsICJPRVNfc3RhbmRhcmRfZGVyaXZhdGl2ZXMi
KQorICAgICAgICAmJiBtX2NvbnRleHQtPmdldEV4dGVuc2lvbnMoKS0+c3VwcG9ydHMoIkdMX09F
U19zdGFuZGFyZF9kZXJpdmF0aXZlcyIpKSB7CisgICAgICAgIGlmICghbV9vZXNTdGFuZGFyZERl
cml2YXRpdmVzKSB7CisgICAgICAgICAgICBtX2NvbnRleHQtPmdldEV4dGVuc2lvbnMoKS0+ZW5z
dXJlRW5hYmxlZCgiR0xfT0VTX3N0YW5kYXJkX2Rlcml2YXRpdmVzIik7CisgICAgICAgICAgICBt
X29lc1N0YW5kYXJkRGVyaXZhdGl2ZXMgPSBPRVNTdGFuZGFyZERlcml2YXRpdmVzOjpjcmVhdGUo
dGhpcyk7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIG1fb2VzU3RhbmRhcmREZXJpdmF0aXZl
cy5nZXQoKTsKKyAgICB9CisKKyAgICBpZiAoYWxsb3dQcml2aWxlZ2VkRXh0ZW5zaW9ucygpKSB7
CisgICAgICAgIGlmIChlcXVhbElnbm9yaW5nQ2FzZShuYW1lLCAiV0VCR0xfZGVidWdfcmVuZGVy
ZXJfaW5mbyIpKSB7CisgICAgICAgICAgICBpZiAoIW1fd2ViZ2xEZWJ1Z1JlbmRlcmVySW5mbykK
KyAgICAgICAgICAgICAgICBtX3dlYmdsRGVidWdSZW5kZXJlckluZm8gPSBXZWJHTERlYnVnUmVu
ZGVyZXJJbmZvOjpjcmVhdGUodGhpcyk7CisgICAgICAgICAgICByZXR1cm4gbV93ZWJnbERlYnVn
UmVuZGVyZXJJbmZvLmdldCgpOworICAgICAgICB9CisgICAgICAgIGlmIChlcXVhbElnbm9yaW5n
Q2FzZShuYW1lLCAiV0VCR0xfZGVidWdfc2hhZGVycyIpCisgICAgICAgICAgICAmJiBtX2NvbnRl
eHQtPmdldEV4dGVuc2lvbnMoKS0+c3VwcG9ydHMoIkdMX0FOR0xFX3RyYW5zbGF0ZWRfc2hhZGVy
X3NvdXJjZSIpKSB7CisgICAgICAgICAgICBpZiAoIW1fd2ViZ2xEZWJ1Z1NoYWRlcnMpCisgICAg
ICAgICAgICAgICAgbV93ZWJnbERlYnVnU2hhZGVycyA9IFdlYkdMRGVidWdTaGFkZXJzOjpjcmVh
dGUodGhpcyk7CisgICAgICAgICAgICByZXR1cm4gbV93ZWJnbERlYnVnU2hhZGVycy5nZXQoKTsK
KyAgICAgICAgfQorICAgIH0KIAogICAgIHJldHVybiAwOwogfQpAQCAtMjI0NSw2ICsyMjc1LDE2
IEBAIFdlYkdMR2V0SW5mbyBXZWJHTFJlbmRlcmluZ0NvbnRleHQ6OmdldFAKICAgICAgICAgICAg
IHJldHVybiBnZXRVbnNpZ25lZEludFBhcmFtZXRlcihFeHRlbnNpb25zM0Q6OkZSQUdNRU5UX1NI
QURFUl9ERVJJVkFUSVZFX0hJTlRfT0VTKTsKICAgICAgICAgbV9jb250ZXh0LT5zeW50aGVzaXpl
R0xFcnJvcihHcmFwaGljc0NvbnRleHQzRDo6SU5WQUxJRF9FTlVNKTsKICAgICAgICAgcmV0dXJu
IFdlYkdMR2V0SW5mbygpOworICAgIGNhc2UgV2ViR0xEZWJ1Z1JlbmRlcmVySW5mbzo6VU5NQVNL
RURfUkVOREVSRVJfV0VCR0w6CisgICAgICAgIGlmIChtX3dlYmdsRGVidWdSZW5kZXJlckluZm8p
CisgICAgICAgICAgICByZXR1cm4gV2ViR0xHZXRJbmZvKG1fY29udGV4dC0+Z2V0U3RyaW5nKEdy
YXBoaWNzQ29udGV4dDNEOjpSRU5ERVJFUikpOworICAgICAgICBtX2NvbnRleHQtPnN5bnRoZXNp
emVHTEVycm9yKEdyYXBoaWNzQ29udGV4dDNEOjpJTlZBTElEX0VOVU0pOworICAgICAgICByZXR1
cm4gV2ViR0xHZXRJbmZvKCk7CisgICAgY2FzZSBXZWJHTERlYnVnUmVuZGVyZXJJbmZvOjpVTk1B
U0tFRF9WRU5ET1JfV0VCR0w6CisgICAgICAgIGlmIChtX3dlYmdsRGVidWdSZW5kZXJlckluZm8p
CisgICAgICAgICAgICByZXR1cm4gV2ViR0xHZXRJbmZvKG1fY29udGV4dC0+Z2V0U3RyaW5nKEdy
YXBoaWNzQ29udGV4dDNEOjpWRU5ET1IpKTsKKyAgICAgICAgbV9jb250ZXh0LT5zeW50aGVzaXpl
R0xFcnJvcihHcmFwaGljc0NvbnRleHQzRDo6SU5WQUxJRF9FTlVNKTsKKyAgICAgICAgcmV0dXJu
IFdlYkdMR2V0SW5mbygpOwogICAgIGNhc2UgRXh0ZW5zaW9uczNEOjpWRVJURVhfQVJSQVlfQklO
RElOR19PRVM6IC8vIE9FU192ZXJ0ZXhfYXJyYXlfb2JqZWN0CiAgICAgICAgIGlmIChtX29lc1Zl
cnRleEFycmF5T2JqZWN0KSB7CiAgICAgICAgICAgICBpZiAoIW1fYm91bmRWZXJ0ZXhBcnJheU9i
amVjdC0+aXNEZWZhdWx0T2JqZWN0KCkpCkBAIC0yNDE3LDYgKzI0NTcsMTMgQEAgVmVjdG9yPFN0
cmluZz4gV2ViR0xSZW5kZXJpbmdDb250ZXh0OjpnZQogICAgIGlmIChtX2NvbnRleHQtPmdldEV4
dGVuc2lvbnMoKS0+c3VwcG9ydHMoIkdMX09FU192ZXJ0ZXhfYXJyYXlfb2JqZWN0IikpCiAgICAg
ICAgIHJlc3VsdC5hcHBlbmQoIk9FU192ZXJ0ZXhfYXJyYXlfb2JqZWN0Iik7CiAgICAgcmVzdWx0
LmFwcGVuZCgiV0VCS0lUX2xvc2VfY29udGV4dCIpOworCisgICAgaWYgKGFsbG93UHJpdmlsZWdl
ZEV4dGVuc2lvbnMoKSkgeworICAgICAgICBpZiAobV9jb250ZXh0LT5nZXRFeHRlbnNpb25zKCkt
PnN1cHBvcnRzKCJHTF9BTkdMRV90cmFuc2xhdGVkX3NoYWRlcl9zb3VyY2UiKSkKKyAgICAgICAg
ICAgIHJlc3VsdC5hcHBlbmQoIldFQkdMX2RlYnVnX3NoYWRlcnMiKTsKKyAgICAgICAgcmVzdWx0
LmFwcGVuZCgiV0VCR0xfZGVidWdfcmVuZGVyZXJfaW5mbyIpOworICAgIH0KKwogICAgIHJldHVy
biByZXN1bHQ7CiB9CiAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMUmVu
ZGVyaW5nQ29udGV4dC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFz
L1dlYkdMUmVuZGVyaW5nQ29udGV4dC5oCShyZXZpc2lvbiA5NzQ5NykKKysrIFNvdXJjZS9XZWJD
b3JlL2h0bWwvY2FudmFzL1dlYkdMUmVuZGVyaW5nQ29udGV4dC5oCSh3b3JraW5nIGNvcHkpCkBA
IC00MCw5ICs0MCwxOSBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKK2NsYXNzIEhUTUxJbWFn
ZUVsZW1lbnQ7CitjbGFzcyBIVE1MVmlkZW9FbGVtZW50OworY2xhc3MgSW1hZ2VCdWZmZXI7Citj
bGFzcyBJbWFnZURhdGE7CitjbGFzcyBJbnRTaXplOworY2xhc3MgT0VTU3RhbmRhcmREZXJpdmF0
aXZlczsKK2NsYXNzIE9FU1RleHR1cmVGbG9hdDsKK2NsYXNzIE9FU1ZlcnRleEFycmF5T2JqZWN0
OwogY2xhc3MgV2ViR0xBY3RpdmVJbmZvOwogY2xhc3MgV2ViR0xCdWZmZXI7CiBjbGFzcyBXZWJH
TENvbnRleHRBdHRyaWJ1dGVzOworY2xhc3MgV2ViR0xEZWJ1Z1JlbmRlcmVySW5mbzsKK2NsYXNz
IFdlYkdMRGVidWdTaGFkZXJzOwogY2xhc3MgV2ViR0xFeHRlbnNpb247CiBjbGFzcyBXZWJHTEZy
YW1lYnVmZmVyOwogY2xhc3MgV2ViR0xPYmplY3Q7CkBAIC01MSwxNiArNjEsOCBAQCBjbGFzcyBX
ZWJHTFJlbmRlcmJ1ZmZlcjsKIGNsYXNzIFdlYkdMU2hhZGVyOwogY2xhc3MgV2ViR0xUZXh0dXJl
OwogY2xhc3MgV2ViR0xVbmlmb3JtTG9jYXRpb247Ci1jbGFzcyBXZWJLaXRMb3NlQ29udGV4dDsK
LWNsYXNzIEhUTUxJbWFnZUVsZW1lbnQ7Ci1jbGFzcyBIVE1MVmlkZW9FbGVtZW50OwotY2xhc3Mg
SW1hZ2VCdWZmZXI7Ci1jbGFzcyBJbWFnZURhdGE7Ci1jbGFzcyBJbnRTaXplOwotY2xhc3MgT0VT
U3RhbmRhcmREZXJpdmF0aXZlczsKLWNsYXNzIE9FU1RleHR1cmVGbG9hdDsKLWNsYXNzIE9FU1Zl
cnRleEFycmF5T2JqZWN0OwogY2xhc3MgV2ViR0xWZXJ0ZXhBcnJheU9iamVjdE9FUzsKK2NsYXNz
IFdlYktpdExvc2VDb250ZXh0OwogCiBjbGFzcyBXZWJHTFJlbmRlcmluZ0NvbnRleHQgOiBwdWJs
aWMgQ2FudmFzUmVuZGVyaW5nQ29udGV4dCB7CiBwdWJsaWM6CkBAIC0zMDYsNiArMzA4LDcgQEAg
cHVibGljOgogICBwcml2YXRlOgogICAgIGZyaWVuZCBjbGFzcyBXZWJHTE9iamVjdDsKICAgICBm
cmllbmQgY2xhc3MgT0VTVmVydGV4QXJyYXlPYmplY3Q7CisgICAgZnJpZW5kIGNsYXNzIFdlYkdM
RGVidWdTaGFkZXJzOwogCiAgICAgV2ViR0xSZW5kZXJpbmdDb250ZXh0KEhUTUxDYW52YXNFbGVt
ZW50KiwgUGFzc1JlZlB0cjxHcmFwaGljc0NvbnRleHQzRD4sIEdyYXBoaWNzQ29udGV4dDNEOjpB
dHRyaWJ1dGVzKTsKICAgICB2b2lkIGluaXRpYWxpemVOZXdDb250ZXh0KCk7CkBAIC00NzQsNiAr
NDc3LDggQEAgcHVibGljOgogICAgIE93blB0cjxPRVNTdGFuZGFyZERlcml2YXRpdmVzPiBtX29l
c1N0YW5kYXJkRGVyaXZhdGl2ZXM7CiAgICAgT3duUHRyPE9FU1ZlcnRleEFycmF5T2JqZWN0PiBt
X29lc1ZlcnRleEFycmF5T2JqZWN0OwogICAgIE93blB0cjxXZWJLaXRMb3NlQ29udGV4dD4gbV93
ZWJraXRMb3NlQ29udGV4dDsKKyAgICBPd25QdHI8V2ViR0xEZWJ1Z1JlbmRlcmVySW5mbz4gbV93
ZWJnbERlYnVnUmVuZGVyZXJJbmZvOworICAgIE93blB0cjxXZWJHTERlYnVnU2hhZGVycz4gbV93
ZWJnbERlYnVnU2hhZGVyczsKIAogICAgIC8vIEhlbHBlcnMgZm9yIGdldFBhcmFtZXRlciBhbmQg
b3RoZXJzCiAgICAgV2ViR0xHZXRJbmZvIGdldEJvb2xlYW5QYXJhbWV0ZXIoR0MzRGVudW0pOwpA
QCAtNjIyLDYgKzYyNyw5IEBAIHB1YmxpYzoKICAgICAvLyBIZWxwZXIgZm9yIHJlc3RvcmF0aW9u
IGFmdGVyIGNvbnRleHQgbG9zdC4KICAgICB2b2lkIG1heWJlUmVzdG9yZUNvbnRleHQoTG9zdENv
bnRleHRNb2RlKTsKIAorICAgIC8vIERldGVybWluZSBpZiB3ZSBhcmUgcnVubmluZyB0aGUgcHJp
dmlsZWdlZCBjb2RlIGluIHRoZSBicm93c2VyLgorICAgIGJvb2wgYWxsb3dQcml2aWxlZ2VkRXh0
ZW5zaW9ucygpIGNvbnN0OworCiAgICAgZnJpZW5kIGNsYXNzIFdlYkdMU3RhdGVSZXN0b3JlcjsK
IH07CiAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0V4dGVuc2lvbnMz
RC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0V4dGVu
c2lvbnMzRC5oCShyZXZpc2lvbiA5NzQ5NykKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL0V4dGVuc2lvbnMzRC5oCSh3b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEsNSBAQAogLyoK
LSAqIENvcHlyaWdodCAoQykgMjAxMCBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgor
ICogQ29weXJpZ2h0IChDKSAyMDExIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAg
KgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTU2LDYgKzU2LDcgQEAgcHVibGljOgog
ICAgIC8vICAgR0xfT0VTX3N0YW5kYXJkX2Rlcml2YXRpdmVzCiAgICAgLy8gICBHTF9PRVNfcmdi
OF9yZ2JhOAogICAgIC8vICAgR0xfT0VTX3ZlcnRleF9hcnJheV9vYmplY3QKKyAgICAvLyAgIEdM
X0FOR0xFX3RyYW5zbGF0ZWRfc2hhZGVyX3NvdXJjZQogCiAgICAgLy8gVGFrZXMgZnVsbCBuYW1l
IG9mIGV4dGVuc2lvbjsgZm9yIGV4YW1wbGUsCiAgICAgLy8gIkdMX0VYVF90ZXh0dXJlX2Zvcm1h
dF9CR1JBODg4OCIuCkBAIC0xMDMsNiArMTA0LDkgQEAgcHVibGljOgogICAgICAgICAKICAgICAg
ICAgLy8gR0xfT0VTX3ZlcnRleF9hcnJheV9vYmplY3QgbmFtZXMKICAgICAgICAgVkVSVEVYX0FS
UkFZX0JJTkRJTkdfT0VTID0gMHg4NUI1LAorCisgICAgICAgIC8vIEdMX0FOR0xFX3RyYW5zbGF0
ZWRfc2hhZGVyX3NvdXJjZQorICAgICAgICBUUkFOU0xBVEVEX1NIQURFUl9TT1VSQ0VfTEVOR1RI
X0FOR0xFID0gMHg5M0EwLAogICAgIH07CiAKICAgICAvLyBHTF9BUkJfcm9idXN0bmVzcwpAQCAt
MTI1LDYgKzEyOSw5IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgZGVsZXRlVmVydGV4QXJy
YXlPRVMoUGxhdGZvcm0zRE9iamVjdCkgPSAwOwogICAgIHZpcnR1YWwgR0MzRGJvb2xlYW4gaXNW
ZXJ0ZXhBcnJheU9FUyhQbGF0Zm9ybTNET2JqZWN0KSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIGJp
bmRWZXJ0ZXhBcnJheU9FUyhQbGF0Zm9ybTNET2JqZWN0KSA9IDA7CisKKyAgICAvLyBHTF9BTkdM
RV90cmFuc2xhdGVkX3NoYWRlcl9zb3VyY2UKKyAgICB2aXJ0dWFsIHZvaWQgZ2V0VHJhbnNsYXRl
ZFNoYWRlclNvdXJjZUFOR0xFKFBsYXRmb3JtM0RPYmplY3Qgc2hhZGVyLCBHQzNEc2l6ZWkgYnVm
U2l6ZSwgR0MzRHNpemVpKiBsZW5ndGgsIEdDM0RjaGFyKiBzb3VyY2UpID0gMDsKIH07CiAKIH0g
Ly8gbmFtZXNwYWNlIFdlYkNvcmUKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL0dyYXBoaWNzVHlwZXMzRC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL0dyYXBoaWNzVHlwZXMzRC5oCShyZXZpc2lvbiA5NzQ5NykKKysrIFNvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzVHlwZXMzRC5oCSh3b3JraW5nIGNv
cHkpCkBAIC00NCw2ICs0NCw3IEBAIHR5cGVkZWYgZmxvYXQgR0MzRGZsb2F0OwogdHlwZWRlZiBm
bG9hdCBHQzNEY2xhbXBmOwogdHlwZWRlZiBzaWduZWQgbG9uZyBpbnQgR0MzRGludHB0cjsKIHR5
cGVkZWYgc2lnbmVkIGxvbmcgaW50IEdDM0RzaXplaXB0cjsKK3R5cGVkZWYgY2hhciBHQzNEY2hh
cjsKIAogdHlwZWRlZiBHQzNEdWludCBQbGF0Zm9ybTNET2JqZWN0OwogCkluZGV4OiBTb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9FeHRlbnNpb25zM0RDaHJvbWl1bS5o
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVt
L0V4dGVuc2lvbnMzRENocm9taXVtLmgJKHJldmlzaW9uIDk3NDk3KQorKysgU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vRXh0ZW5zaW9uczNEQ2hyb21pdW0uaAkod29y
a2luZyBjb3B5KQpAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTAgR29v
Z2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxMSBHb29n
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zCkBAIC01Niw2ICs1Niw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgZGVsZXRlVmVy
dGV4QXJyYXlPRVMoUGxhdGZvcm0zRE9iamVjdCk7CiAgICAgdmlydHVhbCBHQzNEYm9vbGVhbiBp
c1ZlcnRleEFycmF5T0VTKFBsYXRmb3JtM0RPYmplY3QpOwogICAgIHZpcnR1YWwgdm9pZCBiaW5k
VmVydGV4QXJyYXlPRVMoUGxhdGZvcm0zRE9iamVjdCk7CisgICAgdmlydHVhbCB2b2lkIGdldFRy
YW5zbGF0ZWRTaGFkZXJTb3VyY2VBTkdMRShQbGF0Zm9ybTNET2JqZWN0IHNoYWRlciwgR0MzRHNp
emVpIGJ1ZlNpemUsIEdDM0RzaXplaSogbGVuZ3RoLCBHQzNEY2hhciogc291cmNlKTsKIAogICAg
IGVudW0gewogICAgICAgICAvLyBHTF9DSFJPTUlVTV9tYXBfc3ViIChlbnVtcyBpbmhlcml0ZWQg
ZnJvbSBHTF9BUkJfdmVydGV4X2J1ZmZlcl9vYmplY3QpCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wvRXh0ZW5zaW9uczNET3BlbkdMLmNwcAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wvRXh0ZW5zaW9uczNE
T3BlbkdMLmNwcAkocmV2aXNpb24gOTc0OTcpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9vcGVuZ2wvRXh0ZW5zaW9uczNET3BlbkdMLmNwcAkod29ya2luZyBjb3B5KQpAQCAt
MSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTAgR29vZ2xlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxMSBHb29nbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0xOTMsNiAr
MTkzLDExIEBAIHZvaWQgRXh0ZW5zaW9uczNET3BlbkdMOjpiaW5kVmVydGV4QXJyYXkKICNlbmRp
ZgogfQogCit2b2lkIGdldFRyYW5zbGF0ZWRTaGFkZXJTb3VyY2VBTkdMRShQbGF0Zm9ybTNET2Jq
ZWN0IHNoYWRlciwgR0MzRHNpemVpIGJ1ZlNpemUsIEdDM0RzaXplaSogbGVuZ3RoLCBHQzNEY2hh
ciogc291cmNlKQoreworICAgIC8vIEZJWE1FOiBpbXBsZW1lbnQgdGhpcyBmdW5jdGlvbiBhbmQg
YWRkIEdMX0FOR0xFX3RyYW5zbGF0ZWRfc2hhZGVyX3NvdXJjZSBpbiBzdXBwb3J0cygpLgorfQor
CiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKICNlbmRpZiAvLyBFTkFCTEUoV0VCR0wpCkluZGV4
OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wvRXh0ZW5zaW9uczNET3Bl
bkdMLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvb3Bl
bmdsL0V4dGVuc2lvbnMzRE9wZW5HTC5oCShyZXZpc2lvbiA5NzQ5NykKKysrIFNvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL29wZW5nbC9FeHRlbnNpb25zM0RPcGVuR0wuaAkod29ya2lu
ZyBjb3B5KQpAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTAgR29vZ2xl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxMSBHb29nbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
CkBAIC01MCw2ICs1MCw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgZGVsZXRlVmVydGV4
QXJyYXlPRVMoUGxhdGZvcm0zRE9iamVjdCk7CiAgICAgdmlydHVhbCBHQzNEYm9vbGVhbiBpc1Zl
cnRleEFycmF5T0VTKFBsYXRmb3JtM0RPYmplY3QpOwogICAgIHZpcnR1YWwgdm9pZCBiaW5kVmVy
dGV4QXJyYXlPRVMoUGxhdGZvcm0zRE9iamVjdCk7CisgICAgdmlydHVhbCB2b2lkIGdldFRyYW5z
bGF0ZWRTaGFkZXJTb3VyY2VBTkdMRShQbGF0Zm9ybTNET2JqZWN0IHNoYWRlciwgR0MzRHNpemVp
IGJ1ZlNpemUsIEdDM0RzaXplaSogbGVuZ3RoLCBHQzNEY2hhciogc291cmNlKTsKIAogcHJpdmF0
ZToKICAgICAvLyBUaGlzIGNsYXNzIG9ubHkgbmVlZHMgdG8gYmUgaW5zdGFudGlhdGVkIGJ5IEdy
YXBoaWNzQ29udGV4dDNEIGltcGxlbWVudGF0aW9ucy4KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL3F0L0V4dGVuc2lvbnMzRFF0LmNwcAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9xdC9FeHRlbnNpb25zM0RRdC5jcHAJKHJldmlz
aW9uIDk3NDk3KQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvcXQvRXh0ZW5z
aW9uczNEUXQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHly
aWdodCAoQykgMjAxMCBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJp
Z2h0IChDKSAyMDExIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTg4LDYgKzg4LDEwIEBAIHZvaWQgRXh0ZW5zaW9uczNE
UXQ6OmJpbmRWZXJ0ZXhBcnJheU9FUygKIHsKIH0KIAordm9pZCBFeHRlbnNpb25zM0RRdDo6Z2V0
VHJhbnNsYXRlZFNoYWRlclNvdXJjZUFOR0xFKFBsYXRmb3JtM0RPYmplY3Qgc2hhZGVyLCBHQzNE
c2l6ZWkgYnVmU2l6ZSwgR0MzRHNpemVpKiBsZW5ndGgsIEdDM0RjaGFyKiBzb3VyY2UpCit7Cit9
CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAogI2VuZGlmIC8vIEVOQUJMRShXRUJHTCkKSW5k
ZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3F0L0V4dGVuc2lvbnMzRFF0LmgK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvcXQvRXh0ZW5z
aW9uczNEUXQuaAkocmV2aXNpb24gOTc0OTcpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9xdC9FeHRlbnNpb25zM0RRdC5oCSh3b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEsNSBA
QAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMCBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgorICogQ29weXJpZ2h0IChDKSAyMDExIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTQ1LDYgKzQ1LDcgQEAgcHVi
bGljOgogICAgIHZpcnR1YWwgdm9pZCBkZWxldGVWZXJ0ZXhBcnJheU9FUyhQbGF0Zm9ybTNET2Jq
ZWN0KTsKICAgICB2aXJ0dWFsIEdDM0Rib29sZWFuIGlzVmVydGV4QXJyYXlPRVMoUGxhdGZvcm0z
RE9iamVjdCk7CiAgICAgdmlydHVhbCB2b2lkIGJpbmRWZXJ0ZXhBcnJheU9FUyhQbGF0Zm9ybTNE
T2JqZWN0KTsKKyAgICB2aXJ0dWFsIHZvaWQgZ2V0VHJhbnNsYXRlZFNoYWRlclNvdXJjZUFOR0xF
KFBsYXRmb3JtM0RPYmplY3Qgc2hhZGVyLCBHQzNEc2l6ZWkgYnVmU2l6ZSwgR0MzRHNpemVpKiBs
ZW5ndGgsIEdDM0RjaGFyKiBzb3VyY2UpOwogCiBwcml2YXRlOgogICAgIC8vIFRoaXMgY2xhc3Mg
b25seSBuZWVkcyB0byBiZSBpbnN0YW50aWF0ZWQgYnkgR3JhcGhpY3NDb250ZXh0M0QgaW1wbGVt
ZW50YXRpb25zLgpJbmRleDogU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cJKHJldmlzaW9uIDk3NDk3
KQorKysgU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAg
LTEsMyArMSwxNyBAQAorMjAxMS0xMC0xNCAgWmhlbnlhbyBNbyAgPHptb0Bnb29nbGUuY29tPgor
CisgICAgICAgIEltcGxlbWVudCBXRUJHTF9kZWJ1Z19zaGFkZXJzIGFuZCBXRUJHTF9kZWJ1Z19y
ZW5kZXJlcl9pbmZvIGV4dGVuc2lvbnMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTcwMDc3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgKiBwdWJsaWMvV2ViR3JhcGhpY3NDb250ZXh0M0QuaDogQWRkZWQgc3Vw
cG9ydCBmb3IgZ2V0VHJhbnNsYXRlZFNoYWRlclNvdXJjZUFOR0xFLgorICAgICAgICAoV2ViS2l0
OjpXZWJHcmFwaGljc0NvbnRleHQzRDo6Z2V0VHJhbnNsYXRlZFNoYWRlclNvdXJjZUFOR0xFKToK
KyAgICAgICAgKiBzcmMvRXh0ZW5zaW9uczNEQ2hyb21pdW0uY3BwOiBEaXR0by4KKyAgICAgICAg
KFdlYkNvcmU6OkV4dGVuc2lvbnMzRENocm9taXVtOjpnZXRUcmFuc2xhdGVkU2hhZGVyU291cmNl
QU5HTEUpOgorICAgICAgICAqIHNyYy9HcmFwaGljc0NvbnRleHQzRENocm9taXVtLmNwcDogRGl0
dG8uCisgICAgICAgICogc3JjL0dyYXBoaWNzQ29udGV4dDNEUHJpdmF0ZS5oOiBEaXR0by4KKwog
MjAxMS0xMC0xNCAgRGFuaWVsIENoZW5nICA8ZGNoZW5nQGNocm9taXVtLm9yZz4KIAogICAgICAg
ICBDb250ZXh0LWF3YXJlIEhUTUwgcGFzdGUgZm9yIENocm9taXVtCkluZGV4OiBTb3VyY2UvV2Vi
S2l0L2Nocm9taXVtL3B1YmxpYy9XZWJHcmFwaGljc0NvbnRleHQzRC5oCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYkdyYXBoaWNzQ29udGV4dDNELmgJKHJl
dmlzaW9uIDk3NDk3KQorKysgU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViR3JhcGhp
Y3NDb250ZXh0M0QuaAkod29ya2luZyBjb3B5KQpAQCAtMzY1LDYgKzM2NSwxMCBAQCBwdWJsaWM6
CiAgICAgLy8gc3RhdGUgaXMgc3RpY2t5LCByYXRoZXIgdGhhbiByZXBvcnRlZCBvbmx5IG9uY2Uu
CiAgICAgdmlydHVhbCBXR0MzRGVudW0gZ2V0R3JhcGhpY3NSZXNldFN0YXR1c0FSQigpIHsgcmV0
dXJuIDA7IC8qIEdMX05PX0VSUk9SICovIH0KIAorICAgIC8vIEZJWE1FOiBtYWtlIHRoaXMgZnVu
Y3Rpb24gcHVyZSB2aXJ0dWFsIG9uY2UgaXQgaXMgaW1wbGVtZW50ZWQgaW4KKyAgICAvLyBib3Ro
IGNvbW1hbmQgYnVmZmVyIHBvcnQgYW5kIGluLXByb2Nlc3MgcG9ydC4KKyAgICB2aXJ0dWFsIHZv
aWQgZ2V0VHJhbnNsYXRlZFNoYWRlclNvdXJjZUFOR0xFKFdlYkdMSWQgc2hhZGVyLCBXR0MzRHNp
emVpIGJ1ZlNpemUsIFdHQzNEc2l6ZWkqIGxlbmd0aCwgV0dDM0RjaGFyKiBzb3VyY2UpIHsgfQor
CiAjaWYgV0VCS0lUX1VTSU5HX1NLSUEKICAgICBHckdMSW50ZXJmYWNlKiBjcmVhdGVHckdMSW50
ZXJmYWNlKCk7CiAjZW5kaWYKSW5kZXg6IFNvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0V4dGVu
c2lvbnMzRENocm9taXVtLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L2Nocm9taXVt
L3NyYy9FeHRlbnNpb25zM0RDaHJvbWl1bS5jcHAJKHJldmlzaW9uIDk3NDk3KQorKysgU291cmNl
L1dlYktpdC9jaHJvbWl1bS9zcmMvRXh0ZW5zaW9uczNEQ2hyb21pdW0uY3BwCSh3b3JraW5nIGNv
cHkpCkBAIC0xMTUsNiArMTE1LDExIEBAIHZvaWQgRXh0ZW5zaW9uczNEQ2hyb21pdW06OmJpbmRW
ZXJ0ZXhBcnIKIHsKIH0KIAordm9pZCBFeHRlbnNpb25zM0RDaHJvbWl1bTo6Z2V0VHJhbnNsYXRl
ZFNoYWRlclNvdXJjZUFOR0xFKFBsYXRmb3JtM0RPYmplY3Qgc2hhZGVyLCBHQzNEc2l6ZWkgYnVm
U2l6ZSwgR0MzRHNpemVpKiBsZW5ndGgsIEdDM0RjaGFyKiBzb3VyY2UpCit7CisgICAgbV9wcml2
YXRlLT5nZXRUcmFuc2xhdGVkU2hhZGVyU291cmNlQU5HTEUoc2hhZGVyLCBidWZTaXplLCBsZW5n
dGgsIHNvdXJjZSk7Cit9CisKIHZvaWQgRXh0ZW5zaW9uczNEQ2hyb21pdW06OnNldFN3YXBCdWZm
ZXJzQ29tcGxldGVDYWxsYmFja0NIUk9NSVVNKFBhc3NPd25QdHI8U3dhcEJ1ZmZlcnNDb21wbGV0
ZUNhbGxiYWNrQ0hST01JVU0+IGNhbGxiYWNrKQogewogICAgIG1fcHJpdmF0ZS0+c2V0U3dhcEJ1
ZmZlcnNDb21wbGV0ZUNhbGxiYWNrQ0hST01JVU0oY2FsbGJhY2spOwpJbmRleDogU291cmNlL1dl
YktpdC9jaHJvbWl1bS9zcmMvR3JhcGhpY3NDb250ZXh0M0RDaHJvbWl1bS5jcHAKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvR3JhcGhpY3NDb250ZXh0M0RDaHJvbWl1
bS5jcHAJKHJldmlzaW9uIDk3NDk3KQorKysgU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvR3Jh
cGhpY3NDb250ZXh0M0RDaHJvbWl1bS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTg4Nyw2ICs4ODcs
OCBAQCBERUxFR0FURV9UT19JTVBMXzUocmVuZGVyYnVmZmVyU3RvcmFnZU11CiBERUxFR0FURV9U
T19JTVBMKHJhdGVMaW1pdE9mZnNjcmVlbkNvbnRleHRDSFJPTUlVTSkKIERFTEVHQVRFX1RPX0lN
UExfUihnZXRHcmFwaGljc1Jlc2V0U3RhdHVzQVJCLCBHQzNEZW51bSkKIAorREVMRUdBVEVfVE9f
SU1QTF80KGdldFRyYW5zbGF0ZWRTaGFkZXJTb3VyY2VBTkdMRSwgUGxhdGZvcm0zRE9iamVjdCwg
R0MzRHNpemVpLCBHQzNEc2l6ZWkqLCBHQzNEY2hhciopCisKIC8vLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogLy8g
R3JhcGhpY3NDb250ZXh0M0QKIC8vCkluZGV4OiBTb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9H
cmFwaGljc0NvbnRleHQzRFByaXZhdGUuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L2No
cm9taXVtL3NyYy9HcmFwaGljc0NvbnRleHQzRFByaXZhdGUuaAkocmV2aXNpb24gOTc0OTcpCisr
KyBTb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9HcmFwaGljc0NvbnRleHQzRFByaXZhdGUuaAko
d29ya2luZyBjb3B5KQpAQCAtMzAzLDYgKzMwMyw5IEBAIHB1YmxpYzoKICAgICAvLyBHTF9BUkJf
cm9idXN0bmVzcwogICAgIEdDM0RlbnVtIGdldEdyYXBoaWNzUmVzZXRTdGF0dXNBUkIoKTsKIAor
ICAgIC8vIEdMX0FOR0xFX3RyYW5zbGF0ZWRfc2hhZGVyX3NvdXJjZQorICAgIHZvaWQgZ2V0VHJh
bnNsYXRlZFNoYWRlclNvdXJjZUFOR0xFKFBsYXRmb3JtM0RPYmplY3Qgc2hhZGVyLCBHQzNEc2l6
ZWkgYnVmU2l6ZSwgR0MzRHNpemVpKiBsZW5ndGgsIEdDM0RjaGFyKiBzb3VyY2UpOworCiBwcml2
YXRlOgogICAgIEdyYXBoaWNzQ29udGV4dDNEUHJpdmF0ZShXZWJLaXQ6OldlYlZpZXdJbXBsKiwg
UGFzc093blB0cjxXZWJLaXQ6OldlYkdyYXBoaWNzQ29udGV4dDNEPiwgR3JhcGhpY3NDb250ZXh0
M0Q6OkF0dHJpYnV0ZXMpOwogCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>111079</attachid>
            <date>2011-10-14 14:30:34 -0700</date>
            <delta_ts>2011-10-14 14:39:50 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-70077-20111014143033.patch</filename>
            <type>text/plain</type>
            <size>22897</size>
            <attacher name="Zhenyao Mo">zmo</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDk3NDk3KQorKysgU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsNDcgQEAKKzIwMTEtMTAtMTQgIFpoZW55YW8g
TW8gIDx6bW9AZ29vZ2xlLmNvbT4KKworICAgICAgICBJbXBsZW1lbnQgV0VCR0xfZGVidWdfc2hh
ZGVycyBhbmQgV0VCR0xfZGVidWdfcmVuZGVyZXJfaW5mbyBleHRlbnNpb25zCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03MDA3NworCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogV2ViQ29yZS5neXBpOiBhZGRl
ZCBuZXcgZXh0ZW5zaW9uIGNsYXNzIGZpbGVzLgorICAgICAgICAqIGJpbmRpbmdzL2pzL0pTV2Vi
R0xSZW5kZXJpbmdDb250ZXh0Q3VzdG9tLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OnRvSlMpOiBI
YW5kbGVzIHR3byBuZXcgZXh0ZW5zaW9ucy4KKyAgICAgICAgKiBiaW5kaW5ncy92OC9jdXN0b20v
VjhXZWJHTFJlbmRlcmluZ0NvbnRleHRDdXN0b20uY3BwOgorICAgICAgICAoV2ViQ29yZTo6dG9W
OE9iamVjdCk6IERpdHRvLgorICAgICAgICAqIGh0bWwvY2FudmFzL1dlYkdMRGVidWdSZW5kZXJl
ckluZm8uY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OldlYkdMRGVidWdSZW5kZXJlcklu
Zm86OldlYkdMRGVidWdSZW5kZXJlckluZm8pOgorICAgICAgICAoV2ViQ29yZTo6V2ViR0xEZWJ1
Z1JlbmRlcmVySW5mbzo6fldlYkdMRGVidWdSZW5kZXJlckluZm8pOgorICAgICAgICAoV2ViQ29y
ZTo6V2ViR0xEZWJ1Z1JlbmRlcmVySW5mbzo6Z2V0TmFtZSk6CisgICAgICAgIChXZWJDb3JlOjpX
ZWJHTERlYnVnUmVuZGVyZXJJbmZvOjpjcmVhdGUpOgorICAgICAgICAqIGh0bWwvY2FudmFzL1dl
YkdMRGVidWdSZW5kZXJlckluZm8uaDogQWRkZWQuCisgICAgICAgICogaHRtbC9jYW52YXMvV2Vi
R0xEZWJ1Z1JlbmRlcmVySW5mby5pZGw6IEFkZGVkLgorICAgICAgICAqIGh0bWwvY2FudmFzL1dl
YkdMRGVidWdTaGFkZXJzLmNwcDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpXZWJHTERlYnVn
U2hhZGVyczo6V2ViR0xEZWJ1Z1NoYWRlcnMpOgorICAgICAgICAoV2ViQ29yZTo6V2ViR0xEZWJ1
Z1NoYWRlcnM6On5XZWJHTERlYnVnU2hhZGVycyk6CisgICAgICAgIChXZWJDb3JlOjpXZWJHTERl
YnVnU2hhZGVyczo6Z2V0TmFtZSk6CisgICAgICAgIChXZWJDb3JlOjpXZWJHTERlYnVnU2hhZGVy
czo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OldlYkdMRGVidWdTaGFkZXJzOjpnZXRUcmFu
c2xhdGVkU2hhZGVyU291cmNlKToKKyAgICAgICAgKiBodG1sL2NhbnZhcy9XZWJHTERlYnVnU2hh
ZGVycy5oOiBBZGRlZC4KKyAgICAgICAgKiBodG1sL2NhbnZhcy9XZWJHTERlYnVnU2hhZGVycy5p
ZGw6IEFkZGVkLgorICAgICAgICAqIGh0bWwvY2FudmFzL1dlYkdMRXh0ZW5zaW9uLmg6CisgICAg
ICAgICogaHRtbC9jYW52YXMvV2ViR0xSZW5kZXJpbmdDb250ZXh0LmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OldlYkdMUmVuZGVyaW5nQ29udGV4dDo6YWxsb3dQcml2aWxlZ2VkRXh0ZW5zaW9ucyk6
IFRvIGJlIGltcGxlbWVudGVkIC0gZGVjaWRpbmcgd2hldGhlciB0aGUgdHdvIGV4dGVuc2lvbnMg
c2hvdWxkIGJlIGFsbG93ZWQgb3Igbm90LgorICAgICAgICAoV2ViQ29yZTo6V2ViR0xSZW5kZXJp
bmdDb250ZXh0OjpnZXRFeHRlbnNpb24pOiBIYW5kbGVzIHR3byBuZXcgZXh0ZW5zaW9ucy4KKyAg
ICAgICAgKFdlYkNvcmU6OldlYkdMUmVuZGVyaW5nQ29udGV4dDo6Z2V0UGFyYW1ldGVyKTogSGFu
ZGxlcyBVTk1BU0tFRF9WRU5ET1JfV0VCR0wgLyBVTk1BU0tFRF9SRU5ERVJFUl9XRUJHTAorICAg
ICAgICAoV2ViQ29yZTo6V2ViR0xSZW5kZXJpbmdDb250ZXh0OjpnZXRTdXBwb3J0ZWRFeHRlbnNp
b25zKTogSGFuZGxlcyB0d28gbmV3IGV4dGVuc2lvbnMuCisgICAgICAgICogaHRtbC9jYW52YXMv
V2ViR0xSZW5kZXJpbmdDb250ZXh0Lmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvRXh0
ZW5zaW9uczNELmg6IERpdHRvLgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNz
VHlwZXMzRC5oOiBBZGQgR0MzRGNoYXIuCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2hy
b21pdW0vRXh0ZW5zaW9uczNEQ2hyb21pdW0uaDogSGFuZGxlcyB0d28gbmV3IGV4dGVuc2lvbnMu
CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0V4dGVuc2lvbnMzRE9wZW5HTC5j
cHA6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6Z2V0VHJhbnNsYXRlZFNoYWRlclNvdXJjZUFO
R0xFKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wvRXh0ZW5zaW9uczNET3Bl
bkdMLmg6IERpdHRvLgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL3F0L0V4dGVuc2lvbnMz
RFF0LmNwcDogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpFeHRlbnNpb25zM0RRdDo6Z2V0VHJh
bnNsYXRlZFNoYWRlclNvdXJjZUFOR0xFKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9x
dC9FeHRlbnNpb25zM0RRdC5oOiBEaXR0by4KKwogMjAxMS0xMC0xNCAgRGFuaWVsIENoZW5nICA8
ZGNoZW5nQGNocm9taXVtLm9yZz4KIAogICAgICAgICBDb250ZXh0LWF3YXJlIEhUTUwgcGFzdGUg
Zm9yIENocm9taXVtCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpCShyZXZpc2lvbiA5NzQ5NykKKysrIFNv
dXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQkod29ya2luZyBjb3B5KQpAQCAtMTM2Miw2ICsxMzYy
LDggQEAKICAgICAgICAgICAgICdodG1sL2NhbnZhcy9XZWJHTEJ1ZmZlci5pZGwnLAogICAgICAg
ICAgICAgJ2h0bWwvY2FudmFzL1dlYkdMQ29udGV4dEF0dHJpYnV0ZXMuaWRsJywKICAgICAgICAg
ICAgICdodG1sL2NhbnZhcy9XZWJHTENvbnRleHRFdmVudC5pZGwnLAorICAgICAgICAgICAgJ2h0
bWwvY2FudmFzL1dlYkdMRGVidWdSZW5kZXJlckluZm8uaWRsJywKKyAgICAgICAgICAgICdodG1s
L2NhbnZhcy9XZWJHTERlYnVnU2hhZGVycy5pZGwnLAogICAgICAgICAgICAgJ2h0bWwvY2FudmFz
L1dlYkdMRnJhbWVidWZmZXIuaWRsJywKICAgICAgICAgICAgICdodG1sL2NhbnZhcy9XZWJHTFBy
b2dyYW0uaWRsJywKICAgICAgICAgICAgICdodG1sL2NhbnZhcy9XZWJHTFJlbmRlcmJ1ZmZlci5p
ZGwnLApAQCAtNTY2Miw2ICs1NjY0LDEwIEBACiAgICAgICAgICAgICAnaHRtbC9jYW52YXMvV2Vi
R0xDb250ZXh0QXR0cmlidXRlcy5oJywKICAgICAgICAgICAgICdodG1sL2NhbnZhcy9XZWJHTENv
bnRleHRFdmVudC5jcHAnLAogICAgICAgICAgICAgJ2h0bWwvY2FudmFzL1dlYkdMQ29udGV4dEV2
ZW50LmgnLAorICAgICAgICAgICAgJ2h0bWwvY2FudmFzL1dlYkdMRGVidWdSZW5kZXJlckluZm8u
Y3BwJywKKyAgICAgICAgICAgICdodG1sL2NhbnZhcy9XZWJHTERlYnVnUmVuZGVyZXJJbmZvLmgn
LAorICAgICAgICAgICAgJ2h0bWwvY2FudmFzL1dlYkdMRGVidWdTaGFkZXJzLmNwcCcsCisgICAg
ICAgICAgICAnaHRtbC9jYW52YXMvV2ViR0xEZWJ1Z1NoYWRlcnMuaCcsCiAgICAgICAgICAgICAn
aHRtbC9jYW52YXMvV2ViR0xFeHRlbnNpb24uY3BwJywKICAgICAgICAgICAgICdodG1sL2NhbnZh
cy9XZWJHTEV4dGVuc2lvbi5oJywKICAgICAgICAgICAgICdodG1sL2NhbnZhcy9XZWJHTEZyYW1l
YnVmZmVyLmNwcCcsCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1dlYkdMUmVu
ZGVyaW5nQ29udGV4dEN1c3RvbS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3MvanMvSlNXZWJHTFJlbmRlcmluZ0NvbnRleHRDdXN0b20uY3BwCShyZXZpc2lvbiA5NzQ5
NykKKysrIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTV2ViR0xSZW5kZXJpbmdDb250ZXh0
Q3VzdG9tLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTg3LDYgKzE4NywxMCBAQCBzdGF0aWMgSlNW
YWx1ZSB0b0pTKEV4ZWNTdGF0ZSogZXhlYywgSlNECiAgICAgICAgIHJldHVybiB0b0pTKGV4ZWMs
IGdsb2JhbE9iamVjdCwgc3RhdGljX2Nhc3Q8T0VTVGV4dHVyZUZsb2F0Kj4oZXh0ZW5zaW9uKSk7
CiAgICAgY2FzZSBXZWJHTEV4dGVuc2lvbjo6T0VTVmVydGV4QXJyYXlPYmplY3ROYW1lOgogICAg
ICAgICByZXR1cm4gdG9KUyhleGVjLCBnbG9iYWxPYmplY3QsIHN0YXRpY19jYXN0PE9FU1ZlcnRl
eEFycmF5T2JqZWN0Kj4oZXh0ZW5zaW9uKSk7CisgICAgY2FzZSBXZWJHTEV4dGVuc2lvbjo6V2Vi
R0xEZWJ1Z1JlbmRlcmVySW5mb05hbWU6CisgICAgICAgIHJldHVybiB0b0pTKGV4ZWMsIGdsb2Jh
bE9iamVjdCwgc3RhdGljX2Nhc3Q8V2ViR0xEZWJ1Z1JlbmRlcmVySW5mbyo+KGV4dGVuc2lvbikp
OworICAgIGNhc2UgV2ViR0xFeHRlbnNpb246OldlYkdMRGVidWdTaGFkZXJzTmFtZToKKyAgICAg
ICAgcmV0dXJuIHRvSlMoZXhlYywgZ2xvYmFsT2JqZWN0LCBzdGF0aWNfY2FzdDxXZWJHTERlYnVn
U2hhZGVycyo+KGV4dGVuc2lvbikpOwogICAgIH0KICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsK
ICAgICByZXR1cm4ganNOdWxsKCk7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9j
dXN0b20vVjhXZWJHTFJlbmRlcmluZ0NvbnRleHRDdXN0b20uY3BwCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9WOFdlYkdMUmVuZGVyaW5nQ29udGV4dEN1
c3RvbS5jcHAJKHJldmlzaW9uIDk3NDk3KQorKysgU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvdjgv
Y3VzdG9tL1Y4V2ViR0xSZW5kZXJpbmdDb250ZXh0Q3VzdG9tLmNwcAkod29ya2luZyBjb3B5KQpA
QCAtNTYsNiArNTYsOCBAQAogI2luY2x1ZGUgIlY4VWludDMyQXJyYXkuaCIKICNpbmNsdWRlICJW
OFVpbnQ4QXJyYXkuaCIKICNpbmNsdWRlICJWOFdlYkdMQnVmZmVyLmgiCisjaW5jbHVkZSAiVjhX
ZWJHTERlYnVnUmVuZGVyZXJJbmZvLmgiCisjaW5jbHVkZSAiVjhXZWJHTERlYnVnU2hhZGVycy5o
IgogI2luY2x1ZGUgIlY4V2ViR0xGcmFtZWJ1ZmZlci5oIgogI2luY2x1ZGUgIlY4V2ViR0xQcm9n
cmFtLmgiCiAjaW5jbHVkZSAiVjhXZWJHTFJlbmRlcmJ1ZmZlci5oIgpAQCAtMTgyLDYgKzE4NCwx
NCBAQCBzdGF0aWMgdjg6OkhhbmRsZTx2ODo6VmFsdWU+IHRvVjhPYmplY3QoCiAgICAgICAgIGV4
dGVuc2lvbk9iamVjdCA9IHRvVjgoc3RhdGljX2Nhc3Q8T0VTVmVydGV4QXJyYXlPYmplY3QqPihl
eHRlbnNpb24pKTsKICAgICAgICAgcmVmZXJlbmNlTmFtZSA9ICJvZXNWZXJ0ZXhBcnJheU9iamVj
dE5hbWUiOwogICAgICAgICBicmVhazsKKyAgICBjYXNlIFdlYkdMRXh0ZW5zaW9uOjpXZWJHTERl
YnVnUmVuZGVyZXJJbmZvTmFtZToKKyAgICAgICAgZXh0ZW5zaW9uT2JqZWN0ID0gdG9WOChzdGF0
aWNfY2FzdDxXZWJHTERlYnVnUmVuZGVyZXJJbmZvKj4oZXh0ZW5zaW9uKSk7CisgICAgICAgIHJl
ZmVyZW5jZU5hbWUgPSAid2ViR0xEZWJ1Z1JlbmRlcmVySW5mb05hbWUiOworICAgICAgICBicmVh
azsKKyAgICBjYXNlIFdlYkdMRXh0ZW5zaW9uOjpXZWJHTERlYnVnU2hhZGVyc05hbWU6CisgICAg
ICAgIGV4dGVuc2lvbk9iamVjdCA9IHRvVjgoc3RhdGljX2Nhc3Q8V2ViR0xEZWJ1Z1NoYWRlcnMq
PihleHRlbnNpb24pKTsKKyAgICAgICAgcmVmZXJlbmNlTmFtZSA9ICJ3ZWJHTERlYnVnU2hhZGVy
c05hbWUiOworICAgICAgICBicmVhazsKICAgICB9CiAgICAgQVNTRVJUKCFleHRlbnNpb25PYmpl
Y3QuSXNFbXB0eSgpKTsKICAgICBWOERPTVdyYXBwZXI6OnNldE5hbWVkSGlkZGVuUmVmZXJlbmNl
KGNvbnRleHRPYmplY3QsIHJlZmVyZW5jZU5hbWUsIGV4dGVuc2lvbk9iamVjdCk7CkluZGV4OiBT
b3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTEV4dGVuc2lvbi5oCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMRXh0ZW5zaW9uLmgJKHJldmlzaW9uIDk3
NDk3KQorKysgU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xFeHRlbnNpb24uaAkod29y
a2luZyBjb3B5KQpAQCAtMzgsNiArMzgsOCBAQCBwdWJsaWM6CiAgICAgICAgIE9FU1RleHR1cmVG
bG9hdE5hbWUsCiAgICAgICAgIE9FU1N0YW5kYXJkRGVyaXZhdGl2ZXNOYW1lLAogICAgICAgICBP
RVNWZXJ0ZXhBcnJheU9iamVjdE5hbWUsCisgICAgICAgIFdlYkdMRGVidWdSZW5kZXJlckluZm9O
YW1lLAorICAgICAgICBXZWJHTERlYnVnU2hhZGVyc05hbWUsCiAgICAgfTsKIAogICAgIHZvaWQg
cmVmKCkgeyBtX2NvbnRleHQtPnJlZigpOyB9CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9odG1sL2Nh
bnZhcy9XZWJHTFJlbmRlcmluZ0NvbnRleHQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJD
b3JlL2h0bWwvY2FudmFzL1dlYkdMUmVuZGVyaW5nQ29udGV4dC5jcHAJKHJldmlzaW9uIDk3NDk3
KQorKysgU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xSZW5kZXJpbmdDb250ZXh0LmNw
cAkod29ya2luZyBjb3B5KQpAQCAtMzIsNyArMzIsNiBAQAogI2luY2x1ZGUgIkNhY2hlZEltYWdl
LmgiCiAjaW5jbHVkZSAiQ2FudmFzUGl4ZWxBcnJheS5oIgogI2luY2x1ZGUgIkNoZWNrZWRJbnQu
aCIKLSNpbmNsdWRlICJXZWJLaXRMb3NlQ29udGV4dC5oIgogI2luY2x1ZGUgIkNvbnNvbGUuaCIK
ICNpbmNsdWRlICJET01XaW5kb3cuaCIKICNpbmNsdWRlICJFeHRlbnNpb25zM0QuaCIKQEAgLTU3
LDEyICs1NiwxNSBAQAogI2luY2x1ZGUgIldlYkdMQnVmZmVyLmgiCiAjaW5jbHVkZSAiV2ViR0xD
b250ZXh0QXR0cmlidXRlcy5oIgogI2luY2x1ZGUgIldlYkdMQ29udGV4dEV2ZW50LmgiCisjaW5j
bHVkZSAiV2ViR0xEZWJ1Z1JlbmRlcmVySW5mby5oIgorI2luY2x1ZGUgIldlYkdMRGVidWdTaGFk
ZXJzLmgiCiAjaW5jbHVkZSAiV2ViR0xGcmFtZWJ1ZmZlci5oIgogI2luY2x1ZGUgIldlYkdMUHJv
Z3JhbS5oIgogI2luY2x1ZGUgIldlYkdMUmVuZGVyYnVmZmVyLmgiCiAjaW5jbHVkZSAiV2ViR0xT
aGFkZXIuaCIKICNpbmNsdWRlICJXZWJHTFRleHR1cmUuaCIKICNpbmNsdWRlICJXZWJHTFVuaWZv
cm1Mb2NhdGlvbi5oIgorI2luY2x1ZGUgIldlYktpdExvc2VDb250ZXh0LmgiCiAKICNpbmNsdWRl
IDx3dGYvQnl0ZUFycmF5Lmg+CiAjaW5jbHVkZSA8d3RmL093bkFycmF5UHRyLmg+CkBAIC00NzMs
NiArNDc1LDEyIEBAIHZvaWQgV2ViR0xSZW5kZXJpbmdDb250ZXh0OjpzZXR1cEZsYWdzKCkKICAg
ICB9CiB9CiAKK2Jvb2wgV2ViR0xSZW5kZXJpbmdDb250ZXh0OjphbGxvd1ByaXZpbGVnZWRFeHRl
bnNpb25zKCkgY29uc3QKK3sKKyAgICAvLyBGSVhNRTogaW1wbGVtZW50IHRoaXMgZnVuY3Rpb24u
CisgICAgcmV0dXJuIHRydWU7Cit9CisKIFdlYkdMUmVuZGVyaW5nQ29udGV4dDo6fldlYkdMUmVu
ZGVyaW5nQ29udGV4dCgpCiB7CiAgICAgZGV0YWNoQW5kUmVtb3ZlQWxsT2JqZWN0cygpOwpAQCAt
MTk5OSw2ICsyMDA3LDI4IEBAIFdlYkdMRXh0ZW5zaW9uKiBXZWJHTFJlbmRlcmluZ0NvbnRleHQ6
OmcKICAgICAgICAgICAgIG1fd2Via2l0TG9zZUNvbnRleHQgPSBXZWJLaXRMb3NlQ29udGV4dDo6
Y3JlYXRlKHRoaXMpOwogICAgICAgICByZXR1cm4gbV93ZWJraXRMb3NlQ29udGV4dC5nZXQoKTsK
ICAgICB9CisgICAgaWYgKGVxdWFsSWdub3JpbmdDYXNlKG5hbWUsICJPRVNfc3RhbmRhcmRfZGVy
aXZhdGl2ZXMiKQorICAgICAgICAmJiBtX2NvbnRleHQtPmdldEV4dGVuc2lvbnMoKS0+c3VwcG9y
dHMoIkdMX09FU19zdGFuZGFyZF9kZXJpdmF0aXZlcyIpKSB7CisgICAgICAgIGlmICghbV9vZXNT
dGFuZGFyZERlcml2YXRpdmVzKSB7CisgICAgICAgICAgICBtX2NvbnRleHQtPmdldEV4dGVuc2lv
bnMoKS0+ZW5zdXJlRW5hYmxlZCgiR0xfT0VTX3N0YW5kYXJkX2Rlcml2YXRpdmVzIik7CisgICAg
ICAgICAgICBtX29lc1N0YW5kYXJkRGVyaXZhdGl2ZXMgPSBPRVNTdGFuZGFyZERlcml2YXRpdmVz
OjpjcmVhdGUodGhpcyk7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIG1fb2VzU3RhbmRhcmRE
ZXJpdmF0aXZlcy5nZXQoKTsKKyAgICB9CisKKyAgICBpZiAoYWxsb3dQcml2aWxlZ2VkRXh0ZW5z
aW9ucygpKSB7CisgICAgICAgIGlmIChlcXVhbElnbm9yaW5nQ2FzZShuYW1lLCAiV0VCR0xfZGVi
dWdfcmVuZGVyZXJfaW5mbyIpKSB7CisgICAgICAgICAgICBpZiAoIW1fd2ViZ2xEZWJ1Z1JlbmRl
cmVySW5mbykKKyAgICAgICAgICAgICAgICBtX3dlYmdsRGVidWdSZW5kZXJlckluZm8gPSBXZWJH
TERlYnVnUmVuZGVyZXJJbmZvOjpjcmVhdGUodGhpcyk7CisgICAgICAgICAgICByZXR1cm4gbV93
ZWJnbERlYnVnUmVuZGVyZXJJbmZvLmdldCgpOworICAgICAgICB9CisgICAgICAgIGlmIChlcXVh
bElnbm9yaW5nQ2FzZShuYW1lLCAiV0VCR0xfZGVidWdfc2hhZGVycyIpCisgICAgICAgICAgICAm
JiBtX2NvbnRleHQtPmdldEV4dGVuc2lvbnMoKS0+c3VwcG9ydHMoIkdMX0FOR0xFX3RyYW5zbGF0
ZWRfc2hhZGVyX3NvdXJjZSIpKSB7CisgICAgICAgICAgICBpZiAoIW1fd2ViZ2xEZWJ1Z1NoYWRl
cnMpCisgICAgICAgICAgICAgICAgbV93ZWJnbERlYnVnU2hhZGVycyA9IFdlYkdMRGVidWdTaGFk
ZXJzOjpjcmVhdGUodGhpcyk7CisgICAgICAgICAgICByZXR1cm4gbV93ZWJnbERlYnVnU2hhZGVy
cy5nZXQoKTsKKyAgICAgICAgfQorICAgIH0KIAogICAgIHJldHVybiAwOwogfQpAQCAtMjI0NSw2
ICsyMjc1LDE2IEBAIFdlYkdMR2V0SW5mbyBXZWJHTFJlbmRlcmluZ0NvbnRleHQ6OmdldFAKICAg
ICAgICAgICAgIHJldHVybiBnZXRVbnNpZ25lZEludFBhcmFtZXRlcihFeHRlbnNpb25zM0Q6OkZS
QUdNRU5UX1NIQURFUl9ERVJJVkFUSVZFX0hJTlRfT0VTKTsKICAgICAgICAgbV9jb250ZXh0LT5z
eW50aGVzaXplR0xFcnJvcihHcmFwaGljc0NvbnRleHQzRDo6SU5WQUxJRF9FTlVNKTsKICAgICAg
ICAgcmV0dXJuIFdlYkdMR2V0SW5mbygpOworICAgIGNhc2UgV2ViR0xEZWJ1Z1JlbmRlcmVySW5m
bzo6VU5NQVNLRURfUkVOREVSRVJfV0VCR0w6CisgICAgICAgIGlmIChtX3dlYmdsRGVidWdSZW5k
ZXJlckluZm8pCisgICAgICAgICAgICByZXR1cm4gV2ViR0xHZXRJbmZvKG1fY29udGV4dC0+Z2V0
U3RyaW5nKEdyYXBoaWNzQ29udGV4dDNEOjpSRU5ERVJFUikpOworICAgICAgICBtX2NvbnRleHQt
PnN5bnRoZXNpemVHTEVycm9yKEdyYXBoaWNzQ29udGV4dDNEOjpJTlZBTElEX0VOVU0pOworICAg
ICAgICByZXR1cm4gV2ViR0xHZXRJbmZvKCk7CisgICAgY2FzZSBXZWJHTERlYnVnUmVuZGVyZXJJ
bmZvOjpVTk1BU0tFRF9WRU5ET1JfV0VCR0w6CisgICAgICAgIGlmIChtX3dlYmdsRGVidWdSZW5k
ZXJlckluZm8pCisgICAgICAgICAgICByZXR1cm4gV2ViR0xHZXRJbmZvKG1fY29udGV4dC0+Z2V0
U3RyaW5nKEdyYXBoaWNzQ29udGV4dDNEOjpWRU5ET1IpKTsKKyAgICAgICAgbV9jb250ZXh0LT5z
eW50aGVzaXplR0xFcnJvcihHcmFwaGljc0NvbnRleHQzRDo6SU5WQUxJRF9FTlVNKTsKKyAgICAg
ICAgcmV0dXJuIFdlYkdMR2V0SW5mbygpOwogICAgIGNhc2UgRXh0ZW5zaW9uczNEOjpWRVJURVhf
QVJSQVlfQklORElOR19PRVM6IC8vIE9FU192ZXJ0ZXhfYXJyYXlfb2JqZWN0CiAgICAgICAgIGlm
IChtX29lc1ZlcnRleEFycmF5T2JqZWN0KSB7CiAgICAgICAgICAgICBpZiAoIW1fYm91bmRWZXJ0
ZXhBcnJheU9iamVjdC0+aXNEZWZhdWx0T2JqZWN0KCkpCkBAIC0yNDE3LDYgKzI0NTcsMTMgQEAg
VmVjdG9yPFN0cmluZz4gV2ViR0xSZW5kZXJpbmdDb250ZXh0OjpnZQogICAgIGlmIChtX2NvbnRl
eHQtPmdldEV4dGVuc2lvbnMoKS0+c3VwcG9ydHMoIkdMX09FU192ZXJ0ZXhfYXJyYXlfb2JqZWN0
IikpCiAgICAgICAgIHJlc3VsdC5hcHBlbmQoIk9FU192ZXJ0ZXhfYXJyYXlfb2JqZWN0Iik7CiAg
ICAgcmVzdWx0LmFwcGVuZCgiV0VCS0lUX2xvc2VfY29udGV4dCIpOworCisgICAgaWYgKGFsbG93
UHJpdmlsZWdlZEV4dGVuc2lvbnMoKSkgeworICAgICAgICBpZiAobV9jb250ZXh0LT5nZXRFeHRl
bnNpb25zKCktPnN1cHBvcnRzKCJHTF9BTkdMRV90cmFuc2xhdGVkX3NoYWRlcl9zb3VyY2UiKSkK
KyAgICAgICAgICAgIHJlc3VsdC5hcHBlbmQoIldFQkdMX2RlYnVnX3NoYWRlcnMiKTsKKyAgICAg
ICAgcmVzdWx0LmFwcGVuZCgiV0VCR0xfZGVidWdfcmVuZGVyZXJfaW5mbyIpOworICAgIH0KKwog
ICAgIHJldHVybiByZXN1bHQ7CiB9CiAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFz
L1dlYkdMUmVuZGVyaW5nQ29udGV4dC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2h0
bWwvY2FudmFzL1dlYkdMUmVuZGVyaW5nQ29udGV4dC5oCShyZXZpc2lvbiA5NzQ5NykKKysrIFNv
dXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMUmVuZGVyaW5nQ29udGV4dC5oCSh3b3JraW5n
IGNvcHkpCkBAIC00MCw5ICs0MCwxOSBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKK2NsYXNz
IEhUTUxJbWFnZUVsZW1lbnQ7CitjbGFzcyBIVE1MVmlkZW9FbGVtZW50OworY2xhc3MgSW1hZ2VC
dWZmZXI7CitjbGFzcyBJbWFnZURhdGE7CitjbGFzcyBJbnRTaXplOworY2xhc3MgT0VTU3RhbmRh
cmREZXJpdmF0aXZlczsKK2NsYXNzIE9FU1RleHR1cmVGbG9hdDsKK2NsYXNzIE9FU1ZlcnRleEFy
cmF5T2JqZWN0OwogY2xhc3MgV2ViR0xBY3RpdmVJbmZvOwogY2xhc3MgV2ViR0xCdWZmZXI7CiBj
bGFzcyBXZWJHTENvbnRleHRBdHRyaWJ1dGVzOworY2xhc3MgV2ViR0xEZWJ1Z1JlbmRlcmVySW5m
bzsKK2NsYXNzIFdlYkdMRGVidWdTaGFkZXJzOwogY2xhc3MgV2ViR0xFeHRlbnNpb247CiBjbGFz
cyBXZWJHTEZyYW1lYnVmZmVyOwogY2xhc3MgV2ViR0xPYmplY3Q7CkBAIC01MSwxNiArNjEsOCBA
QCBjbGFzcyBXZWJHTFJlbmRlcmJ1ZmZlcjsKIGNsYXNzIFdlYkdMU2hhZGVyOwogY2xhc3MgV2Vi
R0xUZXh0dXJlOwogY2xhc3MgV2ViR0xVbmlmb3JtTG9jYXRpb247Ci1jbGFzcyBXZWJLaXRMb3Nl
Q29udGV4dDsKLWNsYXNzIEhUTUxJbWFnZUVsZW1lbnQ7Ci1jbGFzcyBIVE1MVmlkZW9FbGVtZW50
OwotY2xhc3MgSW1hZ2VCdWZmZXI7Ci1jbGFzcyBJbWFnZURhdGE7Ci1jbGFzcyBJbnRTaXplOwot
Y2xhc3MgT0VTU3RhbmRhcmREZXJpdmF0aXZlczsKLWNsYXNzIE9FU1RleHR1cmVGbG9hdDsKLWNs
YXNzIE9FU1ZlcnRleEFycmF5T2JqZWN0OwogY2xhc3MgV2ViR0xWZXJ0ZXhBcnJheU9iamVjdE9F
UzsKK2NsYXNzIFdlYktpdExvc2VDb250ZXh0OwogCiBjbGFzcyBXZWJHTFJlbmRlcmluZ0NvbnRl
eHQgOiBwdWJsaWMgQ2FudmFzUmVuZGVyaW5nQ29udGV4dCB7CiBwdWJsaWM6CkBAIC0zMDYsNiAr
MzA4LDcgQEAgcHVibGljOgogICBwcml2YXRlOgogICAgIGZyaWVuZCBjbGFzcyBXZWJHTE9iamVj
dDsKICAgICBmcmllbmQgY2xhc3MgT0VTVmVydGV4QXJyYXlPYmplY3Q7CisgICAgZnJpZW5kIGNs
YXNzIFdlYkdMRGVidWdTaGFkZXJzOwogCiAgICAgV2ViR0xSZW5kZXJpbmdDb250ZXh0KEhUTUxD
YW52YXNFbGVtZW50KiwgUGFzc1JlZlB0cjxHcmFwaGljc0NvbnRleHQzRD4sIEdyYXBoaWNzQ29u
dGV4dDNEOjpBdHRyaWJ1dGVzKTsKICAgICB2b2lkIGluaXRpYWxpemVOZXdDb250ZXh0KCk7CkBA
IC00NzQsNiArNDc3LDggQEAgcHVibGljOgogICAgIE93blB0cjxPRVNTdGFuZGFyZERlcml2YXRp
dmVzPiBtX29lc1N0YW5kYXJkRGVyaXZhdGl2ZXM7CiAgICAgT3duUHRyPE9FU1ZlcnRleEFycmF5
T2JqZWN0PiBtX29lc1ZlcnRleEFycmF5T2JqZWN0OwogICAgIE93blB0cjxXZWJLaXRMb3NlQ29u
dGV4dD4gbV93ZWJraXRMb3NlQ29udGV4dDsKKyAgICBPd25QdHI8V2ViR0xEZWJ1Z1JlbmRlcmVy
SW5mbz4gbV93ZWJnbERlYnVnUmVuZGVyZXJJbmZvOworICAgIE93blB0cjxXZWJHTERlYnVnU2hh
ZGVycz4gbV93ZWJnbERlYnVnU2hhZGVyczsKIAogICAgIC8vIEhlbHBlcnMgZm9yIGdldFBhcmFt
ZXRlciBhbmQgb3RoZXJzCiAgICAgV2ViR0xHZXRJbmZvIGdldEJvb2xlYW5QYXJhbWV0ZXIoR0Mz
RGVudW0pOwpAQCAtNjIyLDYgKzYyNyw5IEBAIHB1YmxpYzoKICAgICAvLyBIZWxwZXIgZm9yIHJl
c3RvcmF0aW9uIGFmdGVyIGNvbnRleHQgbG9zdC4KICAgICB2b2lkIG1heWJlUmVzdG9yZUNvbnRl
eHQoTG9zdENvbnRleHRNb2RlKTsKIAorICAgIC8vIERldGVybWluZSBpZiB3ZSBhcmUgcnVubmlu
ZyB0aGUgcHJpdmlsZWdlZCBjb2RlIGluIHRoZSBicm93c2VyLgorICAgIGJvb2wgYWxsb3dQcml2
aWxlZ2VkRXh0ZW5zaW9ucygpIGNvbnN0OworCiAgICAgZnJpZW5kIGNsYXNzIFdlYkdMU3RhdGVS
ZXN0b3JlcjsKIH07CiAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0V4
dGVuc2lvbnMzRC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL0V4dGVuc2lvbnMzRC5oCShyZXZpc2lvbiA5NzQ5NykKKysrIFNvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL0V4dGVuc2lvbnMzRC5oCSh3b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEs
NSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMCBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDExIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTU2LDYgKzU2LDcgQEAg
cHVibGljOgogICAgIC8vICAgR0xfT0VTX3N0YW5kYXJkX2Rlcml2YXRpdmVzCiAgICAgLy8gICBH
TF9PRVNfcmdiOF9yZ2JhOAogICAgIC8vICAgR0xfT0VTX3ZlcnRleF9hcnJheV9vYmplY3QKKyAg
ICAvLyAgIEdMX0FOR0xFX3RyYW5zbGF0ZWRfc2hhZGVyX3NvdXJjZQogCiAgICAgLy8gVGFrZXMg
ZnVsbCBuYW1lIG9mIGV4dGVuc2lvbjsgZm9yIGV4YW1wbGUsCiAgICAgLy8gIkdMX0VYVF90ZXh0
dXJlX2Zvcm1hdF9CR1JBODg4OCIuCkBAIC0xMDMsNiArMTA0LDkgQEAgcHVibGljOgogICAgICAg
ICAKICAgICAgICAgLy8gR0xfT0VTX3ZlcnRleF9hcnJheV9vYmplY3QgbmFtZXMKICAgICAgICAg
VkVSVEVYX0FSUkFZX0JJTkRJTkdfT0VTID0gMHg4NUI1LAorCisgICAgICAgIC8vIEdMX0FOR0xF
X3RyYW5zbGF0ZWRfc2hhZGVyX3NvdXJjZQorICAgICAgICBUUkFOU0xBVEVEX1NIQURFUl9TT1VS
Q0VfTEVOR1RIX0FOR0xFID0gMHg5M0EwLAogICAgIH07CiAKICAgICAvLyBHTF9BUkJfcm9idXN0
bmVzcwpAQCAtMTI1LDYgKzEyOSw5IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgZGVsZXRl
VmVydGV4QXJyYXlPRVMoUGxhdGZvcm0zRE9iamVjdCkgPSAwOwogICAgIHZpcnR1YWwgR0MzRGJv
b2xlYW4gaXNWZXJ0ZXhBcnJheU9FUyhQbGF0Zm9ybTNET2JqZWN0KSA9IDA7CiAgICAgdmlydHVh
bCB2b2lkIGJpbmRWZXJ0ZXhBcnJheU9FUyhQbGF0Zm9ybTNET2JqZWN0KSA9IDA7CisKKyAgICAv
LyBHTF9BTkdMRV90cmFuc2xhdGVkX3NoYWRlcl9zb3VyY2UKKyAgICB2aXJ0dWFsIFN0cmluZyBn
ZXRUcmFuc2xhdGVkU2hhZGVyU291cmNlQU5HTEUoUGxhdGZvcm0zRE9iamVjdCkgPSAwOwogfTsK
IAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvR3JhcGhpY3NUeXBlczNELmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NUeXBlczNELmgJKHJldmlzaW9uIDk3NDk3KQorKysg
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NUeXBlczNELmgJKHdvcmtp
bmcgY29weSkKQEAgLTQ0LDYgKzQ0LDcgQEAgdHlwZWRlZiBmbG9hdCBHQzNEZmxvYXQ7CiB0eXBl
ZGVmIGZsb2F0IEdDM0RjbGFtcGY7CiB0eXBlZGVmIHNpZ25lZCBsb25nIGludCBHQzNEaW50cHRy
OwogdHlwZWRlZiBzaWduZWQgbG9uZyBpbnQgR0MzRHNpemVpcHRyOwordHlwZWRlZiBjaGFyIEdD
M0RjaGFyOwogCiB0eXBlZGVmIEdDM0R1aW50IFBsYXRmb3JtM0RPYmplY3Q7CiAKSW5kZXg6IFNv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0V4dGVuc2lvbnMzRENocm9t
aXVtLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hy
b21pdW0vRXh0ZW5zaW9uczNEQ2hyb21pdW0uaAkocmV2aXNpb24gOTc0OTcpCisrKyBTb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9FeHRlbnNpb25zM0RDaHJvbWl1bS5o
CSh3b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAx
MCBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDEx
IEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMKQEAgLTU2LDYgKzU2LDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBkZWxl
dGVWZXJ0ZXhBcnJheU9FUyhQbGF0Zm9ybTNET2JqZWN0KTsKICAgICB2aXJ0dWFsIEdDM0Rib29s
ZWFuIGlzVmVydGV4QXJyYXlPRVMoUGxhdGZvcm0zRE9iamVjdCk7CiAgICAgdmlydHVhbCB2b2lk
IGJpbmRWZXJ0ZXhBcnJheU9FUyhQbGF0Zm9ybTNET2JqZWN0KTsKKyAgICB2aXJ0dWFsIFN0cmlu
ZyBnZXRUcmFuc2xhdGVkU2hhZGVyU291cmNlQU5HTEUoUGxhdGZvcm0zRE9iamVjdCk7CiAKICAg
ICBlbnVtIHsKICAgICAgICAgLy8gR0xfQ0hST01JVU1fbWFwX3N1YiAoZW51bXMgaW5oZXJpdGVk
IGZyb20gR0xfQVJCX3ZlcnRleF9idWZmZXJfb2JqZWN0KQpJbmRleDogU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0V4dGVuc2lvbnMzRE9wZW5HTC5jcHAKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0V4dGVuc2lvbnMz
RE9wZW5HTC5jcHAJKHJldmlzaW9uIDk3NDk3KQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3Mvb3BlbmdsL0V4dGVuc2lvbnMzRE9wZW5HTC5jcHAJKHdvcmtpbmcgY29weSkKQEAg
LTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDEwIEdvb2dsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTEgR29vZ2xlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh
bmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBl
cm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMTkzLDYg
KzE5MywxMSBAQCB2b2lkIEV4dGVuc2lvbnMzRE9wZW5HTDo6YmluZFZlcnRleEFycmF5CiAjZW5k
aWYKIH0KIAorU3RyaW5nIEV4dGVuc2lvbnMzRE9wZW5HTDo6Z2V0VHJhbnNsYXRlZFNoYWRlclNv
dXJjZUFOR0xFKFBsYXRmb3JtM0RPYmplY3Qgc2hhZGVyKQoreworICAgIC8vIEZJWE1FOiBpbXBs
ZW1lbnQgdGhpcyBmdW5jdGlvbiBhbmQgYWRkIEdMX0FOR0xFX3RyYW5zbGF0ZWRfc2hhZGVyX3Nv
dXJjZSBpbiBzdXBwb3J0cygpLgorfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKICNlbmRp
ZiAvLyBFTkFCTEUoV0VCR0wpCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9vcGVuZ2wvRXh0ZW5zaW9uczNET3BlbkdMLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0V4dGVuc2lvbnMzRE9wZW5HTC5oCShyZXZpc2lv
biA5NzQ5NykKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL29wZW5nbC9FeHRl
bnNpb25zM0RPcGVuR0wuaAkod29ya2luZyBjb3B5KQpAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBD
b3B5cmlnaHQgKEMpIDIwMTAgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENv
cHlyaWdodCAoQykgMjAxMSBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAq
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC01MCw2ICs1MCw3IEBAIHB1YmxpYzoKICAgICB2
aXJ0dWFsIHZvaWQgZGVsZXRlVmVydGV4QXJyYXlPRVMoUGxhdGZvcm0zRE9iamVjdCk7CiAgICAg
dmlydHVhbCBHQzNEYm9vbGVhbiBpc1ZlcnRleEFycmF5T0VTKFBsYXRmb3JtM0RPYmplY3QpOwog
ICAgIHZpcnR1YWwgdm9pZCBiaW5kVmVydGV4QXJyYXlPRVMoUGxhdGZvcm0zRE9iamVjdCk7Cisg
ICAgdmlydHVhbCBTdHJpbmcgZ2V0VHJhbnNsYXRlZFNoYWRlclNvdXJjZUFOR0xFKFBsYXRmb3Jt
M0RPYmplY3QpOwogCiBwcml2YXRlOgogICAgIC8vIFRoaXMgY2xhc3Mgb25seSBuZWVkcyB0byBi
ZSBpbnN0YW50aWF0ZWQgYnkgR3JhcGhpY3NDb250ZXh0M0QgaW1wbGVtZW50YXRpb25zLgpJbmRl
eDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvcXQvRXh0ZW5zaW9uczNEUXQuY3Bw
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3F0L0V4dGVu
c2lvbnMzRFF0LmNwcAkocmV2aXNpb24gOTc0OTcpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9xdC9FeHRlbnNpb25zM0RRdC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEsNSAr
MSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDEwIEdvb2dsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTEgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtODgsNiArODgsMTEg
QEAgdm9pZCBFeHRlbnNpb25zM0RRdDo6YmluZFZlcnRleEFycmF5T0VTKAogewogfQogCitTdHJp
bmcgRXh0ZW5zaW9uczNEUXQ6OmdldFRyYW5zbGF0ZWRTaGFkZXJTb3VyY2VBTkdMRShQbGF0Zm9y
bTNET2JqZWN0IHNoYWRlcikKK3sKKyAgICByZXR1cm4gIiI7Cit9CisKIH0gLy8gbmFtZXNwYWNl
IFdlYkNvcmUKIAogI2VuZGlmIC8vIEVOQUJMRShXRUJHTCkKSW5kZXg6IFNvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL3F0L0V4dGVuc2lvbnMzRFF0LmgKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvcXQvRXh0ZW5zaW9uczNEUXQuaAkocmV2aXNp
b24gOTc0OTcpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9xdC9FeHRlbnNp
b25zM0RRdC5oCSh3b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdo
dCAoQykgMjAxMCBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0
IChDKSAyMDExIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMKQEAgLTQ1LDYgKzQ1LDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwg
dm9pZCBkZWxldGVWZXJ0ZXhBcnJheU9FUyhQbGF0Zm9ybTNET2JqZWN0KTsKICAgICB2aXJ0dWFs
IEdDM0Rib29sZWFuIGlzVmVydGV4QXJyYXlPRVMoUGxhdGZvcm0zRE9iamVjdCk7CiAgICAgdmly
dHVhbCB2b2lkIGJpbmRWZXJ0ZXhBcnJheU9FUyhQbGF0Zm9ybTNET2JqZWN0KTsKKyAgICB2aXJ0
dWFsIFN0cmluZyBnZXRUcmFuc2xhdGVkU2hhZGVyU291cmNlQU5HTEUoUGxhdGZvcm0zRE9iamVj
dCk7CiAKIHByaXZhdGU6CiAgICAgLy8gVGhpcyBjbGFzcyBvbmx5IG5lZWRzIHRvIGJlIGluc3Rh
bnRpYXRlZCBieSBHcmFwaGljc0NvbnRleHQzRCBpbXBsZW1lbnRhdGlvbnMuCkluZGV4OiBTb3Vy
Y2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0
L2Nocm9taXVtL0NoYW5nZUxvZwkocmV2aXNpb24gOTc0OTcpCisrKyBTb3VyY2UvV2ViS2l0L2No
cm9taXVtL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE3IEBACisyMDExLTEw
LTE0ICBaaGVueWFvIE1vICA8em1vQGdvb2dsZS5jb20+CisKKyAgICAgICAgSW1wbGVtZW50IFdF
QkdMX2RlYnVnX3NoYWRlcnMgYW5kIFdFQkdMX2RlYnVnX3JlbmRlcmVyX2luZm8gZXh0ZW5zaW9u
cworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzAwNzcK
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIHB1Ymxp
Yy9XZWJHcmFwaGljc0NvbnRleHQzRC5oOiBBZGRlZCBzdXBwb3J0IGZvciBnZXRUcmFuc2xhdGVk
U2hhZGVyU291cmNlQU5HTEUuCisgICAgICAgIChXZWJLaXQ6OldlYkdyYXBoaWNzQ29udGV4dDNE
OjpnZXRUcmFuc2xhdGVkU2hhZGVyU291cmNlQU5HTEUpOgorICAgICAgICAqIHNyYy9FeHRlbnNp
b25zM0RDaHJvbWl1bS5jcHA6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6RXh0ZW5zaW9uczNE
Q2hyb21pdW06OmdldFRyYW5zbGF0ZWRTaGFkZXJTb3VyY2VBTkdMRSk6CisgICAgICAgICogc3Jj
L0dyYXBoaWNzQ29udGV4dDNEQ2hyb21pdW0uY3BwOiBEaXR0by4KKyAgICAgICAgKiBzcmMvR3Jh
cGhpY3NDb250ZXh0M0RQcml2YXRlLmg6IERpdHRvLgorCiAyMDExLTEwLTE0ICBEYW5pZWwgQ2hl
bmcgIDxkY2hlbmdAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIENvbnRleHQtYXdhcmUgSFRNTCBw
YXN0ZSBmb3IgQ2hyb21pdW0KSW5kZXg6IFNvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dl
YkdyYXBoaWNzQ29udGV4dDNELmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9jaHJvbWl1
bS9wdWJsaWMvV2ViR3JhcGhpY3NDb250ZXh0M0QuaAkocmV2aXNpb24gOTc0OTcpCisrKyBTb3Vy
Y2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJHcmFwaGljc0NvbnRleHQzRC5oCSh3b3JraW5n
IGNvcHkpCkBAIC0zNjUsNiArMzY1LDEwIEBAIHB1YmxpYzoKICAgICAvLyBzdGF0ZSBpcyBzdGlj
a3ksIHJhdGhlciB0aGFuIHJlcG9ydGVkIG9ubHkgb25jZS4KICAgICB2aXJ0dWFsIFdHQzNEZW51
bSBnZXRHcmFwaGljc1Jlc2V0U3RhdHVzQVJCKCkgeyByZXR1cm4gMDsgLyogR0xfTk9fRVJST1Ig
Ki8gfQogCisgICAgLy8gRklYTUU6IG1ha2UgdGhpcyBmdW5jdGlvbiBwdXJlIHZpcnR1YWwgb25j
ZSBpdCBpcyBpbXBsZW1lbnRlZCBpbgorICAgIC8vIGJvdGggY29tbWFuZCBidWZmZXIgcG9ydCBh
bmQgaW4tcHJvY2VzcyBwb3J0LgorICAgIHZpcnR1YWwgV2ViU3RyaW5nIGdldFRyYW5zbGF0ZWRT
aGFkZXJTb3VyY2VBTkdMRShXZWJHTElkIHNoYWRlcikgeyByZXR1cm4gV2ViU3RyaW5nKCk7IH0K
KwogI2lmIFdFQktJVF9VU0lOR19TS0lBCiAgICAgR3JHTEludGVyZmFjZSogY3JlYXRlR3JHTElu
dGVyZmFjZSgpOwogI2VuZGlmCkluZGV4OiBTb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9FeHRl
bnNpb25zM0RDaHJvbWl1bS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9jaHJvbWl1
bS9zcmMvRXh0ZW5zaW9uczNEQ2hyb21pdW0uY3BwCShyZXZpc2lvbiA5NzQ5NykKKysrIFNvdXJj
ZS9XZWJLaXQvY2hyb21pdW0vc3JjL0V4dGVuc2lvbnMzRENocm9taXVtLmNwcAkod29ya2luZyBj
b3B5KQpAQCAtMTE1LDYgKzExNSwxMSBAQCB2b2lkIEV4dGVuc2lvbnMzRENocm9taXVtOjpiaW5k
VmVydGV4QXJyCiB7CiB9CiAKK1N0cmluZyBFeHRlbnNpb25zM0RDaHJvbWl1bTo6Z2V0VHJhbnNs
YXRlZFNoYWRlclNvdXJjZUFOR0xFKFBsYXRmb3JtM0RPYmplY3Qgc2hhZGVyKQoreworICAgIHJl
dHVybiBtX3ByaXZhdGUtPmdldFRyYW5zbGF0ZWRTaGFkZXJTb3VyY2VBTkdMRShzaGFkZXIpOwor
fQorCiB2b2lkIEV4dGVuc2lvbnMzRENocm9taXVtOjpzZXRTd2FwQnVmZmVyc0NvbXBsZXRlQ2Fs
bGJhY2tDSFJPTUlVTShQYXNzT3duUHRyPFN3YXBCdWZmZXJzQ29tcGxldGVDYWxsYmFja0NIUk9N
SVVNPiBjYWxsYmFjaykKIHsKICAgICBtX3ByaXZhdGUtPnNldFN3YXBCdWZmZXJzQ29tcGxldGVD
YWxsYmFja0NIUk9NSVVNKGNhbGxiYWNrKTsKSW5kZXg6IFNvdXJjZS9XZWJLaXQvY2hyb21pdW0v
c3JjL0dyYXBoaWNzQ29udGV4dDNEQ2hyb21pdW0uY3BwCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9X
ZWJLaXQvY2hyb21pdW0vc3JjL0dyYXBoaWNzQ29udGV4dDNEQ2hyb21pdW0uY3BwCShyZXZpc2lv
biA5NzQ5NykKKysrIFNvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0dyYXBoaWNzQ29udGV4dDNE
Q2hyb21pdW0uY3BwCSh3b3JraW5nIGNvcHkpCkBAIC04ODcsNiArODg3LDggQEAgREVMRUdBVEVf
VE9fSU1QTF81KHJlbmRlcmJ1ZmZlclN0b3JhZ2VNdQogREVMRUdBVEVfVE9fSU1QTChyYXRlTGlt
aXRPZmZzY3JlZW5Db250ZXh0Q0hST01JVU0pCiBERUxFR0FURV9UT19JTVBMX1IoZ2V0R3JhcGhp
Y3NSZXNldFN0YXR1c0FSQiwgR0MzRGVudW0pCiAKK0RFTEVHQVRFX1RPX0lNUExfMVIoZ2V0VHJh
bnNsYXRlZFNoYWRlclNvdXJjZUFOR0xFLCBQbGF0Zm9ybTNET2JqZWN0LCBTdHJpbmcpCisKIC8v
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLQogLy8gR3JhcGhpY3NDb250ZXh0M0QKIC8vCkluZGV4OiBTb3VyY2UvV2Vi
S2l0L2Nocm9taXVtL3NyYy9HcmFwaGljc0NvbnRleHQzRFByaXZhdGUuaAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9HcmFwaGljc0NvbnRleHQzRFByaXZhdGUuaAko
cmV2aXNpb24gOTc0OTcpCisrKyBTb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9HcmFwaGljc0Nv
bnRleHQzRFByaXZhdGUuaAkod29ya2luZyBjb3B5KQpAQCAtMzAzLDYgKzMwMyw5IEBAIHB1Ymxp
YzoKICAgICAvLyBHTF9BUkJfcm9idXN0bmVzcwogICAgIEdDM0RlbnVtIGdldEdyYXBoaWNzUmVz
ZXRTdGF0dXNBUkIoKTsKIAorICAgIC8vIEdMX0FOR0xFX3RyYW5zbGF0ZWRfc2hhZGVyX3NvdXJj
ZQorICAgIFN0cmluZyBnZXRUcmFuc2xhdGVkU2hhZGVyU291cmNlQU5HTEUoUGxhdGZvcm0zRE9i
amVjdCBzaGFkZXIpOworCiBwcml2YXRlOgogICAgIEdyYXBoaWNzQ29udGV4dDNEUHJpdmF0ZShX
ZWJLaXQ6OldlYlZpZXdJbXBsKiwgUGFzc093blB0cjxXZWJLaXQ6OldlYkdyYXBoaWNzQ29udGV4
dDNEPiwgR3JhcGhpY3NDb250ZXh0M0Q6OkF0dHJpYnV0ZXMpOwogCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>111080</attachid>
            <date>2011-10-14 14:39:55 -0700</date>
            <delta_ts>2011-10-14 14:47:41 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-70077-20111014143953.patch</filename>
            <type>text/plain</type>
            <size>24530</size>
            <attacher name="Zhenyao Mo">zmo</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDk3NDk3KQorKysgU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsNDcgQEAKKzIwMTEtMTAtMTQgIFpoZW55YW8g
TW8gIDx6bW9AZ29vZ2xlLmNvbT4KKworICAgICAgICBJbXBsZW1lbnQgV0VCR0xfZGVidWdfc2hh
ZGVycyBhbmQgV0VCR0xfZGVidWdfcmVuZGVyZXJfaW5mbyBleHRlbnNpb25zCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03MDA3NworCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogV2ViQ29yZS5neXBpOiBhZGRl
ZCBuZXcgZXh0ZW5zaW9uIGNsYXNzIGZpbGVzLgorICAgICAgICAqIGJpbmRpbmdzL2pzL0pTV2Vi
R0xSZW5kZXJpbmdDb250ZXh0Q3VzdG9tLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OnRvSlMpOiBI
YW5kbGVzIHR3byBuZXcgZXh0ZW5zaW9ucy4KKyAgICAgICAgKiBiaW5kaW5ncy92OC9jdXN0b20v
VjhXZWJHTFJlbmRlcmluZ0NvbnRleHRDdXN0b20uY3BwOgorICAgICAgICAoV2ViQ29yZTo6dG9W
OE9iamVjdCk6IERpdHRvLgorICAgICAgICAqIGh0bWwvY2FudmFzL1dlYkdMRGVidWdSZW5kZXJl
ckluZm8uY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OldlYkdMRGVidWdSZW5kZXJlcklu
Zm86OldlYkdMRGVidWdSZW5kZXJlckluZm8pOgorICAgICAgICAoV2ViQ29yZTo6V2ViR0xEZWJ1
Z1JlbmRlcmVySW5mbzo6fldlYkdMRGVidWdSZW5kZXJlckluZm8pOgorICAgICAgICAoV2ViQ29y
ZTo6V2ViR0xEZWJ1Z1JlbmRlcmVySW5mbzo6Z2V0TmFtZSk6CisgICAgICAgIChXZWJDb3JlOjpX
ZWJHTERlYnVnUmVuZGVyZXJJbmZvOjpjcmVhdGUpOgorICAgICAgICAqIGh0bWwvY2FudmFzL1dl
YkdMRGVidWdSZW5kZXJlckluZm8uaDogQWRkZWQuCisgICAgICAgICogaHRtbC9jYW52YXMvV2Vi
R0xEZWJ1Z1JlbmRlcmVySW5mby5pZGw6IEFkZGVkLgorICAgICAgICAqIGh0bWwvY2FudmFzL1dl
YkdMRGVidWdTaGFkZXJzLmNwcDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpXZWJHTERlYnVn
U2hhZGVyczo6V2ViR0xEZWJ1Z1NoYWRlcnMpOgorICAgICAgICAoV2ViQ29yZTo6V2ViR0xEZWJ1
Z1NoYWRlcnM6On5XZWJHTERlYnVnU2hhZGVycyk6CisgICAgICAgIChXZWJDb3JlOjpXZWJHTERl
YnVnU2hhZGVyczo6Z2V0TmFtZSk6CisgICAgICAgIChXZWJDb3JlOjpXZWJHTERlYnVnU2hhZGVy
czo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OldlYkdMRGVidWdTaGFkZXJzOjpnZXRUcmFu
c2xhdGVkU2hhZGVyU291cmNlKToKKyAgICAgICAgKiBodG1sL2NhbnZhcy9XZWJHTERlYnVnU2hh
ZGVycy5oOiBBZGRlZC4KKyAgICAgICAgKiBodG1sL2NhbnZhcy9XZWJHTERlYnVnU2hhZGVycy5p
ZGw6IEFkZGVkLgorICAgICAgICAqIGh0bWwvY2FudmFzL1dlYkdMRXh0ZW5zaW9uLmg6CisgICAg
ICAgICogaHRtbC9jYW52YXMvV2ViR0xSZW5kZXJpbmdDb250ZXh0LmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OldlYkdMUmVuZGVyaW5nQ29udGV4dDo6YWxsb3dQcml2aWxlZ2VkRXh0ZW5zaW9ucyk6
IFRvIGJlIGltcGxlbWVudGVkIC0gZGVjaWRpbmcgd2hldGhlciB0aGUgdHdvIGV4dGVuc2lvbnMg
c2hvdWxkIGJlIGFsbG93ZWQgb3Igbm90LgorICAgICAgICAoV2ViQ29yZTo6V2ViR0xSZW5kZXJp
bmdDb250ZXh0OjpnZXRFeHRlbnNpb24pOiBIYW5kbGVzIHR3byBuZXcgZXh0ZW5zaW9ucy4KKyAg
ICAgICAgKFdlYkNvcmU6OldlYkdMUmVuZGVyaW5nQ29udGV4dDo6Z2V0UGFyYW1ldGVyKTogSGFu
ZGxlcyBVTk1BU0tFRF9WRU5ET1JfV0VCR0wgLyBVTk1BU0tFRF9SRU5ERVJFUl9XRUJHTAorICAg
ICAgICAoV2ViQ29yZTo6V2ViR0xSZW5kZXJpbmdDb250ZXh0OjpnZXRTdXBwb3J0ZWRFeHRlbnNp
b25zKTogSGFuZGxlcyB0d28gbmV3IGV4dGVuc2lvbnMuCisgICAgICAgICogaHRtbC9jYW52YXMv
V2ViR0xSZW5kZXJpbmdDb250ZXh0Lmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvRXh0
ZW5zaW9uczNELmg6IERpdHRvLgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNz
VHlwZXMzRC5oOiBBZGQgR0MzRGNoYXIuCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2hy
b21pdW0vRXh0ZW5zaW9uczNEQ2hyb21pdW0uaDogSGFuZGxlcyB0d28gbmV3IGV4dGVuc2lvbnMu
CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0V4dGVuc2lvbnMzRE9wZW5HTC5j
cHA6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6Z2V0VHJhbnNsYXRlZFNoYWRlclNvdXJjZUFO
R0xFKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wvRXh0ZW5zaW9uczNET3Bl
bkdMLmg6IERpdHRvLgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL3F0L0V4dGVuc2lvbnMz
RFF0LmNwcDogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpFeHRlbnNpb25zM0RRdDo6Z2V0VHJh
bnNsYXRlZFNoYWRlclNvdXJjZUFOR0xFKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9x
dC9FeHRlbnNpb25zM0RRdC5oOiBEaXR0by4KKwogMjAxMS0xMC0xNCAgRGFuaWVsIENoZW5nICA8
ZGNoZW5nQGNocm9taXVtLm9yZz4KIAogICAgICAgICBDb250ZXh0LWF3YXJlIEhUTUwgcGFzdGUg
Zm9yIENocm9taXVtCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpCShyZXZpc2lvbiA5NzQ5NykKKysrIFNv
dXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQkod29ya2luZyBjb3B5KQpAQCAtMTM2Miw2ICsxMzYy
LDggQEAKICAgICAgICAgICAgICdodG1sL2NhbnZhcy9XZWJHTEJ1ZmZlci5pZGwnLAogICAgICAg
ICAgICAgJ2h0bWwvY2FudmFzL1dlYkdMQ29udGV4dEF0dHJpYnV0ZXMuaWRsJywKICAgICAgICAg
ICAgICdodG1sL2NhbnZhcy9XZWJHTENvbnRleHRFdmVudC5pZGwnLAorICAgICAgICAgICAgJ2h0
bWwvY2FudmFzL1dlYkdMRGVidWdSZW5kZXJlckluZm8uaWRsJywKKyAgICAgICAgICAgICdodG1s
L2NhbnZhcy9XZWJHTERlYnVnU2hhZGVycy5pZGwnLAogICAgICAgICAgICAgJ2h0bWwvY2FudmFz
L1dlYkdMRnJhbWVidWZmZXIuaWRsJywKICAgICAgICAgICAgICdodG1sL2NhbnZhcy9XZWJHTFBy
b2dyYW0uaWRsJywKICAgICAgICAgICAgICdodG1sL2NhbnZhcy9XZWJHTFJlbmRlcmJ1ZmZlci5p
ZGwnLApAQCAtNTY2Miw2ICs1NjY0LDEwIEBACiAgICAgICAgICAgICAnaHRtbC9jYW52YXMvV2Vi
R0xDb250ZXh0QXR0cmlidXRlcy5oJywKICAgICAgICAgICAgICdodG1sL2NhbnZhcy9XZWJHTENv
bnRleHRFdmVudC5jcHAnLAogICAgICAgICAgICAgJ2h0bWwvY2FudmFzL1dlYkdMQ29udGV4dEV2
ZW50LmgnLAorICAgICAgICAgICAgJ2h0bWwvY2FudmFzL1dlYkdMRGVidWdSZW5kZXJlckluZm8u
Y3BwJywKKyAgICAgICAgICAgICdodG1sL2NhbnZhcy9XZWJHTERlYnVnUmVuZGVyZXJJbmZvLmgn
LAorICAgICAgICAgICAgJ2h0bWwvY2FudmFzL1dlYkdMRGVidWdTaGFkZXJzLmNwcCcsCisgICAg
ICAgICAgICAnaHRtbC9jYW52YXMvV2ViR0xEZWJ1Z1NoYWRlcnMuaCcsCiAgICAgICAgICAgICAn
aHRtbC9jYW52YXMvV2ViR0xFeHRlbnNpb24uY3BwJywKICAgICAgICAgICAgICdodG1sL2NhbnZh
cy9XZWJHTEV4dGVuc2lvbi5oJywKICAgICAgICAgICAgICdodG1sL2NhbnZhcy9XZWJHTEZyYW1l
YnVmZmVyLmNwcCcsCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1dlYkdMUmVu
ZGVyaW5nQ29udGV4dEN1c3RvbS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3MvanMvSlNXZWJHTFJlbmRlcmluZ0NvbnRleHRDdXN0b20uY3BwCShyZXZpc2lvbiA5NzQ5
NykKKysrIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTV2ViR0xSZW5kZXJpbmdDb250ZXh0
Q3VzdG9tLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjksNDIgKzI5LDQ0IEBACiAKICNpbmNsdWRl
ICJKU1dlYkdMUmVuZGVyaW5nQ29udGV4dC5oIgogCi0jaW5jbHVkZSAiV2ViS2l0TG9zZUNvbnRl
eHQuaCIKICNpbmNsdWRlICJFeGNlcHRpb25Db2RlLmgiCisjaW5jbHVkZSAiRmxvYXQzMkFycmF5
LmgiCiAjaW5jbHVkZSAiSFRNTENhbnZhc0VsZW1lbnQuaCIKICNpbmNsdWRlICJIVE1MSW1hZ2VF
bGVtZW50LmgiCi0jaW5jbHVkZSAiSlNXZWJLaXRMb3NlQ29udGV4dC5oIgorI2luY2x1ZGUgIklu
dDMyQXJyYXkuaCIKKyNpbmNsdWRlICJKU0Zsb2F0MzJBcnJheS5oIgogI2luY2x1ZGUgIkpTSFRN
TENhbnZhc0VsZW1lbnQuaCIKICNpbmNsdWRlICJKU0hUTUxJbWFnZUVsZW1lbnQuaCIKICNpbmNs
dWRlICJKU0ltYWdlRGF0YS5oIgorI2luY2x1ZGUgIkpTSW50MzJBcnJheS5oIgogI2luY2x1ZGUg
IkpTT0VTU3RhbmRhcmREZXJpdmF0aXZlcy5oIgogI2luY2x1ZGUgIkpTT0VTVGV4dHVyZUZsb2F0
LmgiCiAjaW5jbHVkZSAiSlNPRVNWZXJ0ZXhBcnJheU9iamVjdC5oIgotI2luY2x1ZGUgIkpTV2Vi
R0xWZXJ0ZXhBcnJheU9iamVjdE9FUy5oIgorI2luY2x1ZGUgIkpTVWludDhBcnJheS5oIgogI2lu
Y2x1ZGUgIkpTV2ViR0xCdWZmZXIuaCIKLSNpbmNsdWRlICJKU0Zsb2F0MzJBcnJheS5oIgogI2lu
Y2x1ZGUgIkpTV2ViR0xGcmFtZWJ1ZmZlci5oIgotI2luY2x1ZGUgIkpTSW50MzJBcnJheS5oIgog
I2luY2x1ZGUgIkpTV2ViR0xQcm9ncmFtLmgiCiAjaW5jbHVkZSAiSlNXZWJHTFJlbmRlcmJ1ZmZl
ci5oIgogI2luY2x1ZGUgIkpTV2ViR0xTaGFkZXIuaCIKICNpbmNsdWRlICJKU1dlYkdMVGV4dHVy
ZS5oIgogI2luY2x1ZGUgIkpTV2ViR0xVbmlmb3JtTG9jYXRpb24uaCIKLSNpbmNsdWRlICJKU1Vp
bnQ4QXJyYXkuaCIKKyNpbmNsdWRlICJKU1dlYkdMVmVydGV4QXJyYXlPYmplY3RPRVMuaCIKICNp
bmNsdWRlICJKU1dlYktpdENTU01hdHJpeC5oIgorI2luY2x1ZGUgIkpTV2ViS2l0TG9zZUNvbnRl
eHQuaCIKICNpbmNsdWRlICJOb3RJbXBsZW1lbnRlZC5oIgogI2luY2x1ZGUgIk9FU1N0YW5kYXJk
RGVyaXZhdGl2ZXMuaCIKICNpbmNsdWRlICJPRVNUZXh0dXJlRmxvYXQuaCIKICNpbmNsdWRlICJP
RVNWZXJ0ZXhBcnJheU9iamVjdC5oIgotI2luY2x1ZGUgIldlYkdMVmVydGV4QXJyYXlPYmplY3RP
RVMuaCIKICNpbmNsdWRlICJXZWJHTEJ1ZmZlci5oIgotI2luY2x1ZGUgIkZsb2F0MzJBcnJheS5o
IgorI2luY2x1ZGUgIldlYkdMRGVidWdSZW5kZXJlckluZm8uaCIKKyNpbmNsdWRlICJXZWJHTERl
YnVnU2hhZGVycy5oIgogI2luY2x1ZGUgIldlYkdMRXh0ZW5zaW9uLmgiCiAjaW5jbHVkZSAiV2Vi
R0xGcmFtZWJ1ZmZlci5oIgogI2luY2x1ZGUgIldlYkdMR2V0SW5mby5oIgotI2luY2x1ZGUgIklu
dDMyQXJyYXkuaCIKICNpbmNsdWRlICJXZWJHTFByb2dyYW0uaCIKICNpbmNsdWRlICJXZWJHTFJl
bmRlcmluZ0NvbnRleHQuaCIKKyNpbmNsdWRlICJXZWJHTFZlcnRleEFycmF5T2JqZWN0T0VTLmgi
CisjaW5jbHVkZSAiV2ViS2l0TG9zZUNvbnRleHQuaCIKICNpbmNsdWRlIDxydW50aW1lL0Vycm9y
Lmg+CiAjaW5jbHVkZSA8cnVudGltZS9KU0FycmF5Lmg+CiAjaW5jbHVkZSA8d3RmL0Zhc3RNYWxs
b2MuaD4KQEAgLTE4Nyw2ICsxODksMTAgQEAgc3RhdGljIEpTVmFsdWUgdG9KUyhFeGVjU3RhdGUq
IGV4ZWMsIEpTRAogICAgICAgICByZXR1cm4gdG9KUyhleGVjLCBnbG9iYWxPYmplY3QsIHN0YXRp
Y19jYXN0PE9FU1RleHR1cmVGbG9hdCo+KGV4dGVuc2lvbikpOwogICAgIGNhc2UgV2ViR0xFeHRl
bnNpb246Ok9FU1ZlcnRleEFycmF5T2JqZWN0TmFtZToKICAgICAgICAgcmV0dXJuIHRvSlMoZXhl
YywgZ2xvYmFsT2JqZWN0LCBzdGF0aWNfY2FzdDxPRVNWZXJ0ZXhBcnJheU9iamVjdCo+KGV4dGVu
c2lvbikpOworICAgIGNhc2UgV2ViR0xFeHRlbnNpb246OldlYkdMRGVidWdSZW5kZXJlckluZm9O
YW1lOgorICAgICAgICByZXR1cm4gdG9KUyhleGVjLCBnbG9iYWxPYmplY3QsIHN0YXRpY19jYXN0
PFdlYkdMRGVidWdSZW5kZXJlckluZm8qPihleHRlbnNpb24pKTsKKyAgICBjYXNlIFdlYkdMRXh0
ZW5zaW9uOjpXZWJHTERlYnVnU2hhZGVyc05hbWU6CisgICAgICAgIHJldHVybiB0b0pTKGV4ZWMs
IGdsb2JhbE9iamVjdCwgc3RhdGljX2Nhc3Q8V2ViR0xEZWJ1Z1NoYWRlcnMqPihleHRlbnNpb24p
KTsKICAgICB9CiAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CiAgICAgcmV0dXJuIGpzTnVsbCgp
OwpJbmRleDogU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4V2ViR0xSZW5kZXJp
bmdDb250ZXh0Q3VzdG9tLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy92OC9jdXN0b20vVjhXZWJHTFJlbmRlcmluZ0NvbnRleHRDdXN0b20uY3BwCShyZXZpc2lvbiA5
NzQ5NykKKysrIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9WOFdlYkdMUmVuZGVy
aW5nQ29udGV4dEN1c3RvbS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTU2LDYgKzU2LDggQEAKICNp
bmNsdWRlICJWOFVpbnQzMkFycmF5LmgiCiAjaW5jbHVkZSAiVjhVaW50OEFycmF5LmgiCiAjaW5j
bHVkZSAiVjhXZWJHTEJ1ZmZlci5oIgorI2luY2x1ZGUgIlY4V2ViR0xEZWJ1Z1JlbmRlcmVySW5m
by5oIgorI2luY2x1ZGUgIlY4V2ViR0xEZWJ1Z1NoYWRlcnMuaCIKICNpbmNsdWRlICJWOFdlYkdM
RnJhbWVidWZmZXIuaCIKICNpbmNsdWRlICJWOFdlYkdMUHJvZ3JhbS5oIgogI2luY2x1ZGUgIlY4
V2ViR0xSZW5kZXJidWZmZXIuaCIKQEAgLTE4Miw2ICsxODQsMTQgQEAgc3RhdGljIHY4OjpIYW5k
bGU8djg6OlZhbHVlPiB0b1Y4T2JqZWN0KAogICAgICAgICBleHRlbnNpb25PYmplY3QgPSB0b1Y4
KHN0YXRpY19jYXN0PE9FU1ZlcnRleEFycmF5T2JqZWN0Kj4oZXh0ZW5zaW9uKSk7CiAgICAgICAg
IHJlZmVyZW5jZU5hbWUgPSAib2VzVmVydGV4QXJyYXlPYmplY3ROYW1lIjsKICAgICAgICAgYnJl
YWs7CisgICAgY2FzZSBXZWJHTEV4dGVuc2lvbjo6V2ViR0xEZWJ1Z1JlbmRlcmVySW5mb05hbWU6
CisgICAgICAgIGV4dGVuc2lvbk9iamVjdCA9IHRvVjgoc3RhdGljX2Nhc3Q8V2ViR0xEZWJ1Z1Jl
bmRlcmVySW5mbyo+KGV4dGVuc2lvbikpOworICAgICAgICByZWZlcmVuY2VOYW1lID0gIndlYkdM
RGVidWdSZW5kZXJlckluZm9OYW1lIjsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBXZWJHTEV4
dGVuc2lvbjo6V2ViR0xEZWJ1Z1NoYWRlcnNOYW1lOgorICAgICAgICBleHRlbnNpb25PYmplY3Qg
PSB0b1Y4KHN0YXRpY19jYXN0PFdlYkdMRGVidWdTaGFkZXJzKj4oZXh0ZW5zaW9uKSk7CisgICAg
ICAgIHJlZmVyZW5jZU5hbWUgPSAid2ViR0xEZWJ1Z1NoYWRlcnNOYW1lIjsKKyAgICAgICAgYnJl
YWs7CiAgICAgfQogICAgIEFTU0VSVCghZXh0ZW5zaW9uT2JqZWN0LklzRW1wdHkoKSk7CiAgICAg
VjhET01XcmFwcGVyOjpzZXROYW1lZEhpZGRlblJlZmVyZW5jZShjb250ZXh0T2JqZWN0LCByZWZl
cmVuY2VOYW1lLCBleHRlbnNpb25PYmplY3QpOwpJbmRleDogU291cmNlL1dlYkNvcmUvaHRtbC9j
YW52YXMvV2ViR0xFeHRlbnNpb24uaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9odG1s
L2NhbnZhcy9XZWJHTEV4dGVuc2lvbi5oCShyZXZpc2lvbiA5NzQ5NykKKysrIFNvdXJjZS9XZWJD
b3JlL2h0bWwvY2FudmFzL1dlYkdMRXh0ZW5zaW9uLmgJKHdvcmtpbmcgY29weSkKQEAgLTM4LDYg
KzM4LDggQEAgcHVibGljOgogICAgICAgICBPRVNUZXh0dXJlRmxvYXROYW1lLAogICAgICAgICBP
RVNTdGFuZGFyZERlcml2YXRpdmVzTmFtZSwKICAgICAgICAgT0VTVmVydGV4QXJyYXlPYmplY3RO
YW1lLAorICAgICAgICBXZWJHTERlYnVnUmVuZGVyZXJJbmZvTmFtZSwKKyAgICAgICAgV2ViR0xE
ZWJ1Z1NoYWRlcnNOYW1lLAogICAgIH07CiAKICAgICB2b2lkIHJlZigpIHsgbV9jb250ZXh0LT5y
ZWYoKTsgfQpJbmRleDogU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xSZW5kZXJpbmdD
b250ZXh0LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJH
TFJlbmRlcmluZ0NvbnRleHQuY3BwCShyZXZpc2lvbiA5NzQ5NykKKysrIFNvdXJjZS9XZWJDb3Jl
L2h0bWwvY2FudmFzL1dlYkdMUmVuZGVyaW5nQ29udGV4dC5jcHAJKHdvcmtpbmcgY29weSkKQEAg
LTMyLDcgKzMyLDYgQEAKICNpbmNsdWRlICJDYWNoZWRJbWFnZS5oIgogI2luY2x1ZGUgIkNhbnZh
c1BpeGVsQXJyYXkuaCIKICNpbmNsdWRlICJDaGVja2VkSW50LmgiCi0jaW5jbHVkZSAiV2ViS2l0
TG9zZUNvbnRleHQuaCIKICNpbmNsdWRlICJDb25zb2xlLmgiCiAjaW5jbHVkZSAiRE9NV2luZG93
LmgiCiAjaW5jbHVkZSAiRXh0ZW5zaW9uczNELmgiCkBAIC01NywxMiArNTYsMTUgQEAKICNpbmNs
dWRlICJXZWJHTEJ1ZmZlci5oIgogI2luY2x1ZGUgIldlYkdMQ29udGV4dEF0dHJpYnV0ZXMuaCIK
ICNpbmNsdWRlICJXZWJHTENvbnRleHRFdmVudC5oIgorI2luY2x1ZGUgIldlYkdMRGVidWdSZW5k
ZXJlckluZm8uaCIKKyNpbmNsdWRlICJXZWJHTERlYnVnU2hhZGVycy5oIgogI2luY2x1ZGUgIldl
YkdMRnJhbWVidWZmZXIuaCIKICNpbmNsdWRlICJXZWJHTFByb2dyYW0uaCIKICNpbmNsdWRlICJX
ZWJHTFJlbmRlcmJ1ZmZlci5oIgogI2luY2x1ZGUgIldlYkdMU2hhZGVyLmgiCiAjaW5jbHVkZSAi
V2ViR0xUZXh0dXJlLmgiCiAjaW5jbHVkZSAiV2ViR0xVbmlmb3JtTG9jYXRpb24uaCIKKyNpbmNs
dWRlICJXZWJLaXRMb3NlQ29udGV4dC5oIgogCiAjaW5jbHVkZSA8d3RmL0J5dGVBcnJheS5oPgog
I2luY2x1ZGUgPHd0Zi9Pd25BcnJheVB0ci5oPgpAQCAtNDczLDYgKzQ3NSwxMiBAQCB2b2lkIFdl
YkdMUmVuZGVyaW5nQ29udGV4dDo6c2V0dXBGbGFncygpCiAgICAgfQogfQogCitib29sIFdlYkdM
UmVuZGVyaW5nQ29udGV4dDo6YWxsb3dQcml2aWxlZ2VkRXh0ZW5zaW9ucygpIGNvbnN0Cit7Cisg
ICAgLy8gRklYTUU6IGltcGxlbWVudCB0aGlzIGZ1bmN0aW9uLgorICAgIHJldHVybiB0cnVlOwor
fQorCiBXZWJHTFJlbmRlcmluZ0NvbnRleHQ6On5XZWJHTFJlbmRlcmluZ0NvbnRleHQoKQogewog
ICAgIGRldGFjaEFuZFJlbW92ZUFsbE9iamVjdHMoKTsKQEAgLTE5OTksNiArMjAwNywyOCBAQCBX
ZWJHTEV4dGVuc2lvbiogV2ViR0xSZW5kZXJpbmdDb250ZXh0OjpnCiAgICAgICAgICAgICBtX3dl
YmtpdExvc2VDb250ZXh0ID0gV2ViS2l0TG9zZUNvbnRleHQ6OmNyZWF0ZSh0aGlzKTsKICAgICAg
ICAgcmV0dXJuIG1fd2Via2l0TG9zZUNvbnRleHQuZ2V0KCk7CiAgICAgfQorICAgIGlmIChlcXVh
bElnbm9yaW5nQ2FzZShuYW1lLCAiT0VTX3N0YW5kYXJkX2Rlcml2YXRpdmVzIikKKyAgICAgICAg
JiYgbV9jb250ZXh0LT5nZXRFeHRlbnNpb25zKCktPnN1cHBvcnRzKCJHTF9PRVNfc3RhbmRhcmRf
ZGVyaXZhdGl2ZXMiKSkgeworICAgICAgICBpZiAoIW1fb2VzU3RhbmRhcmREZXJpdmF0aXZlcykg
eworICAgICAgICAgICAgbV9jb250ZXh0LT5nZXRFeHRlbnNpb25zKCktPmVuc3VyZUVuYWJsZWQo
IkdMX09FU19zdGFuZGFyZF9kZXJpdmF0aXZlcyIpOworICAgICAgICAgICAgbV9vZXNTdGFuZGFy
ZERlcml2YXRpdmVzID0gT0VTU3RhbmRhcmREZXJpdmF0aXZlczo6Y3JlYXRlKHRoaXMpOworICAg
ICAgICB9CisgICAgICAgIHJldHVybiBtX29lc1N0YW5kYXJkRGVyaXZhdGl2ZXMuZ2V0KCk7Cisg
ICAgfQorCisgICAgaWYgKGFsbG93UHJpdmlsZWdlZEV4dGVuc2lvbnMoKSkgeworICAgICAgICBp
ZiAoZXF1YWxJZ25vcmluZ0Nhc2UobmFtZSwgIldFQkdMX2RlYnVnX3JlbmRlcmVyX2luZm8iKSkg
eworICAgICAgICAgICAgaWYgKCFtX3dlYmdsRGVidWdSZW5kZXJlckluZm8pCisgICAgICAgICAg
ICAgICAgbV93ZWJnbERlYnVnUmVuZGVyZXJJbmZvID0gV2ViR0xEZWJ1Z1JlbmRlcmVySW5mbzo6
Y3JlYXRlKHRoaXMpOworICAgICAgICAgICAgcmV0dXJuIG1fd2ViZ2xEZWJ1Z1JlbmRlcmVySW5m
by5nZXQoKTsKKyAgICAgICAgfQorICAgICAgICBpZiAoZXF1YWxJZ25vcmluZ0Nhc2UobmFtZSwg
IldFQkdMX2RlYnVnX3NoYWRlcnMiKQorICAgICAgICAgICAgJiYgbV9jb250ZXh0LT5nZXRFeHRl
bnNpb25zKCktPnN1cHBvcnRzKCJHTF9BTkdMRV90cmFuc2xhdGVkX3NoYWRlcl9zb3VyY2UiKSkg
eworICAgICAgICAgICAgaWYgKCFtX3dlYmdsRGVidWdTaGFkZXJzKQorICAgICAgICAgICAgICAg
IG1fd2ViZ2xEZWJ1Z1NoYWRlcnMgPSBXZWJHTERlYnVnU2hhZGVyczo6Y3JlYXRlKHRoaXMpOwor
ICAgICAgICAgICAgcmV0dXJuIG1fd2ViZ2xEZWJ1Z1NoYWRlcnMuZ2V0KCk7CisgICAgICAgIH0K
KyAgICB9CiAKICAgICByZXR1cm4gMDsKIH0KQEAgLTIyNDUsNiArMjI3NSwxNiBAQCBXZWJHTEdl
dEluZm8gV2ViR0xSZW5kZXJpbmdDb250ZXh0OjpnZXRQCiAgICAgICAgICAgICByZXR1cm4gZ2V0
VW5zaWduZWRJbnRQYXJhbWV0ZXIoRXh0ZW5zaW9uczNEOjpGUkFHTUVOVF9TSEFERVJfREVSSVZB
VElWRV9ISU5UX09FUyk7CiAgICAgICAgIG1fY29udGV4dC0+c3ludGhlc2l6ZUdMRXJyb3IoR3Jh
cGhpY3NDb250ZXh0M0Q6OklOVkFMSURfRU5VTSk7CiAgICAgICAgIHJldHVybiBXZWJHTEdldElu
Zm8oKTsKKyAgICBjYXNlIFdlYkdMRGVidWdSZW5kZXJlckluZm86OlVOTUFTS0VEX1JFTkRFUkVS
X1dFQkdMOgorICAgICAgICBpZiAobV93ZWJnbERlYnVnUmVuZGVyZXJJbmZvKQorICAgICAgICAg
ICAgcmV0dXJuIFdlYkdMR2V0SW5mbyhtX2NvbnRleHQtPmdldFN0cmluZyhHcmFwaGljc0NvbnRl
eHQzRDo6UkVOREVSRVIpKTsKKyAgICAgICAgbV9jb250ZXh0LT5zeW50aGVzaXplR0xFcnJvcihH
cmFwaGljc0NvbnRleHQzRDo6SU5WQUxJRF9FTlVNKTsKKyAgICAgICAgcmV0dXJuIFdlYkdMR2V0
SW5mbygpOworICAgIGNhc2UgV2ViR0xEZWJ1Z1JlbmRlcmVySW5mbzo6VU5NQVNLRURfVkVORE9S
X1dFQkdMOgorICAgICAgICBpZiAobV93ZWJnbERlYnVnUmVuZGVyZXJJbmZvKQorICAgICAgICAg
ICAgcmV0dXJuIFdlYkdMR2V0SW5mbyhtX2NvbnRleHQtPmdldFN0cmluZyhHcmFwaGljc0NvbnRl
eHQzRDo6VkVORE9SKSk7CisgICAgICAgIG1fY29udGV4dC0+c3ludGhlc2l6ZUdMRXJyb3IoR3Jh
cGhpY3NDb250ZXh0M0Q6OklOVkFMSURfRU5VTSk7CisgICAgICAgIHJldHVybiBXZWJHTEdldElu
Zm8oKTsKICAgICBjYXNlIEV4dGVuc2lvbnMzRDo6VkVSVEVYX0FSUkFZX0JJTkRJTkdfT0VTOiAv
LyBPRVNfdmVydGV4X2FycmF5X29iamVjdAogICAgICAgICBpZiAobV9vZXNWZXJ0ZXhBcnJheU9i
amVjdCkgewogICAgICAgICAgICAgaWYgKCFtX2JvdW5kVmVydGV4QXJyYXlPYmplY3QtPmlzRGVm
YXVsdE9iamVjdCgpKQpAQCAtMjQxNyw2ICsyNDU3LDEzIEBAIFZlY3RvcjxTdHJpbmc+IFdlYkdM
UmVuZGVyaW5nQ29udGV4dDo6Z2UKICAgICBpZiAobV9jb250ZXh0LT5nZXRFeHRlbnNpb25zKCkt
PnN1cHBvcnRzKCJHTF9PRVNfdmVydGV4X2FycmF5X29iamVjdCIpKQogICAgICAgICByZXN1bHQu
YXBwZW5kKCJPRVNfdmVydGV4X2FycmF5X29iamVjdCIpOwogICAgIHJlc3VsdC5hcHBlbmQoIldF
QktJVF9sb3NlX2NvbnRleHQiKTsKKworICAgIGlmIChhbGxvd1ByaXZpbGVnZWRFeHRlbnNpb25z
KCkpIHsKKyAgICAgICAgaWYgKG1fY29udGV4dC0+Z2V0RXh0ZW5zaW9ucygpLT5zdXBwb3J0cygi
R0xfQU5HTEVfdHJhbnNsYXRlZF9zaGFkZXJfc291cmNlIikpCisgICAgICAgICAgICByZXN1bHQu
YXBwZW5kKCJXRUJHTF9kZWJ1Z19zaGFkZXJzIik7CisgICAgICAgIHJlc3VsdC5hcHBlbmQoIldF
QkdMX2RlYnVnX3JlbmRlcmVyX2luZm8iKTsKKyAgICB9CisKICAgICByZXR1cm4gcmVzdWx0Owog
fQogCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFJlbmRlcmluZ0NvbnRl
eHQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFJlbmRl
cmluZ0NvbnRleHQuaAkocmV2aXNpb24gOTc0OTcpCisrKyBTb3VyY2UvV2ViQ29yZS9odG1sL2Nh
bnZhcy9XZWJHTFJlbmRlcmluZ0NvbnRleHQuaAkod29ya2luZyBjb3B5KQpAQCAtNDAsOSArNDAs
MTkgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCitjbGFzcyBIVE1MSW1hZ2VFbGVtZW50Owor
Y2xhc3MgSFRNTFZpZGVvRWxlbWVudDsKK2NsYXNzIEltYWdlQnVmZmVyOworY2xhc3MgSW1hZ2VE
YXRhOworY2xhc3MgSW50U2l6ZTsKK2NsYXNzIE9FU1N0YW5kYXJkRGVyaXZhdGl2ZXM7CitjbGFz
cyBPRVNUZXh0dXJlRmxvYXQ7CitjbGFzcyBPRVNWZXJ0ZXhBcnJheU9iamVjdDsKIGNsYXNzIFdl
YkdMQWN0aXZlSW5mbzsKIGNsYXNzIFdlYkdMQnVmZmVyOwogY2xhc3MgV2ViR0xDb250ZXh0QXR0
cmlidXRlczsKK2NsYXNzIFdlYkdMRGVidWdSZW5kZXJlckluZm87CitjbGFzcyBXZWJHTERlYnVn
U2hhZGVyczsKIGNsYXNzIFdlYkdMRXh0ZW5zaW9uOwogY2xhc3MgV2ViR0xGcmFtZWJ1ZmZlcjsK
IGNsYXNzIFdlYkdMT2JqZWN0OwpAQCAtNTEsMTYgKzYxLDggQEAgY2xhc3MgV2ViR0xSZW5kZXJi
dWZmZXI7CiBjbGFzcyBXZWJHTFNoYWRlcjsKIGNsYXNzIFdlYkdMVGV4dHVyZTsKIGNsYXNzIFdl
YkdMVW5pZm9ybUxvY2F0aW9uOwotY2xhc3MgV2ViS2l0TG9zZUNvbnRleHQ7Ci1jbGFzcyBIVE1M
SW1hZ2VFbGVtZW50OwotY2xhc3MgSFRNTFZpZGVvRWxlbWVudDsKLWNsYXNzIEltYWdlQnVmZmVy
OwotY2xhc3MgSW1hZ2VEYXRhOwotY2xhc3MgSW50U2l6ZTsKLWNsYXNzIE9FU1N0YW5kYXJkRGVy
aXZhdGl2ZXM7Ci1jbGFzcyBPRVNUZXh0dXJlRmxvYXQ7Ci1jbGFzcyBPRVNWZXJ0ZXhBcnJheU9i
amVjdDsKIGNsYXNzIFdlYkdMVmVydGV4QXJyYXlPYmplY3RPRVM7CitjbGFzcyBXZWJLaXRMb3Nl
Q29udGV4dDsKIAogY2xhc3MgV2ViR0xSZW5kZXJpbmdDb250ZXh0IDogcHVibGljIENhbnZhc1Jl
bmRlcmluZ0NvbnRleHQgewogcHVibGljOgpAQCAtMzA2LDYgKzMwOCw3IEBAIHB1YmxpYzoKICAg
cHJpdmF0ZToKICAgICBmcmllbmQgY2xhc3MgV2ViR0xPYmplY3Q7CiAgICAgZnJpZW5kIGNsYXNz
IE9FU1ZlcnRleEFycmF5T2JqZWN0OworICAgIGZyaWVuZCBjbGFzcyBXZWJHTERlYnVnU2hhZGVy
czsKIAogICAgIFdlYkdMUmVuZGVyaW5nQ29udGV4dChIVE1MQ2FudmFzRWxlbWVudCosIFBhc3NS
ZWZQdHI8R3JhcGhpY3NDb250ZXh0M0Q+LCBHcmFwaGljc0NvbnRleHQzRDo6QXR0cmlidXRlcyk7
CiAgICAgdm9pZCBpbml0aWFsaXplTmV3Q29udGV4dCgpOwpAQCAtNDc0LDYgKzQ3Nyw4IEBAIHB1
YmxpYzoKICAgICBPd25QdHI8T0VTU3RhbmRhcmREZXJpdmF0aXZlcz4gbV9vZXNTdGFuZGFyZERl
cml2YXRpdmVzOwogICAgIE93blB0cjxPRVNWZXJ0ZXhBcnJheU9iamVjdD4gbV9vZXNWZXJ0ZXhB
cnJheU9iamVjdDsKICAgICBPd25QdHI8V2ViS2l0TG9zZUNvbnRleHQ+IG1fd2Via2l0TG9zZUNv
bnRleHQ7CisgICAgT3duUHRyPFdlYkdMRGVidWdSZW5kZXJlckluZm8+IG1fd2ViZ2xEZWJ1Z1Jl
bmRlcmVySW5mbzsKKyAgICBPd25QdHI8V2ViR0xEZWJ1Z1NoYWRlcnM+IG1fd2ViZ2xEZWJ1Z1No
YWRlcnM7CiAKICAgICAvLyBIZWxwZXJzIGZvciBnZXRQYXJhbWV0ZXIgYW5kIG90aGVycwogICAg
IFdlYkdMR2V0SW5mbyBnZXRCb29sZWFuUGFyYW1ldGVyKEdDM0RlbnVtKTsKQEAgLTYyMiw2ICs2
MjcsOSBAQCBwdWJsaWM6CiAgICAgLy8gSGVscGVyIGZvciByZXN0b3JhdGlvbiBhZnRlciBjb250
ZXh0IGxvc3QuCiAgICAgdm9pZCBtYXliZVJlc3RvcmVDb250ZXh0KExvc3RDb250ZXh0TW9kZSk7
CiAKKyAgICAvLyBEZXRlcm1pbmUgaWYgd2UgYXJlIHJ1bm5pbmcgdGhlIHByaXZpbGVnZWQgY29k
ZSBpbiB0aGUgYnJvd3Nlci4KKyAgICBib29sIGFsbG93UHJpdmlsZWdlZEV4dGVuc2lvbnMoKSBj
b25zdDsKKwogICAgIGZyaWVuZCBjbGFzcyBXZWJHTFN0YXRlUmVzdG9yZXI7CiB9OwogCkluZGV4
OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9FeHRlbnNpb25zM0QuaAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9FeHRlbnNpb25zM0QuaAko
cmV2aXNpb24gOTc0OTcpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9FeHRl
bnNpb25zM0QuaAkod29ya2luZyBjb3B5KQpAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmln
aHQgKEMpIDIwMTAgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdo
dCAoQykgMjAxMSBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zCkBAIC01Niw2ICs1Niw3IEBAIHB1YmxpYzoKICAgICAvLyAgIEdM
X09FU19zdGFuZGFyZF9kZXJpdmF0aXZlcwogICAgIC8vICAgR0xfT0VTX3JnYjhfcmdiYTgKICAg
ICAvLyAgIEdMX09FU192ZXJ0ZXhfYXJyYXlfb2JqZWN0CisgICAgLy8gICBHTF9BTkdMRV90cmFu
c2xhdGVkX3NoYWRlcl9zb3VyY2UKIAogICAgIC8vIFRha2VzIGZ1bGwgbmFtZSBvZiBleHRlbnNp
b247IGZvciBleGFtcGxlLAogICAgIC8vICJHTF9FWFRfdGV4dHVyZV9mb3JtYXRfQkdSQTg4ODgi
LgpAQCAtMTAzLDYgKzEwNCw5IEBAIHB1YmxpYzoKICAgICAgICAgCiAgICAgICAgIC8vIEdMX09F
U192ZXJ0ZXhfYXJyYXlfb2JqZWN0IG5hbWVzCiAgICAgICAgIFZFUlRFWF9BUlJBWV9CSU5ESU5H
X09FUyA9IDB4ODVCNSwKKworICAgICAgICAvLyBHTF9BTkdMRV90cmFuc2xhdGVkX3NoYWRlcl9z
b3VyY2UKKyAgICAgICAgVFJBTlNMQVRFRF9TSEFERVJfU09VUkNFX0xFTkdUSF9BTkdMRSA9IDB4
OTNBMCwKICAgICB9OwogCiAgICAgLy8gR0xfQVJCX3JvYnVzdG5lc3MKQEAgLTEyNSw2ICsxMjks
OSBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIGRlbGV0ZVZlcnRleEFycmF5T0VTKFBsYXRm
b3JtM0RPYmplY3QpID0gMDsKICAgICB2aXJ0dWFsIEdDM0Rib29sZWFuIGlzVmVydGV4QXJyYXlP
RVMoUGxhdGZvcm0zRE9iamVjdCkgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBiaW5kVmVydGV4QXJy
YXlPRVMoUGxhdGZvcm0zRE9iamVjdCkgPSAwOworCisgICAgLy8gR0xfQU5HTEVfdHJhbnNsYXRl
ZF9zaGFkZXJfc291cmNlCisgICAgdmlydHVhbCBTdHJpbmcgZ2V0VHJhbnNsYXRlZFNoYWRlclNv
dXJjZUFOR0xFKFBsYXRmb3JtM0RPYmplY3QpID0gMDsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdl
YkNvcmUKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzVHlw
ZXMzRC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dy
YXBoaWNzVHlwZXMzRC5oCShyZXZpc2lvbiA5NzQ5NykKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL0dyYXBoaWNzVHlwZXMzRC5oCSh3b3JraW5nIGNvcHkpCkBAIC00NCw2ICs0
NCw3IEBAIHR5cGVkZWYgZmxvYXQgR0MzRGZsb2F0OwogdHlwZWRlZiBmbG9hdCBHQzNEY2xhbXBm
OwogdHlwZWRlZiBzaWduZWQgbG9uZyBpbnQgR0MzRGludHB0cjsKIHR5cGVkZWYgc2lnbmVkIGxv
bmcgaW50IEdDM0RzaXplaXB0cjsKK3R5cGVkZWYgY2hhciBHQzNEY2hhcjsKIAogdHlwZWRlZiBH
QzNEdWludCBQbGF0Zm9ybTNET2JqZWN0OwogCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9jaHJvbWl1bS9FeHRlbnNpb25zM0RDaHJvbWl1bS5oCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0V4dGVuc2lvbnMzRENo
cm9taXVtLmgJKHJldmlzaW9uIDk3NDk3KQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvY2hyb21pdW0vRXh0ZW5zaW9uczNEQ2hyb21pdW0uaAkod29ya2luZyBjb3B5KQpAQCAt
MSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTAgR29vZ2xlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxMSBHb29nbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC01Niw2ICs1
Niw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgZGVsZXRlVmVydGV4QXJyYXlPRVMoUGxh
dGZvcm0zRE9iamVjdCk7CiAgICAgdmlydHVhbCBHQzNEYm9vbGVhbiBpc1ZlcnRleEFycmF5T0VT
KFBsYXRmb3JtM0RPYmplY3QpOwogICAgIHZpcnR1YWwgdm9pZCBiaW5kVmVydGV4QXJyYXlPRVMo
UGxhdGZvcm0zRE9iamVjdCk7CisgICAgdmlydHVhbCBTdHJpbmcgZ2V0VHJhbnNsYXRlZFNoYWRl
clNvdXJjZUFOR0xFKFBsYXRmb3JtM0RPYmplY3QpOwogCiAgICAgZW51bSB7CiAgICAgICAgIC8v
IEdMX0NIUk9NSVVNX21hcF9zdWIgKGVudW1zIGluaGVyaXRlZCBmcm9tIEdMX0FSQl92ZXJ0ZXhf
YnVmZmVyX29iamVjdCkKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL29w
ZW5nbC9FeHRlbnNpb25zM0RPcGVuR0wuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL29wZW5nbC9FeHRlbnNpb25zM0RPcGVuR0wuY3BwCShyZXZpc2lv
biA5NzQ5NykKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL29wZW5nbC9FeHRl
bnNpb25zM0RPcGVuR0wuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAq
IENvcHlyaWdodCAoQykgMjAxMCBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICog
Q29weXJpZ2h0IChDKSAyMDExIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgog
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTE5Myw2ICsxOTMsMTEgQEAgdm9pZCBFeHRl
bnNpb25zM0RPcGVuR0w6OmJpbmRWZXJ0ZXhBcnJheQogI2VuZGlmCiB9CiAKK1N0cmluZyBFeHRl
bnNpb25zM0RPcGVuR0w6OmdldFRyYW5zbGF0ZWRTaGFkZXJTb3VyY2VBTkdMRShQbGF0Zm9ybTNE
T2JqZWN0IHNoYWRlcikKK3sKKyAgICAvLyBGSVhNRTogaW1wbGVtZW50IHRoaXMgZnVuY3Rpb24g
YW5kIGFkZCBHTF9BTkdMRV90cmFuc2xhdGVkX3NoYWRlcl9zb3VyY2UgaW4gc3VwcG9ydHMoKS4K
K30KKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCiAjZW5kaWYgLy8gRU5BQkxFKFdFQkdMKQpJ
bmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0V4dGVuc2lvbnMz
RE9wZW5HTC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L29wZW5nbC9FeHRlbnNpb25zM0RPcGVuR0wuaAkocmV2aXNpb24gOTc0OTcpCisrKyBTb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wvRXh0ZW5zaW9uczNET3BlbkdMLmgJKHdv
cmtpbmcgY29weSkKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDEwIEdv
b2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTEgR29v
Z2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucwpAQCAtNTAsNiArNTAsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIGRlbGV0ZVZl
cnRleEFycmF5T0VTKFBsYXRmb3JtM0RPYmplY3QpOwogICAgIHZpcnR1YWwgR0MzRGJvb2xlYW4g
aXNWZXJ0ZXhBcnJheU9FUyhQbGF0Zm9ybTNET2JqZWN0KTsKICAgICB2aXJ0dWFsIHZvaWQgYmlu
ZFZlcnRleEFycmF5T0VTKFBsYXRmb3JtM0RPYmplY3QpOworICAgIHZpcnR1YWwgU3RyaW5nIGdl
dFRyYW5zbGF0ZWRTaGFkZXJTb3VyY2VBTkdMRShQbGF0Zm9ybTNET2JqZWN0KTsKIAogcHJpdmF0
ZToKICAgICAvLyBUaGlzIGNsYXNzIG9ubHkgbmVlZHMgdG8gYmUgaW5zdGFudGlhdGVkIGJ5IEdy
YXBoaWNzQ29udGV4dDNEIGltcGxlbWVudGF0aW9ucy4KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL3F0L0V4dGVuc2lvbnMzRFF0LmNwcAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9xdC9FeHRlbnNpb25zM0RRdC5jcHAJKHJldmlz
aW9uIDk3NDk3KQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvcXQvRXh0ZW5z
aW9uczNEUXQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHly
aWdodCAoQykgMjAxMCBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJp
Z2h0IChDKSAyMDExIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTg4LDYgKzg4LDExIEBAIHZvaWQgRXh0ZW5zaW9uczNE
UXQ6OmJpbmRWZXJ0ZXhBcnJheU9FUygKIHsKIH0KIAorU3RyaW5nIEV4dGVuc2lvbnMzRFF0Ojpn
ZXRUcmFuc2xhdGVkU2hhZGVyU291cmNlQU5HTEUoUGxhdGZvcm0zRE9iamVjdCBzaGFkZXIpCit7
CisgICAgcmV0dXJuICIiOworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKICNlbmRpZiAv
LyBFTkFCTEUoV0VCR0wpCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9x
dC9FeHRlbnNpb25zM0RRdC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL3F0L0V4dGVuc2lvbnMzRFF0LmgJKHJldmlzaW9uIDk3NDk3KQorKysgU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvcXQvRXh0ZW5zaW9uczNEUXQuaAkod29ya2luZyBj
b3B5KQpAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTAgR29vZ2xlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxMSBHb29nbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBA
IC00NSw2ICs0NSw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgZGVsZXRlVmVydGV4QXJy
YXlPRVMoUGxhdGZvcm0zRE9iamVjdCk7CiAgICAgdmlydHVhbCBHQzNEYm9vbGVhbiBpc1ZlcnRl
eEFycmF5T0VTKFBsYXRmb3JtM0RPYmplY3QpOwogICAgIHZpcnR1YWwgdm9pZCBiaW5kVmVydGV4
QXJyYXlPRVMoUGxhdGZvcm0zRE9iamVjdCk7CisgICAgdmlydHVhbCBTdHJpbmcgZ2V0VHJhbnNs
YXRlZFNoYWRlclNvdXJjZUFOR0xFKFBsYXRmb3JtM0RPYmplY3QpOwogCiBwcml2YXRlOgogICAg
IC8vIFRoaXMgY2xhc3Mgb25seSBuZWVkcyB0byBiZSBpbnN0YW50aWF0ZWQgYnkgR3JhcGhpY3ND
b250ZXh0M0QgaW1wbGVtZW50YXRpb25zLgpJbmRleDogU291cmNlL1dlYktpdC9jaHJvbWl1bS9D
aGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cJ
KHJldmlzaW9uIDk3NDk3KQorKysgU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cJKHdv
cmtpbmcgY29weSkKQEAgLTEsMyArMSwxNyBAQAorMjAxMS0xMC0xNCAgWmhlbnlhbyBNbyAgPHpt
b0Bnb29nbGUuY29tPgorCisgICAgICAgIEltcGxlbWVudCBXRUJHTF9kZWJ1Z19zaGFkZXJzIGFu
ZCBXRUJHTF9kZWJ1Z19yZW5kZXJlcl9pbmZvIGV4dGVuc2lvbnMKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTcwMDc3CisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBwdWJsaWMvV2ViR3JhcGhpY3NDb250ZXh0
M0QuaDogQWRkZWQgc3VwcG9ydCBmb3IgZ2V0VHJhbnNsYXRlZFNoYWRlclNvdXJjZUFOR0xFLgor
ICAgICAgICAoV2ViS2l0OjpXZWJHcmFwaGljc0NvbnRleHQzRDo6Z2V0VHJhbnNsYXRlZFNoYWRl
clNvdXJjZUFOR0xFKToKKyAgICAgICAgKiBzcmMvRXh0ZW5zaW9uczNEQ2hyb21pdW0uY3BwOiBE
aXR0by4KKyAgICAgICAgKFdlYkNvcmU6OkV4dGVuc2lvbnMzRENocm9taXVtOjpnZXRUcmFuc2xh
dGVkU2hhZGVyU291cmNlQU5HTEUpOgorICAgICAgICAqIHNyYy9HcmFwaGljc0NvbnRleHQzRENo
cm9taXVtLmNwcDogRGl0dG8uCisgICAgICAgICogc3JjL0dyYXBoaWNzQ29udGV4dDNEUHJpdmF0
ZS5oOiBEaXR0by4KKwogMjAxMS0xMC0xNCAgRGFuaWVsIENoZW5nICA8ZGNoZW5nQGNocm9taXVt
Lm9yZz4KIAogICAgICAgICBDb250ZXh0LWF3YXJlIEhUTUwgcGFzdGUgZm9yIENocm9taXVtCklu
ZGV4OiBTb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJHcmFwaGljc0NvbnRleHQzRC5o
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYkdyYXBoaWNz
Q29udGV4dDNELmgJKHJldmlzaW9uIDk3NDk3KQorKysgU291cmNlL1dlYktpdC9jaHJvbWl1bS9w
dWJsaWMvV2ViR3JhcGhpY3NDb250ZXh0M0QuaAkod29ya2luZyBjb3B5KQpAQCAtMzY1LDYgKzM2
NSwxMCBAQCBwdWJsaWM6CiAgICAgLy8gc3RhdGUgaXMgc3RpY2t5LCByYXRoZXIgdGhhbiByZXBv
cnRlZCBvbmx5IG9uY2UuCiAgICAgdmlydHVhbCBXR0MzRGVudW0gZ2V0R3JhcGhpY3NSZXNldFN0
YXR1c0FSQigpIHsgcmV0dXJuIDA7IC8qIEdMX05PX0VSUk9SICovIH0KIAorICAgIC8vIEZJWE1F
OiBtYWtlIHRoaXMgZnVuY3Rpb24gcHVyZSB2aXJ0dWFsIG9uY2UgaXQgaXMgaW1wbGVtZW50ZWQg
aW4KKyAgICAvLyBib3RoIGNvbW1hbmQgYnVmZmVyIHBvcnQgYW5kIGluLXByb2Nlc3MgcG9ydC4K
KyAgICB2aXJ0dWFsIFdlYlN0cmluZyBnZXRUcmFuc2xhdGVkU2hhZGVyU291cmNlQU5HTEUoV2Vi
R0xJZCBzaGFkZXIpIHsgcmV0dXJuIFdlYlN0cmluZygpOyB9CisKICNpZiBXRUJLSVRfVVNJTkdf
U0tJQQogICAgIEdyR0xJbnRlcmZhY2UqIGNyZWF0ZUdyR0xJbnRlcmZhY2UoKTsKICNlbmRpZgpJ
bmRleDogU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvRXh0ZW5zaW9uczNEQ2hyb21pdW0uY3Bw
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0V4dGVuc2lvbnMzRENo
cm9taXVtLmNwcAkocmV2aXNpb24gOTc0OTcpCisrKyBTb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Ny
Yy9FeHRlbnNpb25zM0RDaHJvbWl1bS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTExNSw2ICsxMTUs
MTEgQEAgdm9pZCBFeHRlbnNpb25zM0RDaHJvbWl1bTo6YmluZFZlcnRleEFycgogewogfQogCitT
dHJpbmcgRXh0ZW5zaW9uczNEQ2hyb21pdW06OmdldFRyYW5zbGF0ZWRTaGFkZXJTb3VyY2VBTkdM
RShQbGF0Zm9ybTNET2JqZWN0IHNoYWRlcikKK3sKKyAgICByZXR1cm4gbV9wcml2YXRlLT5nZXRU
cmFuc2xhdGVkU2hhZGVyU291cmNlQU5HTEUoc2hhZGVyKTsKK30KKwogdm9pZCBFeHRlbnNpb25z
M0RDaHJvbWl1bTo6c2V0U3dhcEJ1ZmZlcnNDb21wbGV0ZUNhbGxiYWNrQ0hST01JVU0oUGFzc093
blB0cjxTd2FwQnVmZmVyc0NvbXBsZXRlQ2FsbGJhY2tDSFJPTUlVTT4gY2FsbGJhY2spCiB7CiAg
ICAgbV9wcml2YXRlLT5zZXRTd2FwQnVmZmVyc0NvbXBsZXRlQ2FsbGJhY2tDSFJPTUlVTShjYWxs
YmFjayk7CkluZGV4OiBTb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9HcmFwaGljc0NvbnRleHQz
RENocm9taXVtLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9H
cmFwaGljc0NvbnRleHQzRENocm9taXVtLmNwcAkocmV2aXNpb24gOTc0OTcpCisrKyBTb3VyY2Uv
V2ViS2l0L2Nocm9taXVtL3NyYy9HcmFwaGljc0NvbnRleHQzRENocm9taXVtLmNwcAkod29ya2lu
ZyBjb3B5KQpAQCAtODg3LDYgKzg4Nyw4IEBAIERFTEVHQVRFX1RPX0lNUExfNShyZW5kZXJidWZm
ZXJTdG9yYWdlTXUKIERFTEVHQVRFX1RPX0lNUEwocmF0ZUxpbWl0T2Zmc2NyZWVuQ29udGV4dENI
Uk9NSVVNKQogREVMRUdBVEVfVE9fSU1QTF9SKGdldEdyYXBoaWNzUmVzZXRTdGF0dXNBUkIsIEdD
M0RlbnVtKQogCitERUxFR0FURV9UT19JTVBMXzFSKGdldFRyYW5zbGF0ZWRTaGFkZXJTb3VyY2VB
TkdMRSwgUGxhdGZvcm0zRE9iamVjdCwgU3RyaW5nKQorCiAvLy0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIC8vIEdy
YXBoaWNzQ29udGV4dDNECiAvLwpJbmRleDogU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvR3Jh
cGhpY3NDb250ZXh0M0RQcml2YXRlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9jaHJv
bWl1bS9zcmMvR3JhcGhpY3NDb250ZXh0M0RQcml2YXRlLmgJKHJldmlzaW9uIDk3NDk3KQorKysg
U291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvR3JhcGhpY3NDb250ZXh0M0RQcml2YXRlLmgJKHdv
cmtpbmcgY29weSkKQEAgLTMwMyw2ICszMDMsOSBAQCBwdWJsaWM6CiAgICAgLy8gR0xfQVJCX3Jv
YnVzdG5lc3MKICAgICBHQzNEZW51bSBnZXRHcmFwaGljc1Jlc2V0U3RhdHVzQVJCKCk7CiAKKyAg
ICAvLyBHTF9BTkdMRV90cmFuc2xhdGVkX3NoYWRlcl9zb3VyY2UKKyAgICBTdHJpbmcgZ2V0VHJh
bnNsYXRlZFNoYWRlclNvdXJjZUFOR0xFKFBsYXRmb3JtM0RPYmplY3Qgc2hhZGVyKTsKKwogcHJp
dmF0ZToKICAgICBHcmFwaGljc0NvbnRleHQzRFByaXZhdGUoV2ViS2l0OjpXZWJWaWV3SW1wbCos
IFBhc3NPd25QdHI8V2ViS2l0OjpXZWJHcmFwaGljc0NvbnRleHQzRD4sIEdyYXBoaWNzQ29udGV4
dDNEOjpBdHRyaWJ1dGVzKTsKIAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>111084</attachid>
            <date>2011-10-14 14:47:45 -0700</date>
            <delta_ts>2011-10-14 15:23:58 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-70077-20111014144744.patch</filename>
            <type>text/plain</type>
            <size>24573</size>
            <attacher name="Zhenyao Mo">zmo</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDk3NDk3KQorKysgU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsNDcgQEAKKzIwMTEtMTAtMTQgIFpoZW55YW8g
TW8gIDx6bW9AZ29vZ2xlLmNvbT4KKworICAgICAgICBJbXBsZW1lbnQgV0VCR0xfZGVidWdfc2hh
ZGVycyBhbmQgV0VCR0xfZGVidWdfcmVuZGVyZXJfaW5mbyBleHRlbnNpb25zCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03MDA3NworCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogV2ViQ29yZS5neXBpOiBhZGRl
ZCBuZXcgZXh0ZW5zaW9uIGNsYXNzIGZpbGVzLgorICAgICAgICAqIGJpbmRpbmdzL2pzL0pTV2Vi
R0xSZW5kZXJpbmdDb250ZXh0Q3VzdG9tLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OnRvSlMpOiBI
YW5kbGVzIHR3byBuZXcgZXh0ZW5zaW9ucy4KKyAgICAgICAgKiBiaW5kaW5ncy92OC9jdXN0b20v
VjhXZWJHTFJlbmRlcmluZ0NvbnRleHRDdXN0b20uY3BwOgorICAgICAgICAoV2ViQ29yZTo6dG9W
OE9iamVjdCk6IERpdHRvLgorICAgICAgICAqIGh0bWwvY2FudmFzL1dlYkdMRGVidWdSZW5kZXJl
ckluZm8uY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OldlYkdMRGVidWdSZW5kZXJlcklu
Zm86OldlYkdMRGVidWdSZW5kZXJlckluZm8pOgorICAgICAgICAoV2ViQ29yZTo6V2ViR0xEZWJ1
Z1JlbmRlcmVySW5mbzo6fldlYkdMRGVidWdSZW5kZXJlckluZm8pOgorICAgICAgICAoV2ViQ29y
ZTo6V2ViR0xEZWJ1Z1JlbmRlcmVySW5mbzo6Z2V0TmFtZSk6CisgICAgICAgIChXZWJDb3JlOjpX
ZWJHTERlYnVnUmVuZGVyZXJJbmZvOjpjcmVhdGUpOgorICAgICAgICAqIGh0bWwvY2FudmFzL1dl
YkdMRGVidWdSZW5kZXJlckluZm8uaDogQWRkZWQuCisgICAgICAgICogaHRtbC9jYW52YXMvV2Vi
R0xEZWJ1Z1JlbmRlcmVySW5mby5pZGw6IEFkZGVkLgorICAgICAgICAqIGh0bWwvY2FudmFzL1dl
YkdMRGVidWdTaGFkZXJzLmNwcDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpXZWJHTERlYnVn
U2hhZGVyczo6V2ViR0xEZWJ1Z1NoYWRlcnMpOgorICAgICAgICAoV2ViQ29yZTo6V2ViR0xEZWJ1
Z1NoYWRlcnM6On5XZWJHTERlYnVnU2hhZGVycyk6CisgICAgICAgIChXZWJDb3JlOjpXZWJHTERl
YnVnU2hhZGVyczo6Z2V0TmFtZSk6CisgICAgICAgIChXZWJDb3JlOjpXZWJHTERlYnVnU2hhZGVy
czo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OldlYkdMRGVidWdTaGFkZXJzOjpnZXRUcmFu
c2xhdGVkU2hhZGVyU291cmNlKToKKyAgICAgICAgKiBodG1sL2NhbnZhcy9XZWJHTERlYnVnU2hh
ZGVycy5oOiBBZGRlZC4KKyAgICAgICAgKiBodG1sL2NhbnZhcy9XZWJHTERlYnVnU2hhZGVycy5p
ZGw6IEFkZGVkLgorICAgICAgICAqIGh0bWwvY2FudmFzL1dlYkdMRXh0ZW5zaW9uLmg6CisgICAg
ICAgICogaHRtbC9jYW52YXMvV2ViR0xSZW5kZXJpbmdDb250ZXh0LmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OldlYkdMUmVuZGVyaW5nQ29udGV4dDo6YWxsb3dQcml2aWxlZ2VkRXh0ZW5zaW9ucyk6
IFRvIGJlIGltcGxlbWVudGVkIC0gZGVjaWRpbmcgd2hldGhlciB0aGUgdHdvIGV4dGVuc2lvbnMg
c2hvdWxkIGJlIGFsbG93ZWQgb3Igbm90LgorICAgICAgICAoV2ViQ29yZTo6V2ViR0xSZW5kZXJp
bmdDb250ZXh0OjpnZXRFeHRlbnNpb24pOiBIYW5kbGVzIHR3byBuZXcgZXh0ZW5zaW9ucy4KKyAg
ICAgICAgKFdlYkNvcmU6OldlYkdMUmVuZGVyaW5nQ29udGV4dDo6Z2V0UGFyYW1ldGVyKTogSGFu
ZGxlcyBVTk1BU0tFRF9WRU5ET1JfV0VCR0wgLyBVTk1BU0tFRF9SRU5ERVJFUl9XRUJHTAorICAg
ICAgICAoV2ViQ29yZTo6V2ViR0xSZW5kZXJpbmdDb250ZXh0OjpnZXRTdXBwb3J0ZWRFeHRlbnNp
b25zKTogSGFuZGxlcyB0d28gbmV3IGV4dGVuc2lvbnMuCisgICAgICAgICogaHRtbC9jYW52YXMv
V2ViR0xSZW5kZXJpbmdDb250ZXh0Lmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvRXh0
ZW5zaW9uczNELmg6IERpdHRvLgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNz
VHlwZXMzRC5oOiBBZGQgR0MzRGNoYXIuCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2hy
b21pdW0vRXh0ZW5zaW9uczNEQ2hyb21pdW0uaDogSGFuZGxlcyB0d28gbmV3IGV4dGVuc2lvbnMu
CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0V4dGVuc2lvbnMzRE9wZW5HTC5j
cHA6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6Z2V0VHJhbnNsYXRlZFNoYWRlclNvdXJjZUFO
R0xFKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wvRXh0ZW5zaW9uczNET3Bl
bkdMLmg6IERpdHRvLgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL3F0L0V4dGVuc2lvbnMz
RFF0LmNwcDogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpFeHRlbnNpb25zM0RRdDo6Z2V0VHJh
bnNsYXRlZFNoYWRlclNvdXJjZUFOR0xFKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9x
dC9FeHRlbnNpb25zM0RRdC5oOiBEaXR0by4KKwogMjAxMS0xMC0xNCAgRGFuaWVsIENoZW5nICA8
ZGNoZW5nQGNocm9taXVtLm9yZz4KIAogICAgICAgICBDb250ZXh0LWF3YXJlIEhUTUwgcGFzdGUg
Zm9yIENocm9taXVtCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpCShyZXZpc2lvbiA5NzQ5NykKKysrIFNv
dXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQkod29ya2luZyBjb3B5KQpAQCAtMTM2Miw2ICsxMzYy
LDggQEAKICAgICAgICAgICAgICdodG1sL2NhbnZhcy9XZWJHTEJ1ZmZlci5pZGwnLAogICAgICAg
ICAgICAgJ2h0bWwvY2FudmFzL1dlYkdMQ29udGV4dEF0dHJpYnV0ZXMuaWRsJywKICAgICAgICAg
ICAgICdodG1sL2NhbnZhcy9XZWJHTENvbnRleHRFdmVudC5pZGwnLAorICAgICAgICAgICAgJ2h0
bWwvY2FudmFzL1dlYkdMRGVidWdSZW5kZXJlckluZm8uaWRsJywKKyAgICAgICAgICAgICdodG1s
L2NhbnZhcy9XZWJHTERlYnVnU2hhZGVycy5pZGwnLAogICAgICAgICAgICAgJ2h0bWwvY2FudmFz
L1dlYkdMRnJhbWVidWZmZXIuaWRsJywKICAgICAgICAgICAgICdodG1sL2NhbnZhcy9XZWJHTFBy
b2dyYW0uaWRsJywKICAgICAgICAgICAgICdodG1sL2NhbnZhcy9XZWJHTFJlbmRlcmJ1ZmZlci5p
ZGwnLApAQCAtNTY2Miw2ICs1NjY0LDEwIEBACiAgICAgICAgICAgICAnaHRtbC9jYW52YXMvV2Vi
R0xDb250ZXh0QXR0cmlidXRlcy5oJywKICAgICAgICAgICAgICdodG1sL2NhbnZhcy9XZWJHTENv
bnRleHRFdmVudC5jcHAnLAogICAgICAgICAgICAgJ2h0bWwvY2FudmFzL1dlYkdMQ29udGV4dEV2
ZW50LmgnLAorICAgICAgICAgICAgJ2h0bWwvY2FudmFzL1dlYkdMRGVidWdSZW5kZXJlckluZm8u
Y3BwJywKKyAgICAgICAgICAgICdodG1sL2NhbnZhcy9XZWJHTERlYnVnUmVuZGVyZXJJbmZvLmgn
LAorICAgICAgICAgICAgJ2h0bWwvY2FudmFzL1dlYkdMRGVidWdTaGFkZXJzLmNwcCcsCisgICAg
ICAgICAgICAnaHRtbC9jYW52YXMvV2ViR0xEZWJ1Z1NoYWRlcnMuaCcsCiAgICAgICAgICAgICAn
aHRtbC9jYW52YXMvV2ViR0xFeHRlbnNpb24uY3BwJywKICAgICAgICAgICAgICdodG1sL2NhbnZh
cy9XZWJHTEV4dGVuc2lvbi5oJywKICAgICAgICAgICAgICdodG1sL2NhbnZhcy9XZWJHTEZyYW1l
YnVmZmVyLmNwcCcsCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1dlYkdMUmVu
ZGVyaW5nQ29udGV4dEN1c3RvbS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3MvanMvSlNXZWJHTFJlbmRlcmluZ0NvbnRleHRDdXN0b20uY3BwCShyZXZpc2lvbiA5NzQ5
NykKKysrIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTV2ViR0xSZW5kZXJpbmdDb250ZXh0
Q3VzdG9tLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjksNDIgKzI5LDQ0IEBACiAKICNpbmNsdWRl
ICJKU1dlYkdMUmVuZGVyaW5nQ29udGV4dC5oIgogCi0jaW5jbHVkZSAiV2ViS2l0TG9zZUNvbnRl
eHQuaCIKICNpbmNsdWRlICJFeGNlcHRpb25Db2RlLmgiCisjaW5jbHVkZSAiRmxvYXQzMkFycmF5
LmgiCiAjaW5jbHVkZSAiSFRNTENhbnZhc0VsZW1lbnQuaCIKICNpbmNsdWRlICJIVE1MSW1hZ2VF
bGVtZW50LmgiCi0jaW5jbHVkZSAiSlNXZWJLaXRMb3NlQ29udGV4dC5oIgorI2luY2x1ZGUgIklu
dDMyQXJyYXkuaCIKKyNpbmNsdWRlICJKU0Zsb2F0MzJBcnJheS5oIgogI2luY2x1ZGUgIkpTSFRN
TENhbnZhc0VsZW1lbnQuaCIKICNpbmNsdWRlICJKU0hUTUxJbWFnZUVsZW1lbnQuaCIKICNpbmNs
dWRlICJKU0ltYWdlRGF0YS5oIgorI2luY2x1ZGUgIkpTSW50MzJBcnJheS5oIgogI2luY2x1ZGUg
IkpTT0VTU3RhbmRhcmREZXJpdmF0aXZlcy5oIgogI2luY2x1ZGUgIkpTT0VTVGV4dHVyZUZsb2F0
LmgiCiAjaW5jbHVkZSAiSlNPRVNWZXJ0ZXhBcnJheU9iamVjdC5oIgotI2luY2x1ZGUgIkpTV2Vi
R0xWZXJ0ZXhBcnJheU9iamVjdE9FUy5oIgorI2luY2x1ZGUgIkpTVWludDhBcnJheS5oIgogI2lu
Y2x1ZGUgIkpTV2ViR0xCdWZmZXIuaCIKLSNpbmNsdWRlICJKU0Zsb2F0MzJBcnJheS5oIgogI2lu
Y2x1ZGUgIkpTV2ViR0xGcmFtZWJ1ZmZlci5oIgotI2luY2x1ZGUgIkpTSW50MzJBcnJheS5oIgog
I2luY2x1ZGUgIkpTV2ViR0xQcm9ncmFtLmgiCiAjaW5jbHVkZSAiSlNXZWJHTFJlbmRlcmJ1ZmZl
ci5oIgogI2luY2x1ZGUgIkpTV2ViR0xTaGFkZXIuaCIKICNpbmNsdWRlICJKU1dlYkdMVGV4dHVy
ZS5oIgogI2luY2x1ZGUgIkpTV2ViR0xVbmlmb3JtTG9jYXRpb24uaCIKLSNpbmNsdWRlICJKU1Vp
bnQ4QXJyYXkuaCIKKyNpbmNsdWRlICJKU1dlYkdMVmVydGV4QXJyYXlPYmplY3RPRVMuaCIKICNp
bmNsdWRlICJKU1dlYktpdENTU01hdHJpeC5oIgorI2luY2x1ZGUgIkpTV2ViS2l0TG9zZUNvbnRl
eHQuaCIKICNpbmNsdWRlICJOb3RJbXBsZW1lbnRlZC5oIgogI2luY2x1ZGUgIk9FU1N0YW5kYXJk
RGVyaXZhdGl2ZXMuaCIKICNpbmNsdWRlICJPRVNUZXh0dXJlRmxvYXQuaCIKICNpbmNsdWRlICJP
RVNWZXJ0ZXhBcnJheU9iamVjdC5oIgotI2luY2x1ZGUgIldlYkdMVmVydGV4QXJyYXlPYmplY3RP
RVMuaCIKICNpbmNsdWRlICJXZWJHTEJ1ZmZlci5oIgotI2luY2x1ZGUgIkZsb2F0MzJBcnJheS5o
IgorI2luY2x1ZGUgIldlYkdMRGVidWdSZW5kZXJlckluZm8uaCIKKyNpbmNsdWRlICJXZWJHTERl
YnVnU2hhZGVycy5oIgogI2luY2x1ZGUgIldlYkdMRXh0ZW5zaW9uLmgiCiAjaW5jbHVkZSAiV2Vi
R0xGcmFtZWJ1ZmZlci5oIgogI2luY2x1ZGUgIldlYkdMR2V0SW5mby5oIgotI2luY2x1ZGUgIklu
dDMyQXJyYXkuaCIKICNpbmNsdWRlICJXZWJHTFByb2dyYW0uaCIKICNpbmNsdWRlICJXZWJHTFJl
bmRlcmluZ0NvbnRleHQuaCIKKyNpbmNsdWRlICJXZWJHTFZlcnRleEFycmF5T2JqZWN0T0VTLmgi
CisjaW5jbHVkZSAiV2ViS2l0TG9zZUNvbnRleHQuaCIKICNpbmNsdWRlIDxydW50aW1lL0Vycm9y
Lmg+CiAjaW5jbHVkZSA8cnVudGltZS9KU0FycmF5Lmg+CiAjaW5jbHVkZSA8d3RmL0Zhc3RNYWxs
b2MuaD4KQEAgLTE4Nyw2ICsxODksMTAgQEAgc3RhdGljIEpTVmFsdWUgdG9KUyhFeGVjU3RhdGUq
IGV4ZWMsIEpTRAogICAgICAgICByZXR1cm4gdG9KUyhleGVjLCBnbG9iYWxPYmplY3QsIHN0YXRp
Y19jYXN0PE9FU1RleHR1cmVGbG9hdCo+KGV4dGVuc2lvbikpOwogICAgIGNhc2UgV2ViR0xFeHRl
bnNpb246Ok9FU1ZlcnRleEFycmF5T2JqZWN0TmFtZToKICAgICAgICAgcmV0dXJuIHRvSlMoZXhl
YywgZ2xvYmFsT2JqZWN0LCBzdGF0aWNfY2FzdDxPRVNWZXJ0ZXhBcnJheU9iamVjdCo+KGV4dGVu
c2lvbikpOworICAgIGNhc2UgV2ViR0xFeHRlbnNpb246OldlYkdMRGVidWdSZW5kZXJlckluZm9O
YW1lOgorICAgICAgICByZXR1cm4gdG9KUyhleGVjLCBnbG9iYWxPYmplY3QsIHN0YXRpY19jYXN0
PFdlYkdMRGVidWdSZW5kZXJlckluZm8qPihleHRlbnNpb24pKTsKKyAgICBjYXNlIFdlYkdMRXh0
ZW5zaW9uOjpXZWJHTERlYnVnU2hhZGVyc05hbWU6CisgICAgICAgIHJldHVybiB0b0pTKGV4ZWMs
IGdsb2JhbE9iamVjdCwgc3RhdGljX2Nhc3Q8V2ViR0xEZWJ1Z1NoYWRlcnMqPihleHRlbnNpb24p
KTsKICAgICB9CiAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CiAgICAgcmV0dXJuIGpzTnVsbCgp
OwpJbmRleDogU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4V2ViR0xSZW5kZXJp
bmdDb250ZXh0Q3VzdG9tLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy92OC9jdXN0b20vVjhXZWJHTFJlbmRlcmluZ0NvbnRleHRDdXN0b20uY3BwCShyZXZpc2lvbiA5
NzQ5NykKKysrIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9WOFdlYkdMUmVuZGVy
aW5nQ29udGV4dEN1c3RvbS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTU2LDYgKzU2LDggQEAKICNp
bmNsdWRlICJWOFVpbnQzMkFycmF5LmgiCiAjaW5jbHVkZSAiVjhVaW50OEFycmF5LmgiCiAjaW5j
bHVkZSAiVjhXZWJHTEJ1ZmZlci5oIgorI2luY2x1ZGUgIlY4V2ViR0xEZWJ1Z1JlbmRlcmVySW5m
by5oIgorI2luY2x1ZGUgIlY4V2ViR0xEZWJ1Z1NoYWRlcnMuaCIKICNpbmNsdWRlICJWOFdlYkdM
RnJhbWVidWZmZXIuaCIKICNpbmNsdWRlICJWOFdlYkdMUHJvZ3JhbS5oIgogI2luY2x1ZGUgIlY4
V2ViR0xSZW5kZXJidWZmZXIuaCIKQEAgLTE4Miw2ICsxODQsMTQgQEAgc3RhdGljIHY4OjpIYW5k
bGU8djg6OlZhbHVlPiB0b1Y4T2JqZWN0KAogICAgICAgICBleHRlbnNpb25PYmplY3QgPSB0b1Y4
KHN0YXRpY19jYXN0PE9FU1ZlcnRleEFycmF5T2JqZWN0Kj4oZXh0ZW5zaW9uKSk7CiAgICAgICAg
IHJlZmVyZW5jZU5hbWUgPSAib2VzVmVydGV4QXJyYXlPYmplY3ROYW1lIjsKICAgICAgICAgYnJl
YWs7CisgICAgY2FzZSBXZWJHTEV4dGVuc2lvbjo6V2ViR0xEZWJ1Z1JlbmRlcmVySW5mb05hbWU6
CisgICAgICAgIGV4dGVuc2lvbk9iamVjdCA9IHRvVjgoc3RhdGljX2Nhc3Q8V2ViR0xEZWJ1Z1Jl
bmRlcmVySW5mbyo+KGV4dGVuc2lvbikpOworICAgICAgICByZWZlcmVuY2VOYW1lID0gIndlYkdM
RGVidWdSZW5kZXJlckluZm9OYW1lIjsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBXZWJHTEV4
dGVuc2lvbjo6V2ViR0xEZWJ1Z1NoYWRlcnNOYW1lOgorICAgICAgICBleHRlbnNpb25PYmplY3Qg
PSB0b1Y4KHN0YXRpY19jYXN0PFdlYkdMRGVidWdTaGFkZXJzKj4oZXh0ZW5zaW9uKSk7CisgICAg
ICAgIHJlZmVyZW5jZU5hbWUgPSAid2ViR0xEZWJ1Z1NoYWRlcnNOYW1lIjsKKyAgICAgICAgYnJl
YWs7CiAgICAgfQogICAgIEFTU0VSVCghZXh0ZW5zaW9uT2JqZWN0LklzRW1wdHkoKSk7CiAgICAg
VjhET01XcmFwcGVyOjpzZXROYW1lZEhpZGRlblJlZmVyZW5jZShjb250ZXh0T2JqZWN0LCByZWZl
cmVuY2VOYW1lLCBleHRlbnNpb25PYmplY3QpOwpJbmRleDogU291cmNlL1dlYkNvcmUvaHRtbC9j
YW52YXMvV2ViR0xFeHRlbnNpb24uaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9odG1s
L2NhbnZhcy9XZWJHTEV4dGVuc2lvbi5oCShyZXZpc2lvbiA5NzQ5NykKKysrIFNvdXJjZS9XZWJD
b3JlL2h0bWwvY2FudmFzL1dlYkdMRXh0ZW5zaW9uLmgJKHdvcmtpbmcgY29weSkKQEAgLTM4LDYg
KzM4LDggQEAgcHVibGljOgogICAgICAgICBPRVNUZXh0dXJlRmxvYXROYW1lLAogICAgICAgICBP
RVNTdGFuZGFyZERlcml2YXRpdmVzTmFtZSwKICAgICAgICAgT0VTVmVydGV4QXJyYXlPYmplY3RO
YW1lLAorICAgICAgICBXZWJHTERlYnVnUmVuZGVyZXJJbmZvTmFtZSwKKyAgICAgICAgV2ViR0xE
ZWJ1Z1NoYWRlcnNOYW1lLAogICAgIH07CiAKICAgICB2b2lkIHJlZigpIHsgbV9jb250ZXh0LT5y
ZWYoKTsgfQpJbmRleDogU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xSZW5kZXJpbmdD
b250ZXh0LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJH
TFJlbmRlcmluZ0NvbnRleHQuY3BwCShyZXZpc2lvbiA5NzQ5NykKKysrIFNvdXJjZS9XZWJDb3Jl
L2h0bWwvY2FudmFzL1dlYkdMUmVuZGVyaW5nQ29udGV4dC5jcHAJKHdvcmtpbmcgY29weSkKQEAg
LTMyLDcgKzMyLDYgQEAKICNpbmNsdWRlICJDYWNoZWRJbWFnZS5oIgogI2luY2x1ZGUgIkNhbnZh
c1BpeGVsQXJyYXkuaCIKICNpbmNsdWRlICJDaGVja2VkSW50LmgiCi0jaW5jbHVkZSAiV2ViS2l0
TG9zZUNvbnRleHQuaCIKICNpbmNsdWRlICJDb25zb2xlLmgiCiAjaW5jbHVkZSAiRE9NV2luZG93
LmgiCiAjaW5jbHVkZSAiRXh0ZW5zaW9uczNELmgiCkBAIC01NywxMiArNTYsMTUgQEAKICNpbmNs
dWRlICJXZWJHTEJ1ZmZlci5oIgogI2luY2x1ZGUgIldlYkdMQ29udGV4dEF0dHJpYnV0ZXMuaCIK
ICNpbmNsdWRlICJXZWJHTENvbnRleHRFdmVudC5oIgorI2luY2x1ZGUgIldlYkdMRGVidWdSZW5k
ZXJlckluZm8uaCIKKyNpbmNsdWRlICJXZWJHTERlYnVnU2hhZGVycy5oIgogI2luY2x1ZGUgIldl
YkdMRnJhbWVidWZmZXIuaCIKICNpbmNsdWRlICJXZWJHTFByb2dyYW0uaCIKICNpbmNsdWRlICJX
ZWJHTFJlbmRlcmJ1ZmZlci5oIgogI2luY2x1ZGUgIldlYkdMU2hhZGVyLmgiCiAjaW5jbHVkZSAi
V2ViR0xUZXh0dXJlLmgiCiAjaW5jbHVkZSAiV2ViR0xVbmlmb3JtTG9jYXRpb24uaCIKKyNpbmNs
dWRlICJXZWJLaXRMb3NlQ29udGV4dC5oIgogCiAjaW5jbHVkZSA8d3RmL0J5dGVBcnJheS5oPgog
I2luY2x1ZGUgPHd0Zi9Pd25BcnJheVB0ci5oPgpAQCAtNDczLDYgKzQ3NSwxMiBAQCB2b2lkIFdl
YkdMUmVuZGVyaW5nQ29udGV4dDo6c2V0dXBGbGFncygpCiAgICAgfQogfQogCitib29sIFdlYkdM
UmVuZGVyaW5nQ29udGV4dDo6YWxsb3dQcml2aWxlZ2VkRXh0ZW5zaW9ucygpIGNvbnN0Cit7Cisg
ICAgLy8gRklYTUU6IGltcGxlbWVudCB0aGlzIGZ1bmN0aW9uLgorICAgIHJldHVybiB0cnVlOwor
fQorCiBXZWJHTFJlbmRlcmluZ0NvbnRleHQ6On5XZWJHTFJlbmRlcmluZ0NvbnRleHQoKQogewog
ICAgIGRldGFjaEFuZFJlbW92ZUFsbE9iamVjdHMoKTsKQEAgLTE5OTksNiArMjAwNywyOCBAQCBX
ZWJHTEV4dGVuc2lvbiogV2ViR0xSZW5kZXJpbmdDb250ZXh0OjpnCiAgICAgICAgICAgICBtX3dl
YmtpdExvc2VDb250ZXh0ID0gV2ViS2l0TG9zZUNvbnRleHQ6OmNyZWF0ZSh0aGlzKTsKICAgICAg
ICAgcmV0dXJuIG1fd2Via2l0TG9zZUNvbnRleHQuZ2V0KCk7CiAgICAgfQorICAgIGlmIChlcXVh
bElnbm9yaW5nQ2FzZShuYW1lLCAiT0VTX3N0YW5kYXJkX2Rlcml2YXRpdmVzIikKKyAgICAgICAg
JiYgbV9jb250ZXh0LT5nZXRFeHRlbnNpb25zKCktPnN1cHBvcnRzKCJHTF9PRVNfc3RhbmRhcmRf
ZGVyaXZhdGl2ZXMiKSkgeworICAgICAgICBpZiAoIW1fb2VzU3RhbmRhcmREZXJpdmF0aXZlcykg
eworICAgICAgICAgICAgbV9jb250ZXh0LT5nZXRFeHRlbnNpb25zKCktPmVuc3VyZUVuYWJsZWQo
IkdMX09FU19zdGFuZGFyZF9kZXJpdmF0aXZlcyIpOworICAgICAgICAgICAgbV9vZXNTdGFuZGFy
ZERlcml2YXRpdmVzID0gT0VTU3RhbmRhcmREZXJpdmF0aXZlczo6Y3JlYXRlKHRoaXMpOworICAg
ICAgICB9CisgICAgICAgIHJldHVybiBtX29lc1N0YW5kYXJkRGVyaXZhdGl2ZXMuZ2V0KCk7Cisg
ICAgfQorCisgICAgaWYgKGFsbG93UHJpdmlsZWdlZEV4dGVuc2lvbnMoKSkgeworICAgICAgICBp
ZiAoZXF1YWxJZ25vcmluZ0Nhc2UobmFtZSwgIldFQkdMX2RlYnVnX3JlbmRlcmVyX2luZm8iKSkg
eworICAgICAgICAgICAgaWYgKCFtX3dlYmdsRGVidWdSZW5kZXJlckluZm8pCisgICAgICAgICAg
ICAgICAgbV93ZWJnbERlYnVnUmVuZGVyZXJJbmZvID0gV2ViR0xEZWJ1Z1JlbmRlcmVySW5mbzo6
Y3JlYXRlKHRoaXMpOworICAgICAgICAgICAgcmV0dXJuIG1fd2ViZ2xEZWJ1Z1JlbmRlcmVySW5m
by5nZXQoKTsKKyAgICAgICAgfQorICAgICAgICBpZiAoZXF1YWxJZ25vcmluZ0Nhc2UobmFtZSwg
IldFQkdMX2RlYnVnX3NoYWRlcnMiKQorICAgICAgICAgICAgJiYgbV9jb250ZXh0LT5nZXRFeHRl
bnNpb25zKCktPnN1cHBvcnRzKCJHTF9BTkdMRV90cmFuc2xhdGVkX3NoYWRlcl9zb3VyY2UiKSkg
eworICAgICAgICAgICAgaWYgKCFtX3dlYmdsRGVidWdTaGFkZXJzKQorICAgICAgICAgICAgICAg
IG1fd2ViZ2xEZWJ1Z1NoYWRlcnMgPSBXZWJHTERlYnVnU2hhZGVyczo6Y3JlYXRlKHRoaXMpOwor
ICAgICAgICAgICAgcmV0dXJuIG1fd2ViZ2xEZWJ1Z1NoYWRlcnMuZ2V0KCk7CisgICAgICAgIH0K
KyAgICB9CiAKICAgICByZXR1cm4gMDsKIH0KQEAgLTIyNDUsNiArMjI3NSwxNiBAQCBXZWJHTEdl
dEluZm8gV2ViR0xSZW5kZXJpbmdDb250ZXh0OjpnZXRQCiAgICAgICAgICAgICByZXR1cm4gZ2V0
VW5zaWduZWRJbnRQYXJhbWV0ZXIoRXh0ZW5zaW9uczNEOjpGUkFHTUVOVF9TSEFERVJfREVSSVZB
VElWRV9ISU5UX09FUyk7CiAgICAgICAgIG1fY29udGV4dC0+c3ludGhlc2l6ZUdMRXJyb3IoR3Jh
cGhpY3NDb250ZXh0M0Q6OklOVkFMSURfRU5VTSk7CiAgICAgICAgIHJldHVybiBXZWJHTEdldElu
Zm8oKTsKKyAgICBjYXNlIFdlYkdMRGVidWdSZW5kZXJlckluZm86OlVOTUFTS0VEX1JFTkRFUkVS
X1dFQkdMOgorICAgICAgICBpZiAobV93ZWJnbERlYnVnUmVuZGVyZXJJbmZvKQorICAgICAgICAg
ICAgcmV0dXJuIFdlYkdMR2V0SW5mbyhtX2NvbnRleHQtPmdldFN0cmluZyhHcmFwaGljc0NvbnRl
eHQzRDo6UkVOREVSRVIpKTsKKyAgICAgICAgbV9jb250ZXh0LT5zeW50aGVzaXplR0xFcnJvcihH
cmFwaGljc0NvbnRleHQzRDo6SU5WQUxJRF9FTlVNKTsKKyAgICAgICAgcmV0dXJuIFdlYkdMR2V0
SW5mbygpOworICAgIGNhc2UgV2ViR0xEZWJ1Z1JlbmRlcmVySW5mbzo6VU5NQVNLRURfVkVORE9S
X1dFQkdMOgorICAgICAgICBpZiAobV93ZWJnbERlYnVnUmVuZGVyZXJJbmZvKQorICAgICAgICAg
ICAgcmV0dXJuIFdlYkdMR2V0SW5mbyhtX2NvbnRleHQtPmdldFN0cmluZyhHcmFwaGljc0NvbnRl
eHQzRDo6VkVORE9SKSk7CisgICAgICAgIG1fY29udGV4dC0+c3ludGhlc2l6ZUdMRXJyb3IoR3Jh
cGhpY3NDb250ZXh0M0Q6OklOVkFMSURfRU5VTSk7CisgICAgICAgIHJldHVybiBXZWJHTEdldElu
Zm8oKTsKICAgICBjYXNlIEV4dGVuc2lvbnMzRDo6VkVSVEVYX0FSUkFZX0JJTkRJTkdfT0VTOiAv
LyBPRVNfdmVydGV4X2FycmF5X29iamVjdAogICAgICAgICBpZiAobV9vZXNWZXJ0ZXhBcnJheU9i
amVjdCkgewogICAgICAgICAgICAgaWYgKCFtX2JvdW5kVmVydGV4QXJyYXlPYmplY3QtPmlzRGVm
YXVsdE9iamVjdCgpKQpAQCAtMjQxNyw2ICsyNDU3LDEzIEBAIFZlY3RvcjxTdHJpbmc+IFdlYkdM
UmVuZGVyaW5nQ29udGV4dDo6Z2UKICAgICBpZiAobV9jb250ZXh0LT5nZXRFeHRlbnNpb25zKCkt
PnN1cHBvcnRzKCJHTF9PRVNfdmVydGV4X2FycmF5X29iamVjdCIpKQogICAgICAgICByZXN1bHQu
YXBwZW5kKCJPRVNfdmVydGV4X2FycmF5X29iamVjdCIpOwogICAgIHJlc3VsdC5hcHBlbmQoIldF
QktJVF9sb3NlX2NvbnRleHQiKTsKKworICAgIGlmIChhbGxvd1ByaXZpbGVnZWRFeHRlbnNpb25z
KCkpIHsKKyAgICAgICAgaWYgKG1fY29udGV4dC0+Z2V0RXh0ZW5zaW9ucygpLT5zdXBwb3J0cygi
R0xfQU5HTEVfdHJhbnNsYXRlZF9zaGFkZXJfc291cmNlIikpCisgICAgICAgICAgICByZXN1bHQu
YXBwZW5kKCJXRUJHTF9kZWJ1Z19zaGFkZXJzIik7CisgICAgICAgIHJlc3VsdC5hcHBlbmQoIldF
QkdMX2RlYnVnX3JlbmRlcmVyX2luZm8iKTsKKyAgICB9CisKICAgICByZXR1cm4gcmVzdWx0Owog
fQogCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFJlbmRlcmluZ0NvbnRl
eHQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFJlbmRl
cmluZ0NvbnRleHQuaAkocmV2aXNpb24gOTc0OTcpCisrKyBTb3VyY2UvV2ViQ29yZS9odG1sL2Nh
bnZhcy9XZWJHTFJlbmRlcmluZ0NvbnRleHQuaAkod29ya2luZyBjb3B5KQpAQCAtNDAsOSArNDAs
MTkgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCitjbGFzcyBIVE1MSW1hZ2VFbGVtZW50Owor
Y2xhc3MgSFRNTFZpZGVvRWxlbWVudDsKK2NsYXNzIEltYWdlQnVmZmVyOworY2xhc3MgSW1hZ2VE
YXRhOworY2xhc3MgSW50U2l6ZTsKK2NsYXNzIE9FU1N0YW5kYXJkRGVyaXZhdGl2ZXM7CitjbGFz
cyBPRVNUZXh0dXJlRmxvYXQ7CitjbGFzcyBPRVNWZXJ0ZXhBcnJheU9iamVjdDsKIGNsYXNzIFdl
YkdMQWN0aXZlSW5mbzsKIGNsYXNzIFdlYkdMQnVmZmVyOwogY2xhc3MgV2ViR0xDb250ZXh0QXR0
cmlidXRlczsKK2NsYXNzIFdlYkdMRGVidWdSZW5kZXJlckluZm87CitjbGFzcyBXZWJHTERlYnVn
U2hhZGVyczsKIGNsYXNzIFdlYkdMRXh0ZW5zaW9uOwogY2xhc3MgV2ViR0xGcmFtZWJ1ZmZlcjsK
IGNsYXNzIFdlYkdMT2JqZWN0OwpAQCAtNTEsMTYgKzYxLDggQEAgY2xhc3MgV2ViR0xSZW5kZXJi
dWZmZXI7CiBjbGFzcyBXZWJHTFNoYWRlcjsKIGNsYXNzIFdlYkdMVGV4dHVyZTsKIGNsYXNzIFdl
YkdMVW5pZm9ybUxvY2F0aW9uOwotY2xhc3MgV2ViS2l0TG9zZUNvbnRleHQ7Ci1jbGFzcyBIVE1M
SW1hZ2VFbGVtZW50OwotY2xhc3MgSFRNTFZpZGVvRWxlbWVudDsKLWNsYXNzIEltYWdlQnVmZmVy
OwotY2xhc3MgSW1hZ2VEYXRhOwotY2xhc3MgSW50U2l6ZTsKLWNsYXNzIE9FU1N0YW5kYXJkRGVy
aXZhdGl2ZXM7Ci1jbGFzcyBPRVNUZXh0dXJlRmxvYXQ7Ci1jbGFzcyBPRVNWZXJ0ZXhBcnJheU9i
amVjdDsKIGNsYXNzIFdlYkdMVmVydGV4QXJyYXlPYmplY3RPRVM7CitjbGFzcyBXZWJLaXRMb3Nl
Q29udGV4dDsKIAogY2xhc3MgV2ViR0xSZW5kZXJpbmdDb250ZXh0IDogcHVibGljIENhbnZhc1Jl
bmRlcmluZ0NvbnRleHQgewogcHVibGljOgpAQCAtMzA2LDYgKzMwOCw3IEBAIHB1YmxpYzoKICAg
cHJpdmF0ZToKICAgICBmcmllbmQgY2xhc3MgV2ViR0xPYmplY3Q7CiAgICAgZnJpZW5kIGNsYXNz
IE9FU1ZlcnRleEFycmF5T2JqZWN0OworICAgIGZyaWVuZCBjbGFzcyBXZWJHTERlYnVnU2hhZGVy
czsKIAogICAgIFdlYkdMUmVuZGVyaW5nQ29udGV4dChIVE1MQ2FudmFzRWxlbWVudCosIFBhc3NS
ZWZQdHI8R3JhcGhpY3NDb250ZXh0M0Q+LCBHcmFwaGljc0NvbnRleHQzRDo6QXR0cmlidXRlcyk7
CiAgICAgdm9pZCBpbml0aWFsaXplTmV3Q29udGV4dCgpOwpAQCAtNDc0LDYgKzQ3Nyw4IEBAIHB1
YmxpYzoKICAgICBPd25QdHI8T0VTU3RhbmRhcmREZXJpdmF0aXZlcz4gbV9vZXNTdGFuZGFyZERl
cml2YXRpdmVzOwogICAgIE93blB0cjxPRVNWZXJ0ZXhBcnJheU9iamVjdD4gbV9vZXNWZXJ0ZXhB
cnJheU9iamVjdDsKICAgICBPd25QdHI8V2ViS2l0TG9zZUNvbnRleHQ+IG1fd2Via2l0TG9zZUNv
bnRleHQ7CisgICAgT3duUHRyPFdlYkdMRGVidWdSZW5kZXJlckluZm8+IG1fd2ViZ2xEZWJ1Z1Jl
bmRlcmVySW5mbzsKKyAgICBPd25QdHI8V2ViR0xEZWJ1Z1NoYWRlcnM+IG1fd2ViZ2xEZWJ1Z1No
YWRlcnM7CiAKICAgICAvLyBIZWxwZXJzIGZvciBnZXRQYXJhbWV0ZXIgYW5kIG90aGVycwogICAg
IFdlYkdMR2V0SW5mbyBnZXRCb29sZWFuUGFyYW1ldGVyKEdDM0RlbnVtKTsKQEAgLTYyMiw2ICs2
MjcsOSBAQCBwdWJsaWM6CiAgICAgLy8gSGVscGVyIGZvciByZXN0b3JhdGlvbiBhZnRlciBjb250
ZXh0IGxvc3QuCiAgICAgdm9pZCBtYXliZVJlc3RvcmVDb250ZXh0KExvc3RDb250ZXh0TW9kZSk7
CiAKKyAgICAvLyBEZXRlcm1pbmUgaWYgd2UgYXJlIHJ1bm5pbmcgdGhlIHByaXZpbGVnZWQgY29k
ZSBpbiB0aGUgYnJvd3Nlci4KKyAgICBib29sIGFsbG93UHJpdmlsZWdlZEV4dGVuc2lvbnMoKSBj
b25zdDsKKwogICAgIGZyaWVuZCBjbGFzcyBXZWJHTFN0YXRlUmVzdG9yZXI7CiB9OwogCkluZGV4
OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9FeHRlbnNpb25zM0QuaAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9FeHRlbnNpb25zM0QuaAko
cmV2aXNpb24gOTc0OTcpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9FeHRl
bnNpb25zM0QuaAkod29ya2luZyBjb3B5KQpAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmln
aHQgKEMpIDIwMTAgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdo
dCAoQykgMjAxMSBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zCkBAIC01Niw2ICs1Niw3IEBAIHB1YmxpYzoKICAgICAvLyAgIEdM
X09FU19zdGFuZGFyZF9kZXJpdmF0aXZlcwogICAgIC8vICAgR0xfT0VTX3JnYjhfcmdiYTgKICAg
ICAvLyAgIEdMX09FU192ZXJ0ZXhfYXJyYXlfb2JqZWN0CisgICAgLy8gICBHTF9BTkdMRV90cmFu
c2xhdGVkX3NoYWRlcl9zb3VyY2UKIAogICAgIC8vIFRha2VzIGZ1bGwgbmFtZSBvZiBleHRlbnNp
b247IGZvciBleGFtcGxlLAogICAgIC8vICJHTF9FWFRfdGV4dHVyZV9mb3JtYXRfQkdSQTg4ODgi
LgpAQCAtMTAzLDYgKzEwNCw5IEBAIHB1YmxpYzoKICAgICAgICAgCiAgICAgICAgIC8vIEdMX09F
U192ZXJ0ZXhfYXJyYXlfb2JqZWN0IG5hbWVzCiAgICAgICAgIFZFUlRFWF9BUlJBWV9CSU5ESU5H
X09FUyA9IDB4ODVCNSwKKworICAgICAgICAvLyBHTF9BTkdMRV90cmFuc2xhdGVkX3NoYWRlcl9z
b3VyY2UKKyAgICAgICAgVFJBTlNMQVRFRF9TSEFERVJfU09VUkNFX0xFTkdUSF9BTkdMRSA9IDB4
OTNBMCwKICAgICB9OwogCiAgICAgLy8gR0xfQVJCX3JvYnVzdG5lc3MKQEAgLTEyNSw2ICsxMjks
OSBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIGRlbGV0ZVZlcnRleEFycmF5T0VTKFBsYXRm
b3JtM0RPYmplY3QpID0gMDsKICAgICB2aXJ0dWFsIEdDM0Rib29sZWFuIGlzVmVydGV4QXJyYXlP
RVMoUGxhdGZvcm0zRE9iamVjdCkgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBiaW5kVmVydGV4QXJy
YXlPRVMoUGxhdGZvcm0zRE9iamVjdCkgPSAwOworCisgICAgLy8gR0xfQU5HTEVfdHJhbnNsYXRl
ZF9zaGFkZXJfc291cmNlCisgICAgdmlydHVhbCBTdHJpbmcgZ2V0VHJhbnNsYXRlZFNoYWRlclNv
dXJjZUFOR0xFKFBsYXRmb3JtM0RPYmplY3QpID0gMDsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdl
YkNvcmUKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzVHlw
ZXMzRC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dy
YXBoaWNzVHlwZXMzRC5oCShyZXZpc2lvbiA5NzQ5NykKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL0dyYXBoaWNzVHlwZXMzRC5oCSh3b3JraW5nIGNvcHkpCkBAIC00NCw2ICs0
NCw3IEBAIHR5cGVkZWYgZmxvYXQgR0MzRGZsb2F0OwogdHlwZWRlZiBmbG9hdCBHQzNEY2xhbXBm
OwogdHlwZWRlZiBzaWduZWQgbG9uZyBpbnQgR0MzRGludHB0cjsKIHR5cGVkZWYgc2lnbmVkIGxv
bmcgaW50IEdDM0RzaXplaXB0cjsKK3R5cGVkZWYgY2hhciBHQzNEY2hhcjsKIAogdHlwZWRlZiBH
QzNEdWludCBQbGF0Zm9ybTNET2JqZWN0OwogCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9jaHJvbWl1bS9FeHRlbnNpb25zM0RDaHJvbWl1bS5oCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0V4dGVuc2lvbnMzRENo
cm9taXVtLmgJKHJldmlzaW9uIDk3NDk3KQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvY2hyb21pdW0vRXh0ZW5zaW9uczNEQ2hyb21pdW0uaAkod29ya2luZyBjb3B5KQpAQCAt
MSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTAgR29vZ2xlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxMSBHb29nbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC01Niw2ICs1
Niw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgZGVsZXRlVmVydGV4QXJyYXlPRVMoUGxh
dGZvcm0zRE9iamVjdCk7CiAgICAgdmlydHVhbCBHQzNEYm9vbGVhbiBpc1ZlcnRleEFycmF5T0VT
KFBsYXRmb3JtM0RPYmplY3QpOwogICAgIHZpcnR1YWwgdm9pZCBiaW5kVmVydGV4QXJyYXlPRVMo
UGxhdGZvcm0zRE9iamVjdCk7CisgICAgdmlydHVhbCBTdHJpbmcgZ2V0VHJhbnNsYXRlZFNoYWRl
clNvdXJjZUFOR0xFKFBsYXRmb3JtM0RPYmplY3QpOwogCiAgICAgZW51bSB7CiAgICAgICAgIC8v
IEdMX0NIUk9NSVVNX21hcF9zdWIgKGVudW1zIGluaGVyaXRlZCBmcm9tIEdMX0FSQl92ZXJ0ZXhf
YnVmZmVyX29iamVjdCkKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL29w
ZW5nbC9FeHRlbnNpb25zM0RPcGVuR0wuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL29wZW5nbC9FeHRlbnNpb25zM0RPcGVuR0wuY3BwCShyZXZpc2lv
biA5NzQ5NykKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL29wZW5nbC9FeHRl
bnNpb25zM0RPcGVuR0wuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAq
IENvcHlyaWdodCAoQykgMjAxMCBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICog
Q29weXJpZ2h0IChDKSAyMDExIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgog
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTE5Myw2ICsxOTMsMTMgQEAgdm9pZCBFeHRl
bnNpb25zM0RPcGVuR0w6OmJpbmRWZXJ0ZXhBcnJheQogI2VuZGlmCiB9CiAKK1N0cmluZyBFeHRl
bnNpb25zM0RPcGVuR0w6OmdldFRyYW5zbGF0ZWRTaGFkZXJTb3VyY2VBTkdMRShQbGF0Zm9ybTNE
T2JqZWN0IHNoYWRlcikKK3sKKyAgICBVTlVTRURfUEFSQU0oc2hhZGVyKTsKKyAgICByZXR1cm4g
IiI7CisgICAgLy8gRklYTUU6IGltcGxlbWVudCB0aGlzIGZ1bmN0aW9uIGFuZCBhZGQgR0xfQU5H
TEVfdHJhbnNsYXRlZF9zaGFkZXJfc291cmNlIGluIHN1cHBvcnRzKCkuCit9CisKIH0gLy8gbmFt
ZXNwYWNlIFdlYkNvcmUKIAogI2VuZGlmIC8vIEVOQUJMRShXRUJHTCkKSW5kZXg6IFNvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL29wZW5nbC9FeHRlbnNpb25zM0RPcGVuR0wuaAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wvRXh0ZW5z
aW9uczNET3BlbkdMLmgJKHJldmlzaW9uIDk3NDk3KQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3Mvb3BlbmdsL0V4dGVuc2lvbnMzRE9wZW5HTC5oCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMCBHb29nbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDExIEdvb2dsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTUwLDYg
KzUwLDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBkZWxldGVWZXJ0ZXhBcnJheU9FUyhQ
bGF0Zm9ybTNET2JqZWN0KTsKICAgICB2aXJ0dWFsIEdDM0Rib29sZWFuIGlzVmVydGV4QXJyYXlP
RVMoUGxhdGZvcm0zRE9iamVjdCk7CiAgICAgdmlydHVhbCB2b2lkIGJpbmRWZXJ0ZXhBcnJheU9F
UyhQbGF0Zm9ybTNET2JqZWN0KTsKKyAgICB2aXJ0dWFsIFN0cmluZyBnZXRUcmFuc2xhdGVkU2hh
ZGVyU291cmNlQU5HTEUoUGxhdGZvcm0zRE9iamVjdCk7CiAKIHByaXZhdGU6CiAgICAgLy8gVGhp
cyBjbGFzcyBvbmx5IG5lZWRzIHRvIGJlIGluc3RhbnRpYXRlZCBieSBHcmFwaGljc0NvbnRleHQz
RCBpbXBsZW1lbnRhdGlvbnMuCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9xdC9FeHRlbnNpb25zM0RRdC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvcXQvRXh0ZW5zaW9uczNEUXQuY3BwCShyZXZpc2lvbiA5NzQ5NykKKysr
IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3F0L0V4dGVuc2lvbnMzRFF0LmNwcAko
d29ya2luZyBjb3B5KQpAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTAg
R29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxMSBH
b29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zCkBAIC04OCw2ICs4OCwxMSBAQCB2b2lkIEV4dGVuc2lvbnMzRFF0OjpiaW5kVmVydGV4
QXJyYXlPRVMoCiB7CiB9CiAKK1N0cmluZyBFeHRlbnNpb25zM0RRdDo6Z2V0VHJhbnNsYXRlZFNo
YWRlclNvdXJjZUFOR0xFKFBsYXRmb3JtM0RPYmplY3Qgc2hhZGVyKQoreworICAgIHJldHVybiAi
IjsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCiAjZW5kaWYgLy8gRU5BQkxFKFdFQkdM
KQpJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvcXQvRXh0ZW5zaW9uczNE
UXQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9xdC9F
eHRlbnNpb25zM0RRdC5oCShyZXZpc2lvbiA5NzQ5NykKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL3F0L0V4dGVuc2lvbnMzRFF0LmgJKHdvcmtpbmcgY29weSkKQEAgLTEsNSAr
MSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDEwIEdvb2dsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTEgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtNDUsNiArNDUsNyBA
QCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIGRlbGV0ZVZlcnRleEFycmF5T0VTKFBsYXRmb3Jt
M0RPYmplY3QpOwogICAgIHZpcnR1YWwgR0MzRGJvb2xlYW4gaXNWZXJ0ZXhBcnJheU9FUyhQbGF0
Zm9ybTNET2JqZWN0KTsKICAgICB2aXJ0dWFsIHZvaWQgYmluZFZlcnRleEFycmF5T0VTKFBsYXRm
b3JtM0RPYmplY3QpOworICAgIHZpcnR1YWwgU3RyaW5nIGdldFRyYW5zbGF0ZWRTaGFkZXJTb3Vy
Y2VBTkdMRShQbGF0Zm9ybTNET2JqZWN0KTsKIAogcHJpdmF0ZToKICAgICAvLyBUaGlzIGNsYXNz
IG9ubHkgbmVlZHMgdG8gYmUgaW5zdGFudGlhdGVkIGJ5IEdyYXBoaWNzQ29udGV4dDNEIGltcGxl
bWVudGF0aW9ucy4KSW5kZXg6IFNvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCShyZXZpc2lvbiA5NzQ5
NykKKysrIFNvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMTcgQEAKKzIwMTEtMTAtMTQgIFpoZW55YW8gTW8gIDx6bW9AZ29vZ2xlLmNvbT4K
KworICAgICAgICBJbXBsZW1lbnQgV0VCR0xfZGVidWdfc2hhZGVycyBhbmQgV0VCR0xfZGVidWdf
cmVuZGVyZXJfaW5mbyBleHRlbnNpb25zCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD03MDA3NworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgICogcHVibGljL1dlYkdyYXBoaWNzQ29udGV4dDNELmg6IEFkZGVkIHN1
cHBvcnQgZm9yIGdldFRyYW5zbGF0ZWRTaGFkZXJTb3VyY2VBTkdMRS4KKyAgICAgICAgKFdlYktp
dDo6V2ViR3JhcGhpY3NDb250ZXh0M0Q6OmdldFRyYW5zbGF0ZWRTaGFkZXJTb3VyY2VBTkdMRSk6
CisgICAgICAgICogc3JjL0V4dGVuc2lvbnMzRENocm9taXVtLmNwcDogRGl0dG8uCisgICAgICAg
IChXZWJDb3JlOjpFeHRlbnNpb25zM0RDaHJvbWl1bTo6Z2V0VHJhbnNsYXRlZFNoYWRlclNvdXJj
ZUFOR0xFKToKKyAgICAgICAgKiBzcmMvR3JhcGhpY3NDb250ZXh0M0RDaHJvbWl1bS5jcHA6IERp
dHRvLgorICAgICAgICAqIHNyYy9HcmFwaGljc0NvbnRleHQzRFByaXZhdGUuaDogRGl0dG8uCisK
IDIwMTEtMTAtMTQgIERhbmllbCBDaGVuZyAgPGRjaGVuZ0BjaHJvbWl1bS5vcmc+CiAKICAgICAg
ICAgQ29udGV4dC1hd2FyZSBIVE1MIHBhc3RlIGZvciBDaHJvbWl1bQpJbmRleDogU291cmNlL1dl
YktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViR3JhcGhpY3NDb250ZXh0M0QuaAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJHcmFwaGljc0NvbnRleHQzRC5oCShy
ZXZpc2lvbiA5NzQ5NykKKysrIFNvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYkdyYXBo
aWNzQ29udGV4dDNELmgJKHdvcmtpbmcgY29weSkKQEAgLTM2NSw2ICszNjUsMTAgQEAgcHVibGlj
OgogICAgIC8vIHN0YXRlIGlzIHN0aWNreSwgcmF0aGVyIHRoYW4gcmVwb3J0ZWQgb25seSBvbmNl
LgogICAgIHZpcnR1YWwgV0dDM0RlbnVtIGdldEdyYXBoaWNzUmVzZXRTdGF0dXNBUkIoKSB7IHJl
dHVybiAwOyAvKiBHTF9OT19FUlJPUiAqLyB9CiAKKyAgICAvLyBGSVhNRTogbWFrZSB0aGlzIGZ1
bmN0aW9uIHB1cmUgdmlydHVhbCBvbmNlIGl0IGlzIGltcGxlbWVudGVkIGluCisgICAgLy8gYm90
aCBjb21tYW5kIGJ1ZmZlciBwb3J0IGFuZCBpbi1wcm9jZXNzIHBvcnQuCisgICAgdmlydHVhbCBX
ZWJTdHJpbmcgZ2V0VHJhbnNsYXRlZFNoYWRlclNvdXJjZUFOR0xFKFdlYkdMSWQgc2hhZGVyKSB7
IHJldHVybiBXZWJTdHJpbmcoKTsgfQorCiAjaWYgV0VCS0lUX1VTSU5HX1NLSUEKICAgICBHckdM
SW50ZXJmYWNlKiBjcmVhdGVHckdMSW50ZXJmYWNlKCk7CiAjZW5kaWYKSW5kZXg6IFNvdXJjZS9X
ZWJLaXQvY2hyb21pdW0vc3JjL0V4dGVuc2lvbnMzRENocm9taXVtLmNwcAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9FeHRlbnNpb25zM0RDaHJvbWl1bS5jcHAJKHJl
dmlzaW9uIDk3NDk3KQorKysgU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvRXh0ZW5zaW9uczNE
Q2hyb21pdW0uY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xMTUsNiArMTE1LDExIEBAIHZvaWQgRXh0
ZW5zaW9uczNEQ2hyb21pdW06OmJpbmRWZXJ0ZXhBcnIKIHsKIH0KIAorU3RyaW5nIEV4dGVuc2lv
bnMzRENocm9taXVtOjpnZXRUcmFuc2xhdGVkU2hhZGVyU291cmNlQU5HTEUoUGxhdGZvcm0zRE9i
amVjdCBzaGFkZXIpCit7CisgICAgcmV0dXJuIG1fcHJpdmF0ZS0+Z2V0VHJhbnNsYXRlZFNoYWRl
clNvdXJjZUFOR0xFKHNoYWRlcik7Cit9CisKIHZvaWQgRXh0ZW5zaW9uczNEQ2hyb21pdW06OnNl
dFN3YXBCdWZmZXJzQ29tcGxldGVDYWxsYmFja0NIUk9NSVVNKFBhc3NPd25QdHI8U3dhcEJ1ZmZl
cnNDb21wbGV0ZUNhbGxiYWNrQ0hST01JVU0+IGNhbGxiYWNrKQogewogICAgIG1fcHJpdmF0ZS0+
c2V0U3dhcEJ1ZmZlcnNDb21wbGV0ZUNhbGxiYWNrQ0hST01JVU0oY2FsbGJhY2spOwpJbmRleDog
U291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvR3JhcGhpY3NDb250ZXh0M0RDaHJvbWl1bS5jcHAK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvR3JhcGhpY3NDb250ZXh0
M0RDaHJvbWl1bS5jcHAJKHJldmlzaW9uIDk3NDk3KQorKysgU291cmNlL1dlYktpdC9jaHJvbWl1
bS9zcmMvR3JhcGhpY3NDb250ZXh0M0RDaHJvbWl1bS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTg4
Nyw2ICs4ODcsOCBAQCBERUxFR0FURV9UT19JTVBMXzUocmVuZGVyYnVmZmVyU3RvcmFnZU11CiBE
RUxFR0FURV9UT19JTVBMKHJhdGVMaW1pdE9mZnNjcmVlbkNvbnRleHRDSFJPTUlVTSkKIERFTEVH
QVRFX1RPX0lNUExfUihnZXRHcmFwaGljc1Jlc2V0U3RhdHVzQVJCLCBHQzNEZW51bSkKIAorREVM
RUdBVEVfVE9fSU1QTF8xUihnZXRUcmFuc2xhdGVkU2hhZGVyU291cmNlQU5HTEUsIFBsYXRmb3Jt
M0RPYmplY3QsIFN0cmluZykKKwogLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAvLyBHcmFwaGljc0NvbnRleHQz
RAogLy8KSW5kZXg6IFNvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0dyYXBoaWNzQ29udGV4dDNE
UHJpdmF0ZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0dyYXBo
aWNzQ29udGV4dDNEUHJpdmF0ZS5oCShyZXZpc2lvbiA5NzQ5NykKKysrIFNvdXJjZS9XZWJLaXQv
Y2hyb21pdW0vc3JjL0dyYXBoaWNzQ29udGV4dDNEUHJpdmF0ZS5oCSh3b3JraW5nIGNvcHkpCkBA
IC0zMDMsNiArMzAzLDkgQEAgcHVibGljOgogICAgIC8vIEdMX0FSQl9yb2J1c3RuZXNzCiAgICAg
R0MzRGVudW0gZ2V0R3JhcGhpY3NSZXNldFN0YXR1c0FSQigpOwogCisgICAgLy8gR0xfQU5HTEVf
dHJhbnNsYXRlZF9zaGFkZXJfc291cmNlCisgICAgU3RyaW5nIGdldFRyYW5zbGF0ZWRTaGFkZXJT
b3VyY2VBTkdMRShQbGF0Zm9ybTNET2JqZWN0IHNoYWRlcik7CisKIHByaXZhdGU6CiAgICAgR3Jh
cGhpY3NDb250ZXh0M0RQcml2YXRlKFdlYktpdDo6V2ViVmlld0ltcGwqLCBQYXNzT3duUHRyPFdl
YktpdDo6V2ViR3JhcGhpY3NDb250ZXh0M0Q+LCBHcmFwaGljc0NvbnRleHQzRDo6QXR0cmlidXRl
cyk7CiAK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>111095</attachid>
            <date>2011-10-14 15:24:02 -0700</date>
            <delta_ts>2011-10-14 17:06:53 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-70077-20111014152401.patch</filename>
            <type>text/plain</type>
            <size>39089</size>
            <attacher name="Zhenyao Mo">zmo</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDk3NDk3KQorKysgU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsNDcgQEAKKzIwMTEtMTAtMTQgIFpoZW55YW8g
TW8gIDx6bW9AZ29vZ2xlLmNvbT4KKworICAgICAgICBJbXBsZW1lbnQgV0VCR0xfZGVidWdfc2hh
ZGVycyBhbmQgV0VCR0xfZGVidWdfcmVuZGVyZXJfaW5mbyBleHRlbnNpb25zCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03MDA3NworCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogV2ViQ29yZS5neXBpOiBhZGRl
ZCBuZXcgZXh0ZW5zaW9uIGNsYXNzIGZpbGVzLgorICAgICAgICAqIGJpbmRpbmdzL2pzL0pTV2Vi
R0xSZW5kZXJpbmdDb250ZXh0Q3VzdG9tLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OnRvSlMpOiBI
YW5kbGVzIHR3byBuZXcgZXh0ZW5zaW9ucy4KKyAgICAgICAgKiBiaW5kaW5ncy92OC9jdXN0b20v
VjhXZWJHTFJlbmRlcmluZ0NvbnRleHRDdXN0b20uY3BwOgorICAgICAgICAoV2ViQ29yZTo6dG9W
OE9iamVjdCk6IERpdHRvLgorICAgICAgICAqIGh0bWwvY2FudmFzL1dlYkdMRGVidWdSZW5kZXJl
ckluZm8uY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OldlYkdMRGVidWdSZW5kZXJlcklu
Zm86OldlYkdMRGVidWdSZW5kZXJlckluZm8pOgorICAgICAgICAoV2ViQ29yZTo6V2ViR0xEZWJ1
Z1JlbmRlcmVySW5mbzo6fldlYkdMRGVidWdSZW5kZXJlckluZm8pOgorICAgICAgICAoV2ViQ29y
ZTo6V2ViR0xEZWJ1Z1JlbmRlcmVySW5mbzo6Z2V0TmFtZSk6CisgICAgICAgIChXZWJDb3JlOjpX
ZWJHTERlYnVnUmVuZGVyZXJJbmZvOjpjcmVhdGUpOgorICAgICAgICAqIGh0bWwvY2FudmFzL1dl
YkdMRGVidWdSZW5kZXJlckluZm8uaDogQWRkZWQuCisgICAgICAgICogaHRtbC9jYW52YXMvV2Vi
R0xEZWJ1Z1JlbmRlcmVySW5mby5pZGw6IEFkZGVkLgorICAgICAgICAqIGh0bWwvY2FudmFzL1dl
YkdMRGVidWdTaGFkZXJzLmNwcDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpXZWJHTERlYnVn
U2hhZGVyczo6V2ViR0xEZWJ1Z1NoYWRlcnMpOgorICAgICAgICAoV2ViQ29yZTo6V2ViR0xEZWJ1
Z1NoYWRlcnM6On5XZWJHTERlYnVnU2hhZGVycyk6CisgICAgICAgIChXZWJDb3JlOjpXZWJHTERl
YnVnU2hhZGVyczo6Z2V0TmFtZSk6CisgICAgICAgIChXZWJDb3JlOjpXZWJHTERlYnVnU2hhZGVy
czo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OldlYkdMRGVidWdTaGFkZXJzOjpnZXRUcmFu
c2xhdGVkU2hhZGVyU291cmNlKToKKyAgICAgICAgKiBodG1sL2NhbnZhcy9XZWJHTERlYnVnU2hh
ZGVycy5oOiBBZGRlZC4KKyAgICAgICAgKiBodG1sL2NhbnZhcy9XZWJHTERlYnVnU2hhZGVycy5p
ZGw6IEFkZGVkLgorICAgICAgICAqIGh0bWwvY2FudmFzL1dlYkdMRXh0ZW5zaW9uLmg6CisgICAg
ICAgICogaHRtbC9jYW52YXMvV2ViR0xSZW5kZXJpbmdDb250ZXh0LmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OldlYkdMUmVuZGVyaW5nQ29udGV4dDo6YWxsb3dQcml2aWxlZ2VkRXh0ZW5zaW9ucyk6
IFRvIGJlIGltcGxlbWVudGVkIC0gZGVjaWRpbmcgd2hldGhlciB0aGUgdHdvIGV4dGVuc2lvbnMg
c2hvdWxkIGJlIGFsbG93ZWQgb3Igbm90LgorICAgICAgICAoV2ViQ29yZTo6V2ViR0xSZW5kZXJp
bmdDb250ZXh0OjpnZXRFeHRlbnNpb24pOiBIYW5kbGVzIHR3byBuZXcgZXh0ZW5zaW9ucy4KKyAg
ICAgICAgKFdlYkNvcmU6OldlYkdMUmVuZGVyaW5nQ29udGV4dDo6Z2V0UGFyYW1ldGVyKTogSGFu
ZGxlcyBVTk1BU0tFRF9WRU5ET1JfV0VCR0wgLyBVTk1BU0tFRF9SRU5ERVJFUl9XRUJHTAorICAg
ICAgICAoV2ViQ29yZTo6V2ViR0xSZW5kZXJpbmdDb250ZXh0OjpnZXRTdXBwb3J0ZWRFeHRlbnNp
b25zKTogSGFuZGxlcyB0d28gbmV3IGV4dGVuc2lvbnMuCisgICAgICAgICogaHRtbC9jYW52YXMv
V2ViR0xSZW5kZXJpbmdDb250ZXh0Lmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvRXh0
ZW5zaW9uczNELmg6IERpdHRvLgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNz
VHlwZXMzRC5oOiBBZGQgR0MzRGNoYXIuCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2hy
b21pdW0vRXh0ZW5zaW9uczNEQ2hyb21pdW0uaDogSGFuZGxlcyB0d28gbmV3IGV4dGVuc2lvbnMu
CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0V4dGVuc2lvbnMzRE9wZW5HTC5j
cHA6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6Z2V0VHJhbnNsYXRlZFNoYWRlclNvdXJjZUFO
R0xFKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wvRXh0ZW5zaW9uczNET3Bl
bkdMLmg6IERpdHRvLgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL3F0L0V4dGVuc2lvbnMz
RFF0LmNwcDogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpFeHRlbnNpb25zM0RRdDo6Z2V0VHJh
bnNsYXRlZFNoYWRlclNvdXJjZUFOR0xFKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9x
dC9FeHRlbnNpb25zM0RRdC5oOiBEaXR0by4KKwogMjAxMS0xMC0xNCAgRGFuaWVsIENoZW5nICA8
ZGNoZW5nQGNocm9taXVtLm9yZz4KIAogICAgICAgICBDb250ZXh0LWF3YXJlIEhUTUwgcGFzdGUg
Zm9yIENocm9taXVtCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpCShyZXZpc2lvbiA5NzQ5NykKKysrIFNv
dXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQkod29ya2luZyBjb3B5KQpAQCAtMTM2Miw2ICsxMzYy
LDggQEAKICAgICAgICAgICAgICdodG1sL2NhbnZhcy9XZWJHTEJ1ZmZlci5pZGwnLAogICAgICAg
ICAgICAgJ2h0bWwvY2FudmFzL1dlYkdMQ29udGV4dEF0dHJpYnV0ZXMuaWRsJywKICAgICAgICAg
ICAgICdodG1sL2NhbnZhcy9XZWJHTENvbnRleHRFdmVudC5pZGwnLAorICAgICAgICAgICAgJ2h0
bWwvY2FudmFzL1dlYkdMRGVidWdSZW5kZXJlckluZm8uaWRsJywKKyAgICAgICAgICAgICdodG1s
L2NhbnZhcy9XZWJHTERlYnVnU2hhZGVycy5pZGwnLAogICAgICAgICAgICAgJ2h0bWwvY2FudmFz
L1dlYkdMRnJhbWVidWZmZXIuaWRsJywKICAgICAgICAgICAgICdodG1sL2NhbnZhcy9XZWJHTFBy
b2dyYW0uaWRsJywKICAgICAgICAgICAgICdodG1sL2NhbnZhcy9XZWJHTFJlbmRlcmJ1ZmZlci5p
ZGwnLApAQCAtNTY2Miw2ICs1NjY0LDEwIEBACiAgICAgICAgICAgICAnaHRtbC9jYW52YXMvV2Vi
R0xDb250ZXh0QXR0cmlidXRlcy5oJywKICAgICAgICAgICAgICdodG1sL2NhbnZhcy9XZWJHTENv
bnRleHRFdmVudC5jcHAnLAogICAgICAgICAgICAgJ2h0bWwvY2FudmFzL1dlYkdMQ29udGV4dEV2
ZW50LmgnLAorICAgICAgICAgICAgJ2h0bWwvY2FudmFzL1dlYkdMRGVidWdSZW5kZXJlckluZm8u
Y3BwJywKKyAgICAgICAgICAgICdodG1sL2NhbnZhcy9XZWJHTERlYnVnUmVuZGVyZXJJbmZvLmgn
LAorICAgICAgICAgICAgJ2h0bWwvY2FudmFzL1dlYkdMRGVidWdTaGFkZXJzLmNwcCcsCisgICAg
ICAgICAgICAnaHRtbC9jYW52YXMvV2ViR0xEZWJ1Z1NoYWRlcnMuaCcsCiAgICAgICAgICAgICAn
aHRtbC9jYW52YXMvV2ViR0xFeHRlbnNpb24uY3BwJywKICAgICAgICAgICAgICdodG1sL2NhbnZh
cy9XZWJHTEV4dGVuc2lvbi5oJywKICAgICAgICAgICAgICdodG1sL2NhbnZhcy9XZWJHTEZyYW1l
YnVmZmVyLmNwcCcsCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1dlYkdMUmVu
ZGVyaW5nQ29udGV4dEN1c3RvbS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3MvanMvSlNXZWJHTFJlbmRlcmluZ0NvbnRleHRDdXN0b20uY3BwCShyZXZpc2lvbiA5NzQ5
NykKKysrIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTV2ViR0xSZW5kZXJpbmdDb250ZXh0
Q3VzdG9tLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjksNDIgKzI5LDQ0IEBACiAKICNpbmNsdWRl
ICJKU1dlYkdMUmVuZGVyaW5nQ29udGV4dC5oIgogCi0jaW5jbHVkZSAiV2ViS2l0TG9zZUNvbnRl
eHQuaCIKICNpbmNsdWRlICJFeGNlcHRpb25Db2RlLmgiCisjaW5jbHVkZSAiRmxvYXQzMkFycmF5
LmgiCiAjaW5jbHVkZSAiSFRNTENhbnZhc0VsZW1lbnQuaCIKICNpbmNsdWRlICJIVE1MSW1hZ2VF
bGVtZW50LmgiCi0jaW5jbHVkZSAiSlNXZWJLaXRMb3NlQ29udGV4dC5oIgorI2luY2x1ZGUgIklu
dDMyQXJyYXkuaCIKKyNpbmNsdWRlICJKU0Zsb2F0MzJBcnJheS5oIgogI2luY2x1ZGUgIkpTSFRN
TENhbnZhc0VsZW1lbnQuaCIKICNpbmNsdWRlICJKU0hUTUxJbWFnZUVsZW1lbnQuaCIKICNpbmNs
dWRlICJKU0ltYWdlRGF0YS5oIgorI2luY2x1ZGUgIkpTSW50MzJBcnJheS5oIgogI2luY2x1ZGUg
IkpTT0VTU3RhbmRhcmREZXJpdmF0aXZlcy5oIgogI2luY2x1ZGUgIkpTT0VTVGV4dHVyZUZsb2F0
LmgiCiAjaW5jbHVkZSAiSlNPRVNWZXJ0ZXhBcnJheU9iamVjdC5oIgotI2luY2x1ZGUgIkpTV2Vi
R0xWZXJ0ZXhBcnJheU9iamVjdE9FUy5oIgorI2luY2x1ZGUgIkpTVWludDhBcnJheS5oIgogI2lu
Y2x1ZGUgIkpTV2ViR0xCdWZmZXIuaCIKLSNpbmNsdWRlICJKU0Zsb2F0MzJBcnJheS5oIgogI2lu
Y2x1ZGUgIkpTV2ViR0xGcmFtZWJ1ZmZlci5oIgotI2luY2x1ZGUgIkpTSW50MzJBcnJheS5oIgog
I2luY2x1ZGUgIkpTV2ViR0xQcm9ncmFtLmgiCiAjaW5jbHVkZSAiSlNXZWJHTFJlbmRlcmJ1ZmZl
ci5oIgogI2luY2x1ZGUgIkpTV2ViR0xTaGFkZXIuaCIKICNpbmNsdWRlICJKU1dlYkdMVGV4dHVy
ZS5oIgogI2luY2x1ZGUgIkpTV2ViR0xVbmlmb3JtTG9jYXRpb24uaCIKLSNpbmNsdWRlICJKU1Vp
bnQ4QXJyYXkuaCIKKyNpbmNsdWRlICJKU1dlYkdMVmVydGV4QXJyYXlPYmplY3RPRVMuaCIKICNp
bmNsdWRlICJKU1dlYktpdENTU01hdHJpeC5oIgorI2luY2x1ZGUgIkpTV2ViS2l0TG9zZUNvbnRl
eHQuaCIKICNpbmNsdWRlICJOb3RJbXBsZW1lbnRlZC5oIgogI2luY2x1ZGUgIk9FU1N0YW5kYXJk
RGVyaXZhdGl2ZXMuaCIKICNpbmNsdWRlICJPRVNUZXh0dXJlRmxvYXQuaCIKICNpbmNsdWRlICJP
RVNWZXJ0ZXhBcnJheU9iamVjdC5oIgotI2luY2x1ZGUgIldlYkdMVmVydGV4QXJyYXlPYmplY3RP
RVMuaCIKICNpbmNsdWRlICJXZWJHTEJ1ZmZlci5oIgotI2luY2x1ZGUgIkZsb2F0MzJBcnJheS5o
IgorI2luY2x1ZGUgIldlYkdMRGVidWdSZW5kZXJlckluZm8uaCIKKyNpbmNsdWRlICJXZWJHTERl
YnVnU2hhZGVycy5oIgogI2luY2x1ZGUgIldlYkdMRXh0ZW5zaW9uLmgiCiAjaW5jbHVkZSAiV2Vi
R0xGcmFtZWJ1ZmZlci5oIgogI2luY2x1ZGUgIldlYkdMR2V0SW5mby5oIgotI2luY2x1ZGUgIklu
dDMyQXJyYXkuaCIKICNpbmNsdWRlICJXZWJHTFByb2dyYW0uaCIKICNpbmNsdWRlICJXZWJHTFJl
bmRlcmluZ0NvbnRleHQuaCIKKyNpbmNsdWRlICJXZWJHTFZlcnRleEFycmF5T2JqZWN0T0VTLmgi
CisjaW5jbHVkZSAiV2ViS2l0TG9zZUNvbnRleHQuaCIKICNpbmNsdWRlIDxydW50aW1lL0Vycm9y
Lmg+CiAjaW5jbHVkZSA8cnVudGltZS9KU0FycmF5Lmg+CiAjaW5jbHVkZSA8d3RmL0Zhc3RNYWxs
b2MuaD4KQEAgLTE4Nyw2ICsxODksMTAgQEAgc3RhdGljIEpTVmFsdWUgdG9KUyhFeGVjU3RhdGUq
IGV4ZWMsIEpTRAogICAgICAgICByZXR1cm4gdG9KUyhleGVjLCBnbG9iYWxPYmplY3QsIHN0YXRp
Y19jYXN0PE9FU1RleHR1cmVGbG9hdCo+KGV4dGVuc2lvbikpOwogICAgIGNhc2UgV2ViR0xFeHRl
bnNpb246Ok9FU1ZlcnRleEFycmF5T2JqZWN0TmFtZToKICAgICAgICAgcmV0dXJuIHRvSlMoZXhl
YywgZ2xvYmFsT2JqZWN0LCBzdGF0aWNfY2FzdDxPRVNWZXJ0ZXhBcnJheU9iamVjdCo+KGV4dGVu
c2lvbikpOworICAgIGNhc2UgV2ViR0xFeHRlbnNpb246OldlYkdMRGVidWdSZW5kZXJlckluZm9O
YW1lOgorICAgICAgICByZXR1cm4gdG9KUyhleGVjLCBnbG9iYWxPYmplY3QsIHN0YXRpY19jYXN0
PFdlYkdMRGVidWdSZW5kZXJlckluZm8qPihleHRlbnNpb24pKTsKKyAgICBjYXNlIFdlYkdMRXh0
ZW5zaW9uOjpXZWJHTERlYnVnU2hhZGVyc05hbWU6CisgICAgICAgIHJldHVybiB0b0pTKGV4ZWMs
IGdsb2JhbE9iamVjdCwgc3RhdGljX2Nhc3Q8V2ViR0xEZWJ1Z1NoYWRlcnMqPihleHRlbnNpb24p
KTsKICAgICB9CiAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CiAgICAgcmV0dXJuIGpzTnVsbCgp
OwpJbmRleDogU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4V2ViR0xSZW5kZXJp
bmdDb250ZXh0Q3VzdG9tLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy92OC9jdXN0b20vVjhXZWJHTFJlbmRlcmluZ0NvbnRleHRDdXN0b20uY3BwCShyZXZpc2lvbiA5
NzQ5NykKKysrIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9WOFdlYkdMUmVuZGVy
aW5nQ29udGV4dEN1c3RvbS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTU2LDYgKzU2LDggQEAKICNp
bmNsdWRlICJWOFVpbnQzMkFycmF5LmgiCiAjaW5jbHVkZSAiVjhVaW50OEFycmF5LmgiCiAjaW5j
bHVkZSAiVjhXZWJHTEJ1ZmZlci5oIgorI2luY2x1ZGUgIlY4V2ViR0xEZWJ1Z1JlbmRlcmVySW5m
by5oIgorI2luY2x1ZGUgIlY4V2ViR0xEZWJ1Z1NoYWRlcnMuaCIKICNpbmNsdWRlICJWOFdlYkdM
RnJhbWVidWZmZXIuaCIKICNpbmNsdWRlICJWOFdlYkdMUHJvZ3JhbS5oIgogI2luY2x1ZGUgIlY4
V2ViR0xSZW5kZXJidWZmZXIuaCIKQEAgLTE4Miw2ICsxODQsMTQgQEAgc3RhdGljIHY4OjpIYW5k
bGU8djg6OlZhbHVlPiB0b1Y4T2JqZWN0KAogICAgICAgICBleHRlbnNpb25PYmplY3QgPSB0b1Y4
KHN0YXRpY19jYXN0PE9FU1ZlcnRleEFycmF5T2JqZWN0Kj4oZXh0ZW5zaW9uKSk7CiAgICAgICAg
IHJlZmVyZW5jZU5hbWUgPSAib2VzVmVydGV4QXJyYXlPYmplY3ROYW1lIjsKICAgICAgICAgYnJl
YWs7CisgICAgY2FzZSBXZWJHTEV4dGVuc2lvbjo6V2ViR0xEZWJ1Z1JlbmRlcmVySW5mb05hbWU6
CisgICAgICAgIGV4dGVuc2lvbk9iamVjdCA9IHRvVjgoc3RhdGljX2Nhc3Q8V2ViR0xEZWJ1Z1Jl
bmRlcmVySW5mbyo+KGV4dGVuc2lvbikpOworICAgICAgICByZWZlcmVuY2VOYW1lID0gIndlYkdM
RGVidWdSZW5kZXJlckluZm9OYW1lIjsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBXZWJHTEV4
dGVuc2lvbjo6V2ViR0xEZWJ1Z1NoYWRlcnNOYW1lOgorICAgICAgICBleHRlbnNpb25PYmplY3Qg
PSB0b1Y4KHN0YXRpY19jYXN0PFdlYkdMRGVidWdTaGFkZXJzKj4oZXh0ZW5zaW9uKSk7CisgICAg
ICAgIHJlZmVyZW5jZU5hbWUgPSAid2ViR0xEZWJ1Z1NoYWRlcnNOYW1lIjsKKyAgICAgICAgYnJl
YWs7CiAgICAgfQogICAgIEFTU0VSVCghZXh0ZW5zaW9uT2JqZWN0LklzRW1wdHkoKSk7CiAgICAg
VjhET01XcmFwcGVyOjpzZXROYW1lZEhpZGRlblJlZmVyZW5jZShjb250ZXh0T2JqZWN0LCByZWZl
cmVuY2VOYW1lLCBleHRlbnNpb25PYmplY3QpOwpJbmRleDogU291cmNlL1dlYkNvcmUvaHRtbC9j
YW52YXMvV2ViR0xEZWJ1Z1JlbmRlcmVySW5mby5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dl
YkNvcmUvaHRtbC9jYW52YXMvV2ViR0xEZWJ1Z1JlbmRlcmVySW5mby5jcHAJKHJldmlzaW9uIDAp
CisrKyBTb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTERlYnVnUmVuZGVyZXJJbmZvLmNw
cAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSw1NyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAx
MSBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICog
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zCisgKiBhcmUgbWV0OgorICoKKyAqIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291
cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAq
IDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgICBkb2N1bWVudGF0aW9uIGFu
ZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoK
KyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgQU5EIElUUyBDT05UUklCVVRP
UlMgIkFTIElTIiBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVECisgKiBXQVJSQU5USUVTIE9G
IE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJF
CisgKiBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBPUiBJVFMgQ09OVFJJQlVU
T1JTIEJFIExJQUJMRSBGT1IgQU5ZCisgKiBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBT
UEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUworICogKElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9S
IFNFUlZJQ0VTOworICogTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNT
IElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5ECisgKiBPTiBBTlkgVEhFT1JZIE9GIExJ
QUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAor
ICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZ
IE9VVCBPRiBUSEUgVVNFIE9GCisgKiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0Yg
VEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcu
aCIKKworI2lmIEVOQUJMRShXRUJHTCkKKworI2luY2x1ZGUgIldlYkdMRGVidWdSZW5kZXJlcklu
Zm8uaCIKKworI2luY2x1ZGUgIldlYkdMUmVuZGVyaW5nQ29udGV4dC5oIgorCituYW1lc3BhY2Ug
V2ViQ29yZSB7CisKK1dlYkdMRGVidWdSZW5kZXJlckluZm86OldlYkdMRGVidWdSZW5kZXJlcklu
Zm8oV2ViR0xSZW5kZXJpbmdDb250ZXh0KiBjb250ZXh0KQorICAgIDogV2ViR0xFeHRlbnNpb24o
Y29udGV4dCkKK3sKK30KKworV2ViR0xEZWJ1Z1JlbmRlcmVySW5mbzo6fldlYkdMRGVidWdSZW5k
ZXJlckluZm8oKQoreworfQorCitXZWJHTEV4dGVuc2lvbjo6RXh0ZW5zaW9uTmFtZSBXZWJHTERl
YnVnUmVuZGVyZXJJbmZvOjpnZXROYW1lKCkgY29uc3QKK3sKKyAgICByZXR1cm4gV2ViR0xEZWJ1
Z1JlbmRlcmVySW5mb05hbWU7Cit9CisKK1Bhc3NPd25QdHI8V2ViR0xEZWJ1Z1JlbmRlcmVySW5m
bz4gV2ViR0xEZWJ1Z1JlbmRlcmVySW5mbzo6Y3JlYXRlKFdlYkdMUmVuZGVyaW5nQ29udGV4dCog
Y29udGV4dCkKK3sKKyAgICByZXR1cm4gYWRvcHRQdHIobmV3IFdlYkdMRGVidWdSZW5kZXJlcklu
Zm8oY29udGV4dCkpOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBF
TkFCTEUoV0VCR0wpCgpQcm9wZXJ0eSBjaGFuZ2VzIG9uOiBTb3VyY2UvV2ViQ29yZS9odG1sL2Nh
bnZhcy9XZWJHTERlYnVnUmVuZGVyZXJJbmZvLmNwcApfX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCkFkZGVkOiBzdm46ZW9s
LXN0eWxlCiAgICsgTEYKCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTERl
YnVnUmVuZGVyZXJJbmZvLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvaHRtbC9jYW52
YXMvV2ViR0xEZWJ1Z1JlbmRlcmVySW5mby5oCShyZXZpc2lvbiAwKQorKysgU291cmNlL1dlYkNv
cmUvaHRtbC9jYW52YXMvV2ViR0xEZWJ1Z1JlbmRlcmVySW5mby5oCShyZXZpc2lvbiAwKQpAQCAt
MCwwICsxLDUyIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDExIEdvb2dsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBt
ZXQ6CisgKgorICogMS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFp
biB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gIFJlZGlzdHJpYnV0aW9u
cyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyIGluIHRoZQorICogICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFs
cyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJ
UyBQUk9WSURFRCBCWSBBUFBMRSBBTkQgSVRTIENPTlRSSUJVVE9SUyAiQVMgSVMiIEFORCBBTlkK
KyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywgVEhFIElNUExJRUQKKyAqIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFO
RCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKKyAqIERJU0NMQUlNRUQuIElO
IE5PIEVWRU5UIFNIQUxMIEFQUExFIE9SIElUUyBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBB
TlkKKyAqIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwg
T1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTCisgKiAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7CisgKiBMT1NT
IE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dF
VkVSIENBVVNFRCBBTkQKKyAqIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElO
IENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJ
R0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YK
KyAqIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBXZWJHTERlYnVnUmVuZGVyZXJJbmZvX2gKKyNk
ZWZpbmUgV2ViR0xEZWJ1Z1JlbmRlcmVySW5mb19oCisKKyNpbmNsdWRlICJXZWJHTEV4dGVuc2lv
bi5oIgorI2luY2x1ZGUgPHd0Zi9QYXNzT3duUHRyLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsK
KworY2xhc3MgV2ViR0xEZWJ1Z1JlbmRlcmVySW5mbyA6IHB1YmxpYyBXZWJHTEV4dGVuc2lvbiB7
CitwdWJsaWM6CisgICAgZW51bSBFbnVtVHlwZSB7CisgICAgICAgIFVOTUFTS0VEX1ZFTkRPUl9X
RUJHTCA9IDB4OTI0NSwKKyAgICAgICAgVU5NQVNLRURfUkVOREVSRVJfV0VCR0wgPSAweDkyNDYK
KyAgICB9OworCisgICAgc3RhdGljIFBhc3NPd25QdHI8V2ViR0xEZWJ1Z1JlbmRlcmVySW5mbz4g
Y3JlYXRlKFdlYkdMUmVuZGVyaW5nQ29udGV4dCopOworCisgICAgdmlydHVhbCB+V2ViR0xEZWJ1
Z1JlbmRlcmVySW5mbygpOworICAgIHZpcnR1YWwgRXh0ZW5zaW9uTmFtZSBnZXROYW1lKCkgY29u
c3Q7CisKK3ByaXZhdGU6CisgICAgV2ViR0xEZWJ1Z1JlbmRlcmVySW5mbyhXZWJHTFJlbmRlcmlu
Z0NvbnRleHQqKTsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIFdl
YkdMRGVidWdSZW5kZXJlckluZm9faAoKUHJvcGVydHkgY2hhbmdlcyBvbjogU291cmNlL1dlYkNv
cmUvaHRtbC9jYW52YXMvV2ViR0xEZWJ1Z1JlbmRlcmVySW5mby5oCl9fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KQWRkZWQ6
IHN2bjplb2wtc3R5bGUKICAgKyBMRgoKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFz
L1dlYkdMRGVidWdSZW5kZXJlckluZm8uaWRsCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3Jl
L2h0bWwvY2FudmFzL1dlYkdMRGVidWdSZW5kZXJlckluZm8uaWRsCShyZXZpc2lvbiAwKQorKysg
U291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xEZWJ1Z1JlbmRlcmVySW5mby5pZGwJKHJl
dmlzaW9uIDApCkBAIC0wLDAgKzEsMzYgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTEgR29v
Z2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucworICogYXJlIG1ldDoKKyAqCisgKiAxLiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBj
b2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiAg
UmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Ig
b3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBU
SElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIEFORCBJVFMgQ09OVFJJQlVUT1JTICJB
UyBJUyIgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAorICogV0FSUkFOVElFUyBPRiBNRVJD
SEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRQorICog
RElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgT1IgSVRTIENPTlRSSUJVVE9SUyBC
RSBMSUFCTEUgRk9SIEFOWQorICogRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lB
TCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMKKyAqIChJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJW
SUNFUzsKKyAqIExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRF
UlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORAorICogT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJ
VFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJ
TkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQg
T0YgVEhFIFVTRSBPRgorICogVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCittb2R1bGUgaHRtbCB7CisgICAgaW50
ZXJmYWNlIFsKKyAgICAgICAgQ29uZGl0aW9uYWw9V0VCR0wsCisgICAgICAgIEdlbmVyYXRlSXNS
ZWFjaGFibGU9SW1wbENvbnRleHQsCisgICAgICAgIE9taXRDb25zdHJ1Y3RvciwKKyAgICAgICAg
RG9udENoZWNrRW51bXMKKyAgICBdIFdlYkdMRGVidWdSZW5kZXJlckluZm8geworICAgICAgICBj
b25zdCB1bnNpZ25lZCBpbnQgVU5NQVNLRURfVkVORE9SX1dFQkdMID0gMHg5MjQ1OworICAgICAg
ICBjb25zdCB1bnNpZ25lZCBpbnQgVU5NQVNLRURfUkVOREVSRVJfV0VCR0wgPSAweDkyNDY7Cisg
ICAgfTsKK30KClByb3BlcnR5IGNoYW5nZXMgb246IFNvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFz
L1dlYkdMRGVidWdSZW5kZXJlckluZm8uaWRsCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KQWRkZWQ6IHN2bjplb2wtc3R5
bGUKICAgKyBMRgoKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMRGVidWdT
aGFkZXJzLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJH
TERlYnVnU2hhZGVycy5jcHAJKHJldmlzaW9uIDApCisrKyBTb3VyY2UvV2ViQ29yZS9odG1sL2Nh
bnZhcy9XZWJHTERlYnVnU2hhZGVycy5jcHAJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsNzEgQEAK
Ky8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTEgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqCisgKiAx
LiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBm
b3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhl
CisgKiAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdp
dGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZ
IEFQUExFIEFORCBJVFMgQ09OVFJJQlVUT1JTICJBUyBJUyIgQU5EIEFOWQorICogRVhQUkVTUyBP
UiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUg
SU1QTElFRAorICogV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9S
IEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRQorICogRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hB
TEwgQVBQTEUgT1IgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWQorICogRElSRUNU
LCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5U
SUFMIERBTUFHRVMKKyAqIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1F
TlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsKKyAqIExPU1MgT0YgVVNFLCBEQVRB
LCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFO
RAorICogT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNU
UklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhF
UldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRgorICogVEhJUyBTT0ZU
V0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4K
KyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisKKyNpZiBFTkFCTEUoV0VCR0wpCisKKyNpbmNs
dWRlICJXZWJHTERlYnVnU2hhZGVycy5oIgorCisjaW5jbHVkZSAiRXh0ZW5zaW9uczNELmgiCisj
aW5jbHVkZSAiV2ViR0xSZW5kZXJpbmdDb250ZXh0LmgiCisjaW5jbHVkZSAiV2ViR0xTaGFkZXIu
aCIKKworI2luY2x1ZGUgPHd0Zi9Pd25BcnJheVB0ci5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7
CisKK1dlYkdMRGVidWdTaGFkZXJzOjpXZWJHTERlYnVnU2hhZGVycyhXZWJHTFJlbmRlcmluZ0Nv
bnRleHQqIGNvbnRleHQpCisgICAgOiBXZWJHTEV4dGVuc2lvbihjb250ZXh0KQoreworfQorCitX
ZWJHTERlYnVnU2hhZGVyczo6fldlYkdMRGVidWdTaGFkZXJzKCkKK3sKK30KKworV2ViR0xFeHRl
bnNpb246OkV4dGVuc2lvbk5hbWUgV2ViR0xEZWJ1Z1NoYWRlcnM6OmdldE5hbWUoKSBjb25zdAor
eworICAgIHJldHVybiBXZWJHTERlYnVnU2hhZGVyc05hbWU7Cit9CisKK1Bhc3NPd25QdHI8V2Vi
R0xEZWJ1Z1NoYWRlcnM+IFdlYkdMRGVidWdTaGFkZXJzOjpjcmVhdGUoV2ViR0xSZW5kZXJpbmdD
b250ZXh0KiBjb250ZXh0KQoreworICAgIHJldHVybiBhZG9wdFB0cihuZXcgV2ViR0xEZWJ1Z1No
YWRlcnMoY29udGV4dCkpOworfQorCitTdHJpbmcgV2ViR0xEZWJ1Z1NoYWRlcnM6OmdldFRyYW5z
bGF0ZWRTaGFkZXJTb3VyY2UoV2ViR0xTaGFkZXIqIHNoYWRlciwgRXhjZXB0aW9uQ29kZSYgZWMp
Cit7CisgICAgVU5VU0VEX1BBUkFNKGVjKTsKKyAgICBpZiAobV9jb250ZXh0LT5pc0NvbnRleHRM
b3N0KCkpCisgICAgICAgIHJldHVybiBTdHJpbmcoKTsKKyAgICBpZiAoIW1fY29udGV4dC0+dmFs
aWRhdGVXZWJHTE9iamVjdChzaGFkZXIpKQorICAgICAgICByZXR1cm4gIiI7CisgICAgcmV0dXJu
IG1fY29udGV4dC0+Z3JhcGhpY3NDb250ZXh0M0QoKS0+Z2V0RXh0ZW5zaW9ucygpLT5nZXRUcmFu
c2xhdGVkU2hhZGVyU291cmNlQU5HTEUoc2hhZGVyLT5vYmplY3QoKSk7Cit9CisKK30gLy8gbmFt
ZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIEVOQUJMRShXRUJHTCkKClByb3BlcnR5IGNoYW5n
ZXMgb246IFNvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMRGVidWdTaGFkZXJzLmNwcApf
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fCkFkZGVkOiBzdm46ZW9sLXN0eWxlCiAgICsgTEYKCkluZGV4OiBTb3VyY2UvV2Vi
Q29yZS9odG1sL2NhbnZhcy9XZWJHTERlYnVnU2hhZGVycy5oCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMRGVidWdTaGFkZXJzLmgJKHJldmlzaW9uIDApCisr
KyBTb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTERlYnVnU2hhZGVycy5oCShyZXZpc2lv
biAwKQpAQCAtMCwwICsxLDUyIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDExIEdvb2dsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMK
KyAqIGFyZSBtZXQ6CisgKgorICogMS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBt
dXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gIFJlZGlz
dHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVy
IG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBT
T0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBBTkQgSVRTIENPTlRSSUJVVE9SUyAiQVMgSVMi
IEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQKKyAqIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRB
QklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKKyAqIERJU0NM
QUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIE9SIElUUyBDT05UUklCVVRPUlMgQkUgTElB
QkxFIEZPUiBBTlkKKyAqIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVY
RU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTCisgKiAoSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7
CisgKiBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBU
SU9OKSBIT1dFVkVSIENBVVNFRCBBTkQKKyAqIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBX
SEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVE
SU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRI
RSBVU0UgT0YKKyAqIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lC
SUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBXZWJHTERlYnVnU2hhZGVyc19o
CisjZGVmaW5lIFdlYkdMRGVidWdTaGFkZXJzX2gKKworI2luY2x1ZGUgIkV4Y2VwdGlvbkNvZGUu
aCIKKyNpbmNsdWRlICJXZWJHTEV4dGVuc2lvbi5oIgorI2luY2x1ZGUgPHd0Zi9QYXNzT3duUHRy
Lmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgV2ViR0xTaGFkZXI7CisKK2NsYXNz
IFdlYkdMRGVidWdTaGFkZXJzIDogcHVibGljIFdlYkdMRXh0ZW5zaW9uIHsKK3B1YmxpYzoKKyAg
ICBzdGF0aWMgUGFzc093blB0cjxXZWJHTERlYnVnU2hhZGVycz4gY3JlYXRlKFdlYkdMUmVuZGVy
aW5nQ29udGV4dCopOworCisgICAgdmlydHVhbCB+V2ViR0xEZWJ1Z1NoYWRlcnMoKTsKKyAgICB2
aXJ0dWFsIEV4dGVuc2lvbk5hbWUgZ2V0TmFtZSgpIGNvbnN0OworCisgICAgU3RyaW5nIGdldFRy
YW5zbGF0ZWRTaGFkZXJTb3VyY2UoV2ViR0xTaGFkZXIqLCBFeGNlcHRpb25Db2RlJik7CisKK3By
aXZhdGU6CisgICAgV2ViR0xEZWJ1Z1NoYWRlcnMoV2ViR0xSZW5kZXJpbmdDb250ZXh0Kik7Cit9
OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBXZWJHTERlYnVnU2hhZGVy
c19oCgpQcm9wZXJ0eSBjaGFuZ2VzIG9uOiBTb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJH
TERlYnVnU2hhZGVycy5oCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX18KQWRkZWQ6IHN2bjplb2wtc3R5bGUKICAgKyBMRgoK
SW5kZXg6IFNvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMRGVidWdTaGFkZXJzLmlkbAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTERlYnVnU2hhZGVy
cy5pZGwJKHJldmlzaW9uIDApCisrKyBTb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTERl
YnVnU2hhZGVycy5pZGwJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsMzQgQEAKKy8qCisgKiBDb3B5
cmlnaHQgKEMpIDIwMTEgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqCisgKiAxLiAgUmVkaXN0cmli
dXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIuCisgKiAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVw
cm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICAgZG9j
dW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3Ry
aWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIEFORCBJ
VFMgQ09OVFJJQlVUT1JTICJBUyBJUyIgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdB
UlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAorICog
V0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB
UiBQVVJQT1NFIEFSRQorICogRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgT1Ig
SVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWQorICogRElSRUNULCBJTkRJUkVDVCwg
SU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMK
KyAqIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJ
VFVURSBHT09EUyBPUiBTRVJWSUNFUzsKKyAqIExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRT
OyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORAorICogT04gQU5Z
IFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJ
VFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJ
TkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRgorICogVEhJUyBTT0ZUV0FSRSwgRVZFTiBJ
RiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCittb2R1
bGUgaHRtbCB7CisgICAgaW50ZXJmYWNlIFsKKyAgICAgICAgQ29uZGl0aW9uYWw9V0VCR0wsCisg
ICAgICAgIEdlbmVyYXRlSXNSZWFjaGFibGU9SW1wbENvbnRleHQsCisgICAgICAgIE9taXRDb25z
dHJ1Y3RvcgorICAgIF0gV2ViR0xEZWJ1Z1NoYWRlcnMgeworICAgICAgICBbU3RyaWN0VHlwZUNo
ZWNraW5nLCBDb252ZXJ0TnVsbFN0cmluZ1RvPU51bGxdIERPTVN0cmluZyBnZXRUcmFuc2xhdGVk
U2hhZGVyU291cmNlKGluIFdlYkdMU2hhZGVyIHNoYWRlcikgcmFpc2VzKERPTUV4Y2VwdGlvbik7
CisgICAgfTsKK30KClByb3BlcnR5IGNoYW5nZXMgb246IFNvdXJjZS9XZWJDb3JlL2h0bWwvY2Fu
dmFzL1dlYkdMRGVidWdTaGFkZXJzLmlkbApfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCkFkZGVkOiBzdm46ZW9sLXN0eWxl
CiAgICsgTEYKCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTEV4dGVuc2lv
bi5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMRXh0ZW5z
aW9uLmgJKHJldmlzaW9uIDk3NDk3KQorKysgU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2Vi
R0xFeHRlbnNpb24uaAkod29ya2luZyBjb3B5KQpAQCAtMzgsNiArMzgsOCBAQCBwdWJsaWM6CiAg
ICAgICAgIE9FU1RleHR1cmVGbG9hdE5hbWUsCiAgICAgICAgIE9FU1N0YW5kYXJkRGVyaXZhdGl2
ZXNOYW1lLAogICAgICAgICBPRVNWZXJ0ZXhBcnJheU9iamVjdE5hbWUsCisgICAgICAgIFdlYkdM
RGVidWdSZW5kZXJlckluZm9OYW1lLAorICAgICAgICBXZWJHTERlYnVnU2hhZGVyc05hbWUsCiAg
ICAgfTsKIAogICAgIHZvaWQgcmVmKCkgeyBtX2NvbnRleHQtPnJlZigpOyB9CkluZGV4OiBTb3Vy
Y2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFJlbmRlcmluZ0NvbnRleHQuY3BwCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMUmVuZGVyaW5nQ29udGV4dC5j
cHAJKHJldmlzaW9uIDk3NDk3KQorKysgU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xS
ZW5kZXJpbmdDb250ZXh0LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzIsNyArMzIsNiBAQAogI2lu
Y2x1ZGUgIkNhY2hlZEltYWdlLmgiCiAjaW5jbHVkZSAiQ2FudmFzUGl4ZWxBcnJheS5oIgogI2lu
Y2x1ZGUgIkNoZWNrZWRJbnQuaCIKLSNpbmNsdWRlICJXZWJLaXRMb3NlQ29udGV4dC5oIgogI2lu
Y2x1ZGUgIkNvbnNvbGUuaCIKICNpbmNsdWRlICJET01XaW5kb3cuaCIKICNpbmNsdWRlICJFeHRl
bnNpb25zM0QuaCIKQEAgLTU3LDEyICs1NiwxNSBAQAogI2luY2x1ZGUgIldlYkdMQnVmZmVyLmgi
CiAjaW5jbHVkZSAiV2ViR0xDb250ZXh0QXR0cmlidXRlcy5oIgogI2luY2x1ZGUgIldlYkdMQ29u
dGV4dEV2ZW50LmgiCisjaW5jbHVkZSAiV2ViR0xEZWJ1Z1JlbmRlcmVySW5mby5oIgorI2luY2x1
ZGUgIldlYkdMRGVidWdTaGFkZXJzLmgiCiAjaW5jbHVkZSAiV2ViR0xGcmFtZWJ1ZmZlci5oIgog
I2luY2x1ZGUgIldlYkdMUHJvZ3JhbS5oIgogI2luY2x1ZGUgIldlYkdMUmVuZGVyYnVmZmVyLmgi
CiAjaW5jbHVkZSAiV2ViR0xTaGFkZXIuaCIKICNpbmNsdWRlICJXZWJHTFRleHR1cmUuaCIKICNp
bmNsdWRlICJXZWJHTFVuaWZvcm1Mb2NhdGlvbi5oIgorI2luY2x1ZGUgIldlYktpdExvc2VDb250
ZXh0LmgiCiAKICNpbmNsdWRlIDx3dGYvQnl0ZUFycmF5Lmg+CiAjaW5jbHVkZSA8d3RmL093bkFy
cmF5UHRyLmg+CkBAIC00NzMsNiArNDc1LDEyIEBAIHZvaWQgV2ViR0xSZW5kZXJpbmdDb250ZXh0
OjpzZXR1cEZsYWdzKCkKICAgICB9CiB9CiAKK2Jvb2wgV2ViR0xSZW5kZXJpbmdDb250ZXh0Ojph
bGxvd1ByaXZpbGVnZWRFeHRlbnNpb25zKCkgY29uc3QKK3sKKyAgICAvLyBGSVhNRTogaW1wbGVt
ZW50IHRoaXMgZnVuY3Rpb24uCisgICAgcmV0dXJuIHRydWU7Cit9CisKIFdlYkdMUmVuZGVyaW5n
Q29udGV4dDo6fldlYkdMUmVuZGVyaW5nQ29udGV4dCgpCiB7CiAgICAgZGV0YWNoQW5kUmVtb3Zl
QWxsT2JqZWN0cygpOwpAQCAtMTk5OSw2ICsyMDA3LDI4IEBAIFdlYkdMRXh0ZW5zaW9uKiBXZWJH
TFJlbmRlcmluZ0NvbnRleHQ6OmcKICAgICAgICAgICAgIG1fd2Via2l0TG9zZUNvbnRleHQgPSBX
ZWJLaXRMb3NlQ29udGV4dDo6Y3JlYXRlKHRoaXMpOwogICAgICAgICByZXR1cm4gbV93ZWJraXRM
b3NlQ29udGV4dC5nZXQoKTsKICAgICB9CisgICAgaWYgKGVxdWFsSWdub3JpbmdDYXNlKG5hbWUs
ICJPRVNfc3RhbmRhcmRfZGVyaXZhdGl2ZXMiKQorICAgICAgICAmJiBtX2NvbnRleHQtPmdldEV4
dGVuc2lvbnMoKS0+c3VwcG9ydHMoIkdMX09FU19zdGFuZGFyZF9kZXJpdmF0aXZlcyIpKSB7Cisg
ICAgICAgIGlmICghbV9vZXNTdGFuZGFyZERlcml2YXRpdmVzKSB7CisgICAgICAgICAgICBtX2Nv
bnRleHQtPmdldEV4dGVuc2lvbnMoKS0+ZW5zdXJlRW5hYmxlZCgiR0xfT0VTX3N0YW5kYXJkX2Rl
cml2YXRpdmVzIik7CisgICAgICAgICAgICBtX29lc1N0YW5kYXJkRGVyaXZhdGl2ZXMgPSBPRVNT
dGFuZGFyZERlcml2YXRpdmVzOjpjcmVhdGUodGhpcyk7CisgICAgICAgIH0KKyAgICAgICAgcmV0
dXJuIG1fb2VzU3RhbmRhcmREZXJpdmF0aXZlcy5nZXQoKTsKKyAgICB9CisKKyAgICBpZiAoYWxs
b3dQcml2aWxlZ2VkRXh0ZW5zaW9ucygpKSB7CisgICAgICAgIGlmIChlcXVhbElnbm9yaW5nQ2Fz
ZShuYW1lLCAiV0VCR0xfZGVidWdfcmVuZGVyZXJfaW5mbyIpKSB7CisgICAgICAgICAgICBpZiAo
IW1fd2ViZ2xEZWJ1Z1JlbmRlcmVySW5mbykKKyAgICAgICAgICAgICAgICBtX3dlYmdsRGVidWdS
ZW5kZXJlckluZm8gPSBXZWJHTERlYnVnUmVuZGVyZXJJbmZvOjpjcmVhdGUodGhpcyk7CisgICAg
ICAgICAgICByZXR1cm4gbV93ZWJnbERlYnVnUmVuZGVyZXJJbmZvLmdldCgpOworICAgICAgICB9
CisgICAgICAgIGlmIChlcXVhbElnbm9yaW5nQ2FzZShuYW1lLCAiV0VCR0xfZGVidWdfc2hhZGVy
cyIpCisgICAgICAgICAgICAmJiBtX2NvbnRleHQtPmdldEV4dGVuc2lvbnMoKS0+c3VwcG9ydHMo
IkdMX0FOR0xFX3RyYW5zbGF0ZWRfc2hhZGVyX3NvdXJjZSIpKSB7CisgICAgICAgICAgICBpZiAo
IW1fd2ViZ2xEZWJ1Z1NoYWRlcnMpCisgICAgICAgICAgICAgICAgbV93ZWJnbERlYnVnU2hhZGVy
cyA9IFdlYkdMRGVidWdTaGFkZXJzOjpjcmVhdGUodGhpcyk7CisgICAgICAgICAgICByZXR1cm4g
bV93ZWJnbERlYnVnU2hhZGVycy5nZXQoKTsKKyAgICAgICAgfQorICAgIH0KIAogICAgIHJldHVy
biAwOwogfQpAQCAtMjI0NSw2ICsyMjc1LDE2IEBAIFdlYkdMR2V0SW5mbyBXZWJHTFJlbmRlcmlu
Z0NvbnRleHQ6OmdldFAKICAgICAgICAgICAgIHJldHVybiBnZXRVbnNpZ25lZEludFBhcmFtZXRl
cihFeHRlbnNpb25zM0Q6OkZSQUdNRU5UX1NIQURFUl9ERVJJVkFUSVZFX0hJTlRfT0VTKTsKICAg
ICAgICAgbV9jb250ZXh0LT5zeW50aGVzaXplR0xFcnJvcihHcmFwaGljc0NvbnRleHQzRDo6SU5W
QUxJRF9FTlVNKTsKICAgICAgICAgcmV0dXJuIFdlYkdMR2V0SW5mbygpOworICAgIGNhc2UgV2Vi
R0xEZWJ1Z1JlbmRlcmVySW5mbzo6VU5NQVNLRURfUkVOREVSRVJfV0VCR0w6CisgICAgICAgIGlm
IChtX3dlYmdsRGVidWdSZW5kZXJlckluZm8pCisgICAgICAgICAgICByZXR1cm4gV2ViR0xHZXRJ
bmZvKG1fY29udGV4dC0+Z2V0U3RyaW5nKEdyYXBoaWNzQ29udGV4dDNEOjpSRU5ERVJFUikpOwor
ICAgICAgICBtX2NvbnRleHQtPnN5bnRoZXNpemVHTEVycm9yKEdyYXBoaWNzQ29udGV4dDNEOjpJ
TlZBTElEX0VOVU0pOworICAgICAgICByZXR1cm4gV2ViR0xHZXRJbmZvKCk7CisgICAgY2FzZSBX
ZWJHTERlYnVnUmVuZGVyZXJJbmZvOjpVTk1BU0tFRF9WRU5ET1JfV0VCR0w6CisgICAgICAgIGlm
IChtX3dlYmdsRGVidWdSZW5kZXJlckluZm8pCisgICAgICAgICAgICByZXR1cm4gV2ViR0xHZXRJ
bmZvKG1fY29udGV4dC0+Z2V0U3RyaW5nKEdyYXBoaWNzQ29udGV4dDNEOjpWRU5ET1IpKTsKKyAg
ICAgICAgbV9jb250ZXh0LT5zeW50aGVzaXplR0xFcnJvcihHcmFwaGljc0NvbnRleHQzRDo6SU5W
QUxJRF9FTlVNKTsKKyAgICAgICAgcmV0dXJuIFdlYkdMR2V0SW5mbygpOwogICAgIGNhc2UgRXh0
ZW5zaW9uczNEOjpWRVJURVhfQVJSQVlfQklORElOR19PRVM6IC8vIE9FU192ZXJ0ZXhfYXJyYXlf
b2JqZWN0CiAgICAgICAgIGlmIChtX29lc1ZlcnRleEFycmF5T2JqZWN0KSB7CiAgICAgICAgICAg
ICBpZiAoIW1fYm91bmRWZXJ0ZXhBcnJheU9iamVjdC0+aXNEZWZhdWx0T2JqZWN0KCkpCkBAIC0y
NDE3LDYgKzI0NTcsMTMgQEAgVmVjdG9yPFN0cmluZz4gV2ViR0xSZW5kZXJpbmdDb250ZXh0Ojpn
ZQogICAgIGlmIChtX2NvbnRleHQtPmdldEV4dGVuc2lvbnMoKS0+c3VwcG9ydHMoIkdMX09FU192
ZXJ0ZXhfYXJyYXlfb2JqZWN0IikpCiAgICAgICAgIHJlc3VsdC5hcHBlbmQoIk9FU192ZXJ0ZXhf
YXJyYXlfb2JqZWN0Iik7CiAgICAgcmVzdWx0LmFwcGVuZCgiV0VCS0lUX2xvc2VfY29udGV4dCIp
OworCisgICAgaWYgKGFsbG93UHJpdmlsZWdlZEV4dGVuc2lvbnMoKSkgeworICAgICAgICBpZiAo
bV9jb250ZXh0LT5nZXRFeHRlbnNpb25zKCktPnN1cHBvcnRzKCJHTF9BTkdMRV90cmFuc2xhdGVk
X3NoYWRlcl9zb3VyY2UiKSkKKyAgICAgICAgICAgIHJlc3VsdC5hcHBlbmQoIldFQkdMX2RlYnVn
X3NoYWRlcnMiKTsKKyAgICAgICAgcmVzdWx0LmFwcGVuZCgiV0VCR0xfZGVidWdfcmVuZGVyZXJf
aW5mbyIpOworICAgIH0KKwogICAgIHJldHVybiByZXN1bHQ7CiB9CiAKSW5kZXg6IFNvdXJjZS9X
ZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMUmVuZGVyaW5nQ29udGV4dC5oCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMUmVuZGVyaW5nQ29udGV4dC5oCShyZXZp
c2lvbiA5NzQ5NykKKysrIFNvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMUmVuZGVyaW5n
Q29udGV4dC5oCSh3b3JraW5nIGNvcHkpCkBAIC00MCw5ICs0MCwxOSBAQAogCiBuYW1lc3BhY2Ug
V2ViQ29yZSB7CiAKK2NsYXNzIEhUTUxJbWFnZUVsZW1lbnQ7CitjbGFzcyBIVE1MVmlkZW9FbGVt
ZW50OworY2xhc3MgSW1hZ2VCdWZmZXI7CitjbGFzcyBJbWFnZURhdGE7CitjbGFzcyBJbnRTaXpl
OworY2xhc3MgT0VTU3RhbmRhcmREZXJpdmF0aXZlczsKK2NsYXNzIE9FU1RleHR1cmVGbG9hdDsK
K2NsYXNzIE9FU1ZlcnRleEFycmF5T2JqZWN0OwogY2xhc3MgV2ViR0xBY3RpdmVJbmZvOwogY2xh
c3MgV2ViR0xCdWZmZXI7CiBjbGFzcyBXZWJHTENvbnRleHRBdHRyaWJ1dGVzOworY2xhc3MgV2Vi
R0xEZWJ1Z1JlbmRlcmVySW5mbzsKK2NsYXNzIFdlYkdMRGVidWdTaGFkZXJzOwogY2xhc3MgV2Vi
R0xFeHRlbnNpb247CiBjbGFzcyBXZWJHTEZyYW1lYnVmZmVyOwogY2xhc3MgV2ViR0xPYmplY3Q7
CkBAIC01MSwxNiArNjEsOCBAQCBjbGFzcyBXZWJHTFJlbmRlcmJ1ZmZlcjsKIGNsYXNzIFdlYkdM
U2hhZGVyOwogY2xhc3MgV2ViR0xUZXh0dXJlOwogY2xhc3MgV2ViR0xVbmlmb3JtTG9jYXRpb247
Ci1jbGFzcyBXZWJLaXRMb3NlQ29udGV4dDsKLWNsYXNzIEhUTUxJbWFnZUVsZW1lbnQ7Ci1jbGFz
cyBIVE1MVmlkZW9FbGVtZW50OwotY2xhc3MgSW1hZ2VCdWZmZXI7Ci1jbGFzcyBJbWFnZURhdGE7
Ci1jbGFzcyBJbnRTaXplOwotY2xhc3MgT0VTU3RhbmRhcmREZXJpdmF0aXZlczsKLWNsYXNzIE9F
U1RleHR1cmVGbG9hdDsKLWNsYXNzIE9FU1ZlcnRleEFycmF5T2JqZWN0OwogY2xhc3MgV2ViR0xW
ZXJ0ZXhBcnJheU9iamVjdE9FUzsKK2NsYXNzIFdlYktpdExvc2VDb250ZXh0OwogCiBjbGFzcyBX
ZWJHTFJlbmRlcmluZ0NvbnRleHQgOiBwdWJsaWMgQ2FudmFzUmVuZGVyaW5nQ29udGV4dCB7CiBw
dWJsaWM6CkBAIC0zMDYsNiArMzA4LDcgQEAgcHVibGljOgogICBwcml2YXRlOgogICAgIGZyaWVu
ZCBjbGFzcyBXZWJHTE9iamVjdDsKICAgICBmcmllbmQgY2xhc3MgT0VTVmVydGV4QXJyYXlPYmpl
Y3Q7CisgICAgZnJpZW5kIGNsYXNzIFdlYkdMRGVidWdTaGFkZXJzOwogCiAgICAgV2ViR0xSZW5k
ZXJpbmdDb250ZXh0KEhUTUxDYW52YXNFbGVtZW50KiwgUGFzc1JlZlB0cjxHcmFwaGljc0NvbnRl
eHQzRD4sIEdyYXBoaWNzQ29udGV4dDNEOjpBdHRyaWJ1dGVzKTsKICAgICB2b2lkIGluaXRpYWxp
emVOZXdDb250ZXh0KCk7CkBAIC00NzQsNiArNDc3LDggQEAgcHVibGljOgogICAgIE93blB0cjxP
RVNTdGFuZGFyZERlcml2YXRpdmVzPiBtX29lc1N0YW5kYXJkRGVyaXZhdGl2ZXM7CiAgICAgT3du
UHRyPE9FU1ZlcnRleEFycmF5T2JqZWN0PiBtX29lc1ZlcnRleEFycmF5T2JqZWN0OwogICAgIE93
blB0cjxXZWJLaXRMb3NlQ29udGV4dD4gbV93ZWJraXRMb3NlQ29udGV4dDsKKyAgICBPd25QdHI8
V2ViR0xEZWJ1Z1JlbmRlcmVySW5mbz4gbV93ZWJnbERlYnVnUmVuZGVyZXJJbmZvOworICAgIE93
blB0cjxXZWJHTERlYnVnU2hhZGVycz4gbV93ZWJnbERlYnVnU2hhZGVyczsKIAogICAgIC8vIEhl
bHBlcnMgZm9yIGdldFBhcmFtZXRlciBhbmQgb3RoZXJzCiAgICAgV2ViR0xHZXRJbmZvIGdldEJv
b2xlYW5QYXJhbWV0ZXIoR0MzRGVudW0pOwpAQCAtNjIyLDYgKzYyNyw5IEBAIHB1YmxpYzoKICAg
ICAvLyBIZWxwZXIgZm9yIHJlc3RvcmF0aW9uIGFmdGVyIGNvbnRleHQgbG9zdC4KICAgICB2b2lk
IG1heWJlUmVzdG9yZUNvbnRleHQoTG9zdENvbnRleHRNb2RlKTsKIAorICAgIC8vIERldGVybWlu
ZSBpZiB3ZSBhcmUgcnVubmluZyB0aGUgcHJpdmlsZWdlZCBjb2RlIGluIHRoZSBicm93c2VyLgor
ICAgIGJvb2wgYWxsb3dQcml2aWxlZ2VkRXh0ZW5zaW9ucygpIGNvbnN0OworCiAgICAgZnJpZW5k
IGNsYXNzIFdlYkdMU3RhdGVSZXN0b3JlcjsKIH07CiAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL0V4dGVuc2lvbnMzRC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL0V4dGVuc2lvbnMzRC5oCShyZXZpc2lvbiA5NzQ5NykKKysr
IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0V4dGVuc2lvbnMzRC5oCSh3b3JraW5n
IGNvcHkpCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMCBHb29nbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDExIEdvb2dsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMK
QEAgLTU2LDYgKzU2LDcgQEAgcHVibGljOgogICAgIC8vICAgR0xfT0VTX3N0YW5kYXJkX2Rlcml2
YXRpdmVzCiAgICAgLy8gICBHTF9PRVNfcmdiOF9yZ2JhOAogICAgIC8vICAgR0xfT0VTX3ZlcnRl
eF9hcnJheV9vYmplY3QKKyAgICAvLyAgIEdMX0FOR0xFX3RyYW5zbGF0ZWRfc2hhZGVyX3NvdXJj
ZQogCiAgICAgLy8gVGFrZXMgZnVsbCBuYW1lIG9mIGV4dGVuc2lvbjsgZm9yIGV4YW1wbGUsCiAg
ICAgLy8gIkdMX0VYVF90ZXh0dXJlX2Zvcm1hdF9CR1JBODg4OCIuCkBAIC0xMDMsNiArMTA0LDkg
QEAgcHVibGljOgogICAgICAgICAKICAgICAgICAgLy8gR0xfT0VTX3ZlcnRleF9hcnJheV9vYmpl
Y3QgbmFtZXMKICAgICAgICAgVkVSVEVYX0FSUkFZX0JJTkRJTkdfT0VTID0gMHg4NUI1LAorCisg
ICAgICAgIC8vIEdMX0FOR0xFX3RyYW5zbGF0ZWRfc2hhZGVyX3NvdXJjZQorICAgICAgICBUUkFO
U0xBVEVEX1NIQURFUl9TT1VSQ0VfTEVOR1RIX0FOR0xFID0gMHg5M0EwLAogICAgIH07CiAKICAg
ICAvLyBHTF9BUkJfcm9idXN0bmVzcwpAQCAtMTI1LDYgKzEyOSw5IEBAIHB1YmxpYzoKICAgICB2
aXJ0dWFsIHZvaWQgZGVsZXRlVmVydGV4QXJyYXlPRVMoUGxhdGZvcm0zRE9iamVjdCkgPSAwOwog
ICAgIHZpcnR1YWwgR0MzRGJvb2xlYW4gaXNWZXJ0ZXhBcnJheU9FUyhQbGF0Zm9ybTNET2JqZWN0
KSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIGJpbmRWZXJ0ZXhBcnJheU9FUyhQbGF0Zm9ybTNET2Jq
ZWN0KSA9IDA7CisKKyAgICAvLyBHTF9BTkdMRV90cmFuc2xhdGVkX3NoYWRlcl9zb3VyY2UKKyAg
ICB2aXJ0dWFsIFN0cmluZyBnZXRUcmFuc2xhdGVkU2hhZGVyU291cmNlQU5HTEUoUGxhdGZvcm0z
RE9iamVjdCkgPSAwOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpJbmRleDogU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NUeXBlczNELmgKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NUeXBlczNELmgJKHJl
dmlzaW9uIDk3NDk3KQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhp
Y3NUeXBlczNELmgJKHdvcmtpbmcgY29weSkKQEAgLTQ0LDYgKzQ0LDcgQEAgdHlwZWRlZiBmbG9h
dCBHQzNEZmxvYXQ7CiB0eXBlZGVmIGZsb2F0IEdDM0RjbGFtcGY7CiB0eXBlZGVmIHNpZ25lZCBs
b25nIGludCBHQzNEaW50cHRyOwogdHlwZWRlZiBzaWduZWQgbG9uZyBpbnQgR0MzRHNpemVpcHRy
OwordHlwZWRlZiBjaGFyIEdDM0RjaGFyOwogCiB0eXBlZGVmIEdDM0R1aW50IFBsYXRmb3JtM0RP
YmplY3Q7CiAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVt
L0V4dGVuc2lvbnMzRENocm9taXVtLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vRXh0ZW5zaW9uczNEQ2hyb21pdW0uaAkocmV2aXNpb24g
OTc0OTcpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9FeHRl
bnNpb25zM0RDaHJvbWl1bS5oCSh3b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAq
IENvcHlyaWdodCAoQykgMjAxMCBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICog
Q29weXJpZ2h0IChDKSAyMDExIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgog
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTU2LDYgKzU2LDcgQEAgcHVibGljOgogICAg
IHZpcnR1YWwgdm9pZCBkZWxldGVWZXJ0ZXhBcnJheU9FUyhQbGF0Zm9ybTNET2JqZWN0KTsKICAg
ICB2aXJ0dWFsIEdDM0Rib29sZWFuIGlzVmVydGV4QXJyYXlPRVMoUGxhdGZvcm0zRE9iamVjdCk7
CiAgICAgdmlydHVhbCB2b2lkIGJpbmRWZXJ0ZXhBcnJheU9FUyhQbGF0Zm9ybTNET2JqZWN0KTsK
KyAgICB2aXJ0dWFsIFN0cmluZyBnZXRUcmFuc2xhdGVkU2hhZGVyU291cmNlQU5HTEUoUGxhdGZv
cm0zRE9iamVjdCk7CiAKICAgICBlbnVtIHsKICAgICAgICAgLy8gR0xfQ0hST01JVU1fbWFwX3N1
YiAoZW51bXMgaW5oZXJpdGVkIGZyb20gR0xfQVJCX3ZlcnRleF9idWZmZXJfb2JqZWN0KQpJbmRl
eDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0V4dGVuc2lvbnMzRE9w
ZW5HTC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
b3BlbmdsL0V4dGVuc2lvbnMzRE9wZW5HTC5jcHAJKHJldmlzaW9uIDk3NDk3KQorKysgU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0V4dGVuc2lvbnMzRE9wZW5HTC5jcHAJ
KHdvcmtpbmcgY29weSkKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDEw
IEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTEg
R29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucwpAQCAtMTkzLDYgKzE5MywxMyBAQCB2b2lkIEV4dGVuc2lvbnMzRE9wZW5HTDo6Ymlu
ZFZlcnRleEFycmF5CiAjZW5kaWYKIH0KIAorU3RyaW5nIEV4dGVuc2lvbnMzRE9wZW5HTDo6Z2V0
VHJhbnNsYXRlZFNoYWRlclNvdXJjZUFOR0xFKFBsYXRmb3JtM0RPYmplY3Qgc2hhZGVyKQorewor
ICAgIFVOVVNFRF9QQVJBTShzaGFkZXIpOworICAgIHJldHVybiAiIjsKKyAgICAvLyBGSVhNRTog
aW1wbGVtZW50IHRoaXMgZnVuY3Rpb24gYW5kIGFkZCBHTF9BTkdMRV90cmFuc2xhdGVkX3NoYWRl
cl9zb3VyY2UgaW4gc3VwcG9ydHMoKS4KK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCiAj
ZW5kaWYgLy8gRU5BQkxFKFdFQkdMKQpJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3Mvb3BlbmdsL0V4dGVuc2lvbnMzRE9wZW5HTC5oCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL29wZW5nbC9FeHRlbnNpb25zM0RPcGVuR0wuaAkocmV2
aXNpb24gOTc0OTcpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wv
RXh0ZW5zaW9uczNET3BlbkdMLmgJKHdvcmtpbmcgY29weSkKQEAgLTEsNSArMSw1IEBACiAvKgot
ICogQ29weXJpZ2h0IChDKSAyMDEwIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisg
KiBDb3B5cmlnaHQgKEMpIDIwMTEgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAq
CiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtNTAsNiArNTAsNyBAQCBwdWJsaWM6CiAg
ICAgdmlydHVhbCB2b2lkIGRlbGV0ZVZlcnRleEFycmF5T0VTKFBsYXRmb3JtM0RPYmplY3QpOwog
ICAgIHZpcnR1YWwgR0MzRGJvb2xlYW4gaXNWZXJ0ZXhBcnJheU9FUyhQbGF0Zm9ybTNET2JqZWN0
KTsKICAgICB2aXJ0dWFsIHZvaWQgYmluZFZlcnRleEFycmF5T0VTKFBsYXRmb3JtM0RPYmplY3Qp
OworICAgIHZpcnR1YWwgU3RyaW5nIGdldFRyYW5zbGF0ZWRTaGFkZXJTb3VyY2VBTkdMRShQbGF0
Zm9ybTNET2JqZWN0KTsKIAogcHJpdmF0ZToKICAgICAvLyBUaGlzIGNsYXNzIG9ubHkgbmVlZHMg
dG8gYmUgaW5zdGFudGlhdGVkIGJ5IEdyYXBoaWNzQ29udGV4dDNEIGltcGxlbWVudGF0aW9ucy4K
SW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3F0L0V4dGVuc2lvbnMzRFF0
LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9xdC9F
eHRlbnNpb25zM0RRdC5jcHAJKHJldmlzaW9uIDk3NDk3KQorKysgU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvcXQvRXh0ZW5zaW9uczNEUXQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0x
LDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMCBHb29nbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDExIEdvb2dsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTg4LDYgKzg4
LDExIEBAIHZvaWQgRXh0ZW5zaW9uczNEUXQ6OmJpbmRWZXJ0ZXhBcnJheU9FUygKIHsKIH0KIAor
U3RyaW5nIEV4dGVuc2lvbnMzRFF0OjpnZXRUcmFuc2xhdGVkU2hhZGVyU291cmNlQU5HTEUoUGxh
dGZvcm0zRE9iamVjdCBzaGFkZXIpCit7CisgICAgcmV0dXJuICIiOworfQorCiB9IC8vIG5hbWVz
cGFjZSBXZWJDb3JlCiAKICNlbmRpZiAvLyBFTkFCTEUoV0VCR0wpCkluZGV4OiBTb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9xdC9FeHRlbnNpb25zM0RRdC5oCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3F0L0V4dGVuc2lvbnMzRFF0LmgJKHJl
dmlzaW9uIDk3NDk3KQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvcXQvRXh0
ZW5zaW9uczNEUXQuaAkod29ya2luZyBjb3B5KQpAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5
cmlnaHQgKEMpIDIwMTAgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHly
aWdodCAoQykgMjAxMSBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC00NSw2ICs0NSw3IEBAIHB1YmxpYzoKICAgICB2aXJ0
dWFsIHZvaWQgZGVsZXRlVmVydGV4QXJyYXlPRVMoUGxhdGZvcm0zRE9iamVjdCk7CiAgICAgdmly
dHVhbCBHQzNEYm9vbGVhbiBpc1ZlcnRleEFycmF5T0VTKFBsYXRmb3JtM0RPYmplY3QpOwogICAg
IHZpcnR1YWwgdm9pZCBiaW5kVmVydGV4QXJyYXlPRVMoUGxhdGZvcm0zRE9iamVjdCk7CisgICAg
dmlydHVhbCBTdHJpbmcgZ2V0VHJhbnNsYXRlZFNoYWRlclNvdXJjZUFOR0xFKFBsYXRmb3JtM0RP
YmplY3QpOwogCiBwcml2YXRlOgogICAgIC8vIFRoaXMgY2xhc3Mgb25seSBuZWVkcyB0byBiZSBp
bnN0YW50aWF0ZWQgYnkgR3JhcGhpY3NDb250ZXh0M0QgaW1wbGVtZW50YXRpb25zLgpJbmRleDog
U291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dl
YktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cJKHJldmlzaW9uIDk3NDk3KQorKysgU291cmNlL1dlYktp
dC9jaHJvbWl1bS9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwxNyBAQAorMjAx
MS0xMC0xNCAgWmhlbnlhbyBNbyAgPHptb0Bnb29nbGUuY29tPgorCisgICAgICAgIEltcGxlbWVu
dCBXRUJHTF9kZWJ1Z19zaGFkZXJzIGFuZCBXRUJHTF9kZWJ1Z19yZW5kZXJlcl9pbmZvIGV4dGVu
c2lvbnMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTcw
MDc3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBw
dWJsaWMvV2ViR3JhcGhpY3NDb250ZXh0M0QuaDogQWRkZWQgc3VwcG9ydCBmb3IgZ2V0VHJhbnNs
YXRlZFNoYWRlclNvdXJjZUFOR0xFLgorICAgICAgICAoV2ViS2l0OjpXZWJHcmFwaGljc0NvbnRl
eHQzRDo6Z2V0VHJhbnNsYXRlZFNoYWRlclNvdXJjZUFOR0xFKToKKyAgICAgICAgKiBzcmMvRXh0
ZW5zaW9uczNEQ2hyb21pdW0uY3BwOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6OkV4dGVuc2lv
bnMzRENocm9taXVtOjpnZXRUcmFuc2xhdGVkU2hhZGVyU291cmNlQU5HTEUpOgorICAgICAgICAq
IHNyYy9HcmFwaGljc0NvbnRleHQzRENocm9taXVtLmNwcDogRGl0dG8uCisgICAgICAgICogc3Jj
L0dyYXBoaWNzQ29udGV4dDNEUHJpdmF0ZS5oOiBEaXR0by4KKwogMjAxMS0xMC0xNCAgRGFuaWVs
IENoZW5nICA8ZGNoZW5nQGNocm9taXVtLm9yZz4KIAogICAgICAgICBDb250ZXh0LWF3YXJlIEhU
TUwgcGFzdGUgZm9yIENocm9taXVtCkluZGV4OiBTb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1Ymxp
Yy9XZWJHcmFwaGljc0NvbnRleHQzRC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvY2hy
b21pdW0vcHVibGljL1dlYkdyYXBoaWNzQ29udGV4dDNELmgJKHJldmlzaW9uIDk3NDk3KQorKysg
U291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViR3JhcGhpY3NDb250ZXh0M0QuaAkod29y
a2luZyBjb3B5KQpAQCAtMzY1LDYgKzM2NSwxMCBAQCBwdWJsaWM6CiAgICAgLy8gc3RhdGUgaXMg
c3RpY2t5LCByYXRoZXIgdGhhbiByZXBvcnRlZCBvbmx5IG9uY2UuCiAgICAgdmlydHVhbCBXR0Mz
RGVudW0gZ2V0R3JhcGhpY3NSZXNldFN0YXR1c0FSQigpIHsgcmV0dXJuIDA7IC8qIEdMX05PX0VS
Uk9SICovIH0KIAorICAgIC8vIEZJWE1FOiBtYWtlIHRoaXMgZnVuY3Rpb24gcHVyZSB2aXJ0dWFs
IG9uY2UgaXQgaXMgaW1wbGVtZW50ZWQgaW4KKyAgICAvLyBib3RoIGNvbW1hbmQgYnVmZmVyIHBv
cnQgYW5kIGluLXByb2Nlc3MgcG9ydC4KKyAgICB2aXJ0dWFsIFdlYlN0cmluZyBnZXRUcmFuc2xh
dGVkU2hhZGVyU291cmNlQU5HTEUoV2ViR0xJZCBzaGFkZXIpIHsgcmV0dXJuIFdlYlN0cmluZygp
OyB9CisKICNpZiBXRUJLSVRfVVNJTkdfU0tJQQogICAgIEdyR0xJbnRlcmZhY2UqIGNyZWF0ZUdy
R0xJbnRlcmZhY2UoKTsKICNlbmRpZgpJbmRleDogU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMv
RXh0ZW5zaW9uczNEQ2hyb21pdW0uY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvY2hy
b21pdW0vc3JjL0V4dGVuc2lvbnMzRENocm9taXVtLmNwcAkocmV2aXNpb24gOTc0OTcpCisrKyBT
b3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9FeHRlbnNpb25zM0RDaHJvbWl1bS5jcHAJKHdvcmtp
bmcgY29weSkKQEAgLTExNSw2ICsxMTUsMTEgQEAgdm9pZCBFeHRlbnNpb25zM0RDaHJvbWl1bTo6
YmluZFZlcnRleEFycgogewogfQogCitTdHJpbmcgRXh0ZW5zaW9uczNEQ2hyb21pdW06OmdldFRy
YW5zbGF0ZWRTaGFkZXJTb3VyY2VBTkdMRShQbGF0Zm9ybTNET2JqZWN0IHNoYWRlcikKK3sKKyAg
ICByZXR1cm4gbV9wcml2YXRlLT5nZXRUcmFuc2xhdGVkU2hhZGVyU291cmNlQU5HTEUoc2hhZGVy
KTsKK30KKwogdm9pZCBFeHRlbnNpb25zM0RDaHJvbWl1bTo6c2V0U3dhcEJ1ZmZlcnNDb21wbGV0
ZUNhbGxiYWNrQ0hST01JVU0oUGFzc093blB0cjxTd2FwQnVmZmVyc0NvbXBsZXRlQ2FsbGJhY2tD
SFJPTUlVTT4gY2FsbGJhY2spCiB7CiAgICAgbV9wcml2YXRlLT5zZXRTd2FwQnVmZmVyc0NvbXBs
ZXRlQ2FsbGJhY2tDSFJPTUlVTShjYWxsYmFjayk7CkluZGV4OiBTb3VyY2UvV2ViS2l0L2Nocm9t
aXVtL3NyYy9HcmFwaGljc0NvbnRleHQzRENocm9taXVtLmNwcAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvV2ViS2l0L2Nocm9taXVtL3NyYy9HcmFwaGljc0NvbnRleHQzRENocm9taXVtLmNwcAkocmV2
aXNpb24gOTc0OTcpCisrKyBTb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9HcmFwaGljc0NvbnRl
eHQzRENocm9taXVtLmNwcAkod29ya2luZyBjb3B5KQpAQCAtODg3LDYgKzg4Nyw4IEBAIERFTEVH
QVRFX1RPX0lNUExfNShyZW5kZXJidWZmZXJTdG9yYWdlTXUKIERFTEVHQVRFX1RPX0lNUEwocmF0
ZUxpbWl0T2Zmc2NyZWVuQ29udGV4dENIUk9NSVVNKQogREVMRUdBVEVfVE9fSU1QTF9SKGdldEdy
YXBoaWNzUmVzZXRTdGF0dXNBUkIsIEdDM0RlbnVtKQogCitERUxFR0FURV9UT19JTVBMXzFSKGdl
dFRyYW5zbGF0ZWRTaGFkZXJTb3VyY2VBTkdMRSwgUGxhdGZvcm0zRE9iamVjdCwgU3RyaW5nKQor
CiAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0KIC8vIEdyYXBoaWNzQ29udGV4dDNECiAvLwpJbmRleDogU291cmNl
L1dlYktpdC9jaHJvbWl1bS9zcmMvR3JhcGhpY3NDb250ZXh0M0RQcml2YXRlLmgKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvR3JhcGhpY3NDb250ZXh0M0RQcml2YXRl
LmgJKHJldmlzaW9uIDk3NDk3KQorKysgU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvR3JhcGhp
Y3NDb250ZXh0M0RQcml2YXRlLmgJKHdvcmtpbmcgY29weSkKQEAgLTMwMyw2ICszMDMsOSBAQCBw
dWJsaWM6CiAgICAgLy8gR0xfQVJCX3JvYnVzdG5lc3MKICAgICBHQzNEZW51bSBnZXRHcmFwaGlj
c1Jlc2V0U3RhdHVzQVJCKCk7CiAKKyAgICAvLyBHTF9BTkdMRV90cmFuc2xhdGVkX3NoYWRlcl9z
b3VyY2UKKyAgICBTdHJpbmcgZ2V0VHJhbnNsYXRlZFNoYWRlclNvdXJjZUFOR0xFKFBsYXRmb3Jt
M0RPYmplY3Qgc2hhZGVyKTsKKwogcHJpdmF0ZToKICAgICBHcmFwaGljc0NvbnRleHQzRFByaXZh
dGUoV2ViS2l0OjpXZWJWaWV3SW1wbCosIFBhc3NPd25QdHI8V2ViS2l0OjpXZWJHcmFwaGljc0Nv
bnRleHQzRD4sIEdyYXBoaWNzQ29udGV4dDNEOjpBdHRyaWJ1dGVzKTsKIAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>111111</attachid>
            <date>2011-10-14 17:06:57 -0700</date>
            <delta_ts>2011-10-16 13:10:24 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-70077-20111014170656.patch</filename>
            <type>text/plain</type>
            <size>42587</size>
            <attacher name="Zhenyao Mo">zmo</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDk3NDk3KQorKysgU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsNDggQEAKKzIwMTEtMTAtMTQgIFpoZW55YW8g
TW8gIDx6bW9AZ29vZ2xlLmNvbT4KKworICAgICAgICBJbXBsZW1lbnQgV0VCR0xfZGVidWdfc2hh
ZGVycyBhbmQgV0VCR0xfZGVidWdfcmVuZGVyZXJfaW5mbyBleHRlbnNpb25zCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03MDA3NworCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogV2ViQ29yZS5neXBpOiBhZGRl
ZCBuZXcgZXh0ZW5zaW9uIGNsYXNzIGZpbGVzLgorICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9q
L3Byb2plY3QucGJ4cHJvajogZGl0dG8uCisgICAgICAgICogYmluZGluZ3MvanMvSlNXZWJHTFJl
bmRlcmluZ0NvbnRleHRDdXN0b20uY3BwOgorICAgICAgICAoV2ViQ29yZTo6dG9KUyk6IEhhbmRs
ZXMgdHdvIG5ldyBleHRlbnNpb25zLgorICAgICAgICAqIGJpbmRpbmdzL3Y4L2N1c3RvbS9WOFdl
YkdMUmVuZGVyaW5nQ29udGV4dEN1c3RvbS5jcHA6CisgICAgICAgIChXZWJDb3JlOjp0b1Y4T2Jq
ZWN0KTogRGl0dG8uCisgICAgICAgICogaHRtbC9jYW52YXMvV2ViR0xEZWJ1Z1JlbmRlcmVySW5m
by5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6V2ViR0xEZWJ1Z1JlbmRlcmVySW5mbzo6
V2ViR0xEZWJ1Z1JlbmRlcmVySW5mbyk6CisgICAgICAgIChXZWJDb3JlOjpXZWJHTERlYnVnUmVu
ZGVyZXJJbmZvOjp+V2ViR0xEZWJ1Z1JlbmRlcmVySW5mbyk6CisgICAgICAgIChXZWJDb3JlOjpX
ZWJHTERlYnVnUmVuZGVyZXJJbmZvOjpnZXROYW1lKToKKyAgICAgICAgKFdlYkNvcmU6OldlYkdM
RGVidWdSZW5kZXJlckluZm86OmNyZWF0ZSk6CisgICAgICAgICogaHRtbC9jYW52YXMvV2ViR0xE
ZWJ1Z1JlbmRlcmVySW5mby5oOiBBZGRlZC4KKyAgICAgICAgKiBodG1sL2NhbnZhcy9XZWJHTERl
YnVnUmVuZGVyZXJJbmZvLmlkbDogQWRkZWQuCisgICAgICAgICogaHRtbC9jYW52YXMvV2ViR0xE
ZWJ1Z1NoYWRlcnMuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OldlYkdMRGVidWdTaGFk
ZXJzOjpXZWJHTERlYnVnU2hhZGVycyk6CisgICAgICAgIChXZWJDb3JlOjpXZWJHTERlYnVnU2hh
ZGVyczo6fldlYkdMRGVidWdTaGFkZXJzKToKKyAgICAgICAgKFdlYkNvcmU6OldlYkdMRGVidWdT
aGFkZXJzOjpnZXROYW1lKToKKyAgICAgICAgKFdlYkNvcmU6OldlYkdMRGVidWdTaGFkZXJzOjpj
cmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6V2ViR0xEZWJ1Z1NoYWRlcnM6OmdldFRyYW5zbGF0
ZWRTaGFkZXJTb3VyY2UpOgorICAgICAgICAqIGh0bWwvY2FudmFzL1dlYkdMRGVidWdTaGFkZXJz
Lmg6IEFkZGVkLgorICAgICAgICAqIGh0bWwvY2FudmFzL1dlYkdMRGVidWdTaGFkZXJzLmlkbDog
QWRkZWQuCisgICAgICAgICogaHRtbC9jYW52YXMvV2ViR0xFeHRlbnNpb24uaDoKKyAgICAgICAg
KiBodG1sL2NhbnZhcy9XZWJHTFJlbmRlcmluZ0NvbnRleHQuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6V2ViR0xSZW5kZXJpbmdDb250ZXh0OjphbGxvd1ByaXZpbGVnZWRFeHRlbnNpb25zKTogVG8g
YmUgaW1wbGVtZW50ZWQgLSBkZWNpZGluZyB3aGV0aGVyIHRoZSB0d28gZXh0ZW5zaW9ucyBzaG91
bGQgYmUgYWxsb3dlZCBvciBub3QuCisgICAgICAgIChXZWJDb3JlOjpXZWJHTFJlbmRlcmluZ0Nv
bnRleHQ6OmdldEV4dGVuc2lvbik6IEhhbmRsZXMgdHdvIG5ldyBleHRlbnNpb25zLgorICAgICAg
ICAoV2ViQ29yZTo6V2ViR0xSZW5kZXJpbmdDb250ZXh0OjpnZXRQYXJhbWV0ZXIpOiBIYW5kbGVz
IFVOTUFTS0VEX1ZFTkRPUl9XRUJHTCAvIFVOTUFTS0VEX1JFTkRFUkVSX1dFQkdMCisgICAgICAg
IChXZWJDb3JlOjpXZWJHTFJlbmRlcmluZ0NvbnRleHQ6OmdldFN1cHBvcnRlZEV4dGVuc2lvbnMp
OiBIYW5kbGVzIHR3byBuZXcgZXh0ZW5zaW9ucy4KKyAgICAgICAgKiBodG1sL2NhbnZhcy9XZWJH
TFJlbmRlcmluZ0NvbnRleHQuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9FeHRlbnNp
b25zM0QuaDogRGl0dG8uCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NUeXBl
czNELmg6IEFkZCBHQzNEY2hhci4KKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1
bS9FeHRlbnNpb25zM0RDaHJvbWl1bS5oOiBIYW5kbGVzIHR3byBuZXcgZXh0ZW5zaW9ucy4KKyAg
ICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wvRXh0ZW5zaW9uczNET3BlbkdMLmNwcDog
RGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpnZXRUcmFuc2xhdGVkU2hhZGVyU291cmNlQU5HTEUp
OgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL29wZW5nbC9FeHRlbnNpb25zM0RPcGVuR0wu
aDogRGl0dG8uCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvcXQvRXh0ZW5zaW9uczNEUXQu
Y3BwOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6OkV4dGVuc2lvbnMzRFF0OjpnZXRUcmFuc2xh
dGVkU2hhZGVyU291cmNlQU5HTEUpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL3F0L0V4
dGVuc2lvbnMzRFF0Lmg6IERpdHRvLgorCiAyMDExLTEwLTE0ICBEYW5pZWwgQ2hlbmcgIDxkY2hl
bmdAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIENvbnRleHQtYXdhcmUgSFRNTCBwYXN0ZSBmb3Ig
Q2hyb21pdW0KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkJKHJldmlzaW9uIDk3NDk3KQorKysgU291cmNl
L1dlYkNvcmUvV2ViQ29yZS5neXBpCSh3b3JraW5nIGNvcHkpCkBAIC0xMzYyLDYgKzEzNjIsOCBA
QAogICAgICAgICAgICAgJ2h0bWwvY2FudmFzL1dlYkdMQnVmZmVyLmlkbCcsCiAgICAgICAgICAg
ICAnaHRtbC9jYW52YXMvV2ViR0xDb250ZXh0QXR0cmlidXRlcy5pZGwnLAogICAgICAgICAgICAg
J2h0bWwvY2FudmFzL1dlYkdMQ29udGV4dEV2ZW50LmlkbCcsCisgICAgICAgICAgICAnaHRtbC9j
YW52YXMvV2ViR0xEZWJ1Z1JlbmRlcmVySW5mby5pZGwnLAorICAgICAgICAgICAgJ2h0bWwvY2Fu
dmFzL1dlYkdMRGVidWdTaGFkZXJzLmlkbCcsCiAgICAgICAgICAgICAnaHRtbC9jYW52YXMvV2Vi
R0xGcmFtZWJ1ZmZlci5pZGwnLAogICAgICAgICAgICAgJ2h0bWwvY2FudmFzL1dlYkdMUHJvZ3Jh
bS5pZGwnLAogICAgICAgICAgICAgJ2h0bWwvY2FudmFzL1dlYkdMUmVuZGVyYnVmZmVyLmlkbCcs
CkBAIC01NjYyLDYgKzU2NjQsMTAgQEAKICAgICAgICAgICAgICdodG1sL2NhbnZhcy9XZWJHTENv
bnRleHRBdHRyaWJ1dGVzLmgnLAogICAgICAgICAgICAgJ2h0bWwvY2FudmFzL1dlYkdMQ29udGV4
dEV2ZW50LmNwcCcsCiAgICAgICAgICAgICAnaHRtbC9jYW52YXMvV2ViR0xDb250ZXh0RXZlbnQu
aCcsCisgICAgICAgICAgICAnaHRtbC9jYW52YXMvV2ViR0xEZWJ1Z1JlbmRlcmVySW5mby5jcHAn
LAorICAgICAgICAgICAgJ2h0bWwvY2FudmFzL1dlYkdMRGVidWdSZW5kZXJlckluZm8uaCcsCisg
ICAgICAgICAgICAnaHRtbC9jYW52YXMvV2ViR0xEZWJ1Z1NoYWRlcnMuY3BwJywKKyAgICAgICAg
ICAgICdodG1sL2NhbnZhcy9XZWJHTERlYnVnU2hhZGVycy5oJywKICAgICAgICAgICAgICdodG1s
L2NhbnZhcy9XZWJHTEV4dGVuc2lvbi5jcHAnLAogICAgICAgICAgICAgJ2h0bWwvY2FudmFzL1dl
YkdMRXh0ZW5zaW9uLmgnLAogICAgICAgICAgICAgJ2h0bWwvY2FudmFzL1dlYkdMRnJhbWVidWZm
ZXIuY3BwJywKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3Qu
cGJ4cHJvago9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9w
cm9qZWN0LnBieHByb2oJKHJldmlzaW9uIDk3NDk3KQorKysgU291cmNlL1dlYkNvcmUvV2ViQ29y
ZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCSh3b3JraW5nIGNvcHkpCkBAIC0xMDUwNiw2ICsx
MDUwNiwxMiBAQAogCQk5RkZFM0U3QzExQjU5QzZFMDAzNzg3NEUgLyogTWVtb3J5SW5mby5pZGwg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gTWVtb3J5SW5mby5pZGw7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCTlGRkUzRUEzMTFCNUE0MzkwMDM3ODc0RSAvKiBKU01lbW9yeUluZm8uY3Bw
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNNZW1vcnlJbmZvLmNwcDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOUZGRTNFQTQxMUI1QTQzOTAwMzc4NzRFIC8q
IEpTTWVtb3J5SW5mby5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBKU01lbW9y
eUluZm8uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQTAwMjI4RDAxNDQ5MDE5ODAw
RENBMUU1IC8qIFdlYkdMRGVidWdSZW5kZXJlckluZm8uY3BwICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAuY3BwOyBuYW1lID0gV2ViR0xEZWJ1Z1JlbmRlcmVySW5mby5jcHA7IHBhdGggPSBjYW52
YXMvV2ViR0xEZWJ1Z1JlbmRlcmVySW5mby5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CisJCUEwMDIyOEQxMTQ0OTAxOTgwMERDQTFFNSAvKiBXZWJHTERlYnVnUmVuZGVyZXJJbmZvLmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IFdlYkdMRGVidWdSZW5kZXJlckluZm8u
aDsgcGF0aCA9IGNhbnZhcy9XZWJHTERlYnVnUmVuZGVyZXJJbmZvLmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CisJCUEwMDIyOEQyMTQ0OTAxOTgwMERDQTFFNSAvKiBXZWJHTERlYnVnUmVu
ZGVyZXJJbmZvLmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IG5hbWUgPSBXZWJHTERlYnVnUmVuZGVyZXJJ
bmZvLmlkbDsgcGF0aCA9IGNhbnZhcy9XZWJHTERlYnVnUmVuZGVyZXJJbmZvLmlkbDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQTAwMjI4RDMxNDQ5MDE5ODAwRENBMUU1IC8qIFdlYkdM
RGVidWdTaGFkZXJzLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IFdl
YkdMRGVidWdTaGFkZXJzLmNwcDsgcGF0aCA9IGNhbnZhcy9XZWJHTERlYnVnU2hhZGVycy5jcHA7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUEwMDIyOEQ0MTQ0OTAxOTgwMERDQTFFNSAv
KiBXZWJHTERlYnVnU2hhZGVycy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBX
ZWJHTERlYnVnU2hhZGVycy5oOyBwYXRoID0gY2FudmFzL1dlYkdMRGVidWdTaGFkZXJzLmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUEwMDIyOEQ1MTQ0OTAxOTgwMERDQTFFNSAvKiBX
ZWJHTERlYnVnU2hhZGVycy5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBuYW1lID0gV2ViR0xEZWJ1Z1No
YWRlcnMuaWRsOyBwYXRoID0gY2FudmFzL1dlYkdMRGVidWdTaGFkZXJzLmlkbDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQTAwQjcyMTkxMURFNjQyNzAwOEFCOUZGIC8qIENoZWNrZWRJ
bnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gQ2hlY2tlZEludC5oOyBwYXRo
ID0gY2FudmFzL0NoZWNrZWRJbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQTEy
MEFDQTAxM0Y5OTgzNzAwRkU0QUM3IC8qIExheW91dFJlcGFpbnRlci5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBMYXlvdXRSZXBhaW50ZXIuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJQTEyMEFDQTExM0Y5OTg0NjAwRkU0QUM3IC8qIExheW91dFJlcGFpbnRlci5j
cHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBMYXlvdXRSZXBhaW50ZXIu
Y3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTQ3OTEsNiArMTQ3OTcsMTIgQEAK
IAkJNDk0ODRGQUUxMDJDRjAxRTAwMTg3REQzIC8qIGNhbnZhcyAqLyA9IHsKIAkJCWlzYSA9IFBC
WEdyb3VwOwogCQkJY2hpbGRyZW4gPSAoCisJCQkJQTAwMjI4RDAxNDQ5MDE5ODAwRENBMUU1IC8q
IFdlYkdMRGVidWdSZW5kZXJlckluZm8uY3BwICovLAorCQkJCUEwMDIyOEQxMTQ0OTAxOTgwMERD
QTFFNSAvKiBXZWJHTERlYnVnUmVuZGVyZXJJbmZvLmggKi8sCisJCQkJQTAwMjI4RDIxNDQ5MDE5
ODAwRENBMUU1IC8qIFdlYkdMRGVidWdSZW5kZXJlckluZm8uaWRsICovLAorCQkJCUEwMDIyOEQz
MTQ0OTAxOTgwMERDQTFFNSAvKiBXZWJHTERlYnVnU2hhZGVycy5jcHAgKi8sCisJCQkJQTAwMjI4
RDQxNDQ5MDE5ODAwRENBMUU1IC8qIFdlYkdMRGVidWdTaGFkZXJzLmggKi8sCisJCQkJQTAwMjI4
RDUxNDQ5MDE5ODAwRENBMUU1IC8qIFdlYkdMRGVidWdTaGFkZXJzLmlkbCAqLywKIAkJCQk0OUVF
Q0RDQTEwNTAzQzIzMDAwOTlGQUIgLyogQXJyYXlCdWZmZXIuY3BwICovLAogCQkJCTQ5RUVDRENC
MTA1MDNDMjMwMDA5OUZBQiAvKiBBcnJheUJ1ZmZlci5oICovLAogCQkJCTQ5RUVDRENDMTA1MDND
MjMwMDA5OUZBQiAvKiBBcnJheUJ1ZmZlci5pZGwgKi8sCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9qcy9KU1dlYkdMUmVuZGVyaW5nQ29udGV4dEN1c3RvbS5jcHAKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNXZWJHTFJlbmRlcmluZ0NvbnRleHRDdXN0
b20uY3BwCShyZXZpc2lvbiA5NzQ5NykKKysrIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pT
V2ViR0xSZW5kZXJpbmdDb250ZXh0Q3VzdG9tLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjksNDIg
KzI5LDQ0IEBACiAKICNpbmNsdWRlICJKU1dlYkdMUmVuZGVyaW5nQ29udGV4dC5oIgogCi0jaW5j
bHVkZSAiV2ViS2l0TG9zZUNvbnRleHQuaCIKICNpbmNsdWRlICJFeGNlcHRpb25Db2RlLmgiCisj
aW5jbHVkZSAiRmxvYXQzMkFycmF5LmgiCiAjaW5jbHVkZSAiSFRNTENhbnZhc0VsZW1lbnQuaCIK
ICNpbmNsdWRlICJIVE1MSW1hZ2VFbGVtZW50LmgiCi0jaW5jbHVkZSAiSlNXZWJLaXRMb3NlQ29u
dGV4dC5oIgorI2luY2x1ZGUgIkludDMyQXJyYXkuaCIKKyNpbmNsdWRlICJKU0Zsb2F0MzJBcnJh
eS5oIgogI2luY2x1ZGUgIkpTSFRNTENhbnZhc0VsZW1lbnQuaCIKICNpbmNsdWRlICJKU0hUTUxJ
bWFnZUVsZW1lbnQuaCIKICNpbmNsdWRlICJKU0ltYWdlRGF0YS5oIgorI2luY2x1ZGUgIkpTSW50
MzJBcnJheS5oIgogI2luY2x1ZGUgIkpTT0VTU3RhbmRhcmREZXJpdmF0aXZlcy5oIgogI2luY2x1
ZGUgIkpTT0VTVGV4dHVyZUZsb2F0LmgiCiAjaW5jbHVkZSAiSlNPRVNWZXJ0ZXhBcnJheU9iamVj
dC5oIgotI2luY2x1ZGUgIkpTV2ViR0xWZXJ0ZXhBcnJheU9iamVjdE9FUy5oIgorI2luY2x1ZGUg
IkpTVWludDhBcnJheS5oIgogI2luY2x1ZGUgIkpTV2ViR0xCdWZmZXIuaCIKLSNpbmNsdWRlICJK
U0Zsb2F0MzJBcnJheS5oIgogI2luY2x1ZGUgIkpTV2ViR0xGcmFtZWJ1ZmZlci5oIgotI2luY2x1
ZGUgIkpTSW50MzJBcnJheS5oIgogI2luY2x1ZGUgIkpTV2ViR0xQcm9ncmFtLmgiCiAjaW5jbHVk
ZSAiSlNXZWJHTFJlbmRlcmJ1ZmZlci5oIgogI2luY2x1ZGUgIkpTV2ViR0xTaGFkZXIuaCIKICNp
bmNsdWRlICJKU1dlYkdMVGV4dHVyZS5oIgogI2luY2x1ZGUgIkpTV2ViR0xVbmlmb3JtTG9jYXRp
b24uaCIKLSNpbmNsdWRlICJKU1VpbnQ4QXJyYXkuaCIKKyNpbmNsdWRlICJKU1dlYkdMVmVydGV4
QXJyYXlPYmplY3RPRVMuaCIKICNpbmNsdWRlICJKU1dlYktpdENTU01hdHJpeC5oIgorI2luY2x1
ZGUgIkpTV2ViS2l0TG9zZUNvbnRleHQuaCIKICNpbmNsdWRlICJOb3RJbXBsZW1lbnRlZC5oIgog
I2luY2x1ZGUgIk9FU1N0YW5kYXJkRGVyaXZhdGl2ZXMuaCIKICNpbmNsdWRlICJPRVNUZXh0dXJl
RmxvYXQuaCIKICNpbmNsdWRlICJPRVNWZXJ0ZXhBcnJheU9iamVjdC5oIgotI2luY2x1ZGUgIldl
YkdMVmVydGV4QXJyYXlPYmplY3RPRVMuaCIKICNpbmNsdWRlICJXZWJHTEJ1ZmZlci5oIgotI2lu
Y2x1ZGUgIkZsb2F0MzJBcnJheS5oIgorI2luY2x1ZGUgIldlYkdMRGVidWdSZW5kZXJlckluZm8u
aCIKKyNpbmNsdWRlICJXZWJHTERlYnVnU2hhZGVycy5oIgogI2luY2x1ZGUgIldlYkdMRXh0ZW5z
aW9uLmgiCiAjaW5jbHVkZSAiV2ViR0xGcmFtZWJ1ZmZlci5oIgogI2luY2x1ZGUgIldlYkdMR2V0
SW5mby5oIgotI2luY2x1ZGUgIkludDMyQXJyYXkuaCIKICNpbmNsdWRlICJXZWJHTFByb2dyYW0u
aCIKICNpbmNsdWRlICJXZWJHTFJlbmRlcmluZ0NvbnRleHQuaCIKKyNpbmNsdWRlICJXZWJHTFZl
cnRleEFycmF5T2JqZWN0T0VTLmgiCisjaW5jbHVkZSAiV2ViS2l0TG9zZUNvbnRleHQuaCIKICNp
bmNsdWRlIDxydW50aW1lL0Vycm9yLmg+CiAjaW5jbHVkZSA8cnVudGltZS9KU0FycmF5Lmg+CiAj
aW5jbHVkZSA8d3RmL0Zhc3RNYWxsb2MuaD4KQEAgLTE4Nyw2ICsxODksMTAgQEAgc3RhdGljIEpT
VmFsdWUgdG9KUyhFeGVjU3RhdGUqIGV4ZWMsIEpTRAogICAgICAgICByZXR1cm4gdG9KUyhleGVj
LCBnbG9iYWxPYmplY3QsIHN0YXRpY19jYXN0PE9FU1RleHR1cmVGbG9hdCo+KGV4dGVuc2lvbikp
OwogICAgIGNhc2UgV2ViR0xFeHRlbnNpb246Ok9FU1ZlcnRleEFycmF5T2JqZWN0TmFtZToKICAg
ICAgICAgcmV0dXJuIHRvSlMoZXhlYywgZ2xvYmFsT2JqZWN0LCBzdGF0aWNfY2FzdDxPRVNWZXJ0
ZXhBcnJheU9iamVjdCo+KGV4dGVuc2lvbikpOworICAgIGNhc2UgV2ViR0xFeHRlbnNpb246Oldl
YkdMRGVidWdSZW5kZXJlckluZm9OYW1lOgorICAgICAgICByZXR1cm4gdG9KUyhleGVjLCBnbG9i
YWxPYmplY3QsIHN0YXRpY19jYXN0PFdlYkdMRGVidWdSZW5kZXJlckluZm8qPihleHRlbnNpb24p
KTsKKyAgICBjYXNlIFdlYkdMRXh0ZW5zaW9uOjpXZWJHTERlYnVnU2hhZGVyc05hbWU6CisgICAg
ICAgIHJldHVybiB0b0pTKGV4ZWMsIGdsb2JhbE9iamVjdCwgc3RhdGljX2Nhc3Q8V2ViR0xEZWJ1
Z1NoYWRlcnMqPihleHRlbnNpb24pKTsKICAgICB9CiAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7
CiAgICAgcmV0dXJuIGpzTnVsbCgpOwpJbmRleDogU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvdjgv
Y3VzdG9tL1Y4V2ViR0xSZW5kZXJpbmdDb250ZXh0Q3VzdG9tLmNwcAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0b20vVjhXZWJHTFJlbmRlcmluZ0NvbnRleHRD
dXN0b20uY3BwCShyZXZpc2lvbiA5NzQ5NykKKysrIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4
L2N1c3RvbS9WOFdlYkdMUmVuZGVyaW5nQ29udGV4dEN1c3RvbS5jcHAJKHdvcmtpbmcgY29weSkK
QEAgLTU2LDYgKzU2LDggQEAKICNpbmNsdWRlICJWOFVpbnQzMkFycmF5LmgiCiAjaW5jbHVkZSAi
VjhVaW50OEFycmF5LmgiCiAjaW5jbHVkZSAiVjhXZWJHTEJ1ZmZlci5oIgorI2luY2x1ZGUgIlY4
V2ViR0xEZWJ1Z1JlbmRlcmVySW5mby5oIgorI2luY2x1ZGUgIlY4V2ViR0xEZWJ1Z1NoYWRlcnMu
aCIKICNpbmNsdWRlICJWOFdlYkdMRnJhbWVidWZmZXIuaCIKICNpbmNsdWRlICJWOFdlYkdMUHJv
Z3JhbS5oIgogI2luY2x1ZGUgIlY4V2ViR0xSZW5kZXJidWZmZXIuaCIKQEAgLTE4Miw2ICsxODQs
MTQgQEAgc3RhdGljIHY4OjpIYW5kbGU8djg6OlZhbHVlPiB0b1Y4T2JqZWN0KAogICAgICAgICBl
eHRlbnNpb25PYmplY3QgPSB0b1Y4KHN0YXRpY19jYXN0PE9FU1ZlcnRleEFycmF5T2JqZWN0Kj4o
ZXh0ZW5zaW9uKSk7CiAgICAgICAgIHJlZmVyZW5jZU5hbWUgPSAib2VzVmVydGV4QXJyYXlPYmpl
Y3ROYW1lIjsKICAgICAgICAgYnJlYWs7CisgICAgY2FzZSBXZWJHTEV4dGVuc2lvbjo6V2ViR0xE
ZWJ1Z1JlbmRlcmVySW5mb05hbWU6CisgICAgICAgIGV4dGVuc2lvbk9iamVjdCA9IHRvVjgoc3Rh
dGljX2Nhc3Q8V2ViR0xEZWJ1Z1JlbmRlcmVySW5mbyo+KGV4dGVuc2lvbikpOworICAgICAgICBy
ZWZlcmVuY2VOYW1lID0gIndlYkdMRGVidWdSZW5kZXJlckluZm9OYW1lIjsKKyAgICAgICAgYnJl
YWs7CisgICAgY2FzZSBXZWJHTEV4dGVuc2lvbjo6V2ViR0xEZWJ1Z1NoYWRlcnNOYW1lOgorICAg
ICAgICBleHRlbnNpb25PYmplY3QgPSB0b1Y4KHN0YXRpY19jYXN0PFdlYkdMRGVidWdTaGFkZXJz
Kj4oZXh0ZW5zaW9uKSk7CisgICAgICAgIHJlZmVyZW5jZU5hbWUgPSAid2ViR0xEZWJ1Z1NoYWRl
cnNOYW1lIjsKKyAgICAgICAgYnJlYWs7CiAgICAgfQogICAgIEFTU0VSVCghZXh0ZW5zaW9uT2Jq
ZWN0LklzRW1wdHkoKSk7CiAgICAgVjhET01XcmFwcGVyOjpzZXROYW1lZEhpZGRlblJlZmVyZW5j
ZShjb250ZXh0T2JqZWN0LCByZWZlcmVuY2VOYW1lLCBleHRlbnNpb25PYmplY3QpOwpJbmRleDog
U291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xEZWJ1Z1JlbmRlcmVySW5mby5jcHAKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xEZWJ1Z1JlbmRlcmVy
SW5mby5jcHAJKHJldmlzaW9uIDApCisrKyBTb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJH
TERlYnVnUmVuZGVyZXJJbmZvLmNwcAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSw1NyBAQAorLyoK
KyAqIENvcHlyaWdodCAoQykgMjAxMSBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgor
ICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICoKKyAqIDEuICBS
ZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0g
bXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAq
ICAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0
aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQ
TEUgQU5EIElUUyBDT05UUklCVVRPUlMgIkFTIElTIiBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBM
SUVECisgKiBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSIFBVUlBPU0UgQVJFCisgKiBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBB
UFBMRSBPUiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZCisgKiBESVJFQ1QsIElO
RElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwg
REFNQUdFUworICogKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBP
RiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOworICogTE9TUyBPRiBVU0UsIERBVEEsIE9S
IFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5ECisg
KiBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNU
IExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lT
RSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GCisgKiBUSElTIFNPRlRXQVJF
LCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICov
CisKKyNpbmNsdWRlICJjb25maWcuaCIKKworI2lmIEVOQUJMRShXRUJHTCkKKworI2luY2x1ZGUg
IldlYkdMRGVidWdSZW5kZXJlckluZm8uaCIKKworI2luY2x1ZGUgIldlYkdMUmVuZGVyaW5nQ29u
dGV4dC5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK1dlYkdMRGVidWdSZW5kZXJlckluZm86
OldlYkdMRGVidWdSZW5kZXJlckluZm8oV2ViR0xSZW5kZXJpbmdDb250ZXh0KiBjb250ZXh0KQor
ICAgIDogV2ViR0xFeHRlbnNpb24oY29udGV4dCkKK3sKK30KKworV2ViR0xEZWJ1Z1JlbmRlcmVy
SW5mbzo6fldlYkdMRGVidWdSZW5kZXJlckluZm8oKQoreworfQorCitXZWJHTEV4dGVuc2lvbjo6
RXh0ZW5zaW9uTmFtZSBXZWJHTERlYnVnUmVuZGVyZXJJbmZvOjpnZXROYW1lKCkgY29uc3QKK3sK
KyAgICByZXR1cm4gV2ViR0xEZWJ1Z1JlbmRlcmVySW5mb05hbWU7Cit9CisKK1Bhc3NPd25QdHI8
V2ViR0xEZWJ1Z1JlbmRlcmVySW5mbz4gV2ViR0xEZWJ1Z1JlbmRlcmVySW5mbzo6Y3JlYXRlKFdl
YkdMUmVuZGVyaW5nQ29udGV4dCogY29udGV4dCkKK3sKKyAgICByZXR1cm4gYWRvcHRQdHIobmV3
IFdlYkdMRGVidWdSZW5kZXJlckluZm8oY29udGV4dCkpOworfQorCit9IC8vIG5hbWVzcGFjZSBX
ZWJDb3JlCisKKyNlbmRpZiAvLyBFTkFCTEUoV0VCR0wpCgpQcm9wZXJ0eSBjaGFuZ2VzIG9uOiBT
b3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTERlYnVnUmVuZGVyZXJJbmZvLmNwcApfX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fCkFkZGVkOiBzdm46ZW9sLXN0eWxlCiAgICsgTEYKCkluZGV4OiBTb3VyY2UvV2ViQ29y
ZS9odG1sL2NhbnZhcy9XZWJHTERlYnVnUmVuZGVyZXJJbmZvLmgKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xEZWJ1Z1JlbmRlcmVySW5mby5oCShyZXZpc2lv
biAwKQorKysgU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xEZWJ1Z1JlbmRlcmVySW5m
by5oCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDUyIEBACisvKgorICogQ29weXJpZ2h0IChDKSAy
MDExIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Cisg
KiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKgorICogMS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBz
b3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgor
ICogMi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgIGRvY3VtZW50YXRpb24g
YW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisg
KgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBBTkQgSVRTIENPTlRSSUJV
VE9SUyAiQVMgSVMiIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQKKyAqIFdBUlJBTlRJRVMg
T0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBB
UkUKKyAqIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIE9SIElUUyBDT05UUklC
VVRPUlMgQkUgTElBQkxFIEZPUiBBTlkKKyAqIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUws
IFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTCisgKiAoSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMg
T1IgU0VSVklDRVM7CisgKiBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5F
U1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQKKyAqIE9OIEFOWSBUSEVPUlkgT0Yg
TElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JU
CisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBX
QVkgT1VUIE9GIFRIRSBVU0UgT0YKKyAqIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBP
RiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBXZWJHTERl
YnVnUmVuZGVyZXJJbmZvX2gKKyNkZWZpbmUgV2ViR0xEZWJ1Z1JlbmRlcmVySW5mb19oCisKKyNp
bmNsdWRlICJXZWJHTEV4dGVuc2lvbi5oIgorI2luY2x1ZGUgPHd0Zi9QYXNzT3duUHRyLmg+CisK
K25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgV2ViR0xEZWJ1Z1JlbmRlcmVySW5mbyA6IHB1
YmxpYyBXZWJHTEV4dGVuc2lvbiB7CitwdWJsaWM6CisgICAgZW51bSBFbnVtVHlwZSB7CisgICAg
ICAgIFVOTUFTS0VEX1ZFTkRPUl9XRUJHTCA9IDB4OTI0NSwKKyAgICAgICAgVU5NQVNLRURfUkVO
REVSRVJfV0VCR0wgPSAweDkyNDYKKyAgICB9OworCisgICAgc3RhdGljIFBhc3NPd25QdHI8V2Vi
R0xEZWJ1Z1JlbmRlcmVySW5mbz4gY3JlYXRlKFdlYkdMUmVuZGVyaW5nQ29udGV4dCopOworCisg
ICAgdmlydHVhbCB+V2ViR0xEZWJ1Z1JlbmRlcmVySW5mbygpOworICAgIHZpcnR1YWwgRXh0ZW5z
aW9uTmFtZSBnZXROYW1lKCkgY29uc3Q7CisKK3ByaXZhdGU6CisgICAgV2ViR0xEZWJ1Z1JlbmRl
cmVySW5mbyhXZWJHTFJlbmRlcmluZ0NvbnRleHQqKTsKK307CisKK30gLy8gbmFtZXNwYWNlIFdl
YkNvcmUKKworI2VuZGlmIC8vIFdlYkdMRGVidWdSZW5kZXJlckluZm9faAoKUHJvcGVydHkgY2hh
bmdlcyBvbjogU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xEZWJ1Z1JlbmRlcmVySW5m
by5oCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX18KQWRkZWQ6IHN2bjplb2wtc3R5bGUKICAgKyBMRgoKSW5kZXg6IFNvdXJj
ZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMRGVidWdSZW5kZXJlckluZm8uaWRsCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMRGVidWdSZW5kZXJlckluZm8u
aWRsCShyZXZpc2lvbiAwKQorKysgU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xEZWJ1
Z1JlbmRlcmVySW5mby5pZGwJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsMzYgQEAKKy8qCisgKiBD
b3B5cmlnaHQgKEMpIDIwMTEgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisg
KiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqCisgKiAxLiAgUmVkaXN0
cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIuCisgKiAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3Qg
cmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICAg
ZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRp
c3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIEFO
RCBJVFMgQ09OVFJJQlVUT1JTICJBUyBJUyIgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVE
IFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAor
ICogV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElD
VUxBUiBQVVJQT1NFIEFSRQorICogRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUg
T1IgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWQorICogRElSRUNULCBJTkRJUkVD
VCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFH
RVMKKyAqIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VC
U1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsKKyAqIExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9G
SVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORAorICogT04g
QU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFC
SUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFS
SVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRgorICogVEhJUyBTT0ZUV0FSRSwgRVZF
TiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCitt
b2R1bGUgaHRtbCB7CisgICAgaW50ZXJmYWNlIFsKKyAgICAgICAgQ29uZGl0aW9uYWw9V0VCR0ws
CisgICAgICAgIEdlbmVyYXRlSXNSZWFjaGFibGU9SW1wbENvbnRleHQsCisgICAgICAgIE9taXRD
b25zdHJ1Y3RvciwKKyAgICAgICAgRG9udENoZWNrRW51bXMKKyAgICBdIFdlYkdMRGVidWdSZW5k
ZXJlckluZm8geworICAgICAgICBjb25zdCB1bnNpZ25lZCBpbnQgVU5NQVNLRURfVkVORE9SX1dF
QkdMID0gMHg5MjQ1OworICAgICAgICBjb25zdCB1bnNpZ25lZCBpbnQgVU5NQVNLRURfUkVOREVS
RVJfV0VCR0wgPSAweDkyNDY7CisgICAgfTsKK30KClByb3BlcnR5IGNoYW5nZXMgb246IFNvdXJj
ZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMRGVidWdSZW5kZXJlckluZm8uaWRsCl9fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X18KQWRkZWQ6IHN2bjplb2wtc3R5bGUKICAgKyBMRgoKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2h0
bWwvY2FudmFzL1dlYkdMRGVidWdTaGFkZXJzLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9odG1sL2NhbnZhcy9XZWJHTERlYnVnU2hhZGVycy5jcHAJKHJldmlzaW9uIDApCisrKyBT
b3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTERlYnVnU2hhZGVycy5jcHAJKHJldmlzaW9u
IDApCkBAIC0wLDAgKzEsNzEgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTEgR29vZ2xlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwor
ICogYXJlIG1ldDoKKyAqCisgKiAxLiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11
c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiAgUmVkaXN0
cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIg
bWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNP
RlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIEFORCBJVFMgQ09OVFJJQlVUT1JTICJBUyBJUyIg
QU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAorICogV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFC
SUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRQorICogRElTQ0xB
SU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgT1IgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFC
TEUgRk9SIEFOWQorICogRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhF
TVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMKKyAqIChJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsK
KyAqIExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJ
T04pIEhPV0VWRVIgQ0FVU0VEIEFORAorICogT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdI
RVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJ
TkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhF
IFVTRSBPRgorICogVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisKKyNpZiBF
TkFCTEUoV0VCR0wpCisKKyNpbmNsdWRlICJXZWJHTERlYnVnU2hhZGVycy5oIgorCisjaW5jbHVk
ZSAiRXh0ZW5zaW9uczNELmgiCisjaW5jbHVkZSAiV2ViR0xSZW5kZXJpbmdDb250ZXh0LmgiCisj
aW5jbHVkZSAiV2ViR0xTaGFkZXIuaCIKKworI2luY2x1ZGUgPHd0Zi9Pd25BcnJheVB0ci5oPgor
CituYW1lc3BhY2UgV2ViQ29yZSB7CisKK1dlYkdMRGVidWdTaGFkZXJzOjpXZWJHTERlYnVnU2hh
ZGVycyhXZWJHTFJlbmRlcmluZ0NvbnRleHQqIGNvbnRleHQpCisgICAgOiBXZWJHTEV4dGVuc2lv
bihjb250ZXh0KQoreworfQorCitXZWJHTERlYnVnU2hhZGVyczo6fldlYkdMRGVidWdTaGFkZXJz
KCkKK3sKK30KKworV2ViR0xFeHRlbnNpb246OkV4dGVuc2lvbk5hbWUgV2ViR0xEZWJ1Z1NoYWRl
cnM6OmdldE5hbWUoKSBjb25zdAoreworICAgIHJldHVybiBXZWJHTERlYnVnU2hhZGVyc05hbWU7
Cit9CisKK1Bhc3NPd25QdHI8V2ViR0xEZWJ1Z1NoYWRlcnM+IFdlYkdMRGVidWdTaGFkZXJzOjpj
cmVhdGUoV2ViR0xSZW5kZXJpbmdDb250ZXh0KiBjb250ZXh0KQoreworICAgIHJldHVybiBhZG9w
dFB0cihuZXcgV2ViR0xEZWJ1Z1NoYWRlcnMoY29udGV4dCkpOworfQorCitTdHJpbmcgV2ViR0xE
ZWJ1Z1NoYWRlcnM6OmdldFRyYW5zbGF0ZWRTaGFkZXJTb3VyY2UoV2ViR0xTaGFkZXIqIHNoYWRl
ciwgRXhjZXB0aW9uQ29kZSYgZWMpCit7CisgICAgVU5VU0VEX1BBUkFNKGVjKTsKKyAgICBpZiAo
bV9jb250ZXh0LT5pc0NvbnRleHRMb3N0KCkpCisgICAgICAgIHJldHVybiBTdHJpbmcoKTsKKyAg
ICBpZiAoIW1fY29udGV4dC0+dmFsaWRhdGVXZWJHTE9iamVjdChzaGFkZXIpKQorICAgICAgICBy
ZXR1cm4gIiI7CisgICAgcmV0dXJuIG1fY29udGV4dC0+Z3JhcGhpY3NDb250ZXh0M0QoKS0+Z2V0
RXh0ZW5zaW9ucygpLT5nZXRUcmFuc2xhdGVkU2hhZGVyU291cmNlQU5HTEUoc2hhZGVyLT5vYmpl
Y3QoKSk7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIEVOQUJMRShX
RUJHTCkKClByb3BlcnR5IGNoYW5nZXMgb246IFNvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dl
YkdMRGVidWdTaGFkZXJzLmNwcApfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCkFkZGVkOiBzdm46ZW9sLXN0eWxlCiAgICsg
TEYKCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTERlYnVnU2hhZGVycy5o
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMRGVidWdTaGFk
ZXJzLmgJKHJldmlzaW9uIDApCisrKyBTb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTERl
YnVnU2hhZGVycy5oCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDUyIEBACisvKgorICogQ29weXJp
Z2h0IChDKSAyMDExIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKgorICogMS4gIFJlZGlzdHJpYnV0
aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyLgorICogMi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJv
ZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgIGRvY3Vt
ZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmli
dXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBBTkQgSVRT
IENPTlRSSUJVVE9SUyAiQVMgSVMiIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQKKyAqIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIg
UFVSUE9TRSBBUkUKKyAqIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIE9SIElU
UyBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkKKyAqIERJUkVDVCwgSU5ESVJFQ1QsIElO
Q0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTCisg
KiAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRV
VEUgR09PRFMgT1IgU0VSVklDRVM7CisgKiBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsg
T1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQKKyAqIE9OIEFOWSBU
SEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZ
LCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5H
IElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YKKyAqIFRISVMgU09GVFdBUkUsIEVWRU4gSUYg
QURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRl
ZiBXZWJHTERlYnVnU2hhZGVyc19oCisjZGVmaW5lIFdlYkdMRGVidWdTaGFkZXJzX2gKKworI2lu
Y2x1ZGUgIkV4Y2VwdGlvbkNvZGUuaCIKKyNpbmNsdWRlICJXZWJHTEV4dGVuc2lvbi5oIgorI2lu
Y2x1ZGUgPHd0Zi9QYXNzT3duUHRyLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3Mg
V2ViR0xTaGFkZXI7CisKK2NsYXNzIFdlYkdMRGVidWdTaGFkZXJzIDogcHVibGljIFdlYkdMRXh0
ZW5zaW9uIHsKK3B1YmxpYzoKKyAgICBzdGF0aWMgUGFzc093blB0cjxXZWJHTERlYnVnU2hhZGVy
cz4gY3JlYXRlKFdlYkdMUmVuZGVyaW5nQ29udGV4dCopOworCisgICAgdmlydHVhbCB+V2ViR0xE
ZWJ1Z1NoYWRlcnMoKTsKKyAgICB2aXJ0dWFsIEV4dGVuc2lvbk5hbWUgZ2V0TmFtZSgpIGNvbnN0
OworCisgICAgU3RyaW5nIGdldFRyYW5zbGF0ZWRTaGFkZXJTb3VyY2UoV2ViR0xTaGFkZXIqLCBF
eGNlcHRpb25Db2RlJik7CisKK3ByaXZhdGU6CisgICAgV2ViR0xEZWJ1Z1NoYWRlcnMoV2ViR0xS
ZW5kZXJpbmdDb250ZXh0Kik7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRp
ZiAvLyBXZWJHTERlYnVnU2hhZGVyc19oCgpQcm9wZXJ0eSBjaGFuZ2VzIG9uOiBTb3VyY2UvV2Vi
Q29yZS9odG1sL2NhbnZhcy9XZWJHTERlYnVnU2hhZGVycy5oCl9fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KQWRkZWQ6IHN2
bjplb2wtc3R5bGUKICAgKyBMRgoKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dl
YkdMRGVidWdTaGFkZXJzLmlkbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9odG1sL2Nh
bnZhcy9XZWJHTERlYnVnU2hhZGVycy5pZGwJKHJldmlzaW9uIDApCisrKyBTb3VyY2UvV2ViQ29y
ZS9odG1sL2NhbnZhcy9XZWJHTERlYnVnU2hhZGVycy5pZGwJKHJldmlzaW9uIDApCkBAIC0wLDAg
KzEsMzQgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTEgR29vZ2xlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoK
KyAqCisgKiAxLiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiAgUmVkaXN0cmlidXRpb25zIGlu
IGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIgaW4gdGhlCisgKiAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHBy
b3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBS
T1ZJREVEIEJZIEFQUExFIEFORCBJVFMgQ09OVFJJQlVUT1JTICJBUyBJUyIgQU5EIEFOWQorICog
RVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLCBUSEUgSU1QTElFRAorICogV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJ
VE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRQorICogRElTQ0xBSU1FRC4gSU4gTk8g
RVZFTlQgU0hBTEwgQVBQTEUgT1IgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWQor
ICogRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBD
T05TRVFVRU5USUFMIERBTUFHRVMKKyAqIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywg
UFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsKKyAqIExPU1MgT0Yg
VVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIg
Q0FVU0VEIEFORAorICogT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09O
VFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5D
RSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRgorICog
VEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNI
IERBTUFHRS4KKyAqLworCittb2R1bGUgaHRtbCB7CisgICAgaW50ZXJmYWNlIFsKKyAgICAgICAg
Q29uZGl0aW9uYWw9V0VCR0wsCisgICAgICAgIEdlbmVyYXRlSXNSZWFjaGFibGU9SW1wbENvbnRl
eHQsCisgICAgICAgIE9taXRDb25zdHJ1Y3RvcgorICAgIF0gV2ViR0xEZWJ1Z1NoYWRlcnMgewor
ICAgICAgICBbU3RyaWN0VHlwZUNoZWNraW5nLCBDb252ZXJ0TnVsbFN0cmluZ1RvPU51bGxdIERP
TVN0cmluZyBnZXRUcmFuc2xhdGVkU2hhZGVyU291cmNlKGluIFdlYkdMU2hhZGVyIHNoYWRlcikg
cmFpc2VzKERPTUV4Y2VwdGlvbik7CisgICAgfTsKK30KClByb3BlcnR5IGNoYW5nZXMgb246IFNv
dXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMRGVidWdTaGFkZXJzLmlkbApfX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
CkFkZGVkOiBzdm46ZW9sLXN0eWxlCiAgICsgTEYKCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9odG1s
L2NhbnZhcy9XZWJHTEV4dGVuc2lvbi5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2h0
bWwvY2FudmFzL1dlYkdMRXh0ZW5zaW9uLmgJKHJldmlzaW9uIDk3NDk3KQorKysgU291cmNlL1dl
YkNvcmUvaHRtbC9jYW52YXMvV2ViR0xFeHRlbnNpb24uaAkod29ya2luZyBjb3B5KQpAQCAtMzgs
NiArMzgsOCBAQCBwdWJsaWM6CiAgICAgICAgIE9FU1RleHR1cmVGbG9hdE5hbWUsCiAgICAgICAg
IE9FU1N0YW5kYXJkRGVyaXZhdGl2ZXNOYW1lLAogICAgICAgICBPRVNWZXJ0ZXhBcnJheU9iamVj
dE5hbWUsCisgICAgICAgIFdlYkdMRGVidWdSZW5kZXJlckluZm9OYW1lLAorICAgICAgICBXZWJH
TERlYnVnU2hhZGVyc05hbWUsCiAgICAgfTsKIAogICAgIHZvaWQgcmVmKCkgeyBtX2NvbnRleHQt
PnJlZigpOyB9CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFJlbmRlcmlu
Z0NvbnRleHQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dl
YkdMUmVuZGVyaW5nQ29udGV4dC5jcHAJKHJldmlzaW9uIDk3NDk3KQorKysgU291cmNlL1dlYkNv
cmUvaHRtbC9jYW52YXMvV2ViR0xSZW5kZXJpbmdDb250ZXh0LmNwcAkod29ya2luZyBjb3B5KQpA
QCAtMzIsNyArMzIsNiBAQAogI2luY2x1ZGUgIkNhY2hlZEltYWdlLmgiCiAjaW5jbHVkZSAiQ2Fu
dmFzUGl4ZWxBcnJheS5oIgogI2luY2x1ZGUgIkNoZWNrZWRJbnQuaCIKLSNpbmNsdWRlICJXZWJL
aXRMb3NlQ29udGV4dC5oIgogI2luY2x1ZGUgIkNvbnNvbGUuaCIKICNpbmNsdWRlICJET01XaW5k
b3cuaCIKICNpbmNsdWRlICJFeHRlbnNpb25zM0QuaCIKQEAgLTU3LDEyICs1NiwxNSBAQAogI2lu
Y2x1ZGUgIldlYkdMQnVmZmVyLmgiCiAjaW5jbHVkZSAiV2ViR0xDb250ZXh0QXR0cmlidXRlcy5o
IgogI2luY2x1ZGUgIldlYkdMQ29udGV4dEV2ZW50LmgiCisjaW5jbHVkZSAiV2ViR0xEZWJ1Z1Jl
bmRlcmVySW5mby5oIgorI2luY2x1ZGUgIldlYkdMRGVidWdTaGFkZXJzLmgiCiAjaW5jbHVkZSAi
V2ViR0xGcmFtZWJ1ZmZlci5oIgogI2luY2x1ZGUgIldlYkdMUHJvZ3JhbS5oIgogI2luY2x1ZGUg
IldlYkdMUmVuZGVyYnVmZmVyLmgiCiAjaW5jbHVkZSAiV2ViR0xTaGFkZXIuaCIKICNpbmNsdWRl
ICJXZWJHTFRleHR1cmUuaCIKICNpbmNsdWRlICJXZWJHTFVuaWZvcm1Mb2NhdGlvbi5oIgorI2lu
Y2x1ZGUgIldlYktpdExvc2VDb250ZXh0LmgiCiAKICNpbmNsdWRlIDx3dGYvQnl0ZUFycmF5Lmg+
CiAjaW5jbHVkZSA8d3RmL093bkFycmF5UHRyLmg+CkBAIC00NzMsNiArNDc1LDEyIEBAIHZvaWQg
V2ViR0xSZW5kZXJpbmdDb250ZXh0OjpzZXR1cEZsYWdzKCkKICAgICB9CiB9CiAKK2Jvb2wgV2Vi
R0xSZW5kZXJpbmdDb250ZXh0OjphbGxvd1ByaXZpbGVnZWRFeHRlbnNpb25zKCkgY29uc3QKK3sK
KyAgICAvLyBGSVhNRTogaW1wbGVtZW50IHRoaXMgZnVuY3Rpb24uCisgICAgcmV0dXJuIHRydWU7
Cit9CisKIFdlYkdMUmVuZGVyaW5nQ29udGV4dDo6fldlYkdMUmVuZGVyaW5nQ29udGV4dCgpCiB7
CiAgICAgZGV0YWNoQW5kUmVtb3ZlQWxsT2JqZWN0cygpOwpAQCAtMTk5OSw2ICsyMDA3LDI4IEBA
IFdlYkdMRXh0ZW5zaW9uKiBXZWJHTFJlbmRlcmluZ0NvbnRleHQ6OmcKICAgICAgICAgICAgIG1f
d2Via2l0TG9zZUNvbnRleHQgPSBXZWJLaXRMb3NlQ29udGV4dDo6Y3JlYXRlKHRoaXMpOwogICAg
ICAgICByZXR1cm4gbV93ZWJraXRMb3NlQ29udGV4dC5nZXQoKTsKICAgICB9CisgICAgaWYgKGVx
dWFsSWdub3JpbmdDYXNlKG5hbWUsICJPRVNfc3RhbmRhcmRfZGVyaXZhdGl2ZXMiKQorICAgICAg
ICAmJiBtX2NvbnRleHQtPmdldEV4dGVuc2lvbnMoKS0+c3VwcG9ydHMoIkdMX09FU19zdGFuZGFy
ZF9kZXJpdmF0aXZlcyIpKSB7CisgICAgICAgIGlmICghbV9vZXNTdGFuZGFyZERlcml2YXRpdmVz
KSB7CisgICAgICAgICAgICBtX2NvbnRleHQtPmdldEV4dGVuc2lvbnMoKS0+ZW5zdXJlRW5hYmxl
ZCgiR0xfT0VTX3N0YW5kYXJkX2Rlcml2YXRpdmVzIik7CisgICAgICAgICAgICBtX29lc1N0YW5k
YXJkRGVyaXZhdGl2ZXMgPSBPRVNTdGFuZGFyZERlcml2YXRpdmVzOjpjcmVhdGUodGhpcyk7Cisg
ICAgICAgIH0KKyAgICAgICAgcmV0dXJuIG1fb2VzU3RhbmRhcmREZXJpdmF0aXZlcy5nZXQoKTsK
KyAgICB9CisKKyAgICBpZiAoYWxsb3dQcml2aWxlZ2VkRXh0ZW5zaW9ucygpKSB7CisgICAgICAg
IGlmIChlcXVhbElnbm9yaW5nQ2FzZShuYW1lLCAiV0VCR0xfZGVidWdfcmVuZGVyZXJfaW5mbyIp
KSB7CisgICAgICAgICAgICBpZiAoIW1fd2ViZ2xEZWJ1Z1JlbmRlcmVySW5mbykKKyAgICAgICAg
ICAgICAgICBtX3dlYmdsRGVidWdSZW5kZXJlckluZm8gPSBXZWJHTERlYnVnUmVuZGVyZXJJbmZv
OjpjcmVhdGUodGhpcyk7CisgICAgICAgICAgICByZXR1cm4gbV93ZWJnbERlYnVnUmVuZGVyZXJJ
bmZvLmdldCgpOworICAgICAgICB9CisgICAgICAgIGlmIChlcXVhbElnbm9yaW5nQ2FzZShuYW1l
LCAiV0VCR0xfZGVidWdfc2hhZGVycyIpCisgICAgICAgICAgICAmJiBtX2NvbnRleHQtPmdldEV4
dGVuc2lvbnMoKS0+c3VwcG9ydHMoIkdMX0FOR0xFX3RyYW5zbGF0ZWRfc2hhZGVyX3NvdXJjZSIp
KSB7CisgICAgICAgICAgICBpZiAoIW1fd2ViZ2xEZWJ1Z1NoYWRlcnMpCisgICAgICAgICAgICAg
ICAgbV93ZWJnbERlYnVnU2hhZGVycyA9IFdlYkdMRGVidWdTaGFkZXJzOjpjcmVhdGUodGhpcyk7
CisgICAgICAgICAgICByZXR1cm4gbV93ZWJnbERlYnVnU2hhZGVycy5nZXQoKTsKKyAgICAgICAg
fQorICAgIH0KIAogICAgIHJldHVybiAwOwogfQpAQCAtMjI0NSw2ICsyMjc1LDE2IEBAIFdlYkdM
R2V0SW5mbyBXZWJHTFJlbmRlcmluZ0NvbnRleHQ6OmdldFAKICAgICAgICAgICAgIHJldHVybiBn
ZXRVbnNpZ25lZEludFBhcmFtZXRlcihFeHRlbnNpb25zM0Q6OkZSQUdNRU5UX1NIQURFUl9ERVJJ
VkFUSVZFX0hJTlRfT0VTKTsKICAgICAgICAgbV9jb250ZXh0LT5zeW50aGVzaXplR0xFcnJvcihH
cmFwaGljc0NvbnRleHQzRDo6SU5WQUxJRF9FTlVNKTsKICAgICAgICAgcmV0dXJuIFdlYkdMR2V0
SW5mbygpOworICAgIGNhc2UgV2ViR0xEZWJ1Z1JlbmRlcmVySW5mbzo6VU5NQVNLRURfUkVOREVS
RVJfV0VCR0w6CisgICAgICAgIGlmIChtX3dlYmdsRGVidWdSZW5kZXJlckluZm8pCisgICAgICAg
ICAgICByZXR1cm4gV2ViR0xHZXRJbmZvKG1fY29udGV4dC0+Z2V0U3RyaW5nKEdyYXBoaWNzQ29u
dGV4dDNEOjpSRU5ERVJFUikpOworICAgICAgICBtX2NvbnRleHQtPnN5bnRoZXNpemVHTEVycm9y
KEdyYXBoaWNzQ29udGV4dDNEOjpJTlZBTElEX0VOVU0pOworICAgICAgICByZXR1cm4gV2ViR0xH
ZXRJbmZvKCk7CisgICAgY2FzZSBXZWJHTERlYnVnUmVuZGVyZXJJbmZvOjpVTk1BU0tFRF9WRU5E
T1JfV0VCR0w6CisgICAgICAgIGlmIChtX3dlYmdsRGVidWdSZW5kZXJlckluZm8pCisgICAgICAg
ICAgICByZXR1cm4gV2ViR0xHZXRJbmZvKG1fY29udGV4dC0+Z2V0U3RyaW5nKEdyYXBoaWNzQ29u
dGV4dDNEOjpWRU5ET1IpKTsKKyAgICAgICAgbV9jb250ZXh0LT5zeW50aGVzaXplR0xFcnJvcihH
cmFwaGljc0NvbnRleHQzRDo6SU5WQUxJRF9FTlVNKTsKKyAgICAgICAgcmV0dXJuIFdlYkdMR2V0
SW5mbygpOwogICAgIGNhc2UgRXh0ZW5zaW9uczNEOjpWRVJURVhfQVJSQVlfQklORElOR19PRVM6
IC8vIE9FU192ZXJ0ZXhfYXJyYXlfb2JqZWN0CiAgICAgICAgIGlmIChtX29lc1ZlcnRleEFycmF5
T2JqZWN0KSB7CiAgICAgICAgICAgICBpZiAoIW1fYm91bmRWZXJ0ZXhBcnJheU9iamVjdC0+aXNE
ZWZhdWx0T2JqZWN0KCkpCkBAIC0yNDE3LDYgKzI0NTcsMTMgQEAgVmVjdG9yPFN0cmluZz4gV2Vi
R0xSZW5kZXJpbmdDb250ZXh0OjpnZQogICAgIGlmIChtX2NvbnRleHQtPmdldEV4dGVuc2lvbnMo
KS0+c3VwcG9ydHMoIkdMX09FU192ZXJ0ZXhfYXJyYXlfb2JqZWN0IikpCiAgICAgICAgIHJlc3Vs
dC5hcHBlbmQoIk9FU192ZXJ0ZXhfYXJyYXlfb2JqZWN0Iik7CiAgICAgcmVzdWx0LmFwcGVuZCgi
V0VCS0lUX2xvc2VfY29udGV4dCIpOworCisgICAgaWYgKGFsbG93UHJpdmlsZWdlZEV4dGVuc2lv
bnMoKSkgeworICAgICAgICBpZiAobV9jb250ZXh0LT5nZXRFeHRlbnNpb25zKCktPnN1cHBvcnRz
KCJHTF9BTkdMRV90cmFuc2xhdGVkX3NoYWRlcl9zb3VyY2UiKSkKKyAgICAgICAgICAgIHJlc3Vs
dC5hcHBlbmQoIldFQkdMX2RlYnVnX3NoYWRlcnMiKTsKKyAgICAgICAgcmVzdWx0LmFwcGVuZCgi
V0VCR0xfZGVidWdfcmVuZGVyZXJfaW5mbyIpOworICAgIH0KKwogICAgIHJldHVybiByZXN1bHQ7
CiB9CiAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMUmVuZGVyaW5nQ29u
dGV4dC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMUmVu
ZGVyaW5nQ29udGV4dC5oCShyZXZpc2lvbiA5NzQ5NykKKysrIFNvdXJjZS9XZWJDb3JlL2h0bWwv
Y2FudmFzL1dlYkdMUmVuZGVyaW5nQ29udGV4dC5oCSh3b3JraW5nIGNvcHkpCkBAIC00MCw5ICs0
MCwxOSBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKK2NsYXNzIEhUTUxJbWFnZUVsZW1lbnQ7
CitjbGFzcyBIVE1MVmlkZW9FbGVtZW50OworY2xhc3MgSW1hZ2VCdWZmZXI7CitjbGFzcyBJbWFn
ZURhdGE7CitjbGFzcyBJbnRTaXplOworY2xhc3MgT0VTU3RhbmRhcmREZXJpdmF0aXZlczsKK2Ns
YXNzIE9FU1RleHR1cmVGbG9hdDsKK2NsYXNzIE9FU1ZlcnRleEFycmF5T2JqZWN0OwogY2xhc3Mg
V2ViR0xBY3RpdmVJbmZvOwogY2xhc3MgV2ViR0xCdWZmZXI7CiBjbGFzcyBXZWJHTENvbnRleHRB
dHRyaWJ1dGVzOworY2xhc3MgV2ViR0xEZWJ1Z1JlbmRlcmVySW5mbzsKK2NsYXNzIFdlYkdMRGVi
dWdTaGFkZXJzOwogY2xhc3MgV2ViR0xFeHRlbnNpb247CiBjbGFzcyBXZWJHTEZyYW1lYnVmZmVy
OwogY2xhc3MgV2ViR0xPYmplY3Q7CkBAIC01MSwxNiArNjEsOCBAQCBjbGFzcyBXZWJHTFJlbmRl
cmJ1ZmZlcjsKIGNsYXNzIFdlYkdMU2hhZGVyOwogY2xhc3MgV2ViR0xUZXh0dXJlOwogY2xhc3Mg
V2ViR0xVbmlmb3JtTG9jYXRpb247Ci1jbGFzcyBXZWJLaXRMb3NlQ29udGV4dDsKLWNsYXNzIEhU
TUxJbWFnZUVsZW1lbnQ7Ci1jbGFzcyBIVE1MVmlkZW9FbGVtZW50OwotY2xhc3MgSW1hZ2VCdWZm
ZXI7Ci1jbGFzcyBJbWFnZURhdGE7Ci1jbGFzcyBJbnRTaXplOwotY2xhc3MgT0VTU3RhbmRhcmRE
ZXJpdmF0aXZlczsKLWNsYXNzIE9FU1RleHR1cmVGbG9hdDsKLWNsYXNzIE9FU1ZlcnRleEFycmF5
T2JqZWN0OwogY2xhc3MgV2ViR0xWZXJ0ZXhBcnJheU9iamVjdE9FUzsKK2NsYXNzIFdlYktpdExv
c2VDb250ZXh0OwogCiBjbGFzcyBXZWJHTFJlbmRlcmluZ0NvbnRleHQgOiBwdWJsaWMgQ2FudmFz
UmVuZGVyaW5nQ29udGV4dCB7CiBwdWJsaWM6CkBAIC0zMDYsNiArMzA4LDcgQEAgcHVibGljOgog
ICBwcml2YXRlOgogICAgIGZyaWVuZCBjbGFzcyBXZWJHTE9iamVjdDsKICAgICBmcmllbmQgY2xh
c3MgT0VTVmVydGV4QXJyYXlPYmplY3Q7CisgICAgZnJpZW5kIGNsYXNzIFdlYkdMRGVidWdTaGFk
ZXJzOwogCiAgICAgV2ViR0xSZW5kZXJpbmdDb250ZXh0KEhUTUxDYW52YXNFbGVtZW50KiwgUGFz
c1JlZlB0cjxHcmFwaGljc0NvbnRleHQzRD4sIEdyYXBoaWNzQ29udGV4dDNEOjpBdHRyaWJ1dGVz
KTsKICAgICB2b2lkIGluaXRpYWxpemVOZXdDb250ZXh0KCk7CkBAIC00NzQsNiArNDc3LDggQEAg
cHVibGljOgogICAgIE93blB0cjxPRVNTdGFuZGFyZERlcml2YXRpdmVzPiBtX29lc1N0YW5kYXJk
RGVyaXZhdGl2ZXM7CiAgICAgT3duUHRyPE9FU1ZlcnRleEFycmF5T2JqZWN0PiBtX29lc1ZlcnRl
eEFycmF5T2JqZWN0OwogICAgIE93blB0cjxXZWJLaXRMb3NlQ29udGV4dD4gbV93ZWJraXRMb3Nl
Q29udGV4dDsKKyAgICBPd25QdHI8V2ViR0xEZWJ1Z1JlbmRlcmVySW5mbz4gbV93ZWJnbERlYnVn
UmVuZGVyZXJJbmZvOworICAgIE93blB0cjxXZWJHTERlYnVnU2hhZGVycz4gbV93ZWJnbERlYnVn
U2hhZGVyczsKIAogICAgIC8vIEhlbHBlcnMgZm9yIGdldFBhcmFtZXRlciBhbmQgb3RoZXJzCiAg
ICAgV2ViR0xHZXRJbmZvIGdldEJvb2xlYW5QYXJhbWV0ZXIoR0MzRGVudW0pOwpAQCAtNjIyLDYg
KzYyNyw5IEBAIHB1YmxpYzoKICAgICAvLyBIZWxwZXIgZm9yIHJlc3RvcmF0aW9uIGFmdGVyIGNv
bnRleHQgbG9zdC4KICAgICB2b2lkIG1heWJlUmVzdG9yZUNvbnRleHQoTG9zdENvbnRleHRNb2Rl
KTsKIAorICAgIC8vIERldGVybWluZSBpZiB3ZSBhcmUgcnVubmluZyB0aGUgcHJpdmlsZWdlZCBj
b2RlIGluIHRoZSBicm93c2VyLgorICAgIGJvb2wgYWxsb3dQcml2aWxlZ2VkRXh0ZW5zaW9ucygp
IGNvbnN0OworCiAgICAgZnJpZW5kIGNsYXNzIFdlYkdMU3RhdGVSZXN0b3JlcjsKIH07CiAKSW5k
ZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0V4dGVuc2lvbnMzRC5oCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0V4dGVuc2lvbnMzRC5o
CShyZXZpc2lvbiA5NzQ5NykKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0V4
dGVuc2lvbnMzRC5oCSh3b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHly
aWdodCAoQykgMjAxMCBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJp
Z2h0IChDKSAyMDExIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTU2LDYgKzU2LDcgQEAgcHVibGljOgogICAgIC8vICAg
R0xfT0VTX3N0YW5kYXJkX2Rlcml2YXRpdmVzCiAgICAgLy8gICBHTF9PRVNfcmdiOF9yZ2JhOAog
ICAgIC8vICAgR0xfT0VTX3ZlcnRleF9hcnJheV9vYmplY3QKKyAgICAvLyAgIEdMX0FOR0xFX3Ry
YW5zbGF0ZWRfc2hhZGVyX3NvdXJjZQogCiAgICAgLy8gVGFrZXMgZnVsbCBuYW1lIG9mIGV4dGVu
c2lvbjsgZm9yIGV4YW1wbGUsCiAgICAgLy8gIkdMX0VYVF90ZXh0dXJlX2Zvcm1hdF9CR1JBODg4
OCIuCkBAIC0xMDMsNiArMTA0LDkgQEAgcHVibGljOgogICAgICAgICAKICAgICAgICAgLy8gR0xf
T0VTX3ZlcnRleF9hcnJheV9vYmplY3QgbmFtZXMKICAgICAgICAgVkVSVEVYX0FSUkFZX0JJTkRJ
TkdfT0VTID0gMHg4NUI1LAorCisgICAgICAgIC8vIEdMX0FOR0xFX3RyYW5zbGF0ZWRfc2hhZGVy
X3NvdXJjZQorICAgICAgICBUUkFOU0xBVEVEX1NIQURFUl9TT1VSQ0VfTEVOR1RIX0FOR0xFID0g
MHg5M0EwLAogICAgIH07CiAKICAgICAvLyBHTF9BUkJfcm9idXN0bmVzcwpAQCAtMTI1LDYgKzEy
OSw5IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgZGVsZXRlVmVydGV4QXJyYXlPRVMoUGxh
dGZvcm0zRE9iamVjdCkgPSAwOwogICAgIHZpcnR1YWwgR0MzRGJvb2xlYW4gaXNWZXJ0ZXhBcnJh
eU9FUyhQbGF0Zm9ybTNET2JqZWN0KSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIGJpbmRWZXJ0ZXhB
cnJheU9FUyhQbGF0Zm9ybTNET2JqZWN0KSA9IDA7CisKKyAgICAvLyBHTF9BTkdMRV90cmFuc2xh
dGVkX3NoYWRlcl9zb3VyY2UKKyAgICB2aXJ0dWFsIFN0cmluZyBnZXRUcmFuc2xhdGVkU2hhZGVy
U291cmNlQU5HTEUoUGxhdGZvcm0zRE9iamVjdCkgPSAwOwogfTsKIAogfSAvLyBuYW1lc3BhY2Ug
V2ViQ29yZQpJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NU
eXBlczNELmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
R3JhcGhpY3NUeXBlczNELmgJKHJldmlzaW9uIDk3NDk3KQorKysgU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NUeXBlczNELmgJKHdvcmtpbmcgY29weSkKQEAgLTQ0LDYg
KzQ0LDcgQEAgdHlwZWRlZiBmbG9hdCBHQzNEZmxvYXQ7CiB0eXBlZGVmIGZsb2F0IEdDM0RjbGFt
cGY7CiB0eXBlZGVmIHNpZ25lZCBsb25nIGludCBHQzNEaW50cHRyOwogdHlwZWRlZiBzaWduZWQg
bG9uZyBpbnQgR0MzRHNpemVpcHRyOwordHlwZWRlZiBjaGFyIEdDM0RjaGFyOwogCiB0eXBlZGVm
IEdDM0R1aW50IFBsYXRmb3JtM0RPYmplY3Q7CiAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2Nocm9taXVtL0V4dGVuc2lvbnMzRENocm9taXVtLmgKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vRXh0ZW5zaW9uczNE
Q2hyb21pdW0uaAkocmV2aXNpb24gOTc0OTcpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9jaHJvbWl1bS9FeHRlbnNpb25zM0RDaHJvbWl1bS5oCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMCBHb29nbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDExIEdvb2dsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTU2LDYg
KzU2LDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBkZWxldGVWZXJ0ZXhBcnJheU9FUyhQ
bGF0Zm9ybTNET2JqZWN0KTsKICAgICB2aXJ0dWFsIEdDM0Rib29sZWFuIGlzVmVydGV4QXJyYXlP
RVMoUGxhdGZvcm0zRE9iamVjdCk7CiAgICAgdmlydHVhbCB2b2lkIGJpbmRWZXJ0ZXhBcnJheU9F
UyhQbGF0Zm9ybTNET2JqZWN0KTsKKyAgICB2aXJ0dWFsIFN0cmluZyBnZXRUcmFuc2xhdGVkU2hh
ZGVyU291cmNlQU5HTEUoUGxhdGZvcm0zRE9iamVjdCk7CiAKICAgICBlbnVtIHsKICAgICAgICAg
Ly8gR0xfQ0hST01JVU1fbWFwX3N1YiAoZW51bXMgaW5oZXJpdGVkIGZyb20gR0xfQVJCX3ZlcnRl
eF9idWZmZXJfb2JqZWN0KQpJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
b3BlbmdsL0V4dGVuc2lvbnMzRE9wZW5HTC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0V4dGVuc2lvbnMzRE9wZW5HTC5jcHAJKHJldmlz
aW9uIDk3NDk3KQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0V4
dGVuc2lvbnMzRE9wZW5HTC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEsNSArMSw1IEBACiAvKgot
ICogQ29weXJpZ2h0IChDKSAyMDEwIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisg
KiBDb3B5cmlnaHQgKEMpIDIwMTEgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAq
CiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMTkzLDYgKzE5MywxMyBAQCB2b2lkIEV4
dGVuc2lvbnMzRE9wZW5HTDo6YmluZFZlcnRleEFycmF5CiAjZW5kaWYKIH0KIAorU3RyaW5nIEV4
dGVuc2lvbnMzRE9wZW5HTDo6Z2V0VHJhbnNsYXRlZFNoYWRlclNvdXJjZUFOR0xFKFBsYXRmb3Jt
M0RPYmplY3Qgc2hhZGVyKQoreworICAgIFVOVVNFRF9QQVJBTShzaGFkZXIpOworICAgIHJldHVy
biAiIjsKKyAgICAvLyBGSVhNRTogaW1wbGVtZW50IHRoaXMgZnVuY3Rpb24gYW5kIGFkZCBHTF9B
TkdMRV90cmFuc2xhdGVkX3NoYWRlcl9zb3VyY2UgaW4gc3VwcG9ydHMoKS4KK30KKwogfSAvLyBu
YW1lc3BhY2UgV2ViQ29yZQogCiAjZW5kaWYgLy8gRU5BQkxFKFdFQkdMKQpJbmRleDogU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0V4dGVuc2lvbnMzRE9wZW5HTC5oCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL29wZW5nbC9FeHRl
bnNpb25zM0RPcGVuR0wuaAkocmV2aXNpb24gOTc0OTcpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9vcGVuZ2wvRXh0ZW5zaW9uczNET3BlbkdMLmgJKHdvcmtpbmcgY29weSkK
QEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDEwIEdvb2dsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTEgR29vZ2xlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtNTAs
NiArNTAsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIGRlbGV0ZVZlcnRleEFycmF5T0VT
KFBsYXRmb3JtM0RPYmplY3QpOwogICAgIHZpcnR1YWwgR0MzRGJvb2xlYW4gaXNWZXJ0ZXhBcnJh
eU9FUyhQbGF0Zm9ybTNET2JqZWN0KTsKICAgICB2aXJ0dWFsIHZvaWQgYmluZFZlcnRleEFycmF5
T0VTKFBsYXRmb3JtM0RPYmplY3QpOworICAgIHZpcnR1YWwgU3RyaW5nIGdldFRyYW5zbGF0ZWRT
aGFkZXJTb3VyY2VBTkdMRShQbGF0Zm9ybTNET2JqZWN0KTsKIAogcHJpdmF0ZToKICAgICAvLyBU
aGlzIGNsYXNzIG9ubHkgbmVlZHMgdG8gYmUgaW5zdGFudGlhdGVkIGJ5IEdyYXBoaWNzQ29udGV4
dDNEIGltcGxlbWVudGF0aW9ucy4KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL3F0L0V4dGVuc2lvbnMzRFF0LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9xdC9FeHRlbnNpb25zM0RRdC5jcHAJKHJldmlzaW9uIDk3NDk3KQor
KysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvcXQvRXh0ZW5zaW9uczNEUXQuY3Bw
CSh3b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAx
MCBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDEx
IEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMKQEAgLTg4LDYgKzg4LDExIEBAIHZvaWQgRXh0ZW5zaW9uczNEUXQ6OmJpbmRWZXJ0
ZXhBcnJheU9FUygKIHsKIH0KIAorU3RyaW5nIEV4dGVuc2lvbnMzRFF0OjpnZXRUcmFuc2xhdGVk
U2hhZGVyU291cmNlQU5HTEUoUGxhdGZvcm0zRE9iamVjdCBzaGFkZXIpCit7CisgICAgcmV0dXJu
ICIiOworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKICNlbmRpZiAvLyBFTkFCTEUoV0VC
R0wpCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9xdC9FeHRlbnNpb25z
M0RRdC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3F0
L0V4dGVuc2lvbnMzRFF0LmgJKHJldmlzaW9uIDk3NDk3KQorKysgU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvcXQvRXh0ZW5zaW9uczNEUXQuaAkod29ya2luZyBjb3B5KQpAQCAtMSw1
ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTAgR29vZ2xlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxMSBHb29nbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC00NSw2ICs0NSw3
IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgZGVsZXRlVmVydGV4QXJyYXlPRVMoUGxhdGZv
cm0zRE9iamVjdCk7CiAgICAgdmlydHVhbCBHQzNEYm9vbGVhbiBpc1ZlcnRleEFycmF5T0VTKFBs
YXRmb3JtM0RPYmplY3QpOwogICAgIHZpcnR1YWwgdm9pZCBiaW5kVmVydGV4QXJyYXlPRVMoUGxh
dGZvcm0zRE9iamVjdCk7CisgICAgdmlydHVhbCBTdHJpbmcgZ2V0VHJhbnNsYXRlZFNoYWRlclNv
dXJjZUFOR0xFKFBsYXRmb3JtM0RPYmplY3QpOwogCiBwcml2YXRlOgogICAgIC8vIFRoaXMgY2xh
c3Mgb25seSBuZWVkcyB0byBiZSBpbnN0YW50aWF0ZWQgYnkgR3JhcGhpY3NDb250ZXh0M0QgaW1w
bGVtZW50YXRpb25zLgpJbmRleDogU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cJKHJldmlzaW9uIDk3
NDk3KQorKysgU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkK
QEAgLTEsMyArMSwxNyBAQAorMjAxMS0xMC0xNCAgWmhlbnlhbyBNbyAgPHptb0Bnb29nbGUuY29t
PgorCisgICAgICAgIEltcGxlbWVudCBXRUJHTF9kZWJ1Z19zaGFkZXJzIGFuZCBXRUJHTF9kZWJ1
Z19yZW5kZXJlcl9pbmZvIGV4dGVuc2lvbnMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTcwMDc3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgKiBwdWJsaWMvV2ViR3JhcGhpY3NDb250ZXh0M0QuaDogQWRkZWQg
c3VwcG9ydCBmb3IgZ2V0VHJhbnNsYXRlZFNoYWRlclNvdXJjZUFOR0xFLgorICAgICAgICAoV2Vi
S2l0OjpXZWJHcmFwaGljc0NvbnRleHQzRDo6Z2V0VHJhbnNsYXRlZFNoYWRlclNvdXJjZUFOR0xF
KToKKyAgICAgICAgKiBzcmMvRXh0ZW5zaW9uczNEQ2hyb21pdW0uY3BwOiBEaXR0by4KKyAgICAg
ICAgKFdlYkNvcmU6OkV4dGVuc2lvbnMzRENocm9taXVtOjpnZXRUcmFuc2xhdGVkU2hhZGVyU291
cmNlQU5HTEUpOgorICAgICAgICAqIHNyYy9HcmFwaGljc0NvbnRleHQzRENocm9taXVtLmNwcDog
RGl0dG8uCisgICAgICAgICogc3JjL0dyYXBoaWNzQ29udGV4dDNEUHJpdmF0ZS5oOiBEaXR0by4K
KwogMjAxMS0xMC0xNCAgRGFuaWVsIENoZW5nICA8ZGNoZW5nQGNocm9taXVtLm9yZz4KIAogICAg
ICAgICBDb250ZXh0LWF3YXJlIEhUTUwgcGFzdGUgZm9yIENocm9taXVtCkluZGV4OiBTb3VyY2Uv
V2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJHcmFwaGljc0NvbnRleHQzRC5oCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYkdyYXBoaWNzQ29udGV4dDNELmgJ
KHJldmlzaW9uIDk3NDk3KQorKysgU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViR3Jh
cGhpY3NDb250ZXh0M0QuaAkod29ya2luZyBjb3B5KQpAQCAtMzY1LDYgKzM2NSwxMCBAQCBwdWJs
aWM6CiAgICAgLy8gc3RhdGUgaXMgc3RpY2t5LCByYXRoZXIgdGhhbiByZXBvcnRlZCBvbmx5IG9u
Y2UuCiAgICAgdmlydHVhbCBXR0MzRGVudW0gZ2V0R3JhcGhpY3NSZXNldFN0YXR1c0FSQigpIHsg
cmV0dXJuIDA7IC8qIEdMX05PX0VSUk9SICovIH0KIAorICAgIC8vIEZJWE1FOiBtYWtlIHRoaXMg
ZnVuY3Rpb24gcHVyZSB2aXJ0dWFsIG9uY2UgaXQgaXMgaW1wbGVtZW50ZWQgaW4KKyAgICAvLyBi
b3RoIGNvbW1hbmQgYnVmZmVyIHBvcnQgYW5kIGluLXByb2Nlc3MgcG9ydC4KKyAgICB2aXJ0dWFs
IFdlYlN0cmluZyBnZXRUcmFuc2xhdGVkU2hhZGVyU291cmNlQU5HTEUoV2ViR0xJZCBzaGFkZXIp
IHsgcmV0dXJuIFdlYlN0cmluZygpOyB9CisKICNpZiBXRUJLSVRfVVNJTkdfU0tJQQogICAgIEdy
R0xJbnRlcmZhY2UqIGNyZWF0ZUdyR0xJbnRlcmZhY2UoKTsKICNlbmRpZgpJbmRleDogU291cmNl
L1dlYktpdC9jaHJvbWl1bS9zcmMvRXh0ZW5zaW9uczNEQ2hyb21pdW0uY3BwCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0V4dGVuc2lvbnMzRENocm9taXVtLmNwcAko
cmV2aXNpb24gOTc0OTcpCisrKyBTb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9FeHRlbnNpb25z
M0RDaHJvbWl1bS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTExNSw2ICsxMTUsMTEgQEAgdm9pZCBF
eHRlbnNpb25zM0RDaHJvbWl1bTo6YmluZFZlcnRleEFycgogewogfQogCitTdHJpbmcgRXh0ZW5z
aW9uczNEQ2hyb21pdW06OmdldFRyYW5zbGF0ZWRTaGFkZXJTb3VyY2VBTkdMRShQbGF0Zm9ybTNE
T2JqZWN0IHNoYWRlcikKK3sKKyAgICByZXR1cm4gbV9wcml2YXRlLT5nZXRUcmFuc2xhdGVkU2hh
ZGVyU291cmNlQU5HTEUoc2hhZGVyKTsKK30KKwogdm9pZCBFeHRlbnNpb25zM0RDaHJvbWl1bTo6
c2V0U3dhcEJ1ZmZlcnNDb21wbGV0ZUNhbGxiYWNrQ0hST01JVU0oUGFzc093blB0cjxTd2FwQnVm
ZmVyc0NvbXBsZXRlQ2FsbGJhY2tDSFJPTUlVTT4gY2FsbGJhY2spCiB7CiAgICAgbV9wcml2YXRl
LT5zZXRTd2FwQnVmZmVyc0NvbXBsZXRlQ2FsbGJhY2tDSFJPTUlVTShjYWxsYmFjayk7CkluZGV4
OiBTb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9HcmFwaGljc0NvbnRleHQzRENocm9taXVtLmNw
cAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9HcmFwaGljc0NvbnRl
eHQzRENocm9taXVtLmNwcAkocmV2aXNpb24gOTc0OTcpCisrKyBTb3VyY2UvV2ViS2l0L2Nocm9t
aXVtL3NyYy9HcmFwaGljc0NvbnRleHQzRENocm9taXVtLmNwcAkod29ya2luZyBjb3B5KQpAQCAt
ODg3LDYgKzg4Nyw4IEBAIERFTEVHQVRFX1RPX0lNUExfNShyZW5kZXJidWZmZXJTdG9yYWdlTXUK
IERFTEVHQVRFX1RPX0lNUEwocmF0ZUxpbWl0T2Zmc2NyZWVuQ29udGV4dENIUk9NSVVNKQogREVM
RUdBVEVfVE9fSU1QTF9SKGdldEdyYXBoaWNzUmVzZXRTdGF0dXNBUkIsIEdDM0RlbnVtKQogCitE
RUxFR0FURV9UT19JTVBMXzFSKGdldFRyYW5zbGF0ZWRTaGFkZXJTb3VyY2VBTkdMRSwgUGxhdGZv
cm0zRE9iamVjdCwgU3RyaW5nKQorCiAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIC8vIEdyYXBoaWNzQ29udGV4
dDNECiAvLwpJbmRleDogU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvR3JhcGhpY3NDb250ZXh0
M0RQcml2YXRlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvR3Jh
cGhpY3NDb250ZXh0M0RQcml2YXRlLmgJKHJldmlzaW9uIDk3NDk3KQorKysgU291cmNlL1dlYktp
dC9jaHJvbWl1bS9zcmMvR3JhcGhpY3NDb250ZXh0M0RQcml2YXRlLmgJKHdvcmtpbmcgY29weSkK
QEAgLTMwMyw2ICszMDMsOSBAQCBwdWJsaWM6CiAgICAgLy8gR0xfQVJCX3JvYnVzdG5lc3MKICAg
ICBHQzNEZW51bSBnZXRHcmFwaGljc1Jlc2V0U3RhdHVzQVJCKCk7CiAKKyAgICAvLyBHTF9BTkdM
RV90cmFuc2xhdGVkX3NoYWRlcl9zb3VyY2UKKyAgICBTdHJpbmcgZ2V0VHJhbnNsYXRlZFNoYWRl
clNvdXJjZUFOR0xFKFBsYXRmb3JtM0RPYmplY3Qgc2hhZGVyKTsKKwogcHJpdmF0ZToKICAgICBH
cmFwaGljc0NvbnRleHQzRFByaXZhdGUoV2ViS2l0OjpXZWJWaWV3SW1wbCosIFBhc3NPd25QdHI8
V2ViS2l0OjpXZWJHcmFwaGljc0NvbnRleHQzRD4sIEdyYXBoaWNzQ29udGV4dDNEOjpBdHRyaWJ1
dGVzKTsKIAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>111185</attachid>
            <date>2011-10-16 13:10:29 -0700</date>
            <delta_ts>2011-10-17 08:11:06 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-70077-20111016131027.patch</filename>
            <type>text/plain</type>
            <size>59614</size>
            <attacher name="Zhenyao Mo">zmo</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDk3NTMyKQorKysgU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMzg3IEBACisyMDExLTEwLTE0ICBaaGVueWFv
IE1vICA8em1vQGdvb2dsZS5jb20+CisKKyAgICAgICAgSW1wbGVtZW50IFdFQkdMX2RlYnVnX3No
YWRlcnMgYW5kIFdFQkdMX2RlYnVnX3JlbmRlcmVyX2luZm8gZXh0ZW5zaW9ucworICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzAwNzcKKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFdlYkNvcmUuZ3lwaTogYWRk
ZWQgbmV3IGV4dGVuc2lvbiBjbGFzcyBmaWxlcy4KKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJv
ai9wcm9qZWN0LnBieHByb2o6IGRpdHRvLgorICAgICAgICAqIGJpbmRpbmdzL2pzL0pTV2ViR0xS
ZW5kZXJpbmdDb250ZXh0Q3VzdG9tLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OnRvSlMpOiBIYW5k
bGVzIHR3byBuZXcgZXh0ZW5zaW9ucy4KKyAgICAgICAgKiBiaW5kaW5ncy92OC9jdXN0b20vVjhX
ZWJHTFJlbmRlcmluZ0NvbnRleHRDdXN0b20uY3BwOgorICAgICAgICAoV2ViQ29yZTo6dG9WOE9i
amVjdCk6IERpdHRvLgorICAgICAgICAqIGh0bWwvY2FudmFzL1dlYkdMRGVidWdSZW5kZXJlcklu
Zm8uY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OldlYkdMRGVidWdSZW5kZXJlckluZm86
OldlYkdMRGVidWdSZW5kZXJlckluZm8pOgorICAgICAgICAoV2ViQ29yZTo6V2ViR0xEZWJ1Z1Jl
bmRlcmVySW5mbzo6fldlYkdMRGVidWdSZW5kZXJlckluZm8pOgorICAgICAgICAoV2ViQ29yZTo6
V2ViR0xEZWJ1Z1JlbmRlcmVySW5mbzo6Z2V0TmFtZSk6CisgICAgICAgIChXZWJDb3JlOjpXZWJH
TERlYnVnUmVuZGVyZXJJbmZvOjpjcmVhdGUpOgorICAgICAgICAqIGh0bWwvY2FudmFzL1dlYkdM
RGVidWdSZW5kZXJlckluZm8uaDogQWRkZWQuCisgICAgICAgICogaHRtbC9jYW52YXMvV2ViR0xE
ZWJ1Z1JlbmRlcmVySW5mby5pZGw6IEFkZGVkLgorICAgICAgICAqIGh0bWwvY2FudmFzL1dlYkdM
RGVidWdTaGFkZXJzLmNwcDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpXZWJHTERlYnVnU2hh
ZGVyczo6V2ViR0xEZWJ1Z1NoYWRlcnMpOgorICAgICAgICAoV2ViQ29yZTo6V2ViR0xEZWJ1Z1No
YWRlcnM6On5XZWJHTERlYnVnU2hhZGVycyk6CisgICAgICAgIChXZWJDb3JlOjpXZWJHTERlYnVn
U2hhZGVyczo6Z2V0TmFtZSk6CisgICAgICAgIChXZWJDb3JlOjpXZWJHTERlYnVnU2hhZGVyczo6
Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OldlYkdMRGVidWdTaGFkZXJzOjpnZXRUcmFuc2xh
dGVkU2hhZGVyU291cmNlKToKKyAgICAgICAgKiBodG1sL2NhbnZhcy9XZWJHTERlYnVnU2hhZGVy
cy5oOiBBZGRlZC4KKyAgICAgICAgKiBodG1sL2NhbnZhcy9XZWJHTERlYnVnU2hhZGVycy5pZGw6
IEFkZGVkLgorICAgICAgICAqIGh0bWwvY2FudmFzL1dlYkdMRXh0ZW5zaW9uLmg6CisgICAgICAg
ICogaHRtbC9jYW52YXMvV2ViR0xSZW5kZXJpbmdDb250ZXh0LmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OldlYkdMUmVuZGVyaW5nQ29udGV4dDo6YWxsb3dQcml2aWxlZ2VkRXh0ZW5zaW9ucyk6IFRv
IGJlIGltcGxlbWVudGVkIC0gZGVjaWRpbmcgd2hldGhlciB0aGUgdHdvIGV4dGVuc2lvbnMgc2hv
dWxkIGJlIGFsbG93ZWQgb3Igbm90LgorICAgICAgICAoV2ViQ29yZTo6V2ViR0xSZW5kZXJpbmdD
b250ZXh0OjpnZXRFeHRlbnNpb24pOiBIYW5kbGVzIHR3byBuZXcgZXh0ZW5zaW9ucy4KKyAgICAg
ICAgKFdlYkNvcmU6OldlYkdMUmVuZGVyaW5nQ29udGV4dDo6Z2V0UGFyYW1ldGVyKTogSGFuZGxl
cyBVTk1BU0tFRF9WRU5ET1JfV0VCR0wgLyBVTk1BU0tFRF9SRU5ERVJFUl9XRUJHTAorICAgICAg
ICAoV2ViQ29yZTo6V2ViR0xSZW5kZXJpbmdDb250ZXh0OjpnZXRTdXBwb3J0ZWRFeHRlbnNpb25z
KTogSGFuZGxlcyB0d28gbmV3IGV4dGVuc2lvbnMuCisgICAgICAgICogaHRtbC9jYW52YXMvV2Vi
R0xSZW5kZXJpbmdDb250ZXh0Lmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvRXh0ZW5z
aW9uczNELmg6IERpdHRvLgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzVHlw
ZXMzRC5oOiBBZGQgR0MzRGNoYXIuCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21p
dW0vRXh0ZW5zaW9uczNEQ2hyb21pdW0uaDogSGFuZGxlcyB0d28gbmV3IGV4dGVuc2lvbnMuCisg
ICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0V4dGVuc2lvbnMzRE9wZW5HTC5jcHA6
IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6Z2V0VHJhbnNsYXRlZFNoYWRlclNvdXJjZUFOR0xF
KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wvRXh0ZW5zaW9uczNET3BlbkdM
Lmg6IERpdHRvLgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL3F0L0V4dGVuc2lvbnMzRFF0
LmNwcDogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpFeHRlbnNpb25zM0RRdDo6Z2V0VHJhbnNs
YXRlZFNoYWRlclNvdXJjZUFOR0xFKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9xdC9F
eHRlbnNpb25zM0RRdC5oOiBEaXR0by4KKworMjAxMS0xMC0xNCAgTWFyayBIYWhuZW5iZXJnICA8
bWhhaG5lbmJlcmdAYXBwbGUuY29tPgorCisgICAgICAgIFJlbmFtZSB2aXJ0dWFsIHB1dCB0byBw
dXRWaXJ0dWFsCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD02OTg1MQorCisgICAgICAgIFJldmlld2VkIGJ5IERhcmluIEFkbGVyLgorCisgICAgICAgIE5v
IG5ldyB0ZXN0cy4KKworICAgICAgICBSZW5hbWVkIHZpcnR1YWwgdmVyc2lvbnMgb2YgcHV0IHRv
IHB1dFZpcnR1YWwgaW4gcHJlcHJhdGlvbiBmb3IgCisgICAgICAgIGFkZGluZyB0aGUgc3RhdGlj
IHB1dCB0byB0aGUgTWV0aG9kVGFibGUgaW4gQ2xhc3NJbmZvIHNpbmNlIHRoZSAKKyAgICAgICAg
Y29tcGlsZXIgZ2V0cyBtYWQgaWYgdGhlIHZpcnR1YWwgYW5kIHN0YXRpYyB2ZXJzaW9ucyBoYXZl
IHRoZSBzYW1lIAorICAgICAgICBuYW1lLgorCisgICAgICAgICogV2ViQ29yZS5leHAuaW46Cisg
ICAgICAgICogYmluZGluZ3MvanMvSlNET01XaW5kb3dDdXN0b20uY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6SlNET01XaW5kb3c6OnB1dFZpcnR1YWwpOgorICAgICAgICAqIGJpbmRpbmdzL2pzL0pT
RE9NV2luZG93U2hlbGwuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SlNET01XaW5kb3dTaGVsbDo6
cHV0VmlydHVhbCk6CisgICAgICAgICogYmluZGluZ3MvanMvSlNET01XaW5kb3dTaGVsbC5oOgor
ICAgICAgICAqIGJpbmRpbmdzL2pzL0pTTG9jYXRpb25DdXN0b20uY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6SlNMb2NhdGlvbjo6cHV0RGVsZWdhdGUpOgorICAgICAgICAqIGJpbmRpbmdzL2pzL0pT
UGx1Z2luRWxlbWVudEZ1bmN0aW9ucy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpydW50aW1lT2Jq
ZWN0Q3VzdG9tUHV0KToKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9TZXJpYWxpemVkU2NyaXB0VmFs
dWUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q2xvbmVEZXNlcmlhbGl6ZXI6OnB1dFByb3BlcnR5
KToKKyAgICAgICAgKiBiaW5kaW5ncy9vYmpjL1dlYlNjcmlwdE9iamVjdC5tbToKKyAgICAgICAg
KC1bV2ViU2NyaXB0T2JqZWN0IHNldFZhbHVlOmZvcktleTpdKToKKyAgICAgICAgKC1bV2ViU2Ny
aXB0T2JqZWN0IHNldFdlYlNjcmlwdFZhbHVlQXRJbmRleDp2YWx1ZTpdKToKKyAgICAgICAgKiBi
aW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5wbToKKyAgICAgICAgKEdlbmVyYXRlSGVh
ZGVyKToKKyAgICAgICAgKEdlbmVyYXRlSW1wbGVtZW50YXRpb24pOgorICAgICAgICAqIGJpbmRp
bmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RPYmouY3BwOgorICAgICAgICAoV2ViQ29yZTo6SlNU
ZXN0T2JqOjpwdXRWaXJ0dWFsKToKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMv
SlNUZXN0T2JqLmg6CisgICAgICAgICogYnJpZGdlL05QX2pzb2JqZWN0LmNwcDoKKyAgICAgICAg
KF9OUE5fU2V0UHJvcGVydHkpOgorICAgICAgICAqIGJyaWRnZS9qbmkvam5pX2pzb2JqZWN0Lm1t
OgorICAgICAgICAoSmF2YUpTT2JqZWN0OjpzZXRNZW1iZXIpOgorICAgICAgICAoSmF2YUpTT2Jq
ZWN0OjpzZXRTbG90KToKKyAgICAgICAgKiBicmlkZ2Uvb2JqYy9vYmpjX3J1bnRpbWUuaDoKKyAg
ICAgICAgKiBicmlkZ2Uvb2JqYy9vYmpjX3J1bnRpbWUubW06CisgICAgICAgIChKU0M6OkJpbmRp
bmdzOjpPYmpjRmFsbGJhY2tPYmplY3RJbXA6OnB1dFZpcnR1YWwpOgorICAgICAgICAqIGJyaWRn
ZS9xdC9xdF9pbnN0YW5jZS5jcHA6CisgICAgICAgIChKU0M6OkJpbmRpbmdzOjpRdEluc3RhbmNl
OjpwdXQpOgorICAgICAgICAqIGJyaWRnZS9xdC9xdF9ydW50aW1lLmNwcDoKKyAgICAgICAgKEpT
Qzo6QmluZGluZ3M6OmNvbnZlcnRRVmFyaWFudFRvVmFsdWUpOgorICAgICAgICAqIGJyaWRnZS9y
dW50aW1lX2FycmF5LmNwcDoKKyAgICAgICAgKEpTQzo6UnVudGltZUFycmF5OjpwdXRWaXJ0dWFs
KToKKyAgICAgICAgKiBicmlkZ2UvcnVudGltZV9hcnJheS5oOgorICAgICAgICAqIGJyaWRnZS9y
dW50aW1lX29iamVjdC5jcHA6CisgICAgICAgIChKU0M6OkJpbmRpbmdzOjpSdW50aW1lT2JqZWN0
OjpwdXRWaXJ0dWFsKToKKyAgICAgICAgKiBicmlkZ2UvcnVudGltZV9vYmplY3QuaDoKKyAgICAg
ICAgKiBicmlkZ2UvdGVzdHF0YmluZGluZ3MuY3BwOgorICAgICAgICAobWFpbik6CisKKzIwMTEt
MTAtMTQgIFNoZXJpZmYgQm90ICA8d2Via2l0LnJldmlldy5ib3RAZ21haWwuY29tPgorCisgICAg
ICAgIFVucmV2aWV3ZWQsIHJvbGxpbmcgb3V0IHI5NzUxOS4KKyAgICAgICAgaHR0cDovL3RyYWMu
d2Via2l0Lm9yZy9jaGFuZ2VzZXQvOTc1MTkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTcwMTU2CisKKyAgICAgICAgQnJva2UgNzkrIHRlc3RzIG9uIGJv
dHMgKFJlcXVlc3RlZCBieSBkZ2xhemtvdiBvbiAjd2Via2l0KS4KKworICAgICAgICAqIHBsYXRm
b3JtL2dyYXBoaWNzL3NraWEvR3JhcGhpY3NDb250ZXh0U2tpYS5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpnZXRGb2N1c1JpbmdPdXRzZXQpOgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NDb250
ZXh0OjpkcmF3Rm9jdXNSaW5nKToKKworMjAxMS0wOS0yOCAgUm9iZXJ0IEhvZ2FuICA8cm9iZXJ0
QHdlYmtpdC5vcmc+CisKKyAgICAgICAgUmVwbGFjZWQgZWxlbWVudHMgc3F1ZWV6ZWQgd2hlbiB3
aWR0aCBpcyBzcGVjaWZpZWQgYXMgcGVyY2VudGFnZSBpbnNpZGUgYSB0YWJsZSB3aXRoIEF1dG8g
bGF5b3V0CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0y
OTQ0NworCisgICAgICAgIElmIGluc2VydGluZyBhICdyZXBsYWNlZCcgZWxlbWVudCAoZS5nLiBp
bWFnZSwgcGx1Z2luKSBpbiBhIHRhYmxlIGNlbGwgdGhhdCBpcyBub3QgZGVzY2VuZGFudCBmcm9t
CisgICAgICAgIGEgYmxvY2sgd2l0aCBmaXhlZCBsYXlvdXQgdGhlbiBkbyBub3Qgc3F1ZWV6ZSB0
aGUgZWxlbWVudCwgbGV0IGl0IHVzZSBpdHMgaW50cmluc2ljIHdpZHRoIGFuZCBoZWlnaHQuCisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgRGF2aWQgSHlhdHQuCisKKyAgICAgICAgVGVzdDogZmFzdC9y
ZXBsYWNlZC90YWJsZS1wZXJjZW50LXdpZHRoLmh0bWwKKworICAgICAgICAqIHJlbmRlcmluZy9S
ZW5kZXJCb3guY3BwOgorICAgICAgICAoV2ViQ29yZTo6c2hvdWxkRXhwYW5kVG9JbnRyaW5zaWNE
aW1lbnNpb24pOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyQm94Ojpjb250YWluaW5nQmxvY2tS
ZXBsYWNlZExvZ2ljYWxXaWR0aEZvckNvbnRlbnQpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVy
Qm94Ojpjb21wdXRlUmVwbGFjZWRMb2dpY2FsV2lkdGhVc2luZyk6CisgICAgICAgIChXZWJDb3Jl
OjpSZW5kZXJCb3g6OmNvbXB1dGVSZXBsYWNlZExvZ2ljYWxIZWlnaHRVc2luZyk6CisgICAgICAg
ICogcmVuZGVyaW5nL1JlbmRlckJveC5oOgorCisyMDExLTEwLTE0ICBDYXJ5IENsYXJrICA8Y2Fy
eWNsYXJrQGdvb2dsZS5jb20+CisKKyAgICAgICAgW0Nocm9taXVtIFNraWEgb24gTWFjXSBJbXBy
b3ZlIGZvY3VzIHJpbmcKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTcwMTI0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgRXJpYyBTZWlkZWwuCisgICAgICAg
IAorICAgICAgICBUaGUgZm9jdXMgcmluZyBjb2RlIGZvcm1lcmx5IG91dHNldCB0aGUgYm91bmRz
IG9mCisgICAgICAgIHRoZSBjb21wb25lbnQgcmVjdGFuZ2xlcyBieSBmcmFjdGlvbmFsIGFtb3Vu
dHMuIEJlY2F1c2UKKyAgICAgICAgdGhlIHJlY3RhbmdsZXMgYXJlIFNrSVJlY3QgKGludGVnZXIg
YmFzZWQpLCB0aGUgZnJhY3Rpb25hbAorICAgICAgICBvdXRzZXQgaGFkIG5vIGVmZmVjdC4KKwor
ICAgICAgICBUaGUgZXF1aXZhbGVudCBjb2RlIGluIEdyYXBoaWNzQ29udGV4dE1hYy5tbSBjb21w
dXRlcworICAgICAgICB0aGUgY3VydmUgcmFkaXVzIGFuZCByZWN0YW5nbGUgb3V0c2V0IHdpdGgg
aW50ZWdlcnMsIHNvCisgICAgICAgIHRoZSB1c2Ugb2YgZmxvYXRzIGluIFNraWEncyBjYXNlLCBi
ZXNpZGVzIG5vdCB3b3JraW5nLAorICAgICAgICBpcyB1bm5lY2Vzc2FyeS4KKworICAgICAgICBU
aGUgU2tpYSBjb2RlIGFsc28gZmFpbGVkIHRvIHRha2UgdGhlIG9mZnNldCBpbnRvIGFjY291bnQu
CisgICAgICAgIEluIExheW91dFRlc3RzLCB0aGUgZm9jdXMgcmluZ3MgZWl0aGVyIGhhdmUgYW4g
b2Zmc2V0IG9mCisgICAgICAgIDAgb3IgMi4gVGhlIENvcmVHcmFwaGljcyBjb2RlIGluY3JlYXNl
cyB0aGUgcmluZydzIHJlY3RhbmdsZXMKKyAgICAgICAgYnkgdGhlIG9mZnNldCwgdGhlbiBwYXNz
ZXMgdGhlIHJlc3VsdCB0byB3a0RyYXdGb2N1c1JpbmcuCisKKyAgICAgICAgSSBkaWQgbm90IGZp
bmQgYW55IGRvY3VtZW50YXRpb24gYWJvdXQgaG93IHdrRHJhd0ZvY3VzUmluZworICAgICAgICBm
dXJ0aGVyIGluZmxhdGVzIHRoZSBmb2N1cyByaW5nLCBidXQgZW1waXJpY2FsbHkgSSBkZXRlcm1p
bmVkCisgICAgICAgIHRoYXQgYWRkaW5nIDIgdG8gdGhlIG9mZnNldCBnZW5lcmF0ZWQgcmluZ3Mg
d2l0aCBpZGVudGljYWwKKyAgICAgICAgb3V0ZXIgZGlhbWV0ZXJzLgorIAorICAgICAgICBXaXRo
IHRoZXNlIGFkanVzdG1lbnRzLCB0aGUgbGF5b3V0IHRlc3RzIGdlbmVyYXRlIGZvY3VzIHJpbmdz
CisgICAgICAgIGluIHRoZSBTa2lhIG9uIE1hYyBjYXNlIHRoYXQgbWF0Y2ggdGhlIGNvdmVyYWdl
IG9mIHRoZQorICAgICAgICBDaHJvbWl1bSBDRy1iYXNlZCBwbGF0Zm9ybSwgaW4gcGFydGljdWxh
ciwgbWF0Y2hpbmc6CisgICAgICAgIAorICAgICAgICBlZGl0aW5nL2luc2VydGluZy9lZGl0YWJs
ZS1pbmxpbmUtZWxlbWVudC5odG1sCisgICAgICAgIGVkaXRpbmcvc2VsZWN0aW9uLzM2OTA3MDMt
Mi5odG1sCisKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9za2lhL0dyYXBoaWNzQ29udGV4
dFNraWEuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Z2V0Rm9jdXNSaW5nT3V0c2V0KToKKyAgICAg
ICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dDo6ZHJhd0ZvY3VzUmluZyk6CisKKzIwMTEtMTAt
MTQgIENoYW5nIFNodSAgPGNzaHVAd2Via2l0Lm9yZz4KKworICAgICAgICBbUXRdIEVuYWJsZSBm
dWxsc2NyZWVuIGFwaSBvbiBRdAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9NzAxMzEKKworICAgICAgICBBcyBhIHJlc3VsdCwgd2UgaGF2ZSAzIHBhc3Nl
ZCB0ZXN0cy4KKworICAgICAgICBSZXZpZXdlZCBieSBOb2FtIFJvc2VudGhhbC4KKworICAgICAg
ICAqIGZlYXR1cmVzLnByaToKKworMjAxMS0xMC0xNCAgQmV0aCBEYWtpbiAgPGJkYWtpbkBhcHBs
ZS5jb20+CisKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTcwMTQ4CisgICAgICAgIFNob3VsZCBzd2l0Y2ggdG8gQ29yZVVJIHZlcnNpb24gb2YgQ29ycmVj
dGlvbkRvdCwgR3JhbW1hckRvdCwgYW5kIFNwZWxsaW5nRG90CisgICAgICAgIC1hbmQgY29ycmVz
cG9uZGluZy0KKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzEwMjA4MjgxPgorCisgICAgICAgIFJl
dmlld2VkIGJ5IEFuZGVycyBDYXJsc3Nvbi4KKworICAgICAgICBVc2UgTlMqRG90IHdoZW5ldmVy
IGl0J3MgYXZhaWxhYmxlLCBhbmQgZmFsbGJhY2sgdG8gKkRvdCBvbmx5IHdoZW4gaXQgaXMgbm90
LgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL21hYy9HcmFwaGljc0NvbnRleHRNYWMubW06
CisgICAgICAgIChXZWJDb3JlOjpjcmVhdGVQYXR0ZXJuQ29sb3IpOgorICAgICAgICAoV2ViQ29y
ZTo6R3JhcGhpY3NDb250ZXh0OjpkcmF3TGluZUZvclRleHRDaGVja2luZyk6CisKKzIwMTEtMTAt
MTQgIERtaXRyeSBMb21vdiAgPGRzbG9tb3ZAZ29vZ2xlLmNvbT4KKworICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzAxMjAKKyAgICAgICAgW0Nocm9taXVt
XSBQYXNzIE1lc3NhZ2VQb3J0QXJyYXkgdG8gU2VyaWFsaXplZFNjcmlwdFZhbHVlOjpzZXJpYWxp
emUvZGVzZXJpYWxpemUuCisgICAgICAgIFRoaXMgcGF0Y2ggYXVnbWVudHMgU2VyaWFsaXplZFNj
cmlwdFZhbHVlIHdpdGggTWVzc2FnZVBvcnRBcnJheSogcGFyYW1ldGVyIHRvIGltcGxlbWVudCBN
ZXNzYWdlUG9ydCAKKyAgICAgICAgdHJhbnNmZXIgd2l0aGluIHRoZSBtZXNzYWdlIGluIHRoZSBm
dXR1cmUuCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgRGF2aWQgTGV2aW4uCisKKyAgICAgICAgKiBi
aW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JWOC5wbToKKyAgICAgICAgKEdlbmVyYXRlUGFy
YW1ldGVyc0NoZWNrKToKKyAgICAgICAgKiBiaW5kaW5ncy92OC9TZXJpYWxpemVkU2NyaXB0VmFs
dWUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2VyaWFsaXplZFNjcmlwdFZhbHVlOjpjcmVhdGUp
OgorICAgICAgICAoV2ViQ29yZTo6U2VyaWFsaXplZFNjcmlwdFZhbHVlOjpTZXJpYWxpemVkU2Ny
aXB0VmFsdWUpOgorICAgICAgICAoV2ViQ29yZTo6U2VyaWFsaXplZFNjcmlwdFZhbHVlOjpkZXNl
cmlhbGl6ZSk6CisgICAgICAgICogYmluZGluZ3MvdjgvU2VyaWFsaXplZFNjcmlwdFZhbHVlLmg6
CisgICAgICAgICogYmluZGluZ3MvdjgvY3VzdG9tL1Y4RE9NV2luZG93Q3VzdG9tLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OmhhbmRsZVBvc3RNZXNzYWdlQ2FsbGJhY2spOgorICAgICAgICAoV2Vi
Q29yZTo6VjhET01XaW5kb3c6OnBvc3RNZXNzYWdlQ2FsbGJhY2spOgorICAgICAgICAoV2ViQ29y
ZTo6VjhET01XaW5kb3c6OndlYmtpdFBvc3RNZXNzYWdlQ2FsbGJhY2spOgorICAgICAgICAqIGJp
bmRpbmdzL3Y4L2N1c3RvbS9WOERlZGljYXRlZFdvcmtlckNvbnRleHRDdXN0b20uY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6aGFuZGxlUG9zdE1lc3NhZ2VDYWxsYmFjayk6CisgICAgICAgIChXZWJD
b3JlOjpWOERlZGljYXRlZFdvcmtlckNvbnRleHQ6OnBvc3RNZXNzYWdlQ2FsbGJhY2spOgorICAg
ICAgICAoV2ViQ29yZTo6VjhEZWRpY2F0ZWRXb3JrZXJDb250ZXh0Ojp3ZWJraXRQb3N0TWVzc2Fn
ZUNhbGxiYWNrKToKKyAgICAgICAgKiBiaW5kaW5ncy92OC9jdXN0b20vVjhIaXN0b3J5Q3VzdG9t
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlY4SGlzdG9yeTo6cHVzaFN0YXRlQ2FsbGJhY2spOgor
ICAgICAgICAoV2ViQ29yZTo6VjhIaXN0b3J5OjpyZXBsYWNlU3RhdGVDYWxsYmFjayk6CisgICAg
ICAgICogYmluZGluZ3MvdjgvY3VzdG9tL1Y4TWVzc2FnZUV2ZW50Q3VzdG9tLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OlY4TWVzc2FnZUV2ZW50OjpkYXRhQWNjZXNzb3JHZXR0ZXIpOgorICAgICAg
ICAqIGJpbmRpbmdzL3Y4L2N1c3RvbS9WOE1lc3NhZ2VQb3J0Q3VzdG9tLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OmhhbmRsZVBvc3RNZXNzYWdlQ2FsbGJhY2spOgorICAgICAgICAoV2ViQ29yZTo6
VjhNZXNzYWdlUG9ydDo6cG9zdE1lc3NhZ2VDYWxsYmFjayk6CisgICAgICAgIChXZWJDb3JlOjpW
OE1lc3NhZ2VQb3J0Ojp3ZWJraXRQb3N0TWVzc2FnZUNhbGxiYWNrKToKKyAgICAgICAgKiBiaW5k
aW5ncy92OC9jdXN0b20vVjhXb3JrZXJDdXN0b20uY3BwOgorICAgICAgICAoV2ViQ29yZTo6aGFu
ZGxlUG9zdE1lc3NhZ2VDYWxsYmFjayk6CisgICAgICAgIChXZWJDb3JlOjpWOFdvcmtlcjo6cG9z
dE1lc3NhZ2VDYWxsYmFjayk6CisgICAgICAgIChXZWJDb3JlOjpWOFdvcmtlcjo6d2Via2l0UG9z
dE1lc3NhZ2VDYWxsYmFjayk6CisgICAgICAgICogd29ya2Vycy9Xb3JrZXIuaWRsOgorCisyMDEx
LTEwLTE0ICBKZWZmIE1pbGxlciAgPGplZmZtQGFwcGxlLmNvbT4KKworICAgICAgICBJbmplY3Rl
ZEJ1bmRsZUhpdFRlc3RSZXN1bHQ6OmltYWdlUmVjdCgpIHNob3VsZCByZXR1cm4gcmVjdCBpbiBX
S1ZpZXcgY29vcmRpbmF0ZXMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTY5OTYzCisgICAgICAgIAorICAgICAgICBBZGQgaW5mcmFzdHJ1Y3R1cmUgdG8g
Y29udmVydCBmcm9tIGFueSBmcmFtZSB2aWV3J3MgY29vcmRpbmF0ZSBzeXN0ZW0gdG8gdGhlCisg
ICAgICAgIHJvb3QgdmlldydzIGNvb3JkaW5hdGUgc3lzdGVtLgorCisgICAgICAgIFJldmlld2Vk
IGJ5IFNpbW9uIEZyYXNlci4KKworICAgICAgICBObyBuZXcgdGVzdHMgKHlldCksIHRoaXMgaXMg
Y292ZXJlZCBieSA8aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTcwMTM2
Pi4KKworICAgICAgICAqIFdlYkNvcmUuZXhwLmluOiBFeHBvcnRlZCBXZWJDb3JlOjpTY3JvbGxW
aWV3Ojpjb250ZW50c1RvUm9vdFZpZXcoKSwgdXNlZCBieSBJbmplY3RlZEJ1bmRsZUhpdFRlc3RS
ZXN1bHQuY3BwLgorICAgICAgICAKKyAgICAgICAgKiBwbGF0Zm9ybS9TY3JvbGxWaWV3LmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbFZpZXc6OnJvb3RWaWV3VG9Db250ZW50cyk6IEFkZGVk
IChib3RoIHBvaW50IGFuZCByZWN0IHZlcnNpb25zKS4KKyAgICAgICAgKFdlYkNvcmU6OlNjcm9s
bFZpZXc6OmNvbnRlbnRzVG9Sb290Vmlldyk6IERpdHRvLgorICAgICAgICAKKyAgICAgICAgKiBw
bGF0Zm9ybS9TY3JvbGxWaWV3Lmg6IEFkZGVkIG1lbWJlciBmdW5jdGlvbnMgdG8gY29udmVydCB0
by9mcm9tIHJvb3QgdmlldyBjb29yZGluYXRlcy4KKyAgICAgICAgCisgICAgICAgICogcGxhdGZv
cm0vV2lkZ2V0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OldpZGdldDo6Y29udmVydEZyb21Sb290
Vmlldyk6IEFkZGVkIChib3RoIHBvaW50IGFuZCByZWN0IHZlcnNpb25zKS4KKyAgICAgICAgKFdl
YkNvcmU6OldpZGdldDo6Y29udmVydFRvUm9vdFZpZXcpOiBEaXR0by4KKyAgICAgICAgCisgICAg
ICAgICogcGxhdGZvcm0vV2lkZ2V0Lmg6IEFkZGVkIG1lbWJlciBmdW5jdGlvbnMgdG8gY29udmVy
dCB0by9mcm9tIHJvb3QgdmlldyBjb29yZGluYXRlcy4KKworMjAxMS0xMC0xNCAgQW5kcmVhcyBL
bGluZyAgPGtsaW5nQHdlYmtpdC5vcmc+CisKKyAgICAgICAgQ1NTUGFyc2VyOiBSZW1vdmUgU3R5
bGVCYXNlIHVzYWdlLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9NzAxNTAKKworICAgICAgICBSZXZpZXdlZCBieSBEYXJpbiBBZGxlci4KKworICAgICAg
ICBTcGxpdCBDU1NQYXJzZXI6Om1fcGFyc2VkU3R5bGVPYmplY3RzIGludG8gdHdvIHZlY3RvcnMg
b2YKKyAgICAgICAgQ1NTUnVsZXMgYW5kIE1lZGlhTGlzdHMuCisKKyAgICAgICAgKiBjc3MvQ1NT
UGFyc2VyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNTU1BhcnNlcjo6Y3JlYXRlTWVkaWFMaXN0
KToKKyAgICAgICAgKFdlYkNvcmU6OkNTU1BhcnNlcjo6Y3JlYXRlQ2hhcnNldFJ1bGUpOgorICAg
ICAgICAoV2ViQ29yZTo6Q1NTUGFyc2VyOjpjcmVhdGVJbXBvcnRSdWxlKToKKyAgICAgICAgKFdl
YkNvcmU6OkNTU1BhcnNlcjo6Y3JlYXRlTWVkaWFSdWxlKToKKyAgICAgICAgKFdlYkNvcmU6OkNT
U1BhcnNlcjo6Y3JlYXRlS2V5ZnJhbWVzUnVsZSk6CisgICAgICAgIChXZWJDb3JlOjpDU1NQYXJz
ZXI6OmNyZWF0ZVN0eWxlUnVsZSk6CisgICAgICAgIChXZWJDb3JlOjpDU1NQYXJzZXI6OmNyZWF0
ZUZvbnRGYWNlUnVsZSk6CisgICAgICAgIChXZWJDb3JlOjpDU1NQYXJzZXI6OmNyZWF0ZVBhZ2VS
dWxlKToKKyAgICAgICAgKFdlYkNvcmU6OkNTU1BhcnNlcjo6Y3JlYXRlS2V5ZnJhbWVSdWxlKToK
KyAgICAgICAgKiBjc3MvQ1NTUGFyc2VyLmg6CisKKzIwMTEtMTAtMTQgIEFkYW0gQmFydGggIDxh
YmFydGhAd2Via2l0Lm9yZz4KKworICAgICAgICBjYW52YXMgZ2V0SW1hZ2VEYXRhIHNob3VsZCBl
eHBsYWluIHdoeSBpdCB0aHJvd3MgU0VDVVJJVFlfRVJSCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03MDA4OAorCisgICAgICAgIFJldmlld2VkIGJ5IERh
cmluIEFkbGVyLgorCisgICAgICAgIExvZyBhcyBtZXNzYWdlIHRvIHRoZSBjb25zb2xlIHdoZW4g
Z2V0SW1hZ2VEYXRhIGZhaWxzIGJlY2F1c2UgdGhlCisgICAgICAgIGNhbnZhcyBpcyB0YWludGVk
LgorCisgICAgICAgICogaHRtbC9jYW52YXMvQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJELmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OkNhbnZhc1JlbmRlcmluZ0NvbnRleHQyRDo6Z2V0SW1hZ2VEYXRh
KToKKworMjAxMS0xMC0xNCAgQW5kcmVhcyBLbGluZyAgPGtsaW5nQHdlYmtpdC5vcmc+CisKKyAg
ICAgICAgSW5zcGVjdG9yOiBSZW1vdmUgU3R5bGVCYXNlIHVzYWdlLgorICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzAxMzgKKworICAgICAgICBSZXZpZXdl
ZCBieSBBbnR0aSBLb2l2aXN0by4KKworICAgICAgICBCZSBmdWxseSBzcGVjaWZpYyBhYm91dCB3
aGV0aGVyIHdlJ3JlIG9wZXJhdGluZyBvbiBhIENTU1J1bGUgb3IKKyAgICAgICAgYSBDU1NTdHls
ZVNoZWV0LgorCisgICAgICAgIE5vIGJlaGF2aW9yIGNoYW5nZSBleHBlY3RlZCwgdGhpcyBtZXJl
bHkgaXMgYSBjbGVhbnVwLgorCisgICAgICAgICogaW5zcGVjdG9yL0luc3BlY3RvckNTU0FnZW50
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckNTU0FnZW50OjpwYXJlbnRTdHlsZVNo
ZWV0KToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckNTU0FnZW50Ojphc0NTU1N0eWxlUnVs
ZSk6CisgICAgICAgICogaW5zcGVjdG9yL0luc3BlY3RvckNTU0FnZW50Lmg6CisgICAgICAgICog
aW5zcGVjdG9yL0luc3BlY3RvclN0eWxlU2hlZXQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6YXND
U1NSdWxlTGlzdCk6CisKKzIwMTEtMTAtMTQgIE1hcmsgSGFobmVuYmVyZyAgPG1oYWhuZW5iZXJn
QGFwcGxlLmNvbT4KKworICAgICAgICBSZW5hbWUgdmlydHVhbCBkZWxldGVQcm9wZXJ0eSB0byBk
ZWxldGVQcm9wZXJ0eVZpcnR1YWwKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTY5ODg0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgRGFyaW4gQWRsZXIuCisK
KyAgICAgICAgTm8gbmV3IHRlc3RzLgorCisgICAgICAgIFJlbmFtZWQgdmlydHVhbCB2ZXJzaW9u
cyBvZiBkZWxldGVQcm9wZXJ0eSB0byBkZWxldGVQcm9wZXJ0eVZpcnR1YWwgaW4gcHJlcHJhdGlv
biBmb3IgCisgICAgICAgIGFkZGluZyB0aGUgc3RhdGljIGRlbGV0ZVByb3BlcnR5IHRvIHRoZSBN
ZXRob2RUYWJsZSBpbiBDbGFzc0luZm8gc2luY2UgdGhlIAorICAgICAgICBjb21waWxlciBnZXRz
IG1hZCBpZiB0aGUgdmlydHVhbCBhbmQgc3RhdGljIHZlcnNpb25zIGhhdmUgdGhlIHNhbWUgbmFt
ZS4KKworICAgICAgICAqIFdlYkNvcmUuZXhwLmluOgorICAgICAgICAqIGJpbmRpbmdzL2pzL0pT
RE9NU3RyaW5nTWFwQ3VzdG9tLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkpTRE9NU3RyaW5nTWFw
OjpkZWxldGVQcm9wZXJ0eVZpcnR1YWwpOgorICAgICAgICAqIGJpbmRpbmdzL2pzL0pTRE9NV2lu
ZG93Q3VzdG9tLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkpTRE9NV2luZG93OjpkZWxldGVQcm9w
ZXJ0eVZpcnR1YWwpOgorICAgICAgICAqIGJpbmRpbmdzL2pzL0pTRE9NV2luZG93U2hlbGwuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6SlNET01XaW5kb3dTaGVsbDo6ZGVsZXRlUHJvcGVydHlWaXJ0
dWFsKToKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU0RPTVdpbmRvd1NoZWxsLmg6CisgICAgICAg
ICogYmluZGluZ3MvanMvSlNIaXN0b3J5Q3VzdG9tLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkpT
SGlzdG9yeTo6ZGVsZXRlUHJvcGVydHlWaXJ0dWFsKToKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9K
U0xvY2F0aW9uQ3VzdG9tLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkpTTG9jYXRpb246OmRlbGV0
ZVByb3BlcnR5VmlydHVhbCk6CisgICAgICAgICogYmluZGluZ3MvanMvSlNTdG9yYWdlQ3VzdG9t
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkpTU3RvcmFnZTo6ZGVsZXRlUHJvcGVydHlWaXJ0dWFs
KToKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9TY3JpcHRPYmplY3QuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6U2NyaXB0R2xvYmFsT2JqZWN0OjpyZW1vdmUpOgorICAgICAgICAqIGJpbmRpbmdzL29i
amMvV2ViU2NyaXB0T2JqZWN0Lm1tOgorICAgICAgICAoLVtXZWJTY3JpcHRPYmplY3QgcmVtb3Zl
V2ViU2NyaXB0S2V5Ol0pOgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRv
ckpTLnBtOgorICAgICAgICAoR2VuZXJhdGVIZWFkZXIpOgorICAgICAgICAqIGJyaWRnZS9OUF9q
c29iamVjdC5jcHA6CisgICAgICAgIChfTlBOX1JlbW92ZVByb3BlcnR5KToKKyAgICAgICAgKiBi
cmlkZ2Uvam5pL2puaV9qc29iamVjdC5tbToKKyAgICAgICAgKEphdmFKU09iamVjdDo6cmVtb3Zl
TWVtYmVyKToKKyAgICAgICAgKiBicmlkZ2Uvb2JqYy9vYmpjX3J1bnRpbWUuaDoKKyAgICAgICAg
KiBicmlkZ2Uvb2JqYy9vYmpjX3J1bnRpbWUubW06CisgICAgICAgIChKU0M6OkJpbmRpbmdzOjpP
YmpjRmFsbGJhY2tPYmplY3RJbXA6OmRlbGV0ZVByb3BlcnR5VmlydHVhbCk6CisgICAgICAgICog
YnJpZGdlL3J1bnRpbWVfYXJyYXkuY3BwOgorICAgICAgICAoSlNDOjpSdW50aW1lQXJyYXk6OmRl
bGV0ZVByb3BlcnR5VmlydHVhbCk6CisgICAgICAgICogYnJpZGdlL3J1bnRpbWVfYXJyYXkuaDoK
KyAgICAgICAgKiBicmlkZ2UvcnVudGltZV9vYmplY3QuY3BwOgorICAgICAgICAoSlNDOjpCaW5k
aW5nczo6UnVudGltZU9iamVjdDo6ZGVsZXRlUHJvcGVydHlWaXJ0dWFsKToKKyAgICAgICAgKiBi
cmlkZ2UvcnVudGltZV9vYmplY3QuaDoKKworMjAxMS0xMC0xNCAgU2ltb24gRnJhc2VyICA8c2lt
b24uZnJhc2VyQGFwcGxlLmNvbT4KKworICAgICAgICBXZWIgSW5zcGVjdG9yOiBXZWJQcm9jZXNz
IGNyYXNoZXMgaGFyZCB3aGVuIGluc3BlY3RpbmcgZWxlbWVudHMgd2l0aCBib3JkZXItaW1hZ2Vz
IGFwcGxpZWQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTcwMTA1CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgRGF2ZSBIeWF0dC4KKyAgICAgICAgCisgICAg
ICAgIEZpeCB0aHJlZSBkaWZmZXJlbnQgY3Jhc2hlcyByZWxhdGVkIHRvIGdldHRpbmcgY29tcHV0
ZWQgc3R5bGUgZm9yIGJvcmRlci1pbWFnZS4KKyAgICAgICAgSW4gYm90aCB2YWx1ZUZvck5pbmVQ
aWVjZUltYWdlU2xpY2UoKSBhbmQgdmFsdWVGb3JOaW5lUGllY2VJbWFnZVF1YWQoKSwKKyAgICAg
ICAgYXNzaWduICdyaWdodCcgdG8gJ2xlZnQnIGJlY2F1c2Ugd2UndmUgY29tcHV0ZWQgYSB2YWx1
ZSBmb3IgJ3JpZ2h0JyBhbHJlYWR5LgorICAgICAgICBPdGhlcndpc2UgdGhpcyB3b3VsZCBsZWF2
ZSAncmlnaHQnIGFzIG51bGwsIGNhdXNpbmcgbGF0ZXIgY3Jhc2hlcyBpbiBjc3NUZXh0KCkuCisg
ICAgICAgIAorICAgICAgICBJbiBtYXBOaW5lUGllY2VJbWFnZSgpLCBib3JkZXJJbWFnZS0+aW1h
Z2VWYWx1ZSgpIGNhbiBiZSBudWxsIGZvciBhIGJvcmRlci1pbWFnZQorICAgICAgICBzaG9ydGhh
bmQgdGhhdCBpcyBtaXNzaW5nIHRoZSBpbWFnZSB2YWx1ZS4KKworICAgICAgICBUZXN0OiBmYXN0
L2Nzcy9nZXRDb21wdXRlZFN0eWxlL2NvbXB1dGVkLXN0eWxlLWJvcmRlci1pbWFnZS5odG1sCisK
KyAgICAgICAgKiBjc3MvQ1NTQ29tcHV0ZWRTdHlsZURlY2xhcmF0aW9uLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OnZhbHVlRm9yTmluZVBpZWNlSW1hZ2VTbGljZSk6CisgICAgICAgIChXZWJDb3Jl
Ojp2YWx1ZUZvck5pbmVQaWVjZUltYWdlUXVhZCk6CisgICAgICAgICogY3NzL0NTU1N0eWxlU2Vs
ZWN0b3IuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q1NTU3R5bGVTZWxlY3Rvcjo6bWFwTmluZVBp
ZWNlSW1hZ2UpOgorCiAyMDExLTEwLTE0ICBNYXJrIEhhaG5lbmJlcmcgIDxtaGFobmVuYmVyZ0Bh
cHBsZS5jb20+CiAKICAgICAgICAgUmVuYW1lIHZpcnR1YWwgcHV0IHRvIHB1dFZpcnR1YWwKSW5k
ZXg6IFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9XZWJDb3JlLmd5cGkJKHJldmlzaW9uIDk3NTMyKQorKysgU291cmNlL1dlYkNvcmUvV2Vi
Q29yZS5neXBpCSh3b3JraW5nIGNvcHkpCkBAIC0xMzYyLDYgKzEzNjIsOCBAQAogICAgICAgICAg
ICAgJ2h0bWwvY2FudmFzL1dlYkdMQnVmZmVyLmlkbCcsCiAgICAgICAgICAgICAnaHRtbC9jYW52
YXMvV2ViR0xDb250ZXh0QXR0cmlidXRlcy5pZGwnLAogICAgICAgICAgICAgJ2h0bWwvY2FudmFz
L1dlYkdMQ29udGV4dEV2ZW50LmlkbCcsCisgICAgICAgICAgICAnaHRtbC9jYW52YXMvV2ViR0xE
ZWJ1Z1JlbmRlcmVySW5mby5pZGwnLAorICAgICAgICAgICAgJ2h0bWwvY2FudmFzL1dlYkdMRGVi
dWdTaGFkZXJzLmlkbCcsCiAgICAgICAgICAgICAnaHRtbC9jYW52YXMvV2ViR0xGcmFtZWJ1ZmZl
ci5pZGwnLAogICAgICAgICAgICAgJ2h0bWwvY2FudmFzL1dlYkdMUHJvZ3JhbS5pZGwnLAogICAg
ICAgICAgICAgJ2h0bWwvY2FudmFzL1dlYkdMUmVuZGVyYnVmZmVyLmlkbCcsCkBAIC01NjYyLDYg
KzU2NjQsMTAgQEAKICAgICAgICAgICAgICdodG1sL2NhbnZhcy9XZWJHTENvbnRleHRBdHRyaWJ1
dGVzLmgnLAogICAgICAgICAgICAgJ2h0bWwvY2FudmFzL1dlYkdMQ29udGV4dEV2ZW50LmNwcCcs
CiAgICAgICAgICAgICAnaHRtbC9jYW52YXMvV2ViR0xDb250ZXh0RXZlbnQuaCcsCisgICAgICAg
ICAgICAnaHRtbC9jYW52YXMvV2ViR0xEZWJ1Z1JlbmRlcmVySW5mby5jcHAnLAorICAgICAgICAg
ICAgJ2h0bWwvY2FudmFzL1dlYkdMRGVidWdSZW5kZXJlckluZm8uaCcsCisgICAgICAgICAgICAn
aHRtbC9jYW52YXMvV2ViR0xEZWJ1Z1NoYWRlcnMuY3BwJywKKyAgICAgICAgICAgICdodG1sL2Nh
bnZhcy9XZWJHTERlYnVnU2hhZGVycy5oJywKICAgICAgICAgICAgICdodG1sL2NhbnZhcy9XZWJH
TEV4dGVuc2lvbi5jcHAnLAogICAgICAgICAgICAgJ2h0bWwvY2FudmFzL1dlYkdMRXh0ZW5zaW9u
LmgnLAogICAgICAgICAgICAgJ2h0bWwvY2FudmFzL1dlYkdMRnJhbWVidWZmZXIuY3BwJywKSW5k
ZXg6IFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvago9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHBy
b2oJKHJldmlzaW9uIDk3NTMyKQorKysgU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ov
cHJvamVjdC5wYnhwcm9qCSh3b3JraW5nIGNvcHkpCkBAIC0zMzM2LDYgKzMzMzYsMTAgQEAKIAkJ
OUZGRTNFQTUxMUI1QTQzOTAwMzc4NzRFIC8qIEpTTWVtb3J5SW5mby5jcHAgaW4gU291cmNlcyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5RkZFM0VBMzExQjVBNDM5MDAzNzg3
NEUgLyogSlNNZW1vcnlJbmZvLmNwcCAqLzsgfTsKIAkJOUZGRTNFQTYxMUI1QTQzOTAwMzc4NzRF
IC8qIEpTTWVtb3J5SW5mby5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gOUZGRTNFQTQxMUI1QTQzOTAwMzc4NzRFIC8qIEpTTWVtb3J5SW5mby5oICovOyB9
OwogCQlBMDBCNzIxQTExREU2NDI4MDA4QUI5RkYgLyogQ2hlY2tlZEludC5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTAwQjcyMTkxMURFNjQyNzAwOEFC
OUZGIC8qIENoZWNrZWRJbnQuaCAqLzsgfTsKKwkJQTBCMEYxQ0MxNDRCNzA1NzAwMUZFOUYwIC8q
IFdlYkdMRGVidWdSZW5kZXJlckluZm8uY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gQTBCMEYxQzgxNDRCNzA1NzAwMUZFOUYwIC8qIFdlYkdMRGVidWdS
ZW5kZXJlckluZm8uY3BwICovOyB9OworCQlBMEIwRjFDRDE0NEI3MDU3MDAxRkU5RjAgLyogV2Vi
R0xEZWJ1Z1JlbmRlcmVySW5mby5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gQTBCMEYxQzkxNDRCNzA1NzAwMUZFOUYwIC8qIFdlYkdMRGVidWdSZW5kZXJl
ckluZm8uaCAqLzsgfTsKKwkJQTBCMEYxQ0UxNDRCNzA1NzAwMUZFOUYwIC8qIFdlYkdMRGVidWdT
aGFkZXJzLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IEEwQjBGMUNBMTQ0QjcwNTcwMDFGRTlGMCAvKiBXZWJHTERlYnVnU2hhZGVycy5jcHAgKi87IH07
CisJCUEwQjBGMUNGMTQ0QjcwNTcwMDFGRTlGMCAvKiBXZWJHTERlYnVnU2hhZGVycy5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTBCMEYxQ0IxNDRCNzA1
NzAwMUZFOUYwIC8qIFdlYkdMRGVidWdTaGFkZXJzLmggKi87IH07CiAJCUExMjBBQ0E0MTNGOTk4
Q0EwMEZFNEFDNyAvKiBMYXlvdXRSZXBhaW50ZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTEyMEFDQTExM0Y5OTg0NjAwRkU0QUM3IC8qIExheW91
dFJlcGFpbnRlci5jcHAgKi87IH07CiAJCUExMjUzOEQ0MTNGOUI2MEEwMDAyNDc1NCAvKiBMYXlv
dXRSZXBhaW50ZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IEExMjBBQ0EwMTNGOTk4MzcwMEZFNEFDNyAvKiBMYXlvdXRSZXBhaW50ZXIuaCAqLzsgc2V0
dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlBMTM2QTAwQzExMzRE
QkQyMDBDQzhENTAgLyogWE1MSHR0cFJlcXVlc3RQcm9ncmVzc0V2ZW50VGhyb3R0bGUuY3BwIGlu
IFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTEzNkEwMEExMTM0
REJEMjAwQ0M4RDUwIC8qIFhNTEh0dHBSZXF1ZXN0UHJvZ3Jlc3NFdmVudFRocm90dGxlLmNwcCAq
LzsgfTsKQEAgLTEwNTA3LDYgKzEwNTExLDEyIEBACiAJCTlGRkUzRUEzMTFCNUE0MzkwMDM3ODc0
RSAvKiBKU01lbW9yeUluZm8uY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRo
ID0gSlNNZW1vcnlJbmZvLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOUZGRTNF
QTQxMUI1QTQzOTAwMzc4NzRFIC8qIEpTTWVtb3J5SW5mby5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBKU01lbW9yeUluZm8uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJQTAwQjcyMTkxMURFNjQyNzAwOEFCOUZGIC8qIENoZWNrZWRJbnQuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBuYW1lID0gQ2hlY2tlZEludC5oOyBwYXRoID0gY2FudmFzL0NoZWNrZWRJ
bnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQTBCMEYxQzYxNDRCNzAyRDAwMUZF
OUYwIC8qIFdlYkdMRGVidWdSZW5kZXJlckluZm8uaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgbmFtZSA9
IFdlYkdMRGVidWdSZW5kZXJlckluZm8uaWRsOyBwYXRoID0gY2FudmFzL1dlYkdMRGVidWdSZW5k
ZXJlckluZm8uaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlBMEIwRjFDNzE0NEI3
MDNGMDAxRkU5RjAgLyogV2ViR0xEZWJ1Z1NoYWRlcnMuaWRsICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgbmFt
ZSA9IFdlYkdMRGVidWdTaGFkZXJzLmlkbDsgcGF0aCA9IGNhbnZhcy9XZWJHTERlYnVnU2hhZGVy
cy5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUEwQjBGMUM4MTQ0QjcwNTcwMDFG
RTlGMCAvKiBXZWJHTERlYnVnUmVuZGVyZXJJbmZvLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Y3BwLmNwcDsgbmFtZSA9IFdlYkdMRGVidWdSZW5kZXJlckluZm8uY3BwOyBwYXRoID0gY2FudmFz
L1dlYkdMRGVidWdSZW5kZXJlckluZm8uY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owor
CQlBMEIwRjFDOTE0NEI3MDU3MDAxRkU5RjAgLyogV2ViR0xEZWJ1Z1JlbmRlcmVySW5mby5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBXZWJHTERlYnVnUmVuZGVyZXJJbmZvLmg7
IHBhdGggPSBjYW52YXMvV2ViR0xEZWJ1Z1JlbmRlcmVySW5mby5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OworCQlBMEIwRjFDQTE0NEI3MDU3MDAxRkU5RjAgLyogV2ViR0xEZWJ1Z1NoYWRl
cnMuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0gV2ViR0xEZWJ1Z1No
YWRlcnMuY3BwOyBwYXRoID0gY2FudmFzL1dlYkdMRGVidWdTaGFkZXJzLmNwcDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQTBCMEYxQ0IxNDRCNzA1NzAwMUZFOUYwIC8qIFdlYkdMRGVi
dWdTaGFkZXJzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IFdlYkdMRGVidWdT
aGFkZXJzLmg7IHBhdGggPSBjYW52YXMvV2ViR0xEZWJ1Z1NoYWRlcnMuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJQTEyMEFDQTAxM0Y5OTgzNzAwRkU0QUM3IC8qIExheW91dFJlcGFp
bnRlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBMYXlvdXRSZXBhaW50ZXIu
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQTEyMEFDQTExM0Y5OTg0NjAwRkU0QUM3
IC8qIExheW91dFJlcGFpbnRlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBh
dGggPSBMYXlvdXRSZXBhaW50ZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlB
MTM2QTAwQTExMzREQkQyMDBDQzhENTAgLyogWE1MSHR0cFJlcXVlc3RQcm9ncmVzc0V2ZW50VGhy
b3R0bGUuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gWE1MSHR0cFJl
cXVlc3RQcm9ncmVzc0V2ZW50VGhyb3R0bGUuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwpAQCAtMTQ3OTEsNiArMTQ4MDEsMTIgQEAKIAkJNDk0ODRGQUUxMDJDRjAxRTAwMTg3REQzIC8q
IGNhbnZhcyAqLyA9IHsKIAkJCWlzYSA9IFBCWEdyb3VwOwogCQkJY2hpbGRyZW4gPSAoCisJCQkJ
QTBCMEYxQzgxNDRCNzA1NzAwMUZFOUYwIC8qIFdlYkdMRGVidWdSZW5kZXJlckluZm8uY3BwICov
LAorCQkJCUEwQjBGMUM5MTQ0QjcwNTcwMDFGRTlGMCAvKiBXZWJHTERlYnVnUmVuZGVyZXJJbmZv
LmggKi8sCisJCQkJQTBCMEYxQ0ExNDRCNzA1NzAwMUZFOUYwIC8qIFdlYkdMRGVidWdTaGFkZXJz
LmNwcCAqLywKKwkJCQlBMEIwRjFDQjE0NEI3MDU3MDAxRkU5RjAgLyogV2ViR0xEZWJ1Z1NoYWRl
cnMuaCAqLywKKwkJCQlBMEIwRjFDNzE0NEI3MDNGMDAxRkU5RjAgLyogV2ViR0xEZWJ1Z1NoYWRl
cnMuaWRsICovLAorCQkJCUEwQjBGMUM2MTQ0QjcwMkQwMDFGRTlGMCAvKiBXZWJHTERlYnVnUmVu
ZGVyZXJJbmZvLmlkbCAqLywKIAkJCQk0OUVFQ0RDQTEwNTAzQzIzMDAwOTlGQUIgLyogQXJyYXlC
dWZmZXIuY3BwICovLAogCQkJCTQ5RUVDRENCMTA1MDNDMjMwMDA5OUZBQiAvKiBBcnJheUJ1ZmZl
ci5oICovLAogCQkJCTQ5RUVDRENDMTA1MDNDMjMwMDA5OUZBQiAvKiBBcnJheUJ1ZmZlci5pZGwg
Ki8sCkBAIC0yNDYyNCw2ICsyNDY0MCw4IEBACiAJCQkJOUIzNzVFREIxNDQ3OEEwMTAwRjNDQUU1
IC8qIE1pY3JvRGF0YUl0ZW1MaXN0LmggaW4gSGVhZGVycyAqLywKIAkJCQk0OUFGMkQ2OTE0NDM1
RDA1MDAxNkE3ODQgLyogRGlzcGxheVJlZnJlc2hNb25pdG9yLmggaW4gSGVhZGVycyAqLywKIAkJ
CQk3MUNDQjQ5RDE0NDgyNEFDMDBDNjc2RDYgLyogSW1hZ2VCeVNpemVDYWNoZS5oIGluIEhlYWRl
cnMgKi8sCisJCQkJQTBCMEYxQ0QxNDRCNzA1NzAwMUZFOUYwIC8qIFdlYkdMRGVidWdSZW5kZXJl
ckluZm8uaCBpbiBIZWFkZXJzICovLAorCQkJCUEwQjBGMUNGMTQ0QjcwNTcwMDFGRTlGMCAvKiBX
ZWJHTERlYnVnU2hhZGVycy5oIGluIEhlYWRlcnMgKi8sCiAJCQkpOwogCQkJcnVuT25seUZvckRl
cGxveW1lbnRQb3N0cHJvY2Vzc2luZyA9IDA7CiAJCX07CkBAIC0yNzQ3Nyw2ICsyNzQ5NSw4IEBA
CiAJCQkJNDlBRjJENkMxNDQzNUQyMTAwMTZBNzg0IC8qIERpc3BsYXlSZWZyZXNoTW9uaXRvck1h
Yy5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk0OUZDN0E1MDE0NDRBRjVGMDBBNUQ4NjQgLyogRGlz
cGxheVJlZnJlc2hNb25pdG9yLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTcxQ0NCNDlDMTQ0ODI0
QUMwMEM2NzZENiAvKiBJbWFnZUJ5U2l6ZUNhY2hlLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCUEw
QjBGMUNDMTQ0QjcwNTcwMDFGRTlGMCAvKiBXZWJHTERlYnVnUmVuZGVyZXJJbmZvLmNwcCBpbiBT
b3VyY2VzICovLAorCQkJCUEwQjBGMUNFMTQ0QjcwNTcwMDFGRTlGMCAvKiBXZWJHTERlYnVnU2hh
ZGVycy5jcHAgaW4gU291cmNlcyAqLywKIAkJCSk7CiAJCQlydW5Pbmx5Rm9yRGVwbG95bWVudFBv
c3Rwcm9jZXNzaW5nID0gMDsKIAkJfTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pz
L0pTV2ViR0xSZW5kZXJpbmdDb250ZXh0Q3VzdG9tLmNwcAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9qcy9KU1dlYkdMUmVuZGVyaW5nQ29udGV4dEN1c3RvbS5jcHAJKHJl
dmlzaW9uIDk3NTMyKQorKysgU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNXZWJHTFJlbmRl
cmluZ0NvbnRleHRDdXN0b20uY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yOSw0MiArMjksNDQgQEAK
IAogI2luY2x1ZGUgIkpTV2ViR0xSZW5kZXJpbmdDb250ZXh0LmgiCiAKLSNpbmNsdWRlICJXZWJL
aXRMb3NlQ29udGV4dC5oIgogI2luY2x1ZGUgIkV4Y2VwdGlvbkNvZGUuaCIKKyNpbmNsdWRlICJG
bG9hdDMyQXJyYXkuaCIKICNpbmNsdWRlICJIVE1MQ2FudmFzRWxlbWVudC5oIgogI2luY2x1ZGUg
IkhUTUxJbWFnZUVsZW1lbnQuaCIKLSNpbmNsdWRlICJKU1dlYktpdExvc2VDb250ZXh0LmgiCisj
aW5jbHVkZSAiSW50MzJBcnJheS5oIgorI2luY2x1ZGUgIkpTRmxvYXQzMkFycmF5LmgiCiAjaW5j
bHVkZSAiSlNIVE1MQ2FudmFzRWxlbWVudC5oIgogI2luY2x1ZGUgIkpTSFRNTEltYWdlRWxlbWVu
dC5oIgogI2luY2x1ZGUgIkpTSW1hZ2VEYXRhLmgiCisjaW5jbHVkZSAiSlNJbnQzMkFycmF5Lmgi
CiAjaW5jbHVkZSAiSlNPRVNTdGFuZGFyZERlcml2YXRpdmVzLmgiCiAjaW5jbHVkZSAiSlNPRVNU
ZXh0dXJlRmxvYXQuaCIKICNpbmNsdWRlICJKU09FU1ZlcnRleEFycmF5T2JqZWN0LmgiCi0jaW5j
bHVkZSAiSlNXZWJHTFZlcnRleEFycmF5T2JqZWN0T0VTLmgiCisjaW5jbHVkZSAiSlNVaW50OEFy
cmF5LmgiCiAjaW5jbHVkZSAiSlNXZWJHTEJ1ZmZlci5oIgotI2luY2x1ZGUgIkpTRmxvYXQzMkFy
cmF5LmgiCiAjaW5jbHVkZSAiSlNXZWJHTEZyYW1lYnVmZmVyLmgiCi0jaW5jbHVkZSAiSlNJbnQz
MkFycmF5LmgiCiAjaW5jbHVkZSAiSlNXZWJHTFByb2dyYW0uaCIKICNpbmNsdWRlICJKU1dlYkdM
UmVuZGVyYnVmZmVyLmgiCiAjaW5jbHVkZSAiSlNXZWJHTFNoYWRlci5oIgogI2luY2x1ZGUgIkpT
V2ViR0xUZXh0dXJlLmgiCiAjaW5jbHVkZSAiSlNXZWJHTFVuaWZvcm1Mb2NhdGlvbi5oIgotI2lu
Y2x1ZGUgIkpTVWludDhBcnJheS5oIgorI2luY2x1ZGUgIkpTV2ViR0xWZXJ0ZXhBcnJheU9iamVj
dE9FUy5oIgogI2luY2x1ZGUgIkpTV2ViS2l0Q1NTTWF0cml4LmgiCisjaW5jbHVkZSAiSlNXZWJL
aXRMb3NlQ29udGV4dC5oIgogI2luY2x1ZGUgIk5vdEltcGxlbWVudGVkLmgiCiAjaW5jbHVkZSAi
T0VTU3RhbmRhcmREZXJpdmF0aXZlcy5oIgogI2luY2x1ZGUgIk9FU1RleHR1cmVGbG9hdC5oIgog
I2luY2x1ZGUgIk9FU1ZlcnRleEFycmF5T2JqZWN0LmgiCi0jaW5jbHVkZSAiV2ViR0xWZXJ0ZXhB
cnJheU9iamVjdE9FUy5oIgogI2luY2x1ZGUgIldlYkdMQnVmZmVyLmgiCi0jaW5jbHVkZSAiRmxv
YXQzMkFycmF5LmgiCisjaW5jbHVkZSAiV2ViR0xEZWJ1Z1JlbmRlcmVySW5mby5oIgorI2luY2x1
ZGUgIldlYkdMRGVidWdTaGFkZXJzLmgiCiAjaW5jbHVkZSAiV2ViR0xFeHRlbnNpb24uaCIKICNp
bmNsdWRlICJXZWJHTEZyYW1lYnVmZmVyLmgiCiAjaW5jbHVkZSAiV2ViR0xHZXRJbmZvLmgiCi0j
aW5jbHVkZSAiSW50MzJBcnJheS5oIgogI2luY2x1ZGUgIldlYkdMUHJvZ3JhbS5oIgogI2luY2x1
ZGUgIldlYkdMUmVuZGVyaW5nQ29udGV4dC5oIgorI2luY2x1ZGUgIldlYkdMVmVydGV4QXJyYXlP
YmplY3RPRVMuaCIKKyNpbmNsdWRlICJXZWJLaXRMb3NlQ29udGV4dC5oIgogI2luY2x1ZGUgPHJ1
bnRpbWUvRXJyb3IuaD4KICNpbmNsdWRlIDxydW50aW1lL0pTQXJyYXkuaD4KICNpbmNsdWRlIDx3
dGYvRmFzdE1hbGxvYy5oPgpAQCAtMTg3LDYgKzE4OSwxMCBAQCBzdGF0aWMgSlNWYWx1ZSB0b0pT
KEV4ZWNTdGF0ZSogZXhlYywgSlNECiAgICAgICAgIHJldHVybiB0b0pTKGV4ZWMsIGdsb2JhbE9i
amVjdCwgc3RhdGljX2Nhc3Q8T0VTVGV4dHVyZUZsb2F0Kj4oZXh0ZW5zaW9uKSk7CiAgICAgY2Fz
ZSBXZWJHTEV4dGVuc2lvbjo6T0VTVmVydGV4QXJyYXlPYmplY3ROYW1lOgogICAgICAgICByZXR1
cm4gdG9KUyhleGVjLCBnbG9iYWxPYmplY3QsIHN0YXRpY19jYXN0PE9FU1ZlcnRleEFycmF5T2Jq
ZWN0Kj4oZXh0ZW5zaW9uKSk7CisgICAgY2FzZSBXZWJHTEV4dGVuc2lvbjo6V2ViR0xEZWJ1Z1Jl
bmRlcmVySW5mb05hbWU6CisgICAgICAgIHJldHVybiB0b0pTKGV4ZWMsIGdsb2JhbE9iamVjdCwg
c3RhdGljX2Nhc3Q8V2ViR0xEZWJ1Z1JlbmRlcmVySW5mbyo+KGV4dGVuc2lvbikpOworICAgIGNh
c2UgV2ViR0xFeHRlbnNpb246OldlYkdMRGVidWdTaGFkZXJzTmFtZToKKyAgICAgICAgcmV0dXJu
IHRvSlMoZXhlYywgZ2xvYmFsT2JqZWN0LCBzdGF0aWNfY2FzdDxXZWJHTERlYnVnU2hhZGVycyo+
KGV4dGVuc2lvbikpOwogICAgIH0KICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKICAgICByZXR1
cm4ganNOdWxsKCk7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0b20vVjhX
ZWJHTFJlbmRlcmluZ0NvbnRleHRDdXN0b20uY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9WOFdlYkdMUmVuZGVyaW5nQ29udGV4dEN1c3RvbS5jcHAJ
KHJldmlzaW9uIDk3NTMyKQorKysgU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4
V2ViR0xSZW5kZXJpbmdDb250ZXh0Q3VzdG9tLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNTYsNiAr
NTYsOCBAQAogI2luY2x1ZGUgIlY4VWludDMyQXJyYXkuaCIKICNpbmNsdWRlICJWOFVpbnQ4QXJy
YXkuaCIKICNpbmNsdWRlICJWOFdlYkdMQnVmZmVyLmgiCisjaW5jbHVkZSAiVjhXZWJHTERlYnVn
UmVuZGVyZXJJbmZvLmgiCisjaW5jbHVkZSAiVjhXZWJHTERlYnVnU2hhZGVycy5oIgogI2luY2x1
ZGUgIlY4V2ViR0xGcmFtZWJ1ZmZlci5oIgogI2luY2x1ZGUgIlY4V2ViR0xQcm9ncmFtLmgiCiAj
aW5jbHVkZSAiVjhXZWJHTFJlbmRlcmJ1ZmZlci5oIgpAQCAtMTgyLDYgKzE4NCwxNCBAQCBzdGF0
aWMgdjg6OkhhbmRsZTx2ODo6VmFsdWU+IHRvVjhPYmplY3QoCiAgICAgICAgIGV4dGVuc2lvbk9i
amVjdCA9IHRvVjgoc3RhdGljX2Nhc3Q8T0VTVmVydGV4QXJyYXlPYmplY3QqPihleHRlbnNpb24p
KTsKICAgICAgICAgcmVmZXJlbmNlTmFtZSA9ICJvZXNWZXJ0ZXhBcnJheU9iamVjdE5hbWUiOwog
ICAgICAgICBicmVhazsKKyAgICBjYXNlIFdlYkdMRXh0ZW5zaW9uOjpXZWJHTERlYnVnUmVuZGVy
ZXJJbmZvTmFtZToKKyAgICAgICAgZXh0ZW5zaW9uT2JqZWN0ID0gdG9WOChzdGF0aWNfY2FzdDxX
ZWJHTERlYnVnUmVuZGVyZXJJbmZvKj4oZXh0ZW5zaW9uKSk7CisgICAgICAgIHJlZmVyZW5jZU5h
bWUgPSAid2ViR0xEZWJ1Z1JlbmRlcmVySW5mb05hbWUiOworICAgICAgICBicmVhazsKKyAgICBj
YXNlIFdlYkdMRXh0ZW5zaW9uOjpXZWJHTERlYnVnU2hhZGVyc05hbWU6CisgICAgICAgIGV4dGVu
c2lvbk9iamVjdCA9IHRvVjgoc3RhdGljX2Nhc3Q8V2ViR0xEZWJ1Z1NoYWRlcnMqPihleHRlbnNp
b24pKTsKKyAgICAgICAgcmVmZXJlbmNlTmFtZSA9ICJ3ZWJHTERlYnVnU2hhZGVyc05hbWUiOwor
ICAgICAgICBicmVhazsKICAgICB9CiAgICAgQVNTRVJUKCFleHRlbnNpb25PYmplY3QuSXNFbXB0
eSgpKTsKICAgICBWOERPTVdyYXBwZXI6OnNldE5hbWVkSGlkZGVuUmVmZXJlbmNlKGNvbnRleHRP
YmplY3QsIHJlZmVyZW5jZU5hbWUsIGV4dGVuc2lvbk9iamVjdCk7CkluZGV4OiBTb3VyY2UvV2Vi
Q29yZS9odG1sL2NhbnZhcy9XZWJHTERlYnVnUmVuZGVyZXJJbmZvLmNwcAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTERlYnVnUmVuZGVyZXJJbmZvLmNwcAko
cmV2aXNpb24gMCkKKysrIFNvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMRGVidWdSZW5k
ZXJlckluZm8uY3BwCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDU3IEBACisvKgorICogQ29weXJp
Z2h0IChDKSAyMDExIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKgorICogMS4gIFJlZGlzdHJpYnV0
aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyLgorICogMi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJv
ZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgIGRvY3Vt
ZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmli
dXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBBTkQgSVRT
IENPTlRSSUJVVE9SUyAiQVMgSVMiIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQKKyAqIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIg
UFVSUE9TRSBBUkUKKyAqIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIE9SIElU
UyBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkKKyAqIERJUkVDVCwgSU5ESVJFQ1QsIElO
Q0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTCisg
KiAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRV
VEUgR09PRFMgT1IgU0VSVklDRVM7CisgKiBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsg
T1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQKKyAqIE9OIEFOWSBU
SEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZ
LCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5H
IElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YKKyAqIFRISVMgU09GVFdBUkUsIEVWRU4gSUYg
QURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1
ZGUgImNvbmZpZy5oIgorCisjaWYgRU5BQkxFKFdFQkdMKQorCisjaW5jbHVkZSAiV2ViR0xEZWJ1
Z1JlbmRlcmVySW5mby5oIgorCisjaW5jbHVkZSAiV2ViR0xSZW5kZXJpbmdDb250ZXh0LmgiCisK
K25hbWVzcGFjZSBXZWJDb3JlIHsKKworV2ViR0xEZWJ1Z1JlbmRlcmVySW5mbzo6V2ViR0xEZWJ1
Z1JlbmRlcmVySW5mbyhXZWJHTFJlbmRlcmluZ0NvbnRleHQqIGNvbnRleHQpCisgICAgOiBXZWJH
TEV4dGVuc2lvbihjb250ZXh0KQoreworfQorCitXZWJHTERlYnVnUmVuZGVyZXJJbmZvOjp+V2Vi
R0xEZWJ1Z1JlbmRlcmVySW5mbygpCit7Cit9CisKK1dlYkdMRXh0ZW5zaW9uOjpFeHRlbnNpb25O
YW1lIFdlYkdMRGVidWdSZW5kZXJlckluZm86OmdldE5hbWUoKSBjb25zdAoreworICAgIHJldHVy
biBXZWJHTERlYnVnUmVuZGVyZXJJbmZvTmFtZTsKK30KKworUGFzc093blB0cjxXZWJHTERlYnVn
UmVuZGVyZXJJbmZvPiBXZWJHTERlYnVnUmVuZGVyZXJJbmZvOjpjcmVhdGUoV2ViR0xSZW5kZXJp
bmdDb250ZXh0KiBjb250ZXh0KQoreworICAgIHJldHVybiBhZG9wdFB0cihuZXcgV2ViR0xEZWJ1
Z1JlbmRlcmVySW5mbyhjb250ZXh0KSk7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKwor
I2VuZGlmIC8vIEVOQUJMRShXRUJHTCkKClByb3BlcnR5IGNoYW5nZXMgb246IFNvdXJjZS9XZWJD
b3JlL2h0bWwvY2FudmFzL1dlYkdMRGVidWdSZW5kZXJlckluZm8uY3BwCl9fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KQWRk
ZWQ6IHN2bjplb2wtc3R5bGUKICAgKyBMRgoKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2h0bWwvY2Fu
dmFzL1dlYkdMRGVidWdSZW5kZXJlckluZm8uaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29y
ZS9odG1sL2NhbnZhcy9XZWJHTERlYnVnUmVuZGVyZXJJbmZvLmgJKHJldmlzaW9uIDApCisrKyBT
b3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTERlYnVnUmVuZGVyZXJJbmZvLmgJKHJldmlz
aW9uIDApCkBAIC0wLDAgKzEsNTIgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTEgR29vZ2xl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cworICogYXJlIG1ldDoKKyAqCisgKiAxLiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2Rl
IG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiAgUmVk
aXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3Ro
ZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElT
IFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIEFORCBJVFMgQ09OVFJJQlVUT1JTICJBUyBJ
UyIgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAorICogV0FSUkFOVElFUyBPRiBNRVJDSEFO
VEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRQorICogRElT
Q0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgT1IgSVRTIENPTlRSSUJVVE9SUyBCRSBM
SUFCTEUgRk9SIEFOWQorICogRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwg
RVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMKKyAqIChJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNF
UzsKKyAqIExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJV
UFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORAorICogT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFks
IFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNM
VURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0Yg
VEhFIFVTRSBPRgorICogVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVmIFdlYkdMRGVidWdSZW5kZXJl
ckluZm9faAorI2RlZmluZSBXZWJHTERlYnVnUmVuZGVyZXJJbmZvX2gKKworI2luY2x1ZGUgIldl
YkdMRXh0ZW5zaW9uLmgiCisjaW5jbHVkZSA8d3RmL1Bhc3NPd25QdHIuaD4KKworbmFtZXNwYWNl
IFdlYkNvcmUgeworCitjbGFzcyBXZWJHTERlYnVnUmVuZGVyZXJJbmZvIDogcHVibGljIFdlYkdM
RXh0ZW5zaW9uIHsKK3B1YmxpYzoKKyAgICBlbnVtIEVudW1UeXBlIHsKKyAgICAgICAgVU5NQVNL
RURfVkVORE9SX1dFQkdMID0gMHg5MjQ1LAorICAgICAgICBVTk1BU0tFRF9SRU5ERVJFUl9XRUJH
TCA9IDB4OTI0NgorICAgIH07CisKKyAgICBzdGF0aWMgUGFzc093blB0cjxXZWJHTERlYnVnUmVu
ZGVyZXJJbmZvPiBjcmVhdGUoV2ViR0xSZW5kZXJpbmdDb250ZXh0Kik7CisKKyAgICB2aXJ0dWFs
IH5XZWJHTERlYnVnUmVuZGVyZXJJbmZvKCk7CisgICAgdmlydHVhbCBFeHRlbnNpb25OYW1lIGdl
dE5hbWUoKSBjb25zdDsKKworcHJpdmF0ZToKKyAgICBXZWJHTERlYnVnUmVuZGVyZXJJbmZvKFdl
YkdMUmVuZGVyaW5nQ29udGV4dCopOworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisj
ZW5kaWYgLy8gV2ViR0xEZWJ1Z1JlbmRlcmVySW5mb19oCgpQcm9wZXJ0eSBjaGFuZ2VzIG9uOiBT
b3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTERlYnVnUmVuZGVyZXJJbmZvLmgKX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fXwpBZGRlZDogc3ZuOmVvbC1zdHlsZQogICArIExGCgpJbmRleDogU291cmNlL1dlYkNvcmUv
aHRtbC9jYW52YXMvV2ViR0xEZWJ1Z1JlbmRlcmVySW5mby5pZGwKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xEZWJ1Z1JlbmRlcmVySW5mby5pZGwJKHJldmlz
aW9uIDApCisrKyBTb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTERlYnVnUmVuZGVyZXJJ
bmZvLmlkbAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSwzNiBAQAorLyoKKyAqIENvcHlyaWdodCAo
QykgMjAxMSBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICoKKyAqIDEuICBSZWRpc3RyaWJ1dGlvbnMg
b2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ci4KKyAqIDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2Ug
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgICBkb2N1bWVudGF0
aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9u
LgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgQU5EIElUUyBDT05U
UklCVVRPUlMgIkFTIElTIiBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElF
UywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVECisgKiBXQVJSQU5U
SUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBP
U0UgQVJFCisgKiBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBPUiBJVFMgQ09O
VFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZCisgKiBESVJFQ1QsIElORElSRUNULCBJTkNJREVO
VEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUworICogKElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdP
T0RTIE9SIFNFUlZJQ0VTOworICogTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJV
U0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5ECisgKiBPTiBBTlkgVEhFT1JZ
IE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1Ig
VE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBB
TlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GCisgKiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklT
RUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKK21vZHVsZSBodG1s
IHsKKyAgICBpbnRlcmZhY2UgWworICAgICAgICBDb25kaXRpb25hbD1XRUJHTCwKKyAgICAgICAg
R2VuZXJhdGVJc1JlYWNoYWJsZT1JbXBsQ29udGV4dCwKKyAgICAgICAgT21pdENvbnN0cnVjdG9y
LAorICAgICAgICBEb250Q2hlY2tFbnVtcworICAgIF0gV2ViR0xEZWJ1Z1JlbmRlcmVySW5mbyB7
CisgICAgICAgIGNvbnN0IHVuc2lnbmVkIGludCBVTk1BU0tFRF9WRU5ET1JfV0VCR0wgPSAweDky
NDU7CisgICAgICAgIGNvbnN0IHVuc2lnbmVkIGludCBVTk1BU0tFRF9SRU5ERVJFUl9XRUJHTCA9
IDB4OTI0NjsKKyAgICB9OworfQoKUHJvcGVydHkgY2hhbmdlcyBvbjogU291cmNlL1dlYkNvcmUv
aHRtbC9jYW52YXMvV2ViR0xEZWJ1Z1JlbmRlcmVySW5mby5pZGwKX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpBZGRlZDog
c3ZuOmVvbC1zdHlsZQogICArIExGCgpJbmRleDogU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMv
V2ViR0xEZWJ1Z1NoYWRlcnMuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2h0bWwv
Y2FudmFzL1dlYkdMRGVidWdTaGFkZXJzLmNwcAkocmV2aXNpb24gMCkKKysrIFNvdXJjZS9XZWJD
b3JlL2h0bWwvY2FudmFzL1dlYkdMRGVidWdTaGFkZXJzLmNwcAkocmV2aXNpb24gMCkKQEAgLTAs
MCArMSw3MSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMSBHb29nbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0
OgorICoKKyAqIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4g
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuICBSZWRpc3RyaWJ1dGlvbnMg
aW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lciBpbiB0aGUKKyAqICAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMg
cHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMg
UFJPVklERUQgQlkgQVBQTEUgQU5EIElUUyBDT05UUklCVVRPUlMgIkFTIElTIiBBTkQgQU5ZCisg
KiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sIFRIRSBJTVBMSUVECisgKiBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQg
RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCisgKiBESVNDTEFJTUVELiBJTiBO
TyBFVkVOVCBTSEFMTCBBUFBMRSBPUiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5Z
CisgKiBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9S
IENPTlNFUVVFTlRJQUwgREFNQUdFUworICogKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOworICogTE9TUyBP
RiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZF
UiBDQVVTRUQgQU5ECisgKiBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBD
T05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdF
TkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GCisg
KiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNV
Q0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKworI2lmIEVOQUJMRShXRUJH
TCkKKworI2luY2x1ZGUgIldlYkdMRGVidWdTaGFkZXJzLmgiCisKKyNpbmNsdWRlICJFeHRlbnNp
b25zM0QuaCIKKyNpbmNsdWRlICJXZWJHTFJlbmRlcmluZ0NvbnRleHQuaCIKKyNpbmNsdWRlICJX
ZWJHTFNoYWRlci5oIgorCisjaW5jbHVkZSA8d3RmL093bkFycmF5UHRyLmg+CisKK25hbWVzcGFj
ZSBXZWJDb3JlIHsKKworV2ViR0xEZWJ1Z1NoYWRlcnM6OldlYkdMRGVidWdTaGFkZXJzKFdlYkdM
UmVuZGVyaW5nQ29udGV4dCogY29udGV4dCkKKyAgICA6IFdlYkdMRXh0ZW5zaW9uKGNvbnRleHQp
Cit7Cit9CisKK1dlYkdMRGVidWdTaGFkZXJzOjp+V2ViR0xEZWJ1Z1NoYWRlcnMoKQoreworfQor
CitXZWJHTEV4dGVuc2lvbjo6RXh0ZW5zaW9uTmFtZSBXZWJHTERlYnVnU2hhZGVyczo6Z2V0TmFt
ZSgpIGNvbnN0Cit7CisgICAgcmV0dXJuIFdlYkdMRGVidWdTaGFkZXJzTmFtZTsKK30KKworUGFz
c093blB0cjxXZWJHTERlYnVnU2hhZGVycz4gV2ViR0xEZWJ1Z1NoYWRlcnM6OmNyZWF0ZShXZWJH
TFJlbmRlcmluZ0NvbnRleHQqIGNvbnRleHQpCit7CisgICAgcmV0dXJuIGFkb3B0UHRyKG5ldyBX
ZWJHTERlYnVnU2hhZGVycyhjb250ZXh0KSk7Cit9CisKK1N0cmluZyBXZWJHTERlYnVnU2hhZGVy
czo6Z2V0VHJhbnNsYXRlZFNoYWRlclNvdXJjZShXZWJHTFNoYWRlciogc2hhZGVyLCBFeGNlcHRp
b25Db2RlJiBlYykKK3sKKyAgICBVTlVTRURfUEFSQU0oZWMpOworICAgIGlmIChtX2NvbnRleHQt
PmlzQ29udGV4dExvc3QoKSkKKyAgICAgICAgcmV0dXJuIFN0cmluZygpOworICAgIGlmICghbV9j
b250ZXh0LT52YWxpZGF0ZVdlYkdMT2JqZWN0KHNoYWRlcikpCisgICAgICAgIHJldHVybiAiIjsK
KyAgICByZXR1cm4gbV9jb250ZXh0LT5ncmFwaGljc0NvbnRleHQzRCgpLT5nZXRFeHRlbnNpb25z
KCktPmdldFRyYW5zbGF0ZWRTaGFkZXJTb3VyY2VBTkdMRShzaGFkZXItPm9iamVjdCgpKTsKK30K
KworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gRU5BQkxFKFdFQkdMKQoKUHJv
cGVydHkgY2hhbmdlcyBvbjogU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xEZWJ1Z1No
YWRlcnMuY3BwCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX18KQWRkZWQ6IHN2bjplb2wtc3R5bGUKICAgKyBMRgoKSW5kZXg6
IFNvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMRGVidWdTaGFkZXJzLmgKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xEZWJ1Z1NoYWRlcnMuaAkocmV2
aXNpb24gMCkKKysrIFNvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMRGVidWdTaGFkZXJz
LmgJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsNTIgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIw
MTEgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAq
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqCisgKiAxLiAgUmVkaXN0cmlidXRpb25zIG9mIHNv
dXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisg
KiAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICAgZG9jdW1lbnRhdGlvbiBh
bmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAq
CisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIEFORCBJVFMgQ09OVFJJQlVU
T1JTICJBUyBJUyIgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAorICogV0FSUkFOVElFUyBP
RiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFS
RQorICogRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgT1IgSVRTIENPTlRSSUJV
VE9SUyBCRSBMSUFCTEUgRk9SIEFOWQorICogRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwg
U1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMKKyAqIChJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBP
UiBTRVJWSUNFUzsKKyAqIExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVT
UyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORAorICogT04gQU5ZIFRIRU9SWSBPRiBM
SUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQK
KyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdB
WSBPVVQgT0YgVEhFIFVTRSBPRgorICogVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9G
IFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVmIFdlYkdMRGVi
dWdTaGFkZXJzX2gKKyNkZWZpbmUgV2ViR0xEZWJ1Z1NoYWRlcnNfaAorCisjaW5jbHVkZSAiRXhj
ZXB0aW9uQ29kZS5oIgorI2luY2x1ZGUgIldlYkdMRXh0ZW5zaW9uLmgiCisjaW5jbHVkZSA8d3Rm
L1Bhc3NPd25QdHIuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBXZWJHTFNoYWRl
cjsKKworY2xhc3MgV2ViR0xEZWJ1Z1NoYWRlcnMgOiBwdWJsaWMgV2ViR0xFeHRlbnNpb24gewor
cHVibGljOgorICAgIHN0YXRpYyBQYXNzT3duUHRyPFdlYkdMRGVidWdTaGFkZXJzPiBjcmVhdGUo
V2ViR0xSZW5kZXJpbmdDb250ZXh0Kik7CisKKyAgICB2aXJ0dWFsIH5XZWJHTERlYnVnU2hhZGVy
cygpOworICAgIHZpcnR1YWwgRXh0ZW5zaW9uTmFtZSBnZXROYW1lKCkgY29uc3Q7CisKKyAgICBT
dHJpbmcgZ2V0VHJhbnNsYXRlZFNoYWRlclNvdXJjZShXZWJHTFNoYWRlciosIEV4Y2VwdGlvbkNv
ZGUmKTsKKworcHJpdmF0ZToKKyAgICBXZWJHTERlYnVnU2hhZGVycyhXZWJHTFJlbmRlcmluZ0Nv
bnRleHQqKTsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIFdlYkdM
RGVidWdTaGFkZXJzX2gKClByb3BlcnR5IGNoYW5nZXMgb246IFNvdXJjZS9XZWJDb3JlL2h0bWwv
Y2FudmFzL1dlYkdMRGVidWdTaGFkZXJzLmgKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpBZGRlZDogc3ZuOmVvbC1zdHls
ZQogICArIExGCgpJbmRleDogU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xEZWJ1Z1No
YWRlcnMuaWRsCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdM
RGVidWdTaGFkZXJzLmlkbAkocmV2aXNpb24gMCkKKysrIFNvdXJjZS9XZWJDb3JlL2h0bWwvY2Fu
dmFzL1dlYkdMRGVidWdTaGFkZXJzLmlkbAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSwzNCBAQAor
LyoKKyAqIENvcHlyaWdodCAoQykgMjAxMSBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICoKKyAqIDEu
ICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZv
cm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUK
KyAqICAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0
aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkg
QVBQTEUgQU5EIElUUyBDT05UUklCVVRPUlMgIkFTIElTIiBBTkQgQU5ZCisgKiBFWFBSRVNTIE9S
IElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJ
TVBMSUVECisgKiBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1Ig
QSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCisgKiBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFM
TCBBUFBMRSBPUiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZCisgKiBESVJFQ1Qs
IElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJ
QUwgREFNQUdFUworICogKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVO
VCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOworICogTE9TUyBPRiBVU0UsIERBVEEs
IE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5E
CisgKiBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RS
SUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVS
V0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GCisgKiBUSElTIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgor
ICovCisKK21vZHVsZSBodG1sIHsKKyAgICBpbnRlcmZhY2UgWworICAgICAgICBDb25kaXRpb25h
bD1XRUJHTCwKKyAgICAgICAgR2VuZXJhdGVJc1JlYWNoYWJsZT1JbXBsQ29udGV4dCwKKyAgICAg
ICAgT21pdENvbnN0cnVjdG9yCisgICAgXSBXZWJHTERlYnVnU2hhZGVycyB7CisgICAgICAgIFtT
dHJpY3RUeXBlQ2hlY2tpbmcsIENvbnZlcnROdWxsU3RyaW5nVG89TnVsbF0gRE9NU3RyaW5nIGdl
dFRyYW5zbGF0ZWRTaGFkZXJTb3VyY2UoaW4gV2ViR0xTaGFkZXIgc2hhZGVyKSByYWlzZXMoRE9N
RXhjZXB0aW9uKTsKKyAgICB9OworfQoKUHJvcGVydHkgY2hhbmdlcyBvbjogU291cmNlL1dlYkNv
cmUvaHRtbC9jYW52YXMvV2ViR0xEZWJ1Z1NoYWRlcnMuaWRsCl9fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KQWRkZWQ6IHN2
bjplb2wtc3R5bGUKICAgKyBMRgoKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dl
YkdMRXh0ZW5zaW9uLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMv
V2ViR0xFeHRlbnNpb24uaAkocmV2aXNpb24gOTc1MzIpCisrKyBTb3VyY2UvV2ViQ29yZS9odG1s
L2NhbnZhcy9XZWJHTEV4dGVuc2lvbi5oCSh3b3JraW5nIGNvcHkpCkBAIC0zOCw2ICszOCw4IEBA
IHB1YmxpYzoKICAgICAgICAgT0VTVGV4dHVyZUZsb2F0TmFtZSwKICAgICAgICAgT0VTU3RhbmRh
cmREZXJpdmF0aXZlc05hbWUsCiAgICAgICAgIE9FU1ZlcnRleEFycmF5T2JqZWN0TmFtZSwKKyAg
ICAgICAgV2ViR0xEZWJ1Z1JlbmRlcmVySW5mb05hbWUsCisgICAgICAgIFdlYkdMRGVidWdTaGFk
ZXJzTmFtZSwKICAgICB9OwogCiAgICAgdm9pZCByZWYoKSB7IG1fY29udGV4dC0+cmVmKCk7IH0K
SW5kZXg6IFNvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMUmVuZGVyaW5nQ29udGV4dC5j
cHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xSZW5kZXJp
bmdDb250ZXh0LmNwcAkocmV2aXNpb24gOTc1MzIpCisrKyBTb3VyY2UvV2ViQ29yZS9odG1sL2Nh
bnZhcy9XZWJHTFJlbmRlcmluZ0NvbnRleHQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zMiw3ICsz
Miw2IEBACiAjaW5jbHVkZSAiQ2FjaGVkSW1hZ2UuaCIKICNpbmNsdWRlICJDYW52YXNQaXhlbEFy
cmF5LmgiCiAjaW5jbHVkZSAiQ2hlY2tlZEludC5oIgotI2luY2x1ZGUgIldlYktpdExvc2VDb250
ZXh0LmgiCiAjaW5jbHVkZSAiQ29uc29sZS5oIgogI2luY2x1ZGUgIkRPTVdpbmRvdy5oIgogI2lu
Y2x1ZGUgIkV4dGVuc2lvbnMzRC5oIgpAQCAtNTcsMTIgKzU2LDE1IEBACiAjaW5jbHVkZSAiV2Vi
R0xCdWZmZXIuaCIKICNpbmNsdWRlICJXZWJHTENvbnRleHRBdHRyaWJ1dGVzLmgiCiAjaW5jbHVk
ZSAiV2ViR0xDb250ZXh0RXZlbnQuaCIKKyNpbmNsdWRlICJXZWJHTERlYnVnUmVuZGVyZXJJbmZv
LmgiCisjaW5jbHVkZSAiV2ViR0xEZWJ1Z1NoYWRlcnMuaCIKICNpbmNsdWRlICJXZWJHTEZyYW1l
YnVmZmVyLmgiCiAjaW5jbHVkZSAiV2ViR0xQcm9ncmFtLmgiCiAjaW5jbHVkZSAiV2ViR0xSZW5k
ZXJidWZmZXIuaCIKICNpbmNsdWRlICJXZWJHTFNoYWRlci5oIgogI2luY2x1ZGUgIldlYkdMVGV4
dHVyZS5oIgogI2luY2x1ZGUgIldlYkdMVW5pZm9ybUxvY2F0aW9uLmgiCisjaW5jbHVkZSAiV2Vi
S2l0TG9zZUNvbnRleHQuaCIKIAogI2luY2x1ZGUgPHd0Zi9CeXRlQXJyYXkuaD4KICNpbmNsdWRl
IDx3dGYvT3duQXJyYXlQdHIuaD4KQEAgLTQ3Myw2ICs0NzUsMTIgQEAgdm9pZCBXZWJHTFJlbmRl
cmluZ0NvbnRleHQ6OnNldHVwRmxhZ3MoKQogICAgIH0KIH0KIAorYm9vbCBXZWJHTFJlbmRlcmlu
Z0NvbnRleHQ6OmFsbG93UHJpdmlsZWdlZEV4dGVuc2lvbnMoKSBjb25zdAoreworICAgIC8vIEZJ
WE1FOiBpbXBsZW1lbnQgdGhpcyBmdW5jdGlvbi4KKyAgICByZXR1cm4gZmFsc2U7Cit9CisKIFdl
YkdMUmVuZGVyaW5nQ29udGV4dDo6fldlYkdMUmVuZGVyaW5nQ29udGV4dCgpCiB7CiAgICAgZGV0
YWNoQW5kUmVtb3ZlQWxsT2JqZWN0cygpOwpAQCAtMTk5OSw2ICsyMDA3LDI4IEBAIFdlYkdMRXh0
ZW5zaW9uKiBXZWJHTFJlbmRlcmluZ0NvbnRleHQ6OmcKICAgICAgICAgICAgIG1fd2Via2l0TG9z
ZUNvbnRleHQgPSBXZWJLaXRMb3NlQ29udGV4dDo6Y3JlYXRlKHRoaXMpOwogICAgICAgICByZXR1
cm4gbV93ZWJraXRMb3NlQ29udGV4dC5nZXQoKTsKICAgICB9CisgICAgaWYgKGVxdWFsSWdub3Jp
bmdDYXNlKG5hbWUsICJPRVNfc3RhbmRhcmRfZGVyaXZhdGl2ZXMiKQorICAgICAgICAmJiBtX2Nv
bnRleHQtPmdldEV4dGVuc2lvbnMoKS0+c3VwcG9ydHMoIkdMX09FU19zdGFuZGFyZF9kZXJpdmF0
aXZlcyIpKSB7CisgICAgICAgIGlmICghbV9vZXNTdGFuZGFyZERlcml2YXRpdmVzKSB7CisgICAg
ICAgICAgICBtX2NvbnRleHQtPmdldEV4dGVuc2lvbnMoKS0+ZW5zdXJlRW5hYmxlZCgiR0xfT0VT
X3N0YW5kYXJkX2Rlcml2YXRpdmVzIik7CisgICAgICAgICAgICBtX29lc1N0YW5kYXJkRGVyaXZh
dGl2ZXMgPSBPRVNTdGFuZGFyZERlcml2YXRpdmVzOjpjcmVhdGUodGhpcyk7CisgICAgICAgIH0K
KyAgICAgICAgcmV0dXJuIG1fb2VzU3RhbmRhcmREZXJpdmF0aXZlcy5nZXQoKTsKKyAgICB9CisK
KyAgICBpZiAoYWxsb3dQcml2aWxlZ2VkRXh0ZW5zaW9ucygpKSB7CisgICAgICAgIGlmIChlcXVh
bElnbm9yaW5nQ2FzZShuYW1lLCAiV0VCR0xfZGVidWdfcmVuZGVyZXJfaW5mbyIpKSB7CisgICAg
ICAgICAgICBpZiAoIW1fd2ViZ2xEZWJ1Z1JlbmRlcmVySW5mbykKKyAgICAgICAgICAgICAgICBt
X3dlYmdsRGVidWdSZW5kZXJlckluZm8gPSBXZWJHTERlYnVnUmVuZGVyZXJJbmZvOjpjcmVhdGUo
dGhpcyk7CisgICAgICAgICAgICByZXR1cm4gbV93ZWJnbERlYnVnUmVuZGVyZXJJbmZvLmdldCgp
OworICAgICAgICB9CisgICAgICAgIGlmIChlcXVhbElnbm9yaW5nQ2FzZShuYW1lLCAiV0VCR0xf
ZGVidWdfc2hhZGVycyIpCisgICAgICAgICAgICAmJiBtX2NvbnRleHQtPmdldEV4dGVuc2lvbnMo
KS0+c3VwcG9ydHMoIkdMX0FOR0xFX3RyYW5zbGF0ZWRfc2hhZGVyX3NvdXJjZSIpKSB7CisgICAg
ICAgICAgICBpZiAoIW1fd2ViZ2xEZWJ1Z1NoYWRlcnMpCisgICAgICAgICAgICAgICAgbV93ZWJn
bERlYnVnU2hhZGVycyA9IFdlYkdMRGVidWdTaGFkZXJzOjpjcmVhdGUodGhpcyk7CisgICAgICAg
ICAgICByZXR1cm4gbV93ZWJnbERlYnVnU2hhZGVycy5nZXQoKTsKKyAgICAgICAgfQorICAgIH0K
IAogICAgIHJldHVybiAwOwogfQpAQCAtMjI0NSw2ICsyMjc1LDE2IEBAIFdlYkdMR2V0SW5mbyBX
ZWJHTFJlbmRlcmluZ0NvbnRleHQ6OmdldFAKICAgICAgICAgICAgIHJldHVybiBnZXRVbnNpZ25l
ZEludFBhcmFtZXRlcihFeHRlbnNpb25zM0Q6OkZSQUdNRU5UX1NIQURFUl9ERVJJVkFUSVZFX0hJ
TlRfT0VTKTsKICAgICAgICAgbV9jb250ZXh0LT5zeW50aGVzaXplR0xFcnJvcihHcmFwaGljc0Nv
bnRleHQzRDo6SU5WQUxJRF9FTlVNKTsKICAgICAgICAgcmV0dXJuIFdlYkdMR2V0SW5mbygpOwor
ICAgIGNhc2UgV2ViR0xEZWJ1Z1JlbmRlcmVySW5mbzo6VU5NQVNLRURfUkVOREVSRVJfV0VCR0w6
CisgICAgICAgIGlmIChtX3dlYmdsRGVidWdSZW5kZXJlckluZm8pCisgICAgICAgICAgICByZXR1
cm4gV2ViR0xHZXRJbmZvKG1fY29udGV4dC0+Z2V0U3RyaW5nKEdyYXBoaWNzQ29udGV4dDNEOjpS
RU5ERVJFUikpOworICAgICAgICBtX2NvbnRleHQtPnN5bnRoZXNpemVHTEVycm9yKEdyYXBoaWNz
Q29udGV4dDNEOjpJTlZBTElEX0VOVU0pOworICAgICAgICByZXR1cm4gV2ViR0xHZXRJbmZvKCk7
CisgICAgY2FzZSBXZWJHTERlYnVnUmVuZGVyZXJJbmZvOjpVTk1BU0tFRF9WRU5ET1JfV0VCR0w6
CisgICAgICAgIGlmIChtX3dlYmdsRGVidWdSZW5kZXJlckluZm8pCisgICAgICAgICAgICByZXR1
cm4gV2ViR0xHZXRJbmZvKG1fY29udGV4dC0+Z2V0U3RyaW5nKEdyYXBoaWNzQ29udGV4dDNEOjpW
RU5ET1IpKTsKKyAgICAgICAgbV9jb250ZXh0LT5zeW50aGVzaXplR0xFcnJvcihHcmFwaGljc0Nv
bnRleHQzRDo6SU5WQUxJRF9FTlVNKTsKKyAgICAgICAgcmV0dXJuIFdlYkdMR2V0SW5mbygpOwog
ICAgIGNhc2UgRXh0ZW5zaW9uczNEOjpWRVJURVhfQVJSQVlfQklORElOR19PRVM6IC8vIE9FU192
ZXJ0ZXhfYXJyYXlfb2JqZWN0CiAgICAgICAgIGlmIChtX29lc1ZlcnRleEFycmF5T2JqZWN0KSB7
CiAgICAgICAgICAgICBpZiAoIW1fYm91bmRWZXJ0ZXhBcnJheU9iamVjdC0+aXNEZWZhdWx0T2Jq
ZWN0KCkpCkBAIC0yNDE3LDYgKzI0NTcsMTMgQEAgVmVjdG9yPFN0cmluZz4gV2ViR0xSZW5kZXJp
bmdDb250ZXh0OjpnZQogICAgIGlmIChtX2NvbnRleHQtPmdldEV4dGVuc2lvbnMoKS0+c3VwcG9y
dHMoIkdMX09FU192ZXJ0ZXhfYXJyYXlfb2JqZWN0IikpCiAgICAgICAgIHJlc3VsdC5hcHBlbmQo
Ik9FU192ZXJ0ZXhfYXJyYXlfb2JqZWN0Iik7CiAgICAgcmVzdWx0LmFwcGVuZCgiV0VCS0lUX2xv
c2VfY29udGV4dCIpOworCisgICAgaWYgKGFsbG93UHJpdmlsZWdlZEV4dGVuc2lvbnMoKSkgewor
ICAgICAgICBpZiAobV9jb250ZXh0LT5nZXRFeHRlbnNpb25zKCktPnN1cHBvcnRzKCJHTF9BTkdM
RV90cmFuc2xhdGVkX3NoYWRlcl9zb3VyY2UiKSkKKyAgICAgICAgICAgIHJlc3VsdC5hcHBlbmQo
IldFQkdMX2RlYnVnX3NoYWRlcnMiKTsKKyAgICAgICAgcmVzdWx0LmFwcGVuZCgiV0VCR0xfZGVi
dWdfcmVuZGVyZXJfaW5mbyIpOworICAgIH0KKwogICAgIHJldHVybiByZXN1bHQ7CiB9CiAKSW5k
ZXg6IFNvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMUmVuZGVyaW5nQ29udGV4dC5oCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMUmVuZGVyaW5nQ29u
dGV4dC5oCShyZXZpc2lvbiA5NzUzMikKKysrIFNvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dl
YkdMUmVuZGVyaW5nQ29udGV4dC5oCSh3b3JraW5nIGNvcHkpCkBAIC00MCw5ICs0MCwxOSBAQAog
CiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKK2NsYXNzIEhUTUxJbWFnZUVsZW1lbnQ7CitjbGFzcyBI
VE1MVmlkZW9FbGVtZW50OworY2xhc3MgSW1hZ2VCdWZmZXI7CitjbGFzcyBJbWFnZURhdGE7Citj
bGFzcyBJbnRTaXplOworY2xhc3MgT0VTU3RhbmRhcmREZXJpdmF0aXZlczsKK2NsYXNzIE9FU1Rl
eHR1cmVGbG9hdDsKK2NsYXNzIE9FU1ZlcnRleEFycmF5T2JqZWN0OwogY2xhc3MgV2ViR0xBY3Rp
dmVJbmZvOwogY2xhc3MgV2ViR0xCdWZmZXI7CiBjbGFzcyBXZWJHTENvbnRleHRBdHRyaWJ1dGVz
OworY2xhc3MgV2ViR0xEZWJ1Z1JlbmRlcmVySW5mbzsKK2NsYXNzIFdlYkdMRGVidWdTaGFkZXJz
OwogY2xhc3MgV2ViR0xFeHRlbnNpb247CiBjbGFzcyBXZWJHTEZyYW1lYnVmZmVyOwogY2xhc3Mg
V2ViR0xPYmplY3Q7CkBAIC01MSwxNiArNjEsOCBAQCBjbGFzcyBXZWJHTFJlbmRlcmJ1ZmZlcjsK
IGNsYXNzIFdlYkdMU2hhZGVyOwogY2xhc3MgV2ViR0xUZXh0dXJlOwogY2xhc3MgV2ViR0xVbmlm
b3JtTG9jYXRpb247Ci1jbGFzcyBXZWJLaXRMb3NlQ29udGV4dDsKLWNsYXNzIEhUTUxJbWFnZUVs
ZW1lbnQ7Ci1jbGFzcyBIVE1MVmlkZW9FbGVtZW50OwotY2xhc3MgSW1hZ2VCdWZmZXI7Ci1jbGFz
cyBJbWFnZURhdGE7Ci1jbGFzcyBJbnRTaXplOwotY2xhc3MgT0VTU3RhbmRhcmREZXJpdmF0aXZl
czsKLWNsYXNzIE9FU1RleHR1cmVGbG9hdDsKLWNsYXNzIE9FU1ZlcnRleEFycmF5T2JqZWN0Owog
Y2xhc3MgV2ViR0xWZXJ0ZXhBcnJheU9iamVjdE9FUzsKK2NsYXNzIFdlYktpdExvc2VDb250ZXh0
OwogCiBjbGFzcyBXZWJHTFJlbmRlcmluZ0NvbnRleHQgOiBwdWJsaWMgQ2FudmFzUmVuZGVyaW5n
Q29udGV4dCB7CiBwdWJsaWM6CkBAIC0zMDYsNiArMzA4LDcgQEAgcHVibGljOgogICBwcml2YXRl
OgogICAgIGZyaWVuZCBjbGFzcyBXZWJHTE9iamVjdDsKICAgICBmcmllbmQgY2xhc3MgT0VTVmVy
dGV4QXJyYXlPYmplY3Q7CisgICAgZnJpZW5kIGNsYXNzIFdlYkdMRGVidWdTaGFkZXJzOwogCiAg
ICAgV2ViR0xSZW5kZXJpbmdDb250ZXh0KEhUTUxDYW52YXNFbGVtZW50KiwgUGFzc1JlZlB0cjxH
cmFwaGljc0NvbnRleHQzRD4sIEdyYXBoaWNzQ29udGV4dDNEOjpBdHRyaWJ1dGVzKTsKICAgICB2
b2lkIGluaXRpYWxpemVOZXdDb250ZXh0KCk7CkBAIC00NzQsNiArNDc3LDggQEAgcHVibGljOgog
ICAgIE93blB0cjxPRVNTdGFuZGFyZERlcml2YXRpdmVzPiBtX29lc1N0YW5kYXJkRGVyaXZhdGl2
ZXM7CiAgICAgT3duUHRyPE9FU1ZlcnRleEFycmF5T2JqZWN0PiBtX29lc1ZlcnRleEFycmF5T2Jq
ZWN0OwogICAgIE93blB0cjxXZWJLaXRMb3NlQ29udGV4dD4gbV93ZWJraXRMb3NlQ29udGV4dDsK
KyAgICBPd25QdHI8V2ViR0xEZWJ1Z1JlbmRlcmVySW5mbz4gbV93ZWJnbERlYnVnUmVuZGVyZXJJ
bmZvOworICAgIE93blB0cjxXZWJHTERlYnVnU2hhZGVycz4gbV93ZWJnbERlYnVnU2hhZGVyczsK
IAogICAgIC8vIEhlbHBlcnMgZm9yIGdldFBhcmFtZXRlciBhbmQgb3RoZXJzCiAgICAgV2ViR0xH
ZXRJbmZvIGdldEJvb2xlYW5QYXJhbWV0ZXIoR0MzRGVudW0pOwpAQCAtNjIyLDYgKzYyNyw5IEBA
IHB1YmxpYzoKICAgICAvLyBIZWxwZXIgZm9yIHJlc3RvcmF0aW9uIGFmdGVyIGNvbnRleHQgbG9z
dC4KICAgICB2b2lkIG1heWJlUmVzdG9yZUNvbnRleHQoTG9zdENvbnRleHRNb2RlKTsKIAorICAg
IC8vIERldGVybWluZSBpZiB3ZSBhcmUgcnVubmluZyB0aGUgcHJpdmlsZWdlZCBjb2RlIGluIHRo
ZSBicm93c2VyLgorICAgIGJvb2wgYWxsb3dQcml2aWxlZ2VkRXh0ZW5zaW9ucygpIGNvbnN0Owor
CiAgICAgZnJpZW5kIGNsYXNzIFdlYkdMU3RhdGVSZXN0b3JlcjsKIH07CiAKSW5kZXg6IFNvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0V4dGVuc2lvbnMzRC5oCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0V4dGVuc2lvbnMzRC5oCShyZXZpc2lv
biA5NzUzMikKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0V4dGVuc2lvbnMz
RC5oCSh3b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykg
MjAxMCBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAy
MDExIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAg
KiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMKQEAgLTU2LDYgKzU2LDcgQEAgcHVibGljOgogICAgIC8vICAgR0xfT0VTX3N0
YW5kYXJkX2Rlcml2YXRpdmVzCiAgICAgLy8gICBHTF9PRVNfcmdiOF9yZ2JhOAogICAgIC8vICAg
R0xfT0VTX3ZlcnRleF9hcnJheV9vYmplY3QKKyAgICAvLyAgIEdMX0FOR0xFX3RyYW5zbGF0ZWRf
c2hhZGVyX3NvdXJjZQogCiAgICAgLy8gVGFrZXMgZnVsbCBuYW1lIG9mIGV4dGVuc2lvbjsgZm9y
IGV4YW1wbGUsCiAgICAgLy8gIkdMX0VYVF90ZXh0dXJlX2Zvcm1hdF9CR1JBODg4OCIuCkBAIC0x
MDMsNiArMTA0LDkgQEAgcHVibGljOgogICAgICAgICAKICAgICAgICAgLy8gR0xfT0VTX3ZlcnRl
eF9hcnJheV9vYmplY3QgbmFtZXMKICAgICAgICAgVkVSVEVYX0FSUkFZX0JJTkRJTkdfT0VTID0g
MHg4NUI1LAorCisgICAgICAgIC8vIEdMX0FOR0xFX3RyYW5zbGF0ZWRfc2hhZGVyX3NvdXJjZQor
ICAgICAgICBUUkFOU0xBVEVEX1NIQURFUl9TT1VSQ0VfTEVOR1RIX0FOR0xFID0gMHg5M0EwLAog
ICAgIH07CiAKICAgICAvLyBHTF9BUkJfcm9idXN0bmVzcwpAQCAtMTI1LDYgKzEyOSw5IEBAIHB1
YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgZGVsZXRlVmVydGV4QXJyYXlPRVMoUGxhdGZvcm0zRE9i
amVjdCkgPSAwOwogICAgIHZpcnR1YWwgR0MzRGJvb2xlYW4gaXNWZXJ0ZXhBcnJheU9FUyhQbGF0
Zm9ybTNET2JqZWN0KSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIGJpbmRWZXJ0ZXhBcnJheU9FUyhQ
bGF0Zm9ybTNET2JqZWN0KSA9IDA7CisKKyAgICAvLyBHTF9BTkdMRV90cmFuc2xhdGVkX3NoYWRl
cl9zb3VyY2UKKyAgICB2aXJ0dWFsIFN0cmluZyBnZXRUcmFuc2xhdGVkU2hhZGVyU291cmNlQU5H
TEUoUGxhdGZvcm0zRE9iamVjdCkgPSAwOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpJ
bmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NUeXBlczNELmgK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NU
eXBlczNELmgJKHJldmlzaW9uIDk3NTMyKQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvR3JhcGhpY3NUeXBlczNELmgJKHdvcmtpbmcgY29weSkKQEAgLTQ0LDYgKzQ0LDcgQEAg
dHlwZWRlZiBmbG9hdCBHQzNEZmxvYXQ7CiB0eXBlZGVmIGZsb2F0IEdDM0RjbGFtcGY7CiB0eXBl
ZGVmIHNpZ25lZCBsb25nIGludCBHQzNEaW50cHRyOwogdHlwZWRlZiBzaWduZWQgbG9uZyBpbnQg
R0MzRHNpemVpcHRyOwordHlwZWRlZiBjaGFyIEdDM0RjaGFyOwogCiB0eXBlZGVmIEdDM0R1aW50
IFBsYXRmb3JtM0RPYmplY3Q7CiAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2Nocm9taXVtL0V4dGVuc2lvbnMzRENocm9taXVtLmgKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vRXh0ZW5zaW9uczNEQ2hyb21pdW0u
aAkocmV2aXNpb24gOTc1MzIpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9j
aHJvbWl1bS9FeHRlbnNpb25zM0RDaHJvbWl1bS5oCSh3b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEs
NSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMCBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDExIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTU2LDYgKzU2LDcgQEAg
cHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBkZWxldGVWZXJ0ZXhBcnJheU9FUyhQbGF0Zm9ybTNE
T2JqZWN0KTsKICAgICB2aXJ0dWFsIEdDM0Rib29sZWFuIGlzVmVydGV4QXJyYXlPRVMoUGxhdGZv
cm0zRE9iamVjdCk7CiAgICAgdmlydHVhbCB2b2lkIGJpbmRWZXJ0ZXhBcnJheU9FUyhQbGF0Zm9y
bTNET2JqZWN0KTsKKyAgICB2aXJ0dWFsIFN0cmluZyBnZXRUcmFuc2xhdGVkU2hhZGVyU291cmNl
QU5HTEUoUGxhdGZvcm0zRE9iamVjdCk7CiAKICAgICBlbnVtIHsKICAgICAgICAgLy8gR0xfQ0hS
T01JVU1fbWFwX3N1YiAoZW51bXMgaW5oZXJpdGVkIGZyb20gR0xfQVJCX3ZlcnRleF9idWZmZXJf
b2JqZWN0KQpJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0V4
dGVuc2lvbnMzRE9wZW5HTC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3Mvb3BlbmdsL0V4dGVuc2lvbnMzRE9wZW5HTC5jcHAJKHJldmlzaW9uIDk3NTMy
KQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0V4dGVuc2lvbnMz
RE9wZW5HTC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJp
Z2h0IChDKSAyMDEwIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmln
aHQgKEMpIDIwMTEgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMTkzLDYgKzE5MywxMyBAQCB2b2lkIEV4dGVuc2lvbnMz
RE9wZW5HTDo6YmluZFZlcnRleEFycmF5CiAjZW5kaWYKIH0KIAorU3RyaW5nIEV4dGVuc2lvbnMz
RE9wZW5HTDo6Z2V0VHJhbnNsYXRlZFNoYWRlclNvdXJjZUFOR0xFKFBsYXRmb3JtM0RPYmplY3Qg
c2hhZGVyKQoreworICAgIFVOVVNFRF9QQVJBTShzaGFkZXIpOworICAgIHJldHVybiAiIjsKKyAg
ICAvLyBGSVhNRTogaW1wbGVtZW50IHRoaXMgZnVuY3Rpb24gYW5kIGFkZCBHTF9BTkdMRV90cmFu
c2xhdGVkX3NoYWRlcl9zb3VyY2UgaW4gc3VwcG9ydHMoKS4KK30KKwogfSAvLyBuYW1lc3BhY2Ug
V2ViQ29yZQogCiAjZW5kaWYgLy8gRU5BQkxFKFdFQkdMKQpJbmRleDogU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0V4dGVuc2lvbnMzRE9wZW5HTC5oCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL29wZW5nbC9FeHRlbnNpb25zM0RP
cGVuR0wuaAkocmV2aXNpb24gOTc1MzIpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9vcGVuZ2wvRXh0ZW5zaW9uczNET3BlbkdMLmgJKHdvcmtpbmcgY29weSkKQEAgLTEsNSAr
MSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDEwIEdvb2dsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTEgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtNTAsNiArNTAsNyBA
QCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIGRlbGV0ZVZlcnRleEFycmF5T0VTKFBsYXRmb3Jt
M0RPYmplY3QpOwogICAgIHZpcnR1YWwgR0MzRGJvb2xlYW4gaXNWZXJ0ZXhBcnJheU9FUyhQbGF0
Zm9ybTNET2JqZWN0KTsKICAgICB2aXJ0dWFsIHZvaWQgYmluZFZlcnRleEFycmF5T0VTKFBsYXRm
b3JtM0RPYmplY3QpOworICAgIHZpcnR1YWwgU3RyaW5nIGdldFRyYW5zbGF0ZWRTaGFkZXJTb3Vy
Y2VBTkdMRShQbGF0Zm9ybTNET2JqZWN0KTsKIAogcHJpdmF0ZToKICAgICAvLyBUaGlzIGNsYXNz
IG9ubHkgbmVlZHMgdG8gYmUgaW5zdGFudGlhdGVkIGJ5IEdyYXBoaWNzQ29udGV4dDNEIGltcGxl
bWVudGF0aW9ucy4KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3F0L0V4
dGVuc2lvbnMzRFF0LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9xdC9FeHRlbnNpb25zM0RRdC5jcHAJKHJldmlzaW9uIDk3NTMyKQorKysgU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvcXQvRXh0ZW5zaW9uczNEUXQuY3BwCSh3b3JraW5n
IGNvcHkpCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMCBHb29nbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDExIEdvb2dsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMK
QEAgLTg4LDYgKzg4LDExIEBAIHZvaWQgRXh0ZW5zaW9uczNEUXQ6OmJpbmRWZXJ0ZXhBcnJheU9F
UygKIHsKIH0KIAorU3RyaW5nIEV4dGVuc2lvbnMzRFF0OjpnZXRUcmFuc2xhdGVkU2hhZGVyU291
cmNlQU5HTEUoUGxhdGZvcm0zRE9iamVjdCBzaGFkZXIpCit7CisgICAgcmV0dXJuICIiOworfQor
CiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKICNlbmRpZiAvLyBFTkFCTEUoV0VCR0wpCkluZGV4
OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9xdC9FeHRlbnNpb25zM0RRdC5oCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3F0L0V4dGVuc2lv
bnMzRFF0LmgJKHJldmlzaW9uIDk3NTMyKQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvcXQvRXh0ZW5zaW9uczNEUXQuaAkod29ya2luZyBjb3B5KQpAQCAtMSw1ICsxLDUgQEAK
IC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTAgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KKyAqIENvcHlyaWdodCAoQykgMjAxMSBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC00NSw2ICs0NSw3IEBAIHB1Ymxp
YzoKICAgICB2aXJ0dWFsIHZvaWQgZGVsZXRlVmVydGV4QXJyYXlPRVMoUGxhdGZvcm0zRE9iamVj
dCk7CiAgICAgdmlydHVhbCBHQzNEYm9vbGVhbiBpc1ZlcnRleEFycmF5T0VTKFBsYXRmb3JtM0RP
YmplY3QpOwogICAgIHZpcnR1YWwgdm9pZCBiaW5kVmVydGV4QXJyYXlPRVMoUGxhdGZvcm0zRE9i
amVjdCk7CisgICAgdmlydHVhbCBTdHJpbmcgZ2V0VHJhbnNsYXRlZFNoYWRlclNvdXJjZUFOR0xF
KFBsYXRmb3JtM0RPYmplY3QpOwogCiBwcml2YXRlOgogICAgIC8vIFRoaXMgY2xhc3Mgb25seSBu
ZWVkcyB0byBiZSBpbnN0YW50aWF0ZWQgYnkgR3JhcGhpY3NDb250ZXh0M0QgaW1wbGVtZW50YXRp
b25zLgpJbmRleDogU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cJKHJldmlzaW9uIDk3NTMyKQorKysg
U291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyAr
MSwyOSBAQAorMjAxMS0xMC0xNCAgWmhlbnlhbyBNbyAgPHptb0Bnb29nbGUuY29tPgorCisgICAg
ICAgIEltcGxlbWVudCBXRUJHTF9kZWJ1Z19zaGFkZXJzIGFuZCBXRUJHTF9kZWJ1Z19yZW5kZXJl
cl9pbmZvIGV4dGVuc2lvbnMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTcwMDc3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgKiBwdWJsaWMvV2ViR3JhcGhpY3NDb250ZXh0M0QuaDogQWRkZWQgc3VwcG9ydCBm
b3IgZ2V0VHJhbnNsYXRlZFNoYWRlclNvdXJjZUFOR0xFLgorICAgICAgICAoV2ViS2l0OjpXZWJH
cmFwaGljc0NvbnRleHQzRDo6Z2V0VHJhbnNsYXRlZFNoYWRlclNvdXJjZUFOR0xFKToKKyAgICAg
ICAgKiBzcmMvRXh0ZW5zaW9uczNEQ2hyb21pdW0uY3BwOiBEaXR0by4KKyAgICAgICAgKFdlYkNv
cmU6OkV4dGVuc2lvbnMzRENocm9taXVtOjpnZXRUcmFuc2xhdGVkU2hhZGVyU291cmNlQU5HTEUp
OgorICAgICAgICAqIHNyYy9HcmFwaGljc0NvbnRleHQzRENocm9taXVtLmNwcDogRGl0dG8uCisg
ICAgICAgICogc3JjL0dyYXBoaWNzQ29udGV4dDNEUHJpdmF0ZS5oOiBEaXR0by4KKworMjAxMS0x
MC0xNCAgRG1pdHJ5IExvbW92ICA8ZHNsb21vdkBnb29nbGUuY29tPgorCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03MDEyMAorICAgICAgICBbQ2hyb21p
dW1dIFBhc3MgTWVzc2FnZVBvcnRBcnJheSB0byBTZXJpYWxpemVkU2NyaXB0VmFsdWU6OnNlcmlh
bGl6ZS9kZXNlcmlhbGl6ZS4KKyAgICAgICAgVGhpcyBwYXRjaCBhdWdtZW50cyBTZXJpYWxpemVk
U2NyaXB0VmFsdWUgd2l0aCBNZXNzYWdlUG9ydEFycmF5KiBwYXJhbWV0ZXIgdG8gaW1wbGVtZW50
IE1lc3NhZ2VQb3J0IAorICAgICAgICB0cmFuc2ZlciB3aXRoaW4gdGhlIG1lc3NhZ2UgaW4gdGhl
IGZ1dHVyZS4KKworICAgICAgICBSZXZpZXdlZCBieSBEYXZpZCBMZXZpbi4KKworICAgICAgICAq
IHNyYy9XZWJTZXJpYWxpemVkU2NyaXB0VmFsdWUuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJT
ZXJpYWxpemVkU2NyaXB0VmFsdWU6OnNlcmlhbGl6ZSk6CisKIDIwMTEtMTAtMTQgIERtaXRyeSBM
b21vdiAgPGRzbG9tb3ZAZ29vZ2xlLmNvbT4KIAogICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzAxMjAKSW5kZXg6IFNvdXJjZS9XZWJLaXQvY2hyb21pdW0v
cHVibGljL1dlYkdyYXBoaWNzQ29udGV4dDNELmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktp
dC9jaHJvbWl1bS9wdWJsaWMvV2ViR3JhcGhpY3NDb250ZXh0M0QuaAkocmV2aXNpb24gOTc1MzIp
CisrKyBTb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJHcmFwaGljc0NvbnRleHQzRC5o
CSh3b3JraW5nIGNvcHkpCkBAIC0zNjUsNiArMzY1LDEwIEBAIHB1YmxpYzoKICAgICAvLyBzdGF0
ZSBpcyBzdGlja3ksIHJhdGhlciB0aGFuIHJlcG9ydGVkIG9ubHkgb25jZS4KICAgICB2aXJ0dWFs
IFdHQzNEZW51bSBnZXRHcmFwaGljc1Jlc2V0U3RhdHVzQVJCKCkgeyByZXR1cm4gMDsgLyogR0xf
Tk9fRVJST1IgKi8gfQogCisgICAgLy8gRklYTUU6IG1ha2UgdGhpcyBmdW5jdGlvbiBwdXJlIHZp
cnR1YWwgb25jZSBpdCBpcyBpbXBsZW1lbnRlZCBpbgorICAgIC8vIGJvdGggY29tbWFuZCBidWZm
ZXIgcG9ydCBhbmQgaW4tcHJvY2VzcyBwb3J0LgorICAgIHZpcnR1YWwgV2ViU3RyaW5nIGdldFRy
YW5zbGF0ZWRTaGFkZXJTb3VyY2VBTkdMRShXZWJHTElkIHNoYWRlcikgeyByZXR1cm4gV2ViU3Ry
aW5nKCk7IH0KKwogI2lmIFdFQktJVF9VU0lOR19TS0lBCiAgICAgR3JHTEludGVyZmFjZSogY3Jl
YXRlR3JHTEludGVyZmFjZSgpOwogI2VuZGlmCkluZGV4OiBTb3VyY2UvV2ViS2l0L2Nocm9taXVt
L3NyYy9FeHRlbnNpb25zM0RDaHJvbWl1bS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktp
dC9jaHJvbWl1bS9zcmMvRXh0ZW5zaW9uczNEQ2hyb21pdW0uY3BwCShyZXZpc2lvbiA5NzUzMikK
KysrIFNvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0V4dGVuc2lvbnMzRENocm9taXVtLmNwcAko
d29ya2luZyBjb3B5KQpAQCAtMTE1LDYgKzExNSwxMSBAQCB2b2lkIEV4dGVuc2lvbnMzRENocm9t
aXVtOjpiaW5kVmVydGV4QXJyCiB7CiB9CiAKK1N0cmluZyBFeHRlbnNpb25zM0RDaHJvbWl1bTo6
Z2V0VHJhbnNsYXRlZFNoYWRlclNvdXJjZUFOR0xFKFBsYXRmb3JtM0RPYmplY3Qgc2hhZGVyKQor
eworICAgIHJldHVybiBtX3ByaXZhdGUtPmdldFRyYW5zbGF0ZWRTaGFkZXJTb3VyY2VBTkdMRShz
aGFkZXIpOworfQorCiB2b2lkIEV4dGVuc2lvbnMzRENocm9taXVtOjpzZXRTd2FwQnVmZmVyc0Nv
bXBsZXRlQ2FsbGJhY2tDSFJPTUlVTShQYXNzT3duUHRyPFN3YXBCdWZmZXJzQ29tcGxldGVDYWxs
YmFja0NIUk9NSVVNPiBjYWxsYmFjaykKIHsKICAgICBtX3ByaXZhdGUtPnNldFN3YXBCdWZmZXJz
Q29tcGxldGVDYWxsYmFja0NIUk9NSVVNKGNhbGxiYWNrKTsKSW5kZXg6IFNvdXJjZS9XZWJLaXQv
Y2hyb21pdW0vc3JjL0dyYXBoaWNzQ29udGV4dDNEQ2hyb21pdW0uY3BwCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0dyYXBoaWNzQ29udGV4dDNEQ2hyb21pdW0uY3Bw
CShyZXZpc2lvbiA5NzUzMikKKysrIFNvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0dyYXBoaWNz
Q29udGV4dDNEQ2hyb21pdW0uY3BwCSh3b3JraW5nIGNvcHkpCkBAIC04ODcsNiArODg3LDggQEAg
REVMRUdBVEVfVE9fSU1QTF81KHJlbmRlcmJ1ZmZlclN0b3JhZ2VNdQogREVMRUdBVEVfVE9fSU1Q
TChyYXRlTGltaXRPZmZzY3JlZW5Db250ZXh0Q0hST01JVU0pCiBERUxFR0FURV9UT19JTVBMX1Io
Z2V0R3JhcGhpY3NSZXNldFN0YXR1c0FSQiwgR0MzRGVudW0pCiAKK0RFTEVHQVRFX1RPX0lNUExf
MVIoZ2V0VHJhbnNsYXRlZFNoYWRlclNvdXJjZUFOR0xFLCBQbGF0Zm9ybTNET2JqZWN0LCBTdHJp
bmcpCisKIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogLy8gR3JhcGhpY3NDb250ZXh0M0QKIC8vCkluZGV4OiBT
b3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9HcmFwaGljc0NvbnRleHQzRFByaXZhdGUuaAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9HcmFwaGljc0NvbnRleHQzRFBy
aXZhdGUuaAkocmV2aXNpb24gOTc1MzIpCisrKyBTb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9H
cmFwaGljc0NvbnRleHQzRFByaXZhdGUuaAkod29ya2luZyBjb3B5KQpAQCAtMzAzLDYgKzMwMyw5
IEBAIHB1YmxpYzoKICAgICAvLyBHTF9BUkJfcm9idXN0bmVzcwogICAgIEdDM0RlbnVtIGdldEdy
YXBoaWNzUmVzZXRTdGF0dXNBUkIoKTsKIAorICAgIC8vIEdMX0FOR0xFX3RyYW5zbGF0ZWRfc2hh
ZGVyX3NvdXJjZQorICAgIFN0cmluZyBnZXRUcmFuc2xhdGVkU2hhZGVyU291cmNlQU5HTEUoUGxh
dGZvcm0zRE9iamVjdCBzaGFkZXIpOworCiBwcml2YXRlOgogICAgIEdyYXBoaWNzQ29udGV4dDNE
UHJpdmF0ZShXZWJLaXQ6OldlYlZpZXdJbXBsKiwgUGFzc093blB0cjxXZWJLaXQ6OldlYkdyYXBo
aWNzQ29udGV4dDNEPiwgR3JhcGhpY3NDb250ZXh0M0Q6OkF0dHJpYnV0ZXMpOwogCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>111265</attachid>
            <date>2011-10-17 08:11:12 -0700</date>
            <delta_ts>2011-10-17 08:28:24 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-70077-20111017081111.patch</filename>
            <type>text/plain</type>
            <size>62447</size>
            <attacher name="Zhenyao Mo">zmo</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDk3NTMyKQorKysgU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMzkwIEBACisyMDExLTEwLTE0ICBaaGVueWFv
IE1vICA8em1vQGdvb2dsZS5jb20+CisKKyAgICAgICAgSW1wbGVtZW50IFdFQkdMX2RlYnVnX3No
YWRlcnMgYW5kIFdFQkdMX2RlYnVnX3JlbmRlcmVyX2luZm8gZXh0ZW5zaW9ucworICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzAwNzcKKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFdlYkNvcmUuZ3lwaTogYWRk
ZWQgbmV3IGV4dGVuc2lvbiBjbGFzcyBmaWxlcy4KKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJv
ai9wcm9qZWN0LnBieHByb2o6IGRpdHRvLgorICAgICAgICAqIFdlYkNvcmUucHJvOiBkaXR0by4K
KyAgICAgICAgKiBDTWFrZUxpc3RzLnR4dDogZGl0dG8uCisgICAgICAgICogR05VbWFrZWZpbGUu
bGlzdC5hbTogZGl0dG8uCisgICAgICAgICogYmluZGluZ3MvanMvSlNXZWJHTFJlbmRlcmluZ0Nv
bnRleHRDdXN0b20uY3BwOgorICAgICAgICAoV2ViQ29yZTo6dG9KUyk6IEhhbmRsZXMgdHdvIG5l
dyBleHRlbnNpb25zLgorICAgICAgICAqIGJpbmRpbmdzL3Y4L2N1c3RvbS9WOFdlYkdMUmVuZGVy
aW5nQ29udGV4dEN1c3RvbS5jcHA6CisgICAgICAgIChXZWJDb3JlOjp0b1Y4T2JqZWN0KTogRGl0
dG8uCisgICAgICAgICogaHRtbC9jYW52YXMvV2ViR0xEZWJ1Z1JlbmRlcmVySW5mby5jcHA6IEFk
ZGVkLgorICAgICAgICAoV2ViQ29yZTo6V2ViR0xEZWJ1Z1JlbmRlcmVySW5mbzo6V2ViR0xEZWJ1
Z1JlbmRlcmVySW5mbyk6CisgICAgICAgIChXZWJDb3JlOjpXZWJHTERlYnVnUmVuZGVyZXJJbmZv
Ojp+V2ViR0xEZWJ1Z1JlbmRlcmVySW5mbyk6CisgICAgICAgIChXZWJDb3JlOjpXZWJHTERlYnVn
UmVuZGVyZXJJbmZvOjpnZXROYW1lKToKKyAgICAgICAgKFdlYkNvcmU6OldlYkdMRGVidWdSZW5k
ZXJlckluZm86OmNyZWF0ZSk6CisgICAgICAgICogaHRtbC9jYW52YXMvV2ViR0xEZWJ1Z1JlbmRl
cmVySW5mby5oOiBBZGRlZC4KKyAgICAgICAgKiBodG1sL2NhbnZhcy9XZWJHTERlYnVnUmVuZGVy
ZXJJbmZvLmlkbDogQWRkZWQuCisgICAgICAgICogaHRtbC9jYW52YXMvV2ViR0xEZWJ1Z1NoYWRl
cnMuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OldlYkdMRGVidWdTaGFkZXJzOjpXZWJH
TERlYnVnU2hhZGVycyk6CisgICAgICAgIChXZWJDb3JlOjpXZWJHTERlYnVnU2hhZGVyczo6fldl
YkdMRGVidWdTaGFkZXJzKToKKyAgICAgICAgKFdlYkNvcmU6OldlYkdMRGVidWdTaGFkZXJzOjpn
ZXROYW1lKToKKyAgICAgICAgKFdlYkNvcmU6OldlYkdMRGVidWdTaGFkZXJzOjpjcmVhdGUpOgor
ICAgICAgICAoV2ViQ29yZTo6V2ViR0xEZWJ1Z1NoYWRlcnM6OmdldFRyYW5zbGF0ZWRTaGFkZXJT
b3VyY2UpOgorICAgICAgICAqIGh0bWwvY2FudmFzL1dlYkdMRGVidWdTaGFkZXJzLmg6IEFkZGVk
LgorICAgICAgICAqIGh0bWwvY2FudmFzL1dlYkdMRGVidWdTaGFkZXJzLmlkbDogQWRkZWQuCisg
ICAgICAgICogaHRtbC9jYW52YXMvV2ViR0xFeHRlbnNpb24uaDoKKyAgICAgICAgKiBodG1sL2Nh
bnZhcy9XZWJHTFJlbmRlcmluZ0NvbnRleHQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6V2ViR0xS
ZW5kZXJpbmdDb250ZXh0OjphbGxvd1ByaXZpbGVnZWRFeHRlbnNpb25zKTogVG8gYmUgaW1wbGVt
ZW50ZWQgLSBkZWNpZGluZyB3aGV0aGVyIHRoZSB0d28gZXh0ZW5zaW9ucyBzaG91bGQgYmUgYWxs
b3dlZCBvciBub3QuCisgICAgICAgIChXZWJDb3JlOjpXZWJHTFJlbmRlcmluZ0NvbnRleHQ6Omdl
dEV4dGVuc2lvbik6IEhhbmRsZXMgdHdvIG5ldyBleHRlbnNpb25zLgorICAgICAgICAoV2ViQ29y
ZTo6V2ViR0xSZW5kZXJpbmdDb250ZXh0OjpnZXRQYXJhbWV0ZXIpOiBIYW5kbGVzIFVOTUFTS0VE
X1ZFTkRPUl9XRUJHTCAvIFVOTUFTS0VEX1JFTkRFUkVSX1dFQkdMCisgICAgICAgIChXZWJDb3Jl
OjpXZWJHTFJlbmRlcmluZ0NvbnRleHQ6OmdldFN1cHBvcnRlZEV4dGVuc2lvbnMpOiBIYW5kbGVz
IHR3byBuZXcgZXh0ZW5zaW9ucy4KKyAgICAgICAgKiBodG1sL2NhbnZhcy9XZWJHTFJlbmRlcmlu
Z0NvbnRleHQuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9FeHRlbnNpb25zM0QuaDog
RGl0dG8uCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NUeXBlczNELmg6IEFk
ZCBHQzNEY2hhci4KKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9FeHRlbnNp
b25zM0RDaHJvbWl1bS5oOiBIYW5kbGVzIHR3byBuZXcgZXh0ZW5zaW9ucy4KKyAgICAgICAgKiBw
bGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wvRXh0ZW5zaW9uczNET3BlbkdMLmNwcDogRGl0dG8uCisg
ICAgICAgIChXZWJDb3JlOjpnZXRUcmFuc2xhdGVkU2hhZGVyU291cmNlQU5HTEUpOgorICAgICAg
ICAqIHBsYXRmb3JtL2dyYXBoaWNzL29wZW5nbC9FeHRlbnNpb25zM0RPcGVuR0wuaDogRGl0dG8u
CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvcXQvRXh0ZW5zaW9uczNEUXQuY3BwOiBEaXR0
by4KKyAgICAgICAgKFdlYkNvcmU6OkV4dGVuc2lvbnMzRFF0OjpnZXRUcmFuc2xhdGVkU2hhZGVy
U291cmNlQU5HTEUpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL3F0L0V4dGVuc2lvbnMz
RFF0Lmg6IERpdHRvLgorCisyMDExLTEwLTE0ICBNYXJrIEhhaG5lbmJlcmcgIDxtaGFobmVuYmVy
Z0BhcHBsZS5jb20+CisKKyAgICAgICAgUmVuYW1lIHZpcnR1YWwgcHV0IHRvIHB1dFZpcnR1YWwK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTY5ODUxCisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgRGFyaW4gQWRsZXIuCisKKyAgICAgICAgTm8gbmV3IHRlc3Rz
LgorCisgICAgICAgIFJlbmFtZWQgdmlydHVhbCB2ZXJzaW9ucyBvZiBwdXQgdG8gcHV0VmlydHVh
bCBpbiBwcmVwcmF0aW9uIGZvciAKKyAgICAgICAgYWRkaW5nIHRoZSBzdGF0aWMgcHV0IHRvIHRo
ZSBNZXRob2RUYWJsZSBpbiBDbGFzc0luZm8gc2luY2UgdGhlIAorICAgICAgICBjb21waWxlciBn
ZXRzIG1hZCBpZiB0aGUgdmlydHVhbCBhbmQgc3RhdGljIHZlcnNpb25zIGhhdmUgdGhlIHNhbWUg
CisgICAgICAgIG5hbWUuCisKKyAgICAgICAgKiBXZWJDb3JlLmV4cC5pbjoKKyAgICAgICAgKiBi
aW5kaW5ncy9qcy9KU0RPTVdpbmRvd0N1c3RvbS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpKU0RP
TVdpbmRvdzo6cHV0VmlydHVhbCk6CisgICAgICAgICogYmluZGluZ3MvanMvSlNET01XaW5kb3dT
aGVsbC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpKU0RPTVdpbmRvd1NoZWxsOjpwdXRWaXJ0dWFs
KToKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU0RPTVdpbmRvd1NoZWxsLmg6CisgICAgICAgICog
YmluZGluZ3MvanMvSlNMb2NhdGlvbkN1c3RvbS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpKU0xv
Y2F0aW9uOjpwdXREZWxlZ2F0ZSk6CisgICAgICAgICogYmluZGluZ3MvanMvSlNQbHVnaW5FbGVt
ZW50RnVuY3Rpb25zLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OnJ1bnRpbWVPYmplY3RDdXN0b21Q
dXQpOgorICAgICAgICAqIGJpbmRpbmdzL2pzL1NlcmlhbGl6ZWRTY3JpcHRWYWx1ZS5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpDbG9uZURlc2VyaWFsaXplcjo6cHV0UHJvcGVydHkpOgorICAgICAg
ICAqIGJpbmRpbmdzL29iamMvV2ViU2NyaXB0T2JqZWN0Lm1tOgorICAgICAgICAoLVtXZWJTY3Jp
cHRPYmplY3Qgc2V0VmFsdWU6Zm9yS2V5Ol0pOgorICAgICAgICAoLVtXZWJTY3JpcHRPYmplY3Qg
c2V0V2ViU2NyaXB0VmFsdWVBdEluZGV4OnZhbHVlOl0pOgorICAgICAgICAqIGJpbmRpbmdzL3Nj
cmlwdHMvQ29kZUdlbmVyYXRvckpTLnBtOgorICAgICAgICAoR2VuZXJhdGVIZWFkZXIpOgorICAg
ICAgICAoR2VuZXJhdGVJbXBsZW1lbnRhdGlvbik6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0
cy90ZXN0L0pTL0pTVGVzdE9iai5jcHA6CisgICAgICAgIChXZWJDb3JlOjpKU1Rlc3RPYmo6OnB1
dFZpcnR1YWwpOgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RPYmou
aDoKKyAgICAgICAgKiBicmlkZ2UvTlBfanNvYmplY3QuY3BwOgorICAgICAgICAoX05QTl9TZXRQ
cm9wZXJ0eSk6CisgICAgICAgICogYnJpZGdlL2puaS9qbmlfanNvYmplY3QubW06CisgICAgICAg
IChKYXZhSlNPYmplY3Q6OnNldE1lbWJlcik6CisgICAgICAgIChKYXZhSlNPYmplY3Q6OnNldFNs
b3QpOgorICAgICAgICAqIGJyaWRnZS9vYmpjL29iamNfcnVudGltZS5oOgorICAgICAgICAqIGJy
aWRnZS9vYmpjL29iamNfcnVudGltZS5tbToKKyAgICAgICAgKEpTQzo6QmluZGluZ3M6Ok9iamNG
YWxsYmFja09iamVjdEltcDo6cHV0VmlydHVhbCk6CisgICAgICAgICogYnJpZGdlL3F0L3F0X2lu
c3RhbmNlLmNwcDoKKyAgICAgICAgKEpTQzo6QmluZGluZ3M6OlF0SW5zdGFuY2U6OnB1dCk6Cisg
ICAgICAgICogYnJpZGdlL3F0L3F0X3J1bnRpbWUuY3BwOgorICAgICAgICAoSlNDOjpCaW5kaW5n
czo6Y29udmVydFFWYXJpYW50VG9WYWx1ZSk6CisgICAgICAgICogYnJpZGdlL3J1bnRpbWVfYXJy
YXkuY3BwOgorICAgICAgICAoSlNDOjpSdW50aW1lQXJyYXk6OnB1dFZpcnR1YWwpOgorICAgICAg
ICAqIGJyaWRnZS9ydW50aW1lX2FycmF5Lmg6CisgICAgICAgICogYnJpZGdlL3J1bnRpbWVfb2Jq
ZWN0LmNwcDoKKyAgICAgICAgKEpTQzo6QmluZGluZ3M6OlJ1bnRpbWVPYmplY3Q6OnB1dFZpcnR1
YWwpOgorICAgICAgICAqIGJyaWRnZS9ydW50aW1lX29iamVjdC5oOgorICAgICAgICAqIGJyaWRn
ZS90ZXN0cXRiaW5kaW5ncy5jcHA6CisgICAgICAgIChtYWluKToKKworMjAxMS0xMC0xNCAgU2hl
cmlmZiBCb3QgIDx3ZWJraXQucmV2aWV3LmJvdEBnbWFpbC5jb20+CisKKyAgICAgICAgVW5yZXZp
ZXdlZCwgcm9sbGluZyBvdXQgcjk3NTE5LgorICAgICAgICBodHRwOi8vdHJhYy53ZWJraXQub3Jn
L2NoYW5nZXNldC85NzUxOQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9NzAxNTYKKworICAgICAgICBCcm9rZSA3OSsgdGVzdHMgb24gYm90cyAoUmVxdWVz
dGVkIGJ5IGRnbGF6a292IG9uICN3ZWJraXQpLgorCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhp
Y3Mvc2tpYS9HcmFwaGljc0NvbnRleHRTa2lhLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmdldEZv
Y3VzUmluZ091dHNldCk6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0NvbnRleHQ6OmRyYXdG
b2N1c1JpbmcpOgorCisyMDExLTA5LTI4ICBSb2JlcnQgSG9nYW4gIDxyb2JlcnRAd2Via2l0Lm9y
Zz4KKworICAgICAgICBSZXBsYWNlZCBlbGVtZW50cyBzcXVlZXplZCB3aGVuIHdpZHRoIGlzIHNw
ZWNpZmllZCBhcyBwZXJjZW50YWdlIGluc2lkZSBhIHRhYmxlIHdpdGggQXV0byBsYXlvdXQKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTI5NDQ3CisKKyAg
ICAgICAgSWYgaW5zZXJ0aW5nIGEgJ3JlcGxhY2VkJyBlbGVtZW50IChlLmcuIGltYWdlLCBwbHVn
aW4pIGluIGEgdGFibGUgY2VsbCB0aGF0IGlzIG5vdCBkZXNjZW5kYW50IGZyb20KKyAgICAgICAg
YSBibG9jayB3aXRoIGZpeGVkIGxheW91dCB0aGVuIGRvIG5vdCBzcXVlZXplIHRoZSBlbGVtZW50
LCBsZXQgaXQgdXNlIGl0cyBpbnRyaW5zaWMgd2lkdGggYW5kIGhlaWdodC4KKworICAgICAgICBS
ZXZpZXdlZCBieSBEYXZpZCBIeWF0dC4KKworICAgICAgICBUZXN0OiBmYXN0L3JlcGxhY2VkL3Rh
YmxlLXBlcmNlbnQtd2lkdGguaHRtbAorCisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckJveC5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpzaG91bGRFeHBhbmRUb0ludHJpbnNpY0RpbWVuc2lvbik6
CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJCb3g6OmNvbnRhaW5pbmdCbG9ja1JlcGxhY2VkTG9n
aWNhbFdpZHRoRm9yQ29udGVudCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJCb3g6OmNvbXB1
dGVSZXBsYWNlZExvZ2ljYWxXaWR0aFVzaW5nKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckJv
eDo6Y29tcHV0ZVJlcGxhY2VkTG9naWNhbEhlaWdodFVzaW5nKToKKyAgICAgICAgKiByZW5kZXJp
bmcvUmVuZGVyQm94Lmg6CisKKzIwMTEtMTAtMTQgIENhcnkgQ2xhcmsgIDxjYXJ5Y2xhcmtAZ29v
Z2xlLmNvbT4KKworICAgICAgICBbQ2hyb21pdW0gU2tpYSBvbiBNYWNdIEltcHJvdmUgZm9jdXMg
cmluZworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzAx
MjQKKworICAgICAgICBSZXZpZXdlZCBieSBFcmljIFNlaWRlbC4KKyAgICAgICAgCisgICAgICAg
IFRoZSBmb2N1cyByaW5nIGNvZGUgZm9ybWVybHkgb3V0c2V0IHRoZSBib3VuZHMgb2YKKyAgICAg
ICAgdGhlIGNvbXBvbmVudCByZWN0YW5nbGVzIGJ5IGZyYWN0aW9uYWwgYW1vdW50cy4gQmVjYXVz
ZQorICAgICAgICB0aGUgcmVjdGFuZ2xlcyBhcmUgU2tJUmVjdCAoaW50ZWdlciBiYXNlZCksIHRo
ZSBmcmFjdGlvbmFsCisgICAgICAgIG91dHNldCBoYWQgbm8gZWZmZWN0LgorCisgICAgICAgIFRo
ZSBlcXVpdmFsZW50IGNvZGUgaW4gR3JhcGhpY3NDb250ZXh0TWFjLm1tIGNvbXB1dGVzCisgICAg
ICAgIHRoZSBjdXJ2ZSByYWRpdXMgYW5kIHJlY3RhbmdsZSBvdXRzZXQgd2l0aCBpbnRlZ2Vycywg
c28KKyAgICAgICAgdGhlIHVzZSBvZiBmbG9hdHMgaW4gU2tpYSdzIGNhc2UsIGJlc2lkZXMgbm90
IHdvcmtpbmcsCisgICAgICAgIGlzIHVubmVjZXNzYXJ5LgorCisgICAgICAgIFRoZSBTa2lhIGNv
ZGUgYWxzbyBmYWlsZWQgdG8gdGFrZSB0aGUgb2Zmc2V0IGludG8gYWNjb3VudC4KKyAgICAgICAg
SW4gTGF5b3V0VGVzdHMsIHRoZSBmb2N1cyByaW5ncyBlaXRoZXIgaGF2ZSBhbiBvZmZzZXQgb2YK
KyAgICAgICAgMCBvciAyLiBUaGUgQ29yZUdyYXBoaWNzIGNvZGUgaW5jcmVhc2VzIHRoZSByaW5n
J3MgcmVjdGFuZ2xlcworICAgICAgICBieSB0aGUgb2Zmc2V0LCB0aGVuIHBhc3NlcyB0aGUgcmVz
dWx0IHRvIHdrRHJhd0ZvY3VzUmluZy4KKworICAgICAgICBJIGRpZCBub3QgZmluZCBhbnkgZG9j
dW1lbnRhdGlvbiBhYm91dCBob3cgd2tEcmF3Rm9jdXNSaW5nCisgICAgICAgIGZ1cnRoZXIgaW5m
bGF0ZXMgdGhlIGZvY3VzIHJpbmcsIGJ1dCBlbXBpcmljYWxseSBJIGRldGVybWluZWQKKyAgICAg
ICAgdGhhdCBhZGRpbmcgMiB0byB0aGUgb2Zmc2V0IGdlbmVyYXRlZCByaW5ncyB3aXRoIGlkZW50
aWNhbAorICAgICAgICBvdXRlciBkaWFtZXRlcnMuCisgCisgICAgICAgIFdpdGggdGhlc2UgYWRq
dXN0bWVudHMsIHRoZSBsYXlvdXQgdGVzdHMgZ2VuZXJhdGUgZm9jdXMgcmluZ3MKKyAgICAgICAg
aW4gdGhlIFNraWEgb24gTWFjIGNhc2UgdGhhdCBtYXRjaCB0aGUgY292ZXJhZ2Ugb2YgdGhlCisg
ICAgICAgIENocm9taXVtIENHLWJhc2VkIHBsYXRmb3JtLCBpbiBwYXJ0aWN1bGFyLCBtYXRjaGlu
ZzoKKyAgICAgICAgCisgICAgICAgIGVkaXRpbmcvaW5zZXJ0aW5nL2VkaXRhYmxlLWlubGluZS1l
bGVtZW50Lmh0bWwKKyAgICAgICAgZWRpdGluZy9zZWxlY3Rpb24vMzY5MDcwMy0yLmh0bWwKKwor
ICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL3NraWEvR3JhcGhpY3NDb250ZXh0U2tpYS5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpnZXRGb2N1c1JpbmdPdXRzZXQpOgorICAgICAgICAoV2ViQ29y
ZTo6R3JhcGhpY3NDb250ZXh0OjpkcmF3Rm9jdXNSaW5nKToKKworMjAxMS0xMC0xNCAgQ2hhbmcg
U2h1ICA8Y3NodUB3ZWJraXQub3JnPgorCisgICAgICAgIFtRdF0gRW5hYmxlIGZ1bGxzY3JlZW4g
YXBpIG9uIFF0CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD03MDEzMQorCisgICAgICAgIEFzIGEgcmVzdWx0LCB3ZSBoYXZlIDMgcGFzc2VkIHRlc3RzLgor
CisgICAgICAgIFJldmlld2VkIGJ5IE5vYW0gUm9zZW50aGFsLgorCisgICAgICAgICogZmVhdHVy
ZXMucHJpOgorCisyMDExLTEwLTE0ICBCZXRoIERha2luICA8YmRha2luQGFwcGxlLmNvbT4KKwor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzAxNDgKKyAg
ICAgICAgU2hvdWxkIHN3aXRjaCB0byBDb3JlVUkgdmVyc2lvbiBvZiBDb3JyZWN0aW9uRG90LCBH
cmFtbWFyRG90LCBhbmQgU3BlbGxpbmdEb3QKKyAgICAgICAgLWFuZCBjb3JyZXNwb25kaW5nLQor
ICAgICAgICA8cmRhcjovL3Byb2JsZW0vMTAyMDgyODE+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
QW5kZXJzIENhcmxzc29uLgorCisgICAgICAgIFVzZSBOUypEb3Qgd2hlbmV2ZXIgaXQncyBhdmFp
bGFibGUsIGFuZCBmYWxsYmFjayB0byAqRG90IG9ubHkgd2hlbiBpdCBpcyBub3QuCisgICAgICAg
ICogcGxhdGZvcm0vZ3JhcGhpY3MvbWFjL0dyYXBoaWNzQ29udGV4dE1hYy5tbToKKyAgICAgICAg
KFdlYkNvcmU6OmNyZWF0ZVBhdHRlcm5Db2xvcik6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGlj
c0NvbnRleHQ6OmRyYXdMaW5lRm9yVGV4dENoZWNraW5nKToKKworMjAxMS0xMC0xNCAgRG1pdHJ5
IExvbW92ICA8ZHNsb21vdkBnb29nbGUuY29tPgorCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD03MDEyMAorICAgICAgICBbQ2hyb21pdW1dIFBhc3MgTWVz
c2FnZVBvcnRBcnJheSB0byBTZXJpYWxpemVkU2NyaXB0VmFsdWU6OnNlcmlhbGl6ZS9kZXNlcmlh
bGl6ZS4KKyAgICAgICAgVGhpcyBwYXRjaCBhdWdtZW50cyBTZXJpYWxpemVkU2NyaXB0VmFsdWUg
d2l0aCBNZXNzYWdlUG9ydEFycmF5KiBwYXJhbWV0ZXIgdG8gaW1wbGVtZW50IE1lc3NhZ2VQb3J0
IAorICAgICAgICB0cmFuc2ZlciB3aXRoaW4gdGhlIG1lc3NhZ2UgaW4gdGhlIGZ1dHVyZS4KKwor
ICAgICAgICBSZXZpZXdlZCBieSBEYXZpZCBMZXZpbi4KKworICAgICAgICAqIGJpbmRpbmdzL3Nj
cmlwdHMvQ29kZUdlbmVyYXRvclY4LnBtOgorICAgICAgICAoR2VuZXJhdGVQYXJhbWV0ZXJzQ2hl
Y2spOgorICAgICAgICAqIGJpbmRpbmdzL3Y4L1NlcmlhbGl6ZWRTY3JpcHRWYWx1ZS5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpTZXJpYWxpemVkU2NyaXB0VmFsdWU6OmNyZWF0ZSk6CisgICAgICAg
IChXZWJDb3JlOjpTZXJpYWxpemVkU2NyaXB0VmFsdWU6OlNlcmlhbGl6ZWRTY3JpcHRWYWx1ZSk6
CisgICAgICAgIChXZWJDb3JlOjpTZXJpYWxpemVkU2NyaXB0VmFsdWU6OmRlc2VyaWFsaXplKToK
KyAgICAgICAgKiBiaW5kaW5ncy92OC9TZXJpYWxpemVkU2NyaXB0VmFsdWUuaDoKKyAgICAgICAg
KiBiaW5kaW5ncy92OC9jdXN0b20vVjhET01XaW5kb3dDdXN0b20uY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6aGFuZGxlUG9zdE1lc3NhZ2VDYWxsYmFjayk6CisgICAgICAgIChXZWJDb3JlOjpWOERP
TVdpbmRvdzo6cG9zdE1lc3NhZ2VDYWxsYmFjayk6CisgICAgICAgIChXZWJDb3JlOjpWOERPTVdp
bmRvdzo6d2Via2l0UG9zdE1lc3NhZ2VDYWxsYmFjayk6CisgICAgICAgICogYmluZGluZ3Mvdjgv
Y3VzdG9tL1Y4RGVkaWNhdGVkV29ya2VyQ29udGV4dEN1c3RvbS5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpoYW5kbGVQb3N0TWVzc2FnZUNhbGxiYWNrKToKKyAgICAgICAgKFdlYkNvcmU6OlY4RGVk
aWNhdGVkV29ya2VyQ29udGV4dDo6cG9zdE1lc3NhZ2VDYWxsYmFjayk6CisgICAgICAgIChXZWJD
b3JlOjpWOERlZGljYXRlZFdvcmtlckNvbnRleHQ6OndlYmtpdFBvc3RNZXNzYWdlQ2FsbGJhY2sp
OgorICAgICAgICAqIGJpbmRpbmdzL3Y4L2N1c3RvbS9WOEhpc3RvcnlDdXN0b20uY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6VjhIaXN0b3J5OjpwdXNoU3RhdGVDYWxsYmFjayk6CisgICAgICAgIChX
ZWJDb3JlOjpWOEhpc3Rvcnk6OnJlcGxhY2VTdGF0ZUNhbGxiYWNrKToKKyAgICAgICAgKiBiaW5k
aW5ncy92OC9jdXN0b20vVjhNZXNzYWdlRXZlbnRDdXN0b20uY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6VjhNZXNzYWdlRXZlbnQ6OmRhdGFBY2Nlc3NvckdldHRlcik6CisgICAgICAgICogYmluZGlu
Z3MvdjgvY3VzdG9tL1Y4TWVzc2FnZVBvcnRDdXN0b20uY3BwOgorICAgICAgICAoV2ViQ29yZTo6
aGFuZGxlUG9zdE1lc3NhZ2VDYWxsYmFjayk6CisgICAgICAgIChXZWJDb3JlOjpWOE1lc3NhZ2VQ
b3J0Ojpwb3N0TWVzc2FnZUNhbGxiYWNrKToKKyAgICAgICAgKFdlYkNvcmU6OlY4TWVzc2FnZVBv
cnQ6OndlYmtpdFBvc3RNZXNzYWdlQ2FsbGJhY2spOgorICAgICAgICAqIGJpbmRpbmdzL3Y4L2N1
c3RvbS9WOFdvcmtlckN1c3RvbS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpoYW5kbGVQb3N0TWVz
c2FnZUNhbGxiYWNrKToKKyAgICAgICAgKFdlYkNvcmU6OlY4V29ya2VyOjpwb3N0TWVzc2FnZUNh
bGxiYWNrKToKKyAgICAgICAgKFdlYkNvcmU6OlY4V29ya2VyOjp3ZWJraXRQb3N0TWVzc2FnZUNh
bGxiYWNrKToKKyAgICAgICAgKiB3b3JrZXJzL1dvcmtlci5pZGw6CisKKzIwMTEtMTAtMTQgIEpl
ZmYgTWlsbGVyICA8amVmZm1AYXBwbGUuY29tPgorCisgICAgICAgIEluamVjdGVkQnVuZGxlSGl0
VGVzdFJlc3VsdDo6aW1hZ2VSZWN0KCkgc2hvdWxkIHJldHVybiByZWN0IGluIFdLVmlldyBjb29y
ZGluYXRlcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
Njk5NjMKKyAgICAgICAgCisgICAgICAgIEFkZCBpbmZyYXN0cnVjdHVyZSB0byBjb252ZXJ0IGZy
b20gYW55IGZyYW1lIHZpZXcncyBjb29yZGluYXRlIHN5c3RlbSB0byB0aGUKKyAgICAgICAgcm9v
dCB2aWV3J3MgY29vcmRpbmF0ZSBzeXN0ZW0uCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgU2ltb24g
RnJhc2VyLgorCisgICAgICAgIE5vIG5ldyB0ZXN0cyAoeWV0KSwgdGhpcyBpcyBjb3ZlcmVkIGJ5
IDxodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzAxMzY+LgorCisgICAg
ICAgICogV2ViQ29yZS5leHAuaW46IEV4cG9ydGVkIFdlYkNvcmU6OlNjcm9sbFZpZXc6OmNvbnRl
bnRzVG9Sb290VmlldygpLCB1c2VkIGJ5IEluamVjdGVkQnVuZGxlSGl0VGVzdFJlc3VsdC5jcHAu
CisgICAgICAgIAorICAgICAgICAqIHBsYXRmb3JtL1Njcm9sbFZpZXcuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6U2Nyb2xsVmlldzo6cm9vdFZpZXdUb0NvbnRlbnRzKTogQWRkZWQgKGJvdGggcG9p
bnQgYW5kIHJlY3QgdmVyc2lvbnMpLgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsVmlldzo6Y29u
dGVudHNUb1Jvb3RWaWV3KTogRGl0dG8uCisgICAgICAgIAorICAgICAgICAqIHBsYXRmb3JtL1Nj
cm9sbFZpZXcuaDogQWRkZWQgbWVtYmVyIGZ1bmN0aW9ucyB0byBjb252ZXJ0IHRvL2Zyb20gcm9v
dCB2aWV3IGNvb3JkaW5hdGVzLgorICAgICAgICAKKyAgICAgICAgKiBwbGF0Zm9ybS9XaWRnZXQu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6V2lkZ2V0Ojpjb252ZXJ0RnJvbVJvb3RWaWV3KTogQWRk
ZWQgKGJvdGggcG9pbnQgYW5kIHJlY3QgdmVyc2lvbnMpLgorICAgICAgICAoV2ViQ29yZTo6V2lk
Z2V0Ojpjb252ZXJ0VG9Sb290Vmlldyk6IERpdHRvLgorICAgICAgICAKKyAgICAgICAgKiBwbGF0
Zm9ybS9XaWRnZXQuaDogQWRkZWQgbWVtYmVyIGZ1bmN0aW9ucyB0byBjb252ZXJ0IHRvL2Zyb20g
cm9vdCB2aWV3IGNvb3JkaW5hdGVzLgorCisyMDExLTEwLTE0ICBBbmRyZWFzIEtsaW5nICA8a2xp
bmdAd2Via2l0Lm9yZz4KKworICAgICAgICBDU1NQYXJzZXI6IFJlbW92ZSBTdHlsZUJhc2UgdXNh
Z2UuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03MDE1
MAorCisgICAgICAgIFJldmlld2VkIGJ5IERhcmluIEFkbGVyLgorCisgICAgICAgIFNwbGl0IENT
U1BhcnNlcjo6bV9wYXJzZWRTdHlsZU9iamVjdHMgaW50byB0d28gdmVjdG9ycyBvZgorICAgICAg
ICBDU1NSdWxlcyBhbmQgTWVkaWFMaXN0cy4KKworICAgICAgICAqIGNzcy9DU1NQYXJzZXIuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6Q1NTUGFyc2VyOjpjcmVhdGVNZWRpYUxpc3QpOgorICAgICAg
ICAoV2ViQ29yZTo6Q1NTUGFyc2VyOjpjcmVhdGVDaGFyc2V0UnVsZSk6CisgICAgICAgIChXZWJD
b3JlOjpDU1NQYXJzZXI6OmNyZWF0ZUltcG9ydFJ1bGUpOgorICAgICAgICAoV2ViQ29yZTo6Q1NT
UGFyc2VyOjpjcmVhdGVNZWRpYVJ1bGUpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTUGFyc2VyOjpj
cmVhdGVLZXlmcmFtZXNSdWxlKToKKyAgICAgICAgKFdlYkNvcmU6OkNTU1BhcnNlcjo6Y3JlYXRl
U3R5bGVSdWxlKToKKyAgICAgICAgKFdlYkNvcmU6OkNTU1BhcnNlcjo6Y3JlYXRlRm9udEZhY2VS
dWxlKToKKyAgICAgICAgKFdlYkNvcmU6OkNTU1BhcnNlcjo6Y3JlYXRlUGFnZVJ1bGUpOgorICAg
ICAgICAoV2ViQ29yZTo6Q1NTUGFyc2VyOjpjcmVhdGVLZXlmcmFtZVJ1bGUpOgorICAgICAgICAq
IGNzcy9DU1NQYXJzZXIuaDoKKworMjAxMS0xMC0xNCAgQWRhbSBCYXJ0aCAgPGFiYXJ0aEB3ZWJr
aXQub3JnPgorCisgICAgICAgIGNhbnZhcyBnZXRJbWFnZURhdGEgc2hvdWxkIGV4cGxhaW4gd2h5
IGl0IHRocm93cyBTRUNVUklUWV9FUlIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTcwMDg4CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgRGFyaW4gQWRsZXIu
CisKKyAgICAgICAgTG9nIGFzIG1lc3NhZ2UgdG8gdGhlIGNvbnNvbGUgd2hlbiBnZXRJbWFnZURh
dGEgZmFpbHMgYmVjYXVzZSB0aGUKKyAgICAgICAgY2FudmFzIGlzIHRhaW50ZWQuCisKKyAgICAg
ICAgKiBodG1sL2NhbnZhcy9DYW52YXNSZW5kZXJpbmdDb250ZXh0MkQuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6Q2FudmFzUmVuZGVyaW5nQ29udGV4dDJEOjpnZXRJbWFnZURhdGEpOgorCisyMDEx
LTEwLTE0ICBBbmRyZWFzIEtsaW5nICA8a2xpbmdAd2Via2l0Lm9yZz4KKworICAgICAgICBJbnNw
ZWN0b3I6IFJlbW92ZSBTdHlsZUJhc2UgdXNhZ2UuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD03MDEzOAorCisgICAgICAgIFJldmlld2VkIGJ5IEFudHRp
IEtvaXZpc3RvLgorCisgICAgICAgIEJlIGZ1bGx5IHNwZWNpZmljIGFib3V0IHdoZXRoZXIgd2Un
cmUgb3BlcmF0aW5nIG9uIGEgQ1NTUnVsZSBvcgorICAgICAgICBhIENTU1N0eWxlU2hlZXQuCisK
KyAgICAgICAgTm8gYmVoYXZpb3IgY2hhbmdlIGV4cGVjdGVkLCB0aGlzIG1lcmVseSBpcyBhIGNs
ZWFudXAuCisKKyAgICAgICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9yQ1NTQWdlbnQuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yQ1NTQWdlbnQ6OnBhcmVudFN0eWxlU2hlZXQpOgorICAg
ICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yQ1NTQWdlbnQ6OmFzQ1NTU3R5bGVSdWxlKToKKyAgICAg
ICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9yQ1NTQWdlbnQuaDoKKyAgICAgICAgKiBpbnNwZWN0b3Iv
SW5zcGVjdG9yU3R5bGVTaGVldC5jcHA6CisgICAgICAgIChXZWJDb3JlOjphc0NTU1J1bGVMaXN0
KToKKworMjAxMS0xMC0xNCAgTWFyayBIYWhuZW5iZXJnICA8bWhhaG5lbmJlcmdAYXBwbGUuY29t
PgorCisgICAgICAgIFJlbmFtZSB2aXJ0dWFsIGRlbGV0ZVByb3BlcnR5IHRvIGRlbGV0ZVByb3Bl
cnR5VmlydHVhbAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9Njk4ODQKKworICAgICAgICBSZXZpZXdlZCBieSBEYXJpbiBBZGxlci4KKworICAgICAgICBO
byBuZXcgdGVzdHMuCisKKyAgICAgICAgUmVuYW1lZCB2aXJ0dWFsIHZlcnNpb25zIG9mIGRlbGV0
ZVByb3BlcnR5IHRvIGRlbGV0ZVByb3BlcnR5VmlydHVhbCBpbiBwcmVwcmF0aW9uIGZvciAKKyAg
ICAgICAgYWRkaW5nIHRoZSBzdGF0aWMgZGVsZXRlUHJvcGVydHkgdG8gdGhlIE1ldGhvZFRhYmxl
IGluIENsYXNzSW5mbyBzaW5jZSB0aGUgCisgICAgICAgIGNvbXBpbGVyIGdldHMgbWFkIGlmIHRo
ZSB2aXJ0dWFsIGFuZCBzdGF0aWMgdmVyc2lvbnMgaGF2ZSB0aGUgc2FtZSBuYW1lLgorCisgICAg
ICAgICogV2ViQ29yZS5leHAuaW46CisgICAgICAgICogYmluZGluZ3MvanMvSlNET01TdHJpbmdN
YXBDdXN0b20uY3BwOgorICAgICAgICAoV2ViQ29yZTo6SlNET01TdHJpbmdNYXA6OmRlbGV0ZVBy
b3BlcnR5VmlydHVhbCk6CisgICAgICAgICogYmluZGluZ3MvanMvSlNET01XaW5kb3dDdXN0b20u
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6SlNET01XaW5kb3c6OmRlbGV0ZVByb3BlcnR5VmlydHVh
bCk6CisgICAgICAgICogYmluZGluZ3MvanMvSlNET01XaW5kb3dTaGVsbC5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpKU0RPTVdpbmRvd1NoZWxsOjpkZWxldGVQcm9wZXJ0eVZpcnR1YWwpOgorICAg
ICAgICAqIGJpbmRpbmdzL2pzL0pTRE9NV2luZG93U2hlbGwuaDoKKyAgICAgICAgKiBiaW5kaW5n
cy9qcy9KU0hpc3RvcnlDdXN0b20uY3BwOgorICAgICAgICAoV2ViQ29yZTo6SlNIaXN0b3J5Ojpk
ZWxldGVQcm9wZXJ0eVZpcnR1YWwpOgorICAgICAgICAqIGJpbmRpbmdzL2pzL0pTTG9jYXRpb25D
dXN0b20uY3BwOgorICAgICAgICAoV2ViQ29yZTo6SlNMb2NhdGlvbjo6ZGVsZXRlUHJvcGVydHlW
aXJ0dWFsKToKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU1N0b3JhZ2VDdXN0b20uY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6SlNTdG9yYWdlOjpkZWxldGVQcm9wZXJ0eVZpcnR1YWwpOgorICAgICAg
ICAqIGJpbmRpbmdzL2pzL1NjcmlwdE9iamVjdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTY3Jp
cHRHbG9iYWxPYmplY3Q6OnJlbW92ZSk6CisgICAgICAgICogYmluZGluZ3Mvb2JqYy9XZWJTY3Jp
cHRPYmplY3QubW06CisgICAgICAgICgtW1dlYlNjcmlwdE9iamVjdCByZW1vdmVXZWJTY3JpcHRL
ZXk6XSk6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMucG06Cisg
ICAgICAgIChHZW5lcmF0ZUhlYWRlcik6CisgICAgICAgICogYnJpZGdlL05QX2pzb2JqZWN0LmNw
cDoKKyAgICAgICAgKF9OUE5fUmVtb3ZlUHJvcGVydHkpOgorICAgICAgICAqIGJyaWRnZS9qbmkv
am5pX2pzb2JqZWN0Lm1tOgorICAgICAgICAoSmF2YUpTT2JqZWN0OjpyZW1vdmVNZW1iZXIpOgor
ICAgICAgICAqIGJyaWRnZS9vYmpjL29iamNfcnVudGltZS5oOgorICAgICAgICAqIGJyaWRnZS9v
YmpjL29iamNfcnVudGltZS5tbToKKyAgICAgICAgKEpTQzo6QmluZGluZ3M6Ok9iamNGYWxsYmFj
a09iamVjdEltcDo6ZGVsZXRlUHJvcGVydHlWaXJ0dWFsKToKKyAgICAgICAgKiBicmlkZ2UvcnVu
dGltZV9hcnJheS5jcHA6CisgICAgICAgIChKU0M6OlJ1bnRpbWVBcnJheTo6ZGVsZXRlUHJvcGVy
dHlWaXJ0dWFsKToKKyAgICAgICAgKiBicmlkZ2UvcnVudGltZV9hcnJheS5oOgorICAgICAgICAq
IGJyaWRnZS9ydW50aW1lX29iamVjdC5jcHA6CisgICAgICAgIChKU0M6OkJpbmRpbmdzOjpSdW50
aW1lT2JqZWN0OjpkZWxldGVQcm9wZXJ0eVZpcnR1YWwpOgorICAgICAgICAqIGJyaWRnZS9ydW50
aW1lX29iamVjdC5oOgorCisyMDExLTEwLTE0ICBTaW1vbiBGcmFzZXIgIDxzaW1vbi5mcmFzZXJA
YXBwbGUuY29tPgorCisgICAgICAgIFdlYiBJbnNwZWN0b3I6IFdlYlByb2Nlc3MgY3Jhc2hlcyBo
YXJkIHdoZW4gaW5zcGVjdGluZyBlbGVtZW50cyB3aXRoIGJvcmRlci1pbWFnZXMgYXBwbGllZAor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzAxMDUKKwor
ICAgICAgICBSZXZpZXdlZCBieSBEYXZlIEh5YXR0LgorICAgICAgICAKKyAgICAgICAgRml4IHRo
cmVlIGRpZmZlcmVudCBjcmFzaGVzIHJlbGF0ZWQgdG8gZ2V0dGluZyBjb21wdXRlZCBzdHlsZSBm
b3IgYm9yZGVyLWltYWdlLgorICAgICAgICBJbiBib3RoIHZhbHVlRm9yTmluZVBpZWNlSW1hZ2VT
bGljZSgpIGFuZCB2YWx1ZUZvck5pbmVQaWVjZUltYWdlUXVhZCgpLAorICAgICAgICBhc3NpZ24g
J3JpZ2h0JyB0byAnbGVmdCcgYmVjYXVzZSB3ZSd2ZSBjb21wdXRlZCBhIHZhbHVlIGZvciAncmln
aHQnIGFscmVhZHkuCisgICAgICAgIE90aGVyd2lzZSB0aGlzIHdvdWxkIGxlYXZlICdyaWdodCcg
YXMgbnVsbCwgY2F1c2luZyBsYXRlciBjcmFzaGVzIGluIGNzc1RleHQoKS4KKyAgICAgICAgCisg
ICAgICAgIEluIG1hcE5pbmVQaWVjZUltYWdlKCksIGJvcmRlckltYWdlLT5pbWFnZVZhbHVlKCkg
Y2FuIGJlIG51bGwgZm9yIGEgYm9yZGVyLWltYWdlCisgICAgICAgIHNob3J0aGFuZCB0aGF0IGlz
IG1pc3NpbmcgdGhlIGltYWdlIHZhbHVlLgorCisgICAgICAgIFRlc3Q6IGZhc3QvY3NzL2dldENv
bXB1dGVkU3R5bGUvY29tcHV0ZWQtc3R5bGUtYm9yZGVyLWltYWdlLmh0bWwKKworICAgICAgICAq
IGNzcy9DU1NDb21wdXRlZFN0eWxlRGVjbGFyYXRpb24uY3BwOgorICAgICAgICAoV2ViQ29yZTo6
dmFsdWVGb3JOaW5lUGllY2VJbWFnZVNsaWNlKToKKyAgICAgICAgKFdlYkNvcmU6OnZhbHVlRm9y
TmluZVBpZWNlSW1hZ2VRdWFkKToKKyAgICAgICAgKiBjc3MvQ1NTU3R5bGVTZWxlY3Rvci5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpDU1NTdHlsZVNlbGVjdG9yOjptYXBOaW5lUGllY2VJbWFnZSk6
CisKIDIwMTEtMTAtMTQgIE1hcmsgSGFobmVuYmVyZyAgPG1oYWhuZW5iZXJnQGFwcGxlLmNvbT4K
IAogICAgICAgICBSZW5hbWUgdmlydHVhbCBwdXQgdG8gcHV0VmlydHVhbApJbmRleDogU291cmNl
L1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvQ01h
a2VMaXN0cy50eHQJKHJldmlzaW9uIDk3NTMyKQorKysgU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0
cy50eHQJKHdvcmtpbmcgY29weSkKQEAgLTMwMyw2ICszMDMsOCBAQCBTRVQoV2ViQ29yZV9JRExf
RklMRVMKICAgICBodG1sL2NhbnZhcy9XZWJHTEFjdGl2ZUluZm8uaWRsCiAgICAgaHRtbC9jYW52
YXMvV2ViR0xCdWZmZXIuaWRsCiAgICAgaHRtbC9jYW52YXMvV2ViR0xDb250ZXh0QXR0cmlidXRl
cy5pZGwKKyAgICBodG1sL2NhbnZhcy9XZWJHTERlYnVnUmVuZGVyZXJJbmZvLmlkbAorICAgIGh0
bWwvY2FudmFzL1dlYkdMRGVidWdTaGFkZXJzLmlkbAogICAgIGh0bWwvY2FudmFzL1dlYkdMRnJh
bWVidWZmZXIuaWRsCiAgICAgaHRtbC9jYW52YXMvV2ViR0xQcm9ncmFtLmlkbAogICAgIGh0bWwv
Y2FudmFzL1dlYkdMUmVuZGVyYnVmZmVyLmlkbApAQCAtMjE1Nyw2ICsyMTU5LDggQEAgSUYgKEVO
QUJMRV9XRUJHTCkKICAgICAgICAgaHRtbC9jYW52YXMvV2ViR0xCdWZmZXIuY3BwCiAgICAgICAg
IGh0bWwvY2FudmFzL1dlYkdMQ29udGV4dEF0dHJpYnV0ZXMuY3BwCiAgICAgICAgIGh0bWwvY2Fu
dmFzL1dlYkdMQ29udGV4dEV2ZW50LmNwcAorICAgICAgICBodG1sL2NhbnZhcy9XZWJHTERlYnVn
UmVuZGVyZXJJbmZvLmNwcAorICAgICAgICBodG1sL2NhbnZhcy9XZWJHTERlYnVnU2hhZGVycy5j
cHAKICAgICAgICAgaHRtbC9jYW52YXMvV2ViR0xGcmFtZWJ1ZmZlci5jcHAKICAgICAgICAgaHRt
bC9jYW52YXMvV2ViR0xHZXRJbmZvLmNwcAogICAgICAgICBodG1sL2NhbnZhcy9XZWJHTE9iamVj
dC5jcHAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0KPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbQkocmV2aXNpb24gOTc1MzIp
CisrKyBTb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0LmFtCSh3b3JraW5nIGNvcHkpCkBA
IC00ODE4LDYgKzQ4MTgsMTAgQEAgd2ViY29yZV9zb3VyY2VzICs9IFwKIAlTb3VyY2UvV2ViQ29y
ZS9odG1sL2NhbnZhcy9XZWJHTENvbnRleHRBdHRyaWJ1dGVzLmggXAogCVNvdXJjZS9XZWJDb3Jl
L2h0bWwvY2FudmFzL1dlYkdMQ29udGV4dEV2ZW50LmNwcCBcCiAJU291cmNlL1dlYkNvcmUvaHRt
bC9jYW52YXMvV2ViR0xDb250ZXh0RXZlbnQuaCBcCisJU291cmNlL1dlYkNvcmUvaHRtbC9jYW52
YXMvV2ViR0xEZWJ1Z1JlbmRlcmVySW5mby5jcHAgXAorCVNvdXJjZS9XZWJDb3JlL2h0bWwvY2Fu
dmFzL1dlYkdMRGVidWdSZW5kZXJlckluZm8uaCBcCisJU291cmNlL1dlYkNvcmUvaHRtbC9jYW52
YXMvV2ViR0xEZWJ1Z1NoYWRlcnMuY3BwIFwKKwlTb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9X
ZWJHTERlYnVnU2hhZGVycy5oIFwKIAlTb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTEZy
YW1lYnVmZmVyLmNwcCBcCiAJU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xGcmFtZWJ1
ZmZlci5oIFwKIAlTb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTEdldEluZm8uY3BwIFwK
SW5kZXg6IFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViQ29yZS9XZWJDb3JlLmd5cGkJKHJldmlzaW9uIDk3NTMyKQorKysgU291cmNlL1dlYkNvcmUv
V2ViQ29yZS5neXBpCSh3b3JraW5nIGNvcHkpCkBAIC0xMzYyLDYgKzEzNjIsOCBAQAogICAgICAg
ICAgICAgJ2h0bWwvY2FudmFzL1dlYkdMQnVmZmVyLmlkbCcsCiAgICAgICAgICAgICAnaHRtbC9j
YW52YXMvV2ViR0xDb250ZXh0QXR0cmlidXRlcy5pZGwnLAogICAgICAgICAgICAgJ2h0bWwvY2Fu
dmFzL1dlYkdMQ29udGV4dEV2ZW50LmlkbCcsCisgICAgICAgICAgICAnaHRtbC9jYW52YXMvV2Vi
R0xEZWJ1Z1JlbmRlcmVySW5mby5pZGwnLAorICAgICAgICAgICAgJ2h0bWwvY2FudmFzL1dlYkdM
RGVidWdTaGFkZXJzLmlkbCcsCiAgICAgICAgICAgICAnaHRtbC9jYW52YXMvV2ViR0xGcmFtZWJ1
ZmZlci5pZGwnLAogICAgICAgICAgICAgJ2h0bWwvY2FudmFzL1dlYkdMUHJvZ3JhbS5pZGwnLAog
ICAgICAgICAgICAgJ2h0bWwvY2FudmFzL1dlYkdMUmVuZGVyYnVmZmVyLmlkbCcsCkBAIC01NjYy
LDYgKzU2NjQsMTAgQEAKICAgICAgICAgICAgICdodG1sL2NhbnZhcy9XZWJHTENvbnRleHRBdHRy
aWJ1dGVzLmgnLAogICAgICAgICAgICAgJ2h0bWwvY2FudmFzL1dlYkdMQ29udGV4dEV2ZW50LmNw
cCcsCiAgICAgICAgICAgICAnaHRtbC9jYW52YXMvV2ViR0xDb250ZXh0RXZlbnQuaCcsCisgICAg
ICAgICAgICAnaHRtbC9jYW52YXMvV2ViR0xEZWJ1Z1JlbmRlcmVySW5mby5jcHAnLAorICAgICAg
ICAgICAgJ2h0bWwvY2FudmFzL1dlYkdMRGVidWdSZW5kZXJlckluZm8uaCcsCisgICAgICAgICAg
ICAnaHRtbC9jYW52YXMvV2ViR0xEZWJ1Z1NoYWRlcnMuY3BwJywKKyAgICAgICAgICAgICdodG1s
L2NhbnZhcy9XZWJHTERlYnVnU2hhZGVycy5oJywKICAgICAgICAgICAgICdodG1sL2NhbnZhcy9X
ZWJHTEV4dGVuc2lvbi5jcHAnLAogICAgICAgICAgICAgJ2h0bWwvY2FudmFzL1dlYkdMRXh0ZW5z
aW9uLmgnLAogICAgICAgICAgICAgJ2h0bWwvY2FudmFzL1dlYkdMRnJhbWVidWZmZXIuY3BwJywK
SW5kZXg6IFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUucHJvCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9X
ZWJDb3JlL1dlYkNvcmUucHJvCShyZXZpc2lvbiA5NzUzMikKKysrIFNvdXJjZS9XZWJDb3JlL1dl
YkNvcmUucHJvCSh3b3JraW5nIGNvcHkpCkBAIC0zNjM0LDYgKzM2MzQsOCBAQCBjb250YWlucyhE
RUZJTkVTLCBFTkFCTEVfV0VCR0w9MSkgewogICAgICAgICBodG1sL2NhbnZhcy9XZWJHTEJ1ZmZl
ci5oIFwKICAgICAgICAgaHRtbC9jYW52YXMvV2ViR0xDb250ZXh0QXR0cmlidXRlcy5oIFwKICAg
ICAgICAgaHRtbC9jYW52YXMvV2ViR0xDb250ZXh0RXZlbnQuaCBcCisgICAgICAgIGh0bWwvY2Fu
dmFzL1dlYkdMRGVidWdSZW5kZXJlckluZm8uaCBcCisgICAgICAgIGh0bWwvY2FudmFzL1dlYkdM
RGVidWdTaGFkZXJzLmggXAogICAgICAgICBodG1sL2NhbnZhcy9XZWJHTEV4dGVuc2lvbi5oIFwK
ICAgICAgICAgaHRtbC9jYW52YXMvV2ViR0xGcmFtZWJ1ZmZlci5oIFwKICAgICAgICAgaHRtbC9j
YW52YXMvV2ViR0xHZXRJbmZvLmggXApAQCAtMzY2NSw2ICszNjY3LDggQEAgY29udGFpbnMoREVG
SU5FUywgRU5BQkxFX1dFQkdMPTEpIHsKICAgICAgICAgaHRtbC9jYW52YXMvV2ViR0xCdWZmZXIu
Y3BwIFwKICAgICAgICAgaHRtbC9jYW52YXMvV2ViR0xDb250ZXh0QXR0cmlidXRlcy5jcHAgXAog
ICAgICAgICBodG1sL2NhbnZhcy9XZWJHTENvbnRleHRFdmVudC5jcHAgXAorICAgICAgICBodG1s
L2NhbnZhcy9XZWJHTERlYnVnUmVuZGVyZXJJbmZvLmNwcCBcCisgICAgICAgIGh0bWwvY2FudmFz
L1dlYkdMRGVidWdTaGFkZXJzLmNwcCBcCiAgICAgICAgIGh0bWwvY2FudmFzL1dlYkdMRXh0ZW5z
aW9uLmNwcCBcCiAgICAgICAgIGh0bWwvY2FudmFzL1dlYkdMRnJhbWVidWZmZXIuY3BwIFwKICAg
ICAgICAgaHRtbC9jYW52YXMvV2ViR0xHZXRJbmZvLmNwcCBcCkluZGV4OiBTb3VyY2UvV2ViQ29y
ZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCShyZXZpc2lvbiA5NzUz
MikKKysrIFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagko
d29ya2luZyBjb3B5KQpAQCAtMzMzNiw2ICszMzM2LDEwIEBACiAJCTlGRkUzRUE1MTFCNUE0Mzkw
MDM3ODc0RSAvKiBKU01lbW9yeUluZm8uY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gOUZGRTNFQTMxMUI1QTQzOTAwMzc4NzRFIC8qIEpTTWVtb3J5SW5m
by5jcHAgKi87IH07CiAJCTlGRkUzRUE2MTFCNUE0MzkwMDM3ODc0RSAvKiBKU01lbW9yeUluZm8u
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDlGRkUzRUE0
MTFCNUE0MzkwMDM3ODc0RSAvKiBKU01lbW9yeUluZm8uaCAqLzsgfTsKIAkJQTAwQjcyMUExMURF
NjQyODAwOEFCOUZGIC8qIENoZWNrZWRJbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IEEwMEI3MjE5MTFERTY0MjcwMDhBQjlGRiAvKiBDaGVja2VkSW50
LmggKi87IH07CisJCUEwQjBGMUNDMTQ0QjcwNTcwMDFGRTlGMCAvKiBXZWJHTERlYnVnUmVuZGVy
ZXJJbmZvLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IEEwQjBGMUM4MTQ0QjcwNTcwMDFGRTlGMCAvKiBXZWJHTERlYnVnUmVuZGVyZXJJbmZvLmNwcCAq
LzsgfTsKKwkJQTBCMEYxQ0QxNDRCNzA1NzAwMUZFOUYwIC8qIFdlYkdMRGVidWdSZW5kZXJlcklu
Zm8uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEEwQjBG
MUM5MTQ0QjcwNTcwMDFGRTlGMCAvKiBXZWJHTERlYnVnUmVuZGVyZXJJbmZvLmggKi87IH07CisJ
CUEwQjBGMUNFMTQ0QjcwNTcwMDFGRTlGMCAvKiBXZWJHTERlYnVnU2hhZGVycy5jcHAgaW4gU291
cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBMEIwRjFDQTE0NEI3MDU3
MDAxRkU5RjAgLyogV2ViR0xEZWJ1Z1NoYWRlcnMuY3BwICovOyB9OworCQlBMEIwRjFDRjE0NEI3
MDU3MDAxRkU5RjAgLyogV2ViR0xEZWJ1Z1NoYWRlcnMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEEwQjBGMUNCMTQ0QjcwNTcwMDFGRTlGMCAvKiBXZWJH
TERlYnVnU2hhZGVycy5oICovOyB9OwogCQlBMTIwQUNBNDEzRjk5OENBMDBGRTRBQzcgLyogTGF5
b3V0UmVwYWludGVyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IEExMjBBQ0ExMTNGOTk4NDYwMEZFNEFDNyAvKiBMYXlvdXRSZXBhaW50ZXIuY3BwICov
OyB9OwogCQlBMTI1MzhENDEzRjlCNjBBMDAwMjQ3NTQgLyogTGF5b3V0UmVwYWludGVyLmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBMTIwQUNBMDEzRjk5
ODM3MDBGRTRBQzcgLyogTGF5b3V0UmVwYWludGVyLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVU
RVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJQTEzNkEwMEMxMTM0REJEMjAwQ0M4RDUwIC8qIFhN
TEh0dHBSZXF1ZXN0UHJvZ3Jlc3NFdmVudFRocm90dGxlLmNwcCBpbiBTb3VyY2VzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEExMzZBMDBBMTEzNERCRDIwMENDOEQ1MCAvKiBY
TUxIdHRwUmVxdWVzdFByb2dyZXNzRXZlbnRUaHJvdHRsZS5jcHAgKi87IH07CkBAIC0xMDUwNyw2
ICsxMDUxMSwxMiBAQAogCQk5RkZFM0VBMzExQjVBNDM5MDAzNzg3NEUgLyogSlNNZW1vcnlJbmZv
LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTTWVtb3J5SW5mby5j
cHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTlGRkUzRUE0MTFCNUE0MzkwMDM3ODc0
RSAvKiBKU01lbW9yeUluZm8uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNN
ZW1vcnlJbmZvLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUEwMEI3MjE5MTFERTY0
MjcwMDhBQjlGRiAvKiBDaGVja2VkSW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFt
ZSA9IENoZWNrZWRJbnQuaDsgcGF0aCA9IGNhbnZhcy9DaGVja2VkSW50Lmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CisJCUEwQjBGMUM2MTQ0QjcwMkQwMDFGRTlGMCAvKiBXZWJHTERlYnVn
UmVuZGVyZXJJbmZvLmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IG5hbWUgPSBXZWJHTERlYnVnUmVuZGVy
ZXJJbmZvLmlkbDsgcGF0aCA9IGNhbnZhcy9XZWJHTERlYnVnUmVuZGVyZXJJbmZvLmlkbDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQTBCMEYxQzcxNDRCNzAzRjAwMUZFOUYwIC8qIFdl
YkdMRGVidWdTaGFkZXJzLmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IG5hbWUgPSBXZWJHTERlYnVnU2hh
ZGVycy5pZGw7IHBhdGggPSBjYW52YXMvV2ViR0xEZWJ1Z1NoYWRlcnMuaWRsOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OworCQlBMEIwRjFDODE0NEI3MDU3MDAxRkU5RjAgLyogV2ViR0xEZWJ1
Z1JlbmRlcmVySW5mby5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBX
ZWJHTERlYnVnUmVuZGVyZXJJbmZvLmNwcDsgcGF0aCA9IGNhbnZhcy9XZWJHTERlYnVnUmVuZGVy
ZXJJbmZvLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQTBCMEYxQzkxNDRCNzA1
NzAwMUZFOUYwIC8qIFdlYkdMRGVidWdSZW5kZXJlckluZm8uaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBuYW1lID0gV2ViR0xEZWJ1Z1JlbmRlcmVySW5mby5oOyBwYXRoID0gY2FudmFzL1dl
YkdMRGVidWdSZW5kZXJlckluZm8uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQTBC
MEYxQ0ExNDRCNzA1NzAwMUZFOUYwIC8qIFdlYkdMRGVidWdTaGFkZXJzLmNwcCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IFdlYkdMRGVidWdTaGFkZXJzLmNwcDsgcGF0aCA9
IGNhbnZhcy9XZWJHTERlYnVnU2hhZGVycy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CisJCUEwQjBGMUNCMTQ0QjcwNTcwMDFGRTlGMCAvKiBXZWJHTERlYnVnU2hhZGVycy5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBXZWJHTERlYnVnU2hhZGVycy5oOyBwYXRoID0g
Y2FudmFzL1dlYkdMRGVidWdTaGFkZXJzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CUExMjBBQ0EwMTNGOTk4MzcwMEZFNEFDNyAvKiBMYXlvdXRSZXBhaW50ZXIuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTGF5b3V0UmVwYWludGVyLmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCUExMjBBQ0ExMTNGOTk4NDYwMEZFNEFDNyAvKiBMYXlvdXRSZXBhaW50
ZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gTGF5b3V0UmVwYWlu
dGVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQTEzNkEwMEExMTM0REJEMjAw
Q0M4RDUwIC8qIFhNTEh0dHBSZXF1ZXN0UHJvZ3Jlc3NFdmVudFRocm90dGxlLmNwcCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFhNTEh0dHBSZXF1ZXN0UHJvZ3Jlc3NFdmVu
dFRocm90dGxlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTE0NzkxLDYgKzE0
ODAxLDEyIEBACiAJCTQ5NDg0RkFFMTAyQ0YwMUUwMDE4N0REMyAvKiBjYW52YXMgKi8gPSB7CiAJ
CQlpc2EgPSBQQlhHcm91cDsKIAkJCWNoaWxkcmVuID0gKAorCQkJCUEwQjBGMUM4MTQ0QjcwNTcw
MDFGRTlGMCAvKiBXZWJHTERlYnVnUmVuZGVyZXJJbmZvLmNwcCAqLywKKwkJCQlBMEIwRjFDOTE0
NEI3MDU3MDAxRkU5RjAgLyogV2ViR0xEZWJ1Z1JlbmRlcmVySW5mby5oICovLAorCQkJCUEwQjBG
MUNBMTQ0QjcwNTcwMDFGRTlGMCAvKiBXZWJHTERlYnVnU2hhZGVycy5jcHAgKi8sCisJCQkJQTBC
MEYxQ0IxNDRCNzA1NzAwMUZFOUYwIC8qIFdlYkdMRGVidWdTaGFkZXJzLmggKi8sCisJCQkJQTBC
MEYxQzcxNDRCNzAzRjAwMUZFOUYwIC8qIFdlYkdMRGVidWdTaGFkZXJzLmlkbCAqLywKKwkJCQlB
MEIwRjFDNjE0NEI3MDJEMDAxRkU5RjAgLyogV2ViR0xEZWJ1Z1JlbmRlcmVySW5mby5pZGwgKi8s
CiAJCQkJNDlFRUNEQ0ExMDUwM0MyMzAwMDk5RkFCIC8qIEFycmF5QnVmZmVyLmNwcCAqLywKIAkJ
CQk0OUVFQ0RDQjEwNTAzQzIzMDAwOTlGQUIgLyogQXJyYXlCdWZmZXIuaCAqLywKIAkJCQk0OUVF
Q0RDQzEwNTAzQzIzMDAwOTlGQUIgLyogQXJyYXlCdWZmZXIuaWRsICovLApAQCAtMjQ2MjQsNiAr
MjQ2NDAsOCBAQAogCQkJCTlCMzc1RURCMTQ0NzhBMDEwMEYzQ0FFNSAvKiBNaWNyb0RhdGFJdGVt
TGlzdC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNDlBRjJENjkxNDQzNUQwNTAwMTZBNzg0IC8qIERp
c3BsYXlSZWZyZXNoTW9uaXRvci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNzFDQ0I0OUQxNDQ4MjRB
QzAwQzY3NkQ2IC8qIEltYWdlQnlTaXplQ2FjaGUuaCBpbiBIZWFkZXJzICovLAorCQkJCUEwQjBG
MUNEMTQ0QjcwNTcwMDFGRTlGMCAvKiBXZWJHTERlYnVnUmVuZGVyZXJJbmZvLmggaW4gSGVhZGVy
cyAqLywKKwkJCQlBMEIwRjFDRjE0NEI3MDU3MDAxRkU5RjAgLyogV2ViR0xEZWJ1Z1NoYWRlcnMu
aCBpbiBIZWFkZXJzICovLAogCQkJKTsKIAkJCXJ1bk9ubHlGb3JEZXBsb3ltZW50UG9zdHByb2Nl
c3NpbmcgPSAwOwogCQl9OwpAQCAtMjc0NzcsNiArMjc0OTUsOCBAQAogCQkJCTQ5QUYyRDZDMTQ0
MzVEMjEwMDE2QTc4NCAvKiBEaXNwbGF5UmVmcmVzaE1vbml0b3JNYWMuY3BwIGluIFNvdXJjZXMg
Ki8sCiAJCQkJNDlGQzdBNTAxNDQ0QUY1RjAwQTVEODY0IC8qIERpc3BsYXlSZWZyZXNoTW9uaXRv
ci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk3MUNDQjQ5QzE0NDgyNEFDMDBDNjc2RDYgLyogSW1h
Z2VCeVNpemVDYWNoZS5jcHAgaW4gU291cmNlcyAqLywKKwkJCQlBMEIwRjFDQzE0NEI3MDU3MDAx
RkU5RjAgLyogV2ViR0xEZWJ1Z1JlbmRlcmVySW5mby5jcHAgaW4gU291cmNlcyAqLywKKwkJCQlB
MEIwRjFDRTE0NEI3MDU3MDAxRkU5RjAgLyogV2ViR0xEZWJ1Z1NoYWRlcnMuY3BwIGluIFNvdXJj
ZXMgKi8sCiAJCQkpOwogCQkJcnVuT25seUZvckRlcGxveW1lbnRQb3N0cHJvY2Vzc2luZyA9IDA7
CiAJCX07CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1dlYkdMUmVuZGVyaW5n
Q29udGV4dEN1c3RvbS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
anMvSlNXZWJHTFJlbmRlcmluZ0NvbnRleHRDdXN0b20uY3BwCShyZXZpc2lvbiA5NzUzMikKKysr
IFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTV2ViR0xSZW5kZXJpbmdDb250ZXh0Q3VzdG9t
LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjksNDIgKzI5LDQ0IEBACiAKICNpbmNsdWRlICJKU1dl
YkdMUmVuZGVyaW5nQ29udGV4dC5oIgogCi0jaW5jbHVkZSAiV2ViS2l0TG9zZUNvbnRleHQuaCIK
ICNpbmNsdWRlICJFeGNlcHRpb25Db2RlLmgiCisjaW5jbHVkZSAiRmxvYXQzMkFycmF5LmgiCiAj
aW5jbHVkZSAiSFRNTENhbnZhc0VsZW1lbnQuaCIKICNpbmNsdWRlICJIVE1MSW1hZ2VFbGVtZW50
LmgiCi0jaW5jbHVkZSAiSlNXZWJLaXRMb3NlQ29udGV4dC5oIgorI2luY2x1ZGUgIkludDMyQXJy
YXkuaCIKKyNpbmNsdWRlICJKU0Zsb2F0MzJBcnJheS5oIgogI2luY2x1ZGUgIkpTSFRNTENhbnZh
c0VsZW1lbnQuaCIKICNpbmNsdWRlICJKU0hUTUxJbWFnZUVsZW1lbnQuaCIKICNpbmNsdWRlICJK
U0ltYWdlRGF0YS5oIgorI2luY2x1ZGUgIkpTSW50MzJBcnJheS5oIgogI2luY2x1ZGUgIkpTT0VT
U3RhbmRhcmREZXJpdmF0aXZlcy5oIgogI2luY2x1ZGUgIkpTT0VTVGV4dHVyZUZsb2F0LmgiCiAj
aW5jbHVkZSAiSlNPRVNWZXJ0ZXhBcnJheU9iamVjdC5oIgotI2luY2x1ZGUgIkpTV2ViR0xWZXJ0
ZXhBcnJheU9iamVjdE9FUy5oIgorI2luY2x1ZGUgIkpTVWludDhBcnJheS5oIgogI2luY2x1ZGUg
IkpTV2ViR0xCdWZmZXIuaCIKLSNpbmNsdWRlICJKU0Zsb2F0MzJBcnJheS5oIgogI2luY2x1ZGUg
IkpTV2ViR0xGcmFtZWJ1ZmZlci5oIgotI2luY2x1ZGUgIkpTSW50MzJBcnJheS5oIgogI2luY2x1
ZGUgIkpTV2ViR0xQcm9ncmFtLmgiCiAjaW5jbHVkZSAiSlNXZWJHTFJlbmRlcmJ1ZmZlci5oIgog
I2luY2x1ZGUgIkpTV2ViR0xTaGFkZXIuaCIKICNpbmNsdWRlICJKU1dlYkdMVGV4dHVyZS5oIgog
I2luY2x1ZGUgIkpTV2ViR0xVbmlmb3JtTG9jYXRpb24uaCIKLSNpbmNsdWRlICJKU1VpbnQ4QXJy
YXkuaCIKKyNpbmNsdWRlICJKU1dlYkdMVmVydGV4QXJyYXlPYmplY3RPRVMuaCIKICNpbmNsdWRl
ICJKU1dlYktpdENTU01hdHJpeC5oIgorI2luY2x1ZGUgIkpTV2ViS2l0TG9zZUNvbnRleHQuaCIK
ICNpbmNsdWRlICJOb3RJbXBsZW1lbnRlZC5oIgogI2luY2x1ZGUgIk9FU1N0YW5kYXJkRGVyaXZh
dGl2ZXMuaCIKICNpbmNsdWRlICJPRVNUZXh0dXJlRmxvYXQuaCIKICNpbmNsdWRlICJPRVNWZXJ0
ZXhBcnJheU9iamVjdC5oIgotI2luY2x1ZGUgIldlYkdMVmVydGV4QXJyYXlPYmplY3RPRVMuaCIK
ICNpbmNsdWRlICJXZWJHTEJ1ZmZlci5oIgotI2luY2x1ZGUgIkZsb2F0MzJBcnJheS5oIgorI2lu
Y2x1ZGUgIldlYkdMRGVidWdSZW5kZXJlckluZm8uaCIKKyNpbmNsdWRlICJXZWJHTERlYnVnU2hh
ZGVycy5oIgogI2luY2x1ZGUgIldlYkdMRXh0ZW5zaW9uLmgiCiAjaW5jbHVkZSAiV2ViR0xGcmFt
ZWJ1ZmZlci5oIgogI2luY2x1ZGUgIldlYkdMR2V0SW5mby5oIgotI2luY2x1ZGUgIkludDMyQXJy
YXkuaCIKICNpbmNsdWRlICJXZWJHTFByb2dyYW0uaCIKICNpbmNsdWRlICJXZWJHTFJlbmRlcmlu
Z0NvbnRleHQuaCIKKyNpbmNsdWRlICJXZWJHTFZlcnRleEFycmF5T2JqZWN0T0VTLmgiCisjaW5j
bHVkZSAiV2ViS2l0TG9zZUNvbnRleHQuaCIKICNpbmNsdWRlIDxydW50aW1lL0Vycm9yLmg+CiAj
aW5jbHVkZSA8cnVudGltZS9KU0FycmF5Lmg+CiAjaW5jbHVkZSA8d3RmL0Zhc3RNYWxsb2MuaD4K
QEAgLTE4Nyw2ICsxODksMTAgQEAgc3RhdGljIEpTVmFsdWUgdG9KUyhFeGVjU3RhdGUqIGV4ZWMs
IEpTRAogICAgICAgICByZXR1cm4gdG9KUyhleGVjLCBnbG9iYWxPYmplY3QsIHN0YXRpY19jYXN0
PE9FU1RleHR1cmVGbG9hdCo+KGV4dGVuc2lvbikpOwogICAgIGNhc2UgV2ViR0xFeHRlbnNpb246
Ok9FU1ZlcnRleEFycmF5T2JqZWN0TmFtZToKICAgICAgICAgcmV0dXJuIHRvSlMoZXhlYywgZ2xv
YmFsT2JqZWN0LCBzdGF0aWNfY2FzdDxPRVNWZXJ0ZXhBcnJheU9iamVjdCo+KGV4dGVuc2lvbikp
OworICAgIGNhc2UgV2ViR0xFeHRlbnNpb246OldlYkdMRGVidWdSZW5kZXJlckluZm9OYW1lOgor
ICAgICAgICByZXR1cm4gdG9KUyhleGVjLCBnbG9iYWxPYmplY3QsIHN0YXRpY19jYXN0PFdlYkdM
RGVidWdSZW5kZXJlckluZm8qPihleHRlbnNpb24pKTsKKyAgICBjYXNlIFdlYkdMRXh0ZW5zaW9u
OjpXZWJHTERlYnVnU2hhZGVyc05hbWU6CisgICAgICAgIHJldHVybiB0b0pTKGV4ZWMsIGdsb2Jh
bE9iamVjdCwgc3RhdGljX2Nhc3Q8V2ViR0xEZWJ1Z1NoYWRlcnMqPihleHRlbnNpb24pKTsKICAg
ICB9CiAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CiAgICAgcmV0dXJuIGpzTnVsbCgpOwpJbmRl
eDogU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4V2ViR0xSZW5kZXJpbmdDb250
ZXh0Q3VzdG9tLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9j
dXN0b20vVjhXZWJHTFJlbmRlcmluZ0NvbnRleHRDdXN0b20uY3BwCShyZXZpc2lvbiA5NzUzMikK
KysrIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9WOFdlYkdMUmVuZGVyaW5nQ29u
dGV4dEN1c3RvbS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTU2LDYgKzU2LDggQEAKICNpbmNsdWRl
ICJWOFVpbnQzMkFycmF5LmgiCiAjaW5jbHVkZSAiVjhVaW50OEFycmF5LmgiCiAjaW5jbHVkZSAi
VjhXZWJHTEJ1ZmZlci5oIgorI2luY2x1ZGUgIlY4V2ViR0xEZWJ1Z1JlbmRlcmVySW5mby5oIgor
I2luY2x1ZGUgIlY4V2ViR0xEZWJ1Z1NoYWRlcnMuaCIKICNpbmNsdWRlICJWOFdlYkdMRnJhbWVi
dWZmZXIuaCIKICNpbmNsdWRlICJWOFdlYkdMUHJvZ3JhbS5oIgogI2luY2x1ZGUgIlY4V2ViR0xS
ZW5kZXJidWZmZXIuaCIKQEAgLTE4Miw2ICsxODQsMTQgQEAgc3RhdGljIHY4OjpIYW5kbGU8djg6
OlZhbHVlPiB0b1Y4T2JqZWN0KAogICAgICAgICBleHRlbnNpb25PYmplY3QgPSB0b1Y4KHN0YXRp
Y19jYXN0PE9FU1ZlcnRleEFycmF5T2JqZWN0Kj4oZXh0ZW5zaW9uKSk7CiAgICAgICAgIHJlZmVy
ZW5jZU5hbWUgPSAib2VzVmVydGV4QXJyYXlPYmplY3ROYW1lIjsKICAgICAgICAgYnJlYWs7Cisg
ICAgY2FzZSBXZWJHTEV4dGVuc2lvbjo6V2ViR0xEZWJ1Z1JlbmRlcmVySW5mb05hbWU6CisgICAg
ICAgIGV4dGVuc2lvbk9iamVjdCA9IHRvVjgoc3RhdGljX2Nhc3Q8V2ViR0xEZWJ1Z1JlbmRlcmVy
SW5mbyo+KGV4dGVuc2lvbikpOworICAgICAgICByZWZlcmVuY2VOYW1lID0gIndlYkdMRGVidWdS
ZW5kZXJlckluZm9OYW1lIjsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBXZWJHTEV4dGVuc2lv
bjo6V2ViR0xEZWJ1Z1NoYWRlcnNOYW1lOgorICAgICAgICBleHRlbnNpb25PYmplY3QgPSB0b1Y4
KHN0YXRpY19jYXN0PFdlYkdMRGVidWdTaGFkZXJzKj4oZXh0ZW5zaW9uKSk7CisgICAgICAgIHJl
ZmVyZW5jZU5hbWUgPSAid2ViR0xEZWJ1Z1NoYWRlcnNOYW1lIjsKKyAgICAgICAgYnJlYWs7CiAg
ICAgfQogICAgIEFTU0VSVCghZXh0ZW5zaW9uT2JqZWN0LklzRW1wdHkoKSk7CiAgICAgVjhET01X
cmFwcGVyOjpzZXROYW1lZEhpZGRlblJlZmVyZW5jZShjb250ZXh0T2JqZWN0LCByZWZlcmVuY2VO
YW1lLCBleHRlbnNpb25PYmplY3QpOwpJbmRleDogU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMv
V2ViR0xEZWJ1Z1JlbmRlcmVySW5mby5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUv
aHRtbC9jYW52YXMvV2ViR0xEZWJ1Z1JlbmRlcmVySW5mby5jcHAJKHJldmlzaW9uIDApCisrKyBT
b3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTERlYnVnUmVuZGVyZXJJbmZvLmNwcAkocmV2
aXNpb24gMCkKQEAgLTAsMCArMSw1NyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMSBHb29n
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zCisgKiBhcmUgbWV0OgorICoKKyAqIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNv
ZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuICBS
ZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBv
dGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRI
SVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgQU5EIElUUyBDT05UUklCVVRPUlMgIkFT
IElTIiBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVECisgKiBXQVJSQU5USUVTIE9GIE1FUkNI
QU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCisgKiBE
SVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBPUiBJVFMgQ09OVFJJQlVUT1JTIEJF
IExJQUJMRSBGT1IgQU5ZCisgKiBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFM
LCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUworICogKElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJ
Q0VTOworICogTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVS
UlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5ECisgKiBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElU
WSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElO
Q0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBP
RiBUSEUgVVNFIE9GCisgKiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBP
U1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKwor
I2lmIEVOQUJMRShXRUJHTCkKKworI2luY2x1ZGUgIldlYkdMRGVidWdSZW5kZXJlckluZm8uaCIK
KworI2luY2x1ZGUgIldlYkdMUmVuZGVyaW5nQ29udGV4dC5oIgorCituYW1lc3BhY2UgV2ViQ29y
ZSB7CisKK1dlYkdMRGVidWdSZW5kZXJlckluZm86OldlYkdMRGVidWdSZW5kZXJlckluZm8oV2Vi
R0xSZW5kZXJpbmdDb250ZXh0KiBjb250ZXh0KQorICAgIDogV2ViR0xFeHRlbnNpb24oY29udGV4
dCkKK3sKK30KKworV2ViR0xEZWJ1Z1JlbmRlcmVySW5mbzo6fldlYkdMRGVidWdSZW5kZXJlcklu
Zm8oKQoreworfQorCitXZWJHTEV4dGVuc2lvbjo6RXh0ZW5zaW9uTmFtZSBXZWJHTERlYnVnUmVu
ZGVyZXJJbmZvOjpnZXROYW1lKCkgY29uc3QKK3sKKyAgICByZXR1cm4gV2ViR0xEZWJ1Z1JlbmRl
cmVySW5mb05hbWU7Cit9CisKK1Bhc3NPd25QdHI8V2ViR0xEZWJ1Z1JlbmRlcmVySW5mbz4gV2Vi
R0xEZWJ1Z1JlbmRlcmVySW5mbzo6Y3JlYXRlKFdlYkdMUmVuZGVyaW5nQ29udGV4dCogY29udGV4
dCkKK3sKKyAgICByZXR1cm4gYWRvcHRQdHIobmV3IFdlYkdMRGVidWdSZW5kZXJlckluZm8oY29u
dGV4dCkpOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBFTkFCTEUo
V0VCR0wpCgpQcm9wZXJ0eSBjaGFuZ2VzIG9uOiBTb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9X
ZWJHTERlYnVnUmVuZGVyZXJJbmZvLmNwcApfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCkFkZGVkOiBzdm46ZW9sLXN0eWxl
CiAgICsgTEYKCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTERlYnVnUmVu
ZGVyZXJJbmZvLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2Vi
R0xEZWJ1Z1JlbmRlcmVySW5mby5oCShyZXZpc2lvbiAwKQorKysgU291cmNlL1dlYkNvcmUvaHRt
bC9jYW52YXMvV2ViR0xEZWJ1Z1JlbmRlcmVySW5mby5oCShyZXZpc2lvbiAwKQpAQCAtMCwwICsx
LDUyIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDExIEdvb2dsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6Cisg
KgorICogMS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBi
aW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
IGluIHRoZQorICogICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92
aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9W
SURFRCBCWSBBUFBMRSBBTkQgSVRTIENPTlRSSUJVVE9SUyAiQVMgSVMiIEFORCBBTlkKKyAqIEVY
UFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywgVEhFIElNUExJRUQKKyAqIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRO
RVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKKyAqIERJU0NMQUlNRUQuIElOIE5PIEVW
RU5UIFNIQUxMIEFQUExFIE9SIElUUyBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkKKyAq
IERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09O
U0VRVUVOVElBTCBEQU1BR0VTCisgKiAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBS
T0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7CisgKiBMT1NTIE9GIFVT
RSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENB
VVNFRCBBTkQKKyAqIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRS
QUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0Ug
T1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YKKyAqIFRI
SVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBE
QU1BR0UuCisgKi8KKworI2lmbmRlZiBXZWJHTERlYnVnUmVuZGVyZXJJbmZvX2gKKyNkZWZpbmUg
V2ViR0xEZWJ1Z1JlbmRlcmVySW5mb19oCisKKyNpbmNsdWRlICJXZWJHTEV4dGVuc2lvbi5oIgor
I2luY2x1ZGUgPHd0Zi9QYXNzT3duUHRyLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xh
c3MgV2ViR0xEZWJ1Z1JlbmRlcmVySW5mbyA6IHB1YmxpYyBXZWJHTEV4dGVuc2lvbiB7CitwdWJs
aWM6CisgICAgZW51bSBFbnVtVHlwZSB7CisgICAgICAgIFVOTUFTS0VEX1ZFTkRPUl9XRUJHTCA9
IDB4OTI0NSwKKyAgICAgICAgVU5NQVNLRURfUkVOREVSRVJfV0VCR0wgPSAweDkyNDYKKyAgICB9
OworCisgICAgc3RhdGljIFBhc3NPd25QdHI8V2ViR0xEZWJ1Z1JlbmRlcmVySW5mbz4gY3JlYXRl
KFdlYkdMUmVuZGVyaW5nQ29udGV4dCopOworCisgICAgdmlydHVhbCB+V2ViR0xEZWJ1Z1JlbmRl
cmVySW5mbygpOworICAgIHZpcnR1YWwgRXh0ZW5zaW9uTmFtZSBnZXROYW1lKCkgY29uc3Q7CisK
K3ByaXZhdGU6CisgICAgV2ViR0xEZWJ1Z1JlbmRlcmVySW5mbyhXZWJHTFJlbmRlcmluZ0NvbnRl
eHQqKTsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIFdlYkdMRGVi
dWdSZW5kZXJlckluZm9faAoKUHJvcGVydHkgY2hhbmdlcyBvbjogU291cmNlL1dlYkNvcmUvaHRt
bC9jYW52YXMvV2ViR0xEZWJ1Z1JlbmRlcmVySW5mby5oCl9fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KQWRkZWQ6IHN2bjpl
b2wtc3R5bGUKICAgKyBMRgoKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdM
RGVidWdSZW5kZXJlckluZm8uaWRsCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2h0bWwv
Y2FudmFzL1dlYkdMRGVidWdSZW5kZXJlckluZm8uaWRsCShyZXZpc2lvbiAwKQorKysgU291cmNl
L1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xEZWJ1Z1JlbmRlcmVySW5mby5pZGwJKHJldmlzaW9u
IDApCkBAIC0wLDAgKzEsMzYgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTEgR29vZ2xlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwor
ICogYXJlIG1ldDoKKyAqCisgKiAxLiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11
c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiAgUmVkaXN0
cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIg
bWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNP
RlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIEFORCBJVFMgQ09OVFJJQlVUT1JTICJBUyBJUyIg
QU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAorICogV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFC
SUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRQorICogRElTQ0xB
SU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgT1IgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFC
TEUgRk9SIEFOWQorICogRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhF
TVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMKKyAqIChJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsK
KyAqIExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJ
T04pIEhPV0VWRVIgQ0FVU0VEIEFORAorICogT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdI
RVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJ
TkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhF
IFVTRSBPRgorICogVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCittb2R1bGUgaHRtbCB7CisgICAgaW50ZXJmYWNl
IFsKKyAgICAgICAgQ29uZGl0aW9uYWw9V0VCR0wsCisgICAgICAgIEdlbmVyYXRlSXNSZWFjaGFi
bGU9SW1wbENvbnRleHQsCisgICAgICAgIE9taXRDb25zdHJ1Y3RvciwKKyAgICAgICAgRG9udENo
ZWNrRW51bXMKKyAgICBdIFdlYkdMRGVidWdSZW5kZXJlckluZm8geworICAgICAgICBjb25zdCB1
bnNpZ25lZCBpbnQgVU5NQVNLRURfVkVORE9SX1dFQkdMID0gMHg5MjQ1OworICAgICAgICBjb25z
dCB1bnNpZ25lZCBpbnQgVU5NQVNLRURfUkVOREVSRVJfV0VCR0wgPSAweDkyNDY7CisgICAgfTsK
K30KClByb3BlcnR5IGNoYW5nZXMgb246IFNvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdM
RGVidWdSZW5kZXJlckluZm8uaWRsCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KQWRkZWQ6IHN2bjplb2wtc3R5bGUKICAg
KyBMRgoKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMRGVidWdTaGFkZXJz
LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTERlYnVn
U2hhZGVycy5jcHAJKHJldmlzaW9uIDApCisrKyBTb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9X
ZWJHTERlYnVnU2hhZGVycy5jcHAJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsNzEgQEAKKy8qCisg
KiBDb3B5cmlnaHQgKEMpIDIwMTEgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAq
CisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqCisgKiAxLiAgUmVk
aXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIuCisgKiAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11
c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAg
ICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhl
IGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExF
IEFORCBJVFMgQ09OVFJJQlVUT1JTICJBUyBJUyIgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBM
SUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElF
RAorICogV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFS
VElDVUxBUiBQVVJQT1NFIEFSRQorICogRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQ
TEUgT1IgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWQorICogRElSRUNULCBJTkRJ
UkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERB
TUFHRVMKKyAqIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0Yg
U1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsKKyAqIExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQ
Uk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORAorICog
T04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBM
SUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0Up
IEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRgorICogVEhJUyBTT0ZUV0FSRSwg
RVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLwor
CisjaW5jbHVkZSAiY29uZmlnLmgiCisKKyNpZiBFTkFCTEUoV0VCR0wpCisKKyNpbmNsdWRlICJX
ZWJHTERlYnVnU2hhZGVycy5oIgorCisjaW5jbHVkZSAiRXh0ZW5zaW9uczNELmgiCisjaW5jbHVk
ZSAiV2ViR0xSZW5kZXJpbmdDb250ZXh0LmgiCisjaW5jbHVkZSAiV2ViR0xTaGFkZXIuaCIKKwor
I2luY2x1ZGUgPHd0Zi9Pd25BcnJheVB0ci5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK1dl
YkdMRGVidWdTaGFkZXJzOjpXZWJHTERlYnVnU2hhZGVycyhXZWJHTFJlbmRlcmluZ0NvbnRleHQq
IGNvbnRleHQpCisgICAgOiBXZWJHTEV4dGVuc2lvbihjb250ZXh0KQoreworfQorCitXZWJHTERl
YnVnU2hhZGVyczo6fldlYkdMRGVidWdTaGFkZXJzKCkKK3sKK30KKworV2ViR0xFeHRlbnNpb246
OkV4dGVuc2lvbk5hbWUgV2ViR0xEZWJ1Z1NoYWRlcnM6OmdldE5hbWUoKSBjb25zdAoreworICAg
IHJldHVybiBXZWJHTERlYnVnU2hhZGVyc05hbWU7Cit9CisKK1Bhc3NPd25QdHI8V2ViR0xEZWJ1
Z1NoYWRlcnM+IFdlYkdMRGVidWdTaGFkZXJzOjpjcmVhdGUoV2ViR0xSZW5kZXJpbmdDb250ZXh0
KiBjb250ZXh0KQoreworICAgIHJldHVybiBhZG9wdFB0cihuZXcgV2ViR0xEZWJ1Z1NoYWRlcnMo
Y29udGV4dCkpOworfQorCitTdHJpbmcgV2ViR0xEZWJ1Z1NoYWRlcnM6OmdldFRyYW5zbGF0ZWRT
aGFkZXJTb3VyY2UoV2ViR0xTaGFkZXIqIHNoYWRlciwgRXhjZXB0aW9uQ29kZSYgZWMpCit7Cisg
ICAgVU5VU0VEX1BBUkFNKGVjKTsKKyAgICBpZiAobV9jb250ZXh0LT5pc0NvbnRleHRMb3N0KCkp
CisgICAgICAgIHJldHVybiBTdHJpbmcoKTsKKyAgICBpZiAoIW1fY29udGV4dC0+dmFsaWRhdGVX
ZWJHTE9iamVjdChzaGFkZXIpKQorICAgICAgICByZXR1cm4gIiI7CisgICAgcmV0dXJuIG1fY29u
dGV4dC0+Z3JhcGhpY3NDb250ZXh0M0QoKS0+Z2V0RXh0ZW5zaW9ucygpLT5nZXRUcmFuc2xhdGVk
U2hhZGVyU291cmNlQU5HTEUoc2hhZGVyLT5vYmplY3QoKSk7Cit9CisKK30gLy8gbmFtZXNwYWNl
IFdlYkNvcmUKKworI2VuZGlmIC8vIEVOQUJMRShXRUJHTCkKClByb3BlcnR5IGNoYW5nZXMgb246
IFNvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMRGVidWdTaGFkZXJzLmNwcApfX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fCkFkZGVkOiBzdm46ZW9sLXN0eWxlCiAgICsgTEYKCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9o
dG1sL2NhbnZhcy9XZWJHTERlYnVnU2hhZGVycy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJD
b3JlL2h0bWwvY2FudmFzL1dlYkdMRGVidWdTaGFkZXJzLmgJKHJldmlzaW9uIDApCisrKyBTb3Vy
Y2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTERlYnVnU2hhZGVycy5oCShyZXZpc2lvbiAwKQpA
QCAtMCwwICsxLDUyIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDExIEdvb2dsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFy
ZSBtZXQ6CisgKgorICogMS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJl
dGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gIFJlZGlzdHJpYnV0
aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyIGluIHRoZQorICogICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVy
aWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FS
RSBJUyBQUk9WSURFRCBCWSBBUFBMRSBBTkQgSVRTIENPTlRSSUJVVE9SUyAiQVMgSVMiIEFORCBB
TlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywgVEhFIElNUExJRUQKKyAqIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZ
IEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKKyAqIERJU0NMQUlNRUQu
IElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIE9SIElUUyBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZP
UiBBTlkKKyAqIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFS
WSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTCisgKiAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7CisgKiBM
T1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBI
T1dFVkVSIENBVVNFRCBBTkQKKyAqIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVS
IElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5F
R0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0Ug
T0YKKyAqIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkg
T0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBXZWJHTERlYnVnU2hhZGVyc19oCisjZGVm
aW5lIFdlYkdMRGVidWdTaGFkZXJzX2gKKworI2luY2x1ZGUgIkV4Y2VwdGlvbkNvZGUuaCIKKyNp
bmNsdWRlICJXZWJHTEV4dGVuc2lvbi5oIgorI2luY2x1ZGUgPHd0Zi9QYXNzT3duUHRyLmg+CisK
K25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgV2ViR0xTaGFkZXI7CisKK2NsYXNzIFdlYkdM
RGVidWdTaGFkZXJzIDogcHVibGljIFdlYkdMRXh0ZW5zaW9uIHsKK3B1YmxpYzoKKyAgICBzdGF0
aWMgUGFzc093blB0cjxXZWJHTERlYnVnU2hhZGVycz4gY3JlYXRlKFdlYkdMUmVuZGVyaW5nQ29u
dGV4dCopOworCisgICAgdmlydHVhbCB+V2ViR0xEZWJ1Z1NoYWRlcnMoKTsKKyAgICB2aXJ0dWFs
IEV4dGVuc2lvbk5hbWUgZ2V0TmFtZSgpIGNvbnN0OworCisgICAgU3RyaW5nIGdldFRyYW5zbGF0
ZWRTaGFkZXJTb3VyY2UoV2ViR0xTaGFkZXIqLCBFeGNlcHRpb25Db2RlJik7CisKK3ByaXZhdGU6
CisgICAgV2ViR0xEZWJ1Z1NoYWRlcnMoV2ViR0xSZW5kZXJpbmdDb250ZXh0Kik7Cit9OworCit9
IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBXZWJHTERlYnVnU2hhZGVyc19oCgpQ
cm9wZXJ0eSBjaGFuZ2VzIG9uOiBTb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTERlYnVn
U2hhZGVycy5oCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX18KQWRkZWQ6IHN2bjplb2wtc3R5bGUKICAgKyBMRgoKSW5kZXg6
IFNvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMRGVidWdTaGFkZXJzLmlkbAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTERlYnVnU2hhZGVycy5pZGwJ
KHJldmlzaW9uIDApCisrKyBTb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTERlYnVnU2hh
ZGVycy5pZGwJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsMzQgQEAKKy8qCisgKiBDb3B5cmlnaHQg
KEMpIDIwMTEgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqCisgKiAxLiAgUmVkaXN0cmlidXRpb25z
IG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIuCisgKiAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNl
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICAgZG9jdW1lbnRh
dGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlv
bi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIEFORCBJVFMgQ09O
VFJJQlVUT1JTICJBUyBJUyIgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJ
RVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAorICogV0FSUkFO
VElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQ
T1NFIEFSRQorICogRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgT1IgSVRTIENP
TlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWQorICogRElSRUNULCBJTkRJUkVDVCwgSU5DSURF
TlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMKKyAqIChJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBH
T09EUyBPUiBTRVJWSUNFUzsKKyAqIExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBC
VVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORAorICogT04gQU5ZIFRIRU9S
WSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9S
IFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4g
QU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRgorICogVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJ
U0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCittb2R1bGUgaHRt
bCB7CisgICAgaW50ZXJmYWNlIFsKKyAgICAgICAgQ29uZGl0aW9uYWw9V0VCR0wsCisgICAgICAg
IEdlbmVyYXRlSXNSZWFjaGFibGU9SW1wbENvbnRleHQsCisgICAgICAgIE9taXRDb25zdHJ1Y3Rv
cgorICAgIF0gV2ViR0xEZWJ1Z1NoYWRlcnMgeworICAgICAgICBbU3RyaWN0VHlwZUNoZWNraW5n
LCBDb252ZXJ0TnVsbFN0cmluZ1RvPU51bGxdIERPTVN0cmluZyBnZXRUcmFuc2xhdGVkU2hhZGVy
U291cmNlKGluIFdlYkdMU2hhZGVyIHNoYWRlcikgcmFpc2VzKERPTUV4Y2VwdGlvbik7CisgICAg
fTsKK30KClByb3BlcnR5IGNoYW5nZXMgb246IFNvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dl
YkdMRGVidWdTaGFkZXJzLmlkbApfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCkFkZGVkOiBzdm46ZW9sLXN0eWxlCiAgICsg
TEYKCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTEV4dGVuc2lvbi5oCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMRXh0ZW5zaW9uLmgJ
KHJldmlzaW9uIDk3NTMyKQorKysgU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xFeHRl
bnNpb24uaAkod29ya2luZyBjb3B5KQpAQCAtMzgsNiArMzgsOCBAQCBwdWJsaWM6CiAgICAgICAg
IE9FU1RleHR1cmVGbG9hdE5hbWUsCiAgICAgICAgIE9FU1N0YW5kYXJkRGVyaXZhdGl2ZXNOYW1l
LAogICAgICAgICBPRVNWZXJ0ZXhBcnJheU9iamVjdE5hbWUsCisgICAgICAgIFdlYkdMRGVidWdS
ZW5kZXJlckluZm9OYW1lLAorICAgICAgICBXZWJHTERlYnVnU2hhZGVyc05hbWUsCiAgICAgfTsK
IAogICAgIHZvaWQgcmVmKCkgeyBtX2NvbnRleHQtPnJlZigpOyB9CkluZGV4OiBTb3VyY2UvV2Vi
Q29yZS9odG1sL2NhbnZhcy9XZWJHTFJlbmRlcmluZ0NvbnRleHQuY3BwCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMUmVuZGVyaW5nQ29udGV4dC5jcHAJKHJl
dmlzaW9uIDk3NTMyKQorKysgU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xSZW5kZXJp
bmdDb250ZXh0LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzIsNyArMzIsNiBAQAogI2luY2x1ZGUg
IkNhY2hlZEltYWdlLmgiCiAjaW5jbHVkZSAiQ2FudmFzUGl4ZWxBcnJheS5oIgogI2luY2x1ZGUg
IkNoZWNrZWRJbnQuaCIKLSNpbmNsdWRlICJXZWJLaXRMb3NlQ29udGV4dC5oIgogI2luY2x1ZGUg
IkNvbnNvbGUuaCIKICNpbmNsdWRlICJET01XaW5kb3cuaCIKICNpbmNsdWRlICJFeHRlbnNpb25z
M0QuaCIKQEAgLTU3LDEyICs1NiwxNSBAQAogI2luY2x1ZGUgIldlYkdMQnVmZmVyLmgiCiAjaW5j
bHVkZSAiV2ViR0xDb250ZXh0QXR0cmlidXRlcy5oIgogI2luY2x1ZGUgIldlYkdMQ29udGV4dEV2
ZW50LmgiCisjaW5jbHVkZSAiV2ViR0xEZWJ1Z1JlbmRlcmVySW5mby5oIgorI2luY2x1ZGUgIldl
YkdMRGVidWdTaGFkZXJzLmgiCiAjaW5jbHVkZSAiV2ViR0xGcmFtZWJ1ZmZlci5oIgogI2luY2x1
ZGUgIldlYkdMUHJvZ3JhbS5oIgogI2luY2x1ZGUgIldlYkdMUmVuZGVyYnVmZmVyLmgiCiAjaW5j
bHVkZSAiV2ViR0xTaGFkZXIuaCIKICNpbmNsdWRlICJXZWJHTFRleHR1cmUuaCIKICNpbmNsdWRl
ICJXZWJHTFVuaWZvcm1Mb2NhdGlvbi5oIgorI2luY2x1ZGUgIldlYktpdExvc2VDb250ZXh0Lmgi
CiAKICNpbmNsdWRlIDx3dGYvQnl0ZUFycmF5Lmg+CiAjaW5jbHVkZSA8d3RmL093bkFycmF5UHRy
Lmg+CkBAIC00NzMsNiArNDc1LDEyIEBAIHZvaWQgV2ViR0xSZW5kZXJpbmdDb250ZXh0OjpzZXR1
cEZsYWdzKCkKICAgICB9CiB9CiAKK2Jvb2wgV2ViR0xSZW5kZXJpbmdDb250ZXh0OjphbGxvd1By
aXZpbGVnZWRFeHRlbnNpb25zKCkgY29uc3QKK3sKKyAgICAvLyBGSVhNRTogaW1wbGVtZW50IHRo
aXMgZnVuY3Rpb24uCisgICAgcmV0dXJuIGZhbHNlOworfQorCiBXZWJHTFJlbmRlcmluZ0NvbnRl
eHQ6On5XZWJHTFJlbmRlcmluZ0NvbnRleHQoKQogewogICAgIGRldGFjaEFuZFJlbW92ZUFsbE9i
amVjdHMoKTsKQEAgLTE5OTksNiArMjAwNywyOCBAQCBXZWJHTEV4dGVuc2lvbiogV2ViR0xSZW5k
ZXJpbmdDb250ZXh0OjpnCiAgICAgICAgICAgICBtX3dlYmtpdExvc2VDb250ZXh0ID0gV2ViS2l0
TG9zZUNvbnRleHQ6OmNyZWF0ZSh0aGlzKTsKICAgICAgICAgcmV0dXJuIG1fd2Via2l0TG9zZUNv
bnRleHQuZ2V0KCk7CiAgICAgfQorICAgIGlmIChlcXVhbElnbm9yaW5nQ2FzZShuYW1lLCAiT0VT
X3N0YW5kYXJkX2Rlcml2YXRpdmVzIikKKyAgICAgICAgJiYgbV9jb250ZXh0LT5nZXRFeHRlbnNp
b25zKCktPnN1cHBvcnRzKCJHTF9PRVNfc3RhbmRhcmRfZGVyaXZhdGl2ZXMiKSkgeworICAgICAg
ICBpZiAoIW1fb2VzU3RhbmRhcmREZXJpdmF0aXZlcykgeworICAgICAgICAgICAgbV9jb250ZXh0
LT5nZXRFeHRlbnNpb25zKCktPmVuc3VyZUVuYWJsZWQoIkdMX09FU19zdGFuZGFyZF9kZXJpdmF0
aXZlcyIpOworICAgICAgICAgICAgbV9vZXNTdGFuZGFyZERlcml2YXRpdmVzID0gT0VTU3RhbmRh
cmREZXJpdmF0aXZlczo6Y3JlYXRlKHRoaXMpOworICAgICAgICB9CisgICAgICAgIHJldHVybiBt
X29lc1N0YW5kYXJkRGVyaXZhdGl2ZXMuZ2V0KCk7CisgICAgfQorCisgICAgaWYgKGFsbG93UHJp
dmlsZWdlZEV4dGVuc2lvbnMoKSkgeworICAgICAgICBpZiAoZXF1YWxJZ25vcmluZ0Nhc2UobmFt
ZSwgIldFQkdMX2RlYnVnX3JlbmRlcmVyX2luZm8iKSkgeworICAgICAgICAgICAgaWYgKCFtX3dl
YmdsRGVidWdSZW5kZXJlckluZm8pCisgICAgICAgICAgICAgICAgbV93ZWJnbERlYnVnUmVuZGVy
ZXJJbmZvID0gV2ViR0xEZWJ1Z1JlbmRlcmVySW5mbzo6Y3JlYXRlKHRoaXMpOworICAgICAgICAg
ICAgcmV0dXJuIG1fd2ViZ2xEZWJ1Z1JlbmRlcmVySW5mby5nZXQoKTsKKyAgICAgICAgfQorICAg
ICAgICBpZiAoZXF1YWxJZ25vcmluZ0Nhc2UobmFtZSwgIldFQkdMX2RlYnVnX3NoYWRlcnMiKQor
ICAgICAgICAgICAgJiYgbV9jb250ZXh0LT5nZXRFeHRlbnNpb25zKCktPnN1cHBvcnRzKCJHTF9B
TkdMRV90cmFuc2xhdGVkX3NoYWRlcl9zb3VyY2UiKSkgeworICAgICAgICAgICAgaWYgKCFtX3dl
YmdsRGVidWdTaGFkZXJzKQorICAgICAgICAgICAgICAgIG1fd2ViZ2xEZWJ1Z1NoYWRlcnMgPSBX
ZWJHTERlYnVnU2hhZGVyczo6Y3JlYXRlKHRoaXMpOworICAgICAgICAgICAgcmV0dXJuIG1fd2Vi
Z2xEZWJ1Z1NoYWRlcnMuZ2V0KCk7CisgICAgICAgIH0KKyAgICB9CiAKICAgICByZXR1cm4gMDsK
IH0KQEAgLTIyNDUsNiArMjI3NSwxNiBAQCBXZWJHTEdldEluZm8gV2ViR0xSZW5kZXJpbmdDb250
ZXh0OjpnZXRQCiAgICAgICAgICAgICByZXR1cm4gZ2V0VW5zaWduZWRJbnRQYXJhbWV0ZXIoRXh0
ZW5zaW9uczNEOjpGUkFHTUVOVF9TSEFERVJfREVSSVZBVElWRV9ISU5UX09FUyk7CiAgICAgICAg
IG1fY29udGV4dC0+c3ludGhlc2l6ZUdMRXJyb3IoR3JhcGhpY3NDb250ZXh0M0Q6OklOVkFMSURf
RU5VTSk7CiAgICAgICAgIHJldHVybiBXZWJHTEdldEluZm8oKTsKKyAgICBjYXNlIFdlYkdMRGVi
dWdSZW5kZXJlckluZm86OlVOTUFTS0VEX1JFTkRFUkVSX1dFQkdMOgorICAgICAgICBpZiAobV93
ZWJnbERlYnVnUmVuZGVyZXJJbmZvKQorICAgICAgICAgICAgcmV0dXJuIFdlYkdMR2V0SW5mbyht
X2NvbnRleHQtPmdldFN0cmluZyhHcmFwaGljc0NvbnRleHQzRDo6UkVOREVSRVIpKTsKKyAgICAg
ICAgbV9jb250ZXh0LT5zeW50aGVzaXplR0xFcnJvcihHcmFwaGljc0NvbnRleHQzRDo6SU5WQUxJ
RF9FTlVNKTsKKyAgICAgICAgcmV0dXJuIFdlYkdMR2V0SW5mbygpOworICAgIGNhc2UgV2ViR0xE
ZWJ1Z1JlbmRlcmVySW5mbzo6VU5NQVNLRURfVkVORE9SX1dFQkdMOgorICAgICAgICBpZiAobV93
ZWJnbERlYnVnUmVuZGVyZXJJbmZvKQorICAgICAgICAgICAgcmV0dXJuIFdlYkdMR2V0SW5mbyht
X2NvbnRleHQtPmdldFN0cmluZyhHcmFwaGljc0NvbnRleHQzRDo6VkVORE9SKSk7CisgICAgICAg
IG1fY29udGV4dC0+c3ludGhlc2l6ZUdMRXJyb3IoR3JhcGhpY3NDb250ZXh0M0Q6OklOVkFMSURf
RU5VTSk7CisgICAgICAgIHJldHVybiBXZWJHTEdldEluZm8oKTsKICAgICBjYXNlIEV4dGVuc2lv
bnMzRDo6VkVSVEVYX0FSUkFZX0JJTkRJTkdfT0VTOiAvLyBPRVNfdmVydGV4X2FycmF5X29iamVj
dAogICAgICAgICBpZiAobV9vZXNWZXJ0ZXhBcnJheU9iamVjdCkgewogICAgICAgICAgICAgaWYg
KCFtX2JvdW5kVmVydGV4QXJyYXlPYmplY3QtPmlzRGVmYXVsdE9iamVjdCgpKQpAQCAtMjQxNyw2
ICsyNDU3LDEzIEBAIFZlY3RvcjxTdHJpbmc+IFdlYkdMUmVuZGVyaW5nQ29udGV4dDo6Z2UKICAg
ICBpZiAobV9jb250ZXh0LT5nZXRFeHRlbnNpb25zKCktPnN1cHBvcnRzKCJHTF9PRVNfdmVydGV4
X2FycmF5X29iamVjdCIpKQogICAgICAgICByZXN1bHQuYXBwZW5kKCJPRVNfdmVydGV4X2FycmF5
X29iamVjdCIpOwogICAgIHJlc3VsdC5hcHBlbmQoIldFQktJVF9sb3NlX2NvbnRleHQiKTsKKwor
ICAgIGlmIChhbGxvd1ByaXZpbGVnZWRFeHRlbnNpb25zKCkpIHsKKyAgICAgICAgaWYgKG1fY29u
dGV4dC0+Z2V0RXh0ZW5zaW9ucygpLT5zdXBwb3J0cygiR0xfQU5HTEVfdHJhbnNsYXRlZF9zaGFk
ZXJfc291cmNlIikpCisgICAgICAgICAgICByZXN1bHQuYXBwZW5kKCJXRUJHTF9kZWJ1Z19zaGFk
ZXJzIik7CisgICAgICAgIHJlc3VsdC5hcHBlbmQoIldFQkdMX2RlYnVnX3JlbmRlcmVyX2luZm8i
KTsKKyAgICB9CisKICAgICByZXR1cm4gcmVzdWx0OwogfQogCkluZGV4OiBTb3VyY2UvV2ViQ29y
ZS9odG1sL2NhbnZhcy9XZWJHTFJlbmRlcmluZ0NvbnRleHQuaAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFJlbmRlcmluZ0NvbnRleHQuaAkocmV2aXNpb24g
OTc1MzIpCisrKyBTb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFJlbmRlcmluZ0NvbnRl
eHQuaAkod29ya2luZyBjb3B5KQpAQCAtNDAsOSArNDAsMTkgQEAKIAogbmFtZXNwYWNlIFdlYkNv
cmUgewogCitjbGFzcyBIVE1MSW1hZ2VFbGVtZW50OworY2xhc3MgSFRNTFZpZGVvRWxlbWVudDsK
K2NsYXNzIEltYWdlQnVmZmVyOworY2xhc3MgSW1hZ2VEYXRhOworY2xhc3MgSW50U2l6ZTsKK2Ns
YXNzIE9FU1N0YW5kYXJkRGVyaXZhdGl2ZXM7CitjbGFzcyBPRVNUZXh0dXJlRmxvYXQ7CitjbGFz
cyBPRVNWZXJ0ZXhBcnJheU9iamVjdDsKIGNsYXNzIFdlYkdMQWN0aXZlSW5mbzsKIGNsYXNzIFdl
YkdMQnVmZmVyOwogY2xhc3MgV2ViR0xDb250ZXh0QXR0cmlidXRlczsKK2NsYXNzIFdlYkdMRGVi
dWdSZW5kZXJlckluZm87CitjbGFzcyBXZWJHTERlYnVnU2hhZGVyczsKIGNsYXNzIFdlYkdMRXh0
ZW5zaW9uOwogY2xhc3MgV2ViR0xGcmFtZWJ1ZmZlcjsKIGNsYXNzIFdlYkdMT2JqZWN0OwpAQCAt
NTEsMTYgKzYxLDggQEAgY2xhc3MgV2ViR0xSZW5kZXJidWZmZXI7CiBjbGFzcyBXZWJHTFNoYWRl
cjsKIGNsYXNzIFdlYkdMVGV4dHVyZTsKIGNsYXNzIFdlYkdMVW5pZm9ybUxvY2F0aW9uOwotY2xh
c3MgV2ViS2l0TG9zZUNvbnRleHQ7Ci1jbGFzcyBIVE1MSW1hZ2VFbGVtZW50OwotY2xhc3MgSFRN
TFZpZGVvRWxlbWVudDsKLWNsYXNzIEltYWdlQnVmZmVyOwotY2xhc3MgSW1hZ2VEYXRhOwotY2xh
c3MgSW50U2l6ZTsKLWNsYXNzIE9FU1N0YW5kYXJkRGVyaXZhdGl2ZXM7Ci1jbGFzcyBPRVNUZXh0
dXJlRmxvYXQ7Ci1jbGFzcyBPRVNWZXJ0ZXhBcnJheU9iamVjdDsKIGNsYXNzIFdlYkdMVmVydGV4
QXJyYXlPYmplY3RPRVM7CitjbGFzcyBXZWJLaXRMb3NlQ29udGV4dDsKIAogY2xhc3MgV2ViR0xS
ZW5kZXJpbmdDb250ZXh0IDogcHVibGljIENhbnZhc1JlbmRlcmluZ0NvbnRleHQgewogcHVibGlj
OgpAQCAtMzA2LDYgKzMwOCw3IEBAIHB1YmxpYzoKICAgcHJpdmF0ZToKICAgICBmcmllbmQgY2xh
c3MgV2ViR0xPYmplY3Q7CiAgICAgZnJpZW5kIGNsYXNzIE9FU1ZlcnRleEFycmF5T2JqZWN0Owor
ICAgIGZyaWVuZCBjbGFzcyBXZWJHTERlYnVnU2hhZGVyczsKIAogICAgIFdlYkdMUmVuZGVyaW5n
Q29udGV4dChIVE1MQ2FudmFzRWxlbWVudCosIFBhc3NSZWZQdHI8R3JhcGhpY3NDb250ZXh0M0Q+
LCBHcmFwaGljc0NvbnRleHQzRDo6QXR0cmlidXRlcyk7CiAgICAgdm9pZCBpbml0aWFsaXplTmV3
Q29udGV4dCgpOwpAQCAtNDc0LDYgKzQ3Nyw4IEBAIHB1YmxpYzoKICAgICBPd25QdHI8T0VTU3Rh
bmRhcmREZXJpdmF0aXZlcz4gbV9vZXNTdGFuZGFyZERlcml2YXRpdmVzOwogICAgIE93blB0cjxP
RVNWZXJ0ZXhBcnJheU9iamVjdD4gbV9vZXNWZXJ0ZXhBcnJheU9iamVjdDsKICAgICBPd25QdHI8
V2ViS2l0TG9zZUNvbnRleHQ+IG1fd2Via2l0TG9zZUNvbnRleHQ7CisgICAgT3duUHRyPFdlYkdM
RGVidWdSZW5kZXJlckluZm8+IG1fd2ViZ2xEZWJ1Z1JlbmRlcmVySW5mbzsKKyAgICBPd25QdHI8
V2ViR0xEZWJ1Z1NoYWRlcnM+IG1fd2ViZ2xEZWJ1Z1NoYWRlcnM7CiAKICAgICAvLyBIZWxwZXJz
IGZvciBnZXRQYXJhbWV0ZXIgYW5kIG90aGVycwogICAgIFdlYkdMR2V0SW5mbyBnZXRCb29sZWFu
UGFyYW1ldGVyKEdDM0RlbnVtKTsKQEAgLTYyMiw2ICs2MjcsOSBAQCBwdWJsaWM6CiAgICAgLy8g
SGVscGVyIGZvciByZXN0b3JhdGlvbiBhZnRlciBjb250ZXh0IGxvc3QuCiAgICAgdm9pZCBtYXli
ZVJlc3RvcmVDb250ZXh0KExvc3RDb250ZXh0TW9kZSk7CiAKKyAgICAvLyBEZXRlcm1pbmUgaWYg
d2UgYXJlIHJ1bm5pbmcgdGhlIHByaXZpbGVnZWQgY29kZSBpbiB0aGUgYnJvd3Nlci4KKyAgICBi
b29sIGFsbG93UHJpdmlsZWdlZEV4dGVuc2lvbnMoKSBjb25zdDsKKwogICAgIGZyaWVuZCBjbGFz
cyBXZWJHTFN0YXRlUmVzdG9yZXI7CiB9OwogCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9FeHRlbnNpb25zM0QuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9FeHRlbnNpb25zM0QuaAkocmV2aXNpb24gOTc1MzIpCisrKyBTb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9FeHRlbnNpb25zM0QuaAkod29ya2luZyBjb3B5
KQpAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTAgR29vZ2xlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxMSBHb29nbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC01
Niw2ICs1Niw3IEBAIHB1YmxpYzoKICAgICAvLyAgIEdMX09FU19zdGFuZGFyZF9kZXJpdmF0aXZl
cwogICAgIC8vICAgR0xfT0VTX3JnYjhfcmdiYTgKICAgICAvLyAgIEdMX09FU192ZXJ0ZXhfYXJy
YXlfb2JqZWN0CisgICAgLy8gICBHTF9BTkdMRV90cmFuc2xhdGVkX3NoYWRlcl9zb3VyY2UKIAog
ICAgIC8vIFRha2VzIGZ1bGwgbmFtZSBvZiBleHRlbnNpb247IGZvciBleGFtcGxlLAogICAgIC8v
ICJHTF9FWFRfdGV4dHVyZV9mb3JtYXRfQkdSQTg4ODgiLgpAQCAtMTAzLDYgKzEwNCw5IEBAIHB1
YmxpYzoKICAgICAgICAgCiAgICAgICAgIC8vIEdMX09FU192ZXJ0ZXhfYXJyYXlfb2JqZWN0IG5h
bWVzCiAgICAgICAgIFZFUlRFWF9BUlJBWV9CSU5ESU5HX09FUyA9IDB4ODVCNSwKKworICAgICAg
ICAvLyBHTF9BTkdMRV90cmFuc2xhdGVkX3NoYWRlcl9zb3VyY2UKKyAgICAgICAgVFJBTlNMQVRF
RF9TSEFERVJfU09VUkNFX0xFTkdUSF9BTkdMRSA9IDB4OTNBMCwKICAgICB9OwogCiAgICAgLy8g
R0xfQVJCX3JvYnVzdG5lc3MKQEAgLTEyNSw2ICsxMjksOSBAQCBwdWJsaWM6CiAgICAgdmlydHVh
bCB2b2lkIGRlbGV0ZVZlcnRleEFycmF5T0VTKFBsYXRmb3JtM0RPYmplY3QpID0gMDsKICAgICB2
aXJ0dWFsIEdDM0Rib29sZWFuIGlzVmVydGV4QXJyYXlPRVMoUGxhdGZvcm0zRE9iamVjdCkgPSAw
OwogICAgIHZpcnR1YWwgdm9pZCBiaW5kVmVydGV4QXJyYXlPRVMoUGxhdGZvcm0zRE9iamVjdCkg
PSAwOworCisgICAgLy8gR0xfQU5HTEVfdHJhbnNsYXRlZF9zaGFkZXJfc291cmNlCisgICAgdmly
dHVhbCBTdHJpbmcgZ2V0VHJhbnNsYXRlZFNoYWRlclNvdXJjZUFOR0xFKFBsYXRmb3JtM0RPYmpl
Y3QpID0gMDsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKSW5kZXg6IFNvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzVHlwZXMzRC5oCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzVHlwZXMzRC5oCShyZXZpc2lv
biA5NzUzMikKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzVHlw
ZXMzRC5oCSh3b3JraW5nIGNvcHkpCkBAIC00NCw2ICs0NCw3IEBAIHR5cGVkZWYgZmxvYXQgR0Mz
RGZsb2F0OwogdHlwZWRlZiBmbG9hdCBHQzNEY2xhbXBmOwogdHlwZWRlZiBzaWduZWQgbG9uZyBp
bnQgR0MzRGludHB0cjsKIHR5cGVkZWYgc2lnbmVkIGxvbmcgaW50IEdDM0RzaXplaXB0cjsKK3R5
cGVkZWYgY2hhciBHQzNEY2hhcjsKIAogdHlwZWRlZiBHQzNEdWludCBQbGF0Zm9ybTNET2JqZWN0
OwogCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9FeHRl
bnNpb25zM0RDaHJvbWl1bS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2Nocm9taXVtL0V4dGVuc2lvbnMzRENocm9taXVtLmgJKHJldmlzaW9uIDk3NTMy
KQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vRXh0ZW5zaW9u
czNEQ2hyb21pdW0uaAkod29ya2luZyBjb3B5KQpAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5
cmlnaHQgKEMpIDIwMTAgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHly
aWdodCAoQykgMjAxMSBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC01Niw2ICs1Niw3IEBAIHB1YmxpYzoKICAgICB2aXJ0
dWFsIHZvaWQgZGVsZXRlVmVydGV4QXJyYXlPRVMoUGxhdGZvcm0zRE9iamVjdCk7CiAgICAgdmly
dHVhbCBHQzNEYm9vbGVhbiBpc1ZlcnRleEFycmF5T0VTKFBsYXRmb3JtM0RPYmplY3QpOwogICAg
IHZpcnR1YWwgdm9pZCBiaW5kVmVydGV4QXJyYXlPRVMoUGxhdGZvcm0zRE9iamVjdCk7CisgICAg
dmlydHVhbCBTdHJpbmcgZ2V0VHJhbnNsYXRlZFNoYWRlclNvdXJjZUFOR0xFKFBsYXRmb3JtM0RP
YmplY3QpOwogCiAgICAgZW51bSB7CiAgICAgICAgIC8vIEdMX0NIUk9NSVVNX21hcF9zdWIgKGVu
dW1zIGluaGVyaXRlZCBmcm9tIEdMX0FSQl92ZXJ0ZXhfYnVmZmVyX29iamVjdCkKSW5kZXg6IFNv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL29wZW5nbC9FeHRlbnNpb25zM0RPcGVuR0wu
Y3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL29wZW5n
bC9FeHRlbnNpb25zM0RPcGVuR0wuY3BwCShyZXZpc2lvbiA5NzUzMikKKysrIFNvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL29wZW5nbC9FeHRlbnNpb25zM0RPcGVuR0wuY3BwCSh3b3Jr
aW5nIGNvcHkpCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMCBHb29n
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDExIEdvb2ds
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMKQEAgLTE5Myw2ICsxOTMsMTMgQEAgdm9pZCBFeHRlbnNpb25zM0RPcGVuR0w6OmJpbmRWZXJ0
ZXhBcnJheQogI2VuZGlmCiB9CiAKK1N0cmluZyBFeHRlbnNpb25zM0RPcGVuR0w6OmdldFRyYW5z
bGF0ZWRTaGFkZXJTb3VyY2VBTkdMRShQbGF0Zm9ybTNET2JqZWN0IHNoYWRlcikKK3sKKyAgICBV
TlVTRURfUEFSQU0oc2hhZGVyKTsKKyAgICByZXR1cm4gIiI7CisgICAgLy8gRklYTUU6IGltcGxl
bWVudCB0aGlzIGZ1bmN0aW9uIGFuZCBhZGQgR0xfQU5HTEVfdHJhbnNsYXRlZF9zaGFkZXJfc291
cmNlIGluIHN1cHBvcnRzKCkuCit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAogI2VuZGlm
IC8vIEVOQUJMRShXRUJHTCkKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L29wZW5nbC9FeHRlbnNpb25zM0RPcGVuR0wuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wvRXh0ZW5zaW9uczNET3BlbkdMLmgJKHJldmlzaW9u
IDk3NTMyKQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0V4dGVu
c2lvbnMzRE9wZW5HTC5oCSh3b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENv
cHlyaWdodCAoQykgMjAxMCBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29w
eXJpZ2h0IChDKSAyMDExIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICog
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTUwLDYgKzUwLDcgQEAgcHVibGljOgogICAgIHZp
cnR1YWwgdm9pZCBkZWxldGVWZXJ0ZXhBcnJheU9FUyhQbGF0Zm9ybTNET2JqZWN0KTsKICAgICB2
aXJ0dWFsIEdDM0Rib29sZWFuIGlzVmVydGV4QXJyYXlPRVMoUGxhdGZvcm0zRE9iamVjdCk7CiAg
ICAgdmlydHVhbCB2b2lkIGJpbmRWZXJ0ZXhBcnJheU9FUyhQbGF0Zm9ybTNET2JqZWN0KTsKKyAg
ICB2aXJ0dWFsIFN0cmluZyBnZXRUcmFuc2xhdGVkU2hhZGVyU291cmNlQU5HTEUoUGxhdGZvcm0z
RE9iamVjdCk7CiAKIHByaXZhdGU6CiAgICAgLy8gVGhpcyBjbGFzcyBvbmx5IG5lZWRzIHRvIGJl
IGluc3RhbnRpYXRlZCBieSBHcmFwaGljc0NvbnRleHQzRCBpbXBsZW1lbnRhdGlvbnMuCkluZGV4
OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9xdC9FeHRlbnNpb25zM0RRdC5jcHAK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvcXQvRXh0ZW5z
aW9uczNEUXQuY3BwCShyZXZpc2lvbiA5NzUzMikKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL3F0L0V4dGVuc2lvbnMzRFF0LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMSw1ICsx
LDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTAgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxMSBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC04OCw2ICs4OCwxMSBA
QCB2b2lkIEV4dGVuc2lvbnMzRFF0OjpiaW5kVmVydGV4QXJyYXlPRVMoCiB7CiB9CiAKK1N0cmlu
ZyBFeHRlbnNpb25zM0RRdDo6Z2V0VHJhbnNsYXRlZFNoYWRlclNvdXJjZUFOR0xFKFBsYXRmb3Jt
M0RPYmplY3Qgc2hhZGVyKQoreworICAgIHJldHVybiAiIjsKK30KKwogfSAvLyBuYW1lc3BhY2Ug
V2ViQ29yZQogCiAjZW5kaWYgLy8gRU5BQkxFKFdFQkdMKQpJbmRleDogU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvcXQvRXh0ZW5zaW9uczNEUXQuaAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9xdC9FeHRlbnNpb25zM0RRdC5oCShyZXZpc2lv
biA5NzUzMikKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3F0L0V4dGVuc2lv
bnMzRFF0LmgJKHdvcmtpbmcgY29weSkKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0
IChDKSAyMDEwIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQg
KEMpIDIwMTEgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucwpAQCAtNDUsNiArNDUsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2
b2lkIGRlbGV0ZVZlcnRleEFycmF5T0VTKFBsYXRmb3JtM0RPYmplY3QpOwogICAgIHZpcnR1YWwg
R0MzRGJvb2xlYW4gaXNWZXJ0ZXhBcnJheU9FUyhQbGF0Zm9ybTNET2JqZWN0KTsKICAgICB2aXJ0
dWFsIHZvaWQgYmluZFZlcnRleEFycmF5T0VTKFBsYXRmb3JtM0RPYmplY3QpOworICAgIHZpcnR1
YWwgU3RyaW5nIGdldFRyYW5zbGF0ZWRTaGFkZXJTb3VyY2VBTkdMRShQbGF0Zm9ybTNET2JqZWN0
KTsKIAogcHJpdmF0ZToKICAgICAvLyBUaGlzIGNsYXNzIG9ubHkgbmVlZHMgdG8gYmUgaW5zdGFu
dGlhdGVkIGJ5IEdyYXBoaWNzQ29udGV4dDNEIGltcGxlbWVudGF0aW9ucy4KSW5kZXg6IFNvdXJj
ZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQv
Y2hyb21pdW0vQ2hhbmdlTG9nCShyZXZpc2lvbiA5NzUzMikKKysrIFNvdXJjZS9XZWJLaXQvY2hy
b21pdW0vQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMjkgQEAKKzIwMTEtMTAt
MTQgIFpoZW55YW8gTW8gIDx6bW9AZ29vZ2xlLmNvbT4KKworICAgICAgICBJbXBsZW1lbnQgV0VC
R0xfZGVidWdfc2hhZGVycyBhbmQgV0VCR0xfZGVidWdfcmVuZGVyZXJfaW5mbyBleHRlbnNpb25z
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03MDA3Nwor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogcHVibGlj
L1dlYkdyYXBoaWNzQ29udGV4dDNELmg6IEFkZGVkIHN1cHBvcnQgZm9yIGdldFRyYW5zbGF0ZWRT
aGFkZXJTb3VyY2VBTkdMRS4KKyAgICAgICAgKFdlYktpdDo6V2ViR3JhcGhpY3NDb250ZXh0M0Q6
OmdldFRyYW5zbGF0ZWRTaGFkZXJTb3VyY2VBTkdMRSk6CisgICAgICAgICogc3JjL0V4dGVuc2lv
bnMzRENocm9taXVtLmNwcDogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpFeHRlbnNpb25zM0RD
aHJvbWl1bTo6Z2V0VHJhbnNsYXRlZFNoYWRlclNvdXJjZUFOR0xFKToKKyAgICAgICAgKiBzcmMv
R3JhcGhpY3NDb250ZXh0M0RDaHJvbWl1bS5jcHA6IERpdHRvLgorICAgICAgICAqIHNyYy9HcmFw
aGljc0NvbnRleHQzRFByaXZhdGUuaDogRGl0dG8uCisKKzIwMTEtMTAtMTQgIERtaXRyeSBMb21v
diAgPGRzbG9tb3ZAZ29vZ2xlLmNvbT4KKworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9NzAxMjAKKyAgICAgICAgW0Nocm9taXVtXSBQYXNzIE1lc3NhZ2VQ
b3J0QXJyYXkgdG8gU2VyaWFsaXplZFNjcmlwdFZhbHVlOjpzZXJpYWxpemUvZGVzZXJpYWxpemUu
CisgICAgICAgIFRoaXMgcGF0Y2ggYXVnbWVudHMgU2VyaWFsaXplZFNjcmlwdFZhbHVlIHdpdGgg
TWVzc2FnZVBvcnRBcnJheSogcGFyYW1ldGVyIHRvIGltcGxlbWVudCBNZXNzYWdlUG9ydCAKKyAg
ICAgICAgdHJhbnNmZXIgd2l0aGluIHRoZSBtZXNzYWdlIGluIHRoZSBmdXR1cmUuCisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgRGF2aWQgTGV2aW4uCisKKyAgICAgICAgKiBzcmMvV2ViU2VyaWFsaXpl
ZFNjcmlwdFZhbHVlLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViU2VyaWFsaXplZFNjcmlwdFZh
bHVlOjpzZXJpYWxpemUpOgorCiAyMDExLTEwLTE0ICBEbWl0cnkgTG9tb3YgIDxkc2xvbW92QGdv
b2dsZS5jb20+CiAKICAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTcwMTIwCkluZGV4OiBTb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJHcmFwaGlj
c0NvbnRleHQzRC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGlj
L1dlYkdyYXBoaWNzQ29udGV4dDNELmgJKHJldmlzaW9uIDk3NTMyKQorKysgU291cmNlL1dlYktp
dC9jaHJvbWl1bS9wdWJsaWMvV2ViR3JhcGhpY3NDb250ZXh0M0QuaAkod29ya2luZyBjb3B5KQpA
QCAtMzY1LDYgKzM2NSwxMCBAQCBwdWJsaWM6CiAgICAgLy8gc3RhdGUgaXMgc3RpY2t5LCByYXRo
ZXIgdGhhbiByZXBvcnRlZCBvbmx5IG9uY2UuCiAgICAgdmlydHVhbCBXR0MzRGVudW0gZ2V0R3Jh
cGhpY3NSZXNldFN0YXR1c0FSQigpIHsgcmV0dXJuIDA7IC8qIEdMX05PX0VSUk9SICovIH0KIAor
ICAgIC8vIEZJWE1FOiBtYWtlIHRoaXMgZnVuY3Rpb24gcHVyZSB2aXJ0dWFsIG9uY2UgaXQgaXMg
aW1wbGVtZW50ZWQgaW4KKyAgICAvLyBib3RoIGNvbW1hbmQgYnVmZmVyIHBvcnQgYW5kIGluLXBy
b2Nlc3MgcG9ydC4KKyAgICB2aXJ0dWFsIFdlYlN0cmluZyBnZXRUcmFuc2xhdGVkU2hhZGVyU291
cmNlQU5HTEUoV2ViR0xJZCBzaGFkZXIpIHsgcmV0dXJuIFdlYlN0cmluZygpOyB9CisKICNpZiBX
RUJLSVRfVVNJTkdfU0tJQQogICAgIEdyR0xJbnRlcmZhY2UqIGNyZWF0ZUdyR0xJbnRlcmZhY2Uo
KTsKICNlbmRpZgpJbmRleDogU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvRXh0ZW5zaW9uczNE
Q2hyb21pdW0uY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0V4
dGVuc2lvbnMzRENocm9taXVtLmNwcAkocmV2aXNpb24gOTc1MzIpCisrKyBTb3VyY2UvV2ViS2l0
L2Nocm9taXVtL3NyYy9FeHRlbnNpb25zM0RDaHJvbWl1bS5jcHAJKHdvcmtpbmcgY29weSkKQEAg
LTExNSw2ICsxMTUsMTEgQEAgdm9pZCBFeHRlbnNpb25zM0RDaHJvbWl1bTo6YmluZFZlcnRleEFy
cgogewogfQogCitTdHJpbmcgRXh0ZW5zaW9uczNEQ2hyb21pdW06OmdldFRyYW5zbGF0ZWRTaGFk
ZXJTb3VyY2VBTkdMRShQbGF0Zm9ybTNET2JqZWN0IHNoYWRlcikKK3sKKyAgICByZXR1cm4gbV9w
cml2YXRlLT5nZXRUcmFuc2xhdGVkU2hhZGVyU291cmNlQU5HTEUoc2hhZGVyKTsKK30KKwogdm9p
ZCBFeHRlbnNpb25zM0RDaHJvbWl1bTo6c2V0U3dhcEJ1ZmZlcnNDb21wbGV0ZUNhbGxiYWNrQ0hS
T01JVU0oUGFzc093blB0cjxTd2FwQnVmZmVyc0NvbXBsZXRlQ2FsbGJhY2tDSFJPTUlVTT4gY2Fs
bGJhY2spCiB7CiAgICAgbV9wcml2YXRlLT5zZXRTd2FwQnVmZmVyc0NvbXBsZXRlQ2FsbGJhY2tD
SFJPTUlVTShjYWxsYmFjayk7CkluZGV4OiBTb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9HcmFw
aGljc0NvbnRleHQzRENocm9taXVtLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L2No
cm9taXVtL3NyYy9HcmFwaGljc0NvbnRleHQzRENocm9taXVtLmNwcAkocmV2aXNpb24gOTc1MzIp
CisrKyBTb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9HcmFwaGljc0NvbnRleHQzRENocm9taXVt
LmNwcAkod29ya2luZyBjb3B5KQpAQCAtODg3LDYgKzg4Nyw4IEBAIERFTEVHQVRFX1RPX0lNUExf
NShyZW5kZXJidWZmZXJTdG9yYWdlTXUKIERFTEVHQVRFX1RPX0lNUEwocmF0ZUxpbWl0T2Zmc2Ny
ZWVuQ29udGV4dENIUk9NSVVNKQogREVMRUdBVEVfVE9fSU1QTF9SKGdldEdyYXBoaWNzUmVzZXRT
dGF0dXNBUkIsIEdDM0RlbnVtKQogCitERUxFR0FURV9UT19JTVBMXzFSKGdldFRyYW5zbGF0ZWRT
aGFkZXJTb3VyY2VBTkdMRSwgUGxhdGZvcm0zRE9iamVjdCwgU3RyaW5nKQorCiAvLy0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0KIC8vIEdyYXBoaWNzQ29udGV4dDNECiAvLwpJbmRleDogU291cmNlL1dlYktpdC9jaHJv
bWl1bS9zcmMvR3JhcGhpY3NDb250ZXh0M0RQcml2YXRlLmgKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYktpdC9jaHJvbWl1bS9zcmMvR3JhcGhpY3NDb250ZXh0M0RQcml2YXRlLmgJKHJldmlzaW9u
IDk3NTMyKQorKysgU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvR3JhcGhpY3NDb250ZXh0M0RQ
cml2YXRlLmgJKHdvcmtpbmcgY29weSkKQEAgLTMwMyw2ICszMDMsOSBAQCBwdWJsaWM6CiAgICAg
Ly8gR0xfQVJCX3JvYnVzdG5lc3MKICAgICBHQzNEZW51bSBnZXRHcmFwaGljc1Jlc2V0U3RhdHVz
QVJCKCk7CiAKKyAgICAvLyBHTF9BTkdMRV90cmFuc2xhdGVkX3NoYWRlcl9zb3VyY2UKKyAgICBT
dHJpbmcgZ2V0VHJhbnNsYXRlZFNoYWRlclNvdXJjZUFOR0xFKFBsYXRmb3JtM0RPYmplY3Qgc2hh
ZGVyKTsKKwogcHJpdmF0ZToKICAgICBHcmFwaGljc0NvbnRleHQzRFByaXZhdGUoV2ViS2l0OjpX
ZWJWaWV3SW1wbCosIFBhc3NPd25QdHI8V2ViS2l0OjpXZWJHcmFwaGljc0NvbnRleHQzRD4sIEdy
YXBoaWNzQ29udGV4dDNEOjpBdHRyaWJ1dGVzKTsKIAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>111268</attachid>
            <date>2011-10-17 08:28:29 -0700</date>
            <delta_ts>2011-10-19 15:24:59 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-70077-20111017082828.patch</filename>
            <type>text/plain</type>
            <size>62533</size>
            <attacher name="Zhenyao Mo">zmo</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDk3NjIxKQorKysgU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMzkwIEBACisyMDExLTEwLTE0ICBaaGVueWFv
IE1vICA8em1vQGdvb2dsZS5jb20+CisKKyAgICAgICAgSW1wbGVtZW50IFdFQkdMX2RlYnVnX3No
YWRlcnMgYW5kIFdFQkdMX2RlYnVnX3JlbmRlcmVyX2luZm8gZXh0ZW5zaW9ucworICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzAwNzcKKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFdlYkNvcmUuZ3lwaTogYWRk
ZWQgbmV3IGV4dGVuc2lvbiBjbGFzcyBmaWxlcy4KKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJv
ai9wcm9qZWN0LnBieHByb2o6IGRpdHRvLgorICAgICAgICAqIFdlYkNvcmUucHJvOiBkaXR0by4K
KyAgICAgICAgKiBDTWFrZUxpc3RzLnR4dDogZGl0dG8uCisgICAgICAgICogR05VbWFrZWZpbGUu
bGlzdC5hbTogZGl0dG8uCisgICAgICAgICogYmluZGluZ3MvanMvSlNXZWJHTFJlbmRlcmluZ0Nv
bnRleHRDdXN0b20uY3BwOgorICAgICAgICAoV2ViQ29yZTo6dG9KUyk6IEhhbmRsZXMgdHdvIG5l
dyBleHRlbnNpb25zLgorICAgICAgICAqIGJpbmRpbmdzL3Y4L2N1c3RvbS9WOFdlYkdMUmVuZGVy
aW5nQ29udGV4dEN1c3RvbS5jcHA6CisgICAgICAgIChXZWJDb3JlOjp0b1Y4T2JqZWN0KTogRGl0
dG8uCisgICAgICAgICogaHRtbC9jYW52YXMvV2ViR0xEZWJ1Z1JlbmRlcmVySW5mby5jcHA6IEFk
ZGVkLgorICAgICAgICAoV2ViQ29yZTo6V2ViR0xEZWJ1Z1JlbmRlcmVySW5mbzo6V2ViR0xEZWJ1
Z1JlbmRlcmVySW5mbyk6CisgICAgICAgIChXZWJDb3JlOjpXZWJHTERlYnVnUmVuZGVyZXJJbmZv
Ojp+V2ViR0xEZWJ1Z1JlbmRlcmVySW5mbyk6CisgICAgICAgIChXZWJDb3JlOjpXZWJHTERlYnVn
UmVuZGVyZXJJbmZvOjpnZXROYW1lKToKKyAgICAgICAgKFdlYkNvcmU6OldlYkdMRGVidWdSZW5k
ZXJlckluZm86OmNyZWF0ZSk6CisgICAgICAgICogaHRtbC9jYW52YXMvV2ViR0xEZWJ1Z1JlbmRl
cmVySW5mby5oOiBBZGRlZC4KKyAgICAgICAgKiBodG1sL2NhbnZhcy9XZWJHTERlYnVnUmVuZGVy
ZXJJbmZvLmlkbDogQWRkZWQuCisgICAgICAgICogaHRtbC9jYW52YXMvV2ViR0xEZWJ1Z1NoYWRl
cnMuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OldlYkdMRGVidWdTaGFkZXJzOjpXZWJH
TERlYnVnU2hhZGVycyk6CisgICAgICAgIChXZWJDb3JlOjpXZWJHTERlYnVnU2hhZGVyczo6fldl
YkdMRGVidWdTaGFkZXJzKToKKyAgICAgICAgKFdlYkNvcmU6OldlYkdMRGVidWdTaGFkZXJzOjpn
ZXROYW1lKToKKyAgICAgICAgKFdlYkNvcmU6OldlYkdMRGVidWdTaGFkZXJzOjpjcmVhdGUpOgor
ICAgICAgICAoV2ViQ29yZTo6V2ViR0xEZWJ1Z1NoYWRlcnM6OmdldFRyYW5zbGF0ZWRTaGFkZXJT
b3VyY2UpOgorICAgICAgICAqIGh0bWwvY2FudmFzL1dlYkdMRGVidWdTaGFkZXJzLmg6IEFkZGVk
LgorICAgICAgICAqIGh0bWwvY2FudmFzL1dlYkdMRGVidWdTaGFkZXJzLmlkbDogQWRkZWQuCisg
ICAgICAgICogaHRtbC9jYW52YXMvV2ViR0xFeHRlbnNpb24uaDoKKyAgICAgICAgKiBodG1sL2Nh
bnZhcy9XZWJHTFJlbmRlcmluZ0NvbnRleHQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6V2ViR0xS
ZW5kZXJpbmdDb250ZXh0OjphbGxvd1ByaXZpbGVnZWRFeHRlbnNpb25zKTogVG8gYmUgaW1wbGVt
ZW50ZWQgLSBkZWNpZGluZyB3aGV0aGVyIHRoZSB0d28gZXh0ZW5zaW9ucyBzaG91bGQgYmUgYWxs
b3dlZCBvciBub3QuCisgICAgICAgIChXZWJDb3JlOjpXZWJHTFJlbmRlcmluZ0NvbnRleHQ6Omdl
dEV4dGVuc2lvbik6IEhhbmRsZXMgdHdvIG5ldyBleHRlbnNpb25zLgorICAgICAgICAoV2ViQ29y
ZTo6V2ViR0xSZW5kZXJpbmdDb250ZXh0OjpnZXRQYXJhbWV0ZXIpOiBIYW5kbGVzIFVOTUFTS0VE
X1ZFTkRPUl9XRUJHTCAvIFVOTUFTS0VEX1JFTkRFUkVSX1dFQkdMCisgICAgICAgIChXZWJDb3Jl
OjpXZWJHTFJlbmRlcmluZ0NvbnRleHQ6OmdldFN1cHBvcnRlZEV4dGVuc2lvbnMpOiBIYW5kbGVz
IHR3byBuZXcgZXh0ZW5zaW9ucy4KKyAgICAgICAgKiBodG1sL2NhbnZhcy9XZWJHTFJlbmRlcmlu
Z0NvbnRleHQuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9FeHRlbnNpb25zM0QuaDog
RGl0dG8uCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NUeXBlczNELmg6IEFk
ZCBHQzNEY2hhci4KKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9FeHRlbnNp
b25zM0RDaHJvbWl1bS5oOiBIYW5kbGVzIHR3byBuZXcgZXh0ZW5zaW9ucy4KKyAgICAgICAgKiBw
bGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wvRXh0ZW5zaW9uczNET3BlbkdMLmNwcDogRGl0dG8uCisg
ICAgICAgIChXZWJDb3JlOjpnZXRUcmFuc2xhdGVkU2hhZGVyU291cmNlQU5HTEUpOgorICAgICAg
ICAqIHBsYXRmb3JtL2dyYXBoaWNzL29wZW5nbC9FeHRlbnNpb25zM0RPcGVuR0wuaDogRGl0dG8u
CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvcXQvRXh0ZW5zaW9uczNEUXQuY3BwOiBEaXR0
by4KKyAgICAgICAgKFdlYkNvcmU6OkV4dGVuc2lvbnMzRFF0OjpnZXRUcmFuc2xhdGVkU2hhZGVy
U291cmNlQU5HTEUpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL3F0L0V4dGVuc2lvbnMz
RFF0Lmg6IERpdHRvLgorCisyMDExLTEwLTE0ICBNYXJrIEhhaG5lbmJlcmcgIDxtaGFobmVuYmVy
Z0BhcHBsZS5jb20+CisKKyAgICAgICAgUmVuYW1lIHZpcnR1YWwgcHV0IHRvIHB1dFZpcnR1YWwK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTY5ODUxCisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgRGFyaW4gQWRsZXIuCisKKyAgICAgICAgTm8gbmV3IHRlc3Rz
LgorCisgICAgICAgIFJlbmFtZWQgdmlydHVhbCB2ZXJzaW9ucyBvZiBwdXQgdG8gcHV0VmlydHVh
bCBpbiBwcmVwcmF0aW9uIGZvciAKKyAgICAgICAgYWRkaW5nIHRoZSBzdGF0aWMgcHV0IHRvIHRo
ZSBNZXRob2RUYWJsZSBpbiBDbGFzc0luZm8gc2luY2UgdGhlIAorICAgICAgICBjb21waWxlciBn
ZXRzIG1hZCBpZiB0aGUgdmlydHVhbCBhbmQgc3RhdGljIHZlcnNpb25zIGhhdmUgdGhlIHNhbWUg
CisgICAgICAgIG5hbWUuCisKKyAgICAgICAgKiBXZWJDb3JlLmV4cC5pbjoKKyAgICAgICAgKiBi
aW5kaW5ncy9qcy9KU0RPTVdpbmRvd0N1c3RvbS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpKU0RP
TVdpbmRvdzo6cHV0VmlydHVhbCk6CisgICAgICAgICogYmluZGluZ3MvanMvSlNET01XaW5kb3dT
aGVsbC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpKU0RPTVdpbmRvd1NoZWxsOjpwdXRWaXJ0dWFs
KToKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU0RPTVdpbmRvd1NoZWxsLmg6CisgICAgICAgICog
YmluZGluZ3MvanMvSlNMb2NhdGlvbkN1c3RvbS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpKU0xv
Y2F0aW9uOjpwdXREZWxlZ2F0ZSk6CisgICAgICAgICogYmluZGluZ3MvanMvSlNQbHVnaW5FbGVt
ZW50RnVuY3Rpb25zLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OnJ1bnRpbWVPYmplY3RDdXN0b21Q
dXQpOgorICAgICAgICAqIGJpbmRpbmdzL2pzL1NlcmlhbGl6ZWRTY3JpcHRWYWx1ZS5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpDbG9uZURlc2VyaWFsaXplcjo6cHV0UHJvcGVydHkpOgorICAgICAg
ICAqIGJpbmRpbmdzL29iamMvV2ViU2NyaXB0T2JqZWN0Lm1tOgorICAgICAgICAoLVtXZWJTY3Jp
cHRPYmplY3Qgc2V0VmFsdWU6Zm9yS2V5Ol0pOgorICAgICAgICAoLVtXZWJTY3JpcHRPYmplY3Qg
c2V0V2ViU2NyaXB0VmFsdWVBdEluZGV4OnZhbHVlOl0pOgorICAgICAgICAqIGJpbmRpbmdzL3Nj
cmlwdHMvQ29kZUdlbmVyYXRvckpTLnBtOgorICAgICAgICAoR2VuZXJhdGVIZWFkZXIpOgorICAg
ICAgICAoR2VuZXJhdGVJbXBsZW1lbnRhdGlvbik6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0
cy90ZXN0L0pTL0pTVGVzdE9iai5jcHA6CisgICAgICAgIChXZWJDb3JlOjpKU1Rlc3RPYmo6OnB1
dFZpcnR1YWwpOgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RPYmou
aDoKKyAgICAgICAgKiBicmlkZ2UvTlBfanNvYmplY3QuY3BwOgorICAgICAgICAoX05QTl9TZXRQ
cm9wZXJ0eSk6CisgICAgICAgICogYnJpZGdlL2puaS9qbmlfanNvYmplY3QubW06CisgICAgICAg
IChKYXZhSlNPYmplY3Q6OnNldE1lbWJlcik6CisgICAgICAgIChKYXZhSlNPYmplY3Q6OnNldFNs
b3QpOgorICAgICAgICAqIGJyaWRnZS9vYmpjL29iamNfcnVudGltZS5oOgorICAgICAgICAqIGJy
aWRnZS9vYmpjL29iamNfcnVudGltZS5tbToKKyAgICAgICAgKEpTQzo6QmluZGluZ3M6Ok9iamNG
YWxsYmFja09iamVjdEltcDo6cHV0VmlydHVhbCk6CisgICAgICAgICogYnJpZGdlL3F0L3F0X2lu
c3RhbmNlLmNwcDoKKyAgICAgICAgKEpTQzo6QmluZGluZ3M6OlF0SW5zdGFuY2U6OnB1dCk6Cisg
ICAgICAgICogYnJpZGdlL3F0L3F0X3J1bnRpbWUuY3BwOgorICAgICAgICAoSlNDOjpCaW5kaW5n
czo6Y29udmVydFFWYXJpYW50VG9WYWx1ZSk6CisgICAgICAgICogYnJpZGdlL3J1bnRpbWVfYXJy
YXkuY3BwOgorICAgICAgICAoSlNDOjpSdW50aW1lQXJyYXk6OnB1dFZpcnR1YWwpOgorICAgICAg
ICAqIGJyaWRnZS9ydW50aW1lX2FycmF5Lmg6CisgICAgICAgICogYnJpZGdlL3J1bnRpbWVfb2Jq
ZWN0LmNwcDoKKyAgICAgICAgKEpTQzo6QmluZGluZ3M6OlJ1bnRpbWVPYmplY3Q6OnB1dFZpcnR1
YWwpOgorICAgICAgICAqIGJyaWRnZS9ydW50aW1lX29iamVjdC5oOgorICAgICAgICAqIGJyaWRn
ZS90ZXN0cXRiaW5kaW5ncy5jcHA6CisgICAgICAgIChtYWluKToKKworMjAxMS0xMC0xNCAgU2hl
cmlmZiBCb3QgIDx3ZWJraXQucmV2aWV3LmJvdEBnbWFpbC5jb20+CisKKyAgICAgICAgVW5yZXZp
ZXdlZCwgcm9sbGluZyBvdXQgcjk3NTE5LgorICAgICAgICBodHRwOi8vdHJhYy53ZWJraXQub3Jn
L2NoYW5nZXNldC85NzUxOQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9NzAxNTYKKworICAgICAgICBCcm9rZSA3OSsgdGVzdHMgb24gYm90cyAoUmVxdWVz
dGVkIGJ5IGRnbGF6a292IG9uICN3ZWJraXQpLgorCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhp
Y3Mvc2tpYS9HcmFwaGljc0NvbnRleHRTa2lhLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmdldEZv
Y3VzUmluZ091dHNldCk6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0NvbnRleHQ6OmRyYXdG
b2N1c1JpbmcpOgorCisyMDExLTA5LTI4ICBSb2JlcnQgSG9nYW4gIDxyb2JlcnRAd2Via2l0Lm9y
Zz4KKworICAgICAgICBSZXBsYWNlZCBlbGVtZW50cyBzcXVlZXplZCB3aGVuIHdpZHRoIGlzIHNw
ZWNpZmllZCBhcyBwZXJjZW50YWdlIGluc2lkZSBhIHRhYmxlIHdpdGggQXV0byBsYXlvdXQKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTI5NDQ3CisKKyAg
ICAgICAgSWYgaW5zZXJ0aW5nIGEgJ3JlcGxhY2VkJyBlbGVtZW50IChlLmcuIGltYWdlLCBwbHVn
aW4pIGluIGEgdGFibGUgY2VsbCB0aGF0IGlzIG5vdCBkZXNjZW5kYW50IGZyb20KKyAgICAgICAg
YSBibG9jayB3aXRoIGZpeGVkIGxheW91dCB0aGVuIGRvIG5vdCBzcXVlZXplIHRoZSBlbGVtZW50
LCBsZXQgaXQgdXNlIGl0cyBpbnRyaW5zaWMgd2lkdGggYW5kIGhlaWdodC4KKworICAgICAgICBS
ZXZpZXdlZCBieSBEYXZpZCBIeWF0dC4KKworICAgICAgICBUZXN0OiBmYXN0L3JlcGxhY2VkL3Rh
YmxlLXBlcmNlbnQtd2lkdGguaHRtbAorCisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckJveC5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpzaG91bGRFeHBhbmRUb0ludHJpbnNpY0RpbWVuc2lvbik6
CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJCb3g6OmNvbnRhaW5pbmdCbG9ja1JlcGxhY2VkTG9n
aWNhbFdpZHRoRm9yQ29udGVudCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJCb3g6OmNvbXB1
dGVSZXBsYWNlZExvZ2ljYWxXaWR0aFVzaW5nKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckJv
eDo6Y29tcHV0ZVJlcGxhY2VkTG9naWNhbEhlaWdodFVzaW5nKToKKyAgICAgICAgKiByZW5kZXJp
bmcvUmVuZGVyQm94Lmg6CisKKzIwMTEtMTAtMTQgIENhcnkgQ2xhcmsgIDxjYXJ5Y2xhcmtAZ29v
Z2xlLmNvbT4KKworICAgICAgICBbQ2hyb21pdW0gU2tpYSBvbiBNYWNdIEltcHJvdmUgZm9jdXMg
cmluZworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzAx
MjQKKworICAgICAgICBSZXZpZXdlZCBieSBFcmljIFNlaWRlbC4KKyAgICAgICAgCisgICAgICAg
IFRoZSBmb2N1cyByaW5nIGNvZGUgZm9ybWVybHkgb3V0c2V0IHRoZSBib3VuZHMgb2YKKyAgICAg
ICAgdGhlIGNvbXBvbmVudCByZWN0YW5nbGVzIGJ5IGZyYWN0aW9uYWwgYW1vdW50cy4gQmVjYXVz
ZQorICAgICAgICB0aGUgcmVjdGFuZ2xlcyBhcmUgU2tJUmVjdCAoaW50ZWdlciBiYXNlZCksIHRo
ZSBmcmFjdGlvbmFsCisgICAgICAgIG91dHNldCBoYWQgbm8gZWZmZWN0LgorCisgICAgICAgIFRo
ZSBlcXVpdmFsZW50IGNvZGUgaW4gR3JhcGhpY3NDb250ZXh0TWFjLm1tIGNvbXB1dGVzCisgICAg
ICAgIHRoZSBjdXJ2ZSByYWRpdXMgYW5kIHJlY3RhbmdsZSBvdXRzZXQgd2l0aCBpbnRlZ2Vycywg
c28KKyAgICAgICAgdGhlIHVzZSBvZiBmbG9hdHMgaW4gU2tpYSdzIGNhc2UsIGJlc2lkZXMgbm90
IHdvcmtpbmcsCisgICAgICAgIGlzIHVubmVjZXNzYXJ5LgorCisgICAgICAgIFRoZSBTa2lhIGNv
ZGUgYWxzbyBmYWlsZWQgdG8gdGFrZSB0aGUgb2Zmc2V0IGludG8gYWNjb3VudC4KKyAgICAgICAg
SW4gTGF5b3V0VGVzdHMsIHRoZSBmb2N1cyByaW5ncyBlaXRoZXIgaGF2ZSBhbiBvZmZzZXQgb2YK
KyAgICAgICAgMCBvciAyLiBUaGUgQ29yZUdyYXBoaWNzIGNvZGUgaW5jcmVhc2VzIHRoZSByaW5n
J3MgcmVjdGFuZ2xlcworICAgICAgICBieSB0aGUgb2Zmc2V0LCB0aGVuIHBhc3NlcyB0aGUgcmVz
dWx0IHRvIHdrRHJhd0ZvY3VzUmluZy4KKworICAgICAgICBJIGRpZCBub3QgZmluZCBhbnkgZG9j
dW1lbnRhdGlvbiBhYm91dCBob3cgd2tEcmF3Rm9jdXNSaW5nCisgICAgICAgIGZ1cnRoZXIgaW5m
bGF0ZXMgdGhlIGZvY3VzIHJpbmcsIGJ1dCBlbXBpcmljYWxseSBJIGRldGVybWluZWQKKyAgICAg
ICAgdGhhdCBhZGRpbmcgMiB0byB0aGUgb2Zmc2V0IGdlbmVyYXRlZCByaW5ncyB3aXRoIGlkZW50
aWNhbAorICAgICAgICBvdXRlciBkaWFtZXRlcnMuCisgCisgICAgICAgIFdpdGggdGhlc2UgYWRq
dXN0bWVudHMsIHRoZSBsYXlvdXQgdGVzdHMgZ2VuZXJhdGUgZm9jdXMgcmluZ3MKKyAgICAgICAg
aW4gdGhlIFNraWEgb24gTWFjIGNhc2UgdGhhdCBtYXRjaCB0aGUgY292ZXJhZ2Ugb2YgdGhlCisg
ICAgICAgIENocm9taXVtIENHLWJhc2VkIHBsYXRmb3JtLCBpbiBwYXJ0aWN1bGFyLCBtYXRjaGlu
ZzoKKyAgICAgICAgCisgICAgICAgIGVkaXRpbmcvaW5zZXJ0aW5nL2VkaXRhYmxlLWlubGluZS1l
bGVtZW50Lmh0bWwKKyAgICAgICAgZWRpdGluZy9zZWxlY3Rpb24vMzY5MDcwMy0yLmh0bWwKKwor
ICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL3NraWEvR3JhcGhpY3NDb250ZXh0U2tpYS5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpnZXRGb2N1c1JpbmdPdXRzZXQpOgorICAgICAgICAoV2ViQ29y
ZTo6R3JhcGhpY3NDb250ZXh0OjpkcmF3Rm9jdXNSaW5nKToKKworMjAxMS0xMC0xNCAgQ2hhbmcg
U2h1ICA8Y3NodUB3ZWJraXQub3JnPgorCisgICAgICAgIFtRdF0gRW5hYmxlIGZ1bGxzY3JlZW4g
YXBpIG9uIFF0CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD03MDEzMQorCisgICAgICAgIEFzIGEgcmVzdWx0LCB3ZSBoYXZlIDMgcGFzc2VkIHRlc3RzLgor
CisgICAgICAgIFJldmlld2VkIGJ5IE5vYW0gUm9zZW50aGFsLgorCisgICAgICAgICogZmVhdHVy
ZXMucHJpOgorCisyMDExLTEwLTE0ICBCZXRoIERha2luICA8YmRha2luQGFwcGxlLmNvbT4KKwor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzAxNDgKKyAg
ICAgICAgU2hvdWxkIHN3aXRjaCB0byBDb3JlVUkgdmVyc2lvbiBvZiBDb3JyZWN0aW9uRG90LCBH
cmFtbWFyRG90LCBhbmQgU3BlbGxpbmdEb3QKKyAgICAgICAgLWFuZCBjb3JyZXNwb25kaW5nLQor
ICAgICAgICA8cmRhcjovL3Byb2JsZW0vMTAyMDgyODE+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
QW5kZXJzIENhcmxzc29uLgorCisgICAgICAgIFVzZSBOUypEb3Qgd2hlbmV2ZXIgaXQncyBhdmFp
bGFibGUsIGFuZCBmYWxsYmFjayB0byAqRG90IG9ubHkgd2hlbiBpdCBpcyBub3QuCisgICAgICAg
ICogcGxhdGZvcm0vZ3JhcGhpY3MvbWFjL0dyYXBoaWNzQ29udGV4dE1hYy5tbToKKyAgICAgICAg
KFdlYkNvcmU6OmNyZWF0ZVBhdHRlcm5Db2xvcik6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGlj
c0NvbnRleHQ6OmRyYXdMaW5lRm9yVGV4dENoZWNraW5nKToKKworMjAxMS0xMC0xNCAgRG1pdHJ5
IExvbW92ICA8ZHNsb21vdkBnb29nbGUuY29tPgorCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD03MDEyMAorICAgICAgICBbQ2hyb21pdW1dIFBhc3MgTWVz
c2FnZVBvcnRBcnJheSB0byBTZXJpYWxpemVkU2NyaXB0VmFsdWU6OnNlcmlhbGl6ZS9kZXNlcmlh
bGl6ZS4KKyAgICAgICAgVGhpcyBwYXRjaCBhdWdtZW50cyBTZXJpYWxpemVkU2NyaXB0VmFsdWUg
d2l0aCBNZXNzYWdlUG9ydEFycmF5KiBwYXJhbWV0ZXIgdG8gaW1wbGVtZW50IE1lc3NhZ2VQb3J0
IAorICAgICAgICB0cmFuc2ZlciB3aXRoaW4gdGhlIG1lc3NhZ2UgaW4gdGhlIGZ1dHVyZS4KKwor
ICAgICAgICBSZXZpZXdlZCBieSBEYXZpZCBMZXZpbi4KKworICAgICAgICAqIGJpbmRpbmdzL3Nj
cmlwdHMvQ29kZUdlbmVyYXRvclY4LnBtOgorICAgICAgICAoR2VuZXJhdGVQYXJhbWV0ZXJzQ2hl
Y2spOgorICAgICAgICAqIGJpbmRpbmdzL3Y4L1NlcmlhbGl6ZWRTY3JpcHRWYWx1ZS5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpTZXJpYWxpemVkU2NyaXB0VmFsdWU6OmNyZWF0ZSk6CisgICAgICAg
IChXZWJDb3JlOjpTZXJpYWxpemVkU2NyaXB0VmFsdWU6OlNlcmlhbGl6ZWRTY3JpcHRWYWx1ZSk6
CisgICAgICAgIChXZWJDb3JlOjpTZXJpYWxpemVkU2NyaXB0VmFsdWU6OmRlc2VyaWFsaXplKToK
KyAgICAgICAgKiBiaW5kaW5ncy92OC9TZXJpYWxpemVkU2NyaXB0VmFsdWUuaDoKKyAgICAgICAg
KiBiaW5kaW5ncy92OC9jdXN0b20vVjhET01XaW5kb3dDdXN0b20uY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6aGFuZGxlUG9zdE1lc3NhZ2VDYWxsYmFjayk6CisgICAgICAgIChXZWJDb3JlOjpWOERP
TVdpbmRvdzo6cG9zdE1lc3NhZ2VDYWxsYmFjayk6CisgICAgICAgIChXZWJDb3JlOjpWOERPTVdp
bmRvdzo6d2Via2l0UG9zdE1lc3NhZ2VDYWxsYmFjayk6CisgICAgICAgICogYmluZGluZ3Mvdjgv
Y3VzdG9tL1Y4RGVkaWNhdGVkV29ya2VyQ29udGV4dEN1c3RvbS5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpoYW5kbGVQb3N0TWVzc2FnZUNhbGxiYWNrKToKKyAgICAgICAgKFdlYkNvcmU6OlY4RGVk
aWNhdGVkV29ya2VyQ29udGV4dDo6cG9zdE1lc3NhZ2VDYWxsYmFjayk6CisgICAgICAgIChXZWJD
b3JlOjpWOERlZGljYXRlZFdvcmtlckNvbnRleHQ6OndlYmtpdFBvc3RNZXNzYWdlQ2FsbGJhY2sp
OgorICAgICAgICAqIGJpbmRpbmdzL3Y4L2N1c3RvbS9WOEhpc3RvcnlDdXN0b20uY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6VjhIaXN0b3J5OjpwdXNoU3RhdGVDYWxsYmFjayk6CisgICAgICAgIChX
ZWJDb3JlOjpWOEhpc3Rvcnk6OnJlcGxhY2VTdGF0ZUNhbGxiYWNrKToKKyAgICAgICAgKiBiaW5k
aW5ncy92OC9jdXN0b20vVjhNZXNzYWdlRXZlbnRDdXN0b20uY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6VjhNZXNzYWdlRXZlbnQ6OmRhdGFBY2Nlc3NvckdldHRlcik6CisgICAgICAgICogYmluZGlu
Z3MvdjgvY3VzdG9tL1Y4TWVzc2FnZVBvcnRDdXN0b20uY3BwOgorICAgICAgICAoV2ViQ29yZTo6
aGFuZGxlUG9zdE1lc3NhZ2VDYWxsYmFjayk6CisgICAgICAgIChXZWJDb3JlOjpWOE1lc3NhZ2VQ
b3J0Ojpwb3N0TWVzc2FnZUNhbGxiYWNrKToKKyAgICAgICAgKFdlYkNvcmU6OlY4TWVzc2FnZVBv
cnQ6OndlYmtpdFBvc3RNZXNzYWdlQ2FsbGJhY2spOgorICAgICAgICAqIGJpbmRpbmdzL3Y4L2N1
c3RvbS9WOFdvcmtlckN1c3RvbS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpoYW5kbGVQb3N0TWVz
c2FnZUNhbGxiYWNrKToKKyAgICAgICAgKFdlYkNvcmU6OlY4V29ya2VyOjpwb3N0TWVzc2FnZUNh
bGxiYWNrKToKKyAgICAgICAgKFdlYkNvcmU6OlY4V29ya2VyOjp3ZWJraXRQb3N0TWVzc2FnZUNh
bGxiYWNrKToKKyAgICAgICAgKiB3b3JrZXJzL1dvcmtlci5pZGw6CisKKzIwMTEtMTAtMTQgIEpl
ZmYgTWlsbGVyICA8amVmZm1AYXBwbGUuY29tPgorCisgICAgICAgIEluamVjdGVkQnVuZGxlSGl0
VGVzdFJlc3VsdDo6aW1hZ2VSZWN0KCkgc2hvdWxkIHJldHVybiByZWN0IGluIFdLVmlldyBjb29y
ZGluYXRlcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
Njk5NjMKKyAgICAgICAgCisgICAgICAgIEFkZCBpbmZyYXN0cnVjdHVyZSB0byBjb252ZXJ0IGZy
b20gYW55IGZyYW1lIHZpZXcncyBjb29yZGluYXRlIHN5c3RlbSB0byB0aGUKKyAgICAgICAgcm9v
dCB2aWV3J3MgY29vcmRpbmF0ZSBzeXN0ZW0uCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgU2ltb24g
RnJhc2VyLgorCisgICAgICAgIE5vIG5ldyB0ZXN0cyAoeWV0KSwgdGhpcyBpcyBjb3ZlcmVkIGJ5
IDxodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzAxMzY+LgorCisgICAg
ICAgICogV2ViQ29yZS5leHAuaW46IEV4cG9ydGVkIFdlYkNvcmU6OlNjcm9sbFZpZXc6OmNvbnRl
bnRzVG9Sb290VmlldygpLCB1c2VkIGJ5IEluamVjdGVkQnVuZGxlSGl0VGVzdFJlc3VsdC5jcHAu
CisgICAgICAgIAorICAgICAgICAqIHBsYXRmb3JtL1Njcm9sbFZpZXcuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6U2Nyb2xsVmlldzo6cm9vdFZpZXdUb0NvbnRlbnRzKTogQWRkZWQgKGJvdGggcG9p
bnQgYW5kIHJlY3QgdmVyc2lvbnMpLgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsVmlldzo6Y29u
dGVudHNUb1Jvb3RWaWV3KTogRGl0dG8uCisgICAgICAgIAorICAgICAgICAqIHBsYXRmb3JtL1Nj
cm9sbFZpZXcuaDogQWRkZWQgbWVtYmVyIGZ1bmN0aW9ucyB0byBjb252ZXJ0IHRvL2Zyb20gcm9v
dCB2aWV3IGNvb3JkaW5hdGVzLgorICAgICAgICAKKyAgICAgICAgKiBwbGF0Zm9ybS9XaWRnZXQu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6V2lkZ2V0Ojpjb252ZXJ0RnJvbVJvb3RWaWV3KTogQWRk
ZWQgKGJvdGggcG9pbnQgYW5kIHJlY3QgdmVyc2lvbnMpLgorICAgICAgICAoV2ViQ29yZTo6V2lk
Z2V0Ojpjb252ZXJ0VG9Sb290Vmlldyk6IERpdHRvLgorICAgICAgICAKKyAgICAgICAgKiBwbGF0
Zm9ybS9XaWRnZXQuaDogQWRkZWQgbWVtYmVyIGZ1bmN0aW9ucyB0byBjb252ZXJ0IHRvL2Zyb20g
cm9vdCB2aWV3IGNvb3JkaW5hdGVzLgorCisyMDExLTEwLTE0ICBBbmRyZWFzIEtsaW5nICA8a2xp
bmdAd2Via2l0Lm9yZz4KKworICAgICAgICBDU1NQYXJzZXI6IFJlbW92ZSBTdHlsZUJhc2UgdXNh
Z2UuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03MDE1
MAorCisgICAgICAgIFJldmlld2VkIGJ5IERhcmluIEFkbGVyLgorCisgICAgICAgIFNwbGl0IENT
U1BhcnNlcjo6bV9wYXJzZWRTdHlsZU9iamVjdHMgaW50byB0d28gdmVjdG9ycyBvZgorICAgICAg
ICBDU1NSdWxlcyBhbmQgTWVkaWFMaXN0cy4KKworICAgICAgICAqIGNzcy9DU1NQYXJzZXIuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6Q1NTUGFyc2VyOjpjcmVhdGVNZWRpYUxpc3QpOgorICAgICAg
ICAoV2ViQ29yZTo6Q1NTUGFyc2VyOjpjcmVhdGVDaGFyc2V0UnVsZSk6CisgICAgICAgIChXZWJD
b3JlOjpDU1NQYXJzZXI6OmNyZWF0ZUltcG9ydFJ1bGUpOgorICAgICAgICAoV2ViQ29yZTo6Q1NT
UGFyc2VyOjpjcmVhdGVNZWRpYVJ1bGUpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTUGFyc2VyOjpj
cmVhdGVLZXlmcmFtZXNSdWxlKToKKyAgICAgICAgKFdlYkNvcmU6OkNTU1BhcnNlcjo6Y3JlYXRl
U3R5bGVSdWxlKToKKyAgICAgICAgKFdlYkNvcmU6OkNTU1BhcnNlcjo6Y3JlYXRlRm9udEZhY2VS
dWxlKToKKyAgICAgICAgKFdlYkNvcmU6OkNTU1BhcnNlcjo6Y3JlYXRlUGFnZVJ1bGUpOgorICAg
ICAgICAoV2ViQ29yZTo6Q1NTUGFyc2VyOjpjcmVhdGVLZXlmcmFtZVJ1bGUpOgorICAgICAgICAq
IGNzcy9DU1NQYXJzZXIuaDoKKworMjAxMS0xMC0xNCAgQWRhbSBCYXJ0aCAgPGFiYXJ0aEB3ZWJr
aXQub3JnPgorCisgICAgICAgIGNhbnZhcyBnZXRJbWFnZURhdGEgc2hvdWxkIGV4cGxhaW4gd2h5
IGl0IHRocm93cyBTRUNVUklUWV9FUlIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTcwMDg4CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgRGFyaW4gQWRsZXIu
CisKKyAgICAgICAgTG9nIGFzIG1lc3NhZ2UgdG8gdGhlIGNvbnNvbGUgd2hlbiBnZXRJbWFnZURh
dGEgZmFpbHMgYmVjYXVzZSB0aGUKKyAgICAgICAgY2FudmFzIGlzIHRhaW50ZWQuCisKKyAgICAg
ICAgKiBodG1sL2NhbnZhcy9DYW52YXNSZW5kZXJpbmdDb250ZXh0MkQuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6Q2FudmFzUmVuZGVyaW5nQ29udGV4dDJEOjpnZXRJbWFnZURhdGEpOgorCisyMDEx
LTEwLTE0ICBBbmRyZWFzIEtsaW5nICA8a2xpbmdAd2Via2l0Lm9yZz4KKworICAgICAgICBJbnNw
ZWN0b3I6IFJlbW92ZSBTdHlsZUJhc2UgdXNhZ2UuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD03MDEzOAorCisgICAgICAgIFJldmlld2VkIGJ5IEFudHRp
IEtvaXZpc3RvLgorCisgICAgICAgIEJlIGZ1bGx5IHNwZWNpZmljIGFib3V0IHdoZXRoZXIgd2Un
cmUgb3BlcmF0aW5nIG9uIGEgQ1NTUnVsZSBvcgorICAgICAgICBhIENTU1N0eWxlU2hlZXQuCisK
KyAgICAgICAgTm8gYmVoYXZpb3IgY2hhbmdlIGV4cGVjdGVkLCB0aGlzIG1lcmVseSBpcyBhIGNs
ZWFudXAuCisKKyAgICAgICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9yQ1NTQWdlbnQuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yQ1NTQWdlbnQ6OnBhcmVudFN0eWxlU2hlZXQpOgorICAg
ICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yQ1NTQWdlbnQ6OmFzQ1NTU3R5bGVSdWxlKToKKyAgICAg
ICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9yQ1NTQWdlbnQuaDoKKyAgICAgICAgKiBpbnNwZWN0b3Iv
SW5zcGVjdG9yU3R5bGVTaGVldC5jcHA6CisgICAgICAgIChXZWJDb3JlOjphc0NTU1J1bGVMaXN0
KToKKworMjAxMS0xMC0xNCAgTWFyayBIYWhuZW5iZXJnICA8bWhhaG5lbmJlcmdAYXBwbGUuY29t
PgorCisgICAgICAgIFJlbmFtZSB2aXJ0dWFsIGRlbGV0ZVByb3BlcnR5IHRvIGRlbGV0ZVByb3Bl
cnR5VmlydHVhbAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9Njk4ODQKKworICAgICAgICBSZXZpZXdlZCBieSBEYXJpbiBBZGxlci4KKworICAgICAgICBO
byBuZXcgdGVzdHMuCisKKyAgICAgICAgUmVuYW1lZCB2aXJ0dWFsIHZlcnNpb25zIG9mIGRlbGV0
ZVByb3BlcnR5IHRvIGRlbGV0ZVByb3BlcnR5VmlydHVhbCBpbiBwcmVwcmF0aW9uIGZvciAKKyAg
ICAgICAgYWRkaW5nIHRoZSBzdGF0aWMgZGVsZXRlUHJvcGVydHkgdG8gdGhlIE1ldGhvZFRhYmxl
IGluIENsYXNzSW5mbyBzaW5jZSB0aGUgCisgICAgICAgIGNvbXBpbGVyIGdldHMgbWFkIGlmIHRo
ZSB2aXJ0dWFsIGFuZCBzdGF0aWMgdmVyc2lvbnMgaGF2ZSB0aGUgc2FtZSBuYW1lLgorCisgICAg
ICAgICogV2ViQ29yZS5leHAuaW46CisgICAgICAgICogYmluZGluZ3MvanMvSlNET01TdHJpbmdN
YXBDdXN0b20uY3BwOgorICAgICAgICAoV2ViQ29yZTo6SlNET01TdHJpbmdNYXA6OmRlbGV0ZVBy
b3BlcnR5VmlydHVhbCk6CisgICAgICAgICogYmluZGluZ3MvanMvSlNET01XaW5kb3dDdXN0b20u
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6SlNET01XaW5kb3c6OmRlbGV0ZVByb3BlcnR5VmlydHVh
bCk6CisgICAgICAgICogYmluZGluZ3MvanMvSlNET01XaW5kb3dTaGVsbC5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpKU0RPTVdpbmRvd1NoZWxsOjpkZWxldGVQcm9wZXJ0eVZpcnR1YWwpOgorICAg
ICAgICAqIGJpbmRpbmdzL2pzL0pTRE9NV2luZG93U2hlbGwuaDoKKyAgICAgICAgKiBiaW5kaW5n
cy9qcy9KU0hpc3RvcnlDdXN0b20uY3BwOgorICAgICAgICAoV2ViQ29yZTo6SlNIaXN0b3J5Ojpk
ZWxldGVQcm9wZXJ0eVZpcnR1YWwpOgorICAgICAgICAqIGJpbmRpbmdzL2pzL0pTTG9jYXRpb25D
dXN0b20uY3BwOgorICAgICAgICAoV2ViQ29yZTo6SlNMb2NhdGlvbjo6ZGVsZXRlUHJvcGVydHlW
aXJ0dWFsKToKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU1N0b3JhZ2VDdXN0b20uY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6SlNTdG9yYWdlOjpkZWxldGVQcm9wZXJ0eVZpcnR1YWwpOgorICAgICAg
ICAqIGJpbmRpbmdzL2pzL1NjcmlwdE9iamVjdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTY3Jp
cHRHbG9iYWxPYmplY3Q6OnJlbW92ZSk6CisgICAgICAgICogYmluZGluZ3Mvb2JqYy9XZWJTY3Jp
cHRPYmplY3QubW06CisgICAgICAgICgtW1dlYlNjcmlwdE9iamVjdCByZW1vdmVXZWJTY3JpcHRL
ZXk6XSk6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMucG06Cisg
ICAgICAgIChHZW5lcmF0ZUhlYWRlcik6CisgICAgICAgICogYnJpZGdlL05QX2pzb2JqZWN0LmNw
cDoKKyAgICAgICAgKF9OUE5fUmVtb3ZlUHJvcGVydHkpOgorICAgICAgICAqIGJyaWRnZS9qbmkv
am5pX2pzb2JqZWN0Lm1tOgorICAgICAgICAoSmF2YUpTT2JqZWN0OjpyZW1vdmVNZW1iZXIpOgor
ICAgICAgICAqIGJyaWRnZS9vYmpjL29iamNfcnVudGltZS5oOgorICAgICAgICAqIGJyaWRnZS9v
YmpjL29iamNfcnVudGltZS5tbToKKyAgICAgICAgKEpTQzo6QmluZGluZ3M6Ok9iamNGYWxsYmFj
a09iamVjdEltcDo6ZGVsZXRlUHJvcGVydHlWaXJ0dWFsKToKKyAgICAgICAgKiBicmlkZ2UvcnVu
dGltZV9hcnJheS5jcHA6CisgICAgICAgIChKU0M6OlJ1bnRpbWVBcnJheTo6ZGVsZXRlUHJvcGVy
dHlWaXJ0dWFsKToKKyAgICAgICAgKiBicmlkZ2UvcnVudGltZV9hcnJheS5oOgorICAgICAgICAq
IGJyaWRnZS9ydW50aW1lX29iamVjdC5jcHA6CisgICAgICAgIChKU0M6OkJpbmRpbmdzOjpSdW50
aW1lT2JqZWN0OjpkZWxldGVQcm9wZXJ0eVZpcnR1YWwpOgorICAgICAgICAqIGJyaWRnZS9ydW50
aW1lX29iamVjdC5oOgorCisyMDExLTEwLTE0ICBTaW1vbiBGcmFzZXIgIDxzaW1vbi5mcmFzZXJA
YXBwbGUuY29tPgorCisgICAgICAgIFdlYiBJbnNwZWN0b3I6IFdlYlByb2Nlc3MgY3Jhc2hlcyBo
YXJkIHdoZW4gaW5zcGVjdGluZyBlbGVtZW50cyB3aXRoIGJvcmRlci1pbWFnZXMgYXBwbGllZAor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzAxMDUKKwor
ICAgICAgICBSZXZpZXdlZCBieSBEYXZlIEh5YXR0LgorICAgICAgICAKKyAgICAgICAgRml4IHRo
cmVlIGRpZmZlcmVudCBjcmFzaGVzIHJlbGF0ZWQgdG8gZ2V0dGluZyBjb21wdXRlZCBzdHlsZSBm
b3IgYm9yZGVyLWltYWdlLgorICAgICAgICBJbiBib3RoIHZhbHVlRm9yTmluZVBpZWNlSW1hZ2VT
bGljZSgpIGFuZCB2YWx1ZUZvck5pbmVQaWVjZUltYWdlUXVhZCgpLAorICAgICAgICBhc3NpZ24g
J3JpZ2h0JyB0byAnbGVmdCcgYmVjYXVzZSB3ZSd2ZSBjb21wdXRlZCBhIHZhbHVlIGZvciAncmln
aHQnIGFscmVhZHkuCisgICAgICAgIE90aGVyd2lzZSB0aGlzIHdvdWxkIGxlYXZlICdyaWdodCcg
YXMgbnVsbCwgY2F1c2luZyBsYXRlciBjcmFzaGVzIGluIGNzc1RleHQoKS4KKyAgICAgICAgCisg
ICAgICAgIEluIG1hcE5pbmVQaWVjZUltYWdlKCksIGJvcmRlckltYWdlLT5pbWFnZVZhbHVlKCkg
Y2FuIGJlIG51bGwgZm9yIGEgYm9yZGVyLWltYWdlCisgICAgICAgIHNob3J0aGFuZCB0aGF0IGlz
IG1pc3NpbmcgdGhlIGltYWdlIHZhbHVlLgorCisgICAgICAgIFRlc3Q6IGZhc3QvY3NzL2dldENv
bXB1dGVkU3R5bGUvY29tcHV0ZWQtc3R5bGUtYm9yZGVyLWltYWdlLmh0bWwKKworICAgICAgICAq
IGNzcy9DU1NDb21wdXRlZFN0eWxlRGVjbGFyYXRpb24uY3BwOgorICAgICAgICAoV2ViQ29yZTo6
dmFsdWVGb3JOaW5lUGllY2VJbWFnZVNsaWNlKToKKyAgICAgICAgKFdlYkNvcmU6OnZhbHVlRm9y
TmluZVBpZWNlSW1hZ2VRdWFkKToKKyAgICAgICAgKiBjc3MvQ1NTU3R5bGVTZWxlY3Rvci5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpDU1NTdHlsZVNlbGVjdG9yOjptYXBOaW5lUGllY2VJbWFnZSk6
CisKIDIwMTEtMTAtMTIgIFBhdmVsIFBvZGl2aWxvdiAgPHBvZGl2aWxvdkBjaHJvbWl1bS5vcmc+
CiAKICAgICAgICAgV2ViIEluc3BlY3RvcjogZml4IGhhbmRsaW5nIG9mIHNvdXJjZSBtYXBwaW5n
IGVudHJpZXMgd2l0aCBubyBtYXBwaW5nLgpJbmRleDogU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0
cy50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQJKHJldmlz
aW9uIDk3NjIxKQorKysgU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQJKHdvcmtpbmcgY29w
eSkKQEAgLTMwMyw2ICszMDMsOCBAQCBTRVQoV2ViQ29yZV9JRExfRklMRVMKICAgICBodG1sL2Nh
bnZhcy9XZWJHTEFjdGl2ZUluZm8uaWRsCiAgICAgaHRtbC9jYW52YXMvV2ViR0xCdWZmZXIuaWRs
CiAgICAgaHRtbC9jYW52YXMvV2ViR0xDb250ZXh0QXR0cmlidXRlcy5pZGwKKyAgICBodG1sL2Nh
bnZhcy9XZWJHTERlYnVnUmVuZGVyZXJJbmZvLmlkbAorICAgIGh0bWwvY2FudmFzL1dlYkdMRGVi
dWdTaGFkZXJzLmlkbAogICAgIGh0bWwvY2FudmFzL1dlYkdMRnJhbWVidWZmZXIuaWRsCiAgICAg
aHRtbC9jYW52YXMvV2ViR0xQcm9ncmFtLmlkbAogICAgIGh0bWwvY2FudmFzL1dlYkdMUmVuZGVy
YnVmZmVyLmlkbApAQCAtMjE1Miw2ICsyMTU0LDggQEAgSUYgKEVOQUJMRV9XRUJHTCkKICAgICAg
ICAgaHRtbC9jYW52YXMvV2ViR0xCdWZmZXIuY3BwCiAgICAgICAgIGh0bWwvY2FudmFzL1dlYkdM
Q29udGV4dEF0dHJpYnV0ZXMuY3BwCiAgICAgICAgIGh0bWwvY2FudmFzL1dlYkdMQ29udGV4dEV2
ZW50LmNwcAorICAgICAgICBodG1sL2NhbnZhcy9XZWJHTERlYnVnUmVuZGVyZXJJbmZvLmNwcAor
ICAgICAgICBodG1sL2NhbnZhcy9XZWJHTERlYnVnU2hhZGVycy5jcHAKICAgICAgICAgaHRtbC9j
YW52YXMvV2ViR0xGcmFtZWJ1ZmZlci5jcHAKICAgICAgICAgaHRtbC9jYW52YXMvV2ViR0xHZXRJ
bmZvLmNwcAogICAgICAgICBodG1sL2NhbnZhcy9XZWJHTE9iamVjdC5jcHAKSW5kZXg6IFNvdXJj
ZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNv
cmUvR05VbWFrZWZpbGUubGlzdC5hbQkocmV2aXNpb24gOTc2MjEpCisrKyBTb3VyY2UvV2ViQ29y
ZS9HTlVtYWtlZmlsZS5saXN0LmFtCSh3b3JraW5nIGNvcHkpCkBAIC00ODA5LDYgKzQ4MDksMTAg
QEAgd2ViY29yZV9zb3VyY2VzICs9IFwKIAlTb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJH
TENvbnRleHRBdHRyaWJ1dGVzLmggXAogCVNvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdM
Q29udGV4dEV2ZW50LmNwcCBcCiAJU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xDb250
ZXh0RXZlbnQuaCBcCisJU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xEZWJ1Z1JlbmRl
cmVySW5mby5jcHAgXAorCVNvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMRGVidWdSZW5k
ZXJlckluZm8uaCBcCisJU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xEZWJ1Z1NoYWRl
cnMuY3BwIFwKKwlTb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTERlYnVnU2hhZGVycy5o
IFwKIAlTb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTEZyYW1lYnVmZmVyLmNwcCBcCiAJ
U291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xGcmFtZWJ1ZmZlci5oIFwKIAlTb3VyY2Uv
V2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTEdldEluZm8uY3BwIFwKSW5kZXg6IFNvdXJjZS9XZWJD
b3JlL1dlYkNvcmUuZ3lwaQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5
cGkJKHJldmlzaW9uIDk3NjIxKQorKysgU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpCSh3b3Jr
aW5nIGNvcHkpCkBAIC0xMzYyLDYgKzEzNjIsOCBAQAogICAgICAgICAgICAgJ2h0bWwvY2FudmFz
L1dlYkdMQnVmZmVyLmlkbCcsCiAgICAgICAgICAgICAnaHRtbC9jYW52YXMvV2ViR0xDb250ZXh0
QXR0cmlidXRlcy5pZGwnLAogICAgICAgICAgICAgJ2h0bWwvY2FudmFzL1dlYkdMQ29udGV4dEV2
ZW50LmlkbCcsCisgICAgICAgICAgICAnaHRtbC9jYW52YXMvV2ViR0xEZWJ1Z1JlbmRlcmVySW5m
by5pZGwnLAorICAgICAgICAgICAgJ2h0bWwvY2FudmFzL1dlYkdMRGVidWdTaGFkZXJzLmlkbCcs
CiAgICAgICAgICAgICAnaHRtbC9jYW52YXMvV2ViR0xGcmFtZWJ1ZmZlci5pZGwnLAogICAgICAg
ICAgICAgJ2h0bWwvY2FudmFzL1dlYkdMUHJvZ3JhbS5pZGwnLAogICAgICAgICAgICAgJ2h0bWwv
Y2FudmFzL1dlYkdMUmVuZGVyYnVmZmVyLmlkbCcsCkBAIC01NjU0LDYgKzU2NTYsMTAgQEAKICAg
ICAgICAgICAgICdodG1sL2NhbnZhcy9XZWJHTENvbnRleHRBdHRyaWJ1dGVzLmgnLAogICAgICAg
ICAgICAgJ2h0bWwvY2FudmFzL1dlYkdMQ29udGV4dEV2ZW50LmNwcCcsCiAgICAgICAgICAgICAn
aHRtbC9jYW52YXMvV2ViR0xDb250ZXh0RXZlbnQuaCcsCisgICAgICAgICAgICAnaHRtbC9jYW52
YXMvV2ViR0xEZWJ1Z1JlbmRlcmVySW5mby5jcHAnLAorICAgICAgICAgICAgJ2h0bWwvY2FudmFz
L1dlYkdMRGVidWdSZW5kZXJlckluZm8uaCcsCisgICAgICAgICAgICAnaHRtbC9jYW52YXMvV2Vi
R0xEZWJ1Z1NoYWRlcnMuY3BwJywKKyAgICAgICAgICAgICdodG1sL2NhbnZhcy9XZWJHTERlYnVn
U2hhZGVycy5oJywKICAgICAgICAgICAgICdodG1sL2NhbnZhcy9XZWJHTEV4dGVuc2lvbi5jcHAn
LAogICAgICAgICAgICAgJ2h0bWwvY2FudmFzL1dlYkdMRXh0ZW5zaW9uLmgnLAogICAgICAgICAg
ICAgJ2h0bWwvY2FudmFzL1dlYkdMRnJhbWVidWZmZXIuY3BwJywKSW5kZXg6IFNvdXJjZS9XZWJD
b3JlL1dlYkNvcmUucHJvCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUucHJv
CShyZXZpc2lvbiA5NzYyMSkKKysrIFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUucHJvCSh3b3JraW5n
IGNvcHkpCkBAIC0zNjE4LDYgKzM2MTgsOCBAQCBjb250YWlucyhERUZJTkVTLCBFTkFCTEVfV0VC
R0w9MSkgewogICAgICAgICBodG1sL2NhbnZhcy9XZWJHTEJ1ZmZlci5oIFwKICAgICAgICAgaHRt
bC9jYW52YXMvV2ViR0xDb250ZXh0QXR0cmlidXRlcy5oIFwKICAgICAgICAgaHRtbC9jYW52YXMv
V2ViR0xDb250ZXh0RXZlbnQuaCBcCisgICAgICAgIGh0bWwvY2FudmFzL1dlYkdMRGVidWdSZW5k
ZXJlckluZm8uaCBcCisgICAgICAgIGh0bWwvY2FudmFzL1dlYkdMRGVidWdTaGFkZXJzLmggXAog
ICAgICAgICBodG1sL2NhbnZhcy9XZWJHTEV4dGVuc2lvbi5oIFwKICAgICAgICAgaHRtbC9jYW52
YXMvV2ViR0xGcmFtZWJ1ZmZlci5oIFwKICAgICAgICAgaHRtbC9jYW52YXMvV2ViR0xHZXRJbmZv
LmggXApAQCAtMzY0OSw2ICszNjUxLDggQEAgY29udGFpbnMoREVGSU5FUywgRU5BQkxFX1dFQkdM
PTEpIHsKICAgICAgICAgaHRtbC9jYW52YXMvV2ViR0xCdWZmZXIuY3BwIFwKICAgICAgICAgaHRt
bC9jYW52YXMvV2ViR0xDb250ZXh0QXR0cmlidXRlcy5jcHAgXAogICAgICAgICBodG1sL2NhbnZh
cy9XZWJHTENvbnRleHRFdmVudC5jcHAgXAorICAgICAgICBodG1sL2NhbnZhcy9XZWJHTERlYnVn
UmVuZGVyZXJJbmZvLmNwcCBcCisgICAgICAgIGh0bWwvY2FudmFzL1dlYkdMRGVidWdTaGFkZXJz
LmNwcCBcCiAgICAgICAgIGh0bWwvY2FudmFzL1dlYkdMRXh0ZW5zaW9uLmNwcCBcCiAgICAgICAg
IGh0bWwvY2FudmFzL1dlYkdMRnJhbWVidWZmZXIuY3BwIFwKICAgICAgICAgaHRtbC9jYW52YXMv
V2ViR0xHZXRJbmZvLmNwcCBcCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJv
ai9wcm9qZWN0LnBieHByb2oKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvV2ViQ29yZS54
Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCShyZXZpc2lvbiA5NzYyMSkKKysrIFNvdXJjZS9XZWJD
b3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagkod29ya2luZyBjb3B5KQpAQCAt
MzMzNiw2ICszMzM2LDEwIEBACiAJCTlGRkUzRUE1MTFCNUE0MzkwMDM3ODc0RSAvKiBKU01lbW9y
eUluZm8uY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
OUZGRTNFQTMxMUI1QTQzOTAwMzc4NzRFIC8qIEpTTWVtb3J5SW5mby5jcHAgKi87IH07CiAJCTlG
RkUzRUE2MTFCNUE0MzkwMDM3ODc0RSAvKiBKU01lbW9yeUluZm8uaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDlGRkUzRUE0MTFCNUE0MzkwMDM3ODc0RSAv
KiBKU01lbW9yeUluZm8uaCAqLzsgfTsKIAkJQTAwQjcyMUExMURFNjQyODAwOEFCOUZGIC8qIENo
ZWNrZWRJbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IEEwMEI3MjE5MTFERTY0MjcwMDhBQjlGRiAvKiBDaGVja2VkSW50LmggKi87IH07CisJCUEwQjBG
MUNDMTQ0QjcwNTcwMDFGRTlGMCAvKiBXZWJHTERlYnVnUmVuZGVyZXJJbmZvLmNwcCBpbiBTb3Vy
Y2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEEwQjBGMUM4MTQ0QjcwNTcw
MDFGRTlGMCAvKiBXZWJHTERlYnVnUmVuZGVyZXJJbmZvLmNwcCAqLzsgfTsKKwkJQTBCMEYxQ0Qx
NDRCNzA1NzAwMUZFOUYwIC8qIFdlYkdMRGVidWdSZW5kZXJlckluZm8uaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEEwQjBGMUM5MTQ0QjcwNTcwMDFGRTlG
MCAvKiBXZWJHTERlYnVnUmVuZGVyZXJJbmZvLmggKi87IH07CisJCUEwQjBGMUNFMTQ0QjcwNTcw
MDFGRTlGMCAvKiBXZWJHTERlYnVnU2hhZGVycy5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBMEIwRjFDQTE0NEI3MDU3MDAxRkU5RjAgLyogV2ViR0xE
ZWJ1Z1NoYWRlcnMuY3BwICovOyB9OworCQlBMEIwRjFDRjE0NEI3MDU3MDAxRkU5RjAgLyogV2Vi
R0xEZWJ1Z1NoYWRlcnMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IEEwQjBGMUNCMTQ0QjcwNTcwMDFGRTlGMCAvKiBXZWJHTERlYnVnU2hhZGVycy5oICov
OyB9OwogCQlBMTIwQUNBNDEzRjk5OENBMDBGRTRBQzcgLyogTGF5b3V0UmVwYWludGVyLmNwcCBp
biBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEExMjBBQ0ExMTNG
OTk4NDYwMEZFNEFDNyAvKiBMYXlvdXRSZXBhaW50ZXIuY3BwICovOyB9OwogCQlBMTI1MzhENDEz
RjlCNjBBMDAwMjQ3NTQgLyogTGF5b3V0UmVwYWludGVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBMTIwQUNBMDEzRjk5ODM3MDBGRTRBQzcgLyogTGF5
b3V0UmVwYWludGVyLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsg
fTsgfTsKIAkJQTEzNkEwMEMxMTM0REJEMjAwQ0M4RDUwIC8qIFhNTEh0dHBSZXF1ZXN0UHJvZ3Jl
c3NFdmVudFRocm90dGxlLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IEExMzZBMDBBMTEzNERCRDIwMENDOEQ1MCAvKiBYTUxIdHRwUmVxdWVzdFByb2dy
ZXNzRXZlbnRUaHJvdHRsZS5jcHAgKi87IH07CkBAIC0xMDUwNSw2ICsxMDUwOSwxMiBAQAogCQk5
RkZFM0VBMzExQjVBNDM5MDAzNzg3NEUgLyogSlNNZW1vcnlJbmZvLmNwcCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTTWVtb3J5SW5mby5jcHA7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCTlGRkUzRUE0MTFCNUE0MzkwMDM3ODc0RSAvKiBKU01lbW9yeUluZm8u
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNNZW1vcnlJbmZvLmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUEwMEI3MjE5MTFERTY0MjcwMDhBQjlGRiAvKiBDaGVj
a2VkSW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IENoZWNrZWRJbnQuaDsg
cGF0aCA9IGNhbnZhcy9DaGVja2VkSW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJ
CUEwQjBGMUM2MTQ0QjcwMkQwMDFGRTlGMCAvKiBXZWJHTERlYnVnUmVuZGVyZXJJbmZvLmlkbCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHRleHQ7IG5hbWUgPSBXZWJHTERlYnVnUmVuZGVyZXJJbmZvLmlkbDsgcGF0aCA9
IGNhbnZhcy9XZWJHTERlYnVnUmVuZGVyZXJJbmZvLmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKKwkJQTBCMEYxQzcxNDRCNzAzRjAwMUZFOUYwIC8qIFdlYkdMRGVidWdTaGFkZXJzLmlk
bCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHRleHQ7IG5hbWUgPSBXZWJHTERlYnVnU2hhZGVycy5pZGw7IHBhdGggPSBj
YW52YXMvV2ViR0xEZWJ1Z1NoYWRlcnMuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owor
CQlBMEIwRjFDODE0NEI3MDU3MDAxRkU5RjAgLyogV2ViR0xEZWJ1Z1JlbmRlcmVySW5mby5jcHAg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBXZWJHTERlYnVnUmVuZGVyZXJJ
bmZvLmNwcDsgcGF0aCA9IGNhbnZhcy9XZWJHTERlYnVnUmVuZGVyZXJJbmZvLmNwcDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQTBCMEYxQzkxNDRCNzA1NzAwMUZFOUYwIC8qIFdlYkdM
RGVidWdSZW5kZXJlckluZm8uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gV2Vi
R0xEZWJ1Z1JlbmRlcmVySW5mby5oOyBwYXRoID0gY2FudmFzL1dlYkdMRGVidWdSZW5kZXJlcklu
Zm8uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQTBCMEYxQ0ExNDRCNzA1NzAwMUZF
OUYwIC8qIFdlYkdMRGVidWdTaGFkZXJzLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNw
cDsgbmFtZSA9IFdlYkdMRGVidWdTaGFkZXJzLmNwcDsgcGF0aCA9IGNhbnZhcy9XZWJHTERlYnVn
U2hhZGVycy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUEwQjBGMUNCMTQ0Qjcw
NTcwMDFGRTlGMCAvKiBXZWJHTERlYnVnU2hhZGVycy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IG5hbWUgPSBXZWJHTERlYnVnU2hhZGVycy5oOyBwYXRoID0gY2FudmFzL1dlYkdMRGVidWdT
aGFkZXJzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUExMjBBQ0EwMTNGOTk4Mzcw
MEZFNEFDNyAvKiBMYXlvdXRSZXBhaW50ZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gTGF5b3V0UmVwYWludGVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUEx
MjBBQ0ExMTNGOTk4NDYwMEZFNEFDNyAvKiBMYXlvdXRSZXBhaW50ZXIuY3BwICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gTGF5b3V0UmVwYWludGVyLmNwcDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQTEzNkEwMEExMTM0REJEMjAwQ0M4RDUwIC8qIFhNTEh0dHBS
ZXF1ZXN0UHJvZ3Jlc3NFdmVudFRocm90dGxlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
LmNwcDsgcGF0aCA9IFhNTEh0dHBSZXF1ZXN0UHJvZ3Jlc3NFdmVudFRocm90dGxlLmNwcDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTE0Nzg3LDYgKzE0Nzk3LDEyIEBACiAJCTQ5NDg0
RkFFMTAyQ0YwMUUwMDE4N0REMyAvKiBjYW52YXMgKi8gPSB7CiAJCQlpc2EgPSBQQlhHcm91cDsK
IAkJCWNoaWxkcmVuID0gKAorCQkJCUEwQjBGMUM4MTQ0QjcwNTcwMDFGRTlGMCAvKiBXZWJHTERl
YnVnUmVuZGVyZXJJbmZvLmNwcCAqLywKKwkJCQlBMEIwRjFDOTE0NEI3MDU3MDAxRkU5RjAgLyog
V2ViR0xEZWJ1Z1JlbmRlcmVySW5mby5oICovLAorCQkJCUEwQjBGMUNBMTQ0QjcwNTcwMDFGRTlG
MCAvKiBXZWJHTERlYnVnU2hhZGVycy5jcHAgKi8sCisJCQkJQTBCMEYxQ0IxNDRCNzA1NzAwMUZF
OUYwIC8qIFdlYkdMRGVidWdTaGFkZXJzLmggKi8sCisJCQkJQTBCMEYxQzcxNDRCNzAzRjAwMUZF
OUYwIC8qIFdlYkdMRGVidWdTaGFkZXJzLmlkbCAqLywKKwkJCQlBMEIwRjFDNjE0NEI3MDJEMDAx
RkU5RjAgLyogV2ViR0xEZWJ1Z1JlbmRlcmVySW5mby5pZGwgKi8sCiAJCQkJNDlFRUNEQ0ExMDUw
M0MyMzAwMDk5RkFCIC8qIEFycmF5QnVmZmVyLmNwcCAqLywKIAkJCQk0OUVFQ0RDQjEwNTAzQzIz
MDAwOTlGQUIgLyogQXJyYXlCdWZmZXIuaCAqLywKIAkJCQk0OUVFQ0RDQzEwNTAzQzIzMDAwOTlG
QUIgLyogQXJyYXlCdWZmZXIuaWRsICovLApAQCAtMjQ2MTcsNiArMjQ2MzMsOCBAQAogCQkJCTlC
Mzc1RURCMTQ0NzhBMDEwMEYzQ0FFNSAvKiBNaWNyb0RhdGFJdGVtTGlzdC5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJNDlBRjJENjkxNDQzNUQwNTAwMTZBNzg0IC8qIERpc3BsYXlSZWZyZXNoTW9uaXRv
ci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNzFDQ0I0OUQxNDQ4MjRBQzAwQzY3NkQ2IC8qIEltYWdl
QnlTaXplQ2FjaGUuaCBpbiBIZWFkZXJzICovLAorCQkJCUEwQjBGMUNEMTQ0QjcwNTcwMDFGRTlG
MCAvKiBXZWJHTERlYnVnUmVuZGVyZXJJbmZvLmggaW4gSGVhZGVycyAqLywKKwkJCQlBMEIwRjFD
RjE0NEI3MDU3MDAxRkU5RjAgLyogV2ViR0xEZWJ1Z1NoYWRlcnMuaCBpbiBIZWFkZXJzICovLAog
CQkJKTsKIAkJCXJ1bk9ubHlGb3JEZXBsb3ltZW50UG9zdHByb2Nlc3NpbmcgPSAwOwogCQl9OwpA
QCAtMjc0NjksNiArMjc0ODcsOCBAQAogCQkJCTQ5QUYyRDZDMTQ0MzVEMjEwMDE2QTc4NCAvKiBE
aXNwbGF5UmVmcmVzaE1vbml0b3JNYWMuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNDlGQzdBNTAx
NDQ0QUY1RjAwQTVEODY0IC8qIERpc3BsYXlSZWZyZXNoTW9uaXRvci5jcHAgaW4gU291cmNlcyAq
LywKIAkJCQk3MUNDQjQ5QzE0NDgyNEFDMDBDNjc2RDYgLyogSW1hZ2VCeVNpemVDYWNoZS5jcHAg
aW4gU291cmNlcyAqLywKKwkJCQlBMEIwRjFDQzE0NEI3MDU3MDAxRkU5RjAgLyogV2ViR0xEZWJ1
Z1JlbmRlcmVySW5mby5jcHAgaW4gU291cmNlcyAqLywKKwkJCQlBMEIwRjFDRTE0NEI3MDU3MDAx
RkU5RjAgLyogV2ViR0xEZWJ1Z1NoYWRlcnMuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkpOwogCQkJ
cnVuT25seUZvckRlcGxveW1lbnRQb3N0cHJvY2Vzc2luZyA9IDA7CiAJCX07CkluZGV4OiBTb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1dlYkdMUmVuZGVyaW5nQ29udGV4dEN1c3RvbS5jcHAK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNXZWJHTFJlbmRlcmlu
Z0NvbnRleHRDdXN0b20uY3BwCShyZXZpc2lvbiA5NzYyMSkKKysrIFNvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL2pzL0pTV2ViR0xSZW5kZXJpbmdDb250ZXh0Q3VzdG9tLmNwcAkod29ya2luZyBjb3B5
KQpAQCAtMjksNDIgKzI5LDQ0IEBACiAKICNpbmNsdWRlICJKU1dlYkdMUmVuZGVyaW5nQ29udGV4
dC5oIgogCi0jaW5jbHVkZSAiV2ViS2l0TG9zZUNvbnRleHQuaCIKICNpbmNsdWRlICJFeGNlcHRp
b25Db2RlLmgiCisjaW5jbHVkZSAiRmxvYXQzMkFycmF5LmgiCiAjaW5jbHVkZSAiSFRNTENhbnZh
c0VsZW1lbnQuaCIKICNpbmNsdWRlICJIVE1MSW1hZ2VFbGVtZW50LmgiCi0jaW5jbHVkZSAiSlNX
ZWJLaXRMb3NlQ29udGV4dC5oIgorI2luY2x1ZGUgIkludDMyQXJyYXkuaCIKKyNpbmNsdWRlICJK
U0Zsb2F0MzJBcnJheS5oIgogI2luY2x1ZGUgIkpTSFRNTENhbnZhc0VsZW1lbnQuaCIKICNpbmNs
dWRlICJKU0hUTUxJbWFnZUVsZW1lbnQuaCIKICNpbmNsdWRlICJKU0ltYWdlRGF0YS5oIgorI2lu
Y2x1ZGUgIkpTSW50MzJBcnJheS5oIgogI2luY2x1ZGUgIkpTT0VTU3RhbmRhcmREZXJpdmF0aXZl
cy5oIgogI2luY2x1ZGUgIkpTT0VTVGV4dHVyZUZsb2F0LmgiCiAjaW5jbHVkZSAiSlNPRVNWZXJ0
ZXhBcnJheU9iamVjdC5oIgotI2luY2x1ZGUgIkpTV2ViR0xWZXJ0ZXhBcnJheU9iamVjdE9FUy5o
IgorI2luY2x1ZGUgIkpTVWludDhBcnJheS5oIgogI2luY2x1ZGUgIkpTV2ViR0xCdWZmZXIuaCIK
LSNpbmNsdWRlICJKU0Zsb2F0MzJBcnJheS5oIgogI2luY2x1ZGUgIkpTV2ViR0xGcmFtZWJ1ZmZl
ci5oIgotI2luY2x1ZGUgIkpTSW50MzJBcnJheS5oIgogI2luY2x1ZGUgIkpTV2ViR0xQcm9ncmFt
LmgiCiAjaW5jbHVkZSAiSlNXZWJHTFJlbmRlcmJ1ZmZlci5oIgogI2luY2x1ZGUgIkpTV2ViR0xT
aGFkZXIuaCIKICNpbmNsdWRlICJKU1dlYkdMVGV4dHVyZS5oIgogI2luY2x1ZGUgIkpTV2ViR0xV
bmlmb3JtTG9jYXRpb24uaCIKLSNpbmNsdWRlICJKU1VpbnQ4QXJyYXkuaCIKKyNpbmNsdWRlICJK
U1dlYkdMVmVydGV4QXJyYXlPYmplY3RPRVMuaCIKICNpbmNsdWRlICJKU1dlYktpdENTU01hdHJp
eC5oIgorI2luY2x1ZGUgIkpTV2ViS2l0TG9zZUNvbnRleHQuaCIKICNpbmNsdWRlICJOb3RJbXBs
ZW1lbnRlZC5oIgogI2luY2x1ZGUgIk9FU1N0YW5kYXJkRGVyaXZhdGl2ZXMuaCIKICNpbmNsdWRl
ICJPRVNUZXh0dXJlRmxvYXQuaCIKICNpbmNsdWRlICJPRVNWZXJ0ZXhBcnJheU9iamVjdC5oIgot
I2luY2x1ZGUgIldlYkdMVmVydGV4QXJyYXlPYmplY3RPRVMuaCIKICNpbmNsdWRlICJXZWJHTEJ1
ZmZlci5oIgotI2luY2x1ZGUgIkZsb2F0MzJBcnJheS5oIgorI2luY2x1ZGUgIldlYkdMRGVidWdS
ZW5kZXJlckluZm8uaCIKKyNpbmNsdWRlICJXZWJHTERlYnVnU2hhZGVycy5oIgogI2luY2x1ZGUg
IldlYkdMRXh0ZW5zaW9uLmgiCiAjaW5jbHVkZSAiV2ViR0xGcmFtZWJ1ZmZlci5oIgogI2luY2x1
ZGUgIldlYkdMR2V0SW5mby5oIgotI2luY2x1ZGUgIkludDMyQXJyYXkuaCIKICNpbmNsdWRlICJX
ZWJHTFByb2dyYW0uaCIKICNpbmNsdWRlICJXZWJHTFJlbmRlcmluZ0NvbnRleHQuaCIKKyNpbmNs
dWRlICJXZWJHTFZlcnRleEFycmF5T2JqZWN0T0VTLmgiCisjaW5jbHVkZSAiV2ViS2l0TG9zZUNv
bnRleHQuaCIKICNpbmNsdWRlIDxydW50aW1lL0Vycm9yLmg+CiAjaW5jbHVkZSA8cnVudGltZS9K
U0FycmF5Lmg+CiAjaW5jbHVkZSA8d3RmL0Zhc3RNYWxsb2MuaD4KQEAgLTE4Nyw2ICsxODksMTAg
QEAgc3RhdGljIEpTVmFsdWUgdG9KUyhFeGVjU3RhdGUqIGV4ZWMsIEpTRAogICAgICAgICByZXR1
cm4gdG9KUyhleGVjLCBnbG9iYWxPYmplY3QsIHN0YXRpY19jYXN0PE9FU1RleHR1cmVGbG9hdCo+
KGV4dGVuc2lvbikpOwogICAgIGNhc2UgV2ViR0xFeHRlbnNpb246Ok9FU1ZlcnRleEFycmF5T2Jq
ZWN0TmFtZToKICAgICAgICAgcmV0dXJuIHRvSlMoZXhlYywgZ2xvYmFsT2JqZWN0LCBzdGF0aWNf
Y2FzdDxPRVNWZXJ0ZXhBcnJheU9iamVjdCo+KGV4dGVuc2lvbikpOworICAgIGNhc2UgV2ViR0xF
eHRlbnNpb246OldlYkdMRGVidWdSZW5kZXJlckluZm9OYW1lOgorICAgICAgICByZXR1cm4gdG9K
UyhleGVjLCBnbG9iYWxPYmplY3QsIHN0YXRpY19jYXN0PFdlYkdMRGVidWdSZW5kZXJlckluZm8q
PihleHRlbnNpb24pKTsKKyAgICBjYXNlIFdlYkdMRXh0ZW5zaW9uOjpXZWJHTERlYnVnU2hhZGVy
c05hbWU6CisgICAgICAgIHJldHVybiB0b0pTKGV4ZWMsIGdsb2JhbE9iamVjdCwgc3RhdGljX2Nh
c3Q8V2ViR0xEZWJ1Z1NoYWRlcnMqPihleHRlbnNpb24pKTsKICAgICB9CiAgICAgQVNTRVJUX05P
VF9SRUFDSEVEKCk7CiAgICAgcmV0dXJuIGpzTnVsbCgpOwpJbmRleDogU291cmNlL1dlYkNvcmUv
YmluZGluZ3MvdjgvY3VzdG9tL1Y4V2ViR0xSZW5kZXJpbmdDb250ZXh0Q3VzdG9tLmNwcAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0b20vVjhXZWJHTFJlbmRl
cmluZ0NvbnRleHRDdXN0b20uY3BwCShyZXZpc2lvbiA5NzYyMSkKKysrIFNvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL3Y4L2N1c3RvbS9WOFdlYkdMUmVuZGVyaW5nQ29udGV4dEN1c3RvbS5jcHAJKHdv
cmtpbmcgY29weSkKQEAgLTU2LDYgKzU2LDggQEAKICNpbmNsdWRlICJWOFVpbnQzMkFycmF5Lmgi
CiAjaW5jbHVkZSAiVjhVaW50OEFycmF5LmgiCiAjaW5jbHVkZSAiVjhXZWJHTEJ1ZmZlci5oIgor
I2luY2x1ZGUgIlY4V2ViR0xEZWJ1Z1JlbmRlcmVySW5mby5oIgorI2luY2x1ZGUgIlY4V2ViR0xE
ZWJ1Z1NoYWRlcnMuaCIKICNpbmNsdWRlICJWOFdlYkdMRnJhbWVidWZmZXIuaCIKICNpbmNsdWRl
ICJWOFdlYkdMUHJvZ3JhbS5oIgogI2luY2x1ZGUgIlY4V2ViR0xSZW5kZXJidWZmZXIuaCIKQEAg
LTE4Miw2ICsxODQsMTQgQEAgc3RhdGljIHY4OjpIYW5kbGU8djg6OlZhbHVlPiB0b1Y4T2JqZWN0
KAogICAgICAgICBleHRlbnNpb25PYmplY3QgPSB0b1Y4KHN0YXRpY19jYXN0PE9FU1ZlcnRleEFy
cmF5T2JqZWN0Kj4oZXh0ZW5zaW9uKSk7CiAgICAgICAgIHJlZmVyZW5jZU5hbWUgPSAib2VzVmVy
dGV4QXJyYXlPYmplY3ROYW1lIjsKICAgICAgICAgYnJlYWs7CisgICAgY2FzZSBXZWJHTEV4dGVu
c2lvbjo6V2ViR0xEZWJ1Z1JlbmRlcmVySW5mb05hbWU6CisgICAgICAgIGV4dGVuc2lvbk9iamVj
dCA9IHRvVjgoc3RhdGljX2Nhc3Q8V2ViR0xEZWJ1Z1JlbmRlcmVySW5mbyo+KGV4dGVuc2lvbikp
OworICAgICAgICByZWZlcmVuY2VOYW1lID0gIndlYkdMRGVidWdSZW5kZXJlckluZm9OYW1lIjsK
KyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBXZWJHTEV4dGVuc2lvbjo6V2ViR0xEZWJ1Z1NoYWRl
cnNOYW1lOgorICAgICAgICBleHRlbnNpb25PYmplY3QgPSB0b1Y4KHN0YXRpY19jYXN0PFdlYkdM
RGVidWdTaGFkZXJzKj4oZXh0ZW5zaW9uKSk7CisgICAgICAgIHJlZmVyZW5jZU5hbWUgPSAid2Vi
R0xEZWJ1Z1NoYWRlcnNOYW1lIjsKKyAgICAgICAgYnJlYWs7CiAgICAgfQogICAgIEFTU0VSVCgh
ZXh0ZW5zaW9uT2JqZWN0LklzRW1wdHkoKSk7CiAgICAgVjhET01XcmFwcGVyOjpzZXROYW1lZEhp
ZGRlblJlZmVyZW5jZShjb250ZXh0T2JqZWN0LCByZWZlcmVuY2VOYW1lLCBleHRlbnNpb25PYmpl
Y3QpOwpJbmRleDogU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xEZWJ1Z1JlbmRlcmVy
SW5mby5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xE
ZWJ1Z1JlbmRlcmVySW5mby5jcHAJKHJldmlzaW9uIDApCisrKyBTb3VyY2UvV2ViQ29yZS9odG1s
L2NhbnZhcy9XZWJHTERlYnVnUmVuZGVyZXJJbmZvLmNwcAkocmV2aXNpb24gMCkKQEAgLTAsMCAr
MSw1NyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMSBHb29nbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0Ogor
ICoKKyAqIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4g
YmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ciBpbiB0aGUKKyAqICAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJv
dmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJP
VklERUQgQlkgQVBQTEUgQU5EIElUUyBDT05UUklCVVRPUlMgIkFTIElTIiBBTkQgQU5ZCisgKiBF
WFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sIFRIRSBJTVBMSUVECisgKiBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklU
TkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCisgKiBESVNDTEFJTUVELiBJTiBOTyBF
VkVOVCBTSEFMTCBBUFBMRSBPUiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZCisg
KiBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENP
TlNFUVVFTlRJQUwgREFNQUdFUworICogKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQ
Uk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOworICogTE9TUyBPRiBV
U0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBD
QVVTRUQgQU5ECisgKiBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05U
UkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNF
IE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GCisgKiBU
SElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gg
REFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKworI2lmIEVOQUJMRShXRUJHTCkK
KworI2luY2x1ZGUgIldlYkdMRGVidWdSZW5kZXJlckluZm8uaCIKKworI2luY2x1ZGUgIldlYkdM
UmVuZGVyaW5nQ29udGV4dC5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK1dlYkdMRGVidWdS
ZW5kZXJlckluZm86OldlYkdMRGVidWdSZW5kZXJlckluZm8oV2ViR0xSZW5kZXJpbmdDb250ZXh0
KiBjb250ZXh0KQorICAgIDogV2ViR0xFeHRlbnNpb24oY29udGV4dCkKK3sKK30KKworV2ViR0xE
ZWJ1Z1JlbmRlcmVySW5mbzo6fldlYkdMRGVidWdSZW5kZXJlckluZm8oKQoreworfQorCitXZWJH
TEV4dGVuc2lvbjo6RXh0ZW5zaW9uTmFtZSBXZWJHTERlYnVnUmVuZGVyZXJJbmZvOjpnZXROYW1l
KCkgY29uc3QKK3sKKyAgICByZXR1cm4gV2ViR0xEZWJ1Z1JlbmRlcmVySW5mb05hbWU7Cit9CisK
K1Bhc3NPd25QdHI8V2ViR0xEZWJ1Z1JlbmRlcmVySW5mbz4gV2ViR0xEZWJ1Z1JlbmRlcmVySW5m
bzo6Y3JlYXRlKFdlYkdMUmVuZGVyaW5nQ29udGV4dCogY29udGV4dCkKK3sKKyAgICByZXR1cm4g
YWRvcHRQdHIobmV3IFdlYkdMRGVidWdSZW5kZXJlckluZm8oY29udGV4dCkpOworfQorCit9IC8v
IG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBFTkFCTEUoV0VCR0wpCgpQcm9wZXJ0eSBj
aGFuZ2VzIG9uOiBTb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTERlYnVnUmVuZGVyZXJJ
bmZvLmNwcApfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fCkFkZGVkOiBzdm46ZW9sLXN0eWxlCiAgICsgTEYKCkluZGV4OiBT
b3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTERlYnVnUmVuZGVyZXJJbmZvLmgKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xEZWJ1Z1JlbmRlcmVySW5m
by5oCShyZXZpc2lvbiAwKQorKysgU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xEZWJ1
Z1JlbmRlcmVySW5mby5oCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDUyIEBACisvKgorICogQ29w
eXJpZ2h0IChDKSAyMDExIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICog
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKgorICogMS4gIFJlZGlzdHJp
YnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyLgorICogMi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJl
cHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgIGRv
Y3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0
cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBBTkQg
SVRTIENPTlRSSUJVVE9SUyAiQVMgSVMiIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBX
QVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQKKyAq
IFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VM
QVIgUFVSUE9TRSBBUkUKKyAqIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIE9S
IElUUyBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkKKyAqIERJUkVDVCwgSU5ESVJFQ1Qs
IElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VT
CisgKiAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNU
SVRVVEUgR09PRFMgT1IgU0VSVklDRVM7CisgKiBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklU
UzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQKKyAqIE9OIEFO
WSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklM
SVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklT
SU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YKKyAqIFRISVMgU09GVFdBUkUsIEVWRU4g
SUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lm
bmRlZiBXZWJHTERlYnVnUmVuZGVyZXJJbmZvX2gKKyNkZWZpbmUgV2ViR0xEZWJ1Z1JlbmRlcmVy
SW5mb19oCisKKyNpbmNsdWRlICJXZWJHTEV4dGVuc2lvbi5oIgorI2luY2x1ZGUgPHd0Zi9QYXNz
T3duUHRyLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgV2ViR0xEZWJ1Z1JlbmRl
cmVySW5mbyA6IHB1YmxpYyBXZWJHTEV4dGVuc2lvbiB7CitwdWJsaWM6CisgICAgZW51bSBFbnVt
VHlwZSB7CisgICAgICAgIFVOTUFTS0VEX1ZFTkRPUl9XRUJHTCA9IDB4OTI0NSwKKyAgICAgICAg
VU5NQVNLRURfUkVOREVSRVJfV0VCR0wgPSAweDkyNDYKKyAgICB9OworCisgICAgc3RhdGljIFBh
c3NPd25QdHI8V2ViR0xEZWJ1Z1JlbmRlcmVySW5mbz4gY3JlYXRlKFdlYkdMUmVuZGVyaW5nQ29u
dGV4dCopOworCisgICAgdmlydHVhbCB+V2ViR0xEZWJ1Z1JlbmRlcmVySW5mbygpOworICAgIHZp
cnR1YWwgRXh0ZW5zaW9uTmFtZSBnZXROYW1lKCkgY29uc3Q7CisKK3ByaXZhdGU6CisgICAgV2Vi
R0xEZWJ1Z1JlbmRlcmVySW5mbyhXZWJHTFJlbmRlcmluZ0NvbnRleHQqKTsKK307CisKK30gLy8g
bmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIFdlYkdMRGVidWdSZW5kZXJlckluZm9faAoK
UHJvcGVydHkgY2hhbmdlcyBvbjogU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xEZWJ1
Z1JlbmRlcmVySW5mby5oCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX18KQWRkZWQ6IHN2bjplb2wtc3R5bGUKICAgKyBMRgoK
SW5kZXg6IFNvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMRGVidWdSZW5kZXJlckluZm8u
aWRsCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMRGVidWdS
ZW5kZXJlckluZm8uaWRsCShyZXZpc2lvbiAwKQorKysgU291cmNlL1dlYkNvcmUvaHRtbC9jYW52
YXMvV2ViR0xEZWJ1Z1JlbmRlcmVySW5mby5pZGwJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsMzYg
QEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTEgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqCisg
KiAxLiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFy
eSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4g
dGhlCisgKiAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVk
IHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVE
IEJZIEFQUExFIEFORCBJVFMgQ09OVFJJQlVUT1JTICJBUyBJUyIgQU5EIEFOWQorICogRVhQUkVT
UyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBU
SEUgSU1QTElFRAorICogV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1Mg
Rk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRQorICogRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQg
U0hBTEwgQVBQTEUgT1IgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWQorICogRElS
RUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFV
RU5USUFMIERBTUFHRVMKKyAqIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VS
RU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsKKyAqIExPU1MgT0YgVVNFLCBE
QVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VE
IEFORAorICogT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1Qs
IFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBP
VEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRgorICogVEhJUyBT
T0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFH
RS4KKyAqLworCittb2R1bGUgaHRtbCB7CisgICAgaW50ZXJmYWNlIFsKKyAgICAgICAgQ29uZGl0
aW9uYWw9V0VCR0wsCisgICAgICAgIEdlbmVyYXRlSXNSZWFjaGFibGU9SW1wbENvbnRleHQsCisg
ICAgICAgIE9taXRDb25zdHJ1Y3RvciwKKyAgICAgICAgRG9udENoZWNrRW51bXMKKyAgICBdIFdl
YkdMRGVidWdSZW5kZXJlckluZm8geworICAgICAgICBjb25zdCB1bnNpZ25lZCBpbnQgVU5NQVNL
RURfVkVORE9SX1dFQkdMID0gMHg5MjQ1OworICAgICAgICBjb25zdCB1bnNpZ25lZCBpbnQgVU5N
QVNLRURfUkVOREVSRVJfV0VCR0wgPSAweDkyNDY7CisgICAgfTsKK30KClByb3BlcnR5IGNoYW5n
ZXMgb246IFNvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMRGVidWdSZW5kZXJlckluZm8u
aWRsCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX18KQWRkZWQ6IHN2bjplb2wtc3R5bGUKICAgKyBMRgoKSW5kZXg6IFNvdXJj
ZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMRGVidWdTaGFkZXJzLmNwcAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTERlYnVnU2hhZGVycy5jcHAJKHJldmlz
aW9uIDApCisrKyBTb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTERlYnVnU2hhZGVycy5j
cHAJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsNzEgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIw
MTEgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAq
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqCisgKiAxLiAgUmVkaXN0cmlidXRpb25zIG9mIHNv
dXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisg
KiAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICAgZG9jdW1lbnRhdGlvbiBh
bmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAq
CisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIEFORCBJVFMgQ09OVFJJQlVU
T1JTICJBUyBJUyIgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAorICogV0FSUkFOVElFUyBP
RiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFS
RQorICogRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgT1IgSVRTIENPTlRSSUJV
VE9SUyBCRSBMSUFCTEUgRk9SIEFOWQorICogRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwg
U1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMKKyAqIChJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBP
UiBTRVJWSUNFUzsKKyAqIExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVT
UyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORAorICogT04gQU5ZIFRIRU9SWSBPRiBM
SUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQK
KyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdB
WSBPVVQgT0YgVEhFIFVTRSBPRgorICogVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9G
IFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmln
LmgiCisKKyNpZiBFTkFCTEUoV0VCR0wpCisKKyNpbmNsdWRlICJXZWJHTERlYnVnU2hhZGVycy5o
IgorCisjaW5jbHVkZSAiRXh0ZW5zaW9uczNELmgiCisjaW5jbHVkZSAiV2ViR0xSZW5kZXJpbmdD
b250ZXh0LmgiCisjaW5jbHVkZSAiV2ViR0xTaGFkZXIuaCIKKworI2luY2x1ZGUgPHd0Zi9Pd25B
cnJheVB0ci5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK1dlYkdMRGVidWdTaGFkZXJzOjpX
ZWJHTERlYnVnU2hhZGVycyhXZWJHTFJlbmRlcmluZ0NvbnRleHQqIGNvbnRleHQpCisgICAgOiBX
ZWJHTEV4dGVuc2lvbihjb250ZXh0KQoreworfQorCitXZWJHTERlYnVnU2hhZGVyczo6fldlYkdM
RGVidWdTaGFkZXJzKCkKK3sKK30KKworV2ViR0xFeHRlbnNpb246OkV4dGVuc2lvbk5hbWUgV2Vi
R0xEZWJ1Z1NoYWRlcnM6OmdldE5hbWUoKSBjb25zdAoreworICAgIHJldHVybiBXZWJHTERlYnVn
U2hhZGVyc05hbWU7Cit9CisKK1Bhc3NPd25QdHI8V2ViR0xEZWJ1Z1NoYWRlcnM+IFdlYkdMRGVi
dWdTaGFkZXJzOjpjcmVhdGUoV2ViR0xSZW5kZXJpbmdDb250ZXh0KiBjb250ZXh0KQoreworICAg
IHJldHVybiBhZG9wdFB0cihuZXcgV2ViR0xEZWJ1Z1NoYWRlcnMoY29udGV4dCkpOworfQorCitT
dHJpbmcgV2ViR0xEZWJ1Z1NoYWRlcnM6OmdldFRyYW5zbGF0ZWRTaGFkZXJTb3VyY2UoV2ViR0xT
aGFkZXIqIHNoYWRlciwgRXhjZXB0aW9uQ29kZSYgZWMpCit7CisgICAgVU5VU0VEX1BBUkFNKGVj
KTsKKyAgICBpZiAobV9jb250ZXh0LT5pc0NvbnRleHRMb3N0KCkpCisgICAgICAgIHJldHVybiBT
dHJpbmcoKTsKKyAgICBpZiAoIW1fY29udGV4dC0+dmFsaWRhdGVXZWJHTE9iamVjdChzaGFkZXIp
KQorICAgICAgICByZXR1cm4gIiI7CisgICAgcmV0dXJuIG1fY29udGV4dC0+Z3JhcGhpY3NDb250
ZXh0M0QoKS0+Z2V0RXh0ZW5zaW9ucygpLT5nZXRUcmFuc2xhdGVkU2hhZGVyU291cmNlQU5HTEUo
c2hhZGVyLT5vYmplY3QoKSk7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlm
IC8vIEVOQUJMRShXRUJHTCkKClByb3BlcnR5IGNoYW5nZXMgb246IFNvdXJjZS9XZWJDb3JlL2h0
bWwvY2FudmFzL1dlYkdMRGVidWdTaGFkZXJzLmNwcApfX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCkFkZGVkOiBzdm46ZW9s
LXN0eWxlCiAgICsgTEYKCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTERl
YnVnU2hhZGVycy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dl
YkdMRGVidWdTaGFkZXJzLmgJKHJldmlzaW9uIDApCisrKyBTb3VyY2UvV2ViQ29yZS9odG1sL2Nh
bnZhcy9XZWJHTERlYnVnU2hhZGVycy5oCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDUyIEBACisv
KgorICogQ29weXJpZ2h0IChDKSAyMDExIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKgorICogMS4g
IFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9y
bSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQor
ICogICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRo
IHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBB
UFBMRSBBTkQgSVRTIENPTlRSSUJVVE9SUyAiQVMgSVMiIEFORCBBTlkKKyAqIEVYUFJFU1MgT1Ig
SU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElN
UExJRUQKKyAqIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBB
IFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKKyAqIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxM
IEFQUExFIE9SIElUUyBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkKKyAqIERJUkVDVCwg
SU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElB
TCBEQU1BR0VTCisgKiAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5U
IE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7CisgKiBMT1NTIE9GIFVTRSwgREFUQSwg
T1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQK
KyAqIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJ
Q1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJX
SVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YKKyAqIFRISVMgU09GVFdB
UkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisg
Ki8KKworI2lmbmRlZiBXZWJHTERlYnVnU2hhZGVyc19oCisjZGVmaW5lIFdlYkdMRGVidWdTaGFk
ZXJzX2gKKworI2luY2x1ZGUgIkV4Y2VwdGlvbkNvZGUuaCIKKyNpbmNsdWRlICJXZWJHTEV4dGVu
c2lvbi5oIgorI2luY2x1ZGUgPHd0Zi9QYXNzT3duUHRyLmg+CisKK25hbWVzcGFjZSBXZWJDb3Jl
IHsKKworY2xhc3MgV2ViR0xTaGFkZXI7CisKK2NsYXNzIFdlYkdMRGVidWdTaGFkZXJzIDogcHVi
bGljIFdlYkdMRXh0ZW5zaW9uIHsKK3B1YmxpYzoKKyAgICBzdGF0aWMgUGFzc093blB0cjxXZWJH
TERlYnVnU2hhZGVycz4gY3JlYXRlKFdlYkdMUmVuZGVyaW5nQ29udGV4dCopOworCisgICAgdmly
dHVhbCB+V2ViR0xEZWJ1Z1NoYWRlcnMoKTsKKyAgICB2aXJ0dWFsIEV4dGVuc2lvbk5hbWUgZ2V0
TmFtZSgpIGNvbnN0OworCisgICAgU3RyaW5nIGdldFRyYW5zbGF0ZWRTaGFkZXJTb3VyY2UoV2Vi
R0xTaGFkZXIqLCBFeGNlcHRpb25Db2RlJik7CisKK3ByaXZhdGU6CisgICAgV2ViR0xEZWJ1Z1No
YWRlcnMoV2ViR0xSZW5kZXJpbmdDb250ZXh0Kik7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJD
b3JlCisKKyNlbmRpZiAvLyBXZWJHTERlYnVnU2hhZGVyc19oCgpQcm9wZXJ0eSBjaGFuZ2VzIG9u
OiBTb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTERlYnVnU2hhZGVycy5oCl9fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X18KQWRkZWQ6IHN2bjplb2wtc3R5bGUKICAgKyBMRgoKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2h0
bWwvY2FudmFzL1dlYkdMRGVidWdTaGFkZXJzLmlkbAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9odG1sL2NhbnZhcy9XZWJHTERlYnVnU2hhZGVycy5pZGwJKHJldmlzaW9uIDApCisrKyBT
b3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTERlYnVnU2hhZGVycy5pZGwJKHJldmlzaW9u
IDApCkBAIC0wLDAgKzEsMzQgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTEgR29vZ2xlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwor
ICogYXJlIG1ldDoKKyAqCisgKiAxLiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11
c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiAgUmVkaXN0
cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIg
bWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNP
RlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIEFORCBJVFMgQ09OVFJJQlVUT1JTICJBUyBJUyIg
QU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAorICogV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFC
SUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRQorICogRElTQ0xB
SU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgT1IgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFC
TEUgRk9SIEFOWQorICogRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhF
TVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMKKyAqIChJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsK
KyAqIExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJ
T04pIEhPV0VWRVIgQ0FVU0VEIEFORAorICogT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdI
RVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJ
TkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhF
IFVTRSBPRgorICogVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCittb2R1bGUgaHRtbCB7CisgICAgaW50ZXJmYWNl
IFsKKyAgICAgICAgQ29uZGl0aW9uYWw9V0VCR0wsCisgICAgICAgIEdlbmVyYXRlSXNSZWFjaGFi
bGU9SW1wbENvbnRleHQsCisgICAgICAgIE9taXRDb25zdHJ1Y3RvcgorICAgIF0gV2ViR0xEZWJ1
Z1NoYWRlcnMgeworICAgICAgICBbU3RyaWN0VHlwZUNoZWNraW5nLCBDb252ZXJ0TnVsbFN0cmlu
Z1RvPU51bGxdIERPTVN0cmluZyBnZXRUcmFuc2xhdGVkU2hhZGVyU291cmNlKGluIFdlYkdMU2hh
ZGVyIHNoYWRlcikgcmFpc2VzKERPTUV4Y2VwdGlvbik7CisgICAgfTsKK30KClByb3BlcnR5IGNo
YW5nZXMgb246IFNvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMRGVidWdTaGFkZXJzLmlk
bApfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fCkFkZGVkOiBzdm46ZW9sLXN0eWxlCiAgICsgTEYKCkluZGV4OiBTb3VyY2Uv
V2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTEV4dGVuc2lvbi5oCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMRXh0ZW5zaW9uLmgJKHJldmlzaW9uIDk3NjIxKQor
KysgU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xFeHRlbnNpb24uaAkod29ya2luZyBj
b3B5KQpAQCAtMzgsNiArMzgsOCBAQCBwdWJsaWM6CiAgICAgICAgIE9FU1RleHR1cmVGbG9hdE5h
bWUsCiAgICAgICAgIE9FU1N0YW5kYXJkRGVyaXZhdGl2ZXNOYW1lLAogICAgICAgICBPRVNWZXJ0
ZXhBcnJheU9iamVjdE5hbWUsCisgICAgICAgIFdlYkdMRGVidWdSZW5kZXJlckluZm9OYW1lLAor
ICAgICAgICBXZWJHTERlYnVnU2hhZGVyc05hbWUsCiAgICAgfTsKIAogICAgIHZvaWQgcmVmKCkg
eyBtX2NvbnRleHQtPnJlZigpOyB9CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9X
ZWJHTFJlbmRlcmluZ0NvbnRleHQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2h0
bWwvY2FudmFzL1dlYkdMUmVuZGVyaW5nQ29udGV4dC5jcHAJKHJldmlzaW9uIDk3NjIxKQorKysg
U291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xSZW5kZXJpbmdDb250ZXh0LmNwcAkod29y
a2luZyBjb3B5KQpAQCAtMzIsNyArMzIsNiBAQAogI2luY2x1ZGUgIkNhY2hlZEltYWdlLmgiCiAj
aW5jbHVkZSAiQ2FudmFzUGl4ZWxBcnJheS5oIgogI2luY2x1ZGUgIkNoZWNrZWRJbnQuaCIKLSNp
bmNsdWRlICJXZWJLaXRMb3NlQ29udGV4dC5oIgogI2luY2x1ZGUgIkNvbnNvbGUuaCIKICNpbmNs
dWRlICJET01XaW5kb3cuaCIKICNpbmNsdWRlICJFeHRlbnNpb25zM0QuaCIKQEAgLTU3LDEyICs1
NiwxNSBAQAogI2luY2x1ZGUgIldlYkdMQnVmZmVyLmgiCiAjaW5jbHVkZSAiV2ViR0xDb250ZXh0
QXR0cmlidXRlcy5oIgogI2luY2x1ZGUgIldlYkdMQ29udGV4dEV2ZW50LmgiCisjaW5jbHVkZSAi
V2ViR0xEZWJ1Z1JlbmRlcmVySW5mby5oIgorI2luY2x1ZGUgIldlYkdMRGVidWdTaGFkZXJzLmgi
CiAjaW5jbHVkZSAiV2ViR0xGcmFtZWJ1ZmZlci5oIgogI2luY2x1ZGUgIldlYkdMUHJvZ3JhbS5o
IgogI2luY2x1ZGUgIldlYkdMUmVuZGVyYnVmZmVyLmgiCiAjaW5jbHVkZSAiV2ViR0xTaGFkZXIu
aCIKICNpbmNsdWRlICJXZWJHTFRleHR1cmUuaCIKICNpbmNsdWRlICJXZWJHTFVuaWZvcm1Mb2Nh
dGlvbi5oIgorI2luY2x1ZGUgIldlYktpdExvc2VDb250ZXh0LmgiCiAKICNpbmNsdWRlIDx3dGYv
Qnl0ZUFycmF5Lmg+CiAjaW5jbHVkZSA8d3RmL093bkFycmF5UHRyLmg+CkBAIC00NzMsNiArNDc1
LDEyIEBAIHZvaWQgV2ViR0xSZW5kZXJpbmdDb250ZXh0OjpzZXR1cEZsYWdzKCkKICAgICB9CiB9
CiAKK2Jvb2wgV2ViR0xSZW5kZXJpbmdDb250ZXh0OjphbGxvd1ByaXZpbGVnZWRFeHRlbnNpb25z
KCkgY29uc3QKK3sKKyAgICAvLyBGSVhNRTogaW1wbGVtZW50IHRoaXMgZnVuY3Rpb24uCisgICAg
cmV0dXJuIGZhbHNlOworfQorCiBXZWJHTFJlbmRlcmluZ0NvbnRleHQ6On5XZWJHTFJlbmRlcmlu
Z0NvbnRleHQoKQogewogICAgIGRldGFjaEFuZFJlbW92ZUFsbE9iamVjdHMoKTsKQEAgLTE5OTks
NiArMjAwNywyOCBAQCBXZWJHTEV4dGVuc2lvbiogV2ViR0xSZW5kZXJpbmdDb250ZXh0OjpnCiAg
ICAgICAgICAgICBtX3dlYmtpdExvc2VDb250ZXh0ID0gV2ViS2l0TG9zZUNvbnRleHQ6OmNyZWF0
ZSh0aGlzKTsKICAgICAgICAgcmV0dXJuIG1fd2Via2l0TG9zZUNvbnRleHQuZ2V0KCk7CiAgICAg
fQorICAgIGlmIChlcXVhbElnbm9yaW5nQ2FzZShuYW1lLCAiT0VTX3N0YW5kYXJkX2Rlcml2YXRp
dmVzIikKKyAgICAgICAgJiYgbV9jb250ZXh0LT5nZXRFeHRlbnNpb25zKCktPnN1cHBvcnRzKCJH
TF9PRVNfc3RhbmRhcmRfZGVyaXZhdGl2ZXMiKSkgeworICAgICAgICBpZiAoIW1fb2VzU3RhbmRh
cmREZXJpdmF0aXZlcykgeworICAgICAgICAgICAgbV9jb250ZXh0LT5nZXRFeHRlbnNpb25zKCkt
PmVuc3VyZUVuYWJsZWQoIkdMX09FU19zdGFuZGFyZF9kZXJpdmF0aXZlcyIpOworICAgICAgICAg
ICAgbV9vZXNTdGFuZGFyZERlcml2YXRpdmVzID0gT0VTU3RhbmRhcmREZXJpdmF0aXZlczo6Y3Jl
YXRlKHRoaXMpOworICAgICAgICB9CisgICAgICAgIHJldHVybiBtX29lc1N0YW5kYXJkRGVyaXZh
dGl2ZXMuZ2V0KCk7CisgICAgfQorCisgICAgaWYgKGFsbG93UHJpdmlsZWdlZEV4dGVuc2lvbnMo
KSkgeworICAgICAgICBpZiAoZXF1YWxJZ25vcmluZ0Nhc2UobmFtZSwgIldFQkdMX2RlYnVnX3Jl
bmRlcmVyX2luZm8iKSkgeworICAgICAgICAgICAgaWYgKCFtX3dlYmdsRGVidWdSZW5kZXJlcklu
Zm8pCisgICAgICAgICAgICAgICAgbV93ZWJnbERlYnVnUmVuZGVyZXJJbmZvID0gV2ViR0xEZWJ1
Z1JlbmRlcmVySW5mbzo6Y3JlYXRlKHRoaXMpOworICAgICAgICAgICAgcmV0dXJuIG1fd2ViZ2xE
ZWJ1Z1JlbmRlcmVySW5mby5nZXQoKTsKKyAgICAgICAgfQorICAgICAgICBpZiAoZXF1YWxJZ25v
cmluZ0Nhc2UobmFtZSwgIldFQkdMX2RlYnVnX3NoYWRlcnMiKQorICAgICAgICAgICAgJiYgbV9j
b250ZXh0LT5nZXRFeHRlbnNpb25zKCktPnN1cHBvcnRzKCJHTF9BTkdMRV90cmFuc2xhdGVkX3No
YWRlcl9zb3VyY2UiKSkgeworICAgICAgICAgICAgaWYgKCFtX3dlYmdsRGVidWdTaGFkZXJzKQor
ICAgICAgICAgICAgICAgIG1fd2ViZ2xEZWJ1Z1NoYWRlcnMgPSBXZWJHTERlYnVnU2hhZGVyczo6
Y3JlYXRlKHRoaXMpOworICAgICAgICAgICAgcmV0dXJuIG1fd2ViZ2xEZWJ1Z1NoYWRlcnMuZ2V0
KCk7CisgICAgICAgIH0KKyAgICB9CiAKICAgICByZXR1cm4gMDsKIH0KQEAgLTIyNDUsNiArMjI3
NSwxNiBAQCBXZWJHTEdldEluZm8gV2ViR0xSZW5kZXJpbmdDb250ZXh0OjpnZXRQCiAgICAgICAg
ICAgICByZXR1cm4gZ2V0VW5zaWduZWRJbnRQYXJhbWV0ZXIoRXh0ZW5zaW9uczNEOjpGUkFHTUVO
VF9TSEFERVJfREVSSVZBVElWRV9ISU5UX09FUyk7CiAgICAgICAgIG1fY29udGV4dC0+c3ludGhl
c2l6ZUdMRXJyb3IoR3JhcGhpY3NDb250ZXh0M0Q6OklOVkFMSURfRU5VTSk7CiAgICAgICAgIHJl
dHVybiBXZWJHTEdldEluZm8oKTsKKyAgICBjYXNlIFdlYkdMRGVidWdSZW5kZXJlckluZm86OlVO
TUFTS0VEX1JFTkRFUkVSX1dFQkdMOgorICAgICAgICBpZiAobV93ZWJnbERlYnVnUmVuZGVyZXJJ
bmZvKQorICAgICAgICAgICAgcmV0dXJuIFdlYkdMR2V0SW5mbyhtX2NvbnRleHQtPmdldFN0cmlu
ZyhHcmFwaGljc0NvbnRleHQzRDo6UkVOREVSRVIpKTsKKyAgICAgICAgbV9jb250ZXh0LT5zeW50
aGVzaXplR0xFcnJvcihHcmFwaGljc0NvbnRleHQzRDo6SU5WQUxJRF9FTlVNKTsKKyAgICAgICAg
cmV0dXJuIFdlYkdMR2V0SW5mbygpOworICAgIGNhc2UgV2ViR0xEZWJ1Z1JlbmRlcmVySW5mbzo6
VU5NQVNLRURfVkVORE9SX1dFQkdMOgorICAgICAgICBpZiAobV93ZWJnbERlYnVnUmVuZGVyZXJJ
bmZvKQorICAgICAgICAgICAgcmV0dXJuIFdlYkdMR2V0SW5mbyhtX2NvbnRleHQtPmdldFN0cmlu
ZyhHcmFwaGljc0NvbnRleHQzRDo6VkVORE9SKSk7CisgICAgICAgIG1fY29udGV4dC0+c3ludGhl
c2l6ZUdMRXJyb3IoR3JhcGhpY3NDb250ZXh0M0Q6OklOVkFMSURfRU5VTSk7CisgICAgICAgIHJl
dHVybiBXZWJHTEdldEluZm8oKTsKICAgICBjYXNlIEV4dGVuc2lvbnMzRDo6VkVSVEVYX0FSUkFZ
X0JJTkRJTkdfT0VTOiAvLyBPRVNfdmVydGV4X2FycmF5X29iamVjdAogICAgICAgICBpZiAobV9v
ZXNWZXJ0ZXhBcnJheU9iamVjdCkgewogICAgICAgICAgICAgaWYgKCFtX2JvdW5kVmVydGV4QXJy
YXlPYmplY3QtPmlzRGVmYXVsdE9iamVjdCgpKQpAQCAtMjQxNyw2ICsyNDU3LDEzIEBAIFZlY3Rv
cjxTdHJpbmc+IFdlYkdMUmVuZGVyaW5nQ29udGV4dDo6Z2UKICAgICBpZiAobV9jb250ZXh0LT5n
ZXRFeHRlbnNpb25zKCktPnN1cHBvcnRzKCJHTF9PRVNfdmVydGV4X2FycmF5X29iamVjdCIpKQog
ICAgICAgICByZXN1bHQuYXBwZW5kKCJPRVNfdmVydGV4X2FycmF5X29iamVjdCIpOwogICAgIHJl
c3VsdC5hcHBlbmQoIldFQktJVF9sb3NlX2NvbnRleHQiKTsKKworICAgIGlmIChhbGxvd1ByaXZp
bGVnZWRFeHRlbnNpb25zKCkpIHsKKyAgICAgICAgaWYgKG1fY29udGV4dC0+Z2V0RXh0ZW5zaW9u
cygpLT5zdXBwb3J0cygiR0xfQU5HTEVfdHJhbnNsYXRlZF9zaGFkZXJfc291cmNlIikpCisgICAg
ICAgICAgICByZXN1bHQuYXBwZW5kKCJXRUJHTF9kZWJ1Z19zaGFkZXJzIik7CisgICAgICAgIHJl
c3VsdC5hcHBlbmQoIldFQkdMX2RlYnVnX3JlbmRlcmVyX2luZm8iKTsKKyAgICB9CisKICAgICBy
ZXR1cm4gcmVzdWx0OwogfQogCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJH
TFJlbmRlcmluZ0NvbnRleHQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9odG1sL2Nh
bnZhcy9XZWJHTFJlbmRlcmluZ0NvbnRleHQuaAkocmV2aXNpb24gOTc2MjEpCisrKyBTb3VyY2Uv
V2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFJlbmRlcmluZ0NvbnRleHQuaAkod29ya2luZyBjb3B5
KQpAQCAtNDAsOSArNDAsMTkgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCitjbGFzcyBIVE1M
SW1hZ2VFbGVtZW50OworY2xhc3MgSFRNTFZpZGVvRWxlbWVudDsKK2NsYXNzIEltYWdlQnVmZmVy
OworY2xhc3MgSW1hZ2VEYXRhOworY2xhc3MgSW50U2l6ZTsKK2NsYXNzIE9FU1N0YW5kYXJkRGVy
aXZhdGl2ZXM7CitjbGFzcyBPRVNUZXh0dXJlRmxvYXQ7CitjbGFzcyBPRVNWZXJ0ZXhBcnJheU9i
amVjdDsKIGNsYXNzIFdlYkdMQWN0aXZlSW5mbzsKIGNsYXNzIFdlYkdMQnVmZmVyOwogY2xhc3Mg
V2ViR0xDb250ZXh0QXR0cmlidXRlczsKK2NsYXNzIFdlYkdMRGVidWdSZW5kZXJlckluZm87Citj
bGFzcyBXZWJHTERlYnVnU2hhZGVyczsKIGNsYXNzIFdlYkdMRXh0ZW5zaW9uOwogY2xhc3MgV2Vi
R0xGcmFtZWJ1ZmZlcjsKIGNsYXNzIFdlYkdMT2JqZWN0OwpAQCAtNTEsMTYgKzYxLDggQEAgY2xh
c3MgV2ViR0xSZW5kZXJidWZmZXI7CiBjbGFzcyBXZWJHTFNoYWRlcjsKIGNsYXNzIFdlYkdMVGV4
dHVyZTsKIGNsYXNzIFdlYkdMVW5pZm9ybUxvY2F0aW9uOwotY2xhc3MgV2ViS2l0TG9zZUNvbnRl
eHQ7Ci1jbGFzcyBIVE1MSW1hZ2VFbGVtZW50OwotY2xhc3MgSFRNTFZpZGVvRWxlbWVudDsKLWNs
YXNzIEltYWdlQnVmZmVyOwotY2xhc3MgSW1hZ2VEYXRhOwotY2xhc3MgSW50U2l6ZTsKLWNsYXNz
IE9FU1N0YW5kYXJkRGVyaXZhdGl2ZXM7Ci1jbGFzcyBPRVNUZXh0dXJlRmxvYXQ7Ci1jbGFzcyBP
RVNWZXJ0ZXhBcnJheU9iamVjdDsKIGNsYXNzIFdlYkdMVmVydGV4QXJyYXlPYmplY3RPRVM7Citj
bGFzcyBXZWJLaXRMb3NlQ29udGV4dDsKIAogY2xhc3MgV2ViR0xSZW5kZXJpbmdDb250ZXh0IDog
cHVibGljIENhbnZhc1JlbmRlcmluZ0NvbnRleHQgewogcHVibGljOgpAQCAtMzA2LDYgKzMwOCw3
IEBAIHB1YmxpYzoKICAgcHJpdmF0ZToKICAgICBmcmllbmQgY2xhc3MgV2ViR0xPYmplY3Q7CiAg
ICAgZnJpZW5kIGNsYXNzIE9FU1ZlcnRleEFycmF5T2JqZWN0OworICAgIGZyaWVuZCBjbGFzcyBX
ZWJHTERlYnVnU2hhZGVyczsKIAogICAgIFdlYkdMUmVuZGVyaW5nQ29udGV4dChIVE1MQ2FudmFz
RWxlbWVudCosIFBhc3NSZWZQdHI8R3JhcGhpY3NDb250ZXh0M0Q+LCBHcmFwaGljc0NvbnRleHQz
RDo6QXR0cmlidXRlcyk7CiAgICAgdm9pZCBpbml0aWFsaXplTmV3Q29udGV4dCgpOwpAQCAtNDc0
LDYgKzQ3Nyw4IEBAIHB1YmxpYzoKICAgICBPd25QdHI8T0VTU3RhbmRhcmREZXJpdmF0aXZlcz4g
bV9vZXNTdGFuZGFyZERlcml2YXRpdmVzOwogICAgIE93blB0cjxPRVNWZXJ0ZXhBcnJheU9iamVj
dD4gbV9vZXNWZXJ0ZXhBcnJheU9iamVjdDsKICAgICBPd25QdHI8V2ViS2l0TG9zZUNvbnRleHQ+
IG1fd2Via2l0TG9zZUNvbnRleHQ7CisgICAgT3duUHRyPFdlYkdMRGVidWdSZW5kZXJlckluZm8+
IG1fd2ViZ2xEZWJ1Z1JlbmRlcmVySW5mbzsKKyAgICBPd25QdHI8V2ViR0xEZWJ1Z1NoYWRlcnM+
IG1fd2ViZ2xEZWJ1Z1NoYWRlcnM7CiAKICAgICAvLyBIZWxwZXJzIGZvciBnZXRQYXJhbWV0ZXIg
YW5kIG90aGVycwogICAgIFdlYkdMR2V0SW5mbyBnZXRCb29sZWFuUGFyYW1ldGVyKEdDM0RlbnVt
KTsKQEAgLTYyMiw2ICs2MjcsOSBAQCBwdWJsaWM6CiAgICAgLy8gSGVscGVyIGZvciByZXN0b3Jh
dGlvbiBhZnRlciBjb250ZXh0IGxvc3QuCiAgICAgdm9pZCBtYXliZVJlc3RvcmVDb250ZXh0KExv
c3RDb250ZXh0TW9kZSk7CiAKKyAgICAvLyBEZXRlcm1pbmUgaWYgd2UgYXJlIHJ1bm5pbmcgdGhl
IHByaXZpbGVnZWQgY29kZSBpbiB0aGUgYnJvd3Nlci4KKyAgICBib29sIGFsbG93UHJpdmlsZWdl
ZEV4dGVuc2lvbnMoKSBjb25zdDsKKwogICAgIGZyaWVuZCBjbGFzcyBXZWJHTFN0YXRlUmVzdG9y
ZXI7CiB9OwogCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9FeHRlbnNp
b25zM0QuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9F
eHRlbnNpb25zM0QuaAkocmV2aXNpb24gOTc2MjEpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9FeHRlbnNpb25zM0QuaAkod29ya2luZyBjb3B5KQpAQCAtMSw1ICsxLDUgQEAK
IC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTAgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KKyAqIENvcHlyaWdodCAoQykgMjAxMSBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC01Niw2ICs1Niw3IEBAIHB1Ymxp
YzoKICAgICAvLyAgIEdMX09FU19zdGFuZGFyZF9kZXJpdmF0aXZlcwogICAgIC8vICAgR0xfT0VT
X3JnYjhfcmdiYTgKICAgICAvLyAgIEdMX09FU192ZXJ0ZXhfYXJyYXlfb2JqZWN0CisgICAgLy8g
ICBHTF9BTkdMRV90cmFuc2xhdGVkX3NoYWRlcl9zb3VyY2UKIAogICAgIC8vIFRha2VzIGZ1bGwg
bmFtZSBvZiBleHRlbnNpb247IGZvciBleGFtcGxlLAogICAgIC8vICJHTF9FWFRfdGV4dHVyZV9m
b3JtYXRfQkdSQTg4ODgiLgpAQCAtMTAzLDYgKzEwNCw5IEBAIHB1YmxpYzoKICAgICAgICAgCiAg
ICAgICAgIC8vIEdMX09FU192ZXJ0ZXhfYXJyYXlfb2JqZWN0IG5hbWVzCiAgICAgICAgIFZFUlRF
WF9BUlJBWV9CSU5ESU5HX09FUyA9IDB4ODVCNSwKKworICAgICAgICAvLyBHTF9BTkdMRV90cmFu
c2xhdGVkX3NoYWRlcl9zb3VyY2UKKyAgICAgICAgVFJBTlNMQVRFRF9TSEFERVJfU09VUkNFX0xF
TkdUSF9BTkdMRSA9IDB4OTNBMCwKICAgICB9OwogCiAgICAgLy8gR0xfQVJCX3JvYnVzdG5lc3MK
QEAgLTEyNSw2ICsxMjksOSBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIGRlbGV0ZVZlcnRl
eEFycmF5T0VTKFBsYXRmb3JtM0RPYmplY3QpID0gMDsKICAgICB2aXJ0dWFsIEdDM0Rib29sZWFu
IGlzVmVydGV4QXJyYXlPRVMoUGxhdGZvcm0zRE9iamVjdCkgPSAwOwogICAgIHZpcnR1YWwgdm9p
ZCBiaW5kVmVydGV4QXJyYXlPRVMoUGxhdGZvcm0zRE9iamVjdCkgPSAwOworCisgICAgLy8gR0xf
QU5HTEVfdHJhbnNsYXRlZF9zaGFkZXJfc291cmNlCisgICAgdmlydHVhbCBTdHJpbmcgZ2V0VHJh
bnNsYXRlZFNoYWRlclNvdXJjZUFOR0xFKFBsYXRmb3JtM0RPYmplY3QpID0gMDsKIH07CiAKIH0g
Ly8gbmFtZXNwYWNlIFdlYkNvcmUKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL0dyYXBoaWNzVHlwZXMzRC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL0dyYXBoaWNzVHlwZXMzRC5oCShyZXZpc2lvbiA5NzYyMSkKKysrIFNvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzVHlwZXMzRC5oCSh3b3JraW5nIGNv
cHkpCkBAIC00NCw2ICs0NCw3IEBAIHR5cGVkZWYgZmxvYXQgR0MzRGZsb2F0OwogdHlwZWRlZiBm
bG9hdCBHQzNEY2xhbXBmOwogdHlwZWRlZiBzaWduZWQgbG9uZyBpbnQgR0MzRGludHB0cjsKIHR5
cGVkZWYgc2lnbmVkIGxvbmcgaW50IEdDM0RzaXplaXB0cjsKK3R5cGVkZWYgY2hhciBHQzNEY2hh
cjsKIAogdHlwZWRlZiBHQzNEdWludCBQbGF0Zm9ybTNET2JqZWN0OwogCkluZGV4OiBTb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9FeHRlbnNpb25zM0RDaHJvbWl1bS5o
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVt
L0V4dGVuc2lvbnMzRENocm9taXVtLmgJKHJldmlzaW9uIDk3NjIxKQorKysgU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vRXh0ZW5zaW9uczNEQ2hyb21pdW0uaAkod29y
a2luZyBjb3B5KQpAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTAgR29v
Z2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxMSBHb29n
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zCkBAIC01Niw2ICs1Niw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgZGVsZXRlVmVy
dGV4QXJyYXlPRVMoUGxhdGZvcm0zRE9iamVjdCk7CiAgICAgdmlydHVhbCBHQzNEYm9vbGVhbiBp
c1ZlcnRleEFycmF5T0VTKFBsYXRmb3JtM0RPYmplY3QpOwogICAgIHZpcnR1YWwgdm9pZCBiaW5k
VmVydGV4QXJyYXlPRVMoUGxhdGZvcm0zRE9iamVjdCk7CisgICAgdmlydHVhbCBTdHJpbmcgZ2V0
VHJhbnNsYXRlZFNoYWRlclNvdXJjZUFOR0xFKFBsYXRmb3JtM0RPYmplY3QpOwogCiAgICAgZW51
bSB7CiAgICAgICAgIC8vIEdMX0NIUk9NSVVNX21hcF9zdWIgKGVudW1zIGluaGVyaXRlZCBmcm9t
IEdMX0FSQl92ZXJ0ZXhfYnVmZmVyX29iamVjdCkKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL29wZW5nbC9FeHRlbnNpb25zM0RPcGVuR0wuY3BwCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL29wZW5nbC9FeHRlbnNpb25zM0RPcGVu
R0wuY3BwCShyZXZpc2lvbiA5NzYyMSkKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL29wZW5nbC9FeHRlbnNpb25zM0RPcGVuR0wuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xLDUg
KzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMCBHb29nbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDExIEdvb2dsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTE5Myw2ICsxOTMs
MTMgQEAgdm9pZCBFeHRlbnNpb25zM0RPcGVuR0w6OmJpbmRWZXJ0ZXhBcnJheQogI2VuZGlmCiB9
CiAKK1N0cmluZyBFeHRlbnNpb25zM0RPcGVuR0w6OmdldFRyYW5zbGF0ZWRTaGFkZXJTb3VyY2VB
TkdMRShQbGF0Zm9ybTNET2JqZWN0IHNoYWRlcikKK3sKKyAgICBVTlVTRURfUEFSQU0oc2hhZGVy
KTsKKyAgICByZXR1cm4gIiI7CisgICAgLy8gRklYTUU6IGltcGxlbWVudCB0aGlzIGZ1bmN0aW9u
IGFuZCBhZGQgR0xfQU5HTEVfdHJhbnNsYXRlZF9zaGFkZXJfc291cmNlIGluIHN1cHBvcnRzKCku
Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAogI2VuZGlmIC8vIEVOQUJMRShXRUJHTCkK
SW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL29wZW5nbC9FeHRlbnNpb25z
M0RPcGVuR0wuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9vcGVuZ2wvRXh0ZW5zaW9uczNET3BlbkdMLmgJKHJldmlzaW9uIDk3NjIxKQorKysgU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0V4dGVuc2lvbnMzRE9wZW5HTC5oCSh3
b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMCBH
b29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDExIEdv
b2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKQEAgLTUwLDYgKzUwLDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBkZWxldGVW
ZXJ0ZXhBcnJheU9FUyhQbGF0Zm9ybTNET2JqZWN0KTsKICAgICB2aXJ0dWFsIEdDM0Rib29sZWFu
IGlzVmVydGV4QXJyYXlPRVMoUGxhdGZvcm0zRE9iamVjdCk7CiAgICAgdmlydHVhbCB2b2lkIGJp
bmRWZXJ0ZXhBcnJheU9FUyhQbGF0Zm9ybTNET2JqZWN0KTsKKyAgICB2aXJ0dWFsIFN0cmluZyBn
ZXRUcmFuc2xhdGVkU2hhZGVyU291cmNlQU5HTEUoUGxhdGZvcm0zRE9iamVjdCk7CiAKIHByaXZh
dGU6CiAgICAgLy8gVGhpcyBjbGFzcyBvbmx5IG5lZWRzIHRvIGJlIGluc3RhbnRpYXRlZCBieSBH
cmFwaGljc0NvbnRleHQzRCBpbXBsZW1lbnRhdGlvbnMuCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9xdC9FeHRlbnNpb25zM0RRdC5jcHAKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvcXQvRXh0ZW5zaW9uczNEUXQuY3BwCShyZXZp
c2lvbiA5NzYyMSkKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3F0L0V4dGVu
c2lvbnMzRFF0LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5
cmlnaHQgKEMpIDIwMTAgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHly
aWdodCAoQykgMjAxMSBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC04OCw2ICs4OCwxMSBAQCB2b2lkIEV4dGVuc2lvbnMz
RFF0OjpiaW5kVmVydGV4QXJyYXlPRVMoCiB7CiB9CiAKK1N0cmluZyBFeHRlbnNpb25zM0RRdDo6
Z2V0VHJhbnNsYXRlZFNoYWRlclNvdXJjZUFOR0xFKFBsYXRmb3JtM0RPYmplY3Qgc2hhZGVyKQor
eworICAgIHJldHVybiAiIjsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCiAjZW5kaWYg
Ly8gRU5BQkxFKFdFQkdMKQpJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
cXQvRXh0ZW5zaW9uczNEUXQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9xdC9FeHRlbnNpb25zM0RRdC5oCShyZXZpc2lvbiA5NzYyMSkKKysrIFNvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3F0L0V4dGVuc2lvbnMzRFF0LmgJKHdvcmtpbmcg
Y29weSkKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDEwIEdvb2dsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTEgR29vZ2xlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpA
QCAtNDUsNiArNDUsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIGRlbGV0ZVZlcnRleEFy
cmF5T0VTKFBsYXRmb3JtM0RPYmplY3QpOwogICAgIHZpcnR1YWwgR0MzRGJvb2xlYW4gaXNWZXJ0
ZXhBcnJheU9FUyhQbGF0Zm9ybTNET2JqZWN0KTsKICAgICB2aXJ0dWFsIHZvaWQgYmluZFZlcnRl
eEFycmF5T0VTKFBsYXRmb3JtM0RPYmplY3QpOworICAgIHZpcnR1YWwgU3RyaW5nIGdldFRyYW5z
bGF0ZWRTaGFkZXJTb3VyY2VBTkdMRShQbGF0Zm9ybTNET2JqZWN0KTsKIAogcHJpdmF0ZToKICAg
ICAvLyBUaGlzIGNsYXNzIG9ubHkgbmVlZHMgdG8gYmUgaW5zdGFudGlhdGVkIGJ5IEdyYXBoaWNz
Q29udGV4dDNEIGltcGxlbWVudGF0aW9ucy4KSW5kZXg6IFNvdXJjZS9XZWJLaXQvY2hyb21pdW0v
Q2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9n
CShyZXZpc2lvbiA5NzYyMSkKKysrIFNvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCSh3
b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMjkgQEAKKzIwMTEtMTAtMTQgIFpoZW55YW8gTW8gIDx6
bW9AZ29vZ2xlLmNvbT4KKworICAgICAgICBJbXBsZW1lbnQgV0VCR0xfZGVidWdfc2hhZGVycyBh
bmQgV0VCR0xfZGVidWdfcmVuZGVyZXJfaW5mbyBleHRlbnNpb25zCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03MDA3NworCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogcHVibGljL1dlYkdyYXBoaWNzQ29udGV4
dDNELmg6IEFkZGVkIHN1cHBvcnQgZm9yIGdldFRyYW5zbGF0ZWRTaGFkZXJTb3VyY2VBTkdMRS4K
KyAgICAgICAgKFdlYktpdDo6V2ViR3JhcGhpY3NDb250ZXh0M0Q6OmdldFRyYW5zbGF0ZWRTaGFk
ZXJTb3VyY2VBTkdMRSk6CisgICAgICAgICogc3JjL0V4dGVuc2lvbnMzRENocm9taXVtLmNwcDog
RGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpFeHRlbnNpb25zM0RDaHJvbWl1bTo6Z2V0VHJhbnNs
YXRlZFNoYWRlclNvdXJjZUFOR0xFKToKKyAgICAgICAgKiBzcmMvR3JhcGhpY3NDb250ZXh0M0RD
aHJvbWl1bS5jcHA6IERpdHRvLgorICAgICAgICAqIHNyYy9HcmFwaGljc0NvbnRleHQzRFByaXZh
dGUuaDogRGl0dG8uCisKKzIwMTEtMTAtMTQgIERtaXRyeSBMb21vdiAgPGRzbG9tb3ZAZ29vZ2xl
LmNvbT4KKworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
NzAxMjAKKyAgICAgICAgW0Nocm9taXVtXSBQYXNzIE1lc3NhZ2VQb3J0QXJyYXkgdG8gU2VyaWFs
aXplZFNjcmlwdFZhbHVlOjpzZXJpYWxpemUvZGVzZXJpYWxpemUuCisgICAgICAgIFRoaXMgcGF0
Y2ggYXVnbWVudHMgU2VyaWFsaXplZFNjcmlwdFZhbHVlIHdpdGggTWVzc2FnZVBvcnRBcnJheSog
cGFyYW1ldGVyIHRvIGltcGxlbWVudCBNZXNzYWdlUG9ydCAKKyAgICAgICAgdHJhbnNmZXIgd2l0
aGluIHRoZSBtZXNzYWdlIGluIHRoZSBmdXR1cmUuCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgRGF2
aWQgTGV2aW4uCisKKyAgICAgICAgKiBzcmMvV2ViU2VyaWFsaXplZFNjcmlwdFZhbHVlLmNwcDoK
KyAgICAgICAgKFdlYktpdDo6V2ViU2VyaWFsaXplZFNjcmlwdFZhbHVlOjpzZXJpYWxpemUpOgor
CiAyMDExLTEwLTE3ICBZdXJ5IFNlbWlraGF0c2t5ICA8eXVyeXNAY2hyb21pdW0ub3JnPgogCiAg
ICAgICAgIFtDaHJvbWl1bV0gV2ViIEluc3BlY3RvcjogZG9uJ3QgY2hlY2sgZm9yIGRlYnVnZ2Vy
IHBhdXNlIGRldGFpbHMgaW4gaW50ZXJhY3RpdmUgdWkgdGVzdHMKSW5kZXg6IFNvdXJjZS9XZWJL
aXQvY2hyb21pdW0vcHVibGljL1dlYkdyYXBoaWNzQ29udGV4dDNELmgKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViR3JhcGhpY3NDb250ZXh0M0QuaAkocmV2
aXNpb24gOTc2MjEpCisrKyBTb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJHcmFwaGlj
c0NvbnRleHQzRC5oCSh3b3JraW5nIGNvcHkpCkBAIC0zNjUsNiArMzY1LDEwIEBAIHB1YmxpYzoK
ICAgICAvLyBzdGF0ZSBpcyBzdGlja3ksIHJhdGhlciB0aGFuIHJlcG9ydGVkIG9ubHkgb25jZS4K
ICAgICB2aXJ0dWFsIFdHQzNEZW51bSBnZXRHcmFwaGljc1Jlc2V0U3RhdHVzQVJCKCkgeyByZXR1
cm4gMDsgLyogR0xfTk9fRVJST1IgKi8gfQogCisgICAgLy8gRklYTUU6IG1ha2UgdGhpcyBmdW5j
dGlvbiBwdXJlIHZpcnR1YWwgb25jZSBpdCBpcyBpbXBsZW1lbnRlZCBpbgorICAgIC8vIGJvdGgg
Y29tbWFuZCBidWZmZXIgcG9ydCBhbmQgaW4tcHJvY2VzcyBwb3J0LgorICAgIHZpcnR1YWwgV2Vi
U3RyaW5nIGdldFRyYW5zbGF0ZWRTaGFkZXJTb3VyY2VBTkdMRShXZWJHTElkIHNoYWRlcikgeyBy
ZXR1cm4gV2ViU3RyaW5nKCk7IH0KKwogI2lmIFdFQktJVF9VU0lOR19TS0lBCiAgICAgR3JHTElu
dGVyZmFjZSogY3JlYXRlR3JHTEludGVyZmFjZSgpOwogI2VuZGlmCkluZGV4OiBTb3VyY2UvV2Vi
S2l0L2Nocm9taXVtL3NyYy9FeHRlbnNpb25zM0RDaHJvbWl1bS5jcHAKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvRXh0ZW5zaW9uczNEQ2hyb21pdW0uY3BwCShyZXZp
c2lvbiA5NzYyMSkKKysrIFNvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0V4dGVuc2lvbnMzRENo
cm9taXVtLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTE1LDYgKzExNSwxMSBAQCB2b2lkIEV4dGVu
c2lvbnMzRENocm9taXVtOjpiaW5kVmVydGV4QXJyCiB7CiB9CiAKK1N0cmluZyBFeHRlbnNpb25z
M0RDaHJvbWl1bTo6Z2V0VHJhbnNsYXRlZFNoYWRlclNvdXJjZUFOR0xFKFBsYXRmb3JtM0RPYmpl
Y3Qgc2hhZGVyKQoreworICAgIHJldHVybiBtX3ByaXZhdGUtPmdldFRyYW5zbGF0ZWRTaGFkZXJT
b3VyY2VBTkdMRShzaGFkZXIpOworfQorCiB2b2lkIEV4dGVuc2lvbnMzRENocm9taXVtOjpzZXRT
d2FwQnVmZmVyc0NvbXBsZXRlQ2FsbGJhY2tDSFJPTUlVTShQYXNzT3duUHRyPFN3YXBCdWZmZXJz
Q29tcGxldGVDYWxsYmFja0NIUk9NSVVNPiBjYWxsYmFjaykKIHsKICAgICBtX3ByaXZhdGUtPnNl
dFN3YXBCdWZmZXJzQ29tcGxldGVDYWxsYmFja0NIUk9NSVVNKGNhbGxiYWNrKTsKSW5kZXg6IFNv
dXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0dyYXBoaWNzQ29udGV4dDNEQ2hyb21pdW0uY3BwCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0dyYXBoaWNzQ29udGV4dDNE
Q2hyb21pdW0uY3BwCShyZXZpc2lvbiA5NzYyMSkKKysrIFNvdXJjZS9XZWJLaXQvY2hyb21pdW0v
c3JjL0dyYXBoaWNzQ29udGV4dDNEQ2hyb21pdW0uY3BwCSh3b3JraW5nIGNvcHkpCkBAIC04ODcs
NiArODg3LDggQEAgREVMRUdBVEVfVE9fSU1QTF81KHJlbmRlcmJ1ZmZlclN0b3JhZ2VNdQogREVM
RUdBVEVfVE9fSU1QTChyYXRlTGltaXRPZmZzY3JlZW5Db250ZXh0Q0hST01JVU0pCiBERUxFR0FU
RV9UT19JTVBMX1IoZ2V0R3JhcGhpY3NSZXNldFN0YXR1c0FSQiwgR0MzRGVudW0pCiAKK0RFTEVH
QVRFX1RPX0lNUExfMVIoZ2V0VHJhbnNsYXRlZFNoYWRlclNvdXJjZUFOR0xFLCBQbGF0Zm9ybTNE
T2JqZWN0LCBTdHJpbmcpCisKIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogLy8gR3JhcGhpY3NDb250ZXh0M0QK
IC8vCkluZGV4OiBTb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9HcmFwaGljc0NvbnRleHQzRFBy
aXZhdGUuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9HcmFwaGlj
c0NvbnRleHQzRFByaXZhdGUuaAkocmV2aXNpb24gOTc2MjEpCisrKyBTb3VyY2UvV2ViS2l0L2No
cm9taXVtL3NyYy9HcmFwaGljc0NvbnRleHQzRFByaXZhdGUuaAkod29ya2luZyBjb3B5KQpAQCAt
MzAzLDYgKzMwMyw5IEBAIHB1YmxpYzoKICAgICAvLyBHTF9BUkJfcm9idXN0bmVzcwogICAgIEdD
M0RlbnVtIGdldEdyYXBoaWNzUmVzZXRTdGF0dXNBUkIoKTsKIAorICAgIC8vIEdMX0FOR0xFX3Ry
YW5zbGF0ZWRfc2hhZGVyX3NvdXJjZQorICAgIFN0cmluZyBnZXRUcmFuc2xhdGVkU2hhZGVyU291
cmNlQU5HTEUoUGxhdGZvcm0zRE9iamVjdCBzaGFkZXIpOworCiBwcml2YXRlOgogICAgIEdyYXBo
aWNzQ29udGV4dDNEUHJpdmF0ZShXZWJLaXQ6OldlYlZpZXdJbXBsKiwgUGFzc093blB0cjxXZWJL
aXQ6OldlYkdyYXBoaWNzQ29udGV4dDNEPiwgR3JhcGhpY3NDb250ZXh0M0Q6OkF0dHJpYnV0ZXMp
OwogCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>111682</attachid>
            <date>2011-10-19 15:25:04 -0700</date>
            <delta_ts>2011-10-19 16:34:10 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-70077-20111019152503.patch</filename>
            <type>text/plain</type>
            <size>47554</size>
            <attacher name="Zhenyao Mo">zmo</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDk3ODgxKQorKysgU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsNTEgQEAKKzIwMTEtMTAtMTQgIFpoZW55YW8g
TW8gIDx6bW9AZ29vZ2xlLmNvbT4KKworICAgICAgICBJbXBsZW1lbnQgV0VCR0xfZGVidWdfc2hh
ZGVycyBhbmQgV0VCR0xfZGVidWdfcmVuZGVyZXJfaW5mbyBleHRlbnNpb25zCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03MDA3NworCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogV2ViQ29yZS5neXBpOiBhZGRl
ZCBuZXcgZXh0ZW5zaW9uIGNsYXNzIGZpbGVzLgorICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9q
L3Byb2plY3QucGJ4cHJvajogZGl0dG8uCisgICAgICAgICogV2ViQ29yZS5wcm86IGRpdHRvLgor
ICAgICAgICAqIENNYWtlTGlzdHMudHh0OiBkaXR0by4KKyAgICAgICAgKiBHTlVtYWtlZmlsZS5s
aXN0LmFtOiBkaXR0by4KKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU1dlYkdMUmVuZGVyaW5nQ29u
dGV4dEN1c3RvbS5jcHA6CisgICAgICAgIChXZWJDb3JlOjp0b0pTKTogSGFuZGxlcyB0d28gbmV3
IGV4dGVuc2lvbnMuCisgICAgICAgICogYmluZGluZ3MvdjgvY3VzdG9tL1Y4V2ViR0xSZW5kZXJp
bmdDb250ZXh0Q3VzdG9tLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OnRvVjhPYmplY3QpOiBEaXR0
by4KKyAgICAgICAgKiBodG1sL2NhbnZhcy9XZWJHTERlYnVnUmVuZGVyZXJJbmZvLmNwcDogQWRk
ZWQuCisgICAgICAgIChXZWJDb3JlOjpXZWJHTERlYnVnUmVuZGVyZXJJbmZvOjpXZWJHTERlYnVn
UmVuZGVyZXJJbmZvKToKKyAgICAgICAgKFdlYkNvcmU6OldlYkdMRGVidWdSZW5kZXJlckluZm86
On5XZWJHTERlYnVnUmVuZGVyZXJJbmZvKToKKyAgICAgICAgKFdlYkNvcmU6OldlYkdMRGVidWdS
ZW5kZXJlckluZm86OmdldE5hbWUpOgorICAgICAgICAoV2ViQ29yZTo6V2ViR0xEZWJ1Z1JlbmRl
cmVySW5mbzo6Y3JlYXRlKToKKyAgICAgICAgKiBodG1sL2NhbnZhcy9XZWJHTERlYnVnUmVuZGVy
ZXJJbmZvLmg6IEFkZGVkLgorICAgICAgICAqIGh0bWwvY2FudmFzL1dlYkdMRGVidWdSZW5kZXJl
ckluZm8uaWRsOiBBZGRlZC4KKyAgICAgICAgKiBodG1sL2NhbnZhcy9XZWJHTERlYnVnU2hhZGVy
cy5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6V2ViR0xEZWJ1Z1NoYWRlcnM6OldlYkdM
RGVidWdTaGFkZXJzKToKKyAgICAgICAgKFdlYkNvcmU6OldlYkdMRGVidWdTaGFkZXJzOjp+V2Vi
R0xEZWJ1Z1NoYWRlcnMpOgorICAgICAgICAoV2ViQ29yZTo6V2ViR0xEZWJ1Z1NoYWRlcnM6Omdl
dE5hbWUpOgorICAgICAgICAoV2ViQ29yZTo6V2ViR0xEZWJ1Z1NoYWRlcnM6OmNyZWF0ZSk6Cisg
ICAgICAgIChXZWJDb3JlOjpXZWJHTERlYnVnU2hhZGVyczo6Z2V0VHJhbnNsYXRlZFNoYWRlclNv
dXJjZSk6CisgICAgICAgICogaHRtbC9jYW52YXMvV2ViR0xEZWJ1Z1NoYWRlcnMuaDogQWRkZWQu
CisgICAgICAgICogaHRtbC9jYW52YXMvV2ViR0xEZWJ1Z1NoYWRlcnMuaWRsOiBBZGRlZC4KKyAg
ICAgICAgKiBodG1sL2NhbnZhcy9XZWJHTEV4dGVuc2lvbi5oOgorICAgICAgICAqIGh0bWwvY2Fu
dmFzL1dlYkdMUmVuZGVyaW5nQ29udGV4dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpXZWJHTFJl
bmRlcmluZ0NvbnRleHQ6OmFsbG93UHJpdmlsZWdlZEV4dGVuc2lvbnMpOiBUbyBiZSBpbXBsZW1l
bnRlZCAtIGRlY2lkaW5nIHdoZXRoZXIgdGhlIHR3byBleHRlbnNpb25zIHNob3VsZCBiZSBhbGxv
d2VkIG9yIG5vdC4KKyAgICAgICAgKFdlYkNvcmU6OldlYkdMUmVuZGVyaW5nQ29udGV4dDo6Z2V0
RXh0ZW5zaW9uKTogSGFuZGxlcyB0d28gbmV3IGV4dGVuc2lvbnMuCisgICAgICAgIChXZWJDb3Jl
OjpXZWJHTFJlbmRlcmluZ0NvbnRleHQ6OmdldFBhcmFtZXRlcik6IEhhbmRsZXMgVU5NQVNLRURf
VkVORE9SX1dFQkdMIC8gVU5NQVNLRURfUkVOREVSRVJfV0VCR0wKKyAgICAgICAgKFdlYkNvcmU6
OldlYkdMUmVuZGVyaW5nQ29udGV4dDo6Z2V0U3VwcG9ydGVkRXh0ZW5zaW9ucyk6IEhhbmRsZXMg
dHdvIG5ldyBleHRlbnNpb25zLgorICAgICAgICAqIGh0bWwvY2FudmFzL1dlYkdMUmVuZGVyaW5n
Q29udGV4dC5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL0V4dGVuc2lvbnMzRC5oOiBE
aXR0by4KKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc1R5cGVzM0QuaDogQWRk
IEdDM0RjaGFyLgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0V4dGVuc2lv
bnMzRENocm9taXVtLmg6IEhhbmRsZXMgdHdvIG5ldyBleHRlbnNpb25zLgorICAgICAgICAqIHBs
YXRmb3JtL2dyYXBoaWNzL29wZW5nbC9FeHRlbnNpb25zM0RPcGVuR0wuY3BwOiBEaXR0by4KKyAg
ICAgICAgKFdlYkNvcmU6OmdldFRyYW5zbGF0ZWRTaGFkZXJTb3VyY2VBTkdMRSk6CisgICAgICAg
ICogcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0V4dGVuc2lvbnMzRE9wZW5HTC5oOiBEaXR0by4K
KyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9xdC9FeHRlbnNpb25zM0RRdC5jcHA6IERpdHRv
LgorICAgICAgICAoV2ViQ29yZTo6RXh0ZW5zaW9uczNEUXQ6OmdldFRyYW5zbGF0ZWRTaGFkZXJT
b3VyY2VBTkdMRSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvcXQvRXh0ZW5zaW9uczNE
UXQuaDogRGl0dG8uCisKIDIwMTEtMTAtMTkgIERhbmllbCBDaGVuZyAgPGRjaGVuZ0BjaHJvbWl1
bS5vcmc+CiAKICAgICAgICAgRG9uJ3QgYWx3YXlzIHNlbGVjdCBpbWFnZXMgZHVyaW5nIGFuIGlt
YWdlIGRyYWcuCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dAkocmV2aXNpb24gOTc4ODEpCisrKyBT
b3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dAkod29ya2luZyBjb3B5KQpAQCAtMzAzLDYgKzMw
Myw4IEBAIFNFVChXZWJDb3JlX0lETF9GSUxFUwogICAgIGh0bWwvY2FudmFzL1dlYkdMQWN0aXZl
SW5mby5pZGwKICAgICBodG1sL2NhbnZhcy9XZWJHTEJ1ZmZlci5pZGwKICAgICBodG1sL2NhbnZh
cy9XZWJHTENvbnRleHRBdHRyaWJ1dGVzLmlkbAorICAgIGh0bWwvY2FudmFzL1dlYkdMRGVidWdS
ZW5kZXJlckluZm8uaWRsCisgICAgaHRtbC9jYW52YXMvV2ViR0xEZWJ1Z1NoYWRlcnMuaWRsCiAg
ICAgaHRtbC9jYW52YXMvV2ViR0xGcmFtZWJ1ZmZlci5pZGwKICAgICBodG1sL2NhbnZhcy9XZWJH
TFByb2dyYW0uaWRsCiAgICAgaHRtbC9jYW52YXMvV2ViR0xSZW5kZXJidWZmZXIuaWRsCkBAIC0y
MTUwLDYgKzIxNTIsOCBAQCBJRiAoRU5BQkxFX1dFQkdMKQogICAgICAgICBodG1sL2NhbnZhcy9X
ZWJHTEJ1ZmZlci5jcHAKICAgICAgICAgaHRtbC9jYW52YXMvV2ViR0xDb250ZXh0QXR0cmlidXRl
cy5jcHAKICAgICAgICAgaHRtbC9jYW52YXMvV2ViR0xDb250ZXh0RXZlbnQuY3BwCisgICAgICAg
IGh0bWwvY2FudmFzL1dlYkdMRGVidWdSZW5kZXJlckluZm8uY3BwCisgICAgICAgIGh0bWwvY2Fu
dmFzL1dlYkdMRGVidWdTaGFkZXJzLmNwcAogICAgICAgICBodG1sL2NhbnZhcy9XZWJHTEZyYW1l
YnVmZmVyLmNwcAogICAgICAgICBodG1sL2NhbnZhcy9XZWJHTEdldEluZm8uY3BwCiAgICAgICAg
IGh0bWwvY2FudmFzL1dlYkdMT2JqZWN0LmNwcApJbmRleDogU291cmNlL1dlYkNvcmUvR05VbWFr
ZWZpbGUubGlzdC5hbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5s
aXN0LmFtCShyZXZpc2lvbiA5Nzg4MSkKKysrIFNvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxp
c3QuYW0JKHdvcmtpbmcgY29weSkKQEAgLTQ4MDMsNiArNDgwMywxMCBAQCB3ZWJjb3JlX3NvdXJj
ZXMgKz0gXAogCVNvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMQ29udGV4dEF0dHJpYnV0
ZXMuaCBcCiAJU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xDb250ZXh0RXZlbnQuY3Bw
IFwKIAlTb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTENvbnRleHRFdmVudC5oIFwKKwlT
b3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTERlYnVnUmVuZGVyZXJJbmZvLmNwcCBcCisJ
U291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xEZWJ1Z1JlbmRlcmVySW5mby5oIFwKKwlT
b3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTERlYnVnU2hhZGVycy5jcHAgXAorCVNvdXJj
ZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMRGVidWdTaGFkZXJzLmggXAogCVNvdXJjZS9XZWJD
b3JlL2h0bWwvY2FudmFzL1dlYkdMRnJhbWVidWZmZXIuY3BwIFwKIAlTb3VyY2UvV2ViQ29yZS9o
dG1sL2NhbnZhcy9XZWJHTEZyYW1lYnVmZmVyLmggXAogCVNvdXJjZS9XZWJDb3JlL2h0bWwvY2Fu
dmFzL1dlYkdMR2V0SW5mby5jcHAgXApJbmRleDogU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBp
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQkocmV2aXNpb24gOTc4
ODEpCisrKyBTb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkJKHdvcmtpbmcgY29weSkKQEAgLTEz
NjIsNiArMTM2Miw4IEBACiAgICAgICAgICAgICAnaHRtbC9jYW52YXMvV2ViR0xCdWZmZXIuaWRs
JywKICAgICAgICAgICAgICdodG1sL2NhbnZhcy9XZWJHTENvbnRleHRBdHRyaWJ1dGVzLmlkbCcs
CiAgICAgICAgICAgICAnaHRtbC9jYW52YXMvV2ViR0xDb250ZXh0RXZlbnQuaWRsJywKKyAgICAg
ICAgICAgICdodG1sL2NhbnZhcy9XZWJHTERlYnVnUmVuZGVyZXJJbmZvLmlkbCcsCisgICAgICAg
ICAgICAnaHRtbC9jYW52YXMvV2ViR0xEZWJ1Z1NoYWRlcnMuaWRsJywKICAgICAgICAgICAgICdo
dG1sL2NhbnZhcy9XZWJHTEZyYW1lYnVmZmVyLmlkbCcsCiAgICAgICAgICAgICAnaHRtbC9jYW52
YXMvV2ViR0xQcm9ncmFtLmlkbCcsCiAgICAgICAgICAgICAnaHRtbC9jYW52YXMvV2ViR0xSZW5k
ZXJidWZmZXIuaWRsJywKQEAgLTU2NTcsNiArNTY1OSwxMCBAQAogICAgICAgICAgICAgJ2h0bWwv
Y2FudmFzL1dlYkdMQ29udGV4dEF0dHJpYnV0ZXMuaCcsCiAgICAgICAgICAgICAnaHRtbC9jYW52
YXMvV2ViR0xDb250ZXh0RXZlbnQuY3BwJywKICAgICAgICAgICAgICdodG1sL2NhbnZhcy9XZWJH
TENvbnRleHRFdmVudC5oJywKKyAgICAgICAgICAgICdodG1sL2NhbnZhcy9XZWJHTERlYnVnUmVu
ZGVyZXJJbmZvLmNwcCcsCisgICAgICAgICAgICAnaHRtbC9jYW52YXMvV2ViR0xEZWJ1Z1JlbmRl
cmVySW5mby5oJywKKyAgICAgICAgICAgICdodG1sL2NhbnZhcy9XZWJHTERlYnVnU2hhZGVycy5j
cHAnLAorICAgICAgICAgICAgJ2h0bWwvY2FudmFzL1dlYkdMRGVidWdTaGFkZXJzLmgnLAogICAg
ICAgICAgICAgJ2h0bWwvY2FudmFzL1dlYkdMRXh0ZW5zaW9uLmNwcCcsCiAgICAgICAgICAgICAn
aHRtbC9jYW52YXMvV2ViR0xFeHRlbnNpb24uaCcsCiAgICAgICAgICAgICAnaHRtbC9jYW52YXMv
V2ViR0xGcmFtZWJ1ZmZlci5jcHAnLApJbmRleDogU291cmNlL1dlYkNvcmUvV2ViQ29yZS5wcm8K
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvV2ViQ29yZS5wcm8JKHJldmlzaW9uIDk3ODgx
KQorKysgU291cmNlL1dlYkNvcmUvV2ViQ29yZS5wcm8JKHdvcmtpbmcgY29weSkKQEAgLTM2MTUs
NiArMzYxNSw4IEBAIGNvbnRhaW5zKERFRklORVMsIEVOQUJMRV9XRUJHTD0xKSB7CiAgICAgICAg
IGh0bWwvY2FudmFzL1dlYkdMQnVmZmVyLmggXAogICAgICAgICBodG1sL2NhbnZhcy9XZWJHTENv
bnRleHRBdHRyaWJ1dGVzLmggXAogICAgICAgICBodG1sL2NhbnZhcy9XZWJHTENvbnRleHRFdmVu
dC5oIFwKKyAgICAgICAgaHRtbC9jYW52YXMvV2ViR0xEZWJ1Z1JlbmRlcmVySW5mby5oIFwKKyAg
ICAgICAgaHRtbC9jYW52YXMvV2ViR0xEZWJ1Z1NoYWRlcnMuaCBcCiAgICAgICAgIGh0bWwvY2Fu
dmFzL1dlYkdMRXh0ZW5zaW9uLmggXAogICAgICAgICBodG1sL2NhbnZhcy9XZWJHTEZyYW1lYnVm
ZmVyLmggXAogICAgICAgICBodG1sL2NhbnZhcy9XZWJHTEdldEluZm8uaCBcCkBAIC0zNjQ2LDYg
KzM2NDgsOCBAQCBjb250YWlucyhERUZJTkVTLCBFTkFCTEVfV0VCR0w9MSkgewogICAgICAgICBo
dG1sL2NhbnZhcy9XZWJHTEJ1ZmZlci5jcHAgXAogICAgICAgICBodG1sL2NhbnZhcy9XZWJHTENv
bnRleHRBdHRyaWJ1dGVzLmNwcCBcCiAgICAgICAgIGh0bWwvY2FudmFzL1dlYkdMQ29udGV4dEV2
ZW50LmNwcCBcCisgICAgICAgIGh0bWwvY2FudmFzL1dlYkdMRGVidWdSZW5kZXJlckluZm8uY3Bw
IFwKKyAgICAgICAgaHRtbC9jYW52YXMvV2ViR0xEZWJ1Z1NoYWRlcnMuY3BwIFwKICAgICAgICAg
aHRtbC9jYW52YXMvV2ViR0xFeHRlbnNpb24uY3BwIFwKICAgICAgICAgaHRtbC9jYW52YXMvV2Vi
R0xGcmFtZWJ1ZmZlci5jcHAgXAogICAgICAgICBodG1sL2NhbnZhcy9XZWJHTEdldEluZm8uY3Bw
IFwKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
ago9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0
LnBieHByb2oJKHJldmlzaW9uIDk3ODgxKQorKysgU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29k
ZXByb2ovcHJvamVjdC5wYnhwcm9qCSh3b3JraW5nIGNvcHkpCkBAIC0zMzQwLDYgKzMzNDAsMTAg
QEAKIAkJOUZGRTNFQTUxMUI1QTQzOTAwMzc4NzRFIC8qIEpTTWVtb3J5SW5mby5jcHAgaW4gU291
cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5RkZFM0VBMzExQjVBNDM5
MDAzNzg3NEUgLyogSlNNZW1vcnlJbmZvLmNwcCAqLzsgfTsKIAkJOUZGRTNFQTYxMUI1QTQzOTAw
Mzc4NzRFIC8qIEpTTWVtb3J5SW5mby5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gOUZGRTNFQTQxMUI1QTQzOTAwMzc4NzRFIC8qIEpTTWVtb3J5SW5mby5o
ICovOyB9OwogCQlBMDBCNzIxQTExREU2NDI4MDA4QUI5RkYgLyogQ2hlY2tlZEludC5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTAwQjcyMTkxMURFNjQy
NzAwOEFCOUZGIC8qIENoZWNrZWRJbnQuaCAqLzsgfTsKKwkJQTBFRTBERjUxNDRGODI1NTAwRjgw
QjBEIC8qIFdlYkdMRGVidWdSZW5kZXJlckluZm8uY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTBFRTBERjExNDRGODI1NTAwRjgwQjBEIC8qIFdlYkdM
RGVidWdSZW5kZXJlckluZm8uY3BwICovOyB9OworCQlBMEVFMERGNjE0NEY4MjU1MDBGODBCMEQg
LyogV2ViR0xEZWJ1Z1JlbmRlcmVySW5mby5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gQTBFRTBERjIxNDRGODI1NTAwRjgwQjBEIC8qIFdlYkdMRGVidWdS
ZW5kZXJlckluZm8uaCAqLzsgfTsKKwkJQTBFRTBERjcxNDRGODI1NTAwRjgwQjBEIC8qIFdlYkdM
RGVidWdTaGFkZXJzLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IEEwRUUwREYzMTQ0RjgyNTUwMEY4MEIwRCAvKiBXZWJHTERlYnVnU2hhZGVycy5jcHAg
Ki87IH07CisJCUEwRUUwREY4MTQ0RjgyNTUwMEY4MEIwRCAvKiBXZWJHTERlYnVnU2hhZGVycy5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTBFRTBERjQx
NDRGODI1NTAwRjgwQjBEIC8qIFdlYkdMRGVidWdTaGFkZXJzLmggKi87IH07CiAJCUExMjBBQ0E0
MTNGOTk4Q0EwMEZFNEFDNyAvKiBMYXlvdXRSZXBhaW50ZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTEyMEFDQTExM0Y5OTg0NjAwRkU0QUM3IC8q
IExheW91dFJlcGFpbnRlci5jcHAgKi87IH07CiAJCUExMjUzOEQ0MTNGOUI2MEEwMDAyNDc1NCAv
KiBMYXlvdXRSZXBhaW50ZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IEExMjBBQ0EwMTNGOTk4MzcwMEZFNEFDNyAvKiBMYXlvdXRSZXBhaW50ZXIuaCAq
Lzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlBMTM2QTAw
QzExMzREQkQyMDBDQzhENTAgLyogWE1MSHR0cFJlcXVlc3RQcm9ncmVzc0V2ZW50VGhyb3R0bGUu
Y3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTEzNkEw
MEExMTM0REJEMjAwQ0M4RDUwIC8qIFhNTEh0dHBSZXF1ZXN0UHJvZ3Jlc3NFdmVudFRocm90dGxl
LmNwcCAqLzsgfTsKQEAgLTEwNTA5LDYgKzEwNTEzLDEyIEBACiAJCTlGRkUzRUEzMTFCNUE0Mzkw
MDM3ODc0RSAvKiBKU01lbW9yeUluZm8uY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3Bw
OyBwYXRoID0gSlNNZW1vcnlJbmZvLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
OUZGRTNFQTQxMUI1QTQzOTAwMzc4NzRFIC8qIEpTTWVtb3J5SW5mby5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBKU01lbW9yeUluZm8uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJQTAwQjcyMTkxMURFNjQyNzAwOEFCOUZGIC8qIENoZWNrZWRJbnQuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gQ2hlY2tlZEludC5oOyBwYXRoID0gY2FudmFzL0No
ZWNrZWRJbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQTBFRTBERUYxNDRGODIz
MjAwRjgwQjBEIC8qIFdlYkdMRGVidWdTaGFkZXJzLmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IG5hbWUg
PSBXZWJHTERlYnVnU2hhZGVycy5pZGw7IHBhdGggPSBjYW52YXMvV2ViR0xEZWJ1Z1NoYWRlcnMu
aWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlBMEVFMERGMDE0NEY4MjQzMDBGODBC
MEQgLyogV2ViR0xEZWJ1Z1JlbmRlcmVySW5mby5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBuYW1lID0g
V2ViR0xEZWJ1Z1JlbmRlcmVySW5mby5pZGw7IHBhdGggPSBjYW52YXMvV2ViR0xEZWJ1Z1JlbmRl
cmVySW5mby5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUEwRUUwREYxMTQ0Rjgy
NTUwMEY4MEIwRCAvKiBXZWJHTERlYnVnUmVuZGVyZXJJbmZvLmNwcCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLmNwcDsgbmFtZSA9IFdlYkdMRGVidWdSZW5kZXJlckluZm8uY3BwOyBwYXRoID0g
Y2FudmFzL1dlYkdMRGVidWdSZW5kZXJlckluZm8uY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OworCQlBMEVFMERGMjE0NEY4MjU1MDBGODBCMEQgLyogV2ViR0xEZWJ1Z1JlbmRlcmVySW5m
by5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBXZWJHTERlYnVnUmVuZGVyZXJJ
bmZvLmg7IHBhdGggPSBjYW52YXMvV2ViR0xEZWJ1Z1JlbmRlcmVySW5mby5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OworCQlBMEVFMERGMzE0NEY4MjU1MDBGODBCMEQgLyogV2ViR0xEZWJ1
Z1NoYWRlcnMuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0gV2ViR0xE
ZWJ1Z1NoYWRlcnMuY3BwOyBwYXRoID0gY2FudmFzL1dlYkdMRGVidWdTaGFkZXJzLmNwcDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQTBFRTBERjQxNDRGODI1NTAwRjgwQjBEIC8qIFdl
YkdMRGVidWdTaGFkZXJzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IFdlYkdM
RGVidWdTaGFkZXJzLmg7IHBhdGggPSBjYW52YXMvV2ViR0xEZWJ1Z1NoYWRlcnMuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQTEyMEFDQTAxM0Y5OTgzNzAwRkU0QUM3IC8qIExheW91
dFJlcGFpbnRlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBMYXlvdXRSZXBh
aW50ZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQTEyMEFDQTExM0Y5OTg0NjAw
RkU0QUM3IC8qIExheW91dFJlcGFpbnRlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5j
cHA7IHBhdGggPSBMYXlvdXRSZXBhaW50ZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQlBMTM2QTAwQTExMzREQkQyMDBDQzhENTAgLyogWE1MSHR0cFJlcXVlc3RQcm9ncmVzc0V2
ZW50VGhyb3R0bGUuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gWE1M
SHR0cFJlcXVlc3RQcm9ncmVzc0V2ZW50VGhyb3R0bGUuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwpAQCAtMTQ3ODksNiArMTQ3OTksMTIgQEAKIAkJNDk0ODRGQUUxMDJDRjAxRTAwMTg3
REQzIC8qIGNhbnZhcyAqLyA9IHsKIAkJCWlzYSA9IFBCWEdyb3VwOwogCQkJY2hpbGRyZW4gPSAo
CisJCQkJQTBFRTBERjExNDRGODI1NTAwRjgwQjBEIC8qIFdlYkdMRGVidWdSZW5kZXJlckluZm8u
Y3BwICovLAorCQkJCUEwRUUwREYyMTQ0RjgyNTUwMEY4MEIwRCAvKiBXZWJHTERlYnVnUmVuZGVy
ZXJJbmZvLmggKi8sCisJCQkJQTBFRTBERjMxNDRGODI1NTAwRjgwQjBEIC8qIFdlYkdMRGVidWdT
aGFkZXJzLmNwcCAqLywKKwkJCQlBMEVFMERGNDE0NEY4MjU1MDBGODBCMEQgLyogV2ViR0xEZWJ1
Z1NoYWRlcnMuaCAqLywKKwkJCQlBMEVFMERGMDE0NEY4MjQzMDBGODBCMEQgLyogV2ViR0xEZWJ1
Z1JlbmRlcmVySW5mby5pZGwgKi8sCisJCQkJQTBFRTBERUYxNDRGODIzMjAwRjgwQjBEIC8qIFdl
YkdMRGVidWdTaGFkZXJzLmlkbCAqLywKIAkJCQk0OUVFQ0RDQTEwNTAzQzIzMDAwOTlGQUIgLyog
QXJyYXlCdWZmZXIuY3BwICovLAogCQkJCTQ5RUVDRENCMTA1MDNDMjMwMDA5OUZBQiAvKiBBcnJh
eUJ1ZmZlci5oICovLAogCQkJCTQ5RUVDRENDMTA1MDNDMjMwMDA5OUZBQiAvKiBBcnJheUJ1ZmZl
ci5pZGwgKi8sCkBAIC0yNDYxNiw2ICsyNDYzMiw4IEBACiAJCQkJNzFDQ0I0OUQxNDQ4MjRBQzAw
QzY3NkQ2IC8qIEltYWdlQnlTaXplQ2FjaGUuaCBpbiBIZWFkZXJzICovLAogCQkJCTA3NTM4NjAz
MTQ0ODlFOTgwMEI3ODQ1MiAvKiBDYWNoZWRDdWVzLmggaW4gSGVhZGVycyAqLywKIAkJCQk4QUE2
MUQwMDE0NEQ1OTVCMDBGMzczNTAgLyogQ1NTUmVnaW9uU3R5bGVSdWxlLmggaW4gSGVhZGVycyAq
LywKKwkJCQlBMEVFMERGNjE0NEY4MjU1MDBGODBCMEQgLyogV2ViR0xEZWJ1Z1JlbmRlcmVySW5m
by5oIGluIEhlYWRlcnMgKi8sCisJCQkJQTBFRTBERjgxNDRGODI1NTAwRjgwQjBEIC8qIFdlYkdM
RGVidWdTaGFkZXJzLmggaW4gSGVhZGVycyAqLywKIAkJCSk7CiAJCQlydW5Pbmx5Rm9yRGVwbG95
bWVudFBvc3Rwcm9jZXNzaW5nID0gMDsKIAkJfTsKQEAgLTI3NDY5LDYgKzI3NDg3LDggQEAKIAkJ
CQk3MUNDQjQ5QzE0NDgyNEFDMDBDNjc2RDYgLyogSW1hZ2VCeVNpemVDYWNoZS5jcHAgaW4gU291
cmNlcyAqLywKIAkJCQkwNzUzODYwMjE0NDg5RTk4MDBCNzg0NTIgLyogQ2FjaGVkQ3Vlcy5jcHAg
aW4gU291cmNlcyAqLywKIAkJCQk4QUE2MUNGRjE0NEQ1OTVCMDBGMzczNTAgLyogQ1NTUmVnaW9u
U3R5bGVSdWxlLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCUEwRUUwREY1MTQ0RjgyNTUwMEY4MEIw
RCAvKiBXZWJHTERlYnVnUmVuZGVyZXJJbmZvLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCUEwRUUw
REY3MTQ0RjgyNTUwMEY4MEIwRCAvKiBXZWJHTERlYnVnU2hhZGVycy5jcHAgaW4gU291cmNlcyAq
LywKIAkJCSk7CiAJCQlydW5Pbmx5Rm9yRGVwbG95bWVudFBvc3Rwcm9jZXNzaW5nID0gMDsKIAkJ
fTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTV2ViR0xSZW5kZXJpbmdDb250
ZXh0Q3VzdG9tLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9K
U1dlYkdMUmVuZGVyaW5nQ29udGV4dEN1c3RvbS5jcHAJKHJldmlzaW9uIDk3ODgxKQorKysgU291
cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNXZWJHTFJlbmRlcmluZ0NvbnRleHRDdXN0b20uY3Bw
CSh3b3JraW5nIGNvcHkpCkBAIC0yOSw0MiArMjksNDQgQEAKIAogI2luY2x1ZGUgIkpTV2ViR0xS
ZW5kZXJpbmdDb250ZXh0LmgiCiAKLSNpbmNsdWRlICJXZWJLaXRMb3NlQ29udGV4dC5oIgogI2lu
Y2x1ZGUgIkV4Y2VwdGlvbkNvZGUuaCIKKyNpbmNsdWRlICJGbG9hdDMyQXJyYXkuaCIKICNpbmNs
dWRlICJIVE1MQ2FudmFzRWxlbWVudC5oIgogI2luY2x1ZGUgIkhUTUxJbWFnZUVsZW1lbnQuaCIK
LSNpbmNsdWRlICJKU1dlYktpdExvc2VDb250ZXh0LmgiCisjaW5jbHVkZSAiSW50MzJBcnJheS5o
IgorI2luY2x1ZGUgIkpTRmxvYXQzMkFycmF5LmgiCiAjaW5jbHVkZSAiSlNIVE1MQ2FudmFzRWxl
bWVudC5oIgogI2luY2x1ZGUgIkpTSFRNTEltYWdlRWxlbWVudC5oIgogI2luY2x1ZGUgIkpTSW1h
Z2VEYXRhLmgiCisjaW5jbHVkZSAiSlNJbnQzMkFycmF5LmgiCiAjaW5jbHVkZSAiSlNPRVNTdGFu
ZGFyZERlcml2YXRpdmVzLmgiCiAjaW5jbHVkZSAiSlNPRVNUZXh0dXJlRmxvYXQuaCIKICNpbmNs
dWRlICJKU09FU1ZlcnRleEFycmF5T2JqZWN0LmgiCi0jaW5jbHVkZSAiSlNXZWJHTFZlcnRleEFy
cmF5T2JqZWN0T0VTLmgiCisjaW5jbHVkZSAiSlNVaW50OEFycmF5LmgiCiAjaW5jbHVkZSAiSlNX
ZWJHTEJ1ZmZlci5oIgotI2luY2x1ZGUgIkpTRmxvYXQzMkFycmF5LmgiCiAjaW5jbHVkZSAiSlNX
ZWJHTEZyYW1lYnVmZmVyLmgiCi0jaW5jbHVkZSAiSlNJbnQzMkFycmF5LmgiCiAjaW5jbHVkZSAi
SlNXZWJHTFByb2dyYW0uaCIKICNpbmNsdWRlICJKU1dlYkdMUmVuZGVyYnVmZmVyLmgiCiAjaW5j
bHVkZSAiSlNXZWJHTFNoYWRlci5oIgogI2luY2x1ZGUgIkpTV2ViR0xUZXh0dXJlLmgiCiAjaW5j
bHVkZSAiSlNXZWJHTFVuaWZvcm1Mb2NhdGlvbi5oIgotI2luY2x1ZGUgIkpTVWludDhBcnJheS5o
IgorI2luY2x1ZGUgIkpTV2ViR0xWZXJ0ZXhBcnJheU9iamVjdE9FUy5oIgogI2luY2x1ZGUgIkpT
V2ViS2l0Q1NTTWF0cml4LmgiCisjaW5jbHVkZSAiSlNXZWJLaXRMb3NlQ29udGV4dC5oIgogI2lu
Y2x1ZGUgIk5vdEltcGxlbWVudGVkLmgiCiAjaW5jbHVkZSAiT0VTU3RhbmRhcmREZXJpdmF0aXZl
cy5oIgogI2luY2x1ZGUgIk9FU1RleHR1cmVGbG9hdC5oIgogI2luY2x1ZGUgIk9FU1ZlcnRleEFy
cmF5T2JqZWN0LmgiCi0jaW5jbHVkZSAiV2ViR0xWZXJ0ZXhBcnJheU9iamVjdE9FUy5oIgogI2lu
Y2x1ZGUgIldlYkdMQnVmZmVyLmgiCi0jaW5jbHVkZSAiRmxvYXQzMkFycmF5LmgiCisjaW5jbHVk
ZSAiV2ViR0xEZWJ1Z1JlbmRlcmVySW5mby5oIgorI2luY2x1ZGUgIldlYkdMRGVidWdTaGFkZXJz
LmgiCiAjaW5jbHVkZSAiV2ViR0xFeHRlbnNpb24uaCIKICNpbmNsdWRlICJXZWJHTEZyYW1lYnVm
ZmVyLmgiCiAjaW5jbHVkZSAiV2ViR0xHZXRJbmZvLmgiCi0jaW5jbHVkZSAiSW50MzJBcnJheS5o
IgogI2luY2x1ZGUgIldlYkdMUHJvZ3JhbS5oIgogI2luY2x1ZGUgIldlYkdMUmVuZGVyaW5nQ29u
dGV4dC5oIgorI2luY2x1ZGUgIldlYkdMVmVydGV4QXJyYXlPYmplY3RPRVMuaCIKKyNpbmNsdWRl
ICJXZWJLaXRMb3NlQ29udGV4dC5oIgogI2luY2x1ZGUgPHJ1bnRpbWUvRXJyb3IuaD4KICNpbmNs
dWRlIDxydW50aW1lL0pTQXJyYXkuaD4KICNpbmNsdWRlIDx3dGYvRmFzdE1hbGxvYy5oPgpAQCAt
MTg3LDYgKzE4OSwxMCBAQCBzdGF0aWMgSlNWYWx1ZSB0b0pTKEV4ZWNTdGF0ZSogZXhlYywgSlNE
CiAgICAgICAgIHJldHVybiB0b0pTKGV4ZWMsIGdsb2JhbE9iamVjdCwgc3RhdGljX2Nhc3Q8T0VT
VGV4dHVyZUZsb2F0Kj4oZXh0ZW5zaW9uKSk7CiAgICAgY2FzZSBXZWJHTEV4dGVuc2lvbjo6T0VT
VmVydGV4QXJyYXlPYmplY3ROYW1lOgogICAgICAgICByZXR1cm4gdG9KUyhleGVjLCBnbG9iYWxP
YmplY3QsIHN0YXRpY19jYXN0PE9FU1ZlcnRleEFycmF5T2JqZWN0Kj4oZXh0ZW5zaW9uKSk7Cisg
ICAgY2FzZSBXZWJHTEV4dGVuc2lvbjo6V2ViR0xEZWJ1Z1JlbmRlcmVySW5mb05hbWU6CisgICAg
ICAgIHJldHVybiB0b0pTKGV4ZWMsIGdsb2JhbE9iamVjdCwgc3RhdGljX2Nhc3Q8V2ViR0xEZWJ1
Z1JlbmRlcmVySW5mbyo+KGV4dGVuc2lvbikpOworICAgIGNhc2UgV2ViR0xFeHRlbnNpb246Oldl
YkdMRGVidWdTaGFkZXJzTmFtZToKKyAgICAgICAgcmV0dXJuIHRvSlMoZXhlYywgZ2xvYmFsT2Jq
ZWN0LCBzdGF0aWNfY2FzdDxXZWJHTERlYnVnU2hhZGVycyo+KGV4dGVuc2lvbikpOwogICAgIH0K
ICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKICAgICByZXR1cm4ganNOdWxsKCk7CkluZGV4OiBT
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0b20vVjhXZWJHTFJlbmRlcmluZ0NvbnRleHRD
dXN0b20uY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3Rv
bS9WOFdlYkdMUmVuZGVyaW5nQ29udGV4dEN1c3RvbS5jcHAJKHJldmlzaW9uIDk3ODgxKQorKysg
U291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4V2ViR0xSZW5kZXJpbmdDb250ZXh0
Q3VzdG9tLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNTYsNiArNTYsOCBAQAogI2luY2x1ZGUgIlY4
VWludDMyQXJyYXkuaCIKICNpbmNsdWRlICJWOFVpbnQ4QXJyYXkuaCIKICNpbmNsdWRlICJWOFdl
YkdMQnVmZmVyLmgiCisjaW5jbHVkZSAiVjhXZWJHTERlYnVnUmVuZGVyZXJJbmZvLmgiCisjaW5j
bHVkZSAiVjhXZWJHTERlYnVnU2hhZGVycy5oIgogI2luY2x1ZGUgIlY4V2ViR0xGcmFtZWJ1ZmZl
ci5oIgogI2luY2x1ZGUgIlY4V2ViR0xQcm9ncmFtLmgiCiAjaW5jbHVkZSAiVjhXZWJHTFJlbmRl
cmJ1ZmZlci5oIgpAQCAtMTgyLDYgKzE4NCwxNCBAQCBzdGF0aWMgdjg6OkhhbmRsZTx2ODo6VmFs
dWU+IHRvVjhPYmplY3QoCiAgICAgICAgIGV4dGVuc2lvbk9iamVjdCA9IHRvVjgoc3RhdGljX2Nh
c3Q8T0VTVmVydGV4QXJyYXlPYmplY3QqPihleHRlbnNpb24pKTsKICAgICAgICAgcmVmZXJlbmNl
TmFtZSA9ICJvZXNWZXJ0ZXhBcnJheU9iamVjdE5hbWUiOwogICAgICAgICBicmVhazsKKyAgICBj
YXNlIFdlYkdMRXh0ZW5zaW9uOjpXZWJHTERlYnVnUmVuZGVyZXJJbmZvTmFtZToKKyAgICAgICAg
ZXh0ZW5zaW9uT2JqZWN0ID0gdG9WOChzdGF0aWNfY2FzdDxXZWJHTERlYnVnUmVuZGVyZXJJbmZv
Kj4oZXh0ZW5zaW9uKSk7CisgICAgICAgIHJlZmVyZW5jZU5hbWUgPSAid2ViR0xEZWJ1Z1JlbmRl
cmVySW5mb05hbWUiOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFdlYkdMRXh0ZW5zaW9uOjpX
ZWJHTERlYnVnU2hhZGVyc05hbWU6CisgICAgICAgIGV4dGVuc2lvbk9iamVjdCA9IHRvVjgoc3Rh
dGljX2Nhc3Q8V2ViR0xEZWJ1Z1NoYWRlcnMqPihleHRlbnNpb24pKTsKKyAgICAgICAgcmVmZXJl
bmNlTmFtZSA9ICJ3ZWJHTERlYnVnU2hhZGVyc05hbWUiOworICAgICAgICBicmVhazsKICAgICB9
CiAgICAgQVNTRVJUKCFleHRlbnNpb25PYmplY3QuSXNFbXB0eSgpKTsKICAgICBWOERPTVdyYXBw
ZXI6OnNldE5hbWVkSGlkZGVuUmVmZXJlbmNlKGNvbnRleHRPYmplY3QsIHJlZmVyZW5jZU5hbWUs
IGV4dGVuc2lvbk9iamVjdCk7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJH
TERlYnVnUmVuZGVyZXJJbmZvLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9odG1s
L2NhbnZhcy9XZWJHTERlYnVnUmVuZGVyZXJJbmZvLmNwcAkocmV2aXNpb24gMCkKKysrIFNvdXJj
ZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMRGVidWdSZW5kZXJlckluZm8uY3BwCShyZXZpc2lv
biAwKQpAQCAtMCwwICsxLDU3IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDExIEdvb2dsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMK
KyAqIGFyZSBtZXQ6CisgKgorICogMS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBt
dXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gIFJlZGlz
dHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVy
IG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBT
T0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBBTkQgSVRTIENPTlRSSUJVVE9SUyAiQVMgSVMi
IEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQKKyAqIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRB
QklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKKyAqIERJU0NM
QUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIE9SIElUUyBDT05UUklCVVRPUlMgQkUgTElB
QkxFIEZPUiBBTlkKKyAqIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVY
RU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTCisgKiAoSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7
CisgKiBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBU
SU9OKSBIT1dFVkVSIENBVVNFRCBBTkQKKyAqIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBX
SEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVE
SU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRI
RSBVU0UgT0YKKyAqIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lC
SUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorCisjaWYg
RU5BQkxFKFdFQkdMKQorCisjaW5jbHVkZSAiV2ViR0xEZWJ1Z1JlbmRlcmVySW5mby5oIgorCisj
aW5jbHVkZSAiV2ViR0xSZW5kZXJpbmdDb250ZXh0LmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsK
KworV2ViR0xEZWJ1Z1JlbmRlcmVySW5mbzo6V2ViR0xEZWJ1Z1JlbmRlcmVySW5mbyhXZWJHTFJl
bmRlcmluZ0NvbnRleHQqIGNvbnRleHQpCisgICAgOiBXZWJHTEV4dGVuc2lvbihjb250ZXh0KQor
eworfQorCitXZWJHTERlYnVnUmVuZGVyZXJJbmZvOjp+V2ViR0xEZWJ1Z1JlbmRlcmVySW5mbygp
Cit7Cit9CisKK1dlYkdMRXh0ZW5zaW9uOjpFeHRlbnNpb25OYW1lIFdlYkdMRGVidWdSZW5kZXJl
ckluZm86OmdldE5hbWUoKSBjb25zdAoreworICAgIHJldHVybiBXZWJHTERlYnVnUmVuZGVyZXJJ
bmZvTmFtZTsKK30KKworUGFzc093blB0cjxXZWJHTERlYnVnUmVuZGVyZXJJbmZvPiBXZWJHTERl
YnVnUmVuZGVyZXJJbmZvOjpjcmVhdGUoV2ViR0xSZW5kZXJpbmdDb250ZXh0KiBjb250ZXh0KQor
eworICAgIHJldHVybiBhZG9wdFB0cihuZXcgV2ViR0xEZWJ1Z1JlbmRlcmVySW5mbyhjb250ZXh0
KSk7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIEVOQUJMRShXRUJH
TCkKClByb3BlcnR5IGNoYW5nZXMgb246IFNvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdM
RGVidWdSZW5kZXJlckluZm8uY3BwCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KQWRkZWQ6IHN2bjplb2wtc3R5bGUKICAg
KyBMRgoKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMRGVidWdSZW5kZXJl
ckluZm8uaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTERl
YnVnUmVuZGVyZXJJbmZvLmgJKHJldmlzaW9uIDApCisrKyBTb3VyY2UvV2ViQ29yZS9odG1sL2Nh
bnZhcy9XZWJHTERlYnVnUmVuZGVyZXJJbmZvLmgJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsNTIg
QEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTEgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqCisg
KiAxLiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFy
eSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4g
dGhlCisgKiAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVk
IHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVE
IEJZIEFQUExFIEFORCBJVFMgQ09OVFJJQlVUT1JTICJBUyBJUyIgQU5EIEFOWQorICogRVhQUkVT
UyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBU
SEUgSU1QTElFRAorICogV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1Mg
Rk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRQorICogRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQg
U0hBTEwgQVBQTEUgT1IgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWQorICogRElS
RUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFV
RU5USUFMIERBTUFHRVMKKyAqIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VS
RU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsKKyAqIExPU1MgT0YgVVNFLCBE
QVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VE
IEFORAorICogT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1Qs
IFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBP
VEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRgorICogVEhJUyBT
T0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFH
RS4KKyAqLworCisjaWZuZGVmIFdlYkdMRGVidWdSZW5kZXJlckluZm9faAorI2RlZmluZSBXZWJH
TERlYnVnUmVuZGVyZXJJbmZvX2gKKworI2luY2x1ZGUgIldlYkdMRXh0ZW5zaW9uLmgiCisjaW5j
bHVkZSA8d3RmL1Bhc3NPd25QdHIuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBX
ZWJHTERlYnVnUmVuZGVyZXJJbmZvIDogcHVibGljIFdlYkdMRXh0ZW5zaW9uIHsKK3B1YmxpYzoK
KyAgICBlbnVtIEVudW1UeXBlIHsKKyAgICAgICAgVU5NQVNLRURfVkVORE9SX1dFQkdMID0gMHg5
MjQ1LAorICAgICAgICBVTk1BU0tFRF9SRU5ERVJFUl9XRUJHTCA9IDB4OTI0NgorICAgIH07CisK
KyAgICBzdGF0aWMgUGFzc093blB0cjxXZWJHTERlYnVnUmVuZGVyZXJJbmZvPiBjcmVhdGUoV2Vi
R0xSZW5kZXJpbmdDb250ZXh0Kik7CisKKyAgICB2aXJ0dWFsIH5XZWJHTERlYnVnUmVuZGVyZXJJ
bmZvKCk7CisgICAgdmlydHVhbCBFeHRlbnNpb25OYW1lIGdldE5hbWUoKSBjb25zdDsKKworcHJp
dmF0ZToKKyAgICBXZWJHTERlYnVnUmVuZGVyZXJJbmZvKFdlYkdMUmVuZGVyaW5nQ29udGV4dCop
OworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gV2ViR0xEZWJ1Z1Jl
bmRlcmVySW5mb19oCgpQcm9wZXJ0eSBjaGFuZ2VzIG9uOiBTb3VyY2UvV2ViQ29yZS9odG1sL2Nh
bnZhcy9XZWJHTERlYnVnUmVuZGVyZXJJbmZvLmgKX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpBZGRlZDogc3ZuOmVvbC1z
dHlsZQogICArIExGCgpJbmRleDogU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xEZWJ1
Z1JlbmRlcmVySW5mby5pZGwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvaHRtbC9jYW52
YXMvV2ViR0xEZWJ1Z1JlbmRlcmVySW5mby5pZGwJKHJldmlzaW9uIDApCisrKyBTb3VyY2UvV2Vi
Q29yZS9odG1sL2NhbnZhcy9XZWJHTERlYnVnUmVuZGVyZXJJbmZvLmlkbAkocmV2aXNpb24gMCkK
QEAgLTAsMCArMSwzNiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMSBHb29nbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBh
cmUgbWV0OgorICoKKyAqIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCBy
ZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuICBSZWRpc3RyaWJ1
dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRl
cmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdB
UkUgSVMgUFJPVklERUQgQlkgQVBQTEUgQU5EIElUUyBDT05UUklCVVRPUlMgIkFTIElTIiBBTkQg
QU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sIFRIRSBJTVBMSUVECisgKiBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElU
WSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCisgKiBESVNDTEFJTUVE
LiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBPUiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBG
T1IgQU5ZCisgKiBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExB
UlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUworICogKElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOworICog
TE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikg
SE9XRVZFUiBDQVVTRUQgQU5ECisgKiBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhF
UiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBO
RUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNF
IE9GCisgKiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZ
IE9GIFNVQ0ggREFNQUdFLgorICovCisKK21vZHVsZSBodG1sIHsKKyAgICBpbnRlcmZhY2UgWwor
ICAgICAgICBDb25kaXRpb25hbD1XRUJHTCwKKyAgICAgICAgR2VuZXJhdGVJc1JlYWNoYWJsZT1J
bXBsQ29udGV4dCwKKyAgICAgICAgT21pdENvbnN0cnVjdG9yLAorICAgICAgICBEb250Q2hlY2tF
bnVtcworICAgIF0gV2ViR0xEZWJ1Z1JlbmRlcmVySW5mbyB7CisgICAgICAgIGNvbnN0IHVuc2ln
bmVkIGludCBVTk1BU0tFRF9WRU5ET1JfV0VCR0wgPSAweDkyNDU7CisgICAgICAgIGNvbnN0IHVu
c2lnbmVkIGludCBVTk1BU0tFRF9SRU5ERVJFUl9XRUJHTCA9IDB4OTI0NjsKKyAgICB9OworfQoK
UHJvcGVydHkgY2hhbmdlcyBvbjogU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xEZWJ1
Z1JlbmRlcmVySW5mby5pZGwKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fXwpBZGRlZDogc3ZuOmVvbC1zdHlsZQogICArIExG
CgpJbmRleDogU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xEZWJ1Z1NoYWRlcnMuY3Bw
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMRGVidWdTaGFk
ZXJzLmNwcAkocmV2aXNpb24gMCkKKysrIFNvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdM
RGVidWdTaGFkZXJzLmNwcAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSw3MSBAQAorLyoKKyAqIENv
cHlyaWdodCAoQykgMjAxMSBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAq
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICoKKyAqIDEuICBSZWRpc3Ry
aWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lci4KKyAqIDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCBy
ZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgICBk
b2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlz
dHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgQU5E
IElUUyBDT05UUklCVVRPUlMgIkFTIElTIiBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQg
V0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVECisg
KiBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNV
TEFSIFBVUlBPU0UgQVJFCisgKiBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBP
UiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZCisgKiBESVJFQ1QsIElORElSRUNU
LCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdF
UworICogKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJT
VElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOworICogTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJ
VFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5ECisgKiBPTiBB
TlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJ
TElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJ
U0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GCisgKiBUSElTIFNPRlRXQVJFLCBFVkVO
IElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNp
bmNsdWRlICJjb25maWcuaCIKKworI2lmIEVOQUJMRShXRUJHTCkKKworI2luY2x1ZGUgIldlYkdM
RGVidWdTaGFkZXJzLmgiCisKKyNpbmNsdWRlICJFeHRlbnNpb25zM0QuaCIKKyNpbmNsdWRlICJX
ZWJHTFJlbmRlcmluZ0NvbnRleHQuaCIKKyNpbmNsdWRlICJXZWJHTFNoYWRlci5oIgorCisjaW5j
bHVkZSA8d3RmL093bkFycmF5UHRyLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworV2ViR0xE
ZWJ1Z1NoYWRlcnM6OldlYkdMRGVidWdTaGFkZXJzKFdlYkdMUmVuZGVyaW5nQ29udGV4dCogY29u
dGV4dCkKKyAgICA6IFdlYkdMRXh0ZW5zaW9uKGNvbnRleHQpCit7Cit9CisKK1dlYkdMRGVidWdT
aGFkZXJzOjp+V2ViR0xEZWJ1Z1NoYWRlcnMoKQoreworfQorCitXZWJHTEV4dGVuc2lvbjo6RXh0
ZW5zaW9uTmFtZSBXZWJHTERlYnVnU2hhZGVyczo6Z2V0TmFtZSgpIGNvbnN0Cit7CisgICAgcmV0
dXJuIFdlYkdMRGVidWdTaGFkZXJzTmFtZTsKK30KKworUGFzc093blB0cjxXZWJHTERlYnVnU2hh
ZGVycz4gV2ViR0xEZWJ1Z1NoYWRlcnM6OmNyZWF0ZShXZWJHTFJlbmRlcmluZ0NvbnRleHQqIGNv
bnRleHQpCit7CisgICAgcmV0dXJuIGFkb3B0UHRyKG5ldyBXZWJHTERlYnVnU2hhZGVycyhjb250
ZXh0KSk7Cit9CisKK1N0cmluZyBXZWJHTERlYnVnU2hhZGVyczo6Z2V0VHJhbnNsYXRlZFNoYWRl
clNvdXJjZShXZWJHTFNoYWRlciogc2hhZGVyLCBFeGNlcHRpb25Db2RlJiBlYykKK3sKKyAgICBV
TlVTRURfUEFSQU0oZWMpOworICAgIGlmIChtX2NvbnRleHQtPmlzQ29udGV4dExvc3QoKSkKKyAg
ICAgICAgcmV0dXJuIFN0cmluZygpOworICAgIGlmICghbV9jb250ZXh0LT52YWxpZGF0ZVdlYkdM
T2JqZWN0KHNoYWRlcikpCisgICAgICAgIHJldHVybiAiIjsKKyAgICByZXR1cm4gbV9jb250ZXh0
LT5ncmFwaGljc0NvbnRleHQzRCgpLT5nZXRFeHRlbnNpb25zKCktPmdldFRyYW5zbGF0ZWRTaGFk
ZXJTb3VyY2VBTkdMRShzaGFkZXItPm9iamVjdCgpKTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2Vi
Q29yZQorCisjZW5kaWYgLy8gRU5BQkxFKFdFQkdMKQoKUHJvcGVydHkgY2hhbmdlcyBvbjogU291
cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xEZWJ1Z1NoYWRlcnMuY3BwCl9fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18K
QWRkZWQ6IHN2bjplb2wtc3R5bGUKICAgKyBMRgoKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2h0bWwv
Y2FudmFzL1dlYkdMRGVidWdTaGFkZXJzLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUv
aHRtbC9jYW52YXMvV2ViR0xEZWJ1Z1NoYWRlcnMuaAkocmV2aXNpb24gMCkKKysrIFNvdXJjZS9X
ZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMRGVidWdTaGFkZXJzLmgJKHJldmlzaW9uIDApCkBAIC0w
LDAgKzEsNTIgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTEgR29vZ2xlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh
bmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBl
cm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1l
dDoKKyAqCisgKiAxLiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWlu
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiAgUmVkaXN0cmlidXRpb25z
IGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIgaW4gdGhlCisgKiAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxz
IHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElT
IFBST1ZJREVEIEJZIEFQUExFIEFORCBJVFMgQ09OVFJJQlVUT1JTICJBUyBJUyIgQU5EIEFOWQor
ICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLCBUSEUgSU1QTElFRAorICogV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5E
IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRQorICogRElTQ0xBSU1FRC4gSU4g
Tk8gRVZFTlQgU0hBTEwgQVBQTEUgT1IgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFO
WQorICogRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBP
UiBDT05TRVFVRU5USUFMIERBTUFHRVMKKyAqIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsKKyAqIExPU1Mg
T0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VW
RVIgQ0FVU0VEIEFORAorICogT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4g
Q09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElH
RU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRgor
ICogVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBT
VUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVmIFdlYkdMRGVidWdTaGFkZXJzX2gKKyNkZWZpbmUg
V2ViR0xEZWJ1Z1NoYWRlcnNfaAorCisjaW5jbHVkZSAiRXhjZXB0aW9uQ29kZS5oIgorI2luY2x1
ZGUgIldlYkdMRXh0ZW5zaW9uLmgiCisjaW5jbHVkZSA8d3RmL1Bhc3NPd25QdHIuaD4KKworbmFt
ZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBXZWJHTFNoYWRlcjsKKworY2xhc3MgV2ViR0xEZWJ1
Z1NoYWRlcnMgOiBwdWJsaWMgV2ViR0xFeHRlbnNpb24geworcHVibGljOgorICAgIHN0YXRpYyBQ
YXNzT3duUHRyPFdlYkdMRGVidWdTaGFkZXJzPiBjcmVhdGUoV2ViR0xSZW5kZXJpbmdDb250ZXh0
Kik7CisKKyAgICB2aXJ0dWFsIH5XZWJHTERlYnVnU2hhZGVycygpOworICAgIHZpcnR1YWwgRXh0
ZW5zaW9uTmFtZSBnZXROYW1lKCkgY29uc3Q7CisKKyAgICBTdHJpbmcgZ2V0VHJhbnNsYXRlZFNo
YWRlclNvdXJjZShXZWJHTFNoYWRlciosIEV4Y2VwdGlvbkNvZGUmKTsKKworcHJpdmF0ZToKKyAg
ICBXZWJHTERlYnVnU2hhZGVycyhXZWJHTFJlbmRlcmluZ0NvbnRleHQqKTsKK307CisKK30gLy8g
bmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIFdlYkdMRGVidWdTaGFkZXJzX2gKClByb3Bl
cnR5IGNoYW5nZXMgb246IFNvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMRGVidWdTaGFk
ZXJzLmgKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fXwpBZGRlZDogc3ZuOmVvbC1zdHlsZQogICArIExGCgpJbmRleDogU291
cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xEZWJ1Z1NoYWRlcnMuaWRsCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMRGVidWdTaGFkZXJzLmlkbAkocmV2
aXNpb24gMCkKKysrIFNvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMRGVidWdTaGFkZXJz
LmlkbAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSwzNCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykg
MjAxMSBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAor
ICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICoKKyAqIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Yg
c291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4K
KyAqIDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgICBkb2N1bWVudGF0aW9u
IGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgor
ICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgQU5EIElUUyBDT05UUklC
VVRPUlMgIkFTIElTIiBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywg
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVECisgKiBXQVJSQU5USUVT
IE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0Ug
QVJFCisgKiBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBPUiBJVFMgQ09OVFJJ
QlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZCisgKiBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFM
LCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUworICogKElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RT
IE9SIFNFUlZJQ0VTOworICogTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lO
RVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5ECisgKiBPTiBBTlkgVEhFT1JZIE9G
IExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9S
VAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkg
V0FZIE9VVCBPRiBUSEUgVVNFIE9GCisgKiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQg
T0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKK21vZHVsZSBodG1sIHsK
KyAgICBpbnRlcmZhY2UgWworICAgICAgICBDb25kaXRpb25hbD1XRUJHTCwKKyAgICAgICAgR2Vu
ZXJhdGVJc1JlYWNoYWJsZT1JbXBsQ29udGV4dCwKKyAgICAgICAgT21pdENvbnN0cnVjdG9yCisg
ICAgXSBXZWJHTERlYnVnU2hhZGVycyB7CisgICAgICAgIFtTdHJpY3RUeXBlQ2hlY2tpbmcsIENv
bnZlcnROdWxsU3RyaW5nVG89TnVsbF0gRE9NU3RyaW5nIGdldFRyYW5zbGF0ZWRTaGFkZXJTb3Vy
Y2UoaW4gV2ViR0xTaGFkZXIgc2hhZGVyKSByYWlzZXMoRE9NRXhjZXB0aW9uKTsKKyAgICB9Owor
fQoKUHJvcGVydHkgY2hhbmdlcyBvbjogU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xE
ZWJ1Z1NoYWRlcnMuaWRsCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX18KQWRkZWQ6IHN2bjplb2wtc3R5bGUKICAgKyBMRgoK
SW5kZXg6IFNvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMRXh0ZW5zaW9uLmgKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xFeHRlbnNpb24uaAkocmV2
aXNpb24gOTc4ODEpCisrKyBTb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTEV4dGVuc2lv
bi5oCSh3b3JraW5nIGNvcHkpCkBAIC0zOCw2ICszOCw4IEBAIHB1YmxpYzoKICAgICAgICAgT0VT
VGV4dHVyZUZsb2F0TmFtZSwKICAgICAgICAgT0VTU3RhbmRhcmREZXJpdmF0aXZlc05hbWUsCiAg
ICAgICAgIE9FU1ZlcnRleEFycmF5T2JqZWN0TmFtZSwKKyAgICAgICAgV2ViR0xEZWJ1Z1JlbmRl
cmVySW5mb05hbWUsCisgICAgICAgIFdlYkdMRGVidWdTaGFkZXJzTmFtZSwKICAgICB9OwogCiAg
ICAgdm9pZCByZWYoKSB7IG1fY29udGV4dC0+cmVmKCk7IH0KSW5kZXg6IFNvdXJjZS9XZWJDb3Jl
L2h0bWwvY2FudmFzL1dlYkdMUmVuZGVyaW5nQ29udGV4dC5jcHAKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xSZW5kZXJpbmdDb250ZXh0LmNwcAkocmV2aXNp
b24gOTc4ODEpCisrKyBTb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFJlbmRlcmluZ0Nv
bnRleHQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zMiw3ICszMiw2IEBACiAjaW5jbHVkZSAiQ2Fj
aGVkSW1hZ2UuaCIKICNpbmNsdWRlICJDYW52YXNQaXhlbEFycmF5LmgiCiAjaW5jbHVkZSAiQ2hl
Y2tlZEludC5oIgotI2luY2x1ZGUgIldlYktpdExvc2VDb250ZXh0LmgiCiAjaW5jbHVkZSAiQ29u
c29sZS5oIgogI2luY2x1ZGUgIkRPTVdpbmRvdy5oIgogI2luY2x1ZGUgIkV4dGVuc2lvbnMzRC5o
IgpAQCAtNTcsMTIgKzU2LDE1IEBACiAjaW5jbHVkZSAiV2ViR0xCdWZmZXIuaCIKICNpbmNsdWRl
ICJXZWJHTENvbnRleHRBdHRyaWJ1dGVzLmgiCiAjaW5jbHVkZSAiV2ViR0xDb250ZXh0RXZlbnQu
aCIKKyNpbmNsdWRlICJXZWJHTERlYnVnUmVuZGVyZXJJbmZvLmgiCisjaW5jbHVkZSAiV2ViR0xE
ZWJ1Z1NoYWRlcnMuaCIKICNpbmNsdWRlICJXZWJHTEZyYW1lYnVmZmVyLmgiCiAjaW5jbHVkZSAi
V2ViR0xQcm9ncmFtLmgiCiAjaW5jbHVkZSAiV2ViR0xSZW5kZXJidWZmZXIuaCIKICNpbmNsdWRl
ICJXZWJHTFNoYWRlci5oIgogI2luY2x1ZGUgIldlYkdMVGV4dHVyZS5oIgogI2luY2x1ZGUgIldl
YkdMVW5pZm9ybUxvY2F0aW9uLmgiCisjaW5jbHVkZSAiV2ViS2l0TG9zZUNvbnRleHQuaCIKIAog
I2luY2x1ZGUgPHd0Zi9CeXRlQXJyYXkuaD4KICNpbmNsdWRlIDx3dGYvT3duQXJyYXlQdHIuaD4K
QEAgLTQ3Myw2ICs0NzUsMTIgQEAgdm9pZCBXZWJHTFJlbmRlcmluZ0NvbnRleHQ6OnNldHVwRmxh
Z3MoKQogICAgIH0KIH0KIAorYm9vbCBXZWJHTFJlbmRlcmluZ0NvbnRleHQ6OmFsbG93UHJpdmls
ZWdlZEV4dGVuc2lvbnMoKSBjb25zdAoreworICAgIC8vIEZJWE1FOiBpbXBsZW1lbnQgdGhpcyBm
dW5jdGlvbi4KKyAgICByZXR1cm4gZmFsc2U7Cit9CisKIFdlYkdMUmVuZGVyaW5nQ29udGV4dDo6
fldlYkdMUmVuZGVyaW5nQ29udGV4dCgpCiB7CiAgICAgZGV0YWNoQW5kUmVtb3ZlQWxsT2JqZWN0
cygpOwpAQCAtMjAwMCw2ICsyMDA4LDIwIEBAIFdlYkdMRXh0ZW5zaW9uKiBXZWJHTFJlbmRlcmlu
Z0NvbnRleHQ6OmcKICAgICAgICAgcmV0dXJuIG1fd2Via2l0TG9zZUNvbnRleHQuZ2V0KCk7CiAg
ICAgfQogCisgICAgaWYgKGFsbG93UHJpdmlsZWdlZEV4dGVuc2lvbnMoKSkgeworICAgICAgICBp
ZiAoZXF1YWxJZ25vcmluZ0Nhc2UobmFtZSwgIldFQkdMX2RlYnVnX3JlbmRlcmVyX2luZm8iKSkg
eworICAgICAgICAgICAgaWYgKCFtX3dlYmdsRGVidWdSZW5kZXJlckluZm8pCisgICAgICAgICAg
ICAgICAgbV93ZWJnbERlYnVnUmVuZGVyZXJJbmZvID0gV2ViR0xEZWJ1Z1JlbmRlcmVySW5mbzo6
Y3JlYXRlKHRoaXMpOworICAgICAgICAgICAgcmV0dXJuIG1fd2ViZ2xEZWJ1Z1JlbmRlcmVySW5m
by5nZXQoKTsKKyAgICAgICAgfQorICAgICAgICBpZiAoZXF1YWxJZ25vcmluZ0Nhc2UobmFtZSwg
IldFQkdMX2RlYnVnX3NoYWRlcnMiKQorICAgICAgICAgICAgJiYgbV9jb250ZXh0LT5nZXRFeHRl
bnNpb25zKCktPnN1cHBvcnRzKCJHTF9BTkdMRV90cmFuc2xhdGVkX3NoYWRlcl9zb3VyY2UiKSkg
eworICAgICAgICAgICAgaWYgKCFtX3dlYmdsRGVidWdTaGFkZXJzKQorICAgICAgICAgICAgICAg
IG1fd2ViZ2xEZWJ1Z1NoYWRlcnMgPSBXZWJHTERlYnVnU2hhZGVyczo6Y3JlYXRlKHRoaXMpOwor
ICAgICAgICAgICAgcmV0dXJuIG1fd2ViZ2xEZWJ1Z1NoYWRlcnMuZ2V0KCk7CisgICAgICAgIH0K
KyAgICB9CisKICAgICByZXR1cm4gMDsKIH0KIApAQCAtMjI0NSw2ICsyMjY3LDE2IEBAIFdlYkdM
R2V0SW5mbyBXZWJHTFJlbmRlcmluZ0NvbnRleHQ6OmdldFAKICAgICAgICAgICAgIHJldHVybiBn
ZXRVbnNpZ25lZEludFBhcmFtZXRlcihFeHRlbnNpb25zM0Q6OkZSQUdNRU5UX1NIQURFUl9ERVJJ
VkFUSVZFX0hJTlRfT0VTKTsKICAgICAgICAgbV9jb250ZXh0LT5zeW50aGVzaXplR0xFcnJvcihH
cmFwaGljc0NvbnRleHQzRDo6SU5WQUxJRF9FTlVNKTsKICAgICAgICAgcmV0dXJuIFdlYkdMR2V0
SW5mbygpOworICAgIGNhc2UgV2ViR0xEZWJ1Z1JlbmRlcmVySW5mbzo6VU5NQVNLRURfUkVOREVS
RVJfV0VCR0w6CisgICAgICAgIGlmIChtX3dlYmdsRGVidWdSZW5kZXJlckluZm8pCisgICAgICAg
ICAgICByZXR1cm4gV2ViR0xHZXRJbmZvKG1fY29udGV4dC0+Z2V0U3RyaW5nKEdyYXBoaWNzQ29u
dGV4dDNEOjpSRU5ERVJFUikpOworICAgICAgICBtX2NvbnRleHQtPnN5bnRoZXNpemVHTEVycm9y
KEdyYXBoaWNzQ29udGV4dDNEOjpJTlZBTElEX0VOVU0pOworICAgICAgICByZXR1cm4gV2ViR0xH
ZXRJbmZvKCk7CisgICAgY2FzZSBXZWJHTERlYnVnUmVuZGVyZXJJbmZvOjpVTk1BU0tFRF9WRU5E
T1JfV0VCR0w6CisgICAgICAgIGlmIChtX3dlYmdsRGVidWdSZW5kZXJlckluZm8pCisgICAgICAg
ICAgICByZXR1cm4gV2ViR0xHZXRJbmZvKG1fY29udGV4dC0+Z2V0U3RyaW5nKEdyYXBoaWNzQ29u
dGV4dDNEOjpWRU5ET1IpKTsKKyAgICAgICAgbV9jb250ZXh0LT5zeW50aGVzaXplR0xFcnJvcihH
cmFwaGljc0NvbnRleHQzRDo6SU5WQUxJRF9FTlVNKTsKKyAgICAgICAgcmV0dXJuIFdlYkdMR2V0
SW5mbygpOwogICAgIGNhc2UgRXh0ZW5zaW9uczNEOjpWRVJURVhfQVJSQVlfQklORElOR19PRVM6
IC8vIE9FU192ZXJ0ZXhfYXJyYXlfb2JqZWN0CiAgICAgICAgIGlmIChtX29lc1ZlcnRleEFycmF5
T2JqZWN0KSB7CiAgICAgICAgICAgICBpZiAoIW1fYm91bmRWZXJ0ZXhBcnJheU9iamVjdC0+aXNE
ZWZhdWx0T2JqZWN0KCkpCkBAIC0yNDE3LDYgKzI0NDksMTMgQEAgVmVjdG9yPFN0cmluZz4gV2Vi
R0xSZW5kZXJpbmdDb250ZXh0OjpnZQogICAgIGlmIChtX2NvbnRleHQtPmdldEV4dGVuc2lvbnMo
KS0+c3VwcG9ydHMoIkdMX09FU192ZXJ0ZXhfYXJyYXlfb2JqZWN0IikpCiAgICAgICAgIHJlc3Vs
dC5hcHBlbmQoIk9FU192ZXJ0ZXhfYXJyYXlfb2JqZWN0Iik7CiAgICAgcmVzdWx0LmFwcGVuZCgi
V0VCS0lUX2xvc2VfY29udGV4dCIpOworCisgICAgaWYgKGFsbG93UHJpdmlsZWdlZEV4dGVuc2lv
bnMoKSkgeworICAgICAgICBpZiAobV9jb250ZXh0LT5nZXRFeHRlbnNpb25zKCktPnN1cHBvcnRz
KCJHTF9BTkdMRV90cmFuc2xhdGVkX3NoYWRlcl9zb3VyY2UiKSkKKyAgICAgICAgICAgIHJlc3Vs
dC5hcHBlbmQoIldFQkdMX2RlYnVnX3NoYWRlcnMiKTsKKyAgICAgICAgcmVzdWx0LmFwcGVuZCgi
V0VCR0xfZGVidWdfcmVuZGVyZXJfaW5mbyIpOworICAgIH0KKwogICAgIHJldHVybiByZXN1bHQ7
CiB9CiAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMUmVuZGVyaW5nQ29u
dGV4dC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMUmVu
ZGVyaW5nQ29udGV4dC5oCShyZXZpc2lvbiA5Nzg4MSkKKysrIFNvdXJjZS9XZWJDb3JlL2h0bWwv
Y2FudmFzL1dlYkdMUmVuZGVyaW5nQ29udGV4dC5oCSh3b3JraW5nIGNvcHkpCkBAIC00MCw5ICs0
MCwxOSBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKK2NsYXNzIEhUTUxJbWFnZUVsZW1lbnQ7
CitjbGFzcyBIVE1MVmlkZW9FbGVtZW50OworY2xhc3MgSW1hZ2VCdWZmZXI7CitjbGFzcyBJbWFn
ZURhdGE7CitjbGFzcyBJbnRTaXplOworY2xhc3MgT0VTU3RhbmRhcmREZXJpdmF0aXZlczsKK2Ns
YXNzIE9FU1RleHR1cmVGbG9hdDsKK2NsYXNzIE9FU1ZlcnRleEFycmF5T2JqZWN0OwogY2xhc3Mg
V2ViR0xBY3RpdmVJbmZvOwogY2xhc3MgV2ViR0xCdWZmZXI7CiBjbGFzcyBXZWJHTENvbnRleHRB
dHRyaWJ1dGVzOworY2xhc3MgV2ViR0xEZWJ1Z1JlbmRlcmVySW5mbzsKK2NsYXNzIFdlYkdMRGVi
dWdTaGFkZXJzOwogY2xhc3MgV2ViR0xFeHRlbnNpb247CiBjbGFzcyBXZWJHTEZyYW1lYnVmZmVy
OwogY2xhc3MgV2ViR0xPYmplY3Q7CkBAIC01MSwxNiArNjEsOCBAQCBjbGFzcyBXZWJHTFJlbmRl
cmJ1ZmZlcjsKIGNsYXNzIFdlYkdMU2hhZGVyOwogY2xhc3MgV2ViR0xUZXh0dXJlOwogY2xhc3Mg
V2ViR0xVbmlmb3JtTG9jYXRpb247Ci1jbGFzcyBXZWJLaXRMb3NlQ29udGV4dDsKLWNsYXNzIEhU
TUxJbWFnZUVsZW1lbnQ7Ci1jbGFzcyBIVE1MVmlkZW9FbGVtZW50OwotY2xhc3MgSW1hZ2VCdWZm
ZXI7Ci1jbGFzcyBJbWFnZURhdGE7Ci1jbGFzcyBJbnRTaXplOwotY2xhc3MgT0VTU3RhbmRhcmRE
ZXJpdmF0aXZlczsKLWNsYXNzIE9FU1RleHR1cmVGbG9hdDsKLWNsYXNzIE9FU1ZlcnRleEFycmF5
T2JqZWN0OwogY2xhc3MgV2ViR0xWZXJ0ZXhBcnJheU9iamVjdE9FUzsKK2NsYXNzIFdlYktpdExv
c2VDb250ZXh0OwogCiBjbGFzcyBXZWJHTFJlbmRlcmluZ0NvbnRleHQgOiBwdWJsaWMgQ2FudmFz
UmVuZGVyaW5nQ29udGV4dCB7CiBwdWJsaWM6CkBAIC0zMDYsNiArMzA4LDcgQEAgcHVibGljOgog
ICBwcml2YXRlOgogICAgIGZyaWVuZCBjbGFzcyBXZWJHTE9iamVjdDsKICAgICBmcmllbmQgY2xh
c3MgT0VTVmVydGV4QXJyYXlPYmplY3Q7CisgICAgZnJpZW5kIGNsYXNzIFdlYkdMRGVidWdTaGFk
ZXJzOwogCiAgICAgV2ViR0xSZW5kZXJpbmdDb250ZXh0KEhUTUxDYW52YXNFbGVtZW50KiwgUGFz
c1JlZlB0cjxHcmFwaGljc0NvbnRleHQzRD4sIEdyYXBoaWNzQ29udGV4dDNEOjpBdHRyaWJ1dGVz
KTsKICAgICB2b2lkIGluaXRpYWxpemVOZXdDb250ZXh0KCk7CkBAIC00NzQsNiArNDc3LDggQEAg
cHVibGljOgogICAgIE93blB0cjxPRVNTdGFuZGFyZERlcml2YXRpdmVzPiBtX29lc1N0YW5kYXJk
RGVyaXZhdGl2ZXM7CiAgICAgT3duUHRyPE9FU1ZlcnRleEFycmF5T2JqZWN0PiBtX29lc1ZlcnRl
eEFycmF5T2JqZWN0OwogICAgIE93blB0cjxXZWJLaXRMb3NlQ29udGV4dD4gbV93ZWJraXRMb3Nl
Q29udGV4dDsKKyAgICBPd25QdHI8V2ViR0xEZWJ1Z1JlbmRlcmVySW5mbz4gbV93ZWJnbERlYnVn
UmVuZGVyZXJJbmZvOworICAgIE93blB0cjxXZWJHTERlYnVnU2hhZGVycz4gbV93ZWJnbERlYnVn
U2hhZGVyczsKIAogICAgIC8vIEhlbHBlcnMgZm9yIGdldFBhcmFtZXRlciBhbmQgb3RoZXJzCiAg
ICAgV2ViR0xHZXRJbmZvIGdldEJvb2xlYW5QYXJhbWV0ZXIoR0MzRGVudW0pOwpAQCAtNjIyLDYg
KzYyNywxMCBAQCBwdWJsaWM6CiAgICAgLy8gSGVscGVyIGZvciByZXN0b3JhdGlvbiBhZnRlciBj
b250ZXh0IGxvc3QuCiAgICAgdm9pZCBtYXliZVJlc3RvcmVDb250ZXh0KExvc3RDb250ZXh0TW9k
ZSk7CiAKKyAgICAvLyBEZXRlcm1pbmUgaWYgd2UgYXJlIHJ1bm5pbmcgcHJpdmlsZWdlZCBjb2Rl
IGluIHRoZSBicm93c2VyLCBmb3IgZXhhbXBsZSwKKyAgICAvLyBhIFNhZmFyaSBvciBDaHJvbWUg
ZXh0ZW5zaW9uLgorICAgIGJvb2wgYWxsb3dQcml2aWxlZ2VkRXh0ZW5zaW9ucygpIGNvbnN0Owor
CiAgICAgZnJpZW5kIGNsYXNzIFdlYkdMU3RhdGVSZXN0b3JlcjsKIH07CiAKSW5kZXg6IFNvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0V4dGVuc2lvbnMzRC5oCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0V4dGVuc2lvbnMzRC5oCShyZXZpc2lv
biA5Nzg4MSkKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0V4dGVuc2lvbnMz
RC5oCSh3b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykg
MjAxMCBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAy
MDExIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAg
KiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMKQEAgLTU2LDYgKzU2LDcgQEAgcHVibGljOgogICAgIC8vICAgR0xfT0VTX3N0
YW5kYXJkX2Rlcml2YXRpdmVzCiAgICAgLy8gICBHTF9PRVNfcmdiOF9yZ2JhOAogICAgIC8vICAg
R0xfT0VTX3ZlcnRleF9hcnJheV9vYmplY3QKKyAgICAvLyAgIEdMX0FOR0xFX3RyYW5zbGF0ZWRf
c2hhZGVyX3NvdXJjZQogCiAgICAgLy8gVGFrZXMgZnVsbCBuYW1lIG9mIGV4dGVuc2lvbjsgZm9y
IGV4YW1wbGUsCiAgICAgLy8gIkdMX0VYVF90ZXh0dXJlX2Zvcm1hdF9CR1JBODg4OCIuCkBAIC0x
MDMsNiArMTA0LDkgQEAgcHVibGljOgogICAgICAgICAKICAgICAgICAgLy8gR0xfT0VTX3ZlcnRl
eF9hcnJheV9vYmplY3QgbmFtZXMKICAgICAgICAgVkVSVEVYX0FSUkFZX0JJTkRJTkdfT0VTID0g
MHg4NUI1LAorCisgICAgICAgIC8vIEdMX0FOR0xFX3RyYW5zbGF0ZWRfc2hhZGVyX3NvdXJjZQor
ICAgICAgICBUUkFOU0xBVEVEX1NIQURFUl9TT1VSQ0VfTEVOR1RIX0FOR0xFID0gMHg5M0EwLAog
ICAgIH07CiAKICAgICAvLyBHTF9BUkJfcm9idXN0bmVzcwpAQCAtMTI1LDYgKzEyOSw5IEBAIHB1
YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgZGVsZXRlVmVydGV4QXJyYXlPRVMoUGxhdGZvcm0zRE9i
amVjdCkgPSAwOwogICAgIHZpcnR1YWwgR0MzRGJvb2xlYW4gaXNWZXJ0ZXhBcnJheU9FUyhQbGF0
Zm9ybTNET2JqZWN0KSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIGJpbmRWZXJ0ZXhBcnJheU9FUyhQ
bGF0Zm9ybTNET2JqZWN0KSA9IDA7CisKKyAgICAvLyBHTF9BTkdMRV90cmFuc2xhdGVkX3NoYWRl
cl9zb3VyY2UKKyAgICB2aXJ0dWFsIFN0cmluZyBnZXRUcmFuc2xhdGVkU2hhZGVyU291cmNlQU5H
TEUoUGxhdGZvcm0zRE9iamVjdCkgPSAwOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpJ
bmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NUeXBlczNELmgK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NU
eXBlczNELmgJKHJldmlzaW9uIDk3ODgxKQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvR3JhcGhpY3NUeXBlczNELmgJKHdvcmtpbmcgY29weSkKQEAgLTQ0LDYgKzQ0LDcgQEAg
dHlwZWRlZiBmbG9hdCBHQzNEZmxvYXQ7CiB0eXBlZGVmIGZsb2F0IEdDM0RjbGFtcGY7CiB0eXBl
ZGVmIHNpZ25lZCBsb25nIGludCBHQzNEaW50cHRyOwogdHlwZWRlZiBzaWduZWQgbG9uZyBpbnQg
R0MzRHNpemVpcHRyOwordHlwZWRlZiBjaGFyIEdDM0RjaGFyOwogCiB0eXBlZGVmIEdDM0R1aW50
IFBsYXRmb3JtM0RPYmplY3Q7CiAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2Nocm9taXVtL0V4dGVuc2lvbnMzRENocm9taXVtLmgKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vRXh0ZW5zaW9uczNEQ2hyb21pdW0u
aAkocmV2aXNpb24gOTc4ODEpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9j
aHJvbWl1bS9FeHRlbnNpb25zM0RDaHJvbWl1bS5oCSh3b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEs
NSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMCBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDExIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTU2LDYgKzU2LDcgQEAg
cHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBkZWxldGVWZXJ0ZXhBcnJheU9FUyhQbGF0Zm9ybTNE
T2JqZWN0KTsKICAgICB2aXJ0dWFsIEdDM0Rib29sZWFuIGlzVmVydGV4QXJyYXlPRVMoUGxhdGZv
cm0zRE9iamVjdCk7CiAgICAgdmlydHVhbCB2b2lkIGJpbmRWZXJ0ZXhBcnJheU9FUyhQbGF0Zm9y
bTNET2JqZWN0KTsKKyAgICB2aXJ0dWFsIFN0cmluZyBnZXRUcmFuc2xhdGVkU2hhZGVyU291cmNl
QU5HTEUoUGxhdGZvcm0zRE9iamVjdCk7CiAKICAgICBlbnVtIHsKICAgICAgICAgLy8gR0xfQ0hS
T01JVU1fbWFwX3N1YiAoZW51bXMgaW5oZXJpdGVkIGZyb20gR0xfQVJCX3ZlcnRleF9idWZmZXJf
b2JqZWN0KQpJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0V4
dGVuc2lvbnMzRE9wZW5HTC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3Mvb3BlbmdsL0V4dGVuc2lvbnMzRE9wZW5HTC5jcHAJKHJldmlzaW9uIDk3ODgx
KQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0V4dGVuc2lvbnMz
RE9wZW5HTC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJp
Z2h0IChDKSAyMDEwIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmln
aHQgKEMpIDIwMTEgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMTkzLDYgKzE5MywxMyBAQCB2b2lkIEV4dGVuc2lvbnMz
RE9wZW5HTDo6YmluZFZlcnRleEFycmF5CiAjZW5kaWYKIH0KIAorU3RyaW5nIEV4dGVuc2lvbnMz
RE9wZW5HTDo6Z2V0VHJhbnNsYXRlZFNoYWRlclNvdXJjZUFOR0xFKFBsYXRmb3JtM0RPYmplY3Qg
c2hhZGVyKQoreworICAgIFVOVVNFRF9QQVJBTShzaGFkZXIpOworICAgIHJldHVybiAiIjsKKyAg
ICAvLyBGSVhNRTogaW1wbGVtZW50IHRoaXMgZnVuY3Rpb24gYW5kIGFkZCBHTF9BTkdMRV90cmFu
c2xhdGVkX3NoYWRlcl9zb3VyY2UgaW4gc3VwcG9ydHMoKS4KK30KKwogfSAvLyBuYW1lc3BhY2Ug
V2ViQ29yZQogCiAjZW5kaWYgLy8gRU5BQkxFKFdFQkdMKQpJbmRleDogU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0V4dGVuc2lvbnMzRE9wZW5HTC5oCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL29wZW5nbC9FeHRlbnNpb25zM0RP
cGVuR0wuaAkocmV2aXNpb24gOTc4ODEpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9vcGVuZ2wvRXh0ZW5zaW9uczNET3BlbkdMLmgJKHdvcmtpbmcgY29weSkKQEAgLTEsNSAr
MSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDEwIEdvb2dsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTEgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtNTAsNiArNTAsNyBA
QCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIGRlbGV0ZVZlcnRleEFycmF5T0VTKFBsYXRmb3Jt
M0RPYmplY3QpOwogICAgIHZpcnR1YWwgR0MzRGJvb2xlYW4gaXNWZXJ0ZXhBcnJheU9FUyhQbGF0
Zm9ybTNET2JqZWN0KTsKICAgICB2aXJ0dWFsIHZvaWQgYmluZFZlcnRleEFycmF5T0VTKFBsYXRm
b3JtM0RPYmplY3QpOworICAgIHZpcnR1YWwgU3RyaW5nIGdldFRyYW5zbGF0ZWRTaGFkZXJTb3Vy
Y2VBTkdMRShQbGF0Zm9ybTNET2JqZWN0KTsKIAogcHJpdmF0ZToKICAgICAvLyBUaGlzIGNsYXNz
IG9ubHkgbmVlZHMgdG8gYmUgaW5zdGFudGlhdGVkIGJ5IEdyYXBoaWNzQ29udGV4dDNEIGltcGxl
bWVudGF0aW9ucy4KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3F0L0V4
dGVuc2lvbnMzRFF0LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9xdC9FeHRlbnNpb25zM0RRdC5jcHAJKHJldmlzaW9uIDk3ODgxKQorKysgU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvcXQvRXh0ZW5zaW9uczNEUXQuY3BwCSh3b3JraW5n
IGNvcHkpCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMCBHb29nbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDExIEdvb2dsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMK
QEAgLTg4LDYgKzg4LDExIEBAIHZvaWQgRXh0ZW5zaW9uczNEUXQ6OmJpbmRWZXJ0ZXhBcnJheU9F
UygKIHsKIH0KIAorU3RyaW5nIEV4dGVuc2lvbnMzRFF0OjpnZXRUcmFuc2xhdGVkU2hhZGVyU291
cmNlQU5HTEUoUGxhdGZvcm0zRE9iamVjdCBzaGFkZXIpCit7CisgICAgcmV0dXJuICIiOworfQor
CiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKICNlbmRpZiAvLyBFTkFCTEUoV0VCR0wpCkluZGV4
OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9xdC9FeHRlbnNpb25zM0RRdC5oCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3F0L0V4dGVuc2lv
bnMzRFF0LmgJKHJldmlzaW9uIDk3ODgxKQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvcXQvRXh0ZW5zaW9uczNEUXQuaAkod29ya2luZyBjb3B5KQpAQCAtMSw1ICsxLDUgQEAK
IC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTAgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KKyAqIENvcHlyaWdodCAoQykgMjAxMSBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC00NSw2ICs0NSw3IEBAIHB1Ymxp
YzoKICAgICB2aXJ0dWFsIHZvaWQgZGVsZXRlVmVydGV4QXJyYXlPRVMoUGxhdGZvcm0zRE9iamVj
dCk7CiAgICAgdmlydHVhbCBHQzNEYm9vbGVhbiBpc1ZlcnRleEFycmF5T0VTKFBsYXRmb3JtM0RP
YmplY3QpOwogICAgIHZpcnR1YWwgdm9pZCBiaW5kVmVydGV4QXJyYXlPRVMoUGxhdGZvcm0zRE9i
amVjdCk7CisgICAgdmlydHVhbCBTdHJpbmcgZ2V0VHJhbnNsYXRlZFNoYWRlclNvdXJjZUFOR0xF
KFBsYXRmb3JtM0RPYmplY3QpOwogCiBwcml2YXRlOgogICAgIC8vIFRoaXMgY2xhc3Mgb25seSBu
ZWVkcyB0byBiZSBpbnN0YW50aWF0ZWQgYnkgR3JhcGhpY3NDb250ZXh0M0QgaW1wbGVtZW50YXRp
b25zLgpJbmRleDogU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cJKHJldmlzaW9uIDk3ODgxKQorKysg
U291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyAr
MSwxNyBAQAorMjAxMS0xMC0xNCAgWmhlbnlhbyBNbyAgPHptb0Bnb29nbGUuY29tPgorCisgICAg
ICAgIEltcGxlbWVudCBXRUJHTF9kZWJ1Z19zaGFkZXJzIGFuZCBXRUJHTF9kZWJ1Z19yZW5kZXJl
cl9pbmZvIGV4dGVuc2lvbnMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTcwMDc3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgKiBwdWJsaWMvV2ViR3JhcGhpY3NDb250ZXh0M0QuaDogQWRkZWQgc3VwcG9ydCBm
b3IgZ2V0VHJhbnNsYXRlZFNoYWRlclNvdXJjZUFOR0xFLgorICAgICAgICAoV2ViS2l0OjpXZWJH
cmFwaGljc0NvbnRleHQzRDo6Z2V0VHJhbnNsYXRlZFNoYWRlclNvdXJjZUFOR0xFKToKKyAgICAg
ICAgKiBzcmMvRXh0ZW5zaW9uczNEQ2hyb21pdW0uY3BwOiBEaXR0by4KKyAgICAgICAgKFdlYkNv
cmU6OkV4dGVuc2lvbnMzRENocm9taXVtOjpnZXRUcmFuc2xhdGVkU2hhZGVyU291cmNlQU5HTEUp
OgorICAgICAgICAqIHNyYy9HcmFwaGljc0NvbnRleHQzRENocm9taXVtLmNwcDogRGl0dG8uCisg
ICAgICAgICogc3JjL0dyYXBoaWNzQ29udGV4dDNEUHJpdmF0ZS5oOiBEaXR0by4KKwogMjAxMS0x
MC0xOSAgQW5kcmV5IEtvc3lha292ICA8Y2FzZXFAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFdl
YiBJbnNwZWN0b3I6IG1ha2UgZXh0ZW5zaW9uIHRlc3RzIHBhc3Mgb24gY2hyb21pdW0KSW5kZXg6
IFNvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYkdyYXBoaWNzQ29udGV4dDNELmgKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViR3JhcGhpY3NDb250
ZXh0M0QuaAkocmV2aXNpb24gOTc4ODEpCisrKyBTb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1Ymxp
Yy9XZWJHcmFwaGljc0NvbnRleHQzRC5oCSh3b3JraW5nIGNvcHkpCkBAIC0zNjUsNiArMzY1LDEw
IEBAIHB1YmxpYzoKICAgICAvLyBzdGF0ZSBpcyBzdGlja3ksIHJhdGhlciB0aGFuIHJlcG9ydGVk
IG9ubHkgb25jZS4KICAgICB2aXJ0dWFsIFdHQzNEZW51bSBnZXRHcmFwaGljc1Jlc2V0U3RhdHVz
QVJCKCkgeyByZXR1cm4gMDsgLyogR0xfTk9fRVJST1IgKi8gfQogCisgICAgLy8gRklYTUU6IG1h
a2UgdGhpcyBmdW5jdGlvbiBwdXJlIHZpcnR1YWwgb25jZSBpdCBpcyBpbXBsZW1lbnRlZCBpbgor
ICAgIC8vIGJvdGggY29tbWFuZCBidWZmZXIgcG9ydCBhbmQgaW4tcHJvY2VzcyBwb3J0LgorICAg
IHZpcnR1YWwgV2ViU3RyaW5nIGdldFRyYW5zbGF0ZWRTaGFkZXJTb3VyY2VBTkdMRShXZWJHTElk
IHNoYWRlcikgeyByZXR1cm4gV2ViU3RyaW5nKCk7IH0KKwogI2lmIFdFQktJVF9VU0lOR19TS0lB
CiAgICAgR3JHTEludGVyZmFjZSogY3JlYXRlR3JHTEludGVyZmFjZSgpOwogI2VuZGlmCkluZGV4
OiBTb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9FeHRlbnNpb25zM0RDaHJvbWl1bS5jcHAKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvRXh0ZW5zaW9uczNEQ2hyb21p
dW0uY3BwCShyZXZpc2lvbiA5Nzg4MSkKKysrIFNvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0V4
dGVuc2lvbnMzRENocm9taXVtLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTE1LDYgKzExNSwxMSBA
QCB2b2lkIEV4dGVuc2lvbnMzRENocm9taXVtOjpiaW5kVmVydGV4QXJyCiB7CiB9CiAKK1N0cmlu
ZyBFeHRlbnNpb25zM0RDaHJvbWl1bTo6Z2V0VHJhbnNsYXRlZFNoYWRlclNvdXJjZUFOR0xFKFBs
YXRmb3JtM0RPYmplY3Qgc2hhZGVyKQoreworICAgIHJldHVybiBtX3ByaXZhdGUtPmdldFRyYW5z
bGF0ZWRTaGFkZXJTb3VyY2VBTkdMRShzaGFkZXIpOworfQorCiB2b2lkIEV4dGVuc2lvbnMzRENo
cm9taXVtOjpzZXRTd2FwQnVmZmVyc0NvbXBsZXRlQ2FsbGJhY2tDSFJPTUlVTShQYXNzT3duUHRy
PFN3YXBCdWZmZXJzQ29tcGxldGVDYWxsYmFja0NIUk9NSVVNPiBjYWxsYmFjaykKIHsKICAgICBt
X3ByaXZhdGUtPnNldFN3YXBCdWZmZXJzQ29tcGxldGVDYWxsYmFja0NIUk9NSVVNKGNhbGxiYWNr
KTsKSW5kZXg6IFNvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0dyYXBoaWNzQ29udGV4dDNEQ2hy
b21pdW0uY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0dyYXBo
aWNzQ29udGV4dDNEQ2hyb21pdW0uY3BwCShyZXZpc2lvbiA5Nzg4MSkKKysrIFNvdXJjZS9XZWJL
aXQvY2hyb21pdW0vc3JjL0dyYXBoaWNzQ29udGV4dDNEQ2hyb21pdW0uY3BwCSh3b3JraW5nIGNv
cHkpCkBAIC04ODcsNiArODg3LDggQEAgREVMRUdBVEVfVE9fSU1QTF81KHJlbmRlcmJ1ZmZlclN0
b3JhZ2VNdQogREVMRUdBVEVfVE9fSU1QTChyYXRlTGltaXRPZmZzY3JlZW5Db250ZXh0Q0hST01J
VU0pCiBERUxFR0FURV9UT19JTVBMX1IoZ2V0R3JhcGhpY3NSZXNldFN0YXR1c0FSQiwgR0MzRGVu
dW0pCiAKK0RFTEVHQVRFX1RPX0lNUExfMVIoZ2V0VHJhbnNsYXRlZFNoYWRlclNvdXJjZUFOR0xF
LCBQbGF0Zm9ybTNET2JqZWN0LCBTdHJpbmcpCisKIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogLy8gR3JhcGhp
Y3NDb250ZXh0M0QKIC8vCkluZGV4OiBTb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9HcmFwaGlj
c0NvbnRleHQzRFByaXZhdGUuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L2Nocm9taXVt
L3NyYy9HcmFwaGljc0NvbnRleHQzRFByaXZhdGUuaAkocmV2aXNpb24gOTc4ODEpCisrKyBTb3Vy
Y2UvV2ViS2l0L2Nocm9taXVtL3NyYy9HcmFwaGljc0NvbnRleHQzRFByaXZhdGUuaAkod29ya2lu
ZyBjb3B5KQpAQCAtMzAzLDYgKzMwMyw5IEBAIHB1YmxpYzoKICAgICAvLyBHTF9BUkJfcm9idXN0
bmVzcwogICAgIEdDM0RlbnVtIGdldEdyYXBoaWNzUmVzZXRTdGF0dXNBUkIoKTsKIAorICAgIC8v
IEdMX0FOR0xFX3RyYW5zbGF0ZWRfc2hhZGVyX3NvdXJjZQorICAgIFN0cmluZyBnZXRUcmFuc2xh
dGVkU2hhZGVyU291cmNlQU5HTEUoUGxhdGZvcm0zRE9iamVjdCBzaGFkZXIpOworCiBwcml2YXRl
OgogICAgIEdyYXBoaWNzQ29udGV4dDNEUHJpdmF0ZShXZWJLaXQ6OldlYlZpZXdJbXBsKiwgUGFz
c093blB0cjxXZWJLaXQ6OldlYkdyYXBoaWNzQ29udGV4dDNEPiwgR3JhcGhpY3NDb250ZXh0M0Q6
OkF0dHJpYnV0ZXMpOwogCg==
</data>
<flag name="review"
          id="109572"
          type_id="1"
          status="+"
          setter="kbr"
    />
          </attachment>
      

    </bug>

</bugzilla>