<?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>79482</bug_id>
          
          <creation_ts>2012-02-24 05:42:42 -0800</creation_ts>
          <short_desc>[WK2] Implement WebChromeClient::addMessageToConsole()</short_desc>
          <delta_ts>2013-01-04 00:52:51 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebKit2</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>PC</rep_platform>
          <op_sys>Linux</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>WONTFIX</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>79918</blocked>
    
    <blocked>101548</blocked>
    
    <blocked>102940</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Carlos Garcia Campos">cgarcia</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>abarth</cc>
    
    <cc>abecsi</cc>
    
    <cc>andersca</cc>
    
    <cc>ap</cc>
    
    <cc>cmarcelo</cc>
    
    <cc>gustavo</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>joone</cc>
    
    <cc>menard</cc>
    
    <cc>pnormand</cc>
    
    <cc>rakuco</cc>
    
    <cc>sam</cc>
    
    <cc>webkit.review.bot</cc>
    
    <cc>zoltan</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>564245</commentid>
    <comment_count>0</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2012-02-24 05:42:42 -0800</bug_when>
    <thetext>It&apos;s currently unimplemented. It will be useful to get information about exceptions and any other messages sent to the javascript console.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>564621</commentid>
    <comment_count>1</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2012-02-24 14:03:43 -0800</bug_when>
    <thetext>This seems to work on Mac. Are only some platform specific bits unimplemented?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>564916</commentid>
    <comment_count>2</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2012-02-25 01:59:32 -0800</bug_when>
    <thetext>What do you mean by &quot;work&quot;? I guess mac uses injected bundle API then. Web process doesn&apos;t notify the ui process about messages sent to the javascript console, so there&apos;s no callback for this in the UIClient. 
See http://trac.webkit.org/browser/trunk/Source/WebKit2/WebProcess/WebCoreSupport/WebChromeClient.cpp#L263

So, what I&apos;m requesting is a DidAddMessageToConsole message sent to the UI process instead of the notImplemented(); And a callback in the UIClient to be able to handle messages from the UI process. I&apos;ll write the patch if someone confirms this is something that we want.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>567635</commentid>
    <comment_count>3</comment_count>
      <attachid>129454</attachid>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2012-02-29 08:14:21 -0800</bug_when>
    <thetext>Created attachment 129454
Patch

I haven&apos;t updated the project.pbxproj because I have no idea how to generate the fileRef of new files.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>584228</commentid>
    <comment_count>4</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2012-03-21 09:37:08 -0700</bug_when>
    <thetext>Could anybody tell me how to add new files to xcode project files, so that I can fix this patch to work on mac too?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>584272</commentid>
    <comment_count>5</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-03-21 10:11:10 -0700</bug_when>
    <thetext>(In reply to comment #4)
&gt; Could anybody tell me how to add new files to xcode project files, so that I can fix this patch to work on mac too?

Unfortunately, you need to use Xcode itself.  If you don&apos;t have a Mac, there are some Python scripts you can find that might be able to edit the file.  I think there&apos;s one called xcode-bodge that used to be used by the Chromium project.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>585260</commentid>
    <comment_count>6</comment_count>
      <attachid>133259</attachid>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2012-03-22 07:38:02 -0700</bug_when>
    <thetext>Created attachment 133259
Updated patch to add new files to xcode too

Rebased to current git master and added new files to xcode too</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>585265</commentid>
    <comment_count>7</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2012-03-22 07:41:29 -0700</bug_when>
    <thetext>(In reply to comment #5)
&gt; (In reply to comment #4)
&gt; &gt; Could anybody tell me how to add new files to xcode project files, so that I can fix this patch to work on mac too?
&gt; 
&gt; Unfortunately, you need to use Xcode itself.  If you don&apos;t have a Mac, there are some Python scripts you can find that might be able to edit the file.  I think there&apos;s one called xcode-bodge that used to be used by the Chromium project.

Thanks!, I used xcodebodge in the end, I hope it works.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>585290</commentid>
    <comment_count>8</comment_count>
      <attachid>133259</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2012-03-22 08:05:47 -0700</bug_when>
    <thetext>Comment on attachment 133259
Updated patch to add new files to xcode too

Attachment 133259 did not pass win-ews (win):
Output: http://queues.webkit.org/results/12114043</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>585293</commentid>
    <comment_count>9</comment_count>
      <attachid>133259</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2012-03-22 08:06:50 -0700</bug_when>
    <thetext>Comment on attachment 133259
Updated patch to add new files to xcode too

Attachment 133259 did not pass mac-ews (mac):
Output: http://queues.webkit.org/results/12117042</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>585301</commentid>
    <comment_count>10</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2012-03-22 08:11:01 -0700</bug_when>
    <thetext>It seems it didn&apos;t work :-(, any idea what&apos;s wrong?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>591071</commentid>
    <comment_count>11</comment_count>
      <attachid>134553</attachid>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2012-03-29 05:20:14 -0700</bug_when>
    <thetext>Created attachment 134553
Another attempt to fix mac build

This time I added the files to WebKit2 and WebProcess targets, I don&apos;t know if it&apos;s enough or even correct.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>591083</commentid>
    <comment_count>12</comment_count>
      <attachid>134553</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2012-03-29 05:38:06 -0700</bug_when>
    <thetext>Comment on attachment 134553
Another attempt to fix mac build

Attachment 134553 did not pass win-ews (win):
Output: http://queues.webkit.org/results/12193281</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>591088</commentid>
    <comment_count>13</comment_count>
      <attachid>134553</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2012-03-29 05:44:46 -0700</bug_when>
    <thetext>Comment on attachment 134553
Another attempt to fix mac build

Attachment 134553 did not pass mac-ews (mac):
Output: http://queues.webkit.org/results/12192259</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>592416</commentid>
    <comment_count>14</comment_count>
    <who name="Gustavo Noronha (kov)">gustavo</who>
    <bug_when>2012-03-30 12:48:34 -0700</bug_when>
    <thetext>Looking at the xcode project file and comparing to WKBase, it looks like the header is missing from the &apos;in Headers&apos; lists:

BCDDB317124EBD130048D13C /* WKBase.h in Headers */,

BCDDB317124EBD130048D13C /* WKBase.h in Headers */ = {isa = PBXBuildFile; fileRef = BCDDB316124EBD130048D13C /* WKBase.h */; settings = {ATTRIBUTES = (Public, ); }; };

Seems like this is what&apos;s missing for the new header.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>593136</commentid>
    <comment_count>15</comment_count>
    <who name="Sam Weinig">sam</who>
    <bug_when>2012-04-01 19:33:53 -0700</bug_when>
    <thetext>Is this actually used by people?  I would rather not add additional client APIs if no one wants this.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>593195</commentid>
    <comment_count>16</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2012-04-01 23:30:56 -0700</bug_when>
    <thetext>(In reply to comment #15)
&gt; Is this actually used by people?  I would rather not add additional client APIs if no one wants this.

Yes, at least people who use the GTK+ port, I don&apos;t know other ports users though.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>594204</commentid>
    <comment_count>17</comment_count>
      <attachid>134553</attachid>
    <who name="Sam Weinig">sam</who>
    <bug_when>2012-04-02 22:26:40 -0700</bug_when>
    <thetext>Comment on attachment 134553
Another attempt to fix mac build

If you are going to add new API, please add API tests to TestWebKitAPI as well.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>594591</commentid>
    <comment_count>18</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2012-04-03 10:13:33 -0700</bug_when>
    <thetext>(In reply to comment #17)
&gt; (From update of attachment 134553 [details])
&gt; If you are going to add new API, please add API tests to TestWebKitAPI as well.

Fair enough. Patch attached to bug #79918 includes unit tests for the GTK+ port API that wraps this one, fwiw. In any case, I&apos;ll add a test to TestWebKitAPI too, but we don&apos;t use/build it, so it won&apos;t be trivial thing.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>607762</commentid>
    <comment_count>19</comment_count>
      <attachid>138366</attachid>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2012-04-23 09:48:17 -0700</bug_when>
    <thetext>Created attachment 138366
Patch including unit tests

I still haven&apos;t figured out how to add new files to xcodeproj files, and I don&apos;t have a mac, so it will still fail to build for mac and win.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>607779</commentid>
    <comment_count>20</comment_count>
      <attachid>138366</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2012-04-23 10:10:44 -0700</bug_when>
    <thetext>Comment on attachment 138366
Patch including unit tests

Attachment 138366 did not pass win-ews (win):
Output: http://queues.webkit.org/results/12494022</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>607801</commentid>
    <comment_count>21</comment_count>
      <attachid>138366</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2012-04-23 10:27:05 -0700</bug_when>
    <thetext>Comment on attachment 138366
Patch including unit tests

Attachment 138366 did not pass mac-ews (mac):
Output: http://queues.webkit.org/results/12511241</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>764154</commentid>
    <comment_count>22</comment_count>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2012-11-12 01:47:00 -0800</bug_when>
    <thetext>The Qt port might be interested by that feature as well. I heard Joone recently rebased this patch, any news about it?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>765165</commentid>
    <comment_count>23</comment_count>
      <attachid>173804</attachid>
    <who name="Joone Hur">joone</who>
    <bug_when>2012-11-12 20:39:41 -0800</bug_when>
    <thetext>Created attachment 173804
Rebased patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>765169</commentid>
    <comment_count>24</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-11-12 20:43:33 -0800</bug_when>
    <thetext>Attachment 173804 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;Source/WebKit2/CMakeLists.txt&apos;, u&apos;Source/W...&quot; exit_code: 1
Source/WebKit2/WebProcess/WebCoreSupport/WebChromeClient.cpp:267:  Omit int when using unsigned  [runtime/unsigned] [1]
Total errors found: 1 in 22 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>765193</commentid>
    <comment_count>25</comment_count>
      <attachid>173804</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2012-11-12 21:06:08 -0800</bug_when>
    <thetext>Comment on attachment 173804
Rebased patch

Attachment 173804 did not pass win-ews (win):
Output: http://queues.webkit.org/results/14818425</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>765314</commentid>
    <comment_count>26</comment_count>
      <attachid>173804</attachid>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2012-11-12 23:42:34 -0800</bug_when>
    <thetext>Comment on attachment 173804
Rebased patch

The patch adds a new callback to the UI client, so we need to add a new version an update the API traits. I&apos;ll submit a new patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>765441</commentid>
    <comment_count>27</comment_count>
      <attachid>173804</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2012-11-13 03:11:29 -0800</bug_when>
    <thetext>Comment on attachment 173804
Rebased patch

Attachment 173804 did not pass mac-ews (mac):
Output: http://queues.webkit.org/results/14821521</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>766686</commentid>
    <comment_count>28</comment_count>
      <attachid>174119</attachid>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2012-11-14 02:45:54 -0800</bug_when>
    <thetext>Created attachment 174119
Updated patch

Added new interface version to UI client and update API traits. Also added constructors to ConsoleMessage to simplify the code. I haven&apos;t included the xcode changes because they don&apos;t work anyway.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>766695</commentid>
    <comment_count>29</comment_count>
      <attachid>174119</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2012-11-14 03:04:54 -0800</bug_when>
    <thetext>Comment on attachment 174119
Updated patch

Attachment 174119 did not pass win-ews (win):
Output: http://queues.webkit.org/results/14844023</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>771787</commentid>
    <comment_count>30</comment_count>
    <who name="Joone Hur">joone</who>
    <bug_when>2012-11-20 06:00:17 -0800</bug_when>
    <thetext>There is a build break in the Mac port as follows:

Volumes/Data/EWS/WebKit/WebKitBuild/Release/DerivedSources/WebKit2/WebPageProxyMessages.h:85:5: error: class &apos;ConsoleMessage&apos; was previously declared as a struct [-Werror,-Wmismatched-tags]
    class ConsoleMessage;
    ^
/Volumes/Data/EWS/WebKit/Source/WebKit2/Shared/ConsoleMessage.h:39:8: note: previous use is here
struct ConsoleMessage {
       ^
/Volumes/Data/EWS/WebKit/WebKitBuild/Release/DerivedSources/WebKit2/WebPageProxyMessages.h:85:5: note: did you mean struct here?
    class ConsoleMessage;
    ^~~~~
    struct
1 error generated.

Why is ConsoleMessage added to WebPageProxyMessages.h as forward declaration of a class?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>771902</commentid>
    <comment_count>31</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2012-11-20 08:46:32 -0800</bug_when>
    <thetext>We need to add WebKit::ConsoleMessage to the list of structs in struct_or_class function (Source/WebKit2/Scripts/webkit2/messages.py)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>772743</commentid>
    <comment_count>32</comment_count>
      <attachid>175402</attachid>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2012-11-21 03:18:43 -0800</bug_when>
    <thetext>Created attachment 175402
Updated patch

Added WebKit::ConsoleMessage to the list of structs</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>772767</commentid>
    <comment_count>33</comment_count>
      <attachid>175402</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2012-11-21 03:40:47 -0800</bug_when>
    <thetext>Comment on attachment 175402
Updated patch

Attachment 175402 did not pass win-ews (win):
Output: http://queues.webkit.org/results/14911982</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>774723</commentid>
    <comment_count>34</comment_count>
    <who name="Sam Weinig">sam</who>
    <bug_when>2012-11-23 16:10:26 -0800</bug_when>
    <thetext>We purposely left this out, the WebInspector has superseded the need for this callback.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>774978</commentid>
    <comment_count>35</comment_count>
    <who name="Joone Hur">joone</who>
    <bug_when>2012-11-25 07:37:29 -0800</bug_when>
    <thetext>(In reply to comment #34)
&gt; We purposely left this out, the WebInspector has superseded the need for this callback.

However, there are webview clients that don&apos;t use the WebInspector. In this case, this callback is very useful.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>775003</commentid>
    <comment_count>36</comment_count>
    <who name="Sam Weinig">sam</who>
    <bug_when>2012-11-25 10:09:33 -0800</bug_when>
    <thetext>(In reply to comment #35)
&gt; (In reply to comment #34)
&gt; &gt; We purposely left this out, the WebInspector has superseded the need for this callback.
&gt; 
&gt; However, there are webview clients that don&apos;t use the WebInspector. In this case, this callback is very useful.

For those rare cases, the bundle provides a WKBundlePageWillAddMessageToConsole callback.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>800030</commentid>
    <comment_count>37</comment_count>
      <attachid>175402</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2013-01-04 00:52:51 -0800</bug_when>
    <thetext>Comment on attachment 175402
Updated patch

Cleared review? from attachment 175402 so that this bug does not appear in http://webkit.org/pending-review.  If you would like this patch reviewed, please attach it to a new bug (or re-open this bug before marking it for review again).</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>129454</attachid>
            <date>2012-02-29 08:14:21 -0800</date>
            <delta_ts>2012-03-22 07:38:02 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>wk2-add-message-to-console.diff</filename>
            <type>text/plain</type>
            <size>24562</size>
            <attacher name="Carlos Garcia Campos">cgarcia</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0No
YW5nZUxvZwppbmRleCA0ZDI2ODEwLi43OGQzNTZjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNDEg
QEAKKzIwMTItMDItMjkgIENhcmxvcyBHYXJjaWEgQ2FtcG9zICA8Y2dhcmNpYUBpZ2FsaWEuY29t
PgorCisgICAgICAgIFtXSzJdIEltcGxlbWVudCBXZWJDaHJvbWVDbGllbnQ6OmFkZE1lc3NhZ2VU
b0NvbnNvbGUoKQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9Nzk0ODIKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICBTZW5kIGEgQWRkTWVzc2FnZVRvQ29uc29sZSBtZXNzYWdlIHRvIHRoZSBVSSBwcm9jZXNzIGFu
ZCBhZGQKKyAgICAgICAgYWRkTWVzc2FnZVRvQ29uc29sZSBjYWxsYmFjayB0byBVSSBjbGllbnQu
CisKKyAgICAgICAgKiBDTWFrZUxpc3RzLnR4dDoKKyAgICAgICAgKiBHTlVtYWtlZmlsZS5hbToK
KyAgICAgICAgKiBTaGFyZWQvQVBJL2MvV0tDb25zb2xlVHlwZXMuaDogQWRkZWQuCisgICAgICAg
ICogU2hhcmVkL0FQSS9jL1dLU2hhcmVkQVBJQ2FzdC5oOgorICAgICAgICAoV2ViS2l0Ojp0b0FQ
SSk6IENvbnZlcnQgV2ViQ29yZSBjb25zb2xlIG1lc3NhZ2UgdHlwZXMgdG8gV2ViS2l0MgorICAg
ICAgICB0eXBlcy4KKyAgICAgICAgKiBTaGFyZWQvQ29uc29sZU1lc3NhZ2UuY3BwOiBBZGRlZC4K
KyAgICAgICAgKFdlYktpdCk6CisgICAgICAgIChXZWJLaXQ6OkNvbnNvbGVNZXNzYWdlOjplbmNv
ZGUpOgorICAgICAgICAoV2ViS2l0OjpDb25zb2xlTWVzc2FnZTo6ZGVjb2RlKToKKyAgICAgICAg
KiBTaGFyZWQvQ29uc29sZU1lc3NhZ2UuaDogQWRkZWQuCisgICAgICAgICogVGFyZ2V0LnByaToK
KyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0MvV0tQYWdlLmg6CisgICAgICAgICogVUlQcm9jZXNz
L1dlYlBhZ2VQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6YWRkTWVz
c2FnZVRvQ29uc29sZSk6IENhbGwKKyAgICAgICAgV2ViVUlDbGllbnQ6OmFkZE1lc3NhZ2VUb0Nv
bnNvbGUoKS4KKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5Lmg6CisgICAgICAgICog
VUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5tZXNzYWdlcy5pbjogQWRkIG5ldyBtZXNzYWdlCisgICAg
ICAgIEFkZE1lc3NhZ2VUb0NvbnNvbGUuCisgICAgICAgICogVUlQcm9jZXNzL1dlYlVJQ2xpZW50
LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViVUlDbGllbnQ6OmFkZE1lc3NhZ2VUb0NvbnNvbGUp
OiBDYWxsCisgICAgICAgIGFkZE1lc3NhZ2VUb0NvbnNvbGUgY2FsbGJhY2sgaWYgcHJlc2VudC4K
KyAgICAgICAgKiBVSVByb2Nlc3MvV2ViVUlDbGllbnQuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNz
L1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5jcHA6CisgICAgICAgIChXZWJLaXQ6Oldl
YkNocm9tZUNsaWVudDo6YWRkTWVzc2FnZVRvQ29uc29sZSk6IFNlbmQKKyAgICAgICAgQWRkTWVz
c2FnZVRvQ29uc29sZSBtZXNzYWdlIHRvIHRoZSBVSSBwcm9jZXNzLgorICAgICAgICAqIHdpbi9X
ZWJLaXQyLnZjcHJvajoKKwogMjAxMi0wMi0yOCAgU2ltb24gRnJhc2VyICA8c2ltb24uZnJhc2Vy
QGFwcGxlLmNvbT4KIAogICAgICAgICBVcGRhdGUgV2ViS2l0U3lzdGVtSW50ZXJmYWNlLgpkaWZm
IC0tZ2l0IGEvVG9vbHMvQ2hhbmdlTG9nIGIvVG9vbHMvQ2hhbmdlTG9nCmluZGV4IGMxOTZhNjku
Ljg4ZjZkMTYgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0NoYW5nZUxvZworKysgYi9Ub29scy9DaGFuZ2VM
b2cKQEAgLTEsMyArMSwxNyBAQAorMjAxMi0wMi0yOSAgQ2FybG9zIEdhcmNpYSBDYW1wb3MgIDxj
Z2FyY2lhQGlnYWxpYS5jb20+CisKKyAgICAgICAgW1dLMl0gSW1wbGVtZW50IFdlYkNocm9tZUNs
aWVudDo6YWRkTWVzc2FnZVRvQ29uc29sZSgpCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD03OTQ4MgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgICogTWluaUJyb3dzZXIvbWFjL0Jyb3dzZXJXaW5kb3dDb250cm9s
bGVyLm06CisgICAgICAgICgtW0Jyb3dzZXJXaW5kb3dDb250cm9sbGVyIGF3YWtlRnJvbU5pYl0p
OiBBZGQgZW1wdHkKKyAgICAgICAgYWRkTWVzc2FnZVRvQ29uc29sZSBjYWxsYmFjayB0byBVSSBj
bGllbnQgc3RydWN0LgorICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIu
Y3BwOgorICAgICAgICAoV1RSOjpUZXN0Q29udHJvbGxlcjo6Y3JlYXRlT3RoZXJQYWdlKTogRGl0
dG8uCisgICAgICAgIChXVFI6OlRlc3RDb250cm9sbGVyOjppbml0aWFsaXplKTogRGl0dG8uCisK
IDIwMTItMDItMjggIEx1Y2FzIEZvcnNjaGxlciAgPGxmb3JzY2hsZXJAYXBwbGUuY29tPgogCiAg
ICAgICAgIEZpeCBhIHR5cG8gaW4gY29uZmlnLmpzb24KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQyL0NNYWtlTGlzdHMudHh0IGIvU291cmNlL1dlYktpdDIvQ01ha2VMaXN0cy50eHQKaW5kZXgg
MGRjODM2Yy4uMzk4MjViYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ01ha2VMaXN0cy50
eHQKKysrIGIvU291cmNlL1dlYktpdDIvQ01ha2VMaXN0cy50eHQKQEAgLTExNSw2ICsxMTUsNyBA
QCBTRVQoV2ViS2l0Ml9TT1VSQ0VTCiAgICAgU2hhcmVkL0FQSUNsaWVudFRyYWl0cy5jcHAKICAg
ICBTaGFyZWQvQVBJT2JqZWN0LmNwcAogICAgIFNoYXJlZC9DaGlsZFByb2Nlc3MuY3BwCisgICAg
U2hhcmVkL0NvbnNvbGVNZXNzYWdlLmNwcAogICAgIFNoYXJlZC9EaWN0aW9uYXJ5UG9wdXBJbmZv
LmNwcAogICAgIFNoYXJlZC9FZGl0b3JTdGF0ZS5jcHAKICAgICBTaGFyZWQvRm9udEluZm8uY3Bw
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9HTlVtYWtlZmlsZS5hbSBiL1NvdXJjZS9XZWJL
aXQyL0dOVW1ha2VmaWxlLmFtCmluZGV4IDBlMTM3MTUuLjEzNjdjOWIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQyL0dOVW1ha2VmaWxlLmFtCisrKyBiL1NvdXJjZS9XZWJLaXQyL0dOVW1ha2Vm
aWxlLmFtCkBAIC01LDYgKzUsNyBAQCBsaWJ3ZWJraXQyZ3RrX0BXRUJLSVRHVEtfQVBJX01BSk9S
X1ZFUlNJT05AX0BXRUJLSVRHVEtfQVBJX01JTk9SX1ZFUlNJT05AX2xhX0hFQQogCSQoV2ViS2l0
MikvU2hhcmVkL0FQSS9jL1dLQmFzZS5oIFwKIAkkKFdlYktpdDIpL1NoYXJlZC9BUEkvYy9XS0Nl
cnRpZmljYXRlSW5mby5oIFwKIAkkKFdlYktpdDIpL1NoYXJlZC9BUEkvYy9XS0Nvbm5lY3Rpb25S
ZWYuaCBcCisJJChXZWJLaXQyKS9TaGFyZWQvQVBJL2MvV0tDb25zb2xlVHlwZXMuaCBcCiAJJChX
ZWJLaXQyKS9TaGFyZWQvQVBJL2MvV0tDb250ZXh0TWVudUl0ZW0uaCBcCiAJJChXZWJLaXQyKS9T
aGFyZWQvQVBJL2MvV0tDb250ZXh0TWVudUl0ZW1UeXBlcy5oIFwKIAkkKFdlYktpdDIpL1NoYXJl
ZC9BUEkvYy9XS0RhdGEuaCBcCkBAIC0yNjMsNiArMjY0LDcgQEAgd2Via2l0Ml9zb3VyY2VzICs9
IFwKIAlTb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQVBJL2MvV0tDZXJ0aWZpY2F0ZUluZm8uaCBcCiAJ
U291cmNlL1dlYktpdDIvU2hhcmVkL0FQSS9jL1dLQ29ubmVjdGlvblJlZi5jcHAgXAogCVNvdXJj
ZS9XZWJLaXQyL1NoYXJlZC9BUEkvYy9XS0Nvbm5lY3Rpb25SZWYuaCBcCisJU291cmNlL1dlYktp
dDIvU2hhcmVkL0FQSS9jL1dLQ29uc29sZVR5cGVzLmggXAogCVNvdXJjZS9XZWJLaXQyL1NoYXJl
ZC9BUEkvYy9XS0NvbnRleHRNZW51SXRlbS5jcHAgXAogCVNvdXJjZS9XZWJLaXQyL1NoYXJlZC9B
UEkvYy9XS0NvbnRleHRNZW51SXRlbS5oIFwKIAlTb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQVBJL2Mv
V0tDb250ZXh0TWVudUl0ZW1UeXBlcy5oIFwKQEAgLTMxNCw2ICszMTYsOCBAQCB3ZWJraXQyX3Nv
dXJjZXMgKz0gXAogCVNvdXJjZS9XZWJLaXQyL1NoYXJlZC9DaGlsZFByb2Nlc3MuY3BwIFwKIAlT
b3VyY2UvV2ViS2l0Mi9TaGFyZWQvQ2hpbGRQcm9jZXNzLmggXAogCVNvdXJjZS9XZWJLaXQyL1No
YXJlZC9Db21tYW5kTGluZS5oIFwKKwlTb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQ29uc29sZU1lc3Nh
Z2UuY3BwIFwKKwlTb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQ29uc29sZU1lc3NhZ2UuaCBcCiAJU291
cmNlL1dlYktpdDIvU2hhcmVkL0NvcmVJUENTdXBwb3J0L0luamVjdGVkQnVuZGxlTWVzc2FnZUtp
bmRzLmggXAogCVNvdXJjZS9XZWJLaXQyL1NoYXJlZC9Db3JlSVBDU3VwcG9ydC9XZWJDb25uZWN0
aW9uTWVzc2FnZUtpbmRzLmggXAogCVNvdXJjZS9XZWJLaXQyL1NoYXJlZC9Db3JlSVBDU3VwcG9y
dC9XZWJDb250ZXh0TWVzc2FnZUtpbmRzLmggXApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIv
U2hhcmVkL0FQSS9jL1dLQ29uc29sZVR5cGVzLmggYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQVBJ
L2MvV0tDb25zb2xlVHlwZXMuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5m
NWZmODI0Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL0FQSS9jL1dL
Q29uc29sZVR5cGVzLmgKQEAgLTAsMCArMSw1NiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAx
MiBJZ2FsaWEgUy5MLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0
OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5h
cnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4g
dGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQg
d2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQg
QlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkg
RVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJ
VE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8g
RVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUg
Rk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlks
IE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9T
UyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04p
IEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJ
TgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdM
SUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVT
RSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElU
WSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVmIFdLQ29uc29sZVR5cGVzX2gKKyNkZWZp
bmUgV0tDb25zb2xlVHlwZXNfaAorCisjaWZkZWYgX19jcGx1c3BsdXMKK2V4dGVybiAiQyIgewor
I2VuZGlmCisKK2VudW0geworICAgIGtXS01lc3NhZ2VTb3VyY2VIVE1MLAorICAgIGtXS01lc3Nh
Z2VTb3VyY2VYTUwsCisgICAga1dLTWVzc2FnZVNvdXJjZUpTLAorICAgIGtXS01lc3NhZ2VTb3Vy
Y2VOZXR3b3JrLAorICAgIGtXS01lc3NhZ2VTb3VyY2VDb25zb2xlQVBJLAorICAgIGtXS01lc3Nh
Z2VTb3VyY2VPdGhlcgorfTsKK3R5cGVkZWYgdWludDMyX3QgV0tNZXNzYWdlU291cmNlVHlwZTsK
KworZW51bSB7CisgICAga1dLTWVzc2FnZUxldmVsVGlwLAorICAgIGtXS01lc3NhZ2VMZXZlbExv
ZywKKyAgICBrV0tNZXNzYWdlTGV2ZWxXYXJuaW5nLAorICAgIGtXS01lc3NhZ2VMZXZlbEVycm9y
LAorICAgIGtXS01lc3NhZ2VMZXZlbERlYnVnCit9OwordHlwZWRlZiB1aW50MzJfdCBXS01lc3Nh
Z2VMZXZlbFR5cGU7CisKKyNpZmRlZiBfX2NwbHVzcGx1cworfQorI2VuZGlmCisKKyNlbmRpZiAv
KiBXS0NvbnNvbGVUeXBlc19oICovCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQv
QVBJL2MvV0tTaGFyZWRBUElDYXN0LmggYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQVBJL2MvV0tT
aGFyZWRBUElDYXN0LmgKaW5kZXggNWU0YmY2OS4uZTBkMDE4NSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdDIvU2hhcmVkL0FQSS9jL1dLU2hhcmVkQVBJQ2FzdC5oCisrKyBiL1NvdXJjZS9XZWJL
aXQyL1NoYXJlZC9BUEkvYy9XS1NoYXJlZEFQSUNhc3QuaApAQCAtMjksNiArMjksNyBAQAogI2lu
Y2x1ZGUgIkltYWdlT3B0aW9ucy5oIgogI2luY2x1ZGUgIlNhbWVEb2N1bWVudE5hdmlnYXRpb25U
eXBlLmgiCiAjaW5jbHVkZSAiV0tCYXNlLmgiCisjaW5jbHVkZSAiV0tDb25zb2xlVHlwZXMuaCIK
ICNpbmNsdWRlICJXS0NvbnRleHRNZW51SXRlbVR5cGVzLmgiCiAjaW5jbHVkZSAiV0tFdmVudC5o
IgogI2luY2x1ZGUgIldLRmluZE9wdGlvbnMuaCIKQEAgLTQzLDYgKzQ0LDcgQEAKICNpbmNsdWRl
ICJXZWJVUkwuaCIKICNpbmNsdWRlICJXZWJVUkxSZXF1ZXN0LmgiCiAjaW5jbHVkZSAiV2ViVVJM
UmVzcG9uc2UuaCIKKyNpbmNsdWRlIDxXZWJDb3JlL0NvbnNvbGVUeXBlcy5oPgogI2luY2x1ZGUg
PFdlYkNvcmUvQ29udGV4dE1lbnVJdGVtLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9GbG9hdFJlY3Qu
aD4KICNpbmNsdWRlIDxXZWJDb3JlL0ZyYW1lTG9hZGVyVHlwZXMuaD4KQEAgLTc1NCw2ICs3NTYs
NDYgQEAgaW5saW5lIEltYWdlT3B0aW9ucyB0b0ltYWdlT3B0aW9ucyhXS0ltYWdlT3B0aW9ucyB3
a0ltYWdlT3B0aW9ucykKICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8SW1hZ2VPcHRpb25zPihpbWFn
ZU9wdGlvbnMpOwogfQogCitpbmxpbmUgV0tNZXNzYWdlU291cmNlVHlwZSB0b0FQSShXZWJDb3Jl
OjpNZXNzYWdlU291cmNlIHNvdXJjZSkKK3sKKyAgICBzd2l0Y2ggKHNvdXJjZSkgeworICAgIGNh
c2UgV2ViQ29yZTo6SFRNTE1lc3NhZ2VTb3VyY2U6CisgICAgICAgIHJldHVybiBrV0tNZXNzYWdl
U291cmNlSFRNTDsKKyAgICBjYXNlIFdlYkNvcmU6OlhNTE1lc3NhZ2VTb3VyY2U6CisgICAgICAg
IHJldHVybiBrV0tNZXNzYWdlU291cmNlWE1MOworICAgIGNhc2UgV2ViQ29yZTo6SlNNZXNzYWdl
U291cmNlOgorICAgICAgICByZXR1cm4ga1dLTWVzc2FnZVNvdXJjZUpTOworICAgIGNhc2UgV2Vi
Q29yZTo6TmV0d29ya01lc3NhZ2VTb3VyY2U6CisgICAgICAgIHJldHVybiBrV0tNZXNzYWdlU291
cmNlTmV0d29yazsKKyAgICBjYXNlIFdlYkNvcmU6OkNvbnNvbGVBUElNZXNzYWdlU291cmNlOgor
ICAgICAgICByZXR1cm4ga1dLTWVzc2FnZVNvdXJjZUNvbnNvbGVBUEk7CisgICAgY2FzZSBXZWJD
b3JlOjpPdGhlck1lc3NhZ2VTb3VyY2U6CisgICAgICAgIHJldHVybiBrV0tNZXNzYWdlU291cmNl
T3RoZXI7CisgICAgZGVmYXVsdDoKKyAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAg
ICAgIHJldHVybiBrV0tNZXNzYWdlU291cmNlT3RoZXI7CisgICAgfQorfQorCitpbmxpbmUgV0tN
ZXNzYWdlTGV2ZWxUeXBlIHRvQVBJKFdlYkNvcmU6Ok1lc3NhZ2VMZXZlbCBsZXZlbCkKK3sKKyAg
ICBzd2l0Y2ggKGxldmVsKSB7CisgICAgY2FzZSBXZWJDb3JlOjpUaXBNZXNzYWdlTGV2ZWw6Cisg
ICAgICAgIHJldHVybiBrV0tNZXNzYWdlTGV2ZWxUaXA7CisgICAgY2FzZSBXZWJDb3JlOjpMb2dN
ZXNzYWdlTGV2ZWw6CisgICAgICAgIHJldHVybiBrV0tNZXNzYWdlTGV2ZWxMb2c7CisgICAgY2Fz
ZSBXZWJDb3JlOjpXYXJuaW5nTWVzc2FnZUxldmVsOgorICAgICAgICByZXR1cm4ga1dLTWVzc2Fn
ZUxldmVsV2FybmluZzsKKyAgICBjYXNlIFdlYkNvcmU6OkVycm9yTWVzc2FnZUxldmVsOgorICAg
ICAgICByZXR1cm4ga1dLTWVzc2FnZUxldmVsRXJyb3I7CisgICAgY2FzZSBXZWJDb3JlOjpEZWJ1
Z01lc3NhZ2VMZXZlbDoKKyAgICAgICAgcmV0dXJuIGtXS01lc3NhZ2VMZXZlbERlYnVnOworICAg
IGRlZmF1bHQ6CisgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgICAgICByZXR1cm4g
a1dLTWVzc2FnZUxldmVsTG9nOworICAgIH0KK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CiAK
ICNlbmRpZiAvLyBXS1NoYXJlZEFQSUNhc3RfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIv
U2hhcmVkL0NvbnNvbGVNZXNzYWdlLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9Db25zb2xl
TWVzc2FnZS5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNDZiZmIxNAot
LS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9Db25zb2xlTWVzc2FnZS5j
cHAKQEAgLTAsMCArMSw1NCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMiBJZ2FsaWEgUy5M
LgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVk
aXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0
IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBk
b2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlz
dHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5D
LiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJ
TVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhF
IElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEg
UEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwg
QVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJF
Q1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05T
RVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJF
TUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERB
VEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FV
U0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJB
Q1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9U
SEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNP
RlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERB
TUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiQ29uc29sZU1lc3Nh
Z2UuaCIKKworI2luY2x1ZGUgIldlYkNvcmVBcmd1bWVudENvZGVycy5oIgorCituYW1lc3BhY2Ug
V2ViS2l0IHsKKwordm9pZCBDb25zb2xlTWVzc2FnZTo6ZW5jb2RlKENvcmVJUEM6OkFyZ3VtZW50
RW5jb2RlciogZW5jb2RlcikgY29uc3QKK3sKKyAgICBlbmNvZGVyLT5lbmNvZGVFbnVtKHNvdXJj
ZSk7CisgICAgZW5jb2Rlci0+ZW5jb2RlRW51bShsZXZlbCk7CisgICAgZW5jb2Rlci0+ZW5jb2Rl
KG1lc3NhZ2UpOworICAgIGVuY29kZXItPmVuY29kZShsaW5lTnVtYmVyKTsKKyAgICBlbmNvZGVy
LT5lbmNvZGUoc291cmNlSUQpOworfQorCitib29sIENvbnNvbGVNZXNzYWdlOjpkZWNvZGUoQ29y
ZUlQQzo6QXJndW1lbnREZWNvZGVyKiBkZWNvZGVyLCBDb25zb2xlTWVzc2FnZSYgY29uc29sZU1l
c3NhZ2UpCit7CisgICAgaWYgKCFkZWNvZGVyLT5kZWNvZGVFbnVtKGNvbnNvbGVNZXNzYWdlLnNv
dXJjZSkKKyAgICAgICAgfHwgIWRlY29kZXItPmRlY29kZUVudW0oY29uc29sZU1lc3NhZ2UubGV2
ZWwpCisgICAgICAgIHx8ICFkZWNvZGVyLT5kZWNvZGUoY29uc29sZU1lc3NhZ2UubWVzc2FnZSkK
KyAgICAgICAgfHwgIWRlY29kZXItPmRlY29kZShjb25zb2xlTWVzc2FnZS5saW5lTnVtYmVyKQor
ICAgICAgICB8fCAhZGVjb2Rlci0+ZGVjb2RlKGNvbnNvbGVNZXNzYWdlLnNvdXJjZUlEKSkKKyAg
ICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgcmV0dXJuIHRydWU7Cit9CisKK30gLy8gbmFtZXNw
YWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL0NvbnNvbGVNZXNz
YWdlLmggYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQ29uc29sZU1lc3NhZ2UuaApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zOWMyOGNjCi0tLSAvZGV2L251bGwKKysrIGIvU291
cmNlL1dlYktpdDIvU2hhcmVkL0NvbnNvbGVNZXNzYWdlLmgKQEAgLTAsMCArMSw1MiBAQAorLyoK
KyAqIENvcHlyaWdodCAoQykgMjAxMiBJZ2FsaWEgUy5MLgorICoKKyAqIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICog
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBj
b2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJl
ZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhl
ciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMg
U09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBg
YEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBN
RVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBB
UkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJ
QlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFM
LCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBH
T09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lO
RVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9G
IExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9S
IFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4g
QU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQg
T0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVmIENv
bnNvbGVNZXNzYWdlX2gKKyNkZWZpbmUgQ29uc29sZU1lc3NhZ2VfaAorCisjaW5jbHVkZSA8V2Vi
Q29yZS9Db25zb2xlVHlwZXMuaD4KKyNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KKwor
bmFtZXNwYWNlIENvcmVJUEMgeworY2xhc3MgQXJndW1lbnREZWNvZGVyOworY2xhc3MgQXJndW1l
bnRFbmNvZGVyOworfQorCituYW1lc3BhY2UgV2ViS2l0IHsKKworc3RydWN0IENvbnNvbGVNZXNz
YWdlIHsKKyAgICBXZWJDb3JlOjpNZXNzYWdlU291cmNlIHNvdXJjZTsKKyAgICBXZWJDb3JlOjpN
ZXNzYWdlTGV2ZWwgbGV2ZWw7CisgICAgU3RyaW5nIG1lc3NhZ2U7CisgICAgdWludDMyX3QgbGlu
ZU51bWJlcjsKKyAgICBTdHJpbmcgc291cmNlSUQ7CisKKyAgICB2b2lkIGVuY29kZShDb3JlSVBD
OjpBcmd1bWVudEVuY29kZXIqKSBjb25zdDsKKyAgICBzdGF0aWMgYm9vbCBkZWNvZGUoQ29yZUlQ
Qzo6QXJndW1lbnREZWNvZGVyKiwgQ29uc29sZU1lc3NhZ2UmKTsKK307CisKK30gLy8gbmFtZXNw
YWNlIFdlYktpdAorCisjZW5kaWYgLy8gQ29uc29sZU1lc3NhZ2VfaApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdDIvVGFyZ2V0LnByaSBiL1NvdXJjZS9XZWJLaXQyL1RhcmdldC5wcmkKaW5kZXgg
MTRkN2I5OS4uMWIxNmIxNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVGFyZ2V0LnByaQor
KysgYi9Tb3VyY2UvV2ViS2l0Mi9UYXJnZXQucHJpCkBAIC0zOSw2ICszOSw3IEBAIEhFQURFUlMg
Kz0gXAogICAgIFNoYXJlZC9BUEkvYy9XS0Jhc2UuaCBcCiAgICAgU2hhcmVkL0FQSS9jL1dLQ2Vy
dGlmaWNhdGVJbmZvLmggXAogICAgIFNoYXJlZC9BUEkvYy9XS0Nvbm5lY3Rpb25SZWYuaCBcCisg
ICAgU2hhcmVkL0FQSS9jL1dLQ29uc29sZVR5cGVzLmggXAogICAgIFNoYXJlZC9BUEkvYy9XS0Nv
bnRleHRNZW51SXRlbS5oIFwKICAgICBTaGFyZWQvQVBJL2MvV0tDb250ZXh0TWVudUl0ZW1UeXBl
cy5oIFwKICAgICBTaGFyZWQvQVBJL2MvV0tEaWN0aW9uYXJ5LmggXApAQCAtNjQsNiArNjUsNyBA
QCBIRUFERVJTICs9IFwKICAgICBTaGFyZWQvU2hhcmVhYmxlQml0bWFwLmggXAogICAgIFNoYXJl
ZC9DYWNoZU1vZGVsLmggXAogICAgIFNoYXJlZC9DaGlsZFByb2Nlc3MuaCBcCisgICAgU2hhcmVk
L0NvbnNvbGVNZXNzYWdlLmggXAogICAgIFNoYXJlZC9EaWN0aW9uYXJ5UG9wdXBJbmZvLmggXAog
ICAgIFNoYXJlZC9FZGl0b3JTdGF0ZS5oIFwKICAgICBTaGFyZWQvRm9udEluZm8uaCBcCkBAIC00
MTYsNiArNDE4LDcgQEAgU09VUkNFUyArPSBcCiAgICAgU2hhcmVkL1BsdWdpbnMvUGx1Z2luTW9k
dWxlSW5mby5jcHAgXAogICAgIFNoYXJlZC9QbHVnaW5zL1BsdWdpblByb2Nlc3NDcmVhdGlvblBh
cmFtZXRlcnMuY3BwIFwKICAgICBTaGFyZWQvQ2hpbGRQcm9jZXNzLmNwcCBcCisgICAgU2hhcmVk
L0NvbnNvbGVNZXNzYWdlLmNwcCBcCiAgICAgU2hhcmVkL0RpY3Rpb25hcnlQb3B1cEluZm8uY3Bw
IFwKICAgICBTaGFyZWQvRWRpdG9yU3RhdGUuY3BwIFwKICAgICBTaGFyZWQvRm9udEluZm8uY3Bw
IFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS1BhZ2UuaCBi
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS1BhZ2UuaAppbmRleCA5NmQwOTdjLi42
N2ZmMDIxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tQYWdl
LmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLUGFnZS5oCkBAIC0yNyw2
ICsyNyw3IEBACiAjZGVmaW5lIFdLUGFnZV9oCiAKICNpbmNsdWRlIDxXZWJLaXQyL1dLQmFzZS5o
PgorI2luY2x1ZGUgPFdlYktpdDIvV0tDb25zb2xlVHlwZXMuaD4KICNpbmNsdWRlIDxXZWJLaXQy
L1dLRXZlbnQuaD4KICNpbmNsdWRlIDxXZWJLaXQyL1dLRmluZE9wdGlvbnMuaD4KICNpbmNsdWRl
IDxXZWJLaXQyL1dLR2VvbWV0cnkuaD4KQEAgLTIwNSw2ICsyMDYsNyBAQCB0eXBlZGVmIHZvaWQg
KCpXS1BhZ2VQcmludEZyYW1lQ2FsbGJhY2spKFdLUGFnZVJlZiBwYWdlLCBXS0ZyYW1lUmVmIGZy
YW1lLCBjb25zdAogdHlwZWRlZiB2b2lkICgqV0tQYWdlU2F2ZURhdGFUb0ZpbGVJbkRvd25sb2Fk
c0ZvbGRlckNhbGxiYWNrKShXS1BhZ2VSZWYgcGFnZSwgV0tTdHJpbmdSZWYgc3VnZ2VzdGVkRmls
ZW5hbWUsIFdLU3RyaW5nUmVmIG1pbWVUeXBlLCBXS1VSTFJlZiBvcmlnaW5hdGluZ1VSTCwgV0tE
YXRhUmVmIGRhdGEsIGNvbnN0IHZvaWQqIGNsaWVudEluZm8pOwogdHlwZWRlZiBib29sICgqV0tQ
YWdlU2hvdWxkSW50ZXJydXB0SmF2YVNjcmlwdENhbGxiYWNrKShXS1BhZ2VSZWYgcGFnZSwgY29u
c3Qgdm9pZCAqY2xpZW50SW5mbyk7CiB0eXBlZGVmIHZvaWQgKCpXS1BhZ2VEZWNpZGVQb2xpY3lG
b3JOb3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdENhbGxiYWNrKShXS1BhZ2VSZWYgcGFnZSwg
V0tTZWN1cml0eU9yaWdpblJlZiBvcmlnaW4sIFdLTm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVl
c3RSZWYgcGVybWlzc2lvblJlcXVlc3QsIGNvbnN0IHZvaWQgKmNsaWVudEluZm8pOwordHlwZWRl
ZiB2b2lkICgqV0tQYWdlQWRkTWVzc2FnZVRvQ29uc29sZSkoV0tQYWdlUmVmIHBhZ2UsIFdLTWVz
c2FnZVNvdXJjZVR5cGUgc291cmNlLCBXS01lc3NhZ2VMZXZlbFR5cGUgbGV2ZWwsIFdLU3RyaW5n
UmVmIG1lc3NhZ2UsIHVuc2lnbmVkIGxpbmVOdW1iZXIsIFdLU3RyaW5nUmVmIHNvdXJjZUlELCBj
b25zdCB2b2lkKiBjbGllbnRJbmZvKTsKIAogLy8gRGVwcmVjYXRlZCAgICAKIHR5cGVkZWYgV0tQ
YWdlUmVmICgqV0tQYWdlQ3JlYXRlTmV3UGFnZUNhbGxiYWNrX2RlcHJlY2F0ZWRGb3JVc2VXaXRo
VjApKFdLUGFnZVJlZiBwYWdlLCBXS0RpY3Rpb25hcnlSZWYgZmVhdHVyZXMsIFdLRXZlbnRNb2Rp
ZmllcnMgbW9kaWZpZXJzLCBXS0V2ZW50TW91c2VCdXR0b24gbW91c2VCdXR0b24sIGNvbnN0IHZv
aWQgKmNsaWVudEluZm8pOwpAQCAtMjUzLDEyICsyNTUsMTMgQEAgc3RydWN0IFdLUGFnZVVJQ2xp
ZW50IHsKICAgICBXS1BhZ2VDYWxsYmFjayAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIHJ1bk1vZGFsOwogICAgIHZvaWQqICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW51c2VkMTsg
Ly8gVXNlZCB0byBiZSBkaWRDb21wbGV0ZVJ1YmJlckJhbmRGb3JNYWluRnJhbWUKICAgICBXS1Bh
Z2VTYXZlRGF0YVRvRmlsZUluRG93bmxvYWRzRm9sZGVyQ2FsbGJhY2sgICAgICAgICAgICAgICAg
ICAgICAgIHNhdmVEYXRhVG9GaWxlSW5Eb3dubG9hZHNGb2xkZXI7Ci0gICAgV0tQYWdlU2hvdWxk
SW50ZXJydXB0SmF2YVNjcmlwdENhbGxiYWNrICAgICAgICAgICAgICAgICAgICAgICAgICAgICBz
aG91bGRJbnRlcnJ1cHRKYXZhU2NyaXB0OyAgICAKKyAgICBXS1BhZ2VTaG91bGRJbnRlcnJ1cHRK
YXZhU2NyaXB0Q2FsbGJhY2sgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNob3VsZEludGVy
cnVwdEphdmFTY3JpcHQ7CiAKICAgICAvLyBWZXJzaW9uIDEKICAgICBXS1BhZ2VDcmVhdGVOZXdQ
YWdlQ2FsbGJhY2sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNyZWF0
ZU5ld1BhZ2U7CiAgICAgV0tQYWdlTW91c2VEaWRNb3ZlT3ZlckVsZW1lbnRDYWxsYmFjayAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBtb3VzZURpZE1vdmVPdmVyRWxlbWVudDsKICAgICBX
S1BhZ2VEZWNpZGVQb2xpY3lGb3JOb3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdENhbGxiYWNr
ICAgICAgICAgIGRlY2lkZVBvbGljeUZvck5vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0Owor
ICAgIFdLUGFnZUFkZE1lc3NhZ2VUb0NvbnNvbGUgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgYWRkTWVzc2FnZVRvQ29uc29sZTsKIH07CiB0eXBlZGVmIHN0cnVjdCBX
S1BhZ2VVSUNsaWVudCBXS1BhZ2VVSUNsaWVudDsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
V2ViUGFnZVByb3h5LmNwcAppbmRleCA4ZWEzZmU0Li4yNzUyNjQzIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcApAQCAtMjgsNiArMjgsNyBAQAogCiAjaW5jbHVk
ZSAiQXV0aGVudGljYXRpb25DaGFsbGVuZ2VQcm94eS5oIgogI2luY2x1ZGUgIkF1dGhlbnRpY2F0
aW9uRGVjaXNpb25MaXN0ZW5lci5oIgorI2luY2x1ZGUgIkNvbnNvbGVNZXNzYWdlLmgiCiAjaW5j
bHVkZSAiRGF0YVJlZmVyZW5jZS5oIgogI2luY2x1ZGUgIkRvd25sb2FkUHJveHkuaCIKICNpbmNs
dWRlICJEcmF3aW5nQXJlYVByb3h5LmgiCkBAIC0yMzczLDYgKzIzNzQsMTEgQEAgdm9pZCBXZWJQ
YWdlUHJveHk6OnNldE1lZGlhVm9sdW1lKGZsb2F0IHZvbHVtZSkKICAgICBwcm9jZXNzKCktPnNl
bmQoTWVzc2FnZXM6OldlYlBhZ2U6OlNldE1lZGlhVm9sdW1lKHZvbHVtZSksIG1fcGFnZUlEKTsg
ICAgCiB9CiAKK3ZvaWQgV2ViUGFnZVByb3h5OjphZGRNZXNzYWdlVG9Db25zb2xlKGNvbnN0IENv
bnNvbGVNZXNzYWdlJiBjb25zb2xlTWVzc2FnZSkKK3sKKyAgICBtX3VpQ2xpZW50LmFkZE1lc3Nh
Z2VUb0NvbnNvbGUodGhpcywgY29uc29sZU1lc3NhZ2UpOworfQorCiAjaWYgUExBVEZPUk0oUVQp
CiB2b2lkIFdlYlBhZ2VQcm94eTo6ZGlkQ2hhbmdlQ29udGVudHNTaXplKGNvbnN0IEludFNpemUm
IHNpemUpCiB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVBy
b3h5LmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKaW5kZXggYWY4
ZGExYi4uZjY3OGRkZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBh
Z2VQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaApA
QCAtMTM1LDYgKzEzNSw3IEBAIGNsYXNzIFdlYlByb2Nlc3NQcm94eTsKIGNsYXNzIFdlYlVSTFJl
cXVlc3Q7CiBjbGFzcyBXZWJXaGVlbEV2ZW50Owogc3RydWN0IEF0dHJpYnV0ZWRTdHJpbmc7Citz
dHJ1Y3QgQ29uc29sZU1lc3NhZ2U7CiBzdHJ1Y3QgRGljdGlvbmFyeVBvcHVwSW5mbzsKIHN0cnVj
dCBFZGl0b3JTdGF0ZTsKIHN0cnVjdCBQbGF0Zm9ybVBvcHVwTWVudURhdGE7CkBAIC03MjIsNiAr
NzIzLDcgQEAgcHJpdmF0ZToKICAgICB2b2lkIGRpZENoYW5nZVBhZ2VDb3VudCh1bnNpZ25lZCk7
CiAgICAgdm9pZCBkaWRGYWlsVG9Jbml0aWFsaXplUGx1Z2luKGNvbnN0IFN0cmluZyYgbWltZVR5
cGUpOwogICAgIHZvaWQgc2V0Q2FuU2hvcnRDaXJjdWl0SG9yaXpvbnRhbFdoZWVsRXZlbnRzKGJv
b2wgY2FuU2hvcnRDaXJjdWl0SG9yaXpvbnRhbFdoZWVsRXZlbnRzKSB7IG1fY2FuU2hvcnRDaXJj
dWl0SG9yaXpvbnRhbFdoZWVsRXZlbnRzID0gY2FuU2hvcnRDaXJjdWl0SG9yaXpvbnRhbFdoZWVs
RXZlbnRzOyB9CisgICAgdm9pZCBhZGRNZXNzYWdlVG9Db25zb2xlKGNvbnN0IENvbnNvbGVNZXNz
YWdlJik7CiAKICAgICB2b2lkIHJlYXR0YWNoVG9XZWJQcm9jZXNzKCk7CiAgICAgdm9pZCByZWF0
dGFjaFRvV2ViUHJvY2Vzc1dpdGhJdGVtKFdlYkJhY2tGb3J3YXJkTGlzdEl0ZW0qKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkubWVzc2FnZXMuaW4g
Yi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5Lm1lc3NhZ2VzLmluCmluZGV4
IGNiMGM2MjkuLjQ5MzI5ZTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9X
ZWJQYWdlUHJveHkubWVzc2FnZXMuaW4KKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dl
YlBhZ2VQcm94eS5tZXNzYWdlcy5pbgpAQCAtNjcsNiArNjcsNyBAQCBtZXNzYWdlcyAtPiBXZWJQ
YWdlUHJveHkgewogICAgIERpZENoYW5nZVBhZ2VDb3VudCh1bnNpZ25lZCBwYWdlQ291bnQpOwog
ICAgIERpZEZhaWxUb0luaXRpYWxpemVQbHVnaW4oV1RGOjpTdHJpbmcgbWltZVR5cGUpCiAgICAg
U2V0Q2FuU2hvcnRDaXJjdWl0SG9yaXpvbnRhbFdoZWVsRXZlbnRzKGJvb2wgY2FuU2hvcnRDaXJj
dWl0SG9yaXpvbnRhbFdoZWVsRXZlbnRzKQorICAgIEFkZE1lc3NhZ2VUb0NvbnNvbGUoV2ViS2l0
OjpDb25zb2xlTWVzc2FnZSBjb25zb2xlTWVzc2FnZSkKIAogI2lmIFVTRShUSUxFRF9CQUNLSU5H
X1NUT1JFKQogICAgIFBhZ2VEaWRSZXF1ZXN0U2Nyb2xsKFdlYkNvcmU6OkludFBvaW50IHBvaW50
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlVJQ2xpZW50LmNwcCBi
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJVSUNsaWVudC5jcHAKaW5kZXggZDAxMzEyMi4u
NWFiMzkyZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlVJQ2xpZW50
LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViVUlDbGllbnQuY3BwCkBAIC00
MTEsNCArNDExLDEyIEBAIGJvb2wgV2ViVUlDbGllbnQ6OnNob3VsZEludGVycnVwdEphdmFTY3Jp
cHQoV2ViUGFnZVByb3h5KiBwYWdlKQogICAgIHJldHVybiBtX2NsaWVudC5zaG91bGRJbnRlcnJ1
cHRKYXZhU2NyaXB0KHRvQVBJKHBhZ2UpLCBtX2NsaWVudC5jbGllbnRJbmZvKTsKIH0KIAordm9p
ZCBXZWJVSUNsaWVudDo6YWRkTWVzc2FnZVRvQ29uc29sZShXZWJQYWdlUHJveHkqIHBhZ2UsIGNv
bnN0IENvbnNvbGVNZXNzYWdlJiBjb25zb2xlTWVzc2FnZSkKK3sKKyAgICBpZiAoIW1fY2xpZW50
LmFkZE1lc3NhZ2VUb0NvbnNvbGUpCisgICAgICAgIHJldHVybjsKKworICAgIG1fY2xpZW50LmFk
ZE1lc3NhZ2VUb0NvbnNvbGUodG9BUEkocGFnZSksIHRvQVBJKGNvbnNvbGVNZXNzYWdlLnNvdXJj
ZSksIHRvQVBJKGNvbnNvbGVNZXNzYWdlLmxldmVsKSwgdG9BUEkoY29uc29sZU1lc3NhZ2UubWVz
c2FnZS5pbXBsKCkpLCBjb25zb2xlTWVzc2FnZS5saW5lTnVtYmVyLCB0b0FQSShjb25zb2xlTWVz
c2FnZS5zb3VyY2VJRC5pbXBsKCkpLCBtX2NsaWVudC5jbGllbnRJbmZvKTsKK30KKwogfSAvLyBu
YW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2Vi
VUlDbGllbnQuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJVSUNsaWVudC5oCmluZGV4
IDgzNWU2Y2UuLmZlZDdkODYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9X
ZWJVSUNsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJVSUNsaWVudC5o
CkBAIC0yNyw2ICsyNyw3IEBACiAjZGVmaW5lIFdlYlVJQ2xpZW50X2gKIAogI2luY2x1ZGUgIkFQ
SUNsaWVudC5oIgorI2luY2x1ZGUgIkNvbnNvbGVNZXNzYWdlLmgiCiAjaW5jbHVkZSAiV0tQYWdl
LmgiCiAjaW5jbHVkZSAiV2ViRXZlbnQuaCIKICNpbmNsdWRlICJXZWJIaXRUZXN0UmVzdWx0Lmgi
CkBAIC0xMTUsNiArMTE2LDggQEAgcHVibGljOgogICAgIHZvaWQgc2F2ZURhdGFUb0ZpbGVJbkRv
d25sb2Fkc0ZvbGRlcihXZWJQYWdlUHJveHkqLCBjb25zdCBTdHJpbmcmIHN1Z2dlc3RlZEZpbGVu
YW1lLCBjb25zdCBTdHJpbmcmIG1pbWVUeXBlLCBjb25zdCBTdHJpbmcmIG9yaWdpbmF0aW5nVVJM
U3RyaW5nLCBXZWJEYXRhKik7CiAKICAgICBib29sIHNob3VsZEludGVycnVwdEphdmFTY3JpcHQo
V2ViUGFnZVByb3h5Kik7CisKKyAgICB2b2lkIGFkZE1lc3NhZ2VUb0NvbnNvbGUoV2ViUGFnZVBy
b3h5KiwgY29uc3QgQ29uc29sZU1lc3NhZ2UmKTsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktp
dApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9X
ZWJDaHJvbWVDbGllbnQuY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3Vw
cG9ydC9XZWJDaHJvbWVDbGllbnQuY3BwCmluZGV4IDBhNDZlYjcuLjMxZDU3OTQgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xp
ZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dl
YkNocm9tZUNsaWVudC5jcHAKQEAgLTI3LDYgKzI3LDcgQEAKICNpbmNsdWRlICJjb25maWcuaCIK
ICNpbmNsdWRlICJXZWJDaHJvbWVDbGllbnQuaCIKIAorI2luY2x1ZGUgIkNvbnNvbGVNZXNzYWdl
LmgiCiAjaW5jbHVkZSAiRHJhd2luZ0FyZWEuaCIKICNpbmNsdWRlICJJbmplY3RlZEJ1bmRsZU5h
dmlnYXRpb25BY3Rpb24uaCIKICNpbmNsdWRlICJJbmplY3RlZEJ1bmRsZVVzZXJNZXNzYWdlQ29k
ZXJzLmgiCkBAIC0yNTksMTIgKzI2MCwxOCBAQCB2b2lkIFdlYkNocm9tZUNsaWVudDo6c2V0UmVz
aXphYmxlKGJvb2wgcmVzaXphYmxlKQogICAgIG1fcGFnZS0+c2VuZChNZXNzYWdlczo6V2ViUGFn
ZVByb3h5OjpTZXRJc1Jlc2l6YWJsZShyZXNpemFibGUpKTsKIH0KIAotdm9pZCBXZWJDaHJvbWVD
bGllbnQ6OmFkZE1lc3NhZ2VUb0NvbnNvbGUoTWVzc2FnZVNvdXJjZSwgTWVzc2FnZVR5cGUsIE1l
c3NhZ2VMZXZlbCwgY29uc3QgU3RyaW5nJiBtZXNzYWdlLCB1bnNpZ25lZCBpbnQgbGluZU51bWJl
ciwgY29uc3QgU3RyaW5nJiBzb3VyY2VJRCkKK3ZvaWQgV2ViQ2hyb21lQ2xpZW50OjphZGRNZXNz
YWdlVG9Db25zb2xlKE1lc3NhZ2VTb3VyY2Ugc291cmNlLCBNZXNzYWdlVHlwZSwgTWVzc2FnZUxl
dmVsIGxldmVsLCBjb25zdCBTdHJpbmcmIG1lc3NhZ2UsIHVuc2lnbmVkIGludCBsaW5lTnVtYmVy
LCBjb25zdCBTdHJpbmcmIHNvdXJjZUlEKQogewogICAgIC8vIE5vdGlmeSB0aGUgYnVuZGxlIGNs
aWVudC4KICAgICBtX3BhZ2UtPmluamVjdGVkQnVuZGxlVUlDbGllbnQoKS53aWxsQWRkTWVzc2Fn
ZVRvQ29uc29sZShtX3BhZ2UsIG1lc3NhZ2UsIGxpbmVOdW1iZXIpOwogCi0gICAgbm90SW1wbGVt
ZW50ZWQoKTsKKyAgICBDb25zb2xlTWVzc2FnZSBjb25zb2xlTWVzc2FnZTsKKyAgICBjb25zb2xl
TWVzc2FnZS5zb3VyY2UgPSBzb3VyY2U7CisgICAgY29uc29sZU1lc3NhZ2UubGV2ZWwgPSBsZXZl
bDsKKyAgICBjb25zb2xlTWVzc2FnZS5tZXNzYWdlID0gbWVzc2FnZTsKKyAgICBjb25zb2xlTWVz
c2FnZS5saW5lTnVtYmVyID0gbGluZU51bWJlcjsKKyAgICBjb25zb2xlTWVzc2FnZS5zb3VyY2VJ
RCA9IHNvdXJjZUlEOworICAgIG1fcGFnZS0+c2VuZChNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpB
ZGRNZXNzYWdlVG9Db25zb2xlKGNvbnNvbGVNZXNzYWdlKSk7CiB9CiAKIGJvb2wgV2ViQ2hyb21l
Q2xpZW50OjpjYW5SdW5CZWZvcmVVbmxvYWRDb25maXJtUGFuZWwoKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdDIvd2luL1dlYktpdDIudmNwcm9qIGIvU291cmNlL1dlYktpdDIvd2luL1dlYktp
dDIudmNwcm9qCmluZGV4IDE2N2JhM2QuLjIxYjY4OGEgMTAwNzU1Ci0tLSBhL1NvdXJjZS9XZWJL
aXQyL3dpbi9XZWJLaXQyLnZjcHJvagorKysgYi9Tb3VyY2UvV2ViS2l0Mi93aW4vV2ViS2l0Mi52
Y3Byb2oKQEAgLTQyNiw2ICs0MjYsMTQgQEAKIAkJCQlSZWxhdGl2ZVBhdGg9Ii4uXFNoYXJlZFxD
b21tYW5kTGluZS5oIgogCQkJCT4KIAkJCTwvRmlsZT4KKyAgICAgICAgICAgICAgICAgICAgICAg
IDxGaWxlCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJlbGF0aXZlUGF0aD0iLi5c
U2hhcmVkXENvbnNvbGVNZXNzYWdlLmNwcCIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgPgorICAgICAgICAgICAgICAgICAgICAgICAgPC9GaWxlPgorICAgICAgICAgICAgICAgICAg
ICAgICAgPEZpbGUKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUmVsYXRpdmVQYXRo
PSIuLlxTaGFyZWRcQ29uc29sZU1lc3NhZ2UuaCIKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgPgorICAgICAgICAgICAgICAgICAgICAgICAgPC9GaWxlPgogCQkJPEZpbGUKIAkJCQlS
ZWxhdGl2ZVBhdGg9Ii4uXFNoYXJlZFxDb250ZXh0TWVudVN0YXRlLmgiCiAJCQkJPgpAQCAtODc3
LDYgKzg4NSwxMCBAQAogCQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXFNoYXJlZFxBUElcY1xXS0Nvbm5l
Y3Rpb25SZWYuaCIKIAkJCQkJPgogCQkJCTwvRmlsZT4KKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgPEZpbGUKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBS
ZWxhdGl2ZVBhdGg9Ii4uXFNoYXJlZFxBUElcY1xXS0NvbnNvbGVUeXBlcy5oIgorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID4KKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgPC9GaWxlPgogCQkJCTxGaWxlCiAJCQkJCVJlbGF0aXZlUGF0aD0iLi5cU2hhcmVk
XEFQSVxjXFdLQ29udGV4dE1lbnVJdGVtLmNwcCIKIAkJCQkJPgpkaWZmIC0tZ2l0IGEvVG9vbHMv
TWluaUJyb3dzZXIvbWFjL0Jyb3dzZXJXaW5kb3dDb250cm9sbGVyLm0gYi9Ub29scy9NaW5pQnJv
d3Nlci9tYWMvQnJvd3NlcldpbmRvd0NvbnRyb2xsZXIubQppbmRleCA1ZGJkNWE3Li4zYTU4ODUw
IDEwMDY0NAotLS0gYS9Ub29scy9NaW5pQnJvd3Nlci9tYWMvQnJvd3NlcldpbmRvd0NvbnRyb2xs
ZXIubQorKysgYi9Ub29scy9NaW5pQnJvd3Nlci9tYWMvQnJvd3NlcldpbmRvd0NvbnRyb2xsZXIu
bQpAQCAtNjY4LDYgKzY2OCw3IEBAIC0gKHZvaWQpYXdha2VGcm9tTmliCiAgICAgICAgIGNyZWF0
ZU5ld1BhZ2UsCiAgICAgICAgIG1vdXNlRGlkTW92ZU92ZXJFbGVtZW50LAogICAgICAgICAwLCAv
LyBkZWNpZGVQb2xpY3lGb3JOb3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdAorICAgICAgICAw
LCAvLyBhZGRNZXNzYWdlVG9Db25zb2xlCiAgICAgfTsKICAgICBXS1BhZ2VTZXRQYWdlVUlDbGll
bnQoX3dlYlZpZXcucGFnZVJlZiwgJnVpQ2xpZW50KTsKIH0KZGlmZiAtLWdpdCBhL1Rvb2xzL1dl
YktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuY3BwIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5l
ci9UZXN0Q29udHJvbGxlci5jcHAKaW5kZXggMDI2MmI1My4uZDE3M2EwYyAxMDA2NDQKLS0tIGEv
VG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5jcHAKKysrIGIvVG9vbHMvV2Vi
S2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5jcHAKQEAgLTIwNiw2ICsyMDYsNyBAQCBXS1Bh
Z2VSZWYgVGVzdENvbnRyb2xsZXI6OmNyZWF0ZU90aGVyUGFnZShXS1BhZ2VSZWYgb2xkUGFnZSwg
V0tVUkxSZXF1ZXN0UmVmLCBXSwogICAgICAgICBjcmVhdGVPdGhlclBhZ2UsCiAgICAgICAgIDAs
IC8vIG1vdXNlRGlkTW92ZU92ZXJFbGVtZW50CiAgICAgICAgIDAsIC8vIGRlY2lkZVBvbGljeUZv
ck5vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0CisgICAgICAgIDAsIC8vIGFkZE1lc3NhZ2VU
b0NvbnNvbGUKICAgICB9OwogICAgIFdLUGFnZVNldFBhZ2VVSUNsaWVudChuZXdQYWdlLCAmb3Ro
ZXJQYWdlVUlDbGllbnQpOwogCkBAIC0zNjUsNiArMzY2LDcgQEAgdm9pZCBUZXN0Q29udHJvbGxl
cjo6aW5pdGlhbGl6ZShpbnQgYXJnYywgY29uc3QgY2hhciogYXJndltdKQogICAgICAgICBjcmVh
dGVPdGhlclBhZ2UsCiAgICAgICAgIDAsIC8vIG1vdXNlRGlkTW92ZU92ZXJFbGVtZW50CiAgICAg
ICAgIDAsIC8vIGRlY2lkZVBvbGljeUZvck5vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0Cisg
ICAgICAgIDAsIC8vIGFkZE1lc3NhZ2VUb0NvbnNvbGUKICAgICB9OwogICAgIFdLUGFnZVNldFBh
Z2VVSUNsaWVudChtX21haW5XZWJWaWV3LT5wYWdlKCksICZwYWdlVUlDbGllbnQpOwogCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>133259</attachid>
            <date>2012-03-22 07:38:02 -0700</date>
            <delta_ts>2012-03-29 05:20:14 -0700</delta_ts>
            <desc>Updated patch to add new files to xcode too</desc>
            <filename>wk2-add-message-to-console3.diff</filename>
            <type>text/plain</type>
            <size>31175</size>
            <attacher name="Carlos Garcia Campos">cgarcia</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0No
YW5nZUxvZwppbmRleCBhOGM4YjNmLi41OWY1MzY5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNDAg
QEAKKzIwMTItMDMtMjIgIENhcmxvcyBHYXJjaWEgQ2FtcG9zICA8Y2dhcmNpYUBpZ2FsaWEuY29t
PgorCisgICAgICAgIFtXSzJdIEltcGxlbWVudCBXZWJDaHJvbWVDbGllbnQ6OmFkZE1lc3NhZ2VU
b0NvbnNvbGUoKQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9Nzk0ODIKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICAqIENNYWtlTGlzdHMudHh0OiBBZGQgbmV3IGZpbGVzIHRvIGNvbXBpbGF0aW9uLgorICAgICAg
ICAqIEdOVW1ha2VmaWxlLmFtOiBEaXR0by4KKyAgICAgICAgKiBTaGFyZWQvQVBJL2MvV0tDb25z
b2xlVHlwZXMuaDogQWRkZWQuCisgICAgICAgICogU2hhcmVkL0FQSS9jL1dLU2hhcmVkQVBJQ2Fz
dC5oOgorICAgICAgICAoV2ViS2l0Ojp0b0FQSSk6IENvbnZlcnQgV2ViQ29yZSBjb25zb2xlIG1l
c3NhZ2UgdHlwZXMgdG8gV2ViS2l0MgorICAgICAgICB0eXBlcy4KKyAgICAgICAgKiBTaGFyZWQv
Q29uc29sZU1lc3NhZ2UuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYktpdCk6CisgICAgICAgIChX
ZWJLaXQ6OkNvbnNvbGVNZXNzYWdlOjplbmNvZGUpOgorICAgICAgICAoV2ViS2l0OjpDb25zb2xl
TWVzc2FnZTo6ZGVjb2RlKToKKyAgICAgICAgKiBTaGFyZWQvQ29uc29sZU1lc3NhZ2UuaDogQWRk
ZWQuCisgICAgICAgICogVGFyZ2V0LnByaTogQWRkIG5ldyBmaWxlcyB0byBjb21waWxhdGlvbi4K
KyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0MvV0tQYWdlLmg6CisgICAgICAgICogVUlQcm9jZXNz
L1dlYlBhZ2VQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6YWRkTWVz
c2FnZVRvQ29uc29sZSk6IE1ldGhvZCB0byBoYW5kbGUKKyAgICAgICAgQWRkTWVzc2FnZVRvQ29u
c29sZSBtZXNzYWdlIHRoYXQganVzdCBjYWxscworICAgICAgICBXZWJVSUNsaWVudDo6YWRkTWVz
c2FnZVRvQ29uc29sZSgpLgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaDoKKyAg
ICAgICAgKiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5Lm1lc3NhZ2VzLmluOiBBZGQgbmV3IG1lc3Nh
Z2UKKyAgICAgICAgQWRkTWVzc2FnZVRvQ29uc29sZS4KKyAgICAgICAgKiBVSVByb2Nlc3MvV2Vi
VUlDbGllbnQuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJVSUNsaWVudDo6YWRkTWVzc2FnZVRv
Q29uc29sZSk6IENhbGwKKyAgICAgICAgYWRkTWVzc2FnZVRvQ29uc29sZSBjYWxsYmFjayBpZiBw
cmVzZW50LgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJVSUNsaWVudC5oOgorICAgICAgICAqIFdl
YktpdDIueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajogQWRkIG5ldyBmaWxlcyB0byBjb21waWxh
dGlvbi4KKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVu
dC5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYkNocm9tZUNsaWVudDo6YWRkTWVzc2FnZVRvQ29u
c29sZSk6IFNlbmQKKyAgICAgICAgQWRkTWVzc2FnZVRvQ29uc29sZSBtZXNzYWdlIHRvIHRoZSBV
SSBwcm9jZXNzLgorICAgICAgICAqIHdpbi9XZWJLaXQyLnZjcHJvajogQWRkIG5ldyBmaWxlcyB0
byBjb21waWxhdGlvbi4KKwogMjAxMi0wMy0yMSAgVGltIEhvcnRvbiAgPHRpbW90aHlfaG9ydG9u
QGFwcGxlLmNvbT4KIAogICAgICAgICBNYWtlIHVzZSBvZiBDRyByb3VuZGVkLXJlY3QgcHJpbWl0
aXZlcwpkaWZmIC0tZ2l0IGEvVG9vbHMvQ2hhbmdlTG9nIGIvVG9vbHMvQ2hhbmdlTG9nCmluZGV4
IDU1MmZmNjMuLjk0ZGJmMzQgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0NoYW5nZUxvZworKysgYi9Ub29s
cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNyBAQAorMjAxMi0wMy0yMiAgQ2FybG9zIEdhcmNpYSBD
YW1wb3MgIDxjZ2FyY2lhQGlnYWxpYS5jb20+CisKKyAgICAgICAgW1dLMl0gSW1wbGVtZW50IFdl
YkNocm9tZUNsaWVudDo6YWRkTWVzc2FnZVRvQ29uc29sZSgpCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03OTQ4MgorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogTWluaUJyb3dzZXIvbWFjL0Jyb3dzZXJXaW5k
b3dDb250cm9sbGVyLm06CisgICAgICAgICgtW0Jyb3dzZXJXaW5kb3dDb250cm9sbGVyIGF3YWtl
RnJvbU5pYl0pOiBBZGQgZW1wdHkKKyAgICAgICAgYWRkTWVzc2FnZVRvQ29uc29sZSBjYWxsYmFj
ayB0byBVSSBjbGllbnQgc3RydWN0LgorICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIvVGVzdENv
bnRyb2xsZXIuY3BwOgorICAgICAgICAoV1RSOjpUZXN0Q29udHJvbGxlcjo6Y3JlYXRlT3RoZXJQ
YWdlKTogRGl0dG8uCisgICAgICAgIChXVFI6OlRlc3RDb250cm9sbGVyOjppbml0aWFsaXplKTog
RGl0dG8uCisKIDIwMTItMDMtMjIgIFJhcGhhZWwgS3VibyBkYSBDb3N0YSAgPHJha3Vjb0BGcmVl
QlNELm9yZz4KIAogICAgICAgICBbRUZMXSBEUlQ6IERvIG5vdCBwYXNzIGEgcmVsYXRpdmUgcGF0
aCB0byBET1dOTE9BREVEX0ZPTlRTX0RJUi4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NN
YWtlTGlzdHMudHh0IGIvU291cmNlL1dlYktpdDIvQ01ha2VMaXN0cy50eHQKaW5kZXggZTUzYjk1
OC4uN2E0MWNmYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ01ha2VMaXN0cy50eHQKKysr
IGIvU291cmNlL1dlYktpdDIvQ01ha2VMaXN0cy50eHQKQEAgLTExNSw2ICsxMTUsNyBAQCBTRVQo
V2ViS2l0Ml9TT1VSQ0VTCiAgICAgU2hhcmVkL0FQSUNsaWVudFRyYWl0cy5jcHAKICAgICBTaGFy
ZWQvQVBJT2JqZWN0LmNwcAogICAgIFNoYXJlZC9DaGlsZFByb2Nlc3MuY3BwCisgICAgU2hhcmVk
L0NvbnNvbGVNZXNzYWdlLmNwcAogICAgIFNoYXJlZC9EaWN0aW9uYXJ5UG9wdXBJbmZvLmNwcAog
ICAgIFNoYXJlZC9FZGl0b3JTdGF0ZS5jcHAKICAgICBTaGFyZWQvRm9udEluZm8uY3BwCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9HTlVtYWtlZmlsZS5hbSBiL1NvdXJjZS9XZWJLaXQyL0dO
VW1ha2VmaWxlLmFtCmluZGV4IDZkNTE3NzQuLjRiMjkxMjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQyL0dOVW1ha2VmaWxlLmFtCisrKyBiL1NvdXJjZS9XZWJLaXQyL0dOVW1ha2VmaWxlLmFt
CkBAIC01LDYgKzUsNyBAQCBsaWJ3ZWJraXQyZ3RrX0BXRUJLSVRHVEtfQVBJX01BSk9SX1ZFUlNJ
T05AX0BXRUJLSVRHVEtfQVBJX01JTk9SX1ZFUlNJT05AX2xhX0hFQQogCSQoV2ViS2l0MikvU2hh
cmVkL0FQSS9jL1dLQmFzZS5oIFwKIAkkKFdlYktpdDIpL1NoYXJlZC9BUEkvYy9XS0NlcnRpZmlj
YXRlSW5mby5oIFwKIAkkKFdlYktpdDIpL1NoYXJlZC9BUEkvYy9XS0Nvbm5lY3Rpb25SZWYuaCBc
CisJJChXZWJLaXQyKS9TaGFyZWQvQVBJL2MvV0tDb25zb2xlVHlwZXMuaCBcCiAJJChXZWJLaXQy
KS9TaGFyZWQvQVBJL2MvV0tDb250ZXh0TWVudUl0ZW0uaCBcCiAJJChXZWJLaXQyKS9TaGFyZWQv
QVBJL2MvV0tDb250ZXh0TWVudUl0ZW1UeXBlcy5oIFwKIAkkKFdlYktpdDIpL1NoYXJlZC9BUEkv
Yy9XS0RhdGEuaCBcCkBAIC0yNjcsNiArMjY4LDcgQEAgd2Via2l0Ml9zb3VyY2VzICs9IFwKIAlT
b3VyY2UvV2ViS2l0Mi9TaGFyZWQvQVBJL2MvV0tDZXJ0aWZpY2F0ZUluZm8uaCBcCiAJU291cmNl
L1dlYktpdDIvU2hhcmVkL0FQSS9jL1dLQ29ubmVjdGlvblJlZi5jcHAgXAogCVNvdXJjZS9XZWJL
aXQyL1NoYXJlZC9BUEkvYy9XS0Nvbm5lY3Rpb25SZWYuaCBcCisJU291cmNlL1dlYktpdDIvU2hh
cmVkL0FQSS9jL1dLQ29uc29sZVR5cGVzLmggXAogCVNvdXJjZS9XZWJLaXQyL1NoYXJlZC9BUEkv
Yy9XS0NvbnRleHRNZW51SXRlbS5jcHAgXAogCVNvdXJjZS9XZWJLaXQyL1NoYXJlZC9BUEkvYy9X
S0NvbnRleHRNZW51SXRlbS5oIFwKIAlTb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQVBJL2MvV0tDb250
ZXh0TWVudUl0ZW1UeXBlcy5oIFwKQEAgLTMyMiw2ICszMjQsOCBAQCB3ZWJraXQyX3NvdXJjZXMg
Kz0gXAogCVNvdXJjZS9XZWJLaXQyL1NoYXJlZC9DaGlsZFByb2Nlc3MuY3BwIFwKIAlTb3VyY2Uv
V2ViS2l0Mi9TaGFyZWQvQ2hpbGRQcm9jZXNzLmggXAogCVNvdXJjZS9XZWJLaXQyL1NoYXJlZC9D
b21tYW5kTGluZS5oIFwKKwlTb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQ29uc29sZU1lc3NhZ2UuY3Bw
IFwKKwlTb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQ29uc29sZU1lc3NhZ2UuaCBcCiAJU291cmNlL1dl
YktpdDIvU2hhcmVkL0NvcmVJUENTdXBwb3J0L0luamVjdGVkQnVuZGxlTWVzc2FnZUtpbmRzLmgg
XAogCVNvdXJjZS9XZWJLaXQyL1NoYXJlZC9Db3JlSVBDU3VwcG9ydC9XZWJDb25uZWN0aW9uTWVz
c2FnZUtpbmRzLmggXAogCVNvdXJjZS9XZWJLaXQyL1NoYXJlZC9Db3JlSVBDU3VwcG9ydC9XZWJD
b250ZXh0TWVzc2FnZUtpbmRzLmggXApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2hhcmVk
L0FQSS9jL1dLQ29uc29sZVR5cGVzLmggYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQVBJL2MvV0tD
b25zb2xlVHlwZXMuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mNWZmODI0
Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL0FQSS9jL1dLQ29uc29s
ZVR5cGVzLmgKQEAgLTAsMCArMSw1NiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMiBJZ2Fs
aWEgUy5MLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICog
MS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9y
bSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisg
KiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0
aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQ
TEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVT
UyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAor
ICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1Mg
Rk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQg
U0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFO
WSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisg
KiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQ
Uk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBV
U0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VW
RVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICog
Q09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNF
IE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBU
SElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBT
VUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVmIFdLQ29uc29sZVR5cGVzX2gKKyNkZWZpbmUgV0tD
b25zb2xlVHlwZXNfaAorCisjaWZkZWYgX19jcGx1c3BsdXMKK2V4dGVybiAiQyIgeworI2VuZGlm
CisKK2VudW0geworICAgIGtXS01lc3NhZ2VTb3VyY2VIVE1MLAorICAgIGtXS01lc3NhZ2VTb3Vy
Y2VYTUwsCisgICAga1dLTWVzc2FnZVNvdXJjZUpTLAorICAgIGtXS01lc3NhZ2VTb3VyY2VOZXR3
b3JrLAorICAgIGtXS01lc3NhZ2VTb3VyY2VDb25zb2xlQVBJLAorICAgIGtXS01lc3NhZ2VTb3Vy
Y2VPdGhlcgorfTsKK3R5cGVkZWYgdWludDMyX3QgV0tNZXNzYWdlU291cmNlVHlwZTsKKworZW51
bSB7CisgICAga1dLTWVzc2FnZUxldmVsVGlwLAorICAgIGtXS01lc3NhZ2VMZXZlbExvZywKKyAg
ICBrV0tNZXNzYWdlTGV2ZWxXYXJuaW5nLAorICAgIGtXS01lc3NhZ2VMZXZlbEVycm9yLAorICAg
IGtXS01lc3NhZ2VMZXZlbERlYnVnCit9OwordHlwZWRlZiB1aW50MzJfdCBXS01lc3NhZ2VMZXZl
bFR5cGU7CisKKyNpZmRlZiBfX2NwbHVzcGx1cworfQorI2VuZGlmCisKKyNlbmRpZiAvKiBXS0Nv
bnNvbGVUeXBlc19oICovCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQVBJL2Mv
V0tTaGFyZWRBUElDYXN0LmggYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQVBJL2MvV0tTaGFyZWRB
UElDYXN0LmgKaW5kZXggNWU0YmY2OS4uZTBkMDE4NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dDIvU2hhcmVkL0FQSS9jL1dLU2hhcmVkQVBJQ2FzdC5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1No
YXJlZC9BUEkvYy9XS1NoYXJlZEFQSUNhc3QuaApAQCAtMjksNiArMjksNyBAQAogI2luY2x1ZGUg
IkltYWdlT3B0aW9ucy5oIgogI2luY2x1ZGUgIlNhbWVEb2N1bWVudE5hdmlnYXRpb25UeXBlLmgi
CiAjaW5jbHVkZSAiV0tCYXNlLmgiCisjaW5jbHVkZSAiV0tDb25zb2xlVHlwZXMuaCIKICNpbmNs
dWRlICJXS0NvbnRleHRNZW51SXRlbVR5cGVzLmgiCiAjaW5jbHVkZSAiV0tFdmVudC5oIgogI2lu
Y2x1ZGUgIldLRmluZE9wdGlvbnMuaCIKQEAgLTQzLDYgKzQ0LDcgQEAKICNpbmNsdWRlICJXZWJV
UkwuaCIKICNpbmNsdWRlICJXZWJVUkxSZXF1ZXN0LmgiCiAjaW5jbHVkZSAiV2ViVVJMUmVzcG9u
c2UuaCIKKyNpbmNsdWRlIDxXZWJDb3JlL0NvbnNvbGVUeXBlcy5oPgogI2luY2x1ZGUgPFdlYkNv
cmUvQ29udGV4dE1lbnVJdGVtLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9GbG9hdFJlY3QuaD4KICNp
bmNsdWRlIDxXZWJDb3JlL0ZyYW1lTG9hZGVyVHlwZXMuaD4KQEAgLTc1NCw2ICs3NTYsNDYgQEAg
aW5saW5lIEltYWdlT3B0aW9ucyB0b0ltYWdlT3B0aW9ucyhXS0ltYWdlT3B0aW9ucyB3a0ltYWdl
T3B0aW9ucykKICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8SW1hZ2VPcHRpb25zPihpbWFnZU9wdGlv
bnMpOwogfQogCitpbmxpbmUgV0tNZXNzYWdlU291cmNlVHlwZSB0b0FQSShXZWJDb3JlOjpNZXNz
YWdlU291cmNlIHNvdXJjZSkKK3sKKyAgICBzd2l0Y2ggKHNvdXJjZSkgeworICAgIGNhc2UgV2Vi
Q29yZTo6SFRNTE1lc3NhZ2VTb3VyY2U6CisgICAgICAgIHJldHVybiBrV0tNZXNzYWdlU291cmNl
SFRNTDsKKyAgICBjYXNlIFdlYkNvcmU6OlhNTE1lc3NhZ2VTb3VyY2U6CisgICAgICAgIHJldHVy
biBrV0tNZXNzYWdlU291cmNlWE1MOworICAgIGNhc2UgV2ViQ29yZTo6SlNNZXNzYWdlU291cmNl
OgorICAgICAgICByZXR1cm4ga1dLTWVzc2FnZVNvdXJjZUpTOworICAgIGNhc2UgV2ViQ29yZTo6
TmV0d29ya01lc3NhZ2VTb3VyY2U6CisgICAgICAgIHJldHVybiBrV0tNZXNzYWdlU291cmNlTmV0
d29yazsKKyAgICBjYXNlIFdlYkNvcmU6OkNvbnNvbGVBUElNZXNzYWdlU291cmNlOgorICAgICAg
ICByZXR1cm4ga1dLTWVzc2FnZVNvdXJjZUNvbnNvbGVBUEk7CisgICAgY2FzZSBXZWJDb3JlOjpP
dGhlck1lc3NhZ2VTb3VyY2U6CisgICAgICAgIHJldHVybiBrV0tNZXNzYWdlU291cmNlT3RoZXI7
CisgICAgZGVmYXVsdDoKKyAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgICAgIHJl
dHVybiBrV0tNZXNzYWdlU291cmNlT3RoZXI7CisgICAgfQorfQorCitpbmxpbmUgV0tNZXNzYWdl
TGV2ZWxUeXBlIHRvQVBJKFdlYkNvcmU6Ok1lc3NhZ2VMZXZlbCBsZXZlbCkKK3sKKyAgICBzd2l0
Y2ggKGxldmVsKSB7CisgICAgY2FzZSBXZWJDb3JlOjpUaXBNZXNzYWdlTGV2ZWw6CisgICAgICAg
IHJldHVybiBrV0tNZXNzYWdlTGV2ZWxUaXA7CisgICAgY2FzZSBXZWJDb3JlOjpMb2dNZXNzYWdl
TGV2ZWw6CisgICAgICAgIHJldHVybiBrV0tNZXNzYWdlTGV2ZWxMb2c7CisgICAgY2FzZSBXZWJD
b3JlOjpXYXJuaW5nTWVzc2FnZUxldmVsOgorICAgICAgICByZXR1cm4ga1dLTWVzc2FnZUxldmVs
V2FybmluZzsKKyAgICBjYXNlIFdlYkNvcmU6OkVycm9yTWVzc2FnZUxldmVsOgorICAgICAgICBy
ZXR1cm4ga1dLTWVzc2FnZUxldmVsRXJyb3I7CisgICAgY2FzZSBXZWJDb3JlOjpEZWJ1Z01lc3Nh
Z2VMZXZlbDoKKyAgICAgICAgcmV0dXJuIGtXS01lc3NhZ2VMZXZlbERlYnVnOworICAgIGRlZmF1
bHQ6CisgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgICAgICByZXR1cm4ga1dLTWVz
c2FnZUxldmVsTG9nOworICAgIH0KK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CiAKICNlbmRp
ZiAvLyBXS1NoYXJlZEFQSUNhc3RfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2hhcmVk
L0NvbnNvbGVNZXNzYWdlLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9Db25zb2xlTWVzc2Fn
ZS5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNDZiZmIxNAotLS0gL2Rl
di9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9Db25zb2xlTWVzc2FnZS5jcHAKQEAg
LTAsMCArMSw1NCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMiBJZ2FsaWEgUy5MLgorICoK
KyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmli
dXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJv
ZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVu
dGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0
aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQg
SVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVE
IFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJ
RUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElD
VUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUg
SU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElO
RElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5U
SUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBP
RgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9S
IFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFO
RCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNU
UklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lT
RSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJF
LCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4K
KyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiQ29uc29sZU1lc3NhZ2UuaCIK
KworI2luY2x1ZGUgIldlYkNvcmVBcmd1bWVudENvZGVycy5oIgorCituYW1lc3BhY2UgV2ViS2l0
IHsKKwordm9pZCBDb25zb2xlTWVzc2FnZTo6ZW5jb2RlKENvcmVJUEM6OkFyZ3VtZW50RW5jb2Rl
ciogZW5jb2RlcikgY29uc3QKK3sKKyAgICBlbmNvZGVyLT5lbmNvZGVFbnVtKHNvdXJjZSk7Cisg
ICAgZW5jb2Rlci0+ZW5jb2RlRW51bShsZXZlbCk7CisgICAgZW5jb2Rlci0+ZW5jb2RlKG1lc3Nh
Z2UpOworICAgIGVuY29kZXItPmVuY29kZShsaW5lTnVtYmVyKTsKKyAgICBlbmNvZGVyLT5lbmNv
ZGUoc291cmNlSUQpOworfQorCitib29sIENvbnNvbGVNZXNzYWdlOjpkZWNvZGUoQ29yZUlQQzo6
QXJndW1lbnREZWNvZGVyKiBkZWNvZGVyLCBDb25zb2xlTWVzc2FnZSYgY29uc29sZU1lc3NhZ2Up
Cit7CisgICAgaWYgKCFkZWNvZGVyLT5kZWNvZGVFbnVtKGNvbnNvbGVNZXNzYWdlLnNvdXJjZSkK
KyAgICAgICAgfHwgIWRlY29kZXItPmRlY29kZUVudW0oY29uc29sZU1lc3NhZ2UubGV2ZWwpCisg
ICAgICAgIHx8ICFkZWNvZGVyLT5kZWNvZGUoY29uc29sZU1lc3NhZ2UubWVzc2FnZSkKKyAgICAg
ICAgfHwgIWRlY29kZXItPmRlY29kZShjb25zb2xlTWVzc2FnZS5saW5lTnVtYmVyKQorICAgICAg
ICB8fCAhZGVjb2Rlci0+ZGVjb2RlKGNvbnNvbGVNZXNzYWdlLnNvdXJjZUlEKSkKKyAgICAgICAg
cmV0dXJuIGZhbHNlOworCisgICAgcmV0dXJuIHRydWU7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdl
YktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL0NvbnNvbGVNZXNzYWdlLmgg
Yi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQ29uc29sZU1lc3NhZ2UuaApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwLi4zOWMyOGNjCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dl
YktpdDIvU2hhcmVkL0NvbnNvbGVNZXNzYWdlLmgKQEAgLTAsMCArMSw1MiBAQAorLyoKKyAqIENv
cHlyaWdodCAoQykgMjAxMiBJZ2FsaWEgUy5MLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11
c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJp
YnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRl
cmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdB
UkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElT
JycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFO
VEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElT
Q0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JT
CisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVD
SUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBP
UiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisg
KiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJ
TElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQg
KElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdB
WSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAq
IFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVmIENvbnNvbGVN
ZXNzYWdlX2gKKyNkZWZpbmUgQ29uc29sZU1lc3NhZ2VfaAorCisjaW5jbHVkZSA8V2ViQ29yZS9D
b25zb2xlVHlwZXMuaD4KKyNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KKworbmFtZXNw
YWNlIENvcmVJUEMgeworY2xhc3MgQXJndW1lbnREZWNvZGVyOworY2xhc3MgQXJndW1lbnRFbmNv
ZGVyOworfQorCituYW1lc3BhY2UgV2ViS2l0IHsKKworc3RydWN0IENvbnNvbGVNZXNzYWdlIHsK
KyAgICBXZWJDb3JlOjpNZXNzYWdlU291cmNlIHNvdXJjZTsKKyAgICBXZWJDb3JlOjpNZXNzYWdl
TGV2ZWwgbGV2ZWw7CisgICAgU3RyaW5nIG1lc3NhZ2U7CisgICAgdWludDMyX3QgbGluZU51bWJl
cjsKKyAgICBTdHJpbmcgc291cmNlSUQ7CisKKyAgICB2b2lkIGVuY29kZShDb3JlSVBDOjpBcmd1
bWVudEVuY29kZXIqKSBjb25zdDsKKyAgICBzdGF0aWMgYm9vbCBkZWNvZGUoQ29yZUlQQzo6QXJn
dW1lbnREZWNvZGVyKiwgQ29uc29sZU1lc3NhZ2UmKTsKK307CisKK30gLy8gbmFtZXNwYWNlIFdl
YktpdAorCisjZW5kaWYgLy8gQ29uc29sZU1lc3NhZ2VfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdDIvVGFyZ2V0LnByaSBiL1NvdXJjZS9XZWJLaXQyL1RhcmdldC5wcmkKaW5kZXggNTgxYzBl
OS4uNTg1YmQ2MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVGFyZ2V0LnByaQorKysgYi9T
b3VyY2UvV2ViS2l0Mi9UYXJnZXQucHJpCkBAIC0zOSw2ICszOSw3IEBAIEhFQURFUlMgKz0gXAog
ICAgIFNoYXJlZC9BUEkvYy9XS0Jhc2UuaCBcCiAgICAgU2hhcmVkL0FQSS9jL1dLQ2VydGlmaWNh
dGVJbmZvLmggXAogICAgIFNoYXJlZC9BUEkvYy9XS0Nvbm5lY3Rpb25SZWYuaCBcCisgICAgU2hh
cmVkL0FQSS9jL1dLQ29uc29sZVR5cGVzLmggXAogICAgIFNoYXJlZC9BUEkvYy9XS0NvbnRleHRN
ZW51SXRlbS5oIFwKICAgICBTaGFyZWQvQVBJL2MvV0tDb250ZXh0TWVudUl0ZW1UeXBlcy5oIFwK
ICAgICBTaGFyZWQvQVBJL2MvV0tEaWN0aW9uYXJ5LmggXApAQCAtNjYsNiArNjcsNyBAQCBIRUFE
RVJTICs9IFwKICAgICBTaGFyZWQvU2hhcmVhYmxlQml0bWFwLmggXAogICAgIFNoYXJlZC9DYWNo
ZU1vZGVsLmggXAogICAgIFNoYXJlZC9DaGlsZFByb2Nlc3MuaCBcCisgICAgU2hhcmVkL0NvbnNv
bGVNZXNzYWdlLmggXAogICAgIFNoYXJlZC9EaWN0aW9uYXJ5UG9wdXBJbmZvLmggXAogICAgIFNo
YXJlZC9FZGl0b3JTdGF0ZS5oIFwKICAgICBTaGFyZWQvRm9udEluZm8uaCBcCkBAIC00MjMsNiAr
NDI1LDcgQEAgU09VUkNFUyArPSBcCiAgICAgU2hhcmVkL1BsdWdpbnMvUGx1Z2luTW9kdWxlSW5m
by5jcHAgXAogICAgIFNoYXJlZC9QbHVnaW5zL1BsdWdpblByb2Nlc3NDcmVhdGlvblBhcmFtZXRl
cnMuY3BwIFwKICAgICBTaGFyZWQvQ2hpbGRQcm9jZXNzLmNwcCBcCisgICAgU2hhcmVkL0NvbnNv
bGVNZXNzYWdlLmNwcCBcCiAgICAgU2hhcmVkL0RpY3Rpb25hcnlQb3B1cEluZm8uY3BwIFwKICAg
ICBTaGFyZWQvRWRpdG9yU3RhdGUuY3BwIFwKICAgICBTaGFyZWQvRm9udEluZm8uY3BwIFwKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS1BhZ2UuaCBiL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS1BhZ2UuaAppbmRleCBiMDdiNmMwLi42YzJjMTFm
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tQYWdlLmgKKysr
IGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLUGFnZS5oCkBAIC0yNyw2ICsyNyw3
IEBACiAjZGVmaW5lIFdLUGFnZV9oCiAKICNpbmNsdWRlIDxXZWJLaXQyL1dLQmFzZS5oPgorI2lu
Y2x1ZGUgPFdlYktpdDIvV0tDb25zb2xlVHlwZXMuaD4KICNpbmNsdWRlIDxXZWJLaXQyL1dLRXZl
bnQuaD4KICNpbmNsdWRlIDxXZWJLaXQyL1dLRmluZE9wdGlvbnMuaD4KICNpbmNsdWRlIDxXZWJL
aXQyL1dLR2VvbWV0cnkuaD4KQEAgLTIwNSw2ICsyMDYsNyBAQCB0eXBlZGVmIHZvaWQgKCpXS1Bh
Z2VQcmludEZyYW1lQ2FsbGJhY2spKFdLUGFnZVJlZiBwYWdlLCBXS0ZyYW1lUmVmIGZyYW1lLCBj
b25zdAogdHlwZWRlZiB2b2lkICgqV0tQYWdlU2F2ZURhdGFUb0ZpbGVJbkRvd25sb2Fkc0ZvbGRl
ckNhbGxiYWNrKShXS1BhZ2VSZWYgcGFnZSwgV0tTdHJpbmdSZWYgc3VnZ2VzdGVkRmlsZW5hbWUs
IFdLU3RyaW5nUmVmIG1pbWVUeXBlLCBXS1VSTFJlZiBvcmlnaW5hdGluZ1VSTCwgV0tEYXRhUmVm
IGRhdGEsIGNvbnN0IHZvaWQqIGNsaWVudEluZm8pOwogdHlwZWRlZiBib29sICgqV0tQYWdlU2hv
dWxkSW50ZXJydXB0SmF2YVNjcmlwdENhbGxiYWNrKShXS1BhZ2VSZWYgcGFnZSwgY29uc3Qgdm9p
ZCAqY2xpZW50SW5mbyk7CiB0eXBlZGVmIHZvaWQgKCpXS1BhZ2VEZWNpZGVQb2xpY3lGb3JOb3Rp
ZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdENhbGxiYWNrKShXS1BhZ2VSZWYgcGFnZSwgV0tTZWN1
cml0eU9yaWdpblJlZiBvcmlnaW4sIFdLTm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3RSZWYg
cGVybWlzc2lvblJlcXVlc3QsIGNvbnN0IHZvaWQgKmNsaWVudEluZm8pOwordHlwZWRlZiB2b2lk
ICgqV0tQYWdlQWRkTWVzc2FnZVRvQ29uc29sZSkoV0tQYWdlUmVmIHBhZ2UsIFdLTWVzc2FnZVNv
dXJjZVR5cGUgc291cmNlLCBXS01lc3NhZ2VMZXZlbFR5cGUgbGV2ZWwsIFdLU3RyaW5nUmVmIG1l
c3NhZ2UsIHVuc2lnbmVkIGxpbmVOdW1iZXIsIFdLU3RyaW5nUmVmIHNvdXJjZUlELCBjb25zdCB2
b2lkKiBjbGllbnRJbmZvKTsKIAogLy8gRGVwcmVjYXRlZCAgICAKIHR5cGVkZWYgV0tQYWdlUmVm
ICgqV0tQYWdlQ3JlYXRlTmV3UGFnZUNhbGxiYWNrX2RlcHJlY2F0ZWRGb3JVc2VXaXRoVjApKFdL
UGFnZVJlZiBwYWdlLCBXS0RpY3Rpb25hcnlSZWYgZmVhdHVyZXMsIFdLRXZlbnRNb2RpZmllcnMg
bW9kaWZpZXJzLCBXS0V2ZW50TW91c2VCdXR0b24gbW91c2VCdXR0b24sIGNvbnN0IHZvaWQgKmNs
aWVudEluZm8pOwpAQCAtMjUzLDEyICsyNTUsMTMgQEAgc3RydWN0IFdLUGFnZVVJQ2xpZW50IHsK
ICAgICBXS1BhZ2VDYWxsYmFjayAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIHJ1bk1vZGFsOwogICAgIHZvaWQqICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW51c2VkMTsgLy8gVXNl
ZCB0byBiZSBkaWRDb21wbGV0ZVJ1YmJlckJhbmRGb3JNYWluRnJhbWUKICAgICBXS1BhZ2VTYXZl
RGF0YVRvRmlsZUluRG93bmxvYWRzRm9sZGVyQ2FsbGJhY2sgICAgICAgICAgICAgICAgICAgICAg
IHNhdmVEYXRhVG9GaWxlSW5Eb3dubG9hZHNGb2xkZXI7Ci0gICAgV0tQYWdlU2hvdWxkSW50ZXJy
dXB0SmF2YVNjcmlwdENhbGxiYWNrICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaG91bGRJ
bnRlcnJ1cHRKYXZhU2NyaXB0OyAgICAKKyAgICBXS1BhZ2VTaG91bGRJbnRlcnJ1cHRKYXZhU2Ny
aXB0Q2FsbGJhY2sgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNob3VsZEludGVycnVwdEph
dmFTY3JpcHQ7CiAKICAgICAvLyBWZXJzaW9uIDEKICAgICBXS1BhZ2VDcmVhdGVOZXdQYWdlQ2Fs
bGJhY2sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNyZWF0ZU5ld1Bh
Z2U7CiAgICAgV0tQYWdlTW91c2VEaWRNb3ZlT3ZlckVsZW1lbnRDYWxsYmFjayAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBtb3VzZURpZE1vdmVPdmVyRWxlbWVudDsKICAgICBXS1BhZ2VE
ZWNpZGVQb2xpY3lGb3JOb3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdENhbGxiYWNrICAgICAg
ICAgIGRlY2lkZVBvbGljeUZvck5vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0OworICAgIFdL
UGFnZUFkZE1lc3NhZ2VUb0NvbnNvbGUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgYWRkTWVzc2FnZVRvQ29uc29sZTsKIH07CiB0eXBlZGVmIHN0cnVjdCBXS1BhZ2VV
SUNsaWVudCBXS1BhZ2VVSUNsaWVudDsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFn
ZVByb3h5LmNwcAppbmRleCAyOTY2YTc4Li5hOTRiYmIyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvV2ViUGFnZVByb3h5LmNwcApAQCAtMjgsNiArMjgsNyBAQAogCiAjaW5jbHVkZSAiQXV0
aGVudGljYXRpb25DaGFsbGVuZ2VQcm94eS5oIgogI2luY2x1ZGUgIkF1dGhlbnRpY2F0aW9uRGVj
aXNpb25MaXN0ZW5lci5oIgorI2luY2x1ZGUgIkNvbnNvbGVNZXNzYWdlLmgiCiAjaW5jbHVkZSAi
RGF0YVJlZmVyZW5jZS5oIgogI2luY2x1ZGUgIkRvd25sb2FkUHJveHkuaCIKICNpbmNsdWRlICJE
cmF3aW5nQXJlYVByb3h5LmgiCkBAIC0yNDMwLDYgKzI0MzEsMTEgQEAgdm9pZCBXZWJQYWdlUHJv
eHk6OnNldE1lZGlhVm9sdW1lKGZsb2F0IHZvbHVtZSkKICAgICBwcm9jZXNzKCktPnNlbmQoTWVz
c2FnZXM6OldlYlBhZ2U6OlNldE1lZGlhVm9sdW1lKHZvbHVtZSksIG1fcGFnZUlEKTsgICAgCiB9
CiAKK3ZvaWQgV2ViUGFnZVByb3h5OjphZGRNZXNzYWdlVG9Db25zb2xlKGNvbnN0IENvbnNvbGVN
ZXNzYWdlJiBjb25zb2xlTWVzc2FnZSkKK3sKKyAgICBtX3VpQ2xpZW50LmFkZE1lc3NhZ2VUb0Nv
bnNvbGUodGhpcywgY29uc29sZU1lc3NhZ2UpOworfQorCiAjaWYgUExBVEZPUk0oUVQpCiB2b2lk
IFdlYlBhZ2VQcm94eTo6ZGlkQ2hhbmdlQ29udGVudHNTaXplKGNvbnN0IEludFNpemUmIHNpemUp
CiB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5Lmgg
Yi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKaW5kZXggMGNhZTJmNy4u
MjdhZDU0NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94
eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaApAQCAtMTM2
LDYgKzEzNiw3IEBAIGNsYXNzIFdlYlByb2Nlc3NQcm94eTsKIGNsYXNzIFdlYlVSTFJlcXVlc3Q7
CiBjbGFzcyBXZWJXaGVlbEV2ZW50Owogc3RydWN0IEF0dHJpYnV0ZWRTdHJpbmc7CitzdHJ1Y3Qg
Q29uc29sZU1lc3NhZ2U7CiBzdHJ1Y3QgRGljdGlvbmFyeVBvcHVwSW5mbzsKIHN0cnVjdCBFZGl0
b3JTdGF0ZTsKIHN0cnVjdCBQbGF0Zm9ybVBvcHVwTWVudURhdGE7CkBAIC03MzYsNiArNzM3LDcg
QEAgcHJpdmF0ZToKICAgICB2b2lkIGRpZENoYW5nZVBhZ2VDb3VudCh1bnNpZ25lZCk7CiAgICAg
dm9pZCBkaWRGYWlsVG9Jbml0aWFsaXplUGx1Z2luKGNvbnN0IFN0cmluZyYgbWltZVR5cGUpOwog
ICAgIHZvaWQgc2V0Q2FuU2hvcnRDaXJjdWl0SG9yaXpvbnRhbFdoZWVsRXZlbnRzKGJvb2wgY2Fu
U2hvcnRDaXJjdWl0SG9yaXpvbnRhbFdoZWVsRXZlbnRzKSB7IG1fY2FuU2hvcnRDaXJjdWl0SG9y
aXpvbnRhbFdoZWVsRXZlbnRzID0gY2FuU2hvcnRDaXJjdWl0SG9yaXpvbnRhbFdoZWVsRXZlbnRz
OyB9CisgICAgdm9pZCBhZGRNZXNzYWdlVG9Db25zb2xlKGNvbnN0IENvbnNvbGVNZXNzYWdlJik7
CiAKICAgICB2b2lkIHJlYXR0YWNoVG9XZWJQcm9jZXNzKCk7CiAgICAgdm9pZCByZWF0dGFjaFRv
V2ViUHJvY2Vzc1dpdGhJdGVtKFdlYkJhY2tGb3J3YXJkTGlzdEl0ZW0qKTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkubWVzc2FnZXMuaW4gYi9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5Lm1lc3NhZ2VzLmluCmluZGV4IDRjMzVj
NGQuLjFjODVjOTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdl
UHJveHkubWVzc2FnZXMuaW4KKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQ
cm94eS5tZXNzYWdlcy5pbgpAQCAtNjcsNiArNjcsNyBAQCBtZXNzYWdlcyAtPiBXZWJQYWdlUHJv
eHkgewogICAgIERpZENoYW5nZVBhZ2VDb3VudCh1bnNpZ25lZCBwYWdlQ291bnQpOwogICAgIERp
ZEZhaWxUb0luaXRpYWxpemVQbHVnaW4oV1RGOjpTdHJpbmcgbWltZVR5cGUpCiAgICAgU2V0Q2Fu
U2hvcnRDaXJjdWl0SG9yaXpvbnRhbFdoZWVsRXZlbnRzKGJvb2wgY2FuU2hvcnRDaXJjdWl0SG9y
aXpvbnRhbFdoZWVsRXZlbnRzKQorICAgIEFkZE1lc3NhZ2VUb0NvbnNvbGUoV2ViS2l0OjpDb25z
b2xlTWVzc2FnZSBjb25zb2xlTWVzc2FnZSkKIAogI2lmIFVTRShUSUxFRF9CQUNLSU5HX1NUT1JF
KQogICAgIFBhZ2VEaWRSZXF1ZXN0U2Nyb2xsKFdlYkNvcmU6OkludFBvaW50IHBvaW50KQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlVJQ2xpZW50LmNwcCBiL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJVSUNsaWVudC5jcHAKaW5kZXggZDAxMzEyMi4uNWFiMzky
ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlVJQ2xpZW50LmNwcAor
KysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViVUlDbGllbnQuY3BwCkBAIC00MTEsNCAr
NDExLDEyIEBAIGJvb2wgV2ViVUlDbGllbnQ6OnNob3VsZEludGVycnVwdEphdmFTY3JpcHQoV2Vi
UGFnZVByb3h5KiBwYWdlKQogICAgIHJldHVybiBtX2NsaWVudC5zaG91bGRJbnRlcnJ1cHRKYXZh
U2NyaXB0KHRvQVBJKHBhZ2UpLCBtX2NsaWVudC5jbGllbnRJbmZvKTsKIH0KIAordm9pZCBXZWJV
SUNsaWVudDo6YWRkTWVzc2FnZVRvQ29uc29sZShXZWJQYWdlUHJveHkqIHBhZ2UsIGNvbnN0IENv
bnNvbGVNZXNzYWdlJiBjb25zb2xlTWVzc2FnZSkKK3sKKyAgICBpZiAoIW1fY2xpZW50LmFkZE1l
c3NhZ2VUb0NvbnNvbGUpCisgICAgICAgIHJldHVybjsKKworICAgIG1fY2xpZW50LmFkZE1lc3Nh
Z2VUb0NvbnNvbGUodG9BUEkocGFnZSksIHRvQVBJKGNvbnNvbGVNZXNzYWdlLnNvdXJjZSksIHRv
QVBJKGNvbnNvbGVNZXNzYWdlLmxldmVsKSwgdG9BUEkoY29uc29sZU1lc3NhZ2UubWVzc2FnZS5p
bXBsKCkpLCBjb25zb2xlTWVzc2FnZS5saW5lTnVtYmVyLCB0b0FQSShjb25zb2xlTWVzc2FnZS5z
b3VyY2VJRC5pbXBsKCkpLCBtX2NsaWVudC5jbGllbnRJbmZvKTsKK30KKwogfSAvLyBuYW1lc3Bh
Y2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViVUlDbGll
bnQuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJVSUNsaWVudC5oCmluZGV4IDgzNWU2
Y2UuLmZlZDdkODYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJVSUNs
aWVudC5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJVSUNsaWVudC5oCkBAIC0y
Nyw2ICsyNyw3IEBACiAjZGVmaW5lIFdlYlVJQ2xpZW50X2gKIAogI2luY2x1ZGUgIkFQSUNsaWVu
dC5oIgorI2luY2x1ZGUgIkNvbnNvbGVNZXNzYWdlLmgiCiAjaW5jbHVkZSAiV0tQYWdlLmgiCiAj
aW5jbHVkZSAiV2ViRXZlbnQuaCIKICNpbmNsdWRlICJXZWJIaXRUZXN0UmVzdWx0LmgiCkBAIC0x
MTUsNiArMTE2LDggQEAgcHVibGljOgogICAgIHZvaWQgc2F2ZURhdGFUb0ZpbGVJbkRvd25sb2Fk
c0ZvbGRlcihXZWJQYWdlUHJveHkqLCBjb25zdCBTdHJpbmcmIHN1Z2dlc3RlZEZpbGVuYW1lLCBj
b25zdCBTdHJpbmcmIG1pbWVUeXBlLCBjb25zdCBTdHJpbmcmIG9yaWdpbmF0aW5nVVJMU3RyaW5n
LCBXZWJEYXRhKik7CiAKICAgICBib29sIHNob3VsZEludGVycnVwdEphdmFTY3JpcHQoV2ViUGFn
ZVByb3h5Kik7CisKKyAgICB2b2lkIGFkZE1lc3NhZ2VUb0NvbnNvbGUoV2ViUGFnZVByb3h5Kiwg
Y29uc3QgQ29uc29sZU1lc3NhZ2UmKTsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViS2l0Mi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9q
IGIvU291cmNlL1dlYktpdDIvV2ViS2l0Mi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4
IDE3OWM5NjEuLjgwOTI0ZTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYktpdDIueGNv
ZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJLaXQyLnhjb2Rl
cHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTQ3Myw2ICs0NzMsNyBAQAogCQlCNjM0MDNGOTE0OTEw
RDU3MDAxMDcwQjUgLyogQVBJT2JqZWN0LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IEI2MzQwM0Y4MTQ5MTBENTcwMDEwNzBCNSAvKiBBUElPYmplY3Qu
Y3BwICovOyB9OwogCQlCODc4QjYxNTEzMzQyOERDMDA2ODg4RTkgLyogQ29ycmVjdGlvblBhbmVs
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCODc4QjYx
MzEzMzQyOERDMDA2ODg4RTkgLyogQ29ycmVjdGlvblBhbmVsLmggKi87IH07CiAJCUI4NzhCNjE2
MTMzNDI4REMwMDY4ODhFOSAvKiBDb3JyZWN0aW9uUGFuZWwubW0gaW4gU291cmNlcyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCODc4QjYxNDEzMzQyOERDMDA2ODg4RTkgLyog
Q29ycmVjdGlvblBhbmVsLm1tICovOyB9OworCQlCOTgzQkJEMTdDRkJBRjI2OTNDN0M3QzAgLyog
Q29uc29sZU1lc3NhZ2UuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gRkYzMUU4NTIzRDNEQ0Q2RkY0OEYzM0JGIC8qIENvbnNvbGVNZXNzYWdlLmNwcCAq
LzsgfTsKIAkJQkMwMDkyRjgxMTU4MzdBMzAwRTBBRTJBIC8qIFdvcmtRdWV1ZU1hYy5jcHAgaW4g
U291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCQzAwOTJGNjExNTgz
N0EzMDBFMEFFMkEgLyogV29ya1F1ZXVlTWFjLmNwcCAqLzsgfTsKIAkJQkMwMzJENzUxMEY0Mzc4
RDAwNThDMTVBIC8qIFdlYkNocm9tZUNsaWVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gQkMwMzJENjAxMEY0Mzc4RDAwNThDMTVBIC8qIFdlYkNocm9t
ZUNsaWVudC5oICovOyB9OwogCQlCQzAzMkQ3NzEwRjQzNzhEMDA1OEMxNUEgLyogV2ViQ29udGV4
dE1lbnVDbGllbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IEJDMDMyRDYyMTBGNDM3OEQwMDU4QzE1QSAvKiBXZWJDb250ZXh0TWVudUNsaWVudC5oICov
OyB9OwpAQCAtMTQ1OCw2ICsxNDU5LDcgQEAKIAkJNTFEMTMwNTcxMzgyRjEwNTAwMzUxRUREIC8q
IFdlYlByb2Nlc3NQcm94eU1hYy5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsg
cGF0aCA9IFdlYlByb2Nlc3NQcm94eU1hYy5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJNTI3MkIyODgxNDA2OTg1RDAwOTZBNUQwIC8qIFN0YXRpc3RpY3NEYXRhLmNwcCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFN0YXRpc3RpY3NEYXRhLmNwcDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTI3MkIyODkxNDA2OTg1RDAwOTZBNUQwIC8qIFN0YXRp
c3RpY3NEYXRhLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFN0YXRpc3RpY3NE
YXRhLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTVCRjBFRDg3NEE5ODkzNkMyQTIw
RjNBMSAvKiBXS0NvbnNvbGVUeXBlcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBXS0NvbnNvbGVUeXBlcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1RDUxODQ1
MzEzQkNGOUNDMDBDN0ZGNEEgLyogQVBJQ2xpZW50VHJhaXRzLmNwcCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEFQSUNsaWVudFRyYWl0cy5jcHA7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCTVENTE4NDU0MTNCQ0Y5Q0MwMEM3RkY0QSAvKiBBUElDbGllbnRUcmFp
dHMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQVBJQ2xpZW50VHJhaXRzLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTVEQTZFRDA4MTQ5MDYwNjkwMEI0MUQxMiAv
KiBEeW5hbWljTGlua2VyRW52aXJvbm1lbnRFeHRyYWN0b3IuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gRHluYW1pY0xpbmtlckVudmlyb25tZW50RXh0cmFjdG9yLmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xNDY5LDYgKzE0NzEsNyBAQAogCQk2NUI4NkYxNzEy
RjExRDdCMDBCN0REOEEgLyogV0tCdW5kbGVJbnNwZWN0b3IuY3BwICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAuY3BwOyBwYXRoID0gV0tCdW5kbGVJbnNwZWN0b3IuY3BwOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQk2NUI4NkYxODEyRjExRDdCMDBCN0REOEEgLyogV0tCdW5kbGVJbnNw
ZWN0b3IuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV0tCdW5kbGVJbnNwZWN0
b3IuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNkQ4QTkxQTUxMUYwRUZEMTAwREQw
MUZFIC8qIGNvbS5hcHBsZS5XZWJQcm9jZXNzLnNiLmluICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgbmFtZSA9
IGNvbS5hcHBsZS5XZWJQcm9jZXNzLnNiLmluOyBwYXRoID0gV2ViUHJvY2Vzcy9jb20uYXBwbGUu
V2ViUHJvY2Vzcy5zYi5pbjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNkU4OENFQUY0
M0M5Q0RFMkZFOURGNUQ2IC8qIENvbnNvbGVNZXNzYWdlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IENvbnNvbGVNZXNzYWdlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCTZFRTg0OUM2MTM2OEQ5MkQwMDM4RDQ4MSAvKiBXS0luc3BlY3RvclByaXZhdGVNYWMuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gV0tJbnNwZWN0b3JQcml2YXRlTWFjLmg7
IHBhdGggPSBtYWMvV0tJbnNwZWN0b3JQcml2YXRlTWFjLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCTc2MkI3NDgxMTIwQkJBMDEwMDgxOTMzOSAvKiBGb250U21vb3RoaW5nTGV2ZWwu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRm9udFNtb290aGluZ0xldmVsLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTc2MkI3NDg0MTIwQkJBMkQwMDgxOTMzOSAv
KiBXS1ByZWZlcmVuY2VzUHJpdmF0ZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBXS1ByZWZlcmVuY2VzUHJpdmF0ZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAt
MTk4OSw2ICsxOTkyLDcgQEAKIAkJRjZBMjVGREIxMkFEQzZDQzAwREM0MENDIC8qIFdlYkRhdGFi
YXNlTWFuYWdlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJEYXRhYmFz
ZU1hbmFnZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRjZBOTA4MTExMzNDMUYz
RDAwODJDM0Y0IC8qIFdlYkNvb2tpZU1hbmFnZXJNYWMubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5vYmpjcHA7IHBhdGggPSBXZWJDb29raWVNYW5hZ2VyTWFjLm1tOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQlGNkQ2MzJCQTEzM0QxODFCMDA3NDNENzcgLyogV2ViQ29va2llTWFu
YWdlclByb3h5TWFjLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0g
V2ViQ29va2llTWFuYWdlclByb3h5TWFjLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owor
CQlGRjMxRTg1MjNEM0RDRDZGRjQ4RjMzQkYgLyogQ29uc29sZU1lc3NhZ2UuY3BwICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gQ29uc29sZU1lc3NhZ2UuY3BwOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogLyogRW5kIFBCWEZpbGVSZWZlcmVuY2Ugc2VjdGlvbiAqLwog
CiAvKiBCZWdpbiBQQlhGcmFtZXdvcmtzQnVpbGRQaGFzZSBzZWN0aW9uICovCkBAIC0yMzMzLDYg
KzIzMzcsOCBAQAogCQkJCTFBMkQ5NTZFMTI4NDg1NjQwMDFFQjk2MiAvKiBDaGlsZFByb2Nlc3Mu
Y3BwICovLAogCQkJCTFBMkQ5NTZEMTI4NDg1NjQwMDFFQjk2MiAvKiBDaGlsZFByb2Nlc3MuaCAq
LywKIAkJCQkxQTZGOUY4RTExRTEzRUZDMDBEQjEzNzEgLyogQ29tbWFuZExpbmUuaCAqLywKKwkJ
CQlGRjMxRTg1MjNEM0RDRDZGRjQ4RjMzQkYgLyogQ29uc29sZU1lc3NhZ2UuY3BwICovLAorCQkJ
CTZFODhDRUFGNDNDOUNERTJGRTlERjVENiAvKiBDb25zb2xlTWVzc2FnZS5oICovLAogCQkJCUJD
RTgxRDk2MTMxQUUwMjAwMDI0MTkxMCAvKiBEaWN0aW9uYXJ5UG9wdXBJbmZvLmNwcCAqLywKIAkJ
CQlCQ0U4MUQ5NzEzMUFFMDIxMDAyNDE5MTAgLyogRGljdGlvbmFyeVBvcHVwSW5mby5oICovLAog
CQkJCUM1MTczODgwMTJERjhGNEYwMEVFM0Y0NyAvKiBEcmFnQ29udHJvbGxlckFjdGlvbi5oICov
LApAQCAtMzQ4Niw2ICszNDkyLDcgQEAKIAkJCQlCQzQwNzVEQTEyNEZGMDI3MDA2OEYyMEEgLyog
V0tDZXJ0aWZpY2F0ZUluZm8uaCAqLywKIAkJCQlCQzRBNjI5NDE0NzMxM0EwMDA2QzY4MUEgLyog
V0tDb25uZWN0aW9uUmVmLmNwcCAqLywKIAkJCQlCQzRBNjI5NTE0NzMxM0EwMDA2QzY4MUEgLyog
V0tDb25uZWN0aW9uUmVmLmggKi8sCisJCQkJNUJGMEVEODc0QTk4OTM2QzJBMjBGM0ExIC8qIFdL
Q29uc29sZVR5cGVzLmggKi8sCiAJCQkJNTFBNTU1RjMxMjhDNkM0NzAwOUFCQ0VDIC8qIFdLQ29u
dGV4dE1lbnVJdGVtLmNwcCAqLywKIAkJCQk1MUE1NTVGNDEyOEM2QzQ3MDA5QUJDRUMgLyogV0tD
b250ZXh0TWVudUl0ZW0uaCAqLywKIAkJCQk1MUE1NTYwMDEyOEM2RDkyMDA5QUJDRUMgLyogV0tD
b250ZXh0TWVudUl0ZW1UeXBlcy5oICovLApAQCAtNDUxOCw2ICs0NTI1LDcgQEAKIAkJCQkxQTZG
OUZCNzExRTE0MDg1MDBEQjEzNzEgLyogQ29tbWFuZExpbmVNYWMuY3BwIGluIFNvdXJjZXMgKi8s
CiAJCQkJQkMwMzJEQUExMEY0MzdEMTAwNThDMTVBIC8qIENvbm5lY3Rpb24uY3BwIGluIFNvdXJj
ZXMgKi8sCiAJCQkJMUEzMEVBQzYxMTVEN0RBMzAwNTNFOTM3IC8qIENvbm5lY3Rpb25NYWMuY3Bw
IGluIFNvdXJjZXMgKi8sCisJCQkJQjk4M0JCRDE3Q0ZCQUYyNjkzQzdDN0MwIC8qIENvbnNvbGVN
ZXNzYWdlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUI4NzhCNjE2MTMzNDI4REMwMDY4ODhFOSAv
KiBDb3JyZWN0aW9uUGFuZWwubW0gaW4gU291cmNlcyAqLywKIAkJCQkxQThFRkRGRTEyNTNDQjZF
MDBGNzA2N0YgLyogRGF0YVJlZmVyZW5jZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk5M0ZDNjdC
RDEyRDNDQ0YyMDBBNjA2MTAgLyogRGVjb2RlckFkYXB0ZXIuY3BwIGluIFNvdXJjZXMgKi8sCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNo
cm9tZUNsaWVudC5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0
L1dlYkNocm9tZUNsaWVudC5jcHAKaW5kZXggNjlmMTZiMi4uN2MwMDUyNiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQu
Y3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hy
b21lQ2xpZW50LmNwcApAQCAtMjcsNiArMjcsNyBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2lu
Y2x1ZGUgIldlYkNocm9tZUNsaWVudC5oIgogCisjaW5jbHVkZSAiQ29uc29sZU1lc3NhZ2UuaCIK
ICNpbmNsdWRlICJEcmF3aW5nQXJlYS5oIgogI2luY2x1ZGUgIkluamVjdGVkQnVuZGxlTmF2aWdh
dGlvbkFjdGlvbi5oIgogI2luY2x1ZGUgIkluamVjdGVkQnVuZGxlVXNlck1lc3NhZ2VDb2RlcnMu
aCIKQEAgLTI2MCwxMiArMjYxLDE4IEBAIHZvaWQgV2ViQ2hyb21lQ2xpZW50OjpzZXRSZXNpemFi
bGUoYm9vbCByZXNpemFibGUpCiAgICAgbV9wYWdlLT5zZW5kKE1lc3NhZ2VzOjpXZWJQYWdlUHJv
eHk6OlNldElzUmVzaXphYmxlKHJlc2l6YWJsZSkpOwogfQogCi12b2lkIFdlYkNocm9tZUNsaWVu
dDo6YWRkTWVzc2FnZVRvQ29uc29sZShNZXNzYWdlU291cmNlLCBNZXNzYWdlVHlwZSwgTWVzc2Fn
ZUxldmVsLCBjb25zdCBTdHJpbmcmIG1lc3NhZ2UsIHVuc2lnbmVkIGludCBsaW5lTnVtYmVyLCBj
b25zdCBTdHJpbmcmIHNvdXJjZUlEKQordm9pZCBXZWJDaHJvbWVDbGllbnQ6OmFkZE1lc3NhZ2VU
b0NvbnNvbGUoTWVzc2FnZVNvdXJjZSBzb3VyY2UsIE1lc3NhZ2VUeXBlLCBNZXNzYWdlTGV2ZWwg
bGV2ZWwsIGNvbnN0IFN0cmluZyYgbWVzc2FnZSwgdW5zaWduZWQgaW50IGxpbmVOdW1iZXIsIGNv
bnN0IFN0cmluZyYgc291cmNlSUQpCiB7CiAgICAgLy8gTm90aWZ5IHRoZSBidW5kbGUgY2xpZW50
LgogICAgIG1fcGFnZS0+aW5qZWN0ZWRCdW5kbGVVSUNsaWVudCgpLndpbGxBZGRNZXNzYWdlVG9D
b25zb2xlKG1fcGFnZSwgbWVzc2FnZSwgbGluZU51bWJlcik7CiAKLSAgICBub3RJbXBsZW1lbnRl
ZCgpOworICAgIENvbnNvbGVNZXNzYWdlIGNvbnNvbGVNZXNzYWdlOworICAgIGNvbnNvbGVNZXNz
YWdlLnNvdXJjZSA9IHNvdXJjZTsKKyAgICBjb25zb2xlTWVzc2FnZS5sZXZlbCA9IGxldmVsOwor
ICAgIGNvbnNvbGVNZXNzYWdlLm1lc3NhZ2UgPSBtZXNzYWdlOworICAgIGNvbnNvbGVNZXNzYWdl
LmxpbmVOdW1iZXIgPSBsaW5lTnVtYmVyOworICAgIGNvbnNvbGVNZXNzYWdlLnNvdXJjZUlEID0g
c291cmNlSUQ7CisgICAgbV9wYWdlLT5zZW5kKE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OkFkZE1l
c3NhZ2VUb0NvbnNvbGUoY29uc29sZU1lc3NhZ2UpKTsKIH0KIAogYm9vbCBXZWJDaHJvbWVDbGll
bnQ6OmNhblJ1bkJlZm9yZVVubG9hZENvbmZpcm1QYW5lbCgpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0Mi93aW4vV2ViS2l0Mi52Y3Byb2ogYi9Tb3VyY2UvV2ViS2l0Mi93aW4vV2ViS2l0Mi52
Y3Byb2oKaW5kZXggZmI5NWE5ZC4uOTljNWMwMyAxMDA3NTUKLS0tIGEvU291cmNlL1dlYktpdDIv
d2luL1dlYktpdDIudmNwcm9qCisrKyBiL1NvdXJjZS9XZWJLaXQyL3dpbi9XZWJLaXQyLnZjcHJv
agpAQCAtNDI2LDYgKzQyNiwxNCBAQAogCQkJCVJlbGF0aXZlUGF0aD0iLi5cU2hhcmVkXENvbW1h
bmRMaW5lLmgiCiAJCQkJPgogCQkJPC9GaWxlPgorICAgICAgICAgICAgICAgICAgICAgICAgPEZp
bGUKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUmVsYXRpdmVQYXRoPSIuLlxTaGFy
ZWRcQ29uc29sZU1lc3NhZ2UuY3BwIgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+
CisgICAgICAgICAgICAgICAgICAgICAgICA8L0ZpbGU+CisgICAgICAgICAgICAgICAgICAgICAg
ICA8RmlsZQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZWxhdGl2ZVBhdGg9Ii4u
XFNoYXJlZFxDb25zb2xlTWVzc2FnZS5oIgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICA+CisgICAgICAgICAgICAgICAgICAgICAgICA8L0ZpbGU+CiAJCQk8RmlsZQogCQkJCVJlbGF0
aXZlUGF0aD0iLi5cU2hhcmVkXERpY3Rpb25hcnlQb3B1cEluZm8uY3BwIgogCQkJCT4KQEAgLTg4
OSw2ICs4OTcsMTAgQEAKIAkJCQkJUmVsYXRpdmVQYXRoPSIuLlxTaGFyZWRcQVBJXGNcV0tDb25u
ZWN0aW9uUmVmLmgiCiAJCQkJCT4KIAkJCQk8L0ZpbGU+CisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIDxGaWxlCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
UmVsYXRpdmVQYXRoPSIuLlxTaGFyZWRcQVBJXGNcV0tDb25zb2xlVHlwZXMuaCIKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+CisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIDwvRmlsZT4KIAkJCQk8RmlsZQogCQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXFNoYXJl
ZFxBUElcY1xXS0NvbnRleHRNZW51SXRlbS5jcHAiCiAJCQkJCT4KZGlmZiAtLWdpdCBhL1Rvb2xz
L01pbmlCcm93c2VyL21hYy9Ccm93c2VyV2luZG93Q29udHJvbGxlci5tIGIvVG9vbHMvTWluaUJy
b3dzZXIvbWFjL0Jyb3dzZXJXaW5kb3dDb250cm9sbGVyLm0KaW5kZXggNWRiZDVhNy4uM2E1ODg1
MCAxMDA2NDQKLS0tIGEvVG9vbHMvTWluaUJyb3dzZXIvbWFjL0Jyb3dzZXJXaW5kb3dDb250cm9s
bGVyLm0KKysrIGIvVG9vbHMvTWluaUJyb3dzZXIvbWFjL0Jyb3dzZXJXaW5kb3dDb250cm9sbGVy
Lm0KQEAgLTY2OCw2ICs2NjgsNyBAQCAtICh2b2lkKWF3YWtlRnJvbU5pYgogICAgICAgICBjcmVh
dGVOZXdQYWdlLAogICAgICAgICBtb3VzZURpZE1vdmVPdmVyRWxlbWVudCwKICAgICAgICAgMCwg
Ly8gZGVjaWRlUG9saWN5Rm9yTm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3QKKyAgICAgICAg
MCwgLy8gYWRkTWVzc2FnZVRvQ29uc29sZQogICAgIH07CiAgICAgV0tQYWdlU2V0UGFnZVVJQ2xp
ZW50KF93ZWJWaWV3LnBhZ2VSZWYsICZ1aUNsaWVudCk7CiB9CmRpZmYgLS1naXQgYS9Ub29scy9X
ZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250cm9sbGVyLmNwcCBiL1Rvb2xzL1dlYktpdFRlc3RSdW5u
ZXIvVGVzdENvbnRyb2xsZXIuY3BwCmluZGV4IGM5ZTBlNTYuLjBjNTBhYWUgMTAwNjQ0Ci0tLSBh
L1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuY3BwCisrKyBiL1Rvb2xzL1dl
YktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuY3BwCkBAIC0yMTMsNiArMjEzLDcgQEAgV0tQ
YWdlUmVmIFRlc3RDb250cm9sbGVyOjpjcmVhdGVPdGhlclBhZ2UoV0tQYWdlUmVmIG9sZFBhZ2Us
IFdLVVJMUmVxdWVzdFJlZiwgV0sKICAgICAgICAgY3JlYXRlT3RoZXJQYWdlLAogICAgICAgICAw
LCAvLyBtb3VzZURpZE1vdmVPdmVyRWxlbWVudAogICAgICAgICAwLCAvLyBkZWNpZGVQb2xpY3lG
b3JOb3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdAorICAgICAgICAwLCAvLyBhZGRNZXNzYWdl
VG9Db25zb2xlCiAgICAgfTsKICAgICBXS1BhZ2VTZXRQYWdlVUlDbGllbnQobmV3UGFnZSwgJm90
aGVyUGFnZVVJQ2xpZW50KTsKIApAQCAtMzc3LDYgKzM3OCw3IEBAIHZvaWQgVGVzdENvbnRyb2xs
ZXI6OmluaXRpYWxpemUoaW50IGFyZ2MsIGNvbnN0IGNoYXIqIGFyZ3ZbXSkKICAgICAgICAgY3Jl
YXRlT3RoZXJQYWdlLAogICAgICAgICAwLCAvLyBtb3VzZURpZE1vdmVPdmVyRWxlbWVudAogICAg
ICAgICAwLCAvLyBkZWNpZGVQb2xpY3lGb3JOb3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdAor
ICAgICAgICAwLCAvLyBhZGRNZXNzYWdlVG9Db25zb2xlCiAgICAgfTsKICAgICBXS1BhZ2VTZXRQ
YWdlVUlDbGllbnQobV9tYWluV2ViVmlldy0+cGFnZSgpLCAmcGFnZVVJQ2xpZW50KTsKIAo=
</data>
<flag name="commit-queue"
          id="137199"
          type_id="3"
          status="-"
          setter="buildbot"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>134553</attachid>
            <date>2012-03-29 05:20:14 -0700</date>
            <delta_ts>2012-04-23 09:48:17 -0700</delta_ts>
            <desc>Another attempt to fix mac build</desc>
            <filename>wk2-add-message-to-console3.diff</filename>
            <type>text/plain</type>
            <size>32855</size>
            <attacher name="Carlos Garcia Campos">cgarcia</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0No
YW5nZUxvZwppbmRleCA3MjY4MjFkLi5jNmVjZTc0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNDAg
QEAKKzIwMTItMDMtMjkgIENhcmxvcyBHYXJjaWEgQ2FtcG9zICA8Y2dhcmNpYUBpZ2FsaWEuY29t
PgorCisgICAgICAgIFtXSzJdIEltcGxlbWVudCBXZWJDaHJvbWVDbGllbnQ6OmFkZE1lc3NhZ2VU
b0NvbnNvbGUoKQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9Nzk0ODIKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICAqIENNYWtlTGlzdHMudHh0OiBBZGQgbmV3IGZpbGVzIHRvIGNvbXBpbGF0aW9uLgorICAgICAg
ICAqIEdOVW1ha2VmaWxlLmFtOiBEaXR0by4KKyAgICAgICAgKiBTaGFyZWQvQVBJL2MvV0tDb25z
b2xlVHlwZXMuaDogQWRkZWQuCisgICAgICAgICogU2hhcmVkL0FQSS9jL1dLU2hhcmVkQVBJQ2Fz
dC5oOgorICAgICAgICAoV2ViS2l0Ojp0b0FQSSk6IENvbnZlcnQgV2ViQ29yZSBjb25zb2xlIG1l
c3NhZ2UgdHlwZXMgdG8gV2ViS2l0MgorICAgICAgICB0eXBlcy4KKyAgICAgICAgKiBTaGFyZWQv
Q29uc29sZU1lc3NhZ2UuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYktpdCk6CisgICAgICAgIChX
ZWJLaXQ6OkNvbnNvbGVNZXNzYWdlOjplbmNvZGUpOgorICAgICAgICAoV2ViS2l0OjpDb25zb2xl
TWVzc2FnZTo6ZGVjb2RlKToKKyAgICAgICAgKiBTaGFyZWQvQ29uc29sZU1lc3NhZ2UuaDogQWRk
ZWQuCisgICAgICAgICogVGFyZ2V0LnByaTogQWRkIG5ldyBmaWxlcyB0byBjb21waWxhdGlvbi4K
KyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0MvV0tQYWdlLmg6CisgICAgICAgICogVUlQcm9jZXNz
L1dlYlBhZ2VQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6YWRkTWVz
c2FnZVRvQ29uc29sZSk6IE1ldGhvZCB0byBoYW5kbGUKKyAgICAgICAgQWRkTWVzc2FnZVRvQ29u
c29sZSBtZXNzYWdlIHRoYXQganVzdCBjYWxscworICAgICAgICBXZWJVSUNsaWVudDo6YWRkTWVz
c2FnZVRvQ29uc29sZSgpLgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaDoKKyAg
ICAgICAgKiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5Lm1lc3NhZ2VzLmluOiBBZGQgbmV3IG1lc3Nh
Z2UKKyAgICAgICAgQWRkTWVzc2FnZVRvQ29uc29sZS4KKyAgICAgICAgKiBVSVByb2Nlc3MvV2Vi
VUlDbGllbnQuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJVSUNsaWVudDo6YWRkTWVzc2FnZVRv
Q29uc29sZSk6IENhbGwKKyAgICAgICAgYWRkTWVzc2FnZVRvQ29uc29sZSBjYWxsYmFjayBpZiBw
cmVzZW50LgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJVSUNsaWVudC5oOgorICAgICAgICAqIFdl
YktpdDIueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajogQWRkIG5ldyBmaWxlcyB0byBjb21waWxh
dGlvbi4KKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVu
dC5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYkNocm9tZUNsaWVudDo6YWRkTWVzc2FnZVRvQ29u
c29sZSk6IFNlbmQKKyAgICAgICAgQWRkTWVzc2FnZVRvQ29uc29sZSBtZXNzYWdlIHRvIHRoZSBV
SSBwcm9jZXNzLgorICAgICAgICAqIHdpbi9XZWJLaXQyLnZjcHJvajogQWRkIG5ldyBmaWxlcyB0
byBjb21waWxhdGlvbi4KKwogMjAxMi0wMy0yOCAgQW5kZXJzIENhcmxzc29uICA8YW5kZXJzY2FA
YXBwbGUuY29tPgogCiAgICAgICAgIEZpeCBhIGNyYXNoIGFuZCBhbiBhc3NlcnRpb24gd2hlbiBy
ZWNvdmVyaW5nIGZyb20gYSB3ZWIgcHJvY2VzcyBjcmFzaApkaWZmIC0tZ2l0IGEvVG9vbHMvQ2hh
bmdlTG9nIGIvVG9vbHMvQ2hhbmdlTG9nCmluZGV4IGUwMjU0MDIuLjc2NmQ2MWEgMTAwNjQ0Ci0t
LSBhL1Rvb2xzL0NoYW5nZUxvZworKysgYi9Ub29scy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNyBA
QAorMjAxMi0wMy0yOSAgQ2FybG9zIEdhcmNpYSBDYW1wb3MgIDxjZ2FyY2lhQGlnYWxpYS5jb20+
CisKKyAgICAgICAgW1dLMl0gSW1wbGVtZW50IFdlYkNocm9tZUNsaWVudDo6YWRkTWVzc2FnZVRv
Q29uc29sZSgpCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD03OTQ4MgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
ICogTWluaUJyb3dzZXIvbWFjL0Jyb3dzZXJXaW5kb3dDb250cm9sbGVyLm06CisgICAgICAgICgt
W0Jyb3dzZXJXaW5kb3dDb250cm9sbGVyIGF3YWtlRnJvbU5pYl0pOiBBZGQgZW1wdHkKKyAgICAg
ICAgYWRkTWVzc2FnZVRvQ29uc29sZSBjYWxsYmFjayB0byBVSSBjbGllbnQgc3RydWN0LgorICAg
ICAgICAqIFdlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuY3BwOgorICAgICAgICAoV1RS
OjpUZXN0Q29udHJvbGxlcjo6Y3JlYXRlT3RoZXJQYWdlKTogRGl0dG8uCisgICAgICAgIChXVFI6
OlRlc3RDb250cm9sbGVyOjppbml0aWFsaXplKTogRGl0dG8uCisKIDIwMTItMDMtMjggIE1hcmsg
Um93ZSAgPG1yb3dlQGFwcGxlLmNvbT4KIAogICAgICAgICBGaXggLS1uby1zYXZlZC1zdGF0ZS4K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NNYWtlTGlzdHMudHh0IGIvU291cmNlL1dlYktp
dDIvQ01ha2VMaXN0cy50eHQKaW5kZXggYjJmZGU5ZC4uY2JhMTM4NSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdDIvQ01ha2VMaXN0cy50eHQKKysrIGIvU291cmNlL1dlYktpdDIvQ01ha2VMaXN0
cy50eHQKQEAgLTExNSw2ICsxMTUsNyBAQCBTRVQoV2ViS2l0Ml9TT1VSQ0VTCiAgICAgU2hhcmVk
L0FQSUNsaWVudFRyYWl0cy5jcHAKICAgICBTaGFyZWQvQVBJT2JqZWN0LmNwcAogICAgIFNoYXJl
ZC9DaGlsZFByb2Nlc3MuY3BwCisgICAgU2hhcmVkL0NvbnNvbGVNZXNzYWdlLmNwcAogICAgIFNo
YXJlZC9EaWN0aW9uYXJ5UG9wdXBJbmZvLmNwcAogICAgIFNoYXJlZC9FZGl0b3JTdGF0ZS5jcHAK
ICAgICBTaGFyZWQvRm9udEluZm8uY3BwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9HTlVt
YWtlZmlsZS5hbSBiL1NvdXJjZS9XZWJLaXQyL0dOVW1ha2VmaWxlLmFtCmluZGV4IDM2NGQzZDEu
Ljc1ZWYxMTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL0dOVW1ha2VmaWxlLmFtCisrKyBi
L1NvdXJjZS9XZWJLaXQyL0dOVW1ha2VmaWxlLmFtCkBAIC01LDYgKzUsNyBAQCBsaWJ3ZWJraXQy
Z3RrX0BXRUJLSVRHVEtfQVBJX01BSk9SX1ZFUlNJT05AX0BXRUJLSVRHVEtfQVBJX01JTk9SX1ZF
UlNJT05AX2xhX0hFQQogCSQoV2ViS2l0MikvU2hhcmVkL0FQSS9jL1dLQmFzZS5oIFwKIAkkKFdl
YktpdDIpL1NoYXJlZC9BUEkvYy9XS0NlcnRpZmljYXRlSW5mby5oIFwKIAkkKFdlYktpdDIpL1No
YXJlZC9BUEkvYy9XS0Nvbm5lY3Rpb25SZWYuaCBcCisJJChXZWJLaXQyKS9TaGFyZWQvQVBJL2Mv
V0tDb25zb2xlVHlwZXMuaCBcCiAJJChXZWJLaXQyKS9TaGFyZWQvQVBJL2MvV0tDb250ZXh0TWVu
dUl0ZW0uaCBcCiAJJChXZWJLaXQyKS9TaGFyZWQvQVBJL2MvV0tDb250ZXh0TWVudUl0ZW1UeXBl
cy5oIFwKIAkkKFdlYktpdDIpL1NoYXJlZC9BUEkvYy9XS0RhdGEuaCBcCkBAIC0yNjgsNiArMjY5
LDcgQEAgd2Via2l0Ml9zb3VyY2VzICs9IFwKIAlTb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQVBJL2Mv
V0tDZXJ0aWZpY2F0ZUluZm8uaCBcCiAJU291cmNlL1dlYktpdDIvU2hhcmVkL0FQSS9jL1dLQ29u
bmVjdGlvblJlZi5jcHAgXAogCVNvdXJjZS9XZWJLaXQyL1NoYXJlZC9BUEkvYy9XS0Nvbm5lY3Rp
b25SZWYuaCBcCisJU291cmNlL1dlYktpdDIvU2hhcmVkL0FQSS9jL1dLQ29uc29sZVR5cGVzLmgg
XAogCVNvdXJjZS9XZWJLaXQyL1NoYXJlZC9BUEkvYy9XS0NvbnRleHRNZW51SXRlbS5jcHAgXAog
CVNvdXJjZS9XZWJLaXQyL1NoYXJlZC9BUEkvYy9XS0NvbnRleHRNZW51SXRlbS5oIFwKIAlTb3Vy
Y2UvV2ViS2l0Mi9TaGFyZWQvQVBJL2MvV0tDb250ZXh0TWVudUl0ZW1UeXBlcy5oIFwKQEAgLTMy
Myw2ICszMjUsOCBAQCB3ZWJraXQyX3NvdXJjZXMgKz0gXAogCVNvdXJjZS9XZWJLaXQyL1NoYXJl
ZC9DaGlsZFByb2Nlc3MuY3BwIFwKIAlTb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQ2hpbGRQcm9jZXNz
LmggXAogCVNvdXJjZS9XZWJLaXQyL1NoYXJlZC9Db21tYW5kTGluZS5oIFwKKwlTb3VyY2UvV2Vi
S2l0Mi9TaGFyZWQvQ29uc29sZU1lc3NhZ2UuY3BwIFwKKwlTb3VyY2UvV2ViS2l0Mi9TaGFyZWQv
Q29uc29sZU1lc3NhZ2UuaCBcCiAJU291cmNlL1dlYktpdDIvU2hhcmVkL0NvcmVJUENTdXBwb3J0
L0luamVjdGVkQnVuZGxlTWVzc2FnZUtpbmRzLmggXAogCVNvdXJjZS9XZWJLaXQyL1NoYXJlZC9D
b3JlSVBDU3VwcG9ydC9XZWJDb25uZWN0aW9uTWVzc2FnZUtpbmRzLmggXAogCVNvdXJjZS9XZWJL
aXQyL1NoYXJlZC9Db3JlSVBDU3VwcG9ydC9XZWJDb250ZXh0TWVzc2FnZUtpbmRzLmggXApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL0FQSS9jL1dLQ29uc29sZVR5cGVzLmggYi9T
b3VyY2UvV2ViS2l0Mi9TaGFyZWQvQVBJL2MvV0tDb25zb2xlVHlwZXMuaApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwLi5mNWZmODI0Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNl
L1dlYktpdDIvU2hhcmVkL0FQSS9jL1dLQ29uc29sZVR5cGVzLmgKQEAgLTAsMCArMSw1NiBAQAor
LyoKKyAqIENvcHlyaWdodCAoQykgMjAxMiBJZ2FsaWEgUy5MLgorICoKKyAqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAor
ICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJj
ZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIu
IFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBv
dGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRI
SVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9S
UyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBP
RiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9T
RSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09O
VFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVO
VEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVU
RSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJV
U0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZ
IE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFks
IE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcg
SU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklT
RUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVm
IFdLQ29uc29sZVR5cGVzX2gKKyNkZWZpbmUgV0tDb25zb2xlVHlwZXNfaAorCisjaWZkZWYgX19j
cGx1c3BsdXMKK2V4dGVybiAiQyIgeworI2VuZGlmCisKK2VudW0geworICAgIGtXS01lc3NhZ2VT
b3VyY2VIVE1MLAorICAgIGtXS01lc3NhZ2VTb3VyY2VYTUwsCisgICAga1dLTWVzc2FnZVNvdXJj
ZUpTLAorICAgIGtXS01lc3NhZ2VTb3VyY2VOZXR3b3JrLAorICAgIGtXS01lc3NhZ2VTb3VyY2VD
b25zb2xlQVBJLAorICAgIGtXS01lc3NhZ2VTb3VyY2VPdGhlcgorfTsKK3R5cGVkZWYgdWludDMy
X3QgV0tNZXNzYWdlU291cmNlVHlwZTsKKworZW51bSB7CisgICAga1dLTWVzc2FnZUxldmVsVGlw
LAorICAgIGtXS01lc3NhZ2VMZXZlbExvZywKKyAgICBrV0tNZXNzYWdlTGV2ZWxXYXJuaW5nLAor
ICAgIGtXS01lc3NhZ2VMZXZlbEVycm9yLAorICAgIGtXS01lc3NhZ2VMZXZlbERlYnVnCit9Owor
dHlwZWRlZiB1aW50MzJfdCBXS01lc3NhZ2VMZXZlbFR5cGU7CisKKyNpZmRlZiBfX2NwbHVzcGx1
cworfQorI2VuZGlmCisKKyNlbmRpZiAvKiBXS0NvbnNvbGVUeXBlc19oICovCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQVBJL2MvV0tTaGFyZWRBUElDYXN0LmggYi9Tb3VyY2Uv
V2ViS2l0Mi9TaGFyZWQvQVBJL2MvV0tTaGFyZWRBUElDYXN0LmgKaW5kZXggNWU0YmY2OS4uZTBk
MDE4NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvU2hhcmVkL0FQSS9jL1dLU2hhcmVkQVBJ
Q2FzdC5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9BUEkvYy9XS1NoYXJlZEFQSUNhc3Qu
aApAQCAtMjksNiArMjksNyBAQAogI2luY2x1ZGUgIkltYWdlT3B0aW9ucy5oIgogI2luY2x1ZGUg
IlNhbWVEb2N1bWVudE5hdmlnYXRpb25UeXBlLmgiCiAjaW5jbHVkZSAiV0tCYXNlLmgiCisjaW5j
bHVkZSAiV0tDb25zb2xlVHlwZXMuaCIKICNpbmNsdWRlICJXS0NvbnRleHRNZW51SXRlbVR5cGVz
LmgiCiAjaW5jbHVkZSAiV0tFdmVudC5oIgogI2luY2x1ZGUgIldLRmluZE9wdGlvbnMuaCIKQEAg
LTQzLDYgKzQ0LDcgQEAKICNpbmNsdWRlICJXZWJVUkwuaCIKICNpbmNsdWRlICJXZWJVUkxSZXF1
ZXN0LmgiCiAjaW5jbHVkZSAiV2ViVVJMUmVzcG9uc2UuaCIKKyNpbmNsdWRlIDxXZWJDb3JlL0Nv
bnNvbGVUeXBlcy5oPgogI2luY2x1ZGUgPFdlYkNvcmUvQ29udGV4dE1lbnVJdGVtLmg+CiAjaW5j
bHVkZSA8V2ViQ29yZS9GbG9hdFJlY3QuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0ZyYW1lTG9hZGVy
VHlwZXMuaD4KQEAgLTc1NCw2ICs3NTYsNDYgQEAgaW5saW5lIEltYWdlT3B0aW9ucyB0b0ltYWdl
T3B0aW9ucyhXS0ltYWdlT3B0aW9ucyB3a0ltYWdlT3B0aW9ucykKICAgICByZXR1cm4gc3RhdGlj
X2Nhc3Q8SW1hZ2VPcHRpb25zPihpbWFnZU9wdGlvbnMpOwogfQogCitpbmxpbmUgV0tNZXNzYWdl
U291cmNlVHlwZSB0b0FQSShXZWJDb3JlOjpNZXNzYWdlU291cmNlIHNvdXJjZSkKK3sKKyAgICBz
d2l0Y2ggKHNvdXJjZSkgeworICAgIGNhc2UgV2ViQ29yZTo6SFRNTE1lc3NhZ2VTb3VyY2U6Cisg
ICAgICAgIHJldHVybiBrV0tNZXNzYWdlU291cmNlSFRNTDsKKyAgICBjYXNlIFdlYkNvcmU6OlhN
TE1lc3NhZ2VTb3VyY2U6CisgICAgICAgIHJldHVybiBrV0tNZXNzYWdlU291cmNlWE1MOworICAg
IGNhc2UgV2ViQ29yZTo6SlNNZXNzYWdlU291cmNlOgorICAgICAgICByZXR1cm4ga1dLTWVzc2Fn
ZVNvdXJjZUpTOworICAgIGNhc2UgV2ViQ29yZTo6TmV0d29ya01lc3NhZ2VTb3VyY2U6CisgICAg
ICAgIHJldHVybiBrV0tNZXNzYWdlU291cmNlTmV0d29yazsKKyAgICBjYXNlIFdlYkNvcmU6OkNv
bnNvbGVBUElNZXNzYWdlU291cmNlOgorICAgICAgICByZXR1cm4ga1dLTWVzc2FnZVNvdXJjZUNv
bnNvbGVBUEk7CisgICAgY2FzZSBXZWJDb3JlOjpPdGhlck1lc3NhZ2VTb3VyY2U6CisgICAgICAg
IHJldHVybiBrV0tNZXNzYWdlU291cmNlT3RoZXI7CisgICAgZGVmYXVsdDoKKyAgICAgICAgQVNT
RVJUX05PVF9SRUFDSEVEKCk7CisgICAgICAgIHJldHVybiBrV0tNZXNzYWdlU291cmNlT3RoZXI7
CisgICAgfQorfQorCitpbmxpbmUgV0tNZXNzYWdlTGV2ZWxUeXBlIHRvQVBJKFdlYkNvcmU6Ok1l
c3NhZ2VMZXZlbCBsZXZlbCkKK3sKKyAgICBzd2l0Y2ggKGxldmVsKSB7CisgICAgY2FzZSBXZWJD
b3JlOjpUaXBNZXNzYWdlTGV2ZWw6CisgICAgICAgIHJldHVybiBrV0tNZXNzYWdlTGV2ZWxUaXA7
CisgICAgY2FzZSBXZWJDb3JlOjpMb2dNZXNzYWdlTGV2ZWw6CisgICAgICAgIHJldHVybiBrV0tN
ZXNzYWdlTGV2ZWxMb2c7CisgICAgY2FzZSBXZWJDb3JlOjpXYXJuaW5nTWVzc2FnZUxldmVsOgor
ICAgICAgICByZXR1cm4ga1dLTWVzc2FnZUxldmVsV2FybmluZzsKKyAgICBjYXNlIFdlYkNvcmU6
OkVycm9yTWVzc2FnZUxldmVsOgorICAgICAgICByZXR1cm4ga1dLTWVzc2FnZUxldmVsRXJyb3I7
CisgICAgY2FzZSBXZWJDb3JlOjpEZWJ1Z01lc3NhZ2VMZXZlbDoKKyAgICAgICAgcmV0dXJuIGtX
S01lc3NhZ2VMZXZlbERlYnVnOworICAgIGRlZmF1bHQ6CisgICAgICAgIEFTU0VSVF9OT1RfUkVB
Q0hFRCgpOworICAgICAgICByZXR1cm4ga1dLTWVzc2FnZUxldmVsTG9nOworICAgIH0KK30KKwog
fSAvLyBuYW1lc3BhY2UgV2ViS2l0CiAKICNlbmRpZiAvLyBXS1NoYXJlZEFQSUNhc3RfaApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL0NvbnNvbGVNZXNzYWdlLmNwcCBiL1NvdXJj
ZS9XZWJLaXQyL1NoYXJlZC9Db25zb2xlTWVzc2FnZS5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMC4uNDZiZmIxNAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQy
L1NoYXJlZC9Db25zb2xlTWVzc2FnZS5jcHAKQEAgLTAsMCArMSw1NCBAQAorLyoKKyAqIENvcHly
aWdodCAoQykgMjAxMiBJZ2FsaWEgUy5MLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
CisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3Qg
cmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0
aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlh
bHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUg
SVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycK
KyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFC
SUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xB
SU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisg
KiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFM
LCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBT
RVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJ
TlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElU
WSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElO
Q0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBP
VVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRI
RSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgi
CisjaW5jbHVkZSAiQ29uc29sZU1lc3NhZ2UuaCIKKworI2luY2x1ZGUgIldlYkNvcmVBcmd1bWVu
dENvZGVycy5oIgorCituYW1lc3BhY2UgV2ViS2l0IHsKKwordm9pZCBDb25zb2xlTWVzc2FnZTo6
ZW5jb2RlKENvcmVJUEM6OkFyZ3VtZW50RW5jb2RlciogZW5jb2RlcikgY29uc3QKK3sKKyAgICBl
bmNvZGVyLT5lbmNvZGVFbnVtKHNvdXJjZSk7CisgICAgZW5jb2Rlci0+ZW5jb2RlRW51bShsZXZl
bCk7CisgICAgZW5jb2Rlci0+ZW5jb2RlKG1lc3NhZ2UpOworICAgIGVuY29kZXItPmVuY29kZShs
aW5lTnVtYmVyKTsKKyAgICBlbmNvZGVyLT5lbmNvZGUoc291cmNlSUQpOworfQorCitib29sIENv
bnNvbGVNZXNzYWdlOjpkZWNvZGUoQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyKiBkZWNvZGVyLCBD
b25zb2xlTWVzc2FnZSYgY29uc29sZU1lc3NhZ2UpCit7CisgICAgaWYgKCFkZWNvZGVyLT5kZWNv
ZGVFbnVtKGNvbnNvbGVNZXNzYWdlLnNvdXJjZSkKKyAgICAgICAgfHwgIWRlY29kZXItPmRlY29k
ZUVudW0oY29uc29sZU1lc3NhZ2UubGV2ZWwpCisgICAgICAgIHx8ICFkZWNvZGVyLT5kZWNvZGUo
Y29uc29sZU1lc3NhZ2UubWVzc2FnZSkKKyAgICAgICAgfHwgIWRlY29kZXItPmRlY29kZShjb25z
b2xlTWVzc2FnZS5saW5lTnVtYmVyKQorICAgICAgICB8fCAhZGVjb2Rlci0+ZGVjb2RlKGNvbnNv
bGVNZXNzYWdlLnNvdXJjZUlEKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgcmV0dXJu
IHRydWU7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdDIvU2hhcmVkL0NvbnNvbGVNZXNzYWdlLmggYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQ29u
c29sZU1lc3NhZ2UuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zOWMyOGNj
Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL0NvbnNvbGVNZXNzYWdl
LmgKQEAgLTAsMCArMSw1MiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMiBJZ2FsaWEgUy5M
LgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVk
aXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0
IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBk
b2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlz
dHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5D
LiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJ
TVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhF
IElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEg
UEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwg
QVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJF
Q1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05T
RVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJF
TUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERB
VEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FV
U0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJB
Q1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9U
SEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNP
RlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERB
TUFHRS4KKyAqLworCisjaWZuZGVmIENvbnNvbGVNZXNzYWdlX2gKKyNkZWZpbmUgQ29uc29sZU1l
c3NhZ2VfaAorCisjaW5jbHVkZSA8V2ViQ29yZS9Db25zb2xlVHlwZXMuaD4KKyNpbmNsdWRlIDx3
dGYvdGV4dC9XVEZTdHJpbmcuaD4KKworbmFtZXNwYWNlIENvcmVJUEMgeworY2xhc3MgQXJndW1l
bnREZWNvZGVyOworY2xhc3MgQXJndW1lbnRFbmNvZGVyOworfQorCituYW1lc3BhY2UgV2ViS2l0
IHsKKworc3RydWN0IENvbnNvbGVNZXNzYWdlIHsKKyAgICBXZWJDb3JlOjpNZXNzYWdlU291cmNl
IHNvdXJjZTsKKyAgICBXZWJDb3JlOjpNZXNzYWdlTGV2ZWwgbGV2ZWw7CisgICAgU3RyaW5nIG1l
c3NhZ2U7CisgICAgdWludDMyX3QgbGluZU51bWJlcjsKKyAgICBTdHJpbmcgc291cmNlSUQ7CisK
KyAgICB2b2lkIGVuY29kZShDb3JlSVBDOjpBcmd1bWVudEVuY29kZXIqKSBjb25zdDsKKyAgICBz
dGF0aWMgYm9vbCBkZWNvZGUoQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyKiwgQ29uc29sZU1lc3Nh
Z2UmKTsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdAorCisjZW5kaWYgLy8gQ29uc29sZU1l
c3NhZ2VfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVGFyZ2V0LnByaSBiL1NvdXJjZS9X
ZWJLaXQyL1RhcmdldC5wcmkKaW5kZXggMTZmYmFkNC4uNjIyN2MzNiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdDIvVGFyZ2V0LnByaQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9UYXJnZXQucHJpCkBA
IC0zOSw2ICszOSw3IEBAIEhFQURFUlMgKz0gXAogICAgIFNoYXJlZC9BUEkvYy9XS0Jhc2UuaCBc
CiAgICAgU2hhcmVkL0FQSS9jL1dLQ2VydGlmaWNhdGVJbmZvLmggXAogICAgIFNoYXJlZC9BUEkv
Yy9XS0Nvbm5lY3Rpb25SZWYuaCBcCisgICAgU2hhcmVkL0FQSS9jL1dLQ29uc29sZVR5cGVzLmgg
XAogICAgIFNoYXJlZC9BUEkvYy9XS0NvbnRleHRNZW51SXRlbS5oIFwKICAgICBTaGFyZWQvQVBJ
L2MvV0tDb250ZXh0TWVudUl0ZW1UeXBlcy5oIFwKICAgICBTaGFyZWQvQVBJL2MvV0tEaWN0aW9u
YXJ5LmggXApAQCAtNjYsNiArNjcsNyBAQCBIRUFERVJTICs9IFwKICAgICBTaGFyZWQvU2hhcmVh
YmxlQml0bWFwLmggXAogICAgIFNoYXJlZC9DYWNoZU1vZGVsLmggXAogICAgIFNoYXJlZC9DaGls
ZFByb2Nlc3MuaCBcCisgICAgU2hhcmVkL0NvbnNvbGVNZXNzYWdlLmggXAogICAgIFNoYXJlZC9E
aWN0aW9uYXJ5UG9wdXBJbmZvLmggXAogICAgIFNoYXJlZC9FZGl0b3JTdGF0ZS5oIFwKICAgICBT
aGFyZWQvRm9udEluZm8uaCBcCkBAIC00MjMsNiArNDI1LDcgQEAgU09VUkNFUyArPSBcCiAgICAg
U2hhcmVkL1BsdWdpbnMvUGx1Z2luTW9kdWxlSW5mby5jcHAgXAogICAgIFNoYXJlZC9QbHVnaW5z
L1BsdWdpblByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuY3BwIFwKICAgICBTaGFyZWQvQ2hpbGRQ
cm9jZXNzLmNwcCBcCisgICAgU2hhcmVkL0NvbnNvbGVNZXNzYWdlLmNwcCBcCiAgICAgU2hhcmVk
L0RpY3Rpb25hcnlQb3B1cEluZm8uY3BwIFwKICAgICBTaGFyZWQvRWRpdG9yU3RhdGUuY3BwIFwK
ICAgICBTaGFyZWQvRm9udEluZm8uY3BwIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9BUEkvQy9XS1BhZ2UuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9X
S1BhZ2UuaAppbmRleCBiMDdiNmMwLi42YzJjMTFmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvQVBJL0MvV0tQYWdlLmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L0FQSS9DL1dLUGFnZS5oCkBAIC0yNyw2ICsyNyw3IEBACiAjZGVmaW5lIFdLUGFnZV9oCiAKICNp
bmNsdWRlIDxXZWJLaXQyL1dLQmFzZS5oPgorI2luY2x1ZGUgPFdlYktpdDIvV0tDb25zb2xlVHlw
ZXMuaD4KICNpbmNsdWRlIDxXZWJLaXQyL1dLRXZlbnQuaD4KICNpbmNsdWRlIDxXZWJLaXQyL1dL
RmluZE9wdGlvbnMuaD4KICNpbmNsdWRlIDxXZWJLaXQyL1dLR2VvbWV0cnkuaD4KQEAgLTIwNSw2
ICsyMDYsNyBAQCB0eXBlZGVmIHZvaWQgKCpXS1BhZ2VQcmludEZyYW1lQ2FsbGJhY2spKFdLUGFn
ZVJlZiBwYWdlLCBXS0ZyYW1lUmVmIGZyYW1lLCBjb25zdAogdHlwZWRlZiB2b2lkICgqV0tQYWdl
U2F2ZURhdGFUb0ZpbGVJbkRvd25sb2Fkc0ZvbGRlckNhbGxiYWNrKShXS1BhZ2VSZWYgcGFnZSwg
V0tTdHJpbmdSZWYgc3VnZ2VzdGVkRmlsZW5hbWUsIFdLU3RyaW5nUmVmIG1pbWVUeXBlLCBXS1VS
TFJlZiBvcmlnaW5hdGluZ1VSTCwgV0tEYXRhUmVmIGRhdGEsIGNvbnN0IHZvaWQqIGNsaWVudElu
Zm8pOwogdHlwZWRlZiBib29sICgqV0tQYWdlU2hvdWxkSW50ZXJydXB0SmF2YVNjcmlwdENhbGxi
YWNrKShXS1BhZ2VSZWYgcGFnZSwgY29uc3Qgdm9pZCAqY2xpZW50SW5mbyk7CiB0eXBlZGVmIHZv
aWQgKCpXS1BhZ2VEZWNpZGVQb2xpY3lGb3JOb3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdENh
bGxiYWNrKShXS1BhZ2VSZWYgcGFnZSwgV0tTZWN1cml0eU9yaWdpblJlZiBvcmlnaW4sIFdLTm90
aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3RSZWYgcGVybWlzc2lvblJlcXVlc3QsIGNvbnN0IHZv
aWQgKmNsaWVudEluZm8pOwordHlwZWRlZiB2b2lkICgqV0tQYWdlQWRkTWVzc2FnZVRvQ29uc29s
ZSkoV0tQYWdlUmVmIHBhZ2UsIFdLTWVzc2FnZVNvdXJjZVR5cGUgc291cmNlLCBXS01lc3NhZ2VM
ZXZlbFR5cGUgbGV2ZWwsIFdLU3RyaW5nUmVmIG1lc3NhZ2UsIHVuc2lnbmVkIGxpbmVOdW1iZXIs
IFdLU3RyaW5nUmVmIHNvdXJjZUlELCBjb25zdCB2b2lkKiBjbGllbnRJbmZvKTsKIAogLy8gRGVw
cmVjYXRlZCAgICAKIHR5cGVkZWYgV0tQYWdlUmVmICgqV0tQYWdlQ3JlYXRlTmV3UGFnZUNhbGxi
YWNrX2RlcHJlY2F0ZWRGb3JVc2VXaXRoVjApKFdLUGFnZVJlZiBwYWdlLCBXS0RpY3Rpb25hcnlS
ZWYgZmVhdHVyZXMsIFdLRXZlbnRNb2RpZmllcnMgbW9kaWZpZXJzLCBXS0V2ZW50TW91c2VCdXR0
b24gbW91c2VCdXR0b24sIGNvbnN0IHZvaWQgKmNsaWVudEluZm8pOwpAQCAtMjUzLDEyICsyNTUs
MTMgQEAgc3RydWN0IFdLUGFnZVVJQ2xpZW50IHsKICAgICBXS1BhZ2VDYWxsYmFjayAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJ1bk1vZGFsOwog
ICAgIHZvaWQqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgdW51c2VkMTsgLy8gVXNlZCB0byBiZSBkaWRDb21wbGV0ZVJ1YmJlckJh
bmRGb3JNYWluRnJhbWUKICAgICBXS1BhZ2VTYXZlRGF0YVRvRmlsZUluRG93bmxvYWRzRm9sZGVy
Q2FsbGJhY2sgICAgICAgICAgICAgICAgICAgICAgIHNhdmVEYXRhVG9GaWxlSW5Eb3dubG9hZHNG
b2xkZXI7Ci0gICAgV0tQYWdlU2hvdWxkSW50ZXJydXB0SmF2YVNjcmlwdENhbGxiYWNrICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBzaG91bGRJbnRlcnJ1cHRKYXZhU2NyaXB0OyAgICAKKyAg
ICBXS1BhZ2VTaG91bGRJbnRlcnJ1cHRKYXZhU2NyaXB0Q2FsbGJhY2sgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIHNob3VsZEludGVycnVwdEphdmFTY3JpcHQ7CiAKICAgICAvLyBWZXJzaW9u
IDEKICAgICBXS1BhZ2VDcmVhdGVOZXdQYWdlQ2FsbGJhY2sgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIGNyZWF0ZU5ld1BhZ2U7CiAgICAgV0tQYWdlTW91c2VEaWRNb3Zl
T3ZlckVsZW1lbnRDYWxsYmFjayAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtb3VzZURp
ZE1vdmVPdmVyRWxlbWVudDsKICAgICBXS1BhZ2VEZWNpZGVQb2xpY3lGb3JOb3RpZmljYXRpb25Q
ZXJtaXNzaW9uUmVxdWVzdENhbGxiYWNrICAgICAgICAgIGRlY2lkZVBvbGljeUZvck5vdGlmaWNh
dGlvblBlcm1pc3Npb25SZXF1ZXN0OworICAgIFdLUGFnZUFkZE1lc3NhZ2VUb0NvbnNvbGUgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYWRkTWVzc2FnZVRvQ29uc29s
ZTsKIH07CiB0eXBlZGVmIHN0cnVjdCBXS1BhZ2VVSUNsaWVudCBXS1BhZ2VVSUNsaWVudDsKIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAgYi9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcAppbmRleCAzZTYzMmFiLi5k
YzdmMTM4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5
LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcApAQCAt
MjgsNiArMjgsNyBAQAogCiAjaW5jbHVkZSAiQXV0aGVudGljYXRpb25DaGFsbGVuZ2VQcm94eS5o
IgogI2luY2x1ZGUgIkF1dGhlbnRpY2F0aW9uRGVjaXNpb25MaXN0ZW5lci5oIgorI2luY2x1ZGUg
IkNvbnNvbGVNZXNzYWdlLmgiCiAjaW5jbHVkZSAiRGF0YVJlZmVyZW5jZS5oIgogI2luY2x1ZGUg
IkRvd25sb2FkUHJveHkuaCIKICNpbmNsdWRlICJEcmF3aW5nQXJlYVByb3h5LmgiCkBAIC0yNDI0
LDYgKzI0MjUsMTEgQEAgdm9pZCBXZWJQYWdlUHJveHk6OnNldE1lZGlhVm9sdW1lKGZsb2F0IHZv
bHVtZSkKICAgICBwcm9jZXNzKCktPnNlbmQoTWVzc2FnZXM6OldlYlBhZ2U6OlNldE1lZGlhVm9s
dW1lKHZvbHVtZSksIG1fcGFnZUlEKTsgICAgCiB9CiAKK3ZvaWQgV2ViUGFnZVByb3h5OjphZGRN
ZXNzYWdlVG9Db25zb2xlKGNvbnN0IENvbnNvbGVNZXNzYWdlJiBjb25zb2xlTWVzc2FnZSkKK3sK
KyAgICBtX3VpQ2xpZW50LmFkZE1lc3NhZ2VUb0NvbnNvbGUodGhpcywgY29uc29sZU1lc3NhZ2Up
OworfQorCiAjaWYgUExBVEZPUk0oUVQpCiB2b2lkIFdlYlBhZ2VQcm94eTo6ZGlkQ2hhbmdlQ29u
dGVudHNTaXplKGNvbnN0IEludFNpemUmIHNpemUpCiB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
V2ViUGFnZVByb3h5LmgKaW5kZXggYjQwOWYwNC4uM2UxNmQyZSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9XZWJQYWdlUHJveHkuaApAQCAtMTM2LDYgKzEzNiw3IEBAIGNsYXNzIFdlYlByb2Nl
c3NQcm94eTsKIGNsYXNzIFdlYlVSTFJlcXVlc3Q7CiBjbGFzcyBXZWJXaGVlbEV2ZW50Owogc3Ry
dWN0IEF0dHJpYnV0ZWRTdHJpbmc7CitzdHJ1Y3QgQ29uc29sZU1lc3NhZ2U7CiBzdHJ1Y3QgRGlj
dGlvbmFyeVBvcHVwSW5mbzsKIHN0cnVjdCBFZGl0b3JTdGF0ZTsKIHN0cnVjdCBQbGF0Zm9ybVBv
cHVwTWVudURhdGE7CkBAIC03MzUsNiArNzM2LDcgQEAgcHJpdmF0ZToKICAgICB2b2lkIGRpZENo
YW5nZVBhZ2VDb3VudCh1bnNpZ25lZCk7CiAgICAgdm9pZCBkaWRGYWlsVG9Jbml0aWFsaXplUGx1
Z2luKGNvbnN0IFN0cmluZyYgbWltZVR5cGUpOwogICAgIHZvaWQgc2V0Q2FuU2hvcnRDaXJjdWl0
SG9yaXpvbnRhbFdoZWVsRXZlbnRzKGJvb2wgY2FuU2hvcnRDaXJjdWl0SG9yaXpvbnRhbFdoZWVs
RXZlbnRzKSB7IG1fY2FuU2hvcnRDaXJjdWl0SG9yaXpvbnRhbFdoZWVsRXZlbnRzID0gY2FuU2hv
cnRDaXJjdWl0SG9yaXpvbnRhbFdoZWVsRXZlbnRzOyB9CisgICAgdm9pZCBhZGRNZXNzYWdlVG9D
b25zb2xlKGNvbnN0IENvbnNvbGVNZXNzYWdlJik7CiAKICAgICB2b2lkIHJlYXR0YWNoVG9XZWJQ
cm9jZXNzKCk7CiAgICAgdm9pZCByZWF0dGFjaFRvV2ViUHJvY2Vzc1dpdGhJdGVtKFdlYkJhY2tG
b3J3YXJkTGlzdEl0ZW0qKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9X
ZWJQYWdlUHJveHkubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFn
ZVByb3h5Lm1lc3NhZ2VzLmluCmluZGV4IDRjMzVjNGQuLjFjODVjOTggMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkubWVzc2FnZXMuaW4KKysrIGIvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5tZXNzYWdlcy5pbgpAQCAtNjcsNiAr
NjcsNyBAQCBtZXNzYWdlcyAtPiBXZWJQYWdlUHJveHkgewogICAgIERpZENoYW5nZVBhZ2VDb3Vu
dCh1bnNpZ25lZCBwYWdlQ291bnQpOwogICAgIERpZEZhaWxUb0luaXRpYWxpemVQbHVnaW4oV1RG
OjpTdHJpbmcgbWltZVR5cGUpCiAgICAgU2V0Q2FuU2hvcnRDaXJjdWl0SG9yaXpvbnRhbFdoZWVs
RXZlbnRzKGJvb2wgY2FuU2hvcnRDaXJjdWl0SG9yaXpvbnRhbFdoZWVsRXZlbnRzKQorICAgIEFk
ZE1lc3NhZ2VUb0NvbnNvbGUoV2ViS2l0OjpDb25zb2xlTWVzc2FnZSBjb25zb2xlTWVzc2FnZSkK
IAogI2lmIFVTRShUSUxFRF9CQUNLSU5HX1NUT1JFKQogICAgIFBhZ2VEaWRSZXF1ZXN0U2Nyb2xs
KFdlYkNvcmU6OkludFBvaW50IHBvaW50KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL1dlYlVJQ2xpZW50LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJVSUNs
aWVudC5jcHAKaW5kZXggZDAxMzEyMi4uNWFiMzkyZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL1dlYlVJQ2xpZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvV2ViVUlDbGllbnQuY3BwCkBAIC00MTEsNCArNDExLDEyIEBAIGJvb2wgV2ViVUlDbGllbnQ6
OnNob3VsZEludGVycnVwdEphdmFTY3JpcHQoV2ViUGFnZVByb3h5KiBwYWdlKQogICAgIHJldHVy
biBtX2NsaWVudC5zaG91bGRJbnRlcnJ1cHRKYXZhU2NyaXB0KHRvQVBJKHBhZ2UpLCBtX2NsaWVu
dC5jbGllbnRJbmZvKTsKIH0KIAordm9pZCBXZWJVSUNsaWVudDo6YWRkTWVzc2FnZVRvQ29uc29s
ZShXZWJQYWdlUHJveHkqIHBhZ2UsIGNvbnN0IENvbnNvbGVNZXNzYWdlJiBjb25zb2xlTWVzc2Fn
ZSkKK3sKKyAgICBpZiAoIW1fY2xpZW50LmFkZE1lc3NhZ2VUb0NvbnNvbGUpCisgICAgICAgIHJl
dHVybjsKKworICAgIG1fY2xpZW50LmFkZE1lc3NhZ2VUb0NvbnNvbGUodG9BUEkocGFnZSksIHRv
QVBJKGNvbnNvbGVNZXNzYWdlLnNvdXJjZSksIHRvQVBJKGNvbnNvbGVNZXNzYWdlLmxldmVsKSwg
dG9BUEkoY29uc29sZU1lc3NhZ2UubWVzc2FnZS5pbXBsKCkpLCBjb25zb2xlTWVzc2FnZS5saW5l
TnVtYmVyLCB0b0FQSShjb25zb2xlTWVzc2FnZS5zb3VyY2VJRC5pbXBsKCkpLCBtX2NsaWVudC5j
bGllbnRJbmZvKTsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViVUlDbGllbnQuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9XZWJVSUNsaWVudC5oCmluZGV4IDgzNWU2Y2UuLmZlZDdkODYgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJVSUNsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9XZWJVSUNsaWVudC5oCkBAIC0yNyw2ICsyNyw3IEBACiAjZGVmaW5lIFdlYlVJ
Q2xpZW50X2gKIAogI2luY2x1ZGUgIkFQSUNsaWVudC5oIgorI2luY2x1ZGUgIkNvbnNvbGVNZXNz
YWdlLmgiCiAjaW5jbHVkZSAiV0tQYWdlLmgiCiAjaW5jbHVkZSAiV2ViRXZlbnQuaCIKICNpbmNs
dWRlICJXZWJIaXRUZXN0UmVzdWx0LmgiCkBAIC0xMTUsNiArMTE2LDggQEAgcHVibGljOgogICAg
IHZvaWQgc2F2ZURhdGFUb0ZpbGVJbkRvd25sb2Fkc0ZvbGRlcihXZWJQYWdlUHJveHkqLCBjb25z
dCBTdHJpbmcmIHN1Z2dlc3RlZEZpbGVuYW1lLCBjb25zdCBTdHJpbmcmIG1pbWVUeXBlLCBjb25z
dCBTdHJpbmcmIG9yaWdpbmF0aW5nVVJMU3RyaW5nLCBXZWJEYXRhKik7CiAKICAgICBib29sIHNo
b3VsZEludGVycnVwdEphdmFTY3JpcHQoV2ViUGFnZVByb3h5Kik7CisKKyAgICB2b2lkIGFkZE1l
c3NhZ2VUb0NvbnNvbGUoV2ViUGFnZVByb3h5KiwgY29uc3QgQ29uc29sZU1lc3NhZ2UmKTsKIH07
CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2Vi
S2l0Mi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYktpdDIvV2ViS2l0Mi54
Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDE3OWM5NjEuLmU2MzU4Y2MgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQyL1dlYktpdDIueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysg
Yi9Tb3VyY2UvV2ViS2l0Mi9XZWJLaXQyLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTMy
Nyw2ICszMjcsNyBAQAogCQkzN0M0RTlGNjEzMUM2RTdFMDAyOUJENUEgLyogY29uZmlnLmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCMzk2RUE1NTEyRTBF
RDJEMDBGNEZFQjcgLyogY29uZmlnLmggKi87IH07CiAJCTM3RjYyM0I4MTJBNTdCNjIwMEUzRkRG
NiAvKiBXS0ZpbmRPcHRpb25zLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSAzN0Y2MjNCNzEyQTU3QjYyMDBFM0ZERjYgLyogV0tGaW5kT3B0aW9ucy5oICov
OyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTM3RjkwREUz
MTM3NjU2MEUwMDUxQ0Y2OCAvKiBIVFRQQ29va2llQWNjZXB0UG9saWN5LmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNjM4OTU0RjEzM0JFRjM4MDA4OTQx
RDUgLyogSFRUUENvb2tpZUFjY2VwdFBvbGljeS5oICovOyB9OworCQk0RjU1RkRDNUYwNDc1NDVD
OUYzODQ5OEEgLyogQ29uc29sZU1lc3NhZ2UuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gQkZCRDgxN0MzMUY3RjczODJFMUI5QjdFIC8qIENvbnNvbGVN
ZXNzYWdlLmNwcCAqLzsgfTsKIAkJNTEwMjFFOUMxMkIxNjc4ODAwNUMwMzNDIC8qIFdlYkNvbnRl
eHRNZW51Q2xpZW50TWFjLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gNTEwMjFFOUIxMkIxNjc4ODAwNUMwMzNDIC8qIFdlYkNvbnRleHRNZW51Q2xpZW50
TWFjLm1tICovOyB9OwogCQk1MTBGQkI5QTEyODhDOTVFMDBBRkZERjQgLyogV2ViQ29udGV4dE1l
bnVJdGVtRGF0YS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSA1MTBGQkI5ODEyODhDOTVFMDBBRkZERjQgLyogV2ViQ29udGV4dE1lbnVJdGVtRGF0YS5j
cHAgKi87IH07CiAJCTUxMEZCQjlCMTI4OEM5NUUwMEFGRkRGNCAvKiBXZWJDb250ZXh0TWVudUl0
ZW1EYXRhLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1
MTBGQkI5OTEyODhDOTVFMDBBRkZERjQgLyogV2ViQ29udGV4dE1lbnVJdGVtRGF0YS5oICovOyB9
OwpAQCAtNDQzLDYgKzQ0NCw3IEBACiAJCTY1MDFCRDFBMTJGMTI0MzQwMEU5RjI0OCAvKiBXS0J1
bmRsZUluc3BlY3Rvci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSA2NUI4NkYxNzEyRjExRDdCMDBCN0REOEEgLyogV0tCdW5kbGVJbnNwZWN0b3IuY3Bw
ICovOyB9OwogCQk2NTlDNTUxRTEzMDAwNjQxMDAyNUMwQzIgLyogSW5qZWN0ZWRCdW5kbGVQYWdl
UmVzb3VyY2VMb2FkQ2xpZW50LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDY1NDZBODI5MTMwMDAxNjQwMDBDRUIxQyAvKiBJbmplY3RlZEJ1bmRsZVBh
Z2VSZXNvdXJjZUxvYWRDbGllbnQuY3BwICovOyB9OwogCQk2NUI4NkYxRTEyRjExREUzMDBCN0RE
OEEgLyogV0tCdW5kbGVJbnNwZWN0b3IuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDY1Qjg2RjE4MTJGMTFEN0IwMEI3REQ4QSAvKiBXS0J1bmRsZUluc3Bl
Y3Rvci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJ
CTY4QjUxMTVEREQwNkEzRUQ0OTIzM0VEMiAvKiBDb25zb2xlTWVzc2FnZS5jcHAgaW4gU291cmNl
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCRkJEODE3QzMxRjdGNzM4MkUx
QjlCN0UgLyogQ29uc29sZU1lc3NhZ2UuY3BwICovOyB9OwogCQk2RUU4NDlDODEzNjhEOTM5MDAz
OEQ0ODEgLyogV0tJbnNwZWN0b3JQcml2YXRlTWFjLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA2RUU4NDlDNjEzNjhEOTJEMDAzOEQ0ODEgLyogV0tJbnNw
ZWN0b3JQcml2YXRlTWFjLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwg
KTsgfTsgfTsKIAkJNzYyQjc0OEQxMjBCQzc1QzAwODE5MzM5IC8qIFdLUHJlZmVyZW5jZXNQcml2
YXRlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3NjJC
NzQ4NDEyMEJCQTJEMDA4MTkzMzkgLyogV0tQcmVmZXJlbmNlc1ByaXZhdGUuaCAqLzsgc2V0dGlu
Z3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk3ODAxQzA5OTE0MjI5MEM0
MDBGQUY5QUYgLyogV2ViSGl0VGVzdFJlc3VsdC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3ODAxQzA5NTE0MjI5MEM0MDBGQUY5QUYgLyogV2ViSGl0
VGVzdFJlc3VsdC5jcHAgKi87IH07CkBAIC0xMzQyLDYgKzEzNDQsNyBAQAogCQkzNzk0ODQwNjE1
MEM0Qjk2MDBFNTJDRTkgLyogV0tSZW5kZXJMYXllci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5jcHA7IHBhdGggPSBXS1JlbmRlckxheWVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJMzc5NDg0MDcxNTBDNEI5NjAwRTUyQ0U5IC8qIFdLUmVuZGVyTGF5ZXIuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV0tSZW5kZXJMYXllci5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQkzN0Y2MjNCNzEyQTU3QjYyMDBFM0ZERjYgLyogV0tGaW5kT3B0
aW9ucy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXS0ZpbmRPcHRpb25zLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTQzMzAzN0JCNEFCNTU3MTBCMjQ3NDA5MSAv
KiBXS0NvbnNvbGVUeXBlcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXS0Nv
bnNvbGVUeXBlcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1MTAwMzFGNjEzNzlD
QUNCMDBDOERGRTQgLyogV2ViUHJvY2Vzc1NoaW0uZHlsaWIgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZXhwbGljaXRGaWxlVHlwZSA9ICJjb21waWxlZC5tYWNoLW8uZHlsaWIiOyBpbmNs
dWRlSW5JbmRleCA9IDA7IHBhdGggPSBXZWJQcm9jZXNzU2hpbS5keWxpYjsgc291cmNlVHJlZSA9
IEJVSUxUX1BST0RVQ1RTX0RJUjsgfTsKIAkJNTEwMjFFOUIxMkIxNjc4ODAwNUMwMzNDIC8qIFdl
YkNvbnRleHRNZW51Q2xpZW50TWFjLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3Bw
OyBwYXRoID0gV2ViQ29udGV4dE1lbnVDbGllbnRNYWMubW07IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCTUxMEZCQjk4MTI4OEM5NUUwMEFGRkRGNCAvKiBXZWJDb250ZXh0TWVudUl0ZW1E
YXRhLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdlYkNvbnRleHRN
ZW51SXRlbURhdGEuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTQ3NCw2ICsx
NDc3LDcgQEAKIAkJNzYyQjc0ODQxMjBCQkEyRDAwODE5MzM5IC8qIFdLUHJlZmVyZW5jZXNQcml2
YXRlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdLUHJlZmVyZW5jZXNQcml2
YXRlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTc4MDFDMDk1MTQyMjkwQzQwMEZB
RjlBRiAvKiBXZWJIaXRUZXN0UmVzdWx0LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNw
cDsgcGF0aCA9IFdlYkhpdFRlc3RSZXN1bHQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQk3ODAxQzA5NjE0MjI5MEM0MDBGQUY5QUYgLyogV2ViSGl0VGVzdFJlc3VsdC5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJIaXRUZXN0UmVzdWx0Lmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CisJCTdDRDkzQkUyRDkzMERFMTMyRjVFOUM1OSAvKiBDb25zb2xl
TWVzc2FnZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBDb25zb2xlTWVzc2Fn
ZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk4Q0ZFQ0U5MzE0OTBGMTQwMDAyQUFB
MzIgLyogRWRpdG9yU3RhdGUuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRo
ID0gRWRpdG9yU3RhdGUuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk4REMyRUY1
QTA0ODZBNjk0MDA5OEIyMTYgLyogSW5mby5wbGlzdCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQucGxpc3QueG1s
OyBwYXRoID0gSW5mby5wbGlzdDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOERDMkVG
NUIwNDg2QTY5NDAwOThCMjE2IC8qIFdlYktpdDIuZnJhbWV3b3JrICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGV4cGxpY2l0RmlsZVR5cGUgPSB3cmFwcGVyLmZyYW1ld29yazsgaW5jbHVk
ZUluSW5kZXggPSAwOyBwYXRoID0gV2ViS2l0Mi5mcmFtZXdvcms7IHNvdXJjZVRyZWUgPSBCVUlM
VF9QUk9EVUNUU19ESVI7IH07CkBAIC0xODg1LDYgKzE4ODksNyBAQAogCQlCQ0ZENTQ4OTEzMkQ4
MjY4MDA1NUQ4MTYgLyogV0tFcnJvckNGLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNw
cDsgcGF0aCA9IFdLRXJyb3JDRi5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUJD
RkQ1NDhBMTMyRDgyNjgwMDU1RDgxNiAvKiBXS0Vycm9yQ0YuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gV0tFcnJvckNGLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CUJGQTYxNzlFMTJGMEI5OUQwMDMzRTBDQSAvKiBXS1ZpZXdQcml2YXRlLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdLVmlld1ByaXZhdGUuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKKwkJQkZCRDgxN0MzMUY3RjczODJFMUI5QjdFIC8qIENvbnNvbGVNZXNzYWdlLmNw
cCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IENvbnNvbGVNZXNzYWdlLmNw
cDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQzAxQTI2MDAxMjY2MkYyMTAwQzlFRDU1
IC8qIFNoYXJlYWJsZUJpdG1hcENHLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsg
cGF0aCA9IFNoYXJlYWJsZUJpdG1hcENHLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJQzAyQkZGMTUxMjUxNEZEODAwOUNDQkVBIC8qIE5hdGl2ZVdlYktleWJvYXJkRXZlbnQuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTmF0aXZlV2ViS2V5Ym9hcmRFdmVudC5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlDMDJCRkYxRDEyNTE1MDJFMDA5Q0NCRUEg
LyogTmF0aXZlV2ViS2V5Ym9hcmRFdmVudE1hYy5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
Lm9iamNwcDsgcGF0aCA9IE5hdGl2ZVdlYktleWJvYXJkRXZlbnRNYWMubW07IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CkBAIC0yMzMzLDYgKzIzMzgsOCBAQAogCQkJCTFBMkQ5NTZFMTI4NDg1
NjQwMDFFQjk2MiAvKiBDaGlsZFByb2Nlc3MuY3BwICovLAogCQkJCTFBMkQ5NTZEMTI4NDg1NjQw
MDFFQjk2MiAvKiBDaGlsZFByb2Nlc3MuaCAqLywKIAkJCQkxQTZGOUY4RTExRTEzRUZDMDBEQjEz
NzEgLyogQ29tbWFuZExpbmUuaCAqLywKKwkJCQlCRkJEODE3QzMxRjdGNzM4MkUxQjlCN0UgLyog
Q29uc29sZU1lc3NhZ2UuY3BwICovLAorCQkJCTdDRDkzQkUyRDkzMERFMTMyRjVFOUM1OSAvKiBD
b25zb2xlTWVzc2FnZS5oICovLAogCQkJCUJDRTgxRDk2MTMxQUUwMjAwMDI0MTkxMCAvKiBEaWN0
aW9uYXJ5UG9wdXBJbmZvLmNwcCAqLywKIAkJCQlCQ0U4MUQ5NzEzMUFFMDIxMDAyNDE5MTAgLyog
RGljdGlvbmFyeVBvcHVwSW5mby5oICovLAogCQkJCUM1MTczODgwMTJERjhGNEYwMEVFM0Y0NyAv
KiBEcmFnQ29udHJvbGxlckFjdGlvbi5oICovLApAQCAtMzQ4Niw2ICszNDkzLDcgQEAKIAkJCQlC
QzQwNzVEQTEyNEZGMDI3MDA2OEYyMEEgLyogV0tDZXJ0aWZpY2F0ZUluZm8uaCAqLywKIAkJCQlC
QzRBNjI5NDE0NzMxM0EwMDA2QzY4MUEgLyogV0tDb25uZWN0aW9uUmVmLmNwcCAqLywKIAkJCQlC
QzRBNjI5NTE0NzMxM0EwMDA2QzY4MUEgLyogV0tDb25uZWN0aW9uUmVmLmggKi8sCisJCQkJNDMz
MDM3QkI0QUI1NTcxMEIyNDc0MDkxIC8qIFdLQ29uc29sZVR5cGVzLmggKi8sCiAJCQkJNTFBNTU1
RjMxMjhDNkM0NzAwOUFCQ0VDIC8qIFdLQ29udGV4dE1lbnVJdGVtLmNwcCAqLywKIAkJCQk1MUE1
NTVGNDEyOEM2QzQ3MDA5QUJDRUMgLyogV0tDb250ZXh0TWVudUl0ZW0uaCAqLywKIAkJCQk1MUE1
NTYwMDEyOEM2RDkyMDA5QUJDRUMgLyogV0tDb250ZXh0TWVudUl0ZW1UeXBlcy5oICovLApAQCAt
NDUxOCw2ICs0NTI2LDcgQEAKIAkJCQkxQTZGOUZCNzExRTE0MDg1MDBEQjEzNzEgLyogQ29tbWFu
ZExpbmVNYWMuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQkMwMzJEQUExMEY0MzdEMTAwNThDMTVB
IC8qIENvbm5lY3Rpb24uY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMUEzMEVBQzYxMTVEN0RBMzAw
NTNFOTM3IC8qIENvbm5lY3Rpb25NYWMuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJNjhCNTExNURE
RDA2QTNFRDQ5MjMzRUQyIC8qIENvbnNvbGVNZXNzYWdlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJ
CUI4NzhCNjE2MTMzNDI4REMwMDY4ODhFOSAvKiBDb3JyZWN0aW9uUGFuZWwubW0gaW4gU291cmNl
cyAqLywKIAkJCQkxQThFRkRGRTEyNTNDQjZFMDBGNzA2N0YgLyogRGF0YVJlZmVyZW5jZS5jcHAg
aW4gU291cmNlcyAqLywKIAkJCQk5M0ZDNjdCRDEyRDNDQ0YyMDBBNjA2MTAgLyogRGVjb2RlckFk
YXB0ZXIuY3BwIGluIFNvdXJjZXMgKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQ
cm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5jcHAgYi9Tb3VyY2UvV2ViS2l0
Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5jcHAKaW5kZXggNjlm
MTZiMi4uN2MwMDUyNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJD
b3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlBy
b2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNwcApAQCAtMjcsNiArMjcsNyBA
QAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIldlYkNocm9tZUNsaWVudC5oIgogCisj
aW5jbHVkZSAiQ29uc29sZU1lc3NhZ2UuaCIKICNpbmNsdWRlICJEcmF3aW5nQXJlYS5oIgogI2lu
Y2x1ZGUgIkluamVjdGVkQnVuZGxlTmF2aWdhdGlvbkFjdGlvbi5oIgogI2luY2x1ZGUgIkluamVj
dGVkQnVuZGxlVXNlck1lc3NhZ2VDb2RlcnMuaCIKQEAgLTI2MCwxMiArMjYxLDE4IEBAIHZvaWQg
V2ViQ2hyb21lQ2xpZW50OjpzZXRSZXNpemFibGUoYm9vbCByZXNpemFibGUpCiAgICAgbV9wYWdl
LT5zZW5kKE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OlNldElzUmVzaXphYmxlKHJlc2l6YWJsZSkp
OwogfQogCi12b2lkIFdlYkNocm9tZUNsaWVudDo6YWRkTWVzc2FnZVRvQ29uc29sZShNZXNzYWdl
U291cmNlLCBNZXNzYWdlVHlwZSwgTWVzc2FnZUxldmVsLCBjb25zdCBTdHJpbmcmIG1lc3NhZ2Us
IHVuc2lnbmVkIGludCBsaW5lTnVtYmVyLCBjb25zdCBTdHJpbmcmIHNvdXJjZUlEKQordm9pZCBX
ZWJDaHJvbWVDbGllbnQ6OmFkZE1lc3NhZ2VUb0NvbnNvbGUoTWVzc2FnZVNvdXJjZSBzb3VyY2Us
IE1lc3NhZ2VUeXBlLCBNZXNzYWdlTGV2ZWwgbGV2ZWwsIGNvbnN0IFN0cmluZyYgbWVzc2FnZSwg
dW5zaWduZWQgaW50IGxpbmVOdW1iZXIsIGNvbnN0IFN0cmluZyYgc291cmNlSUQpCiB7CiAgICAg
Ly8gTm90aWZ5IHRoZSBidW5kbGUgY2xpZW50LgogICAgIG1fcGFnZS0+aW5qZWN0ZWRCdW5kbGVV
SUNsaWVudCgpLndpbGxBZGRNZXNzYWdlVG9Db25zb2xlKG1fcGFnZSwgbWVzc2FnZSwgbGluZU51
bWJlcik7CiAKLSAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIENvbnNvbGVNZXNzYWdlIGNvbnNv
bGVNZXNzYWdlOworICAgIGNvbnNvbGVNZXNzYWdlLnNvdXJjZSA9IHNvdXJjZTsKKyAgICBjb25z
b2xlTWVzc2FnZS5sZXZlbCA9IGxldmVsOworICAgIGNvbnNvbGVNZXNzYWdlLm1lc3NhZ2UgPSBt
ZXNzYWdlOworICAgIGNvbnNvbGVNZXNzYWdlLmxpbmVOdW1iZXIgPSBsaW5lTnVtYmVyOworICAg
IGNvbnNvbGVNZXNzYWdlLnNvdXJjZUlEID0gc291cmNlSUQ7CisgICAgbV9wYWdlLT5zZW5kKE1l
c3NhZ2VzOjpXZWJQYWdlUHJveHk6OkFkZE1lc3NhZ2VUb0NvbnNvbGUoY29uc29sZU1lc3NhZ2Up
KTsKIH0KIAogYm9vbCBXZWJDaHJvbWVDbGllbnQ6OmNhblJ1bkJlZm9yZVVubG9hZENvbmZpcm1Q
YW5lbCgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi93aW4vV2ViS2l0Mi52Y3Byb2ogYi9T
b3VyY2UvV2ViS2l0Mi93aW4vV2ViS2l0Mi52Y3Byb2oKaW5kZXggZmI5NWE5ZC4uOTljNWMwMyAx
MDA3NTUKLS0tIGEvU291cmNlL1dlYktpdDIvd2luL1dlYktpdDIudmNwcm9qCisrKyBiL1NvdXJj
ZS9XZWJLaXQyL3dpbi9XZWJLaXQyLnZjcHJvagpAQCAtNDI2LDYgKzQyNiwxNCBAQAogCQkJCVJl
bGF0aXZlUGF0aD0iLi5cU2hhcmVkXENvbW1hbmRMaW5lLmgiCiAJCQkJPgogCQkJPC9GaWxlPgor
ICAgICAgICAgICAgICAgICAgICAgICAgPEZpbGUKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgUmVsYXRpdmVQYXRoPSIuLlxTaGFyZWRcQ29uc29sZU1lc3NhZ2UuY3BwIgorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICA+CisgICAgICAgICAgICAgICAgICAgICAgICA8L0Zp
bGU+CisgICAgICAgICAgICAgICAgICAgICAgICA8RmlsZQorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBSZWxhdGl2ZVBhdGg9Ii4uXFNoYXJlZFxDb25zb2xlTWVzc2FnZS5oIgorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+CisgICAgICAgICAgICAgICAgICAgICAgICA8
L0ZpbGU+CiAJCQk8RmlsZQogCQkJCVJlbGF0aXZlUGF0aD0iLi5cU2hhcmVkXERpY3Rpb25hcnlQ
b3B1cEluZm8uY3BwIgogCQkJCT4KQEAgLTg4OSw2ICs4OTcsMTAgQEAKIAkJCQkJUmVsYXRpdmVQ
YXRoPSIuLlxTaGFyZWRcQVBJXGNcV0tDb25uZWN0aW9uUmVmLmgiCiAJCQkJCT4KIAkJCQk8L0Zp
bGU+CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxGaWxlCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgUmVsYXRpdmVQYXRoPSIuLlxTaGFyZWRcQVBJXGNc
V0tDb25zb2xlVHlwZXMuaCIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICA+CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvRmlsZT4KIAkJCQk8RmlsZQog
CQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXFNoYXJlZFxBUElcY1xXS0NvbnRleHRNZW51SXRlbS5jcHAi
CiAJCQkJCT4KZGlmZiAtLWdpdCBhL1Rvb2xzL01pbmlCcm93c2VyL21hYy9Ccm93c2VyV2luZG93
Q29udHJvbGxlci5tIGIvVG9vbHMvTWluaUJyb3dzZXIvbWFjL0Jyb3dzZXJXaW5kb3dDb250cm9s
bGVyLm0KaW5kZXggNWRiZDVhNy4uM2E1ODg1MCAxMDA2NDQKLS0tIGEvVG9vbHMvTWluaUJyb3dz
ZXIvbWFjL0Jyb3dzZXJXaW5kb3dDb250cm9sbGVyLm0KKysrIGIvVG9vbHMvTWluaUJyb3dzZXIv
bWFjL0Jyb3dzZXJXaW5kb3dDb250cm9sbGVyLm0KQEAgLTY2OCw2ICs2NjgsNyBAQCAtICh2b2lk
KWF3YWtlRnJvbU5pYgogICAgICAgICBjcmVhdGVOZXdQYWdlLAogICAgICAgICBtb3VzZURpZE1v
dmVPdmVyRWxlbWVudCwKICAgICAgICAgMCwgLy8gZGVjaWRlUG9saWN5Rm9yTm90aWZpY2F0aW9u
UGVybWlzc2lvblJlcXVlc3QKKyAgICAgICAgMCwgLy8gYWRkTWVzc2FnZVRvQ29uc29sZQogICAg
IH07CiAgICAgV0tQYWdlU2V0UGFnZVVJQ2xpZW50KF93ZWJWaWV3LnBhZ2VSZWYsICZ1aUNsaWVu
dCk7CiB9CmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250cm9sbGVy
LmNwcCBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuY3BwCmluZGV4IDNj
ODBmOWEuLjI3NmZkNjEgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdENv
bnRyb2xsZXIuY3BwCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIu
Y3BwCkBAIC0yMTMsNiArMjEzLDcgQEAgV0tQYWdlUmVmIFRlc3RDb250cm9sbGVyOjpjcmVhdGVP
dGhlclBhZ2UoV0tQYWdlUmVmIG9sZFBhZ2UsIFdLVVJMUmVxdWVzdFJlZiwgV0sKICAgICAgICAg
Y3JlYXRlT3RoZXJQYWdlLAogICAgICAgICAwLCAvLyBtb3VzZURpZE1vdmVPdmVyRWxlbWVudAog
ICAgICAgICAwLCAvLyBkZWNpZGVQb2xpY3lGb3JOb3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVz
dAorICAgICAgICAwLCAvLyBhZGRNZXNzYWdlVG9Db25zb2xlCiAgICAgfTsKICAgICBXS1BhZ2VT
ZXRQYWdlVUlDbGllbnQobmV3UGFnZSwgJm90aGVyUGFnZVVJQ2xpZW50KTsKIApAQCAtMzc3LDYg
KzM3OCw3IEBAIHZvaWQgVGVzdENvbnRyb2xsZXI6OmluaXRpYWxpemUoaW50IGFyZ2MsIGNvbnN0
IGNoYXIqIGFyZ3ZbXSkKICAgICAgICAgY3JlYXRlT3RoZXJQYWdlLAogICAgICAgICAwLCAvLyBt
b3VzZURpZE1vdmVPdmVyRWxlbWVudAogICAgICAgICAwLCAvLyBkZWNpZGVQb2xpY3lGb3JOb3Rp
ZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdAorICAgICAgICAwLCAvLyBhZGRNZXNzYWdlVG9Db25z
b2xlCiAgICAgfTsKICAgICBXS1BhZ2VTZXRQYWdlVUlDbGllbnQobV9tYWluV2ViVmlldy0+cGFn
ZSgpLCAmcGFnZVVJQ2xpZW50KTsKIAo=
</data>
<flag name="review"
          id="138841"
          type_id="1"
          status="-"
          setter="sam"
    />
    <flag name="commit-queue"
          id="138843"
          type_id="3"
          status="-"
          setter="buildbot"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>138366</attachid>
            <date>2012-04-23 09:48:17 -0700</date>
            <delta_ts>2012-11-12 20:39:41 -0800</delta_ts>
            <desc>Patch including unit tests</desc>
            <filename>wk2-add-message-to-console5.diff</filename>
            <type>text/plain</type>
            <size>43133</size>
            <attacher name="Carlos Garcia Campos">cgarcia</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0No
YW5nZUxvZwppbmRleCAxNWFjODNhLi5lN2Q4YzhhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNDAg
QEAKKzIwMTItMDQtMjMgIENhcmxvcyBHYXJjaWEgQ2FtcG9zICA8Y2dhcmNpYUBpZ2FsaWEuY29t
PgorCisgICAgICAgIFtXSzJdIEltcGxlbWVudCBXZWJDaHJvbWVDbGllbnQ6OmFkZE1lc3NhZ2VU
b0NvbnNvbGUoKQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9Nzk0ODIKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICAqIENNYWtlTGlzdHMudHh0OiBBZGQgbmV3IGZpbGVzIHRvIGNvbXBpbGF0aW9uLgorICAgICAg
ICAqIEdOVW1ha2VmaWxlLmFtOiBEaXR0by4KKyAgICAgICAgKiBTaGFyZWQvQVBJL2MvV0tDb25z
b2xlVHlwZXMuaDogQWRkZWQuCisgICAgICAgICogU2hhcmVkL0FQSS9jL1dLU2hhcmVkQVBJQ2Fz
dC5oOgorICAgICAgICAoV2ViS2l0Ojp0b0FQSSk6IENvbnZlcnQgV2ViQ29yZSBjb25zb2xlIG1l
c3NhZ2UgdHlwZXMgdG8gV2ViS2l0MgorICAgICAgICB0eXBlcy4KKyAgICAgICAgKiBTaGFyZWQv
Q29uc29sZU1lc3NhZ2UuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYktpdCk6CisgICAgICAgIChX
ZWJLaXQ6OkNvbnNvbGVNZXNzYWdlOjplbmNvZGUpOgorICAgICAgICAoV2ViS2l0OjpDb25zb2xl
TWVzc2FnZTo6ZGVjb2RlKToKKyAgICAgICAgKiBTaGFyZWQvQ29uc29sZU1lc3NhZ2UuaDogQWRk
ZWQuCisgICAgICAgICogVGFyZ2V0LnByaTogQWRkIG5ldyBmaWxlcyB0byBjb21waWxhdGlvbi4K
KyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0MvV0tQYWdlLmg6CisgICAgICAgICogVUlQcm9jZXNz
L1dlYlBhZ2VQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6YWRkTWVz
c2FnZVRvQ29uc29sZSk6IE1ldGhvZCB0byBoYW5kbGUKKyAgICAgICAgQWRkTWVzc2FnZVRvQ29u
c29sZSBtZXNzYWdlIHRoYXQganVzdCBjYWxscworICAgICAgICBXZWJVSUNsaWVudDo6YWRkTWVz
c2FnZVRvQ29uc29sZSgpLgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaDoKKyAg
ICAgICAgKiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5Lm1lc3NhZ2VzLmluOiBBZGQgbmV3IG1lc3Nh
Z2UKKyAgICAgICAgQWRkTWVzc2FnZVRvQ29uc29sZS4KKyAgICAgICAgKiBVSVByb2Nlc3MvV2Vi
VUlDbGllbnQuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJVSUNsaWVudDo6YWRkTWVzc2FnZVRv
Q29uc29sZSk6IENhbGwKKyAgICAgICAgYWRkTWVzc2FnZVRvQ29uc29sZSBjYWxsYmFjayBpZiBw
cmVzZW50LgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJVSUNsaWVudC5oOgorICAgICAgICAqIFdl
YktpdDIueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajogQWRkIG5ldyBmaWxlcyB0byBjb21waWxh
dGlvbi4KKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVu
dC5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYkNocm9tZUNsaWVudDo6YWRkTWVzc2FnZVRvQ29u
c29sZSk6IFNlbmQKKyAgICAgICAgQWRkTWVzc2FnZVRvQ29uc29sZSBtZXNzYWdlIHRvIHRoZSBV
SSBwcm9jZXNzLgorICAgICAgICAqIHdpbi9XZWJLaXQyLnZjcHJvajogQWRkIG5ldyBmaWxlcyB0
byBjb21waWxhdGlvbi4KKwogMjAxMi0wNC0yMiAgU3JpcmFtIE5lZWxha2FuZGFuICA8c3JpcmFt
Lm5lZWxha2FuZGFuQGdtYWlsLmNvbT4KIAogICAgICAgICBbR3RrXSBBZGRlZCBNT1pfWDExIGJ1
aWxkIGZsYWcgZm9yIFRBUkdFVF9YMTEKZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rv
b2xzL0NoYW5nZUxvZwppbmRleCAxNzExMzk1Li5mNDY1MDNhIDEwMDY0NAotLS0gYS9Ub29scy9D
aGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzEgQEAKKzIwMTItMDQt
MjMgIENhcmxvcyBHYXJjaWEgQ2FtcG9zICA8Y2dhcmNpYUBpZ2FsaWEuY29tPgorCisgICAgICAg
IFtXSzJdIEltcGxlbWVudCBXZWJDaHJvbWVDbGllbnQ6OmFkZE1lc3NhZ2VUb0NvbnNvbGUoKQor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Nzk0ODIKKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIE1pbmlCcm93
c2VyL21hYy9Ccm93c2VyV2luZG93Q29udHJvbGxlci5tOgorICAgICAgICAoLVtCcm93c2VyV2lu
ZG93Q29udHJvbGxlciBhd2FrZUZyb21OaWJdKTogQWRkIGVtcHR5CisgICAgICAgIGFkZE1lc3Nh
Z2VUb0NvbnNvbGUgY2FsbGJhY2sgdG8gVUkgY2xpZW50IHN0cnVjdC4KKyAgICAgICAgKiBUZXN0
V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDIvQ29uc29sZU1lc3NhZ2UuY3BwOiBBZGRlZC4KKyAgICAg
ICAgKFRlc3RXZWJLaXRBUEkpOgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6Q29uc29sZU1lc3Nh
Z2U6OkNvbnNvbGVNZXNzYWdlKToKKyAgICAgICAgKENvbnNvbGVNZXNzYWdlKToKKyAgICAgICAg
KFRlc3RXZWJLaXRBUEk6OkNvbnNvbGVNZXNzYWdlOjphc3NlcnRFcXVhbCk6CisgICAgICAgIChX
ZWJLaXQyQ29uc29sZU1lc3NhZ2VUZXN0KToKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OldlYktp
dDJDb25zb2xlTWVzc2FnZVRlc3Q6OldlYktpdDJDb25zb2xlTWVzc2FnZVRlc3QpOgorICAgICAg
ICAoVGVzdFdlYktpdEFQSTo6V2ViS2l0MkNvbnNvbGVNZXNzYWdlVGVzdDo6YWRkTWVzc2FnZVRv
Q29uc29sZSk6CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpXZWJLaXQyQ29uc29sZU1lc3NhZ2VU
ZXN0OjpzZXRVSUNsaWVudCk6CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpXZWJLaXQyQ29uc29s
ZU1lc3NhZ2VUZXN0OjpTZXRVcCk6CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpXZWJLaXQyQ29u
c29sZU1lc3NhZ2VUZXN0Ojpsb2FkSFRNTEFuZFJ1blVudGlsQ29uc29sZU1lc3NhZ2VSZWNlaXZl
ZCk6CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpURVNUX0YpOgorICAgICAgICAqIFRlc3RXZWJL
aXRBUEkvd2luL1Rlc3RXZWJLaXRBUEkudmNwcm9qOiBBZGQgQ29uc29sZU1lc3NhZ2UgdW5pdCB0
ZXN0cy4KKyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250cm9sbGVyLmNwcDoKKyAg
ICAgICAgKFdUUjo6VGVzdENvbnRyb2xsZXI6OmNyZWF0ZU90aGVyUGFnZSk6IEFkZCBlbXB0eQor
ICAgICAgICBhZGRNZXNzYWdlVG9Db25zb2xlIGNhbGxiYWNrIHRvIFVJIGNsaWVudCBzdHJ1Y3Qu
CisgICAgICAgIChXVFI6OlRlc3RDb250cm9sbGVyOjppbml0aWFsaXplKTogRGl0dG8uCisKIDIw
MTItMDQtMjIgIFNyaXJhbSBOZWVsYWthbmRhbiAgPHNyaXJhbS5uZWVsYWthbmRhbkBnbWFpbC5j
b20+CiAKICAgICAgICAgW0d0a10gQWRkZWQgTU9aX1gxMSBidWlsZCBmbGFnIGZvciBUQVJHRVRf
WDExCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9DTWFrZUxpc3RzLnR4dCBiL1NvdXJjZS9X
ZWJLaXQyL0NNYWtlTGlzdHMudHh0CmluZGV4IGMzZThhYTYuLjEyZTRkYzcgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQyL0NNYWtlTGlzdHMudHh0CisrKyBiL1NvdXJjZS9XZWJLaXQyL0NNYWtl
TGlzdHMudHh0CkBAIC0xMTUsNiArMTE1LDcgQEAgU0VUKFdlYktpdDJfU09VUkNFUwogICAgIFNo
YXJlZC9BUElDbGllbnRUcmFpdHMuY3BwCiAgICAgU2hhcmVkL0FQSU9iamVjdC5jcHAKICAgICBT
aGFyZWQvQ2hpbGRQcm9jZXNzLmNwcAorICAgIFNoYXJlZC9Db25zb2xlTWVzc2FnZS5jcHAKICAg
ICBTaGFyZWQvRGljdGlvbmFyeVBvcHVwSW5mby5jcHAKICAgICBTaGFyZWQvRWRpdG9yU3RhdGUu
Y3BwCiAgICAgU2hhcmVkL0ZvbnRJbmZvLmNwcApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIv
R05VbWFrZWZpbGUuYW0gYi9Tb3VyY2UvV2ViS2l0Mi9HTlVtYWtlZmlsZS5hbQppbmRleCAyZGFm
Y2FmLi4zMTU5NDY3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9HTlVtYWtlZmlsZS5hbQor
KysgYi9Tb3VyY2UvV2ViS2l0Mi9HTlVtYWtlZmlsZS5hbQpAQCAtNSw2ICs1LDcgQEAgbGlid2Vi
a2l0Mmd0a19AV0VCS0lUR1RLX0FQSV9NQUpPUl9WRVJTSU9OQF9AV0VCS0lUR1RLX0FQSV9NSU5P
Ul9WRVJTSU9OQF9sYV9IRUEKIAkkKFdlYktpdDIpL1NoYXJlZC9BUEkvYy9XS0Jhc2UuaCBcCiAJ
JChXZWJLaXQyKS9TaGFyZWQvQVBJL2MvV0tDZXJ0aWZpY2F0ZUluZm8uaCBcCiAJJChXZWJLaXQy
KS9TaGFyZWQvQVBJL2MvV0tDb25uZWN0aW9uUmVmLmggXAorCSQoV2ViS2l0MikvU2hhcmVkL0FQ
SS9jL1dLQ29uc29sZVR5cGVzLmggXAogCSQoV2ViS2l0MikvU2hhcmVkL0FQSS9jL1dLQ29udGV4
dE1lbnVJdGVtLmggXAogCSQoV2ViS2l0MikvU2hhcmVkL0FQSS9jL1dLQ29udGV4dE1lbnVJdGVt
VHlwZXMuaCBcCiAJJChXZWJLaXQyKS9TaGFyZWQvQVBJL2MvV0tEYXRhLmggXApAQCAtMjcwLDYg
KzI3MSw3IEBAIHdlYmtpdDJfc291cmNlcyArPSBcCiAJU291cmNlL1dlYktpdDIvU2hhcmVkL0FQ
SS9jL1dLQ2VydGlmaWNhdGVJbmZvLmggXAogCVNvdXJjZS9XZWJLaXQyL1NoYXJlZC9BUEkvYy9X
S0Nvbm5lY3Rpb25SZWYuY3BwIFwKIAlTb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQVBJL2MvV0tDb25u
ZWN0aW9uUmVmLmggXAorCVNvdXJjZS9XZWJLaXQyL1NoYXJlZC9BUEkvYy9XS0NvbnNvbGVUeXBl
cy5oIFwKIAlTb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQVBJL2MvV0tDb250ZXh0TWVudUl0ZW0uY3Bw
IFwKIAlTb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQVBJL2MvV0tDb250ZXh0TWVudUl0ZW0uaCBcCiAJ
U291cmNlL1dlYktpdDIvU2hhcmVkL0FQSS9jL1dLQ29udGV4dE1lbnVJdGVtVHlwZXMuaCBcCkBA
IC0zMjUsNiArMzI3LDggQEAgd2Via2l0Ml9zb3VyY2VzICs9IFwKIAlTb3VyY2UvV2ViS2l0Mi9T
aGFyZWQvQ2hpbGRQcm9jZXNzLmNwcCBcCiAJU291cmNlL1dlYktpdDIvU2hhcmVkL0NoaWxkUHJv
Y2Vzcy5oIFwKIAlTb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQ29tbWFuZExpbmUuaCBcCisJU291cmNl
L1dlYktpdDIvU2hhcmVkL0NvbnNvbGVNZXNzYWdlLmNwcCBcCisJU291cmNlL1dlYktpdDIvU2hh
cmVkL0NvbnNvbGVNZXNzYWdlLmggXAogCVNvdXJjZS9XZWJLaXQyL1NoYXJlZC9Db3JlSVBDU3Vw
cG9ydC9JbmplY3RlZEJ1bmRsZU1lc3NhZ2VLaW5kcy5oIFwKIAlTb3VyY2UvV2ViS2l0Mi9TaGFy
ZWQvQ29yZUlQQ1N1cHBvcnQvV2ViQ29ubmVjdGlvbk1lc3NhZ2VLaW5kcy5oIFwKIAlTb3VyY2Uv
V2ViS2l0Mi9TaGFyZWQvQ29yZUlQQ1N1cHBvcnQvV2ViQ29udGV4dE1lc3NhZ2VLaW5kcy5oIFwK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9BUEkvYy9XS0NvbnNvbGVUeXBlcy5o
IGIvU291cmNlL1dlYktpdDIvU2hhcmVkL0FQSS9jL1dLQ29uc29sZVR5cGVzLmgKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZjVmZjgyNAotLS0gL2Rldi9udWxsCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL1NoYXJlZC9BUEkvYy9XS0NvbnNvbGVUeXBlcy5oCkBAIC0wLDAgKzEsNTYg
QEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTIgSWdhbGlhIFMuTC4KKyAqCisgKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBz
b3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisg
KiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQv
b3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisg
KiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklC
VVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVT
LCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJ
RVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBV
UlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRT
IENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5D
SURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VT
IChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNU
SVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBP
UiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRI
RU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklM
SVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklT
SU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBB
RFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lm
bmRlZiBXS0NvbnNvbGVUeXBlc19oCisjZGVmaW5lIFdLQ29uc29sZVR5cGVzX2gKKworI2lmZGVm
IF9fY3BsdXNwbHVzCitleHRlcm4gIkMiIHsKKyNlbmRpZgorCitlbnVtIHsKKyAgICBrV0tNZXNz
YWdlU291cmNlSFRNTCwKKyAgICBrV0tNZXNzYWdlU291cmNlWE1MLAorICAgIGtXS01lc3NhZ2VT
b3VyY2VKUywKKyAgICBrV0tNZXNzYWdlU291cmNlTmV0d29yaywKKyAgICBrV0tNZXNzYWdlU291
cmNlQ29uc29sZUFQSSwKKyAgICBrV0tNZXNzYWdlU291cmNlT3RoZXIKK307Cit0eXBlZGVmIHVp
bnQzMl90IFdLTWVzc2FnZVNvdXJjZVR5cGU7CisKK2VudW0geworICAgIGtXS01lc3NhZ2VMZXZl
bFRpcCwKKyAgICBrV0tNZXNzYWdlTGV2ZWxMb2csCisgICAga1dLTWVzc2FnZUxldmVsV2Fybmlu
ZywKKyAgICBrV0tNZXNzYWdlTGV2ZWxFcnJvciwKKyAgICBrV0tNZXNzYWdlTGV2ZWxEZWJ1Zwor
fTsKK3R5cGVkZWYgdWludDMyX3QgV0tNZXNzYWdlTGV2ZWxUeXBlOworCisjaWZkZWYgX19jcGx1
c3BsdXMKK30KKyNlbmRpZgorCisjZW5kaWYgLyogV0tDb25zb2xlVHlwZXNfaCAqLwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL0FQSS9jL1dLU2hhcmVkQVBJQ2FzdC5oIGIvU291
cmNlL1dlYktpdDIvU2hhcmVkL0FQSS9jL1dLU2hhcmVkQVBJQ2FzdC5oCmluZGV4IDVlNGJmNjku
LmUwZDAxODUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9BUEkvYy9XS1NoYXJl
ZEFQSUNhc3QuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQVBJL2MvV0tTaGFyZWRBUElD
YXN0LmgKQEAgLTI5LDYgKzI5LDcgQEAKICNpbmNsdWRlICJJbWFnZU9wdGlvbnMuaCIKICNpbmNs
dWRlICJTYW1lRG9jdW1lbnROYXZpZ2F0aW9uVHlwZS5oIgogI2luY2x1ZGUgIldLQmFzZS5oIgor
I2luY2x1ZGUgIldLQ29uc29sZVR5cGVzLmgiCiAjaW5jbHVkZSAiV0tDb250ZXh0TWVudUl0ZW1U
eXBlcy5oIgogI2luY2x1ZGUgIldLRXZlbnQuaCIKICNpbmNsdWRlICJXS0ZpbmRPcHRpb25zLmgi
CkBAIC00Myw2ICs0NCw3IEBACiAjaW5jbHVkZSAiV2ViVVJMLmgiCiAjaW5jbHVkZSAiV2ViVVJM
UmVxdWVzdC5oIgogI2luY2x1ZGUgIldlYlVSTFJlc3BvbnNlLmgiCisjaW5jbHVkZSA8V2ViQ29y
ZS9Db25zb2xlVHlwZXMuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0NvbnRleHRNZW51SXRlbS5oPgog
I2luY2x1ZGUgPFdlYkNvcmUvRmxvYXRSZWN0Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9GcmFtZUxv
YWRlclR5cGVzLmg+CkBAIC03NTQsNiArNzU2LDQ2IEBAIGlubGluZSBJbWFnZU9wdGlvbnMgdG9J
bWFnZU9wdGlvbnMoV0tJbWFnZU9wdGlvbnMgd2tJbWFnZU9wdGlvbnMpCiAgICAgcmV0dXJuIHN0
YXRpY19jYXN0PEltYWdlT3B0aW9ucz4oaW1hZ2VPcHRpb25zKTsKIH0KIAoraW5saW5lIFdLTWVz
c2FnZVNvdXJjZVR5cGUgdG9BUEkoV2ViQ29yZTo6TWVzc2FnZVNvdXJjZSBzb3VyY2UpCit7Cisg
ICAgc3dpdGNoIChzb3VyY2UpIHsKKyAgICBjYXNlIFdlYkNvcmU6OkhUTUxNZXNzYWdlU291cmNl
OgorICAgICAgICByZXR1cm4ga1dLTWVzc2FnZVNvdXJjZUhUTUw7CisgICAgY2FzZSBXZWJDb3Jl
OjpYTUxNZXNzYWdlU291cmNlOgorICAgICAgICByZXR1cm4ga1dLTWVzc2FnZVNvdXJjZVhNTDsK
KyAgICBjYXNlIFdlYkNvcmU6OkpTTWVzc2FnZVNvdXJjZToKKyAgICAgICAgcmV0dXJuIGtXS01l
c3NhZ2VTb3VyY2VKUzsKKyAgICBjYXNlIFdlYkNvcmU6Ok5ldHdvcmtNZXNzYWdlU291cmNlOgor
ICAgICAgICByZXR1cm4ga1dLTWVzc2FnZVNvdXJjZU5ldHdvcms7CisgICAgY2FzZSBXZWJDb3Jl
OjpDb25zb2xlQVBJTWVzc2FnZVNvdXJjZToKKyAgICAgICAgcmV0dXJuIGtXS01lc3NhZ2VTb3Vy
Y2VDb25zb2xlQVBJOworICAgIGNhc2UgV2ViQ29yZTo6T3RoZXJNZXNzYWdlU291cmNlOgorICAg
ICAgICByZXR1cm4ga1dLTWVzc2FnZVNvdXJjZU90aGVyOworICAgIGRlZmF1bHQ6CisgICAgICAg
IEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgICAgICByZXR1cm4ga1dLTWVzc2FnZVNvdXJjZU90
aGVyOworICAgIH0KK30KKworaW5saW5lIFdLTWVzc2FnZUxldmVsVHlwZSB0b0FQSShXZWJDb3Jl
OjpNZXNzYWdlTGV2ZWwgbGV2ZWwpCit7CisgICAgc3dpdGNoIChsZXZlbCkgeworICAgIGNhc2Ug
V2ViQ29yZTo6VGlwTWVzc2FnZUxldmVsOgorICAgICAgICByZXR1cm4ga1dLTWVzc2FnZUxldmVs
VGlwOworICAgIGNhc2UgV2ViQ29yZTo6TG9nTWVzc2FnZUxldmVsOgorICAgICAgICByZXR1cm4g
a1dLTWVzc2FnZUxldmVsTG9nOworICAgIGNhc2UgV2ViQ29yZTo6V2FybmluZ01lc3NhZ2VMZXZl
bDoKKyAgICAgICAgcmV0dXJuIGtXS01lc3NhZ2VMZXZlbFdhcm5pbmc7CisgICAgY2FzZSBXZWJD
b3JlOjpFcnJvck1lc3NhZ2VMZXZlbDoKKyAgICAgICAgcmV0dXJuIGtXS01lc3NhZ2VMZXZlbEVy
cm9yOworICAgIGNhc2UgV2ViQ29yZTo6RGVidWdNZXNzYWdlTGV2ZWw6CisgICAgICAgIHJldHVy
biBrV0tNZXNzYWdlTGV2ZWxEZWJ1ZzsKKyAgICBkZWZhdWx0OgorICAgICAgICBBU1NFUlRfTk9U
X1JFQUNIRUQoKTsKKyAgICAgICAgcmV0dXJuIGtXS01lc3NhZ2VMZXZlbExvZzsKKyAgICB9Cit9
CisKIH0gLy8gbmFtZXNwYWNlIFdlYktpdAogCiAjZW5kaWYgLy8gV0tTaGFyZWRBUElDYXN0X2gK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9Db25zb2xlTWVzc2FnZS5jcHAgYi9T
b3VyY2UvV2ViS2l0Mi9TaGFyZWQvQ29uc29sZU1lc3NhZ2UuY3BwCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAuLjQ2YmZiMTQKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2Vi
S2l0Mi9TaGFyZWQvQ29uc29sZU1lc3NhZ2UuY3BwCkBAIC0wLDAgKzEsNTQgQEAKKy8qCisgKiBD
b3B5cmlnaHQgKEMpIDIwMTIgSWdhbGlhIFMuTC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBt
dXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3Ry
aWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0
ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRX
QVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJ
UycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hB
TlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJ
U0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9S
UworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BF
Q0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMg
T1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwor
ICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFC
SUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JU
IChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBX
QVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisg
KiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZp
Zy5oIgorI2luY2x1ZGUgIkNvbnNvbGVNZXNzYWdlLmgiCisKKyNpbmNsdWRlICJXZWJDb3JlQXJn
dW1lbnRDb2RlcnMuaCIKKworbmFtZXNwYWNlIFdlYktpdCB7CisKK3ZvaWQgQ29uc29sZU1lc3Nh
Z2U6OmVuY29kZShDb3JlSVBDOjpBcmd1bWVudEVuY29kZXIqIGVuY29kZXIpIGNvbnN0Cit7Cisg
ICAgZW5jb2Rlci0+ZW5jb2RlRW51bShzb3VyY2UpOworICAgIGVuY29kZXItPmVuY29kZUVudW0o
bGV2ZWwpOworICAgIGVuY29kZXItPmVuY29kZShtZXNzYWdlKTsKKyAgICBlbmNvZGVyLT5lbmNv
ZGUobGluZU51bWJlcik7CisgICAgZW5jb2Rlci0+ZW5jb2RlKHNvdXJjZUlEKTsKK30KKworYm9v
bCBDb25zb2xlTWVzc2FnZTo6ZGVjb2RlKENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciogZGVjb2Rl
ciwgQ29uc29sZU1lc3NhZ2UmIGNvbnNvbGVNZXNzYWdlKQoreworICAgIGlmICghZGVjb2Rlci0+
ZGVjb2RlRW51bShjb25zb2xlTWVzc2FnZS5zb3VyY2UpCisgICAgICAgIHx8ICFkZWNvZGVyLT5k
ZWNvZGVFbnVtKGNvbnNvbGVNZXNzYWdlLmxldmVsKQorICAgICAgICB8fCAhZGVjb2Rlci0+ZGVj
b2RlKGNvbnNvbGVNZXNzYWdlLm1lc3NhZ2UpCisgICAgICAgIHx8ICFkZWNvZGVyLT5kZWNvZGUo
Y29uc29sZU1lc3NhZ2UubGluZU51bWJlcikKKyAgICAgICAgfHwgIWRlY29kZXItPmRlY29kZShj
b25zb2xlTWVzc2FnZS5zb3VyY2VJRCkpCisgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgIHJl
dHVybiB0cnVlOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQyL1NoYXJlZC9Db25zb2xlTWVzc2FnZS5oIGIvU291cmNlL1dlYktpdDIvU2hhcmVk
L0NvbnNvbGVNZXNzYWdlLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMzlj
MjhjYwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9Db25zb2xlTWVz
c2FnZS5oCkBAIC0wLDAgKzEsNTIgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTIgSWdhbGlh
IFMuTC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEu
IFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0g
bXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICog
ICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhl
IGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExF
IElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1Mg
T1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAq
IFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZP
UiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNI
QUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkg
RElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICog
Q09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJP
Q1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNF
LCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVS
IENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENP
TlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBP
UiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJ
UyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VD
SCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBDb25zb2xlTWVzc2FnZV9oCisjZGVmaW5lIENvbnNv
bGVNZXNzYWdlX2gKKworI2luY2x1ZGUgPFdlYkNvcmUvQ29uc29sZVR5cGVzLmg+CisjaW5jbHVk
ZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CisKK25hbWVzcGFjZSBDb3JlSVBDIHsKK2NsYXNzIEFy
Z3VtZW50RGVjb2RlcjsKK2NsYXNzIEFyZ3VtZW50RW5jb2RlcjsKK30KKworbmFtZXNwYWNlIFdl
YktpdCB7CisKK3N0cnVjdCBDb25zb2xlTWVzc2FnZSB7CisgICAgV2ViQ29yZTo6TWVzc2FnZVNv
dXJjZSBzb3VyY2U7CisgICAgV2ViQ29yZTo6TWVzc2FnZUxldmVsIGxldmVsOworICAgIFN0cmlu
ZyBtZXNzYWdlOworICAgIHVpbnQzMl90IGxpbmVOdW1iZXI7CisgICAgU3RyaW5nIHNvdXJjZUlE
OworCisgICAgdm9pZCBlbmNvZGUoQ29yZUlQQzo6QXJndW1lbnRFbmNvZGVyKikgY29uc3Q7Cisg
ICAgc3RhdGljIGJvb2wgZGVjb2RlKENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciosIENvbnNvbGVN
ZXNzYWdlJik7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKKworI2VuZGlmIC8vIENvbnNv
bGVNZXNzYWdlX2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1RhcmdldC5wcmkgYi9Tb3Vy
Y2UvV2ViS2l0Mi9UYXJnZXQucHJpCmluZGV4IGZkNTIwMjkuLjcyZTJiY2YgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQyL1RhcmdldC5wcmkKKysrIGIvU291cmNlL1dlYktpdDIvVGFyZ2V0LnBy
aQpAQCAtNDIsNiArNDIsNyBAQCBIRUFERVJTICs9IFwKICAgICBTaGFyZWQvQVBJL2MvV0tCYXNl
LmggXAogICAgIFNoYXJlZC9BUEkvYy9XS0NlcnRpZmljYXRlSW5mby5oIFwKICAgICBTaGFyZWQv
QVBJL2MvV0tDb25uZWN0aW9uUmVmLmggXAorICAgIFNoYXJlZC9BUEkvYy9XS0NvbnNvbGVUeXBl
cy5oIFwKICAgICBTaGFyZWQvQVBJL2MvV0tDb250ZXh0TWVudUl0ZW0uaCBcCiAgICAgU2hhcmVk
L0FQSS9jL1dLQ29udGV4dE1lbnVJdGVtVHlwZXMuaCBcCiAgICAgU2hhcmVkL0FQSS9jL1dLRGlj
dGlvbmFyeS5oIFwKQEAgLTcwLDYgKzcxLDcgQEAgSEVBREVSUyArPSBcCiAgICAgU2hhcmVkL1No
YXJlYWJsZVN1cmZhY2UuaCBcCiAgICAgU2hhcmVkL0NhY2hlTW9kZWwuaCBcCiAgICAgU2hhcmVk
L0NoaWxkUHJvY2Vzcy5oIFwKKyAgICBTaGFyZWQvQ29uc29sZU1lc3NhZ2UuaCBcCiAgICAgU2hh
cmVkL0RpY3Rpb25hcnlQb3B1cEluZm8uaCBcCiAgICAgU2hhcmVkL0VkaXRvclN0YXRlLmggXAog
ICAgIFNoYXJlZC9Gb250SW5mby5oIFwKQEAgLTQzNyw2ICs0MzksNyBAQCBTT1VSQ0VTICs9IFwK
ICAgICBTaGFyZWQvUGx1Z2lucy9QbHVnaW5Nb2R1bGVJbmZvLmNwcCBcCiAgICAgU2hhcmVkL1Bs
dWdpbnMvUGx1Z2luUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5jcHAgXAogICAgIFNoYXJlZC9D
aGlsZFByb2Nlc3MuY3BwIFwKKyAgICBTaGFyZWQvQ29uc29sZU1lc3NhZ2UuY3BwIFwKICAgICBT
aGFyZWQvRGljdGlvbmFyeVBvcHVwSW5mby5jcHAgXAogICAgIFNoYXJlZC9FZGl0b3JTdGF0ZS5j
cHAgXAogICAgIFNoYXJlZC9Gb250SW5mby5jcHAgXApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL0FQSS9DL1dLUGFnZS5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQ
SS9DL1dLUGFnZS5oCmluZGV4IGE2ZDhhNjYuLjNkOWEwZWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS1BhZ2UuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvQVBJL0MvV0tQYWdlLmgKQEAgLTI3LDYgKzI3LDcgQEAKICNkZWZpbmUgV0tQYWdlX2gK
IAogI2luY2x1ZGUgPFdlYktpdDIvV0tCYXNlLmg+CisjaW5jbHVkZSA8V2ViS2l0Mi9XS0NvbnNv
bGVUeXBlcy5oPgogI2luY2x1ZGUgPFdlYktpdDIvV0tFdmVudC5oPgogI2luY2x1ZGUgPFdlYktp
dDIvV0tGaW5kT3B0aW9ucy5oPgogI2luY2x1ZGUgPFdlYktpdDIvV0tHZW9tZXRyeS5oPgpAQCAt
MjA3LDYgKzIwOCw3IEBAIHR5cGVkZWYgdm9pZCAoKldLUGFnZVByaW50RnJhbWVDYWxsYmFjayko
V0tQYWdlUmVmIHBhZ2UsIFdLRnJhbWVSZWYgZnJhbWUsIGNvbnN0CiB0eXBlZGVmIHZvaWQgKCpX
S1BhZ2VTYXZlRGF0YVRvRmlsZUluRG93bmxvYWRzRm9sZGVyQ2FsbGJhY2spKFdLUGFnZVJlZiBw
YWdlLCBXS1N0cmluZ1JlZiBzdWdnZXN0ZWRGaWxlbmFtZSwgV0tTdHJpbmdSZWYgbWltZVR5cGUs
IFdLVVJMUmVmIG9yaWdpbmF0aW5nVVJMLCBXS0RhdGFSZWYgZGF0YSwgY29uc3Qgdm9pZCogY2xp
ZW50SW5mbyk7CiB0eXBlZGVmIGJvb2wgKCpXS1BhZ2VTaG91bGRJbnRlcnJ1cHRKYXZhU2NyaXB0
Q2FsbGJhY2spKFdLUGFnZVJlZiBwYWdlLCBjb25zdCB2b2lkICpjbGllbnRJbmZvKTsKIHR5cGVk
ZWYgdm9pZCAoKldLUGFnZURlY2lkZVBvbGljeUZvck5vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1
ZXN0Q2FsbGJhY2spKFdLUGFnZVJlZiBwYWdlLCBXS1NlY3VyaXR5T3JpZ2luUmVmIG9yaWdpbiwg
V0tOb3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdFJlZiBwZXJtaXNzaW9uUmVxdWVzdCwgY29u
c3Qgdm9pZCAqY2xpZW50SW5mbyk7Cit0eXBlZGVmIHZvaWQgKCpXS1BhZ2VBZGRNZXNzYWdlVG9D
b25zb2xlKShXS1BhZ2VSZWYgcGFnZSwgV0tNZXNzYWdlU291cmNlVHlwZSBzb3VyY2UsIFdLTWVz
c2FnZUxldmVsVHlwZSBsZXZlbCwgV0tTdHJpbmdSZWYgbWVzc2FnZSwgdW5zaWduZWQgbGluZU51
bWJlciwgV0tTdHJpbmdSZWYgc291cmNlSUQsIGNvbnN0IHZvaWQqIGNsaWVudEluZm8pOwogCiAv
LyBEZXByZWNhdGVkICAgIAogdHlwZWRlZiBXS1BhZ2VSZWYgKCpXS1BhZ2VDcmVhdGVOZXdQYWdl
Q2FsbGJhY2tfZGVwcmVjYXRlZEZvclVzZVdpdGhWMCkoV0tQYWdlUmVmIHBhZ2UsIFdLRGljdGlv
bmFyeVJlZiBmZWF0dXJlcywgV0tFdmVudE1vZGlmaWVycyBtb2RpZmllcnMsIFdLRXZlbnRNb3Vz
ZUJ1dHRvbiBtb3VzZUJ1dHRvbiwgY29uc3Qgdm9pZCAqY2xpZW50SW5mbyk7CkBAIC0yNTUsMTIg
KzI1NywxMyBAQCBzdHJ1Y3QgV0tQYWdlVUlDbGllbnQgewogICAgIFdLUGFnZUNhbGxiYWNrICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcnVuTW9k
YWw7CiAgICAgdm9pZCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICB1bnVzZWQxOyAvLyBVc2VkIHRvIGJlIGRpZENvbXBsZXRlUnVi
YmVyQmFuZEZvck1haW5GcmFtZQogICAgIFdLUGFnZVNhdmVEYXRhVG9GaWxlSW5Eb3dubG9hZHNG
b2xkZXJDYWxsYmFjayAgICAgICAgICAgICAgICAgICAgICAgc2F2ZURhdGFUb0ZpbGVJbkRvd25s
b2Fkc0ZvbGRlcjsKLSAgICBXS1BhZ2VTaG91bGRJbnRlcnJ1cHRKYXZhU2NyaXB0Q2FsbGJhY2sg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNob3VsZEludGVycnVwdEphdmFTY3JpcHQ7ICAg
IAorICAgIFdLUGFnZVNob3VsZEludGVycnVwdEphdmFTY3JpcHRDYWxsYmFjayAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgc2hvdWxkSW50ZXJydXB0SmF2YVNjcmlwdDsKIAogICAgIC8vIFZl
cnNpb24gMQogICAgIFdLUGFnZUNyZWF0ZU5ld1BhZ2VDYWxsYmFjayAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgY3JlYXRlTmV3UGFnZTsKICAgICBXS1BhZ2VNb3VzZURp
ZE1vdmVPdmVyRWxlbWVudENhbGxiYWNrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1v
dXNlRGlkTW92ZU92ZXJFbGVtZW50OwogICAgIFdLUGFnZURlY2lkZVBvbGljeUZvck5vdGlmaWNh
dGlvblBlcm1pc3Npb25SZXF1ZXN0Q2FsbGJhY2sgICAgICAgICAgZGVjaWRlUG9saWN5Rm9yTm90
aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3Q7CisgICAgV0tQYWdlQWRkTWVzc2FnZVRvQ29uc29s
ZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhZGRNZXNzYWdlVG9D
b25zb2xlOwogfTsKIHR5cGVkZWYgc3RydWN0IFdLUGFnZVVJQ2xpZW50IFdLUGFnZVVJQ2xpZW50
OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNw
cCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCmluZGV4IDdjYzMw
ZjQuLjEzMjMwYjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdl
UHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3Bw
CkBAIC0yOCw2ICsyOCw3IEBACiAKICNpbmNsdWRlICJBdXRoZW50aWNhdGlvbkNoYWxsZW5nZVBy
b3h5LmgiCiAjaW5jbHVkZSAiQXV0aGVudGljYXRpb25EZWNpc2lvbkxpc3RlbmVyLmgiCisjaW5j
bHVkZSAiQ29uc29sZU1lc3NhZ2UuaCIKICNpbmNsdWRlICJEYXRhUmVmZXJlbmNlLmgiCiAjaW5j
bHVkZSAiRG93bmxvYWRQcm94eS5oIgogI2luY2x1ZGUgIkRyYXdpbmdBcmVhUHJveHkuaCIKQEAg
LTI0NjYsNiArMjQ2NywxMSBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6c2V0TWVkaWFWb2x1bWUoZmxv
YXQgdm9sdW1lKQogICAgIHByb2Nlc3MoKS0+c2VuZChNZXNzYWdlczo6V2ViUGFnZTo6U2V0TWVk
aWFWb2x1bWUodm9sdW1lKSwgbV9wYWdlSUQpOyAgICAKIH0KIAordm9pZCBXZWJQYWdlUHJveHk6
OmFkZE1lc3NhZ2VUb0NvbnNvbGUoY29uc3QgQ29uc29sZU1lc3NhZ2UmIGNvbnNvbGVNZXNzYWdl
KQoreworICAgIG1fdWlDbGllbnQuYWRkTWVzc2FnZVRvQ29uc29sZSh0aGlzLCBjb25zb2xlTWVz
c2FnZSk7Cit9CisKICNpZiBQTEFURk9STShRVCkKIHZvaWQgV2ViUGFnZVByb3h5OjpkaWRDaGFu
Z2VDb250ZW50c1NpemUoY29uc3QgSW50U2l6ZSYgc2l6ZSkKIHsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9XZWJQYWdlUHJveHkuaAppbmRleCBiMWU3ZWVhLi43M2MwMTg2IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKKysrIGIvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCkBAIC0xMzYsNiArMTM2LDcgQEAgY2xhc3MgV2Vi
UHJvY2Vzc1Byb3h5OwogY2xhc3MgV2ViVVJMUmVxdWVzdDsKIGNsYXNzIFdlYldoZWVsRXZlbnQ7
CiBzdHJ1Y3QgQXR0cmlidXRlZFN0cmluZzsKK3N0cnVjdCBDb25zb2xlTWVzc2FnZTsKIHN0cnVj
dCBEaWN0aW9uYXJ5UG9wdXBJbmZvOwogc3RydWN0IEVkaXRvclN0YXRlOwogc3RydWN0IFBsYXRm
b3JtUG9wdXBNZW51RGF0YTsKQEAgLTc0MCw2ICs3NDEsNyBAQCBwcml2YXRlOgogICAgIHZvaWQg
ZGlkQ2hhbmdlUGFnZUNvdW50KHVuc2lnbmVkKTsKICAgICB2b2lkIGRpZEZhaWxUb0luaXRpYWxp
emVQbHVnaW4oY29uc3QgU3RyaW5nJiBtaW1lVHlwZSk7CiAgICAgdm9pZCBzZXRDYW5TaG9ydENp
cmN1aXRIb3Jpem9udGFsV2hlZWxFdmVudHMoYm9vbCBjYW5TaG9ydENpcmN1aXRIb3Jpem9udGFs
V2hlZWxFdmVudHMpIHsgbV9jYW5TaG9ydENpcmN1aXRIb3Jpem9udGFsV2hlZWxFdmVudHMgPSBj
YW5TaG9ydENpcmN1aXRIb3Jpem9udGFsV2hlZWxFdmVudHM7IH0KKyAgICB2b2lkIGFkZE1lc3Nh
Z2VUb0NvbnNvbGUoY29uc3QgQ29uc29sZU1lc3NhZ2UmKTsKIAogICAgIHZvaWQgcmVhdHRhY2hU
b1dlYlByb2Nlc3MoKTsKICAgICB2b2lkIHJlYXR0YWNoVG9XZWJQcm9jZXNzV2l0aEl0ZW0oV2Vi
QmFja0ZvcndhcmRMaXN0SXRlbSopOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL1dlYlBhZ2VQcm94eS5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9X
ZWJQYWdlUHJveHkubWVzc2FnZXMuaW4KaW5kZXggZDcxODExNS4uZDRmN2E3MSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5tZXNzYWdlcy5pbgorKysg
Yi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5Lm1lc3NhZ2VzLmluCkBAIC02
Nyw2ICs2Nyw3IEBAIG1lc3NhZ2VzIC0+IFdlYlBhZ2VQcm94eSB7CiAgICAgRGlkQ2hhbmdlUGFn
ZUNvdW50KHVuc2lnbmVkIHBhZ2VDb3VudCk7CiAgICAgRGlkRmFpbFRvSW5pdGlhbGl6ZVBsdWdp
bihXVEY6OlN0cmluZyBtaW1lVHlwZSkKICAgICBTZXRDYW5TaG9ydENpcmN1aXRIb3Jpem9udGFs
V2hlZWxFdmVudHMoYm9vbCBjYW5TaG9ydENpcmN1aXRIb3Jpem9udGFsV2hlZWxFdmVudHMpCisg
ICAgQWRkTWVzc2FnZVRvQ29uc29sZShXZWJLaXQ6OkNvbnNvbGVNZXNzYWdlIGNvbnNvbGVNZXNz
YWdlKQogCiAjaWYgVVNFKFRJTEVEX0JBQ0tJTkdfU1RPUkUpCiAgICAgUGFnZURpZFJlcXVlc3RT
Y3JvbGwoV2ViQ29yZTo6SW50UG9pbnQgcG9pbnQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvV2ViVUlDbGllbnQuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dl
YlVJQ2xpZW50LmNwcAppbmRleCBkMDEzMTIyLi41YWIzOTJmIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvV2ViVUlDbGllbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9XZWJVSUNsaWVudC5jcHAKQEAgLTQxMSw0ICs0MTEsMTIgQEAgYm9vbCBXZWJVSUNs
aWVudDo6c2hvdWxkSW50ZXJydXB0SmF2YVNjcmlwdChXZWJQYWdlUHJveHkqIHBhZ2UpCiAgICAg
cmV0dXJuIG1fY2xpZW50LnNob3VsZEludGVycnVwdEphdmFTY3JpcHQodG9BUEkocGFnZSksIG1f
Y2xpZW50LmNsaWVudEluZm8pOwogfQogCit2b2lkIFdlYlVJQ2xpZW50OjphZGRNZXNzYWdlVG9D
b25zb2xlKFdlYlBhZ2VQcm94eSogcGFnZSwgY29uc3QgQ29uc29sZU1lc3NhZ2UmIGNvbnNvbGVN
ZXNzYWdlKQoreworICAgIGlmICghbV9jbGllbnQuYWRkTWVzc2FnZVRvQ29uc29sZSkKKyAgICAg
ICAgcmV0dXJuOworCisgICAgbV9jbGllbnQuYWRkTWVzc2FnZVRvQ29uc29sZSh0b0FQSShwYWdl
KSwgdG9BUEkoY29uc29sZU1lc3NhZ2Uuc291cmNlKSwgdG9BUEkoY29uc29sZU1lc3NhZ2UubGV2
ZWwpLCB0b0FQSShjb25zb2xlTWVzc2FnZS5tZXNzYWdlLmltcGwoKSksIGNvbnNvbGVNZXNzYWdl
LmxpbmVOdW1iZXIsIHRvQVBJKGNvbnNvbGVNZXNzYWdlLnNvdXJjZUlELmltcGwoKSksIG1fY2xp
ZW50LmNsaWVudEluZm8pOworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJVSUNsaWVudC5oIGIvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL1dlYlVJQ2xpZW50LmgKaW5kZXggODM1ZTZjZS4uZmVkN2Q4NiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlVJQ2xpZW50LmgKKysrIGIvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL1dlYlVJQ2xpZW50LmgKQEAgLTI3LDYgKzI3LDcgQEAKICNkZWZpbmUg
V2ViVUlDbGllbnRfaAogCiAjaW5jbHVkZSAiQVBJQ2xpZW50LmgiCisjaW5jbHVkZSAiQ29uc29s
ZU1lc3NhZ2UuaCIKICNpbmNsdWRlICJXS1BhZ2UuaCIKICNpbmNsdWRlICJXZWJFdmVudC5oIgog
I2luY2x1ZGUgIldlYkhpdFRlc3RSZXN1bHQuaCIKQEAgLTExNSw2ICsxMTYsOCBAQCBwdWJsaWM6
CiAgICAgdm9pZCBzYXZlRGF0YVRvRmlsZUluRG93bmxvYWRzRm9sZGVyKFdlYlBhZ2VQcm94eSos
IGNvbnN0IFN0cmluZyYgc3VnZ2VzdGVkRmlsZW5hbWUsIGNvbnN0IFN0cmluZyYgbWltZVR5cGUs
IGNvbnN0IFN0cmluZyYgb3JpZ2luYXRpbmdVUkxTdHJpbmcsIFdlYkRhdGEqKTsKIAogICAgIGJv
b2wgc2hvdWxkSW50ZXJydXB0SmF2YVNjcmlwdChXZWJQYWdlUHJveHkqKTsKKworICAgIHZvaWQg
YWRkTWVzc2FnZVRvQ29uc29sZShXZWJQYWdlUHJveHkqLCBjb25zdCBDb25zb2xlTWVzc2FnZSYp
OwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
Mi9XZWJLaXQyLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViS2l0Mi9XZWJL
aXQyLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggMGI5YWYwZS4uMTJiMWVmYiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViS2l0Mi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9q
CisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYktpdDIueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpA
QCAtMzI3LDYgKzMyNyw3IEBACiAJCTM3QzRFOUY2MTMxQzZFN0UwMDI5QkQ1QSAvKiBjb25maWcu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEIzOTZFQTU1
MTJFMEVEMkQwMEY0RkVCNyAvKiBjb25maWcuaCAqLzsgfTsKIAkJMzdGNjIzQjgxMkE1N0I2MjAw
RTNGREY2IC8qIFdLRmluZE9wdGlvbnMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDM3RjYyM0I3MTJBNTdCNjIwMEUzRkRGNiAvKiBXS0ZpbmRPcHRpb25z
LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJMzdG
OTBERTMxMzc2NTYwRTAwNTFDRjY4IC8qIEhUVFBDb29raWVBY2NlcHRQb2xpY3kuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY2Mzg5NTRGMTMzQkVGMzgw
MDg5NDFENSAvKiBIVFRQQ29va2llQWNjZXB0UG9saWN5LmggKi87IH07CisJCTRGNTVGREM1RjA0
NzU0NUM5RjM4NDk4QSAvKiBDb25zb2xlTWVzc2FnZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCRkJEODE3QzMxRjdGNzM4MkUxQjlCN0UgLyogQ29u
c29sZU1lc3NhZ2UuY3BwICovOyB9OwogCQk1MTAyMUU5QzEyQjE2Nzg4MDA1QzAzM0MgLyogV2Vi
Q29udGV4dE1lbnVDbGllbnRNYWMubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSA1MTAyMUU5QjEyQjE2Nzg4MDA1QzAzM0MgLyogV2ViQ29udGV4dE1lbnVD
bGllbnRNYWMubW0gKi87IH07CiAJCTUxMEZCQjlBMTI4OEM5NUUwMEFGRkRGNCAvKiBXZWJDb250
ZXh0TWVudUl0ZW1EYXRhLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDUxMEZCQjk4MTI4OEM5NUUwMEFGRkRGNCAvKiBXZWJDb250ZXh0TWVudUl0ZW1E
YXRhLmNwcCAqLzsgfTsKIAkJNTEwRkJCOUIxMjg4Qzk1RTAwQUZGREY0IC8qIFdlYkNvbnRleHRN
ZW51SXRlbURhdGEuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDUxMEZCQjk5MTI4OEM5NUUwMEFGRkRGNCAvKiBXZWJDb250ZXh0TWVudUl0ZW1EYXRhLmgg
Ki87IH07CkBAIC00NDMsNiArNDQ0LDcgQEAKIAkJNjUwMUJEMUExMkYxMjQzNDAwRTlGMjQ4IC8q
IFdLQnVuZGxlSW5zcGVjdG9yLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDY1Qjg2RjE3MTJGMTFEN0IwMEI3REQ4QSAvKiBXS0J1bmRsZUluc3BlY3Rv
ci5jcHAgKi87IH07CiAJCTY1OUM1NTFFMTMwMDA2NDEwMDI1QzBDMiAvKiBJbmplY3RlZEJ1bmRs
ZVBhZ2VSZXNvdXJjZUxvYWRDbGllbnQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gNjU0NkE4MjkxMzAwMDE2NDAwMENFQjFDIC8qIEluamVjdGVkQnVu
ZGxlUGFnZVJlc291cmNlTG9hZENsaWVudC5jcHAgKi87IH07CiAJCTY1Qjg2RjFFMTJGMTFERTMw
MEI3REQ4QSAvKiBXS0J1bmRsZUluc3BlY3Rvci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gNjVCODZGMTgxMkYxMUQ3QjAwQjdERDhBIC8qIFdLQnVuZGxl
SW5zcGVjdG9yLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsg
fTsKKwkJNjhCNTExNURERDA2QTNFRDQ5MjMzRUQyIC8qIENvbnNvbGVNZXNzYWdlLmNwcCBpbiBT
b3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJGQkQ4MTdDMzFGN0Y3
MzgyRTFCOUI3RSAvKiBDb25zb2xlTWVzc2FnZS5jcHAgKi87IH07CiAJCTZFRTg0OUM4MTM2OEQ5
MzkwMDM4RDQ4MSAvKiBXS0luc3BlY3RvclByaXZhdGVNYWMuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDZFRTg0OUM2MTM2OEQ5MkQwMDM4RDQ4MSAvKiBX
S0luc3BlY3RvclByaXZhdGVNYWMuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2
YXRlLCApOyB9OyB9OwogCQk3NjJCNzQ4RDEyMEJDNzVDMDA4MTkzMzkgLyogV0tQcmVmZXJlbmNl
c1ByaXZhdGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDc2MkI3NDg0MTIwQkJBMkQwMDgxOTMzOSAvKiBXS1ByZWZlcmVuY2VzUHJpdmF0ZS5oICovOyBz
ZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTc4MDFDMDk5MTQy
MjkwQzQwMEZBRjlBRiAvKiBXZWJIaXRUZXN0UmVzdWx0LmNwcCBpbiBTb3VyY2VzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDc4MDFDMDk1MTQyMjkwQzQwMEZBRjlBRiAvKiBX
ZWJIaXRUZXN0UmVzdWx0LmNwcCAqLzsgfTsKQEAgLTEzNDYsNiArMTM0OCw3IEBACiAJCTM3OTQ4
NDA2MTUwQzRCOTYwMEU1MkNFOSAvKiBXS1JlbmRlckxheWVyLmNwcCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdLUmVuZGVyTGF5ZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQkzNzk0ODQwNzE1MEM0Qjk2MDBFNTJDRTkgLyogV0tSZW5kZXJMYXllci5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXS1JlbmRlckxheWVyLmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTM3RjYyM0I3MTJBNTdCNjIwMEUzRkRGNiAvKiBXS0Zp
bmRPcHRpb25zLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdLRmluZE9wdGlv
bnMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNDMzMDM3QkI0QUI1NTcxMEIyNDc0
MDkxIC8qIFdLQ29uc29sZVR5cGVzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IFdLQ29uc29sZVR5cGVzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTUxMDAzMUY2
MTM3OUNBQ0IwMEM4REZFNCAvKiBXZWJQcm9jZXNzU2hpbS5keWxpYiAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBleHBsaWNpdEZpbGVUeXBlID0gImNvbXBpbGVkLm1hY2gtby5keWxpYiI7
IGluY2x1ZGVJbkluZGV4ID0gMDsgcGF0aCA9IFdlYlByb2Nlc3NTaGltLmR5bGliOyBzb3VyY2VU
cmVlID0gQlVJTFRfUFJPRFVDVFNfRElSOyB9OwogCQk1MTAyMUU5QjEyQjE2Nzg4MDA1QzAzM0Mg
LyogV2ViQ29udGV4dE1lbnVDbGllbnRNYWMubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5v
YmpjcHA7IHBhdGggPSBXZWJDb250ZXh0TWVudUNsaWVudE1hYy5tbTsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJNTEwRkJCOTgxMjg4Qzk1RTAwQUZGREY0IC8qIFdlYkNvbnRleHRNZW51
SXRlbURhdGEuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gV2ViQ29u
dGV4dE1lbnVJdGVtRGF0YS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xNDc4
LDYgKzE0ODEsNyBAQAogCQk3NjJCNzQ4NDEyMEJCQTJEMDA4MTkzMzkgLyogV0tQcmVmZXJlbmNl
c1ByaXZhdGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV0tQcmVmZXJlbmNl
c1ByaXZhdGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNzgwMUMwOTUxNDIyOTBD
NDAwRkFGOUFGIC8qIFdlYkhpdFRlc3RSZXN1bHQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAuY3BwOyBwYXRoID0gV2ViSGl0VGVzdFJlc3VsdC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCTc4MDFDMDk2MTQyMjkwQzQwMEZBRjlBRiAvKiBXZWJIaXRUZXN0UmVzdWx0Lmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYkhpdFRlc3RSZXN1bHQuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJN0NEOTNCRTJEOTMwREUxMzJGNUU5QzU5IC8qIENv
bnNvbGVNZXNzYWdlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IENvbnNvbGVN
ZXNzYWdlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCThDRkVDRTkzMTQ5MEYxNDAw
MDJBQUEzMiAvKiBFZGl0b3JTdGF0ZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7
IHBhdGggPSBFZGl0b3JTdGF0ZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCThE
QzJFRjVBMDQ4NkE2OTQwMDk4QjIxNiAvKiBJbmZvLnBsaXN0ICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dC5wbGlz
dC54bWw7IHBhdGggPSBJbmZvLnBsaXN0OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk4
REMyRUY1QjA0ODZBNjk0MDA5OEIyMTYgLyogV2ViS2l0Mi5mcmFtZXdvcmsgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZXhwbGljaXRGaWxlVHlwZSA9IHdyYXBwZXIuZnJhbWV3b3JrOyBp
bmNsdWRlSW5JbmRleCA9IDA7IHBhdGggPSBXZWJLaXQyLmZyYW1ld29yazsgc291cmNlVHJlZSA9
IEJVSUxUX1BST0RVQ1RTX0RJUjsgfTsKQEAgLTE4ODksNiArMTg5Myw3IEBACiAJCUJDRkQ1NDg5
MTMyRDgyNjgwMDU1RDgxNiAvKiBXS0Vycm9yQ0YuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAuY3BwOyBwYXRoID0gV0tFcnJvckNGLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJQkNGRDU0OEExMzJEODI2ODAwNTVEODE2IC8qIFdLRXJyb3JDRi5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBXS0Vycm9yQ0YuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJQkZBNjE3OUUxMkYwQjk5RDAwMzNFMENBIC8qIFdLVmlld1ByaXZhdGUuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV0tWaWV3UHJpdmF0ZS5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OworCQlCRkJEODE3QzMxRjdGNzM4MkUxQjlCN0UgLyogQ29uc29sZU1lc3Nh
Z2UuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gQ29uc29sZU1lc3Nh
Z2UuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlDMDFBMjYwMDEyNjYyRjIxMDBD
OUVENTUgLyogU2hhcmVhYmxlQml0bWFwQ0cuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAu
Y3BwOyBwYXRoID0gU2hhcmVhYmxlQml0bWFwQ0cuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQlDMDJCRkYxNTEyNTE0RkQ4MDA5Q0NCRUEgLyogTmF0aXZlV2ViS2V5Ym9hcmRFdmVu
dC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBOYXRpdmVXZWJLZXlib2FyZEV2
ZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUMwMkJGRjFEMTI1MTUwMkUwMDlD
Q0JFQSAvKiBOYXRpdmVXZWJLZXlib2FyZEV2ZW50TWFjLm1tICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAub2JqY3BwOyBwYXRoID0gTmF0aXZlV2ViS2V5Ym9hcmRFdmVudE1hYy5tbTsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTIzNDEsNiArMjM0Niw4IEBACiAJCQkJMUEyRDk1NkUx
Mjg0ODU2NDAwMUVCOTYyIC8qIENoaWxkUHJvY2Vzcy5jcHAgKi8sCiAJCQkJMUEyRDk1NkQxMjg0
ODU2NDAwMUVCOTYyIC8qIENoaWxkUHJvY2Vzcy5oICovLAogCQkJCTFBNkY5RjhFMTFFMTNFRkMw
MERCMTM3MSAvKiBDb21tYW5kTGluZS5oICovLAorCQkJCUJGQkQ4MTdDMzFGN0Y3MzgyRTFCOUI3
RSAvKiBDb25zb2xlTWVzc2FnZS5jcHAgKi8sCisJCQkJN0NEOTNCRTJEOTMwREUxMzJGNUU5QzU5
IC8qIENvbnNvbGVNZXNzYWdlLmggKi8sCiAJCQkJQkNFODFEOTYxMzFBRTAyMDAwMjQxOTEwIC8q
IERpY3Rpb25hcnlQb3B1cEluZm8uY3BwICovLAogCQkJCUJDRTgxRDk3MTMxQUUwMjEwMDI0MTkx
MCAvKiBEaWN0aW9uYXJ5UG9wdXBJbmZvLmggKi8sCiAJCQkJQzUxNzM4ODAxMkRGOEY0RjAwRUUz
RjQ3IC8qIERyYWdDb250cm9sbGVyQWN0aW9uLmggKi8sCkBAIC0zNDk4LDYgKzM1MDUsNyBAQAog
CQkJCUJDNDA3NURBMTI0RkYwMjcwMDY4RjIwQSAvKiBXS0NlcnRpZmljYXRlSW5mby5oICovLAog
CQkJCUJDNEE2Mjk0MTQ3MzEzQTAwMDZDNjgxQSAvKiBXS0Nvbm5lY3Rpb25SZWYuY3BwICovLAog
CQkJCUJDNEE2Mjk1MTQ3MzEzQTAwMDZDNjgxQSAvKiBXS0Nvbm5lY3Rpb25SZWYuaCAqLywKKwkJ
CQk0MzMwMzdCQjRBQjU1NzEwQjI0NzQwOTEgLyogV0tDb25zb2xlVHlwZXMuaCAqLywKIAkJCQk1
MUE1NTVGMzEyOEM2QzQ3MDA5QUJDRUMgLyogV0tDb250ZXh0TWVudUl0ZW0uY3BwICovLAogCQkJ
CTUxQTU1NUY0MTI4QzZDNDcwMDlBQkNFQyAvKiBXS0NvbnRleHRNZW51SXRlbS5oICovLAogCQkJ
CTUxQTU1NjAwMTI4QzZEOTIwMDlBQkNFQyAvKiBXS0NvbnRleHRNZW51SXRlbVR5cGVzLmggKi8s
CkBAIC00NTMyLDYgKzQ1NDAsNyBAQAogCQkJCTFBNkY5RkI3MTFFMTQwODUwMERCMTM3MSAvKiBD
b21tYW5kTGluZU1hYy5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlCQzAzMkRBQTEwRjQzN0QxMDA1
OEMxNUEgLyogQ29ubmVjdGlvbi5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkxQTMwRUFDNjExNUQ3
REEzMDA1M0U5MzcgLyogQ29ubmVjdGlvbk1hYy5jcHAgaW4gU291cmNlcyAqLywKKwkJCQk2OEI1
MTE1REREMDZBM0VENDkyMzNFRDIgLyogQ29uc29sZU1lc3NhZ2UuY3BwIGluIFNvdXJjZXMgKi8s
CiAJCQkJQjg3OEI2MTYxMzM0MjhEQzAwNjg4OEU5IC8qIENvcnJlY3Rpb25QYW5lbC5tbSBpbiBT
b3VyY2VzICovLAogCQkJCTFBOEVGREZFMTI1M0NCNkUwMEY3MDY3RiAvKiBEYXRhUmVmZXJlbmNl
LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTkzRkM2N0JEMTJEM0NDRjIwMEE2MDYxMCAvKiBEZWNv
ZGVyQWRhcHRlci5jcHAgaW4gU291cmNlcyAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQy
L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNwcCBiL1NvdXJjZS9X
ZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNwcAppbmRl
eCA1ZDNhZmU2Li43NGViY2FkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNz
L1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5jcHAKKysrIGIvU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuY3BwCkBAIC0yNyw2ICsy
Nyw3IEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiV2ViQ2hyb21lQ2xpZW50Lmgi
CiAKKyNpbmNsdWRlICJDb25zb2xlTWVzc2FnZS5oIgogI2luY2x1ZGUgIkRyYXdpbmdBcmVhLmgi
CiAjaW5jbHVkZSAiSW5qZWN0ZWRCdW5kbGVOYXZpZ2F0aW9uQWN0aW9uLmgiCiAjaW5jbHVkZSAi
SW5qZWN0ZWRCdW5kbGVVc2VyTWVzc2FnZUNvZGVycy5oIgpAQCAtMjYwLDEyICsyNjEsMTggQEAg
dm9pZCBXZWJDaHJvbWVDbGllbnQ6OnNldFJlc2l6YWJsZShib29sIHJlc2l6YWJsZSkKICAgICBt
X3BhZ2UtPnNlbmQoTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6U2V0SXNSZXNpemFibGUocmVzaXph
YmxlKSk7CiB9CiAKLXZvaWQgV2ViQ2hyb21lQ2xpZW50OjphZGRNZXNzYWdlVG9Db25zb2xlKE1l
c3NhZ2VTb3VyY2UsIE1lc3NhZ2VUeXBlLCBNZXNzYWdlTGV2ZWwsIGNvbnN0IFN0cmluZyYgbWVz
c2FnZSwgdW5zaWduZWQgaW50IGxpbmVOdW1iZXIsIGNvbnN0IFN0cmluZyYgc291cmNlSUQpCit2
b2lkIFdlYkNocm9tZUNsaWVudDo6YWRkTWVzc2FnZVRvQ29uc29sZShNZXNzYWdlU291cmNlIHNv
dXJjZSwgTWVzc2FnZVR5cGUsIE1lc3NhZ2VMZXZlbCBsZXZlbCwgY29uc3QgU3RyaW5nJiBtZXNz
YWdlLCB1bnNpZ25lZCBpbnQgbGluZU51bWJlciwgY29uc3QgU3RyaW5nJiBzb3VyY2VJRCkKIHsK
ICAgICAvLyBOb3RpZnkgdGhlIGJ1bmRsZSBjbGllbnQuCiAgICAgbV9wYWdlLT5pbmplY3RlZEJ1
bmRsZVVJQ2xpZW50KCkud2lsbEFkZE1lc3NhZ2VUb0NvbnNvbGUobV9wYWdlLCBtZXNzYWdlLCBs
aW5lTnVtYmVyKTsKIAotICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgQ29uc29sZU1lc3NhZ2Ug
Y29uc29sZU1lc3NhZ2U7CisgICAgY29uc29sZU1lc3NhZ2Uuc291cmNlID0gc291cmNlOworICAg
IGNvbnNvbGVNZXNzYWdlLmxldmVsID0gbGV2ZWw7CisgICAgY29uc29sZU1lc3NhZ2UubWVzc2Fn
ZSA9IG1lc3NhZ2U7CisgICAgY29uc29sZU1lc3NhZ2UubGluZU51bWJlciA9IGxpbmVOdW1iZXI7
CisgICAgY29uc29sZU1lc3NhZ2Uuc291cmNlSUQgPSBzb3VyY2VJRDsKKyAgICBtX3BhZ2UtPnNl
bmQoTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6QWRkTWVzc2FnZVRvQ29uc29sZShjb25zb2xlTWVz
c2FnZSkpOwogfQogCiBib29sIFdlYkNocm9tZUNsaWVudDo6Y2FuUnVuQmVmb3JlVW5sb2FkQ29u
ZmlybVBhbmVsKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL3dpbi9XZWJLaXQyLnZjcHJv
aiBiL1NvdXJjZS9XZWJLaXQyL3dpbi9XZWJLaXQyLnZjcHJvagppbmRleCBmYjk1YTlkLi45OWM1
YzAzIDEwMDc1NQotLS0gYS9Tb3VyY2UvV2ViS2l0Mi93aW4vV2ViS2l0Mi52Y3Byb2oKKysrIGIv
U291cmNlL1dlYktpdDIvd2luL1dlYktpdDIudmNwcm9qCkBAIC00MjYsNiArNDI2LDE0IEBACiAJ
CQkJUmVsYXRpdmVQYXRoPSIuLlxTaGFyZWRcQ29tbWFuZExpbmUuaCIKIAkJCQk+CiAJCQk8L0Zp
bGU+CisgICAgICAgICAgICAgICAgICAgICAgICA8RmlsZQorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBSZWxhdGl2ZVBhdGg9Ii4uXFNoYXJlZFxDb25zb2xlTWVzc2FnZS5jcHAiCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID4KKyAgICAgICAgICAgICAgICAgICAgICAg
IDwvRmlsZT4KKyAgICAgICAgICAgICAgICAgICAgICAgIDxGaWxlCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIFJlbGF0aXZlUGF0aD0iLi5cU2hhcmVkXENvbnNvbGVNZXNzYWdlLmgi
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID4KKyAgICAgICAgICAgICAgICAgICAg
ICAgIDwvRmlsZT4KIAkJCTxGaWxlCiAJCQkJUmVsYXRpdmVQYXRoPSIuLlxTaGFyZWRcRGljdGlv
bmFyeVBvcHVwSW5mby5jcHAiCiAJCQkJPgpAQCAtODg5LDYgKzg5NywxMCBAQAogCQkJCQlSZWxh
dGl2ZVBhdGg9Ii4uXFNoYXJlZFxBUElcY1xXS0Nvbm5lY3Rpb25SZWYuaCIKIAkJCQkJPgogCQkJ
CTwvRmlsZT4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPEZpbGUKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZWxhdGl2ZVBhdGg9Ii4uXFNoYXJlZFxB
UElcY1xXS0NvbnNvbGVUeXBlcy5oIgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgID4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9GaWxlPgogCQkJCTxG
aWxlCiAJCQkJCVJlbGF0aXZlUGF0aD0iLi5cU2hhcmVkXEFQSVxjXFdLQ29udGV4dE1lbnVJdGVt
LmNwcCIKIAkJCQkJPgpkaWZmIC0tZ2l0IGEvVG9vbHMvTWluaUJyb3dzZXIvbWFjL0Jyb3dzZXJX
aW5kb3dDb250cm9sbGVyLm0gYi9Ub29scy9NaW5pQnJvd3Nlci9tYWMvQnJvd3NlcldpbmRvd0Nv
bnRyb2xsZXIubQppbmRleCA1MTQ0ZjUzLi43NmZjMTExIDEwMDY0NAotLS0gYS9Ub29scy9NaW5p
QnJvd3Nlci9tYWMvQnJvd3NlcldpbmRvd0NvbnRyb2xsZXIubQorKysgYi9Ub29scy9NaW5pQnJv
d3Nlci9tYWMvQnJvd3NlcldpbmRvd0NvbnRyb2xsZXIubQpAQCAtNjY5LDYgKzY2OSw3IEBAIC0g
KHZvaWQpYXdha2VGcm9tTmliCiAgICAgICAgIGNyZWF0ZU5ld1BhZ2UsCiAgICAgICAgIG1vdXNl
RGlkTW92ZU92ZXJFbGVtZW50LAogICAgICAgICAwLCAvLyBkZWNpZGVQb2xpY3lGb3JOb3RpZmlj
YXRpb25QZXJtaXNzaW9uUmVxdWVzdAorICAgICAgICAwLCAvLyBhZGRNZXNzYWdlVG9Db25zb2xl
CiAgICAgfTsKICAgICBXS1BhZ2VTZXRQYWdlVUlDbGllbnQoX3dlYlZpZXcucGFnZVJlZiwgJnVp
Q2xpZW50KTsKIH0KZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0
Mi9Db25zb2xlTWVzc2FnZS5jcHAgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDIv
Q29uc29sZU1lc3NhZ2UuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjg1
MDFjN2EKLS0tIC9kZXYvbnVsbAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktp
dDIvQ29uc29sZU1lc3NhZ2UuY3BwCkBAIC0wLDAgKzEsMTc2IEBACisvKgorICogQ29weXJpZ2h0
IChDKSAyMDEyIElnYWxpYSBTLkwuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAq
IGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRh
aW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25z
IGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBw
cm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQ
Uk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICog
QU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElU
WSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVE
LiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJF
IExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVY
RU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJ
Q0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVS
UlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBX
SEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVE
SU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBP
RiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBP
U1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNp
bmNsdWRlICJQbGF0Zm9ybVV0aWxpdGllcy5oIgorI2luY2x1ZGUgIlBsYXRmb3JtV2ViVmlldy5o
IgorI2luY2x1ZGUgPFdlYktpdDIvV0tSZXRhaW5QdHIuaD4KKyNpbmNsdWRlIDx3dGYvT3duUHRy
Lmg+CisjaW5jbHVkZSA8d3RmL1Bhc3NPd25QdHIuaD4KKworI2luY2x1ZGUgPHN0ZGlvLmg+CisK
K25hbWVzcGFjZSBUZXN0V2ViS2l0QVBJIHsKKworc3RydWN0IENvbnNvbGVNZXNzYWdlIHsKKyAg
ICBDb25zb2xlTWVzc2FnZSgpCisgICAgICAgIDogc291cmNlKGtXS01lc3NhZ2VTb3VyY2VPdGhl
cikKKyAgICAgICAgLCBsZXZlbChrV0tNZXNzYWdlTGV2ZWxMb2cpCisgICAgICAgICwgbWVzc2Fn
ZSgwKQorICAgICAgICAsIGxpbmVOdW1iZXIoMCkKKyAgICAgICAgLCBzb3VyY2VJRCgwKQorICAg
IHsKKyAgICB9CisKKyAgICBDb25zb2xlTWVzc2FnZShXS01lc3NhZ2VTb3VyY2VUeXBlIHNvdXJj
ZSwgV0tNZXNzYWdlTGV2ZWxUeXBlIGxldmVsLCBXS1N0cmluZ1JlZiBtZXNzYWdlLCB1bnNpZ25l
ZCBsaW5lTnVtYmVyLCBXS1N0cmluZ1JlZiBzb3VyY2VJRCkKKyAgICAgICAgOiBzb3VyY2Uoc291
cmNlKQorICAgICAgICAsIGxldmVsKGxldmVsKQorICAgICAgICAsIG1lc3NhZ2UobWVzc2FnZSkK
KyAgICAgICAgLCBsaW5lTnVtYmVyKGxpbmVOdW1iZXIpCisgICAgICAgICwgc291cmNlSUQoc291
cmNlSUQpCisgICAgeworICAgIH0KKworICAgIHZvaWQgYXNzZXJ0RXF1YWwoY29uc3QgQ29uc29s
ZU1lc3NhZ2UmIG90aGVyKSBjb25zdAorICAgIHsKKyAgICAgICAgRVhQRUNUX0VRKHNvdXJjZSwg
b3RoZXIuc291cmNlKTsKKyAgICAgICAgRVhQRUNUX0VRKGxldmVsLCBvdGhlci5sZXZlbCk7Cisg
ICAgICAgIEVYUEVDVF9UUlVFKFdLU3RyaW5nSXNFcXVhbChtZXNzYWdlLmdldCgpLCBvdGhlci5t
ZXNzYWdlLmdldCgpKSk7CisgICAgICAgIEVYUEVDVF9FUShsaW5lTnVtYmVyLCBvdGhlci5saW5l
TnVtYmVyKTsKKyAgICAgICAgRVhQRUNUX1RSVUUoV0tTdHJpbmdJc0VxdWFsKHNvdXJjZUlELmdl
dCgpLCBvdGhlci5zb3VyY2VJRC5nZXQoKSkpOworICAgIH0KKworICAgIFdLTWVzc2FnZVNvdXJj
ZVR5cGUgc291cmNlOworICAgIFdLTWVzc2FnZUxldmVsVHlwZSBsZXZlbDsKKyAgICBXS1JldGFp
blB0cjxXS1N0cmluZ1JlZj4gbWVzc2FnZTsKKyAgICB1bnNpZ25lZCBsaW5lTnVtYmVyOworICAg
IFdLUmV0YWluUHRyPFdLU3RyaW5nUmVmPiBzb3VyY2VJRDsKK307CisKK2NsYXNzIFdlYktpdDJD
b25zb2xlTWVzc2FnZVRlc3QgOiBwdWJsaWMgOjp0ZXN0aW5nOjpUZXN0IHsKK3B1YmxpYzoKKyAg
ICBXZWJLaXQyQ29uc29sZU1lc3NhZ2VUZXN0KCkKKyAgICAgICAgOiBtX2RpZFJlY2VpdmVDb25z
b2xlTWVzc2FnZShmYWxzZSkKKyAgICB7CisgICAgfQorCisgICAgc3RhdGljIHZvaWQgYWRkTWVz
c2FnZVRvQ29uc29sZShXS1BhZ2VSZWYsIFdLTWVzc2FnZVNvdXJjZVR5cGUgc291cmNlLCBXS01l
c3NhZ2VMZXZlbFR5cGUgbGV2ZWwsIFdLU3RyaW5nUmVmIG1lc3NhZ2UsIHVuc2lnbmVkIGxpbmVO
dW1iZXIsIFdLU3RyaW5nUmVmIHNvdXJjZUlELCBjb25zdCB2b2lkKiBjbGllbnRJbmZvKQorICAg
IHsKKyAgICAgICAgKChXZWJLaXQyQ29uc29sZU1lc3NhZ2VUZXN0KiljbGllbnRJbmZvKS0+bV9j
b25zb2xlTWVzc2FnZSA9IENvbnNvbGVNZXNzYWdlKHNvdXJjZSwgbGV2ZWwsIG1lc3NhZ2UsIGxp
bmVOdW1iZXIsIHNvdXJjZUlEKTsKKyAgICAgICAgKChXZWJLaXQyQ29uc29sZU1lc3NhZ2VUZXN0
KiljbGllbnRJbmZvKS0+bV9kaWRSZWNlaXZlQ29uc29sZU1lc3NhZ2UgPSB0cnVlOworICAgIH0K
KworICAgIHN0YXRpYyB2b2lkIHNldFVJQ2xpZW50KFdLUGFnZVJlZiBwYWdlLCBjb25zdCB2b2lk
KiBjbGllbnRJbmZvKQorICAgIHsKKyAgICAgICAgV0tQYWdlVUlDbGllbnQgdWlDbGllbnQ7Cisg
ICAgICAgIG1lbXNldCgmdWlDbGllbnQsIDAsIHNpemVvZih1aUNsaWVudCkpOworICAgICAgICB1
aUNsaWVudC52ZXJzaW9uID0ga1dLUGFnZVVJQ2xpZW50Q3VycmVudFZlcnNpb247CisgICAgICAg
IHVpQ2xpZW50LmNsaWVudEluZm8gPSBjbGllbnRJbmZvOworICAgICAgICB1aUNsaWVudC5hZGRN
ZXNzYWdlVG9Db25zb2xlID0gYWRkTWVzc2FnZVRvQ29uc29sZTsKKyAgICAgICAgV0tQYWdlU2V0
UGFnZVVJQ2xpZW50KHBhZ2UsICZ1aUNsaWVudCk7CisgICAgfQorCisgICAgdmlydHVhbCB2b2lk
IFNldFVwKCkKKyAgICB7CisgICAgICAgIG1fY29udGV4dCA9IGFkb3B0V0soV0tDb250ZXh0Q3Jl
YXRlKCkpOworICAgICAgICBtX3dlYlZpZXcgPSBhZG9wdFB0cihuZXcgUGxhdGZvcm1XZWJWaWV3
KG1fY29udGV4dC5nZXQoKSkpOworICAgICAgICBzZXRVSUNsaWVudChtX3dlYlZpZXctPnBhZ2Uo
KSwgdGhpcyk7CisKKyAgICAgICAgbV9kaWRSZWNlaXZlQ29uc29sZU1lc3NhZ2UgPSBmYWxzZTsK
KyAgICB9CisKKyAgICB2b2lkIGxvYWRIVE1MQW5kUnVuVW50aWxDb25zb2xlTWVzc2FnZVJlY2Vp
dmVkKFdLU3RyaW5nUmVmIGh0bWwsIFdLVVJMUmVmIGJhc2VVUkwpCisgICAgeworICAgICAgICBX
S1BhZ2VMb2FkSFRNTFN0cmluZyhtX3dlYlZpZXctPnBhZ2UoKSwgaHRtbCwgYmFzZVVSTCk7Cisg
ICAgICAgIFV0aWw6OnJ1bigmbV9kaWRSZWNlaXZlQ29uc29sZU1lc3NhZ2UpOworICAgIH0KKwor
ICAgIFdLUmV0YWluUHRyPFdLQ29udGV4dFJlZj4gbV9jb250ZXh0OworICAgIE93blB0cjxQbGF0
Zm9ybVdlYlZpZXc+IG1fd2ViVmlldzsKKyAgICBib29sIG1fZGlkUmVjZWl2ZUNvbnNvbGVNZXNz
YWdlOworICAgIENvbnNvbGVNZXNzYWdlIG1fY29uc29sZU1lc3NhZ2U7Cit9OworCitURVNUX0Yo
V2ViS2l0MkNvbnNvbGVNZXNzYWdlVGVzdCwgTG9nTWVzc2FnZSkKK3sKKyAgICBXS1JldGFpblB0
cjxXS1N0cmluZ1JlZj4gaHRtbFN0cmluZyhBZG9wdFdLLCBXS1N0cmluZ0NyZWF0ZVdpdGhVVEY4
Q1N0cmluZygiPGh0bWw+PGJvZHkgb25sb2FkPSdjb25zb2xlLmxvZyhcIkxvZyBDb25zb2xlIE1l
c3NhZ2VcIik7Jz48L2JvZHk+PC9odG1sPiIpKTsKKyAgICBXS1JldGFpblB0cjxXS1VSTFJlZj4g
YmFzZVVSTChBZG9wdFdLLCBXS1VSTENyZWF0ZVdpdGhVVEY4Q1N0cmluZygiaHR0cDovL2Zvby5j
b20vYmFyIikpOworICAgIGxvYWRIVE1MQW5kUnVuVW50aWxDb25zb2xlTWVzc2FnZVJlY2VpdmVk
KGh0bWxTdHJpbmcuZ2V0KCksIGJhc2VVUkwuZ2V0KCkpOworICAgIFdLUmV0YWluUHRyPFdLU3Ry
aW5nUmVmPiBtZXNzYWdlKEFkb3B0V0ssIFdLU3RyaW5nQ3JlYXRlV2l0aFVURjhDU3RyaW5nKCJM
b2cgQ29uc29sZSBNZXNzYWdlIikpOworICAgIFdLUmV0YWluUHRyPFdLU3RyaW5nUmVmPiBzb3Vy
Y2VJRChBZG9wdFdLLCBXS1VSTENvcHlTdHJpbmcoYmFzZVVSTC5nZXQoKSkpOworICAgIG1fY29u
c29sZU1lc3NhZ2UuYXNzZXJ0RXF1YWwoQ29uc29sZU1lc3NhZ2Uoa1dLTWVzc2FnZVNvdXJjZUNv
bnNvbGVBUEksIGtXS01lc3NhZ2VMZXZlbExvZywgbWVzc2FnZS5nZXQoKSwgMSwgc291cmNlSUQu
Z2V0KCkpKTsKK30KKworVEVTVF9GKFdlYktpdDJDb25zb2xlTWVzc2FnZVRlc3QsIEluZm9NZXNz
YWdlKQoreworICAgIFdLUmV0YWluUHRyPFdLU3RyaW5nUmVmPiBodG1sU3RyaW5nKEFkb3B0V0ss
IFdLU3RyaW5nQ3JlYXRlV2l0aFVURjhDU3RyaW5nKCI8aHRtbD48Ym9keSBvbmxvYWQ9J2NvbnNv
bGUuaW5mbyhcIkluZm8gQ29uc29sZSBNZXNzYWdlXCIpOyc+PC9ib2R5PjwvaHRtbD4iKSk7Cisg
ICAgV0tSZXRhaW5QdHI8V0tVUkxSZWY+IGJhc2VVUkwoQWRvcHRXSywgV0tVUkxDcmVhdGVXaXRo
VVRGOENTdHJpbmcoImh0dHA6Ly9mb28uY29tL2JhciIpKTsKKyAgICBsb2FkSFRNTEFuZFJ1blVu
dGlsQ29uc29sZU1lc3NhZ2VSZWNlaXZlZChodG1sU3RyaW5nLmdldCgpLCBiYXNlVVJMLmdldCgp
KTsKKyAgICBXS1JldGFpblB0cjxXS1N0cmluZ1JlZj4gbWVzc2FnZShBZG9wdFdLLCBXS1N0cmlu
Z0NyZWF0ZVdpdGhVVEY4Q1N0cmluZygiSW5mbyBDb25zb2xlIE1lc3NhZ2UiKSk7CisgICAgV0tS
ZXRhaW5QdHI8V0tTdHJpbmdSZWY+IHNvdXJjZUlEKEFkb3B0V0ssIFdLVVJMQ29weVN0cmluZyhi
YXNlVVJMLmdldCgpKSk7CisgICAgbV9jb25zb2xlTWVzc2FnZS5hc3NlcnRFcXVhbChDb25zb2xl
TWVzc2FnZShrV0tNZXNzYWdlU291cmNlQ29uc29sZUFQSSwga1dLTWVzc2FnZUxldmVsTG9nLCBt
ZXNzYWdlLmdldCgpLCAxLCBzb3VyY2VJRC5nZXQoKSkpOworfQorCitURVNUX0YoV2ViS2l0MkNv
bnNvbGVNZXNzYWdlVGVzdCwgRGVidWdNZXNzYWdlKQoreworICAgIFdLUmV0YWluUHRyPFdLU3Ry
aW5nUmVmPiBodG1sU3RyaW5nKEFkb3B0V0ssIFdLU3RyaW5nQ3JlYXRlV2l0aFVURjhDU3RyaW5n
KCI8aHRtbD48Ym9keSBvbmxvYWQ9J2NvbnNvbGUuZGVidWcoXCJEZWJ1ZyBDb25zb2xlIE1lc3Nh
Z2VcIik7Jz48L2JvZHk+PC9odG1sPiIpKTsKKyAgICBXS1JldGFpblB0cjxXS1VSTFJlZj4gYmFz
ZVVSTChBZG9wdFdLLCBXS1VSTENyZWF0ZVdpdGhVVEY4Q1N0cmluZygiaHR0cDovL2Zvby5jb20v
YmFyIikpOworICAgIGxvYWRIVE1MQW5kUnVuVW50aWxDb25zb2xlTWVzc2FnZVJlY2VpdmVkKGh0
bWxTdHJpbmcuZ2V0KCksIGJhc2VVUkwuZ2V0KCkpOworICAgIFdLUmV0YWluUHRyPFdLU3RyaW5n
UmVmPiBtZXNzYWdlKEFkb3B0V0ssIFdLU3RyaW5nQ3JlYXRlV2l0aFVURjhDU3RyaW5nKCJEZWJ1
ZyBDb25zb2xlIE1lc3NhZ2UiKSk7CisgICAgV0tSZXRhaW5QdHI8V0tTdHJpbmdSZWY+IHNvdXJj
ZUlEKEFkb3B0V0ssIFdLVVJMQ29weVN0cmluZyhiYXNlVVJMLmdldCgpKSk7CisgICAgbV9jb25z
b2xlTWVzc2FnZS5hc3NlcnRFcXVhbChDb25zb2xlTWVzc2FnZShrV0tNZXNzYWdlU291cmNlQ29u
c29sZUFQSSwga1dLTWVzc2FnZUxldmVsTG9nLCBtZXNzYWdlLmdldCgpLCAxLCBzb3VyY2VJRC5n
ZXQoKSkpOworfQorCitURVNUX0YoV2ViS2l0MkNvbnNvbGVNZXNzYWdlVGVzdCwgV2FybmluZ01l
c3NhZ2UpCit7CisgICAgV0tSZXRhaW5QdHI8V0tTdHJpbmdSZWY+IGh0bWxTdHJpbmcoQWRvcHRX
SywgV0tTdHJpbmdDcmVhdGVXaXRoVVRGOENTdHJpbmcoIjxodG1sPjxib2R5IG9ubG9hZD0nY29u
c29sZS53YXJuKFwiV2FybmluZyBDb25zb2xlIE1lc3NhZ2VcIik7Jz48L2JvZHk+PC9odG1sPiIp
KTsKKyAgICBXS1JldGFpblB0cjxXS1VSTFJlZj4gYmFzZVVSTChBZG9wdFdLLCBXS1VSTENyZWF0
ZVdpdGhVVEY4Q1N0cmluZygiaHR0cDovL2Zvby5jb20vYmFyIikpOworICAgIGxvYWRIVE1MQW5k
UnVuVW50aWxDb25zb2xlTWVzc2FnZVJlY2VpdmVkKGh0bWxTdHJpbmcuZ2V0KCksIGJhc2VVUkwu
Z2V0KCkpOworICAgIFdLUmV0YWluUHRyPFdLU3RyaW5nUmVmPiBtZXNzYWdlKEFkb3B0V0ssIFdL
U3RyaW5nQ3JlYXRlV2l0aFVURjhDU3RyaW5nKCJXYXJuaW5nIENvbnNvbGUgTWVzc2FnZSIpKTsK
KyAgICBXS1JldGFpblB0cjxXS1N0cmluZ1JlZj4gc291cmNlSUQoQWRvcHRXSywgV0tVUkxDb3B5
U3RyaW5nKGJhc2VVUkwuZ2V0KCkpKTsKKyAgICBtX2NvbnNvbGVNZXNzYWdlLmFzc2VydEVxdWFs
KENvbnNvbGVNZXNzYWdlKGtXS01lc3NhZ2VTb3VyY2VDb25zb2xlQVBJLCBrV0tNZXNzYWdlTGV2
ZWxXYXJuaW5nLCBtZXNzYWdlLmdldCgpLCAxLCBzb3VyY2VJRC5nZXQoKSkpOworfQorCitURVNU
X0YoV2ViS2l0MkNvbnNvbGVNZXNzYWdlVGVzdCwgRXJyb3JNZXNzYWdlKQoreworICAgIFdLUmV0
YWluUHRyPFdLU3RyaW5nUmVmPiBodG1sU3RyaW5nKEFkb3B0V0ssIFdLU3RyaW5nQ3JlYXRlV2l0
aFVURjhDU3RyaW5nKCI8aHRtbD48Ym9keSBvbmxvYWQ9J2NvbnNvbGUuZXJyb3IoXCJFcnJvciBD
b25zb2xlIE1lc3NhZ2VcIik7Jz48L2JvZHk+PC9odG1sPiIpKTsKKyAgICBXS1JldGFpblB0cjxX
S1VSTFJlZj4gYmFzZVVSTChBZG9wdFdLLCBXS1VSTENyZWF0ZVdpdGhVVEY4Q1N0cmluZygiaHR0
cDovL2Zvby5jb20vYmFyIikpOworICAgIGxvYWRIVE1MQW5kUnVuVW50aWxDb25zb2xlTWVzc2Fn
ZVJlY2VpdmVkKGh0bWxTdHJpbmcuZ2V0KCksIGJhc2VVUkwuZ2V0KCkpOworICAgIFdLUmV0YWlu
UHRyPFdLU3RyaW5nUmVmPiBtZXNzYWdlKEFkb3B0V0ssIFdLU3RyaW5nQ3JlYXRlV2l0aFVURjhD
U3RyaW5nKCJFcnJvciBDb25zb2xlIE1lc3NhZ2UiKSk7CisgICAgV0tSZXRhaW5QdHI8V0tTdHJp
bmdSZWY+IHNvdXJjZUlEKEFkb3B0V0ssIFdLVVJMQ29weVN0cmluZyhiYXNlVVJMLmdldCgpKSk7
CisgICAgbV9jb25zb2xlTWVzc2FnZS5hc3NlcnRFcXVhbChDb25zb2xlTWVzc2FnZShrV0tNZXNz
YWdlU291cmNlQ29uc29sZUFQSSwga1dLTWVzc2FnZUxldmVsRXJyb3IsIG1lc3NhZ2UuZ2V0KCks
IDEsIHNvdXJjZUlELmdldCgpKSk7Cit9CisKK1RFU1RfRihXZWJLaXQyQ29uc29sZU1lc3NhZ2VU
ZXN0LCBFeGNlcHRpb25NZXNzYWdlKQoreworICAgIFdLUmV0YWluUHRyPFdLU3RyaW5nUmVmPiBo
dG1sU3RyaW5nKEFkb3B0V0ssIFdLU3RyaW5nQ3JlYXRlV2l0aFVURjhDU3RyaW5nKCI8aHRtbD48
Ym9keSBvbmxvYWQ9J2ZvbygpOyc+PC9ib2R5PjwvaHRtbD4iKSk7CisgICAgV0tSZXRhaW5QdHI8
V0tVUkxSZWY+IGJhc2VVUkwoQWRvcHRXSywgV0tVUkxDcmVhdGVXaXRoVVRGOENTdHJpbmcoImh0
dHA6Ly9mb28uY29tL2JhciIpKTsKKyAgICBsb2FkSFRNTEFuZFJ1blVudGlsQ29uc29sZU1lc3Nh
Z2VSZWNlaXZlZChodG1sU3RyaW5nLmdldCgpLCBiYXNlVVJMLmdldCgpKTsKKyAgICBXS1JldGFp
blB0cjxXS1N0cmluZ1JlZj4gbWVzc2FnZShBZG9wdFdLLCBXS1N0cmluZ0NyZWF0ZVdpdGhVVEY4
Q1N0cmluZygiUmVmZXJlbmNlRXJyb3I6IENhbid0IGZpbmQgdmFyaWFibGU6IGZvbyIpKTsKKyAg
ICBXS1JldGFpblB0cjxXS1N0cmluZ1JlZj4gc291cmNlSUQoQWRvcHRXSywgV0tTdHJpbmdDcmVh
dGVXaXRoVVRGOENTdHJpbmcoInVuZGVmaW5lZCIpKTsKKyAgICBtX2NvbnNvbGVNZXNzYWdlLmFz
c2VydEVxdWFsKENvbnNvbGVNZXNzYWdlKGtXS01lc3NhZ2VTb3VyY2VKUywga1dLTWVzc2FnZUxl
dmVsRXJyb3IsIG1lc3NhZ2UuZ2V0KCksIDAsIHNvdXJjZUlELmdldCgpKSk7Cit9CisKK30gLy8g
bmFtZXNwYWNlIFRlc3RXZWJLaXRBUEkKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkv
d2luL1Rlc3RXZWJLaXRBUEkudmNwcm9qIGIvVG9vbHMvVGVzdFdlYktpdEFQSS93aW4vVGVzdFdl
YktpdEFQSS52Y3Byb2oKaW5kZXggMDAwZjE1ZS4uMDY0Yjg4MiAxMDA2NDQKLS0tIGEvVG9vbHMv
VGVzdFdlYktpdEFQSS93aW4vVGVzdFdlYktpdEFQSS52Y3Byb2oKKysrIGIvVG9vbHMvVGVzdFdl
YktpdEFQSS93aW4vVGVzdFdlYktpdEFQSS52Y3Byb2oKQEAgLTQzNSw2ICs0MzUsMTAgQEAKIAkJ
CQkJUmVsYXRpdmVQYXRoPSIuLlxUZXN0c1xXZWJLaXQyXENhbkhhbmRsZVJlcXVlc3QuY3BwIgog
CQkJCQk+CiAJCQkJPC9GaWxlPgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8Rmls
ZQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJlbGF0aXZlUGF0aD0i
Li5cVGVzdHNcV2ViS2l0MlxDb25zb2xlTWVzc2FnZS5jcHAiCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgPgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8
L0ZpbGU+CiAJCQkJPEZpbGUKIAkJCQkJUmVsYXRpdmVQYXRoPSIuLlxUZXN0c1xXZWJLaXQyXENv
b2tpZU1hbmFnZXIuY3BwIgogCQkJCQk+CmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVu
bmVyL1Rlc3RDb250cm9sbGVyLmNwcCBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRy
b2xsZXIuY3BwCmluZGV4IGUzMjRmNTcuLjExNjc2Y2EgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktp
dFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuY3BwCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5u
ZXIvVGVzdENvbnRyb2xsZXIuY3BwCkBAIC0yMTIsNiArMjEyLDcgQEAgV0tQYWdlUmVmIFRlc3RD
b250cm9sbGVyOjpjcmVhdGVPdGhlclBhZ2UoV0tQYWdlUmVmIG9sZFBhZ2UsIFdLVVJMUmVxdWVz
dFJlZiwgV0sKICAgICAgICAgY3JlYXRlT3RoZXJQYWdlLAogICAgICAgICAwLCAvLyBtb3VzZURp
ZE1vdmVPdmVyRWxlbWVudAogICAgICAgICAwLCAvLyBkZWNpZGVQb2xpY3lGb3JOb3RpZmljYXRp
b25QZXJtaXNzaW9uUmVxdWVzdAorICAgICAgICAwLCAvLyBhZGRNZXNzYWdlVG9Db25zb2xlCiAg
ICAgfTsKICAgICBXS1BhZ2VTZXRQYWdlVUlDbGllbnQobmV3UGFnZSwgJm90aGVyUGFnZVVJQ2xp
ZW50KTsKIApAQCAtMzcxLDYgKzM3Miw3IEBAIHZvaWQgVGVzdENvbnRyb2xsZXI6OmluaXRpYWxp
emUoaW50IGFyZ2MsIGNvbnN0IGNoYXIqIGFyZ3ZbXSkKICAgICAgICAgY3JlYXRlT3RoZXJQYWdl
LAogICAgICAgICAwLCAvLyBtb3VzZURpZE1vdmVPdmVyRWxlbWVudAogICAgICAgICAwLCAvLyBk
ZWNpZGVQb2xpY3lGb3JOb3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdAorICAgICAgICAwLCAv
LyBhZGRNZXNzYWdlVG9Db25zb2xlCiAgICAgfTsKICAgICBXS1BhZ2VTZXRQYWdlVUlDbGllbnQo
bV9tYWluV2ViVmlldy0+cGFnZSgpLCAmcGFnZVVJQ2xpZW50KTsKIAo=
</data>
<flag name="commit-queue"
          id="143711"
          type_id="3"
          status="-"
          setter="buildbot"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>173804</attachid>
            <date>2012-11-12 20:39:41 -0800</date>
            <delta_ts>2012-11-14 02:45:54 -0800</delta_ts>
            <desc>Rebased patch</desc>
            <filename>patch.diff</filename>
            <type>text/plain</type>
            <size>39690</size>
            <attacher name="Joone Hur">joone</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NNYWtlTGlzdHMudHh0IGIvU291cmNlL1dlYktp
dDIvQ01ha2VMaXN0cy50eHQKaW5kZXggNmU0NmY0OC4uNTUwZTAzYSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdDIvQ01ha2VMaXN0cy50eHQKKysrIGIvU291cmNlL1dlYktpdDIvQ01ha2VMaXN0
cy50eHQKQEAgLTEzOCw2ICsxMzgsNyBAQCBTRVQoV2ViS2l0Ml9TT1VSQ0VTCiAgICAgU2hhcmVk
L0FQSU9iamVjdC5jcHAKICAgICBTaGFyZWQvQ2hpbGRQcm9jZXNzLmNwcAogICAgIFNoYXJlZC9D
b25uZWN0aW9uU3RhY2suY3BwCisgICAgU2hhcmVkL0NvbnNvbGVNZXNzYWdlLmNwcAogICAgIFNo
YXJlZC9EaWN0aW9uYXJ5UG9wdXBJbmZvLmNwcAogICAgIFNoYXJlZC9FZGl0b3JTdGF0ZS5jcHAK
ICAgICBTaGFyZWQvRm9udEluZm8uY3BwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9DaGFu
Z2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggZmMzOTE1Ny4uZGZmOGEyYSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQy
L0NoYW5nZUxvZwpAQCAtMSwzICsxLDQwIEBACisyMDEyLTExLTEzICBDYXJsb3MgR2FyY2lhIENh
bXBvcyAgPGNnYXJjaWFAaWdhbGlhLmNvbT4KKworICAgICAgICBbV0syXSBJbXBsZW1lbnQgV2Vi
Q2hyb21lQ2xpZW50OjphZGRNZXNzYWdlVG9Db25zb2xlKCkKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTc5NDgyCisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBDTWFrZUxpc3RzLnR4dDogQWRkIG5ldyBmaWxl
cyB0byBjb21waWxhdGlvbi4KKyAgICAgICAgKiBHTlVtYWtlZmlsZS5hbTogRGl0dG8uCisgICAg
ICAgICogU2hhcmVkL0FQSS9jL1dLQ29uc29sZVR5cGVzLmg6IEFkZGVkLgorICAgICAgICAqIFNo
YXJlZC9BUEkvYy9XS1NoYXJlZEFQSUNhc3QuaDoKKyAgICAgICAgKFdlYktpdDo6dG9BUEkpOiBD
b252ZXJ0IFdlYkNvcmUgY29uc29sZSBtZXNzYWdlIHR5cGVzIHRvIFdlYktpdDIKKyAgICAgICAg
dHlwZXMuCisgICAgICAgICogU2hhcmVkL0NvbnNvbGVNZXNzYWdlLmNwcDogQWRkZWQuCisgICAg
ICAgIChXZWJLaXQpOgorICAgICAgICAoV2ViS2l0OjpDb25zb2xlTWVzc2FnZTo6ZW5jb2RlKToK
KyAgICAgICAgKFdlYktpdDo6Q29uc29sZU1lc3NhZ2U6OmRlY29kZSk6CisgICAgICAgICogU2hh
cmVkL0NvbnNvbGVNZXNzYWdlLmg6IEFkZGVkLgorICAgICAgICAqIFRhcmdldC5wcmk6IEFkZCBu
ZXcgZmlsZXMgdG8gY29tcGlsYXRpb24uCisgICAgICAgICogVUlQcm9jZXNzL0FQSS9DL1dLUGFn
ZS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwOgorICAgICAgICAoV2Vi
S2l0OjpXZWJQYWdlUHJveHk6OmFkZE1lc3NhZ2VUb0NvbnNvbGUpOiBNZXRob2QgdG8gaGFuZGxl
CisgICAgICAgIEFkZE1lc3NhZ2VUb0NvbnNvbGUgbWVzc2FnZSB0aGF0IGp1c3QgY2FsbHMKKyAg
ICAgICAgV2ViVUlDbGllbnQ6OmFkZE1lc3NhZ2VUb0NvbnNvbGUoKS4KKyAgICAgICAgKiBVSVBy
b2Nlc3MvV2ViUGFnZVByb3h5Lmg6CisgICAgICAgICogVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5t
ZXNzYWdlcy5pbjogQWRkIG5ldyBtZXNzYWdlCisgICAgICAgIEFkZE1lc3NhZ2VUb0NvbnNvbGUu
CisgICAgICAgICogVUlQcm9jZXNzL1dlYlVJQ2xpZW50LmNwcDoKKyAgICAgICAgKFdlYktpdDo6
V2ViVUlDbGllbnQ6OmFkZE1lc3NhZ2VUb0NvbnNvbGUpOiBDYWxsCisgICAgICAgIGFkZE1lc3Nh
Z2VUb0NvbnNvbGUgY2FsbGJhY2sgaWYgcHJlc2VudC4KKyAgICAgICAgKiBVSVByb2Nlc3MvV2Vi
VUlDbGllbnQuaDoKKyAgICAgICAgKiBXZWJLaXQyLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6
IEFkZCBuZXcgZmlsZXMgdG8gY29tcGlsYXRpb24uCisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJD
b3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJDaHJv
bWVDbGllbnQ6OmFkZE1lc3NhZ2VUb0NvbnNvbGUpOiBTZW5kCisgICAgICAgIEFkZE1lc3NhZ2VU
b0NvbnNvbGUgbWVzc2FnZSB0byB0aGUgVUkgcHJvY2Vzcy4KKyAgICAgICAgKiB3aW4vV2ViS2l0
Mi52Y3Byb2o6IEFkZCBuZXcgZmlsZXMgdG8gY29tcGlsYXRpb24uCisKIDIwMTItMTEtMTIgIEFu
ZGVycyBDYXJsc3NvbiAgPGFuZGVyc2NhQGFwcGxlLmNvbT4KIAogICAgICAgICBTZW5kIGFsb25n
IHRoZSBjdXJyZW50IHJlbW90ZSBsYXllciB0cmVlIHRyYW5zYWN0aW9uIHdpdGggdGhlIGNvbW1p
dCBtZXNzYWdlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9HTlVtYWtlZmlsZS5saXN0LmFt
IGIvU291cmNlL1dlYktpdDIvR05VbWFrZWZpbGUubGlzdC5hbQppbmRleCA5ZDQ3Yjc2Li4yZWVm
ZDBlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9HTlVtYWtlZmlsZS5saXN0LmFtCisrKyBi
L1NvdXJjZS9XZWJLaXQyL0dOVW1ha2VmaWxlLmxpc3QuYW0KQEAgLTYsNiArNiw3IEBAIHdlYmtp
dDJfaF9hcGkgKz0gXAogCSQoV2ViS2l0MikvU2hhcmVkL0FQSS9jL1dLQmFzZS5oIFwKIAkkKFdl
YktpdDIpL1NoYXJlZC9BUEkvYy9XS0NlcnRpZmljYXRlSW5mby5oIFwKIAkkKFdlYktpdDIpL1No
YXJlZC9BUEkvYy9XS0Nvbm5lY3Rpb25SZWYuaCBcCisJJChXZWJLaXQyKS9TaGFyZWQvQVBJL2Mv
V0tDb25zb2xlVHlwZXMuaCBcCiAJJChXZWJLaXQyKS9TaGFyZWQvQVBJL2MvV0tDb250ZXh0TWVu
dUl0ZW0uaCBcCiAJJChXZWJLaXQyKS9TaGFyZWQvQVBJL2MvV0tDb250ZXh0TWVudUl0ZW1UeXBl
cy5oIFwKIAkkKFdlYktpdDIpL1NoYXJlZC9BUEkvYy9XS0RhdGEuaCBcCkBAIC0zMTQsNiArMzE1
LDcgQEAgd2Via2l0Ml9zb3VyY2VzICs9IFwKIAlTb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQVBJL2Mv
V0tDZXJ0aWZpY2F0ZUluZm8uaCBcCiAJU291cmNlL1dlYktpdDIvU2hhcmVkL0FQSS9jL1dLQ29u
bmVjdGlvblJlZi5jcHAgXAogCVNvdXJjZS9XZWJLaXQyL1NoYXJlZC9BUEkvYy9XS0Nvbm5lY3Rp
b25SZWYuaCBcCisJU291cmNlL1dlYktpdDIvU2hhcmVkL0FQSS9jL1dLQ29uc29sZVR5cGVzLmgg
XAogCVNvdXJjZS9XZWJLaXQyL1NoYXJlZC9BUEkvYy9XS0NvbnRleHRNZW51SXRlbS5jcHAgXAog
CVNvdXJjZS9XZWJLaXQyL1NoYXJlZC9BUEkvYy9XS0NvbnRleHRNZW51SXRlbS5oIFwKIAlTb3Vy
Y2UvV2ViS2l0Mi9TaGFyZWQvQVBJL2MvV0tDb250ZXh0TWVudUl0ZW1UeXBlcy5oIFwKQEAgLTM3
MCw2ICszNzIsOCBAQCB3ZWJraXQyX3NvdXJjZXMgKz0gXAogCVNvdXJjZS9XZWJLaXQyL1NoYXJl
ZC9DaGlsZFByb2Nlc3MuY3BwIFwKIAlTb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQ2hpbGRQcm9jZXNz
LmggXAogCVNvdXJjZS9XZWJLaXQyL1NoYXJlZC9Db21tYW5kTGluZS5oIFwKKwlTb3VyY2UvV2Vi
S2l0Mi9TaGFyZWQvQ29uc29sZU1lc3NhZ2UuY3BwIFwKKwlTb3VyY2UvV2ViS2l0Mi9TaGFyZWQv
Q29uc29sZU1lc3NhZ2UuaCBcCiAJU291cmNlL1dlYktpdDIvU2hhcmVkL0Nvbm5lY3Rpb25TdGFj
ay5jcHAgXAogCVNvdXJjZS9XZWJLaXQyL1NoYXJlZC9Db25uZWN0aW9uU3RhY2suaCBcCiAJU291
cmNlL1dlYktpdDIvU2hhcmVkL0NvcmVJUENTdXBwb3J0L1dlYkNvbm5lY3Rpb25NZXNzYWdlS2lu
ZHMuaCBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQVBJL2MvV0tDb25zb2xl
VHlwZXMuaCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9BUEkvYy9XS0NvbnNvbGVUeXBlcy5oCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmY1ZmY4MjQKLS0tIC9kZXYvbnVsbAor
KysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQVBJL2MvV0tDb25zb2xlVHlwZXMuaApAQCAtMCww
ICsxLDU2IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEyIElnYWxpYSBTLkwuCisgKgorICog
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlv
bnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNl
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRp
b24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24u
CisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMg
Q09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FS
UkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBX
QVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS
CisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMu
IE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJF
Q1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwg
REFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisg
KiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJP
RklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9O
IEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNU
IExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQor
ICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVW
RU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICov
CisKKyNpZm5kZWYgV0tDb25zb2xlVHlwZXNfaAorI2RlZmluZSBXS0NvbnNvbGVUeXBlc19oCisK
KyNpZmRlZiBfX2NwbHVzcGx1cworZXh0ZXJuICJDIiB7CisjZW5kaWYKKworZW51bSB7CisgICAg
a1dLTWVzc2FnZVNvdXJjZUhUTUwsCisgICAga1dLTWVzc2FnZVNvdXJjZVhNTCwKKyAgICBrV0tN
ZXNzYWdlU291cmNlSlMsCisgICAga1dLTWVzc2FnZVNvdXJjZU5ldHdvcmssCisgICAga1dLTWVz
c2FnZVNvdXJjZUNvbnNvbGVBUEksCisgICAga1dLTWVzc2FnZVNvdXJjZU90aGVyCit9OwordHlw
ZWRlZiB1aW50MzJfdCBXS01lc3NhZ2VTb3VyY2VUeXBlOworCitlbnVtIHsKKyAgICBrV0tNZXNz
YWdlTGV2ZWxUaXAsCisgICAga1dLTWVzc2FnZUxldmVsTG9nLAorICAgIGtXS01lc3NhZ2VMZXZl
bFdhcm5pbmcsCisgICAga1dLTWVzc2FnZUxldmVsRXJyb3IsCisgICAga1dLTWVzc2FnZUxldmVs
RGVidWcKK307Cit0eXBlZGVmIHVpbnQzMl90IFdLTWVzc2FnZUxldmVsVHlwZTsKKworI2lmZGVm
IF9fY3BsdXNwbHVzCit9CisjZW5kaWYKKworI2VuZGlmIC8qIFdLQ29uc29sZVR5cGVzX2ggKi8K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9BUEkvYy9XS1NoYXJlZEFQSUNhc3Qu
aCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9BUEkvYy9XS1NoYXJlZEFQSUNhc3QuaAppbmRleCAz
ODBjZDI1Li5jZDIyMDgxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQVBJL2Mv
V0tTaGFyZWRBUElDYXN0LmgKKysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL0FQSS9jL1dLU2hh
cmVkQVBJQ2FzdC5oCkBAIC0yOSw2ICsyOSw3IEBACiAjaW5jbHVkZSAiSW1hZ2VPcHRpb25zLmgi
CiAjaW5jbHVkZSAiU2FtZURvY3VtZW50TmF2aWdhdGlvblR5cGUuaCIKICNpbmNsdWRlICJXS0Jh
c2UuaCIKKyNpbmNsdWRlICJXS0NvbnNvbGVUeXBlcy5oIgogI2luY2x1ZGUgIldLQ29udGV4dE1l
bnVJdGVtVHlwZXMuaCIKICNpbmNsdWRlICJXS0V2ZW50LmgiCiAjaW5jbHVkZSAiV0tGaW5kT3B0
aW9ucy5oIgpAQCAtNDQsNiArNDUsNyBAQAogI2luY2x1ZGUgIldlYlVSTC5oIgogI2luY2x1ZGUg
IldlYlVSTFJlcXVlc3QuaCIKICNpbmNsdWRlICJXZWJVUkxSZXNwb25zZS5oIgorI2luY2x1ZGUg
PFdlYkNvcmUvQ29uc29sZVR5cGVzLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9Db250ZXh0TWVudUl0
ZW0uaD4KICNpbmNsdWRlIDxXZWJDb3JlL0Zsb2F0UmVjdC5oPgogI2luY2x1ZGUgPFdlYkNvcmUv
RnJhbWVMb2FkZXJUeXBlcy5oPgpAQCAtODUwLDYgKzg1Miw0NiBAQCBpbmxpbmUgV2ViQ29yZTo6
VXNlckNvbnRlbnRJbmplY3RlZEZyYW1lcyB0b1VzZXJDb250ZW50SW5qZWN0ZWRGcmFtZXMoV0tV
c2VyQ29udAogICAgIHJldHVybiBXZWJDb3JlOjpJbmplY3RJbkFsbEZyYW1lczsKIH0KIAoraW5s
aW5lIFdLTWVzc2FnZVNvdXJjZVR5cGUgdG9BUEkoV2ViQ29yZTo6TWVzc2FnZVNvdXJjZSBzb3Vy
Y2UpCit7CisgICAgc3dpdGNoIChzb3VyY2UpIHsKKyAgICBjYXNlIFdlYkNvcmU6OkhUTUxNZXNz
YWdlU291cmNlOgorICAgICAgICByZXR1cm4ga1dLTWVzc2FnZVNvdXJjZUhUTUw7CisgICAgY2Fz
ZSBXZWJDb3JlOjpYTUxNZXNzYWdlU291cmNlOgorICAgICAgICByZXR1cm4ga1dLTWVzc2FnZVNv
dXJjZVhNTDsKKyAgICBjYXNlIFdlYkNvcmU6OkpTTWVzc2FnZVNvdXJjZToKKyAgICAgICAgcmV0
dXJuIGtXS01lc3NhZ2VTb3VyY2VKUzsKKyAgICBjYXNlIFdlYkNvcmU6Ok5ldHdvcmtNZXNzYWdl
U291cmNlOgorICAgICAgICByZXR1cm4ga1dLTWVzc2FnZVNvdXJjZU5ldHdvcms7CisgICAgY2Fz
ZSBXZWJDb3JlOjpDb25zb2xlQVBJTWVzc2FnZVNvdXJjZToKKyAgICAgICAgcmV0dXJuIGtXS01l
c3NhZ2VTb3VyY2VDb25zb2xlQVBJOworICAgIGNhc2UgV2ViQ29yZTo6T3RoZXJNZXNzYWdlU291
cmNlOgorICAgICAgICByZXR1cm4ga1dLTWVzc2FnZVNvdXJjZU90aGVyOworICAgIGRlZmF1bHQ6
CisgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgICAgICByZXR1cm4ga1dLTWVzc2Fn
ZVNvdXJjZU90aGVyOworICAgIH0KK30KKworaW5saW5lIFdLTWVzc2FnZUxldmVsVHlwZSB0b0FQ
SShXZWJDb3JlOjpNZXNzYWdlTGV2ZWwgbGV2ZWwpCit7CisgICAgc3dpdGNoIChsZXZlbCkgewor
ICAgIGNhc2UgV2ViQ29yZTo6VGlwTWVzc2FnZUxldmVsOgorICAgICAgICByZXR1cm4ga1dLTWVz
c2FnZUxldmVsVGlwOworICAgIGNhc2UgV2ViQ29yZTo6TG9nTWVzc2FnZUxldmVsOgorICAgICAg
ICByZXR1cm4ga1dLTWVzc2FnZUxldmVsTG9nOworICAgIGNhc2UgV2ViQ29yZTo6V2FybmluZ01l
c3NhZ2VMZXZlbDoKKyAgICAgICAgcmV0dXJuIGtXS01lc3NhZ2VMZXZlbFdhcm5pbmc7CisgICAg
Y2FzZSBXZWJDb3JlOjpFcnJvck1lc3NhZ2VMZXZlbDoKKyAgICAgICAgcmV0dXJuIGtXS01lc3Nh
Z2VMZXZlbEVycm9yOworICAgIGNhc2UgV2ViQ29yZTo6RGVidWdNZXNzYWdlTGV2ZWw6CisgICAg
ICAgIHJldHVybiBrV0tNZXNzYWdlTGV2ZWxEZWJ1ZzsKKyAgICBkZWZhdWx0OgorICAgICAgICBB
U1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICAgICAgcmV0dXJuIGtXS01lc3NhZ2VMZXZlbExvZzsK
KyAgICB9Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYktpdAogCiAjZW5kaWYgLy8gV0tTaGFyZWRB
UElDYXN0X2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9Db25zb2xlTWVzc2Fn
ZS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQ29uc29sZU1lc3NhZ2UuY3BwCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjhlNzBkMWUKLS0tIC9kZXYvbnVsbAorKysgYi9T
b3VyY2UvV2ViS2l0Mi9TaGFyZWQvQ29uc29sZU1lc3NhZ2UuY3BwCkBAIC0wLDAgKzEsNTQgQEAK
Ky8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTIgSWdhbGlhIFMuTC4KKyAqCisgKiBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
KyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3Vy
Y2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAy
LiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Ig
b3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBU
SElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRP
UlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMg
T0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBP
U0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENP
TlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURF
TlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRV
VEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBC
VVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9S
WSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZ
LCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5H
IElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJ
U0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1
ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIkNvbnNvbGVNZXNzYWdlLmgiCisKKyNpbmNsdWRlICJX
ZWJDb3JlQXJndW1lbnRDb2RlcnMuaCIKKworbmFtZXNwYWNlIFdlYktpdCB7CisKK3ZvaWQgQ29u
c29sZU1lc3NhZ2U6OmVuY29kZShDb3JlSVBDOjpBcmd1bWVudEVuY29kZXImIGVuY29kZXIpIGNv
bnN0Cit7CisgICAgZW5jb2Rlci5lbmNvZGVFbnVtKHNvdXJjZSk7CisgICAgZW5jb2Rlci5lbmNv
ZGVFbnVtKGxldmVsKTsKKyAgICBlbmNvZGVyLmVuY29kZShtZXNzYWdlKTsKKyAgICBlbmNvZGVy
LmVuY29kZShsaW5lTnVtYmVyKTsKKyAgICBlbmNvZGVyLmVuY29kZShzb3VyY2VJRCk7Cit9CisK
K2Jvb2wgQ29uc29sZU1lc3NhZ2U6OmRlY29kZShDb3JlSVBDOjpBcmd1bWVudERlY29kZXIqIGRl
Y29kZXIsIENvbnNvbGVNZXNzYWdlJiBjb25zb2xlTWVzc2FnZSkKK3sKKyAgICBpZiAoIWRlY29k
ZXItPmRlY29kZUVudW0oY29uc29sZU1lc3NhZ2Uuc291cmNlKQorICAgICAgICB8fCAhZGVjb2Rl
ci0+ZGVjb2RlRW51bShjb25zb2xlTWVzc2FnZS5sZXZlbCkKKyAgICAgICAgfHwgIWRlY29kZXIt
PmRlY29kZShjb25zb2xlTWVzc2FnZS5tZXNzYWdlKQorICAgICAgICB8fCAhZGVjb2Rlci0+ZGVj
b2RlKGNvbnNvbGVNZXNzYWdlLmxpbmVOdW1iZXIpCisgICAgICAgIHx8ICFkZWNvZGVyLT5kZWNv
ZGUoY29uc29sZU1lc3NhZ2Uuc291cmNlSUQpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAg
ICByZXR1cm4gdHJ1ZTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0Mi9TaGFyZWQvQ29uc29sZU1lc3NhZ2UuaCBiL1NvdXJjZS9XZWJLaXQyL1No
YXJlZC9Db25zb2xlTWVzc2FnZS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAu
LmQyMGQyY2UKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQ29uc29s
ZU1lc3NhZ2UuaApAQCAtMCwwICsxLDUyIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEyIEln
YWxpYSBTLkwuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6Cisg
KiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBm
b3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUK
KyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRo
IHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBB
UFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
CisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVO
VCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1Ig
QU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IK
KyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
IFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9G
IFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9X
RVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisg
KiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5kZWYgQ29uc29sZU1lc3NhZ2VfaAorI2RlZmluZSBD
b25zb2xlTWVzc2FnZV9oCisKKyNpbmNsdWRlIDxXZWJDb3JlL0NvbnNvbGVUeXBlcy5oPgorI2lu
Y2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgorCituYW1lc3BhY2UgQ29yZUlQQyB7CitjbGFz
cyBBcmd1bWVudERlY29kZXI7CitjbGFzcyBBcmd1bWVudEVuY29kZXI7Cit9CisKK25hbWVzcGFj
ZSBXZWJLaXQgeworCitzdHJ1Y3QgQ29uc29sZU1lc3NhZ2UgeworICAgIFdlYkNvcmU6Ok1lc3Nh
Z2VTb3VyY2Ugc291cmNlOworICAgIFdlYkNvcmU6Ok1lc3NhZ2VMZXZlbCBsZXZlbDsKKyAgICBT
dHJpbmcgbWVzc2FnZTsKKyAgICB1aW50MzJfdCBsaW5lTnVtYmVyOworICAgIFN0cmluZyBzb3Vy
Y2VJRDsKKworICAgIHZvaWQgZW5jb2RlKENvcmVJUEM6OkFyZ3VtZW50RW5jb2RlciYpIGNvbnN0
OworICAgIHN0YXRpYyBib29sIGRlY29kZShDb3JlSVBDOjpBcmd1bWVudERlY29kZXIqLCBDb25z
b2xlTWVzc2FnZSYpOworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CisKKyNlbmRpZiAvLyBD
b25zb2xlTWVzc2FnZV9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9UYXJnZXQucHJpIGIv
U291cmNlL1dlYktpdDIvVGFyZ2V0LnByaQppbmRleCBkYWM5YjlhLi4zOThmMjk5OSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdDIvVGFyZ2V0LnByaQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9UYXJn
ZXQucHJpCkBAIC00NSw2ICs0NSw3IEBAIEhFQURFUlMgKz0gXAogICAgIFNoYXJlZC9BUEkvYy9X
S0Jhc2UuaCBcCiAgICAgU2hhcmVkL0FQSS9jL1dLQ2VydGlmaWNhdGVJbmZvLmggXAogICAgIFNo
YXJlZC9BUEkvYy9XS0Nvbm5lY3Rpb25SZWYuaCBcCisgICAgU2hhcmVkL0FQSS9jL1dLQ29uc29s
ZVR5cGVzLmggXAogICAgIFNoYXJlZC9BUEkvYy9XS0NvbnRleHRNZW51SXRlbS5oIFwKICAgICBT
aGFyZWQvQVBJL2MvV0tDb250ZXh0TWVudUl0ZW1UeXBlcy5oIFwKICAgICBTaGFyZWQvQVBJL2Mv
V0tEaWN0aW9uYXJ5LmggXApAQCAtNzQsNiArNzUsNyBAQCBIRUFERVJTICs9IFwKICAgICBTaGFy
ZWQvU2hhcmVhYmxlU3VyZmFjZS5oIFwKICAgICBTaGFyZWQvQ2FjaGVNb2RlbC5oIFwKICAgICBT
aGFyZWQvQ2hpbGRQcm9jZXNzLmggXAorICAgIFNoYXJlZC9Db25zb2xlTWVzc2FnZS5oIFwKICAg
ICBTaGFyZWQvQ29ubmVjdGlvblN0YWNrLmggXAogICAgIFNoYXJlZC9EaWN0aW9uYXJ5UG9wdXBJ
bmZvLmggXAogICAgIFNoYXJlZC9FZGl0b3JTdGF0ZS5oIFwKQEAgLTQ0OSw2ICs0NTEsNyBAQCBT
T1VSQ0VTICs9IFwKICAgICBTaGFyZWQvUGx1Z2lucy9QbHVnaW5Nb2R1bGVJbmZvLmNwcCBcCiAg
ICAgU2hhcmVkL1BsdWdpbnMvUGx1Z2luUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5jcHAgXAog
ICAgIFNoYXJlZC9DaGlsZFByb2Nlc3MuY3BwIFwKKyAgICBTaGFyZWQvQ29uc29sZU1lc3NhZ2Uu
Y3BwIFwKICAgICBTaGFyZWQvQ29ubmVjdGlvblN0YWNrLmNwcCBcCiAgICAgU2hhcmVkL0RpY3Rp
b25hcnlQb3B1cEluZm8uY3BwIFwKICAgICBTaGFyZWQvRWRpdG9yU3RhdGUuY3BwIFwKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS1BhZ2UuaCBiL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS1BhZ2UuaAppbmRleCA0YTI1YmI2Li5mYjdhODNlIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tQYWdlLmgKKysrIGIv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLUGFnZS5oCkBAIC0yNyw2ICsyNyw3IEBA
CiAjZGVmaW5lIFdLUGFnZV9oCiAKICNpbmNsdWRlIDxXZWJLaXQyL1dLQmFzZS5oPgorI2luY2x1
ZGUgPFdlYktpdDIvV0tDb25zb2xlVHlwZXMuaD4KICNpbmNsdWRlIDxXZWJLaXQyL1dLRXJyb3Iu
aD4KICNpbmNsdWRlIDxXZWJLaXQyL1dLRXZlbnQuaD4KICNpbmNsdWRlIDxXZWJLaXQyL1dLRmlu
ZE9wdGlvbnMuaD4KQEAgLTIzMSw2ICsyMzIsNyBAQCB0eXBlZGVmIHZvaWQgKCpXS1BhZ2VEZWNp
ZGVQb2xpY3lGb3JOb3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdENhbGxiYWNrKShXS1BhZwog
dHlwZWRlZiB2b2lkICgqV0tQYWdlVW5hdmFpbGFibGVQbHVnaW5CdXR0b25DbGlja2VkQ2FsbGJh
Y2spKFdLUGFnZVJlZiBwYWdlLCBXS1BsdWdpblVuYXZhaWxhYmlsaXR5UmVhc29uIHBsdWdpblVu
YXZhaWxhYmlsaXR5UmVhc29uLCBXS1N0cmluZ1JlZiBtaW1lVHlwZSwgV0tTdHJpbmdSZWYgdXJs
LCBXS1N0cmluZ1JlZiBwbHVnaW5zUGFnZVVSTCwgY29uc3Qgdm9pZCogY2xpZW50SW5mbyk7CiB0
eXBlZGVmIHZvaWQgKCpXS1BhZ2VTaG93Q29sb3JQaWNrZXJDYWxsYmFjaykoV0tQYWdlUmVmIHBh
Z2UsIFdLU3RyaW5nUmVmIGluaXRpYWxDb2xvciwgV0tDb2xvclBpY2tlclJlc3VsdExpc3RlbmVy
UmVmIGxpc3RlbmVyLCBjb25zdCB2b2lkKiBjbGllbnRJbmZvKTsKIHR5cGVkZWYgdm9pZCAoKldL
UGFnZUhpZGVDb2xvclBpY2tlckNhbGxiYWNrKShXS1BhZ2VSZWYgcGFnZSwgY29uc3Qgdm9pZCog
Y2xpZW50SW5mbyk7Cit0eXBlZGVmIHZvaWQgKCpXS1BhZ2VBZGRNZXNzYWdlVG9Db25zb2xlKShX
S1BhZ2VSZWYgcGFnZSwgV0tNZXNzYWdlU291cmNlVHlwZSBzb3VyY2UsIFdLTWVzc2FnZUxldmVs
VHlwZSBsZXZlbCwgV0tTdHJpbmdSZWYgbWVzc2FnZSwgdW5zaWduZWQgbGluZU51bWJlciwgV0tT
dHJpbmdSZWYgc291cmNlSUQsIGNvbnN0IHZvaWQqIGNsaWVudEluZm8pOwogCiAvLyBEZXByZWNh
dGVkICAgIAogdHlwZWRlZiBXS1BhZ2VSZWYgKCpXS1BhZ2VDcmVhdGVOZXdQYWdlQ2FsbGJhY2tf
ZGVwcmVjYXRlZEZvclVzZVdpdGhWMCkoV0tQYWdlUmVmIHBhZ2UsIFdLRGljdGlvbmFyeVJlZiBm
ZWF0dXJlcywgV0tFdmVudE1vZGlmaWVycyBtb2RpZmllcnMsIFdLRXZlbnRNb3VzZUJ1dHRvbiBt
b3VzZUJ1dHRvbiwgY29uc3Qgdm9pZCAqY2xpZW50SW5mbyk7CkBAIC0yOTEsNiArMjkzLDcgQEAg
c3RydWN0IFdLUGFnZVVJQ2xpZW50IHsKICAgICAvLyBWZXJzaW9uIDIKICAgICBXS1BhZ2VTaG93
Q29sb3JQaWNrZXJDYWxsYmFjayAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IHNob3dDb2xvclBpY2tlcjsKICAgICBXS1BhZ2VIaWRlQ29sb3JQaWNrZXJDYWxsYmFjayAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhpZGVDb2xvclBpY2tlcjsKKyAgICBX
S1BhZ2VBZGRNZXNzYWdlVG9Db25zb2xlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIGFkZE1lc3NhZ2VUb0NvbnNvbGU7CiB9OwogdHlwZWRlZiBzdHJ1Y3QgV0tQYWdl
VUlDbGllbnQgV0tQYWdlVUlDbGllbnQ7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBh
Z2VQcm94eS5jcHAKaW5kZXggMDcwNDA1NS4uMmE4MDg5YSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKQEAgLTI5LDYgKzI5LDcgQEAKIAogI2luY2x1ZGUgIkF1
dGhlbnRpY2F0aW9uQ2hhbGxlbmdlUHJveHkuaCIKICNpbmNsdWRlICJBdXRoZW50aWNhdGlvbkRl
Y2lzaW9uTGlzdGVuZXIuaCIKKyNpbmNsdWRlICJDb25zb2xlTWVzc2FnZS5oIgogI2luY2x1ZGUg
IkRhdGFSZWZlcmVuY2UuaCIKICNpbmNsdWRlICJEb3dubG9hZFByb3h5LmgiCiAjaW5jbHVkZSAi
RHJhd2luZ0FyZWFQcm94eS5oIgpAQCAtMjc3OSw2ICsyNzgwLDExIEBAIHZvaWQgV2ViUGFnZVBy
b3h5OjpzZXRNZWRpYVZvbHVtZShmbG9hdCB2b2x1bWUpCiAgICAgbV9wcm9jZXNzLT5zZW5kKE1l
c3NhZ2VzOjpXZWJQYWdlOjpTZXRNZWRpYVZvbHVtZSh2b2x1bWUpLCBtX3BhZ2VJRCk7ICAgIAog
fQogCit2b2lkIFdlYlBhZ2VQcm94eTo6YWRkTWVzc2FnZVRvQ29uc29sZShjb25zdCBDb25zb2xl
TWVzc2FnZSYgY29uc29sZU1lc3NhZ2UpCit7CisgICAgbV91aUNsaWVudC5hZGRNZXNzYWdlVG9D
b25zb2xlKHRoaXMsIGNvbnNvbGVNZXNzYWdlKTsKK30KKwogI2lmIFBMQVRGT1JNKFFUKSB8fCBQ
TEFURk9STShFRkwpIHx8IFBMQVRGT1JNKEdUSykKIHZvaWQgV2ViUGFnZVByb3h5OjpoYW5kbGVE
b3dubG9hZFJlcXVlc3QoRG93bmxvYWRQcm94eSogZG93bmxvYWQpCiB7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmggYi9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKaW5kZXggMzlkNzE2Yy4uNTA5ZGNiZSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCisrKyBiL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaApAQCAtMTUyLDYgKzE1Miw3IEBAIGNsYXNz
IFdlYlByb2Nlc3NQcm94eTsKIGNsYXNzIFdlYlVSTFJlcXVlc3Q7CiBjbGFzcyBXZWJXaGVlbEV2
ZW50Owogc3RydWN0IEF0dHJpYnV0ZWRTdHJpbmc7CitzdHJ1Y3QgQ29uc29sZU1lc3NhZ2U7CiBz
dHJ1Y3QgQ29sb3JTcGFjZURhdGE7CiBzdHJ1Y3QgRGljdGlvbmFyeVBvcHVwSW5mbzsKIHN0cnVj
dCBFZGl0b3JTdGF0ZTsKQEAgLTg1OSw2ICs4NjAsNyBAQCBwcml2YXRlOgogICAgIHZvaWQgZGlk
RmFpbFRvSW5pdGlhbGl6ZVBsdWdpbihjb25zdCBTdHJpbmcmIG1pbWVUeXBlKTsKICAgICB2b2lk
IGRpZEJsb2NrSW5zZWN1cmVQbHVnaW5WZXJzaW9uKGNvbnN0IFN0cmluZyYgbWltZVR5cGUsIGNv
bnN0IFN0cmluZyYgdXJsU3RyaW5nKTsKICAgICB2b2lkIHNldENhblNob3J0Q2lyY3VpdEhvcml6
b250YWxXaGVlbEV2ZW50cyhib29sIGNhblNob3J0Q2lyY3VpdEhvcml6b250YWxXaGVlbEV2ZW50
cykgeyBtX2NhblNob3J0Q2lyY3VpdEhvcml6b250YWxXaGVlbEV2ZW50cyA9IGNhblNob3J0Q2ly
Y3VpdEhvcml6b250YWxXaGVlbEV2ZW50czsgfQorICAgIHZvaWQgYWRkTWVzc2FnZVRvQ29uc29s
ZShjb25zdCBDb25zb2xlTWVzc2FnZSYpOwogCiAgICAgdm9pZCByZWF0dGFjaFRvV2ViUHJvY2Vz
cygpOwogICAgIHZvaWQgcmVhdHRhY2hUb1dlYlByb2Nlc3NXaXRoSXRlbShXZWJCYWNrRm9yd2Fy
ZExpc3RJdGVtKik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFn
ZVByb3h5Lm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94
eS5tZXNzYWdlcy5pbgppbmRleCBiNDNjOWM1Li4wMTI3ZjVmIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5Lm1lc3NhZ2VzLmluCisrKyBiL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkubWVzc2FnZXMuaW4KQEAgLTY4LDYgKzY4LDcg
QEAgbWVzc2FnZXMgLT4gV2ViUGFnZVByb3h5IHsKICAgICBEaWRGYWlsVG9Jbml0aWFsaXplUGx1
Z2luKFdURjo6U3RyaW5nIG1pbWVUeXBlKQogICAgIERpZEJsb2NrSW5zZWN1cmVQbHVnaW5WZXJz
aW9uKFdURjo6U3RyaW5nIG1pbWVUeXBlLCBXVEY6OlN0cmluZyB1cmxTdHJpbmcpCiAgICAgU2V0
Q2FuU2hvcnRDaXJjdWl0SG9yaXpvbnRhbFdoZWVsRXZlbnRzKGJvb2wgY2FuU2hvcnRDaXJjdWl0
SG9yaXpvbnRhbFdoZWVsRXZlbnRzKQorICAgIEFkZE1lc3NhZ2VUb0NvbnNvbGUoV2ViS2l0OjpD
b25zb2xlTWVzc2FnZSBjb25zb2xlTWVzc2FnZSkKIAogI2lmIFBMQVRGT1JNKEVGTCkKICAgICBI
YW5kbGVJbnB1dE1ldGhvZEtleWRvd24oKSAtPiAoYm9vbCBoYW5kbGVkKQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlVJQ2xpZW50LmNwcCBiL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9XZWJVSUNsaWVudC5jcHAKaW5kZXggZjg4YzAwYS4uY2JiZmMxMyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlVJQ2xpZW50LmNwcAorKysgYi9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViVUlDbGllbnQuY3BwCkBAIC00MzgsNCArNDM4LDEyIEBA
IGJvb2wgV2ViVUlDbGllbnQ6OmhpZGVDb2xvclBpY2tlcihXZWJQYWdlUHJveHkqIHBhZ2UpCiB9
CiAjZW5kaWYKIAordm9pZCBXZWJVSUNsaWVudDo6YWRkTWVzc2FnZVRvQ29uc29sZShXZWJQYWdl
UHJveHkqIHBhZ2UsIGNvbnN0IENvbnNvbGVNZXNzYWdlJiBjb25zb2xlTWVzc2FnZSkKK3sKKyAg
ICBpZiAoIW1fY2xpZW50LmFkZE1lc3NhZ2VUb0NvbnNvbGUpCisgICAgICAgIHJldHVybjsKKwor
ICAgIG1fY2xpZW50LmFkZE1lc3NhZ2VUb0NvbnNvbGUodG9BUEkocGFnZSksIHRvQVBJKGNvbnNv
bGVNZXNzYWdlLnNvdXJjZSksIHRvQVBJKGNvbnNvbGVNZXNzYWdlLmxldmVsKSwgdG9BUEkoY29u
c29sZU1lc3NhZ2UubWVzc2FnZS5pbXBsKCkpLCBjb25zb2xlTWVzc2FnZS5saW5lTnVtYmVyLCB0
b0FQSShjb25zb2xlTWVzc2FnZS5zb3VyY2VJRC5pbXBsKCkpLCBtX2NsaWVudC5jbGllbnRJbmZv
KTsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvV2ViVUlDbGllbnQuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJV
SUNsaWVudC5oCmluZGV4IDliNTJiZmQuLmY1OTllOTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9XZWJVSUNsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9XZWJVSUNsaWVudC5oCkBAIC0yNyw2ICsyNyw3IEBACiAjZGVmaW5lIFdlYlVJQ2xpZW50X2gK
IAogI2luY2x1ZGUgIkFQSUNsaWVudC5oIgorI2luY2x1ZGUgIkNvbnNvbGVNZXNzYWdlLmgiCiAj
aW5jbHVkZSAiV0tQYWdlLmgiCiAjaW5jbHVkZSAiV2ViRXZlbnQuaCIKICNpbmNsdWRlICJXZWJI
aXRUZXN0UmVzdWx0LmgiCkBAIC0xMTYsNiArMTE3LDcgQEAgcHVibGljOgogICAgIHZvaWQgc2F2
ZURhdGFUb0ZpbGVJbkRvd25sb2Fkc0ZvbGRlcihXZWJQYWdlUHJveHkqLCBjb25zdCBTdHJpbmcm
IHN1Z2dlc3RlZEZpbGVuYW1lLCBjb25zdCBTdHJpbmcmIG1pbWVUeXBlLCBjb25zdCBTdHJpbmcm
IG9yaWdpbmF0aW5nVVJMU3RyaW5nLCBXZWJEYXRhKik7CiAKICAgICBib29sIHNob3VsZEludGVy
cnVwdEphdmFTY3JpcHQoV2ViUGFnZVByb3h5Kik7CisgICAgdm9pZCBhZGRNZXNzYWdlVG9Db25z
b2xlKFdlYlBhZ2VQcm94eSosIGNvbnN0IENvbnNvbGVNZXNzYWdlJik7CiAKICNpZiBFTkFCTEUo
SU5QVVRfVFlQRV9DT0xPUikKICAgICBib29sIHNob3dDb2xvclBpY2tlcihXZWJQYWdlUHJveHkq
LCBjb25zdCBTdHJpbmcmLCBXZWJDb2xvclBpY2tlclJlc3VsdExpc3RlbmVyUHJveHkqKTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYktpdDIueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
aiBiL1NvdXJjZS9XZWJLaXQyL1dlYktpdDIueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRl
eCBkMmJkZmE3Li5iNDdlNmNmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJLaXQyLnhj
b2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYktpdDIvV2ViS2l0Mi54Y29k
ZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0zNTAsNiArMzUwLDkgQEAKIAkJMzNEM0EzQ0ExMzM5
NjE3OTAwNzA5QkU0IC8qIFdlYk1lZGlhQ2FjaGVNYW5hZ2VyUHJveHlNZXNzYWdlUmVjZWl2ZXIu
Y3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMzNEM0Ez
QzYxMzM5NjE3OTAwNzA5QkU0IC8qIFdlYk1lZGlhQ2FjaGVNYW5hZ2VyUHJveHlNZXNzYWdlUmVj
ZWl2ZXIuY3BwICovOyB9OwogCQkzM0QzQTNDQjEzMzk2MTc5MDA3MDlCRTQgLyogV2ViTWVkaWFD
YWNoZU1hbmFnZXJQcm94eU1lc3NhZ2VzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSAzM0QzQTNDNzEzMzk2MTc5MDA3MDlCRTQgLyogV2ViTWVkaWFDYWNo
ZU1hbmFnZXJQcm94eU1lc3NhZ2VzLmggKi87IH07CiAJCTMzRjlENUI5MTMxMkYxRUUwMDBENjgz
RiAvKiBXZWJSZXNvdXJjZUNhY2hlTWFuYWdlckNGTmV0LmNwcCBpbiBTb3VyY2VzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDMzRjlENUI4MTMxMkYxRUUwMDBENjgzRiAvKiBX
ZWJSZXNvdXJjZUNhY2hlTWFuYWdlckNGTmV0LmNwcCAqLzsgfTsKKwkJMzZFMTAyQ0UxNjUxOTk5
NDAwNkM3QjUzIC8qIFdLQ29uc29sZVR5cGVzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSAzNkUxMDJDRDE2NTE5OTk0MDA2QzdCNTMgLyogV0tDb25zb2xl
VHlwZXMuaCAqLzsgfTsKKwkJMzZFMTAyRDIxNjUxOUE1NTAwNkM3QjUzIC8qIENvbnNvbGVNZXNz
YWdlLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDM2
RTEwMkQwMTY1MTlBNTUwMDZDN0I1MyAvKiBDb25zb2xlTWVzc2FnZS5jcHAgKi87IH07CisJCTM2
RTEwMkQzMTY1MTlBNTUwMDZDN0I1MyAvKiBDb25zb2xlTWVzc2FnZS5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMzZFMTAyRDExNjUxOUE1NTAwNkM3QjUz
IC8qIENvbnNvbGVNZXNzYWdlLmggKi87IH07CiAJCTM3NjA4ODFFMTUwNDEzRTkwMEZDODJDNyAv
KiBXZWJSZW5kZXJPYmplY3QuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gMzc2MDg4MUMxNTA0MTNFOTAwRkM4MkM3IC8qIFdlYlJlbmRlck9iamVjdC5j
cHAgKi87IH07CiAJCTM3NjA4ODFGMTUwNDEzRTkwMEZDODJDNyAvKiBXZWJSZW5kZXJPYmplY3Qu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDM3NjA4ODFE
MTUwNDEzRTkwMEZDODJDNyAvKiBXZWJSZW5kZXJPYmplY3QuaCAqLzsgfTsKIAkJMzc2MDg4MjIx
NTA0MTRGNzAwRkM4MkM3IC8qIFdLUmVuZGVyT2JqZWN0LmNwcCBpbiBTb3VyY2VzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDM3NjA4ODIwMTUwNDE0RjcwMEZDODJDNyAvKiBX
S1JlbmRlck9iamVjdC5jcHAgKi87IH07CkBAIC0xNTYyLDYgKzE1NjUsOSBAQAogCQkzM0QzQTND
NjEzMzk2MTc5MDA3MDlCRTQgLyogV2ViTWVkaWFDYWNoZU1hbmFnZXJQcm94eU1lc3NhZ2VSZWNl
aXZlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXZWJNZWRpYUNh
Y2hlTWFuYWdlclByb3h5TWVzc2FnZVJlY2VpdmVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJMzNEM0EzQzcxMzM5NjE3OTAwNzA5QkU0IC8qIFdlYk1lZGlhQ2FjaGVNYW5hZ2Vy
UHJveHlNZXNzYWdlcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJNZWRp
YUNhY2hlTWFuYWdlclByb3h5TWVzc2FnZXMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJMzNGOUQ1QjgxMzEyRjFFRTAwMEQ2ODNGIC8qIFdlYlJlc291cmNlQ2FjaGVNYW5hZ2VyQ0ZO
ZXQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGV4cGxpY2l0RmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5vYmpjcHA7IGZpbGVFbmNvZGluZyA9IDQ7IG5hbWUgPSBXZWJSZXNvdXJj
ZUNhY2hlTWFuYWdlckNGTmV0LmNwcDsgcGF0aCA9IFJlc291cmNlQ2FjaGUvY2YvV2ViUmVzb3Vy
Y2VDYWNoZU1hbmFnZXJDRk5ldC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTM2
RTEwMkNEMTY1MTk5OTQwMDZDN0I1MyAvKiBXS0NvbnNvbGVUeXBlcy5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBXS0NvbnNvbGVUeXBlcy5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OworCQkzNkUxMDJEMDE2NTE5QTU1MDA2QzdCNTMgLyogQ29uc29sZU1lc3NhZ2UuY3Bw
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gQ29uc29sZU1lc3NhZ2UuY3Bw
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkzNkUxMDJEMTE2NTE5QTU1MDA2QzdCNTMg
LyogQ29uc29sZU1lc3NhZ2UuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQ29u
c29sZU1lc3NhZ2UuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMzc2MDg4MUMxNTA0
MTNFOTAwRkM4MkM3IC8qIFdlYlJlbmRlck9iamVjdC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5jcHA7IHBhdGggPSBXZWJSZW5kZXJPYmplY3QuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQkzNzYwODgxRDE1MDQxM0U5MDBGQzgyQzcgLyogV2ViUmVuZGVyT2JqZWN0Lmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYlJlbmRlck9iamVjdC5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkzNzYwODgyMDE1MDQxNEY3MDBGQzgyQzcgLyogV0tS
ZW5kZXJPYmplY3QuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gV0tS
ZW5kZXJPYmplY3QuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMjcyMyw2ICsy
NzI5LDggQEAKIAkJCQkxQTZGOUY4RTExRTEzRUZDMDBEQjEzNzEgLyogQ29tbWFuZExpbmUuaCAq
LywKIAkJCQk1MTM2MTgzQjE2MzEyNkRBMDBBOTlEREUgLyogQ29ubmVjdGlvblN0YWNrLmNwcCAq
LywKIAkJCQk1MTM2MTgzQzE2MzEyNkRBMDBBOTlEREUgLyogQ29ubmVjdGlvblN0YWNrLmggKi8s
CisJCQkJMzZFMTAyRDAxNjUxOUE1NTAwNkM3QjUzIC8qIENvbnNvbGVNZXNzYWdlLmNwcCAqLywK
KwkJCQkzNkUxMDJEMTE2NTE5QTU1MDA2QzdCNTMgLyogQ29uc29sZU1lc3NhZ2UuaCAqLywKIAkJ
CQlCQ0U4MUQ5NjEzMUFFMDIwMDAyNDE5MTAgLyogRGljdGlvbmFyeVBvcHVwSW5mby5jcHAgKi8s
CiAJCQkJQkNFODFEOTcxMzFBRTAyMTAwMjQxOTEwIC8qIERpY3Rpb25hcnlQb3B1cEluZm8uaCAq
LywKIAkJCQlDNTE3Mzg4MDEyREY4RjRGMDBFRTNGNDcgLyogRHJhZ0NvbnRyb2xsZXJBY3Rpb24u
aCAqLywKQEAgLTQwNzYsNiArNDA4NCw3IEBACiAJCQkJQkM0MDc1REExMjRGRjAyNzAwNjhGMjBB
IC8qIFdLQ2VydGlmaWNhdGVJbmZvLmggKi8sCiAJCQkJQkM0QTYyOTQxNDczMTNBMDAwNkM2ODFB
IC8qIFdLQ29ubmVjdGlvblJlZi5jcHAgKi8sCiAJCQkJQkM0QTYyOTUxNDczMTNBMDAwNkM2ODFB
IC8qIFdLQ29ubmVjdGlvblJlZi5oICovLAorCQkJCTM2RTEwMkNEMTY1MTk5OTQwMDZDN0I1MyAv
KiBXS0NvbnNvbGVUeXBlcy5oICovLAogCQkJCTUxQTU1NUYzMTI4QzZDNDcwMDlBQkNFQyAvKiBX
S0NvbnRleHRNZW51SXRlbS5jcHAgKi8sCiAJCQkJNTFBNTU1RjQxMjhDNkM0NzAwOUFCQ0VDIC8q
IFdLQ29udGV4dE1lbnVJdGVtLmggKi8sCiAJCQkJNTFBNTU2MDAxMjhDNkQ5MjAwOUFCQ0VDIC8q
IFdLQ29udGV4dE1lbnVJdGVtVHlwZXMuaCAqLywKQEAgLTQ4OTgsNiArNDkwNyw4IEBACiAJCQkJ
MUFGMUFDNkMxNjUxNzU5RTAwQzE3RDdGIC8qIFJlbW90ZUxheWVyVHJlZVRyYW5zYWN0aW9uLmgg
aW4gSGVhZGVycyAqLywKIAkJCQkxQUEzRDc1QzE2NTFCNDRGMDA4NzEzRDAgLyogUmVtb3RlTGF5
ZXJUcmVlSG9zdC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMUFBM0Q3NjIxNjUxQjdEMzAwODcxM0Qw
IC8qIFJlbW90ZUxheWVyVHJlZUhvc3RNZXNzYWdlcy5oIGluIEhlYWRlcnMgKi8sCisJCQkJMzZF
MTAyQ0UxNjUxOTk5NDAwNkM3QjUzIC8qIFdLQ29uc29sZVR5cGVzLmggaW4gSGVhZGVycyAqLywK
KwkJCQkzNkUxMDJEMzE2NTE5QTU1MDA2QzdCNTMgLyogQ29uc29sZU1lc3NhZ2UuaCBpbiBIZWFk
ZXJzICovLAogCQkJKTsKIAkJCXJ1bk9ubHlGb3JEZXBsb3ltZW50UG9zdHByb2Nlc3NpbmcgPSAw
OwogCQl9OwpAQCAtNTg0Miw2ICs1ODUzLDcgQEAKIAkJCQkxQUYxQUM2QjE2NTE3NTlFMDBDMTdE
N0YgLyogUmVtb3RlTGF5ZXJUcmVlVHJhbnNhY3Rpb24ubW0gaW4gU291cmNlcyAqLywKIAkJCQkx
QUEzRDc1QjE2NTFCNDRGMDA4NzEzRDAgLyogUmVtb3RlTGF5ZXJUcmVlSG9zdC5tbSBpbiBTb3Vy
Y2VzICovLAogCQkJCTFBQTNENzYxMTY1MUI3RDMwMDg3MTNEMCAvKiBSZW1vdGVMYXllclRyZWVI
b3N0TWVzc2FnZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTM2RTEwMkQyMTY1MTlB
NTUwMDZDN0I1MyAvKiBDb25zb2xlTWVzc2FnZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCSk7CiAJ
CQlydW5Pbmx5Rm9yRGVwbG95bWVudFBvc3Rwcm9jZXNzaW5nID0gMDsKIAkJfTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xp
ZW50LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hy
b21lQ2xpZW50LmNwcAppbmRleCAzZTdmZTMyLi5mYjA2ZDFhIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5jcHAKKysr
IGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGll
bnQuY3BwCkBAIC0yNyw2ICsyNyw3IEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAi
V2ViQ2hyb21lQ2xpZW50LmgiCiAKKyNpbmNsdWRlICJDb25zb2xlTWVzc2FnZS5oIgogI2luY2x1
ZGUgIkRyYXdpbmdBcmVhLmgiCiAjaW5jbHVkZSAiSW5qZWN0ZWRCdW5kbGVOYXZpZ2F0aW9uQWN0
aW9uLmgiCiAjaW5jbHVkZSAiSW5qZWN0ZWRCdW5kbGVVc2VyTWVzc2FnZUNvZGVycy5oIgpAQCAt
MjYzLDEyICsyNjQsMTggQEAgdm9pZCBXZWJDaHJvbWVDbGllbnQ6OnNldFJlc2l6YWJsZShib29s
IHJlc2l6YWJsZSkKICAgICBtX3BhZ2UtPnNlbmQoTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6U2V0
SXNSZXNpemFibGUocmVzaXphYmxlKSk7CiB9CiAKLXZvaWQgV2ViQ2hyb21lQ2xpZW50OjphZGRN
ZXNzYWdlVG9Db25zb2xlKE1lc3NhZ2VTb3VyY2UsIE1lc3NhZ2VUeXBlLCBNZXNzYWdlTGV2ZWws
IGNvbnN0IFN0cmluZyYgbWVzc2FnZSwgdW5zaWduZWQgaW50IGxpbmVOdW1iZXIsIGNvbnN0IFN0
cmluZyYgLypzb3VyY2VJRCovKQordm9pZCBXZWJDaHJvbWVDbGllbnQ6OmFkZE1lc3NhZ2VUb0Nv
bnNvbGUoTWVzc2FnZVNvdXJjZSBzb3VyY2UsIE1lc3NhZ2VUeXBlLCBNZXNzYWdlTGV2ZWwgbGV2
ZWwsIGNvbnN0IFN0cmluZyYgbWVzc2FnZSwgdW5zaWduZWQgaW50IGxpbmVOdW1iZXIsIGNvbnN0
IFN0cmluZyYgc291cmNlSUQpCiB7CiAgICAgLy8gTm90aWZ5IHRoZSBidW5kbGUgY2xpZW50Lgog
ICAgIG1fcGFnZS0+aW5qZWN0ZWRCdW5kbGVVSUNsaWVudCgpLndpbGxBZGRNZXNzYWdlVG9Db25z
b2xlKG1fcGFnZSwgbWVzc2FnZSwgbGluZU51bWJlcik7CiAKLSAgICBub3RJbXBsZW1lbnRlZCgp
OworICAgIENvbnNvbGVNZXNzYWdlIGNvbnNvbGVNZXNzYWdlOworICAgIGNvbnNvbGVNZXNzYWdl
LnNvdXJjZSA9IHNvdXJjZTsKKyAgICBjb25zb2xlTWVzc2FnZS5sZXZlbCA9IGxldmVsOworICAg
IGNvbnNvbGVNZXNzYWdlLm1lc3NhZ2UgPSBtZXNzYWdlOworICAgIGNvbnNvbGVNZXNzYWdlLmxp
bmVOdW1iZXIgPSBsaW5lTnVtYmVyOworICAgIGNvbnNvbGVNZXNzYWdlLnNvdXJjZUlEID0gc291
cmNlSUQ7CisgICAgbV9wYWdlLT5zZW5kKE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OkFkZE1lc3Nh
Z2VUb0NvbnNvbGUoY29uc29sZU1lc3NhZ2UpKTsKIH0KIAogYm9vbCBXZWJDaHJvbWVDbGllbnQ6
OmNhblJ1bkJlZm9yZVVubG9hZENvbmZpcm1QYW5lbCgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0Mi93aW4vV2ViS2l0Mi52Y3Byb2ogYi9Tb3VyY2UvV2ViS2l0Mi93aW4vV2ViS2l0Mi52Y3By
b2oKaW5kZXggMDU3Y2JmMy4uZTY2Zjg2YSAxMDA3NTUKLS0tIGEvU291cmNlL1dlYktpdDIvd2lu
L1dlYktpdDIudmNwcm9qCisrKyBiL1NvdXJjZS9XZWJLaXQyL3dpbi9XZWJLaXQyLnZjcHJvagpA
QCAtNDI2LDYgKzQyNiwxNCBAQAogCQkJCVJlbGF0aXZlUGF0aD0iLi5cU2hhcmVkXENvbW1hbmRM
aW5lLmgiCiAJCQkJPgogCQkJPC9GaWxlPgorICAgICAgICAgICAgICAgICAgICAgICAgPEZpbGUK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUmVsYXRpdmVQYXRoPSIuLlxTaGFyZWRc
Q29uc29sZU1lc3NhZ2UuY3BwIgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+Cisg
ICAgICAgICAgICAgICAgICAgICAgICA8L0ZpbGU+CisgICAgICAgICAgICAgICAgICAgICAgICA8
RmlsZQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZWxhdGl2ZVBhdGg9Ii4uXFNo
YXJlZFxDb25zb2xlTWVzc2FnZS5oIgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+
CisgICAgICAgICAgICAgICAgICAgICAgICA8L0ZpbGU+CiAJCQk8RmlsZQogCQkJCVJlbGF0aXZl
UGF0aD0iLi5cU2hhcmVkXERpY3Rpb25hcnlQb3B1cEluZm8uY3BwIgogCQkJCT4KQEAgLTg5Myw2
ICs5MDEsMTAgQEAKIAkJCQkJUmVsYXRpdmVQYXRoPSIuLlxTaGFyZWRcQVBJXGNcV0tDb25uZWN0
aW9uUmVmLmgiCiAJCQkJCT4KIAkJCQk8L0ZpbGU+CisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIDxGaWxlCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUmVs
YXRpdmVQYXRoPSIuLlxTaGFyZWRcQVBJXGNcV0tDb25zb2xlVHlwZXMuaCIKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+CisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIDwvRmlsZT4KIAkJCQk8RmlsZQogCQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXFNoYXJlZFxB
UElcY1xXS0NvbnRleHRNZW51SXRlbS5jcHAiCiAJCQkJCT4KZGlmZiAtLWdpdCBhL1Rvb2xzL0No
YW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRleCBjNjcxMDk0Li4zYjQ2MjA0IDEwMDY0NAot
LS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzEg
QEAKKzIwMTItMTEtMTMgIENhcmxvcyBHYXJjaWEgQ2FtcG9zICA8Y2dhcmNpYUBpZ2FsaWEuY29t
PgorCisgICAgICAgIFtXSzJdIEltcGxlbWVudCBXZWJDaHJvbWVDbGllbnQ6OmFkZE1lc3NhZ2VU
b0NvbnNvbGUoKQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9Nzk0ODIKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICAqIE1pbmlCcm93c2VyL21hYy9Ccm93c2VyV2luZG93Q29udHJvbGxlci5tOgorICAgICAgICAo
LVtCcm93c2VyV2luZG93Q29udHJvbGxlciBhd2FrZUZyb21OaWJdKTogQWRkIGVtcHR5CisgICAg
ICAgIGFkZE1lc3NhZ2VUb0NvbnNvbGUgY2FsbGJhY2sgdG8gVUkgY2xpZW50IHN0cnVjdC4KKyAg
ICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDIvQ29uc29sZU1lc3NhZ2UuY3BwOiBB
ZGRlZC4KKyAgICAgICAgKFRlc3RXZWJLaXRBUEkpOgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6
Q29uc29sZU1lc3NhZ2U6OkNvbnNvbGVNZXNzYWdlKToKKyAgICAgICAgKENvbnNvbGVNZXNzYWdl
KToKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OkNvbnNvbGVNZXNzYWdlOjphc3NlcnRFcXVhbCk6
CisgICAgICAgIChXZWJLaXQyQ29uc29sZU1lc3NhZ2VUZXN0KToKKyAgICAgICAgKFRlc3RXZWJL
aXRBUEk6OldlYktpdDJDb25zb2xlTWVzc2FnZVRlc3Q6OldlYktpdDJDb25zb2xlTWVzc2FnZVRl
c3QpOgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6V2ViS2l0MkNvbnNvbGVNZXNzYWdlVGVzdDo6
YWRkTWVzc2FnZVRvQ29uc29sZSk6CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpXZWJLaXQyQ29u
c29sZU1lc3NhZ2VUZXN0OjpzZXRVSUNsaWVudCk6CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpX
ZWJLaXQyQ29uc29sZU1lc3NhZ2VUZXN0OjpTZXRVcCk6CisgICAgICAgIChUZXN0V2ViS2l0QVBJ
OjpXZWJLaXQyQ29uc29sZU1lc3NhZ2VUZXN0Ojpsb2FkSFRNTEFuZFJ1blVudGlsQ29uc29sZU1l
c3NhZ2VSZWNlaXZlZCk6CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpURVNUX0YpOgorICAgICAg
ICAqIFRlc3RXZWJLaXRBUEkvd2luL1Rlc3RXZWJLaXRBUEkudmNwcm9qOiBBZGQgQ29uc29sZU1l
c3NhZ2UgdW5pdCB0ZXN0cy4KKyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250cm9s
bGVyLmNwcDoKKyAgICAgICAgKFdUUjo6VGVzdENvbnRyb2xsZXI6OmNyZWF0ZU90aGVyUGFnZSk6
IEFkZCBlbXB0eQorICAgICAgICBhZGRNZXNzYWdlVG9Db25zb2xlIGNhbGxiYWNrIHRvIFVJIGNs
aWVudCBzdHJ1Y3QuCisgICAgICAgIChXVFI6OlRlc3RDb250cm9sbGVyOjppbml0aWFsaXplKTog
RGl0dG8uCisKIDIwMTItMTEtMTIgIERpcmsgUHJhbmtlICA8ZHByYW5rZUBjaHJvbWl1bS5vcmc+
CiAKICAgICAgICAgd2Via2l0cHk6IGludGVncmF0ZSBweWxpbnQgaW50byBjaGVjay13ZWJraXQt
c3R5bGUsIHBhcnQgSQpkaWZmIC0tZ2l0IGEvVG9vbHMvTWluaUJyb3dzZXIvbWFjL1dLMkJyb3dz
ZXJXaW5kb3dDb250cm9sbGVyLm0gYi9Ub29scy9NaW5pQnJvd3Nlci9tYWMvV0syQnJvd3Nlcldp
bmRvd0NvbnRyb2xsZXIubQppbmRleCAxNzMxZWI2Li4wMjYyYzI2IDEwMDY0NAotLS0gYS9Ub29s
cy9NaW5pQnJvd3Nlci9tYWMvV0syQnJvd3NlcldpbmRvd0NvbnRyb2xsZXIubQorKysgYi9Ub29s
cy9NaW5pQnJvd3Nlci9tYWMvV0syQnJvd3NlcldpbmRvd0NvbnRyb2xsZXIubQpAQCAtNzAzLDYg
KzcwMyw3IEBAIC0gKHZvaWQpYXdha2VGcm9tTmliCiAgICAgICAgIDAsIC8vIHVuYXZhaWxhYmxl
UGx1Z2luQnV0dG9uQ2xpY2tlZAogICAgICAgICAwLCAvLyBzaG93Q29sb3JQaWNrZXIKICAgICAg
ICAgMCwgLy8gaGlkZUNvbG9yUGlja2VyCisgICAgICAgIDAsIC8vIGFkZE1lc3NhZ2VUb0NvbnNv
bGUKICAgICB9OwogICAgIFdLUGFnZVNldFBhZ2VVSUNsaWVudChfd2ViVmlldy5wYWdlUmVmLCAm
dWlDbGllbnQpOwogfQpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJL
aXQyL0NvbnNvbGVNZXNzYWdlLmNwcCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0
Mi9Db25zb2xlTWVzc2FnZS5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4u
ODUwMWM3YQotLS0gL2Rldi9udWxsCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2Vi
S2l0Mi9Db25zb2xlTWVzc2FnZS5jcHAKQEAgLTAsMCArMSwxNzYgQEAKKy8qCisgKiBDb3B5cmln
aHQgKEMpIDIwMTIgSWdhbGlhIFMuTC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwor
ICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJl
dGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlv
bnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxz
IHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElT
IFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisg
KiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklM
SVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlN
RUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICog
QkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwg
RVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VS
VklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5U
RVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFks
IFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNM
VURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VU
IE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUg
UE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgor
I2luY2x1ZGUgIlBsYXRmb3JtVXRpbGl0aWVzLmgiCisjaW5jbHVkZSAiUGxhdGZvcm1XZWJWaWV3
LmgiCisjaW5jbHVkZSA8V2ViS2l0Mi9XS1JldGFpblB0ci5oPgorI2luY2x1ZGUgPHd0Zi9Pd25Q
dHIuaD4KKyNpbmNsdWRlIDx3dGYvUGFzc093blB0ci5oPgorCisjaW5jbHVkZSA8c3RkaW8uaD4K
KworbmFtZXNwYWNlIFRlc3RXZWJLaXRBUEkgeworCitzdHJ1Y3QgQ29uc29sZU1lc3NhZ2Ugewor
ICAgIENvbnNvbGVNZXNzYWdlKCkKKyAgICAgICAgOiBzb3VyY2Uoa1dLTWVzc2FnZVNvdXJjZU90
aGVyKQorICAgICAgICAsIGxldmVsKGtXS01lc3NhZ2VMZXZlbExvZykKKyAgICAgICAgLCBtZXNz
YWdlKDApCisgICAgICAgICwgbGluZU51bWJlcigwKQorICAgICAgICAsIHNvdXJjZUlEKDApCisg
ICAgeworICAgIH0KKworICAgIENvbnNvbGVNZXNzYWdlKFdLTWVzc2FnZVNvdXJjZVR5cGUgc291
cmNlLCBXS01lc3NhZ2VMZXZlbFR5cGUgbGV2ZWwsIFdLU3RyaW5nUmVmIG1lc3NhZ2UsIHVuc2ln
bmVkIGxpbmVOdW1iZXIsIFdLU3RyaW5nUmVmIHNvdXJjZUlEKQorICAgICAgICA6IHNvdXJjZShz
b3VyY2UpCisgICAgICAgICwgbGV2ZWwobGV2ZWwpCisgICAgICAgICwgbWVzc2FnZShtZXNzYWdl
KQorICAgICAgICAsIGxpbmVOdW1iZXIobGluZU51bWJlcikKKyAgICAgICAgLCBzb3VyY2VJRChz
b3VyY2VJRCkKKyAgICB7CisgICAgfQorCisgICAgdm9pZCBhc3NlcnRFcXVhbChjb25zdCBDb25z
b2xlTWVzc2FnZSYgb3RoZXIpIGNvbnN0CisgICAgeworICAgICAgICBFWFBFQ1RfRVEoc291cmNl
LCBvdGhlci5zb3VyY2UpOworICAgICAgICBFWFBFQ1RfRVEobGV2ZWwsIG90aGVyLmxldmVsKTsK
KyAgICAgICAgRVhQRUNUX1RSVUUoV0tTdHJpbmdJc0VxdWFsKG1lc3NhZ2UuZ2V0KCksIG90aGVy
Lm1lc3NhZ2UuZ2V0KCkpKTsKKyAgICAgICAgRVhQRUNUX0VRKGxpbmVOdW1iZXIsIG90aGVyLmxp
bmVOdW1iZXIpOworICAgICAgICBFWFBFQ1RfVFJVRShXS1N0cmluZ0lzRXF1YWwoc291cmNlSUQu
Z2V0KCksIG90aGVyLnNvdXJjZUlELmdldCgpKSk7CisgICAgfQorCisgICAgV0tNZXNzYWdlU291
cmNlVHlwZSBzb3VyY2U7CisgICAgV0tNZXNzYWdlTGV2ZWxUeXBlIGxldmVsOworICAgIFdLUmV0
YWluUHRyPFdLU3RyaW5nUmVmPiBtZXNzYWdlOworICAgIHVuc2lnbmVkIGxpbmVOdW1iZXI7Cisg
ICAgV0tSZXRhaW5QdHI8V0tTdHJpbmdSZWY+IHNvdXJjZUlEOworfTsKKworY2xhc3MgV2ViS2l0
MkNvbnNvbGVNZXNzYWdlVGVzdCA6IHB1YmxpYyA6OnRlc3Rpbmc6OlRlc3QgeworcHVibGljOgor
ICAgIFdlYktpdDJDb25zb2xlTWVzc2FnZVRlc3QoKQorICAgICAgICA6IG1fZGlkUmVjZWl2ZUNv
bnNvbGVNZXNzYWdlKGZhbHNlKQorICAgIHsKKyAgICB9CisKKyAgICBzdGF0aWMgdm9pZCBhZGRN
ZXNzYWdlVG9Db25zb2xlKFdLUGFnZVJlZiwgV0tNZXNzYWdlU291cmNlVHlwZSBzb3VyY2UsIFdL
TWVzc2FnZUxldmVsVHlwZSBsZXZlbCwgV0tTdHJpbmdSZWYgbWVzc2FnZSwgdW5zaWduZWQgbGlu
ZU51bWJlciwgV0tTdHJpbmdSZWYgc291cmNlSUQsIGNvbnN0IHZvaWQqIGNsaWVudEluZm8pCisg
ICAgeworICAgICAgICAoKFdlYktpdDJDb25zb2xlTWVzc2FnZVRlc3QqKWNsaWVudEluZm8pLT5t
X2NvbnNvbGVNZXNzYWdlID0gQ29uc29sZU1lc3NhZ2Uoc291cmNlLCBsZXZlbCwgbWVzc2FnZSwg
bGluZU51bWJlciwgc291cmNlSUQpOworICAgICAgICAoKFdlYktpdDJDb25zb2xlTWVzc2FnZVRl
c3QqKWNsaWVudEluZm8pLT5tX2RpZFJlY2VpdmVDb25zb2xlTWVzc2FnZSA9IHRydWU7CisgICAg
fQorCisgICAgc3RhdGljIHZvaWQgc2V0VUlDbGllbnQoV0tQYWdlUmVmIHBhZ2UsIGNvbnN0IHZv
aWQqIGNsaWVudEluZm8pCisgICAgeworICAgICAgICBXS1BhZ2VVSUNsaWVudCB1aUNsaWVudDsK
KyAgICAgICAgbWVtc2V0KCZ1aUNsaWVudCwgMCwgc2l6ZW9mKHVpQ2xpZW50KSk7CisgICAgICAg
IHVpQ2xpZW50LnZlcnNpb24gPSBrV0tQYWdlVUlDbGllbnRDdXJyZW50VmVyc2lvbjsKKyAgICAg
ICAgdWlDbGllbnQuY2xpZW50SW5mbyA9IGNsaWVudEluZm87CisgICAgICAgIHVpQ2xpZW50LmFk
ZE1lc3NhZ2VUb0NvbnNvbGUgPSBhZGRNZXNzYWdlVG9Db25zb2xlOworICAgICAgICBXS1BhZ2VT
ZXRQYWdlVUlDbGllbnQocGFnZSwgJnVpQ2xpZW50KTsKKyAgICB9CisKKyAgICB2aXJ0dWFsIHZv
aWQgU2V0VXAoKQorICAgIHsKKyAgICAgICAgbV9jb250ZXh0ID0gYWRvcHRXSyhXS0NvbnRleHRD
cmVhdGUoKSk7CisgICAgICAgIG1fd2ViVmlldyA9IGFkb3B0UHRyKG5ldyBQbGF0Zm9ybVdlYlZp
ZXcobV9jb250ZXh0LmdldCgpKSk7CisgICAgICAgIHNldFVJQ2xpZW50KG1fd2ViVmlldy0+cGFn
ZSgpLCB0aGlzKTsKKworICAgICAgICBtX2RpZFJlY2VpdmVDb25zb2xlTWVzc2FnZSA9IGZhbHNl
OworICAgIH0KKworICAgIHZvaWQgbG9hZEhUTUxBbmRSdW5VbnRpbENvbnNvbGVNZXNzYWdlUmVj
ZWl2ZWQoV0tTdHJpbmdSZWYgaHRtbCwgV0tVUkxSZWYgYmFzZVVSTCkKKyAgICB7CisgICAgICAg
IFdLUGFnZUxvYWRIVE1MU3RyaW5nKG1fd2ViVmlldy0+cGFnZSgpLCBodG1sLCBiYXNlVVJMKTsK
KyAgICAgICAgVXRpbDo6cnVuKCZtX2RpZFJlY2VpdmVDb25zb2xlTWVzc2FnZSk7CisgICAgfQor
CisgICAgV0tSZXRhaW5QdHI8V0tDb250ZXh0UmVmPiBtX2NvbnRleHQ7CisgICAgT3duUHRyPFBs
YXRmb3JtV2ViVmlldz4gbV93ZWJWaWV3OworICAgIGJvb2wgbV9kaWRSZWNlaXZlQ29uc29sZU1l
c3NhZ2U7CisgICAgQ29uc29sZU1lc3NhZ2UgbV9jb25zb2xlTWVzc2FnZTsKK307CisKK1RFU1Rf
RihXZWJLaXQyQ29uc29sZU1lc3NhZ2VUZXN0LCBMb2dNZXNzYWdlKQoreworICAgIFdLUmV0YWlu
UHRyPFdLU3RyaW5nUmVmPiBodG1sU3RyaW5nKEFkb3B0V0ssIFdLU3RyaW5nQ3JlYXRlV2l0aFVU
RjhDU3RyaW5nKCI8aHRtbD48Ym9keSBvbmxvYWQ9J2NvbnNvbGUubG9nKFwiTG9nIENvbnNvbGUg
TWVzc2FnZVwiKTsnPjwvYm9keT48L2h0bWw+IikpOworICAgIFdLUmV0YWluUHRyPFdLVVJMUmVm
PiBiYXNlVVJMKEFkb3B0V0ssIFdLVVJMQ3JlYXRlV2l0aFVURjhDU3RyaW5nKCJodHRwOi8vZm9v
LmNvbS9iYXIiKSk7CisgICAgbG9hZEhUTUxBbmRSdW5VbnRpbENvbnNvbGVNZXNzYWdlUmVjZWl2
ZWQoaHRtbFN0cmluZy5nZXQoKSwgYmFzZVVSTC5nZXQoKSk7CisgICAgV0tSZXRhaW5QdHI8V0tT
dHJpbmdSZWY+IG1lc3NhZ2UoQWRvcHRXSywgV0tTdHJpbmdDcmVhdGVXaXRoVVRGOENTdHJpbmco
IkxvZyBDb25zb2xlIE1lc3NhZ2UiKSk7CisgICAgV0tSZXRhaW5QdHI8V0tTdHJpbmdSZWY+IHNv
dXJjZUlEKEFkb3B0V0ssIFdLVVJMQ29weVN0cmluZyhiYXNlVVJMLmdldCgpKSk7CisgICAgbV9j
b25zb2xlTWVzc2FnZS5hc3NlcnRFcXVhbChDb25zb2xlTWVzc2FnZShrV0tNZXNzYWdlU291cmNl
Q29uc29sZUFQSSwga1dLTWVzc2FnZUxldmVsTG9nLCBtZXNzYWdlLmdldCgpLCAxLCBzb3VyY2VJ
RC5nZXQoKSkpOworfQorCitURVNUX0YoV2ViS2l0MkNvbnNvbGVNZXNzYWdlVGVzdCwgSW5mb01l
c3NhZ2UpCit7CisgICAgV0tSZXRhaW5QdHI8V0tTdHJpbmdSZWY+IGh0bWxTdHJpbmcoQWRvcHRX
SywgV0tTdHJpbmdDcmVhdGVXaXRoVVRGOENTdHJpbmcoIjxodG1sPjxib2R5IG9ubG9hZD0nY29u
c29sZS5pbmZvKFwiSW5mbyBDb25zb2xlIE1lc3NhZ2VcIik7Jz48L2JvZHk+PC9odG1sPiIpKTsK
KyAgICBXS1JldGFpblB0cjxXS1VSTFJlZj4gYmFzZVVSTChBZG9wdFdLLCBXS1VSTENyZWF0ZVdp
dGhVVEY4Q1N0cmluZygiaHR0cDovL2Zvby5jb20vYmFyIikpOworICAgIGxvYWRIVE1MQW5kUnVu
VW50aWxDb25zb2xlTWVzc2FnZVJlY2VpdmVkKGh0bWxTdHJpbmcuZ2V0KCksIGJhc2VVUkwuZ2V0
KCkpOworICAgIFdLUmV0YWluUHRyPFdLU3RyaW5nUmVmPiBtZXNzYWdlKEFkb3B0V0ssIFdLU3Ry
aW5nQ3JlYXRlV2l0aFVURjhDU3RyaW5nKCJJbmZvIENvbnNvbGUgTWVzc2FnZSIpKTsKKyAgICBX
S1JldGFpblB0cjxXS1N0cmluZ1JlZj4gc291cmNlSUQoQWRvcHRXSywgV0tVUkxDb3B5U3RyaW5n
KGJhc2VVUkwuZ2V0KCkpKTsKKyAgICBtX2NvbnNvbGVNZXNzYWdlLmFzc2VydEVxdWFsKENvbnNv
bGVNZXNzYWdlKGtXS01lc3NhZ2VTb3VyY2VDb25zb2xlQVBJLCBrV0tNZXNzYWdlTGV2ZWxMb2cs
IG1lc3NhZ2UuZ2V0KCksIDEsIHNvdXJjZUlELmdldCgpKSk7Cit9CisKK1RFU1RfRihXZWJLaXQy
Q29uc29sZU1lc3NhZ2VUZXN0LCBEZWJ1Z01lc3NhZ2UpCit7CisgICAgV0tSZXRhaW5QdHI8V0tT
dHJpbmdSZWY+IGh0bWxTdHJpbmcoQWRvcHRXSywgV0tTdHJpbmdDcmVhdGVXaXRoVVRGOENTdHJp
bmcoIjxodG1sPjxib2R5IG9ubG9hZD0nY29uc29sZS5kZWJ1ZyhcIkRlYnVnIENvbnNvbGUgTWVz
c2FnZVwiKTsnPjwvYm9keT48L2h0bWw+IikpOworICAgIFdLUmV0YWluUHRyPFdLVVJMUmVmPiBi
YXNlVVJMKEFkb3B0V0ssIFdLVVJMQ3JlYXRlV2l0aFVURjhDU3RyaW5nKCJodHRwOi8vZm9vLmNv
bS9iYXIiKSk7CisgICAgbG9hZEhUTUxBbmRSdW5VbnRpbENvbnNvbGVNZXNzYWdlUmVjZWl2ZWQo
aHRtbFN0cmluZy5nZXQoKSwgYmFzZVVSTC5nZXQoKSk7CisgICAgV0tSZXRhaW5QdHI8V0tTdHJp
bmdSZWY+IG1lc3NhZ2UoQWRvcHRXSywgV0tTdHJpbmdDcmVhdGVXaXRoVVRGOENTdHJpbmcoIkRl
YnVnIENvbnNvbGUgTWVzc2FnZSIpKTsKKyAgICBXS1JldGFpblB0cjxXS1N0cmluZ1JlZj4gc291
cmNlSUQoQWRvcHRXSywgV0tVUkxDb3B5U3RyaW5nKGJhc2VVUkwuZ2V0KCkpKTsKKyAgICBtX2Nv
bnNvbGVNZXNzYWdlLmFzc2VydEVxdWFsKENvbnNvbGVNZXNzYWdlKGtXS01lc3NhZ2VTb3VyY2VD
b25zb2xlQVBJLCBrV0tNZXNzYWdlTGV2ZWxMb2csIG1lc3NhZ2UuZ2V0KCksIDEsIHNvdXJjZUlE
LmdldCgpKSk7Cit9CisKK1RFU1RfRihXZWJLaXQyQ29uc29sZU1lc3NhZ2VUZXN0LCBXYXJuaW5n
TWVzc2FnZSkKK3sKKyAgICBXS1JldGFpblB0cjxXS1N0cmluZ1JlZj4gaHRtbFN0cmluZyhBZG9w
dFdLLCBXS1N0cmluZ0NyZWF0ZVdpdGhVVEY4Q1N0cmluZygiPGh0bWw+PGJvZHkgb25sb2FkPSdj
b25zb2xlLndhcm4oXCJXYXJuaW5nIENvbnNvbGUgTWVzc2FnZVwiKTsnPjwvYm9keT48L2h0bWw+
IikpOworICAgIFdLUmV0YWluUHRyPFdLVVJMUmVmPiBiYXNlVVJMKEFkb3B0V0ssIFdLVVJMQ3Jl
YXRlV2l0aFVURjhDU3RyaW5nKCJodHRwOi8vZm9vLmNvbS9iYXIiKSk7CisgICAgbG9hZEhUTUxB
bmRSdW5VbnRpbENvbnNvbGVNZXNzYWdlUmVjZWl2ZWQoaHRtbFN0cmluZy5nZXQoKSwgYmFzZVVS
TC5nZXQoKSk7CisgICAgV0tSZXRhaW5QdHI8V0tTdHJpbmdSZWY+IG1lc3NhZ2UoQWRvcHRXSywg
V0tTdHJpbmdDcmVhdGVXaXRoVVRGOENTdHJpbmcoIldhcm5pbmcgQ29uc29sZSBNZXNzYWdlIikp
OworICAgIFdLUmV0YWluUHRyPFdLU3RyaW5nUmVmPiBzb3VyY2VJRChBZG9wdFdLLCBXS1VSTENv
cHlTdHJpbmcoYmFzZVVSTC5nZXQoKSkpOworICAgIG1fY29uc29sZU1lc3NhZ2UuYXNzZXJ0RXF1
YWwoQ29uc29sZU1lc3NhZ2Uoa1dLTWVzc2FnZVNvdXJjZUNvbnNvbGVBUEksIGtXS01lc3NhZ2VM
ZXZlbFdhcm5pbmcsIG1lc3NhZ2UuZ2V0KCksIDEsIHNvdXJjZUlELmdldCgpKSk7Cit9CisKK1RF
U1RfRihXZWJLaXQyQ29uc29sZU1lc3NhZ2VUZXN0LCBFcnJvck1lc3NhZ2UpCit7CisgICAgV0tS
ZXRhaW5QdHI8V0tTdHJpbmdSZWY+IGh0bWxTdHJpbmcoQWRvcHRXSywgV0tTdHJpbmdDcmVhdGVX
aXRoVVRGOENTdHJpbmcoIjxodG1sPjxib2R5IG9ubG9hZD0nY29uc29sZS5lcnJvcihcIkVycm9y
IENvbnNvbGUgTWVzc2FnZVwiKTsnPjwvYm9keT48L2h0bWw+IikpOworICAgIFdLUmV0YWluUHRy
PFdLVVJMUmVmPiBiYXNlVVJMKEFkb3B0V0ssIFdLVVJMQ3JlYXRlV2l0aFVURjhDU3RyaW5nKCJo
dHRwOi8vZm9vLmNvbS9iYXIiKSk7CisgICAgbG9hZEhUTUxBbmRSdW5VbnRpbENvbnNvbGVNZXNz
YWdlUmVjZWl2ZWQoaHRtbFN0cmluZy5nZXQoKSwgYmFzZVVSTC5nZXQoKSk7CisgICAgV0tSZXRh
aW5QdHI8V0tTdHJpbmdSZWY+IG1lc3NhZ2UoQWRvcHRXSywgV0tTdHJpbmdDcmVhdGVXaXRoVVRG
OENTdHJpbmcoIkVycm9yIENvbnNvbGUgTWVzc2FnZSIpKTsKKyAgICBXS1JldGFpblB0cjxXS1N0
cmluZ1JlZj4gc291cmNlSUQoQWRvcHRXSywgV0tVUkxDb3B5U3RyaW5nKGJhc2VVUkwuZ2V0KCkp
KTsKKyAgICBtX2NvbnNvbGVNZXNzYWdlLmFzc2VydEVxdWFsKENvbnNvbGVNZXNzYWdlKGtXS01l
c3NhZ2VTb3VyY2VDb25zb2xlQVBJLCBrV0tNZXNzYWdlTGV2ZWxFcnJvciwgbWVzc2FnZS5nZXQo
KSwgMSwgc291cmNlSUQuZ2V0KCkpKTsKK30KKworVEVTVF9GKFdlYktpdDJDb25zb2xlTWVzc2Fn
ZVRlc3QsIEV4Y2VwdGlvbk1lc3NhZ2UpCit7CisgICAgV0tSZXRhaW5QdHI8V0tTdHJpbmdSZWY+
IGh0bWxTdHJpbmcoQWRvcHRXSywgV0tTdHJpbmdDcmVhdGVXaXRoVVRGOENTdHJpbmcoIjxodG1s
Pjxib2R5IG9ubG9hZD0nZm9vKCk7Jz48L2JvZHk+PC9odG1sPiIpKTsKKyAgICBXS1JldGFpblB0
cjxXS1VSTFJlZj4gYmFzZVVSTChBZG9wdFdLLCBXS1VSTENyZWF0ZVdpdGhVVEY4Q1N0cmluZygi
aHR0cDovL2Zvby5jb20vYmFyIikpOworICAgIGxvYWRIVE1MQW5kUnVuVW50aWxDb25zb2xlTWVz
c2FnZVJlY2VpdmVkKGh0bWxTdHJpbmcuZ2V0KCksIGJhc2VVUkwuZ2V0KCkpOworICAgIFdLUmV0
YWluUHRyPFdLU3RyaW5nUmVmPiBtZXNzYWdlKEFkb3B0V0ssIFdLU3RyaW5nQ3JlYXRlV2l0aFVU
RjhDU3RyaW5nKCJSZWZlcmVuY2VFcnJvcjogQ2FuJ3QgZmluZCB2YXJpYWJsZTogZm9vIikpOwor
ICAgIFdLUmV0YWluUHRyPFdLU3RyaW5nUmVmPiBzb3VyY2VJRChBZG9wdFdLLCBXS1N0cmluZ0Ny
ZWF0ZVdpdGhVVEY4Q1N0cmluZygidW5kZWZpbmVkIikpOworICAgIG1fY29uc29sZU1lc3NhZ2Uu
YXNzZXJ0RXF1YWwoQ29uc29sZU1lc3NhZ2Uoa1dLTWVzc2FnZVNvdXJjZUpTLCBrV0tNZXNzYWdl
TGV2ZWxFcnJvciwgbWVzc2FnZS5nZXQoKSwgMCwgc291cmNlSUQuZ2V0KCkpKTsKK30KKworfSAv
LyBuYW1lc3BhY2UgVGVzdFdlYktpdEFQSQpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQ
SS93aW4vVGVzdFdlYktpdEFQSS52Y3Byb2ogYi9Ub29scy9UZXN0V2ViS2l0QVBJL3dpbi9UZXN0
V2ViS2l0QVBJLnZjcHJvagppbmRleCBjMTJmMDI0Li42YjdkMzJiIDEwMDY0NAotLS0gYS9Ub29s
cy9UZXN0V2ViS2l0QVBJL3dpbi9UZXN0V2ViS2l0QVBJLnZjcHJvagorKysgYi9Ub29scy9UZXN0
V2ViS2l0QVBJL3dpbi9UZXN0V2ViS2l0QVBJLnZjcHJvagpAQCAtNDM1LDYgKzQzNSwxMCBAQAog
CQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXFRlc3RzXFdlYktpdDJcQ2FuSGFuZGxlUmVxdWVzdC5jcHAi
CiAJCQkJCT4KIAkJCQk8L0ZpbGU+CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxG
aWxlCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUmVsYXRpdmVQYXRo
PSIuLlxUZXN0c1xXZWJLaXQyXENvbnNvbGVNZXNzYWdlLmNwcCIKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICA+CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IDwvRmlsZT4KIAkJCQk8RmlsZQogCQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXFRlc3RzXFdlYktpdDJc
Q29va2llTWFuYWdlci5jcHAiCiAJCQkJCT4KZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RS
dW5uZXIvVGVzdENvbnRyb2xsZXIuY3BwIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29u
dHJvbGxlci5jcHAKaW5kZXggMmViNjM1Yi4uMDFmZmI0YSAxMDA2NDQKLS0tIGEvVG9vbHMvV2Vi
S2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5jcHAKKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1
bm5lci9UZXN0Q29udHJvbGxlci5jcHAKQEAgLTIyNCw2ICsyMjQsNyBAQCBXS1BhZ2VSZWYgVGVz
dENvbnRyb2xsZXI6OmNyZWF0ZU90aGVyUGFnZShXS1BhZ2VSZWYgb2xkUGFnZSwgV0tVUkxSZXF1
ZXN0UmVmLCBXSwogICAgICAgICAwLCAvLyB1bmF2YWlsYWJsZVBsdWdpbkJ1dHRvbkNsaWNrZWQK
ICAgICAgICAgMCwgLy8gc2hvd0NvbG9yUGlja2VyCiAgICAgICAgIDAsIC8vIGhpZGVDb2xvclBp
Y2tlcgorICAgICAgICAwLCAvLyBhZGRNZXNzYWdlVG9Db25zb2xlCiAgICAgfTsKICAgICBXS1Bh
Z2VTZXRQYWdlVUlDbGllbnQobmV3UGFnZSwgJm90aGVyUGFnZVVJQ2xpZW50KTsKIApAQCAtNDE2
LDYgKzQxNyw3IEBAIHZvaWQgVGVzdENvbnRyb2xsZXI6OmNyZWF0ZVdlYlZpZXdXaXRoT3B0aW9u
cyhXS0RpY3Rpb25hcnlSZWYgb3B0aW9ucykKICAgICAgICAgMCwgLy8gdW5hdmFpbGFibGVQbHVn
aW5CdXR0b25DbGlja2VkCiAgICAgICAgIDAsIC8vIHNob3dDb2xvclBpY2tlcgogICAgICAgICAw
LCAvLyBoaWRlQ29sb3JQaWNrZXIKKyAgICAgICAgMCwgLy8gYWRkTWVzc2FnZVRvQ29uc29sZQog
ICAgIH07CiAgICAgV0tQYWdlU2V0UGFnZVVJQ2xpZW50KG1fbWFpbldlYlZpZXctPnBhZ2UoKSwg
JnBhZ2VVSUNsaWVudCk7CiAK
</data>
<flag name="commit-queue"
          id="188634"
          type_id="3"
          status="-"
          setter="buildbot"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>174119</attachid>
            <date>2012-11-14 02:45:54 -0800</date>
            <delta_ts>2012-11-21 03:18:43 -0800</delta_ts>
            <desc>Updated patch</desc>
            <filename>wk2-console-messages.diff</filename>
            <type>text/plain</type>
            <size>36793</size>
            <attacher name="Carlos Garcia Campos">cgarcia</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0No
YW5nZUxvZwppbmRleCBkZmJjZjU2Li5kNjRlNmIxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNDIg
QEAKKzIwMTItMTEtMTQgIENhcmxvcyBHYXJjaWEgQ2FtcG9zICA8Y2dhcmNpYUBpZ2FsaWEuY29t
PgorCisgICAgICAgIFtXSzJdIEltcGxlbWVudCBXZWJDaHJvbWVDbGllbnQ6OmFkZE1lc3NhZ2VU
b0NvbnNvbGUoKQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9Nzk0ODIKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICAqIENNYWtlTGlzdHMudHh0OiBBZGQgbmV3IGZpbGVzIHRvIGNvbXBpbGF0aW9uLgorICAgICAg
ICAqIEdOVW1ha2VmaWxlLmxpc3QuYW06IERpdHRvLgorICAgICAgICAqIFNoYXJlZC9BUEkvYy9X
S0NvbnNvbGVUeXBlcy5oOiBBZGRlZC4KKyAgICAgICAgKiBTaGFyZWQvQVBJL2MvV0tTaGFyZWRB
UElDYXN0Lmg6CisgICAgICAgIChXZWJLaXQ6OnRvQVBJKTogQ29udmVydCBXZWJDb3JlIGNvbnNv
bGUgbWVzc2FnZSB0eXBlcyB0byBXZWJLaXQyCisgICAgICAgIHR5cGVzLgorICAgICAgICAqIFNo
YXJlZC9BUElDbGllbnRUcmFpdHMuY3BwOgorICAgICAgICAoV2ViS2l0KTogQWRkIG9mZnNldCBm
b3IgaW50ZXJmYWNlIHZlcnNpb24gMy4KKyAgICAgICAgKiBTaGFyZWQvQVBJQ2xpZW50VHJhaXRz
Lmg6CisgICAgICAgICogU2hhcmVkL0NvbnNvbGVNZXNzYWdlLmNwcDogQWRkZWQuCisgICAgICAg
IChXZWJLaXQ6OkNvbnNvbGVNZXNzYWdlOjpDb25zb2xlTWVzc2FnZSk6CisgICAgICAgIChXZWJL
aXQ6OkNvbnNvbGVNZXNzYWdlOjplbmNvZGUpOgorICAgICAgICAoV2ViS2l0OjpDb25zb2xlTWVz
c2FnZTo6ZGVjb2RlKToKKyAgICAgICAgKiBTaGFyZWQvQ29uc29sZU1lc3NhZ2UuaDogQWRkZWQu
CisgICAgICAgICogVGFyZ2V0LnByaToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0MvV0tQYWdl
Lmg6CisgICAgICAgICogVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHA6CisgICAgICAgIChXZWJL
aXQ6OldlYlBhZ2VQcm94eTo6YWRkTWVzc2FnZVRvQ29uc29sZSk6IE1ldGhvZCB0byBoYW5kbGUK
KyAgICAgICAgQWRkTWVzc2FnZVRvQ29uc29sZSBtZXNzYWdlIHRoYXQganVzdCBjYWxscworICAg
ICAgICBXZWJVSUNsaWVudDo6YWRkTWVzc2FnZVRvQ29uc29sZSgpLgorICAgICAgICAqIFVJUHJv
Y2Vzcy9XZWJQYWdlUHJveHkuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5Lm1l
c3NhZ2VzLmluOiBBZGQgbmV3IG1lc3NhZ2UKKyAgICAgICAgQWRkTWVzc2FnZVRvQ29uc29sZS4K
KyAgICAgICAgKiBVSVByb2Nlc3MvV2ViVUlDbGllbnQuY3BwOgorICAgICAgICAoV2ViS2l0OjpX
ZWJVSUNsaWVudDo6YWRkTWVzc2FnZVRvQ29uc29sZSk6IENhbGwKKyAgICAgICAgYWRkTWVzc2Fn
ZVRvQ29uc29sZSBjYWxsYmFjayBpZiBwcmVzZW50LgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJV
SUNsaWVudC5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21l
Q2xpZW50LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViQ2hyb21lQ2xpZW50OjphZGRNZXNzYWdl
VG9Db25zb2xlKTogU2VuZAorICAgICAgICBBZGRNZXNzYWdlVG9Db25zb2xlIG1lc3NhZ2UgdG8g
dGhlIFVJIHByb2Nlc3MuCisgICAgICAgICogd2luL1dlYktpdDIudmNwcm9qOiBBZGQgbmV3IGZp
bGVzIHRvIGNvbXBpbGF0aW9uLgorCiAyMDEyLTExLTEyICBTYW0gV2VpbmlnICA8c2FtQHdlYmtp
dC5vcmc+CiAKICAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzEyNDQ1MTc2PgpkaWZmIC0tZ2l0IGEv
VG9vbHMvQ2hhbmdlTG9nIGIvVG9vbHMvQ2hhbmdlTG9nCmluZGV4IDhkNTJhOGMuLmZlYWUyM2Qg
MTAwNjQ0Ci0tLSBhL1Rvb2xzL0NoYW5nZUxvZworKysgYi9Ub29scy9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwzMiBAQAorMjAxMi0xMS0xNCAgQ2FybG9zIEdhcmNpYSBDYW1wb3MgIDxjZ2FyY2lhQGln
YWxpYS5jb20+CisKKyAgICAgICAgW1dLMl0gSW1wbGVtZW50IFdlYkNocm9tZUNsaWVudDo6YWRk
TWVzc2FnZVRvQ29uc29sZSgpCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD03OTQ4MgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgICogTWluaUJyb3dzZXIvbWFjL1dLMkJyb3dzZXJXaW5kb3dDb250cm9sbGVyLm06
CisgICAgICAgICgtW1dLMkJyb3dzZXJXaW5kb3dDb250cm9sbGVyIGF3YWtlRnJvbU5pYl0pOiBB
ZGQgZW1wdHkKKyAgICAgICAgYWRkTWVzc2FnZVRvQ29uc29sZSBjYWxsYmFjayB0byBVSSBjbGll
bnQgc3RydWN0LgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvR05VbWFrZWZpbGUuYW06IEFkZCBD
b25zb2xlTWVzc2FnZSB1bml0IHRlc3RzLgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMv
V2ViS2l0Mi9Db25zb2xlTWVzc2FnZS5jcHA6IEFkZGVkLgorICAgICAgICAoVGVzdFdlYktpdEFQ
SSk6CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpDb25zb2xlTWVzc2FnZTo6Q29uc29sZU1lc3Nh
Z2UpOgorICAgICAgICAoQ29uc29sZU1lc3NhZ2UpOgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6
Q29uc29sZU1lc3NhZ2U6OmFzc2VydEVxdWFsKToKKyAgICAgICAgKFdlYktpdDJDb25zb2xlTWVz
c2FnZVRlc3QpOgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6V2ViS2l0MkNvbnNvbGVNZXNzYWdl
VGVzdDo6V2ViS2l0MkNvbnNvbGVNZXNzYWdlVGVzdCk6CisgICAgICAgIChUZXN0V2ViS2l0QVBJ
OjpXZWJLaXQyQ29uc29sZU1lc3NhZ2VUZXN0OjphZGRNZXNzYWdlVG9Db25zb2xlKToKKyAgICAg
ICAgKFRlc3RXZWJLaXRBUEk6OldlYktpdDJDb25zb2xlTWVzc2FnZVRlc3Q6OnNldFVJQ2xpZW50
KToKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OldlYktpdDJDb25zb2xlTWVzc2FnZVRlc3Q6OlNl
dFVwKToKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OldlYktpdDJDb25zb2xlTWVzc2FnZVRlc3Q6
OmxvYWRIVE1MQW5kUnVuVW50aWxDb25zb2xlTWVzc2FnZVJlY2VpdmVkKToKKyAgICAgICAgKFRl
c3RXZWJLaXRBUEk6OlRFU1RfRik6CisgICAgICAgICogVGVzdFdlYktpdEFQSS93aW4vVGVzdFdl
YktpdEFQSS52Y3Byb2o6IEFkZCBDb25zb2xlTWVzc2FnZSB1bml0IHRlc3RzLgorICAgICAgICAq
IFdlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuY3BwOgorICAgICAgICAoV1RSOjpUZXN0
Q29udHJvbGxlcjo6Y3JlYXRlT3RoZXJQYWdlKTogQWRkIGVtcHR5CisgICAgICAgIGFkZE1lc3Nh
Z2VUb0NvbnNvbGUgY2FsbGJhY2sgdG8gVUkgY2xpZW50IHN0cnVjdC4KKyAgICAgICAgKFdUUjo6
VGVzdENvbnRyb2xsZXI6OmNyZWF0ZVdlYlZpZXdXaXRoT3B0aW9ucyk6IERpdHRvLgorCiAyMDEy
LTExLTEyICBEaXJrIFByYW5rZSAgPGRwcmFua2VAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIHdl
YmtpdHB5OiBjbGVhbiB1cCBsaW50IGVycm9ycywgcGFydCAxCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0Mi9DTWFrZUxpc3RzLnR4dCBiL1NvdXJjZS9XZWJLaXQyL0NNYWtlTGlzdHMudHh0Cmlu
ZGV4IDZlNDZmNDguLjU1MGUwM2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL0NNYWtlTGlz
dHMudHh0CisrKyBiL1NvdXJjZS9XZWJLaXQyL0NNYWtlTGlzdHMudHh0CkBAIC0xMzgsNiArMTM4
LDcgQEAgU0VUKFdlYktpdDJfU09VUkNFUwogICAgIFNoYXJlZC9BUElPYmplY3QuY3BwCiAgICAg
U2hhcmVkL0NoaWxkUHJvY2Vzcy5jcHAKICAgICBTaGFyZWQvQ29ubmVjdGlvblN0YWNrLmNwcAor
ICAgIFNoYXJlZC9Db25zb2xlTWVzc2FnZS5jcHAKICAgICBTaGFyZWQvRGljdGlvbmFyeVBvcHVw
SW5mby5jcHAKICAgICBTaGFyZWQvRWRpdG9yU3RhdGUuY3BwCiAgICAgU2hhcmVkL0ZvbnRJbmZv
LmNwcApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvR05VbWFrZWZpbGUubGlzdC5hbSBiL1Nv
dXJjZS9XZWJLaXQyL0dOVW1ha2VmaWxlLmxpc3QuYW0KaW5kZXggOWQ0N2I3Ni4uMmVlZmQwZSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvR05VbWFrZWZpbGUubGlzdC5hbQorKysgYi9Tb3Vy
Y2UvV2ViS2l0Mi9HTlVtYWtlZmlsZS5saXN0LmFtCkBAIC02LDYgKzYsNyBAQCB3ZWJraXQyX2hf
YXBpICs9IFwKIAkkKFdlYktpdDIpL1NoYXJlZC9BUEkvYy9XS0Jhc2UuaCBcCiAJJChXZWJLaXQy
KS9TaGFyZWQvQVBJL2MvV0tDZXJ0aWZpY2F0ZUluZm8uaCBcCiAJJChXZWJLaXQyKS9TaGFyZWQv
QVBJL2MvV0tDb25uZWN0aW9uUmVmLmggXAorCSQoV2ViS2l0MikvU2hhcmVkL0FQSS9jL1dLQ29u
c29sZVR5cGVzLmggXAogCSQoV2ViS2l0MikvU2hhcmVkL0FQSS9jL1dLQ29udGV4dE1lbnVJdGVt
LmggXAogCSQoV2ViS2l0MikvU2hhcmVkL0FQSS9jL1dLQ29udGV4dE1lbnVJdGVtVHlwZXMuaCBc
CiAJJChXZWJLaXQyKS9TaGFyZWQvQVBJL2MvV0tEYXRhLmggXApAQCAtMzE0LDYgKzMxNSw3IEBA
IHdlYmtpdDJfc291cmNlcyArPSBcCiAJU291cmNlL1dlYktpdDIvU2hhcmVkL0FQSS9jL1dLQ2Vy
dGlmaWNhdGVJbmZvLmggXAogCVNvdXJjZS9XZWJLaXQyL1NoYXJlZC9BUEkvYy9XS0Nvbm5lY3Rp
b25SZWYuY3BwIFwKIAlTb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQVBJL2MvV0tDb25uZWN0aW9uUmVm
LmggXAorCVNvdXJjZS9XZWJLaXQyL1NoYXJlZC9BUEkvYy9XS0NvbnNvbGVUeXBlcy5oIFwKIAlT
b3VyY2UvV2ViS2l0Mi9TaGFyZWQvQVBJL2MvV0tDb250ZXh0TWVudUl0ZW0uY3BwIFwKIAlTb3Vy
Y2UvV2ViS2l0Mi9TaGFyZWQvQVBJL2MvV0tDb250ZXh0TWVudUl0ZW0uaCBcCiAJU291cmNlL1dl
YktpdDIvU2hhcmVkL0FQSS9jL1dLQ29udGV4dE1lbnVJdGVtVHlwZXMuaCBcCkBAIC0zNzAsNiAr
MzcyLDggQEAgd2Via2l0Ml9zb3VyY2VzICs9IFwKIAlTb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQ2hp
bGRQcm9jZXNzLmNwcCBcCiAJU291cmNlL1dlYktpdDIvU2hhcmVkL0NoaWxkUHJvY2Vzcy5oIFwK
IAlTb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQ29tbWFuZExpbmUuaCBcCisJU291cmNlL1dlYktpdDIv
U2hhcmVkL0NvbnNvbGVNZXNzYWdlLmNwcCBcCisJU291cmNlL1dlYktpdDIvU2hhcmVkL0NvbnNv
bGVNZXNzYWdlLmggXAogCVNvdXJjZS9XZWJLaXQyL1NoYXJlZC9Db25uZWN0aW9uU3RhY2suY3Bw
IFwKIAlTb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQ29ubmVjdGlvblN0YWNrLmggXAogCVNvdXJjZS9X
ZWJLaXQyL1NoYXJlZC9Db3JlSVBDU3VwcG9ydC9XZWJDb25uZWN0aW9uTWVzc2FnZUtpbmRzLmgg
XApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL0FQSS9jL1dLQ29uc29sZVR5cGVz
LmggYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQVBJL2MvV0tDb25zb2xlVHlwZXMuaApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mNWZmODI0Ci0tLSAvZGV2L251bGwKKysrIGIv
U291cmNlL1dlYktpdDIvU2hhcmVkL0FQSS9jL1dLQ29uc29sZVR5cGVzLmgKQEAgLTAsMCArMSw1
NiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMiBJZ2FsaWEgUy5MLgorICoKKyAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9m
IHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4K
KyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFu
ZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoK
KyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRS
SUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJ
RVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFO
VElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICog
UFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJ
VFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJ
TkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFH
RVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VC
U1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7
IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkg
VEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFC
SUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFS
SVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElG
IEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisj
aWZuZGVmIFdLQ29uc29sZVR5cGVzX2gKKyNkZWZpbmUgV0tDb25zb2xlVHlwZXNfaAorCisjaWZk
ZWYgX19jcGx1c3BsdXMKK2V4dGVybiAiQyIgeworI2VuZGlmCisKK2VudW0geworICAgIGtXS01l
c3NhZ2VTb3VyY2VIVE1MLAorICAgIGtXS01lc3NhZ2VTb3VyY2VYTUwsCisgICAga1dLTWVzc2Fn
ZVNvdXJjZUpTLAorICAgIGtXS01lc3NhZ2VTb3VyY2VOZXR3b3JrLAorICAgIGtXS01lc3NhZ2VT
b3VyY2VDb25zb2xlQVBJLAorICAgIGtXS01lc3NhZ2VTb3VyY2VPdGhlcgorfTsKK3R5cGVkZWYg
dWludDMyX3QgV0tNZXNzYWdlU291cmNlVHlwZTsKKworZW51bSB7CisgICAga1dLTWVzc2FnZUxl
dmVsVGlwLAorICAgIGtXS01lc3NhZ2VMZXZlbExvZywKKyAgICBrV0tNZXNzYWdlTGV2ZWxXYXJu
aW5nLAorICAgIGtXS01lc3NhZ2VMZXZlbEVycm9yLAorICAgIGtXS01lc3NhZ2VMZXZlbERlYnVn
Cit9OwordHlwZWRlZiB1aW50MzJfdCBXS01lc3NhZ2VMZXZlbFR5cGU7CisKKyNpZmRlZiBfX2Nw
bHVzcGx1cworfQorI2VuZGlmCisKKyNlbmRpZiAvKiBXS0NvbnNvbGVUeXBlc19oICovCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQVBJL2MvV0tTaGFyZWRBUElDYXN0LmggYi9T
b3VyY2UvV2ViS2l0Mi9TaGFyZWQvQVBJL2MvV0tTaGFyZWRBUElDYXN0LmgKaW5kZXggMzgwY2Qy
NS4uY2QyMjA4MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvU2hhcmVkL0FQSS9jL1dLU2hh
cmVkQVBJQ2FzdC5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9BUEkvYy9XS1NoYXJlZEFQ
SUNhc3QuaApAQCAtMjksNiArMjksNyBAQAogI2luY2x1ZGUgIkltYWdlT3B0aW9ucy5oIgogI2lu
Y2x1ZGUgIlNhbWVEb2N1bWVudE5hdmlnYXRpb25UeXBlLmgiCiAjaW5jbHVkZSAiV0tCYXNlLmgi
CisjaW5jbHVkZSAiV0tDb25zb2xlVHlwZXMuaCIKICNpbmNsdWRlICJXS0NvbnRleHRNZW51SXRl
bVR5cGVzLmgiCiAjaW5jbHVkZSAiV0tFdmVudC5oIgogI2luY2x1ZGUgIldLRmluZE9wdGlvbnMu
aCIKQEAgLTQ0LDYgKzQ1LDcgQEAKICNpbmNsdWRlICJXZWJVUkwuaCIKICNpbmNsdWRlICJXZWJV
UkxSZXF1ZXN0LmgiCiAjaW5jbHVkZSAiV2ViVVJMUmVzcG9uc2UuaCIKKyNpbmNsdWRlIDxXZWJD
b3JlL0NvbnNvbGVUeXBlcy5oPgogI2luY2x1ZGUgPFdlYkNvcmUvQ29udGV4dE1lbnVJdGVtLmg+
CiAjaW5jbHVkZSA8V2ViQ29yZS9GbG9hdFJlY3QuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0ZyYW1l
TG9hZGVyVHlwZXMuaD4KQEAgLTg1MCw2ICs4NTIsNDYgQEAgaW5saW5lIFdlYkNvcmU6OlVzZXJD
b250ZW50SW5qZWN0ZWRGcmFtZXMgdG9Vc2VyQ29udGVudEluamVjdGVkRnJhbWVzKFdLVXNlckNv
bnQKICAgICByZXR1cm4gV2ViQ29yZTo6SW5qZWN0SW5BbGxGcmFtZXM7CiB9CiAKK2lubGluZSBX
S01lc3NhZ2VTb3VyY2VUeXBlIHRvQVBJKFdlYkNvcmU6Ok1lc3NhZ2VTb3VyY2Ugc291cmNlKQor
eworICAgIHN3aXRjaCAoc291cmNlKSB7CisgICAgY2FzZSBXZWJDb3JlOjpIVE1MTWVzc2FnZVNv
dXJjZToKKyAgICAgICAgcmV0dXJuIGtXS01lc3NhZ2VTb3VyY2VIVE1MOworICAgIGNhc2UgV2Vi
Q29yZTo6WE1MTWVzc2FnZVNvdXJjZToKKyAgICAgICAgcmV0dXJuIGtXS01lc3NhZ2VTb3VyY2VY
TUw7CisgICAgY2FzZSBXZWJDb3JlOjpKU01lc3NhZ2VTb3VyY2U6CisgICAgICAgIHJldHVybiBr
V0tNZXNzYWdlU291cmNlSlM7CisgICAgY2FzZSBXZWJDb3JlOjpOZXR3b3JrTWVzc2FnZVNvdXJj
ZToKKyAgICAgICAgcmV0dXJuIGtXS01lc3NhZ2VTb3VyY2VOZXR3b3JrOworICAgIGNhc2UgV2Vi
Q29yZTo6Q29uc29sZUFQSU1lc3NhZ2VTb3VyY2U6CisgICAgICAgIHJldHVybiBrV0tNZXNzYWdl
U291cmNlQ29uc29sZUFQSTsKKyAgICBjYXNlIFdlYkNvcmU6Ok90aGVyTWVzc2FnZVNvdXJjZToK
KyAgICAgICAgcmV0dXJuIGtXS01lc3NhZ2VTb3VyY2VPdGhlcjsKKyAgICBkZWZhdWx0OgorICAg
ICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICAgICAgcmV0dXJuIGtXS01lc3NhZ2VTb3Vy
Y2VPdGhlcjsKKyAgICB9Cit9CisKK2lubGluZSBXS01lc3NhZ2VMZXZlbFR5cGUgdG9BUEkoV2Vi
Q29yZTo6TWVzc2FnZUxldmVsIGxldmVsKQoreworICAgIHN3aXRjaCAobGV2ZWwpIHsKKyAgICBj
YXNlIFdlYkNvcmU6OlRpcE1lc3NhZ2VMZXZlbDoKKyAgICAgICAgcmV0dXJuIGtXS01lc3NhZ2VM
ZXZlbFRpcDsKKyAgICBjYXNlIFdlYkNvcmU6OkxvZ01lc3NhZ2VMZXZlbDoKKyAgICAgICAgcmV0
dXJuIGtXS01lc3NhZ2VMZXZlbExvZzsKKyAgICBjYXNlIFdlYkNvcmU6Oldhcm5pbmdNZXNzYWdl
TGV2ZWw6CisgICAgICAgIHJldHVybiBrV0tNZXNzYWdlTGV2ZWxXYXJuaW5nOworICAgIGNhc2Ug
V2ViQ29yZTo6RXJyb3JNZXNzYWdlTGV2ZWw6CisgICAgICAgIHJldHVybiBrV0tNZXNzYWdlTGV2
ZWxFcnJvcjsKKyAgICBjYXNlIFdlYkNvcmU6OkRlYnVnTWVzc2FnZUxldmVsOgorICAgICAgICBy
ZXR1cm4ga1dLTWVzc2FnZUxldmVsRGVidWc7CisgICAgZGVmYXVsdDoKKyAgICAgICAgQVNTRVJU
X05PVF9SRUFDSEVEKCk7CisgICAgICAgIHJldHVybiBrV0tNZXNzYWdlTGV2ZWxMb2c7CisgICAg
fQorfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKIAogI2VuZGlmIC8vIFdLU2hhcmVkQVBJQ2Fz
dF9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQVBJQ2xpZW50VHJhaXRzLmNw
cCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9BUElDbGllbnRUcmFpdHMuY3BwCmluZGV4IGViN2E1
MWIuLmFkZDIzMTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9BUElDbGllbnRU
cmFpdHMuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9BUElDbGllbnRUcmFpdHMuY3Bw
CkBAIC02OSw2ICs2OSw3IEBAIGNvbnN0IHNpemVfdCBBUElDbGllbnRUcmFpdHM8V0tQYWdlTG9h
ZGVyQ2xpZW50Pjo6aW50ZXJmYWNlU2l6ZXNCeVZlcnNpb25bXSA9IHsKIGNvbnN0IHNpemVfdCBB
UElDbGllbnRUcmFpdHM8V0tQYWdlVUlDbGllbnQ+OjppbnRlcmZhY2VTaXplc0J5VmVyc2lvbltd
ID0gewogICAgIG9mZnNldG9mKFdLUGFnZVVJQ2xpZW50LCBjcmVhdGVOZXdQYWdlKSwKICAgICBv
ZmZzZXRvZihXS1BhZ2VVSUNsaWVudCwgc2hvd0NvbG9yUGlja2VyKSwKKyAgICBvZmZzZXRvZihX
S1BhZ2VVSUNsaWVudCwgYWRkTWVzc2FnZVRvQ29uc29sZSksCiAgICAgc2l6ZW9mKFdLUGFnZVVJ
Q2xpZW50KQogfTsKICAgICAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9BUElD
bGllbnRUcmFpdHMuaCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9BUElDbGllbnRUcmFpdHMuaApp
bmRleCA0YWQ0ZmIxLi5mZmRmY2I0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQv
QVBJQ2xpZW50VHJhaXRzLmgKKysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL0FQSUNsaWVudFRy
YWl0cy5oCkBAIC02OCw3ICs2OCw3IEBAIHRlbXBsYXRlPD4gc3RydWN0IEFQSUNsaWVudFRyYWl0
czxXS1BhZ2VMb2FkZXJDbGllbnQ+IHsKIH07CiAKIHRlbXBsYXRlPD4gc3RydWN0IEFQSUNsaWVu
dFRyYWl0czxXS1BhZ2VVSUNsaWVudD4gewotICAgIHN0YXRpYyBjb25zdCBzaXplX3QgaW50ZXJm
YWNlU2l6ZXNCeVZlcnNpb25bM107CisgICAgc3RhdGljIGNvbnN0IHNpemVfdCBpbnRlcmZhY2VT
aXplc0J5VmVyc2lvbls0XTsKIH07CiAKIHRlbXBsYXRlPD4gc3RydWN0IEFQSUNsaWVudFRyYWl0
czxXS0J1bmRsZVBhZ2VGb3JtQ2xpZW50PiB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9T
aGFyZWQvQ29uc29sZU1lc3NhZ2UuY3BwIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL0NvbnNvbGVN
ZXNzYWdlLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5hMmYzNmViOAot
LS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9Db25zb2xlTWVzc2FnZS5j
cHAKQEAgLTAsMCArMSw3MCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMiBJZ2FsaWEgUy5M
LgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVk
aXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0
IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBk
b2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlz
dHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5D
LiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJ
TVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhF
IElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEg
UEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwg
QVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJF
Q1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05T
RVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJF
TUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERB
VEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FV
U0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJB
Q1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9U
SEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNP
RlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERB
TUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiQ29uc29sZU1lc3Nh
Z2UuaCIKKworI2luY2x1ZGUgIldlYkNvcmVBcmd1bWVudENvZGVycy5oIgorCituYW1lc3BhY2Ug
V2ViS2l0IHsKKworQ29uc29sZU1lc3NhZ2U6OkNvbnNvbGVNZXNzYWdlKCkKKyAgICA6IHNvdXJj
ZShXZWJDb3JlOjpPdGhlck1lc3NhZ2VTb3VyY2UpCisgICAgLCBsZXZlbChXZWJDb3JlOjpMb2dN
ZXNzYWdlTGV2ZWwpCisgICAgLCBsaW5lTnVtYmVyKDApCit7Cit9CisKK0NvbnNvbGVNZXNzYWdl
OjpDb25zb2xlTWVzc2FnZShXZWJDb3JlOjpNZXNzYWdlU291cmNlIHNvdXJjZSwgV2ViQ29yZTo6
TWVzc2FnZUxldmVsIGxldmVsLCBTdHJpbmcgbWVzc2FnZSwgdWludDMyX3QgbGluZU51bWJlciwg
U3RyaW5nIHNvdXJjZUlEKQorICAgIDogc291cmNlKHNvdXJjZSkKKyAgICAsIGxldmVsKGxldmVs
KQorICAgICwgbWVzc2FnZShtZXNzYWdlKQorICAgICwgbGluZU51bWJlcihsaW5lTnVtYmVyKQor
ICAgICwgc291cmNlSUQoc291cmNlSUQpCit7Cit9CisKK3ZvaWQgQ29uc29sZU1lc3NhZ2U6OmVu
Y29kZShDb3JlSVBDOjpBcmd1bWVudEVuY29kZXImIGVuY29kZXIpIGNvbnN0Cit7CisgICAgZW5j
b2Rlci5lbmNvZGVFbnVtKHNvdXJjZSk7CisgICAgZW5jb2Rlci5lbmNvZGVFbnVtKGxldmVsKTsK
KyAgICBlbmNvZGVyIDw8IG1lc3NhZ2U7CisgICAgZW5jb2RlciA8PCBsaW5lTnVtYmVyOworICAg
IGVuY29kZXIgPDwgc291cmNlSUQ7Cit9CisKK2Jvb2wgQ29uc29sZU1lc3NhZ2U6OmRlY29kZShD
b3JlSVBDOjpBcmd1bWVudERlY29kZXIqIGRlY29kZXIsIENvbnNvbGVNZXNzYWdlJiBjb25zb2xl
TWVzc2FnZSkKK3sKKyAgICBpZiAoIWRlY29kZXItPmRlY29kZUVudW0oY29uc29sZU1lc3NhZ2Uu
c291cmNlKQorICAgICAgICB8fCAhZGVjb2Rlci0+ZGVjb2RlRW51bShjb25zb2xlTWVzc2FnZS5s
ZXZlbCkKKyAgICAgICAgfHwgIWRlY29kZXItPmRlY29kZShjb25zb2xlTWVzc2FnZS5tZXNzYWdl
KQorICAgICAgICB8fCAhZGVjb2Rlci0+ZGVjb2RlKGNvbnNvbGVNZXNzYWdlLmxpbmVOdW1iZXIp
CisgICAgICAgIHx8ICFkZWNvZGVyLT5kZWNvZGUoY29uc29sZU1lc3NhZ2Uuc291cmNlSUQpKQor
ICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICByZXR1cm4gdHJ1ZTsKK30KKworfSAvLyBuYW1l
c3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQ29uc29sZU1l
c3NhZ2UuaCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9Db25zb2xlTWVzc2FnZS5oCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjZmMDEzZTEKLS0tIC9kZXYvbnVsbAorKysgYi9T
b3VyY2UvV2ViS2l0Mi9TaGFyZWQvQ29uc29sZU1lc3NhZ2UuaApAQCAtMCwwICsxLDU1IEBACisv
KgorICogQ29weXJpZ2h0IChDKSAyMDEyIElnYWxpYSBTLkwuCisgKgorICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Cisg
KiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNl
IGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4g
UmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90
aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJ
UyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JT
IGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9G
IE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NF
IEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05U
UklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5U
QUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRF
IEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVT
SU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkg
T0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwg
T1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJ
TiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNF
RCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5kZWYg
Q29uc29sZU1lc3NhZ2VfaAorI2RlZmluZSBDb25zb2xlTWVzc2FnZV9oCisKKyNpbmNsdWRlIDxX
ZWJDb3JlL0NvbnNvbGVUeXBlcy5oPgorI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgor
CituYW1lc3BhY2UgQ29yZUlQQyB7CitjbGFzcyBBcmd1bWVudERlY29kZXI7CitjbGFzcyBBcmd1
bWVudEVuY29kZXI7Cit9CisKK25hbWVzcGFjZSBXZWJLaXQgeworCitzdHJ1Y3QgQ29uc29sZU1l
c3NhZ2UgeworICAgIENvbnNvbGVNZXNzYWdlKCk7CisgICAgQ29uc29sZU1lc3NhZ2UoV2ViQ29y
ZTo6TWVzc2FnZVNvdXJjZSwgV2ViQ29yZTo6TWVzc2FnZUxldmVsLCBTdHJpbmcgbWVzc2FnZSwg
dWludDMyX3QgbGluZU51bWJlciwgU3RyaW5nIHNvdXJjZUlEKTsKKworICAgIFdlYkNvcmU6Ok1l
c3NhZ2VTb3VyY2Ugc291cmNlOworICAgIFdlYkNvcmU6Ok1lc3NhZ2VMZXZlbCBsZXZlbDsKKyAg
ICBTdHJpbmcgbWVzc2FnZTsKKyAgICB1aW50MzJfdCBsaW5lTnVtYmVyOworICAgIFN0cmluZyBz
b3VyY2VJRDsKKworICAgIHZvaWQgZW5jb2RlKENvcmVJUEM6OkFyZ3VtZW50RW5jb2RlciYpIGNv
bnN0OworICAgIHN0YXRpYyBib29sIGRlY29kZShDb3JlSVBDOjpBcmd1bWVudERlY29kZXIqLCBD
b25zb2xlTWVzc2FnZSYpOworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CisKKyNlbmRpZiAv
LyBDb25zb2xlTWVzc2FnZV9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9UYXJnZXQucHJp
IGIvU291cmNlL1dlYktpdDIvVGFyZ2V0LnByaQppbmRleCBkYWM5YjlhLi4zOThmMjk5OSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVGFyZ2V0LnByaQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9U
YXJnZXQucHJpCkBAIC00NSw2ICs0NSw3IEBAIEhFQURFUlMgKz0gXAogICAgIFNoYXJlZC9BUEkv
Yy9XS0Jhc2UuaCBcCiAgICAgU2hhcmVkL0FQSS9jL1dLQ2VydGlmaWNhdGVJbmZvLmggXAogICAg
IFNoYXJlZC9BUEkvYy9XS0Nvbm5lY3Rpb25SZWYuaCBcCisgICAgU2hhcmVkL0FQSS9jL1dLQ29u
c29sZVR5cGVzLmggXAogICAgIFNoYXJlZC9BUEkvYy9XS0NvbnRleHRNZW51SXRlbS5oIFwKICAg
ICBTaGFyZWQvQVBJL2MvV0tDb250ZXh0TWVudUl0ZW1UeXBlcy5oIFwKICAgICBTaGFyZWQvQVBJ
L2MvV0tEaWN0aW9uYXJ5LmggXApAQCAtNzQsNiArNzUsNyBAQCBIRUFERVJTICs9IFwKICAgICBT
aGFyZWQvU2hhcmVhYmxlU3VyZmFjZS5oIFwKICAgICBTaGFyZWQvQ2FjaGVNb2RlbC5oIFwKICAg
ICBTaGFyZWQvQ2hpbGRQcm9jZXNzLmggXAorICAgIFNoYXJlZC9Db25zb2xlTWVzc2FnZS5oIFwK
ICAgICBTaGFyZWQvQ29ubmVjdGlvblN0YWNrLmggXAogICAgIFNoYXJlZC9EaWN0aW9uYXJ5UG9w
dXBJbmZvLmggXAogICAgIFNoYXJlZC9FZGl0b3JTdGF0ZS5oIFwKQEAgLTQ0OSw2ICs0NTEsNyBA
QCBTT1VSQ0VTICs9IFwKICAgICBTaGFyZWQvUGx1Z2lucy9QbHVnaW5Nb2R1bGVJbmZvLmNwcCBc
CiAgICAgU2hhcmVkL1BsdWdpbnMvUGx1Z2luUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5jcHAg
XAogICAgIFNoYXJlZC9DaGlsZFByb2Nlc3MuY3BwIFwKKyAgICBTaGFyZWQvQ29uc29sZU1lc3Nh
Z2UuY3BwIFwKICAgICBTaGFyZWQvQ29ubmVjdGlvblN0YWNrLmNwcCBcCiAgICAgU2hhcmVkL0Rp
Y3Rpb25hcnlQb3B1cEluZm8uY3BwIFwKICAgICBTaGFyZWQvRWRpdG9yU3RhdGUuY3BwIFwKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS1BhZ2UuaCBiL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS1BhZ2UuaAppbmRleCA0YTI1YmI2Li5lZDcyY2Fi
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tQYWdlLmgKKysr
IGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLUGFnZS5oCkBAIC0yNyw2ICsyNyw3
IEBACiAjZGVmaW5lIFdLUGFnZV9oCiAKICNpbmNsdWRlIDxXZWJLaXQyL1dLQmFzZS5oPgorI2lu
Y2x1ZGUgPFdlYktpdDIvV0tDb25zb2xlVHlwZXMuaD4KICNpbmNsdWRlIDxXZWJLaXQyL1dLRXJy
b3IuaD4KICNpbmNsdWRlIDxXZWJLaXQyL1dLRXZlbnQuaD4KICNpbmNsdWRlIDxXZWJLaXQyL1dL
RmluZE9wdGlvbnMuaD4KQEAgLTIzMSw2ICsyMzIsNyBAQCB0eXBlZGVmIHZvaWQgKCpXS1BhZ2VE
ZWNpZGVQb2xpY3lGb3JOb3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdENhbGxiYWNrKShXS1Bh
ZwogdHlwZWRlZiB2b2lkICgqV0tQYWdlVW5hdmFpbGFibGVQbHVnaW5CdXR0b25DbGlja2VkQ2Fs
bGJhY2spKFdLUGFnZVJlZiBwYWdlLCBXS1BsdWdpblVuYXZhaWxhYmlsaXR5UmVhc29uIHBsdWdp
blVuYXZhaWxhYmlsaXR5UmVhc29uLCBXS1N0cmluZ1JlZiBtaW1lVHlwZSwgV0tTdHJpbmdSZWYg
dXJsLCBXS1N0cmluZ1JlZiBwbHVnaW5zUGFnZVVSTCwgY29uc3Qgdm9pZCogY2xpZW50SW5mbyk7
CiB0eXBlZGVmIHZvaWQgKCpXS1BhZ2VTaG93Q29sb3JQaWNrZXJDYWxsYmFjaykoV0tQYWdlUmVm
IHBhZ2UsIFdLU3RyaW5nUmVmIGluaXRpYWxDb2xvciwgV0tDb2xvclBpY2tlclJlc3VsdExpc3Rl
bmVyUmVmIGxpc3RlbmVyLCBjb25zdCB2b2lkKiBjbGllbnRJbmZvKTsKIHR5cGVkZWYgdm9pZCAo
KldLUGFnZUhpZGVDb2xvclBpY2tlckNhbGxiYWNrKShXS1BhZ2VSZWYgcGFnZSwgY29uc3Qgdm9p
ZCogY2xpZW50SW5mbyk7Cit0eXBlZGVmIHZvaWQgKCpXS1BhZ2VBZGRNZXNzYWdlVG9Db25zb2xl
KShXS1BhZ2VSZWYgcGFnZSwgV0tNZXNzYWdlU291cmNlVHlwZSBzb3VyY2UsIFdLTWVzc2FnZUxl
dmVsVHlwZSBsZXZlbCwgV0tTdHJpbmdSZWYgbWVzc2FnZSwgdW5zaWduZWQgbGluZU51bWJlciwg
V0tTdHJpbmdSZWYgc291cmNlSUQsIGNvbnN0IHZvaWQqIGNsaWVudEluZm8pOwogCiAvLyBEZXBy
ZWNhdGVkICAgIAogdHlwZWRlZiBXS1BhZ2VSZWYgKCpXS1BhZ2VDcmVhdGVOZXdQYWdlQ2FsbGJh
Y2tfZGVwcmVjYXRlZEZvclVzZVdpdGhWMCkoV0tQYWdlUmVmIHBhZ2UsIFdLRGljdGlvbmFyeVJl
ZiBmZWF0dXJlcywgV0tFdmVudE1vZGlmaWVycyBtb2RpZmllcnMsIFdLRXZlbnRNb3VzZUJ1dHRv
biBtb3VzZUJ1dHRvbiwgY29uc3Qgdm9pZCAqY2xpZW50SW5mbyk7CkBAIC0yOTEsMTAgKzI5Mywx
MyBAQCBzdHJ1Y3QgV0tQYWdlVUlDbGllbnQgewogICAgIC8vIFZlcnNpb24gMgogICAgIFdLUGFn
ZVNob3dDb2xvclBpY2tlckNhbGxiYWNrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgc2hvd0NvbG9yUGlja2VyOwogICAgIFdLUGFnZUhpZGVDb2xvclBpY2tlckNhbGxiYWNr
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGlkZUNvbG9yUGlja2VyOwor
CisgICAgLy8gVmVyc2lvbiAzCisgICAgV0tQYWdlQWRkTWVzc2FnZVRvQ29uc29sZSAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhZGRNZXNzYWdlVG9Db25zb2xlOwog
fTsKIHR5cGVkZWYgc3RydWN0IFdLUGFnZVVJQ2xpZW50IFdLUGFnZVVJQ2xpZW50OwogCi1lbnVt
IHsga1dLUGFnZVVJQ2xpZW50Q3VycmVudFZlcnNpb24gPSAyIH07CitlbnVtIHsga1dLUGFnZVVJ
Q2xpZW50Q3VycmVudFZlcnNpb24gPSAzIH07CiAKIC8vIEZpbmQgY2xpZW50LgogdHlwZWRlZiB2
b2lkICgqV0tQYWdlRGlkRmluZFN0cmluZ0NhbGxiYWNrKShXS1BhZ2VSZWYgcGFnZSwgV0tTdHJp
bmdSZWYgc3RyaW5nLCB1bnNpZ25lZCBtYXRjaENvdW50LCBjb25zdCB2b2lkKiBjbGllbnRJbmZv
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3Bw
IGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKaW5kZXggMDcwNDA1
NS4uMmE4MDg5YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQ
cm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAK
QEAgLTI5LDYgKzI5LDcgQEAKIAogI2luY2x1ZGUgIkF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlUHJv
eHkuaCIKICNpbmNsdWRlICJBdXRoZW50aWNhdGlvbkRlY2lzaW9uTGlzdGVuZXIuaCIKKyNpbmNs
dWRlICJDb25zb2xlTWVzc2FnZS5oIgogI2luY2x1ZGUgIkRhdGFSZWZlcmVuY2UuaCIKICNpbmNs
dWRlICJEb3dubG9hZFByb3h5LmgiCiAjaW5jbHVkZSAiRHJhd2luZ0FyZWFQcm94eS5oIgpAQCAt
Mjc3OSw2ICsyNzgwLDExIEBAIHZvaWQgV2ViUGFnZVByb3h5OjpzZXRNZWRpYVZvbHVtZShmbG9h
dCB2b2x1bWUpCiAgICAgbV9wcm9jZXNzLT5zZW5kKE1lc3NhZ2VzOjpXZWJQYWdlOjpTZXRNZWRp
YVZvbHVtZSh2b2x1bWUpLCBtX3BhZ2VJRCk7ICAgIAogfQogCit2b2lkIFdlYlBhZ2VQcm94eTo6
YWRkTWVzc2FnZVRvQ29uc29sZShjb25zdCBDb25zb2xlTWVzc2FnZSYgY29uc29sZU1lc3NhZ2Up
Cit7CisgICAgbV91aUNsaWVudC5hZGRNZXNzYWdlVG9Db25zb2xlKHRoaXMsIGNvbnNvbGVNZXNz
YWdlKTsKK30KKwogI2lmIFBMQVRGT1JNKFFUKSB8fCBQTEFURk9STShFRkwpIHx8IFBMQVRGT1JN
KEdUSykKIHZvaWQgV2ViUGFnZVByb3h5OjpoYW5kbGVEb3dubG9hZFJlcXVlc3QoRG93bmxvYWRQ
cm94eSogZG93bmxvYWQpCiB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
V2ViUGFnZVByb3h5LmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgK
aW5kZXggMzlkNzE2Yy4uNTA5ZGNiZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL1dlYlBhZ2VQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdl
UHJveHkuaApAQCAtMTUyLDYgKzE1Miw3IEBAIGNsYXNzIFdlYlByb2Nlc3NQcm94eTsKIGNsYXNz
IFdlYlVSTFJlcXVlc3Q7CiBjbGFzcyBXZWJXaGVlbEV2ZW50Owogc3RydWN0IEF0dHJpYnV0ZWRT
dHJpbmc7CitzdHJ1Y3QgQ29uc29sZU1lc3NhZ2U7CiBzdHJ1Y3QgQ29sb3JTcGFjZURhdGE7CiBz
dHJ1Y3QgRGljdGlvbmFyeVBvcHVwSW5mbzsKIHN0cnVjdCBFZGl0b3JTdGF0ZTsKQEAgLTg1OSw2
ICs4NjAsNyBAQCBwcml2YXRlOgogICAgIHZvaWQgZGlkRmFpbFRvSW5pdGlhbGl6ZVBsdWdpbihj
b25zdCBTdHJpbmcmIG1pbWVUeXBlKTsKICAgICB2b2lkIGRpZEJsb2NrSW5zZWN1cmVQbHVnaW5W
ZXJzaW9uKGNvbnN0IFN0cmluZyYgbWltZVR5cGUsIGNvbnN0IFN0cmluZyYgdXJsU3RyaW5nKTsK
ICAgICB2b2lkIHNldENhblNob3J0Q2lyY3VpdEhvcml6b250YWxXaGVlbEV2ZW50cyhib29sIGNh
blNob3J0Q2lyY3VpdEhvcml6b250YWxXaGVlbEV2ZW50cykgeyBtX2NhblNob3J0Q2lyY3VpdEhv
cml6b250YWxXaGVlbEV2ZW50cyA9IGNhblNob3J0Q2lyY3VpdEhvcml6b250YWxXaGVlbEV2ZW50
czsgfQorICAgIHZvaWQgYWRkTWVzc2FnZVRvQ29uc29sZShjb25zdCBDb25zb2xlTWVzc2FnZSYp
OwogCiAgICAgdm9pZCByZWF0dGFjaFRvV2ViUHJvY2VzcygpOwogICAgIHZvaWQgcmVhdHRhY2hU
b1dlYlByb2Nlc3NXaXRoSXRlbShXZWJCYWNrRm9yd2FyZExpc3RJdGVtKik7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5Lm1lc3NhZ2VzLmluIGIvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5tZXNzYWdlcy5pbgppbmRleCBiNDNj
OWM1Li4wMTI3ZjVmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFn
ZVByb3h5Lm1lc3NhZ2VzLmluCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdl
UHJveHkubWVzc2FnZXMuaW4KQEAgLTY4LDYgKzY4LDcgQEAgbWVzc2FnZXMgLT4gV2ViUGFnZVBy
b3h5IHsKICAgICBEaWRGYWlsVG9Jbml0aWFsaXplUGx1Z2luKFdURjo6U3RyaW5nIG1pbWVUeXBl
KQogICAgIERpZEJsb2NrSW5zZWN1cmVQbHVnaW5WZXJzaW9uKFdURjo6U3RyaW5nIG1pbWVUeXBl
LCBXVEY6OlN0cmluZyB1cmxTdHJpbmcpCiAgICAgU2V0Q2FuU2hvcnRDaXJjdWl0SG9yaXpvbnRh
bFdoZWVsRXZlbnRzKGJvb2wgY2FuU2hvcnRDaXJjdWl0SG9yaXpvbnRhbFdoZWVsRXZlbnRzKQor
ICAgIEFkZE1lc3NhZ2VUb0NvbnNvbGUoV2ViS2l0OjpDb25zb2xlTWVzc2FnZSBjb25zb2xlTWVz
c2FnZSkKIAogI2lmIFBMQVRGT1JNKEVGTCkKICAgICBIYW5kbGVJbnB1dE1ldGhvZEtleWRvd24o
KSAtPiAoYm9vbCBoYW5kbGVkKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L1dlYlVJQ2xpZW50LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJVSUNsaWVudC5j
cHAKaW5kZXggZjg4YzAwYS4uY2JiZmMxMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL1dlYlVJQ2xpZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2Vi
VUlDbGllbnQuY3BwCkBAIC00MzgsNCArNDM4LDEyIEBAIGJvb2wgV2ViVUlDbGllbnQ6OmhpZGVD
b2xvclBpY2tlcihXZWJQYWdlUHJveHkqIHBhZ2UpCiB9CiAjZW5kaWYKIAordm9pZCBXZWJVSUNs
aWVudDo6YWRkTWVzc2FnZVRvQ29uc29sZShXZWJQYWdlUHJveHkqIHBhZ2UsIGNvbnN0IENvbnNv
bGVNZXNzYWdlJiBjb25zb2xlTWVzc2FnZSkKK3sKKyAgICBpZiAoIW1fY2xpZW50LmFkZE1lc3Nh
Z2VUb0NvbnNvbGUpCisgICAgICAgIHJldHVybjsKKworICAgIG1fY2xpZW50LmFkZE1lc3NhZ2VU
b0NvbnNvbGUodG9BUEkocGFnZSksIHRvQVBJKGNvbnNvbGVNZXNzYWdlLnNvdXJjZSksIHRvQVBJ
KGNvbnNvbGVNZXNzYWdlLmxldmVsKSwgdG9BUEkoY29uc29sZU1lc3NhZ2UubWVzc2FnZS5pbXBs
KCkpLCBjb25zb2xlTWVzc2FnZS5saW5lTnVtYmVyLCB0b0FQSShjb25zb2xlTWVzc2FnZS5zb3Vy
Y2VJRC5pbXBsKCkpLCBtX2NsaWVudC5jbGllbnRJbmZvKTsKK30KKwogfSAvLyBuYW1lc3BhY2Ug
V2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViVUlDbGllbnQu
aCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJVSUNsaWVudC5oCmluZGV4IDliNTJiZmQu
LmY1OTllOTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJVSUNsaWVu
dC5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJVSUNsaWVudC5oCkBAIC0yNyw2
ICsyNyw3IEBACiAjZGVmaW5lIFdlYlVJQ2xpZW50X2gKIAogI2luY2x1ZGUgIkFQSUNsaWVudC5o
IgorI2luY2x1ZGUgIkNvbnNvbGVNZXNzYWdlLmgiCiAjaW5jbHVkZSAiV0tQYWdlLmgiCiAjaW5j
bHVkZSAiV2ViRXZlbnQuaCIKICNpbmNsdWRlICJXZWJIaXRUZXN0UmVzdWx0LmgiCkBAIC0xMTYs
NiArMTE3LDcgQEAgcHVibGljOgogICAgIHZvaWQgc2F2ZURhdGFUb0ZpbGVJbkRvd25sb2Fkc0Zv
bGRlcihXZWJQYWdlUHJveHkqLCBjb25zdCBTdHJpbmcmIHN1Z2dlc3RlZEZpbGVuYW1lLCBjb25z
dCBTdHJpbmcmIG1pbWVUeXBlLCBjb25zdCBTdHJpbmcmIG9yaWdpbmF0aW5nVVJMU3RyaW5nLCBX
ZWJEYXRhKik7CiAKICAgICBib29sIHNob3VsZEludGVycnVwdEphdmFTY3JpcHQoV2ViUGFnZVBy
b3h5Kik7CisgICAgdm9pZCBhZGRNZXNzYWdlVG9Db25zb2xlKFdlYlBhZ2VQcm94eSosIGNvbnN0
IENvbnNvbGVNZXNzYWdlJik7CiAKICNpZiBFTkFCTEUoSU5QVVRfVFlQRV9DT0xPUikKICAgICBi
b29sIHNob3dDb2xvclBpY2tlcihXZWJQYWdlUHJveHkqLCBjb25zdCBTdHJpbmcmLCBXZWJDb2xv
clBpY2tlclJlc3VsdExpc3RlbmVyUHJveHkqKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQy
L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNwcCBiL1NvdXJjZS9X
ZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNwcAppbmRl
eCAzZTdmZTMyLi5lZWYzMDU0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNz
L1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5jcHAKKysrIGIvU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuY3BwCkBAIC0yNyw2ICsy
Nyw3IEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiV2ViQ2hyb21lQ2xpZW50Lmgi
CiAKKyNpbmNsdWRlICJDb25zb2xlTWVzc2FnZS5oIgogI2luY2x1ZGUgIkRyYXdpbmdBcmVhLmgi
CiAjaW5jbHVkZSAiSW5qZWN0ZWRCdW5kbGVOYXZpZ2F0aW9uQWN0aW9uLmgiCiAjaW5jbHVkZSAi
SW5qZWN0ZWRCdW5kbGVVc2VyTWVzc2FnZUNvZGVycy5oIgpAQCAtMjYzLDEyICsyNjQsMTIgQEAg
dm9pZCBXZWJDaHJvbWVDbGllbnQ6OnNldFJlc2l6YWJsZShib29sIHJlc2l6YWJsZSkKICAgICBt
X3BhZ2UtPnNlbmQoTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6U2V0SXNSZXNpemFibGUocmVzaXph
YmxlKSk7CiB9CiAKLXZvaWQgV2ViQ2hyb21lQ2xpZW50OjphZGRNZXNzYWdlVG9Db25zb2xlKE1l
c3NhZ2VTb3VyY2UsIE1lc3NhZ2VUeXBlLCBNZXNzYWdlTGV2ZWwsIGNvbnN0IFN0cmluZyYgbWVz
c2FnZSwgdW5zaWduZWQgaW50IGxpbmVOdW1iZXIsIGNvbnN0IFN0cmluZyYgLypzb3VyY2VJRCov
KQordm9pZCBXZWJDaHJvbWVDbGllbnQ6OmFkZE1lc3NhZ2VUb0NvbnNvbGUoTWVzc2FnZVNvdXJj
ZSBzb3VyY2UsIE1lc3NhZ2VUeXBlLCBNZXNzYWdlTGV2ZWwgbGV2ZWwsIGNvbnN0IFN0cmluZyYg
bWVzc2FnZSwgdW5zaWduZWQgbGluZU51bWJlciwgY29uc3QgU3RyaW5nJiBzb3VyY2VJRCkKIHsK
ICAgICAvLyBOb3RpZnkgdGhlIGJ1bmRsZSBjbGllbnQuCiAgICAgbV9wYWdlLT5pbmplY3RlZEJ1
bmRsZVVJQ2xpZW50KCkud2lsbEFkZE1lc3NhZ2VUb0NvbnNvbGUobV9wYWdlLCBtZXNzYWdlLCBs
aW5lTnVtYmVyKTsKIAotICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgbV9wYWdlLT5zZW5kKE1l
c3NhZ2VzOjpXZWJQYWdlUHJveHk6OkFkZE1lc3NhZ2VUb0NvbnNvbGUoQ29uc29sZU1lc3NhZ2Uo
c291cmNlLCBsZXZlbCwgbWVzc2FnZSwgbGluZU51bWJlciwgc291cmNlSUQpKSk7CiB9CiAKIGJv
b2wgV2ViQ2hyb21lQ2xpZW50OjpjYW5SdW5CZWZvcmVVbmxvYWRDb25maXJtUGFuZWwoKQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdDIvd2luL1dlYktpdDIudmNwcm9qIGIvU291cmNlL1dlYktp
dDIvd2luL1dlYktpdDIudmNwcm9qCmluZGV4IDA1N2NiZjMuLmU2NmY4NmEgMTAwNzU1Ci0tLSBh
L1NvdXJjZS9XZWJLaXQyL3dpbi9XZWJLaXQyLnZjcHJvagorKysgYi9Tb3VyY2UvV2ViS2l0Mi93
aW4vV2ViS2l0Mi52Y3Byb2oKQEAgLTQyNiw2ICs0MjYsMTQgQEAKIAkJCQlSZWxhdGl2ZVBhdGg9
Ii4uXFNoYXJlZFxDb21tYW5kTGluZS5oIgogCQkJCT4KIAkJCTwvRmlsZT4KKyAgICAgICAgICAg
ICAgICAgICAgICAgIDxGaWxlCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJlbGF0
aXZlUGF0aD0iLi5cU2hhcmVkXENvbnNvbGVNZXNzYWdlLmNwcCIKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgPgorICAgICAgICAgICAgICAgICAgICAgICAgPC9GaWxlPgorICAgICAg
ICAgICAgICAgICAgICAgICAgPEZpbGUKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
UmVsYXRpdmVQYXRoPSIuLlxTaGFyZWRcQ29uc29sZU1lc3NhZ2UuaCIKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgPgorICAgICAgICAgICAgICAgICAgICAgICAgPC9GaWxlPgogCQkJ
PEZpbGUKIAkJCQlSZWxhdGl2ZVBhdGg9Ii4uXFNoYXJlZFxEaWN0aW9uYXJ5UG9wdXBJbmZvLmNw
cCIKIAkJCQk+CkBAIC04OTMsNiArOTAxLDEwIEBACiAJCQkJCVJlbGF0aXZlUGF0aD0iLi5cU2hh
cmVkXEFQSVxjXFdLQ29ubmVjdGlvblJlZi5oIgogCQkJCQk+CiAJCQkJPC9GaWxlPgorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICA8RmlsZQorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIFJlbGF0aXZlUGF0aD0iLi5cU2hhcmVkXEFQSVxjXFdLQ29uc29sZVR5
cGVzLmgiCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPgorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICA8L0ZpbGU+CiAJCQkJPEZpbGUKIAkJCQkJUmVsYXRp
dmVQYXRoPSIuLlxTaGFyZWRcQVBJXGNcV0tDb250ZXh0TWVudUl0ZW0uY3BwIgogCQkJCQk+CmRp
ZmYgLS1naXQgYS9Ub29scy9NaW5pQnJvd3Nlci9tYWMvV0syQnJvd3NlcldpbmRvd0NvbnRyb2xs
ZXIubSBiL1Rvb2xzL01pbmlCcm93c2VyL21hYy9XSzJCcm93c2VyV2luZG93Q29udHJvbGxlci5t
CmluZGV4IDE3MzFlYjYuLjAyNjJjMjYgMTAwNjQ0Ci0tLSBhL1Rvb2xzL01pbmlCcm93c2VyL21h
Yy9XSzJCcm93c2VyV2luZG93Q29udHJvbGxlci5tCisrKyBiL1Rvb2xzL01pbmlCcm93c2VyL21h
Yy9XSzJCcm93c2VyV2luZG93Q29udHJvbGxlci5tCkBAIC03MDMsNiArNzAzLDcgQEAgLSAodm9p
ZClhd2FrZUZyb21OaWIKICAgICAgICAgMCwgLy8gdW5hdmFpbGFibGVQbHVnaW5CdXR0b25DbGlj
a2VkCiAgICAgICAgIDAsIC8vIHNob3dDb2xvclBpY2tlcgogICAgICAgICAwLCAvLyBoaWRlQ29s
b3JQaWNrZXIKKyAgICAgICAgMCwgLy8gYWRkTWVzc2FnZVRvQ29uc29sZQogICAgIH07CiAgICAg
V0tQYWdlU2V0UGFnZVVJQ2xpZW50KF93ZWJWaWV3LnBhZ2VSZWYsICZ1aUNsaWVudCk7CiB9CmRp
ZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL0dOVW1ha2VmaWxlLmFtIGIvVG9vbHMvVGVz
dFdlYktpdEFQSS9HTlVtYWtlZmlsZS5hbQppbmRleCA3NTljY2I5ZS4uNDhmY2UwYyAxMDA2NDQK
LS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9HTlVtYWtlZmlsZS5hbQorKysgYi9Ub29scy9UZXN0
V2ViS2l0QVBJL0dOVW1ha2VmaWxlLmFtCkBAIC0xMzAsNiArMTMwLDcgQEAgUHJvZ3JhbXNfVGVz
dFdlYktpdEFQSV9UZXN0V2ViS2l0Ml9TT1VSQ0VTID0gXAogCVRvb2xzL1Rlc3RXZWJLaXRBUEkv
UGxhdGZvcm1VdGlsaXRpZXMuaCBcCiAJVG9vbHMvVGVzdFdlYktpdEFQSS9QbGF0Zm9ybVdlYlZp
ZXcuaCBcCiAJVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyL0NhbkhhbmRsZVJlcXVl
c3QuY3BwIFwKKwlUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDIvQ29uc29sZU1lc3Nh
Z2UuY3BwIFwKIAlUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDIvQ29va2llTWFuYWdl
ci5jcHAgXAogCVRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Mi9Eb2N1bWVudFN0YXJ0
VXNlclNjcmlwdEFsZXJ0Q3Jhc2guY3BwIFwKIAlUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dl
YktpdDIvRE9NV2luZG93RXh0ZW5zaW9uQmFzaWMuY3BwIFwKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rl
c3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Mi9Db25zb2xlTWVzc2FnZS5jcHAgYi9Ub29scy9UZXN0
V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDIvQ29uc29sZU1lc3NhZ2UuY3BwCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAuLmM4OTg3ZGMKLS0tIC9kZXYvbnVsbAorKysgYi9Ub29scy9U
ZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDIvQ29uc29sZU1lc3NhZ2UuY3BwCkBAIC0wLDAgKzEs
MTc2IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEyIElnYWxpYSBTLkwuCisgKgorICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMg
b2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
LgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24g
YW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisg
KgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09O
VFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFO
VElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJS
QU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisg
KiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9S
IElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1Qs
IElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFN
QUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBT
VUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklU
UzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFO
WSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJ
QUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICog
QVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4g
SUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisK
KyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJQbGF0Zm9ybVV0aWxpdGllcy5oIgorI2lu
Y2x1ZGUgIlBsYXRmb3JtV2ViVmlldy5oIgorI2luY2x1ZGUgPFdlYktpdDIvV0tSZXRhaW5QdHIu
aD4KKyNpbmNsdWRlIDx3dGYvT3duUHRyLmg+CisjaW5jbHVkZSA8d3RmL1Bhc3NPd25QdHIuaD4K
KworI2luY2x1ZGUgPHN0ZGlvLmg+CisKK25hbWVzcGFjZSBUZXN0V2ViS2l0QVBJIHsKKworc3Ry
dWN0IENvbnNvbGVNZXNzYWdlIHsKKyAgICBDb25zb2xlTWVzc2FnZSgpCisgICAgICAgIDogc291
cmNlKGtXS01lc3NhZ2VTb3VyY2VPdGhlcikKKyAgICAgICAgLCBsZXZlbChrV0tNZXNzYWdlTGV2
ZWxMb2cpCisgICAgICAgICwgbWVzc2FnZSgwKQorICAgICAgICAsIGxpbmVOdW1iZXIoMCkKKyAg
ICAgICAgLCBzb3VyY2VJRCgwKQorICAgIHsKKyAgICB9CisKKyAgICBDb25zb2xlTWVzc2FnZShX
S01lc3NhZ2VTb3VyY2VUeXBlIHNvdXJjZSwgV0tNZXNzYWdlTGV2ZWxUeXBlIGxldmVsLCBXS1N0
cmluZ1JlZiBtZXNzYWdlLCB1bnNpZ25lZCBsaW5lTnVtYmVyLCBXS1N0cmluZ1JlZiBzb3VyY2VJ
RCkKKyAgICAgICAgOiBzb3VyY2Uoc291cmNlKQorICAgICAgICAsIGxldmVsKGxldmVsKQorICAg
ICAgICAsIG1lc3NhZ2UobWVzc2FnZSkKKyAgICAgICAgLCBsaW5lTnVtYmVyKGxpbmVOdW1iZXIp
CisgICAgICAgICwgc291cmNlSUQoc291cmNlSUQpCisgICAgeworICAgIH0KKworICAgIHZvaWQg
YXNzZXJ0RXF1YWwoY29uc3QgQ29uc29sZU1lc3NhZ2UmIG90aGVyKSBjb25zdAorICAgIHsKKyAg
ICAgICAgRVhQRUNUX0VRKHNvdXJjZSwgb3RoZXIuc291cmNlKTsKKyAgICAgICAgRVhQRUNUX0VR
KGxldmVsLCBvdGhlci5sZXZlbCk7CisgICAgICAgIEVYUEVDVF9UUlVFKFdLU3RyaW5nSXNFcXVh
bChtZXNzYWdlLmdldCgpLCBvdGhlci5tZXNzYWdlLmdldCgpKSk7CisgICAgICAgIEVYUEVDVF9F
UShsaW5lTnVtYmVyLCBvdGhlci5saW5lTnVtYmVyKTsKKyAgICAgICAgRVhQRUNUX1RSVUUoV0tT
dHJpbmdJc0VxdWFsKHNvdXJjZUlELmdldCgpLCBvdGhlci5zb3VyY2VJRC5nZXQoKSkpOworICAg
IH0KKworICAgIFdLTWVzc2FnZVNvdXJjZVR5cGUgc291cmNlOworICAgIFdLTWVzc2FnZUxldmVs
VHlwZSBsZXZlbDsKKyAgICBXS1JldGFpblB0cjxXS1N0cmluZ1JlZj4gbWVzc2FnZTsKKyAgICB1
bnNpZ25lZCBsaW5lTnVtYmVyOworICAgIFdLUmV0YWluUHRyPFdLU3RyaW5nUmVmPiBzb3VyY2VJ
RDsKK307CisKK2NsYXNzIFdlYktpdDJDb25zb2xlTWVzc2FnZVRlc3QgOiBwdWJsaWMgOjp0ZXN0
aW5nOjpUZXN0IHsKK3B1YmxpYzoKKyAgICBXZWJLaXQyQ29uc29sZU1lc3NhZ2VUZXN0KCkKKyAg
ICAgICAgOiBtX2RpZFJlY2VpdmVDb25zb2xlTWVzc2FnZShmYWxzZSkKKyAgICB7CisgICAgfQor
CisgICAgc3RhdGljIHZvaWQgYWRkTWVzc2FnZVRvQ29uc29sZShXS1BhZ2VSZWYsIFdLTWVzc2Fn
ZVNvdXJjZVR5cGUgc291cmNlLCBXS01lc3NhZ2VMZXZlbFR5cGUgbGV2ZWwsIFdLU3RyaW5nUmVm
IG1lc3NhZ2UsIHVuc2lnbmVkIGxpbmVOdW1iZXIsIFdLU3RyaW5nUmVmIHNvdXJjZUlELCBjb25z
dCB2b2lkKiBjbGllbnRJbmZvKQorICAgIHsKKyAgICAgICAgKChXZWJLaXQyQ29uc29sZU1lc3Nh
Z2VUZXN0KiljbGllbnRJbmZvKS0+bV9jb25zb2xlTWVzc2FnZSA9IENvbnNvbGVNZXNzYWdlKHNv
dXJjZSwgbGV2ZWwsIG1lc3NhZ2UsIGxpbmVOdW1iZXIsIHNvdXJjZUlEKTsKKyAgICAgICAgKChX
ZWJLaXQyQ29uc29sZU1lc3NhZ2VUZXN0KiljbGllbnRJbmZvKS0+bV9kaWRSZWNlaXZlQ29uc29s
ZU1lc3NhZ2UgPSB0cnVlOworICAgIH0KKworICAgIHN0YXRpYyB2b2lkIHNldFVJQ2xpZW50KFdL
UGFnZVJlZiBwYWdlLCBjb25zdCB2b2lkKiBjbGllbnRJbmZvKQorICAgIHsKKyAgICAgICAgV0tQ
YWdlVUlDbGllbnQgdWlDbGllbnQ7CisgICAgICAgIG1lbXNldCgmdWlDbGllbnQsIDAsIHNpemVv
Zih1aUNsaWVudCkpOworICAgICAgICB1aUNsaWVudC52ZXJzaW9uID0ga1dLUGFnZVVJQ2xpZW50
Q3VycmVudFZlcnNpb247CisgICAgICAgIHVpQ2xpZW50LmNsaWVudEluZm8gPSBjbGllbnRJbmZv
OworICAgICAgICB1aUNsaWVudC5hZGRNZXNzYWdlVG9Db25zb2xlID0gYWRkTWVzc2FnZVRvQ29u
c29sZTsKKyAgICAgICAgV0tQYWdlU2V0UGFnZVVJQ2xpZW50KHBhZ2UsICZ1aUNsaWVudCk7Cisg
ICAgfQorCisgICAgdmlydHVhbCB2b2lkIFNldFVwKCkKKyAgICB7CisgICAgICAgIG1fY29udGV4
dCA9IGFkb3B0V0soV0tDb250ZXh0Q3JlYXRlKCkpOworICAgICAgICBtX3dlYlZpZXcgPSBhZG9w
dFB0cihuZXcgUGxhdGZvcm1XZWJWaWV3KG1fY29udGV4dC5nZXQoKSkpOworICAgICAgICBzZXRV
SUNsaWVudChtX3dlYlZpZXctPnBhZ2UoKSwgdGhpcyk7CisKKyAgICAgICAgbV9kaWRSZWNlaXZl
Q29uc29sZU1lc3NhZ2UgPSBmYWxzZTsKKyAgICB9CisKKyAgICB2b2lkIGxvYWRIVE1MQW5kUnVu
VW50aWxDb25zb2xlTWVzc2FnZVJlY2VpdmVkKFdLU3RyaW5nUmVmIGh0bWwsIFdLVVJMUmVmIGJh
c2VVUkwpCisgICAgeworICAgICAgICBXS1BhZ2VMb2FkSFRNTFN0cmluZyhtX3dlYlZpZXctPnBh
Z2UoKSwgaHRtbCwgYmFzZVVSTCk7CisgICAgICAgIFV0aWw6OnJ1bigmbV9kaWRSZWNlaXZlQ29u
c29sZU1lc3NhZ2UpOworICAgIH0KKworICAgIFdLUmV0YWluUHRyPFdLQ29udGV4dFJlZj4gbV9j
b250ZXh0OworICAgIE93blB0cjxQbGF0Zm9ybVdlYlZpZXc+IG1fd2ViVmlldzsKKyAgICBib29s
IG1fZGlkUmVjZWl2ZUNvbnNvbGVNZXNzYWdlOworICAgIENvbnNvbGVNZXNzYWdlIG1fY29uc29s
ZU1lc3NhZ2U7Cit9OworCitURVNUX0YoV2ViS2l0MkNvbnNvbGVNZXNzYWdlVGVzdCwgTG9nTWVz
c2FnZSkKK3sKKyAgICBXS1JldGFpblB0cjxXS1N0cmluZ1JlZj4gaHRtbFN0cmluZyhBZG9wdFdL
LCBXS1N0cmluZ0NyZWF0ZVdpdGhVVEY4Q1N0cmluZygiPGh0bWw+PGJvZHkgb25sb2FkPSdjb25z
b2xlLmxvZyhcIkxvZyBDb25zb2xlIE1lc3NhZ2VcIik7Jz48L2JvZHk+PC9odG1sPiIpKTsKKyAg
ICBXS1JldGFpblB0cjxXS1VSTFJlZj4gYmFzZVVSTChBZG9wdFdLLCBXS1VSTENyZWF0ZVdpdGhV
VEY4Q1N0cmluZygiaHR0cDovL2Zvby5jb20vYmFyIikpOworICAgIGxvYWRIVE1MQW5kUnVuVW50
aWxDb25zb2xlTWVzc2FnZVJlY2VpdmVkKGh0bWxTdHJpbmcuZ2V0KCksIGJhc2VVUkwuZ2V0KCkp
OworICAgIFdLUmV0YWluUHRyPFdLU3RyaW5nUmVmPiBtZXNzYWdlKEFkb3B0V0ssIFdLU3RyaW5n
Q3JlYXRlV2l0aFVURjhDU3RyaW5nKCJMb2cgQ29uc29sZSBNZXNzYWdlIikpOworICAgIFdLUmV0
YWluUHRyPFdLU3RyaW5nUmVmPiBzb3VyY2VJRChBZG9wdFdLLCBXS1VSTENvcHlTdHJpbmcoYmFz
ZVVSTC5nZXQoKSkpOworICAgIG1fY29uc29sZU1lc3NhZ2UuYXNzZXJ0RXF1YWwoQ29uc29sZU1l
c3NhZ2Uoa1dLTWVzc2FnZVNvdXJjZUNvbnNvbGVBUEksIGtXS01lc3NhZ2VMZXZlbExvZywgbWVz
c2FnZS5nZXQoKSwgMSwgc291cmNlSUQuZ2V0KCkpKTsKK30KKworVEVTVF9GKFdlYktpdDJDb25z
b2xlTWVzc2FnZVRlc3QsIEluZm9NZXNzYWdlKQoreworICAgIFdLUmV0YWluUHRyPFdLU3RyaW5n
UmVmPiBodG1sU3RyaW5nKEFkb3B0V0ssIFdLU3RyaW5nQ3JlYXRlV2l0aFVURjhDU3RyaW5nKCI8
aHRtbD48Ym9keSBvbmxvYWQ9J2NvbnNvbGUuaW5mbyhcIkluZm8gQ29uc29sZSBNZXNzYWdlXCIp
Oyc+PC9ib2R5PjwvaHRtbD4iKSk7CisgICAgV0tSZXRhaW5QdHI8V0tVUkxSZWY+IGJhc2VVUkwo
QWRvcHRXSywgV0tVUkxDcmVhdGVXaXRoVVRGOENTdHJpbmcoImh0dHA6Ly9mb28uY29tL2JhciIp
KTsKKyAgICBsb2FkSFRNTEFuZFJ1blVudGlsQ29uc29sZU1lc3NhZ2VSZWNlaXZlZChodG1sU3Ry
aW5nLmdldCgpLCBiYXNlVVJMLmdldCgpKTsKKyAgICBXS1JldGFpblB0cjxXS1N0cmluZ1JlZj4g
bWVzc2FnZShBZG9wdFdLLCBXS1N0cmluZ0NyZWF0ZVdpdGhVVEY4Q1N0cmluZygiSW5mbyBDb25z
b2xlIE1lc3NhZ2UiKSk7CisgICAgV0tSZXRhaW5QdHI8V0tTdHJpbmdSZWY+IHNvdXJjZUlEKEFk
b3B0V0ssIFdLVVJMQ29weVN0cmluZyhiYXNlVVJMLmdldCgpKSk7CisgICAgbV9jb25zb2xlTWVz
c2FnZS5hc3NlcnRFcXVhbChDb25zb2xlTWVzc2FnZShrV0tNZXNzYWdlU291cmNlQ29uc29sZUFQ
SSwga1dLTWVzc2FnZUxldmVsTG9nLCBtZXNzYWdlLmdldCgpLCAxLCBzb3VyY2VJRC5nZXQoKSkp
OworfQorCitURVNUX0YoV2ViS2l0MkNvbnNvbGVNZXNzYWdlVGVzdCwgRGVidWdNZXNzYWdlKQor
eworICAgIFdLUmV0YWluUHRyPFdLU3RyaW5nUmVmPiBodG1sU3RyaW5nKEFkb3B0V0ssIFdLU3Ry
aW5nQ3JlYXRlV2l0aFVURjhDU3RyaW5nKCI8aHRtbD48Ym9keSBvbmxvYWQ9J2NvbnNvbGUuZGVi
dWcoXCJEZWJ1ZyBDb25zb2xlIE1lc3NhZ2VcIik7Jz48L2JvZHk+PC9odG1sPiIpKTsKKyAgICBX
S1JldGFpblB0cjxXS1VSTFJlZj4gYmFzZVVSTChBZG9wdFdLLCBXS1VSTENyZWF0ZVdpdGhVVEY4
Q1N0cmluZygiaHR0cDovL2Zvby5jb20vYmFyIikpOworICAgIGxvYWRIVE1MQW5kUnVuVW50aWxD
b25zb2xlTWVzc2FnZVJlY2VpdmVkKGh0bWxTdHJpbmcuZ2V0KCksIGJhc2VVUkwuZ2V0KCkpOwor
ICAgIFdLUmV0YWluUHRyPFdLU3RyaW5nUmVmPiBtZXNzYWdlKEFkb3B0V0ssIFdLU3RyaW5nQ3Jl
YXRlV2l0aFVURjhDU3RyaW5nKCJEZWJ1ZyBDb25zb2xlIE1lc3NhZ2UiKSk7CisgICAgV0tSZXRh
aW5QdHI8V0tTdHJpbmdSZWY+IHNvdXJjZUlEKEFkb3B0V0ssIFdLVVJMQ29weVN0cmluZyhiYXNl
VVJMLmdldCgpKSk7CisgICAgbV9jb25zb2xlTWVzc2FnZS5hc3NlcnRFcXVhbChDb25zb2xlTWVz
c2FnZShrV0tNZXNzYWdlU291cmNlQ29uc29sZUFQSSwga1dLTWVzc2FnZUxldmVsTG9nLCBtZXNz
YWdlLmdldCgpLCAxLCBzb3VyY2VJRC5nZXQoKSkpOworfQorCitURVNUX0YoV2ViS2l0MkNvbnNv
bGVNZXNzYWdlVGVzdCwgV2FybmluZ01lc3NhZ2UpCit7CisgICAgV0tSZXRhaW5QdHI8V0tTdHJp
bmdSZWY+IGh0bWxTdHJpbmcoQWRvcHRXSywgV0tTdHJpbmdDcmVhdGVXaXRoVVRGOENTdHJpbmco
IjxodG1sPjxib2R5IG9ubG9hZD0nY29uc29sZS53YXJuKFwiV2FybmluZyBDb25zb2xlIE1lc3Nh
Z2VcIik7Jz48L2JvZHk+PC9odG1sPiIpKTsKKyAgICBXS1JldGFpblB0cjxXS1VSTFJlZj4gYmFz
ZVVSTChBZG9wdFdLLCBXS1VSTENyZWF0ZVdpdGhVVEY4Q1N0cmluZygiaHR0cDovL2Zvby5jb20v
YmFyIikpOworICAgIGxvYWRIVE1MQW5kUnVuVW50aWxDb25zb2xlTWVzc2FnZVJlY2VpdmVkKGh0
bWxTdHJpbmcuZ2V0KCksIGJhc2VVUkwuZ2V0KCkpOworICAgIFdLUmV0YWluUHRyPFdLU3RyaW5n
UmVmPiBtZXNzYWdlKEFkb3B0V0ssIFdLU3RyaW5nQ3JlYXRlV2l0aFVURjhDU3RyaW5nKCJXYXJu
aW5nIENvbnNvbGUgTWVzc2FnZSIpKTsKKyAgICBXS1JldGFpblB0cjxXS1N0cmluZ1JlZj4gc291
cmNlSUQoQWRvcHRXSywgV0tVUkxDb3B5U3RyaW5nKGJhc2VVUkwuZ2V0KCkpKTsKKyAgICBtX2Nv
bnNvbGVNZXNzYWdlLmFzc2VydEVxdWFsKENvbnNvbGVNZXNzYWdlKGtXS01lc3NhZ2VTb3VyY2VD
b25zb2xlQVBJLCBrV0tNZXNzYWdlTGV2ZWxXYXJuaW5nLCBtZXNzYWdlLmdldCgpLCAxLCBzb3Vy
Y2VJRC5nZXQoKSkpOworfQorCitURVNUX0YoV2ViS2l0MkNvbnNvbGVNZXNzYWdlVGVzdCwgRXJy
b3JNZXNzYWdlKQoreworICAgIFdLUmV0YWluUHRyPFdLU3RyaW5nUmVmPiBodG1sU3RyaW5nKEFk
b3B0V0ssIFdLU3RyaW5nQ3JlYXRlV2l0aFVURjhDU3RyaW5nKCI8aHRtbD48Ym9keSBvbmxvYWQ9
J2NvbnNvbGUuZXJyb3IoXCJFcnJvciBDb25zb2xlIE1lc3NhZ2VcIik7Jz48L2JvZHk+PC9odG1s
PiIpKTsKKyAgICBXS1JldGFpblB0cjxXS1VSTFJlZj4gYmFzZVVSTChBZG9wdFdLLCBXS1VSTENy
ZWF0ZVdpdGhVVEY4Q1N0cmluZygiaHR0cDovL2Zvby5jb20vYmFyIikpOworICAgIGxvYWRIVE1M
QW5kUnVuVW50aWxDb25zb2xlTWVzc2FnZVJlY2VpdmVkKGh0bWxTdHJpbmcuZ2V0KCksIGJhc2VV
UkwuZ2V0KCkpOworICAgIFdLUmV0YWluUHRyPFdLU3RyaW5nUmVmPiBtZXNzYWdlKEFkb3B0V0ss
IFdLU3RyaW5nQ3JlYXRlV2l0aFVURjhDU3RyaW5nKCJFcnJvciBDb25zb2xlIE1lc3NhZ2UiKSk7
CisgICAgV0tSZXRhaW5QdHI8V0tTdHJpbmdSZWY+IHNvdXJjZUlEKEFkb3B0V0ssIFdLVVJMQ29w
eVN0cmluZyhiYXNlVVJMLmdldCgpKSk7CisgICAgbV9jb25zb2xlTWVzc2FnZS5hc3NlcnRFcXVh
bChDb25zb2xlTWVzc2FnZShrV0tNZXNzYWdlU291cmNlQ29uc29sZUFQSSwga1dLTWVzc2FnZUxl
dmVsRXJyb3IsIG1lc3NhZ2UuZ2V0KCksIDEsIHNvdXJjZUlELmdldCgpKSk7Cit9CisKK1RFU1Rf
RihXZWJLaXQyQ29uc29sZU1lc3NhZ2VUZXN0LCBFeGNlcHRpb25NZXNzYWdlKQoreworICAgIFdL
UmV0YWluUHRyPFdLU3RyaW5nUmVmPiBodG1sU3RyaW5nKEFkb3B0V0ssIFdLU3RyaW5nQ3JlYXRl
V2l0aFVURjhDU3RyaW5nKCI8aHRtbD48Ym9keSBvbmxvYWQ9J2ZvbygpOyc+PC9ib2R5PjwvaHRt
bD4iKSk7CisgICAgV0tSZXRhaW5QdHI8V0tVUkxSZWY+IGJhc2VVUkwoQWRvcHRXSywgV0tVUkxD
cmVhdGVXaXRoVVRGOENTdHJpbmcoImh0dHA6Ly9mb28uY29tL2JhciIpKTsKKyAgICBsb2FkSFRN
TEFuZFJ1blVudGlsQ29uc29sZU1lc3NhZ2VSZWNlaXZlZChodG1sU3RyaW5nLmdldCgpLCBiYXNl
VVJMLmdldCgpKTsKKyAgICBXS1JldGFpblB0cjxXS1N0cmluZ1JlZj4gbWVzc2FnZShBZG9wdFdL
LCBXS1N0cmluZ0NyZWF0ZVdpdGhVVEY4Q1N0cmluZygiUmVmZXJlbmNlRXJyb3I6IENhbid0IGZp
bmQgdmFyaWFibGU6IGZvbyIpKTsKKyAgICBXS1JldGFpblB0cjxXS1N0cmluZ1JlZj4gc291cmNl
SUQoQWRvcHRXSywgV0tVUkxDb3B5U3RyaW5nKGJhc2VVUkwuZ2V0KCkpKTsKKyAgICBtX2NvbnNv
bGVNZXNzYWdlLmFzc2VydEVxdWFsKENvbnNvbGVNZXNzYWdlKGtXS01lc3NhZ2VTb3VyY2VKUywg
a1dLTWVzc2FnZUxldmVsRXJyb3IsIG1lc3NhZ2UuZ2V0KCksIDEsIHNvdXJjZUlELmdldCgpKSk7
Cit9CisKK30gLy8gbmFtZXNwYWNlIFRlc3RXZWJLaXRBUEkKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rl
c3RXZWJLaXRBUEkvd2luL1Rlc3RXZWJLaXRBUEkudmNwcm9qIGIvVG9vbHMvVGVzdFdlYktpdEFQ
SS93aW4vVGVzdFdlYktpdEFQSS52Y3Byb2oKaW5kZXggYzEyZjAyNC4uNmI3ZDMyYiAxMDA2NDQK
LS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS93aW4vVGVzdFdlYktpdEFQSS52Y3Byb2oKKysrIGIv
VG9vbHMvVGVzdFdlYktpdEFQSS93aW4vVGVzdFdlYktpdEFQSS52Y3Byb2oKQEAgLTQzNSw2ICs0
MzUsMTAgQEAKIAkJCQkJUmVsYXRpdmVQYXRoPSIuLlxUZXN0c1xXZWJLaXQyXENhbkhhbmRsZVJl
cXVlc3QuY3BwIgogCQkJCQk+CiAJCQkJPC9GaWxlPgorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICA8RmlsZQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJl
bGF0aXZlUGF0aD0iLi5cVGVzdHNcV2ViS2l0MlxDb25zb2xlTWVzc2FnZS5jcHAiCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPgorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICA8L0ZpbGU+CiAJCQkJPEZpbGUKIAkJCQkJUmVsYXRpdmVQYXRoPSIuLlxUZXN0
c1xXZWJLaXQyXENvb2tpZU1hbmFnZXIuY3BwIgogCQkJCQk+CmRpZmYgLS1naXQgYS9Ub29scy9X
ZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250cm9sbGVyLmNwcCBiL1Rvb2xzL1dlYktpdFRlc3RSdW5u
ZXIvVGVzdENvbnRyb2xsZXIuY3BwCmluZGV4IDJlYjYzNWIuLjAxZmZiNGEgMTAwNjQ0Ci0tLSBh
L1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuY3BwCisrKyBiL1Rvb2xzL1dl
YktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuY3BwCkBAIC0yMjQsNiArMjI0LDcgQEAgV0tQ
YWdlUmVmIFRlc3RDb250cm9sbGVyOjpjcmVhdGVPdGhlclBhZ2UoV0tQYWdlUmVmIG9sZFBhZ2Us
IFdLVVJMUmVxdWVzdFJlZiwgV0sKICAgICAgICAgMCwgLy8gdW5hdmFpbGFibGVQbHVnaW5CdXR0
b25DbGlja2VkCiAgICAgICAgIDAsIC8vIHNob3dDb2xvclBpY2tlcgogICAgICAgICAwLCAvLyBo
aWRlQ29sb3JQaWNrZXIKKyAgICAgICAgMCwgLy8gYWRkTWVzc2FnZVRvQ29uc29sZQogICAgIH07
CiAgICAgV0tQYWdlU2V0UGFnZVVJQ2xpZW50KG5ld1BhZ2UsICZvdGhlclBhZ2VVSUNsaWVudCk7
CiAKQEAgLTQxNiw2ICs0MTcsNyBAQCB2b2lkIFRlc3RDb250cm9sbGVyOjpjcmVhdGVXZWJWaWV3
V2l0aE9wdGlvbnMoV0tEaWN0aW9uYXJ5UmVmIG9wdGlvbnMpCiAgICAgICAgIDAsIC8vIHVuYXZh
aWxhYmxlUGx1Z2luQnV0dG9uQ2xpY2tlZAogICAgICAgICAwLCAvLyBzaG93Q29sb3JQaWNrZXIK
ICAgICAgICAgMCwgLy8gaGlkZUNvbG9yUGlja2VyCisgICAgICAgIDAsIC8vIGFkZE1lc3NhZ2VU
b0NvbnNvbGUKICAgICB9OwogICAgIFdLUGFnZVNldFBhZ2VVSUNsaWVudChtX21haW5XZWJWaWV3
LT5wYWdlKCksICZwYWdlVUlDbGllbnQpOwogCg==
</data>
<flag name="commit-queue"
          id="189051"
          type_id="3"
          status="-"
          setter="buildbot"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>175402</attachid>
            <date>2012-11-21 03:18:43 -0800</date>
            <delta_ts>2013-01-04 00:52:51 -0800</delta_ts>
            <desc>Updated patch</desc>
            <filename>wk2-console-messages.diff</filename>
            <type>text/plain</type>
            <size>37553</size>
            <attacher name="Carlos Garcia Campos">cgarcia</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NNYWtlTGlzdHMudHh0IGIvU291cmNlL1dlYktp
dDIvQ01ha2VMaXN0cy50eHQKaW5kZXggMDAzMzk2YS4uYTkxYzUwOSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdDIvQ01ha2VMaXN0cy50eHQKKysrIGIvU291cmNlL1dlYktpdDIvQ01ha2VMaXN0
cy50eHQKQEAgLTEzOCw2ICsxMzgsNyBAQCBTRVQoV2ViS2l0Ml9TT1VSQ0VTCiAgICAgU2hhcmVk
L0FQSU9iamVjdC5jcHAKICAgICBTaGFyZWQvQ2hpbGRQcm9jZXNzLmNwcAogICAgIFNoYXJlZC9D
b25uZWN0aW9uU3RhY2suY3BwCisgICAgU2hhcmVkL0NvbnNvbGVNZXNzYWdlLmNwcAogICAgIFNo
YXJlZC9EaWN0aW9uYXJ5UG9wdXBJbmZvLmNwcAogICAgIFNoYXJlZC9FZGl0b3JTdGF0ZS5jcHAK
ICAgICBTaGFyZWQvRm9udEluZm8uY3BwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9DaGFu
Z2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggODhiOTA5ZS4uMjRkYTVlMSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQy
L0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ0IEBACisyMDEyLTExLTIxICBDYXJsb3MgR2FyY2lhIENh
bXBvcyAgPGNnYXJjaWFAaWdhbGlhLmNvbT4KKworICAgICAgICBbV0syXSBJbXBsZW1lbnQgV2Vi
Q2hyb21lQ2xpZW50OjphZGRNZXNzYWdlVG9Db25zb2xlKCkKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTc5NDgyCisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBDTWFrZUxpc3RzLnR4dDogQWRkIG5ldyBmaWxl
cyB0byBjb21waWxhdGlvbi4KKyAgICAgICAgKiBHTlVtYWtlZmlsZS5saXN0LmFtOiBEaXR0by4K
KyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdDIvbWVzc2FnZXMucHk6CisgICAgICAgIChzdHJ1Y3Rf
b3JfY2xhc3MpOiBBZGQgV2ViS2l0OjpDb25zb2xlTWVzc2FnZS4KKyAgICAgICAgKiBTaGFyZWQv
QVBJL2MvV0tDb25zb2xlVHlwZXMuaDogQWRkZWQuCisgICAgICAgICogU2hhcmVkL0FQSS9jL1dL
U2hhcmVkQVBJQ2FzdC5oOgorICAgICAgICAoV2ViS2l0Ojp0b0FQSSk6IENvbnZlcnQgV2ViQ29y
ZSBjb25zb2xlIG1lc3NhZ2UgdHlwZXMgdG8gV2ViS2l0MgorICAgICAgICB0eXBlcy4KKyAgICAg
ICAgKiBTaGFyZWQvQVBJQ2xpZW50VHJhaXRzLmNwcDoKKyAgICAgICAgKFdlYktpdCk6IEFkZCBv
ZmZzZXQgZm9yIGludGVyZmFjZSB2ZXJzaW9uIDMuCisgICAgICAgICogU2hhcmVkL0FQSUNsaWVu
dFRyYWl0cy5oOgorICAgICAgICAqIFNoYXJlZC9Db25zb2xlTWVzc2FnZS5jcHA6IEFkZGVkLgor
ICAgICAgICAoV2ViS2l0OjpDb25zb2xlTWVzc2FnZTo6Q29uc29sZU1lc3NhZ2UpOgorICAgICAg
ICAoV2ViS2l0OjpDb25zb2xlTWVzc2FnZTo6ZW5jb2RlKToKKyAgICAgICAgKFdlYktpdDo6Q29u
c29sZU1lc3NhZ2U6OmRlY29kZSk6CisgICAgICAgICogU2hhcmVkL0NvbnNvbGVNZXNzYWdlLmg6
IEFkZGVkLgorICAgICAgICAqIFRhcmdldC5wcmk6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9D
L1dLUGFnZS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwOgorICAgICAg
ICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OmFkZE1lc3NhZ2VUb0NvbnNvbGUpOiBNZXRob2QgdG8g
aGFuZGxlCisgICAgICAgIEFkZE1lc3NhZ2VUb0NvbnNvbGUgbWVzc2FnZSB0aGF0IGp1c3QgY2Fs
bHMKKyAgICAgICAgV2ViVUlDbGllbnQ6OmFkZE1lc3NhZ2VUb0NvbnNvbGUoKS4KKyAgICAgICAg
KiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5Lmg6CisgICAgICAgICogVUlQcm9jZXNzL1dlYlBhZ2VQ
cm94eS5tZXNzYWdlcy5pbjogQWRkIG5ldyBtZXNzYWdlCisgICAgICAgIEFkZE1lc3NhZ2VUb0Nv
bnNvbGUuCisgICAgICAgICogVUlQcm9jZXNzL1dlYlVJQ2xpZW50LmNwcDoKKyAgICAgICAgKFdl
YktpdDo6V2ViVUlDbGllbnQ6OmFkZE1lc3NhZ2VUb0NvbnNvbGUpOiBDYWxsCisgICAgICAgIGFk
ZE1lc3NhZ2VUb0NvbnNvbGUgY2FsbGJhY2sgaWYgcHJlc2VudC4KKyAgICAgICAgKiBVSVByb2Nl
c3MvV2ViVUlDbGllbnQuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dl
YkNocm9tZUNsaWVudC5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYkNocm9tZUNsaWVudDo6YWRk
TWVzc2FnZVRvQ29uc29sZSk6IFNlbmQKKyAgICAgICAgQWRkTWVzc2FnZVRvQ29uc29sZSBtZXNz
YWdlIHRvIHRoZSBVSSBwcm9jZXNzLgorICAgICAgICAqIHdpbi9XZWJLaXQyLnZjcHJvajogQWRk
IG5ldyBmaWxlcyB0byBjb21waWxhdGlvbi4KKwogMjAxMi0xMS0yMSAgSm9uZ3Nlb2sgWWFuZyAg
PGpzNDUueWFuZ0BzYW1zdW5nLmNvbT4KIAogICAgICAgICBbRUZMXVtXSzJdIFJlbmFtZSBld2tf
dmlld19zZXR0aW5nX2VuY29kaW5nX2N1c3RvbV9YWFggdG8gZXdrX3ZpZXdfY3VzdG9tX2VuY29k
aW5nX1hYWApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvR05VbWFrZWZpbGUubGlzdC5hbSBi
L1NvdXJjZS9XZWJLaXQyL0dOVW1ha2VmaWxlLmxpc3QuYW0KaW5kZXggYWI1MjNlZi4uNmY3YWRl
YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvR05VbWFrZWZpbGUubGlzdC5hbQorKysgYi9T
b3VyY2UvV2ViS2l0Mi9HTlVtYWtlZmlsZS5saXN0LmFtCkBAIC02LDYgKzYsNyBAQCB3ZWJraXQy
X2hfYXBpICs9IFwKIAkkKFdlYktpdDIpL1NoYXJlZC9BUEkvYy9XS0Jhc2UuaCBcCiAJJChXZWJL
aXQyKS9TaGFyZWQvQVBJL2MvV0tDZXJ0aWZpY2F0ZUluZm8uaCBcCiAJJChXZWJLaXQyKS9TaGFy
ZWQvQVBJL2MvV0tDb25uZWN0aW9uUmVmLmggXAorCSQoV2ViS2l0MikvU2hhcmVkL0FQSS9jL1dL
Q29uc29sZVR5cGVzLmggXAogCSQoV2ViS2l0MikvU2hhcmVkL0FQSS9jL1dLQ29udGV4dE1lbnVJ
dGVtLmggXAogCSQoV2ViS2l0MikvU2hhcmVkL0FQSS9jL1dLQ29udGV4dE1lbnVJdGVtVHlwZXMu
aCBcCiAJJChXZWJLaXQyKS9TaGFyZWQvQVBJL2MvV0tEYXRhLmggXApAQCAtMzE0LDYgKzMxNSw3
IEBAIHdlYmtpdDJfc291cmNlcyArPSBcCiAJU291cmNlL1dlYktpdDIvU2hhcmVkL0FQSS9jL1dL
Q2VydGlmaWNhdGVJbmZvLmggXAogCVNvdXJjZS9XZWJLaXQyL1NoYXJlZC9BUEkvYy9XS0Nvbm5l
Y3Rpb25SZWYuY3BwIFwKIAlTb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQVBJL2MvV0tDb25uZWN0aW9u
UmVmLmggXAorCVNvdXJjZS9XZWJLaXQyL1NoYXJlZC9BUEkvYy9XS0NvbnNvbGVUeXBlcy5oIFwK
IAlTb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQVBJL2MvV0tDb250ZXh0TWVudUl0ZW0uY3BwIFwKIAlT
b3VyY2UvV2ViS2l0Mi9TaGFyZWQvQVBJL2MvV0tDb250ZXh0TWVudUl0ZW0uaCBcCiAJU291cmNl
L1dlYktpdDIvU2hhcmVkL0FQSS9jL1dLQ29udGV4dE1lbnVJdGVtVHlwZXMuaCBcCkBAIC0zNzAs
NiArMzcyLDggQEAgd2Via2l0Ml9zb3VyY2VzICs9IFwKIAlTb3VyY2UvV2ViS2l0Mi9TaGFyZWQv
Q2hpbGRQcm9jZXNzLmNwcCBcCiAJU291cmNlL1dlYktpdDIvU2hhcmVkL0NoaWxkUHJvY2Vzcy5o
IFwKIAlTb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQ29tbWFuZExpbmUuaCBcCisJU291cmNlL1dlYktp
dDIvU2hhcmVkL0NvbnNvbGVNZXNzYWdlLmNwcCBcCisJU291cmNlL1dlYktpdDIvU2hhcmVkL0Nv
bnNvbGVNZXNzYWdlLmggXAogCVNvdXJjZS9XZWJLaXQyL1NoYXJlZC9Db25uZWN0aW9uU3RhY2su
Y3BwIFwKIAlTb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQ29ubmVjdGlvblN0YWNrLmggXAogCVNvdXJj
ZS9XZWJLaXQyL1NoYXJlZC9Db3JlSVBDU3VwcG9ydC9XZWJDb25uZWN0aW9uTWVzc2FnZUtpbmRz
LmggXApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2NyaXB0cy93ZWJraXQyL21lc3NhZ2Vz
LnB5IGIvU291cmNlL1dlYktpdDIvU2NyaXB0cy93ZWJraXQyL21lc3NhZ2VzLnB5CmluZGV4IDY5
YTllMzUuLjQ4ZGE3NTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1NjcmlwdHMvd2Via2l0
Mi9tZXNzYWdlcy5weQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TY3JpcHRzL3dlYmtpdDIvbWVzc2Fn
ZXMucHkKQEAgLTE4OSw2ICsxODksNyBAQCBkZWYgc3RydWN0X29yX2NsYXNzKG5hbWVzcGFjZSwg
dHlwZSk6CiAgICAgICAgICdXZWJDb3JlOjpXaW5kb3dGZWF0dXJlcycsCiAgICAgICAgICdXZWJL
aXQ6OkF0dHJpYnV0ZWRTdHJpbmcnLAogICAgICAgICAnV2ViS2l0OjpDb2xvclNwYWNlRGF0YScs
CisgICAgICAgICdXZWJLaXQ6OkNvbnNvbGVNZXNzYWdlJywKICAgICAgICAgJ1dlYktpdDo6Q29u
dGV4dE1lbnVTdGF0ZScsCiAgICAgICAgICdXZWJLaXQ6OkRpY3Rpb25hcnlQb3B1cEluZm8nLAog
ICAgICAgICAnV2ViS2l0OjpEcmF3aW5nQXJlYUluZm8nLApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdDIvU2hhcmVkL0FQSS9jL1dLQ29uc29sZVR5cGVzLmggYi9Tb3VyY2UvV2ViS2l0Mi9TaGFy
ZWQvQVBJL2MvV0tDb25zb2xlVHlwZXMuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwLi5mNWZmODI0Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL0FQ
SS9jL1dLQ29uc29sZVR5cGVzLmgKQEAgLTAsMCArMSw1NiBAQAorLyoKKyAqIENvcHlyaWdodCAo
QykgMjAxMiBJZ2FsaWEgUy5MLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBh
cmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWlu
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBp
biBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJv
dmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJP
VklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFO
RCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkg
QU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4g
SU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBM
SUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVN
UExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNF
UzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJV
UFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hF
VEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElO
RyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0Yg
VEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVmIFdLQ29uc29sZVR5cGVzX2gK
KyNkZWZpbmUgV0tDb25zb2xlVHlwZXNfaAorCisjaWZkZWYgX19jcGx1c3BsdXMKK2V4dGVybiAi
QyIgeworI2VuZGlmCisKK2VudW0geworICAgIGtXS01lc3NhZ2VTb3VyY2VIVE1MLAorICAgIGtX
S01lc3NhZ2VTb3VyY2VYTUwsCisgICAga1dLTWVzc2FnZVNvdXJjZUpTLAorICAgIGtXS01lc3Nh
Z2VTb3VyY2VOZXR3b3JrLAorICAgIGtXS01lc3NhZ2VTb3VyY2VDb25zb2xlQVBJLAorICAgIGtX
S01lc3NhZ2VTb3VyY2VPdGhlcgorfTsKK3R5cGVkZWYgdWludDMyX3QgV0tNZXNzYWdlU291cmNl
VHlwZTsKKworZW51bSB7CisgICAga1dLTWVzc2FnZUxldmVsVGlwLAorICAgIGtXS01lc3NhZ2VM
ZXZlbExvZywKKyAgICBrV0tNZXNzYWdlTGV2ZWxXYXJuaW5nLAorICAgIGtXS01lc3NhZ2VMZXZl
bEVycm9yLAorICAgIGtXS01lc3NhZ2VMZXZlbERlYnVnCit9OwordHlwZWRlZiB1aW50MzJfdCBX
S01lc3NhZ2VMZXZlbFR5cGU7CisKKyNpZmRlZiBfX2NwbHVzcGx1cworfQorI2VuZGlmCisKKyNl
bmRpZiAvKiBXS0NvbnNvbGVUeXBlc19oICovCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9T
aGFyZWQvQVBJL2MvV0tTaGFyZWRBUElDYXN0LmggYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQVBJ
L2MvV0tTaGFyZWRBUElDYXN0LmgKaW5kZXggMzgwY2QyNS4uY2QyMjA4MSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdDIvU2hhcmVkL0FQSS9jL1dLU2hhcmVkQVBJQ2FzdC5oCisrKyBiL1NvdXJj
ZS9XZWJLaXQyL1NoYXJlZC9BUEkvYy9XS1NoYXJlZEFQSUNhc3QuaApAQCAtMjksNiArMjksNyBA
QAogI2luY2x1ZGUgIkltYWdlT3B0aW9ucy5oIgogI2luY2x1ZGUgIlNhbWVEb2N1bWVudE5hdmln
YXRpb25UeXBlLmgiCiAjaW5jbHVkZSAiV0tCYXNlLmgiCisjaW5jbHVkZSAiV0tDb25zb2xlVHlw
ZXMuaCIKICNpbmNsdWRlICJXS0NvbnRleHRNZW51SXRlbVR5cGVzLmgiCiAjaW5jbHVkZSAiV0tF
dmVudC5oIgogI2luY2x1ZGUgIldLRmluZE9wdGlvbnMuaCIKQEAgLTQ0LDYgKzQ1LDcgQEAKICNp
bmNsdWRlICJXZWJVUkwuaCIKICNpbmNsdWRlICJXZWJVUkxSZXF1ZXN0LmgiCiAjaW5jbHVkZSAi
V2ViVVJMUmVzcG9uc2UuaCIKKyNpbmNsdWRlIDxXZWJDb3JlL0NvbnNvbGVUeXBlcy5oPgogI2lu
Y2x1ZGUgPFdlYkNvcmUvQ29udGV4dE1lbnVJdGVtLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9GbG9h
dFJlY3QuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0ZyYW1lTG9hZGVyVHlwZXMuaD4KQEAgLTg1MCw2
ICs4NTIsNDYgQEAgaW5saW5lIFdlYkNvcmU6OlVzZXJDb250ZW50SW5qZWN0ZWRGcmFtZXMgdG9V
c2VyQ29udGVudEluamVjdGVkRnJhbWVzKFdLVXNlckNvbnQKICAgICByZXR1cm4gV2ViQ29yZTo6
SW5qZWN0SW5BbGxGcmFtZXM7CiB9CiAKK2lubGluZSBXS01lc3NhZ2VTb3VyY2VUeXBlIHRvQVBJ
KFdlYkNvcmU6Ok1lc3NhZ2VTb3VyY2Ugc291cmNlKQoreworICAgIHN3aXRjaCAoc291cmNlKSB7
CisgICAgY2FzZSBXZWJDb3JlOjpIVE1MTWVzc2FnZVNvdXJjZToKKyAgICAgICAgcmV0dXJuIGtX
S01lc3NhZ2VTb3VyY2VIVE1MOworICAgIGNhc2UgV2ViQ29yZTo6WE1MTWVzc2FnZVNvdXJjZToK
KyAgICAgICAgcmV0dXJuIGtXS01lc3NhZ2VTb3VyY2VYTUw7CisgICAgY2FzZSBXZWJDb3JlOjpK
U01lc3NhZ2VTb3VyY2U6CisgICAgICAgIHJldHVybiBrV0tNZXNzYWdlU291cmNlSlM7CisgICAg
Y2FzZSBXZWJDb3JlOjpOZXR3b3JrTWVzc2FnZVNvdXJjZToKKyAgICAgICAgcmV0dXJuIGtXS01l
c3NhZ2VTb3VyY2VOZXR3b3JrOworICAgIGNhc2UgV2ViQ29yZTo6Q29uc29sZUFQSU1lc3NhZ2VT
b3VyY2U6CisgICAgICAgIHJldHVybiBrV0tNZXNzYWdlU291cmNlQ29uc29sZUFQSTsKKyAgICBj
YXNlIFdlYkNvcmU6Ok90aGVyTWVzc2FnZVNvdXJjZToKKyAgICAgICAgcmV0dXJuIGtXS01lc3Nh
Z2VTb3VyY2VPdGhlcjsKKyAgICBkZWZhdWx0OgorICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQo
KTsKKyAgICAgICAgcmV0dXJuIGtXS01lc3NhZ2VTb3VyY2VPdGhlcjsKKyAgICB9Cit9CisKK2lu
bGluZSBXS01lc3NhZ2VMZXZlbFR5cGUgdG9BUEkoV2ViQ29yZTo6TWVzc2FnZUxldmVsIGxldmVs
KQoreworICAgIHN3aXRjaCAobGV2ZWwpIHsKKyAgICBjYXNlIFdlYkNvcmU6OlRpcE1lc3NhZ2VM
ZXZlbDoKKyAgICAgICAgcmV0dXJuIGtXS01lc3NhZ2VMZXZlbFRpcDsKKyAgICBjYXNlIFdlYkNv
cmU6OkxvZ01lc3NhZ2VMZXZlbDoKKyAgICAgICAgcmV0dXJuIGtXS01lc3NhZ2VMZXZlbExvZzsK
KyAgICBjYXNlIFdlYkNvcmU6Oldhcm5pbmdNZXNzYWdlTGV2ZWw6CisgICAgICAgIHJldHVybiBr
V0tNZXNzYWdlTGV2ZWxXYXJuaW5nOworICAgIGNhc2UgV2ViQ29yZTo6RXJyb3JNZXNzYWdlTGV2
ZWw6CisgICAgICAgIHJldHVybiBrV0tNZXNzYWdlTGV2ZWxFcnJvcjsKKyAgICBjYXNlIFdlYkNv
cmU6OkRlYnVnTWVzc2FnZUxldmVsOgorICAgICAgICByZXR1cm4ga1dLTWVzc2FnZUxldmVsRGVi
dWc7CisgICAgZGVmYXVsdDoKKyAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgICAg
IHJldHVybiBrV0tNZXNzYWdlTGV2ZWxMb2c7CisgICAgfQorfQorCiB9IC8vIG5hbWVzcGFjZSBX
ZWJLaXQKIAogI2VuZGlmIC8vIFdLU2hhcmVkQVBJQ2FzdF9oCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0Mi9TaGFyZWQvQVBJQ2xpZW50VHJhaXRzLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJl
ZC9BUElDbGllbnRUcmFpdHMuY3BwCmluZGV4IGViN2E1MWIuLmFkZDIzMTYgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9BUElDbGllbnRUcmFpdHMuY3BwCisrKyBiL1NvdXJjZS9X
ZWJLaXQyL1NoYXJlZC9BUElDbGllbnRUcmFpdHMuY3BwCkBAIC02OSw2ICs2OSw3IEBAIGNvbnN0
IHNpemVfdCBBUElDbGllbnRUcmFpdHM8V0tQYWdlTG9hZGVyQ2xpZW50Pjo6aW50ZXJmYWNlU2l6
ZXNCeVZlcnNpb25bXSA9IHsKIGNvbnN0IHNpemVfdCBBUElDbGllbnRUcmFpdHM8V0tQYWdlVUlD
bGllbnQ+OjppbnRlcmZhY2VTaXplc0J5VmVyc2lvbltdID0gewogICAgIG9mZnNldG9mKFdLUGFn
ZVVJQ2xpZW50LCBjcmVhdGVOZXdQYWdlKSwKICAgICBvZmZzZXRvZihXS1BhZ2VVSUNsaWVudCwg
c2hvd0NvbG9yUGlja2VyKSwKKyAgICBvZmZzZXRvZihXS1BhZ2VVSUNsaWVudCwgYWRkTWVzc2Fn
ZVRvQ29uc29sZSksCiAgICAgc2l6ZW9mKFdLUGFnZVVJQ2xpZW50KQogfTsKICAgICAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9BUElDbGllbnRUcmFpdHMuaCBiL1NvdXJjZS9X
ZWJLaXQyL1NoYXJlZC9BUElDbGllbnRUcmFpdHMuaAppbmRleCA0YWQ0ZmIxLi5mZmRmY2I0IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQVBJQ2xpZW50VHJhaXRzLmgKKysrIGIv
U291cmNlL1dlYktpdDIvU2hhcmVkL0FQSUNsaWVudFRyYWl0cy5oCkBAIC02OCw3ICs2OCw3IEBA
IHRlbXBsYXRlPD4gc3RydWN0IEFQSUNsaWVudFRyYWl0czxXS1BhZ2VMb2FkZXJDbGllbnQ+IHsK
IH07CiAKIHRlbXBsYXRlPD4gc3RydWN0IEFQSUNsaWVudFRyYWl0czxXS1BhZ2VVSUNsaWVudD4g
ewotICAgIHN0YXRpYyBjb25zdCBzaXplX3QgaW50ZXJmYWNlU2l6ZXNCeVZlcnNpb25bM107Cisg
ICAgc3RhdGljIGNvbnN0IHNpemVfdCBpbnRlcmZhY2VTaXplc0J5VmVyc2lvbls0XTsKIH07CiAK
IHRlbXBsYXRlPD4gc3RydWN0IEFQSUNsaWVudFRyYWl0czxXS0J1bmRsZVBhZ2VGb3JtQ2xpZW50
PiB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQ29uc29sZU1lc3NhZ2UuY3Bw
IGIvU291cmNlL1dlYktpdDIvU2hhcmVkL0NvbnNvbGVNZXNzYWdlLmNwcApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwLi5hMmYzNmViOAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJj
ZS9XZWJLaXQyL1NoYXJlZC9Db25zb2xlTWVzc2FnZS5jcHAKQEAgLTAsMCArMSw3MCBAQAorLyoK
KyAqIENvcHlyaWdodCAoQykgMjAxMiBJZ2FsaWEgUy5MLgorICoKKyAqIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICog
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBj
b2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJl
ZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhl
ciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMg
U09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBg
YEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBN
RVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBB
UkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJ
QlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFM
LCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBH
T09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lO
RVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9G
IExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9S
IFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4g
QU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQg
T0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAi
Y29uZmlnLmgiCisjaW5jbHVkZSAiQ29uc29sZU1lc3NhZ2UuaCIKKworI2luY2x1ZGUgIldlYkNv
cmVBcmd1bWVudENvZGVycy5oIgorCituYW1lc3BhY2UgV2ViS2l0IHsKKworQ29uc29sZU1lc3Nh
Z2U6OkNvbnNvbGVNZXNzYWdlKCkKKyAgICA6IHNvdXJjZShXZWJDb3JlOjpPdGhlck1lc3NhZ2VT
b3VyY2UpCisgICAgLCBsZXZlbChXZWJDb3JlOjpMb2dNZXNzYWdlTGV2ZWwpCisgICAgLCBsaW5l
TnVtYmVyKDApCit7Cit9CisKK0NvbnNvbGVNZXNzYWdlOjpDb25zb2xlTWVzc2FnZShXZWJDb3Jl
OjpNZXNzYWdlU291cmNlIHNvdXJjZSwgV2ViQ29yZTo6TWVzc2FnZUxldmVsIGxldmVsLCBTdHJp
bmcgbWVzc2FnZSwgdWludDMyX3QgbGluZU51bWJlciwgU3RyaW5nIHNvdXJjZUlEKQorICAgIDog
c291cmNlKHNvdXJjZSkKKyAgICAsIGxldmVsKGxldmVsKQorICAgICwgbWVzc2FnZShtZXNzYWdl
KQorICAgICwgbGluZU51bWJlcihsaW5lTnVtYmVyKQorICAgICwgc291cmNlSUQoc291cmNlSUQp
Cit7Cit9CisKK3ZvaWQgQ29uc29sZU1lc3NhZ2U6OmVuY29kZShDb3JlSVBDOjpBcmd1bWVudEVu
Y29kZXImIGVuY29kZXIpIGNvbnN0Cit7CisgICAgZW5jb2Rlci5lbmNvZGVFbnVtKHNvdXJjZSk7
CisgICAgZW5jb2Rlci5lbmNvZGVFbnVtKGxldmVsKTsKKyAgICBlbmNvZGVyIDw8IG1lc3NhZ2U7
CisgICAgZW5jb2RlciA8PCBsaW5lTnVtYmVyOworICAgIGVuY29kZXIgPDwgc291cmNlSUQ7Cit9
CisKK2Jvb2wgQ29uc29sZU1lc3NhZ2U6OmRlY29kZShDb3JlSVBDOjpBcmd1bWVudERlY29kZXIq
IGRlY29kZXIsIENvbnNvbGVNZXNzYWdlJiBjb25zb2xlTWVzc2FnZSkKK3sKKyAgICBpZiAoIWRl
Y29kZXItPmRlY29kZUVudW0oY29uc29sZU1lc3NhZ2Uuc291cmNlKQorICAgICAgICB8fCAhZGVj
b2Rlci0+ZGVjb2RlRW51bShjb25zb2xlTWVzc2FnZS5sZXZlbCkKKyAgICAgICAgfHwgIWRlY29k
ZXItPmRlY29kZShjb25zb2xlTWVzc2FnZS5tZXNzYWdlKQorICAgICAgICB8fCAhZGVjb2Rlci0+
ZGVjb2RlKGNvbnNvbGVNZXNzYWdlLmxpbmVOdW1iZXIpCisgICAgICAgIHx8ICFkZWNvZGVyLT5k
ZWNvZGUoY29uc29sZU1lc3NhZ2Uuc291cmNlSUQpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisK
KyAgICByZXR1cm4gdHJ1ZTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQ29uc29sZU1lc3NhZ2UuaCBiL1NvdXJjZS9XZWJLaXQy
L1NoYXJlZC9Db25zb2xlTWVzc2FnZS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAuLjZmMDEzZTEKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQ29u
c29sZU1lc3NhZ2UuaApAQCAtMCwwICsxLDU1IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEy
IElnYWxpYSBTLkwuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6
CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFy
eSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0
aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3
aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBC
WSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBF
WFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklU
TkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBF
VkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBG
T1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwg
T1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NT
IE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikg
SE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElO
CisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJ
R0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNF
IE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZ
IE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5kZWYgQ29uc29sZU1lc3NhZ2VfaAorI2RlZmlu
ZSBDb25zb2xlTWVzc2FnZV9oCisKKyNpbmNsdWRlIDxXZWJDb3JlL0NvbnNvbGVUeXBlcy5oPgor
I2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgorCituYW1lc3BhY2UgQ29yZUlQQyB7Citj
bGFzcyBBcmd1bWVudERlY29kZXI7CitjbGFzcyBBcmd1bWVudEVuY29kZXI7Cit9CisKK25hbWVz
cGFjZSBXZWJLaXQgeworCitzdHJ1Y3QgQ29uc29sZU1lc3NhZ2UgeworICAgIENvbnNvbGVNZXNz
YWdlKCk7CisgICAgQ29uc29sZU1lc3NhZ2UoV2ViQ29yZTo6TWVzc2FnZVNvdXJjZSwgV2ViQ29y
ZTo6TWVzc2FnZUxldmVsLCBTdHJpbmcgbWVzc2FnZSwgdWludDMyX3QgbGluZU51bWJlciwgU3Ry
aW5nIHNvdXJjZUlEKTsKKworICAgIFdlYkNvcmU6Ok1lc3NhZ2VTb3VyY2Ugc291cmNlOworICAg
IFdlYkNvcmU6Ok1lc3NhZ2VMZXZlbCBsZXZlbDsKKyAgICBTdHJpbmcgbWVzc2FnZTsKKyAgICB1
aW50MzJfdCBsaW5lTnVtYmVyOworICAgIFN0cmluZyBzb3VyY2VJRDsKKworICAgIHZvaWQgZW5j
b2RlKENvcmVJUEM6OkFyZ3VtZW50RW5jb2RlciYpIGNvbnN0OworICAgIHN0YXRpYyBib29sIGRl
Y29kZShDb3JlSVBDOjpBcmd1bWVudERlY29kZXIqLCBDb25zb2xlTWVzc2FnZSYpOworfTsKKwor
fSAvLyBuYW1lc3BhY2UgV2ViS2l0CisKKyNlbmRpZiAvLyBDb25zb2xlTWVzc2FnZV9oCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9UYXJnZXQucHJpIGIvU291cmNlL1dlYktpdDIvVGFyZ2V0
LnByaQppbmRleCAwOThiNWI5Li45ZGM2MDIwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9U
YXJnZXQucHJpCisrKyBiL1NvdXJjZS9XZWJLaXQyL1RhcmdldC5wcmkKQEAgLTQ1LDYgKzQ1LDcg
QEAgSEVBREVSUyArPSBcCiAgICAgU2hhcmVkL0FQSS9jL1dLQmFzZS5oIFwKICAgICBTaGFyZWQv
QVBJL2MvV0tDZXJ0aWZpY2F0ZUluZm8uaCBcCiAgICAgU2hhcmVkL0FQSS9jL1dLQ29ubmVjdGlv
blJlZi5oIFwKKyAgICBTaGFyZWQvQVBJL2MvV0tDb25zb2xlVHlwZXMuaCBcCiAgICAgU2hhcmVk
L0FQSS9jL1dLQ29udGV4dE1lbnVJdGVtLmggXAogICAgIFNoYXJlZC9BUEkvYy9XS0NvbnRleHRN
ZW51SXRlbVR5cGVzLmggXAogICAgIFNoYXJlZC9BUEkvYy9XS0RpY3Rpb25hcnkuaCBcCkBAIC03
NCw2ICs3NSw3IEBAIEhFQURFUlMgKz0gXAogICAgIFNoYXJlZC9TaGFyZWFibGVTdXJmYWNlLmgg
XAogICAgIFNoYXJlZC9DYWNoZU1vZGVsLmggXAogICAgIFNoYXJlZC9DaGlsZFByb2Nlc3MuaCBc
CisgICAgU2hhcmVkL0NvbnNvbGVNZXNzYWdlLmggXAogICAgIFNoYXJlZC9Db25uZWN0aW9uU3Rh
Y2suaCBcCiAgICAgU2hhcmVkL0RpY3Rpb25hcnlQb3B1cEluZm8uaCBcCiAgICAgU2hhcmVkL0Vk
aXRvclN0YXRlLmggXApAQCAtNDUwLDYgKzQ1Miw3IEBAIFNPVVJDRVMgKz0gXAogICAgIFNoYXJl
ZC9QbHVnaW5zL1BsdWdpbk1vZHVsZUluZm8uY3BwIFwKICAgICBTaGFyZWQvUGx1Z2lucy9QbHVn
aW5Qcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmNwcCBcCiAgICAgU2hhcmVkL0NoaWxkUHJvY2Vz
cy5jcHAgXAorICAgIFNoYXJlZC9Db25zb2xlTWVzc2FnZS5jcHAgXAogICAgIFNoYXJlZC9Db25u
ZWN0aW9uU3RhY2suY3BwIFwKICAgICBTaGFyZWQvRGljdGlvbmFyeVBvcHVwSW5mby5jcHAgXAog
ICAgIFNoYXJlZC9FZGl0b3JTdGF0ZS5jcHAgXApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL0FQSS9DL1dLUGFnZS5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9D
L1dLUGFnZS5oCmluZGV4IDRhMjViYjYuLmVkNzJjYWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9BUEkvQy9XS1BhZ2UuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvQVBJL0MvV0tQYWdlLmgKQEAgLTI3LDYgKzI3LDcgQEAKICNkZWZpbmUgV0tQYWdlX2gKIAog
I2luY2x1ZGUgPFdlYktpdDIvV0tCYXNlLmg+CisjaW5jbHVkZSA8V2ViS2l0Mi9XS0NvbnNvbGVU
eXBlcy5oPgogI2luY2x1ZGUgPFdlYktpdDIvV0tFcnJvci5oPgogI2luY2x1ZGUgPFdlYktpdDIv
V0tFdmVudC5oPgogI2luY2x1ZGUgPFdlYktpdDIvV0tGaW5kT3B0aW9ucy5oPgpAQCAtMjMxLDYg
KzIzMiw3IEBAIHR5cGVkZWYgdm9pZCAoKldLUGFnZURlY2lkZVBvbGljeUZvck5vdGlmaWNhdGlv
blBlcm1pc3Npb25SZXF1ZXN0Q2FsbGJhY2spKFdLUGFnCiB0eXBlZGVmIHZvaWQgKCpXS1BhZ2VV
bmF2YWlsYWJsZVBsdWdpbkJ1dHRvbkNsaWNrZWRDYWxsYmFjaykoV0tQYWdlUmVmIHBhZ2UsIFdL
UGx1Z2luVW5hdmFpbGFiaWxpdHlSZWFzb24gcGx1Z2luVW5hdmFpbGFiaWxpdHlSZWFzb24sIFdL
U3RyaW5nUmVmIG1pbWVUeXBlLCBXS1N0cmluZ1JlZiB1cmwsIFdLU3RyaW5nUmVmIHBsdWdpbnNQ
YWdlVVJMLCBjb25zdCB2b2lkKiBjbGllbnRJbmZvKTsKIHR5cGVkZWYgdm9pZCAoKldLUGFnZVNo
b3dDb2xvclBpY2tlckNhbGxiYWNrKShXS1BhZ2VSZWYgcGFnZSwgV0tTdHJpbmdSZWYgaW5pdGlh
bENvbG9yLCBXS0NvbG9yUGlja2VyUmVzdWx0TGlzdGVuZXJSZWYgbGlzdGVuZXIsIGNvbnN0IHZv
aWQqIGNsaWVudEluZm8pOwogdHlwZWRlZiB2b2lkICgqV0tQYWdlSGlkZUNvbG9yUGlja2VyQ2Fs
bGJhY2spKFdLUGFnZVJlZiBwYWdlLCBjb25zdCB2b2lkKiBjbGllbnRJbmZvKTsKK3R5cGVkZWYg
dm9pZCAoKldLUGFnZUFkZE1lc3NhZ2VUb0NvbnNvbGUpKFdLUGFnZVJlZiBwYWdlLCBXS01lc3Nh
Z2VTb3VyY2VUeXBlIHNvdXJjZSwgV0tNZXNzYWdlTGV2ZWxUeXBlIGxldmVsLCBXS1N0cmluZ1Jl
ZiBtZXNzYWdlLCB1bnNpZ25lZCBsaW5lTnVtYmVyLCBXS1N0cmluZ1JlZiBzb3VyY2VJRCwgY29u
c3Qgdm9pZCogY2xpZW50SW5mbyk7CiAKIC8vIERlcHJlY2F0ZWQgICAgCiB0eXBlZGVmIFdLUGFn
ZVJlZiAoKldLUGFnZUNyZWF0ZU5ld1BhZ2VDYWxsYmFja19kZXByZWNhdGVkRm9yVXNlV2l0aFYw
KShXS1BhZ2VSZWYgcGFnZSwgV0tEaWN0aW9uYXJ5UmVmIGZlYXR1cmVzLCBXS0V2ZW50TW9kaWZp
ZXJzIG1vZGlmaWVycywgV0tFdmVudE1vdXNlQnV0dG9uIG1vdXNlQnV0dG9uLCBjb25zdCB2b2lk
ICpjbGllbnRJbmZvKTsKQEAgLTI5MSwxMCArMjkzLDEzIEBAIHN0cnVjdCBXS1BhZ2VVSUNsaWVu
dCB7CiAgICAgLy8gVmVyc2lvbiAyCiAgICAgV0tQYWdlU2hvd0NvbG9yUGlja2VyQ2FsbGJhY2sg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaG93Q29sb3JQaWNrZXI7CiAg
ICAgV0tQYWdlSGlkZUNvbG9yUGlja2VyQ2FsbGJhY2sgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBoaWRlQ29sb3JQaWNrZXI7CisKKyAgICAvLyBWZXJzaW9uIDMKKyAgICBX
S1BhZ2VBZGRNZXNzYWdlVG9Db25zb2xlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIGFkZE1lc3NhZ2VUb0NvbnNvbGU7CiB9OwogdHlwZWRlZiBzdHJ1Y3QgV0tQYWdl
VUlDbGllbnQgV0tQYWdlVUlDbGllbnQ7CiAKLWVudW0geyBrV0tQYWdlVUlDbGllbnRDdXJyZW50
VmVyc2lvbiA9IDIgfTsKK2VudW0geyBrV0tQYWdlVUlDbGllbnRDdXJyZW50VmVyc2lvbiA9IDMg
fTsKIAogLy8gRmluZCBjbGllbnQuCiB0eXBlZGVmIHZvaWQgKCpXS1BhZ2VEaWRGaW5kU3RyaW5n
Q2FsbGJhY2spKFdLUGFnZVJlZiBwYWdlLCBXS1N0cmluZ1JlZiBzdHJpbmcsIHVuc2lnbmVkIG1h
dGNoQ291bnQsIGNvbnN0IHZvaWQqIGNsaWVudEluZm8pOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvV2ViUGFnZVByb3h5LmNwcAppbmRleCAxOTJjNWNiLi5mYzc2NmNhIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcApAQCAtMjksNiArMjksNyBAQAogCiAjaW5j
bHVkZSAiQXV0aGVudGljYXRpb25DaGFsbGVuZ2VQcm94eS5oIgogI2luY2x1ZGUgIkF1dGhlbnRp
Y2F0aW9uRGVjaXNpb25MaXN0ZW5lci5oIgorI2luY2x1ZGUgIkNvbnNvbGVNZXNzYWdlLmgiCiAj
aW5jbHVkZSAiRGF0YVJlZmVyZW5jZS5oIgogI2luY2x1ZGUgIkRvd25sb2FkUHJveHkuaCIKICNp
bmNsdWRlICJEcmF3aW5nQXJlYVByb3h5LmgiCkBAIC0yNzgyLDYgKzI3ODMsMTEgQEAgdm9pZCBX
ZWJQYWdlUHJveHk6OnNldE1lZGlhVm9sdW1lKGZsb2F0IHZvbHVtZSkKICAgICBtX3Byb2Nlc3Mt
PnNlbmQoTWVzc2FnZXM6OldlYlBhZ2U6OlNldE1lZGlhVm9sdW1lKHZvbHVtZSksIG1fcGFnZUlE
KTsgICAgCiB9CiAKK3ZvaWQgV2ViUGFnZVByb3h5OjphZGRNZXNzYWdlVG9Db25zb2xlKGNvbnN0
IENvbnNvbGVNZXNzYWdlJiBjb25zb2xlTWVzc2FnZSkKK3sKKyAgICBtX3VpQ2xpZW50LmFkZE1l
c3NhZ2VUb0NvbnNvbGUodGhpcywgY29uc29sZU1lc3NhZ2UpOworfQorCiAjaWYgUExBVEZPUk0o
UVQpIHx8IFBMQVRGT1JNKEVGTCkgfHwgUExBVEZPUk0oR1RLKQogdm9pZCBXZWJQYWdlUHJveHk6
OmhhbmRsZURvd25sb2FkUmVxdWVzdChEb3dubG9hZFByb3h5KiBkb3dubG9hZCkKIHsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaCBiL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaAppbmRleCA5MWZhZDMwLi4yYWRkYTkzIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKKysrIGIv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCkBAIC0xNTIsNiArMTUyLDcg
QEAgY2xhc3MgV2ViUHJvY2Vzc1Byb3h5OwogY2xhc3MgV2ViVVJMUmVxdWVzdDsKIGNsYXNzIFdl
YldoZWVsRXZlbnQ7CiBzdHJ1Y3QgQXR0cmlidXRlZFN0cmluZzsKK3N0cnVjdCBDb25zb2xlTWVz
c2FnZTsKIHN0cnVjdCBDb2xvclNwYWNlRGF0YTsKIHN0cnVjdCBEaWN0aW9uYXJ5UG9wdXBJbmZv
Owogc3RydWN0IEVkaXRvclN0YXRlOwpAQCAtODYyLDYgKzg2Myw3IEBAIHByaXZhdGU6CiAgICAg
dm9pZCBkaWRGYWlsVG9Jbml0aWFsaXplUGx1Z2luKGNvbnN0IFN0cmluZyYgbWltZVR5cGUpOwog
ICAgIHZvaWQgZGlkQmxvY2tJbnNlY3VyZVBsdWdpblZlcnNpb24oY29uc3QgU3RyaW5nJiBtaW1l
VHlwZSwgY29uc3QgU3RyaW5nJiB1cmxTdHJpbmcpOwogICAgIHZvaWQgc2V0Q2FuU2hvcnRDaXJj
dWl0SG9yaXpvbnRhbFdoZWVsRXZlbnRzKGJvb2wgY2FuU2hvcnRDaXJjdWl0SG9yaXpvbnRhbFdo
ZWVsRXZlbnRzKSB7IG1fY2FuU2hvcnRDaXJjdWl0SG9yaXpvbnRhbFdoZWVsRXZlbnRzID0gY2Fu
U2hvcnRDaXJjdWl0SG9yaXpvbnRhbFdoZWVsRXZlbnRzOyB9CisgICAgdm9pZCBhZGRNZXNzYWdl
VG9Db25zb2xlKGNvbnN0IENvbnNvbGVNZXNzYWdlJik7CiAKICAgICB2b2lkIHJlYXR0YWNoVG9X
ZWJQcm9jZXNzKCk7CiAgICAgdm9pZCByZWF0dGFjaFRvV2ViUHJvY2Vzc1dpdGhJdGVtKFdlYkJh
Y2tGb3J3YXJkTGlzdEl0ZW0qKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9XZWJQYWdlUHJveHkubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2Vi
UGFnZVByb3h5Lm1lc3NhZ2VzLmluCmluZGV4IDcxNThkODEuLmFkZTdjZGMgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkubWVzc2FnZXMuaW4KKysrIGIv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5tZXNzYWdlcy5pbgpAQCAtNjgs
NiArNjgsNyBAQCBtZXNzYWdlcyAtPiBXZWJQYWdlUHJveHkgewogICAgIERpZEZhaWxUb0luaXRp
YWxpemVQbHVnaW4oV1RGOjpTdHJpbmcgbWltZVR5cGUpCiAgICAgRGlkQmxvY2tJbnNlY3VyZVBs
dWdpblZlcnNpb24oV1RGOjpTdHJpbmcgbWltZVR5cGUsIFdURjo6U3RyaW5nIHVybFN0cmluZykK
ICAgICBTZXRDYW5TaG9ydENpcmN1aXRIb3Jpem9udGFsV2hlZWxFdmVudHMoYm9vbCBjYW5TaG9y
dENpcmN1aXRIb3Jpem9udGFsV2hlZWxFdmVudHMpCisgICAgQWRkTWVzc2FnZVRvQ29uc29sZShX
ZWJLaXQ6OkNvbnNvbGVNZXNzYWdlIGNvbnNvbGVNZXNzYWdlKQogCiAjaWYgUExBVEZPUk0oRUZM
KQogICAgIEhhbmRsZUlucHV0TWV0aG9kS2V5ZG93bigpIC0+IChib29sIGhhbmRsZWQpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViVUlDbGllbnQuY3BwIGIvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL1dlYlVJQ2xpZW50LmNwcAppbmRleCBmODhjMDBhLi5jYmJmYzEz
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViVUlDbGllbnQuY3BwCisr
KyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJVSUNsaWVudC5jcHAKQEAgLTQzOCw0ICs0
MzgsMTIgQEAgYm9vbCBXZWJVSUNsaWVudDo6aGlkZUNvbG9yUGlja2VyKFdlYlBhZ2VQcm94eSog
cGFnZSkKIH0KICNlbmRpZgogCit2b2lkIFdlYlVJQ2xpZW50OjphZGRNZXNzYWdlVG9Db25zb2xl
KFdlYlBhZ2VQcm94eSogcGFnZSwgY29uc3QgQ29uc29sZU1lc3NhZ2UmIGNvbnNvbGVNZXNzYWdl
KQoreworICAgIGlmICghbV9jbGllbnQuYWRkTWVzc2FnZVRvQ29uc29sZSkKKyAgICAgICAgcmV0
dXJuOworCisgICAgbV9jbGllbnQuYWRkTWVzc2FnZVRvQ29uc29sZSh0b0FQSShwYWdlKSwgdG9B
UEkoY29uc29sZU1lc3NhZ2Uuc291cmNlKSwgdG9BUEkoY29uc29sZU1lc3NhZ2UubGV2ZWwpLCB0
b0FQSShjb25zb2xlTWVzc2FnZS5tZXNzYWdlLmltcGwoKSksIGNvbnNvbGVNZXNzYWdlLmxpbmVO
dW1iZXIsIHRvQVBJKGNvbnNvbGVNZXNzYWdlLnNvdXJjZUlELmltcGwoKSksIG1fY2xpZW50LmNs
aWVudEluZm8pOworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJVSUNsaWVudC5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL1dlYlVJQ2xpZW50LmgKaW5kZXggOWI1MmJmZC4uZjU5OWU5MCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlVJQ2xpZW50LmgKKysrIGIvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL1dlYlVJQ2xpZW50LmgKQEAgLTI3LDYgKzI3LDcgQEAKICNkZWZpbmUgV2ViVUlD
bGllbnRfaAogCiAjaW5jbHVkZSAiQVBJQ2xpZW50LmgiCisjaW5jbHVkZSAiQ29uc29sZU1lc3Nh
Z2UuaCIKICNpbmNsdWRlICJXS1BhZ2UuaCIKICNpbmNsdWRlICJXZWJFdmVudC5oIgogI2luY2x1
ZGUgIldlYkhpdFRlc3RSZXN1bHQuaCIKQEAgLTExNiw2ICsxMTcsNyBAQCBwdWJsaWM6CiAgICAg
dm9pZCBzYXZlRGF0YVRvRmlsZUluRG93bmxvYWRzRm9sZGVyKFdlYlBhZ2VQcm94eSosIGNvbnN0
IFN0cmluZyYgc3VnZ2VzdGVkRmlsZW5hbWUsIGNvbnN0IFN0cmluZyYgbWltZVR5cGUsIGNvbnN0
IFN0cmluZyYgb3JpZ2luYXRpbmdVUkxTdHJpbmcsIFdlYkRhdGEqKTsKIAogICAgIGJvb2wgc2hv
dWxkSW50ZXJydXB0SmF2YVNjcmlwdChXZWJQYWdlUHJveHkqKTsKKyAgICB2b2lkIGFkZE1lc3Nh
Z2VUb0NvbnNvbGUoV2ViUGFnZVByb3h5KiwgY29uc3QgQ29uc29sZU1lc3NhZ2UmKTsKIAogI2lm
IEVOQUJMRShJTlBVVF9UWVBFX0NPTE9SKQogICAgIGJvb2wgc2hvd0NvbG9yUGlja2VyKFdlYlBh
Z2VQcm94eSosIGNvbnN0IFN0cmluZyYsIFdlYkNvbG9yUGlja2VyUmVzdWx0TGlzdGVuZXJQcm94
eSopOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9y
dC9XZWJDaHJvbWVDbGllbnQuY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3Jl
U3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuY3BwCmluZGV4IDJhNWRhNWMuLjM0MGNhMGUgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21l
Q2xpZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0
L1dlYkNocm9tZUNsaWVudC5jcHAKQEAgLTI3LDYgKzI3LDcgQEAKICNpbmNsdWRlICJjb25maWcu
aCIKICNpbmNsdWRlICJXZWJDaHJvbWVDbGllbnQuaCIKIAorI2luY2x1ZGUgIkNvbnNvbGVNZXNz
YWdlLmgiCiAjaW5jbHVkZSAiRHJhd2luZ0FyZWEuaCIKICNpbmNsdWRlICJJbmplY3RlZEJ1bmRs
ZU5hdmlnYXRpb25BY3Rpb24uaCIKICNpbmNsdWRlICJJbmplY3RlZEJ1bmRsZVVzZXJNZXNzYWdl
Q29kZXJzLmgiCkBAIC0yNjcsMTIgKzI2OCwxMiBAQCB2b2lkIFdlYkNocm9tZUNsaWVudDo6c2V0
UmVzaXphYmxlKGJvb2wgcmVzaXphYmxlKQogICAgIG1fcGFnZS0+c2VuZChNZXNzYWdlczo6V2Vi
UGFnZVByb3h5OjpTZXRJc1Jlc2l6YWJsZShyZXNpemFibGUpKTsKIH0KIAotdm9pZCBXZWJDaHJv
bWVDbGllbnQ6OmFkZE1lc3NhZ2VUb0NvbnNvbGUoTWVzc2FnZVNvdXJjZSwgTWVzc2FnZVR5cGUs
IE1lc3NhZ2VMZXZlbCwgY29uc3QgU3RyaW5nJiBtZXNzYWdlLCB1bnNpZ25lZCBpbnQgbGluZU51
bWJlciwgY29uc3QgU3RyaW5nJiAvKnNvdXJjZUlEKi8pCit2b2lkIFdlYkNocm9tZUNsaWVudDo6
YWRkTWVzc2FnZVRvQ29uc29sZShNZXNzYWdlU291cmNlIHNvdXJjZSwgTWVzc2FnZVR5cGUsIE1l
c3NhZ2VMZXZlbCBsZXZlbCwgY29uc3QgU3RyaW5nJiBtZXNzYWdlLCB1bnNpZ25lZCBsaW5lTnVt
YmVyLCBjb25zdCBTdHJpbmcmIHNvdXJjZUlEKQogewogICAgIC8vIE5vdGlmeSB0aGUgYnVuZGxl
IGNsaWVudC4KICAgICBtX3BhZ2UtPmluamVjdGVkQnVuZGxlVUlDbGllbnQoKS53aWxsQWRkTWVz
c2FnZVRvQ29uc29sZShtX3BhZ2UsIG1lc3NhZ2UsIGxpbmVOdW1iZXIpOwogCi0gICAgbm90SW1w
bGVtZW50ZWQoKTsKKyAgICBtX3BhZ2UtPnNlbmQoTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6QWRk
TWVzc2FnZVRvQ29uc29sZShDb25zb2xlTWVzc2FnZShzb3VyY2UsIGxldmVsLCBtZXNzYWdlLCBs
aW5lTnVtYmVyLCBzb3VyY2VJRCkpKTsKIH0KIAogYm9vbCBXZWJDaHJvbWVDbGllbnQ6OmNhblJ1
bkJlZm9yZVVubG9hZENvbmZpcm1QYW5lbCgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi93
aW4vV2ViS2l0Mi52Y3Byb2ogYi9Tb3VyY2UvV2ViS2l0Mi93aW4vV2ViS2l0Mi52Y3Byb2oKaW5k
ZXggMDU3Y2JmMy4uZTY2Zjg2YSAxMDA3NTUKLS0tIGEvU291cmNlL1dlYktpdDIvd2luL1dlYktp
dDIudmNwcm9qCisrKyBiL1NvdXJjZS9XZWJLaXQyL3dpbi9XZWJLaXQyLnZjcHJvagpAQCAtNDI2
LDYgKzQyNiwxNCBAQAogCQkJCVJlbGF0aXZlUGF0aD0iLi5cU2hhcmVkXENvbW1hbmRMaW5lLmgi
CiAJCQkJPgogCQkJPC9GaWxlPgorICAgICAgICAgICAgICAgICAgICAgICAgPEZpbGUKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgUmVsYXRpdmVQYXRoPSIuLlxTaGFyZWRcQ29uc29s
ZU1lc3NhZ2UuY3BwIgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+CisgICAgICAg
ICAgICAgICAgICAgICAgICA8L0ZpbGU+CisgICAgICAgICAgICAgICAgICAgICAgICA8RmlsZQor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZWxhdGl2ZVBhdGg9Ii4uXFNoYXJlZFxD
b25zb2xlTWVzc2FnZS5oIgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+CisgICAg
ICAgICAgICAgICAgICAgICAgICA8L0ZpbGU+CiAJCQk8RmlsZQogCQkJCVJlbGF0aXZlUGF0aD0i
Li5cU2hhcmVkXERpY3Rpb25hcnlQb3B1cEluZm8uY3BwIgogCQkJCT4KQEAgLTg5Myw2ICs5MDEs
MTAgQEAKIAkJCQkJUmVsYXRpdmVQYXRoPSIuLlxTaGFyZWRcQVBJXGNcV0tDb25uZWN0aW9uUmVm
LmgiCiAJCQkJCT4KIAkJCQk8L0ZpbGU+CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IDxGaWxlCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUmVsYXRpdmVQ
YXRoPSIuLlxTaGFyZWRcQVBJXGNcV0tDb25zb2xlVHlwZXMuaCIKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICA+CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IDwvRmlsZT4KIAkJCQk8RmlsZQogCQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXFNoYXJlZFxBUElcY1xX
S0NvbnRleHRNZW51SXRlbS5jcHAiCiAJCQkJCT4KZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxv
ZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRleCAwZGQ0OTQxLi4yMzVkNWMwIDEwMDY0NAotLS0gYS9U
b29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzIgQEAKKzIw
MTItMTEtMjEgIENhcmxvcyBHYXJjaWEgQ2FtcG9zICA8Y2dhcmNpYUBpZ2FsaWEuY29tPgorCisg
ICAgICAgIFtXSzJdIEltcGxlbWVudCBXZWJDaHJvbWVDbGllbnQ6OmFkZE1lc3NhZ2VUb0NvbnNv
bGUoKQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Nzk0
ODIKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIE1p
bmlCcm93c2VyL21hYy9XSzJCcm93c2VyV2luZG93Q29udHJvbGxlci5tOgorICAgICAgICAoLVtX
SzJCcm93c2VyV2luZG93Q29udHJvbGxlciBhd2FrZUZyb21OaWJdKTogQWRkIGVtcHR5CisgICAg
ICAgIGFkZE1lc3NhZ2VUb0NvbnNvbGUgY2FsbGJhY2sgdG8gVUkgY2xpZW50IHN0cnVjdC4KKyAg
ICAgICAgKiBUZXN0V2ViS2l0QVBJL0dOVW1ha2VmaWxlLmFtOiBBZGQgQ29uc29sZU1lc3NhZ2Ug
dW5pdCB0ZXN0cy4KKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDIvQ29uc29s
ZU1lc3NhZ2UuY3BwOiBBZGRlZC4KKyAgICAgICAgKFRlc3RXZWJLaXRBUEkpOgorICAgICAgICAo
VGVzdFdlYktpdEFQSTo6Q29uc29sZU1lc3NhZ2U6OkNvbnNvbGVNZXNzYWdlKToKKyAgICAgICAg
KENvbnNvbGVNZXNzYWdlKToKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OkNvbnNvbGVNZXNzYWdl
Ojphc3NlcnRFcXVhbCk6CisgICAgICAgIChXZWJLaXQyQ29uc29sZU1lc3NhZ2VUZXN0KToKKyAg
ICAgICAgKFRlc3RXZWJLaXRBUEk6OldlYktpdDJDb25zb2xlTWVzc2FnZVRlc3Q6OldlYktpdDJD
b25zb2xlTWVzc2FnZVRlc3QpOgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6V2ViS2l0MkNvbnNv
bGVNZXNzYWdlVGVzdDo6YWRkTWVzc2FnZVRvQ29uc29sZSk6CisgICAgICAgIChUZXN0V2ViS2l0
QVBJOjpXZWJLaXQyQ29uc29sZU1lc3NhZ2VUZXN0OjpzZXRVSUNsaWVudCk6CisgICAgICAgIChU
ZXN0V2ViS2l0QVBJOjpXZWJLaXQyQ29uc29sZU1lc3NhZ2VUZXN0OjpTZXRVcCk6CisgICAgICAg
IChUZXN0V2ViS2l0QVBJOjpXZWJLaXQyQ29uc29sZU1lc3NhZ2VUZXN0Ojpsb2FkSFRNTEFuZFJ1
blVudGlsQ29uc29sZU1lc3NhZ2VSZWNlaXZlZCk6CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpU
RVNUX0YpOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvd2luL1Rlc3RXZWJLaXRBUEkudmNwcm9q
OiBBZGQgQ29uc29sZU1lc3NhZ2UgdW5pdCB0ZXN0cy4KKyAgICAgICAgKiBXZWJLaXRUZXN0UnVu
bmVyL1Rlc3RDb250cm9sbGVyLmNwcDoKKyAgICAgICAgKFdUUjo6VGVzdENvbnRyb2xsZXI6OmNy
ZWF0ZU90aGVyUGFnZSk6IEFkZCBlbXB0eQorICAgICAgICBhZGRNZXNzYWdlVG9Db25zb2xlIGNh
bGxiYWNrIHRvIFVJIGNsaWVudCBzdHJ1Y3QuCisgICAgICAgIChXVFI6OlRlc3RDb250cm9sbGVy
OjpjcmVhdGVXZWJWaWV3V2l0aE9wdGlvbnMpOiBEaXR0by4KKwogMjAxMi0xMS0yMSAgSm9uZ3Nl
b2sgWWFuZyAgPGpzNDUueWFuZ0BzYW1zdW5nLmNvbT4KIAogICAgICAgICBbRUZMXVtXSzJdIFJl
bmFtZSBld2tfdmlld19zZXR0aW5nX2VuY29kaW5nX2N1c3RvbV9YWFggdG8gZXdrX3ZpZXdfY3Vz
dG9tX2VuY29kaW5nX1hYWApkaWZmIC0tZ2l0IGEvVG9vbHMvTWluaUJyb3dzZXIvbWFjL1dLMkJy
b3dzZXJXaW5kb3dDb250cm9sbGVyLm0gYi9Ub29scy9NaW5pQnJvd3Nlci9tYWMvV0syQnJvd3Nl
cldpbmRvd0NvbnRyb2xsZXIubQppbmRleCAxNzMxZWI2Li4wMjYyYzI2IDEwMDY0NAotLS0gYS9U
b29scy9NaW5pQnJvd3Nlci9tYWMvV0syQnJvd3NlcldpbmRvd0NvbnRyb2xsZXIubQorKysgYi9U
b29scy9NaW5pQnJvd3Nlci9tYWMvV0syQnJvd3NlcldpbmRvd0NvbnRyb2xsZXIubQpAQCAtNzAz
LDYgKzcwMyw3IEBAIC0gKHZvaWQpYXdha2VGcm9tTmliCiAgICAgICAgIDAsIC8vIHVuYXZhaWxh
YmxlUGx1Z2luQnV0dG9uQ2xpY2tlZAogICAgICAgICAwLCAvLyBzaG93Q29sb3JQaWNrZXIKICAg
ICAgICAgMCwgLy8gaGlkZUNvbG9yUGlja2VyCisgICAgICAgIDAsIC8vIGFkZE1lc3NhZ2VUb0Nv
bnNvbGUKICAgICB9OwogICAgIFdLUGFnZVNldFBhZ2VVSUNsaWVudChfd2ViVmlldy5wYWdlUmVm
LCAmdWlDbGllbnQpOwogfQpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9HTlVtYWtl
ZmlsZS5hbSBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvR05VbWFrZWZpbGUuYW0KaW5kZXggNzU5Y2Ni
OWUuLjQ4ZmNlMGMgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvR05VbWFrZWZpbGUu
YW0KKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9HTlVtYWtlZmlsZS5hbQpAQCAtMTMwLDYgKzEz
MCw3IEBAIFByb2dyYW1zX1Rlc3RXZWJLaXRBUElfVGVzdFdlYktpdDJfU09VUkNFUyA9IFwKIAlU
b29scy9UZXN0V2ViS2l0QVBJL1BsYXRmb3JtVXRpbGl0aWVzLmggXAogCVRvb2xzL1Rlc3RXZWJL
aXRBUEkvUGxhdGZvcm1XZWJWaWV3LmggXAogCVRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2Vi
S2l0Mi9DYW5IYW5kbGVSZXF1ZXN0LmNwcCBcCisJVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9X
ZWJLaXQyL0NvbnNvbGVNZXNzYWdlLmNwcCBcCiAJVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9X
ZWJLaXQyL0Nvb2tpZU1hbmFnZXIuY3BwIFwKIAlUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dl
YktpdDIvRG9jdW1lbnRTdGFydFVzZXJTY3JpcHRBbGVydENyYXNoLmNwcCBcCiAJVG9vbHMvVGVz
dFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyL0RPTVdpbmRvd0V4dGVuc2lvbkJhc2ljLmNwcCBcCmRp
ZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDIvQ29uc29sZU1lc3Nh
Z2UuY3BwIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyL0NvbnNvbGVNZXNzYWdl
LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5jODk4N2RjCi0tLSAvZGV2
L251bGwKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyL0NvbnNvbGVNZXNz
YWdlLmNwcApAQCAtMCwwICsxLDE3NiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMiBJZ2Fs
aWEgUy5MLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICog
MS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9y
bSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisg
KiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0
aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQ
TEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVT
UyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAor
ICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1Mg
Rk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQg
U0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFO
WSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisg
KiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQ
Uk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBV
U0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VW
RVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICog
Q09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNF
IE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBU
SElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBT
VUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiUGxhdGZv
cm1VdGlsaXRpZXMuaCIKKyNpbmNsdWRlICJQbGF0Zm9ybVdlYlZpZXcuaCIKKyNpbmNsdWRlIDxX
ZWJLaXQyL1dLUmV0YWluUHRyLmg+CisjaW5jbHVkZSA8d3RmL093blB0ci5oPgorI2luY2x1ZGUg
PHd0Zi9QYXNzT3duUHRyLmg+CisKKyNpbmNsdWRlIDxzdGRpby5oPgorCituYW1lc3BhY2UgVGVz
dFdlYktpdEFQSSB7CisKK3N0cnVjdCBDb25zb2xlTWVzc2FnZSB7CisgICAgQ29uc29sZU1lc3Nh
Z2UoKQorICAgICAgICA6IHNvdXJjZShrV0tNZXNzYWdlU291cmNlT3RoZXIpCisgICAgICAgICwg
bGV2ZWwoa1dLTWVzc2FnZUxldmVsTG9nKQorICAgICAgICAsIG1lc3NhZ2UoMCkKKyAgICAgICAg
LCBsaW5lTnVtYmVyKDApCisgICAgICAgICwgc291cmNlSUQoMCkKKyAgICB7CisgICAgfQorCisg
ICAgQ29uc29sZU1lc3NhZ2UoV0tNZXNzYWdlU291cmNlVHlwZSBzb3VyY2UsIFdLTWVzc2FnZUxl
dmVsVHlwZSBsZXZlbCwgV0tTdHJpbmdSZWYgbWVzc2FnZSwgdW5zaWduZWQgbGluZU51bWJlciwg
V0tTdHJpbmdSZWYgc291cmNlSUQpCisgICAgICAgIDogc291cmNlKHNvdXJjZSkKKyAgICAgICAg
LCBsZXZlbChsZXZlbCkKKyAgICAgICAgLCBtZXNzYWdlKG1lc3NhZ2UpCisgICAgICAgICwgbGlu
ZU51bWJlcihsaW5lTnVtYmVyKQorICAgICAgICAsIHNvdXJjZUlEKHNvdXJjZUlEKQorICAgIHsK
KyAgICB9CisKKyAgICB2b2lkIGFzc2VydEVxdWFsKGNvbnN0IENvbnNvbGVNZXNzYWdlJiBvdGhl
cikgY29uc3QKKyAgICB7CisgICAgICAgIEVYUEVDVF9FUShzb3VyY2UsIG90aGVyLnNvdXJjZSk7
CisgICAgICAgIEVYUEVDVF9FUShsZXZlbCwgb3RoZXIubGV2ZWwpOworICAgICAgICBFWFBFQ1Rf
VFJVRShXS1N0cmluZ0lzRXF1YWwobWVzc2FnZS5nZXQoKSwgb3RoZXIubWVzc2FnZS5nZXQoKSkp
OworICAgICAgICBFWFBFQ1RfRVEobGluZU51bWJlciwgb3RoZXIubGluZU51bWJlcik7CisgICAg
ICAgIEVYUEVDVF9UUlVFKFdLU3RyaW5nSXNFcXVhbChzb3VyY2VJRC5nZXQoKSwgb3RoZXIuc291
cmNlSUQuZ2V0KCkpKTsKKyAgICB9CisKKyAgICBXS01lc3NhZ2VTb3VyY2VUeXBlIHNvdXJjZTsK
KyAgICBXS01lc3NhZ2VMZXZlbFR5cGUgbGV2ZWw7CisgICAgV0tSZXRhaW5QdHI8V0tTdHJpbmdS
ZWY+IG1lc3NhZ2U7CisgICAgdW5zaWduZWQgbGluZU51bWJlcjsKKyAgICBXS1JldGFpblB0cjxX
S1N0cmluZ1JlZj4gc291cmNlSUQ7Cit9OworCitjbGFzcyBXZWJLaXQyQ29uc29sZU1lc3NhZ2VU
ZXN0IDogcHVibGljIDo6dGVzdGluZzo6VGVzdCB7CitwdWJsaWM6CisgICAgV2ViS2l0MkNvbnNv
bGVNZXNzYWdlVGVzdCgpCisgICAgICAgIDogbV9kaWRSZWNlaXZlQ29uc29sZU1lc3NhZ2UoZmFs
c2UpCisgICAgeworICAgIH0KKworICAgIHN0YXRpYyB2b2lkIGFkZE1lc3NhZ2VUb0NvbnNvbGUo
V0tQYWdlUmVmLCBXS01lc3NhZ2VTb3VyY2VUeXBlIHNvdXJjZSwgV0tNZXNzYWdlTGV2ZWxUeXBl
IGxldmVsLCBXS1N0cmluZ1JlZiBtZXNzYWdlLCB1bnNpZ25lZCBsaW5lTnVtYmVyLCBXS1N0cmlu
Z1JlZiBzb3VyY2VJRCwgY29uc3Qgdm9pZCogY2xpZW50SW5mbykKKyAgICB7CisgICAgICAgICgo
V2ViS2l0MkNvbnNvbGVNZXNzYWdlVGVzdCopY2xpZW50SW5mbyktPm1fY29uc29sZU1lc3NhZ2Ug
PSBDb25zb2xlTWVzc2FnZShzb3VyY2UsIGxldmVsLCBtZXNzYWdlLCBsaW5lTnVtYmVyLCBzb3Vy
Y2VJRCk7CisgICAgICAgICgoV2ViS2l0MkNvbnNvbGVNZXNzYWdlVGVzdCopY2xpZW50SW5mbykt
Pm1fZGlkUmVjZWl2ZUNvbnNvbGVNZXNzYWdlID0gdHJ1ZTsKKyAgICB9CisKKyAgICBzdGF0aWMg
dm9pZCBzZXRVSUNsaWVudChXS1BhZ2VSZWYgcGFnZSwgY29uc3Qgdm9pZCogY2xpZW50SW5mbykK
KyAgICB7CisgICAgICAgIFdLUGFnZVVJQ2xpZW50IHVpQ2xpZW50OworICAgICAgICBtZW1zZXQo
JnVpQ2xpZW50LCAwLCBzaXplb2YodWlDbGllbnQpKTsKKyAgICAgICAgdWlDbGllbnQudmVyc2lv
biA9IGtXS1BhZ2VVSUNsaWVudEN1cnJlbnRWZXJzaW9uOworICAgICAgICB1aUNsaWVudC5jbGll
bnRJbmZvID0gY2xpZW50SW5mbzsKKyAgICAgICAgdWlDbGllbnQuYWRkTWVzc2FnZVRvQ29uc29s
ZSA9IGFkZE1lc3NhZ2VUb0NvbnNvbGU7CisgICAgICAgIFdLUGFnZVNldFBhZ2VVSUNsaWVudChw
YWdlLCAmdWlDbGllbnQpOworICAgIH0KKworICAgIHZpcnR1YWwgdm9pZCBTZXRVcCgpCisgICAg
eworICAgICAgICBtX2NvbnRleHQgPSBhZG9wdFdLKFdLQ29udGV4dENyZWF0ZSgpKTsKKyAgICAg
ICAgbV93ZWJWaWV3ID0gYWRvcHRQdHIobmV3IFBsYXRmb3JtV2ViVmlldyhtX2NvbnRleHQuZ2V0
KCkpKTsKKyAgICAgICAgc2V0VUlDbGllbnQobV93ZWJWaWV3LT5wYWdlKCksIHRoaXMpOworCisg
ICAgICAgIG1fZGlkUmVjZWl2ZUNvbnNvbGVNZXNzYWdlID0gZmFsc2U7CisgICAgfQorCisgICAg
dm9pZCBsb2FkSFRNTEFuZFJ1blVudGlsQ29uc29sZU1lc3NhZ2VSZWNlaXZlZChXS1N0cmluZ1Jl
ZiBodG1sLCBXS1VSTFJlZiBiYXNlVVJMKQorICAgIHsKKyAgICAgICAgV0tQYWdlTG9hZEhUTUxT
dHJpbmcobV93ZWJWaWV3LT5wYWdlKCksIGh0bWwsIGJhc2VVUkwpOworICAgICAgICBVdGlsOjpy
dW4oJm1fZGlkUmVjZWl2ZUNvbnNvbGVNZXNzYWdlKTsKKyAgICB9CisKKyAgICBXS1JldGFpblB0
cjxXS0NvbnRleHRSZWY+IG1fY29udGV4dDsKKyAgICBPd25QdHI8UGxhdGZvcm1XZWJWaWV3PiBt
X3dlYlZpZXc7CisgICAgYm9vbCBtX2RpZFJlY2VpdmVDb25zb2xlTWVzc2FnZTsKKyAgICBDb25z
b2xlTWVzc2FnZSBtX2NvbnNvbGVNZXNzYWdlOworfTsKKworVEVTVF9GKFdlYktpdDJDb25zb2xl
TWVzc2FnZVRlc3QsIExvZ01lc3NhZ2UpCit7CisgICAgV0tSZXRhaW5QdHI8V0tTdHJpbmdSZWY+
IGh0bWxTdHJpbmcoQWRvcHRXSywgV0tTdHJpbmdDcmVhdGVXaXRoVVRGOENTdHJpbmcoIjxodG1s
Pjxib2R5IG9ubG9hZD0nY29uc29sZS5sb2coXCJMb2cgQ29uc29sZSBNZXNzYWdlXCIpOyc+PC9i
b2R5PjwvaHRtbD4iKSk7CisgICAgV0tSZXRhaW5QdHI8V0tVUkxSZWY+IGJhc2VVUkwoQWRvcHRX
SywgV0tVUkxDcmVhdGVXaXRoVVRGOENTdHJpbmcoImh0dHA6Ly9mb28uY29tL2JhciIpKTsKKyAg
ICBsb2FkSFRNTEFuZFJ1blVudGlsQ29uc29sZU1lc3NhZ2VSZWNlaXZlZChodG1sU3RyaW5nLmdl
dCgpLCBiYXNlVVJMLmdldCgpKTsKKyAgICBXS1JldGFpblB0cjxXS1N0cmluZ1JlZj4gbWVzc2Fn
ZShBZG9wdFdLLCBXS1N0cmluZ0NyZWF0ZVdpdGhVVEY4Q1N0cmluZygiTG9nIENvbnNvbGUgTWVz
c2FnZSIpKTsKKyAgICBXS1JldGFpblB0cjxXS1N0cmluZ1JlZj4gc291cmNlSUQoQWRvcHRXSywg
V0tVUkxDb3B5U3RyaW5nKGJhc2VVUkwuZ2V0KCkpKTsKKyAgICBtX2NvbnNvbGVNZXNzYWdlLmFz
c2VydEVxdWFsKENvbnNvbGVNZXNzYWdlKGtXS01lc3NhZ2VTb3VyY2VDb25zb2xlQVBJLCBrV0tN
ZXNzYWdlTGV2ZWxMb2csIG1lc3NhZ2UuZ2V0KCksIDEsIHNvdXJjZUlELmdldCgpKSk7Cit9CisK
K1RFU1RfRihXZWJLaXQyQ29uc29sZU1lc3NhZ2VUZXN0LCBJbmZvTWVzc2FnZSkKK3sKKyAgICBX
S1JldGFpblB0cjxXS1N0cmluZ1JlZj4gaHRtbFN0cmluZyhBZG9wdFdLLCBXS1N0cmluZ0NyZWF0
ZVdpdGhVVEY4Q1N0cmluZygiPGh0bWw+PGJvZHkgb25sb2FkPSdjb25zb2xlLmluZm8oXCJJbmZv
IENvbnNvbGUgTWVzc2FnZVwiKTsnPjwvYm9keT48L2h0bWw+IikpOworICAgIFdLUmV0YWluUHRy
PFdLVVJMUmVmPiBiYXNlVVJMKEFkb3B0V0ssIFdLVVJMQ3JlYXRlV2l0aFVURjhDU3RyaW5nKCJo
dHRwOi8vZm9vLmNvbS9iYXIiKSk7CisgICAgbG9hZEhUTUxBbmRSdW5VbnRpbENvbnNvbGVNZXNz
YWdlUmVjZWl2ZWQoaHRtbFN0cmluZy5nZXQoKSwgYmFzZVVSTC5nZXQoKSk7CisgICAgV0tSZXRh
aW5QdHI8V0tTdHJpbmdSZWY+IG1lc3NhZ2UoQWRvcHRXSywgV0tTdHJpbmdDcmVhdGVXaXRoVVRG
OENTdHJpbmcoIkluZm8gQ29uc29sZSBNZXNzYWdlIikpOworICAgIFdLUmV0YWluUHRyPFdLU3Ry
aW5nUmVmPiBzb3VyY2VJRChBZG9wdFdLLCBXS1VSTENvcHlTdHJpbmcoYmFzZVVSTC5nZXQoKSkp
OworICAgIG1fY29uc29sZU1lc3NhZ2UuYXNzZXJ0RXF1YWwoQ29uc29sZU1lc3NhZ2Uoa1dLTWVz
c2FnZVNvdXJjZUNvbnNvbGVBUEksIGtXS01lc3NhZ2VMZXZlbExvZywgbWVzc2FnZS5nZXQoKSwg
MSwgc291cmNlSUQuZ2V0KCkpKTsKK30KKworVEVTVF9GKFdlYktpdDJDb25zb2xlTWVzc2FnZVRl
c3QsIERlYnVnTWVzc2FnZSkKK3sKKyAgICBXS1JldGFpblB0cjxXS1N0cmluZ1JlZj4gaHRtbFN0
cmluZyhBZG9wdFdLLCBXS1N0cmluZ0NyZWF0ZVdpdGhVVEY4Q1N0cmluZygiPGh0bWw+PGJvZHkg
b25sb2FkPSdjb25zb2xlLmRlYnVnKFwiRGVidWcgQ29uc29sZSBNZXNzYWdlXCIpOyc+PC9ib2R5
PjwvaHRtbD4iKSk7CisgICAgV0tSZXRhaW5QdHI8V0tVUkxSZWY+IGJhc2VVUkwoQWRvcHRXSywg
V0tVUkxDcmVhdGVXaXRoVVRGOENTdHJpbmcoImh0dHA6Ly9mb28uY29tL2JhciIpKTsKKyAgICBs
b2FkSFRNTEFuZFJ1blVudGlsQ29uc29sZU1lc3NhZ2VSZWNlaXZlZChodG1sU3RyaW5nLmdldCgp
LCBiYXNlVVJMLmdldCgpKTsKKyAgICBXS1JldGFpblB0cjxXS1N0cmluZ1JlZj4gbWVzc2FnZShB
ZG9wdFdLLCBXS1N0cmluZ0NyZWF0ZVdpdGhVVEY4Q1N0cmluZygiRGVidWcgQ29uc29sZSBNZXNz
YWdlIikpOworICAgIFdLUmV0YWluUHRyPFdLU3RyaW5nUmVmPiBzb3VyY2VJRChBZG9wdFdLLCBX
S1VSTENvcHlTdHJpbmcoYmFzZVVSTC5nZXQoKSkpOworICAgIG1fY29uc29sZU1lc3NhZ2UuYXNz
ZXJ0RXF1YWwoQ29uc29sZU1lc3NhZ2Uoa1dLTWVzc2FnZVNvdXJjZUNvbnNvbGVBUEksIGtXS01l
c3NhZ2VMZXZlbExvZywgbWVzc2FnZS5nZXQoKSwgMSwgc291cmNlSUQuZ2V0KCkpKTsKK30KKwor
VEVTVF9GKFdlYktpdDJDb25zb2xlTWVzc2FnZVRlc3QsIFdhcm5pbmdNZXNzYWdlKQoreworICAg
IFdLUmV0YWluUHRyPFdLU3RyaW5nUmVmPiBodG1sU3RyaW5nKEFkb3B0V0ssIFdLU3RyaW5nQ3Jl
YXRlV2l0aFVURjhDU3RyaW5nKCI8aHRtbD48Ym9keSBvbmxvYWQ9J2NvbnNvbGUud2FybihcIldh
cm5pbmcgQ29uc29sZSBNZXNzYWdlXCIpOyc+PC9ib2R5PjwvaHRtbD4iKSk7CisgICAgV0tSZXRh
aW5QdHI8V0tVUkxSZWY+IGJhc2VVUkwoQWRvcHRXSywgV0tVUkxDcmVhdGVXaXRoVVRGOENTdHJp
bmcoImh0dHA6Ly9mb28uY29tL2JhciIpKTsKKyAgICBsb2FkSFRNTEFuZFJ1blVudGlsQ29uc29s
ZU1lc3NhZ2VSZWNlaXZlZChodG1sU3RyaW5nLmdldCgpLCBiYXNlVVJMLmdldCgpKTsKKyAgICBX
S1JldGFpblB0cjxXS1N0cmluZ1JlZj4gbWVzc2FnZShBZG9wdFdLLCBXS1N0cmluZ0NyZWF0ZVdp
dGhVVEY4Q1N0cmluZygiV2FybmluZyBDb25zb2xlIE1lc3NhZ2UiKSk7CisgICAgV0tSZXRhaW5Q
dHI8V0tTdHJpbmdSZWY+IHNvdXJjZUlEKEFkb3B0V0ssIFdLVVJMQ29weVN0cmluZyhiYXNlVVJM
LmdldCgpKSk7CisgICAgbV9jb25zb2xlTWVzc2FnZS5hc3NlcnRFcXVhbChDb25zb2xlTWVzc2Fn
ZShrV0tNZXNzYWdlU291cmNlQ29uc29sZUFQSSwga1dLTWVzc2FnZUxldmVsV2FybmluZywgbWVz
c2FnZS5nZXQoKSwgMSwgc291cmNlSUQuZ2V0KCkpKTsKK30KKworVEVTVF9GKFdlYktpdDJDb25z
b2xlTWVzc2FnZVRlc3QsIEVycm9yTWVzc2FnZSkKK3sKKyAgICBXS1JldGFpblB0cjxXS1N0cmlu
Z1JlZj4gaHRtbFN0cmluZyhBZG9wdFdLLCBXS1N0cmluZ0NyZWF0ZVdpdGhVVEY4Q1N0cmluZygi
PGh0bWw+PGJvZHkgb25sb2FkPSdjb25zb2xlLmVycm9yKFwiRXJyb3IgQ29uc29sZSBNZXNzYWdl
XCIpOyc+PC9ib2R5PjwvaHRtbD4iKSk7CisgICAgV0tSZXRhaW5QdHI8V0tVUkxSZWY+IGJhc2VV
UkwoQWRvcHRXSywgV0tVUkxDcmVhdGVXaXRoVVRGOENTdHJpbmcoImh0dHA6Ly9mb28uY29tL2Jh
ciIpKTsKKyAgICBsb2FkSFRNTEFuZFJ1blVudGlsQ29uc29sZU1lc3NhZ2VSZWNlaXZlZChodG1s
U3RyaW5nLmdldCgpLCBiYXNlVVJMLmdldCgpKTsKKyAgICBXS1JldGFpblB0cjxXS1N0cmluZ1Jl
Zj4gbWVzc2FnZShBZG9wdFdLLCBXS1N0cmluZ0NyZWF0ZVdpdGhVVEY4Q1N0cmluZygiRXJyb3Ig
Q29uc29sZSBNZXNzYWdlIikpOworICAgIFdLUmV0YWluUHRyPFdLU3RyaW5nUmVmPiBzb3VyY2VJ
RChBZG9wdFdLLCBXS1VSTENvcHlTdHJpbmcoYmFzZVVSTC5nZXQoKSkpOworICAgIG1fY29uc29s
ZU1lc3NhZ2UuYXNzZXJ0RXF1YWwoQ29uc29sZU1lc3NhZ2Uoa1dLTWVzc2FnZVNvdXJjZUNvbnNv
bGVBUEksIGtXS01lc3NhZ2VMZXZlbEVycm9yLCBtZXNzYWdlLmdldCgpLCAxLCBzb3VyY2VJRC5n
ZXQoKSkpOworfQorCitURVNUX0YoV2ViS2l0MkNvbnNvbGVNZXNzYWdlVGVzdCwgRXhjZXB0aW9u
TWVzc2FnZSkKK3sKKyAgICBXS1JldGFpblB0cjxXS1N0cmluZ1JlZj4gaHRtbFN0cmluZyhBZG9w
dFdLLCBXS1N0cmluZ0NyZWF0ZVdpdGhVVEY4Q1N0cmluZygiPGh0bWw+PGJvZHkgb25sb2FkPSdm
b28oKTsnPjwvYm9keT48L2h0bWw+IikpOworICAgIFdLUmV0YWluUHRyPFdLVVJMUmVmPiBiYXNl
VVJMKEFkb3B0V0ssIFdLVVJMQ3JlYXRlV2l0aFVURjhDU3RyaW5nKCJodHRwOi8vZm9vLmNvbS9i
YXIiKSk7CisgICAgbG9hZEhUTUxBbmRSdW5VbnRpbENvbnNvbGVNZXNzYWdlUmVjZWl2ZWQoaHRt
bFN0cmluZy5nZXQoKSwgYmFzZVVSTC5nZXQoKSk7CisgICAgV0tSZXRhaW5QdHI8V0tTdHJpbmdS
ZWY+IG1lc3NhZ2UoQWRvcHRXSywgV0tTdHJpbmdDcmVhdGVXaXRoVVRGOENTdHJpbmcoIlJlZmVy
ZW5jZUVycm9yOiBDYW4ndCBmaW5kIHZhcmlhYmxlOiBmb28iKSk7CisgICAgV0tSZXRhaW5QdHI8
V0tTdHJpbmdSZWY+IHNvdXJjZUlEKEFkb3B0V0ssIFdLVVJMQ29weVN0cmluZyhiYXNlVVJMLmdl
dCgpKSk7CisgICAgbV9jb25zb2xlTWVzc2FnZS5hc3NlcnRFcXVhbChDb25zb2xlTWVzc2FnZShr
V0tNZXNzYWdlU291cmNlSlMsIGtXS01lc3NhZ2VMZXZlbEVycm9yLCBtZXNzYWdlLmdldCgpLCAx
LCBzb3VyY2VJRC5nZXQoKSkpOworfQorCit9IC8vIG5hbWVzcGFjZSBUZXN0V2ViS2l0QVBJCmRp
ZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL3dpbi9UZXN0V2ViS2l0QVBJLnZjcHJvaiBi
L1Rvb2xzL1Rlc3RXZWJLaXRBUEkvd2luL1Rlc3RXZWJLaXRBUEkudmNwcm9qCmluZGV4IGMxMmYw
MjQuLjZiN2QzMmIgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvd2luL1Rlc3RXZWJL
aXRBUEkudmNwcm9qCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvd2luL1Rlc3RXZWJLaXRBUEku
dmNwcm9qCkBAIC00MzUsNiArNDM1LDEwIEBACiAJCQkJCVJlbGF0aXZlUGF0aD0iLi5cVGVzdHNc
V2ViS2l0MlxDYW5IYW5kbGVSZXF1ZXN0LmNwcCIKIAkJCQkJPgogCQkJCTwvRmlsZT4KKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgPEZpbGUKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBSZWxhdGl2ZVBhdGg9Ii4uXFRlc3RzXFdlYktpdDJcQ29uc29sZU1l
c3NhZ2UuY3BwIgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID4KKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9GaWxlPgogCQkJCTxGaWxlCiAJCQkJCVJl
bGF0aXZlUGF0aD0iLi5cVGVzdHNcV2ViS2l0MlxDb29raWVNYW5hZ2VyLmNwcCIKIAkJCQkJPgpk
aWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5jcHAgYi9U
b29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250cm9sbGVyLmNwcAppbmRleCAxNDVjMjcwLi4w
ODJiOTljIDEwMDY0NAotLS0gYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250cm9sbGVy
LmNwcAorKysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250cm9sbGVyLmNwcApAQCAt
MjI0LDYgKzIyNCw3IEBAIFdLUGFnZVJlZiBUZXN0Q29udHJvbGxlcjo6Y3JlYXRlT3RoZXJQYWdl
KFdLUGFnZVJlZiBvbGRQYWdlLCBXS1VSTFJlcXVlc3RSZWYsIFdLCiAgICAgICAgIDAsIC8vIHVu
YXZhaWxhYmxlUGx1Z2luQnV0dG9uQ2xpY2tlZAogICAgICAgICAwLCAvLyBzaG93Q29sb3JQaWNr
ZXIKICAgICAgICAgMCwgLy8gaGlkZUNvbG9yUGlja2VyCisgICAgICAgIDAsIC8vIGFkZE1lc3Nh
Z2VUb0NvbnNvbGUKICAgICB9OwogICAgIFdLUGFnZVNldFBhZ2VVSUNsaWVudChuZXdQYWdlLCAm
b3RoZXJQYWdlVUlDbGllbnQpOwogCkBAIC00MTQsNiArNDE1LDcgQEAgdm9pZCBUZXN0Q29udHJv
bGxlcjo6Y3JlYXRlV2ViVmlld1dpdGhPcHRpb25zKFdLRGljdGlvbmFyeVJlZiBvcHRpb25zKQog
ICAgICAgICAwLCAvLyB1bmF2YWlsYWJsZVBsdWdpbkJ1dHRvbkNsaWNrZWQKICAgICAgICAgMCwg
Ly8gc2hvd0NvbG9yUGlja2VyCiAgICAgICAgIDAsIC8vIGhpZGVDb2xvclBpY2tlcgorICAgICAg
ICAwLCAvLyBhZGRNZXNzYWdlVG9Db25zb2xlCiAgICAgfTsKICAgICBXS1BhZ2VTZXRQYWdlVUlD
bGllbnQobV9tYWluV2ViVmlldy0+cGFnZSgpLCAmcGFnZVVJQ2xpZW50KTsKIAo=
</data>

          </attachment>
      

    </bug>

</bugzilla>