<?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>91759</bug_id>
          
          <creation_ts>2012-07-19 10:47:45 -0700</creation_ts>
          <short_desc>Web Inspector: count RenderStyle objects in the native memory profiler</short_desc>
          <delta_ts>2012-08-02 07:15:25 -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>
          
          
          <everconfirmed>0</everconfirmed>
          <reporter name="Alexei Filippov">alph</reporter>
          <assigned_to name="Alexei Filippov">alph</assigned_to>
          <cc>abarth</cc>
    
    <cc>apavlov</cc>
    
    <cc>bweinstein</cc>
    
    <cc>cmarcelo</cc>
    
    <cc>eric</cc>
    
    <cc>gustavo</cc>
    
    <cc>haraken</cc>
    
    <cc>japhet</cc>
    
    <cc>jochen</cc>
    
    <cc>joepeck</cc>
    
    <cc>keishi</cc>
    
    <cc>loislo</cc>
    
    <cc>macpherson</cc>
    
    <cc>menard</cc>
    
    <cc>pfeldman</cc>
    
    <cc>philn</cc>
    
    <cc>pmuellr</cc>
    
    <cc>rik</cc>
    
    <cc>sw0524.lee</cc>
    
    <cc>timothy</cc>
    
    <cc>webkit.review.bot</cc>
    
    <cc>xan.lopez</cc>
    
    <cc>yurys</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>673662</commentid>
    <comment_count>0</comment_count>
    <who name="Alexei Filippov">alph</who>
    <bug_when>2012-07-19 10:47:45 -0700</bug_when>
    <thetext>EOM</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>673672</commentid>
    <comment_count>1</comment_count>
      <attachid>153306</attachid>
    <who name="Alexei Filippov">alph</who>
    <bug_when>2012-07-19 10:53:41 -0700</bug_when>
    <thetext>Created attachment 153306
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>673706</commentid>
    <comment_count>2</comment_count>
      <attachid>153306</attachid>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2012-07-19 11:13:00 -0700</bug_when>
    <thetext>Comment on attachment 153306
Patch

Attachment 153306 did not pass qt-ews (qt):
Output: http://queues.webkit.org/results/13303004</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>673714</commentid>
    <comment_count>3</comment_count>
      <attachid>153306</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2012-07-19 11:20:28 -0700</bug_when>
    <thetext>Comment on attachment 153306
Patch

Attachment 153306 did not pass win-ews (win):
Output: http://queues.webkit.org/results/13281981</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>673718</commentid>
    <comment_count>4</comment_count>
      <attachid>153306</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2012-07-19 11:22:26 -0700</bug_when>
    <thetext>Comment on attachment 153306
Patch

Attachment 153306 did not pass mac-ews (mac):
Output: http://queues.webkit.org/results/13274920</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>673790</commentid>
    <comment_count>5</comment_count>
      <attachid>153306</attachid>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2012-07-19 12:32:55 -0700</bug_when>
    <thetext>Comment on attachment 153306
Patch

Attachment 153306 did not pass qt-wk2-ews (qt):
Output: http://queues.webkit.org/results/13284949</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>673864</commentid>
    <comment_count>6</comment_count>
      <attachid>153306</attachid>
    <who name="Gyuyoung Kim">gyuyoung.kim</who>
    <bug_when>2012-07-19 13:29:32 -0700</bug_when>
    <thetext>Comment on attachment 153306
Patch

Attachment 153306 did not pass efl-ews (efl):
Output: http://queues.webkit.org/results/13303036</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>674359</commentid>
    <comment_count>7</comment_count>
      <attachid>153306</attachid>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2012-07-20 02:23:36 -0700</bug_when>
    <thetext>Comment on attachment 153306
Patch

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

&gt; Source/WebCore/rendering/style/RenderStyle.cpp:1492
&gt; +    MemoryClassInfo&lt;RenderStyle&gt; info(memoryObjectInfo, this, MemoryInstrumentation::CSS);

Please do not submit additional instrumentation until we find a way to maintain it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>674431</commentid>
    <comment_count>8</comment_count>
      <attachid>153471</attachid>
    <who name="Alexei Filippov">alph</who>
    <bug_when>2012-07-20 03:52:19 -0700</bug_when>
    <thetext>Created attachment 153471
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>674456</commentid>
    <comment_count>9</comment_count>
      <attachid>153479</attachid>
    <who name="Alexei Filippov">alph</who>
    <bug_when>2012-07-20 04:29:16 -0700</bug_when>
    <thetext>Created attachment 153479
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>674457</commentid>
    <comment_count>10</comment_count>
      <attachid>153306</attachid>
    <who name="Alexei Filippov">alph</who>
    <bug_when>2012-07-20 04:29:52 -0700</bug_when>
    <thetext>Comment on attachment 153306
Patch

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

&gt;&gt; Source/WebCore/rendering/style/RenderStyle.cpp:1492
&gt;&gt; +    MemoryClassInfo&lt;RenderStyle&gt; info(memoryObjectInfo, this, MemoryInstrumentation::CSS);
&gt; 
&gt; Please do not submit additional instrumentation until we find a way to maintain it.

Done</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>674465</commentid>
    <comment_count>11</comment_count>
      <attachid>153479</attachid>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2012-07-20 04:46:33 -0700</bug_when>
    <thetext>Comment on attachment 153479
Patch

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

&gt; Source/WebCore/rendering/style/RenderStyle.cpp:1490
&gt; +struct InstrumentedRenderStyle : public RefCounted&lt;InstrumentedRenderStyle&gt; {

I like the approach, but it puts additional burden to the developers. We need to agree on the approach in webkit-dev prior to proceeding.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>675835</commentid>
    <comment_count>12</comment_count>
      <attachid>153820</attachid>
    <who name="Alexei Filippov">alph</who>
    <bug_when>2012-07-23 11:18:27 -0700</bug_when>
    <thetext>Created attachment 153820
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>679300</commentid>
    <comment_count>13</comment_count>
      <attachid>153820</attachid>
    <who name="Yury Semikhatsky">yurys</who>
    <bug_when>2012-07-26 07:21:03 -0700</bug_when>
    <thetext>Comment on attachment 153820
Patch

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

&gt; Source/WebCore/rendering/style/RenderStyle.cpp:1507
&gt; +    COMPILE_ASSERT(sizeof(RenderStyle) == sizeof(InstrumentedRenderStyle), reportMemoryUsage_may_need_an_update);

Let&apos;s remove such checks as there were objections against the approach on webkit-dev. The validation tool that Ilya has been working on should give us enough confidence in the instrumentation code correctness.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>679312</commentid>
    <comment_count>14</comment_count>
      <attachid>153820</attachid>
    <who name="Alexei Filippov">alph</who>
    <bug_when>2012-07-26 07:35:39 -0700</bug_when>
    <thetext>Comment on attachment 153820
Patch

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

&gt;&gt; Source/WebCore/rendering/style/RenderStyle.cpp:1507
&gt;&gt; +    COMPILE_ASSERT(sizeof(RenderStyle) == sizeof(InstrumentedRenderStyle), reportMemoryUsage_may_need_an_update);
&gt; 
&gt; Let&apos;s remove such checks as there were objections against the approach on webkit-dev. The validation tool that Ilya has been working on should give us enough confidence in the instrumentation code correctness.

Ok. These checks are absent in the previous patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>679392</commentid>
    <comment_count>15</comment_count>
      <attachid>153471</attachid>
    <who name="Ilya Tikhonovsky">loislo</who>
    <bug_when>2012-07-26 09:07:43 -0700</bug_when>
    <thetext>Comment on attachment 153471
Patch

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

&gt; Source/WebCore/rendering/style/StyleRareNonInheritedData.cpp:300
&gt; +    info.addMember(m_flexibleBox.get());
&gt; +    info.addMember(m_marquee.get());
&gt; +    info.addMember(m_multiCol.get());
&gt; +    info.addMember(m_transform.get());

please remove .get() everywhere
and create a specialization of addMember for OwnPtr and RefPtr</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>679514</commentid>
    <comment_count>16</comment_count>
      <attachid>153471</attachid>
    <who name="Yury Semikhatsky">yurys</who>
    <bug_when>2012-07-26 10:55:54 -0700</bug_when>
    <thetext>Comment on attachment 153471
Patch

r- per Ilya&apos;s comment.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>679578</commentid>
    <comment_count>17</comment_count>
      <attachid>154702</attachid>
    <who name="Alexei Filippov">alph</who>
    <bug_when>2012-07-26 11:32:06 -0700</bug_when>
    <thetext>Created attachment 154702
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>679580</commentid>
    <comment_count>18</comment_count>
      <attachid>153471</attachid>
    <who name="Alexei Filippov">alph</who>
    <bug_when>2012-07-26 11:32:50 -0700</bug_when>
    <thetext>Comment on attachment 153471
Patch

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

&gt;&gt; Source/WebCore/rendering/style/StyleRareNonInheritedData.cpp:300
&gt;&gt; +    info.addMember(m_transform.get());
&gt; 
&gt; please remove .get() everywhere
&gt; and create a specialization of addMember for OwnPtr and RefPtr

Done</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>679703</commentid>
    <comment_count>19</comment_count>
      <attachid>154702</attachid>
    <who name="Ilya Tikhonovsky">loislo</who>
    <bug_when>2012-07-26 13:33:08 -0700</bug_when>
    <thetext>Comment on attachment 154702
Patch

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

&gt; Source/WebCore/dom/MemoryInstrumentation.h:119
&gt; +    template &lt;typename T&gt;
&gt; +    struct OwningTraits&lt;RefPtr&lt;T&gt; &gt; {
&gt; +        static void addInstrumentedMember(MemoryInstrumentation* instrumentation, const RefPtr&lt;T&gt;&amp; t) { instrumentation-&gt;addInstrumentedMember(t.get()); }
&gt; +        static void addMember(MemoryInstrumentation* instrumentation, const RefPtr&lt;T&gt;&amp; t, MemoryInstrumentation::ObjectType objectType) { instrumentation-&gt;addMember(t.get(), objectType); }
&gt; +    };
&gt; +
&gt;      template &lt;typename T&gt; void addInstrumentedMemberImpl(const T* const&amp;, OwningType);
&gt;      template &lt;typename T&gt; void addInstrumentedMemberImpl(const OwnPtr&lt;T&gt;* const&amp; object, MemoryInstrumentation::OwningType owningType) { addInstrumentedMemberImpl(object-&gt;get(), owningType); }
&gt;      template &lt;typename T&gt; void addInstrumentedMemberImpl(const RefPtr&lt;T&gt;* const&amp; object, MemoryInstrumentation::OwningType owningType) { addInstrumentedMemberImpl(object-&gt;get(), owningType); }

It would be simpler to add &apos;template &lt;typename T&gt; void addMemberImpl(const RefPtr&lt;T&gt;* const&amp; object,.....&apos; as I&apos;ve done for the instrumented members. It&apos;d cost us only 3 loc. and one line for the instrumented DataRef&lt;T&gt;

&gt; Source/WebCore/dom/Node.cpp:2804
&gt; +struct InstrumentedNode : public EventTarget, public ScriptWrappable, public TreeShared&lt;Node, ContainerNode&gt; {
&gt; +    uint32_t flags;
&gt; +    void* ptrs[4];
&gt; +};
&gt; +

please remove this.

&gt; Source/WebCore/dom/Node.cpp:2807
&gt; +    COMPILE_ASSERT(sizeof(Node) == sizeof(InstrumentedNode), reportMemoryUsage_may_need_an_update);

ditto</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>679818</commentid>
    <comment_count>20</comment_count>
      <attachid>154702</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2012-07-26 15:14:55 -0700</bug_when>
    <thetext>Comment on attachment 154702
Patch

Attachment 154702 did not pass mac-ews (mac):
Output: http://queues.webkit.org/results/13375020</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>680873</commentid>
    <comment_count>21</comment_count>
      <attachid>154702</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2012-07-27 11:39:11 -0700</bug_when>
    <thetext>Comment on attachment 154702
Patch

Attachment 154702 did not pass win-ews (win):
Output: http://queues.webkit.org/results/13367757</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>681876</commentid>
    <comment_count>22</comment_count>
      <attachid>155258</attachid>
    <who name="Alexei Filippov">alph</who>
    <bug_when>2012-07-30 04:47:29 -0700</bug_when>
    <thetext>Created attachment 155258
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>681883</commentid>
    <comment_count>23</comment_count>
      <attachid>154702</attachid>
    <who name="Alexei Filippov">alph</who>
    <bug_when>2012-07-30 04:50:36 -0700</bug_when>
    <thetext>Comment on attachment 154702
Patch

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

&gt; Source/WebCore/dom/MemoryInstrumentation.h:119
&gt;      template &lt;typename T&gt; void addInstrumentedMemberImpl(const RefPtr&lt;T&gt;* const&amp; object, MemoryInstrumentation::OwningType owningType) { addInstrumentedMemberImpl(object-&gt;get(), owningType); }

done

&gt;&gt; Source/WebCore/dom/Node.cpp:2804
&gt;&gt; +
&gt; 
&gt; please remove this.

done

&gt;&gt; Source/WebCore/dom/Node.cpp:2807
&gt;&gt; +    COMPILE_ASSERT(sizeof(Node) == sizeof(InstrumentedNode), reportMemoryUsage_may_need_an_update);
&gt; 
&gt; ditto

done</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>681897</commentid>
    <comment_count>24</comment_count>
      <attachid>155258</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2012-07-30 05:15:38 -0700</bug_when>
    <thetext>Comment on attachment 155258
Patch

Attachment 155258 did not pass mac-ews (mac):
Output: http://queues.webkit.org/results/13401026</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>681906</commentid>
    <comment_count>25</comment_count>
      <attachid>155258</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2012-07-30 05:26:01 -0700</bug_when>
    <thetext>Comment on attachment 155258
Patch

Attachment 155258 did not pass win-ews (win):
Output: http://queues.webkit.org/results/13393310</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>681913</commentid>
    <comment_count>26</comment_count>
      <attachid>155270</attachid>
    <who name="Alexei Filippov">alph</who>
    <bug_when>2012-07-30 05:34:52 -0700</bug_when>
    <thetext>Created attachment 155270
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>681937</commentid>
    <comment_count>27</comment_count>
      <attachid>155270</attachid>
    <who name="Ilya Tikhonovsky">loislo</who>
    <bug_when>2012-07-30 06:02:52 -0700</bug_when>
    <thetext>Comment on attachment 155270
Patch

lgtm</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>681978</commentid>
    <comment_count>28</comment_count>
      <attachid>155282</attachid>
    <who name="Alexei Filippov">alph</who>
    <bug_when>2012-07-30 06:50:45 -0700</bug_when>
    <thetext>Created attachment 155282
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>681979</commentid>
    <comment_count>29</comment_count>
    <who name="Alexei Filippov">alph</who>
    <bug_when>2012-07-30 06:51:19 -0700</bug_when>
    <thetext>rebaselined</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>682753</commentid>
    <comment_count>30</comment_count>
      <attachid>155282</attachid>
    <who name="Yury Semikhatsky">yurys</who>
    <bug_when>2012-07-30 23:19:44 -0700</bug_when>
    <thetext>Comment on attachment 155282
Patch

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

&gt; Source/WebCore/ChangeLog:6
&gt; +        Reviewed by NOBODY (OOPS!).

Please provide a brief description of the patch.

&gt; Source/WebCore/dom/MemoryInstrumentation.h:34
&gt; +#include &quot;DataRef.h&quot;

This way we will include Source/WebCore/rendering/style/DataRef.h into other parts of WebCore. Can we avoid this?

&gt; Source/WebCore/dom/MemoryInstrumentation.h:35
&gt; +#include &lt;stdio.h&gt;

Revert this.

&gt; Source/WebCore/rendering/style/RenderStyle.cpp:1504
&gt; +        info.addVector(*m_cachedPseudoStyles);

This call will not add sizeof(Vector). One way to fix this would be adding of a specialization for Vector* I think it would make sense as I faced similar problem while instrumenting StylePropertySet.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>683000</commentid>
    <comment_count>31</comment_count>
      <attachid>155523</attachid>
    <who name="Alexei Filippov">alph</who>
    <bug_when>2012-07-31 06:59:53 -0700</bug_when>
    <thetext>Created attachment 155523
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>683002</commentid>
    <comment_count>32</comment_count>
      <attachid>155282</attachid>
    <who name="Alexei Filippov">alph</who>
    <bug_when>2012-07-31 07:01:22 -0700</bug_when>
    <thetext>Comment on attachment 155282
Patch

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

&gt;&gt; Source/WebCore/ChangeLog:6
&gt;&gt; +        Reviewed by NOBODY (OOPS!).
&gt; 
&gt; Please provide a brief description of the patch.

done

&gt;&gt; Source/WebCore/dom/MemoryInstrumentation.h:34
&gt;&gt; +#include &quot;DataRef.h&quot;
&gt; 
&gt; This way we will include Source/WebCore/rendering/style/DataRef.h into other parts of WebCore. Can we avoid this?

done

&gt;&gt; Source/WebCore/dom/MemoryInstrumentation.h:35
&gt;&gt; +#include &lt;stdio.h&gt;
&gt; 
&gt; Revert this.

oops. done.

&gt;&gt; Source/WebCore/rendering/style/RenderStyle.cpp:1504
&gt;&gt; +        info.addVector(*m_cachedPseudoStyles);
&gt; 
&gt; This call will not add sizeof(Vector). One way to fix this would be adding of a specialization for Vector* I think it would make sense as I faced similar problem while instrumenting StylePropertySet.

fixed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>684155</commentid>
    <comment_count>33</comment_count>
      <attachid>155798</attachid>
    <who name="Alexei Filippov">alph</who>
    <bug_when>2012-08-01 06:46:41 -0700</bug_when>
    <thetext>Created attachment 155798
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>684156</commentid>
    <comment_count>34</comment_count>
    <who name="Alexei Filippov">alph</who>
    <bug_when>2012-08-01 06:47:10 -0700</bug_when>
    <thetext>rebaselined</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>684157</commentid>
    <comment_count>35</comment_count>
      <attachid>155798</attachid>
    <who name="Yury Semikhatsky">yurys</who>
    <bug_when>2012-08-01 06:48:08 -0700</bug_when>
    <thetext>Comment on attachment 155798
Patch

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

&gt; Source/WebCore/dom/MemoryInstrumentation.h:132
&gt; +    template &lt;typename T&gt; void addObjectImpl(const DataRef&lt;T&gt;* const&amp; object, ObjectType objectType, OwningType) { addObjectImpl(object-&gt;get(), objectType, byPointer); }

How does this compile given that you only have a forward declaration of DataRef?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>684159</commentid>
    <comment_count>36</comment_count>
      <attachid>155798</attachid>
    <who name="Alexei Filippov">alph</who>
    <bug_when>2012-08-01 06:50:33 -0700</bug_when>
    <thetext>Comment on attachment 155798
Patch

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

&gt;&gt; Source/WebCore/dom/MemoryInstrumentation.h:132
&gt;&gt; +    template &lt;typename T&gt; void addObjectImpl(const DataRef&lt;T&gt;* const&amp; object, ObjectType objectType, OwningType) { addObjectImpl(object-&gt;get(), objectType, byPointer); }
&gt; 
&gt; How does this compile given that you only have a forward declaration of DataRef?

At the place of template instantiation DataRef definition should be available.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>684164</commentid>
    <comment_count>37</comment_count>
      <attachid>155798</attachid>
    <who name="Yury Semikhatsky">yurys</who>
    <bug_when>2012-08-01 06:57:21 -0700</bug_when>
    <thetext>Comment on attachment 155798
Patch

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

&gt; Source/WebCore/dom/MemoryInstrumentation.h:286
&gt; +    if (!vector || visited(vector))

We should keep the old check in addition to the new one: visited(vector-&gt;data()) as several vectors may share same buffer.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>684169</commentid>
    <comment_count>38</comment_count>
      <attachid>155804</attachid>
    <who name="Alexei Filippov">alph</who>
    <bug_when>2012-08-01 07:02:38 -0700</bug_when>
    <thetext>Created attachment 155804
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>684170</commentid>
    <comment_count>39</comment_count>
      <attachid>155798</attachid>
    <who name="Alexei Filippov">alph</who>
    <bug_when>2012-08-01 07:03:12 -0700</bug_when>
    <thetext>Comment on attachment 155798
Patch

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

&gt;&gt; Source/WebCore/dom/MemoryInstrumentation.h:286
&gt;&gt; +    if (!vector || visited(vector))
&gt; 
&gt; We should keep the old check in addition to the new one: visited(vector-&gt;data()) as several vectors may share same buffer.

ok</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>684172</commentid>
    <comment_count>40</comment_count>
      <attachid>155805</attachid>
    <who name="Alexei Filippov">alph</who>
    <bug_when>2012-08-01 07:05:58 -0700</bug_when>
    <thetext>Created attachment 155805
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>685004</commentid>
    <comment_count>41</comment_count>
      <attachid>155805</attachid>
    <who name="Yury Semikhatsky">yurys</who>
    <bug_when>2012-08-01 23:16:39 -0700</bug_when>
    <thetext>Comment on attachment 155805
Patch

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

&gt; Source/WebCore/dom/MemoryInstrumentation.h:286
&gt; +    if (!vector || visited(vector) || !vector-&gt;data() || visited(vector-&gt;data()))

I think we should return immediately  if (!vector || visited(vector))
but otherwise even if vector-&gt;data() is already visited it would make
sense to add size of Vector itself if it is referenced by a pointer.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>685188</commentid>
    <comment_count>42</comment_count>
      <attachid>156030</attachid>
    <who name="Alexei Filippov">alph</who>
    <bug_when>2012-08-02 03:49:23 -0700</bug_when>
    <thetext>Created attachment 156030
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>685190</commentid>
    <comment_count>43</comment_count>
      <attachid>155805</attachid>
    <who name="Alexei Filippov">alph</who>
    <bug_when>2012-08-02 03:50:45 -0700</bug_when>
    <thetext>Comment on attachment 155805
Patch

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

+ rebaselining

&gt;&gt; Source/WebCore/dom/MemoryInstrumentation.h:286
&gt;&gt; +    if (!vector || visited(vector) || !vector-&gt;data() || visited(vector-&gt;data()))
&gt; 
&gt; I think we should return immediately  if (!vector || visited(vector))
&gt; but otherwise even if vector-&gt;data() is already visited it would make
&gt; sense to add size of Vector itself if it is referenced by a pointer.

removed this part from the patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>685346</commentid>
    <comment_count>44</comment_count>
      <attachid>156030</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-08-02 07:15:16 -0700</bug_when>
    <thetext>Comment on attachment 156030
Patch

Clearing flags on attachment: 156030

Committed r124452: &lt;http://trac.webkit.org/changeset/124452&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>685347</commentid>
    <comment_count>45</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-08-02 07:15:25 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>153306</attachid>
            <date>2012-07-19 10:53:41 -0700</date>
            <delta_ts>2012-07-20 04:29:52 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-91759-20120719215340.patch</filename>
            <type>text/plain</type>
            <size>10505</size>
            <attacher name="Alexei Filippov">alph</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTIzMTIwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggY2JhYTIwNzY3NjczNzRm
NGI0MjU5MWU4NDMzMDlkZjM5NDBiOTc1NC4uNTkzNGQ5ZjI1ZGMxM2RmYjliYmM3N2U1NTZhNWJk
YjQzM2MzMGY1MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMzIEBACisyMDEyLTA3LTE5ICBBbGV4
ZWkgRmlsaXBwb3YgIDxhbGV4ZWlmQGNocm9taXVtLm9yZz4KKworICAgICAgICBXZWIgSW5zcGVj
dG9yOiBjb3VudCBSZW5kZXJTdHlsZSBvYmplY3RzIGluIHRoZSBuYXRpdmUgbWVtb3J5IHByb2Zp
bGVyCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05MTc1
OQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogYmlu
ZGluZ3MvdjgvU2NyaXB0V3JhcHBhYmxlLmg6CisgICAgICAgICogZG9tL05vZGUuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6Tm9kZTo6cmVwb3J0TWVtb3J5VXNhZ2UpOgorICAgICAgICAqIGRvbS9O
b2RlLmg6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKiByZW5kZXJpbmcvc3R5bGUvUmVu
ZGVyU3R5bGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyU3R5bGU6OnJlcG9ydE1lbW9y
eVVzYWdlKToKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAqIHJlbmRlcmluZy9zdHlsZS9S
ZW5kZXJTdHlsZS5oOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgICogcmVuZGVyaW5nL3N0
eWxlL1N0eWxlUmFyZUluaGVyaXRlZERhdGEuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U3R5bGVS
YXJlSW5oZXJpdGVkRGF0YTo6cmVwb3J0TWVtb3J5VXNhZ2UpOgorICAgICAgICAoV2ViQ29yZSk6
CisgICAgICAgICogcmVuZGVyaW5nL3N0eWxlL1N0eWxlUmFyZUluaGVyaXRlZERhdGEuaDoKKyAg
ICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoU3R5bGVSYXJlSW5oZXJpdGVkRGF0YSk6CisgICAg
ICAgICogcmVuZGVyaW5nL3N0eWxlL1N0eWxlUmFyZU5vbkluaGVyaXRlZERhdGEuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6U3R5bGVSYXJlTm9uSW5oZXJpdGVkRGF0YTo6cmVwb3J0TWVtb3J5VXNh
Z2UpOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgICogcmVuZGVyaW5nL3N0eWxlL1N0eWxl
UmFyZU5vbkluaGVyaXRlZERhdGEuaDoKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoU3R5
bGVSYXJlTm9uSW5oZXJpdGVkRGF0YSk6CisKIDIwMTItMDctMTkgIFNjb3R0IEdyYWhhbSAgPHNj
b3R0bWdAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFVzZSBuYXRpdmUgKG5vbi1jeWd3aW4pIGJp
bmFyaWVzIGZvciBwZXJsLCBncGVyZiwgYW5kIGJpc29uIGluIENocm9taXVtCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9TY3JpcHRXcmFwcGFibGUuaCBiL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL3Y4L1NjcmlwdFdyYXBwYWJsZS5oCmluZGV4IGVmMmY3NjE5ZjI0NTEx
MDY1N2M3YWUwYTViYTAyZWRjMDRkNmZmNjkuLjY0YTkwNTM5MjhhNjBlMTUwODIxNjQ3NjA0Mjg1
NmIyYTdjM2QwMzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1Njcmlw
dFdyYXBwYWJsZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1NjcmlwdFdyYXBw
YWJsZS5oCkBAIC0zMSw2ICszMSw3IEBACiAjaWZuZGVmIFNjcmlwdFdyYXBwYWJsZV9oCiAjZGVm
aW5lIFNjcmlwdFdyYXBwYWJsZV9oCiAKKyNpbmNsdWRlICJNZW1vcnlJbnN0cnVtZW50YXRpb24u
aCIKICNpbmNsdWRlIDx2OC5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9kb20vTm9kZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZS5jcHAK
aW5kZXggOGZkNmQ1YzRmMjYwMGNhYTk2YzA1YTViODJlZjg5MzVhMGQ1NjFjMS4uYTU4MTBlMzQx
YTA3M2U0NDFiZjMwNzcxYTc3NWE1NmJmYjM2YmNkMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvZG9tL05vZGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlLmNwcApAQCAtNjcs
NiArNjcsNyBAQAogI2luY2x1ZGUgIktleWJvYXJkRXZlbnQuaCIKICNpbmNsdWRlICJMYWJlbHNO
b2RlTGlzdC5oIgogI2luY2x1ZGUgIkxvZ2dpbmcuaCIKKyNpbmNsdWRlICJNZW1vcnlJbnN0cnVt
ZW50YXRpb24uaCIKICNpbmNsdWRlICJNb3VzZUV2ZW50LmgiCiAjaW5jbHVkZSAiTXV0YXRpb25F
dmVudC5oIgogI2luY2x1ZGUgIk5hbWVOb2RlTGlzdC5oIgpAQCAtMjc1OSw2ICsyNzYwLDggQEAg
dm9pZCBOb2RlOjpyZXBvcnRNZW1vcnlVc2FnZShNZW1vcnlPYmplY3RJbmZvKiBtZW1vcnlPYmpl
Y3RJbmZvKSBjb25zdAogICAgIGluZm8uYWRkSW5zdHJ1bWVudGVkTWVtYmVyKG1fZG9jdW1lbnQp
OwogICAgIGluZm8uYWRkSW5zdHJ1bWVudGVkTWVtYmVyKG1fbmV4dCk7CiAgICAgaW5mby5hZGRJ
bnN0cnVtZW50ZWRNZW1iZXIobV9wcmV2aW91cyk7CisgICAgaWYgKG1fcmVuZGVyZXIpCisgICAg
ICAgIGluZm8uYWRkSW5zdHJ1bWVudGVkTWVtYmVyKG1fcmVuZGVyZXItPnN0eWxlKCkpOwogfQog
CiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20v
Tm9kZS5oIGIvU291cmNlL1dlYkNvcmUvZG9tL05vZGUuaAppbmRleCBjOWEyOGY0OWQyZTBmNTAy
ZTY3ODJlOTY3ZjQxMDU2MzM3MjEwMzhlLi5iOGFiYTk4MjFlMzZlNDRmYzU5MjE1ZGVlYTRlNTNl
ODYyYWE2ODQ3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZS5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2RvbS9Ob2RlLmgKQEAgLTI5LDcgKzI5LDYgQEAKICNpbmNsdWRlICJFdmVu
dFRhcmdldC5oIgogI2luY2x1ZGUgIktVUkxIYXNoLmgiCiAjaW5jbHVkZSAiTGF5b3V0VHlwZXMu
aCIKLSNpbmNsdWRlICJNZW1vcnlJbnN0cnVtZW50YXRpb24uaCIKICNpbmNsdWRlICJNdXRhdGlv
bk9ic2VydmVyLmgiCiAjaW5jbHVkZSAiUmVuZGVyU3R5bGVDb25zdGFudHMuaCIKICNpbmNsdWRl
ICJTY3JpcHRXcmFwcGFibGUuaCIKQEAgLTY2LDYgKzY1LDcgQEAgY2xhc3MgRnJhbWU7CiBjbGFz
cyBIVE1MSW5wdXRFbGVtZW50OwogY2xhc3MgSW50UmVjdDsKIGNsYXNzIEtleWJvYXJkRXZlbnQ7
CitjbGFzcyBNZW1vcnlPYmplY3RJbmZvOwogY2xhc3MgTlNSZXNvbHZlcjsKIGNsYXNzIE5hbWVk
Tm9kZU1hcDsKIGNsYXNzIE5hbWVOb2RlTGlzdDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvc3R5bGUvUmVuZGVyU3R5bGUuY3BwCmluZGV4IDhlNWE5MGU4Y2ZkZGIxNTQwODc2MWI5Mjcy
Y2FlODg2OTFlOGE3OTguLjc2NTBmZDA5YzQ3ZTk0MjliMjVmNjMyNzlhNTkwMDk3NTIyNTNkNTUg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZS5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlLmNwcApA
QCAtMjgsNiArMjgsNyBAQAogI2luY2x1ZGUgIkNTU1Byb3BlcnR5TmFtZXMuaCIKICNpbmNsdWRl
ICJDU1NXcmFwU2hhcGVzLmgiCiAjaW5jbHVkZSAiRm9udFNlbGVjdG9yLmgiCisjaW5jbHVkZSAi
TWVtb3J5SW5zdHJ1bWVudGF0aW9uLmgiCiAjaW5jbHVkZSAiUXVvdGVzRGF0YS5oIgogI2luY2x1
ZGUgIlJlbmRlckFyZW5hLmgiCiAjaW5jbHVkZSAiUmVuZGVyT2JqZWN0LmgiCkBAIC0xNDg2LDQg
KzE0ODcsMjQgQEAgTGF5b3V0Qm94RXh0ZW50IFJlbmRlclN0eWxlOjppbWFnZU91dHNldHMoY29u
c3QgTmluZVBpZWNlSW1hZ2UmIGltYWdlKSBjb25zdAogICAgICAgICAgICAgICAgICAgICAgICAg
ICAgTmluZVBpZWNlSW1hZ2U6OmNvbXB1dGVPdXRzZXQoaW1hZ2Uub3V0c2V0KCkubGVmdCgpLCBi
b3JkZXJMZWZ0V2lkdGgoKSkpOwogfQogCit2b2lkIFJlbmRlclN0eWxlOjpyZXBvcnRNZW1vcnlV
c2FnZShNZW1vcnlPYmplY3RJbmZvKiBtZW1vcnlPYmplY3RJbmZvKSBjb25zdAoreworICAgIE1l
bW9yeUNsYXNzSW5mbzxSZW5kZXJTdHlsZT4gaW5mbyhtZW1vcnlPYmplY3RJbmZvLCB0aGlzLCBN
ZW1vcnlJbnN0cnVtZW50YXRpb246OkNTUyk7CisgICAgaW5mby5hZGRNZW1iZXIobV9ib3guZ2V0
KCkpOworICAgIGluZm8uYWRkTWVtYmVyKHZpc3VhbC5nZXQoKSk7CisgICAgLy8gRklYTUU6IG1f
YmFja2dyb3VuZCBjb250YWlucyBSZWZQdHI8U3R5bGVJbWFnZT4gdGhhdCBtaWdodCBuZWVkIHRv
IGJlIGluc3RydW1lbnRlZC4KKyAgICBpbmZvLmFkZE1lbWJlcihtX2JhY2tncm91bmQuZ2V0KCkp
OworICAgIC8vIEZJWE1FOiBzdXJyb25kIGNvbnRhaW5zIHNvbWUgZmllbGRzIGUuZy4gQm9yZGVy
RGF0YSB0aGF0IG1pZ2h0IG5lZWQgdG8gYmUgaW5zdHJ1bWVudGVkLgorICAgIGluZm8uYWRkTWVt
YmVyKHN1cnJvdW5kLmdldCgpKTsKKyAgICBpbmZvLmFkZEluc3RydW1lbnRlZE1lbWJlcihyYXJl
Tm9uSW5oZXJpdGVkRGF0YS5nZXQoKSk7CisgICAgaW5mby5hZGRJbnN0cnVtZW50ZWRNZW1iZXIo
cmFyZUluaGVyaXRlZERhdGEuZ2V0KCkpOworICAgIC8vIEZJWE1FOiBpbmhlcml0ZWQgY29udGFp
bnMgU3R5bGVJbWFnZSBhbmQgRm9udCBmaWVsZHMgdGhhdCBtaWdodCBuZWVkIHRvIGJlIGluc3Ry
dW1lbnRlZC4KKyAgICBpbmZvLmFkZE1lbWJlcihpbmhlcml0ZWQuZ2V0KCkpOworICAgIGlmICht
X2NhY2hlZFBzZXVkb1N0eWxlcykKKyAgICAgICAgaW5mby5hZGRWZWN0b3IoKm1fY2FjaGVkUHNl
dWRvU3R5bGVzKTsKKyNpZiBFTkFCTEUoU1ZHKQorICAgIGluZm8uYWRkTWVtYmVyKG1fc3ZnU3R5
bGUpOworI2VuZGlmCit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZS5oIGIvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlLmgKaW5kZXggNWU4YTEyYzk1ZmY1NjNlYWYy
ZmU4YjBhNzI5ZDA1ZjA3MjZlNGY0Ni4uMzZjNWJmMDdkMzJlYWYzYzViYTNlNDk3NWI5MDJjNWUx
Yjg2OWY0NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1JlbmRl
clN0eWxlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxl
LmgKQEAgLTEwNSw2ICsxMDUsNyBAQCBjbGFzcyBCb3JkZXJEYXRhOwogY2xhc3MgQ291bnRlckNv
bnRlbnQ7CiBjbGFzcyBDdXJzb3JMaXN0OwogY2xhc3MgSW50UmVjdDsKK2NsYXNzIE1lbW9yeU9i
amVjdEluZm87CiBjbGFzcyBQYWlyOwogY2xhc3MgU2hhZG93RGF0YTsKIGNsYXNzIFN0eWxlSW1h
Z2U7CkBAIC0xNTQxLDYgKzE1NDIsOCBAQCBwdWJsaWM6CiAKICAgICB2b2lkIHNldEhhc0V4cGxp
Y2l0bHlJbmhlcml0ZWRQcm9wZXJ0aWVzKCkgeyBtX2JpdGZpZWxkcy5zZXRFeHBsaWNpdEluaGVy
aXRhbmNlKHRydWUpOyB9CiAgICAgYm9vbCBoYXNFeHBsaWNpdGx5SW5oZXJpdGVkUHJvcGVydGll
cygpIGNvbnN0IHsgcmV0dXJuIG1fYml0ZmllbGRzLmV4cGxpY2l0SW5oZXJpdGFuY2UoKTsgfQor
CisgICAgdm9pZCByZXBvcnRNZW1vcnlVc2FnZShNZW1vcnlPYmplY3RJbmZvKikgY29uc3Q7CiAg
ICAgCiAgICAgLy8gSW5pdGlhbCB2YWx1ZXMgZm9yIGFsbCB0aGUgcHJvcGVydGllcwogICAgIHN0
YXRpYyBFQm9yZGVyQ29sbGFwc2UgaW5pdGlhbEJvcmRlckNvbGxhcHNlKCkgeyByZXR1cm4gQlNF
UEFSQVRFOyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvU3R5
bGVSYXJlSW5oZXJpdGVkRGF0YS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUv
U3R5bGVSYXJlSW5oZXJpdGVkRGF0YS5jcHAKaW5kZXggOTdkZTQyZDNjMzVhOWFkOWFjYTRiNTJm
MmVlNGUyMDY4ZWRlZDI4ZC4uZDE0ZWU1YWI4YTNkYjg2ZWE0OWNlZmU3NjhmZTAxMmJiZjNlZTY4
MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1N0eWxlUmFyZUlu
aGVyaXRlZERhdGEuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9TdHls
ZVJhcmVJbmhlcml0ZWREYXRhLmNwcApAQCAtMjMsNiArMjMsNyBAQAogI2luY2x1ZGUgIlN0eWxl
UmFyZUluaGVyaXRlZERhdGEuaCIKIAogI2luY2x1ZGUgIkN1cnNvckxpc3QuaCIKKyNpbmNsdWRl
ICJNZW1vcnlJbnN0cnVtZW50YXRpb24uaCIKICNpbmNsdWRlICJRdW90ZXNEYXRhLmgiCiAjaW5j
bHVkZSAiUmVuZGVyU3R5bGUuaCIKICNpbmNsdWRlICJSZW5kZXJTdHlsZUNvbnN0YW50cy5oIgpA
QCAtMjYxLDQgKzI2MiwyMCBAQCBib29sIFN0eWxlUmFyZUluaGVyaXRlZERhdGE6OnNoYWRvd0Rh
dGFFcXVpdmFsZW50KGNvbnN0IFN0eWxlUmFyZUluaGVyaXRlZERhdGEmCiAgICAgcmV0dXJuIHRy
dWU7CiB9CiAKK3ZvaWQgU3R5bGVSYXJlSW5oZXJpdGVkRGF0YTo6cmVwb3J0TWVtb3J5VXNhZ2Uo
TWVtb3J5T2JqZWN0SW5mbyogbWVtb3J5T2JqZWN0SW5mbykgY29uc3QKK3sKKyAgICBNZW1vcnlD
bGFzc0luZm88U3R5bGVSYXJlSW5oZXJpdGVkRGF0YT4gaW5mbyhtZW1vcnlPYmplY3RJbmZvLCB0
aGlzLCBNZW1vcnlJbnN0cnVtZW50YXRpb246OkNTUyk7CisgICAgaW5mby5hZGRNZW1iZXIodGV4
dFNoYWRvdy5nZXQoKSk7CisgICAgaW5mby5hZGRTdHJpbmcoaGlnaGxpZ2h0KTsKKyAgICBpbmZv
LmFkZE1lbWJlcihjdXJzb3JEYXRhLmdldCgpKTsKKyAgICBpbmZvLmFkZFN0cmluZyhoeXBoZW5h
dGlvblN0cmluZyk7CisgICAgaW5mby5hZGRTdHJpbmcobG9jYWxlKTsKKyAgICBpbmZvLmFkZFN0
cmluZyh0ZXh0RW1waGFzaXNDdXN0b21NYXJrKTsKKyAgICBpbmZvLmFkZE1lbWJlcihxdW90ZXMu
Z2V0KCkpOworICAgIGluZm8uYWRkU3RyaW5nKG1fbGluZUdyaWQpOworI2lmIEVOQUJMRShDU1Nf
VkFSSUFCTEVTKQorICAgIGluZm8uYWRkTWVtYmVyKG1fdmFyaWFibGVzLmdldCgpKTsKKyNlbmRp
ZgorfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvc3R5bGUvU3R5bGVSYXJlSW5oZXJpdGVkRGF0YS5oIGIvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL3N0eWxlL1N0eWxlUmFyZUluaGVyaXRlZERhdGEuaAppbmRleCBiMzA5ODJk
Zjk3YjFjZTI2MmVkNzJkZGU3MDE3ZmU4ZjhlNWU1YWMwLi5iYjQzM2VkMjc2Y2FkYjUyODQ4NWEz
M2RmNDQzYjFmYWI1ZGQ1YmE4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
c3R5bGUvU3R5bGVSYXJlSW5oZXJpdGVkRGF0YS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9zdHlsZS9TdHlsZVJhcmVJbmhlcml0ZWREYXRhLmgKQEAgLTM5LDYgKzM5LDcgQEAKIG5h
bWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgQ3Vyc29yTGlzdDsKK2NsYXNzIE1lbW9yeU9iamVj
dEluZm87CiBjbGFzcyBRdW90ZXNEYXRhOwogY2xhc3MgU2hhZG93RGF0YTsKIApAQCAtNTgsNiAr
NTksOCBAQCBwdWJsaWM6CiAgICAgfQogICAgIGJvb2wgc2hhZG93RGF0YUVxdWl2YWxlbnQoY29u
c3QgU3R5bGVSYXJlSW5oZXJpdGVkRGF0YSYpIGNvbnN0OwogCisgICAgdm9pZCByZXBvcnRNZW1v
cnlVc2FnZShNZW1vcnlPYmplY3RJbmZvKikgY29uc3Q7CisKICAgICBDb2xvciB0ZXh0U3Ryb2tl
Q29sb3I7CiAgICAgZmxvYXQgdGV4dFN0cm9rZVdpZHRoOwogICAgIENvbG9yIHRleHRGaWxsQ29s
b3I7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvU3R5bGVSYXJl
Tm9uSW5oZXJpdGVkRGF0YS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvU3R5
bGVSYXJlTm9uSW5oZXJpdGVkRGF0YS5jcHAKaW5kZXggMjJiMzI3MmU4YzM3ZDIxZWUzNjQ5YzBh
NDVhN2Q0M2Q1MTIxMDQ0ZC4uZGU0MWYzMzhmMTY4OWE2MzhiYWQxYmFmMGFkNmQzNjBiYWE1ZDhk
YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1N0eWxlUmFyZU5v
bkluaGVyaXRlZERhdGEuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9T
dHlsZVJhcmVOb25Jbmhlcml0ZWREYXRhLmNwcApAQCAtMjMsNiArMjMsNyBAQAogI2luY2x1ZGUg
IlN0eWxlUmFyZU5vbkluaGVyaXRlZERhdGEuaCIKIAogI2luY2x1ZGUgIkNvbnRlbnREYXRhLmgi
CisjaW5jbHVkZSAiTWVtb3J5SW5zdHJ1bWVudGF0aW9uLmgiCiAjaW5jbHVkZSAiUmVuZGVyQ291
bnRlci5oIgogI2luY2x1ZGUgIlJlbmRlclN0eWxlLmgiCiAjaW5jbHVkZSAiU2hhZG93RGF0YS5o
IgpAQCAtMjg2LDQgKzI4NywzMiBAQCBib29sIFN0eWxlUmFyZU5vbkluaGVyaXRlZERhdGE6OnRy
YW5zaXRpb25EYXRhRXF1aXZhbGVudChjb25zdCBTdHlsZVJhcmVOb25JbmhlcgogICAgIHJldHVy
biB0cnVlOwogfQogCit2b2lkIFN0eWxlUmFyZU5vbkluaGVyaXRlZERhdGE6OnJlcG9ydE1lbW9y
eVVzYWdlKE1lbW9yeU9iamVjdEluZm8qIG1lbW9yeU9iamVjdEluZm8pIGNvbnN0Cit7CisgICAg
TWVtb3J5Q2xhc3NJbmZvPFN0eWxlUmFyZU5vbkluaGVyaXRlZERhdGE+IGluZm8obWVtb3J5T2Jq
ZWN0SW5mbywgdGhpcywgTWVtb3J5SW5zdHJ1bWVudGF0aW9uOjpDU1MpOworI2lmIEVOQUJMRShE
QVNIQk9BUkRfU1VQUE9SVCkKKyAgICBpbmZvLmFkZFZlY3RvcihtX2Rhc2hib2FyZFJlZ2lvbnMp
OworI2VuZGlmCisgICAgaW5mby5hZGRNZW1iZXIobV9kZXByZWNhdGVkRmxleGlibGVCb3guZ2V0
KCkpOworICAgIGluZm8uYWRkTWVtYmVyKG1fZmxleGlibGVCb3guZ2V0KCkpOworICAgIGluZm8u
YWRkTWVtYmVyKG1fbWFycXVlZS5nZXQoKSk7CisgICAgaW5mby5hZGRNZW1iZXIobV9tdWx0aUNv
bC5nZXQoKSk7CisgICAgaW5mby5hZGRNZW1iZXIobV90cmFuc2Zvcm0uZ2V0KCkpOworI2lmIEVO
QUJMRShDU1NfRklMVEVSUykKKyAgICBpbmZvLmFkZE1lbWJlcihtX2ZpbHRlci5nZXQoKSk7Cisj
ZW5kaWYKKyAgICBpbmZvLmFkZE1lbWJlcihtX2dyaWQuZ2V0KCkpOworICAgIGluZm8uYWRkTWVt
YmVyKG1fZ3JpZEl0ZW0uZ2V0KCkpOworICAgIGluZm8uYWRkTWVtYmVyKG1fY29udGVudC5nZXQo
KSk7CisgICAgaW5mby5hZGRNZW1iZXIobV9jb3VudGVyRGlyZWN0aXZlcy5nZXQoKSk7CisgICAg
aW5mby5hZGRNZW1iZXIobV9ib3hTaGFkb3cuZ2V0KCkpOworICAgIGluZm8uYWRkTWVtYmVyKG1f
Ym94UmVmbGVjdC5nZXQoKSk7CisgICAgaW5mby5hZGRNZW1iZXIobV9hbmltYXRpb25zLmdldCgp
KTsKKyAgICBpbmZvLmFkZE1lbWJlcihtX3RyYW5zaXRpb25zLmdldCgpKTsKKyAgICBpbmZvLmFk
ZE1lbWJlcihtX3dyYXBTaGFwZUluc2lkZS5nZXQoKSk7CisgICAgaW5mby5hZGRNZW1iZXIobV93
cmFwU2hhcGVPdXRzaWRlLmdldCgpKTsKKyAgICBpbmZvLmFkZFN0cmluZyhtX2Zsb3dUaHJlYWQp
OworICAgIGluZm8uYWRkU3RyaW5nKG1fcmVnaW9uVGhyZWFkKTsKK30KKwogfSAvLyBuYW1lc3Bh
Y2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1N0
eWxlUmFyZU5vbkluaGVyaXRlZERhdGEuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHls
ZS9TdHlsZVJhcmVOb25Jbmhlcml0ZWREYXRhLmgKaW5kZXggNWU2ZmRlMmE2MTdjZjM5NTI1ZTU1
N2JkOTA5ODY2MjIxNGU4Y2JlZS4uMGZlNmU1OGM2MzNiY2NhOWJjMmI0ZTc3ZmQzYjIwNjBlM2Q3
NmQ0ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1N0eWxlUmFy
ZU5vbkluaGVyaXRlZERhdGEuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUv
U3R5bGVSYXJlTm9uSW5oZXJpdGVkRGF0YS5oCkBAIC0zOSw2ICszOSw3IEBACiBuYW1lc3BhY2Ug
V2ViQ29yZSB7CiAKIGNsYXNzIEFuaW1hdGlvbkxpc3Q7CitjbGFzcyBNZW1vcnlPYmplY3RJbmZv
OwogY2xhc3MgU2hhZG93RGF0YTsKIGNsYXNzIFN0eWxlRGVwcmVjYXRlZEZsZXhpYmxlQm94RGF0
YTsKICNpZiBFTkFCTEUoQ1NTX0ZJTFRFUlMpCkBAIC04OSw2ICs5MCw4IEBAIHB1YmxpYzoKICAg
ICBib29sIGFuaW1hdGlvbkRhdGFFcXVpdmFsZW50KGNvbnN0IFN0eWxlUmFyZU5vbkluaGVyaXRl
ZERhdGEmKSBjb25zdDsKICAgICBib29sIHRyYW5zaXRpb25EYXRhRXF1aXZhbGVudChjb25zdCBT
dHlsZVJhcmVOb25Jbmhlcml0ZWREYXRhJikgY29uc3Q7CiAKKyAgICB2b2lkIHJlcG9ydE1lbW9y
eVVzYWdlKE1lbW9yeU9iamVjdEluZm8qKSBjb25zdDsKKwogICAgIGZsb2F0IG9wYWNpdHk7IC8v
IFdoZXRoZXIgb3Igbm90IHdlJ3JlIHRyYW5zcGFyZW50LgogCiAgICAgZmxvYXQgbV9hc3BlY3RS
YXRpb0Rlbm9taW5hdG9yOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>153471</attachid>
            <date>2012-07-20 03:52:19 -0700</date>
            <delta_ts>2012-07-26 11:32:50 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-91759-20120720145214.patch</filename>
            <type>text/plain</type>
            <size>10956</size>
            <attacher name="Alexei Filippov">alph</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTIzMjAwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNjU0NDViMjI1Mjc5MTc0
YmVhNmE4MjYyNTQ0NjhiMGJkZTdjM2ZjNi4uOGE1ZmQ2NTg0NzIyMzU4ZmQ0ZGQ0MzJlYTEwZTI2
M2VlODE5ZWM2NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMzIEBACisyMDEyLTA3LTE5ICBBbGV4
ZWkgRmlsaXBwb3YgIDxhbGV4ZWlmQGNocm9taXVtLm9yZz4KKworICAgICAgICBXZWIgSW5zcGVj
dG9yOiBjb3VudCBSZW5kZXJTdHlsZSBvYmplY3RzIGluIHRoZSBuYXRpdmUgbWVtb3J5IHByb2Zp
bGVyCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05MTc1
OQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogYmlu
ZGluZ3MvdjgvU2NyaXB0V3JhcHBhYmxlLmg6CisgICAgICAgICogZG9tL05vZGUuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6Tm9kZTo6cmVwb3J0TWVtb3J5VXNhZ2UpOgorICAgICAgICAqIGRvbS9O
b2RlLmg6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKiByZW5kZXJpbmcvc3R5bGUvUmVu
ZGVyU3R5bGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyU3R5bGU6OnJlcG9ydE1lbW9y
eVVzYWdlKToKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAqIHJlbmRlcmluZy9zdHlsZS9S
ZW5kZXJTdHlsZS5oOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgICogcmVuZGVyaW5nL3N0
eWxlL1N0eWxlUmFyZUluaGVyaXRlZERhdGEuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U3R5bGVS
YXJlSW5oZXJpdGVkRGF0YTo6cmVwb3J0TWVtb3J5VXNhZ2UpOgorICAgICAgICAoV2ViQ29yZSk6
CisgICAgICAgICogcmVuZGVyaW5nL3N0eWxlL1N0eWxlUmFyZUluaGVyaXRlZERhdGEuaDoKKyAg
ICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoU3R5bGVSYXJlSW5oZXJpdGVkRGF0YSk6CisgICAg
ICAgICogcmVuZGVyaW5nL3N0eWxlL1N0eWxlUmFyZU5vbkluaGVyaXRlZERhdGEuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6U3R5bGVSYXJlTm9uSW5oZXJpdGVkRGF0YTo6cmVwb3J0TWVtb3J5VXNh
Z2UpOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgICogcmVuZGVyaW5nL3N0eWxlL1N0eWxl
UmFyZU5vbkluaGVyaXRlZERhdGEuaDoKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoU3R5
bGVSYXJlTm9uSW5oZXJpdGVkRGF0YSk6CisKIDIwMTItMDctMjAgIEV1Z2VuZSBLbHl1Y2huaWtv
diAgPGV1c3Rhcy5iaWdAZ21haWwuY29tPgogCiAgICAgICAgIFdlYiBJbnNwZWN0b3I6IFRpbWVs
aW5lOiBmb3J3YXJkIGNvbXBhdGliaWxpdHkgZm9yIGxvYWQuCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9qcy9TY3JpcHRXcmFwcGFibGUuaCBiL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL2pzL1NjcmlwdFdyYXBwYWJsZS5oCmluZGV4IDNjYjVkODE2YzExMWI4MDdmYTA2OTdh
NjdjZDlmOWE5NjQyZDA1ZTcuLjBjZjJkN2ExNmM0ZWUwOGRjNDUzMDQ5MmUxMjQzMTQwZThmOWI1
OTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1NjcmlwdFdyYXBwYWJs
ZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1NjcmlwdFdyYXBwYWJsZS5oCkBA
IC0zMiw2ICszMiw3IEBACiAjZGVmaW5lIFNjcmlwdFdyYXBwYWJsZV9oCiAKICNpbmNsdWRlICJK
U0RPTVdyYXBwZXIuaCIKKyNpbmNsdWRlICJNZW1vcnlJbnN0cnVtZW50YXRpb24uaCIKICNpbmNs
dWRlIDxoZWFwL1dlYWsuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvU2NyaXB0V3JhcHBhYmxlLmggYi9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy92OC9TY3JpcHRXcmFwcGFibGUuaAppbmRleCBlZjJmNzYxOWYyNDUxMTA2NTdj
N2FlMGE1YmEwMmVkYzA0ZDZmZjY5Li42NGE5MDUzOTI4YTYwZTE1MDgyMTY0NzYwNDI4NTZiMmE3
YzNkMDMwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9TY3JpcHRXcmFw
cGFibGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9TY3JpcHRXcmFwcGFibGUu
aApAQCAtMzEsNiArMzEsNyBAQAogI2lmbmRlZiBTY3JpcHRXcmFwcGFibGVfaAogI2RlZmluZSBT
Y3JpcHRXcmFwcGFibGVfaAogCisjaW5jbHVkZSAiTWVtb3J5SW5zdHJ1bWVudGF0aW9uLmgiCiAj
aW5jbHVkZSA8djguaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvZG9tL05vZGUuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL05vZGUuY3BwCmluZGV4
IGI1OWYzNzk4Y2VlNDRkNWMyZmJjOTFiMDMzZGJkNzZiZjcwYzY0NDcuLjMyOTY5NzI0Njc3NjZk
ODk5NjU4YzE5NmI5ZmE1ZWNjZjU0NTQ2OWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Rv
bS9Ob2RlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZS5jcHAKQEAgLTY3LDYgKzY3
LDcgQEAKICNpbmNsdWRlICJLZXlib2FyZEV2ZW50LmgiCiAjaW5jbHVkZSAiTGFiZWxzTm9kZUxp
c3QuaCIKICNpbmNsdWRlICJMb2dnaW5nLmgiCisjaW5jbHVkZSAiTWVtb3J5SW5zdHJ1bWVudGF0
aW9uLmgiCiAjaW5jbHVkZSAiTW91c2VFdmVudC5oIgogI2luY2x1ZGUgIk11dGF0aW9uRXZlbnQu
aCIKICNpbmNsdWRlICJOYW1lTm9kZUxpc3QuaCIKQEAgLTI3MjUsNiArMjcyNiw4IEBAIHZvaWQg
Tm9kZTo6cmVwb3J0TWVtb3J5VXNhZ2UoTWVtb3J5T2JqZWN0SW5mbyogbWVtb3J5T2JqZWN0SW5m
bykgY29uc3QKICAgICBpbmZvLmFkZEluc3RydW1lbnRlZE1lbWJlcihkb2N1bWVudCgpKTsKICAg
ICBpbmZvLmFkZEluc3RydW1lbnRlZE1lbWJlcihtX25leHQpOwogICAgIGluZm8uYWRkSW5zdHJ1
bWVudGVkTWVtYmVyKG1fcHJldmlvdXMpOworICAgIGlmIChtX3JlbmRlcmVyKQorICAgICAgICBp
bmZvLmFkZEluc3RydW1lbnRlZE1lbWJlcihtX3JlbmRlcmVyLT5zdHlsZSgpKTsKIH0KIAogfSAv
LyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL05vZGUu
aCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlLmgKaW5kZXggNjI1MjI3M2FkNzQyYzYzNzAwYzJi
NTkzNjkzZjMzYTQ1Zjc0N2FjMS4uZTNkZTY4MTQ2ZmVhYjQ2NTkzMWZhNzYzMGIzMDVkNTA2ZGJk
Nzc4YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL05vZGUuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9kb20vTm9kZS5oCkBAIC0yOSw3ICsyOSw2IEBACiAjaW5jbHVkZSAiRXZlbnRUYXJn
ZXQuaCIKICNpbmNsdWRlICJLVVJMSGFzaC5oIgogI2luY2x1ZGUgIkxheW91dFR5cGVzLmgiCi0j
aW5jbHVkZSAiTWVtb3J5SW5zdHJ1bWVudGF0aW9uLmgiCiAjaW5jbHVkZSAiTXV0YXRpb25PYnNl
cnZlci5oIgogI2luY2x1ZGUgIlJlbmRlclN0eWxlQ29uc3RhbnRzLmgiCiAjaW5jbHVkZSAiU2Ny
aXB0V3JhcHBhYmxlLmgiCkBAIC02Niw2ICs2NSw3IEBAIGNsYXNzIEZyYW1lOwogY2xhc3MgSFRN
TElucHV0RWxlbWVudDsKIGNsYXNzIEludFJlY3Q7CiBjbGFzcyBLZXlib2FyZEV2ZW50OworY2xh
c3MgTWVtb3J5T2JqZWN0SW5mbzsKIGNsYXNzIE5TUmVzb2x2ZXI7CiBjbGFzcyBOYW1lZE5vZGVN
YXA7CiBjbGFzcyBOYW1lTm9kZUxpc3Q7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGUuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0
eWxlL1JlbmRlclN0eWxlLmNwcAppbmRleCA4ZTVhOTBlOGNmZGRiMTU0MDg3NjFiOTI3MmNhZTg4
NjkxZThhNzk4Li43NjUwZmQwOWM0N2U5NDI5YjI1ZjYzMjc5YTU5MDA5NzUyMjUzZDU1IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGUuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZS5jcHAKQEAgLTI4
LDYgKzI4LDcgQEAKICNpbmNsdWRlICJDU1NQcm9wZXJ0eU5hbWVzLmgiCiAjaW5jbHVkZSAiQ1NT
V3JhcFNoYXBlcy5oIgogI2luY2x1ZGUgIkZvbnRTZWxlY3Rvci5oIgorI2luY2x1ZGUgIk1lbW9y
eUluc3RydW1lbnRhdGlvbi5oIgogI2luY2x1ZGUgIlF1b3Rlc0RhdGEuaCIKICNpbmNsdWRlICJS
ZW5kZXJBcmVuYS5oIgogI2luY2x1ZGUgIlJlbmRlck9iamVjdC5oIgpAQCAtMTQ4Niw0ICsxNDg3
LDI0IEBAIExheW91dEJveEV4dGVudCBSZW5kZXJTdHlsZTo6aW1hZ2VPdXRzZXRzKGNvbnN0IE5p
bmVQaWVjZUltYWdlJiBpbWFnZSkgY29uc3QKICAgICAgICAgICAgICAgICAgICAgICAgICAgIE5p
bmVQaWVjZUltYWdlOjpjb21wdXRlT3V0c2V0KGltYWdlLm91dHNldCgpLmxlZnQoKSwgYm9yZGVy
TGVmdFdpZHRoKCkpKTsKIH0KIAordm9pZCBSZW5kZXJTdHlsZTo6cmVwb3J0TWVtb3J5VXNhZ2Uo
TWVtb3J5T2JqZWN0SW5mbyogbWVtb3J5T2JqZWN0SW5mbykgY29uc3QKK3sKKyAgICBNZW1vcnlD
bGFzc0luZm88UmVuZGVyU3R5bGU+IGluZm8obWVtb3J5T2JqZWN0SW5mbywgdGhpcywgTWVtb3J5
SW5zdHJ1bWVudGF0aW9uOjpDU1MpOworICAgIGluZm8uYWRkTWVtYmVyKG1fYm94LmdldCgpKTsK
KyAgICBpbmZvLmFkZE1lbWJlcih2aXN1YWwuZ2V0KCkpOworICAgIC8vIEZJWE1FOiBtX2JhY2tn
cm91bmQgY29udGFpbnMgUmVmUHRyPFN0eWxlSW1hZ2U+IHRoYXQgbWlnaHQgbmVlZCB0byBiZSBp
bnN0cnVtZW50ZWQuCisgICAgaW5mby5hZGRNZW1iZXIobV9iYWNrZ3JvdW5kLmdldCgpKTsKKyAg
ICAvLyBGSVhNRTogc3Vycm9uZCBjb250YWlucyBzb21lIGZpZWxkcyBlLmcuIEJvcmRlckRhdGEg
dGhhdCBtaWdodCBuZWVkIHRvIGJlIGluc3RydW1lbnRlZC4KKyAgICBpbmZvLmFkZE1lbWJlcihz
dXJyb3VuZC5nZXQoKSk7CisgICAgaW5mby5hZGRJbnN0cnVtZW50ZWRNZW1iZXIocmFyZU5vbklu
aGVyaXRlZERhdGEuZ2V0KCkpOworICAgIGluZm8uYWRkSW5zdHJ1bWVudGVkTWVtYmVyKHJhcmVJ
bmhlcml0ZWREYXRhLmdldCgpKTsKKyAgICAvLyBGSVhNRTogaW5oZXJpdGVkIGNvbnRhaW5zIFN0
eWxlSW1hZ2UgYW5kIEZvbnQgZmllbGRzIHRoYXQgbWlnaHQgbmVlZCB0byBiZSBpbnN0cnVtZW50
ZWQuCisgICAgaW5mby5hZGRNZW1iZXIoaW5oZXJpdGVkLmdldCgpKTsKKyAgICBpZiAobV9jYWNo
ZWRQc2V1ZG9TdHlsZXMpCisgICAgICAgIGluZm8uYWRkVmVjdG9yKCptX2NhY2hlZFBzZXVkb1N0
eWxlcyk7CisjaWYgRU5BQkxFKFNWRykKKyAgICBpbmZvLmFkZE1lbWJlcihtX3N2Z1N0eWxlKTsK
KyNlbmRpZgorfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGUuaCBiL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZS5oCmluZGV4IDVlOGExMmM5NWZmNTYzZWFmMmZlOGIw
YTcyOWQwNWYwNzI2ZTRmNDYuLjM2YzViZjA3ZDMyZWFmM2M1YmEzZTQ5NzViOTAyYzVlMWI4Njlm
NDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHls
ZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZS5oCkBA
IC0xMDUsNiArMTA1LDcgQEAgY2xhc3MgQm9yZGVyRGF0YTsKIGNsYXNzIENvdW50ZXJDb250ZW50
OwogY2xhc3MgQ3Vyc29yTGlzdDsKIGNsYXNzIEludFJlY3Q7CitjbGFzcyBNZW1vcnlPYmplY3RJ
bmZvOwogY2xhc3MgUGFpcjsKIGNsYXNzIFNoYWRvd0RhdGE7CiBjbGFzcyBTdHlsZUltYWdlOwpA
QCAtMTU0MSw2ICsxNTQyLDggQEAgcHVibGljOgogCiAgICAgdm9pZCBzZXRIYXNFeHBsaWNpdGx5
SW5oZXJpdGVkUHJvcGVydGllcygpIHsgbV9iaXRmaWVsZHMuc2V0RXhwbGljaXRJbmhlcml0YW5j
ZSh0cnVlKTsgfQogICAgIGJvb2wgaGFzRXhwbGljaXRseUluaGVyaXRlZFByb3BlcnRpZXMoKSBj
b25zdCB7IHJldHVybiBtX2JpdGZpZWxkcy5leHBsaWNpdEluaGVyaXRhbmNlKCk7IH0KKworICAg
IHZvaWQgcmVwb3J0TWVtb3J5VXNhZ2UoTWVtb3J5T2JqZWN0SW5mbyopIGNvbnN0OwogICAgIAog
ICAgIC8vIEluaXRpYWwgdmFsdWVzIGZvciBhbGwgdGhlIHByb3BlcnRpZXMKICAgICBzdGF0aWMg
RUJvcmRlckNvbGxhcHNlIGluaXRpYWxCb3JkZXJDb2xsYXBzZSgpIHsgcmV0dXJuIEJTRVBBUkFU
RTsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1N0eWxlUmFy
ZUluaGVyaXRlZERhdGEuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1N0eWxl
UmFyZUluaGVyaXRlZERhdGEuY3BwCmluZGV4IDk3ZGU0MmQzYzM1YTlhZDlhY2E0YjUyZjJlZTRl
MjA2OGVkZWQyOGQuLmQxNGVlNWFiOGEzZGI4NmVhNDljZWZlNzY4ZmUwMTJiYmYzZWU2ODIgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9TdHlsZVJhcmVJbmhlcml0
ZWREYXRhLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvU3R5bGVSYXJl
SW5oZXJpdGVkRGF0YS5jcHAKQEAgLTIzLDYgKzIzLDcgQEAKICNpbmNsdWRlICJTdHlsZVJhcmVJ
bmhlcml0ZWREYXRhLmgiCiAKICNpbmNsdWRlICJDdXJzb3JMaXN0LmgiCisjaW5jbHVkZSAiTWVt
b3J5SW5zdHJ1bWVudGF0aW9uLmgiCiAjaW5jbHVkZSAiUXVvdGVzRGF0YS5oIgogI2luY2x1ZGUg
IlJlbmRlclN0eWxlLmgiCiAjaW5jbHVkZSAiUmVuZGVyU3R5bGVDb25zdGFudHMuaCIKQEAgLTI2
MSw0ICsyNjIsMjAgQEAgYm9vbCBTdHlsZVJhcmVJbmhlcml0ZWREYXRhOjpzaGFkb3dEYXRhRXF1
aXZhbGVudChjb25zdCBTdHlsZVJhcmVJbmhlcml0ZWREYXRhJgogICAgIHJldHVybiB0cnVlOwog
fQogCit2b2lkIFN0eWxlUmFyZUluaGVyaXRlZERhdGE6OnJlcG9ydE1lbW9yeVVzYWdlKE1lbW9y
eU9iamVjdEluZm8qIG1lbW9yeU9iamVjdEluZm8pIGNvbnN0Cit7CisgICAgTWVtb3J5Q2xhc3NJ
bmZvPFN0eWxlUmFyZUluaGVyaXRlZERhdGE+IGluZm8obWVtb3J5T2JqZWN0SW5mbywgdGhpcywg
TWVtb3J5SW5zdHJ1bWVudGF0aW9uOjpDU1MpOworICAgIGluZm8uYWRkTWVtYmVyKHRleHRTaGFk
b3cuZ2V0KCkpOworICAgIGluZm8uYWRkU3RyaW5nKGhpZ2hsaWdodCk7CisgICAgaW5mby5hZGRN
ZW1iZXIoY3Vyc29yRGF0YS5nZXQoKSk7CisgICAgaW5mby5hZGRTdHJpbmcoaHlwaGVuYXRpb25T
dHJpbmcpOworICAgIGluZm8uYWRkU3RyaW5nKGxvY2FsZSk7CisgICAgaW5mby5hZGRTdHJpbmco
dGV4dEVtcGhhc2lzQ3VzdG9tTWFyayk7CisgICAgaW5mby5hZGRNZW1iZXIocXVvdGVzLmdldCgp
KTsKKyAgICBpbmZvLmFkZFN0cmluZyhtX2xpbmVHcmlkKTsKKyNpZiBFTkFCTEUoQ1NTX1ZBUklB
QkxFUykKKyAgICBpbmZvLmFkZE1lbWJlcihtX3ZhcmlhYmxlcy5nZXQoKSk7CisjZW5kaWYKK30K
KwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL3N0eWxlL1N0eWxlUmFyZUluaGVyaXRlZERhdGEuaCBiL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9zdHlsZS9TdHlsZVJhcmVJbmhlcml0ZWREYXRhLmgKaW5kZXggYjMwOTgyZGY5N2Ix
Y2UyNjJlZDcyZGRlNzAxN2ZlOGY4ZTVlNWFjMC4uYmI0MzNlZDI3NmNhZGI1Mjg0ODVhMzNkZjQ0
M2IxZmFiNWRkNWJhOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxl
L1N0eWxlUmFyZUluaGVyaXRlZERhdGEuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
c3R5bGUvU3R5bGVSYXJlSW5oZXJpdGVkRGF0YS5oCkBAIC0zOSw2ICszOSw3IEBACiBuYW1lc3Bh
Y2UgV2ViQ29yZSB7CiAKIGNsYXNzIEN1cnNvckxpc3Q7CitjbGFzcyBNZW1vcnlPYmplY3RJbmZv
OwogY2xhc3MgUXVvdGVzRGF0YTsKIGNsYXNzIFNoYWRvd0RhdGE7CiAKQEAgLTU4LDYgKzU5LDgg
QEAgcHVibGljOgogICAgIH0KICAgICBib29sIHNoYWRvd0RhdGFFcXVpdmFsZW50KGNvbnN0IFN0
eWxlUmFyZUluaGVyaXRlZERhdGEmKSBjb25zdDsKIAorICAgIHZvaWQgcmVwb3J0TWVtb3J5VXNh
Z2UoTWVtb3J5T2JqZWN0SW5mbyopIGNvbnN0OworCiAgICAgQ29sb3IgdGV4dFN0cm9rZUNvbG9y
OwogICAgIGZsb2F0IHRleHRTdHJva2VXaWR0aDsKICAgICBDb2xvciB0ZXh0RmlsbENvbG9yOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1N0eWxlUmFyZU5vbklu
aGVyaXRlZERhdGEuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1N0eWxlUmFy
ZU5vbkluaGVyaXRlZERhdGEuY3BwCmluZGV4IDIyYjMyNzJlOGMzN2QyMWVlMzY0OWMwYTQ1YTdk
NDNkNTEyMTA0NGQuLmRlNDFmMzM4ZjE2ODlhNjM4YmFkMWJhZjBhZDZkMzYwYmFhNWQ4ZGIgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9TdHlsZVJhcmVOb25Jbmhl
cml0ZWREYXRhLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvU3R5bGVS
YXJlTm9uSW5oZXJpdGVkRGF0YS5jcHAKQEAgLTIzLDYgKzIzLDcgQEAKICNpbmNsdWRlICJTdHls
ZVJhcmVOb25Jbmhlcml0ZWREYXRhLmgiCiAKICNpbmNsdWRlICJDb250ZW50RGF0YS5oIgorI2lu
Y2x1ZGUgIk1lbW9yeUluc3RydW1lbnRhdGlvbi5oIgogI2luY2x1ZGUgIlJlbmRlckNvdW50ZXIu
aCIKICNpbmNsdWRlICJSZW5kZXJTdHlsZS5oIgogI2luY2x1ZGUgIlNoYWRvd0RhdGEuaCIKQEAg
LTI4Niw0ICsyODcsMzIgQEAgYm9vbCBTdHlsZVJhcmVOb25Jbmhlcml0ZWREYXRhOjp0cmFuc2l0
aW9uRGF0YUVxdWl2YWxlbnQoY29uc3QgU3R5bGVSYXJlTm9uSW5oZXIKICAgICByZXR1cm4gdHJ1
ZTsKIH0KIAordm9pZCBTdHlsZVJhcmVOb25Jbmhlcml0ZWREYXRhOjpyZXBvcnRNZW1vcnlVc2Fn
ZShNZW1vcnlPYmplY3RJbmZvKiBtZW1vcnlPYmplY3RJbmZvKSBjb25zdAoreworICAgIE1lbW9y
eUNsYXNzSW5mbzxTdHlsZVJhcmVOb25Jbmhlcml0ZWREYXRhPiBpbmZvKG1lbW9yeU9iamVjdElu
Zm8sIHRoaXMsIE1lbW9yeUluc3RydW1lbnRhdGlvbjo6Q1NTKTsKKyNpZiBFTkFCTEUoREFTSEJP
QVJEX1NVUFBPUlQpCisgICAgaW5mby5hZGRWZWN0b3IobV9kYXNoYm9hcmRSZWdpb25zKTsKKyNl
bmRpZgorICAgIGluZm8uYWRkTWVtYmVyKG1fZGVwcmVjYXRlZEZsZXhpYmxlQm94LmdldCgpKTsK
KyAgICBpbmZvLmFkZE1lbWJlcihtX2ZsZXhpYmxlQm94LmdldCgpKTsKKyAgICBpbmZvLmFkZE1l
bWJlcihtX21hcnF1ZWUuZ2V0KCkpOworICAgIGluZm8uYWRkTWVtYmVyKG1fbXVsdGlDb2wuZ2V0
KCkpOworICAgIGluZm8uYWRkTWVtYmVyKG1fdHJhbnNmb3JtLmdldCgpKTsKKyNpZiBFTkFCTEUo
Q1NTX0ZJTFRFUlMpCisgICAgaW5mby5hZGRNZW1iZXIobV9maWx0ZXIuZ2V0KCkpOworI2VuZGlm
CisgICAgaW5mby5hZGRNZW1iZXIobV9ncmlkLmdldCgpKTsKKyAgICBpbmZvLmFkZE1lbWJlciht
X2dyaWRJdGVtLmdldCgpKTsKKyAgICBpbmZvLmFkZE1lbWJlcihtX2NvbnRlbnQuZ2V0KCkpOwor
ICAgIGluZm8uYWRkTWVtYmVyKG1fY291bnRlckRpcmVjdGl2ZXMuZ2V0KCkpOworICAgIGluZm8u
YWRkTWVtYmVyKG1fYm94U2hhZG93LmdldCgpKTsKKyAgICBpbmZvLmFkZE1lbWJlcihtX2JveFJl
ZmxlY3QuZ2V0KCkpOworICAgIGluZm8uYWRkTWVtYmVyKG1fYW5pbWF0aW9ucy5nZXQoKSk7Cisg
ICAgaW5mby5hZGRNZW1iZXIobV90cmFuc2l0aW9ucy5nZXQoKSk7CisgICAgaW5mby5hZGRNZW1i
ZXIobV93cmFwU2hhcGVJbnNpZGUuZ2V0KCkpOworICAgIGluZm8uYWRkTWVtYmVyKG1fd3JhcFNo
YXBlT3V0c2lkZS5nZXQoKSk7CisgICAgaW5mby5hZGRTdHJpbmcobV9mbG93VGhyZWFkKTsKKyAg
ICBpbmZvLmFkZFN0cmluZyhtX3JlZ2lvblRocmVhZCk7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdl
YkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9TdHlsZVJh
cmVOb25Jbmhlcml0ZWREYXRhLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvU3R5
bGVSYXJlTm9uSW5oZXJpdGVkRGF0YS5oCmluZGV4IDVlNmZkZTJhNjE3Y2YzOTUyNWU1NTdiZDkw
OTg2NjIyMTRlOGNiZWUuLjBmZTZlNThjNjMzYmNjYTliYzJiNGU3N2ZkM2IyMDYwZTNkNzZkNGUg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9TdHlsZVJhcmVOb25J
bmhlcml0ZWREYXRhLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1N0eWxl
UmFyZU5vbkluaGVyaXRlZERhdGEuaApAQCAtMzksNiArMzksNyBAQAogbmFtZXNwYWNlIFdlYkNv
cmUgewogCiBjbGFzcyBBbmltYXRpb25MaXN0OworY2xhc3MgTWVtb3J5T2JqZWN0SW5mbzsKIGNs
YXNzIFNoYWRvd0RhdGE7CiBjbGFzcyBTdHlsZURlcHJlY2F0ZWRGbGV4aWJsZUJveERhdGE7CiAj
aWYgRU5BQkxFKENTU19GSUxURVJTKQpAQCAtODksNiArOTAsOCBAQCBwdWJsaWM6CiAgICAgYm9v
bCBhbmltYXRpb25EYXRhRXF1aXZhbGVudChjb25zdCBTdHlsZVJhcmVOb25Jbmhlcml0ZWREYXRh
JikgY29uc3Q7CiAgICAgYm9vbCB0cmFuc2l0aW9uRGF0YUVxdWl2YWxlbnQoY29uc3QgU3R5bGVS
YXJlTm9uSW5oZXJpdGVkRGF0YSYpIGNvbnN0OwogCisgICAgdm9pZCByZXBvcnRNZW1vcnlVc2Fn
ZShNZW1vcnlPYmplY3RJbmZvKikgY29uc3Q7CisKICAgICBmbG9hdCBvcGFjaXR5OyAvLyBXaGV0
aGVyIG9yIG5vdCB3ZSdyZSB0cmFuc3BhcmVudC4KIAogICAgIGZsb2F0IG1fYXNwZWN0UmF0aW9E
ZW5vbWluYXRvcjsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>153479</attachid>
            <date>2012-07-20 04:29:16 -0700</date>
            <delta_ts>2012-07-23 11:18:17 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-91759-20120720152911.patch</filename>
            <type>text/plain</type>
            <size>13362</size>
            <attacher name="Alexei Filippov">alph</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTIzMjAwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNjU0NDViMjI1Mjc5MTc0
YmVhNmE4MjYyNTQ0NjhiMGJkZTdjM2ZjNi4uOGE1ZmQ2NTg0NzIyMzU4ZmQ0ZGQ0MzJlYTEwZTI2
M2VlODE5ZWM2NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMzIEBACisyMDEyLTA3LTE5ICBBbGV4
ZWkgRmlsaXBwb3YgIDxhbGV4ZWlmQGNocm9taXVtLm9yZz4KKworICAgICAgICBXZWIgSW5zcGVj
dG9yOiBjb3VudCBSZW5kZXJTdHlsZSBvYmplY3RzIGluIHRoZSBuYXRpdmUgbWVtb3J5IHByb2Zp
bGVyCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05MTc1
OQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogYmlu
ZGluZ3MvdjgvU2NyaXB0V3JhcHBhYmxlLmg6CisgICAgICAgICogZG9tL05vZGUuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6Tm9kZTo6cmVwb3J0TWVtb3J5VXNhZ2UpOgorICAgICAgICAqIGRvbS9O
b2RlLmg6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKiByZW5kZXJpbmcvc3R5bGUvUmVu
ZGVyU3R5bGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyU3R5bGU6OnJlcG9ydE1lbW9y
eVVzYWdlKToKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAqIHJlbmRlcmluZy9zdHlsZS9S
ZW5kZXJTdHlsZS5oOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgICogcmVuZGVyaW5nL3N0
eWxlL1N0eWxlUmFyZUluaGVyaXRlZERhdGEuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U3R5bGVS
YXJlSW5oZXJpdGVkRGF0YTo6cmVwb3J0TWVtb3J5VXNhZ2UpOgorICAgICAgICAoV2ViQ29yZSk6
CisgICAgICAgICogcmVuZGVyaW5nL3N0eWxlL1N0eWxlUmFyZUluaGVyaXRlZERhdGEuaDoKKyAg
ICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoU3R5bGVSYXJlSW5oZXJpdGVkRGF0YSk6CisgICAg
ICAgICogcmVuZGVyaW5nL3N0eWxlL1N0eWxlUmFyZU5vbkluaGVyaXRlZERhdGEuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6U3R5bGVSYXJlTm9uSW5oZXJpdGVkRGF0YTo6cmVwb3J0TWVtb3J5VXNh
Z2UpOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgICogcmVuZGVyaW5nL3N0eWxlL1N0eWxl
UmFyZU5vbkluaGVyaXRlZERhdGEuaDoKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoU3R5
bGVSYXJlTm9uSW5oZXJpdGVkRGF0YSk6CisKIDIwMTItMDctMjAgIEV1Z2VuZSBLbHl1Y2huaWtv
diAgPGV1c3Rhcy5iaWdAZ21haWwuY29tPgogCiAgICAgICAgIFdlYiBJbnNwZWN0b3I6IFRpbWVs
aW5lOiBmb3J3YXJkIGNvbXBhdGliaWxpdHkgZm9yIGxvYWQuCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9qcy9TY3JpcHRXcmFwcGFibGUuaCBiL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL2pzL1NjcmlwdFdyYXBwYWJsZS5oCmluZGV4IDNjYjVkODE2YzExMWI4MDdmYTA2OTdh
NjdjZDlmOWE5NjQyZDA1ZTcuLjBjZjJkN2ExNmM0ZWUwOGRjNDUzMDQ5MmUxMjQzMTQwZThmOWI1
OTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1NjcmlwdFdyYXBwYWJs
ZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1NjcmlwdFdyYXBwYWJsZS5oCkBA
IC0zMiw2ICszMiw3IEBACiAjZGVmaW5lIFNjcmlwdFdyYXBwYWJsZV9oCiAKICNpbmNsdWRlICJK
U0RPTVdyYXBwZXIuaCIKKyNpbmNsdWRlICJNZW1vcnlJbnN0cnVtZW50YXRpb24uaCIKICNpbmNs
dWRlIDxoZWFwL1dlYWsuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvU2NyaXB0V3JhcHBhYmxlLmggYi9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy92OC9TY3JpcHRXcmFwcGFibGUuaAppbmRleCBlZjJmNzYxOWYyNDUxMTA2NTdj
N2FlMGE1YmEwMmVkYzA0ZDZmZjY5Li42NGE5MDUzOTI4YTYwZTE1MDgyMTY0NzYwNDI4NTZiMmE3
YzNkMDMwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9TY3JpcHRXcmFw
cGFibGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9TY3JpcHRXcmFwcGFibGUu
aApAQCAtMzEsNiArMzEsNyBAQAogI2lmbmRlZiBTY3JpcHRXcmFwcGFibGVfaAogI2RlZmluZSBT
Y3JpcHRXcmFwcGFibGVfaAogCisjaW5jbHVkZSAiTWVtb3J5SW5zdHJ1bWVudGF0aW9uLmgiCiAj
aW5jbHVkZSA8djguaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvZG9tL05vZGUuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL05vZGUuY3BwCmluZGV4
IGI1OWYzNzk4Y2VlNDRkNWMyZmJjOTFiMDMzZGJkNzZiZjcwYzY0NDcuLjg0ZmE1ODQwY2I4Yjhk
MjQzOWNiZjBhN2VlMWFmM2M1MzM1NWI3OGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Rv
bS9Ob2RlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZS5jcHAKQEAgLTY3LDYgKzY3
LDcgQEAKICNpbmNsdWRlICJLZXlib2FyZEV2ZW50LmgiCiAjaW5jbHVkZSAiTGFiZWxzTm9kZUxp
c3QuaCIKICNpbmNsdWRlICJMb2dnaW5nLmgiCisjaW5jbHVkZSAiTWVtb3J5SW5zdHJ1bWVudGF0
aW9uLmgiCiAjaW5jbHVkZSAiTW91c2VFdmVudC5oIgogI2luY2x1ZGUgIk11dGF0aW9uRXZlbnQu
aCIKICNpbmNsdWRlICJOYW1lTm9kZUxpc3QuaCIKQEAgLTI3MTcsMTQgKzI3MTgsMjIgQEAgdm9p
ZCBOb2RlOjpyZW1vdmVkTGFzdFJlZigpCiAgICAgZGVsZXRlIHRoaXM7CiB9CiAKK3N0cnVjdCBJ
bnN0cnVtZW50ZWROb2RlIDogcHVibGljIEV2ZW50VGFyZ2V0LCBwdWJsaWMgU2NyaXB0V3JhcHBh
YmxlLCBwdWJsaWMgVHJlZVNoYXJlZDxOb2RlLCBDb250YWluZXJOb2RlPiB7CisgICAgdWludDMy
X3QgZmxhZ3M7CisgICAgdm9pZCogcHRyc1s0XTsKK307CisKIHZvaWQgTm9kZTo6cmVwb3J0TWVt
b3J5VXNhZ2UoTWVtb3J5T2JqZWN0SW5mbyogbWVtb3J5T2JqZWN0SW5mbykgY29uc3QKIHsKKyAg
ICBDT01QSUxFX0FTU0VSVChzaXplb2YoTm9kZSkgPT0gc2l6ZW9mKEluc3RydW1lbnRlZE5vZGUp
LCByZXBvcnRNZW1vcnlVc2FnZV9tYXlfbmVlZF9hbl91cGRhdGUpOwogICAgIE1lbW9yeUNsYXNz
SW5mbzxOb2RlPiBpbmZvKG1lbW9yeU9iamVjdEluZm8sIHRoaXMsIE1lbW9yeUluc3RydW1lbnRh
dGlvbjo6RE9NKTsKICAgICBpbmZvLnZpc2l0QmFzZUNsYXNzPFRyZWVTaGFyZWQ8Tm9kZSwgQ29u
dGFpbmVyTm9kZT4gPih0aGlzKTsKICAgICBpbmZvLnZpc2l0QmFzZUNsYXNzPFNjcmlwdFdyYXBw
YWJsZT4odGhpcyk7CiAgICAgaW5mby5hZGRJbnN0cnVtZW50ZWRNZW1iZXIoZG9jdW1lbnQoKSk7
CiAgICAgaW5mby5hZGRJbnN0cnVtZW50ZWRNZW1iZXIobV9uZXh0KTsKICAgICBpbmZvLmFkZElu
c3RydW1lbnRlZE1lbWJlcihtX3ByZXZpb3VzKTsKKyAgICBpZiAobV9yZW5kZXJlcikKKyAgICAg
ICAgaW5mby5hZGRJbnN0cnVtZW50ZWRNZW1iZXIobV9yZW5kZXJlci0+c3R5bGUoKSk7CiB9CiAK
IH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9O
b2RlLmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZS5oCmluZGV4IDYyNTIyNzNhZDc0MmM2Mzcw
MGMyYjU5MzY5M2YzM2E0NWY3NDdhYzEuLmUzZGU2ODE0NmZlYWI0NjU5MzFmYTc2MzBiMzA1ZDUw
NmRiZDc3OGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvZG9tL05vZGUuaApAQCAtMjksNyArMjksNiBAQAogI2luY2x1ZGUgIkV2ZW50
VGFyZ2V0LmgiCiAjaW5jbHVkZSAiS1VSTEhhc2guaCIKICNpbmNsdWRlICJMYXlvdXRUeXBlcy5o
IgotI2luY2x1ZGUgIk1lbW9yeUluc3RydW1lbnRhdGlvbi5oIgogI2luY2x1ZGUgIk11dGF0aW9u
T2JzZXJ2ZXIuaCIKICNpbmNsdWRlICJSZW5kZXJTdHlsZUNvbnN0YW50cy5oIgogI2luY2x1ZGUg
IlNjcmlwdFdyYXBwYWJsZS5oIgpAQCAtNjYsNiArNjUsNyBAQCBjbGFzcyBGcmFtZTsKIGNsYXNz
IEhUTUxJbnB1dEVsZW1lbnQ7CiBjbGFzcyBJbnRSZWN0OwogY2xhc3MgS2V5Ym9hcmRFdmVudDsK
K2NsYXNzIE1lbW9yeU9iamVjdEluZm87CiBjbGFzcyBOU1Jlc29sdmVyOwogY2xhc3MgTmFtZWRO
b2RlTWFwOwogY2xhc3MgTmFtZU5vZGVMaXN0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9zdHlsZS9SZW5kZXJTdHlsZS5jcHAKaW5kZXggOGU1YTkwZThjZmRkYjE1NDA4NzYxYjkyNzJj
YWU4ODY5MWU4YTc5OC4uM2ZmZmFmOTM1YWJkMzZiZTVjODk2MDM5NTNkYjRjOGZiN2FmYmE1YSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGUuY3BwCkBA
IC0yOCw2ICsyOCw3IEBACiAjaW5jbHVkZSAiQ1NTUHJvcGVydHlOYW1lcy5oIgogI2luY2x1ZGUg
IkNTU1dyYXBTaGFwZXMuaCIKICNpbmNsdWRlICJGb250U2VsZWN0b3IuaCIKKyNpbmNsdWRlICJN
ZW1vcnlJbnN0cnVtZW50YXRpb24uaCIKICNpbmNsdWRlICJRdW90ZXNEYXRhLmgiCiAjaW5jbHVk
ZSAiUmVuZGVyQXJlbmEuaCIKICNpbmNsdWRlICJSZW5kZXJPYmplY3QuaCIKQEAgLTE0ODYsNCAr
MTQ4Nyw0MCBAQCBMYXlvdXRCb3hFeHRlbnQgUmVuZGVyU3R5bGU6OmltYWdlT3V0c2V0cyhjb25z
dCBOaW5lUGllY2VJbWFnZSYgaW1hZ2UpIGNvbnN0CiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBOaW5lUGllY2VJbWFnZTo6Y29tcHV0ZU91dHNldChpbWFnZS5vdXRzZXQoKS5sZWZ0KCksIGJv
cmRlckxlZnRXaWR0aCgpKSk7CiB9CiAKK3N0cnVjdCBJbnN0cnVtZW50ZWRSZW5kZXJTdHlsZSA6
IHB1YmxpYyBSZWZDb3VudGVkPEluc3RydW1lbnRlZFJlbmRlclN0eWxlPiB7CisgICAgdW5zaWdu
ZWQgbV9iaXRmaWVsZHM7CisgICAgdm9pZCogZGF0YVJlZnNbN107CisgICAgdm9pZCogb3duUHRy
c1sxXTsKKyNpZiBFTkFCTEUoU1ZHKQorICAgIHZvaWQqIGRhdGFSZWZTdmdTdHlsZTsKKyNlbmRp
ZgorICAgIHN0cnVjdCBJbmhlcml0ZWRGbGFncyB7CisgICAgICAgIHVuc2lnbmVkIG1fYml0Zmll
bGRzWzJdOworICAgIH0gaW5oZXJpdGVkX2ZsYWdzOworICAgIHN0cnVjdCBOb25Jbmhlcml0ZWRG
bGFncyB7CisgICAgICAgIHVuc2lnbmVkIG1fYml0ZmllbGRzWzJdOworICAgIH0gbm9uaW5oZXJp
dGVkX2ZsYWdzOworfTsKKwordm9pZCBSZW5kZXJTdHlsZTo6cmVwb3J0TWVtb3J5VXNhZ2UoTWVt
b3J5T2JqZWN0SW5mbyogbWVtb3J5T2JqZWN0SW5mbykgY29uc3QKK3sKKyAgICBDT01QSUxFX0FT
U0VSVChzaXplb2YoUmVuZGVyU3R5bGUpID09IHNpemVvZihJbnN0cnVtZW50ZWRSZW5kZXJTdHls
ZSksIHJlcG9ydE1lbW9yeVVzYWdlX21heV9uZWVkX2FuX3VwZGF0ZSk7CisgICAgTWVtb3J5Q2xh
c3NJbmZvPFJlbmRlclN0eWxlPiBpbmZvKG1lbW9yeU9iamVjdEluZm8sIHRoaXMsIE1lbW9yeUlu
c3RydW1lbnRhdGlvbjo6Q1NTKTsKKyAgICBpbmZvLmFkZE1lbWJlcihtX2JveC5nZXQoKSk7Cisg
ICAgaW5mby5hZGRNZW1iZXIodmlzdWFsLmdldCgpKTsKKyAgICAvLyBGSVhNRTogbV9iYWNrZ3Jv
dW5kIGNvbnRhaW5zIFJlZlB0cjxTdHlsZUltYWdlPiB0aGF0IG1pZ2h0IG5lZWQgdG8gYmUgaW5z
dHJ1bWVudGVkLgorICAgIGluZm8uYWRkTWVtYmVyKG1fYmFja2dyb3VuZC5nZXQoKSk7CisgICAg
Ly8gRklYTUU6IHN1cnJvbmQgY29udGFpbnMgc29tZSBmaWVsZHMgZS5nLiBCb3JkZXJEYXRhIHRo
YXQgbWlnaHQgbmVlZCB0byBiZSBpbnN0cnVtZW50ZWQuCisgICAgaW5mby5hZGRNZW1iZXIoc3Vy
cm91bmQuZ2V0KCkpOworICAgIGluZm8uYWRkSW5zdHJ1bWVudGVkTWVtYmVyKHJhcmVOb25Jbmhl
cml0ZWREYXRhLmdldCgpKTsKKyAgICBpbmZvLmFkZEluc3RydW1lbnRlZE1lbWJlcihyYXJlSW5o
ZXJpdGVkRGF0YS5nZXQoKSk7CisgICAgLy8gRklYTUU6IGluaGVyaXRlZCBjb250YWlucyBTdHls
ZUltYWdlIGFuZCBGb250IGZpZWxkcyB0aGF0IG1pZ2h0IG5lZWQgdG8gYmUgaW5zdHJ1bWVudGVk
LgorICAgIGluZm8uYWRkTWVtYmVyKGluaGVyaXRlZC5nZXQoKSk7CisgICAgaWYgKG1fY2FjaGVk
UHNldWRvU3R5bGVzKQorICAgICAgICBpbmZvLmFkZFZlY3RvcigqbV9jYWNoZWRQc2V1ZG9TdHls
ZXMpOworI2lmIEVOQUJMRShTVkcpCisgICAgaW5mby5hZGRNZW1iZXIobV9zdmdTdHlsZSk7Cisj
ZW5kaWYKK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGUuaAppbmRleCA1ZThhMTJjOTVmZjU2M2VhZjJmZThiMGE3
MjlkMDVmMDcyNmU0ZjQ2Li4zNmM1YmYwN2QzMmVhZjNjNWJhM2U0OTc1YjkwMmM1ZTFiODY5ZjQ2
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGUu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGUuaApAQCAt
MTA1LDYgKzEwNSw3IEBAIGNsYXNzIEJvcmRlckRhdGE7CiBjbGFzcyBDb3VudGVyQ29udGVudDsK
IGNsYXNzIEN1cnNvckxpc3Q7CiBjbGFzcyBJbnRSZWN0OworY2xhc3MgTWVtb3J5T2JqZWN0SW5m
bzsKIGNsYXNzIFBhaXI7CiBjbGFzcyBTaGFkb3dEYXRhOwogY2xhc3MgU3R5bGVJbWFnZTsKQEAg
LTE1NDEsNiArMTU0Miw4IEBAIHB1YmxpYzoKIAogICAgIHZvaWQgc2V0SGFzRXhwbGljaXRseUlu
aGVyaXRlZFByb3BlcnRpZXMoKSB7IG1fYml0ZmllbGRzLnNldEV4cGxpY2l0SW5oZXJpdGFuY2Uo
dHJ1ZSk7IH0KICAgICBib29sIGhhc0V4cGxpY2l0bHlJbmhlcml0ZWRQcm9wZXJ0aWVzKCkgY29u
c3QgeyByZXR1cm4gbV9iaXRmaWVsZHMuZXhwbGljaXRJbmhlcml0YW5jZSgpOyB9CisKKyAgICB2
b2lkIHJlcG9ydE1lbW9yeVVzYWdlKE1lbW9yeU9iamVjdEluZm8qKSBjb25zdDsKICAgICAKICAg
ICAvLyBJbml0aWFsIHZhbHVlcyBmb3IgYWxsIHRoZSBwcm9wZXJ0aWVzCiAgICAgc3RhdGljIEVC
b3JkZXJDb2xsYXBzZSBpbml0aWFsQm9yZGVyQ29sbGFwc2UoKSB7IHJldHVybiBCU0VQQVJBVEU7
IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9TdHlsZVJhcmVJ
bmhlcml0ZWREYXRhLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9TdHlsZVJh
cmVJbmhlcml0ZWREYXRhLmNwcAppbmRleCA5N2RlNDJkM2MzNWE5YWQ5YWNhNGI1MmYyZWU0ZTIw
NjhlZGVkMjhkLi5kODI5MDRhMGZhNzNhODBmM2VjNjYyZTM4MDk0ZDczOTRiZjE2YjU4IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvU3R5bGVSYXJlSW5oZXJpdGVk
RGF0YS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1N0eWxlUmFyZUlu
aGVyaXRlZERhdGEuY3BwCkBAIC0yMyw2ICsyMyw3IEBACiAjaW5jbHVkZSAiU3R5bGVSYXJlSW5o
ZXJpdGVkRGF0YS5oIgogCiAjaW5jbHVkZSAiQ3Vyc29yTGlzdC5oIgorI2luY2x1ZGUgIk1lbW9y
eUluc3RydW1lbnRhdGlvbi5oIgogI2luY2x1ZGUgIlF1b3Rlc0RhdGEuaCIKICNpbmNsdWRlICJS
ZW5kZXJTdHlsZS5oIgogI2luY2x1ZGUgIlJlbmRlclN0eWxlQ29uc3RhbnRzLmgiCkBAIC0yNjEs
NCArMjYyLDQyIEBAIGJvb2wgU3R5bGVSYXJlSW5oZXJpdGVkRGF0YTo6c2hhZG93RGF0YUVxdWl2
YWxlbnQoY29uc3QgU3R5bGVSYXJlSW5oZXJpdGVkRGF0YSYKICAgICByZXR1cm4gdHJ1ZTsKIH0K
IAorc3RydWN0IEluc3RydW1lbnRlZFN0eWxlUmFyZUluaGVyaXRlZERhdGEgOiBwdWJsaWMgUmVm
Q291bnRlZDxJbnN0cnVtZW50ZWRTdHlsZVJhcmVJbmhlcml0ZWREYXRhPiB7CisgICAgQ29sb3Ig
Y29sb3JzWzZdOworICAgIGZsb2F0IGZsb2F0c1syXTsKKyAgICB2b2lkKiBvd25QdHJzWzFdOwor
ICAgIHZvaWQqIHN0cmluZ3NbNV07CisgICAgdm9pZCogcmVmUHRyc1syXTsKKyAgICBMZW5ndGgg
bGVuZ3Roc1sxXTsKKyAgICBzaG9ydCBzaG9ydHNbNV07CisgICAgdW5zaWduZWQgYml0RmllbGRz
WzJdOworICAgIHVuc2lnbmVkIHVuc2lnbmVkc1sxXTsKKyNpZiBFTkFCTEUoQ1NTX0lNQUdFX1JF
U09MVVRJT04pCisgICAgZmxvYXQgbV9pbWFnZVJlc29sdXRpb247CisjZW5kaWYKKyNpZiBFTkFC
TEUoVE9VQ0hfRVZFTlRTKQorICAgIENvbG9yIHRhcEhpZ2hsaWdodENvbG9yOworI2VuZGlmCisj
aWYgRU5BQkxFKENTU19WQVJJQUJMRVMpCisgICAgdm9pZCogZGF0YVJlZjsKKyNlbmRpZgorfTsK
Kwordm9pZCBTdHlsZVJhcmVJbmhlcml0ZWREYXRhOjpyZXBvcnRNZW1vcnlVc2FnZShNZW1vcnlP
YmplY3RJbmZvKiBtZW1vcnlPYmplY3RJbmZvKSBjb25zdAoreworICAgIENPTVBJTEVfQVNTRVJU
KHNpemVvZihTdHlsZVJhcmVJbmhlcml0ZWREYXRhKSA9PSBzaXplb2YoSW5zdHJ1bWVudGVkU3R5
bGVSYXJlSW5oZXJpdGVkRGF0YSksIHJlcG9ydE1lbW9yeVVzYWdlX21heV9uZWVkX2FuX3VwZGF0
ZSk7CisgICAgTWVtb3J5Q2xhc3NJbmZvPFN0eWxlUmFyZUluaGVyaXRlZERhdGE+IGluZm8obWVt
b3J5T2JqZWN0SW5mbywgdGhpcywgTWVtb3J5SW5zdHJ1bWVudGF0aW9uOjpDU1MpOworICAgIGlu
Zm8uYWRkTWVtYmVyKHRleHRTaGFkb3cuZ2V0KCkpOworICAgIGluZm8uYWRkU3RyaW5nKGhpZ2hs
aWdodCk7CisgICAgaW5mby5hZGRNZW1iZXIoY3Vyc29yRGF0YS5nZXQoKSk7CisgICAgaW5mby5h
ZGRTdHJpbmcoaHlwaGVuYXRpb25TdHJpbmcpOworICAgIGluZm8uYWRkU3RyaW5nKGxvY2FsZSk7
CisgICAgaW5mby5hZGRTdHJpbmcodGV4dEVtcGhhc2lzQ3VzdG9tTWFyayk7CisgICAgaW5mby5h
ZGRNZW1iZXIocXVvdGVzLmdldCgpKTsKKyAgICBpbmZvLmFkZFN0cmluZyhtX2xpbmVHcmlkKTsK
KyNpZiBFTkFCTEUoQ1NTX1ZBUklBQkxFUykKKyAgICBpbmZvLmFkZE1lbWJlcihtX3ZhcmlhYmxl
cy5nZXQoKSk7CisjZW5kaWYKK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1N0eWxlUmFyZUluaGVyaXRlZERhdGEu
aCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9TdHlsZVJhcmVJbmhlcml0ZWREYXRh
LmgKaW5kZXggYjMwOTgyZGY5N2IxY2UyNjJlZDcyZGRlNzAxN2ZlOGY4ZTVlNWFjMC4uYmI0MzNl
ZDI3NmNhZGI1Mjg0ODVhMzNkZjQ0M2IxZmFiNWRkNWJhOCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL3N0eWxlL1N0eWxlUmFyZUluaGVyaXRlZERhdGEuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvU3R5bGVSYXJlSW5oZXJpdGVkRGF0YS5oCkBAIC0z
OSw2ICszOSw3IEBACiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIEN1cnNvckxpc3Q7Citj
bGFzcyBNZW1vcnlPYmplY3RJbmZvOwogY2xhc3MgUXVvdGVzRGF0YTsKIGNsYXNzIFNoYWRvd0Rh
dGE7CiAKQEAgLTU4LDYgKzU5LDggQEAgcHVibGljOgogICAgIH0KICAgICBib29sIHNoYWRvd0Rh
dGFFcXVpdmFsZW50KGNvbnN0IFN0eWxlUmFyZUluaGVyaXRlZERhdGEmKSBjb25zdDsKIAorICAg
IHZvaWQgcmVwb3J0TWVtb3J5VXNhZ2UoTWVtb3J5T2JqZWN0SW5mbyopIGNvbnN0OworCiAgICAg
Q29sb3IgdGV4dFN0cm9rZUNvbG9yOwogICAgIGZsb2F0IHRleHRTdHJva2VXaWR0aDsKICAgICBD
b2xvciB0ZXh0RmlsbENvbG9yOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L3N0eWxlL1N0eWxlUmFyZU5vbkluaGVyaXRlZERhdGEuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL3N0eWxlL1N0eWxlUmFyZU5vbkluaGVyaXRlZERhdGEuY3BwCmluZGV4IDIyYjMyNzJl
OGMzN2QyMWVlMzY0OWMwYTQ1YTdkNDNkNTEyMTA0NGQuLmJiMzc0YjdmOTZmOGZjMTYxYjNlYjMy
MTZkYTliMjY0YTAyOGIzMWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9z
dHlsZS9TdHlsZVJhcmVOb25Jbmhlcml0ZWREYXRhLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvc3R5bGUvU3R5bGVSYXJlTm9uSW5oZXJpdGVkRGF0YS5jcHAKQEAgLTIzLDYgKzIz
LDcgQEAKICNpbmNsdWRlICJTdHlsZVJhcmVOb25Jbmhlcml0ZWREYXRhLmgiCiAKICNpbmNsdWRl
ICJDb250ZW50RGF0YS5oIgorI2luY2x1ZGUgIk1lbW9yeUluc3RydW1lbnRhdGlvbi5oIgogI2lu
Y2x1ZGUgIlJlbmRlckNvdW50ZXIuaCIKICNpbmNsdWRlICJSZW5kZXJTdHlsZS5oIgogI2luY2x1
ZGUgIlNoYWRvd0RhdGEuaCIKQEAgLTI4Niw0ICsyODcsNTUgQEAgYm9vbCBTdHlsZVJhcmVOb25J
bmhlcml0ZWREYXRhOjp0cmFuc2l0aW9uRGF0YUVxdWl2YWxlbnQoY29uc3QgU3R5bGVSYXJlTm9u
SW5oZXIKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAorc3RydWN0IEluc3RydW1lbnRlZFN0eWxlUmFy
ZU5vbkluaGVyaXRlZERhdGEgOiBwdWJsaWMgUmVmQ291bnRlZDxJbnN0cnVtZW50ZWRTdHlsZVJh
cmVOb25Jbmhlcml0ZWREYXRhPiB7CisgICAgZmxvYXQgZmxvYXRzWzVdOworICAgIHNob3J0IHNo
b3J0c1syXTsKKyAgICBMZW5ndGggbGVuZ3Roc1s0XTsKKyAgICBMaW5lQ2xhbXBWYWx1ZSBsaW5l
Q2xhbXA7CisjaWYgRU5BQkxFKERBU0hCT0FSRF9TVVBQT1JUKQorICAgIFZlY3RvcjxTdHlsZURh
c2hib2FyZFJlZ2lvbj4gZGFzaGJvYXJkUmVnaW9uczsKKyNlbmRpZgorICAgIHZvaWQqIGRhdGFS
ZWZzWzddOworI2lmIEVOQUJMRShDU1NfRklMVEVSUykKKyAgICB2b2lkKiBkYXRhUmVmOworI2Vu
ZGlmCisgICAgdm9pZCogb3duUHRyc1s1XTsKKyAgICB2b2lkKiByZWZQdHJzWzNdOworICAgIEZp
bGxMYXllciBmaWxsTGF5ZXI7CisgICAgTmluZVBpZWNlSW1hZ2UgbmluZVBpZWNlSW1hZ2U7Cisg
ICAgTGVuZ3RoU2l6ZSBsZW5ndGhTaXplOworICAgIENvbG9yIGNvbG9yc1s2XTsKKyAgICB2b2lk
KiBzdHJpbmdzWzJdOworICAgIHVuc2lnbmVkIGJpdEZpZWxkc1syXTsKK307CisKK3ZvaWQgU3R5
bGVSYXJlTm9uSW5oZXJpdGVkRGF0YTo6cmVwb3J0TWVtb3J5VXNhZ2UoTWVtb3J5T2JqZWN0SW5m
byogbWVtb3J5T2JqZWN0SW5mbykgY29uc3QKK3sKKyAgICBDT01QSUxFX0FTU0VSVChzaXplb2Yo
U3R5bGVSYXJlTm9uSW5oZXJpdGVkRGF0YSkgPT0gc2l6ZW9mKEluc3RydW1lbnRlZFN0eWxlUmFy
ZU5vbkluaGVyaXRlZERhdGEpLCByZXBvcnRNZW1vcnlVc2FnZV9tYXlfbmVlZF9hbl91cGRhdGUp
OworICAgIE1lbW9yeUNsYXNzSW5mbzxTdHlsZVJhcmVOb25Jbmhlcml0ZWREYXRhPiBpbmZvKG1l
bW9yeU9iamVjdEluZm8sIHRoaXMsIE1lbW9yeUluc3RydW1lbnRhdGlvbjo6Q1NTKTsKKyNpZiBF
TkFCTEUoREFTSEJPQVJEX1NVUFBPUlQpCisgICAgaW5mby5hZGRWZWN0b3IobV9kYXNoYm9hcmRS
ZWdpb25zKTsKKyNlbmRpZgorICAgIGluZm8uYWRkTWVtYmVyKG1fZGVwcmVjYXRlZEZsZXhpYmxl
Qm94LmdldCgpKTsKKyAgICBpbmZvLmFkZE1lbWJlcihtX2ZsZXhpYmxlQm94LmdldCgpKTsKKyAg
ICBpbmZvLmFkZE1lbWJlcihtX21hcnF1ZWUuZ2V0KCkpOworICAgIGluZm8uYWRkTWVtYmVyKG1f
bXVsdGlDb2wuZ2V0KCkpOworICAgIGluZm8uYWRkTWVtYmVyKG1fdHJhbnNmb3JtLmdldCgpKTsK
KyNpZiBFTkFCTEUoQ1NTX0ZJTFRFUlMpCisgICAgaW5mby5hZGRNZW1iZXIobV9maWx0ZXIuZ2V0
KCkpOworI2VuZGlmCisgICAgaW5mby5hZGRNZW1iZXIobV9ncmlkLmdldCgpKTsKKyAgICBpbmZv
LmFkZE1lbWJlcihtX2dyaWRJdGVtLmdldCgpKTsKKyAgICBpbmZvLmFkZE1lbWJlcihtX2NvbnRl
bnQuZ2V0KCkpOworICAgIGluZm8uYWRkTWVtYmVyKG1fY291bnRlckRpcmVjdGl2ZXMuZ2V0KCkp
OworICAgIGluZm8uYWRkTWVtYmVyKG1fYm94U2hhZG93LmdldCgpKTsKKyAgICBpbmZvLmFkZE1l
bWJlcihtX2JveFJlZmxlY3QuZ2V0KCkpOworICAgIGluZm8uYWRkTWVtYmVyKG1fYW5pbWF0aW9u
cy5nZXQoKSk7CisgICAgaW5mby5hZGRNZW1iZXIobV90cmFuc2l0aW9ucy5nZXQoKSk7CisgICAg
aW5mby5hZGRNZW1iZXIobV93cmFwU2hhcGVJbnNpZGUuZ2V0KCkpOworICAgIGluZm8uYWRkTWVt
YmVyKG1fd3JhcFNoYXBlT3V0c2lkZS5nZXQoKSk7CisgICAgaW5mby5hZGRTdHJpbmcobV9mbG93
VGhyZWFkKTsKKyAgICBpbmZvLmFkZFN0cmluZyhtX3JlZ2lvblRocmVhZCk7Cit9CisKIH0gLy8g
bmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9z
dHlsZS9TdHlsZVJhcmVOb25Jbmhlcml0ZWREYXRhLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvc3R5bGUvU3R5bGVSYXJlTm9uSW5oZXJpdGVkRGF0YS5oCmluZGV4IDVlNmZkZTJhNjE3Y2Yz
OTUyNWU1NTdiZDkwOTg2NjIyMTRlOGNiZWUuLjBmZTZlNThjNjMzYmNjYTliYzJiNGU3N2ZkM2Iy
MDYwZTNkNzZkNGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9T
dHlsZVJhcmVOb25Jbmhlcml0ZWREYXRhLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L3N0eWxlL1N0eWxlUmFyZU5vbkluaGVyaXRlZERhdGEuaApAQCAtMzksNiArMzksNyBAQAogbmFt
ZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBBbmltYXRpb25MaXN0OworY2xhc3MgTWVtb3J5T2Jq
ZWN0SW5mbzsKIGNsYXNzIFNoYWRvd0RhdGE7CiBjbGFzcyBTdHlsZURlcHJlY2F0ZWRGbGV4aWJs
ZUJveERhdGE7CiAjaWYgRU5BQkxFKENTU19GSUxURVJTKQpAQCAtODksNiArOTAsOCBAQCBwdWJs
aWM6CiAgICAgYm9vbCBhbmltYXRpb25EYXRhRXF1aXZhbGVudChjb25zdCBTdHlsZVJhcmVOb25J
bmhlcml0ZWREYXRhJikgY29uc3Q7CiAgICAgYm9vbCB0cmFuc2l0aW9uRGF0YUVxdWl2YWxlbnQo
Y29uc3QgU3R5bGVSYXJlTm9uSW5oZXJpdGVkRGF0YSYpIGNvbnN0OwogCisgICAgdm9pZCByZXBv
cnRNZW1vcnlVc2FnZShNZW1vcnlPYmplY3RJbmZvKikgY29uc3Q7CisKICAgICBmbG9hdCBvcGFj
aXR5OyAvLyBXaGV0aGVyIG9yIG5vdCB3ZSdyZSB0cmFuc3BhcmVudC4KIAogICAgIGZsb2F0IG1f
YXNwZWN0UmF0aW9EZW5vbWluYXRvcjsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>153820</attachid>
            <date>2012-07-23 11:18:27 -0700</date>
            <delta_ts>2012-07-26 07:35:39 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-91759-20120723221819.patch</filename>
            <type>text/plain</type>
            <size>13341</size>
            <attacher name="Alexei Filippov">alph</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTIzMzUxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOTFkMDA5MTBlMDNlMjMz
MjUyZjcxODU1YWM4NmRjZDg0MmY5YWZhOC4uNDg4MDJlYzkzYWE1NDIxODkyMGFiMDI2NDNmYzY4
NTZjMzczYzI2ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMzIEBACisyMDEyLTA3LTE5ICBBbGV4
ZWkgRmlsaXBwb3YgIDxhbGV4ZWlmQGNocm9taXVtLm9yZz4KKworICAgICAgICBXZWIgSW5zcGVj
dG9yOiBjb3VudCBSZW5kZXJTdHlsZSBvYmplY3RzIGluIHRoZSBuYXRpdmUgbWVtb3J5IHByb2Zp
bGVyCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05MTc1
OQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogYmlu
ZGluZ3MvdjgvU2NyaXB0V3JhcHBhYmxlLmg6CisgICAgICAgICogZG9tL05vZGUuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6Tm9kZTo6cmVwb3J0TWVtb3J5VXNhZ2UpOgorICAgICAgICAqIGRvbS9O
b2RlLmg6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKiByZW5kZXJpbmcvc3R5bGUvUmVu
ZGVyU3R5bGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyU3R5bGU6OnJlcG9ydE1lbW9y
eVVzYWdlKToKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAqIHJlbmRlcmluZy9zdHlsZS9S
ZW5kZXJTdHlsZS5oOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgICogcmVuZGVyaW5nL3N0
eWxlL1N0eWxlUmFyZUluaGVyaXRlZERhdGEuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U3R5bGVS
YXJlSW5oZXJpdGVkRGF0YTo6cmVwb3J0TWVtb3J5VXNhZ2UpOgorICAgICAgICAoV2ViQ29yZSk6
CisgICAgICAgICogcmVuZGVyaW5nL3N0eWxlL1N0eWxlUmFyZUluaGVyaXRlZERhdGEuaDoKKyAg
ICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoU3R5bGVSYXJlSW5oZXJpdGVkRGF0YSk6CisgICAg
ICAgICogcmVuZGVyaW5nL3N0eWxlL1N0eWxlUmFyZU5vbkluaGVyaXRlZERhdGEuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6U3R5bGVSYXJlTm9uSW5oZXJpdGVkRGF0YTo6cmVwb3J0TWVtb3J5VXNh
Z2UpOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgICogcmVuZGVyaW5nL3N0eWxlL1N0eWxl
UmFyZU5vbkluaGVyaXRlZERhdGEuaDoKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoU3R5
bGVSYXJlTm9uSW5oZXJpdGVkRGF0YSk6CisKIDIwMTItMDctMjMgIFNpbW9uIEZyYXNlciAgPHNp
bW9uLmZyYXNlckBhcHBsZS5jb20+CiAKICAgICAgICAgUGFydCAxIG9mOiBJbXBsZW1lbnQgc3Rp
Y2t5IHBvc2l0aW9uaW5nCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9T
Y3JpcHRXcmFwcGFibGUuaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1NjcmlwdFdyYXBw
YWJsZS5oCmluZGV4IDNjYjVkODE2YzExMWI4MDdmYTA2OTdhNjdjZDlmOWE5NjQyZDA1ZTcuLjBj
ZjJkN2ExNmM0ZWUwOGRjNDUzMDQ5MmUxMjQzMTQwZThmOWI1OTEgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1NjcmlwdFdyYXBwYWJsZS5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL2pzL1NjcmlwdFdyYXBwYWJsZS5oCkBAIC0zMiw2ICszMiw3IEBACiAjZGVm
aW5lIFNjcmlwdFdyYXBwYWJsZV9oCiAKICNpbmNsdWRlICJKU0RPTVdyYXBwZXIuaCIKKyNpbmNs
dWRlICJNZW1vcnlJbnN0cnVtZW50YXRpb24uaCIKICNpbmNsdWRlIDxoZWFwL1dlYWsuaD4KIAog
bmFtZXNwYWNlIFdlYkNvcmUgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
djgvU2NyaXB0V3JhcHBhYmxlLmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9TY3JpcHRX
cmFwcGFibGUuaAppbmRleCBlZjJmNzYxOWYyNDUxMTA2NTdjN2FlMGE1YmEwMmVkYzA0ZDZmZjY5
Li42NGE5MDUzOTI4YTYwZTE1MDgyMTY0NzYwNDI4NTZiMmE3YzNkMDMwIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9TY3JpcHRXcmFwcGFibGUuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy92OC9TY3JpcHRXcmFwcGFibGUuaApAQCAtMzEsNiArMzEsNyBAQAog
I2lmbmRlZiBTY3JpcHRXcmFwcGFibGVfaAogI2RlZmluZSBTY3JpcHRXcmFwcGFibGVfaAogCisj
aW5jbHVkZSAiTWVtb3J5SW5zdHJ1bWVudGF0aW9uLmgiCiAjaW5jbHVkZSA8djguaD4KIAogbmFt
ZXNwYWNlIFdlYkNvcmUgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL05vZGUuY3Bw
IGIvU291cmNlL1dlYkNvcmUvZG9tL05vZGUuY3BwCmluZGV4IDZiNjIyYzc2NDNmYjljZTBlZWNh
ZDQzMGI5NTA3ZTNjZjBjMDJhMDAuLmU0MDdkOWZiNDBjMGFjYzQwYzE2NjA3OGUyYjYxYmNiMWZh
MjJiNzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9kb20vTm9kZS5jcHAKQEAgLTY3LDYgKzY3LDcgQEAKICNpbmNsdWRlICJLZXli
b2FyZEV2ZW50LmgiCiAjaW5jbHVkZSAiTGFiZWxzTm9kZUxpc3QuaCIKICNpbmNsdWRlICJMb2dn
aW5nLmgiCisjaW5jbHVkZSAiTWVtb3J5SW5zdHJ1bWVudGF0aW9uLmgiCiAjaW5jbHVkZSAiTW91
c2VFdmVudC5oIgogI2luY2x1ZGUgIk11dGF0aW9uRXZlbnQuaCIKICNpbmNsdWRlICJOYW1lTm9k
ZUxpc3QuaCIKQEAgLTI3NTEsMTQgKzI3NTIsMjIgQEAgdm9pZCBOb2RlOjpyZW1vdmVkTGFzdFJl
ZigpCiAgICAgZGVsZXRlIHRoaXM7CiB9CiAKK3N0cnVjdCBJbnN0cnVtZW50ZWROb2RlIDogcHVi
bGljIEV2ZW50VGFyZ2V0LCBwdWJsaWMgU2NyaXB0V3JhcHBhYmxlLCBwdWJsaWMgVHJlZVNoYXJl
ZDxOb2RlLCBDb250YWluZXJOb2RlPiB7CisgICAgdWludDMyX3QgZmxhZ3M7CisgICAgdm9pZCog
cHRyc1s0XTsKK307CisKIHZvaWQgTm9kZTo6cmVwb3J0TWVtb3J5VXNhZ2UoTWVtb3J5T2JqZWN0
SW5mbyogbWVtb3J5T2JqZWN0SW5mbykgY29uc3QKIHsKKyAgICBDT01QSUxFX0FTU0VSVChzaXpl
b2YoTm9kZSkgPT0gc2l6ZW9mKEluc3RydW1lbnRlZE5vZGUpLCByZXBvcnRNZW1vcnlVc2FnZV9t
YXlfbmVlZF9hbl91cGRhdGUpOwogICAgIE1lbW9yeUNsYXNzSW5mbzxOb2RlPiBpbmZvKG1lbW9y
eU9iamVjdEluZm8sIHRoaXMsIE1lbW9yeUluc3RydW1lbnRhdGlvbjo6RE9NKTsKICAgICBpbmZv
LnZpc2l0QmFzZUNsYXNzPFRyZWVTaGFyZWQ8Tm9kZSwgQ29udGFpbmVyTm9kZT4gPih0aGlzKTsK
ICAgICBpbmZvLnZpc2l0QmFzZUNsYXNzPFNjcmlwdFdyYXBwYWJsZT4odGhpcyk7CiAgICAgaW5m
by5hZGRJbnN0cnVtZW50ZWRNZW1iZXIoZG9jdW1lbnQoKSk7CiAgICAgaW5mby5hZGRJbnN0cnVt
ZW50ZWRNZW1iZXIobV9uZXh0KTsKICAgICBpbmZvLmFkZEluc3RydW1lbnRlZE1lbWJlcihtX3By
ZXZpb3VzKTsKKyAgICBpZiAobV9yZW5kZXJlcikKKyAgICAgICAgaW5mby5hZGRJbnN0cnVtZW50
ZWRNZW1iZXIobV9yZW5kZXJlci0+c3R5bGUoKSk7CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNv
cmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlLmggYi9Tb3VyY2UvV2ViQ29y
ZS9kb20vTm9kZS5oCmluZGV4IDYyNTIyNzNhZDc0MmM2MzcwMGMyYjU5MzY5M2YzM2E0NWY3NDdh
YzEuLmUzZGU2ODE0NmZlYWI0NjU5MzFmYTc2MzBiMzA1ZDUwNmRiZDc3OGEgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL05vZGUu
aApAQCAtMjksNyArMjksNiBAQAogI2luY2x1ZGUgIkV2ZW50VGFyZ2V0LmgiCiAjaW5jbHVkZSAi
S1VSTEhhc2guaCIKICNpbmNsdWRlICJMYXlvdXRUeXBlcy5oIgotI2luY2x1ZGUgIk1lbW9yeUlu
c3RydW1lbnRhdGlvbi5oIgogI2luY2x1ZGUgIk11dGF0aW9uT2JzZXJ2ZXIuaCIKICNpbmNsdWRl
ICJSZW5kZXJTdHlsZUNvbnN0YW50cy5oIgogI2luY2x1ZGUgIlNjcmlwdFdyYXBwYWJsZS5oIgpA
QCAtNjYsNiArNjUsNyBAQCBjbGFzcyBGcmFtZTsKIGNsYXNzIEhUTUxJbnB1dEVsZW1lbnQ7CiBj
bGFzcyBJbnRSZWN0OwogY2xhc3MgS2V5Ym9hcmRFdmVudDsKK2NsYXNzIE1lbW9yeU9iamVjdElu
Zm87CiBjbGFzcyBOU1Jlc29sdmVyOwogY2xhc3MgTmFtZWROb2RlTWFwOwogY2xhc3MgTmFtZU5v
ZGVMaXN0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1JlbmRl
clN0eWxlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZS5j
cHAKaW5kZXggOGU1YTkwZThjZmRkYjE1NDA4NzYxYjkyNzJjYWU4ODY5MWU4YTc5OC4uM2ZmZmFm
OTM1YWJkMzZiZTVjODk2MDM5NTNkYjRjOGZiN2FmYmE1YSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGUuY3BwCkBAIC0yOCw2ICsyOCw3IEBACiAjaW5j
bHVkZSAiQ1NTUHJvcGVydHlOYW1lcy5oIgogI2luY2x1ZGUgIkNTU1dyYXBTaGFwZXMuaCIKICNp
bmNsdWRlICJGb250U2VsZWN0b3IuaCIKKyNpbmNsdWRlICJNZW1vcnlJbnN0cnVtZW50YXRpb24u
aCIKICNpbmNsdWRlICJRdW90ZXNEYXRhLmgiCiAjaW5jbHVkZSAiUmVuZGVyQXJlbmEuaCIKICNp
bmNsdWRlICJSZW5kZXJPYmplY3QuaCIKQEAgLTE0ODYsNCArMTQ4Nyw0MCBAQCBMYXlvdXRCb3hF
eHRlbnQgUmVuZGVyU3R5bGU6OmltYWdlT3V0c2V0cyhjb25zdCBOaW5lUGllY2VJbWFnZSYgaW1h
Z2UpIGNvbnN0CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBOaW5lUGllY2VJbWFnZTo6Y29t
cHV0ZU91dHNldChpbWFnZS5vdXRzZXQoKS5sZWZ0KCksIGJvcmRlckxlZnRXaWR0aCgpKSk7CiB9
CiAKK3N0cnVjdCBJbnN0cnVtZW50ZWRSZW5kZXJTdHlsZSA6IHB1YmxpYyBSZWZDb3VudGVkPElu
c3RydW1lbnRlZFJlbmRlclN0eWxlPiB7CisgICAgdW5zaWduZWQgbV9iaXRmaWVsZHM7CisgICAg
dm9pZCogZGF0YVJlZnNbN107CisgICAgdm9pZCogb3duUHRyc1sxXTsKKyNpZiBFTkFCTEUoU1ZH
KQorICAgIHZvaWQqIGRhdGFSZWZTdmdTdHlsZTsKKyNlbmRpZgorICAgIHN0cnVjdCBJbmhlcml0
ZWRGbGFncyB7CisgICAgICAgIHVuc2lnbmVkIG1fYml0ZmllbGRzWzJdOworICAgIH0gaW5oZXJp
dGVkX2ZsYWdzOworICAgIHN0cnVjdCBOb25Jbmhlcml0ZWRGbGFncyB7CisgICAgICAgIHVuc2ln
bmVkIG1fYml0ZmllbGRzWzJdOworICAgIH0gbm9uaW5oZXJpdGVkX2ZsYWdzOworfTsKKwordm9p
ZCBSZW5kZXJTdHlsZTo6cmVwb3J0TWVtb3J5VXNhZ2UoTWVtb3J5T2JqZWN0SW5mbyogbWVtb3J5
T2JqZWN0SW5mbykgY29uc3QKK3sKKyAgICBDT01QSUxFX0FTU0VSVChzaXplb2YoUmVuZGVyU3R5
bGUpID09IHNpemVvZihJbnN0cnVtZW50ZWRSZW5kZXJTdHlsZSksIHJlcG9ydE1lbW9yeVVzYWdl
X21heV9uZWVkX2FuX3VwZGF0ZSk7CisgICAgTWVtb3J5Q2xhc3NJbmZvPFJlbmRlclN0eWxlPiBp
bmZvKG1lbW9yeU9iamVjdEluZm8sIHRoaXMsIE1lbW9yeUluc3RydW1lbnRhdGlvbjo6Q1NTKTsK
KyAgICBpbmZvLmFkZE1lbWJlcihtX2JveC5nZXQoKSk7CisgICAgaW5mby5hZGRNZW1iZXIodmlz
dWFsLmdldCgpKTsKKyAgICAvLyBGSVhNRTogbV9iYWNrZ3JvdW5kIGNvbnRhaW5zIFJlZlB0cjxT
dHlsZUltYWdlPiB0aGF0IG1pZ2h0IG5lZWQgdG8gYmUgaW5zdHJ1bWVudGVkLgorICAgIGluZm8u
YWRkTWVtYmVyKG1fYmFja2dyb3VuZC5nZXQoKSk7CisgICAgLy8gRklYTUU6IHN1cnJvbmQgY29u
dGFpbnMgc29tZSBmaWVsZHMgZS5nLiBCb3JkZXJEYXRhIHRoYXQgbWlnaHQgbmVlZCB0byBiZSBp
bnN0cnVtZW50ZWQuCisgICAgaW5mby5hZGRNZW1iZXIoc3Vycm91bmQuZ2V0KCkpOworICAgIGlu
Zm8uYWRkSW5zdHJ1bWVudGVkTWVtYmVyKHJhcmVOb25Jbmhlcml0ZWREYXRhLmdldCgpKTsKKyAg
ICBpbmZvLmFkZEluc3RydW1lbnRlZE1lbWJlcihyYXJlSW5oZXJpdGVkRGF0YS5nZXQoKSk7Cisg
ICAgLy8gRklYTUU6IGluaGVyaXRlZCBjb250YWlucyBTdHlsZUltYWdlIGFuZCBGb250IGZpZWxk
cyB0aGF0IG1pZ2h0IG5lZWQgdG8gYmUgaW5zdHJ1bWVudGVkLgorICAgIGluZm8uYWRkTWVtYmVy
KGluaGVyaXRlZC5nZXQoKSk7CisgICAgaWYgKG1fY2FjaGVkUHNldWRvU3R5bGVzKQorICAgICAg
ICBpbmZvLmFkZFZlY3RvcigqbV9jYWNoZWRQc2V1ZG9TdHlsZXMpOworI2lmIEVOQUJMRShTVkcp
CisgICAgaW5mby5hZGRNZW1iZXIobV9zdmdTdHlsZSk7CisjZW5kaWYKK30KKwogfSAvLyBuYW1l
c3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxl
L1JlbmRlclN0eWxlLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5
bGUuaAppbmRleCA1ZThhMTJjOTVmZjU2M2VhZjJmZThiMGE3MjlkMDVmMDcyNmU0ZjQ2Li4zNmM1
YmYwN2QzMmVhZjNjNWJhM2U0OTc1YjkwMmM1ZTFiODY5ZjQ2IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGUuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGUuaApAQCAtMTA1LDYgKzEwNSw3IEBAIGNsYXNz
IEJvcmRlckRhdGE7CiBjbGFzcyBDb3VudGVyQ29udGVudDsKIGNsYXNzIEN1cnNvckxpc3Q7CiBj
bGFzcyBJbnRSZWN0OworY2xhc3MgTWVtb3J5T2JqZWN0SW5mbzsKIGNsYXNzIFBhaXI7CiBjbGFz
cyBTaGFkb3dEYXRhOwogY2xhc3MgU3R5bGVJbWFnZTsKQEAgLTE1NDEsNiArMTU0Miw4IEBAIHB1
YmxpYzoKIAogICAgIHZvaWQgc2V0SGFzRXhwbGljaXRseUluaGVyaXRlZFByb3BlcnRpZXMoKSB7
IG1fYml0ZmllbGRzLnNldEV4cGxpY2l0SW5oZXJpdGFuY2UodHJ1ZSk7IH0KICAgICBib29sIGhh
c0V4cGxpY2l0bHlJbmhlcml0ZWRQcm9wZXJ0aWVzKCkgY29uc3QgeyByZXR1cm4gbV9iaXRmaWVs
ZHMuZXhwbGljaXRJbmhlcml0YW5jZSgpOyB9CisKKyAgICB2b2lkIHJlcG9ydE1lbW9yeVVzYWdl
KE1lbW9yeU9iamVjdEluZm8qKSBjb25zdDsKICAgICAKICAgICAvLyBJbml0aWFsIHZhbHVlcyBm
b3IgYWxsIHRoZSBwcm9wZXJ0aWVzCiAgICAgc3RhdGljIEVCb3JkZXJDb2xsYXBzZSBpbml0aWFs
Qm9yZGVyQ29sbGFwc2UoKSB7IHJldHVybiBCU0VQQVJBVEU7IH0KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9TdHlsZVJhcmVJbmhlcml0ZWREYXRhLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9TdHlsZVJhcmVJbmhlcml0ZWREYXRhLmNwcApp
bmRleCA5N2RlNDJkM2MzNWE5YWQ5YWNhNGI1MmYyZWU0ZTIwNjhlZGVkMjhkLi5kODI5MDRhMGZh
NzNhODBmM2VjNjYyZTM4MDk0ZDczOTRiZjE2YjU4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvc3R5bGUvU3R5bGVSYXJlSW5oZXJpdGVkRGF0YS5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1N0eWxlUmFyZUluaGVyaXRlZERhdGEuY3BwCkBAIC0y
Myw2ICsyMyw3IEBACiAjaW5jbHVkZSAiU3R5bGVSYXJlSW5oZXJpdGVkRGF0YS5oIgogCiAjaW5j
bHVkZSAiQ3Vyc29yTGlzdC5oIgorI2luY2x1ZGUgIk1lbW9yeUluc3RydW1lbnRhdGlvbi5oIgog
I2luY2x1ZGUgIlF1b3Rlc0RhdGEuaCIKICNpbmNsdWRlICJSZW5kZXJTdHlsZS5oIgogI2luY2x1
ZGUgIlJlbmRlclN0eWxlQ29uc3RhbnRzLmgiCkBAIC0yNjEsNCArMjYyLDQyIEBAIGJvb2wgU3R5
bGVSYXJlSW5oZXJpdGVkRGF0YTo6c2hhZG93RGF0YUVxdWl2YWxlbnQoY29uc3QgU3R5bGVSYXJl
SW5oZXJpdGVkRGF0YSYKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAorc3RydWN0IEluc3RydW1lbnRl
ZFN0eWxlUmFyZUluaGVyaXRlZERhdGEgOiBwdWJsaWMgUmVmQ291bnRlZDxJbnN0cnVtZW50ZWRT
dHlsZVJhcmVJbmhlcml0ZWREYXRhPiB7CisgICAgQ29sb3IgY29sb3JzWzZdOworICAgIGZsb2F0
IGZsb2F0c1syXTsKKyAgICB2b2lkKiBvd25QdHJzWzFdOworICAgIHZvaWQqIHN0cmluZ3NbNV07
CisgICAgdm9pZCogcmVmUHRyc1syXTsKKyAgICBMZW5ndGggbGVuZ3Roc1sxXTsKKyAgICBzaG9y
dCBzaG9ydHNbNV07CisgICAgdW5zaWduZWQgYml0RmllbGRzWzJdOworICAgIHVuc2lnbmVkIHVu
c2lnbmVkc1sxXTsKKyNpZiBFTkFCTEUoQ1NTX0lNQUdFX1JFU09MVVRJT04pCisgICAgZmxvYXQg
bV9pbWFnZVJlc29sdXRpb247CisjZW5kaWYKKyNpZiBFTkFCTEUoVE9VQ0hfRVZFTlRTKQorICAg
IENvbG9yIHRhcEhpZ2hsaWdodENvbG9yOworI2VuZGlmCisjaWYgRU5BQkxFKENTU19WQVJJQUJM
RVMpCisgICAgdm9pZCogZGF0YVJlZjsKKyNlbmRpZgorfTsKKwordm9pZCBTdHlsZVJhcmVJbmhl
cml0ZWREYXRhOjpyZXBvcnRNZW1vcnlVc2FnZShNZW1vcnlPYmplY3RJbmZvKiBtZW1vcnlPYmpl
Y3RJbmZvKSBjb25zdAoreworICAgIENPTVBJTEVfQVNTRVJUKHNpemVvZihTdHlsZVJhcmVJbmhl
cml0ZWREYXRhKSA9PSBzaXplb2YoSW5zdHJ1bWVudGVkU3R5bGVSYXJlSW5oZXJpdGVkRGF0YSks
IHJlcG9ydE1lbW9yeVVzYWdlX21heV9uZWVkX2FuX3VwZGF0ZSk7CisgICAgTWVtb3J5Q2xhc3NJ
bmZvPFN0eWxlUmFyZUluaGVyaXRlZERhdGE+IGluZm8obWVtb3J5T2JqZWN0SW5mbywgdGhpcywg
TWVtb3J5SW5zdHJ1bWVudGF0aW9uOjpDU1MpOworICAgIGluZm8uYWRkTWVtYmVyKHRleHRTaGFk
b3cuZ2V0KCkpOworICAgIGluZm8uYWRkU3RyaW5nKGhpZ2hsaWdodCk7CisgICAgaW5mby5hZGRN
ZW1iZXIoY3Vyc29yRGF0YS5nZXQoKSk7CisgICAgaW5mby5hZGRTdHJpbmcoaHlwaGVuYXRpb25T
dHJpbmcpOworICAgIGluZm8uYWRkU3RyaW5nKGxvY2FsZSk7CisgICAgaW5mby5hZGRTdHJpbmco
dGV4dEVtcGhhc2lzQ3VzdG9tTWFyayk7CisgICAgaW5mby5hZGRNZW1iZXIocXVvdGVzLmdldCgp
KTsKKyAgICBpbmZvLmFkZFN0cmluZyhtX2xpbmVHcmlkKTsKKyNpZiBFTkFCTEUoQ1NTX1ZBUklB
QkxFUykKKyAgICBpbmZvLmFkZE1lbWJlcihtX3ZhcmlhYmxlcy5nZXQoKSk7CisjZW5kaWYKK30K
KwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL3N0eWxlL1N0eWxlUmFyZUluaGVyaXRlZERhdGEuaCBiL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9zdHlsZS9TdHlsZVJhcmVJbmhlcml0ZWREYXRhLmgKaW5kZXggYjMwOTgyZGY5N2Ix
Y2UyNjJlZDcyZGRlNzAxN2ZlOGY4ZTVlNWFjMC4uYmI0MzNlZDI3NmNhZGI1Mjg0ODVhMzNkZjQ0
M2IxZmFiNWRkNWJhOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxl
L1N0eWxlUmFyZUluaGVyaXRlZERhdGEuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
c3R5bGUvU3R5bGVSYXJlSW5oZXJpdGVkRGF0YS5oCkBAIC0zOSw2ICszOSw3IEBACiBuYW1lc3Bh
Y2UgV2ViQ29yZSB7CiAKIGNsYXNzIEN1cnNvckxpc3Q7CitjbGFzcyBNZW1vcnlPYmplY3RJbmZv
OwogY2xhc3MgUXVvdGVzRGF0YTsKIGNsYXNzIFNoYWRvd0RhdGE7CiAKQEAgLTU4LDYgKzU5LDgg
QEAgcHVibGljOgogICAgIH0KICAgICBib29sIHNoYWRvd0RhdGFFcXVpdmFsZW50KGNvbnN0IFN0
eWxlUmFyZUluaGVyaXRlZERhdGEmKSBjb25zdDsKIAorICAgIHZvaWQgcmVwb3J0TWVtb3J5VXNh
Z2UoTWVtb3J5T2JqZWN0SW5mbyopIGNvbnN0OworCiAgICAgQ29sb3IgdGV4dFN0cm9rZUNvbG9y
OwogICAgIGZsb2F0IHRleHRTdHJva2VXaWR0aDsKICAgICBDb2xvciB0ZXh0RmlsbENvbG9yOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1N0eWxlUmFyZU5vbklu
aGVyaXRlZERhdGEuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1N0eWxlUmFy
ZU5vbkluaGVyaXRlZERhdGEuY3BwCmluZGV4IDIyYjMyNzJlOGMzN2QyMWVlMzY0OWMwYTQ1YTdk
NDNkNTEyMTA0NGQuLmJiMzc0YjdmOTZmOGZjMTYxYjNlYjMyMTZkYTliMjY0YTAyOGIzMWIgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9TdHlsZVJhcmVOb25Jbmhl
cml0ZWREYXRhLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvU3R5bGVS
YXJlTm9uSW5oZXJpdGVkRGF0YS5jcHAKQEAgLTIzLDYgKzIzLDcgQEAKICNpbmNsdWRlICJTdHls
ZVJhcmVOb25Jbmhlcml0ZWREYXRhLmgiCiAKICNpbmNsdWRlICJDb250ZW50RGF0YS5oIgorI2lu
Y2x1ZGUgIk1lbW9yeUluc3RydW1lbnRhdGlvbi5oIgogI2luY2x1ZGUgIlJlbmRlckNvdW50ZXIu
aCIKICNpbmNsdWRlICJSZW5kZXJTdHlsZS5oIgogI2luY2x1ZGUgIlNoYWRvd0RhdGEuaCIKQEAg
LTI4Niw0ICsyODcsNTUgQEAgYm9vbCBTdHlsZVJhcmVOb25Jbmhlcml0ZWREYXRhOjp0cmFuc2l0
aW9uRGF0YUVxdWl2YWxlbnQoY29uc3QgU3R5bGVSYXJlTm9uSW5oZXIKICAgICByZXR1cm4gdHJ1
ZTsKIH0KIAorc3RydWN0IEluc3RydW1lbnRlZFN0eWxlUmFyZU5vbkluaGVyaXRlZERhdGEgOiBw
dWJsaWMgUmVmQ291bnRlZDxJbnN0cnVtZW50ZWRTdHlsZVJhcmVOb25Jbmhlcml0ZWREYXRhPiB7
CisgICAgZmxvYXQgZmxvYXRzWzVdOworICAgIHNob3J0IHNob3J0c1syXTsKKyAgICBMZW5ndGgg
bGVuZ3Roc1s0XTsKKyAgICBMaW5lQ2xhbXBWYWx1ZSBsaW5lQ2xhbXA7CisjaWYgRU5BQkxFKERB
U0hCT0FSRF9TVVBQT1JUKQorICAgIFZlY3RvcjxTdHlsZURhc2hib2FyZFJlZ2lvbj4gZGFzaGJv
YXJkUmVnaW9uczsKKyNlbmRpZgorICAgIHZvaWQqIGRhdGFSZWZzWzddOworI2lmIEVOQUJMRShD
U1NfRklMVEVSUykKKyAgICB2b2lkKiBkYXRhUmVmOworI2VuZGlmCisgICAgdm9pZCogb3duUHRy
c1s1XTsKKyAgICB2b2lkKiByZWZQdHJzWzNdOworICAgIEZpbGxMYXllciBmaWxsTGF5ZXI7Cisg
ICAgTmluZVBpZWNlSW1hZ2UgbmluZVBpZWNlSW1hZ2U7CisgICAgTGVuZ3RoU2l6ZSBsZW5ndGhT
aXplOworICAgIENvbG9yIGNvbG9yc1s2XTsKKyAgICB2b2lkKiBzdHJpbmdzWzJdOworICAgIHVu
c2lnbmVkIGJpdEZpZWxkc1syXTsKK307CisKK3ZvaWQgU3R5bGVSYXJlTm9uSW5oZXJpdGVkRGF0
YTo6cmVwb3J0TWVtb3J5VXNhZ2UoTWVtb3J5T2JqZWN0SW5mbyogbWVtb3J5T2JqZWN0SW5mbykg
Y29uc3QKK3sKKyAgICBDT01QSUxFX0FTU0VSVChzaXplb2YoU3R5bGVSYXJlTm9uSW5oZXJpdGVk
RGF0YSkgPT0gc2l6ZW9mKEluc3RydW1lbnRlZFN0eWxlUmFyZU5vbkluaGVyaXRlZERhdGEpLCBy
ZXBvcnRNZW1vcnlVc2FnZV9tYXlfbmVlZF9hbl91cGRhdGUpOworICAgIE1lbW9yeUNsYXNzSW5m
bzxTdHlsZVJhcmVOb25Jbmhlcml0ZWREYXRhPiBpbmZvKG1lbW9yeU9iamVjdEluZm8sIHRoaXMs
IE1lbW9yeUluc3RydW1lbnRhdGlvbjo6Q1NTKTsKKyNpZiBFTkFCTEUoREFTSEJPQVJEX1NVUFBP
UlQpCisgICAgaW5mby5hZGRWZWN0b3IobV9kYXNoYm9hcmRSZWdpb25zKTsKKyNlbmRpZgorICAg
IGluZm8uYWRkTWVtYmVyKG1fZGVwcmVjYXRlZEZsZXhpYmxlQm94LmdldCgpKTsKKyAgICBpbmZv
LmFkZE1lbWJlcihtX2ZsZXhpYmxlQm94LmdldCgpKTsKKyAgICBpbmZvLmFkZE1lbWJlcihtX21h
cnF1ZWUuZ2V0KCkpOworICAgIGluZm8uYWRkTWVtYmVyKG1fbXVsdGlDb2wuZ2V0KCkpOworICAg
IGluZm8uYWRkTWVtYmVyKG1fdHJhbnNmb3JtLmdldCgpKTsKKyNpZiBFTkFCTEUoQ1NTX0ZJTFRF
UlMpCisgICAgaW5mby5hZGRNZW1iZXIobV9maWx0ZXIuZ2V0KCkpOworI2VuZGlmCisgICAgaW5m
by5hZGRNZW1iZXIobV9ncmlkLmdldCgpKTsKKyAgICBpbmZvLmFkZE1lbWJlcihtX2dyaWRJdGVt
LmdldCgpKTsKKyAgICBpbmZvLmFkZE1lbWJlcihtX2NvbnRlbnQuZ2V0KCkpOworICAgIGluZm8u
YWRkTWVtYmVyKG1fY291bnRlckRpcmVjdGl2ZXMuZ2V0KCkpOworICAgIGluZm8uYWRkTWVtYmVy
KG1fYm94U2hhZG93LmdldCgpKTsKKyAgICBpbmZvLmFkZE1lbWJlcihtX2JveFJlZmxlY3QuZ2V0
KCkpOworICAgIGluZm8uYWRkTWVtYmVyKG1fYW5pbWF0aW9ucy5nZXQoKSk7CisgICAgaW5mby5h
ZGRNZW1iZXIobV90cmFuc2l0aW9ucy5nZXQoKSk7CisgICAgaW5mby5hZGRNZW1iZXIobV93cmFw
U2hhcGVJbnNpZGUuZ2V0KCkpOworICAgIGluZm8uYWRkTWVtYmVyKG1fd3JhcFNoYXBlT3V0c2lk
ZS5nZXQoKSk7CisgICAgaW5mby5hZGRTdHJpbmcobV9mbG93VGhyZWFkKTsKKyAgICBpbmZvLmFk
ZFN0cmluZyhtX3JlZ2lvblRocmVhZCk7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9TdHlsZVJhcmVOb25Jbmhl
cml0ZWREYXRhLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvU3R5bGVSYXJlTm9u
SW5oZXJpdGVkRGF0YS5oCmluZGV4IDVlNmZkZTJhNjE3Y2YzOTUyNWU1NTdiZDkwOTg2NjIyMTRl
OGNiZWUuLjBmZTZlNThjNjMzYmNjYTliYzJiNGU3N2ZkM2IyMDYwZTNkNzZkNGUgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9TdHlsZVJhcmVOb25Jbmhlcml0ZWRE
YXRhLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1N0eWxlUmFyZU5vbklu
aGVyaXRlZERhdGEuaApAQCAtMzksNiArMzksNyBAQAogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBj
bGFzcyBBbmltYXRpb25MaXN0OworY2xhc3MgTWVtb3J5T2JqZWN0SW5mbzsKIGNsYXNzIFNoYWRv
d0RhdGE7CiBjbGFzcyBTdHlsZURlcHJlY2F0ZWRGbGV4aWJsZUJveERhdGE7CiAjaWYgRU5BQkxF
KENTU19GSUxURVJTKQpAQCAtODksNiArOTAsOCBAQCBwdWJsaWM6CiAgICAgYm9vbCBhbmltYXRp
b25EYXRhRXF1aXZhbGVudChjb25zdCBTdHlsZVJhcmVOb25Jbmhlcml0ZWREYXRhJikgY29uc3Q7
CiAgICAgYm9vbCB0cmFuc2l0aW9uRGF0YUVxdWl2YWxlbnQoY29uc3QgU3R5bGVSYXJlTm9uSW5o
ZXJpdGVkRGF0YSYpIGNvbnN0OwogCisgICAgdm9pZCByZXBvcnRNZW1vcnlVc2FnZShNZW1vcnlP
YmplY3RJbmZvKikgY29uc3Q7CisKICAgICBmbG9hdCBvcGFjaXR5OyAvLyBXaGV0aGVyIG9yIG5v
dCB3ZSdyZSB0cmFuc3BhcmVudC4KIAogICAgIGZsb2F0IG1fYXNwZWN0UmF0aW9EZW5vbWluYXRv
cjsK
</data>
<flag name="review"
          id="163139"
          type_id="1"
          status="-"
          setter="yurys"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>154702</attachid>
            <date>2012-07-26 11:32:06 -0700</date>
            <delta_ts>2012-07-30 04:50:36 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-91759-20120726223154.patch</filename>
            <type>text/plain</type>
            <size>13969</size>
            <attacher name="Alexei Filippov">alph</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTIzNzYzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMmJlYmY2NGJmYThmNzU4
MTdjNmEyNjVmMjIxYWIzNWZkZjAyMTczYy4uNjRhYzAwMmMwZDBkMWE1MzM1ODc4MDk0Y2I1MDgw
ZDZhMDA5OGYwOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM3IEBACisyMDEyLTA3LTI2ICBBbGV4
ZWkgRmlsaXBwb3YgIDxhbGV4ZWlmQGNocm9taXVtLm9yZz4KKworICAgICAgICBXZWIgSW5zcGVj
dG9yOiBjb3VudCBSZW5kZXJTdHlsZSBvYmplY3RzIGluIHRoZSBuYXRpdmUgbWVtb3J5IHByb2Zp
bGVyCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05MTc1
OQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogYmlu
ZGluZ3MvanMvU2NyaXB0V3JhcHBhYmxlLmg6CisgICAgICAgICogYmluZGluZ3MvdjgvU2NyaXB0
V3JhcHBhYmxlLmg6CisgICAgICAgICogZG9tL01lbW9yeUluc3RydW1lbnRhdGlvbi5oOgorICAg
ICAgICAqIGRvbS9Ob2RlLmNwcDoKKyAgICAgICAgKEluc3RydW1lbnRlZE5vZGUpOgorICAgICAg
ICAoV2ViQ29yZSk6CisgICAgICAgIChXZWJDb3JlOjpOb2RlOjpyZXBvcnRNZW1vcnlVc2FnZSk6
CisgICAgICAgICogZG9tL05vZGUuaDoKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAqIHJl
bmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJT
dHlsZTo6cmVwb3J0TWVtb3J5VXNhZ2UpOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgICog
cmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlLmg6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAg
ICAgKiByZW5kZXJpbmcvc3R5bGUvU3R5bGVSYXJlSW5oZXJpdGVkRGF0YS5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpTdHlsZVJhcmVJbmhlcml0ZWREYXRhOjpyZXBvcnRNZW1vcnlVc2FnZSk6Cisg
ICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKiByZW5kZXJpbmcvc3R5bGUvU3R5bGVSYXJlSW5o
ZXJpdGVkRGF0YS5oOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChTdHlsZVJhcmVJbmhl
cml0ZWREYXRhKToKKyAgICAgICAgKiByZW5kZXJpbmcvc3R5bGUvU3R5bGVSYXJlTm9uSW5oZXJp
dGVkRGF0YS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTdHlsZVJhcmVOb25Jbmhlcml0ZWREYXRh
OjpyZXBvcnRNZW1vcnlVc2FnZSk6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKiByZW5k
ZXJpbmcvc3R5bGUvU3R5bGVSYXJlTm9uSW5oZXJpdGVkRGF0YS5oOgorICAgICAgICAoV2ViQ29y
ZSk6CisgICAgICAgIChTdHlsZVJhcmVOb25Jbmhlcml0ZWREYXRhKToKKwogMjAxMi0wNy0yNiAg
VnNldm9sb2QgVmxhc292ICA8dnNldmlrQGNocm9taXVtLm9yZz4KIAogICAgICAgICBXZWIgSW5z
cGVjdG9yOiBJbnRyb2R1Y2UgZ2VuZXJpYyBMaXZlTG9jYXRpb24sIG1ha2UgU2NyaXB0LkxvY2F0
aW9uIGluaGVyaXQgaXQuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9T
Y3JpcHRXcmFwcGFibGUuaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1NjcmlwdFdyYXBw
YWJsZS5oCmluZGV4IDNjYjVkODE2YzExMWI4MDdmYTA2OTdhNjdjZDlmOWE5NjQyZDA1ZTcuLjBj
ZjJkN2ExNmM0ZWUwOGRjNDUzMDQ5MmUxMjQzMTQwZThmOWI1OTEgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1NjcmlwdFdyYXBwYWJsZS5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL2pzL1NjcmlwdFdyYXBwYWJsZS5oCkBAIC0zMiw2ICszMiw3IEBACiAjZGVm
aW5lIFNjcmlwdFdyYXBwYWJsZV9oCiAKICNpbmNsdWRlICJKU0RPTVdyYXBwZXIuaCIKKyNpbmNs
dWRlICJNZW1vcnlJbnN0cnVtZW50YXRpb24uaCIKICNpbmNsdWRlIDxoZWFwL1dlYWsuaD4KIAog
bmFtZXNwYWNlIFdlYkNvcmUgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
djgvU2NyaXB0V3JhcHBhYmxlLmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9TY3JpcHRX
cmFwcGFibGUuaAppbmRleCBlZjJmNzYxOWYyNDUxMTA2NTdjN2FlMGE1YmEwMmVkYzA0ZDZmZjY5
Li42NGE5MDUzOTI4YTYwZTE1MDgyMTY0NzYwNDI4NTZiMmE3YzNkMDMwIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9TY3JpcHRXcmFwcGFibGUuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy92OC9TY3JpcHRXcmFwcGFibGUuaApAQCAtMzEsNiArMzEsNyBAQAog
I2lmbmRlZiBTY3JpcHRXcmFwcGFibGVfaAogI2RlZmluZSBTY3JpcHRXcmFwcGFibGVfaAogCisj
aW5jbHVkZSAiTWVtb3J5SW5zdHJ1bWVudGF0aW9uLmgiCiAjaW5jbHVkZSA8djguaD4KIAogbmFt
ZXNwYWNlIFdlYkNvcmUgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL01lbW9yeUlu
c3RydW1lbnRhdGlvbi5oIGIvU291cmNlL1dlYkNvcmUvZG9tL01lbW9yeUluc3RydW1lbnRhdGlv
bi5oCmluZGV4IDk2YzAxNzg4N2RkNzQ3ZTk5Nzc3YWYyMjVmYzI0ZjBiYzY2Mjc1ZDUuLjczMDcz
NWVmZjZkNWI1YjY4MzY3ZWY4ZjgyODZkNzI1MzIzMWIyYmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2RvbS9NZW1vcnlJbnN0cnVtZW50YXRpb24uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9k
b20vTWVtb3J5SW5zdHJ1bWVudGF0aW9uLmgKQEAgLTMwLDggKzMwLDkgQEAKIAogI2lmbmRlZiBN
ZW1vcnlJbnN0cnVtZW50YXRpb25faAogI2RlZmluZSBNZW1vcnlJbnN0cnVtZW50YXRpb25faAot
I2luY2x1ZGUgPHN0ZGlvLmg+CiAKKyNpbmNsdWRlIDxEYXRhUmVmLmg+CisjaW5jbHVkZSA8c3Rk
aW8uaD4KICNpbmNsdWRlIDx3dGYvQXNzZXJ0aW9ucy5oPgogI2luY2x1ZGUgPHd0Zi9Gb3J3YXJk
Lmg+CiAjaW5jbHVkZSA8d3RmL093blB0ci5oPgpAQCAtOTUsNiArOTYsMjQgQEAgcHJvdGVjdGVk
OgogICAgICAgICBzdGF0aWMgdm9pZCBhZGRNZW1iZXIoTWVtb3J5SW5zdHJ1bWVudGF0aW9uKiBp
bnN0cnVtZW50YXRpb24sIGNvbnN0IFQqIGNvbnN0JiB0LCBNZW1vcnlJbnN0cnVtZW50YXRpb246
Ok9iamVjdFR5cGUgb2JqZWN0VHlwZSkgeyBpbnN0cnVtZW50YXRpb24tPmFkZE1lbWJlckltcGwo
dCwgb2JqZWN0VHlwZSwgYnlQb2ludGVyKTsgfQogICAgIH07CiAKKyAgICB0ZW1wbGF0ZSA8dHlw
ZW5hbWUgVD4KKyAgICBzdHJ1Y3QgT3duaW5nVHJhaXRzPERhdGFSZWY8VD4gPiB7CisgICAgICAg
IHN0YXRpYyB2b2lkIGFkZEluc3RydW1lbnRlZE1lbWJlcihNZW1vcnlJbnN0cnVtZW50YXRpb24q
IGluc3RydW1lbnRhdGlvbiwgY29uc3QgRGF0YVJlZjxUPiYgdCkgeyBpbnN0cnVtZW50YXRpb24t
PmFkZEluc3RydW1lbnRlZE1lbWJlcih0LmdldCgpKTsgfQorICAgICAgICBzdGF0aWMgdm9pZCBh
ZGRNZW1iZXIoTWVtb3J5SW5zdHJ1bWVudGF0aW9uKiBpbnN0cnVtZW50YXRpb24sIGNvbnN0IERh
dGFSZWY8VD4mIHQsIE1lbW9yeUluc3RydW1lbnRhdGlvbjo6T2JqZWN0VHlwZSBvYmplY3RUeXBl
KSB7IGluc3RydW1lbnRhdGlvbi0+YWRkTWVtYmVyKHQuZ2V0KCksIG9iamVjdFR5cGUpOyB9Cisg
ICAgfTsKKworICAgIHRlbXBsYXRlIDx0eXBlbmFtZSBUPgorICAgIHN0cnVjdCBPd25pbmdUcmFp
dHM8T3duUHRyPFQ+ID4geworICAgICAgICBzdGF0aWMgdm9pZCBhZGRJbnN0cnVtZW50ZWRNZW1i
ZXIoTWVtb3J5SW5zdHJ1bWVudGF0aW9uKiBpbnN0cnVtZW50YXRpb24sIGNvbnN0IE93blB0cjxU
PiYgdCkgeyBpbnN0cnVtZW50YXRpb24tPmFkZEluc3RydW1lbnRlZE1lbWJlcih0LmdldCgpKTsg
fQorICAgICAgICBzdGF0aWMgdm9pZCBhZGRNZW1iZXIoTWVtb3J5SW5zdHJ1bWVudGF0aW9uKiBp
bnN0cnVtZW50YXRpb24sIGNvbnN0IE93blB0cjxUPiYgdCwgTWVtb3J5SW5zdHJ1bWVudGF0aW9u
OjpPYmplY3RUeXBlIG9iamVjdFR5cGUpIHsgaW5zdHJ1bWVudGF0aW9uLT5hZGRNZW1iZXIodC5n
ZXQoKSwgb2JqZWN0VHlwZSk7IH0KKyAgICB9OworCisgICAgdGVtcGxhdGUgPHR5cGVuYW1lIFQ+
CisgICAgc3RydWN0IE93bmluZ1RyYWl0czxSZWZQdHI8VD4gPiB7CisgICAgICAgIHN0YXRpYyB2
b2lkIGFkZEluc3RydW1lbnRlZE1lbWJlcihNZW1vcnlJbnN0cnVtZW50YXRpb24qIGluc3RydW1l
bnRhdGlvbiwgY29uc3QgUmVmUHRyPFQ+JiB0KSB7IGluc3RydW1lbnRhdGlvbi0+YWRkSW5zdHJ1
bWVudGVkTWVtYmVyKHQuZ2V0KCkpOyB9CisgICAgICAgIHN0YXRpYyB2b2lkIGFkZE1lbWJlcihN
ZW1vcnlJbnN0cnVtZW50YXRpb24qIGluc3RydW1lbnRhdGlvbiwgY29uc3QgUmVmUHRyPFQ+JiB0
LCBNZW1vcnlJbnN0cnVtZW50YXRpb246Ok9iamVjdFR5cGUgb2JqZWN0VHlwZSkgeyBpbnN0cnVt
ZW50YXRpb24tPmFkZE1lbWJlcih0LmdldCgpLCBvYmplY3RUeXBlKTsgfQorICAgIH07CisKICAg
ICB0ZW1wbGF0ZSA8dHlwZW5hbWUgVD4gdm9pZCBhZGRJbnN0cnVtZW50ZWRNZW1iZXJJbXBsKGNv
bnN0IFQqIGNvbnN0JiwgT3duaW5nVHlwZSk7CiAgICAgdGVtcGxhdGUgPHR5cGVuYW1lIFQ+IHZv
aWQgYWRkSW5zdHJ1bWVudGVkTWVtYmVySW1wbChjb25zdCBPd25QdHI8VD4qIGNvbnN0JiBvYmpl
Y3QsIE1lbW9yeUluc3RydW1lbnRhdGlvbjo6T3duaW5nVHlwZSBvd25pbmdUeXBlKSB7IGFkZElu
c3RydW1lbnRlZE1lbWJlckltcGwob2JqZWN0LT5nZXQoKSwgb3duaW5nVHlwZSk7IH0KICAgICB0
ZW1wbGF0ZSA8dHlwZW5hbWUgVD4gdm9pZCBhZGRJbnN0cnVtZW50ZWRNZW1iZXJJbXBsKGNvbnN0
IFJlZlB0cjxUPiogY29uc3QmIG9iamVjdCwgTWVtb3J5SW5zdHJ1bWVudGF0aW9uOjpPd25pbmdU
eXBlIG93bmluZ1R5cGUpIHsgYWRkSW5zdHJ1bWVudGVkTWVtYmVySW1wbChvYmplY3QtPmdldCgp
LCBvd25pbmdUeXBlKTsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL05vZGUuY3Bw
IGIvU291cmNlL1dlYkNvcmUvZG9tL05vZGUuY3BwCmluZGV4IGYzMGMzZmNiZmNmODYwYWUwMzQx
N2I1ZGNkMDExN2I5NmM1ZmY5ZWQuLmFiOGFjZWYwMzBmNjI2Y2RiODAxOGI1YjFiNzUwYjIxNTE4
M2I3Y2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9kb20vTm9kZS5jcHAKQEAgLTY3LDYgKzY3LDcgQEAKICNpbmNsdWRlICJLZXli
b2FyZEV2ZW50LmgiCiAjaW5jbHVkZSAiTGFiZWxzTm9kZUxpc3QuaCIKICNpbmNsdWRlICJMb2dn
aW5nLmgiCisjaW5jbHVkZSAiTWVtb3J5SW5zdHJ1bWVudGF0aW9uLmgiCiAjaW5jbHVkZSAiTW91
c2VFdmVudC5oIgogI2luY2x1ZGUgIk11dGF0aW9uRXZlbnQuaCIKICNpbmNsdWRlICJOYW1lTm9k
ZUxpc3QuaCIKQEAgLTI3OTYsMTQgKzI3OTcsMjIgQEAgdm9pZCBOb2RlOjpyZW1vdmVkTGFzdFJl
ZigpCiAgICAgZGVsZXRlIHRoaXM7CiB9CiAKK3N0cnVjdCBJbnN0cnVtZW50ZWROb2RlIDogcHVi
bGljIEV2ZW50VGFyZ2V0LCBwdWJsaWMgU2NyaXB0V3JhcHBhYmxlLCBwdWJsaWMgVHJlZVNoYXJl
ZDxOb2RlLCBDb250YWluZXJOb2RlPiB7CisgICAgdWludDMyX3QgZmxhZ3M7CisgICAgdm9pZCog
cHRyc1s0XTsKK307CisKIHZvaWQgTm9kZTo6cmVwb3J0TWVtb3J5VXNhZ2UoTWVtb3J5T2JqZWN0
SW5mbyogbWVtb3J5T2JqZWN0SW5mbykgY29uc3QKIHsKKyAgICBDT01QSUxFX0FTU0VSVChzaXpl
b2YoTm9kZSkgPT0gc2l6ZW9mKEluc3RydW1lbnRlZE5vZGUpLCByZXBvcnRNZW1vcnlVc2FnZV9t
YXlfbmVlZF9hbl91cGRhdGUpOwogICAgIE1lbW9yeUNsYXNzSW5mbzxOb2RlPiBpbmZvKG1lbW9y
eU9iamVjdEluZm8sIHRoaXMsIE1lbW9yeUluc3RydW1lbnRhdGlvbjo6RE9NKTsKICAgICBpbmZv
LnZpc2l0QmFzZUNsYXNzPFRyZWVTaGFyZWQ8Tm9kZSwgQ29udGFpbmVyTm9kZT4gPih0aGlzKTsK
ICAgICBpbmZvLnZpc2l0QmFzZUNsYXNzPFNjcmlwdFdyYXBwYWJsZT4odGhpcyk7CiAgICAgaW5m
by5hZGRJbnN0cnVtZW50ZWRNZW1iZXIobV9kb2N1bWVudCk7CiAgICAgaW5mby5hZGRJbnN0cnVt
ZW50ZWRNZW1iZXIobV9uZXh0KTsKICAgICBpbmZvLmFkZEluc3RydW1lbnRlZE1lbWJlcihtX3By
ZXZpb3VzKTsKKyAgICBpZiAobV9yZW5kZXJlcikKKyAgICAgICAgaW5mby5hZGRJbnN0cnVtZW50
ZWRNZW1iZXIobV9yZW5kZXJlci0+c3R5bGUoKSk7CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNv
cmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlLmggYi9Tb3VyY2UvV2ViQ29y
ZS9kb20vTm9kZS5oCmluZGV4IDg2YTdkMzllZDU4YmRiYzlkNDJmMjQxZTQ3NmM5YTZiMzE2YmQ2
ZDAuLjViYTM0MTFlZThlM2JjZGUyYjUxMjBhMDZiMWQyOWRmYTYzMjE0M2MgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL05vZGUu
aApAQCAtMjksNyArMjksNiBAQAogI2luY2x1ZGUgIkV2ZW50VGFyZ2V0LmgiCiAjaW5jbHVkZSAi
S1VSTEhhc2guaCIKICNpbmNsdWRlICJMYXlvdXRUeXBlcy5oIgotI2luY2x1ZGUgIk1lbW9yeUlu
c3RydW1lbnRhdGlvbi5oIgogI2luY2x1ZGUgIk11dGF0aW9uT2JzZXJ2ZXIuaCIKICNpbmNsdWRl
ICJSZW5kZXJTdHlsZUNvbnN0YW50cy5oIgogI2luY2x1ZGUgIlNjcmlwdFdyYXBwYWJsZS5oIgpA
QCAtNjYsNiArNjUsNyBAQCBjbGFzcyBGcmFtZTsKIGNsYXNzIEhUTUxJbnB1dEVsZW1lbnQ7CiBj
bGFzcyBJbnRSZWN0OwogY2xhc3MgS2V5Ym9hcmRFdmVudDsKK2NsYXNzIE1lbW9yeU9iamVjdElu
Zm87CiBjbGFzcyBOU1Jlc29sdmVyOwogY2xhc3MgTmFtZWROb2RlTWFwOwogY2xhc3MgTmFtZU5v
ZGVMaXN0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1JlbmRl
clN0eWxlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZS5j
cHAKaW5kZXggOGU1YTkwZThjZmRkYjE1NDA4NzYxYjkyNzJjYWU4ODY5MWU4YTc5OC4uMDc0Njc3
YzhiMGI4ZmI3NDY4NmM1MGU4NDIxNDE1MjgxYjE3YjhmNiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGUuY3BwCkBAIC0yOCw2ICsyOCw3IEBACiAjaW5j
bHVkZSAiQ1NTUHJvcGVydHlOYW1lcy5oIgogI2luY2x1ZGUgIkNTU1dyYXBTaGFwZXMuaCIKICNp
bmNsdWRlICJGb250U2VsZWN0b3IuaCIKKyNpbmNsdWRlICJNZW1vcnlJbnN0cnVtZW50YXRpb24u
aCIKICNpbmNsdWRlICJRdW90ZXNEYXRhLmgiCiAjaW5jbHVkZSAiUmVuZGVyQXJlbmEuaCIKICNp
bmNsdWRlICJSZW5kZXJPYmplY3QuaCIKQEAgLTE0ODYsNCArMTQ4NywyNCBAQCBMYXlvdXRCb3hF
eHRlbnQgUmVuZGVyU3R5bGU6OmltYWdlT3V0c2V0cyhjb25zdCBOaW5lUGllY2VJbWFnZSYgaW1h
Z2UpIGNvbnN0CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBOaW5lUGllY2VJbWFnZTo6Y29t
cHV0ZU91dHNldChpbWFnZS5vdXRzZXQoKS5sZWZ0KCksIGJvcmRlckxlZnRXaWR0aCgpKSk7CiB9
CiAKK3ZvaWQgUmVuZGVyU3R5bGU6OnJlcG9ydE1lbW9yeVVzYWdlKE1lbW9yeU9iamVjdEluZm8q
IG1lbW9yeU9iamVjdEluZm8pIGNvbnN0Cit7CisgICAgTWVtb3J5Q2xhc3NJbmZvPFJlbmRlclN0
eWxlPiBpbmZvKG1lbW9yeU9iamVjdEluZm8sIHRoaXMsIE1lbW9yeUluc3RydW1lbnRhdGlvbjo6
Q1NTKTsKKyAgICBpbmZvLmFkZE1lbWJlcihtX2JveCk7CisgICAgaW5mby5hZGRNZW1iZXIodmlz
dWFsKTsKKyAgICAvLyBGSVhNRTogbV9iYWNrZ3JvdW5kIGNvbnRhaW5zIFJlZlB0cjxTdHlsZUlt
YWdlPiB0aGF0IG1pZ2h0IG5lZWQgdG8gYmUgaW5zdHJ1bWVudGVkLgorICAgIGluZm8uYWRkTWVt
YmVyKG1fYmFja2dyb3VuZCk7CisgICAgLy8gRklYTUU6IHN1cnJvbmQgY29udGFpbnMgc29tZSBm
aWVsZHMgZS5nLiBCb3JkZXJEYXRhIHRoYXQgbWlnaHQgbmVlZCB0byBiZSBpbnN0cnVtZW50ZWQu
CisgICAgaW5mby5hZGRNZW1iZXIoc3Vycm91bmQpOworICAgIGluZm8uYWRkSW5zdHJ1bWVudGVk
TWVtYmVyKHJhcmVOb25Jbmhlcml0ZWREYXRhKTsKKyAgICBpbmZvLmFkZEluc3RydW1lbnRlZE1l
bWJlcihyYXJlSW5oZXJpdGVkRGF0YSk7CisgICAgLy8gRklYTUU6IGluaGVyaXRlZCBjb250YWlu
cyBTdHlsZUltYWdlIGFuZCBGb250IGZpZWxkcyB0aGF0IG1pZ2h0IG5lZWQgdG8gYmUgaW5zdHJ1
bWVudGVkLgorICAgIGluZm8uYWRkTWVtYmVyKGluaGVyaXRlZCk7CisgICAgaWYgKG1fY2FjaGVk
UHNldWRvU3R5bGVzKQorICAgICAgICBpbmZvLmFkZFZlY3RvcigqbV9jYWNoZWRQc2V1ZG9TdHls
ZXMpOworI2lmIEVOQUJMRShTVkcpCisgICAgaW5mby5hZGRNZW1iZXIobV9zdmdTdHlsZSk7Cisj
ZW5kaWYKK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGUuaAppbmRleCBkNTZkMmQzYzFjMWRmZjliZTZlM2MxMzM5
NjQ4ZmVjYzM2NzA4NmU2Li5lMjA0OGFjZjBlOWI0OGE0ZTc4YjViOTM3MTQ2MDNmMWY4ZWRiOGQw
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGUu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGUuaApAQCAt
MTA1LDYgKzEwNSw3IEBAIGNsYXNzIEJvcmRlckRhdGE7CiBjbGFzcyBDb3VudGVyQ29udGVudDsK
IGNsYXNzIEN1cnNvckxpc3Q7CiBjbGFzcyBJbnRSZWN0OworY2xhc3MgTWVtb3J5T2JqZWN0SW5m
bzsKIGNsYXNzIFBhaXI7CiBjbGFzcyBTaGFkb3dEYXRhOwogY2xhc3MgU3R5bGVJbWFnZTsKQEAg
LTE1NDEsNiArMTU0Miw4IEBAIHB1YmxpYzoKIAogICAgIHZvaWQgc2V0SGFzRXhwbGljaXRseUlu
aGVyaXRlZFByb3BlcnRpZXMoKSB7IG1fYml0ZmllbGRzLnNldEV4cGxpY2l0SW5oZXJpdGFuY2Uo
dHJ1ZSk7IH0KICAgICBib29sIGhhc0V4cGxpY2l0bHlJbmhlcml0ZWRQcm9wZXJ0aWVzKCkgY29u
c3QgeyByZXR1cm4gbV9iaXRmaWVsZHMuZXhwbGljaXRJbmhlcml0YW5jZSgpOyB9CisKKyAgICB2
b2lkIHJlcG9ydE1lbW9yeVVzYWdlKE1lbW9yeU9iamVjdEluZm8qKSBjb25zdDsKICAgICAKICAg
ICAvLyBJbml0aWFsIHZhbHVlcyBmb3IgYWxsIHRoZSBwcm9wZXJ0aWVzCiAgICAgc3RhdGljIEVC
b3JkZXJDb2xsYXBzZSBpbml0aWFsQm9yZGVyQ29sbGFwc2UoKSB7IHJldHVybiBCU0VQQVJBVEU7
IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9TdHlsZVJhcmVJ
bmhlcml0ZWREYXRhLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9TdHlsZVJh
cmVJbmhlcml0ZWREYXRhLmNwcAppbmRleCA5N2RlNDJkM2MzNWE5YWQ5YWNhNGI1MmYyZWU0ZTIw
NjhlZGVkMjhkLi5mNjg5NzgxODllMzNjMDAwZDRhMzAxNDNiMDM2ZjM4OTViNTViOWI5IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvU3R5bGVSYXJlSW5oZXJpdGVk
RGF0YS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1N0eWxlUmFyZUlu
aGVyaXRlZERhdGEuY3BwCkBAIC0yMyw2ICsyMyw3IEBACiAjaW5jbHVkZSAiU3R5bGVSYXJlSW5o
ZXJpdGVkRGF0YS5oIgogCiAjaW5jbHVkZSAiQ3Vyc29yTGlzdC5oIgorI2luY2x1ZGUgIk1lbW9y
eUluc3RydW1lbnRhdGlvbi5oIgogI2luY2x1ZGUgIlF1b3Rlc0RhdGEuaCIKICNpbmNsdWRlICJS
ZW5kZXJTdHlsZS5oIgogI2luY2x1ZGUgIlJlbmRlclN0eWxlQ29uc3RhbnRzLmgiCkBAIC0yNjEs
NCArMjYyLDIwIEBAIGJvb2wgU3R5bGVSYXJlSW5oZXJpdGVkRGF0YTo6c2hhZG93RGF0YUVxdWl2
YWxlbnQoY29uc3QgU3R5bGVSYXJlSW5oZXJpdGVkRGF0YSYKICAgICByZXR1cm4gdHJ1ZTsKIH0K
IAordm9pZCBTdHlsZVJhcmVJbmhlcml0ZWREYXRhOjpyZXBvcnRNZW1vcnlVc2FnZShNZW1vcnlP
YmplY3RJbmZvKiBtZW1vcnlPYmplY3RJbmZvKSBjb25zdAoreworICAgIE1lbW9yeUNsYXNzSW5m
bzxTdHlsZVJhcmVJbmhlcml0ZWREYXRhPiBpbmZvKG1lbW9yeU9iamVjdEluZm8sIHRoaXMsIE1l
bW9yeUluc3RydW1lbnRhdGlvbjo6Q1NTKTsKKyAgICBpbmZvLmFkZE1lbWJlcih0ZXh0U2hhZG93
KTsKKyAgICBpbmZvLmFkZFN0cmluZyhoaWdobGlnaHQpOworICAgIGluZm8uYWRkTWVtYmVyKGN1
cnNvckRhdGEpOworICAgIGluZm8uYWRkU3RyaW5nKGh5cGhlbmF0aW9uU3RyaW5nKTsKKyAgICBp
bmZvLmFkZFN0cmluZyhsb2NhbGUpOworICAgIGluZm8uYWRkU3RyaW5nKHRleHRFbXBoYXNpc0N1
c3RvbU1hcmspOworICAgIGluZm8uYWRkTWVtYmVyKHF1b3Rlcyk7CisgICAgaW5mby5hZGRTdHJp
bmcobV9saW5lR3JpZCk7CisjaWYgRU5BQkxFKENTU19WQVJJQUJMRVMpCisgICAgaW5mby5hZGRN
ZW1iZXIobV92YXJpYWJsZXMpOworI2VuZGlmCit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9TdHlsZVJhcmVJbmhl
cml0ZWREYXRhLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvU3R5bGVSYXJlSW5o
ZXJpdGVkRGF0YS5oCmluZGV4IGIzMDk4MmRmOTdiMWNlMjYyZWQ3MmRkZTcwMTdmZThmOGU1ZTVh
YzAuLmJiNDMzZWQyNzZjYWRiNTI4NDg1YTMzZGY0NDNiMWZhYjVkZDViYTggMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9TdHlsZVJhcmVJbmhlcml0ZWREYXRhLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1N0eWxlUmFyZUluaGVyaXRlZERh
dGEuaApAQCAtMzksNiArMzksNyBAQAogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBDdXJz
b3JMaXN0OworY2xhc3MgTWVtb3J5T2JqZWN0SW5mbzsKIGNsYXNzIFF1b3Rlc0RhdGE7CiBjbGFz
cyBTaGFkb3dEYXRhOwogCkBAIC01OCw2ICs1OSw4IEBAIHB1YmxpYzoKICAgICB9CiAgICAgYm9v
bCBzaGFkb3dEYXRhRXF1aXZhbGVudChjb25zdCBTdHlsZVJhcmVJbmhlcml0ZWREYXRhJikgY29u
c3Q7CiAKKyAgICB2b2lkIHJlcG9ydE1lbW9yeVVzYWdlKE1lbW9yeU9iamVjdEluZm8qKSBjb25z
dDsKKwogICAgIENvbG9yIHRleHRTdHJva2VDb2xvcjsKICAgICBmbG9hdCB0ZXh0U3Ryb2tlV2lk
dGg7CiAgICAgQ29sb3IgdGV4dEZpbGxDb2xvcjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9zdHlsZS9TdHlsZVJhcmVOb25Jbmhlcml0ZWREYXRhLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9TdHlsZVJhcmVOb25Jbmhlcml0ZWREYXRhLmNwcAppbmRl
eCAyMmIzMjcyZThjMzdkMjFlZTM2NDljMGE0NWE3ZDQzZDUxMjEwNDRkLi4yMWQ3ZWNiNTczNTBk
MTc2MDA0NjJjMmRjZTA4MzhiODMyNDlhM2IzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvc3R5bGUvU3R5bGVSYXJlTm9uSW5oZXJpdGVkRGF0YS5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1N0eWxlUmFyZU5vbkluaGVyaXRlZERhdGEuY3BwCkBA
IC0yMyw2ICsyMyw3IEBACiAjaW5jbHVkZSAiU3R5bGVSYXJlTm9uSW5oZXJpdGVkRGF0YS5oIgog
CiAjaW5jbHVkZSAiQ29udGVudERhdGEuaCIKKyNpbmNsdWRlICJNZW1vcnlJbnN0cnVtZW50YXRp
b24uaCIKICNpbmNsdWRlICJSZW5kZXJDb3VudGVyLmgiCiAjaW5jbHVkZSAiUmVuZGVyU3R5bGUu
aCIKICNpbmNsdWRlICJTaGFkb3dEYXRhLmgiCkBAIC0yODYsNCArMjg3LDMyIEBAIGJvb2wgU3R5
bGVSYXJlTm9uSW5oZXJpdGVkRGF0YTo6dHJhbnNpdGlvbkRhdGFFcXVpdmFsZW50KGNvbnN0IFN0
eWxlUmFyZU5vbkluaGVyCiAgICAgcmV0dXJuIHRydWU7CiB9CiAKK3ZvaWQgU3R5bGVSYXJlTm9u
SW5oZXJpdGVkRGF0YTo6cmVwb3J0TWVtb3J5VXNhZ2UoTWVtb3J5T2JqZWN0SW5mbyogbWVtb3J5
T2JqZWN0SW5mbykgY29uc3QKK3sKKyAgICBNZW1vcnlDbGFzc0luZm88U3R5bGVSYXJlTm9uSW5o
ZXJpdGVkRGF0YT4gaW5mbyhtZW1vcnlPYmplY3RJbmZvLCB0aGlzLCBNZW1vcnlJbnN0cnVtZW50
YXRpb246OkNTUyk7CisjaWYgRU5BQkxFKERBU0hCT0FSRF9TVVBQT1JUKQorICAgIGluZm8uYWRk
VmVjdG9yKG1fZGFzaGJvYXJkUmVnaW9ucyk7CisjZW5kaWYKKyAgICBpbmZvLmFkZE1lbWJlciht
X2RlcHJlY2F0ZWRGbGV4aWJsZUJveCk7CisgICAgaW5mby5hZGRNZW1iZXIobV9mbGV4aWJsZUJv
eCk7CisgICAgaW5mby5hZGRNZW1iZXIobV9tYXJxdWVlKTsKKyAgICBpbmZvLmFkZE1lbWJlciht
X211bHRpQ29sKTsKKyAgICBpbmZvLmFkZE1lbWJlcihtX3RyYW5zZm9ybSk7CisjaWYgRU5BQkxF
KENTU19GSUxURVJTKQorICAgIGluZm8uYWRkTWVtYmVyKG1fZmlsdGVyKTsKKyNlbmRpZgorICAg
IGluZm8uYWRkTWVtYmVyKG1fZ3JpZCk7CisgICAgaW5mby5hZGRNZW1iZXIobV9ncmlkSXRlbSk7
CisgICAgaW5mby5hZGRNZW1iZXIobV9jb250ZW50KTsKKyAgICBpbmZvLmFkZE1lbWJlcihtX2Nv
dW50ZXJEaXJlY3RpdmVzKTsKKyAgICBpbmZvLmFkZE1lbWJlcihtX2JveFNoYWRvdyk7CisgICAg
aW5mby5hZGRNZW1iZXIobV9ib3hSZWZsZWN0KTsKKyAgICBpbmZvLmFkZE1lbWJlcihtX2FuaW1h
dGlvbnMpOworICAgIGluZm8uYWRkTWVtYmVyKG1fdHJhbnNpdGlvbnMpOworICAgIGluZm8uYWRk
TWVtYmVyKG1fd3JhcFNoYXBlSW5zaWRlKTsKKyAgICBpbmZvLmFkZE1lbWJlcihtX3dyYXBTaGFw
ZU91dHNpZGUpOworICAgIGluZm8uYWRkU3RyaW5nKG1fZmxvd1RocmVhZCk7CisgICAgaW5mby5h
ZGRTdHJpbmcobV9yZWdpb25UaHJlYWQpOworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvU3R5bGVSYXJlTm9uSW5o
ZXJpdGVkRGF0YS5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1N0eWxlUmFyZU5v
bkluaGVyaXRlZERhdGEuaAppbmRleCA1ZTZmZGUyYTYxN2NmMzk1MjVlNTU3YmQ5MDk4NjYyMjE0
ZThjYmVlLi4wZmU2ZTU4YzYzM2JjY2E5YmMyYjRlNzdmZDNiMjA2MGUzZDc2ZDRlIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvU3R5bGVSYXJlTm9uSW5oZXJpdGVk
RGF0YS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9TdHlsZVJhcmVOb25J
bmhlcml0ZWREYXRhLmgKQEAgLTM5LDYgKzM5LDcgQEAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAog
Y2xhc3MgQW5pbWF0aW9uTGlzdDsKK2NsYXNzIE1lbW9yeU9iamVjdEluZm87CiBjbGFzcyBTaGFk
b3dEYXRhOwogY2xhc3MgU3R5bGVEZXByZWNhdGVkRmxleGlibGVCb3hEYXRhOwogI2lmIEVOQUJM
RShDU1NfRklMVEVSUykKQEAgLTg5LDYgKzkwLDggQEAgcHVibGljOgogICAgIGJvb2wgYW5pbWF0
aW9uRGF0YUVxdWl2YWxlbnQoY29uc3QgU3R5bGVSYXJlTm9uSW5oZXJpdGVkRGF0YSYpIGNvbnN0
OwogICAgIGJvb2wgdHJhbnNpdGlvbkRhdGFFcXVpdmFsZW50KGNvbnN0IFN0eWxlUmFyZU5vbklu
aGVyaXRlZERhdGEmKSBjb25zdDsKIAorICAgIHZvaWQgcmVwb3J0TWVtb3J5VXNhZ2UoTWVtb3J5
T2JqZWN0SW5mbyopIGNvbnN0OworCiAgICAgZmxvYXQgb3BhY2l0eTsgLy8gV2hldGhlciBvciBu
b3Qgd2UncmUgdHJhbnNwYXJlbnQuCiAKICAgICBmbG9hdCBtX2FzcGVjdFJhdGlvRGVub21pbmF0
b3I7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>155258</attachid>
            <date>2012-07-30 04:47:29 -0700</date>
            <delta_ts>2012-07-30 05:34:43 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-91759-20120730154713.patch</filename>
            <type>text/plain</type>
            <size>14712</size>
            <attacher name="Alexei Filippov">alph</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTIzOTcwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMzIwODUwZjdiNWZhYWEx
MWRkNzhhNDkwNDQ2MmJmMDBlMWIzNzFkMi4uZjRlNzM0M2E4MTU4NWU0OGQzOWUxNDE0NGU3ZDRj
YjQ4ZGNiY2I3NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM5IEBACisyMDEyLTA3LTMwICBBbGV4
ZWkgRmlsaXBwb3YgIDxhbGV4ZWlmQGNocm9taXVtLm9yZz4KKworICAgICAgICBXZWIgSW5zcGVj
dG9yOiBjb3VudCBSZW5kZXJTdHlsZSBvYmplY3RzIGluIHRoZSBuYXRpdmUgbWVtb3J5IHByb2Zp
bGVyCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05MTc1
OQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogYmlu
ZGluZ3MvanMvU2NyaXB0V3JhcHBhYmxlLmg6CisgICAgICAgICogYmluZGluZ3MvdjgvU2NyaXB0
V3JhcHBhYmxlLmg6CisgICAgICAgICogZG9tL01lbW9yeUluc3RydW1lbnRhdGlvbi5oOgorICAg
ICAgICAoV2ViQ29yZTo6TWVtb3J5SW5zdHJ1bWVudGF0aW9uOjpPd25pbmdUcmFpdHM6OmFkZE1l
bWJlcik6CisgICAgICAgIChXZWJDb3JlOjpNZW1vcnlJbnN0cnVtZW50YXRpb246OmFkZEluc3Ry
dW1lbnRlZE1lbWJlckltcGwpOgorICAgICAgICAoV2ViQ29yZTo6TWVtb3J5SW5zdHJ1bWVudGF0
aW9uOjphZGRNZW1iZXJJbXBsKToKKyAgICAgICAgKE1lbW9yeUluc3RydW1lbnRhdGlvbik6Cisg
ICAgICAgICogZG9tL05vZGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Tm9kZTo6cmVwb3J0TWVt
b3J5VXNhZ2UpOgorICAgICAgICAqIGRvbS9Ob2RlLmg6CisgICAgICAgIChXZWJDb3JlKToKKyAg
ICAgICAgKiByZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGUuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6UmVuZGVyU3R5bGU6OnJlcG9ydE1lbW9yeVVzYWdlKToKKyAgICAgICAgKFdlYkNvcmUpOgor
ICAgICAgICAqIHJlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZS5oOgorICAgICAgICAoV2ViQ29y
ZSk6CisgICAgICAgICogcmVuZGVyaW5nL3N0eWxlL1N0eWxlUmFyZUluaGVyaXRlZERhdGEuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6U3R5bGVSYXJlSW5oZXJpdGVkRGF0YTo6cmVwb3J0TWVtb3J5
VXNhZ2UpOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgICogcmVuZGVyaW5nL3N0eWxlL1N0
eWxlUmFyZUluaGVyaXRlZERhdGEuaDoKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoU3R5
bGVSYXJlSW5oZXJpdGVkRGF0YSk6CisgICAgICAgICogcmVuZGVyaW5nL3N0eWxlL1N0eWxlUmFy
ZU5vbkluaGVyaXRlZERhdGEuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U3R5bGVSYXJlTm9uSW5o
ZXJpdGVkRGF0YTo6cmVwb3J0TWVtb3J5VXNhZ2UpOgorICAgICAgICAoV2ViQ29yZSk6CisgICAg
ICAgICogcmVuZGVyaW5nL3N0eWxlL1N0eWxlUmFyZU5vbkluaGVyaXRlZERhdGEuaDoKKyAgICAg
ICAgKFdlYkNvcmUpOgorICAgICAgICAoU3R5bGVSYXJlTm9uSW5oZXJpdGVkRGF0YSk6CisKIDIw
MTItMDctMjggIE1pbiBRaW4gIDxxaW5taW5AY2hyb21pdW0ub3JnPgogCiAgICAgICAgIEFkZCBh
biBvdmVybGF5IHBsYXkgYnV0dG9uIHRvIG1lZGlhIGNvbnRyb2xzIG9uIGFuZHJvaWQKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1NjcmlwdFdyYXBwYWJsZS5oIGIvU291
cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvU2NyaXB0V3JhcHBhYmxlLmgKaW5kZXggM2NiNWQ4MTZj
MTExYjgwN2ZhMDY5N2E2N2NkOWY5YTk2NDJkMDVlNy4uMGNmMmQ3YTE2YzRlZTA4ZGM0NTMwNDky
ZTEyNDMxNDBlOGY5YjU5MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMv
U2NyaXB0V3JhcHBhYmxlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvU2NyaXB0
V3JhcHBhYmxlLmgKQEAgLTMyLDYgKzMyLDcgQEAKICNkZWZpbmUgU2NyaXB0V3JhcHBhYmxlX2gK
IAogI2luY2x1ZGUgIkpTRE9NV3JhcHBlci5oIgorI2luY2x1ZGUgIk1lbW9yeUluc3RydW1lbnRh
dGlvbi5oIgogI2luY2x1ZGUgPGhlYXAvV2Vhay5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9TY3JpcHRXcmFwcGFibGUuaCBi
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1NjcmlwdFdyYXBwYWJsZS5oCmluZGV4IGVmMmY3
NjE5ZjI0NTExMDY1N2M3YWUwYTViYTAyZWRjMDRkNmZmNjkuLjY0YTkwNTM5MjhhNjBlMTUwODIx
NjQ3NjA0Mjg1NmIyYTdjM2QwMzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L3Y4L1NjcmlwdFdyYXBwYWJsZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1Nj
cmlwdFdyYXBwYWJsZS5oCkBAIC0zMSw2ICszMSw3IEBACiAjaWZuZGVmIFNjcmlwdFdyYXBwYWJs
ZV9oCiAjZGVmaW5lIFNjcmlwdFdyYXBwYWJsZV9oCiAKKyNpbmNsdWRlICJNZW1vcnlJbnN0cnVt
ZW50YXRpb24uaCIKICNpbmNsdWRlIDx2OC5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vTWVtb3J5SW5zdHJ1bWVudGF0aW9uLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9kb20vTWVtb3J5SW5zdHJ1bWVudGF0aW9uLmgKaW5kZXggOTZjMDE3ODg3ZGQ3
NDdlOTk3NzdhZjIyNWZjMjRmMGJjNjYyNzVkNS4uOTQ5M2ZlNmYyNjY5ZWQ1OTc1Y2I2YjI0YzAz
YTQ2OGU2M2E4NGY0ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL01lbW9yeUluc3Ry
dW1lbnRhdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9NZW1vcnlJbnN0cnVtZW50YXRp
b24uaApAQCAtMzAsOCArMzAsOSBAQAogCiAjaWZuZGVmIE1lbW9yeUluc3RydW1lbnRhdGlvbl9o
CiAjZGVmaW5lIE1lbW9yeUluc3RydW1lbnRhdGlvbl9oCi0jaW5jbHVkZSA8c3RkaW8uaD4KIAor
I2luY2x1ZGUgPHJlbmRlcmluZy9zdHlsZS9EYXRhUmVmLmg+CisjaW5jbHVkZSA8c3RkaW8uaD4K
ICNpbmNsdWRlIDx3dGYvQXNzZXJ0aW9ucy5oPgogI2luY2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+CiAj
aW5jbHVkZSA8d3RmL093blB0ci5oPgpAQCAtODYsMTggKzg3LDE5IEBAIHByb3RlY3RlZDoKICAg
ICB0ZW1wbGF0ZSA8dHlwZW5hbWUgVD4KICAgICBzdHJ1Y3QgT3duaW5nVHJhaXRzIHsgLy8gRGVm
YXVsdCBieVJlZmVyZW5jZSBpbXBsZW1lbnRhdGlvbi4KICAgICAgICAgc3RhdGljIHZvaWQgYWRk
SW5zdHJ1bWVudGVkTWVtYmVyKE1lbW9yeUluc3RydW1lbnRhdGlvbiogaW5zdHJ1bWVudGF0aW9u
LCBjb25zdCBUJiB0KSB7IGluc3RydW1lbnRhdGlvbi0+YWRkSW5zdHJ1bWVudGVkTWVtYmVySW1w
bCgmdCwgYnlSZWZlcmVuY2UpOyB9Ci0gICAgICAgIHN0YXRpYyB2b2lkIGFkZE1lbWJlcihNZW1v
cnlJbnN0cnVtZW50YXRpb24qIGluc3RydW1lbnRhdGlvbiwgY29uc3QgVCYgdCwgTWVtb3J5SW5z
dHJ1bWVudGF0aW9uOjpPYmplY3RUeXBlIG9iamVjdFR5cGUpIHsgaW5zdHJ1bWVudGF0aW9uLT5h
ZGRNZW1iZXJJbXBsKCZ0LCBvYmplY3RUeXBlLCBieVJlZmVyZW5jZSk7IH0KKyAgICAgICAgc3Rh
dGljIHZvaWQgYWRkTWVtYmVyKE1lbW9yeUluc3RydW1lbnRhdGlvbiogaW5zdHJ1bWVudGF0aW9u
LCBjb25zdCBUJiB0LCBPYmplY3RUeXBlIG9iamVjdFR5cGUpIHsgaW5zdHJ1bWVudGF0aW9uLT5h
ZGRNZW1iZXJJbXBsKCZ0LCBvYmplY3RUeXBlLCBieVJlZmVyZW5jZSk7IH0KICAgICB9OwogCiAg
ICAgdGVtcGxhdGUgPHR5cGVuYW1lIFQ+CiAgICAgc3RydWN0IE93bmluZ1RyYWl0czxUKj4geyAv
LyBDdXN0b20gYnlQb2ludGVyIGltcGxlbWVudGF0aW9uLgogICAgICAgICBzdGF0aWMgdm9pZCBh
ZGRJbnN0cnVtZW50ZWRNZW1iZXIoTWVtb3J5SW5zdHJ1bWVudGF0aW9uKiBpbnN0cnVtZW50YXRp
b24sIGNvbnN0IFQqIGNvbnN0JiB0KSB7IGluc3RydW1lbnRhdGlvbi0+YWRkSW5zdHJ1bWVudGVk
TWVtYmVySW1wbCh0LCBieVBvaW50ZXIpOyB9Ci0gICAgICAgIHN0YXRpYyB2b2lkIGFkZE1lbWJl
cihNZW1vcnlJbnN0cnVtZW50YXRpb24qIGluc3RydW1lbnRhdGlvbiwgY29uc3QgVCogY29uc3Qm
IHQsIE1lbW9yeUluc3RydW1lbnRhdGlvbjo6T2JqZWN0VHlwZSBvYmplY3RUeXBlKSB7IGluc3Ry
dW1lbnRhdGlvbi0+YWRkTWVtYmVySW1wbCh0LCBvYmplY3RUeXBlLCBieVBvaW50ZXIpOyB9Cisg
ICAgICAgIHN0YXRpYyB2b2lkIGFkZE1lbWJlcihNZW1vcnlJbnN0cnVtZW50YXRpb24qIGluc3Ry
dW1lbnRhdGlvbiwgY29uc3QgVCogY29uc3QmIHQsIE9iamVjdFR5cGUgb2JqZWN0VHlwZSkgeyBp
bnN0cnVtZW50YXRpb24tPmFkZE1lbWJlckltcGwodCwgb2JqZWN0VHlwZSwgYnlQb2ludGVyKTsg
fQogICAgIH07CiAKICAgICB0ZW1wbGF0ZSA8dHlwZW5hbWUgVD4gdm9pZCBhZGRJbnN0cnVtZW50
ZWRNZW1iZXJJbXBsKGNvbnN0IFQqIGNvbnN0JiwgT3duaW5nVHlwZSk7Ci0gICAgdGVtcGxhdGUg
PHR5cGVuYW1lIFQ+IHZvaWQgYWRkSW5zdHJ1bWVudGVkTWVtYmVySW1wbChjb25zdCBPd25QdHI8
VD4qIGNvbnN0JiBvYmplY3QsIE1lbW9yeUluc3RydW1lbnRhdGlvbjo6T3duaW5nVHlwZSBvd25p
bmdUeXBlKSB7IGFkZEluc3RydW1lbnRlZE1lbWJlckltcGwob2JqZWN0LT5nZXQoKSwgb3duaW5n
VHlwZSk7IH0KLSAgICB0ZW1wbGF0ZSA8dHlwZW5hbWUgVD4gdm9pZCBhZGRJbnN0cnVtZW50ZWRN
ZW1iZXJJbXBsKGNvbnN0IFJlZlB0cjxUPiogY29uc3QmIG9iamVjdCwgTWVtb3J5SW5zdHJ1bWVu
dGF0aW9uOjpPd25pbmdUeXBlIG93bmluZ1R5cGUpIHsgYWRkSW5zdHJ1bWVudGVkTWVtYmVySW1w
bChvYmplY3QtPmdldCgpLCBvd25pbmdUeXBlKTsgfQorICAgIHRlbXBsYXRlIDx0eXBlbmFtZSBU
PiB2b2lkIGFkZEluc3RydW1lbnRlZE1lbWJlckltcGwoY29uc3QgRGF0YVJlZjxUPiogY29uc3Qm
IG9iamVjdCwgT3duaW5nVHlwZSkgeyBhZGRJbnN0cnVtZW50ZWRNZW1iZXJJbXBsKG9iamVjdC0+
Z2V0KCksIGJ5UG9pbnRlcik7IH0KKyAgICB0ZW1wbGF0ZSA8dHlwZW5hbWUgVD4gdm9pZCBhZGRJ
bnN0cnVtZW50ZWRNZW1iZXJJbXBsKGNvbnN0IE93blB0cjxUPiogY29uc3QmIG9iamVjdCwgT3du
aW5nVHlwZSkgeyBhZGRJbnN0cnVtZW50ZWRNZW1iZXJJbXBsKG9iamVjdC0+Z2V0KCksIGJ5UG9p
bnRlcik7IH0KKyAgICB0ZW1wbGF0ZSA8dHlwZW5hbWUgVD4gdm9pZCBhZGRJbnN0cnVtZW50ZWRN
ZW1iZXJJbXBsKGNvbnN0IFJlZlB0cjxUPiogY29uc3QmIG9iamVjdCwgT3duaW5nVHlwZSkgeyBh
ZGRJbnN0cnVtZW50ZWRNZW1iZXJJbXBsKG9iamVjdC0+Z2V0KCksIGJ5UG9pbnRlcik7IH0KIAog
ICAgIHRlbXBsYXRlIDx0eXBlbmFtZSBUPgogICAgIHZvaWQgYWRkTWVtYmVySW1wbChjb25zdCBU
KiBjb25zdCYgb2JqZWN0LCBPYmplY3RUeXBlIG9iamVjdFR5cGUsIE93bmluZ1R5cGUgb3duaW5n
VHlwZSkKQEAgLTEwOSw2ICsxMTEsMTAgQEAgcHJvdGVjdGVkOgogICAgICAgICBjb3VudE9iamVj
dFNpemUob2JqZWN0VHlwZSwgc2l6ZW9mKFQpKTsKICAgICB9CiAKKyAgICB0ZW1wbGF0ZSA8dHlw
ZW5hbWUgVD4gdm9pZCBhZGRNZW1iZXJJbXBsKGNvbnN0IERhdGFSZWY8VD4qIGNvbnN0JiBvYmpl
Y3QsIE9iamVjdFR5cGUgb2JqZWN0VHlwZSwgT3duaW5nVHlwZSkgeyBhZGRNZW1iZXJJbXBsKG9i
amVjdC0+Z2V0KCksIG9iamVjdFR5cGUsIGJ5UG9pbnRlcik7IH0KKyAgICB0ZW1wbGF0ZSA8dHlw
ZW5hbWUgVD4gdm9pZCBhZGRNZW1iZXJJbXBsKGNvbnN0IE93blB0cjxUPiogY29uc3QmIG9iamVj
dCwgT2JqZWN0VHlwZSBvYmplY3RUeXBlLCBPd25pbmdUeXBlKSB7IGFkZE1lbWJlckltcGwob2Jq
ZWN0LT5nZXQoKSwgb2JqZWN0VHlwZSwgYnlQb2ludGVyKTsgfQorICAgIHRlbXBsYXRlIDx0eXBl
bmFtZSBUPiB2b2lkIGFkZE1lbWJlckltcGwoY29uc3QgUmVmUHRyPFQ+KiBjb25zdCYgb2JqZWN0
LCBPYmplY3RUeXBlIG9iamVjdFR5cGUsIE93bmluZ1R5cGUpIHsgYWRkTWVtYmVySW1wbChvYmpl
Y3QtPmdldCgpLCBvYmplY3RUeXBlLCBieVBvaW50ZXIpOyB9CisKICAgICBjbGFzcyBJbnN0cnVt
ZW50ZWRQb2ludGVyQmFzZSB7CiAgICAgcHVibGljOgogICAgICAgICB2aXJ0dWFsIH5JbnN0cnVt
ZW50ZWRQb2ludGVyQmFzZSgpIHsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL05v
ZGUuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL05vZGUuY3BwCmluZGV4IGYzMGMzZmNiZmNmODYw
YWUwMzQxN2I1ZGNkMDExN2I5NmM1ZmY5ZWQuLmE3MTA2NTQxY2RiNWI1NWJlMmNlMzQzNDdmMmRl
ZDYxYzliYTg4NmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZS5jcHAKQEAgLTY3LDYgKzY3LDcgQEAKICNpbmNsdWRl
ICJLZXlib2FyZEV2ZW50LmgiCiAjaW5jbHVkZSAiTGFiZWxzTm9kZUxpc3QuaCIKICNpbmNsdWRl
ICJMb2dnaW5nLmgiCisjaW5jbHVkZSAiTWVtb3J5SW5zdHJ1bWVudGF0aW9uLmgiCiAjaW5jbHVk
ZSAiTW91c2VFdmVudC5oIgogI2luY2x1ZGUgIk11dGF0aW9uRXZlbnQuaCIKICNpbmNsdWRlICJO
YW1lTm9kZUxpc3QuaCIKQEAgLTI4MDQsNiArMjgwNSw4IEBAIHZvaWQgTm9kZTo6cmVwb3J0TWVt
b3J5VXNhZ2UoTWVtb3J5T2JqZWN0SW5mbyogbWVtb3J5T2JqZWN0SW5mbykgY29uc3QKICAgICBp
bmZvLmFkZEluc3RydW1lbnRlZE1lbWJlcihtX2RvY3VtZW50KTsKICAgICBpbmZvLmFkZEluc3Ry
dW1lbnRlZE1lbWJlcihtX25leHQpOwogICAgIGluZm8uYWRkSW5zdHJ1bWVudGVkTWVtYmVyKG1f
cHJldmlvdXMpOworICAgIGlmIChtX3JlbmRlcmVyKQorICAgICAgICBpbmZvLmFkZEluc3RydW1l
bnRlZE1lbWJlcihtX3JlbmRlcmVyLT5zdHlsZSgpKTsKIH0KIAogfSAvLyBuYW1lc3BhY2UgV2Vi
Q29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL05vZGUuaCBiL1NvdXJjZS9XZWJD
b3JlL2RvbS9Ob2RlLmgKaW5kZXggODZhN2QzOWVkNThiZGJjOWQ0MmYyNDFlNDc2YzlhNmIzMTZi
ZDZkMC4uNWJhMzQxMWVlOGUzYmNkZTJiNTEyMGEwNmIxZDI5ZGZhNjMyMTQzYyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvZG9tL05vZGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vTm9k
ZS5oCkBAIC0yOSw3ICsyOSw2IEBACiAjaW5jbHVkZSAiRXZlbnRUYXJnZXQuaCIKICNpbmNsdWRl
ICJLVVJMSGFzaC5oIgogI2luY2x1ZGUgIkxheW91dFR5cGVzLmgiCi0jaW5jbHVkZSAiTWVtb3J5
SW5zdHJ1bWVudGF0aW9uLmgiCiAjaW5jbHVkZSAiTXV0YXRpb25PYnNlcnZlci5oIgogI2luY2x1
ZGUgIlJlbmRlclN0eWxlQ29uc3RhbnRzLmgiCiAjaW5jbHVkZSAiU2NyaXB0V3JhcHBhYmxlLmgi
CkBAIC02Niw2ICs2NSw3IEBAIGNsYXNzIEZyYW1lOwogY2xhc3MgSFRNTElucHV0RWxlbWVudDsK
IGNsYXNzIEludFJlY3Q7CiBjbGFzcyBLZXlib2FyZEV2ZW50OworY2xhc3MgTWVtb3J5T2JqZWN0
SW5mbzsKIGNsYXNzIE5TUmVzb2x2ZXI7CiBjbGFzcyBOYW1lZE5vZGVNYXA7CiBjbGFzcyBOYW1l
Tm9kZUxpc3Q7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvUmVu
ZGVyU3R5bGUuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxl
LmNwcAppbmRleCA4ZTVhOTBlOGNmZGRiMTU0MDg3NjFiOTI3MmNhZTg4NjkxZThhNzk4Li4wNzQ2
NzdjOGIwYjhmYjc0Njg2YzUwZTg0MjE0MTUyODFiMTdiOGY2IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGUuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZS5jcHAKQEAgLTI4LDYgKzI4LDcgQEAKICNp
bmNsdWRlICJDU1NQcm9wZXJ0eU5hbWVzLmgiCiAjaW5jbHVkZSAiQ1NTV3JhcFNoYXBlcy5oIgog
I2luY2x1ZGUgIkZvbnRTZWxlY3Rvci5oIgorI2luY2x1ZGUgIk1lbW9yeUluc3RydW1lbnRhdGlv
bi5oIgogI2luY2x1ZGUgIlF1b3Rlc0RhdGEuaCIKICNpbmNsdWRlICJSZW5kZXJBcmVuYS5oIgog
I2luY2x1ZGUgIlJlbmRlck9iamVjdC5oIgpAQCAtMTQ4Niw0ICsxNDg3LDI0IEBAIExheW91dEJv
eEV4dGVudCBSZW5kZXJTdHlsZTo6aW1hZ2VPdXRzZXRzKGNvbnN0IE5pbmVQaWVjZUltYWdlJiBp
bWFnZSkgY29uc3QKICAgICAgICAgICAgICAgICAgICAgICAgICAgIE5pbmVQaWVjZUltYWdlOjpj
b21wdXRlT3V0c2V0KGltYWdlLm91dHNldCgpLmxlZnQoKSwgYm9yZGVyTGVmdFdpZHRoKCkpKTsK
IH0KIAordm9pZCBSZW5kZXJTdHlsZTo6cmVwb3J0TWVtb3J5VXNhZ2UoTWVtb3J5T2JqZWN0SW5m
byogbWVtb3J5T2JqZWN0SW5mbykgY29uc3QKK3sKKyAgICBNZW1vcnlDbGFzc0luZm88UmVuZGVy
U3R5bGU+IGluZm8obWVtb3J5T2JqZWN0SW5mbywgdGhpcywgTWVtb3J5SW5zdHJ1bWVudGF0aW9u
OjpDU1MpOworICAgIGluZm8uYWRkTWVtYmVyKG1fYm94KTsKKyAgICBpbmZvLmFkZE1lbWJlcih2
aXN1YWwpOworICAgIC8vIEZJWE1FOiBtX2JhY2tncm91bmQgY29udGFpbnMgUmVmUHRyPFN0eWxl
SW1hZ2U+IHRoYXQgbWlnaHQgbmVlZCB0byBiZSBpbnN0cnVtZW50ZWQuCisgICAgaW5mby5hZGRN
ZW1iZXIobV9iYWNrZ3JvdW5kKTsKKyAgICAvLyBGSVhNRTogc3Vycm9uZCBjb250YWlucyBzb21l
IGZpZWxkcyBlLmcuIEJvcmRlckRhdGEgdGhhdCBtaWdodCBuZWVkIHRvIGJlIGluc3RydW1lbnRl
ZC4KKyAgICBpbmZvLmFkZE1lbWJlcihzdXJyb3VuZCk7CisgICAgaW5mby5hZGRJbnN0cnVtZW50
ZWRNZW1iZXIocmFyZU5vbkluaGVyaXRlZERhdGEpOworICAgIGluZm8uYWRkSW5zdHJ1bWVudGVk
TWVtYmVyKHJhcmVJbmhlcml0ZWREYXRhKTsKKyAgICAvLyBGSVhNRTogaW5oZXJpdGVkIGNvbnRh
aW5zIFN0eWxlSW1hZ2UgYW5kIEZvbnQgZmllbGRzIHRoYXQgbWlnaHQgbmVlZCB0byBiZSBpbnN0
cnVtZW50ZWQuCisgICAgaW5mby5hZGRNZW1iZXIoaW5oZXJpdGVkKTsKKyAgICBpZiAobV9jYWNo
ZWRQc2V1ZG9TdHlsZXMpCisgICAgICAgIGluZm8uYWRkVmVjdG9yKCptX2NhY2hlZFBzZXVkb1N0
eWxlcyk7CisjaWYgRU5BQkxFKFNWRykKKyAgICBpbmZvLmFkZE1lbWJlcihtX3N2Z1N0eWxlKTsK
KyNlbmRpZgorfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGUuaCBiL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZS5oCmluZGV4IGQ1NmQyZDNjMWMxZGZmOWJlNmUzYzEz
Mzk2NDhmZWNjMzY3MDg2ZTYuLmUyMDQ4YWNmMGU5YjQ4YTRlNzhiNWI5MzcxNDYwM2YxZjhlZGI4
ZDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHls
ZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZS5oCkBA
IC0xMDUsNiArMTA1LDcgQEAgY2xhc3MgQm9yZGVyRGF0YTsKIGNsYXNzIENvdW50ZXJDb250ZW50
OwogY2xhc3MgQ3Vyc29yTGlzdDsKIGNsYXNzIEludFJlY3Q7CitjbGFzcyBNZW1vcnlPYmplY3RJ
bmZvOwogY2xhc3MgUGFpcjsKIGNsYXNzIFNoYWRvd0RhdGE7CiBjbGFzcyBTdHlsZUltYWdlOwpA
QCAtMTU0MSw2ICsxNTQyLDggQEAgcHVibGljOgogCiAgICAgdm9pZCBzZXRIYXNFeHBsaWNpdGx5
SW5oZXJpdGVkUHJvcGVydGllcygpIHsgbV9iaXRmaWVsZHMuc2V0RXhwbGljaXRJbmhlcml0YW5j
ZSh0cnVlKTsgfQogICAgIGJvb2wgaGFzRXhwbGljaXRseUluaGVyaXRlZFByb3BlcnRpZXMoKSBj
b25zdCB7IHJldHVybiBtX2JpdGZpZWxkcy5leHBsaWNpdEluaGVyaXRhbmNlKCk7IH0KKworICAg
IHZvaWQgcmVwb3J0TWVtb3J5VXNhZ2UoTWVtb3J5T2JqZWN0SW5mbyopIGNvbnN0OwogICAgIAog
ICAgIC8vIEluaXRpYWwgdmFsdWVzIGZvciBhbGwgdGhlIHByb3BlcnRpZXMKICAgICBzdGF0aWMg
RUJvcmRlckNvbGxhcHNlIGluaXRpYWxCb3JkZXJDb2xsYXBzZSgpIHsgcmV0dXJuIEJTRVBBUkFU
RTsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1N0eWxlUmFy
ZUluaGVyaXRlZERhdGEuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1N0eWxl
UmFyZUluaGVyaXRlZERhdGEuY3BwCmluZGV4IDk3ZGU0MmQzYzM1YTlhZDlhY2E0YjUyZjJlZTRl
MjA2OGVkZWQyOGQuLmY2ODk3ODE4OWUzM2MwMDBkNGEzMDE0M2IwMzZmMzg5NWI1NWI5YjkgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9TdHlsZVJhcmVJbmhlcml0
ZWREYXRhLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvU3R5bGVSYXJl
SW5oZXJpdGVkRGF0YS5jcHAKQEAgLTIzLDYgKzIzLDcgQEAKICNpbmNsdWRlICJTdHlsZVJhcmVJ
bmhlcml0ZWREYXRhLmgiCiAKICNpbmNsdWRlICJDdXJzb3JMaXN0LmgiCisjaW5jbHVkZSAiTWVt
b3J5SW5zdHJ1bWVudGF0aW9uLmgiCiAjaW5jbHVkZSAiUXVvdGVzRGF0YS5oIgogI2luY2x1ZGUg
IlJlbmRlclN0eWxlLmgiCiAjaW5jbHVkZSAiUmVuZGVyU3R5bGVDb25zdGFudHMuaCIKQEAgLTI2
MSw0ICsyNjIsMjAgQEAgYm9vbCBTdHlsZVJhcmVJbmhlcml0ZWREYXRhOjpzaGFkb3dEYXRhRXF1
aXZhbGVudChjb25zdCBTdHlsZVJhcmVJbmhlcml0ZWREYXRhJgogICAgIHJldHVybiB0cnVlOwog
fQogCit2b2lkIFN0eWxlUmFyZUluaGVyaXRlZERhdGE6OnJlcG9ydE1lbW9yeVVzYWdlKE1lbW9y
eU9iamVjdEluZm8qIG1lbW9yeU9iamVjdEluZm8pIGNvbnN0Cit7CisgICAgTWVtb3J5Q2xhc3NJ
bmZvPFN0eWxlUmFyZUluaGVyaXRlZERhdGE+IGluZm8obWVtb3J5T2JqZWN0SW5mbywgdGhpcywg
TWVtb3J5SW5zdHJ1bWVudGF0aW9uOjpDU1MpOworICAgIGluZm8uYWRkTWVtYmVyKHRleHRTaGFk
b3cpOworICAgIGluZm8uYWRkU3RyaW5nKGhpZ2hsaWdodCk7CisgICAgaW5mby5hZGRNZW1iZXIo
Y3Vyc29yRGF0YSk7CisgICAgaW5mby5hZGRTdHJpbmcoaHlwaGVuYXRpb25TdHJpbmcpOworICAg
IGluZm8uYWRkU3RyaW5nKGxvY2FsZSk7CisgICAgaW5mby5hZGRTdHJpbmcodGV4dEVtcGhhc2lz
Q3VzdG9tTWFyayk7CisgICAgaW5mby5hZGRNZW1iZXIocXVvdGVzKTsKKyAgICBpbmZvLmFkZFN0
cmluZyhtX2xpbmVHcmlkKTsKKyNpZiBFTkFCTEUoQ1NTX1ZBUklBQkxFUykKKyAgICBpbmZvLmFk
ZE1lbWJlcihtX3ZhcmlhYmxlcyk7CisjZW5kaWYKK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29y
ZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1N0eWxlUmFyZUlu
aGVyaXRlZERhdGEuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9TdHlsZVJhcmVJ
bmhlcml0ZWREYXRhLmgKaW5kZXggYjMwOTgyZGY5N2IxY2UyNjJlZDcyZGRlNzAxN2ZlOGY4ZTVl
NWFjMC4uYmI0MzNlZDI3NmNhZGI1Mjg0ODVhMzNkZjQ0M2IxZmFiNWRkNWJhOCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1N0eWxlUmFyZUluaGVyaXRlZERhdGEu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvU3R5bGVSYXJlSW5oZXJpdGVk
RGF0YS5oCkBAIC0zOSw2ICszOSw3IEBACiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIEN1
cnNvckxpc3Q7CitjbGFzcyBNZW1vcnlPYmplY3RJbmZvOwogY2xhc3MgUXVvdGVzRGF0YTsKIGNs
YXNzIFNoYWRvd0RhdGE7CiAKQEAgLTU4LDYgKzU5LDggQEAgcHVibGljOgogICAgIH0KICAgICBi
b29sIHNoYWRvd0RhdGFFcXVpdmFsZW50KGNvbnN0IFN0eWxlUmFyZUluaGVyaXRlZERhdGEmKSBj
b25zdDsKIAorICAgIHZvaWQgcmVwb3J0TWVtb3J5VXNhZ2UoTWVtb3J5T2JqZWN0SW5mbyopIGNv
bnN0OworCiAgICAgQ29sb3IgdGV4dFN0cm9rZUNvbG9yOwogICAgIGZsb2F0IHRleHRTdHJva2VX
aWR0aDsKICAgICBDb2xvciB0ZXh0RmlsbENvbG9yOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL3N0eWxlL1N0eWxlUmFyZU5vbkluaGVyaXRlZERhdGEuY3BwIGIvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1N0eWxlUmFyZU5vbkluaGVyaXRlZERhdGEuY3BwCmlu
ZGV4IDIyYjMyNzJlOGMzN2QyMWVlMzY0OWMwYTQ1YTdkNDNkNTEyMTA0NGQuLjIxZDdlY2I1NzM1
MGQxNzYwMDQ2MmMyZGNlMDgzOGI4MzI0OWEzYjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9zdHlsZS9TdHlsZVJhcmVOb25Jbmhlcml0ZWREYXRhLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvU3R5bGVSYXJlTm9uSW5oZXJpdGVkRGF0YS5jcHAK
QEAgLTIzLDYgKzIzLDcgQEAKICNpbmNsdWRlICJTdHlsZVJhcmVOb25Jbmhlcml0ZWREYXRhLmgi
CiAKICNpbmNsdWRlICJDb250ZW50RGF0YS5oIgorI2luY2x1ZGUgIk1lbW9yeUluc3RydW1lbnRh
dGlvbi5oIgogI2luY2x1ZGUgIlJlbmRlckNvdW50ZXIuaCIKICNpbmNsdWRlICJSZW5kZXJTdHls
ZS5oIgogI2luY2x1ZGUgIlNoYWRvd0RhdGEuaCIKQEAgLTI4Niw0ICsyODcsMzIgQEAgYm9vbCBT
dHlsZVJhcmVOb25Jbmhlcml0ZWREYXRhOjp0cmFuc2l0aW9uRGF0YUVxdWl2YWxlbnQoY29uc3Qg
U3R5bGVSYXJlTm9uSW5oZXIKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAordm9pZCBTdHlsZVJhcmVO
b25Jbmhlcml0ZWREYXRhOjpyZXBvcnRNZW1vcnlVc2FnZShNZW1vcnlPYmplY3RJbmZvKiBtZW1v
cnlPYmplY3RJbmZvKSBjb25zdAoreworICAgIE1lbW9yeUNsYXNzSW5mbzxTdHlsZVJhcmVOb25J
bmhlcml0ZWREYXRhPiBpbmZvKG1lbW9yeU9iamVjdEluZm8sIHRoaXMsIE1lbW9yeUluc3RydW1l
bnRhdGlvbjo6Q1NTKTsKKyNpZiBFTkFCTEUoREFTSEJPQVJEX1NVUFBPUlQpCisgICAgaW5mby5h
ZGRWZWN0b3IobV9kYXNoYm9hcmRSZWdpb25zKTsKKyNlbmRpZgorICAgIGluZm8uYWRkTWVtYmVy
KG1fZGVwcmVjYXRlZEZsZXhpYmxlQm94KTsKKyAgICBpbmZvLmFkZE1lbWJlcihtX2ZsZXhpYmxl
Qm94KTsKKyAgICBpbmZvLmFkZE1lbWJlcihtX21hcnF1ZWUpOworICAgIGluZm8uYWRkTWVtYmVy
KG1fbXVsdGlDb2wpOworICAgIGluZm8uYWRkTWVtYmVyKG1fdHJhbnNmb3JtKTsKKyNpZiBFTkFC
TEUoQ1NTX0ZJTFRFUlMpCisgICAgaW5mby5hZGRNZW1iZXIobV9maWx0ZXIpOworI2VuZGlmCisg
ICAgaW5mby5hZGRNZW1iZXIobV9ncmlkKTsKKyAgICBpbmZvLmFkZE1lbWJlcihtX2dyaWRJdGVt
KTsKKyAgICBpbmZvLmFkZE1lbWJlcihtX2NvbnRlbnQpOworICAgIGluZm8uYWRkTWVtYmVyKG1f
Y291bnRlckRpcmVjdGl2ZXMpOworICAgIGluZm8uYWRkTWVtYmVyKG1fYm94U2hhZG93KTsKKyAg
ICBpbmZvLmFkZE1lbWJlcihtX2JveFJlZmxlY3QpOworICAgIGluZm8uYWRkTWVtYmVyKG1fYW5p
bWF0aW9ucyk7CisgICAgaW5mby5hZGRNZW1iZXIobV90cmFuc2l0aW9ucyk7CisgICAgaW5mby5h
ZGRNZW1iZXIobV93cmFwU2hhcGVJbnNpZGUpOworICAgIGluZm8uYWRkTWVtYmVyKG1fd3JhcFNo
YXBlT3V0c2lkZSk7CisgICAgaW5mby5hZGRTdHJpbmcobV9mbG93VGhyZWFkKTsKKyAgICBpbmZv
LmFkZFN0cmluZyhtX3JlZ2lvblRocmVhZCk7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9TdHlsZVJhcmVOb25J
bmhlcml0ZWREYXRhLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvU3R5bGVSYXJl
Tm9uSW5oZXJpdGVkRGF0YS5oCmluZGV4IDVlNmZkZTJhNjE3Y2YzOTUyNWU1NTdiZDkwOTg2NjIy
MTRlOGNiZWUuLjBmZTZlNThjNjMzYmNjYTliYzJiNGU3N2ZkM2IyMDYwZTNkNzZkNGUgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9TdHlsZVJhcmVOb25Jbmhlcml0
ZWREYXRhLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1N0eWxlUmFyZU5v
bkluaGVyaXRlZERhdGEuaApAQCAtMzksNiArMzksNyBAQAogbmFtZXNwYWNlIFdlYkNvcmUgewog
CiBjbGFzcyBBbmltYXRpb25MaXN0OworY2xhc3MgTWVtb3J5T2JqZWN0SW5mbzsKIGNsYXNzIFNo
YWRvd0RhdGE7CiBjbGFzcyBTdHlsZURlcHJlY2F0ZWRGbGV4aWJsZUJveERhdGE7CiAjaWYgRU5B
QkxFKENTU19GSUxURVJTKQpAQCAtODksNiArOTAsOCBAQCBwdWJsaWM6CiAgICAgYm9vbCBhbmlt
YXRpb25EYXRhRXF1aXZhbGVudChjb25zdCBTdHlsZVJhcmVOb25Jbmhlcml0ZWREYXRhJikgY29u
c3Q7CiAgICAgYm9vbCB0cmFuc2l0aW9uRGF0YUVxdWl2YWxlbnQoY29uc3QgU3R5bGVSYXJlTm9u
SW5oZXJpdGVkRGF0YSYpIGNvbnN0OwogCisgICAgdm9pZCByZXBvcnRNZW1vcnlVc2FnZShNZW1v
cnlPYmplY3RJbmZvKikgY29uc3Q7CisKICAgICBmbG9hdCBvcGFjaXR5OyAvLyBXaGV0aGVyIG9y
IG5vdCB3ZSdyZSB0cmFuc3BhcmVudC4KIAogICAgIGZsb2F0IG1fYXNwZWN0UmF0aW9EZW5vbWlu
YXRvcjsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>155270</attachid>
            <date>2012-07-30 05:34:52 -0700</date>
            <delta_ts>2012-07-30 06:50:36 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-91759-20120730163436.patch</filename>
            <type>text/plain</type>
            <size>14685</size>
            <attacher name="Alexei Filippov">alph</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTI0MDE1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYWRmNTIxNDEyYTU2ZDg4
ZTFkYjBkNGIwOGM3OWFlOTU3YmE3YTFjYi4uM2U5ZjMwZWEzNjFlOWRmM2ZkYmYyYWU2MGUwZDJi
ZmU5NTVjNWVmNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM5IEBACisyMDEyLTA3LTMwICBBbGV4
ZWkgRmlsaXBwb3YgIDxhbGV4ZWlmQGNocm9taXVtLm9yZz4KKworICAgICAgICBXZWIgSW5zcGVj
dG9yOiBjb3VudCBSZW5kZXJTdHlsZSBvYmplY3RzIGluIHRoZSBuYXRpdmUgbWVtb3J5IHByb2Zp
bGVyCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05MTc1
OQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogYmlu
ZGluZ3MvanMvU2NyaXB0V3JhcHBhYmxlLmg6CisgICAgICAgICogYmluZGluZ3MvdjgvU2NyaXB0
V3JhcHBhYmxlLmg6CisgICAgICAgICogZG9tL01lbW9yeUluc3RydW1lbnRhdGlvbi5oOgorICAg
ICAgICAoV2ViQ29yZTo6TWVtb3J5SW5zdHJ1bWVudGF0aW9uOjpPd25pbmdUcmFpdHM6OmFkZE1l
bWJlcik6CisgICAgICAgIChXZWJDb3JlOjpNZW1vcnlJbnN0cnVtZW50YXRpb246OmFkZEluc3Ry
dW1lbnRlZE1lbWJlckltcGwpOgorICAgICAgICAoV2ViQ29yZTo6TWVtb3J5SW5zdHJ1bWVudGF0
aW9uOjphZGRNZW1iZXJJbXBsKToKKyAgICAgICAgKE1lbW9yeUluc3RydW1lbnRhdGlvbik6Cisg
ICAgICAgICogZG9tL05vZGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Tm9kZTo6cmVwb3J0TWVt
b3J5VXNhZ2UpOgorICAgICAgICAqIGRvbS9Ob2RlLmg6CisgICAgICAgIChXZWJDb3JlKToKKyAg
ICAgICAgKiByZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGUuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6UmVuZGVyU3R5bGU6OnJlcG9ydE1lbW9yeVVzYWdlKToKKyAgICAgICAgKFdlYkNvcmUpOgor
ICAgICAgICAqIHJlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZS5oOgorICAgICAgICAoV2ViQ29y
ZSk6CisgICAgICAgICogcmVuZGVyaW5nL3N0eWxlL1N0eWxlUmFyZUluaGVyaXRlZERhdGEuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6U3R5bGVSYXJlSW5oZXJpdGVkRGF0YTo6cmVwb3J0TWVtb3J5
VXNhZ2UpOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgICogcmVuZGVyaW5nL3N0eWxlL1N0
eWxlUmFyZUluaGVyaXRlZERhdGEuaDoKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoU3R5
bGVSYXJlSW5oZXJpdGVkRGF0YSk6CisgICAgICAgICogcmVuZGVyaW5nL3N0eWxlL1N0eWxlUmFy
ZU5vbkluaGVyaXRlZERhdGEuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U3R5bGVSYXJlTm9uSW5o
ZXJpdGVkRGF0YTo6cmVwb3J0TWVtb3J5VXNhZ2UpOgorICAgICAgICAoV2ViQ29yZSk6CisgICAg
ICAgICogcmVuZGVyaW5nL3N0eWxlL1N0eWxlUmFyZU5vbkluaGVyaXRlZERhdGEuaDoKKyAgICAg
ICAgKFdlYkNvcmUpOgorICAgICAgICAoU3R5bGVSYXJlTm9uSW5oZXJpdGVkRGF0YSk6CisKIDIw
MTItMDctMzAgIFNoZXJpZmYgQm90ICA8d2Via2l0LnJldmlldy5ib3RAZ21haWwuY29tPgogCiAg
ICAgICAgIFVucmV2aWV3ZWQsIHJvbGxpbmcgb3V0IHIxMjQwMDAuCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9TY3JpcHRXcmFwcGFibGUuaCBiL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL2pzL1NjcmlwdFdyYXBwYWJsZS5oCmluZGV4IDNjYjVkODE2YzExMWI4MDdmYTA2
OTdhNjdjZDlmOWE5NjQyZDA1ZTcuLjBjZjJkN2ExNmM0ZWUwOGRjNDUzMDQ5MmUxMjQzMTQwZThm
OWI1OTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1NjcmlwdFdyYXBw
YWJsZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1NjcmlwdFdyYXBwYWJsZS5o
CkBAIC0zMiw2ICszMiw3IEBACiAjZGVmaW5lIFNjcmlwdFdyYXBwYWJsZV9oCiAKICNpbmNsdWRl
ICJKU0RPTVdyYXBwZXIuaCIKKyNpbmNsdWRlICJNZW1vcnlJbnN0cnVtZW50YXRpb24uaCIKICNp
bmNsdWRlIDxoZWFwL1dlYWsuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvU2NyaXB0V3JhcHBhYmxlLmggYi9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy92OC9TY3JpcHRXcmFwcGFibGUuaAppbmRleCBlZjJmNzYxOWYyNDUxMTA2
NTdjN2FlMGE1YmEwMmVkYzA0ZDZmZjY5Li42NGE5MDUzOTI4YTYwZTE1MDgyMTY0NzYwNDI4NTZi
MmE3YzNkMDMwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9TY3JpcHRX
cmFwcGFibGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9TY3JpcHRXcmFwcGFi
bGUuaApAQCAtMzEsNiArMzEsNyBAQAogI2lmbmRlZiBTY3JpcHRXcmFwcGFibGVfaAogI2RlZmlu
ZSBTY3JpcHRXcmFwcGFibGVfaAogCisjaW5jbHVkZSAiTWVtb3J5SW5zdHJ1bWVudGF0aW9uLmgi
CiAjaW5jbHVkZSA8djguaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvZG9tL01lbW9yeUluc3RydW1lbnRhdGlvbi5oIGIvU291cmNlL1dlYkNvcmUv
ZG9tL01lbW9yeUluc3RydW1lbnRhdGlvbi5oCmluZGV4IDk2YzAxNzg4N2RkNzQ3ZTk5Nzc3YWYy
MjVmYzI0ZjBiYzY2Mjc1ZDUuLjE4MDMxZGE5NzdjMjFlZTA4MWUxOTA3YjUwNmE5Mzk4MDkyNDUw
NDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9NZW1vcnlJbnN0cnVtZW50YXRpb24u
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vTWVtb3J5SW5zdHJ1bWVudGF0aW9uLmgKQEAgLTMw
LDggKzMwLDkgQEAKIAogI2lmbmRlZiBNZW1vcnlJbnN0cnVtZW50YXRpb25faAogI2RlZmluZSBN
ZW1vcnlJbnN0cnVtZW50YXRpb25faAotI2luY2x1ZGUgPHN0ZGlvLmg+CiAKKyNpbmNsdWRlICJE
YXRhUmVmLmgiCisjaW5jbHVkZSA8c3RkaW8uaD4KICNpbmNsdWRlIDx3dGYvQXNzZXJ0aW9ucy5o
PgogI2luY2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+CiAjaW5jbHVkZSA8d3RmL093blB0ci5oPgpAQCAt
ODYsMTggKzg3LDE5IEBAIHByb3RlY3RlZDoKICAgICB0ZW1wbGF0ZSA8dHlwZW5hbWUgVD4KICAg
ICBzdHJ1Y3QgT3duaW5nVHJhaXRzIHsgLy8gRGVmYXVsdCBieVJlZmVyZW5jZSBpbXBsZW1lbnRh
dGlvbi4KICAgICAgICAgc3RhdGljIHZvaWQgYWRkSW5zdHJ1bWVudGVkTWVtYmVyKE1lbW9yeUlu
c3RydW1lbnRhdGlvbiogaW5zdHJ1bWVudGF0aW9uLCBjb25zdCBUJiB0KSB7IGluc3RydW1lbnRh
dGlvbi0+YWRkSW5zdHJ1bWVudGVkTWVtYmVySW1wbCgmdCwgYnlSZWZlcmVuY2UpOyB9Ci0gICAg
ICAgIHN0YXRpYyB2b2lkIGFkZE1lbWJlcihNZW1vcnlJbnN0cnVtZW50YXRpb24qIGluc3RydW1l
bnRhdGlvbiwgY29uc3QgVCYgdCwgTWVtb3J5SW5zdHJ1bWVudGF0aW9uOjpPYmplY3RUeXBlIG9i
amVjdFR5cGUpIHsgaW5zdHJ1bWVudGF0aW9uLT5hZGRNZW1iZXJJbXBsKCZ0LCBvYmplY3RUeXBl
LCBieVJlZmVyZW5jZSk7IH0KKyAgICAgICAgc3RhdGljIHZvaWQgYWRkTWVtYmVyKE1lbW9yeUlu
c3RydW1lbnRhdGlvbiogaW5zdHJ1bWVudGF0aW9uLCBjb25zdCBUJiB0LCBPYmplY3RUeXBlIG9i
amVjdFR5cGUpIHsgaW5zdHJ1bWVudGF0aW9uLT5hZGRNZW1iZXJJbXBsKCZ0LCBvYmplY3RUeXBl
LCBieVJlZmVyZW5jZSk7IH0KICAgICB9OwogCiAgICAgdGVtcGxhdGUgPHR5cGVuYW1lIFQ+CiAg
ICAgc3RydWN0IE93bmluZ1RyYWl0czxUKj4geyAvLyBDdXN0b20gYnlQb2ludGVyIGltcGxlbWVu
dGF0aW9uLgogICAgICAgICBzdGF0aWMgdm9pZCBhZGRJbnN0cnVtZW50ZWRNZW1iZXIoTWVtb3J5
SW5zdHJ1bWVudGF0aW9uKiBpbnN0cnVtZW50YXRpb24sIGNvbnN0IFQqIGNvbnN0JiB0KSB7IGlu
c3RydW1lbnRhdGlvbi0+YWRkSW5zdHJ1bWVudGVkTWVtYmVySW1wbCh0LCBieVBvaW50ZXIpOyB9
Ci0gICAgICAgIHN0YXRpYyB2b2lkIGFkZE1lbWJlcihNZW1vcnlJbnN0cnVtZW50YXRpb24qIGlu
c3RydW1lbnRhdGlvbiwgY29uc3QgVCogY29uc3QmIHQsIE1lbW9yeUluc3RydW1lbnRhdGlvbjo6
T2JqZWN0VHlwZSBvYmplY3RUeXBlKSB7IGluc3RydW1lbnRhdGlvbi0+YWRkTWVtYmVySW1wbCh0
LCBvYmplY3RUeXBlLCBieVBvaW50ZXIpOyB9CisgICAgICAgIHN0YXRpYyB2b2lkIGFkZE1lbWJl
cihNZW1vcnlJbnN0cnVtZW50YXRpb24qIGluc3RydW1lbnRhdGlvbiwgY29uc3QgVCogY29uc3Qm
IHQsIE9iamVjdFR5cGUgb2JqZWN0VHlwZSkgeyBpbnN0cnVtZW50YXRpb24tPmFkZE1lbWJlcklt
cGwodCwgb2JqZWN0VHlwZSwgYnlQb2ludGVyKTsgfQogICAgIH07CiAKICAgICB0ZW1wbGF0ZSA8
dHlwZW5hbWUgVD4gdm9pZCBhZGRJbnN0cnVtZW50ZWRNZW1iZXJJbXBsKGNvbnN0IFQqIGNvbnN0
JiwgT3duaW5nVHlwZSk7Ci0gICAgdGVtcGxhdGUgPHR5cGVuYW1lIFQ+IHZvaWQgYWRkSW5zdHJ1
bWVudGVkTWVtYmVySW1wbChjb25zdCBPd25QdHI8VD4qIGNvbnN0JiBvYmplY3QsIE1lbW9yeUlu
c3RydW1lbnRhdGlvbjo6T3duaW5nVHlwZSBvd25pbmdUeXBlKSB7IGFkZEluc3RydW1lbnRlZE1l
bWJlckltcGwob2JqZWN0LT5nZXQoKSwgb3duaW5nVHlwZSk7IH0KLSAgICB0ZW1wbGF0ZSA8dHlw
ZW5hbWUgVD4gdm9pZCBhZGRJbnN0cnVtZW50ZWRNZW1iZXJJbXBsKGNvbnN0IFJlZlB0cjxUPiog
Y29uc3QmIG9iamVjdCwgTWVtb3J5SW5zdHJ1bWVudGF0aW9uOjpPd25pbmdUeXBlIG93bmluZ1R5
cGUpIHsgYWRkSW5zdHJ1bWVudGVkTWVtYmVySW1wbChvYmplY3QtPmdldCgpLCBvd25pbmdUeXBl
KTsgfQorICAgIHRlbXBsYXRlIDx0eXBlbmFtZSBUPiB2b2lkIGFkZEluc3RydW1lbnRlZE1lbWJl
ckltcGwoY29uc3QgRGF0YVJlZjxUPiogY29uc3QmIG9iamVjdCwgT3duaW5nVHlwZSkgeyBhZGRJ
bnN0cnVtZW50ZWRNZW1iZXJJbXBsKG9iamVjdC0+Z2V0KCksIGJ5UG9pbnRlcik7IH0KKyAgICB0
ZW1wbGF0ZSA8dHlwZW5hbWUgVD4gdm9pZCBhZGRJbnN0cnVtZW50ZWRNZW1iZXJJbXBsKGNvbnN0
IE93blB0cjxUPiogY29uc3QmIG9iamVjdCwgT3duaW5nVHlwZSkgeyBhZGRJbnN0cnVtZW50ZWRN
ZW1iZXJJbXBsKG9iamVjdC0+Z2V0KCksIGJ5UG9pbnRlcik7IH0KKyAgICB0ZW1wbGF0ZSA8dHlw
ZW5hbWUgVD4gdm9pZCBhZGRJbnN0cnVtZW50ZWRNZW1iZXJJbXBsKGNvbnN0IFJlZlB0cjxUPiog
Y29uc3QmIG9iamVjdCwgT3duaW5nVHlwZSkgeyBhZGRJbnN0cnVtZW50ZWRNZW1iZXJJbXBsKG9i
amVjdC0+Z2V0KCksIGJ5UG9pbnRlcik7IH0KIAogICAgIHRlbXBsYXRlIDx0eXBlbmFtZSBUPgog
ICAgIHZvaWQgYWRkTWVtYmVySW1wbChjb25zdCBUKiBjb25zdCYgb2JqZWN0LCBPYmplY3RUeXBl
IG9iamVjdFR5cGUsIE93bmluZ1R5cGUgb3duaW5nVHlwZSkKQEAgLTEwOSw2ICsxMTEsMTAgQEAg
cHJvdGVjdGVkOgogICAgICAgICBjb3VudE9iamVjdFNpemUob2JqZWN0VHlwZSwgc2l6ZW9mKFQp
KTsKICAgICB9CiAKKyAgICB0ZW1wbGF0ZSA8dHlwZW5hbWUgVD4gdm9pZCBhZGRNZW1iZXJJbXBs
KGNvbnN0IERhdGFSZWY8VD4qIGNvbnN0JiBvYmplY3QsIE9iamVjdFR5cGUgb2JqZWN0VHlwZSwg
T3duaW5nVHlwZSkgeyBhZGRNZW1iZXJJbXBsKG9iamVjdC0+Z2V0KCksIG9iamVjdFR5cGUsIGJ5
UG9pbnRlcik7IH0KKyAgICB0ZW1wbGF0ZSA8dHlwZW5hbWUgVD4gdm9pZCBhZGRNZW1iZXJJbXBs
KGNvbnN0IE93blB0cjxUPiogY29uc3QmIG9iamVjdCwgT2JqZWN0VHlwZSBvYmplY3RUeXBlLCBP
d25pbmdUeXBlKSB7IGFkZE1lbWJlckltcGwob2JqZWN0LT5nZXQoKSwgb2JqZWN0VHlwZSwgYnlQ
b2ludGVyKTsgfQorICAgIHRlbXBsYXRlIDx0eXBlbmFtZSBUPiB2b2lkIGFkZE1lbWJlckltcGwo
Y29uc3QgUmVmUHRyPFQ+KiBjb25zdCYgb2JqZWN0LCBPYmplY3RUeXBlIG9iamVjdFR5cGUsIE93
bmluZ1R5cGUpIHsgYWRkTWVtYmVySW1wbChvYmplY3QtPmdldCgpLCBvYmplY3RUeXBlLCBieVBv
aW50ZXIpOyB9CisKICAgICBjbGFzcyBJbnN0cnVtZW50ZWRQb2ludGVyQmFzZSB7CiAgICAgcHVi
bGljOgogICAgICAgICB2aXJ0dWFsIH5JbnN0cnVtZW50ZWRQb2ludGVyQmFzZSgpIHsgfQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL05vZGUuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9t
L05vZGUuY3BwCmluZGV4IGYzMGMzZmNiZmNmODYwYWUwMzQxN2I1ZGNkMDExN2I5NmM1ZmY5ZWQu
LmE3MTA2NTQxY2RiNWI1NWJlMmNlMzQzNDdmMmRlZDYxYzliYTg4NmUgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2RvbS9Ob2RlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZS5j
cHAKQEAgLTY3LDYgKzY3LDcgQEAKICNpbmNsdWRlICJLZXlib2FyZEV2ZW50LmgiCiAjaW5jbHVk
ZSAiTGFiZWxzTm9kZUxpc3QuaCIKICNpbmNsdWRlICJMb2dnaW5nLmgiCisjaW5jbHVkZSAiTWVt
b3J5SW5zdHJ1bWVudGF0aW9uLmgiCiAjaW5jbHVkZSAiTW91c2VFdmVudC5oIgogI2luY2x1ZGUg
Ik11dGF0aW9uRXZlbnQuaCIKICNpbmNsdWRlICJOYW1lTm9kZUxpc3QuaCIKQEAgLTI4MDQsNiAr
MjgwNSw4IEBAIHZvaWQgTm9kZTo6cmVwb3J0TWVtb3J5VXNhZ2UoTWVtb3J5T2JqZWN0SW5mbyog
bWVtb3J5T2JqZWN0SW5mbykgY29uc3QKICAgICBpbmZvLmFkZEluc3RydW1lbnRlZE1lbWJlciht
X2RvY3VtZW50KTsKICAgICBpbmZvLmFkZEluc3RydW1lbnRlZE1lbWJlcihtX25leHQpOwogICAg
IGluZm8uYWRkSW5zdHJ1bWVudGVkTWVtYmVyKG1fcHJldmlvdXMpOworICAgIGlmIChtX3JlbmRl
cmVyKQorICAgICAgICBpbmZvLmFkZEluc3RydW1lbnRlZE1lbWJlcihtX3JlbmRlcmVyLT5zdHls
ZSgpKTsKIH0KIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvZG9tL05vZGUuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlLmgKaW5kZXggODZhN2Qz
OWVkNThiZGJjOWQ0MmYyNDFlNDc2YzlhNmIzMTZiZDZkMC4uNWJhMzQxMWVlOGUzYmNkZTJiNTEy
MGEwNmIxZDI5ZGZhNjMyMTQzYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL05vZGUu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZS5oCkBAIC0yOSw3ICsyOSw2IEBACiAjaW5j
bHVkZSAiRXZlbnRUYXJnZXQuaCIKICNpbmNsdWRlICJLVVJMSGFzaC5oIgogI2luY2x1ZGUgIkxh
eW91dFR5cGVzLmgiCi0jaW5jbHVkZSAiTWVtb3J5SW5zdHJ1bWVudGF0aW9uLmgiCiAjaW5jbHVk
ZSAiTXV0YXRpb25PYnNlcnZlci5oIgogI2luY2x1ZGUgIlJlbmRlclN0eWxlQ29uc3RhbnRzLmgi
CiAjaW5jbHVkZSAiU2NyaXB0V3JhcHBhYmxlLmgiCkBAIC02Niw2ICs2NSw3IEBAIGNsYXNzIEZy
YW1lOwogY2xhc3MgSFRNTElucHV0RWxlbWVudDsKIGNsYXNzIEludFJlY3Q7CiBjbGFzcyBLZXli
b2FyZEV2ZW50OworY2xhc3MgTWVtb3J5T2JqZWN0SW5mbzsKIGNsYXNzIE5TUmVzb2x2ZXI7CiBj
bGFzcyBOYW1lZE5vZGVNYXA7CiBjbGFzcyBOYW1lTm9kZUxpc3Q7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGUuY3BwIGIvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlLmNwcAppbmRleCA4ZTVhOTBlOGNmZGRiMTU0
MDg3NjFiOTI3MmNhZTg4NjkxZThhNzk4Li4wNzQ2NzdjOGIwYjhmYjc0Njg2YzUwZTg0MjE0MTUy
ODFiMTdiOGY2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvUmVu
ZGVyU3R5bGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9SZW5kZXJT
dHlsZS5jcHAKQEAgLTI4LDYgKzI4LDcgQEAKICNpbmNsdWRlICJDU1NQcm9wZXJ0eU5hbWVzLmgi
CiAjaW5jbHVkZSAiQ1NTV3JhcFNoYXBlcy5oIgogI2luY2x1ZGUgIkZvbnRTZWxlY3Rvci5oIgor
I2luY2x1ZGUgIk1lbW9yeUluc3RydW1lbnRhdGlvbi5oIgogI2luY2x1ZGUgIlF1b3Rlc0RhdGEu
aCIKICNpbmNsdWRlICJSZW5kZXJBcmVuYS5oIgogI2luY2x1ZGUgIlJlbmRlck9iamVjdC5oIgpA
QCAtMTQ4Niw0ICsxNDg3LDI0IEBAIExheW91dEJveEV4dGVudCBSZW5kZXJTdHlsZTo6aW1hZ2VP
dXRzZXRzKGNvbnN0IE5pbmVQaWVjZUltYWdlJiBpbWFnZSkgY29uc3QKICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIE5pbmVQaWVjZUltYWdlOjpjb21wdXRlT3V0c2V0KGltYWdlLm91dHNldCgp
LmxlZnQoKSwgYm9yZGVyTGVmdFdpZHRoKCkpKTsKIH0KIAordm9pZCBSZW5kZXJTdHlsZTo6cmVw
b3J0TWVtb3J5VXNhZ2UoTWVtb3J5T2JqZWN0SW5mbyogbWVtb3J5T2JqZWN0SW5mbykgY29uc3QK
K3sKKyAgICBNZW1vcnlDbGFzc0luZm88UmVuZGVyU3R5bGU+IGluZm8obWVtb3J5T2JqZWN0SW5m
bywgdGhpcywgTWVtb3J5SW5zdHJ1bWVudGF0aW9uOjpDU1MpOworICAgIGluZm8uYWRkTWVtYmVy
KG1fYm94KTsKKyAgICBpbmZvLmFkZE1lbWJlcih2aXN1YWwpOworICAgIC8vIEZJWE1FOiBtX2Jh
Y2tncm91bmQgY29udGFpbnMgUmVmUHRyPFN0eWxlSW1hZ2U+IHRoYXQgbWlnaHQgbmVlZCB0byBi
ZSBpbnN0cnVtZW50ZWQuCisgICAgaW5mby5hZGRNZW1iZXIobV9iYWNrZ3JvdW5kKTsKKyAgICAv
LyBGSVhNRTogc3Vycm9uZCBjb250YWlucyBzb21lIGZpZWxkcyBlLmcuIEJvcmRlckRhdGEgdGhh
dCBtaWdodCBuZWVkIHRvIGJlIGluc3RydW1lbnRlZC4KKyAgICBpbmZvLmFkZE1lbWJlcihzdXJy
b3VuZCk7CisgICAgaW5mby5hZGRJbnN0cnVtZW50ZWRNZW1iZXIocmFyZU5vbkluaGVyaXRlZERh
dGEpOworICAgIGluZm8uYWRkSW5zdHJ1bWVudGVkTWVtYmVyKHJhcmVJbmhlcml0ZWREYXRhKTsK
KyAgICAvLyBGSVhNRTogaW5oZXJpdGVkIGNvbnRhaW5zIFN0eWxlSW1hZ2UgYW5kIEZvbnQgZmll
bGRzIHRoYXQgbWlnaHQgbmVlZCB0byBiZSBpbnN0cnVtZW50ZWQuCisgICAgaW5mby5hZGRNZW1i
ZXIoaW5oZXJpdGVkKTsKKyAgICBpZiAobV9jYWNoZWRQc2V1ZG9TdHlsZXMpCisgICAgICAgIGlu
Zm8uYWRkVmVjdG9yKCptX2NhY2hlZFBzZXVkb1N0eWxlcyk7CisjaWYgRU5BQkxFKFNWRykKKyAg
ICBpbmZvLmFkZE1lbWJlcihtX3N2Z1N0eWxlKTsKKyNlbmRpZgorfQorCiB9IC8vIG5hbWVzcGFj
ZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvUmVu
ZGVyU3R5bGUuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZS5o
CmluZGV4IGQ1NmQyZDNjMWMxZGZmOWJlNmUzYzEzMzk2NDhmZWNjMzY3MDg2ZTYuLmUyMDQ4YWNm
MGU5YjQ4YTRlNzhiNWI5MzcxNDYwM2YxZjhlZGI4ZDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZS5oCkBAIC0xMDUsNiArMTA1LDcgQEAgY2xhc3MgQm9y
ZGVyRGF0YTsKIGNsYXNzIENvdW50ZXJDb250ZW50OwogY2xhc3MgQ3Vyc29yTGlzdDsKIGNsYXNz
IEludFJlY3Q7CitjbGFzcyBNZW1vcnlPYmplY3RJbmZvOwogY2xhc3MgUGFpcjsKIGNsYXNzIFNo
YWRvd0RhdGE7CiBjbGFzcyBTdHlsZUltYWdlOwpAQCAtMTU0MSw2ICsxNTQyLDggQEAgcHVibGlj
OgogCiAgICAgdm9pZCBzZXRIYXNFeHBsaWNpdGx5SW5oZXJpdGVkUHJvcGVydGllcygpIHsgbV9i
aXRmaWVsZHMuc2V0RXhwbGljaXRJbmhlcml0YW5jZSh0cnVlKTsgfQogICAgIGJvb2wgaGFzRXhw
bGljaXRseUluaGVyaXRlZFByb3BlcnRpZXMoKSBjb25zdCB7IHJldHVybiBtX2JpdGZpZWxkcy5l
eHBsaWNpdEluaGVyaXRhbmNlKCk7IH0KKworICAgIHZvaWQgcmVwb3J0TWVtb3J5VXNhZ2UoTWVt
b3J5T2JqZWN0SW5mbyopIGNvbnN0OwogICAgIAogICAgIC8vIEluaXRpYWwgdmFsdWVzIGZvciBh
bGwgdGhlIHByb3BlcnRpZXMKICAgICBzdGF0aWMgRUJvcmRlckNvbGxhcHNlIGluaXRpYWxCb3Jk
ZXJDb2xsYXBzZSgpIHsgcmV0dXJuIEJTRVBBUkFURTsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL3N0eWxlL1N0eWxlUmFyZUluaGVyaXRlZERhdGEuY3BwIGIvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1N0eWxlUmFyZUluaGVyaXRlZERhdGEuY3BwCmluZGV4
IDk3ZGU0MmQzYzM1YTlhZDlhY2E0YjUyZjJlZTRlMjA2OGVkZWQyOGQuLmY2ODk3ODE4OWUzM2Mw
MDBkNGEzMDE0M2IwMzZmMzg5NWI1NWI5YjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9zdHlsZS9TdHlsZVJhcmVJbmhlcml0ZWREYXRhLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvc3R5bGUvU3R5bGVSYXJlSW5oZXJpdGVkRGF0YS5jcHAKQEAgLTIzLDYg
KzIzLDcgQEAKICNpbmNsdWRlICJTdHlsZVJhcmVJbmhlcml0ZWREYXRhLmgiCiAKICNpbmNsdWRl
ICJDdXJzb3JMaXN0LmgiCisjaW5jbHVkZSAiTWVtb3J5SW5zdHJ1bWVudGF0aW9uLmgiCiAjaW5j
bHVkZSAiUXVvdGVzRGF0YS5oIgogI2luY2x1ZGUgIlJlbmRlclN0eWxlLmgiCiAjaW5jbHVkZSAi
UmVuZGVyU3R5bGVDb25zdGFudHMuaCIKQEAgLTI2MSw0ICsyNjIsMjAgQEAgYm9vbCBTdHlsZVJh
cmVJbmhlcml0ZWREYXRhOjpzaGFkb3dEYXRhRXF1aXZhbGVudChjb25zdCBTdHlsZVJhcmVJbmhl
cml0ZWREYXRhJgogICAgIHJldHVybiB0cnVlOwogfQogCit2b2lkIFN0eWxlUmFyZUluaGVyaXRl
ZERhdGE6OnJlcG9ydE1lbW9yeVVzYWdlKE1lbW9yeU9iamVjdEluZm8qIG1lbW9yeU9iamVjdElu
Zm8pIGNvbnN0Cit7CisgICAgTWVtb3J5Q2xhc3NJbmZvPFN0eWxlUmFyZUluaGVyaXRlZERhdGE+
IGluZm8obWVtb3J5T2JqZWN0SW5mbywgdGhpcywgTWVtb3J5SW5zdHJ1bWVudGF0aW9uOjpDU1Mp
OworICAgIGluZm8uYWRkTWVtYmVyKHRleHRTaGFkb3cpOworICAgIGluZm8uYWRkU3RyaW5nKGhp
Z2hsaWdodCk7CisgICAgaW5mby5hZGRNZW1iZXIoY3Vyc29yRGF0YSk7CisgICAgaW5mby5hZGRT
dHJpbmcoaHlwaGVuYXRpb25TdHJpbmcpOworICAgIGluZm8uYWRkU3RyaW5nKGxvY2FsZSk7Cisg
ICAgaW5mby5hZGRTdHJpbmcodGV4dEVtcGhhc2lzQ3VzdG9tTWFyayk7CisgICAgaW5mby5hZGRN
ZW1iZXIocXVvdGVzKTsKKyAgICBpbmZvLmFkZFN0cmluZyhtX2xpbmVHcmlkKTsKKyNpZiBFTkFC
TEUoQ1NTX1ZBUklBQkxFUykKKyAgICBpbmZvLmFkZE1lbWJlcihtX3ZhcmlhYmxlcyk7CisjZW5k
aWYKK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL3N0eWxlL1N0eWxlUmFyZUluaGVyaXRlZERhdGEuaCBiL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9zdHlsZS9TdHlsZVJhcmVJbmhlcml0ZWREYXRhLmgKaW5kZXggYjMwOTgy
ZGY5N2IxY2UyNjJlZDcyZGRlNzAxN2ZlOGY4ZTVlNWFjMC4uYmI0MzNlZDI3NmNhZGI1Mjg0ODVh
MzNkZjQ0M2IxZmFiNWRkNWJhOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L3N0eWxlL1N0eWxlUmFyZUluaGVyaXRlZERhdGEuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvc3R5bGUvU3R5bGVSYXJlSW5oZXJpdGVkRGF0YS5oCkBAIC0zOSw2ICszOSw3IEBACiBu
YW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIEN1cnNvckxpc3Q7CitjbGFzcyBNZW1vcnlPYmpl
Y3RJbmZvOwogY2xhc3MgUXVvdGVzRGF0YTsKIGNsYXNzIFNoYWRvd0RhdGE7CiAKQEAgLTU4LDYg
KzU5LDggQEAgcHVibGljOgogICAgIH0KICAgICBib29sIHNoYWRvd0RhdGFFcXVpdmFsZW50KGNv
bnN0IFN0eWxlUmFyZUluaGVyaXRlZERhdGEmKSBjb25zdDsKIAorICAgIHZvaWQgcmVwb3J0TWVt
b3J5VXNhZ2UoTWVtb3J5T2JqZWN0SW5mbyopIGNvbnN0OworCiAgICAgQ29sb3IgdGV4dFN0cm9r
ZUNvbG9yOwogICAgIGZsb2F0IHRleHRTdHJva2VXaWR0aDsKICAgICBDb2xvciB0ZXh0RmlsbENv
bG9yOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1N0eWxlUmFy
ZU5vbkluaGVyaXRlZERhdGEuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1N0
eWxlUmFyZU5vbkluaGVyaXRlZERhdGEuY3BwCmluZGV4IDIyYjMyNzJlOGMzN2QyMWVlMzY0OWMw
YTQ1YTdkNDNkNTEyMTA0NGQuLjIxZDdlY2I1NzM1MGQxNzYwMDQ2MmMyZGNlMDgzOGI4MzI0OWEz
YjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9TdHlsZVJhcmVO
b25Jbmhlcml0ZWREYXRhLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUv
U3R5bGVSYXJlTm9uSW5oZXJpdGVkRGF0YS5jcHAKQEAgLTIzLDYgKzIzLDcgQEAKICNpbmNsdWRl
ICJTdHlsZVJhcmVOb25Jbmhlcml0ZWREYXRhLmgiCiAKICNpbmNsdWRlICJDb250ZW50RGF0YS5o
IgorI2luY2x1ZGUgIk1lbW9yeUluc3RydW1lbnRhdGlvbi5oIgogI2luY2x1ZGUgIlJlbmRlckNv
dW50ZXIuaCIKICNpbmNsdWRlICJSZW5kZXJTdHlsZS5oIgogI2luY2x1ZGUgIlNoYWRvd0RhdGEu
aCIKQEAgLTI4Niw0ICsyODcsMzIgQEAgYm9vbCBTdHlsZVJhcmVOb25Jbmhlcml0ZWREYXRhOjp0
cmFuc2l0aW9uRGF0YUVxdWl2YWxlbnQoY29uc3QgU3R5bGVSYXJlTm9uSW5oZXIKICAgICByZXR1
cm4gdHJ1ZTsKIH0KIAordm9pZCBTdHlsZVJhcmVOb25Jbmhlcml0ZWREYXRhOjpyZXBvcnRNZW1v
cnlVc2FnZShNZW1vcnlPYmplY3RJbmZvKiBtZW1vcnlPYmplY3RJbmZvKSBjb25zdAoreworICAg
IE1lbW9yeUNsYXNzSW5mbzxTdHlsZVJhcmVOb25Jbmhlcml0ZWREYXRhPiBpbmZvKG1lbW9yeU9i
amVjdEluZm8sIHRoaXMsIE1lbW9yeUluc3RydW1lbnRhdGlvbjo6Q1NTKTsKKyNpZiBFTkFCTEUo
REFTSEJPQVJEX1NVUFBPUlQpCisgICAgaW5mby5hZGRWZWN0b3IobV9kYXNoYm9hcmRSZWdpb25z
KTsKKyNlbmRpZgorICAgIGluZm8uYWRkTWVtYmVyKG1fZGVwcmVjYXRlZEZsZXhpYmxlQm94KTsK
KyAgICBpbmZvLmFkZE1lbWJlcihtX2ZsZXhpYmxlQm94KTsKKyAgICBpbmZvLmFkZE1lbWJlciht
X21hcnF1ZWUpOworICAgIGluZm8uYWRkTWVtYmVyKG1fbXVsdGlDb2wpOworICAgIGluZm8uYWRk
TWVtYmVyKG1fdHJhbnNmb3JtKTsKKyNpZiBFTkFCTEUoQ1NTX0ZJTFRFUlMpCisgICAgaW5mby5h
ZGRNZW1iZXIobV9maWx0ZXIpOworI2VuZGlmCisgICAgaW5mby5hZGRNZW1iZXIobV9ncmlkKTsK
KyAgICBpbmZvLmFkZE1lbWJlcihtX2dyaWRJdGVtKTsKKyAgICBpbmZvLmFkZE1lbWJlcihtX2Nv
bnRlbnQpOworICAgIGluZm8uYWRkTWVtYmVyKG1fY291bnRlckRpcmVjdGl2ZXMpOworICAgIGlu
Zm8uYWRkTWVtYmVyKG1fYm94U2hhZG93KTsKKyAgICBpbmZvLmFkZE1lbWJlcihtX2JveFJlZmxl
Y3QpOworICAgIGluZm8uYWRkTWVtYmVyKG1fYW5pbWF0aW9ucyk7CisgICAgaW5mby5hZGRNZW1i
ZXIobV90cmFuc2l0aW9ucyk7CisgICAgaW5mby5hZGRNZW1iZXIobV93cmFwU2hhcGVJbnNpZGUp
OworICAgIGluZm8uYWRkTWVtYmVyKG1fd3JhcFNoYXBlT3V0c2lkZSk7CisgICAgaW5mby5hZGRT
dHJpbmcobV9mbG93VGhyZWFkKTsKKyAgICBpbmZvLmFkZFN0cmluZyhtX3JlZ2lvblRocmVhZCk7
Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9zdHlsZS9TdHlsZVJhcmVOb25Jbmhlcml0ZWREYXRhLmggYi9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvc3R5bGUvU3R5bGVSYXJlTm9uSW5oZXJpdGVkRGF0YS5oCmluZGV4IDVl
NmZkZTJhNjE3Y2YzOTUyNWU1NTdiZDkwOTg2NjIyMTRlOGNiZWUuLjBmZTZlNThjNjMzYmNjYTli
YzJiNGU3N2ZkM2IyMDYwZTNkNzZkNGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9zdHlsZS9TdHlsZVJhcmVOb25Jbmhlcml0ZWREYXRhLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL3N0eWxlL1N0eWxlUmFyZU5vbkluaGVyaXRlZERhdGEuaApAQCAtMzksNiAr
MzksNyBAQAogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBBbmltYXRpb25MaXN0OworY2xh
c3MgTWVtb3J5T2JqZWN0SW5mbzsKIGNsYXNzIFNoYWRvd0RhdGE7CiBjbGFzcyBTdHlsZURlcHJl
Y2F0ZWRGbGV4aWJsZUJveERhdGE7CiAjaWYgRU5BQkxFKENTU19GSUxURVJTKQpAQCAtODksNiAr
OTAsOCBAQCBwdWJsaWM6CiAgICAgYm9vbCBhbmltYXRpb25EYXRhRXF1aXZhbGVudChjb25zdCBT
dHlsZVJhcmVOb25Jbmhlcml0ZWREYXRhJikgY29uc3Q7CiAgICAgYm9vbCB0cmFuc2l0aW9uRGF0
YUVxdWl2YWxlbnQoY29uc3QgU3R5bGVSYXJlTm9uSW5oZXJpdGVkRGF0YSYpIGNvbnN0OwogCisg
ICAgdm9pZCByZXBvcnRNZW1vcnlVc2FnZShNZW1vcnlPYmplY3RJbmZvKikgY29uc3Q7CisKICAg
ICBmbG9hdCBvcGFjaXR5OyAvLyBXaGV0aGVyIG9yIG5vdCB3ZSdyZSB0cmFuc3BhcmVudC4KIAog
ICAgIGZsb2F0IG1fYXNwZWN0UmF0aW9EZW5vbWluYXRvcjsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>155282</attachid>
            <date>2012-07-30 06:50:45 -0700</date>
            <delta_ts>2012-07-31 07:01:22 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-91759-20120730175028.patch</filename>
            <type>text/plain</type>
            <size>15060</size>
            <attacher name="Alexei Filippov">alph</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTI0MDIxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMmI0MmQ5ZDFhN2Y2ZDcw
YjA0NjViMTc0NWQxN2FiMzBlYzRmMWVkMi4uNGQ4ZTFhNTc5ZmJiY2M4ZjFmNTJhOWE2Yjc4YzU3
NzQ0NDNkMWMxZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM5IEBACisyMDEyLTA3LTMwICBBbGV4
ZWkgRmlsaXBwb3YgIDxhbGV4ZWlmQGNocm9taXVtLm9yZz4KKworICAgICAgICBXZWIgSW5zcGVj
dG9yOiBjb3VudCBSZW5kZXJTdHlsZSBvYmplY3RzIGluIHRoZSBuYXRpdmUgbWVtb3J5IHByb2Zp
bGVyCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05MTc1
OQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogYmlu
ZGluZ3MvanMvU2NyaXB0V3JhcHBhYmxlLmg6CisgICAgICAgICogYmluZGluZ3MvdjgvU2NyaXB0
V3JhcHBhYmxlLmg6CisgICAgICAgICogZG9tL01lbW9yeUluc3RydW1lbnRhdGlvbi5oOgorICAg
ICAgICAoV2ViQ29yZTo6TWVtb3J5SW5zdHJ1bWVudGF0aW9uOjpPd25pbmdUcmFpdHM6OmFkZE9i
amVjdCk6CisgICAgICAgIChXZWJDb3JlOjpNZW1vcnlJbnN0cnVtZW50YXRpb246OmFkZE9iamVj
dEltcGwpOgorICAgICAgICAoV2ViQ29yZTo6TWVtb3J5SW5zdHJ1bWVudGF0aW9uOjphZGRJbnN0
cnVtZW50ZWRPYmplY3RJbXBsKToKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAqIGRvbS9O
b2RlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok5vZGU6OnJlcG9ydE1lbW9yeVVzYWdlKToKKyAg
ICAgICAgKiBkb20vTm9kZS5oOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgICogcmVuZGVy
aW5nL3N0eWxlL1JlbmRlclN0eWxlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclN0eWxl
OjpyZXBvcnRNZW1vcnlVc2FnZSk6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKiByZW5k
ZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGUuaDoKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAq
IHJlbmRlcmluZy9zdHlsZS9TdHlsZVJhcmVJbmhlcml0ZWREYXRhLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OlN0eWxlUmFyZUluaGVyaXRlZERhdGE6OnJlcG9ydE1lbW9yeVVzYWdlKToKKyAgICAg
ICAgKFdlYkNvcmUpOgorICAgICAgICAqIHJlbmRlcmluZy9zdHlsZS9TdHlsZVJhcmVJbmhlcml0
ZWREYXRhLmg6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKFN0eWxlUmFyZUluaGVyaXRl
ZERhdGEpOgorICAgICAgICAqIHJlbmRlcmluZy9zdHlsZS9TdHlsZVJhcmVOb25Jbmhlcml0ZWRE
YXRhLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlN0eWxlUmFyZU5vbkluaGVyaXRlZERhdGE6OnJl
cG9ydE1lbW9yeVVzYWdlKToKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAqIHJlbmRlcmlu
Zy9zdHlsZS9TdHlsZVJhcmVOb25Jbmhlcml0ZWREYXRhLmg6CisgICAgICAgIChXZWJDb3JlKToK
KyAgICAgICAgKFN0eWxlUmFyZU5vbkluaGVyaXRlZERhdGEpOgorCiAyMDEyLTA3LTMwICBWc2V2
b2xvZCBWbGFzb3YgIDx2c2V2aWtAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFdlYiBJbnNwZWN0
b3I6IENvbnRlbnQgc2l6ZSB2YXJpYWJsZXMgaW4gTmV0d29ya1Jlc291cmNlc0RhdGEgc2hvdWxk
IGhhdmUgc2l6ZV90IHR5cGUgaW5zdGVhZCBvZiBpbnQuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9qcy9TY3JpcHRXcmFwcGFibGUuaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL2pzL1NjcmlwdFdyYXBwYWJsZS5oCmluZGV4IDNjYjVkODE2YzExMWI4MDdmYTA2OTdhNjdj
ZDlmOWE5NjQyZDA1ZTcuLjBjZjJkN2ExNmM0ZWUwOGRjNDUzMDQ5MmUxMjQzMTQwZThmOWI1OTEg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1NjcmlwdFdyYXBwYWJsZS5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1NjcmlwdFdyYXBwYWJsZS5oCkBAIC0z
Miw2ICszMiw3IEBACiAjZGVmaW5lIFNjcmlwdFdyYXBwYWJsZV9oCiAKICNpbmNsdWRlICJKU0RP
TVdyYXBwZXIuaCIKKyNpbmNsdWRlICJNZW1vcnlJbnN0cnVtZW50YXRpb24uaCIKICNpbmNsdWRl
IDxoZWFwL1dlYWsuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvYmluZGluZ3MvdjgvU2NyaXB0V3JhcHBhYmxlLmggYi9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy92OC9TY3JpcHRXcmFwcGFibGUuaAppbmRleCBlZjJmNzYxOWYyNDUxMTA2NTdjN2Fl
MGE1YmEwMmVkYzA0ZDZmZjY5Li42NGE5MDUzOTI4YTYwZTE1MDgyMTY0NzYwNDI4NTZiMmE3YzNk
MDMwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9TY3JpcHRXcmFwcGFi
bGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9TY3JpcHRXcmFwcGFibGUuaApA
QCAtMzEsNiArMzEsNyBAQAogI2lmbmRlZiBTY3JpcHRXcmFwcGFibGVfaAogI2RlZmluZSBTY3Jp
cHRXcmFwcGFibGVfaAogCisjaW5jbHVkZSAiTWVtb3J5SW5zdHJ1bWVudGF0aW9uLmgiCiAjaW5j
bHVkZSA8djguaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvZG9tL01lbW9yeUluc3RydW1lbnRhdGlvbi5oIGIvU291cmNlL1dlYkNvcmUvZG9tL01l
bW9yeUluc3RydW1lbnRhdGlvbi5oCmluZGV4IGNjZGFmMThkNzIzYzliYTQ0ZGM0Nzc4NzhkYjNi
NTI1NjhhYWJmMmUuLjUzN2M3ZWVmNGE5YThlNzg5NzQ1MjI3ZGVjMDAyMGNmY2JjNGU0MzUgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9NZW1vcnlJbnN0cnVtZW50YXRpb24uaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9kb20vTWVtb3J5SW5zdHJ1bWVudGF0aW9uLmgKQEAgLTMxLDYgKzMx
LDggQEAKICNpZm5kZWYgTWVtb3J5SW5zdHJ1bWVudGF0aW9uX2gKICNkZWZpbmUgTWVtb3J5SW5z
dHJ1bWVudGF0aW9uX2gKIAorI2luY2x1ZGUgIkRhdGFSZWYuaCIKKyNpbmNsdWRlIDxzdGRpby5o
PgogI2luY2x1ZGUgPHd0Zi9Bc3NlcnRpb25zLmg+CiAjaW5jbHVkZSA8d3RmL0ZvcndhcmQuaD4K
ICNpbmNsdWRlIDx3dGYvT3duUHRyLmg+CkBAIC0xMDgsMjAgKzExMCwyNCBAQCBwcml2YXRlOgog
ICAgIHRlbXBsYXRlIDx0eXBlbmFtZSBUPgogICAgIHN0cnVjdCBPd25pbmdUcmFpdHMgeyAvLyBE
ZWZhdWx0IGJ5UmVmZXJlbmNlIGltcGxlbWVudGF0aW9uLgogICAgICAgICBzdGF0aWMgdm9pZCBh
ZGRJbnN0cnVtZW50ZWRPYmplY3QoTWVtb3J5SW5zdHJ1bWVudGF0aW9uKiBpbnN0cnVtZW50YXRp
b24sIGNvbnN0IFQmIHQpIHsgaW5zdHJ1bWVudGF0aW9uLT5hZGRJbnN0cnVtZW50ZWRPYmplY3RJ
bXBsKCZ0LCBieVJlZmVyZW5jZSk7IH0KLSAgICAgICAgc3RhdGljIHZvaWQgYWRkT2JqZWN0KE1l
bW9yeUluc3RydW1lbnRhdGlvbiogaW5zdHJ1bWVudGF0aW9uLCBjb25zdCBUJiB0LCBNZW1vcnlJ
bnN0cnVtZW50YXRpb246Ok9iamVjdFR5cGUgb2JqZWN0VHlwZSkgeyBpbnN0cnVtZW50YXRpb24t
PmFkZE9iamVjdEltcGwoJnQsIG9iamVjdFR5cGUsIGJ5UmVmZXJlbmNlKTsgfQorICAgICAgICBz
dGF0aWMgdm9pZCBhZGRPYmplY3QoTWVtb3J5SW5zdHJ1bWVudGF0aW9uKiBpbnN0cnVtZW50YXRp
b24sIGNvbnN0IFQmIHQsIE9iamVjdFR5cGUgb2JqZWN0VHlwZSkgeyBpbnN0cnVtZW50YXRpb24t
PmFkZE9iamVjdEltcGwoJnQsIG9iamVjdFR5cGUsIGJ5UmVmZXJlbmNlKTsgfQogICAgIH07CiAK
ICAgICB0ZW1wbGF0ZSA8dHlwZW5hbWUgVD4KICAgICBzdHJ1Y3QgT3duaW5nVHJhaXRzPFQqPiB7
IC8vIEN1c3RvbSBieVBvaW50ZXIgaW1wbGVtZW50YXRpb24uCiAgICAgICAgIHN0YXRpYyB2b2lk
IGFkZEluc3RydW1lbnRlZE9iamVjdChNZW1vcnlJbnN0cnVtZW50YXRpb24qIGluc3RydW1lbnRh
dGlvbiwgY29uc3QgVCogY29uc3QmIHQpIHsgaW5zdHJ1bWVudGF0aW9uLT5hZGRJbnN0cnVtZW50
ZWRPYmplY3RJbXBsKHQsIGJ5UG9pbnRlcik7IH0KLSAgICAgICAgc3RhdGljIHZvaWQgYWRkT2Jq
ZWN0KE1lbW9yeUluc3RydW1lbnRhdGlvbiogaW5zdHJ1bWVudGF0aW9uLCBjb25zdCBUKiBjb25z
dCYgdCwgTWVtb3J5SW5zdHJ1bWVudGF0aW9uOjpPYmplY3RUeXBlIG9iamVjdFR5cGUpIHsgaW5z
dHJ1bWVudGF0aW9uLT5hZGRPYmplY3RJbXBsKHQsIG9iamVjdFR5cGUsIGJ5UG9pbnRlcik7IH0K
KyAgICAgICAgc3RhdGljIHZvaWQgYWRkT2JqZWN0KE1lbW9yeUluc3RydW1lbnRhdGlvbiogaW5z
dHJ1bWVudGF0aW9uLCBjb25zdCBUKiBjb25zdCYgdCwgT2JqZWN0VHlwZSBvYmplY3RUeXBlKSB7
IGluc3RydW1lbnRhdGlvbi0+YWRkT2JqZWN0SW1wbCh0LCBvYmplY3RUeXBlLCBieVBvaW50ZXIp
OyB9CiAgICAgfTsKIAogICAgIHRlbXBsYXRlIDx0eXBlbmFtZSBUPiB2b2lkIGFkZEluc3RydW1l
bnRlZE9iamVjdEltcGwoY29uc3QgVCogY29uc3QmLCBPd25pbmdUeXBlKTsKKyAgICB0ZW1wbGF0
ZSA8dHlwZW5hbWUgVD4gdm9pZCBhZGRJbnN0cnVtZW50ZWRPYmplY3RJbXBsKGNvbnN0IERhdGFS
ZWY8VD4qIGNvbnN0JiwgT3duaW5nVHlwZSk7CiAgICAgdGVtcGxhdGUgPHR5cGVuYW1lIFQ+IHZv
aWQgYWRkSW5zdHJ1bWVudGVkT2JqZWN0SW1wbChjb25zdCBPd25QdHI8VD4qIGNvbnN0JiwgT3du
aW5nVHlwZSk7CiAgICAgdGVtcGxhdGUgPHR5cGVuYW1lIFQ+IHZvaWQgYWRkSW5zdHJ1bWVudGVk
T2JqZWN0SW1wbChjb25zdCBSZWZQdHI8VD4qIGNvbnN0JiwgT3duaW5nVHlwZSk7CiAKICAgICB0
ZW1wbGF0ZSA8dHlwZW5hbWUgVD4gdm9pZCBhZGRPYmplY3RJbXBsKGNvbnN0IFQqIGNvbnN0Jiwg
T2JqZWN0VHlwZSwgT3duaW5nVHlwZSk7CisgICAgdGVtcGxhdGUgPHR5cGVuYW1lIFQ+IHZvaWQg
YWRkT2JqZWN0SW1wbChjb25zdCBEYXRhUmVmPFQ+KiBjb25zdCYgb2JqZWN0LCBPYmplY3RUeXBl
IG9iamVjdFR5cGUsIE93bmluZ1R5cGUpIHsgYWRkT2JqZWN0SW1wbChvYmplY3QtPmdldCgpLCBv
YmplY3RUeXBlLCBieVBvaW50ZXIpOyB9CisgICAgdGVtcGxhdGUgPHR5cGVuYW1lIFQ+IHZvaWQg
YWRkT2JqZWN0SW1wbChjb25zdCBPd25QdHI8VD4qIGNvbnN0JiBvYmplY3QsIE9iamVjdFR5cGUg
b2JqZWN0VHlwZSwgT3duaW5nVHlwZSkgeyBhZGRPYmplY3RJbXBsKG9iamVjdC0+Z2V0KCksIG9i
amVjdFR5cGUsIGJ5UG9pbnRlcik7IH0KKyAgICB0ZW1wbGF0ZSA8dHlwZW5hbWUgVD4gdm9pZCBh
ZGRPYmplY3RJbXBsKGNvbnN0IFJlZlB0cjxUPiogY29uc3QmIG9iamVjdCwgT2JqZWN0VHlwZSBv
YmplY3RUeXBlLCBPd25pbmdUeXBlKSB7IGFkZE9iamVjdEltcGwob2JqZWN0LT5nZXQoKSwgb2Jq
ZWN0VHlwZSwgYnlQb2ludGVyKTsgfQogfTsKIAogY2xhc3MgTWVtb3J5T2JqZWN0SW5mbyB7CkBA
IC0xOTksMTUgKzIwNSwyMSBAQCB2b2lkIE1lbW9yeUluc3RydW1lbnRhdGlvbjo6YWRkSW5zdHJ1
bWVudGVkT2JqZWN0SW1wbChjb25zdCBUKiBjb25zdCYgb2JqZWN0LCBPdwogfQogCiB0ZW1wbGF0
ZSA8dHlwZW5hbWUgVD4KLXZvaWQgTWVtb3J5SW5zdHJ1bWVudGF0aW9uOjphZGRJbnN0cnVtZW50
ZWRPYmplY3RJbXBsKGNvbnN0IE93blB0cjxUPiogY29uc3QmIG9iamVjdCwgT3duaW5nVHlwZSBv
d25pbmdUeXBlKQordm9pZCBNZW1vcnlJbnN0cnVtZW50YXRpb246OmFkZEluc3RydW1lbnRlZE9i
amVjdEltcGwoY29uc3QgRGF0YVJlZjxUPiogY29uc3QmIG9iamVjdCwgT3duaW5nVHlwZSkKIHsK
LSAgICBhZGRJbnN0cnVtZW50ZWRPYmplY3RJbXBsKG9iamVjdC0+Z2V0KCksIG93bmluZ1R5cGUp
OworICAgIGFkZEluc3RydW1lbnRlZE9iamVjdEltcGwob2JqZWN0LT5nZXQoKSwgYnlQb2ludGVy
KTsKIH0KIAogdGVtcGxhdGUgPHR5cGVuYW1lIFQ+Ci12b2lkIE1lbW9yeUluc3RydW1lbnRhdGlv
bjo6YWRkSW5zdHJ1bWVudGVkT2JqZWN0SW1wbChjb25zdCBSZWZQdHI8VD4qIGNvbnN0JiBvYmpl
Y3QsIE93bmluZ1R5cGUgb3duaW5nVHlwZSkKK3ZvaWQgTWVtb3J5SW5zdHJ1bWVudGF0aW9uOjph
ZGRJbnN0cnVtZW50ZWRPYmplY3RJbXBsKGNvbnN0IE93blB0cjxUPiogY29uc3QmIG9iamVjdCwg
T3duaW5nVHlwZSkKIHsKLSAgICBhZGRJbnN0cnVtZW50ZWRPYmplY3RJbXBsKG9iamVjdC0+Z2V0
KCksIG93bmluZ1R5cGUpOworICAgIGFkZEluc3RydW1lbnRlZE9iamVjdEltcGwob2JqZWN0LT5n
ZXQoKSwgYnlQb2ludGVyKTsKK30KKwordGVtcGxhdGUgPHR5cGVuYW1lIFQ+Cit2b2lkIE1lbW9y
eUluc3RydW1lbnRhdGlvbjo6YWRkSW5zdHJ1bWVudGVkT2JqZWN0SW1wbChjb25zdCBSZWZQdHI8
VD4qIGNvbnN0JiBvYmplY3QsIE93bmluZ1R5cGUpCit7CisgICAgYWRkSW5zdHJ1bWVudGVkT2Jq
ZWN0SW1wbChvYmplY3QtPmdldCgpLCBieVBvaW50ZXIpOwogfQogCiAvLyBMaW5rIHRpbWUgZ3Vh
cmQgZm9yIHN0cmluZyBtZW1iZXJzLiBUaGV5IHByb2R1Y2UgbGluayBlcnJvciBpcyBhIHN0cmlu
ZyBpcyByZXBvcnRlZCB2aWEgYWRkT2JqZWN0LgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
ZG9tL05vZGUuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL05vZGUuY3BwCmluZGV4IGYzMGMzZmNi
ZmNmODYwYWUwMzQxN2I1ZGNkMDExN2I5NmM1ZmY5ZWQuLmE3MTA2NTQxY2RiNWI1NWJlMmNlMzQz
NDdmMmRlZDYxYzliYTg4NmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZS5jcHAKQEAgLTY3LDYgKzY3LDcgQEAKICNp
bmNsdWRlICJLZXlib2FyZEV2ZW50LmgiCiAjaW5jbHVkZSAiTGFiZWxzTm9kZUxpc3QuaCIKICNp
bmNsdWRlICJMb2dnaW5nLmgiCisjaW5jbHVkZSAiTWVtb3J5SW5zdHJ1bWVudGF0aW9uLmgiCiAj
aW5jbHVkZSAiTW91c2VFdmVudC5oIgogI2luY2x1ZGUgIk11dGF0aW9uRXZlbnQuaCIKICNpbmNs
dWRlICJOYW1lTm9kZUxpc3QuaCIKQEAgLTI4MDQsNiArMjgwNSw4IEBAIHZvaWQgTm9kZTo6cmVw
b3J0TWVtb3J5VXNhZ2UoTWVtb3J5T2JqZWN0SW5mbyogbWVtb3J5T2JqZWN0SW5mbykgY29uc3QK
ICAgICBpbmZvLmFkZEluc3RydW1lbnRlZE1lbWJlcihtX2RvY3VtZW50KTsKICAgICBpbmZvLmFk
ZEluc3RydW1lbnRlZE1lbWJlcihtX25leHQpOwogICAgIGluZm8uYWRkSW5zdHJ1bWVudGVkTWVt
YmVyKG1fcHJldmlvdXMpOworICAgIGlmIChtX3JlbmRlcmVyKQorICAgICAgICBpbmZvLmFkZElu
c3RydW1lbnRlZE1lbWJlcihtX3JlbmRlcmVyLT5zdHlsZSgpKTsKIH0KIAogfSAvLyBuYW1lc3Bh
Y2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL05vZGUuaCBiL1NvdXJj
ZS9XZWJDb3JlL2RvbS9Ob2RlLmgKaW5kZXggODZhN2QzOWVkNThiZGJjOWQ0MmYyNDFlNDc2Yzlh
NmIzMTZiZDZkMC4uNWJhMzQxMWVlOGUzYmNkZTJiNTEyMGEwNmIxZDI5ZGZhNjMyMTQzYyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL05vZGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9k
b20vTm9kZS5oCkBAIC0yOSw3ICsyOSw2IEBACiAjaW5jbHVkZSAiRXZlbnRUYXJnZXQuaCIKICNp
bmNsdWRlICJLVVJMSGFzaC5oIgogI2luY2x1ZGUgIkxheW91dFR5cGVzLmgiCi0jaW5jbHVkZSAi
TWVtb3J5SW5zdHJ1bWVudGF0aW9uLmgiCiAjaW5jbHVkZSAiTXV0YXRpb25PYnNlcnZlci5oIgog
I2luY2x1ZGUgIlJlbmRlclN0eWxlQ29uc3RhbnRzLmgiCiAjaW5jbHVkZSAiU2NyaXB0V3JhcHBh
YmxlLmgiCkBAIC02Niw2ICs2NSw3IEBAIGNsYXNzIEZyYW1lOwogY2xhc3MgSFRNTElucHV0RWxl
bWVudDsKIGNsYXNzIEludFJlY3Q7CiBjbGFzcyBLZXlib2FyZEV2ZW50OworY2xhc3MgTWVtb3J5
T2JqZWN0SW5mbzsKIGNsYXNzIE5TUmVzb2x2ZXI7CiBjbGFzcyBOYW1lZE5vZGVNYXA7CiBjbGFz
cyBOYW1lTm9kZUxpc3Q7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5
bGUvUmVuZGVyU3R5bGUuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1JlbmRl
clN0eWxlLmNwcAppbmRleCA4ZTVhOTBlOGNmZGRiMTU0MDg3NjFiOTI3MmNhZTg4NjkxZThhNzk4
Li4wNzQ2NzdjOGIwYjhmYjc0Njg2YzUwZTg0MjE0MTUyODFiMTdiOGY2IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGUuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZS5jcHAKQEAgLTI4LDYgKzI4LDcg
QEAKICNpbmNsdWRlICJDU1NQcm9wZXJ0eU5hbWVzLmgiCiAjaW5jbHVkZSAiQ1NTV3JhcFNoYXBl
cy5oIgogI2luY2x1ZGUgIkZvbnRTZWxlY3Rvci5oIgorI2luY2x1ZGUgIk1lbW9yeUluc3RydW1l
bnRhdGlvbi5oIgogI2luY2x1ZGUgIlF1b3Rlc0RhdGEuaCIKICNpbmNsdWRlICJSZW5kZXJBcmVu
YS5oIgogI2luY2x1ZGUgIlJlbmRlck9iamVjdC5oIgpAQCAtMTQ4Niw0ICsxNDg3LDI0IEBAIExh
eW91dEJveEV4dGVudCBSZW5kZXJTdHlsZTo6aW1hZ2VPdXRzZXRzKGNvbnN0IE5pbmVQaWVjZUlt
YWdlJiBpbWFnZSkgY29uc3QKICAgICAgICAgICAgICAgICAgICAgICAgICAgIE5pbmVQaWVjZUlt
YWdlOjpjb21wdXRlT3V0c2V0KGltYWdlLm91dHNldCgpLmxlZnQoKSwgYm9yZGVyTGVmdFdpZHRo
KCkpKTsKIH0KIAordm9pZCBSZW5kZXJTdHlsZTo6cmVwb3J0TWVtb3J5VXNhZ2UoTWVtb3J5T2Jq
ZWN0SW5mbyogbWVtb3J5T2JqZWN0SW5mbykgY29uc3QKK3sKKyAgICBNZW1vcnlDbGFzc0luZm88
UmVuZGVyU3R5bGU+IGluZm8obWVtb3J5T2JqZWN0SW5mbywgdGhpcywgTWVtb3J5SW5zdHJ1bWVu
dGF0aW9uOjpDU1MpOworICAgIGluZm8uYWRkTWVtYmVyKG1fYm94KTsKKyAgICBpbmZvLmFkZE1l
bWJlcih2aXN1YWwpOworICAgIC8vIEZJWE1FOiBtX2JhY2tncm91bmQgY29udGFpbnMgUmVmUHRy
PFN0eWxlSW1hZ2U+IHRoYXQgbWlnaHQgbmVlZCB0byBiZSBpbnN0cnVtZW50ZWQuCisgICAgaW5m
by5hZGRNZW1iZXIobV9iYWNrZ3JvdW5kKTsKKyAgICAvLyBGSVhNRTogc3Vycm9uZCBjb250YWlu
cyBzb21lIGZpZWxkcyBlLmcuIEJvcmRlckRhdGEgdGhhdCBtaWdodCBuZWVkIHRvIGJlIGluc3Ry
dW1lbnRlZC4KKyAgICBpbmZvLmFkZE1lbWJlcihzdXJyb3VuZCk7CisgICAgaW5mby5hZGRJbnN0
cnVtZW50ZWRNZW1iZXIocmFyZU5vbkluaGVyaXRlZERhdGEpOworICAgIGluZm8uYWRkSW5zdHJ1
bWVudGVkTWVtYmVyKHJhcmVJbmhlcml0ZWREYXRhKTsKKyAgICAvLyBGSVhNRTogaW5oZXJpdGVk
IGNvbnRhaW5zIFN0eWxlSW1hZ2UgYW5kIEZvbnQgZmllbGRzIHRoYXQgbWlnaHQgbmVlZCB0byBi
ZSBpbnN0cnVtZW50ZWQuCisgICAgaW5mby5hZGRNZW1iZXIoaW5oZXJpdGVkKTsKKyAgICBpZiAo
bV9jYWNoZWRQc2V1ZG9TdHlsZXMpCisgICAgICAgIGluZm8uYWRkVmVjdG9yKCptX2NhY2hlZFBz
ZXVkb1N0eWxlcyk7CisjaWYgRU5BQkxFKFNWRykKKyAgICBpbmZvLmFkZE1lbWJlcihtX3N2Z1N0
eWxlKTsKKyNlbmRpZgorfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGUuaCBiL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZS5oCmluZGV4IGQ1NmQyZDNjMWMxZGZmOWJl
NmUzYzEzMzk2NDhmZWNjMzY3MDg2ZTYuLmUyMDQ4YWNmMGU5YjQ4YTRlNzhiNWI5MzcxNDYwM2Yx
ZjhlZGI4ZDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9SZW5k
ZXJTdHlsZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHls
ZS5oCkBAIC0xMDUsNiArMTA1LDcgQEAgY2xhc3MgQm9yZGVyRGF0YTsKIGNsYXNzIENvdW50ZXJD
b250ZW50OwogY2xhc3MgQ3Vyc29yTGlzdDsKIGNsYXNzIEludFJlY3Q7CitjbGFzcyBNZW1vcnlP
YmplY3RJbmZvOwogY2xhc3MgUGFpcjsKIGNsYXNzIFNoYWRvd0RhdGE7CiBjbGFzcyBTdHlsZUlt
YWdlOwpAQCAtMTU0MSw2ICsxNTQyLDggQEAgcHVibGljOgogCiAgICAgdm9pZCBzZXRIYXNFeHBs
aWNpdGx5SW5oZXJpdGVkUHJvcGVydGllcygpIHsgbV9iaXRmaWVsZHMuc2V0RXhwbGljaXRJbmhl
cml0YW5jZSh0cnVlKTsgfQogICAgIGJvb2wgaGFzRXhwbGljaXRseUluaGVyaXRlZFByb3BlcnRp
ZXMoKSBjb25zdCB7IHJldHVybiBtX2JpdGZpZWxkcy5leHBsaWNpdEluaGVyaXRhbmNlKCk7IH0K
KworICAgIHZvaWQgcmVwb3J0TWVtb3J5VXNhZ2UoTWVtb3J5T2JqZWN0SW5mbyopIGNvbnN0Owog
ICAgIAogICAgIC8vIEluaXRpYWwgdmFsdWVzIGZvciBhbGwgdGhlIHByb3BlcnRpZXMKICAgICBz
dGF0aWMgRUJvcmRlckNvbGxhcHNlIGluaXRpYWxCb3JkZXJDb2xsYXBzZSgpIHsgcmV0dXJuIEJT
RVBBUkFURTsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1N0
eWxlUmFyZUluaGVyaXRlZERhdGEuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxl
L1N0eWxlUmFyZUluaGVyaXRlZERhdGEuY3BwCmluZGV4IDk3ZGU0MmQzYzM1YTlhZDlhY2E0YjUy
ZjJlZTRlMjA2OGVkZWQyOGQuLmY2ODk3ODE4OWUzM2MwMDBkNGEzMDE0M2IwMzZmMzg5NWI1NWI5
YjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9TdHlsZVJhcmVJ
bmhlcml0ZWREYXRhLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvU3R5
bGVSYXJlSW5oZXJpdGVkRGF0YS5jcHAKQEAgLTIzLDYgKzIzLDcgQEAKICNpbmNsdWRlICJTdHls
ZVJhcmVJbmhlcml0ZWREYXRhLmgiCiAKICNpbmNsdWRlICJDdXJzb3JMaXN0LmgiCisjaW5jbHVk
ZSAiTWVtb3J5SW5zdHJ1bWVudGF0aW9uLmgiCiAjaW5jbHVkZSAiUXVvdGVzRGF0YS5oIgogI2lu
Y2x1ZGUgIlJlbmRlclN0eWxlLmgiCiAjaW5jbHVkZSAiUmVuZGVyU3R5bGVDb25zdGFudHMuaCIK
QEAgLTI2MSw0ICsyNjIsMjAgQEAgYm9vbCBTdHlsZVJhcmVJbmhlcml0ZWREYXRhOjpzaGFkb3dE
YXRhRXF1aXZhbGVudChjb25zdCBTdHlsZVJhcmVJbmhlcml0ZWREYXRhJgogICAgIHJldHVybiB0
cnVlOwogfQogCit2b2lkIFN0eWxlUmFyZUluaGVyaXRlZERhdGE6OnJlcG9ydE1lbW9yeVVzYWdl
KE1lbW9yeU9iamVjdEluZm8qIG1lbW9yeU9iamVjdEluZm8pIGNvbnN0Cit7CisgICAgTWVtb3J5
Q2xhc3NJbmZvPFN0eWxlUmFyZUluaGVyaXRlZERhdGE+IGluZm8obWVtb3J5T2JqZWN0SW5mbywg
dGhpcywgTWVtb3J5SW5zdHJ1bWVudGF0aW9uOjpDU1MpOworICAgIGluZm8uYWRkTWVtYmVyKHRl
eHRTaGFkb3cpOworICAgIGluZm8uYWRkU3RyaW5nKGhpZ2hsaWdodCk7CisgICAgaW5mby5hZGRN
ZW1iZXIoY3Vyc29yRGF0YSk7CisgICAgaW5mby5hZGRTdHJpbmcoaHlwaGVuYXRpb25TdHJpbmcp
OworICAgIGluZm8uYWRkU3RyaW5nKGxvY2FsZSk7CisgICAgaW5mby5hZGRTdHJpbmcodGV4dEVt
cGhhc2lzQ3VzdG9tTWFyayk7CisgICAgaW5mby5hZGRNZW1iZXIocXVvdGVzKTsKKyAgICBpbmZv
LmFkZFN0cmluZyhtX2xpbmVHcmlkKTsKKyNpZiBFTkFCTEUoQ1NTX1ZBUklBQkxFUykKKyAgICBp
bmZvLmFkZE1lbWJlcihtX3ZhcmlhYmxlcyk7CisjZW5kaWYKK30KKwogfSAvLyBuYW1lc3BhY2Ug
V2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1N0eWxl
UmFyZUluaGVyaXRlZERhdGEuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9TdHls
ZVJhcmVJbmhlcml0ZWREYXRhLmgKaW5kZXggYjMwOTgyZGY5N2IxY2UyNjJlZDcyZGRlNzAxN2Zl
OGY4ZTVlNWFjMC4uYmI0MzNlZDI3NmNhZGI1Mjg0ODVhMzNkZjQ0M2IxZmFiNWRkNWJhOCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1N0eWxlUmFyZUluaGVyaXRl
ZERhdGEuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvU3R5bGVSYXJlSW5o
ZXJpdGVkRGF0YS5oCkBAIC0zOSw2ICszOSw3IEBACiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNs
YXNzIEN1cnNvckxpc3Q7CitjbGFzcyBNZW1vcnlPYmplY3RJbmZvOwogY2xhc3MgUXVvdGVzRGF0
YTsKIGNsYXNzIFNoYWRvd0RhdGE7CiAKQEAgLTU4LDYgKzU5LDggQEAgcHVibGljOgogICAgIH0K
ICAgICBib29sIHNoYWRvd0RhdGFFcXVpdmFsZW50KGNvbnN0IFN0eWxlUmFyZUluaGVyaXRlZERh
dGEmKSBjb25zdDsKIAorICAgIHZvaWQgcmVwb3J0TWVtb3J5VXNhZ2UoTWVtb3J5T2JqZWN0SW5m
byopIGNvbnN0OworCiAgICAgQ29sb3IgdGV4dFN0cm9rZUNvbG9yOwogICAgIGZsb2F0IHRleHRT
dHJva2VXaWR0aDsKICAgICBDb2xvciB0ZXh0RmlsbENvbG9yOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1N0eWxlUmFyZU5vbkluaGVyaXRlZERhdGEuY3BwIGIv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1N0eWxlUmFyZU5vbkluaGVyaXRlZERhdGEu
Y3BwCmluZGV4IDIyYjMyNzJlOGMzN2QyMWVlMzY0OWMwYTQ1YTdkNDNkNTEyMTA0NGQuLjIxZDdl
Y2I1NzM1MGQxNzYwMDQ2MmMyZGNlMDgzOGI4MzI0OWEzYjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9TdHlsZVJhcmVOb25Jbmhlcml0ZWREYXRhLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvU3R5bGVSYXJlTm9uSW5oZXJpdGVkRGF0
YS5jcHAKQEAgLTIzLDYgKzIzLDcgQEAKICNpbmNsdWRlICJTdHlsZVJhcmVOb25Jbmhlcml0ZWRE
YXRhLmgiCiAKICNpbmNsdWRlICJDb250ZW50RGF0YS5oIgorI2luY2x1ZGUgIk1lbW9yeUluc3Ry
dW1lbnRhdGlvbi5oIgogI2luY2x1ZGUgIlJlbmRlckNvdW50ZXIuaCIKICNpbmNsdWRlICJSZW5k
ZXJTdHlsZS5oIgogI2luY2x1ZGUgIlNoYWRvd0RhdGEuaCIKQEAgLTI4Niw0ICsyODcsMzIgQEAg
Ym9vbCBTdHlsZVJhcmVOb25Jbmhlcml0ZWREYXRhOjp0cmFuc2l0aW9uRGF0YUVxdWl2YWxlbnQo
Y29uc3QgU3R5bGVSYXJlTm9uSW5oZXIKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAordm9pZCBTdHls
ZVJhcmVOb25Jbmhlcml0ZWREYXRhOjpyZXBvcnRNZW1vcnlVc2FnZShNZW1vcnlPYmplY3RJbmZv
KiBtZW1vcnlPYmplY3RJbmZvKSBjb25zdAoreworICAgIE1lbW9yeUNsYXNzSW5mbzxTdHlsZVJh
cmVOb25Jbmhlcml0ZWREYXRhPiBpbmZvKG1lbW9yeU9iamVjdEluZm8sIHRoaXMsIE1lbW9yeUlu
c3RydW1lbnRhdGlvbjo6Q1NTKTsKKyNpZiBFTkFCTEUoREFTSEJPQVJEX1NVUFBPUlQpCisgICAg
aW5mby5hZGRWZWN0b3IobV9kYXNoYm9hcmRSZWdpb25zKTsKKyNlbmRpZgorICAgIGluZm8uYWRk
TWVtYmVyKG1fZGVwcmVjYXRlZEZsZXhpYmxlQm94KTsKKyAgICBpbmZvLmFkZE1lbWJlcihtX2Zs
ZXhpYmxlQm94KTsKKyAgICBpbmZvLmFkZE1lbWJlcihtX21hcnF1ZWUpOworICAgIGluZm8uYWRk
TWVtYmVyKG1fbXVsdGlDb2wpOworICAgIGluZm8uYWRkTWVtYmVyKG1fdHJhbnNmb3JtKTsKKyNp
ZiBFTkFCTEUoQ1NTX0ZJTFRFUlMpCisgICAgaW5mby5hZGRNZW1iZXIobV9maWx0ZXIpOworI2Vu
ZGlmCisgICAgaW5mby5hZGRNZW1iZXIobV9ncmlkKTsKKyAgICBpbmZvLmFkZE1lbWJlcihtX2dy
aWRJdGVtKTsKKyAgICBpbmZvLmFkZE1lbWJlcihtX2NvbnRlbnQpOworICAgIGluZm8uYWRkTWVt
YmVyKG1fY291bnRlckRpcmVjdGl2ZXMpOworICAgIGluZm8uYWRkTWVtYmVyKG1fYm94U2hhZG93
KTsKKyAgICBpbmZvLmFkZE1lbWJlcihtX2JveFJlZmxlY3QpOworICAgIGluZm8uYWRkTWVtYmVy
KG1fYW5pbWF0aW9ucyk7CisgICAgaW5mby5hZGRNZW1iZXIobV90cmFuc2l0aW9ucyk7CisgICAg
aW5mby5hZGRNZW1iZXIobV93cmFwU2hhcGVJbnNpZGUpOworICAgIGluZm8uYWRkTWVtYmVyKG1f
d3JhcFNoYXBlT3V0c2lkZSk7CisgICAgaW5mby5hZGRTdHJpbmcobV9mbG93VGhyZWFkKTsKKyAg
ICBpbmZvLmFkZFN0cmluZyhtX3JlZ2lvblRocmVhZCk7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdl
YkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9TdHlsZVJh
cmVOb25Jbmhlcml0ZWREYXRhLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvU3R5
bGVSYXJlTm9uSW5oZXJpdGVkRGF0YS5oCmluZGV4IDVlNmZkZTJhNjE3Y2YzOTUyNWU1NTdiZDkw
OTg2NjIyMTRlOGNiZWUuLjBmZTZlNThjNjMzYmNjYTliYzJiNGU3N2ZkM2IyMDYwZTNkNzZkNGUg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9TdHlsZVJhcmVOb25J
bmhlcml0ZWREYXRhLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1N0eWxl
UmFyZU5vbkluaGVyaXRlZERhdGEuaApAQCAtMzksNiArMzksNyBAQAogbmFtZXNwYWNlIFdlYkNv
cmUgewogCiBjbGFzcyBBbmltYXRpb25MaXN0OworY2xhc3MgTWVtb3J5T2JqZWN0SW5mbzsKIGNs
YXNzIFNoYWRvd0RhdGE7CiBjbGFzcyBTdHlsZURlcHJlY2F0ZWRGbGV4aWJsZUJveERhdGE7CiAj
aWYgRU5BQkxFKENTU19GSUxURVJTKQpAQCAtODksNiArOTAsOCBAQCBwdWJsaWM6CiAgICAgYm9v
bCBhbmltYXRpb25EYXRhRXF1aXZhbGVudChjb25zdCBTdHlsZVJhcmVOb25Jbmhlcml0ZWREYXRh
JikgY29uc3Q7CiAgICAgYm9vbCB0cmFuc2l0aW9uRGF0YUVxdWl2YWxlbnQoY29uc3QgU3R5bGVS
YXJlTm9uSW5oZXJpdGVkRGF0YSYpIGNvbnN0OwogCisgICAgdm9pZCByZXBvcnRNZW1vcnlVc2Fn
ZShNZW1vcnlPYmplY3RJbmZvKikgY29uc3Q7CisKICAgICBmbG9hdCBvcGFjaXR5OyAvLyBXaGV0
aGVyIG9yIG5vdCB3ZSdyZSB0cmFuc3BhcmVudC4KIAogICAgIGZsb2F0IG1fYXNwZWN0UmF0aW9E
ZW5vbWluYXRvcjsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>155523</attachid>
            <date>2012-07-31 06:59:53 -0700</date>
            <delta_ts>2012-08-01 06:46:31 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-91759-20120731175935.patch</filename>
            <type>text/plain</type>
            <size>18548</size>
            <attacher name="Alexei Filippov">alph</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTI0MTk4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMTJiNjNjZDc1MWExY2Zl
MWUzMDYwNWFjNmEwZjZlN2FmNjQ1MDU3Mi4uMjQxOGI2MTM5NzM4NjE2MDdlNzJkYjI0MzU5MzRj
ZDU2NDk1ZmM5YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDUyIEBACisyMDEyLTA3LTMxICBBbGV4
ZWkgRmlsaXBwb3YgIDxhbGV4ZWlmQGNocm9taXVtLm9yZz4KKworICAgICAgICBXZWIgSW5zcGVj
dG9yOiBjb3VudCBSZW5kZXJTdHlsZSBvYmplY3RzIGluIHRoZSBuYXRpdmUgbWVtb3J5IHByb2Zp
bGVyCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05MTc1
OQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoZSBw
YXRjaCBhZGRzIGluc3RydW1lbnRhdGlvbiB0byB0aGUgZm9sbG93aW5nIGNsYXNzZXM6CisgICAg
ICAgICAgLSBSZW5kZXJTdHlsZQorICAgICAgICAgIC0gU3R5bGVSYXJlSW5oZXJpdGVkRGF0YQor
ICAgICAgICAgIC0gU3R5bGVSYXJlTm9uSW5oZXJpdGVkRGF0YQorCisgICAgICAgIEJlc2lkZXMg
dGhhdCBpdCBhZGRzIHN1cHBvcnQgZm9yIFZlY3RvciogcHJvY2Vzc2luZyBpbiBNZW1vcnlJbnN0
cnVtZW50YXRpb24KKyAgICAgICAgYW5kIGZpeGVzIHdyb25nIG93bmluZyB0eXBlIHBhc3NlZCBm
b3IgT3duUHRyIGFuZCBSZWZQdHIgd3JhcHBlZCBtZW1iZXJzLgorCisgICAgICAgICogYmluZGlu
Z3MvanMvU2NyaXB0V3JhcHBhYmxlLmg6CisgICAgICAgICogYmluZGluZ3MvdjgvU2NyaXB0V3Jh
cHBhYmxlLmg6CisgICAgICAgICogZG9tL01lbW9yeUluc3RydW1lbnRhdGlvbi5oOgorICAgICAg
ICAoV2ViQ29yZSk6CisgICAgICAgIChXZWJDb3JlOjpNZW1vcnlJbnN0cnVtZW50YXRpb246OmFk
ZFZlY3Rvcik6CisgICAgICAgIChXZWJDb3JlOjpNZW1vcnlJbnN0cnVtZW50YXRpb246Ok93bmlu
Z1RyYWl0czo6YWRkT2JqZWN0KToKKyAgICAgICAgKFdlYkNvcmU6Ok1lbW9yeUluc3RydW1lbnRh
dGlvbjo6T3duaW5nVHJhaXRzOjphZGRWZWN0b3IpOgorICAgICAgICAoV2ViQ29yZTo6TWVtb3J5
SW5zdHJ1bWVudGF0aW9uOjphZGRPYmplY3RJbXBsKToKKyAgICAgICAgKE1lbW9yeUluc3RydW1l
bnRhdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpNZW1vcnlDbGFzc0luZm86OmFkZFZlY3Rvcik6
CisgICAgICAgIChXZWJDb3JlOjpNZW1vcnlJbnN0cnVtZW50YXRpb246OmFkZEluc3RydW1lbnRl
ZE9iamVjdEltcGwpOgorICAgICAgICAoV2ViQ29yZTo6TWVtb3J5SW5zdHJ1bWVudGF0aW9uOjph
ZGRWZWN0b3JJbXBsKToKKyAgICAgICAgKiBkb20vTm9kZS5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpOb2RlOjpyZXBvcnRNZW1vcnlVc2FnZSk6CisgICAgICAgICogZG9tL05vZGUuaDoKKyAgICAg
ICAgKFdlYkNvcmUpOgorICAgICAgICAqIHJlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZS5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJTdHlsZTo6cmVwb3J0TWVtb3J5VXNhZ2UpOgorICAg
ICAgICAoV2ViQ29yZSk6CisgICAgICAgICogcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlLmg6
CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKiByZW5kZXJpbmcvc3R5bGUvU3R5bGVSYXJl
SW5oZXJpdGVkRGF0YS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTdHlsZVJhcmVJbmhlcml0ZWRE
YXRhOjpyZXBvcnRNZW1vcnlVc2FnZSk6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKiBy
ZW5kZXJpbmcvc3R5bGUvU3R5bGVSYXJlSW5oZXJpdGVkRGF0YS5oOgorICAgICAgICAoV2ViQ29y
ZSk6CisgICAgICAgIChTdHlsZVJhcmVJbmhlcml0ZWREYXRhKToKKyAgICAgICAgKiByZW5kZXJp
bmcvc3R5bGUvU3R5bGVSYXJlTm9uSW5oZXJpdGVkRGF0YS5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpTdHlsZVJhcmVOb25Jbmhlcml0ZWREYXRhOjpyZXBvcnRNZW1vcnlVc2FnZSk6CisgICAgICAg
IChXZWJDb3JlKToKKyAgICAgICAgKiByZW5kZXJpbmcvc3R5bGUvU3R5bGVSYXJlTm9uSW5oZXJp
dGVkRGF0YS5oOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChTdHlsZVJhcmVOb25Jbmhl
cml0ZWREYXRhKToKKwogMjAxMi0wNy0zMSAgS2Vpc2hpIEhhdHRvcmkgIDxrZWlzaGlAd2Via2l0
Lm9yZz4KIAogICAgICAgICBTbGlkZXIgdGlja3MgYXJlIGRyYXduIGF0IHdyb25nIHBvc2l0aW9u
cwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvU2NyaXB0V3JhcHBhYmxl
LmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9TY3JpcHRXcmFwcGFibGUuaAppbmRleCAz
Y2I1ZDgxNmMxMTFiODA3ZmEwNjk3YTY3Y2Q5ZjlhOTY0MmQwNWU3Li4wY2YyZDdhMTZjNGVlMDhk
YzQ1MzA0OTJlMTI0MzE0MGU4ZjliNTkxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9qcy9TY3JpcHRXcmFwcGFibGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9q
cy9TY3JpcHRXcmFwcGFibGUuaApAQCAtMzIsNiArMzIsNyBAQAogI2RlZmluZSBTY3JpcHRXcmFw
cGFibGVfaAogCiAjaW5jbHVkZSAiSlNET01XcmFwcGVyLmgiCisjaW5jbHVkZSAiTWVtb3J5SW5z
dHJ1bWVudGF0aW9uLmgiCiAjaW5jbHVkZSA8aGVhcC9XZWFrLmg+CiAKIG5hbWVzcGFjZSBXZWJD
b3JlIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1NjcmlwdFdyYXBw
YWJsZS5oIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvU2NyaXB0V3JhcHBhYmxlLmgKaW5k
ZXggZWYyZjc2MTlmMjQ1MTEwNjU3YzdhZTBhNWJhMDJlZGMwNGQ2ZmY2OS4uNjRhOTA1MzkyOGE2
MGUxNTA4MjE2NDc2MDQyODU2YjJhN2MzZDAzMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
YmluZGluZ3MvdjgvU2NyaXB0V3JhcHBhYmxlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3MvdjgvU2NyaXB0V3JhcHBhYmxlLmgKQEAgLTMxLDYgKzMxLDcgQEAKICNpZm5kZWYgU2NyaXB0
V3JhcHBhYmxlX2gKICNkZWZpbmUgU2NyaXB0V3JhcHBhYmxlX2gKIAorI2luY2x1ZGUgIk1lbW9y
eUluc3RydW1lbnRhdGlvbi5oIgogI2luY2x1ZGUgPHY4Lmg+CiAKIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9NZW1vcnlJbnN0cnVtZW50YXRpb24u
aCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9NZW1vcnlJbnN0cnVtZW50YXRpb24uaAppbmRleCBjY2Rh
ZjE4ZDcyM2M5YmE0NGRjNDc3ODc4ZGIzYjUyNTY4YWFiZjJlLi5lNmMxNWNjMTcxNWI5MzU4YzIz
N2FlN2MwYzA0OTEwOTI4ZGMyYzExIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vTWVt
b3J5SW5zdHJ1bWVudGF0aW9uLmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL01lbW9yeUluc3Ry
dW1lbnRhdGlvbi5oCkBAIC0zOSw2ICszOSw3IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAor
dGVtcGxhdGUgPHR5cGVuYW1lIFQ+IGNsYXNzIERhdGFSZWY7CiBjbGFzcyBNZW1vcnlPYmplY3RJ
bmZvOwogCiBjbGFzcyBNZW1vcnlJbnN0cnVtZW50YXRpb24gewpAQCAtOTIsNyArOTMsMTAgQEAg
cHJpdmF0ZToKICAgICB0ZW1wbGF0ZSA8dHlwZW5hbWUgSGFzaFNldFR5cGU+IHZvaWQgYWRkSGFz
aFNldChjb25zdCBIYXNoU2V0VHlwZSYsIE9iamVjdFR5cGUsIGJvb2wgY29udGVudE9ubHkgPSBm
YWxzZSk7CiAgICAgdGVtcGxhdGUgPHR5cGVuYW1lIENvbGxlY3Rpb25UeXBlPiB2b2lkIGFkZElu
c3RydW1lbnRlZENvbGxlY3Rpb24oY29uc3QgQ29sbGVjdGlvblR5cGUmLCBPYmplY3RUeXBlLCBi
b29sIGNvbnRlbnRPbmx5ID0gZmFsc2UpOwogICAgIHRlbXBsYXRlIDx0eXBlbmFtZSBMaXN0SGFz
aFNldFR5cGU+IHZvaWQgYWRkTGlzdEhhc2hTZXQoY29uc3QgTGlzdEhhc2hTZXRUeXBlJiwgT2Jq
ZWN0VHlwZSwgYm9vbCBjb250ZW50T25seSA9IGZhbHNlKTsKLSAgICB0ZW1wbGF0ZSA8dHlwZW5h
bWUgVmVjdG9yVHlwZT4gdm9pZCBhZGRWZWN0b3IoY29uc3QgVmVjdG9yVHlwZSYsIE9iamVjdFR5
cGUsIGJvb2wgY29udGVudE9ubHkgPSBmYWxzZSk7CisgICAgdGVtcGxhdGUgPHR5cGVuYW1lIFZl
Y3RvclR5cGU+IHZvaWQgYWRkVmVjdG9yKGNvbnN0IFZlY3RvclR5cGUmIHQsIE9iamVjdFR5cGUg
b2JqZWN0VHlwZSkKKyAgICB7CisgICAgICAgIE93bmluZ1RyYWl0czxWZWN0b3JUeXBlPjo6YWRk
VmVjdG9yKHRoaXMsIHQsIG9iamVjdFR5cGUpOworICAgIH0KICAgICB2b2lkIGFkZFJhd0J1ZmZl
cihjb25zdCB2b2lkKiBjb25zdCYgYnVmZmVyLCBPYmplY3RUeXBlIG9iamVjdFR5cGUsIHNpemVf
dCBzaXplKQogICAgIHsKICAgICAgICAgaWYgKCFidWZmZXIgfHwgdmlzaXRlZChidWZmZXIpKQpA
QCAtMTA4LDIwICsxMTIsMjggQEAgcHJpdmF0ZToKICAgICB0ZW1wbGF0ZSA8dHlwZW5hbWUgVD4K
ICAgICBzdHJ1Y3QgT3duaW5nVHJhaXRzIHsgLy8gRGVmYXVsdCBieVJlZmVyZW5jZSBpbXBsZW1l
bnRhdGlvbi4KICAgICAgICAgc3RhdGljIHZvaWQgYWRkSW5zdHJ1bWVudGVkT2JqZWN0KE1lbW9y
eUluc3RydW1lbnRhdGlvbiogaW5zdHJ1bWVudGF0aW9uLCBjb25zdCBUJiB0KSB7IGluc3RydW1l
bnRhdGlvbi0+YWRkSW5zdHJ1bWVudGVkT2JqZWN0SW1wbCgmdCwgYnlSZWZlcmVuY2UpOyB9Ci0g
ICAgICAgIHN0YXRpYyB2b2lkIGFkZE9iamVjdChNZW1vcnlJbnN0cnVtZW50YXRpb24qIGluc3Ry
dW1lbnRhdGlvbiwgY29uc3QgVCYgdCwgTWVtb3J5SW5zdHJ1bWVudGF0aW9uOjpPYmplY3RUeXBl
IG9iamVjdFR5cGUpIHsgaW5zdHJ1bWVudGF0aW9uLT5hZGRPYmplY3RJbXBsKCZ0LCBvYmplY3RU
eXBlLCBieVJlZmVyZW5jZSk7IH0KKyAgICAgICAgc3RhdGljIHZvaWQgYWRkT2JqZWN0KE1lbW9y
eUluc3RydW1lbnRhdGlvbiogaW5zdHJ1bWVudGF0aW9uLCBjb25zdCBUJiB0LCBPYmplY3RUeXBl
IG9iamVjdFR5cGUpIHsgaW5zdHJ1bWVudGF0aW9uLT5hZGRPYmplY3RJbXBsKCZ0LCBvYmplY3RU
eXBlLCBieVJlZmVyZW5jZSk7IH0KKyAgICAgICAgc3RhdGljIHZvaWQgYWRkVmVjdG9yKE1lbW9y
eUluc3RydW1lbnRhdGlvbiogaW5zdHJ1bWVudGF0aW9uLCBjb25zdCBUJiB0LCBPYmplY3RUeXBl
IG9iamVjdFR5cGUpIHsgaW5zdHJ1bWVudGF0aW9uLT5hZGRWZWN0b3JJbXBsKCZ0LCBvYmplY3RU
eXBlLCBieVJlZmVyZW5jZSk7IH0KICAgICB9OwogCiAgICAgdGVtcGxhdGUgPHR5cGVuYW1lIFQ+
CiAgICAgc3RydWN0IE93bmluZ1RyYWl0czxUKj4geyAvLyBDdXN0b20gYnlQb2ludGVyIGltcGxl
bWVudGF0aW9uLgogICAgICAgICBzdGF0aWMgdm9pZCBhZGRJbnN0cnVtZW50ZWRPYmplY3QoTWVt
b3J5SW5zdHJ1bWVudGF0aW9uKiBpbnN0cnVtZW50YXRpb24sIGNvbnN0IFQqIGNvbnN0JiB0KSB7
IGluc3RydW1lbnRhdGlvbi0+YWRkSW5zdHJ1bWVudGVkT2JqZWN0SW1wbCh0LCBieVBvaW50ZXIp
OyB9Ci0gICAgICAgIHN0YXRpYyB2b2lkIGFkZE9iamVjdChNZW1vcnlJbnN0cnVtZW50YXRpb24q
IGluc3RydW1lbnRhdGlvbiwgY29uc3QgVCogY29uc3QmIHQsIE1lbW9yeUluc3RydW1lbnRhdGlv
bjo6T2JqZWN0VHlwZSBvYmplY3RUeXBlKSB7IGluc3RydW1lbnRhdGlvbi0+YWRkT2JqZWN0SW1w
bCh0LCBvYmplY3RUeXBlLCBieVBvaW50ZXIpOyB9CisgICAgICAgIHN0YXRpYyB2b2lkIGFkZE9i
amVjdChNZW1vcnlJbnN0cnVtZW50YXRpb24qIGluc3RydW1lbnRhdGlvbiwgY29uc3QgVCogY29u
c3QmIHQsIE9iamVjdFR5cGUgb2JqZWN0VHlwZSkgeyBpbnN0cnVtZW50YXRpb24tPmFkZE9iamVj
dEltcGwodCwgb2JqZWN0VHlwZSwgYnlQb2ludGVyKTsgfQorICAgICAgICBzdGF0aWMgdm9pZCBh
ZGRWZWN0b3IoTWVtb3J5SW5zdHJ1bWVudGF0aW9uKiBpbnN0cnVtZW50YXRpb24sIGNvbnN0IFQq
IGNvbnN0JiB0LCBPYmplY3RUeXBlIG9iamVjdFR5cGUpIHsgaW5zdHJ1bWVudGF0aW9uLT5hZGRW
ZWN0b3JJbXBsKHQsIG9iamVjdFR5cGUsIGJ5UG9pbnRlcik7IH0KICAgICB9OwogCiAgICAgdGVt
cGxhdGUgPHR5cGVuYW1lIFQ+IHZvaWQgYWRkSW5zdHJ1bWVudGVkT2JqZWN0SW1wbChjb25zdCBU
KiBjb25zdCYsIE93bmluZ1R5cGUpOworICAgIHRlbXBsYXRlIDx0eXBlbmFtZSBUPiB2b2lkIGFk
ZEluc3RydW1lbnRlZE9iamVjdEltcGwoY29uc3QgRGF0YVJlZjxUPiogY29uc3QmLCBPd25pbmdU
eXBlKTsKICAgICB0ZW1wbGF0ZSA8dHlwZW5hbWUgVD4gdm9pZCBhZGRJbnN0cnVtZW50ZWRPYmpl
Y3RJbXBsKGNvbnN0IE93blB0cjxUPiogY29uc3QmLCBPd25pbmdUeXBlKTsKICAgICB0ZW1wbGF0
ZSA8dHlwZW5hbWUgVD4gdm9pZCBhZGRJbnN0cnVtZW50ZWRPYmplY3RJbXBsKGNvbnN0IFJlZlB0
cjxUPiogY29uc3QmLCBPd25pbmdUeXBlKTsKIAogICAgIHRlbXBsYXRlIDx0eXBlbmFtZSBUPiB2
b2lkIGFkZE9iamVjdEltcGwoY29uc3QgVCogY29uc3QmLCBPYmplY3RUeXBlLCBPd25pbmdUeXBl
KTsKKyAgICB0ZW1wbGF0ZSA8dHlwZW5hbWUgVD4gdm9pZCBhZGRPYmplY3RJbXBsKGNvbnN0IERh
dGFSZWY8VD4qIGNvbnN0JiBvYmplY3QsIE9iamVjdFR5cGUgb2JqZWN0VHlwZSwgT3duaW5nVHlw
ZSkgeyBhZGRPYmplY3RJbXBsKG9iamVjdC0+Z2V0KCksIG9iamVjdFR5cGUsIGJ5UG9pbnRlcik7
IH0KKyAgICB0ZW1wbGF0ZSA8dHlwZW5hbWUgVD4gdm9pZCBhZGRPYmplY3RJbXBsKGNvbnN0IE93
blB0cjxUPiogY29uc3QmIG9iamVjdCwgT2JqZWN0VHlwZSBvYmplY3RUeXBlLCBPd25pbmdUeXBl
KSB7IGFkZE9iamVjdEltcGwob2JqZWN0LT5nZXQoKSwgb2JqZWN0VHlwZSwgYnlQb2ludGVyKTsg
fQorICAgIHRlbXBsYXRlIDx0eXBlbmFtZSBUPiB2b2lkIGFkZE9iamVjdEltcGwoY29uc3QgUmVm
UHRyPFQ+KiBjb25zdCYgb2JqZWN0LCBPYmplY3RUeXBlIG9iamVjdFR5cGUsIE93bmluZ1R5cGUp
IHsgYWRkT2JqZWN0SW1wbChvYmplY3QtPmdldCgpLCBvYmplY3RUeXBlLCBieVBvaW50ZXIpOyB9
CisKKyAgICB0ZW1wbGF0ZSA8dHlwZW5hbWUgVD4gdm9pZCBhZGRWZWN0b3JJbXBsKGNvbnN0IFQq
LCBPYmplY3RUeXBlLCBPd25pbmdUeXBlKTsKIH07CiAKIGNsYXNzIE1lbW9yeU9iamVjdEluZm8g
ewpAQCAtMTc0LDcgKzE4Niw3IEBAIHB1YmxpYzoKICAgICB0ZW1wbGF0ZSA8dHlwZW5hbWUgSGFz
aFNldFR5cGU+IHZvaWQgYWRkSW5zdHJ1bWVudGVkSGFzaFNldChjb25zdCBIYXNoU2V0VHlwZSYg
c2V0KSB7IG1fbWVtb3J5SW5zdHJ1bWVudGF0aW9uLT5hZGRJbnN0cnVtZW50ZWRDb2xsZWN0aW9u
KHNldCwgbV9vYmplY3RUeXBlLCB0cnVlKTsgfQogICAgIHRlbXBsYXRlIDx0eXBlbmFtZSBWZWN0
b3JUeXBlPiB2b2lkIGFkZEluc3RydW1lbnRlZFZlY3Rvcihjb25zdCBWZWN0b3JUeXBlJiB2ZWN0
b3IpIHsgbV9tZW1vcnlJbnN0cnVtZW50YXRpb24tPmFkZEluc3RydW1lbnRlZENvbGxlY3Rpb24o
dmVjdG9yLCBtX29iamVjdFR5cGUsIHRydWUpOyB9CiAgICAgdGVtcGxhdGUgPHR5cGVuYW1lIExp
c3RIYXNoU2V0VHlwZT4gdm9pZCBhZGRMaXN0SGFzaFNldChjb25zdCBMaXN0SGFzaFNldFR5cGUm
IHNldCkgeyBtX21lbW9yeUluc3RydW1lbnRhdGlvbi0+YWRkTGlzdEhhc2hTZXQoc2V0LCBtX29i
amVjdFR5cGUsIHRydWUpOyB9Ci0gICAgdGVtcGxhdGUgPHR5cGVuYW1lIFZlY3RvclR5cGU+IHZv
aWQgYWRkVmVjdG9yKGNvbnN0IFZlY3RvclR5cGUmIHZlY3RvcikgeyBtX21lbW9yeUluc3RydW1l
bnRhdGlvbi0+YWRkVmVjdG9yKHZlY3RvciwgbV9vYmplY3RUeXBlLCB0cnVlKTsgfQorICAgIHRl
bXBsYXRlIDx0eXBlbmFtZSBWZWN0b3JUeXBlPiB2b2lkIGFkZFZlY3Rvcihjb25zdCBWZWN0b3JU
eXBlJiB2ZWN0b3IpIHsgbV9tZW1vcnlJbnN0cnVtZW50YXRpb24tPmFkZFZlY3Rvcih2ZWN0b3Is
IG1fb2JqZWN0VHlwZSk7IH0KICAgICB2b2lkIGFkZFJhd0J1ZmZlcihjb25zdCB2b2lkKiBjb25z
dCYgYnVmZmVyLCBzaXplX3Qgc2l6ZSkgeyBtX21lbW9yeUluc3RydW1lbnRhdGlvbi0+YWRkUmF3
QnVmZmVyKGJ1ZmZlciwgbV9vYmplY3RUeXBlLCBzaXplKTsgfQogCiAgICAgdm9pZCBhZGRTdHJp
bmcoY29uc3QgU3RyaW5nJiBzdHJpbmcpIHsgbV9tZW1vcnlJbnN0cnVtZW50YXRpb24tPmFkZFN0
cmluZyhzdHJpbmcsIG1fb2JqZWN0VHlwZSk7IH0KQEAgLTE5OSwxNSArMjExLDIxIEBAIHZvaWQg
TWVtb3J5SW5zdHJ1bWVudGF0aW9uOjphZGRJbnN0cnVtZW50ZWRPYmplY3RJbXBsKGNvbnN0IFQq
IGNvbnN0JiBvYmplY3QsIE93CiB9CiAKIHRlbXBsYXRlIDx0eXBlbmFtZSBUPgotdm9pZCBNZW1v
cnlJbnN0cnVtZW50YXRpb246OmFkZEluc3RydW1lbnRlZE9iamVjdEltcGwoY29uc3QgT3duUHRy
PFQ+KiBjb25zdCYgb2JqZWN0LCBPd25pbmdUeXBlIG93bmluZ1R5cGUpCit2b2lkIE1lbW9yeUlu
c3RydW1lbnRhdGlvbjo6YWRkSW5zdHJ1bWVudGVkT2JqZWN0SW1wbChjb25zdCBEYXRhUmVmPFQ+
KiBjb25zdCYgb2JqZWN0LCBPd25pbmdUeXBlKQoreworICAgIGFkZEluc3RydW1lbnRlZE9iamVj
dEltcGwob2JqZWN0LT5nZXQoKSwgYnlQb2ludGVyKTsKK30KKwordGVtcGxhdGUgPHR5cGVuYW1l
IFQ+Cit2b2lkIE1lbW9yeUluc3RydW1lbnRhdGlvbjo6YWRkSW5zdHJ1bWVudGVkT2JqZWN0SW1w
bChjb25zdCBPd25QdHI8VD4qIGNvbnN0JiBvYmplY3QsIE93bmluZ1R5cGUpCiB7Ci0gICAgYWRk
SW5zdHJ1bWVudGVkT2JqZWN0SW1wbChvYmplY3QtPmdldCgpLCBvd25pbmdUeXBlKTsKKyAgICBh
ZGRJbnN0cnVtZW50ZWRPYmplY3RJbXBsKG9iamVjdC0+Z2V0KCksIGJ5UG9pbnRlcik7CiB9CiAK
IHRlbXBsYXRlIDx0eXBlbmFtZSBUPgotdm9pZCBNZW1vcnlJbnN0cnVtZW50YXRpb246OmFkZElu
c3RydW1lbnRlZE9iamVjdEltcGwoY29uc3QgUmVmUHRyPFQ+KiBjb25zdCYgb2JqZWN0LCBPd25p
bmdUeXBlIG93bmluZ1R5cGUpCit2b2lkIE1lbW9yeUluc3RydW1lbnRhdGlvbjo6YWRkSW5zdHJ1
bWVudGVkT2JqZWN0SW1wbChjb25zdCBSZWZQdHI8VD4qIGNvbnN0JiBvYmplY3QsIE93bmluZ1R5
cGUpCiB7Ci0gICAgYWRkSW5zdHJ1bWVudGVkT2JqZWN0SW1wbChvYmplY3QtPmdldCgpLCBvd25p
bmdUeXBlKTsKKyAgICBhZGRJbnN0cnVtZW50ZWRPYmplY3RJbXBsKG9iamVjdC0+Z2V0KCksIGJ5
UG9pbnRlcik7CiB9CiAKIC8vIExpbmsgdGltZSBndWFyZCBmb3Igc3RyaW5nIG1lbWJlcnMuIFRo
ZXkgcHJvZHVjZSBsaW5rIGVycm9yIGlzIGEgc3RyaW5nIGlzIHJlcG9ydGVkIHZpYSBhZGRPYmpl
Y3QuCkBAIC0yNjEsMTEgKzI3OSwxMiBAQCB2b2lkIE1lbW9yeUluc3RydW1lbnRhdGlvbjo6YWRk
TGlzdEhhc2hTZXQoY29uc3QgTGlzdEhhc2hTZXRUeXBlJiBoYXNoU2V0LCBPYmplYwogfQogCiB0
ZW1wbGF0ZSA8dHlwZW5hbWUgVmVjdG9yVHlwZT4KLXZvaWQgTWVtb3J5SW5zdHJ1bWVudGF0aW9u
OjphZGRWZWN0b3IoY29uc3QgVmVjdG9yVHlwZSYgdmVjdG9yLCBPYmplY3RUeXBlIG9iamVjdFR5
cGUsIGJvb2wgY29udGVudE9ubHkpCit2b2lkIE1lbW9yeUluc3RydW1lbnRhdGlvbjo6YWRkVmVj
dG9ySW1wbChjb25zdCBWZWN0b3JUeXBlKiB2ZWN0b3IsIE9iamVjdFR5cGUgb2JqZWN0VHlwZSwg
T3duaW5nVHlwZSBvd25pbmdUeXBlKQogewotICAgIGlmICghdmVjdG9yLmRhdGEoKSB8fCB2aXNp
dGVkKHZlY3Rvci5kYXRhKCkpKQorICAgIGlmICghdmVjdG9yIHx8IHZpc2l0ZWQodmVjdG9yKSkK
ICAgICAgICAgcmV0dXJuOwotICAgIGNvdW50T2JqZWN0U2l6ZShvYmplY3RUeXBlLCBjYWxjdWxh
dGVDb250YWluZXJTaXplKHZlY3RvciwgY29udGVudE9ubHkpKTsKKyAgICBib29sIGNvbnRlbnRP
bmx5ID0gb3duaW5nVHlwZSA9PSBieVJlZmVyZW5jZTsKKyAgICBjb3VudE9iamVjdFNpemUob2Jq
ZWN0VHlwZSwgY2FsY3VsYXRlQ29udGFpbmVyU2l6ZSgqdmVjdG9yLCBjb250ZW50T25seSkpOwog
fQogCiB0ZW1wbGF0ZSA8dHlwZW5hbWUgQ29udGFpbmVyPgpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvZG9tL05vZGUuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL05vZGUuY3BwCmluZGV4IDg0
MjY5Njc3OTBiMTgwNzI0MjMyNzNlOTk5N2Q1MzAxMTFmYjUxMDcuLjEzN2Y1YzE0NGNiMzBiYzcw
NjZiNDI0NmU0YmFiNzE4OTRjODQxNTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9O
b2RlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZS5jcHAKQEAgLTY3LDYgKzY3LDcg
QEAKICNpbmNsdWRlICJLZXlib2FyZEV2ZW50LmgiCiAjaW5jbHVkZSAiTGFiZWxzTm9kZUxpc3Qu
aCIKICNpbmNsdWRlICJMb2dnaW5nLmgiCisjaW5jbHVkZSAiTWVtb3J5SW5zdHJ1bWVudGF0aW9u
LmgiCiAjaW5jbHVkZSAiTW91c2VFdmVudC5oIgogI2luY2x1ZGUgIk11dGF0aW9uRXZlbnQuaCIK
ICNpbmNsdWRlICJOYW1lTm9kZUxpc3QuaCIKQEAgLTI4MjksNiArMjgzMCw4IEBAIHZvaWQgTm9k
ZTo6cmVwb3J0TWVtb3J5VXNhZ2UoTWVtb3J5T2JqZWN0SW5mbyogbWVtb3J5T2JqZWN0SW5mbykg
Y29uc3QKICAgICBpbmZvLmFkZEluc3RydW1lbnRlZE1lbWJlcihtX2RvY3VtZW50KTsKICAgICBp
bmZvLmFkZEluc3RydW1lbnRlZE1lbWJlcihtX25leHQpOwogICAgIGluZm8uYWRkSW5zdHJ1bWVu
dGVkTWVtYmVyKG1fcHJldmlvdXMpOworICAgIGlmIChtX3JlbmRlcmVyKQorICAgICAgICBpbmZv
LmFkZEluc3RydW1lbnRlZE1lbWJlcihtX3JlbmRlcmVyLT5zdHlsZSgpKTsKIH0KIAogfSAvLyBu
YW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL05vZGUuaCBi
L1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlLmgKaW5kZXggYTFmYjE4NGMzMmRmOGM0MmJiNDc5YWU4
MmU4YTBlNTU2NTU5MTUzMC4uMTkxZTFiOWFhN2M0NWY5NzFmZDU5N2NkMTU0MGQ0MjVlZmUwNjRi
MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL05vZGUuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9kb20vTm9kZS5oCkBAIC0yOSw3ICsyOSw2IEBACiAjaW5jbHVkZSAiRXZlbnRUYXJnZXQu
aCIKICNpbmNsdWRlICJLVVJMSGFzaC5oIgogI2luY2x1ZGUgIkxheW91dFR5cGVzLmgiCi0jaW5j
bHVkZSAiTWVtb3J5SW5zdHJ1bWVudGF0aW9uLmgiCiAjaW5jbHVkZSAiTXV0YXRpb25PYnNlcnZl
ci5oIgogI2luY2x1ZGUgIlJlbmRlclN0eWxlQ29uc3RhbnRzLmgiCiAjaW5jbHVkZSAiU2NyaXB0
V3JhcHBhYmxlLmgiCkBAIC02Niw2ICs2NSw3IEBAIGNsYXNzIEZyYW1lOwogY2xhc3MgSFRNTElu
cHV0RWxlbWVudDsKIGNsYXNzIEludFJlY3Q7CiBjbGFzcyBLZXlib2FyZEV2ZW50OworY2xhc3Mg
TWVtb3J5T2JqZWN0SW5mbzsKIGNsYXNzIE5TUmVzb2x2ZXI7CiBjbGFzcyBOYW1lZE5vZGVNYXA7
CiBjbGFzcyBOYW1lTm9kZUxpc3Q7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvc3R5bGUvUmVuZGVyU3R5bGUuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxl
L1JlbmRlclN0eWxlLmNwcAppbmRleCBhYjAxM2FmYjk5NjNjYzY5NGFjYWJkMjBhNWRjOTMxOGM0
NGU2ZTJhLi43MGIzMjBlNmJmN2I4MmFhYTI5MTY4MzZiMmMyNjMyM2M2YTJlY2QxIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGUuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZS5jcHAKQEAgLTI4LDYg
KzI4LDcgQEAKICNpbmNsdWRlICJDU1NQcm9wZXJ0eU5hbWVzLmgiCiAjaW5jbHVkZSAiQ1NTV3Jh
cFNoYXBlcy5oIgogI2luY2x1ZGUgIkZvbnRTZWxlY3Rvci5oIgorI2luY2x1ZGUgIk1lbW9yeUlu
c3RydW1lbnRhdGlvbi5oIgogI2luY2x1ZGUgIlF1b3Rlc0RhdGEuaCIKICNpbmNsdWRlICJSZW5k
ZXJBcmVuYS5oIgogI2luY2x1ZGUgIlJlbmRlck9iamVjdC5oIgpAQCAtMTQ4Niw0ICsxNDg3LDI0
IEBAIExheW91dEJveEV4dGVudCBSZW5kZXJTdHlsZTo6aW1hZ2VPdXRzZXRzKGNvbnN0IE5pbmVQ
aWVjZUltYWdlJiBpbWFnZSkgY29uc3QKICAgICAgICAgICAgICAgICAgICAgICAgICAgIE5pbmVQ
aWVjZUltYWdlOjpjb21wdXRlT3V0c2V0KGltYWdlLm91dHNldCgpLmxlZnQoKSwgYm9yZGVyTGVm
dFdpZHRoKCkpKTsKIH0KIAordm9pZCBSZW5kZXJTdHlsZTo6cmVwb3J0TWVtb3J5VXNhZ2UoTWVt
b3J5T2JqZWN0SW5mbyogbWVtb3J5T2JqZWN0SW5mbykgY29uc3QKK3sKKyAgICBNZW1vcnlDbGFz
c0luZm88UmVuZGVyU3R5bGU+IGluZm8obWVtb3J5T2JqZWN0SW5mbywgdGhpcywgTWVtb3J5SW5z
dHJ1bWVudGF0aW9uOjpDU1MpOworICAgIGluZm8uYWRkTWVtYmVyKG1fYm94KTsKKyAgICBpbmZv
LmFkZE1lbWJlcih2aXN1YWwpOworICAgIC8vIEZJWE1FOiBtX2JhY2tncm91bmQgY29udGFpbnMg
UmVmUHRyPFN0eWxlSW1hZ2U+IHRoYXQgbWlnaHQgbmVlZCB0byBiZSBpbnN0cnVtZW50ZWQuCisg
ICAgaW5mby5hZGRNZW1iZXIobV9iYWNrZ3JvdW5kKTsKKyAgICAvLyBGSVhNRTogc3Vycm9uZCBj
b250YWlucyBzb21lIGZpZWxkcyBlLmcuIEJvcmRlckRhdGEgdGhhdCBtaWdodCBuZWVkIHRvIGJl
IGluc3RydW1lbnRlZC4KKyAgICBpbmZvLmFkZE1lbWJlcihzdXJyb3VuZCk7CisgICAgaW5mby5h
ZGRJbnN0cnVtZW50ZWRNZW1iZXIocmFyZU5vbkluaGVyaXRlZERhdGEpOworICAgIGluZm8uYWRk
SW5zdHJ1bWVudGVkTWVtYmVyKHJhcmVJbmhlcml0ZWREYXRhKTsKKyAgICAvLyBGSVhNRTogaW5o
ZXJpdGVkIGNvbnRhaW5zIFN0eWxlSW1hZ2UgYW5kIEZvbnQgZmllbGRzIHRoYXQgbWlnaHQgbmVl
ZCB0byBiZSBpbnN0cnVtZW50ZWQuCisgICAgaW5mby5hZGRNZW1iZXIoaW5oZXJpdGVkKTsKKyAg
ICBpZiAobV9jYWNoZWRQc2V1ZG9TdHlsZXMpCisgICAgICAgIGluZm8uYWRkVmVjdG9yKG1fY2Fj
aGVkUHNldWRvU3R5bGVzLmdldCgpKTsKKyNpZiBFTkFCTEUoU1ZHKQorICAgIGluZm8uYWRkTWVt
YmVyKG1fc3ZnU3R5bGUpOworI2VuZGlmCit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZS5oIGIv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlLmgKaW5kZXggZDU2ZDJk
M2MxYzFkZmY5YmU2ZTNjMTMzOTY0OGZlY2MzNjcwODZlNi4uZTIwNDhhY2YwZTliNDhhNGU3OGI1
YjkzNzE0NjAzZjFmOGVkYjhkMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L3N0eWxlL1JlbmRlclN0eWxlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxl
L1JlbmRlclN0eWxlLmgKQEAgLTEwNSw2ICsxMDUsNyBAQCBjbGFzcyBCb3JkZXJEYXRhOwogY2xh
c3MgQ291bnRlckNvbnRlbnQ7CiBjbGFzcyBDdXJzb3JMaXN0OwogY2xhc3MgSW50UmVjdDsKK2Ns
YXNzIE1lbW9yeU9iamVjdEluZm87CiBjbGFzcyBQYWlyOwogY2xhc3MgU2hhZG93RGF0YTsKIGNs
YXNzIFN0eWxlSW1hZ2U7CkBAIC0xNTQxLDYgKzE1NDIsOCBAQCBwdWJsaWM6CiAKICAgICB2b2lk
IHNldEhhc0V4cGxpY2l0bHlJbmhlcml0ZWRQcm9wZXJ0aWVzKCkgeyBtX2JpdGZpZWxkcy5zZXRF
eHBsaWNpdEluaGVyaXRhbmNlKHRydWUpOyB9CiAgICAgYm9vbCBoYXNFeHBsaWNpdGx5SW5oZXJp
dGVkUHJvcGVydGllcygpIGNvbnN0IHsgcmV0dXJuIG1fYml0ZmllbGRzLmV4cGxpY2l0SW5oZXJp
dGFuY2UoKTsgfQorCisgICAgdm9pZCByZXBvcnRNZW1vcnlVc2FnZShNZW1vcnlPYmplY3RJbmZv
KikgY29uc3Q7CiAgICAgCiAgICAgLy8gSW5pdGlhbCB2YWx1ZXMgZm9yIGFsbCB0aGUgcHJvcGVy
dGllcwogICAgIHN0YXRpYyBFQm9yZGVyQ29sbGFwc2UgaW5pdGlhbEJvcmRlckNvbGxhcHNlKCkg
eyByZXR1cm4gQlNFUEFSQVRFOyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvc3R5bGUvU3R5bGVSYXJlSW5oZXJpdGVkRGF0YS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvc3R5bGUvU3R5bGVSYXJlSW5oZXJpdGVkRGF0YS5jcHAKaW5kZXggYzIxY2NhY2NiNWE4
OWUxZmYwODMyOWY1YWZlNzk5ZjBkMmM0MzExYi4uZDkzOWFhZDM0NzIwYzQ2MzZmNzQ3MDgyZjRh
Zjc0Mjg4ODg5N2UwMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxl
L1N0eWxlUmFyZUluaGVyaXRlZERhdGEuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9zdHlsZS9TdHlsZVJhcmVJbmhlcml0ZWREYXRhLmNwcApAQCAtMjMsNiArMjMsNyBAQAogI2lu
Y2x1ZGUgIlN0eWxlUmFyZUluaGVyaXRlZERhdGEuaCIKIAogI2luY2x1ZGUgIkN1cnNvckxpc3Qu
aCIKKyNpbmNsdWRlICJNZW1vcnlJbnN0cnVtZW50YXRpb24uaCIKICNpbmNsdWRlICJRdW90ZXNE
YXRhLmgiCiAjaW5jbHVkZSAiUmVuZGVyU3R5bGUuaCIKICNpbmNsdWRlICJSZW5kZXJTdHlsZUNv
bnN0YW50cy5oIgpAQCAtMjYxLDQgKzI2MiwyMCBAQCBib29sIFN0eWxlUmFyZUluaGVyaXRlZERh
dGE6OnNoYWRvd0RhdGFFcXVpdmFsZW50KGNvbnN0IFN0eWxlUmFyZUluaGVyaXRlZERhdGEmCiAg
ICAgcmV0dXJuIHRydWU7CiB9CiAKK3ZvaWQgU3R5bGVSYXJlSW5oZXJpdGVkRGF0YTo6cmVwb3J0
TWVtb3J5VXNhZ2UoTWVtb3J5T2JqZWN0SW5mbyogbWVtb3J5T2JqZWN0SW5mbykgY29uc3QKK3sK
KyAgICBNZW1vcnlDbGFzc0luZm88U3R5bGVSYXJlSW5oZXJpdGVkRGF0YT4gaW5mbyhtZW1vcnlP
YmplY3RJbmZvLCB0aGlzLCBNZW1vcnlJbnN0cnVtZW50YXRpb246OkNTUyk7CisgICAgaW5mby5h
ZGRNZW1iZXIodGV4dFNoYWRvdyk7CisgICAgaW5mby5hZGRTdHJpbmcoaGlnaGxpZ2h0KTsKKyAg
ICBpbmZvLmFkZE1lbWJlcihjdXJzb3JEYXRhKTsKKyAgICBpbmZvLmFkZFN0cmluZyhoeXBoZW5h
dGlvblN0cmluZyk7CisgICAgaW5mby5hZGRTdHJpbmcobG9jYWxlKTsKKyAgICBpbmZvLmFkZFN0
cmluZyh0ZXh0RW1waGFzaXNDdXN0b21NYXJrKTsKKyAgICBpbmZvLmFkZE1lbWJlcihxdW90ZXMp
OworICAgIGluZm8uYWRkU3RyaW5nKG1fbGluZUdyaWQpOworI2lmIEVOQUJMRShDU1NfVkFSSUFC
TEVTKQorICAgIGluZm8uYWRkTWVtYmVyKG1fdmFyaWFibGVzKTsKKyNlbmRpZgorfQorCiB9IC8v
IG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
c3R5bGUvU3R5bGVSYXJlSW5oZXJpdGVkRGF0YS5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L3N0eWxlL1N0eWxlUmFyZUluaGVyaXRlZERhdGEuaAppbmRleCBiMzA5ODJkZjk3YjFjZTI2MmVk
NzJkZGU3MDE3ZmU4ZjhlNWU1YWMwLi5iYjQzM2VkMjc2Y2FkYjUyODQ4NWEzM2RmNDQzYjFmYWI1
ZGQ1YmE4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvU3R5bGVS
YXJlSW5oZXJpdGVkRGF0YS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9T
dHlsZVJhcmVJbmhlcml0ZWREYXRhLmgKQEAgLTM5LDYgKzM5LDcgQEAKIG5hbWVzcGFjZSBXZWJD
b3JlIHsKIAogY2xhc3MgQ3Vyc29yTGlzdDsKK2NsYXNzIE1lbW9yeU9iamVjdEluZm87CiBjbGFz
cyBRdW90ZXNEYXRhOwogY2xhc3MgU2hhZG93RGF0YTsKIApAQCAtNTgsNiArNTksOCBAQCBwdWJs
aWM6CiAgICAgfQogICAgIGJvb2wgc2hhZG93RGF0YUVxdWl2YWxlbnQoY29uc3QgU3R5bGVSYXJl
SW5oZXJpdGVkRGF0YSYpIGNvbnN0OwogCisgICAgdm9pZCByZXBvcnRNZW1vcnlVc2FnZShNZW1v
cnlPYmplY3RJbmZvKikgY29uc3Q7CisKICAgICBDb2xvciB0ZXh0U3Ryb2tlQ29sb3I7CiAgICAg
ZmxvYXQgdGV4dFN0cm9rZVdpZHRoOwogICAgIENvbG9yIHRleHRGaWxsQ29sb3I7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvU3R5bGVSYXJlTm9uSW5oZXJpdGVk
RGF0YS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvU3R5bGVSYXJlTm9uSW5o
ZXJpdGVkRGF0YS5jcHAKaW5kZXggMjJiMzI3MmU4YzM3ZDIxZWUzNjQ5YzBhNDVhN2Q0M2Q1MTIx
MDQ0ZC4uMjFkN2VjYjU3MzUwZDE3NjAwNDYyYzJkY2UwODM4YjgzMjQ5YTNiMyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1N0eWxlUmFyZU5vbkluaGVyaXRlZERh
dGEuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9TdHlsZVJhcmVOb25J
bmhlcml0ZWREYXRhLmNwcApAQCAtMjMsNiArMjMsNyBAQAogI2luY2x1ZGUgIlN0eWxlUmFyZU5v
bkluaGVyaXRlZERhdGEuaCIKIAogI2luY2x1ZGUgIkNvbnRlbnREYXRhLmgiCisjaW5jbHVkZSAi
TWVtb3J5SW5zdHJ1bWVudGF0aW9uLmgiCiAjaW5jbHVkZSAiUmVuZGVyQ291bnRlci5oIgogI2lu
Y2x1ZGUgIlJlbmRlclN0eWxlLmgiCiAjaW5jbHVkZSAiU2hhZG93RGF0YS5oIgpAQCAtMjg2LDQg
KzI4NywzMiBAQCBib29sIFN0eWxlUmFyZU5vbkluaGVyaXRlZERhdGE6OnRyYW5zaXRpb25EYXRh
RXF1aXZhbGVudChjb25zdCBTdHlsZVJhcmVOb25JbmhlcgogICAgIHJldHVybiB0cnVlOwogfQog
Cit2b2lkIFN0eWxlUmFyZU5vbkluaGVyaXRlZERhdGE6OnJlcG9ydE1lbW9yeVVzYWdlKE1lbW9y
eU9iamVjdEluZm8qIG1lbW9yeU9iamVjdEluZm8pIGNvbnN0Cit7CisgICAgTWVtb3J5Q2xhc3NJ
bmZvPFN0eWxlUmFyZU5vbkluaGVyaXRlZERhdGE+IGluZm8obWVtb3J5T2JqZWN0SW5mbywgdGhp
cywgTWVtb3J5SW5zdHJ1bWVudGF0aW9uOjpDU1MpOworI2lmIEVOQUJMRShEQVNIQk9BUkRfU1VQ
UE9SVCkKKyAgICBpbmZvLmFkZFZlY3RvcihtX2Rhc2hib2FyZFJlZ2lvbnMpOworI2VuZGlmCisg
ICAgaW5mby5hZGRNZW1iZXIobV9kZXByZWNhdGVkRmxleGlibGVCb3gpOworICAgIGluZm8uYWRk
TWVtYmVyKG1fZmxleGlibGVCb3gpOworICAgIGluZm8uYWRkTWVtYmVyKG1fbWFycXVlZSk7Cisg
ICAgaW5mby5hZGRNZW1iZXIobV9tdWx0aUNvbCk7CisgICAgaW5mby5hZGRNZW1iZXIobV90cmFu
c2Zvcm0pOworI2lmIEVOQUJMRShDU1NfRklMVEVSUykKKyAgICBpbmZvLmFkZE1lbWJlcihtX2Zp
bHRlcik7CisjZW5kaWYKKyAgICBpbmZvLmFkZE1lbWJlcihtX2dyaWQpOworICAgIGluZm8uYWRk
TWVtYmVyKG1fZ3JpZEl0ZW0pOworICAgIGluZm8uYWRkTWVtYmVyKG1fY29udGVudCk7CisgICAg
aW5mby5hZGRNZW1iZXIobV9jb3VudGVyRGlyZWN0aXZlcyk7CisgICAgaW5mby5hZGRNZW1iZXIo
bV9ib3hTaGFkb3cpOworICAgIGluZm8uYWRkTWVtYmVyKG1fYm94UmVmbGVjdCk7CisgICAgaW5m
by5hZGRNZW1iZXIobV9hbmltYXRpb25zKTsKKyAgICBpbmZvLmFkZE1lbWJlcihtX3RyYW5zaXRp
b25zKTsKKyAgICBpbmZvLmFkZE1lbWJlcihtX3dyYXBTaGFwZUluc2lkZSk7CisgICAgaW5mby5h
ZGRNZW1iZXIobV93cmFwU2hhcGVPdXRzaWRlKTsKKyAgICBpbmZvLmFkZFN0cmluZyhtX2Zsb3dU
aHJlYWQpOworICAgIGluZm8uYWRkU3RyaW5nKG1fcmVnaW9uVGhyZWFkKTsKK30KKwogfSAvLyBu
YW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0
eWxlL1N0eWxlUmFyZU5vbkluaGVyaXRlZERhdGEuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9zdHlsZS9TdHlsZVJhcmVOb25Jbmhlcml0ZWREYXRhLmgKaW5kZXggNWU2ZmRlMmE2MTdjZjM5
NTI1ZTU1N2JkOTA5ODY2MjIxNGU4Y2JlZS4uMGZlNmU1OGM2MzNiY2NhOWJjMmI0ZTc3ZmQzYjIw
NjBlM2Q3NmQ0ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1N0
eWxlUmFyZU5vbkluaGVyaXRlZERhdGEuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
c3R5bGUvU3R5bGVSYXJlTm9uSW5oZXJpdGVkRGF0YS5oCkBAIC0zOSw2ICszOSw3IEBACiBuYW1l
c3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIEFuaW1hdGlvbkxpc3Q7CitjbGFzcyBNZW1vcnlPYmpl
Y3RJbmZvOwogY2xhc3MgU2hhZG93RGF0YTsKIGNsYXNzIFN0eWxlRGVwcmVjYXRlZEZsZXhpYmxl
Qm94RGF0YTsKICNpZiBFTkFCTEUoQ1NTX0ZJTFRFUlMpCkBAIC04OSw2ICs5MCw4IEBAIHB1Ymxp
YzoKICAgICBib29sIGFuaW1hdGlvbkRhdGFFcXVpdmFsZW50KGNvbnN0IFN0eWxlUmFyZU5vbklu
aGVyaXRlZERhdGEmKSBjb25zdDsKICAgICBib29sIHRyYW5zaXRpb25EYXRhRXF1aXZhbGVudChj
b25zdCBTdHlsZVJhcmVOb25Jbmhlcml0ZWREYXRhJikgY29uc3Q7CiAKKyAgICB2b2lkIHJlcG9y
dE1lbW9yeVVzYWdlKE1lbW9yeU9iamVjdEluZm8qKSBjb25zdDsKKwogICAgIGZsb2F0IG9wYWNp
dHk7IC8vIFdoZXRoZXIgb3Igbm90IHdlJ3JlIHRyYW5zcGFyZW50LgogCiAgICAgZmxvYXQgbV9h
c3BlY3RSYXRpb0Rlbm9taW5hdG9yOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>155798</attachid>
            <date>2012-08-01 06:46:41 -0700</date>
            <delta_ts>2012-08-01 07:03:12 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-91759-20120801174622.patch</filename>
            <type>text/plain</type>
            <size>19544</size>
            <attacher name="Alexei Filippov">alph</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTI0MzMxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMWU3MzM3Yzg4YTY3Njlh
YWMyZGZhMDdiYWRiYzczYTFiZTM4NmMwNy4uZjdhZTljOTQ1YjAxMmI2NzFjYjhjODEzMzBlZjFi
MWZlNDkyZTNjMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU0IEBACisyMDEyLTA4LTAxICBBbGV4
ZWkgRmlsaXBwb3YgIDxhbGV4ZWlmQGNocm9taXVtLm9yZz4KKworICAgICAgICBXZWIgSW5zcGVj
dG9yOiBjb3VudCBSZW5kZXJTdHlsZSBvYmplY3RzIGluIHRoZSBuYXRpdmUgbWVtb3J5IHByb2Zp
bGVyCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05MTc1
OQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoZSBw
YXRjaCBhZGRzIGluc3RydW1lbnRhdGlvbiB0byB0aGUgZm9sbG93aW5nIGNsYXNzZXM6CisgICAg
ICAgICAgLSBSZW5kZXJTdHlsZQorICAgICAgICAgIC0gU3R5bGVSYXJlSW5oZXJpdGVkRGF0YQor
ICAgICAgICAgIC0gU3R5bGVSYXJlTm9uSW5oZXJpdGVkRGF0YQorCisgICAgICAgIEJlc2lkZXMg
dGhhdCBpdCBhZGRzIHN1cHBvcnQgZm9yIFZlY3RvciogcHJvY2Vzc2luZyBpbiBNZW1vcnlJbnN0
cnVtZW50YXRpb24KKyAgICAgICAgYW5kIGZpeGVzIHdyb25nIG93bmluZyB0eXBlIHBhc3NlZCBm
b3IgT3duUHRyIGFuZCBSZWZQdHIgd3JhcHBlZCBtZW1iZXJzLgorCisgICAgICAgICogYmluZGlu
Z3MvanMvU2NyaXB0V3JhcHBhYmxlLmg6CisgICAgICAgICogYmluZGluZ3MvdjgvU2NyaXB0V3Jh
cHBhYmxlLmg6CisgICAgICAgICogY3NzL1N0eWxlUHJvcGVydHlTZXQuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6U3R5bGVQcm9wZXJ0eVNldDo6cmVwb3J0TWVtb3J5VXNhZ2UpOgorICAgICAgICAq
IGRvbS9NZW1vcnlJbnN0cnVtZW50YXRpb24uaDoKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAg
ICAoV2ViQ29yZTo6TWVtb3J5SW5zdHJ1bWVudGF0aW9uOjphZGRWZWN0b3IpOgorICAgICAgICAo
V2ViQ29yZTo6TWVtb3J5SW5zdHJ1bWVudGF0aW9uOjpPd25pbmdUcmFpdHM6OmFkZE9iamVjdCk6
CisgICAgICAgIChXZWJDb3JlOjpNZW1vcnlJbnN0cnVtZW50YXRpb246Ok93bmluZ1RyYWl0czo6
YWRkVmVjdG9yKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lbW9yeUluc3RydW1lbnRhdGlvbjo6YWRk
T2JqZWN0SW1wbCk6CisgICAgICAgIChNZW1vcnlJbnN0cnVtZW50YXRpb24pOgorICAgICAgICAo
V2ViQ29yZTo6TWVtb3J5Q2xhc3NJbmZvOjphZGRWZWN0b3IpOgorICAgICAgICAoV2ViQ29yZTo6
TWVtb3J5SW5zdHJ1bWVudGF0aW9uOjphZGRJbnN0cnVtZW50ZWRPYmplY3RJbXBsKToKKyAgICAg
ICAgKFdlYkNvcmU6Ok1lbW9yeUluc3RydW1lbnRhdGlvbjo6YWRkVmVjdG9ySW1wbCk6CisgICAg
ICAgICogZG9tL05vZGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Tm9kZTo6cmVwb3J0TWVtb3J5
VXNhZ2UpOgorICAgICAgICAqIGRvbS9Ob2RlLmg6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAg
ICAgKiByZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
UmVuZGVyU3R5bGU6OnJlcG9ydE1lbW9yeVVzYWdlKToKKyAgICAgICAgKFdlYkNvcmUpOgorICAg
ICAgICAqIHJlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZS5oOgorICAgICAgICAoV2ViQ29yZSk6
CisgICAgICAgICogcmVuZGVyaW5nL3N0eWxlL1N0eWxlUmFyZUluaGVyaXRlZERhdGEuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6U3R5bGVSYXJlSW5oZXJpdGVkRGF0YTo6cmVwb3J0TWVtb3J5VXNh
Z2UpOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgICogcmVuZGVyaW5nL3N0eWxlL1N0eWxl
UmFyZUluaGVyaXRlZERhdGEuaDoKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoU3R5bGVS
YXJlSW5oZXJpdGVkRGF0YSk6CisgICAgICAgICogcmVuZGVyaW5nL3N0eWxlL1N0eWxlUmFyZU5v
bkluaGVyaXRlZERhdGEuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U3R5bGVSYXJlTm9uSW5oZXJp
dGVkRGF0YTo6cmVwb3J0TWVtb3J5VXNhZ2UpOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAg
ICogcmVuZGVyaW5nL3N0eWxlL1N0eWxlUmFyZU5vbkluaGVyaXRlZERhdGEuaDoKKyAgICAgICAg
KFdlYkNvcmUpOgorICAgICAgICAoU3R5bGVSYXJlTm9uSW5oZXJpdGVkRGF0YSk6CisKIDIwMTIt
MDctMzEgIFl1cnkgU2VtaWtoYXRza3kgIDx5dXJ5c0BjaHJvbWl1bS5vcmc+CiAKICAgICAgICAg
V2ViIEluc3BlY3RvcjogYWRkIENTU1N0eWxlU2hlZXQgbWVtb3J5IGluc3RydW1lbnRhdGlvbgpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvU2NyaXB0V3JhcHBhYmxlLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9TY3JpcHRXcmFwcGFibGUuaAppbmRleCAzY2I1
ZDgxNmMxMTFiODA3ZmEwNjk3YTY3Y2Q5ZjlhOTY0MmQwNWU3Li4wY2YyZDdhMTZjNGVlMDhkYzQ1
MzA0OTJlMTI0MzE0MGU4ZjliNTkxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9qcy9TY3JpcHRXcmFwcGFibGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9T
Y3JpcHRXcmFwcGFibGUuaApAQCAtMzIsNiArMzIsNyBAQAogI2RlZmluZSBTY3JpcHRXcmFwcGFi
bGVfaAogCiAjaW5jbHVkZSAiSlNET01XcmFwcGVyLmgiCisjaW5jbHVkZSAiTWVtb3J5SW5zdHJ1
bWVudGF0aW9uLmgiCiAjaW5jbHVkZSA8aGVhcC9XZWFrLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1NjcmlwdFdyYXBwYWJs
ZS5oIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvU2NyaXB0V3JhcHBhYmxlLmgKaW5kZXgg
ZWYyZjc2MTlmMjQ1MTEwNjU3YzdhZTBhNWJhMDJlZGMwNGQ2ZmY2OS4uNjRhOTA1MzkyOGE2MGUx
NTA4MjE2NDc2MDQyODU2YjJhN2MzZDAzMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3MvdjgvU2NyaXB0V3JhcHBhYmxlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
djgvU2NyaXB0V3JhcHBhYmxlLmgKQEAgLTMxLDYgKzMxLDcgQEAKICNpZm5kZWYgU2NyaXB0V3Jh
cHBhYmxlX2gKICNkZWZpbmUgU2NyaXB0V3JhcHBhYmxlX2gKIAorI2luY2x1ZGUgIk1lbW9yeUlu
c3RydW1lbnRhdGlvbi5oIgogI2luY2x1ZGUgPHY4Lmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9TdHlsZVByb3BlcnR5U2V0LmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2Nzcy9TdHlsZVByb3BlcnR5U2V0LmNwcAppbmRleCA3OWFiMDQzMzdjYWU2
NmYxNTgwYjc2NDE3ODgzY2NjNjQzY2NmNDExLi5hNzY3NDNiMGU1MzNkODBiMmVlMjc1MzYxNzAw
OTgxOGVlMmFiNDZkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVQcm9wZXJ0
eVNldC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL1N0eWxlUHJvcGVydHlTZXQuY3BwCkBA
IC0xMDc5LDcgKzEwNzksNyBAQCB2b2lkIFN0eWxlUHJvcGVydHlTZXQ6OnJlcG9ydE1lbW9yeVVz
YWdlKE1lbW9yeU9iamVjdEluZm8qIG1lbW9yeU9iamVjdEluZm8pIGNvbgogewogICAgIE1lbW9y
eUNsYXNzSW5mbzxTdHlsZVByb3BlcnR5U2V0PiBpbmZvKG1lbW9yeU9iamVjdEluZm8sIHRoaXMs
IE1lbW9yeUluc3RydW1lbnRhdGlvbjo6Q1NTKTsKICAgICBpZiAobV9pc011dGFibGUpCi0gICAg
ICAgIGluZm8uYWRkVmVjdG9yUHRyKG1fbXV0YWJsZVByb3BlcnR5VmVjdG9yKTsKKyAgICAgICAg
aW5mby5hZGRWZWN0b3IobV9tdXRhYmxlUHJvcGVydHlWZWN0b3IpOwogICAgIGVsc2UKICAgICAg
ICAgaW5mby5hZGRSYXdCdWZmZXIobV9wcm9wZXJ0aWVzLCBtX2FycmF5U2l6ZSAqIHNpemVvZihD
U1NQcm9wZXJ0eSkpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL01lbW9yeUlu
c3RydW1lbnRhdGlvbi5oIGIvU291cmNlL1dlYkNvcmUvZG9tL01lbW9yeUluc3RydW1lbnRhdGlv
bi5oCmluZGV4IDE4OWQyNDlkNjBkZjk0NmViMDc2MmU5YzIwZmFjNDJmYTExM2YwZjQuLmZjNDNm
MDc0Y2VkMzIzNTQ2ZDllODJjOWQ0ODhmMGIwY2Y3Yjg1OWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2RvbS9NZW1vcnlJbnN0cnVtZW50YXRpb24uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9k
b20vTWVtb3J5SW5zdHJ1bWVudGF0aW9uLmgKQEAgLTM5LDYgKzM5LDcgQEAKIAogbmFtZXNwYWNl
IFdlYkNvcmUgewogCit0ZW1wbGF0ZSA8dHlwZW5hbWUgVD4gY2xhc3MgRGF0YVJlZjsKIGNsYXNz
IE1lbW9yeU9iamVjdEluZm87CiAKIGNsYXNzIE1lbW9yeUluc3RydW1lbnRhdGlvbiB7CkBAIC05
Miw3ICs5MywxMCBAQCBwcml2YXRlOgogICAgIHRlbXBsYXRlIDx0eXBlbmFtZSBIYXNoU2V0VHlw
ZT4gdm9pZCBhZGRIYXNoU2V0KGNvbnN0IEhhc2hTZXRUeXBlJiwgT2JqZWN0VHlwZSwgYm9vbCBj
b250ZW50T25seSA9IGZhbHNlKTsKICAgICB0ZW1wbGF0ZSA8dHlwZW5hbWUgQ29sbGVjdGlvblR5
cGU+IHZvaWQgYWRkSW5zdHJ1bWVudGVkQ29sbGVjdGlvbihjb25zdCBDb2xsZWN0aW9uVHlwZSYs
IE9iamVjdFR5cGUsIGJvb2wgY29udGVudE9ubHkgPSBmYWxzZSk7CiAgICAgdGVtcGxhdGUgPHR5
cGVuYW1lIExpc3RIYXNoU2V0VHlwZT4gdm9pZCBhZGRMaXN0SGFzaFNldChjb25zdCBMaXN0SGFz
aFNldFR5cGUmLCBPYmplY3RUeXBlLCBib29sIGNvbnRlbnRPbmx5ID0gZmFsc2UpOwotICAgIHRl
bXBsYXRlIDx0eXBlbmFtZSBWZWN0b3JUeXBlPiB2b2lkIGFkZFZlY3Rvcihjb25zdCBWZWN0b3JU
eXBlJiwgT2JqZWN0VHlwZSwgYm9vbCBjb250ZW50T25seSA9IGZhbHNlKTsKKyAgICB0ZW1wbGF0
ZSA8dHlwZW5hbWUgVmVjdG9yVHlwZT4gdm9pZCBhZGRWZWN0b3IoY29uc3QgVmVjdG9yVHlwZSYg
dCwgT2JqZWN0VHlwZSBvYmplY3RUeXBlKQorICAgIHsKKyAgICAgICAgT3duaW5nVHJhaXRzPFZl
Y3RvclR5cGU+OjphZGRWZWN0b3IodGhpcywgdCwgb2JqZWN0VHlwZSk7CisgICAgfQogICAgIHZv
aWQgYWRkUmF3QnVmZmVyKGNvbnN0IHZvaWQqIGNvbnN0JiBidWZmZXIsIE9iamVjdFR5cGUgb2Jq
ZWN0VHlwZSwgc2l6ZV90IHNpemUpCiAgICAgewogICAgICAgICBpZiAoIWJ1ZmZlciB8fCB2aXNp
dGVkKGJ1ZmZlcikpCkBAIC0xMDgsMjAgKzExMiwyOCBAQCBwcml2YXRlOgogICAgIHRlbXBsYXRl
IDx0eXBlbmFtZSBUPgogICAgIHN0cnVjdCBPd25pbmdUcmFpdHMgeyAvLyBEZWZhdWx0IGJ5UmVm
ZXJlbmNlIGltcGxlbWVudGF0aW9uLgogICAgICAgICBzdGF0aWMgdm9pZCBhZGRJbnN0cnVtZW50
ZWRPYmplY3QoTWVtb3J5SW5zdHJ1bWVudGF0aW9uKiBpbnN0cnVtZW50YXRpb24sIGNvbnN0IFQm
IHQpIHsgaW5zdHJ1bWVudGF0aW9uLT5hZGRJbnN0cnVtZW50ZWRPYmplY3RJbXBsKCZ0LCBieVJl
ZmVyZW5jZSk7IH0KLSAgICAgICAgc3RhdGljIHZvaWQgYWRkT2JqZWN0KE1lbW9yeUluc3RydW1l
bnRhdGlvbiogaW5zdHJ1bWVudGF0aW9uLCBjb25zdCBUJiB0LCBNZW1vcnlJbnN0cnVtZW50YXRp
b246Ok9iamVjdFR5cGUgb2JqZWN0VHlwZSkgeyBpbnN0cnVtZW50YXRpb24tPmFkZE9iamVjdElt
cGwoJnQsIG9iamVjdFR5cGUsIGJ5UmVmZXJlbmNlKTsgfQorICAgICAgICBzdGF0aWMgdm9pZCBh
ZGRPYmplY3QoTWVtb3J5SW5zdHJ1bWVudGF0aW9uKiBpbnN0cnVtZW50YXRpb24sIGNvbnN0IFQm
IHQsIE9iamVjdFR5cGUgb2JqZWN0VHlwZSkgeyBpbnN0cnVtZW50YXRpb24tPmFkZE9iamVjdElt
cGwoJnQsIG9iamVjdFR5cGUsIGJ5UmVmZXJlbmNlKTsgfQorICAgICAgICBzdGF0aWMgdm9pZCBh
ZGRWZWN0b3IoTWVtb3J5SW5zdHJ1bWVudGF0aW9uKiBpbnN0cnVtZW50YXRpb24sIGNvbnN0IFQm
IHQsIE9iamVjdFR5cGUgb2JqZWN0VHlwZSkgeyBpbnN0cnVtZW50YXRpb24tPmFkZFZlY3Rvcklt
cGwoJnQsIG9iamVjdFR5cGUsIGJ5UmVmZXJlbmNlKTsgfQogICAgIH07CiAKICAgICB0ZW1wbGF0
ZSA8dHlwZW5hbWUgVD4KICAgICBzdHJ1Y3QgT3duaW5nVHJhaXRzPFQqPiB7IC8vIEN1c3RvbSBi
eVBvaW50ZXIgaW1wbGVtZW50YXRpb24uCiAgICAgICAgIHN0YXRpYyB2b2lkIGFkZEluc3RydW1l
bnRlZE9iamVjdChNZW1vcnlJbnN0cnVtZW50YXRpb24qIGluc3RydW1lbnRhdGlvbiwgY29uc3Qg
VCogY29uc3QmIHQpIHsgaW5zdHJ1bWVudGF0aW9uLT5hZGRJbnN0cnVtZW50ZWRPYmplY3RJbXBs
KHQsIGJ5UG9pbnRlcik7IH0KLSAgICAgICAgc3RhdGljIHZvaWQgYWRkT2JqZWN0KE1lbW9yeUlu
c3RydW1lbnRhdGlvbiogaW5zdHJ1bWVudGF0aW9uLCBjb25zdCBUKiBjb25zdCYgdCwgTWVtb3J5
SW5zdHJ1bWVudGF0aW9uOjpPYmplY3RUeXBlIG9iamVjdFR5cGUpIHsgaW5zdHJ1bWVudGF0aW9u
LT5hZGRPYmplY3RJbXBsKHQsIG9iamVjdFR5cGUsIGJ5UG9pbnRlcik7IH0KKyAgICAgICAgc3Rh
dGljIHZvaWQgYWRkT2JqZWN0KE1lbW9yeUluc3RydW1lbnRhdGlvbiogaW5zdHJ1bWVudGF0aW9u
LCBjb25zdCBUKiBjb25zdCYgdCwgT2JqZWN0VHlwZSBvYmplY3RUeXBlKSB7IGluc3RydW1lbnRh
dGlvbi0+YWRkT2JqZWN0SW1wbCh0LCBvYmplY3RUeXBlLCBieVBvaW50ZXIpOyB9CisgICAgICAg
IHN0YXRpYyB2b2lkIGFkZFZlY3RvcihNZW1vcnlJbnN0cnVtZW50YXRpb24qIGluc3RydW1lbnRh
dGlvbiwgY29uc3QgVCogY29uc3QmIHQsIE9iamVjdFR5cGUgb2JqZWN0VHlwZSkgeyBpbnN0cnVt
ZW50YXRpb24tPmFkZFZlY3RvckltcGwodCwgb2JqZWN0VHlwZSwgYnlQb2ludGVyKTsgfQogICAg
IH07CiAKICAgICB0ZW1wbGF0ZSA8dHlwZW5hbWUgVD4gdm9pZCBhZGRJbnN0cnVtZW50ZWRPYmpl
Y3RJbXBsKGNvbnN0IFQqIGNvbnN0JiwgT3duaW5nVHlwZSk7CisgICAgdGVtcGxhdGUgPHR5cGVu
YW1lIFQ+IHZvaWQgYWRkSW5zdHJ1bWVudGVkT2JqZWN0SW1wbChjb25zdCBEYXRhUmVmPFQ+KiBj
b25zdCYsIE93bmluZ1R5cGUpOwogICAgIHRlbXBsYXRlIDx0eXBlbmFtZSBUPiB2b2lkIGFkZElu
c3RydW1lbnRlZE9iamVjdEltcGwoY29uc3QgT3duUHRyPFQ+KiBjb25zdCYsIE93bmluZ1R5cGUp
OwogICAgIHRlbXBsYXRlIDx0eXBlbmFtZSBUPiB2b2lkIGFkZEluc3RydW1lbnRlZE9iamVjdElt
cGwoY29uc3QgUmVmUHRyPFQ+KiBjb25zdCYsIE93bmluZ1R5cGUpOwogCiAgICAgdGVtcGxhdGUg
PHR5cGVuYW1lIFQ+IHZvaWQgYWRkT2JqZWN0SW1wbChjb25zdCBUKiBjb25zdCYsIE9iamVjdFR5
cGUsIE93bmluZ1R5cGUpOworICAgIHRlbXBsYXRlIDx0eXBlbmFtZSBUPiB2b2lkIGFkZE9iamVj
dEltcGwoY29uc3QgRGF0YVJlZjxUPiogY29uc3QmIG9iamVjdCwgT2JqZWN0VHlwZSBvYmplY3RU
eXBlLCBPd25pbmdUeXBlKSB7IGFkZE9iamVjdEltcGwob2JqZWN0LT5nZXQoKSwgb2JqZWN0VHlw
ZSwgYnlQb2ludGVyKTsgfQorICAgIHRlbXBsYXRlIDx0eXBlbmFtZSBUPiB2b2lkIGFkZE9iamVj
dEltcGwoY29uc3QgT3duUHRyPFQ+KiBjb25zdCYgb2JqZWN0LCBPYmplY3RUeXBlIG9iamVjdFR5
cGUsIE93bmluZ1R5cGUpIHsgYWRkT2JqZWN0SW1wbChvYmplY3QtPmdldCgpLCBvYmplY3RUeXBl
LCBieVBvaW50ZXIpOyB9CisgICAgdGVtcGxhdGUgPHR5cGVuYW1lIFQ+IHZvaWQgYWRkT2JqZWN0
SW1wbChjb25zdCBSZWZQdHI8VD4qIGNvbnN0JiBvYmplY3QsIE9iamVjdFR5cGUgb2JqZWN0VHlw
ZSwgT3duaW5nVHlwZSkgeyBhZGRPYmplY3RJbXBsKG9iamVjdC0+Z2V0KCksIG9iamVjdFR5cGUs
IGJ5UG9pbnRlcik7IH0KKworICAgIHRlbXBsYXRlIDx0eXBlbmFtZSBUPiB2b2lkIGFkZFZlY3Rv
ckltcGwoY29uc3QgVCosIE9iamVjdFR5cGUsIE93bmluZ1R5cGUpOwogfTsKIAogY2xhc3MgTWVt
b3J5T2JqZWN0SW5mbyB7CkBAIC0xNzYsOCArMTg4LDcgQEAgcHVibGljOgogICAgIHRlbXBsYXRl
IDx0eXBlbmFtZSBWZWN0b3JUeXBlPiB2b2lkIGFkZEluc3RydW1lbnRlZFZlY3RvclB0cihjb25z
dCBPd25QdHI8VmVjdG9yVHlwZT4mIHZlY3RvcikgeyBtX21lbW9yeUluc3RydW1lbnRhdGlvbi0+
YWRkSW5zdHJ1bWVudGVkQ29sbGVjdGlvbigqdmVjdG9yLCBtX29iamVjdFR5cGUsIGZhbHNlKTsg
fQogICAgIHRlbXBsYXRlIDx0eXBlbmFtZSBWZWN0b3JUeXBlPiB2b2lkIGFkZEluc3RydW1lbnRl
ZFZlY3RvclB0cihjb25zdCBWZWN0b3JUeXBlKiBjb25zdCYgdmVjdG9yKSB7IG1fbWVtb3J5SW5z
dHJ1bWVudGF0aW9uLT5hZGRJbnN0cnVtZW50ZWRDb2xsZWN0aW9uKCp2ZWN0b3IsIG1fb2JqZWN0
VHlwZSwgZmFsc2UpOyB9CiAgICAgdGVtcGxhdGUgPHR5cGVuYW1lIExpc3RIYXNoU2V0VHlwZT4g
dm9pZCBhZGRMaXN0SGFzaFNldChjb25zdCBMaXN0SGFzaFNldFR5cGUmIHNldCkgeyBtX21lbW9y
eUluc3RydW1lbnRhdGlvbi0+YWRkTGlzdEhhc2hTZXQoc2V0LCBtX29iamVjdFR5cGUsIHRydWUp
OyB9Ci0gICAgdGVtcGxhdGUgPHR5cGVuYW1lIFZlY3RvclR5cGU+IHZvaWQgYWRkVmVjdG9yKGNv
bnN0IFZlY3RvclR5cGUmIHZlY3RvcikgeyBtX21lbW9yeUluc3RydW1lbnRhdGlvbi0+YWRkVmVj
dG9yKHZlY3RvciwgbV9vYmplY3RUeXBlLCB0cnVlKTsgfQotICAgIHRlbXBsYXRlIDx0eXBlbmFt
ZSBWZWN0b3JUeXBlPiB2b2lkIGFkZFZlY3RvclB0cihjb25zdCBWZWN0b3JUeXBlKiBjb25zdCB2
ZWN0b3IpIHsgbV9tZW1vcnlJbnN0cnVtZW50YXRpb24tPmFkZFZlY3RvcigqdmVjdG9yLCBtX29i
amVjdFR5cGUsIGZhbHNlKTsgfQorICAgIHRlbXBsYXRlIDx0eXBlbmFtZSBWZWN0b3JUeXBlPiB2
b2lkIGFkZFZlY3Rvcihjb25zdCBWZWN0b3JUeXBlJiB2ZWN0b3IpIHsgbV9tZW1vcnlJbnN0cnVt
ZW50YXRpb24tPmFkZFZlY3Rvcih2ZWN0b3IsIG1fb2JqZWN0VHlwZSk7IH0KICAgICB2b2lkIGFk
ZFJhd0J1ZmZlcihjb25zdCB2b2lkKiBjb25zdCYgYnVmZmVyLCBzaXplX3Qgc2l6ZSkgeyBtX21l
bW9yeUluc3RydW1lbnRhdGlvbi0+YWRkUmF3QnVmZmVyKGJ1ZmZlciwgbV9vYmplY3RUeXBlLCBz
aXplKTsgfQogCiAgICAgdm9pZCBhZGRTdHJpbmcoY29uc3QgU3RyaW5nJiBzdHJpbmcpIHsgbV9t
ZW1vcnlJbnN0cnVtZW50YXRpb24tPmFkZFN0cmluZyhzdHJpbmcsIG1fb2JqZWN0VHlwZSk7IH0K
QEAgLTIwMiwxNSArMjEzLDIxIEBAIHZvaWQgTWVtb3J5SW5zdHJ1bWVudGF0aW9uOjphZGRJbnN0
cnVtZW50ZWRPYmplY3RJbXBsKGNvbnN0IFQqIGNvbnN0JiBvYmplY3QsIE93CiB9CiAKIHRlbXBs
YXRlIDx0eXBlbmFtZSBUPgotdm9pZCBNZW1vcnlJbnN0cnVtZW50YXRpb246OmFkZEluc3RydW1l
bnRlZE9iamVjdEltcGwoY29uc3QgT3duUHRyPFQ+KiBjb25zdCYgb2JqZWN0LCBPd25pbmdUeXBl
IG93bmluZ1R5cGUpCit2b2lkIE1lbW9yeUluc3RydW1lbnRhdGlvbjo6YWRkSW5zdHJ1bWVudGVk
T2JqZWN0SW1wbChjb25zdCBEYXRhUmVmPFQ+KiBjb25zdCYgb2JqZWN0LCBPd25pbmdUeXBlKQor
eworICAgIGFkZEluc3RydW1lbnRlZE9iamVjdEltcGwob2JqZWN0LT5nZXQoKSwgYnlQb2ludGVy
KTsKK30KKwordGVtcGxhdGUgPHR5cGVuYW1lIFQ+Cit2b2lkIE1lbW9yeUluc3RydW1lbnRhdGlv
bjo6YWRkSW5zdHJ1bWVudGVkT2JqZWN0SW1wbChjb25zdCBPd25QdHI8VD4qIGNvbnN0JiBvYmpl
Y3QsIE93bmluZ1R5cGUpCiB7Ci0gICAgYWRkSW5zdHJ1bWVudGVkT2JqZWN0SW1wbChvYmplY3Qt
PmdldCgpLCBvd25pbmdUeXBlKTsKKyAgICBhZGRJbnN0cnVtZW50ZWRPYmplY3RJbXBsKG9iamVj
dC0+Z2V0KCksIGJ5UG9pbnRlcik7CiB9CiAKIHRlbXBsYXRlIDx0eXBlbmFtZSBUPgotdm9pZCBN
ZW1vcnlJbnN0cnVtZW50YXRpb246OmFkZEluc3RydW1lbnRlZE9iamVjdEltcGwoY29uc3QgUmVm
UHRyPFQ+KiBjb25zdCYgb2JqZWN0LCBPd25pbmdUeXBlIG93bmluZ1R5cGUpCit2b2lkIE1lbW9y
eUluc3RydW1lbnRhdGlvbjo6YWRkSW5zdHJ1bWVudGVkT2JqZWN0SW1wbChjb25zdCBSZWZQdHI8
VD4qIGNvbnN0JiBvYmplY3QsIE93bmluZ1R5cGUpCiB7Ci0gICAgYWRkSW5zdHJ1bWVudGVkT2Jq
ZWN0SW1wbChvYmplY3QtPmdldCgpLCBvd25pbmdUeXBlKTsKKyAgICBhZGRJbnN0cnVtZW50ZWRP
YmplY3RJbXBsKG9iamVjdC0+Z2V0KCksIGJ5UG9pbnRlcik7CiB9CiAKIC8vIExpbmsgdGltZSBn
dWFyZCBmb3Igc3RyaW5nIG1lbWJlcnMuIFRoZXkgcHJvZHVjZSBsaW5rIGVycm9yIGlzIGEgc3Ry
aW5nIGlzIHJlcG9ydGVkIHZpYSBhZGRPYmplY3QuCkBAIC0yNjQsMTEgKzI4MSwxMiBAQCB2b2lk
IE1lbW9yeUluc3RydW1lbnRhdGlvbjo6YWRkTGlzdEhhc2hTZXQoY29uc3QgTGlzdEhhc2hTZXRU
eXBlJiBoYXNoU2V0LCBPYmplYwogfQogCiB0ZW1wbGF0ZSA8dHlwZW5hbWUgVmVjdG9yVHlwZT4K
LXZvaWQgTWVtb3J5SW5zdHJ1bWVudGF0aW9uOjphZGRWZWN0b3IoY29uc3QgVmVjdG9yVHlwZSYg
dmVjdG9yLCBPYmplY3RUeXBlIG9iamVjdFR5cGUsIGJvb2wgY29udGVudE9ubHkpCit2b2lkIE1l
bW9yeUluc3RydW1lbnRhdGlvbjo6YWRkVmVjdG9ySW1wbChjb25zdCBWZWN0b3JUeXBlKiB2ZWN0
b3IsIE9iamVjdFR5cGUgb2JqZWN0VHlwZSwgT3duaW5nVHlwZSBvd25pbmdUeXBlKQogewotICAg
IGlmICghdmVjdG9yLmRhdGEoKSB8fCB2aXNpdGVkKHZlY3Rvci5kYXRhKCkpKQorICAgIGlmICgh
dmVjdG9yIHx8IHZpc2l0ZWQodmVjdG9yKSkKICAgICAgICAgcmV0dXJuOwotICAgIGNvdW50T2Jq
ZWN0U2l6ZShvYmplY3RUeXBlLCBjYWxjdWxhdGVDb250YWluZXJTaXplKHZlY3RvciwgY29udGVu
dE9ubHkpKTsKKyAgICBib29sIGNvbnRlbnRPbmx5ID0gb3duaW5nVHlwZSA9PSBieVJlZmVyZW5j
ZTsKKyAgICBjb3VudE9iamVjdFNpemUob2JqZWN0VHlwZSwgY2FsY3VsYXRlQ29udGFpbmVyU2l6
ZSgqdmVjdG9yLCBjb250ZW50T25seSkpOwogfQogCiB0ZW1wbGF0ZSA8dHlwZW5hbWUgQ29udGFp
bmVyPgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL05vZGUuY3BwIGIvU291cmNlL1dl
YkNvcmUvZG9tL05vZGUuY3BwCmluZGV4IDQ0N2I3NWEyYTZjYTQyZDRkYTkyNjNlZjRhZmE3NGI0
MDE3ODU5YzAuLjdiNTI4ZWM1ZGRiMTExYzg1YjMyOGFlN2U2YTU4YWEwZjBiMDAyOTYgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9k
b20vTm9kZS5jcHAKQEAgLTY3LDYgKzY3LDcgQEAKICNpbmNsdWRlICJLZXlib2FyZEV2ZW50Lmgi
CiAjaW5jbHVkZSAiTGFiZWxzTm9kZUxpc3QuaCIKICNpbmNsdWRlICJMb2dnaW5nLmgiCisjaW5j
bHVkZSAiTWVtb3J5SW5zdHJ1bWVudGF0aW9uLmgiCiAjaW5jbHVkZSAiTW91c2VFdmVudC5oIgog
I2luY2x1ZGUgIk11dGF0aW9uRXZlbnQuaCIKICNpbmNsdWRlICJOYW1lTm9kZUxpc3QuaCIKQEAg
LTI4MjksNiArMjgzMCw4IEBAIHZvaWQgTm9kZTo6cmVwb3J0TWVtb3J5VXNhZ2UoTWVtb3J5T2Jq
ZWN0SW5mbyogbWVtb3J5T2JqZWN0SW5mbykgY29uc3QKICAgICBpbmZvLmFkZEluc3RydW1lbnRl
ZE1lbWJlcihtX2RvY3VtZW50KTsKICAgICBpbmZvLmFkZEluc3RydW1lbnRlZE1lbWJlcihtX25l
eHQpOwogICAgIGluZm8uYWRkSW5zdHJ1bWVudGVkTWVtYmVyKG1fcHJldmlvdXMpOworICAgIGlm
IChtX3JlbmRlcmVyKQorICAgICAgICBpbmZvLmFkZEluc3RydW1lbnRlZE1lbWJlcihtX3JlbmRl
cmVyLT5zdHlsZSgpKTsKIH0KIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvZG9tL05vZGUuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlLmgKaW5k
ZXggYTFmYjE4NGMzMmRmOGM0MmJiNDc5YWU4MmU4YTBlNTU2NTU5MTUzMC4uMTkxZTFiOWFhN2M0
NWY5NzFmZDU5N2NkMTU0MGQ0MjVlZmUwNjRiMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
ZG9tL05vZGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZS5oCkBAIC0yOSw3ICsyOSw2
IEBACiAjaW5jbHVkZSAiRXZlbnRUYXJnZXQuaCIKICNpbmNsdWRlICJLVVJMSGFzaC5oIgogI2lu
Y2x1ZGUgIkxheW91dFR5cGVzLmgiCi0jaW5jbHVkZSAiTWVtb3J5SW5zdHJ1bWVudGF0aW9uLmgi
CiAjaW5jbHVkZSAiTXV0YXRpb25PYnNlcnZlci5oIgogI2luY2x1ZGUgIlJlbmRlclN0eWxlQ29u
c3RhbnRzLmgiCiAjaW5jbHVkZSAiU2NyaXB0V3JhcHBhYmxlLmgiCkBAIC02Niw2ICs2NSw3IEBA
IGNsYXNzIEZyYW1lOwogY2xhc3MgSFRNTElucHV0RWxlbWVudDsKIGNsYXNzIEludFJlY3Q7CiBj
bGFzcyBLZXlib2FyZEV2ZW50OworY2xhc3MgTWVtb3J5T2JqZWN0SW5mbzsKIGNsYXNzIE5TUmVz
b2x2ZXI7CiBjbGFzcyBOYW1lZE5vZGVNYXA7CiBjbGFzcyBOYW1lTm9kZUxpc3Q7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGUuY3BwIGIvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlLmNwcAppbmRleCBhYjAxM2Fm
Yjk5NjNjYzY5NGFjYWJkMjBhNWRjOTMxOGM0NGU2ZTJhLi43MGIzMjBlNmJmN2I4MmFhYTI5MTY4
MzZiMmMyNjMyM2M2YTJlY2QxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
c3R5bGUvUmVuZGVyU3R5bGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHls
ZS9SZW5kZXJTdHlsZS5jcHAKQEAgLTI4LDYgKzI4LDcgQEAKICNpbmNsdWRlICJDU1NQcm9wZXJ0
eU5hbWVzLmgiCiAjaW5jbHVkZSAiQ1NTV3JhcFNoYXBlcy5oIgogI2luY2x1ZGUgIkZvbnRTZWxl
Y3Rvci5oIgorI2luY2x1ZGUgIk1lbW9yeUluc3RydW1lbnRhdGlvbi5oIgogI2luY2x1ZGUgIlF1
b3Rlc0RhdGEuaCIKICNpbmNsdWRlICJSZW5kZXJBcmVuYS5oIgogI2luY2x1ZGUgIlJlbmRlck9i
amVjdC5oIgpAQCAtMTQ4Niw0ICsxNDg3LDI0IEBAIExheW91dEJveEV4dGVudCBSZW5kZXJTdHls
ZTo6aW1hZ2VPdXRzZXRzKGNvbnN0IE5pbmVQaWVjZUltYWdlJiBpbWFnZSkgY29uc3QKICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIE5pbmVQaWVjZUltYWdlOjpjb21wdXRlT3V0c2V0KGltYWdl
Lm91dHNldCgpLmxlZnQoKSwgYm9yZGVyTGVmdFdpZHRoKCkpKTsKIH0KIAordm9pZCBSZW5kZXJT
dHlsZTo6cmVwb3J0TWVtb3J5VXNhZ2UoTWVtb3J5T2JqZWN0SW5mbyogbWVtb3J5T2JqZWN0SW5m
bykgY29uc3QKK3sKKyAgICBNZW1vcnlDbGFzc0luZm88UmVuZGVyU3R5bGU+IGluZm8obWVtb3J5
T2JqZWN0SW5mbywgdGhpcywgTWVtb3J5SW5zdHJ1bWVudGF0aW9uOjpDU1MpOworICAgIGluZm8u
YWRkTWVtYmVyKG1fYm94KTsKKyAgICBpbmZvLmFkZE1lbWJlcih2aXN1YWwpOworICAgIC8vIEZJ
WE1FOiBtX2JhY2tncm91bmQgY29udGFpbnMgUmVmUHRyPFN0eWxlSW1hZ2U+IHRoYXQgbWlnaHQg
bmVlZCB0byBiZSBpbnN0cnVtZW50ZWQuCisgICAgaW5mby5hZGRNZW1iZXIobV9iYWNrZ3JvdW5k
KTsKKyAgICAvLyBGSVhNRTogc3Vycm9uZCBjb250YWlucyBzb21lIGZpZWxkcyBlLmcuIEJvcmRl
ckRhdGEgdGhhdCBtaWdodCBuZWVkIHRvIGJlIGluc3RydW1lbnRlZC4KKyAgICBpbmZvLmFkZE1l
bWJlcihzdXJyb3VuZCk7CisgICAgaW5mby5hZGRJbnN0cnVtZW50ZWRNZW1iZXIocmFyZU5vbklu
aGVyaXRlZERhdGEpOworICAgIGluZm8uYWRkSW5zdHJ1bWVudGVkTWVtYmVyKHJhcmVJbmhlcml0
ZWREYXRhKTsKKyAgICAvLyBGSVhNRTogaW5oZXJpdGVkIGNvbnRhaW5zIFN0eWxlSW1hZ2UgYW5k
IEZvbnQgZmllbGRzIHRoYXQgbWlnaHQgbmVlZCB0byBiZSBpbnN0cnVtZW50ZWQuCisgICAgaW5m
by5hZGRNZW1iZXIoaW5oZXJpdGVkKTsKKyAgICBpZiAobV9jYWNoZWRQc2V1ZG9TdHlsZXMpCisg
ICAgICAgIGluZm8uYWRkVmVjdG9yKG1fY2FjaGVkUHNldWRvU3R5bGVzLmdldCgpKTsKKyNpZiBF
TkFCTEUoU1ZHKQorICAgIGluZm8uYWRkTWVtYmVyKG1fc3ZnU3R5bGUpOworI2VuZGlmCit9CisK
IH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9zdHlsZS9SZW5kZXJTdHlsZS5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxl
L1JlbmRlclN0eWxlLmgKaW5kZXggNTdiMTk1ZjFhMzBkZTkxZTE2YzA4NzhjNTI1Yzg3ZTM4ODc2
ODU5ZC4uODg5OTQ4OTRiNDIxZTA1NmIwNjgwNWYwYjg3ZWFlNWMxYmUyMDFhYSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlLmgKQEAgLTEwNSw2ICsxMDUs
NyBAQCBjbGFzcyBCb3JkZXJEYXRhOwogY2xhc3MgQ291bnRlckNvbnRlbnQ7CiBjbGFzcyBDdXJz
b3JMaXN0OwogY2xhc3MgSW50UmVjdDsKK2NsYXNzIE1lbW9yeU9iamVjdEluZm87CiBjbGFzcyBQ
YWlyOwogY2xhc3MgU2hhZG93RGF0YTsKIGNsYXNzIFN0eWxlSW1hZ2U7CkBAIC0xNTQxLDYgKzE1
NDIsOCBAQCBwdWJsaWM6CiAKICAgICB2b2lkIHNldEhhc0V4cGxpY2l0bHlJbmhlcml0ZWRQcm9w
ZXJ0aWVzKCkgeyBtX2JpdGZpZWxkcy5zZXRFeHBsaWNpdEluaGVyaXRhbmNlKHRydWUpOyB9CiAg
ICAgYm9vbCBoYXNFeHBsaWNpdGx5SW5oZXJpdGVkUHJvcGVydGllcygpIGNvbnN0IHsgcmV0dXJu
IG1fYml0ZmllbGRzLmV4cGxpY2l0SW5oZXJpdGFuY2UoKTsgfQorCisgICAgdm9pZCByZXBvcnRN
ZW1vcnlVc2FnZShNZW1vcnlPYmplY3RJbmZvKikgY29uc3Q7CiAgICAgCiAgICAgLy8gSW5pdGlh
bCB2YWx1ZXMgZm9yIGFsbCB0aGUgcHJvcGVydGllcwogICAgIHN0YXRpYyBFQm9yZGVyQ29sbGFw
c2UgaW5pdGlhbEJvcmRlckNvbGxhcHNlKCkgeyByZXR1cm4gQlNFUEFSQVRFOyB9CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvU3R5bGVSYXJlSW5oZXJpdGVkRGF0
YS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvU3R5bGVSYXJlSW5oZXJpdGVk
RGF0YS5jcHAKaW5kZXggYzIxY2NhY2NiNWE4OWUxZmYwODMyOWY1YWZlNzk5ZjBkMmM0MzExYi4u
ZDkzOWFhZDM0NzIwYzQ2MzZmNzQ3MDgyZjRhZjc0Mjg4ODg5N2UwMCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1N0eWxlUmFyZUluaGVyaXRlZERhdGEuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9TdHlsZVJhcmVJbmhlcml0ZWREYXRh
LmNwcApAQCAtMjMsNiArMjMsNyBAQAogI2luY2x1ZGUgIlN0eWxlUmFyZUluaGVyaXRlZERhdGEu
aCIKIAogI2luY2x1ZGUgIkN1cnNvckxpc3QuaCIKKyNpbmNsdWRlICJNZW1vcnlJbnN0cnVtZW50
YXRpb24uaCIKICNpbmNsdWRlICJRdW90ZXNEYXRhLmgiCiAjaW5jbHVkZSAiUmVuZGVyU3R5bGUu
aCIKICNpbmNsdWRlICJSZW5kZXJTdHlsZUNvbnN0YW50cy5oIgpAQCAtMjYxLDQgKzI2MiwyMCBA
QCBib29sIFN0eWxlUmFyZUluaGVyaXRlZERhdGE6OnNoYWRvd0RhdGFFcXVpdmFsZW50KGNvbnN0
IFN0eWxlUmFyZUluaGVyaXRlZERhdGEmCiAgICAgcmV0dXJuIHRydWU7CiB9CiAKK3ZvaWQgU3R5
bGVSYXJlSW5oZXJpdGVkRGF0YTo6cmVwb3J0TWVtb3J5VXNhZ2UoTWVtb3J5T2JqZWN0SW5mbyog
bWVtb3J5T2JqZWN0SW5mbykgY29uc3QKK3sKKyAgICBNZW1vcnlDbGFzc0luZm88U3R5bGVSYXJl
SW5oZXJpdGVkRGF0YT4gaW5mbyhtZW1vcnlPYmplY3RJbmZvLCB0aGlzLCBNZW1vcnlJbnN0cnVt
ZW50YXRpb246OkNTUyk7CisgICAgaW5mby5hZGRNZW1iZXIodGV4dFNoYWRvdyk7CisgICAgaW5m
by5hZGRTdHJpbmcoaGlnaGxpZ2h0KTsKKyAgICBpbmZvLmFkZE1lbWJlcihjdXJzb3JEYXRhKTsK
KyAgICBpbmZvLmFkZFN0cmluZyhoeXBoZW5hdGlvblN0cmluZyk7CisgICAgaW5mby5hZGRTdHJp
bmcobG9jYWxlKTsKKyAgICBpbmZvLmFkZFN0cmluZyh0ZXh0RW1waGFzaXNDdXN0b21NYXJrKTsK
KyAgICBpbmZvLmFkZE1lbWJlcihxdW90ZXMpOworICAgIGluZm8uYWRkU3RyaW5nKG1fbGluZUdy
aWQpOworI2lmIEVOQUJMRShDU1NfVkFSSUFCTEVTKQorICAgIGluZm8uYWRkTWVtYmVyKG1fdmFy
aWFibGVzKTsKKyNlbmRpZgorfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvU3R5bGVSYXJlSW5oZXJpdGVkRGF0YS5o
IGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1N0eWxlUmFyZUluaGVyaXRlZERhdGEu
aAppbmRleCBiMzA5ODJkZjk3YjFjZTI2MmVkNzJkZGU3MDE3ZmU4ZjhlNWU1YWMwLi5iYjQzM2Vk
Mjc2Y2FkYjUyODQ4NWEzM2RmNDQzYjFmYWI1ZGQ1YmE4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvc3R5bGUvU3R5bGVSYXJlSW5oZXJpdGVkRGF0YS5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9TdHlsZVJhcmVJbmhlcml0ZWREYXRhLmgKQEAgLTM5
LDYgKzM5LDcgQEAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgQ3Vyc29yTGlzdDsKK2Ns
YXNzIE1lbW9yeU9iamVjdEluZm87CiBjbGFzcyBRdW90ZXNEYXRhOwogY2xhc3MgU2hhZG93RGF0
YTsKIApAQCAtNTgsNiArNTksOCBAQCBwdWJsaWM6CiAgICAgfQogICAgIGJvb2wgc2hhZG93RGF0
YUVxdWl2YWxlbnQoY29uc3QgU3R5bGVSYXJlSW5oZXJpdGVkRGF0YSYpIGNvbnN0OwogCisgICAg
dm9pZCByZXBvcnRNZW1vcnlVc2FnZShNZW1vcnlPYmplY3RJbmZvKikgY29uc3Q7CisKICAgICBD
b2xvciB0ZXh0U3Ryb2tlQ29sb3I7CiAgICAgZmxvYXQgdGV4dFN0cm9rZVdpZHRoOwogICAgIENv
bG9yIHRleHRGaWxsQ29sb3I7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
c3R5bGUvU3R5bGVSYXJlTm9uSW5oZXJpdGVkRGF0YS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvc3R5bGUvU3R5bGVSYXJlTm9uSW5oZXJpdGVkRGF0YS5jcHAKaW5kZXggMjJiMzI3MmU4
YzM3ZDIxZWUzNjQ5YzBhNDVhN2Q0M2Q1MTIxMDQ0ZC4uMjFkN2VjYjU3MzUwZDE3NjAwNDYyYzJk
Y2UwODM4YjgzMjQ5YTNiMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0
eWxlL1N0eWxlUmFyZU5vbkluaGVyaXRlZERhdGEuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9zdHlsZS9TdHlsZVJhcmVOb25Jbmhlcml0ZWREYXRhLmNwcApAQCAtMjMsNiArMjMs
NyBAQAogI2luY2x1ZGUgIlN0eWxlUmFyZU5vbkluaGVyaXRlZERhdGEuaCIKIAogI2luY2x1ZGUg
IkNvbnRlbnREYXRhLmgiCisjaW5jbHVkZSAiTWVtb3J5SW5zdHJ1bWVudGF0aW9uLmgiCiAjaW5j
bHVkZSAiUmVuZGVyQ291bnRlci5oIgogI2luY2x1ZGUgIlJlbmRlclN0eWxlLmgiCiAjaW5jbHVk
ZSAiU2hhZG93RGF0YS5oIgpAQCAtMjg2LDQgKzI4NywzMiBAQCBib29sIFN0eWxlUmFyZU5vbklu
aGVyaXRlZERhdGE6OnRyYW5zaXRpb25EYXRhRXF1aXZhbGVudChjb25zdCBTdHlsZVJhcmVOb25J
bmhlcgogICAgIHJldHVybiB0cnVlOwogfQogCit2b2lkIFN0eWxlUmFyZU5vbkluaGVyaXRlZERh
dGE6OnJlcG9ydE1lbW9yeVVzYWdlKE1lbW9yeU9iamVjdEluZm8qIG1lbW9yeU9iamVjdEluZm8p
IGNvbnN0Cit7CisgICAgTWVtb3J5Q2xhc3NJbmZvPFN0eWxlUmFyZU5vbkluaGVyaXRlZERhdGE+
IGluZm8obWVtb3J5T2JqZWN0SW5mbywgdGhpcywgTWVtb3J5SW5zdHJ1bWVudGF0aW9uOjpDU1Mp
OworI2lmIEVOQUJMRShEQVNIQk9BUkRfU1VQUE9SVCkKKyAgICBpbmZvLmFkZFZlY3RvcihtX2Rh
c2hib2FyZFJlZ2lvbnMpOworI2VuZGlmCisgICAgaW5mby5hZGRNZW1iZXIobV9kZXByZWNhdGVk
RmxleGlibGVCb3gpOworICAgIGluZm8uYWRkTWVtYmVyKG1fZmxleGlibGVCb3gpOworICAgIGlu
Zm8uYWRkTWVtYmVyKG1fbWFycXVlZSk7CisgICAgaW5mby5hZGRNZW1iZXIobV9tdWx0aUNvbCk7
CisgICAgaW5mby5hZGRNZW1iZXIobV90cmFuc2Zvcm0pOworI2lmIEVOQUJMRShDU1NfRklMVEVS
UykKKyAgICBpbmZvLmFkZE1lbWJlcihtX2ZpbHRlcik7CisjZW5kaWYKKyAgICBpbmZvLmFkZE1l
bWJlcihtX2dyaWQpOworICAgIGluZm8uYWRkTWVtYmVyKG1fZ3JpZEl0ZW0pOworICAgIGluZm8u
YWRkTWVtYmVyKG1fY29udGVudCk7CisgICAgaW5mby5hZGRNZW1iZXIobV9jb3VudGVyRGlyZWN0
aXZlcyk7CisgICAgaW5mby5hZGRNZW1iZXIobV9ib3hTaGFkb3cpOworICAgIGluZm8uYWRkTWVt
YmVyKG1fYm94UmVmbGVjdCk7CisgICAgaW5mby5hZGRNZW1iZXIobV9hbmltYXRpb25zKTsKKyAg
ICBpbmZvLmFkZE1lbWJlcihtX3RyYW5zaXRpb25zKTsKKyAgICBpbmZvLmFkZE1lbWJlcihtX3dy
YXBTaGFwZUluc2lkZSk7CisgICAgaW5mby5hZGRNZW1iZXIobV93cmFwU2hhcGVPdXRzaWRlKTsK
KyAgICBpbmZvLmFkZFN0cmluZyhtX2Zsb3dUaHJlYWQpOworICAgIGluZm8uYWRkU3RyaW5nKG1f
cmVnaW9uVGhyZWFkKTsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1N0eWxlUmFyZU5vbkluaGVyaXRlZERhdGEu
aCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9TdHlsZVJhcmVOb25Jbmhlcml0ZWRE
YXRhLmgKaW5kZXggODYyYzYxZDdhZjhhNTc5Y2E5NjA0MmFhYTQ0OGNiOWNjYzRhNGNlZi4uZGNl
NWRmNmVmYjBjZWMwNDc0ZmVhOGE4YTViNDI1YWJhN2IzZTVkYSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1N0eWxlUmFyZU5vbkluaGVyaXRlZERhdGEuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvU3R5bGVSYXJlTm9uSW5oZXJpdGVkRGF0
YS5oCkBAIC0zOSw2ICszOSw3IEBACiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIEFuaW1h
dGlvbkxpc3Q7CitjbGFzcyBNZW1vcnlPYmplY3RJbmZvOwogY2xhc3MgU2hhZG93RGF0YTsKIGNs
YXNzIFN0eWxlRGVwcmVjYXRlZEZsZXhpYmxlQm94RGF0YTsKICNpZiBFTkFCTEUoQ1NTX0ZJTFRF
UlMpCkBAIC04OSw2ICs5MCw4IEBAIHB1YmxpYzoKICAgICBib29sIGFuaW1hdGlvbkRhdGFFcXVp
dmFsZW50KGNvbnN0IFN0eWxlUmFyZU5vbkluaGVyaXRlZERhdGEmKSBjb25zdDsKICAgICBib29s
IHRyYW5zaXRpb25EYXRhRXF1aXZhbGVudChjb25zdCBTdHlsZVJhcmVOb25Jbmhlcml0ZWREYXRh
JikgY29uc3Q7CiAKKyAgICB2b2lkIHJlcG9ydE1lbW9yeVVzYWdlKE1lbW9yeU9iamVjdEluZm8q
KSBjb25zdDsKKwogICAgIGZsb2F0IG9wYWNpdHk7IC8vIFdoZXRoZXIgb3Igbm90IHdlJ3JlIHRy
YW5zcGFyZW50LgogCiAgICAgZmxvYXQgbV9hc3BlY3RSYXRpb0Rlbm9taW5hdG9yOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>155804</attachid>
            <date>2012-08-01 07:02:38 -0700</date>
            <delta_ts>2012-08-01 07:05:46 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-91759-20120801180219.patch</filename>
            <type>text/plain</type>
            <size>19639</size>
            <attacher name="Alexei Filippov">alph</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTI0MzMyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggY2ZjNTBkYTYwMTVlZThm
NjJkNTNmMGFlMzAwYzFmNWVhNjgzZjQ2Zi4uNWY0YjE1NmFkZDM0MWZkNmJhYzFmNDFjNzI0OWU0
ZGYxMDc5OTAzMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDU2IEBACiAyMDEyLTA4LTAxICBBbGV4
ZWkgRmlsaXBwb3YgIDxhbGV4ZWlmQGNocm9taXVtLm9yZz4KIAorICAgICAgICBXZWIgSW5zcGVj
dG9yOiBjb3VudCBSZW5kZXJTdHlsZSBvYmplY3RzIGluIHRoZSBuYXRpdmUgbWVtb3J5IHByb2Zp
bGVyCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05MTc1
OQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoZSBw
YXRjaCBhZGRzIGluc3RydW1lbnRhdGlvbiB0byB0aGUgZm9sbG93aW5nIGNsYXNzZXM6CisgICAg
ICAgICAgLSBSZW5kZXJTdHlsZQorICAgICAgICAgIC0gU3R5bGVSYXJlSW5oZXJpdGVkRGF0YQor
ICAgICAgICAgIC0gU3R5bGVSYXJlTm9uSW5oZXJpdGVkRGF0YQorCisgICAgICAgIEJlc2lkZXMg
dGhhdCBpdCBhZGRzIHN1cHBvcnQgZm9yIFZlY3RvciogcHJvY2Vzc2luZyBpbiBNZW1vcnlJbnN0
cnVtZW50YXRpb24KKyAgICAgICAgYW5kIGZpeGVzIHdyb25nIG93bmluZyB0eXBlIHBhc3NlZCBm
b3IgT3duUHRyIGFuZCBSZWZQdHIgd3JhcHBlZCBtZW1iZXJzLgorCisgICAgICAgICogYmluZGlu
Z3MvanMvU2NyaXB0V3JhcHBhYmxlLmg6CisgICAgICAgICogYmluZGluZ3MvdjgvU2NyaXB0V3Jh
cHBhYmxlLmg6CisgICAgICAgICogY3NzL1N0eWxlUHJvcGVydHlTZXQuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6U3R5bGVQcm9wZXJ0eVNldDo6cmVwb3J0TWVtb3J5VXNhZ2UpOgorICAgICAgICAq
IGRvbS9NZW1vcnlJbnN0cnVtZW50YXRpb24uaDoKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAg
ICAoV2ViQ29yZTo6TWVtb3J5SW5zdHJ1bWVudGF0aW9uOjphZGRWZWN0b3IpOgorICAgICAgICAo
V2ViQ29yZTo6TWVtb3J5SW5zdHJ1bWVudGF0aW9uOjpPd25pbmdUcmFpdHM6OmFkZE9iamVjdCk6
CisgICAgICAgIChXZWJDb3JlOjpNZW1vcnlJbnN0cnVtZW50YXRpb246Ok93bmluZ1RyYWl0czo6
YWRkVmVjdG9yKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lbW9yeUluc3RydW1lbnRhdGlvbjo6YWRk
T2JqZWN0SW1wbCk6CisgICAgICAgIChNZW1vcnlJbnN0cnVtZW50YXRpb24pOgorICAgICAgICAo
V2ViQ29yZTo6TWVtb3J5Q2xhc3NJbmZvOjphZGRWZWN0b3IpOgorICAgICAgICAoV2ViQ29yZTo6
TWVtb3J5SW5zdHJ1bWVudGF0aW9uOjphZGRJbnN0cnVtZW50ZWRPYmplY3RJbXBsKToKKyAgICAg
ICAgKFdlYkNvcmU6Ok1lbW9yeUluc3RydW1lbnRhdGlvbjo6YWRkVmVjdG9ySW1wbCk6CisgICAg
ICAgICogZG9tL05vZGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Tm9kZTo6cmVwb3J0TWVtb3J5
VXNhZ2UpOgorICAgICAgICAqIGRvbS9Ob2RlLmg6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAg
ICAgKiByZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
UmVuZGVyU3R5bGU6OnJlcG9ydE1lbW9yeVVzYWdlKToKKyAgICAgICAgKFdlYkNvcmUpOgorICAg
ICAgICAqIHJlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZS5oOgorICAgICAgICAoV2ViQ29yZSk6
CisgICAgICAgICogcmVuZGVyaW5nL3N0eWxlL1N0eWxlUmFyZUluaGVyaXRlZERhdGEuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6U3R5bGVSYXJlSW5oZXJpdGVkRGF0YTo6cmVwb3J0TWVtb3J5VXNh
Z2UpOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgICogcmVuZGVyaW5nL3N0eWxlL1N0eWxl
UmFyZUluaGVyaXRlZERhdGEuaDoKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoU3R5bGVS
YXJlSW5oZXJpdGVkRGF0YSk6CisgICAgICAgICogcmVuZGVyaW5nL3N0eWxlL1N0eWxlUmFyZU5v
bkluaGVyaXRlZERhdGEuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U3R5bGVSYXJlTm9uSW5oZXJp
dGVkRGF0YTo6cmVwb3J0TWVtb3J5VXNhZ2UpOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAg
ICogcmVuZGVyaW5nL3N0eWxlL1N0eWxlUmFyZU5vbkluaGVyaXRlZERhdGEuaDoKKyAgICAgICAg
KFdlYkNvcmUpOgorICAgICAgICAoU3R5bGVSYXJlTm9uSW5oZXJpdGVkRGF0YSk6CisKKzIwMTIt
MDgtMDEgIEFsZXhlaSBGaWxpcHBvdiAgPGFsZXhlaWZAY2hyb21pdW0ub3JnPgorCiAgICAgICAg
IFdlYiBJbnNwZWN0b3I6IGNvdW50IERPTSBzdG9yYWdlIGNhY2hlIG1lbW9yeSBmb3IgbmF0aXZl
IHNuYXBzaG90CiAgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD05MTYxNwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9TY3JpcHRX
cmFwcGFibGUuaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1NjcmlwdFdyYXBwYWJsZS5o
CmluZGV4IDNjYjVkODE2YzExMWI4MDdmYTA2OTdhNjdjZDlmOWE5NjQyZDA1ZTcuLjBjZjJkN2Ex
NmM0ZWUwOGRjNDUzMDQ5MmUxMjQzMTQwZThmOWI1OTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL2pzL1NjcmlwdFdyYXBwYWJsZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL2pzL1NjcmlwdFdyYXBwYWJsZS5oCkBAIC0zMiw2ICszMiw3IEBACiAjZGVmaW5lIFNj
cmlwdFdyYXBwYWJsZV9oCiAKICNpbmNsdWRlICJKU0RPTVdyYXBwZXIuaCIKKyNpbmNsdWRlICJN
ZW1vcnlJbnN0cnVtZW50YXRpb24uaCIKICNpbmNsdWRlIDxoZWFwL1dlYWsuaD4KIAogbmFtZXNw
YWNlIFdlYkNvcmUgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvU2Ny
aXB0V3JhcHBhYmxlLmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9TY3JpcHRXcmFwcGFi
bGUuaAppbmRleCBlZjJmNzYxOWYyNDUxMTA2NTdjN2FlMGE1YmEwMmVkYzA0ZDZmZjY5Li42NGE5
MDUzOTI4YTYwZTE1MDgyMTY0NzYwNDI4NTZiMmE3YzNkMDMwIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy92OC9TY3JpcHRXcmFwcGFibGUuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy92OC9TY3JpcHRXcmFwcGFibGUuaApAQCAtMzEsNiArMzEsNyBAQAogI2lmbmRl
ZiBTY3JpcHRXcmFwcGFibGVfaAogI2RlZmluZSBTY3JpcHRXcmFwcGFibGVfaAogCisjaW5jbHVk
ZSAiTWVtb3J5SW5zdHJ1bWVudGF0aW9uLmgiCiAjaW5jbHVkZSA8djguaD4KIAogbmFtZXNwYWNl
IFdlYkNvcmUgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL1N0eWxlUHJvcGVydHlT
ZXQuY3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL1N0eWxlUHJvcGVydHlTZXQuY3BwCmluZGV4IDc5
YWIwNDMzN2NhZTY2ZjE1ODBiNzY0MTc4ODNjY2M2NDNjY2Y0MTEuLmE3Njc0M2IwZTUzM2Q4MGIy
ZWUyNzUzNjE3MDA5ODE4ZWUyYWI0NmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9T
dHlsZVByb3BlcnR5U2V0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVQcm9wZXJ0
eVNldC5jcHAKQEAgLTEwNzksNyArMTA3OSw3IEBAIHZvaWQgU3R5bGVQcm9wZXJ0eVNldDo6cmVw
b3J0TWVtb3J5VXNhZ2UoTWVtb3J5T2JqZWN0SW5mbyogbWVtb3J5T2JqZWN0SW5mbykgY29uCiB7
CiAgICAgTWVtb3J5Q2xhc3NJbmZvPFN0eWxlUHJvcGVydHlTZXQ+IGluZm8obWVtb3J5T2JqZWN0
SW5mbywgdGhpcywgTWVtb3J5SW5zdHJ1bWVudGF0aW9uOjpDU1MpOwogICAgIGlmIChtX2lzTXV0
YWJsZSkKLSAgICAgICAgaW5mby5hZGRWZWN0b3JQdHIobV9tdXRhYmxlUHJvcGVydHlWZWN0b3Ip
OworICAgICAgICBpbmZvLmFkZFZlY3RvcihtX211dGFibGVQcm9wZXJ0eVZlY3Rvcik7CiAgICAg
ZWxzZQogICAgICAgICBpbmZvLmFkZFJhd0J1ZmZlcihtX3Byb3BlcnRpZXMsIG1fYXJyYXlTaXpl
ICogc2l6ZW9mKENTU1Byb3BlcnR5KSk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9k
b20vTWVtb3J5SW5zdHJ1bWVudGF0aW9uLmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vTWVtb3J5SW5z
dHJ1bWVudGF0aW9uLmgKaW5kZXggMTg5ZDI0OWQ2MGRmOTQ2ZWIwNzYyZTljMjBmYWM0MmZhMTEz
ZjBmNC4uZDA3ODgzYzAxNTAyMmM1OTQyZDkyZWNmZTEyMWIyMTVkNDdmZDQ4MyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvZG9tL01lbW9yeUluc3RydW1lbnRhdGlvbi5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2RvbS9NZW1vcnlJbnN0cnVtZW50YXRpb24uaApAQCAtMzksNiArMzksNyBAQAog
CiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKK3RlbXBsYXRlIDx0eXBlbmFtZSBUPiBjbGFzcyBEYXRh
UmVmOwogY2xhc3MgTWVtb3J5T2JqZWN0SW5mbzsKIAogY2xhc3MgTWVtb3J5SW5zdHJ1bWVudGF0
aW9uIHsKQEAgLTkyLDcgKzkzLDEwIEBAIHByaXZhdGU6CiAgICAgdGVtcGxhdGUgPHR5cGVuYW1l
IEhhc2hTZXRUeXBlPiB2b2lkIGFkZEhhc2hTZXQoY29uc3QgSGFzaFNldFR5cGUmLCBPYmplY3RU
eXBlLCBib29sIGNvbnRlbnRPbmx5ID0gZmFsc2UpOwogICAgIHRlbXBsYXRlIDx0eXBlbmFtZSBD
b2xsZWN0aW9uVHlwZT4gdm9pZCBhZGRJbnN0cnVtZW50ZWRDb2xsZWN0aW9uKGNvbnN0IENvbGxl
Y3Rpb25UeXBlJiwgT2JqZWN0VHlwZSwgYm9vbCBjb250ZW50T25seSA9IGZhbHNlKTsKICAgICB0
ZW1wbGF0ZSA8dHlwZW5hbWUgTGlzdEhhc2hTZXRUeXBlPiB2b2lkIGFkZExpc3RIYXNoU2V0KGNv
bnN0IExpc3RIYXNoU2V0VHlwZSYsIE9iamVjdFR5cGUsIGJvb2wgY29udGVudE9ubHkgPSBmYWxz
ZSk7Ci0gICAgdGVtcGxhdGUgPHR5cGVuYW1lIFZlY3RvclR5cGU+IHZvaWQgYWRkVmVjdG9yKGNv
bnN0IFZlY3RvclR5cGUmLCBPYmplY3RUeXBlLCBib29sIGNvbnRlbnRPbmx5ID0gZmFsc2UpOwor
ICAgIHRlbXBsYXRlIDx0eXBlbmFtZSBWZWN0b3JUeXBlPiB2b2lkIGFkZFZlY3Rvcihjb25zdCBW
ZWN0b3JUeXBlJiB0LCBPYmplY3RUeXBlIG9iamVjdFR5cGUpCisgICAgeworICAgICAgICBPd25p
bmdUcmFpdHM8VmVjdG9yVHlwZT46OmFkZFZlY3Rvcih0aGlzLCB0LCBvYmplY3RUeXBlKTsKKyAg
ICB9CiAgICAgdm9pZCBhZGRSYXdCdWZmZXIoY29uc3Qgdm9pZCogY29uc3QmIGJ1ZmZlciwgT2Jq
ZWN0VHlwZSBvYmplY3RUeXBlLCBzaXplX3Qgc2l6ZSkKICAgICB7CiAgICAgICAgIGlmICghYnVm
ZmVyIHx8IHZpc2l0ZWQoYnVmZmVyKSkKQEAgLTEwOCwyMCArMTEyLDI4IEBAIHByaXZhdGU6CiAg
ICAgdGVtcGxhdGUgPHR5cGVuYW1lIFQ+CiAgICAgc3RydWN0IE93bmluZ1RyYWl0cyB7IC8vIERl
ZmF1bHQgYnlSZWZlcmVuY2UgaW1wbGVtZW50YXRpb24uCiAgICAgICAgIHN0YXRpYyB2b2lkIGFk
ZEluc3RydW1lbnRlZE9iamVjdChNZW1vcnlJbnN0cnVtZW50YXRpb24qIGluc3RydW1lbnRhdGlv
biwgY29uc3QgVCYgdCkgeyBpbnN0cnVtZW50YXRpb24tPmFkZEluc3RydW1lbnRlZE9iamVjdElt
cGwoJnQsIGJ5UmVmZXJlbmNlKTsgfQotICAgICAgICBzdGF0aWMgdm9pZCBhZGRPYmplY3QoTWVt
b3J5SW5zdHJ1bWVudGF0aW9uKiBpbnN0cnVtZW50YXRpb24sIGNvbnN0IFQmIHQsIE1lbW9yeUlu
c3RydW1lbnRhdGlvbjo6T2JqZWN0VHlwZSBvYmplY3RUeXBlKSB7IGluc3RydW1lbnRhdGlvbi0+
YWRkT2JqZWN0SW1wbCgmdCwgb2JqZWN0VHlwZSwgYnlSZWZlcmVuY2UpOyB9CisgICAgICAgIHN0
YXRpYyB2b2lkIGFkZE9iamVjdChNZW1vcnlJbnN0cnVtZW50YXRpb24qIGluc3RydW1lbnRhdGlv
biwgY29uc3QgVCYgdCwgT2JqZWN0VHlwZSBvYmplY3RUeXBlKSB7IGluc3RydW1lbnRhdGlvbi0+
YWRkT2JqZWN0SW1wbCgmdCwgb2JqZWN0VHlwZSwgYnlSZWZlcmVuY2UpOyB9CisgICAgICAgIHN0
YXRpYyB2b2lkIGFkZFZlY3RvcihNZW1vcnlJbnN0cnVtZW50YXRpb24qIGluc3RydW1lbnRhdGlv
biwgY29uc3QgVCYgdCwgT2JqZWN0VHlwZSBvYmplY3RUeXBlKSB7IGluc3RydW1lbnRhdGlvbi0+
YWRkVmVjdG9ySW1wbCgmdCwgb2JqZWN0VHlwZSwgYnlSZWZlcmVuY2UpOyB9CiAgICAgfTsKIAog
ICAgIHRlbXBsYXRlIDx0eXBlbmFtZSBUPgogICAgIHN0cnVjdCBPd25pbmdUcmFpdHM8VCo+IHsg
Ly8gQ3VzdG9tIGJ5UG9pbnRlciBpbXBsZW1lbnRhdGlvbi4KICAgICAgICAgc3RhdGljIHZvaWQg
YWRkSW5zdHJ1bWVudGVkT2JqZWN0KE1lbW9yeUluc3RydW1lbnRhdGlvbiogaW5zdHJ1bWVudGF0
aW9uLCBjb25zdCBUKiBjb25zdCYgdCkgeyBpbnN0cnVtZW50YXRpb24tPmFkZEluc3RydW1lbnRl
ZE9iamVjdEltcGwodCwgYnlQb2ludGVyKTsgfQotICAgICAgICBzdGF0aWMgdm9pZCBhZGRPYmpl
Y3QoTWVtb3J5SW5zdHJ1bWVudGF0aW9uKiBpbnN0cnVtZW50YXRpb24sIGNvbnN0IFQqIGNvbnN0
JiB0LCBNZW1vcnlJbnN0cnVtZW50YXRpb246Ok9iamVjdFR5cGUgb2JqZWN0VHlwZSkgeyBpbnN0
cnVtZW50YXRpb24tPmFkZE9iamVjdEltcGwodCwgb2JqZWN0VHlwZSwgYnlQb2ludGVyKTsgfQor
ICAgICAgICBzdGF0aWMgdm9pZCBhZGRPYmplY3QoTWVtb3J5SW5zdHJ1bWVudGF0aW9uKiBpbnN0
cnVtZW50YXRpb24sIGNvbnN0IFQqIGNvbnN0JiB0LCBPYmplY3RUeXBlIG9iamVjdFR5cGUpIHsg
aW5zdHJ1bWVudGF0aW9uLT5hZGRPYmplY3RJbXBsKHQsIG9iamVjdFR5cGUsIGJ5UG9pbnRlcik7
IH0KKyAgICAgICAgc3RhdGljIHZvaWQgYWRkVmVjdG9yKE1lbW9yeUluc3RydW1lbnRhdGlvbiog
aW5zdHJ1bWVudGF0aW9uLCBjb25zdCBUKiBjb25zdCYgdCwgT2JqZWN0VHlwZSBvYmplY3RUeXBl
KSB7IGluc3RydW1lbnRhdGlvbi0+YWRkVmVjdG9ySW1wbCh0LCBvYmplY3RUeXBlLCBieVBvaW50
ZXIpOyB9CiAgICAgfTsKIAogICAgIHRlbXBsYXRlIDx0eXBlbmFtZSBUPiB2b2lkIGFkZEluc3Ry
dW1lbnRlZE9iamVjdEltcGwoY29uc3QgVCogY29uc3QmLCBPd25pbmdUeXBlKTsKKyAgICB0ZW1w
bGF0ZSA8dHlwZW5hbWUgVD4gdm9pZCBhZGRJbnN0cnVtZW50ZWRPYmplY3RJbXBsKGNvbnN0IERh
dGFSZWY8VD4qIGNvbnN0JiwgT3duaW5nVHlwZSk7CiAgICAgdGVtcGxhdGUgPHR5cGVuYW1lIFQ+
IHZvaWQgYWRkSW5zdHJ1bWVudGVkT2JqZWN0SW1wbChjb25zdCBPd25QdHI8VD4qIGNvbnN0Jiwg
T3duaW5nVHlwZSk7CiAgICAgdGVtcGxhdGUgPHR5cGVuYW1lIFQ+IHZvaWQgYWRkSW5zdHJ1bWVu
dGVkT2JqZWN0SW1wbChjb25zdCBSZWZQdHI8VD4qIGNvbnN0JiwgT3duaW5nVHlwZSk7CiAKICAg
ICB0ZW1wbGF0ZSA8dHlwZW5hbWUgVD4gdm9pZCBhZGRPYmplY3RJbXBsKGNvbnN0IFQqIGNvbnN0
JiwgT2JqZWN0VHlwZSwgT3duaW5nVHlwZSk7CisgICAgdGVtcGxhdGUgPHR5cGVuYW1lIFQ+IHZv
aWQgYWRkT2JqZWN0SW1wbChjb25zdCBEYXRhUmVmPFQ+KiBjb25zdCYgb2JqZWN0LCBPYmplY3RU
eXBlIG9iamVjdFR5cGUsIE93bmluZ1R5cGUpIHsgYWRkT2JqZWN0SW1wbChvYmplY3QtPmdldCgp
LCBvYmplY3RUeXBlLCBieVBvaW50ZXIpOyB9CisgICAgdGVtcGxhdGUgPHR5cGVuYW1lIFQ+IHZv
aWQgYWRkT2JqZWN0SW1wbChjb25zdCBPd25QdHI8VD4qIGNvbnN0JiBvYmplY3QsIE9iamVjdFR5
cGUgb2JqZWN0VHlwZSwgT3duaW5nVHlwZSkgeyBhZGRPYmplY3RJbXBsKG9iamVjdC0+Z2V0KCks
IG9iamVjdFR5cGUsIGJ5UG9pbnRlcik7IH0KKyAgICB0ZW1wbGF0ZSA8dHlwZW5hbWUgVD4gdm9p
ZCBhZGRPYmplY3RJbXBsKGNvbnN0IFJlZlB0cjxUPiogY29uc3QmIG9iamVjdCwgT2JqZWN0VHlw
ZSBvYmplY3RUeXBlLCBPd25pbmdUeXBlKSB7IGFkZE9iamVjdEltcGwob2JqZWN0LT5nZXQoKSwg
b2JqZWN0VHlwZSwgYnlQb2ludGVyKTsgfQorCisgICAgdGVtcGxhdGUgPHR5cGVuYW1lIFQ+IHZv
aWQgYWRkVmVjdG9ySW1wbChjb25zdCBUKiwgT2JqZWN0VHlwZSwgT3duaW5nVHlwZSk7CiB9Owog
CiBjbGFzcyBNZW1vcnlPYmplY3RJbmZvIHsKQEAgLTE3Niw4ICsxODgsNyBAQCBwdWJsaWM6CiAg
ICAgdGVtcGxhdGUgPHR5cGVuYW1lIFZlY3RvclR5cGU+IHZvaWQgYWRkSW5zdHJ1bWVudGVkVmVj
dG9yUHRyKGNvbnN0IE93blB0cjxWZWN0b3JUeXBlPiYgdmVjdG9yKSB7IG1fbWVtb3J5SW5zdHJ1
bWVudGF0aW9uLT5hZGRJbnN0cnVtZW50ZWRDb2xsZWN0aW9uKCp2ZWN0b3IsIG1fb2JqZWN0VHlw
ZSwgZmFsc2UpOyB9CiAgICAgdGVtcGxhdGUgPHR5cGVuYW1lIFZlY3RvclR5cGU+IHZvaWQgYWRk
SW5zdHJ1bWVudGVkVmVjdG9yUHRyKGNvbnN0IFZlY3RvclR5cGUqIGNvbnN0JiB2ZWN0b3IpIHsg
bV9tZW1vcnlJbnN0cnVtZW50YXRpb24tPmFkZEluc3RydW1lbnRlZENvbGxlY3Rpb24oKnZlY3Rv
ciwgbV9vYmplY3RUeXBlLCBmYWxzZSk7IH0KICAgICB0ZW1wbGF0ZSA8dHlwZW5hbWUgTGlzdEhh
c2hTZXRUeXBlPiB2b2lkIGFkZExpc3RIYXNoU2V0KGNvbnN0IExpc3RIYXNoU2V0VHlwZSYgc2V0
KSB7IG1fbWVtb3J5SW5zdHJ1bWVudGF0aW9uLT5hZGRMaXN0SGFzaFNldChzZXQsIG1fb2JqZWN0
VHlwZSwgdHJ1ZSk7IH0KLSAgICB0ZW1wbGF0ZSA8dHlwZW5hbWUgVmVjdG9yVHlwZT4gdm9pZCBh
ZGRWZWN0b3IoY29uc3QgVmVjdG9yVHlwZSYgdmVjdG9yKSB7IG1fbWVtb3J5SW5zdHJ1bWVudGF0
aW9uLT5hZGRWZWN0b3IodmVjdG9yLCBtX29iamVjdFR5cGUsIHRydWUpOyB9Ci0gICAgdGVtcGxh
dGUgPHR5cGVuYW1lIFZlY3RvclR5cGU+IHZvaWQgYWRkVmVjdG9yUHRyKGNvbnN0IFZlY3RvclR5
cGUqIGNvbnN0IHZlY3RvcikgeyBtX21lbW9yeUluc3RydW1lbnRhdGlvbi0+YWRkVmVjdG9yKCp2
ZWN0b3IsIG1fb2JqZWN0VHlwZSwgZmFsc2UpOyB9CisgICAgdGVtcGxhdGUgPHR5cGVuYW1lIFZl
Y3RvclR5cGU+IHZvaWQgYWRkVmVjdG9yKGNvbnN0IFZlY3RvclR5cGUmIHZlY3RvcikgeyBtX21l
bW9yeUluc3RydW1lbnRhdGlvbi0+YWRkVmVjdG9yKHZlY3RvciwgbV9vYmplY3RUeXBlKTsgfQog
ICAgIHZvaWQgYWRkUmF3QnVmZmVyKGNvbnN0IHZvaWQqIGNvbnN0JiBidWZmZXIsIHNpemVfdCBz
aXplKSB7IG1fbWVtb3J5SW5zdHJ1bWVudGF0aW9uLT5hZGRSYXdCdWZmZXIoYnVmZmVyLCBtX29i
amVjdFR5cGUsIHNpemUpOyB9CiAKICAgICB2b2lkIGFkZFN0cmluZyhjb25zdCBTdHJpbmcmIHN0
cmluZykgeyBtX21lbW9yeUluc3RydW1lbnRhdGlvbi0+YWRkU3RyaW5nKHN0cmluZywgbV9vYmpl
Y3RUeXBlKTsgfQpAQCAtMjAyLDE1ICsyMTMsMjEgQEAgdm9pZCBNZW1vcnlJbnN0cnVtZW50YXRp
b246OmFkZEluc3RydW1lbnRlZE9iamVjdEltcGwoY29uc3QgVCogY29uc3QmIG9iamVjdCwgT3cK
IH0KIAogdGVtcGxhdGUgPHR5cGVuYW1lIFQ+Ci12b2lkIE1lbW9yeUluc3RydW1lbnRhdGlvbjo6
YWRkSW5zdHJ1bWVudGVkT2JqZWN0SW1wbChjb25zdCBPd25QdHI8VD4qIGNvbnN0JiBvYmplY3Qs
IE93bmluZ1R5cGUgb3duaW5nVHlwZSkKK3ZvaWQgTWVtb3J5SW5zdHJ1bWVudGF0aW9uOjphZGRJ
bnN0cnVtZW50ZWRPYmplY3RJbXBsKGNvbnN0IERhdGFSZWY8VD4qIGNvbnN0JiBvYmplY3QsIE93
bmluZ1R5cGUpCit7CisgICAgYWRkSW5zdHJ1bWVudGVkT2JqZWN0SW1wbChvYmplY3QtPmdldCgp
LCBieVBvaW50ZXIpOworfQorCit0ZW1wbGF0ZSA8dHlwZW5hbWUgVD4KK3ZvaWQgTWVtb3J5SW5z
dHJ1bWVudGF0aW9uOjphZGRJbnN0cnVtZW50ZWRPYmplY3RJbXBsKGNvbnN0IE93blB0cjxUPiog
Y29uc3QmIG9iamVjdCwgT3duaW5nVHlwZSkKIHsKLSAgICBhZGRJbnN0cnVtZW50ZWRPYmplY3RJ
bXBsKG9iamVjdC0+Z2V0KCksIG93bmluZ1R5cGUpOworICAgIGFkZEluc3RydW1lbnRlZE9iamVj
dEltcGwob2JqZWN0LT5nZXQoKSwgYnlQb2ludGVyKTsKIH0KIAogdGVtcGxhdGUgPHR5cGVuYW1l
IFQ+Ci12b2lkIE1lbW9yeUluc3RydW1lbnRhdGlvbjo6YWRkSW5zdHJ1bWVudGVkT2JqZWN0SW1w
bChjb25zdCBSZWZQdHI8VD4qIGNvbnN0JiBvYmplY3QsIE93bmluZ1R5cGUgb3duaW5nVHlwZSkK
K3ZvaWQgTWVtb3J5SW5zdHJ1bWVudGF0aW9uOjphZGRJbnN0cnVtZW50ZWRPYmplY3RJbXBsKGNv
bnN0IFJlZlB0cjxUPiogY29uc3QmIG9iamVjdCwgT3duaW5nVHlwZSkKIHsKLSAgICBhZGRJbnN0
cnVtZW50ZWRPYmplY3RJbXBsKG9iamVjdC0+Z2V0KCksIG93bmluZ1R5cGUpOworICAgIGFkZElu
c3RydW1lbnRlZE9iamVjdEltcGwob2JqZWN0LT5nZXQoKSwgYnlQb2ludGVyKTsKIH0KIAogLy8g
TGluayB0aW1lIGd1YXJkIGZvciBzdHJpbmcgbWVtYmVycy4gVGhleSBwcm9kdWNlIGxpbmsgZXJy
b3IgaXMgYSBzdHJpbmcgaXMgcmVwb3J0ZWQgdmlhIGFkZE9iamVjdC4KQEAgLTI2NCwxMSArMjgx
LDEyIEBAIHZvaWQgTWVtb3J5SW5zdHJ1bWVudGF0aW9uOjphZGRMaXN0SGFzaFNldChjb25zdCBM
aXN0SGFzaFNldFR5cGUmIGhhc2hTZXQsIE9iamVjCiB9CiAKIHRlbXBsYXRlIDx0eXBlbmFtZSBW
ZWN0b3JUeXBlPgotdm9pZCBNZW1vcnlJbnN0cnVtZW50YXRpb246OmFkZFZlY3Rvcihjb25zdCBW
ZWN0b3JUeXBlJiB2ZWN0b3IsIE9iamVjdFR5cGUgb2JqZWN0VHlwZSwgYm9vbCBjb250ZW50T25s
eSkKK3ZvaWQgTWVtb3J5SW5zdHJ1bWVudGF0aW9uOjphZGRWZWN0b3JJbXBsKGNvbnN0IFZlY3Rv
clR5cGUqIHZlY3RvciwgT2JqZWN0VHlwZSBvYmplY3RUeXBlLCBPd25pbmdUeXBlIG93bmluZ1R5
cGUpCiB7Ci0gICAgaWYgKCF2ZWN0b3IuZGF0YSgpIHx8IHZpc2l0ZWQodmVjdG9yLmRhdGEoKSkp
CisgICAgaWYgKCF2ZWN0b3IgfHwgIXZlY3Rvci0+ZGF0YSgpIHx8IHZpc2l0ZWQodmVjdG9yLT5k
YXRhKCkpKQogICAgICAgICByZXR1cm47Ci0gICAgY291bnRPYmplY3RTaXplKG9iamVjdFR5cGUs
IGNhbGN1bGF0ZUNvbnRhaW5lclNpemUodmVjdG9yLCBjb250ZW50T25seSkpOworICAgIGJvb2wg
Y29udGVudE9ubHkgPSBvd25pbmdUeXBlID09IGJ5UmVmZXJlbmNlOworICAgIGNvdW50T2JqZWN0
U2l6ZShvYmplY3RUeXBlLCBjYWxjdWxhdGVDb250YWluZXJTaXplKCp2ZWN0b3IsIGNvbnRlbnRP
bmx5KSk7CiB9CiAKIHRlbXBsYXRlIDx0eXBlbmFtZSBDb250YWluZXI+CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9kb20vTm9kZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZS5jcHAK
aW5kZXggNDQ3Yjc1YTJhNmNhNDJkNGRhOTI2M2VmNGFmYTc0YjQwMTc4NTljMC4uN2I1MjhlYzVk
ZGIxMTFjODViMzI4YWU3ZTZhNThhYTBmMGIwMDI5NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvZG9tL05vZGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlLmNwcApAQCAtNjcs
NiArNjcsNyBAQAogI2luY2x1ZGUgIktleWJvYXJkRXZlbnQuaCIKICNpbmNsdWRlICJMYWJlbHNO
b2RlTGlzdC5oIgogI2luY2x1ZGUgIkxvZ2dpbmcuaCIKKyNpbmNsdWRlICJNZW1vcnlJbnN0cnVt
ZW50YXRpb24uaCIKICNpbmNsdWRlICJNb3VzZUV2ZW50LmgiCiAjaW5jbHVkZSAiTXV0YXRpb25F
dmVudC5oIgogI2luY2x1ZGUgIk5hbWVOb2RlTGlzdC5oIgpAQCAtMjgyOSw2ICsyODMwLDggQEAg
dm9pZCBOb2RlOjpyZXBvcnRNZW1vcnlVc2FnZShNZW1vcnlPYmplY3RJbmZvKiBtZW1vcnlPYmpl
Y3RJbmZvKSBjb25zdAogICAgIGluZm8uYWRkSW5zdHJ1bWVudGVkTWVtYmVyKG1fZG9jdW1lbnQp
OwogICAgIGluZm8uYWRkSW5zdHJ1bWVudGVkTWVtYmVyKG1fbmV4dCk7CiAgICAgaW5mby5hZGRJ
bnN0cnVtZW50ZWRNZW1iZXIobV9wcmV2aW91cyk7CisgICAgaWYgKG1fcmVuZGVyZXIpCisgICAg
ICAgIGluZm8uYWRkSW5zdHJ1bWVudGVkTWVtYmVyKG1fcmVuZGVyZXItPnN0eWxlKCkpOwogfQog
CiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20v
Tm9kZS5oIGIvU291cmNlL1dlYkNvcmUvZG9tL05vZGUuaAppbmRleCBhMWZiMTg0YzMyZGY4YzQy
YmI0NzlhZTgyZThhMGU1NTY1NTkxNTMwLi4xOTFlMWI5YWE3YzQ1Zjk3MWZkNTk3Y2QxNTQwZDQy
NWVmZTA2NGIxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZS5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2RvbS9Ob2RlLmgKQEAgLTI5LDcgKzI5LDYgQEAKICNpbmNsdWRlICJFdmVu
dFRhcmdldC5oIgogI2luY2x1ZGUgIktVUkxIYXNoLmgiCiAjaW5jbHVkZSAiTGF5b3V0VHlwZXMu
aCIKLSNpbmNsdWRlICJNZW1vcnlJbnN0cnVtZW50YXRpb24uaCIKICNpbmNsdWRlICJNdXRhdGlv
bk9ic2VydmVyLmgiCiAjaW5jbHVkZSAiUmVuZGVyU3R5bGVDb25zdGFudHMuaCIKICNpbmNsdWRl
ICJTY3JpcHRXcmFwcGFibGUuaCIKQEAgLTY2LDYgKzY1LDcgQEAgY2xhc3MgRnJhbWU7CiBjbGFz
cyBIVE1MSW5wdXRFbGVtZW50OwogY2xhc3MgSW50UmVjdDsKIGNsYXNzIEtleWJvYXJkRXZlbnQ7
CitjbGFzcyBNZW1vcnlPYmplY3RJbmZvOwogY2xhc3MgTlNSZXNvbHZlcjsKIGNsYXNzIE5hbWVk
Tm9kZU1hcDsKIGNsYXNzIE5hbWVOb2RlTGlzdDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvc3R5bGUvUmVuZGVyU3R5bGUuY3BwCmluZGV4IGFiMDEzYWZiOTk2M2NjNjk0YWNhYmQyMGE1
ZGM5MzE4YzQ0ZTZlMmEuLjcwYjMyMGU2YmY3YjgyYWFhMjkxNjgzNmIyYzI2MzIzYzZhMmVjZDEg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZS5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlLmNwcApA
QCAtMjgsNiArMjgsNyBAQAogI2luY2x1ZGUgIkNTU1Byb3BlcnR5TmFtZXMuaCIKICNpbmNsdWRl
ICJDU1NXcmFwU2hhcGVzLmgiCiAjaW5jbHVkZSAiRm9udFNlbGVjdG9yLmgiCisjaW5jbHVkZSAi
TWVtb3J5SW5zdHJ1bWVudGF0aW9uLmgiCiAjaW5jbHVkZSAiUXVvdGVzRGF0YS5oIgogI2luY2x1
ZGUgIlJlbmRlckFyZW5hLmgiCiAjaW5jbHVkZSAiUmVuZGVyT2JqZWN0LmgiCkBAIC0xNDg2LDQg
KzE0ODcsMjQgQEAgTGF5b3V0Qm94RXh0ZW50IFJlbmRlclN0eWxlOjppbWFnZU91dHNldHMoY29u
c3QgTmluZVBpZWNlSW1hZ2UmIGltYWdlKSBjb25zdAogICAgICAgICAgICAgICAgICAgICAgICAg
ICAgTmluZVBpZWNlSW1hZ2U6OmNvbXB1dGVPdXRzZXQoaW1hZ2Uub3V0c2V0KCkubGVmdCgpLCBi
b3JkZXJMZWZ0V2lkdGgoKSkpOwogfQogCit2b2lkIFJlbmRlclN0eWxlOjpyZXBvcnRNZW1vcnlV
c2FnZShNZW1vcnlPYmplY3RJbmZvKiBtZW1vcnlPYmplY3RJbmZvKSBjb25zdAoreworICAgIE1l
bW9yeUNsYXNzSW5mbzxSZW5kZXJTdHlsZT4gaW5mbyhtZW1vcnlPYmplY3RJbmZvLCB0aGlzLCBN
ZW1vcnlJbnN0cnVtZW50YXRpb246OkNTUyk7CisgICAgaW5mby5hZGRNZW1iZXIobV9ib3gpOwor
ICAgIGluZm8uYWRkTWVtYmVyKHZpc3VhbCk7CisgICAgLy8gRklYTUU6IG1fYmFja2dyb3VuZCBj
b250YWlucyBSZWZQdHI8U3R5bGVJbWFnZT4gdGhhdCBtaWdodCBuZWVkIHRvIGJlIGluc3RydW1l
bnRlZC4KKyAgICBpbmZvLmFkZE1lbWJlcihtX2JhY2tncm91bmQpOworICAgIC8vIEZJWE1FOiBz
dXJyb25kIGNvbnRhaW5zIHNvbWUgZmllbGRzIGUuZy4gQm9yZGVyRGF0YSB0aGF0IG1pZ2h0IG5l
ZWQgdG8gYmUgaW5zdHJ1bWVudGVkLgorICAgIGluZm8uYWRkTWVtYmVyKHN1cnJvdW5kKTsKKyAg
ICBpbmZvLmFkZEluc3RydW1lbnRlZE1lbWJlcihyYXJlTm9uSW5oZXJpdGVkRGF0YSk7CisgICAg
aW5mby5hZGRJbnN0cnVtZW50ZWRNZW1iZXIocmFyZUluaGVyaXRlZERhdGEpOworICAgIC8vIEZJ
WE1FOiBpbmhlcml0ZWQgY29udGFpbnMgU3R5bGVJbWFnZSBhbmQgRm9udCBmaWVsZHMgdGhhdCBt
aWdodCBuZWVkIHRvIGJlIGluc3RydW1lbnRlZC4KKyAgICBpbmZvLmFkZE1lbWJlcihpbmhlcml0
ZWQpOworICAgIGlmIChtX2NhY2hlZFBzZXVkb1N0eWxlcykKKyAgICAgICAgaW5mby5hZGRWZWN0
b3IobV9jYWNoZWRQc2V1ZG9TdHlsZXMuZ2V0KCkpOworI2lmIEVOQUJMRShTVkcpCisgICAgaW5m
by5hZGRNZW1iZXIobV9zdmdTdHlsZSk7CisjZW5kaWYKK30KKwogfSAvLyBuYW1lc3BhY2UgV2Vi
Q29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0
eWxlLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGUuaAppbmRl
eCA1N2IxOTVmMWEzMGRlOTFlMTZjMDg3OGM1MjVjODdlMzg4NzY4NTlkLi44ODk5NDg5NGI0MjFl
MDU2YjA2ODA1ZjBiODdlYWU1YzFiZTIwMWFhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvc3R5bGUvUmVuZGVyU3R5bGUuaApAQCAtMTA1LDYgKzEwNSw3IEBAIGNsYXNzIEJvcmRlckRh
dGE7CiBjbGFzcyBDb3VudGVyQ29udGVudDsKIGNsYXNzIEN1cnNvckxpc3Q7CiBjbGFzcyBJbnRS
ZWN0OworY2xhc3MgTWVtb3J5T2JqZWN0SW5mbzsKIGNsYXNzIFBhaXI7CiBjbGFzcyBTaGFkb3dE
YXRhOwogY2xhc3MgU3R5bGVJbWFnZTsKQEAgLTE1NDEsNiArMTU0Miw4IEBAIHB1YmxpYzoKIAog
ICAgIHZvaWQgc2V0SGFzRXhwbGljaXRseUluaGVyaXRlZFByb3BlcnRpZXMoKSB7IG1fYml0Zmll
bGRzLnNldEV4cGxpY2l0SW5oZXJpdGFuY2UodHJ1ZSk7IH0KICAgICBib29sIGhhc0V4cGxpY2l0
bHlJbmhlcml0ZWRQcm9wZXJ0aWVzKCkgY29uc3QgeyByZXR1cm4gbV9iaXRmaWVsZHMuZXhwbGlj
aXRJbmhlcml0YW5jZSgpOyB9CisKKyAgICB2b2lkIHJlcG9ydE1lbW9yeVVzYWdlKE1lbW9yeU9i
amVjdEluZm8qKSBjb25zdDsKICAgICAKICAgICAvLyBJbml0aWFsIHZhbHVlcyBmb3IgYWxsIHRo
ZSBwcm9wZXJ0aWVzCiAgICAgc3RhdGljIEVCb3JkZXJDb2xsYXBzZSBpbml0aWFsQm9yZGVyQ29s
bGFwc2UoKSB7IHJldHVybiBCU0VQQVJBVEU7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9zdHlsZS9TdHlsZVJhcmVJbmhlcml0ZWREYXRhLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9zdHlsZS9TdHlsZVJhcmVJbmhlcml0ZWREYXRhLmNwcAppbmRleCBjMjFj
Y2FjY2I1YTg5ZTFmZjA4MzI5ZjVhZmU3OTlmMGQyYzQzMTFiLi5kOTM5YWFkMzQ3MjBjNDYzNmY3
NDcwODJmNGFmNzQyODg4ODk3ZTAwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvc3R5bGUvU3R5bGVSYXJlSW5oZXJpdGVkRGF0YS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL3N0eWxlL1N0eWxlUmFyZUluaGVyaXRlZERhdGEuY3BwCkBAIC0yMyw2ICsyMyw3
IEBACiAjaW5jbHVkZSAiU3R5bGVSYXJlSW5oZXJpdGVkRGF0YS5oIgogCiAjaW5jbHVkZSAiQ3Vy
c29yTGlzdC5oIgorI2luY2x1ZGUgIk1lbW9yeUluc3RydW1lbnRhdGlvbi5oIgogI2luY2x1ZGUg
IlF1b3Rlc0RhdGEuaCIKICNpbmNsdWRlICJSZW5kZXJTdHlsZS5oIgogI2luY2x1ZGUgIlJlbmRl
clN0eWxlQ29uc3RhbnRzLmgiCkBAIC0yNjEsNCArMjYyLDIwIEBAIGJvb2wgU3R5bGVSYXJlSW5o
ZXJpdGVkRGF0YTo6c2hhZG93RGF0YUVxdWl2YWxlbnQoY29uc3QgU3R5bGVSYXJlSW5oZXJpdGVk
RGF0YSYKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAordm9pZCBTdHlsZVJhcmVJbmhlcml0ZWREYXRh
OjpyZXBvcnRNZW1vcnlVc2FnZShNZW1vcnlPYmplY3RJbmZvKiBtZW1vcnlPYmplY3RJbmZvKSBj
b25zdAoreworICAgIE1lbW9yeUNsYXNzSW5mbzxTdHlsZVJhcmVJbmhlcml0ZWREYXRhPiBpbmZv
KG1lbW9yeU9iamVjdEluZm8sIHRoaXMsIE1lbW9yeUluc3RydW1lbnRhdGlvbjo6Q1NTKTsKKyAg
ICBpbmZvLmFkZE1lbWJlcih0ZXh0U2hhZG93KTsKKyAgICBpbmZvLmFkZFN0cmluZyhoaWdobGln
aHQpOworICAgIGluZm8uYWRkTWVtYmVyKGN1cnNvckRhdGEpOworICAgIGluZm8uYWRkU3RyaW5n
KGh5cGhlbmF0aW9uU3RyaW5nKTsKKyAgICBpbmZvLmFkZFN0cmluZyhsb2NhbGUpOworICAgIGlu
Zm8uYWRkU3RyaW5nKHRleHRFbXBoYXNpc0N1c3RvbU1hcmspOworICAgIGluZm8uYWRkTWVtYmVy
KHF1b3Rlcyk7CisgICAgaW5mby5hZGRTdHJpbmcobV9saW5lR3JpZCk7CisjaWYgRU5BQkxFKENT
U19WQVJJQUJMRVMpCisgICAgaW5mby5hZGRNZW1iZXIobV92YXJpYWJsZXMpOworI2VuZGlmCit9
CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9zdHlsZS9TdHlsZVJhcmVJbmhlcml0ZWREYXRhLmggYi9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvc3R5bGUvU3R5bGVSYXJlSW5oZXJpdGVkRGF0YS5oCmluZGV4IGIzMDk4MmRmOTdi
MWNlMjYyZWQ3MmRkZTcwMTdmZThmOGU1ZTVhYzAuLmJiNDMzZWQyNzZjYWRiNTI4NDg1YTMzZGY0
NDNiMWZhYjVkZDViYTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHls
ZS9TdHlsZVJhcmVJbmhlcml0ZWREYXRhLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L3N0eWxlL1N0eWxlUmFyZUluaGVyaXRlZERhdGEuaApAQCAtMzksNiArMzksNyBAQAogbmFtZXNw
YWNlIFdlYkNvcmUgewogCiBjbGFzcyBDdXJzb3JMaXN0OworY2xhc3MgTWVtb3J5T2JqZWN0SW5m
bzsKIGNsYXNzIFF1b3Rlc0RhdGE7CiBjbGFzcyBTaGFkb3dEYXRhOwogCkBAIC01OCw2ICs1OSw4
IEBAIHB1YmxpYzoKICAgICB9CiAgICAgYm9vbCBzaGFkb3dEYXRhRXF1aXZhbGVudChjb25zdCBT
dHlsZVJhcmVJbmhlcml0ZWREYXRhJikgY29uc3Q7CiAKKyAgICB2b2lkIHJlcG9ydE1lbW9yeVVz
YWdlKE1lbW9yeU9iamVjdEluZm8qKSBjb25zdDsKKwogICAgIENvbG9yIHRleHRTdHJva2VDb2xv
cjsKICAgICBmbG9hdCB0ZXh0U3Ryb2tlV2lkdGg7CiAgICAgQ29sb3IgdGV4dEZpbGxDb2xvcjsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9TdHlsZVJhcmVOb25J
bmhlcml0ZWREYXRhLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9TdHlsZVJh
cmVOb25Jbmhlcml0ZWREYXRhLmNwcAppbmRleCAyMmIzMjcyZThjMzdkMjFlZTM2NDljMGE0NWE3
ZDQzZDUxMjEwNDRkLi4yMWQ3ZWNiNTczNTBkMTc2MDA0NjJjMmRjZTA4MzhiODMyNDlhM2IzIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvU3R5bGVSYXJlTm9uSW5o
ZXJpdGVkRGF0YS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1N0eWxl
UmFyZU5vbkluaGVyaXRlZERhdGEuY3BwCkBAIC0yMyw2ICsyMyw3IEBACiAjaW5jbHVkZSAiU3R5
bGVSYXJlTm9uSW5oZXJpdGVkRGF0YS5oIgogCiAjaW5jbHVkZSAiQ29udGVudERhdGEuaCIKKyNp
bmNsdWRlICJNZW1vcnlJbnN0cnVtZW50YXRpb24uaCIKICNpbmNsdWRlICJSZW5kZXJDb3VudGVy
LmgiCiAjaW5jbHVkZSAiUmVuZGVyU3R5bGUuaCIKICNpbmNsdWRlICJTaGFkb3dEYXRhLmgiCkBA
IC0yODYsNCArMjg3LDMyIEBAIGJvb2wgU3R5bGVSYXJlTm9uSW5oZXJpdGVkRGF0YTo6dHJhbnNp
dGlvbkRhdGFFcXVpdmFsZW50KGNvbnN0IFN0eWxlUmFyZU5vbkluaGVyCiAgICAgcmV0dXJuIHRy
dWU7CiB9CiAKK3ZvaWQgU3R5bGVSYXJlTm9uSW5oZXJpdGVkRGF0YTo6cmVwb3J0TWVtb3J5VXNh
Z2UoTWVtb3J5T2JqZWN0SW5mbyogbWVtb3J5T2JqZWN0SW5mbykgY29uc3QKK3sKKyAgICBNZW1v
cnlDbGFzc0luZm88U3R5bGVSYXJlTm9uSW5oZXJpdGVkRGF0YT4gaW5mbyhtZW1vcnlPYmplY3RJ
bmZvLCB0aGlzLCBNZW1vcnlJbnN0cnVtZW50YXRpb246OkNTUyk7CisjaWYgRU5BQkxFKERBU0hC
T0FSRF9TVVBQT1JUKQorICAgIGluZm8uYWRkVmVjdG9yKG1fZGFzaGJvYXJkUmVnaW9ucyk7Cisj
ZW5kaWYKKyAgICBpbmZvLmFkZE1lbWJlcihtX2RlcHJlY2F0ZWRGbGV4aWJsZUJveCk7CisgICAg
aW5mby5hZGRNZW1iZXIobV9mbGV4aWJsZUJveCk7CisgICAgaW5mby5hZGRNZW1iZXIobV9tYXJx
dWVlKTsKKyAgICBpbmZvLmFkZE1lbWJlcihtX211bHRpQ29sKTsKKyAgICBpbmZvLmFkZE1lbWJl
cihtX3RyYW5zZm9ybSk7CisjaWYgRU5BQkxFKENTU19GSUxURVJTKQorICAgIGluZm8uYWRkTWVt
YmVyKG1fZmlsdGVyKTsKKyNlbmRpZgorICAgIGluZm8uYWRkTWVtYmVyKG1fZ3JpZCk7CisgICAg
aW5mby5hZGRNZW1iZXIobV9ncmlkSXRlbSk7CisgICAgaW5mby5hZGRNZW1iZXIobV9jb250ZW50
KTsKKyAgICBpbmZvLmFkZE1lbWJlcihtX2NvdW50ZXJEaXJlY3RpdmVzKTsKKyAgICBpbmZvLmFk
ZE1lbWJlcihtX2JveFNoYWRvdyk7CisgICAgaW5mby5hZGRNZW1iZXIobV9ib3hSZWZsZWN0KTsK
KyAgICBpbmZvLmFkZE1lbWJlcihtX2FuaW1hdGlvbnMpOworICAgIGluZm8uYWRkTWVtYmVyKG1f
dHJhbnNpdGlvbnMpOworICAgIGluZm8uYWRkTWVtYmVyKG1fd3JhcFNoYXBlSW5zaWRlKTsKKyAg
ICBpbmZvLmFkZE1lbWJlcihtX3dyYXBTaGFwZU91dHNpZGUpOworICAgIGluZm8uYWRkU3RyaW5n
KG1fZmxvd1RocmVhZCk7CisgICAgaW5mby5hZGRTdHJpbmcobV9yZWdpb25UaHJlYWQpOworfQor
CiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvc3R5bGUvU3R5bGVSYXJlTm9uSW5oZXJpdGVkRGF0YS5oIGIvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL3N0eWxlL1N0eWxlUmFyZU5vbkluaGVyaXRlZERhdGEuaAppbmRleCA4NjJjNjFk
N2FmOGE1NzljYTk2MDQyYWFhNDQ4Y2I5Y2NjNGE0Y2VmLi5kY2U1ZGY2ZWZiMGNlYzA0NzRmZWE4
YThhNWI0MjVhYmE3YjNlNWRhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
c3R5bGUvU3R5bGVSYXJlTm9uSW5oZXJpdGVkRGF0YS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9zdHlsZS9TdHlsZVJhcmVOb25Jbmhlcml0ZWREYXRhLmgKQEAgLTM5LDYgKzM5LDcg
QEAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgQW5pbWF0aW9uTGlzdDsKK2NsYXNzIE1l
bW9yeU9iamVjdEluZm87CiBjbGFzcyBTaGFkb3dEYXRhOwogY2xhc3MgU3R5bGVEZXByZWNhdGVk
RmxleGlibGVCb3hEYXRhOwogI2lmIEVOQUJMRShDU1NfRklMVEVSUykKQEAgLTg5LDYgKzkwLDgg
QEAgcHVibGljOgogICAgIGJvb2wgYW5pbWF0aW9uRGF0YUVxdWl2YWxlbnQoY29uc3QgU3R5bGVS
YXJlTm9uSW5oZXJpdGVkRGF0YSYpIGNvbnN0OwogICAgIGJvb2wgdHJhbnNpdGlvbkRhdGFFcXVp
dmFsZW50KGNvbnN0IFN0eWxlUmFyZU5vbkluaGVyaXRlZERhdGEmKSBjb25zdDsKIAorICAgIHZv
aWQgcmVwb3J0TWVtb3J5VXNhZ2UoTWVtb3J5T2JqZWN0SW5mbyopIGNvbnN0OworCiAgICAgZmxv
YXQgb3BhY2l0eTsgLy8gV2hldGhlciBvciBub3Qgd2UncmUgdHJhbnNwYXJlbnQuCiAKICAgICBm
bG9hdCBtX2FzcGVjdFJhdGlvRGVub21pbmF0b3I7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>155805</attachid>
            <date>2012-08-01 07:05:58 -0700</date>
            <delta_ts>2012-08-02 03:50:45 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-91759-20120801180539.patch</filename>
            <type>text/plain</type>
            <size>19658</size>
            <attacher name="Alexei Filippov">alph</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTI0MzMyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggY2ZjNTBkYTYwMTVlZThm
NjJkNTNmMGFlMzAwYzFmNWVhNjgzZjQ2Zi4uNWY0YjE1NmFkZDM0MWZkNmJhYzFmNDFjNzI0OWU0
ZGYxMDc5OTAzMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDU2IEBACiAyMDEyLTA4LTAxICBBbGV4
ZWkgRmlsaXBwb3YgIDxhbGV4ZWlmQGNocm9taXVtLm9yZz4KIAorICAgICAgICBXZWIgSW5zcGVj
dG9yOiBjb3VudCBSZW5kZXJTdHlsZSBvYmplY3RzIGluIHRoZSBuYXRpdmUgbWVtb3J5IHByb2Zp
bGVyCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05MTc1
OQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoZSBw
YXRjaCBhZGRzIGluc3RydW1lbnRhdGlvbiB0byB0aGUgZm9sbG93aW5nIGNsYXNzZXM6CisgICAg
ICAgICAgLSBSZW5kZXJTdHlsZQorICAgICAgICAgIC0gU3R5bGVSYXJlSW5oZXJpdGVkRGF0YQor
ICAgICAgICAgIC0gU3R5bGVSYXJlTm9uSW5oZXJpdGVkRGF0YQorCisgICAgICAgIEJlc2lkZXMg
dGhhdCBpdCBhZGRzIHN1cHBvcnQgZm9yIFZlY3RvciogcHJvY2Vzc2luZyBpbiBNZW1vcnlJbnN0
cnVtZW50YXRpb24KKyAgICAgICAgYW5kIGZpeGVzIHdyb25nIG93bmluZyB0eXBlIHBhc3NlZCBm
b3IgT3duUHRyIGFuZCBSZWZQdHIgd3JhcHBlZCBtZW1iZXJzLgorCisgICAgICAgICogYmluZGlu
Z3MvanMvU2NyaXB0V3JhcHBhYmxlLmg6CisgICAgICAgICogYmluZGluZ3MvdjgvU2NyaXB0V3Jh
cHBhYmxlLmg6CisgICAgICAgICogY3NzL1N0eWxlUHJvcGVydHlTZXQuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6U3R5bGVQcm9wZXJ0eVNldDo6cmVwb3J0TWVtb3J5VXNhZ2UpOgorICAgICAgICAq
IGRvbS9NZW1vcnlJbnN0cnVtZW50YXRpb24uaDoKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAg
ICAoV2ViQ29yZTo6TWVtb3J5SW5zdHJ1bWVudGF0aW9uOjphZGRWZWN0b3IpOgorICAgICAgICAo
V2ViQ29yZTo6TWVtb3J5SW5zdHJ1bWVudGF0aW9uOjpPd25pbmdUcmFpdHM6OmFkZE9iamVjdCk6
CisgICAgICAgIChXZWJDb3JlOjpNZW1vcnlJbnN0cnVtZW50YXRpb246Ok93bmluZ1RyYWl0czo6
YWRkVmVjdG9yKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lbW9yeUluc3RydW1lbnRhdGlvbjo6YWRk
T2JqZWN0SW1wbCk6CisgICAgICAgIChNZW1vcnlJbnN0cnVtZW50YXRpb24pOgorICAgICAgICAo
V2ViQ29yZTo6TWVtb3J5Q2xhc3NJbmZvOjphZGRWZWN0b3IpOgorICAgICAgICAoV2ViQ29yZTo6
TWVtb3J5SW5zdHJ1bWVudGF0aW9uOjphZGRJbnN0cnVtZW50ZWRPYmplY3RJbXBsKToKKyAgICAg
ICAgKFdlYkNvcmU6Ok1lbW9yeUluc3RydW1lbnRhdGlvbjo6YWRkVmVjdG9ySW1wbCk6CisgICAg
ICAgICogZG9tL05vZGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Tm9kZTo6cmVwb3J0TWVtb3J5
VXNhZ2UpOgorICAgICAgICAqIGRvbS9Ob2RlLmg6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAg
ICAgKiByZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
UmVuZGVyU3R5bGU6OnJlcG9ydE1lbW9yeVVzYWdlKToKKyAgICAgICAgKFdlYkNvcmUpOgorICAg
ICAgICAqIHJlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZS5oOgorICAgICAgICAoV2ViQ29yZSk6
CisgICAgICAgICogcmVuZGVyaW5nL3N0eWxlL1N0eWxlUmFyZUluaGVyaXRlZERhdGEuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6U3R5bGVSYXJlSW5oZXJpdGVkRGF0YTo6cmVwb3J0TWVtb3J5VXNh
Z2UpOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgICogcmVuZGVyaW5nL3N0eWxlL1N0eWxl
UmFyZUluaGVyaXRlZERhdGEuaDoKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoU3R5bGVS
YXJlSW5oZXJpdGVkRGF0YSk6CisgICAgICAgICogcmVuZGVyaW5nL3N0eWxlL1N0eWxlUmFyZU5v
bkluaGVyaXRlZERhdGEuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U3R5bGVSYXJlTm9uSW5oZXJp
dGVkRGF0YTo6cmVwb3J0TWVtb3J5VXNhZ2UpOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAg
ICogcmVuZGVyaW5nL3N0eWxlL1N0eWxlUmFyZU5vbkluaGVyaXRlZERhdGEuaDoKKyAgICAgICAg
KFdlYkNvcmUpOgorICAgICAgICAoU3R5bGVSYXJlTm9uSW5oZXJpdGVkRGF0YSk6CisKKzIwMTIt
MDgtMDEgIEFsZXhlaSBGaWxpcHBvdiAgPGFsZXhlaWZAY2hyb21pdW0ub3JnPgorCiAgICAgICAg
IFdlYiBJbnNwZWN0b3I6IGNvdW50IERPTSBzdG9yYWdlIGNhY2hlIG1lbW9yeSBmb3IgbmF0aXZl
IHNuYXBzaG90CiAgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD05MTYxNwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9TY3JpcHRX
cmFwcGFibGUuaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1NjcmlwdFdyYXBwYWJsZS5o
CmluZGV4IDNjYjVkODE2YzExMWI4MDdmYTA2OTdhNjdjZDlmOWE5NjQyZDA1ZTcuLjBjZjJkN2Ex
NmM0ZWUwOGRjNDUzMDQ5MmUxMjQzMTQwZThmOWI1OTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL2pzL1NjcmlwdFdyYXBwYWJsZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL2pzL1NjcmlwdFdyYXBwYWJsZS5oCkBAIC0zMiw2ICszMiw3IEBACiAjZGVmaW5lIFNj
cmlwdFdyYXBwYWJsZV9oCiAKICNpbmNsdWRlICJKU0RPTVdyYXBwZXIuaCIKKyNpbmNsdWRlICJN
ZW1vcnlJbnN0cnVtZW50YXRpb24uaCIKICNpbmNsdWRlIDxoZWFwL1dlYWsuaD4KIAogbmFtZXNw
YWNlIFdlYkNvcmUgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvU2Ny
aXB0V3JhcHBhYmxlLmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9TY3JpcHRXcmFwcGFi
bGUuaAppbmRleCBlZjJmNzYxOWYyNDUxMTA2NTdjN2FlMGE1YmEwMmVkYzA0ZDZmZjY5Li42NGE5
MDUzOTI4YTYwZTE1MDgyMTY0NzYwNDI4NTZiMmE3YzNkMDMwIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy92OC9TY3JpcHRXcmFwcGFibGUuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy92OC9TY3JpcHRXcmFwcGFibGUuaApAQCAtMzEsNiArMzEsNyBAQAogI2lmbmRl
ZiBTY3JpcHRXcmFwcGFibGVfaAogI2RlZmluZSBTY3JpcHRXcmFwcGFibGVfaAogCisjaW5jbHVk
ZSAiTWVtb3J5SW5zdHJ1bWVudGF0aW9uLmgiCiAjaW5jbHVkZSA8djguaD4KIAogbmFtZXNwYWNl
IFdlYkNvcmUgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL1N0eWxlUHJvcGVydHlT
ZXQuY3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL1N0eWxlUHJvcGVydHlTZXQuY3BwCmluZGV4IDc5
YWIwNDMzN2NhZTY2ZjE1ODBiNzY0MTc4ODNjY2M2NDNjY2Y0MTEuLmE3Njc0M2IwZTUzM2Q4MGIy
ZWUyNzUzNjE3MDA5ODE4ZWUyYWI0NmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9T
dHlsZVByb3BlcnR5U2V0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVQcm9wZXJ0
eVNldC5jcHAKQEAgLTEwNzksNyArMTA3OSw3IEBAIHZvaWQgU3R5bGVQcm9wZXJ0eVNldDo6cmVw
b3J0TWVtb3J5VXNhZ2UoTWVtb3J5T2JqZWN0SW5mbyogbWVtb3J5T2JqZWN0SW5mbykgY29uCiB7
CiAgICAgTWVtb3J5Q2xhc3NJbmZvPFN0eWxlUHJvcGVydHlTZXQ+IGluZm8obWVtb3J5T2JqZWN0
SW5mbywgdGhpcywgTWVtb3J5SW5zdHJ1bWVudGF0aW9uOjpDU1MpOwogICAgIGlmIChtX2lzTXV0
YWJsZSkKLSAgICAgICAgaW5mby5hZGRWZWN0b3JQdHIobV9tdXRhYmxlUHJvcGVydHlWZWN0b3Ip
OworICAgICAgICBpbmZvLmFkZFZlY3RvcihtX211dGFibGVQcm9wZXJ0eVZlY3Rvcik7CiAgICAg
ZWxzZQogICAgICAgICBpbmZvLmFkZFJhd0J1ZmZlcihtX3Byb3BlcnRpZXMsIG1fYXJyYXlTaXpl
ICogc2l6ZW9mKENTU1Byb3BlcnR5KSk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9k
b20vTWVtb3J5SW5zdHJ1bWVudGF0aW9uLmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vTWVtb3J5SW5z
dHJ1bWVudGF0aW9uLmgKaW5kZXggMTg5ZDI0OWQ2MGRmOTQ2ZWIwNzYyZTljMjBmYWM0MmZhMTEz
ZjBmNC4uZTRjODZkMDliNDcyZTliOWRlMGU5ZjZiMDNkMTJiNjA2MjMzYmZlZSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvZG9tL01lbW9yeUluc3RydW1lbnRhdGlvbi5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2RvbS9NZW1vcnlJbnN0cnVtZW50YXRpb24uaApAQCAtMzksNiArMzksNyBAQAog
CiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKK3RlbXBsYXRlIDx0eXBlbmFtZSBUPiBjbGFzcyBEYXRh
UmVmOwogY2xhc3MgTWVtb3J5T2JqZWN0SW5mbzsKIAogY2xhc3MgTWVtb3J5SW5zdHJ1bWVudGF0
aW9uIHsKQEAgLTkyLDcgKzkzLDEwIEBAIHByaXZhdGU6CiAgICAgdGVtcGxhdGUgPHR5cGVuYW1l
IEhhc2hTZXRUeXBlPiB2b2lkIGFkZEhhc2hTZXQoY29uc3QgSGFzaFNldFR5cGUmLCBPYmplY3RU
eXBlLCBib29sIGNvbnRlbnRPbmx5ID0gZmFsc2UpOwogICAgIHRlbXBsYXRlIDx0eXBlbmFtZSBD
b2xsZWN0aW9uVHlwZT4gdm9pZCBhZGRJbnN0cnVtZW50ZWRDb2xsZWN0aW9uKGNvbnN0IENvbGxl
Y3Rpb25UeXBlJiwgT2JqZWN0VHlwZSwgYm9vbCBjb250ZW50T25seSA9IGZhbHNlKTsKICAgICB0
ZW1wbGF0ZSA8dHlwZW5hbWUgTGlzdEhhc2hTZXRUeXBlPiB2b2lkIGFkZExpc3RIYXNoU2V0KGNv
bnN0IExpc3RIYXNoU2V0VHlwZSYsIE9iamVjdFR5cGUsIGJvb2wgY29udGVudE9ubHkgPSBmYWxz
ZSk7Ci0gICAgdGVtcGxhdGUgPHR5cGVuYW1lIFZlY3RvclR5cGU+IHZvaWQgYWRkVmVjdG9yKGNv
bnN0IFZlY3RvclR5cGUmLCBPYmplY3RUeXBlLCBib29sIGNvbnRlbnRPbmx5ID0gZmFsc2UpOwor
ICAgIHRlbXBsYXRlIDx0eXBlbmFtZSBWZWN0b3JUeXBlPiB2b2lkIGFkZFZlY3Rvcihjb25zdCBW
ZWN0b3JUeXBlJiB0LCBPYmplY3RUeXBlIG9iamVjdFR5cGUpCisgICAgeworICAgICAgICBPd25p
bmdUcmFpdHM8VmVjdG9yVHlwZT46OmFkZFZlY3Rvcih0aGlzLCB0LCBvYmplY3RUeXBlKTsKKyAg
ICB9CiAgICAgdm9pZCBhZGRSYXdCdWZmZXIoY29uc3Qgdm9pZCogY29uc3QmIGJ1ZmZlciwgT2Jq
ZWN0VHlwZSBvYmplY3RUeXBlLCBzaXplX3Qgc2l6ZSkKICAgICB7CiAgICAgICAgIGlmICghYnVm
ZmVyIHx8IHZpc2l0ZWQoYnVmZmVyKSkKQEAgLTEwOCwyMCArMTEyLDI4IEBAIHByaXZhdGU6CiAg
ICAgdGVtcGxhdGUgPHR5cGVuYW1lIFQ+CiAgICAgc3RydWN0IE93bmluZ1RyYWl0cyB7IC8vIERl
ZmF1bHQgYnlSZWZlcmVuY2UgaW1wbGVtZW50YXRpb24uCiAgICAgICAgIHN0YXRpYyB2b2lkIGFk
ZEluc3RydW1lbnRlZE9iamVjdChNZW1vcnlJbnN0cnVtZW50YXRpb24qIGluc3RydW1lbnRhdGlv
biwgY29uc3QgVCYgdCkgeyBpbnN0cnVtZW50YXRpb24tPmFkZEluc3RydW1lbnRlZE9iamVjdElt
cGwoJnQsIGJ5UmVmZXJlbmNlKTsgfQotICAgICAgICBzdGF0aWMgdm9pZCBhZGRPYmplY3QoTWVt
b3J5SW5zdHJ1bWVudGF0aW9uKiBpbnN0cnVtZW50YXRpb24sIGNvbnN0IFQmIHQsIE1lbW9yeUlu
c3RydW1lbnRhdGlvbjo6T2JqZWN0VHlwZSBvYmplY3RUeXBlKSB7IGluc3RydW1lbnRhdGlvbi0+
YWRkT2JqZWN0SW1wbCgmdCwgb2JqZWN0VHlwZSwgYnlSZWZlcmVuY2UpOyB9CisgICAgICAgIHN0
YXRpYyB2b2lkIGFkZE9iamVjdChNZW1vcnlJbnN0cnVtZW50YXRpb24qIGluc3RydW1lbnRhdGlv
biwgY29uc3QgVCYgdCwgT2JqZWN0VHlwZSBvYmplY3RUeXBlKSB7IGluc3RydW1lbnRhdGlvbi0+
YWRkT2JqZWN0SW1wbCgmdCwgb2JqZWN0VHlwZSwgYnlSZWZlcmVuY2UpOyB9CisgICAgICAgIHN0
YXRpYyB2b2lkIGFkZFZlY3RvcihNZW1vcnlJbnN0cnVtZW50YXRpb24qIGluc3RydW1lbnRhdGlv
biwgY29uc3QgVCYgdCwgT2JqZWN0VHlwZSBvYmplY3RUeXBlKSB7IGluc3RydW1lbnRhdGlvbi0+
YWRkVmVjdG9ySW1wbCgmdCwgb2JqZWN0VHlwZSwgYnlSZWZlcmVuY2UpOyB9CiAgICAgfTsKIAog
ICAgIHRlbXBsYXRlIDx0eXBlbmFtZSBUPgogICAgIHN0cnVjdCBPd25pbmdUcmFpdHM8VCo+IHsg
Ly8gQ3VzdG9tIGJ5UG9pbnRlciBpbXBsZW1lbnRhdGlvbi4KICAgICAgICAgc3RhdGljIHZvaWQg
YWRkSW5zdHJ1bWVudGVkT2JqZWN0KE1lbW9yeUluc3RydW1lbnRhdGlvbiogaW5zdHJ1bWVudGF0
aW9uLCBjb25zdCBUKiBjb25zdCYgdCkgeyBpbnN0cnVtZW50YXRpb24tPmFkZEluc3RydW1lbnRl
ZE9iamVjdEltcGwodCwgYnlQb2ludGVyKTsgfQotICAgICAgICBzdGF0aWMgdm9pZCBhZGRPYmpl
Y3QoTWVtb3J5SW5zdHJ1bWVudGF0aW9uKiBpbnN0cnVtZW50YXRpb24sIGNvbnN0IFQqIGNvbnN0
JiB0LCBNZW1vcnlJbnN0cnVtZW50YXRpb246Ok9iamVjdFR5cGUgb2JqZWN0VHlwZSkgeyBpbnN0
cnVtZW50YXRpb24tPmFkZE9iamVjdEltcGwodCwgb2JqZWN0VHlwZSwgYnlQb2ludGVyKTsgfQor
ICAgICAgICBzdGF0aWMgdm9pZCBhZGRPYmplY3QoTWVtb3J5SW5zdHJ1bWVudGF0aW9uKiBpbnN0
cnVtZW50YXRpb24sIGNvbnN0IFQqIGNvbnN0JiB0LCBPYmplY3RUeXBlIG9iamVjdFR5cGUpIHsg
aW5zdHJ1bWVudGF0aW9uLT5hZGRPYmplY3RJbXBsKHQsIG9iamVjdFR5cGUsIGJ5UG9pbnRlcik7
IH0KKyAgICAgICAgc3RhdGljIHZvaWQgYWRkVmVjdG9yKE1lbW9yeUluc3RydW1lbnRhdGlvbiog
aW5zdHJ1bWVudGF0aW9uLCBjb25zdCBUKiBjb25zdCYgdCwgT2JqZWN0VHlwZSBvYmplY3RUeXBl
KSB7IGluc3RydW1lbnRhdGlvbi0+YWRkVmVjdG9ySW1wbCh0LCBvYmplY3RUeXBlLCBieVBvaW50
ZXIpOyB9CiAgICAgfTsKIAogICAgIHRlbXBsYXRlIDx0eXBlbmFtZSBUPiB2b2lkIGFkZEluc3Ry
dW1lbnRlZE9iamVjdEltcGwoY29uc3QgVCogY29uc3QmLCBPd25pbmdUeXBlKTsKKyAgICB0ZW1w
bGF0ZSA8dHlwZW5hbWUgVD4gdm9pZCBhZGRJbnN0cnVtZW50ZWRPYmplY3RJbXBsKGNvbnN0IERh
dGFSZWY8VD4qIGNvbnN0JiwgT3duaW5nVHlwZSk7CiAgICAgdGVtcGxhdGUgPHR5cGVuYW1lIFQ+
IHZvaWQgYWRkSW5zdHJ1bWVudGVkT2JqZWN0SW1wbChjb25zdCBPd25QdHI8VD4qIGNvbnN0Jiwg
T3duaW5nVHlwZSk7CiAgICAgdGVtcGxhdGUgPHR5cGVuYW1lIFQ+IHZvaWQgYWRkSW5zdHJ1bWVu
dGVkT2JqZWN0SW1wbChjb25zdCBSZWZQdHI8VD4qIGNvbnN0JiwgT3duaW5nVHlwZSk7CiAKICAg
ICB0ZW1wbGF0ZSA8dHlwZW5hbWUgVD4gdm9pZCBhZGRPYmplY3RJbXBsKGNvbnN0IFQqIGNvbnN0
JiwgT2JqZWN0VHlwZSwgT3duaW5nVHlwZSk7CisgICAgdGVtcGxhdGUgPHR5cGVuYW1lIFQ+IHZv
aWQgYWRkT2JqZWN0SW1wbChjb25zdCBEYXRhUmVmPFQ+KiBjb25zdCYgb2JqZWN0LCBPYmplY3RU
eXBlIG9iamVjdFR5cGUsIE93bmluZ1R5cGUpIHsgYWRkT2JqZWN0SW1wbChvYmplY3QtPmdldCgp
LCBvYmplY3RUeXBlLCBieVBvaW50ZXIpOyB9CisgICAgdGVtcGxhdGUgPHR5cGVuYW1lIFQ+IHZv
aWQgYWRkT2JqZWN0SW1wbChjb25zdCBPd25QdHI8VD4qIGNvbnN0JiBvYmplY3QsIE9iamVjdFR5
cGUgb2JqZWN0VHlwZSwgT3duaW5nVHlwZSkgeyBhZGRPYmplY3RJbXBsKG9iamVjdC0+Z2V0KCks
IG9iamVjdFR5cGUsIGJ5UG9pbnRlcik7IH0KKyAgICB0ZW1wbGF0ZSA8dHlwZW5hbWUgVD4gdm9p
ZCBhZGRPYmplY3RJbXBsKGNvbnN0IFJlZlB0cjxUPiogY29uc3QmIG9iamVjdCwgT2JqZWN0VHlw
ZSBvYmplY3RUeXBlLCBPd25pbmdUeXBlKSB7IGFkZE9iamVjdEltcGwob2JqZWN0LT5nZXQoKSwg
b2JqZWN0VHlwZSwgYnlQb2ludGVyKTsgfQorCisgICAgdGVtcGxhdGUgPHR5cGVuYW1lIFQ+IHZv
aWQgYWRkVmVjdG9ySW1wbChjb25zdCBUKiwgT2JqZWN0VHlwZSwgT3duaW5nVHlwZSk7CiB9Owog
CiBjbGFzcyBNZW1vcnlPYmplY3RJbmZvIHsKQEAgLTE3Niw4ICsxODgsNyBAQCBwdWJsaWM6CiAg
ICAgdGVtcGxhdGUgPHR5cGVuYW1lIFZlY3RvclR5cGU+IHZvaWQgYWRkSW5zdHJ1bWVudGVkVmVj
dG9yUHRyKGNvbnN0IE93blB0cjxWZWN0b3JUeXBlPiYgdmVjdG9yKSB7IG1fbWVtb3J5SW5zdHJ1
bWVudGF0aW9uLT5hZGRJbnN0cnVtZW50ZWRDb2xsZWN0aW9uKCp2ZWN0b3IsIG1fb2JqZWN0VHlw
ZSwgZmFsc2UpOyB9CiAgICAgdGVtcGxhdGUgPHR5cGVuYW1lIFZlY3RvclR5cGU+IHZvaWQgYWRk
SW5zdHJ1bWVudGVkVmVjdG9yUHRyKGNvbnN0IFZlY3RvclR5cGUqIGNvbnN0JiB2ZWN0b3IpIHsg
bV9tZW1vcnlJbnN0cnVtZW50YXRpb24tPmFkZEluc3RydW1lbnRlZENvbGxlY3Rpb24oKnZlY3Rv
ciwgbV9vYmplY3RUeXBlLCBmYWxzZSk7IH0KICAgICB0ZW1wbGF0ZSA8dHlwZW5hbWUgTGlzdEhh
c2hTZXRUeXBlPiB2b2lkIGFkZExpc3RIYXNoU2V0KGNvbnN0IExpc3RIYXNoU2V0VHlwZSYgc2V0
KSB7IG1fbWVtb3J5SW5zdHJ1bWVudGF0aW9uLT5hZGRMaXN0SGFzaFNldChzZXQsIG1fb2JqZWN0
VHlwZSwgdHJ1ZSk7IH0KLSAgICB0ZW1wbGF0ZSA8dHlwZW5hbWUgVmVjdG9yVHlwZT4gdm9pZCBh
ZGRWZWN0b3IoY29uc3QgVmVjdG9yVHlwZSYgdmVjdG9yKSB7IG1fbWVtb3J5SW5zdHJ1bWVudGF0
aW9uLT5hZGRWZWN0b3IodmVjdG9yLCBtX29iamVjdFR5cGUsIHRydWUpOyB9Ci0gICAgdGVtcGxh
dGUgPHR5cGVuYW1lIFZlY3RvclR5cGU+IHZvaWQgYWRkVmVjdG9yUHRyKGNvbnN0IFZlY3RvclR5
cGUqIGNvbnN0IHZlY3RvcikgeyBtX21lbW9yeUluc3RydW1lbnRhdGlvbi0+YWRkVmVjdG9yKCp2
ZWN0b3IsIG1fb2JqZWN0VHlwZSwgZmFsc2UpOyB9CisgICAgdGVtcGxhdGUgPHR5cGVuYW1lIFZl
Y3RvclR5cGU+IHZvaWQgYWRkVmVjdG9yKGNvbnN0IFZlY3RvclR5cGUmIHZlY3RvcikgeyBtX21l
bW9yeUluc3RydW1lbnRhdGlvbi0+YWRkVmVjdG9yKHZlY3RvciwgbV9vYmplY3RUeXBlKTsgfQog
ICAgIHZvaWQgYWRkUmF3QnVmZmVyKGNvbnN0IHZvaWQqIGNvbnN0JiBidWZmZXIsIHNpemVfdCBz
aXplKSB7IG1fbWVtb3J5SW5zdHJ1bWVudGF0aW9uLT5hZGRSYXdCdWZmZXIoYnVmZmVyLCBtX29i
amVjdFR5cGUsIHNpemUpOyB9CiAKICAgICB2b2lkIGFkZFN0cmluZyhjb25zdCBTdHJpbmcmIHN0
cmluZykgeyBtX21lbW9yeUluc3RydW1lbnRhdGlvbi0+YWRkU3RyaW5nKHN0cmluZywgbV9vYmpl
Y3RUeXBlKTsgfQpAQCAtMjAyLDE1ICsyMTMsMjEgQEAgdm9pZCBNZW1vcnlJbnN0cnVtZW50YXRp
b246OmFkZEluc3RydW1lbnRlZE9iamVjdEltcGwoY29uc3QgVCogY29uc3QmIG9iamVjdCwgT3cK
IH0KIAogdGVtcGxhdGUgPHR5cGVuYW1lIFQ+Ci12b2lkIE1lbW9yeUluc3RydW1lbnRhdGlvbjo6
YWRkSW5zdHJ1bWVudGVkT2JqZWN0SW1wbChjb25zdCBPd25QdHI8VD4qIGNvbnN0JiBvYmplY3Qs
IE93bmluZ1R5cGUgb3duaW5nVHlwZSkKK3ZvaWQgTWVtb3J5SW5zdHJ1bWVudGF0aW9uOjphZGRJ
bnN0cnVtZW50ZWRPYmplY3RJbXBsKGNvbnN0IERhdGFSZWY8VD4qIGNvbnN0JiBvYmplY3QsIE93
bmluZ1R5cGUpCit7CisgICAgYWRkSW5zdHJ1bWVudGVkT2JqZWN0SW1wbChvYmplY3QtPmdldCgp
LCBieVBvaW50ZXIpOworfQorCit0ZW1wbGF0ZSA8dHlwZW5hbWUgVD4KK3ZvaWQgTWVtb3J5SW5z
dHJ1bWVudGF0aW9uOjphZGRJbnN0cnVtZW50ZWRPYmplY3RJbXBsKGNvbnN0IE93blB0cjxUPiog
Y29uc3QmIG9iamVjdCwgT3duaW5nVHlwZSkKIHsKLSAgICBhZGRJbnN0cnVtZW50ZWRPYmplY3RJ
bXBsKG9iamVjdC0+Z2V0KCksIG93bmluZ1R5cGUpOworICAgIGFkZEluc3RydW1lbnRlZE9iamVj
dEltcGwob2JqZWN0LT5nZXQoKSwgYnlQb2ludGVyKTsKIH0KIAogdGVtcGxhdGUgPHR5cGVuYW1l
IFQ+Ci12b2lkIE1lbW9yeUluc3RydW1lbnRhdGlvbjo6YWRkSW5zdHJ1bWVudGVkT2JqZWN0SW1w
bChjb25zdCBSZWZQdHI8VD4qIGNvbnN0JiBvYmplY3QsIE93bmluZ1R5cGUgb3duaW5nVHlwZSkK
K3ZvaWQgTWVtb3J5SW5zdHJ1bWVudGF0aW9uOjphZGRJbnN0cnVtZW50ZWRPYmplY3RJbXBsKGNv
bnN0IFJlZlB0cjxUPiogY29uc3QmIG9iamVjdCwgT3duaW5nVHlwZSkKIHsKLSAgICBhZGRJbnN0
cnVtZW50ZWRPYmplY3RJbXBsKG9iamVjdC0+Z2V0KCksIG93bmluZ1R5cGUpOworICAgIGFkZElu
c3RydW1lbnRlZE9iamVjdEltcGwob2JqZWN0LT5nZXQoKSwgYnlQb2ludGVyKTsKIH0KIAogLy8g
TGluayB0aW1lIGd1YXJkIGZvciBzdHJpbmcgbWVtYmVycy4gVGhleSBwcm9kdWNlIGxpbmsgZXJy
b3IgaXMgYSBzdHJpbmcgaXMgcmVwb3J0ZWQgdmlhIGFkZE9iamVjdC4KQEAgLTI2NCwxMSArMjgx
LDEyIEBAIHZvaWQgTWVtb3J5SW5zdHJ1bWVudGF0aW9uOjphZGRMaXN0SGFzaFNldChjb25zdCBM
aXN0SGFzaFNldFR5cGUmIGhhc2hTZXQsIE9iamVjCiB9CiAKIHRlbXBsYXRlIDx0eXBlbmFtZSBW
ZWN0b3JUeXBlPgotdm9pZCBNZW1vcnlJbnN0cnVtZW50YXRpb246OmFkZFZlY3Rvcihjb25zdCBW
ZWN0b3JUeXBlJiB2ZWN0b3IsIE9iamVjdFR5cGUgb2JqZWN0VHlwZSwgYm9vbCBjb250ZW50T25s
eSkKK3ZvaWQgTWVtb3J5SW5zdHJ1bWVudGF0aW9uOjphZGRWZWN0b3JJbXBsKGNvbnN0IFZlY3Rv
clR5cGUqIHZlY3RvciwgT2JqZWN0VHlwZSBvYmplY3RUeXBlLCBPd25pbmdUeXBlIG93bmluZ1R5
cGUpCiB7Ci0gICAgaWYgKCF2ZWN0b3IuZGF0YSgpIHx8IHZpc2l0ZWQodmVjdG9yLmRhdGEoKSkp
CisgICAgaWYgKCF2ZWN0b3IgfHwgdmlzaXRlZCh2ZWN0b3IpIHx8ICF2ZWN0b3ItPmRhdGEoKSB8
fCB2aXNpdGVkKHZlY3Rvci0+ZGF0YSgpKSkKICAgICAgICAgcmV0dXJuOwotICAgIGNvdW50T2Jq
ZWN0U2l6ZShvYmplY3RUeXBlLCBjYWxjdWxhdGVDb250YWluZXJTaXplKHZlY3RvciwgY29udGVu
dE9ubHkpKTsKKyAgICBib29sIGNvbnRlbnRPbmx5ID0gb3duaW5nVHlwZSA9PSBieVJlZmVyZW5j
ZTsKKyAgICBjb3VudE9iamVjdFNpemUob2JqZWN0VHlwZSwgY2FsY3VsYXRlQ29udGFpbmVyU2l6
ZSgqdmVjdG9yLCBjb250ZW50T25seSkpOwogfQogCiB0ZW1wbGF0ZSA8dHlwZW5hbWUgQ29udGFp
bmVyPgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL05vZGUuY3BwIGIvU291cmNlL1dl
YkNvcmUvZG9tL05vZGUuY3BwCmluZGV4IDQ0N2I3NWEyYTZjYTQyZDRkYTkyNjNlZjRhZmE3NGI0
MDE3ODU5YzAuLjdiNTI4ZWM1ZGRiMTExYzg1YjMyOGFlN2U2YTU4YWEwZjBiMDAyOTYgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9k
b20vTm9kZS5jcHAKQEAgLTY3LDYgKzY3LDcgQEAKICNpbmNsdWRlICJLZXlib2FyZEV2ZW50Lmgi
CiAjaW5jbHVkZSAiTGFiZWxzTm9kZUxpc3QuaCIKICNpbmNsdWRlICJMb2dnaW5nLmgiCisjaW5j
bHVkZSAiTWVtb3J5SW5zdHJ1bWVudGF0aW9uLmgiCiAjaW5jbHVkZSAiTW91c2VFdmVudC5oIgog
I2luY2x1ZGUgIk11dGF0aW9uRXZlbnQuaCIKICNpbmNsdWRlICJOYW1lTm9kZUxpc3QuaCIKQEAg
LTI4MjksNiArMjgzMCw4IEBAIHZvaWQgTm9kZTo6cmVwb3J0TWVtb3J5VXNhZ2UoTWVtb3J5T2Jq
ZWN0SW5mbyogbWVtb3J5T2JqZWN0SW5mbykgY29uc3QKICAgICBpbmZvLmFkZEluc3RydW1lbnRl
ZE1lbWJlcihtX2RvY3VtZW50KTsKICAgICBpbmZvLmFkZEluc3RydW1lbnRlZE1lbWJlcihtX25l
eHQpOwogICAgIGluZm8uYWRkSW5zdHJ1bWVudGVkTWVtYmVyKG1fcHJldmlvdXMpOworICAgIGlm
IChtX3JlbmRlcmVyKQorICAgICAgICBpbmZvLmFkZEluc3RydW1lbnRlZE1lbWJlcihtX3JlbmRl
cmVyLT5zdHlsZSgpKTsKIH0KIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvZG9tL05vZGUuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlLmgKaW5k
ZXggYTFmYjE4NGMzMmRmOGM0MmJiNDc5YWU4MmU4YTBlNTU2NTU5MTUzMC4uMTkxZTFiOWFhN2M0
NWY5NzFmZDU5N2NkMTU0MGQ0MjVlZmUwNjRiMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
ZG9tL05vZGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZS5oCkBAIC0yOSw3ICsyOSw2
IEBACiAjaW5jbHVkZSAiRXZlbnRUYXJnZXQuaCIKICNpbmNsdWRlICJLVVJMSGFzaC5oIgogI2lu
Y2x1ZGUgIkxheW91dFR5cGVzLmgiCi0jaW5jbHVkZSAiTWVtb3J5SW5zdHJ1bWVudGF0aW9uLmgi
CiAjaW5jbHVkZSAiTXV0YXRpb25PYnNlcnZlci5oIgogI2luY2x1ZGUgIlJlbmRlclN0eWxlQ29u
c3RhbnRzLmgiCiAjaW5jbHVkZSAiU2NyaXB0V3JhcHBhYmxlLmgiCkBAIC02Niw2ICs2NSw3IEBA
IGNsYXNzIEZyYW1lOwogY2xhc3MgSFRNTElucHV0RWxlbWVudDsKIGNsYXNzIEludFJlY3Q7CiBj
bGFzcyBLZXlib2FyZEV2ZW50OworY2xhc3MgTWVtb3J5T2JqZWN0SW5mbzsKIGNsYXNzIE5TUmVz
b2x2ZXI7CiBjbGFzcyBOYW1lZE5vZGVNYXA7CiBjbGFzcyBOYW1lTm9kZUxpc3Q7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGUuY3BwIGIvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlLmNwcAppbmRleCBhYjAxM2Fm
Yjk5NjNjYzY5NGFjYWJkMjBhNWRjOTMxOGM0NGU2ZTJhLi43MGIzMjBlNmJmN2I4MmFhYTI5MTY4
MzZiMmMyNjMyM2M2YTJlY2QxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
c3R5bGUvUmVuZGVyU3R5bGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHls
ZS9SZW5kZXJTdHlsZS5jcHAKQEAgLTI4LDYgKzI4LDcgQEAKICNpbmNsdWRlICJDU1NQcm9wZXJ0
eU5hbWVzLmgiCiAjaW5jbHVkZSAiQ1NTV3JhcFNoYXBlcy5oIgogI2luY2x1ZGUgIkZvbnRTZWxl
Y3Rvci5oIgorI2luY2x1ZGUgIk1lbW9yeUluc3RydW1lbnRhdGlvbi5oIgogI2luY2x1ZGUgIlF1
b3Rlc0RhdGEuaCIKICNpbmNsdWRlICJSZW5kZXJBcmVuYS5oIgogI2luY2x1ZGUgIlJlbmRlck9i
amVjdC5oIgpAQCAtMTQ4Niw0ICsxNDg3LDI0IEBAIExheW91dEJveEV4dGVudCBSZW5kZXJTdHls
ZTo6aW1hZ2VPdXRzZXRzKGNvbnN0IE5pbmVQaWVjZUltYWdlJiBpbWFnZSkgY29uc3QKICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIE5pbmVQaWVjZUltYWdlOjpjb21wdXRlT3V0c2V0KGltYWdl
Lm91dHNldCgpLmxlZnQoKSwgYm9yZGVyTGVmdFdpZHRoKCkpKTsKIH0KIAordm9pZCBSZW5kZXJT
dHlsZTo6cmVwb3J0TWVtb3J5VXNhZ2UoTWVtb3J5T2JqZWN0SW5mbyogbWVtb3J5T2JqZWN0SW5m
bykgY29uc3QKK3sKKyAgICBNZW1vcnlDbGFzc0luZm88UmVuZGVyU3R5bGU+IGluZm8obWVtb3J5
T2JqZWN0SW5mbywgdGhpcywgTWVtb3J5SW5zdHJ1bWVudGF0aW9uOjpDU1MpOworICAgIGluZm8u
YWRkTWVtYmVyKG1fYm94KTsKKyAgICBpbmZvLmFkZE1lbWJlcih2aXN1YWwpOworICAgIC8vIEZJ
WE1FOiBtX2JhY2tncm91bmQgY29udGFpbnMgUmVmUHRyPFN0eWxlSW1hZ2U+IHRoYXQgbWlnaHQg
bmVlZCB0byBiZSBpbnN0cnVtZW50ZWQuCisgICAgaW5mby5hZGRNZW1iZXIobV9iYWNrZ3JvdW5k
KTsKKyAgICAvLyBGSVhNRTogc3Vycm9uZCBjb250YWlucyBzb21lIGZpZWxkcyBlLmcuIEJvcmRl
ckRhdGEgdGhhdCBtaWdodCBuZWVkIHRvIGJlIGluc3RydW1lbnRlZC4KKyAgICBpbmZvLmFkZE1l
bWJlcihzdXJyb3VuZCk7CisgICAgaW5mby5hZGRJbnN0cnVtZW50ZWRNZW1iZXIocmFyZU5vbklu
aGVyaXRlZERhdGEpOworICAgIGluZm8uYWRkSW5zdHJ1bWVudGVkTWVtYmVyKHJhcmVJbmhlcml0
ZWREYXRhKTsKKyAgICAvLyBGSVhNRTogaW5oZXJpdGVkIGNvbnRhaW5zIFN0eWxlSW1hZ2UgYW5k
IEZvbnQgZmllbGRzIHRoYXQgbWlnaHQgbmVlZCB0byBiZSBpbnN0cnVtZW50ZWQuCisgICAgaW5m
by5hZGRNZW1iZXIoaW5oZXJpdGVkKTsKKyAgICBpZiAobV9jYWNoZWRQc2V1ZG9TdHlsZXMpCisg
ICAgICAgIGluZm8uYWRkVmVjdG9yKG1fY2FjaGVkUHNldWRvU3R5bGVzLmdldCgpKTsKKyNpZiBF
TkFCTEUoU1ZHKQorICAgIGluZm8uYWRkTWVtYmVyKG1fc3ZnU3R5bGUpOworI2VuZGlmCit9CisK
IH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9zdHlsZS9SZW5kZXJTdHlsZS5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxl
L1JlbmRlclN0eWxlLmgKaW5kZXggNTdiMTk1ZjFhMzBkZTkxZTE2YzA4NzhjNTI1Yzg3ZTM4ODc2
ODU5ZC4uODg5OTQ4OTRiNDIxZTA1NmIwNjgwNWYwYjg3ZWFlNWMxYmUyMDFhYSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlLmgKQEAgLTEwNSw2ICsxMDUs
NyBAQCBjbGFzcyBCb3JkZXJEYXRhOwogY2xhc3MgQ291bnRlckNvbnRlbnQ7CiBjbGFzcyBDdXJz
b3JMaXN0OwogY2xhc3MgSW50UmVjdDsKK2NsYXNzIE1lbW9yeU9iamVjdEluZm87CiBjbGFzcyBQ
YWlyOwogY2xhc3MgU2hhZG93RGF0YTsKIGNsYXNzIFN0eWxlSW1hZ2U7CkBAIC0xNTQxLDYgKzE1
NDIsOCBAQCBwdWJsaWM6CiAKICAgICB2b2lkIHNldEhhc0V4cGxpY2l0bHlJbmhlcml0ZWRQcm9w
ZXJ0aWVzKCkgeyBtX2JpdGZpZWxkcy5zZXRFeHBsaWNpdEluaGVyaXRhbmNlKHRydWUpOyB9CiAg
ICAgYm9vbCBoYXNFeHBsaWNpdGx5SW5oZXJpdGVkUHJvcGVydGllcygpIGNvbnN0IHsgcmV0dXJu
IG1fYml0ZmllbGRzLmV4cGxpY2l0SW5oZXJpdGFuY2UoKTsgfQorCisgICAgdm9pZCByZXBvcnRN
ZW1vcnlVc2FnZShNZW1vcnlPYmplY3RJbmZvKikgY29uc3Q7CiAgICAgCiAgICAgLy8gSW5pdGlh
bCB2YWx1ZXMgZm9yIGFsbCB0aGUgcHJvcGVydGllcwogICAgIHN0YXRpYyBFQm9yZGVyQ29sbGFw
c2UgaW5pdGlhbEJvcmRlckNvbGxhcHNlKCkgeyByZXR1cm4gQlNFUEFSQVRFOyB9CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvU3R5bGVSYXJlSW5oZXJpdGVkRGF0
YS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvU3R5bGVSYXJlSW5oZXJpdGVk
RGF0YS5jcHAKaW5kZXggYzIxY2NhY2NiNWE4OWUxZmYwODMyOWY1YWZlNzk5ZjBkMmM0MzExYi4u
ZDkzOWFhZDM0NzIwYzQ2MzZmNzQ3MDgyZjRhZjc0Mjg4ODg5N2UwMCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1N0eWxlUmFyZUluaGVyaXRlZERhdGEuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9TdHlsZVJhcmVJbmhlcml0ZWREYXRh
LmNwcApAQCAtMjMsNiArMjMsNyBAQAogI2luY2x1ZGUgIlN0eWxlUmFyZUluaGVyaXRlZERhdGEu
aCIKIAogI2luY2x1ZGUgIkN1cnNvckxpc3QuaCIKKyNpbmNsdWRlICJNZW1vcnlJbnN0cnVtZW50
YXRpb24uaCIKICNpbmNsdWRlICJRdW90ZXNEYXRhLmgiCiAjaW5jbHVkZSAiUmVuZGVyU3R5bGUu
aCIKICNpbmNsdWRlICJSZW5kZXJTdHlsZUNvbnN0YW50cy5oIgpAQCAtMjYxLDQgKzI2MiwyMCBA
QCBib29sIFN0eWxlUmFyZUluaGVyaXRlZERhdGE6OnNoYWRvd0RhdGFFcXVpdmFsZW50KGNvbnN0
IFN0eWxlUmFyZUluaGVyaXRlZERhdGEmCiAgICAgcmV0dXJuIHRydWU7CiB9CiAKK3ZvaWQgU3R5
bGVSYXJlSW5oZXJpdGVkRGF0YTo6cmVwb3J0TWVtb3J5VXNhZ2UoTWVtb3J5T2JqZWN0SW5mbyog
bWVtb3J5T2JqZWN0SW5mbykgY29uc3QKK3sKKyAgICBNZW1vcnlDbGFzc0luZm88U3R5bGVSYXJl
SW5oZXJpdGVkRGF0YT4gaW5mbyhtZW1vcnlPYmplY3RJbmZvLCB0aGlzLCBNZW1vcnlJbnN0cnVt
ZW50YXRpb246OkNTUyk7CisgICAgaW5mby5hZGRNZW1iZXIodGV4dFNoYWRvdyk7CisgICAgaW5m
by5hZGRTdHJpbmcoaGlnaGxpZ2h0KTsKKyAgICBpbmZvLmFkZE1lbWJlcihjdXJzb3JEYXRhKTsK
KyAgICBpbmZvLmFkZFN0cmluZyhoeXBoZW5hdGlvblN0cmluZyk7CisgICAgaW5mby5hZGRTdHJp
bmcobG9jYWxlKTsKKyAgICBpbmZvLmFkZFN0cmluZyh0ZXh0RW1waGFzaXNDdXN0b21NYXJrKTsK
KyAgICBpbmZvLmFkZE1lbWJlcihxdW90ZXMpOworICAgIGluZm8uYWRkU3RyaW5nKG1fbGluZUdy
aWQpOworI2lmIEVOQUJMRShDU1NfVkFSSUFCTEVTKQorICAgIGluZm8uYWRkTWVtYmVyKG1fdmFy
aWFibGVzKTsKKyNlbmRpZgorfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvU3R5bGVSYXJlSW5oZXJpdGVkRGF0YS5o
IGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1N0eWxlUmFyZUluaGVyaXRlZERhdGEu
aAppbmRleCBiMzA5ODJkZjk3YjFjZTI2MmVkNzJkZGU3MDE3ZmU4ZjhlNWU1YWMwLi5iYjQzM2Vk
Mjc2Y2FkYjUyODQ4NWEzM2RmNDQzYjFmYWI1ZGQ1YmE4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvc3R5bGUvU3R5bGVSYXJlSW5oZXJpdGVkRGF0YS5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9TdHlsZVJhcmVJbmhlcml0ZWREYXRhLmgKQEAgLTM5
LDYgKzM5LDcgQEAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgQ3Vyc29yTGlzdDsKK2Ns
YXNzIE1lbW9yeU9iamVjdEluZm87CiBjbGFzcyBRdW90ZXNEYXRhOwogY2xhc3MgU2hhZG93RGF0
YTsKIApAQCAtNTgsNiArNTksOCBAQCBwdWJsaWM6CiAgICAgfQogICAgIGJvb2wgc2hhZG93RGF0
YUVxdWl2YWxlbnQoY29uc3QgU3R5bGVSYXJlSW5oZXJpdGVkRGF0YSYpIGNvbnN0OwogCisgICAg
dm9pZCByZXBvcnRNZW1vcnlVc2FnZShNZW1vcnlPYmplY3RJbmZvKikgY29uc3Q7CisKICAgICBD
b2xvciB0ZXh0U3Ryb2tlQ29sb3I7CiAgICAgZmxvYXQgdGV4dFN0cm9rZVdpZHRoOwogICAgIENv
bG9yIHRleHRGaWxsQ29sb3I7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
c3R5bGUvU3R5bGVSYXJlTm9uSW5oZXJpdGVkRGF0YS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvc3R5bGUvU3R5bGVSYXJlTm9uSW5oZXJpdGVkRGF0YS5jcHAKaW5kZXggMjJiMzI3MmU4
YzM3ZDIxZWUzNjQ5YzBhNDVhN2Q0M2Q1MTIxMDQ0ZC4uMjFkN2VjYjU3MzUwZDE3NjAwNDYyYzJk
Y2UwODM4YjgzMjQ5YTNiMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0
eWxlL1N0eWxlUmFyZU5vbkluaGVyaXRlZERhdGEuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9zdHlsZS9TdHlsZVJhcmVOb25Jbmhlcml0ZWREYXRhLmNwcApAQCAtMjMsNiArMjMs
NyBAQAogI2luY2x1ZGUgIlN0eWxlUmFyZU5vbkluaGVyaXRlZERhdGEuaCIKIAogI2luY2x1ZGUg
IkNvbnRlbnREYXRhLmgiCisjaW5jbHVkZSAiTWVtb3J5SW5zdHJ1bWVudGF0aW9uLmgiCiAjaW5j
bHVkZSAiUmVuZGVyQ291bnRlci5oIgogI2luY2x1ZGUgIlJlbmRlclN0eWxlLmgiCiAjaW5jbHVk
ZSAiU2hhZG93RGF0YS5oIgpAQCAtMjg2LDQgKzI4NywzMiBAQCBib29sIFN0eWxlUmFyZU5vbklu
aGVyaXRlZERhdGE6OnRyYW5zaXRpb25EYXRhRXF1aXZhbGVudChjb25zdCBTdHlsZVJhcmVOb25J
bmhlcgogICAgIHJldHVybiB0cnVlOwogfQogCit2b2lkIFN0eWxlUmFyZU5vbkluaGVyaXRlZERh
dGE6OnJlcG9ydE1lbW9yeVVzYWdlKE1lbW9yeU9iamVjdEluZm8qIG1lbW9yeU9iamVjdEluZm8p
IGNvbnN0Cit7CisgICAgTWVtb3J5Q2xhc3NJbmZvPFN0eWxlUmFyZU5vbkluaGVyaXRlZERhdGE+
IGluZm8obWVtb3J5T2JqZWN0SW5mbywgdGhpcywgTWVtb3J5SW5zdHJ1bWVudGF0aW9uOjpDU1Mp
OworI2lmIEVOQUJMRShEQVNIQk9BUkRfU1VQUE9SVCkKKyAgICBpbmZvLmFkZFZlY3RvcihtX2Rh
c2hib2FyZFJlZ2lvbnMpOworI2VuZGlmCisgICAgaW5mby5hZGRNZW1iZXIobV9kZXByZWNhdGVk
RmxleGlibGVCb3gpOworICAgIGluZm8uYWRkTWVtYmVyKG1fZmxleGlibGVCb3gpOworICAgIGlu
Zm8uYWRkTWVtYmVyKG1fbWFycXVlZSk7CisgICAgaW5mby5hZGRNZW1iZXIobV9tdWx0aUNvbCk7
CisgICAgaW5mby5hZGRNZW1iZXIobV90cmFuc2Zvcm0pOworI2lmIEVOQUJMRShDU1NfRklMVEVS
UykKKyAgICBpbmZvLmFkZE1lbWJlcihtX2ZpbHRlcik7CisjZW5kaWYKKyAgICBpbmZvLmFkZE1l
bWJlcihtX2dyaWQpOworICAgIGluZm8uYWRkTWVtYmVyKG1fZ3JpZEl0ZW0pOworICAgIGluZm8u
YWRkTWVtYmVyKG1fY29udGVudCk7CisgICAgaW5mby5hZGRNZW1iZXIobV9jb3VudGVyRGlyZWN0
aXZlcyk7CisgICAgaW5mby5hZGRNZW1iZXIobV9ib3hTaGFkb3cpOworICAgIGluZm8uYWRkTWVt
YmVyKG1fYm94UmVmbGVjdCk7CisgICAgaW5mby5hZGRNZW1iZXIobV9hbmltYXRpb25zKTsKKyAg
ICBpbmZvLmFkZE1lbWJlcihtX3RyYW5zaXRpb25zKTsKKyAgICBpbmZvLmFkZE1lbWJlcihtX3dy
YXBTaGFwZUluc2lkZSk7CisgICAgaW5mby5hZGRNZW1iZXIobV93cmFwU2hhcGVPdXRzaWRlKTsK
KyAgICBpbmZvLmFkZFN0cmluZyhtX2Zsb3dUaHJlYWQpOworICAgIGluZm8uYWRkU3RyaW5nKG1f
cmVnaW9uVGhyZWFkKTsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1N0eWxlUmFyZU5vbkluaGVyaXRlZERhdGEu
aCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9TdHlsZVJhcmVOb25Jbmhlcml0ZWRE
YXRhLmgKaW5kZXggODYyYzYxZDdhZjhhNTc5Y2E5NjA0MmFhYTQ0OGNiOWNjYzRhNGNlZi4uZGNl
NWRmNmVmYjBjZWMwNDc0ZmVhOGE4YTViNDI1YWJhN2IzZTVkYSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1N0eWxlUmFyZU5vbkluaGVyaXRlZERhdGEuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvU3R5bGVSYXJlTm9uSW5oZXJpdGVkRGF0
YS5oCkBAIC0zOSw2ICszOSw3IEBACiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIEFuaW1h
dGlvbkxpc3Q7CitjbGFzcyBNZW1vcnlPYmplY3RJbmZvOwogY2xhc3MgU2hhZG93RGF0YTsKIGNs
YXNzIFN0eWxlRGVwcmVjYXRlZEZsZXhpYmxlQm94RGF0YTsKICNpZiBFTkFCTEUoQ1NTX0ZJTFRF
UlMpCkBAIC04OSw2ICs5MCw4IEBAIHB1YmxpYzoKICAgICBib29sIGFuaW1hdGlvbkRhdGFFcXVp
dmFsZW50KGNvbnN0IFN0eWxlUmFyZU5vbkluaGVyaXRlZERhdGEmKSBjb25zdDsKICAgICBib29s
IHRyYW5zaXRpb25EYXRhRXF1aXZhbGVudChjb25zdCBTdHlsZVJhcmVOb25Jbmhlcml0ZWREYXRh
JikgY29uc3Q7CiAKKyAgICB2b2lkIHJlcG9ydE1lbW9yeVVzYWdlKE1lbW9yeU9iamVjdEluZm8q
KSBjb25zdDsKKwogICAgIGZsb2F0IG9wYWNpdHk7IC8vIFdoZXRoZXIgb3Igbm90IHdlJ3JlIHRy
YW5zcGFyZW50LgogCiAgICAgZmxvYXQgbV9hc3BlY3RSYXRpb0Rlbm9taW5hdG9yOwo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>156030</attachid>
            <date>2012-08-02 03:49:23 -0700</date>
            <delta_ts>2012-08-02 07:15:15 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-91759-20120802144904.patch</filename>
            <type>text/plain</type>
            <size>17063</size>
            <attacher name="Alexei Filippov">alph</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTI0NDM1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggM2NmYjFlMmY5OWQzYWJi
MDAyYWUyZDk0ZGRmZmJlYWQ0NjYyY2JlNy4uYWI2YmU4MTBjN2M2YmU3ZWE1MjE0MGQxZmY3MmY5
MTg4MDVjMWQxNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ0IEBACisyMDEyLTA4LTAyICBBbGV4
ZWkgRmlsaXBwb3YgIDxhbGV4ZWlmQGNocm9taXVtLm9yZz4KKworICAgICAgICBXZWIgSW5zcGVj
dG9yOiBjb3VudCBSZW5kZXJTdHlsZSBvYmplY3RzIGluIHRoZSBuYXRpdmUgbWVtb3J5IHByb2Zp
bGVyCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05MTc1
OQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoZSBw
YXRjaCBhZGRzIGluc3RydW1lbnRhdGlvbiB0byB0aGUgZm9sbG93aW5nIGNsYXNzZXM6CisgICAg
ICAgICAgLSBSZW5kZXJTdHlsZQorICAgICAgICAgIC0gU3R5bGVSYXJlSW5oZXJpdGVkRGF0YQor
ICAgICAgICAgIC0gU3R5bGVSYXJlTm9uSW5oZXJpdGVkRGF0YQorCisgICAgICAgICogYmluZGlu
Z3MvanMvU2NyaXB0V3JhcHBhYmxlLmg6CisgICAgICAgICogYmluZGluZ3MvdjgvU2NyaXB0V3Jh
cHBhYmxlLmg6CisgICAgICAgICogZG9tL01lbW9yeUluc3RydW1lbnRhdGlvbi5oOgorICAgICAg
ICAoV2ViQ29yZSk6CisgICAgICAgIChXZWJDb3JlOjpNZW1vcnlJbnN0cnVtZW50YXRpb246Ok93
bmluZ1RyYWl0czo6YWRkT2JqZWN0KToKKyAgICAgICAgKFdlYkNvcmU6Ok1lbW9yeUluc3RydW1l
bnRhdGlvbjo6YWRkSW5zdHJ1bWVudGVkT2JqZWN0SW1wbCk6CisgICAgICAgIChXZWJDb3JlOjpN
ZW1vcnlJbnN0cnVtZW50YXRpb246OmFkZE9iamVjdEltcGwpOgorICAgICAgICAqIGRvbS9Ob2Rl
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok5vZGU6OnJlcG9ydE1lbW9yeVVzYWdlKToKKyAgICAg
ICAgKiBkb20vTm9kZS5oOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgICogcmVuZGVyaW5n
L3N0eWxlL1JlbmRlclN0eWxlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclN0eWxlOjpy
ZXBvcnRNZW1vcnlVc2FnZSk6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKiByZW5kZXJp
bmcvc3R5bGUvUmVuZGVyU3R5bGUuaDoKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAqIHJl
bmRlcmluZy9zdHlsZS9TdHlsZVJhcmVJbmhlcml0ZWREYXRhLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OlN0eWxlUmFyZUluaGVyaXRlZERhdGE6OnJlcG9ydE1lbW9yeVVzYWdlKToKKyAgICAgICAg
KFdlYkNvcmUpOgorICAgICAgICAqIHJlbmRlcmluZy9zdHlsZS9TdHlsZVJhcmVJbmhlcml0ZWRE
YXRhLmg6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKFN0eWxlUmFyZUluaGVyaXRlZERh
dGEpOgorICAgICAgICAqIHJlbmRlcmluZy9zdHlsZS9TdHlsZVJhcmVOb25Jbmhlcml0ZWREYXRh
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlN0eWxlUmFyZU5vbkluaGVyaXRlZERhdGE6OnJlcG9y
dE1lbW9yeVVzYWdlKToKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAqIHJlbmRlcmluZy9z
dHlsZS9TdHlsZVJhcmVOb25Jbmhlcml0ZWREYXRhLmg6CisgICAgICAgIChXZWJDb3JlKToKKyAg
ICAgICAgKFN0eWxlUmFyZU5vbkluaGVyaXRlZERhdGEpOgorCiAyMDEyLTA4LTAyICBZdXJ5IFNl
bWlraGF0c2t5ICA8eXVyeXNAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFdlYiBJbnNwZWN0b3I6
IHJlbmFtZSByZXBvcnRNZW1vcnlVc2FnZSB0byByZXBvcnREZXNjZW5kYW50TWVtb3J5VXNhZ2Ug
aW4gU3R5bGVSdWxlQmFzZSBkZXNjZW5kYW50cwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9j
aHJvbWl1bS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwppbmRl
eCBiNDYxMjYyNTZmZjhmYTg0ODA2OWE1YjQwNzhjOTk3NTc1NjBkOTE0Li5jYWQ2YWRiZGViMjZj
MjcwZjZiZjRiYTBhZTMxNDkwNzc1MWYwODQyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2No
cm9taXVtL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwpA
QCAtMSwzICsxLDE3IEBACisyMDEyLTA4LTAyICBBbGV4ZWkgRmlsaXBwb3YgIDxhbGV4ZWlmQGNo
cm9taXVtLm9yZz4KKworICAgICAgICBXZWIgSW5zcGVjdG9yOiBjb3VudCBSZW5kZXJTdHlsZSBv
YmplY3RzIGluIHRoZSBuYXRpdmUgbWVtb3J5IHByb2ZpbGVyCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05MTc1OQorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZCBhIHRlc3QgZm9yIERhdGFSZWY8VD4gd3Jh
cHBlZCBtZW1iZXIgaW5zdHJ1bWVudGF0aW9uLgorCisgICAgICAgICogdGVzdHMvTWVtb3J5SW5z
dHJ1bWVudGF0aW9uVGVzdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbnN0cnVtZW50ZWRSZWZQ
dHI6OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpURVNUKToKKyAgICAgICAgKFdlYkNvcmUp
OgorCiAyMDEyLTA4LTAyICBQZXRlciBCZXZlcmxvbyAgPHBldGVyQGNocm9taXVtLm9yZz4KIAog
ICAgICAgICBVbnJldmlld2VkLiAgUm9sbGVkIERFUFMuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9qcy9TY3JpcHRXcmFwcGFibGUuaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL2pzL1NjcmlwdFdyYXBwYWJsZS5oCmluZGV4IDNjYjVkODE2YzExMWI4MDdmYTA2OTdhNjdj
ZDlmOWE5NjQyZDA1ZTcuLjBjZjJkN2ExNmM0ZWUwOGRjNDUzMDQ5MmUxMjQzMTQwZThmOWI1OTEg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1NjcmlwdFdyYXBwYWJsZS5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1NjcmlwdFdyYXBwYWJsZS5oCkBAIC0z
Miw2ICszMiw3IEBACiAjZGVmaW5lIFNjcmlwdFdyYXBwYWJsZV9oCiAKICNpbmNsdWRlICJKU0RP
TVdyYXBwZXIuaCIKKyNpbmNsdWRlICJNZW1vcnlJbnN0cnVtZW50YXRpb24uaCIKICNpbmNsdWRl
IDxoZWFwL1dlYWsuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvYmluZGluZ3MvdjgvU2NyaXB0V3JhcHBhYmxlLmggYi9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy92OC9TY3JpcHRXcmFwcGFibGUuaAppbmRleCBlZjJmNzYxOWYyNDUxMTA2NTdjN2Fl
MGE1YmEwMmVkYzA0ZDZmZjY5Li42NGE5MDUzOTI4YTYwZTE1MDgyMTY0NzYwNDI4NTZiMmE3YzNk
MDMwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9TY3JpcHRXcmFwcGFi
bGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9TY3JpcHRXcmFwcGFibGUuaApA
QCAtMzEsNiArMzEsNyBAQAogI2lmbmRlZiBTY3JpcHRXcmFwcGFibGVfaAogI2RlZmluZSBTY3Jp
cHRXcmFwcGFibGVfaAogCisjaW5jbHVkZSAiTWVtb3J5SW5zdHJ1bWVudGF0aW9uLmgiCiAjaW5j
bHVkZSA8djguaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvZG9tL01lbW9yeUluc3RydW1lbnRhdGlvbi5oIGIvU291cmNlL1dlYkNvcmUvZG9tL01l
bW9yeUluc3RydW1lbnRhdGlvbi5oCmluZGV4IDBjZDc4ZDUxYmM2NDMzZDk1ZTQwNTUyYzY0OTZk
OTNiYjhmNWFkYzIuLjMyMmI2ODliNzg3MWI2ZDE4YzVkNTc4YzI4MjNlZjJmNmY5MTcxM2MgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9NZW1vcnlJbnN0cnVtZW50YXRpb24uaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9kb20vTWVtb3J5SW5zdHJ1bWVudGF0aW9uLmgKQEAgLTM5LDYgKzM5
LDcgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCit0ZW1wbGF0ZSA8dHlwZW5hbWUgVD4gY2xh
c3MgRGF0YVJlZjsKIGNsYXNzIE1lbW9yeU9iamVjdEluZm87CiAKIGNsYXNzIE1lbW9yeUluc3Ry
dW1lbnRhdGlvbiB7CkBAIC0xMTEsMjAgKzExMiwyMiBAQCBwcml2YXRlOgogICAgIHRlbXBsYXRl
IDx0eXBlbmFtZSBUPgogICAgIHN0cnVjdCBPd25pbmdUcmFpdHMgeyAvLyBEZWZhdWx0IGJ5UmVm
ZXJlbmNlIGltcGxlbWVudGF0aW9uLgogICAgICAgICBzdGF0aWMgdm9pZCBhZGRJbnN0cnVtZW50
ZWRPYmplY3QoTWVtb3J5SW5zdHJ1bWVudGF0aW9uKiBpbnN0cnVtZW50YXRpb24sIGNvbnN0IFQm
IHQpIHsgaW5zdHJ1bWVudGF0aW9uLT5hZGRJbnN0cnVtZW50ZWRPYmplY3RJbXBsKCZ0LCBieVJl
ZmVyZW5jZSk7IH0KLSAgICAgICAgc3RhdGljIHZvaWQgYWRkT2JqZWN0KE1lbW9yeUluc3RydW1l
bnRhdGlvbiogaW5zdHJ1bWVudGF0aW9uLCBjb25zdCBUJiB0LCBNZW1vcnlJbnN0cnVtZW50YXRp
b246Ok9iamVjdFR5cGUgb2JqZWN0VHlwZSkgeyBpbnN0cnVtZW50YXRpb24tPmFkZE9iamVjdElt
cGwoJnQsIG9iamVjdFR5cGUsIGJ5UmVmZXJlbmNlKTsgfQorICAgICAgICBzdGF0aWMgdm9pZCBh
ZGRPYmplY3QoTWVtb3J5SW5zdHJ1bWVudGF0aW9uKiBpbnN0cnVtZW50YXRpb24sIGNvbnN0IFQm
IHQsIE9iamVjdFR5cGUgb2JqZWN0VHlwZSkgeyBpbnN0cnVtZW50YXRpb24tPmFkZE9iamVjdElt
cGwoJnQsIG9iamVjdFR5cGUsIGJ5UmVmZXJlbmNlKTsgfQogICAgIH07CiAKICAgICB0ZW1wbGF0
ZSA8dHlwZW5hbWUgVD4KICAgICBzdHJ1Y3QgT3duaW5nVHJhaXRzPFQqPiB7IC8vIEN1c3RvbSBi
eVBvaW50ZXIgaW1wbGVtZW50YXRpb24uCiAgICAgICAgIHN0YXRpYyB2b2lkIGFkZEluc3RydW1l
bnRlZE9iamVjdChNZW1vcnlJbnN0cnVtZW50YXRpb24qIGluc3RydW1lbnRhdGlvbiwgY29uc3Qg
VCogY29uc3QmIHQpIHsgaW5zdHJ1bWVudGF0aW9uLT5hZGRJbnN0cnVtZW50ZWRPYmplY3RJbXBs
KHQsIGJ5UG9pbnRlcik7IH0KLSAgICAgICAgc3RhdGljIHZvaWQgYWRkT2JqZWN0KE1lbW9yeUlu
c3RydW1lbnRhdGlvbiogaW5zdHJ1bWVudGF0aW9uLCBjb25zdCBUKiBjb25zdCYgdCwgTWVtb3J5
SW5zdHJ1bWVudGF0aW9uOjpPYmplY3RUeXBlIG9iamVjdFR5cGUpIHsgaW5zdHJ1bWVudGF0aW9u
LT5hZGRPYmplY3RJbXBsKHQsIG9iamVjdFR5cGUsIGJ5UG9pbnRlcik7IH0KKyAgICAgICAgc3Rh
dGljIHZvaWQgYWRkT2JqZWN0KE1lbW9yeUluc3RydW1lbnRhdGlvbiogaW5zdHJ1bWVudGF0aW9u
LCBjb25zdCBUKiBjb25zdCYgdCwgT2JqZWN0VHlwZSBvYmplY3RUeXBlKSB7IGluc3RydW1lbnRh
dGlvbi0+YWRkT2JqZWN0SW1wbCh0LCBvYmplY3RUeXBlLCBieVBvaW50ZXIpOyB9CiAgICAgfTsK
IAogICAgIHRlbXBsYXRlIDx0eXBlbmFtZSBUPiB2b2lkIGFkZEluc3RydW1lbnRlZE9iamVjdElt
cGwoY29uc3QgVCogY29uc3QmLCBPd25pbmdUeXBlKTsKKyAgICB0ZW1wbGF0ZSA8dHlwZW5hbWUg
VD4gdm9pZCBhZGRJbnN0cnVtZW50ZWRPYmplY3RJbXBsKGNvbnN0IERhdGFSZWY8VD4qIGNvbnN0
JiwgT3duaW5nVHlwZSk7CiAgICAgdGVtcGxhdGUgPHR5cGVuYW1lIFQ+IHZvaWQgYWRkSW5zdHJ1
bWVudGVkT2JqZWN0SW1wbChjb25zdCBPd25QdHI8VD4qIGNvbnN0JiwgT3duaW5nVHlwZSk7CiAg
ICAgdGVtcGxhdGUgPHR5cGVuYW1lIFQ+IHZvaWQgYWRkSW5zdHJ1bWVudGVkT2JqZWN0SW1wbChj
b25zdCBSZWZQdHI8VD4qIGNvbnN0JiwgT3duaW5nVHlwZSk7CiAKICAgICB0ZW1wbGF0ZSA8dHlw
ZW5hbWUgVD4gdm9pZCBhZGRPYmplY3RJbXBsKGNvbnN0IFQqIGNvbnN0JiwgT2JqZWN0VHlwZSwg
T3duaW5nVHlwZSk7CisgICAgdGVtcGxhdGUgPHR5cGVuYW1lIFQ+IHZvaWQgYWRkT2JqZWN0SW1w
bChjb25zdCBEYXRhUmVmPFQ+KiBjb25zdCYsIE9iamVjdFR5cGUsIE93bmluZ1R5cGUpOwogICAg
IHRlbXBsYXRlIDx0eXBlbmFtZSBUPiB2b2lkIGFkZE9iamVjdEltcGwoY29uc3QgT3duUHRyPFQ+
KiBjb25zdCYsIE9iamVjdFR5cGUsIE93bmluZ1R5cGUpOwogICAgIHRlbXBsYXRlIDx0eXBlbmFt
ZSBUPiB2b2lkIGFkZE9iamVjdEltcGwoY29uc3QgUmVmUHRyPFQ+KiBjb25zdCYsIE9iamVjdFR5
cGUsIE93bmluZ1R5cGUpOwogfTsKQEAgLTIwNyw2ICsyMTAsMTIgQEAgdm9pZCBNZW1vcnlJbnN0
cnVtZW50YXRpb246OmFkZEluc3RydW1lbnRlZE9iamVjdEltcGwoY29uc3QgVCogY29uc3QmIG9i
amVjdCwgT3cKIH0KIAogdGVtcGxhdGUgPHR5cGVuYW1lIFQ+Cit2b2lkIE1lbW9yeUluc3RydW1l
bnRhdGlvbjo6YWRkSW5zdHJ1bWVudGVkT2JqZWN0SW1wbChjb25zdCBEYXRhUmVmPFQ+KiBjb25z
dCYgb2JqZWN0LCBPd25pbmdUeXBlKQoreworICAgIGFkZEluc3RydW1lbnRlZE9iamVjdEltcGwo
b2JqZWN0LT5nZXQoKSwgYnlQb2ludGVyKTsKK30KKwordGVtcGxhdGUgPHR5cGVuYW1lIFQ+CiB2
b2lkIE1lbW9yeUluc3RydW1lbnRhdGlvbjo6YWRkSW5zdHJ1bWVudGVkT2JqZWN0SW1wbChjb25z
dCBPd25QdHI8VD4qIGNvbnN0JiBvYmplY3QsIE93bmluZ1R5cGUpCiB7CiAgICAgYWRkSW5zdHJ1
bWVudGVkT2JqZWN0SW1wbChvYmplY3QtPmdldCgpLCBieVBvaW50ZXIpOwpAQCAtMjE5LDYgKzIy
OCwxMiBAQCB2b2lkIE1lbW9yeUluc3RydW1lbnRhdGlvbjo6YWRkSW5zdHJ1bWVudGVkT2JqZWN0
SW1wbChjb25zdCBSZWZQdHI8VD4qIGNvbnN0JiBvYgogfQogCiB0ZW1wbGF0ZSA8dHlwZW5hbWUg
VD4KK3ZvaWQgTWVtb3J5SW5zdHJ1bWVudGF0aW9uOjphZGRPYmplY3RJbXBsKGNvbnN0IERhdGFS
ZWY8VD4qIGNvbnN0JiBvYmplY3QsIE9iamVjdFR5cGUgb2JqZWN0VHlwZSwgT3duaW5nVHlwZSkK
K3sKKyAgICBhZGRPYmplY3RJbXBsKG9iamVjdC0+Z2V0KCksIG9iamVjdFR5cGUsIGJ5UG9pbnRl
cik7Cit9CisKK3RlbXBsYXRlIDx0eXBlbmFtZSBUPgogdm9pZCBNZW1vcnlJbnN0cnVtZW50YXRp
b246OmFkZE9iamVjdEltcGwoY29uc3QgT3duUHRyPFQ+KiBjb25zdCYgb2JqZWN0LCBPYmplY3RU
eXBlIG9iamVjdFR5cGUsIE93bmluZ1R5cGUpCiB7CiAgICAgYWRkT2JqZWN0SW1wbChvYmplY3Qt
PmdldCgpLCBvYmplY3RUeXBlLCBieVBvaW50ZXIpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvZG9tL05vZGUuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL05vZGUuY3BwCmluZGV4IDlhNDIx
MmIxY2YwNWIwMjM5YTU5NDkzYWQwYWVmNjVkYzlhZWI4MWMuLmJmN2IwM2RhNGQzNmMxMzM3NjI5
YmFlYTM2NWZlZTRmMzU0M2M0OWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2Rl
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZS5jcHAKQEAgLTY3LDYgKzY3LDcgQEAK
ICNpbmNsdWRlICJLZXlib2FyZEV2ZW50LmgiCiAjaW5jbHVkZSAiTGFiZWxzTm9kZUxpc3QuaCIK
ICNpbmNsdWRlICJMb2dnaW5nLmgiCisjaW5jbHVkZSAiTWVtb3J5SW5zdHJ1bWVudGF0aW9uLmgi
CiAjaW5jbHVkZSAiTW91c2VFdmVudC5oIgogI2luY2x1ZGUgIk11dGF0aW9uRXZlbnQuaCIKICNp
bmNsdWRlICJOYW1lTm9kZUxpc3QuaCIKQEAgLTI4MTksNiArMjgyMCw4IEBAIHZvaWQgTm9kZTo6
cmVwb3J0TWVtb3J5VXNhZ2UoTWVtb3J5T2JqZWN0SW5mbyogbWVtb3J5T2JqZWN0SW5mbykgY29u
c3QKICAgICBpbmZvLmFkZEluc3RydW1lbnRlZE1lbWJlcihtX2RvY3VtZW50KTsKICAgICBpbmZv
LmFkZEluc3RydW1lbnRlZE1lbWJlcihtX25leHQpOwogICAgIGluZm8uYWRkSW5zdHJ1bWVudGVk
TWVtYmVyKG1fcHJldmlvdXMpOworICAgIGlmIChtX3JlbmRlcmVyKQorICAgICAgICBpbmZvLmFk
ZEluc3RydW1lbnRlZE1lbWJlcihtX3JlbmRlcmVyLT5zdHlsZSgpKTsKIH0KIAogfSAvLyBuYW1l
c3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL05vZGUuaCBiL1Nv
dXJjZS9XZWJDb3JlL2RvbS9Ob2RlLmgKaW5kZXggYWZmYzExM2U3ZGU2OTViYzI0ZDM3MzFlNzE1
MzAxZjJiYTYwNzdkNi4uNzBjZDQ3NDQ0Y2YwMzE4ZTQ4YzZhYjNiMzMyNjE2NGE3OTFkY2ZmYyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL05vZGUuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9kb20vTm9kZS5oCkBAIC0yOSw3ICsyOSw2IEBACiAjaW5jbHVkZSAiRXZlbnRUYXJnZXQuaCIK
ICNpbmNsdWRlICJLVVJMSGFzaC5oIgogI2luY2x1ZGUgIkxheW91dFR5cGVzLmgiCi0jaW5jbHVk
ZSAiTWVtb3J5SW5zdHJ1bWVudGF0aW9uLmgiCiAjaW5jbHVkZSAiTXV0YXRpb25PYnNlcnZlci5o
IgogI2luY2x1ZGUgIlJlbmRlclN0eWxlQ29uc3RhbnRzLmgiCiAjaW5jbHVkZSAiU2NyaXB0V3Jh
cHBhYmxlLmgiCkBAIC02Niw2ICs2NSw3IEBAIGNsYXNzIEZyYW1lOwogY2xhc3MgSFRNTElucHV0
RWxlbWVudDsKIGNsYXNzIEludFJlY3Q7CiBjbGFzcyBLZXlib2FyZEV2ZW50OworY2xhc3MgTWVt
b3J5T2JqZWN0SW5mbzsKIGNsYXNzIE5TUmVzb2x2ZXI7CiBjbGFzcyBOYW1lZE5vZGVNYXA7CiBj
bGFzcyBOYW1lTm9kZUxpc3Q7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
c3R5bGUvUmVuZGVyU3R5bGUuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1Jl
bmRlclN0eWxlLmNwcAppbmRleCAxOTg5MDhkNTliMmFjYTMyYWZjYzYyYjQ4OGY1OWI4NjM2ODMy
MTZiLi42ZmZlYTRjYmZjNTE5YjJjZWYyM2JiM2M5NGJlMjcyYWU4N2Q3NzlkIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGUuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZS5jcHAKQEAgLTI4LDYgKzI4
LDcgQEAKICNpbmNsdWRlICJDU1NQcm9wZXJ0eU5hbWVzLmgiCiAjaW5jbHVkZSAiQ1NTV3JhcFNo
YXBlcy5oIgogI2luY2x1ZGUgIkZvbnRTZWxlY3Rvci5oIgorI2luY2x1ZGUgIk1lbW9yeUluc3Ry
dW1lbnRhdGlvbi5oIgogI2luY2x1ZGUgIlF1b3Rlc0RhdGEuaCIKICNpbmNsdWRlICJSZW5kZXJB
cmVuYS5oIgogI2luY2x1ZGUgIlJlbmRlck9iamVjdC5oIgpAQCAtMTQ4Niw0ICsxNDg3LDI0IEBA
IExheW91dEJveEV4dGVudCBSZW5kZXJTdHlsZTo6aW1hZ2VPdXRzZXRzKGNvbnN0IE5pbmVQaWVj
ZUltYWdlJiBpbWFnZSkgY29uc3QKICAgICAgICAgICAgICAgICAgICAgICAgICAgIE5pbmVQaWVj
ZUltYWdlOjpjb21wdXRlT3V0c2V0KGltYWdlLm91dHNldCgpLmxlZnQoKSwgYm9yZGVyTGVmdFdp
ZHRoKCkpKTsKIH0KIAordm9pZCBSZW5kZXJTdHlsZTo6cmVwb3J0TWVtb3J5VXNhZ2UoTWVtb3J5
T2JqZWN0SW5mbyogbWVtb3J5T2JqZWN0SW5mbykgY29uc3QKK3sKKyAgICBNZW1vcnlDbGFzc0lu
Zm88UmVuZGVyU3R5bGU+IGluZm8obWVtb3J5T2JqZWN0SW5mbywgdGhpcywgTWVtb3J5SW5zdHJ1
bWVudGF0aW9uOjpDU1MpOworICAgIGluZm8uYWRkTWVtYmVyKG1fYm94KTsKKyAgICBpbmZvLmFk
ZE1lbWJlcih2aXN1YWwpOworICAgIC8vIEZJWE1FOiBtX2JhY2tncm91bmQgY29udGFpbnMgUmVm
UHRyPFN0eWxlSW1hZ2U+IHRoYXQgbWlnaHQgbmVlZCB0byBiZSBpbnN0cnVtZW50ZWQuCisgICAg
aW5mby5hZGRNZW1iZXIobV9iYWNrZ3JvdW5kKTsKKyAgICAvLyBGSVhNRTogc3Vycm9uZCBjb250
YWlucyBzb21lIGZpZWxkcyBlLmcuIEJvcmRlckRhdGEgdGhhdCBtaWdodCBuZWVkIHRvIGJlIGlu
c3RydW1lbnRlZC4KKyAgICBpbmZvLmFkZE1lbWJlcihzdXJyb3VuZCk7CisgICAgaW5mby5hZGRJ
bnN0cnVtZW50ZWRNZW1iZXIocmFyZU5vbkluaGVyaXRlZERhdGEpOworICAgIGluZm8uYWRkSW5z
dHJ1bWVudGVkTWVtYmVyKHJhcmVJbmhlcml0ZWREYXRhKTsKKyAgICAvLyBGSVhNRTogaW5oZXJp
dGVkIGNvbnRhaW5zIFN0eWxlSW1hZ2UgYW5kIEZvbnQgZmllbGRzIHRoYXQgbWlnaHQgbmVlZCB0
byBiZSBpbnN0cnVtZW50ZWQuCisgICAgaW5mby5hZGRNZW1iZXIoaW5oZXJpdGVkKTsKKyAgICBp
ZiAobV9jYWNoZWRQc2V1ZG9TdHlsZXMpCisgICAgICAgIGluZm8uYWRkVmVjdG9yUHRyKG1fY2Fj
aGVkUHNldWRvU3R5bGVzLmdldCgpKTsKKyNpZiBFTkFCTEUoU1ZHKQorICAgIGluZm8uYWRkTWVt
YmVyKG1fc3ZnU3R5bGUpOworI2VuZGlmCit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZS5oIGIv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlLmgKaW5kZXggMDI2MjIx
ODEyZjliMDExNGNkNmVjY2VjYzY3OGI5M2E4ZjdkYmUwNS4uYjU0ZWFjOGYxNGFhNjZhNjJkYWNl
NDU3ZWRlZTI4MTkxMzc2MzMyNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L3N0eWxlL1JlbmRlclN0eWxlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxl
L1JlbmRlclN0eWxlLmgKQEAgLTEwNSw2ICsxMDUsNyBAQCBjbGFzcyBCb3JkZXJEYXRhOwogY2xh
c3MgQ291bnRlckNvbnRlbnQ7CiBjbGFzcyBDdXJzb3JMaXN0OwogY2xhc3MgSW50UmVjdDsKK2Ns
YXNzIE1lbW9yeU9iamVjdEluZm87CiBjbGFzcyBQYWlyOwogY2xhc3MgU2hhZG93RGF0YTsKIGNs
YXNzIFN0eWxlSW1hZ2U7CkBAIC0xNTI4LDYgKzE1MjksOCBAQCBwdWJsaWM6CiAKICAgICB2b2lk
IHNldEhhc0V4cGxpY2l0bHlJbmhlcml0ZWRQcm9wZXJ0aWVzKCkgeyBtX2JpdGZpZWxkcy5zZXRF
eHBsaWNpdEluaGVyaXRhbmNlKHRydWUpOyB9CiAgICAgYm9vbCBoYXNFeHBsaWNpdGx5SW5oZXJp
dGVkUHJvcGVydGllcygpIGNvbnN0IHsgcmV0dXJuIG1fYml0ZmllbGRzLmV4cGxpY2l0SW5oZXJp
dGFuY2UoKTsgfQorCisgICAgdm9pZCByZXBvcnRNZW1vcnlVc2FnZShNZW1vcnlPYmplY3RJbmZv
KikgY29uc3Q7CiAgICAgCiAgICAgLy8gSW5pdGlhbCB2YWx1ZXMgZm9yIGFsbCB0aGUgcHJvcGVy
dGllcwogICAgIHN0YXRpYyBFQm9yZGVyQ29sbGFwc2UgaW5pdGlhbEJvcmRlckNvbGxhcHNlKCkg
eyByZXR1cm4gQlNFUEFSQVRFOyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvc3R5bGUvU3R5bGVSYXJlSW5oZXJpdGVkRGF0YS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvc3R5bGUvU3R5bGVSYXJlSW5oZXJpdGVkRGF0YS5jcHAKaW5kZXggYzIxY2NhY2NiNWE4
OWUxZmYwODMyOWY1YWZlNzk5ZjBkMmM0MzExYi4uZDkzOWFhZDM0NzIwYzQ2MzZmNzQ3MDgyZjRh
Zjc0Mjg4ODg5N2UwMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxl
L1N0eWxlUmFyZUluaGVyaXRlZERhdGEuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9zdHlsZS9TdHlsZVJhcmVJbmhlcml0ZWREYXRhLmNwcApAQCAtMjMsNiArMjMsNyBAQAogI2lu
Y2x1ZGUgIlN0eWxlUmFyZUluaGVyaXRlZERhdGEuaCIKIAogI2luY2x1ZGUgIkN1cnNvckxpc3Qu
aCIKKyNpbmNsdWRlICJNZW1vcnlJbnN0cnVtZW50YXRpb24uaCIKICNpbmNsdWRlICJRdW90ZXNE
YXRhLmgiCiAjaW5jbHVkZSAiUmVuZGVyU3R5bGUuaCIKICNpbmNsdWRlICJSZW5kZXJTdHlsZUNv
bnN0YW50cy5oIgpAQCAtMjYxLDQgKzI2MiwyMCBAQCBib29sIFN0eWxlUmFyZUluaGVyaXRlZERh
dGE6OnNoYWRvd0RhdGFFcXVpdmFsZW50KGNvbnN0IFN0eWxlUmFyZUluaGVyaXRlZERhdGEmCiAg
ICAgcmV0dXJuIHRydWU7CiB9CiAKK3ZvaWQgU3R5bGVSYXJlSW5oZXJpdGVkRGF0YTo6cmVwb3J0
TWVtb3J5VXNhZ2UoTWVtb3J5T2JqZWN0SW5mbyogbWVtb3J5T2JqZWN0SW5mbykgY29uc3QKK3sK
KyAgICBNZW1vcnlDbGFzc0luZm88U3R5bGVSYXJlSW5oZXJpdGVkRGF0YT4gaW5mbyhtZW1vcnlP
YmplY3RJbmZvLCB0aGlzLCBNZW1vcnlJbnN0cnVtZW50YXRpb246OkNTUyk7CisgICAgaW5mby5h
ZGRNZW1iZXIodGV4dFNoYWRvdyk7CisgICAgaW5mby5hZGRTdHJpbmcoaGlnaGxpZ2h0KTsKKyAg
ICBpbmZvLmFkZE1lbWJlcihjdXJzb3JEYXRhKTsKKyAgICBpbmZvLmFkZFN0cmluZyhoeXBoZW5h
dGlvblN0cmluZyk7CisgICAgaW5mby5hZGRTdHJpbmcobG9jYWxlKTsKKyAgICBpbmZvLmFkZFN0
cmluZyh0ZXh0RW1waGFzaXNDdXN0b21NYXJrKTsKKyAgICBpbmZvLmFkZE1lbWJlcihxdW90ZXMp
OworICAgIGluZm8uYWRkU3RyaW5nKG1fbGluZUdyaWQpOworI2lmIEVOQUJMRShDU1NfVkFSSUFC
TEVTKQorICAgIGluZm8uYWRkTWVtYmVyKG1fdmFyaWFibGVzKTsKKyNlbmRpZgorfQorCiB9IC8v
IG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
c3R5bGUvU3R5bGVSYXJlSW5oZXJpdGVkRGF0YS5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L3N0eWxlL1N0eWxlUmFyZUluaGVyaXRlZERhdGEuaAppbmRleCBiMzA5ODJkZjk3YjFjZTI2MmVk
NzJkZGU3MDE3ZmU4ZjhlNWU1YWMwLi5iYjQzM2VkMjc2Y2FkYjUyODQ4NWEzM2RmNDQzYjFmYWI1
ZGQ1YmE4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvU3R5bGVS
YXJlSW5oZXJpdGVkRGF0YS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9T
dHlsZVJhcmVJbmhlcml0ZWREYXRhLmgKQEAgLTM5LDYgKzM5LDcgQEAKIG5hbWVzcGFjZSBXZWJD
b3JlIHsKIAogY2xhc3MgQ3Vyc29yTGlzdDsKK2NsYXNzIE1lbW9yeU9iamVjdEluZm87CiBjbGFz
cyBRdW90ZXNEYXRhOwogY2xhc3MgU2hhZG93RGF0YTsKIApAQCAtNTgsNiArNTksOCBAQCBwdWJs
aWM6CiAgICAgfQogICAgIGJvb2wgc2hhZG93RGF0YUVxdWl2YWxlbnQoY29uc3QgU3R5bGVSYXJl
SW5oZXJpdGVkRGF0YSYpIGNvbnN0OwogCisgICAgdm9pZCByZXBvcnRNZW1vcnlVc2FnZShNZW1v
cnlPYmplY3RJbmZvKikgY29uc3Q7CisKICAgICBDb2xvciB0ZXh0U3Ryb2tlQ29sb3I7CiAgICAg
ZmxvYXQgdGV4dFN0cm9rZVdpZHRoOwogICAgIENvbG9yIHRleHRGaWxsQ29sb3I7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvU3R5bGVSYXJlTm9uSW5oZXJpdGVk
RGF0YS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvU3R5bGVSYXJlTm9uSW5o
ZXJpdGVkRGF0YS5jcHAKaW5kZXggZThjZjg4NDI2NjhhY2E5ZWYzY2UwNzc0OWM4NDhlZmNiZWUx
NmRkMi4uZWI2MmFhZmI5MTEzZDNhOGRiMmM4MGJkMDJhZTcyMzY1YmQ1MjUzYSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1N0eWxlUmFyZU5vbkluaGVyaXRlZERh
dGEuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9TdHlsZVJhcmVOb25J
bmhlcml0ZWREYXRhLmNwcApAQCAtMjMsNiArMjMsNyBAQAogI2luY2x1ZGUgIlN0eWxlUmFyZU5v
bkluaGVyaXRlZERhdGEuaCIKIAogI2luY2x1ZGUgIkNvbnRlbnREYXRhLmgiCisjaW5jbHVkZSAi
TWVtb3J5SW5zdHJ1bWVudGF0aW9uLmgiCiAjaW5jbHVkZSAiUmVuZGVyQ291bnRlci5oIgogI2lu
Y2x1ZGUgIlJlbmRlclN0eWxlLmgiCiAjaW5jbHVkZSAiU2hhZG93RGF0YS5oIgpAQCAtMjg2LDQg
KzI4NywzMiBAQCBib29sIFN0eWxlUmFyZU5vbkluaGVyaXRlZERhdGE6OnRyYW5zaXRpb25EYXRh
RXF1aXZhbGVudChjb25zdCBTdHlsZVJhcmVOb25JbmhlcgogICAgIHJldHVybiB0cnVlOwogfQog
Cit2b2lkIFN0eWxlUmFyZU5vbkluaGVyaXRlZERhdGE6OnJlcG9ydE1lbW9yeVVzYWdlKE1lbW9y
eU9iamVjdEluZm8qIG1lbW9yeU9iamVjdEluZm8pIGNvbnN0Cit7CisgICAgTWVtb3J5Q2xhc3NJ
bmZvPFN0eWxlUmFyZU5vbkluaGVyaXRlZERhdGE+IGluZm8obWVtb3J5T2JqZWN0SW5mbywgdGhp
cywgTWVtb3J5SW5zdHJ1bWVudGF0aW9uOjpDU1MpOworI2lmIEVOQUJMRShEQVNIQk9BUkRfU1VQ
UE9SVCkKKyAgICBpbmZvLmFkZFZlY3RvcihtX2Rhc2hib2FyZFJlZ2lvbnMpOworI2VuZGlmCisg
ICAgaW5mby5hZGRNZW1iZXIobV9kZXByZWNhdGVkRmxleGlibGVCb3gpOworICAgIGluZm8uYWRk
TWVtYmVyKG1fZmxleGlibGVCb3gpOworICAgIGluZm8uYWRkTWVtYmVyKG1fbWFycXVlZSk7Cisg
ICAgaW5mby5hZGRNZW1iZXIobV9tdWx0aUNvbCk7CisgICAgaW5mby5hZGRNZW1iZXIobV90cmFu
c2Zvcm0pOworI2lmIEVOQUJMRShDU1NfRklMVEVSUykKKyAgICBpbmZvLmFkZE1lbWJlcihtX2Zp
bHRlcik7CisjZW5kaWYKKyAgICBpbmZvLmFkZE1lbWJlcihtX2dyaWQpOworICAgIGluZm8uYWRk
TWVtYmVyKG1fZ3JpZEl0ZW0pOworICAgIGluZm8uYWRkTWVtYmVyKG1fY29udGVudCk7CisgICAg
aW5mby5hZGRNZW1iZXIobV9jb3VudGVyRGlyZWN0aXZlcyk7CisgICAgaW5mby5hZGRNZW1iZXIo
bV9ib3hTaGFkb3cpOworICAgIGluZm8uYWRkTWVtYmVyKG1fYm94UmVmbGVjdCk7CisgICAgaW5m
by5hZGRNZW1iZXIobV9hbmltYXRpb25zKTsKKyAgICBpbmZvLmFkZE1lbWJlcihtX3RyYW5zaXRp
b25zKTsKKyAgICBpbmZvLmFkZE1lbWJlcihtX3dyYXBTaGFwZUluc2lkZSk7CisgICAgaW5mby5h
ZGRNZW1iZXIobV93cmFwU2hhcGVPdXRzaWRlKTsKKyAgICBpbmZvLmFkZFN0cmluZyhtX2Zsb3dU
aHJlYWQpOworICAgIGluZm8uYWRkU3RyaW5nKG1fcmVnaW9uVGhyZWFkKTsKK30KKwogfSAvLyBu
YW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0
eWxlL1N0eWxlUmFyZU5vbkluaGVyaXRlZERhdGEuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9zdHlsZS9TdHlsZVJhcmVOb25Jbmhlcml0ZWREYXRhLmgKaW5kZXggNGIyMzRmZGNiMzI3ZWUz
YjRkZmRiZWViODZiMGY2OWRjMzhjNTUyNy4uYTIwNjAxNWVjODI3NThlZGM1NzhiOThhNGJhZWFm
NmIxMTU2YmRjMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1N0
eWxlUmFyZU5vbkluaGVyaXRlZERhdGEuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
c3R5bGUvU3R5bGVSYXJlTm9uSW5oZXJpdGVkRGF0YS5oCkBAIC0zOSw2ICszOSw3IEBACiBuYW1l
c3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIEFuaW1hdGlvbkxpc3Q7CitjbGFzcyBNZW1vcnlPYmpl
Y3RJbmZvOwogY2xhc3MgU2hhZG93RGF0YTsKIGNsYXNzIFN0eWxlRGVwcmVjYXRlZEZsZXhpYmxl
Qm94RGF0YTsKICNpZiBFTkFCTEUoQ1NTX0ZJTFRFUlMpCkBAIC04OSw2ICs5MCw4IEBAIHB1Ymxp
YzoKICAgICBib29sIGFuaW1hdGlvbkRhdGFFcXVpdmFsZW50KGNvbnN0IFN0eWxlUmFyZU5vbklu
aGVyaXRlZERhdGEmKSBjb25zdDsKICAgICBib29sIHRyYW5zaXRpb25EYXRhRXF1aXZhbGVudChj
b25zdCBTdHlsZVJhcmVOb25Jbmhlcml0ZWREYXRhJikgY29uc3Q7CiAKKyAgICB2b2lkIHJlcG9y
dE1lbW9yeVVzYWdlKE1lbW9yeU9iamVjdEluZm8qKSBjb25zdDsKKwogICAgIGZsb2F0IG9wYWNp
dHk7IC8vIFdoZXRoZXIgb3Igbm90IHdlJ3JlIHRyYW5zcGFyZW50LgogCiAgICAgZmxvYXQgbV9h
c3BlY3RSYXRpb0Rlbm9taW5hdG9yOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1
bS90ZXN0cy9NZW1vcnlJbnN0cnVtZW50YXRpb25UZXN0LmNwcCBiL1NvdXJjZS9XZWJLaXQvY2hy
b21pdW0vdGVzdHMvTWVtb3J5SW5zdHJ1bWVudGF0aW9uVGVzdC5jcHAKaW5kZXggMjkxODM0OTBi
NGY0Mjk4MjllMzA1NDQyYjEzZDViNDUwMWU2ZjUwMi4uNmI5N2ZlYmU5YzhmNzY1NmIwMTM4MGEw
ZjRmMjkxYjlmNWNkOGQ2NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0
cy9NZW1vcnlJbnN0cnVtZW50YXRpb25UZXN0LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9t
aXVtL3Rlc3RzL01lbW9yeUluc3RydW1lbnRhdGlvblRlc3QuY3BwCkBAIC0zMCw2ICszMCw3IEBA
CiAKICNpbmNsdWRlICJjb25maWcuaCIKIAorI2luY2x1ZGUgIkRhdGFSZWYuaCIKICNpbmNsdWRl
ICJNZW1vcnlJbnN0cnVtZW50YXRpb25JbXBsLmgiCiAKICNpbmNsdWRlIDxndGVzdC9ndGVzdC5o
PgpAQCAtMTE1LDYgKzExNiw3IEBAIGNsYXNzIEluc3RydW1lbnRlZFJlZlB0ciA6IHB1YmxpYyBS
ZWZDb3VudGVkPEluc3RydW1lbnRlZFJlZlB0cj4gewogcHVibGljOgogICAgIEluc3RydW1lbnRl
ZFJlZlB0cigpIDogbV9ub3RJbnN0cnVtZW50ZWQobmV3IE5vdEluc3RydW1lbnRlZCkgeyB9CiAg
ICAgdmlydHVhbCB+SW5zdHJ1bWVudGVkUmVmUHRyKCkgeyBkZWxldGUgbV9ub3RJbnN0cnVtZW50
ZWQ7IH0KKyAgICBzdGF0aWMgUGFzc1JlZlB0cjxJbnN0cnVtZW50ZWRSZWZQdHI+IGNyZWF0ZSgp
IHsgcmV0dXJuIGFkb3B0UmVmKG5ldyBJbnN0cnVtZW50ZWRSZWZQdHIoKSk7IH0KIAogICAgIHZp
cnR1YWwgdm9pZCByZXBvcnRNZW1vcnlVc2FnZShNZW1vcnlPYmplY3RJbmZvKiBtZW1vcnlPYmpl
Y3RJbmZvKSBjb25zdAogICAgIHsKQEAgLTEyNCw2ICsxMjYsMTcgQEAgcHVibGljOgogICAgIE5v
dEluc3RydW1lbnRlZCogbV9ub3RJbnN0cnVtZW50ZWQ7CiB9OwogCitURVNUKE1lbW9yeUluc3Ry
dW1lbnRhdGlvblRlc3QsIGRhdGFSZWYpCit7CisgICAgVmlzaXRlZE9iamVjdHMgdmlzaXRlZE9i
amVjdHM7CisgICAgTWVtb3J5SW5zdHJ1bWVudGF0aW9uSW1wbCBpbXBsKHZpc2l0ZWRPYmplY3Rz
KTsKKyAgICBEYXRhUmVmPEluc3RydW1lbnRlZFJlZlB0cj4gaW5zdHJ1bWVudGVkUmVmUHRyOwor
ICAgIGluc3RydW1lbnRlZFJlZlB0ci5pbml0KCk7CisgICAgaW1wbC5hZGRSb290T2JqZWN0KGlu
c3RydW1lbnRlZFJlZlB0cik7CisgICAgRVhQRUNUX0VRKHNpemVvZihJbnN0cnVtZW50ZWRSZWZQ
dHIpICsgc2l6ZW9mKE5vdEluc3RydW1lbnRlZCksIGltcGwucmVwb3J0ZWRTaXplRm9yQWxsVHlw
ZXMoKSk7CisgICAgRVhQRUNUX0VRKDIsIHZpc2l0ZWRPYmplY3RzLnNpemUoKSk7Cit9CisKIFRF
U1QoTWVtb3J5SW5zdHJ1bWVudGF0aW9uVGVzdCwgcmVmUHRyKQogewogICAgIFZpc2l0ZWRPYmpl
Y3RzIHZpc2l0ZWRPYmplY3RzOwo=
</data>

          </attachment>
      

    </bug>

</bugzilla>