<?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>96650</bug_id>
          
          <creation_ts>2012-09-13 07:36:59 -0700</creation_ts>
          <short_desc>Web Inspector: move Vector memory instrumentation from core NMI code to MemoryInstrumentationVector.h</short_desc>
          <delta_ts>2012-09-25 00:54:37 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Web Inspector (Deprecated)</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>87262</blocked>
    
    <blocked>97198</blocked>
          <everconfirmed>0</everconfirmed>
          <reporter name="Yury Semikhatsky">yurys</reporter>
          <assigned_to name="Yury Semikhatsky">yurys</assigned_to>
          <cc>abarth</cc>
    
    <cc>alph</cc>
    
    <cc>apavlov</cc>
    
    <cc>benjamin</cc>
    
    <cc>bweinstein</cc>
    
    <cc>cmarcelo</cc>
    
    <cc>darin</cc>
    
    <cc>eric.carlson</cc>
    
    <cc>eric</cc>
    
    <cc>feature-media-reviews</cc>
    
    <cc>haraken</cc>
    
    <cc>japhet</cc>
    
    <cc>joepeck</cc>
    
    <cc>keishi</cc>
    
    <cc>koivisto</cc>
    
    <cc>loislo</cc>
    
    <cc>macpherson</cc>
    
    <cc>menard</cc>
    
    <cc>mjs</cc>
    
    <cc>pfeldman</cc>
    
    <cc>pmuellr</cc>
    
    <cc>rik</cc>
    
    <cc>timothy</cc>
    
    <cc>vivekgalatage</cc>
    
    <cc>webkit.review.bot</cc>
    
    <cc>yurys</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>719452</commentid>
    <comment_count>0</comment_count>
    <who name="Yury Semikhatsky">yurys</who>
    <bug_when>2012-09-13 07:36:59 -0700</bug_when>
    <thetext>Vector may have inline buffer that should be counted as part of the vector, this makes it hard to instrument from outside.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>719464</commentid>
    <comment_count>1</comment_count>
      <attachid>163871</attachid>
    <who name="Yury Semikhatsky">yurys</who>
    <bug_when>2012-09-13 07:42:59 -0700</bug_when>
    <thetext>Created attachment 163871
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>719501</commentid>
    <comment_count>2</comment_count>
      <attachid>163871</attachid>
    <who name="Ilya Tikhonovsky">loislo</who>
    <bug_when>2012-09-13 08:09:16 -0700</bug_when>
    <thetext>Comment on attachment 163871
Patch

lgtm</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>720371</commentid>
    <comment_count>3</comment_count>
      <attachid>163871</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-09-13 23:54:45 -0700</bug_when>
    <thetext>Comment on attachment 163871
Patch

Rejecting attachment 163871 from commit-queue.

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

Last 500 characters of output:
.cpp
Hunk #1 FAILED at 360.
1 out of 1 hunk FAILED -- saving rejects to file Source/WebCore/platform/network/FormData.cpp.rej
patching file Source/WebCore/rendering/style/RenderStyle.cpp
patching file Source/WebCore/rendering/style/StyleRareNonInheritedData.cpp
patching file Source/WebKit/chromium/tests/MemoryInstrumentationTest.cpp

Failed to run &quot;[u&apos;/mnt/git/webkit-commit-queue/Tools/Scripts/svn-apply&apos;, u&apos;--force&apos;, u&apos;--reviewer&apos;, u&apos;Vsevolod V...&quot; exit_code: 1 cwd: /mnt/git/webkit-commit-queue

Full output: http://queues.webkit.org/results/13851408</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>720408</commentid>
    <comment_count>4</comment_count>
      <attachid>164066</attachid>
    <who name="Yury Semikhatsky">yurys</who>
    <bug_when>2012-09-14 00:35:02 -0700</bug_when>
    <thetext>Created attachment 164066
Patch after rebase</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>720409</commentid>
    <comment_count>5</comment_count>
    <who name="Yury Semikhatsky">yurys</who>
    <bug_when>2012-09-14 00:37:00 -0700</bug_when>
    <thetext>Antti, can you take a look at Source/WTF/wtf/Vector.h changes and tell us if you are ok with the approach?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>722490</commentid>
    <comment_count>6</comment_count>
      <attachid>164493</attachid>
    <who name="Yury Semikhatsky">yurys</who>
    <bug_when>2012-09-17 22:18:35 -0700</bug_when>
    <thetext>Created attachment 164493
Patch after rebase</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>722595</commentid>
    <comment_count>7</comment_count>
      <attachid>164493</attachid>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2012-09-18 01:42:28 -0700</bug_when>
    <thetext>Comment on attachment 164493
Patch after rebase

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

Looks fine to me but it would be good if Maciej or Darin (who know the WTF design principles best) would take a look too.

&gt; Source/WebKit/chromium/tests/MemoryInstrumentationTest.cpp:389
&gt; +TEST(MemoryInstrumentationTest, vectorWithInlineCapacity1)
&gt; +{
&gt; +    VisitedObjects visitedObjects;
&gt; +    MemoryInstrumentationImpl impl(visitedObjects);
&gt; +    InstrumentedOwner&lt;Vector&lt;int, 4&gt; &gt; vectorOwner;
&gt; +    impl.addRootObject(vectorOwner);
&gt; +    EXPECT_EQ(static_cast&lt;size_t&gt;(0), impl.reportedSizeForAllTypes());
&gt; +    EXPECT_EQ(0, visitedObjects.size());
&gt; +}

You should also include a test with a heap allocated Vector that shows inline capacity and other fields are properly accounted for.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>722603</commentid>
    <comment_count>8</comment_count>
      <attachid>164518</attachid>
    <who name="Yury Semikhatsky">yurys</who>
    <bug_when>2012-09-18 02:10:31 -0700</bug_when>
    <thetext>Created attachment 164518
Patch with tests for heap allocated vector</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>722604</commentid>
    <comment_count>9</comment_count>
    <who name="Yury Semikhatsky">yurys</who>
    <bug_when>2012-09-18 02:10:45 -0700</bug_when>
    <thetext>(In reply to comment #7)
&gt; (From update of attachment 164493 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=164493&amp;action=review
&gt; 
&gt; Looks fine to me but it would be good if Maciej or Darin (who know the WTF design principles best) would take a look too.
&gt; 
&gt; &gt; Source/WebKit/chromium/tests/MemoryInstrumentationTest.cpp:389
&gt; &gt; +TEST(MemoryInstrumentationTest, vectorWithInlineCapacity1)
&gt; &gt; +{
&gt; &gt; +    VisitedObjects visitedObjects;
&gt; &gt; +    MemoryInstrumentationImpl impl(visitedObjects);
&gt; &gt; +    InstrumentedOwner&lt;Vector&lt;int, 4&gt; &gt; vectorOwner;
&gt; &gt; +    impl.addRootObject(vectorOwner);
&gt; &gt; +    EXPECT_EQ(static_cast&lt;size_t&gt;(0), impl.reportedSizeForAllTypes());
&gt; &gt; +    EXPECT_EQ(0, visitedObjects.size());
&gt; &gt; +}
&gt; 
&gt; You should also include a test with a heap allocated Vector that shows inline capacity and other fields are properly accounted for.

Done.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>722610</commentid>
    <comment_count>10</comment_count>
    <who name="Yury Semikhatsky">yurys</who>
    <bug_when>2012-09-18 02:25:58 -0700</bug_when>
    <thetext>A bit of context. In order to collect memory usage data for WebKit we need to have a good coverage of the memory occupied by WTF containers and smart pointers. The most straitforward way would be to add reportMemoryUsage method to the corresponding WTF classes. But since all of them are templates it would require including MemoryInstrumentation.h into the base headers. We see the following options:

 1) Include MemoryInstrumentation.h into the corresponding WTF headers.
 2) Make reportMemoryUsage method a template as in the current patch.
 3) Declare reportMemoryUsage in Vector.h but put its implementation along with #include &lt;wtf/MemoryInstrumentation.h&gt; into a separate header(VectorMemoryInstrumentation.h).
 4) Introduce some helper friend classes that would implement the instrumentation. That would also require adding a new file where the instrumentation would live.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>723257</commentid>
    <comment_count>11</comment_count>
      <attachid>164518</attachid>
    <who name="Maciej Stachowiak">mjs</who>
    <bug_when>2012-09-18 21:52:16 -0700</bug_when>
    <thetext>Comment on attachment 164518
Patch with tests for heap allocated vector

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

&gt; Source/WTF/wtf/Vector.h:390
&gt; +        template&lt;typename MemoryObjectInfo&gt;
&gt; +        void reportMemoryUsage(MemoryObjectInfo* memoryObjectInfo) const
&gt; +        {
&gt; +            typename MemoryObjectInfo::ClassInfo info(memoryObjectInfo, this);
&gt; +            info.addRawBuffer(m_buffer, m_capacity * sizeof(T));
&gt; +        }

I think this can be done without adding member functions to Vector. A template free function outside Vector has access to all this info. I think it would be better to not change a low-level class like Vector for this high-level concept.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>723586</commentid>
    <comment_count>12</comment_count>
      <attachid>164743</attachid>
    <who name="Ilya Tikhonovsky">loislo</who>
    <bug_when>2012-09-19 08:35:03 -0700</bug_when>
    <thetext>Created attachment 164743
patch with external instrumentation</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>723602</commentid>
    <comment_count>13</comment_count>
      <attachid>164743</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2012-09-19 09:09:08 -0700</bug_when>
    <thetext>Comment on attachment 164743
patch with external instrumentation

Attachment 164743 did not pass mac-ews (mac):
Output: http://queues.webkit.org/results/13898562</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>723604</commentid>
    <comment_count>14</comment_count>
      <attachid>164747</attachid>
    <who name="Ilya Tikhonovsky">loislo</who>
    <bug_when>2012-09-19 09:17:31 -0700</bug_when>
    <thetext>Created attachment 164747
with fix for mac</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>723611</commentid>
    <comment_count>15</comment_count>
      <attachid>164749</attachid>
    <who name="Ilya Tikhonovsky">loislo</who>
    <bug_when>2012-09-19 09:30:00 -0700</bug_when>
    <thetext>Created attachment 164749
with link time guard for Vector in MemoryInstrumentation.h</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>724445</commentid>
    <comment_count>16</comment_count>
      <attachid>164749</attachid>
    <who name="Yury Semikhatsky">yurys</who>
    <bug_when>2012-09-20 05:37:38 -0700</bug_when>
    <thetext>Comment on attachment 164749
with link time guard for Vector in MemoryInstrumentation.h

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

&gt; Source/WTF/wtf/MemoryInstrumentation.h:105
&gt; +    template&lt;typename T&gt; static void selectInstrumentationMethod(const T* const&amp; object, MemoryObjectInfo* memoryObjectInfo)

Why did this method move?

&gt; Source/WTF/wtf/MemoryInstrumentationVector.h:2
&gt; + * Copyright (C) 2012 Google Inc. All rights reserved.

I&apos;d rather call it VectorMemoryInstrumentation.h

&gt; Source/WTF/wtf/MemoryInstrumentationVector.h:39
&gt; +template&lt;typename T, size_t inline_capacity&gt;

style: inline_capacity -&gt; inlineCapacity

&gt; Source/WTF/wtf/MemoryInstrumentationVector.h:48
&gt; +template&lt;typename T, size_t inline_capacity&gt;

style: inline_capacity -&gt; inlineCapacity

&gt; Source/WebKit/chromium/tests/MemoryInstrumentationTest.cpp:431
&gt; +    typedef Vector&lt;String&gt; ValueType;

ValueType -&gt; StringVector?

&gt; Source/WebKit/chromium/tests/MemoryInstrumentationTest.cpp:435
&gt; +        value-&gt;append(String(&quot;string&quot;));

No need to call String( explicitly.

&gt; Source/WebKit/chromium/tests/MemoryInstrumentationTest.cpp:438
&gt; +    EXPECT_EQ(sizeof(ValueType) + sizeof(String) * value-&gt;capacity() + sizeof(StringImpl) * value-&gt;size(), impl.reportedSizeForAllTypes());

What about the size of &quot;string&quot; characters, should they also be counted?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>724453</commentid>
    <comment_count>17</comment_count>
      <attachid>164901</attachid>
    <who name="Ilya Tikhonovsky">loislo</who>
    <bug_when>2012-09-20 05:53:24 -0700</bug_when>
    <thetext>Created attachment 164901
comments addressed</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>724458</commentid>
    <comment_count>18</comment_count>
    <who name="Ilya Tikhonovsky">loislo</who>
    <bug_when>2012-09-20 06:02:12 -0700</bug_when>
    <thetext>(In reply to comment #16)
&gt; (From update of attachment 164749 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=164749&amp;action=review
&gt; 
&gt; &gt; Source/WTF/wtf/MemoryInstrumentation.h:105
&gt; &gt; +    template&lt;typename T&gt; static void selectInstrumentationMethod(const T* const&amp; object, MemoryObjectInfo* memoryObjectInfo)
&gt; 
&gt; Why did this method move?

done

&gt; 
&gt; &gt; Source/WTF/wtf/MemoryInstrumentationVector.h:2
&gt; &gt; + * Copyright (C) 2012 Google Inc. All rights reserved.
&gt; 
&gt; I&apos;d rather call it VectorMemoryInstrumentation.h

I&apos;m not sure that it is a good idea. We will have many instrumentation headers
and I&apos;d prefer to keep them together in the file system, in the build system files and in the list of includes.

&gt; 
&gt; &gt; Source/WTF/wtf/MemoryInstrumentationVector.h:39
&gt; &gt; +template&lt;typename T, size_t inline_capacity&gt;
&gt; 
&gt; style: inline_capacity -&gt; inlineCapacity
&gt; 
&gt; &gt; Source/WTF/wtf/MemoryInstrumentationVector.h:48
&gt; &gt; +template&lt;typename T, size_t inline_capacity&gt;
&gt; 
&gt; style: inline_capacity -&gt; inlineCapacity

done

&gt; 
&gt; &gt; Source/WebKit/chromium/tests/MemoryInstrumentationTest.cpp:431
&gt; &gt; +    typedef Vector&lt;String&gt; ValueType;
&gt; 
&gt; ValueType -&gt; StringVector?

done


&gt; 
&gt; &gt; Source/WebKit/chromium/tests/MemoryInstrumentationTest.cpp:435
&gt; &gt; +        value-&gt;append(String(&quot;string&quot;));
&gt; 
&gt; No need to call String( explicitly.

done

&gt; 
&gt; &gt; Source/WebKit/chromium/tests/MemoryInstrumentationTest.cpp:438
&gt; &gt; +    EXPECT_EQ(sizeof(ValueType) + sizeof(String) * value-&gt;capacity() + sizeof(StringImpl) * value-&gt;size(), impl.reportedSizeForAllTypes());
&gt; 
&gt; What about the size of &quot;string&quot; characters, should they also be counted?

nope. When we construct a String object from a constant string literal StringImpl doesn&apos;t copy it but keeps a pointer to it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>724508</commentid>
    <comment_count>19</comment_count>
    <who name="Yury Semikhatsky">yurys</who>
    <bug_when>2012-09-20 07:44:19 -0700</bug_when>
    <thetext>Maciej, can you take another look?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>725330</commentid>
    <comment_count>20</comment_count>
      <attachid>165098</attachid>
    <who name="Ilya Tikhonovsky">loislo</who>
    <bug_when>2012-09-21 02:52:37 -0700</bug_when>
    <thetext>Created attachment 165098
rebaselined. Old addVector and addVectorPtr also were removed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>725370</commentid>
    <comment_count>21</comment_count>
      <attachid>165098</attachid>
    <who name="Gyuyoung Kim">gyuyoung.kim</who>
    <bug_when>2012-09-21 03:19:19 -0700</bug_when>
    <thetext>Comment on attachment 165098
rebaselined. Old addVector and addVectorPtr also were removed.

Attachment 165098 did not pass efl-ews (efl):
Output: http://queues.webkit.org/results/13981042</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>725387</commentid>
    <comment_count>22</comment_count>
      <attachid>165098</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2012-09-21 03:37:56 -0700</bug_when>
    <thetext>Comment on attachment 165098
rebaselined. Old addVector and addVectorPtr also were removed.

Attachment 165098 did not pass mac-ews (mac):
Output: http://queues.webkit.org/results/13916535</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>725520</commentid>
    <comment_count>23</comment_count>
      <attachid>165133</attachid>
    <who name="Ilya Tikhonovsky">loislo</who>
    <bug_when>2012-09-21 08:04:40 -0700</bug_when>
    <thetext>Created attachment 165133
with fixes for mac and elf.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>725543</commentid>
    <comment_count>24</comment_count>
      <attachid>165133</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2012-09-21 08:50:23 -0700</bug_when>
    <thetext>Comment on attachment 165133
with fixes for mac and elf.

Attachment 165133 did not pass mac-ews (mac):
Output: http://queues.webkit.org/results/13950648</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>725546</commentid>
    <comment_count>25</comment_count>
      <attachid>165140</attachid>
    <who name="Ilya Tikhonovsky">loislo</who>
    <bug_when>2012-09-21 08:54:39 -0700</bug_when>
    <thetext>Created attachment 165140
with fixes for mac and elf.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>727265</commentid>
    <comment_count>26</comment_count>
    <who name="Maciej Stachowiak">mjs</who>
    <bug_when>2012-09-24 21:32:03 -0700</bug_when>
    <thetext>It looks like the latest version addresses my previous comments. I&apos;m fine with someone else reviewing the new version for correctness in detail.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>727320</commentid>
    <comment_count>27</comment_count>
      <attachid>165140</attachid>
    <who name="Vsevolod Vlasov">vsevik</who>
    <bug_when>2012-09-24 23:24:13 -0700</bug_when>
    <thetext>Comment on attachment 165140
with fixes for mac and elf.

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

&gt; Source/WTF/wtf/MemoryInstrumentationVector.h:48
&gt; +template&lt;size_t inlineCapacity&gt; void instrumentVectorValues(MemoryClassInfo&amp;, const Vector&lt;char*, inlineCapacity&gt;* const&amp;) { }

Is this char* special case handler always correct?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>727323</commentid>
    <comment_count>28</comment_count>
      <attachid>165140</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-09-24 23:27:27 -0700</bug_when>
    <thetext>Comment on attachment 165140
with fixes for mac and elf.

Rejecting attachment 165140 from commit-queue.

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

Last 500 characters of output:
ching file Source/WebCore/platform/network/FormData.cpp
patching file Source/WebCore/platform/network/ResourceRequestBase.cpp
patching file Source/WebCore/rendering/style/RenderStyle.cpp
patching file Source/WebCore/rendering/style/StyleRareNonInheritedData.cpp
patching file Source/WebKit/chromium/tests/MemoryInstrumentationTest.cpp

Failed to run &quot;[u&apos;/mnt/git/webkit-commit-queue/Tools/Scripts/svn-apply&apos;, u&apos;--force&apos;, u&apos;--reviewer&apos;, u&apos;Vsevolod V...&quot; exit_code: 1 cwd: /mnt/git/webkit-commit-queue

Full output: http://queues.webkit.org/results/13988938</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>727373</commentid>
    <comment_count>29</comment_count>
    <who name="Ilya Tikhonovsky">loislo</who>
    <bug_when>2012-09-25 00:54:37 -0700</bug_when>
    <thetext>Committed r129466: &lt;http://trac.webkit.org/changeset/129466&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>163871</attachid>
            <date>2012-09-13 07:42:59 -0700</date>
            <delta_ts>2012-09-14 00:35:02 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-96650-20120913184231.patch</filename>
            <type>text/plain</type>
            <size>25982</size>
            <attacher name="Yury Semikhatsky">yurys</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTI4NDUwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IDgxMmZlMDBmZDM2Yzg5YTRhZGE5OTli
YzJkYTVjYzQzODBiMzA0ZjcuLjU4NDRlMDhhOGU0MDVmYmY0ZGNlNzEwNjQ1YmI4ZGQ4NWZlZWIy
NjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMjggQEAKKzIwMTItMDktMTMgIFl1cnkgU2VtaWtoYXRza3kgIDx5
dXJ5c0BjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgV2ViIEluc3BlY3RvcjogbW92ZSBWZWN0b3Ig
bWVtb3J5IGluc3RydW1lbnRhdGlvbiB0byBWZWN0b3IuaAorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTY2NTAKKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGRlZCByZXBvcnRNZW1vcnlVc2FnZSBtZXRob2Qg
dG8gVmVjdG9yIGFuZCBpdHMgYnVmZmVyIGltcGxlbWVudGF0aW9ucy4KKworICAgICAgICAqIHd0
Zi9NZW1vcnlJbnN0cnVtZW50YXRpb24uaDoKKyAgICAgICAgKE1lbW9yeUluc3RydW1lbnRhdGlv
bik6CisgICAgICAgIChXVEY6Ok1lbW9yeUNsYXNzSW5mbzo6YWRkSW5zdHJ1bWVudGVkVmVjdG9y
KTogdGhlc2UgbWV0aG9kcyB3aWxsIGJlIHJlbW92ZWQKKyAgICAgICAgc29vbiB3aGVuIHdlIGV4
dGVuZCB0aGUgQVBJIHNvIHRoYXQgd2UgY2FuIHNwZWNpZnkgaWYgdmVjdG9yIHZhbHVlcyBhcmUK
KyAgICAgICAgaW5zdHJ1bWVudGVkIG9yIG5vdC4KKyAgICAgICAgKFdURjo6TWVtb3J5Q2xhc3NJ
bmZvOjphZGRJbnN0cnVtZW50ZWRWZWN0b3JQdHIpOgorICAgICAgICAoV1RGOjpNZW1vcnlJbnN0
cnVtZW50YXRpb246OmFkZEluc3RydW1lbnRlZENvbGxlY3Rpb24pOgorICAgICAgICAoV1RGKToK
KyAgICAgICAgKFdURjo6TWVtb3J5SW5zdHJ1bWVudGF0aW9uOjphZGRJbnN0cnVtZW50ZWRDb2xs
ZWN0aW9uVmFsdWVzKToKKyAgICAgICAgKiB3dGYvVmVjdG9yLmg6CisgICAgICAgIChWZWN0b3JC
dWZmZXIpOgorICAgICAgICAoV1RGOjpWZWN0b3JCdWZmZXI6OnJlcG9ydE1lbW9yeVVzYWdlKToK
KyAgICAgICAgKFZlY3Rvcik6CisgICAgICAgIChXVEY6Ojo6cmVwb3J0TWVtb3J5VXNhZ2UpOgor
ICAgICAgICAoV1RGKToKKwogMjAxMi0wOS0xMyAgSWx5YSBUaWtob25vdnNreSAgPGxvaXNsb0Bj
aHJvbWl1bS5vcmc+CiAKICAgICAgICAgV2ViIEluc3BlY3RvcjogTk1JOiBpbnN0cnVtZW50IEtV
UkwgZGlyZWN0bHkuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3Vy
Y2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZTZlZTUyZTk1ZWQ2ZmQ0YWExYzE0ZTU1NTEyY2Mw
MzQ5OGIxOTY1Ni4uZjIyOTVhODdiNzZjZWU3YjU1ODUxZGFlOGY2ZDI0ZTE4MzhkYzdjZCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwpAQCAtMSwzICsxLDQxIEBACisyMDEyLTA5LTEzICBZdXJ5IFNlbWlraGF0c2t5ICA8
eXVyeXNAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFdlYiBJbnNwZWN0b3I6IG1vdmUgVmVjdG9y
IG1lbW9yeSBpbnN0cnVtZW50YXRpb24gdG8gVmVjdG9yLmgKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTk2NjUwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVXBkYXRlZCBpbnN0cnVtZW50ZWQgY2xhc3NlcyB0
byBtYXRjaCBuZXcgYXBwcm9hY2ggdG8gVmVjdG9yIG1lbW9yeQorICAgICAgICBpbnN0cnVtZW50
YXRpb24uCisKKyAgICAgICAgKiBiaW5kaW5ncy92OC9WOFBlcklzb2xhdGVEYXRhLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OlY4UGVySXNvbGF0ZURhdGE6OnJlcG9ydE1lbW9yeVVzYWdlKToKKyAg
ICAgICAgKiBjc3MvU3R5bGVQcm9wZXJ0eVNldC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTdHls
ZVByb3BlcnR5U2V0OjpyZXBvcnRNZW1vcnlVc2FnZSk6CisgICAgICAgICogY3NzL1N0eWxlUmVz
b2x2ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U3R5bGVSZXNvbHZlcjo6RmVhdHVyZXM6OnJl
cG9ydE1lbW9yeVVzYWdlKToKKyAgICAgICAgKFdlYkNvcmU6OlN0eWxlUmVzb2x2ZXI6OmNvbGxl
Y3RNYXRjaGluZ1J1bGVzRm9yTGlzdCk6CisgICAgICAgICogY3NzL1N0eWxlU2hlZXRDb250ZW50
cy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTdHlsZVNoZWV0Q29udGVudHM6OnJlcG9ydE1lbW9y
eVVzYWdlKToKKyAgICAgICAgKiBkb20vRG9jdW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
RG9jdW1lbnQ6OnJlcG9ydE1lbW9yeVVzYWdlKToKKyAgICAgICAgKiBkb20vRWxlbWVudEF0dHJp
YnV0ZURhdGEuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RWxlbWVudEF0dHJpYnV0ZURhdGE6OnJl
cG9ydE1lbW9yeVVzYWdlKToKKyAgICAgICAgKiBsb2FkZXIvRG9jdW1lbnRMb2FkZXIuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnRMb2FkZXI6OnJlcG9ydE1lbW9yeVVzYWdlKToKKyAg
ICAgICAgKiBsb2FkZXIvY2FjaGUvTWVtb3J5Q2FjaGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
TWVtb3J5Q2FjaGU6OnJlcG9ydE1lbW9yeVVzYWdlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9TaGFy
ZWRCdWZmZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2hhcmVkQnVmZmVyOjpyZXBvcnRNZW1v
cnlVc2FnZSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvQml0bWFwSW1hZ2UuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6Qml0bWFwSW1hZ2U6OnJlcG9ydE1lbW9yeVVzYWdlKToKKyAgICAg
ICAgKiBwbGF0Zm9ybS9uZXR3b3JrL0Zvcm1EYXRhLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZv
cm1EYXRhOjpyZXBvcnRNZW1vcnlVc2FnZSk6CisgICAgICAgICogcmVuZGVyaW5nL3N0eWxlL1Jl
bmRlclN0eWxlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclN0eWxlOjpyZXBvcnRNZW1v
cnlVc2FnZSk6CisgICAgICAgICogcmVuZGVyaW5nL3N0eWxlL1N0eWxlUmFyZU5vbkluaGVyaXRl
ZERhdGEuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U3R5bGVSYXJlTm9uSW5oZXJpdGVkRGF0YTo6
cmVwb3J0TWVtb3J5VXNhZ2UpOgorCiAyMDEyLTA5LTEzICBJbHlhIFRpa2hvbm92c2t5ICA8bG9p
c2xvQGNocm9taXVtLm9yZz4KIAogICAgICAgICBXZWIgSW5zcGVjdG9yOiBOTUk6IGluc3RydW1l
bnQgS1VSTCBkaXJlY3RseS4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hh
bmdlTG9nIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKaW5kZXggZTNiYzMwYjIw
ZjI1Mzc3YTRkZjU3Yzk1NmVlZTUyOTkyYzJkNjU3Ni4uMWRmN2ZiY2NiYmE4YjYxYTA4ZTFiNTAw
ZGMyOGYxODNkYjZiZjdmNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFu
Z2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwx
NyBAQAorMjAxMi0wOS0xMyAgWXVyeSBTZW1pa2hhdHNreSAgPHl1cnlzQGNocm9taXVtLm9yZz4K
KworICAgICAgICBXZWIgSW5zcGVjdG9yOiBtb3ZlIFZlY3RvciBtZW1vcnkgaW5zdHJ1bWVudGF0
aW9uIHRvIFZlY3Rvci5oCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD05NjY1MAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgIEFkZGVkIHVuaXQgdGVzdHMgZm9yIFZlY3RvciBtZW1vcnkgaW5zdHJ1bWVudGF0aW9u
LgorCisgICAgICAgICogdGVzdHMvTWVtb3J5SW5zdHJ1bWVudGF0aW9uVGVzdC5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpJbnN0cnVtZW50ZWRPd25lcjo6SW5zdHJ1bWVudGVkT3duZXIpOgorICAg
ICAgICAoV2ViQ29yZTo6VEVTVCk6CisgICAgICAgIChXZWJDb3JlKToKKwogMjAxMi0wOS0xMyAg
SWx5YSBUaWtob25vdnNreSAgPGxvaXNsb0BjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgV2ViIElu
c3BlY3RvcjogTk1JOiBpbnN0cnVtZW50IEtVUkwgZGlyZWN0bHkuCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV1RGL3d0Zi9NZW1vcnlJbnN0cnVtZW50YXRpb24uaCBiL1NvdXJjZS9XVEYvd3RmL01lbW9y
eUluc3RydW1lbnRhdGlvbi5oCmluZGV4IDgxZjc5ZThiZjQxNmQyMDFlYTUwOTcwMWY5OWRjMmFj
ZDc5ZjJmYjAuLjk5ZDA1YzdiYzYyYTQzNmY3ZTM1ZmUyNGZiZjNlODViNGRlOTIzOWMgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL01lbW9yeUluc3RydW1lbnRhdGlvbi5oCisrKyBiL1NvdXJj
ZS9XVEYvd3RmL01lbW9yeUluc3RydW1lbnRhdGlvbi5oCkBAIC0xMDEsMTAgKzEwMSwxMCBAQCBw
cml2YXRlOgogICAgIHRlbXBsYXRlPHR5cGVuYW1lIEhhc2hNYXBUeXBlPiB2b2lkIGFkZEhhc2hN
YXAoY29uc3QgSGFzaE1hcFR5cGUmLCBNZW1vcnlPYmplY3RUeXBlLCBib29sIGNvbnRlbnRPbmx5
ID0gZmFsc2UpOwogICAgIHRlbXBsYXRlPHR5cGVuYW1lIEhhc2hTZXRUeXBlPiB2b2lkIGFkZEhh
c2hTZXQoY29uc3QgSGFzaFNldFR5cGUmLCBNZW1vcnlPYmplY3RUeXBlLCBib29sIGNvbnRlbnRP
bmx5ID0gZmFsc2UpOwogICAgIHRlbXBsYXRlPHR5cGVuYW1lIENvbGxlY3Rpb25UeXBlPiB2b2lk
IGFkZEluc3RydW1lbnRlZENvbGxlY3Rpb24oY29uc3QgQ29sbGVjdGlvblR5cGUmLCBNZW1vcnlP
YmplY3RUeXBlLCBib29sIGNvbnRlbnRPbmx5ID0gZmFsc2UpOworICAgIHRlbXBsYXRlPHR5cGVu
YW1lIENvbGxlY3Rpb25UeXBlPiB2b2lkIGFkZEluc3RydW1lbnRlZENvbGxlY3Rpb25WYWx1ZXMo
Y29uc3QgQ29sbGVjdGlvblR5cGUmLCBNZW1vcnlPYmplY3RUeXBlKTsKICAgICB0ZW1wbGF0ZTx0
eXBlbmFtZSBNYXBUeXBlPiB2b2lkIGFkZEluc3RydW1lbnRlZE1hcEVudHJpZXMoY29uc3QgTWFw
VHlwZSYsIE1lbW9yeU9iamVjdFR5cGUpOwogICAgIHRlbXBsYXRlPHR5cGVuYW1lIE1hcFR5cGU+
IHZvaWQgYWRkSW5zdHJ1bWVudGVkTWFwVmFsdWVzKGNvbnN0IE1hcFR5cGUmLCBNZW1vcnlPYmpl
Y3RUeXBlKTsKICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBMaXN0SGFzaFNldFR5cGU+IHZvaWQgYWRk
TGlzdEhhc2hTZXQoY29uc3QgTGlzdEhhc2hTZXRUeXBlJiwgTWVtb3J5T2JqZWN0VHlwZSwgYm9v
bCBjb250ZW50T25seSA9IGZhbHNlKTsKLSAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBWZWN0b3JUeXBl
PiB2b2lkIGFkZFZlY3Rvcihjb25zdCBWZWN0b3JUeXBlJiwgTWVtb3J5T2JqZWN0VHlwZSwgYm9v
bCBjb250ZW50T25seSA9IGZhbHNlKTsKICAgICB2b2lkIGFkZFJhd0J1ZmZlcihjb25zdCB2b2lk
KiBjb25zdCYgYnVmZmVyLCBNZW1vcnlPYmplY3RUeXBlIG93bmVyT2JqZWN0VHlwZSwgc2l6ZV90
IHNpemUpCiAgICAgewogICAgICAgICBpZiAoIWJ1ZmZlciB8fCB2aXNpdGVkKGJ1ZmZlcikpCkBA
IC0yMDcsMTQgKzIwNywyNCBAQCBwdWJsaWM6CiAgICAgdGVtcGxhdGU8dHlwZW5hbWUgSGFzaFNl
dFR5cGU+IHZvaWQgYWRkSGFzaFNldChjb25zdCBIYXNoU2V0VHlwZSYgc2V0KSB7IG1fbWVtb3J5
SW5zdHJ1bWVudGF0aW9uLT5hZGRIYXNoU2V0KHNldCwgbV9vYmplY3RUeXBlLCB0cnVlKTsgfQog
ICAgIHRlbXBsYXRlPHR5cGVuYW1lIEhhc2hTZXRUeXBlPiB2b2lkIGFkZEhhc2hDb3VudGVkU2V0
KGNvbnN0IEhhc2hTZXRUeXBlJiBzZXQpIHsgbV9tZW1vcnlJbnN0cnVtZW50YXRpb24tPmFkZEhh
c2hTZXQoc2V0LCBtX29iamVjdFR5cGUsIHRydWUpOyB9CiAgICAgdGVtcGxhdGU8dHlwZW5hbWUg
SGFzaFNldFR5cGU+IHZvaWQgYWRkSW5zdHJ1bWVudGVkSGFzaFNldChjb25zdCBIYXNoU2V0VHlw
ZSYgc2V0KSB7IG1fbWVtb3J5SW5zdHJ1bWVudGF0aW9uLT5hZGRJbnN0cnVtZW50ZWRDb2xsZWN0
aW9uKHNldCwgbV9vYmplY3RUeXBlLCB0cnVlKTsgfQotICAgIHRlbXBsYXRlPHR5cGVuYW1lIFZl
Y3RvclR5cGU+IHZvaWQgYWRkSW5zdHJ1bWVudGVkVmVjdG9yKGNvbnN0IFZlY3RvclR5cGUmIHZl
Y3RvcikgeyBtX21lbW9yeUluc3RydW1lbnRhdGlvbi0+YWRkSW5zdHJ1bWVudGVkQ29sbGVjdGlv
bih2ZWN0b3IsIG1fb2JqZWN0VHlwZSwgdHJ1ZSk7IH0KLSAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBW
ZWN0b3JUeXBlPiB2b2lkIGFkZEluc3RydW1lbnRlZFZlY3RvclB0cihjb25zdCBPd25QdHI8VmVj
dG9yVHlwZT4mIHZlY3RvcikgeyBtX21lbW9yeUluc3RydW1lbnRhdGlvbi0+YWRkSW5zdHJ1bWVu
dGVkQ29sbGVjdGlvbigqdmVjdG9yLCBtX29iamVjdFR5cGUsIGZhbHNlKTsgfQotICAgIHRlbXBs
YXRlPHR5cGVuYW1lIFZlY3RvclR5cGU+IHZvaWQgYWRkSW5zdHJ1bWVudGVkVmVjdG9yUHRyKGNv
bnN0IFZlY3RvclR5cGUqIGNvbnN0JiB2ZWN0b3IpIHsgbV9tZW1vcnlJbnN0cnVtZW50YXRpb24t
PmFkZEluc3RydW1lbnRlZENvbGxlY3Rpb24oKnZlY3RvciwgbV9vYmplY3RUeXBlLCBmYWxzZSk7
IH0KKyAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBWZWN0b3JUeXBlPiB2b2lkIGFkZEluc3RydW1lbnRl
ZFZlY3Rvcihjb25zdCBWZWN0b3JUeXBlJiB2ZWN0b3IpCisgICAgeworICAgICAgICBhZGRJbnN0
cnVtZW50ZWRNZW1iZXIodmVjdG9yKTsKKyAgICAgICAgbV9tZW1vcnlJbnN0cnVtZW50YXRpb24t
PmFkZEluc3RydW1lbnRlZENvbGxlY3Rpb25WYWx1ZXModmVjdG9yLCBtX29iamVjdFR5cGUpOwor
ICAgIH0KKyAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBWZWN0b3JUeXBlPiB2b2lkIGFkZEluc3RydW1l
bnRlZFZlY3RvclB0cihjb25zdCBPd25QdHI8VmVjdG9yVHlwZT4mIHZlY3RvcikKKyAgICB7Cisg
ICAgICAgIGFkZEluc3RydW1lbnRlZE1lbWJlcih2ZWN0b3IpOworICAgICAgICBtX21lbW9yeUlu
c3RydW1lbnRhdGlvbi0+YWRkSW5zdHJ1bWVudGVkQ29sbGVjdGlvblZhbHVlcygqdmVjdG9yLCBt
X29iamVjdFR5cGUpOworICAgIH0KKyAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBWZWN0b3JUeXBlPiB2
b2lkIGFkZEluc3RydW1lbnRlZFZlY3RvclB0cihjb25zdCBWZWN0b3JUeXBlKiBjb25zdCYgdmVj
dG9yKQorICAgIHsKKyAgICAgICAgYWRkSW5zdHJ1bWVudGVkTWVtYmVyKHZlY3Rvcik7CisgICAg
ICAgIG1fbWVtb3J5SW5zdHJ1bWVudGF0aW9uLT5hZGRJbnN0cnVtZW50ZWRDb2xsZWN0aW9uVmFs
dWVzKCp2ZWN0b3IsIG1fb2JqZWN0VHlwZSk7CisgICAgfQogICAgIHRlbXBsYXRlPHR5cGVuYW1l
IE1hcFR5cGU+IHZvaWQgYWRkSW5zdHJ1bWVudGVkTWFwRW50cmllcyhjb25zdCBNYXBUeXBlJiBt
YXApIHsgbV9tZW1vcnlJbnN0cnVtZW50YXRpb24tPmFkZEluc3RydW1lbnRlZE1hcEVudHJpZXMo
bWFwLCBtX29iamVjdFR5cGUpOyB9CiAgICAgdGVtcGxhdGU8dHlwZW5hbWUgTWFwVHlwZT4gdm9p
ZCBhZGRJbnN0cnVtZW50ZWRNYXBWYWx1ZXMoY29uc3QgTWFwVHlwZSYgbWFwKSB7IG1fbWVtb3J5
SW5zdHJ1bWVudGF0aW9uLT5hZGRJbnN0cnVtZW50ZWRNYXBWYWx1ZXMobWFwLCBtX29iamVjdFR5
cGUpOyB9CiAgICAgdGVtcGxhdGU8dHlwZW5hbWUgTGlzdEhhc2hTZXRUeXBlPiB2b2lkIGFkZExp
c3RIYXNoU2V0KGNvbnN0IExpc3RIYXNoU2V0VHlwZSYgc2V0KSB7IG1fbWVtb3J5SW5zdHJ1bWVu
dGF0aW9uLT5hZGRMaXN0SGFzaFNldChzZXQsIG1fb2JqZWN0VHlwZSwgdHJ1ZSk7IH0KLSAgICB0
ZW1wbGF0ZTx0eXBlbmFtZSBWZWN0b3JUeXBlPiB2b2lkIGFkZFZlY3Rvcihjb25zdCBWZWN0b3JU
eXBlJiB2ZWN0b3IpIHsgbV9tZW1vcnlJbnN0cnVtZW50YXRpb24tPmFkZFZlY3Rvcih2ZWN0b3Is
IG1fb2JqZWN0VHlwZSwgdHJ1ZSk7IH0KLSAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBWZWN0b3JUeXBl
PiB2b2lkIGFkZFZlY3RvclB0cihjb25zdCBWZWN0b3JUeXBlKiBjb25zdCB2ZWN0b3IpIHsgbV9t
ZW1vcnlJbnN0cnVtZW50YXRpb24tPmFkZFZlY3RvcigqdmVjdG9yLCBtX29iamVjdFR5cGUsIGZh
bHNlKTsgfQogICAgIHZvaWQgYWRkUmF3QnVmZmVyKGNvbnN0IHZvaWQqIGNvbnN0JiBidWZmZXIs
IHNpemVfdCBzaXplKSB7IG1fbWVtb3J5SW5zdHJ1bWVudGF0aW9uLT5hZGRSYXdCdWZmZXIoYnVm
ZmVyLCBtX29iamVjdFR5cGUsIHNpemUpOyB9CiAKICAgICB2b2lkIGFkZFdlYWtQb2ludGVyKHZv
aWQqKSB7IH0KQEAgLTMwMiw2ICszMTIsMTIgQEAgdm9pZCBNZW1vcnlJbnN0cnVtZW50YXRpb246
OmFkZEluc3RydW1lbnRlZENvbGxlY3Rpb24oY29uc3QgQ29sbGVjdGlvblR5cGUmIGNvbGwKICAg
ICBpZiAodmlzaXRlZCgmY29sbGVjdGlvbikpCiAgICAgICAgIHJldHVybjsKICAgICBjb3VudE9i
amVjdFNpemUob3duZXJPYmplY3RUeXBlLCBjYWxjdWxhdGVDb250YWluZXJTaXplKGNvbGxlY3Rp
b24sIGNvbnRlbnRPbmx5KSk7CisgICAgYWRkSW5zdHJ1bWVudGVkQ29sbGVjdGlvblZhbHVlcyhj
b2xsZWN0aW9uLCBvd25lck9iamVjdFR5cGUpOworfQorCit0ZW1wbGF0ZTx0eXBlbmFtZSBDb2xs
ZWN0aW9uVHlwZT4KK3ZvaWQgTWVtb3J5SW5zdHJ1bWVudGF0aW9uOjphZGRJbnN0cnVtZW50ZWRD
b2xsZWN0aW9uVmFsdWVzKGNvbnN0IENvbGxlY3Rpb25UeXBlJiBjb2xsZWN0aW9uLCBNZW1vcnlP
YmplY3RUeXBlIG93bmVyT2JqZWN0VHlwZSkKK3sKICAgICB0eXBlbmFtZSBDb2xsZWN0aW9uVHlw
ZTo6Y29uc3RfaXRlcmF0b3IgZW5kID0gY29sbGVjdGlvbi5lbmQoKTsKICAgICBmb3IgKHR5cGVu
YW1lIENvbGxlY3Rpb25UeXBlOjpjb25zdF9pdGVyYXRvciBpID0gY29sbGVjdGlvbi5iZWdpbigp
OyBpICE9IGVuZDsgKytpKQogICAgICAgICBhZGRJbnN0cnVtZW50ZWRPYmplY3QoKmksIG93bmVy
T2JqZWN0VHlwZSk7CkBAIC0zMzQsMTQgKzM1MCw2IEBAIHZvaWQgTWVtb3J5SW5zdHJ1bWVudGF0
aW9uOjphZGRMaXN0SGFzaFNldChjb25zdCBMaXN0SGFzaFNldFR5cGUmIGhhc2hTZXQsIE1lbW9y
CiAgICAgY291bnRPYmplY3RTaXplKG93bmVyT2JqZWN0VHlwZSwgc2l6ZSk7CiB9CiAKLXRlbXBs
YXRlPHR5cGVuYW1lIFZlY3RvclR5cGU+Ci12b2lkIE1lbW9yeUluc3RydW1lbnRhdGlvbjo6YWRk
VmVjdG9yKGNvbnN0IFZlY3RvclR5cGUmIHZlY3RvciwgTWVtb3J5T2JqZWN0VHlwZSBvd25lck9i
amVjdFR5cGUsIGJvb2wgY29udGVudE9ubHkpCi17Ci0gICAgaWYgKCF2ZWN0b3IuZGF0YSgpIHx8
IHZpc2l0ZWQodmVjdG9yLmRhdGEoKSkpCi0gICAgICAgIHJldHVybjsKLSAgICBjb3VudE9iamVj
dFNpemUob3duZXJPYmplY3RUeXBlLCBjYWxjdWxhdGVDb250YWluZXJTaXplKHZlY3RvciwgY29u
dGVudE9ubHkpKTsKLX0KLQogdGVtcGxhdGU8dHlwZW5hbWUgQ29udGFpbmVyPgogc2l6ZV90IE1l
bW9yeUluc3RydW1lbnRhdGlvbjo6Y2FsY3VsYXRlQ29udGFpbmVyU2l6ZShjb25zdCBDb250YWlu
ZXImIGNvbnRhaW5lciwgYm9vbCBjb250ZW50T25seSkKIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
VEYvd3RmL1ZlY3Rvci5oIGIvU291cmNlL1dURi93dGYvVmVjdG9yLmgKaW5kZXggOGE1ZWFmNjIx
MzJiZmUwZTcwMjlhMDI3ZTJjYmNiZDMzMDM5OTQzYy4uMzYyZjdhOWI4YzMxNGRjYWE4NTU0NWYz
OWM0ZjYzZDdiZjIyZGUyYSAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvVmVjdG9yLmgKKysr
IGIvU291cmNlL1dURi93dGYvVmVjdG9yLmgKQEAgLTM4Miw2ICszODIsMTMgQEAgbmFtZXNwYWNl
IFdURiB7CiAgICAgICAgIAogICAgICAgICB2b2lkIHJlc3RvcmVJbmxpbmVCdWZmZXJJZk5lZWRl
ZCgpIHsgfQogCisgICAgICAgIHRlbXBsYXRlPHR5cGVuYW1lIE1lbW9yeU9iamVjdEluZm8+Cisg
ICAgICAgIHZvaWQgcmVwb3J0TWVtb3J5VXNhZ2UoTWVtb3J5T2JqZWN0SW5mbyogbWVtb3J5T2Jq
ZWN0SW5mbykgY29uc3QKKyAgICAgICAgeworICAgICAgICAgICAgdHlwZW5hbWUgTWVtb3J5T2Jq
ZWN0SW5mbzo6Q2xhc3NJbmZvIGluZm8obWVtb3J5T2JqZWN0SW5mbywgdGhpcyk7CisgICAgICAg
ICAgICBpbmZvLmFkZFJhd0J1ZmZlcihtX2J1ZmZlciwgbV9jYXBhY2l0eSAqIHNpemVvZihUKSk7
CisgICAgICAgIH0KKwogICAgICAgICB1c2luZyBCYXNlOjphbGxvY2F0ZUJ1ZmZlcjsKICAgICAg
ICAgdXNpbmcgQmFzZTo6dHJ5QWxsb2NhdGVCdWZmZXI7CiAgICAgICAgIHVzaW5nIEJhc2U6OnNo
b3VsZFJlYWxsb2NhdGVCdWZmZXI7CkBAIC01MDAsNiArNTA3LDE0IEBAIG5hbWVzcGFjZSBXVEYg
ewogICAgICAgICAgICAgcmV0dXJuIEJhc2U6OnJlbGVhc2VCdWZmZXIoKTsKICAgICAgICAgfQog
CisgICAgICAgIHRlbXBsYXRlPHR5cGVuYW1lIE1lbW9yeU9iamVjdEluZm8+CisgICAgICAgIHZv
aWQgcmVwb3J0TWVtb3J5VXNhZ2UoTWVtb3J5T2JqZWN0SW5mbyogbWVtb3J5T2JqZWN0SW5mbykg
Y29uc3QKKyAgICAgICAgeworICAgICAgICAgICAgdHlwZW5hbWUgTWVtb3J5T2JqZWN0SW5mbzo6
Q2xhc3NJbmZvIGluZm8obWVtb3J5T2JqZWN0SW5mbywgdGhpcyk7CisgICAgICAgICAgICBpZiAo
bV9jYXBhY2l0eSA+IGlubGluZUNhcGFjaXR5KQorICAgICAgICAgICAgICAgIGluZm8uYWRkUmF3
QnVmZmVyKG1fYnVmZmVyLCBtX2NhcGFjaXR5ICogc2l6ZW9mKFQpKTsKKyAgICAgICAgfQorCiAg
ICAgcHJpdmF0ZToKICAgICAgICAgdXNpbmcgQmFzZTo6bV9idWZmZXI7CiAgICAgICAgIHVzaW5n
IEJhc2U6Om1fY2FwYWNpdHk7CkBAIC02NjMsNiArNjc4LDggQEAgbmFtZXNwYWNlIFdURiB7CiAK
ICAgICAgICAgdm9pZCBjaGVja0NvbnNpc3RlbmN5KCk7CiAKKyAgICAgICAgdGVtcGxhdGU8dHlw
ZW5hbWUgTWVtb3J5T2JqZWN0SW5mbz4gdm9pZCByZXBvcnRNZW1vcnlVc2FnZShNZW1vcnlPYmpl
Y3RJbmZvKikgY29uc3Q7CisKICAgICBwcml2YXRlOgogICAgICAgICB2b2lkIGV4cGFuZENhcGFj
aXR5KHNpemVfdCBuZXdNaW5DYXBhY2l0eSk7CiAgICAgICAgIGNvbnN0IFQqIGV4cGFuZENhcGFj
aXR5KHNpemVfdCBuZXdNaW5DYXBhY2l0eSwgY29uc3QgVCopOwpAQCAtMTI1Niw2ICsxMjczLDE0
IEBAIG5hbWVzcGFjZSBXVEYgewogICAgIH07CiAjZW5kaWYKIAorICAgIHRlbXBsYXRlPHR5cGVu
YW1lIFQsIHNpemVfdCBpbmxpbmVDYXBhY2l0eT4KKyAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBNZW1v
cnlPYmplY3RJbmZvPgorICAgIHZvaWQgVmVjdG9yPFQsIGlubGluZUNhcGFjaXR5Pjo6cmVwb3J0
TWVtb3J5VXNhZ2UoTWVtb3J5T2JqZWN0SW5mbyogbWVtb3J5T2JqZWN0SW5mbykgY29uc3QKKyAg
ICB7CisgICAgICAgIHR5cGVuYW1lIE1lbW9yeU9iamVjdEluZm86OkNsYXNzSW5mbyBpbmZvKG1l
bW9yeU9iamVjdEluZm8sIHRoaXMpOworICAgICAgICBpbmZvLmFkZEluc3RydW1lbnRlZE1lbWJl
cihtX2J1ZmZlcik7CisgICAgfQorCiB9IC8vIG5hbWVzcGFjZSBXVEYKIAogdXNpbmcgV1RGOjpW
ZWN0b3I7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9WOFBlcklzb2xh
dGVEYXRhLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1Y4UGVySXNvbGF0ZURhdGEu
Y3BwCmluZGV4IGE3ZmM4ZDYyMGVhOTQwMWNmZGM5MjkwNWQ2MGUyOTg1NDY4ODY4OGQuLmMzMGRj
ZGYyZDBjMGY2MDUzOWFhYTFkODhmZjI4OGJiYjhlNzhmMDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL3Y4L1Y4UGVySXNvbGF0ZURhdGEuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL3Y4L1Y4UGVySXNvbGF0ZURhdGEuY3BwCkBAIC04Nyw3ICs4Nyw3IEBAIHZv
aWQgVjhQZXJJc29sYXRlRGF0YTo6cmVwb3J0TWVtb3J5VXNhZ2UoTWVtb3J5T2JqZWN0SW5mbyog
bWVtb3J5T2JqZWN0SW5mbykgY29uCiAgICAgaW5mby5hZGRIYXNoTWFwKG1fcmF3VGVtcGxhdGVz
KTsKICAgICBpbmZvLmFkZEhhc2hNYXAobV90ZW1wbGF0ZXMpOwogICAgIGluZm8uYWRkSW5zdHJ1
bWVudGVkTWVtYmVyKG1fc3RyaW5nQ2FjaGUpOwotICAgIGluZm8uYWRkVmVjdG9yKG1fZG9tRGF0
YUxpc3QpOworICAgIGluZm8uYWRkSW5zdHJ1bWVudGVkTWVtYmVyKG1fZG9tRGF0YUxpc3QpOwog
CiAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBtX2RvbURhdGFMaXN0LnNpemUoKTsgaSsrKQog
ICAgICAgICBpbmZvLmFkZEluc3RydW1lbnRlZE1lbWJlcihtX2RvbURhdGFMaXN0W2ldKTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9TdHlsZVByb3BlcnR5U2V0LmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2Nzcy9TdHlsZVByb3BlcnR5U2V0LmNwcAppbmRleCBkMGYwZmFiMmExYmQzNTE5
NTczNTBmMjc5OWRhOGQ0NDA3YzgzYjAyLi4xMmJiNzgwN2I1ZTQwMGI0MThiNmEzMTBjZjkzZjA3
ZDQ3YzM5NGVkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVQcm9wZXJ0eVNl
dC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL1N0eWxlUHJvcGVydHlTZXQuY3BwCkBAIC0x
MTIzLDcgKzExMjMsNyBAQCB2b2lkIFN0eWxlUHJvcGVydHlTZXQ6OnJlcG9ydE1lbW9yeVVzYWdl
KE1lbW9yeU9iamVjdEluZm8qIG1lbW9yeU9iamVjdEluZm8pIGNvbgogICAgIHNpemVfdCBhY3R1
YWxTaXplID0gbV9pc011dGFibGUgPyBzaXplb2YoU3R5bGVQcm9wZXJ0eVNldCkgOiBpbW11dGFi
bGVTdHlsZVByb3BlcnR5U2V0U2l6ZShtX2FycmF5U2l6ZSk7CiAgICAgTWVtb3J5Q2xhc3NJbmZv
IGluZm8obWVtb3J5T2JqZWN0SW5mbywgdGhpcywgV2ViQ29yZU1lbW9yeVR5cGVzOjpDU1MsIGFj
dHVhbFNpemUpOwogICAgIGlmIChtX2lzTXV0YWJsZSkKLSAgICAgICAgaW5mby5hZGRWZWN0b3JQ
dHIobV9tdXRhYmxlUHJvcGVydHlWZWN0b3IpOworICAgICAgICBpbmZvLmFkZEluc3RydW1lbnRl
ZE1lbWJlcihtX211dGFibGVQcm9wZXJ0eVZlY3Rvcik7CiAKICAgICB1bnNpZ25lZCBjb3VudCA9
IHByb3BlcnR5Q291bnQoKTsKICAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgY291bnQ7ICsr
aSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9TdHlsZVJlc29sdmVyLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2Nzcy9TdHlsZVJlc29sdmVyLmNwcAppbmRleCBjYmJmMDRhNDExNjkxMWY4
Njc2YjkyMzc0MDdlNjQ3MGRlMDM0M2Q5Li4yMGRkMWI0MWJkNDU5YTRkMmU2NzcxNGEwNDlmYjVk
MzU5MTAxZTM0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVSZXNvbHZlci5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL1N0eWxlUmVzb2x2ZXIuY3BwCkBAIC03NDYsOCAr
NzQ2LDggQEAgdm9pZCBTdHlsZVJlc29sdmVyOjpGZWF0dXJlczo6cmVwb3J0TWVtb3J5VXNhZ2Uo
TWVtb3J5T2JqZWN0SW5mbyogbWVtb3J5T2JqZWN0SW4KICAgICBNZW1vcnlDbGFzc0luZm8gaW5m
byhtZW1vcnlPYmplY3RJbmZvLCB0aGlzLCBXZWJDb3JlTWVtb3J5VHlwZXM6OkNTUyk7CiAgICAg
aW5mby5hZGRIYXNoU2V0KGlkc0luUnVsZXMpOwogICAgIGluZm8uYWRkSGFzaFNldChhdHRyc0lu
UnVsZXMpOwotICAgIGluZm8uYWRkVmVjdG9yKHNpYmxpbmdSdWxlcyk7Ci0gICAgaW5mby5hZGRW
ZWN0b3IodW5jb21tb25BdHRyaWJ1dGVSdWxlcyk7CisgICAgaW5mby5hZGRJbnN0cnVtZW50ZWRN
ZW1iZXIoc2libGluZ1J1bGVzKTsKKyAgICBpbmZvLmFkZEluc3RydW1lbnRlZE1lbWJlcih1bmNv
bW1vbkF0dHJpYnV0ZVJ1bGVzKTsKIH0KIAogc3RhdGljIFN0eWxlU2hlZXRDb250ZW50cyogcGFy
c2VVQVNoZWV0KGNvbnN0IFN0cmluZyYgc3RyKQpAQCAtMjU3Nyw3ICsyNTc3LDcgQEAgdm9pZCBS
dWxlU2V0OjpyZXBvcnRNZW1vcnlVc2FnZShNZW1vcnlPYmplY3RJbmZvKiBtZW1vcnlPYmplY3RJ
bmZvKSBjb25zdAogICAgIGluZm8uYWRkSW5zdHJ1bWVudGVkVmVjdG9yKG1fbGlua1BzZXVkb0Ns
YXNzUnVsZXMpOwogICAgIGluZm8uYWRkSW5zdHJ1bWVudGVkVmVjdG9yKG1fZm9jdXNQc2V1ZG9D
bGFzc1J1bGVzKTsKICAgICBpbmZvLmFkZEluc3RydW1lbnRlZFZlY3RvcihtX3VuaXZlcnNhbFJ1
bGVzKTsKLSAgICBpbmZvLmFkZFZlY3RvcihtX3BhZ2VSdWxlcyk7CisgICAgaW5mby5hZGRJbnN0
cnVtZW50ZWRNZW1iZXIobV9wYWdlUnVsZXMpOwogICAgIGluZm8uYWRkSW5zdHJ1bWVudGVkVmVj
dG9yKG1fcmVnaW9uU2VsZWN0b3JzQW5kUnVsZVNldHMpOwogfQogCkBAIC01NzU5LDcgKzU3NTks
NyBAQCB2b2lkIFN0eWxlUmVzb2x2ZXI6OnJlcG9ydE1lbW9yeVVzYWdlKE1lbW9yeU9iamVjdElu
Zm8qIG1lbW9yeU9iamVjdEluZm8pIGNvbnN0CiAgICAgaW5mby5hZGRIYXNoTWFwKG1fa2V5ZnJh
bWVzUnVsZU1hcCk7CiAgICAgaW5mby5hZGRIYXNoTWFwKG1fbWF0Y2hlZFByb3BlcnRpZXNDYWNo
ZSk7CiAgICAgaW5mby5hZGRJbnN0cnVtZW50ZWRNYXBWYWx1ZXMobV9tYXRjaGVkUHJvcGVydGll
c0NhY2hlKTsKLSAgICBpbmZvLmFkZFZlY3RvcihtX21hdGNoZWRSdWxlcyk7CisgICAgaW5mby5h
ZGRJbnN0cnVtZW50ZWRNZW1iZXIobV9tYXRjaGVkUnVsZXMpOwogCiAgICAgaW5mby5hZGRJbnN0
cnVtZW50ZWRNZW1iZXIobV9ydWxlTGlzdCk7CiAgICAgaW5mby5hZGRIYXNoTWFwKG1fcGVuZGlu
Z0ltYWdlUHJvcGVydGllcyk7CkBAIC01Nzc1LDcgKzU3NzUsNyBAQCB2b2lkIFN0eWxlUmVzb2x2
ZXI6OnJlcG9ydE1lbW9yeVVzYWdlKE1lbW9yeU9iamVjdEluZm8qIG1lbW9yeU9iamVjdEluZm8p
IGNvbnN0CiAjaWYgRU5BQkxFKFNUWUxFX1NDT1BFRCkKICAgICBpbmZvLmFkZEhhc2hNYXAobV9z
Y29wZWRBdXRob3JTdHlsZXMpOwogICAgIGluZm8uYWRkSW5zdHJ1bWVudGVkTWFwRW50cmllcyht
X3Njb3BlZEF1dGhvclN0eWxlcyk7Ci0gICAgaW5mby5hZGRWZWN0b3IobV9zY29wZVN0YWNrKTsK
KyAgICBpbmZvLmFkZEluc3RydW1lbnRlZE1lbWJlcihtX3Njb3BlU3RhY2spOwogI2VuZGlmCiAK
ICAgICAvLyBGSVhNRTogbW92ZSB0aGlzIHRvIGEgcGxhY2Ugd2hlcmUgaXQgd291bGQgYmUgY2Fs
bGVkIG9ubHkgb25jZT8KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9TdHlsZVNoZWV0
Q29udGVudHMuY3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL1N0eWxlU2hlZXRDb250ZW50cy5jcHAK
aW5kZXggYmEwMGUyYjIxYjY5ZmEzNTA2YWFlMmQxMTI1MmFhMzQwYjc5NzRiOC4uMjEzMDFmYjJl
ODYwZDg1ZmFjMDk5YzVmN2ZmMmE0YWEwZDI4MzdlYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvY3NzL1N0eWxlU2hlZXRDb250ZW50cy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL1N0
eWxlU2hlZXRDb250ZW50cy5jcHAKQEAgLTQ5NSwxMCArNDk1LDEwIEBAIHZvaWQgU3R5bGVTaGVl
dENvbnRlbnRzOjpyZXBvcnRNZW1vcnlVc2FnZShNZW1vcnlPYmplY3RJbmZvKiBtZW1vcnlPYmpl
Y3RJbmZvKSBjCiAgICAgTWVtb3J5Q2xhc3NJbmZvIGluZm8obWVtb3J5T2JqZWN0SW5mbywgdGhp
cywgV2ViQ29yZU1lbW9yeVR5cGVzOjpDU1MpOwogICAgIGluZm8uYWRkSW5zdHJ1bWVudGVkTWVt
YmVyKG1fb3JpZ2luYWxVUkwpOwogICAgIGluZm8uYWRkSW5zdHJ1bWVudGVkTWVtYmVyKG1fZW5j
b2RpbmdGcm9tQ2hhcnNldFJ1bGUpOwotICAgIGluZm8uYWRkVmVjdG9yKG1faW1wb3J0UnVsZXMp
OworICAgIGluZm8uYWRkSW5zdHJ1bWVudGVkTWVtYmVyKG1faW1wb3J0UnVsZXMpOwogICAgIGlu
Zm8uYWRkSW5zdHJ1bWVudGVkVmVjdG9yKG1fY2hpbGRSdWxlcyk7CiAgICAgaW5mby5hZGRIYXNo
TWFwKG1fbmFtZXNwYWNlcyk7Ci0gICAgaW5mby5hZGRWZWN0b3IobV9jbGllbnRzKTsKKyAgICBp
bmZvLmFkZEluc3RydW1lbnRlZE1lbWJlcihtX2NsaWVudHMpOwogfQogCiB9CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL0Rv
Y3VtZW50LmNwcAppbmRleCA3Y2YwYjY2YTY0MDI5ZDhiNjJhMGNhZjIyZmY4MjU4M2ZjODhmYmE4
Li5kYWEzNzc5YjdkMmMyYmFiOWM1MzA3ZDljNmFiYjI1Mzg5ODVhZTRmIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9E
b2N1bWVudC5jcHAKQEAgLTYxMjUsNyArNjEyNSw3IEBAIHZvaWQgRG9jdW1lbnQ6OnJlcG9ydE1l
bW9yeVVzYWdlKE1lbW9yeU9iamVjdEluZm8qIG1lbW9yeU9iamVjdEluZm8pIGNvbnN0CiAgICAg
TWVtb3J5Q2xhc3NJbmZvIGluZm8obWVtb3J5T2JqZWN0SW5mbywgdGhpcywgV2ViQ29yZU1lbW9y
eVR5cGVzOjpET00pOwogICAgIGluZm8uYWRkSW5zdHJ1bWVudGVkTWVtYmVyKG1fc3R5bGVSZXNv
bHZlcik7CiAgICAgQ29udGFpbmVyTm9kZTo6cmVwb3J0TWVtb3J5VXNhZ2UobWVtb3J5T2JqZWN0
SW5mbyk7Ci0gICAgaW5mby5hZGRWZWN0b3IobV9jdXN0b21Gb250cyk7CisgICAgaW5mby5hZGRJ
bnN0cnVtZW50ZWRNZW1iZXIobV9jdXN0b21Gb250cyk7CiAgICAgaW5mby5hZGRJbnN0cnVtZW50
ZWRNZW1iZXIobV91cmwpOwogICAgIGluZm8uYWRkSW5zdHJ1bWVudGVkTWVtYmVyKG1fYmFzZVVS
TCk7CiAgICAgaW5mby5hZGRJbnN0cnVtZW50ZWRNZW1iZXIobV9iYXNlVVJMT3ZlcnJpZGUpOwpA
QCAtNjE1NSwxNyArNjE1NSwxNyBAQCB2b2lkIERvY3VtZW50OjpyZXBvcnRNZW1vcnlVc2FnZShN
ZW1vcnlPYmplY3RJbmZvKiBtZW1vcnlPYmplY3RJbmZvKSBjb25zdAogICAgIGluZm8uYWRkSGFz
aE1hcChtX2RvY3VtZW50TmFtZWRJdGVtQ29sbGVjdGlvbnMpOwogICAgIGluZm8uYWRkSGFzaE1h
cChtX3dpbmRvd05hbWVkSXRlbUNvbGxlY3Rpb25zKTsKICNpZiBFTkFCTEUoREFTSEJPQVJEX1NV
UFBPUlQpCi0gICAgaW5mby5hZGRWZWN0b3IobV9kYXNoYm9hcmRSZWdpb25zKTsKKyAgICBpbmZv
LmFkZEluc3RydW1lbnRlZE1lbWJlcihtX2Rhc2hib2FyZFJlZ2lvbnMpOwogI2VuZGlmCiAgICAg
aW5mby5hZGRIYXNoTWFwKG1fY3NzQ2FudmFzRWxlbWVudHMpOwotICAgIGluZm8uYWRkVmVjdG9y
KG1faWNvblVSTHMpOworICAgIGluZm8uYWRkSW5zdHJ1bWVudGVkTWVtYmVyKG1faWNvblVSTHMp
OwogICAgIGluZm8uYWRkSGFzaFNldChtX2RvY3VtZW50U3VzcGVuc2lvbkNhbGxiYWNrRWxlbWVu
dHMpOwogICAgIGluZm8uYWRkSGFzaFNldChtX21lZGlhVm9sdW1lQ2FsbGJhY2tFbGVtZW50cyk7
CiAgICAgaW5mby5hZGRIYXNoU2V0KG1fcHJpdmF0ZUJyb3dzaW5nU3RhdGVDaGFuZ2VkRWxlbWVu
dHMpOwogICAgIGluZm8uYWRkSGFzaE1hcChtX2VsZW1lbnRzQnlBY2Nlc3NLZXkpOwogICAgIGlu
Zm8uYWRkSW5zdHJ1bWVudGVkTWVtYmVyKG1fZXZlbnRRdWV1ZSk7CiAgICAgaW5mby5hZGRIYXNo
U2V0KG1fbWVkaWFDYW5TdGFydExpc3RlbmVycyk7Ci0gICAgaW5mby5hZGRWZWN0b3IobV9wZW5k
aW5nVGFza3MpOworICAgIGluZm8uYWRkSW5zdHJ1bWVudGVkTWVtYmVyKG1fcGVuZGluZ1Rhc2tz
KTsKIH0KIAogI2lmIEVOQUJMRShVTkRPX01BTkFHRVIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9kb20vRWxlbWVudEF0dHJpYnV0ZURhdGEuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL0Vs
ZW1lbnRBdHRyaWJ1dGVEYXRhLmNwcAppbmRleCBhNjQ1NGRkZTEzYjIyNWJkYWM5MjEwNjhhNTg2
ZTM1OTM5ZWI1YzdmLi44YWNkMTE4ZjExNDQ3YTk1YTBjNmUzYjNkZGY3ZTE3OTc5ZjMxMDJjIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudEF0dHJpYnV0ZURhdGEuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50QXR0cmlidXRlRGF0YS5jcHAKQEAgLTI5Niw3
ICsyOTYsNyBAQCB2b2lkIEVsZW1lbnRBdHRyaWJ1dGVEYXRhOjpyZXBvcnRNZW1vcnlVc2FnZShN
ZW1vcnlPYmplY3RJbmZvKiBtZW1vcnlPYmplY3RJbmZvKQogICAgIGluZm8uYWRkTWVtYmVyKG1f
Y2xhc3NOYW1lcyk7CiAgICAgaW5mby5hZGRJbnN0cnVtZW50ZWRNZW1iZXIobV9pZEZvclN0eWxl
UmVzb2x1dGlvbik7CiAgICAgaWYgKG1faXNNdXRhYmxlKQotICAgICAgICBpbmZvLmFkZFZlY3Rv
cihtdXRhYmxlQXR0cmlidXRlVmVjdG9yKCkpOworICAgICAgICBpbmZvLmFkZEluc3RydW1lbnRl
ZE1lbWJlcihtdXRhYmxlQXR0cmlidXRlVmVjdG9yKCkpOwogICAgIGZvciAodW5zaWduZWQgaSA9
IDAsIGxlbiA9IGxlbmd0aCgpOyBpIDwgbGVuOyBpKyspCiAgICAgICAgIGluZm8uYWRkSW5zdHJ1
bWVudGVkTWVtYmVyKCphdHRyaWJ1dGVJdGVtKGkpKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2xvYWRlci9Eb2N1bWVudExvYWRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIv
RG9jdW1lbnRMb2FkZXIuY3BwCmluZGV4IDVjYTlkNjgzZDcxYWIzNDNkYTIzY2JjMTlhYWU2Mzg2
YzUxNGZlZTYuLmJiMDdmOWEzOWI5Y2VjNmZkYTg2NDcxMjNkYTc4MDBkN2Y5YzMzZTIgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Eb2N1bWVudExvYWRlci5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvbG9hZGVyL0RvY3VtZW50TG9hZGVyLmNwcApAQCAtMzY4LDcgKzM2OCw3IEBA
IHZvaWQgRG9jdW1lbnRMb2FkZXI6OnJlcG9ydE1lbW9yeVVzYWdlKE1lbW9yeU9iamVjdEluZm8q
IG1lbW9yeU9iamVjdEluZm8pIGNvbnN0CiAgICAgaW5mby5hZGRJbnN0cnVtZW50ZWRNZW1iZXIo
bV9zdWJzdGl0dXRlRGF0YSk7CiAgICAgaW5mby5hZGRJbnN0cnVtZW50ZWRNZW1iZXIobV9wYWdl
VGl0bGUuc3RyaW5nKCkpOwogICAgIGluZm8uYWRkSW5zdHJ1bWVudGVkTWVtYmVyKG1fb3ZlcnJp
ZGVFbmNvZGluZyk7Ci0gICAgaW5mby5hZGRWZWN0b3IobV9yZXNwb25zZXMpOworICAgIGluZm8u
YWRkSW5zdHJ1bWVudGVkTWVtYmVyKG1fcmVzcG9uc2VzKTsKICAgICBpbmZvLmFkZEluc3RydW1l
bnRlZE1lbWJlcihtX29yaWdpbmFsUmVxdWVzdCk7CiAgICAgaW5mby5hZGRJbnN0cnVtZW50ZWRN
ZW1iZXIobV9vcmlnaW5hbFJlcXVlc3RDb3B5KTsKICAgICBpbmZvLmFkZEluc3RydW1lbnRlZE1l
bWJlcihtX3JlcXVlc3QpOwpAQCAtMzc3LDcgKzM3Nyw3IEBAIHZvaWQgRG9jdW1lbnRMb2FkZXI6
OnJlcG9ydE1lbW9yeVVzYWdlKE1lbW9yeU9iamVjdEluZm8qIG1lbW9yeU9iamVjdEluZm8pIGNv
bnN0CiAgICAgaW5mby5hZGRJbnN0cnVtZW50ZWRWZWN0b3IobV9yZXNwb25zZXMpOwogICAgIGlu
Zm8uYWRkSGFzaE1hcChtX3BlbmRpbmdTdWJzdGl0dXRlUmVzb3VyY2VzKTsKICAgICBpbmZvLmFk
ZEluc3RydW1lbnRlZEhhc2hTZXQobV9yZXNvdXJjZXNDbGllbnRLbm93c0Fib3V0KTsKLSAgICBp
bmZvLmFkZFZlY3RvcihtX3Jlc291cmNlc0xvYWRlZEZyb21NZW1vcnlDYWNoZUZvckNsaWVudE5v
dGlmaWNhdGlvbik7CisgICAgaW5mby5hZGRJbnN0cnVtZW50ZWRNZW1iZXIobV9yZXNvdXJjZXNM
b2FkZWRGcm9tTWVtb3J5Q2FjaGVGb3JDbGllbnROb3RpZmljYXRpb24pOwogICAgIGluZm8uYWRk
SW5zdHJ1bWVudGVkTWVtYmVyKG1fY2xpZW50UmVkaXJlY3RTb3VyY2VGb3JIaXN0b3J5KTsKICAg
ICBpbmZvLmFkZEluc3RydW1lbnRlZE1lbWJlcihtX21haW5SZXNvdXJjZURhdGEpOwogfQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL01lbW9yeUNhY2hlLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9NZW1vcnlDYWNoZS5jcHAKaW5kZXggYWFmODUyYTk1
MTYzYjVmNGU1NjA5NjgwNTY2MDljZDllOGJlNmIxNi4uMDA0MmU2OThlMzRjZGZjZmViZjUzMjRk
NjlhODg4ZDcyMDE0MGVlMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hl
L01lbW9yeUNhY2hlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvTWVtb3J5
Q2FjaGUuY3BwCkBAIC03MjQsNyArNzI0LDcgQEAgdm9pZCBNZW1vcnlDYWNoZTo6cmVwb3J0TWVt
b3J5VXNhZ2UoTWVtb3J5T2JqZWN0SW5mbyogbWVtb3J5T2JqZWN0SW5mbykgY29uc3QKICAgICAg
ICAgaW5mby5hZGRJbnN0cnVtZW50ZWRNZW1iZXIoaS0+Zmlyc3QpOwogICAgICAgICBpbmZvLmFk
ZEluc3RydW1lbnRlZE1lbWJlcihpLT5zZWNvbmQpOwogICAgIH0KLSAgICBpbmZvLmFkZFZlY3Rv
cihtX2FsbFJlc291cmNlcyk7CisgICAgaW5mby5hZGRJbnN0cnVtZW50ZWRNZW1iZXIobV9hbGxS
ZXNvdXJjZXMpOwogICAgIGluZm8uYWRkTWVtYmVyKG1fbGl2ZURlY29kZWRSZXNvdXJjZXMpOwog
fQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TaGFyZWRCdWZmZXIuY3Bw
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2hhcmVkQnVmZmVyLmNwcAppbmRleCBiOWRkM2Ez
ZTRiY2JkNmExYTg2YzE3MmIwNmY2ZmVmZjBlOGZkZjNjLi4wODQzYjQ0N2E3NGZlZGRjODVmNWY2
ZmRhZDFjZTA3NzQzZGUwOWVmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9T
aGFyZWRCdWZmZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1NoYXJlZEJ1ZmZl
ci5jcHAKQEAgLTI1MSw4ICsyNTEsOCBAQCBjb25zdCBWZWN0b3I8Y2hhcj4mIFNoYXJlZEJ1ZmZl
cjo6YnVmZmVyKCkgY29uc3QKIHZvaWQgU2hhcmVkQnVmZmVyOjpyZXBvcnRNZW1vcnlVc2FnZShN
ZW1vcnlPYmplY3RJbmZvKiBtZW1vcnlPYmplY3RJbmZvKSBjb25zdAogewogICAgIE1lbW9yeUNs
YXNzSW5mbyBpbmZvKG1lbW9yeU9iamVjdEluZm8sIHRoaXMpOwotICAgIGluZm8uYWRkVmVjdG9y
KG1fYnVmZmVyKTsKLSAgICBpbmZvLmFkZFZlY3RvcihtX3NlZ21lbnRzKTsKKyAgICBpbmZvLmFk
ZEluc3RydW1lbnRlZE1lbWJlcihtX2J1ZmZlcik7CisgICAgaW5mby5hZGRJbnN0cnVtZW50ZWRN
ZW1iZXIobV9zZWdtZW50cyk7CiAgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IG1fc2VnbWVu
dHMuc2l6ZSgpOyArK2kpCiAgICAgICAgIGluZm8uYWRkUmF3QnVmZmVyKG1fc2VnbWVudHNbaV0s
IHNlZ21lbnRTaXplKTsKICAgICBpbmZvLmFkZE1lbWJlcihtX3B1cmdlYWJsZUJ1ZmZlci5nZXQo
KSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9CaXRtYXBJ
bWFnZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9CaXRtYXBJbWFnZS5j
cHAKaW5kZXggNDQ4YTI4Mjk1NmJlOTU1ZTQyMDQ4MGE2MzJhMjQ2MDcxNDBlNGExNi4uMWYxYWJi
MmYyZTJiYmUzZTJhOTFmYWI0ZWIxMGM4MGZhZmMyNjU2NiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvQml0bWFwSW1hZ2UuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL0JpdG1hcEltYWdlLmNwcApAQCAtNTc4LDcgKzU3OCw3IEBA
IHZvaWQgQml0bWFwSW1hZ2U6OnJlcG9ydE1lbW9yeVVzYWdlKE1lbW9yeU9iamVjdEluZm8qIG1l
bW9yeU9iamVjdEluZm8pIGNvbnN0CiAgICAgSW1hZ2U6OnJlcG9ydE1lbW9yeVVzYWdlKG1lbW9y
eU9iamVjdEluZm8pOwogICAgIGluZm8uYWRkTWVtYmVyKG1fc291cmNlKTsKICAgICBpbmZvLmFk
ZE1lbWJlcihtX2ZyYW1lVGltZXIpOwotICAgIGluZm8uYWRkVmVjdG9yKG1fZnJhbWVzKTsKKyAg
ICBpbmZvLmFkZEluc3RydW1lbnRlZE1lbWJlcihtX2ZyYW1lcyk7CiAgICAgZm9yICh1bnNpZ25l
ZCBpID0gMDsgaSA8IG1fZnJhbWVDb3VudDsgKytpKSB7CiAjaWYgT1MoV0lOQ0UpCiAgICAgICAg
IGluZm8uYWRkUmF3QnVmZmVyKG1fZnJhbWVzW2ldLm1fZnJhbWUuZ2V0KCksIG1fZnJhbWVzW2ld
Lm1fZnJhbWVCeXRlcyk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3
b3JrL0Zvcm1EYXRhLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvRm9ybURh
dGEuY3BwCmluZGV4IGFiMjVlODc5MDk4YmM2NWU3OWJmODQyZjA1YTE3NjQyY2QxMzEwOTEuLjBj
NGRkM2E3NmI4NTA3MzBmOWZjMzI3YzU3N2NjNzBiMzY5NDE5ZjEgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvRm9ybURhdGEuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL25ldHdvcmsvRm9ybURhdGEuY3BwCkBAIC0zNjAsNyArMzYwLDcgQEAgdm9p
ZCBGb3JtRGF0YTo6cmVtb3ZlR2VuZXJhdGVkRmlsZXNJZk5lZWRlZCgpCiB2b2lkIEZvcm1EYXRh
OjpyZXBvcnRNZW1vcnlVc2FnZShNZW1vcnlPYmplY3RJbmZvKiBtZW1vcnlPYmplY3RJbmZvKSBj
b25zdAogewogICAgIE1lbW9yeUNsYXNzSW5mbyBpbmZvKG1lbW9yeU9iamVjdEluZm8sIHRoaXMs
IFdlYkNvcmVNZW1vcnlUeXBlczo6TG9hZGVyKTsKLSAgICBpbmZvLmFkZFZlY3RvcihtX2JvdW5k
YXJ5KTsKKyAgICBpbmZvLmFkZEluc3RydW1lbnRlZE1lbWJlcihtX2JvdW5kYXJ5KTsKIH0KIAog
c3RhdGljIHZvaWQgZW5jb2RlKEVuY29kZXImIGVuY29kZXIsIGNvbnN0IEZvcm1EYXRhRWxlbWVu
dCYgZWxlbWVudCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9S
ZW5kZXJTdHlsZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5
bGUuY3BwCmluZGV4IGYxNjBkOWVjYzAxNzk0MDVhMTE1MWRjN2ZlZTgyY2ExMWU5NWM2ZmQuLjg4
NjQ4NGMwNzA1YzIzOTE2MzhkMTYzY2E1MTg4YTM0ZGFlOTAzYzAgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZS5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlLmNwcApAQCAtMTYxNiw3ICsxNjE2LDcg
QEAgdm9pZCBSZW5kZXJTdHlsZTo6cmVwb3J0TWVtb3J5VXNhZ2UoTWVtb3J5T2JqZWN0SW5mbyog
bWVtb3J5T2JqZWN0SW5mbykgY29uc3QKICAgICAvLyBGSVhNRTogaW5oZXJpdGVkIGNvbnRhaW5z
IFN0eWxlSW1hZ2UgYW5kIEZvbnQgZmllbGRzIHRoYXQgbWlnaHQgbmVlZCB0byBiZSBpbnN0cnVt
ZW50ZWQuCiAgICAgaW5mby5hZGRNZW1iZXIoaW5oZXJpdGVkKTsKICAgICBpZiAobV9jYWNoZWRQ
c2V1ZG9TdHlsZXMpCi0gICAgICAgIGluZm8uYWRkVmVjdG9yUHRyKG1fY2FjaGVkUHNldWRvU3R5
bGVzLmdldCgpKTsKKyAgICAgICAgaW5mby5hZGRJbnN0cnVtZW50ZWRNZW1iZXIobV9jYWNoZWRQ
c2V1ZG9TdHlsZXMuZ2V0KCkpOwogI2lmIEVOQUJMRShTVkcpCiAgICAgaW5mby5hZGRNZW1iZXIo
bV9zdmdTdHlsZSk7CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9zdHlsZS9TdHlsZVJhcmVOb25Jbmhlcml0ZWREYXRhLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9zdHlsZS9TdHlsZVJhcmVOb25Jbmhlcml0ZWREYXRhLmNwcAppbmRleCA4MTFiZmEx
ZmVjZmU3MTdkN2FhOTIxYmZkMmYxNDE2MTJkMDkyYjg1Li45MGY0MWYwM2VhZDc5MmMyZTA3MjA1
YmQ5ZTgwMTQ5YWRkZmZiZTM3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
c3R5bGUvU3R5bGVSYXJlTm9uSW5oZXJpdGVkRGF0YS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL3N0eWxlL1N0eWxlUmFyZU5vbkluaGVyaXRlZERhdGEuY3BwCkBAIC0zMDYsNyAr
MzA2LDcgQEAgdm9pZCBTdHlsZVJhcmVOb25Jbmhlcml0ZWREYXRhOjpyZXBvcnRNZW1vcnlVc2Fn
ZShNZW1vcnlPYmplY3RJbmZvKiBtZW1vcnlPYmplY3QKIHsKICAgICBNZW1vcnlDbGFzc0luZm8g
aW5mbyhtZW1vcnlPYmplY3RJbmZvLCB0aGlzLCBXZWJDb3JlTWVtb3J5VHlwZXM6OkNTUyk7CiAj
aWYgRU5BQkxFKERBU0hCT0FSRF9TVVBQT1JUKQotICAgIGluZm8uYWRkVmVjdG9yKG1fZGFzaGJv
YXJkUmVnaW9ucyk7CisgICAgaW5mby5hZGRJbnN0cnVtZW50ZWRNZW1iZXIobV9kYXNoYm9hcmRS
ZWdpb25zKTsKICNlbmRpZgogICAgIGluZm8uYWRkTWVtYmVyKG1fZGVwcmVjYXRlZEZsZXhpYmxl
Qm94KTsKICAgICBpbmZvLmFkZE1lbWJlcihtX2ZsZXhpYmxlQm94KTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMvTWVtb3J5SW5zdHJ1bWVudGF0aW9uVGVzdC5jcHAg
Yi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rlc3RzL01lbW9yeUluc3RydW1lbnRhdGlvblRlc3Qu
Y3BwCmluZGV4IDRhMGEzY2Y4MWZlYjA5ZmJlOTEzZDNjMTAyOTY5MmE2M2U2NTlmMTAuLjFiMTc1
YTkzNTczNmNjMjg3NGM3MzAzYzU5ZDc1Njc4ZGU0YTdlZTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvY2hyb21pdW0vdGVzdHMvTWVtb3J5SW5zdHJ1bWVudGF0aW9uVGVzdC5jcHAKKysrIGIv
U291cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0cy9NZW1vcnlJbnN0cnVtZW50YXRpb25UZXN0LmNw
cApAQCAtMjMyLDggKzIzMiw5IEBAIFRFU1QoTWVtb3J5SW5zdHJ1bWVudGF0aW9uVGVzdCwgdmlz
aXRGaXJzdE1lbWJlckluTm9uVmlydHVhbENsYXNzKQogdGVtcGxhdGU8dHlwZW5hbWUgVD4KIGNs
YXNzIEluc3RydW1lbnRlZE93bmVyIHsKIHB1YmxpYzoKKyAgICBJbnN0cnVtZW50ZWRPd25lcigp
IHsgfQogICAgIHRlbXBsYXRlPHR5cGVuYW1lIFY+Ci0gICAgSW5zdHJ1bWVudGVkT3duZXIoY29u
c3QgViYgdmFsdWUpIDogbV92YWx1ZSh2YWx1ZSkgeyB9CisgICAgZXhwbGljaXQgSW5zdHJ1bWVu
dGVkT3duZXIoY29uc3QgViYgdmFsdWUpIDogbV92YWx1ZSh2YWx1ZSkgeyB9CiAgICAgdm9pZCBy
ZXBvcnRNZW1vcnlVc2FnZShNZW1vcnlPYmplY3RJbmZvKiBtZW1vcnlPYmplY3RJbmZvKSBjb25z
dAogICAgIHsKICAgICAgICAgTWVtb3J5Q2xhc3NJbmZvIGluZm8obWVtb3J5T2JqZWN0SW5mbywg
dGhpcywgV2ViQ29yZU1lbW9yeVR5cGVzOjpET00pOwpAQCAtMjc1LDUgKzI3NiwzNiBAQCBURVNU
KE1lbW9yeUluc3RydW1lbnRhdGlvblRlc3QsIHZpc2l0U3RyaW5ncykKICAgICB9CiB9CiAKK1RF
U1QoTWVtb3J5SW5zdHJ1bWVudGF0aW9uVGVzdCwgdmlzaXRWZWN0b3IpCit7CisgICAgVmlzaXRl
ZE9iamVjdHMgdmlzaXRlZE9iamVjdHM7CisgICAgTWVtb3J5SW5zdHJ1bWVudGF0aW9uSW1wbCBp
bXBsKHZpc2l0ZWRPYmplY3RzKTsKKyAgICBJbnN0cnVtZW50ZWRPd25lcjxWZWN0b3I8aW50PiA+
IHZlY3Rvck93bmVyKDE2KTsKKyAgICBpbXBsLmFkZFJvb3RPYmplY3QodmVjdG9yT3duZXIpOwor
ICAgIEVYUEVDVF9FUSgxNiAqIHNpemVvZihpbnQpLCBpbXBsLnJlcG9ydGVkU2l6ZUZvckFsbFR5
cGVzKCkpOworICAgIEVYUEVDVF9FUSgxLCB2aXNpdGVkT2JqZWN0cy5zaXplKCkpOworfQorCitU
RVNUKE1lbW9yeUluc3RydW1lbnRhdGlvblRlc3QsIHZpc2l0VmVjdG9yV2l0aElubGluZUNhcGFj
aXR5MSkKK3sKKyAgICBWaXNpdGVkT2JqZWN0cyB2aXNpdGVkT2JqZWN0czsKKyAgICBNZW1vcnlJ
bnN0cnVtZW50YXRpb25JbXBsIGltcGwodmlzaXRlZE9iamVjdHMpOworICAgIEluc3RydW1lbnRl
ZE93bmVyPFZlY3RvcjxpbnQsIDQ+ID4gdmVjdG9yT3duZXI7CisgICAgaW1wbC5hZGRSb290T2Jq
ZWN0KHZlY3Rvck93bmVyKTsKKyAgICBFWFBFQ1RfRVEoc3RhdGljX2Nhc3Q8c2l6ZV90PigwKSwg
aW1wbC5yZXBvcnRlZFNpemVGb3JBbGxUeXBlcygpKTsKKyAgICBFWFBFQ1RfRVEoMCwgdmlzaXRl
ZE9iamVjdHMuc2l6ZSgpKTsKK30KKworVEVTVChNZW1vcnlJbnN0cnVtZW50YXRpb25UZXN0LCB2
aXNpdFZlY3RvcldpdGhJbmxpbmVDYXBhY2l0eTIpCit7CisgICAgVmlzaXRlZE9iamVjdHMgdmlz
aXRlZE9iamVjdHM7CisgICAgTWVtb3J5SW5zdHJ1bWVudGF0aW9uSW1wbCBpbXBsKHZpc2l0ZWRP
YmplY3RzKTsKKyAgICBJbnN0cnVtZW50ZWRPd25lcjxWZWN0b3I8aW50LCA0PiA+IHZlY3Rvck93
bmVyOworICAgIHZlY3Rvck93bmVyLm1fdmFsdWUucmVzZXJ2ZUNhcGFjaXR5KDgpOworICAgIGlt
cGwuYWRkUm9vdE9iamVjdCh2ZWN0b3JPd25lcik7CisgICAgRVhQRUNUX0VRKDggKiBzaXplb2Yo
aW50KSwgaW1wbC5yZXBvcnRlZFNpemVGb3JBbGxUeXBlcygpKTsKKyAgICBFWFBFQ1RfRVEoMSwg
dmlzaXRlZE9iamVjdHMuc2l6ZSgpKTsKK30KKwogfSAvLyBuYW1lc3BhY2UKIAo=
</data>
<flag name="review"
          id="175476"
          type_id="1"
          status="+"
          setter="vsevik"
    />
    <flag name="commit-queue"
          id="175721"
          type_id="3"
          status="-"
          setter="webkit.review.bot"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>164066</attachid>
            <date>2012-09-14 00:35:02 -0700</date>
            <delta_ts>2012-09-17 22:18:35 -0700</delta_ts>
            <desc>Patch after rebase</desc>
            <filename>vector-instrumentation.patch</filename>
            <type>text/plain</type>
            <size>24684</size>
            <attacher name="Yury Semikhatsky">yurys</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nIGIvU291cmNlL1dURi9DaGFuZ2VMb2cK
aW5kZXggNzg0ZTk5ZS4uNjlhY2I0ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dURi9DaGFuZ2VMb2cK
KysrIGIvU291cmNlL1dURi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyOCBAQAorMjAxMi0wOS0xMyAg
WXVyeSBTZW1pa2hhdHNreSAgPHl1cnlzQGNocm9taXVtLm9yZz4KKworICAgICAgICBXZWIgSW5z
cGVjdG9yOiBtb3ZlIFZlY3RvciBtZW1vcnkgaW5zdHJ1bWVudGF0aW9uIHRvIFZlY3Rvci5oCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05NjY1MAorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZGVkIHJlcG9y
dE1lbW9yeVVzYWdlIG1ldGhvZCB0byBWZWN0b3IgYW5kIGl0cyBidWZmZXIgaW1wbGVtZW50YXRp
b25zLgorCisgICAgICAgICogd3RmL01lbW9yeUluc3RydW1lbnRhdGlvbi5oOgorICAgICAgICAo
TWVtb3J5SW5zdHJ1bWVudGF0aW9uKToKKyAgICAgICAgKFdURjo6TWVtb3J5Q2xhc3NJbmZvOjph
ZGRJbnN0cnVtZW50ZWRWZWN0b3IpOiB0aGVzZSBtZXRob2RzIHdpbGwgYmUgcmVtb3ZlZAorICAg
ICAgICBzb29uIHdoZW4gd2UgZXh0ZW5kIHRoZSBBUEkgc28gdGhhdCB3ZSBjYW4gc3BlY2lmeSBp
ZiB2ZWN0b3IgdmFsdWVzIGFyZQorICAgICAgICBpbnN0cnVtZW50ZWQgb3Igbm90LgorICAgICAg
ICAoV1RGOjpNZW1vcnlDbGFzc0luZm86OmFkZEluc3RydW1lbnRlZFZlY3RvclB0cik6CisgICAg
ICAgIChXVEY6Ok1lbW9yeUluc3RydW1lbnRhdGlvbjo6YWRkSW5zdHJ1bWVudGVkQ29sbGVjdGlv
bik6CisgICAgICAgIChXVEYpOgorICAgICAgICAoV1RGOjpNZW1vcnlJbnN0cnVtZW50YXRpb246
OmFkZEluc3RydW1lbnRlZENvbGxlY3Rpb25WYWx1ZXMpOgorICAgICAgICAqIHd0Zi9WZWN0b3Iu
aDoKKyAgICAgICAgKFZlY3RvckJ1ZmZlcik6CisgICAgICAgIChXVEY6OlZlY3RvckJ1ZmZlcjo6
cmVwb3J0TWVtb3J5VXNhZ2UpOgorICAgICAgICAoVmVjdG9yKToKKyAgICAgICAgKFdURjo6Ojpy
ZXBvcnRNZW1vcnlVc2FnZSk6CisgICAgICAgIChXVEYpOgorCiAyMDEyLTA5LTE0ICBHeXV5b3Vu
ZyBLaW0gIDxneXV5b3VuZy5raW1Ac2Ftc3VuZy5jb20+CiAKICAgICAgICAgVW5yZXZpZXdlZCwg
cm9sbGluZyBvdXQgcjEyODUwNy4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL01lbW9yeUlu
c3RydW1lbnRhdGlvbi5oIGIvU291cmNlL1dURi93dGYvTWVtb3J5SW5zdHJ1bWVudGF0aW9uLmgK
aW5kZXggODFmNzllOC4uOTlkMDVjNyAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvTWVtb3J5
SW5zdHJ1bWVudGF0aW9uLmgKKysrIGIvU291cmNlL1dURi93dGYvTWVtb3J5SW5zdHJ1bWVudGF0
aW9uLmgKQEAgLTEwMSwxMCArMTAxLDEwIEBAIHByaXZhdGU6CiAgICAgdGVtcGxhdGU8dHlwZW5h
bWUgSGFzaE1hcFR5cGU+IHZvaWQgYWRkSGFzaE1hcChjb25zdCBIYXNoTWFwVHlwZSYsIE1lbW9y
eU9iamVjdFR5cGUsIGJvb2wgY29udGVudE9ubHkgPSBmYWxzZSk7CiAgICAgdGVtcGxhdGU8dHlw
ZW5hbWUgSGFzaFNldFR5cGU+IHZvaWQgYWRkSGFzaFNldChjb25zdCBIYXNoU2V0VHlwZSYsIE1l
bW9yeU9iamVjdFR5cGUsIGJvb2wgY29udGVudE9ubHkgPSBmYWxzZSk7CiAgICAgdGVtcGxhdGU8
dHlwZW5hbWUgQ29sbGVjdGlvblR5cGU+IHZvaWQgYWRkSW5zdHJ1bWVudGVkQ29sbGVjdGlvbihj
b25zdCBDb2xsZWN0aW9uVHlwZSYsIE1lbW9yeU9iamVjdFR5cGUsIGJvb2wgY29udGVudE9ubHkg
PSBmYWxzZSk7CisgICAgdGVtcGxhdGU8dHlwZW5hbWUgQ29sbGVjdGlvblR5cGU+IHZvaWQgYWRk
SW5zdHJ1bWVudGVkQ29sbGVjdGlvblZhbHVlcyhjb25zdCBDb2xsZWN0aW9uVHlwZSYsIE1lbW9y
eU9iamVjdFR5cGUpOwogICAgIHRlbXBsYXRlPHR5cGVuYW1lIE1hcFR5cGU+IHZvaWQgYWRkSW5z
dHJ1bWVudGVkTWFwRW50cmllcyhjb25zdCBNYXBUeXBlJiwgTWVtb3J5T2JqZWN0VHlwZSk7CiAg
ICAgdGVtcGxhdGU8dHlwZW5hbWUgTWFwVHlwZT4gdm9pZCBhZGRJbnN0cnVtZW50ZWRNYXBWYWx1
ZXMoY29uc3QgTWFwVHlwZSYsIE1lbW9yeU9iamVjdFR5cGUpOwogICAgIHRlbXBsYXRlPHR5cGVu
YW1lIExpc3RIYXNoU2V0VHlwZT4gdm9pZCBhZGRMaXN0SGFzaFNldChjb25zdCBMaXN0SGFzaFNl
dFR5cGUmLCBNZW1vcnlPYmplY3RUeXBlLCBib29sIGNvbnRlbnRPbmx5ID0gZmFsc2UpOwotICAg
IHRlbXBsYXRlPHR5cGVuYW1lIFZlY3RvclR5cGU+IHZvaWQgYWRkVmVjdG9yKGNvbnN0IFZlY3Rv
clR5cGUmLCBNZW1vcnlPYmplY3RUeXBlLCBib29sIGNvbnRlbnRPbmx5ID0gZmFsc2UpOwogICAg
IHZvaWQgYWRkUmF3QnVmZmVyKGNvbnN0IHZvaWQqIGNvbnN0JiBidWZmZXIsIE1lbW9yeU9iamVj
dFR5cGUgb3duZXJPYmplY3RUeXBlLCBzaXplX3Qgc2l6ZSkKICAgICB7CiAgICAgICAgIGlmICgh
YnVmZmVyIHx8IHZpc2l0ZWQoYnVmZmVyKSkKQEAgLTIwNywxNCArMjA3LDI0IEBAIHB1YmxpYzoK
ICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBIYXNoU2V0VHlwZT4gdm9pZCBhZGRIYXNoU2V0KGNvbnN0
IEhhc2hTZXRUeXBlJiBzZXQpIHsgbV9tZW1vcnlJbnN0cnVtZW50YXRpb24tPmFkZEhhc2hTZXQo
c2V0LCBtX29iamVjdFR5cGUsIHRydWUpOyB9CiAgICAgdGVtcGxhdGU8dHlwZW5hbWUgSGFzaFNl
dFR5cGU+IHZvaWQgYWRkSGFzaENvdW50ZWRTZXQoY29uc3QgSGFzaFNldFR5cGUmIHNldCkgeyBt
X21lbW9yeUluc3RydW1lbnRhdGlvbi0+YWRkSGFzaFNldChzZXQsIG1fb2JqZWN0VHlwZSwgdHJ1
ZSk7IH0KICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBIYXNoU2V0VHlwZT4gdm9pZCBhZGRJbnN0cnVt
ZW50ZWRIYXNoU2V0KGNvbnN0IEhhc2hTZXRUeXBlJiBzZXQpIHsgbV9tZW1vcnlJbnN0cnVtZW50
YXRpb24tPmFkZEluc3RydW1lbnRlZENvbGxlY3Rpb24oc2V0LCBtX29iamVjdFR5cGUsIHRydWUp
OyB9Ci0gICAgdGVtcGxhdGU8dHlwZW5hbWUgVmVjdG9yVHlwZT4gdm9pZCBhZGRJbnN0cnVtZW50
ZWRWZWN0b3IoY29uc3QgVmVjdG9yVHlwZSYgdmVjdG9yKSB7IG1fbWVtb3J5SW5zdHJ1bWVudGF0
aW9uLT5hZGRJbnN0cnVtZW50ZWRDb2xsZWN0aW9uKHZlY3RvciwgbV9vYmplY3RUeXBlLCB0cnVl
KTsgfQotICAgIHRlbXBsYXRlPHR5cGVuYW1lIFZlY3RvclR5cGU+IHZvaWQgYWRkSW5zdHJ1bWVu
dGVkVmVjdG9yUHRyKGNvbnN0IE93blB0cjxWZWN0b3JUeXBlPiYgdmVjdG9yKSB7IG1fbWVtb3J5
SW5zdHJ1bWVudGF0aW9uLT5hZGRJbnN0cnVtZW50ZWRDb2xsZWN0aW9uKCp2ZWN0b3IsIG1fb2Jq
ZWN0VHlwZSwgZmFsc2UpOyB9Ci0gICAgdGVtcGxhdGU8dHlwZW5hbWUgVmVjdG9yVHlwZT4gdm9p
ZCBhZGRJbnN0cnVtZW50ZWRWZWN0b3JQdHIoY29uc3QgVmVjdG9yVHlwZSogY29uc3QmIHZlY3Rv
cikgeyBtX21lbW9yeUluc3RydW1lbnRhdGlvbi0+YWRkSW5zdHJ1bWVudGVkQ29sbGVjdGlvbigq
dmVjdG9yLCBtX29iamVjdFR5cGUsIGZhbHNlKTsgfQorICAgIHRlbXBsYXRlPHR5cGVuYW1lIFZl
Y3RvclR5cGU+IHZvaWQgYWRkSW5zdHJ1bWVudGVkVmVjdG9yKGNvbnN0IFZlY3RvclR5cGUmIHZl
Y3RvcikKKyAgICB7CisgICAgICAgIGFkZEluc3RydW1lbnRlZE1lbWJlcih2ZWN0b3IpOworICAg
ICAgICBtX21lbW9yeUluc3RydW1lbnRhdGlvbi0+YWRkSW5zdHJ1bWVudGVkQ29sbGVjdGlvblZh
bHVlcyh2ZWN0b3IsIG1fb2JqZWN0VHlwZSk7CisgICAgfQorICAgIHRlbXBsYXRlPHR5cGVuYW1l
IFZlY3RvclR5cGU+IHZvaWQgYWRkSW5zdHJ1bWVudGVkVmVjdG9yUHRyKGNvbnN0IE93blB0cjxW
ZWN0b3JUeXBlPiYgdmVjdG9yKQorICAgIHsKKyAgICAgICAgYWRkSW5zdHJ1bWVudGVkTWVtYmVy
KHZlY3Rvcik7CisgICAgICAgIG1fbWVtb3J5SW5zdHJ1bWVudGF0aW9uLT5hZGRJbnN0cnVtZW50
ZWRDb2xsZWN0aW9uVmFsdWVzKCp2ZWN0b3IsIG1fb2JqZWN0VHlwZSk7CisgICAgfQorICAgIHRl
bXBsYXRlPHR5cGVuYW1lIFZlY3RvclR5cGU+IHZvaWQgYWRkSW5zdHJ1bWVudGVkVmVjdG9yUHRy
KGNvbnN0IFZlY3RvclR5cGUqIGNvbnN0JiB2ZWN0b3IpCisgICAgeworICAgICAgICBhZGRJbnN0
cnVtZW50ZWRNZW1iZXIodmVjdG9yKTsKKyAgICAgICAgbV9tZW1vcnlJbnN0cnVtZW50YXRpb24t
PmFkZEluc3RydW1lbnRlZENvbGxlY3Rpb25WYWx1ZXMoKnZlY3RvciwgbV9vYmplY3RUeXBlKTsK
KyAgICB9CiAgICAgdGVtcGxhdGU8dHlwZW5hbWUgTWFwVHlwZT4gdm9pZCBhZGRJbnN0cnVtZW50
ZWRNYXBFbnRyaWVzKGNvbnN0IE1hcFR5cGUmIG1hcCkgeyBtX21lbW9yeUluc3RydW1lbnRhdGlv
bi0+YWRkSW5zdHJ1bWVudGVkTWFwRW50cmllcyhtYXAsIG1fb2JqZWN0VHlwZSk7IH0KICAgICB0
ZW1wbGF0ZTx0eXBlbmFtZSBNYXBUeXBlPiB2b2lkIGFkZEluc3RydW1lbnRlZE1hcFZhbHVlcyhj
b25zdCBNYXBUeXBlJiBtYXApIHsgbV9tZW1vcnlJbnN0cnVtZW50YXRpb24tPmFkZEluc3RydW1l
bnRlZE1hcFZhbHVlcyhtYXAsIG1fb2JqZWN0VHlwZSk7IH0KICAgICB0ZW1wbGF0ZTx0eXBlbmFt
ZSBMaXN0SGFzaFNldFR5cGU+IHZvaWQgYWRkTGlzdEhhc2hTZXQoY29uc3QgTGlzdEhhc2hTZXRU
eXBlJiBzZXQpIHsgbV9tZW1vcnlJbnN0cnVtZW50YXRpb24tPmFkZExpc3RIYXNoU2V0KHNldCwg
bV9vYmplY3RUeXBlLCB0cnVlKTsgfQotICAgIHRlbXBsYXRlPHR5cGVuYW1lIFZlY3RvclR5cGU+
IHZvaWQgYWRkVmVjdG9yKGNvbnN0IFZlY3RvclR5cGUmIHZlY3RvcikgeyBtX21lbW9yeUluc3Ry
dW1lbnRhdGlvbi0+YWRkVmVjdG9yKHZlY3RvciwgbV9vYmplY3RUeXBlLCB0cnVlKTsgfQotICAg
IHRlbXBsYXRlPHR5cGVuYW1lIFZlY3RvclR5cGU+IHZvaWQgYWRkVmVjdG9yUHRyKGNvbnN0IFZl
Y3RvclR5cGUqIGNvbnN0IHZlY3RvcikgeyBtX21lbW9yeUluc3RydW1lbnRhdGlvbi0+YWRkVmVj
dG9yKCp2ZWN0b3IsIG1fb2JqZWN0VHlwZSwgZmFsc2UpOyB9CiAgICAgdm9pZCBhZGRSYXdCdWZm
ZXIoY29uc3Qgdm9pZCogY29uc3QmIGJ1ZmZlciwgc2l6ZV90IHNpemUpIHsgbV9tZW1vcnlJbnN0
cnVtZW50YXRpb24tPmFkZFJhd0J1ZmZlcihidWZmZXIsIG1fb2JqZWN0VHlwZSwgc2l6ZSk7IH0K
IAogICAgIHZvaWQgYWRkV2Vha1BvaW50ZXIodm9pZCopIHsgfQpAQCAtMzAyLDYgKzMxMiwxMiBA
QCB2b2lkIE1lbW9yeUluc3RydW1lbnRhdGlvbjo6YWRkSW5zdHJ1bWVudGVkQ29sbGVjdGlvbihj
b25zdCBDb2xsZWN0aW9uVHlwZSYgY29sbAogICAgIGlmICh2aXNpdGVkKCZjb2xsZWN0aW9uKSkK
ICAgICAgICAgcmV0dXJuOwogICAgIGNvdW50T2JqZWN0U2l6ZShvd25lck9iamVjdFR5cGUsIGNh
bGN1bGF0ZUNvbnRhaW5lclNpemUoY29sbGVjdGlvbiwgY29udGVudE9ubHkpKTsKKyAgICBhZGRJ
bnN0cnVtZW50ZWRDb2xsZWN0aW9uVmFsdWVzKGNvbGxlY3Rpb24sIG93bmVyT2JqZWN0VHlwZSk7
Cit9CisKK3RlbXBsYXRlPHR5cGVuYW1lIENvbGxlY3Rpb25UeXBlPgordm9pZCBNZW1vcnlJbnN0
cnVtZW50YXRpb246OmFkZEluc3RydW1lbnRlZENvbGxlY3Rpb25WYWx1ZXMoY29uc3QgQ29sbGVj
dGlvblR5cGUmIGNvbGxlY3Rpb24sIE1lbW9yeU9iamVjdFR5cGUgb3duZXJPYmplY3RUeXBlKQor
ewogICAgIHR5cGVuYW1lIENvbGxlY3Rpb25UeXBlOjpjb25zdF9pdGVyYXRvciBlbmQgPSBjb2xs
ZWN0aW9uLmVuZCgpOwogICAgIGZvciAodHlwZW5hbWUgQ29sbGVjdGlvblR5cGU6OmNvbnN0X2l0
ZXJhdG9yIGkgPSBjb2xsZWN0aW9uLmJlZ2luKCk7IGkgIT0gZW5kOyArK2kpCiAgICAgICAgIGFk
ZEluc3RydW1lbnRlZE9iamVjdCgqaSwgb3duZXJPYmplY3RUeXBlKTsKQEAgLTMzNCwxNCArMzUw
LDYgQEAgdm9pZCBNZW1vcnlJbnN0cnVtZW50YXRpb246OmFkZExpc3RIYXNoU2V0KGNvbnN0IExp
c3RIYXNoU2V0VHlwZSYgaGFzaFNldCwgTWVtb3IKICAgICBjb3VudE9iamVjdFNpemUob3duZXJP
YmplY3RUeXBlLCBzaXplKTsKIH0KIAotdGVtcGxhdGU8dHlwZW5hbWUgVmVjdG9yVHlwZT4KLXZv
aWQgTWVtb3J5SW5zdHJ1bWVudGF0aW9uOjphZGRWZWN0b3IoY29uc3QgVmVjdG9yVHlwZSYgdmVj
dG9yLCBNZW1vcnlPYmplY3RUeXBlIG93bmVyT2JqZWN0VHlwZSwgYm9vbCBjb250ZW50T25seSkK
LXsKLSAgICBpZiAoIXZlY3Rvci5kYXRhKCkgfHwgdmlzaXRlZCh2ZWN0b3IuZGF0YSgpKSkKLSAg
ICAgICAgcmV0dXJuOwotICAgIGNvdW50T2JqZWN0U2l6ZShvd25lck9iamVjdFR5cGUsIGNhbGN1
bGF0ZUNvbnRhaW5lclNpemUodmVjdG9yLCBjb250ZW50T25seSkpOwotfQotCiB0ZW1wbGF0ZTx0
eXBlbmFtZSBDb250YWluZXI+CiBzaXplX3QgTWVtb3J5SW5zdHJ1bWVudGF0aW9uOjpjYWxjdWxh
dGVDb250YWluZXJTaXplKGNvbnN0IENvbnRhaW5lciYgY29udGFpbmVyLCBib29sIGNvbnRlbnRP
bmx5KQogewpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvVmVjdG9yLmggYi9Tb3VyY2UvV1RG
L3d0Zi9WZWN0b3IuaAppbmRleCA4YTVlYWY2Li4zNjJmN2E5IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V1RGL3d0Zi9WZWN0b3IuaAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9WZWN0b3IuaApAQCAtMzgyLDYg
KzM4MiwxMyBAQCBuYW1lc3BhY2UgV1RGIHsKICAgICAgICAgCiAgICAgICAgIHZvaWQgcmVzdG9y
ZUlubGluZUJ1ZmZlcklmTmVlZGVkKCkgeyB9CiAKKyAgICAgICAgdGVtcGxhdGU8dHlwZW5hbWUg
TWVtb3J5T2JqZWN0SW5mbz4KKyAgICAgICAgdm9pZCByZXBvcnRNZW1vcnlVc2FnZShNZW1vcnlP
YmplY3RJbmZvKiBtZW1vcnlPYmplY3RJbmZvKSBjb25zdAorICAgICAgICB7CisgICAgICAgICAg
ICB0eXBlbmFtZSBNZW1vcnlPYmplY3RJbmZvOjpDbGFzc0luZm8gaW5mbyhtZW1vcnlPYmplY3RJ
bmZvLCB0aGlzKTsKKyAgICAgICAgICAgIGluZm8uYWRkUmF3QnVmZmVyKG1fYnVmZmVyLCBtX2Nh
cGFjaXR5ICogc2l6ZW9mKFQpKTsKKyAgICAgICAgfQorCiAgICAgICAgIHVzaW5nIEJhc2U6OmFs
bG9jYXRlQnVmZmVyOwogICAgICAgICB1c2luZyBCYXNlOjp0cnlBbGxvY2F0ZUJ1ZmZlcjsKICAg
ICAgICAgdXNpbmcgQmFzZTo6c2hvdWxkUmVhbGxvY2F0ZUJ1ZmZlcjsKQEAgLTUwMCw2ICs1MDcs
MTQgQEAgbmFtZXNwYWNlIFdURiB7CiAgICAgICAgICAgICByZXR1cm4gQmFzZTo6cmVsZWFzZUJ1
ZmZlcigpOwogICAgICAgICB9CiAKKyAgICAgICAgdGVtcGxhdGU8dHlwZW5hbWUgTWVtb3J5T2Jq
ZWN0SW5mbz4KKyAgICAgICAgdm9pZCByZXBvcnRNZW1vcnlVc2FnZShNZW1vcnlPYmplY3RJbmZv
KiBtZW1vcnlPYmplY3RJbmZvKSBjb25zdAorICAgICAgICB7CisgICAgICAgICAgICB0eXBlbmFt
ZSBNZW1vcnlPYmplY3RJbmZvOjpDbGFzc0luZm8gaW5mbyhtZW1vcnlPYmplY3RJbmZvLCB0aGlz
KTsKKyAgICAgICAgICAgIGlmIChtX2NhcGFjaXR5ID4gaW5saW5lQ2FwYWNpdHkpCisgICAgICAg
ICAgICAgICAgaW5mby5hZGRSYXdCdWZmZXIobV9idWZmZXIsIG1fY2FwYWNpdHkgKiBzaXplb2Yo
VCkpOworICAgICAgICB9CisKICAgICBwcml2YXRlOgogICAgICAgICB1c2luZyBCYXNlOjptX2J1
ZmZlcjsKICAgICAgICAgdXNpbmcgQmFzZTo6bV9jYXBhY2l0eTsKQEAgLTY2Myw2ICs2NzgsOCBA
QCBuYW1lc3BhY2UgV1RGIHsKIAogICAgICAgICB2b2lkIGNoZWNrQ29uc2lzdGVuY3koKTsKIAor
ICAgICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBNZW1vcnlPYmplY3RJbmZvPiB2b2lkIHJlcG9ydE1l
bW9yeVVzYWdlKE1lbW9yeU9iamVjdEluZm8qKSBjb25zdDsKKwogICAgIHByaXZhdGU6CiAgICAg
ICAgIHZvaWQgZXhwYW5kQ2FwYWNpdHkoc2l6ZV90IG5ld01pbkNhcGFjaXR5KTsKICAgICAgICAg
Y29uc3QgVCogZXhwYW5kQ2FwYWNpdHkoc2l6ZV90IG5ld01pbkNhcGFjaXR5LCBjb25zdCBUKik7
CkBAIC0xMjU2LDYgKzEyNzMsMTQgQEAgbmFtZXNwYWNlIFdURiB7CiAgICAgfTsKICNlbmRpZgog
CisgICAgdGVtcGxhdGU8dHlwZW5hbWUgVCwgc2l6ZV90IGlubGluZUNhcGFjaXR5PgorICAgIHRl
bXBsYXRlPHR5cGVuYW1lIE1lbW9yeU9iamVjdEluZm8+CisgICAgdm9pZCBWZWN0b3I8VCwgaW5s
aW5lQ2FwYWNpdHk+OjpyZXBvcnRNZW1vcnlVc2FnZShNZW1vcnlPYmplY3RJbmZvKiBtZW1vcnlP
YmplY3RJbmZvKSBjb25zdAorICAgIHsKKyAgICAgICAgdHlwZW5hbWUgTWVtb3J5T2JqZWN0SW5m
bzo6Q2xhc3NJbmZvIGluZm8obWVtb3J5T2JqZWN0SW5mbywgdGhpcyk7CisgICAgICAgIGluZm8u
YWRkSW5zdHJ1bWVudGVkTWVtYmVyKG1fYnVmZmVyKTsKKyAgICB9CisKIH0gLy8gbmFtZXNwYWNl
IFdURgogCiB1c2luZyBXVEY6OlZlY3RvcjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCBiNjYzZmZkLi41ZWE5NWFi
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNv
cmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNDEgQEAKKzIwMTItMDktMTMgIFl1cnkgU2VtaWtoYXRz
a3kgIDx5dXJ5c0BjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgV2ViIEluc3BlY3RvcjogbW92ZSBW
ZWN0b3IgbWVtb3J5IGluc3RydW1lbnRhdGlvbiB0byBWZWN0b3IuaAorICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTY2NTAKKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBVcGRhdGVkIGluc3RydW1lbnRlZCBjbGFz
c2VzIHRvIG1hdGNoIG5ldyBhcHByb2FjaCB0byBWZWN0b3IgbWVtb3J5CisgICAgICAgIGluc3Ry
dW1lbnRhdGlvbi4KKworICAgICAgICAqIGJpbmRpbmdzL3Y4L1Y4UGVySXNvbGF0ZURhdGEuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6VjhQZXJJc29sYXRlRGF0YTo6cmVwb3J0TWVtb3J5VXNhZ2Up
OgorICAgICAgICAqIGNzcy9TdHlsZVByb3BlcnR5U2V0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OlN0eWxlUHJvcGVydHlTZXQ6OnJlcG9ydE1lbW9yeVVzYWdlKToKKyAgICAgICAgKiBjc3MvU3R5
bGVSZXNvbHZlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTdHlsZVJlc29sdmVyOjpGZWF0dXJl
czo6cmVwb3J0TWVtb3J5VXNhZ2UpOgorICAgICAgICAoV2ViQ29yZTo6U3R5bGVSZXNvbHZlcjo6
Y29sbGVjdE1hdGNoaW5nUnVsZXNGb3JMaXN0KToKKyAgICAgICAgKiBjc3MvU3R5bGVTaGVldENv
bnRlbnRzLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlN0eWxlU2hlZXRDb250ZW50czo6cmVwb3J0
TWVtb3J5VXNhZ2UpOgorICAgICAgICAqIGRvbS9Eb2N1bWVudC5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpEb2N1bWVudDo6cmVwb3J0TWVtb3J5VXNhZ2UpOgorICAgICAgICAqIGRvbS9FbGVtZW50
QXR0cmlidXRlRGF0YS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpFbGVtZW50QXR0cmlidXRlRGF0
YTo6cmVwb3J0TWVtb3J5VXNhZ2UpOgorICAgICAgICAqIGxvYWRlci9Eb2N1bWVudExvYWRlci5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudExvYWRlcjo6cmVwb3J0TWVtb3J5VXNhZ2Up
OgorICAgICAgICAqIGxvYWRlci9jYWNoZS9NZW1vcnlDYWNoZS5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpNZW1vcnlDYWNoZTo6cmVwb3J0TWVtb3J5VXNhZ2UpOgorICAgICAgICAqIHBsYXRmb3Jt
L1NoYXJlZEJ1ZmZlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTaGFyZWRCdWZmZXI6OnJlcG9y
dE1lbW9yeVVzYWdlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9CaXRtYXBJbWFnZS5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpCaXRtYXBJbWFnZTo6cmVwb3J0TWVtb3J5VXNhZ2UpOgor
ICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsvRm9ybURhdGEuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6Rm9ybURhdGE6OnJlcG9ydE1lbW9yeVVzYWdlKToKKyAgICAgICAgKiByZW5kZXJpbmcvc3R5
bGUvUmVuZGVyU3R5bGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyU3R5bGU6OnJlcG9y
dE1lbW9yeVVzYWdlKToKKyAgICAgICAgKiByZW5kZXJpbmcvc3R5bGUvU3R5bGVSYXJlTm9uSW5o
ZXJpdGVkRGF0YS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTdHlsZVJhcmVOb25Jbmhlcml0ZWRE
YXRhOjpyZXBvcnRNZW1vcnlVc2FnZSk6CisKIDIwMTItMDktMTQgIEd5dXlvdW5nIEtpbSAgPGd5
dXlvdW5nLmtpbUBzYW1zdW5nLmNvbT4KIAogICAgICAgICBVbnJldmlld2VkLCByb2xsaW5nIG91
dCByMTI4NTA3LgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvVjhQZXJJ
c29sYXRlRGF0YS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9WOFBlcklzb2xhdGVE
YXRhLmNwcAppbmRleCBhN2ZjOGQ2Li5jMzBkY2RmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy92OC9WOFBlcklzb2xhdGVEYXRhLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy92OC9WOFBlcklzb2xhdGVEYXRhLmNwcApAQCAtODcsNyArODcsNyBAQCB2b2lkIFY4
UGVySXNvbGF0ZURhdGE6OnJlcG9ydE1lbW9yeVVzYWdlKE1lbW9yeU9iamVjdEluZm8qIG1lbW9y
eU9iamVjdEluZm8pIGNvbgogICAgIGluZm8uYWRkSGFzaE1hcChtX3Jhd1RlbXBsYXRlcyk7CiAg
ICAgaW5mby5hZGRIYXNoTWFwKG1fdGVtcGxhdGVzKTsKICAgICBpbmZvLmFkZEluc3RydW1lbnRl
ZE1lbWJlcihtX3N0cmluZ0NhY2hlKTsKLSAgICBpbmZvLmFkZFZlY3RvcihtX2RvbURhdGFMaXN0
KTsKKyAgICBpbmZvLmFkZEluc3RydW1lbnRlZE1lbWJlcihtX2RvbURhdGFMaXN0KTsKIAogICAg
IGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgbV9kb21EYXRhTGlzdC5zaXplKCk7IGkrKykKICAgICAg
ICAgaW5mby5hZGRJbnN0cnVtZW50ZWRNZW1iZXIobV9kb21EYXRhTGlzdFtpXSk7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVQcm9wZXJ0eVNldC5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9jc3MvU3R5bGVQcm9wZXJ0eVNldC5jcHAKaW5kZXggZDBmMGZhYi4uMTJiYjc4MCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL1N0eWxlUHJvcGVydHlTZXQuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2Nzcy9TdHlsZVByb3BlcnR5U2V0LmNwcApAQCAtMTEyMyw3ICsxMTIzLDcg
QEAgdm9pZCBTdHlsZVByb3BlcnR5U2V0OjpyZXBvcnRNZW1vcnlVc2FnZShNZW1vcnlPYmplY3RJ
bmZvKiBtZW1vcnlPYmplY3RJbmZvKSBjb24KICAgICBzaXplX3QgYWN0dWFsU2l6ZSA9IG1faXNN
dXRhYmxlID8gc2l6ZW9mKFN0eWxlUHJvcGVydHlTZXQpIDogaW1tdXRhYmxlU3R5bGVQcm9wZXJ0
eVNldFNpemUobV9hcnJheVNpemUpOwogICAgIE1lbW9yeUNsYXNzSW5mbyBpbmZvKG1lbW9yeU9i
amVjdEluZm8sIHRoaXMsIFdlYkNvcmVNZW1vcnlUeXBlczo6Q1NTLCBhY3R1YWxTaXplKTsKICAg
ICBpZiAobV9pc011dGFibGUpCi0gICAgICAgIGluZm8uYWRkVmVjdG9yUHRyKG1fbXV0YWJsZVBy
b3BlcnR5VmVjdG9yKTsKKyAgICAgICAgaW5mby5hZGRJbnN0cnVtZW50ZWRNZW1iZXIobV9tdXRh
YmxlUHJvcGVydHlWZWN0b3IpOwogCiAgICAgdW5zaWduZWQgY291bnQgPSBwcm9wZXJ0eUNvdW50
KCk7CiAgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IGNvdW50OyArK2kpCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVSZXNvbHZlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9j
c3MvU3R5bGVSZXNvbHZlci5jcHAKaW5kZXggOGU2Y2JlYS4uZmY1MmMzOCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvY3NzL1N0eWxlUmVzb2x2ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2Nzcy9TdHlsZVJlc29sdmVyLmNwcApAQCAtNzQ2LDggKzc0Niw4IEBAIHZvaWQgU3R5bGVSZXNv
bHZlcjo6RmVhdHVyZXM6OnJlcG9ydE1lbW9yeVVzYWdlKE1lbW9yeU9iamVjdEluZm8qIG1lbW9y
eU9iamVjdEluCiAgICAgTWVtb3J5Q2xhc3NJbmZvIGluZm8obWVtb3J5T2JqZWN0SW5mbywgdGhp
cywgV2ViQ29yZU1lbW9yeVR5cGVzOjpDU1MpOwogICAgIGluZm8uYWRkSGFzaFNldChpZHNJblJ1
bGVzKTsKICAgICBpbmZvLmFkZEhhc2hTZXQoYXR0cnNJblJ1bGVzKTsKLSAgICBpbmZvLmFkZFZl
Y3RvcihzaWJsaW5nUnVsZXMpOwotICAgIGluZm8uYWRkVmVjdG9yKHVuY29tbW9uQXR0cmlidXRl
UnVsZXMpOworICAgIGluZm8uYWRkSW5zdHJ1bWVudGVkTWVtYmVyKHNpYmxpbmdSdWxlcyk7Cisg
ICAgaW5mby5hZGRJbnN0cnVtZW50ZWRNZW1iZXIodW5jb21tb25BdHRyaWJ1dGVSdWxlcyk7CiB9
CiAKIHN0YXRpYyBTdHlsZVNoZWV0Q29udGVudHMqIHBhcnNlVUFTaGVldChjb25zdCBTdHJpbmcm
IHN0cikKQEAgLTI1NzgsNyArMjU3OCw3IEBAIHZvaWQgUnVsZVNldDo6cmVwb3J0TWVtb3J5VXNh
Z2UoTWVtb3J5T2JqZWN0SW5mbyogbWVtb3J5T2JqZWN0SW5mbykgY29uc3QKICAgICBpbmZvLmFk
ZEluc3RydW1lbnRlZFZlY3RvcihtX2xpbmtQc2V1ZG9DbGFzc1J1bGVzKTsKICAgICBpbmZvLmFk
ZEluc3RydW1lbnRlZFZlY3RvcihtX2ZvY3VzUHNldWRvQ2xhc3NSdWxlcyk7CiAgICAgaW5mby5h
ZGRJbnN0cnVtZW50ZWRWZWN0b3IobV91bml2ZXJzYWxSdWxlcyk7Ci0gICAgaW5mby5hZGRWZWN0
b3IobV9wYWdlUnVsZXMpOworICAgIGluZm8uYWRkSW5zdHJ1bWVudGVkTWVtYmVyKG1fcGFnZVJ1
bGVzKTsKICAgICBpbmZvLmFkZEluc3RydW1lbnRlZFZlY3RvcihtX3JlZ2lvblNlbGVjdG9yc0Fu
ZFJ1bGVTZXRzKTsKIH0KIApAQCAtNTc2MCw3ICs1NzYwLDcgQEAgdm9pZCBTdHlsZVJlc29sdmVy
OjpyZXBvcnRNZW1vcnlVc2FnZShNZW1vcnlPYmplY3RJbmZvKiBtZW1vcnlPYmplY3RJbmZvKSBj
b25zdAogICAgIGluZm8uYWRkSGFzaE1hcChtX2tleWZyYW1lc1J1bGVNYXApOwogICAgIGluZm8u
YWRkSGFzaE1hcChtX21hdGNoZWRQcm9wZXJ0aWVzQ2FjaGUpOwogICAgIGluZm8uYWRkSW5zdHJ1
bWVudGVkTWFwVmFsdWVzKG1fbWF0Y2hlZFByb3BlcnRpZXNDYWNoZSk7Ci0gICAgaW5mby5hZGRW
ZWN0b3IobV9tYXRjaGVkUnVsZXMpOworICAgIGluZm8uYWRkSW5zdHJ1bWVudGVkTWVtYmVyKG1f
bWF0Y2hlZFJ1bGVzKTsKIAogICAgIGluZm8uYWRkSW5zdHJ1bWVudGVkTWVtYmVyKG1fcnVsZUxp
c3QpOwogICAgIGluZm8uYWRkSGFzaE1hcChtX3BlbmRpbmdJbWFnZVByb3BlcnRpZXMpOwpAQCAt
NTc3Niw3ICs1Nzc2LDcgQEAgdm9pZCBTdHlsZVJlc29sdmVyOjpyZXBvcnRNZW1vcnlVc2FnZShN
ZW1vcnlPYmplY3RJbmZvKiBtZW1vcnlPYmplY3RJbmZvKSBjb25zdAogI2lmIEVOQUJMRShTVFlM
RV9TQ09QRUQpCiAgICAgaW5mby5hZGRIYXNoTWFwKG1fc2NvcGVkQXV0aG9yU3R5bGVzKTsKICAg
ICBpbmZvLmFkZEluc3RydW1lbnRlZE1hcEVudHJpZXMobV9zY29wZWRBdXRob3JTdHlsZXMpOwot
ICAgIGluZm8uYWRkVmVjdG9yKG1fc2NvcGVTdGFjayk7CisgICAgaW5mby5hZGRJbnN0cnVtZW50
ZWRNZW1iZXIobV9zY29wZVN0YWNrKTsKICNlbmRpZgogCiAgICAgLy8gRklYTUU6IG1vdmUgdGhp
cyB0byBhIHBsYWNlIHdoZXJlIGl0IHdvdWxkIGJlIGNhbGxlZCBvbmx5IG9uY2U/CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVTaGVldENvbnRlbnRzLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2Nzcy9TdHlsZVNoZWV0Q29udGVudHMuY3BwCmluZGV4IGJhMDBlMmIuLjIxMzAxZmIg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9TdHlsZVNoZWV0Q29udGVudHMuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9TdHlsZVNoZWV0Q29udGVudHMuY3BwCkBAIC00OTUsMTAg
KzQ5NSwxMCBAQCB2b2lkIFN0eWxlU2hlZXRDb250ZW50czo6cmVwb3J0TWVtb3J5VXNhZ2UoTWVt
b3J5T2JqZWN0SW5mbyogbWVtb3J5T2JqZWN0SW5mbykgYwogICAgIE1lbW9yeUNsYXNzSW5mbyBp
bmZvKG1lbW9yeU9iamVjdEluZm8sIHRoaXMsIFdlYkNvcmVNZW1vcnlUeXBlczo6Q1NTKTsKICAg
ICBpbmZvLmFkZEluc3RydW1lbnRlZE1lbWJlcihtX29yaWdpbmFsVVJMKTsKICAgICBpbmZvLmFk
ZEluc3RydW1lbnRlZE1lbWJlcihtX2VuY29kaW5nRnJvbUNoYXJzZXRSdWxlKTsKLSAgICBpbmZv
LmFkZFZlY3RvcihtX2ltcG9ydFJ1bGVzKTsKKyAgICBpbmZvLmFkZEluc3RydW1lbnRlZE1lbWJl
cihtX2ltcG9ydFJ1bGVzKTsKICAgICBpbmZvLmFkZEluc3RydW1lbnRlZFZlY3RvcihtX2NoaWxk
UnVsZXMpOwogICAgIGluZm8uYWRkSGFzaE1hcChtX25hbWVzcGFjZXMpOwotICAgIGluZm8uYWRk
VmVjdG9yKG1fY2xpZW50cyk7CisgICAgaW5mby5hZGRJbnN0cnVtZW50ZWRNZW1iZXIobV9jbGll
bnRzKTsKIH0KIAogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNw
cCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKaW5kZXggM2RhODlkNy4uZTI2YzM5
NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCkBAIC02MjQwLDcgKzYyNDAsNyBAQCB2b2lkIERv
Y3VtZW50OjpyZXBvcnRNZW1vcnlVc2FnZShNZW1vcnlPYmplY3RJbmZvKiBtZW1vcnlPYmplY3RJ
bmZvKSBjb25zdAogICAgIE1lbW9yeUNsYXNzSW5mbyBpbmZvKG1lbW9yeU9iamVjdEluZm8sIHRo
aXMsIFdlYkNvcmVNZW1vcnlUeXBlczo6RE9NKTsKICAgICBpbmZvLmFkZEluc3RydW1lbnRlZE1l
bWJlcihtX3N0eWxlUmVzb2x2ZXIpOwogICAgIENvbnRhaW5lck5vZGU6OnJlcG9ydE1lbW9yeVVz
YWdlKG1lbW9yeU9iamVjdEluZm8pOwotICAgIGluZm8uYWRkVmVjdG9yKG1fY3VzdG9tRm9udHMp
OworICAgIGluZm8uYWRkSW5zdHJ1bWVudGVkTWVtYmVyKG1fY3VzdG9tRm9udHMpOwogICAgIGlu
Zm8uYWRkSW5zdHJ1bWVudGVkTWVtYmVyKG1fdXJsKTsKICAgICBpbmZvLmFkZEluc3RydW1lbnRl
ZE1lbWJlcihtX2Jhc2VVUkwpOwogICAgIGluZm8uYWRkSW5zdHJ1bWVudGVkTWVtYmVyKG1fYmFz
ZVVSTE92ZXJyaWRlKTsKQEAgLTYyNzAsMTcgKzYyNzAsMTcgQEAgdm9pZCBEb2N1bWVudDo6cmVw
b3J0TWVtb3J5VXNhZ2UoTWVtb3J5T2JqZWN0SW5mbyogbWVtb3J5T2JqZWN0SW5mbykgY29uc3QK
ICAgICBpbmZvLmFkZEhhc2hNYXAobV9kb2N1bWVudE5hbWVkSXRlbUNvbGxlY3Rpb25zKTsKICAg
ICBpbmZvLmFkZEhhc2hNYXAobV93aW5kb3dOYW1lZEl0ZW1Db2xsZWN0aW9ucyk7CiAjaWYgRU5B
QkxFKERBU0hCT0FSRF9TVVBQT1JUKQotICAgIGluZm8uYWRkVmVjdG9yKG1fZGFzaGJvYXJkUmVn
aW9ucyk7CisgICAgaW5mby5hZGRJbnN0cnVtZW50ZWRNZW1iZXIobV9kYXNoYm9hcmRSZWdpb25z
KTsKICNlbmRpZgogICAgIGluZm8uYWRkSGFzaE1hcChtX2Nzc0NhbnZhc0VsZW1lbnRzKTsKLSAg
ICBpbmZvLmFkZFZlY3RvcihtX2ljb25VUkxzKTsKKyAgICBpbmZvLmFkZEluc3RydW1lbnRlZE1l
bWJlcihtX2ljb25VUkxzKTsKICAgICBpbmZvLmFkZEhhc2hTZXQobV9kb2N1bWVudFN1c3BlbnNp
b25DYWxsYmFja0VsZW1lbnRzKTsKICAgICBpbmZvLmFkZEhhc2hTZXQobV9tZWRpYVZvbHVtZUNh
bGxiYWNrRWxlbWVudHMpOwogICAgIGluZm8uYWRkSGFzaFNldChtX3ByaXZhdGVCcm93c2luZ1N0
YXRlQ2hhbmdlZEVsZW1lbnRzKTsKICAgICBpbmZvLmFkZEhhc2hNYXAobV9lbGVtZW50c0J5QWNj
ZXNzS2V5KTsKICAgICBpbmZvLmFkZEluc3RydW1lbnRlZE1lbWJlcihtX2V2ZW50UXVldWUpOwog
ICAgIGluZm8uYWRkSGFzaFNldChtX21lZGlhQ2FuU3RhcnRMaXN0ZW5lcnMpOwotICAgIGluZm8u
YWRkVmVjdG9yKG1fcGVuZGluZ1Rhc2tzKTsKKyAgICBpbmZvLmFkZEluc3RydW1lbnRlZE1lbWJl
cihtX3BlbmRpbmdUYXNrcyk7CiB9CiAKICNpZiBFTkFCTEUoVU5ET19NQU5BR0VSKQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnRBdHRyaWJ1dGVEYXRhLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2RvbS9FbGVtZW50QXR0cmlidXRlRGF0YS5jcHAKaW5kZXggYTY0NTRkZC4uOGFj
ZDExOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnRBdHRyaWJ1dGVEYXRh
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudEF0dHJpYnV0ZURhdGEuY3BwCkBA
IC0yOTYsNyArMjk2LDcgQEAgdm9pZCBFbGVtZW50QXR0cmlidXRlRGF0YTo6cmVwb3J0TWVtb3J5
VXNhZ2UoTWVtb3J5T2JqZWN0SW5mbyogbWVtb3J5T2JqZWN0SW5mbykKICAgICBpbmZvLmFkZE1l
bWJlcihtX2NsYXNzTmFtZXMpOwogICAgIGluZm8uYWRkSW5zdHJ1bWVudGVkTWVtYmVyKG1faWRG
b3JTdHlsZVJlc29sdXRpb24pOwogICAgIGlmIChtX2lzTXV0YWJsZSkKLSAgICAgICAgaW5mby5h
ZGRWZWN0b3IobXV0YWJsZUF0dHJpYnV0ZVZlY3RvcigpKTsKKyAgICAgICAgaW5mby5hZGRJbnN0
cnVtZW50ZWRNZW1iZXIobXV0YWJsZUF0dHJpYnV0ZVZlY3RvcigpKTsKICAgICBmb3IgKHVuc2ln
bmVkIGkgPSAwLCBsZW4gPSBsZW5ndGgoKTsgaSA8IGxlbjsgaSsrKQogICAgICAgICBpbmZvLmFk
ZEluc3RydW1lbnRlZE1lbWJlcigqYXR0cmlidXRlSXRlbShpKSk7CiB9CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9sb2FkZXIvRG9jdW1lbnRMb2FkZXIuY3BwIGIvU291cmNlL1dlYkNvcmUv
bG9hZGVyL0RvY3VtZW50TG9hZGVyLmNwcAppbmRleCA1Y2E5ZDY4Li5iYjA3ZjlhIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRG9jdW1lbnRMb2FkZXIuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2xvYWRlci9Eb2N1bWVudExvYWRlci5jcHAKQEAgLTM2OCw3ICszNjgsNyBAQCB2
b2lkIERvY3VtZW50TG9hZGVyOjpyZXBvcnRNZW1vcnlVc2FnZShNZW1vcnlPYmplY3RJbmZvKiBt
ZW1vcnlPYmplY3RJbmZvKSBjb25zdAogICAgIGluZm8uYWRkSW5zdHJ1bWVudGVkTWVtYmVyKG1f
c3Vic3RpdHV0ZURhdGEpOwogICAgIGluZm8uYWRkSW5zdHJ1bWVudGVkTWVtYmVyKG1fcGFnZVRp
dGxlLnN0cmluZygpKTsKICAgICBpbmZvLmFkZEluc3RydW1lbnRlZE1lbWJlcihtX292ZXJyaWRl
RW5jb2RpbmcpOwotICAgIGluZm8uYWRkVmVjdG9yKG1fcmVzcG9uc2VzKTsKKyAgICBpbmZvLmFk
ZEluc3RydW1lbnRlZE1lbWJlcihtX3Jlc3BvbnNlcyk7CiAgICAgaW5mby5hZGRJbnN0cnVtZW50
ZWRNZW1iZXIobV9vcmlnaW5hbFJlcXVlc3QpOwogICAgIGluZm8uYWRkSW5zdHJ1bWVudGVkTWVt
YmVyKG1fb3JpZ2luYWxSZXF1ZXN0Q29weSk7CiAgICAgaW5mby5hZGRJbnN0cnVtZW50ZWRNZW1i
ZXIobV9yZXF1ZXN0KTsKQEAgLTM3Nyw3ICszNzcsNyBAQCB2b2lkIERvY3VtZW50TG9hZGVyOjpy
ZXBvcnRNZW1vcnlVc2FnZShNZW1vcnlPYmplY3RJbmZvKiBtZW1vcnlPYmplY3RJbmZvKSBjb25z
dAogICAgIGluZm8uYWRkSW5zdHJ1bWVudGVkVmVjdG9yKG1fcmVzcG9uc2VzKTsKICAgICBpbmZv
LmFkZEhhc2hNYXAobV9wZW5kaW5nU3Vic3RpdHV0ZVJlc291cmNlcyk7CiAgICAgaW5mby5hZGRJ
bnN0cnVtZW50ZWRIYXNoU2V0KG1fcmVzb3VyY2VzQ2xpZW50S25vd3NBYm91dCk7Ci0gICAgaW5m
by5hZGRWZWN0b3IobV9yZXNvdXJjZXNMb2FkZWRGcm9tTWVtb3J5Q2FjaGVGb3JDbGllbnROb3Rp
ZmljYXRpb24pOworICAgIGluZm8uYWRkSW5zdHJ1bWVudGVkTWVtYmVyKG1fcmVzb3VyY2VzTG9h
ZGVkRnJvbU1lbW9yeUNhY2hlRm9yQ2xpZW50Tm90aWZpY2F0aW9uKTsKICAgICBpbmZvLmFkZElu
c3RydW1lbnRlZE1lbWJlcihtX2NsaWVudFJlZGlyZWN0U291cmNlRm9ySGlzdG9yeSk7CiAgICAg
aW5mby5hZGRJbnN0cnVtZW50ZWRNZW1iZXIobV9tYWluUmVzb3VyY2VEYXRhKTsKIH0KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9NZW1vcnlDYWNoZS5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvTWVtb3J5Q2FjaGUuY3BwCmluZGV4IGFhZjg1MmEuLjAw
NDJlNjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9NZW1vcnlDYWNo
ZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL01lbW9yeUNhY2hlLmNwcApA
QCAtNzI0LDcgKzcyNCw3IEBAIHZvaWQgTWVtb3J5Q2FjaGU6OnJlcG9ydE1lbW9yeVVzYWdlKE1l
bW9yeU9iamVjdEluZm8qIG1lbW9yeU9iamVjdEluZm8pIGNvbnN0CiAgICAgICAgIGluZm8uYWRk
SW5zdHJ1bWVudGVkTWVtYmVyKGktPmZpcnN0KTsKICAgICAgICAgaW5mby5hZGRJbnN0cnVtZW50
ZWRNZW1iZXIoaS0+c2Vjb25kKTsKICAgICB9Ci0gICAgaW5mby5hZGRWZWN0b3IobV9hbGxSZXNv
dXJjZXMpOworICAgIGluZm8uYWRkSW5zdHJ1bWVudGVkTWVtYmVyKG1fYWxsUmVzb3VyY2VzKTsK
ICAgICBpbmZvLmFkZE1lbWJlcihtX2xpdmVEZWNvZGVkUmVzb3VyY2VzKTsKIH0KIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2hhcmVkQnVmZmVyLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL1NoYXJlZEJ1ZmZlci5jcHAKaW5kZXggNjhjMzE5Ni4uYTRhYTE3OCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2hhcmVkQnVmZmVyLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TaGFyZWRCdWZmZXIuY3BwCkBAIC0yNTEsOCArMjUx
LDggQEAgY29uc3QgVmVjdG9yPGNoYXI+JiBTaGFyZWRCdWZmZXI6OmJ1ZmZlcigpIGNvbnN0CiB2
b2lkIFNoYXJlZEJ1ZmZlcjo6cmVwb3J0TWVtb3J5VXNhZ2UoTWVtb3J5T2JqZWN0SW5mbyogbWVt
b3J5T2JqZWN0SW5mbykgY29uc3QKIHsKICAgICBNZW1vcnlDbGFzc0luZm8gaW5mbyhtZW1vcnlP
YmplY3RJbmZvLCB0aGlzKTsKLSAgICBpbmZvLmFkZFZlY3RvcihtX2J1ZmZlcik7Ci0gICAgaW5m
by5hZGRWZWN0b3IobV9zZWdtZW50cyk7CisgICAgaW5mby5hZGRJbnN0cnVtZW50ZWRNZW1iZXIo
bV9idWZmZXIpOworICAgIGluZm8uYWRkSW5zdHJ1bWVudGVkTWVtYmVyKG1fc2VnbWVudHMpOwog
ICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBtX3NlZ21lbnRzLnNpemUoKTsgKytpKQogICAg
ICAgICBpbmZvLmFkZFJhd0J1ZmZlcihtX3NlZ21lbnRzW2ldLCBzZWdtZW50U2l6ZSk7CiAgICAg
aW5mby5hZGRNZW1iZXIobV9wdXJnZWFibGVCdWZmZXIuZ2V0KCkpOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvQml0bWFwSW1hZ2UuY3BwIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvQml0bWFwSW1hZ2UuY3BwCmluZGV4IDBiMTE2ODAuLjFm
NTEzNzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0JpdG1h
cEltYWdlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9CaXRtYXBJ
bWFnZS5jcHAKQEAgLTU3OCw3ICs1NzgsNyBAQCB2b2lkIEJpdG1hcEltYWdlOjpyZXBvcnRNZW1v
cnlVc2FnZShNZW1vcnlPYmplY3RJbmZvKiBtZW1vcnlPYmplY3RJbmZvKSBjb25zdAogICAgIElt
YWdlOjpyZXBvcnRNZW1vcnlVc2FnZShtZW1vcnlPYmplY3RJbmZvKTsKICAgICBpbmZvLmFkZE1l
bWJlcihtX3NvdXJjZSk7CiAgICAgaW5mby5hZGRNZW1iZXIobV9mcmFtZVRpbWVyKTsKLSAgICBp
bmZvLmFkZFZlY3RvcihtX2ZyYW1lcyk7CisgICAgaW5mby5hZGRJbnN0cnVtZW50ZWRNZW1iZXIo
bV9mcmFtZXMpOwogICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBtX2ZyYW1lQ291bnQ7ICsr
aSkgewogI2lmIE9TKFdJTkNFKSAmJiAhUExBVEZPUk0oUVQpCiAgICAgICAgIGluZm8uYWRkUmF3
QnVmZmVyKG1fZnJhbWVzW2ldLm1fZnJhbWUuZ2V0KCksIG1fZnJhbWVzW2ldLm1fZnJhbWVCeXRl
cyk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL0Zvcm1EYXRh
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvRm9ybURhdGEuY3BwCmluZGV4
IDQ1ZjczMDIuLmNlZTNlZjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25l
dHdvcmsvRm9ybURhdGEuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsv
Rm9ybURhdGEuY3BwCkBAIC0zNjAsNyArMzYwLDcgQEAgdm9pZCBGb3JtRGF0YTo6cmVtb3ZlR2Vu
ZXJhdGVkRmlsZXNJZk5lZWRlZCgpCiB2b2lkIEZvcm1EYXRhOjpyZXBvcnRNZW1vcnlVc2FnZShN
ZW1vcnlPYmplY3RJbmZvKiBtZW1vcnlPYmplY3RJbmZvKSBjb25zdAogewogICAgIE1lbW9yeUNs
YXNzSW5mbyBpbmZvKG1lbW9yeU9iamVjdEluZm8sIHRoaXMsIFBsYXRmb3JtTWVtb3J5VHlwZXM6
OkxvYWRlcik7Ci0gICAgaW5mby5hZGRWZWN0b3IobV9ib3VuZGFyeSk7CisgICAgaW5mby5hZGRJ
bnN0cnVtZW50ZWRNZW1iZXIobV9ib3VuZGFyeSk7CiB9CiAKIHN0YXRpYyB2b2lkIGVuY29kZShF
bmNvZGVyJiBlbmNvZGVyLCBjb25zdCBGb3JtRGF0YUVsZW1lbnQmIGVsZW1lbnQpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGUuY3BwIGIvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlLmNwcAppbmRleCBmMTYwZDll
Li44ODY0ODRjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvUmVu
ZGVyU3R5bGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9SZW5kZXJT
dHlsZS5jcHAKQEAgLTE2MTYsNyArMTYxNiw3IEBAIHZvaWQgUmVuZGVyU3R5bGU6OnJlcG9ydE1l
bW9yeVVzYWdlKE1lbW9yeU9iamVjdEluZm8qIG1lbW9yeU9iamVjdEluZm8pIGNvbnN0CiAgICAg
Ly8gRklYTUU6IGluaGVyaXRlZCBjb250YWlucyBTdHlsZUltYWdlIGFuZCBGb250IGZpZWxkcyB0
aGF0IG1pZ2h0IG5lZWQgdG8gYmUgaW5zdHJ1bWVudGVkLgogICAgIGluZm8uYWRkTWVtYmVyKGlu
aGVyaXRlZCk7CiAgICAgaWYgKG1fY2FjaGVkUHNldWRvU3R5bGVzKQotICAgICAgICBpbmZvLmFk
ZFZlY3RvclB0cihtX2NhY2hlZFBzZXVkb1N0eWxlcy5nZXQoKSk7CisgICAgICAgIGluZm8uYWRk
SW5zdHJ1bWVudGVkTWVtYmVyKG1fY2FjaGVkUHNldWRvU3R5bGVzLmdldCgpKTsKICNpZiBFTkFC
TEUoU1ZHKQogICAgIGluZm8uYWRkTWVtYmVyKG1fc3ZnU3R5bGUpOwogI2VuZGlmCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvU3R5bGVSYXJlTm9uSW5oZXJpdGVk
RGF0YS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvU3R5bGVSYXJlTm9uSW5o
ZXJpdGVkRGF0YS5jcHAKaW5kZXggODExYmZhMS4uOTBmNDFmMCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1N0eWxlUmFyZU5vbkluaGVyaXRlZERhdGEuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9TdHlsZVJhcmVOb25Jbmhlcml0ZWRE
YXRhLmNwcApAQCAtMzA2LDcgKzMwNiw3IEBAIHZvaWQgU3R5bGVSYXJlTm9uSW5oZXJpdGVkRGF0
YTo6cmVwb3J0TWVtb3J5VXNhZ2UoTWVtb3J5T2JqZWN0SW5mbyogbWVtb3J5T2JqZWN0CiB7CiAg
ICAgTWVtb3J5Q2xhc3NJbmZvIGluZm8obWVtb3J5T2JqZWN0SW5mbywgdGhpcywgV2ViQ29yZU1l
bW9yeVR5cGVzOjpDU1MpOwogI2lmIEVOQUJMRShEQVNIQk9BUkRfU1VQUE9SVCkKLSAgICBpbmZv
LmFkZFZlY3RvcihtX2Rhc2hib2FyZFJlZ2lvbnMpOworICAgIGluZm8uYWRkSW5zdHJ1bWVudGVk
TWVtYmVyKG1fZGFzaGJvYXJkUmVnaW9ucyk7CiAjZW5kaWYKICAgICBpbmZvLmFkZE1lbWJlciht
X2RlcHJlY2F0ZWRGbGV4aWJsZUJveCk7CiAgICAgaW5mby5hZGRNZW1iZXIobV9mbGV4aWJsZUJv
eCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZyBiL1NvdXJj
ZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCmluZGV4IDAxMzc0MmUuLmUzNzA4OWYgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJL
aXQvY2hyb21pdW0vQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTcgQEAKKzIwMTItMDktMTMgIFl1cnkg
U2VtaWtoYXRza3kgIDx5dXJ5c0BjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgV2ViIEluc3BlY3Rv
cjogbW92ZSBWZWN0b3IgbWVtb3J5IGluc3RydW1lbnRhdGlvbiB0byBWZWN0b3IuaAorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTY2NTAKKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGRlZCB1bml0IHRlc3Rz
IGZvciBWZWN0b3IgbWVtb3J5IGluc3RydW1lbnRhdGlvbi4KKworICAgICAgICAqIHRlc3RzL01l
bW9yeUluc3RydW1lbnRhdGlvblRlc3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW5zdHJ1bWVu
dGVkT3duZXI6Okluc3RydW1lbnRlZE93bmVyKToKKyAgICAgICAgKFdlYkNvcmU6OlRFU1QpOgor
ICAgICAgICAoV2ViQ29yZSk6CisKIDIwMTItMDktMTMgIFNoZXJpZmYgQm90ICA8d2Via2l0LnJl
dmlldy5ib3RAZ21haWwuY29tPgogCiAgICAgICAgIFVucmV2aWV3ZWQsIHJvbGxpbmcgb3V0IHIx
Mjg1NDMuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rlc3RzL01lbW9yeUlu
c3RydW1lbnRhdGlvblRlc3QuY3BwIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0cy9NZW1v
cnlJbnN0cnVtZW50YXRpb25UZXN0LmNwcAppbmRleCA0YTBhM2NmLi4xYjE3NWE5IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rlc3RzL01lbW9yeUluc3RydW1lbnRhdGlvblRl
c3QuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMvTWVtb3J5SW5zdHJ1bWVu
dGF0aW9uVGVzdC5jcHAKQEAgLTIzMiw4ICsyMzIsOSBAQCBURVNUKE1lbW9yeUluc3RydW1lbnRh
dGlvblRlc3QsIHZpc2l0Rmlyc3RNZW1iZXJJbk5vblZpcnR1YWxDbGFzcykKIHRlbXBsYXRlPHR5
cGVuYW1lIFQ+CiBjbGFzcyBJbnN0cnVtZW50ZWRPd25lciB7CiBwdWJsaWM6CisgICAgSW5zdHJ1
bWVudGVkT3duZXIoKSB7IH0KICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBWPgotICAgIEluc3RydW1l
bnRlZE93bmVyKGNvbnN0IFYmIHZhbHVlKSA6IG1fdmFsdWUodmFsdWUpIHsgfQorICAgIGV4cGxp
Y2l0IEluc3RydW1lbnRlZE93bmVyKGNvbnN0IFYmIHZhbHVlKSA6IG1fdmFsdWUodmFsdWUpIHsg
fQogICAgIHZvaWQgcmVwb3J0TWVtb3J5VXNhZ2UoTWVtb3J5T2JqZWN0SW5mbyogbWVtb3J5T2Jq
ZWN0SW5mbykgY29uc3QKICAgICB7CiAgICAgICAgIE1lbW9yeUNsYXNzSW5mbyBpbmZvKG1lbW9y
eU9iamVjdEluZm8sIHRoaXMsIFdlYkNvcmVNZW1vcnlUeXBlczo6RE9NKTsKQEAgLTI3NSw1ICsy
NzYsMzYgQEAgVEVTVChNZW1vcnlJbnN0cnVtZW50YXRpb25UZXN0LCB2aXNpdFN0cmluZ3MpCiAg
ICAgfQogfQogCitURVNUKE1lbW9yeUluc3RydW1lbnRhdGlvblRlc3QsIHZpc2l0VmVjdG9yKQor
eworICAgIFZpc2l0ZWRPYmplY3RzIHZpc2l0ZWRPYmplY3RzOworICAgIE1lbW9yeUluc3RydW1l
bnRhdGlvbkltcGwgaW1wbCh2aXNpdGVkT2JqZWN0cyk7CisgICAgSW5zdHJ1bWVudGVkT3duZXI8
VmVjdG9yPGludD4gPiB2ZWN0b3JPd25lcigxNik7CisgICAgaW1wbC5hZGRSb290T2JqZWN0KHZl
Y3Rvck93bmVyKTsKKyAgICBFWFBFQ1RfRVEoMTYgKiBzaXplb2YoaW50KSwgaW1wbC5yZXBvcnRl
ZFNpemVGb3JBbGxUeXBlcygpKTsKKyAgICBFWFBFQ1RfRVEoMSwgdmlzaXRlZE9iamVjdHMuc2l6
ZSgpKTsKK30KKworVEVTVChNZW1vcnlJbnN0cnVtZW50YXRpb25UZXN0LCB2aXNpdFZlY3Rvcldp
dGhJbmxpbmVDYXBhY2l0eTEpCit7CisgICAgVmlzaXRlZE9iamVjdHMgdmlzaXRlZE9iamVjdHM7
CisgICAgTWVtb3J5SW5zdHJ1bWVudGF0aW9uSW1wbCBpbXBsKHZpc2l0ZWRPYmplY3RzKTsKKyAg
ICBJbnN0cnVtZW50ZWRPd25lcjxWZWN0b3I8aW50LCA0PiA+IHZlY3Rvck93bmVyOworICAgIGlt
cGwuYWRkUm9vdE9iamVjdCh2ZWN0b3JPd25lcik7CisgICAgRVhQRUNUX0VRKHN0YXRpY19jYXN0
PHNpemVfdD4oMCksIGltcGwucmVwb3J0ZWRTaXplRm9yQWxsVHlwZXMoKSk7CisgICAgRVhQRUNU
X0VRKDAsIHZpc2l0ZWRPYmplY3RzLnNpemUoKSk7Cit9CisKK1RFU1QoTWVtb3J5SW5zdHJ1bWVu
dGF0aW9uVGVzdCwgdmlzaXRWZWN0b3JXaXRoSW5saW5lQ2FwYWNpdHkyKQoreworICAgIFZpc2l0
ZWRPYmplY3RzIHZpc2l0ZWRPYmplY3RzOworICAgIE1lbW9yeUluc3RydW1lbnRhdGlvbkltcGwg
aW1wbCh2aXNpdGVkT2JqZWN0cyk7CisgICAgSW5zdHJ1bWVudGVkT3duZXI8VmVjdG9yPGludCwg
ND4gPiB2ZWN0b3JPd25lcjsKKyAgICB2ZWN0b3JPd25lci5tX3ZhbHVlLnJlc2VydmVDYXBhY2l0
eSg4KTsKKyAgICBpbXBsLmFkZFJvb3RPYmplY3QodmVjdG9yT3duZXIpOworICAgIEVYUEVDVF9F
USg4ICogc2l6ZW9mKGludCksIGltcGwucmVwb3J0ZWRTaXplRm9yQWxsVHlwZXMoKSk7CisgICAg
RVhQRUNUX0VRKDEsIHZpc2l0ZWRPYmplY3RzLnNpemUoKSk7Cit9CisKIH0gLy8gbmFtZXNwYWNl
CiAK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>164493</attachid>
            <date>2012-09-17 22:18:35 -0700</date>
            <delta_ts>2012-09-18 02:10:31 -0700</delta_ts>
            <desc>Patch after rebase</desc>
            <filename>vector-instrumentation.patch</filename>
            <type>text/plain</type>
            <size>24211</size>
            <attacher name="Yury Semikhatsky">yurys</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nIGIvU291cmNlL1dURi9DaGFuZ2VMb2cK
aW5kZXggMDgzNmM4ZS4uMDVlOGFiNSAxMDA2NDQKLS0tIGEvU291cmNlL1dURi9DaGFuZ2VMb2cK
KysrIGIvU291cmNlL1dURi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyOCBAQAorMjAxMi0wOS0xMyAg
WXVyeSBTZW1pa2hhdHNreSAgPHl1cnlzQGNocm9taXVtLm9yZz4KKworICAgICAgICBXZWIgSW5z
cGVjdG9yOiBtb3ZlIFZlY3RvciBtZW1vcnkgaW5zdHJ1bWVudGF0aW9uIHRvIFZlY3Rvci5oCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05NjY1MAorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZGVkIHJlcG9y
dE1lbW9yeVVzYWdlIG1ldGhvZCB0byBWZWN0b3IgYW5kIGl0cyBidWZmZXIgaW1wbGVtZW50YXRp
b25zLgorCisgICAgICAgICogd3RmL01lbW9yeUluc3RydW1lbnRhdGlvbi5oOgorICAgICAgICAo
TWVtb3J5SW5zdHJ1bWVudGF0aW9uKToKKyAgICAgICAgKFdURjo6TWVtb3J5Q2xhc3NJbmZvOjph
ZGRJbnN0cnVtZW50ZWRWZWN0b3IpOiB0aGVzZSBtZXRob2RzIHdpbGwgYmUgcmVtb3ZlZAorICAg
ICAgICBzb29uIHdoZW4gd2UgZXh0ZW5kIHRoZSBBUEkgc28gdGhhdCB3ZSBjYW4gc3BlY2lmeSBp
ZiB2ZWN0b3IgdmFsdWVzIGFyZQorICAgICAgICBpbnN0cnVtZW50ZWQgb3Igbm90LgorICAgICAg
ICAoV1RGOjpNZW1vcnlDbGFzc0luZm86OmFkZEluc3RydW1lbnRlZFZlY3RvclB0cik6CisgICAg
ICAgIChXVEY6Ok1lbW9yeUluc3RydW1lbnRhdGlvbjo6YWRkSW5zdHJ1bWVudGVkQ29sbGVjdGlv
bik6CisgICAgICAgIChXVEYpOgorICAgICAgICAoV1RGOjpNZW1vcnlJbnN0cnVtZW50YXRpb246
OmFkZEluc3RydW1lbnRlZENvbGxlY3Rpb25WYWx1ZXMpOgorICAgICAgICAqIHd0Zi9WZWN0b3Iu
aDoKKyAgICAgICAgKFZlY3RvckJ1ZmZlcik6CisgICAgICAgIChXVEY6OlZlY3RvckJ1ZmZlcjo6
cmVwb3J0TWVtb3J5VXNhZ2UpOgorICAgICAgICAoVmVjdG9yKToKKyAgICAgICAgKFdURjo6Ojpy
ZXBvcnRNZW1vcnlVc2FnZSk6CisgICAgICAgIChXVEYpOgorCiAyMDEyLTA5LTE3ICBHbGVubiBB
ZGFtcyAgPGdsZW5uQHNreW5hdi5jb20+CiAKICAgICAgICAgSW5jbHVkaW5nIEhleE51bWJlci5o
IGZhaWxzIGJ1aWxkIGlmIGhleERpZ2l0c0Zvck1vZGUgaXMgbm90IHJlZmVyZW5jZWQKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XVEYvd3RmL01lbW9yeUluc3RydW1lbnRhdGlvbi5oIGIvU291cmNlL1dU
Ri93dGYvTWVtb3J5SW5zdHJ1bWVudGF0aW9uLmgKaW5kZXggMTMxYWY4NC4uYzkwMDRmYiAxMDA2
NDQKLS0tIGEvU291cmNlL1dURi93dGYvTWVtb3J5SW5zdHJ1bWVudGF0aW9uLmgKKysrIGIvU291
cmNlL1dURi93dGYvTWVtb3J5SW5zdHJ1bWVudGF0aW9uLmgKQEAgLTE0NSwxMCArMTQ1LDEwIEBA
IHByaXZhdGU6CiAgICAgdGVtcGxhdGU8dHlwZW5hbWUgSGFzaE1hcFR5cGU+IHZvaWQgYWRkSGFz
aE1hcChjb25zdCBIYXNoTWFwVHlwZSYsIE1lbW9yeU9iamVjdFR5cGUsIGJvb2wgY29udGVudE9u
bHkgPSBmYWxzZSk7CiAgICAgdGVtcGxhdGU8dHlwZW5hbWUgSGFzaFNldFR5cGU+IHZvaWQgYWRk
SGFzaFNldChjb25zdCBIYXNoU2V0VHlwZSYsIE1lbW9yeU9iamVjdFR5cGUsIGJvb2wgY29udGVu
dE9ubHkgPSBmYWxzZSk7CiAgICAgdGVtcGxhdGU8dHlwZW5hbWUgQ29sbGVjdGlvblR5cGU+IHZv
aWQgYWRkSW5zdHJ1bWVudGVkQ29sbGVjdGlvbihjb25zdCBDb2xsZWN0aW9uVHlwZSYsIE1lbW9y
eU9iamVjdFR5cGUsIGJvb2wgY29udGVudE9ubHkgPSBmYWxzZSk7CisgICAgdGVtcGxhdGU8dHlw
ZW5hbWUgQ29sbGVjdGlvblR5cGU+IHZvaWQgYWRkSW5zdHJ1bWVudGVkQ29sbGVjdGlvblZhbHVl
cyhjb25zdCBDb2xsZWN0aW9uVHlwZSYsIE1lbW9yeU9iamVjdFR5cGUpOwogICAgIHRlbXBsYXRl
PHR5cGVuYW1lIE1hcFR5cGU+IHZvaWQgYWRkSW5zdHJ1bWVudGVkTWFwRW50cmllcyhjb25zdCBN
YXBUeXBlJiwgTWVtb3J5T2JqZWN0VHlwZSk7CiAgICAgdGVtcGxhdGU8dHlwZW5hbWUgTWFwVHlw
ZT4gdm9pZCBhZGRJbnN0cnVtZW50ZWRNYXBWYWx1ZXMoY29uc3QgTWFwVHlwZSYsIE1lbW9yeU9i
amVjdFR5cGUpOwogICAgIHRlbXBsYXRlPHR5cGVuYW1lIExpc3RIYXNoU2V0VHlwZT4gdm9pZCBh
ZGRMaXN0SGFzaFNldChjb25zdCBMaXN0SGFzaFNldFR5cGUmLCBNZW1vcnlPYmplY3RUeXBlLCBi
b29sIGNvbnRlbnRPbmx5ID0gZmFsc2UpOwotICAgIHRlbXBsYXRlPHR5cGVuYW1lIFZlY3RvclR5
cGU+IHZvaWQgYWRkVmVjdG9yKGNvbnN0IFZlY3RvclR5cGUmLCBNZW1vcnlPYmplY3RUeXBlLCBi
b29sIGNvbnRlbnRPbmx5ID0gZmFsc2UpOwogICAgIHZvaWQgYWRkUmF3QnVmZmVyKGNvbnN0IHZv
aWQqIGNvbnN0JiBidWZmZXIsIE1lbW9yeU9iamVjdFR5cGUgb3duZXJPYmplY3RUeXBlLCBzaXpl
X3Qgc2l6ZSkKICAgICB7CiAgICAgICAgIGlmICghYnVmZmVyIHx8IHZpc2l0ZWQoYnVmZmVyKSkK
QEAgLTE5NCwxNCArMTk0LDI0IEBAIHB1YmxpYzoKICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBIYXNo
U2V0VHlwZT4gdm9pZCBhZGRIYXNoU2V0KGNvbnN0IEhhc2hTZXRUeXBlJiBzZXQpIHsgbV9tZW1v
cnlJbnN0cnVtZW50YXRpb24tPmFkZEhhc2hTZXQoc2V0LCBtX29iamVjdFR5cGUsIHRydWUpOyB9
CiAgICAgdGVtcGxhdGU8dHlwZW5hbWUgSGFzaFNldFR5cGU+IHZvaWQgYWRkSGFzaENvdW50ZWRT
ZXQoY29uc3QgSGFzaFNldFR5cGUmIHNldCkgeyBtX21lbW9yeUluc3RydW1lbnRhdGlvbi0+YWRk
SGFzaFNldChzZXQsIG1fb2JqZWN0VHlwZSwgdHJ1ZSk7IH0KICAgICB0ZW1wbGF0ZTx0eXBlbmFt
ZSBIYXNoU2V0VHlwZT4gdm9pZCBhZGRJbnN0cnVtZW50ZWRIYXNoU2V0KGNvbnN0IEhhc2hTZXRU
eXBlJiBzZXQpIHsgbV9tZW1vcnlJbnN0cnVtZW50YXRpb24tPmFkZEluc3RydW1lbnRlZENvbGxl
Y3Rpb24oc2V0LCBtX29iamVjdFR5cGUsIHRydWUpOyB9Ci0gICAgdGVtcGxhdGU8dHlwZW5hbWUg
VmVjdG9yVHlwZT4gdm9pZCBhZGRJbnN0cnVtZW50ZWRWZWN0b3IoY29uc3QgVmVjdG9yVHlwZSYg
dmVjdG9yKSB7IG1fbWVtb3J5SW5zdHJ1bWVudGF0aW9uLT5hZGRJbnN0cnVtZW50ZWRDb2xsZWN0
aW9uKHZlY3RvciwgbV9vYmplY3RUeXBlLCB0cnVlKTsgfQotICAgIHRlbXBsYXRlPHR5cGVuYW1l
IFZlY3RvclR5cGU+IHZvaWQgYWRkSW5zdHJ1bWVudGVkVmVjdG9yUHRyKGNvbnN0IE93blB0cjxW
ZWN0b3JUeXBlPiYgdmVjdG9yKSB7IG1fbWVtb3J5SW5zdHJ1bWVudGF0aW9uLT5hZGRJbnN0cnVt
ZW50ZWRDb2xsZWN0aW9uKCp2ZWN0b3IsIG1fb2JqZWN0VHlwZSwgZmFsc2UpOyB9Ci0gICAgdGVt
cGxhdGU8dHlwZW5hbWUgVmVjdG9yVHlwZT4gdm9pZCBhZGRJbnN0cnVtZW50ZWRWZWN0b3JQdHIo
Y29uc3QgVmVjdG9yVHlwZSogY29uc3QmIHZlY3RvcikgeyBtX21lbW9yeUluc3RydW1lbnRhdGlv
bi0+YWRkSW5zdHJ1bWVudGVkQ29sbGVjdGlvbigqdmVjdG9yLCBtX29iamVjdFR5cGUsIGZhbHNl
KTsgfQorICAgIHRlbXBsYXRlPHR5cGVuYW1lIFZlY3RvclR5cGU+IHZvaWQgYWRkSW5zdHJ1bWVu
dGVkVmVjdG9yKGNvbnN0IFZlY3RvclR5cGUmIHZlY3RvcikKKyAgICB7CisgICAgICAgIGFkZE1l
bWJlcih2ZWN0b3IpOworICAgICAgICBtX21lbW9yeUluc3RydW1lbnRhdGlvbi0+YWRkSW5zdHJ1
bWVudGVkQ29sbGVjdGlvblZhbHVlcyh2ZWN0b3IsIG1fb2JqZWN0VHlwZSk7CisgICAgfQorICAg
IHRlbXBsYXRlPHR5cGVuYW1lIFZlY3RvclR5cGU+IHZvaWQgYWRkSW5zdHJ1bWVudGVkVmVjdG9y
UHRyKGNvbnN0IE93blB0cjxWZWN0b3JUeXBlPiYgdmVjdG9yKQorICAgIHsKKyAgICAgICAgYWRk
TWVtYmVyKHZlY3Rvcik7CisgICAgICAgIG1fbWVtb3J5SW5zdHJ1bWVudGF0aW9uLT5hZGRJbnN0
cnVtZW50ZWRDb2xsZWN0aW9uVmFsdWVzKCp2ZWN0b3IsIG1fb2JqZWN0VHlwZSk7CisgICAgfQor
ICAgIHRlbXBsYXRlPHR5cGVuYW1lIFZlY3RvclR5cGU+IHZvaWQgYWRkSW5zdHJ1bWVudGVkVmVj
dG9yUHRyKGNvbnN0IFZlY3RvclR5cGUqIGNvbnN0JiB2ZWN0b3IpCisgICAgeworICAgICAgICBh
ZGRNZW1iZXIodmVjdG9yKTsKKyAgICAgICAgbV9tZW1vcnlJbnN0cnVtZW50YXRpb24tPmFkZElu
c3RydW1lbnRlZENvbGxlY3Rpb25WYWx1ZXMoKnZlY3RvciwgbV9vYmplY3RUeXBlKTsKKyAgICB9
CiAgICAgdGVtcGxhdGU8dHlwZW5hbWUgTWFwVHlwZT4gdm9pZCBhZGRJbnN0cnVtZW50ZWRNYXBF
bnRyaWVzKGNvbnN0IE1hcFR5cGUmIG1hcCkgeyBtX21lbW9yeUluc3RydW1lbnRhdGlvbi0+YWRk
SW5zdHJ1bWVudGVkTWFwRW50cmllcyhtYXAsIG1fb2JqZWN0VHlwZSk7IH0KICAgICB0ZW1wbGF0
ZTx0eXBlbmFtZSBNYXBUeXBlPiB2b2lkIGFkZEluc3RydW1lbnRlZE1hcFZhbHVlcyhjb25zdCBN
YXBUeXBlJiBtYXApIHsgbV9tZW1vcnlJbnN0cnVtZW50YXRpb24tPmFkZEluc3RydW1lbnRlZE1h
cFZhbHVlcyhtYXAsIG1fb2JqZWN0VHlwZSk7IH0KICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBMaXN0
SGFzaFNldFR5cGU+IHZvaWQgYWRkTGlzdEhhc2hTZXQoY29uc3QgTGlzdEhhc2hTZXRUeXBlJiBz
ZXQpIHsgbV9tZW1vcnlJbnN0cnVtZW50YXRpb24tPmFkZExpc3RIYXNoU2V0KHNldCwgbV9vYmpl
Y3RUeXBlLCB0cnVlKTsgfQotICAgIHRlbXBsYXRlPHR5cGVuYW1lIFZlY3RvclR5cGU+IHZvaWQg
YWRkVmVjdG9yKGNvbnN0IFZlY3RvclR5cGUmIHZlY3RvcikgeyBtX21lbW9yeUluc3RydW1lbnRh
dGlvbi0+YWRkVmVjdG9yKHZlY3RvciwgbV9vYmplY3RUeXBlLCB0cnVlKTsgfQotICAgIHRlbXBs
YXRlPHR5cGVuYW1lIFZlY3RvclR5cGU+IHZvaWQgYWRkVmVjdG9yUHRyKGNvbnN0IFZlY3RvclR5
cGUqIGNvbnN0IHZlY3RvcikgeyBtX21lbW9yeUluc3RydW1lbnRhdGlvbi0+YWRkVmVjdG9yKCp2
ZWN0b3IsIG1fb2JqZWN0VHlwZSwgZmFsc2UpOyB9CiAgICAgdm9pZCBhZGRSYXdCdWZmZXIoY29u
c3Qgdm9pZCogY29uc3QmIGJ1ZmZlciwgc2l6ZV90IHNpemUpIHsgbV9tZW1vcnlJbnN0cnVtZW50
YXRpb24tPmFkZFJhd0J1ZmZlcihidWZmZXIsIG1fb2JqZWN0VHlwZSwgc2l6ZSk7IH0KIAogICAg
IHZvaWQgYWRkV2Vha1BvaW50ZXIodm9pZCopIHsgfQpAQCAtMjYzLDYgKzI3MywxMiBAQCB2b2lk
IE1lbW9yeUluc3RydW1lbnRhdGlvbjo6YWRkSW5zdHJ1bWVudGVkQ29sbGVjdGlvbihjb25zdCBD
b2xsZWN0aW9uVHlwZSYgY29sbAogICAgIGlmICh2aXNpdGVkKCZjb2xsZWN0aW9uKSkKICAgICAg
ICAgcmV0dXJuOwogICAgIGNvdW50T2JqZWN0U2l6ZShvd25lck9iamVjdFR5cGUsIGNhbGN1bGF0
ZUNvbnRhaW5lclNpemUoY29sbGVjdGlvbiwgY29udGVudE9ubHkpKTsKKyAgICBhZGRJbnN0cnVt
ZW50ZWRDb2xsZWN0aW9uVmFsdWVzKGNvbGxlY3Rpb24sIG93bmVyT2JqZWN0VHlwZSk7Cit9CisK
K3RlbXBsYXRlPHR5cGVuYW1lIENvbGxlY3Rpb25UeXBlPgordm9pZCBNZW1vcnlJbnN0cnVtZW50
YXRpb246OmFkZEluc3RydW1lbnRlZENvbGxlY3Rpb25WYWx1ZXMoY29uc3QgQ29sbGVjdGlvblR5
cGUmIGNvbGxlY3Rpb24sIE1lbW9yeU9iamVjdFR5cGUgb3duZXJPYmplY3RUeXBlKQorewogICAg
IHR5cGVuYW1lIENvbGxlY3Rpb25UeXBlOjpjb25zdF9pdGVyYXRvciBlbmQgPSBjb2xsZWN0aW9u
LmVuZCgpOwogICAgIGZvciAodHlwZW5hbWUgQ29sbGVjdGlvblR5cGU6OmNvbnN0X2l0ZXJhdG9y
IGkgPSBjb2xsZWN0aW9uLmJlZ2luKCk7IGkgIT0gZW5kOyArK2kpCiAgICAgICAgIGFkZE9iamVj
dCgqaSwgb3duZXJPYmplY3RUeXBlKTsKQEAgLTI5NSwxNCArMzExLDYgQEAgdm9pZCBNZW1vcnlJ
bnN0cnVtZW50YXRpb246OmFkZExpc3RIYXNoU2V0KGNvbnN0IExpc3RIYXNoU2V0VHlwZSYgaGFz
aFNldCwgTWVtb3IKICAgICBjb3VudE9iamVjdFNpemUob3duZXJPYmplY3RUeXBlLCBzaXplKTsK
IH0KIAotdGVtcGxhdGU8dHlwZW5hbWUgVmVjdG9yVHlwZT4KLXZvaWQgTWVtb3J5SW5zdHJ1bWVu
dGF0aW9uOjphZGRWZWN0b3IoY29uc3QgVmVjdG9yVHlwZSYgdmVjdG9yLCBNZW1vcnlPYmplY3RU
eXBlIG93bmVyT2JqZWN0VHlwZSwgYm9vbCBjb250ZW50T25seSkKLXsKLSAgICBpZiAoIXZlY3Rv
ci5kYXRhKCkgfHwgdmlzaXRlZCh2ZWN0b3IuZGF0YSgpKSkKLSAgICAgICAgcmV0dXJuOwotICAg
IGNvdW50T2JqZWN0U2l6ZShvd25lck9iamVjdFR5cGUsIGNhbGN1bGF0ZUNvbnRhaW5lclNpemUo
dmVjdG9yLCBjb250ZW50T25seSkpOwotfQotCiB0ZW1wbGF0ZTx0eXBlbmFtZSBDb250YWluZXI+
CiBzaXplX3QgTWVtb3J5SW5zdHJ1bWVudGF0aW9uOjpjYWxjdWxhdGVDb250YWluZXJTaXplKGNv
bnN0IENvbnRhaW5lciYgY29udGFpbmVyLCBib29sIGNvbnRlbnRPbmx5KQogewpkaWZmIC0tZ2l0
IGEvU291cmNlL1dURi93dGYvVmVjdG9yLmggYi9Tb3VyY2UvV1RGL3d0Zi9WZWN0b3IuaAppbmRl
eCA4YTVlYWY2Li5jZGM4OWMyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9WZWN0b3IuaAor
KysgYi9Tb3VyY2UvV1RGL3d0Zi9WZWN0b3IuaApAQCAtMzgyLDYgKzM4MiwxMyBAQCBuYW1lc3Bh
Y2UgV1RGIHsKICAgICAgICAgCiAgICAgICAgIHZvaWQgcmVzdG9yZUlubGluZUJ1ZmZlcklmTmVl
ZGVkKCkgeyB9CiAKKyAgICAgICAgdGVtcGxhdGU8dHlwZW5hbWUgTWVtb3J5T2JqZWN0SW5mbz4K
KyAgICAgICAgdm9pZCByZXBvcnRNZW1vcnlVc2FnZShNZW1vcnlPYmplY3RJbmZvKiBtZW1vcnlP
YmplY3RJbmZvKSBjb25zdAorICAgICAgICB7CisgICAgICAgICAgICB0eXBlbmFtZSBNZW1vcnlP
YmplY3RJbmZvOjpDbGFzc0luZm8gaW5mbyhtZW1vcnlPYmplY3RJbmZvLCB0aGlzKTsKKyAgICAg
ICAgICAgIGluZm8uYWRkUmF3QnVmZmVyKG1fYnVmZmVyLCBtX2NhcGFjaXR5ICogc2l6ZW9mKFQp
KTsKKyAgICAgICAgfQorCiAgICAgICAgIHVzaW5nIEJhc2U6OmFsbG9jYXRlQnVmZmVyOwogICAg
ICAgICB1c2luZyBCYXNlOjp0cnlBbGxvY2F0ZUJ1ZmZlcjsKICAgICAgICAgdXNpbmcgQmFzZTo6
c2hvdWxkUmVhbGxvY2F0ZUJ1ZmZlcjsKQEAgLTUwMCw2ICs1MDcsMTQgQEAgbmFtZXNwYWNlIFdU
RiB7CiAgICAgICAgICAgICByZXR1cm4gQmFzZTo6cmVsZWFzZUJ1ZmZlcigpOwogICAgICAgICB9
CiAKKyAgICAgICAgdGVtcGxhdGU8dHlwZW5hbWUgTWVtb3J5T2JqZWN0SW5mbz4KKyAgICAgICAg
dm9pZCByZXBvcnRNZW1vcnlVc2FnZShNZW1vcnlPYmplY3RJbmZvKiBtZW1vcnlPYmplY3RJbmZv
KSBjb25zdAorICAgICAgICB7CisgICAgICAgICAgICB0eXBlbmFtZSBNZW1vcnlPYmplY3RJbmZv
OjpDbGFzc0luZm8gaW5mbyhtZW1vcnlPYmplY3RJbmZvLCB0aGlzKTsKKyAgICAgICAgICAgIGlm
IChtX2NhcGFjaXR5ID4gaW5saW5lQ2FwYWNpdHkpCisgICAgICAgICAgICAgICAgaW5mby5hZGRS
YXdCdWZmZXIobV9idWZmZXIsIG1fY2FwYWNpdHkgKiBzaXplb2YoVCkpOworICAgICAgICB9CisK
ICAgICBwcml2YXRlOgogICAgICAgICB1c2luZyBCYXNlOjptX2J1ZmZlcjsKICAgICAgICAgdXNp
bmcgQmFzZTo6bV9jYXBhY2l0eTsKQEAgLTY2Myw2ICs2NzgsOCBAQCBuYW1lc3BhY2UgV1RGIHsK
IAogICAgICAgICB2b2lkIGNoZWNrQ29uc2lzdGVuY3koKTsKIAorICAgICAgICB0ZW1wbGF0ZTx0
eXBlbmFtZSBNZW1vcnlPYmplY3RJbmZvPiB2b2lkIHJlcG9ydE1lbW9yeVVzYWdlKE1lbW9yeU9i
amVjdEluZm8qKSBjb25zdDsKKwogICAgIHByaXZhdGU6CiAgICAgICAgIHZvaWQgZXhwYW5kQ2Fw
YWNpdHkoc2l6ZV90IG5ld01pbkNhcGFjaXR5KTsKICAgICAgICAgY29uc3QgVCogZXhwYW5kQ2Fw
YWNpdHkoc2l6ZV90IG5ld01pbkNhcGFjaXR5LCBjb25zdCBUKik7CkBAIC0xMjU2LDYgKzEyNzMs
MTQgQEAgbmFtZXNwYWNlIFdURiB7CiAgICAgfTsKICNlbmRpZgogCisgICAgdGVtcGxhdGU8dHlw
ZW5hbWUgVCwgc2l6ZV90IGlubGluZUNhcGFjaXR5PgorICAgIHRlbXBsYXRlPHR5cGVuYW1lIE1l
bW9yeU9iamVjdEluZm8+CisgICAgdm9pZCBWZWN0b3I8VCwgaW5saW5lQ2FwYWNpdHk+OjpyZXBv
cnRNZW1vcnlVc2FnZShNZW1vcnlPYmplY3RJbmZvKiBtZW1vcnlPYmplY3RJbmZvKSBjb25zdAor
ICAgIHsKKyAgICAgICAgdHlwZW5hbWUgTWVtb3J5T2JqZWN0SW5mbzo6Q2xhc3NJbmZvIGluZm8o
bWVtb3J5T2JqZWN0SW5mbywgdGhpcyk7CisgICAgICAgIGluZm8uYWRkTWVtYmVyKG1fYnVmZmVy
KTsKKyAgICB9CisKIH0gLy8gbmFtZXNwYWNlIFdURgogCiB1c2luZyBXVEY6OlZlY3RvcjsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwppbmRleCBmYTIzODQ2Li43MzFiODc0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNDEgQEAK
KzIwMTItMDktMTMgIFl1cnkgU2VtaWtoYXRza3kgIDx5dXJ5c0BjaHJvbWl1bS5vcmc+CisKKyAg
ICAgICAgV2ViIEluc3BlY3RvcjogbW92ZSBWZWN0b3IgbWVtb3J5IGluc3RydW1lbnRhdGlvbiB0
byBWZWN0b3IuaAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9OTY2NTAKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICBVcGRhdGVkIGluc3RydW1lbnRlZCBjbGFzc2VzIHRvIG1hdGNoIG5ldyBhcHByb2FjaCB0byBW
ZWN0b3IgbWVtb3J5CisgICAgICAgIGluc3RydW1lbnRhdGlvbi4KKworICAgICAgICAqIGJpbmRp
bmdzL3Y4L1Y4UGVySXNvbGF0ZURhdGEuY3BwOgorICAgICAgICAoV2ViQ29yZTo6VjhQZXJJc29s
YXRlRGF0YTo6cmVwb3J0TWVtb3J5VXNhZ2UpOgorICAgICAgICAqIGNzcy9TdHlsZVByb3BlcnR5
U2V0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlN0eWxlUHJvcGVydHlTZXQ6OnJlcG9ydE1lbW9y
eVVzYWdlKToKKyAgICAgICAgKiBjc3MvU3R5bGVSZXNvbHZlci5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpTdHlsZVJlc29sdmVyOjpGZWF0dXJlczo6cmVwb3J0TWVtb3J5VXNhZ2UpOgorICAgICAg
ICAoV2ViQ29yZTo6U3R5bGVSZXNvbHZlcjo6Y29sbGVjdE1hdGNoaW5nUnVsZXNGb3JMaXN0KToK
KyAgICAgICAgKiBjc3MvU3R5bGVTaGVldENvbnRlbnRzLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OlN0eWxlU2hlZXRDb250ZW50czo6cmVwb3J0TWVtb3J5VXNhZ2UpOgorICAgICAgICAqIGRvbS9E
b2N1bWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudDo6cmVwb3J0TWVtb3J5VXNh
Z2UpOgorICAgICAgICAqIGRvbS9FbGVtZW50QXR0cmlidXRlRGF0YS5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpFbGVtZW50QXR0cmlidXRlRGF0YTo6cmVwb3J0TWVtb3J5VXNhZ2UpOgorICAgICAg
ICAqIGxvYWRlci9Eb2N1bWVudExvYWRlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVu
dExvYWRlcjo6cmVwb3J0TWVtb3J5VXNhZ2UpOgorICAgICAgICAqIGxvYWRlci9jYWNoZS9NZW1v
cnlDYWNoZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpNZW1vcnlDYWNoZTo6cmVwb3J0TWVtb3J5
VXNhZ2UpOgorICAgICAgICAqIHBsYXRmb3JtL1NoYXJlZEJ1ZmZlci5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpTaGFyZWRCdWZmZXI6OnJlcG9ydE1lbW9yeVVzYWdlKToKKyAgICAgICAgKiBwbGF0
Zm9ybS9ncmFwaGljcy9CaXRtYXBJbWFnZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpCaXRtYXBJ
bWFnZTo6cmVwb3J0TWVtb3J5VXNhZ2UpOgorICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsvRm9y
bURhdGEuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Rm9ybURhdGE6OnJlcG9ydE1lbW9yeVVzYWdl
KToKKyAgICAgICAgKiByZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGUuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6UmVuZGVyU3R5bGU6OnJlcG9ydE1lbW9yeVVzYWdlKToKKyAgICAgICAgKiByZW5k
ZXJpbmcvc3R5bGUvU3R5bGVSYXJlTm9uSW5oZXJpdGVkRGF0YS5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpTdHlsZVJhcmVOb25Jbmhlcml0ZWREYXRhOjpyZXBvcnRNZW1vcnlVc2FnZSk6CisKIDIw
MTItMDktMTcgIFJvZ2VyIEZvbmcgIDxyb2dlcl9mb25nQGFwcGxlLmNvbT4KIAogICAgICAgICBb
V2luXSBOdWxsIGNoZWNrIHRpbWluZyBmdW5jdGlvbiByZWNlaXZlZCBmcm9tIENvcmVBbmltYXRp
b24gd2hlbiBjYWxsaW5nIENBQ0ZBbmltYXRpb25HZXRUaW1pbmdGdW5jdGlvbi4KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1Y4UGVySXNvbGF0ZURhdGEuY3BwIGIvU291
cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvVjhQZXJJc29sYXRlRGF0YS5jcHAKaW5kZXggZTFiYzMx
ZS4uOWUzOWQ1MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvVjhQZXJJ
c29sYXRlRGF0YS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvVjhQZXJJc29s
YXRlRGF0YS5jcHAKQEAgLTg3LDcgKzg3LDcgQEAgdm9pZCBWOFBlcklzb2xhdGVEYXRhOjpyZXBv
cnRNZW1vcnlVc2FnZShNZW1vcnlPYmplY3RJbmZvKiBtZW1vcnlPYmplY3RJbmZvKSBjb24KICAg
ICBpbmZvLmFkZEhhc2hNYXAobV9yYXdUZW1wbGF0ZXMpOwogICAgIGluZm8uYWRkSGFzaE1hcCht
X3RlbXBsYXRlcyk7CiAgICAgaW5mby5hZGRNZW1iZXIobV9zdHJpbmdDYWNoZSk7Ci0gICAgaW5m
by5hZGRWZWN0b3IobV9kb21EYXRhTGlzdCk7CisgICAgaW5mby5hZGRNZW1iZXIobV9kb21EYXRh
TGlzdCk7CiAKICAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IG1fZG9tRGF0YUxpc3Quc2l6ZSgp
OyBpKyspCiAgICAgICAgIGluZm8uYWRkTWVtYmVyKG1fZG9tRGF0YUxpc3RbaV0pOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL1N0eWxlUHJvcGVydHlTZXQuY3BwIGIvU291cmNlL1dl
YkNvcmUvY3NzL1N0eWxlUHJvcGVydHlTZXQuY3BwCmluZGV4IDZlM2MwZmQuLjVmZTVmZDIgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9TdHlsZVByb3BlcnR5U2V0LmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVQcm9wZXJ0eVNldC5jcHAKQEAgLTExMjMsNyArMTEyMyw3
IEBAIHZvaWQgU3R5bGVQcm9wZXJ0eVNldDo6cmVwb3J0TWVtb3J5VXNhZ2UoTWVtb3J5T2JqZWN0
SW5mbyogbWVtb3J5T2JqZWN0SW5mbykgY29uCiAgICAgc2l6ZV90IGFjdHVhbFNpemUgPSBtX2lz
TXV0YWJsZSA/IHNpemVvZihTdHlsZVByb3BlcnR5U2V0KSA6IGltbXV0YWJsZVN0eWxlUHJvcGVy
dHlTZXRTaXplKG1fYXJyYXlTaXplKTsKICAgICBNZW1vcnlDbGFzc0luZm8gaW5mbyhtZW1vcnlP
YmplY3RJbmZvLCB0aGlzLCBXZWJDb3JlTWVtb3J5VHlwZXM6OkNTUywgYWN0dWFsU2l6ZSk7CiAg
ICAgaWYgKG1faXNNdXRhYmxlKQotICAgICAgICBpbmZvLmFkZFZlY3RvclB0cihtX211dGFibGVQ
cm9wZXJ0eVZlY3Rvcik7CisgICAgICAgIGluZm8uYWRkTWVtYmVyKG1fbXV0YWJsZVByb3BlcnR5
VmVjdG9yKTsKIAogICAgIHVuc2lnbmVkIGNvdW50ID0gcHJvcGVydHlDb3VudCgpOwogICAgIGZv
ciAodW5zaWduZWQgaSA9IDA7IGkgPCBjb3VudDsgKytpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvY3NzL1N0eWxlUmVzb2x2ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL1N0eWxlUmVz
b2x2ZXIuY3BwCmluZGV4IDUxN2JkYjYuLjIxOTgwNzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2Nzcy9TdHlsZVJlc29sdmVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVS
ZXNvbHZlci5jcHAKQEAgLTc0Nyw4ICs3NDcsOCBAQCB2b2lkIFN0eWxlUmVzb2x2ZXI6OkZlYXR1
cmVzOjpyZXBvcnRNZW1vcnlVc2FnZShNZW1vcnlPYmplY3RJbmZvKiBtZW1vcnlPYmplY3RJbgog
ICAgIE1lbW9yeUNsYXNzSW5mbyBpbmZvKG1lbW9yeU9iamVjdEluZm8sIHRoaXMsIFdlYkNvcmVN
ZW1vcnlUeXBlczo6Q1NTKTsKICAgICBpbmZvLmFkZEhhc2hTZXQoaWRzSW5SdWxlcyk7CiAgICAg
aW5mby5hZGRIYXNoU2V0KGF0dHJzSW5SdWxlcyk7Ci0gICAgaW5mby5hZGRWZWN0b3Ioc2libGlu
Z1J1bGVzKTsKLSAgICBpbmZvLmFkZFZlY3Rvcih1bmNvbW1vbkF0dHJpYnV0ZVJ1bGVzKTsKKyAg
ICBpbmZvLmFkZE1lbWJlcihzaWJsaW5nUnVsZXMpOworICAgIGluZm8uYWRkTWVtYmVyKHVuY29t
bW9uQXR0cmlidXRlUnVsZXMpOwogfQogCiBzdGF0aWMgU3R5bGVTaGVldENvbnRlbnRzKiBwYXJz
ZVVBU2hlZXQoY29uc3QgU3RyaW5nJiBzdHIpCkBAIC0yNTc5LDcgKzI1NzksNyBAQCB2b2lkIFJ1
bGVTZXQ6OnJlcG9ydE1lbW9yeVVzYWdlKE1lbW9yeU9iamVjdEluZm8qIG1lbW9yeU9iamVjdElu
Zm8pIGNvbnN0CiAgICAgaW5mby5hZGRJbnN0cnVtZW50ZWRWZWN0b3IobV9saW5rUHNldWRvQ2xh
c3NSdWxlcyk7CiAgICAgaW5mby5hZGRJbnN0cnVtZW50ZWRWZWN0b3IobV9mb2N1c1BzZXVkb0Ns
YXNzUnVsZXMpOwogICAgIGluZm8uYWRkSW5zdHJ1bWVudGVkVmVjdG9yKG1fdW5pdmVyc2FsUnVs
ZXMpOwotICAgIGluZm8uYWRkVmVjdG9yKG1fcGFnZVJ1bGVzKTsKKyAgICBpbmZvLmFkZE1lbWJl
cihtX3BhZ2VSdWxlcyk7CiAgICAgaW5mby5hZGRJbnN0cnVtZW50ZWRWZWN0b3IobV9yZWdpb25T
ZWxlY3RvcnNBbmRSdWxlU2V0cyk7CiB9CiAKQEAgLTU3ODUsNyArNTc4NSw3IEBAIHZvaWQgU3R5
bGVSZXNvbHZlcjo6cmVwb3J0TWVtb3J5VXNhZ2UoTWVtb3J5T2JqZWN0SW5mbyogbWVtb3J5T2Jq
ZWN0SW5mbykgY29uc3QKICAgICBpbmZvLmFkZEhhc2hNYXAobV9rZXlmcmFtZXNSdWxlTWFwKTsK
ICAgICBpbmZvLmFkZEhhc2hNYXAobV9tYXRjaGVkUHJvcGVydGllc0NhY2hlKTsKICAgICBpbmZv
LmFkZEluc3RydW1lbnRlZE1hcFZhbHVlcyhtX21hdGNoZWRQcm9wZXJ0aWVzQ2FjaGUpOwotICAg
IGluZm8uYWRkVmVjdG9yKG1fbWF0Y2hlZFJ1bGVzKTsKKyAgICBpbmZvLmFkZE1lbWJlcihtX21h
dGNoZWRSdWxlcyk7CiAKICAgICBpbmZvLmFkZE1lbWJlcihtX3J1bGVMaXN0KTsKICAgICBpbmZv
LmFkZEhhc2hNYXAobV9wZW5kaW5nSW1hZ2VQcm9wZXJ0aWVzKTsKQEAgLTU4MDEsNyArNTgwMSw3
IEBAIHZvaWQgU3R5bGVSZXNvbHZlcjo6cmVwb3J0TWVtb3J5VXNhZ2UoTWVtb3J5T2JqZWN0SW5m
byogbWVtb3J5T2JqZWN0SW5mbykgY29uc3QKICNpZiBFTkFCTEUoU1RZTEVfU0NPUEVEKQogICAg
IGluZm8uYWRkSGFzaE1hcChtX3Njb3BlZEF1dGhvclN0eWxlcyk7CiAgICAgaW5mby5hZGRJbnN0
cnVtZW50ZWRNYXBFbnRyaWVzKG1fc2NvcGVkQXV0aG9yU3R5bGVzKTsKLSAgICBpbmZvLmFkZFZl
Y3RvcihtX3Njb3BlU3RhY2spOworICAgIGluZm8uYWRkTWVtYmVyKG1fc2NvcGVTdGFjayk7CiAj
ZW5kaWYKIAogICAgIC8vIEZJWE1FOiBtb3ZlIHRoaXMgdG8gYSBwbGFjZSB3aGVyZSBpdCB3b3Vs
ZCBiZSBjYWxsZWQgb25seSBvbmNlPwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL1N0
eWxlU2hlZXRDb250ZW50cy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVTaGVldENvbnRl
bnRzLmNwcAppbmRleCAwNDgyNzNiLi41MjM1NmRmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9jc3MvU3R5bGVTaGVldENvbnRlbnRzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5
bGVTaGVldENvbnRlbnRzLmNwcApAQCAtNDg5LDEwICs0ODksMTAgQEAgdm9pZCBTdHlsZVNoZWV0
Q29udGVudHM6OnJlcG9ydE1lbW9yeVVzYWdlKE1lbW9yeU9iamVjdEluZm8qIG1lbW9yeU9iamVj
dEluZm8pIGMKICAgICBNZW1vcnlDbGFzc0luZm8gaW5mbyhtZW1vcnlPYmplY3RJbmZvLCB0aGlz
LCBXZWJDb3JlTWVtb3J5VHlwZXM6OkNTUyk7CiAgICAgaW5mby5hZGRNZW1iZXIobV9vcmlnaW5h
bFVSTCk7CiAgICAgaW5mby5hZGRNZW1iZXIobV9lbmNvZGluZ0Zyb21DaGFyc2V0UnVsZSk7Ci0g
ICAgaW5mby5hZGRWZWN0b3IobV9pbXBvcnRSdWxlcyk7CisgICAgaW5mby5hZGRNZW1iZXIobV9p
bXBvcnRSdWxlcyk7CiAgICAgaW5mby5hZGRJbnN0cnVtZW50ZWRWZWN0b3IobV9jaGlsZFJ1bGVz
KTsKICAgICBpbmZvLmFkZEhhc2hNYXAobV9uYW1lc3BhY2VzKTsKLSAgICBpbmZvLmFkZFZlY3Rv
cihtX2NsaWVudHMpOworICAgIGluZm8uYWRkTWVtYmVyKG1fY2xpZW50cyk7CiB9CiAKIH0KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9kb20vRG9jdW1lbnQuY3BwCmluZGV4IGNlMTNkYzMuLmQ1NjJlNTIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0Rv
Y3VtZW50LmNwcApAQCAtNjI1Miw3ICs2MjUyLDcgQEAgdm9pZCBEb2N1bWVudDo6cmVwb3J0TWVt
b3J5VXNhZ2UoTWVtb3J5T2JqZWN0SW5mbyogbWVtb3J5T2JqZWN0SW5mbykgY29uc3QKICAgICBN
ZW1vcnlDbGFzc0luZm8gaW5mbyhtZW1vcnlPYmplY3RJbmZvLCB0aGlzLCBXZWJDb3JlTWVtb3J5
VHlwZXM6OkRPTSk7CiAgICAgaW5mby5hZGRNZW1iZXIobV9zdHlsZVJlc29sdmVyKTsKICAgICBD
b250YWluZXJOb2RlOjpyZXBvcnRNZW1vcnlVc2FnZShtZW1vcnlPYmplY3RJbmZvKTsKLSAgICBp
bmZvLmFkZFZlY3RvcihtX2N1c3RvbUZvbnRzKTsKKyAgICBpbmZvLmFkZE1lbWJlcihtX2N1c3Rv
bUZvbnRzKTsKICAgICBpbmZvLmFkZE1lbWJlcihtX3VybCk7CiAgICAgaW5mby5hZGRNZW1iZXIo
bV9iYXNlVVJMKTsKICAgICBpbmZvLmFkZE1lbWJlcihtX2Jhc2VVUkxPdmVycmlkZSk7CkBAIC02
MjgyLDE3ICs2MjgyLDE3IEBAIHZvaWQgRG9jdW1lbnQ6OnJlcG9ydE1lbW9yeVVzYWdlKE1lbW9y
eU9iamVjdEluZm8qIG1lbW9yeU9iamVjdEluZm8pIGNvbnN0CiAgICAgaW5mby5hZGRIYXNoTWFw
KG1fZG9jdW1lbnROYW1lZEl0ZW1Db2xsZWN0aW9ucyk7CiAgICAgaW5mby5hZGRIYXNoTWFwKG1f
d2luZG93TmFtZWRJdGVtQ29sbGVjdGlvbnMpOwogI2lmIEVOQUJMRShEQVNIQk9BUkRfU1VQUE9S
VCkKLSAgICBpbmZvLmFkZFZlY3RvcihtX2Rhc2hib2FyZFJlZ2lvbnMpOworICAgIGluZm8uYWRk
TWVtYmVyKG1fZGFzaGJvYXJkUmVnaW9ucyk7CiAjZW5kaWYKICAgICBpbmZvLmFkZEhhc2hNYXAo
bV9jc3NDYW52YXNFbGVtZW50cyk7Ci0gICAgaW5mby5hZGRWZWN0b3IobV9pY29uVVJMcyk7Cisg
ICAgaW5mby5hZGRNZW1iZXIobV9pY29uVVJMcyk7CiAgICAgaW5mby5hZGRIYXNoU2V0KG1fZG9j
dW1lbnRTdXNwZW5zaW9uQ2FsbGJhY2tFbGVtZW50cyk7CiAgICAgaW5mby5hZGRIYXNoU2V0KG1f
bWVkaWFWb2x1bWVDYWxsYmFja0VsZW1lbnRzKTsKICAgICBpbmZvLmFkZEhhc2hTZXQobV9wcml2
YXRlQnJvd3NpbmdTdGF0ZUNoYW5nZWRFbGVtZW50cyk7CiAgICAgaW5mby5hZGRIYXNoTWFwKG1f
ZWxlbWVudHNCeUFjY2Vzc0tleSk7CiAgICAgaW5mby5hZGRNZW1iZXIobV9ldmVudFF1ZXVlKTsK
ICAgICBpbmZvLmFkZEhhc2hTZXQobV9tZWRpYUNhblN0YXJ0TGlzdGVuZXJzKTsKLSAgICBpbmZv
LmFkZFZlY3RvcihtX3BlbmRpbmdUYXNrcyk7CisgICAgaW5mby5hZGRNZW1iZXIobV9wZW5kaW5n
VGFza3MpOwogfQogCiAjaWYgRU5BQkxFKFVORE9fTUFOQUdFUikKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2RvbS9FbGVtZW50QXR0cmlidXRlRGF0YS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9k
b20vRWxlbWVudEF0dHJpYnV0ZURhdGEuY3BwCmluZGV4IDAzZjdiODEuLmMwOTJiYmQgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50QXR0cmlidXRlRGF0YS5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnRBdHRyaWJ1dGVEYXRhLmNwcApAQCAtMzAwLDcgKzMw
MCw3IEBAIHZvaWQgRWxlbWVudEF0dHJpYnV0ZURhdGE6OnJlcG9ydE1lbW9yeVVzYWdlKE1lbW9y
eU9iamVjdEluZm8qIG1lbW9yeU9iamVjdEluZm8pCiAgICAgaW5mby5hZGRNZW1iZXIobV9jbGFz
c05hbWVzKTsKICAgICBpbmZvLmFkZE1lbWJlcihtX2lkRm9yU3R5bGVSZXNvbHV0aW9uKTsKICAg
ICBpZiAobV9pc011dGFibGUpCi0gICAgICAgIGluZm8uYWRkVmVjdG9yKG11dGFibGVBdHRyaWJ1
dGVWZWN0b3IoKSk7CisgICAgICAgIGluZm8uYWRkTWVtYmVyKG11dGFibGVBdHRyaWJ1dGVWZWN0
b3IoKSk7CiAgICAgZm9yICh1bnNpZ25lZCBpID0gMCwgbGVuID0gbGVuZ3RoKCk7IGkgPCBsZW47
IGkrKykKICAgICAgICAgaW5mby5hZGRNZW1iZXIoKmF0dHJpYnV0ZUl0ZW0oaSkpOwogfQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0RvY3VtZW50TG9hZGVyLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2xvYWRlci9Eb2N1bWVudExvYWRlci5jcHAKaW5kZXggODhiN2ZlOC4uOGUyNDY1
NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0RvY3VtZW50TG9hZGVyLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRG9jdW1lbnRMb2FkZXIuY3BwCkBAIC0zNjgsNyAr
MzY4LDcgQEAgdm9pZCBEb2N1bWVudExvYWRlcjo6cmVwb3J0TWVtb3J5VXNhZ2UoTWVtb3J5T2Jq
ZWN0SW5mbyogbWVtb3J5T2JqZWN0SW5mbykgY29uc3QKICAgICBpbmZvLmFkZE1lbWJlcihtX3N1
YnN0aXR1dGVEYXRhKTsKICAgICBpbmZvLmFkZE1lbWJlcihtX3BhZ2VUaXRsZS5zdHJpbmcoKSk7
CiAgICAgaW5mby5hZGRNZW1iZXIobV9vdmVycmlkZUVuY29kaW5nKTsKLSAgICBpbmZvLmFkZFZl
Y3RvcihtX3Jlc3BvbnNlcyk7CisgICAgaW5mby5hZGRNZW1iZXIobV9yZXNwb25zZXMpOwogICAg
IGluZm8uYWRkTWVtYmVyKG1fb3JpZ2luYWxSZXF1ZXN0KTsKICAgICBpbmZvLmFkZE1lbWJlciht
X29yaWdpbmFsUmVxdWVzdENvcHkpOwogICAgIGluZm8uYWRkTWVtYmVyKG1fcmVxdWVzdCk7CkBA
IC0zNzcsNyArMzc3LDcgQEAgdm9pZCBEb2N1bWVudExvYWRlcjo6cmVwb3J0TWVtb3J5VXNhZ2Uo
TWVtb3J5T2JqZWN0SW5mbyogbWVtb3J5T2JqZWN0SW5mbykgY29uc3QKICAgICBpbmZvLmFkZElu
c3RydW1lbnRlZFZlY3RvcihtX3Jlc3BvbnNlcyk7CiAgICAgaW5mby5hZGRIYXNoTWFwKG1fcGVu
ZGluZ1N1YnN0aXR1dGVSZXNvdXJjZXMpOwogICAgIGluZm8uYWRkSW5zdHJ1bWVudGVkSGFzaFNl
dChtX3Jlc291cmNlc0NsaWVudEtub3dzQWJvdXQpOwotICAgIGluZm8uYWRkVmVjdG9yKG1fcmVz
b3VyY2VzTG9hZGVkRnJvbU1lbW9yeUNhY2hlRm9yQ2xpZW50Tm90aWZpY2F0aW9uKTsKKyAgICBp
bmZvLmFkZE1lbWJlcihtX3Jlc291cmNlc0xvYWRlZEZyb21NZW1vcnlDYWNoZUZvckNsaWVudE5v
dGlmaWNhdGlvbik7CiAgICAgaW5mby5hZGRNZW1iZXIobV9jbGllbnRSZWRpcmVjdFNvdXJjZUZv
ckhpc3RvcnkpOwogICAgIGluZm8uYWRkTWVtYmVyKG1fbWFpblJlc291cmNlRGF0YSk7CiB9CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvTWVtb3J5Q2FjaGUuY3BwIGIv
U291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL01lbW9yeUNhY2hlLmNwcAppbmRleCA2NmQzMjAx
Li4xMmI5YjViIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvTWVtb3J5
Q2FjaGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9NZW1vcnlDYWNoZS5j
cHAKQEAgLTcyNCw3ICs3MjQsNyBAQCB2b2lkIE1lbW9yeUNhY2hlOjpyZXBvcnRNZW1vcnlVc2Fn
ZShNZW1vcnlPYmplY3RJbmZvKiBtZW1vcnlPYmplY3RJbmZvKSBjb25zdAogICAgICAgICBpbmZv
LmFkZE1lbWJlcihpLT5maXJzdCk7CiAgICAgICAgIGluZm8uYWRkTWVtYmVyKGktPnNlY29uZCk7
CiAgICAgfQotICAgIGluZm8uYWRkVmVjdG9yKG1fYWxsUmVzb3VyY2VzKTsKKyAgICBpbmZvLmFk
ZE1lbWJlcihtX2FsbFJlc291cmNlcyk7CiAgICAgaW5mby5hZGRNZW1iZXIobV9saXZlRGVjb2Rl
ZFJlc291cmNlcyk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1No
YXJlZEJ1ZmZlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TaGFyZWRCdWZmZXIuY3Bw
CmluZGV4IDY4YzMxOTYuLmY0NjNjODIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL1NoYXJlZEJ1ZmZlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2hhcmVk
QnVmZmVyLmNwcApAQCAtMjUxLDggKzI1MSw4IEBAIGNvbnN0IFZlY3RvcjxjaGFyPiYgU2hhcmVk
QnVmZmVyOjpidWZmZXIoKSBjb25zdAogdm9pZCBTaGFyZWRCdWZmZXI6OnJlcG9ydE1lbW9yeVVz
YWdlKE1lbW9yeU9iamVjdEluZm8qIG1lbW9yeU9iamVjdEluZm8pIGNvbnN0CiB7CiAgICAgTWVt
b3J5Q2xhc3NJbmZvIGluZm8obWVtb3J5T2JqZWN0SW5mbywgdGhpcyk7Ci0gICAgaW5mby5hZGRW
ZWN0b3IobV9idWZmZXIpOwotICAgIGluZm8uYWRkVmVjdG9yKG1fc2VnbWVudHMpOworICAgIGlu
Zm8uYWRkTWVtYmVyKG1fYnVmZmVyKTsKKyAgICBpbmZvLmFkZE1lbWJlcihtX3NlZ21lbnRzKTsK
ICAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgbV9zZWdtZW50cy5zaXplKCk7ICsraSkKICAg
ICAgICAgaW5mby5hZGRSYXdCdWZmZXIobV9zZWdtZW50c1tpXSwgc2VnbWVudFNpemUpOwogICAg
IGluZm8uYWRkTWVtYmVyKG1fcHVyZ2VhYmxlQnVmZmVyLmdldCgpKTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0JpdG1hcEltYWdlLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0JpdG1hcEltYWdlLmNwcAppbmRleCAwYjExNjgwLi5h
Njc4ZmZlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9CaXRt
YXBJbWFnZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvQml0bWFw
SW1hZ2UuY3BwCkBAIC01NzgsNyArNTc4LDcgQEAgdm9pZCBCaXRtYXBJbWFnZTo6cmVwb3J0TWVt
b3J5VXNhZ2UoTWVtb3J5T2JqZWN0SW5mbyogbWVtb3J5T2JqZWN0SW5mbykgY29uc3QKICAgICBJ
bWFnZTo6cmVwb3J0TWVtb3J5VXNhZ2UobWVtb3J5T2JqZWN0SW5mbyk7CiAgICAgaW5mby5hZGRN
ZW1iZXIobV9zb3VyY2UpOwogICAgIGluZm8uYWRkTWVtYmVyKG1fZnJhbWVUaW1lcik7Ci0gICAg
aW5mby5hZGRWZWN0b3IobV9mcmFtZXMpOworICAgIGluZm8uYWRkTWVtYmVyKG1fZnJhbWVzKTsK
ICAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgbV9mcmFtZUNvdW50OyArK2kpIHsKICNpZiBP
UyhXSU5DRSkgJiYgIVBMQVRGT1JNKFFUKQogICAgICAgICBpbmZvLmFkZFJhd0J1ZmZlcihtX2Zy
YW1lc1tpXS5tX2ZyYW1lLmdldCgpLCBtX2ZyYW1lc1tpXS5tX2ZyYW1lQnl0ZXMpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9Gb3JtRGF0YS5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL0Zvcm1EYXRhLmNwcAppbmRleCA0NWY3MzAyLi5j
MjUwMGUyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL0Zvcm1E
YXRhLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL0Zvcm1EYXRhLmNw
cApAQCAtMzYwLDcgKzM2MCw3IEBAIHZvaWQgRm9ybURhdGE6OnJlbW92ZUdlbmVyYXRlZEZpbGVz
SWZOZWVkZWQoKQogdm9pZCBGb3JtRGF0YTo6cmVwb3J0TWVtb3J5VXNhZ2UoTWVtb3J5T2JqZWN0
SW5mbyogbWVtb3J5T2JqZWN0SW5mbykgY29uc3QKIHsKICAgICBNZW1vcnlDbGFzc0luZm8gaW5m
byhtZW1vcnlPYmplY3RJbmZvLCB0aGlzLCBQbGF0Zm9ybU1lbW9yeVR5cGVzOjpMb2FkZXIpOwot
ICAgIGluZm8uYWRkVmVjdG9yKG1fYm91bmRhcnkpOworICAgIGluZm8uYWRkTWVtYmVyKG1fYm91
bmRhcnkpOwogfQogCiBzdGF0aWMgdm9pZCBlbmNvZGUoRW5jb2RlciYgZW5jb2RlciwgY29uc3Qg
Rm9ybURhdGFFbGVtZW50JiBlbGVtZW50KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9z
dHlsZS9SZW5kZXJTdHlsZS5jcHAKaW5kZXggMDYwMmNmYS4uODdjOTQ0ZSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGUuY3BwCkBAIC0xNjE2LDcgKzE2
MTYsNyBAQCB2b2lkIFJlbmRlclN0eWxlOjpyZXBvcnRNZW1vcnlVc2FnZShNZW1vcnlPYmplY3RJ
bmZvKiBtZW1vcnlPYmplY3RJbmZvKSBjb25zdAogICAgIC8vIEZJWE1FOiBpbmhlcml0ZWQgY29u
dGFpbnMgU3R5bGVJbWFnZSBhbmQgRm9udCBmaWVsZHMgdGhhdCBtaWdodCBuZWVkIHRvIGJlIGlu
c3RydW1lbnRlZC4KICAgICBpbmZvLmFkZE1lbWJlcihpbmhlcml0ZWQpOwogICAgIGlmIChtX2Nh
Y2hlZFBzZXVkb1N0eWxlcykKLSAgICAgICAgaW5mby5hZGRWZWN0b3JQdHIobV9jYWNoZWRQc2V1
ZG9TdHlsZXMuZ2V0KCkpOworICAgICAgICBpbmZvLmFkZE1lbWJlcihtX2NhY2hlZFBzZXVkb1N0
eWxlcy5nZXQoKSk7CiAjaWYgRU5BQkxFKFNWRykKICAgICBpbmZvLmFkZE1lbWJlcihtX3N2Z1N0
eWxlKTsKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxl
L1N0eWxlUmFyZU5vbkluaGVyaXRlZERhdGEuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L3N0eWxlL1N0eWxlUmFyZU5vbkluaGVyaXRlZERhdGEuY3BwCmluZGV4IGJiZTA3YmYuLjViNWE3
ZDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9TdHlsZVJhcmVO
b25Jbmhlcml0ZWREYXRhLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUv
U3R5bGVSYXJlTm9uSW5oZXJpdGVkRGF0YS5jcHAKQEAgLTMwNiw3ICszMDYsNyBAQCB2b2lkIFN0
eWxlUmFyZU5vbkluaGVyaXRlZERhdGE6OnJlcG9ydE1lbW9yeVVzYWdlKE1lbW9yeU9iamVjdElu
Zm8qIG1lbW9yeU9iamVjdAogewogICAgIE1lbW9yeUNsYXNzSW5mbyBpbmZvKG1lbW9yeU9iamVj
dEluZm8sIHRoaXMsIFdlYkNvcmVNZW1vcnlUeXBlczo6Q1NTKTsKICNpZiBFTkFCTEUoREFTSEJP
QVJEX1NVUFBPUlQpCi0gICAgaW5mby5hZGRWZWN0b3IobV9kYXNoYm9hcmRSZWdpb25zKTsKKyAg
ICBpbmZvLmFkZE1lbWJlcihtX2Rhc2hib2FyZFJlZ2lvbnMpOwogI2VuZGlmCiAgICAgaW5mby5h
ZGRNZW1iZXIobV9kZXByZWNhdGVkRmxleGlibGVCb3gpOwogICAgIGluZm8uYWRkTWVtYmVyKG1f
ZmxleGlibGVCb3gpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VM
b2cgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwppbmRleCA4NTFlNDM5Li5mODBi
NThhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZworKysgYi9T
b3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE3IEBACisyMDEyLTA5
LTEzICBZdXJ5IFNlbWlraGF0c2t5ICA8eXVyeXNAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFdl
YiBJbnNwZWN0b3I6IG1vdmUgVmVjdG9yIG1lbW9yeSBpbnN0cnVtZW50YXRpb24gdG8gVmVjdG9y
LmgKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTk2NjUw
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkZWQg
dW5pdCB0ZXN0cyBmb3IgVmVjdG9yIG1lbW9yeSBpbnN0cnVtZW50YXRpb24uCisKKyAgICAgICAg
KiB0ZXN0cy9NZW1vcnlJbnN0cnVtZW50YXRpb25UZXN0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
Okluc3RydW1lbnRlZE93bmVyOjpJbnN0cnVtZW50ZWRPd25lcik6CisgICAgICAgIChXZWJDb3Jl
OjpURVNUKToKKyAgICAgICAgKFdlYkNvcmUpOgorCiAyMDEyLTA5LTE3ICBCcmlhbiBBbmRlcnNv
biAgPGJyaWFuZGVyc29uQGNocm9taXVtLm9yZz4KIAogICAgICAgICBbY2hyb21pdW1dIEFkZCBy
ZW5kZXJpbmcgY29tbWl0IHN0YXRpc3RpY3MKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hy
b21pdW0vdGVzdHMvTWVtb3J5SW5zdHJ1bWVudGF0aW9uVGVzdC5jcHAgYi9Tb3VyY2UvV2ViS2l0
L2Nocm9taXVtL3Rlc3RzL01lbW9yeUluc3RydW1lbnRhdGlvblRlc3QuY3BwCmluZGV4IDRhY2Y0
OTYuLjIyMjMyNDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMvTWVt
b3J5SW5zdHJ1bWVudGF0aW9uVGVzdC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS90
ZXN0cy9NZW1vcnlJbnN0cnVtZW50YXRpb25UZXN0LmNwcApAQCAtMjMzLDggKzIzMyw5IEBAIFRF
U1QoTWVtb3J5SW5zdHJ1bWVudGF0aW9uVGVzdCwgdmlzaXRGaXJzdE1lbWJlckluTm9uVmlydHVh
bENsYXNzKQogdGVtcGxhdGU8dHlwZW5hbWUgVD4KIGNsYXNzIEluc3RydW1lbnRlZE93bmVyIHsK
IHB1YmxpYzoKKyAgICBJbnN0cnVtZW50ZWRPd25lcigpIHsgfQogICAgIHRlbXBsYXRlPHR5cGVu
YW1lIFY+Ci0gICAgSW5zdHJ1bWVudGVkT3duZXIoY29uc3QgViYgdmFsdWUpIDogbV92YWx1ZSh2
YWx1ZSkgeyB9CisgICAgZXhwbGljaXQgSW5zdHJ1bWVudGVkT3duZXIoY29uc3QgViYgdmFsdWUp
IDogbV92YWx1ZSh2YWx1ZSkgeyB9CiAgICAgdm9pZCByZXBvcnRNZW1vcnlVc2FnZShNZW1vcnlP
YmplY3RJbmZvKiBtZW1vcnlPYmplY3RJbmZvKSBjb25zdAogICAgIHsKICAgICAgICAgTWVtb3J5
Q2xhc3NJbmZvIGluZm8obWVtb3J5T2JqZWN0SW5mbywgdGhpcywgV2ViQ29yZU1lbW9yeVR5cGVz
OjpET00pOwpAQCAtMzY3LDUgKzM2OCwzNiBAQCBURVNUKE1lbW9yeUluc3RydW1lbnRhdGlvblRl
c3QsIGRldGVjdFJlcG9ydE1lbW9yeVVzYWdlTWV0aG9kKQogICAgIH0KIH0KIAorVEVTVChNZW1v
cnlJbnN0cnVtZW50YXRpb25UZXN0LCB2ZWN0b3JaZXJvSW5saW5lQ2FwYWNpdHkpCit7CisgICAg
VmlzaXRlZE9iamVjdHMgdmlzaXRlZE9iamVjdHM7CisgICAgTWVtb3J5SW5zdHJ1bWVudGF0aW9u
SW1wbCBpbXBsKHZpc2l0ZWRPYmplY3RzKTsKKyAgICBJbnN0cnVtZW50ZWRPd25lcjxWZWN0b3I8
aW50PiA+IHZlY3Rvck93bmVyKDE2KTsKKyAgICBpbXBsLmFkZFJvb3RPYmplY3QodmVjdG9yT3du
ZXIpOworICAgIEVYUEVDVF9FUSgxNiAqIHNpemVvZihpbnQpLCBpbXBsLnJlcG9ydGVkU2l6ZUZv
ckFsbFR5cGVzKCkpOworICAgIEVYUEVDVF9FUSgxLCB2aXNpdGVkT2JqZWN0cy5zaXplKCkpOwor
fQorCitURVNUKE1lbW9yeUluc3RydW1lbnRhdGlvblRlc3QsIHZlY3RvcldpdGhJbmxpbmVDYXBh
Y2l0eTEpCit7CisgICAgVmlzaXRlZE9iamVjdHMgdmlzaXRlZE9iamVjdHM7CisgICAgTWVtb3J5
SW5zdHJ1bWVudGF0aW9uSW1wbCBpbXBsKHZpc2l0ZWRPYmplY3RzKTsKKyAgICBJbnN0cnVtZW50
ZWRPd25lcjxWZWN0b3I8aW50LCA0PiA+IHZlY3Rvck93bmVyOworICAgIGltcGwuYWRkUm9vdE9i
amVjdCh2ZWN0b3JPd25lcik7CisgICAgRVhQRUNUX0VRKHN0YXRpY19jYXN0PHNpemVfdD4oMCks
IGltcGwucmVwb3J0ZWRTaXplRm9yQWxsVHlwZXMoKSk7CisgICAgRVhQRUNUX0VRKDAsIHZpc2l0
ZWRPYmplY3RzLnNpemUoKSk7Cit9CisKK1RFU1QoTWVtb3J5SW5zdHJ1bWVudGF0aW9uVGVzdCwg
dmVjdG9yV2l0aElubGluZUNhcGFjaXR5MikKK3sKKyAgICBWaXNpdGVkT2JqZWN0cyB2aXNpdGVk
T2JqZWN0czsKKyAgICBNZW1vcnlJbnN0cnVtZW50YXRpb25JbXBsIGltcGwodmlzaXRlZE9iamVj
dHMpOworICAgIEluc3RydW1lbnRlZE93bmVyPFZlY3RvcjxpbnQsIDQ+ID4gdmVjdG9yT3duZXI7
CisgICAgdmVjdG9yT3duZXIubV92YWx1ZS5yZXNlcnZlQ2FwYWNpdHkoOCk7CisgICAgaW1wbC5h
ZGRSb290T2JqZWN0KHZlY3Rvck93bmVyKTsKKyAgICBFWFBFQ1RfRVEoOCAqIHNpemVvZihpbnQp
LCBpbXBsLnJlcG9ydGVkU2l6ZUZvckFsbFR5cGVzKCkpOworICAgIEVYUEVDVF9FUSgxLCB2aXNp
dGVkT2JqZWN0cy5zaXplKCkpOworfQorCiB9IC8vIG5hbWVzcGFjZQogCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>164518</attachid>
            <date>2012-09-18 02:10:31 -0700</date>
            <delta_ts>2012-09-19 08:34:55 -0700</delta_ts>
            <desc>Patch with tests for heap allocated vector</desc>
            <filename>vector-instrumentation.patch</filename>
            <type>text/plain</type>
            <size>25183</size>
            <attacher name="Yury Semikhatsky">yurys</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nIGIvU291cmNlL1dURi9DaGFuZ2VMb2cK
aW5kZXggMDgzNmM4ZS4uMDVlOGFiNSAxMDA2NDQKLS0tIGEvU291cmNlL1dURi9DaGFuZ2VMb2cK
KysrIGIvU291cmNlL1dURi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyOCBAQAorMjAxMi0wOS0xMyAg
WXVyeSBTZW1pa2hhdHNreSAgPHl1cnlzQGNocm9taXVtLm9yZz4KKworICAgICAgICBXZWIgSW5z
cGVjdG9yOiBtb3ZlIFZlY3RvciBtZW1vcnkgaW5zdHJ1bWVudGF0aW9uIHRvIFZlY3Rvci5oCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05NjY1MAorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZGVkIHJlcG9y
dE1lbW9yeVVzYWdlIG1ldGhvZCB0byBWZWN0b3IgYW5kIGl0cyBidWZmZXIgaW1wbGVtZW50YXRp
b25zLgorCisgICAgICAgICogd3RmL01lbW9yeUluc3RydW1lbnRhdGlvbi5oOgorICAgICAgICAo
TWVtb3J5SW5zdHJ1bWVudGF0aW9uKToKKyAgICAgICAgKFdURjo6TWVtb3J5Q2xhc3NJbmZvOjph
ZGRJbnN0cnVtZW50ZWRWZWN0b3IpOiB0aGVzZSBtZXRob2RzIHdpbGwgYmUgcmVtb3ZlZAorICAg
ICAgICBzb29uIHdoZW4gd2UgZXh0ZW5kIHRoZSBBUEkgc28gdGhhdCB3ZSBjYW4gc3BlY2lmeSBp
ZiB2ZWN0b3IgdmFsdWVzIGFyZQorICAgICAgICBpbnN0cnVtZW50ZWQgb3Igbm90LgorICAgICAg
ICAoV1RGOjpNZW1vcnlDbGFzc0luZm86OmFkZEluc3RydW1lbnRlZFZlY3RvclB0cik6CisgICAg
ICAgIChXVEY6Ok1lbW9yeUluc3RydW1lbnRhdGlvbjo6YWRkSW5zdHJ1bWVudGVkQ29sbGVjdGlv
bik6CisgICAgICAgIChXVEYpOgorICAgICAgICAoV1RGOjpNZW1vcnlJbnN0cnVtZW50YXRpb246
OmFkZEluc3RydW1lbnRlZENvbGxlY3Rpb25WYWx1ZXMpOgorICAgICAgICAqIHd0Zi9WZWN0b3Iu
aDoKKyAgICAgICAgKFZlY3RvckJ1ZmZlcik6CisgICAgICAgIChXVEY6OlZlY3RvckJ1ZmZlcjo6
cmVwb3J0TWVtb3J5VXNhZ2UpOgorICAgICAgICAoVmVjdG9yKToKKyAgICAgICAgKFdURjo6Ojpy
ZXBvcnRNZW1vcnlVc2FnZSk6CisgICAgICAgIChXVEYpOgorCiAyMDEyLTA5LTE3ICBHbGVubiBB
ZGFtcyAgPGdsZW5uQHNreW5hdi5jb20+CiAKICAgICAgICAgSW5jbHVkaW5nIEhleE51bWJlci5o
IGZhaWxzIGJ1aWxkIGlmIGhleERpZ2l0c0Zvck1vZGUgaXMgbm90IHJlZmVyZW5jZWQKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XVEYvd3RmL01lbW9yeUluc3RydW1lbnRhdGlvbi5oIGIvU291cmNlL1dU
Ri93dGYvTWVtb3J5SW5zdHJ1bWVudGF0aW9uLmgKaW5kZXggMTMxYWY4NC4uYzkwMDRmYiAxMDA2
NDQKLS0tIGEvU291cmNlL1dURi93dGYvTWVtb3J5SW5zdHJ1bWVudGF0aW9uLmgKKysrIGIvU291
cmNlL1dURi93dGYvTWVtb3J5SW5zdHJ1bWVudGF0aW9uLmgKQEAgLTE0NSwxMCArMTQ1LDEwIEBA
IHByaXZhdGU6CiAgICAgdGVtcGxhdGU8dHlwZW5hbWUgSGFzaE1hcFR5cGU+IHZvaWQgYWRkSGFz
aE1hcChjb25zdCBIYXNoTWFwVHlwZSYsIE1lbW9yeU9iamVjdFR5cGUsIGJvb2wgY29udGVudE9u
bHkgPSBmYWxzZSk7CiAgICAgdGVtcGxhdGU8dHlwZW5hbWUgSGFzaFNldFR5cGU+IHZvaWQgYWRk
SGFzaFNldChjb25zdCBIYXNoU2V0VHlwZSYsIE1lbW9yeU9iamVjdFR5cGUsIGJvb2wgY29udGVu
dE9ubHkgPSBmYWxzZSk7CiAgICAgdGVtcGxhdGU8dHlwZW5hbWUgQ29sbGVjdGlvblR5cGU+IHZv
aWQgYWRkSW5zdHJ1bWVudGVkQ29sbGVjdGlvbihjb25zdCBDb2xsZWN0aW9uVHlwZSYsIE1lbW9y
eU9iamVjdFR5cGUsIGJvb2wgY29udGVudE9ubHkgPSBmYWxzZSk7CisgICAgdGVtcGxhdGU8dHlw
ZW5hbWUgQ29sbGVjdGlvblR5cGU+IHZvaWQgYWRkSW5zdHJ1bWVudGVkQ29sbGVjdGlvblZhbHVl
cyhjb25zdCBDb2xsZWN0aW9uVHlwZSYsIE1lbW9yeU9iamVjdFR5cGUpOwogICAgIHRlbXBsYXRl
PHR5cGVuYW1lIE1hcFR5cGU+IHZvaWQgYWRkSW5zdHJ1bWVudGVkTWFwRW50cmllcyhjb25zdCBN
YXBUeXBlJiwgTWVtb3J5T2JqZWN0VHlwZSk7CiAgICAgdGVtcGxhdGU8dHlwZW5hbWUgTWFwVHlw
ZT4gdm9pZCBhZGRJbnN0cnVtZW50ZWRNYXBWYWx1ZXMoY29uc3QgTWFwVHlwZSYsIE1lbW9yeU9i
amVjdFR5cGUpOwogICAgIHRlbXBsYXRlPHR5cGVuYW1lIExpc3RIYXNoU2V0VHlwZT4gdm9pZCBh
ZGRMaXN0SGFzaFNldChjb25zdCBMaXN0SGFzaFNldFR5cGUmLCBNZW1vcnlPYmplY3RUeXBlLCBi
b29sIGNvbnRlbnRPbmx5ID0gZmFsc2UpOwotICAgIHRlbXBsYXRlPHR5cGVuYW1lIFZlY3RvclR5
cGU+IHZvaWQgYWRkVmVjdG9yKGNvbnN0IFZlY3RvclR5cGUmLCBNZW1vcnlPYmplY3RUeXBlLCBi
b29sIGNvbnRlbnRPbmx5ID0gZmFsc2UpOwogICAgIHZvaWQgYWRkUmF3QnVmZmVyKGNvbnN0IHZv
aWQqIGNvbnN0JiBidWZmZXIsIE1lbW9yeU9iamVjdFR5cGUgb3duZXJPYmplY3RUeXBlLCBzaXpl
X3Qgc2l6ZSkKICAgICB7CiAgICAgICAgIGlmICghYnVmZmVyIHx8IHZpc2l0ZWQoYnVmZmVyKSkK
QEAgLTE5NCwxNCArMTk0LDI0IEBAIHB1YmxpYzoKICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBIYXNo
U2V0VHlwZT4gdm9pZCBhZGRIYXNoU2V0KGNvbnN0IEhhc2hTZXRUeXBlJiBzZXQpIHsgbV9tZW1v
cnlJbnN0cnVtZW50YXRpb24tPmFkZEhhc2hTZXQoc2V0LCBtX29iamVjdFR5cGUsIHRydWUpOyB9
CiAgICAgdGVtcGxhdGU8dHlwZW5hbWUgSGFzaFNldFR5cGU+IHZvaWQgYWRkSGFzaENvdW50ZWRT
ZXQoY29uc3QgSGFzaFNldFR5cGUmIHNldCkgeyBtX21lbW9yeUluc3RydW1lbnRhdGlvbi0+YWRk
SGFzaFNldChzZXQsIG1fb2JqZWN0VHlwZSwgdHJ1ZSk7IH0KICAgICB0ZW1wbGF0ZTx0eXBlbmFt
ZSBIYXNoU2V0VHlwZT4gdm9pZCBhZGRJbnN0cnVtZW50ZWRIYXNoU2V0KGNvbnN0IEhhc2hTZXRU
eXBlJiBzZXQpIHsgbV9tZW1vcnlJbnN0cnVtZW50YXRpb24tPmFkZEluc3RydW1lbnRlZENvbGxl
Y3Rpb24oc2V0LCBtX29iamVjdFR5cGUsIHRydWUpOyB9Ci0gICAgdGVtcGxhdGU8dHlwZW5hbWUg
VmVjdG9yVHlwZT4gdm9pZCBhZGRJbnN0cnVtZW50ZWRWZWN0b3IoY29uc3QgVmVjdG9yVHlwZSYg
dmVjdG9yKSB7IG1fbWVtb3J5SW5zdHJ1bWVudGF0aW9uLT5hZGRJbnN0cnVtZW50ZWRDb2xsZWN0
aW9uKHZlY3RvciwgbV9vYmplY3RUeXBlLCB0cnVlKTsgfQotICAgIHRlbXBsYXRlPHR5cGVuYW1l
IFZlY3RvclR5cGU+IHZvaWQgYWRkSW5zdHJ1bWVudGVkVmVjdG9yUHRyKGNvbnN0IE93blB0cjxW
ZWN0b3JUeXBlPiYgdmVjdG9yKSB7IG1fbWVtb3J5SW5zdHJ1bWVudGF0aW9uLT5hZGRJbnN0cnVt
ZW50ZWRDb2xsZWN0aW9uKCp2ZWN0b3IsIG1fb2JqZWN0VHlwZSwgZmFsc2UpOyB9Ci0gICAgdGVt
cGxhdGU8dHlwZW5hbWUgVmVjdG9yVHlwZT4gdm9pZCBhZGRJbnN0cnVtZW50ZWRWZWN0b3JQdHIo
Y29uc3QgVmVjdG9yVHlwZSogY29uc3QmIHZlY3RvcikgeyBtX21lbW9yeUluc3RydW1lbnRhdGlv
bi0+YWRkSW5zdHJ1bWVudGVkQ29sbGVjdGlvbigqdmVjdG9yLCBtX29iamVjdFR5cGUsIGZhbHNl
KTsgfQorICAgIHRlbXBsYXRlPHR5cGVuYW1lIFZlY3RvclR5cGU+IHZvaWQgYWRkSW5zdHJ1bWVu
dGVkVmVjdG9yKGNvbnN0IFZlY3RvclR5cGUmIHZlY3RvcikKKyAgICB7CisgICAgICAgIGFkZE1l
bWJlcih2ZWN0b3IpOworICAgICAgICBtX21lbW9yeUluc3RydW1lbnRhdGlvbi0+YWRkSW5zdHJ1
bWVudGVkQ29sbGVjdGlvblZhbHVlcyh2ZWN0b3IsIG1fb2JqZWN0VHlwZSk7CisgICAgfQorICAg
IHRlbXBsYXRlPHR5cGVuYW1lIFZlY3RvclR5cGU+IHZvaWQgYWRkSW5zdHJ1bWVudGVkVmVjdG9y
UHRyKGNvbnN0IE93blB0cjxWZWN0b3JUeXBlPiYgdmVjdG9yKQorICAgIHsKKyAgICAgICAgYWRk
TWVtYmVyKHZlY3Rvcik7CisgICAgICAgIG1fbWVtb3J5SW5zdHJ1bWVudGF0aW9uLT5hZGRJbnN0
cnVtZW50ZWRDb2xsZWN0aW9uVmFsdWVzKCp2ZWN0b3IsIG1fb2JqZWN0VHlwZSk7CisgICAgfQor
ICAgIHRlbXBsYXRlPHR5cGVuYW1lIFZlY3RvclR5cGU+IHZvaWQgYWRkSW5zdHJ1bWVudGVkVmVj
dG9yUHRyKGNvbnN0IFZlY3RvclR5cGUqIGNvbnN0JiB2ZWN0b3IpCisgICAgeworICAgICAgICBh
ZGRNZW1iZXIodmVjdG9yKTsKKyAgICAgICAgbV9tZW1vcnlJbnN0cnVtZW50YXRpb24tPmFkZElu
c3RydW1lbnRlZENvbGxlY3Rpb25WYWx1ZXMoKnZlY3RvciwgbV9vYmplY3RUeXBlKTsKKyAgICB9
CiAgICAgdGVtcGxhdGU8dHlwZW5hbWUgTWFwVHlwZT4gdm9pZCBhZGRJbnN0cnVtZW50ZWRNYXBF
bnRyaWVzKGNvbnN0IE1hcFR5cGUmIG1hcCkgeyBtX21lbW9yeUluc3RydW1lbnRhdGlvbi0+YWRk
SW5zdHJ1bWVudGVkTWFwRW50cmllcyhtYXAsIG1fb2JqZWN0VHlwZSk7IH0KICAgICB0ZW1wbGF0
ZTx0eXBlbmFtZSBNYXBUeXBlPiB2b2lkIGFkZEluc3RydW1lbnRlZE1hcFZhbHVlcyhjb25zdCBN
YXBUeXBlJiBtYXApIHsgbV9tZW1vcnlJbnN0cnVtZW50YXRpb24tPmFkZEluc3RydW1lbnRlZE1h
cFZhbHVlcyhtYXAsIG1fb2JqZWN0VHlwZSk7IH0KICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBMaXN0
SGFzaFNldFR5cGU+IHZvaWQgYWRkTGlzdEhhc2hTZXQoY29uc3QgTGlzdEhhc2hTZXRUeXBlJiBz
ZXQpIHsgbV9tZW1vcnlJbnN0cnVtZW50YXRpb24tPmFkZExpc3RIYXNoU2V0KHNldCwgbV9vYmpl
Y3RUeXBlLCB0cnVlKTsgfQotICAgIHRlbXBsYXRlPHR5cGVuYW1lIFZlY3RvclR5cGU+IHZvaWQg
YWRkVmVjdG9yKGNvbnN0IFZlY3RvclR5cGUmIHZlY3RvcikgeyBtX21lbW9yeUluc3RydW1lbnRh
dGlvbi0+YWRkVmVjdG9yKHZlY3RvciwgbV9vYmplY3RUeXBlLCB0cnVlKTsgfQotICAgIHRlbXBs
YXRlPHR5cGVuYW1lIFZlY3RvclR5cGU+IHZvaWQgYWRkVmVjdG9yUHRyKGNvbnN0IFZlY3RvclR5
cGUqIGNvbnN0IHZlY3RvcikgeyBtX21lbW9yeUluc3RydW1lbnRhdGlvbi0+YWRkVmVjdG9yKCp2
ZWN0b3IsIG1fb2JqZWN0VHlwZSwgZmFsc2UpOyB9CiAgICAgdm9pZCBhZGRSYXdCdWZmZXIoY29u
c3Qgdm9pZCogY29uc3QmIGJ1ZmZlciwgc2l6ZV90IHNpemUpIHsgbV9tZW1vcnlJbnN0cnVtZW50
YXRpb24tPmFkZFJhd0J1ZmZlcihidWZmZXIsIG1fb2JqZWN0VHlwZSwgc2l6ZSk7IH0KIAogICAg
IHZvaWQgYWRkV2Vha1BvaW50ZXIodm9pZCopIHsgfQpAQCAtMjYzLDYgKzI3MywxMiBAQCB2b2lk
IE1lbW9yeUluc3RydW1lbnRhdGlvbjo6YWRkSW5zdHJ1bWVudGVkQ29sbGVjdGlvbihjb25zdCBD
b2xsZWN0aW9uVHlwZSYgY29sbAogICAgIGlmICh2aXNpdGVkKCZjb2xsZWN0aW9uKSkKICAgICAg
ICAgcmV0dXJuOwogICAgIGNvdW50T2JqZWN0U2l6ZShvd25lck9iamVjdFR5cGUsIGNhbGN1bGF0
ZUNvbnRhaW5lclNpemUoY29sbGVjdGlvbiwgY29udGVudE9ubHkpKTsKKyAgICBhZGRJbnN0cnVt
ZW50ZWRDb2xsZWN0aW9uVmFsdWVzKGNvbGxlY3Rpb24sIG93bmVyT2JqZWN0VHlwZSk7Cit9CisK
K3RlbXBsYXRlPHR5cGVuYW1lIENvbGxlY3Rpb25UeXBlPgordm9pZCBNZW1vcnlJbnN0cnVtZW50
YXRpb246OmFkZEluc3RydW1lbnRlZENvbGxlY3Rpb25WYWx1ZXMoY29uc3QgQ29sbGVjdGlvblR5
cGUmIGNvbGxlY3Rpb24sIE1lbW9yeU9iamVjdFR5cGUgb3duZXJPYmplY3RUeXBlKQorewogICAg
IHR5cGVuYW1lIENvbGxlY3Rpb25UeXBlOjpjb25zdF9pdGVyYXRvciBlbmQgPSBjb2xsZWN0aW9u
LmVuZCgpOwogICAgIGZvciAodHlwZW5hbWUgQ29sbGVjdGlvblR5cGU6OmNvbnN0X2l0ZXJhdG9y
IGkgPSBjb2xsZWN0aW9uLmJlZ2luKCk7IGkgIT0gZW5kOyArK2kpCiAgICAgICAgIGFkZE9iamVj
dCgqaSwgb3duZXJPYmplY3RUeXBlKTsKQEAgLTI5NSwxNCArMzExLDYgQEAgdm9pZCBNZW1vcnlJ
bnN0cnVtZW50YXRpb246OmFkZExpc3RIYXNoU2V0KGNvbnN0IExpc3RIYXNoU2V0VHlwZSYgaGFz
aFNldCwgTWVtb3IKICAgICBjb3VudE9iamVjdFNpemUob3duZXJPYmplY3RUeXBlLCBzaXplKTsK
IH0KIAotdGVtcGxhdGU8dHlwZW5hbWUgVmVjdG9yVHlwZT4KLXZvaWQgTWVtb3J5SW5zdHJ1bWVu
dGF0aW9uOjphZGRWZWN0b3IoY29uc3QgVmVjdG9yVHlwZSYgdmVjdG9yLCBNZW1vcnlPYmplY3RU
eXBlIG93bmVyT2JqZWN0VHlwZSwgYm9vbCBjb250ZW50T25seSkKLXsKLSAgICBpZiAoIXZlY3Rv
ci5kYXRhKCkgfHwgdmlzaXRlZCh2ZWN0b3IuZGF0YSgpKSkKLSAgICAgICAgcmV0dXJuOwotICAg
IGNvdW50T2JqZWN0U2l6ZShvd25lck9iamVjdFR5cGUsIGNhbGN1bGF0ZUNvbnRhaW5lclNpemUo
dmVjdG9yLCBjb250ZW50T25seSkpOwotfQotCiB0ZW1wbGF0ZTx0eXBlbmFtZSBDb250YWluZXI+
CiBzaXplX3QgTWVtb3J5SW5zdHJ1bWVudGF0aW9uOjpjYWxjdWxhdGVDb250YWluZXJTaXplKGNv
bnN0IENvbnRhaW5lciYgY29udGFpbmVyLCBib29sIGNvbnRlbnRPbmx5KQogewpkaWZmIC0tZ2l0
IGEvU291cmNlL1dURi93dGYvVmVjdG9yLmggYi9Tb3VyY2UvV1RGL3d0Zi9WZWN0b3IuaAppbmRl
eCA4YTVlYWY2Li5jZGM4OWMyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9WZWN0b3IuaAor
KysgYi9Tb3VyY2UvV1RGL3d0Zi9WZWN0b3IuaApAQCAtMzgyLDYgKzM4MiwxMyBAQCBuYW1lc3Bh
Y2UgV1RGIHsKICAgICAgICAgCiAgICAgICAgIHZvaWQgcmVzdG9yZUlubGluZUJ1ZmZlcklmTmVl
ZGVkKCkgeyB9CiAKKyAgICAgICAgdGVtcGxhdGU8dHlwZW5hbWUgTWVtb3J5T2JqZWN0SW5mbz4K
KyAgICAgICAgdm9pZCByZXBvcnRNZW1vcnlVc2FnZShNZW1vcnlPYmplY3RJbmZvKiBtZW1vcnlP
YmplY3RJbmZvKSBjb25zdAorICAgICAgICB7CisgICAgICAgICAgICB0eXBlbmFtZSBNZW1vcnlP
YmplY3RJbmZvOjpDbGFzc0luZm8gaW5mbyhtZW1vcnlPYmplY3RJbmZvLCB0aGlzKTsKKyAgICAg
ICAgICAgIGluZm8uYWRkUmF3QnVmZmVyKG1fYnVmZmVyLCBtX2NhcGFjaXR5ICogc2l6ZW9mKFQp
KTsKKyAgICAgICAgfQorCiAgICAgICAgIHVzaW5nIEJhc2U6OmFsbG9jYXRlQnVmZmVyOwogICAg
ICAgICB1c2luZyBCYXNlOjp0cnlBbGxvY2F0ZUJ1ZmZlcjsKICAgICAgICAgdXNpbmcgQmFzZTo6
c2hvdWxkUmVhbGxvY2F0ZUJ1ZmZlcjsKQEAgLTUwMCw2ICs1MDcsMTQgQEAgbmFtZXNwYWNlIFdU
RiB7CiAgICAgICAgICAgICByZXR1cm4gQmFzZTo6cmVsZWFzZUJ1ZmZlcigpOwogICAgICAgICB9
CiAKKyAgICAgICAgdGVtcGxhdGU8dHlwZW5hbWUgTWVtb3J5T2JqZWN0SW5mbz4KKyAgICAgICAg
dm9pZCByZXBvcnRNZW1vcnlVc2FnZShNZW1vcnlPYmplY3RJbmZvKiBtZW1vcnlPYmplY3RJbmZv
KSBjb25zdAorICAgICAgICB7CisgICAgICAgICAgICB0eXBlbmFtZSBNZW1vcnlPYmplY3RJbmZv
OjpDbGFzc0luZm8gaW5mbyhtZW1vcnlPYmplY3RJbmZvLCB0aGlzKTsKKyAgICAgICAgICAgIGlm
IChtX2NhcGFjaXR5ID4gaW5saW5lQ2FwYWNpdHkpCisgICAgICAgICAgICAgICAgaW5mby5hZGRS
YXdCdWZmZXIobV9idWZmZXIsIG1fY2FwYWNpdHkgKiBzaXplb2YoVCkpOworICAgICAgICB9CisK
ICAgICBwcml2YXRlOgogICAgICAgICB1c2luZyBCYXNlOjptX2J1ZmZlcjsKICAgICAgICAgdXNp
bmcgQmFzZTo6bV9jYXBhY2l0eTsKQEAgLTY2Myw2ICs2NzgsOCBAQCBuYW1lc3BhY2UgV1RGIHsK
IAogICAgICAgICB2b2lkIGNoZWNrQ29uc2lzdGVuY3koKTsKIAorICAgICAgICB0ZW1wbGF0ZTx0
eXBlbmFtZSBNZW1vcnlPYmplY3RJbmZvPiB2b2lkIHJlcG9ydE1lbW9yeVVzYWdlKE1lbW9yeU9i
amVjdEluZm8qKSBjb25zdDsKKwogICAgIHByaXZhdGU6CiAgICAgICAgIHZvaWQgZXhwYW5kQ2Fw
YWNpdHkoc2l6ZV90IG5ld01pbkNhcGFjaXR5KTsKICAgICAgICAgY29uc3QgVCogZXhwYW5kQ2Fw
YWNpdHkoc2l6ZV90IG5ld01pbkNhcGFjaXR5LCBjb25zdCBUKik7CkBAIC0xMjU2LDYgKzEyNzMs
MTQgQEAgbmFtZXNwYWNlIFdURiB7CiAgICAgfTsKICNlbmRpZgogCisgICAgdGVtcGxhdGU8dHlw
ZW5hbWUgVCwgc2l6ZV90IGlubGluZUNhcGFjaXR5PgorICAgIHRlbXBsYXRlPHR5cGVuYW1lIE1l
bW9yeU9iamVjdEluZm8+CisgICAgdm9pZCBWZWN0b3I8VCwgaW5saW5lQ2FwYWNpdHk+OjpyZXBv
cnRNZW1vcnlVc2FnZShNZW1vcnlPYmplY3RJbmZvKiBtZW1vcnlPYmplY3RJbmZvKSBjb25zdAor
ICAgIHsKKyAgICAgICAgdHlwZW5hbWUgTWVtb3J5T2JqZWN0SW5mbzo6Q2xhc3NJbmZvIGluZm8o
bWVtb3J5T2JqZWN0SW5mbywgdGhpcyk7CisgICAgICAgIGluZm8uYWRkTWVtYmVyKG1fYnVmZmVy
KTsKKyAgICB9CisKIH0gLy8gbmFtZXNwYWNlIFdURgogCiB1c2luZyBXVEY6OlZlY3RvcjsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwppbmRleCBmYTIzODQ2Li43MzFiODc0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNDEgQEAK
KzIwMTItMDktMTMgIFl1cnkgU2VtaWtoYXRza3kgIDx5dXJ5c0BjaHJvbWl1bS5vcmc+CisKKyAg
ICAgICAgV2ViIEluc3BlY3RvcjogbW92ZSBWZWN0b3IgbWVtb3J5IGluc3RydW1lbnRhdGlvbiB0
byBWZWN0b3IuaAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9OTY2NTAKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICBVcGRhdGVkIGluc3RydW1lbnRlZCBjbGFzc2VzIHRvIG1hdGNoIG5ldyBhcHByb2FjaCB0byBW
ZWN0b3IgbWVtb3J5CisgICAgICAgIGluc3RydW1lbnRhdGlvbi4KKworICAgICAgICAqIGJpbmRp
bmdzL3Y4L1Y4UGVySXNvbGF0ZURhdGEuY3BwOgorICAgICAgICAoV2ViQ29yZTo6VjhQZXJJc29s
YXRlRGF0YTo6cmVwb3J0TWVtb3J5VXNhZ2UpOgorICAgICAgICAqIGNzcy9TdHlsZVByb3BlcnR5
U2V0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlN0eWxlUHJvcGVydHlTZXQ6OnJlcG9ydE1lbW9y
eVVzYWdlKToKKyAgICAgICAgKiBjc3MvU3R5bGVSZXNvbHZlci5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpTdHlsZVJlc29sdmVyOjpGZWF0dXJlczo6cmVwb3J0TWVtb3J5VXNhZ2UpOgorICAgICAg
ICAoV2ViQ29yZTo6U3R5bGVSZXNvbHZlcjo6Y29sbGVjdE1hdGNoaW5nUnVsZXNGb3JMaXN0KToK
KyAgICAgICAgKiBjc3MvU3R5bGVTaGVldENvbnRlbnRzLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OlN0eWxlU2hlZXRDb250ZW50czo6cmVwb3J0TWVtb3J5VXNhZ2UpOgorICAgICAgICAqIGRvbS9E
b2N1bWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudDo6cmVwb3J0TWVtb3J5VXNh
Z2UpOgorICAgICAgICAqIGRvbS9FbGVtZW50QXR0cmlidXRlRGF0YS5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpFbGVtZW50QXR0cmlidXRlRGF0YTo6cmVwb3J0TWVtb3J5VXNhZ2UpOgorICAgICAg
ICAqIGxvYWRlci9Eb2N1bWVudExvYWRlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVu
dExvYWRlcjo6cmVwb3J0TWVtb3J5VXNhZ2UpOgorICAgICAgICAqIGxvYWRlci9jYWNoZS9NZW1v
cnlDYWNoZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpNZW1vcnlDYWNoZTo6cmVwb3J0TWVtb3J5
VXNhZ2UpOgorICAgICAgICAqIHBsYXRmb3JtL1NoYXJlZEJ1ZmZlci5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpTaGFyZWRCdWZmZXI6OnJlcG9ydE1lbW9yeVVzYWdlKToKKyAgICAgICAgKiBwbGF0
Zm9ybS9ncmFwaGljcy9CaXRtYXBJbWFnZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpCaXRtYXBJ
bWFnZTo6cmVwb3J0TWVtb3J5VXNhZ2UpOgorICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsvRm9y
bURhdGEuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Rm9ybURhdGE6OnJlcG9ydE1lbW9yeVVzYWdl
KToKKyAgICAgICAgKiByZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGUuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6UmVuZGVyU3R5bGU6OnJlcG9ydE1lbW9yeVVzYWdlKToKKyAgICAgICAgKiByZW5k
ZXJpbmcvc3R5bGUvU3R5bGVSYXJlTm9uSW5oZXJpdGVkRGF0YS5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpTdHlsZVJhcmVOb25Jbmhlcml0ZWREYXRhOjpyZXBvcnRNZW1vcnlVc2FnZSk6CisKIDIw
MTItMDktMTcgIFJvZ2VyIEZvbmcgIDxyb2dlcl9mb25nQGFwcGxlLmNvbT4KIAogICAgICAgICBb
V2luXSBOdWxsIGNoZWNrIHRpbWluZyBmdW5jdGlvbiByZWNlaXZlZCBmcm9tIENvcmVBbmltYXRp
b24gd2hlbiBjYWxsaW5nIENBQ0ZBbmltYXRpb25HZXRUaW1pbmdGdW5jdGlvbi4KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1Y4UGVySXNvbGF0ZURhdGEuY3BwIGIvU291
cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvVjhQZXJJc29sYXRlRGF0YS5jcHAKaW5kZXggZTFiYzMx
ZS4uOWUzOWQ1MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvVjhQZXJJ
c29sYXRlRGF0YS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvVjhQZXJJc29s
YXRlRGF0YS5jcHAKQEAgLTg3LDcgKzg3LDcgQEAgdm9pZCBWOFBlcklzb2xhdGVEYXRhOjpyZXBv
cnRNZW1vcnlVc2FnZShNZW1vcnlPYmplY3RJbmZvKiBtZW1vcnlPYmplY3RJbmZvKSBjb24KICAg
ICBpbmZvLmFkZEhhc2hNYXAobV9yYXdUZW1wbGF0ZXMpOwogICAgIGluZm8uYWRkSGFzaE1hcCht
X3RlbXBsYXRlcyk7CiAgICAgaW5mby5hZGRNZW1iZXIobV9zdHJpbmdDYWNoZSk7Ci0gICAgaW5m
by5hZGRWZWN0b3IobV9kb21EYXRhTGlzdCk7CisgICAgaW5mby5hZGRNZW1iZXIobV9kb21EYXRh
TGlzdCk7CiAKICAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IG1fZG9tRGF0YUxpc3Quc2l6ZSgp
OyBpKyspCiAgICAgICAgIGluZm8uYWRkTWVtYmVyKG1fZG9tRGF0YUxpc3RbaV0pOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL1N0eWxlUHJvcGVydHlTZXQuY3BwIGIvU291cmNlL1dl
YkNvcmUvY3NzL1N0eWxlUHJvcGVydHlTZXQuY3BwCmluZGV4IDZlM2MwZmQuLjVmZTVmZDIgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9TdHlsZVByb3BlcnR5U2V0LmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVQcm9wZXJ0eVNldC5jcHAKQEAgLTExMjMsNyArMTEyMyw3
IEBAIHZvaWQgU3R5bGVQcm9wZXJ0eVNldDo6cmVwb3J0TWVtb3J5VXNhZ2UoTWVtb3J5T2JqZWN0
SW5mbyogbWVtb3J5T2JqZWN0SW5mbykgY29uCiAgICAgc2l6ZV90IGFjdHVhbFNpemUgPSBtX2lz
TXV0YWJsZSA/IHNpemVvZihTdHlsZVByb3BlcnR5U2V0KSA6IGltbXV0YWJsZVN0eWxlUHJvcGVy
dHlTZXRTaXplKG1fYXJyYXlTaXplKTsKICAgICBNZW1vcnlDbGFzc0luZm8gaW5mbyhtZW1vcnlP
YmplY3RJbmZvLCB0aGlzLCBXZWJDb3JlTWVtb3J5VHlwZXM6OkNTUywgYWN0dWFsU2l6ZSk7CiAg
ICAgaWYgKG1faXNNdXRhYmxlKQotICAgICAgICBpbmZvLmFkZFZlY3RvclB0cihtX211dGFibGVQ
cm9wZXJ0eVZlY3Rvcik7CisgICAgICAgIGluZm8uYWRkTWVtYmVyKG1fbXV0YWJsZVByb3BlcnR5
VmVjdG9yKTsKIAogICAgIHVuc2lnbmVkIGNvdW50ID0gcHJvcGVydHlDb3VudCgpOwogICAgIGZv
ciAodW5zaWduZWQgaSA9IDA7IGkgPCBjb3VudDsgKytpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvY3NzL1N0eWxlUmVzb2x2ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL1N0eWxlUmVz
b2x2ZXIuY3BwCmluZGV4IDUxN2JkYjYuLjIxOTgwNzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2Nzcy9TdHlsZVJlc29sdmVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVS
ZXNvbHZlci5jcHAKQEAgLTc0Nyw4ICs3NDcsOCBAQCB2b2lkIFN0eWxlUmVzb2x2ZXI6OkZlYXR1
cmVzOjpyZXBvcnRNZW1vcnlVc2FnZShNZW1vcnlPYmplY3RJbmZvKiBtZW1vcnlPYmplY3RJbgog
ICAgIE1lbW9yeUNsYXNzSW5mbyBpbmZvKG1lbW9yeU9iamVjdEluZm8sIHRoaXMsIFdlYkNvcmVN
ZW1vcnlUeXBlczo6Q1NTKTsKICAgICBpbmZvLmFkZEhhc2hTZXQoaWRzSW5SdWxlcyk7CiAgICAg
aW5mby5hZGRIYXNoU2V0KGF0dHJzSW5SdWxlcyk7Ci0gICAgaW5mby5hZGRWZWN0b3Ioc2libGlu
Z1J1bGVzKTsKLSAgICBpbmZvLmFkZFZlY3Rvcih1bmNvbW1vbkF0dHJpYnV0ZVJ1bGVzKTsKKyAg
ICBpbmZvLmFkZE1lbWJlcihzaWJsaW5nUnVsZXMpOworICAgIGluZm8uYWRkTWVtYmVyKHVuY29t
bW9uQXR0cmlidXRlUnVsZXMpOwogfQogCiBzdGF0aWMgU3R5bGVTaGVldENvbnRlbnRzKiBwYXJz
ZVVBU2hlZXQoY29uc3QgU3RyaW5nJiBzdHIpCkBAIC0yNTc5LDcgKzI1NzksNyBAQCB2b2lkIFJ1
bGVTZXQ6OnJlcG9ydE1lbW9yeVVzYWdlKE1lbW9yeU9iamVjdEluZm8qIG1lbW9yeU9iamVjdElu
Zm8pIGNvbnN0CiAgICAgaW5mby5hZGRJbnN0cnVtZW50ZWRWZWN0b3IobV9saW5rUHNldWRvQ2xh
c3NSdWxlcyk7CiAgICAgaW5mby5hZGRJbnN0cnVtZW50ZWRWZWN0b3IobV9mb2N1c1BzZXVkb0Ns
YXNzUnVsZXMpOwogICAgIGluZm8uYWRkSW5zdHJ1bWVudGVkVmVjdG9yKG1fdW5pdmVyc2FsUnVs
ZXMpOwotICAgIGluZm8uYWRkVmVjdG9yKG1fcGFnZVJ1bGVzKTsKKyAgICBpbmZvLmFkZE1lbWJl
cihtX3BhZ2VSdWxlcyk7CiAgICAgaW5mby5hZGRJbnN0cnVtZW50ZWRWZWN0b3IobV9yZWdpb25T
ZWxlY3RvcnNBbmRSdWxlU2V0cyk7CiB9CiAKQEAgLTU3ODUsNyArNTc4NSw3IEBAIHZvaWQgU3R5
bGVSZXNvbHZlcjo6cmVwb3J0TWVtb3J5VXNhZ2UoTWVtb3J5T2JqZWN0SW5mbyogbWVtb3J5T2Jq
ZWN0SW5mbykgY29uc3QKICAgICBpbmZvLmFkZEhhc2hNYXAobV9rZXlmcmFtZXNSdWxlTWFwKTsK
ICAgICBpbmZvLmFkZEhhc2hNYXAobV9tYXRjaGVkUHJvcGVydGllc0NhY2hlKTsKICAgICBpbmZv
LmFkZEluc3RydW1lbnRlZE1hcFZhbHVlcyhtX21hdGNoZWRQcm9wZXJ0aWVzQ2FjaGUpOwotICAg
IGluZm8uYWRkVmVjdG9yKG1fbWF0Y2hlZFJ1bGVzKTsKKyAgICBpbmZvLmFkZE1lbWJlcihtX21h
dGNoZWRSdWxlcyk7CiAKICAgICBpbmZvLmFkZE1lbWJlcihtX3J1bGVMaXN0KTsKICAgICBpbmZv
LmFkZEhhc2hNYXAobV9wZW5kaW5nSW1hZ2VQcm9wZXJ0aWVzKTsKQEAgLTU4MDEsNyArNTgwMSw3
IEBAIHZvaWQgU3R5bGVSZXNvbHZlcjo6cmVwb3J0TWVtb3J5VXNhZ2UoTWVtb3J5T2JqZWN0SW5m
byogbWVtb3J5T2JqZWN0SW5mbykgY29uc3QKICNpZiBFTkFCTEUoU1RZTEVfU0NPUEVEKQogICAg
IGluZm8uYWRkSGFzaE1hcChtX3Njb3BlZEF1dGhvclN0eWxlcyk7CiAgICAgaW5mby5hZGRJbnN0
cnVtZW50ZWRNYXBFbnRyaWVzKG1fc2NvcGVkQXV0aG9yU3R5bGVzKTsKLSAgICBpbmZvLmFkZFZl
Y3RvcihtX3Njb3BlU3RhY2spOworICAgIGluZm8uYWRkTWVtYmVyKG1fc2NvcGVTdGFjayk7CiAj
ZW5kaWYKIAogICAgIC8vIEZJWE1FOiBtb3ZlIHRoaXMgdG8gYSBwbGFjZSB3aGVyZSBpdCB3b3Vs
ZCBiZSBjYWxsZWQgb25seSBvbmNlPwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL1N0
eWxlU2hlZXRDb250ZW50cy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVTaGVldENvbnRl
bnRzLmNwcAppbmRleCAwNDgyNzNiLi41MjM1NmRmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9jc3MvU3R5bGVTaGVldENvbnRlbnRzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5
bGVTaGVldENvbnRlbnRzLmNwcApAQCAtNDg5LDEwICs0ODksMTAgQEAgdm9pZCBTdHlsZVNoZWV0
Q29udGVudHM6OnJlcG9ydE1lbW9yeVVzYWdlKE1lbW9yeU9iamVjdEluZm8qIG1lbW9yeU9iamVj
dEluZm8pIGMKICAgICBNZW1vcnlDbGFzc0luZm8gaW5mbyhtZW1vcnlPYmplY3RJbmZvLCB0aGlz
LCBXZWJDb3JlTWVtb3J5VHlwZXM6OkNTUyk7CiAgICAgaW5mby5hZGRNZW1iZXIobV9vcmlnaW5h
bFVSTCk7CiAgICAgaW5mby5hZGRNZW1iZXIobV9lbmNvZGluZ0Zyb21DaGFyc2V0UnVsZSk7Ci0g
ICAgaW5mby5hZGRWZWN0b3IobV9pbXBvcnRSdWxlcyk7CisgICAgaW5mby5hZGRNZW1iZXIobV9p
bXBvcnRSdWxlcyk7CiAgICAgaW5mby5hZGRJbnN0cnVtZW50ZWRWZWN0b3IobV9jaGlsZFJ1bGVz
KTsKICAgICBpbmZvLmFkZEhhc2hNYXAobV9uYW1lc3BhY2VzKTsKLSAgICBpbmZvLmFkZFZlY3Rv
cihtX2NsaWVudHMpOworICAgIGluZm8uYWRkTWVtYmVyKG1fY2xpZW50cyk7CiB9CiAKIH0KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9kb20vRG9jdW1lbnQuY3BwCmluZGV4IGNlMTNkYzMuLmQ1NjJlNTIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0Rv
Y3VtZW50LmNwcApAQCAtNjI1Miw3ICs2MjUyLDcgQEAgdm9pZCBEb2N1bWVudDo6cmVwb3J0TWVt
b3J5VXNhZ2UoTWVtb3J5T2JqZWN0SW5mbyogbWVtb3J5T2JqZWN0SW5mbykgY29uc3QKICAgICBN
ZW1vcnlDbGFzc0luZm8gaW5mbyhtZW1vcnlPYmplY3RJbmZvLCB0aGlzLCBXZWJDb3JlTWVtb3J5
VHlwZXM6OkRPTSk7CiAgICAgaW5mby5hZGRNZW1iZXIobV9zdHlsZVJlc29sdmVyKTsKICAgICBD
b250YWluZXJOb2RlOjpyZXBvcnRNZW1vcnlVc2FnZShtZW1vcnlPYmplY3RJbmZvKTsKLSAgICBp
bmZvLmFkZFZlY3RvcihtX2N1c3RvbUZvbnRzKTsKKyAgICBpbmZvLmFkZE1lbWJlcihtX2N1c3Rv
bUZvbnRzKTsKICAgICBpbmZvLmFkZE1lbWJlcihtX3VybCk7CiAgICAgaW5mby5hZGRNZW1iZXIo
bV9iYXNlVVJMKTsKICAgICBpbmZvLmFkZE1lbWJlcihtX2Jhc2VVUkxPdmVycmlkZSk7CkBAIC02
MjgyLDE3ICs2MjgyLDE3IEBAIHZvaWQgRG9jdW1lbnQ6OnJlcG9ydE1lbW9yeVVzYWdlKE1lbW9y
eU9iamVjdEluZm8qIG1lbW9yeU9iamVjdEluZm8pIGNvbnN0CiAgICAgaW5mby5hZGRIYXNoTWFw
KG1fZG9jdW1lbnROYW1lZEl0ZW1Db2xsZWN0aW9ucyk7CiAgICAgaW5mby5hZGRIYXNoTWFwKG1f
d2luZG93TmFtZWRJdGVtQ29sbGVjdGlvbnMpOwogI2lmIEVOQUJMRShEQVNIQk9BUkRfU1VQUE9S
VCkKLSAgICBpbmZvLmFkZFZlY3RvcihtX2Rhc2hib2FyZFJlZ2lvbnMpOworICAgIGluZm8uYWRk
TWVtYmVyKG1fZGFzaGJvYXJkUmVnaW9ucyk7CiAjZW5kaWYKICAgICBpbmZvLmFkZEhhc2hNYXAo
bV9jc3NDYW52YXNFbGVtZW50cyk7Ci0gICAgaW5mby5hZGRWZWN0b3IobV9pY29uVVJMcyk7Cisg
ICAgaW5mby5hZGRNZW1iZXIobV9pY29uVVJMcyk7CiAgICAgaW5mby5hZGRIYXNoU2V0KG1fZG9j
dW1lbnRTdXNwZW5zaW9uQ2FsbGJhY2tFbGVtZW50cyk7CiAgICAgaW5mby5hZGRIYXNoU2V0KG1f
bWVkaWFWb2x1bWVDYWxsYmFja0VsZW1lbnRzKTsKICAgICBpbmZvLmFkZEhhc2hTZXQobV9wcml2
YXRlQnJvd3NpbmdTdGF0ZUNoYW5nZWRFbGVtZW50cyk7CiAgICAgaW5mby5hZGRIYXNoTWFwKG1f
ZWxlbWVudHNCeUFjY2Vzc0tleSk7CiAgICAgaW5mby5hZGRNZW1iZXIobV9ldmVudFF1ZXVlKTsK
ICAgICBpbmZvLmFkZEhhc2hTZXQobV9tZWRpYUNhblN0YXJ0TGlzdGVuZXJzKTsKLSAgICBpbmZv
LmFkZFZlY3RvcihtX3BlbmRpbmdUYXNrcyk7CisgICAgaW5mby5hZGRNZW1iZXIobV9wZW5kaW5n
VGFza3MpOwogfQogCiAjaWYgRU5BQkxFKFVORE9fTUFOQUdFUikKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2RvbS9FbGVtZW50QXR0cmlidXRlRGF0YS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9k
b20vRWxlbWVudEF0dHJpYnV0ZURhdGEuY3BwCmluZGV4IDAzZjdiODEuLmMwOTJiYmQgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50QXR0cmlidXRlRGF0YS5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnRBdHRyaWJ1dGVEYXRhLmNwcApAQCAtMzAwLDcgKzMw
MCw3IEBAIHZvaWQgRWxlbWVudEF0dHJpYnV0ZURhdGE6OnJlcG9ydE1lbW9yeVVzYWdlKE1lbW9y
eU9iamVjdEluZm8qIG1lbW9yeU9iamVjdEluZm8pCiAgICAgaW5mby5hZGRNZW1iZXIobV9jbGFz
c05hbWVzKTsKICAgICBpbmZvLmFkZE1lbWJlcihtX2lkRm9yU3R5bGVSZXNvbHV0aW9uKTsKICAg
ICBpZiAobV9pc011dGFibGUpCi0gICAgICAgIGluZm8uYWRkVmVjdG9yKG11dGFibGVBdHRyaWJ1
dGVWZWN0b3IoKSk7CisgICAgICAgIGluZm8uYWRkTWVtYmVyKG11dGFibGVBdHRyaWJ1dGVWZWN0
b3IoKSk7CiAgICAgZm9yICh1bnNpZ25lZCBpID0gMCwgbGVuID0gbGVuZ3RoKCk7IGkgPCBsZW47
IGkrKykKICAgICAgICAgaW5mby5hZGRNZW1iZXIoKmF0dHJpYnV0ZUl0ZW0oaSkpOwogfQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0RvY3VtZW50TG9hZGVyLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2xvYWRlci9Eb2N1bWVudExvYWRlci5jcHAKaW5kZXggODhiN2ZlOC4uOGUyNDY1
NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0RvY3VtZW50TG9hZGVyLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRG9jdW1lbnRMb2FkZXIuY3BwCkBAIC0zNjgsNyAr
MzY4LDcgQEAgdm9pZCBEb2N1bWVudExvYWRlcjo6cmVwb3J0TWVtb3J5VXNhZ2UoTWVtb3J5T2Jq
ZWN0SW5mbyogbWVtb3J5T2JqZWN0SW5mbykgY29uc3QKICAgICBpbmZvLmFkZE1lbWJlcihtX3N1
YnN0aXR1dGVEYXRhKTsKICAgICBpbmZvLmFkZE1lbWJlcihtX3BhZ2VUaXRsZS5zdHJpbmcoKSk7
CiAgICAgaW5mby5hZGRNZW1iZXIobV9vdmVycmlkZUVuY29kaW5nKTsKLSAgICBpbmZvLmFkZFZl
Y3RvcihtX3Jlc3BvbnNlcyk7CisgICAgaW5mby5hZGRNZW1iZXIobV9yZXNwb25zZXMpOwogICAg
IGluZm8uYWRkTWVtYmVyKG1fb3JpZ2luYWxSZXF1ZXN0KTsKICAgICBpbmZvLmFkZE1lbWJlciht
X29yaWdpbmFsUmVxdWVzdENvcHkpOwogICAgIGluZm8uYWRkTWVtYmVyKG1fcmVxdWVzdCk7CkBA
IC0zNzcsNyArMzc3LDcgQEAgdm9pZCBEb2N1bWVudExvYWRlcjo6cmVwb3J0TWVtb3J5VXNhZ2Uo
TWVtb3J5T2JqZWN0SW5mbyogbWVtb3J5T2JqZWN0SW5mbykgY29uc3QKICAgICBpbmZvLmFkZElu
c3RydW1lbnRlZFZlY3RvcihtX3Jlc3BvbnNlcyk7CiAgICAgaW5mby5hZGRIYXNoTWFwKG1fcGVu
ZGluZ1N1YnN0aXR1dGVSZXNvdXJjZXMpOwogICAgIGluZm8uYWRkSW5zdHJ1bWVudGVkSGFzaFNl
dChtX3Jlc291cmNlc0NsaWVudEtub3dzQWJvdXQpOwotICAgIGluZm8uYWRkVmVjdG9yKG1fcmVz
b3VyY2VzTG9hZGVkRnJvbU1lbW9yeUNhY2hlRm9yQ2xpZW50Tm90aWZpY2F0aW9uKTsKKyAgICBp
bmZvLmFkZE1lbWJlcihtX3Jlc291cmNlc0xvYWRlZEZyb21NZW1vcnlDYWNoZUZvckNsaWVudE5v
dGlmaWNhdGlvbik7CiAgICAgaW5mby5hZGRNZW1iZXIobV9jbGllbnRSZWRpcmVjdFNvdXJjZUZv
ckhpc3RvcnkpOwogICAgIGluZm8uYWRkTWVtYmVyKG1fbWFpblJlc291cmNlRGF0YSk7CiB9CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvTWVtb3J5Q2FjaGUuY3BwIGIv
U291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL01lbW9yeUNhY2hlLmNwcAppbmRleCA2NmQzMjAx
Li4xMmI5YjViIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvTWVtb3J5
Q2FjaGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9NZW1vcnlDYWNoZS5j
cHAKQEAgLTcyNCw3ICs3MjQsNyBAQCB2b2lkIE1lbW9yeUNhY2hlOjpyZXBvcnRNZW1vcnlVc2Fn
ZShNZW1vcnlPYmplY3RJbmZvKiBtZW1vcnlPYmplY3RJbmZvKSBjb25zdAogICAgICAgICBpbmZv
LmFkZE1lbWJlcihpLT5maXJzdCk7CiAgICAgICAgIGluZm8uYWRkTWVtYmVyKGktPnNlY29uZCk7
CiAgICAgfQotICAgIGluZm8uYWRkVmVjdG9yKG1fYWxsUmVzb3VyY2VzKTsKKyAgICBpbmZvLmFk
ZE1lbWJlcihtX2FsbFJlc291cmNlcyk7CiAgICAgaW5mby5hZGRNZW1iZXIobV9saXZlRGVjb2Rl
ZFJlc291cmNlcyk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1No
YXJlZEJ1ZmZlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TaGFyZWRCdWZmZXIuY3Bw
CmluZGV4IDY4YzMxOTYuLmY0NjNjODIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL1NoYXJlZEJ1ZmZlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2hhcmVk
QnVmZmVyLmNwcApAQCAtMjUxLDggKzI1MSw4IEBAIGNvbnN0IFZlY3RvcjxjaGFyPiYgU2hhcmVk
QnVmZmVyOjpidWZmZXIoKSBjb25zdAogdm9pZCBTaGFyZWRCdWZmZXI6OnJlcG9ydE1lbW9yeVVz
YWdlKE1lbW9yeU9iamVjdEluZm8qIG1lbW9yeU9iamVjdEluZm8pIGNvbnN0CiB7CiAgICAgTWVt
b3J5Q2xhc3NJbmZvIGluZm8obWVtb3J5T2JqZWN0SW5mbywgdGhpcyk7Ci0gICAgaW5mby5hZGRW
ZWN0b3IobV9idWZmZXIpOwotICAgIGluZm8uYWRkVmVjdG9yKG1fc2VnbWVudHMpOworICAgIGlu
Zm8uYWRkTWVtYmVyKG1fYnVmZmVyKTsKKyAgICBpbmZvLmFkZE1lbWJlcihtX3NlZ21lbnRzKTsK
ICAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgbV9zZWdtZW50cy5zaXplKCk7ICsraSkKICAg
ICAgICAgaW5mby5hZGRSYXdCdWZmZXIobV9zZWdtZW50c1tpXSwgc2VnbWVudFNpemUpOwogICAg
IGluZm8uYWRkTWVtYmVyKG1fcHVyZ2VhYmxlQnVmZmVyLmdldCgpKTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0JpdG1hcEltYWdlLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0JpdG1hcEltYWdlLmNwcAppbmRleCAwYjExNjgwLi5h
Njc4ZmZlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9CaXRt
YXBJbWFnZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvQml0bWFw
SW1hZ2UuY3BwCkBAIC01NzgsNyArNTc4LDcgQEAgdm9pZCBCaXRtYXBJbWFnZTo6cmVwb3J0TWVt
b3J5VXNhZ2UoTWVtb3J5T2JqZWN0SW5mbyogbWVtb3J5T2JqZWN0SW5mbykgY29uc3QKICAgICBJ
bWFnZTo6cmVwb3J0TWVtb3J5VXNhZ2UobWVtb3J5T2JqZWN0SW5mbyk7CiAgICAgaW5mby5hZGRN
ZW1iZXIobV9zb3VyY2UpOwogICAgIGluZm8uYWRkTWVtYmVyKG1fZnJhbWVUaW1lcik7Ci0gICAg
aW5mby5hZGRWZWN0b3IobV9mcmFtZXMpOworICAgIGluZm8uYWRkTWVtYmVyKG1fZnJhbWVzKTsK
ICAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgbV9mcmFtZUNvdW50OyArK2kpIHsKICNpZiBP
UyhXSU5DRSkgJiYgIVBMQVRGT1JNKFFUKQogICAgICAgICBpbmZvLmFkZFJhd0J1ZmZlcihtX2Zy
YW1lc1tpXS5tX2ZyYW1lLmdldCgpLCBtX2ZyYW1lc1tpXS5tX2ZyYW1lQnl0ZXMpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9Gb3JtRGF0YS5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL0Zvcm1EYXRhLmNwcAppbmRleCA0NWY3MzAyLi5j
MjUwMGUyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL0Zvcm1E
YXRhLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL0Zvcm1EYXRhLmNw
cApAQCAtMzYwLDcgKzM2MCw3IEBAIHZvaWQgRm9ybURhdGE6OnJlbW92ZUdlbmVyYXRlZEZpbGVz
SWZOZWVkZWQoKQogdm9pZCBGb3JtRGF0YTo6cmVwb3J0TWVtb3J5VXNhZ2UoTWVtb3J5T2JqZWN0
SW5mbyogbWVtb3J5T2JqZWN0SW5mbykgY29uc3QKIHsKICAgICBNZW1vcnlDbGFzc0luZm8gaW5m
byhtZW1vcnlPYmplY3RJbmZvLCB0aGlzLCBQbGF0Zm9ybU1lbW9yeVR5cGVzOjpMb2FkZXIpOwot
ICAgIGluZm8uYWRkVmVjdG9yKG1fYm91bmRhcnkpOworICAgIGluZm8uYWRkTWVtYmVyKG1fYm91
bmRhcnkpOwogfQogCiBzdGF0aWMgdm9pZCBlbmNvZGUoRW5jb2RlciYgZW5jb2RlciwgY29uc3Qg
Rm9ybURhdGFFbGVtZW50JiBlbGVtZW50KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9z
dHlsZS9SZW5kZXJTdHlsZS5jcHAKaW5kZXggMDYwMmNmYS4uODdjOTQ0ZSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGUuY3BwCkBAIC0xNjE2LDcgKzE2
MTYsNyBAQCB2b2lkIFJlbmRlclN0eWxlOjpyZXBvcnRNZW1vcnlVc2FnZShNZW1vcnlPYmplY3RJ
bmZvKiBtZW1vcnlPYmplY3RJbmZvKSBjb25zdAogICAgIC8vIEZJWE1FOiBpbmhlcml0ZWQgY29u
dGFpbnMgU3R5bGVJbWFnZSBhbmQgRm9udCBmaWVsZHMgdGhhdCBtaWdodCBuZWVkIHRvIGJlIGlu
c3RydW1lbnRlZC4KICAgICBpbmZvLmFkZE1lbWJlcihpbmhlcml0ZWQpOwogICAgIGlmIChtX2Nh
Y2hlZFBzZXVkb1N0eWxlcykKLSAgICAgICAgaW5mby5hZGRWZWN0b3JQdHIobV9jYWNoZWRQc2V1
ZG9TdHlsZXMuZ2V0KCkpOworICAgICAgICBpbmZvLmFkZE1lbWJlcihtX2NhY2hlZFBzZXVkb1N0
eWxlcy5nZXQoKSk7CiAjaWYgRU5BQkxFKFNWRykKICAgICBpbmZvLmFkZE1lbWJlcihtX3N2Z1N0
eWxlKTsKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxl
L1N0eWxlUmFyZU5vbkluaGVyaXRlZERhdGEuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L3N0eWxlL1N0eWxlUmFyZU5vbkluaGVyaXRlZERhdGEuY3BwCmluZGV4IGJiZTA3YmYuLjViNWE3
ZDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9TdHlsZVJhcmVO
b25Jbmhlcml0ZWREYXRhLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUv
U3R5bGVSYXJlTm9uSW5oZXJpdGVkRGF0YS5jcHAKQEAgLTMwNiw3ICszMDYsNyBAQCB2b2lkIFN0
eWxlUmFyZU5vbkluaGVyaXRlZERhdGE6OnJlcG9ydE1lbW9yeVVzYWdlKE1lbW9yeU9iamVjdElu
Zm8qIG1lbW9yeU9iamVjdAogewogICAgIE1lbW9yeUNsYXNzSW5mbyBpbmZvKG1lbW9yeU9iamVj
dEluZm8sIHRoaXMsIFdlYkNvcmVNZW1vcnlUeXBlczo6Q1NTKTsKICNpZiBFTkFCTEUoREFTSEJP
QVJEX1NVUFBPUlQpCi0gICAgaW5mby5hZGRWZWN0b3IobV9kYXNoYm9hcmRSZWdpb25zKTsKKyAg
ICBpbmZvLmFkZE1lbWJlcihtX2Rhc2hib2FyZFJlZ2lvbnMpOwogI2VuZGlmCiAgICAgaW5mby5h
ZGRNZW1iZXIobV9kZXByZWNhdGVkRmxleGlibGVCb3gpOwogICAgIGluZm8uYWRkTWVtYmVyKG1f
ZmxleGlibGVCb3gpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VM
b2cgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwppbmRleCA4NTFlNDM5Li5mODBi
NThhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZworKysgYi9T
b3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE3IEBACisyMDEyLTA5
LTEzICBZdXJ5IFNlbWlraGF0c2t5ICA8eXVyeXNAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFdl
YiBJbnNwZWN0b3I6IG1vdmUgVmVjdG9yIG1lbW9yeSBpbnN0cnVtZW50YXRpb24gdG8gVmVjdG9y
LmgKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTk2NjUw
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkZWQg
dW5pdCB0ZXN0cyBmb3IgVmVjdG9yIG1lbW9yeSBpbnN0cnVtZW50YXRpb24uCisKKyAgICAgICAg
KiB0ZXN0cy9NZW1vcnlJbnN0cnVtZW50YXRpb25UZXN0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
Okluc3RydW1lbnRlZE93bmVyOjpJbnN0cnVtZW50ZWRPd25lcik6CisgICAgICAgIChXZWJDb3Jl
OjpURVNUKToKKyAgICAgICAgKFdlYkNvcmUpOgorCiAyMDEyLTA5LTE3ICBCcmlhbiBBbmRlcnNv
biAgPGJyaWFuZGVyc29uQGNocm9taXVtLm9yZz4KIAogICAgICAgICBbY2hyb21pdW1dIEFkZCBy
ZW5kZXJpbmcgY29tbWl0IHN0YXRpc3RpY3MKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hy
b21pdW0vdGVzdHMvTWVtb3J5SW5zdHJ1bWVudGF0aW9uVGVzdC5jcHAgYi9Tb3VyY2UvV2ViS2l0
L2Nocm9taXVtL3Rlc3RzL01lbW9yeUluc3RydW1lbnRhdGlvblRlc3QuY3BwCmluZGV4IDRhY2Y0
OTYuLmQ3OWRjODUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMvTWVt
b3J5SW5zdHJ1bWVudGF0aW9uVGVzdC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS90
ZXN0cy9NZW1vcnlJbnN0cnVtZW50YXRpb25UZXN0LmNwcApAQCAtMjMzLDggKzIzMyw5IEBAIFRF
U1QoTWVtb3J5SW5zdHJ1bWVudGF0aW9uVGVzdCwgdmlzaXRGaXJzdE1lbWJlckluTm9uVmlydHVh
bENsYXNzKQogdGVtcGxhdGU8dHlwZW5hbWUgVD4KIGNsYXNzIEluc3RydW1lbnRlZE93bmVyIHsK
IHB1YmxpYzoKKyAgICBJbnN0cnVtZW50ZWRPd25lcigpIHsgfQogICAgIHRlbXBsYXRlPHR5cGVu
YW1lIFY+Ci0gICAgSW5zdHJ1bWVudGVkT3duZXIoY29uc3QgViYgdmFsdWUpIDogbV92YWx1ZSh2
YWx1ZSkgeyB9CisgICAgZXhwbGljaXQgSW5zdHJ1bWVudGVkT3duZXIoY29uc3QgViYgdmFsdWUp
IDogbV92YWx1ZSh2YWx1ZSkgeyB9CiAgICAgdm9pZCByZXBvcnRNZW1vcnlVc2FnZShNZW1vcnlP
YmplY3RJbmZvKiBtZW1vcnlPYmplY3RJbmZvKSBjb25zdAogICAgIHsKICAgICAgICAgTWVtb3J5
Q2xhc3NJbmZvIGluZm8obWVtb3J5T2JqZWN0SW5mbywgdGhpcywgV2ViQ29yZU1lbW9yeVR5cGVz
OjpET00pOwpAQCAtMzY3LDUgKzM2OCw2MCBAQCBURVNUKE1lbW9yeUluc3RydW1lbnRhdGlvblRl
c3QsIGRldGVjdFJlcG9ydE1lbW9yeVVzYWdlTWV0aG9kKQogICAgIH0KIH0KIAorVEVTVChNZW1v
cnlJbnN0cnVtZW50YXRpb25UZXN0LCB2ZWN0b3JaZXJvSW5saW5lQ2FwYWNpdHkpCit7CisgICAg
VmlzaXRlZE9iamVjdHMgdmlzaXRlZE9iamVjdHM7CisgICAgTWVtb3J5SW5zdHJ1bWVudGF0aW9u
SW1wbCBpbXBsKHZpc2l0ZWRPYmplY3RzKTsKKyAgICBJbnN0cnVtZW50ZWRPd25lcjxWZWN0b3I8
aW50PiA+IHZlY3Rvck93bmVyKDE2KTsKKyAgICBpbXBsLmFkZFJvb3RPYmplY3QodmVjdG9yT3du
ZXIpOworICAgIEVYUEVDVF9FUSgxNiAqIHNpemVvZihpbnQpLCBpbXBsLnJlcG9ydGVkU2l6ZUZv
ckFsbFR5cGVzKCkpOworICAgIEVYUEVDVF9FUSgxLCB2aXNpdGVkT2JqZWN0cy5zaXplKCkpOwor
fQorCitURVNUKE1lbW9yeUluc3RydW1lbnRhdGlvblRlc3QsIHZlY3RvckZpZWxkV2l0aElubGlu
ZUNhcGFjaXR5KQoreworICAgIFZpc2l0ZWRPYmplY3RzIHZpc2l0ZWRPYmplY3RzOworICAgIE1l
bW9yeUluc3RydW1lbnRhdGlvbkltcGwgaW1wbCh2aXNpdGVkT2JqZWN0cyk7CisgICAgSW5zdHJ1
bWVudGVkT3duZXI8VmVjdG9yPGludCwgND4gPiB2ZWN0b3JPd25lcjsKKyAgICBpbXBsLmFkZFJv
b3RPYmplY3QodmVjdG9yT3duZXIpOworICAgIEVYUEVDVF9FUShzdGF0aWNfY2FzdDxzaXplX3Q+
KDApLCBpbXBsLnJlcG9ydGVkU2l6ZUZvckFsbFR5cGVzKCkpOworICAgIEVYUEVDVF9FUSgwLCB2
aXNpdGVkT2JqZWN0cy5zaXplKCkpOworfQorCitURVNUKE1lbW9yeUluc3RydW1lbnRhdGlvblRl
c3QsIHZlY3RvckZpZWxkV2l0aElubGluZUNhcGFjaXR5UmVzaXplZCkKK3sKKyAgICBWaXNpdGVk
T2JqZWN0cyB2aXNpdGVkT2JqZWN0czsKKyAgICBNZW1vcnlJbnN0cnVtZW50YXRpb25JbXBsIGlt
cGwodmlzaXRlZE9iamVjdHMpOworICAgIEluc3RydW1lbnRlZE93bmVyPFZlY3RvcjxpbnQsIDQ+
ID4gdmVjdG9yT3duZXI7CisgICAgdmVjdG9yT3duZXIubV92YWx1ZS5yZXNlcnZlQ2FwYWNpdHko
OCk7CisgICAgaW1wbC5hZGRSb290T2JqZWN0KHZlY3Rvck93bmVyKTsKKyAgICBFWFBFQ1RfRVEo
OCAqIHNpemVvZihpbnQpLCBpbXBsLnJlcG9ydGVkU2l6ZUZvckFsbFR5cGVzKCkpOworICAgIEVY
UEVDVF9FUSgxLCB2aXNpdGVkT2JqZWN0cy5zaXplKCkpOworfQorCitURVNUKE1lbW9yeUluc3Ry
dW1lbnRhdGlvblRlc3QsIGhlYXBBbGxvY2F0ZWRWZWN0b3JXaXRoSW5saW5lQ2FwYWNpdHkpCit7
CisgICAgVmlzaXRlZE9iamVjdHMgdmlzaXRlZE9iamVjdHM7CisgICAgTWVtb3J5SW5zdHJ1bWVu
dGF0aW9uSW1wbCBpbXBsKHZpc2l0ZWRPYmplY3RzKTsKKyAgICBJbnN0cnVtZW50ZWRPd25lcjxP
d25QdHI8VmVjdG9yPGludCwgND4gPiA+IHZlY3Rvck93bmVyOworICAgIHZlY3Rvck93bmVyLm1f
dmFsdWUgPSBhZG9wdFB0cihuZXcgVmVjdG9yPGludCwgND4oKSk7CisgICAgaW1wbC5hZGRSb290
T2JqZWN0KHZlY3Rvck93bmVyKTsKKyAgICBFWFBFQ1RfRVEoc2l6ZW9mKFZlY3RvcjxpbnQsIDQ+
KSwgaW1wbC5yZXBvcnRlZFNpemVGb3JBbGxUeXBlcygpKTsKKyAgICBFWFBFQ1RfRVEoMSwgdmlz
aXRlZE9iamVjdHMuc2l6ZSgpKTsKK30KKworVEVTVChNZW1vcnlJbnN0cnVtZW50YXRpb25UZXN0
LCBoZWFwQWxsb2NhdGVkVmVjdG9yV2l0aElubGluZUNhcGFjaXR5UmVzaXplZCkKK3sKKyAgICBW
aXNpdGVkT2JqZWN0cyB2aXNpdGVkT2JqZWN0czsKKyAgICBNZW1vcnlJbnN0cnVtZW50YXRpb25J
bXBsIGltcGwodmlzaXRlZE9iamVjdHMpOworICAgIEluc3RydW1lbnRlZE93bmVyPE93blB0cjxW
ZWN0b3I8aW50LCA0PiA+ID4gdmVjdG9yT3duZXI7CisgICAgdmVjdG9yT3duZXIubV92YWx1ZSA9
IGFkb3B0UHRyKG5ldyBWZWN0b3I8aW50LCA0PigpKTsKKyAgICB2ZWN0b3JPd25lci5tX3ZhbHVl
LT5yZXNlcnZlQ2FwYWNpdHkoOCk7CisgICAgaW1wbC5hZGRSb290T2JqZWN0KHZlY3Rvck93bmVy
KTsKKyAgICBFWFBFQ1RfRVEoOCAqIHNpemVvZihpbnQpICsgc2l6ZW9mKFZlY3RvcjxpbnQsIDQ+
KSwgaW1wbC5yZXBvcnRlZFNpemVGb3JBbGxUeXBlcygpKTsKKyAgICBFWFBFQ1RfRVEoMiwgdmlz
aXRlZE9iamVjdHMuc2l6ZSgpKTsKK30KKworCiB9IC8vIG5hbWVzcGFjZQogCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>164743</attachid>
            <date>2012-09-19 08:35:03 -0700</date>
            <delta_ts>2012-09-19 09:17:21 -0700</delta_ts>
            <desc>patch with external instrumentation</desc>
            <filename>bug-96650-20120919193428.patch</filename>
            <type>text/plain</type>
            <size>36559</size>
            <attacher name="Ilya Tikhonovsky">loislo</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTI5MDA2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IGM1ZmIwN2RiNDJlZWFlNTExZmUzNzAy
MTkxZmM5ZjdjMjczNTVjOTYuLjBkYTgzOGRmNDE1ODkwNDc3ZDgxNDMwMzQ3ZGI4YWZjMzM0NGY1
OGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMzEgQEAKKzIwMTItMDktMTkgIElseWEgVGlraG9ub3Zza3kgIDxs
b2lzbG9AY2hyb21pdW0ub3JnPgorCisgICAgICAgIFdlYiBJbnNwZWN0b3I6IGV4dHJhY3QgVmVj
dG9yIGluc3RydW1lbnRhdGlvbiBmcm9tIGNvcmUgTk1JIGNvZGUgaW50byBNZW1vcnlJbnN0cnVt
ZW50YXRpb25WZWN0b3IuaCBoZWFkZXIuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD05NjY1MAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgIEFkZGVkIHJlcG9ydE1lbW9yeVVzYWdlIGZyZWUgdGVtcGxhdGUgZnVu
Y3Rpb24gd2l0aCBkZWZhdWx0IGJvZHkgdG8gY29yZSBOTUkgY29kZQorICAgICAgICBhbmQgYWRk
IGN1c3RvbSB2ZXJzaW9uIG9mIHJlcG9ydE1lbW9yeVVzYWdlIGZ1bmN0aW9uIGZvciBWZWN0b3Jz
LgorCisgICAgICAgICogR05VbWFrZWZpbGUubGlzdC5hbToKKyAgICAgICAgKiBXVEYuZ3lwaToK
KyAgICAgICAgKiBXVEYucHJvOgorICAgICAgICAqIFdURi52Y3Byb2ovV1RGLnZjcHJvajoKKyAg
ICAgICAgKiBXVEYueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiB3dGYvTWVt
b3J5SW5zdHJ1bWVudGF0aW9uLmg6CisgICAgICAgIChXVEYpOgorICAgICAgICAoV1RGOjpNZW1v
cnlJbnN0cnVtZW50YXRpb246OnNlbGVjdEluc3RydW1lbnRhdGlvbk1ldGhvZCk6CisgICAgICAg
IChNZW1vcnlJbnN0cnVtZW50YXRpb24pOgorICAgICAgICAoV1RGOjpyZXBvcnRNZW1vcnlVc2Fn
ZSk6CisgICAgICAgIChXVEY6Ok1lbW9yeUluc3RydW1lbnRhdGlvbjo6YWRkT2JqZWN0SW1wbCk6
CisgICAgICAgIChXVEY6Ojo6cHJvY2Vzcyk6CisgICAgICAgICogd3RmL01lbW9yeUluc3RydW1l
bnRhdGlvblZlY3Rvci5oOiBBZGRlZC4KKyAgICAgICAgKFdURik6CisgICAgICAgIChXVEY6Omlu
c3RydW1lbnRWZWN0b3JWYWx1ZXMpOgorICAgICAgICAoV1RGOjpyZXBvcnRNZW1vcnlVc2FnZSk6
CisgICAgICAgICogd3RmL1ZlY3Rvci5oOgorCiAyMDEyLTA5LTE4ICBHbGVubiBBZGFtcyAgPGds
ZW5uQHNreW5hdi5jb20+CiAKICAgICAgICAgV1RGU3RyaW5nOjpzaG93IGRvZXNuJ3QgZHVtcCBu
b24tQVNDSUkgY2hhcmFjdGVycyBpbiBhIHJlYWRhYmxlIG1hbm5lcgpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IGNj
ZjVjMTFiNzc1ZWExMjg3NjI5MWRmN2UwZmQyYWU0MjJlYjg5NjguLmRlZTM3OWJiMzgzOWQ4ZDIx
Y2U4NzVhZDg5YTg5ZDYzZWNlZDE3YzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSw0NiBAQAorMjAx
Mi0wOS0xOSAgSWx5YSBUaWtob25vdnNreSAgPGxvaXNsb0BjaHJvbWl1bS5vcmc+CisKKyAgICAg
ICAgV2ViIEluc3BlY3RvcjogZXh0cmFjdCBWZWN0b3IgaW5zdHJ1bWVudGF0aW9uIGZyb20gY29y
ZSBOTUkgY29kZSBpbnRvIE1lbW9yeUluc3RydW1lbnRhdGlvblZlY3Rvci5oIGhlYWRlci4KKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTk2NjUwCisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgYWRkSW5zdHJ1bWVu
dGVkVmVjdG9yIGFuZCBhZGRJbnN0cnVtZW50ZWRWZWN0b3JQdHIgd2VyZSByZXBsYWNlZCB3aXRo
IGFkZE1lbWJlci4KKworICAgICAgICAqIGNzcy9DU1NHcmFkaWVudFZhbHVlLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OkNTU0dyYWRpZW50VmFsdWU6OnJlcG9ydEJhc2VDbGFzc01lbW9yeVVzYWdl
KToKKyAgICAgICAgKiBjc3MvQ1NTSW1hZ2VTZXRWYWx1ZS5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpDU1NJbWFnZVNldFZhbHVlOjpyZXBvcnREZXNjZW5kYW50TWVtb3J5VXNhZ2UpOgorICAgICAg
ICAqIGNzcy9DU1NNZWRpYVJ1bGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q1NTTWVkaWFSdWxl
OjpyZXBvcnREZXNjZW5kYW50TWVtb3J5VXNhZ2UpOgorICAgICAgICAqIGNzcy9DU1NSdWxlTGlz
dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTdGF0aWNDU1NSdWxlTGlzdDo6cmVwb3J0TWVtb3J5
VXNhZ2UpOgorICAgICAgICAqIGNzcy9DU1NTdHlsZVNoZWV0LmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OkNTU1N0eWxlU2hlZXQ6OnJlcG9ydE1lbW9yeVVzYWdlKToKKyAgICAgICAgKiBjc3MvQ1NT
VmFsdWVMaXN0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNTU1ZhbHVlTGlzdDo6cmVwb3J0RGVz
Y2VuZGFudE1lbW9yeVVzYWdlKToKKyAgICAgICAgKiBjc3MvTWVkaWFMaXN0LmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6Ok1lZGlhUXVlcnlTZXQ6OnJlcG9ydE1lbW9yeVVzYWdlKToKKyAgICAgICAg
KiBjc3MvTWVkaWFRdWVyeS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVF1ZXJ5OjpyZXBv
cnRNZW1vcnlVc2FnZSk6CisgICAgICAgICogY3NzL1N0eWxlUmVzb2x2ZXIuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6U3R5bGVSZXNvbHZlcjo6Y29sbGVjdE1hdGNoaW5nUnVsZXNGb3JMaXN0KToK
KyAgICAgICAgKiBjc3MvU3R5bGVSdWxlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlN0eWxlUnVs
ZUJsb2NrOjpyZXBvcnREZXNjZW5kYW50TWVtb3J5VXNhZ2UpOgorICAgICAgICAqIGNzcy9TdHls
ZVNoZWV0Q29udGVudHMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U3R5bGVTaGVldENvbnRlbnRz
OjpyZXBvcnRNZW1vcnlVc2FnZSk6CisgICAgICAgICogY3NzL1dlYktpdENTU0tleWZyYW1lc1J1
bGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U3R5bGVSdWxlS2V5ZnJhbWVzOjpyZXBvcnREZXNj
ZW5kYW50TWVtb3J5VXNhZ2UpOgorICAgICAgICAoV2ViQ29yZTo6V2ViS2l0Q1NTS2V5ZnJhbWVz
UnVsZTo6cmVwb3J0RGVzY2VuZGFudE1lbW9yeVVzYWdlKToKKyAgICAgICAgKiBjc3MvV2ViS2l0
Q1NTUmVnaW9uUnVsZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpXZWJLaXRDU1NSZWdpb25SdWxl
OjpyZXBvcnREZXNjZW5kYW50TWVtb3J5VXNhZ2UpOgorICAgICAgICAqIGRvbS9Eb2N1bWVudC5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudDo6cmVwb3J0TWVtb3J5VXNhZ2UpOgorICAg
ICAgICAqIGxvYWRlci9Eb2N1bWVudExvYWRlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpEb2N1
bWVudExvYWRlcjo6cmVwb3J0TWVtb3J5VXNhZ2UpOgorICAgICAgICAqIHBsYXRmb3JtL25ldHdv
cmsvUmVzb3VyY2VSZXF1ZXN0QmFzZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZXNvdXJjZVJl
cXVlc3RCYXNlOjpyZXBvcnRNZW1vcnlVc2FnZSk6CisKIDIwMTItMDktMTkgIFBhdHJpY2sgR2Fu
c3RlcmVyICA8cGFyb2dhQHdlYmtpdC5vcmc+CiAKICAgICAgICAgUmVtb3ZlIGFsbCB1c2FnZXMg
b2YgTV9QSSBmcm9tIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0v
Q2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKaW5kZXggOTg5ODk0
ZGYwNDExMmEzNjhhMTRkOWRhN2E3MjU3YjBjOTA0YmU5Ny4uM2JlMWY5NzE1ZmFkOTU4ZGM4YjQ0
NjRiMTMxZTI5YjQzMGM0NjE0MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9D
aGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKQEAgLTEsMyAr
MSwxNyBAQAorMjAxMi0wOS0xOSAgSWx5YSBUaWtob25vdnNreSAgPGxvaXNsb0BjaHJvbWl1bS5v
cmc+CisKKyAgICAgICAgV2ViIEluc3BlY3RvcjogZXh0cmFjdCBWZWN0b3IgaW5zdHJ1bWVudGF0
aW9uIGZyb20gY29yZSBOTUkgY29kZSBpbnRvIE1lbW9yeUluc3RydW1lbnRhdGlvblZlY3Rvci5o
IGhlYWRlci4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTk2NjUwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
VGVzdCBmb3IgaW5zdHJ1bWVudGVkIHZlY3Rvci4KKworICAgICAgICAqIHRlc3RzL01lbW9yeUlu
c3RydW1lbnRhdGlvblRlc3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW5zdHJ1bWVudGVkT3du
ZXI6Okluc3RydW1lbnRlZE93bmVyKToKKyAgICAgICAgKFdlYkNvcmU6OlRFU1QpOgorICAgICAg
ICAoV2ViQ29yZSk6CisKIDIwMTItMDktMTkgIEtlbnQgVGFtdXJhICA8dGtlbnRAY2hyb21pdW0u
b3JnPgogCiAgICAgICAgIFtDaHJvbWl1bV0gRml4IGNyYXNoIGluIFdlYkZyYW1lSW1wbDo6bG9h
ZEhpc3RvcnlJdGVtCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0dOVW1ha2VmaWxlLmxpc3QuYW0g
Yi9Tb3VyY2UvV1RGL0dOVW1ha2VmaWxlLmxpc3QuYW0KaW5kZXggZThlNDJlZGQzNTUyZWRlNTVh
ZjE4NDIxMTUxZjBlYmI5MzM5NmI4NS4uMGVkMTBkZGFlMTQ4YTA3MzNhODM1MjY5NTRiNzgxOWZk
YmNiZGZmMiAxMDA2NDQKLS0tIGEvU291cmNlL1dURi9HTlVtYWtlZmlsZS5saXN0LmFtCisrKyBi
L1NvdXJjZS9XVEYvR05VbWFrZWZpbGUubGlzdC5hbQpAQCAtODAsNiArODAsNyBAQCB3dGZfc291
cmNlcyArPSBcCiAgICAgU291cmNlL1dURi93dGYvTWVkaWFUaW1lLmggXAogICAgIFNvdXJjZS9X
VEYvd3RmL01lZGlhVGltZS5jcHAgXAogICAgIFNvdXJjZS9XVEYvd3RmL01lbW9yeUluc3RydW1l
bnRhdGlvbi5oIFwKKyAgICBTb3VyY2UvV1RGL3d0Zi9NZW1vcnlJbnN0cnVtZW50YXRpb25WZWN0
b3IuaCBcCiAgICAgU291cmNlL1dURi93dGYvTWVzc2FnZVF1ZXVlLmggXAogICAgIFNvdXJjZS9X
VEYvd3RmL01ldGFBbGxvY2F0b3IuY3BwIFwKICAgICBTb3VyY2UvV1RGL3d0Zi9NZXRhQWxsb2Nh
dG9yLmggXApkaWZmIC0tZ2l0IGEvU291cmNlL1dURi9XVEYuZ3lwaSBiL1NvdXJjZS9XVEYvV1RG
Lmd5cGkKaW5kZXggNWRjZDAxZWQ3ZDNhNGI3YTljMzE4MWI1NGExYWE0YzVhOWYyMTM4MS4uZmRj
MjhkNmJiNTVlN2U1NjVkYWYwOTViNzNjYjUzYTczZTA5NDhmYyAxMDA2NDQKLS0tIGEvU291cmNl
L1dURi9XVEYuZ3lwaQorKysgYi9Tb3VyY2UvV1RGL1dURi5neXBpCkBAIC01MCw2ICs1MCw3IEBA
CiAgICAgICAgICAgICAnd3RmL01haW5UaHJlYWQuaCcsCiAgICAgICAgICAgICAnd3RmL01hdGhF
eHRyYXMuaCcsCiAgICAgICAgICAgICAnd3RmL01lbW9yeUluc3RydW1lbnRhdGlvbi5oJywKKyAg
ICAgICAgICAgICd3dGYvTWVtb3J5SW5zdHJ1bWVudGF0aW9uVmVjdG9yLmgnLAogICAgICAgICAg
ICAgJ3d0Zi9NZXNzYWdlUXVldWUuaCcsCiAgICAgICAgICAgICAnd3RmL05vbkNvcHlpbmdTb3J0
LmgnLAogICAgICAgICAgICAgJ3d0Zi9Ob25jb3B5YWJsZS5oJywKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XVEYvV1RGLnBybyBiL1NvdXJjZS9XVEYvV1RGLnBybwppbmRleCBiYzBhODc3MGVmMWE2N2Jm
NzViOWIyNWU1NDYxYmQ0Mzk1YTJkZDM4Li5lOGRhNGMwYzZiMjQ2NzBjZDBiNTgyNzU2MDMxM2Iw
MGM5Zjk4OThlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL1dURi5wcm8KKysrIGIvU291cmNlL1dU
Ri9XVEYucHJvCkBAIC04Nyw2ICs4Nyw3IEBAIEhFQURFUlMgKz0gXAogICAgIE1ENS5oIFwKICAg
ICBNZWRpYVRpbWUuaCBcCiAgICAgTWVtb3J5SW5zdHJ1bWVudGF0aW9uLmggXAorICAgIE1lbW9y
eUluc3RydW1lbnRhdGlvblZlY3Rvci5oIFwKICAgICBNZXNzYWdlUXVldWUuaCBcCiAgICAgTWV0
YUFsbG9jYXRvci5oIFwKICAgICBNZXRhQWxsb2NhdG9ySGFuZGxlLmggXApkaWZmIC0tZ2l0IGEv
U291cmNlL1dURi9XVEYudmNwcm9qL1dURi52Y3Byb2ogYi9Tb3VyY2UvV1RGL1dURi52Y3Byb2ov
V1RGLnZjcHJvagppbmRleCA0YjJjYzYyMWFlMTAwN2QzY2IxM2E1YzZkYTJhMjU3MWUxMTZkZGE1
Li5mOTEwOGM4OTM1ZTJmNTg0YWVhOGI4NzJhM2FlMzRjMTI0MzRlODQzIDEwMDY0NAotLS0gYS9T
b3VyY2UvV1RGL1dURi52Y3Byb2ovV1RGLnZjcHJvagorKysgYi9Tb3VyY2UvV1RGL1dURi52Y3By
b2ovV1RGLnZjcHJvagpAQCAtOTA1LDYgKzkwNSwxMCBAQAogCQkJPgogCQk8L0ZpbGU+CiAJCTxG
aWxlCisJCSAgICAgICAgUmVsYXRpdmVQYXRoPSIuLlx3dGZcTWVtb3J5SW5zdHJ1bWVudGF0aW9u
VmVjdG9yLmgiCisJCQk+CisJCTwvRmlsZT4KKwkJPEZpbGUKIAkJCVJlbGF0aXZlUGF0aD0iLi5c
d3RmXE1lc3NhZ2VRdWV1ZS5oIgogCQkJPgogCQk8L0ZpbGU+CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V1RGL1dURi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dURi9XVEYueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvagppbmRleCA1MmFmN2I5Y2VjYzVkMWE1MmFlMDhkOTdiNDIyYjNl
NWFhYmQwMDc2Li4zYmIxOWRkZDczYmEwOGMwMTBmNDcwODY2MmE3Y2EwNWUyMmE4YzQxIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV1RGL1dURi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1Nv
dXJjZS9XVEYvV1RGLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTE3LDYgKzE3LDcgQEAK
IAkJNDMzMEYzOEYxNTc0NUIwNTAwQUFGQThGIC8qIFVSTFN0cmluZy5jcHAgaW4gU291cmNlcyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0MzMwRjM4RTE1NzQ1QjA1MDBBQUZB
OEYgLyogVVJMU3RyaW5nLmNwcCAqLzsgfTsKIAkJNEYwMzIxQkMxNTZBQThEMTAwNkVCQUY2IC8q
IEJpdEFycmF5LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSA0RjAzMjFCQjE1NkFBOEQxMDA2RUJBRjYgLyogQml0QXJyYXkuaCAqLzsgfTsKIAkJNEYxRDEx
NTQxNUZGMTFCRTAwMjZFOTA4IC8qIE1lbW9yeUluc3RydW1lbnRhdGlvbi5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNEYxRDExNTMxNUZGMTFCRTAwMjZF
OTA4IC8qIE1lbW9yeUluc3RydW1lbnRhdGlvbi5oICovOyB9OworCQk0RkNCNzEwQTE2MEExQTA3
MDA4NDI1RUMgLyogTWVtb3J5SW5zdHJ1bWVudGF0aW9uVmVjdG9yLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0RkNCNzEwOTE2MEExQTA3MDA4NDI1RUMg
LyogTWVtb3J5SW5zdHJ1bWVudGF0aW9uVmVjdG9yLmggKi87IH07CiAJCTdFMjlDMzNFMTVGRkQ3
OUIwMDUxNkQ2MSAvKiBPYmpjUnVudGltZUV4dHJhcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gN0UyOUMzM0QxNUZGRDc5QjAwNTE2RDYxIC8qIE9iamNS
dW50aW1lRXh0cmFzLmggKi87IH07CiAJCTgxMzQwMTM4MTVCMDkyRkQwMDFGRjBCOCAvKiBCYXNl
NjQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODEz
NDAxMzYxNUIwOTJGRDAwMUZGMEI4IC8qIEJhc2U2NC5jcHAgKi87IH07CiAJCTgxMzQwMTM5MTVC
MDkyRkQwMDFGRjBCOCAvKiBCYXNlNjQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDgxMzQwMTM3MTVCMDkyRkQwMDFGRjBCOCAvKiBCYXNlNjQuaCAqLzsg
fTsKQEAgLTI2NSw2ICsyNjYsNyBAQAogCQk0MzMwRjM4RTE1NzQ1QjA1MDBBQUZBOEYgLyogVVJM
U3RyaW5nLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFVSTFN0cmlu
Zy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTRGMDMyMUJCMTU2QUE4RDEwMDZF
QkFGNiAvKiBCaXRBcnJheS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBCaXRB
cnJheS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0RjFEMTE1MzE1RkYxMUJFMDAy
NkU5MDggLyogTWVtb3J5SW5zdHJ1bWVudGF0aW9uLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IE1lbW9yeUluc3RydW1lbnRhdGlvbi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OworCQk0RkNCNzEwOTE2MEExQTA3MDA4NDI1RUMgLyogTWVtb3J5SW5zdHJ1bWVudGF0aW9u
VmVjdG9yLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE1lbW9yeUluc3RydW1l
bnRhdGlvblZlY3Rvci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1RDI0N0I2MjE0
Njg5Qjg2MDBFNzhCNzYgLyogbGliV1RGLmEgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZXhwbGljaXRGaWxlVHlwZSA9IGFyY2hpdmUuYXI7IGluY2x1ZGVJbkluZGV4ID0gMDsgcGF0aCA9
IGxpYldURi5hOyBzb3VyY2VUcmVlID0gQlVJTFRfUFJPRFVDVFNfRElSOyB9OwogCQk1RDI0N0I2
RTE0Njg5QzQ3MDBFNzhCNzYgLyogQmFzZS54Y2NvbmZpZyAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQueGNjb25maWc7IHBhdGggPSBCYXNlLnhj
Y29uZmlnOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1RDI0N0I2RjE0Njg5QzQ3MDBF
NzhCNzYgLyogQ29tcGlsZXJWZXJzaW9uLnhjY29uZmlnICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dC54Y2NvbmZpZzsgcGF0aCA9IENvbXBpbGVy
VmVyc2lvbi54Y2NvbmZpZzsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTY1MCw2ICs2
NTIsNyBAQAogCQkJCUNENTQ5N0FBMTU4NTdEMDMwMEI1QkMzMCAvKiBNZWRpYVRpbWUuY3BwICov
LAogCQkJCUNENTQ5N0FCMTU4NTdEMDMwMEI1QkMzMCAvKiBNZWRpYVRpbWUuaCAqLywKIAkJCQk0
RjFEMTE1MzE1RkYxMUJFMDAyNkU5MDggLyogTWVtb3J5SW5zdHJ1bWVudGF0aW9uLmggKi8sCisJ
CQkJNEZDQjcxMDkxNjBBMUEwNzAwODQyNUVDIC8qIE1lbW9yeUluc3RydW1lbnRhdGlvblZlY3Rv
ci5oICovLAogCQkJCUE4QTQ3MkNDMTUxQTgyNUIwMDQxMjNGRiAvKiBNZXNzYWdlUXVldWUuaCAq
LywKIAkJCQlBOEE0NzJDRDE1MUE4MjVCMDA0MTIzRkYgLyogTWV0YUFsbG9jYXRvci5jcHAgKi8s
CiAJCQkJQThBNDcyQ0UxNTFBODI1QjAwNDEyM0ZGIC8qIE1ldGFBbGxvY2F0b3IuaCAqLywKQEAg
LTEwNzYsNiArMTA3OSw3IEBACiAJCQkJQThBNDc0NDYxNTFBODI1QjAwNDEyM0ZGIC8qIFdURlN0
cmluZy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQThBNDc0ODcxNTFBODI1QjAwNDEyM0ZGIC8qIFdU
RlRocmVhZERhdGEuaCBpbiBIZWFkZXJzICovLAogCQkJCTRGMUQxMTU0MTVGRjExQkUwMDI2RTkw
OCAvKiBNZW1vcnlJbnN0cnVtZW50YXRpb24uaCBpbiBIZWFkZXJzICovLAorCQkJCTRGQ0I3MTBB
MTYwQTFBMDcwMDg0MjVFQyAvKiBNZW1vcnlJbnN0cnVtZW50YXRpb25WZWN0b3IuaCBpbiBIZWFk
ZXJzICovLAogCQkJKTsKIAkJCXJ1bk9ubHlGb3JEZXBsb3ltZW50UG9zdHByb2Nlc3NpbmcgPSAw
OwogCQl9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvTWVtb3J5SW5zdHJ1bWVudGF0aW9u
LmggYi9Tb3VyY2UvV1RGL3d0Zi9NZW1vcnlJbnN0cnVtZW50YXRpb24uaAppbmRleCAxMzFhZjg0
OTdhY2VhZDNhOWI5Y2FjMmRlZTE3NDdjODJlOTBiNjEzLi5mMGJiNDhiNmY5MzVmYjk2MjQxNmQ3
ZmRhODBmNzEwZGM1NmE2MTIwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9NZW1vcnlJbnN0
cnVtZW50YXRpb24uaAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9NZW1vcnlJbnN0cnVtZW50YXRpb24u
aApAQCAtODEsNiArODEsOCBAQCBwcml2YXRlOgogICAgIHNpemVfdCBtX29iamVjdFNpemU7CiB9
OwogCit0ZW1wbGF0ZTx0eXBlbmFtZSBUPiB2b2lkIHJlcG9ydE1lbW9yeVVzYWdlKGNvbnN0IFQq
IGNvbnN0JiwgTWVtb3J5T2JqZWN0SW5mbyopOworCiBjbGFzcyBNZW1vcnlJbnN0cnVtZW50YXRp
b24gewogcHVibGljOgogICAgIHZpcnR1YWwgfk1lbW9yeUluc3RydW1lbnRhdGlvbigpIHsgfQpA
QCAtMTAwLDYgKzEwMiwxMyBAQCBwcm90ZWN0ZWQ6CiAgICAgICAgIHZpcnR1YWwgdm9pZCBwcm9j
ZXNzKE1lbW9yeUluc3RydW1lbnRhdGlvbiopID0gMDsKICAgICB9OwogCisgICAgdGVtcGxhdGU8
dHlwZW5hbWUgVD4gc3RhdGljIHZvaWQgc2VsZWN0SW5zdHJ1bWVudGF0aW9uTWV0aG9kKGNvbnN0
IFQqIGNvbnN0JiBvYmplY3QsIE1lbW9yeU9iamVjdEluZm8qIG1lbW9yeU9iamVjdEluZm8pCisg
ICAgeworICAgICAgICAvLyBJZiB0aGVyZSBpcyByZXBvcnRNZW1vcnlVc2FnZSBtZXRob2Qgb24g
dGhlIG9iamVjdCwgY2FsbCBpdC4KKyAgICAgICAgLy8gT3RoZXJ3aXNlIGNvdW50IG9ubHkgb2Jq
ZWN0J3Mgc2VsZiBzaXplLgorICAgICAgICByZXBvcnRPYmplY3RNZW1vcnlVc2FnZTxULCB2b2lk
IChUOjoqKShNZW1vcnlPYmplY3RJbmZvKikgY29uc3Q+KG9iamVjdCwgbWVtb3J5T2JqZWN0SW5m
bywgMCk7CisgICAgfQorCiBwcml2YXRlOgogICAgIHZpcnR1YWwgdm9pZCBjb3VudE9iamVjdFNp
emUoTWVtb3J5T2JqZWN0VHlwZSwgc2l6ZV90KSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIGRlZmVy
SW5zdHJ1bWVudGVkUG9pbnRlcihQYXNzT3duUHRyPEluc3RydW1lbnRlZFBvaW50ZXJCYXNlPikg
PSAwOwpAQCAtMTA3LDEzICsxMTYsNyBAQCBwcml2YXRlOgogICAgIHZpcnR1YWwgdm9pZCBwcm9j
ZXNzRGVmZXJyZWRJbnN0cnVtZW50ZWRQb2ludGVycygpID0gMDsKIAogICAgIGZyaWVuZCBjbGFz
cyBNZW1vcnlDbGFzc0luZm87Ci0KLSAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBUPiBzdGF0aWMgdm9p
ZCBzZWxlY3RJbnN0cnVtZW50YXRpb25NZXRob2QoY29uc3QgVCogY29uc3QmIG9iamVjdCwgTWVt
b3J5T2JqZWN0SW5mbyogbWVtb3J5T2JqZWN0SW5mbykKLSAgICB7Ci0gICAgICAgIC8vIElmIHRo
ZXJlIGlzIHJlcG9ydE1lbW9yeVVzYWdlIG1ldGhvZCBvbiB0aGUgb2JqZWN0LCBjYWxsIGl0Lgot
ICAgICAgICAvLyBPdGhlcndpc2UgY291bnQgb25seSBvYmplY3QncyBzZWxmIHNpemUuCi0gICAg
ICAgIHJlcG9ydE9iamVjdE1lbW9yeVVzYWdlPFQsIHZvaWQgKFQ6OiopKE1lbW9yeU9iamVjdElu
Zm8qKSBjb25zdD4ob2JqZWN0LCBtZW1vcnlPYmplY3RJbmZvLCAwKTsKLSAgICB9CisgICAgdGVt
cGxhdGU8dHlwZW5hbWUgVD4gZnJpZW5kIHZvaWQgcmVwb3J0TWVtb3J5VXNhZ2UoY29uc3QgVCog
Y29uc3QmLCBNZW1vcnlPYmplY3RJbmZvKik7CiAKICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBUeXBl
LCBUeXBlIFB0cj4gc3RydWN0IE1lbWJlckhlbHBlclN0cnVjdDsKICAgICB0ZW1wbGF0ZTx0eXBl
bmFtZSBULCB0eXBlbmFtZSBUeXBlPgpAQCAtMjEzLDExICsyMTYsMTcgQEAgcHJpdmF0ZToKIH07
CiAKIHRlbXBsYXRlPHR5cGVuYW1lIFQ+Cit2b2lkIHJlcG9ydE1lbW9yeVVzYWdlKGNvbnN0IFQq
IGNvbnN0JiBvYmplY3QsIE1lbW9yeU9iamVjdEluZm8qIG1lbW9yeU9iamVjdEluZm8pCit7Cisg
ICAgTWVtb3J5SW5zdHJ1bWVudGF0aW9uOjpzZWxlY3RJbnN0cnVtZW50YXRpb25NZXRob2Q8VD4o
b2JqZWN0LCBtZW1vcnlPYmplY3RJbmZvKTsKK30KKwordGVtcGxhdGU8dHlwZW5hbWUgVD4KIHZv
aWQgTWVtb3J5SW5zdHJ1bWVudGF0aW9uOjphZGRPYmplY3RJbXBsKGNvbnN0IFQqIGNvbnN0JiBv
YmplY3QsIE1lbW9yeU9iamVjdFR5cGUgb3duZXJPYmplY3RUeXBlLCBNZW1vcnlPd25pbmdUeXBl
IG93bmluZ1R5cGUpCiB7CiAgICAgaWYgKG93bmluZ1R5cGUgPT0gYnlSZWZlcmVuY2UpIHsKICAg
ICAgICAgTWVtb3J5T2JqZWN0SW5mbyBtZW1vcnlPYmplY3RJbmZvKHRoaXMsIG93bmVyT2JqZWN0
VHlwZSk7Ci0gICAgICAgIHNlbGVjdEluc3RydW1lbnRhdGlvbk1ldGhvZDxUPihvYmplY3QsICZt
ZW1vcnlPYmplY3RJbmZvKTsKKyAgICAgICAgcmVwb3J0TWVtb3J5VXNhZ2Uob2JqZWN0LCAmbWVt
b3J5T2JqZWN0SW5mbyk7CiAgICAgfSBlbHNlIHsKICAgICAgICAgaWYgKCFvYmplY3QgfHwgdmlz
aXRlZChvYmplY3QpKQogICAgICAgICAgICAgcmV0dXJuOwpAQCAtMzEzLDcgKzMyMiw3IEBAIHRl
bXBsYXRlPHR5cGVuYW1lIFQ+CiB2b2lkIE1lbW9yeUluc3RydW1lbnRhdGlvbjo6SW5zdHJ1bWVu
dGVkUG9pbnRlcjxUPjo6cHJvY2VzcyhNZW1vcnlJbnN0cnVtZW50YXRpb24qIG1lbW9yeUluc3Ry
dW1lbnRhdGlvbikKIHsKICAgICBNZW1vcnlPYmplY3RJbmZvIG1lbW9yeU9iamVjdEluZm8obWVt
b3J5SW5zdHJ1bWVudGF0aW9uLCBtX293bmVyT2JqZWN0VHlwZSk7Ci0gICAgc2VsZWN0SW5zdHJ1
bWVudGF0aW9uTWV0aG9kPFQ+KG1fcG9pbnRlciwgJm1lbW9yeU9iamVjdEluZm8pOworICAgIHJl
cG9ydE1lbW9yeVVzYWdlKG1fcG9pbnRlciwgJm1lbW9yeU9iamVjdEluZm8pOwogICAgIG1lbW9y
eUluc3RydW1lbnRhdGlvbi0+Y291bnRPYmplY3RTaXplKG1lbW9yeU9iamVjdEluZm8ub2JqZWN0
VHlwZSgpLCBtZW1vcnlPYmplY3RJbmZvLm9iamVjdFNpemUoKSk7CiB9CiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XVEYvd3RmL01lbW9yeUluc3RydW1lbnRhdGlvblZlY3Rvci5oIGIvU291cmNlL1dU
Ri93dGYvTWVtb3J5SW5zdHJ1bWVudGF0aW9uVmVjdG9yLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMTQ1YTQ5ZWVm
MWViMTBiZmExMTM3MTJhNDllY2RhY2FjYjRhYjVlMgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJj
ZS9XVEYvd3RmL01lbW9yeUluc3RydW1lbnRhdGlvblZlY3Rvci5oCkBAIC0wLDAgKzEsNTkgQEAK
Ky8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTIgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKKyAqIG1ldDoKKyAqCisgKiAg
ICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3Zl
IGNvcHlyaWdodAorICogbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyLgorICogICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBm
b3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQorICogY29weXJpZ2h0IG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgorICogaW4gdGhl
IGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQor
ICogZGlzdHJpYnV0aW9uLgorICogICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5j
LiBub3IgdGhlIG5hbWVzIG9mIGl0cworICogY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVu
ZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KKyAqIHRoaXMgc29mdHdhcmUg
d2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisgKgorICogVEhJUyBT
T0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJV
VE9SUworICogIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJ
TkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMg
T0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgorICogQSBQQVJUSUNVTEFSIFBVUlBP
U0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKKyAqIE9X
TkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJ
TkNJREVOVEFMLAorICogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFH
RVMgKElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VC
U1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCisgKiBEQVRBLCBPUiBQUk9G
SVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkK
KyAqIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFC
SUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFS
SVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZF
TiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisj
aWZuZGVmIE1lbW9yeUluc3RydW1lbnRhdGlvblZlY3Rvcl9oCisjZGVmaW5lIE1lbW9yeUluc3Ry
dW1lbnRhdGlvblZlY3Rvcl9oCisKKyNpbmNsdWRlIDx3dGYvTWVtb3J5SW5zdHJ1bWVudGF0aW9u
Lmg+CisjaW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgorCituYW1lc3BhY2UgV1RGIHsKKwordGVtcGxh
dGU8dHlwZW5hbWUgVCwgc2l6ZV90IGlubGluZV9jYXBhY2l0eT4KK3ZvaWQgaW5zdHJ1bWVudFZl
Y3RvclZhbHVlcyhNZW1vcnlDbGFzc0luZm8mIGluZm8sIGNvbnN0IFZlY3RvcjxULCBpbmxpbmVf
Y2FwYWNpdHk+KiBjb25zdCYgdmVjdG9yKQoreworICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwg
dmVjdG9yLT5zaXplKCk7ICsraSkKKyAgICAgICAgaW5mby5hZGRNZW1iZXIodmVjdG9yLT5hdChp
KSk7Cit9CisKK3RlbXBsYXRlPHNpemVfdCBpbmxpbmVfY2FwYWNpdHk+IHZvaWQgaW5zdHJ1bWVu
dFZlY3RvclZhbHVlcyhNZW1vcnlDbGFzc0luZm8mIGluZm8sIGNvbnN0IFZlY3RvcjxpbnQsIGlu
bGluZV9jYXBhY2l0eT4qIGNvbnN0JiB2ZWN0b3IpIHsgfQorCit0ZW1wbGF0ZTx0eXBlbmFtZSBU
LCBzaXplX3QgaW5saW5lX2NhcGFjaXR5Pgordm9pZCByZXBvcnRNZW1vcnlVc2FnZShjb25zdCBW
ZWN0b3I8VCwgaW5saW5lX2NhcGFjaXR5PiogY29uc3QmIHZlY3RvciwgTWVtb3J5T2JqZWN0SW5m
byogbWVtb3J5T2JqZWN0SW5mbykKK3sKKyAgICBNZW1vcnlDbGFzc0luZm8gaW5mbyhtZW1vcnlP
YmplY3RJbmZvLCB2ZWN0b3IpOworICAgIGlmIChpbmxpbmVfY2FwYWNpdHkgPCB2ZWN0b3ItPmNh
cGFjaXR5KCkpCisgICAgICAgIGluZm8uYWRkUmF3QnVmZmVyKHZlY3Rvci0+ZGF0YSgpLCB2ZWN0
b3ItPmNhcGFjaXR5KCkgKiBzaXplb2YoVCkpOworICAgIGluc3RydW1lbnRWZWN0b3JWYWx1ZXMo
aW5mbywgdmVjdG9yKTsKK30KKworfQorCisjZW5kaWYgLy8gIWRlZmluZWQoTWVtb3J5SW5zdHJ1
bWVudGF0aW9uVmVjdG9yX2gpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9WZWN0b3IuaCBi
L1NvdXJjZS9XVEYvd3RmL1ZlY3Rvci5oCmluZGV4IDhhNWVhZjYyMTMyYmZlMGU3MDI5YTAyN2Uy
Y2JjYmQzMzAzOTk0M2MuLjllOTUzYzY0YTE4YmVmNzc2NDYwNzNiZmQ5MGQxNDlkMGZlNTQ4MWEg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL1ZlY3Rvci5oCisrKyBiL1NvdXJjZS9XVEYvd3Rm
L1ZlY3Rvci5oCkBAIC0xMjU2LDYgKzEyNTYsOSBAQCBuYW1lc3BhY2UgV1RGIHsKICAgICB9Owog
I2VuZGlmCiAKKyAgICBjbGFzcyBNZW1vcnlPYmplY3RJbmZvOworICAgIHRlbXBsYXRlPHR5cGVu
YW1lIFQsIHNpemVfdCBpbmxpbmVDYXBhY2l0eT4gdm9pZCByZXBvcnRNZW1vcnlVc2FnZShjb25z
dCBWZWN0b3I8VCwgaW5saW5lQ2FwYWNpdHk+KiBjb25zdCYsIE1lbW9yeU9iamVjdEluZm8qKTsK
KwogfSAvLyBuYW1lc3BhY2UgV1RGCiAKIHVzaW5nIFdURjo6VmVjdG9yOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvY3NzL0NTU0dyYWRpZW50VmFsdWUuY3BwIGIvU291cmNlL1dlYkNvcmUv
Y3NzL0NTU0dyYWRpZW50VmFsdWUuY3BwCmluZGV4IGY5NzE1ZjI3ZjU4NTFjOTJhMTg1M2RiNDZi
YTcwYmRhZGUxYWVhMjcuLmQwMGMxMzA4ZTUxMGIzMGRiZGI3MzM5ZGFmYWE4NzdiYTUyNGM3ZWQg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NHcmFkaWVudFZhbHVlLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTR3JhZGllbnRWYWx1ZS5jcHAKQEAgLTM3LDYgKzM3LDcg
QEAKICNpbmNsdWRlICJSZW5kZXJPYmplY3QuaCIKICNpbmNsdWRlICJTdHlsZVJlc29sdmVyLmgi
CiAjaW5jbHVkZSAiV2ViQ29yZU1lbW9yeUluc3RydW1lbnRhdGlvbi5oIgorI2luY2x1ZGUgPHd0
Zi9NZW1vcnlJbnN0cnVtZW50YXRpb25WZWN0b3IuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9TdHJp
bmdCdWlsZGVyLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CiAKQEAgLTQ2OSw3
ICs0NzAsNyBAQCB2b2lkIENTU0dyYWRpZW50VmFsdWU6OnJlcG9ydEJhc2VDbGFzc01lbW9yeVVz
YWdlKE1lbW9yeU9iamVjdEluZm8qIG1lbW9yeU9iamVjdAogICAgIGluZm8uYWRkTWVtYmVyKG1f
Zmlyc3RZKTsKICAgICBpbmZvLmFkZE1lbWJlcihtX3NlY29uZFgpOwogICAgIGluZm8uYWRkTWVt
YmVyKG1fc2Vjb25kWSk7Ci0gICAgaW5mby5hZGRJbnN0cnVtZW50ZWRWZWN0b3IobV9zdG9wcyk7
CisgICAgaW5mby5hZGRNZW1iZXIobV9zdG9wcyk7CiB9CiAKIFN0cmluZyBDU1NMaW5lYXJHcmFk
aWVudFZhbHVlOjpjdXN0b21Dc3NUZXh0KCkgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2Nzcy9DU1NJbWFnZVNldFZhbHVlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NJbWFn
ZVNldFZhbHVlLmNwcAppbmRleCA1ZTZiZWU1YTYzY2EzMDM2NTcyNGRhZGE5NjgwZDIwNmZkMWNi
MGE4Li42ZTAyYTIwZjk1YWMzZjE0ZjQ2MWExYzUxMDBiNGFkNjJiZDllZjBhIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTSW1hZ2VTZXRWYWx1ZS5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvY3NzL0NTU0ltYWdlU2V0VmFsdWUuY3BwCkBAIC0zNyw2ICszNyw3IEBACiAjaW5jbHVk
ZSAiU3R5bGVDYWNoZWRJbWFnZVNldC5oIgogI2luY2x1ZGUgIlN0eWxlUGVuZGluZ0ltYWdlLmgi
CiAjaW5jbHVkZSAiV2ViQ29yZU1lbW9yeUluc3RydW1lbnRhdGlvbi5oIgorI2luY2x1ZGUgPHd0
Zi9NZW1vcnlJbnN0cnVtZW50YXRpb25WZWN0b3IuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewog
CkBAIC0xNjgsNyArMTY5LDcgQEAgdm9pZCBDU1NJbWFnZVNldFZhbHVlOjpyZXBvcnREZXNjZW5k
YW50TWVtb3J5VXNhZ2UoTWVtb3J5T2JqZWN0SW5mbyogbWVtb3J5T2JqZWMKIHsKICAgICBNZW1v
cnlDbGFzc0luZm8gaW5mbyhtZW1vcnlPYmplY3RJbmZvLCB0aGlzLCBXZWJDb3JlTWVtb3J5VHlw
ZXM6OkNTUyk7CiAgICAgQ1NTVmFsdWVMaXN0OjpyZXBvcnREZXNjZW5kYW50TWVtb3J5VXNhZ2Uo
bWVtb3J5T2JqZWN0SW5mbyk7Ci0gICAgaW5mby5hZGRJbnN0cnVtZW50ZWRWZWN0b3IobV9pbWFn
ZXNJblNldCk7CisgICAgaW5mby5hZGRNZW1iZXIobV9pbWFnZXNJblNldCk7CiB9CiAKIHZvaWQg
Q1NTSW1hZ2VTZXRWYWx1ZTo6SW1hZ2VXaXRoU2NhbGU6OnJlcG9ydE1lbW9yeVVzYWdlKE1lbW9y
eU9iamVjdEluZm8qIG1lbW9yeU9iamVjdEluZm8pIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9jc3MvQ1NTTWVkaWFSdWxlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NNZWRp
YVJ1bGUuY3BwCmluZGV4IGYwZTljNzljM2YxMmVlMzc2NDdlZTA3NTkwYmJmOTcwOTcwZWJhYmUu
LjhjMmM5NzNjMjEwNjM2YTYxZWQ2MmU3OTRhYzcwMWRlMzk1YWVjNjkgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2Nzcy9DU1NNZWRpYVJ1bGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nz
cy9DU1NNZWRpYVJ1bGUuY3BwCkBAIC0yOSw2ICsyOSw3IEBACiAjaW5jbHVkZSAiRXhjZXB0aW9u
Q29kZS5oIgogI2luY2x1ZGUgIlN0eWxlUnVsZS5oIgogI2luY2x1ZGUgIldlYkNvcmVNZW1vcnlJ
bnN0cnVtZW50YXRpb24uaCIKKyNpbmNsdWRlIDx3dGYvTWVtb3J5SW5zdHJ1bWVudGF0aW9uVmVj
dG9yLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvU3RyaW5nQnVpbGRlci5oPgogCiBuYW1lc3BhY2Ug
V2ViQ29yZSB7CkBAIC0xODAsNyArMTgxLDcgQEAgdm9pZCBDU1NNZWRpYVJ1bGU6OnJlcG9ydERl
c2NlbmRhbnRNZW1vcnlVc2FnZShNZW1vcnlPYmplY3RJbmZvKiBtZW1vcnlPYmplY3RJbmYKICAg
ICBNZW1vcnlDbGFzc0luZm8gaW5mbyhtZW1vcnlPYmplY3RJbmZvLCB0aGlzLCBXZWJDb3JlTWVt
b3J5VHlwZXM6OkNTUyk7CiAgICAgQ1NTUnVsZTo6cmVwb3J0QmFzZUNsYXNzTWVtb3J5VXNhZ2Uo
bWVtb3J5T2JqZWN0SW5mbyk7CiAgICAgaW5mby5hZGRNZW1iZXIobV9tZWRpYUNTU09NV3JhcHBl
cik7Ci0gICAgaW5mby5hZGRJbnN0cnVtZW50ZWRWZWN0b3IobV9jaGlsZFJ1bGVDU1NPTVdyYXBw
ZXJzKTsKKyAgICBpbmZvLmFkZE1lbWJlcihtX2NoaWxkUnVsZUNTU09NV3JhcHBlcnMpOwogICAg
IGluZm8uYWRkTWVtYmVyKG1fcnVsZUxpc3RDU1NPTVdyYXBwZXIpOwogfQogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUnVsZUxpc3QuY3BwIGIvU291cmNlL1dlYkNvcmUvY3Nz
L0NTU1J1bGVMaXN0LmNwcAppbmRleCA0NzJiM2RkNjBkMDA5NGY3NTA1Y2FiYTE2MzlhNjhiY2Jm
YjQ4Y2RlLi5kYWRjOTNiMTU0N2I0MTQ5ZGVjMGQ5NmVhNGUxNTY1M2IwNzY3MWVjIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUnVsZUxpc3QuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2Nzcy9DU1NSdWxlTGlzdC5jcHAKQEAgLTI0LDYgKzI0LDcgQEAKIAogI2luY2x1ZGUgIkNT
U1J1bGUuaCIKICNpbmNsdWRlICJDU1NTdHlsZVNoZWV0LmgiCisjaW5jbHVkZSA8d3RmL01lbW9y
eUluc3RydW1lbnRhdGlvblZlY3Rvci5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKQEAgLTU0
LDcgKzU1LDcgQEAgdm9pZCBTdGF0aWNDU1NSdWxlTGlzdDo6ZGVyZWYoKQogdm9pZCBTdGF0aWND
U1NSdWxlTGlzdDo6cmVwb3J0TWVtb3J5VXNhZ2UoTWVtb3J5T2JqZWN0SW5mbyogbWVtb3J5T2Jq
ZWN0SW5mbykgY29uc3QKIHsKICAgICBNZW1vcnlDbGFzc0luZm8gaW5mbyhtZW1vcnlPYmplY3RJ
bmZvLCB0aGlzLCBXZWJDb3JlTWVtb3J5VHlwZXM6OkNTUyk7Ci0gICAgaW5mby5hZGRJbnN0cnVt
ZW50ZWRWZWN0b3IobV9ydWxlcyk7CisgICAgaW5mby5hZGRNZW1iZXIobV9ydWxlcyk7CiB9CiAK
IH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9D
U1NTdHlsZVNoZWV0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NTdHlsZVNoZWV0LmNwcApp
bmRleCAwZTEwMjAyYzdmZWJiZjJiZTZkODlhZmNjZDU3ZGIyZDAzYTYyY2UyLi5kY2ZjMjIwMDZm
ZjI2NTNkMTEwYzI5YzMzNWFlYjZkMjcxNzE0NWVkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9jc3MvQ1NTU3R5bGVTaGVldC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1N0eWxl
U2hlZXQuY3BwCkBAIC0zOCw2ICszOCw3IEBACiAjaW5jbHVkZSAiU3R5bGVSdWxlLmgiCiAjaW5j
bHVkZSAiU3R5bGVTaGVldENvbnRlbnRzLmgiCiAjaW5jbHVkZSAiV2ViQ29yZU1lbW9yeUluc3Ry
dW1lbnRhdGlvbi5oIgorI2luY2x1ZGUgPHd0Zi9NZW1vcnlJbnN0cnVtZW50YXRpb25WZWN0b3Iu
aD4KICNpbmNsdWRlIDx3dGYvdGV4dC9TdHJpbmdCdWlsZGVyLmg+CiAKIG5hbWVzcGFjZSBXZWJD
b3JlIHsKQEAgLTE4Nyw3ICsxODgsNyBAQCB2b2lkIENTU1N0eWxlU2hlZXQ6OnJlcG9ydE1lbW9y
eVVzYWdlKE1lbW9yeU9iamVjdEluZm8qIG1lbW9yeU9iamVjdEluZm8pIGNvbnN0CiAgICAgaW5m
by5hZGRNZW1iZXIobV9vd25lck5vZGUpOwogICAgIGluZm8uYWRkTWVtYmVyKG1fb3duZXJSdWxl
KTsKICAgICBpbmZvLmFkZE1lbWJlcihtX21lZGlhQ1NTT01XcmFwcGVyKTsKLSAgICBpbmZvLmFk
ZEluc3RydW1lbnRlZFZlY3RvcihtX2NoaWxkUnVsZUNTU09NV3JhcHBlcnMpOworICAgIGluZm8u
YWRkTWVtYmVyKG1fY2hpbGRSdWxlQ1NTT01XcmFwcGVycyk7CiB9CiAKIHZvaWQgQ1NTU3R5bGVT
aGVldDo6c2V0RGlzYWJsZWQoYm9vbCBkaXNhYmxlZCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2Nzcy9DU1NWYWx1ZUxpc3QuY3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1ZhbHVlTGlz
dC5jcHAKaW5kZXggMjFlNGZhNzAzNWUwNjA3MDIwNjVmMzlmOWFhYzU4ZDBiNmZhNjZjMy4uOWVj
MmQ1MDg1ZmI5ZDZkMzhkZDRjZWIyMTgzYjkxNDhiYjk0MmU5NSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvY3NzL0NTU1ZhbHVlTGlzdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0NT
U1ZhbHVlTGlzdC5jcHAKQEAgLTIzLDYgKzIzLDcgQEAKIAogI2luY2x1ZGUgIkNTU1BhcnNlclZh
bHVlcy5oIgogI2luY2x1ZGUgIldlYkNvcmVNZW1vcnlJbnN0cnVtZW50YXRpb24uaCIKKyNpbmNs
dWRlIDx3dGYvTWVtb3J5SW5zdHJ1bWVudGF0aW9uVmVjdG9yLmg+CiAjaW5jbHVkZSA8d3RmL1Bh
c3NPd25QdHIuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9TdHJpbmdCdWlsZGVyLmg+CiAKQEAgLTE4
OSw3ICsxOTAsNyBAQCBQYXNzUmVmUHRyPENTU1ZhbHVlTGlzdD4gQ1NTVmFsdWVMaXN0OjpjbG9u
ZUZvckNTU09NKCkgY29uc3QKIHZvaWQgQ1NTVmFsdWVMaXN0OjpyZXBvcnREZXNjZW5kYW50TWVt
b3J5VXNhZ2UoTWVtb3J5T2JqZWN0SW5mbyogbWVtb3J5T2JqZWN0SW5mbykgY29uc3QKIHsKICAg
ICBNZW1vcnlDbGFzc0luZm8gaW5mbyhtZW1vcnlPYmplY3RJbmZvLCB0aGlzLCBXZWJDb3JlTWVt
b3J5VHlwZXM6OkNTUyk7Ci0gICAgaW5mby5hZGRJbnN0cnVtZW50ZWRWZWN0b3IobV92YWx1ZXMp
OworICAgIGluZm8uYWRkTWVtYmVyKG1fdmFsdWVzKTsKIH0KIAogfSAvLyBuYW1lc3BhY2UgV2Vi
Q29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL01lZGlhTGlzdC5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9jc3MvTWVkaWFMaXN0LmNwcAppbmRleCA2MjkwM2Q2YjE2ZTQ0MDI5YzEyODcz
Yzk3YTk3YTNmMTA4ZjU1ZDdkLi5iZGJjNTcxNzQ4MzRiMjBiODBjZDMxZmQyZWJlOWUyNWFjMzRj
NjA3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvTWVkaWFMaXN0LmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9jc3MvTWVkaWFMaXN0LmNwcApAQCAtMjcsNiArMjcsNyBAQAogI2luY2x1
ZGUgIk1lZGlhUXVlcnkuaCIKICNpbmNsdWRlICJNZWRpYVF1ZXJ5RXhwLmgiCiAjaW5jbHVkZSAi
V2ViQ29yZU1lbW9yeUluc3RydW1lbnRhdGlvbi5oIgorI2luY2x1ZGUgPHd0Zi9NZW1vcnlJbnN0
cnVtZW50YXRpb25WZWN0b3IuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9TdHJpbmdCdWlsZGVyLmg+
CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKQEAgLTIxNSw3ICsyMTYsNyBAQCBTdHJpbmcgTWVkaWFR
dWVyeVNldDo6bWVkaWFUZXh0KCkgY29uc3QKIHZvaWQgTWVkaWFRdWVyeVNldDo6cmVwb3J0TWVt
b3J5VXNhZ2UoTWVtb3J5T2JqZWN0SW5mbyogbWVtb3J5T2JqZWN0SW5mbykgY29uc3QKIHsKICAg
ICBNZW1vcnlDbGFzc0luZm8gaW5mbyhtZW1vcnlPYmplY3RJbmZvLCB0aGlzLCBXZWJDb3JlTWVt
b3J5VHlwZXM6OkNTUyk7Ci0gICAgaW5mby5hZGRJbnN0cnVtZW50ZWRWZWN0b3IobV9xdWVyaWVz
KTsKKyAgICBpbmZvLmFkZE1lbWJlcihtX3F1ZXJpZXMpOwogfQogICAgIAogTWVkaWFMaXN0OjpN
ZWRpYUxpc3QoTWVkaWFRdWVyeVNldCogbWVkaWFRdWVyaWVzLCBDU1NTdHlsZVNoZWV0KiBwYXJl
bnRTaGVldCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9NZWRpYVF1ZXJ5LmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2Nzcy9NZWRpYVF1ZXJ5LmNwcAppbmRleCBhM2YyNWQ3MTJkNWIxMDM0
MDI3MWJjMjAwMjViOTY2NzMxNDYyZDY0Li5mYzQ1NTFmZmIxODM3OTllMzQwMjhhMjViMmJmZTcz
ODQzNTMyYjJiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvTWVkaWFRdWVyeS5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvY3NzL01lZGlhUXVlcnkuY3BwCkBAIC0zMSw2ICszMSw3IEBA
CiAKICNpbmNsdWRlICJNZWRpYVF1ZXJ5RXhwLmgiCiAjaW5jbHVkZSAiV2ViQ29yZU1lbW9yeUlu
c3RydW1lbnRhdGlvbi5oIgorI2luY2x1ZGUgPHd0Zi9NZW1vcnlJbnN0cnVtZW50YXRpb25WZWN0
b3IuaD4KICNpbmNsdWRlIDx3dGYvTm9uQ29weWluZ1NvcnQuaD4KICNpbmNsdWRlIDx3dGYvdGV4
dC9TdHJpbmdCdWlsZGVyLmg+CiAKQEAgLTEzOCw3ICsxMzksNyBAQCB2b2lkIE1lZGlhUXVlcnk6
OnJlcG9ydE1lbW9yeVVzYWdlKE1lbW9yeU9iamVjdEluZm8qIG1lbW9yeU9iamVjdEluZm8pIGNv
bnN0CiB7CiAgICAgTWVtb3J5Q2xhc3NJbmZvIGluZm8obWVtb3J5T2JqZWN0SW5mbywgdGhpcywg
V2ViQ29yZU1lbW9yeVR5cGVzOjpDU1MpOwogICAgIGluZm8uYWRkTWVtYmVyKG1fbWVkaWFUeXBl
KTsKLSAgICBpbmZvLmFkZEluc3RydW1lbnRlZFZlY3RvclB0cihtX2V4cHJlc3Npb25zKTsKKyAg
ICBpbmZvLmFkZE1lbWJlcihtX2V4cHJlc3Npb25zKTsKICAgICBpbmZvLmFkZE1lbWJlcihtX3Nl
cmlhbGl6YXRpb25DYWNoZSk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9T
dHlsZVJlc29sdmVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9TdHlsZVJlc29sdmVyLmNwcApp
bmRleCA1MTdiZGI2YjJlMGY2YTA3MmI2YzkwMTlkY2FiMTg4ZDFkY2RlZTk1Li5mZDM0OWY2MGZh
YTY2NTA2YTA4NGI5NDExNTliNTMyMzI2ZDg0OGM5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9jc3MvU3R5bGVSZXNvbHZlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL1N0eWxlUmVz
b2x2ZXIuY3BwCkBAIC0xMjUsNiArMTI1LDcgQEAKICNpbmNsdWRlICJXZWJLaXRDU1NUcmFuc2Zv
cm1WYWx1ZS5oIgogI2luY2x1ZGUgIldlYktpdEZvbnRGYW1pbHlOYW1lcy5oIgogI2luY2x1ZGUg
IlhNTE5hbWVzLmgiCisjaW5jbHVkZSA8d3RmL01lbW9yeUluc3RydW1lbnRhdGlvblZlY3Rvci5o
PgogI2luY2x1ZGUgPHd0Zi9TdGRMaWJFeHRyYXMuaD4KICNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+
CiAKQEAgLTI1NjYsNyArMjU2Nyw3IEBAIHN0YXRpYyB2b2lkIHJlcG9ydEF0b21SdWxlTWFwKE1l
bW9yeUNsYXNzSW5mbyogaW5mbywgY29uc3QgUnVsZVNldDo6QXRvbVJ1bGVNYXAmCiB7CiAgICAg
aW5mby0+YWRkSGFzaE1hcChhdG9taWNSdWxlTWFwKTsKICAgICBmb3IgKFJ1bGVTZXQ6OkF0b21S
dWxlTWFwOjpjb25zdF9pdGVyYXRvciBpdCA9IGF0b21pY1J1bGVNYXAuYmVnaW4oKTsgaXQgIT0g
YXRvbWljUnVsZU1hcC5lbmQoKTsgKytpdCkKLSAgICAgICAgaW5mby0+YWRkSW5zdHJ1bWVudGVk
VmVjdG9yKCppdC0+c2Vjb25kKTsKKyAgICAgICAgaW5mby0+YWRkTWVtYmVyKCppdC0+c2Vjb25k
KTsKIH0KIAogdm9pZCBSdWxlU2V0OjpyZXBvcnRNZW1vcnlVc2FnZShNZW1vcnlPYmplY3RJbmZv
KiBtZW1vcnlPYmplY3RJbmZvKSBjb25zdApAQCAtMjU3NiwxMSArMjU3NywxMSBAQCB2b2lkIFJ1
bGVTZXQ6OnJlcG9ydE1lbW9yeVVzYWdlKE1lbW9yeU9iamVjdEluZm8qIG1lbW9yeU9iamVjdElu
Zm8pIGNvbnN0CiAgICAgcmVwb3J0QXRvbVJ1bGVNYXAoJmluZm8sIG1fY2xhc3NSdWxlcyk7CiAg
ICAgcmVwb3J0QXRvbVJ1bGVNYXAoJmluZm8sIG1fdGFnUnVsZXMpOwogICAgIHJlcG9ydEF0b21S
dWxlTWFwKCZpbmZvLCBtX3NoYWRvd1BzZXVkb0VsZW1lbnRSdWxlcyk7Ci0gICAgaW5mby5hZGRJ
bnN0cnVtZW50ZWRWZWN0b3IobV9saW5rUHNldWRvQ2xhc3NSdWxlcyk7Ci0gICAgaW5mby5hZGRJ
bnN0cnVtZW50ZWRWZWN0b3IobV9mb2N1c1BzZXVkb0NsYXNzUnVsZXMpOwotICAgIGluZm8uYWRk
SW5zdHJ1bWVudGVkVmVjdG9yKG1fdW5pdmVyc2FsUnVsZXMpOworICAgIGluZm8uYWRkTWVtYmVy
KG1fbGlua1BzZXVkb0NsYXNzUnVsZXMpOworICAgIGluZm8uYWRkTWVtYmVyKG1fZm9jdXNQc2V1
ZG9DbGFzc1J1bGVzKTsKKyAgICBpbmZvLmFkZE1lbWJlcihtX3VuaXZlcnNhbFJ1bGVzKTsKICAg
ICBpbmZvLmFkZFZlY3RvcihtX3BhZ2VSdWxlcyk7Ci0gICAgaW5mby5hZGRJbnN0cnVtZW50ZWRW
ZWN0b3IobV9yZWdpb25TZWxlY3RvcnNBbmRSdWxlU2V0cyk7CisgICAgaW5mby5hZGRNZW1iZXIo
bV9yZWdpb25TZWxlY3RvcnNBbmRSdWxlU2V0cyk7CiB9CiAKIHZvaWQgUnVsZVNldDo6UnVsZVNl
dFNlbGVjdG9yUGFpcjo6cmVwb3J0TWVtb3J5VXNhZ2UoTWVtb3J5T2JqZWN0SW5mbyogbWVtb3J5
T2JqZWN0SW5mbykgY29uc3QKQEAgLTU3NjUsNyArNTc2Niw3IEBAIHZvaWQgU3R5bGVSZXNvbHZl
cjo6TWF0Y2hlZFByb3BlcnRpZXM6OnJlcG9ydE1lbW9yeVVzYWdlKE1lbW9yeU9iamVjdEluZm8q
IG1lbW9yCiB2b2lkIFN0eWxlUmVzb2x2ZXI6Ok1hdGNoZWRQcm9wZXJ0aWVzQ2FjaGVJdGVtOjpy
ZXBvcnRNZW1vcnlVc2FnZShNZW1vcnlPYmplY3RJbmZvKiBtZW1vcnlPYmplY3RJbmZvKSBjb25z
dAogewogICAgIE1lbW9yeUNsYXNzSW5mbyBpbmZvKG1lbW9yeU9iamVjdEluZm8sIHRoaXMsIFdl
YkNvcmVNZW1vcnlUeXBlczo6Q1NTKTsKLSAgICBpbmZvLmFkZEluc3RydW1lbnRlZFZlY3Rvciht
YXRjaGVkUHJvcGVydGllcyk7CisgICAgaW5mby5hZGRNZW1iZXIobWF0Y2hlZFByb3BlcnRpZXMp
OwogfQogCiB2b2lkIE1lZGlhUXVlcnlSZXN1bHQ6OnJlcG9ydE1lbW9yeVVzYWdlKE1lbW9yeU9i
amVjdEluZm8qIG1lbW9yeU9iamVjdEluZm8pIGNvbnN0CkBAIC01NzkxLDcgKzU3OTIsNyBAQCB2
b2lkIFN0eWxlUmVzb2x2ZXI6OnJlcG9ydE1lbW9yeVVzYWdlKE1lbW9yeU9iamVjdEluZm8qIG1l
bW9yeU9iamVjdEluZm8pIGNvbnN0CiAgICAgaW5mby5hZGRIYXNoTWFwKG1fcGVuZGluZ0ltYWdl
UHJvcGVydGllcyk7CiAgICAgaW5mby5hZGRJbnN0cnVtZW50ZWRNYXBWYWx1ZXMobV9wZW5kaW5n
SW1hZ2VQcm9wZXJ0aWVzKTsKICAgICBpbmZvLmFkZE1lbWJlcihtX2xpbmVIZWlnaHRWYWx1ZSk7
Ci0gICAgaW5mby5hZGRJbnN0cnVtZW50ZWRWZWN0b3IobV92aWV3cG9ydERlcGVuZGVudE1lZGlh
UXVlcnlSZXN1bHRzKTsKKyAgICBpbmZvLmFkZE1lbWJlcihtX3ZpZXdwb3J0RGVwZW5kZW50TWVk
aWFRdWVyeVJlc3VsdHMpOwogICAgIGluZm8uYWRkSGFzaE1hcChtX3N0eWxlUnVsZVRvQ1NTT01X
cmFwcGVyTWFwKTsKICAgICBpbmZvLmFkZEluc3RydW1lbnRlZE1hcEVudHJpZXMobV9zdHlsZVJ1
bGVUb0NTU09NV3JhcHBlck1hcCk7CiAgICAgaW5mby5hZGRJbnN0cnVtZW50ZWRIYXNoU2V0KG1f
c3R5bGVTaGVldENTU09NV3JhcHBlclNldCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9j
c3MvU3R5bGVSdWxlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9TdHlsZVJ1bGUuY3BwCmluZGV4
IDU5ZWQ5ZTU4ZjBhN2Y3YzkwY2ZmMzJiM2ZiNWI0ODhjZmJjOGExYjQuLjE0NzM0ZDA4ODkwN2Rm
MTUxOTgxZmFjMjQ5ZjYyNTQ2YjM0YzQ3YzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nz
cy9TdHlsZVJ1bGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9TdHlsZVJ1bGUuY3BwCkBA
IC0zMyw2ICszMyw3IEBACiAjaW5jbHVkZSAiV2ViS2l0Q1NTS2V5ZnJhbWVSdWxlLmgiCiAjaW5j
bHVkZSAiV2ViS2l0Q1NTS2V5ZnJhbWVzUnVsZS5oIgogI2luY2x1ZGUgIldlYktpdENTU1JlZ2lv
blJ1bGUuaCIKKyNpbmNsdWRlIDx3dGYvTWVtb3J5SW5zdHJ1bWVudGF0aW9uVmVjdG9yLmg+CiAK
IG5hbWVzcGFjZSBXZWJDb3JlIHsKIApAQCAtMzM3LDcgKzMzOCw3IEBAIHZvaWQgU3R5bGVSdWxl
QmxvY2s6OndyYXBwZXJSZW1vdmVSdWxlKHVuc2lnbmVkIGluZGV4KQogdm9pZCBTdHlsZVJ1bGVC
bG9jazo6cmVwb3J0RGVzY2VuZGFudE1lbW9yeVVzYWdlKE1lbW9yeU9iamVjdEluZm8qIG1lbW9y
eU9iamVjdEluZm8pIGNvbnN0CiB7CiAgICAgTWVtb3J5Q2xhc3NJbmZvIGluZm8obWVtb3J5T2Jq
ZWN0SW5mbywgdGhpcywgV2ViQ29yZU1lbW9yeVR5cGVzOjpDU1MpOwotICAgIGluZm8uYWRkSW5z
dHJ1bWVudGVkVmVjdG9yKG1fY2hpbGRSdWxlcyk7CisgICAgaW5mby5hZGRNZW1iZXIobV9jaGls
ZFJ1bGVzKTsKIH0KIAogU3R5bGVSdWxlTWVkaWE6OlN0eWxlUnVsZU1lZGlhKFBhc3NSZWZQdHI8
TWVkaWFRdWVyeVNldD4gbWVkaWEsIFZlY3RvcjxSZWZQdHI8U3R5bGVSdWxlQmFzZT4gPiYgYWRv
cHRSdWxlcykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9TdHlsZVNoZWV0Q29udGVu
dHMuY3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL1N0eWxlU2hlZXRDb250ZW50cy5jcHAKaW5kZXgg
MDQ4MjczYmVjMTc4M2RiMjUyNzdiMjJlMmVmNDNkYzY4OTYxN2FkZC4uNWRlOGE2MWE1MTQ3ODQ0
YjFkOTNiZDU4NjIyYmVlNTI5ZjE1NjkyMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3Nz
L1N0eWxlU2hlZXRDb250ZW50cy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL1N0eWxlU2hl
ZXRDb250ZW50cy5jcHAKQEAgLTMzLDYgKzMzLDcgQEAKICNpbmNsdWRlICJTdHlsZVJ1bGVJbXBv
cnQuaCIKICNpbmNsdWRlICJXZWJDb3JlTWVtb3J5SW5zdHJ1bWVudGF0aW9uLmgiCiAjaW5jbHVk
ZSA8d3RmL0RlcXVlLmg+CisjaW5jbHVkZSA8d3RmL01lbW9yeUluc3RydW1lbnRhdGlvblZlY3Rv
ci5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKQEAgLTQ5MCw3ICs0OTEsNyBAQCB2b2lkIFN0
eWxlU2hlZXRDb250ZW50czo6cmVwb3J0TWVtb3J5VXNhZ2UoTWVtb3J5T2JqZWN0SW5mbyogbWVt
b3J5T2JqZWN0SW5mbykgYwogICAgIGluZm8uYWRkTWVtYmVyKG1fb3JpZ2luYWxVUkwpOwogICAg
IGluZm8uYWRkTWVtYmVyKG1fZW5jb2RpbmdGcm9tQ2hhcnNldFJ1bGUpOwogICAgIGluZm8uYWRk
VmVjdG9yKG1faW1wb3J0UnVsZXMpOwotICAgIGluZm8uYWRkSW5zdHJ1bWVudGVkVmVjdG9yKG1f
Y2hpbGRSdWxlcyk7CisgICAgaW5mby5hZGRNZW1iZXIobV9jaGlsZFJ1bGVzKTsKICAgICBpbmZv
LmFkZEhhc2hNYXAobV9uYW1lc3BhY2VzKTsKICAgICBpbmZvLmFkZFZlY3RvcihtX2NsaWVudHMp
OwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL1dlYktpdENTU0tleWZyYW1lc1J1
bGUuY3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL1dlYktpdENTU0tleWZyYW1lc1J1bGUuY3BwCmlu
ZGV4IGEyOTkxYTgxOGY1MGZmZjRkNWI0ZTA5YmQ0MzI5YjhhMzFiODUwMWUuLjA4ZmJiMGE1NTg1
ZDdiNmY4NmJiOTUyOGU3OTE3ZDg2OTQ3NTRlNjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2Nzcy9XZWJLaXRDU1NLZXlmcmFtZXNSdWxlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3Mv
V2ViS2l0Q1NTS2V5ZnJhbWVzUnVsZS5jcHAKQEAgLTMzLDYgKzMzLDcgQEAKICNpbmNsdWRlICJT
dHlsZVNoZWV0LmgiCiAjaW5jbHVkZSAiV2ViQ29yZU1lbW9yeUluc3RydW1lbnRhdGlvbi5oIgog
I2luY2x1ZGUgIldlYktpdENTU0tleWZyYW1lUnVsZS5oIgorI2luY2x1ZGUgPHd0Zi9NZW1vcnlJ
bnN0cnVtZW50YXRpb25WZWN0b3IuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9TdHJpbmdCdWlsZGVy
Lmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKQEAgLTkwLDcgKzkxLDcgQEAgaW50IFN0eWxlUnVs
ZUtleWZyYW1lczo6ZmluZEtleWZyYW1lSW5kZXgoY29uc3QgU3RyaW5nJiBrZXkpIGNvbnN0CiB2
b2lkIFN0eWxlUnVsZUtleWZyYW1lczo6cmVwb3J0RGVzY2VuZGFudE1lbW9yeVVzYWdlKE1lbW9y
eU9iamVjdEluZm8qIG1lbW9yeU9iamVjdEluZm8pIGNvbnN0CiB7CiAgICAgTWVtb3J5Q2xhc3NJ
bmZvIGluZm8obWVtb3J5T2JqZWN0SW5mbywgdGhpcywgV2ViQ29yZU1lbW9yeVR5cGVzOjpDU1Mp
OwotICAgIGluZm8uYWRkSW5zdHJ1bWVudGVkVmVjdG9yKG1fa2V5ZnJhbWVzKTsKKyAgICBpbmZv
LmFkZE1lbWJlcihtX2tleWZyYW1lcyk7CiAgICAgaW5mby5hZGRNZW1iZXIobV9uYW1lKTsKIH0K
IApAQCAtMjExLDcgKzIxMiw3IEBAIHZvaWQgV2ViS2l0Q1NTS2V5ZnJhbWVzUnVsZTo6cmVwb3J0
RGVzY2VuZGFudE1lbW9yeVVzYWdlKE1lbW9yeU9iamVjdEluZm8qIG1lbW9yCiAgICAgTWVtb3J5
Q2xhc3NJbmZvIGluZm8obWVtb3J5T2JqZWN0SW5mbywgdGhpcywgV2ViQ29yZU1lbW9yeVR5cGVz
OjpDU1MpOwogICAgIENTU1J1bGU6OnJlcG9ydEJhc2VDbGFzc01lbW9yeVVzYWdlKG1lbW9yeU9i
amVjdEluZm8pOwogICAgIGluZm8uYWRkTWVtYmVyKG1fa2V5ZnJhbWVzUnVsZSk7Ci0gICAgaW5m
by5hZGRJbnN0cnVtZW50ZWRWZWN0b3IobV9jaGlsZFJ1bGVDU1NPTVdyYXBwZXJzKTsKKyAgICBp
bmZvLmFkZE1lbWJlcihtX2NoaWxkUnVsZUNTU09NV3JhcHBlcnMpOwogICAgIGluZm8uYWRkTWVt
YmVyKG1fcnVsZUxpc3RDU1NPTVdyYXBwZXIpOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9jc3MvV2ViS2l0Q1NTUmVnaW9uUnVsZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvV2Vi
S2l0Q1NTUmVnaW9uUnVsZS5jcHAKaW5kZXggNWMyYzcyMWNkNjg1NGFkMzkyMWFjNTYzOTE4NWY2
YTk2ODkxM2MzMS4uY2UxMjA3Y2FiZGY5YmY4NTYwNTllODZkNmIyMGYxZmIyMjg0M2RlMyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL1dlYktpdENTU1JlZ2lvblJ1bGUuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2Nzcy9XZWJLaXRDU1NSZWdpb25SdWxlLmNwcApAQCAtMzQsNiArMzQs
NyBAQAogI2luY2x1ZGUgIkNTU1BhcnNlci5oIgogI2luY2x1ZGUgIkNTU1J1bGVMaXN0LmgiCiAj
aW5jbHVkZSAiU3R5bGVSdWxlLmgiCisjaW5jbHVkZSA8d3RmL01lbW9yeUluc3RydW1lbnRhdGlv
blZlY3Rvci5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L1N0cmluZ0J1aWxkZXIuaD4KIAogI2lmIEVO
QUJMRShDU1NfUkVHSU9OUykKQEAgLTExMyw3ICsxMTQsNyBAQCB2b2lkIFdlYktpdENTU1JlZ2lv
blJ1bGU6OnJlcG9ydERlc2NlbmRhbnRNZW1vcnlVc2FnZShNZW1vcnlPYmplY3RJbmZvKiBtZW1v
cnlPYgogICAgIE1lbW9yeUNsYXNzSW5mbyBpbmZvKG1lbW9yeU9iamVjdEluZm8sIHRoaXMsIFdl
YkNvcmVNZW1vcnlUeXBlczo6Q1NTKTsKICAgICBDU1NSdWxlOjpyZXBvcnRCYXNlQ2xhc3NNZW1v
cnlVc2FnZShtZW1vcnlPYmplY3RJbmZvKTsKICAgICBpbmZvLmFkZE1lbWJlcihtX3JlZ2lvblJ1
bGUpOwotICAgIGluZm8uYWRkSW5zdHJ1bWVudGVkVmVjdG9yKG1fY2hpbGRSdWxlQ1NTT01XcmFw
cGVycyk7CisgICAgaW5mby5hZGRNZW1iZXIobV9jaGlsZFJ1bGVDU1NPTVdyYXBwZXJzKTsKICAg
ICBpbmZvLmFkZE1lbWJlcihtX3J1bGVMaXN0Q1NTT01XcmFwcGVyKTsKIH0KIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9E
b2N1bWVudC5jcHAKaW5kZXggYWI0OGNhMzgyYmIyNTliNzY5ZmU3YTM1ZmQyYzQzNjU0MTNmN2Qx
ZS4uMjk4MDYwMjM4ZDUxOWI5ZTI4MTc2Nzg5MmU2Yjc1OGIyMWEyOTI5YyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20v
RG9jdW1lbnQuY3BwCkBAIC0xNzIsNiArMTcyLDcgQEAKICNpbmNsdWRlIDx3dGYvQ3VycmVudFRp
bWUuaD4KICNpbmNsdWRlIDx3dGYvSGFzaEZ1bmN0aW9ucy5oPgogI2luY2x1ZGUgPHd0Zi9NYWlu
VGhyZWFkLmg+CisjaW5jbHVkZSA8d3RmL01lbW9yeUluc3RydW1lbnRhdGlvblZlY3Rvci5oPgog
I2luY2x1ZGUgPHd0Zi9QYXNzUmVmUHRyLmg+CiAjaW5jbHVkZSA8d3RmL1N0ZExpYkV4dHJhcy5o
PgogI2luY2x1ZGUgPHd0Zi90ZXh0L1N0cmluZ0J1ZmZlci5oPgpAQCAtNjI2NCwxMCArNjI2NSw4
IEBAIHZvaWQgRG9jdW1lbnQ6OnJlcG9ydE1lbW9yeVVzYWdlKE1lbW9yeU9iamVjdEluZm8qIG1l
bW9yeU9iamVjdEluZm8pIGNvbnN0CiAgICAgaW5mby5hZGRNZW1iZXIobV9jYWNoZWRSZXNvdXJj
ZUxvYWRlcik7CiAgICAgaW5mby5hZGRNZW1iZXIobV9lbGVtU2hlZXQpOwogICAgIGluZm8uYWRk
TWVtYmVyKG1fcGFnZVVzZXJTaGVldCk7Ci0gICAgaWYgKG1fcGFnZUdyb3VwVXNlclNoZWV0cykK
LSAgICAgICAgaW5mby5hZGRJbnN0cnVtZW50ZWRWZWN0b3JQdHIobV9wYWdlR3JvdXBVc2VyU2hl
ZXRzKTsKLSAgICBpZiAobV91c2VyU2hlZXRzKQotICAgICAgICBpbmZvLmFkZEluc3RydW1lbnRl
ZFZlY3RvclB0cihtX3VzZXJTaGVldHMpOworICAgIGluZm8uYWRkTWVtYmVyKG1fcGFnZUdyb3Vw
VXNlclNoZWV0cyk7CisgICAgaW5mby5hZGRNZW1iZXIobV91c2VyU2hlZXRzKTsKICAgICBpbmZv
LmFkZEhhc2hTZXQobV9ub2RlSXRlcmF0b3JzKTsKICAgICBpbmZvLmFkZEhhc2hTZXQobV9yYW5n
ZXMpOwogICAgIGluZm8uYWRkTGlzdEhhc2hTZXQobV9zdHlsZVNoZWV0Q2FuZGlkYXRlTm9kZXMp
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0RvY3VtZW50TG9hZGVyLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Eb2N1bWVudExvYWRlci5jcHAKaW5kZXggODM2ODA0MWNm
ODBhM2Q2NDE1MWE5YjBiMGNhNTYyMzZlNGM0NDg5Mi4uNmE1ZjdjMTNjNzczMTRkZWI3NTAxYjhm
MDljYWRlZDg3YTY0OTBmNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0RvY3Vt
ZW50TG9hZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRG9jdW1lbnRMb2FkZXIu
Y3BwCkBAIC01Myw2ICs1Myw3IEBACiAjaW5jbHVkZSAiVGV4dFJlc291cmNlRGVjb2Rlci5oIgog
I2luY2x1ZGUgIldlYkNvcmVNZW1vcnlJbnN0cnVtZW50YXRpb24uaCIKICNpbmNsdWRlIDx3dGYv
QXNzZXJ0aW9ucy5oPgorI2luY2x1ZGUgPHd0Zi9NZW1vcnlJbnN0cnVtZW50YXRpb25WZWN0b3Iu
aD4KICNpbmNsdWRlIDx3dGYvdGV4dC9DU3RyaW5nLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvV1RG
U3RyaW5nLmg+CiAjaW5jbHVkZSA8d3RmL3VuaWNvZGUvVW5pY29kZS5oPgpAQCAtMzc0LDcgKzM3
NSw3IEBAIHZvaWQgRG9jdW1lbnRMb2FkZXI6OnJlcG9ydE1lbW9yeVVzYWdlKE1lbW9yeU9iamVj
dEluZm8qIG1lbW9yeU9iamVjdEluZm8pIGNvbnN0CiAgICAgaW5mby5hZGRNZW1iZXIobV9yZXF1
ZXN0KTsKICAgICBpbmZvLmFkZE1lbWJlcihtX3Jlc3BvbnNlKTsKICAgICBpbmZvLmFkZE1lbWJl
cihtX2xhc3RDaGVja2VkUmVxdWVzdCk7Ci0gICAgaW5mby5hZGRJbnN0cnVtZW50ZWRWZWN0b3Io
bV9yZXNwb25zZXMpOworICAgIGluZm8uYWRkTWVtYmVyKG1fcmVzcG9uc2VzKTsKICAgICBpbmZv
LmFkZEhhc2hNYXAobV9wZW5kaW5nU3Vic3RpdHV0ZVJlc291cmNlcyk7CiAgICAgaW5mby5hZGRJ
bnN0cnVtZW50ZWRIYXNoU2V0KG1fcmVzb3VyY2VzQ2xpZW50S25vd3NBYm91dCk7CiAgICAgaW5m
by5hZGRWZWN0b3IobV9yZXNvdXJjZXNMb2FkZWRGcm9tTWVtb3J5Q2FjaGVGb3JDbGllbnROb3Rp
ZmljYXRpb24pOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9S
ZXNvdXJjZVJlcXVlc3RCYXNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsv
UmVzb3VyY2VSZXF1ZXN0QmFzZS5jcHAKaW5kZXggMDBmNTgzOTA1NTk0NzFlYjdlNGY2M2Q1YWRj
YWFmNmVhYWVkNWI2Yy4uMzAzZGVhYTljYmRhNzZhZmJmYzZjNTYyMmMwNTQ3NDE0OTkwZmM0NSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9SZXNvdXJjZVJlcXVl
c3RCYXNlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL1Jlc291cmNl
UmVxdWVzdEJhc2UuY3BwCkBAIC0yOCw2ICsyOCw3IEBACiAKICNpbmNsdWRlICJQbGF0Zm9ybU1l
bW9yeUluc3RydW1lbnRhdGlvbi5oIgogI2luY2x1ZGUgIlJlc291cmNlUmVxdWVzdC5oIgorI2lu
Y2x1ZGUgPHd0Zi9NZW1vcnlJbnN0cnVtZW50YXRpb25WZWN0b3IuaD4KIAogdXNpbmcgbmFtZXNw
YWNlIHN0ZDsKIApAQCAtNDUyLDcgKzQ1Myw3IEBAIHZvaWQgUmVzb3VyY2VSZXF1ZXN0QmFzZTo6
cmVwb3J0TWVtb3J5VXNhZ2UoTWVtb3J5T2JqZWN0SW5mbyogbWVtb3J5T2JqZWN0SW5mbykKICAg
ICBpbmZvLmFkZE1lbWJlcihtX2h0dHBNZXRob2QpOwogICAgIGluZm8uYWRkSGFzaE1hcChtX2h0
dHBIZWFkZXJGaWVsZHMpOwogICAgIGluZm8uYWRkSW5zdHJ1bWVudGVkTWFwRW50cmllcyhtX2h0
dHBIZWFkZXJGaWVsZHMpOwotICAgIGluZm8uYWRkSW5zdHJ1bWVudGVkVmVjdG9yKG1fcmVzcG9u
c2VDb250ZW50RGlzcG9zaXRpb25FbmNvZGluZ0ZhbGxiYWNrQXJyYXkpOworICAgIGluZm8uYWRk
TWVtYmVyKG1fcmVzcG9uc2VDb250ZW50RGlzcG9zaXRpb25FbmNvZGluZ0ZhbGxiYWNrQXJyYXkp
OwogICAgIGluZm8uYWRkTWVtYmVyKG1faHR0cEJvZHkpOwogfQogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L2Nocm9taXVtL3Rlc3RzL01lbW9yeUluc3RydW1lbnRhdGlvblRlc3QuY3BwIGIv
U291cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0cy9NZW1vcnlJbnN0cnVtZW50YXRpb25UZXN0LmNw
cAppbmRleCA0YWNmNDk2YWQ4N2QyZDgzYTk4N2Q3OTQ2ZjUzNzZlYTc1NmE0MmYwLi41YmJkZTY1
MmQ4YTQ5NjBmOGNmZjMwYzJkNTI0Zjg4NTQ4MWJjMGFiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L2Nocm9taXVtL3Rlc3RzL01lbW9yeUluc3RydW1lbnRhdGlvblRlc3QuY3BwCisrKyBiL1Nv
dXJjZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMvTWVtb3J5SW5zdHJ1bWVudGF0aW9uVGVzdC5jcHAK
QEAgLTM3LDYgKzM3LDcgQEAKICNpbmNsdWRlIDxndGVzdC9ndGVzdC5oPgogCiAjaW5jbHVkZSA8
d3RmL0hhc2hTZXQuaD4KKyNpbmNsdWRlIDx3dGYvTWVtb3J5SW5zdHJ1bWVudGF0aW9uVmVjdG9y
Lmg+CiAjaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KICNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+
CiAjaW5jbHVkZSA8d3RmL3RleHQvQXRvbWljU3RyaW5nLmg+CkBAIC0yMzUsNiArMjM2LDcgQEAg
Y2xhc3MgSW5zdHJ1bWVudGVkT3duZXIgewogcHVibGljOgogICAgIHRlbXBsYXRlPHR5cGVuYW1l
IFY+CiAgICAgSW5zdHJ1bWVudGVkT3duZXIoY29uc3QgViYgdmFsdWUpIDogbV92YWx1ZSh2YWx1
ZSkgeyB9CisgICAgSW5zdHJ1bWVudGVkT3duZXIoKSB7IH0KICAgICB2b2lkIHJlcG9ydE1lbW9y
eVVzYWdlKE1lbW9yeU9iamVjdEluZm8qIG1lbW9yeU9iamVjdEluZm8pIGNvbnN0CiAgICAgewog
ICAgICAgICBNZW1vcnlDbGFzc0luZm8gaW5mbyhtZW1vcnlPYmplY3RJbmZvLCB0aGlzLCBXZWJD
b3JlTWVtb3J5VHlwZXM6OkRPTSk7CkBAIC0zNjcsNSArMzY5LDc1IEBAIFRFU1QoTWVtb3J5SW5z
dHJ1bWVudGF0aW9uVGVzdCwgZGV0ZWN0UmVwb3J0TWVtb3J5VXNhZ2VNZXRob2QpCiAgICAgfQog
fQogCitURVNUKE1lbW9yeUluc3RydW1lbnRhdGlvblRlc3QsIHZlY3Rvclplcm9JbmxpbmVDYXBh
Y2l0eSkKK3sKKyAgICBWaXNpdGVkT2JqZWN0cyB2aXNpdGVkT2JqZWN0czsKKyAgICBNZW1vcnlJ
bnN0cnVtZW50YXRpb25JbXBsIGltcGwodmlzaXRlZE9iamVjdHMpOworICAgIEluc3RydW1lbnRl
ZE93bmVyPFZlY3RvcjxpbnQ+ID4gdmVjdG9yT3duZXIoMTYpOworICAgIGltcGwuYWRkUm9vdE9i
amVjdCh2ZWN0b3JPd25lcik7CisgICAgRVhQRUNUX0VRKDE2ICogc2l6ZW9mKGludCksIGltcGwu
cmVwb3J0ZWRTaXplRm9yQWxsVHlwZXMoKSk7CisgICAgRVhQRUNUX0VRKDEsIHZpc2l0ZWRPYmpl
Y3RzLnNpemUoKSk7Cit9CisKK1RFU1QoTWVtb3J5SW5zdHJ1bWVudGF0aW9uVGVzdCwgdmVjdG9y
RmllbGRXaXRoSW5saW5lQ2FwYWNpdHkpCit7CisgICAgVmlzaXRlZE9iamVjdHMgdmlzaXRlZE9i
amVjdHM7CisgICAgTWVtb3J5SW5zdHJ1bWVudGF0aW9uSW1wbCBpbXBsKHZpc2l0ZWRPYmplY3Rz
KTsKKyAgICBJbnN0cnVtZW50ZWRPd25lcjxWZWN0b3I8aW50LCA0PiA+IHZlY3Rvck93bmVyOwor
ICAgIGltcGwuYWRkUm9vdE9iamVjdCh2ZWN0b3JPd25lcik7CisgICAgRVhQRUNUX0VRKHN0YXRp
Y19jYXN0PHNpemVfdD4oMCksIGltcGwucmVwb3J0ZWRTaXplRm9yQWxsVHlwZXMoKSk7CisgICAg
RVhQRUNUX0VRKDAsIHZpc2l0ZWRPYmplY3RzLnNpemUoKSk7Cit9CisKK1RFU1QoTWVtb3J5SW5z
dHJ1bWVudGF0aW9uVGVzdCwgdmVjdG9yRmllbGRXaXRoSW5saW5lQ2FwYWNpdHlSZXNpemVkKQor
eworICAgIFZpc2l0ZWRPYmplY3RzIHZpc2l0ZWRPYmplY3RzOworICAgIE1lbW9yeUluc3RydW1l
bnRhdGlvbkltcGwgaW1wbCh2aXNpdGVkT2JqZWN0cyk7CisgICAgSW5zdHJ1bWVudGVkT3duZXI8
VmVjdG9yPGludCwgND4gPiB2ZWN0b3JPd25lcjsKKyAgICB2ZWN0b3JPd25lci5tX3ZhbHVlLnJl
c2VydmVDYXBhY2l0eSg4KTsKKyAgICBpbXBsLmFkZFJvb3RPYmplY3QodmVjdG9yT3duZXIpOwor
ICAgIEVYUEVDVF9FUSg4ICogc2l6ZW9mKGludCksIGltcGwucmVwb3J0ZWRTaXplRm9yQWxsVHlw
ZXMoKSk7CisgICAgRVhQRUNUX0VRKDEsIHZpc2l0ZWRPYmplY3RzLnNpemUoKSk7Cit9CisKK1RF
U1QoTWVtb3J5SW5zdHJ1bWVudGF0aW9uVGVzdCwgaGVhcEFsbG9jYXRlZFZlY3RvcldpdGhJbmxp
bmVDYXBhY2l0eSkKK3sKKyAgICBWaXNpdGVkT2JqZWN0cyB2aXNpdGVkT2JqZWN0czsKKyAgICBN
ZW1vcnlJbnN0cnVtZW50YXRpb25JbXBsIGltcGwodmlzaXRlZE9iamVjdHMpOworICAgIEluc3Ry
dW1lbnRlZE93bmVyPE93blB0cjxWZWN0b3I8aW50LCA0PiA+ID4gdmVjdG9yT3duZXI7CisgICAg
dmVjdG9yT3duZXIubV92YWx1ZSA9IGFkb3B0UHRyKG5ldyBWZWN0b3I8aW50LCA0PigpKTsKKyAg
ICBpbXBsLmFkZFJvb3RPYmplY3QodmVjdG9yT3duZXIpOworICAgIEVYUEVDVF9FUShzaXplb2Yo
VmVjdG9yPGludCwgND4pLCBpbXBsLnJlcG9ydGVkU2l6ZUZvckFsbFR5cGVzKCkpOworICAgIEVY
UEVDVF9FUSgxLCB2aXNpdGVkT2JqZWN0cy5zaXplKCkpOworfQorCitURVNUKE1lbW9yeUluc3Ry
dW1lbnRhdGlvblRlc3QsIGhlYXBBbGxvY2F0ZWRWZWN0b3JXaXRoSW5saW5lQ2FwYWNpdHlSZXNp
emVkKQoreworICAgIFZpc2l0ZWRPYmplY3RzIHZpc2l0ZWRPYmplY3RzOworICAgIE1lbW9yeUlu
c3RydW1lbnRhdGlvbkltcGwgaW1wbCh2aXNpdGVkT2JqZWN0cyk7CisgICAgSW5zdHJ1bWVudGVk
T3duZXI8T3duUHRyPFZlY3RvcjxpbnQsIDQ+ID4gPiB2ZWN0b3JPd25lcjsKKyAgICB2ZWN0b3JP
d25lci5tX3ZhbHVlID0gYWRvcHRQdHIobmV3IFZlY3RvcjxpbnQsIDQ+KCkpOworICAgIHZlY3Rv
ck93bmVyLm1fdmFsdWUtPnJlc2VydmVDYXBhY2l0eSg4KTsKKyAgICBpbXBsLmFkZFJvb3RPYmpl
Y3QodmVjdG9yT3duZXIpOworICAgIEVYUEVDVF9FUSg4ICogc2l6ZW9mKGludCkgKyBzaXplb2Yo
VmVjdG9yPGludCwgND4pLCBpbXBsLnJlcG9ydGVkU2l6ZUZvckFsbFR5cGVzKCkpOworICAgIEVY
UEVDVF9FUSgyLCB2aXNpdGVkT2JqZWN0cy5zaXplKCkpOworfQorCitURVNUKE1lbW9yeUluc3Ry
dW1lbnRhdGlvblRlc3QsIHZlY3RvcldpdGhJbnN0cnVtZW50ZWRUeXBlKQoreworICAgIFZpc2l0
ZWRPYmplY3RzIHZpc2l0ZWRPYmplY3RzOworICAgIE1lbW9yeUluc3RydW1lbnRhdGlvbkltcGwg
aW1wbCh2aXNpdGVkT2JqZWN0cyk7CisKKyAgICB0eXBlZGVmIFZlY3RvcjxTdHJpbmc+IFZhbHVl
VHlwZTsKKyAgICBPd25QdHI8VmFsdWVUeXBlPiB2YWx1ZSA9IGFkb3B0UHRyKG5ldyBWYWx1ZVR5
cGUoKSk7CisgICAgc2l6ZV90IGNvdW50ID0gMTA7CisgICAgZm9yIChzaXplX3QgaSA9IDA7IGkg
PCBjb3VudDsgKytpKQorICAgICAgICB2YWx1ZS0+YXBwZW5kKFN0cmluZygic3RyaW5nIikpOwor
ICAgIEluc3RydW1lbnRlZE93bmVyPFZhbHVlVHlwZSogPiByb290KHZhbHVlLmdldCgpKTsKKyAg
ICBpbXBsLmFkZFJvb3RPYmplY3Qocm9vdCk7CisgICAgRVhQRUNUX0VRKHNpemVvZihWYWx1ZVR5
cGUpICsgc2l6ZW9mKFN0cmluZykgKiB2YWx1ZS0+Y2FwYWNpdHkoKSArIHNpemVvZihTdHJpbmdJ
bXBsKSAqIHZhbHVlLT5zaXplKCksIGltcGwucmVwb3J0ZWRTaXplRm9yQWxsVHlwZXMoKSk7Cisg
ICAgRVhQRUNUX0VRKGNvdW50ICsgMiwgKHNpemVfdCl2aXNpdGVkT2JqZWN0cy5zaXplKCkpOwor
fQorCiB9IC8vIG5hbWVzcGFjZQogCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>164747</attachid>
            <date>2012-09-19 09:17:31 -0700</date>
            <delta_ts>2012-09-19 09:29:51 -0700</delta_ts>
            <desc>with fix for mac</desc>
            <filename>bug-96650-20120919201656.patch</filename>
            <type>text/plain</type>
            <size>36547</size>
            <attacher name="Ilya Tikhonovsky">loislo</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTI5MDA2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IGM1ZmIwN2RiNDJlZWFlNTExZmUzNzAy
MTkxZmM5ZjdjMjczNTVjOTYuLjBkYTgzOGRmNDE1ODkwNDc3ZDgxNDMwMzQ3ZGI4YWZjMzM0NGY1
OGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMzEgQEAKKzIwMTItMDktMTkgIElseWEgVGlraG9ub3Zza3kgIDxs
b2lzbG9AY2hyb21pdW0ub3JnPgorCisgICAgICAgIFdlYiBJbnNwZWN0b3I6IGV4dHJhY3QgVmVj
dG9yIGluc3RydW1lbnRhdGlvbiBmcm9tIGNvcmUgTk1JIGNvZGUgaW50byBNZW1vcnlJbnN0cnVt
ZW50YXRpb25WZWN0b3IuaCBoZWFkZXIuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD05NjY1MAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgIEFkZGVkIHJlcG9ydE1lbW9yeVVzYWdlIGZyZWUgdGVtcGxhdGUgZnVu
Y3Rpb24gd2l0aCBkZWZhdWx0IGJvZHkgdG8gY29yZSBOTUkgY29kZQorICAgICAgICBhbmQgYWRk
IGN1c3RvbSB2ZXJzaW9uIG9mIHJlcG9ydE1lbW9yeVVzYWdlIGZ1bmN0aW9uIGZvciBWZWN0b3Jz
LgorCisgICAgICAgICogR05VbWFrZWZpbGUubGlzdC5hbToKKyAgICAgICAgKiBXVEYuZ3lwaToK
KyAgICAgICAgKiBXVEYucHJvOgorICAgICAgICAqIFdURi52Y3Byb2ovV1RGLnZjcHJvajoKKyAg
ICAgICAgKiBXVEYueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiB3dGYvTWVt
b3J5SW5zdHJ1bWVudGF0aW9uLmg6CisgICAgICAgIChXVEYpOgorICAgICAgICAoV1RGOjpNZW1v
cnlJbnN0cnVtZW50YXRpb246OnNlbGVjdEluc3RydW1lbnRhdGlvbk1ldGhvZCk6CisgICAgICAg
IChNZW1vcnlJbnN0cnVtZW50YXRpb24pOgorICAgICAgICAoV1RGOjpyZXBvcnRNZW1vcnlVc2Fn
ZSk6CisgICAgICAgIChXVEY6Ok1lbW9yeUluc3RydW1lbnRhdGlvbjo6YWRkT2JqZWN0SW1wbCk6
CisgICAgICAgIChXVEY6Ojo6cHJvY2Vzcyk6CisgICAgICAgICogd3RmL01lbW9yeUluc3RydW1l
bnRhdGlvblZlY3Rvci5oOiBBZGRlZC4KKyAgICAgICAgKFdURik6CisgICAgICAgIChXVEY6Omlu
c3RydW1lbnRWZWN0b3JWYWx1ZXMpOgorICAgICAgICAoV1RGOjpyZXBvcnRNZW1vcnlVc2FnZSk6
CisgICAgICAgICogd3RmL1ZlY3Rvci5oOgorCiAyMDEyLTA5LTE4ICBHbGVubiBBZGFtcyAgPGds
ZW5uQHNreW5hdi5jb20+CiAKICAgICAgICAgV1RGU3RyaW5nOjpzaG93IGRvZXNuJ3QgZHVtcCBu
b24tQVNDSUkgY2hhcmFjdGVycyBpbiBhIHJlYWRhYmxlIG1hbm5lcgpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IGNj
ZjVjMTFiNzc1ZWExMjg3NjI5MWRmN2UwZmQyYWU0MjJlYjg5NjguLmRlZTM3OWJiMzgzOWQ4ZDIx
Y2U4NzVhZDg5YTg5ZDYzZWNlZDE3YzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSw0NiBAQAorMjAx
Mi0wOS0xOSAgSWx5YSBUaWtob25vdnNreSAgPGxvaXNsb0BjaHJvbWl1bS5vcmc+CisKKyAgICAg
ICAgV2ViIEluc3BlY3RvcjogZXh0cmFjdCBWZWN0b3IgaW5zdHJ1bWVudGF0aW9uIGZyb20gY29y
ZSBOTUkgY29kZSBpbnRvIE1lbW9yeUluc3RydW1lbnRhdGlvblZlY3Rvci5oIGhlYWRlci4KKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTk2NjUwCisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgYWRkSW5zdHJ1bWVu
dGVkVmVjdG9yIGFuZCBhZGRJbnN0cnVtZW50ZWRWZWN0b3JQdHIgd2VyZSByZXBsYWNlZCB3aXRo
IGFkZE1lbWJlci4KKworICAgICAgICAqIGNzcy9DU1NHcmFkaWVudFZhbHVlLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OkNTU0dyYWRpZW50VmFsdWU6OnJlcG9ydEJhc2VDbGFzc01lbW9yeVVzYWdl
KToKKyAgICAgICAgKiBjc3MvQ1NTSW1hZ2VTZXRWYWx1ZS5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpDU1NJbWFnZVNldFZhbHVlOjpyZXBvcnREZXNjZW5kYW50TWVtb3J5VXNhZ2UpOgorICAgICAg
ICAqIGNzcy9DU1NNZWRpYVJ1bGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q1NTTWVkaWFSdWxl
OjpyZXBvcnREZXNjZW5kYW50TWVtb3J5VXNhZ2UpOgorICAgICAgICAqIGNzcy9DU1NSdWxlTGlz
dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTdGF0aWNDU1NSdWxlTGlzdDo6cmVwb3J0TWVtb3J5
VXNhZ2UpOgorICAgICAgICAqIGNzcy9DU1NTdHlsZVNoZWV0LmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OkNTU1N0eWxlU2hlZXQ6OnJlcG9ydE1lbW9yeVVzYWdlKToKKyAgICAgICAgKiBjc3MvQ1NT
VmFsdWVMaXN0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNTU1ZhbHVlTGlzdDo6cmVwb3J0RGVz
Y2VuZGFudE1lbW9yeVVzYWdlKToKKyAgICAgICAgKiBjc3MvTWVkaWFMaXN0LmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6Ok1lZGlhUXVlcnlTZXQ6OnJlcG9ydE1lbW9yeVVzYWdlKToKKyAgICAgICAg
KiBjc3MvTWVkaWFRdWVyeS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVF1ZXJ5OjpyZXBv
cnRNZW1vcnlVc2FnZSk6CisgICAgICAgICogY3NzL1N0eWxlUmVzb2x2ZXIuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6U3R5bGVSZXNvbHZlcjo6Y29sbGVjdE1hdGNoaW5nUnVsZXNGb3JMaXN0KToK
KyAgICAgICAgKiBjc3MvU3R5bGVSdWxlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlN0eWxlUnVs
ZUJsb2NrOjpyZXBvcnREZXNjZW5kYW50TWVtb3J5VXNhZ2UpOgorICAgICAgICAqIGNzcy9TdHls
ZVNoZWV0Q29udGVudHMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U3R5bGVTaGVldENvbnRlbnRz
OjpyZXBvcnRNZW1vcnlVc2FnZSk6CisgICAgICAgICogY3NzL1dlYktpdENTU0tleWZyYW1lc1J1
bGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U3R5bGVSdWxlS2V5ZnJhbWVzOjpyZXBvcnREZXNj
ZW5kYW50TWVtb3J5VXNhZ2UpOgorICAgICAgICAoV2ViQ29yZTo6V2ViS2l0Q1NTS2V5ZnJhbWVz
UnVsZTo6cmVwb3J0RGVzY2VuZGFudE1lbW9yeVVzYWdlKToKKyAgICAgICAgKiBjc3MvV2ViS2l0
Q1NTUmVnaW9uUnVsZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpXZWJLaXRDU1NSZWdpb25SdWxl
OjpyZXBvcnREZXNjZW5kYW50TWVtb3J5VXNhZ2UpOgorICAgICAgICAqIGRvbS9Eb2N1bWVudC5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudDo6cmVwb3J0TWVtb3J5VXNhZ2UpOgorICAg
ICAgICAqIGxvYWRlci9Eb2N1bWVudExvYWRlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpEb2N1
bWVudExvYWRlcjo6cmVwb3J0TWVtb3J5VXNhZ2UpOgorICAgICAgICAqIHBsYXRmb3JtL25ldHdv
cmsvUmVzb3VyY2VSZXF1ZXN0QmFzZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZXNvdXJjZVJl
cXVlc3RCYXNlOjpyZXBvcnRNZW1vcnlVc2FnZSk6CisKIDIwMTItMDktMTkgIFBhdHJpY2sgR2Fu
c3RlcmVyICA8cGFyb2dhQHdlYmtpdC5vcmc+CiAKICAgICAgICAgUmVtb3ZlIGFsbCB1c2FnZXMg
b2YgTV9QSSBmcm9tIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0v
Q2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKaW5kZXggOTg5ODk0
ZGYwNDExMmEzNjhhMTRkOWRhN2E3MjU3YjBjOTA0YmU5Ny4uM2JlMWY5NzE1ZmFkOTU4ZGM4YjQ0
NjRiMTMxZTI5YjQzMGM0NjE0MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9D
aGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKQEAgLTEsMyAr
MSwxNyBAQAorMjAxMi0wOS0xOSAgSWx5YSBUaWtob25vdnNreSAgPGxvaXNsb0BjaHJvbWl1bS5v
cmc+CisKKyAgICAgICAgV2ViIEluc3BlY3RvcjogZXh0cmFjdCBWZWN0b3IgaW5zdHJ1bWVudGF0
aW9uIGZyb20gY29yZSBOTUkgY29kZSBpbnRvIE1lbW9yeUluc3RydW1lbnRhdGlvblZlY3Rvci5o
IGhlYWRlci4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTk2NjUwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
VGVzdCBmb3IgaW5zdHJ1bWVudGVkIHZlY3Rvci4KKworICAgICAgICAqIHRlc3RzL01lbW9yeUlu
c3RydW1lbnRhdGlvblRlc3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW5zdHJ1bWVudGVkT3du
ZXI6Okluc3RydW1lbnRlZE93bmVyKToKKyAgICAgICAgKFdlYkNvcmU6OlRFU1QpOgorICAgICAg
ICAoV2ViQ29yZSk6CisKIDIwMTItMDktMTkgIEtlbnQgVGFtdXJhICA8dGtlbnRAY2hyb21pdW0u
b3JnPgogCiAgICAgICAgIFtDaHJvbWl1bV0gRml4IGNyYXNoIGluIFdlYkZyYW1lSW1wbDo6bG9h
ZEhpc3RvcnlJdGVtCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0dOVW1ha2VmaWxlLmxpc3QuYW0g
Yi9Tb3VyY2UvV1RGL0dOVW1ha2VmaWxlLmxpc3QuYW0KaW5kZXggZThlNDJlZGQzNTUyZWRlNTVh
ZjE4NDIxMTUxZjBlYmI5MzM5NmI4NS4uMGVkMTBkZGFlMTQ4YTA3MzNhODM1MjY5NTRiNzgxOWZk
YmNiZGZmMiAxMDA2NDQKLS0tIGEvU291cmNlL1dURi9HTlVtYWtlZmlsZS5saXN0LmFtCisrKyBi
L1NvdXJjZS9XVEYvR05VbWFrZWZpbGUubGlzdC5hbQpAQCAtODAsNiArODAsNyBAQCB3dGZfc291
cmNlcyArPSBcCiAgICAgU291cmNlL1dURi93dGYvTWVkaWFUaW1lLmggXAogICAgIFNvdXJjZS9X
VEYvd3RmL01lZGlhVGltZS5jcHAgXAogICAgIFNvdXJjZS9XVEYvd3RmL01lbW9yeUluc3RydW1l
bnRhdGlvbi5oIFwKKyAgICBTb3VyY2UvV1RGL3d0Zi9NZW1vcnlJbnN0cnVtZW50YXRpb25WZWN0
b3IuaCBcCiAgICAgU291cmNlL1dURi93dGYvTWVzc2FnZVF1ZXVlLmggXAogICAgIFNvdXJjZS9X
VEYvd3RmL01ldGFBbGxvY2F0b3IuY3BwIFwKICAgICBTb3VyY2UvV1RGL3d0Zi9NZXRhQWxsb2Nh
dG9yLmggXApkaWZmIC0tZ2l0IGEvU291cmNlL1dURi9XVEYuZ3lwaSBiL1NvdXJjZS9XVEYvV1RG
Lmd5cGkKaW5kZXggNWRjZDAxZWQ3ZDNhNGI3YTljMzE4MWI1NGExYWE0YzVhOWYyMTM4MS4uZmRj
MjhkNmJiNTVlN2U1NjVkYWYwOTViNzNjYjUzYTczZTA5NDhmYyAxMDA2NDQKLS0tIGEvU291cmNl
L1dURi9XVEYuZ3lwaQorKysgYi9Tb3VyY2UvV1RGL1dURi5neXBpCkBAIC01MCw2ICs1MCw3IEBA
CiAgICAgICAgICAgICAnd3RmL01haW5UaHJlYWQuaCcsCiAgICAgICAgICAgICAnd3RmL01hdGhF
eHRyYXMuaCcsCiAgICAgICAgICAgICAnd3RmL01lbW9yeUluc3RydW1lbnRhdGlvbi5oJywKKyAg
ICAgICAgICAgICd3dGYvTWVtb3J5SW5zdHJ1bWVudGF0aW9uVmVjdG9yLmgnLAogICAgICAgICAg
ICAgJ3d0Zi9NZXNzYWdlUXVldWUuaCcsCiAgICAgICAgICAgICAnd3RmL05vbkNvcHlpbmdTb3J0
LmgnLAogICAgICAgICAgICAgJ3d0Zi9Ob25jb3B5YWJsZS5oJywKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XVEYvV1RGLnBybyBiL1NvdXJjZS9XVEYvV1RGLnBybwppbmRleCBiYzBhODc3MGVmMWE2N2Jm
NzViOWIyNWU1NDYxYmQ0Mzk1YTJkZDM4Li5lOGRhNGMwYzZiMjQ2NzBjZDBiNTgyNzU2MDMxM2Iw
MGM5Zjk4OThlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL1dURi5wcm8KKysrIGIvU291cmNlL1dU
Ri9XVEYucHJvCkBAIC04Nyw2ICs4Nyw3IEBAIEhFQURFUlMgKz0gXAogICAgIE1ENS5oIFwKICAg
ICBNZWRpYVRpbWUuaCBcCiAgICAgTWVtb3J5SW5zdHJ1bWVudGF0aW9uLmggXAorICAgIE1lbW9y
eUluc3RydW1lbnRhdGlvblZlY3Rvci5oIFwKICAgICBNZXNzYWdlUXVldWUuaCBcCiAgICAgTWV0
YUFsbG9jYXRvci5oIFwKICAgICBNZXRhQWxsb2NhdG9ySGFuZGxlLmggXApkaWZmIC0tZ2l0IGEv
U291cmNlL1dURi9XVEYudmNwcm9qL1dURi52Y3Byb2ogYi9Tb3VyY2UvV1RGL1dURi52Y3Byb2ov
V1RGLnZjcHJvagppbmRleCA0YjJjYzYyMWFlMTAwN2QzY2IxM2E1YzZkYTJhMjU3MWUxMTZkZGE1
Li5mOTEwOGM4OTM1ZTJmNTg0YWVhOGI4NzJhM2FlMzRjMTI0MzRlODQzIDEwMDY0NAotLS0gYS9T
b3VyY2UvV1RGL1dURi52Y3Byb2ovV1RGLnZjcHJvagorKysgYi9Tb3VyY2UvV1RGL1dURi52Y3By
b2ovV1RGLnZjcHJvagpAQCAtOTA1LDYgKzkwNSwxMCBAQAogCQkJPgogCQk8L0ZpbGU+CiAJCTxG
aWxlCisJCSAgICAgICAgUmVsYXRpdmVQYXRoPSIuLlx3dGZcTWVtb3J5SW5zdHJ1bWVudGF0aW9u
VmVjdG9yLmgiCisJCQk+CisJCTwvRmlsZT4KKwkJPEZpbGUKIAkJCVJlbGF0aXZlUGF0aD0iLi5c
d3RmXE1lc3NhZ2VRdWV1ZS5oIgogCQkJPgogCQk8L0ZpbGU+CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V1RGL1dURi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dURi9XVEYueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvagppbmRleCA1MmFmN2I5Y2VjYzVkMWE1MmFlMDhkOTdiNDIyYjNl
NWFhYmQwMDc2Li4zYmIxOWRkZDczYmEwOGMwMTBmNDcwODY2MmE3Y2EwNWUyMmE4YzQxIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV1RGL1dURi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1Nv
dXJjZS9XVEYvV1RGLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTE3LDYgKzE3LDcgQEAK
IAkJNDMzMEYzOEYxNTc0NUIwNTAwQUFGQThGIC8qIFVSTFN0cmluZy5jcHAgaW4gU291cmNlcyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0MzMwRjM4RTE1NzQ1QjA1MDBBQUZB
OEYgLyogVVJMU3RyaW5nLmNwcCAqLzsgfTsKIAkJNEYwMzIxQkMxNTZBQThEMTAwNkVCQUY2IC8q
IEJpdEFycmF5LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSA0RjAzMjFCQjE1NkFBOEQxMDA2RUJBRjYgLyogQml0QXJyYXkuaCAqLzsgfTsKIAkJNEYxRDEx
NTQxNUZGMTFCRTAwMjZFOTA4IC8qIE1lbW9yeUluc3RydW1lbnRhdGlvbi5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNEYxRDExNTMxNUZGMTFCRTAwMjZF
OTA4IC8qIE1lbW9yeUluc3RydW1lbnRhdGlvbi5oICovOyB9OworCQk0RkNCNzEwQTE2MEExQTA3
MDA4NDI1RUMgLyogTWVtb3J5SW5zdHJ1bWVudGF0aW9uVmVjdG9yLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0RkNCNzEwOTE2MEExQTA3MDA4NDI1RUMg
LyogTWVtb3J5SW5zdHJ1bWVudGF0aW9uVmVjdG9yLmggKi87IH07CiAJCTdFMjlDMzNFMTVGRkQ3
OUIwMDUxNkQ2MSAvKiBPYmpjUnVudGltZUV4dHJhcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gN0UyOUMzM0QxNUZGRDc5QjAwNTE2RDYxIC8qIE9iamNS
dW50aW1lRXh0cmFzLmggKi87IH07CiAJCTgxMzQwMTM4MTVCMDkyRkQwMDFGRjBCOCAvKiBCYXNl
NjQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODEz
NDAxMzYxNUIwOTJGRDAwMUZGMEI4IC8qIEJhc2U2NC5jcHAgKi87IH07CiAJCTgxMzQwMTM5MTVC
MDkyRkQwMDFGRjBCOCAvKiBCYXNlNjQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDgxMzQwMTM3MTVCMDkyRkQwMDFGRjBCOCAvKiBCYXNlNjQuaCAqLzsg
fTsKQEAgLTI2NSw2ICsyNjYsNyBAQAogCQk0MzMwRjM4RTE1NzQ1QjA1MDBBQUZBOEYgLyogVVJM
U3RyaW5nLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFVSTFN0cmlu
Zy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTRGMDMyMUJCMTU2QUE4RDEwMDZF
QkFGNiAvKiBCaXRBcnJheS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBCaXRB
cnJheS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0RjFEMTE1MzE1RkYxMUJFMDAy
NkU5MDggLyogTWVtb3J5SW5zdHJ1bWVudGF0aW9uLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IE1lbW9yeUluc3RydW1lbnRhdGlvbi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OworCQk0RkNCNzEwOTE2MEExQTA3MDA4NDI1RUMgLyogTWVtb3J5SW5zdHJ1bWVudGF0aW9u
VmVjdG9yLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE1lbW9yeUluc3RydW1l
bnRhdGlvblZlY3Rvci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1RDI0N0I2MjE0
Njg5Qjg2MDBFNzhCNzYgLyogbGliV1RGLmEgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZXhwbGljaXRGaWxlVHlwZSA9IGFyY2hpdmUuYXI7IGluY2x1ZGVJbkluZGV4ID0gMDsgcGF0aCA9
IGxpYldURi5hOyBzb3VyY2VUcmVlID0gQlVJTFRfUFJPRFVDVFNfRElSOyB9OwogCQk1RDI0N0I2
RTE0Njg5QzQ3MDBFNzhCNzYgLyogQmFzZS54Y2NvbmZpZyAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQueGNjb25maWc7IHBhdGggPSBCYXNlLnhj
Y29uZmlnOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1RDI0N0I2RjE0Njg5QzQ3MDBF
NzhCNzYgLyogQ29tcGlsZXJWZXJzaW9uLnhjY29uZmlnICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dC54Y2NvbmZpZzsgcGF0aCA9IENvbXBpbGVy
VmVyc2lvbi54Y2NvbmZpZzsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTY1MCw2ICs2
NTIsNyBAQAogCQkJCUNENTQ5N0FBMTU4NTdEMDMwMEI1QkMzMCAvKiBNZWRpYVRpbWUuY3BwICov
LAogCQkJCUNENTQ5N0FCMTU4NTdEMDMwMEI1QkMzMCAvKiBNZWRpYVRpbWUuaCAqLywKIAkJCQk0
RjFEMTE1MzE1RkYxMUJFMDAyNkU5MDggLyogTWVtb3J5SW5zdHJ1bWVudGF0aW9uLmggKi8sCisJ
CQkJNEZDQjcxMDkxNjBBMUEwNzAwODQyNUVDIC8qIE1lbW9yeUluc3RydW1lbnRhdGlvblZlY3Rv
ci5oICovLAogCQkJCUE4QTQ3MkNDMTUxQTgyNUIwMDQxMjNGRiAvKiBNZXNzYWdlUXVldWUuaCAq
LywKIAkJCQlBOEE0NzJDRDE1MUE4MjVCMDA0MTIzRkYgLyogTWV0YUFsbG9jYXRvci5jcHAgKi8s
CiAJCQkJQThBNDcyQ0UxNTFBODI1QjAwNDEyM0ZGIC8qIE1ldGFBbGxvY2F0b3IuaCAqLywKQEAg
LTEwNzYsNiArMTA3OSw3IEBACiAJCQkJQThBNDc0NDYxNTFBODI1QjAwNDEyM0ZGIC8qIFdURlN0
cmluZy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQThBNDc0ODcxNTFBODI1QjAwNDEyM0ZGIC8qIFdU
RlRocmVhZERhdGEuaCBpbiBIZWFkZXJzICovLAogCQkJCTRGMUQxMTU0MTVGRjExQkUwMDI2RTkw
OCAvKiBNZW1vcnlJbnN0cnVtZW50YXRpb24uaCBpbiBIZWFkZXJzICovLAorCQkJCTRGQ0I3MTBB
MTYwQTFBMDcwMDg0MjVFQyAvKiBNZW1vcnlJbnN0cnVtZW50YXRpb25WZWN0b3IuaCBpbiBIZWFk
ZXJzICovLAogCQkJKTsKIAkJCXJ1bk9ubHlGb3JEZXBsb3ltZW50UG9zdHByb2Nlc3NpbmcgPSAw
OwogCQl9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvTWVtb3J5SW5zdHJ1bWVudGF0aW9u
LmggYi9Tb3VyY2UvV1RGL3d0Zi9NZW1vcnlJbnN0cnVtZW50YXRpb24uaAppbmRleCAxMzFhZjg0
OTdhY2VhZDNhOWI5Y2FjMmRlZTE3NDdjODJlOTBiNjEzLi5mMGJiNDhiNmY5MzVmYjk2MjQxNmQ3
ZmRhODBmNzEwZGM1NmE2MTIwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9NZW1vcnlJbnN0
cnVtZW50YXRpb24uaAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9NZW1vcnlJbnN0cnVtZW50YXRpb24u
aApAQCAtODEsNiArODEsOCBAQCBwcml2YXRlOgogICAgIHNpemVfdCBtX29iamVjdFNpemU7CiB9
OwogCit0ZW1wbGF0ZTx0eXBlbmFtZSBUPiB2b2lkIHJlcG9ydE1lbW9yeVVzYWdlKGNvbnN0IFQq
IGNvbnN0JiwgTWVtb3J5T2JqZWN0SW5mbyopOworCiBjbGFzcyBNZW1vcnlJbnN0cnVtZW50YXRp
b24gewogcHVibGljOgogICAgIHZpcnR1YWwgfk1lbW9yeUluc3RydW1lbnRhdGlvbigpIHsgfQpA
QCAtMTAwLDYgKzEwMiwxMyBAQCBwcm90ZWN0ZWQ6CiAgICAgICAgIHZpcnR1YWwgdm9pZCBwcm9j
ZXNzKE1lbW9yeUluc3RydW1lbnRhdGlvbiopID0gMDsKICAgICB9OwogCisgICAgdGVtcGxhdGU8
dHlwZW5hbWUgVD4gc3RhdGljIHZvaWQgc2VsZWN0SW5zdHJ1bWVudGF0aW9uTWV0aG9kKGNvbnN0
IFQqIGNvbnN0JiBvYmplY3QsIE1lbW9yeU9iamVjdEluZm8qIG1lbW9yeU9iamVjdEluZm8pCisg
ICAgeworICAgICAgICAvLyBJZiB0aGVyZSBpcyByZXBvcnRNZW1vcnlVc2FnZSBtZXRob2Qgb24g
dGhlIG9iamVjdCwgY2FsbCBpdC4KKyAgICAgICAgLy8gT3RoZXJ3aXNlIGNvdW50IG9ubHkgb2Jq
ZWN0J3Mgc2VsZiBzaXplLgorICAgICAgICByZXBvcnRPYmplY3RNZW1vcnlVc2FnZTxULCB2b2lk
IChUOjoqKShNZW1vcnlPYmplY3RJbmZvKikgY29uc3Q+KG9iamVjdCwgbWVtb3J5T2JqZWN0SW5m
bywgMCk7CisgICAgfQorCiBwcml2YXRlOgogICAgIHZpcnR1YWwgdm9pZCBjb3VudE9iamVjdFNp
emUoTWVtb3J5T2JqZWN0VHlwZSwgc2l6ZV90KSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIGRlZmVy
SW5zdHJ1bWVudGVkUG9pbnRlcihQYXNzT3duUHRyPEluc3RydW1lbnRlZFBvaW50ZXJCYXNlPikg
PSAwOwpAQCAtMTA3LDEzICsxMTYsNyBAQCBwcml2YXRlOgogICAgIHZpcnR1YWwgdm9pZCBwcm9j
ZXNzRGVmZXJyZWRJbnN0cnVtZW50ZWRQb2ludGVycygpID0gMDsKIAogICAgIGZyaWVuZCBjbGFz
cyBNZW1vcnlDbGFzc0luZm87Ci0KLSAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBUPiBzdGF0aWMgdm9p
ZCBzZWxlY3RJbnN0cnVtZW50YXRpb25NZXRob2QoY29uc3QgVCogY29uc3QmIG9iamVjdCwgTWVt
b3J5T2JqZWN0SW5mbyogbWVtb3J5T2JqZWN0SW5mbykKLSAgICB7Ci0gICAgICAgIC8vIElmIHRo
ZXJlIGlzIHJlcG9ydE1lbW9yeVVzYWdlIG1ldGhvZCBvbiB0aGUgb2JqZWN0LCBjYWxsIGl0Lgot
ICAgICAgICAvLyBPdGhlcndpc2UgY291bnQgb25seSBvYmplY3QncyBzZWxmIHNpemUuCi0gICAg
ICAgIHJlcG9ydE9iamVjdE1lbW9yeVVzYWdlPFQsIHZvaWQgKFQ6OiopKE1lbW9yeU9iamVjdElu
Zm8qKSBjb25zdD4ob2JqZWN0LCBtZW1vcnlPYmplY3RJbmZvLCAwKTsKLSAgICB9CisgICAgdGVt
cGxhdGU8dHlwZW5hbWUgVD4gZnJpZW5kIHZvaWQgcmVwb3J0TWVtb3J5VXNhZ2UoY29uc3QgVCog
Y29uc3QmLCBNZW1vcnlPYmplY3RJbmZvKik7CiAKICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBUeXBl
LCBUeXBlIFB0cj4gc3RydWN0IE1lbWJlckhlbHBlclN0cnVjdDsKICAgICB0ZW1wbGF0ZTx0eXBl
bmFtZSBULCB0eXBlbmFtZSBUeXBlPgpAQCAtMjEzLDExICsyMTYsMTcgQEAgcHJpdmF0ZToKIH07
CiAKIHRlbXBsYXRlPHR5cGVuYW1lIFQ+Cit2b2lkIHJlcG9ydE1lbW9yeVVzYWdlKGNvbnN0IFQq
IGNvbnN0JiBvYmplY3QsIE1lbW9yeU9iamVjdEluZm8qIG1lbW9yeU9iamVjdEluZm8pCit7Cisg
ICAgTWVtb3J5SW5zdHJ1bWVudGF0aW9uOjpzZWxlY3RJbnN0cnVtZW50YXRpb25NZXRob2Q8VD4o
b2JqZWN0LCBtZW1vcnlPYmplY3RJbmZvKTsKK30KKwordGVtcGxhdGU8dHlwZW5hbWUgVD4KIHZv
aWQgTWVtb3J5SW5zdHJ1bWVudGF0aW9uOjphZGRPYmplY3RJbXBsKGNvbnN0IFQqIGNvbnN0JiBv
YmplY3QsIE1lbW9yeU9iamVjdFR5cGUgb3duZXJPYmplY3RUeXBlLCBNZW1vcnlPd25pbmdUeXBl
IG93bmluZ1R5cGUpCiB7CiAgICAgaWYgKG93bmluZ1R5cGUgPT0gYnlSZWZlcmVuY2UpIHsKICAg
ICAgICAgTWVtb3J5T2JqZWN0SW5mbyBtZW1vcnlPYmplY3RJbmZvKHRoaXMsIG93bmVyT2JqZWN0
VHlwZSk7Ci0gICAgICAgIHNlbGVjdEluc3RydW1lbnRhdGlvbk1ldGhvZDxUPihvYmplY3QsICZt
ZW1vcnlPYmplY3RJbmZvKTsKKyAgICAgICAgcmVwb3J0TWVtb3J5VXNhZ2Uob2JqZWN0LCAmbWVt
b3J5T2JqZWN0SW5mbyk7CiAgICAgfSBlbHNlIHsKICAgICAgICAgaWYgKCFvYmplY3QgfHwgdmlz
aXRlZChvYmplY3QpKQogICAgICAgICAgICAgcmV0dXJuOwpAQCAtMzEzLDcgKzMyMiw3IEBAIHRl
bXBsYXRlPHR5cGVuYW1lIFQ+CiB2b2lkIE1lbW9yeUluc3RydW1lbnRhdGlvbjo6SW5zdHJ1bWVu
dGVkUG9pbnRlcjxUPjo6cHJvY2VzcyhNZW1vcnlJbnN0cnVtZW50YXRpb24qIG1lbW9yeUluc3Ry
dW1lbnRhdGlvbikKIHsKICAgICBNZW1vcnlPYmplY3RJbmZvIG1lbW9yeU9iamVjdEluZm8obWVt
b3J5SW5zdHJ1bWVudGF0aW9uLCBtX293bmVyT2JqZWN0VHlwZSk7Ci0gICAgc2VsZWN0SW5zdHJ1
bWVudGF0aW9uTWV0aG9kPFQ+KG1fcG9pbnRlciwgJm1lbW9yeU9iamVjdEluZm8pOworICAgIHJl
cG9ydE1lbW9yeVVzYWdlKG1fcG9pbnRlciwgJm1lbW9yeU9iamVjdEluZm8pOwogICAgIG1lbW9y
eUluc3RydW1lbnRhdGlvbi0+Y291bnRPYmplY3RTaXplKG1lbW9yeU9iamVjdEluZm8ub2JqZWN0
VHlwZSgpLCBtZW1vcnlPYmplY3RJbmZvLm9iamVjdFNpemUoKSk7CiB9CiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XVEYvd3RmL01lbW9yeUluc3RydW1lbnRhdGlvblZlY3Rvci5oIGIvU291cmNlL1dU
Ri93dGYvTWVtb3J5SW5zdHJ1bWVudGF0aW9uVmVjdG9yLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uN2Y5ZGIxMzhl
ZDRiZDY2ZjE3MTdmYTBhOTVmMTA5ZGUyY2ZmYjc4MgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJj
ZS9XVEYvd3RmL01lbW9yeUluc3RydW1lbnRhdGlvblZlY3Rvci5oCkBAIC0wLDAgKzEsNTkgQEAK
Ky8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTIgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKKyAqIG1ldDoKKyAqCisgKiAg
ICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3Zl
IGNvcHlyaWdodAorICogbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyLgorICogICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBm
b3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQorICogY29weXJpZ2h0IG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgorICogaW4gdGhl
IGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQor
ICogZGlzdHJpYnV0aW9uLgorICogICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5j
LiBub3IgdGhlIG5hbWVzIG9mIGl0cworICogY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVu
ZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KKyAqIHRoaXMgc29mdHdhcmUg
d2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisgKgorICogVEhJUyBT
T0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJV
VE9SUworICogIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJ
TkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMg
T0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgorICogQSBQQVJUSUNVTEFSIFBVUlBP
U0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKKyAqIE9X
TkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJ
TkNJREVOVEFMLAorICogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFH
RVMgKElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VC
U1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCisgKiBEQVRBLCBPUiBQUk9G
SVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkK
KyAqIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFC
SUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFS
SVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZF
TiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisj
aWZuZGVmIE1lbW9yeUluc3RydW1lbnRhdGlvblZlY3Rvcl9oCisjZGVmaW5lIE1lbW9yeUluc3Ry
dW1lbnRhdGlvblZlY3Rvcl9oCisKKyNpbmNsdWRlIDx3dGYvTWVtb3J5SW5zdHJ1bWVudGF0aW9u
Lmg+CisjaW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgorCituYW1lc3BhY2UgV1RGIHsKKwordGVtcGxh
dGU8dHlwZW5hbWUgVCwgc2l6ZV90IGlubGluZV9jYXBhY2l0eT4KK3ZvaWQgaW5zdHJ1bWVudFZl
Y3RvclZhbHVlcyhNZW1vcnlDbGFzc0luZm8mIGluZm8sIGNvbnN0IFZlY3RvcjxULCBpbmxpbmVf
Y2FwYWNpdHk+KiBjb25zdCYgdmVjdG9yKQoreworICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwg
dmVjdG9yLT5zaXplKCk7ICsraSkKKyAgICAgICAgaW5mby5hZGRNZW1iZXIodmVjdG9yLT5hdChp
KSk7Cit9CisKK3RlbXBsYXRlPHNpemVfdCBpbmxpbmVfY2FwYWNpdHk+IHZvaWQgaW5zdHJ1bWVu
dFZlY3RvclZhbHVlcyhNZW1vcnlDbGFzc0luZm8mLCBjb25zdCBWZWN0b3I8aW50LCBpbmxpbmVf
Y2FwYWNpdHk+KiBjb25zdCYpIHsgfQorCit0ZW1wbGF0ZTx0eXBlbmFtZSBULCBzaXplX3QgaW5s
aW5lX2NhcGFjaXR5Pgordm9pZCByZXBvcnRNZW1vcnlVc2FnZShjb25zdCBWZWN0b3I8VCwgaW5s
aW5lX2NhcGFjaXR5PiogY29uc3QmIHZlY3RvciwgTWVtb3J5T2JqZWN0SW5mbyogbWVtb3J5T2Jq
ZWN0SW5mbykKK3sKKyAgICBNZW1vcnlDbGFzc0luZm8gaW5mbyhtZW1vcnlPYmplY3RJbmZvLCB2
ZWN0b3IpOworICAgIGlmIChpbmxpbmVfY2FwYWNpdHkgPCB2ZWN0b3ItPmNhcGFjaXR5KCkpCisg
ICAgICAgIGluZm8uYWRkUmF3QnVmZmVyKHZlY3Rvci0+ZGF0YSgpLCB2ZWN0b3ItPmNhcGFjaXR5
KCkgKiBzaXplb2YoVCkpOworICAgIGluc3RydW1lbnRWZWN0b3JWYWx1ZXMoaW5mbywgdmVjdG9y
KTsKK30KKworfQorCisjZW5kaWYgLy8gIWRlZmluZWQoTWVtb3J5SW5zdHJ1bWVudGF0aW9uVmVj
dG9yX2gpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9WZWN0b3IuaCBiL1NvdXJjZS9XVEYv
d3RmL1ZlY3Rvci5oCmluZGV4IDhhNWVhZjYyMTMyYmZlMGU3MDI5YTAyN2UyY2JjYmQzMzAzOTk0
M2MuLjllOTUzYzY0YTE4YmVmNzc2NDYwNzNiZmQ5MGQxNDlkMGZlNTQ4MWEgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XVEYvd3RmL1ZlY3Rvci5oCisrKyBiL1NvdXJjZS9XVEYvd3RmL1ZlY3Rvci5oCkBA
IC0xMjU2LDYgKzEyNTYsOSBAQCBuYW1lc3BhY2UgV1RGIHsKICAgICB9OwogI2VuZGlmCiAKKyAg
ICBjbGFzcyBNZW1vcnlPYmplY3RJbmZvOworICAgIHRlbXBsYXRlPHR5cGVuYW1lIFQsIHNpemVf
dCBpbmxpbmVDYXBhY2l0eT4gdm9pZCByZXBvcnRNZW1vcnlVc2FnZShjb25zdCBWZWN0b3I8VCwg
aW5saW5lQ2FwYWNpdHk+KiBjb25zdCYsIE1lbW9yeU9iamVjdEluZm8qKTsKKwogfSAvLyBuYW1l
c3BhY2UgV1RGCiAKIHVzaW5nIFdURjo6VmVjdG9yOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvY3NzL0NTU0dyYWRpZW50VmFsdWUuY3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU0dyYWRp
ZW50VmFsdWUuY3BwCmluZGV4IGY5NzE1ZjI3ZjU4NTFjOTJhMTg1M2RiNDZiYTcwYmRhZGUxYWVh
MjcuLmQwMGMxMzA4ZTUxMGIzMGRiZGI3MzM5ZGFmYWE4NzdiYTUyNGM3ZWQgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NHcmFkaWVudFZhbHVlLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9jc3MvQ1NTR3JhZGllbnRWYWx1ZS5jcHAKQEAgLTM3LDYgKzM3LDcgQEAKICNpbmNsdWRl
ICJSZW5kZXJPYmplY3QuaCIKICNpbmNsdWRlICJTdHlsZVJlc29sdmVyLmgiCiAjaW5jbHVkZSAi
V2ViQ29yZU1lbW9yeUluc3RydW1lbnRhdGlvbi5oIgorI2luY2x1ZGUgPHd0Zi9NZW1vcnlJbnN0
cnVtZW50YXRpb25WZWN0b3IuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9TdHJpbmdCdWlsZGVyLmg+
CiAjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CiAKQEAgLTQ2OSw3ICs0NzAsNyBAQCB2
b2lkIENTU0dyYWRpZW50VmFsdWU6OnJlcG9ydEJhc2VDbGFzc01lbW9yeVVzYWdlKE1lbW9yeU9i
amVjdEluZm8qIG1lbW9yeU9iamVjdAogICAgIGluZm8uYWRkTWVtYmVyKG1fZmlyc3RZKTsKICAg
ICBpbmZvLmFkZE1lbWJlcihtX3NlY29uZFgpOwogICAgIGluZm8uYWRkTWVtYmVyKG1fc2Vjb25k
WSk7Ci0gICAgaW5mby5hZGRJbnN0cnVtZW50ZWRWZWN0b3IobV9zdG9wcyk7CisgICAgaW5mby5h
ZGRNZW1iZXIobV9zdG9wcyk7CiB9CiAKIFN0cmluZyBDU1NMaW5lYXJHcmFkaWVudFZhbHVlOjpj
dXN0b21Dc3NUZXh0KCkgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NJ
bWFnZVNldFZhbHVlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NJbWFnZVNldFZhbHVlLmNw
cAppbmRleCA1ZTZiZWU1YTYzY2EzMDM2NTcyNGRhZGE5NjgwZDIwNmZkMWNiMGE4Li42ZTAyYTIw
Zjk1YWMzZjE0ZjQ2MWExYzUxMDBiNGFkNjJiZDllZjBhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9jc3MvQ1NTSW1hZ2VTZXRWYWx1ZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0NT
U0ltYWdlU2V0VmFsdWUuY3BwCkBAIC0zNyw2ICszNyw3IEBACiAjaW5jbHVkZSAiU3R5bGVDYWNo
ZWRJbWFnZVNldC5oIgogI2luY2x1ZGUgIlN0eWxlUGVuZGluZ0ltYWdlLmgiCiAjaW5jbHVkZSAi
V2ViQ29yZU1lbW9yeUluc3RydW1lbnRhdGlvbi5oIgorI2luY2x1ZGUgPHd0Zi9NZW1vcnlJbnN0
cnVtZW50YXRpb25WZWN0b3IuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCkBAIC0xNjgsNyAr
MTY5LDcgQEAgdm9pZCBDU1NJbWFnZVNldFZhbHVlOjpyZXBvcnREZXNjZW5kYW50TWVtb3J5VXNh
Z2UoTWVtb3J5T2JqZWN0SW5mbyogbWVtb3J5T2JqZWMKIHsKICAgICBNZW1vcnlDbGFzc0luZm8g
aW5mbyhtZW1vcnlPYmplY3RJbmZvLCB0aGlzLCBXZWJDb3JlTWVtb3J5VHlwZXM6OkNTUyk7CiAg
ICAgQ1NTVmFsdWVMaXN0OjpyZXBvcnREZXNjZW5kYW50TWVtb3J5VXNhZ2UobWVtb3J5T2JqZWN0
SW5mbyk7Ci0gICAgaW5mby5hZGRJbnN0cnVtZW50ZWRWZWN0b3IobV9pbWFnZXNJblNldCk7Cisg
ICAgaW5mby5hZGRNZW1iZXIobV9pbWFnZXNJblNldCk7CiB9CiAKIHZvaWQgQ1NTSW1hZ2VTZXRW
YWx1ZTo6SW1hZ2VXaXRoU2NhbGU6OnJlcG9ydE1lbW9yeVVzYWdlKE1lbW9yeU9iamVjdEluZm8q
IG1lbW9yeU9iamVjdEluZm8pIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3Mv
Q1NTTWVkaWFSdWxlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NNZWRpYVJ1bGUuY3BwCmlu
ZGV4IGYwZTljNzljM2YxMmVlMzc2NDdlZTA3NTkwYmJmOTcwOTcwZWJhYmUuLjhjMmM5NzNjMjEw
NjM2YTYxZWQ2MmU3OTRhYzcwMWRlMzk1YWVjNjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2Nzcy9DU1NNZWRpYVJ1bGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NNZWRpYVJ1
bGUuY3BwCkBAIC0yOSw2ICsyOSw3IEBACiAjaW5jbHVkZSAiRXhjZXB0aW9uQ29kZS5oIgogI2lu
Y2x1ZGUgIlN0eWxlUnVsZS5oIgogI2luY2x1ZGUgIldlYkNvcmVNZW1vcnlJbnN0cnVtZW50YXRp
b24uaCIKKyNpbmNsdWRlIDx3dGYvTWVtb3J5SW5zdHJ1bWVudGF0aW9uVmVjdG9yLmg+CiAjaW5j
bHVkZSA8d3RmL3RleHQvU3RyaW5nQnVpbGRlci5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CkBA
IC0xODAsNyArMTgxLDcgQEAgdm9pZCBDU1NNZWRpYVJ1bGU6OnJlcG9ydERlc2NlbmRhbnRNZW1v
cnlVc2FnZShNZW1vcnlPYmplY3RJbmZvKiBtZW1vcnlPYmplY3RJbmYKICAgICBNZW1vcnlDbGFz
c0luZm8gaW5mbyhtZW1vcnlPYmplY3RJbmZvLCB0aGlzLCBXZWJDb3JlTWVtb3J5VHlwZXM6OkNT
Uyk7CiAgICAgQ1NTUnVsZTo6cmVwb3J0QmFzZUNsYXNzTWVtb3J5VXNhZ2UobWVtb3J5T2JqZWN0
SW5mbyk7CiAgICAgaW5mby5hZGRNZW1iZXIobV9tZWRpYUNTU09NV3JhcHBlcik7Ci0gICAgaW5m
by5hZGRJbnN0cnVtZW50ZWRWZWN0b3IobV9jaGlsZFJ1bGVDU1NPTVdyYXBwZXJzKTsKKyAgICBp
bmZvLmFkZE1lbWJlcihtX2NoaWxkUnVsZUNTU09NV3JhcHBlcnMpOwogICAgIGluZm8uYWRkTWVt
YmVyKG1fcnVsZUxpc3RDU1NPTVdyYXBwZXIpOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9jc3MvQ1NTUnVsZUxpc3QuY3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1J1bGVMaXN0
LmNwcAppbmRleCA0NzJiM2RkNjBkMDA5NGY3NTA1Y2FiYTE2MzlhNjhiY2JmYjQ4Y2RlLi5kYWRj
OTNiMTU0N2I0MTQ5ZGVjMGQ5NmVhNGUxNTY1M2IwNzY3MWVjIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9jc3MvQ1NTUnVsZUxpc3QuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NS
dWxlTGlzdC5jcHAKQEAgLTI0LDYgKzI0LDcgQEAKIAogI2luY2x1ZGUgIkNTU1J1bGUuaCIKICNp
bmNsdWRlICJDU1NTdHlsZVNoZWV0LmgiCisjaW5jbHVkZSA8d3RmL01lbW9yeUluc3RydW1lbnRh
dGlvblZlY3Rvci5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKQEAgLTU0LDcgKzU1LDcgQEAg
dm9pZCBTdGF0aWNDU1NSdWxlTGlzdDo6ZGVyZWYoKQogdm9pZCBTdGF0aWNDU1NSdWxlTGlzdDo6
cmVwb3J0TWVtb3J5VXNhZ2UoTWVtb3J5T2JqZWN0SW5mbyogbWVtb3J5T2JqZWN0SW5mbykgY29u
c3QKIHsKICAgICBNZW1vcnlDbGFzc0luZm8gaW5mbyhtZW1vcnlPYmplY3RJbmZvLCB0aGlzLCBX
ZWJDb3JlTWVtb3J5VHlwZXM6OkNTUyk7Ci0gICAgaW5mby5hZGRJbnN0cnVtZW50ZWRWZWN0b3Io
bV9ydWxlcyk7CisgICAgaW5mby5hZGRNZW1iZXIobV9ydWxlcyk7CiB9CiAKIH0gLy8gbmFtZXNw
YWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NTdHlsZVNoZWV0
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NTdHlsZVNoZWV0LmNwcAppbmRleCAwZTEwMjAy
YzdmZWJiZjJiZTZkODlhZmNjZDU3ZGIyZDAzYTYyY2UyLi5kY2ZjMjIwMDZmZjI2NTNkMTEwYzI5
YzMzNWFlYjZkMjcxNzE0NWVkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTU3R5
bGVTaGVldC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1N0eWxlU2hlZXQuY3BwCkBA
IC0zOCw2ICszOCw3IEBACiAjaW5jbHVkZSAiU3R5bGVSdWxlLmgiCiAjaW5jbHVkZSAiU3R5bGVT
aGVldENvbnRlbnRzLmgiCiAjaW5jbHVkZSAiV2ViQ29yZU1lbW9yeUluc3RydW1lbnRhdGlvbi5o
IgorI2luY2x1ZGUgPHd0Zi9NZW1vcnlJbnN0cnVtZW50YXRpb25WZWN0b3IuaD4KICNpbmNsdWRl
IDx3dGYvdGV4dC9TdHJpbmdCdWlsZGVyLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKQEAgLTE4
Nyw3ICsxODgsNyBAQCB2b2lkIENTU1N0eWxlU2hlZXQ6OnJlcG9ydE1lbW9yeVVzYWdlKE1lbW9y
eU9iamVjdEluZm8qIG1lbW9yeU9iamVjdEluZm8pIGNvbnN0CiAgICAgaW5mby5hZGRNZW1iZXIo
bV9vd25lck5vZGUpOwogICAgIGluZm8uYWRkTWVtYmVyKG1fb3duZXJSdWxlKTsKICAgICBpbmZv
LmFkZE1lbWJlcihtX21lZGlhQ1NTT01XcmFwcGVyKTsKLSAgICBpbmZvLmFkZEluc3RydW1lbnRl
ZFZlY3RvcihtX2NoaWxkUnVsZUNTU09NV3JhcHBlcnMpOworICAgIGluZm8uYWRkTWVtYmVyKG1f
Y2hpbGRSdWxlQ1NTT01XcmFwcGVycyk7CiB9CiAKIHZvaWQgQ1NTU3R5bGVTaGVldDo6c2V0RGlz
YWJsZWQoYm9vbCBkaXNhYmxlZCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NW
YWx1ZUxpc3QuY3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1ZhbHVlTGlzdC5jcHAKaW5kZXgg
MjFlNGZhNzAzNWUwNjA3MDIwNjVmMzlmOWFhYzU4ZDBiNmZhNjZjMy4uOWVjMmQ1MDg1ZmI5ZDZk
MzhkZDRjZWIyMTgzYjkxNDhiYjk0MmU5NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3Nz
L0NTU1ZhbHVlTGlzdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1ZhbHVlTGlzdC5j
cHAKQEAgLTIzLDYgKzIzLDcgQEAKIAogI2luY2x1ZGUgIkNTU1BhcnNlclZhbHVlcy5oIgogI2lu
Y2x1ZGUgIldlYkNvcmVNZW1vcnlJbnN0cnVtZW50YXRpb24uaCIKKyNpbmNsdWRlIDx3dGYvTWVt
b3J5SW5zdHJ1bWVudGF0aW9uVmVjdG9yLmg+CiAjaW5jbHVkZSA8d3RmL1Bhc3NPd25QdHIuaD4K
ICNpbmNsdWRlIDx3dGYvdGV4dC9TdHJpbmdCdWlsZGVyLmg+CiAKQEAgLTE4OSw3ICsxOTAsNyBA
QCBQYXNzUmVmUHRyPENTU1ZhbHVlTGlzdD4gQ1NTVmFsdWVMaXN0OjpjbG9uZUZvckNTU09NKCkg
Y29uc3QKIHZvaWQgQ1NTVmFsdWVMaXN0OjpyZXBvcnREZXNjZW5kYW50TWVtb3J5VXNhZ2UoTWVt
b3J5T2JqZWN0SW5mbyogbWVtb3J5T2JqZWN0SW5mbykgY29uc3QKIHsKICAgICBNZW1vcnlDbGFz
c0luZm8gaW5mbyhtZW1vcnlPYmplY3RJbmZvLCB0aGlzLCBXZWJDb3JlTWVtb3J5VHlwZXM6OkNT
Uyk7Ci0gICAgaW5mby5hZGRJbnN0cnVtZW50ZWRWZWN0b3IobV92YWx1ZXMpOworICAgIGluZm8u
YWRkTWVtYmVyKG1fdmFsdWVzKTsKIH0KIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL01lZGlhTGlzdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9j
c3MvTWVkaWFMaXN0LmNwcAppbmRleCA2MjkwM2Q2YjE2ZTQ0MDI5YzEyODczYzk3YTk3YTNmMTA4
ZjU1ZDdkLi5iZGJjNTcxNzQ4MzRiMjBiODBjZDMxZmQyZWJlOWUyNWFjMzRjNjA3IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvTWVkaWFMaXN0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9jc3MvTWVkaWFMaXN0LmNwcApAQCAtMjcsNiArMjcsNyBAQAogI2luY2x1ZGUgIk1lZGlhUXVl
cnkuaCIKICNpbmNsdWRlICJNZWRpYVF1ZXJ5RXhwLmgiCiAjaW5jbHVkZSAiV2ViQ29yZU1lbW9y
eUluc3RydW1lbnRhdGlvbi5oIgorI2luY2x1ZGUgPHd0Zi9NZW1vcnlJbnN0cnVtZW50YXRpb25W
ZWN0b3IuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9TdHJpbmdCdWlsZGVyLmg+CiAKIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKQEAgLTIxNSw3ICsyMTYsNyBAQCBTdHJpbmcgTWVkaWFRdWVyeVNldDo6bWVk
aWFUZXh0KCkgY29uc3QKIHZvaWQgTWVkaWFRdWVyeVNldDo6cmVwb3J0TWVtb3J5VXNhZ2UoTWVt
b3J5T2JqZWN0SW5mbyogbWVtb3J5T2JqZWN0SW5mbykgY29uc3QKIHsKICAgICBNZW1vcnlDbGFz
c0luZm8gaW5mbyhtZW1vcnlPYmplY3RJbmZvLCB0aGlzLCBXZWJDb3JlTWVtb3J5VHlwZXM6OkNT
Uyk7Ci0gICAgaW5mby5hZGRJbnN0cnVtZW50ZWRWZWN0b3IobV9xdWVyaWVzKTsKKyAgICBpbmZv
LmFkZE1lbWJlcihtX3F1ZXJpZXMpOwogfQogICAgIAogTWVkaWFMaXN0OjpNZWRpYUxpc3QoTWVk
aWFRdWVyeVNldCogbWVkaWFRdWVyaWVzLCBDU1NTdHlsZVNoZWV0KiBwYXJlbnRTaGVldCkKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9NZWRpYVF1ZXJ5LmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2Nzcy9NZWRpYVF1ZXJ5LmNwcAppbmRleCBhM2YyNWQ3MTJkNWIxMDM0MDI3MWJjMjAwMjVi
OTY2NzMxNDYyZDY0Li5mYzQ1NTFmZmIxODM3OTllMzQwMjhhMjViMmJmZTczODQzNTMyYjJiIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvTWVkaWFRdWVyeS5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvY3NzL01lZGlhUXVlcnkuY3BwCkBAIC0zMSw2ICszMSw3IEBACiAKICNpbmNsdWRl
ICJNZWRpYVF1ZXJ5RXhwLmgiCiAjaW5jbHVkZSAiV2ViQ29yZU1lbW9yeUluc3RydW1lbnRhdGlv
bi5oIgorI2luY2x1ZGUgPHd0Zi9NZW1vcnlJbnN0cnVtZW50YXRpb25WZWN0b3IuaD4KICNpbmNs
dWRlIDx3dGYvTm9uQ29weWluZ1NvcnQuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9TdHJpbmdCdWls
ZGVyLmg+CiAKQEAgLTEzOCw3ICsxMzksNyBAQCB2b2lkIE1lZGlhUXVlcnk6OnJlcG9ydE1lbW9y
eVVzYWdlKE1lbW9yeU9iamVjdEluZm8qIG1lbW9yeU9iamVjdEluZm8pIGNvbnN0CiB7CiAgICAg
TWVtb3J5Q2xhc3NJbmZvIGluZm8obWVtb3J5T2JqZWN0SW5mbywgdGhpcywgV2ViQ29yZU1lbW9y
eVR5cGVzOjpDU1MpOwogICAgIGluZm8uYWRkTWVtYmVyKG1fbWVkaWFUeXBlKTsKLSAgICBpbmZv
LmFkZEluc3RydW1lbnRlZFZlY3RvclB0cihtX2V4cHJlc3Npb25zKTsKKyAgICBpbmZvLmFkZE1l
bWJlcihtX2V4cHJlc3Npb25zKTsKICAgICBpbmZvLmFkZE1lbWJlcihtX3NlcmlhbGl6YXRpb25D
YWNoZSk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9TdHlsZVJlc29sdmVy
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9TdHlsZVJlc29sdmVyLmNwcAppbmRleCA1MTdiZGI2
YjJlMGY2YTA3MmI2YzkwMTlkY2FiMTg4ZDFkY2RlZTk1Li5mZDM0OWY2MGZhYTY2NTA2YTA4NGI5
NDExNTliNTMyMzI2ZDg0OGM5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVS
ZXNvbHZlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL1N0eWxlUmVzb2x2ZXIuY3BwCkBA
IC0xMjUsNiArMTI1LDcgQEAKICNpbmNsdWRlICJXZWJLaXRDU1NUcmFuc2Zvcm1WYWx1ZS5oIgog
I2luY2x1ZGUgIldlYktpdEZvbnRGYW1pbHlOYW1lcy5oIgogI2luY2x1ZGUgIlhNTE5hbWVzLmgi
CisjaW5jbHVkZSA8d3RmL01lbW9yeUluc3RydW1lbnRhdGlvblZlY3Rvci5oPgogI2luY2x1ZGUg
PHd0Zi9TdGRMaWJFeHRyYXMuaD4KICNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+CiAKQEAgLTI1NjYs
NyArMjU2Nyw3IEBAIHN0YXRpYyB2b2lkIHJlcG9ydEF0b21SdWxlTWFwKE1lbW9yeUNsYXNzSW5m
byogaW5mbywgY29uc3QgUnVsZVNldDo6QXRvbVJ1bGVNYXAmCiB7CiAgICAgaW5mby0+YWRkSGFz
aE1hcChhdG9taWNSdWxlTWFwKTsKICAgICBmb3IgKFJ1bGVTZXQ6OkF0b21SdWxlTWFwOjpjb25z
dF9pdGVyYXRvciBpdCA9IGF0b21pY1J1bGVNYXAuYmVnaW4oKTsgaXQgIT0gYXRvbWljUnVsZU1h
cC5lbmQoKTsgKytpdCkKLSAgICAgICAgaW5mby0+YWRkSW5zdHJ1bWVudGVkVmVjdG9yKCppdC0+
c2Vjb25kKTsKKyAgICAgICAgaW5mby0+YWRkTWVtYmVyKCppdC0+c2Vjb25kKTsKIH0KIAogdm9p
ZCBSdWxlU2V0OjpyZXBvcnRNZW1vcnlVc2FnZShNZW1vcnlPYmplY3RJbmZvKiBtZW1vcnlPYmpl
Y3RJbmZvKSBjb25zdApAQCAtMjU3NiwxMSArMjU3NywxMSBAQCB2b2lkIFJ1bGVTZXQ6OnJlcG9y
dE1lbW9yeVVzYWdlKE1lbW9yeU9iamVjdEluZm8qIG1lbW9yeU9iamVjdEluZm8pIGNvbnN0CiAg
ICAgcmVwb3J0QXRvbVJ1bGVNYXAoJmluZm8sIG1fY2xhc3NSdWxlcyk7CiAgICAgcmVwb3J0QXRv
bVJ1bGVNYXAoJmluZm8sIG1fdGFnUnVsZXMpOwogICAgIHJlcG9ydEF0b21SdWxlTWFwKCZpbmZv
LCBtX3NoYWRvd1BzZXVkb0VsZW1lbnRSdWxlcyk7Ci0gICAgaW5mby5hZGRJbnN0cnVtZW50ZWRW
ZWN0b3IobV9saW5rUHNldWRvQ2xhc3NSdWxlcyk7Ci0gICAgaW5mby5hZGRJbnN0cnVtZW50ZWRW
ZWN0b3IobV9mb2N1c1BzZXVkb0NsYXNzUnVsZXMpOwotICAgIGluZm8uYWRkSW5zdHJ1bWVudGVk
VmVjdG9yKG1fdW5pdmVyc2FsUnVsZXMpOworICAgIGluZm8uYWRkTWVtYmVyKG1fbGlua1BzZXVk
b0NsYXNzUnVsZXMpOworICAgIGluZm8uYWRkTWVtYmVyKG1fZm9jdXNQc2V1ZG9DbGFzc1J1bGVz
KTsKKyAgICBpbmZvLmFkZE1lbWJlcihtX3VuaXZlcnNhbFJ1bGVzKTsKICAgICBpbmZvLmFkZFZl
Y3RvcihtX3BhZ2VSdWxlcyk7Ci0gICAgaW5mby5hZGRJbnN0cnVtZW50ZWRWZWN0b3IobV9yZWdp
b25TZWxlY3RvcnNBbmRSdWxlU2V0cyk7CisgICAgaW5mby5hZGRNZW1iZXIobV9yZWdpb25TZWxl
Y3RvcnNBbmRSdWxlU2V0cyk7CiB9CiAKIHZvaWQgUnVsZVNldDo6UnVsZVNldFNlbGVjdG9yUGFp
cjo6cmVwb3J0TWVtb3J5VXNhZ2UoTWVtb3J5T2JqZWN0SW5mbyogbWVtb3J5T2JqZWN0SW5mbykg
Y29uc3QKQEAgLTU3NjUsNyArNTc2Niw3IEBAIHZvaWQgU3R5bGVSZXNvbHZlcjo6TWF0Y2hlZFBy
b3BlcnRpZXM6OnJlcG9ydE1lbW9yeVVzYWdlKE1lbW9yeU9iamVjdEluZm8qIG1lbW9yCiB2b2lk
IFN0eWxlUmVzb2x2ZXI6Ok1hdGNoZWRQcm9wZXJ0aWVzQ2FjaGVJdGVtOjpyZXBvcnRNZW1vcnlV
c2FnZShNZW1vcnlPYmplY3RJbmZvKiBtZW1vcnlPYmplY3RJbmZvKSBjb25zdAogewogICAgIE1l
bW9yeUNsYXNzSW5mbyBpbmZvKG1lbW9yeU9iamVjdEluZm8sIHRoaXMsIFdlYkNvcmVNZW1vcnlU
eXBlczo6Q1NTKTsKLSAgICBpbmZvLmFkZEluc3RydW1lbnRlZFZlY3RvcihtYXRjaGVkUHJvcGVy
dGllcyk7CisgICAgaW5mby5hZGRNZW1iZXIobWF0Y2hlZFByb3BlcnRpZXMpOwogfQogCiB2b2lk
IE1lZGlhUXVlcnlSZXN1bHQ6OnJlcG9ydE1lbW9yeVVzYWdlKE1lbW9yeU9iamVjdEluZm8qIG1l
bW9yeU9iamVjdEluZm8pIGNvbnN0CkBAIC01NzkxLDcgKzU3OTIsNyBAQCB2b2lkIFN0eWxlUmVz
b2x2ZXI6OnJlcG9ydE1lbW9yeVVzYWdlKE1lbW9yeU9iamVjdEluZm8qIG1lbW9yeU9iamVjdElu
Zm8pIGNvbnN0CiAgICAgaW5mby5hZGRIYXNoTWFwKG1fcGVuZGluZ0ltYWdlUHJvcGVydGllcyk7
CiAgICAgaW5mby5hZGRJbnN0cnVtZW50ZWRNYXBWYWx1ZXMobV9wZW5kaW5nSW1hZ2VQcm9wZXJ0
aWVzKTsKICAgICBpbmZvLmFkZE1lbWJlcihtX2xpbmVIZWlnaHRWYWx1ZSk7Ci0gICAgaW5mby5h
ZGRJbnN0cnVtZW50ZWRWZWN0b3IobV92aWV3cG9ydERlcGVuZGVudE1lZGlhUXVlcnlSZXN1bHRz
KTsKKyAgICBpbmZvLmFkZE1lbWJlcihtX3ZpZXdwb3J0RGVwZW5kZW50TWVkaWFRdWVyeVJlc3Vs
dHMpOwogICAgIGluZm8uYWRkSGFzaE1hcChtX3N0eWxlUnVsZVRvQ1NTT01XcmFwcGVyTWFwKTsK
ICAgICBpbmZvLmFkZEluc3RydW1lbnRlZE1hcEVudHJpZXMobV9zdHlsZVJ1bGVUb0NTU09NV3Jh
cHBlck1hcCk7CiAgICAgaW5mby5hZGRJbnN0cnVtZW50ZWRIYXNoU2V0KG1fc3R5bGVTaGVldENT
U09NV3JhcHBlclNldCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVSdWxl
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9TdHlsZVJ1bGUuY3BwCmluZGV4IDU5ZWQ5ZTU4ZjBh
N2Y3YzkwY2ZmMzJiM2ZiNWI0ODhjZmJjOGExYjQuLjE0NzM0ZDA4ODkwN2RmMTUxOTgxZmFjMjQ5
ZjYyNTQ2YjM0YzQ3YzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9TdHlsZVJ1bGUu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9TdHlsZVJ1bGUuY3BwCkBAIC0zMyw2ICszMyw3
IEBACiAjaW5jbHVkZSAiV2ViS2l0Q1NTS2V5ZnJhbWVSdWxlLmgiCiAjaW5jbHVkZSAiV2ViS2l0
Q1NTS2V5ZnJhbWVzUnVsZS5oIgogI2luY2x1ZGUgIldlYktpdENTU1JlZ2lvblJ1bGUuaCIKKyNp
bmNsdWRlIDx3dGYvTWVtb3J5SW5zdHJ1bWVudGF0aW9uVmVjdG9yLmg+CiAKIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKIApAQCAtMzM3LDcgKzMzOCw3IEBAIHZvaWQgU3R5bGVSdWxlQmxvY2s6OndyYXBw
ZXJSZW1vdmVSdWxlKHVuc2lnbmVkIGluZGV4KQogdm9pZCBTdHlsZVJ1bGVCbG9jazo6cmVwb3J0
RGVzY2VuZGFudE1lbW9yeVVzYWdlKE1lbW9yeU9iamVjdEluZm8qIG1lbW9yeU9iamVjdEluZm8p
IGNvbnN0CiB7CiAgICAgTWVtb3J5Q2xhc3NJbmZvIGluZm8obWVtb3J5T2JqZWN0SW5mbywgdGhp
cywgV2ViQ29yZU1lbW9yeVR5cGVzOjpDU1MpOwotICAgIGluZm8uYWRkSW5zdHJ1bWVudGVkVmVj
dG9yKG1fY2hpbGRSdWxlcyk7CisgICAgaW5mby5hZGRNZW1iZXIobV9jaGlsZFJ1bGVzKTsKIH0K
IAogU3R5bGVSdWxlTWVkaWE6OlN0eWxlUnVsZU1lZGlhKFBhc3NSZWZQdHI8TWVkaWFRdWVyeVNl
dD4gbWVkaWEsIFZlY3RvcjxSZWZQdHI8U3R5bGVSdWxlQmFzZT4gPiYgYWRvcHRSdWxlcykKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9TdHlsZVNoZWV0Q29udGVudHMuY3BwIGIvU291
cmNlL1dlYkNvcmUvY3NzL1N0eWxlU2hlZXRDb250ZW50cy5jcHAKaW5kZXggMDQ4MjczYmVjMTc4
M2RiMjUyNzdiMjJlMmVmNDNkYzY4OTYxN2FkZC4uNWRlOGE2MWE1MTQ3ODQ0YjFkOTNiZDU4NjIy
YmVlNTI5ZjE1NjkyMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL1N0eWxlU2hlZXRD
b250ZW50cy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL1N0eWxlU2hlZXRDb250ZW50cy5j
cHAKQEAgLTMzLDYgKzMzLDcgQEAKICNpbmNsdWRlICJTdHlsZVJ1bGVJbXBvcnQuaCIKICNpbmNs
dWRlICJXZWJDb3JlTWVtb3J5SW5zdHJ1bWVudGF0aW9uLmgiCiAjaW5jbHVkZSA8d3RmL0RlcXVl
Lmg+CisjaW5jbHVkZSA8d3RmL01lbW9yeUluc3RydW1lbnRhdGlvblZlY3Rvci5oPgogCiBuYW1l
c3BhY2UgV2ViQ29yZSB7CiAKQEAgLTQ5MCw3ICs0OTEsNyBAQCB2b2lkIFN0eWxlU2hlZXRDb250
ZW50czo6cmVwb3J0TWVtb3J5VXNhZ2UoTWVtb3J5T2JqZWN0SW5mbyogbWVtb3J5T2JqZWN0SW5m
bykgYwogICAgIGluZm8uYWRkTWVtYmVyKG1fb3JpZ2luYWxVUkwpOwogICAgIGluZm8uYWRkTWVt
YmVyKG1fZW5jb2RpbmdGcm9tQ2hhcnNldFJ1bGUpOwogICAgIGluZm8uYWRkVmVjdG9yKG1faW1w
b3J0UnVsZXMpOwotICAgIGluZm8uYWRkSW5zdHJ1bWVudGVkVmVjdG9yKG1fY2hpbGRSdWxlcyk7
CisgICAgaW5mby5hZGRNZW1iZXIobV9jaGlsZFJ1bGVzKTsKICAgICBpbmZvLmFkZEhhc2hNYXAo
bV9uYW1lc3BhY2VzKTsKICAgICBpbmZvLmFkZFZlY3RvcihtX2NsaWVudHMpOwogfQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL1dlYktpdENTU0tleWZyYW1lc1J1bGUuY3BwIGIvU291
cmNlL1dlYkNvcmUvY3NzL1dlYktpdENTU0tleWZyYW1lc1J1bGUuY3BwCmluZGV4IGEyOTkxYTgx
OGY1MGZmZjRkNWI0ZTA5YmQ0MzI5YjhhMzFiODUwMWUuLjA4ZmJiMGE1NTg1ZDdiNmY4NmJiOTUy
OGU3OTE3ZDg2OTQ3NTRlNjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9XZWJLaXRD
U1NLZXlmcmFtZXNSdWxlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvV2ViS2l0Q1NTS2V5
ZnJhbWVzUnVsZS5jcHAKQEAgLTMzLDYgKzMzLDcgQEAKICNpbmNsdWRlICJTdHlsZVNoZWV0Lmgi
CiAjaW5jbHVkZSAiV2ViQ29yZU1lbW9yeUluc3RydW1lbnRhdGlvbi5oIgogI2luY2x1ZGUgIldl
YktpdENTU0tleWZyYW1lUnVsZS5oIgorI2luY2x1ZGUgPHd0Zi9NZW1vcnlJbnN0cnVtZW50YXRp
b25WZWN0b3IuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9TdHJpbmdCdWlsZGVyLmg+CiAKIG5hbWVz
cGFjZSBXZWJDb3JlIHsKQEAgLTkwLDcgKzkxLDcgQEAgaW50IFN0eWxlUnVsZUtleWZyYW1lczo6
ZmluZEtleWZyYW1lSW5kZXgoY29uc3QgU3RyaW5nJiBrZXkpIGNvbnN0CiB2b2lkIFN0eWxlUnVs
ZUtleWZyYW1lczo6cmVwb3J0RGVzY2VuZGFudE1lbW9yeVVzYWdlKE1lbW9yeU9iamVjdEluZm8q
IG1lbW9yeU9iamVjdEluZm8pIGNvbnN0CiB7CiAgICAgTWVtb3J5Q2xhc3NJbmZvIGluZm8obWVt
b3J5T2JqZWN0SW5mbywgdGhpcywgV2ViQ29yZU1lbW9yeVR5cGVzOjpDU1MpOwotICAgIGluZm8u
YWRkSW5zdHJ1bWVudGVkVmVjdG9yKG1fa2V5ZnJhbWVzKTsKKyAgICBpbmZvLmFkZE1lbWJlciht
X2tleWZyYW1lcyk7CiAgICAgaW5mby5hZGRNZW1iZXIobV9uYW1lKTsKIH0KIApAQCAtMjExLDcg
KzIxMiw3IEBAIHZvaWQgV2ViS2l0Q1NTS2V5ZnJhbWVzUnVsZTo6cmVwb3J0RGVzY2VuZGFudE1l
bW9yeVVzYWdlKE1lbW9yeU9iamVjdEluZm8qIG1lbW9yCiAgICAgTWVtb3J5Q2xhc3NJbmZvIGlu
Zm8obWVtb3J5T2JqZWN0SW5mbywgdGhpcywgV2ViQ29yZU1lbW9yeVR5cGVzOjpDU1MpOwogICAg
IENTU1J1bGU6OnJlcG9ydEJhc2VDbGFzc01lbW9yeVVzYWdlKG1lbW9yeU9iamVjdEluZm8pOwog
ICAgIGluZm8uYWRkTWVtYmVyKG1fa2V5ZnJhbWVzUnVsZSk7Ci0gICAgaW5mby5hZGRJbnN0cnVt
ZW50ZWRWZWN0b3IobV9jaGlsZFJ1bGVDU1NPTVdyYXBwZXJzKTsKKyAgICBpbmZvLmFkZE1lbWJl
cihtX2NoaWxkUnVsZUNTU09NV3JhcHBlcnMpOwogICAgIGluZm8uYWRkTWVtYmVyKG1fcnVsZUxp
c3RDU1NPTVdyYXBwZXIpOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvV2Vi
S2l0Q1NTUmVnaW9uUnVsZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvV2ViS2l0Q1NTUmVnaW9u
UnVsZS5jcHAKaW5kZXggNWMyYzcyMWNkNjg1NGFkMzkyMWFjNTYzOTE4NWY2YTk2ODkxM2MzMS4u
Y2UxMjA3Y2FiZGY5YmY4NTYwNTllODZkNmIyMGYxZmIyMjg0M2RlMyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvY3NzL1dlYktpdENTU1JlZ2lvblJ1bGUuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2Nzcy9XZWJLaXRDU1NSZWdpb25SdWxlLmNwcApAQCAtMzQsNiArMzQsNyBAQAogI2luY2x1
ZGUgIkNTU1BhcnNlci5oIgogI2luY2x1ZGUgIkNTU1J1bGVMaXN0LmgiCiAjaW5jbHVkZSAiU3R5
bGVSdWxlLmgiCisjaW5jbHVkZSA8d3RmL01lbW9yeUluc3RydW1lbnRhdGlvblZlY3Rvci5oPgog
I2luY2x1ZGUgPHd0Zi90ZXh0L1N0cmluZ0J1aWxkZXIuaD4KIAogI2lmIEVOQUJMRShDU1NfUkVH
SU9OUykKQEAgLTExMyw3ICsxMTQsNyBAQCB2b2lkIFdlYktpdENTU1JlZ2lvblJ1bGU6OnJlcG9y
dERlc2NlbmRhbnRNZW1vcnlVc2FnZShNZW1vcnlPYmplY3RJbmZvKiBtZW1vcnlPYgogICAgIE1l
bW9yeUNsYXNzSW5mbyBpbmZvKG1lbW9yeU9iamVjdEluZm8sIHRoaXMsIFdlYkNvcmVNZW1vcnlU
eXBlczo6Q1NTKTsKICAgICBDU1NSdWxlOjpyZXBvcnRCYXNlQ2xhc3NNZW1vcnlVc2FnZShtZW1v
cnlPYmplY3RJbmZvKTsKICAgICBpbmZvLmFkZE1lbWJlcihtX3JlZ2lvblJ1bGUpOwotICAgIGlu
Zm8uYWRkSW5zdHJ1bWVudGVkVmVjdG9yKG1fY2hpbGRSdWxlQ1NTT01XcmFwcGVycyk7CisgICAg
aW5mby5hZGRNZW1iZXIobV9jaGlsZFJ1bGVDU1NPTVdyYXBwZXJzKTsKICAgICBpbmZvLmFkZE1l
bWJlcihtX3J1bGVMaXN0Q1NTT01XcmFwcGVyKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvZG9tL0RvY3VtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAK
aW5kZXggYWI0OGNhMzgyYmIyNTliNzY5ZmU3YTM1ZmQyYzQzNjU0MTNmN2QxZS4uMjk4MDYwMjM4
ZDUxOWI5ZTI4MTc2Nzg5MmU2Yjc1OGIyMWEyOTI5YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvZG9tL0RvY3VtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3Bw
CkBAIC0xNzIsNiArMTcyLDcgQEAKICNpbmNsdWRlIDx3dGYvQ3VycmVudFRpbWUuaD4KICNpbmNs
dWRlIDx3dGYvSGFzaEZ1bmN0aW9ucy5oPgogI2luY2x1ZGUgPHd0Zi9NYWluVGhyZWFkLmg+Cisj
aW5jbHVkZSA8d3RmL01lbW9yeUluc3RydW1lbnRhdGlvblZlY3Rvci5oPgogI2luY2x1ZGUgPHd0
Zi9QYXNzUmVmUHRyLmg+CiAjaW5jbHVkZSA8d3RmL1N0ZExpYkV4dHJhcy5oPgogI2luY2x1ZGUg
PHd0Zi90ZXh0L1N0cmluZ0J1ZmZlci5oPgpAQCAtNjI2NCwxMCArNjI2NSw4IEBAIHZvaWQgRG9j
dW1lbnQ6OnJlcG9ydE1lbW9yeVVzYWdlKE1lbW9yeU9iamVjdEluZm8qIG1lbW9yeU9iamVjdElu
Zm8pIGNvbnN0CiAgICAgaW5mby5hZGRNZW1iZXIobV9jYWNoZWRSZXNvdXJjZUxvYWRlcik7CiAg
ICAgaW5mby5hZGRNZW1iZXIobV9lbGVtU2hlZXQpOwogICAgIGluZm8uYWRkTWVtYmVyKG1fcGFn
ZVVzZXJTaGVldCk7Ci0gICAgaWYgKG1fcGFnZUdyb3VwVXNlclNoZWV0cykKLSAgICAgICAgaW5m
by5hZGRJbnN0cnVtZW50ZWRWZWN0b3JQdHIobV9wYWdlR3JvdXBVc2VyU2hlZXRzKTsKLSAgICBp
ZiAobV91c2VyU2hlZXRzKQotICAgICAgICBpbmZvLmFkZEluc3RydW1lbnRlZFZlY3RvclB0ciht
X3VzZXJTaGVldHMpOworICAgIGluZm8uYWRkTWVtYmVyKG1fcGFnZUdyb3VwVXNlclNoZWV0cyk7
CisgICAgaW5mby5hZGRNZW1iZXIobV91c2VyU2hlZXRzKTsKICAgICBpbmZvLmFkZEhhc2hTZXQo
bV9ub2RlSXRlcmF0b3JzKTsKICAgICBpbmZvLmFkZEhhc2hTZXQobV9yYW5nZXMpOwogICAgIGlu
Zm8uYWRkTGlzdEhhc2hTZXQobV9zdHlsZVNoZWV0Q2FuZGlkYXRlTm9kZXMpOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0RvY3VtZW50TG9hZGVyLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2xvYWRlci9Eb2N1bWVudExvYWRlci5jcHAKaW5kZXggODM2ODA0MWNmODBhM2Q2NDE1MWE5
YjBiMGNhNTYyMzZlNGM0NDg5Mi4uNmE1ZjdjMTNjNzczMTRkZWI3NTAxYjhmMDljYWRlZDg3YTY0
OTBmNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0RvY3VtZW50TG9hZGVyLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRG9jdW1lbnRMb2FkZXIuY3BwCkBAIC01Myw2
ICs1Myw3IEBACiAjaW5jbHVkZSAiVGV4dFJlc291cmNlRGVjb2Rlci5oIgogI2luY2x1ZGUgIldl
YkNvcmVNZW1vcnlJbnN0cnVtZW50YXRpb24uaCIKICNpbmNsdWRlIDx3dGYvQXNzZXJ0aW9ucy5o
PgorI2luY2x1ZGUgPHd0Zi9NZW1vcnlJbnN0cnVtZW50YXRpb25WZWN0b3IuaD4KICNpbmNsdWRl
IDx3dGYvdGV4dC9DU3RyaW5nLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CiAj
aW5jbHVkZSA8d3RmL3VuaWNvZGUvVW5pY29kZS5oPgpAQCAtMzc0LDcgKzM3NSw3IEBAIHZvaWQg
RG9jdW1lbnRMb2FkZXI6OnJlcG9ydE1lbW9yeVVzYWdlKE1lbW9yeU9iamVjdEluZm8qIG1lbW9y
eU9iamVjdEluZm8pIGNvbnN0CiAgICAgaW5mby5hZGRNZW1iZXIobV9yZXF1ZXN0KTsKICAgICBp
bmZvLmFkZE1lbWJlcihtX3Jlc3BvbnNlKTsKICAgICBpbmZvLmFkZE1lbWJlcihtX2xhc3RDaGVj
a2VkUmVxdWVzdCk7Ci0gICAgaW5mby5hZGRJbnN0cnVtZW50ZWRWZWN0b3IobV9yZXNwb25zZXMp
OworICAgIGluZm8uYWRkTWVtYmVyKG1fcmVzcG9uc2VzKTsKICAgICBpbmZvLmFkZEhhc2hNYXAo
bV9wZW5kaW5nU3Vic3RpdHV0ZVJlc291cmNlcyk7CiAgICAgaW5mby5hZGRJbnN0cnVtZW50ZWRI
YXNoU2V0KG1fcmVzb3VyY2VzQ2xpZW50S25vd3NBYm91dCk7CiAgICAgaW5mby5hZGRWZWN0b3Io
bV9yZXNvdXJjZXNMb2FkZWRGcm9tTWVtb3J5Q2FjaGVGb3JDbGllbnROb3RpZmljYXRpb24pOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9SZXNvdXJjZVJlcXVl
c3RCYXNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvUmVzb3VyY2VSZXF1
ZXN0QmFzZS5jcHAKaW5kZXggMDBmNTgzOTA1NTk0NzFlYjdlNGY2M2Q1YWRjYWFmNmVhYWVkNWI2
Yy4uMzAzZGVhYTljYmRhNzZhZmJmYzZjNTYyMmMwNTQ3NDE0OTkwZmM0NSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9SZXNvdXJjZVJlcXVlc3RCYXNlLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL1Jlc291cmNlUmVxdWVzdEJhc2Uu
Y3BwCkBAIC0yOCw2ICsyOCw3IEBACiAKICNpbmNsdWRlICJQbGF0Zm9ybU1lbW9yeUluc3RydW1l
bnRhdGlvbi5oIgogI2luY2x1ZGUgIlJlc291cmNlUmVxdWVzdC5oIgorI2luY2x1ZGUgPHd0Zi9N
ZW1vcnlJbnN0cnVtZW50YXRpb25WZWN0b3IuaD4KIAogdXNpbmcgbmFtZXNwYWNlIHN0ZDsKIApA
QCAtNDUyLDcgKzQ1Myw3IEBAIHZvaWQgUmVzb3VyY2VSZXF1ZXN0QmFzZTo6cmVwb3J0TWVtb3J5
VXNhZ2UoTWVtb3J5T2JqZWN0SW5mbyogbWVtb3J5T2JqZWN0SW5mbykKICAgICBpbmZvLmFkZE1l
bWJlcihtX2h0dHBNZXRob2QpOwogICAgIGluZm8uYWRkSGFzaE1hcChtX2h0dHBIZWFkZXJGaWVs
ZHMpOwogICAgIGluZm8uYWRkSW5zdHJ1bWVudGVkTWFwRW50cmllcyhtX2h0dHBIZWFkZXJGaWVs
ZHMpOwotICAgIGluZm8uYWRkSW5zdHJ1bWVudGVkVmVjdG9yKG1fcmVzcG9uc2VDb250ZW50RGlz
cG9zaXRpb25FbmNvZGluZ0ZhbGxiYWNrQXJyYXkpOworICAgIGluZm8uYWRkTWVtYmVyKG1fcmVz
cG9uc2VDb250ZW50RGlzcG9zaXRpb25FbmNvZGluZ0ZhbGxiYWNrQXJyYXkpOwogICAgIGluZm8u
YWRkTWVtYmVyKG1faHR0cEJvZHkpOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2No
cm9taXVtL3Rlc3RzL01lbW9yeUluc3RydW1lbnRhdGlvblRlc3QuY3BwIGIvU291cmNlL1dlYktp
dC9jaHJvbWl1bS90ZXN0cy9NZW1vcnlJbnN0cnVtZW50YXRpb25UZXN0LmNwcAppbmRleCA0YWNm
NDk2YWQ4N2QyZDgzYTk4N2Q3OTQ2ZjUzNzZlYTc1NmE0MmYwLi41YmJkZTY1MmQ4YTQ5NjBmOGNm
ZjMwYzJkNTI0Zjg4NTQ4MWJjMGFiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVt
L3Rlc3RzL01lbW9yeUluc3RydW1lbnRhdGlvblRlc3QuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQv
Y2hyb21pdW0vdGVzdHMvTWVtb3J5SW5zdHJ1bWVudGF0aW9uVGVzdC5jcHAKQEAgLTM3LDYgKzM3
LDcgQEAKICNpbmNsdWRlIDxndGVzdC9ndGVzdC5oPgogCiAjaW5jbHVkZSA8d3RmL0hhc2hTZXQu
aD4KKyNpbmNsdWRlIDx3dGYvTWVtb3J5SW5zdHJ1bWVudGF0aW9uVmVjdG9yLmg+CiAjaW5jbHVk
ZSA8d3RmL1JlZkNvdW50ZWQuaD4KICNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+CiAjaW5jbHVkZSA8
d3RmL3RleHQvQXRvbWljU3RyaW5nLmg+CkBAIC0yMzUsNiArMjM2LDcgQEAgY2xhc3MgSW5zdHJ1
bWVudGVkT3duZXIgewogcHVibGljOgogICAgIHRlbXBsYXRlPHR5cGVuYW1lIFY+CiAgICAgSW5z
dHJ1bWVudGVkT3duZXIoY29uc3QgViYgdmFsdWUpIDogbV92YWx1ZSh2YWx1ZSkgeyB9CisgICAg
SW5zdHJ1bWVudGVkT3duZXIoKSB7IH0KICAgICB2b2lkIHJlcG9ydE1lbW9yeVVzYWdlKE1lbW9y
eU9iamVjdEluZm8qIG1lbW9yeU9iamVjdEluZm8pIGNvbnN0CiAgICAgewogICAgICAgICBNZW1v
cnlDbGFzc0luZm8gaW5mbyhtZW1vcnlPYmplY3RJbmZvLCB0aGlzLCBXZWJDb3JlTWVtb3J5VHlw
ZXM6OkRPTSk7CkBAIC0zNjcsNSArMzY5LDc1IEBAIFRFU1QoTWVtb3J5SW5zdHJ1bWVudGF0aW9u
VGVzdCwgZGV0ZWN0UmVwb3J0TWVtb3J5VXNhZ2VNZXRob2QpCiAgICAgfQogfQogCitURVNUKE1l
bW9yeUluc3RydW1lbnRhdGlvblRlc3QsIHZlY3Rvclplcm9JbmxpbmVDYXBhY2l0eSkKK3sKKyAg
ICBWaXNpdGVkT2JqZWN0cyB2aXNpdGVkT2JqZWN0czsKKyAgICBNZW1vcnlJbnN0cnVtZW50YXRp
b25JbXBsIGltcGwodmlzaXRlZE9iamVjdHMpOworICAgIEluc3RydW1lbnRlZE93bmVyPFZlY3Rv
cjxpbnQ+ID4gdmVjdG9yT3duZXIoMTYpOworICAgIGltcGwuYWRkUm9vdE9iamVjdCh2ZWN0b3JP
d25lcik7CisgICAgRVhQRUNUX0VRKDE2ICogc2l6ZW9mKGludCksIGltcGwucmVwb3J0ZWRTaXpl
Rm9yQWxsVHlwZXMoKSk7CisgICAgRVhQRUNUX0VRKDEsIHZpc2l0ZWRPYmplY3RzLnNpemUoKSk7
Cit9CisKK1RFU1QoTWVtb3J5SW5zdHJ1bWVudGF0aW9uVGVzdCwgdmVjdG9yRmllbGRXaXRoSW5s
aW5lQ2FwYWNpdHkpCit7CisgICAgVmlzaXRlZE9iamVjdHMgdmlzaXRlZE9iamVjdHM7CisgICAg
TWVtb3J5SW5zdHJ1bWVudGF0aW9uSW1wbCBpbXBsKHZpc2l0ZWRPYmplY3RzKTsKKyAgICBJbnN0
cnVtZW50ZWRPd25lcjxWZWN0b3I8aW50LCA0PiA+IHZlY3Rvck93bmVyOworICAgIGltcGwuYWRk
Um9vdE9iamVjdCh2ZWN0b3JPd25lcik7CisgICAgRVhQRUNUX0VRKHN0YXRpY19jYXN0PHNpemVf
dD4oMCksIGltcGwucmVwb3J0ZWRTaXplRm9yQWxsVHlwZXMoKSk7CisgICAgRVhQRUNUX0VRKDAs
IHZpc2l0ZWRPYmplY3RzLnNpemUoKSk7Cit9CisKK1RFU1QoTWVtb3J5SW5zdHJ1bWVudGF0aW9u
VGVzdCwgdmVjdG9yRmllbGRXaXRoSW5saW5lQ2FwYWNpdHlSZXNpemVkKQoreworICAgIFZpc2l0
ZWRPYmplY3RzIHZpc2l0ZWRPYmplY3RzOworICAgIE1lbW9yeUluc3RydW1lbnRhdGlvbkltcGwg
aW1wbCh2aXNpdGVkT2JqZWN0cyk7CisgICAgSW5zdHJ1bWVudGVkT3duZXI8VmVjdG9yPGludCwg
ND4gPiB2ZWN0b3JPd25lcjsKKyAgICB2ZWN0b3JPd25lci5tX3ZhbHVlLnJlc2VydmVDYXBhY2l0
eSg4KTsKKyAgICBpbXBsLmFkZFJvb3RPYmplY3QodmVjdG9yT3duZXIpOworICAgIEVYUEVDVF9F
USg4ICogc2l6ZW9mKGludCksIGltcGwucmVwb3J0ZWRTaXplRm9yQWxsVHlwZXMoKSk7CisgICAg
RVhQRUNUX0VRKDEsIHZpc2l0ZWRPYmplY3RzLnNpemUoKSk7Cit9CisKK1RFU1QoTWVtb3J5SW5z
dHJ1bWVudGF0aW9uVGVzdCwgaGVhcEFsbG9jYXRlZFZlY3RvcldpdGhJbmxpbmVDYXBhY2l0eSkK
K3sKKyAgICBWaXNpdGVkT2JqZWN0cyB2aXNpdGVkT2JqZWN0czsKKyAgICBNZW1vcnlJbnN0cnVt
ZW50YXRpb25JbXBsIGltcGwodmlzaXRlZE9iamVjdHMpOworICAgIEluc3RydW1lbnRlZE93bmVy
PE93blB0cjxWZWN0b3I8aW50LCA0PiA+ID4gdmVjdG9yT3duZXI7CisgICAgdmVjdG9yT3duZXIu
bV92YWx1ZSA9IGFkb3B0UHRyKG5ldyBWZWN0b3I8aW50LCA0PigpKTsKKyAgICBpbXBsLmFkZFJv
b3RPYmplY3QodmVjdG9yT3duZXIpOworICAgIEVYUEVDVF9FUShzaXplb2YoVmVjdG9yPGludCwg
ND4pLCBpbXBsLnJlcG9ydGVkU2l6ZUZvckFsbFR5cGVzKCkpOworICAgIEVYUEVDVF9FUSgxLCB2
aXNpdGVkT2JqZWN0cy5zaXplKCkpOworfQorCitURVNUKE1lbW9yeUluc3RydW1lbnRhdGlvblRl
c3QsIGhlYXBBbGxvY2F0ZWRWZWN0b3JXaXRoSW5saW5lQ2FwYWNpdHlSZXNpemVkKQoreworICAg
IFZpc2l0ZWRPYmplY3RzIHZpc2l0ZWRPYmplY3RzOworICAgIE1lbW9yeUluc3RydW1lbnRhdGlv
bkltcGwgaW1wbCh2aXNpdGVkT2JqZWN0cyk7CisgICAgSW5zdHJ1bWVudGVkT3duZXI8T3duUHRy
PFZlY3RvcjxpbnQsIDQ+ID4gPiB2ZWN0b3JPd25lcjsKKyAgICB2ZWN0b3JPd25lci5tX3ZhbHVl
ID0gYWRvcHRQdHIobmV3IFZlY3RvcjxpbnQsIDQ+KCkpOworICAgIHZlY3Rvck93bmVyLm1fdmFs
dWUtPnJlc2VydmVDYXBhY2l0eSg4KTsKKyAgICBpbXBsLmFkZFJvb3RPYmplY3QodmVjdG9yT3du
ZXIpOworICAgIEVYUEVDVF9FUSg4ICogc2l6ZW9mKGludCkgKyBzaXplb2YoVmVjdG9yPGludCwg
ND4pLCBpbXBsLnJlcG9ydGVkU2l6ZUZvckFsbFR5cGVzKCkpOworICAgIEVYUEVDVF9FUSgyLCB2
aXNpdGVkT2JqZWN0cy5zaXplKCkpOworfQorCitURVNUKE1lbW9yeUluc3RydW1lbnRhdGlvblRl
c3QsIHZlY3RvcldpdGhJbnN0cnVtZW50ZWRUeXBlKQoreworICAgIFZpc2l0ZWRPYmplY3RzIHZp
c2l0ZWRPYmplY3RzOworICAgIE1lbW9yeUluc3RydW1lbnRhdGlvbkltcGwgaW1wbCh2aXNpdGVk
T2JqZWN0cyk7CisKKyAgICB0eXBlZGVmIFZlY3RvcjxTdHJpbmc+IFZhbHVlVHlwZTsKKyAgICBP
d25QdHI8VmFsdWVUeXBlPiB2YWx1ZSA9IGFkb3B0UHRyKG5ldyBWYWx1ZVR5cGUoKSk7CisgICAg
c2l6ZV90IGNvdW50ID0gMTA7CisgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBjb3VudDsgKytp
KQorICAgICAgICB2YWx1ZS0+YXBwZW5kKFN0cmluZygic3RyaW5nIikpOworICAgIEluc3RydW1l
bnRlZE93bmVyPFZhbHVlVHlwZSogPiByb290KHZhbHVlLmdldCgpKTsKKyAgICBpbXBsLmFkZFJv
b3RPYmplY3Qocm9vdCk7CisgICAgRVhQRUNUX0VRKHNpemVvZihWYWx1ZVR5cGUpICsgc2l6ZW9m
KFN0cmluZykgKiB2YWx1ZS0+Y2FwYWNpdHkoKSArIHNpemVvZihTdHJpbmdJbXBsKSAqIHZhbHVl
LT5zaXplKCksIGltcGwucmVwb3J0ZWRTaXplRm9yQWxsVHlwZXMoKSk7CisgICAgRVhQRUNUX0VR
KGNvdW50ICsgMiwgKHNpemVfdCl2aXNpdGVkT2JqZWN0cy5zaXplKCkpOworfQorCiB9IC8vIG5h
bWVzcGFjZQogCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>164749</attachid>
            <date>2012-09-19 09:30:00 -0700</date>
            <delta_ts>2012-09-20 05:53:15 -0700</delta_ts>
            <desc>with link time guard for Vector in MemoryInstrumentation.h</desc>
            <filename>bug-96650-20120919202924.patch</filename>
            <type>text/plain</type>
            <size>36355</size>
            <attacher name="Ilya Tikhonovsky">loislo</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTI5MDA2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IGM1ZmIwN2RiNDJlZWFlNTExZmUzNzAy
MTkxZmM5ZjdjMjczNTVjOTYuLjc4OGNhZmFjMWM1NzU2OGMyOTUyNmE1ZDZlZGM3ZjA0ZmM1N2Yx
NTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMzAgQEAKKzIwMTItMDktMTkgIElseWEgVGlraG9ub3Zza3kgIDxs
b2lzbG9AY2hyb21pdW0ub3JnPgorCisgICAgICAgIFdlYiBJbnNwZWN0b3I6IGV4dHJhY3QgVmVj
dG9yIGluc3RydW1lbnRhdGlvbiBmcm9tIGNvcmUgTk1JIGNvZGUgaW50byBNZW1vcnlJbnN0cnVt
ZW50YXRpb25WZWN0b3IuaCBoZWFkZXIuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD05NjY1MAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgIEFkZGVkIHJlcG9ydE1lbW9yeVVzYWdlIGZyZWUgdGVtcGxhdGUgZnVu
Y3Rpb24gd2l0aCBkZWZhdWx0IGJvZHkgdG8gY29yZSBOTUkgY29kZQorICAgICAgICBhbmQgYWRk
IGN1c3RvbSB2ZXJzaW9uIG9mIHJlcG9ydE1lbW9yeVVzYWdlIGZ1bmN0aW9uIGZvciBWZWN0b3Jz
LgorCisgICAgICAgICogR05VbWFrZWZpbGUubGlzdC5hbToKKyAgICAgICAgKiBXVEYuZ3lwaToK
KyAgICAgICAgKiBXVEYucHJvOgorICAgICAgICAqIFdURi52Y3Byb2ovV1RGLnZjcHJvajoKKyAg
ICAgICAgKiBXVEYueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiB3dGYvTWVt
b3J5SW5zdHJ1bWVudGF0aW9uLmg6CisgICAgICAgIChXVEYpOgorICAgICAgICAoV1RGOjpNZW1v
cnlJbnN0cnVtZW50YXRpb246OnNlbGVjdEluc3RydW1lbnRhdGlvbk1ldGhvZCk6CisgICAgICAg
IChNZW1vcnlJbnN0cnVtZW50YXRpb24pOgorICAgICAgICAoV1RGOjpyZXBvcnRNZW1vcnlVc2Fn
ZSk6CisgICAgICAgIChXVEY6Ok1lbW9yeUluc3RydW1lbnRhdGlvbjo6YWRkT2JqZWN0SW1wbCk6
CisgICAgICAgIChXVEY6Ojo6cHJvY2Vzcyk6CisgICAgICAgICogd3RmL01lbW9yeUluc3RydW1l
bnRhdGlvblZlY3Rvci5oOiBBZGRlZC4KKyAgICAgICAgKFdURik6CisgICAgICAgIChXVEY6Omlu
c3RydW1lbnRWZWN0b3JWYWx1ZXMpOgorICAgICAgICAoV1RGOjpyZXBvcnRNZW1vcnlVc2FnZSk6
CisKIDIwMTItMDktMTggIEdsZW5uIEFkYW1zICA8Z2xlbm5Ac2t5bmF2LmNvbT4KIAogICAgICAg
ICBXVEZTdHJpbmc6OnNob3cgZG9lc24ndCBkdW1wIG5vbi1BU0NJSSBjaGFyYWN0ZXJzIGluIGEg
cmVhZGFibGUgbWFubmVyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9T
b3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggY2NmNWMxMWI3NzVlYTEyODc2MjkxZGY3ZTBm
ZDJhZTQyMmViODk2OC4uZGVlMzc5YmIzODM5ZDhkMjFjZTg3NWFkODlhODlkNjNlY2VkMTdjNCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ2IEBACisyMDEyLTA5LTE5ICBJbHlhIFRpa2hvbm92c2t5
ICA8bG9pc2xvQGNocm9taXVtLm9yZz4KKworICAgICAgICBXZWIgSW5zcGVjdG9yOiBleHRyYWN0
IFZlY3RvciBpbnN0cnVtZW50YXRpb24gZnJvbSBjb3JlIE5NSSBjb2RlIGludG8gTWVtb3J5SW5z
dHJ1bWVudGF0aW9uVmVjdG9yLmggaGVhZGVyLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTY2NTAKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBhZGRJbnN0cnVtZW50ZWRWZWN0b3IgYW5kIGFkZEluc3RydW1l
bnRlZFZlY3RvclB0ciB3ZXJlIHJlcGxhY2VkIHdpdGggYWRkTWVtYmVyLgorCisgICAgICAgICog
Y3NzL0NTU0dyYWRpZW50VmFsdWUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q1NTR3JhZGllbnRW
YWx1ZTo6cmVwb3J0QmFzZUNsYXNzTWVtb3J5VXNhZ2UpOgorICAgICAgICAqIGNzcy9DU1NJbWFn
ZVNldFZhbHVlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNTU0ltYWdlU2V0VmFsdWU6OnJlcG9y
dERlc2NlbmRhbnRNZW1vcnlVc2FnZSk6CisgICAgICAgICogY3NzL0NTU01lZGlhUnVsZS5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpDU1NNZWRpYVJ1bGU6OnJlcG9ydERlc2NlbmRhbnRNZW1vcnlV
c2FnZSk6CisgICAgICAgICogY3NzL0NTU1J1bGVMaXN0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OlN0YXRpY0NTU1J1bGVMaXN0OjpyZXBvcnRNZW1vcnlVc2FnZSk6CisgICAgICAgICogY3NzL0NT
U1N0eWxlU2hlZXQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q1NTU3R5bGVTaGVldDo6cmVwb3J0
TWVtb3J5VXNhZ2UpOgorICAgICAgICAqIGNzcy9DU1NWYWx1ZUxpc3QuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6Q1NTVmFsdWVMaXN0OjpyZXBvcnREZXNjZW5kYW50TWVtb3J5VXNhZ2UpOgorICAg
ICAgICAqIGNzcy9NZWRpYUxpc3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFRdWVyeVNl
dDo6cmVwb3J0TWVtb3J5VXNhZ2UpOgorICAgICAgICAqIGNzcy9NZWRpYVF1ZXJ5LmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6Ok1lZGlhUXVlcnk6OnJlcG9ydE1lbW9yeVVzYWdlKToKKyAgICAgICAg
KiBjc3MvU3R5bGVSZXNvbHZlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTdHlsZVJlc29sdmVy
Ojpjb2xsZWN0TWF0Y2hpbmdSdWxlc0Zvckxpc3QpOgorICAgICAgICAqIGNzcy9TdHlsZVJ1bGUu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6U3R5bGVSdWxlQmxvY2s6OnJlcG9ydERlc2NlbmRhbnRN
ZW1vcnlVc2FnZSk6CisgICAgICAgICogY3NzL1N0eWxlU2hlZXRDb250ZW50cy5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpTdHlsZVNoZWV0Q29udGVudHM6OnJlcG9ydE1lbW9yeVVzYWdlKToKKyAg
ICAgICAgKiBjc3MvV2ViS2l0Q1NTS2V5ZnJhbWVzUnVsZS5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpTdHlsZVJ1bGVLZXlmcmFtZXM6OnJlcG9ydERlc2NlbmRhbnRNZW1vcnlVc2FnZSk6CisgICAg
ICAgIChXZWJDb3JlOjpXZWJLaXRDU1NLZXlmcmFtZXNSdWxlOjpyZXBvcnREZXNjZW5kYW50TWVt
b3J5VXNhZ2UpOgorICAgICAgICAqIGNzcy9XZWJLaXRDU1NSZWdpb25SdWxlLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OldlYktpdENTU1JlZ2lvblJ1bGU6OnJlcG9ydERlc2NlbmRhbnRNZW1vcnlV
c2FnZSk6CisgICAgICAgICogZG9tL0RvY3VtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRv
Y3VtZW50OjpyZXBvcnRNZW1vcnlVc2FnZSk6CisgICAgICAgICogbG9hZGVyL0RvY3VtZW50TG9h
ZGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50TG9hZGVyOjpyZXBvcnRNZW1vcnlV
c2FnZSk6CisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9SZXNvdXJjZVJlcXVlc3RCYXNlLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdEJhc2U6OnJlcG9ydE1lbW9yeVVz
YWdlKToKKwogMjAxMi0wOS0xOSAgUGF0cmljayBHYW5zdGVyZXIgIDxwYXJvZ2FAd2Via2l0Lm9y
Zz4KIAogICAgICAgICBSZW1vdmUgYWxsIHVzYWdlcyBvZiBNX1BJIGZyb20gV2ViQ29yZQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0
L2Nocm9taXVtL0NoYW5nZUxvZwppbmRleCA5ODk4OTRkZjA0MTEyYTM2OGExNGQ5ZGE3YTcyNTdi
MGM5MDRiZTk3Li4zYmUxZjk3MTVmYWQ5NThkYzhiNDQ2NGIxMzFlMjliNDMwYzQ2MTQxIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2Vi
S2l0L2Nocm9taXVtL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE3IEBACisyMDEyLTA5LTE5ICBJbHlh
IFRpa2hvbm92c2t5ICA8bG9pc2xvQGNocm9taXVtLm9yZz4KKworICAgICAgICBXZWIgSW5zcGVj
dG9yOiBleHRyYWN0IFZlY3RvciBpbnN0cnVtZW50YXRpb24gZnJvbSBjb3JlIE5NSSBjb2RlIGlu
dG8gTWVtb3J5SW5zdHJ1bWVudGF0aW9uVmVjdG9yLmggaGVhZGVyLgorICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTY2NTAKKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUZXN0IGZvciBpbnN0cnVtZW50ZWQgdmVj
dG9yLgorCisgICAgICAgICogdGVzdHMvTWVtb3J5SW5zdHJ1bWVudGF0aW9uVGVzdC5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpJbnN0cnVtZW50ZWRPd25lcjo6SW5zdHJ1bWVudGVkT3duZXIpOgor
ICAgICAgICAoV2ViQ29yZTo6VEVTVCk6CisgICAgICAgIChXZWJDb3JlKToKKwogMjAxMi0wOS0x
OSAgS2VudCBUYW11cmEgIDx0a2VudEBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgW0Nocm9taXVt
XSBGaXggY3Jhc2ggaW4gV2ViRnJhbWVJbXBsOjpsb2FkSGlzdG9yeUl0ZW0KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XVEYvR05VbWFrZWZpbGUubGlzdC5hbSBiL1NvdXJjZS9XVEYvR05VbWFrZWZpbGUu
bGlzdC5hbQppbmRleCBlOGU0MmVkZDM1NTJlZGU1NWFmMTg0MjExNTFmMGViYjkzMzk2Yjg1Li4w
ZWQxMGRkYWUxNDhhMDczM2E4MzUyNjk1NGI3ODE5ZmRiY2JkZmYyIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV1RGL0dOVW1ha2VmaWxlLmxpc3QuYW0KKysrIGIvU291cmNlL1dURi9HTlVtYWtlZmlsZS5s
aXN0LmFtCkBAIC04MCw2ICs4MCw3IEBAIHd0Zl9zb3VyY2VzICs9IFwKICAgICBTb3VyY2UvV1RG
L3d0Zi9NZWRpYVRpbWUuaCBcCiAgICAgU291cmNlL1dURi93dGYvTWVkaWFUaW1lLmNwcCBcCiAg
ICAgU291cmNlL1dURi93dGYvTWVtb3J5SW5zdHJ1bWVudGF0aW9uLmggXAorICAgIFNvdXJjZS9X
VEYvd3RmL01lbW9yeUluc3RydW1lbnRhdGlvblZlY3Rvci5oIFwKICAgICBTb3VyY2UvV1RGL3d0
Zi9NZXNzYWdlUXVldWUuaCBcCiAgICAgU291cmNlL1dURi93dGYvTWV0YUFsbG9jYXRvci5jcHAg
XAogICAgIFNvdXJjZS9XVEYvd3RmL01ldGFBbGxvY2F0b3IuaCBcCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV1RGL1dURi5neXBpIGIvU291cmNlL1dURi9XVEYuZ3lwaQppbmRleCA1ZGNkMDFlZDdkM2E0
YjdhOWMzMTgxYjU0YTFhYTRjNWE5ZjIxMzgxLi5mZGMyOGQ2YmI1NWU3ZTU2NWRhZjA5NWI3M2Ni
NTNhNzNlMDk0OGZjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL1dURi5neXBpCisrKyBiL1NvdXJj
ZS9XVEYvV1RGLmd5cGkKQEAgLTUwLDYgKzUwLDcgQEAKICAgICAgICAgICAgICd3dGYvTWFpblRo
cmVhZC5oJywKICAgICAgICAgICAgICd3dGYvTWF0aEV4dHJhcy5oJywKICAgICAgICAgICAgICd3
dGYvTWVtb3J5SW5zdHJ1bWVudGF0aW9uLmgnLAorICAgICAgICAgICAgJ3d0Zi9NZW1vcnlJbnN0
cnVtZW50YXRpb25WZWN0b3IuaCcsCiAgICAgICAgICAgICAnd3RmL01lc3NhZ2VRdWV1ZS5oJywK
ICAgICAgICAgICAgICd3dGYvTm9uQ29weWluZ1NvcnQuaCcsCiAgICAgICAgICAgICAnd3RmL05v
bmNvcHlhYmxlLmgnLApkaWZmIC0tZ2l0IGEvU291cmNlL1dURi9XVEYucHJvIGIvU291cmNlL1dU
Ri9XVEYucHJvCmluZGV4IGJjMGE4NzcwZWYxYTY3YmY3NWI5YjI1ZTU0NjFiZDQzOTVhMmRkMzgu
LmU4ZGE0YzBjNmIyNDY3MGNkMGI1ODI3NTYwMzEzYjAwYzlmOTg5OGUgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XVEYvV1RGLnBybworKysgYi9Tb3VyY2UvV1RGL1dURi5wcm8KQEAgLTg3LDYgKzg3LDcg
QEAgSEVBREVSUyArPSBcCiAgICAgTUQ1LmggXAogICAgIE1lZGlhVGltZS5oIFwKICAgICBNZW1v
cnlJbnN0cnVtZW50YXRpb24uaCBcCisgICAgTWVtb3J5SW5zdHJ1bWVudGF0aW9uVmVjdG9yLmgg
XAogICAgIE1lc3NhZ2VRdWV1ZS5oIFwKICAgICBNZXRhQWxsb2NhdG9yLmggXAogICAgIE1ldGFB
bGxvY2F0b3JIYW5kbGUuaCBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL1dURi52Y3Byb2ovV1RG
LnZjcHJvaiBiL1NvdXJjZS9XVEYvV1RGLnZjcHJvai9XVEYudmNwcm9qCmluZGV4IDRiMmNjNjIx
YWUxMDA3ZDNjYjEzYTVjNmRhMmEyNTcxZTExNmRkYTUuLmY5MTA4Yzg5MzVlMmY1ODRhZWE4Yjg3
MmEzYWUzNGMxMjQzNGU4NDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvV1RGLnZjcHJvai9XVEYu
dmNwcm9qCisrKyBiL1NvdXJjZS9XVEYvV1RGLnZjcHJvai9XVEYudmNwcm9qCkBAIC05MDUsNiAr
OTA1LDEwIEBACiAJCQk+CiAJCTwvRmlsZT4KIAkJPEZpbGUKKwkJICAgICAgICBSZWxhdGl2ZVBh
dGg9Ii4uXHd0ZlxNZW1vcnlJbnN0cnVtZW50YXRpb25WZWN0b3IuaCIKKwkJCT4KKwkJPC9GaWxl
PgorCQk8RmlsZQogCQkJUmVsYXRpdmVQYXRoPSIuLlx3dGZcTWVzc2FnZVF1ZXVlLmgiCiAJCQk+
CiAJCTwvRmlsZT4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvV1RGLnhjb2RlcHJvai9wcm9qZWN0
LnBieHByb2ogYi9Tb3VyY2UvV1RGL1dURi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4
IDUyYWY3YjljZWNjNWQxYTUyYWUwOGQ5N2I0MjJiM2U1YWFiZDAwNzYuLjNiYjE5ZGRkNzNiYTA4
YzAxMGY0NzA4NjYyYTdjYTA1ZTIyYThjNDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvV1RGLnhj
b2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dURi9XVEYueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvagpAQCAtMTcsNiArMTcsNyBAQAogCQk0MzMwRjM4RjE1NzQ1QjA1MDBBQUZB
OEYgLyogVVJMU3RyaW5nLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDQzMzBGMzhFMTU3NDVCMDUwMEFBRkE4RiAvKiBVUkxTdHJpbmcuY3BwICovOyB9
OwogCQk0RjAzMjFCQzE1NkFBOEQxMDA2RUJBRjYgLyogQml0QXJyYXkuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDRGMDMyMUJCMTU2QUE4RDEwMDZFQkFG
NiAvKiBCaXRBcnJheS5oICovOyB9OwogCQk0RjFEMTE1NDE1RkYxMUJFMDAyNkU5MDggLyogTWVt
b3J5SW5zdHJ1bWVudGF0aW9uLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSA0RjFEMTE1MzE1RkYxMUJFMDAyNkU5MDggLyogTWVtb3J5SW5zdHJ1bWVudGF0
aW9uLmggKi87IH07CisJCTRGQ0I3MTBBMTYwQTFBMDcwMDg0MjVFQyAvKiBNZW1vcnlJbnN0cnVt
ZW50YXRpb25WZWN0b3IuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDRGQ0I3MTA5MTYwQTFBMDcwMDg0MjVFQyAvKiBNZW1vcnlJbnN0cnVtZW50YXRpb25W
ZWN0b3IuaCAqLzsgfTsKIAkJN0UyOUMzM0UxNUZGRDc5QjAwNTE2RDYxIC8qIE9iamNSdW50aW1l
RXh0cmFzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3
RTI5QzMzRDE1RkZENzlCMDA1MTZENjEgLyogT2JqY1J1bnRpbWVFeHRyYXMuaCAqLzsgfTsKIAkJ
ODEzNDAxMzgxNUIwOTJGRDAwMUZGMEI4IC8qIEJhc2U2NC5jcHAgaW4gU291cmNlcyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4MTM0MDEzNjE1QjA5MkZEMDAxRkYwQjggLyog
QmFzZTY0LmNwcCAqLzsgfTsKIAkJODEzNDAxMzkxNUIwOTJGRDAwMUZGMEI4IC8qIEJhc2U2NC5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODEzNDAxMzcx
NUIwOTJGRDAwMUZGMEI4IC8qIEJhc2U2NC5oICovOyB9OwpAQCAtMjY1LDYgKzI2Niw3IEBACiAJ
CTQzMzBGMzhFMTU3NDVCMDUwMEFBRkE4RiAvKiBVUkxTdHJpbmcuY3BwICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gVVJMU3RyaW5nLmNwcDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJNEYwMzIxQkIxNTZBQThEMTAwNkVCQUY2IC8qIEJpdEFycmF5LmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEJpdEFycmF5Lmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCTRGMUQxMTUzMTVGRjExQkUwMDI2RTkwOCAvKiBNZW1vcnlJbnN0cnVtZW50
YXRpb24uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTWVtb3J5SW5zdHJ1bWVu
dGF0aW9uLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTRGQ0I3MTA5MTYwQTFBMDcw
MDg0MjVFQyAvKiBNZW1vcnlJbnN0cnVtZW50YXRpb25WZWN0b3IuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gTWVtb3J5SW5zdHJ1bWVudGF0aW9uVmVjdG9yLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCTVEMjQ3QjYyMTQ2ODlCODYwMEU3OEI3NiAvKiBsaWJXVEYu
YSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBleHBsaWNpdEZpbGVUeXBlID0gYXJjaGl2
ZS5hcjsgaW5jbHVkZUluSW5kZXggPSAwOyBwYXRoID0gbGliV1RGLmE7IHNvdXJjZVRyZWUgPSBC
VUlMVF9QUk9EVUNUU19ESVI7IH07CiAJCTVEMjQ3QjZFMTQ2ODlDNDcwMEU3OEI3NiAvKiBCYXNl
LnhjY29uZmlnICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBl
ID0gdGV4dC54Y2NvbmZpZzsgcGF0aCA9IEJhc2UueGNjb25maWc7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCTVEMjQ3QjZGMTQ2ODlDNDcwMEU3OEI3NiAvKiBDb21waWxlclZlcnNpb24u
eGNjb25maWcgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUg
PSB0ZXh0LnhjY29uZmlnOyBwYXRoID0gQ29tcGlsZXJWZXJzaW9uLnhjY29uZmlnOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwpAQCAtNjUwLDYgKzY1Miw3IEBACiAJCQkJQ0Q1NDk3QUExNTg1
N0QwMzAwQjVCQzMwIC8qIE1lZGlhVGltZS5jcHAgKi8sCiAJCQkJQ0Q1NDk3QUIxNTg1N0QwMzAw
QjVCQzMwIC8qIE1lZGlhVGltZS5oICovLAogCQkJCTRGMUQxMTUzMTVGRjExQkUwMDI2RTkwOCAv
KiBNZW1vcnlJbnN0cnVtZW50YXRpb24uaCAqLywKKwkJCQk0RkNCNzEwOTE2MEExQTA3MDA4NDI1
RUMgLyogTWVtb3J5SW5zdHJ1bWVudGF0aW9uVmVjdG9yLmggKi8sCiAJCQkJQThBNDcyQ0MxNTFB
ODI1QjAwNDEyM0ZGIC8qIE1lc3NhZ2VRdWV1ZS5oICovLAogCQkJCUE4QTQ3MkNEMTUxQTgyNUIw
MDQxMjNGRiAvKiBNZXRhQWxsb2NhdG9yLmNwcCAqLywKIAkJCQlBOEE0NzJDRTE1MUE4MjVCMDA0
MTIzRkYgLyogTWV0YUFsbG9jYXRvci5oICovLApAQCAtMTA3Niw2ICsxMDc5LDcgQEAKIAkJCQlB
OEE0NzQ0NjE1MUE4MjVCMDA0MTIzRkYgLyogV1RGU3RyaW5nLmggaW4gSGVhZGVycyAqLywKIAkJ
CQlBOEE0NzQ4NzE1MUE4MjVCMDA0MTIzRkYgLyogV1RGVGhyZWFkRGF0YS5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJNEYxRDExNTQxNUZGMTFCRTAwMjZFOTA4IC8qIE1lbW9yeUluc3RydW1lbnRhdGlv
bi5oIGluIEhlYWRlcnMgKi8sCisJCQkJNEZDQjcxMEExNjBBMUEwNzAwODQyNUVDIC8qIE1lbW9y
eUluc3RydW1lbnRhdGlvblZlY3Rvci5oIGluIEhlYWRlcnMgKi8sCiAJCQkpOwogCQkJcnVuT25s
eUZvckRlcGxveW1lbnRQb3N0cHJvY2Vzc2luZyA9IDA7CiAJCX07CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV1RGL3d0Zi9NZW1vcnlJbnN0cnVtZW50YXRpb24uaCBiL1NvdXJjZS9XVEYvd3RmL01lbW9y
eUluc3RydW1lbnRhdGlvbi5oCmluZGV4IDEzMWFmODQ5N2FjZWFkM2E5YjljYWMyZGVlMTc0N2M4
MmU5MGI2MTMuLmJiYzllY2I5MjJmOTMwMWM2ZTIxNTFhM2E1YmM3OTcxNjg4MzhhMGQgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL01lbW9yeUluc3RydW1lbnRhdGlvbi5oCisrKyBiL1NvdXJj
ZS9XVEYvd3RmL01lbW9yeUluc3RydW1lbnRhdGlvbi5oCkBAIC04MSw2ICs4MSw4IEBAIHByaXZh
dGU6CiAgICAgc2l6ZV90IG1fb2JqZWN0U2l6ZTsKIH07CiAKK3RlbXBsYXRlPHR5cGVuYW1lIFQ+
IHZvaWQgcmVwb3J0TWVtb3J5VXNhZ2UoY29uc3QgVCogY29uc3QmLCBNZW1vcnlPYmplY3RJbmZv
Kik7CisKIGNsYXNzIE1lbW9yeUluc3RydW1lbnRhdGlvbiB7CiBwdWJsaWM6CiAgICAgdmlydHVh
bCB+TWVtb3J5SW5zdHJ1bWVudGF0aW9uKCkgeyB9CkBAIC0xMDAsNiArMTAyLDEzIEBAIHByb3Rl
Y3RlZDoKICAgICAgICAgdmlydHVhbCB2b2lkIHByb2Nlc3MoTWVtb3J5SW5zdHJ1bWVudGF0aW9u
KikgPSAwOwogICAgIH07CiAKKyAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBUPiBzdGF0aWMgdm9pZCBz
ZWxlY3RJbnN0cnVtZW50YXRpb25NZXRob2QoY29uc3QgVCogY29uc3QmIG9iamVjdCwgTWVtb3J5
T2JqZWN0SW5mbyogbWVtb3J5T2JqZWN0SW5mbykKKyAgICB7CisgICAgICAgIC8vIElmIHRoZXJl
IGlzIHJlcG9ydE1lbW9yeVVzYWdlIG1ldGhvZCBvbiB0aGUgb2JqZWN0LCBjYWxsIGl0LgorICAg
ICAgICAvLyBPdGhlcndpc2UgY291bnQgb25seSBvYmplY3QncyBzZWxmIHNpemUuCisgICAgICAg
IHJlcG9ydE9iamVjdE1lbW9yeVVzYWdlPFQsIHZvaWQgKFQ6OiopKE1lbW9yeU9iamVjdEluZm8q
KSBjb25zdD4ob2JqZWN0LCBtZW1vcnlPYmplY3RJbmZvLCAwKTsKKyAgICB9CisKIHByaXZhdGU6
CiAgICAgdmlydHVhbCB2b2lkIGNvdW50T2JqZWN0U2l6ZShNZW1vcnlPYmplY3RUeXBlLCBzaXpl
X3QpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgZGVmZXJJbnN0cnVtZW50ZWRQb2ludGVyKFBhc3NP
d25QdHI8SW5zdHJ1bWVudGVkUG9pbnRlckJhc2U+KSA9IDA7CkBAIC0xMDcsMTMgKzExNiw3IEBA
IHByaXZhdGU6CiAgICAgdmlydHVhbCB2b2lkIHByb2Nlc3NEZWZlcnJlZEluc3RydW1lbnRlZFBv
aW50ZXJzKCkgPSAwOwogCiAgICAgZnJpZW5kIGNsYXNzIE1lbW9yeUNsYXNzSW5mbzsKLQotICAg
IHRlbXBsYXRlPHR5cGVuYW1lIFQ+IHN0YXRpYyB2b2lkIHNlbGVjdEluc3RydW1lbnRhdGlvbk1l
dGhvZChjb25zdCBUKiBjb25zdCYgb2JqZWN0LCBNZW1vcnlPYmplY3RJbmZvKiBtZW1vcnlPYmpl
Y3RJbmZvKQotICAgIHsKLSAgICAgICAgLy8gSWYgdGhlcmUgaXMgcmVwb3J0TWVtb3J5VXNhZ2Ug
bWV0aG9kIG9uIHRoZSBvYmplY3QsIGNhbGwgaXQuCi0gICAgICAgIC8vIE90aGVyd2lzZSBjb3Vu
dCBvbmx5IG9iamVjdCdzIHNlbGYgc2l6ZS4KLSAgICAgICAgcmVwb3J0T2JqZWN0TWVtb3J5VXNh
Z2U8VCwgdm9pZCAoVDo6KikoTWVtb3J5T2JqZWN0SW5mbyopIGNvbnN0PihvYmplY3QsIG1lbW9y
eU9iamVjdEluZm8sIDApOwotICAgIH0KKyAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBUPiBmcmllbmQg
dm9pZCByZXBvcnRNZW1vcnlVc2FnZShjb25zdCBUKiBjb25zdCYsIE1lbW9yeU9iamVjdEluZm8q
KTsKIAogICAgIHRlbXBsYXRlPHR5cGVuYW1lIFR5cGUsIFR5cGUgUHRyPiBzdHJ1Y3QgTWVtYmVy
SGVscGVyU3RydWN0OwogICAgIHRlbXBsYXRlPHR5cGVuYW1lIFQsIHR5cGVuYW1lIFR5cGU+CkBA
IC0yMTMsMTEgKzIxNiwxNyBAQCBwcml2YXRlOgogfTsKIAogdGVtcGxhdGU8dHlwZW5hbWUgVD4K
K3ZvaWQgcmVwb3J0TWVtb3J5VXNhZ2UoY29uc3QgVCogY29uc3QmIG9iamVjdCwgTWVtb3J5T2Jq
ZWN0SW5mbyogbWVtb3J5T2JqZWN0SW5mbykKK3sKKyAgICBNZW1vcnlJbnN0cnVtZW50YXRpb246
OnNlbGVjdEluc3RydW1lbnRhdGlvbk1ldGhvZDxUPihvYmplY3QsIG1lbW9yeU9iamVjdEluZm8p
OworfQorCit0ZW1wbGF0ZTx0eXBlbmFtZSBUPgogdm9pZCBNZW1vcnlJbnN0cnVtZW50YXRpb246
OmFkZE9iamVjdEltcGwoY29uc3QgVCogY29uc3QmIG9iamVjdCwgTWVtb3J5T2JqZWN0VHlwZSBv
d25lck9iamVjdFR5cGUsIE1lbW9yeU93bmluZ1R5cGUgb3duaW5nVHlwZSkKIHsKICAgICBpZiAo
b3duaW5nVHlwZSA9PSBieVJlZmVyZW5jZSkgewogICAgICAgICBNZW1vcnlPYmplY3RJbmZvIG1l
bW9yeU9iamVjdEluZm8odGhpcywgb3duZXJPYmplY3RUeXBlKTsKLSAgICAgICAgc2VsZWN0SW5z
dHJ1bWVudGF0aW9uTWV0aG9kPFQ+KG9iamVjdCwgJm1lbW9yeU9iamVjdEluZm8pOworICAgICAg
ICByZXBvcnRNZW1vcnlVc2FnZShvYmplY3QsICZtZW1vcnlPYmplY3RJbmZvKTsKICAgICB9IGVs
c2UgewogICAgICAgICBpZiAoIW9iamVjdCB8fCB2aXNpdGVkKG9iamVjdCkpCiAgICAgICAgICAg
ICByZXR1cm47CkBAIC0zMTMsMTAgKzMyMiwxNCBAQCB0ZW1wbGF0ZTx0eXBlbmFtZSBUPgogdm9p
ZCBNZW1vcnlJbnN0cnVtZW50YXRpb246Okluc3RydW1lbnRlZFBvaW50ZXI8VD46OnByb2Nlc3Mo
TWVtb3J5SW5zdHJ1bWVudGF0aW9uKiBtZW1vcnlJbnN0cnVtZW50YXRpb24pCiB7CiAgICAgTWVt
b3J5T2JqZWN0SW5mbyBtZW1vcnlPYmplY3RJbmZvKG1lbW9yeUluc3RydW1lbnRhdGlvbiwgbV9v
d25lck9iamVjdFR5cGUpOwotICAgIHNlbGVjdEluc3RydW1lbnRhdGlvbk1ldGhvZDxUPihtX3Bv
aW50ZXIsICZtZW1vcnlPYmplY3RJbmZvKTsKKyAgICByZXBvcnRNZW1vcnlVc2FnZShtX3BvaW50
ZXIsICZtZW1vcnlPYmplY3RJbmZvKTsKICAgICBtZW1vcnlJbnN0cnVtZW50YXRpb24tPmNvdW50
T2JqZWN0U2l6ZShtZW1vcnlPYmplY3RJbmZvLm9iamVjdFR5cGUoKSwgbWVtb3J5T2JqZWN0SW5m
by5vYmplY3RTaXplKCkpOwogfQogCisvLyBMaW5rIHRpbWUgZ3VhcmQgZm9yIHZlY3RvciBtZW1v
cnkgaW5zdHJ1bWVudGF0aW9uLgordGVtcGxhdGU8dHlwZW5hbWUgVCwgc2l6ZV90IGlubGluZUNh
cGFjaXR5PiBjbGFzcyBWZWN0b3I7Cit0ZW1wbGF0ZTx0eXBlbmFtZSBULCBzaXplX3QgaW5saW5l
Q2FwYWNpdHk+IHZvaWQgcmVwb3J0TWVtb3J5VXNhZ2UoY29uc3QgVmVjdG9yPFQsIGlubGluZUNh
cGFjaXR5PiogY29uc3QmLCBNZW1vcnlPYmplY3RJbmZvKik7CisKIH0gLy8gbmFtZXNwYWNlIFdU
RgogCiAjZW5kaWYgLy8gIWRlZmluZWQoTWVtb3J5SW5zdHJ1bWVudGF0aW9uX2gpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV1RGL3d0Zi9NZW1vcnlJbnN0cnVtZW50YXRpb25WZWN0b3IuaCBiL1NvdXJj
ZS9XVEYvd3RmL01lbW9yeUluc3RydW1lbnRhdGlvblZlY3Rvci5oCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjdmOWRi
MTM4ZWQ0YmQ2NmYxNzE3ZmEwYTk1ZjEwOWRlMmNmZmI3ODIKLS0tIC9kZXYvbnVsbAorKysgYi9T
b3VyY2UvV1RGL3d0Zi9NZW1vcnlJbnN0cnVtZW50YXRpb25WZWN0b3IuaApAQCAtMCwwICsxLDU5
IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEyIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCisgKiBtZXQ6CisgKgor
ICogICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5h
cnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKKyAqIGNvcHlyaWdodCBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKKyAqIGlu
IHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0
aGUKKyAqIGRpc3RyaWJ1dGlvbi4KKyAqICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xl
IEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKKyAqIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0
byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCisgKiB0aGlzIHNvZnR3
YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorICoKKyAqIFRI
SVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05U
UklCVVRPUlMKKyAqICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElF
UywgSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5U
SUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKKyAqIEEgUEFSVElDVUxBUiBQ
VVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCisg
KiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVD
VCwgSU5DSURFTlRBTCwKKyAqIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBE
QU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9G
IFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAorICogREFUQSwgT1Ig
UFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04g
QU5ZCisgKiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1Qg
TElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNF
KSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUs
IEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8K
KworI2lmbmRlZiBNZW1vcnlJbnN0cnVtZW50YXRpb25WZWN0b3JfaAorI2RlZmluZSBNZW1vcnlJ
bnN0cnVtZW50YXRpb25WZWN0b3JfaAorCisjaW5jbHVkZSA8d3RmL01lbW9yeUluc3RydW1lbnRh
dGlvbi5oPgorI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KKworbmFtZXNwYWNlIFdURiB7CisKK3Rl
bXBsYXRlPHR5cGVuYW1lIFQsIHNpemVfdCBpbmxpbmVfY2FwYWNpdHk+Cit2b2lkIGluc3RydW1l
bnRWZWN0b3JWYWx1ZXMoTWVtb3J5Q2xhc3NJbmZvJiBpbmZvLCBjb25zdCBWZWN0b3I8VCwgaW5s
aW5lX2NhcGFjaXR5PiogY29uc3QmIHZlY3RvcikKK3sKKyAgICBmb3IgKHNpemVfdCBpID0gMDsg
aSA8IHZlY3Rvci0+c2l6ZSgpOyArK2kpCisgICAgICAgIGluZm8uYWRkTWVtYmVyKHZlY3Rvci0+
YXQoaSkpOworfQorCit0ZW1wbGF0ZTxzaXplX3QgaW5saW5lX2NhcGFjaXR5PiB2b2lkIGluc3Ry
dW1lbnRWZWN0b3JWYWx1ZXMoTWVtb3J5Q2xhc3NJbmZvJiwgY29uc3QgVmVjdG9yPGludCwgaW5s
aW5lX2NhcGFjaXR5PiogY29uc3QmKSB7IH0KKwordGVtcGxhdGU8dHlwZW5hbWUgVCwgc2l6ZV90
IGlubGluZV9jYXBhY2l0eT4KK3ZvaWQgcmVwb3J0TWVtb3J5VXNhZ2UoY29uc3QgVmVjdG9yPFQs
IGlubGluZV9jYXBhY2l0eT4qIGNvbnN0JiB2ZWN0b3IsIE1lbW9yeU9iamVjdEluZm8qIG1lbW9y
eU9iamVjdEluZm8pCit7CisgICAgTWVtb3J5Q2xhc3NJbmZvIGluZm8obWVtb3J5T2JqZWN0SW5m
bywgdmVjdG9yKTsKKyAgICBpZiAoaW5saW5lX2NhcGFjaXR5IDwgdmVjdG9yLT5jYXBhY2l0eSgp
KQorICAgICAgICBpbmZvLmFkZFJhd0J1ZmZlcih2ZWN0b3ItPmRhdGEoKSwgdmVjdG9yLT5jYXBh
Y2l0eSgpICogc2l6ZW9mKFQpKTsKKyAgICBpbnN0cnVtZW50VmVjdG9yVmFsdWVzKGluZm8sIHZl
Y3Rvcik7Cit9CisKK30KKworI2VuZGlmIC8vICFkZWZpbmVkKE1lbW9yeUluc3RydW1lbnRhdGlv
blZlY3Rvcl9oKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU0dyYWRpZW50VmFs
dWUuY3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU0dyYWRpZW50VmFsdWUuY3BwCmluZGV4IGY5
NzE1ZjI3ZjU4NTFjOTJhMTg1M2RiNDZiYTcwYmRhZGUxYWVhMjcuLmQwMGMxMzA4ZTUxMGIzMGRi
ZGI3MzM5ZGFmYWE4NzdiYTUyNGM3ZWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9D
U1NHcmFkaWVudFZhbHVlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTR3JhZGllbnRW
YWx1ZS5jcHAKQEAgLTM3LDYgKzM3LDcgQEAKICNpbmNsdWRlICJSZW5kZXJPYmplY3QuaCIKICNp
bmNsdWRlICJTdHlsZVJlc29sdmVyLmgiCiAjaW5jbHVkZSAiV2ViQ29yZU1lbW9yeUluc3RydW1l
bnRhdGlvbi5oIgorI2luY2x1ZGUgPHd0Zi9NZW1vcnlJbnN0cnVtZW50YXRpb25WZWN0b3IuaD4K
ICNpbmNsdWRlIDx3dGYvdGV4dC9TdHJpbmdCdWlsZGVyLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQv
V1RGU3RyaW5nLmg+CiAKQEAgLTQ2OSw3ICs0NzAsNyBAQCB2b2lkIENTU0dyYWRpZW50VmFsdWU6
OnJlcG9ydEJhc2VDbGFzc01lbW9yeVVzYWdlKE1lbW9yeU9iamVjdEluZm8qIG1lbW9yeU9iamVj
dAogICAgIGluZm8uYWRkTWVtYmVyKG1fZmlyc3RZKTsKICAgICBpbmZvLmFkZE1lbWJlcihtX3Nl
Y29uZFgpOwogICAgIGluZm8uYWRkTWVtYmVyKG1fc2Vjb25kWSk7Ci0gICAgaW5mby5hZGRJbnN0
cnVtZW50ZWRWZWN0b3IobV9zdG9wcyk7CisgICAgaW5mby5hZGRNZW1iZXIobV9zdG9wcyk7CiB9
CiAKIFN0cmluZyBDU1NMaW5lYXJHcmFkaWVudFZhbHVlOjpjdXN0b21Dc3NUZXh0KCkgY29uc3QK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NJbWFnZVNldFZhbHVlLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2Nzcy9DU1NJbWFnZVNldFZhbHVlLmNwcAppbmRleCA1ZTZiZWU1YTYzY2Ez
MDM2NTcyNGRhZGE5NjgwZDIwNmZkMWNiMGE4Li42ZTAyYTIwZjk1YWMzZjE0ZjQ2MWExYzUxMDBi
NGFkNjJiZDllZjBhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTSW1hZ2VTZXRW
YWx1ZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU0ltYWdlU2V0VmFsdWUuY3BwCkBA
IC0zNyw2ICszNyw3IEBACiAjaW5jbHVkZSAiU3R5bGVDYWNoZWRJbWFnZVNldC5oIgogI2luY2x1
ZGUgIlN0eWxlUGVuZGluZ0ltYWdlLmgiCiAjaW5jbHVkZSAiV2ViQ29yZU1lbW9yeUluc3RydW1l
bnRhdGlvbi5oIgorI2luY2x1ZGUgPHd0Zi9NZW1vcnlJbnN0cnVtZW50YXRpb25WZWN0b3IuaD4K
IAogbmFtZXNwYWNlIFdlYkNvcmUgewogCkBAIC0xNjgsNyArMTY5LDcgQEAgdm9pZCBDU1NJbWFn
ZVNldFZhbHVlOjpyZXBvcnREZXNjZW5kYW50TWVtb3J5VXNhZ2UoTWVtb3J5T2JqZWN0SW5mbyog
bWVtb3J5T2JqZWMKIHsKICAgICBNZW1vcnlDbGFzc0luZm8gaW5mbyhtZW1vcnlPYmplY3RJbmZv
LCB0aGlzLCBXZWJDb3JlTWVtb3J5VHlwZXM6OkNTUyk7CiAgICAgQ1NTVmFsdWVMaXN0OjpyZXBv
cnREZXNjZW5kYW50TWVtb3J5VXNhZ2UobWVtb3J5T2JqZWN0SW5mbyk7Ci0gICAgaW5mby5hZGRJ
bnN0cnVtZW50ZWRWZWN0b3IobV9pbWFnZXNJblNldCk7CisgICAgaW5mby5hZGRNZW1iZXIobV9p
bWFnZXNJblNldCk7CiB9CiAKIHZvaWQgQ1NTSW1hZ2VTZXRWYWx1ZTo6SW1hZ2VXaXRoU2NhbGU6
OnJlcG9ydE1lbW9yeVVzYWdlKE1lbW9yeU9iamVjdEluZm8qIG1lbW9yeU9iamVjdEluZm8pIGNv
bnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTTWVkaWFSdWxlLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2Nzcy9DU1NNZWRpYVJ1bGUuY3BwCmluZGV4IGYwZTljNzljM2YxMmVlMzc2
NDdlZTA3NTkwYmJmOTcwOTcwZWJhYmUuLjhjMmM5NzNjMjEwNjM2YTYxZWQ2MmU3OTRhYzcwMWRl
Mzk1YWVjNjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NNZWRpYVJ1bGUuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NNZWRpYVJ1bGUuY3BwCkBAIC0yOSw2ICsyOSw3
IEBACiAjaW5jbHVkZSAiRXhjZXB0aW9uQ29kZS5oIgogI2luY2x1ZGUgIlN0eWxlUnVsZS5oIgog
I2luY2x1ZGUgIldlYkNvcmVNZW1vcnlJbnN0cnVtZW50YXRpb24uaCIKKyNpbmNsdWRlIDx3dGYv
TWVtb3J5SW5zdHJ1bWVudGF0aW9uVmVjdG9yLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvU3RyaW5n
QnVpbGRlci5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CkBAIC0xODAsNyArMTgxLDcgQEAgdm9p
ZCBDU1NNZWRpYVJ1bGU6OnJlcG9ydERlc2NlbmRhbnRNZW1vcnlVc2FnZShNZW1vcnlPYmplY3RJ
bmZvKiBtZW1vcnlPYmplY3RJbmYKICAgICBNZW1vcnlDbGFzc0luZm8gaW5mbyhtZW1vcnlPYmpl
Y3RJbmZvLCB0aGlzLCBXZWJDb3JlTWVtb3J5VHlwZXM6OkNTUyk7CiAgICAgQ1NTUnVsZTo6cmVw
b3J0QmFzZUNsYXNzTWVtb3J5VXNhZ2UobWVtb3J5T2JqZWN0SW5mbyk7CiAgICAgaW5mby5hZGRN
ZW1iZXIobV9tZWRpYUNTU09NV3JhcHBlcik7Ci0gICAgaW5mby5hZGRJbnN0cnVtZW50ZWRWZWN0
b3IobV9jaGlsZFJ1bGVDU1NPTVdyYXBwZXJzKTsKKyAgICBpbmZvLmFkZE1lbWJlcihtX2NoaWxk
UnVsZUNTU09NV3JhcHBlcnMpOwogICAgIGluZm8uYWRkTWVtYmVyKG1fcnVsZUxpc3RDU1NPTVdy
YXBwZXIpOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUnVsZUxpc3Qu
Y3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1J1bGVMaXN0LmNwcAppbmRleCA0NzJiM2RkNjBk
MDA5NGY3NTA1Y2FiYTE2MzlhNjhiY2JmYjQ4Y2RlLi5kYWRjOTNiMTU0N2I0MTQ5ZGVjMGQ5NmVh
NGUxNTY1M2IwNzY3MWVjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUnVsZUxp
c3QuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NSdWxlTGlzdC5jcHAKQEAgLTI0LDYg
KzI0LDcgQEAKIAogI2luY2x1ZGUgIkNTU1J1bGUuaCIKICNpbmNsdWRlICJDU1NTdHlsZVNoZWV0
LmgiCisjaW5jbHVkZSA8d3RmL01lbW9yeUluc3RydW1lbnRhdGlvblZlY3Rvci5oPgogCiBuYW1l
c3BhY2UgV2ViQ29yZSB7CiAKQEAgLTU0LDcgKzU1LDcgQEAgdm9pZCBTdGF0aWNDU1NSdWxlTGlz
dDo6ZGVyZWYoKQogdm9pZCBTdGF0aWNDU1NSdWxlTGlzdDo6cmVwb3J0TWVtb3J5VXNhZ2UoTWVt
b3J5T2JqZWN0SW5mbyogbWVtb3J5T2JqZWN0SW5mbykgY29uc3QKIHsKICAgICBNZW1vcnlDbGFz
c0luZm8gaW5mbyhtZW1vcnlPYmplY3RJbmZvLCB0aGlzLCBXZWJDb3JlTWVtb3J5VHlwZXM6OkNT
Uyk7Ci0gICAgaW5mby5hZGRJbnN0cnVtZW50ZWRWZWN0b3IobV9ydWxlcyk7CisgICAgaW5mby5h
ZGRNZW1iZXIobV9ydWxlcyk7CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NTdHlsZVNoZWV0LmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2Nzcy9DU1NTdHlsZVNoZWV0LmNwcAppbmRleCAwZTEwMjAyYzdmZWJiZjJiZTZkODlhZmNjZDU3
ZGIyZDAzYTYyY2UyLi5kY2ZjMjIwMDZmZjI2NTNkMTEwYzI5YzMzNWFlYjZkMjcxNzE0NWVkIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTU3R5bGVTaGVldC5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvY3NzL0NTU1N0eWxlU2hlZXQuY3BwCkBAIC0zOCw2ICszOCw3IEBACiAjaW5j
bHVkZSAiU3R5bGVSdWxlLmgiCiAjaW5jbHVkZSAiU3R5bGVTaGVldENvbnRlbnRzLmgiCiAjaW5j
bHVkZSAiV2ViQ29yZU1lbW9yeUluc3RydW1lbnRhdGlvbi5oIgorI2luY2x1ZGUgPHd0Zi9NZW1v
cnlJbnN0cnVtZW50YXRpb25WZWN0b3IuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9TdHJpbmdCdWls
ZGVyLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKQEAgLTE4Nyw3ICsxODgsNyBAQCB2b2lkIENT
U1N0eWxlU2hlZXQ6OnJlcG9ydE1lbW9yeVVzYWdlKE1lbW9yeU9iamVjdEluZm8qIG1lbW9yeU9i
amVjdEluZm8pIGNvbnN0CiAgICAgaW5mby5hZGRNZW1iZXIobV9vd25lck5vZGUpOwogICAgIGlu
Zm8uYWRkTWVtYmVyKG1fb3duZXJSdWxlKTsKICAgICBpbmZvLmFkZE1lbWJlcihtX21lZGlhQ1NT
T01XcmFwcGVyKTsKLSAgICBpbmZvLmFkZEluc3RydW1lbnRlZFZlY3RvcihtX2NoaWxkUnVsZUNT
U09NV3JhcHBlcnMpOworICAgIGluZm8uYWRkTWVtYmVyKG1fY2hpbGRSdWxlQ1NTT01XcmFwcGVy
cyk7CiB9CiAKIHZvaWQgQ1NTU3R5bGVTaGVldDo6c2V0RGlzYWJsZWQoYm9vbCBkaXNhYmxlZCkK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NWYWx1ZUxpc3QuY3BwIGIvU291cmNl
L1dlYkNvcmUvY3NzL0NTU1ZhbHVlTGlzdC5jcHAKaW5kZXggMjFlNGZhNzAzNWUwNjA3MDIwNjVm
MzlmOWFhYzU4ZDBiNmZhNjZjMy4uOWVjMmQ1MDg1ZmI5ZDZkMzhkZDRjZWIyMTgzYjkxNDhiYjk0
MmU5NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1ZhbHVlTGlzdC5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1ZhbHVlTGlzdC5jcHAKQEAgLTIzLDYgKzIzLDcgQEAK
IAogI2luY2x1ZGUgIkNTU1BhcnNlclZhbHVlcy5oIgogI2luY2x1ZGUgIldlYkNvcmVNZW1vcnlJ
bnN0cnVtZW50YXRpb24uaCIKKyNpbmNsdWRlIDx3dGYvTWVtb3J5SW5zdHJ1bWVudGF0aW9uVmVj
dG9yLmg+CiAjaW5jbHVkZSA8d3RmL1Bhc3NPd25QdHIuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9T
dHJpbmdCdWlsZGVyLmg+CiAKQEAgLTE4OSw3ICsxOTAsNyBAQCBQYXNzUmVmUHRyPENTU1ZhbHVl
TGlzdD4gQ1NTVmFsdWVMaXN0OjpjbG9uZUZvckNTU09NKCkgY29uc3QKIHZvaWQgQ1NTVmFsdWVM
aXN0OjpyZXBvcnREZXNjZW5kYW50TWVtb3J5VXNhZ2UoTWVtb3J5T2JqZWN0SW5mbyogbWVtb3J5
T2JqZWN0SW5mbykgY29uc3QKIHsKICAgICBNZW1vcnlDbGFzc0luZm8gaW5mbyhtZW1vcnlPYmpl
Y3RJbmZvLCB0aGlzLCBXZWJDb3JlTWVtb3J5VHlwZXM6OkNTUyk7Ci0gICAgaW5mby5hZGRJbnN0
cnVtZW50ZWRWZWN0b3IobV92YWx1ZXMpOworICAgIGluZm8uYWRkTWVtYmVyKG1fdmFsdWVzKTsK
IH0KIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
Y3NzL01lZGlhTGlzdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvTWVkaWFMaXN0LmNwcAppbmRl
eCA2MjkwM2Q2YjE2ZTQ0MDI5YzEyODczYzk3YTk3YTNmMTA4ZjU1ZDdkLi5iZGJjNTcxNzQ4MzRi
MjBiODBjZDMxZmQyZWJlOWUyNWFjMzRjNjA3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9j
c3MvTWVkaWFMaXN0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvTWVkaWFMaXN0LmNwcApA
QCAtMjcsNiArMjcsNyBAQAogI2luY2x1ZGUgIk1lZGlhUXVlcnkuaCIKICNpbmNsdWRlICJNZWRp
YVF1ZXJ5RXhwLmgiCiAjaW5jbHVkZSAiV2ViQ29yZU1lbW9yeUluc3RydW1lbnRhdGlvbi5oIgor
I2luY2x1ZGUgPHd0Zi9NZW1vcnlJbnN0cnVtZW50YXRpb25WZWN0b3IuaD4KICNpbmNsdWRlIDx3
dGYvdGV4dC9TdHJpbmdCdWlsZGVyLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKQEAgLTIxNSw3
ICsyMTYsNyBAQCBTdHJpbmcgTWVkaWFRdWVyeVNldDo6bWVkaWFUZXh0KCkgY29uc3QKIHZvaWQg
TWVkaWFRdWVyeVNldDo6cmVwb3J0TWVtb3J5VXNhZ2UoTWVtb3J5T2JqZWN0SW5mbyogbWVtb3J5
T2JqZWN0SW5mbykgY29uc3QKIHsKICAgICBNZW1vcnlDbGFzc0luZm8gaW5mbyhtZW1vcnlPYmpl
Y3RJbmZvLCB0aGlzLCBXZWJDb3JlTWVtb3J5VHlwZXM6OkNTUyk7Ci0gICAgaW5mby5hZGRJbnN0
cnVtZW50ZWRWZWN0b3IobV9xdWVyaWVzKTsKKyAgICBpbmZvLmFkZE1lbWJlcihtX3F1ZXJpZXMp
OwogfQogICAgIAogTWVkaWFMaXN0OjpNZWRpYUxpc3QoTWVkaWFRdWVyeVNldCogbWVkaWFRdWVy
aWVzLCBDU1NTdHlsZVNoZWV0KiBwYXJlbnRTaGVldCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2Nzcy9NZWRpYVF1ZXJ5LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9NZWRpYVF1ZXJ5LmNw
cAppbmRleCBhM2YyNWQ3MTJkNWIxMDM0MDI3MWJjMjAwMjViOTY2NzMxNDYyZDY0Li5mYzQ1NTFm
ZmIxODM3OTllMzQwMjhhMjViMmJmZTczODQzNTMyYjJiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9jc3MvTWVkaWFRdWVyeS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL01lZGlhUXVl
cnkuY3BwCkBAIC0zMSw2ICszMSw3IEBACiAKICNpbmNsdWRlICJNZWRpYVF1ZXJ5RXhwLmgiCiAj
aW5jbHVkZSAiV2ViQ29yZU1lbW9yeUluc3RydW1lbnRhdGlvbi5oIgorI2luY2x1ZGUgPHd0Zi9N
ZW1vcnlJbnN0cnVtZW50YXRpb25WZWN0b3IuaD4KICNpbmNsdWRlIDx3dGYvTm9uQ29weWluZ1Nv
cnQuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9TdHJpbmdCdWlsZGVyLmg+CiAKQEAgLTEzOCw3ICsx
MzksNyBAQCB2b2lkIE1lZGlhUXVlcnk6OnJlcG9ydE1lbW9yeVVzYWdlKE1lbW9yeU9iamVjdElu
Zm8qIG1lbW9yeU9iamVjdEluZm8pIGNvbnN0CiB7CiAgICAgTWVtb3J5Q2xhc3NJbmZvIGluZm8o
bWVtb3J5T2JqZWN0SW5mbywgdGhpcywgV2ViQ29yZU1lbW9yeVR5cGVzOjpDU1MpOwogICAgIGlu
Zm8uYWRkTWVtYmVyKG1fbWVkaWFUeXBlKTsKLSAgICBpbmZvLmFkZEluc3RydW1lbnRlZFZlY3Rv
clB0cihtX2V4cHJlc3Npb25zKTsKKyAgICBpbmZvLmFkZE1lbWJlcihtX2V4cHJlc3Npb25zKTsK
ICAgICBpbmZvLmFkZE1lbWJlcihtX3NlcmlhbGl6YXRpb25DYWNoZSk7CiB9CiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9TdHlsZVJlc29sdmVyLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2Nzcy9TdHlsZVJlc29sdmVyLmNwcAppbmRleCA1MTdiZGI2YjJlMGY2YTA3MmI2YzkwMTlkY2Fi
MTg4ZDFkY2RlZTk1Li5mZDM0OWY2MGZhYTY2NTA2YTA4NGI5NDExNTliNTMyMzI2ZDg0OGM5IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVSZXNvbHZlci5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvY3NzL1N0eWxlUmVzb2x2ZXIuY3BwCkBAIC0xMjUsNiArMTI1LDcgQEAKICNp
bmNsdWRlICJXZWJLaXRDU1NUcmFuc2Zvcm1WYWx1ZS5oIgogI2luY2x1ZGUgIldlYktpdEZvbnRG
YW1pbHlOYW1lcy5oIgogI2luY2x1ZGUgIlhNTE5hbWVzLmgiCisjaW5jbHVkZSA8d3RmL01lbW9y
eUluc3RydW1lbnRhdGlvblZlY3Rvci5oPgogI2luY2x1ZGUgPHd0Zi9TdGRMaWJFeHRyYXMuaD4K
ICNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+CiAKQEAgLTI1NjYsNyArMjU2Nyw3IEBAIHN0YXRpYyB2
b2lkIHJlcG9ydEF0b21SdWxlTWFwKE1lbW9yeUNsYXNzSW5mbyogaW5mbywgY29uc3QgUnVsZVNl
dDo6QXRvbVJ1bGVNYXAmCiB7CiAgICAgaW5mby0+YWRkSGFzaE1hcChhdG9taWNSdWxlTWFwKTsK
ICAgICBmb3IgKFJ1bGVTZXQ6OkF0b21SdWxlTWFwOjpjb25zdF9pdGVyYXRvciBpdCA9IGF0b21p
Y1J1bGVNYXAuYmVnaW4oKTsgaXQgIT0gYXRvbWljUnVsZU1hcC5lbmQoKTsgKytpdCkKLSAgICAg
ICAgaW5mby0+YWRkSW5zdHJ1bWVudGVkVmVjdG9yKCppdC0+c2Vjb25kKTsKKyAgICAgICAgaW5m
by0+YWRkTWVtYmVyKCppdC0+c2Vjb25kKTsKIH0KIAogdm9pZCBSdWxlU2V0OjpyZXBvcnRNZW1v
cnlVc2FnZShNZW1vcnlPYmplY3RJbmZvKiBtZW1vcnlPYmplY3RJbmZvKSBjb25zdApAQCAtMjU3
NiwxMSArMjU3NywxMSBAQCB2b2lkIFJ1bGVTZXQ6OnJlcG9ydE1lbW9yeVVzYWdlKE1lbW9yeU9i
amVjdEluZm8qIG1lbW9yeU9iamVjdEluZm8pIGNvbnN0CiAgICAgcmVwb3J0QXRvbVJ1bGVNYXAo
JmluZm8sIG1fY2xhc3NSdWxlcyk7CiAgICAgcmVwb3J0QXRvbVJ1bGVNYXAoJmluZm8sIG1fdGFn
UnVsZXMpOwogICAgIHJlcG9ydEF0b21SdWxlTWFwKCZpbmZvLCBtX3NoYWRvd1BzZXVkb0VsZW1l
bnRSdWxlcyk7Ci0gICAgaW5mby5hZGRJbnN0cnVtZW50ZWRWZWN0b3IobV9saW5rUHNldWRvQ2xh
c3NSdWxlcyk7Ci0gICAgaW5mby5hZGRJbnN0cnVtZW50ZWRWZWN0b3IobV9mb2N1c1BzZXVkb0Ns
YXNzUnVsZXMpOwotICAgIGluZm8uYWRkSW5zdHJ1bWVudGVkVmVjdG9yKG1fdW5pdmVyc2FsUnVs
ZXMpOworICAgIGluZm8uYWRkTWVtYmVyKG1fbGlua1BzZXVkb0NsYXNzUnVsZXMpOworICAgIGlu
Zm8uYWRkTWVtYmVyKG1fZm9jdXNQc2V1ZG9DbGFzc1J1bGVzKTsKKyAgICBpbmZvLmFkZE1lbWJl
cihtX3VuaXZlcnNhbFJ1bGVzKTsKICAgICBpbmZvLmFkZFZlY3RvcihtX3BhZ2VSdWxlcyk7Ci0g
ICAgaW5mby5hZGRJbnN0cnVtZW50ZWRWZWN0b3IobV9yZWdpb25TZWxlY3RvcnNBbmRSdWxlU2V0
cyk7CisgICAgaW5mby5hZGRNZW1iZXIobV9yZWdpb25TZWxlY3RvcnNBbmRSdWxlU2V0cyk7CiB9
CiAKIHZvaWQgUnVsZVNldDo6UnVsZVNldFNlbGVjdG9yUGFpcjo6cmVwb3J0TWVtb3J5VXNhZ2Uo
TWVtb3J5T2JqZWN0SW5mbyogbWVtb3J5T2JqZWN0SW5mbykgY29uc3QKQEAgLTU3NjUsNyArNTc2
Niw3IEBAIHZvaWQgU3R5bGVSZXNvbHZlcjo6TWF0Y2hlZFByb3BlcnRpZXM6OnJlcG9ydE1lbW9y
eVVzYWdlKE1lbW9yeU9iamVjdEluZm8qIG1lbW9yCiB2b2lkIFN0eWxlUmVzb2x2ZXI6Ok1hdGNo
ZWRQcm9wZXJ0aWVzQ2FjaGVJdGVtOjpyZXBvcnRNZW1vcnlVc2FnZShNZW1vcnlPYmplY3RJbmZv
KiBtZW1vcnlPYmplY3RJbmZvKSBjb25zdAogewogICAgIE1lbW9yeUNsYXNzSW5mbyBpbmZvKG1l
bW9yeU9iamVjdEluZm8sIHRoaXMsIFdlYkNvcmVNZW1vcnlUeXBlczo6Q1NTKTsKLSAgICBpbmZv
LmFkZEluc3RydW1lbnRlZFZlY3RvcihtYXRjaGVkUHJvcGVydGllcyk7CisgICAgaW5mby5hZGRN
ZW1iZXIobWF0Y2hlZFByb3BlcnRpZXMpOwogfQogCiB2b2lkIE1lZGlhUXVlcnlSZXN1bHQ6OnJl
cG9ydE1lbW9yeVVzYWdlKE1lbW9yeU9iamVjdEluZm8qIG1lbW9yeU9iamVjdEluZm8pIGNvbnN0
CkBAIC01NzkxLDcgKzU3OTIsNyBAQCB2b2lkIFN0eWxlUmVzb2x2ZXI6OnJlcG9ydE1lbW9yeVVz
YWdlKE1lbW9yeU9iamVjdEluZm8qIG1lbW9yeU9iamVjdEluZm8pIGNvbnN0CiAgICAgaW5mby5h
ZGRIYXNoTWFwKG1fcGVuZGluZ0ltYWdlUHJvcGVydGllcyk7CiAgICAgaW5mby5hZGRJbnN0cnVt
ZW50ZWRNYXBWYWx1ZXMobV9wZW5kaW5nSW1hZ2VQcm9wZXJ0aWVzKTsKICAgICBpbmZvLmFkZE1l
bWJlcihtX2xpbmVIZWlnaHRWYWx1ZSk7Ci0gICAgaW5mby5hZGRJbnN0cnVtZW50ZWRWZWN0b3Io
bV92aWV3cG9ydERlcGVuZGVudE1lZGlhUXVlcnlSZXN1bHRzKTsKKyAgICBpbmZvLmFkZE1lbWJl
cihtX3ZpZXdwb3J0RGVwZW5kZW50TWVkaWFRdWVyeVJlc3VsdHMpOwogICAgIGluZm8uYWRkSGFz
aE1hcChtX3N0eWxlUnVsZVRvQ1NTT01XcmFwcGVyTWFwKTsKICAgICBpbmZvLmFkZEluc3RydW1l
bnRlZE1hcEVudHJpZXMobV9zdHlsZVJ1bGVUb0NTU09NV3JhcHBlck1hcCk7CiAgICAgaW5mby5h
ZGRJbnN0cnVtZW50ZWRIYXNoU2V0KG1fc3R5bGVTaGVldENTU09NV3JhcHBlclNldCk7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVSdWxlLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2Nzcy9TdHlsZVJ1bGUuY3BwCmluZGV4IDU5ZWQ5ZTU4ZjBhN2Y3YzkwY2ZmMzJiM2ZiNWI0ODhj
ZmJjOGExYjQuLjE0NzM0ZDA4ODkwN2RmMTUxOTgxZmFjMjQ5ZjYyNTQ2YjM0YzQ3YzkgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9TdHlsZVJ1bGUuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2Nzcy9TdHlsZVJ1bGUuY3BwCkBAIC0zMyw2ICszMyw3IEBACiAjaW5jbHVkZSAiV2ViS2l0
Q1NTS2V5ZnJhbWVSdWxlLmgiCiAjaW5jbHVkZSAiV2ViS2l0Q1NTS2V5ZnJhbWVzUnVsZS5oIgog
I2luY2x1ZGUgIldlYktpdENTU1JlZ2lvblJ1bGUuaCIKKyNpbmNsdWRlIDx3dGYvTWVtb3J5SW5z
dHJ1bWVudGF0aW9uVmVjdG9yLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIApAQCAtMzM3LDcg
KzMzOCw3IEBAIHZvaWQgU3R5bGVSdWxlQmxvY2s6OndyYXBwZXJSZW1vdmVSdWxlKHVuc2lnbmVk
IGluZGV4KQogdm9pZCBTdHlsZVJ1bGVCbG9jazo6cmVwb3J0RGVzY2VuZGFudE1lbW9yeVVzYWdl
KE1lbW9yeU9iamVjdEluZm8qIG1lbW9yeU9iamVjdEluZm8pIGNvbnN0CiB7CiAgICAgTWVtb3J5
Q2xhc3NJbmZvIGluZm8obWVtb3J5T2JqZWN0SW5mbywgdGhpcywgV2ViQ29yZU1lbW9yeVR5cGVz
OjpDU1MpOwotICAgIGluZm8uYWRkSW5zdHJ1bWVudGVkVmVjdG9yKG1fY2hpbGRSdWxlcyk7Cisg
ICAgaW5mby5hZGRNZW1iZXIobV9jaGlsZFJ1bGVzKTsKIH0KIAogU3R5bGVSdWxlTWVkaWE6OlN0
eWxlUnVsZU1lZGlhKFBhc3NSZWZQdHI8TWVkaWFRdWVyeVNldD4gbWVkaWEsIFZlY3RvcjxSZWZQ
dHI8U3R5bGVSdWxlQmFzZT4gPiYgYWRvcHRSdWxlcykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2Nzcy9TdHlsZVNoZWV0Q29udGVudHMuY3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL1N0eWxl
U2hlZXRDb250ZW50cy5jcHAKaW5kZXggMDQ4MjczYmVjMTc4M2RiMjUyNzdiMjJlMmVmNDNkYzY4
OTYxN2FkZC4uNWRlOGE2MWE1MTQ3ODQ0YjFkOTNiZDU4NjIyYmVlNTI5ZjE1NjkyMCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL1N0eWxlU2hlZXRDb250ZW50cy5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvY3NzL1N0eWxlU2hlZXRDb250ZW50cy5jcHAKQEAgLTMzLDYgKzMzLDcgQEAK
ICNpbmNsdWRlICJTdHlsZVJ1bGVJbXBvcnQuaCIKICNpbmNsdWRlICJXZWJDb3JlTWVtb3J5SW5z
dHJ1bWVudGF0aW9uLmgiCiAjaW5jbHVkZSA8d3RmL0RlcXVlLmg+CisjaW5jbHVkZSA8d3RmL01l
bW9yeUluc3RydW1lbnRhdGlvblZlY3Rvci5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKQEAg
LTQ5MCw3ICs0OTEsNyBAQCB2b2lkIFN0eWxlU2hlZXRDb250ZW50czo6cmVwb3J0TWVtb3J5VXNh
Z2UoTWVtb3J5T2JqZWN0SW5mbyogbWVtb3J5T2JqZWN0SW5mbykgYwogICAgIGluZm8uYWRkTWVt
YmVyKG1fb3JpZ2luYWxVUkwpOwogICAgIGluZm8uYWRkTWVtYmVyKG1fZW5jb2RpbmdGcm9tQ2hh
cnNldFJ1bGUpOwogICAgIGluZm8uYWRkVmVjdG9yKG1faW1wb3J0UnVsZXMpOwotICAgIGluZm8u
YWRkSW5zdHJ1bWVudGVkVmVjdG9yKG1fY2hpbGRSdWxlcyk7CisgICAgaW5mby5hZGRNZW1iZXIo
bV9jaGlsZFJ1bGVzKTsKICAgICBpbmZvLmFkZEhhc2hNYXAobV9uYW1lc3BhY2VzKTsKICAgICBp
bmZvLmFkZFZlY3RvcihtX2NsaWVudHMpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
Y3NzL1dlYktpdENTU0tleWZyYW1lc1J1bGUuY3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL1dlYktp
dENTU0tleWZyYW1lc1J1bGUuY3BwCmluZGV4IGEyOTkxYTgxOGY1MGZmZjRkNWI0ZTA5YmQ0MzI5
YjhhMzFiODUwMWUuLjA4ZmJiMGE1NTg1ZDdiNmY4NmJiOTUyOGU3OTE3ZDg2OTQ3NTRlNjYgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9XZWJLaXRDU1NLZXlmcmFtZXNSdWxlLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvV2ViS2l0Q1NTS2V5ZnJhbWVzUnVsZS5jcHAKQEAgLTMz
LDYgKzMzLDcgQEAKICNpbmNsdWRlICJTdHlsZVNoZWV0LmgiCiAjaW5jbHVkZSAiV2ViQ29yZU1l
bW9yeUluc3RydW1lbnRhdGlvbi5oIgogI2luY2x1ZGUgIldlYktpdENTU0tleWZyYW1lUnVsZS5o
IgorI2luY2x1ZGUgPHd0Zi9NZW1vcnlJbnN0cnVtZW50YXRpb25WZWN0b3IuaD4KICNpbmNsdWRl
IDx3dGYvdGV4dC9TdHJpbmdCdWlsZGVyLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKQEAgLTkw
LDcgKzkxLDcgQEAgaW50IFN0eWxlUnVsZUtleWZyYW1lczo6ZmluZEtleWZyYW1lSW5kZXgoY29u
c3QgU3RyaW5nJiBrZXkpIGNvbnN0CiB2b2lkIFN0eWxlUnVsZUtleWZyYW1lczo6cmVwb3J0RGVz
Y2VuZGFudE1lbW9yeVVzYWdlKE1lbW9yeU9iamVjdEluZm8qIG1lbW9yeU9iamVjdEluZm8pIGNv
bnN0CiB7CiAgICAgTWVtb3J5Q2xhc3NJbmZvIGluZm8obWVtb3J5T2JqZWN0SW5mbywgdGhpcywg
V2ViQ29yZU1lbW9yeVR5cGVzOjpDU1MpOwotICAgIGluZm8uYWRkSW5zdHJ1bWVudGVkVmVjdG9y
KG1fa2V5ZnJhbWVzKTsKKyAgICBpbmZvLmFkZE1lbWJlcihtX2tleWZyYW1lcyk7CiAgICAgaW5m
by5hZGRNZW1iZXIobV9uYW1lKTsKIH0KIApAQCAtMjExLDcgKzIxMiw3IEBAIHZvaWQgV2ViS2l0
Q1NTS2V5ZnJhbWVzUnVsZTo6cmVwb3J0RGVzY2VuZGFudE1lbW9yeVVzYWdlKE1lbW9yeU9iamVj
dEluZm8qIG1lbW9yCiAgICAgTWVtb3J5Q2xhc3NJbmZvIGluZm8obWVtb3J5T2JqZWN0SW5mbywg
dGhpcywgV2ViQ29yZU1lbW9yeVR5cGVzOjpDU1MpOwogICAgIENTU1J1bGU6OnJlcG9ydEJhc2VD
bGFzc01lbW9yeVVzYWdlKG1lbW9yeU9iamVjdEluZm8pOwogICAgIGluZm8uYWRkTWVtYmVyKG1f
a2V5ZnJhbWVzUnVsZSk7Ci0gICAgaW5mby5hZGRJbnN0cnVtZW50ZWRWZWN0b3IobV9jaGlsZFJ1
bGVDU1NPTVdyYXBwZXJzKTsKKyAgICBpbmZvLmFkZE1lbWJlcihtX2NoaWxkUnVsZUNTU09NV3Jh
cHBlcnMpOwogICAgIGluZm8uYWRkTWVtYmVyKG1fcnVsZUxpc3RDU1NPTVdyYXBwZXIpOwogfQog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvV2ViS2l0Q1NTUmVnaW9uUnVsZS5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9jc3MvV2ViS2l0Q1NTUmVnaW9uUnVsZS5jcHAKaW5kZXggNWMyYzcy
MWNkNjg1NGFkMzkyMWFjNTYzOTE4NWY2YTk2ODkxM2MzMS4uY2UxMjA3Y2FiZGY5YmY4NTYwNTll
ODZkNmIyMGYxZmIyMjg0M2RlMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL1dlYktp
dENTU1JlZ2lvblJ1bGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9XZWJLaXRDU1NSZWdp
b25SdWxlLmNwcApAQCAtMzQsNiArMzQsNyBAQAogI2luY2x1ZGUgIkNTU1BhcnNlci5oIgogI2lu
Y2x1ZGUgIkNTU1J1bGVMaXN0LmgiCiAjaW5jbHVkZSAiU3R5bGVSdWxlLmgiCisjaW5jbHVkZSA8
d3RmL01lbW9yeUluc3RydW1lbnRhdGlvblZlY3Rvci5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L1N0
cmluZ0J1aWxkZXIuaD4KIAogI2lmIEVOQUJMRShDU1NfUkVHSU9OUykKQEAgLTExMyw3ICsxMTQs
NyBAQCB2b2lkIFdlYktpdENTU1JlZ2lvblJ1bGU6OnJlcG9ydERlc2NlbmRhbnRNZW1vcnlVc2Fn
ZShNZW1vcnlPYmplY3RJbmZvKiBtZW1vcnlPYgogICAgIE1lbW9yeUNsYXNzSW5mbyBpbmZvKG1l
bW9yeU9iamVjdEluZm8sIHRoaXMsIFdlYkNvcmVNZW1vcnlUeXBlczo6Q1NTKTsKICAgICBDU1NS
dWxlOjpyZXBvcnRCYXNlQ2xhc3NNZW1vcnlVc2FnZShtZW1vcnlPYmplY3RJbmZvKTsKICAgICBp
bmZvLmFkZE1lbWJlcihtX3JlZ2lvblJ1bGUpOwotICAgIGluZm8uYWRkSW5zdHJ1bWVudGVkVmVj
dG9yKG1fY2hpbGRSdWxlQ1NTT01XcmFwcGVycyk7CisgICAgaW5mby5hZGRNZW1iZXIobV9jaGls
ZFJ1bGVDU1NPTVdyYXBwZXJzKTsKICAgICBpbmZvLmFkZE1lbWJlcihtX3J1bGVMaXN0Q1NTT01X
cmFwcGVyKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNw
cCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKaW5kZXggYWI0OGNhMzgyYmIyNTli
NzY5ZmU3YTM1ZmQyYzQzNjU0MTNmN2QxZS4uMjk4MDYwMjM4ZDUxOWI5ZTI4MTc2Nzg5MmU2Yjc1
OGIyMWEyOTI5YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCkBAIC0xNzIsNiArMTcyLDcgQEAK
ICNpbmNsdWRlIDx3dGYvQ3VycmVudFRpbWUuaD4KICNpbmNsdWRlIDx3dGYvSGFzaEZ1bmN0aW9u
cy5oPgogI2luY2x1ZGUgPHd0Zi9NYWluVGhyZWFkLmg+CisjaW5jbHVkZSA8d3RmL01lbW9yeUlu
c3RydW1lbnRhdGlvblZlY3Rvci5oPgogI2luY2x1ZGUgPHd0Zi9QYXNzUmVmUHRyLmg+CiAjaW5j
bHVkZSA8d3RmL1N0ZExpYkV4dHJhcy5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L1N0cmluZ0J1ZmZl
ci5oPgpAQCAtNjI2NCwxMCArNjI2NSw4IEBAIHZvaWQgRG9jdW1lbnQ6OnJlcG9ydE1lbW9yeVVz
YWdlKE1lbW9yeU9iamVjdEluZm8qIG1lbW9yeU9iamVjdEluZm8pIGNvbnN0CiAgICAgaW5mby5h
ZGRNZW1iZXIobV9jYWNoZWRSZXNvdXJjZUxvYWRlcik7CiAgICAgaW5mby5hZGRNZW1iZXIobV9l
bGVtU2hlZXQpOwogICAgIGluZm8uYWRkTWVtYmVyKG1fcGFnZVVzZXJTaGVldCk7Ci0gICAgaWYg
KG1fcGFnZUdyb3VwVXNlclNoZWV0cykKLSAgICAgICAgaW5mby5hZGRJbnN0cnVtZW50ZWRWZWN0
b3JQdHIobV9wYWdlR3JvdXBVc2VyU2hlZXRzKTsKLSAgICBpZiAobV91c2VyU2hlZXRzKQotICAg
ICAgICBpbmZvLmFkZEluc3RydW1lbnRlZFZlY3RvclB0cihtX3VzZXJTaGVldHMpOworICAgIGlu
Zm8uYWRkTWVtYmVyKG1fcGFnZUdyb3VwVXNlclNoZWV0cyk7CisgICAgaW5mby5hZGRNZW1iZXIo
bV91c2VyU2hlZXRzKTsKICAgICBpbmZvLmFkZEhhc2hTZXQobV9ub2RlSXRlcmF0b3JzKTsKICAg
ICBpbmZvLmFkZEhhc2hTZXQobV9yYW5nZXMpOwogICAgIGluZm8uYWRkTGlzdEhhc2hTZXQobV9z
dHlsZVNoZWV0Q2FuZGlkYXRlTm9kZXMpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9h
ZGVyL0RvY3VtZW50TG9hZGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Eb2N1bWVudExv
YWRlci5jcHAKaW5kZXggODM2ODA0MWNmODBhM2Q2NDE1MWE5YjBiMGNhNTYyMzZlNGM0NDg5Mi4u
NmE1ZjdjMTNjNzczMTRkZWI3NTAxYjhmMDljYWRlZDg3YTY0OTBmNyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvbG9hZGVyL0RvY3VtZW50TG9hZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9sb2FkZXIvRG9jdW1lbnRMb2FkZXIuY3BwCkBAIC01Myw2ICs1Myw3IEBACiAjaW5jbHVkZSAi
VGV4dFJlc291cmNlRGVjb2Rlci5oIgogI2luY2x1ZGUgIldlYkNvcmVNZW1vcnlJbnN0cnVtZW50
YXRpb24uaCIKICNpbmNsdWRlIDx3dGYvQXNzZXJ0aW9ucy5oPgorI2luY2x1ZGUgPHd0Zi9NZW1v
cnlJbnN0cnVtZW50YXRpb25WZWN0b3IuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9DU3RyaW5nLmg+
CiAjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CiAjaW5jbHVkZSA8d3RmL3VuaWNvZGUv
VW5pY29kZS5oPgpAQCAtMzc0LDcgKzM3NSw3IEBAIHZvaWQgRG9jdW1lbnRMb2FkZXI6OnJlcG9y
dE1lbW9yeVVzYWdlKE1lbW9yeU9iamVjdEluZm8qIG1lbW9yeU9iamVjdEluZm8pIGNvbnN0CiAg
ICAgaW5mby5hZGRNZW1iZXIobV9yZXF1ZXN0KTsKICAgICBpbmZvLmFkZE1lbWJlcihtX3Jlc3Bv
bnNlKTsKICAgICBpbmZvLmFkZE1lbWJlcihtX2xhc3RDaGVja2VkUmVxdWVzdCk7Ci0gICAgaW5m
by5hZGRJbnN0cnVtZW50ZWRWZWN0b3IobV9yZXNwb25zZXMpOworICAgIGluZm8uYWRkTWVtYmVy
KG1fcmVzcG9uc2VzKTsKICAgICBpbmZvLmFkZEhhc2hNYXAobV9wZW5kaW5nU3Vic3RpdHV0ZVJl
c291cmNlcyk7CiAgICAgaW5mby5hZGRJbnN0cnVtZW50ZWRIYXNoU2V0KG1fcmVzb3VyY2VzQ2xp
ZW50S25vd3NBYm91dCk7CiAgICAgaW5mby5hZGRWZWN0b3IobV9yZXNvdXJjZXNMb2FkZWRGcm9t
TWVtb3J5Q2FjaGVGb3JDbGllbnROb3RpZmljYXRpb24pOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vbmV0d29yay9SZXNvdXJjZVJlcXVlc3RCYXNlLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvUmVzb3VyY2VSZXF1ZXN0QmFzZS5jcHAKaW5kZXggMDBm
NTgzOTA1NTk0NzFlYjdlNGY2M2Q1YWRjYWFmNmVhYWVkNWI2Yy4uMzAzZGVhYTljYmRhNzZhZmJm
YzZjNTYyMmMwNTQ3NDE0OTkwZmM0NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbmV0d29yay9SZXNvdXJjZVJlcXVlc3RCYXNlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9uZXR3b3JrL1Jlc291cmNlUmVxdWVzdEJhc2UuY3BwCkBAIC0yOCw2ICsyOCw3IEBA
CiAKICNpbmNsdWRlICJQbGF0Zm9ybU1lbW9yeUluc3RydW1lbnRhdGlvbi5oIgogI2luY2x1ZGUg
IlJlc291cmNlUmVxdWVzdC5oIgorI2luY2x1ZGUgPHd0Zi9NZW1vcnlJbnN0cnVtZW50YXRpb25W
ZWN0b3IuaD4KIAogdXNpbmcgbmFtZXNwYWNlIHN0ZDsKIApAQCAtNDUyLDcgKzQ1Myw3IEBAIHZv
aWQgUmVzb3VyY2VSZXF1ZXN0QmFzZTo6cmVwb3J0TWVtb3J5VXNhZ2UoTWVtb3J5T2JqZWN0SW5m
byogbWVtb3J5T2JqZWN0SW5mbykKICAgICBpbmZvLmFkZE1lbWJlcihtX2h0dHBNZXRob2QpOwog
ICAgIGluZm8uYWRkSGFzaE1hcChtX2h0dHBIZWFkZXJGaWVsZHMpOwogICAgIGluZm8uYWRkSW5z
dHJ1bWVudGVkTWFwRW50cmllcyhtX2h0dHBIZWFkZXJGaWVsZHMpOwotICAgIGluZm8uYWRkSW5z
dHJ1bWVudGVkVmVjdG9yKG1fcmVzcG9uc2VDb250ZW50RGlzcG9zaXRpb25FbmNvZGluZ0ZhbGxi
YWNrQXJyYXkpOworICAgIGluZm8uYWRkTWVtYmVyKG1fcmVzcG9uc2VDb250ZW50RGlzcG9zaXRp
b25FbmNvZGluZ0ZhbGxiYWNrQXJyYXkpOwogICAgIGluZm8uYWRkTWVtYmVyKG1faHR0cEJvZHkp
OwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rlc3RzL01lbW9yeUlu
c3RydW1lbnRhdGlvblRlc3QuY3BwIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0cy9NZW1v
cnlJbnN0cnVtZW50YXRpb25UZXN0LmNwcAppbmRleCA0YWNmNDk2YWQ4N2QyZDgzYTk4N2Q3OTQ2
ZjUzNzZlYTc1NmE0MmYwLi41YmJkZTY1MmQ4YTQ5NjBmOGNmZjMwYzJkNTI0Zjg4NTQ4MWJjMGFi
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rlc3RzL01lbW9yeUluc3RydW1l
bnRhdGlvblRlc3QuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMvTWVtb3J5
SW5zdHJ1bWVudGF0aW9uVGVzdC5jcHAKQEAgLTM3LDYgKzM3LDcgQEAKICNpbmNsdWRlIDxndGVz
dC9ndGVzdC5oPgogCiAjaW5jbHVkZSA8d3RmL0hhc2hTZXQuaD4KKyNpbmNsdWRlIDx3dGYvTWVt
b3J5SW5zdHJ1bWVudGF0aW9uVmVjdG9yLmg+CiAjaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4K
ICNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvQXRvbWljU3RyaW5n
Lmg+CkBAIC0yMzUsNiArMjM2LDcgQEAgY2xhc3MgSW5zdHJ1bWVudGVkT3duZXIgewogcHVibGlj
OgogICAgIHRlbXBsYXRlPHR5cGVuYW1lIFY+CiAgICAgSW5zdHJ1bWVudGVkT3duZXIoY29uc3Qg
ViYgdmFsdWUpIDogbV92YWx1ZSh2YWx1ZSkgeyB9CisgICAgSW5zdHJ1bWVudGVkT3duZXIoKSB7
IH0KICAgICB2b2lkIHJlcG9ydE1lbW9yeVVzYWdlKE1lbW9yeU9iamVjdEluZm8qIG1lbW9yeU9i
amVjdEluZm8pIGNvbnN0CiAgICAgewogICAgICAgICBNZW1vcnlDbGFzc0luZm8gaW5mbyhtZW1v
cnlPYmplY3RJbmZvLCB0aGlzLCBXZWJDb3JlTWVtb3J5VHlwZXM6OkRPTSk7CkBAIC0zNjcsNSAr
MzY5LDc1IEBAIFRFU1QoTWVtb3J5SW5zdHJ1bWVudGF0aW9uVGVzdCwgZGV0ZWN0UmVwb3J0TWVt
b3J5VXNhZ2VNZXRob2QpCiAgICAgfQogfQogCitURVNUKE1lbW9yeUluc3RydW1lbnRhdGlvblRl
c3QsIHZlY3Rvclplcm9JbmxpbmVDYXBhY2l0eSkKK3sKKyAgICBWaXNpdGVkT2JqZWN0cyB2aXNp
dGVkT2JqZWN0czsKKyAgICBNZW1vcnlJbnN0cnVtZW50YXRpb25JbXBsIGltcGwodmlzaXRlZE9i
amVjdHMpOworICAgIEluc3RydW1lbnRlZE93bmVyPFZlY3RvcjxpbnQ+ID4gdmVjdG9yT3duZXIo
MTYpOworICAgIGltcGwuYWRkUm9vdE9iamVjdCh2ZWN0b3JPd25lcik7CisgICAgRVhQRUNUX0VR
KDE2ICogc2l6ZW9mKGludCksIGltcGwucmVwb3J0ZWRTaXplRm9yQWxsVHlwZXMoKSk7CisgICAg
RVhQRUNUX0VRKDEsIHZpc2l0ZWRPYmplY3RzLnNpemUoKSk7Cit9CisKK1RFU1QoTWVtb3J5SW5z
dHJ1bWVudGF0aW9uVGVzdCwgdmVjdG9yRmllbGRXaXRoSW5saW5lQ2FwYWNpdHkpCit7CisgICAg
VmlzaXRlZE9iamVjdHMgdmlzaXRlZE9iamVjdHM7CisgICAgTWVtb3J5SW5zdHJ1bWVudGF0aW9u
SW1wbCBpbXBsKHZpc2l0ZWRPYmplY3RzKTsKKyAgICBJbnN0cnVtZW50ZWRPd25lcjxWZWN0b3I8
aW50LCA0PiA+IHZlY3Rvck93bmVyOworICAgIGltcGwuYWRkUm9vdE9iamVjdCh2ZWN0b3JPd25l
cik7CisgICAgRVhQRUNUX0VRKHN0YXRpY19jYXN0PHNpemVfdD4oMCksIGltcGwucmVwb3J0ZWRT
aXplRm9yQWxsVHlwZXMoKSk7CisgICAgRVhQRUNUX0VRKDAsIHZpc2l0ZWRPYmplY3RzLnNpemUo
KSk7Cit9CisKK1RFU1QoTWVtb3J5SW5zdHJ1bWVudGF0aW9uVGVzdCwgdmVjdG9yRmllbGRXaXRo
SW5saW5lQ2FwYWNpdHlSZXNpemVkKQoreworICAgIFZpc2l0ZWRPYmplY3RzIHZpc2l0ZWRPYmpl
Y3RzOworICAgIE1lbW9yeUluc3RydW1lbnRhdGlvbkltcGwgaW1wbCh2aXNpdGVkT2JqZWN0cyk7
CisgICAgSW5zdHJ1bWVudGVkT3duZXI8VmVjdG9yPGludCwgND4gPiB2ZWN0b3JPd25lcjsKKyAg
ICB2ZWN0b3JPd25lci5tX3ZhbHVlLnJlc2VydmVDYXBhY2l0eSg4KTsKKyAgICBpbXBsLmFkZFJv
b3RPYmplY3QodmVjdG9yT3duZXIpOworICAgIEVYUEVDVF9FUSg4ICogc2l6ZW9mKGludCksIGlt
cGwucmVwb3J0ZWRTaXplRm9yQWxsVHlwZXMoKSk7CisgICAgRVhQRUNUX0VRKDEsIHZpc2l0ZWRP
YmplY3RzLnNpemUoKSk7Cit9CisKK1RFU1QoTWVtb3J5SW5zdHJ1bWVudGF0aW9uVGVzdCwgaGVh
cEFsbG9jYXRlZFZlY3RvcldpdGhJbmxpbmVDYXBhY2l0eSkKK3sKKyAgICBWaXNpdGVkT2JqZWN0
cyB2aXNpdGVkT2JqZWN0czsKKyAgICBNZW1vcnlJbnN0cnVtZW50YXRpb25JbXBsIGltcGwodmlz
aXRlZE9iamVjdHMpOworICAgIEluc3RydW1lbnRlZE93bmVyPE93blB0cjxWZWN0b3I8aW50LCA0
PiA+ID4gdmVjdG9yT3duZXI7CisgICAgdmVjdG9yT3duZXIubV92YWx1ZSA9IGFkb3B0UHRyKG5l
dyBWZWN0b3I8aW50LCA0PigpKTsKKyAgICBpbXBsLmFkZFJvb3RPYmplY3QodmVjdG9yT3duZXIp
OworICAgIEVYUEVDVF9FUShzaXplb2YoVmVjdG9yPGludCwgND4pLCBpbXBsLnJlcG9ydGVkU2l6
ZUZvckFsbFR5cGVzKCkpOworICAgIEVYUEVDVF9FUSgxLCB2aXNpdGVkT2JqZWN0cy5zaXplKCkp
OworfQorCitURVNUKE1lbW9yeUluc3RydW1lbnRhdGlvblRlc3QsIGhlYXBBbGxvY2F0ZWRWZWN0
b3JXaXRoSW5saW5lQ2FwYWNpdHlSZXNpemVkKQoreworICAgIFZpc2l0ZWRPYmplY3RzIHZpc2l0
ZWRPYmplY3RzOworICAgIE1lbW9yeUluc3RydW1lbnRhdGlvbkltcGwgaW1wbCh2aXNpdGVkT2Jq
ZWN0cyk7CisgICAgSW5zdHJ1bWVudGVkT3duZXI8T3duUHRyPFZlY3RvcjxpbnQsIDQ+ID4gPiB2
ZWN0b3JPd25lcjsKKyAgICB2ZWN0b3JPd25lci5tX3ZhbHVlID0gYWRvcHRQdHIobmV3IFZlY3Rv
cjxpbnQsIDQ+KCkpOworICAgIHZlY3Rvck93bmVyLm1fdmFsdWUtPnJlc2VydmVDYXBhY2l0eSg4
KTsKKyAgICBpbXBsLmFkZFJvb3RPYmplY3QodmVjdG9yT3duZXIpOworICAgIEVYUEVDVF9FUSg4
ICogc2l6ZW9mKGludCkgKyBzaXplb2YoVmVjdG9yPGludCwgND4pLCBpbXBsLnJlcG9ydGVkU2l6
ZUZvckFsbFR5cGVzKCkpOworICAgIEVYUEVDVF9FUSgyLCB2aXNpdGVkT2JqZWN0cy5zaXplKCkp
OworfQorCitURVNUKE1lbW9yeUluc3RydW1lbnRhdGlvblRlc3QsIHZlY3RvcldpdGhJbnN0cnVt
ZW50ZWRUeXBlKQoreworICAgIFZpc2l0ZWRPYmplY3RzIHZpc2l0ZWRPYmplY3RzOworICAgIE1l
bW9yeUluc3RydW1lbnRhdGlvbkltcGwgaW1wbCh2aXNpdGVkT2JqZWN0cyk7CisKKyAgICB0eXBl
ZGVmIFZlY3RvcjxTdHJpbmc+IFZhbHVlVHlwZTsKKyAgICBPd25QdHI8VmFsdWVUeXBlPiB2YWx1
ZSA9IGFkb3B0UHRyKG5ldyBWYWx1ZVR5cGUoKSk7CisgICAgc2l6ZV90IGNvdW50ID0gMTA7Cisg
ICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBjb3VudDsgKytpKQorICAgICAgICB2YWx1ZS0+YXBw
ZW5kKFN0cmluZygic3RyaW5nIikpOworICAgIEluc3RydW1lbnRlZE93bmVyPFZhbHVlVHlwZSog
PiByb290KHZhbHVlLmdldCgpKTsKKyAgICBpbXBsLmFkZFJvb3RPYmplY3Qocm9vdCk7CisgICAg
RVhQRUNUX0VRKHNpemVvZihWYWx1ZVR5cGUpICsgc2l6ZW9mKFN0cmluZykgKiB2YWx1ZS0+Y2Fw
YWNpdHkoKSArIHNpemVvZihTdHJpbmdJbXBsKSAqIHZhbHVlLT5zaXplKCksIGltcGwucmVwb3J0
ZWRTaXplRm9yQWxsVHlwZXMoKSk7CisgICAgRVhQRUNUX0VRKGNvdW50ICsgMiwgKHNpemVfdCl2
aXNpdGVkT2JqZWN0cy5zaXplKCkpOworfQorCiB9IC8vIG5hbWVzcGFjZQogCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>164901</attachid>
            <date>2012-09-20 05:53:24 -0700</date>
            <delta_ts>2012-09-21 02:52:26 -0700</delta_ts>
            <desc>comments addressed</desc>
            <filename>bug-96650-20120920165248.patch</filename>
            <type>text/plain</type>
            <size>35369</size>
            <attacher name="Ilya Tikhonovsky">loislo</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTI5MTE4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IDdjMzJlOTIyNDYxOWI4ZDQwZThlYjc2
ZTk5YWMxZTdiMzg4MTZlNzguLjBkYzkyZDI1MDBlYWZjNGE5N2E2Zjg5MGRiYzEyY2UwMThmYjVk
ZDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMzAgQEAKKzIwMTItMDktMTkgIElseWEgVGlraG9ub3Zza3kgIDxs
b2lzbG9AY2hyb21pdW0ub3JnPgorCisgICAgICAgIFdlYiBJbnNwZWN0b3I6IGV4dHJhY3QgVmVj
dG9yIGluc3RydW1lbnRhdGlvbiBmcm9tIGNvcmUgTk1JIGNvZGUgaW50byBNZW1vcnlJbnN0cnVt
ZW50YXRpb25WZWN0b3IuaCBoZWFkZXIuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD05NjY1MAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgIEFkZGVkIHJlcG9ydE1lbW9yeVVzYWdlIGZyZWUgdGVtcGxhdGUgZnVu
Y3Rpb24gd2l0aCBkZWZhdWx0IGJvZHkgdG8gY29yZSBOTUkgY29kZQorICAgICAgICBhbmQgYWRk
IGN1c3RvbSB2ZXJzaW9uIG9mIHJlcG9ydE1lbW9yeVVzYWdlIGZ1bmN0aW9uIGZvciBWZWN0b3Jz
LgorCisgICAgICAgICogR05VbWFrZWZpbGUubGlzdC5hbToKKyAgICAgICAgKiBXVEYuZ3lwaToK
KyAgICAgICAgKiBXVEYucHJvOgorICAgICAgICAqIFdURi52Y3Byb2ovV1RGLnZjcHJvajoKKyAg
ICAgICAgKiBXVEYueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiB3dGYvTWVt
b3J5SW5zdHJ1bWVudGF0aW9uLmg6CisgICAgICAgIChXVEYpOgorICAgICAgICAoV1RGOjpNZW1v
cnlJbnN0cnVtZW50YXRpb246OnNlbGVjdEluc3RydW1lbnRhdGlvbk1ldGhvZCk6CisgICAgICAg
IChNZW1vcnlJbnN0cnVtZW50YXRpb24pOgorICAgICAgICAoV1RGOjpyZXBvcnRNZW1vcnlVc2Fn
ZSk6CisgICAgICAgIChXVEY6Ok1lbW9yeUluc3RydW1lbnRhdGlvbjo6YWRkT2JqZWN0SW1wbCk6
CisgICAgICAgIChXVEY6Ojo6cHJvY2Vzcyk6CisgICAgICAgICogd3RmL01lbW9yeUluc3RydW1l
bnRhdGlvblZlY3Rvci5oOiBBZGRlZC4KKyAgICAgICAgKFdURik6CisgICAgICAgIChXVEY6Omlu
c3RydW1lbnRWZWN0b3JWYWx1ZXMpOgorICAgICAgICAoV1RGOjpyZXBvcnRNZW1vcnlVc2FnZSk6
CisKIDIwMTItMDktMTkgIEdlb2ZmcmV5IEdhcmVuICA8Z2dhcmVuQGFwcGxlLmNvbT4KIAogICAg
ICAgICBPU1IgZXhpdCBzb21ldGltZXMgbmVnbGVjdHMgdG8gY3JlYXRlIHRoZSBhcmd1bWVudHMg
b2JqZWN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cKaW5kZXggMWQzYWE4ZjRiYmI2Zjc3YTc0MzdiMWM1ZTY2MWI5NzEzMTE5
Mzk4ZS4uMWE0Njg3M2VlMjQ0MDg1ZDg2NjMwMmNlYzk1Y2Y3YTUxOWExZDYzMSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxv
ZwpAQCAtMSwzICsxLDQ2IEBACisyMDEyLTA5LTE5ICBJbHlhIFRpa2hvbm92c2t5ICA8bG9pc2xv
QGNocm9taXVtLm9yZz4KKworICAgICAgICBXZWIgSW5zcGVjdG9yOiBleHRyYWN0IFZlY3RvciBp
bnN0cnVtZW50YXRpb24gZnJvbSBjb3JlIE5NSSBjb2RlIGludG8gTWVtb3J5SW5zdHJ1bWVudGF0
aW9uVmVjdG9yLmggaGVhZGVyLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9OTY2NTAKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICBhZGRJbnN0cnVtZW50ZWRWZWN0b3IgYW5kIGFkZEluc3RydW1lbnRlZFZlY3Rv
clB0ciB3ZXJlIHJlcGxhY2VkIHdpdGggYWRkTWVtYmVyLgorCisgICAgICAgICogY3NzL0NTU0dy
YWRpZW50VmFsdWUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q1NTR3JhZGllbnRWYWx1ZTo6cmVw
b3J0QmFzZUNsYXNzTWVtb3J5VXNhZ2UpOgorICAgICAgICAqIGNzcy9DU1NJbWFnZVNldFZhbHVl
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNTU0ltYWdlU2V0VmFsdWU6OnJlcG9ydERlc2NlbmRh
bnRNZW1vcnlVc2FnZSk6CisgICAgICAgICogY3NzL0NTU01lZGlhUnVsZS5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpDU1NNZWRpYVJ1bGU6OnJlcG9ydERlc2NlbmRhbnRNZW1vcnlVc2FnZSk6Cisg
ICAgICAgICogY3NzL0NTU1J1bGVMaXN0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlN0YXRpY0NT
U1J1bGVMaXN0OjpyZXBvcnRNZW1vcnlVc2FnZSk6CisgICAgICAgICogY3NzL0NTU1N0eWxlU2hl
ZXQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q1NTU3R5bGVTaGVldDo6cmVwb3J0TWVtb3J5VXNh
Z2UpOgorICAgICAgICAqIGNzcy9DU1NWYWx1ZUxpc3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
Q1NTVmFsdWVMaXN0OjpyZXBvcnREZXNjZW5kYW50TWVtb3J5VXNhZ2UpOgorICAgICAgICAqIGNz
cy9NZWRpYUxpc3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFRdWVyeVNldDo6cmVwb3J0
TWVtb3J5VXNhZ2UpOgorICAgICAgICAqIGNzcy9NZWRpYVF1ZXJ5LmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6Ok1lZGlhUXVlcnk6OnJlcG9ydE1lbW9yeVVzYWdlKToKKyAgICAgICAgKiBjc3MvU3R5
bGVSZXNvbHZlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTdHlsZVJlc29sdmVyOjpjb2xsZWN0
TWF0Y2hpbmdSdWxlc0Zvckxpc3QpOgorICAgICAgICAqIGNzcy9TdHlsZVJ1bGUuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6U3R5bGVSdWxlQmxvY2s6OnJlcG9ydERlc2NlbmRhbnRNZW1vcnlVc2Fn
ZSk6CisgICAgICAgICogY3NzL1N0eWxlU2hlZXRDb250ZW50cy5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpTdHlsZVNoZWV0Q29udGVudHM6OnJlcG9ydE1lbW9yeVVzYWdlKToKKyAgICAgICAgKiBj
c3MvV2ViS2l0Q1NTS2V5ZnJhbWVzUnVsZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTdHlsZVJ1
bGVLZXlmcmFtZXM6OnJlcG9ydERlc2NlbmRhbnRNZW1vcnlVc2FnZSk6CisgICAgICAgIChXZWJD
b3JlOjpXZWJLaXRDU1NLZXlmcmFtZXNSdWxlOjpyZXBvcnREZXNjZW5kYW50TWVtb3J5VXNhZ2Up
OgorICAgICAgICAqIGNzcy9XZWJLaXRDU1NSZWdpb25SdWxlLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OldlYktpdENTU1JlZ2lvblJ1bGU6OnJlcG9ydERlc2NlbmRhbnRNZW1vcnlVc2FnZSk6Cisg
ICAgICAgICogZG9tL0RvY3VtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50Ojpy
ZXBvcnRNZW1vcnlVc2FnZSk6CisgICAgICAgICogbG9hZGVyL0RvY3VtZW50TG9hZGVyLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50TG9hZGVyOjpyZXBvcnRNZW1vcnlVc2FnZSk6Cisg
ICAgICAgICogcGxhdGZvcm0vbmV0d29yay9SZXNvdXJjZVJlcXVlc3RCYXNlLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdEJhc2U6OnJlcG9ydE1lbW9yeVVzYWdlKToKKwog
MjAxMi0wOS0yMCAgT3R0byBEZXJlayBDaGV1bmcgIDxvdGNoZXVuZ0ByaW0uY29tPgogCiAgICAg
ICAgIFdlYiBJbnNwZWN0b3I6IENvb2tpZSBpbmZvIGluIE5ldHdvcmsgUmVzb3VyY2VzIENvb2tp
ZXMgdGFiIGFyZSBpbmNvcnJlY3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0v
Q2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKaW5kZXggMDhiNWNk
NWNmYWVhMzViODRmMDgwN2ZhYzdlZDZlYjc1MzI0N2IyOC4uN2QyMmQwNzYyYjFiNWQwZGVjZWMz
NzE4OTBhNjBjNjAwY2JjNGU0MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9D
aGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKQEAgLTEsMyAr
MSwxNyBAQAorMjAxMi0wOS0xOSAgSWx5YSBUaWtob25vdnNreSAgPGxvaXNsb0BjaHJvbWl1bS5v
cmc+CisKKyAgICAgICAgV2ViIEluc3BlY3RvcjogZXh0cmFjdCBWZWN0b3IgaW5zdHJ1bWVudGF0
aW9uIGZyb20gY29yZSBOTUkgY29kZSBpbnRvIE1lbW9yeUluc3RydW1lbnRhdGlvblZlY3Rvci5o
IGhlYWRlci4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTk2NjUwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
VGVzdCBmb3IgaW5zdHJ1bWVudGVkIHZlY3Rvci4KKworICAgICAgICAqIHRlc3RzL01lbW9yeUlu
c3RydW1lbnRhdGlvblRlc3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW5zdHJ1bWVudGVkT3du
ZXI6Okluc3RydW1lbnRlZE93bmVyKToKKyAgICAgICAgKFdlYkNvcmU6OlRFU1QpOgorICAgICAg
ICAoV2ViQ29yZSk6CisKIDIwMTItMDktMTkgIEFkYW0gQmFydGggIDxhYmFydGhAd2Via2l0Lm9y
Zz4KIAogICAgICAgICBSZW1vdmUgd2Via2l0UG9zdE1lc3NhZ2UKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XVEYvR05VbWFrZWZpbGUubGlzdC5hbSBiL1NvdXJjZS9XVEYvR05VbWFrZWZpbGUubGlzdC5h
bQppbmRleCBlOGU0MmVkZDM1NTJlZGU1NWFmMTg0MjExNTFmMGViYjkzMzk2Yjg1Li4wZWQxMGRk
YWUxNDhhMDczM2E4MzUyNjk1NGI3ODE5ZmRiY2JkZmYyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RG
L0dOVW1ha2VmaWxlLmxpc3QuYW0KKysrIGIvU291cmNlL1dURi9HTlVtYWtlZmlsZS5saXN0LmFt
CkBAIC04MCw2ICs4MCw3IEBAIHd0Zl9zb3VyY2VzICs9IFwKICAgICBTb3VyY2UvV1RGL3d0Zi9N
ZWRpYVRpbWUuaCBcCiAgICAgU291cmNlL1dURi93dGYvTWVkaWFUaW1lLmNwcCBcCiAgICAgU291
cmNlL1dURi93dGYvTWVtb3J5SW5zdHJ1bWVudGF0aW9uLmggXAorICAgIFNvdXJjZS9XVEYvd3Rm
L01lbW9yeUluc3RydW1lbnRhdGlvblZlY3Rvci5oIFwKICAgICBTb3VyY2UvV1RGL3d0Zi9NZXNz
YWdlUXVldWUuaCBcCiAgICAgU291cmNlL1dURi93dGYvTWV0YUFsbG9jYXRvci5jcHAgXAogICAg
IFNvdXJjZS9XVEYvd3RmL01ldGFBbGxvY2F0b3IuaCBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RG
L1dURi5neXBpIGIvU291cmNlL1dURi9XVEYuZ3lwaQppbmRleCA1ZGNkMDFlZDdkM2E0YjdhOWMz
MTgxYjU0YTFhYTRjNWE5ZjIxMzgxLi5mZGMyOGQ2YmI1NWU3ZTU2NWRhZjA5NWI3M2NiNTNhNzNl
MDk0OGZjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL1dURi5neXBpCisrKyBiL1NvdXJjZS9XVEYv
V1RGLmd5cGkKQEAgLTUwLDYgKzUwLDcgQEAKICAgICAgICAgICAgICd3dGYvTWFpblRocmVhZC5o
JywKICAgICAgICAgICAgICd3dGYvTWF0aEV4dHJhcy5oJywKICAgICAgICAgICAgICd3dGYvTWVt
b3J5SW5zdHJ1bWVudGF0aW9uLmgnLAorICAgICAgICAgICAgJ3d0Zi9NZW1vcnlJbnN0cnVtZW50
YXRpb25WZWN0b3IuaCcsCiAgICAgICAgICAgICAnd3RmL01lc3NhZ2VRdWV1ZS5oJywKICAgICAg
ICAgICAgICd3dGYvTm9uQ29weWluZ1NvcnQuaCcsCiAgICAgICAgICAgICAnd3RmL05vbmNvcHlh
YmxlLmgnLApkaWZmIC0tZ2l0IGEvU291cmNlL1dURi9XVEYucHJvIGIvU291cmNlL1dURi9XVEYu
cHJvCmluZGV4IGJjMGE4NzcwZWYxYTY3YmY3NWI5YjI1ZTU0NjFiZDQzOTVhMmRkMzguLmU4ZGE0
YzBjNmIyNDY3MGNkMGI1ODI3NTYwMzEzYjAwYzlmOTg5OGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
VEYvV1RGLnBybworKysgYi9Tb3VyY2UvV1RGL1dURi5wcm8KQEAgLTg3LDYgKzg3LDcgQEAgSEVB
REVSUyArPSBcCiAgICAgTUQ1LmggXAogICAgIE1lZGlhVGltZS5oIFwKICAgICBNZW1vcnlJbnN0
cnVtZW50YXRpb24uaCBcCisgICAgTWVtb3J5SW5zdHJ1bWVudGF0aW9uVmVjdG9yLmggXAogICAg
IE1lc3NhZ2VRdWV1ZS5oIFwKICAgICBNZXRhQWxsb2NhdG9yLmggXAogICAgIE1ldGFBbGxvY2F0
b3JIYW5kbGUuaCBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL1dURi52Y3Byb2ovV1RGLnZjcHJv
aiBiL1NvdXJjZS9XVEYvV1RGLnZjcHJvai9XVEYudmNwcm9qCmluZGV4IDRiMmNjNjIxYWUxMDA3
ZDNjYjEzYTVjNmRhMmEyNTcxZTExNmRkYTUuLmY5MTA4Yzg5MzVlMmY1ODRhZWE4Yjg3MmEzYWUz
NGMxMjQzNGU4NDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvV1RGLnZjcHJvai9XVEYudmNwcm9q
CisrKyBiL1NvdXJjZS9XVEYvV1RGLnZjcHJvai9XVEYudmNwcm9qCkBAIC05MDUsNiArOTA1LDEw
IEBACiAJCQk+CiAJCTwvRmlsZT4KIAkJPEZpbGUKKwkJICAgICAgICBSZWxhdGl2ZVBhdGg9Ii4u
XHd0ZlxNZW1vcnlJbnN0cnVtZW50YXRpb25WZWN0b3IuaCIKKwkJCT4KKwkJPC9GaWxlPgorCQk8
RmlsZQogCQkJUmVsYXRpdmVQYXRoPSIuLlx3dGZcTWVzc2FnZVF1ZXVlLmgiCiAJCQk+CiAJCTwv
RmlsZT4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvV1RGLnhjb2RlcHJvai9wcm9qZWN0LnBieHBy
b2ogYi9Tb3VyY2UvV1RGL1dURi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDUyYWY3
YjljZWNjNWQxYTUyYWUwOGQ5N2I0MjJiM2U1YWFiZDAwNzYuLjNiYjE5ZGRkNzNiYTA4YzAxMGY0
NzA4NjYyYTdjYTA1ZTIyYThjNDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvV1RGLnhjb2RlcHJv
ai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dURi9XVEYueGNvZGVwcm9qL3Byb2plY3Qu
cGJ4cHJvagpAQCAtMTcsNiArMTcsNyBAQAogCQk0MzMwRjM4RjE1NzQ1QjA1MDBBQUZBOEYgLyog
VVJMU3RyaW5nLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDQzMzBGMzhFMTU3NDVCMDUwMEFBRkE4RiAvKiBVUkxTdHJpbmcuY3BwICovOyB9OwogCQk0
RjAzMjFCQzE1NkFBOEQxMDA2RUJBRjYgLyogQml0QXJyYXkuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDRGMDMyMUJCMTU2QUE4RDEwMDZFQkFGNiAvKiBC
aXRBcnJheS5oICovOyB9OwogCQk0RjFEMTE1NDE1RkYxMUJFMDAyNkU5MDggLyogTWVtb3J5SW5z
dHJ1bWVudGF0aW9uLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSA0RjFEMTE1MzE1RkYxMUJFMDAyNkU5MDggLyogTWVtb3J5SW5zdHJ1bWVudGF0aW9uLmgg
Ki87IH07CisJCTRGQ0I3MTBBMTYwQTFBMDcwMDg0MjVFQyAvKiBNZW1vcnlJbnN0cnVtZW50YXRp
b25WZWN0b3IuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDRGQ0I3MTA5MTYwQTFBMDcwMDg0MjVFQyAvKiBNZW1vcnlJbnN0cnVtZW50YXRpb25WZWN0b3Iu
aCAqLzsgfTsKIAkJN0UyOUMzM0UxNUZGRDc5QjAwNTE2RDYxIC8qIE9iamNSdW50aW1lRXh0cmFz
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3RTI5QzMz
RDE1RkZENzlCMDA1MTZENjEgLyogT2JqY1J1bnRpbWVFeHRyYXMuaCAqLzsgfTsKIAkJODEzNDAx
MzgxNUIwOTJGRDAwMUZGMEI4IC8qIEJhc2U2NC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4MTM0MDEzNjE1QjA5MkZEMDAxRkYwQjggLyogQmFzZTY0
LmNwcCAqLzsgfTsKIAkJODEzNDAxMzkxNUIwOTJGRDAwMUZGMEI4IC8qIEJhc2U2NC5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODEzNDAxMzcxNUIwOTJG
RDAwMUZGMEI4IC8qIEJhc2U2NC5oICovOyB9OwpAQCAtMjY1LDYgKzI2Niw3IEBACiAJCTQzMzBG
MzhFMTU3NDVCMDUwMEFBRkE4RiAvKiBVUkxTdHJpbmcuY3BwICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAuY3BwOyBwYXRoID0gVVJMU3RyaW5nLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJNEYwMzIxQkIxNTZBQThEMTAwNkVCQUY2IC8qIEJpdEFycmF5LmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEJpdEFycmF5Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCTRGMUQxMTUzMTVGRjExQkUwMDI2RTkwOCAvKiBNZW1vcnlJbnN0cnVtZW50YXRpb24u
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTWVtb3J5SW5zdHJ1bWVudGF0aW9u
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTRGQ0I3MTA5MTYwQTFBMDcwMDg0MjVF
QyAvKiBNZW1vcnlJbnN0cnVtZW50YXRpb25WZWN0b3IuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gTWVtb3J5SW5zdHJ1bWVudGF0aW9uVmVjdG9yLmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCTVEMjQ3QjYyMTQ2ODlCODYwMEU3OEI3NiAvKiBsaWJXVEYuYSAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBleHBsaWNpdEZpbGVUeXBlID0gYXJjaGl2ZS5hcjsg
aW5jbHVkZUluSW5kZXggPSAwOyBwYXRoID0gbGliV1RGLmE7IHNvdXJjZVRyZWUgPSBCVUlMVF9Q
Uk9EVUNUU19ESVI7IH07CiAJCTVEMjQ3QjZFMTQ2ODlDNDcwMEU3OEI3NiAvKiBCYXNlLnhjY29u
ZmlnICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4
dC54Y2NvbmZpZzsgcGF0aCA9IEJhc2UueGNjb25maWc7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCTVEMjQ3QjZGMTQ2ODlDNDcwMEU3OEI3NiAvKiBDb21waWxlclZlcnNpb24ueGNjb25m
aWcgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0
LnhjY29uZmlnOyBwYXRoID0gQ29tcGlsZXJWZXJzaW9uLnhjY29uZmlnOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwpAQCAtNjUwLDYgKzY1Miw3IEBACiAJCQkJQ0Q1NDk3QUExNTg1N0QwMzAw
QjVCQzMwIC8qIE1lZGlhVGltZS5jcHAgKi8sCiAJCQkJQ0Q1NDk3QUIxNTg1N0QwMzAwQjVCQzMw
IC8qIE1lZGlhVGltZS5oICovLAogCQkJCTRGMUQxMTUzMTVGRjExQkUwMDI2RTkwOCAvKiBNZW1v
cnlJbnN0cnVtZW50YXRpb24uaCAqLywKKwkJCQk0RkNCNzEwOTE2MEExQTA3MDA4NDI1RUMgLyog
TWVtb3J5SW5zdHJ1bWVudGF0aW9uVmVjdG9yLmggKi8sCiAJCQkJQThBNDcyQ0MxNTFBODI1QjAw
NDEyM0ZGIC8qIE1lc3NhZ2VRdWV1ZS5oICovLAogCQkJCUE4QTQ3MkNEMTUxQTgyNUIwMDQxMjNG
RiAvKiBNZXRhQWxsb2NhdG9yLmNwcCAqLywKIAkJCQlBOEE0NzJDRTE1MUE4MjVCMDA0MTIzRkYg
LyogTWV0YUFsbG9jYXRvci5oICovLApAQCAtMTA3Niw2ICsxMDc5LDcgQEAKIAkJCQlBOEE0NzQ0
NjE1MUE4MjVCMDA0MTIzRkYgLyogV1RGU3RyaW5nLmggaW4gSGVhZGVycyAqLywKIAkJCQlBOEE0
NzQ4NzE1MUE4MjVCMDA0MTIzRkYgLyogV1RGVGhyZWFkRGF0YS5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJNEYxRDExNTQxNUZGMTFCRTAwMjZFOTA4IC8qIE1lbW9yeUluc3RydW1lbnRhdGlvbi5oIGlu
IEhlYWRlcnMgKi8sCisJCQkJNEZDQjcxMEExNjBBMUEwNzAwODQyNUVDIC8qIE1lbW9yeUluc3Ry
dW1lbnRhdGlvblZlY3Rvci5oIGluIEhlYWRlcnMgKi8sCiAJCQkpOwogCQkJcnVuT25seUZvckRl
cGxveW1lbnRQb3N0cHJvY2Vzc2luZyA9IDA7CiAJCX07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RG
L3d0Zi9NZW1vcnlJbnN0cnVtZW50YXRpb24uaCBiL1NvdXJjZS9XVEYvd3RmL01lbW9yeUluc3Ry
dW1lbnRhdGlvbi5oCmluZGV4IDEzMWFmODQ5N2FjZWFkM2E5YjljYWMyZGVlMTc0N2M4MmU5MGI2
MTMuLmFlMmY1MmQ2YzA5YzdlMWNjNGRhMTQzMTM3YzYwZGVlMjZmNTM4YzcgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XVEYvd3RmL01lbW9yeUluc3RydW1lbnRhdGlvbi5oCisrKyBiL1NvdXJjZS9XVEYv
d3RmL01lbW9yeUluc3RydW1lbnRhdGlvbi5oCkBAIC04MSw2ICs4MSw4IEBAIHByaXZhdGU6CiAg
ICAgc2l6ZV90IG1fb2JqZWN0U2l6ZTsKIH07CiAKK3RlbXBsYXRlPHR5cGVuYW1lIFQ+IHZvaWQg
cmVwb3J0TWVtb3J5VXNhZ2UoY29uc3QgVCogY29uc3QmLCBNZW1vcnlPYmplY3RJbmZvKik7CisK
IGNsYXNzIE1lbW9yeUluc3RydW1lbnRhdGlvbiB7CiBwdWJsaWM6CiAgICAgdmlydHVhbCB+TWVt
b3J5SW5zdHJ1bWVudGF0aW9uKCkgeyB9CkBAIC0xMDcsNiArMTA5LDcgQEAgcHJpdmF0ZToKICAg
ICB2aXJ0dWFsIHZvaWQgcHJvY2Vzc0RlZmVycmVkSW5zdHJ1bWVudGVkUG9pbnRlcnMoKSA9IDA7
CiAKICAgICBmcmllbmQgY2xhc3MgTWVtb3J5Q2xhc3NJbmZvOworICAgIHRlbXBsYXRlPHR5cGVu
YW1lIFQ+IGZyaWVuZCB2b2lkIHJlcG9ydE1lbW9yeVVzYWdlKGNvbnN0IFQqIGNvbnN0JiwgTWVt
b3J5T2JqZWN0SW5mbyopOwogCiAgICAgdGVtcGxhdGU8dHlwZW5hbWUgVD4gc3RhdGljIHZvaWQg
c2VsZWN0SW5zdHJ1bWVudGF0aW9uTWV0aG9kKGNvbnN0IFQqIGNvbnN0JiBvYmplY3QsIE1lbW9y
eU9iamVjdEluZm8qIG1lbW9yeU9iamVjdEluZm8pCiAgICAgewpAQCAtMjEzLDExICsyMTYsMTcg
QEAgcHJpdmF0ZToKIH07CiAKIHRlbXBsYXRlPHR5cGVuYW1lIFQ+Cit2b2lkIHJlcG9ydE1lbW9y
eVVzYWdlKGNvbnN0IFQqIGNvbnN0JiBvYmplY3QsIE1lbW9yeU9iamVjdEluZm8qIG1lbW9yeU9i
amVjdEluZm8pCit7CisgICAgTWVtb3J5SW5zdHJ1bWVudGF0aW9uOjpzZWxlY3RJbnN0cnVtZW50
YXRpb25NZXRob2Q8VD4ob2JqZWN0LCBtZW1vcnlPYmplY3RJbmZvKTsKK30KKwordGVtcGxhdGU8
dHlwZW5hbWUgVD4KIHZvaWQgTWVtb3J5SW5zdHJ1bWVudGF0aW9uOjphZGRPYmplY3RJbXBsKGNv
bnN0IFQqIGNvbnN0JiBvYmplY3QsIE1lbW9yeU9iamVjdFR5cGUgb3duZXJPYmplY3RUeXBlLCBN
ZW1vcnlPd25pbmdUeXBlIG93bmluZ1R5cGUpCiB7CiAgICAgaWYgKG93bmluZ1R5cGUgPT0gYnlS
ZWZlcmVuY2UpIHsKICAgICAgICAgTWVtb3J5T2JqZWN0SW5mbyBtZW1vcnlPYmplY3RJbmZvKHRo
aXMsIG93bmVyT2JqZWN0VHlwZSk7Ci0gICAgICAgIHNlbGVjdEluc3RydW1lbnRhdGlvbk1ldGhv
ZDxUPihvYmplY3QsICZtZW1vcnlPYmplY3RJbmZvKTsKKyAgICAgICAgcmVwb3J0TWVtb3J5VXNh
Z2Uob2JqZWN0LCAmbWVtb3J5T2JqZWN0SW5mbyk7CiAgICAgfSBlbHNlIHsKICAgICAgICAgaWYg
KCFvYmplY3QgfHwgdmlzaXRlZChvYmplY3QpKQogICAgICAgICAgICAgcmV0dXJuOwpAQCAtMzEz
LDEwICszMjIsMTQgQEAgdGVtcGxhdGU8dHlwZW5hbWUgVD4KIHZvaWQgTWVtb3J5SW5zdHJ1bWVu
dGF0aW9uOjpJbnN0cnVtZW50ZWRQb2ludGVyPFQ+Ojpwcm9jZXNzKE1lbW9yeUluc3RydW1lbnRh
dGlvbiogbWVtb3J5SW5zdHJ1bWVudGF0aW9uKQogewogICAgIE1lbW9yeU9iamVjdEluZm8gbWVt
b3J5T2JqZWN0SW5mbyhtZW1vcnlJbnN0cnVtZW50YXRpb24sIG1fb3duZXJPYmplY3RUeXBlKTsK
LSAgICBzZWxlY3RJbnN0cnVtZW50YXRpb25NZXRob2Q8VD4obV9wb2ludGVyLCAmbWVtb3J5T2Jq
ZWN0SW5mbyk7CisgICAgcmVwb3J0TWVtb3J5VXNhZ2UobV9wb2ludGVyLCAmbWVtb3J5T2JqZWN0
SW5mbyk7CiAgICAgbWVtb3J5SW5zdHJ1bWVudGF0aW9uLT5jb3VudE9iamVjdFNpemUobWVtb3J5
T2JqZWN0SW5mby5vYmplY3RUeXBlKCksIG1lbW9yeU9iamVjdEluZm8ub2JqZWN0U2l6ZSgpKTsK
IH0KIAorLy8gTGluayB0aW1lIGd1YXJkIGZvciB2ZWN0b3IgbWVtb3J5IGluc3RydW1lbnRhdGlv
bi4KK3RlbXBsYXRlPHR5cGVuYW1lIFQsIHNpemVfdCBpbmxpbmVDYXBhY2l0eT4gY2xhc3MgVmVj
dG9yOwordGVtcGxhdGU8dHlwZW5hbWUgVCwgc2l6ZV90IGlubGluZUNhcGFjaXR5PiB2b2lkIHJl
cG9ydE1lbW9yeVVzYWdlKGNvbnN0IFZlY3RvcjxULCBpbmxpbmVDYXBhY2l0eT4qIGNvbnN0Jiwg
TWVtb3J5T2JqZWN0SW5mbyopOworCiB9IC8vIG5hbWVzcGFjZSBXVEYKIAogI2VuZGlmIC8vICFk
ZWZpbmVkKE1lbW9yeUluc3RydW1lbnRhdGlvbl9oKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93
dGYvTWVtb3J5SW5zdHJ1bWVudGF0aW9uVmVjdG9yLmggYi9Tb3VyY2UvV1RGL3d0Zi9NZW1vcnlJ
bnN0cnVtZW50YXRpb25WZWN0b3IuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5jYzM0M2EwNjliZGYxNGM2ZDhmMWFj
YWJjNzRjYzVjMzYwZmQ3MzUyCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dURi93dGYvTWVt
b3J5SW5zdHJ1bWVudGF0aW9uVmVjdG9yLmgKQEAgLTAsMCArMSw1OSBAQAorLyoKKyAqIENvcHly
aWdodCAoQykgMjAxMiBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQorICogbWV0OgorICoKKyAqICAgICAqIFJlZGlzdHJp
YnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIuCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXBy
b2R1Y2UgdGhlIGFib3ZlCisgKiBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCisgKiBpbiB0aGUgZG9jdW1lbnRhdGlv
biBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCisgKiBkaXN0cmlidXRp
b24uCisgKiAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFt
ZXMgb2YgaXRzCisgKiBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9t
b3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQorICogdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNp
ZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBS
T1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCisgKiAiQVMg
SVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVU
IE5PVAorICogTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFC
SUxJVFkgQU5EIEZJVE5FU1MgRk9SCisgKiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xB
SU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAorICogT1dORVIgT1IgQ09OVFJJ
QlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCisg
KiBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5H
LCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RT
IE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKKyAqIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lO
RVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQorICogVEhFT1JZIE9G
IExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9S
VAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkg
V0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQg
T0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5kZWYgTWVtb3J5
SW5zdHJ1bWVudGF0aW9uVmVjdG9yX2gKKyNkZWZpbmUgTWVtb3J5SW5zdHJ1bWVudGF0aW9uVmVj
dG9yX2gKKworI2luY2x1ZGUgPHd0Zi9NZW1vcnlJbnN0cnVtZW50YXRpb24uaD4KKyNpbmNsdWRl
IDx3dGYvVmVjdG9yLmg+CisKK25hbWVzcGFjZSBXVEYgeworCit0ZW1wbGF0ZTx0eXBlbmFtZSBU
LCBzaXplX3QgaW5saW5lQ2FwYWNpdHk+Cit2b2lkIGluc3RydW1lbnRWZWN0b3JWYWx1ZXMoTWVt
b3J5Q2xhc3NJbmZvJiBpbmZvLCBjb25zdCBWZWN0b3I8VCwgaW5saW5lQ2FwYWNpdHk+KiBjb25z
dCYgdmVjdG9yKQoreworICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgdmVjdG9yLT5zaXplKCk7
ICsraSkKKyAgICAgICAgaW5mby5hZGRNZW1iZXIodmVjdG9yLT5hdChpKSk7Cit9CisKK3RlbXBs
YXRlPHNpemVfdCBpbmxpbmVDYXBhY2l0eT4gdm9pZCBpbnN0cnVtZW50VmVjdG9yVmFsdWVzKE1l
bW9yeUNsYXNzSW5mbyYsIGNvbnN0IFZlY3RvcjxpbnQsIGlubGluZUNhcGFjaXR5PiogY29uc3Qm
KSB7IH0KKwordGVtcGxhdGU8dHlwZW5hbWUgVCwgc2l6ZV90IGlubGluZUNhcGFjaXR5Pgordm9p
ZCByZXBvcnRNZW1vcnlVc2FnZShjb25zdCBWZWN0b3I8VCwgaW5saW5lQ2FwYWNpdHk+KiBjb25z
dCYgdmVjdG9yLCBNZW1vcnlPYmplY3RJbmZvKiBtZW1vcnlPYmplY3RJbmZvKQoreworICAgIE1l
bW9yeUNsYXNzSW5mbyBpbmZvKG1lbW9yeU9iamVjdEluZm8sIHZlY3Rvcik7CisgICAgaWYgKGlu
bGluZUNhcGFjaXR5IDwgdmVjdG9yLT5jYXBhY2l0eSgpKQorICAgICAgICBpbmZvLmFkZFJhd0J1
ZmZlcih2ZWN0b3ItPmRhdGEoKSwgdmVjdG9yLT5jYXBhY2l0eSgpICogc2l6ZW9mKFQpKTsKKyAg
ICBpbnN0cnVtZW50VmVjdG9yVmFsdWVzKGluZm8sIHZlY3Rvcik7Cit9CisKK30KKworI2VuZGlm
IC8vICFkZWZpbmVkKE1lbW9yeUluc3RydW1lbnRhdGlvblZlY3Rvcl9oKQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvY3NzL0NTU0dyYWRpZW50VmFsdWUuY3BwIGIvU291cmNlL1dlYkNvcmUv
Y3NzL0NTU0dyYWRpZW50VmFsdWUuY3BwCmluZGV4IGY5NzE1ZjI3ZjU4NTFjOTJhMTg1M2RiNDZi
YTcwYmRhZGUxYWVhMjcuLmQwMGMxMzA4ZTUxMGIzMGRiZGI3MzM5ZGFmYWE4NzdiYTUyNGM3ZWQg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NHcmFkaWVudFZhbHVlLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTR3JhZGllbnRWYWx1ZS5jcHAKQEAgLTM3LDYgKzM3LDcg
QEAKICNpbmNsdWRlICJSZW5kZXJPYmplY3QuaCIKICNpbmNsdWRlICJTdHlsZVJlc29sdmVyLmgi
CiAjaW5jbHVkZSAiV2ViQ29yZU1lbW9yeUluc3RydW1lbnRhdGlvbi5oIgorI2luY2x1ZGUgPHd0
Zi9NZW1vcnlJbnN0cnVtZW50YXRpb25WZWN0b3IuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9TdHJp
bmdCdWlsZGVyLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CiAKQEAgLTQ2OSw3
ICs0NzAsNyBAQCB2b2lkIENTU0dyYWRpZW50VmFsdWU6OnJlcG9ydEJhc2VDbGFzc01lbW9yeVVz
YWdlKE1lbW9yeU9iamVjdEluZm8qIG1lbW9yeU9iamVjdAogICAgIGluZm8uYWRkTWVtYmVyKG1f
Zmlyc3RZKTsKICAgICBpbmZvLmFkZE1lbWJlcihtX3NlY29uZFgpOwogICAgIGluZm8uYWRkTWVt
YmVyKG1fc2Vjb25kWSk7Ci0gICAgaW5mby5hZGRJbnN0cnVtZW50ZWRWZWN0b3IobV9zdG9wcyk7
CisgICAgaW5mby5hZGRNZW1iZXIobV9zdG9wcyk7CiB9CiAKIFN0cmluZyBDU1NMaW5lYXJHcmFk
aWVudFZhbHVlOjpjdXN0b21Dc3NUZXh0KCkgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2Nzcy9DU1NJbWFnZVNldFZhbHVlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NJbWFn
ZVNldFZhbHVlLmNwcAppbmRleCA1ZTZiZWU1YTYzY2EzMDM2NTcyNGRhZGE5NjgwZDIwNmZkMWNi
MGE4Li42ZTAyYTIwZjk1YWMzZjE0ZjQ2MWExYzUxMDBiNGFkNjJiZDllZjBhIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTSW1hZ2VTZXRWYWx1ZS5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvY3NzL0NTU0ltYWdlU2V0VmFsdWUuY3BwCkBAIC0zNyw2ICszNyw3IEBACiAjaW5jbHVk
ZSAiU3R5bGVDYWNoZWRJbWFnZVNldC5oIgogI2luY2x1ZGUgIlN0eWxlUGVuZGluZ0ltYWdlLmgi
CiAjaW5jbHVkZSAiV2ViQ29yZU1lbW9yeUluc3RydW1lbnRhdGlvbi5oIgorI2luY2x1ZGUgPHd0
Zi9NZW1vcnlJbnN0cnVtZW50YXRpb25WZWN0b3IuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewog
CkBAIC0xNjgsNyArMTY5LDcgQEAgdm9pZCBDU1NJbWFnZVNldFZhbHVlOjpyZXBvcnREZXNjZW5k
YW50TWVtb3J5VXNhZ2UoTWVtb3J5T2JqZWN0SW5mbyogbWVtb3J5T2JqZWMKIHsKICAgICBNZW1v
cnlDbGFzc0luZm8gaW5mbyhtZW1vcnlPYmplY3RJbmZvLCB0aGlzLCBXZWJDb3JlTWVtb3J5VHlw
ZXM6OkNTUyk7CiAgICAgQ1NTVmFsdWVMaXN0OjpyZXBvcnREZXNjZW5kYW50TWVtb3J5VXNhZ2Uo
bWVtb3J5T2JqZWN0SW5mbyk7Ci0gICAgaW5mby5hZGRJbnN0cnVtZW50ZWRWZWN0b3IobV9pbWFn
ZXNJblNldCk7CisgICAgaW5mby5hZGRNZW1iZXIobV9pbWFnZXNJblNldCk7CiB9CiAKIHZvaWQg
Q1NTSW1hZ2VTZXRWYWx1ZTo6SW1hZ2VXaXRoU2NhbGU6OnJlcG9ydE1lbW9yeVVzYWdlKE1lbW9y
eU9iamVjdEluZm8qIG1lbW9yeU9iamVjdEluZm8pIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9jc3MvQ1NTTWVkaWFSdWxlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NNZWRp
YVJ1bGUuY3BwCmluZGV4IGYwZTljNzljM2YxMmVlMzc2NDdlZTA3NTkwYmJmOTcwOTcwZWJhYmUu
LjhjMmM5NzNjMjEwNjM2YTYxZWQ2MmU3OTRhYzcwMWRlMzk1YWVjNjkgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2Nzcy9DU1NNZWRpYVJ1bGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nz
cy9DU1NNZWRpYVJ1bGUuY3BwCkBAIC0yOSw2ICsyOSw3IEBACiAjaW5jbHVkZSAiRXhjZXB0aW9u
Q29kZS5oIgogI2luY2x1ZGUgIlN0eWxlUnVsZS5oIgogI2luY2x1ZGUgIldlYkNvcmVNZW1vcnlJ
bnN0cnVtZW50YXRpb24uaCIKKyNpbmNsdWRlIDx3dGYvTWVtb3J5SW5zdHJ1bWVudGF0aW9uVmVj
dG9yLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvU3RyaW5nQnVpbGRlci5oPgogCiBuYW1lc3BhY2Ug
V2ViQ29yZSB7CkBAIC0xODAsNyArMTgxLDcgQEAgdm9pZCBDU1NNZWRpYVJ1bGU6OnJlcG9ydERl
c2NlbmRhbnRNZW1vcnlVc2FnZShNZW1vcnlPYmplY3RJbmZvKiBtZW1vcnlPYmplY3RJbmYKICAg
ICBNZW1vcnlDbGFzc0luZm8gaW5mbyhtZW1vcnlPYmplY3RJbmZvLCB0aGlzLCBXZWJDb3JlTWVt
b3J5VHlwZXM6OkNTUyk7CiAgICAgQ1NTUnVsZTo6cmVwb3J0QmFzZUNsYXNzTWVtb3J5VXNhZ2Uo
bWVtb3J5T2JqZWN0SW5mbyk7CiAgICAgaW5mby5hZGRNZW1iZXIobV9tZWRpYUNTU09NV3JhcHBl
cik7Ci0gICAgaW5mby5hZGRJbnN0cnVtZW50ZWRWZWN0b3IobV9jaGlsZFJ1bGVDU1NPTVdyYXBw
ZXJzKTsKKyAgICBpbmZvLmFkZE1lbWJlcihtX2NoaWxkUnVsZUNTU09NV3JhcHBlcnMpOwogICAg
IGluZm8uYWRkTWVtYmVyKG1fcnVsZUxpc3RDU1NPTVdyYXBwZXIpOwogfQogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUnVsZUxpc3QuY3BwIGIvU291cmNlL1dlYkNvcmUvY3Nz
L0NTU1J1bGVMaXN0LmNwcAppbmRleCA0NzJiM2RkNjBkMDA5NGY3NTA1Y2FiYTE2MzlhNjhiY2Jm
YjQ4Y2RlLi5kYWRjOTNiMTU0N2I0MTQ5ZGVjMGQ5NmVhNGUxNTY1M2IwNzY3MWVjIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUnVsZUxpc3QuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2Nzcy9DU1NSdWxlTGlzdC5jcHAKQEAgLTI0LDYgKzI0LDcgQEAKIAogI2luY2x1ZGUgIkNT
U1J1bGUuaCIKICNpbmNsdWRlICJDU1NTdHlsZVNoZWV0LmgiCisjaW5jbHVkZSA8d3RmL01lbW9y
eUluc3RydW1lbnRhdGlvblZlY3Rvci5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKQEAgLTU0
LDcgKzU1LDcgQEAgdm9pZCBTdGF0aWNDU1NSdWxlTGlzdDo6ZGVyZWYoKQogdm9pZCBTdGF0aWND
U1NSdWxlTGlzdDo6cmVwb3J0TWVtb3J5VXNhZ2UoTWVtb3J5T2JqZWN0SW5mbyogbWVtb3J5T2Jq
ZWN0SW5mbykgY29uc3QKIHsKICAgICBNZW1vcnlDbGFzc0luZm8gaW5mbyhtZW1vcnlPYmplY3RJ
bmZvLCB0aGlzLCBXZWJDb3JlTWVtb3J5VHlwZXM6OkNTUyk7Ci0gICAgaW5mby5hZGRJbnN0cnVt
ZW50ZWRWZWN0b3IobV9ydWxlcyk7CisgICAgaW5mby5hZGRNZW1iZXIobV9ydWxlcyk7CiB9CiAK
IH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9D
U1NTdHlsZVNoZWV0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NTdHlsZVNoZWV0LmNwcApp
bmRleCAwZTEwMjAyYzdmZWJiZjJiZTZkODlhZmNjZDU3ZGIyZDAzYTYyY2UyLi5kY2ZjMjIwMDZm
ZjI2NTNkMTEwYzI5YzMzNWFlYjZkMjcxNzE0NWVkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9jc3MvQ1NTU3R5bGVTaGVldC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1N0eWxl
U2hlZXQuY3BwCkBAIC0zOCw2ICszOCw3IEBACiAjaW5jbHVkZSAiU3R5bGVSdWxlLmgiCiAjaW5j
bHVkZSAiU3R5bGVTaGVldENvbnRlbnRzLmgiCiAjaW5jbHVkZSAiV2ViQ29yZU1lbW9yeUluc3Ry
dW1lbnRhdGlvbi5oIgorI2luY2x1ZGUgPHd0Zi9NZW1vcnlJbnN0cnVtZW50YXRpb25WZWN0b3Iu
aD4KICNpbmNsdWRlIDx3dGYvdGV4dC9TdHJpbmdCdWlsZGVyLmg+CiAKIG5hbWVzcGFjZSBXZWJD
b3JlIHsKQEAgLTE4Nyw3ICsxODgsNyBAQCB2b2lkIENTU1N0eWxlU2hlZXQ6OnJlcG9ydE1lbW9y
eVVzYWdlKE1lbW9yeU9iamVjdEluZm8qIG1lbW9yeU9iamVjdEluZm8pIGNvbnN0CiAgICAgaW5m
by5hZGRNZW1iZXIobV9vd25lck5vZGUpOwogICAgIGluZm8uYWRkTWVtYmVyKG1fb3duZXJSdWxl
KTsKICAgICBpbmZvLmFkZE1lbWJlcihtX21lZGlhQ1NTT01XcmFwcGVyKTsKLSAgICBpbmZvLmFk
ZEluc3RydW1lbnRlZFZlY3RvcihtX2NoaWxkUnVsZUNTU09NV3JhcHBlcnMpOworICAgIGluZm8u
YWRkTWVtYmVyKG1fY2hpbGRSdWxlQ1NTT01XcmFwcGVycyk7CiB9CiAKIHZvaWQgQ1NTU3R5bGVT
aGVldDo6c2V0RGlzYWJsZWQoYm9vbCBkaXNhYmxlZCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2Nzcy9DU1NWYWx1ZUxpc3QuY3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1ZhbHVlTGlz
dC5jcHAKaW5kZXggMjFlNGZhNzAzNWUwNjA3MDIwNjVmMzlmOWFhYzU4ZDBiNmZhNjZjMy4uOWVj
MmQ1MDg1ZmI5ZDZkMzhkZDRjZWIyMTgzYjkxNDhiYjk0MmU5NSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvY3NzL0NTU1ZhbHVlTGlzdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0NT
U1ZhbHVlTGlzdC5jcHAKQEAgLTIzLDYgKzIzLDcgQEAKIAogI2luY2x1ZGUgIkNTU1BhcnNlclZh
bHVlcy5oIgogI2luY2x1ZGUgIldlYkNvcmVNZW1vcnlJbnN0cnVtZW50YXRpb24uaCIKKyNpbmNs
dWRlIDx3dGYvTWVtb3J5SW5zdHJ1bWVudGF0aW9uVmVjdG9yLmg+CiAjaW5jbHVkZSA8d3RmL1Bh
c3NPd25QdHIuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9TdHJpbmdCdWlsZGVyLmg+CiAKQEAgLTE4
OSw3ICsxOTAsNyBAQCBQYXNzUmVmUHRyPENTU1ZhbHVlTGlzdD4gQ1NTVmFsdWVMaXN0OjpjbG9u
ZUZvckNTU09NKCkgY29uc3QKIHZvaWQgQ1NTVmFsdWVMaXN0OjpyZXBvcnREZXNjZW5kYW50TWVt
b3J5VXNhZ2UoTWVtb3J5T2JqZWN0SW5mbyogbWVtb3J5T2JqZWN0SW5mbykgY29uc3QKIHsKICAg
ICBNZW1vcnlDbGFzc0luZm8gaW5mbyhtZW1vcnlPYmplY3RJbmZvLCB0aGlzLCBXZWJDb3JlTWVt
b3J5VHlwZXM6OkNTUyk7Ci0gICAgaW5mby5hZGRJbnN0cnVtZW50ZWRWZWN0b3IobV92YWx1ZXMp
OworICAgIGluZm8uYWRkTWVtYmVyKG1fdmFsdWVzKTsKIH0KIAogfSAvLyBuYW1lc3BhY2UgV2Vi
Q29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL01lZGlhTGlzdC5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9jc3MvTWVkaWFMaXN0LmNwcAppbmRleCA2MjkwM2Q2YjE2ZTQ0MDI5YzEyODcz
Yzk3YTk3YTNmMTA4ZjU1ZDdkLi5iZGJjNTcxNzQ4MzRiMjBiODBjZDMxZmQyZWJlOWUyNWFjMzRj
NjA3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvTWVkaWFMaXN0LmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9jc3MvTWVkaWFMaXN0LmNwcApAQCAtMjcsNiArMjcsNyBAQAogI2luY2x1
ZGUgIk1lZGlhUXVlcnkuaCIKICNpbmNsdWRlICJNZWRpYVF1ZXJ5RXhwLmgiCiAjaW5jbHVkZSAi
V2ViQ29yZU1lbW9yeUluc3RydW1lbnRhdGlvbi5oIgorI2luY2x1ZGUgPHd0Zi9NZW1vcnlJbnN0
cnVtZW50YXRpb25WZWN0b3IuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9TdHJpbmdCdWlsZGVyLmg+
CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKQEAgLTIxNSw3ICsyMTYsNyBAQCBTdHJpbmcgTWVkaWFR
dWVyeVNldDo6bWVkaWFUZXh0KCkgY29uc3QKIHZvaWQgTWVkaWFRdWVyeVNldDo6cmVwb3J0TWVt
b3J5VXNhZ2UoTWVtb3J5T2JqZWN0SW5mbyogbWVtb3J5T2JqZWN0SW5mbykgY29uc3QKIHsKICAg
ICBNZW1vcnlDbGFzc0luZm8gaW5mbyhtZW1vcnlPYmplY3RJbmZvLCB0aGlzLCBXZWJDb3JlTWVt
b3J5VHlwZXM6OkNTUyk7Ci0gICAgaW5mby5hZGRJbnN0cnVtZW50ZWRWZWN0b3IobV9xdWVyaWVz
KTsKKyAgICBpbmZvLmFkZE1lbWJlcihtX3F1ZXJpZXMpOwogfQogICAgIAogTWVkaWFMaXN0OjpN
ZWRpYUxpc3QoTWVkaWFRdWVyeVNldCogbWVkaWFRdWVyaWVzLCBDU1NTdHlsZVNoZWV0KiBwYXJl
bnRTaGVldCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9NZWRpYVF1ZXJ5LmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2Nzcy9NZWRpYVF1ZXJ5LmNwcAppbmRleCBhM2YyNWQ3MTJkNWIxMDM0
MDI3MWJjMjAwMjViOTY2NzMxNDYyZDY0Li5mYzQ1NTFmZmIxODM3OTllMzQwMjhhMjViMmJmZTcz
ODQzNTMyYjJiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvTWVkaWFRdWVyeS5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvY3NzL01lZGlhUXVlcnkuY3BwCkBAIC0zMSw2ICszMSw3IEBA
CiAKICNpbmNsdWRlICJNZWRpYVF1ZXJ5RXhwLmgiCiAjaW5jbHVkZSAiV2ViQ29yZU1lbW9yeUlu
c3RydW1lbnRhdGlvbi5oIgorI2luY2x1ZGUgPHd0Zi9NZW1vcnlJbnN0cnVtZW50YXRpb25WZWN0
b3IuaD4KICNpbmNsdWRlIDx3dGYvTm9uQ29weWluZ1NvcnQuaD4KICNpbmNsdWRlIDx3dGYvdGV4
dC9TdHJpbmdCdWlsZGVyLmg+CiAKQEAgLTEzOCw3ICsxMzksNyBAQCB2b2lkIE1lZGlhUXVlcnk6
OnJlcG9ydE1lbW9yeVVzYWdlKE1lbW9yeU9iamVjdEluZm8qIG1lbW9yeU9iamVjdEluZm8pIGNv
bnN0CiB7CiAgICAgTWVtb3J5Q2xhc3NJbmZvIGluZm8obWVtb3J5T2JqZWN0SW5mbywgdGhpcywg
V2ViQ29yZU1lbW9yeVR5cGVzOjpDU1MpOwogICAgIGluZm8uYWRkTWVtYmVyKG1fbWVkaWFUeXBl
KTsKLSAgICBpbmZvLmFkZEluc3RydW1lbnRlZFZlY3RvclB0cihtX2V4cHJlc3Npb25zKTsKKyAg
ICBpbmZvLmFkZE1lbWJlcihtX2V4cHJlc3Npb25zKTsKICAgICBpbmZvLmFkZE1lbWJlcihtX3Nl
cmlhbGl6YXRpb25DYWNoZSk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9T
dHlsZVJlc29sdmVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9TdHlsZVJlc29sdmVyLmNwcApp
bmRleCBjZjIwNjg3YzgyOGQyMDdjNTgyZDc5OWE3NDVjNjI5MWExNTlmZTk5Li44ZjQxZTE0NzJk
YmVjMDNlZTg0ZWQ4ODgyZjA1NWU1NjIxZDBmZGVhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9jc3MvU3R5bGVSZXNvbHZlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL1N0eWxlUmVz
b2x2ZXIuY3BwCkBAIC0xMjUsNiArMTI1LDcgQEAKICNpbmNsdWRlICJXZWJLaXRDU1NUcmFuc2Zv
cm1WYWx1ZS5oIgogI2luY2x1ZGUgIldlYktpdEZvbnRGYW1pbHlOYW1lcy5oIgogI2luY2x1ZGUg
IlhNTE5hbWVzLmgiCisjaW5jbHVkZSA8d3RmL01lbW9yeUluc3RydW1lbnRhdGlvblZlY3Rvci5o
PgogI2luY2x1ZGUgPHd0Zi9TdGRMaWJFeHRyYXMuaD4KICNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+
CiAKQEAgLTI1NjcsNyArMjU2OCw3IEBAIHN0YXRpYyB2b2lkIHJlcG9ydEF0b21SdWxlTWFwKE1l
bW9yeUNsYXNzSW5mbyogaW5mbywgY29uc3QgUnVsZVNldDo6QXRvbVJ1bGVNYXAmCiB7CiAgICAg
aW5mby0+YWRkSGFzaE1hcChhdG9taWNSdWxlTWFwKTsKICAgICBmb3IgKFJ1bGVTZXQ6OkF0b21S
dWxlTWFwOjpjb25zdF9pdGVyYXRvciBpdCA9IGF0b21pY1J1bGVNYXAuYmVnaW4oKTsgaXQgIT0g
YXRvbWljUnVsZU1hcC5lbmQoKTsgKytpdCkKLSAgICAgICAgaW5mby0+YWRkSW5zdHJ1bWVudGVk
VmVjdG9yKCppdC0+c2Vjb25kKTsKKyAgICAgICAgaW5mby0+YWRkTWVtYmVyKCppdC0+c2Vjb25k
KTsKIH0KIAogdm9pZCBSdWxlU2V0OjpyZXBvcnRNZW1vcnlVc2FnZShNZW1vcnlPYmplY3RJbmZv
KiBtZW1vcnlPYmplY3RJbmZvKSBjb25zdApAQCAtMjU3NywxMSArMjU3OCwxMSBAQCB2b2lkIFJ1
bGVTZXQ6OnJlcG9ydE1lbW9yeVVzYWdlKE1lbW9yeU9iamVjdEluZm8qIG1lbW9yeU9iamVjdElu
Zm8pIGNvbnN0CiAgICAgcmVwb3J0QXRvbVJ1bGVNYXAoJmluZm8sIG1fY2xhc3NSdWxlcyk7CiAg
ICAgcmVwb3J0QXRvbVJ1bGVNYXAoJmluZm8sIG1fdGFnUnVsZXMpOwogICAgIHJlcG9ydEF0b21S
dWxlTWFwKCZpbmZvLCBtX3NoYWRvd1BzZXVkb0VsZW1lbnRSdWxlcyk7Ci0gICAgaW5mby5hZGRJ
bnN0cnVtZW50ZWRWZWN0b3IobV9saW5rUHNldWRvQ2xhc3NSdWxlcyk7Ci0gICAgaW5mby5hZGRJ
bnN0cnVtZW50ZWRWZWN0b3IobV9mb2N1c1BzZXVkb0NsYXNzUnVsZXMpOwotICAgIGluZm8uYWRk
SW5zdHJ1bWVudGVkVmVjdG9yKG1fdW5pdmVyc2FsUnVsZXMpOworICAgIGluZm8uYWRkTWVtYmVy
KG1fbGlua1BzZXVkb0NsYXNzUnVsZXMpOworICAgIGluZm8uYWRkTWVtYmVyKG1fZm9jdXNQc2V1
ZG9DbGFzc1J1bGVzKTsKKyAgICBpbmZvLmFkZE1lbWJlcihtX3VuaXZlcnNhbFJ1bGVzKTsKICAg
ICBpbmZvLmFkZFZlY3RvcihtX3BhZ2VSdWxlcyk7Ci0gICAgaW5mby5hZGRJbnN0cnVtZW50ZWRW
ZWN0b3IobV9yZWdpb25TZWxlY3RvcnNBbmRSdWxlU2V0cyk7CisgICAgaW5mby5hZGRNZW1iZXIo
bV9yZWdpb25TZWxlY3RvcnNBbmRSdWxlU2V0cyk7CiB9CiAKIHZvaWQgUnVsZVNldDo6UnVsZVNl
dFNlbGVjdG9yUGFpcjo6cmVwb3J0TWVtb3J5VXNhZ2UoTWVtb3J5T2JqZWN0SW5mbyogbWVtb3J5
T2JqZWN0SW5mbykgY29uc3QKQEAgLTU3NjYsNyArNTc2Nyw3IEBAIHZvaWQgU3R5bGVSZXNvbHZl
cjo6TWF0Y2hlZFByb3BlcnRpZXM6OnJlcG9ydE1lbW9yeVVzYWdlKE1lbW9yeU9iamVjdEluZm8q
IG1lbW9yCiB2b2lkIFN0eWxlUmVzb2x2ZXI6Ok1hdGNoZWRQcm9wZXJ0aWVzQ2FjaGVJdGVtOjpy
ZXBvcnRNZW1vcnlVc2FnZShNZW1vcnlPYmplY3RJbmZvKiBtZW1vcnlPYmplY3RJbmZvKSBjb25z
dAogewogICAgIE1lbW9yeUNsYXNzSW5mbyBpbmZvKG1lbW9yeU9iamVjdEluZm8sIHRoaXMsIFdl
YkNvcmVNZW1vcnlUeXBlczo6Q1NTKTsKLSAgICBpbmZvLmFkZEluc3RydW1lbnRlZFZlY3Rvciht
YXRjaGVkUHJvcGVydGllcyk7CisgICAgaW5mby5hZGRNZW1iZXIobWF0Y2hlZFByb3BlcnRpZXMp
OwogfQogCiB2b2lkIE1lZGlhUXVlcnlSZXN1bHQ6OnJlcG9ydE1lbW9yeVVzYWdlKE1lbW9yeU9i
amVjdEluZm8qIG1lbW9yeU9iamVjdEluZm8pIGNvbnN0CkBAIC01NzkyLDcgKzU3OTMsNyBAQCB2
b2lkIFN0eWxlUmVzb2x2ZXI6OnJlcG9ydE1lbW9yeVVzYWdlKE1lbW9yeU9iamVjdEluZm8qIG1l
bW9yeU9iamVjdEluZm8pIGNvbnN0CiAgICAgaW5mby5hZGRIYXNoTWFwKG1fcGVuZGluZ0ltYWdl
UHJvcGVydGllcyk7CiAgICAgaW5mby5hZGRJbnN0cnVtZW50ZWRNYXBWYWx1ZXMobV9wZW5kaW5n
SW1hZ2VQcm9wZXJ0aWVzKTsKICAgICBpbmZvLmFkZE1lbWJlcihtX2xpbmVIZWlnaHRWYWx1ZSk7
Ci0gICAgaW5mby5hZGRJbnN0cnVtZW50ZWRWZWN0b3IobV92aWV3cG9ydERlcGVuZGVudE1lZGlh
UXVlcnlSZXN1bHRzKTsKKyAgICBpbmZvLmFkZE1lbWJlcihtX3ZpZXdwb3J0RGVwZW5kZW50TWVk
aWFRdWVyeVJlc3VsdHMpOwogICAgIGluZm8uYWRkSGFzaE1hcChtX3N0eWxlUnVsZVRvQ1NTT01X
cmFwcGVyTWFwKTsKICAgICBpbmZvLmFkZEluc3RydW1lbnRlZE1hcEVudHJpZXMobV9zdHlsZVJ1
bGVUb0NTU09NV3JhcHBlck1hcCk7CiAgICAgaW5mby5hZGRJbnN0cnVtZW50ZWRIYXNoU2V0KG1f
c3R5bGVTaGVldENTU09NV3JhcHBlclNldCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9j
c3MvU3R5bGVSdWxlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9TdHlsZVJ1bGUuY3BwCmluZGV4
IDVlY2UxYjRhMjE0MWVjYmUwYmViZjIyZDllOGVkNzZhZDg1NDcwZjMuLjczYjBhZjI2Y2U0MmFh
NDU5NGQ5Yjc2MTc5NmIxOWQ2YTZiYjY2NWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nz
cy9TdHlsZVJ1bGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9TdHlsZVJ1bGUuY3BwCkBA
IC0zMyw2ICszMyw3IEBACiAjaW5jbHVkZSAiV2ViS2l0Q1NTS2V5ZnJhbWVSdWxlLmgiCiAjaW5j
bHVkZSAiV2ViS2l0Q1NTS2V5ZnJhbWVzUnVsZS5oIgogI2luY2x1ZGUgIldlYktpdENTU1JlZ2lv
blJ1bGUuaCIKKyNpbmNsdWRlIDx3dGYvTWVtb3J5SW5zdHJ1bWVudGF0aW9uVmVjdG9yLmg+CiAK
IG5hbWVzcGFjZSBXZWJDb3JlIHsKIApAQCAtMzQwLDcgKzM0MSw3IEBAIHZvaWQgU3R5bGVSdWxl
QmxvY2s6OndyYXBwZXJSZW1vdmVSdWxlKHVuc2lnbmVkIGluZGV4KQogdm9pZCBTdHlsZVJ1bGVC
bG9jazo6cmVwb3J0RGVzY2VuZGFudE1lbW9yeVVzYWdlKE1lbW9yeU9iamVjdEluZm8qIG1lbW9y
eU9iamVjdEluZm8pIGNvbnN0CiB7CiAgICAgTWVtb3J5Q2xhc3NJbmZvIGluZm8obWVtb3J5T2Jq
ZWN0SW5mbywgdGhpcywgV2ViQ29yZU1lbW9yeVR5cGVzOjpDU1MpOwotICAgIGluZm8uYWRkSW5z
dHJ1bWVudGVkVmVjdG9yKG1fY2hpbGRSdWxlcyk7CisgICAgaW5mby5hZGRNZW1iZXIobV9jaGls
ZFJ1bGVzKTsKIH0KIAogU3R5bGVSdWxlTWVkaWE6OlN0eWxlUnVsZU1lZGlhKFBhc3NSZWZQdHI8
TWVkaWFRdWVyeVNldD4gbWVkaWEsIFZlY3RvcjxSZWZQdHI8U3R5bGVSdWxlQmFzZT4gPiYgYWRv
cHRSdWxlcykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9TdHlsZVNoZWV0Q29udGVu
dHMuY3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL1N0eWxlU2hlZXRDb250ZW50cy5jcHAKaW5kZXgg
MDQ4MjczYmVjMTc4M2RiMjUyNzdiMjJlMmVmNDNkYzY4OTYxN2FkZC4uNWRlOGE2MWE1MTQ3ODQ0
YjFkOTNiZDU4NjIyYmVlNTI5ZjE1NjkyMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3Nz
L1N0eWxlU2hlZXRDb250ZW50cy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL1N0eWxlU2hl
ZXRDb250ZW50cy5jcHAKQEAgLTMzLDYgKzMzLDcgQEAKICNpbmNsdWRlICJTdHlsZVJ1bGVJbXBv
cnQuaCIKICNpbmNsdWRlICJXZWJDb3JlTWVtb3J5SW5zdHJ1bWVudGF0aW9uLmgiCiAjaW5jbHVk
ZSA8d3RmL0RlcXVlLmg+CisjaW5jbHVkZSA8d3RmL01lbW9yeUluc3RydW1lbnRhdGlvblZlY3Rv
ci5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKQEAgLTQ5MCw3ICs0OTEsNyBAQCB2b2lkIFN0
eWxlU2hlZXRDb250ZW50czo6cmVwb3J0TWVtb3J5VXNhZ2UoTWVtb3J5T2JqZWN0SW5mbyogbWVt
b3J5T2JqZWN0SW5mbykgYwogICAgIGluZm8uYWRkTWVtYmVyKG1fb3JpZ2luYWxVUkwpOwogICAg
IGluZm8uYWRkTWVtYmVyKG1fZW5jb2RpbmdGcm9tQ2hhcnNldFJ1bGUpOwogICAgIGluZm8uYWRk
VmVjdG9yKG1faW1wb3J0UnVsZXMpOwotICAgIGluZm8uYWRkSW5zdHJ1bWVudGVkVmVjdG9yKG1f
Y2hpbGRSdWxlcyk7CisgICAgaW5mby5hZGRNZW1iZXIobV9jaGlsZFJ1bGVzKTsKICAgICBpbmZv
LmFkZEhhc2hNYXAobV9uYW1lc3BhY2VzKTsKICAgICBpbmZvLmFkZFZlY3RvcihtX2NsaWVudHMp
OwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL1dlYktpdENTU0tleWZyYW1lc1J1
bGUuY3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL1dlYktpdENTU0tleWZyYW1lc1J1bGUuY3BwCmlu
ZGV4IGEyOTkxYTgxOGY1MGZmZjRkNWI0ZTA5YmQ0MzI5YjhhMzFiODUwMWUuLjA4ZmJiMGE1NTg1
ZDdiNmY4NmJiOTUyOGU3OTE3ZDg2OTQ3NTRlNjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2Nzcy9XZWJLaXRDU1NLZXlmcmFtZXNSdWxlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3Mv
V2ViS2l0Q1NTS2V5ZnJhbWVzUnVsZS5jcHAKQEAgLTMzLDYgKzMzLDcgQEAKICNpbmNsdWRlICJT
dHlsZVNoZWV0LmgiCiAjaW5jbHVkZSAiV2ViQ29yZU1lbW9yeUluc3RydW1lbnRhdGlvbi5oIgog
I2luY2x1ZGUgIldlYktpdENTU0tleWZyYW1lUnVsZS5oIgorI2luY2x1ZGUgPHd0Zi9NZW1vcnlJ
bnN0cnVtZW50YXRpb25WZWN0b3IuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9TdHJpbmdCdWlsZGVy
Lmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKQEAgLTkwLDcgKzkxLDcgQEAgaW50IFN0eWxlUnVs
ZUtleWZyYW1lczo6ZmluZEtleWZyYW1lSW5kZXgoY29uc3QgU3RyaW5nJiBrZXkpIGNvbnN0CiB2
b2lkIFN0eWxlUnVsZUtleWZyYW1lczo6cmVwb3J0RGVzY2VuZGFudE1lbW9yeVVzYWdlKE1lbW9y
eU9iamVjdEluZm8qIG1lbW9yeU9iamVjdEluZm8pIGNvbnN0CiB7CiAgICAgTWVtb3J5Q2xhc3NJ
bmZvIGluZm8obWVtb3J5T2JqZWN0SW5mbywgdGhpcywgV2ViQ29yZU1lbW9yeVR5cGVzOjpDU1Mp
OwotICAgIGluZm8uYWRkSW5zdHJ1bWVudGVkVmVjdG9yKG1fa2V5ZnJhbWVzKTsKKyAgICBpbmZv
LmFkZE1lbWJlcihtX2tleWZyYW1lcyk7CiAgICAgaW5mby5hZGRNZW1iZXIobV9uYW1lKTsKIH0K
IApAQCAtMjExLDcgKzIxMiw3IEBAIHZvaWQgV2ViS2l0Q1NTS2V5ZnJhbWVzUnVsZTo6cmVwb3J0
RGVzY2VuZGFudE1lbW9yeVVzYWdlKE1lbW9yeU9iamVjdEluZm8qIG1lbW9yCiAgICAgTWVtb3J5
Q2xhc3NJbmZvIGluZm8obWVtb3J5T2JqZWN0SW5mbywgdGhpcywgV2ViQ29yZU1lbW9yeVR5cGVz
OjpDU1MpOwogICAgIENTU1J1bGU6OnJlcG9ydEJhc2VDbGFzc01lbW9yeVVzYWdlKG1lbW9yeU9i
amVjdEluZm8pOwogICAgIGluZm8uYWRkTWVtYmVyKG1fa2V5ZnJhbWVzUnVsZSk7Ci0gICAgaW5m
by5hZGRJbnN0cnVtZW50ZWRWZWN0b3IobV9jaGlsZFJ1bGVDU1NPTVdyYXBwZXJzKTsKKyAgICBp
bmZvLmFkZE1lbWJlcihtX2NoaWxkUnVsZUNTU09NV3JhcHBlcnMpOwogICAgIGluZm8uYWRkTWVt
YmVyKG1fcnVsZUxpc3RDU1NPTVdyYXBwZXIpOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9jc3MvV2ViS2l0Q1NTUmVnaW9uUnVsZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvV2Vi
S2l0Q1NTUmVnaW9uUnVsZS5jcHAKaW5kZXggNWMyYzcyMWNkNjg1NGFkMzkyMWFjNTYzOTE4NWY2
YTk2ODkxM2MzMS4uY2UxMjA3Y2FiZGY5YmY4NTYwNTllODZkNmIyMGYxZmIyMjg0M2RlMyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL1dlYktpdENTU1JlZ2lvblJ1bGUuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2Nzcy9XZWJLaXRDU1NSZWdpb25SdWxlLmNwcApAQCAtMzQsNiArMzQs
NyBAQAogI2luY2x1ZGUgIkNTU1BhcnNlci5oIgogI2luY2x1ZGUgIkNTU1J1bGVMaXN0LmgiCiAj
aW5jbHVkZSAiU3R5bGVSdWxlLmgiCisjaW5jbHVkZSA8d3RmL01lbW9yeUluc3RydW1lbnRhdGlv
blZlY3Rvci5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L1N0cmluZ0J1aWxkZXIuaD4KIAogI2lmIEVO
QUJMRShDU1NfUkVHSU9OUykKQEAgLTExMyw3ICsxMTQsNyBAQCB2b2lkIFdlYktpdENTU1JlZ2lv
blJ1bGU6OnJlcG9ydERlc2NlbmRhbnRNZW1vcnlVc2FnZShNZW1vcnlPYmplY3RJbmZvKiBtZW1v
cnlPYgogICAgIE1lbW9yeUNsYXNzSW5mbyBpbmZvKG1lbW9yeU9iamVjdEluZm8sIHRoaXMsIFdl
YkNvcmVNZW1vcnlUeXBlczo6Q1NTKTsKICAgICBDU1NSdWxlOjpyZXBvcnRCYXNlQ2xhc3NNZW1v
cnlVc2FnZShtZW1vcnlPYmplY3RJbmZvKTsKICAgICBpbmZvLmFkZE1lbWJlcihtX3JlZ2lvblJ1
bGUpOwotICAgIGluZm8uYWRkSW5zdHJ1bWVudGVkVmVjdG9yKG1fY2hpbGRSdWxlQ1NTT01XcmFw
cGVycyk7CisgICAgaW5mby5hZGRNZW1iZXIobV9jaGlsZFJ1bGVDU1NPTVdyYXBwZXJzKTsKICAg
ICBpbmZvLmFkZE1lbWJlcihtX3J1bGVMaXN0Q1NTT01XcmFwcGVyKTsKIH0KIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9E
b2N1bWVudC5jcHAKaW5kZXggYWI0OGNhMzgyYmIyNTliNzY5ZmU3YTM1ZmQyYzQzNjU0MTNmN2Qx
ZS4uMjk4MDYwMjM4ZDUxOWI5ZTI4MTc2Nzg5MmU2Yjc1OGIyMWEyOTI5YyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20v
RG9jdW1lbnQuY3BwCkBAIC0xNzIsNiArMTcyLDcgQEAKICNpbmNsdWRlIDx3dGYvQ3VycmVudFRp
bWUuaD4KICNpbmNsdWRlIDx3dGYvSGFzaEZ1bmN0aW9ucy5oPgogI2luY2x1ZGUgPHd0Zi9NYWlu
VGhyZWFkLmg+CisjaW5jbHVkZSA8d3RmL01lbW9yeUluc3RydW1lbnRhdGlvblZlY3Rvci5oPgog
I2luY2x1ZGUgPHd0Zi9QYXNzUmVmUHRyLmg+CiAjaW5jbHVkZSA8d3RmL1N0ZExpYkV4dHJhcy5o
PgogI2luY2x1ZGUgPHd0Zi90ZXh0L1N0cmluZ0J1ZmZlci5oPgpAQCAtNjI2NCwxMCArNjI2NSw4
IEBAIHZvaWQgRG9jdW1lbnQ6OnJlcG9ydE1lbW9yeVVzYWdlKE1lbW9yeU9iamVjdEluZm8qIG1l
bW9yeU9iamVjdEluZm8pIGNvbnN0CiAgICAgaW5mby5hZGRNZW1iZXIobV9jYWNoZWRSZXNvdXJj
ZUxvYWRlcik7CiAgICAgaW5mby5hZGRNZW1iZXIobV9lbGVtU2hlZXQpOwogICAgIGluZm8uYWRk
TWVtYmVyKG1fcGFnZVVzZXJTaGVldCk7Ci0gICAgaWYgKG1fcGFnZUdyb3VwVXNlclNoZWV0cykK
LSAgICAgICAgaW5mby5hZGRJbnN0cnVtZW50ZWRWZWN0b3JQdHIobV9wYWdlR3JvdXBVc2VyU2hl
ZXRzKTsKLSAgICBpZiAobV91c2VyU2hlZXRzKQotICAgICAgICBpbmZvLmFkZEluc3RydW1lbnRl
ZFZlY3RvclB0cihtX3VzZXJTaGVldHMpOworICAgIGluZm8uYWRkTWVtYmVyKG1fcGFnZUdyb3Vw
VXNlclNoZWV0cyk7CisgICAgaW5mby5hZGRNZW1iZXIobV91c2VyU2hlZXRzKTsKICAgICBpbmZv
LmFkZEhhc2hTZXQobV9ub2RlSXRlcmF0b3JzKTsKICAgICBpbmZvLmFkZEhhc2hTZXQobV9yYW5n
ZXMpOwogICAgIGluZm8uYWRkTGlzdEhhc2hTZXQobV9zdHlsZVNoZWV0Q2FuZGlkYXRlTm9kZXMp
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0RvY3VtZW50TG9hZGVyLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Eb2N1bWVudExvYWRlci5jcHAKaW5kZXggODM2ODA0MWNm
ODBhM2Q2NDE1MWE5YjBiMGNhNTYyMzZlNGM0NDg5Mi4uNmE1ZjdjMTNjNzczMTRkZWI3NTAxYjhm
MDljYWRlZDg3YTY0OTBmNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0RvY3Vt
ZW50TG9hZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRG9jdW1lbnRMb2FkZXIu
Y3BwCkBAIC01Myw2ICs1Myw3IEBACiAjaW5jbHVkZSAiVGV4dFJlc291cmNlRGVjb2Rlci5oIgog
I2luY2x1ZGUgIldlYkNvcmVNZW1vcnlJbnN0cnVtZW50YXRpb24uaCIKICNpbmNsdWRlIDx3dGYv
QXNzZXJ0aW9ucy5oPgorI2luY2x1ZGUgPHd0Zi9NZW1vcnlJbnN0cnVtZW50YXRpb25WZWN0b3Iu
aD4KICNpbmNsdWRlIDx3dGYvdGV4dC9DU3RyaW5nLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvV1RG
U3RyaW5nLmg+CiAjaW5jbHVkZSA8d3RmL3VuaWNvZGUvVW5pY29kZS5oPgpAQCAtMzc0LDcgKzM3
NSw3IEBAIHZvaWQgRG9jdW1lbnRMb2FkZXI6OnJlcG9ydE1lbW9yeVVzYWdlKE1lbW9yeU9iamVj
dEluZm8qIG1lbW9yeU9iamVjdEluZm8pIGNvbnN0CiAgICAgaW5mby5hZGRNZW1iZXIobV9yZXF1
ZXN0KTsKICAgICBpbmZvLmFkZE1lbWJlcihtX3Jlc3BvbnNlKTsKICAgICBpbmZvLmFkZE1lbWJl
cihtX2xhc3RDaGVja2VkUmVxdWVzdCk7Ci0gICAgaW5mby5hZGRJbnN0cnVtZW50ZWRWZWN0b3Io
bV9yZXNwb25zZXMpOworICAgIGluZm8uYWRkTWVtYmVyKG1fcmVzcG9uc2VzKTsKICAgICBpbmZv
LmFkZEhhc2hNYXAobV9wZW5kaW5nU3Vic3RpdHV0ZVJlc291cmNlcyk7CiAgICAgaW5mby5hZGRJ
bnN0cnVtZW50ZWRIYXNoU2V0KG1fcmVzb3VyY2VzQ2xpZW50S25vd3NBYm91dCk7CiAgICAgaW5m
by5hZGRWZWN0b3IobV9yZXNvdXJjZXNMb2FkZWRGcm9tTWVtb3J5Q2FjaGVGb3JDbGllbnROb3Rp
ZmljYXRpb24pOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9S
ZXNvdXJjZVJlcXVlc3RCYXNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsv
UmVzb3VyY2VSZXF1ZXN0QmFzZS5jcHAKaW5kZXggMDBmNTgzOTA1NTk0NzFlYjdlNGY2M2Q1YWRj
YWFmNmVhYWVkNWI2Yy4uMzAzZGVhYTljYmRhNzZhZmJmYzZjNTYyMmMwNTQ3NDE0OTkwZmM0NSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9SZXNvdXJjZVJlcXVl
c3RCYXNlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL1Jlc291cmNl
UmVxdWVzdEJhc2UuY3BwCkBAIC0yOCw2ICsyOCw3IEBACiAKICNpbmNsdWRlICJQbGF0Zm9ybU1l
bW9yeUluc3RydW1lbnRhdGlvbi5oIgogI2luY2x1ZGUgIlJlc291cmNlUmVxdWVzdC5oIgorI2lu
Y2x1ZGUgPHd0Zi9NZW1vcnlJbnN0cnVtZW50YXRpb25WZWN0b3IuaD4KIAogdXNpbmcgbmFtZXNw
YWNlIHN0ZDsKIApAQCAtNDUyLDcgKzQ1Myw3IEBAIHZvaWQgUmVzb3VyY2VSZXF1ZXN0QmFzZTo6
cmVwb3J0TWVtb3J5VXNhZ2UoTWVtb3J5T2JqZWN0SW5mbyogbWVtb3J5T2JqZWN0SW5mbykKICAg
ICBpbmZvLmFkZE1lbWJlcihtX2h0dHBNZXRob2QpOwogICAgIGluZm8uYWRkSGFzaE1hcChtX2h0
dHBIZWFkZXJGaWVsZHMpOwogICAgIGluZm8uYWRkSW5zdHJ1bWVudGVkTWFwRW50cmllcyhtX2h0
dHBIZWFkZXJGaWVsZHMpOwotICAgIGluZm8uYWRkSW5zdHJ1bWVudGVkVmVjdG9yKG1fcmVzcG9u
c2VDb250ZW50RGlzcG9zaXRpb25FbmNvZGluZ0ZhbGxiYWNrQXJyYXkpOworICAgIGluZm8uYWRk
TWVtYmVyKG1fcmVzcG9uc2VDb250ZW50RGlzcG9zaXRpb25FbmNvZGluZ0ZhbGxiYWNrQXJyYXkp
OwogICAgIGluZm8uYWRkTWVtYmVyKG1faHR0cEJvZHkpOwogfQogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L2Nocm9taXVtL3Rlc3RzL01lbW9yeUluc3RydW1lbnRhdGlvblRlc3QuY3BwIGIv
U291cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0cy9NZW1vcnlJbnN0cnVtZW50YXRpb25UZXN0LmNw
cAppbmRleCA0YWNmNDk2YWQ4N2QyZDgzYTk4N2Q3OTQ2ZjUzNzZlYTc1NmE0MmYwLi4yMWNlOTYz
MTY5Y2RjYjM5MWZkN2EyOWRmMzVmNTYwZmRiZDg0NDZmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L2Nocm9taXVtL3Rlc3RzL01lbW9yeUluc3RydW1lbnRhdGlvblRlc3QuY3BwCisrKyBiL1Nv
dXJjZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMvTWVtb3J5SW5zdHJ1bWVudGF0aW9uVGVzdC5jcHAK
QEAgLTM3LDYgKzM3LDcgQEAKICNpbmNsdWRlIDxndGVzdC9ndGVzdC5oPgogCiAjaW5jbHVkZSA8
d3RmL0hhc2hTZXQuaD4KKyNpbmNsdWRlIDx3dGYvTWVtb3J5SW5zdHJ1bWVudGF0aW9uVmVjdG9y
Lmg+CiAjaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KICNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+
CiAjaW5jbHVkZSA8d3RmL3RleHQvQXRvbWljU3RyaW5nLmg+CkBAIC0yMzUsNiArMjM2LDcgQEAg
Y2xhc3MgSW5zdHJ1bWVudGVkT3duZXIgewogcHVibGljOgogICAgIHRlbXBsYXRlPHR5cGVuYW1l
IFY+CiAgICAgSW5zdHJ1bWVudGVkT3duZXIoY29uc3QgViYgdmFsdWUpIDogbV92YWx1ZSh2YWx1
ZSkgeyB9CisgICAgSW5zdHJ1bWVudGVkT3duZXIoKSB7IH0KICAgICB2b2lkIHJlcG9ydE1lbW9y
eVVzYWdlKE1lbW9yeU9iamVjdEluZm8qIG1lbW9yeU9iamVjdEluZm8pIGNvbnN0CiAgICAgewog
ICAgICAgICBNZW1vcnlDbGFzc0luZm8gaW5mbyhtZW1vcnlPYmplY3RJbmZvLCB0aGlzLCBXZWJD
b3JlTWVtb3J5VHlwZXM6OkRPTSk7CkBAIC0zNjcsNSArMzY5LDc1IEBAIFRFU1QoTWVtb3J5SW5z
dHJ1bWVudGF0aW9uVGVzdCwgZGV0ZWN0UmVwb3J0TWVtb3J5VXNhZ2VNZXRob2QpCiAgICAgfQog
fQogCitURVNUKE1lbW9yeUluc3RydW1lbnRhdGlvblRlc3QsIHZlY3Rvclplcm9JbmxpbmVDYXBh
Y2l0eSkKK3sKKyAgICBWaXNpdGVkT2JqZWN0cyB2aXNpdGVkT2JqZWN0czsKKyAgICBNZW1vcnlJ
bnN0cnVtZW50YXRpb25JbXBsIGltcGwodmlzaXRlZE9iamVjdHMpOworICAgIEluc3RydW1lbnRl
ZE93bmVyPFZlY3RvcjxpbnQ+ID4gdmVjdG9yT3duZXIoMTYpOworICAgIGltcGwuYWRkUm9vdE9i
amVjdCh2ZWN0b3JPd25lcik7CisgICAgRVhQRUNUX0VRKDE2ICogc2l6ZW9mKGludCksIGltcGwu
cmVwb3J0ZWRTaXplRm9yQWxsVHlwZXMoKSk7CisgICAgRVhQRUNUX0VRKDEsIHZpc2l0ZWRPYmpl
Y3RzLnNpemUoKSk7Cit9CisKK1RFU1QoTWVtb3J5SW5zdHJ1bWVudGF0aW9uVGVzdCwgdmVjdG9y
RmllbGRXaXRoSW5saW5lQ2FwYWNpdHkpCit7CisgICAgVmlzaXRlZE9iamVjdHMgdmlzaXRlZE9i
amVjdHM7CisgICAgTWVtb3J5SW5zdHJ1bWVudGF0aW9uSW1wbCBpbXBsKHZpc2l0ZWRPYmplY3Rz
KTsKKyAgICBJbnN0cnVtZW50ZWRPd25lcjxWZWN0b3I8aW50LCA0PiA+IHZlY3Rvck93bmVyOwor
ICAgIGltcGwuYWRkUm9vdE9iamVjdCh2ZWN0b3JPd25lcik7CisgICAgRVhQRUNUX0VRKHN0YXRp
Y19jYXN0PHNpemVfdD4oMCksIGltcGwucmVwb3J0ZWRTaXplRm9yQWxsVHlwZXMoKSk7CisgICAg
RVhQRUNUX0VRKDAsIHZpc2l0ZWRPYmplY3RzLnNpemUoKSk7Cit9CisKK1RFU1QoTWVtb3J5SW5z
dHJ1bWVudGF0aW9uVGVzdCwgdmVjdG9yRmllbGRXaXRoSW5saW5lQ2FwYWNpdHlSZXNpemVkKQor
eworICAgIFZpc2l0ZWRPYmplY3RzIHZpc2l0ZWRPYmplY3RzOworICAgIE1lbW9yeUluc3RydW1l
bnRhdGlvbkltcGwgaW1wbCh2aXNpdGVkT2JqZWN0cyk7CisgICAgSW5zdHJ1bWVudGVkT3duZXI8
VmVjdG9yPGludCwgND4gPiB2ZWN0b3JPd25lcjsKKyAgICB2ZWN0b3JPd25lci5tX3ZhbHVlLnJl
c2VydmVDYXBhY2l0eSg4KTsKKyAgICBpbXBsLmFkZFJvb3RPYmplY3QodmVjdG9yT3duZXIpOwor
ICAgIEVYUEVDVF9FUSg4ICogc2l6ZW9mKGludCksIGltcGwucmVwb3J0ZWRTaXplRm9yQWxsVHlw
ZXMoKSk7CisgICAgRVhQRUNUX0VRKDEsIHZpc2l0ZWRPYmplY3RzLnNpemUoKSk7Cit9CisKK1RF
U1QoTWVtb3J5SW5zdHJ1bWVudGF0aW9uVGVzdCwgaGVhcEFsbG9jYXRlZFZlY3RvcldpdGhJbmxp
bmVDYXBhY2l0eSkKK3sKKyAgICBWaXNpdGVkT2JqZWN0cyB2aXNpdGVkT2JqZWN0czsKKyAgICBN
ZW1vcnlJbnN0cnVtZW50YXRpb25JbXBsIGltcGwodmlzaXRlZE9iamVjdHMpOworICAgIEluc3Ry
dW1lbnRlZE93bmVyPE93blB0cjxWZWN0b3I8aW50LCA0PiA+ID4gdmVjdG9yT3duZXI7CisgICAg
dmVjdG9yT3duZXIubV92YWx1ZSA9IGFkb3B0UHRyKG5ldyBWZWN0b3I8aW50LCA0PigpKTsKKyAg
ICBpbXBsLmFkZFJvb3RPYmplY3QodmVjdG9yT3duZXIpOworICAgIEVYUEVDVF9FUShzaXplb2Yo
VmVjdG9yPGludCwgND4pLCBpbXBsLnJlcG9ydGVkU2l6ZUZvckFsbFR5cGVzKCkpOworICAgIEVY
UEVDVF9FUSgxLCB2aXNpdGVkT2JqZWN0cy5zaXplKCkpOworfQorCitURVNUKE1lbW9yeUluc3Ry
dW1lbnRhdGlvblRlc3QsIGhlYXBBbGxvY2F0ZWRWZWN0b3JXaXRoSW5saW5lQ2FwYWNpdHlSZXNp
emVkKQoreworICAgIFZpc2l0ZWRPYmplY3RzIHZpc2l0ZWRPYmplY3RzOworICAgIE1lbW9yeUlu
c3RydW1lbnRhdGlvbkltcGwgaW1wbCh2aXNpdGVkT2JqZWN0cyk7CisgICAgSW5zdHJ1bWVudGVk
T3duZXI8T3duUHRyPFZlY3RvcjxpbnQsIDQ+ID4gPiB2ZWN0b3JPd25lcjsKKyAgICB2ZWN0b3JP
d25lci5tX3ZhbHVlID0gYWRvcHRQdHIobmV3IFZlY3RvcjxpbnQsIDQ+KCkpOworICAgIHZlY3Rv
ck93bmVyLm1fdmFsdWUtPnJlc2VydmVDYXBhY2l0eSg4KTsKKyAgICBpbXBsLmFkZFJvb3RPYmpl
Y3QodmVjdG9yT3duZXIpOworICAgIEVYUEVDVF9FUSg4ICogc2l6ZW9mKGludCkgKyBzaXplb2Yo
VmVjdG9yPGludCwgND4pLCBpbXBsLnJlcG9ydGVkU2l6ZUZvckFsbFR5cGVzKCkpOworICAgIEVY
UEVDVF9FUSgyLCB2aXNpdGVkT2JqZWN0cy5zaXplKCkpOworfQorCitURVNUKE1lbW9yeUluc3Ry
dW1lbnRhdGlvblRlc3QsIHZlY3RvcldpdGhJbnN0cnVtZW50ZWRUeXBlKQoreworICAgIFZpc2l0
ZWRPYmplY3RzIHZpc2l0ZWRPYmplY3RzOworICAgIE1lbW9yeUluc3RydW1lbnRhdGlvbkltcGwg
aW1wbCh2aXNpdGVkT2JqZWN0cyk7CisKKyAgICB0eXBlZGVmIFZlY3RvcjxTdHJpbmc+IFN0cmlu
Z1ZlY3RvcjsKKyAgICBPd25QdHI8U3RyaW5nVmVjdG9yPiB2YWx1ZSA9IGFkb3B0UHRyKG5ldyBT
dHJpbmdWZWN0b3IoKSk7CisgICAgc2l6ZV90IGNvdW50ID0gMTA7CisgICAgZm9yIChzaXplX3Qg
aSA9IDA7IGkgPCBjb3VudDsgKytpKQorICAgICAgICB2YWx1ZS0+YXBwZW5kKCJzdHJpbmciKTsK
KyAgICBJbnN0cnVtZW50ZWRPd25lcjxTdHJpbmdWZWN0b3IqID4gcm9vdCh2YWx1ZS5nZXQoKSk7
CisgICAgaW1wbC5hZGRSb290T2JqZWN0KHJvb3QpOworICAgIEVYUEVDVF9FUShzaXplb2YoU3Ry
aW5nVmVjdG9yKSArIHNpemVvZihTdHJpbmcpICogdmFsdWUtPmNhcGFjaXR5KCkgKyBzaXplb2Yo
U3RyaW5nSW1wbCkgKiB2YWx1ZS0+c2l6ZSgpLCBpbXBsLnJlcG9ydGVkU2l6ZUZvckFsbFR5cGVz
KCkpOworICAgIEVYUEVDVF9FUShjb3VudCArIDIsIChzaXplX3QpdmlzaXRlZE9iamVjdHMuc2l6
ZSgpKTsKK30KKwogfSAvLyBuYW1lc3BhY2UKIAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>165098</attachid>
            <date>2012-09-21 02:52:37 -0700</date>
            <delta_ts>2012-09-21 08:04:29 -0700</delta_ts>
            <desc>rebaselined. Old addVector and addVectorPtr also were removed.</desc>
            <filename>bug-96650-20120921135200.patch</filename>
            <type>text/plain</type>
            <size>50328</size>
            <attacher name="Ilya Tikhonovsky">loislo</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTI5MjA0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IGM1NzdlYTYyZjRjYTExZGI2YjU1YTM0
NTM2Zjk5MDNlMzdiZThmN2IuLjg5MTdkMTRkMTA2NjYxOWY2ZGM1ODE3MGI5YWJjMTAwMjFhYTIz
NjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMjcgQEAKKzIwMTItMDktMjEgIElseWEgVGlraG9ub3Zza3kgIDxs
b2lzbG9AY2hyb21pdW0ub3JnPgorCisgICAgICAgIFdlYiBJbnNwZWN0b3I6IGV4dHJhY3QgVmVj
dG9yIGluc3RydW1lbnRhdGlvbiBmcm9tIGNvcmUgTk1JIGNvZGUgaW50byBNZW1vcnlJbnN0cnVt
ZW50YXRpb25WZWN0b3IuaCBoZWFkZXIuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD05NjY1MAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgIEFkZGVkIHJlcG9ydE1lbW9yeVVzYWdlIGZyZWUgdGVtcGxhdGUgZnVu
Y3Rpb24gd2l0aCBkZWZhdWx0IGJvZHkgdG8gY29yZSBOTUkgY29kZQorICAgICAgICBhbmQgYWRk
IGN1c3RvbSB2ZXJzaW9uIG9mIHJlcG9ydE1lbW9yeVVzYWdlIGZ1bmN0aW9uIGZvciBWZWN0b3Jz
LgorCisgICAgICAgICogR05VbWFrZWZpbGUubGlzdC5hbToKKyAgICAgICAgKiBXVEYuZ3lwaToK
KyAgICAgICAgKiBXVEYucHJvOgorICAgICAgICAqIFdURi52Y3Byb2ovV1RGLnZjcHJvajoKKyAg
ICAgICAgKiBXVEYueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiB3dGYvTWVt
b3J5SW5zdHJ1bWVudGF0aW9uLmg6CisgICAgICAgIChXVEYpOgorICAgICAgICAoTWVtb3J5SW5z
dHJ1bWVudGF0aW9uKToKKyAgICAgICAgKFdURjo6TWVtb3J5SW5zdHJ1bWVudGF0aW9uOjphZGRP
YmplY3RJbXBsKToKKyAgICAgICAgKiB3dGYvTWVtb3J5SW5zdHJ1bWVudGF0aW9uVmVjdG9yLmg6
IEFkZGVkLgorICAgICAgICAoV1RGKToKKyAgICAgICAgKFdURjo6aW5zdHJ1bWVudFZlY3RvclZh
bHVlcyk6CisgICAgICAgIChXVEY6OnJlcG9ydE1lbW9yeVVzYWdlKToKKwogMjAxMi0wOS0yMCAg
UGF0cmljayBHYW5zdGVyZXIgIDxwYXJvZ2FAd2Via2l0Lm9yZz4KIAogICAgICAgICBBZGQgU3Ry
aW5nOjpudW1iZXJUb1N0cmluZ0ZpeGVkV2lkdGgoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IDMxZWNjNGVlZjNk
NWI5OTc3YzliMzMyOGY3MDRlYjM3ZDFjM2M0YTIuLjYzY2RlODMyNWEzN2RlMDI3ZjlmMTVhMTI4
ZWU0ODdhYTQxMGU3NDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZworKysg
Yi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSw0NyBAQAorMjAxMi0wOS0yMSAg
SWx5YSBUaWtob25vdnNreSAgPGxvaXNsb0BjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgV2ViIElu
c3BlY3RvcjogZXh0cmFjdCBWZWN0b3IgaW5zdHJ1bWVudGF0aW9uIGZyb20gY29yZSBOTUkgY29k
ZSBpbnRvIE1lbW9yeUluc3RydW1lbnRhdGlvblZlY3Rvci5oIGhlYWRlci4KKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTk2NjUwCisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgYWRkSW5zdHJ1bWVudGVkVmVjdG9y
IGFuZCBhZGRJbnN0cnVtZW50ZWRWZWN0b3JQdHIgd2VyZSByZXBsYWNlZCB3aXRoIGFkZE1lbWJl
ci4KKyAgICAgICAgVGhlIHNhbWUgdGhpbmcgaGFwcGVucyB3aXRoIGFkZFZlY3RvciBhbmQgYWRk
VmVjdG9yUHRyLgorCisgICAgICAgICogY3NzL0NTU0dyYWRpZW50VmFsdWUuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6Q1NTR3JhZGllbnRWYWx1ZTo6cmVwb3J0QmFzZUNsYXNzTWVtb3J5VXNhZ2Up
OgorICAgICAgICAqIGNzcy9DU1NJbWFnZVNldFZhbHVlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OkNTU0ltYWdlU2V0VmFsdWU6OnJlcG9ydERlc2NlbmRhbnRNZW1vcnlVc2FnZSk6CisgICAgICAg
ICogY3NzL0NTU01lZGlhUnVsZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDU1NNZWRpYVJ1bGU6
OnJlcG9ydERlc2NlbmRhbnRNZW1vcnlVc2FnZSk6CisgICAgICAgICogY3NzL0NTU1J1bGVMaXN0
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlN0YXRpY0NTU1J1bGVMaXN0OjpyZXBvcnRNZW1vcnlV
c2FnZSk6CisgICAgICAgICogY3NzL0NTU1N0eWxlU2hlZXQuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6Q1NTU3R5bGVTaGVldDo6cmVwb3J0TWVtb3J5VXNhZ2UpOgorICAgICAgICAqIGNzcy9DU1NW
YWx1ZUxpc3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q1NTVmFsdWVMaXN0OjpyZXBvcnREZXNj
ZW5kYW50TWVtb3J5VXNhZ2UpOgorICAgICAgICAqIGNzcy9NZWRpYUxpc3QuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6TWVkaWFRdWVyeVNldDo6cmVwb3J0TWVtb3J5VXNhZ2UpOgorICAgICAgICAq
IGNzcy9NZWRpYVF1ZXJ5LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUXVlcnk6OnJlcG9y
dE1lbW9yeVVzYWdlKToKKyAgICAgICAgKiBjc3MvU3R5bGVSZXNvbHZlci5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpTdHlsZVJlc29sdmVyOjpjb2xsZWN0TWF0Y2hpbmdSdWxlc0Zvckxpc3QpOgor
ICAgICAgICAqIGNzcy9TdHlsZVJ1bGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U3R5bGVSdWxl
QmxvY2s6OnJlcG9ydERlc2NlbmRhbnRNZW1vcnlVc2FnZSk6CisgICAgICAgICogY3NzL1N0eWxl
U2hlZXRDb250ZW50cy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTdHlsZVNoZWV0Q29udGVudHM6
OnJlcG9ydE1lbW9yeVVzYWdlKToKKyAgICAgICAgKiBjc3MvV2ViS2l0Q1NTS2V5ZnJhbWVzUnVs
ZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTdHlsZVJ1bGVLZXlmcmFtZXM6OnJlcG9ydERlc2Nl
bmRhbnRNZW1vcnlVc2FnZSk6CisgICAgICAgIChXZWJDb3JlOjpXZWJLaXRDU1NLZXlmcmFtZXNS
dWxlOjpyZXBvcnREZXNjZW5kYW50TWVtb3J5VXNhZ2UpOgorICAgICAgICAqIGNzcy9XZWJLaXRD
U1NSZWdpb25SdWxlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OldlYktpdENTU1JlZ2lvblJ1bGU6
OnJlcG9ydERlc2NlbmRhbnRNZW1vcnlVc2FnZSk6CisgICAgICAgICogZG9tL0RvY3VtZW50LmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50OjpyZXBvcnRNZW1vcnlVc2FnZSk6CisgICAg
ICAgICogbG9hZGVyL0RvY3VtZW50TG9hZGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRvY3Vt
ZW50TG9hZGVyOjpyZXBvcnRNZW1vcnlVc2FnZSk6CisgICAgICAgICogcGxhdGZvcm0vbmV0d29y
ay9SZXNvdXJjZVJlcXVlc3RCYXNlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlc291cmNlUmVx
dWVzdEJhc2U6OnJlcG9ydE1lbW9yeVVzYWdlKToKKwogMjAxMi0wOS0yMSAgU2hlcmlmZiBCb3Qg
IDx3ZWJraXQucmV2aWV3LmJvdEBnbWFpbC5jb20+CiAKICAgICAgICAgVW5yZXZpZXdlZCwgcm9s
bGluZyBvdXQgcjEyOTA4Ni4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hh
bmdlTG9nIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKaW5kZXggNzY0NmVjNDE0
NjJiNDFiNzNjZDY0YjIwZGNkNTdmZDVjZTkwMWMyNC4uYjY3ZjExNTgxMmI2MzQyZTNlNmMxMWQy
MjI0N2QzMzZhNzdlNWMyYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFu
Z2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwx
NyBAQAorMjAxMi0wOS0yMSAgSWx5YSBUaWtob25vdnNreSAgPGxvaXNsb0BjaHJvbWl1bS5vcmc+
CisKKyAgICAgICAgV2ViIEluc3BlY3RvcjogZXh0cmFjdCBWZWN0b3IgaW5zdHJ1bWVudGF0aW9u
IGZyb20gY29yZSBOTUkgY29kZSBpbnRvIE1lbW9yeUluc3RydW1lbnRhdGlvblZlY3Rvci5oIGhl
YWRlci4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTk2
NjUwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGVz
dCBmb3IgaW5zdHJ1bWVudGVkIHZlY3Rvci4KKworICAgICAgICAqIHRlc3RzL01lbW9yeUluc3Ry
dW1lbnRhdGlvblRlc3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW5zdHJ1bWVudGVkT3duZXI6
Okluc3RydW1lbnRlZE93bmVyKToKKyAgICAgICAgKFdlYkNvcmU6OlRFU1QpOgorICAgICAgICAo
V2ViQ29yZSk6CisKIDIwMTItMDktMjAgIFRvbnkgQ2hhbmcgIDx0b255QGNocm9taXVtLm9yZz4K
IAogICAgICAgICBbY2hyb21pdW1dIFVucmV2aWV3ZWQgYnVpbGQgZml4LiB3ZWJraXRfdW5pdF90
ZXN0cyBoYXZlIGdsb2JhbCBjb25zdHJ1Y3RvcnMuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0dO
VW1ha2VmaWxlLmxpc3QuYW0gYi9Tb3VyY2UvV1RGL0dOVW1ha2VmaWxlLmxpc3QuYW0KaW5kZXgg
ZThlNDJlZGQzNTUyZWRlNTVhZjE4NDIxMTUxZjBlYmI5MzM5NmI4NS4uMGVkMTBkZGFlMTQ4YTA3
MzNhODM1MjY5NTRiNzgxOWZkYmNiZGZmMiAxMDA2NDQKLS0tIGEvU291cmNlL1dURi9HTlVtYWtl
ZmlsZS5saXN0LmFtCisrKyBiL1NvdXJjZS9XVEYvR05VbWFrZWZpbGUubGlzdC5hbQpAQCAtODAs
NiArODAsNyBAQCB3dGZfc291cmNlcyArPSBcCiAgICAgU291cmNlL1dURi93dGYvTWVkaWFUaW1l
LmggXAogICAgIFNvdXJjZS9XVEYvd3RmL01lZGlhVGltZS5jcHAgXAogICAgIFNvdXJjZS9XVEYv
d3RmL01lbW9yeUluc3RydW1lbnRhdGlvbi5oIFwKKyAgICBTb3VyY2UvV1RGL3d0Zi9NZW1vcnlJ
bnN0cnVtZW50YXRpb25WZWN0b3IuaCBcCiAgICAgU291cmNlL1dURi93dGYvTWVzc2FnZVF1ZXVl
LmggXAogICAgIFNvdXJjZS9XVEYvd3RmL01ldGFBbGxvY2F0b3IuY3BwIFwKICAgICBTb3VyY2Uv
V1RGL3d0Zi9NZXRhQWxsb2NhdG9yLmggXApkaWZmIC0tZ2l0IGEvU291cmNlL1dURi9XVEYuZ3lw
aSBiL1NvdXJjZS9XVEYvV1RGLmd5cGkKaW5kZXggNWRjZDAxZWQ3ZDNhNGI3YTljMzE4MWI1NGEx
YWE0YzVhOWYyMTM4MS4uZmRjMjhkNmJiNTVlN2U1NjVkYWYwOTViNzNjYjUzYTczZTA5NDhmYyAx
MDA2NDQKLS0tIGEvU291cmNlL1dURi9XVEYuZ3lwaQorKysgYi9Tb3VyY2UvV1RGL1dURi5neXBp
CkBAIC01MCw2ICs1MCw3IEBACiAgICAgICAgICAgICAnd3RmL01haW5UaHJlYWQuaCcsCiAgICAg
ICAgICAgICAnd3RmL01hdGhFeHRyYXMuaCcsCiAgICAgICAgICAgICAnd3RmL01lbW9yeUluc3Ry
dW1lbnRhdGlvbi5oJywKKyAgICAgICAgICAgICd3dGYvTWVtb3J5SW5zdHJ1bWVudGF0aW9uVmVj
dG9yLmgnLAogICAgICAgICAgICAgJ3d0Zi9NZXNzYWdlUXVldWUuaCcsCiAgICAgICAgICAgICAn
d3RmL05vbkNvcHlpbmdTb3J0LmgnLAogICAgICAgICAgICAgJ3d0Zi9Ob25jb3B5YWJsZS5oJywK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvV1RGLnBybyBiL1NvdXJjZS9XVEYvV1RGLnBybwppbmRl
eCBiYzBhODc3MGVmMWE2N2JmNzViOWIyNWU1NDYxYmQ0Mzk1YTJkZDM4Li5lOGRhNGMwYzZiMjQ2
NzBjZDBiNTgyNzU2MDMxM2IwMGM5Zjk4OThlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL1dURi5w
cm8KKysrIGIvU291cmNlL1dURi9XVEYucHJvCkBAIC04Nyw2ICs4Nyw3IEBAIEhFQURFUlMgKz0g
XAogICAgIE1ENS5oIFwKICAgICBNZWRpYVRpbWUuaCBcCiAgICAgTWVtb3J5SW5zdHJ1bWVudGF0
aW9uLmggXAorICAgIE1lbW9yeUluc3RydW1lbnRhdGlvblZlY3Rvci5oIFwKICAgICBNZXNzYWdl
UXVldWUuaCBcCiAgICAgTWV0YUFsbG9jYXRvci5oIFwKICAgICBNZXRhQWxsb2NhdG9ySGFuZGxl
LmggXApkaWZmIC0tZ2l0IGEvU291cmNlL1dURi9XVEYudmNwcm9qL1dURi52Y3Byb2ogYi9Tb3Vy
Y2UvV1RGL1dURi52Y3Byb2ovV1RGLnZjcHJvagppbmRleCA0YjJjYzYyMWFlMTAwN2QzY2IxM2E1
YzZkYTJhMjU3MWUxMTZkZGE1Li5mOTEwOGM4OTM1ZTJmNTg0YWVhOGI4NzJhM2FlMzRjMTI0MzRl
ODQzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL1dURi52Y3Byb2ovV1RGLnZjcHJvagorKysgYi9T
b3VyY2UvV1RGL1dURi52Y3Byb2ovV1RGLnZjcHJvagpAQCAtOTA1LDYgKzkwNSwxMCBAQAogCQkJ
PgogCQk8L0ZpbGU+CiAJCTxGaWxlCisJCSAgICAgICAgUmVsYXRpdmVQYXRoPSIuLlx3dGZcTWVt
b3J5SW5zdHJ1bWVudGF0aW9uVmVjdG9yLmgiCisJCQk+CisJCTwvRmlsZT4KKwkJPEZpbGUKIAkJ
CVJlbGF0aXZlUGF0aD0iLi5cd3RmXE1lc3NhZ2VRdWV1ZS5oIgogCQkJPgogCQk8L0ZpbGU+CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV1RGL1dURi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291
cmNlL1dURi9XVEYueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCA1MmFmN2I5Y2VjYzVk
MWE1MmFlMDhkOTdiNDIyYjNlNWFhYmQwMDc2Li4zYmIxOWRkZDczYmEwOGMwMTBmNDcwODY2MmE3
Y2EwNWUyMmE4YzQxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL1dURi54Y29kZXByb2ovcHJvamVj
dC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XVEYvV1RGLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oK
QEAgLTE3LDYgKzE3LDcgQEAKIAkJNDMzMEYzOEYxNTc0NUIwNTAwQUFGQThGIC8qIFVSTFN0cmlu
Zy5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0MzMw
RjM4RTE1NzQ1QjA1MDBBQUZBOEYgLyogVVJMU3RyaW5nLmNwcCAqLzsgfTsKIAkJNEYwMzIxQkMx
NTZBQThEMTAwNkVCQUY2IC8qIEJpdEFycmF5LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSA0RjAzMjFCQjE1NkFBOEQxMDA2RUJBRjYgLyogQml0QXJyYXku
aCAqLzsgfTsKIAkJNEYxRDExNTQxNUZGMTFCRTAwMjZFOTA4IC8qIE1lbW9yeUluc3RydW1lbnRh
dGlvbi5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNEYx
RDExNTMxNUZGMTFCRTAwMjZFOTA4IC8qIE1lbW9yeUluc3RydW1lbnRhdGlvbi5oICovOyB9Owor
CQk0RkNCNzEwQTE2MEExQTA3MDA4NDI1RUMgLyogTWVtb3J5SW5zdHJ1bWVudGF0aW9uVmVjdG9y
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0RkNCNzEw
OTE2MEExQTA3MDA4NDI1RUMgLyogTWVtb3J5SW5zdHJ1bWVudGF0aW9uVmVjdG9yLmggKi87IH07
CiAJCTdFMjlDMzNFMTVGRkQ3OUIwMDUxNkQ2MSAvKiBPYmpjUnVudGltZUV4dHJhcy5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gN0UyOUMzM0QxNUZGRDc5
QjAwNTE2RDYxIC8qIE9iamNSdW50aW1lRXh0cmFzLmggKi87IH07CiAJCTgxMzQwMTM4MTVCMDky
RkQwMDFGRjBCOCAvKiBCYXNlNjQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gODEzNDAxMzYxNUIwOTJGRDAwMUZGMEI4IC8qIEJhc2U2NC5jcHAgKi87
IH07CiAJCTgxMzQwMTM5MTVCMDkyRkQwMDFGRjBCOCAvKiBCYXNlNjQuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDgxMzQwMTM3MTVCMDkyRkQwMDFGRjBC
OCAvKiBCYXNlNjQuaCAqLzsgfTsKQEAgLTI2NSw2ICsyNjYsNyBAQAogCQk0MzMwRjM4RTE1NzQ1
QjA1MDBBQUZBOEYgLyogVVJMU3RyaW5nLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNw
cDsgcGF0aCA9IFVSTFN0cmluZy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTRG
MDMyMUJCMTU2QUE4RDEwMDZFQkFGNiAvKiBCaXRBcnJheS5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBCaXRBcnJheS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0
RjFEMTE1MzE1RkYxMUJFMDAyNkU5MDggLyogTWVtb3J5SW5zdHJ1bWVudGF0aW9uLmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE1lbW9yeUluc3RydW1lbnRhdGlvbi5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OworCQk0RkNCNzEwOTE2MEExQTA3MDA4NDI1RUMgLyogTWVt
b3J5SW5zdHJ1bWVudGF0aW9uVmVjdG9yLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IE1lbW9yeUluc3RydW1lbnRhdGlvblZlY3Rvci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQk1RDI0N0I2MjE0Njg5Qjg2MDBFNzhCNzYgLyogbGliV1RGLmEgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZXhwbGljaXRGaWxlVHlwZSA9IGFyY2hpdmUuYXI7IGluY2x1ZGVJ
bkluZGV4ID0gMDsgcGF0aCA9IGxpYldURi5hOyBzb3VyY2VUcmVlID0gQlVJTFRfUFJPRFVDVFNf
RElSOyB9OwogCQk1RDI0N0I2RTE0Njg5QzQ3MDBFNzhCNzYgLyogQmFzZS54Y2NvbmZpZyAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQueGNjb25m
aWc7IHBhdGggPSBCYXNlLnhjY29uZmlnOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1
RDI0N0I2RjE0Njg5QzQ3MDBFNzhCNzYgLyogQ29tcGlsZXJWZXJzaW9uLnhjY29uZmlnICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dC54Y2NvbmZp
ZzsgcGF0aCA9IENvbXBpbGVyVmVyc2lvbi54Y2NvbmZpZzsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKQEAgLTY1MCw2ICs2NTIsNyBAQAogCQkJCUNENTQ5N0FBMTU4NTdEMDMwMEI1QkMzMCAv
KiBNZWRpYVRpbWUuY3BwICovLAogCQkJCUNENTQ5N0FCMTU4NTdEMDMwMEI1QkMzMCAvKiBNZWRp
YVRpbWUuaCAqLywKIAkJCQk0RjFEMTE1MzE1RkYxMUJFMDAyNkU5MDggLyogTWVtb3J5SW5zdHJ1
bWVudGF0aW9uLmggKi8sCisJCQkJNEZDQjcxMDkxNjBBMUEwNzAwODQyNUVDIC8qIE1lbW9yeUlu
c3RydW1lbnRhdGlvblZlY3Rvci5oICovLAogCQkJCUE4QTQ3MkNDMTUxQTgyNUIwMDQxMjNGRiAv
KiBNZXNzYWdlUXVldWUuaCAqLywKIAkJCQlBOEE0NzJDRDE1MUE4MjVCMDA0MTIzRkYgLyogTWV0
YUFsbG9jYXRvci5jcHAgKi8sCiAJCQkJQThBNDcyQ0UxNTFBODI1QjAwNDEyM0ZGIC8qIE1ldGFB
bGxvY2F0b3IuaCAqLywKQEAgLTEwNzYsNiArMTA3OSw3IEBACiAJCQkJQThBNDc0NDYxNTFBODI1
QjAwNDEyM0ZGIC8qIFdURlN0cmluZy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQThBNDc0ODcxNTFB
ODI1QjAwNDEyM0ZGIC8qIFdURlRocmVhZERhdGEuaCBpbiBIZWFkZXJzICovLAogCQkJCTRGMUQx
MTU0MTVGRjExQkUwMDI2RTkwOCAvKiBNZW1vcnlJbnN0cnVtZW50YXRpb24uaCBpbiBIZWFkZXJz
ICovLAorCQkJCTRGQ0I3MTBBMTYwQTFBMDcwMDg0MjVFQyAvKiBNZW1vcnlJbnN0cnVtZW50YXRp
b25WZWN0b3IuaCBpbiBIZWFkZXJzICovLAogCQkJKTsKIAkJCXJ1bk9ubHlGb3JEZXBsb3ltZW50
UG9zdHByb2Nlc3NpbmcgPSAwOwogCQl9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvTWVt
b3J5SW5zdHJ1bWVudGF0aW9uLmggYi9Tb3VyY2UvV1RGL3d0Zi9NZW1vcnlJbnN0cnVtZW50YXRp
b24uaAppbmRleCAxMzFhZjg0OTdhY2VhZDNhOWI5Y2FjMmRlZTE3NDdjODJlOTBiNjEzLi5iMWYy
ZTI5NGE1OTIzMmJjNDVjYjA4YTgzZDJhOGZlY2NlYjI5NmFkIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V1RGL3d0Zi9NZW1vcnlJbnN0cnVtZW50YXRpb24uaAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9NZW1v
cnlJbnN0cnVtZW50YXRpb24uaApAQCAtODEsNiArODEsOCBAQCBwcml2YXRlOgogICAgIHNpemVf
dCBtX29iamVjdFNpemU7CiB9OwogCit0ZW1wbGF0ZTx0eXBlbmFtZSBUPiB2b2lkIHJlcG9ydE1l
bW9yeVVzYWdlKGNvbnN0IFQqIGNvbnN0JiwgTWVtb3J5T2JqZWN0SW5mbyopOworCiBjbGFzcyBN
ZW1vcnlJbnN0cnVtZW50YXRpb24gewogcHVibGljOgogICAgIHZpcnR1YWwgfk1lbW9yeUluc3Ry
dW1lbnRhdGlvbigpIHsgfQpAQCAtMTA3LDYgKzEwOSw3IEBAIHByaXZhdGU6CiAgICAgdmlydHVh
bCB2b2lkIHByb2Nlc3NEZWZlcnJlZEluc3RydW1lbnRlZFBvaW50ZXJzKCkgPSAwOwogCiAgICAg
ZnJpZW5kIGNsYXNzIE1lbW9yeUNsYXNzSW5mbzsKKyAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBUPiBm
cmllbmQgdm9pZCByZXBvcnRNZW1vcnlVc2FnZShjb25zdCBUKiBjb25zdCYsIE1lbW9yeU9iamVj
dEluZm8qKTsKIAogICAgIHRlbXBsYXRlPHR5cGVuYW1lIFQ+IHN0YXRpYyB2b2lkIHNlbGVjdElu
c3RydW1lbnRhdGlvbk1ldGhvZChjb25zdCBUKiBjb25zdCYgb2JqZWN0LCBNZW1vcnlPYmplY3RJ
bmZvKiBtZW1vcnlPYmplY3RJbmZvKQogICAgIHsKQEAgLTE0OCw3ICsxNTEsNiBAQCBwcml2YXRl
OgogICAgIHRlbXBsYXRlPHR5cGVuYW1lIE1hcFR5cGU+IHZvaWQgYWRkSW5zdHJ1bWVudGVkTWFw
RW50cmllcyhjb25zdCBNYXBUeXBlJiwgTWVtb3J5T2JqZWN0VHlwZSk7CiAgICAgdGVtcGxhdGU8
dHlwZW5hbWUgTWFwVHlwZT4gdm9pZCBhZGRJbnN0cnVtZW50ZWRNYXBWYWx1ZXMoY29uc3QgTWFw
VHlwZSYsIE1lbW9yeU9iamVjdFR5cGUpOwogICAgIHRlbXBsYXRlPHR5cGVuYW1lIExpc3RIYXNo
U2V0VHlwZT4gdm9pZCBhZGRMaXN0SGFzaFNldChjb25zdCBMaXN0SGFzaFNldFR5cGUmLCBNZW1v
cnlPYmplY3RUeXBlLCBib29sIGNvbnRlbnRPbmx5ID0gZmFsc2UpOwotICAgIHRlbXBsYXRlPHR5
cGVuYW1lIFZlY3RvclR5cGU+IHZvaWQgYWRkVmVjdG9yKGNvbnN0IFZlY3RvclR5cGUmLCBNZW1v
cnlPYmplY3RUeXBlLCBib29sIGNvbnRlbnRPbmx5ID0gZmFsc2UpOwogICAgIHZvaWQgYWRkUmF3
QnVmZmVyKGNvbnN0IHZvaWQqIGNvbnN0JiBidWZmZXIsIE1lbW9yeU9iamVjdFR5cGUgb3duZXJP
YmplY3RUeXBlLCBzaXplX3Qgc2l6ZSkKICAgICB7CiAgICAgICAgIGlmICghYnVmZmVyIHx8IHZp
c2l0ZWQoYnVmZmVyKSkKQEAgLTE5NCwxNCArMTk2LDkgQEAgcHVibGljOgogICAgIHRlbXBsYXRl
PHR5cGVuYW1lIEhhc2hTZXRUeXBlPiB2b2lkIGFkZEhhc2hTZXQoY29uc3QgSGFzaFNldFR5cGUm
IHNldCkgeyBtX21lbW9yeUluc3RydW1lbnRhdGlvbi0+YWRkSGFzaFNldChzZXQsIG1fb2JqZWN0
VHlwZSwgdHJ1ZSk7IH0KICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBIYXNoU2V0VHlwZT4gdm9pZCBh
ZGRIYXNoQ291bnRlZFNldChjb25zdCBIYXNoU2V0VHlwZSYgc2V0KSB7IG1fbWVtb3J5SW5zdHJ1
bWVudGF0aW9uLT5hZGRIYXNoU2V0KHNldCwgbV9vYmplY3RUeXBlLCB0cnVlKTsgfQogICAgIHRl
bXBsYXRlPHR5cGVuYW1lIEhhc2hTZXRUeXBlPiB2b2lkIGFkZEluc3RydW1lbnRlZEhhc2hTZXQo
Y29uc3QgSGFzaFNldFR5cGUmIHNldCkgeyBtX21lbW9yeUluc3RydW1lbnRhdGlvbi0+YWRkSW5z
dHJ1bWVudGVkQ29sbGVjdGlvbihzZXQsIG1fb2JqZWN0VHlwZSwgdHJ1ZSk7IH0KLSAgICB0ZW1w
bGF0ZTx0eXBlbmFtZSBWZWN0b3JUeXBlPiB2b2lkIGFkZEluc3RydW1lbnRlZFZlY3Rvcihjb25z
dCBWZWN0b3JUeXBlJiB2ZWN0b3IpIHsgbV9tZW1vcnlJbnN0cnVtZW50YXRpb24tPmFkZEluc3Ry
dW1lbnRlZENvbGxlY3Rpb24odmVjdG9yLCBtX29iamVjdFR5cGUsIHRydWUpOyB9Ci0gICAgdGVt
cGxhdGU8dHlwZW5hbWUgVmVjdG9yVHlwZT4gdm9pZCBhZGRJbnN0cnVtZW50ZWRWZWN0b3JQdHIo
Y29uc3QgT3duUHRyPFZlY3RvclR5cGU+JiB2ZWN0b3IpIHsgbV9tZW1vcnlJbnN0cnVtZW50YXRp
b24tPmFkZEluc3RydW1lbnRlZENvbGxlY3Rpb24oKnZlY3RvciwgbV9vYmplY3RUeXBlLCBmYWxz
ZSk7IH0KLSAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBWZWN0b3JUeXBlPiB2b2lkIGFkZEluc3RydW1l
bnRlZFZlY3RvclB0cihjb25zdCBWZWN0b3JUeXBlKiBjb25zdCYgdmVjdG9yKSB7IG1fbWVtb3J5
SW5zdHJ1bWVudGF0aW9uLT5hZGRJbnN0cnVtZW50ZWRDb2xsZWN0aW9uKCp2ZWN0b3IsIG1fb2Jq
ZWN0VHlwZSwgZmFsc2UpOyB9CiAgICAgdGVtcGxhdGU8dHlwZW5hbWUgTWFwVHlwZT4gdm9pZCBh
ZGRJbnN0cnVtZW50ZWRNYXBFbnRyaWVzKGNvbnN0IE1hcFR5cGUmIG1hcCkgeyBtX21lbW9yeUlu
c3RydW1lbnRhdGlvbi0+YWRkSW5zdHJ1bWVudGVkTWFwRW50cmllcyhtYXAsIG1fb2JqZWN0VHlw
ZSk7IH0KICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBNYXBUeXBlPiB2b2lkIGFkZEluc3RydW1lbnRl
ZE1hcFZhbHVlcyhjb25zdCBNYXBUeXBlJiBtYXApIHsgbV9tZW1vcnlJbnN0cnVtZW50YXRpb24t
PmFkZEluc3RydW1lbnRlZE1hcFZhbHVlcyhtYXAsIG1fb2JqZWN0VHlwZSk7IH0KICAgICB0ZW1w
bGF0ZTx0eXBlbmFtZSBMaXN0SGFzaFNldFR5cGU+IHZvaWQgYWRkTGlzdEhhc2hTZXQoY29uc3Qg
TGlzdEhhc2hTZXRUeXBlJiBzZXQpIHsgbV9tZW1vcnlJbnN0cnVtZW50YXRpb24tPmFkZExpc3RI
YXNoU2V0KHNldCwgbV9vYmplY3RUeXBlLCB0cnVlKTsgfQotICAgIHRlbXBsYXRlPHR5cGVuYW1l
IFZlY3RvclR5cGU+IHZvaWQgYWRkVmVjdG9yKGNvbnN0IFZlY3RvclR5cGUmIHZlY3RvcikgeyBt
X21lbW9yeUluc3RydW1lbnRhdGlvbi0+YWRkVmVjdG9yKHZlY3RvciwgbV9vYmplY3RUeXBlLCB0
cnVlKTsgfQotICAgIHRlbXBsYXRlPHR5cGVuYW1lIFZlY3RvclR5cGU+IHZvaWQgYWRkVmVjdG9y
UHRyKGNvbnN0IFZlY3RvclR5cGUqIGNvbnN0IHZlY3RvcikgeyBtX21lbW9yeUluc3RydW1lbnRh
dGlvbi0+YWRkVmVjdG9yKCp2ZWN0b3IsIG1fb2JqZWN0VHlwZSwgZmFsc2UpOyB9CiAgICAgdm9p
ZCBhZGRSYXdCdWZmZXIoY29uc3Qgdm9pZCogY29uc3QmIGJ1ZmZlciwgc2l6ZV90IHNpemUpIHsg
bV9tZW1vcnlJbnN0cnVtZW50YXRpb24tPmFkZFJhd0J1ZmZlcihidWZmZXIsIG1fb2JqZWN0VHlw
ZSwgc2l6ZSk7IH0KIAogICAgIHZvaWQgYWRkV2Vha1BvaW50ZXIodm9pZCopIHsgfQpAQCAtMjEz
LDExICsyMTAsMTcgQEAgcHJpdmF0ZToKIH07CiAKIHRlbXBsYXRlPHR5cGVuYW1lIFQ+Cit2b2lk
IHJlcG9ydE1lbW9yeVVzYWdlKGNvbnN0IFQqIGNvbnN0JiBvYmplY3QsIE1lbW9yeU9iamVjdElu
Zm8qIG1lbW9yeU9iamVjdEluZm8pCit7CisgICAgTWVtb3J5SW5zdHJ1bWVudGF0aW9uOjpzZWxl
Y3RJbnN0cnVtZW50YXRpb25NZXRob2Q8VD4ob2JqZWN0LCBtZW1vcnlPYmplY3RJbmZvKTsKK30K
KwordGVtcGxhdGU8dHlwZW5hbWUgVD4KIHZvaWQgTWVtb3J5SW5zdHJ1bWVudGF0aW9uOjphZGRP
YmplY3RJbXBsKGNvbnN0IFQqIGNvbnN0JiBvYmplY3QsIE1lbW9yeU9iamVjdFR5cGUgb3duZXJP
YmplY3RUeXBlLCBNZW1vcnlPd25pbmdUeXBlIG93bmluZ1R5cGUpCiB7CiAgICAgaWYgKG93bmlu
Z1R5cGUgPT0gYnlSZWZlcmVuY2UpIHsKICAgICAgICAgTWVtb3J5T2JqZWN0SW5mbyBtZW1vcnlP
YmplY3RJbmZvKHRoaXMsIG93bmVyT2JqZWN0VHlwZSk7Ci0gICAgICAgIHNlbGVjdEluc3RydW1l
bnRhdGlvbk1ldGhvZDxUPihvYmplY3QsICZtZW1vcnlPYmplY3RJbmZvKTsKKyAgICAgICAgcmVw
b3J0TWVtb3J5VXNhZ2Uob2JqZWN0LCAmbWVtb3J5T2JqZWN0SW5mbyk7CiAgICAgfSBlbHNlIHsK
ICAgICAgICAgaWYgKCFvYmplY3QgfHwgdmlzaXRlZChvYmplY3QpKQogICAgICAgICAgICAgcmV0
dXJuOwpAQCAtMjk1LDE0ICsyOTgsNiBAQCB2b2lkIE1lbW9yeUluc3RydW1lbnRhdGlvbjo6YWRk
TGlzdEhhc2hTZXQoY29uc3QgTGlzdEhhc2hTZXRUeXBlJiBoYXNoU2V0LCBNZW1vcgogICAgIGNv
dW50T2JqZWN0U2l6ZShvd25lck9iamVjdFR5cGUsIHNpemUpOwogfQogCi10ZW1wbGF0ZTx0eXBl
bmFtZSBWZWN0b3JUeXBlPgotdm9pZCBNZW1vcnlJbnN0cnVtZW50YXRpb246OmFkZFZlY3Rvcihj
b25zdCBWZWN0b3JUeXBlJiB2ZWN0b3IsIE1lbW9yeU9iamVjdFR5cGUgb3duZXJPYmplY3RUeXBl
LCBib29sIGNvbnRlbnRPbmx5KQotewotICAgIGlmICghdmVjdG9yLmRhdGEoKSB8fCB2aXNpdGVk
KHZlY3Rvci5kYXRhKCkpKQotICAgICAgICByZXR1cm47Ci0gICAgY291bnRPYmplY3RTaXplKG93
bmVyT2JqZWN0VHlwZSwgY2FsY3VsYXRlQ29udGFpbmVyU2l6ZSh2ZWN0b3IsIGNvbnRlbnRPbmx5
KSk7Ci19Ci0KIHRlbXBsYXRlPHR5cGVuYW1lIENvbnRhaW5lcj4KIHNpemVfdCBNZW1vcnlJbnN0
cnVtZW50YXRpb246OmNhbGN1bGF0ZUNvbnRhaW5lclNpemUoY29uc3QgQ29udGFpbmVyJiBjb250
YWluZXIsIGJvb2wgY29udGVudE9ubHkpCiB7CkBAIC0zMTMsMTAgKzMwOCwxNCBAQCB0ZW1wbGF0
ZTx0eXBlbmFtZSBUPgogdm9pZCBNZW1vcnlJbnN0cnVtZW50YXRpb246Okluc3RydW1lbnRlZFBv
aW50ZXI8VD46OnByb2Nlc3MoTWVtb3J5SW5zdHJ1bWVudGF0aW9uKiBtZW1vcnlJbnN0cnVtZW50
YXRpb24pCiB7CiAgICAgTWVtb3J5T2JqZWN0SW5mbyBtZW1vcnlPYmplY3RJbmZvKG1lbW9yeUlu
c3RydW1lbnRhdGlvbiwgbV9vd25lck9iamVjdFR5cGUpOwotICAgIHNlbGVjdEluc3RydW1lbnRh
dGlvbk1ldGhvZDxUPihtX3BvaW50ZXIsICZtZW1vcnlPYmplY3RJbmZvKTsKKyAgICByZXBvcnRN
ZW1vcnlVc2FnZShtX3BvaW50ZXIsICZtZW1vcnlPYmplY3RJbmZvKTsKICAgICBtZW1vcnlJbnN0
cnVtZW50YXRpb24tPmNvdW50T2JqZWN0U2l6ZShtZW1vcnlPYmplY3RJbmZvLm9iamVjdFR5cGUo
KSwgbWVtb3J5T2JqZWN0SW5mby5vYmplY3RTaXplKCkpOwogfQogCisvLyBMaW5rIHRpbWUgZ3Vh
cmQgZm9yIHZlY3RvciBtZW1vcnkgaW5zdHJ1bWVudGF0aW9uLgordGVtcGxhdGU8dHlwZW5hbWUg
VCwgc2l6ZV90IGlubGluZUNhcGFjaXR5PiBjbGFzcyBWZWN0b3I7Cit0ZW1wbGF0ZTx0eXBlbmFt
ZSBULCBzaXplX3QgaW5saW5lQ2FwYWNpdHk+IHZvaWQgcmVwb3J0TWVtb3J5VXNhZ2UoY29uc3Qg
VmVjdG9yPFQsIGlubGluZUNhcGFjaXR5PiogY29uc3QmLCBNZW1vcnlPYmplY3RJbmZvKik7CisK
IH0gLy8gbmFtZXNwYWNlIFdURgogCiAjZW5kaWYgLy8gIWRlZmluZWQoTWVtb3J5SW5zdHJ1bWVu
dGF0aW9uX2gpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9NZW1vcnlJbnN0cnVtZW50YXRp
b25WZWN0b3IuaCBiL1NvdXJjZS9XVEYvd3RmL01lbW9yeUluc3RydW1lbnRhdGlvblZlY3Rvci5o
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLmZlYTVjYjc0NjI0ZTNhZWFkNzQ3MmQ5YmExZTVlZTMyNzMwNWVmNDgKLS0t
IC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9NZW1vcnlJbnN0cnVtZW50YXRpb25WZWN0
b3IuaApAQCAtMCwwICsxLDYxIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEyIEdvb2dsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMg
YXJlCisgKiBtZXQ6CisgKgorICogICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2Rl
IG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqICAgICAqIFJlZGlz
dHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKKyAqIGNv
cHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIKKyAqIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlh
bHMgcHJvdmlkZWQgd2l0aCB0aGUKKyAqIGRpc3RyaWJ1dGlvbi4KKyAqICAgICAqIE5laXRoZXIg
dGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKKyAqIGNvbnRyaWJ1
dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBm
cm9tCisgKiB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJt
aXNzaW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdI
VCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKKyAqICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9S
IElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBU
SEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IK
KyAqIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFM
TCBUSEUgQ09QWVJJR0hUCisgKiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBB
TlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKKyAqIFNQRUNJQUwsIEVYRU1QTEFSWSwg
T1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQg
VE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0Yg
VVNFLAorICogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dF
VkVSIENBVVNFRCBBTkQgT04gQU5ZCisgKiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElO
IENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJ
R0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAq
IE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBNZW1vcnlJbnN0cnVtZW50YXRpb25WZWN0b3Jf
aAorI2RlZmluZSBNZW1vcnlJbnN0cnVtZW50YXRpb25WZWN0b3JfaAorCisjaW5jbHVkZSA8d3Rm
L01lbW9yeUluc3RydW1lbnRhdGlvbi5oPgorI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KKworbmFt
ZXNwYWNlIFdURiB7CisKK3RlbXBsYXRlPHR5cGVuYW1lIFQsIHNpemVfdCBpbmxpbmVDYXBhY2l0
eT4KK3ZvaWQgaW5zdHJ1bWVudFZlY3RvclZhbHVlcyhNZW1vcnlDbGFzc0luZm8mIGluZm8sIGNv
bnN0IFZlY3RvcjxULCBpbmxpbmVDYXBhY2l0eT4qIGNvbnN0JiB2ZWN0b3IpCit7CisgICAgZm9y
IChzaXplX3QgaSA9IDA7IGkgPCB2ZWN0b3ItPnNpemUoKTsgKytpKQorICAgICAgICBpbmZvLmFk
ZE1lbWJlcih2ZWN0b3ItPmF0KGkpKTsKK30KKwordGVtcGxhdGU8c2l6ZV90IGlubGluZUNhcGFj
aXR5PiB2b2lkIGluc3RydW1lbnRWZWN0b3JWYWx1ZXMoTWVtb3J5Q2xhc3NJbmZvJiwgY29uc3Qg
VmVjdG9yPGludCwgaW5saW5lQ2FwYWNpdHk+KiBjb25zdCYpIHsgfQordGVtcGxhdGU8c2l6ZV90
IGlubGluZUNhcGFjaXR5PiB2b2lkIGluc3RydW1lbnRWZWN0b3JWYWx1ZXMoTWVtb3J5Q2xhc3NJ
bmZvJiwgY29uc3QgVmVjdG9yPGNoYXIsIGlubGluZUNhcGFjaXR5PiogY29uc3QmKSB7IH0KK3Rl
bXBsYXRlPHNpemVfdCBpbmxpbmVDYXBhY2l0eT4gdm9pZCBpbnN0cnVtZW50VmVjdG9yVmFsdWVz
KE1lbW9yeUNsYXNzSW5mbyYsIGNvbnN0IFZlY3RvcjxjaGFyKiwgaW5saW5lQ2FwYWNpdHk+KiBj
b25zdCYpIHsgfQorCit0ZW1wbGF0ZTx0eXBlbmFtZSBULCBzaXplX3QgaW5saW5lQ2FwYWNpdHk+
Cit2b2lkIHJlcG9ydE1lbW9yeVVzYWdlKGNvbnN0IFZlY3RvcjxULCBpbmxpbmVDYXBhY2l0eT4q
IGNvbnN0JiB2ZWN0b3IsIE1lbW9yeU9iamVjdEluZm8qIG1lbW9yeU9iamVjdEluZm8pCit7Cisg
ICAgTWVtb3J5Q2xhc3NJbmZvIGluZm8obWVtb3J5T2JqZWN0SW5mbywgdmVjdG9yKTsKKyAgICBp
ZiAoaW5saW5lQ2FwYWNpdHkgPCB2ZWN0b3ItPmNhcGFjaXR5KCkpCisgICAgICAgIGluZm8uYWRk
UmF3QnVmZmVyKHZlY3Rvci0+ZGF0YSgpLCB2ZWN0b3ItPmNhcGFjaXR5KCkgKiBzaXplb2YoVCkp
OworICAgIGluc3RydW1lbnRWZWN0b3JWYWx1ZXMoaW5mbywgdmVjdG9yKTsKK30KKworfQorCisj
ZW5kaWYgLy8gIWRlZmluZWQoTWVtb3J5SW5zdHJ1bWVudGF0aW9uVmVjdG9yX2gpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9WOFBlcklzb2xhdGVEYXRhLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1Y4UGVySXNvbGF0ZURhdGEuY3BwCmluZGV4IGUxYmMz
MWU1YzQ2NDU4OTFlNmU2NjZmZGIzNGE2NGM3YTIzMWRjNjguLjRlMWUwYTFmNWM5OWE3N2Y0MDFh
NWM5NzJjNGViZTNkN2IzMjcxYTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L3Y4L1Y4UGVySXNvbGF0ZURhdGEuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4
L1Y4UGVySXNvbGF0ZURhdGEuY3BwCkBAIC0yOCw2ICsyOCw3IEBACiAKICNpbmNsdWRlICJTY3Jp
cHRHQ0V2ZW50LmgiCiAjaW5jbHVkZSAiVjhCaW5kaW5nLmgiCisjaW5jbHVkZSA8d3RmL01lbW9y
eUluc3RydW1lbnRhdGlvblZlY3Rvci5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKQEAgLTg3
LDcgKzg4LDcgQEAgdm9pZCBWOFBlcklzb2xhdGVEYXRhOjpyZXBvcnRNZW1vcnlVc2FnZShNZW1v
cnlPYmplY3RJbmZvKiBtZW1vcnlPYmplY3RJbmZvKSBjb24KICAgICBpbmZvLmFkZEhhc2hNYXAo
bV9yYXdUZW1wbGF0ZXMpOwogICAgIGluZm8uYWRkSGFzaE1hcChtX3RlbXBsYXRlcyk7CiAgICAg
aW5mby5hZGRNZW1iZXIobV9zdHJpbmdDYWNoZSk7Ci0gICAgaW5mby5hZGRWZWN0b3IobV9kb21E
YXRhTGlzdCk7CisgICAgaW5mby5hZGRNZW1iZXIobV9kb21EYXRhTGlzdCk7CiAKICAgICBmb3Ig
KHNpemVfdCBpID0gMDsgaSA8IG1fZG9tRGF0YUxpc3Quc2l6ZSgpOyBpKyspCiAgICAgICAgIGlu
Zm8uYWRkTWVtYmVyKG1fZG9tRGF0YUxpc3RbaV0pOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvY3NzL0NTU0dyYWRpZW50VmFsdWUuY3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU0dyYWRp
ZW50VmFsdWUuY3BwCmluZGV4IGY5NzE1ZjI3ZjU4NTFjOTJhMTg1M2RiNDZiYTcwYmRhZGUxYWVh
MjcuLmQwMGMxMzA4ZTUxMGIzMGRiZGI3MzM5ZGFmYWE4NzdiYTUyNGM3ZWQgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NHcmFkaWVudFZhbHVlLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9jc3MvQ1NTR3JhZGllbnRWYWx1ZS5jcHAKQEAgLTM3LDYgKzM3LDcgQEAKICNpbmNsdWRl
ICJSZW5kZXJPYmplY3QuaCIKICNpbmNsdWRlICJTdHlsZVJlc29sdmVyLmgiCiAjaW5jbHVkZSAi
V2ViQ29yZU1lbW9yeUluc3RydW1lbnRhdGlvbi5oIgorI2luY2x1ZGUgPHd0Zi9NZW1vcnlJbnN0
cnVtZW50YXRpb25WZWN0b3IuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9TdHJpbmdCdWlsZGVyLmg+
CiAjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CiAKQEAgLTQ2OSw3ICs0NzAsNyBAQCB2
b2lkIENTU0dyYWRpZW50VmFsdWU6OnJlcG9ydEJhc2VDbGFzc01lbW9yeVVzYWdlKE1lbW9yeU9i
amVjdEluZm8qIG1lbW9yeU9iamVjdAogICAgIGluZm8uYWRkTWVtYmVyKG1fZmlyc3RZKTsKICAg
ICBpbmZvLmFkZE1lbWJlcihtX3NlY29uZFgpOwogICAgIGluZm8uYWRkTWVtYmVyKG1fc2Vjb25k
WSk7Ci0gICAgaW5mby5hZGRJbnN0cnVtZW50ZWRWZWN0b3IobV9zdG9wcyk7CisgICAgaW5mby5h
ZGRNZW1iZXIobV9zdG9wcyk7CiB9CiAKIFN0cmluZyBDU1NMaW5lYXJHcmFkaWVudFZhbHVlOjpj
dXN0b21Dc3NUZXh0KCkgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NJ
bWFnZVNldFZhbHVlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NJbWFnZVNldFZhbHVlLmNw
cAppbmRleCA1ZTZiZWU1YTYzY2EzMDM2NTcyNGRhZGE5NjgwZDIwNmZkMWNiMGE4Li42ZTAyYTIw
Zjk1YWMzZjE0ZjQ2MWExYzUxMDBiNGFkNjJiZDllZjBhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9jc3MvQ1NTSW1hZ2VTZXRWYWx1ZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0NT
U0ltYWdlU2V0VmFsdWUuY3BwCkBAIC0zNyw2ICszNyw3IEBACiAjaW5jbHVkZSAiU3R5bGVDYWNo
ZWRJbWFnZVNldC5oIgogI2luY2x1ZGUgIlN0eWxlUGVuZGluZ0ltYWdlLmgiCiAjaW5jbHVkZSAi
V2ViQ29yZU1lbW9yeUluc3RydW1lbnRhdGlvbi5oIgorI2luY2x1ZGUgPHd0Zi9NZW1vcnlJbnN0
cnVtZW50YXRpb25WZWN0b3IuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCkBAIC0xNjgsNyAr
MTY5LDcgQEAgdm9pZCBDU1NJbWFnZVNldFZhbHVlOjpyZXBvcnREZXNjZW5kYW50TWVtb3J5VXNh
Z2UoTWVtb3J5T2JqZWN0SW5mbyogbWVtb3J5T2JqZWMKIHsKICAgICBNZW1vcnlDbGFzc0luZm8g
aW5mbyhtZW1vcnlPYmplY3RJbmZvLCB0aGlzLCBXZWJDb3JlTWVtb3J5VHlwZXM6OkNTUyk7CiAg
ICAgQ1NTVmFsdWVMaXN0OjpyZXBvcnREZXNjZW5kYW50TWVtb3J5VXNhZ2UobWVtb3J5T2JqZWN0
SW5mbyk7Ci0gICAgaW5mby5hZGRJbnN0cnVtZW50ZWRWZWN0b3IobV9pbWFnZXNJblNldCk7Cisg
ICAgaW5mby5hZGRNZW1iZXIobV9pbWFnZXNJblNldCk7CiB9CiAKIHZvaWQgQ1NTSW1hZ2VTZXRW
YWx1ZTo6SW1hZ2VXaXRoU2NhbGU6OnJlcG9ydE1lbW9yeVVzYWdlKE1lbW9yeU9iamVjdEluZm8q
IG1lbW9yeU9iamVjdEluZm8pIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3Mv
Q1NTTWVkaWFSdWxlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NNZWRpYVJ1bGUuY3BwCmlu
ZGV4IGYwZTljNzljM2YxMmVlMzc2NDdlZTA3NTkwYmJmOTcwOTcwZWJhYmUuLjhjMmM5NzNjMjEw
NjM2YTYxZWQ2MmU3OTRhYzcwMWRlMzk1YWVjNjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2Nzcy9DU1NNZWRpYVJ1bGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NNZWRpYVJ1
bGUuY3BwCkBAIC0yOSw2ICsyOSw3IEBACiAjaW5jbHVkZSAiRXhjZXB0aW9uQ29kZS5oIgogI2lu
Y2x1ZGUgIlN0eWxlUnVsZS5oIgogI2luY2x1ZGUgIldlYkNvcmVNZW1vcnlJbnN0cnVtZW50YXRp
b24uaCIKKyNpbmNsdWRlIDx3dGYvTWVtb3J5SW5zdHJ1bWVudGF0aW9uVmVjdG9yLmg+CiAjaW5j
bHVkZSA8d3RmL3RleHQvU3RyaW5nQnVpbGRlci5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CkBA
IC0xODAsNyArMTgxLDcgQEAgdm9pZCBDU1NNZWRpYVJ1bGU6OnJlcG9ydERlc2NlbmRhbnRNZW1v
cnlVc2FnZShNZW1vcnlPYmplY3RJbmZvKiBtZW1vcnlPYmplY3RJbmYKICAgICBNZW1vcnlDbGFz
c0luZm8gaW5mbyhtZW1vcnlPYmplY3RJbmZvLCB0aGlzLCBXZWJDb3JlTWVtb3J5VHlwZXM6OkNT
Uyk7CiAgICAgQ1NTUnVsZTo6cmVwb3J0QmFzZUNsYXNzTWVtb3J5VXNhZ2UobWVtb3J5T2JqZWN0
SW5mbyk7CiAgICAgaW5mby5hZGRNZW1iZXIobV9tZWRpYUNTU09NV3JhcHBlcik7Ci0gICAgaW5m
by5hZGRJbnN0cnVtZW50ZWRWZWN0b3IobV9jaGlsZFJ1bGVDU1NPTVdyYXBwZXJzKTsKKyAgICBp
bmZvLmFkZE1lbWJlcihtX2NoaWxkUnVsZUNTU09NV3JhcHBlcnMpOwogICAgIGluZm8uYWRkTWVt
YmVyKG1fcnVsZUxpc3RDU1NPTVdyYXBwZXIpOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9jc3MvQ1NTUnVsZUxpc3QuY3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1J1bGVMaXN0
LmNwcAppbmRleCA0NzJiM2RkNjBkMDA5NGY3NTA1Y2FiYTE2MzlhNjhiY2JmYjQ4Y2RlLi5kYWRj
OTNiMTU0N2I0MTQ5ZGVjMGQ5NmVhNGUxNTY1M2IwNzY3MWVjIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9jc3MvQ1NTUnVsZUxpc3QuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NS
dWxlTGlzdC5jcHAKQEAgLTI0LDYgKzI0LDcgQEAKIAogI2luY2x1ZGUgIkNTU1J1bGUuaCIKICNp
bmNsdWRlICJDU1NTdHlsZVNoZWV0LmgiCisjaW5jbHVkZSA8d3RmL01lbW9yeUluc3RydW1lbnRh
dGlvblZlY3Rvci5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKQEAgLTU0LDcgKzU1LDcgQEAg
dm9pZCBTdGF0aWNDU1NSdWxlTGlzdDo6ZGVyZWYoKQogdm9pZCBTdGF0aWNDU1NSdWxlTGlzdDo6
cmVwb3J0TWVtb3J5VXNhZ2UoTWVtb3J5T2JqZWN0SW5mbyogbWVtb3J5T2JqZWN0SW5mbykgY29u
c3QKIHsKICAgICBNZW1vcnlDbGFzc0luZm8gaW5mbyhtZW1vcnlPYmplY3RJbmZvLCB0aGlzLCBX
ZWJDb3JlTWVtb3J5VHlwZXM6OkNTUyk7Ci0gICAgaW5mby5hZGRJbnN0cnVtZW50ZWRWZWN0b3Io
bV9ydWxlcyk7CisgICAgaW5mby5hZGRNZW1iZXIobV9ydWxlcyk7CiB9CiAKIH0gLy8gbmFtZXNw
YWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NTdHlsZVNoZWV0
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NTdHlsZVNoZWV0LmNwcAppbmRleCAwZTEwMjAy
YzdmZWJiZjJiZTZkODlhZmNjZDU3ZGIyZDAzYTYyY2UyLi5kY2ZjMjIwMDZmZjI2NTNkMTEwYzI5
YzMzNWFlYjZkMjcxNzE0NWVkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTU3R5
bGVTaGVldC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1N0eWxlU2hlZXQuY3BwCkBA
IC0zOCw2ICszOCw3IEBACiAjaW5jbHVkZSAiU3R5bGVSdWxlLmgiCiAjaW5jbHVkZSAiU3R5bGVT
aGVldENvbnRlbnRzLmgiCiAjaW5jbHVkZSAiV2ViQ29yZU1lbW9yeUluc3RydW1lbnRhdGlvbi5o
IgorI2luY2x1ZGUgPHd0Zi9NZW1vcnlJbnN0cnVtZW50YXRpb25WZWN0b3IuaD4KICNpbmNsdWRl
IDx3dGYvdGV4dC9TdHJpbmdCdWlsZGVyLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKQEAgLTE4
Nyw3ICsxODgsNyBAQCB2b2lkIENTU1N0eWxlU2hlZXQ6OnJlcG9ydE1lbW9yeVVzYWdlKE1lbW9y
eU9iamVjdEluZm8qIG1lbW9yeU9iamVjdEluZm8pIGNvbnN0CiAgICAgaW5mby5hZGRNZW1iZXIo
bV9vd25lck5vZGUpOwogICAgIGluZm8uYWRkTWVtYmVyKG1fb3duZXJSdWxlKTsKICAgICBpbmZv
LmFkZE1lbWJlcihtX21lZGlhQ1NTT01XcmFwcGVyKTsKLSAgICBpbmZvLmFkZEluc3RydW1lbnRl
ZFZlY3RvcihtX2NoaWxkUnVsZUNTU09NV3JhcHBlcnMpOworICAgIGluZm8uYWRkTWVtYmVyKG1f
Y2hpbGRSdWxlQ1NTT01XcmFwcGVycyk7CiB9CiAKIHZvaWQgQ1NTU3R5bGVTaGVldDo6c2V0RGlz
YWJsZWQoYm9vbCBkaXNhYmxlZCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NW
YWx1ZUxpc3QuY3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1ZhbHVlTGlzdC5jcHAKaW5kZXgg
MjFlNGZhNzAzNWUwNjA3MDIwNjVmMzlmOWFhYzU4ZDBiNmZhNjZjMy4uOWVjMmQ1MDg1ZmI5ZDZk
MzhkZDRjZWIyMTgzYjkxNDhiYjk0MmU5NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3Nz
L0NTU1ZhbHVlTGlzdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1ZhbHVlTGlzdC5j
cHAKQEAgLTIzLDYgKzIzLDcgQEAKIAogI2luY2x1ZGUgIkNTU1BhcnNlclZhbHVlcy5oIgogI2lu
Y2x1ZGUgIldlYkNvcmVNZW1vcnlJbnN0cnVtZW50YXRpb24uaCIKKyNpbmNsdWRlIDx3dGYvTWVt
b3J5SW5zdHJ1bWVudGF0aW9uVmVjdG9yLmg+CiAjaW5jbHVkZSA8d3RmL1Bhc3NPd25QdHIuaD4K
ICNpbmNsdWRlIDx3dGYvdGV4dC9TdHJpbmdCdWlsZGVyLmg+CiAKQEAgLTE4OSw3ICsxOTAsNyBA
QCBQYXNzUmVmUHRyPENTU1ZhbHVlTGlzdD4gQ1NTVmFsdWVMaXN0OjpjbG9uZUZvckNTU09NKCkg
Y29uc3QKIHZvaWQgQ1NTVmFsdWVMaXN0OjpyZXBvcnREZXNjZW5kYW50TWVtb3J5VXNhZ2UoTWVt
b3J5T2JqZWN0SW5mbyogbWVtb3J5T2JqZWN0SW5mbykgY29uc3QKIHsKICAgICBNZW1vcnlDbGFz
c0luZm8gaW5mbyhtZW1vcnlPYmplY3RJbmZvLCB0aGlzLCBXZWJDb3JlTWVtb3J5VHlwZXM6OkNT
Uyk7Ci0gICAgaW5mby5hZGRJbnN0cnVtZW50ZWRWZWN0b3IobV92YWx1ZXMpOworICAgIGluZm8u
YWRkTWVtYmVyKG1fdmFsdWVzKTsKIH0KIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL01lZGlhTGlzdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9j
c3MvTWVkaWFMaXN0LmNwcAppbmRleCA2MjkwM2Q2YjE2ZTQ0MDI5YzEyODczYzk3YTk3YTNmMTA4
ZjU1ZDdkLi5iZGJjNTcxNzQ4MzRiMjBiODBjZDMxZmQyZWJlOWUyNWFjMzRjNjA3IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvTWVkaWFMaXN0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9jc3MvTWVkaWFMaXN0LmNwcApAQCAtMjcsNiArMjcsNyBAQAogI2luY2x1ZGUgIk1lZGlhUXVl
cnkuaCIKICNpbmNsdWRlICJNZWRpYVF1ZXJ5RXhwLmgiCiAjaW5jbHVkZSAiV2ViQ29yZU1lbW9y
eUluc3RydW1lbnRhdGlvbi5oIgorI2luY2x1ZGUgPHd0Zi9NZW1vcnlJbnN0cnVtZW50YXRpb25W
ZWN0b3IuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9TdHJpbmdCdWlsZGVyLmg+CiAKIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKQEAgLTIxNSw3ICsyMTYsNyBAQCBTdHJpbmcgTWVkaWFRdWVyeVNldDo6bWVk
aWFUZXh0KCkgY29uc3QKIHZvaWQgTWVkaWFRdWVyeVNldDo6cmVwb3J0TWVtb3J5VXNhZ2UoTWVt
b3J5T2JqZWN0SW5mbyogbWVtb3J5T2JqZWN0SW5mbykgY29uc3QKIHsKICAgICBNZW1vcnlDbGFz
c0luZm8gaW5mbyhtZW1vcnlPYmplY3RJbmZvLCB0aGlzLCBXZWJDb3JlTWVtb3J5VHlwZXM6OkNT
Uyk7Ci0gICAgaW5mby5hZGRJbnN0cnVtZW50ZWRWZWN0b3IobV9xdWVyaWVzKTsKKyAgICBpbmZv
LmFkZE1lbWJlcihtX3F1ZXJpZXMpOwogfQogICAgIAogTWVkaWFMaXN0OjpNZWRpYUxpc3QoTWVk
aWFRdWVyeVNldCogbWVkaWFRdWVyaWVzLCBDU1NTdHlsZVNoZWV0KiBwYXJlbnRTaGVldCkKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9NZWRpYVF1ZXJ5LmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2Nzcy9NZWRpYVF1ZXJ5LmNwcAppbmRleCBhM2YyNWQ3MTJkNWIxMDM0MDI3MWJjMjAwMjVi
OTY2NzMxNDYyZDY0Li5mYzQ1NTFmZmIxODM3OTllMzQwMjhhMjViMmJmZTczODQzNTMyYjJiIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvTWVkaWFRdWVyeS5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvY3NzL01lZGlhUXVlcnkuY3BwCkBAIC0zMSw2ICszMSw3IEBACiAKICNpbmNsdWRl
ICJNZWRpYVF1ZXJ5RXhwLmgiCiAjaW5jbHVkZSAiV2ViQ29yZU1lbW9yeUluc3RydW1lbnRhdGlv
bi5oIgorI2luY2x1ZGUgPHd0Zi9NZW1vcnlJbnN0cnVtZW50YXRpb25WZWN0b3IuaD4KICNpbmNs
dWRlIDx3dGYvTm9uQ29weWluZ1NvcnQuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9TdHJpbmdCdWls
ZGVyLmg+CiAKQEAgLTEzOCw3ICsxMzksNyBAQCB2b2lkIE1lZGlhUXVlcnk6OnJlcG9ydE1lbW9y
eVVzYWdlKE1lbW9yeU9iamVjdEluZm8qIG1lbW9yeU9iamVjdEluZm8pIGNvbnN0CiB7CiAgICAg
TWVtb3J5Q2xhc3NJbmZvIGluZm8obWVtb3J5T2JqZWN0SW5mbywgdGhpcywgV2ViQ29yZU1lbW9y
eVR5cGVzOjpDU1MpOwogICAgIGluZm8uYWRkTWVtYmVyKG1fbWVkaWFUeXBlKTsKLSAgICBpbmZv
LmFkZEluc3RydW1lbnRlZFZlY3RvclB0cihtX2V4cHJlc3Npb25zKTsKKyAgICBpbmZvLmFkZE1l
bWJlcihtX2V4cHJlc3Npb25zKTsKICAgICBpbmZvLmFkZE1lbWJlcihtX3NlcmlhbGl6YXRpb25D
YWNoZSk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9TdHlsZVByb3BlcnR5
U2V0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9TdHlsZVByb3BlcnR5U2V0LmNwcAppbmRleCA2
ZTNjMGZkZTk2ZDI4YzNhMDY1MjZkYTk5ZjFiMzA2YWU1NGFlZTYzLi5jMTNhMmRiOTk1ODJiZDAz
NjI1NDQyNjRiZGE4NTM4YTI4OTY0OWQzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3Mv
U3R5bGVQcm9wZXJ0eVNldC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL1N0eWxlUHJvcGVy
dHlTZXQuY3BwCkBAIC0zMyw2ICszMyw3IEBACiAjaW5jbHVkZSAiU3R5bGVQcm9wZXJ0eVNob3J0
aGFuZC5oIgogI2luY2x1ZGUgIlN0eWxlU2hlZXRDb250ZW50cy5oIgogI2luY2x1ZGUgPHd0Zi9C
aXRBcnJheS5oPgorI2luY2x1ZGUgPHd0Zi9NZW1vcnlJbnN0cnVtZW50YXRpb25WZWN0b3IuaD4K
ICNpbmNsdWRlIDx3dGYvdGV4dC9TdHJpbmdCdWlsZGVyLmg+CiAKICNpZm5kZWYgTkRFQlVHCkBA
IC0xMTIzLDcgKzExMjQsNyBAQCB2b2lkIFN0eWxlUHJvcGVydHlTZXQ6OnJlcG9ydE1lbW9yeVVz
YWdlKE1lbW9yeU9iamVjdEluZm8qIG1lbW9yeU9iamVjdEluZm8pIGNvbgogICAgIHNpemVfdCBh
Y3R1YWxTaXplID0gbV9pc011dGFibGUgPyBzaXplb2YoU3R5bGVQcm9wZXJ0eVNldCkgOiBpbW11
dGFibGVTdHlsZVByb3BlcnR5U2V0U2l6ZShtX2FycmF5U2l6ZSk7CiAgICAgTWVtb3J5Q2xhc3NJ
bmZvIGluZm8obWVtb3J5T2JqZWN0SW5mbywgdGhpcywgV2ViQ29yZU1lbW9yeVR5cGVzOjpDU1Ms
IGFjdHVhbFNpemUpOwogICAgIGlmIChtX2lzTXV0YWJsZSkKLSAgICAgICAgaW5mby5hZGRWZWN0
b3JQdHIobV9tdXRhYmxlUHJvcGVydHlWZWN0b3IpOworICAgICAgICBpbmZvLmFkZE1lbWJlciht
X211dGFibGVQcm9wZXJ0eVZlY3Rvcik7CiAKICAgICB1bnNpZ25lZCBjb3VudCA9IHByb3BlcnR5
Q291bnQoKTsKICAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgY291bnQ7ICsraSkKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9TdHlsZVJlc29sdmVyLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2Nzcy9TdHlsZVJlc29sdmVyLmNwcAppbmRleCA2NTc3OWVhYTA3NDBjMzMwZDY4NWJlN2I1
Y2E1NThlY2Q5ZTY5NTQ0Li44MGFjNjg1MTZlNDJjMGMwM2RhN2M3ZjA0ZTA5N2IyOGQ0MmE3YzFm
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVSZXNvbHZlci5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvY3NzL1N0eWxlUmVzb2x2ZXIuY3BwCkBAIC0xMjUsNiArMTI1LDcgQEAK
ICNpbmNsdWRlICJXZWJLaXRDU1NUcmFuc2Zvcm1WYWx1ZS5oIgogI2luY2x1ZGUgIldlYktpdEZv
bnRGYW1pbHlOYW1lcy5oIgogI2luY2x1ZGUgIlhNTE5hbWVzLmgiCisjaW5jbHVkZSA8d3RmL01l
bW9yeUluc3RydW1lbnRhdGlvblZlY3Rvci5oPgogI2luY2x1ZGUgPHd0Zi9TdGRMaWJFeHRyYXMu
aD4KICNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+CiAKQEAgLTc0Nyw4ICs3NDgsOCBAQCB2b2lkIFN0
eWxlUmVzb2x2ZXI6OkZlYXR1cmVzOjpyZXBvcnRNZW1vcnlVc2FnZShNZW1vcnlPYmplY3RJbmZv
KiBtZW1vcnlPYmplY3RJbgogICAgIE1lbW9yeUNsYXNzSW5mbyBpbmZvKG1lbW9yeU9iamVjdElu
Zm8sIHRoaXMsIFdlYkNvcmVNZW1vcnlUeXBlczo6Q1NTKTsKICAgICBpbmZvLmFkZEhhc2hTZXQo
aWRzSW5SdWxlcyk7CiAgICAgaW5mby5hZGRIYXNoU2V0KGF0dHJzSW5SdWxlcyk7Ci0gICAgaW5m
by5hZGRWZWN0b3Ioc2libGluZ1J1bGVzKTsKLSAgICBpbmZvLmFkZFZlY3Rvcih1bmNvbW1vbkF0
dHJpYnV0ZVJ1bGVzKTsKKyAgICBpbmZvLmFkZE1lbWJlcihzaWJsaW5nUnVsZXMpOworICAgIGlu
Zm8uYWRkTWVtYmVyKHVuY29tbW9uQXR0cmlidXRlUnVsZXMpOwogfQogCiBzdGF0aWMgU3R5bGVT
aGVldENvbnRlbnRzKiBwYXJzZVVBU2hlZXQoY29uc3QgU3RyaW5nJiBzdHIpCkBAIC0yNTY3LDcg
KzI1NjgsNyBAQCBzdGF0aWMgdm9pZCByZXBvcnRBdG9tUnVsZU1hcChNZW1vcnlDbGFzc0luZm8q
IGluZm8sIGNvbnN0IFJ1bGVTZXQ6OkF0b21SdWxlTWFwJgogewogICAgIGluZm8tPmFkZEhhc2hN
YXAoYXRvbWljUnVsZU1hcCk7CiAgICAgZm9yIChSdWxlU2V0OjpBdG9tUnVsZU1hcDo6Y29uc3Rf
aXRlcmF0b3IgaXQgPSBhdG9taWNSdWxlTWFwLmJlZ2luKCk7IGl0ICE9IGF0b21pY1J1bGVNYXAu
ZW5kKCk7ICsraXQpCi0gICAgICAgIGluZm8tPmFkZEluc3RydW1lbnRlZFZlY3RvcigqaXQtPnNl
Y29uZCk7CisgICAgICAgIGluZm8tPmFkZE1lbWJlcigqaXQtPnNlY29uZCk7CiB9CiAKIHZvaWQg
UnVsZVNldDo6cmVwb3J0TWVtb3J5VXNhZ2UoTWVtb3J5T2JqZWN0SW5mbyogbWVtb3J5T2JqZWN0
SW5mbykgY29uc3QKQEAgLTI1NzcsMTEgKzI1NzgsMTEgQEAgdm9pZCBSdWxlU2V0OjpyZXBvcnRN
ZW1vcnlVc2FnZShNZW1vcnlPYmplY3RJbmZvKiBtZW1vcnlPYmplY3RJbmZvKSBjb25zdAogICAg
IHJlcG9ydEF0b21SdWxlTWFwKCZpbmZvLCBtX2NsYXNzUnVsZXMpOwogICAgIHJlcG9ydEF0b21S
dWxlTWFwKCZpbmZvLCBtX3RhZ1J1bGVzKTsKICAgICByZXBvcnRBdG9tUnVsZU1hcCgmaW5mbywg
bV9zaGFkb3dQc2V1ZG9FbGVtZW50UnVsZXMpOwotICAgIGluZm8uYWRkSW5zdHJ1bWVudGVkVmVj
dG9yKG1fbGlua1BzZXVkb0NsYXNzUnVsZXMpOwotICAgIGluZm8uYWRkSW5zdHJ1bWVudGVkVmVj
dG9yKG1fZm9jdXNQc2V1ZG9DbGFzc1J1bGVzKTsKLSAgICBpbmZvLmFkZEluc3RydW1lbnRlZFZl
Y3RvcihtX3VuaXZlcnNhbFJ1bGVzKTsKLSAgICBpbmZvLmFkZFZlY3RvcihtX3BhZ2VSdWxlcyk7
Ci0gICAgaW5mby5hZGRJbnN0cnVtZW50ZWRWZWN0b3IobV9yZWdpb25TZWxlY3RvcnNBbmRSdWxl
U2V0cyk7CisgICAgaW5mby5hZGRNZW1iZXIobV9saW5rUHNldWRvQ2xhc3NSdWxlcyk7CisgICAg
aW5mby5hZGRNZW1iZXIobV9mb2N1c1BzZXVkb0NsYXNzUnVsZXMpOworICAgIGluZm8uYWRkTWVt
YmVyKG1fdW5pdmVyc2FsUnVsZXMpOworICAgIGluZm8uYWRkTWVtYmVyKG1fcGFnZVJ1bGVzKTsK
KyAgICBpbmZvLmFkZE1lbWJlcihtX3JlZ2lvblNlbGVjdG9yc0FuZFJ1bGVTZXRzKTsKIH0KIAog
dm9pZCBSdWxlU2V0OjpSdWxlU2V0U2VsZWN0b3JQYWlyOjpyZXBvcnRNZW1vcnlVc2FnZShNZW1v
cnlPYmplY3RJbmZvKiBtZW1vcnlPYmplY3RJbmZvKSBjb25zdApAQCAtNTc2Niw3ICs1NzY3LDcg
QEAgdm9pZCBTdHlsZVJlc29sdmVyOjpNYXRjaGVkUHJvcGVydGllczo6cmVwb3J0TWVtb3J5VXNh
Z2UoTWVtb3J5T2JqZWN0SW5mbyogbWVtb3IKIHZvaWQgU3R5bGVSZXNvbHZlcjo6TWF0Y2hlZFBy
b3BlcnRpZXNDYWNoZUl0ZW06OnJlcG9ydE1lbW9yeVVzYWdlKE1lbW9yeU9iamVjdEluZm8qIG1l
bW9yeU9iamVjdEluZm8pIGNvbnN0CiB7CiAgICAgTWVtb3J5Q2xhc3NJbmZvIGluZm8obWVtb3J5
T2JqZWN0SW5mbywgdGhpcywgV2ViQ29yZU1lbW9yeVR5cGVzOjpDU1MpOwotICAgIGluZm8uYWRk
SW5zdHJ1bWVudGVkVmVjdG9yKG1hdGNoZWRQcm9wZXJ0aWVzKTsKKyAgICBpbmZvLmFkZE1lbWJl
cihtYXRjaGVkUHJvcGVydGllcyk7CiB9CiAKIHZvaWQgTWVkaWFRdWVyeVJlc3VsdDo6cmVwb3J0
TWVtb3J5VXNhZ2UoTWVtb3J5T2JqZWN0SW5mbyogbWVtb3J5T2JqZWN0SW5mbykgY29uc3QKQEAg
LTU3ODYsMTMgKzU3ODcsMTMgQEAgdm9pZCBTdHlsZVJlc29sdmVyOjpyZXBvcnRNZW1vcnlVc2Fn
ZShNZW1vcnlPYmplY3RJbmZvKiBtZW1vcnlPYmplY3RJbmZvKSBjb25zdAogICAgIGluZm8uYWRk
SGFzaE1hcChtX2tleWZyYW1lc1J1bGVNYXApOwogICAgIGluZm8uYWRkSGFzaE1hcChtX21hdGNo
ZWRQcm9wZXJ0aWVzQ2FjaGUpOwogICAgIGluZm8uYWRkSW5zdHJ1bWVudGVkTWFwVmFsdWVzKG1f
bWF0Y2hlZFByb3BlcnRpZXNDYWNoZSk7Ci0gICAgaW5mby5hZGRWZWN0b3IobV9tYXRjaGVkUnVs
ZXMpOworICAgIGluZm8uYWRkTWVtYmVyKG1fbWF0Y2hlZFJ1bGVzKTsKIAogICAgIGluZm8uYWRk
TWVtYmVyKG1fcnVsZUxpc3QpOwogICAgIGluZm8uYWRkSGFzaE1hcChtX3BlbmRpbmdJbWFnZVBy
b3BlcnRpZXMpOwogICAgIGluZm8uYWRkSW5zdHJ1bWVudGVkTWFwVmFsdWVzKG1fcGVuZGluZ0lt
YWdlUHJvcGVydGllcyk7CiAgICAgaW5mby5hZGRNZW1iZXIobV9saW5lSGVpZ2h0VmFsdWUpOwot
ICAgIGluZm8uYWRkSW5zdHJ1bWVudGVkVmVjdG9yKG1fdmlld3BvcnREZXBlbmRlbnRNZWRpYVF1
ZXJ5UmVzdWx0cyk7CisgICAgaW5mby5hZGRNZW1iZXIobV92aWV3cG9ydERlcGVuZGVudE1lZGlh
UXVlcnlSZXN1bHRzKTsKICAgICBpbmZvLmFkZEhhc2hNYXAobV9zdHlsZVJ1bGVUb0NTU09NV3Jh
cHBlck1hcCk7CiAgICAgaW5mby5hZGRJbnN0cnVtZW50ZWRNYXBFbnRyaWVzKG1fc3R5bGVSdWxl
VG9DU1NPTVdyYXBwZXJNYXApOwogICAgIGluZm8uYWRkSW5zdHJ1bWVudGVkSGFzaFNldChtX3N0
eWxlU2hlZXRDU1NPTVdyYXBwZXJTZXQpOwpAQCAtNTgwMiw3ICs1ODAzLDcgQEAgdm9pZCBTdHls
ZVJlc29sdmVyOjpyZXBvcnRNZW1vcnlVc2FnZShNZW1vcnlPYmplY3RJbmZvKiBtZW1vcnlPYmpl
Y3RJbmZvKSBjb25zdAogI2lmIEVOQUJMRShTVFlMRV9TQ09QRUQpCiAgICAgaW5mby5hZGRIYXNo
TWFwKG1fc2NvcGVkQXV0aG9yU3R5bGVzKTsKICAgICBpbmZvLmFkZEluc3RydW1lbnRlZE1hcEVu
dHJpZXMobV9zY29wZWRBdXRob3JTdHlsZXMpOwotICAgIGluZm8uYWRkVmVjdG9yKG1fc2NvcGVT
dGFjayk7CisgICAgaW5mby5hZGRNZW1iZXIobV9zY29wZVN0YWNrKTsKICNlbmRpZgogCiAgICAg
Ly8gRklYTUU6IG1vdmUgdGhpcyB0byBhIHBsYWNlIHdoZXJlIGl0IHdvdWxkIGJlIGNhbGxlZCBv
bmx5IG9uY2U/CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVSdWxlLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2Nzcy9TdHlsZVJ1bGUuY3BwCmluZGV4IDVlY2UxYjRhMjE0MWVjYmUw
YmViZjIyZDllOGVkNzZhZDg1NDcwZjMuLjczYjBhZjI2Y2U0MmFhNDU5NGQ5Yjc2MTc5NmIxOWQ2
YTZiYjY2NWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9TdHlsZVJ1bGUuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9TdHlsZVJ1bGUuY3BwCkBAIC0zMyw2ICszMyw3IEBACiAj
aW5jbHVkZSAiV2ViS2l0Q1NTS2V5ZnJhbWVSdWxlLmgiCiAjaW5jbHVkZSAiV2ViS2l0Q1NTS2V5
ZnJhbWVzUnVsZS5oIgogI2luY2x1ZGUgIldlYktpdENTU1JlZ2lvblJ1bGUuaCIKKyNpbmNsdWRl
IDx3dGYvTWVtb3J5SW5zdHJ1bWVudGF0aW9uVmVjdG9yLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKIApAQCAtMzQwLDcgKzM0MSw3IEBAIHZvaWQgU3R5bGVSdWxlQmxvY2s6OndyYXBwZXJSZW1v
dmVSdWxlKHVuc2lnbmVkIGluZGV4KQogdm9pZCBTdHlsZVJ1bGVCbG9jazo6cmVwb3J0RGVzY2Vu
ZGFudE1lbW9yeVVzYWdlKE1lbW9yeU9iamVjdEluZm8qIG1lbW9yeU9iamVjdEluZm8pIGNvbnN0
CiB7CiAgICAgTWVtb3J5Q2xhc3NJbmZvIGluZm8obWVtb3J5T2JqZWN0SW5mbywgdGhpcywgV2Vi
Q29yZU1lbW9yeVR5cGVzOjpDU1MpOwotICAgIGluZm8uYWRkSW5zdHJ1bWVudGVkVmVjdG9yKG1f
Y2hpbGRSdWxlcyk7CisgICAgaW5mby5hZGRNZW1iZXIobV9jaGlsZFJ1bGVzKTsKIH0KIAogU3R5
bGVSdWxlTWVkaWE6OlN0eWxlUnVsZU1lZGlhKFBhc3NSZWZQdHI8TWVkaWFRdWVyeVNldD4gbWVk
aWEsIFZlY3RvcjxSZWZQdHI8U3R5bGVSdWxlQmFzZT4gPiYgYWRvcHRSdWxlcykKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9TdHlsZVNoZWV0Q29udGVudHMuY3BwIGIvU291cmNlL1dl
YkNvcmUvY3NzL1N0eWxlU2hlZXRDb250ZW50cy5jcHAKaW5kZXggMDQ4MjczYmVjMTc4M2RiMjUy
NzdiMjJlMmVmNDNkYzY4OTYxN2FkZC4uOTQ1ZjM1NWEzODU1YWNkMmE3ZDAyY2M1YjI0NWQ2M2Nj
ZjhlNzAzNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL1N0eWxlU2hlZXRDb250ZW50
cy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL1N0eWxlU2hlZXRDb250ZW50cy5jcHAKQEAg
LTMzLDYgKzMzLDcgQEAKICNpbmNsdWRlICJTdHlsZVJ1bGVJbXBvcnQuaCIKICNpbmNsdWRlICJX
ZWJDb3JlTWVtb3J5SW5zdHJ1bWVudGF0aW9uLmgiCiAjaW5jbHVkZSA8d3RmL0RlcXVlLmg+Cisj
aW5jbHVkZSA8d3RmL01lbW9yeUluc3RydW1lbnRhdGlvblZlY3Rvci5oPgogCiBuYW1lc3BhY2Ug
V2ViQ29yZSB7CiAKQEAgLTQ4OSwxMCArNDkwLDEwIEBAIHZvaWQgU3R5bGVTaGVldENvbnRlbnRz
OjpyZXBvcnRNZW1vcnlVc2FnZShNZW1vcnlPYmplY3RJbmZvKiBtZW1vcnlPYmplY3RJbmZvKSBj
CiAgICAgTWVtb3J5Q2xhc3NJbmZvIGluZm8obWVtb3J5T2JqZWN0SW5mbywgdGhpcywgV2ViQ29y
ZU1lbW9yeVR5cGVzOjpDU1MpOwogICAgIGluZm8uYWRkTWVtYmVyKG1fb3JpZ2luYWxVUkwpOwog
ICAgIGluZm8uYWRkTWVtYmVyKG1fZW5jb2RpbmdGcm9tQ2hhcnNldFJ1bGUpOwotICAgIGluZm8u
YWRkVmVjdG9yKG1faW1wb3J0UnVsZXMpOwotICAgIGluZm8uYWRkSW5zdHJ1bWVudGVkVmVjdG9y
KG1fY2hpbGRSdWxlcyk7CisgICAgaW5mby5hZGRNZW1iZXIobV9pbXBvcnRSdWxlcyk7CisgICAg
aW5mby5hZGRNZW1iZXIobV9jaGlsZFJ1bGVzKTsKICAgICBpbmZvLmFkZEhhc2hNYXAobV9uYW1l
c3BhY2VzKTsKLSAgICBpbmZvLmFkZFZlY3RvcihtX2NsaWVudHMpOworICAgIGluZm8uYWRkTWVt
YmVyKG1fY2xpZW50cyk7CiB9CiAKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9X
ZWJLaXRDU1NLZXlmcmFtZXNSdWxlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9XZWJLaXRDU1NL
ZXlmcmFtZXNSdWxlLmNwcAppbmRleCBhMjk5MWE4MThmNTBmZmY0ZDViNGUwOWJkNDMyOWI4YTMx
Yjg1MDFlLi4wOGZiYjBhNTU4NWQ3YjZmODZiYjk1MjhlNzkxN2Q4Njk0NzU0ZTY2IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvV2ViS2l0Q1NTS2V5ZnJhbWVzUnVsZS5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvY3NzL1dlYktpdENTU0tleWZyYW1lc1J1bGUuY3BwCkBAIC0zMyw2ICsz
Myw3IEBACiAjaW5jbHVkZSAiU3R5bGVTaGVldC5oIgogI2luY2x1ZGUgIldlYkNvcmVNZW1vcnlJ
bnN0cnVtZW50YXRpb24uaCIKICNpbmNsdWRlICJXZWJLaXRDU1NLZXlmcmFtZVJ1bGUuaCIKKyNp
bmNsdWRlIDx3dGYvTWVtb3J5SW5zdHJ1bWVudGF0aW9uVmVjdG9yLmg+CiAjaW5jbHVkZSA8d3Rm
L3RleHQvU3RyaW5nQnVpbGRlci5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CkBAIC05MCw3ICs5
MSw3IEBAIGludCBTdHlsZVJ1bGVLZXlmcmFtZXM6OmZpbmRLZXlmcmFtZUluZGV4KGNvbnN0IFN0
cmluZyYga2V5KSBjb25zdAogdm9pZCBTdHlsZVJ1bGVLZXlmcmFtZXM6OnJlcG9ydERlc2NlbmRh
bnRNZW1vcnlVc2FnZShNZW1vcnlPYmplY3RJbmZvKiBtZW1vcnlPYmplY3RJbmZvKSBjb25zdAog
ewogICAgIE1lbW9yeUNsYXNzSW5mbyBpbmZvKG1lbW9yeU9iamVjdEluZm8sIHRoaXMsIFdlYkNv
cmVNZW1vcnlUeXBlczo6Q1NTKTsKLSAgICBpbmZvLmFkZEluc3RydW1lbnRlZFZlY3RvcihtX2tl
eWZyYW1lcyk7CisgICAgaW5mby5hZGRNZW1iZXIobV9rZXlmcmFtZXMpOwogICAgIGluZm8uYWRk
TWVtYmVyKG1fbmFtZSk7CiB9CiAKQEAgLTIxMSw3ICsyMTIsNyBAQCB2b2lkIFdlYktpdENTU0tl
eWZyYW1lc1J1bGU6OnJlcG9ydERlc2NlbmRhbnRNZW1vcnlVc2FnZShNZW1vcnlPYmplY3RJbmZv
KiBtZW1vcgogICAgIE1lbW9yeUNsYXNzSW5mbyBpbmZvKG1lbW9yeU9iamVjdEluZm8sIHRoaXMs
IFdlYkNvcmVNZW1vcnlUeXBlczo6Q1NTKTsKICAgICBDU1NSdWxlOjpyZXBvcnRCYXNlQ2xhc3NN
ZW1vcnlVc2FnZShtZW1vcnlPYmplY3RJbmZvKTsKICAgICBpbmZvLmFkZE1lbWJlcihtX2tleWZy
YW1lc1J1bGUpOwotICAgIGluZm8uYWRkSW5zdHJ1bWVudGVkVmVjdG9yKG1fY2hpbGRSdWxlQ1NT
T01XcmFwcGVycyk7CisgICAgaW5mby5hZGRNZW1iZXIobV9jaGlsZFJ1bGVDU1NPTVdyYXBwZXJz
KTsKICAgICBpbmZvLmFkZE1lbWJlcihtX3J1bGVMaXN0Q1NTT01XcmFwcGVyKTsKIH0KIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL1dlYktpdENTU1JlZ2lvblJ1bGUuY3BwIGIvU291
cmNlL1dlYkNvcmUvY3NzL1dlYktpdENTU1JlZ2lvblJ1bGUuY3BwCmluZGV4IDVjMmM3MjFjZDY4
NTRhZDM5MjFhYzU2MzkxODVmNmE5Njg5MTNjMzEuLmNlMTIwN2NhYmRmOWJmODU2MDU5ZTg2ZDZi
MjBmMWZiMjI4NDNkZTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9XZWJLaXRDU1NS
ZWdpb25SdWxlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvV2ViS2l0Q1NTUmVnaW9uUnVs
ZS5jcHAKQEAgLTM0LDYgKzM0LDcgQEAKICNpbmNsdWRlICJDU1NQYXJzZXIuaCIKICNpbmNsdWRl
ICJDU1NSdWxlTGlzdC5oIgogI2luY2x1ZGUgIlN0eWxlUnVsZS5oIgorI2luY2x1ZGUgPHd0Zi9N
ZW1vcnlJbnN0cnVtZW50YXRpb25WZWN0b3IuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9TdHJpbmdC
dWlsZGVyLmg+CiAKICNpZiBFTkFCTEUoQ1NTX1JFR0lPTlMpCkBAIC0xMTMsNyArMTE0LDcgQEAg
dm9pZCBXZWJLaXRDU1NSZWdpb25SdWxlOjpyZXBvcnREZXNjZW5kYW50TWVtb3J5VXNhZ2UoTWVt
b3J5T2JqZWN0SW5mbyogbWVtb3J5T2IKICAgICBNZW1vcnlDbGFzc0luZm8gaW5mbyhtZW1vcnlP
YmplY3RJbmZvLCB0aGlzLCBXZWJDb3JlTWVtb3J5VHlwZXM6OkNTUyk7CiAgICAgQ1NTUnVsZTo6
cmVwb3J0QmFzZUNsYXNzTWVtb3J5VXNhZ2UobWVtb3J5T2JqZWN0SW5mbyk7CiAgICAgaW5mby5h
ZGRNZW1iZXIobV9yZWdpb25SdWxlKTsKLSAgICBpbmZvLmFkZEluc3RydW1lbnRlZFZlY3Rvciht
X2NoaWxkUnVsZUNTU09NV3JhcHBlcnMpOworICAgIGluZm8uYWRkTWVtYmVyKG1fY2hpbGRSdWxl
Q1NTT01XcmFwcGVycyk7CiAgICAgaW5mby5hZGRNZW1iZXIobV9ydWxlTGlzdENTU09NV3JhcHBl
cik7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCmluZGV4IGFiNDhjYTM4MmJiMjU5Yjc2OWZl
N2EzNWZkMmM0MzY1NDEzZjdkMWUuLmU5NjcwMzJhMWI2Nzc2NDY0MmMxY2ZlNDgzNjRhNjRhM2Iz
MDMwODkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcApAQCAtMTcyLDYgKzE3Miw3IEBACiAjaW5j
bHVkZSA8d3RmL0N1cnJlbnRUaW1lLmg+CiAjaW5jbHVkZSA8d3RmL0hhc2hGdW5jdGlvbnMuaD4K
ICNpbmNsdWRlIDx3dGYvTWFpblRocmVhZC5oPgorI2luY2x1ZGUgPHd0Zi9NZW1vcnlJbnN0cnVt
ZW50YXRpb25WZWN0b3IuaD4KICNpbmNsdWRlIDx3dGYvUGFzc1JlZlB0ci5oPgogI2luY2x1ZGUg
PHd0Zi9TdGRMaWJFeHRyYXMuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9TdHJpbmdCdWZmZXIuaD4K
QEAgLTYyNTEsNyArNjI1Miw3IEBAIHZvaWQgRG9jdW1lbnQ6OnJlcG9ydE1lbW9yeVVzYWdlKE1l
bW9yeU9iamVjdEluZm8qIG1lbW9yeU9iamVjdEluZm8pIGNvbnN0CiAgICAgTWVtb3J5Q2xhc3NJ
bmZvIGluZm8obWVtb3J5T2JqZWN0SW5mbywgdGhpcywgV2ViQ29yZU1lbW9yeVR5cGVzOjpET00p
OwogICAgIGluZm8uYWRkTWVtYmVyKG1fc3R5bGVSZXNvbHZlcik7CiAgICAgQ29udGFpbmVyTm9k
ZTo6cmVwb3J0TWVtb3J5VXNhZ2UobWVtb3J5T2JqZWN0SW5mbyk7Ci0gICAgaW5mby5hZGRWZWN0
b3IobV9jdXN0b21Gb250cyk7CisgICAgaW5mby5hZGRNZW1iZXIobV9jdXN0b21Gb250cyk7CiAg
ICAgaW5mby5hZGRNZW1iZXIobV91cmwpOwogICAgIGluZm8uYWRkTWVtYmVyKG1fYmFzZVVSTCk7
CiAgICAgaW5mby5hZGRNZW1iZXIobV9iYXNlVVJMT3ZlcnJpZGUpOwpAQCAtNjI2NCwxMCArNjI2
NSw4IEBAIHZvaWQgRG9jdW1lbnQ6OnJlcG9ydE1lbW9yeVVzYWdlKE1lbW9yeU9iamVjdEluZm8q
IG1lbW9yeU9iamVjdEluZm8pIGNvbnN0CiAgICAgaW5mby5hZGRNZW1iZXIobV9jYWNoZWRSZXNv
dXJjZUxvYWRlcik7CiAgICAgaW5mby5hZGRNZW1iZXIobV9lbGVtU2hlZXQpOwogICAgIGluZm8u
YWRkTWVtYmVyKG1fcGFnZVVzZXJTaGVldCk7Ci0gICAgaWYgKG1fcGFnZUdyb3VwVXNlclNoZWV0
cykKLSAgICAgICAgaW5mby5hZGRJbnN0cnVtZW50ZWRWZWN0b3JQdHIobV9wYWdlR3JvdXBVc2Vy
U2hlZXRzKTsKLSAgICBpZiAobV91c2VyU2hlZXRzKQotICAgICAgICBpbmZvLmFkZEluc3RydW1l
bnRlZFZlY3RvclB0cihtX3VzZXJTaGVldHMpOworICAgIGluZm8uYWRkTWVtYmVyKG1fcGFnZUdy
b3VwVXNlclNoZWV0cyk7CisgICAgaW5mby5hZGRNZW1iZXIobV91c2VyU2hlZXRzKTsKICAgICBp
bmZvLmFkZEhhc2hTZXQobV9ub2RlSXRlcmF0b3JzKTsKICAgICBpbmZvLmFkZEhhc2hTZXQobV9y
YW5nZXMpOwogICAgIGluZm8uYWRkTGlzdEhhc2hTZXQobV9zdHlsZVNoZWV0Q2FuZGlkYXRlTm9k
ZXMpOwpAQCAtNjI4MSwxNyArNjI4MCwxNyBAQCB2b2lkIERvY3VtZW50OjpyZXBvcnRNZW1vcnlV
c2FnZShNZW1vcnlPYmplY3RJbmZvKiBtZW1vcnlPYmplY3RJbmZvKSBjb25zdAogICAgIGluZm8u
YWRkSGFzaE1hcChtX2RvY3VtZW50TmFtZWRJdGVtQ29sbGVjdGlvbnMpOwogICAgIGluZm8uYWRk
SGFzaE1hcChtX3dpbmRvd05hbWVkSXRlbUNvbGxlY3Rpb25zKTsKICNpZiBFTkFCTEUoREFTSEJP
QVJEX1NVUFBPUlQpCi0gICAgaW5mby5hZGRWZWN0b3IobV9kYXNoYm9hcmRSZWdpb25zKTsKKyAg
ICBpbmZvLmFkZE1lbWJlcihtX2Rhc2hib2FyZFJlZ2lvbnMpOwogI2VuZGlmCiAgICAgaW5mby5h
ZGRIYXNoTWFwKG1fY3NzQ2FudmFzRWxlbWVudHMpOwotICAgIGluZm8uYWRkVmVjdG9yKG1faWNv
blVSTHMpOworICAgIGluZm8uYWRkTWVtYmVyKG1faWNvblVSTHMpOwogICAgIGluZm8uYWRkSGFz
aFNldChtX2RvY3VtZW50U3VzcGVuc2lvbkNhbGxiYWNrRWxlbWVudHMpOwogICAgIGluZm8uYWRk
SGFzaFNldChtX21lZGlhVm9sdW1lQ2FsbGJhY2tFbGVtZW50cyk7CiAgICAgaW5mby5hZGRIYXNo
U2V0KG1fcHJpdmF0ZUJyb3dzaW5nU3RhdGVDaGFuZ2VkRWxlbWVudHMpOwogICAgIGluZm8uYWRk
SGFzaE1hcChtX2VsZW1lbnRzQnlBY2Nlc3NLZXkpOwogICAgIGluZm8uYWRkTWVtYmVyKG1fZXZl
bnRRdWV1ZSk7CiAgICAgaW5mby5hZGRIYXNoU2V0KG1fbWVkaWFDYW5TdGFydExpc3RlbmVycyk7
Ci0gICAgaW5mby5hZGRWZWN0b3IobV9wZW5kaW5nVGFza3MpOworICAgIGluZm8uYWRkTWVtYmVy
KG1fcGVuZGluZ1Rhc2tzKTsKIH0KIAogI2lmIEVOQUJMRShVTkRPX01BTkFHRVIpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudEF0dHJpYnV0ZURhdGEuY3BwIGIvU291cmNl
L1dlYkNvcmUvZG9tL0VsZW1lbnRBdHRyaWJ1dGVEYXRhLmNwcAppbmRleCAwM2Y3YjgxZmNmNWIx
NjgxNmYzMWViZDNjNWZmMGQ1YTAyZDNmNzQxLi41YTdmMzQxMjU0YTg2NWE1NTIzNzA1NWEzYmRi
ZGZjOWYyNGNlZGQ1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudEF0dHJp
YnV0ZURhdGEuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50QXR0cmlidXRlRGF0
YS5jcHAKQEAgLTMxLDYgKzMxLDcgQEAKICNpbmNsdWRlICJDU1NTdHlsZVNoZWV0LmgiCiAjaW5j
bHVkZSAiU3R5bGVkRWxlbWVudC5oIgogI2luY2x1ZGUgIldlYkNvcmVNZW1vcnlJbnN0cnVtZW50
YXRpb24uaCIKKyNpbmNsdWRlIDx3dGYvTWVtb3J5SW5zdHJ1bWVudGF0aW9uVmVjdG9yLmg+CiAK
IG5hbWVzcGFjZSBXZWJDb3JlIHsKIApAQCAtMzAwLDcgKzMwMSw3IEBAIHZvaWQgRWxlbWVudEF0
dHJpYnV0ZURhdGE6OnJlcG9ydE1lbW9yeVVzYWdlKE1lbW9yeU9iamVjdEluZm8qIG1lbW9yeU9i
amVjdEluZm8pCiAgICAgaW5mby5hZGRNZW1iZXIobV9jbGFzc05hbWVzKTsKICAgICBpbmZvLmFk
ZE1lbWJlcihtX2lkRm9yU3R5bGVSZXNvbHV0aW9uKTsKICAgICBpZiAobV9pc011dGFibGUpCi0g
ICAgICAgIGluZm8uYWRkVmVjdG9yKG11dGFibGVBdHRyaWJ1dGVWZWN0b3IoKSk7CisgICAgICAg
IGluZm8uYWRkTWVtYmVyKG11dGFibGVBdHRyaWJ1dGVWZWN0b3IoKSk7CiAgICAgZm9yICh1bnNp
Z25lZCBpID0gMCwgbGVuID0gbGVuZ3RoKCk7IGkgPCBsZW47IGkrKykKICAgICAgICAgaW5mby5h
ZGRNZW1iZXIoKmF0dHJpYnV0ZUl0ZW0oaSkpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvbG9hZGVyL0RvY3VtZW50TG9hZGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Eb2N1
bWVudExvYWRlci5jcHAKaW5kZXggODM2ODA0MWNmODBhM2Q2NDE1MWE5YjBiMGNhNTYyMzZlNGM0
NDg5Mi4uOTAwYWY5NzhhYTYxMWZhMmM1NTQ5MjczNWI0MDMzNmE0ZTg2M2I4YiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0RvY3VtZW50TG9hZGVyLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9sb2FkZXIvRG9jdW1lbnRMb2FkZXIuY3BwCkBAIC01Myw2ICs1Myw3IEBACiAjaW5j
bHVkZSAiVGV4dFJlc291cmNlRGVjb2Rlci5oIgogI2luY2x1ZGUgIldlYkNvcmVNZW1vcnlJbnN0
cnVtZW50YXRpb24uaCIKICNpbmNsdWRlIDx3dGYvQXNzZXJ0aW9ucy5oPgorI2luY2x1ZGUgPHd0
Zi9NZW1vcnlJbnN0cnVtZW50YXRpb25WZWN0b3IuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9DU3Ry
aW5nLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CiAjaW5jbHVkZSA8d3RmL3Vu
aWNvZGUvVW5pY29kZS5oPgpAQCAtMzY4LDE2ICszNjksMTYgQEAgdm9pZCBEb2N1bWVudExvYWRl
cjo6cmVwb3J0TWVtb3J5VXNhZ2UoTWVtb3J5T2JqZWN0SW5mbyogbWVtb3J5T2JqZWN0SW5mbykg
Y29uc3QKICAgICBpbmZvLmFkZE1lbWJlcihtX3N1YnN0aXR1dGVEYXRhKTsKICAgICBpbmZvLmFk
ZE1lbWJlcihtX3BhZ2VUaXRsZS5zdHJpbmcoKSk7CiAgICAgaW5mby5hZGRNZW1iZXIobV9vdmVy
cmlkZUVuY29kaW5nKTsKLSAgICBpbmZvLmFkZFZlY3RvcihtX3Jlc3BvbnNlcyk7CisgICAgaW5m
by5hZGRNZW1iZXIobV9yZXNwb25zZXMpOwogICAgIGluZm8uYWRkTWVtYmVyKG1fb3JpZ2luYWxS
ZXF1ZXN0KTsKICAgICBpbmZvLmFkZE1lbWJlcihtX29yaWdpbmFsUmVxdWVzdENvcHkpOwogICAg
IGluZm8uYWRkTWVtYmVyKG1fcmVxdWVzdCk7CiAgICAgaW5mby5hZGRNZW1iZXIobV9yZXNwb25z
ZSk7CiAgICAgaW5mby5hZGRNZW1iZXIobV9sYXN0Q2hlY2tlZFJlcXVlc3QpOwotICAgIGluZm8u
YWRkSW5zdHJ1bWVudGVkVmVjdG9yKG1fcmVzcG9uc2VzKTsKKyAgICBpbmZvLmFkZE1lbWJlciht
X3Jlc3BvbnNlcyk7CiAgICAgaW5mby5hZGRIYXNoTWFwKG1fcGVuZGluZ1N1YnN0aXR1dGVSZXNv
dXJjZXMpOwogICAgIGluZm8uYWRkSW5zdHJ1bWVudGVkSGFzaFNldChtX3Jlc291cmNlc0NsaWVu
dEtub3dzQWJvdXQpOwotICAgIGluZm8uYWRkVmVjdG9yKG1fcmVzb3VyY2VzTG9hZGVkRnJvbU1l
bW9yeUNhY2hlRm9yQ2xpZW50Tm90aWZpY2F0aW9uKTsKKyAgICBpbmZvLmFkZE1lbWJlcihtX3Jl
c291cmNlc0xvYWRlZEZyb21NZW1vcnlDYWNoZUZvckNsaWVudE5vdGlmaWNhdGlvbik7CiAgICAg
aW5mby5hZGRNZW1iZXIobV9jbGllbnRSZWRpcmVjdFNvdXJjZUZvckhpc3RvcnkpOwogICAgIGlu
Zm8uYWRkTWVtYmVyKG1fbWFpblJlc291cmNlRGF0YSk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9sb2FkZXIvY2FjaGUvTWVtb3J5Q2FjaGUuY3BwIGIvU291cmNlL1dlYkNvcmUvbG9h
ZGVyL2NhY2hlL01lbW9yeUNhY2hlLmNwcAppbmRleCA2NmQzMjAxZWI0NTA4MWI2OWY0YzQzZWNj
NDY0NGFjZmFkNzRhZDgwLi5jMWFmMDlkNjliOWMwZGU3YzhhNzJmM2UzOGQ0NzQ3YWI4ODNkMmQw
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvTWVtb3J5Q2FjaGUuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9NZW1vcnlDYWNoZS5jcHAKQEAgLTQ1
LDYgKzQ1LDcgQEAKICNpbmNsdWRlICJXb3JrZXJUaHJlYWQuaCIKICNpbmNsdWRlIDxzdGRpby5o
PgogI2luY2x1ZGUgPHd0Zi9DdXJyZW50VGltZS5oPgorI2luY2x1ZGUgPHd0Zi9NZW1vcnlJbnN0
cnVtZW50YXRpb25WZWN0b3IuaD4KICNpbmNsdWRlIDx3dGYvVGVtcG9yYXJ5Q2hhbmdlLmg+CiAj
aW5jbHVkZSA8d3RmL3RleHQvQ1N0cmluZy5oPgogCkBAIC03MjQsNyArNzI1LDcgQEAgdm9pZCBN
ZW1vcnlDYWNoZTo6cmVwb3J0TWVtb3J5VXNhZ2UoTWVtb3J5T2JqZWN0SW5mbyogbWVtb3J5T2Jq
ZWN0SW5mbykgY29uc3QKICAgICAgICAgaW5mby5hZGRNZW1iZXIoaS0+Zmlyc3QpOwogICAgICAg
ICBpbmZvLmFkZE1lbWJlcihpLT5zZWNvbmQpOwogICAgIH0KLSAgICBpbmZvLmFkZFZlY3Rvciht
X2FsbFJlc291cmNlcyk7CisgICAgaW5mby5hZGRNZW1iZXIobV9hbGxSZXNvdXJjZXMpOwogICAg
IGluZm8uYWRkTWVtYmVyKG1fbGl2ZURlY29kZWRSZXNvdXJjZXMpOwogfQogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TaGFyZWRCdWZmZXIuY3BwIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vU2hhcmVkQnVmZmVyLmNwcAppbmRleCA2OGMzMTk2YTc1MmUxOWIwOWNjZjQx
NjExNDYyNmI3N2FhMTk3ODEwLi5kZTVmNzFkYzJlM2I5NjZhNTU4YTIzZThhMjQ0ZjA3ZGI5OGE1
MGYyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TaGFyZWRCdWZmZXIuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1NoYXJlZEJ1ZmZlci5jcHAKQEAgLTI5LDYg
KzI5LDcgQEAKIAogI2luY2x1ZGUgIlBsYXRmb3JtTWVtb3J5SW5zdHJ1bWVudGF0aW9uLmgiCiAj
aW5jbHVkZSAiUHVyZ2VhYmxlQnVmZmVyLmgiCisjaW5jbHVkZSA8d3RmL01lbW9yeUluc3RydW1l
bnRhdGlvblZlY3Rvci5oPgogI2luY2x1ZGUgPHd0Zi9QYXNzT3duUHRyLmg+CiAjaW5jbHVkZSA8
d3RmL3VuaWNvZGUvVVRGOC5oPgogI2luY2x1ZGUgPHd0Zi91bmljb2RlL1VuaWNvZGUuaD4KQEAg
LTI1MSw4ICsyNTIsOCBAQCBjb25zdCBWZWN0b3I8Y2hhcj4mIFNoYXJlZEJ1ZmZlcjo6YnVmZmVy
KCkgY29uc3QKIHZvaWQgU2hhcmVkQnVmZmVyOjpyZXBvcnRNZW1vcnlVc2FnZShNZW1vcnlPYmpl
Y3RJbmZvKiBtZW1vcnlPYmplY3RJbmZvKSBjb25zdAogewogICAgIE1lbW9yeUNsYXNzSW5mbyBp
bmZvKG1lbW9yeU9iamVjdEluZm8sIHRoaXMpOwotICAgIGluZm8uYWRkVmVjdG9yKG1fYnVmZmVy
KTsKLSAgICBpbmZvLmFkZFZlY3RvcihtX3NlZ21lbnRzKTsKKyAgICBpbmZvLmFkZE1lbWJlciht
X2J1ZmZlcik7CisgICAgaW5mby5hZGRNZW1iZXIobV9zZWdtZW50cyk7CiAgICAgZm9yICh1bnNp
Z25lZCBpID0gMDsgaSA8IG1fc2VnbWVudHMuc2l6ZSgpOyArK2kpCiAgICAgICAgIGluZm8uYWRk
UmF3QnVmZmVyKG1fc2VnbWVudHNbaV0sIHNlZ21lbnRTaXplKTsKICAgICBpbmZvLmFkZE1lbWJl
cihtX3B1cmdlYWJsZUJ1ZmZlci5nZXQoKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9CaXRtYXBJbWFnZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9CaXRtYXBJbWFnZS5jcHAKaW5kZXggMGIxMTY4MDc4MWU1YzI3OTgxMGRlMmM0
ZTUwMmZhYzZmMTIxZTEwZC4uZDBhMmFhYmQxZDQwYzA3MGNlYjVhNzJkMDNmY2U4N2Y5ZjkzNDVk
YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvQml0bWFwSW1h
Z2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0JpdG1hcEltYWdl
LmNwcApAQCAtMzQsNiArMzQsNyBAQAogI2luY2x1ZGUgIlBsYXRmb3JtTWVtb3J5SW5zdHJ1bWVu
dGF0aW9uLmgiCiAjaW5jbHVkZSAiVGltZXIuaCIKICNpbmNsdWRlIDx3dGYvQ3VycmVudFRpbWUu
aD4KKyNpbmNsdWRlIDx3dGYvTWVtb3J5SW5zdHJ1bWVudGF0aW9uVmVjdG9yLmg+CiAjaW5jbHVk
ZSA8d3RmL1ZlY3Rvci5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgogCkBAIC01
NzgsNyArNTc5LDcgQEAgdm9pZCBCaXRtYXBJbWFnZTo6cmVwb3J0TWVtb3J5VXNhZ2UoTWVtb3J5
T2JqZWN0SW5mbyogbWVtb3J5T2JqZWN0SW5mbykgY29uc3QKICAgICBJbWFnZTo6cmVwb3J0TWVt
b3J5VXNhZ2UobWVtb3J5T2JqZWN0SW5mbyk7CiAgICAgaW5mby5hZGRNZW1iZXIobV9zb3VyY2Up
OwogICAgIGluZm8uYWRkTWVtYmVyKG1fZnJhbWVUaW1lcik7Ci0gICAgaW5mby5hZGRWZWN0b3Io
bV9mcmFtZXMpOworICAgIGluZm8uYWRkTWVtYmVyKG1fZnJhbWVzKTsKICAgICBmb3IgKHVuc2ln
bmVkIGkgPSAwOyBpIDwgbV9mcmFtZUNvdW50OyArK2kpIHsKICNpZiBPUyhXSU5DRSkgJiYgIVBM
QVRGT1JNKFFUKQogICAgICAgICBpbmZvLmFkZFJhd0J1ZmZlcihtX2ZyYW1lc1tpXS5tX2ZyYW1l
LmdldCgpLCBtX2ZyYW1lc1tpXS5tX2ZyYW1lQnl0ZXMpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvQml0bWFwSW1hZ2UuaCBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL0JpdG1hcEltYWdlLmgKaW5kZXggMTBiMzcyOTQ4YWZkZDk2Y2VhODI5
MjA1NzZhMmQ0MjRjZWQwYWJiMC4uM2YyM2RjZWRmZWE0YTUzM2QwODJiMjM2YTI4ZmU4NThkZGQ2
MGJiZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvQml0bWFw
SW1hZ2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9CaXRtYXBJbWFn
ZS5oCkBAIC04Nyw3ICs4Nyw2IEBAIHB1YmxpYzoKICAgICAvLyBDbGVhciB0aGUgY2FjaGVkIGlt
YWdlIGRhdGEgb24gdGhlIGZyYW1lLCBhbmQgKG9wdGlvbmFsbHkpIHRoZSBtZXRhZGF0YS4KICAg
ICAvLyBSZXR1cm5zIHdoZXRoZXIgdGhlcmUgd2FzIGNhY2hlZCBpbWFnZSBkYXRhIHRvIGNsZWFy
LgogICAgIGJvb2wgY2xlYXIoYm9vbCBjbGVhck1ldGFkYXRhKTsKLSAgICB2b2lkIHJlcG9ydE1l
bW9yeVVzYWdlKE1lbW9yeU9iamVjdEluZm8qKSBjb25zdDsKIAogICAgIE5hdGl2ZUltYWdlUHRy
IG1fZnJhbWU7CiAgICAgSW1hZ2VPcmllbnRhdGlvbiBtX29yaWVudGF0aW9uOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9Gb3JtRGF0YS5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL0Zvcm1EYXRhLmNwcAppbmRleCA0NWY3MzAyNDg2ZTA4
NTA0YzhkM2QyMmE1NzM3NDdjYTQ5MWI4YTljLi5jMjUwMGUyMmNiNGFhN2Y0NTU0ZjVkMWM2ODNl
MWY2NjkzNmJlYzY3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3Jr
L0Zvcm1EYXRhLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL0Zvcm1E
YXRhLmNwcApAQCAtMzYwLDcgKzM2MCw3IEBAIHZvaWQgRm9ybURhdGE6OnJlbW92ZUdlbmVyYXRl
ZEZpbGVzSWZOZWVkZWQoKQogdm9pZCBGb3JtRGF0YTo6cmVwb3J0TWVtb3J5VXNhZ2UoTWVtb3J5
T2JqZWN0SW5mbyogbWVtb3J5T2JqZWN0SW5mbykgY29uc3QKIHsKICAgICBNZW1vcnlDbGFzc0lu
Zm8gaW5mbyhtZW1vcnlPYmplY3RJbmZvLCB0aGlzLCBQbGF0Zm9ybU1lbW9yeVR5cGVzOjpMb2Fk
ZXIpOwotICAgIGluZm8uYWRkVmVjdG9yKG1fYm91bmRhcnkpOworICAgIGluZm8uYWRkTWVtYmVy
KG1fYm91bmRhcnkpOwogfQogCiBzdGF0aWMgdm9pZCBlbmNvZGUoRW5jb2RlciYgZW5jb2Rlciwg
Y29uc3QgRm9ybURhdGFFbGVtZW50JiBlbGVtZW50KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbmV0d29yay9SZXNvdXJjZVJlcXVlc3RCYXNlLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL25ldHdvcmsvUmVzb3VyY2VSZXF1ZXN0QmFzZS5jcHAKaW5kZXggMDBmNTgz
OTA1NTk0NzFlYjdlNGY2M2Q1YWRjYWFmNmVhYWVkNWI2Yy4uMzAzZGVhYTljYmRhNzZhZmJmYzZj
NTYyMmMwNTQ3NDE0OTkwZmM0NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bmV0d29yay9SZXNvdXJjZVJlcXVlc3RCYXNlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9uZXR3b3JrL1Jlc291cmNlUmVxdWVzdEJhc2UuY3BwCkBAIC0yOCw2ICsyOCw3IEBACiAK
ICNpbmNsdWRlICJQbGF0Zm9ybU1lbW9yeUluc3RydW1lbnRhdGlvbi5oIgogI2luY2x1ZGUgIlJl
c291cmNlUmVxdWVzdC5oIgorI2luY2x1ZGUgPHd0Zi9NZW1vcnlJbnN0cnVtZW50YXRpb25WZWN0
b3IuaD4KIAogdXNpbmcgbmFtZXNwYWNlIHN0ZDsKIApAQCAtNDUyLDcgKzQ1Myw3IEBAIHZvaWQg
UmVzb3VyY2VSZXF1ZXN0QmFzZTo6cmVwb3J0TWVtb3J5VXNhZ2UoTWVtb3J5T2JqZWN0SW5mbyog
bWVtb3J5T2JqZWN0SW5mbykKICAgICBpbmZvLmFkZE1lbWJlcihtX2h0dHBNZXRob2QpOwogICAg
IGluZm8uYWRkSGFzaE1hcChtX2h0dHBIZWFkZXJGaWVsZHMpOwogICAgIGluZm8uYWRkSW5zdHJ1
bWVudGVkTWFwRW50cmllcyhtX2h0dHBIZWFkZXJGaWVsZHMpOwotICAgIGluZm8uYWRkSW5zdHJ1
bWVudGVkVmVjdG9yKG1fcmVzcG9uc2VDb250ZW50RGlzcG9zaXRpb25FbmNvZGluZ0ZhbGxiYWNr
QXJyYXkpOworICAgIGluZm8uYWRkTWVtYmVyKG1fcmVzcG9uc2VDb250ZW50RGlzcG9zaXRpb25F
bmNvZGluZ0ZhbGxiYWNrQXJyYXkpOwogICAgIGluZm8uYWRkTWVtYmVyKG1faHR0cEJvZHkpOwog
fQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5
bGUuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlLmNwcApp
bmRleCAwNjAyY2ZhOWJmMjZmYzgyZjZhNGJiZjFmNzJmMzlkZDNjMGJiMjY1Li42M2Q1ZTA1NTA3
MWVlYWU5ZDcyMGNmMTBjNjUxNmMwZGE0NjVlMTQ3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZS5jcHAKQEAgLTQwLDYgKzQwLDcgQEAKICNpbmNsdWRl
ICJSZW5kZXJUaGVtZS5oIgogI2VuZGlmCiAjaW5jbHVkZSAiV2ViQ29yZU1lbW9yeUluc3RydW1l
bnRhdGlvbi5oIgorI2luY2x1ZGUgPHd0Zi9NZW1vcnlJbnN0cnVtZW50YXRpb25WZWN0b3IuaD4K
ICNpbmNsdWRlIDx3dGYvU3RkTGliRXh0cmFzLmg+CiAjaW5jbHVkZSA8YWxnb3JpdGhtPgogCkBA
IC0xNjE1LDggKzE2MTYsNyBAQCB2b2lkIFJlbmRlclN0eWxlOjpyZXBvcnRNZW1vcnlVc2FnZShN
ZW1vcnlPYmplY3RJbmZvKiBtZW1vcnlPYmplY3RJbmZvKSBjb25zdAogICAgIGluZm8uYWRkTWVt
YmVyKHJhcmVJbmhlcml0ZWREYXRhKTsKICAgICAvLyBGSVhNRTogaW5oZXJpdGVkIGNvbnRhaW5z
IFN0eWxlSW1hZ2UgYW5kIEZvbnQgZmllbGRzIHRoYXQgbWlnaHQgbmVlZCB0byBiZSBpbnN0cnVt
ZW50ZWQuCiAgICAgaW5mby5hZGRNZW1iZXIoaW5oZXJpdGVkKTsKLSAgICBpZiAobV9jYWNoZWRQ
c2V1ZG9TdHlsZXMpCi0gICAgICAgIGluZm8uYWRkVmVjdG9yUHRyKG1fY2FjaGVkUHNldWRvU3R5
bGVzLmdldCgpKTsKKyAgICBpbmZvLmFkZE1lbWJlcihtX2NhY2hlZFBzZXVkb1N0eWxlcyk7CiAj
aWYgRU5BQkxFKFNWRykKICAgICBpbmZvLmFkZE1lbWJlcihtX3N2Z1N0eWxlKTsKICNlbmRpZgpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1N0eWxlUmFyZU5vbklu
aGVyaXRlZERhdGEuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1N0eWxlUmFy
ZU5vbkluaGVyaXRlZERhdGEuY3BwCmluZGV4IGJiZTA3YmZkZWM2Yzg2YzYxMjdlZmViN2FlOGIy
ZTQxMWFkMzgxYWUuLjViNWE3ZDRiOGExZDZiZDA2ZWNlMDhmZmU3OTIxOGVmNGZkZWVlY2QgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9TdHlsZVJhcmVOb25Jbmhl
cml0ZWREYXRhLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvU3R5bGVS
YXJlTm9uSW5oZXJpdGVkRGF0YS5jcHAKQEAgLTMwNiw3ICszMDYsNyBAQCB2b2lkIFN0eWxlUmFy
ZU5vbkluaGVyaXRlZERhdGE6OnJlcG9ydE1lbW9yeVVzYWdlKE1lbW9yeU9iamVjdEluZm8qIG1l
bW9yeU9iamVjdAogewogICAgIE1lbW9yeUNsYXNzSW5mbyBpbmZvKG1lbW9yeU9iamVjdEluZm8s
IHRoaXMsIFdlYkNvcmVNZW1vcnlUeXBlczo6Q1NTKTsKICNpZiBFTkFCTEUoREFTSEJPQVJEX1NV
UFBPUlQpCi0gICAgaW5mby5hZGRWZWN0b3IobV9kYXNoYm9hcmRSZWdpb25zKTsKKyAgICBpbmZv
LmFkZE1lbWJlcihtX2Rhc2hib2FyZFJlZ2lvbnMpOwogI2VuZGlmCiAgICAgaW5mby5hZGRNZW1i
ZXIobV9kZXByZWNhdGVkRmxleGlibGVCb3gpOwogICAgIGluZm8uYWRkTWVtYmVyKG1fZmxleGli
bGVCb3gpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0cy9NZW1vcnlJ
bnN0cnVtZW50YXRpb25UZXN0LmNwcCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMvTWVt
b3J5SW5zdHJ1bWVudGF0aW9uVGVzdC5jcHAKaW5kZXggNGFjZjQ5NmFkODdkMmQ4M2E5ODdkNzk0
NmY1Mzc2ZWE3NTZhNDJmMC4uMjFjZTk2MzE2OWNkY2IzOTFmZDdhMjlkZjM1ZjU2MGZkYmQ4NDQ2
ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0cy9NZW1vcnlJbnN0cnVt
ZW50YXRpb25UZXN0LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rlc3RzL01lbW9y
eUluc3RydW1lbnRhdGlvblRlc3QuY3BwCkBAIC0zNyw2ICszNyw3IEBACiAjaW5jbHVkZSA8Z3Rl
c3QvZ3Rlc3QuaD4KIAogI2luY2x1ZGUgPHd0Zi9IYXNoU2V0Lmg+CisjaW5jbHVkZSA8d3RmL01l
bW9yeUluc3RydW1lbnRhdGlvblZlY3Rvci5oPgogI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+
CiAjaW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L0F0b21pY1N0cmlu
Zy5oPgpAQCAtMjM1LDYgKzIzNiw3IEBAIGNsYXNzIEluc3RydW1lbnRlZE93bmVyIHsKIHB1Ymxp
YzoKICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBWPgogICAgIEluc3RydW1lbnRlZE93bmVyKGNvbnN0
IFYmIHZhbHVlKSA6IG1fdmFsdWUodmFsdWUpIHsgfQorICAgIEluc3RydW1lbnRlZE93bmVyKCkg
eyB9CiAgICAgdm9pZCByZXBvcnRNZW1vcnlVc2FnZShNZW1vcnlPYmplY3RJbmZvKiBtZW1vcnlP
YmplY3RJbmZvKSBjb25zdAogICAgIHsKICAgICAgICAgTWVtb3J5Q2xhc3NJbmZvIGluZm8obWVt
b3J5T2JqZWN0SW5mbywgdGhpcywgV2ViQ29yZU1lbW9yeVR5cGVzOjpET00pOwpAQCAtMzY3LDUg
KzM2OSw3NSBAQCBURVNUKE1lbW9yeUluc3RydW1lbnRhdGlvblRlc3QsIGRldGVjdFJlcG9ydE1l
bW9yeVVzYWdlTWV0aG9kKQogICAgIH0KIH0KIAorVEVTVChNZW1vcnlJbnN0cnVtZW50YXRpb25U
ZXN0LCB2ZWN0b3JaZXJvSW5saW5lQ2FwYWNpdHkpCit7CisgICAgVmlzaXRlZE9iamVjdHMgdmlz
aXRlZE9iamVjdHM7CisgICAgTWVtb3J5SW5zdHJ1bWVudGF0aW9uSW1wbCBpbXBsKHZpc2l0ZWRP
YmplY3RzKTsKKyAgICBJbnN0cnVtZW50ZWRPd25lcjxWZWN0b3I8aW50PiA+IHZlY3Rvck93bmVy
KDE2KTsKKyAgICBpbXBsLmFkZFJvb3RPYmplY3QodmVjdG9yT3duZXIpOworICAgIEVYUEVDVF9F
USgxNiAqIHNpemVvZihpbnQpLCBpbXBsLnJlcG9ydGVkU2l6ZUZvckFsbFR5cGVzKCkpOworICAg
IEVYUEVDVF9FUSgxLCB2aXNpdGVkT2JqZWN0cy5zaXplKCkpOworfQorCitURVNUKE1lbW9yeUlu
c3RydW1lbnRhdGlvblRlc3QsIHZlY3RvckZpZWxkV2l0aElubGluZUNhcGFjaXR5KQoreworICAg
IFZpc2l0ZWRPYmplY3RzIHZpc2l0ZWRPYmplY3RzOworICAgIE1lbW9yeUluc3RydW1lbnRhdGlv
bkltcGwgaW1wbCh2aXNpdGVkT2JqZWN0cyk7CisgICAgSW5zdHJ1bWVudGVkT3duZXI8VmVjdG9y
PGludCwgND4gPiB2ZWN0b3JPd25lcjsKKyAgICBpbXBsLmFkZFJvb3RPYmplY3QodmVjdG9yT3du
ZXIpOworICAgIEVYUEVDVF9FUShzdGF0aWNfY2FzdDxzaXplX3Q+KDApLCBpbXBsLnJlcG9ydGVk
U2l6ZUZvckFsbFR5cGVzKCkpOworICAgIEVYUEVDVF9FUSgwLCB2aXNpdGVkT2JqZWN0cy5zaXpl
KCkpOworfQorCitURVNUKE1lbW9yeUluc3RydW1lbnRhdGlvblRlc3QsIHZlY3RvckZpZWxkV2l0
aElubGluZUNhcGFjaXR5UmVzaXplZCkKK3sKKyAgICBWaXNpdGVkT2JqZWN0cyB2aXNpdGVkT2Jq
ZWN0czsKKyAgICBNZW1vcnlJbnN0cnVtZW50YXRpb25JbXBsIGltcGwodmlzaXRlZE9iamVjdHMp
OworICAgIEluc3RydW1lbnRlZE93bmVyPFZlY3RvcjxpbnQsIDQ+ID4gdmVjdG9yT3duZXI7Cisg
ICAgdmVjdG9yT3duZXIubV92YWx1ZS5yZXNlcnZlQ2FwYWNpdHkoOCk7CisgICAgaW1wbC5hZGRS
b290T2JqZWN0KHZlY3Rvck93bmVyKTsKKyAgICBFWFBFQ1RfRVEoOCAqIHNpemVvZihpbnQpLCBp
bXBsLnJlcG9ydGVkU2l6ZUZvckFsbFR5cGVzKCkpOworICAgIEVYUEVDVF9FUSgxLCB2aXNpdGVk
T2JqZWN0cy5zaXplKCkpOworfQorCitURVNUKE1lbW9yeUluc3RydW1lbnRhdGlvblRlc3QsIGhl
YXBBbGxvY2F0ZWRWZWN0b3JXaXRoSW5saW5lQ2FwYWNpdHkpCit7CisgICAgVmlzaXRlZE9iamVj
dHMgdmlzaXRlZE9iamVjdHM7CisgICAgTWVtb3J5SW5zdHJ1bWVudGF0aW9uSW1wbCBpbXBsKHZp
c2l0ZWRPYmplY3RzKTsKKyAgICBJbnN0cnVtZW50ZWRPd25lcjxPd25QdHI8VmVjdG9yPGludCwg
ND4gPiA+IHZlY3Rvck93bmVyOworICAgIHZlY3Rvck93bmVyLm1fdmFsdWUgPSBhZG9wdFB0cihu
ZXcgVmVjdG9yPGludCwgND4oKSk7CisgICAgaW1wbC5hZGRSb290T2JqZWN0KHZlY3Rvck93bmVy
KTsKKyAgICBFWFBFQ1RfRVEoc2l6ZW9mKFZlY3RvcjxpbnQsIDQ+KSwgaW1wbC5yZXBvcnRlZFNp
emVGb3JBbGxUeXBlcygpKTsKKyAgICBFWFBFQ1RfRVEoMSwgdmlzaXRlZE9iamVjdHMuc2l6ZSgp
KTsKK30KKworVEVTVChNZW1vcnlJbnN0cnVtZW50YXRpb25UZXN0LCBoZWFwQWxsb2NhdGVkVmVj
dG9yV2l0aElubGluZUNhcGFjaXR5UmVzaXplZCkKK3sKKyAgICBWaXNpdGVkT2JqZWN0cyB2aXNp
dGVkT2JqZWN0czsKKyAgICBNZW1vcnlJbnN0cnVtZW50YXRpb25JbXBsIGltcGwodmlzaXRlZE9i
amVjdHMpOworICAgIEluc3RydW1lbnRlZE93bmVyPE93blB0cjxWZWN0b3I8aW50LCA0PiA+ID4g
dmVjdG9yT3duZXI7CisgICAgdmVjdG9yT3duZXIubV92YWx1ZSA9IGFkb3B0UHRyKG5ldyBWZWN0
b3I8aW50LCA0PigpKTsKKyAgICB2ZWN0b3JPd25lci5tX3ZhbHVlLT5yZXNlcnZlQ2FwYWNpdHko
OCk7CisgICAgaW1wbC5hZGRSb290T2JqZWN0KHZlY3Rvck93bmVyKTsKKyAgICBFWFBFQ1RfRVEo
OCAqIHNpemVvZihpbnQpICsgc2l6ZW9mKFZlY3RvcjxpbnQsIDQ+KSwgaW1wbC5yZXBvcnRlZFNp
emVGb3JBbGxUeXBlcygpKTsKKyAgICBFWFBFQ1RfRVEoMiwgdmlzaXRlZE9iamVjdHMuc2l6ZSgp
KTsKK30KKworVEVTVChNZW1vcnlJbnN0cnVtZW50YXRpb25UZXN0LCB2ZWN0b3JXaXRoSW5zdHJ1
bWVudGVkVHlwZSkKK3sKKyAgICBWaXNpdGVkT2JqZWN0cyB2aXNpdGVkT2JqZWN0czsKKyAgICBN
ZW1vcnlJbnN0cnVtZW50YXRpb25JbXBsIGltcGwodmlzaXRlZE9iamVjdHMpOworCisgICAgdHlw
ZWRlZiBWZWN0b3I8U3RyaW5nPiBTdHJpbmdWZWN0b3I7CisgICAgT3duUHRyPFN0cmluZ1ZlY3Rv
cj4gdmFsdWUgPSBhZG9wdFB0cihuZXcgU3RyaW5nVmVjdG9yKCkpOworICAgIHNpemVfdCBjb3Vu
dCA9IDEwOworICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgY291bnQ7ICsraSkKKyAgICAgICAg
dmFsdWUtPmFwcGVuZCgic3RyaW5nIik7CisgICAgSW5zdHJ1bWVudGVkT3duZXI8U3RyaW5nVmVj
dG9yKiA+IHJvb3QodmFsdWUuZ2V0KCkpOworICAgIGltcGwuYWRkUm9vdE9iamVjdChyb290KTsK
KyAgICBFWFBFQ1RfRVEoc2l6ZW9mKFN0cmluZ1ZlY3RvcikgKyBzaXplb2YoU3RyaW5nKSAqIHZh
bHVlLT5jYXBhY2l0eSgpICsgc2l6ZW9mKFN0cmluZ0ltcGwpICogdmFsdWUtPnNpemUoKSwgaW1w
bC5yZXBvcnRlZFNpemVGb3JBbGxUeXBlcygpKTsKKyAgICBFWFBFQ1RfRVEoY291bnQgKyAyLCAo
c2l6ZV90KXZpc2l0ZWRPYmplY3RzLnNpemUoKSk7Cit9CisKIH0gLy8gbmFtZXNwYWNlCiAK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>165133</attachid>
            <date>2012-09-21 08:04:40 -0700</date>
            <delta_ts>2012-09-21 08:54:31 -0700</delta_ts>
            <desc>with fixes for mac and elf.</desc>
            <filename>bug-96650-20120921190403.patch</filename>
            <type>text/plain</type>
            <size>50496</size>
            <attacher name="Ilya Tikhonovsky">loislo</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTI5MjI4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IDkyODdjOTIzNTgwNzIzNmRkMDRkNmJl
MGRiZWFhNmRlOTMzNDM1ZjUuLjU0ZDEzYTM2MTYyOWMyZWM0YWRlZDVhZjY2N2MxNDAxMzBjMmQy
ZjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMjcgQEAKKzIwMTItMDktMjEgIElseWEgVGlraG9ub3Zza3kgIDxs
b2lzbG9AY2hyb21pdW0ub3JnPgorCisgICAgICAgIFdlYiBJbnNwZWN0b3I6IGV4dHJhY3QgVmVj
dG9yIGluc3RydW1lbnRhdGlvbiBmcm9tIGNvcmUgTk1JIGNvZGUgaW50byBNZW1vcnlJbnN0cnVt
ZW50YXRpb25WZWN0b3IuaCBoZWFkZXIuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD05NjY1MAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgIEFkZGVkIHJlcG9ydE1lbW9yeVVzYWdlIGZyZWUgdGVtcGxhdGUgZnVu
Y3Rpb24gd2l0aCBkZWZhdWx0IGJvZHkgdG8gY29yZSBOTUkgY29kZQorICAgICAgICBhbmQgYWRk
IGN1c3RvbSB2ZXJzaW9uIG9mIHJlcG9ydE1lbW9yeVVzYWdlIGZ1bmN0aW9uIGZvciBWZWN0b3Jz
LgorCisgICAgICAgICogR05VbWFrZWZpbGUubGlzdC5hbToKKyAgICAgICAgKiBXVEYuZ3lwaToK
KyAgICAgICAgKiBXVEYucHJvOgorICAgICAgICAqIFdURi52Y3Byb2ovV1RGLnZjcHJvajoKKyAg
ICAgICAgKiBXVEYueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiB3dGYvTWVt
b3J5SW5zdHJ1bWVudGF0aW9uLmg6CisgICAgICAgIChXVEYpOgorICAgICAgICAoTWVtb3J5SW5z
dHJ1bWVudGF0aW9uKToKKyAgICAgICAgKFdURjo6TWVtb3J5SW5zdHJ1bWVudGF0aW9uOjphZGRP
YmplY3RJbXBsKToKKyAgICAgICAgKiB3dGYvTWVtb3J5SW5zdHJ1bWVudGF0aW9uVmVjdG9yLmg6
IEFkZGVkLgorICAgICAgICAoV1RGKToKKyAgICAgICAgKFdURjo6aW5zdHJ1bWVudFZlY3RvclZh
bHVlcyk6CisgICAgICAgIChXVEY6OnJlcG9ydE1lbW9yeVVzYWdlKToKKwogMjAxMi0wOS0yMSAg
U2ltb24gSGF1c21hbm4gIDxzaW1vbi5oYXVzbWFubkBkaWdpYS5jb20+CiAKICAgICAgICAgW1F0
XSBFcnJvciBvdXQgZWFybHkgaWYgd2UgZG9uJ3QgaGF2ZSBJQ1UgYXZhaWxhYmxlCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cK
aW5kZXggYmU1MjIwNzU5ODViMzc1OTRjYjAyYWE0NTBiZjI2M2M3MTM3YTY0Ni4uMTJjNjMzYzZl
ZDM2N2UzZTY1YjczNDEwNTRjMWRlYjFkZWMzY2UxMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ3
IEBACisyMDEyLTA5LTIxICBJbHlhIFRpa2hvbm92c2t5ICA8bG9pc2xvQGNocm9taXVtLm9yZz4K
KworICAgICAgICBXZWIgSW5zcGVjdG9yOiBleHRyYWN0IFZlY3RvciBpbnN0cnVtZW50YXRpb24g
ZnJvbSBjb3JlIE5NSSBjb2RlIGludG8gTWVtb3J5SW5zdHJ1bWVudGF0aW9uVmVjdG9yLmggaGVh
ZGVyLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTY2
NTAKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBhZGRJ
bnN0cnVtZW50ZWRWZWN0b3IgYW5kIGFkZEluc3RydW1lbnRlZFZlY3RvclB0ciB3ZXJlIHJlcGxh
Y2VkIHdpdGggYWRkTWVtYmVyLgorICAgICAgICBUaGUgc2FtZSB0aGluZyBoYXBwZW5zIHdpdGgg
YWRkVmVjdG9yIGFuZCBhZGRWZWN0b3JQdHIuCisKKyAgICAgICAgKiBjc3MvQ1NTR3JhZGllbnRW
YWx1ZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDU1NHcmFkaWVudFZhbHVlOjpyZXBvcnRCYXNl
Q2xhc3NNZW1vcnlVc2FnZSk6CisgICAgICAgICogY3NzL0NTU0ltYWdlU2V0VmFsdWUuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6Q1NTSW1hZ2VTZXRWYWx1ZTo6cmVwb3J0RGVzY2VuZGFudE1lbW9y
eVVzYWdlKToKKyAgICAgICAgKiBjc3MvQ1NTTWVkaWFSdWxlLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OkNTU01lZGlhUnVsZTo6cmVwb3J0RGVzY2VuZGFudE1lbW9yeVVzYWdlKToKKyAgICAgICAg
KiBjc3MvQ1NTUnVsZUxpc3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U3RhdGljQ1NTUnVsZUxp
c3Q6OnJlcG9ydE1lbW9yeVVzYWdlKToKKyAgICAgICAgKiBjc3MvQ1NTU3R5bGVTaGVldC5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpDU1NTdHlsZVNoZWV0OjpyZXBvcnRNZW1vcnlVc2FnZSk6Cisg
ICAgICAgICogY3NzL0NTU1ZhbHVlTGlzdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDU1NWYWx1
ZUxpc3Q6OnJlcG9ydERlc2NlbmRhbnRNZW1vcnlVc2FnZSk6CisgICAgICAgICogY3NzL01lZGlh
TGlzdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVF1ZXJ5U2V0OjpyZXBvcnRNZW1vcnlV
c2FnZSk6CisgICAgICAgICogY3NzL01lZGlhUXVlcnkuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
TWVkaWFRdWVyeTo6cmVwb3J0TWVtb3J5VXNhZ2UpOgorICAgICAgICAqIGNzcy9TdHlsZVJlc29s
dmVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlN0eWxlUmVzb2x2ZXI6OmNvbGxlY3RNYXRjaGlu
Z1J1bGVzRm9yTGlzdCk6CisgICAgICAgICogY3NzL1N0eWxlUnVsZS5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpTdHlsZVJ1bGVCbG9jazo6cmVwb3J0RGVzY2VuZGFudE1lbW9yeVVzYWdlKToKKyAg
ICAgICAgKiBjc3MvU3R5bGVTaGVldENvbnRlbnRzLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlN0
eWxlU2hlZXRDb250ZW50czo6cmVwb3J0TWVtb3J5VXNhZ2UpOgorICAgICAgICAqIGNzcy9XZWJL
aXRDU1NLZXlmcmFtZXNSdWxlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlN0eWxlUnVsZUtleWZy
YW1lczo6cmVwb3J0RGVzY2VuZGFudE1lbW9yeVVzYWdlKToKKyAgICAgICAgKFdlYkNvcmU6Oldl
YktpdENTU0tleWZyYW1lc1J1bGU6OnJlcG9ydERlc2NlbmRhbnRNZW1vcnlVc2FnZSk6CisgICAg
ICAgICogY3NzL1dlYktpdENTU1JlZ2lvblJ1bGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6V2Vi
S2l0Q1NTUmVnaW9uUnVsZTo6cmVwb3J0RGVzY2VuZGFudE1lbW9yeVVzYWdlKToKKyAgICAgICAg
KiBkb20vRG9jdW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnQ6OnJlcG9ydE1l
bW9yeVVzYWdlKToKKyAgICAgICAgKiBsb2FkZXIvRG9jdW1lbnRMb2FkZXIuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6RG9jdW1lbnRMb2FkZXI6OnJlcG9ydE1lbW9yeVVzYWdlKToKKyAgICAgICAg
KiBwbGF0Zm9ybS9uZXR3b3JrL1Jlc291cmNlUmVxdWVzdEJhc2UuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6UmVzb3VyY2VSZXF1ZXN0QmFzZTo6cmVwb3J0TWVtb3J5VXNhZ2UpOgorCiAyMDEyLTA5
LTIxICBTaGVyaWZmIEJvdCAgPHdlYmtpdC5yZXZpZXcuYm90QGdtYWlsLmNvbT4KIAogICAgICAg
ICBVbnJldmlld2VkLCByb2xsaW5nIG91dCByMTI5MjE5LgpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxv
ZwppbmRleCA1MWQ0ODkzYzQ4MTUwMTA2ZjE0NTk3MDVjYTI2Mzk5NzhlNzZjZmM4Li4wMGRlYTVm
MjUzNWY0NTc5MjYyNzc3ZmJhYTg2MTlkOTFlMzZhMjI5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L2Nocm9taXVtL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5n
ZUxvZwpAQCAtMSwzICsxLDE3IEBACisyMDEyLTA5LTIxICBJbHlhIFRpa2hvbm92c2t5ICA8bG9p
c2xvQGNocm9taXVtLm9yZz4KKworICAgICAgICBXZWIgSW5zcGVjdG9yOiBleHRyYWN0IFZlY3Rv
ciBpbnN0cnVtZW50YXRpb24gZnJvbSBjb3JlIE5NSSBjb2RlIGludG8gTWVtb3J5SW5zdHJ1bWVu
dGF0aW9uVmVjdG9yLmggaGVhZGVyLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9OTY2NTAKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICBUZXN0IGZvciBpbnN0cnVtZW50ZWQgdmVjdG9yLgorCisgICAgICAgICog
dGVzdHMvTWVtb3J5SW5zdHJ1bWVudGF0aW9uVGVzdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJ
bnN0cnVtZW50ZWRPd25lcjo6SW5zdHJ1bWVudGVkT3duZXIpOgorICAgICAgICAoV2ViQ29yZTo6
VEVTVCk6CisgICAgICAgIChXZWJDb3JlKToKKwogMjAxMi0wOS0yMSAgU2FtaSBLeW9zdGlsYSAg
PHNreW9zdGlsQGNocm9taXVtLm9yZz4KIAogICAgICAgICBbY2hyb21pdW1dIEFkZCB0ZXN0IGZv
ciBTY3JvbGxpbmdDb29yZGluYXRvckNocm9taXVtCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0dO
VW1ha2VmaWxlLmxpc3QuYW0gYi9Tb3VyY2UvV1RGL0dOVW1ha2VmaWxlLmxpc3QuYW0KaW5kZXgg
ZThlNDJlZGQzNTUyZWRlNTVhZjE4NDIxMTUxZjBlYmI5MzM5NmI4NS4uMGVkMTBkZGFlMTQ4YTA3
MzNhODM1MjY5NTRiNzgxOWZkYmNiZGZmMiAxMDA2NDQKLS0tIGEvU291cmNlL1dURi9HTlVtYWtl
ZmlsZS5saXN0LmFtCisrKyBiL1NvdXJjZS9XVEYvR05VbWFrZWZpbGUubGlzdC5hbQpAQCAtODAs
NiArODAsNyBAQCB3dGZfc291cmNlcyArPSBcCiAgICAgU291cmNlL1dURi93dGYvTWVkaWFUaW1l
LmggXAogICAgIFNvdXJjZS9XVEYvd3RmL01lZGlhVGltZS5jcHAgXAogICAgIFNvdXJjZS9XVEYv
d3RmL01lbW9yeUluc3RydW1lbnRhdGlvbi5oIFwKKyAgICBTb3VyY2UvV1RGL3d0Zi9NZW1vcnlJ
bnN0cnVtZW50YXRpb25WZWN0b3IuaCBcCiAgICAgU291cmNlL1dURi93dGYvTWVzc2FnZVF1ZXVl
LmggXAogICAgIFNvdXJjZS9XVEYvd3RmL01ldGFBbGxvY2F0b3IuY3BwIFwKICAgICBTb3VyY2Uv
V1RGL3d0Zi9NZXRhQWxsb2NhdG9yLmggXApkaWZmIC0tZ2l0IGEvU291cmNlL1dURi9XVEYuZ3lw
aSBiL1NvdXJjZS9XVEYvV1RGLmd5cGkKaW5kZXggNWRjZDAxZWQ3ZDNhNGI3YTljMzE4MWI1NGEx
YWE0YzVhOWYyMTM4MS4uZmRjMjhkNmJiNTVlN2U1NjVkYWYwOTViNzNjYjUzYTczZTA5NDhmYyAx
MDA2NDQKLS0tIGEvU291cmNlL1dURi9XVEYuZ3lwaQorKysgYi9Tb3VyY2UvV1RGL1dURi5neXBp
CkBAIC01MCw2ICs1MCw3IEBACiAgICAgICAgICAgICAnd3RmL01haW5UaHJlYWQuaCcsCiAgICAg
ICAgICAgICAnd3RmL01hdGhFeHRyYXMuaCcsCiAgICAgICAgICAgICAnd3RmL01lbW9yeUluc3Ry
dW1lbnRhdGlvbi5oJywKKyAgICAgICAgICAgICd3dGYvTWVtb3J5SW5zdHJ1bWVudGF0aW9uVmVj
dG9yLmgnLAogICAgICAgICAgICAgJ3d0Zi9NZXNzYWdlUXVldWUuaCcsCiAgICAgICAgICAgICAn
d3RmL05vbkNvcHlpbmdTb3J0LmgnLAogICAgICAgICAgICAgJ3d0Zi9Ob25jb3B5YWJsZS5oJywK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvV1RGLnBybyBiL1NvdXJjZS9XVEYvV1RGLnBybwppbmRl
eCBiYzBhODc3MGVmMWE2N2JmNzViOWIyNWU1NDYxYmQ0Mzk1YTJkZDM4Li5lOGRhNGMwYzZiMjQ2
NzBjZDBiNTgyNzU2MDMxM2IwMGM5Zjk4OThlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL1dURi5w
cm8KKysrIGIvU291cmNlL1dURi9XVEYucHJvCkBAIC04Nyw2ICs4Nyw3IEBAIEhFQURFUlMgKz0g
XAogICAgIE1ENS5oIFwKICAgICBNZWRpYVRpbWUuaCBcCiAgICAgTWVtb3J5SW5zdHJ1bWVudGF0
aW9uLmggXAorICAgIE1lbW9yeUluc3RydW1lbnRhdGlvblZlY3Rvci5oIFwKICAgICBNZXNzYWdl
UXVldWUuaCBcCiAgICAgTWV0YUFsbG9jYXRvci5oIFwKICAgICBNZXRhQWxsb2NhdG9ySGFuZGxl
LmggXApkaWZmIC0tZ2l0IGEvU291cmNlL1dURi9XVEYudmNwcm9qL1dURi52Y3Byb2ogYi9Tb3Vy
Y2UvV1RGL1dURi52Y3Byb2ovV1RGLnZjcHJvagppbmRleCA0YjJjYzYyMWFlMTAwN2QzY2IxM2E1
YzZkYTJhMjU3MWUxMTZkZGE1Li5mOTEwOGM4OTM1ZTJmNTg0YWVhOGI4NzJhM2FlMzRjMTI0MzRl
ODQzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL1dURi52Y3Byb2ovV1RGLnZjcHJvagorKysgYi9T
b3VyY2UvV1RGL1dURi52Y3Byb2ovV1RGLnZjcHJvagpAQCAtOTA1LDYgKzkwNSwxMCBAQAogCQkJ
PgogCQk8L0ZpbGU+CiAJCTxGaWxlCisJCSAgICAgICAgUmVsYXRpdmVQYXRoPSIuLlx3dGZcTWVt
b3J5SW5zdHJ1bWVudGF0aW9uVmVjdG9yLmgiCisJCQk+CisJCTwvRmlsZT4KKwkJPEZpbGUKIAkJ
CVJlbGF0aXZlUGF0aD0iLi5cd3RmXE1lc3NhZ2VRdWV1ZS5oIgogCQkJPgogCQk8L0ZpbGU+CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV1RGL1dURi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291
cmNlL1dURi9XVEYueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCA1MmFmN2I5Y2VjYzVk
MWE1MmFlMDhkOTdiNDIyYjNlNWFhYmQwMDc2Li4zYmIxOWRkZDczYmEwOGMwMTBmNDcwODY2MmE3
Y2EwNWUyMmE4YzQxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL1dURi54Y29kZXByb2ovcHJvamVj
dC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XVEYvV1RGLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oK
QEAgLTE3LDYgKzE3LDcgQEAKIAkJNDMzMEYzOEYxNTc0NUIwNTAwQUFGQThGIC8qIFVSTFN0cmlu
Zy5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0MzMw
RjM4RTE1NzQ1QjA1MDBBQUZBOEYgLyogVVJMU3RyaW5nLmNwcCAqLzsgfTsKIAkJNEYwMzIxQkMx
NTZBQThEMTAwNkVCQUY2IC8qIEJpdEFycmF5LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSA0RjAzMjFCQjE1NkFBOEQxMDA2RUJBRjYgLyogQml0QXJyYXku
aCAqLzsgfTsKIAkJNEYxRDExNTQxNUZGMTFCRTAwMjZFOTA4IC8qIE1lbW9yeUluc3RydW1lbnRh
dGlvbi5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNEYx
RDExNTMxNUZGMTFCRTAwMjZFOTA4IC8qIE1lbW9yeUluc3RydW1lbnRhdGlvbi5oICovOyB9Owor
CQk0RkNCNzEwQTE2MEExQTA3MDA4NDI1RUMgLyogTWVtb3J5SW5zdHJ1bWVudGF0aW9uVmVjdG9y
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0RkNCNzEw
OTE2MEExQTA3MDA4NDI1RUMgLyogTWVtb3J5SW5zdHJ1bWVudGF0aW9uVmVjdG9yLmggKi87IH07
CiAJCTdFMjlDMzNFMTVGRkQ3OUIwMDUxNkQ2MSAvKiBPYmpjUnVudGltZUV4dHJhcy5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gN0UyOUMzM0QxNUZGRDc5
QjAwNTE2RDYxIC8qIE9iamNSdW50aW1lRXh0cmFzLmggKi87IH07CiAJCTgxMzQwMTM4MTVCMDky
RkQwMDFGRjBCOCAvKiBCYXNlNjQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gODEzNDAxMzYxNUIwOTJGRDAwMUZGMEI4IC8qIEJhc2U2NC5jcHAgKi87
IH07CiAJCTgxMzQwMTM5MTVCMDkyRkQwMDFGRjBCOCAvKiBCYXNlNjQuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDgxMzQwMTM3MTVCMDkyRkQwMDFGRjBC
OCAvKiBCYXNlNjQuaCAqLzsgfTsKQEAgLTI2NSw2ICsyNjYsNyBAQAogCQk0MzMwRjM4RTE1NzQ1
QjA1MDBBQUZBOEYgLyogVVJMU3RyaW5nLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNw
cDsgcGF0aCA9IFVSTFN0cmluZy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTRG
MDMyMUJCMTU2QUE4RDEwMDZFQkFGNiAvKiBCaXRBcnJheS5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBCaXRBcnJheS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0
RjFEMTE1MzE1RkYxMUJFMDAyNkU5MDggLyogTWVtb3J5SW5zdHJ1bWVudGF0aW9uLmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE1lbW9yeUluc3RydW1lbnRhdGlvbi5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OworCQk0RkNCNzEwOTE2MEExQTA3MDA4NDI1RUMgLyogTWVt
b3J5SW5zdHJ1bWVudGF0aW9uVmVjdG9yLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IE1lbW9yeUluc3RydW1lbnRhdGlvblZlY3Rvci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQk1RDI0N0I2MjE0Njg5Qjg2MDBFNzhCNzYgLyogbGliV1RGLmEgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZXhwbGljaXRGaWxlVHlwZSA9IGFyY2hpdmUuYXI7IGluY2x1ZGVJ
bkluZGV4ID0gMDsgcGF0aCA9IGxpYldURi5hOyBzb3VyY2VUcmVlID0gQlVJTFRfUFJPRFVDVFNf
RElSOyB9OwogCQk1RDI0N0I2RTE0Njg5QzQ3MDBFNzhCNzYgLyogQmFzZS54Y2NvbmZpZyAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQueGNjb25m
aWc7IHBhdGggPSBCYXNlLnhjY29uZmlnOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1
RDI0N0I2RjE0Njg5QzQ3MDBFNzhCNzYgLyogQ29tcGlsZXJWZXJzaW9uLnhjY29uZmlnICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dC54Y2NvbmZp
ZzsgcGF0aCA9IENvbXBpbGVyVmVyc2lvbi54Y2NvbmZpZzsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKQEAgLTY1MCw2ICs2NTIsNyBAQAogCQkJCUNENTQ5N0FBMTU4NTdEMDMwMEI1QkMzMCAv
KiBNZWRpYVRpbWUuY3BwICovLAogCQkJCUNENTQ5N0FCMTU4NTdEMDMwMEI1QkMzMCAvKiBNZWRp
YVRpbWUuaCAqLywKIAkJCQk0RjFEMTE1MzE1RkYxMUJFMDAyNkU5MDggLyogTWVtb3J5SW5zdHJ1
bWVudGF0aW9uLmggKi8sCisJCQkJNEZDQjcxMDkxNjBBMUEwNzAwODQyNUVDIC8qIE1lbW9yeUlu
c3RydW1lbnRhdGlvblZlY3Rvci5oICovLAogCQkJCUE4QTQ3MkNDMTUxQTgyNUIwMDQxMjNGRiAv
KiBNZXNzYWdlUXVldWUuaCAqLywKIAkJCQlBOEE0NzJDRDE1MUE4MjVCMDA0MTIzRkYgLyogTWV0
YUFsbG9jYXRvci5jcHAgKi8sCiAJCQkJQThBNDcyQ0UxNTFBODI1QjAwNDEyM0ZGIC8qIE1ldGFB
bGxvY2F0b3IuaCAqLywKQEAgLTEwNzYsNiArMTA3OSw3IEBACiAJCQkJQThBNDc0NDYxNTFBODI1
QjAwNDEyM0ZGIC8qIFdURlN0cmluZy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQThBNDc0ODcxNTFB
ODI1QjAwNDEyM0ZGIC8qIFdURlRocmVhZERhdGEuaCBpbiBIZWFkZXJzICovLAogCQkJCTRGMUQx
MTU0MTVGRjExQkUwMDI2RTkwOCAvKiBNZW1vcnlJbnN0cnVtZW50YXRpb24uaCBpbiBIZWFkZXJz
ICovLAorCQkJCTRGQ0I3MTBBMTYwQTFBMDcwMDg0MjVFQyAvKiBNZW1vcnlJbnN0cnVtZW50YXRp
b25WZWN0b3IuaCBpbiBIZWFkZXJzICovLAogCQkJKTsKIAkJCXJ1bk9ubHlGb3JEZXBsb3ltZW50
UG9zdHByb2Nlc3NpbmcgPSAwOwogCQl9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvTWVt
b3J5SW5zdHJ1bWVudGF0aW9uLmggYi9Tb3VyY2UvV1RGL3d0Zi9NZW1vcnlJbnN0cnVtZW50YXRp
b24uaAppbmRleCAxMzFhZjg0OTdhY2VhZDNhOWI5Y2FjMmRlZTE3NDdjODJlOTBiNjEzLi5iMWYy
ZTI5NGE1OTIzMmJjNDVjYjA4YTgzZDJhOGZlY2NlYjI5NmFkIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V1RGL3d0Zi9NZW1vcnlJbnN0cnVtZW50YXRpb24uaAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9NZW1v
cnlJbnN0cnVtZW50YXRpb24uaApAQCAtODEsNiArODEsOCBAQCBwcml2YXRlOgogICAgIHNpemVf
dCBtX29iamVjdFNpemU7CiB9OwogCit0ZW1wbGF0ZTx0eXBlbmFtZSBUPiB2b2lkIHJlcG9ydE1l
bW9yeVVzYWdlKGNvbnN0IFQqIGNvbnN0JiwgTWVtb3J5T2JqZWN0SW5mbyopOworCiBjbGFzcyBN
ZW1vcnlJbnN0cnVtZW50YXRpb24gewogcHVibGljOgogICAgIHZpcnR1YWwgfk1lbW9yeUluc3Ry
dW1lbnRhdGlvbigpIHsgfQpAQCAtMTA3LDYgKzEwOSw3IEBAIHByaXZhdGU6CiAgICAgdmlydHVh
bCB2b2lkIHByb2Nlc3NEZWZlcnJlZEluc3RydW1lbnRlZFBvaW50ZXJzKCkgPSAwOwogCiAgICAg
ZnJpZW5kIGNsYXNzIE1lbW9yeUNsYXNzSW5mbzsKKyAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBUPiBm
cmllbmQgdm9pZCByZXBvcnRNZW1vcnlVc2FnZShjb25zdCBUKiBjb25zdCYsIE1lbW9yeU9iamVj
dEluZm8qKTsKIAogICAgIHRlbXBsYXRlPHR5cGVuYW1lIFQ+IHN0YXRpYyB2b2lkIHNlbGVjdElu
c3RydW1lbnRhdGlvbk1ldGhvZChjb25zdCBUKiBjb25zdCYgb2JqZWN0LCBNZW1vcnlPYmplY3RJ
bmZvKiBtZW1vcnlPYmplY3RJbmZvKQogICAgIHsKQEAgLTE0OCw3ICsxNTEsNiBAQCBwcml2YXRl
OgogICAgIHRlbXBsYXRlPHR5cGVuYW1lIE1hcFR5cGU+IHZvaWQgYWRkSW5zdHJ1bWVudGVkTWFw
RW50cmllcyhjb25zdCBNYXBUeXBlJiwgTWVtb3J5T2JqZWN0VHlwZSk7CiAgICAgdGVtcGxhdGU8
dHlwZW5hbWUgTWFwVHlwZT4gdm9pZCBhZGRJbnN0cnVtZW50ZWRNYXBWYWx1ZXMoY29uc3QgTWFw
VHlwZSYsIE1lbW9yeU9iamVjdFR5cGUpOwogICAgIHRlbXBsYXRlPHR5cGVuYW1lIExpc3RIYXNo
U2V0VHlwZT4gdm9pZCBhZGRMaXN0SGFzaFNldChjb25zdCBMaXN0SGFzaFNldFR5cGUmLCBNZW1v
cnlPYmplY3RUeXBlLCBib29sIGNvbnRlbnRPbmx5ID0gZmFsc2UpOwotICAgIHRlbXBsYXRlPHR5
cGVuYW1lIFZlY3RvclR5cGU+IHZvaWQgYWRkVmVjdG9yKGNvbnN0IFZlY3RvclR5cGUmLCBNZW1v
cnlPYmplY3RUeXBlLCBib29sIGNvbnRlbnRPbmx5ID0gZmFsc2UpOwogICAgIHZvaWQgYWRkUmF3
QnVmZmVyKGNvbnN0IHZvaWQqIGNvbnN0JiBidWZmZXIsIE1lbW9yeU9iamVjdFR5cGUgb3duZXJP
YmplY3RUeXBlLCBzaXplX3Qgc2l6ZSkKICAgICB7CiAgICAgICAgIGlmICghYnVmZmVyIHx8IHZp
c2l0ZWQoYnVmZmVyKSkKQEAgLTE5NCwxNCArMTk2LDkgQEAgcHVibGljOgogICAgIHRlbXBsYXRl
PHR5cGVuYW1lIEhhc2hTZXRUeXBlPiB2b2lkIGFkZEhhc2hTZXQoY29uc3QgSGFzaFNldFR5cGUm
IHNldCkgeyBtX21lbW9yeUluc3RydW1lbnRhdGlvbi0+YWRkSGFzaFNldChzZXQsIG1fb2JqZWN0
VHlwZSwgdHJ1ZSk7IH0KICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBIYXNoU2V0VHlwZT4gdm9pZCBh
ZGRIYXNoQ291bnRlZFNldChjb25zdCBIYXNoU2V0VHlwZSYgc2V0KSB7IG1fbWVtb3J5SW5zdHJ1
bWVudGF0aW9uLT5hZGRIYXNoU2V0KHNldCwgbV9vYmplY3RUeXBlLCB0cnVlKTsgfQogICAgIHRl
bXBsYXRlPHR5cGVuYW1lIEhhc2hTZXRUeXBlPiB2b2lkIGFkZEluc3RydW1lbnRlZEhhc2hTZXQo
Y29uc3QgSGFzaFNldFR5cGUmIHNldCkgeyBtX21lbW9yeUluc3RydW1lbnRhdGlvbi0+YWRkSW5z
dHJ1bWVudGVkQ29sbGVjdGlvbihzZXQsIG1fb2JqZWN0VHlwZSwgdHJ1ZSk7IH0KLSAgICB0ZW1w
bGF0ZTx0eXBlbmFtZSBWZWN0b3JUeXBlPiB2b2lkIGFkZEluc3RydW1lbnRlZFZlY3Rvcihjb25z
dCBWZWN0b3JUeXBlJiB2ZWN0b3IpIHsgbV9tZW1vcnlJbnN0cnVtZW50YXRpb24tPmFkZEluc3Ry
dW1lbnRlZENvbGxlY3Rpb24odmVjdG9yLCBtX29iamVjdFR5cGUsIHRydWUpOyB9Ci0gICAgdGVt
cGxhdGU8dHlwZW5hbWUgVmVjdG9yVHlwZT4gdm9pZCBhZGRJbnN0cnVtZW50ZWRWZWN0b3JQdHIo
Y29uc3QgT3duUHRyPFZlY3RvclR5cGU+JiB2ZWN0b3IpIHsgbV9tZW1vcnlJbnN0cnVtZW50YXRp
b24tPmFkZEluc3RydW1lbnRlZENvbGxlY3Rpb24oKnZlY3RvciwgbV9vYmplY3RUeXBlLCBmYWxz
ZSk7IH0KLSAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBWZWN0b3JUeXBlPiB2b2lkIGFkZEluc3RydW1l
bnRlZFZlY3RvclB0cihjb25zdCBWZWN0b3JUeXBlKiBjb25zdCYgdmVjdG9yKSB7IG1fbWVtb3J5
SW5zdHJ1bWVudGF0aW9uLT5hZGRJbnN0cnVtZW50ZWRDb2xsZWN0aW9uKCp2ZWN0b3IsIG1fb2Jq
ZWN0VHlwZSwgZmFsc2UpOyB9CiAgICAgdGVtcGxhdGU8dHlwZW5hbWUgTWFwVHlwZT4gdm9pZCBh
ZGRJbnN0cnVtZW50ZWRNYXBFbnRyaWVzKGNvbnN0IE1hcFR5cGUmIG1hcCkgeyBtX21lbW9yeUlu
c3RydW1lbnRhdGlvbi0+YWRkSW5zdHJ1bWVudGVkTWFwRW50cmllcyhtYXAsIG1fb2JqZWN0VHlw
ZSk7IH0KICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBNYXBUeXBlPiB2b2lkIGFkZEluc3RydW1lbnRl
ZE1hcFZhbHVlcyhjb25zdCBNYXBUeXBlJiBtYXApIHsgbV9tZW1vcnlJbnN0cnVtZW50YXRpb24t
PmFkZEluc3RydW1lbnRlZE1hcFZhbHVlcyhtYXAsIG1fb2JqZWN0VHlwZSk7IH0KICAgICB0ZW1w
bGF0ZTx0eXBlbmFtZSBMaXN0SGFzaFNldFR5cGU+IHZvaWQgYWRkTGlzdEhhc2hTZXQoY29uc3Qg
TGlzdEhhc2hTZXRUeXBlJiBzZXQpIHsgbV9tZW1vcnlJbnN0cnVtZW50YXRpb24tPmFkZExpc3RI
YXNoU2V0KHNldCwgbV9vYmplY3RUeXBlLCB0cnVlKTsgfQotICAgIHRlbXBsYXRlPHR5cGVuYW1l
IFZlY3RvclR5cGU+IHZvaWQgYWRkVmVjdG9yKGNvbnN0IFZlY3RvclR5cGUmIHZlY3RvcikgeyBt
X21lbW9yeUluc3RydW1lbnRhdGlvbi0+YWRkVmVjdG9yKHZlY3RvciwgbV9vYmplY3RUeXBlLCB0
cnVlKTsgfQotICAgIHRlbXBsYXRlPHR5cGVuYW1lIFZlY3RvclR5cGU+IHZvaWQgYWRkVmVjdG9y
UHRyKGNvbnN0IFZlY3RvclR5cGUqIGNvbnN0IHZlY3RvcikgeyBtX21lbW9yeUluc3RydW1lbnRh
dGlvbi0+YWRkVmVjdG9yKCp2ZWN0b3IsIG1fb2JqZWN0VHlwZSwgZmFsc2UpOyB9CiAgICAgdm9p
ZCBhZGRSYXdCdWZmZXIoY29uc3Qgdm9pZCogY29uc3QmIGJ1ZmZlciwgc2l6ZV90IHNpemUpIHsg
bV9tZW1vcnlJbnN0cnVtZW50YXRpb24tPmFkZFJhd0J1ZmZlcihidWZmZXIsIG1fb2JqZWN0VHlw
ZSwgc2l6ZSk7IH0KIAogICAgIHZvaWQgYWRkV2Vha1BvaW50ZXIodm9pZCopIHsgfQpAQCAtMjEz
LDExICsyMTAsMTcgQEAgcHJpdmF0ZToKIH07CiAKIHRlbXBsYXRlPHR5cGVuYW1lIFQ+Cit2b2lk
IHJlcG9ydE1lbW9yeVVzYWdlKGNvbnN0IFQqIGNvbnN0JiBvYmplY3QsIE1lbW9yeU9iamVjdElu
Zm8qIG1lbW9yeU9iamVjdEluZm8pCit7CisgICAgTWVtb3J5SW5zdHJ1bWVudGF0aW9uOjpzZWxl
Y3RJbnN0cnVtZW50YXRpb25NZXRob2Q8VD4ob2JqZWN0LCBtZW1vcnlPYmplY3RJbmZvKTsKK30K
KwordGVtcGxhdGU8dHlwZW5hbWUgVD4KIHZvaWQgTWVtb3J5SW5zdHJ1bWVudGF0aW9uOjphZGRP
YmplY3RJbXBsKGNvbnN0IFQqIGNvbnN0JiBvYmplY3QsIE1lbW9yeU9iamVjdFR5cGUgb3duZXJP
YmplY3RUeXBlLCBNZW1vcnlPd25pbmdUeXBlIG93bmluZ1R5cGUpCiB7CiAgICAgaWYgKG93bmlu
Z1R5cGUgPT0gYnlSZWZlcmVuY2UpIHsKICAgICAgICAgTWVtb3J5T2JqZWN0SW5mbyBtZW1vcnlP
YmplY3RJbmZvKHRoaXMsIG93bmVyT2JqZWN0VHlwZSk7Ci0gICAgICAgIHNlbGVjdEluc3RydW1l
bnRhdGlvbk1ldGhvZDxUPihvYmplY3QsICZtZW1vcnlPYmplY3RJbmZvKTsKKyAgICAgICAgcmVw
b3J0TWVtb3J5VXNhZ2Uob2JqZWN0LCAmbWVtb3J5T2JqZWN0SW5mbyk7CiAgICAgfSBlbHNlIHsK
ICAgICAgICAgaWYgKCFvYmplY3QgfHwgdmlzaXRlZChvYmplY3QpKQogICAgICAgICAgICAgcmV0
dXJuOwpAQCAtMjk1LDE0ICsyOTgsNiBAQCB2b2lkIE1lbW9yeUluc3RydW1lbnRhdGlvbjo6YWRk
TGlzdEhhc2hTZXQoY29uc3QgTGlzdEhhc2hTZXRUeXBlJiBoYXNoU2V0LCBNZW1vcgogICAgIGNv
dW50T2JqZWN0U2l6ZShvd25lck9iamVjdFR5cGUsIHNpemUpOwogfQogCi10ZW1wbGF0ZTx0eXBl
bmFtZSBWZWN0b3JUeXBlPgotdm9pZCBNZW1vcnlJbnN0cnVtZW50YXRpb246OmFkZFZlY3Rvcihj
b25zdCBWZWN0b3JUeXBlJiB2ZWN0b3IsIE1lbW9yeU9iamVjdFR5cGUgb3duZXJPYmplY3RUeXBl
LCBib29sIGNvbnRlbnRPbmx5KQotewotICAgIGlmICghdmVjdG9yLmRhdGEoKSB8fCB2aXNpdGVk
KHZlY3Rvci5kYXRhKCkpKQotICAgICAgICByZXR1cm47Ci0gICAgY291bnRPYmplY3RTaXplKG93
bmVyT2JqZWN0VHlwZSwgY2FsY3VsYXRlQ29udGFpbmVyU2l6ZSh2ZWN0b3IsIGNvbnRlbnRPbmx5
KSk7Ci19Ci0KIHRlbXBsYXRlPHR5cGVuYW1lIENvbnRhaW5lcj4KIHNpemVfdCBNZW1vcnlJbnN0
cnVtZW50YXRpb246OmNhbGN1bGF0ZUNvbnRhaW5lclNpemUoY29uc3QgQ29udGFpbmVyJiBjb250
YWluZXIsIGJvb2wgY29udGVudE9ubHkpCiB7CkBAIC0zMTMsMTAgKzMwOCwxNCBAQCB0ZW1wbGF0
ZTx0eXBlbmFtZSBUPgogdm9pZCBNZW1vcnlJbnN0cnVtZW50YXRpb246Okluc3RydW1lbnRlZFBv
aW50ZXI8VD46OnByb2Nlc3MoTWVtb3J5SW5zdHJ1bWVudGF0aW9uKiBtZW1vcnlJbnN0cnVtZW50
YXRpb24pCiB7CiAgICAgTWVtb3J5T2JqZWN0SW5mbyBtZW1vcnlPYmplY3RJbmZvKG1lbW9yeUlu
c3RydW1lbnRhdGlvbiwgbV9vd25lck9iamVjdFR5cGUpOwotICAgIHNlbGVjdEluc3RydW1lbnRh
dGlvbk1ldGhvZDxUPihtX3BvaW50ZXIsICZtZW1vcnlPYmplY3RJbmZvKTsKKyAgICByZXBvcnRN
ZW1vcnlVc2FnZShtX3BvaW50ZXIsICZtZW1vcnlPYmplY3RJbmZvKTsKICAgICBtZW1vcnlJbnN0
cnVtZW50YXRpb24tPmNvdW50T2JqZWN0U2l6ZShtZW1vcnlPYmplY3RJbmZvLm9iamVjdFR5cGUo
KSwgbWVtb3J5T2JqZWN0SW5mby5vYmplY3RTaXplKCkpOwogfQogCisvLyBMaW5rIHRpbWUgZ3Vh
cmQgZm9yIHZlY3RvciBtZW1vcnkgaW5zdHJ1bWVudGF0aW9uLgordGVtcGxhdGU8dHlwZW5hbWUg
VCwgc2l6ZV90IGlubGluZUNhcGFjaXR5PiBjbGFzcyBWZWN0b3I7Cit0ZW1wbGF0ZTx0eXBlbmFt
ZSBULCBzaXplX3QgaW5saW5lQ2FwYWNpdHk+IHZvaWQgcmVwb3J0TWVtb3J5VXNhZ2UoY29uc3Qg
VmVjdG9yPFQsIGlubGluZUNhcGFjaXR5PiogY29uc3QmLCBNZW1vcnlPYmplY3RJbmZvKik7CisK
IH0gLy8gbmFtZXNwYWNlIFdURgogCiAjZW5kaWYgLy8gIWRlZmluZWQoTWVtb3J5SW5zdHJ1bWVu
dGF0aW9uX2gpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9NZW1vcnlJbnN0cnVtZW50YXRp
b25WZWN0b3IuaCBiL1NvdXJjZS9XVEYvd3RmL01lbW9yeUluc3RydW1lbnRhdGlvblZlY3Rvci5o
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLmZlYTVjYjc0NjI0ZTNhZWFkNzQ3MmQ5YmExZTVlZTMyNzMwNWVmNDgKLS0t
IC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9NZW1vcnlJbnN0cnVtZW50YXRpb25WZWN0
b3IuaApAQCAtMCwwICsxLDYxIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEyIEdvb2dsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMg
YXJlCisgKiBtZXQ6CisgKgorICogICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2Rl
IG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqICAgICAqIFJlZGlz
dHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKKyAqIGNv
cHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIKKyAqIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlh
bHMgcHJvdmlkZWQgd2l0aCB0aGUKKyAqIGRpc3RyaWJ1dGlvbi4KKyAqICAgICAqIE5laXRoZXIg
dGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKKyAqIGNvbnRyaWJ1
dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBm
cm9tCisgKiB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJt
aXNzaW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdI
VCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKKyAqICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9S
IElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBU
SEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IK
KyAqIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFM
TCBUSEUgQ09QWVJJR0hUCisgKiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBB
TlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKKyAqIFNQRUNJQUwsIEVYRU1QTEFSWSwg
T1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQg
VE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0Yg
VVNFLAorICogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dF
VkVSIENBVVNFRCBBTkQgT04gQU5ZCisgKiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElO
IENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJ
R0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAq
IE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBNZW1vcnlJbnN0cnVtZW50YXRpb25WZWN0b3Jf
aAorI2RlZmluZSBNZW1vcnlJbnN0cnVtZW50YXRpb25WZWN0b3JfaAorCisjaW5jbHVkZSA8d3Rm
L01lbW9yeUluc3RydW1lbnRhdGlvbi5oPgorI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KKworbmFt
ZXNwYWNlIFdURiB7CisKK3RlbXBsYXRlPHR5cGVuYW1lIFQsIHNpemVfdCBpbmxpbmVDYXBhY2l0
eT4KK3ZvaWQgaW5zdHJ1bWVudFZlY3RvclZhbHVlcyhNZW1vcnlDbGFzc0luZm8mIGluZm8sIGNv
bnN0IFZlY3RvcjxULCBpbmxpbmVDYXBhY2l0eT4qIGNvbnN0JiB2ZWN0b3IpCit7CisgICAgZm9y
IChzaXplX3QgaSA9IDA7IGkgPCB2ZWN0b3ItPnNpemUoKTsgKytpKQorICAgICAgICBpbmZvLmFk
ZE1lbWJlcih2ZWN0b3ItPmF0KGkpKTsKK30KKwordGVtcGxhdGU8c2l6ZV90IGlubGluZUNhcGFj
aXR5PiB2b2lkIGluc3RydW1lbnRWZWN0b3JWYWx1ZXMoTWVtb3J5Q2xhc3NJbmZvJiwgY29uc3Qg
VmVjdG9yPGludCwgaW5saW5lQ2FwYWNpdHk+KiBjb25zdCYpIHsgfQordGVtcGxhdGU8c2l6ZV90
IGlubGluZUNhcGFjaXR5PiB2b2lkIGluc3RydW1lbnRWZWN0b3JWYWx1ZXMoTWVtb3J5Q2xhc3NJ
bmZvJiwgY29uc3QgVmVjdG9yPGNoYXIsIGlubGluZUNhcGFjaXR5PiogY29uc3QmKSB7IH0KK3Rl
bXBsYXRlPHNpemVfdCBpbmxpbmVDYXBhY2l0eT4gdm9pZCBpbnN0cnVtZW50VmVjdG9yVmFsdWVz
KE1lbW9yeUNsYXNzSW5mbyYsIGNvbnN0IFZlY3RvcjxjaGFyKiwgaW5saW5lQ2FwYWNpdHk+KiBj
b25zdCYpIHsgfQorCit0ZW1wbGF0ZTx0eXBlbmFtZSBULCBzaXplX3QgaW5saW5lQ2FwYWNpdHk+
Cit2b2lkIHJlcG9ydE1lbW9yeVVzYWdlKGNvbnN0IFZlY3RvcjxULCBpbmxpbmVDYXBhY2l0eT4q
IGNvbnN0JiB2ZWN0b3IsIE1lbW9yeU9iamVjdEluZm8qIG1lbW9yeU9iamVjdEluZm8pCit7Cisg
ICAgTWVtb3J5Q2xhc3NJbmZvIGluZm8obWVtb3J5T2JqZWN0SW5mbywgdmVjdG9yKTsKKyAgICBp
ZiAoaW5saW5lQ2FwYWNpdHkgPCB2ZWN0b3ItPmNhcGFjaXR5KCkpCisgICAgICAgIGluZm8uYWRk
UmF3QnVmZmVyKHZlY3Rvci0+ZGF0YSgpLCB2ZWN0b3ItPmNhcGFjaXR5KCkgKiBzaXplb2YoVCkp
OworICAgIGluc3RydW1lbnRWZWN0b3JWYWx1ZXMoaW5mbywgdmVjdG9yKTsKK30KKworfQorCisj
ZW5kaWYgLy8gIWRlZmluZWQoTWVtb3J5SW5zdHJ1bWVudGF0aW9uVmVjdG9yX2gpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9WOFBlcklzb2xhdGVEYXRhLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1Y4UGVySXNvbGF0ZURhdGEuY3BwCmluZGV4IGUxYmMz
MWU1YzQ2NDU4OTFlNmU2NjZmZGIzNGE2NGM3YTIzMWRjNjguLjRlMWUwYTFmNWM5OWE3N2Y0MDFh
NWM5NzJjNGViZTNkN2IzMjcxYTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L3Y4L1Y4UGVySXNvbGF0ZURhdGEuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4
L1Y4UGVySXNvbGF0ZURhdGEuY3BwCkBAIC0yOCw2ICsyOCw3IEBACiAKICNpbmNsdWRlICJTY3Jp
cHRHQ0V2ZW50LmgiCiAjaW5jbHVkZSAiVjhCaW5kaW5nLmgiCisjaW5jbHVkZSA8d3RmL01lbW9y
eUluc3RydW1lbnRhdGlvblZlY3Rvci5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKQEAgLTg3
LDcgKzg4LDcgQEAgdm9pZCBWOFBlcklzb2xhdGVEYXRhOjpyZXBvcnRNZW1vcnlVc2FnZShNZW1v
cnlPYmplY3RJbmZvKiBtZW1vcnlPYmplY3RJbmZvKSBjb24KICAgICBpbmZvLmFkZEhhc2hNYXAo
bV9yYXdUZW1wbGF0ZXMpOwogICAgIGluZm8uYWRkSGFzaE1hcChtX3RlbXBsYXRlcyk7CiAgICAg
aW5mby5hZGRNZW1iZXIobV9zdHJpbmdDYWNoZSk7Ci0gICAgaW5mby5hZGRWZWN0b3IobV9kb21E
YXRhTGlzdCk7CisgICAgaW5mby5hZGRNZW1iZXIobV9kb21EYXRhTGlzdCk7CiAKICAgICBmb3Ig
KHNpemVfdCBpID0gMDsgaSA8IG1fZG9tRGF0YUxpc3Quc2l6ZSgpOyBpKyspCiAgICAgICAgIGlu
Zm8uYWRkTWVtYmVyKG1fZG9tRGF0YUxpc3RbaV0pOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvY3NzL0NTU0dyYWRpZW50VmFsdWUuY3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU0dyYWRp
ZW50VmFsdWUuY3BwCmluZGV4IGY5NzE1ZjI3ZjU4NTFjOTJhMTg1M2RiNDZiYTcwYmRhZGUxYWVh
MjcuLmQwMGMxMzA4ZTUxMGIzMGRiZGI3MzM5ZGFmYWE4NzdiYTUyNGM3ZWQgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NHcmFkaWVudFZhbHVlLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9jc3MvQ1NTR3JhZGllbnRWYWx1ZS5jcHAKQEAgLTM3LDYgKzM3LDcgQEAKICNpbmNsdWRl
ICJSZW5kZXJPYmplY3QuaCIKICNpbmNsdWRlICJTdHlsZVJlc29sdmVyLmgiCiAjaW5jbHVkZSAi
V2ViQ29yZU1lbW9yeUluc3RydW1lbnRhdGlvbi5oIgorI2luY2x1ZGUgPHd0Zi9NZW1vcnlJbnN0
cnVtZW50YXRpb25WZWN0b3IuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9TdHJpbmdCdWlsZGVyLmg+
CiAjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CiAKQEAgLTQ2OSw3ICs0NzAsNyBAQCB2
b2lkIENTU0dyYWRpZW50VmFsdWU6OnJlcG9ydEJhc2VDbGFzc01lbW9yeVVzYWdlKE1lbW9yeU9i
amVjdEluZm8qIG1lbW9yeU9iamVjdAogICAgIGluZm8uYWRkTWVtYmVyKG1fZmlyc3RZKTsKICAg
ICBpbmZvLmFkZE1lbWJlcihtX3NlY29uZFgpOwogICAgIGluZm8uYWRkTWVtYmVyKG1fc2Vjb25k
WSk7Ci0gICAgaW5mby5hZGRJbnN0cnVtZW50ZWRWZWN0b3IobV9zdG9wcyk7CisgICAgaW5mby5h
ZGRNZW1iZXIobV9zdG9wcyk7CiB9CiAKIFN0cmluZyBDU1NMaW5lYXJHcmFkaWVudFZhbHVlOjpj
dXN0b21Dc3NUZXh0KCkgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NJ
bWFnZVNldFZhbHVlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NJbWFnZVNldFZhbHVlLmNw
cAppbmRleCA1ZTZiZWU1YTYzY2EzMDM2NTcyNGRhZGE5NjgwZDIwNmZkMWNiMGE4Li42ZTAyYTIw
Zjk1YWMzZjE0ZjQ2MWExYzUxMDBiNGFkNjJiZDllZjBhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9jc3MvQ1NTSW1hZ2VTZXRWYWx1ZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0NT
U0ltYWdlU2V0VmFsdWUuY3BwCkBAIC0zNyw2ICszNyw3IEBACiAjaW5jbHVkZSAiU3R5bGVDYWNo
ZWRJbWFnZVNldC5oIgogI2luY2x1ZGUgIlN0eWxlUGVuZGluZ0ltYWdlLmgiCiAjaW5jbHVkZSAi
V2ViQ29yZU1lbW9yeUluc3RydW1lbnRhdGlvbi5oIgorI2luY2x1ZGUgPHd0Zi9NZW1vcnlJbnN0
cnVtZW50YXRpb25WZWN0b3IuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCkBAIC0xNjgsNyAr
MTY5LDcgQEAgdm9pZCBDU1NJbWFnZVNldFZhbHVlOjpyZXBvcnREZXNjZW5kYW50TWVtb3J5VXNh
Z2UoTWVtb3J5T2JqZWN0SW5mbyogbWVtb3J5T2JqZWMKIHsKICAgICBNZW1vcnlDbGFzc0luZm8g
aW5mbyhtZW1vcnlPYmplY3RJbmZvLCB0aGlzLCBXZWJDb3JlTWVtb3J5VHlwZXM6OkNTUyk7CiAg
ICAgQ1NTVmFsdWVMaXN0OjpyZXBvcnREZXNjZW5kYW50TWVtb3J5VXNhZ2UobWVtb3J5T2JqZWN0
SW5mbyk7Ci0gICAgaW5mby5hZGRJbnN0cnVtZW50ZWRWZWN0b3IobV9pbWFnZXNJblNldCk7Cisg
ICAgaW5mby5hZGRNZW1iZXIobV9pbWFnZXNJblNldCk7CiB9CiAKIHZvaWQgQ1NTSW1hZ2VTZXRW
YWx1ZTo6SW1hZ2VXaXRoU2NhbGU6OnJlcG9ydE1lbW9yeVVzYWdlKE1lbW9yeU9iamVjdEluZm8q
IG1lbW9yeU9iamVjdEluZm8pIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3Mv
Q1NTTWVkaWFSdWxlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NNZWRpYVJ1bGUuY3BwCmlu
ZGV4IGYwZTljNzljM2YxMmVlMzc2NDdlZTA3NTkwYmJmOTcwOTcwZWJhYmUuLjhjMmM5NzNjMjEw
NjM2YTYxZWQ2MmU3OTRhYzcwMWRlMzk1YWVjNjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2Nzcy9DU1NNZWRpYVJ1bGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NNZWRpYVJ1
bGUuY3BwCkBAIC0yOSw2ICsyOSw3IEBACiAjaW5jbHVkZSAiRXhjZXB0aW9uQ29kZS5oIgogI2lu
Y2x1ZGUgIlN0eWxlUnVsZS5oIgogI2luY2x1ZGUgIldlYkNvcmVNZW1vcnlJbnN0cnVtZW50YXRp
b24uaCIKKyNpbmNsdWRlIDx3dGYvTWVtb3J5SW5zdHJ1bWVudGF0aW9uVmVjdG9yLmg+CiAjaW5j
bHVkZSA8d3RmL3RleHQvU3RyaW5nQnVpbGRlci5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CkBA
IC0xODAsNyArMTgxLDcgQEAgdm9pZCBDU1NNZWRpYVJ1bGU6OnJlcG9ydERlc2NlbmRhbnRNZW1v
cnlVc2FnZShNZW1vcnlPYmplY3RJbmZvKiBtZW1vcnlPYmplY3RJbmYKICAgICBNZW1vcnlDbGFz
c0luZm8gaW5mbyhtZW1vcnlPYmplY3RJbmZvLCB0aGlzLCBXZWJDb3JlTWVtb3J5VHlwZXM6OkNT
Uyk7CiAgICAgQ1NTUnVsZTo6cmVwb3J0QmFzZUNsYXNzTWVtb3J5VXNhZ2UobWVtb3J5T2JqZWN0
SW5mbyk7CiAgICAgaW5mby5hZGRNZW1iZXIobV9tZWRpYUNTU09NV3JhcHBlcik7Ci0gICAgaW5m
by5hZGRJbnN0cnVtZW50ZWRWZWN0b3IobV9jaGlsZFJ1bGVDU1NPTVdyYXBwZXJzKTsKKyAgICBp
bmZvLmFkZE1lbWJlcihtX2NoaWxkUnVsZUNTU09NV3JhcHBlcnMpOwogICAgIGluZm8uYWRkTWVt
YmVyKG1fcnVsZUxpc3RDU1NPTVdyYXBwZXIpOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9jc3MvQ1NTUnVsZUxpc3QuY3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1J1bGVMaXN0
LmNwcAppbmRleCA0NzJiM2RkNjBkMDA5NGY3NTA1Y2FiYTE2MzlhNjhiY2JmYjQ4Y2RlLi5kYWRj
OTNiMTU0N2I0MTQ5ZGVjMGQ5NmVhNGUxNTY1M2IwNzY3MWVjIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9jc3MvQ1NTUnVsZUxpc3QuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NS
dWxlTGlzdC5jcHAKQEAgLTI0LDYgKzI0LDcgQEAKIAogI2luY2x1ZGUgIkNTU1J1bGUuaCIKICNp
bmNsdWRlICJDU1NTdHlsZVNoZWV0LmgiCisjaW5jbHVkZSA8d3RmL01lbW9yeUluc3RydW1lbnRh
dGlvblZlY3Rvci5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKQEAgLTU0LDcgKzU1LDcgQEAg
dm9pZCBTdGF0aWNDU1NSdWxlTGlzdDo6ZGVyZWYoKQogdm9pZCBTdGF0aWNDU1NSdWxlTGlzdDo6
cmVwb3J0TWVtb3J5VXNhZ2UoTWVtb3J5T2JqZWN0SW5mbyogbWVtb3J5T2JqZWN0SW5mbykgY29u
c3QKIHsKICAgICBNZW1vcnlDbGFzc0luZm8gaW5mbyhtZW1vcnlPYmplY3RJbmZvLCB0aGlzLCBX
ZWJDb3JlTWVtb3J5VHlwZXM6OkNTUyk7Ci0gICAgaW5mby5hZGRJbnN0cnVtZW50ZWRWZWN0b3Io
bV9ydWxlcyk7CisgICAgaW5mby5hZGRNZW1iZXIobV9ydWxlcyk7CiB9CiAKIH0gLy8gbmFtZXNw
YWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NTdHlsZVNoZWV0
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NTdHlsZVNoZWV0LmNwcAppbmRleCAwZTEwMjAy
YzdmZWJiZjJiZTZkODlhZmNjZDU3ZGIyZDAzYTYyY2UyLi5kY2ZjMjIwMDZmZjI2NTNkMTEwYzI5
YzMzNWFlYjZkMjcxNzE0NWVkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTU3R5
bGVTaGVldC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1N0eWxlU2hlZXQuY3BwCkBA
IC0zOCw2ICszOCw3IEBACiAjaW5jbHVkZSAiU3R5bGVSdWxlLmgiCiAjaW5jbHVkZSAiU3R5bGVT
aGVldENvbnRlbnRzLmgiCiAjaW5jbHVkZSAiV2ViQ29yZU1lbW9yeUluc3RydW1lbnRhdGlvbi5o
IgorI2luY2x1ZGUgPHd0Zi9NZW1vcnlJbnN0cnVtZW50YXRpb25WZWN0b3IuaD4KICNpbmNsdWRl
IDx3dGYvdGV4dC9TdHJpbmdCdWlsZGVyLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKQEAgLTE4
Nyw3ICsxODgsNyBAQCB2b2lkIENTU1N0eWxlU2hlZXQ6OnJlcG9ydE1lbW9yeVVzYWdlKE1lbW9y
eU9iamVjdEluZm8qIG1lbW9yeU9iamVjdEluZm8pIGNvbnN0CiAgICAgaW5mby5hZGRNZW1iZXIo
bV9vd25lck5vZGUpOwogICAgIGluZm8uYWRkTWVtYmVyKG1fb3duZXJSdWxlKTsKICAgICBpbmZv
LmFkZE1lbWJlcihtX21lZGlhQ1NTT01XcmFwcGVyKTsKLSAgICBpbmZvLmFkZEluc3RydW1lbnRl
ZFZlY3RvcihtX2NoaWxkUnVsZUNTU09NV3JhcHBlcnMpOworICAgIGluZm8uYWRkTWVtYmVyKG1f
Y2hpbGRSdWxlQ1NTT01XcmFwcGVycyk7CiB9CiAKIHZvaWQgQ1NTU3R5bGVTaGVldDo6c2V0RGlz
YWJsZWQoYm9vbCBkaXNhYmxlZCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NW
YWx1ZUxpc3QuY3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1ZhbHVlTGlzdC5jcHAKaW5kZXgg
MjFlNGZhNzAzNWUwNjA3MDIwNjVmMzlmOWFhYzU4ZDBiNmZhNjZjMy4uOWVjMmQ1MDg1ZmI5ZDZk
MzhkZDRjZWIyMTgzYjkxNDhiYjk0MmU5NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3Nz
L0NTU1ZhbHVlTGlzdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1ZhbHVlTGlzdC5j
cHAKQEAgLTIzLDYgKzIzLDcgQEAKIAogI2luY2x1ZGUgIkNTU1BhcnNlclZhbHVlcy5oIgogI2lu
Y2x1ZGUgIldlYkNvcmVNZW1vcnlJbnN0cnVtZW50YXRpb24uaCIKKyNpbmNsdWRlIDx3dGYvTWVt
b3J5SW5zdHJ1bWVudGF0aW9uVmVjdG9yLmg+CiAjaW5jbHVkZSA8d3RmL1Bhc3NPd25QdHIuaD4K
ICNpbmNsdWRlIDx3dGYvdGV4dC9TdHJpbmdCdWlsZGVyLmg+CiAKQEAgLTE4OSw3ICsxOTAsNyBA
QCBQYXNzUmVmUHRyPENTU1ZhbHVlTGlzdD4gQ1NTVmFsdWVMaXN0OjpjbG9uZUZvckNTU09NKCkg
Y29uc3QKIHZvaWQgQ1NTVmFsdWVMaXN0OjpyZXBvcnREZXNjZW5kYW50TWVtb3J5VXNhZ2UoTWVt
b3J5T2JqZWN0SW5mbyogbWVtb3J5T2JqZWN0SW5mbykgY29uc3QKIHsKICAgICBNZW1vcnlDbGFz
c0luZm8gaW5mbyhtZW1vcnlPYmplY3RJbmZvLCB0aGlzLCBXZWJDb3JlTWVtb3J5VHlwZXM6OkNT
Uyk7Ci0gICAgaW5mby5hZGRJbnN0cnVtZW50ZWRWZWN0b3IobV92YWx1ZXMpOworICAgIGluZm8u
YWRkTWVtYmVyKG1fdmFsdWVzKTsKIH0KIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL01lZGlhTGlzdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9j
c3MvTWVkaWFMaXN0LmNwcAppbmRleCA2MjkwM2Q2YjE2ZTQ0MDI5YzEyODczYzk3YTk3YTNmMTA4
ZjU1ZDdkLi5iZGJjNTcxNzQ4MzRiMjBiODBjZDMxZmQyZWJlOWUyNWFjMzRjNjA3IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvTWVkaWFMaXN0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9jc3MvTWVkaWFMaXN0LmNwcApAQCAtMjcsNiArMjcsNyBAQAogI2luY2x1ZGUgIk1lZGlhUXVl
cnkuaCIKICNpbmNsdWRlICJNZWRpYVF1ZXJ5RXhwLmgiCiAjaW5jbHVkZSAiV2ViQ29yZU1lbW9y
eUluc3RydW1lbnRhdGlvbi5oIgorI2luY2x1ZGUgPHd0Zi9NZW1vcnlJbnN0cnVtZW50YXRpb25W
ZWN0b3IuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9TdHJpbmdCdWlsZGVyLmg+CiAKIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKQEAgLTIxNSw3ICsyMTYsNyBAQCBTdHJpbmcgTWVkaWFRdWVyeVNldDo6bWVk
aWFUZXh0KCkgY29uc3QKIHZvaWQgTWVkaWFRdWVyeVNldDo6cmVwb3J0TWVtb3J5VXNhZ2UoTWVt
b3J5T2JqZWN0SW5mbyogbWVtb3J5T2JqZWN0SW5mbykgY29uc3QKIHsKICAgICBNZW1vcnlDbGFz
c0luZm8gaW5mbyhtZW1vcnlPYmplY3RJbmZvLCB0aGlzLCBXZWJDb3JlTWVtb3J5VHlwZXM6OkNT
Uyk7Ci0gICAgaW5mby5hZGRJbnN0cnVtZW50ZWRWZWN0b3IobV9xdWVyaWVzKTsKKyAgICBpbmZv
LmFkZE1lbWJlcihtX3F1ZXJpZXMpOwogfQogICAgIAogTWVkaWFMaXN0OjpNZWRpYUxpc3QoTWVk
aWFRdWVyeVNldCogbWVkaWFRdWVyaWVzLCBDU1NTdHlsZVNoZWV0KiBwYXJlbnRTaGVldCkKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9NZWRpYVF1ZXJ5LmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2Nzcy9NZWRpYVF1ZXJ5LmNwcAppbmRleCBhM2YyNWQ3MTJkNWIxMDM0MDI3MWJjMjAwMjVi
OTY2NzMxNDYyZDY0Li5mYzQ1NTFmZmIxODM3OTllMzQwMjhhMjViMmJmZTczODQzNTMyYjJiIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvTWVkaWFRdWVyeS5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvY3NzL01lZGlhUXVlcnkuY3BwCkBAIC0zMSw2ICszMSw3IEBACiAKICNpbmNsdWRl
ICJNZWRpYVF1ZXJ5RXhwLmgiCiAjaW5jbHVkZSAiV2ViQ29yZU1lbW9yeUluc3RydW1lbnRhdGlv
bi5oIgorI2luY2x1ZGUgPHd0Zi9NZW1vcnlJbnN0cnVtZW50YXRpb25WZWN0b3IuaD4KICNpbmNs
dWRlIDx3dGYvTm9uQ29weWluZ1NvcnQuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9TdHJpbmdCdWls
ZGVyLmg+CiAKQEAgLTEzOCw3ICsxMzksNyBAQCB2b2lkIE1lZGlhUXVlcnk6OnJlcG9ydE1lbW9y
eVVzYWdlKE1lbW9yeU9iamVjdEluZm8qIG1lbW9yeU9iamVjdEluZm8pIGNvbnN0CiB7CiAgICAg
TWVtb3J5Q2xhc3NJbmZvIGluZm8obWVtb3J5T2JqZWN0SW5mbywgdGhpcywgV2ViQ29yZU1lbW9y
eVR5cGVzOjpDU1MpOwogICAgIGluZm8uYWRkTWVtYmVyKG1fbWVkaWFUeXBlKTsKLSAgICBpbmZv
LmFkZEluc3RydW1lbnRlZFZlY3RvclB0cihtX2V4cHJlc3Npb25zKTsKKyAgICBpbmZvLmFkZE1l
bWJlcihtX2V4cHJlc3Npb25zKTsKICAgICBpbmZvLmFkZE1lbWJlcihtX3NlcmlhbGl6YXRpb25D
YWNoZSk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9TdHlsZVByb3BlcnR5
U2V0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9TdHlsZVByb3BlcnR5U2V0LmNwcAppbmRleCA2
ZTNjMGZkZTk2ZDI4YzNhMDY1MjZkYTk5ZjFiMzA2YWU1NGFlZTYzLi5jMTNhMmRiOTk1ODJiZDAz
NjI1NDQyNjRiZGE4NTM4YTI4OTY0OWQzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3Mv
U3R5bGVQcm9wZXJ0eVNldC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL1N0eWxlUHJvcGVy
dHlTZXQuY3BwCkBAIC0zMyw2ICszMyw3IEBACiAjaW5jbHVkZSAiU3R5bGVQcm9wZXJ0eVNob3J0
aGFuZC5oIgogI2luY2x1ZGUgIlN0eWxlU2hlZXRDb250ZW50cy5oIgogI2luY2x1ZGUgPHd0Zi9C
aXRBcnJheS5oPgorI2luY2x1ZGUgPHd0Zi9NZW1vcnlJbnN0cnVtZW50YXRpb25WZWN0b3IuaD4K
ICNpbmNsdWRlIDx3dGYvdGV4dC9TdHJpbmdCdWlsZGVyLmg+CiAKICNpZm5kZWYgTkRFQlVHCkBA
IC0xMTIzLDcgKzExMjQsNyBAQCB2b2lkIFN0eWxlUHJvcGVydHlTZXQ6OnJlcG9ydE1lbW9yeVVz
YWdlKE1lbW9yeU9iamVjdEluZm8qIG1lbW9yeU9iamVjdEluZm8pIGNvbgogICAgIHNpemVfdCBh
Y3R1YWxTaXplID0gbV9pc011dGFibGUgPyBzaXplb2YoU3R5bGVQcm9wZXJ0eVNldCkgOiBpbW11
dGFibGVTdHlsZVByb3BlcnR5U2V0U2l6ZShtX2FycmF5U2l6ZSk7CiAgICAgTWVtb3J5Q2xhc3NJ
bmZvIGluZm8obWVtb3J5T2JqZWN0SW5mbywgdGhpcywgV2ViQ29yZU1lbW9yeVR5cGVzOjpDU1Ms
IGFjdHVhbFNpemUpOwogICAgIGlmIChtX2lzTXV0YWJsZSkKLSAgICAgICAgaW5mby5hZGRWZWN0
b3JQdHIobV9tdXRhYmxlUHJvcGVydHlWZWN0b3IpOworICAgICAgICBpbmZvLmFkZE1lbWJlciht
X211dGFibGVQcm9wZXJ0eVZlY3Rvcik7CiAKICAgICB1bnNpZ25lZCBjb3VudCA9IHByb3BlcnR5
Q291bnQoKTsKICAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgY291bnQ7ICsraSkKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9TdHlsZVJlc29sdmVyLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2Nzcy9TdHlsZVJlc29sdmVyLmNwcAppbmRleCBlYzBjMzljNDlhZGU4M2RkMmRiYzkxYmEy
OTJhZjQxMGI1MjlmYmMzLi4zMTczOGRmOTI4NzlhNjc2NTIxMzQ2YWQ2NmJjOTU0ZmY4NTA1OGU1
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVSZXNvbHZlci5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvY3NzL1N0eWxlUmVzb2x2ZXIuY3BwCkBAIC0xMjUsNiArMTI1LDcgQEAK
ICNpbmNsdWRlICJXZWJLaXRDU1NUcmFuc2Zvcm1WYWx1ZS5oIgogI2luY2x1ZGUgIldlYktpdEZv
bnRGYW1pbHlOYW1lcy5oIgogI2luY2x1ZGUgIlhNTE5hbWVzLmgiCisjaW5jbHVkZSA8d3RmL01l
bW9yeUluc3RydW1lbnRhdGlvblZlY3Rvci5oPgogI2luY2x1ZGUgPHd0Zi9TdGRMaWJFeHRyYXMu
aD4KICNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+CiAKQEAgLTc0Nyw4ICs3NDgsOCBAQCB2b2lkIFN0
eWxlUmVzb2x2ZXI6OkZlYXR1cmVzOjpyZXBvcnRNZW1vcnlVc2FnZShNZW1vcnlPYmplY3RJbmZv
KiBtZW1vcnlPYmplY3RJbgogICAgIE1lbW9yeUNsYXNzSW5mbyBpbmZvKG1lbW9yeU9iamVjdElu
Zm8sIHRoaXMsIFdlYkNvcmVNZW1vcnlUeXBlczo6Q1NTKTsKICAgICBpbmZvLmFkZEhhc2hTZXQo
aWRzSW5SdWxlcyk7CiAgICAgaW5mby5hZGRIYXNoU2V0KGF0dHJzSW5SdWxlcyk7Ci0gICAgaW5m
by5hZGRWZWN0b3Ioc2libGluZ1J1bGVzKTsKLSAgICBpbmZvLmFkZFZlY3Rvcih1bmNvbW1vbkF0
dHJpYnV0ZVJ1bGVzKTsKKyAgICBpbmZvLmFkZE1lbWJlcihzaWJsaW5nUnVsZXMpOworICAgIGlu
Zm8uYWRkTWVtYmVyKHVuY29tbW9uQXR0cmlidXRlUnVsZXMpOwogfQogCiBzdGF0aWMgU3R5bGVT
aGVldENvbnRlbnRzKiBwYXJzZVVBU2hlZXQoY29uc3QgU3RyaW5nJiBzdHIpCkBAIC0yNTY4LDcg
KzI1NjksNyBAQCBzdGF0aWMgdm9pZCByZXBvcnRBdG9tUnVsZU1hcChNZW1vcnlDbGFzc0luZm8q
IGluZm8sIGNvbnN0IFJ1bGVTZXQ6OkF0b21SdWxlTWFwJgogewogICAgIGluZm8tPmFkZEhhc2hN
YXAoYXRvbWljUnVsZU1hcCk7CiAgICAgZm9yIChSdWxlU2V0OjpBdG9tUnVsZU1hcDo6Y29uc3Rf
aXRlcmF0b3IgaXQgPSBhdG9taWNSdWxlTWFwLmJlZ2luKCk7IGl0ICE9IGF0b21pY1J1bGVNYXAu
ZW5kKCk7ICsraXQpCi0gICAgICAgIGluZm8tPmFkZEluc3RydW1lbnRlZFZlY3RvcigqaXQtPnNl
Y29uZCk7CisgICAgICAgIGluZm8tPmFkZE1lbWJlcigqaXQtPnNlY29uZCk7CiB9CiAKIHZvaWQg
UnVsZVNldDo6cmVwb3J0TWVtb3J5VXNhZ2UoTWVtb3J5T2JqZWN0SW5mbyogbWVtb3J5T2JqZWN0
SW5mbykgY29uc3QKQEAgLTI1NzgsMTEgKzI1NzksMTEgQEAgdm9pZCBSdWxlU2V0OjpyZXBvcnRN
ZW1vcnlVc2FnZShNZW1vcnlPYmplY3RJbmZvKiBtZW1vcnlPYmplY3RJbmZvKSBjb25zdAogICAg
IHJlcG9ydEF0b21SdWxlTWFwKCZpbmZvLCBtX2NsYXNzUnVsZXMpOwogICAgIHJlcG9ydEF0b21S
dWxlTWFwKCZpbmZvLCBtX3RhZ1J1bGVzKTsKICAgICByZXBvcnRBdG9tUnVsZU1hcCgmaW5mbywg
bV9zaGFkb3dQc2V1ZG9FbGVtZW50UnVsZXMpOwotICAgIGluZm8uYWRkSW5zdHJ1bWVudGVkVmVj
dG9yKG1fbGlua1BzZXVkb0NsYXNzUnVsZXMpOwotICAgIGluZm8uYWRkSW5zdHJ1bWVudGVkVmVj
dG9yKG1fZm9jdXNQc2V1ZG9DbGFzc1J1bGVzKTsKLSAgICBpbmZvLmFkZEluc3RydW1lbnRlZFZl
Y3RvcihtX3VuaXZlcnNhbFJ1bGVzKTsKLSAgICBpbmZvLmFkZFZlY3RvcihtX3BhZ2VSdWxlcyk7
Ci0gICAgaW5mby5hZGRJbnN0cnVtZW50ZWRWZWN0b3IobV9yZWdpb25TZWxlY3RvcnNBbmRSdWxl
U2V0cyk7CisgICAgaW5mby5hZGRNZW1iZXIobV9saW5rUHNldWRvQ2xhc3NSdWxlcyk7CisgICAg
aW5mby5hZGRNZW1iZXIobV9mb2N1c1BzZXVkb0NsYXNzUnVsZXMpOworICAgIGluZm8uYWRkTWVt
YmVyKG1fdW5pdmVyc2FsUnVsZXMpOworICAgIGluZm8uYWRkTWVtYmVyKG1fcGFnZVJ1bGVzKTsK
KyAgICBpbmZvLmFkZE1lbWJlcihtX3JlZ2lvblNlbGVjdG9yc0FuZFJ1bGVTZXRzKTsKIH0KIAog
dm9pZCBSdWxlU2V0OjpSdWxlU2V0U2VsZWN0b3JQYWlyOjpyZXBvcnRNZW1vcnlVc2FnZShNZW1v
cnlPYmplY3RJbmZvKiBtZW1vcnlPYmplY3RJbmZvKSBjb25zdApAQCAtNTc2Nyw3ICs1NzY4LDcg
QEAgdm9pZCBTdHlsZVJlc29sdmVyOjpNYXRjaGVkUHJvcGVydGllczo6cmVwb3J0TWVtb3J5VXNh
Z2UoTWVtb3J5T2JqZWN0SW5mbyogbWVtb3IKIHZvaWQgU3R5bGVSZXNvbHZlcjo6TWF0Y2hlZFBy
b3BlcnRpZXNDYWNoZUl0ZW06OnJlcG9ydE1lbW9yeVVzYWdlKE1lbW9yeU9iamVjdEluZm8qIG1l
bW9yeU9iamVjdEluZm8pIGNvbnN0CiB7CiAgICAgTWVtb3J5Q2xhc3NJbmZvIGluZm8obWVtb3J5
T2JqZWN0SW5mbywgdGhpcywgV2ViQ29yZU1lbW9yeVR5cGVzOjpDU1MpOwotICAgIGluZm8uYWRk
SW5zdHJ1bWVudGVkVmVjdG9yKG1hdGNoZWRQcm9wZXJ0aWVzKTsKKyAgICBpbmZvLmFkZE1lbWJl
cihtYXRjaGVkUHJvcGVydGllcyk7CiB9CiAKIHZvaWQgTWVkaWFRdWVyeVJlc3VsdDo6cmVwb3J0
TWVtb3J5VXNhZ2UoTWVtb3J5T2JqZWN0SW5mbyogbWVtb3J5T2JqZWN0SW5mbykgY29uc3QKQEAg
LTU3ODcsMTMgKzU3ODgsMTMgQEAgdm9pZCBTdHlsZVJlc29sdmVyOjpyZXBvcnRNZW1vcnlVc2Fn
ZShNZW1vcnlPYmplY3RJbmZvKiBtZW1vcnlPYmplY3RJbmZvKSBjb25zdAogICAgIGluZm8uYWRk
SGFzaE1hcChtX2tleWZyYW1lc1J1bGVNYXApOwogICAgIGluZm8uYWRkSGFzaE1hcChtX21hdGNo
ZWRQcm9wZXJ0aWVzQ2FjaGUpOwogICAgIGluZm8uYWRkSW5zdHJ1bWVudGVkTWFwVmFsdWVzKG1f
bWF0Y2hlZFByb3BlcnRpZXNDYWNoZSk7Ci0gICAgaW5mby5hZGRWZWN0b3IobV9tYXRjaGVkUnVs
ZXMpOworICAgIGluZm8uYWRkTWVtYmVyKG1fbWF0Y2hlZFJ1bGVzKTsKIAogICAgIGluZm8uYWRk
TWVtYmVyKG1fcnVsZUxpc3QpOwogICAgIGluZm8uYWRkSGFzaE1hcChtX3BlbmRpbmdJbWFnZVBy
b3BlcnRpZXMpOwogICAgIGluZm8uYWRkSW5zdHJ1bWVudGVkTWFwVmFsdWVzKG1fcGVuZGluZ0lt
YWdlUHJvcGVydGllcyk7CiAgICAgaW5mby5hZGRNZW1iZXIobV9saW5lSGVpZ2h0VmFsdWUpOwot
ICAgIGluZm8uYWRkSW5zdHJ1bWVudGVkVmVjdG9yKG1fdmlld3BvcnREZXBlbmRlbnRNZWRpYVF1
ZXJ5UmVzdWx0cyk7CisgICAgaW5mby5hZGRNZW1iZXIobV92aWV3cG9ydERlcGVuZGVudE1lZGlh
UXVlcnlSZXN1bHRzKTsKICAgICBpbmZvLmFkZEhhc2hNYXAobV9zdHlsZVJ1bGVUb0NTU09NV3Jh
cHBlck1hcCk7CiAgICAgaW5mby5hZGRJbnN0cnVtZW50ZWRNYXBFbnRyaWVzKG1fc3R5bGVSdWxl
VG9DU1NPTVdyYXBwZXJNYXApOwogICAgIGluZm8uYWRkSW5zdHJ1bWVudGVkSGFzaFNldChtX3N0
eWxlU2hlZXRDU1NPTVdyYXBwZXJTZXQpOwpAQCAtNTgwMyw3ICs1ODA0LDcgQEAgdm9pZCBTdHls
ZVJlc29sdmVyOjpyZXBvcnRNZW1vcnlVc2FnZShNZW1vcnlPYmplY3RJbmZvKiBtZW1vcnlPYmpl
Y3RJbmZvKSBjb25zdAogI2lmIEVOQUJMRShTVFlMRV9TQ09QRUQpCiAgICAgaW5mby5hZGRIYXNo
TWFwKG1fc2NvcGVkQXV0aG9yU3R5bGVzKTsKICAgICBpbmZvLmFkZEluc3RydW1lbnRlZE1hcEVu
dHJpZXMobV9zY29wZWRBdXRob3JTdHlsZXMpOwotICAgIGluZm8uYWRkVmVjdG9yKG1fc2NvcGVT
dGFjayk7CisgICAgaW5mby5hZGRNZW1iZXIobV9zY29wZVN0YWNrKTsKICNlbmRpZgogCiAgICAg
Ly8gRklYTUU6IG1vdmUgdGhpcyB0byBhIHBsYWNlIHdoZXJlIGl0IHdvdWxkIGJlIGNhbGxlZCBv
bmx5IG9uY2U/CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVSdWxlLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2Nzcy9TdHlsZVJ1bGUuY3BwCmluZGV4IDVlY2UxYjRhMjE0MWVjYmUw
YmViZjIyZDllOGVkNzZhZDg1NDcwZjMuLjczYjBhZjI2Y2U0MmFhNDU5NGQ5Yjc2MTc5NmIxOWQ2
YTZiYjY2NWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9TdHlsZVJ1bGUuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9TdHlsZVJ1bGUuY3BwCkBAIC0zMyw2ICszMyw3IEBACiAj
aW5jbHVkZSAiV2ViS2l0Q1NTS2V5ZnJhbWVSdWxlLmgiCiAjaW5jbHVkZSAiV2ViS2l0Q1NTS2V5
ZnJhbWVzUnVsZS5oIgogI2luY2x1ZGUgIldlYktpdENTU1JlZ2lvblJ1bGUuaCIKKyNpbmNsdWRl
IDx3dGYvTWVtb3J5SW5zdHJ1bWVudGF0aW9uVmVjdG9yLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKIApAQCAtMzQwLDcgKzM0MSw3IEBAIHZvaWQgU3R5bGVSdWxlQmxvY2s6OndyYXBwZXJSZW1v
dmVSdWxlKHVuc2lnbmVkIGluZGV4KQogdm9pZCBTdHlsZVJ1bGVCbG9jazo6cmVwb3J0RGVzY2Vu
ZGFudE1lbW9yeVVzYWdlKE1lbW9yeU9iamVjdEluZm8qIG1lbW9yeU9iamVjdEluZm8pIGNvbnN0
CiB7CiAgICAgTWVtb3J5Q2xhc3NJbmZvIGluZm8obWVtb3J5T2JqZWN0SW5mbywgdGhpcywgV2Vi
Q29yZU1lbW9yeVR5cGVzOjpDU1MpOwotICAgIGluZm8uYWRkSW5zdHJ1bWVudGVkVmVjdG9yKG1f
Y2hpbGRSdWxlcyk7CisgICAgaW5mby5hZGRNZW1iZXIobV9jaGlsZFJ1bGVzKTsKIH0KIAogU3R5
bGVSdWxlTWVkaWE6OlN0eWxlUnVsZU1lZGlhKFBhc3NSZWZQdHI8TWVkaWFRdWVyeVNldD4gbWVk
aWEsIFZlY3RvcjxSZWZQdHI8U3R5bGVSdWxlQmFzZT4gPiYgYWRvcHRSdWxlcykKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9TdHlsZVNoZWV0Q29udGVudHMuY3BwIGIvU291cmNlL1dl
YkNvcmUvY3NzL1N0eWxlU2hlZXRDb250ZW50cy5jcHAKaW5kZXggMDQ4MjczYmVjMTc4M2RiMjUy
NzdiMjJlMmVmNDNkYzY4OTYxN2FkZC4uOTQ1ZjM1NWEzODU1YWNkMmE3ZDAyY2M1YjI0NWQ2M2Nj
ZjhlNzAzNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL1N0eWxlU2hlZXRDb250ZW50
cy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL1N0eWxlU2hlZXRDb250ZW50cy5jcHAKQEAg
LTMzLDYgKzMzLDcgQEAKICNpbmNsdWRlICJTdHlsZVJ1bGVJbXBvcnQuaCIKICNpbmNsdWRlICJX
ZWJDb3JlTWVtb3J5SW5zdHJ1bWVudGF0aW9uLmgiCiAjaW5jbHVkZSA8d3RmL0RlcXVlLmg+Cisj
aW5jbHVkZSA8d3RmL01lbW9yeUluc3RydW1lbnRhdGlvblZlY3Rvci5oPgogCiBuYW1lc3BhY2Ug
V2ViQ29yZSB7CiAKQEAgLTQ4OSwxMCArNDkwLDEwIEBAIHZvaWQgU3R5bGVTaGVldENvbnRlbnRz
OjpyZXBvcnRNZW1vcnlVc2FnZShNZW1vcnlPYmplY3RJbmZvKiBtZW1vcnlPYmplY3RJbmZvKSBj
CiAgICAgTWVtb3J5Q2xhc3NJbmZvIGluZm8obWVtb3J5T2JqZWN0SW5mbywgdGhpcywgV2ViQ29y
ZU1lbW9yeVR5cGVzOjpDU1MpOwogICAgIGluZm8uYWRkTWVtYmVyKG1fb3JpZ2luYWxVUkwpOwog
ICAgIGluZm8uYWRkTWVtYmVyKG1fZW5jb2RpbmdGcm9tQ2hhcnNldFJ1bGUpOwotICAgIGluZm8u
YWRkVmVjdG9yKG1faW1wb3J0UnVsZXMpOwotICAgIGluZm8uYWRkSW5zdHJ1bWVudGVkVmVjdG9y
KG1fY2hpbGRSdWxlcyk7CisgICAgaW5mby5hZGRNZW1iZXIobV9pbXBvcnRSdWxlcyk7CisgICAg
aW5mby5hZGRNZW1iZXIobV9jaGlsZFJ1bGVzKTsKICAgICBpbmZvLmFkZEhhc2hNYXAobV9uYW1l
c3BhY2VzKTsKLSAgICBpbmZvLmFkZFZlY3RvcihtX2NsaWVudHMpOworICAgIGluZm8uYWRkTWVt
YmVyKG1fY2xpZW50cyk7CiB9CiAKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9X
ZWJLaXRDU1NLZXlmcmFtZXNSdWxlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9XZWJLaXRDU1NL
ZXlmcmFtZXNSdWxlLmNwcAppbmRleCBhMjk5MWE4MThmNTBmZmY0ZDViNGUwOWJkNDMyOWI4YTMx
Yjg1MDFlLi4wOGZiYjBhNTU4NWQ3YjZmODZiYjk1MjhlNzkxN2Q4Njk0NzU0ZTY2IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvV2ViS2l0Q1NTS2V5ZnJhbWVzUnVsZS5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvY3NzL1dlYktpdENTU0tleWZyYW1lc1J1bGUuY3BwCkBAIC0zMyw2ICsz
Myw3IEBACiAjaW5jbHVkZSAiU3R5bGVTaGVldC5oIgogI2luY2x1ZGUgIldlYkNvcmVNZW1vcnlJ
bnN0cnVtZW50YXRpb24uaCIKICNpbmNsdWRlICJXZWJLaXRDU1NLZXlmcmFtZVJ1bGUuaCIKKyNp
bmNsdWRlIDx3dGYvTWVtb3J5SW5zdHJ1bWVudGF0aW9uVmVjdG9yLmg+CiAjaW5jbHVkZSA8d3Rm
L3RleHQvU3RyaW5nQnVpbGRlci5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CkBAIC05MCw3ICs5
MSw3IEBAIGludCBTdHlsZVJ1bGVLZXlmcmFtZXM6OmZpbmRLZXlmcmFtZUluZGV4KGNvbnN0IFN0
cmluZyYga2V5KSBjb25zdAogdm9pZCBTdHlsZVJ1bGVLZXlmcmFtZXM6OnJlcG9ydERlc2NlbmRh
bnRNZW1vcnlVc2FnZShNZW1vcnlPYmplY3RJbmZvKiBtZW1vcnlPYmplY3RJbmZvKSBjb25zdAog
ewogICAgIE1lbW9yeUNsYXNzSW5mbyBpbmZvKG1lbW9yeU9iamVjdEluZm8sIHRoaXMsIFdlYkNv
cmVNZW1vcnlUeXBlczo6Q1NTKTsKLSAgICBpbmZvLmFkZEluc3RydW1lbnRlZFZlY3RvcihtX2tl
eWZyYW1lcyk7CisgICAgaW5mby5hZGRNZW1iZXIobV9rZXlmcmFtZXMpOwogICAgIGluZm8uYWRk
TWVtYmVyKG1fbmFtZSk7CiB9CiAKQEAgLTIxMSw3ICsyMTIsNyBAQCB2b2lkIFdlYktpdENTU0tl
eWZyYW1lc1J1bGU6OnJlcG9ydERlc2NlbmRhbnRNZW1vcnlVc2FnZShNZW1vcnlPYmplY3RJbmZv
KiBtZW1vcgogICAgIE1lbW9yeUNsYXNzSW5mbyBpbmZvKG1lbW9yeU9iamVjdEluZm8sIHRoaXMs
IFdlYkNvcmVNZW1vcnlUeXBlczo6Q1NTKTsKICAgICBDU1NSdWxlOjpyZXBvcnRCYXNlQ2xhc3NN
ZW1vcnlVc2FnZShtZW1vcnlPYmplY3RJbmZvKTsKICAgICBpbmZvLmFkZE1lbWJlcihtX2tleWZy
YW1lc1J1bGUpOwotICAgIGluZm8uYWRkSW5zdHJ1bWVudGVkVmVjdG9yKG1fY2hpbGRSdWxlQ1NT
T01XcmFwcGVycyk7CisgICAgaW5mby5hZGRNZW1iZXIobV9jaGlsZFJ1bGVDU1NPTVdyYXBwZXJz
KTsKICAgICBpbmZvLmFkZE1lbWJlcihtX3J1bGVMaXN0Q1NTT01XcmFwcGVyKTsKIH0KIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL1dlYktpdENTU1JlZ2lvblJ1bGUuY3BwIGIvU291
cmNlL1dlYkNvcmUvY3NzL1dlYktpdENTU1JlZ2lvblJ1bGUuY3BwCmluZGV4IDVjMmM3MjFjZDY4
NTRhZDM5MjFhYzU2MzkxODVmNmE5Njg5MTNjMzEuLmNlMTIwN2NhYmRmOWJmODU2MDU5ZTg2ZDZi
MjBmMWZiMjI4NDNkZTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9XZWJLaXRDU1NS
ZWdpb25SdWxlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvV2ViS2l0Q1NTUmVnaW9uUnVs
ZS5jcHAKQEAgLTM0LDYgKzM0LDcgQEAKICNpbmNsdWRlICJDU1NQYXJzZXIuaCIKICNpbmNsdWRl
ICJDU1NSdWxlTGlzdC5oIgogI2luY2x1ZGUgIlN0eWxlUnVsZS5oIgorI2luY2x1ZGUgPHd0Zi9N
ZW1vcnlJbnN0cnVtZW50YXRpb25WZWN0b3IuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9TdHJpbmdC
dWlsZGVyLmg+CiAKICNpZiBFTkFCTEUoQ1NTX1JFR0lPTlMpCkBAIC0xMTMsNyArMTE0LDcgQEAg
dm9pZCBXZWJLaXRDU1NSZWdpb25SdWxlOjpyZXBvcnREZXNjZW5kYW50TWVtb3J5VXNhZ2UoTWVt
b3J5T2JqZWN0SW5mbyogbWVtb3J5T2IKICAgICBNZW1vcnlDbGFzc0luZm8gaW5mbyhtZW1vcnlP
YmplY3RJbmZvLCB0aGlzLCBXZWJDb3JlTWVtb3J5VHlwZXM6OkNTUyk7CiAgICAgQ1NTUnVsZTo6
cmVwb3J0QmFzZUNsYXNzTWVtb3J5VXNhZ2UobWVtb3J5T2JqZWN0SW5mbyk7CiAgICAgaW5mby5h
ZGRNZW1iZXIobV9yZWdpb25SdWxlKTsKLSAgICBpbmZvLmFkZEluc3RydW1lbnRlZFZlY3Rvciht
X2NoaWxkUnVsZUNTU09NV3JhcHBlcnMpOworICAgIGluZm8uYWRkTWVtYmVyKG1fY2hpbGRSdWxl
Q1NTT01XcmFwcGVycyk7CiAgICAgaW5mby5hZGRNZW1iZXIobV9ydWxlTGlzdENTU09NV3JhcHBl
cik7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCmluZGV4IGFiNDhjYTM4MmJiMjU5Yjc2OWZl
N2EzNWZkMmM0MzY1NDEzZjdkMWUuLmU5NjcwMzJhMWI2Nzc2NDY0MmMxY2ZlNDgzNjRhNjRhM2Iz
MDMwODkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcApAQCAtMTcyLDYgKzE3Miw3IEBACiAjaW5j
bHVkZSA8d3RmL0N1cnJlbnRUaW1lLmg+CiAjaW5jbHVkZSA8d3RmL0hhc2hGdW5jdGlvbnMuaD4K
ICNpbmNsdWRlIDx3dGYvTWFpblRocmVhZC5oPgorI2luY2x1ZGUgPHd0Zi9NZW1vcnlJbnN0cnVt
ZW50YXRpb25WZWN0b3IuaD4KICNpbmNsdWRlIDx3dGYvUGFzc1JlZlB0ci5oPgogI2luY2x1ZGUg
PHd0Zi9TdGRMaWJFeHRyYXMuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9TdHJpbmdCdWZmZXIuaD4K
QEAgLTYyNTEsNyArNjI1Miw3IEBAIHZvaWQgRG9jdW1lbnQ6OnJlcG9ydE1lbW9yeVVzYWdlKE1l
bW9yeU9iamVjdEluZm8qIG1lbW9yeU9iamVjdEluZm8pIGNvbnN0CiAgICAgTWVtb3J5Q2xhc3NJ
bmZvIGluZm8obWVtb3J5T2JqZWN0SW5mbywgdGhpcywgV2ViQ29yZU1lbW9yeVR5cGVzOjpET00p
OwogICAgIGluZm8uYWRkTWVtYmVyKG1fc3R5bGVSZXNvbHZlcik7CiAgICAgQ29udGFpbmVyTm9k
ZTo6cmVwb3J0TWVtb3J5VXNhZ2UobWVtb3J5T2JqZWN0SW5mbyk7Ci0gICAgaW5mby5hZGRWZWN0
b3IobV9jdXN0b21Gb250cyk7CisgICAgaW5mby5hZGRNZW1iZXIobV9jdXN0b21Gb250cyk7CiAg
ICAgaW5mby5hZGRNZW1iZXIobV91cmwpOwogICAgIGluZm8uYWRkTWVtYmVyKG1fYmFzZVVSTCk7
CiAgICAgaW5mby5hZGRNZW1iZXIobV9iYXNlVVJMT3ZlcnJpZGUpOwpAQCAtNjI2NCwxMCArNjI2
NSw4IEBAIHZvaWQgRG9jdW1lbnQ6OnJlcG9ydE1lbW9yeVVzYWdlKE1lbW9yeU9iamVjdEluZm8q
IG1lbW9yeU9iamVjdEluZm8pIGNvbnN0CiAgICAgaW5mby5hZGRNZW1iZXIobV9jYWNoZWRSZXNv
dXJjZUxvYWRlcik7CiAgICAgaW5mby5hZGRNZW1iZXIobV9lbGVtU2hlZXQpOwogICAgIGluZm8u
YWRkTWVtYmVyKG1fcGFnZVVzZXJTaGVldCk7Ci0gICAgaWYgKG1fcGFnZUdyb3VwVXNlclNoZWV0
cykKLSAgICAgICAgaW5mby5hZGRJbnN0cnVtZW50ZWRWZWN0b3JQdHIobV9wYWdlR3JvdXBVc2Vy
U2hlZXRzKTsKLSAgICBpZiAobV91c2VyU2hlZXRzKQotICAgICAgICBpbmZvLmFkZEluc3RydW1l
bnRlZFZlY3RvclB0cihtX3VzZXJTaGVldHMpOworICAgIGluZm8uYWRkTWVtYmVyKG1fcGFnZUdy
b3VwVXNlclNoZWV0cyk7CisgICAgaW5mby5hZGRNZW1iZXIobV91c2VyU2hlZXRzKTsKICAgICBp
bmZvLmFkZEhhc2hTZXQobV9ub2RlSXRlcmF0b3JzKTsKICAgICBpbmZvLmFkZEhhc2hTZXQobV9y
YW5nZXMpOwogICAgIGluZm8uYWRkTGlzdEhhc2hTZXQobV9zdHlsZVNoZWV0Q2FuZGlkYXRlTm9k
ZXMpOwpAQCAtNjI4MSwxNyArNjI4MCwxNyBAQCB2b2lkIERvY3VtZW50OjpyZXBvcnRNZW1vcnlV
c2FnZShNZW1vcnlPYmplY3RJbmZvKiBtZW1vcnlPYmplY3RJbmZvKSBjb25zdAogICAgIGluZm8u
YWRkSGFzaE1hcChtX2RvY3VtZW50TmFtZWRJdGVtQ29sbGVjdGlvbnMpOwogICAgIGluZm8uYWRk
SGFzaE1hcChtX3dpbmRvd05hbWVkSXRlbUNvbGxlY3Rpb25zKTsKICNpZiBFTkFCTEUoREFTSEJP
QVJEX1NVUFBPUlQpCi0gICAgaW5mby5hZGRWZWN0b3IobV9kYXNoYm9hcmRSZWdpb25zKTsKKyAg
ICBpbmZvLmFkZE1lbWJlcihtX2Rhc2hib2FyZFJlZ2lvbnMpOwogI2VuZGlmCiAgICAgaW5mby5h
ZGRIYXNoTWFwKG1fY3NzQ2FudmFzRWxlbWVudHMpOwotICAgIGluZm8uYWRkVmVjdG9yKG1faWNv
blVSTHMpOworICAgIGluZm8uYWRkTWVtYmVyKG1faWNvblVSTHMpOwogICAgIGluZm8uYWRkSGFz
aFNldChtX2RvY3VtZW50U3VzcGVuc2lvbkNhbGxiYWNrRWxlbWVudHMpOwogICAgIGluZm8uYWRk
SGFzaFNldChtX21lZGlhVm9sdW1lQ2FsbGJhY2tFbGVtZW50cyk7CiAgICAgaW5mby5hZGRIYXNo
U2V0KG1fcHJpdmF0ZUJyb3dzaW5nU3RhdGVDaGFuZ2VkRWxlbWVudHMpOwogICAgIGluZm8uYWRk
SGFzaE1hcChtX2VsZW1lbnRzQnlBY2Nlc3NLZXkpOwogICAgIGluZm8uYWRkTWVtYmVyKG1fZXZl
bnRRdWV1ZSk7CiAgICAgaW5mby5hZGRIYXNoU2V0KG1fbWVkaWFDYW5TdGFydExpc3RlbmVycyk7
Ci0gICAgaW5mby5hZGRWZWN0b3IobV9wZW5kaW5nVGFza3MpOworICAgIGluZm8uYWRkTWVtYmVy
KG1fcGVuZGluZ1Rhc2tzKTsKIH0KIAogI2lmIEVOQUJMRShVTkRPX01BTkFHRVIpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudEF0dHJpYnV0ZURhdGEuY3BwIGIvU291cmNl
L1dlYkNvcmUvZG9tL0VsZW1lbnRBdHRyaWJ1dGVEYXRhLmNwcAppbmRleCAwM2Y3YjgxZmNmNWIx
NjgxNmYzMWViZDNjNWZmMGQ1YTAyZDNmNzQxLi41YTdmMzQxMjU0YTg2NWE1NTIzNzA1NWEzYmRi
ZGZjOWYyNGNlZGQ1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudEF0dHJp
YnV0ZURhdGEuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50QXR0cmlidXRlRGF0
YS5jcHAKQEAgLTMxLDYgKzMxLDcgQEAKICNpbmNsdWRlICJDU1NTdHlsZVNoZWV0LmgiCiAjaW5j
bHVkZSAiU3R5bGVkRWxlbWVudC5oIgogI2luY2x1ZGUgIldlYkNvcmVNZW1vcnlJbnN0cnVtZW50
YXRpb24uaCIKKyNpbmNsdWRlIDx3dGYvTWVtb3J5SW5zdHJ1bWVudGF0aW9uVmVjdG9yLmg+CiAK
IG5hbWVzcGFjZSBXZWJDb3JlIHsKIApAQCAtMzAwLDcgKzMwMSw3IEBAIHZvaWQgRWxlbWVudEF0
dHJpYnV0ZURhdGE6OnJlcG9ydE1lbW9yeVVzYWdlKE1lbW9yeU9iamVjdEluZm8qIG1lbW9yeU9i
amVjdEluZm8pCiAgICAgaW5mby5hZGRNZW1iZXIobV9jbGFzc05hbWVzKTsKICAgICBpbmZvLmFk
ZE1lbWJlcihtX2lkRm9yU3R5bGVSZXNvbHV0aW9uKTsKICAgICBpZiAobV9pc011dGFibGUpCi0g
ICAgICAgIGluZm8uYWRkVmVjdG9yKG11dGFibGVBdHRyaWJ1dGVWZWN0b3IoKSk7CisgICAgICAg
IGluZm8uYWRkTWVtYmVyKG11dGFibGVBdHRyaWJ1dGVWZWN0b3IoKSk7CiAgICAgZm9yICh1bnNp
Z25lZCBpID0gMCwgbGVuID0gbGVuZ3RoKCk7IGkgPCBsZW47IGkrKykKICAgICAgICAgaW5mby5h
ZGRNZW1iZXIoKmF0dHJpYnV0ZUl0ZW0oaSkpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvbG9hZGVyL0RvY3VtZW50TG9hZGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Eb2N1
bWVudExvYWRlci5jcHAKaW5kZXggODM2ODA0MWNmODBhM2Q2NDE1MWE5YjBiMGNhNTYyMzZlNGM0
NDg5Mi4uOTAwYWY5NzhhYTYxMWZhMmM1NTQ5MjczNWI0MDMzNmE0ZTg2M2I4YiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0RvY3VtZW50TG9hZGVyLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9sb2FkZXIvRG9jdW1lbnRMb2FkZXIuY3BwCkBAIC01Myw2ICs1Myw3IEBACiAjaW5j
bHVkZSAiVGV4dFJlc291cmNlRGVjb2Rlci5oIgogI2luY2x1ZGUgIldlYkNvcmVNZW1vcnlJbnN0
cnVtZW50YXRpb24uaCIKICNpbmNsdWRlIDx3dGYvQXNzZXJ0aW9ucy5oPgorI2luY2x1ZGUgPHd0
Zi9NZW1vcnlJbnN0cnVtZW50YXRpb25WZWN0b3IuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9DU3Ry
aW5nLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CiAjaW5jbHVkZSA8d3RmL3Vu
aWNvZGUvVW5pY29kZS5oPgpAQCAtMzY4LDE2ICszNjksMTYgQEAgdm9pZCBEb2N1bWVudExvYWRl
cjo6cmVwb3J0TWVtb3J5VXNhZ2UoTWVtb3J5T2JqZWN0SW5mbyogbWVtb3J5T2JqZWN0SW5mbykg
Y29uc3QKICAgICBpbmZvLmFkZE1lbWJlcihtX3N1YnN0aXR1dGVEYXRhKTsKICAgICBpbmZvLmFk
ZE1lbWJlcihtX3BhZ2VUaXRsZS5zdHJpbmcoKSk7CiAgICAgaW5mby5hZGRNZW1iZXIobV9vdmVy
cmlkZUVuY29kaW5nKTsKLSAgICBpbmZvLmFkZFZlY3RvcihtX3Jlc3BvbnNlcyk7CisgICAgaW5m
by5hZGRNZW1iZXIobV9yZXNwb25zZXMpOwogICAgIGluZm8uYWRkTWVtYmVyKG1fb3JpZ2luYWxS
ZXF1ZXN0KTsKICAgICBpbmZvLmFkZE1lbWJlcihtX29yaWdpbmFsUmVxdWVzdENvcHkpOwogICAg
IGluZm8uYWRkTWVtYmVyKG1fcmVxdWVzdCk7CiAgICAgaW5mby5hZGRNZW1iZXIobV9yZXNwb25z
ZSk7CiAgICAgaW5mby5hZGRNZW1iZXIobV9sYXN0Q2hlY2tlZFJlcXVlc3QpOwotICAgIGluZm8u
YWRkSW5zdHJ1bWVudGVkVmVjdG9yKG1fcmVzcG9uc2VzKTsKKyAgICBpbmZvLmFkZE1lbWJlciht
X3Jlc3BvbnNlcyk7CiAgICAgaW5mby5hZGRIYXNoTWFwKG1fcGVuZGluZ1N1YnN0aXR1dGVSZXNv
dXJjZXMpOwogICAgIGluZm8uYWRkSW5zdHJ1bWVudGVkSGFzaFNldChtX3Jlc291cmNlc0NsaWVu
dEtub3dzQWJvdXQpOwotICAgIGluZm8uYWRkVmVjdG9yKG1fcmVzb3VyY2VzTG9hZGVkRnJvbU1l
bW9yeUNhY2hlRm9yQ2xpZW50Tm90aWZpY2F0aW9uKTsKKyAgICBpbmZvLmFkZE1lbWJlcihtX3Jl
c291cmNlc0xvYWRlZEZyb21NZW1vcnlDYWNoZUZvckNsaWVudE5vdGlmaWNhdGlvbik7CiAgICAg
aW5mby5hZGRNZW1iZXIobV9jbGllbnRSZWRpcmVjdFNvdXJjZUZvckhpc3RvcnkpOwogICAgIGlu
Zm8uYWRkTWVtYmVyKG1fbWFpblJlc291cmNlRGF0YSk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9sb2FkZXIvY2FjaGUvTWVtb3J5Q2FjaGUuY3BwIGIvU291cmNlL1dlYkNvcmUvbG9h
ZGVyL2NhY2hlL01lbW9yeUNhY2hlLmNwcAppbmRleCA2NmQzMjAxZWI0NTA4MWI2OWY0YzQzZWNj
NDY0NGFjZmFkNzRhZDgwLi5jMWFmMDlkNjliOWMwZGU3YzhhNzJmM2UzOGQ0NzQ3YWI4ODNkMmQw
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvTWVtb3J5Q2FjaGUuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9NZW1vcnlDYWNoZS5jcHAKQEAgLTQ1
LDYgKzQ1LDcgQEAKICNpbmNsdWRlICJXb3JrZXJUaHJlYWQuaCIKICNpbmNsdWRlIDxzdGRpby5o
PgogI2luY2x1ZGUgPHd0Zi9DdXJyZW50VGltZS5oPgorI2luY2x1ZGUgPHd0Zi9NZW1vcnlJbnN0
cnVtZW50YXRpb25WZWN0b3IuaD4KICNpbmNsdWRlIDx3dGYvVGVtcG9yYXJ5Q2hhbmdlLmg+CiAj
aW5jbHVkZSA8d3RmL3RleHQvQ1N0cmluZy5oPgogCkBAIC03MjQsNyArNzI1LDcgQEAgdm9pZCBN
ZW1vcnlDYWNoZTo6cmVwb3J0TWVtb3J5VXNhZ2UoTWVtb3J5T2JqZWN0SW5mbyogbWVtb3J5T2Jq
ZWN0SW5mbykgY29uc3QKICAgICAgICAgaW5mby5hZGRNZW1iZXIoaS0+Zmlyc3QpOwogICAgICAg
ICBpbmZvLmFkZE1lbWJlcihpLT5zZWNvbmQpOwogICAgIH0KLSAgICBpbmZvLmFkZFZlY3Rvciht
X2FsbFJlc291cmNlcyk7CisgICAgaW5mby5hZGRNZW1iZXIobV9hbGxSZXNvdXJjZXMpOwogICAg
IGluZm8uYWRkTWVtYmVyKG1fbGl2ZURlY29kZWRSZXNvdXJjZXMpOwogfQogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TaGFyZWRCdWZmZXIuY3BwIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vU2hhcmVkQnVmZmVyLmNwcAppbmRleCA2OGMzMTk2YTc1MmUxOWIwOWNjZjQx
NjExNDYyNmI3N2FhMTk3ODEwLi5kZTVmNzFkYzJlM2I5NjZhNTU4YTIzZThhMjQ0ZjA3ZGI5OGE1
MGYyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TaGFyZWRCdWZmZXIuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1NoYXJlZEJ1ZmZlci5jcHAKQEAgLTI5LDYg
KzI5LDcgQEAKIAogI2luY2x1ZGUgIlBsYXRmb3JtTWVtb3J5SW5zdHJ1bWVudGF0aW9uLmgiCiAj
aW5jbHVkZSAiUHVyZ2VhYmxlQnVmZmVyLmgiCisjaW5jbHVkZSA8d3RmL01lbW9yeUluc3RydW1l
bnRhdGlvblZlY3Rvci5oPgogI2luY2x1ZGUgPHd0Zi9QYXNzT3duUHRyLmg+CiAjaW5jbHVkZSA8
d3RmL3VuaWNvZGUvVVRGOC5oPgogI2luY2x1ZGUgPHd0Zi91bmljb2RlL1VuaWNvZGUuaD4KQEAg
LTI1MSw4ICsyNTIsOCBAQCBjb25zdCBWZWN0b3I8Y2hhcj4mIFNoYXJlZEJ1ZmZlcjo6YnVmZmVy
KCkgY29uc3QKIHZvaWQgU2hhcmVkQnVmZmVyOjpyZXBvcnRNZW1vcnlVc2FnZShNZW1vcnlPYmpl
Y3RJbmZvKiBtZW1vcnlPYmplY3RJbmZvKSBjb25zdAogewogICAgIE1lbW9yeUNsYXNzSW5mbyBp
bmZvKG1lbW9yeU9iamVjdEluZm8sIHRoaXMpOwotICAgIGluZm8uYWRkVmVjdG9yKG1fYnVmZmVy
KTsKLSAgICBpbmZvLmFkZFZlY3RvcihtX3NlZ21lbnRzKTsKKyAgICBpbmZvLmFkZE1lbWJlciht
X2J1ZmZlcik7CisgICAgaW5mby5hZGRNZW1iZXIobV9zZWdtZW50cyk7CiAgICAgZm9yICh1bnNp
Z25lZCBpID0gMDsgaSA8IG1fc2VnbWVudHMuc2l6ZSgpOyArK2kpCiAgICAgICAgIGluZm8uYWRk
UmF3QnVmZmVyKG1fc2VnbWVudHNbaV0sIHNlZ21lbnRTaXplKTsKICAgICBpbmZvLmFkZE1lbWJl
cihtX3B1cmdlYWJsZUJ1ZmZlci5nZXQoKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9CaXRtYXBJbWFnZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9CaXRtYXBJbWFnZS5jcHAKaW5kZXggMGIxMTY4MDc4MWU1YzI3OTgxMGRlMmM0
ZTUwMmZhYzZmMTIxZTEwZC4uZDBhMmFhYmQxZDQwYzA3MGNlYjVhNzJkMDNmY2U4N2Y5ZjkzNDVk
YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvQml0bWFwSW1h
Z2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0JpdG1hcEltYWdl
LmNwcApAQCAtMzQsNiArMzQsNyBAQAogI2luY2x1ZGUgIlBsYXRmb3JtTWVtb3J5SW5zdHJ1bWVu
dGF0aW9uLmgiCiAjaW5jbHVkZSAiVGltZXIuaCIKICNpbmNsdWRlIDx3dGYvQ3VycmVudFRpbWUu
aD4KKyNpbmNsdWRlIDx3dGYvTWVtb3J5SW5zdHJ1bWVudGF0aW9uVmVjdG9yLmg+CiAjaW5jbHVk
ZSA8d3RmL1ZlY3Rvci5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgogCkBAIC01
NzgsNyArNTc5LDcgQEAgdm9pZCBCaXRtYXBJbWFnZTo6cmVwb3J0TWVtb3J5VXNhZ2UoTWVtb3J5
T2JqZWN0SW5mbyogbWVtb3J5T2JqZWN0SW5mbykgY29uc3QKICAgICBJbWFnZTo6cmVwb3J0TWVt
b3J5VXNhZ2UobWVtb3J5T2JqZWN0SW5mbyk7CiAgICAgaW5mby5hZGRNZW1iZXIobV9zb3VyY2Up
OwogICAgIGluZm8uYWRkTWVtYmVyKG1fZnJhbWVUaW1lcik7Ci0gICAgaW5mby5hZGRWZWN0b3Io
bV9mcmFtZXMpOworICAgIGluZm8uYWRkTWVtYmVyKG1fZnJhbWVzKTsKICAgICBmb3IgKHVuc2ln
bmVkIGkgPSAwOyBpIDwgbV9mcmFtZUNvdW50OyArK2kpIHsKICNpZiBPUyhXSU5DRSkgJiYgIVBM
QVRGT1JNKFFUKQogICAgICAgICBpbmZvLmFkZFJhd0J1ZmZlcihtX2ZyYW1lc1tpXS5tX2ZyYW1l
LmdldCgpLCBtX2ZyYW1lc1tpXS5tX2ZyYW1lQnl0ZXMpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvQml0bWFwSW1hZ2UuaCBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL0JpdG1hcEltYWdlLmgKaW5kZXggMTBiMzcyOTQ4YWZkZDk2Y2VhODI5
MjA1NzZhMmQ0MjRjZWQwYWJiMC4uM2YyM2RjZWRmZWE0YTUzM2QwODJiMjM2YTI4ZmU4NThkZGQ2
MGJiZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvQml0bWFw
SW1hZ2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9CaXRtYXBJbWFn
ZS5oCkBAIC04Nyw3ICs4Nyw2IEBAIHB1YmxpYzoKICAgICAvLyBDbGVhciB0aGUgY2FjaGVkIGlt
YWdlIGRhdGEgb24gdGhlIGZyYW1lLCBhbmQgKG9wdGlvbmFsbHkpIHRoZSBtZXRhZGF0YS4KICAg
ICAvLyBSZXR1cm5zIHdoZXRoZXIgdGhlcmUgd2FzIGNhY2hlZCBpbWFnZSBkYXRhIHRvIGNsZWFy
LgogICAgIGJvb2wgY2xlYXIoYm9vbCBjbGVhck1ldGFkYXRhKTsKLSAgICB2b2lkIHJlcG9ydE1l
bW9yeVVzYWdlKE1lbW9yeU9iamVjdEluZm8qKSBjb25zdDsKIAogICAgIE5hdGl2ZUltYWdlUHRy
IG1fZnJhbWU7CiAgICAgSW1hZ2VPcmllbnRhdGlvbiBtX29yaWVudGF0aW9uOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9Gb3JtRGF0YS5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL0Zvcm1EYXRhLmNwcAppbmRleCA0NWY3MzAyNDg2ZTA4
NTA0YzhkM2QyMmE1NzM3NDdjYTQ5MWI4YTljLi40M2E3MWFmMWE3MWZiNmZkY2NkMzBiYThjN2U1
YTUxMTYxMTE2YWVlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3Jr
L0Zvcm1EYXRhLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL0Zvcm1E
YXRhLmNwcApAQCAtMzcsNiArMzcsNyBAQAogI2luY2x1ZGUgIlRleHRFbmNvZGluZy5oIgogI2lu
Y2x1ZGUgPHd0Zi9EZWNvZGVyLmg+CiAjaW5jbHVkZSA8d3RmL0VuY29kZXIuaD4KKyNpbmNsdWRl
IDx3dGYvTWVtb3J5SW5zdHJ1bWVudGF0aW9uVmVjdG9yLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKIApAQCAtMzYwLDcgKzM2MSw3IEBAIHZvaWQgRm9ybURhdGE6OnJlbW92ZUdlbmVyYXRlZEZp
bGVzSWZOZWVkZWQoKQogdm9pZCBGb3JtRGF0YTo6cmVwb3J0TWVtb3J5VXNhZ2UoTWVtb3J5T2Jq
ZWN0SW5mbyogbWVtb3J5T2JqZWN0SW5mbykgY29uc3QKIHsKICAgICBNZW1vcnlDbGFzc0luZm8g
aW5mbyhtZW1vcnlPYmplY3RJbmZvLCB0aGlzLCBQbGF0Zm9ybU1lbW9yeVR5cGVzOjpMb2FkZXIp
OwotICAgIGluZm8uYWRkVmVjdG9yKG1fYm91bmRhcnkpOworICAgIGluZm8uYWRkTWVtYmVyKG1f
Ym91bmRhcnkpOwogfQogCiBzdGF0aWMgdm9pZCBlbmNvZGUoRW5jb2RlciYgZW5jb2RlciwgY29u
c3QgRm9ybURhdGFFbGVtZW50JiBlbGVtZW50KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vbmV0d29yay9SZXNvdXJjZVJlcXVlc3RCYXNlLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL25ldHdvcmsvUmVzb3VyY2VSZXF1ZXN0QmFzZS5jcHAKaW5kZXggMDBmNTgzOTA1
NTk0NzFlYjdlNGY2M2Q1YWRjYWFmNmVhYWVkNWI2Yy4uMzAzZGVhYTljYmRhNzZhZmJmYzZjNTYy
MmMwNTQ3NDE0OTkwZmM0NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0
d29yay9SZXNvdXJjZVJlcXVlc3RCYXNlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9uZXR3b3JrL1Jlc291cmNlUmVxdWVzdEJhc2UuY3BwCkBAIC0yOCw2ICsyOCw3IEBACiAKICNp
bmNsdWRlICJQbGF0Zm9ybU1lbW9yeUluc3RydW1lbnRhdGlvbi5oIgogI2luY2x1ZGUgIlJlc291
cmNlUmVxdWVzdC5oIgorI2luY2x1ZGUgPHd0Zi9NZW1vcnlJbnN0cnVtZW50YXRpb25WZWN0b3Iu
aD4KIAogdXNpbmcgbmFtZXNwYWNlIHN0ZDsKIApAQCAtNDUyLDcgKzQ1Myw3IEBAIHZvaWQgUmVz
b3VyY2VSZXF1ZXN0QmFzZTo6cmVwb3J0TWVtb3J5VXNhZ2UoTWVtb3J5T2JqZWN0SW5mbyogbWVt
b3J5T2JqZWN0SW5mbykKICAgICBpbmZvLmFkZE1lbWJlcihtX2h0dHBNZXRob2QpOwogICAgIGlu
Zm8uYWRkSGFzaE1hcChtX2h0dHBIZWFkZXJGaWVsZHMpOwogICAgIGluZm8uYWRkSW5zdHJ1bWVu
dGVkTWFwRW50cmllcyhtX2h0dHBIZWFkZXJGaWVsZHMpOwotICAgIGluZm8uYWRkSW5zdHJ1bWVu
dGVkVmVjdG9yKG1fcmVzcG9uc2VDb250ZW50RGlzcG9zaXRpb25FbmNvZGluZ0ZhbGxiYWNrQXJy
YXkpOworICAgIGluZm8uYWRkTWVtYmVyKG1fcmVzcG9uc2VDb250ZW50RGlzcG9zaXRpb25FbmNv
ZGluZ0ZhbGxiYWNrQXJyYXkpOwogICAgIGluZm8uYWRkTWVtYmVyKG1faHR0cEJvZHkpOwogfQog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGUu
Y3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlLmNwcAppbmRl
eCAwNjAyY2ZhOWJmMjZmYzgyZjZhNGJiZjFmNzJmMzlkZDNjMGJiMjY1Li42M2Q1ZTA1NTA3MWVl
YWU5ZDcyMGNmMTBjNjUxNmMwZGE0NjVlMTQ3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9zdHlsZS9SZW5kZXJTdHlsZS5jcHAKQEAgLTQwLDYgKzQwLDcgQEAKICNpbmNsdWRlICJS
ZW5kZXJUaGVtZS5oIgogI2VuZGlmCiAjaW5jbHVkZSAiV2ViQ29yZU1lbW9yeUluc3RydW1lbnRh
dGlvbi5oIgorI2luY2x1ZGUgPHd0Zi9NZW1vcnlJbnN0cnVtZW50YXRpb25WZWN0b3IuaD4KICNp
bmNsdWRlIDx3dGYvU3RkTGliRXh0cmFzLmg+CiAjaW5jbHVkZSA8YWxnb3JpdGhtPgogCkBAIC0x
NjE1LDggKzE2MTYsNyBAQCB2b2lkIFJlbmRlclN0eWxlOjpyZXBvcnRNZW1vcnlVc2FnZShNZW1v
cnlPYmplY3RJbmZvKiBtZW1vcnlPYmplY3RJbmZvKSBjb25zdAogICAgIGluZm8uYWRkTWVtYmVy
KHJhcmVJbmhlcml0ZWREYXRhKTsKICAgICAvLyBGSVhNRTogaW5oZXJpdGVkIGNvbnRhaW5zIFN0
eWxlSW1hZ2UgYW5kIEZvbnQgZmllbGRzIHRoYXQgbWlnaHQgbmVlZCB0byBiZSBpbnN0cnVtZW50
ZWQuCiAgICAgaW5mby5hZGRNZW1iZXIoaW5oZXJpdGVkKTsKLSAgICBpZiAobV9jYWNoZWRQc2V1
ZG9TdHlsZXMpCi0gICAgICAgIGluZm8uYWRkVmVjdG9yUHRyKG1fY2FjaGVkUHNldWRvU3R5bGVz
LmdldCgpKTsKKyAgICBpbmZvLmFkZE1lbWJlcihtX2NhY2hlZFBzZXVkb1N0eWxlcyk7CiAjaWYg
RU5BQkxFKFNWRykKICAgICBpbmZvLmFkZE1lbWJlcihtX3N2Z1N0eWxlKTsKICNlbmRpZgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1N0eWxlUmFyZU5vbkluaGVy
aXRlZERhdGEuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1N0eWxlUmFyZU5v
bkluaGVyaXRlZERhdGEuY3BwCmluZGV4IGJiZTA3YmZkZWM2Yzg2YzYxMjdlZmViN2FlOGIyZTQx
MWFkMzgxYWUuLjViNWE3ZDRiOGExZDZiZDA2ZWNlMDhmZmU3OTIxOGVmNGZkZWVlY2QgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9TdHlsZVJhcmVOb25Jbmhlcml0
ZWREYXRhLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvU3R5bGVSYXJl
Tm9uSW5oZXJpdGVkRGF0YS5jcHAKQEAgLTMwNiw3ICszMDYsNyBAQCB2b2lkIFN0eWxlUmFyZU5v
bkluaGVyaXRlZERhdGE6OnJlcG9ydE1lbW9yeVVzYWdlKE1lbW9yeU9iamVjdEluZm8qIG1lbW9y
eU9iamVjdAogewogICAgIE1lbW9yeUNsYXNzSW5mbyBpbmZvKG1lbW9yeU9iamVjdEluZm8sIHRo
aXMsIFdlYkNvcmVNZW1vcnlUeXBlczo6Q1NTKTsKICNpZiBFTkFCTEUoREFTSEJPQVJEX1NVUFBP
UlQpCi0gICAgaW5mby5hZGRWZWN0b3IobV9kYXNoYm9hcmRSZWdpb25zKTsKKyAgICBpbmZvLmFk
ZE1lbWJlcihtX2Rhc2hib2FyZFJlZ2lvbnMpOwogI2VuZGlmCiAgICAgaW5mby5hZGRNZW1iZXIo
bV9kZXByZWNhdGVkRmxleGlibGVCb3gpOwogICAgIGluZm8uYWRkTWVtYmVyKG1fZmxleGlibGVC
b3gpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0cy9NZW1vcnlJbnN0
cnVtZW50YXRpb25UZXN0LmNwcCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMvTWVtb3J5
SW5zdHJ1bWVudGF0aW9uVGVzdC5jcHAKaW5kZXggNGFjZjQ5NmFkODdkMmQ4M2E5ODdkNzk0NmY1
Mzc2ZWE3NTZhNDJmMC4uMjFjZTk2MzE2OWNkY2IzOTFmZDdhMjlkZjM1ZjU2MGZkYmQ4NDQ2ZiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0cy9NZW1vcnlJbnN0cnVtZW50
YXRpb25UZXN0LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rlc3RzL01lbW9yeUlu
c3RydW1lbnRhdGlvblRlc3QuY3BwCkBAIC0zNyw2ICszNyw3IEBACiAjaW5jbHVkZSA8Z3Rlc3Qv
Z3Rlc3QuaD4KIAogI2luY2x1ZGUgPHd0Zi9IYXNoU2V0Lmg+CisjaW5jbHVkZSA8d3RmL01lbW9y
eUluc3RydW1lbnRhdGlvblZlY3Rvci5oPgogI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+CiAj
aW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L0F0b21pY1N0cmluZy5o
PgpAQCAtMjM1LDYgKzIzNiw3IEBAIGNsYXNzIEluc3RydW1lbnRlZE93bmVyIHsKIHB1YmxpYzoK
ICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBWPgogICAgIEluc3RydW1lbnRlZE93bmVyKGNvbnN0IFYm
IHZhbHVlKSA6IG1fdmFsdWUodmFsdWUpIHsgfQorICAgIEluc3RydW1lbnRlZE93bmVyKCkgeyB9
CiAgICAgdm9pZCByZXBvcnRNZW1vcnlVc2FnZShNZW1vcnlPYmplY3RJbmZvKiBtZW1vcnlPYmpl
Y3RJbmZvKSBjb25zdAogICAgIHsKICAgICAgICAgTWVtb3J5Q2xhc3NJbmZvIGluZm8obWVtb3J5
T2JqZWN0SW5mbywgdGhpcywgV2ViQ29yZU1lbW9yeVR5cGVzOjpET00pOwpAQCAtMzY3LDUgKzM2
OSw3NSBAQCBURVNUKE1lbW9yeUluc3RydW1lbnRhdGlvblRlc3QsIGRldGVjdFJlcG9ydE1lbW9y
eVVzYWdlTWV0aG9kKQogICAgIH0KIH0KIAorVEVTVChNZW1vcnlJbnN0cnVtZW50YXRpb25UZXN0
LCB2ZWN0b3JaZXJvSW5saW5lQ2FwYWNpdHkpCit7CisgICAgVmlzaXRlZE9iamVjdHMgdmlzaXRl
ZE9iamVjdHM7CisgICAgTWVtb3J5SW5zdHJ1bWVudGF0aW9uSW1wbCBpbXBsKHZpc2l0ZWRPYmpl
Y3RzKTsKKyAgICBJbnN0cnVtZW50ZWRPd25lcjxWZWN0b3I8aW50PiA+IHZlY3Rvck93bmVyKDE2
KTsKKyAgICBpbXBsLmFkZFJvb3RPYmplY3QodmVjdG9yT3duZXIpOworICAgIEVYUEVDVF9FUSgx
NiAqIHNpemVvZihpbnQpLCBpbXBsLnJlcG9ydGVkU2l6ZUZvckFsbFR5cGVzKCkpOworICAgIEVY
UEVDVF9FUSgxLCB2aXNpdGVkT2JqZWN0cy5zaXplKCkpOworfQorCitURVNUKE1lbW9yeUluc3Ry
dW1lbnRhdGlvblRlc3QsIHZlY3RvckZpZWxkV2l0aElubGluZUNhcGFjaXR5KQoreworICAgIFZp
c2l0ZWRPYmplY3RzIHZpc2l0ZWRPYmplY3RzOworICAgIE1lbW9yeUluc3RydW1lbnRhdGlvbklt
cGwgaW1wbCh2aXNpdGVkT2JqZWN0cyk7CisgICAgSW5zdHJ1bWVudGVkT3duZXI8VmVjdG9yPGlu
dCwgND4gPiB2ZWN0b3JPd25lcjsKKyAgICBpbXBsLmFkZFJvb3RPYmplY3QodmVjdG9yT3duZXIp
OworICAgIEVYUEVDVF9FUShzdGF0aWNfY2FzdDxzaXplX3Q+KDApLCBpbXBsLnJlcG9ydGVkU2l6
ZUZvckFsbFR5cGVzKCkpOworICAgIEVYUEVDVF9FUSgwLCB2aXNpdGVkT2JqZWN0cy5zaXplKCkp
OworfQorCitURVNUKE1lbW9yeUluc3RydW1lbnRhdGlvblRlc3QsIHZlY3RvckZpZWxkV2l0aElu
bGluZUNhcGFjaXR5UmVzaXplZCkKK3sKKyAgICBWaXNpdGVkT2JqZWN0cyB2aXNpdGVkT2JqZWN0
czsKKyAgICBNZW1vcnlJbnN0cnVtZW50YXRpb25JbXBsIGltcGwodmlzaXRlZE9iamVjdHMpOwor
ICAgIEluc3RydW1lbnRlZE93bmVyPFZlY3RvcjxpbnQsIDQ+ID4gdmVjdG9yT3duZXI7CisgICAg
dmVjdG9yT3duZXIubV92YWx1ZS5yZXNlcnZlQ2FwYWNpdHkoOCk7CisgICAgaW1wbC5hZGRSb290
T2JqZWN0KHZlY3Rvck93bmVyKTsKKyAgICBFWFBFQ1RfRVEoOCAqIHNpemVvZihpbnQpLCBpbXBs
LnJlcG9ydGVkU2l6ZUZvckFsbFR5cGVzKCkpOworICAgIEVYUEVDVF9FUSgxLCB2aXNpdGVkT2Jq
ZWN0cy5zaXplKCkpOworfQorCitURVNUKE1lbW9yeUluc3RydW1lbnRhdGlvblRlc3QsIGhlYXBB
bGxvY2F0ZWRWZWN0b3JXaXRoSW5saW5lQ2FwYWNpdHkpCit7CisgICAgVmlzaXRlZE9iamVjdHMg
dmlzaXRlZE9iamVjdHM7CisgICAgTWVtb3J5SW5zdHJ1bWVudGF0aW9uSW1wbCBpbXBsKHZpc2l0
ZWRPYmplY3RzKTsKKyAgICBJbnN0cnVtZW50ZWRPd25lcjxPd25QdHI8VmVjdG9yPGludCwgND4g
PiA+IHZlY3Rvck93bmVyOworICAgIHZlY3Rvck93bmVyLm1fdmFsdWUgPSBhZG9wdFB0cihuZXcg
VmVjdG9yPGludCwgND4oKSk7CisgICAgaW1wbC5hZGRSb290T2JqZWN0KHZlY3Rvck93bmVyKTsK
KyAgICBFWFBFQ1RfRVEoc2l6ZW9mKFZlY3RvcjxpbnQsIDQ+KSwgaW1wbC5yZXBvcnRlZFNpemVG
b3JBbGxUeXBlcygpKTsKKyAgICBFWFBFQ1RfRVEoMSwgdmlzaXRlZE9iamVjdHMuc2l6ZSgpKTsK
K30KKworVEVTVChNZW1vcnlJbnN0cnVtZW50YXRpb25UZXN0LCBoZWFwQWxsb2NhdGVkVmVjdG9y
V2l0aElubGluZUNhcGFjaXR5UmVzaXplZCkKK3sKKyAgICBWaXNpdGVkT2JqZWN0cyB2aXNpdGVk
T2JqZWN0czsKKyAgICBNZW1vcnlJbnN0cnVtZW50YXRpb25JbXBsIGltcGwodmlzaXRlZE9iamVj
dHMpOworICAgIEluc3RydW1lbnRlZE93bmVyPE93blB0cjxWZWN0b3I8aW50LCA0PiA+ID4gdmVj
dG9yT3duZXI7CisgICAgdmVjdG9yT3duZXIubV92YWx1ZSA9IGFkb3B0UHRyKG5ldyBWZWN0b3I8
aW50LCA0PigpKTsKKyAgICB2ZWN0b3JPd25lci5tX3ZhbHVlLT5yZXNlcnZlQ2FwYWNpdHkoOCk7
CisgICAgaW1wbC5hZGRSb290T2JqZWN0KHZlY3Rvck93bmVyKTsKKyAgICBFWFBFQ1RfRVEoOCAq
IHNpemVvZihpbnQpICsgc2l6ZW9mKFZlY3RvcjxpbnQsIDQ+KSwgaW1wbC5yZXBvcnRlZFNpemVG
b3JBbGxUeXBlcygpKTsKKyAgICBFWFBFQ1RfRVEoMiwgdmlzaXRlZE9iamVjdHMuc2l6ZSgpKTsK
K30KKworVEVTVChNZW1vcnlJbnN0cnVtZW50YXRpb25UZXN0LCB2ZWN0b3JXaXRoSW5zdHJ1bWVu
dGVkVHlwZSkKK3sKKyAgICBWaXNpdGVkT2JqZWN0cyB2aXNpdGVkT2JqZWN0czsKKyAgICBNZW1v
cnlJbnN0cnVtZW50YXRpb25JbXBsIGltcGwodmlzaXRlZE9iamVjdHMpOworCisgICAgdHlwZWRl
ZiBWZWN0b3I8U3RyaW5nPiBTdHJpbmdWZWN0b3I7CisgICAgT3duUHRyPFN0cmluZ1ZlY3Rvcj4g
dmFsdWUgPSBhZG9wdFB0cihuZXcgU3RyaW5nVmVjdG9yKCkpOworICAgIHNpemVfdCBjb3VudCA9
IDEwOworICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgY291bnQ7ICsraSkKKyAgICAgICAgdmFs
dWUtPmFwcGVuZCgic3RyaW5nIik7CisgICAgSW5zdHJ1bWVudGVkT3duZXI8U3RyaW5nVmVjdG9y
KiA+IHJvb3QodmFsdWUuZ2V0KCkpOworICAgIGltcGwuYWRkUm9vdE9iamVjdChyb290KTsKKyAg
ICBFWFBFQ1RfRVEoc2l6ZW9mKFN0cmluZ1ZlY3RvcikgKyBzaXplb2YoU3RyaW5nKSAqIHZhbHVl
LT5jYXBhY2l0eSgpICsgc2l6ZW9mKFN0cmluZ0ltcGwpICogdmFsdWUtPnNpemUoKSwgaW1wbC5y
ZXBvcnRlZFNpemVGb3JBbGxUeXBlcygpKTsKKyAgICBFWFBFQ1RfRVEoY291bnQgKyAyLCAoc2l6
ZV90KXZpc2l0ZWRPYmplY3RzLnNpemUoKSk7Cit9CisKIH0gLy8gbmFtZXNwYWNlCiAK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>165140</attachid>
            <date>2012-09-21 08:54:39 -0700</date>
            <delta_ts>2012-09-24 23:27:27 -0700</delta_ts>
            <desc>with fixes for mac and elf.</desc>
            <filename>bug-96650-20120921195403.patch</filename>
            <type>text/plain</type>
            <size>50681</size>
            <attacher name="Ilya Tikhonovsky">loislo</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTI5MjI4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IDkyODdjOTIzNTgwNzIzNmRkMDRkNmJl
MGRiZWFhNmRlOTMzNDM1ZjUuLjU0ZDEzYTM2MTYyOWMyZWM0YWRlZDVhZjY2N2MxNDAxMzBjMmQy
ZjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMjcgQEAKKzIwMTItMDktMjEgIElseWEgVGlraG9ub3Zza3kgIDxs
b2lzbG9AY2hyb21pdW0ub3JnPgorCisgICAgICAgIFdlYiBJbnNwZWN0b3I6IGV4dHJhY3QgVmVj
dG9yIGluc3RydW1lbnRhdGlvbiBmcm9tIGNvcmUgTk1JIGNvZGUgaW50byBNZW1vcnlJbnN0cnVt
ZW50YXRpb25WZWN0b3IuaCBoZWFkZXIuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD05NjY1MAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgIEFkZGVkIHJlcG9ydE1lbW9yeVVzYWdlIGZyZWUgdGVtcGxhdGUgZnVu
Y3Rpb24gd2l0aCBkZWZhdWx0IGJvZHkgdG8gY29yZSBOTUkgY29kZQorICAgICAgICBhbmQgYWRk
IGN1c3RvbSB2ZXJzaW9uIG9mIHJlcG9ydE1lbW9yeVVzYWdlIGZ1bmN0aW9uIGZvciBWZWN0b3Jz
LgorCisgICAgICAgICogR05VbWFrZWZpbGUubGlzdC5hbToKKyAgICAgICAgKiBXVEYuZ3lwaToK
KyAgICAgICAgKiBXVEYucHJvOgorICAgICAgICAqIFdURi52Y3Byb2ovV1RGLnZjcHJvajoKKyAg
ICAgICAgKiBXVEYueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiB3dGYvTWVt
b3J5SW5zdHJ1bWVudGF0aW9uLmg6CisgICAgICAgIChXVEYpOgorICAgICAgICAoTWVtb3J5SW5z
dHJ1bWVudGF0aW9uKToKKyAgICAgICAgKFdURjo6TWVtb3J5SW5zdHJ1bWVudGF0aW9uOjphZGRP
YmplY3RJbXBsKToKKyAgICAgICAgKiB3dGYvTWVtb3J5SW5zdHJ1bWVudGF0aW9uVmVjdG9yLmg6
IEFkZGVkLgorICAgICAgICAoV1RGKToKKyAgICAgICAgKFdURjo6aW5zdHJ1bWVudFZlY3RvclZh
bHVlcyk6CisgICAgICAgIChXVEY6OnJlcG9ydE1lbW9yeVVzYWdlKToKKwogMjAxMi0wOS0yMSAg
U2ltb24gSGF1c21hbm4gIDxzaW1vbi5oYXVzbWFubkBkaWdpYS5jb20+CiAKICAgICAgICAgW1F0
XSBFcnJvciBvdXQgZWFybHkgaWYgd2UgZG9uJ3QgaGF2ZSBJQ1UgYXZhaWxhYmxlCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cK
aW5kZXggYmU1MjIwNzU5ODViMzc1OTRjYjAyYWE0NTBiZjI2M2M3MTM3YTY0Ni4uMTJjNjMzYzZl
ZDM2N2UzZTY1YjczNDEwNTRjMWRlYjFkZWMzY2UxMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ3
IEBACisyMDEyLTA5LTIxICBJbHlhIFRpa2hvbm92c2t5ICA8bG9pc2xvQGNocm9taXVtLm9yZz4K
KworICAgICAgICBXZWIgSW5zcGVjdG9yOiBleHRyYWN0IFZlY3RvciBpbnN0cnVtZW50YXRpb24g
ZnJvbSBjb3JlIE5NSSBjb2RlIGludG8gTWVtb3J5SW5zdHJ1bWVudGF0aW9uVmVjdG9yLmggaGVh
ZGVyLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTY2
NTAKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBhZGRJ
bnN0cnVtZW50ZWRWZWN0b3IgYW5kIGFkZEluc3RydW1lbnRlZFZlY3RvclB0ciB3ZXJlIHJlcGxh
Y2VkIHdpdGggYWRkTWVtYmVyLgorICAgICAgICBUaGUgc2FtZSB0aGluZyBoYXBwZW5zIHdpdGgg
YWRkVmVjdG9yIGFuZCBhZGRWZWN0b3JQdHIuCisKKyAgICAgICAgKiBjc3MvQ1NTR3JhZGllbnRW
YWx1ZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDU1NHcmFkaWVudFZhbHVlOjpyZXBvcnRCYXNl
Q2xhc3NNZW1vcnlVc2FnZSk6CisgICAgICAgICogY3NzL0NTU0ltYWdlU2V0VmFsdWUuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6Q1NTSW1hZ2VTZXRWYWx1ZTo6cmVwb3J0RGVzY2VuZGFudE1lbW9y
eVVzYWdlKToKKyAgICAgICAgKiBjc3MvQ1NTTWVkaWFSdWxlLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OkNTU01lZGlhUnVsZTo6cmVwb3J0RGVzY2VuZGFudE1lbW9yeVVzYWdlKToKKyAgICAgICAg
KiBjc3MvQ1NTUnVsZUxpc3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U3RhdGljQ1NTUnVsZUxp
c3Q6OnJlcG9ydE1lbW9yeVVzYWdlKToKKyAgICAgICAgKiBjc3MvQ1NTU3R5bGVTaGVldC5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpDU1NTdHlsZVNoZWV0OjpyZXBvcnRNZW1vcnlVc2FnZSk6Cisg
ICAgICAgICogY3NzL0NTU1ZhbHVlTGlzdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDU1NWYWx1
ZUxpc3Q6OnJlcG9ydERlc2NlbmRhbnRNZW1vcnlVc2FnZSk6CisgICAgICAgICogY3NzL01lZGlh
TGlzdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVF1ZXJ5U2V0OjpyZXBvcnRNZW1vcnlV
c2FnZSk6CisgICAgICAgICogY3NzL01lZGlhUXVlcnkuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
TWVkaWFRdWVyeTo6cmVwb3J0TWVtb3J5VXNhZ2UpOgorICAgICAgICAqIGNzcy9TdHlsZVJlc29s
dmVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlN0eWxlUmVzb2x2ZXI6OmNvbGxlY3RNYXRjaGlu
Z1J1bGVzRm9yTGlzdCk6CisgICAgICAgICogY3NzL1N0eWxlUnVsZS5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpTdHlsZVJ1bGVCbG9jazo6cmVwb3J0RGVzY2VuZGFudE1lbW9yeVVzYWdlKToKKyAg
ICAgICAgKiBjc3MvU3R5bGVTaGVldENvbnRlbnRzLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlN0
eWxlU2hlZXRDb250ZW50czo6cmVwb3J0TWVtb3J5VXNhZ2UpOgorICAgICAgICAqIGNzcy9XZWJL
aXRDU1NLZXlmcmFtZXNSdWxlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlN0eWxlUnVsZUtleWZy
YW1lczo6cmVwb3J0RGVzY2VuZGFudE1lbW9yeVVzYWdlKToKKyAgICAgICAgKFdlYkNvcmU6Oldl
YktpdENTU0tleWZyYW1lc1J1bGU6OnJlcG9ydERlc2NlbmRhbnRNZW1vcnlVc2FnZSk6CisgICAg
ICAgICogY3NzL1dlYktpdENTU1JlZ2lvblJ1bGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6V2Vi
S2l0Q1NTUmVnaW9uUnVsZTo6cmVwb3J0RGVzY2VuZGFudE1lbW9yeVVzYWdlKToKKyAgICAgICAg
KiBkb20vRG9jdW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnQ6OnJlcG9ydE1l
bW9yeVVzYWdlKToKKyAgICAgICAgKiBsb2FkZXIvRG9jdW1lbnRMb2FkZXIuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6RG9jdW1lbnRMb2FkZXI6OnJlcG9ydE1lbW9yeVVzYWdlKToKKyAgICAgICAg
KiBwbGF0Zm9ybS9uZXR3b3JrL1Jlc291cmNlUmVxdWVzdEJhc2UuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6UmVzb3VyY2VSZXF1ZXN0QmFzZTo6cmVwb3J0TWVtb3J5VXNhZ2UpOgorCiAyMDEyLTA5
LTIxICBTaGVyaWZmIEJvdCAgPHdlYmtpdC5yZXZpZXcuYm90QGdtYWlsLmNvbT4KIAogICAgICAg
ICBVbnJldmlld2VkLCByb2xsaW5nIG91dCByMTI5MjE5LgpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxv
ZwppbmRleCA1MWQ0ODkzYzQ4MTUwMTA2ZjE0NTk3MDVjYTI2Mzk5NzhlNzZjZmM4Li4wMGRlYTVm
MjUzNWY0NTc5MjYyNzc3ZmJhYTg2MTlkOTFlMzZhMjI5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L2Nocm9taXVtL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5n
ZUxvZwpAQCAtMSwzICsxLDE3IEBACisyMDEyLTA5LTIxICBJbHlhIFRpa2hvbm92c2t5ICA8bG9p
c2xvQGNocm9taXVtLm9yZz4KKworICAgICAgICBXZWIgSW5zcGVjdG9yOiBleHRyYWN0IFZlY3Rv
ciBpbnN0cnVtZW50YXRpb24gZnJvbSBjb3JlIE5NSSBjb2RlIGludG8gTWVtb3J5SW5zdHJ1bWVu
dGF0aW9uVmVjdG9yLmggaGVhZGVyLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9OTY2NTAKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICBUZXN0IGZvciBpbnN0cnVtZW50ZWQgdmVjdG9yLgorCisgICAgICAgICog
dGVzdHMvTWVtb3J5SW5zdHJ1bWVudGF0aW9uVGVzdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJ
bnN0cnVtZW50ZWRPd25lcjo6SW5zdHJ1bWVudGVkT3duZXIpOgorICAgICAgICAoV2ViQ29yZTo6
VEVTVCk6CisgICAgICAgIChXZWJDb3JlKToKKwogMjAxMi0wOS0yMSAgU2FtaSBLeW9zdGlsYSAg
PHNreW9zdGlsQGNocm9taXVtLm9yZz4KIAogICAgICAgICBbY2hyb21pdW1dIEFkZCB0ZXN0IGZv
ciBTY3JvbGxpbmdDb29yZGluYXRvckNocm9taXVtCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0dO
VW1ha2VmaWxlLmxpc3QuYW0gYi9Tb3VyY2UvV1RGL0dOVW1ha2VmaWxlLmxpc3QuYW0KaW5kZXgg
ZThlNDJlZGQzNTUyZWRlNTVhZjE4NDIxMTUxZjBlYmI5MzM5NmI4NS4uMGVkMTBkZGFlMTQ4YTA3
MzNhODM1MjY5NTRiNzgxOWZkYmNiZGZmMiAxMDA2NDQKLS0tIGEvU291cmNlL1dURi9HTlVtYWtl
ZmlsZS5saXN0LmFtCisrKyBiL1NvdXJjZS9XVEYvR05VbWFrZWZpbGUubGlzdC5hbQpAQCAtODAs
NiArODAsNyBAQCB3dGZfc291cmNlcyArPSBcCiAgICAgU291cmNlL1dURi93dGYvTWVkaWFUaW1l
LmggXAogICAgIFNvdXJjZS9XVEYvd3RmL01lZGlhVGltZS5jcHAgXAogICAgIFNvdXJjZS9XVEYv
d3RmL01lbW9yeUluc3RydW1lbnRhdGlvbi5oIFwKKyAgICBTb3VyY2UvV1RGL3d0Zi9NZW1vcnlJ
bnN0cnVtZW50YXRpb25WZWN0b3IuaCBcCiAgICAgU291cmNlL1dURi93dGYvTWVzc2FnZVF1ZXVl
LmggXAogICAgIFNvdXJjZS9XVEYvd3RmL01ldGFBbGxvY2F0b3IuY3BwIFwKICAgICBTb3VyY2Uv
V1RGL3d0Zi9NZXRhQWxsb2NhdG9yLmggXApkaWZmIC0tZ2l0IGEvU291cmNlL1dURi9XVEYuZ3lw
aSBiL1NvdXJjZS9XVEYvV1RGLmd5cGkKaW5kZXggNWRjZDAxZWQ3ZDNhNGI3YTljMzE4MWI1NGEx
YWE0YzVhOWYyMTM4MS4uZmRjMjhkNmJiNTVlN2U1NjVkYWYwOTViNzNjYjUzYTczZTA5NDhmYyAx
MDA2NDQKLS0tIGEvU291cmNlL1dURi9XVEYuZ3lwaQorKysgYi9Tb3VyY2UvV1RGL1dURi5neXBp
CkBAIC01MCw2ICs1MCw3IEBACiAgICAgICAgICAgICAnd3RmL01haW5UaHJlYWQuaCcsCiAgICAg
ICAgICAgICAnd3RmL01hdGhFeHRyYXMuaCcsCiAgICAgICAgICAgICAnd3RmL01lbW9yeUluc3Ry
dW1lbnRhdGlvbi5oJywKKyAgICAgICAgICAgICd3dGYvTWVtb3J5SW5zdHJ1bWVudGF0aW9uVmVj
dG9yLmgnLAogICAgICAgICAgICAgJ3d0Zi9NZXNzYWdlUXVldWUuaCcsCiAgICAgICAgICAgICAn
d3RmL05vbkNvcHlpbmdTb3J0LmgnLAogICAgICAgICAgICAgJ3d0Zi9Ob25jb3B5YWJsZS5oJywK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvV1RGLnBybyBiL1NvdXJjZS9XVEYvV1RGLnBybwppbmRl
eCBiYzBhODc3MGVmMWE2N2JmNzViOWIyNWU1NDYxYmQ0Mzk1YTJkZDM4Li5lOGRhNGMwYzZiMjQ2
NzBjZDBiNTgyNzU2MDMxM2IwMGM5Zjk4OThlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL1dURi5w
cm8KKysrIGIvU291cmNlL1dURi9XVEYucHJvCkBAIC04Nyw2ICs4Nyw3IEBAIEhFQURFUlMgKz0g
XAogICAgIE1ENS5oIFwKICAgICBNZWRpYVRpbWUuaCBcCiAgICAgTWVtb3J5SW5zdHJ1bWVudGF0
aW9uLmggXAorICAgIE1lbW9yeUluc3RydW1lbnRhdGlvblZlY3Rvci5oIFwKICAgICBNZXNzYWdl
UXVldWUuaCBcCiAgICAgTWV0YUFsbG9jYXRvci5oIFwKICAgICBNZXRhQWxsb2NhdG9ySGFuZGxl
LmggXApkaWZmIC0tZ2l0IGEvU291cmNlL1dURi9XVEYudmNwcm9qL1dURi52Y3Byb2ogYi9Tb3Vy
Y2UvV1RGL1dURi52Y3Byb2ovV1RGLnZjcHJvagppbmRleCA0YjJjYzYyMWFlMTAwN2QzY2IxM2E1
YzZkYTJhMjU3MWUxMTZkZGE1Li5mOTEwOGM4OTM1ZTJmNTg0YWVhOGI4NzJhM2FlMzRjMTI0MzRl
ODQzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL1dURi52Y3Byb2ovV1RGLnZjcHJvagorKysgYi9T
b3VyY2UvV1RGL1dURi52Y3Byb2ovV1RGLnZjcHJvagpAQCAtOTA1LDYgKzkwNSwxMCBAQAogCQkJ
PgogCQk8L0ZpbGU+CiAJCTxGaWxlCisJCSAgICAgICAgUmVsYXRpdmVQYXRoPSIuLlx3dGZcTWVt
b3J5SW5zdHJ1bWVudGF0aW9uVmVjdG9yLmgiCisJCQk+CisJCTwvRmlsZT4KKwkJPEZpbGUKIAkJ
CVJlbGF0aXZlUGF0aD0iLi5cd3RmXE1lc3NhZ2VRdWV1ZS5oIgogCQkJPgogCQk8L0ZpbGU+CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV1RGL1dURi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291
cmNlL1dURi9XVEYueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCA1MmFmN2I5Y2VjYzVk
MWE1MmFlMDhkOTdiNDIyYjNlNWFhYmQwMDc2Li4zYmIxOWRkZDczYmEwOGMwMTBmNDcwODY2MmE3
Y2EwNWUyMmE4YzQxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL1dURi54Y29kZXByb2ovcHJvamVj
dC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XVEYvV1RGLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oK
QEAgLTE3LDYgKzE3LDcgQEAKIAkJNDMzMEYzOEYxNTc0NUIwNTAwQUFGQThGIC8qIFVSTFN0cmlu
Zy5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0MzMw
RjM4RTE1NzQ1QjA1MDBBQUZBOEYgLyogVVJMU3RyaW5nLmNwcCAqLzsgfTsKIAkJNEYwMzIxQkMx
NTZBQThEMTAwNkVCQUY2IC8qIEJpdEFycmF5LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSA0RjAzMjFCQjE1NkFBOEQxMDA2RUJBRjYgLyogQml0QXJyYXku
aCAqLzsgfTsKIAkJNEYxRDExNTQxNUZGMTFCRTAwMjZFOTA4IC8qIE1lbW9yeUluc3RydW1lbnRh
dGlvbi5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNEYx
RDExNTMxNUZGMTFCRTAwMjZFOTA4IC8qIE1lbW9yeUluc3RydW1lbnRhdGlvbi5oICovOyB9Owor
CQk0RkNCNzEwQTE2MEExQTA3MDA4NDI1RUMgLyogTWVtb3J5SW5zdHJ1bWVudGF0aW9uVmVjdG9y
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0RkNCNzEw
OTE2MEExQTA3MDA4NDI1RUMgLyogTWVtb3J5SW5zdHJ1bWVudGF0aW9uVmVjdG9yLmggKi87IH07
CiAJCTdFMjlDMzNFMTVGRkQ3OUIwMDUxNkQ2MSAvKiBPYmpjUnVudGltZUV4dHJhcy5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gN0UyOUMzM0QxNUZGRDc5
QjAwNTE2RDYxIC8qIE9iamNSdW50aW1lRXh0cmFzLmggKi87IH07CiAJCTgxMzQwMTM4MTVCMDky
RkQwMDFGRjBCOCAvKiBCYXNlNjQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gODEzNDAxMzYxNUIwOTJGRDAwMUZGMEI4IC8qIEJhc2U2NC5jcHAgKi87
IH07CiAJCTgxMzQwMTM5MTVCMDkyRkQwMDFGRjBCOCAvKiBCYXNlNjQuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDgxMzQwMTM3MTVCMDkyRkQwMDFGRjBC
OCAvKiBCYXNlNjQuaCAqLzsgfTsKQEAgLTI2NSw2ICsyNjYsNyBAQAogCQk0MzMwRjM4RTE1NzQ1
QjA1MDBBQUZBOEYgLyogVVJMU3RyaW5nLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNw
cDsgcGF0aCA9IFVSTFN0cmluZy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTRG
MDMyMUJCMTU2QUE4RDEwMDZFQkFGNiAvKiBCaXRBcnJheS5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBCaXRBcnJheS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0
RjFEMTE1MzE1RkYxMUJFMDAyNkU5MDggLyogTWVtb3J5SW5zdHJ1bWVudGF0aW9uLmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE1lbW9yeUluc3RydW1lbnRhdGlvbi5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OworCQk0RkNCNzEwOTE2MEExQTA3MDA4NDI1RUMgLyogTWVt
b3J5SW5zdHJ1bWVudGF0aW9uVmVjdG9yLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IE1lbW9yeUluc3RydW1lbnRhdGlvblZlY3Rvci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQk1RDI0N0I2MjE0Njg5Qjg2MDBFNzhCNzYgLyogbGliV1RGLmEgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZXhwbGljaXRGaWxlVHlwZSA9IGFyY2hpdmUuYXI7IGluY2x1ZGVJ
bkluZGV4ID0gMDsgcGF0aCA9IGxpYldURi5hOyBzb3VyY2VUcmVlID0gQlVJTFRfUFJPRFVDVFNf
RElSOyB9OwogCQk1RDI0N0I2RTE0Njg5QzQ3MDBFNzhCNzYgLyogQmFzZS54Y2NvbmZpZyAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQueGNjb25m
aWc7IHBhdGggPSBCYXNlLnhjY29uZmlnOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1
RDI0N0I2RjE0Njg5QzQ3MDBFNzhCNzYgLyogQ29tcGlsZXJWZXJzaW9uLnhjY29uZmlnICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dC54Y2NvbmZp
ZzsgcGF0aCA9IENvbXBpbGVyVmVyc2lvbi54Y2NvbmZpZzsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKQEAgLTY1MCw2ICs2NTIsNyBAQAogCQkJCUNENTQ5N0FBMTU4NTdEMDMwMEI1QkMzMCAv
KiBNZWRpYVRpbWUuY3BwICovLAogCQkJCUNENTQ5N0FCMTU4NTdEMDMwMEI1QkMzMCAvKiBNZWRp
YVRpbWUuaCAqLywKIAkJCQk0RjFEMTE1MzE1RkYxMUJFMDAyNkU5MDggLyogTWVtb3J5SW5zdHJ1
bWVudGF0aW9uLmggKi8sCisJCQkJNEZDQjcxMDkxNjBBMUEwNzAwODQyNUVDIC8qIE1lbW9yeUlu
c3RydW1lbnRhdGlvblZlY3Rvci5oICovLAogCQkJCUE4QTQ3MkNDMTUxQTgyNUIwMDQxMjNGRiAv
KiBNZXNzYWdlUXVldWUuaCAqLywKIAkJCQlBOEE0NzJDRDE1MUE4MjVCMDA0MTIzRkYgLyogTWV0
YUFsbG9jYXRvci5jcHAgKi8sCiAJCQkJQThBNDcyQ0UxNTFBODI1QjAwNDEyM0ZGIC8qIE1ldGFB
bGxvY2F0b3IuaCAqLywKQEAgLTEwNzYsNiArMTA3OSw3IEBACiAJCQkJQThBNDc0NDYxNTFBODI1
QjAwNDEyM0ZGIC8qIFdURlN0cmluZy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQThBNDc0ODcxNTFB
ODI1QjAwNDEyM0ZGIC8qIFdURlRocmVhZERhdGEuaCBpbiBIZWFkZXJzICovLAogCQkJCTRGMUQx
MTU0MTVGRjExQkUwMDI2RTkwOCAvKiBNZW1vcnlJbnN0cnVtZW50YXRpb24uaCBpbiBIZWFkZXJz
ICovLAorCQkJCTRGQ0I3MTBBMTYwQTFBMDcwMDg0MjVFQyAvKiBNZW1vcnlJbnN0cnVtZW50YXRp
b25WZWN0b3IuaCBpbiBIZWFkZXJzICovLAogCQkJKTsKIAkJCXJ1bk9ubHlGb3JEZXBsb3ltZW50
UG9zdHByb2Nlc3NpbmcgPSAwOwogCQl9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvTWVt
b3J5SW5zdHJ1bWVudGF0aW9uLmggYi9Tb3VyY2UvV1RGL3d0Zi9NZW1vcnlJbnN0cnVtZW50YXRp
b24uaAppbmRleCAxMzFhZjg0OTdhY2VhZDNhOWI5Y2FjMmRlZTE3NDdjODJlOTBiNjEzLi5iMWYy
ZTI5NGE1OTIzMmJjNDVjYjA4YTgzZDJhOGZlY2NlYjI5NmFkIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V1RGL3d0Zi9NZW1vcnlJbnN0cnVtZW50YXRpb24uaAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9NZW1v
cnlJbnN0cnVtZW50YXRpb24uaApAQCAtODEsNiArODEsOCBAQCBwcml2YXRlOgogICAgIHNpemVf
dCBtX29iamVjdFNpemU7CiB9OwogCit0ZW1wbGF0ZTx0eXBlbmFtZSBUPiB2b2lkIHJlcG9ydE1l
bW9yeVVzYWdlKGNvbnN0IFQqIGNvbnN0JiwgTWVtb3J5T2JqZWN0SW5mbyopOworCiBjbGFzcyBN
ZW1vcnlJbnN0cnVtZW50YXRpb24gewogcHVibGljOgogICAgIHZpcnR1YWwgfk1lbW9yeUluc3Ry
dW1lbnRhdGlvbigpIHsgfQpAQCAtMTA3LDYgKzEwOSw3IEBAIHByaXZhdGU6CiAgICAgdmlydHVh
bCB2b2lkIHByb2Nlc3NEZWZlcnJlZEluc3RydW1lbnRlZFBvaW50ZXJzKCkgPSAwOwogCiAgICAg
ZnJpZW5kIGNsYXNzIE1lbW9yeUNsYXNzSW5mbzsKKyAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBUPiBm
cmllbmQgdm9pZCByZXBvcnRNZW1vcnlVc2FnZShjb25zdCBUKiBjb25zdCYsIE1lbW9yeU9iamVj
dEluZm8qKTsKIAogICAgIHRlbXBsYXRlPHR5cGVuYW1lIFQ+IHN0YXRpYyB2b2lkIHNlbGVjdElu
c3RydW1lbnRhdGlvbk1ldGhvZChjb25zdCBUKiBjb25zdCYgb2JqZWN0LCBNZW1vcnlPYmplY3RJ
bmZvKiBtZW1vcnlPYmplY3RJbmZvKQogICAgIHsKQEAgLTE0OCw3ICsxNTEsNiBAQCBwcml2YXRl
OgogICAgIHRlbXBsYXRlPHR5cGVuYW1lIE1hcFR5cGU+IHZvaWQgYWRkSW5zdHJ1bWVudGVkTWFw
RW50cmllcyhjb25zdCBNYXBUeXBlJiwgTWVtb3J5T2JqZWN0VHlwZSk7CiAgICAgdGVtcGxhdGU8
dHlwZW5hbWUgTWFwVHlwZT4gdm9pZCBhZGRJbnN0cnVtZW50ZWRNYXBWYWx1ZXMoY29uc3QgTWFw
VHlwZSYsIE1lbW9yeU9iamVjdFR5cGUpOwogICAgIHRlbXBsYXRlPHR5cGVuYW1lIExpc3RIYXNo
U2V0VHlwZT4gdm9pZCBhZGRMaXN0SGFzaFNldChjb25zdCBMaXN0SGFzaFNldFR5cGUmLCBNZW1v
cnlPYmplY3RUeXBlLCBib29sIGNvbnRlbnRPbmx5ID0gZmFsc2UpOwotICAgIHRlbXBsYXRlPHR5
cGVuYW1lIFZlY3RvclR5cGU+IHZvaWQgYWRkVmVjdG9yKGNvbnN0IFZlY3RvclR5cGUmLCBNZW1v
cnlPYmplY3RUeXBlLCBib29sIGNvbnRlbnRPbmx5ID0gZmFsc2UpOwogICAgIHZvaWQgYWRkUmF3
QnVmZmVyKGNvbnN0IHZvaWQqIGNvbnN0JiBidWZmZXIsIE1lbW9yeU9iamVjdFR5cGUgb3duZXJP
YmplY3RUeXBlLCBzaXplX3Qgc2l6ZSkKICAgICB7CiAgICAgICAgIGlmICghYnVmZmVyIHx8IHZp
c2l0ZWQoYnVmZmVyKSkKQEAgLTE5NCwxNCArMTk2LDkgQEAgcHVibGljOgogICAgIHRlbXBsYXRl
PHR5cGVuYW1lIEhhc2hTZXRUeXBlPiB2b2lkIGFkZEhhc2hTZXQoY29uc3QgSGFzaFNldFR5cGUm
IHNldCkgeyBtX21lbW9yeUluc3RydW1lbnRhdGlvbi0+YWRkSGFzaFNldChzZXQsIG1fb2JqZWN0
VHlwZSwgdHJ1ZSk7IH0KICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBIYXNoU2V0VHlwZT4gdm9pZCBh
ZGRIYXNoQ291bnRlZFNldChjb25zdCBIYXNoU2V0VHlwZSYgc2V0KSB7IG1fbWVtb3J5SW5zdHJ1
bWVudGF0aW9uLT5hZGRIYXNoU2V0KHNldCwgbV9vYmplY3RUeXBlLCB0cnVlKTsgfQogICAgIHRl
bXBsYXRlPHR5cGVuYW1lIEhhc2hTZXRUeXBlPiB2b2lkIGFkZEluc3RydW1lbnRlZEhhc2hTZXQo
Y29uc3QgSGFzaFNldFR5cGUmIHNldCkgeyBtX21lbW9yeUluc3RydW1lbnRhdGlvbi0+YWRkSW5z
dHJ1bWVudGVkQ29sbGVjdGlvbihzZXQsIG1fb2JqZWN0VHlwZSwgdHJ1ZSk7IH0KLSAgICB0ZW1w
bGF0ZTx0eXBlbmFtZSBWZWN0b3JUeXBlPiB2b2lkIGFkZEluc3RydW1lbnRlZFZlY3Rvcihjb25z
dCBWZWN0b3JUeXBlJiB2ZWN0b3IpIHsgbV9tZW1vcnlJbnN0cnVtZW50YXRpb24tPmFkZEluc3Ry
dW1lbnRlZENvbGxlY3Rpb24odmVjdG9yLCBtX29iamVjdFR5cGUsIHRydWUpOyB9Ci0gICAgdGVt
cGxhdGU8dHlwZW5hbWUgVmVjdG9yVHlwZT4gdm9pZCBhZGRJbnN0cnVtZW50ZWRWZWN0b3JQdHIo
Y29uc3QgT3duUHRyPFZlY3RvclR5cGU+JiB2ZWN0b3IpIHsgbV9tZW1vcnlJbnN0cnVtZW50YXRp
b24tPmFkZEluc3RydW1lbnRlZENvbGxlY3Rpb24oKnZlY3RvciwgbV9vYmplY3RUeXBlLCBmYWxz
ZSk7IH0KLSAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBWZWN0b3JUeXBlPiB2b2lkIGFkZEluc3RydW1l
bnRlZFZlY3RvclB0cihjb25zdCBWZWN0b3JUeXBlKiBjb25zdCYgdmVjdG9yKSB7IG1fbWVtb3J5
SW5zdHJ1bWVudGF0aW9uLT5hZGRJbnN0cnVtZW50ZWRDb2xsZWN0aW9uKCp2ZWN0b3IsIG1fb2Jq
ZWN0VHlwZSwgZmFsc2UpOyB9CiAgICAgdGVtcGxhdGU8dHlwZW5hbWUgTWFwVHlwZT4gdm9pZCBh
ZGRJbnN0cnVtZW50ZWRNYXBFbnRyaWVzKGNvbnN0IE1hcFR5cGUmIG1hcCkgeyBtX21lbW9yeUlu
c3RydW1lbnRhdGlvbi0+YWRkSW5zdHJ1bWVudGVkTWFwRW50cmllcyhtYXAsIG1fb2JqZWN0VHlw
ZSk7IH0KICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBNYXBUeXBlPiB2b2lkIGFkZEluc3RydW1lbnRl
ZE1hcFZhbHVlcyhjb25zdCBNYXBUeXBlJiBtYXApIHsgbV9tZW1vcnlJbnN0cnVtZW50YXRpb24t
PmFkZEluc3RydW1lbnRlZE1hcFZhbHVlcyhtYXAsIG1fb2JqZWN0VHlwZSk7IH0KICAgICB0ZW1w
bGF0ZTx0eXBlbmFtZSBMaXN0SGFzaFNldFR5cGU+IHZvaWQgYWRkTGlzdEhhc2hTZXQoY29uc3Qg
TGlzdEhhc2hTZXRUeXBlJiBzZXQpIHsgbV9tZW1vcnlJbnN0cnVtZW50YXRpb24tPmFkZExpc3RI
YXNoU2V0KHNldCwgbV9vYmplY3RUeXBlLCB0cnVlKTsgfQotICAgIHRlbXBsYXRlPHR5cGVuYW1l
IFZlY3RvclR5cGU+IHZvaWQgYWRkVmVjdG9yKGNvbnN0IFZlY3RvclR5cGUmIHZlY3RvcikgeyBt
X21lbW9yeUluc3RydW1lbnRhdGlvbi0+YWRkVmVjdG9yKHZlY3RvciwgbV9vYmplY3RUeXBlLCB0
cnVlKTsgfQotICAgIHRlbXBsYXRlPHR5cGVuYW1lIFZlY3RvclR5cGU+IHZvaWQgYWRkVmVjdG9y
UHRyKGNvbnN0IFZlY3RvclR5cGUqIGNvbnN0IHZlY3RvcikgeyBtX21lbW9yeUluc3RydW1lbnRh
dGlvbi0+YWRkVmVjdG9yKCp2ZWN0b3IsIG1fb2JqZWN0VHlwZSwgZmFsc2UpOyB9CiAgICAgdm9p
ZCBhZGRSYXdCdWZmZXIoY29uc3Qgdm9pZCogY29uc3QmIGJ1ZmZlciwgc2l6ZV90IHNpemUpIHsg
bV9tZW1vcnlJbnN0cnVtZW50YXRpb24tPmFkZFJhd0J1ZmZlcihidWZmZXIsIG1fb2JqZWN0VHlw
ZSwgc2l6ZSk7IH0KIAogICAgIHZvaWQgYWRkV2Vha1BvaW50ZXIodm9pZCopIHsgfQpAQCAtMjEz
LDExICsyMTAsMTcgQEAgcHJpdmF0ZToKIH07CiAKIHRlbXBsYXRlPHR5cGVuYW1lIFQ+Cit2b2lk
IHJlcG9ydE1lbW9yeVVzYWdlKGNvbnN0IFQqIGNvbnN0JiBvYmplY3QsIE1lbW9yeU9iamVjdElu
Zm8qIG1lbW9yeU9iamVjdEluZm8pCit7CisgICAgTWVtb3J5SW5zdHJ1bWVudGF0aW9uOjpzZWxl
Y3RJbnN0cnVtZW50YXRpb25NZXRob2Q8VD4ob2JqZWN0LCBtZW1vcnlPYmplY3RJbmZvKTsKK30K
KwordGVtcGxhdGU8dHlwZW5hbWUgVD4KIHZvaWQgTWVtb3J5SW5zdHJ1bWVudGF0aW9uOjphZGRP
YmplY3RJbXBsKGNvbnN0IFQqIGNvbnN0JiBvYmplY3QsIE1lbW9yeU9iamVjdFR5cGUgb3duZXJP
YmplY3RUeXBlLCBNZW1vcnlPd25pbmdUeXBlIG93bmluZ1R5cGUpCiB7CiAgICAgaWYgKG93bmlu
Z1R5cGUgPT0gYnlSZWZlcmVuY2UpIHsKICAgICAgICAgTWVtb3J5T2JqZWN0SW5mbyBtZW1vcnlP
YmplY3RJbmZvKHRoaXMsIG93bmVyT2JqZWN0VHlwZSk7Ci0gICAgICAgIHNlbGVjdEluc3RydW1l
bnRhdGlvbk1ldGhvZDxUPihvYmplY3QsICZtZW1vcnlPYmplY3RJbmZvKTsKKyAgICAgICAgcmVw
b3J0TWVtb3J5VXNhZ2Uob2JqZWN0LCAmbWVtb3J5T2JqZWN0SW5mbyk7CiAgICAgfSBlbHNlIHsK
ICAgICAgICAgaWYgKCFvYmplY3QgfHwgdmlzaXRlZChvYmplY3QpKQogICAgICAgICAgICAgcmV0
dXJuOwpAQCAtMjk1LDE0ICsyOTgsNiBAQCB2b2lkIE1lbW9yeUluc3RydW1lbnRhdGlvbjo6YWRk
TGlzdEhhc2hTZXQoY29uc3QgTGlzdEhhc2hTZXRUeXBlJiBoYXNoU2V0LCBNZW1vcgogICAgIGNv
dW50T2JqZWN0U2l6ZShvd25lck9iamVjdFR5cGUsIHNpemUpOwogfQogCi10ZW1wbGF0ZTx0eXBl
bmFtZSBWZWN0b3JUeXBlPgotdm9pZCBNZW1vcnlJbnN0cnVtZW50YXRpb246OmFkZFZlY3Rvcihj
b25zdCBWZWN0b3JUeXBlJiB2ZWN0b3IsIE1lbW9yeU9iamVjdFR5cGUgb3duZXJPYmplY3RUeXBl
LCBib29sIGNvbnRlbnRPbmx5KQotewotICAgIGlmICghdmVjdG9yLmRhdGEoKSB8fCB2aXNpdGVk
KHZlY3Rvci5kYXRhKCkpKQotICAgICAgICByZXR1cm47Ci0gICAgY291bnRPYmplY3RTaXplKG93
bmVyT2JqZWN0VHlwZSwgY2FsY3VsYXRlQ29udGFpbmVyU2l6ZSh2ZWN0b3IsIGNvbnRlbnRPbmx5
KSk7Ci19Ci0KIHRlbXBsYXRlPHR5cGVuYW1lIENvbnRhaW5lcj4KIHNpemVfdCBNZW1vcnlJbnN0
cnVtZW50YXRpb246OmNhbGN1bGF0ZUNvbnRhaW5lclNpemUoY29uc3QgQ29udGFpbmVyJiBjb250
YWluZXIsIGJvb2wgY29udGVudE9ubHkpCiB7CkBAIC0zMTMsMTAgKzMwOCwxNCBAQCB0ZW1wbGF0
ZTx0eXBlbmFtZSBUPgogdm9pZCBNZW1vcnlJbnN0cnVtZW50YXRpb246Okluc3RydW1lbnRlZFBv
aW50ZXI8VD46OnByb2Nlc3MoTWVtb3J5SW5zdHJ1bWVudGF0aW9uKiBtZW1vcnlJbnN0cnVtZW50
YXRpb24pCiB7CiAgICAgTWVtb3J5T2JqZWN0SW5mbyBtZW1vcnlPYmplY3RJbmZvKG1lbW9yeUlu
c3RydW1lbnRhdGlvbiwgbV9vd25lck9iamVjdFR5cGUpOwotICAgIHNlbGVjdEluc3RydW1lbnRh
dGlvbk1ldGhvZDxUPihtX3BvaW50ZXIsICZtZW1vcnlPYmplY3RJbmZvKTsKKyAgICByZXBvcnRN
ZW1vcnlVc2FnZShtX3BvaW50ZXIsICZtZW1vcnlPYmplY3RJbmZvKTsKICAgICBtZW1vcnlJbnN0
cnVtZW50YXRpb24tPmNvdW50T2JqZWN0U2l6ZShtZW1vcnlPYmplY3RJbmZvLm9iamVjdFR5cGUo
KSwgbWVtb3J5T2JqZWN0SW5mby5vYmplY3RTaXplKCkpOwogfQogCisvLyBMaW5rIHRpbWUgZ3Vh
cmQgZm9yIHZlY3RvciBtZW1vcnkgaW5zdHJ1bWVudGF0aW9uLgordGVtcGxhdGU8dHlwZW5hbWUg
VCwgc2l6ZV90IGlubGluZUNhcGFjaXR5PiBjbGFzcyBWZWN0b3I7Cit0ZW1wbGF0ZTx0eXBlbmFt
ZSBULCBzaXplX3QgaW5saW5lQ2FwYWNpdHk+IHZvaWQgcmVwb3J0TWVtb3J5VXNhZ2UoY29uc3Qg
VmVjdG9yPFQsIGlubGluZUNhcGFjaXR5PiogY29uc3QmLCBNZW1vcnlPYmplY3RJbmZvKik7CisK
IH0gLy8gbmFtZXNwYWNlIFdURgogCiAjZW5kaWYgLy8gIWRlZmluZWQoTWVtb3J5SW5zdHJ1bWVu
dGF0aW9uX2gpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9NZW1vcnlJbnN0cnVtZW50YXRp
b25WZWN0b3IuaCBiL1NvdXJjZS9XVEYvd3RmL01lbW9yeUluc3RydW1lbnRhdGlvblZlY3Rvci5o
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLmZlYTVjYjc0NjI0ZTNhZWFkNzQ3MmQ5YmExZTVlZTMyNzMwNWVmNDgKLS0t
IC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9NZW1vcnlJbnN0cnVtZW50YXRpb25WZWN0
b3IuaApAQCAtMCwwICsxLDYxIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEyIEdvb2dsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMg
YXJlCisgKiBtZXQ6CisgKgorICogICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2Rl
IG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqICAgICAqIFJlZGlz
dHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKKyAqIGNv
cHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIKKyAqIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlh
bHMgcHJvdmlkZWQgd2l0aCB0aGUKKyAqIGRpc3RyaWJ1dGlvbi4KKyAqICAgICAqIE5laXRoZXIg
dGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKKyAqIGNvbnRyaWJ1
dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBm
cm9tCisgKiB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJt
aXNzaW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdI
VCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKKyAqICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9S
IElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBU
SEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IK
KyAqIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFM
TCBUSEUgQ09QWVJJR0hUCisgKiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBB
TlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKKyAqIFNQRUNJQUwsIEVYRU1QTEFSWSwg
T1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQg
VE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0Yg
VVNFLAorICogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dF
VkVSIENBVVNFRCBBTkQgT04gQU5ZCisgKiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElO
IENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJ
R0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAq
IE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBNZW1vcnlJbnN0cnVtZW50YXRpb25WZWN0b3Jf
aAorI2RlZmluZSBNZW1vcnlJbnN0cnVtZW50YXRpb25WZWN0b3JfaAorCisjaW5jbHVkZSA8d3Rm
L01lbW9yeUluc3RydW1lbnRhdGlvbi5oPgorI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KKworbmFt
ZXNwYWNlIFdURiB7CisKK3RlbXBsYXRlPHR5cGVuYW1lIFQsIHNpemVfdCBpbmxpbmVDYXBhY2l0
eT4KK3ZvaWQgaW5zdHJ1bWVudFZlY3RvclZhbHVlcyhNZW1vcnlDbGFzc0luZm8mIGluZm8sIGNv
bnN0IFZlY3RvcjxULCBpbmxpbmVDYXBhY2l0eT4qIGNvbnN0JiB2ZWN0b3IpCit7CisgICAgZm9y
IChzaXplX3QgaSA9IDA7IGkgPCB2ZWN0b3ItPnNpemUoKTsgKytpKQorICAgICAgICBpbmZvLmFk
ZE1lbWJlcih2ZWN0b3ItPmF0KGkpKTsKK30KKwordGVtcGxhdGU8c2l6ZV90IGlubGluZUNhcGFj
aXR5PiB2b2lkIGluc3RydW1lbnRWZWN0b3JWYWx1ZXMoTWVtb3J5Q2xhc3NJbmZvJiwgY29uc3Qg
VmVjdG9yPGludCwgaW5saW5lQ2FwYWNpdHk+KiBjb25zdCYpIHsgfQordGVtcGxhdGU8c2l6ZV90
IGlubGluZUNhcGFjaXR5PiB2b2lkIGluc3RydW1lbnRWZWN0b3JWYWx1ZXMoTWVtb3J5Q2xhc3NJ
bmZvJiwgY29uc3QgVmVjdG9yPGNoYXIsIGlubGluZUNhcGFjaXR5PiogY29uc3QmKSB7IH0KK3Rl
bXBsYXRlPHNpemVfdCBpbmxpbmVDYXBhY2l0eT4gdm9pZCBpbnN0cnVtZW50VmVjdG9yVmFsdWVz
KE1lbW9yeUNsYXNzSW5mbyYsIGNvbnN0IFZlY3RvcjxjaGFyKiwgaW5saW5lQ2FwYWNpdHk+KiBj
b25zdCYpIHsgfQorCit0ZW1wbGF0ZTx0eXBlbmFtZSBULCBzaXplX3QgaW5saW5lQ2FwYWNpdHk+
Cit2b2lkIHJlcG9ydE1lbW9yeVVzYWdlKGNvbnN0IFZlY3RvcjxULCBpbmxpbmVDYXBhY2l0eT4q
IGNvbnN0JiB2ZWN0b3IsIE1lbW9yeU9iamVjdEluZm8qIG1lbW9yeU9iamVjdEluZm8pCit7Cisg
ICAgTWVtb3J5Q2xhc3NJbmZvIGluZm8obWVtb3J5T2JqZWN0SW5mbywgdmVjdG9yKTsKKyAgICBp
ZiAoaW5saW5lQ2FwYWNpdHkgPCB2ZWN0b3ItPmNhcGFjaXR5KCkpCisgICAgICAgIGluZm8uYWRk
UmF3QnVmZmVyKHZlY3Rvci0+ZGF0YSgpLCB2ZWN0b3ItPmNhcGFjaXR5KCkgKiBzaXplb2YoVCkp
OworICAgIGluc3RydW1lbnRWZWN0b3JWYWx1ZXMoaW5mbywgdmVjdG9yKTsKK30KKworfQorCisj
ZW5kaWYgLy8gIWRlZmluZWQoTWVtb3J5SW5zdHJ1bWVudGF0aW9uVmVjdG9yX2gpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9WOFBlcklzb2xhdGVEYXRhLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1Y4UGVySXNvbGF0ZURhdGEuY3BwCmluZGV4IGUxYmMz
MWU1YzQ2NDU4OTFlNmU2NjZmZGIzNGE2NGM3YTIzMWRjNjguLjRlMWUwYTFmNWM5OWE3N2Y0MDFh
NWM5NzJjNGViZTNkN2IzMjcxYTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L3Y4L1Y4UGVySXNvbGF0ZURhdGEuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4
L1Y4UGVySXNvbGF0ZURhdGEuY3BwCkBAIC0yOCw2ICsyOCw3IEBACiAKICNpbmNsdWRlICJTY3Jp
cHRHQ0V2ZW50LmgiCiAjaW5jbHVkZSAiVjhCaW5kaW5nLmgiCisjaW5jbHVkZSA8d3RmL01lbW9y
eUluc3RydW1lbnRhdGlvblZlY3Rvci5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKQEAgLTg3
LDcgKzg4LDcgQEAgdm9pZCBWOFBlcklzb2xhdGVEYXRhOjpyZXBvcnRNZW1vcnlVc2FnZShNZW1v
cnlPYmplY3RJbmZvKiBtZW1vcnlPYmplY3RJbmZvKSBjb24KICAgICBpbmZvLmFkZEhhc2hNYXAo
bV9yYXdUZW1wbGF0ZXMpOwogICAgIGluZm8uYWRkSGFzaE1hcChtX3RlbXBsYXRlcyk7CiAgICAg
aW5mby5hZGRNZW1iZXIobV9zdHJpbmdDYWNoZSk7Ci0gICAgaW5mby5hZGRWZWN0b3IobV9kb21E
YXRhTGlzdCk7CisgICAgaW5mby5hZGRNZW1iZXIobV9kb21EYXRhTGlzdCk7CiAKICAgICBmb3Ig
KHNpemVfdCBpID0gMDsgaSA8IG1fZG9tRGF0YUxpc3Quc2l6ZSgpOyBpKyspCiAgICAgICAgIGlu
Zm8uYWRkTWVtYmVyKG1fZG9tRGF0YUxpc3RbaV0pOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvY3NzL0NTU0dyYWRpZW50VmFsdWUuY3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU0dyYWRp
ZW50VmFsdWUuY3BwCmluZGV4IGY5NzE1ZjI3ZjU4NTFjOTJhMTg1M2RiNDZiYTcwYmRhZGUxYWVh
MjcuLmQwMGMxMzA4ZTUxMGIzMGRiZGI3MzM5ZGFmYWE4NzdiYTUyNGM3ZWQgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NHcmFkaWVudFZhbHVlLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9jc3MvQ1NTR3JhZGllbnRWYWx1ZS5jcHAKQEAgLTM3LDYgKzM3LDcgQEAKICNpbmNsdWRl
ICJSZW5kZXJPYmplY3QuaCIKICNpbmNsdWRlICJTdHlsZVJlc29sdmVyLmgiCiAjaW5jbHVkZSAi
V2ViQ29yZU1lbW9yeUluc3RydW1lbnRhdGlvbi5oIgorI2luY2x1ZGUgPHd0Zi9NZW1vcnlJbnN0
cnVtZW50YXRpb25WZWN0b3IuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9TdHJpbmdCdWlsZGVyLmg+
CiAjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CiAKQEAgLTQ2OSw3ICs0NzAsNyBAQCB2
b2lkIENTU0dyYWRpZW50VmFsdWU6OnJlcG9ydEJhc2VDbGFzc01lbW9yeVVzYWdlKE1lbW9yeU9i
amVjdEluZm8qIG1lbW9yeU9iamVjdAogICAgIGluZm8uYWRkTWVtYmVyKG1fZmlyc3RZKTsKICAg
ICBpbmZvLmFkZE1lbWJlcihtX3NlY29uZFgpOwogICAgIGluZm8uYWRkTWVtYmVyKG1fc2Vjb25k
WSk7Ci0gICAgaW5mby5hZGRJbnN0cnVtZW50ZWRWZWN0b3IobV9zdG9wcyk7CisgICAgaW5mby5h
ZGRNZW1iZXIobV9zdG9wcyk7CiB9CiAKIFN0cmluZyBDU1NMaW5lYXJHcmFkaWVudFZhbHVlOjpj
dXN0b21Dc3NUZXh0KCkgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NJ
bWFnZVNldFZhbHVlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NJbWFnZVNldFZhbHVlLmNw
cAppbmRleCA1ZTZiZWU1YTYzY2EzMDM2NTcyNGRhZGE5NjgwZDIwNmZkMWNiMGE4Li42ZTAyYTIw
Zjk1YWMzZjE0ZjQ2MWExYzUxMDBiNGFkNjJiZDllZjBhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9jc3MvQ1NTSW1hZ2VTZXRWYWx1ZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0NT
U0ltYWdlU2V0VmFsdWUuY3BwCkBAIC0zNyw2ICszNyw3IEBACiAjaW5jbHVkZSAiU3R5bGVDYWNo
ZWRJbWFnZVNldC5oIgogI2luY2x1ZGUgIlN0eWxlUGVuZGluZ0ltYWdlLmgiCiAjaW5jbHVkZSAi
V2ViQ29yZU1lbW9yeUluc3RydW1lbnRhdGlvbi5oIgorI2luY2x1ZGUgPHd0Zi9NZW1vcnlJbnN0
cnVtZW50YXRpb25WZWN0b3IuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCkBAIC0xNjgsNyAr
MTY5LDcgQEAgdm9pZCBDU1NJbWFnZVNldFZhbHVlOjpyZXBvcnREZXNjZW5kYW50TWVtb3J5VXNh
Z2UoTWVtb3J5T2JqZWN0SW5mbyogbWVtb3J5T2JqZWMKIHsKICAgICBNZW1vcnlDbGFzc0luZm8g
aW5mbyhtZW1vcnlPYmplY3RJbmZvLCB0aGlzLCBXZWJDb3JlTWVtb3J5VHlwZXM6OkNTUyk7CiAg
ICAgQ1NTVmFsdWVMaXN0OjpyZXBvcnREZXNjZW5kYW50TWVtb3J5VXNhZ2UobWVtb3J5T2JqZWN0
SW5mbyk7Ci0gICAgaW5mby5hZGRJbnN0cnVtZW50ZWRWZWN0b3IobV9pbWFnZXNJblNldCk7Cisg
ICAgaW5mby5hZGRNZW1iZXIobV9pbWFnZXNJblNldCk7CiB9CiAKIHZvaWQgQ1NTSW1hZ2VTZXRW
YWx1ZTo6SW1hZ2VXaXRoU2NhbGU6OnJlcG9ydE1lbW9yeVVzYWdlKE1lbW9yeU9iamVjdEluZm8q
IG1lbW9yeU9iamVjdEluZm8pIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3Mv
Q1NTTWVkaWFSdWxlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NNZWRpYVJ1bGUuY3BwCmlu
ZGV4IGYwZTljNzljM2YxMmVlMzc2NDdlZTA3NTkwYmJmOTcwOTcwZWJhYmUuLjhjMmM5NzNjMjEw
NjM2YTYxZWQ2MmU3OTRhYzcwMWRlMzk1YWVjNjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2Nzcy9DU1NNZWRpYVJ1bGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NNZWRpYVJ1
bGUuY3BwCkBAIC0yOSw2ICsyOSw3IEBACiAjaW5jbHVkZSAiRXhjZXB0aW9uQ29kZS5oIgogI2lu
Y2x1ZGUgIlN0eWxlUnVsZS5oIgogI2luY2x1ZGUgIldlYkNvcmVNZW1vcnlJbnN0cnVtZW50YXRp
b24uaCIKKyNpbmNsdWRlIDx3dGYvTWVtb3J5SW5zdHJ1bWVudGF0aW9uVmVjdG9yLmg+CiAjaW5j
bHVkZSA8d3RmL3RleHQvU3RyaW5nQnVpbGRlci5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CkBA
IC0xODAsNyArMTgxLDcgQEAgdm9pZCBDU1NNZWRpYVJ1bGU6OnJlcG9ydERlc2NlbmRhbnRNZW1v
cnlVc2FnZShNZW1vcnlPYmplY3RJbmZvKiBtZW1vcnlPYmplY3RJbmYKICAgICBNZW1vcnlDbGFz
c0luZm8gaW5mbyhtZW1vcnlPYmplY3RJbmZvLCB0aGlzLCBXZWJDb3JlTWVtb3J5VHlwZXM6OkNT
Uyk7CiAgICAgQ1NTUnVsZTo6cmVwb3J0QmFzZUNsYXNzTWVtb3J5VXNhZ2UobWVtb3J5T2JqZWN0
SW5mbyk7CiAgICAgaW5mby5hZGRNZW1iZXIobV9tZWRpYUNTU09NV3JhcHBlcik7Ci0gICAgaW5m
by5hZGRJbnN0cnVtZW50ZWRWZWN0b3IobV9jaGlsZFJ1bGVDU1NPTVdyYXBwZXJzKTsKKyAgICBp
bmZvLmFkZE1lbWJlcihtX2NoaWxkUnVsZUNTU09NV3JhcHBlcnMpOwogICAgIGluZm8uYWRkTWVt
YmVyKG1fcnVsZUxpc3RDU1NPTVdyYXBwZXIpOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9jc3MvQ1NTUnVsZUxpc3QuY3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1J1bGVMaXN0
LmNwcAppbmRleCA0NzJiM2RkNjBkMDA5NGY3NTA1Y2FiYTE2MzlhNjhiY2JmYjQ4Y2RlLi5kYWRj
OTNiMTU0N2I0MTQ5ZGVjMGQ5NmVhNGUxNTY1M2IwNzY3MWVjIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9jc3MvQ1NTUnVsZUxpc3QuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NS
dWxlTGlzdC5jcHAKQEAgLTI0LDYgKzI0LDcgQEAKIAogI2luY2x1ZGUgIkNTU1J1bGUuaCIKICNp
bmNsdWRlICJDU1NTdHlsZVNoZWV0LmgiCisjaW5jbHVkZSA8d3RmL01lbW9yeUluc3RydW1lbnRh
dGlvblZlY3Rvci5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKQEAgLTU0LDcgKzU1LDcgQEAg
dm9pZCBTdGF0aWNDU1NSdWxlTGlzdDo6ZGVyZWYoKQogdm9pZCBTdGF0aWNDU1NSdWxlTGlzdDo6
cmVwb3J0TWVtb3J5VXNhZ2UoTWVtb3J5T2JqZWN0SW5mbyogbWVtb3J5T2JqZWN0SW5mbykgY29u
c3QKIHsKICAgICBNZW1vcnlDbGFzc0luZm8gaW5mbyhtZW1vcnlPYmplY3RJbmZvLCB0aGlzLCBX
ZWJDb3JlTWVtb3J5VHlwZXM6OkNTUyk7Ci0gICAgaW5mby5hZGRJbnN0cnVtZW50ZWRWZWN0b3Io
bV9ydWxlcyk7CisgICAgaW5mby5hZGRNZW1iZXIobV9ydWxlcyk7CiB9CiAKIH0gLy8gbmFtZXNw
YWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NTdHlsZVNoZWV0
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NTdHlsZVNoZWV0LmNwcAppbmRleCAwZTEwMjAy
YzdmZWJiZjJiZTZkODlhZmNjZDU3ZGIyZDAzYTYyY2UyLi5kY2ZjMjIwMDZmZjI2NTNkMTEwYzI5
YzMzNWFlYjZkMjcxNzE0NWVkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTU3R5
bGVTaGVldC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1N0eWxlU2hlZXQuY3BwCkBA
IC0zOCw2ICszOCw3IEBACiAjaW5jbHVkZSAiU3R5bGVSdWxlLmgiCiAjaW5jbHVkZSAiU3R5bGVT
aGVldENvbnRlbnRzLmgiCiAjaW5jbHVkZSAiV2ViQ29yZU1lbW9yeUluc3RydW1lbnRhdGlvbi5o
IgorI2luY2x1ZGUgPHd0Zi9NZW1vcnlJbnN0cnVtZW50YXRpb25WZWN0b3IuaD4KICNpbmNsdWRl
IDx3dGYvdGV4dC9TdHJpbmdCdWlsZGVyLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKQEAgLTE4
Nyw3ICsxODgsNyBAQCB2b2lkIENTU1N0eWxlU2hlZXQ6OnJlcG9ydE1lbW9yeVVzYWdlKE1lbW9y
eU9iamVjdEluZm8qIG1lbW9yeU9iamVjdEluZm8pIGNvbnN0CiAgICAgaW5mby5hZGRNZW1iZXIo
bV9vd25lck5vZGUpOwogICAgIGluZm8uYWRkTWVtYmVyKG1fb3duZXJSdWxlKTsKICAgICBpbmZv
LmFkZE1lbWJlcihtX21lZGlhQ1NTT01XcmFwcGVyKTsKLSAgICBpbmZvLmFkZEluc3RydW1lbnRl
ZFZlY3RvcihtX2NoaWxkUnVsZUNTU09NV3JhcHBlcnMpOworICAgIGluZm8uYWRkTWVtYmVyKG1f
Y2hpbGRSdWxlQ1NTT01XcmFwcGVycyk7CiB9CiAKIHZvaWQgQ1NTU3R5bGVTaGVldDo6c2V0RGlz
YWJsZWQoYm9vbCBkaXNhYmxlZCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NW
YWx1ZUxpc3QuY3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1ZhbHVlTGlzdC5jcHAKaW5kZXgg
MjFlNGZhNzAzNWUwNjA3MDIwNjVmMzlmOWFhYzU4ZDBiNmZhNjZjMy4uOWVjMmQ1MDg1ZmI5ZDZk
MzhkZDRjZWIyMTgzYjkxNDhiYjk0MmU5NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3Nz
L0NTU1ZhbHVlTGlzdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1ZhbHVlTGlzdC5j
cHAKQEAgLTIzLDYgKzIzLDcgQEAKIAogI2luY2x1ZGUgIkNTU1BhcnNlclZhbHVlcy5oIgogI2lu
Y2x1ZGUgIldlYkNvcmVNZW1vcnlJbnN0cnVtZW50YXRpb24uaCIKKyNpbmNsdWRlIDx3dGYvTWVt
b3J5SW5zdHJ1bWVudGF0aW9uVmVjdG9yLmg+CiAjaW5jbHVkZSA8d3RmL1Bhc3NPd25QdHIuaD4K
ICNpbmNsdWRlIDx3dGYvdGV4dC9TdHJpbmdCdWlsZGVyLmg+CiAKQEAgLTE4OSw3ICsxOTAsNyBA
QCBQYXNzUmVmUHRyPENTU1ZhbHVlTGlzdD4gQ1NTVmFsdWVMaXN0OjpjbG9uZUZvckNTU09NKCkg
Y29uc3QKIHZvaWQgQ1NTVmFsdWVMaXN0OjpyZXBvcnREZXNjZW5kYW50TWVtb3J5VXNhZ2UoTWVt
b3J5T2JqZWN0SW5mbyogbWVtb3J5T2JqZWN0SW5mbykgY29uc3QKIHsKICAgICBNZW1vcnlDbGFz
c0luZm8gaW5mbyhtZW1vcnlPYmplY3RJbmZvLCB0aGlzLCBXZWJDb3JlTWVtb3J5VHlwZXM6OkNT
Uyk7Ci0gICAgaW5mby5hZGRJbnN0cnVtZW50ZWRWZWN0b3IobV92YWx1ZXMpOworICAgIGluZm8u
YWRkTWVtYmVyKG1fdmFsdWVzKTsKIH0KIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL01lZGlhTGlzdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9j
c3MvTWVkaWFMaXN0LmNwcAppbmRleCA2MjkwM2Q2YjE2ZTQ0MDI5YzEyODczYzk3YTk3YTNmMTA4
ZjU1ZDdkLi5iZGJjNTcxNzQ4MzRiMjBiODBjZDMxZmQyZWJlOWUyNWFjMzRjNjA3IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvTWVkaWFMaXN0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9jc3MvTWVkaWFMaXN0LmNwcApAQCAtMjcsNiArMjcsNyBAQAogI2luY2x1ZGUgIk1lZGlhUXVl
cnkuaCIKICNpbmNsdWRlICJNZWRpYVF1ZXJ5RXhwLmgiCiAjaW5jbHVkZSAiV2ViQ29yZU1lbW9y
eUluc3RydW1lbnRhdGlvbi5oIgorI2luY2x1ZGUgPHd0Zi9NZW1vcnlJbnN0cnVtZW50YXRpb25W
ZWN0b3IuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9TdHJpbmdCdWlsZGVyLmg+CiAKIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKQEAgLTIxNSw3ICsyMTYsNyBAQCBTdHJpbmcgTWVkaWFRdWVyeVNldDo6bWVk
aWFUZXh0KCkgY29uc3QKIHZvaWQgTWVkaWFRdWVyeVNldDo6cmVwb3J0TWVtb3J5VXNhZ2UoTWVt
b3J5T2JqZWN0SW5mbyogbWVtb3J5T2JqZWN0SW5mbykgY29uc3QKIHsKICAgICBNZW1vcnlDbGFz
c0luZm8gaW5mbyhtZW1vcnlPYmplY3RJbmZvLCB0aGlzLCBXZWJDb3JlTWVtb3J5VHlwZXM6OkNT
Uyk7Ci0gICAgaW5mby5hZGRJbnN0cnVtZW50ZWRWZWN0b3IobV9xdWVyaWVzKTsKKyAgICBpbmZv
LmFkZE1lbWJlcihtX3F1ZXJpZXMpOwogfQogICAgIAogTWVkaWFMaXN0OjpNZWRpYUxpc3QoTWVk
aWFRdWVyeVNldCogbWVkaWFRdWVyaWVzLCBDU1NTdHlsZVNoZWV0KiBwYXJlbnRTaGVldCkKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9NZWRpYVF1ZXJ5LmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2Nzcy9NZWRpYVF1ZXJ5LmNwcAppbmRleCBhM2YyNWQ3MTJkNWIxMDM0MDI3MWJjMjAwMjVi
OTY2NzMxNDYyZDY0Li5mYzQ1NTFmZmIxODM3OTllMzQwMjhhMjViMmJmZTczODQzNTMyYjJiIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvTWVkaWFRdWVyeS5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvY3NzL01lZGlhUXVlcnkuY3BwCkBAIC0zMSw2ICszMSw3IEBACiAKICNpbmNsdWRl
ICJNZWRpYVF1ZXJ5RXhwLmgiCiAjaW5jbHVkZSAiV2ViQ29yZU1lbW9yeUluc3RydW1lbnRhdGlv
bi5oIgorI2luY2x1ZGUgPHd0Zi9NZW1vcnlJbnN0cnVtZW50YXRpb25WZWN0b3IuaD4KICNpbmNs
dWRlIDx3dGYvTm9uQ29weWluZ1NvcnQuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9TdHJpbmdCdWls
ZGVyLmg+CiAKQEAgLTEzOCw3ICsxMzksNyBAQCB2b2lkIE1lZGlhUXVlcnk6OnJlcG9ydE1lbW9y
eVVzYWdlKE1lbW9yeU9iamVjdEluZm8qIG1lbW9yeU9iamVjdEluZm8pIGNvbnN0CiB7CiAgICAg
TWVtb3J5Q2xhc3NJbmZvIGluZm8obWVtb3J5T2JqZWN0SW5mbywgdGhpcywgV2ViQ29yZU1lbW9y
eVR5cGVzOjpDU1MpOwogICAgIGluZm8uYWRkTWVtYmVyKG1fbWVkaWFUeXBlKTsKLSAgICBpbmZv
LmFkZEluc3RydW1lbnRlZFZlY3RvclB0cihtX2V4cHJlc3Npb25zKTsKKyAgICBpbmZvLmFkZE1l
bWJlcihtX2V4cHJlc3Npb25zKTsKICAgICBpbmZvLmFkZE1lbWJlcihtX3NlcmlhbGl6YXRpb25D
YWNoZSk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9TdHlsZVByb3BlcnR5
U2V0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9TdHlsZVByb3BlcnR5U2V0LmNwcAppbmRleCA2
ZTNjMGZkZTk2ZDI4YzNhMDY1MjZkYTk5ZjFiMzA2YWU1NGFlZTYzLi5jMTNhMmRiOTk1ODJiZDAz
NjI1NDQyNjRiZGE4NTM4YTI4OTY0OWQzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3Mv
U3R5bGVQcm9wZXJ0eVNldC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL1N0eWxlUHJvcGVy
dHlTZXQuY3BwCkBAIC0zMyw2ICszMyw3IEBACiAjaW5jbHVkZSAiU3R5bGVQcm9wZXJ0eVNob3J0
aGFuZC5oIgogI2luY2x1ZGUgIlN0eWxlU2hlZXRDb250ZW50cy5oIgogI2luY2x1ZGUgPHd0Zi9C
aXRBcnJheS5oPgorI2luY2x1ZGUgPHd0Zi9NZW1vcnlJbnN0cnVtZW50YXRpb25WZWN0b3IuaD4K
ICNpbmNsdWRlIDx3dGYvdGV4dC9TdHJpbmdCdWlsZGVyLmg+CiAKICNpZm5kZWYgTkRFQlVHCkBA
IC0xMTIzLDcgKzExMjQsNyBAQCB2b2lkIFN0eWxlUHJvcGVydHlTZXQ6OnJlcG9ydE1lbW9yeVVz
YWdlKE1lbW9yeU9iamVjdEluZm8qIG1lbW9yeU9iamVjdEluZm8pIGNvbgogICAgIHNpemVfdCBh
Y3R1YWxTaXplID0gbV9pc011dGFibGUgPyBzaXplb2YoU3R5bGVQcm9wZXJ0eVNldCkgOiBpbW11
dGFibGVTdHlsZVByb3BlcnR5U2V0U2l6ZShtX2FycmF5U2l6ZSk7CiAgICAgTWVtb3J5Q2xhc3NJ
bmZvIGluZm8obWVtb3J5T2JqZWN0SW5mbywgdGhpcywgV2ViQ29yZU1lbW9yeVR5cGVzOjpDU1Ms
IGFjdHVhbFNpemUpOwogICAgIGlmIChtX2lzTXV0YWJsZSkKLSAgICAgICAgaW5mby5hZGRWZWN0
b3JQdHIobV9tdXRhYmxlUHJvcGVydHlWZWN0b3IpOworICAgICAgICBpbmZvLmFkZE1lbWJlciht
X211dGFibGVQcm9wZXJ0eVZlY3Rvcik7CiAKICAgICB1bnNpZ25lZCBjb3VudCA9IHByb3BlcnR5
Q291bnQoKTsKICAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgY291bnQ7ICsraSkKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9TdHlsZVJlc29sdmVyLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2Nzcy9TdHlsZVJlc29sdmVyLmNwcAppbmRleCBlYzBjMzljNDlhZGU4M2RkMmRiYzkxYmEy
OTJhZjQxMGI1MjlmYmMzLi4zMTczOGRmOTI4NzlhNjc2NTIxMzQ2YWQ2NmJjOTU0ZmY4NTA1OGU1
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVSZXNvbHZlci5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvY3NzL1N0eWxlUmVzb2x2ZXIuY3BwCkBAIC0xMjUsNiArMTI1LDcgQEAK
ICNpbmNsdWRlICJXZWJLaXRDU1NUcmFuc2Zvcm1WYWx1ZS5oIgogI2luY2x1ZGUgIldlYktpdEZv
bnRGYW1pbHlOYW1lcy5oIgogI2luY2x1ZGUgIlhNTE5hbWVzLmgiCisjaW5jbHVkZSA8d3RmL01l
bW9yeUluc3RydW1lbnRhdGlvblZlY3Rvci5oPgogI2luY2x1ZGUgPHd0Zi9TdGRMaWJFeHRyYXMu
aD4KICNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+CiAKQEAgLTc0Nyw4ICs3NDgsOCBAQCB2b2lkIFN0
eWxlUmVzb2x2ZXI6OkZlYXR1cmVzOjpyZXBvcnRNZW1vcnlVc2FnZShNZW1vcnlPYmplY3RJbmZv
KiBtZW1vcnlPYmplY3RJbgogICAgIE1lbW9yeUNsYXNzSW5mbyBpbmZvKG1lbW9yeU9iamVjdElu
Zm8sIHRoaXMsIFdlYkNvcmVNZW1vcnlUeXBlczo6Q1NTKTsKICAgICBpbmZvLmFkZEhhc2hTZXQo
aWRzSW5SdWxlcyk7CiAgICAgaW5mby5hZGRIYXNoU2V0KGF0dHJzSW5SdWxlcyk7Ci0gICAgaW5m
by5hZGRWZWN0b3Ioc2libGluZ1J1bGVzKTsKLSAgICBpbmZvLmFkZFZlY3Rvcih1bmNvbW1vbkF0
dHJpYnV0ZVJ1bGVzKTsKKyAgICBpbmZvLmFkZE1lbWJlcihzaWJsaW5nUnVsZXMpOworICAgIGlu
Zm8uYWRkTWVtYmVyKHVuY29tbW9uQXR0cmlidXRlUnVsZXMpOwogfQogCiBzdGF0aWMgU3R5bGVT
aGVldENvbnRlbnRzKiBwYXJzZVVBU2hlZXQoY29uc3QgU3RyaW5nJiBzdHIpCkBAIC0yNTY4LDcg
KzI1NjksNyBAQCBzdGF0aWMgdm9pZCByZXBvcnRBdG9tUnVsZU1hcChNZW1vcnlDbGFzc0luZm8q
IGluZm8sIGNvbnN0IFJ1bGVTZXQ6OkF0b21SdWxlTWFwJgogewogICAgIGluZm8tPmFkZEhhc2hN
YXAoYXRvbWljUnVsZU1hcCk7CiAgICAgZm9yIChSdWxlU2V0OjpBdG9tUnVsZU1hcDo6Y29uc3Rf
aXRlcmF0b3IgaXQgPSBhdG9taWNSdWxlTWFwLmJlZ2luKCk7IGl0ICE9IGF0b21pY1J1bGVNYXAu
ZW5kKCk7ICsraXQpCi0gICAgICAgIGluZm8tPmFkZEluc3RydW1lbnRlZFZlY3RvcigqaXQtPnNl
Y29uZCk7CisgICAgICAgIGluZm8tPmFkZE1lbWJlcigqaXQtPnNlY29uZCk7CiB9CiAKIHZvaWQg
UnVsZVNldDo6cmVwb3J0TWVtb3J5VXNhZ2UoTWVtb3J5T2JqZWN0SW5mbyogbWVtb3J5T2JqZWN0
SW5mbykgY29uc3QKQEAgLTI1NzgsMTEgKzI1NzksMTEgQEAgdm9pZCBSdWxlU2V0OjpyZXBvcnRN
ZW1vcnlVc2FnZShNZW1vcnlPYmplY3RJbmZvKiBtZW1vcnlPYmplY3RJbmZvKSBjb25zdAogICAg
IHJlcG9ydEF0b21SdWxlTWFwKCZpbmZvLCBtX2NsYXNzUnVsZXMpOwogICAgIHJlcG9ydEF0b21S
dWxlTWFwKCZpbmZvLCBtX3RhZ1J1bGVzKTsKICAgICByZXBvcnRBdG9tUnVsZU1hcCgmaW5mbywg
bV9zaGFkb3dQc2V1ZG9FbGVtZW50UnVsZXMpOwotICAgIGluZm8uYWRkSW5zdHJ1bWVudGVkVmVj
dG9yKG1fbGlua1BzZXVkb0NsYXNzUnVsZXMpOwotICAgIGluZm8uYWRkSW5zdHJ1bWVudGVkVmVj
dG9yKG1fZm9jdXNQc2V1ZG9DbGFzc1J1bGVzKTsKLSAgICBpbmZvLmFkZEluc3RydW1lbnRlZFZl
Y3RvcihtX3VuaXZlcnNhbFJ1bGVzKTsKLSAgICBpbmZvLmFkZFZlY3RvcihtX3BhZ2VSdWxlcyk7
Ci0gICAgaW5mby5hZGRJbnN0cnVtZW50ZWRWZWN0b3IobV9yZWdpb25TZWxlY3RvcnNBbmRSdWxl
U2V0cyk7CisgICAgaW5mby5hZGRNZW1iZXIobV9saW5rUHNldWRvQ2xhc3NSdWxlcyk7CisgICAg
aW5mby5hZGRNZW1iZXIobV9mb2N1c1BzZXVkb0NsYXNzUnVsZXMpOworICAgIGluZm8uYWRkTWVt
YmVyKG1fdW5pdmVyc2FsUnVsZXMpOworICAgIGluZm8uYWRkTWVtYmVyKG1fcGFnZVJ1bGVzKTsK
KyAgICBpbmZvLmFkZE1lbWJlcihtX3JlZ2lvblNlbGVjdG9yc0FuZFJ1bGVTZXRzKTsKIH0KIAog
dm9pZCBSdWxlU2V0OjpSdWxlU2V0U2VsZWN0b3JQYWlyOjpyZXBvcnRNZW1vcnlVc2FnZShNZW1v
cnlPYmplY3RJbmZvKiBtZW1vcnlPYmplY3RJbmZvKSBjb25zdApAQCAtNTc2Nyw3ICs1NzY4LDcg
QEAgdm9pZCBTdHlsZVJlc29sdmVyOjpNYXRjaGVkUHJvcGVydGllczo6cmVwb3J0TWVtb3J5VXNh
Z2UoTWVtb3J5T2JqZWN0SW5mbyogbWVtb3IKIHZvaWQgU3R5bGVSZXNvbHZlcjo6TWF0Y2hlZFBy
b3BlcnRpZXNDYWNoZUl0ZW06OnJlcG9ydE1lbW9yeVVzYWdlKE1lbW9yeU9iamVjdEluZm8qIG1l
bW9yeU9iamVjdEluZm8pIGNvbnN0CiB7CiAgICAgTWVtb3J5Q2xhc3NJbmZvIGluZm8obWVtb3J5
T2JqZWN0SW5mbywgdGhpcywgV2ViQ29yZU1lbW9yeVR5cGVzOjpDU1MpOwotICAgIGluZm8uYWRk
SW5zdHJ1bWVudGVkVmVjdG9yKG1hdGNoZWRQcm9wZXJ0aWVzKTsKKyAgICBpbmZvLmFkZE1lbWJl
cihtYXRjaGVkUHJvcGVydGllcyk7CiB9CiAKIHZvaWQgTWVkaWFRdWVyeVJlc3VsdDo6cmVwb3J0
TWVtb3J5VXNhZ2UoTWVtb3J5T2JqZWN0SW5mbyogbWVtb3J5T2JqZWN0SW5mbykgY29uc3QKQEAg
LTU3ODcsMTMgKzU3ODgsMTMgQEAgdm9pZCBTdHlsZVJlc29sdmVyOjpyZXBvcnRNZW1vcnlVc2Fn
ZShNZW1vcnlPYmplY3RJbmZvKiBtZW1vcnlPYmplY3RJbmZvKSBjb25zdAogICAgIGluZm8uYWRk
SGFzaE1hcChtX2tleWZyYW1lc1J1bGVNYXApOwogICAgIGluZm8uYWRkSGFzaE1hcChtX21hdGNo
ZWRQcm9wZXJ0aWVzQ2FjaGUpOwogICAgIGluZm8uYWRkSW5zdHJ1bWVudGVkTWFwVmFsdWVzKG1f
bWF0Y2hlZFByb3BlcnRpZXNDYWNoZSk7Ci0gICAgaW5mby5hZGRWZWN0b3IobV9tYXRjaGVkUnVs
ZXMpOworICAgIGluZm8uYWRkTWVtYmVyKG1fbWF0Y2hlZFJ1bGVzKTsKIAogICAgIGluZm8uYWRk
TWVtYmVyKG1fcnVsZUxpc3QpOwogICAgIGluZm8uYWRkSGFzaE1hcChtX3BlbmRpbmdJbWFnZVBy
b3BlcnRpZXMpOwogICAgIGluZm8uYWRkSW5zdHJ1bWVudGVkTWFwVmFsdWVzKG1fcGVuZGluZ0lt
YWdlUHJvcGVydGllcyk7CiAgICAgaW5mby5hZGRNZW1iZXIobV9saW5lSGVpZ2h0VmFsdWUpOwot
ICAgIGluZm8uYWRkSW5zdHJ1bWVudGVkVmVjdG9yKG1fdmlld3BvcnREZXBlbmRlbnRNZWRpYVF1
ZXJ5UmVzdWx0cyk7CisgICAgaW5mby5hZGRNZW1iZXIobV92aWV3cG9ydERlcGVuZGVudE1lZGlh
UXVlcnlSZXN1bHRzKTsKICAgICBpbmZvLmFkZEhhc2hNYXAobV9zdHlsZVJ1bGVUb0NTU09NV3Jh
cHBlck1hcCk7CiAgICAgaW5mby5hZGRJbnN0cnVtZW50ZWRNYXBFbnRyaWVzKG1fc3R5bGVSdWxl
VG9DU1NPTVdyYXBwZXJNYXApOwogICAgIGluZm8uYWRkSW5zdHJ1bWVudGVkSGFzaFNldChtX3N0
eWxlU2hlZXRDU1NPTVdyYXBwZXJTZXQpOwpAQCAtNTgwMyw3ICs1ODA0LDcgQEAgdm9pZCBTdHls
ZVJlc29sdmVyOjpyZXBvcnRNZW1vcnlVc2FnZShNZW1vcnlPYmplY3RJbmZvKiBtZW1vcnlPYmpl
Y3RJbmZvKSBjb25zdAogI2lmIEVOQUJMRShTVFlMRV9TQ09QRUQpCiAgICAgaW5mby5hZGRIYXNo
TWFwKG1fc2NvcGVkQXV0aG9yU3R5bGVzKTsKICAgICBpbmZvLmFkZEluc3RydW1lbnRlZE1hcEVu
dHJpZXMobV9zY29wZWRBdXRob3JTdHlsZXMpOwotICAgIGluZm8uYWRkVmVjdG9yKG1fc2NvcGVT
dGFjayk7CisgICAgaW5mby5hZGRNZW1iZXIobV9zY29wZVN0YWNrKTsKICNlbmRpZgogCiAgICAg
Ly8gRklYTUU6IG1vdmUgdGhpcyB0byBhIHBsYWNlIHdoZXJlIGl0IHdvdWxkIGJlIGNhbGxlZCBv
bmx5IG9uY2U/CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVSdWxlLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2Nzcy9TdHlsZVJ1bGUuY3BwCmluZGV4IDVlY2UxYjRhMjE0MWVjYmUw
YmViZjIyZDllOGVkNzZhZDg1NDcwZjMuLjczYjBhZjI2Y2U0MmFhNDU5NGQ5Yjc2MTc5NmIxOWQ2
YTZiYjY2NWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9TdHlsZVJ1bGUuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9TdHlsZVJ1bGUuY3BwCkBAIC0zMyw2ICszMyw3IEBACiAj
aW5jbHVkZSAiV2ViS2l0Q1NTS2V5ZnJhbWVSdWxlLmgiCiAjaW5jbHVkZSAiV2ViS2l0Q1NTS2V5
ZnJhbWVzUnVsZS5oIgogI2luY2x1ZGUgIldlYktpdENTU1JlZ2lvblJ1bGUuaCIKKyNpbmNsdWRl
IDx3dGYvTWVtb3J5SW5zdHJ1bWVudGF0aW9uVmVjdG9yLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKIApAQCAtMzQwLDcgKzM0MSw3IEBAIHZvaWQgU3R5bGVSdWxlQmxvY2s6OndyYXBwZXJSZW1v
dmVSdWxlKHVuc2lnbmVkIGluZGV4KQogdm9pZCBTdHlsZVJ1bGVCbG9jazo6cmVwb3J0RGVzY2Vu
ZGFudE1lbW9yeVVzYWdlKE1lbW9yeU9iamVjdEluZm8qIG1lbW9yeU9iamVjdEluZm8pIGNvbnN0
CiB7CiAgICAgTWVtb3J5Q2xhc3NJbmZvIGluZm8obWVtb3J5T2JqZWN0SW5mbywgdGhpcywgV2Vi
Q29yZU1lbW9yeVR5cGVzOjpDU1MpOwotICAgIGluZm8uYWRkSW5zdHJ1bWVudGVkVmVjdG9yKG1f
Y2hpbGRSdWxlcyk7CisgICAgaW5mby5hZGRNZW1iZXIobV9jaGlsZFJ1bGVzKTsKIH0KIAogU3R5
bGVSdWxlTWVkaWE6OlN0eWxlUnVsZU1lZGlhKFBhc3NSZWZQdHI8TWVkaWFRdWVyeVNldD4gbWVk
aWEsIFZlY3RvcjxSZWZQdHI8U3R5bGVSdWxlQmFzZT4gPiYgYWRvcHRSdWxlcykKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9TdHlsZVNoZWV0Q29udGVudHMuY3BwIGIvU291cmNlL1dl
YkNvcmUvY3NzL1N0eWxlU2hlZXRDb250ZW50cy5jcHAKaW5kZXggMDQ4MjczYmVjMTc4M2RiMjUy
NzdiMjJlMmVmNDNkYzY4OTYxN2FkZC4uOTQ1ZjM1NWEzODU1YWNkMmE3ZDAyY2M1YjI0NWQ2M2Nj
ZjhlNzAzNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL1N0eWxlU2hlZXRDb250ZW50
cy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL1N0eWxlU2hlZXRDb250ZW50cy5jcHAKQEAg
LTMzLDYgKzMzLDcgQEAKICNpbmNsdWRlICJTdHlsZVJ1bGVJbXBvcnQuaCIKICNpbmNsdWRlICJX
ZWJDb3JlTWVtb3J5SW5zdHJ1bWVudGF0aW9uLmgiCiAjaW5jbHVkZSA8d3RmL0RlcXVlLmg+Cisj
aW5jbHVkZSA8d3RmL01lbW9yeUluc3RydW1lbnRhdGlvblZlY3Rvci5oPgogCiBuYW1lc3BhY2Ug
V2ViQ29yZSB7CiAKQEAgLTQ4OSwxMCArNDkwLDEwIEBAIHZvaWQgU3R5bGVTaGVldENvbnRlbnRz
OjpyZXBvcnRNZW1vcnlVc2FnZShNZW1vcnlPYmplY3RJbmZvKiBtZW1vcnlPYmplY3RJbmZvKSBj
CiAgICAgTWVtb3J5Q2xhc3NJbmZvIGluZm8obWVtb3J5T2JqZWN0SW5mbywgdGhpcywgV2ViQ29y
ZU1lbW9yeVR5cGVzOjpDU1MpOwogICAgIGluZm8uYWRkTWVtYmVyKG1fb3JpZ2luYWxVUkwpOwog
ICAgIGluZm8uYWRkTWVtYmVyKG1fZW5jb2RpbmdGcm9tQ2hhcnNldFJ1bGUpOwotICAgIGluZm8u
YWRkVmVjdG9yKG1faW1wb3J0UnVsZXMpOwotICAgIGluZm8uYWRkSW5zdHJ1bWVudGVkVmVjdG9y
KG1fY2hpbGRSdWxlcyk7CisgICAgaW5mby5hZGRNZW1iZXIobV9pbXBvcnRSdWxlcyk7CisgICAg
aW5mby5hZGRNZW1iZXIobV9jaGlsZFJ1bGVzKTsKICAgICBpbmZvLmFkZEhhc2hNYXAobV9uYW1l
c3BhY2VzKTsKLSAgICBpbmZvLmFkZFZlY3RvcihtX2NsaWVudHMpOworICAgIGluZm8uYWRkTWVt
YmVyKG1fY2xpZW50cyk7CiB9CiAKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9X
ZWJLaXRDU1NLZXlmcmFtZXNSdWxlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9XZWJLaXRDU1NL
ZXlmcmFtZXNSdWxlLmNwcAppbmRleCBhMjk5MWE4MThmNTBmZmY0ZDViNGUwOWJkNDMyOWI4YTMx
Yjg1MDFlLi4wOGZiYjBhNTU4NWQ3YjZmODZiYjk1MjhlNzkxN2Q4Njk0NzU0ZTY2IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvV2ViS2l0Q1NTS2V5ZnJhbWVzUnVsZS5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvY3NzL1dlYktpdENTU0tleWZyYW1lc1J1bGUuY3BwCkBAIC0zMyw2ICsz
Myw3IEBACiAjaW5jbHVkZSAiU3R5bGVTaGVldC5oIgogI2luY2x1ZGUgIldlYkNvcmVNZW1vcnlJ
bnN0cnVtZW50YXRpb24uaCIKICNpbmNsdWRlICJXZWJLaXRDU1NLZXlmcmFtZVJ1bGUuaCIKKyNp
bmNsdWRlIDx3dGYvTWVtb3J5SW5zdHJ1bWVudGF0aW9uVmVjdG9yLmg+CiAjaW5jbHVkZSA8d3Rm
L3RleHQvU3RyaW5nQnVpbGRlci5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CkBAIC05MCw3ICs5
MSw3IEBAIGludCBTdHlsZVJ1bGVLZXlmcmFtZXM6OmZpbmRLZXlmcmFtZUluZGV4KGNvbnN0IFN0
cmluZyYga2V5KSBjb25zdAogdm9pZCBTdHlsZVJ1bGVLZXlmcmFtZXM6OnJlcG9ydERlc2NlbmRh
bnRNZW1vcnlVc2FnZShNZW1vcnlPYmplY3RJbmZvKiBtZW1vcnlPYmplY3RJbmZvKSBjb25zdAog
ewogICAgIE1lbW9yeUNsYXNzSW5mbyBpbmZvKG1lbW9yeU9iamVjdEluZm8sIHRoaXMsIFdlYkNv
cmVNZW1vcnlUeXBlczo6Q1NTKTsKLSAgICBpbmZvLmFkZEluc3RydW1lbnRlZFZlY3RvcihtX2tl
eWZyYW1lcyk7CisgICAgaW5mby5hZGRNZW1iZXIobV9rZXlmcmFtZXMpOwogICAgIGluZm8uYWRk
TWVtYmVyKG1fbmFtZSk7CiB9CiAKQEAgLTIxMSw3ICsyMTIsNyBAQCB2b2lkIFdlYktpdENTU0tl
eWZyYW1lc1J1bGU6OnJlcG9ydERlc2NlbmRhbnRNZW1vcnlVc2FnZShNZW1vcnlPYmplY3RJbmZv
KiBtZW1vcgogICAgIE1lbW9yeUNsYXNzSW5mbyBpbmZvKG1lbW9yeU9iamVjdEluZm8sIHRoaXMs
IFdlYkNvcmVNZW1vcnlUeXBlczo6Q1NTKTsKICAgICBDU1NSdWxlOjpyZXBvcnRCYXNlQ2xhc3NN
ZW1vcnlVc2FnZShtZW1vcnlPYmplY3RJbmZvKTsKICAgICBpbmZvLmFkZE1lbWJlcihtX2tleWZy
YW1lc1J1bGUpOwotICAgIGluZm8uYWRkSW5zdHJ1bWVudGVkVmVjdG9yKG1fY2hpbGRSdWxlQ1NT
T01XcmFwcGVycyk7CisgICAgaW5mby5hZGRNZW1iZXIobV9jaGlsZFJ1bGVDU1NPTVdyYXBwZXJz
KTsKICAgICBpbmZvLmFkZE1lbWJlcihtX3J1bGVMaXN0Q1NTT01XcmFwcGVyKTsKIH0KIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL1dlYktpdENTU1JlZ2lvblJ1bGUuY3BwIGIvU291
cmNlL1dlYkNvcmUvY3NzL1dlYktpdENTU1JlZ2lvblJ1bGUuY3BwCmluZGV4IDVjMmM3MjFjZDY4
NTRhZDM5MjFhYzU2MzkxODVmNmE5Njg5MTNjMzEuLmNlMTIwN2NhYmRmOWJmODU2MDU5ZTg2ZDZi
MjBmMWZiMjI4NDNkZTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9XZWJLaXRDU1NS
ZWdpb25SdWxlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvV2ViS2l0Q1NTUmVnaW9uUnVs
ZS5jcHAKQEAgLTM0LDYgKzM0LDcgQEAKICNpbmNsdWRlICJDU1NQYXJzZXIuaCIKICNpbmNsdWRl
ICJDU1NSdWxlTGlzdC5oIgogI2luY2x1ZGUgIlN0eWxlUnVsZS5oIgorI2luY2x1ZGUgPHd0Zi9N
ZW1vcnlJbnN0cnVtZW50YXRpb25WZWN0b3IuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9TdHJpbmdC
dWlsZGVyLmg+CiAKICNpZiBFTkFCTEUoQ1NTX1JFR0lPTlMpCkBAIC0xMTMsNyArMTE0LDcgQEAg
dm9pZCBXZWJLaXRDU1NSZWdpb25SdWxlOjpyZXBvcnREZXNjZW5kYW50TWVtb3J5VXNhZ2UoTWVt
b3J5T2JqZWN0SW5mbyogbWVtb3J5T2IKICAgICBNZW1vcnlDbGFzc0luZm8gaW5mbyhtZW1vcnlP
YmplY3RJbmZvLCB0aGlzLCBXZWJDb3JlTWVtb3J5VHlwZXM6OkNTUyk7CiAgICAgQ1NTUnVsZTo6
cmVwb3J0QmFzZUNsYXNzTWVtb3J5VXNhZ2UobWVtb3J5T2JqZWN0SW5mbyk7CiAgICAgaW5mby5h
ZGRNZW1iZXIobV9yZWdpb25SdWxlKTsKLSAgICBpbmZvLmFkZEluc3RydW1lbnRlZFZlY3Rvciht
X2NoaWxkUnVsZUNTU09NV3JhcHBlcnMpOworICAgIGluZm8uYWRkTWVtYmVyKG1fY2hpbGRSdWxl
Q1NTT01XcmFwcGVycyk7CiAgICAgaW5mby5hZGRNZW1iZXIobV9ydWxlTGlzdENTU09NV3JhcHBl
cik7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCmluZGV4IGFiNDhjYTM4MmJiMjU5Yjc2OWZl
N2EzNWZkMmM0MzY1NDEzZjdkMWUuLmU5NjcwMzJhMWI2Nzc2NDY0MmMxY2ZlNDgzNjRhNjRhM2Iz
MDMwODkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcApAQCAtMTcyLDYgKzE3Miw3IEBACiAjaW5j
bHVkZSA8d3RmL0N1cnJlbnRUaW1lLmg+CiAjaW5jbHVkZSA8d3RmL0hhc2hGdW5jdGlvbnMuaD4K
ICNpbmNsdWRlIDx3dGYvTWFpblRocmVhZC5oPgorI2luY2x1ZGUgPHd0Zi9NZW1vcnlJbnN0cnVt
ZW50YXRpb25WZWN0b3IuaD4KICNpbmNsdWRlIDx3dGYvUGFzc1JlZlB0ci5oPgogI2luY2x1ZGUg
PHd0Zi9TdGRMaWJFeHRyYXMuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9TdHJpbmdCdWZmZXIuaD4K
QEAgLTYyNTEsNyArNjI1Miw3IEBAIHZvaWQgRG9jdW1lbnQ6OnJlcG9ydE1lbW9yeVVzYWdlKE1l
bW9yeU9iamVjdEluZm8qIG1lbW9yeU9iamVjdEluZm8pIGNvbnN0CiAgICAgTWVtb3J5Q2xhc3NJ
bmZvIGluZm8obWVtb3J5T2JqZWN0SW5mbywgdGhpcywgV2ViQ29yZU1lbW9yeVR5cGVzOjpET00p
OwogICAgIGluZm8uYWRkTWVtYmVyKG1fc3R5bGVSZXNvbHZlcik7CiAgICAgQ29udGFpbmVyTm9k
ZTo6cmVwb3J0TWVtb3J5VXNhZ2UobWVtb3J5T2JqZWN0SW5mbyk7Ci0gICAgaW5mby5hZGRWZWN0
b3IobV9jdXN0b21Gb250cyk7CisgICAgaW5mby5hZGRNZW1iZXIobV9jdXN0b21Gb250cyk7CiAg
ICAgaW5mby5hZGRNZW1iZXIobV91cmwpOwogICAgIGluZm8uYWRkTWVtYmVyKG1fYmFzZVVSTCk7
CiAgICAgaW5mby5hZGRNZW1iZXIobV9iYXNlVVJMT3ZlcnJpZGUpOwpAQCAtNjI2NCwxMCArNjI2
NSw4IEBAIHZvaWQgRG9jdW1lbnQ6OnJlcG9ydE1lbW9yeVVzYWdlKE1lbW9yeU9iamVjdEluZm8q
IG1lbW9yeU9iamVjdEluZm8pIGNvbnN0CiAgICAgaW5mby5hZGRNZW1iZXIobV9jYWNoZWRSZXNv
dXJjZUxvYWRlcik7CiAgICAgaW5mby5hZGRNZW1iZXIobV9lbGVtU2hlZXQpOwogICAgIGluZm8u
YWRkTWVtYmVyKG1fcGFnZVVzZXJTaGVldCk7Ci0gICAgaWYgKG1fcGFnZUdyb3VwVXNlclNoZWV0
cykKLSAgICAgICAgaW5mby5hZGRJbnN0cnVtZW50ZWRWZWN0b3JQdHIobV9wYWdlR3JvdXBVc2Vy
U2hlZXRzKTsKLSAgICBpZiAobV91c2VyU2hlZXRzKQotICAgICAgICBpbmZvLmFkZEluc3RydW1l
bnRlZFZlY3RvclB0cihtX3VzZXJTaGVldHMpOworICAgIGluZm8uYWRkTWVtYmVyKG1fcGFnZUdy
b3VwVXNlclNoZWV0cyk7CisgICAgaW5mby5hZGRNZW1iZXIobV91c2VyU2hlZXRzKTsKICAgICBp
bmZvLmFkZEhhc2hTZXQobV9ub2RlSXRlcmF0b3JzKTsKICAgICBpbmZvLmFkZEhhc2hTZXQobV9y
YW5nZXMpOwogICAgIGluZm8uYWRkTGlzdEhhc2hTZXQobV9zdHlsZVNoZWV0Q2FuZGlkYXRlTm9k
ZXMpOwpAQCAtNjI4MSwxNyArNjI4MCwxNyBAQCB2b2lkIERvY3VtZW50OjpyZXBvcnRNZW1vcnlV
c2FnZShNZW1vcnlPYmplY3RJbmZvKiBtZW1vcnlPYmplY3RJbmZvKSBjb25zdAogICAgIGluZm8u
YWRkSGFzaE1hcChtX2RvY3VtZW50TmFtZWRJdGVtQ29sbGVjdGlvbnMpOwogICAgIGluZm8uYWRk
SGFzaE1hcChtX3dpbmRvd05hbWVkSXRlbUNvbGxlY3Rpb25zKTsKICNpZiBFTkFCTEUoREFTSEJP
QVJEX1NVUFBPUlQpCi0gICAgaW5mby5hZGRWZWN0b3IobV9kYXNoYm9hcmRSZWdpb25zKTsKKyAg
ICBpbmZvLmFkZE1lbWJlcihtX2Rhc2hib2FyZFJlZ2lvbnMpOwogI2VuZGlmCiAgICAgaW5mby5h
ZGRIYXNoTWFwKG1fY3NzQ2FudmFzRWxlbWVudHMpOwotICAgIGluZm8uYWRkVmVjdG9yKG1faWNv
blVSTHMpOworICAgIGluZm8uYWRkTWVtYmVyKG1faWNvblVSTHMpOwogICAgIGluZm8uYWRkSGFz
aFNldChtX2RvY3VtZW50U3VzcGVuc2lvbkNhbGxiYWNrRWxlbWVudHMpOwogICAgIGluZm8uYWRk
SGFzaFNldChtX21lZGlhVm9sdW1lQ2FsbGJhY2tFbGVtZW50cyk7CiAgICAgaW5mby5hZGRIYXNo
U2V0KG1fcHJpdmF0ZUJyb3dzaW5nU3RhdGVDaGFuZ2VkRWxlbWVudHMpOwogICAgIGluZm8uYWRk
SGFzaE1hcChtX2VsZW1lbnRzQnlBY2Nlc3NLZXkpOwogICAgIGluZm8uYWRkTWVtYmVyKG1fZXZl
bnRRdWV1ZSk7CiAgICAgaW5mby5hZGRIYXNoU2V0KG1fbWVkaWFDYW5TdGFydExpc3RlbmVycyk7
Ci0gICAgaW5mby5hZGRWZWN0b3IobV9wZW5kaW5nVGFza3MpOworICAgIGluZm8uYWRkTWVtYmVy
KG1fcGVuZGluZ1Rhc2tzKTsKIH0KIAogI2lmIEVOQUJMRShVTkRPX01BTkFHRVIpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudEF0dHJpYnV0ZURhdGEuY3BwIGIvU291cmNl
L1dlYkNvcmUvZG9tL0VsZW1lbnRBdHRyaWJ1dGVEYXRhLmNwcAppbmRleCAwM2Y3YjgxZmNmNWIx
NjgxNmYzMWViZDNjNWZmMGQ1YTAyZDNmNzQxLi41YTdmMzQxMjU0YTg2NWE1NTIzNzA1NWEzYmRi
ZGZjOWYyNGNlZGQ1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudEF0dHJp
YnV0ZURhdGEuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50QXR0cmlidXRlRGF0
YS5jcHAKQEAgLTMxLDYgKzMxLDcgQEAKICNpbmNsdWRlICJDU1NTdHlsZVNoZWV0LmgiCiAjaW5j
bHVkZSAiU3R5bGVkRWxlbWVudC5oIgogI2luY2x1ZGUgIldlYkNvcmVNZW1vcnlJbnN0cnVtZW50
YXRpb24uaCIKKyNpbmNsdWRlIDx3dGYvTWVtb3J5SW5zdHJ1bWVudGF0aW9uVmVjdG9yLmg+CiAK
IG5hbWVzcGFjZSBXZWJDb3JlIHsKIApAQCAtMzAwLDcgKzMwMSw3IEBAIHZvaWQgRWxlbWVudEF0
dHJpYnV0ZURhdGE6OnJlcG9ydE1lbW9yeVVzYWdlKE1lbW9yeU9iamVjdEluZm8qIG1lbW9yeU9i
amVjdEluZm8pCiAgICAgaW5mby5hZGRNZW1iZXIobV9jbGFzc05hbWVzKTsKICAgICBpbmZvLmFk
ZE1lbWJlcihtX2lkRm9yU3R5bGVSZXNvbHV0aW9uKTsKICAgICBpZiAobV9pc011dGFibGUpCi0g
ICAgICAgIGluZm8uYWRkVmVjdG9yKG11dGFibGVBdHRyaWJ1dGVWZWN0b3IoKSk7CisgICAgICAg
IGluZm8uYWRkTWVtYmVyKG11dGFibGVBdHRyaWJ1dGVWZWN0b3IoKSk7CiAgICAgZm9yICh1bnNp
Z25lZCBpID0gMCwgbGVuID0gbGVuZ3RoKCk7IGkgPCBsZW47IGkrKykKICAgICAgICAgaW5mby5h
ZGRNZW1iZXIoKmF0dHJpYnV0ZUl0ZW0oaSkpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvbG9hZGVyL0RvY3VtZW50TG9hZGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Eb2N1
bWVudExvYWRlci5jcHAKaW5kZXggODM2ODA0MWNmODBhM2Q2NDE1MWE5YjBiMGNhNTYyMzZlNGM0
NDg5Mi4uOTAwYWY5NzhhYTYxMWZhMmM1NTQ5MjczNWI0MDMzNmE0ZTg2M2I4YiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0RvY3VtZW50TG9hZGVyLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9sb2FkZXIvRG9jdW1lbnRMb2FkZXIuY3BwCkBAIC01Myw2ICs1Myw3IEBACiAjaW5j
bHVkZSAiVGV4dFJlc291cmNlRGVjb2Rlci5oIgogI2luY2x1ZGUgIldlYkNvcmVNZW1vcnlJbnN0
cnVtZW50YXRpb24uaCIKICNpbmNsdWRlIDx3dGYvQXNzZXJ0aW9ucy5oPgorI2luY2x1ZGUgPHd0
Zi9NZW1vcnlJbnN0cnVtZW50YXRpb25WZWN0b3IuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9DU3Ry
aW5nLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CiAjaW5jbHVkZSA8d3RmL3Vu
aWNvZGUvVW5pY29kZS5oPgpAQCAtMzY4LDE2ICszNjksMTYgQEAgdm9pZCBEb2N1bWVudExvYWRl
cjo6cmVwb3J0TWVtb3J5VXNhZ2UoTWVtb3J5T2JqZWN0SW5mbyogbWVtb3J5T2JqZWN0SW5mbykg
Y29uc3QKICAgICBpbmZvLmFkZE1lbWJlcihtX3N1YnN0aXR1dGVEYXRhKTsKICAgICBpbmZvLmFk
ZE1lbWJlcihtX3BhZ2VUaXRsZS5zdHJpbmcoKSk7CiAgICAgaW5mby5hZGRNZW1iZXIobV9vdmVy
cmlkZUVuY29kaW5nKTsKLSAgICBpbmZvLmFkZFZlY3RvcihtX3Jlc3BvbnNlcyk7CisgICAgaW5m
by5hZGRNZW1iZXIobV9yZXNwb25zZXMpOwogICAgIGluZm8uYWRkTWVtYmVyKG1fb3JpZ2luYWxS
ZXF1ZXN0KTsKICAgICBpbmZvLmFkZE1lbWJlcihtX29yaWdpbmFsUmVxdWVzdENvcHkpOwogICAg
IGluZm8uYWRkTWVtYmVyKG1fcmVxdWVzdCk7CiAgICAgaW5mby5hZGRNZW1iZXIobV9yZXNwb25z
ZSk7CiAgICAgaW5mby5hZGRNZW1iZXIobV9sYXN0Q2hlY2tlZFJlcXVlc3QpOwotICAgIGluZm8u
YWRkSW5zdHJ1bWVudGVkVmVjdG9yKG1fcmVzcG9uc2VzKTsKKyAgICBpbmZvLmFkZE1lbWJlciht
X3Jlc3BvbnNlcyk7CiAgICAgaW5mby5hZGRIYXNoTWFwKG1fcGVuZGluZ1N1YnN0aXR1dGVSZXNv
dXJjZXMpOwogICAgIGluZm8uYWRkSW5zdHJ1bWVudGVkSGFzaFNldChtX3Jlc291cmNlc0NsaWVu
dEtub3dzQWJvdXQpOwotICAgIGluZm8uYWRkVmVjdG9yKG1fcmVzb3VyY2VzTG9hZGVkRnJvbU1l
bW9yeUNhY2hlRm9yQ2xpZW50Tm90aWZpY2F0aW9uKTsKKyAgICBpbmZvLmFkZE1lbWJlcihtX3Jl
c291cmNlc0xvYWRlZEZyb21NZW1vcnlDYWNoZUZvckNsaWVudE5vdGlmaWNhdGlvbik7CiAgICAg
aW5mby5hZGRNZW1iZXIobV9jbGllbnRSZWRpcmVjdFNvdXJjZUZvckhpc3RvcnkpOwogICAgIGlu
Zm8uYWRkTWVtYmVyKG1fbWFpblJlc291cmNlRGF0YSk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9sb2FkZXIvY2FjaGUvTWVtb3J5Q2FjaGUuY3BwIGIvU291cmNlL1dlYkNvcmUvbG9h
ZGVyL2NhY2hlL01lbW9yeUNhY2hlLmNwcAppbmRleCA2NmQzMjAxZWI0NTA4MWI2OWY0YzQzZWNj
NDY0NGFjZmFkNzRhZDgwLi5jMWFmMDlkNjliOWMwZGU3YzhhNzJmM2UzOGQ0NzQ3YWI4ODNkMmQw
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvTWVtb3J5Q2FjaGUuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9NZW1vcnlDYWNoZS5jcHAKQEAgLTQ1
LDYgKzQ1LDcgQEAKICNpbmNsdWRlICJXb3JrZXJUaHJlYWQuaCIKICNpbmNsdWRlIDxzdGRpby5o
PgogI2luY2x1ZGUgPHd0Zi9DdXJyZW50VGltZS5oPgorI2luY2x1ZGUgPHd0Zi9NZW1vcnlJbnN0
cnVtZW50YXRpb25WZWN0b3IuaD4KICNpbmNsdWRlIDx3dGYvVGVtcG9yYXJ5Q2hhbmdlLmg+CiAj
aW5jbHVkZSA8d3RmL3RleHQvQ1N0cmluZy5oPgogCkBAIC03MjQsNyArNzI1LDcgQEAgdm9pZCBN
ZW1vcnlDYWNoZTo6cmVwb3J0TWVtb3J5VXNhZ2UoTWVtb3J5T2JqZWN0SW5mbyogbWVtb3J5T2Jq
ZWN0SW5mbykgY29uc3QKICAgICAgICAgaW5mby5hZGRNZW1iZXIoaS0+Zmlyc3QpOwogICAgICAg
ICBpbmZvLmFkZE1lbWJlcihpLT5zZWNvbmQpOwogICAgIH0KLSAgICBpbmZvLmFkZFZlY3Rvciht
X2FsbFJlc291cmNlcyk7CisgICAgaW5mby5hZGRNZW1iZXIobV9hbGxSZXNvdXJjZXMpOwogICAg
IGluZm8uYWRkTWVtYmVyKG1fbGl2ZURlY29kZWRSZXNvdXJjZXMpOwogfQogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TaGFyZWRCdWZmZXIuY3BwIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vU2hhcmVkQnVmZmVyLmNwcAppbmRleCA2OGMzMTk2YTc1MmUxOWIwOWNjZjQx
NjExNDYyNmI3N2FhMTk3ODEwLi5kZTVmNzFkYzJlM2I5NjZhNTU4YTIzZThhMjQ0ZjA3ZGI5OGE1
MGYyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TaGFyZWRCdWZmZXIuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1NoYXJlZEJ1ZmZlci5jcHAKQEAgLTI5LDYg
KzI5LDcgQEAKIAogI2luY2x1ZGUgIlBsYXRmb3JtTWVtb3J5SW5zdHJ1bWVudGF0aW9uLmgiCiAj
aW5jbHVkZSAiUHVyZ2VhYmxlQnVmZmVyLmgiCisjaW5jbHVkZSA8d3RmL01lbW9yeUluc3RydW1l
bnRhdGlvblZlY3Rvci5oPgogI2luY2x1ZGUgPHd0Zi9QYXNzT3duUHRyLmg+CiAjaW5jbHVkZSA8
d3RmL3VuaWNvZGUvVVRGOC5oPgogI2luY2x1ZGUgPHd0Zi91bmljb2RlL1VuaWNvZGUuaD4KQEAg
LTI1MSw4ICsyNTIsOCBAQCBjb25zdCBWZWN0b3I8Y2hhcj4mIFNoYXJlZEJ1ZmZlcjo6YnVmZmVy
KCkgY29uc3QKIHZvaWQgU2hhcmVkQnVmZmVyOjpyZXBvcnRNZW1vcnlVc2FnZShNZW1vcnlPYmpl
Y3RJbmZvKiBtZW1vcnlPYmplY3RJbmZvKSBjb25zdAogewogICAgIE1lbW9yeUNsYXNzSW5mbyBp
bmZvKG1lbW9yeU9iamVjdEluZm8sIHRoaXMpOwotICAgIGluZm8uYWRkVmVjdG9yKG1fYnVmZmVy
KTsKLSAgICBpbmZvLmFkZFZlY3RvcihtX3NlZ21lbnRzKTsKKyAgICBpbmZvLmFkZE1lbWJlciht
X2J1ZmZlcik7CisgICAgaW5mby5hZGRNZW1iZXIobV9zZWdtZW50cyk7CiAgICAgZm9yICh1bnNp
Z25lZCBpID0gMDsgaSA8IG1fc2VnbWVudHMuc2l6ZSgpOyArK2kpCiAgICAgICAgIGluZm8uYWRk
UmF3QnVmZmVyKG1fc2VnbWVudHNbaV0sIHNlZ21lbnRTaXplKTsKICAgICBpbmZvLmFkZE1lbWJl
cihtX3B1cmdlYWJsZUJ1ZmZlci5nZXQoKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9CaXRtYXBJbWFnZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9CaXRtYXBJbWFnZS5jcHAKaW5kZXggMGIxMTY4MDc4MWU1YzI3OTgxMGRlMmM0
ZTUwMmZhYzZmMTIxZTEwZC4uZDBhMmFhYmQxZDQwYzA3MGNlYjVhNzJkMDNmY2U4N2Y5ZjkzNDVk
YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvQml0bWFwSW1h
Z2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0JpdG1hcEltYWdl
LmNwcApAQCAtMzQsNiArMzQsNyBAQAogI2luY2x1ZGUgIlBsYXRmb3JtTWVtb3J5SW5zdHJ1bWVu
dGF0aW9uLmgiCiAjaW5jbHVkZSAiVGltZXIuaCIKICNpbmNsdWRlIDx3dGYvQ3VycmVudFRpbWUu
aD4KKyNpbmNsdWRlIDx3dGYvTWVtb3J5SW5zdHJ1bWVudGF0aW9uVmVjdG9yLmg+CiAjaW5jbHVk
ZSA8d3RmL1ZlY3Rvci5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgogCkBAIC01
NzgsNyArNTc5LDcgQEAgdm9pZCBCaXRtYXBJbWFnZTo6cmVwb3J0TWVtb3J5VXNhZ2UoTWVtb3J5
T2JqZWN0SW5mbyogbWVtb3J5T2JqZWN0SW5mbykgY29uc3QKICAgICBJbWFnZTo6cmVwb3J0TWVt
b3J5VXNhZ2UobWVtb3J5T2JqZWN0SW5mbyk7CiAgICAgaW5mby5hZGRNZW1iZXIobV9zb3VyY2Up
OwogICAgIGluZm8uYWRkTWVtYmVyKG1fZnJhbWVUaW1lcik7Ci0gICAgaW5mby5hZGRWZWN0b3Io
bV9mcmFtZXMpOworICAgIGluZm8uYWRkTWVtYmVyKG1fZnJhbWVzKTsKICAgICBmb3IgKHVuc2ln
bmVkIGkgPSAwOyBpIDwgbV9mcmFtZUNvdW50OyArK2kpIHsKICNpZiBPUyhXSU5DRSkgJiYgIVBM
QVRGT1JNKFFUKQogICAgICAgICBpbmZvLmFkZFJhd0J1ZmZlcihtX2ZyYW1lc1tpXS5tX2ZyYW1l
LmdldCgpLCBtX2ZyYW1lc1tpXS5tX2ZyYW1lQnl0ZXMpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvQml0bWFwSW1hZ2UuaCBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL0JpdG1hcEltYWdlLmgKaW5kZXggMTBiMzcyOTQ4YWZkZDk2Y2VhODI5
MjA1NzZhMmQ0MjRjZWQwYWJiMC4uM2YyM2RjZWRmZWE0YTUzM2QwODJiMjM2YTI4ZmU4NThkZGQ2
MGJiZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvQml0bWFw
SW1hZ2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9CaXRtYXBJbWFn
ZS5oCkBAIC04Nyw3ICs4Nyw2IEBAIHB1YmxpYzoKICAgICAvLyBDbGVhciB0aGUgY2FjaGVkIGlt
YWdlIGRhdGEgb24gdGhlIGZyYW1lLCBhbmQgKG9wdGlvbmFsbHkpIHRoZSBtZXRhZGF0YS4KICAg
ICAvLyBSZXR1cm5zIHdoZXRoZXIgdGhlcmUgd2FzIGNhY2hlZCBpbWFnZSBkYXRhIHRvIGNsZWFy
LgogICAgIGJvb2wgY2xlYXIoYm9vbCBjbGVhck1ldGFkYXRhKTsKLSAgICB2b2lkIHJlcG9ydE1l
bW9yeVVzYWdlKE1lbW9yeU9iamVjdEluZm8qKSBjb25zdDsKIAogICAgIE5hdGl2ZUltYWdlUHRy
IG1fZnJhbWU7CiAgICAgSW1hZ2VPcmllbnRhdGlvbiBtX29yaWVudGF0aW9uOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9Gb3JtRGF0YS5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL0Zvcm1EYXRhLmNwcAppbmRleCA0NWY3MzAyNDg2ZTA4
NTA0YzhkM2QyMmE1NzM3NDdjYTQ5MWI4YTljLi40M2E3MWFmMWE3MWZiNmZkY2NkMzBiYThjN2U1
YTUxMTYxMTE2YWVlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3Jr
L0Zvcm1EYXRhLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL0Zvcm1E
YXRhLmNwcApAQCAtMzcsNiArMzcsNyBAQAogI2luY2x1ZGUgIlRleHRFbmNvZGluZy5oIgogI2lu
Y2x1ZGUgPHd0Zi9EZWNvZGVyLmg+CiAjaW5jbHVkZSA8d3RmL0VuY29kZXIuaD4KKyNpbmNsdWRl
IDx3dGYvTWVtb3J5SW5zdHJ1bWVudGF0aW9uVmVjdG9yLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKIApAQCAtMzYwLDcgKzM2MSw3IEBAIHZvaWQgRm9ybURhdGE6OnJlbW92ZUdlbmVyYXRlZEZp
bGVzSWZOZWVkZWQoKQogdm9pZCBGb3JtRGF0YTo6cmVwb3J0TWVtb3J5VXNhZ2UoTWVtb3J5T2Jq
ZWN0SW5mbyogbWVtb3J5T2JqZWN0SW5mbykgY29uc3QKIHsKICAgICBNZW1vcnlDbGFzc0luZm8g
aW5mbyhtZW1vcnlPYmplY3RJbmZvLCB0aGlzLCBQbGF0Zm9ybU1lbW9yeVR5cGVzOjpMb2FkZXIp
OwotICAgIGluZm8uYWRkVmVjdG9yKG1fYm91bmRhcnkpOworICAgIGluZm8uYWRkTWVtYmVyKG1f
Ym91bmRhcnkpOwogfQogCiBzdGF0aWMgdm9pZCBlbmNvZGUoRW5jb2RlciYgZW5jb2RlciwgY29u
c3QgRm9ybURhdGFFbGVtZW50JiBlbGVtZW50KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vbmV0d29yay9SZXNvdXJjZVJlcXVlc3RCYXNlLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL25ldHdvcmsvUmVzb3VyY2VSZXF1ZXN0QmFzZS5jcHAKaW5kZXggMDBmNTgzOTA1
NTk0NzFlYjdlNGY2M2Q1YWRjYWFmNmVhYWVkNWI2Yy4uMzAzZGVhYTljYmRhNzZhZmJmYzZjNTYy
MmMwNTQ3NDE0OTkwZmM0NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0
d29yay9SZXNvdXJjZVJlcXVlc3RCYXNlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9uZXR3b3JrL1Jlc291cmNlUmVxdWVzdEJhc2UuY3BwCkBAIC0yOCw2ICsyOCw3IEBACiAKICNp
bmNsdWRlICJQbGF0Zm9ybU1lbW9yeUluc3RydW1lbnRhdGlvbi5oIgogI2luY2x1ZGUgIlJlc291
cmNlUmVxdWVzdC5oIgorI2luY2x1ZGUgPHd0Zi9NZW1vcnlJbnN0cnVtZW50YXRpb25WZWN0b3Iu
aD4KIAogdXNpbmcgbmFtZXNwYWNlIHN0ZDsKIApAQCAtNDUyLDcgKzQ1Myw3IEBAIHZvaWQgUmVz
b3VyY2VSZXF1ZXN0QmFzZTo6cmVwb3J0TWVtb3J5VXNhZ2UoTWVtb3J5T2JqZWN0SW5mbyogbWVt
b3J5T2JqZWN0SW5mbykKICAgICBpbmZvLmFkZE1lbWJlcihtX2h0dHBNZXRob2QpOwogICAgIGlu
Zm8uYWRkSGFzaE1hcChtX2h0dHBIZWFkZXJGaWVsZHMpOwogICAgIGluZm8uYWRkSW5zdHJ1bWVu
dGVkTWFwRW50cmllcyhtX2h0dHBIZWFkZXJGaWVsZHMpOwotICAgIGluZm8uYWRkSW5zdHJ1bWVu
dGVkVmVjdG9yKG1fcmVzcG9uc2VDb250ZW50RGlzcG9zaXRpb25FbmNvZGluZ0ZhbGxiYWNrQXJy
YXkpOworICAgIGluZm8uYWRkTWVtYmVyKG1fcmVzcG9uc2VDb250ZW50RGlzcG9zaXRpb25FbmNv
ZGluZ0ZhbGxiYWNrQXJyYXkpOwogICAgIGluZm8uYWRkTWVtYmVyKG1faHR0cEJvZHkpOwogfQog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGUu
Y3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlLmNwcAppbmRl
eCAwNjAyY2ZhOWJmMjZmYzgyZjZhNGJiZjFmNzJmMzlkZDNjMGJiMjY1Li42M2Q1ZTA1NTA3MWVl
YWU5ZDcyMGNmMTBjNjUxNmMwZGE0NjVlMTQ3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9zdHlsZS9SZW5kZXJTdHlsZS5jcHAKQEAgLTQwLDYgKzQwLDcgQEAKICNpbmNsdWRlICJS
ZW5kZXJUaGVtZS5oIgogI2VuZGlmCiAjaW5jbHVkZSAiV2ViQ29yZU1lbW9yeUluc3RydW1lbnRh
dGlvbi5oIgorI2luY2x1ZGUgPHd0Zi9NZW1vcnlJbnN0cnVtZW50YXRpb25WZWN0b3IuaD4KICNp
bmNsdWRlIDx3dGYvU3RkTGliRXh0cmFzLmg+CiAjaW5jbHVkZSA8YWxnb3JpdGhtPgogCkBAIC0x
NjE1LDggKzE2MTYsNyBAQCB2b2lkIFJlbmRlclN0eWxlOjpyZXBvcnRNZW1vcnlVc2FnZShNZW1v
cnlPYmplY3RJbmZvKiBtZW1vcnlPYmplY3RJbmZvKSBjb25zdAogICAgIGluZm8uYWRkTWVtYmVy
KHJhcmVJbmhlcml0ZWREYXRhKTsKICAgICAvLyBGSVhNRTogaW5oZXJpdGVkIGNvbnRhaW5zIFN0
eWxlSW1hZ2UgYW5kIEZvbnQgZmllbGRzIHRoYXQgbWlnaHQgbmVlZCB0byBiZSBpbnN0cnVtZW50
ZWQuCiAgICAgaW5mby5hZGRNZW1iZXIoaW5oZXJpdGVkKTsKLSAgICBpZiAobV9jYWNoZWRQc2V1
ZG9TdHlsZXMpCi0gICAgICAgIGluZm8uYWRkVmVjdG9yUHRyKG1fY2FjaGVkUHNldWRvU3R5bGVz
LmdldCgpKTsKKyAgICBpbmZvLmFkZE1lbWJlcihtX2NhY2hlZFBzZXVkb1N0eWxlcyk7CiAjaWYg
RU5BQkxFKFNWRykKICAgICBpbmZvLmFkZE1lbWJlcihtX3N2Z1N0eWxlKTsKICNlbmRpZgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1N0eWxlUmFyZU5vbkluaGVy
aXRlZERhdGEuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1N0eWxlUmFyZU5v
bkluaGVyaXRlZERhdGEuY3BwCmluZGV4IGJiZTA3YmZkZWM2Yzg2YzYxMjdlZmViN2FlOGIyZTQx
MWFkMzgxYWUuLmZmNWMyOGQ5YzI2YzI2NDdkZDJlYTkxNDVhOTU0MTA5OTgzNjcwODggMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9TdHlsZVJhcmVOb25Jbmhlcml0
ZWREYXRhLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvU3R5bGVSYXJl
Tm9uSW5oZXJpdGVkRGF0YS5jcHAKQEAgLTMxLDYgKzMxLDcgQEAKICNpbmNsdWRlICJTdHlsZUlt
YWdlLmgiCiAjaW5jbHVkZSAiU3R5bGVSZXNvbHZlci5oIgogI2luY2x1ZGUgIldlYkNvcmVNZW1v
cnlJbnN0cnVtZW50YXRpb24uaCIKKyNpbmNsdWRlIDx3dGYvTWVtb3J5SW5zdHJ1bWVudGF0aW9u
VmVjdG9yLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIApAQCAtMzA2LDcgKzMwNyw3IEBAIHZv
aWQgU3R5bGVSYXJlTm9uSW5oZXJpdGVkRGF0YTo6cmVwb3J0TWVtb3J5VXNhZ2UoTWVtb3J5T2Jq
ZWN0SW5mbyogbWVtb3J5T2JqZWN0CiB7CiAgICAgTWVtb3J5Q2xhc3NJbmZvIGluZm8obWVtb3J5
T2JqZWN0SW5mbywgdGhpcywgV2ViQ29yZU1lbW9yeVR5cGVzOjpDU1MpOwogI2lmIEVOQUJMRShE
QVNIQk9BUkRfU1VQUE9SVCkKLSAgICBpbmZvLmFkZFZlY3RvcihtX2Rhc2hib2FyZFJlZ2lvbnMp
OworICAgIGluZm8uYWRkTWVtYmVyKG1fZGFzaGJvYXJkUmVnaW9ucyk7CiAjZW5kaWYKICAgICBp
bmZvLmFkZE1lbWJlcihtX2RlcHJlY2F0ZWRGbGV4aWJsZUJveCk7CiAgICAgaW5mby5hZGRNZW1i
ZXIobV9mbGV4aWJsZUJveCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rl
c3RzL01lbW9yeUluc3RydW1lbnRhdGlvblRlc3QuY3BwIGIvU291cmNlL1dlYktpdC9jaHJvbWl1
bS90ZXN0cy9NZW1vcnlJbnN0cnVtZW50YXRpb25UZXN0LmNwcAppbmRleCA0YWNmNDk2YWQ4N2Qy
ZDgzYTk4N2Q3OTQ2ZjUzNzZlYTc1NmE0MmYwLi4yMWNlOTYzMTY5Y2RjYjM5MWZkN2EyOWRmMzVm
NTYwZmRiZDg0NDZmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rlc3RzL01l
bW9yeUluc3RydW1lbnRhdGlvblRlc3QuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0v
dGVzdHMvTWVtb3J5SW5zdHJ1bWVudGF0aW9uVGVzdC5jcHAKQEAgLTM3LDYgKzM3LDcgQEAKICNp
bmNsdWRlIDxndGVzdC9ndGVzdC5oPgogCiAjaW5jbHVkZSA8d3RmL0hhc2hTZXQuaD4KKyNpbmNs
dWRlIDx3dGYvTWVtb3J5SW5zdHJ1bWVudGF0aW9uVmVjdG9yLmg+CiAjaW5jbHVkZSA8d3RmL1Jl
ZkNvdW50ZWQuaD4KICNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQv
QXRvbWljU3RyaW5nLmg+CkBAIC0yMzUsNiArMjM2LDcgQEAgY2xhc3MgSW5zdHJ1bWVudGVkT3du
ZXIgewogcHVibGljOgogICAgIHRlbXBsYXRlPHR5cGVuYW1lIFY+CiAgICAgSW5zdHJ1bWVudGVk
T3duZXIoY29uc3QgViYgdmFsdWUpIDogbV92YWx1ZSh2YWx1ZSkgeyB9CisgICAgSW5zdHJ1bWVu
dGVkT3duZXIoKSB7IH0KICAgICB2b2lkIHJlcG9ydE1lbW9yeVVzYWdlKE1lbW9yeU9iamVjdElu
Zm8qIG1lbW9yeU9iamVjdEluZm8pIGNvbnN0CiAgICAgewogICAgICAgICBNZW1vcnlDbGFzc0lu
Zm8gaW5mbyhtZW1vcnlPYmplY3RJbmZvLCB0aGlzLCBXZWJDb3JlTWVtb3J5VHlwZXM6OkRPTSk7
CkBAIC0zNjcsNSArMzY5LDc1IEBAIFRFU1QoTWVtb3J5SW5zdHJ1bWVudGF0aW9uVGVzdCwgZGV0
ZWN0UmVwb3J0TWVtb3J5VXNhZ2VNZXRob2QpCiAgICAgfQogfQogCitURVNUKE1lbW9yeUluc3Ry
dW1lbnRhdGlvblRlc3QsIHZlY3Rvclplcm9JbmxpbmVDYXBhY2l0eSkKK3sKKyAgICBWaXNpdGVk
T2JqZWN0cyB2aXNpdGVkT2JqZWN0czsKKyAgICBNZW1vcnlJbnN0cnVtZW50YXRpb25JbXBsIGlt
cGwodmlzaXRlZE9iamVjdHMpOworICAgIEluc3RydW1lbnRlZE93bmVyPFZlY3RvcjxpbnQ+ID4g
dmVjdG9yT3duZXIoMTYpOworICAgIGltcGwuYWRkUm9vdE9iamVjdCh2ZWN0b3JPd25lcik7Cisg
ICAgRVhQRUNUX0VRKDE2ICogc2l6ZW9mKGludCksIGltcGwucmVwb3J0ZWRTaXplRm9yQWxsVHlw
ZXMoKSk7CisgICAgRVhQRUNUX0VRKDEsIHZpc2l0ZWRPYmplY3RzLnNpemUoKSk7Cit9CisKK1RF
U1QoTWVtb3J5SW5zdHJ1bWVudGF0aW9uVGVzdCwgdmVjdG9yRmllbGRXaXRoSW5saW5lQ2FwYWNp
dHkpCit7CisgICAgVmlzaXRlZE9iamVjdHMgdmlzaXRlZE9iamVjdHM7CisgICAgTWVtb3J5SW5z
dHJ1bWVudGF0aW9uSW1wbCBpbXBsKHZpc2l0ZWRPYmplY3RzKTsKKyAgICBJbnN0cnVtZW50ZWRP
d25lcjxWZWN0b3I8aW50LCA0PiA+IHZlY3Rvck93bmVyOworICAgIGltcGwuYWRkUm9vdE9iamVj
dCh2ZWN0b3JPd25lcik7CisgICAgRVhQRUNUX0VRKHN0YXRpY19jYXN0PHNpemVfdD4oMCksIGlt
cGwucmVwb3J0ZWRTaXplRm9yQWxsVHlwZXMoKSk7CisgICAgRVhQRUNUX0VRKDAsIHZpc2l0ZWRP
YmplY3RzLnNpemUoKSk7Cit9CisKK1RFU1QoTWVtb3J5SW5zdHJ1bWVudGF0aW9uVGVzdCwgdmVj
dG9yRmllbGRXaXRoSW5saW5lQ2FwYWNpdHlSZXNpemVkKQoreworICAgIFZpc2l0ZWRPYmplY3Rz
IHZpc2l0ZWRPYmplY3RzOworICAgIE1lbW9yeUluc3RydW1lbnRhdGlvbkltcGwgaW1wbCh2aXNp
dGVkT2JqZWN0cyk7CisgICAgSW5zdHJ1bWVudGVkT3duZXI8VmVjdG9yPGludCwgND4gPiB2ZWN0
b3JPd25lcjsKKyAgICB2ZWN0b3JPd25lci5tX3ZhbHVlLnJlc2VydmVDYXBhY2l0eSg4KTsKKyAg
ICBpbXBsLmFkZFJvb3RPYmplY3QodmVjdG9yT3duZXIpOworICAgIEVYUEVDVF9FUSg4ICogc2l6
ZW9mKGludCksIGltcGwucmVwb3J0ZWRTaXplRm9yQWxsVHlwZXMoKSk7CisgICAgRVhQRUNUX0VR
KDEsIHZpc2l0ZWRPYmplY3RzLnNpemUoKSk7Cit9CisKK1RFU1QoTWVtb3J5SW5zdHJ1bWVudGF0
aW9uVGVzdCwgaGVhcEFsbG9jYXRlZFZlY3RvcldpdGhJbmxpbmVDYXBhY2l0eSkKK3sKKyAgICBW
aXNpdGVkT2JqZWN0cyB2aXNpdGVkT2JqZWN0czsKKyAgICBNZW1vcnlJbnN0cnVtZW50YXRpb25J
bXBsIGltcGwodmlzaXRlZE9iamVjdHMpOworICAgIEluc3RydW1lbnRlZE93bmVyPE93blB0cjxW
ZWN0b3I8aW50LCA0PiA+ID4gdmVjdG9yT3duZXI7CisgICAgdmVjdG9yT3duZXIubV92YWx1ZSA9
IGFkb3B0UHRyKG5ldyBWZWN0b3I8aW50LCA0PigpKTsKKyAgICBpbXBsLmFkZFJvb3RPYmplY3Qo
dmVjdG9yT3duZXIpOworICAgIEVYUEVDVF9FUShzaXplb2YoVmVjdG9yPGludCwgND4pLCBpbXBs
LnJlcG9ydGVkU2l6ZUZvckFsbFR5cGVzKCkpOworICAgIEVYUEVDVF9FUSgxLCB2aXNpdGVkT2Jq
ZWN0cy5zaXplKCkpOworfQorCitURVNUKE1lbW9yeUluc3RydW1lbnRhdGlvblRlc3QsIGhlYXBB
bGxvY2F0ZWRWZWN0b3JXaXRoSW5saW5lQ2FwYWNpdHlSZXNpemVkKQoreworICAgIFZpc2l0ZWRP
YmplY3RzIHZpc2l0ZWRPYmplY3RzOworICAgIE1lbW9yeUluc3RydW1lbnRhdGlvbkltcGwgaW1w
bCh2aXNpdGVkT2JqZWN0cyk7CisgICAgSW5zdHJ1bWVudGVkT3duZXI8T3duUHRyPFZlY3Rvcjxp
bnQsIDQ+ID4gPiB2ZWN0b3JPd25lcjsKKyAgICB2ZWN0b3JPd25lci5tX3ZhbHVlID0gYWRvcHRQ
dHIobmV3IFZlY3RvcjxpbnQsIDQ+KCkpOworICAgIHZlY3Rvck93bmVyLm1fdmFsdWUtPnJlc2Vy
dmVDYXBhY2l0eSg4KTsKKyAgICBpbXBsLmFkZFJvb3RPYmplY3QodmVjdG9yT3duZXIpOworICAg
IEVYUEVDVF9FUSg4ICogc2l6ZW9mKGludCkgKyBzaXplb2YoVmVjdG9yPGludCwgND4pLCBpbXBs
LnJlcG9ydGVkU2l6ZUZvckFsbFR5cGVzKCkpOworICAgIEVYUEVDVF9FUSgyLCB2aXNpdGVkT2Jq
ZWN0cy5zaXplKCkpOworfQorCitURVNUKE1lbW9yeUluc3RydW1lbnRhdGlvblRlc3QsIHZlY3Rv
cldpdGhJbnN0cnVtZW50ZWRUeXBlKQoreworICAgIFZpc2l0ZWRPYmplY3RzIHZpc2l0ZWRPYmpl
Y3RzOworICAgIE1lbW9yeUluc3RydW1lbnRhdGlvbkltcGwgaW1wbCh2aXNpdGVkT2JqZWN0cyk7
CisKKyAgICB0eXBlZGVmIFZlY3RvcjxTdHJpbmc+IFN0cmluZ1ZlY3RvcjsKKyAgICBPd25QdHI8
U3RyaW5nVmVjdG9yPiB2YWx1ZSA9IGFkb3B0UHRyKG5ldyBTdHJpbmdWZWN0b3IoKSk7CisgICAg
c2l6ZV90IGNvdW50ID0gMTA7CisgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBjb3VudDsgKytp
KQorICAgICAgICB2YWx1ZS0+YXBwZW5kKCJzdHJpbmciKTsKKyAgICBJbnN0cnVtZW50ZWRPd25l
cjxTdHJpbmdWZWN0b3IqID4gcm9vdCh2YWx1ZS5nZXQoKSk7CisgICAgaW1wbC5hZGRSb290T2Jq
ZWN0KHJvb3QpOworICAgIEVYUEVDVF9FUShzaXplb2YoU3RyaW5nVmVjdG9yKSArIHNpemVvZihT
dHJpbmcpICogdmFsdWUtPmNhcGFjaXR5KCkgKyBzaXplb2YoU3RyaW5nSW1wbCkgKiB2YWx1ZS0+
c2l6ZSgpLCBpbXBsLnJlcG9ydGVkU2l6ZUZvckFsbFR5cGVzKCkpOworICAgIEVYUEVDVF9FUShj
b3VudCArIDIsIChzaXplX3QpdmlzaXRlZE9iamVjdHMuc2l6ZSgpKTsKK30KKwogfSAvLyBuYW1l
c3BhY2UKIAo=
</data>
<flag name="review"
          id="177105"
          type_id="1"
          status="+"
          setter="vsevik"
    />
    <flag name="commit-queue"
          id="177592"
          type_id="3"
          status="-"
          setter="webkit.review.bot"
    />
          </attachment>
      

    </bug>

</bugzilla>