<?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>84885</bug_id>
          
          <creation_ts>2012-04-25 12:38:44 -0700</creation_ts>
          <short_desc>[Resource Timing] Implement buffer limits</short_desc>
          <delta_ts>2012-10-18 17:53:11 -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>Platform</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc>http://dvcs.w3.org/hg/webperf/raw-file/tip/specs/ResourceTiming/Overview.html</bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>84883</dependson>
          <blocked>61138</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="James Simonsen">simonjam</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>dglazkov</cc>
    
    <cc>gustavo</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>ojan</cc>
    
    <cc>pan.deng</cc>
    
    <cc>peter+ews</cc>
    
    <cc>philn</cc>
    
    <cc>rakuco</cc>
    
    <cc>sullivan</cc>
    
    <cc>tonyg</cc>
    
    <cc>webkit.review.bot</cc>
    
    <cc>xan.lopez</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>609975</commentid>
    <comment_count>0</comment_count>
    <who name="James Simonsen">simonjam</who>
    <bug_when>2012-04-25 12:38:44 -0700</bug_when>
    <thetext>Resource timing is only supposed to buffer up to 150 entries by default. After that, it should emit an event that the buffer is full and drop entries until there is space.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>633502</commentid>
    <comment_count>1</comment_count>
    <who name="Ojan Vafai">ojan</who>
    <bug_when>2012-05-24 20:29:35 -0700</bug_when>
    <thetext>I think we need to choose a smaller initial number. I know the spec says 150, but I think the spec is wrong. We can always change it later if it turns out we&apos;re wrong.

I&apos;d be fine with the default buffer size being 0 or being something small enough to give time for the first script to run (e.g. 5-10). 

We shouldn&apos;t be wasting memory on every page for this when a incredibly tiny percentage of pages will actually use this API.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>633990</commentid>
    <comment_count>2</comment_count>
    <who name="James Simonsen">simonjam</who>
    <bug_when>2012-05-25 09:40:59 -0700</bug_when>
    <thetext>(In reply to comment #1)
&gt; I think we need to choose a smaller initial number. I know the spec says 150, but I think the spec is wrong. We can always change it later if it turns out we&apos;re wrong.
&gt; 
&gt; I&apos;d be fine with the default buffer size being 0 or being something small enough to give time for the first script to run (e.g. 5-10). 
&gt; 
&gt; We shouldn&apos;t be wasting memory on every page for this when a incredibly tiny percentage of pages will actually use this API.

That&apos;s fine with me. I wouldn&apos;t totally discount its use though. Every analytics tool will use this data. We put the buffer in, at their request, so that they could continue to load their script after load fires and still have access to the site&apos;s data. I&apos;d imagine a significant percentage of sites use analytics.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>634007</commentid>
    <comment_count>3</comment_count>
    <who name="Annie Sullivan">sullivan</who>
    <bug_when>2012-05-25 10:07:12 -0700</bug_when>
    <thetext>(In reply to comment #2)
&gt; (In reply to comment #1)
&gt; &gt; I think we need to choose a smaller initial number. I know the spec says 150, but I think the spec is wrong. We can always change it later if it turns out we&apos;re wrong.
&gt; &gt; 
&gt; &gt; I&apos;d be fine with the default buffer size being 0 or being something small enough to give time for the first script to run (e.g. 5-10). 
&gt; &gt; 
&gt; &gt; We shouldn&apos;t be wasting memory on every page for this when a incredibly tiny percentage of pages will actually use this API.
&gt; 
&gt; That&apos;s fine with me. I wouldn&apos;t totally discount its use though. Every analytics tool will use this data. We put the buffer in, at their request, so that they could continue to load their script after load fires and still have access to the site&apos;s data. I&apos;d imagine a significant percentage of sites use analytics.

To add some stats, 46% of the Quantcast top million sites are currently using Analytics: http://trends.builtwith.com/analytics/Google-Analytics</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>710780</commentid>
    <comment_count>4</comment_count>
      <attachid>161955</attachid>
    <who name="pdeng6">pan.deng</who>
    <bug_when>2012-09-03 19:00:57 -0700</bug_when>
    <thetext>Created attachment 161955
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>710783</commentid>
    <comment_count>5</comment_count>
      <attachid>161955</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-09-03 19:05:31 -0700</bug_when>
    <thetext>Comment on attachment 161955
Patch

Attachment 161955 did not pass chromium-ews (chromium-xvfb):
Output: http://queues.webkit.org/results/13732953</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>710784</commentid>
    <comment_count>6</comment_count>
      <attachid>161955</attachid>
    <who name="Gyuyoung Kim">gyuyoung.kim</who>
    <bug_when>2012-09-03 19:06:22 -0700</bug_when>
    <thetext>Comment on attachment 161955
Patch

Attachment 161955 did not pass efl-ews (efl):
Output: http://queues.webkit.org/results/13734631</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>710787</commentid>
    <comment_count>7</comment_count>
      <attachid>161955</attachid>
    <who name="Peter Beverloo (cr-android ews)">peter+ews</who>
    <bug_when>2012-09-03 19:11:01 -0700</bug_when>
    <thetext>Comment on attachment 161955
Patch

Attachment 161955 did not pass cr-android-ews (chromium-android):
Output: http://queues.webkit.org/results/13746260</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>710788</commentid>
    <comment_count>8</comment_count>
      <attachid>161955</attachid>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2012-09-03 19:14:17 -0700</bug_when>
    <thetext>Comment on attachment 161955
Patch

Attachment 161955 did not pass qt-wk2-ews (qt):
Output: http://queues.webkit.org/results/13746263</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>710789</commentid>
    <comment_count>9</comment_count>
      <attachid>161955</attachid>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2012-09-03 19:15:20 -0700</bug_when>
    <thetext>Comment on attachment 161955
Patch

Attachment 161955 did not pass qt-ews (qt):
Output: http://queues.webkit.org/results/13739362</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>715073</commentid>
    <comment_count>10</comment_count>
    <who name="James Simonsen">simonjam</who>
    <bug_when>2012-09-07 15:51:05 -0700</bug_when>
    <thetext>View in context: https://bugs.webkit.org/attachment.cgi?id=161955&amp;action=review

&gt; Source/WebCore/page/Performance.cpp:54
&gt; +    m_resourceTimingBufferSize = defaultResourceTimingBufferSize;

This should be in the initializer list.

&gt; Source/WebCore/page/Performance.cpp:154
&gt; +        dispatchEvent(Event::create(eventNames().webkitresourcetimingbufferfullEvent, false, false));

This event is only supposed to fire once when it becomes full, not on every resource that arrives after it&apos;s full.

If the user clears the buffer during the event, then we should go ahead and record this resource.

I started a thread about this on web-perf. My goal for the thread was to fire the event after append() makes it full.

&gt; Source/WebCore/page/Performance.h:99
&gt; +    static const size_t defaultResourceTimingBufferSize = 150;

This doesn&apos;t need to be in the .h file.

&gt; LayoutTests/http/tests/w3c/webperf/proposal/resource-timing/test_resource_timing_buffer_size_restriction.html:8
&gt; +            performance.webkitSetResourceTimingBufferSize(2);

2 -&gt; buffer_size

&gt; LayoutTests/http/tests/w3c/webperf/proposal/resource-timing/test_resource_timing_on_resource_timing_buffer_full.html:24
&gt; +                test_greater_than(count, 0, &quot;onresourcetimingbufferfull should have been invoked!&quot;);

It should only happen once.

&gt; LayoutTests/http/tests/w3c/webperf/proposal/resource-timing/test_resource_timing_on_resource_timing_buffer_full.html:33
&gt; +&lt;/html&gt;

We need more test cases. For instance, if you shrink the buffer size, it shouldn&apos;t modify the buffer until clear is called. Also, something that reads and clears the buffer during the callback.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>740686</commentid>
    <comment_count>11</comment_count>
    <who name="pdeng6">pan.deng</who>
    <bug_when>2012-10-12 00:34:36 -0700</bug_when>
    <thetext>(In reply to comment #10)
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=161955&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/page/Performance.cpp:54
&gt; &gt; +    m_resourceTimingBufferSize = defaultResourceTimingBufferSize;
&gt; 
&gt; This should be in the initializer list.
&gt; 
&gt; &gt; Source/WebCore/page/Performance.cpp:154
&gt; &gt; +        dispatchEvent(Event::create(eventNames().webkitresourcetimingbufferfullEvent, false, false));
&gt; 
&gt; This event is only supposed to fire once when it becomes full, not on every resource that arrives after it&apos;s full.
&gt; 
&gt; If the user clears the buffer during the event, then we should go ahead and record this resource.
&gt; 
Good point.
&gt; I started a thread about this on web-perf. My goal for the thread was to fire the event after append() makes it full.
one exception is, what if a smaller buffer size is set when previous buffer size is not achieved yet? an extreme scenario is buffer size is set to 0 before any append() happen, I prefer fire the event in this condition if that is not fired on every resource that arrives after full.

in addition, resource timing[1] said, &quot;While executing the onresourcetimingbufferfull callback, PerformanceResourceTiming will continue to be collected beyond the maximum limit of the resources allowed in the PerformanceResourceTiming interface until...&quot;, seems this statement intends to ensure no resource timing entry loss when buffer is full. has it been discussed in web perf group?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>740687</commentid>
    <comment_count>12</comment_count>
    <who name="pdeng6">pan.deng</who>
    <bug_when>2012-10-12 00:36:16 -0700</bug_when>
    <thetext>[1] http://www.w3.org/TR/2012/CR-resource-timing-20120522/#dom-performance-onresourcetimingbufferfull</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>741089</commentid>
    <comment_count>13</comment_count>
    <who name="James Simonsen">simonjam</who>
    <bug_when>2012-10-12 11:56:21 -0700</bug_when>
    <thetext>(In reply to comment #11)
&gt; one exception is, what if a smaller buffer size is set when previous buffer size is not achieved yet?

Good example. Do you want to raise that on the list? I vote we fire the event once immediately in that case.

&gt; an extreme scenario is buffer size is set to 0 before any append() happen, I prefer fire the event in this condition if that is not fired on every resource that arrives after full.

That&apos;s an interesting idea and is inline with what I initially proposed for Resource Timing (I hate this buffer). I think it should be brought up on the list though.

&gt; in addition, resource timing[1] said, &quot;While executing the onresourcetimingbufferfull callback, PerformanceResourceTiming will continue to be collected beyond the maximum limit of the resources allowed in the PerformanceResourceTiming interface until...&quot;, seems this statement intends to ensure no resource timing entry loss when buffer is full. has it been discussed in web perf group?

This line doesn&apos;t apply to us. WebKit is single threaded. We can&apos;t add another resource to the buffer while the event is firing.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>741344</commentid>
    <comment_count>14</comment_count>
    <who name="pdeng6">pan.deng</who>
    <bug_when>2012-10-12 17:30:41 -0700</bug_when>
    <thetext> &gt; &gt; in addition, resource timing[1] said, &quot;While executing the onresourcetimingbufferfull callback, PerformanceResourceTiming will continue to be collected beyond the maximum limit of the resources allowed in the PerformanceResourceTiming interface until...&quot;, seems this statement intends to ensure no resource timing entry loss when buffer is full. has it been discussed in web perf group?
&gt; 
&gt; This line doesn&apos;t apply to us. WebKit is single threaded. We can&apos;t add another resource to the buffer while the event is firing.

Agree this, one thing puzzles me is, item 5.1.20 of processing model in [1] describes, a temp buffer should be used to collect beyond limit timing entries, while nothing related mentioned in section 4.
I&apos;ve raised this issue to web perf group, unfortunately no feedback.
my preference is drop the beyond timing entries as honor user&apos;s choice.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>741390</commentid>
    <comment_count>15</comment_count>
    <who name="James Simonsen">simonjam</who>
    <bug_when>2012-10-12 19:44:00 -0700</bug_when>
    <thetext>(In reply to comment #14)
&gt;  &gt; &gt; in addition, resource timing[1] said, &quot;While executing the onresourcetimingbufferfull callback, PerformanceResourceTiming will continue to be collected beyond the maximum limit of the resources allowed in the PerformanceResourceTiming interface until...&quot;, seems this statement intends to ensure no resource timing entry loss when buffer is full. has it been discussed in web perf group?
&gt; &gt; 
&gt; &gt; This line doesn&apos;t apply to us. WebKit is single threaded. We can&apos;t add another resource to the buffer while the event is firing.

Actually, I thought of one: sync XHR. But that&apos;s a pretty extreme case and I really don&apos;t care whether or not it works.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>742525</commentid>
    <comment_count>16</comment_count>
      <attachid>161955</attachid>
    <who name="Tony Gentilcore">tonyg</who>
    <bug_when>2012-10-15 15:40:49 -0700</bug_when>
    <thetext>Comment on attachment 161955
Patch

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

r- for the issues raised by simonjam. This is looking close, just needs a little more work.

&gt; Source/WebCore/ChangeLog:3
&gt; +        [Resource Timing]Implementation of reource timing buffer size restriction functionality

s/reourse/resource/

&gt; LayoutTests/http/tests/w3c/webperf/proposal/resource-timing/test_resource_timing_buffer_size_restriction.html:25
&gt; +        &lt;iframe id=&quot;frameContext&quot; onload=onload_test() src=&quot;/w3c/webperf/resources/blank_page_green.htm&quot; style=&quot;width: 250px; height: 250px;&quot;&gt;&lt;/iframe&gt;

These three tests don&apos;t look like they need to have an iframe. Could you please simplifying them and just put the onload handler in &lt;body&gt;.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>742940</commentid>
    <comment_count>17</comment_count>
      <attachid>168887</attachid>
    <who name="pdeng6">pan.deng</who>
    <bug_when>2012-10-16 01:19:39 -0700</bug_when>
    <thetext>Created attachment 168887
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>742944</commentid>
    <comment_count>18</comment_count>
    <who name="pdeng6">pan.deng</who>
    <bug_when>2012-10-16 01:24:48 -0700</bug_when>
    <thetext>(In reply to comment #10)
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=161955&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/page/Performance.cpp:54
&gt; &gt; +    m_resourceTimingBufferSize = defaultResourceTimingBufferSize;
&gt; 
&gt; This should be in the initializer list.
&gt; 
Done.
&gt; &gt; Source/WebCore/page/Performance.cpp:154
&gt; &gt; +        dispatchEvent(Event::create(eventNames().webkitresourcetimingbufferfullEvent, false, false));
&gt; 
&gt; This event is only supposed to fire once when it becomes full, not on every resource that arrives after it&apos;s full.
&gt; 
&gt; If the user clears the buffer during the event, then we should go ahead and record this resource.
&gt; 
&gt; I started a thread about this on web-perf. My goal for the thread was to fire the event after append() makes it full.
&gt; 
now, it event fire after append() makes it full, and shrink a less size.
&gt; &gt; Source/WebCore/page/Performance.h:99
&gt; &gt; +    static const size_t defaultResourceTimingBufferSize = 150;
&gt; 
&gt; This doesn&apos;t need to be in the .h file.
&gt; 
Done.
&gt; &gt; LayoutTests/http/tests/w3c/webperf/proposal/resource-timing/test_resource_timing_buffer_size_restriction.html:8
&gt; &gt; +            performance.webkitSetResourceTimingBufferSize(2);
&gt; 
&gt; 2 -&gt; buffer_size
&gt; 
Done
&gt; &gt; LayoutTests/http/tests/w3c/webperf/proposal/resource-timing/test_resource_timing_on_resource_timing_buffer_full.html:24
&gt; &gt; +                test_greater_than(count, 0, &quot;onresourcetimingbufferfull should have been invoked!&quot;);
&gt; 
&gt; It should only happen once.
&gt; 
Done, happen once now.
&gt; &gt; LayoutTests/http/tests/w3c/webperf/proposal/resource-timing/test_resource_timing_on_resource_timing_buffer_full.html:33
&gt; &gt; +&lt;/html&gt;
&gt; 
&gt; We need more test cases. For instance, if you shrink the buffer size, it shouldn&apos;t modify the buffer until clear is called. Also, something that reads and clears the buffer during the callback.

Good idea, I add some typical use case of this</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>742945</commentid>
    <comment_count>19</comment_count>
    <who name="pdeng6">pan.deng</who>
    <bug_when>2012-10-16 01:25:33 -0700</bug_when>
    <thetext>(In reply to comment #16)
&gt; (From update of attachment 161955 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=161955&amp;action=review
&gt; 
&gt; r- for the issues raised by simonjam. This is looking close, just needs a little more work.
&gt; 
&gt; &gt; Source/WebCore/ChangeLog:3
&gt; &gt; +        [Resource Timing]Implementation of reource timing buffer size restriction functionality
&gt; 
&gt; s/reourse/resource/
&gt; 
&gt; &gt; LayoutTests/http/tests/w3c/webperf/proposal/resource-timing/test_resource_timing_buffer_size_restriction.html:25
&gt; &gt; +        &lt;iframe id=&quot;frameContext&quot; onload=onload_test() src=&quot;/w3c/webperf/resources/blank_page_green.htm&quot; style=&quot;width: 250px; height: 250px;&quot;&gt;&lt;/iframe&gt;
&gt; 
&gt; These three tests don&apos;t look like they need to have an iframe. Could you please simplifying them and just put the onload handler in &lt;body&gt;.
Done, thanks!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>743054</commentid>
    <comment_count>20</comment_count>
      <attachid>168887</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-10-16 04:28:47 -0700</bug_when>
    <thetext>Comment on attachment 168887
Patch

Attachment 168887 did not pass chromium-ews (chromium-xvfb):
Output: http://queues.webkit.org/results/14389118

New failing tests:
http/tests/w3c/webperf/submission/resource-timing/html/test_resource_timing_on_shrink_buffer_size.html
http/tests/w3c/webperf/submission/resource-timing/html/test_resource_timing_buffer_size_restriction.html
http/tests/w3c/webperf/submission/resource-timing/html/test_resource_timing_clear_resource_timing_functionality.html
http/tests/w3c/webperf/submission/resource-timing/html/test_resource_timing_buffer_full_when_populate_entries.html
http/tests/w3c/webperf/submission/resource-timing/html/test_resource_timing_store_and_clear_during_callback.html
http/tests/w3c/webperf/submission/resource-timing/html/test_resource_timing_buffer_full_when_shrink_buffer_size.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>743478</commentid>
    <comment_count>21</comment_count>
      <attachid>168887</attachid>
    <who name="Tony Gentilcore">tonyg</who>
    <bug_when>2012-10-16 13:29:10 -0700</bug_when>
    <thetext>Comment on attachment 168887
Patch

You just need to skip the new tests until it is enabled. Everything else looks good.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>745104</commentid>
    <comment_count>22</comment_count>
      <attachid>169376</attachid>
    <who name="pdeng6">pan.deng</who>
    <bug_when>2012-10-18 02:43:26 -0700</bug_when>
    <thetext>Created attachment 169376
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>745106</commentid>
    <comment_count>23</comment_count>
    <who name="pdeng6">pan.deng</who>
    <bug_when>2012-10-18 02:45:59 -0700</bug_when>
    <thetext>(In reply to comment #21)
&gt; (From update of attachment 168887 [details])
&gt; You just need to skip the new tests until it is enabled. Everything else looks good.
skip all the new test cases.
I change test cases to match upstream, including prefix handle, and folder.
thanks.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>745413</commentid>
    <comment_count>24</comment_count>
      <attachid>169376</attachid>
    <who name="Tony Gentilcore">tonyg</who>
    <bug_when>2012-10-18 11:22:21 -0700</bug_when>
    <thetext>Comment on attachment 169376
Patch

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

&gt; Source/WebCore/page/Performance.cpp:167
&gt; +    if (isResourceTimingBufferFull())

For efficiency, can&apos;t this go above the creation of the entry?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>745765</commentid>
    <comment_count>25</comment_count>
      <attachid>169510</attachid>
    <who name="pdeng6">pan.deng</who>
    <bug_when>2012-10-18 17:18:12 -0700</bug_when>
    <thetext>Created attachment 169510
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>745769</commentid>
    <comment_count>26</comment_count>
    <who name="pdeng6">pan.deng</who>
    <bug_when>2012-10-18 17:20:43 -0700</bug_when>
    <thetext>(In reply to comment #24)
&gt; (From update of attachment 169376 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=169376&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/page/Performance.cpp:167
&gt; &gt; +    if (isResourceTimingBufferFull())
&gt; 
&gt; For efficiency, can&apos;t this go above the creation of the entry?
Good idea, done :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>745804</commentid>
    <comment_count>27</comment_count>
      <attachid>169510</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-10-18 17:53:05 -0700</bug_when>
    <thetext>Comment on attachment 169510
Patch

Clearing flags on attachment: 169510

Committed r131829: &lt;http://trac.webkit.org/changeset/131829&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>745806</commentid>
    <comment_count>28</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-10-18 17:53:11 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>161955</attachid>
            <date>2012-09-03 19:00:57 -0700</date>
            <delta_ts>2012-10-16 01:19:26 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-84885-20120904100533.patch</filename>
            <type>text/plain</type>
            <size>13484</size>
            <attacher name="pdeng6">pan.deng</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTIzNDMzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMjBjNzAyMDM0MTJlOGNj
NTJiM2RiYTYxMTkzYTdiOTc3ZmJmMjYxMy4uMGNhZjMwZDBkYzEwYzZmYTA3NWFjMjc1NTZjMzRj
ODBhZjhhOTYyMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI0IEBACisyMDEyLTA5LTAzICBQYW4g
RGVuZyAgPHBhbi5kZW5nQGludGVsLmNvbT4KKworICAgICAgICBbUmVzb3VyY2UgVGltaW5nXUlt
cGxlbWVudGF0aW9uIG9mIHJlb3VyY2UgdGltaW5nIGJ1ZmZlciBzaXplIHJlc3RyaWN0aW9uIGZ1
bmN0aW9uYWxpdHkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTg0ODg1LgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorICAgICAg
ICAKKyAgICAgICAgaHR0cDovL3d3dy53My5vcmcvVFIvMjAxMi9DUi1yZXNvdXJjZS10aW1pbmct
MjAxMjA1MjIvCisgICAgICAgIFRoaXMgcGF0Y2ggZW5hYmxlIGZ1bmN0aW9uYWxpdHkgb2Ygc2V0
IGJ1ZmZlciBzaXplKGRlZmF1bHQgaXMgMTUwIGFzIHNwZWMpLiBXaGVuIGJ1ZmZlciBpcyBmdWxs
LCBpbmNvbWluZyByZXNvdXJjZSB0aW1pbmcgZW50cmllcyB3aWxsIGJlIGRyb3BwZWQgYW5kIHJl
c291cmNlVGltaW5nQnVmZmVyRnVsbCBldmVudCB3aWxsIGJlIGZpcmVkLgorCisgICAgICAgIFRl
c3RzOiBodHRwL3Rlc3RzL3czYy93ZWJwZXJmL3Byb3Bvc2FsL3Jlc291cmNlLXRpbWluZy90ZXN0
X3Jlc291cmNlX3RpbWluZ19idWZmZXJfc2l6ZV9yZXN0cmljdGlvbi5odG1sCisgICAgICAgICAg
ICAgICBodHRwL3Rlc3RzL3czYy93ZWJwZXJmL3Byb3Bvc2FsL3Jlc291cmNlLXRpbWluZy90ZXN0
X3Jlc291cmNlX3RpbWluZ19jbGVhcl9yZXNvdXJjZV90aW1pbmdfZnVuY3Rpb25hbGl0eS5odG1s
CisgICAgICAgICAgICAgICBodHRwL3Rlc3RzL3czYy93ZWJwZXJmL3Byb3Bvc2FsL3Jlc291cmNl
LXRpbWluZy90ZXN0X3Jlc291cmNlX3RpbWluZ19vbl9yZXNvdXJjZV90aW1pbmdfYnVmZmVyX2Z1
bGwuaHRtbAorCisgICAgICAgICogcGFnZS9QZXJmb3JtYW5jZS5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpQZXJmb3JtYW5jZTo6UGVyZm9ybWFuY2UpOgorICAgICAgICAoV2ViQ29yZTo6UGVyZm9y
bWFuY2U6OndlYmtpdFNldFJlc291cmNlVGltaW5nQnVmZmVyU2l6ZSk6CisgICAgICAgIChXZWJD
b3JlOjpQZXJmb3JtYW5jZTo6YWRkUmVzb3VyY2VUaW1pbmcpOgorICAgICAgICAqIHBhZ2UvUGVy
Zm9ybWFuY2UuaDoKKyAgICAgICAgKFBlcmZvcm1hbmNlKToKKwogMjAxMi0wNy0yNCAgS2VudGFy
byBIYXJhICA8aGFyYWtlbkBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgW0pTQ10gUkVHUkVTU0lP
TihyMTIyOTEyKTogQ29kZUdlbmVyYXRvckpTLnBtIHNob3VsZCBub3QKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BhZ2UvUGVyZm9ybWFuY2UuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9Q
ZXJmb3JtYW5jZS5jcHAKaW5kZXggOTAzMzkzMDIxOWU2MDQxMTUxNGNjZGU1NmY2NmJlNmI4NTg4
ZDUxOS4uNTY3N2EwYzMzMzgxZjM2YWRiMzcxYzAzNmU0MTA2OTk0NjZlYmJhOSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGFnZS9QZXJmb3JtYW5jZS5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvcGFnZS9QZXJmb3JtYW5jZS5jcHAKQEAgLTEsNSArMSw2IEBACiAvKgogICogQ29weXJpZ2h0
IChDKSAyMDEwIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQg
KEMpIDIwMTIgSW50ZWwgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zIGFyZQpAQCAtNTAsNiArNTEsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7
CiBQZXJmb3JtYW5jZTo6UGVyZm9ybWFuY2UoRnJhbWUqIGZyYW1lKQogICAgIDogRE9NV2luZG93
UHJvcGVydHkoZnJhbWUpCiB7CisgICAgbV9yZXNvdXJjZVRpbWluZ0J1ZmZlclNpemUgPSBkZWZh
dWx0UmVzb3VyY2VUaW1pbmdCdWZmZXJTaXplOwogfQogCiBQZXJmb3JtYW5jZTo6flBlcmZvcm1h
bmNlKCkKQEAgLTEzOCw5ICsxNDAsOSBAQCB2b2lkIFBlcmZvcm1hbmNlOjp3ZWJraXRDbGVhclJl
c291cmNlVGltaW5ncygpCiAgICAgbV9yZXNvdXJjZVRpbWluZ0J1ZmZlci5jbGVhcigpOwogfQog
Ci12b2lkIFBlcmZvcm1hbmNlOjp3ZWJraXRTZXRSZXNvdXJjZVRpbWluZ0J1ZmZlclNpemUodW5z
aWduZWQgaW50KQordm9pZCBQZXJmb3JtYW5jZTo6d2Via2l0U2V0UmVzb3VyY2VUaW1pbmdCdWZm
ZXJTaXplKHVuc2lnbmVkIGludCBzaXplKQogewotICAgIC8vIEZJWE1FOiBJbXBsZW1lbnQgdGhp
cy4KKyAgICBtX3Jlc291cmNlVGltaW5nQnVmZmVyU2l6ZSA9IHNpemU7CiB9CiAKIHZvaWQgUGVy
Zm9ybWFuY2U6OmFkZFJlc291cmNlVGltaW5nKGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWVz
dCwgY29uc3QgUmVzb3VyY2VSZXNwb25zZSYgcmVzcG9uc2UsIGRvdWJsZSBmaW5pc2hUaW1lLCBE
b2N1bWVudCogcmVxdWVzdGluZ0RvY3VtZW50KQpAQCAtMTQ4LDggKzE1MCwxMiBAQCB2b2lkIFBl
cmZvcm1hbmNlOjphZGRSZXNvdXJjZVRpbWluZyhjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVl
c3QsIGNvbnN0IFJlc291cgogICAgIGlmICghcmVzcG9uc2UucmVzb3VyY2VMb2FkVGltaW5nKCkp
CiAgICAgICAgIHJldHVybjsKIAorICAgIGlmIChtX3Jlc291cmNlVGltaW5nQnVmZmVyLnNpemUo
KSA+PSBtX3Jlc291cmNlVGltaW5nQnVmZmVyU2l6ZSkgeworICAgICAgICBkaXNwYXRjaEV2ZW50
KEV2ZW50OjpjcmVhdGUoZXZlbnROYW1lcygpLndlYmtpdHJlc291cmNldGltaW5nYnVmZmVyZnVs
bEV2ZW50LCBmYWxzZSwgZmFsc2UpKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKwogICAgIFJl
ZlB0cjxQZXJmb3JtYW5jZUVudHJ5PiBlbnRyeSA9IFBlcmZvcm1hbmNlUmVzb3VyY2VUaW1pbmc6
OmNyZWF0ZShyZXF1ZXN0LCByZXNwb25zZSwgZmluaXNoVGltZSwgcmVxdWVzdGluZ0RvY3VtZW50
KTsKLSAgICAvLyBGSVhNRTogTmVlZCB0byBlbmZvcmNlIGJ1ZmZlciBsaW1pdHMuCiAgICAgbV9y
ZXNvdXJjZVRpbWluZ0J1ZmZlci5hcHBlbmQoZW50cnkpOwogfQogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL1BlcmZvcm1hbmNlLmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BlcmZv
cm1hbmNlLmgKaW5kZXggOGJhOGM1ZWVhOTVlZTVkNDNkOGNiZGU0NjcwZWQ5MmIyMTk2MWU2OC4u
OTM3MTI0ZDE1MjY1MGU1YWJjZmIwMjc2Y2MzNzVhZTg0YWRmOWQ2OCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGFnZS9QZXJmb3JtYW5jZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
UGVyZm9ybWFuY2UuaApAQCAtMSw1ICsxLDYgQEAKIC8qCiAgKiBDb3B5cmlnaHQgKEMpIDIwMTAg
R29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxMiBJ
bnRlbCBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMgYXJlCkBAIC05NSw3ICs5Niw5IEBAIHByaXZhdGU6CiAgICAgbXV0YWJsZSBSZWZQdHI8
UGVyZm9ybWFuY2VUaW1pbmc+IG1fdGltaW5nOwogCiAjaWYgRU5BQkxFKFJFU09VUkNFX1RJTUlO
RykKKyAgICBzdGF0aWMgY29uc3Qgc2l6ZV90IGRlZmF1bHRSZXNvdXJjZVRpbWluZ0J1ZmZlclNp
emUgPSAxNTA7CiAgICAgVmVjdG9yPFJlZlB0cjxQZXJmb3JtYW5jZUVudHJ5PiA+IG1fcmVzb3Vy
Y2VUaW1pbmdCdWZmZXI7CisgICAgdW5zaWduZWQgaW50IG1fcmVzb3VyY2VUaW1pbmdCdWZmZXJT
aXplOwogI2VuZGlmCiB9OwogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9M
YXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggODRkNDM4YzQzZTVmZmNiYTRmZjEzZDZjNmM2OGZj
YTUwNmQxYmY0Yi4uMjM1YmExNWZmNTc5MWVmMTMxYzEwZjE2M2U5ZDgwYmQ1ODcxMzdiNyAxMDA2
NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwpAQCAtMSwzICsxLDE5IEBACisyMDEyLTA5LTAzICBQYW4gRGVuZyAgPHBhbi5kZW5nQGludGVs
LmNvbT4KKworICAgICAgICBbUmVzb3VyY2UgVGltaW5nXVRlc3QgY2FzZXMgZm9yIHNldCBidWZm
ZXIgc2l6ZSBmdW5jdGlvbmFsaXR5IGFuZCBldmVudCB3aGVuIGJ1ZmZlciBmdWxsLgorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODQ4ODUuCisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGVzdCBjYXNlcyBpbiB0
aGlzIHBhdGNoIHZhbGlkYXRlIGJ1ZmZlciBzaXplIHJlc3RyaWN0aW9uIGZ1bmN0aW9uYWxpdHks
IGNsZWFyIHJlc291cmNlIHRpbWluZyBmdW5jdGlvbmFsaXR5IGFuZCB0aGUgZmlyZWQgZXZlbnQg
d2hlbiBidWZmZXIgZnVsbC4KKworICAgICAgICAqIGh0dHAvdGVzdHMvdzNjL3dlYnBlcmYvcHJv
cG9zYWwvcmVzb3VyY2UtdGltaW5nL3Rlc3RfcmVzb3VyY2VfdGltaW5nX2J1ZmZlcl9zaXplX3Jl
c3RyaWN0aW9uLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy93M2Mv
d2VicGVyZi9wcm9wb3NhbC9yZXNvdXJjZS10aW1pbmcvdGVzdF9yZXNvdXJjZV90aW1pbmdfYnVm
ZmVyX3NpemVfcmVzdHJpY3Rpb24uaHRtbDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy93
M2Mvd2VicGVyZi9wcm9wb3NhbC9yZXNvdXJjZS10aW1pbmcvdGVzdF9yZXNvdXJjZV90aW1pbmdf
Y2xlYXJfcmVzb3VyY2VfdGltaW5nX2Z1bmN0aW9uYWxpdHktZXhwZWN0ZWQudHh0OiBBZGRlZC4K
KyAgICAgICAgKiBodHRwL3Rlc3RzL3czYy93ZWJwZXJmL3Byb3Bvc2FsL3Jlc291cmNlLXRpbWlu
Zy90ZXN0X3Jlc291cmNlX3RpbWluZ19jbGVhcl9yZXNvdXJjZV90aW1pbmdfZnVuY3Rpb25hbGl0
eS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3czYy93ZWJwZXJmL3Byb3Bvc2Fs
L3Jlc291cmNlLXRpbWluZy90ZXN0X3Jlc291cmNlX3RpbWluZ19vbl9yZXNvdXJjZV90aW1pbmdf
YnVmZmVyX2Z1bGwtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3cz
Yy93ZWJwZXJmL3Byb3Bvc2FsL3Jlc291cmNlLXRpbWluZy90ZXN0X3Jlc291cmNlX3RpbWluZ19v
bl9yZXNvdXJjZV90aW1pbmdfYnVmZmVyX2Z1bGwuaHRtbDogQWRkZWQuCisKIDIwMTItMDctMjMg
IEJhbGF6cyBBbmtlcyAgPGJhbmtAaW5mLnUtc3plZ2VkLmh1PgogCiAgICAgICAgIFtRdF0gZnJv
bSBwbGF0Zm9ybS9xdC9mYXN0L292ZXJmbG93IHRvIHBsYXRmb3JtL3F0L2Zhc3QveHNsIHRlc3Rz
IG5lZWRzIHVwZGF0ZSBhZnRlciByZWJhc2VsaW5lIGFuZCBuZXcgdGVzdGZvbnRzCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3czYy93ZWJwZXJmL3Byb3Bvc2FsL3Jlc291cmNl
LXRpbWluZy90ZXN0X3Jlc291cmNlX3RpbWluZ19idWZmZXJfc2l6ZV9yZXN0cmljdGlvbi1leHBl
Y3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3czYy93ZWJwZXJmL3Byb3Bvc2FsL3Jl
c291cmNlLXRpbWluZy90ZXN0X3Jlc291cmNlX3RpbWluZ19idWZmZXJfc2l6ZV9yZXN0cmljdGlv
bi1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMTczNTE4YjNjZTUzYmU4YjEzZWRhNjJhODk1YzVi
ZmMzYTFlYjQ3NQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvdzNj
L3dlYnBlcmYvcHJvcG9zYWwvcmVzb3VyY2UtdGltaW5nL3Rlc3RfcmVzb3VyY2VfdGltaW5nX2J1
ZmZlcl9zaXplX3Jlc3RyaWN0aW9uLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDggQEAKK0Rlc2Ny
aXB0aW9uDQorDQorVGhpcyB0ZXN0IHZhbGlkYXRlcyB0aGUgZnVuY3Rpb25hbGl0eSBvZiBzZXRS
ZXNvdXJjZVRpbWluZ0J1ZmZlclNpemUgbWV0aG9kIGluIHJlc291cmNlIHRpbWluZy4NCisNCisN
CisNCitQQVNTIDIgcmVzb3VyY2UgdGltaW5nIGVudHJpZXMgc2hvdWxkIGJlIHN0b3JlZCEgDQor
DQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93M2Mvd2VicGVyZi9wcm9wb3Nh
bC9yZXNvdXJjZS10aW1pbmcvdGVzdF9yZXNvdXJjZV90aW1pbmdfYnVmZmVyX3NpemVfcmVzdHJp
Y3Rpb24uaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvdzNjL3dlYnBlcmYvcHJvcG9zYWwv
cmVzb3VyY2UtdGltaW5nL3Rlc3RfcmVzb3VyY2VfdGltaW5nX2J1ZmZlcl9zaXplX3Jlc3RyaWN0
aW9uLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uYTQzZGUyMDkzMDYwMTE5MGE0ZmZlMGMwODE1YTVlYTQ4MzRm
YTI1YwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvdzNjL3dlYnBl
cmYvcHJvcG9zYWwvcmVzb3VyY2UtdGltaW5nL3Rlc3RfcmVzb3VyY2VfdGltaW5nX2J1ZmZlcl9z
aXplX3Jlc3RyaWN0aW9uLmh0bWwKQEAgLTAsMCArMSwyNyBAQAorPCFET0NUWVBFIEhUTUw+Cis8
aHRtbD4KKyAgICA8aGVhZD4KKyAgICAgICAgPG1ldGEgY2hhcnNldD0idXRmLTgiIC8+CisgICAg
ICAgIDx0aXRsZT5idWZmZXIgc2l6ZSByZXN0cmljdGlvbiBmdW5jdGlvbmFsaXR5IG9mIHJlc291
cmNlIHRpbWluZzwvdGl0bGU+CisgICAgICAgIDxzY3JpcHQ+CisgICAgICAgICAgICB2YXIgYnVm
ZmVyX3NpemUgPSAyOworICAgICAgICAgICAgcGVyZm9ybWFuY2Uud2Via2l0U2V0UmVzb3VyY2VU
aW1pbmdCdWZmZXJTaXplKDIpOworICAgICAgICA8L3NjcmlwdD4KKyAgICAgICAgPGxpbmsgcmVs
PSJhdXRob3IiIHRpdGxlPSJJbnRlbCIgaHJlZj0iaHR0cDovL3d3dy5pbnRlbC5jb20vIiAvPgor
ICAgICAgICA8bGluayByZWw9ImhlbHAiIGhyZWY9Imh0dHA6Ly93d3cudzMub3JnL1RSL3Jlc291
cmNlLXRpbWluZy8jcGVyZm9ybWFuY2VyZXNvdXJjZXRpbWluZyIvPgorICAgICAgICA8c2NyaXB0
IHNyYz0iL3czYy9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgorICAgICAgICA8
c2NyaXB0IHNyYz0iL3czYy9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0
PgorICAgICAgICA8c2NyaXB0IHNyYz0iL3czYy93ZWJwZXJmL3Jlc291cmNlcy93ZWJwZXJmdGVz
dGhhcm5lc3MuanMiPjwvc2NyaXB0PgorICAgICAgICA8c2NyaXB0PgorICAgICAgICAgICAgZnVu
Y3Rpb24gb25sb2FkX3Rlc3QoKQorICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIHRlc3Rf
ZXF1YWxzKHBlcmZvcm1hbmNlLndlYmtpdEdldEVudHJpZXNCeVR5cGUoInJlc291cmNlIikubGVu
Z3RoLCBidWZmZXJfc2l6ZSwgYnVmZmVyX3NpemUgKyAiIHJlc291cmNlIHRpbWluZyBlbnRyaWVz
IHNob3VsZCBiZSBzdG9yZWQhIik7CisgICAgICAgICAgICB9CisgICAgICAgIDwvc2NyaXB0Pgor
ICAgIDwvaGVhZD4KKyAgICA8Ym9keT4KKyAgICAgICAgPGgxPkRlc2NyaXB0aW9uPC9oMT4KKyAg
ICAgICAgPHA+VGhpcyB0ZXN0IHZhbGlkYXRlcyB0aGUgZnVuY3Rpb25hbGl0eSBvZiBzZXRSZXNv
dXJjZVRpbWluZ0J1ZmZlclNpemUgbWV0aG9kIGluIHJlc291cmNlIHRpbWluZy48L3A+CisgICAg
ICAgIDxpZnJhbWUgaWQ9ImZyYW1lQ29udGV4dCIgb25sb2FkPW9ubG9hZF90ZXN0KCkgc3JjPSIv
dzNjL3dlYnBlcmYvcmVzb3VyY2VzL2JsYW5rX3BhZ2VfZ3JlZW4uaHRtIiBzdHlsZT0id2lkdGg6
IDI1MHB4OyBoZWlnaHQ6IDI1MHB4OyI+PC9pZnJhbWU+CisgICAgPC9ib2R5PgorPC9odG1sPgpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93M2Mvd2VicGVyZi9wcm9wb3NhbC9y
ZXNvdXJjZS10aW1pbmcvdGVzdF9yZXNvdXJjZV90aW1pbmdfY2xlYXJfcmVzb3VyY2VfdGltaW5n
X2Z1bmN0aW9uYWxpdHktZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93M2Mv
d2VicGVyZi9wcm9wb3NhbC9yZXNvdXJjZS10aW1pbmcvdGVzdF9yZXNvdXJjZV90aW1pbmdfY2xl
YXJfcmVzb3VyY2VfdGltaW5nX2Z1bmN0aW9uYWxpdHktZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1v
ZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LjIyZDkzNWEyMTQ0YmQ5YTE2MGEzYTk4ZmY2ZjBkNzVkNmRiYzk3NzgKLS0tIC9kZXYvbnVsbAor
KysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3czYy93ZWJwZXJmL3Byb3Bvc2FsL3Jlc291cmNl
LXRpbWluZy90ZXN0X3Jlc291cmNlX3RpbWluZ19jbGVhcl9yZXNvdXJjZV90aW1pbmdfZnVuY3Rp
b25hbGl0eS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw5IEBACitEZXNjcmlwdGlvbg0KKw0KK1Ro
aXMgdGVzdCB2YWxpZGF0ZXMgdGhlIGZ1bmN0aW9uYWxpdHkgb2YgY2xlYXJSZXNvdXJjZVRpbWlu
Z3MgbWV0aG9kIGluIHJlc291cmNlIHRpbWluZy4NCisNCisNCisNCitQQVNTIDQgcmVzb3VyY2Ug
dGltaW5nIGVudHJpZXMgc2hvdWxkIGJlIHN0b3JlZCEgDQorUEFTUyBubyByZXNvdXJjZSB0aW1p
bmcgZW50cmllcyBzaG91bGQgYmUgc3RvcmVkIGFmdGVyIGNsZWFyUmVzb3VyY2VUaW1pbmdzISAN
CisNCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3czYy93ZWJwZXJmL3Byb3Bv
c2FsL3Jlc291cmNlLXRpbWluZy90ZXN0X3Jlc291cmNlX3RpbWluZ19jbGVhcl9yZXNvdXJjZV90
aW1pbmdfZnVuY3Rpb25hbGl0eS5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93M2Mvd2Vi
cGVyZi9wcm9wb3NhbC9yZXNvdXJjZS10aW1pbmcvdGVzdF9yZXNvdXJjZV90aW1pbmdfY2xlYXJf
cmVzb3VyY2VfdGltaW5nX2Z1bmN0aW9uYWxpdHkuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDc1NQpp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5jNzY2NzVlNmZk
OGQ1NmI2MzI0ZTI5MjRjY2FiMzExMmIyODExNGQ1Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0
VGVzdHMvaHR0cC90ZXN0cy93M2Mvd2VicGVyZi9wcm9wb3NhbC9yZXNvdXJjZS10aW1pbmcvdGVz
dF9yZXNvdXJjZV90aW1pbmdfY2xlYXJfcmVzb3VyY2VfdGltaW5nX2Z1bmN0aW9uYWxpdHkuaHRt
bApAQCAtMCwwICsxLDI1IEBACis8IURPQ1RZUEUgSFRNTD4KKzxodG1sPgorICAgIDxoZWFkPgor
ICAgICAgICA8bWV0YSBjaGFyc2V0PSJ1dGYtOCIgLz4KKyAgICAgICAgPHRpdGxlPmNsZWFyUmVz
b3VyY2VUaW1pbmdzIGZ1bmN0aW9uYWxpdHkgb2YgcmVzb3VyY2UgdGltaW5nPC90aXRsZT4KKyAg
ICAgICAgPGxpbmsgcmVsPSJhdXRob3IiIHRpdGxlPSJJbnRlbCIgaHJlZj0iaHR0cDovL3d3dy5p
bnRlbC5jb20vIiAvPgorICAgICAgICA8bGluayByZWw9ImhlbHAiIGhyZWY9Imh0dHA6Ly93d3cu
dzMub3JnL1RSL3Jlc291cmNlLXRpbWluZy8jcGVyZm9ybWFuY2VyZXNvdXJjZXRpbWluZyIvPgor
ICAgICAgICA8c2NyaXB0IHNyYz0iL3czYy9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2Ny
aXB0PgorICAgICAgICA8c2NyaXB0IHNyYz0iL3czYy9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBv
cnQuanMiPjwvc2NyaXB0PgorICAgICAgICA8c2NyaXB0IHNyYz0iL3czYy93ZWJwZXJmL3Jlc291
cmNlcy93ZWJwZXJmdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgorICAgICAgICA8c2NyaXB0Pgor
ICAgICAgICAgICAgZnVuY3Rpb24gb25sb2FkX3Rlc3QoKQorICAgICAgICAgICAgeworICAgICAg
ICAgICAgICAgIHRlc3RfZXF1YWxzKHBlcmZvcm1hbmNlLndlYmtpdEdldEVudHJpZXNCeVR5cGUo
InJlc291cmNlIikubGVuZ3RoLCA0LCA0ICsgIiByZXNvdXJjZSB0aW1pbmcgZW50cmllcyBzaG91
bGQgYmUgc3RvcmVkISIpOworICAgICAgICAgICAgICAgIHBlcmZvcm1hbmNlLndlYmtpdENsZWFy
UmVzb3VyY2VUaW1pbmdzKCk7CisgICAgICAgICAgICAgICAgdGVzdF9lcXVhbHMocGVyZm9ybWFu
Y2Uud2Via2l0R2V0RW50cmllc0J5VHlwZSgicmVzb3VyY2UiKS5sZW5ndGgsIDAsICJubyByZXNv
dXJjZSB0aW1pbmcgZW50cmllcyBzaG91bGQgYmUgc3RvcmVkIGFmdGVyIGNsZWFyUmVzb3VyY2VU
aW1pbmdzISIpOworICAgICAgICAgICAgfQorICAgICAgICA8L3NjcmlwdD4KKyAgICA8L2hlYWQ+
CisgICAgPGJvZHk+CisgICAgICAgIDxoMT5EZXNjcmlwdGlvbjwvaDE+CisgICAgICAgIDxwPlRo
aXMgdGVzdCB2YWxpZGF0ZXMgdGhlIGZ1bmN0aW9uYWxpdHkgb2YgY2xlYXJSZXNvdXJjZVRpbWlu
Z3MgbWV0aG9kIGluIHJlc291cmNlIHRpbWluZy48L3A+CisgICAgICAgIDxpZnJhbWUgaWQ9ImZy
YW1lQ29udGV4dCIgb25sb2FkPW9ubG9hZF90ZXN0KCkgc3JjPSIvdzNjL3dlYnBlcmYvcmVzb3Vy
Y2VzL2JsYW5rX3BhZ2VfZ3JlZW4uaHRtIiBzdHlsZT0id2lkdGg6IDI1MHB4OyBoZWlnaHQ6IDI1
MHB4OyI+PC9pZnJhbWU+CisgICAgPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvaHR0cC90ZXN0cy93M2Mvd2VicGVyZi9wcm9wb3NhbC9yZXNvdXJjZS10aW1pbmcvdGVz
dF9yZXNvdXJjZV90aW1pbmdfb25fcmVzb3VyY2VfdGltaW5nX2J1ZmZlcl9mdWxsLWV4cGVjdGVk
LnR4dCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvdzNjL3dlYnBlcmYvcHJvcG9zYWwvcmVzb3Vy
Y2UtdGltaW5nL3Rlc3RfcmVzb3VyY2VfdGltaW5nX29uX3Jlc291cmNlX3RpbWluZ19idWZmZXJf
ZnVsbC1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYTljOTU3NzVlYTNhNWQ2MDE1Zjc0YjhjMDAx
NGMwMTg0NzljMjc1ZQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMv
dzNjL3dlYnBlcmYvcHJvcG9zYWwvcmVzb3VyY2UtdGltaW5nL3Rlc3RfcmVzb3VyY2VfdGltaW5n
X29uX3Jlc291cmNlX3RpbWluZ19idWZmZXJfZnVsbC1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw4
IEBACitEZXNjcmlwdGlvbg0KKw0KK1RoaXMgdGVzdCB2YWxpZGF0ZXMgdGhlIGZ1bmN0aW9uYWxp
dHkgb2Ygb25yZXNvdXJjZXRpbWluZ2J1ZmZlcmZ1bGwgaW4gcmVzb3VyY2UgdGltaW5nLg0KKw0K
Kw0KKw0KK1BBU1Mgb25yZXNvdXJjZXRpbWluZ2J1ZmZlcmZ1bGwgc2hvdWxkIGhhdmUgYmVlbiBp
bnZva2VkISANCisNCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3czYy93ZWJw
ZXJmL3Byb3Bvc2FsL3Jlc291cmNlLXRpbWluZy90ZXN0X3Jlc291cmNlX3RpbWluZ19vbl9yZXNv
dXJjZV90aW1pbmdfYnVmZmVyX2Z1bGwuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvdzNj
L3dlYnBlcmYvcHJvcG9zYWwvcmVzb3VyY2UtdGltaW5nL3Rlc3RfcmVzb3VyY2VfdGltaW5nX29u
X3Jlc291cmNlX3RpbWluZ19idWZmZXJfZnVsbC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNzU1Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjAwNzU1ZjMwMzE1
ZmM5OWYxOGM4NDA0YTM5MzhkODZkYTQwOTM2MmQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRU
ZXN0cy9odHRwL3Rlc3RzL3czYy93ZWJwZXJmL3Byb3Bvc2FsL3Jlc291cmNlLXRpbWluZy90ZXN0
X3Jlc291cmNlX3RpbWluZ19vbl9yZXNvdXJjZV90aW1pbmdfYnVmZmVyX2Z1bGwuaHRtbApAQCAt
MCwwICsxLDMzIEBACis8IURPQ1RZUEUgSFRNTD4KKzxodG1sPgorICAgIDxoZWFkPgorICAgICAg
ICA8bWV0YSBjaGFyc2V0PSJ1dGYtOCIgLz4KKyAgICAgICAgPHRpdGxlPm9ucmVzb3VyY2V0aW1p
bmdidWZmZXJmdWxsIGNhbGxiYWNrIG9mIHJlc291cmNlIHRpbWluZzwvdGl0bGU+CisgICAgICAg
IDxzY3JpcHQ+CisgICAgICAgICAgICB2YXIgY291bnQgPSAwOworICAgICAgICAgICAgZnVuY3Rp
b24gYnVmZmVyX2Z1bGxfY2FsbF9iYWNrKCkKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAg
ICBjb3VudCsrOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBwZXJmb3JtYW5jZS53ZWJr
aXRTZXRSZXNvdXJjZVRpbWluZ0J1ZmZlclNpemUoMCk7CisgICAgICAgICAgICBwZXJmb3JtYW5j
ZS5vbndlYmtpdHJlc291cmNldGltaW5nYnVmZmVyZnVsbCA9IGJ1ZmZlcl9mdWxsX2NhbGxfYmFj
azsKKyAgICAgICAgPC9zY3JpcHQ+CisgICAgICAgIDxsaW5rIHJlbD0iYXV0aG9yIiB0aXRsZT0i
SW50ZWwiIGhyZWY9Imh0dHA6Ly93d3cuaW50ZWwuY29tLyIgLz4KKyAgICAgICAgPGxpbmsgcmVs
PSJoZWxwIiBocmVmPSJodHRwOi8vd3d3LnczLm9yZy9UUi9yZXNvdXJjZS10aW1pbmcvI3BlcmZv
cm1hbmNlcmVzb3VyY2V0aW1pbmciLz4KKyAgICAgICAgPHNjcmlwdCBzcmM9Ii93M2MvcmVzb3Vy
Y2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KKyAgICAgICAgPHNjcmlwdCBzcmM9Ii93M2Mv
cmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KKyAgICAgICAgPHNjcmlw
dCBzcmM9Ii93M2Mvd2VicGVyZi9yZXNvdXJjZXMvd2VicGVyZnRlc3RoYXJuZXNzLmpzIj48L3Nj
cmlwdD4KKyAgICAgICAgPHNjcmlwdD4KKyAgICAgICAgICAgIGZ1bmN0aW9uIG9ubG9hZF90ZXN0
KCkKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICB0ZXN0X2dyZWF0ZXJfdGhhbihjb3Vu
dCwgMCwgIm9ucmVzb3VyY2V0aW1pbmdidWZmZXJmdWxsIHNob3VsZCBoYXZlIGJlZW4gaW52b2tl
ZCEiKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgPC9zY3JpcHQ+CisgICAgPC9oZWFkPgorICAg
IDxib2R5PgorICAgICAgICA8aDE+RGVzY3JpcHRpb248L2gxPgorICAgICAgICA8cD5UaGlzIHRl
c3QgdmFsaWRhdGVzIHRoZSBmdW5jdGlvbmFsaXR5IG9mIG9ucmVzb3VyY2V0aW1pbmdidWZmZXJm
dWxsIGluIHJlc291cmNlIHRpbWluZy48L3A+CisgICAgICAgIDxpZnJhbWUgaWQ9ImZyYW1lQ29u
dGV4dCIgb25sb2FkPW9ubG9hZF90ZXN0KCkgc3JjPSIvdzNjL3dlYnBlcmYvcmVzb3VyY2VzL2Js
YW5rX3BhZ2VfZ3JlZW4uaHRtIiBzdHlsZT0id2lkdGg6IDI1MHB4OyBoZWlnaHQ6IDI1MHB4OyI+
PC9pZnJhbWU+CisgICAgPC9ib2R5PgorPC9odG1sPgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>168887</attachid>
            <date>2012-10-16 01:19:39 -0700</date>
            <delta_ts>2012-10-18 02:43:15 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-84885-20121016162357.patch</filename>
            <type>text/plain</type>
            <size>24925</size>
            <attacher name="pdeng6">pan.deng</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTMxMDAyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNTE0NWQxZjg1NDlhYzA2
Zjc2ZjdmYzA5YzQ5OThiYjlkNGUwYmIxNi4uYTNkZWFhNWJiZmI5NWVmYTk3NWVhYzQ5YTJmMWUy
YmRlMDY2NTU1NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI5IEBACisyMDEyLTEwLTE2ICBQYW4g
RGVuZyAgPHBhbi5kZW5nQGludGVsLmNvbT4KKworICAgICAgICBbUmVzb3VyY2UgVGltaW5nXUlt
cGxlbWVudGF0aW9uIG9mIHJlc291cmNlIHRpbWluZyBidWZmZXIgc2l6ZSByZXN0cmljdGlvbiBm
dW5jdGlvbmFsaXR5CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD04NDg4NS4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKyAgICAg
ICAgCisgICAgICAgIGh0dHA6Ly93d3cudzMub3JnL1RSLzIwMTIvQ1ItcmVzb3VyY2UtdGltaW5n
LTIwMTIwNTIyLworICAgICAgICBUaGlzIHBhdGNoIGVuYWJsZSBmdW5jdGlvbmFsaXR5IG9mIHNl
dCBidWZmZXIgc2l6ZShkZWZhdWx0IGlzIDE1MCBhcyBzcGVjKS4gV2hlbiBidWZmZXIgaXMgZnVs
bCwgcmVzb3VyY2VUaW1pbmdCdWZmZXJGdWxsIGV2ZW50IHdpbGwgYmUgZmlyZWQuIEluY29taW5n
IGVudHJpZXMgd2lsbCBiZSBkcm9wcGVkIGlmIG5vIG1vcmUgc3BhY2UgZm9yIHRoZW0uCisKKyAg
ICAgICAgVGVzdHM6IGh0dHAvdGVzdHMvdzNjL3dlYnBlcmYvc3VibWlzc2lvbi9yZXNvdXJjZS10
aW1pbmcvaHRtbC90ZXN0X3Jlc291cmNlX3RpbWluZ19idWZmZXJfZnVsbF93aGVuX3BvcHVsYXRl
X2VudHJpZXMuaHRtbAorICAgICAgICAgICAgICAgaHR0cC90ZXN0cy93M2Mvd2VicGVyZi9zdWJt
aXNzaW9uL3Jlc291cmNlLXRpbWluZy9odG1sL3Rlc3RfcmVzb3VyY2VfdGltaW5nX2J1ZmZlcl9m
dWxsX3doZW5fc2hyaW5rX2J1ZmZlcl9zaXplLmh0bWwKKyAgICAgICAgICAgICAgIGh0dHAvdGVz
dHMvdzNjL3dlYnBlcmYvc3VibWlzc2lvbi9yZXNvdXJjZS10aW1pbmcvaHRtbC90ZXN0X3Jlc291
cmNlX3RpbWluZ19idWZmZXJfc2l6ZV9yZXN0cmljdGlvbi5odG1sCisgICAgICAgICAgICAgICBo
dHRwL3Rlc3RzL3czYy93ZWJwZXJmL3N1Ym1pc3Npb24vcmVzb3VyY2UtdGltaW5nL2h0bWwvdGVz
dF9yZXNvdXJjZV90aW1pbmdfY2xlYXJfcmVzb3VyY2VfdGltaW5nX2Z1bmN0aW9uYWxpdHkuaHRt
bAorICAgICAgICAgICAgICAgaHR0cC90ZXN0cy93M2Mvd2VicGVyZi9zdWJtaXNzaW9uL3Jlc291
cmNlLXRpbWluZy9odG1sL3Rlc3RfcmVzb3VyY2VfdGltaW5nX29uX3Nocmlua19idWZmZXJfc2l6
ZS5odG1sCisgICAgICAgICAgICAgICBodHRwL3Rlc3RzL3czYy93ZWJwZXJmL3N1Ym1pc3Npb24v
cmVzb3VyY2UtdGltaW5nL2h0bWwvdGVzdF9yZXNvdXJjZV90aW1pbmdfc3RvcmVfYW5kX2NsZWFy
X2R1cmluZ19jYWxsYmFjay5odG1sCisKKyAgICAgICAgKiBwYWdlL1BlcmZvcm1hbmNlLmNwcDoK
KyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoV2ViQ29yZTo6UGVyZm9ybWFuY2U6OlBlcmZv
cm1hbmNlKToKKyAgICAgICAgKFdlYkNvcmU6OlBlcmZvcm1hbmNlOjppc1Jlc291cmNlVGltaW5n
QnVmZmVyRnVsbCk6CisgICAgICAgIChXZWJDb3JlOjpQZXJmb3JtYW5jZTo6d2Via2l0U2V0UmVz
b3VyY2VUaW1pbmdCdWZmZXJTaXplKToKKyAgICAgICAgKFdlYkNvcmU6OlBlcmZvcm1hbmNlOjph
ZGRSZXNvdXJjZVRpbWluZyk6CisgICAgICAgICogcGFnZS9QZXJmb3JtYW5jZS5oOgorICAgICAg
ICAoUGVyZm9ybWFuY2UpOgorCiAyMDEyLTEwLTEwICBEaW1pdHJpIEdsYXprb3YgIDxkZ2xhemtv
dkBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgTWluaW1pemUgdGhlIHJlY2VudCB0ZW1wbGF0ZSBl
eHBsb3Npb24gaW4gU2VsZWN0b3JDaGVja2VyLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGFnZS9QZXJmb3JtYW5jZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BlcmZvcm1hbmNlLmNw
cAppbmRleCAyM2Q3Y2ZjMGY1YzFhZWZmMTk1ZGRiMGJlZWVhZGQxMTZkYTQzN2ExLi5iNWRmMDJk
MDRlYTI4ZjEzZGQyM2ViYWI2ZDYzMGYwY2MwNWI5ZmQ2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL1BlcmZvcm1hbmNlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BlcmZv
cm1hbmNlLmNwcApAQCAtMSw1ICsxLDYgQEAKIC8qCiAgKiBDb3B5cmlnaHQgKEMpIDIwMTAgR29v
Z2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxMiBJbnRl
bCBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMgYXJlCkBAIC00Nyw4ICs0OCwxNSBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKKyNpZiBF
TkFCTEUoUkVTT1VSQ0VfVElNSU5HKQorc3RhdGljIGNvbnN0IHNpemVfdCBkZWZhdWx0UmVzb3Vy
Y2VUaW1pbmdCdWZmZXJTaXplID0gMTUwOworI2VuZGlmCisKIFBlcmZvcm1hbmNlOjpQZXJmb3Jt
YW5jZShGcmFtZSogZnJhbWUpCiAgICAgOiBET01XaW5kb3dQcm9wZXJ0eShmcmFtZSkKKyNpZiBF
TkFCTEUoUkVTT1VSQ0VfVElNSU5HKQorICAgICwgbV9yZXNvdXJjZVRpbWluZ0J1ZmZlclNpemUo
ZGVmYXVsdFJlc291cmNlVGltaW5nQnVmZmVyU2l6ZSkKKyNlbmRpZgogewogfQogCkBAIC0xMzgs
OSArMTQ2LDExIEBAIHZvaWQgUGVyZm9ybWFuY2U6OndlYmtpdENsZWFyUmVzb3VyY2VUaW1pbmdz
KCkKICAgICBtX3Jlc291cmNlVGltaW5nQnVmZmVyLmNsZWFyKCk7CiB9CiAKLXZvaWQgUGVyZm9y
bWFuY2U6OndlYmtpdFNldFJlc291cmNlVGltaW5nQnVmZmVyU2l6ZSh1bnNpZ25lZCBpbnQpCit2
b2lkIFBlcmZvcm1hbmNlOjp3ZWJraXRTZXRSZXNvdXJjZVRpbWluZ0J1ZmZlclNpemUodW5zaWdu
ZWQgc2l6ZSkKIHsKLSAgICAvLyBGSVhNRTogSW1wbGVtZW50IHRoaXMuCisgICAgbV9yZXNvdXJj
ZVRpbWluZ0J1ZmZlclNpemUgPSBzaXplOworICAgIGlmIChpc1Jlc291cmNlVGltaW5nQnVmZmVy
RnVsbCgpKQorICAgICAgICBkaXNwYXRjaEV2ZW50KEV2ZW50OjpjcmVhdGUoZXZlbnROYW1lcygp
LndlYmtpdHJlc291cmNldGltaW5nYnVmZmVyZnVsbEV2ZW50LCBmYWxzZSwgZmFsc2UpKTsKIH0K
IAogdm9pZCBQZXJmb3JtYW5jZTo6YWRkUmVzb3VyY2VUaW1pbmcoY29uc3QgUmVzb3VyY2VSZXF1
ZXN0JiByZXF1ZXN0LCBjb25zdCBSZXNvdXJjZVJlc3BvbnNlJiByZXNwb25zZSwgZG91YmxlIGZp
bmlzaFRpbWUsIERvY3VtZW50KiByZXF1ZXN0aW5nRG9jdW1lbnQpCkBAIC0xNDksOCArMTU5LDE5
IEBAIHZvaWQgUGVyZm9ybWFuY2U6OmFkZFJlc291cmNlVGltaW5nKGNvbnN0IFJlc291cmNlUmVx
dWVzdCYgcmVxdWVzdCwgY29uc3QgUmVzb3VyCiAgICAgICAgIHJldHVybjsKIAogICAgIFJlZlB0
cjxQZXJmb3JtYW5jZUVudHJ5PiBlbnRyeSA9IFBlcmZvcm1hbmNlUmVzb3VyY2VUaW1pbmc6OmNy
ZWF0ZShyZXF1ZXN0LCByZXNwb25zZSwgZmluaXNoVGltZSwgcmVxdWVzdGluZ0RvY3VtZW50KTsK
LSAgICAvLyBGSVhNRTogTmVlZCB0byBlbmZvcmNlIGJ1ZmZlciBsaW1pdHMuCisKKyAgICBpZiAo
aXNSZXNvdXJjZVRpbWluZ0J1ZmZlckZ1bGwoKSkKKyAgICAgICAgcmV0dXJuOworCiAgICAgbV9y
ZXNvdXJjZVRpbWluZ0J1ZmZlci5hcHBlbmQoZW50cnkpOworCisgICAgaWYgKGlzUmVzb3VyY2VU
aW1pbmdCdWZmZXJGdWxsKCkpCisgICAgICAgIGRpc3BhdGNoRXZlbnQoRXZlbnQ6OmNyZWF0ZShl
dmVudE5hbWVzKCkud2Via2l0cmVzb3VyY2V0aW1pbmdidWZmZXJmdWxsRXZlbnQsIGZhbHNlLCBm
YWxzZSkpOworfQorCitib29sIFBlcmZvcm1hbmNlOjppc1Jlc291cmNlVGltaW5nQnVmZmVyRnVs
bCgpCit7CisgICAgcmV0dXJuIG1fcmVzb3VyY2VUaW1pbmdCdWZmZXIuc2l6ZSgpID49IG1fcmVz
b3VyY2VUaW1pbmdCdWZmZXJTaXplOwogfQogCiAjZW5kaWYgLy8gRU5BQkxFKFJFU09VUkNFX1RJ
TUlORykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGVyZm9ybWFuY2UuaCBiL1Nv
dXJjZS9XZWJDb3JlL3BhZ2UvUGVyZm9ybWFuY2UuaAppbmRleCA4YmE4YzVlZWE5NWVlNWQ0M2Q4
Y2JkZTQ2NzBlZDkyYjIxOTYxZTY4Li5hNTE2NTMxNDRiMzdlNjA1YzdlM2YxNjllMWI1M2ZkZTk2
NDQyMjkxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BlcmZvcm1hbmNlLmgKKysr
IGIvU291cmNlL1dlYkNvcmUvcGFnZS9QZXJmb3JtYW5jZS5oCkBAIC0xLDUgKzEsNiBAQAogLyoK
ICAqIENvcHlyaWdodCAoQykgMjAxMCBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgor
ICogQ29weXJpZ2h0IChDKSAyMDEyIEludGVsIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAq
CiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKQEAgLTg4LDYgKzg5LDcgQEAgcHJpdmF0
ZToKICAgICB2aXJ0dWFsIHZvaWQgZGVyZWZFdmVudFRhcmdldCgpIHsgZGVyZWYoKTsgfQogICAg
IHZpcnR1YWwgRXZlbnRUYXJnZXREYXRhKiBldmVudFRhcmdldERhdGEoKTsKICAgICB2aXJ0dWFs
IEV2ZW50VGFyZ2V0RGF0YSogZW5zdXJlRXZlbnRUYXJnZXREYXRhKCk7CisgICAgYm9vbCBpc1Jl
c291cmNlVGltaW5nQnVmZmVyRnVsbCgpOwogCiAgICAgRXZlbnRUYXJnZXREYXRhIG1fZXZlbnRU
YXJnZXREYXRhOwogCkBAIC05Niw2ICs5OCw3IEBAIHByaXZhdGU6CiAKICNpZiBFTkFCTEUoUkVT
T1VSQ0VfVElNSU5HKQogICAgIFZlY3RvcjxSZWZQdHI8UGVyZm9ybWFuY2VFbnRyeT4gPiBtX3Jl
c291cmNlVGltaW5nQnVmZmVyOworICAgIHVuc2lnbmVkIG1fcmVzb3VyY2VUaW1pbmdCdWZmZXJT
aXplOwogI2VuZGlmCiB9OwogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9M
YXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggZTcyZmRlZGI5OThjYmFmZjIwMGY2ZWVmNTg1ZjYx
YjcwYWE4OTkwNS4uZmRlOTZhMzRhM2UxZDM3NjU3YTVjNmEyOTgyNTBkNjQ3M2U4NDg2MyAxMDA2
NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwpAQCAtMSwzICsxLDI1IEBACisyMDEyLTEwLTE2ICBQYW4gRGVuZyAgPHBhbi5kZW5nQGludGVs
LmNvbT4KKworICAgICAgICBbUmVzb3VyY2UgVGltaW5nXVRlc3QgY2FzZXMgZm9yIHNldCBidWZm
ZXIgc2l6ZSBmdW5jdGlvbmFsaXR5IGFuZCBldmVudCB3aGVuIGJ1ZmZlciBmdWxsLgorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODQ4ODUuCisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGVzdCBjYXNlcyBpbiB0
aGlzIHBhdGNoIHZhbGlkYXRlIGJ1ZmZlciBzaXplIHJlc3RyaWN0aW9uIGZ1bmN0aW9uYWxpdHks
IGNsZWFyIHJlc291cmNlIHRpbWluZyBmdW5jdGlvbmFsaXR5IGFuZCB0aGUgZmlyZWQgZXZlbnQg
d2hlbiBidWZmZXIgZnVsbC4KKworICAgICAgICAqIGh0dHAvdGVzdHMvdzNjL3dlYnBlcmYvc3Vi
bWlzc2lvbi9yZXNvdXJjZS10aW1pbmcvaHRtbC90ZXN0X3Jlc291cmNlX3RpbWluZ19idWZmZXJf
ZnVsbF93aGVuX3BvcHVsYXRlX2VudHJpZXMtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAg
KiBodHRwL3Rlc3RzL3czYy93ZWJwZXJmL3N1Ym1pc3Npb24vcmVzb3VyY2UtdGltaW5nL2h0bWwv
dGVzdF9yZXNvdXJjZV90aW1pbmdfYnVmZmVyX2Z1bGxfd2hlbl9wb3B1bGF0ZV9lbnRyaWVzLmh0
bWw6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvdzNjL3dlYnBlcmYvc3VibWlzc2lvbi9y
ZXNvdXJjZS10aW1pbmcvaHRtbC90ZXN0X3Jlc291cmNlX3RpbWluZ19idWZmZXJfZnVsbF93aGVu
X3Nocmlua19idWZmZXJfc2l6ZS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGh0dHAv
dGVzdHMvdzNjL3dlYnBlcmYvc3VibWlzc2lvbi9yZXNvdXJjZS10aW1pbmcvaHRtbC90ZXN0X3Jl
c291cmNlX3RpbWluZ19idWZmZXJfZnVsbF93aGVuX3Nocmlua19idWZmZXJfc2l6ZS5odG1sOiBB
ZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3czYy93ZWJwZXJmL3N1Ym1pc3Npb24vcmVzb3Vy
Y2UtdGltaW5nL2h0bWwvdGVzdF9yZXNvdXJjZV90aW1pbmdfYnVmZmVyX3NpemVfcmVzdHJpY3Rp
b24tZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3czYy93ZWJwZXJm
L3N1Ym1pc3Npb24vcmVzb3VyY2UtdGltaW5nL2h0bWwvdGVzdF9yZXNvdXJjZV90aW1pbmdfYnVm
ZmVyX3NpemVfcmVzdHJpY3Rpb24uaHRtbDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy93
M2Mvd2VicGVyZi9zdWJtaXNzaW9uL3Jlc291cmNlLXRpbWluZy9odG1sL3Rlc3RfcmVzb3VyY2Vf
dGltaW5nX2NsZWFyX3Jlc291cmNlX3RpbWluZ19mdW5jdGlvbmFsaXR5LWV4cGVjdGVkLnR4dDog
QWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy93M2Mvd2VicGVyZi9zdWJtaXNzaW9uL3Jlc291
cmNlLXRpbWluZy9odG1sL3Rlc3RfcmVzb3VyY2VfdGltaW5nX2NsZWFyX3Jlc291cmNlX3RpbWlu
Z19mdW5jdGlvbmFsaXR5Lmh0bWw6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvdzNjL3dl
YnBlcmYvc3VibWlzc2lvbi9yZXNvdXJjZS10aW1pbmcvaHRtbC90ZXN0X3Jlc291cmNlX3RpbWlu
Z19vbl9zaHJpbmtfYnVmZmVyX3NpemUtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBo
dHRwL3Rlc3RzL3czYy93ZWJwZXJmL3N1Ym1pc3Npb24vcmVzb3VyY2UtdGltaW5nL2h0bWwvdGVz
dF9yZXNvdXJjZV90aW1pbmdfb25fc2hyaW5rX2J1ZmZlcl9zaXplLmh0bWw6IEFkZGVkLgorICAg
ICAgICAqIGh0dHAvdGVzdHMvdzNjL3dlYnBlcmYvc3VibWlzc2lvbi9yZXNvdXJjZS10aW1pbmcv
aHRtbC90ZXN0X3Jlc291cmNlX3RpbWluZ19zdG9yZV9hbmRfY2xlYXJfZHVyaW5nX2NhbGxiYWNr
LWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy93M2Mvd2VicGVyZi9z
dWJtaXNzaW9uL3Jlc291cmNlLXRpbWluZy9odG1sL3Rlc3RfcmVzb3VyY2VfdGltaW5nX3N0b3Jl
X2FuZF9jbGVhcl9kdXJpbmdfY2FsbGJhY2suaHRtbDogQWRkZWQuCisKIDIwMTItMTAtMTAgIExl
dmkgV2VpbnRyYXViICA8bGV2aXdAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFRlc3RzIGZhaWx1
cmUgb24gQ2hyb21pdW0gTWFjIGFmdGVyIHIxMzA4MjEKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2h0dHAvdGVzdHMvdzNjL3dlYnBlcmYvc3VibWlzc2lvbi9yZXNvdXJjZS10aW1pbmcvaHRtbC90
ZXN0X3Jlc291cmNlX3RpbWluZ19idWZmZXJfZnVsbF93aGVuX3BvcHVsYXRlX2VudHJpZXMtZXhw
ZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93M2Mvd2VicGVyZi9zdWJtaXNzaW9u
L3Jlc291cmNlLXRpbWluZy9odG1sL3Rlc3RfcmVzb3VyY2VfdGltaW5nX2J1ZmZlcl9mdWxsX3do
ZW5fcG9wdWxhdGVfZW50cmllcy1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNjFmMTAxNjEyYjA2
NmYyZmRjNTVkMDJiOTc3MzgzZGQ3NWZlZmQ4YwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRl
c3RzL2h0dHAvdGVzdHMvdzNjL3dlYnBlcmYvc3VibWlzc2lvbi9yZXNvdXJjZS10aW1pbmcvaHRt
bC90ZXN0X3Jlc291cmNlX3RpbWluZ19idWZmZXJfZnVsbF93aGVuX3BvcHVsYXRlX2VudHJpZXMt
ZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNyBAQAorRGVzY3JpcHRpb24NCisNCitUaGlzIHRlc3Qg
dmFsaWRhdGVzIHRoZSBmdW5jdGlvbmFsaXR5IG9mIG9ucmVzb3VyY2V0aW1pbmdidWZmZXJmdWxs
IGluIHJlc291cmNlIHRpbWluZy4NCisNCisNCitQQVNTIG9ucmVzb3VyY2V0aW1pbmdidWZmZXJm
dWxsIHNob3VsZCBoYXZlIGJlZW4gaW52b2tlZCBvbmNlIGJ1ZmZlciBpcyBmdWxsISANCisNCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3czYy93ZWJwZXJmL3N1Ym1pc3Npb24v
cmVzb3VyY2UtdGltaW5nL2h0bWwvdGVzdF9yZXNvdXJjZV90aW1pbmdfYnVmZmVyX2Z1bGxfd2hl
bl9wb3B1bGF0ZV9lbnRyaWVzLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3czYy93ZWJw
ZXJmL3N1Ym1pc3Npb24vcmVzb3VyY2UtdGltaW5nL2h0bWwvdGVzdF9yZXNvdXJjZV90aW1pbmdf
YnVmZmVyX2Z1bGxfd2hlbl9wb3B1bGF0ZV9lbnRyaWVzLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA3
NTUKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMWI2NjE0
MjFkMTQ4MTgzN2Q2MzVmNTlkMWFkZGRmMGNhZjQ2N2U1YwotLS0gL2Rldi9udWxsCisrKyBiL0xh
eW91dFRlc3RzL2h0dHAvdGVzdHMvdzNjL3dlYnBlcmYvc3VibWlzc2lvbi9yZXNvdXJjZS10aW1p
bmcvaHRtbC90ZXN0X3Jlc291cmNlX3RpbWluZ19idWZmZXJfZnVsbF93aGVuX3BvcHVsYXRlX2Vu
dHJpZXMuaHRtbApAQCAtMCwwICsxLDM0IEBACis8IURPQ1RZUEUgSFRNTD4NCis8aHRtbD4NCisg
ICAgPGhlYWQ+DQorICAgICAgICA8bWV0YSBjaGFyc2V0PSJ1dGYtOCIgLz4NCisgICAgICAgIDx0
aXRsZT5vbnJlc291cmNldGltaW5nYnVmZmVyZnVsbCBjYWxsYmFjayBvZiByZXNvdXJjZSB0aW1p
bmc8L3RpdGxlPg0KKyAgICAgICAgPHNjcmlwdD4NCisgICAgICAgICAgICB2YXIgY291bnQgPSAw
Ow0KKyAgICAgICAgICAgIGZ1bmN0aW9uIGJ1ZmZlcl9mdWxsX2NhbGxfYmFjaygpDQorICAgICAg
ICAgICAgew0KKyAgICAgICAgICAgICAgICBjb3VudCsrOw0KKyAgICAgICAgICAgIH0NCisNCisg
ICAgICAgICAgICBwZXJmb3JtYW5jZS5vbndlYmtpdHJlc291cmNldGltaW5nYnVmZmVyZnVsbCA9
IGJ1ZmZlcl9mdWxsX2NhbGxfYmFjazsNCisgICAgICAgICAgICBwZXJmb3JtYW5jZS53ZWJraXRT
ZXRSZXNvdXJjZVRpbWluZ0J1ZmZlclNpemUoMik7DQorICAgICAgICA8L3NjcmlwdD4NCisgICAg
ICAgIDxsaW5rIHJlbD0iYXV0aG9yIiB0aXRsZT0iSW50ZWwiIGhyZWY9Imh0dHA6Ly93d3cuaW50
ZWwuY29tLyIgLz4NCisgICAgICAgIDxsaW5rIHJlbD0iaGVscCIgaHJlZj0iaHR0cDovL3d3dy53
My5vcmcvVFIvcmVzb3VyY2UtdGltaW5nLyNwZXJmb3JtYW5jZXJlc291cmNldGltaW5nIi8+DQor
ICAgICAgICA8c2NyaXB0IHNyYz0iL3czYy9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2Ny
aXB0Pg0KKyAgICAgICAgPHNjcmlwdCBzcmM9Ii93M2MvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVw
b3J0LmpzIj48L3NjcmlwdD4NCisgICAgICAgIDxzY3JpcHQgc3JjPSIvdzNjL3dlYnBlcmYvcmVz
b3VyY2VzL3dlYnBlcmZ0ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+DQorICAgICAgICA8c2NyaXB0
Pg0KKyAgICAgICAgICAgIHNldHVwKHsgZXhwbGljaXRfZG9uZTogdHJ1ZSB9KTsgICAgICAgICAg
ICANCisgICAgICAgICAgICBmdW5jdGlvbiBvbmxvYWRfdGVzdCgpDQorICAgICAgICAgICAgew0K
KyAgICAgICAgICAgICAgICB0ZXN0X2VxdWFscyhjb3VudCwgMSwgIm9ucmVzb3VyY2V0aW1pbmdi
dWZmZXJmdWxsIHNob3VsZCBoYXZlIGJlZW4gaW52b2tlZCBvbmNlIGJ1ZmZlciBpcyBmdWxsISIp
Ow0KKyAgICAgICAgICAgICAgICBkb25lKCk7ICAgICAgICAgICAgICAgIA0KKyAgICAgICAgICAg
IH0NCisgICAgICAgIDwvc2NyaXB0Pg0KKyAgICA8L2hlYWQ+DQorICAgIDxib2R5IG9ubG9hZD1v
bmxvYWRfdGVzdCgpPg0KKyAgICAgICAgPGgxPkRlc2NyaXB0aW9uPC9oMT4NCisgICAgICAgIDxw
PlRoaXMgdGVzdCB2YWxpZGF0ZXMgdGhlIGZ1bmN0aW9uYWxpdHkgb2Ygb25yZXNvdXJjZXRpbWlu
Z2J1ZmZlcmZ1bGwgaW4gcmVzb3VyY2UgdGltaW5nLjwvcD4NCisgICAgPC9ib2R5Pg0KKzwvaHRt
bD4NCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3czYy93ZWJwZXJmL3N1Ym1p
c3Npb24vcmVzb3VyY2UtdGltaW5nL2h0bWwvdGVzdF9yZXNvdXJjZV90aW1pbmdfYnVmZmVyX2Z1
bGxfd2hlbl9zaHJpbmtfYnVmZmVyX3NpemUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0
cC90ZXN0cy93M2Mvd2VicGVyZi9zdWJtaXNzaW9uL3Jlc291cmNlLXRpbWluZy9odG1sL3Rlc3Rf
cmVzb3VyY2VfdGltaW5nX2J1ZmZlcl9mdWxsX3doZW5fc2hyaW5rX2J1ZmZlcl9zaXplLWV4cGVj
dGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi5mNjIxZmFmMTFiZWQ2N2IzYzkzMThmMzVkMTkyOTUzZDVmZGIw
NmY0Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93M2Mvd2VicGVy
Zi9zdWJtaXNzaW9uL3Jlc291cmNlLXRpbWluZy9odG1sL3Rlc3RfcmVzb3VyY2VfdGltaW5nX2J1
ZmZlcl9mdWxsX3doZW5fc2hyaW5rX2J1ZmZlcl9zaXplLWV4cGVjdGVkLnR4dApAQCAtMCwwICsx
LDcgQEAKK0Rlc2NyaXB0aW9uDQorDQorVGhpcyB0ZXN0IHZhbGlkYXRlcyB0aGUgZnVuY3Rpb25h
bGl0eSBvZiBvbnJlc291cmNldGltaW5nYnVmZmVyZnVsbCBpbiByZXNvdXJjZSB0aW1pbmcuDQor
DQorDQorUEFTUyBvbnJlc291cmNldGltaW5nYnVmZmVyZnVsbCBzaG91bGQgYmUgaW52b2tlZCBv
bmNlIHRoZSBidWZmZXIgaXMgc2hydW5rIHRvIHNpemUgd2hpY2ggaXMgbGVzcyB0aGFuIG9yIGVx
dWFsIHRvIGN1cnJlbnQgZW50cnkgbnVtYmVyISANCisNCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9odHRwL3Rlc3RzL3czYy93ZWJwZXJmL3N1Ym1pc3Npb24vcmVzb3VyY2UtdGltaW5nL2h0bWwv
dGVzdF9yZXNvdXJjZV90aW1pbmdfYnVmZmVyX2Z1bGxfd2hlbl9zaHJpbmtfYnVmZmVyX3NpemUu
aHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvdzNjL3dlYnBlcmYvc3VibWlzc2lvbi9yZXNv
dXJjZS10aW1pbmcvaHRtbC90ZXN0X3Jlc291cmNlX3RpbWluZ19idWZmZXJfZnVsbF93aGVuX3No
cmlua19idWZmZXJfc2l6ZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmQyMThhZDhkY2M5MjRmMzlmMTBmNThh
NTY2Nzk3OWJmMWMwMmU1NWUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rl
c3RzL3czYy93ZWJwZXJmL3N1Ym1pc3Npb24vcmVzb3VyY2UtdGltaW5nL2h0bWwvdGVzdF9yZXNv
dXJjZV90aW1pbmdfYnVmZmVyX2Z1bGxfd2hlbl9zaHJpbmtfYnVmZmVyX3NpemUuaHRtbApAQCAt
MCwwICsxLDM1IEBACis8IURPQ1RZUEUgSFRNTD4NCis8aHRtbD4NCisgICAgPGhlYWQ+DQorICAg
ICAgICA8bWV0YSBjaGFyc2V0PSJ1dGYtOCIgLz4NCisgICAgICAgIDx0aXRsZT5vbnJlc291cmNl
dGltaW5nYnVmZmVyZnVsbCBjYWxsYmFjayBvZiByZXNvdXJjZSB0aW1pbmc8L3RpdGxlPg0KKyAg
ICAgICAgPHNjcmlwdD4NCisgICAgICAgICAgICB2YXIgY291bnQgPSAwOw0KKyAgICAgICAgICAg
IGZ1bmN0aW9uIGJ1ZmZlcl9mdWxsX2NhbGxfYmFjaygpDQorICAgICAgICAgICAgew0KKyAgICAg
ICAgICAgICAgICBjb3VudCsrOw0KKyAgICAgICAgICAgIH0NCisNCisgICAgICAgICAgICBwZXJm
b3JtYW5jZS5vbndlYmtpdHJlc291cmNldGltaW5nYnVmZmVyZnVsbCA9IGJ1ZmZlcl9mdWxsX2Nh
bGxfYmFjazsNCisgICAgICAgIDwvc2NyaXB0Pg0KKyAgICAgICAgPGxpbmsgcmVsPSJhdXRob3Ii
IHRpdGxlPSJJbnRlbCIgaHJlZj0iaHR0cDovL3d3dy5pbnRlbC5jb20vIiAvPg0KKyAgICAgICAg
PGxpbmsgcmVsPSJoZWxwIiBocmVmPSJodHRwOi8vd3d3LnczLm9yZy9UUi9yZXNvdXJjZS10aW1p
bmcvI3BlcmZvcm1hbmNlcmVzb3VyY2V0aW1pbmciLz4NCisgICAgICAgIDxzY3JpcHQgc3JjPSIv
dzNjL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+DQorICAgICAgICA8c2NyaXB0
IHNyYz0iL3czYy9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0Pg0KKyAg
ICAgICAgPHNjcmlwdCBzcmM9Ii93M2Mvd2VicGVyZi9yZXNvdXJjZXMvd2VicGVyZnRlc3RoYXJu
ZXNzLmpzIj48L3NjcmlwdD4NCisgICAgICAgIDxzY3JpcHQ+DQorICAgICAgICAgICAgc2V0dXAo
eyBleHBsaWNpdF9kb25lOiB0cnVlIH0pOyAgICAgICAgICAgIA0KKyAgICAgICAgICAgIGZ1bmN0
aW9uIG9ubG9hZF90ZXN0KCkNCisgICAgICAgICAgICB7DQorICAgICAgICAgICAgICAgIHBlcmZv
cm1hbmNlLndlYmtpdFNldFJlc291cmNlVGltaW5nQnVmZmVyU2l6ZSgzKTsNCisgICAgICAgICAg
ICAgICAgcGVyZm9ybWFuY2Uud2Via2l0U2V0UmVzb3VyY2VUaW1pbmdCdWZmZXJTaXplKDIpOw0K
KyAgICAgICAgICAgICAgICB0ZXN0X2VxdWFscyhjb3VudCwgMiwgIm9ucmVzb3VyY2V0aW1pbmdi
dWZmZXJmdWxsIHNob3VsZCBiZSBpbnZva2VkIG9uY2UgdGhlIGJ1ZmZlciBpcyBzaHJ1bmsgdG8g
c2l6ZSB3aGljaCBpcyBsZXNzIHRoYW4gb3IgZXF1YWwgdG8gY3VycmVudCBlbnRyeSBudW1iZXIh
Iik7DQorICAgICAgICAgICAgICAgIGRvbmUoKTsgICAgICAgICAgICAgICAgDQorICAgICAgICAg
ICAgfQ0KKyAgICAgICAgPC9zY3JpcHQ+DQorICAgIDwvaGVhZD4NCisgICAgPGJvZHkgb25sb2Fk
PW9ubG9hZF90ZXN0KCk+DQorICAgICAgICA8aDE+RGVzY3JpcHRpb248L2gxPg0KKyAgICAgICAg
PHA+VGhpcyB0ZXN0IHZhbGlkYXRlcyB0aGUgZnVuY3Rpb25hbGl0eSBvZiBvbnJlc291cmNldGlt
aW5nYnVmZmVyZnVsbCBpbiByZXNvdXJjZSB0aW1pbmcuPC9wPg0KKyAgICA8L2JvZHk+DQorPC9o
dG1sPg0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvdzNjL3dlYnBlcmYvc3Vi
bWlzc2lvbi9yZXNvdXJjZS10aW1pbmcvaHRtbC90ZXN0X3Jlc291cmNlX3RpbWluZ19idWZmZXJf
c2l6ZV9yZXN0cmljdGlvbi1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3cz
Yy93ZWJwZXJmL3N1Ym1pc3Npb24vcmVzb3VyY2UtdGltaW5nL2h0bWwvdGVzdF9yZXNvdXJjZV90
aW1pbmdfYnVmZmVyX3NpemVfcmVzdHJpY3Rpb24tZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUg
MTAwNzU1CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmRh
ODQ0OTE3N2FmMjc4Zjc2YWI2NTQ2OGQ2Yzc2OGU0MjI4NmM0OTIKLS0tIC9kZXYvbnVsbAorKysg
Yi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3czYy93ZWJwZXJmL3N1Ym1pc3Npb24vcmVzb3VyY2Ut
dGltaW5nL2h0bWwvdGVzdF9yZXNvdXJjZV90aW1pbmdfYnVmZmVyX3NpemVfcmVzdHJpY3Rpb24t
ZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNyBAQAorRGVzY3JpcHRpb24NCisNCitUaGlzIHRlc3Qg
dmFsaWRhdGVzIHRoZSBmdW5jdGlvbmFsaXR5IG9mIHNldFJlc291cmNlVGltaW5nQnVmZmVyU2l6
ZSBtZXRob2QgaW4gcmVzb3VyY2UgdGltaW5nLg0KKw0KKw0KK1BBU1MgMiByZXNvdXJjZSB0aW1p
bmcgZW50cmllcyBzaG91bGQgYmUgc3RvcmVkIHNpbmNlIGJ1ZmZlciBzaXplIGlzIDIhIA0KKw0K
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvdzNjL3dlYnBlcmYvc3VibWlzc2lv
bi9yZXNvdXJjZS10aW1pbmcvaHRtbC90ZXN0X3Jlc291cmNlX3RpbWluZ19idWZmZXJfc2l6ZV9y
ZXN0cmljdGlvbi5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93M2Mvd2VicGVyZi9zdWJt
aXNzaW9uL3Jlc291cmNlLXRpbWluZy9odG1sL3Rlc3RfcmVzb3VyY2VfdGltaW5nX2J1ZmZlcl9z
aXplX3Jlc3RyaWN0aW9uLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMzI2M2M5ZmE5ZTFkYzQ2MjJhMmI3ZmYw
ZTA3YTg0M2ExYjFiM2JjYQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVz
dHMvdzNjL3dlYnBlcmYvc3VibWlzc2lvbi9yZXNvdXJjZS10aW1pbmcvaHRtbC90ZXN0X3Jlc291
cmNlX3RpbWluZ19idWZmZXJfc2l6ZV9yZXN0cmljdGlvbi5odG1sCkBAIC0wLDAgKzEsMjggQEAK
KzwhRE9DVFlQRSBIVE1MPg0KKzxodG1sPg0KKyAgICA8aGVhZD4NCisgICAgICAgIDxtZXRhIGNo
YXJzZXQ9InV0Zi04IiAvPg0KKyAgICAgICAgPHRpdGxlPmJ1ZmZlciBzaXplIHJlc3RyaWN0aW9u
IGZ1bmN0aW9uYWxpdHkgb2YgcmVzb3VyY2UgdGltaW5nPC90aXRsZT4NCisgICAgICAgIDxzY3Jp
cHQ+DQorICAgICAgICAgICAgdmFyIGJ1ZmZlcl9zaXplID0gMjsNCisgICAgICAgICAgICBwZXJm
b3JtYW5jZS53ZWJraXRTZXRSZXNvdXJjZVRpbWluZ0J1ZmZlclNpemUoYnVmZmVyX3NpemUpOw0K
KyAgICAgICAgPC9zY3JpcHQ+DQorICAgICAgICA8bGluayByZWw9ImF1dGhvciIgdGl0bGU9Iklu
dGVsIiBocmVmPSJodHRwOi8vd3d3LmludGVsLmNvbS8iIC8+DQorICAgICAgICA8bGluayByZWw9
ImhlbHAiIGhyZWY9Imh0dHA6Ly93d3cudzMub3JnL1RSL3Jlc291cmNlLXRpbWluZy8jcGVyZm9y
bWFuY2VyZXNvdXJjZXRpbWluZyIvPg0KKyAgICAgICAgPHNjcmlwdCBzcmM9Ii93M2MvcmVzb3Vy
Y2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4NCisgICAgICAgIDxzY3JpcHQgc3JjPSIvdzNj
L3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+DQorICAgICAgICA8c2Ny
aXB0IHNyYz0iL3czYy93ZWJwZXJmL3Jlc291cmNlcy93ZWJwZXJmdGVzdGhhcm5lc3MuanMiPjwv
c2NyaXB0Pg0KKyAgICAgICAgPHNjcmlwdD4NCisgICAgICAgICAgICBzZXR1cCh7IGV4cGxpY2l0
X2RvbmU6IHRydWUgfSk7ICAgICAgICAgICAgDQorICAgICAgICAgICAgZnVuY3Rpb24gb25sb2Fk
X3Rlc3QoKQ0KKyAgICAgICAgICAgIHsNCisgICAgICAgICAgICAgICAgdGVzdF9lcXVhbHMocGVy
Zm9ybWFuY2Uud2Via2l0R2V0RW50cmllc0J5VHlwZSgicmVzb3VyY2UiKS5sZW5ndGgsIGJ1ZmZl
cl9zaXplLCBidWZmZXJfc2l6ZSArICIgcmVzb3VyY2UgdGltaW5nIGVudHJpZXMgc2hvdWxkIGJl
IHN0b3JlZCBzaW5jZSBidWZmZXIgc2l6ZSBpcyAiICsgYnVmZmVyX3NpemUgKyAiISIpOw0KKyAg
ICAgICAgICAgICAgICBkb25lKCk7ICAgICAgICAgICAgICAgIA0KKyAgICAgICAgICAgIH0NCisg
ICAgICAgIDwvc2NyaXB0Pg0KKyAgICA8L2hlYWQ+DQorICAgIDxib2R5IG9ubG9hZD1vbmxvYWRf
dGVzdCgpPg0KKyAgICAgICAgPGgxPkRlc2NyaXB0aW9uPC9oMT4NCisgICAgICAgIDxwPlRoaXMg
dGVzdCB2YWxpZGF0ZXMgdGhlIGZ1bmN0aW9uYWxpdHkgb2Ygc2V0UmVzb3VyY2VUaW1pbmdCdWZm
ZXJTaXplIG1ldGhvZCBpbiByZXNvdXJjZSB0aW1pbmcuPC9wPg0KKyAgICA8L2JvZHk+DQorPC9o
dG1sPg0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvdzNjL3dlYnBlcmYvc3Vi
bWlzc2lvbi9yZXNvdXJjZS10aW1pbmcvaHRtbC90ZXN0X3Jlc291cmNlX3RpbWluZ19jbGVhcl9y
ZXNvdXJjZV90aW1pbmdfZnVuY3Rpb25hbGl0eS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9o
dHRwL3Rlc3RzL3czYy93ZWJwZXJmL3N1Ym1pc3Npb24vcmVzb3VyY2UtdGltaW5nL2h0bWwvdGVz
dF9yZXNvdXJjZV90aW1pbmdfY2xlYXJfcmVzb3VyY2VfdGltaW5nX2Z1bmN0aW9uYWxpdHktZXhw
ZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLjg1ZDNlZDAzYmM4Y2IyNmY1OTQxNDE0ZDRhYmMwY2U5NTQz
ZmNhMzgKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3czYy93ZWJw
ZXJmL3N1Ym1pc3Npb24vcmVzb3VyY2UtdGltaW5nL2h0bWwvdGVzdF9yZXNvdXJjZV90aW1pbmdf
Y2xlYXJfcmVzb3VyY2VfdGltaW5nX2Z1bmN0aW9uYWxpdHktZXhwZWN0ZWQudHh0CkBAIC0wLDAg
KzEsOCBAQAorRGVzY3JpcHRpb24NCisNCitUaGlzIHRlc3QgdmFsaWRhdGVzIHRoZSBmdW5jdGlv
bmFsaXR5IG9mIGNsZWFyUmVzb3VyY2VUaW1pbmdzIG1ldGhvZCBpbiByZXNvdXJjZSB0aW1pbmcu
DQorDQorDQorUEFTUyAzIHJlc291cmNlIHRpbWluZyBlbnRyaWVzIHNob3VsZCBiZSBzdG9yZWQg
aW4gdGhpcyBwYWdlISANCitQQVNTIE5vIHJlc291cmNlIHRpbWluZyBlbnRyaWVzIHNob3VsZCBi
ZSBzdG9yZWQgYWZ0ZXIgY2xlYXJSZXNvdXJjZVRpbWluZ3MhIA0KKw0KZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2h0dHAvdGVzdHMvdzNjL3dlYnBlcmYvc3VibWlzc2lvbi9yZXNvdXJjZS10aW1p
bmcvaHRtbC90ZXN0X3Jlc291cmNlX3RpbWluZ19jbGVhcl9yZXNvdXJjZV90aW1pbmdfZnVuY3Rp
b25hbGl0eS5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93M2Mvd2VicGVyZi9zdWJtaXNz
aW9uL3Jlc291cmNlLXRpbWluZy9odG1sL3Rlc3RfcmVzb3VyY2VfdGltaW5nX2NsZWFyX3Jlc291
cmNlX3RpbWluZ19mdW5jdGlvbmFsaXR5Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOTNjMmNlNmE5ZjRlZWM2
Y2E5YTUzMGNlNmY3MjUzMGZlMTk4OTEyMgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3Rz
L2h0dHAvdGVzdHMvdzNjL3dlYnBlcmYvc3VibWlzc2lvbi9yZXNvdXJjZS10aW1pbmcvaHRtbC90
ZXN0X3Jlc291cmNlX3RpbWluZ19jbGVhcl9yZXNvdXJjZV90aW1pbmdfZnVuY3Rpb25hbGl0eS5o
dG1sCkBAIC0wLDAgKzEsMjYgQEAKKzwhRE9DVFlQRSBIVE1MPg0KKzxodG1sPg0KKyAgICA8aGVh
ZD4NCisgICAgICAgIDxtZXRhIGNoYXJzZXQ9InV0Zi04IiAvPg0KKyAgICAgICAgPHRpdGxlPmNs
ZWFyUmVzb3VyY2VUaW1pbmdzIGZ1bmN0aW9uYWxpdHkgb2YgcmVzb3VyY2UgdGltaW5nPC90aXRs
ZT4NCisgICAgICAgIDxsaW5rIHJlbD0iYXV0aG9yIiB0aXRsZT0iSW50ZWwiIGhyZWY9Imh0dHA6
Ly93d3cuaW50ZWwuY29tLyIgLz4NCisgICAgICAgIDxsaW5rIHJlbD0iaGVscCIgaHJlZj0iaHR0
cDovL3d3dy53My5vcmcvVFIvcmVzb3VyY2UtdGltaW5nLyNwZXJmb3JtYW5jZXJlc291cmNldGlt
aW5nIi8+DQorICAgICAgICA8c2NyaXB0IHNyYz0iL3czYy9yZXNvdXJjZXMvdGVzdGhhcm5lc3Mu
anMiPjwvc2NyaXB0Pg0KKyAgICAgICAgPHNjcmlwdCBzcmM9Ii93M2MvcmVzb3VyY2VzL3Rlc3Ro
YXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4NCisgICAgICAgIDxzY3JpcHQgc3JjPSIvdzNjL3dl
YnBlcmYvcmVzb3VyY2VzL3dlYnBlcmZ0ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+DQorICAgICAg
ICA8c2NyaXB0Pg0KKyAgICAgICAgICAgIHNldHVwKHsgZXhwbGljaXRfZG9uZTogdHJ1ZSB9KTsN
CisgICAgICAgICAgICBmdW5jdGlvbiBvbmxvYWRfdGVzdCgpDQorICAgICAgICAgICAgew0KKyAg
ICAgICAgICAgICAgICB0ZXN0X2VxdWFscyhwZXJmb3JtYW5jZS53ZWJraXRHZXRFbnRyaWVzQnlU
eXBlKCJyZXNvdXJjZSIpLmxlbmd0aCwgMywgMyArICIgcmVzb3VyY2UgdGltaW5nIGVudHJpZXMg
c2hvdWxkIGJlIHN0b3JlZCBpbiB0aGlzIHBhZ2UhIik7DQorICAgICAgICAgICAgICAgIHBlcmZv
cm1hbmNlLndlYmtpdENsZWFyUmVzb3VyY2VUaW1pbmdzKCk7DQorICAgICAgICAgICAgICAgIHRl
c3RfZXF1YWxzKHBlcmZvcm1hbmNlLndlYmtpdEdldEVudHJpZXNCeVR5cGUoInJlc291cmNlIiku
bGVuZ3RoLCAwLCAiTm8gcmVzb3VyY2UgdGltaW5nIGVudHJpZXMgc2hvdWxkIGJlIHN0b3JlZCBh
ZnRlciBjbGVhclJlc291cmNlVGltaW5ncyEiKTsNCisgICAgICAgICAgICAgICAgZG9uZSgpOyAg
ICAgICAgICAgICAgICANCisgICAgICAgICAgICB9DQorICAgICAgICA8L3NjcmlwdD4NCisgICAg
PC9oZWFkPg0KKyAgICA8Ym9keSBvbmxvYWQ9b25sb2FkX3Rlc3QoKT4NCisgICAgICAgIDxoMT5E
ZXNjcmlwdGlvbjwvaDE+DQorICAgICAgICA8cD5UaGlzIHRlc3QgdmFsaWRhdGVzIHRoZSBmdW5j
dGlvbmFsaXR5IG9mIGNsZWFyUmVzb3VyY2VUaW1pbmdzIG1ldGhvZCBpbiByZXNvdXJjZSB0aW1p
bmcuPC9wPg0KKyAgICA8L2JvZHk+DQorPC9odG1sPg0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2h0dHAvdGVzdHMvdzNjL3dlYnBlcmYvc3VibWlzc2lvbi9yZXNvdXJjZS10aW1pbmcvaHRtbC90
ZXN0X3Jlc291cmNlX3RpbWluZ19vbl9zaHJpbmtfYnVmZmVyX3NpemUtZXhwZWN0ZWQudHh0IGIv
TGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93M2Mvd2VicGVyZi9zdWJtaXNzaW9uL3Jlc291cmNlLXRp
bWluZy9odG1sL3Rlc3RfcmVzb3VyY2VfdGltaW5nX29uX3Nocmlua19idWZmZXJfc2l6ZS1leHBl
Y3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uMzkwYzdjMTA5MzdjZDE4MWFlYjA4YmM4MTM0ODhlOTdiMjk5
ZjAwNQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvdzNjL3dlYnBl
cmYvc3VibWlzc2lvbi9yZXNvdXJjZS10aW1pbmcvaHRtbC90ZXN0X3Jlc291cmNlX3RpbWluZ19v
bl9zaHJpbmtfYnVmZmVyX3NpemUtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsOSBAQAorRGVzY3Jp
cHRpb24NCisNCitUaGlzIHRlc3QgdmFsaWRhdGVzIHRoZSBiZWhhdmlvciBvZiBzaHJpbmsgcmVz
b3VyY2UgdGltaW5nIGJ1ZmZlciBzaXplLg0KKw0KKw0KK1BBU1MgVGhlcmUgc2hvdWxkIGJlIGVu
dHJpZXMgaW4gcmVzb3VyY2UgdGltaW5nIGJ1ZmZlciEgDQorUEFTUyBSZXNvdXJjZSB0aW1pbmcg
YnVmZmVyIHNob3VsZCBuZXZlciBiZWVuIGNoYW5nZWQgZXZlbiBidWZmZXIgc2l6ZSBpcyBzaHJ1
bmshIA0KK1BBU1MgVGhlcmUgc2hvdWxkIGJlIG5vIGVudHJpZXMgaW4gcmVzb3VyY2UgdGltaW5n
IGJ1ZmZlciBhZnRlciBjbGVhclJlc291cmNlVGltaW5ncyANCisNCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9odHRwL3Rlc3RzL3czYy93ZWJwZXJmL3N1Ym1pc3Npb24vcmVzb3VyY2UtdGltaW5n
L2h0bWwvdGVzdF9yZXNvdXJjZV90aW1pbmdfb25fc2hyaW5rX2J1ZmZlcl9zaXplLmh0bWwgYi9M
YXlvdXRUZXN0cy9odHRwL3Rlc3RzL3czYy93ZWJwZXJmL3N1Ym1pc3Npb24vcmVzb3VyY2UtdGlt
aW5nL2h0bWwvdGVzdF9yZXNvdXJjZV90aW1pbmdfb25fc2hyaW5rX2J1ZmZlcl9zaXplLmh0bWwK
bmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uMDlkNWE2N2NkM2FjYWMwNzBiYjk1ZTQ3YzNmMGJhNjhjMzFkMjcwNwotLS0g
L2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvdzNjL3dlYnBlcmYvc3VibWlz
c2lvbi9yZXNvdXJjZS10aW1pbmcvaHRtbC90ZXN0X3Jlc291cmNlX3RpbWluZ19vbl9zaHJpbmtf
YnVmZmVyX3NpemUuaHRtbApAQCAtMCwwICsxLDMyIEBACis8IURPQ1RZUEUgSFRNTD4NCis8aHRt
bD4NCisgICAgPGhlYWQ+DQorICAgICAgICA8bWV0YSBjaGFyc2V0PSJ1dGYtOCIgLz4NCisgICAg
ICAgIDx0aXRsZT5zaHJpbmsgcmVzb3VyY2UgdGltaW5nIGJ1ZmZlciBzaXplPC90aXRsZT4NCisg
ICAgICAgIDxsaW5rIHJlbD0iYXV0aG9yIiB0aXRsZT0iSW50ZWwiIGhyZWY9Imh0dHA6Ly93d3cu
aW50ZWwuY29tLyIgLz4NCisgICAgICAgIDxsaW5rIHJlbD0iaGVscCIgaHJlZj0iaHR0cDovL3d3
dy53My5vcmcvVFIvcmVzb3VyY2UtdGltaW5nLyNwZXJmb3JtYW5jZXJlc291cmNldGltaW5nIi8+
DQorICAgICAgICA8c2NyaXB0IHNyYz0iL3czYy9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwv
c2NyaXB0Pg0KKyAgICAgICAgPHNjcmlwdCBzcmM9Ii93M2MvcmVzb3VyY2VzL3Rlc3RoYXJuZXNz
cmVwb3J0LmpzIj48L3NjcmlwdD4NCisgICAgICAgIDxzY3JpcHQgc3JjPSIvdzNjL3dlYnBlcmYv
cmVzb3VyY2VzL3dlYnBlcmZ0ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+DQorICAgICAgICA8c2Ny
aXB0Pg0KKyAgICAgICAgICAgIHNldHVwKHsgZXhwbGljaXRfZG9uZTogdHJ1ZSB9KTsNCisgICAg
ICAgICAgICBmdW5jdGlvbiBvbmxvYWRfdGVzdCgpDQorICAgICAgICAgICAgew0KKyAgICAgICAg
ICAgICAgICB2YXIgZW50cnlfbGlzdF9iZWZvcmVfc2hyaW5rID0gcGVyZm9ybWFuY2Uud2Via2l0
R2V0RW50cmllc0J5VHlwZSgncmVzb3VyY2UnKTsNCisgICAgICAgICAgICAgICAgcGVyZm9ybWFu
Y2Uud2Via2l0U2V0UmVzb3VyY2VUaW1pbmdCdWZmZXJTaXplKDApOw0KKyAgICAgICAgICAgICAg
ICB2YXIgZW50cnlfbGlzdF9hZnRlcl9zaHJpbmsgPSBwZXJmb3JtYW5jZS53ZWJraXRHZXRFbnRy
aWVzQnlUeXBlKCdyZXNvdXJjZScpOw0KKyAgICAgICAgICAgICAgICANCisgICAgICAgICAgICAg
ICAgdGVzdF9ncmVhdGVyX3RoYW4oZW50cnlfbGlzdF9iZWZvcmVfc2hyaW5rLmxlbmd0aCwgMCwg
IlRoZXJlIHNob3VsZCBiZSBlbnRyaWVzIGluIHJlc291cmNlIHRpbWluZyBidWZmZXIhIik7DQor
ICAgICAgICAgICAgICAgIHRlc3RfZXF1YWxzKEpTT04uc3RyaW5naWZ5KGVudHJ5X2xpc3RfYmVm
b3JlX3NocmluayksIEpTT04uc3RyaW5naWZ5KGVudHJ5X2xpc3RfYWZ0ZXJfc2hyaW5rKSwgIlJl
c291cmNlIHRpbWluZyBidWZmZXIgc2hvdWxkIG5ldmVyIGJlZW4gY2hhbmdlZCBldmVuIGJ1ZmZl
ciBzaXplIGlzIHNocnVuayEiKTsNCisgICAgICAgICAgICAgICAgDQorICAgICAgICAgICAgICAg
IHBlcmZvcm1hbmNlLndlYmtpdENsZWFyUmVzb3VyY2VUaW1pbmdzKCk7DQorICAgICAgICAgICAg
ICAgIHRlc3RfZXF1YWxzKHBlcmZvcm1hbmNlLndlYmtpdEdldEVudHJpZXNCeVR5cGUoJ3Jlc291
cmNlJykubGVuZ3RoLCAwLCAiVGhlcmUgc2hvdWxkIGJlIG5vIGVudHJpZXMgaW4gcmVzb3VyY2Ug
dGltaW5nIGJ1ZmZlciBhZnRlciBjbGVhclJlc291cmNlVGltaW5ncyIpOw0KKyAgICAgICAgICAg
ICAgICBkb25lKCk7DQorICAgICAgICAgICAgfQ0KKyAgICAgICAgPC9zY3JpcHQ+DQorICAgIDwv
aGVhZD4NCisgICAgPGJvZHkgb25sb2FkPW9ubG9hZF90ZXN0KCk+DQorICAgICAgICA8aDE+RGVz
Y3JpcHRpb248L2gxPg0KKyAgICAgICAgPHA+VGhpcyB0ZXN0IHZhbGlkYXRlcyB0aGUgYmVoYXZp
b3Igb2Ygc2hyaW5rIHJlc291cmNlIHRpbWluZyBidWZmZXIgc2l6ZS48L3A+DQorICAgIDwvYm9k
eT4NCis8L2h0bWw+DQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93M2Mvd2Vi
cGVyZi9zdWJtaXNzaW9uL3Jlc291cmNlLXRpbWluZy9odG1sL3Rlc3RfcmVzb3VyY2VfdGltaW5n
X3N0b3JlX2FuZF9jbGVhcl9kdXJpbmdfY2FsbGJhY2stZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVz
dHMvaHR0cC90ZXN0cy93M2Mvd2VicGVyZi9zdWJtaXNzaW9uL3Jlc291cmNlLXRpbWluZy9odG1s
L3Rlc3RfcmVzb3VyY2VfdGltaW5nX3N0b3JlX2FuZF9jbGVhcl9kdXJpbmdfY2FsbGJhY2stZXhw
ZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLjEyMDMyNTk0Mzk3ODViNjRhM2IzM2I4NTA4NWVmYTNkODZl
ZjM2ODEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3czYy93ZWJw
ZXJmL3N1Ym1pc3Npb24vcmVzb3VyY2UtdGltaW5nL2h0bWwvdGVzdF9yZXNvdXJjZV90aW1pbmdf
c3RvcmVfYW5kX2NsZWFyX2R1cmluZ19jYWxsYmFjay1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw4
IEBACitEZXNjcmlwdGlvbg0KKw0KK1RoaXMgdGVzdCB2YWxpZGF0ZXMgdGhlIGJlaGF2aW9yIG9m
IHJlYWQgYW5kIGNsZWFyIG9wZXJhdGlvbiBpbiBvbnJlc291cmNldGltaW5nYnVmZmVyZnVsbCBj
YWxsYmFjayBvZiByZXNvdXJjZSB0aW1pbmcuDQorDQorDQorUEFTUyBObyBlbnRyeSBzaG91bGQg
YmUgc3RvcmVkIGluIHJlc291cmNlIHRpbWluZyBidWZmZXIgc2luY2UgaXQncyBjbGVhcmVkIG9u
Y2UgYW4gaXRlbSBhcnJpdmVkISANCitQQVNTIDMgcmVzb3VyY2UgdGltaW5nIGVudHJpZXMgc2hv
dWxkIGJlIG1vdmVkIHRvIGdsb2JhbCBidWZmZXIhIA0KKw0KZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2h0dHAvdGVzdHMvdzNjL3dlYnBlcmYvc3VibWlzc2lvbi9yZXNvdXJjZS10aW1pbmcvaHRt
bC90ZXN0X3Jlc291cmNlX3RpbWluZ19zdG9yZV9hbmRfY2xlYXJfZHVyaW5nX2NhbGxiYWNrLmh0
bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3czYy93ZWJwZXJmL3N1Ym1pc3Npb24vcmVzb3Vy
Y2UtdGltaW5nL2h0bWwvdGVzdF9yZXNvdXJjZV90aW1pbmdfc3RvcmVfYW5kX2NsZWFyX2R1cmlu
Z19jYWxsYmFjay5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmVlMjhjY2VjYjBhMDJhNmQ0ZWM4Yzg4NGU0Njdl
Y2NlNzI3NDVkMGUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3cz
Yy93ZWJwZXJmL3N1Ym1pc3Npb24vcmVzb3VyY2UtdGltaW5nL2h0bWwvdGVzdF9yZXNvdXJjZV90
aW1pbmdfc3RvcmVfYW5kX2NsZWFyX2R1cmluZ19jYWxsYmFjay5odG1sCkBAIC0wLDAgKzEsMzgg
QEAKKzwhRE9DVFlQRSBIVE1MPg0KKzxodG1sPg0KKyAgICA8aGVhZD4NCisgICAgICAgIDxtZXRh
IGNoYXJzZXQ9InV0Zi04IiAvPg0KKyAgICAgICAgPHRpdGxlPnJlYWQgYW5kIGNsZWFyIHJlc291
cmNlIHRpbWluZyBlbnRyeSBpbiBvbnJlc291cmNldGltaW5nYnVmZmVyZnVsbCBjYWxsYmFjazwv
dGl0bGU+DQorICAgICAgICA8c2NyaXB0Pg0KKyAgICAgICAgICAgIHZhciByZXNvdXJjZV90aW1p
bmdfYnVmZmVyX3NpemUgPSAxOw0KKyAgICAgICAgICAgIHZhciBnbG9iYWxfYnVmZmVyID0gW107
DQorICAgICAgICAgICAgZnVuY3Rpb24gc3RvcmVfYW5kX2NsZWFyKCkNCisgICAgICAgICAgICB7
DQorICAgICAgICAgICAgICAgIHZhciBlbnRyeV9saXN0ID0gcGVyZm9ybWFuY2Uud2Via2l0R2V0
RW50cmllc0J5VHlwZSgncmVzb3VyY2UnKTsNCisgICAgICAgICAgICAgICAgZm9yICh2YXIgaSA9
IDA7IGkgPCBlbnRyeV9saXN0Lmxlbmd0aDsgKytpKQ0KKyAgICAgICAgICAgICAgICAgICAgZ2xv
YmFsX2J1ZmZlci5wdXNoKGVudHJ5X2xpc3RbaV0pOw0KKyAgICAgICAgICAgICAgICBwZXJmb3Jt
YW5jZS53ZWJraXRDbGVhclJlc291cmNlVGltaW5ncygpOyAgICAgICAgICAgICAgICANCisgICAg
ICAgICAgICB9DQorICAgICAgICAgICAgcGVyZm9ybWFuY2Uub253ZWJraXRyZXNvdXJjZXRpbWlu
Z2J1ZmZlcmZ1bGwgPSBzdG9yZV9hbmRfY2xlYXI7DQorICAgICAgICAgICAgcGVyZm9ybWFuY2Uu
d2Via2l0U2V0UmVzb3VyY2VUaW1pbmdCdWZmZXJTaXplKHJlc291cmNlX3RpbWluZ19idWZmZXJf
c2l6ZSk7DQorICAgICAgICA8L3NjcmlwdD4NCisgICAgICAgIDxsaW5rIHJlbD0iYXV0aG9yIiB0
aXRsZT0iSW50ZWwiIGhyZWY9Imh0dHA6Ly93d3cuaW50ZWwuY29tLyIgLz4NCisgICAgICAgIDxs
aW5rIHJlbD0iaGVscCIgaHJlZj0iaHR0cDovL3d3dy53My5vcmcvVFIvcmVzb3VyY2UtdGltaW5n
LyNwZXJmb3JtYW5jZXJlc291cmNldGltaW5nIi8+DQorICAgICAgICA8c2NyaXB0IHNyYz0iL3cz
Yy9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0Pg0KKyAgICAgICAgPHNjcmlwdCBz
cmM9Ii93M2MvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4NCisgICAg
ICAgIDxzY3JpcHQgc3JjPSIvdzNjL3dlYnBlcmYvcmVzb3VyY2VzL3dlYnBlcmZ0ZXN0aGFybmVz
cy5qcyI+PC9zY3JpcHQ+DQorICAgICAgICA8c2NyaXB0Pg0KKyAgICAgICAgICAgIHNldHVwKHsg
ZXhwbGljaXRfZG9uZTogdHJ1ZSB9KTsgICAgICAgICAgICAgICAgDQorICAgICAgICAgICAgZnVu
Y3Rpb24gb25sb2FkX3Rlc3QoKQ0KKyAgICAgICAgICAgIHsNCisgICAgICAgICAgICAgICAgdGVz
dF9lcXVhbHMocGVyZm9ybWFuY2Uud2Via2l0R2V0RW50cmllc0J5VHlwZSgncmVzb3VyY2UnKS5s
ZW5ndGgsIDAsICJObyBlbnRyeSBzaG91bGQgYmUgc3RvcmVkIGluIHJlc291cmNlIHRpbWluZyBi
dWZmZXIgc2luY2UgaXQncyBjbGVhcmVkIG9uY2UgYW4gaXRlbSBhcnJpdmVkISIpOw0KKyAgICAg
ICAgICAgICAgICB0ZXN0X2VxdWFscyhnbG9iYWxfYnVmZmVyLmxlbmd0aCwgMywgIjMgcmVzb3Vy
Y2UgdGltaW5nIGVudHJpZXMgc2hvdWxkIGJlIG1vdmVkIHRvIGdsb2JhbCBidWZmZXIhIik7DQor
ICAgICAgICAgICAgICAgIGRvbmUoKTsNCisgICAgICAgICAgICB9DQorICAgICAgICA8L3Njcmlw
dD4NCisgICAgPC9oZWFkPg0KKyAgICA8Ym9keSBvbmxvYWQ9b25sb2FkX3Rlc3QoKT4NCisgICAg
ICAgIDxoMT5EZXNjcmlwdGlvbjwvaDE+DQorICAgICAgICA8cD5UaGlzIHRlc3QgdmFsaWRhdGVz
IHRoZSBiZWhhdmlvciBvZiByZWFkIGFuZCBjbGVhciBvcGVyYXRpb24gaW4gb25yZXNvdXJjZXRp
bWluZ2J1ZmZlcmZ1bGwgY2FsbGJhY2sgb2YgcmVzb3VyY2UgdGltaW5nLjwvcD4NCisgICAgPC9i
b2R5Pg0KKzwvaHRtbD4NCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>169376</attachid>
            <date>2012-10-18 02:43:26 -0700</date>
            <delta_ts>2012-10-18 17:17:58 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-84885-20121018174742.patch</filename>
            <type>text/plain</type>
            <size>33170</size>
            <attacher name="pdeng6">pan.deng</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTMxNzE4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZTk1NGU3MGE0ZTQ2ODVh
MjJkMDQ0MDViZWFlYzgxZTkzMjg0MmQwNy4uMGQzNTM1NjVhNjY5MTYzNjk4MDRlMmQ1NzBlMGIz
OWYzOTgxMjgzNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI5IEBACisyMDEyLTEwLTE4ICBQYW4g
RGVuZyAgPHBhbi5kZW5nQGludGVsLmNvbT4KKworICAgICAgICBbUmVzb3VyY2UgVGltaW5nXUlt
cGxlbWVudGF0aW9uIG9mIHJlc291cmNlIHRpbWluZyBidWZmZXIgc2l6ZSByZXN0cmljdGlvbiBm
dW5jdGlvbmFsaXR5CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD04NDg4NS4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICBodHRwOi8vd3d3LnczLm9yZy9UUi8yMDEyL0NSLXJlc291cmNlLXRpbWluZy0yMDEyMDUy
Mi8KKyAgICAgICAgVGhpcyBwYXRjaCBlbmFibGUgZnVuY3Rpb25hbGl0eSBvZiBzZXQgYnVmZmVy
IHNpemUoZGVmYXVsdCBpcyAxNTAgYXMgc3BlYykuIFdoZW4gYnVmZmVyIGlzIGZ1bGwsIHJlc291
cmNlVGltaW5nQnVmZmVyRnVsbCBldmVudCB3aWxsIGJlIGZpcmVkLiBJbmNvbWluZyBlbnRyaWVz
IHdpbGwgYmUgZHJvcHBlZCBpZiBubyBtb3JlIHNwYWNlIGZvciB0aGVtLiAKKworICAgICAgICBU
ZXN0czogaHR0cC90ZXN0cy93M2Mvd2VicGVyZi9zdWJtaXNzaW9uL0ludGVsL3Jlc291cmNlLXRp
bWluZy90ZXN0X3Jlc291cmNlX3RpbWluZ19idWZmZXJfZnVsbF93aGVuX3BvcHVsYXRlX2VudHJp
ZXMuaHRtbAorICAgICAgICAgICAgICAgaHR0cC90ZXN0cy93M2Mvd2VicGVyZi9zdWJtaXNzaW9u
L0ludGVsL3Jlc291cmNlLXRpbWluZy90ZXN0X3Jlc291cmNlX3RpbWluZ19idWZmZXJfZnVsbF93
aGVuX3Nocmlua19idWZmZXJfc2l6ZS5odG1sCisgICAgICAgICAgICAgICBodHRwL3Rlc3RzL3cz
Yy93ZWJwZXJmL3N1Ym1pc3Npb24vSW50ZWwvcmVzb3VyY2UtdGltaW5nL3Rlc3RfcmVzb3VyY2Vf
dGltaW5nX2J1ZmZlcl9zaXplX3Jlc3RyaWN0aW9uLmh0bWwKKyAgICAgICAgICAgICAgIGh0dHAv
dGVzdHMvdzNjL3dlYnBlcmYvc3VibWlzc2lvbi9JbnRlbC9yZXNvdXJjZS10aW1pbmcvdGVzdF9y
ZXNvdXJjZV90aW1pbmdfY2xlYXJfcmVzb3VyY2VfdGltaW5nX2Z1bmN0aW9uYWxpdHkuaHRtbAor
ICAgICAgICAgICAgICAgaHR0cC90ZXN0cy93M2Mvd2VicGVyZi9zdWJtaXNzaW9uL0ludGVsL3Jl
c291cmNlLXRpbWluZy90ZXN0X3Jlc291cmNlX3RpbWluZ19vbl9zaHJpbmtfYnVmZmVyX3NpemUu
aHRtbAorICAgICAgICAgICAgICAgaHR0cC90ZXN0cy93M2Mvd2VicGVyZi9zdWJtaXNzaW9uL0lu
dGVsL3Jlc291cmNlLXRpbWluZy90ZXN0X3Jlc291cmNlX3RpbWluZ19zdG9yZV9hbmRfY2xlYXJf
ZHVyaW5nX2NhbGxiYWNrLmh0bWwKKworICAgICAgICAqIHBhZ2UvUGVyZm9ybWFuY2UuY3BwOgor
ICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChXZWJDb3JlOjpQZXJmb3JtYW5jZTo6UGVyZm9y
bWFuY2UpOgorICAgICAgICAoV2ViQ29yZTo6UGVyZm9ybWFuY2U6OndlYmtpdFNldFJlc291cmNl
VGltaW5nQnVmZmVyU2l6ZSk6CisgICAgICAgIChXZWJDb3JlOjpQZXJmb3JtYW5jZTo6YWRkUmVz
b3VyY2VUaW1pbmcpOgorICAgICAgICAoV2ViQ29yZTo6UGVyZm9ybWFuY2U6OmlzUmVzb3VyY2VU
aW1pbmdCdWZmZXJGdWxsKToKKyAgICAgICAgKiBwYWdlL1BlcmZvcm1hbmNlLmg6CisgICAgICAg
IChQZXJmb3JtYW5jZSk6CisKIDIwMTItMTAtMTggIEtlbnQgVGFtdXJhICA8dGtlbnRAY2hyb21p
dW0ub3JnPgogCiAgICAgICAgIFNldCBtaW4td2lkdGggcHJvcGVydHkgaW5zdGVhZCBvZiB3aWR0
aCBwcm9wZXJ0eSBmb3IgZGF0ZS90aW1lIGZpZWxkcwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGFnZS9QZXJmb3JtYW5jZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BlcmZvcm1hbmNl
LmNwcAppbmRleCAxNDkxNzVjYTYyOWZiMTA3ODMzZTc3ZGU1MDg1Y2NkNDA2NDQ3MDI3Li5mMjlj
MzkwMGUzYTE2YzIyNjZiNWI3YWFjNmZhNDQyZGNmMzk5ZWFkIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL1BlcmZvcm1hbmNlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1Bl
cmZvcm1hbmNlLmNwcApAQCAtNDksOCArNDksMTUgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewog
CisjaWYgRU5BQkxFKFJFU09VUkNFX1RJTUlORykKK3N0YXRpYyBjb25zdCBzaXplX3QgZGVmYXVs
dFJlc291cmNlVGltaW5nQnVmZmVyU2l6ZSA9IDE1MDsKKyNlbmRpZgorCiBQZXJmb3JtYW5jZTo6
UGVyZm9ybWFuY2UoRnJhbWUqIGZyYW1lKQogICAgIDogRE9NV2luZG93UHJvcGVydHkoZnJhbWUp
CisjaWYgRU5BQkxFKFJFU09VUkNFX1RJTUlORykKKyAgICAsIG1fcmVzb3VyY2VUaW1pbmdCdWZm
ZXJTaXplKGRlZmF1bHRSZXNvdXJjZVRpbWluZ0J1ZmZlclNpemUpCisjZW5kaWYKIHsKIH0KIApA
QCAtMTQzLDkgKzE1MCwxMSBAQCB2b2lkIFBlcmZvcm1hbmNlOjp3ZWJraXRDbGVhclJlc291cmNl
VGltaW5ncygpCiAgICAgbV9yZXNvdXJjZVRpbWluZ0J1ZmZlci5jbGVhcigpOwogfQogCi12b2lk
IFBlcmZvcm1hbmNlOjp3ZWJraXRTZXRSZXNvdXJjZVRpbWluZ0J1ZmZlclNpemUodW5zaWduZWQg
aW50KQordm9pZCBQZXJmb3JtYW5jZTo6d2Via2l0U2V0UmVzb3VyY2VUaW1pbmdCdWZmZXJTaXpl
KHVuc2lnbmVkIHNpemUpCiB7Ci0gICAgLy8gRklYTUU6IEltcGxlbWVudCB0aGlzLgorICAgIG1f
cmVzb3VyY2VUaW1pbmdCdWZmZXJTaXplID0gc2l6ZTsKKyAgICBpZiAoaXNSZXNvdXJjZVRpbWlu
Z0J1ZmZlckZ1bGwoKSkKKyAgICAgICAgZGlzcGF0Y2hFdmVudChFdmVudDo6Y3JlYXRlKGV2ZW50
TmFtZXMoKS53ZWJraXRyZXNvdXJjZXRpbWluZ2J1ZmZlcmZ1bGxFdmVudCwgZmFsc2UsIGZhbHNl
KSk7CiB9CiAKIHZvaWQgUGVyZm9ybWFuY2U6OmFkZFJlc291cmNlVGltaW5nKGNvbnN0IFJlc291
cmNlUmVxdWVzdCYgcmVxdWVzdCwgY29uc3QgUmVzb3VyY2VSZXNwb25zZSYgcmVzcG9uc2UsIGRv
dWJsZSBmaW5pc2hUaW1lLCBEb2N1bWVudCogcmVxdWVzdGluZ0RvY3VtZW50KQpAQCAtMTU0LDgg
KzE2MywxOSBAQCB2b2lkIFBlcmZvcm1hbmNlOjphZGRSZXNvdXJjZVRpbWluZyhjb25zdCBSZXNv
dXJjZVJlcXVlc3QmIHJlcXVlc3QsIGNvbnN0IFJlc291cgogICAgICAgICByZXR1cm47CiAKICAg
ICBSZWZQdHI8UGVyZm9ybWFuY2VFbnRyeT4gZW50cnkgPSBQZXJmb3JtYW5jZVJlc291cmNlVGlt
aW5nOjpjcmVhdGUocmVxdWVzdCwgcmVzcG9uc2UsIGZpbmlzaFRpbWUsIHJlcXVlc3RpbmdEb2N1
bWVudCk7Ci0gICAgLy8gRklYTUU6IE5lZWQgdG8gZW5mb3JjZSBidWZmZXIgbGltaXRzLgorCisg
ICAgaWYgKGlzUmVzb3VyY2VUaW1pbmdCdWZmZXJGdWxsKCkpCisgICAgICAgIHJldHVybjsKKwog
ICAgIG1fcmVzb3VyY2VUaW1pbmdCdWZmZXIuYXBwZW5kKGVudHJ5KTsKKworICAgIGlmIChpc1Jl
c291cmNlVGltaW5nQnVmZmVyRnVsbCgpKQorICAgICAgICBkaXNwYXRjaEV2ZW50KEV2ZW50Ojpj
cmVhdGUoZXZlbnROYW1lcygpLndlYmtpdHJlc291cmNldGltaW5nYnVmZmVyZnVsbEV2ZW50LCBm
YWxzZSwgZmFsc2UpKTsKK30KKworYm9vbCBQZXJmb3JtYW5jZTo6aXNSZXNvdXJjZVRpbWluZ0J1
ZmZlckZ1bGwoKQoreworICAgIHJldHVybiBtX3Jlc291cmNlVGltaW5nQnVmZmVyLnNpemUoKSA+
PSBtX3Jlc291cmNlVGltaW5nQnVmZmVyU2l6ZTsKIH0KIAogI2VuZGlmIC8vIEVOQUJMRShSRVNP
VVJDRV9USU1JTkcpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BlcmZvcm1hbmNl
LmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BlcmZvcm1hbmNlLmgKaW5kZXggZmUwOWQ5MDJjYzc5
YjJmM2M0NWQ1ODUwNDI1MzM0ZTg5NjI3ZWY3ZC4uOGQ5NDlmMjRjNDM2MTM1NTFlYWY4MDBkN2Ix
YzdlOGExNmQ2YTNlYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9QZXJmb3JtYW5j
ZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGVyZm9ybWFuY2UuaApAQCAtMTAwLDYgKzEw
MCw3IEBAIHByaXZhdGU6CiAgICAgdmlydHVhbCB2b2lkIGRlcmVmRXZlbnRUYXJnZXQoKSB7IGRl
cmVmKCk7IH0KICAgICB2aXJ0dWFsIEV2ZW50VGFyZ2V0RGF0YSogZXZlbnRUYXJnZXREYXRhKCk7
CiAgICAgdmlydHVhbCBFdmVudFRhcmdldERhdGEqIGVuc3VyZUV2ZW50VGFyZ2V0RGF0YSgpOwor
ICAgIGJvb2wgaXNSZXNvdXJjZVRpbWluZ0J1ZmZlckZ1bGwoKTsKIAogICAgIEV2ZW50VGFyZ2V0
RGF0YSBtX2V2ZW50VGFyZ2V0RGF0YTsKIApAQCAtMTA4LDYgKzEwOSw3IEBAIHByaXZhdGU6CiAK
ICNpZiBFTkFCTEUoUkVTT1VSQ0VfVElNSU5HKQogICAgIFZlY3RvcjxSZWZQdHI8UGVyZm9ybWFu
Y2VFbnRyeT4gPiBtX3Jlc291cmNlVGltaW5nQnVmZmVyOworICAgIHVuc2lnbmVkIG1fcmVzb3Vy
Y2VUaW1pbmdCdWZmZXJTaXplOwogI2VuZGlmCiAKICNpZiBFTkFCTEUoVVNFUl9USU1JTkcpCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cK
aW5kZXggNWUzNDRkYmZmZGM5ODYzN2Y4ODRlNWFhYjcxYzJlOWFjZjE2YWY5ZC4uMTQ5YWRmNTE3
YzgzNGQzZDU4Y2E4NTU5YmM1YWJhYTZhOTI1ZjI3NiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM3IEBACisy
MDEyLTEwLTE4ICBQYW4gRGVuZyAgPHBhbi5kZW5nQGludGVsLmNvbT4KKworICAgICAgICBbUmVz
b3VyY2UgVGltaW5nXVRlc3QgY2FzZXMgZm9yIHNldCBidWZmZXIgc2l6ZSBmdW5jdGlvbmFsaXR5
IGFuZCBldmVudCB3aGVuIGJ1ZmZlciBmdWxsLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODQ4ODUuCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgVGVzdCBjYXNlcyBpbiB0aGlzIHBhdGNoIHZhbGlkYXRlIGJ1
ZmZlciBzaXplIHJlc3RyaWN0aW9uIGZ1bmN0aW9uYWxpdHksIGNsZWFyIHJlc291cmNlIHRpbWlu
ZyBmdW5jdGlvbmFsaXR5IGFuZCB0aGUgZmlyZWQgZXZlbnQgd2hlbiBidWZmZXIgZnVsbC4gCisK
KyAgICAgICAgKiBodHRwL3Rlc3RzL3czYy93ZWJwZXJmL3Jlc291cmNlcy93ZWJwZXJmdGVzdGhh
cm5lc3NleHRlbnNpb24uanM6CisgICAgICAgIChQZXJmb3JtYW5jZUNvbnRleHQucHJvdG90eXBl
LmdldEVudHJpZXNCeU5hbWUpOgorICAgICAgICAoUGVyZm9ybWFuY2VDb250ZXh0LnByb3RvdHlw
ZS5zZXRSZXNvdXJjZVRpbWluZ0J1ZmZlclNpemUpOgorICAgICAgICAoUGVyZm9ybWFuY2VDb250
ZXh0LnByb3RvdHlwZS5yZWdpc3RlclJlc291cmNlVGltaW5nQnVmZmVyRnVsbENhbGxiYWNrKToK
KyAgICAgICAgKFBlcmZvcm1hbmNlQ29udGV4dC5wcm90b3R5cGUuY2xlYXJSZXNvdXJjZVRpbWlu
Z3MpOgorICAgICAgICAqIGh0dHAvdGVzdHMvdzNjL3dlYnBlcmYvc3VibWlzc2lvbi9JbnRlbC9y
ZXNvdXJjZS10aW1pbmcvdGVzdF9yZXNvdXJjZV90aW1pbmdfYnVmZmVyX2Z1bGxfd2hlbl9wb3B1
bGF0ZV9lbnRyaWVzLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy93
M2Mvd2VicGVyZi9zdWJtaXNzaW9uL0ludGVsL3Jlc291cmNlLXRpbWluZy90ZXN0X3Jlc291cmNl
X3RpbWluZ19idWZmZXJfZnVsbF93aGVuX3BvcHVsYXRlX2VudHJpZXMuaHRtbDogQWRkZWQuCisg
ICAgICAgICogaHR0cC90ZXN0cy93M2Mvd2VicGVyZi9zdWJtaXNzaW9uL0ludGVsL3Jlc291cmNl
LXRpbWluZy90ZXN0X3Jlc291cmNlX3RpbWluZ19idWZmZXJfZnVsbF93aGVuX3Nocmlua19idWZm
ZXJfc2l6ZS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvdzNjL3dl
YnBlcmYvc3VibWlzc2lvbi9JbnRlbC9yZXNvdXJjZS10aW1pbmcvdGVzdF9yZXNvdXJjZV90aW1p
bmdfYnVmZmVyX2Z1bGxfd2hlbl9zaHJpbmtfYnVmZmVyX3NpemUuaHRtbDogQWRkZWQuCisgICAg
ICAgICogaHR0cC90ZXN0cy93M2Mvd2VicGVyZi9zdWJtaXNzaW9uL0ludGVsL3Jlc291cmNlLXRp
bWluZy90ZXN0X3Jlc291cmNlX3RpbWluZ19idWZmZXJfc2l6ZV9yZXN0cmljdGlvbi1leHBlY3Rl
ZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvdzNjL3dlYnBlcmYvc3VibWlzc2lv
bi9JbnRlbC9yZXNvdXJjZS10aW1pbmcvdGVzdF9yZXNvdXJjZV90aW1pbmdfYnVmZmVyX3NpemVf
cmVzdHJpY3Rpb24uaHRtbDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy93M2Mvd2VicGVy
Zi9zdWJtaXNzaW9uL0ludGVsL3Jlc291cmNlLXRpbWluZy90ZXN0X3Jlc291cmNlX3RpbWluZ19j
bGVhcl9yZXNvdXJjZV90aW1pbmdfZnVuY3Rpb25hbGl0eS1leHBlY3RlZC50eHQ6IEFkZGVkLgor
ICAgICAgICAqIGh0dHAvdGVzdHMvdzNjL3dlYnBlcmYvc3VibWlzc2lvbi9JbnRlbC9yZXNvdXJj
ZS10aW1pbmcvdGVzdF9yZXNvdXJjZV90aW1pbmdfY2xlYXJfcmVzb3VyY2VfdGltaW5nX2Z1bmN0
aW9uYWxpdHkuaHRtbDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy93M2Mvd2VicGVyZi9z
dWJtaXNzaW9uL0ludGVsL3Jlc291cmNlLXRpbWluZy90ZXN0X3Jlc291cmNlX3RpbWluZ19vbl9z
aHJpbmtfYnVmZmVyX3NpemUtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rl
c3RzL3czYy93ZWJwZXJmL3N1Ym1pc3Npb24vSW50ZWwvcmVzb3VyY2UtdGltaW5nL3Rlc3RfcmVz
b3VyY2VfdGltaW5nX29uX3Nocmlua19idWZmZXJfc2l6ZS5odG1sOiBBZGRlZC4KKyAgICAgICAg
KiBodHRwL3Rlc3RzL3czYy93ZWJwZXJmL3N1Ym1pc3Npb24vSW50ZWwvcmVzb3VyY2UtdGltaW5n
L3Rlc3RfcmVzb3VyY2VfdGltaW5nX3N0b3JlX2FuZF9jbGVhcl9kdXJpbmdfY2FsbGJhY2stZXhw
ZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3czYy93ZWJwZXJmL3N1Ym1p
c3Npb24vSW50ZWwvcmVzb3VyY2UtdGltaW5nL3Rlc3RfcmVzb3VyY2VfdGltaW5nX3N0b3JlX2Fu
ZF9jbGVhcl9kdXJpbmdfY2FsbGJhY2suaHRtbDogQWRkZWQuCisgICAgICAgICogcGxhdGZvcm0v
Y2hyb21pdW0vVGVzdEV4cGVjdGF0aW9uczoKKyAgICAgICAgKiBwbGF0Zm9ybS9lZmwvVGVzdEV4
cGVjdGF0aW9uczoKKyAgICAgICAgKiBwbGF0Zm9ybS9ndGsvVGVzdEV4cGVjdGF0aW9uczoKKyAg
ICAgICAgKiBwbGF0Zm9ybS9tYWMvVGVzdEV4cGVjdGF0aW9uczoKKyAgICAgICAgKiBwbGF0Zm9y
bS9xdC01LjAtd2syL1Rlc3RFeHBlY3RhdGlvbnM6CisgICAgICAgICogcGxhdGZvcm0vcXQvVGVz
dEV4cGVjdGF0aW9uczoKKyAgICAgICAgKiBwbGF0Zm9ybS93aW4vVGVzdEV4cGVjdGF0aW9uczoK
KwogMjAxMi0xMC0xOCAgTWlraGFpbCBQb3pkbnlha292ICA8bWlraGFpbC5wb3pkbnlha292QGlu
dGVsLmNvbT4KIAogICAgICAgICBbRUZMXSBHYXJkZW5pbmcgYWZ0ZXIgcjEzMTY0MApkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93M2Mvd2VicGVyZi9yZXNvdXJjZXMvd2VicGVy
ZnRlc3RoYXJuZXNzZXh0ZW5zaW9uLmpzIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93M2Mvd2Vi
cGVyZi9yZXNvdXJjZXMvd2VicGVyZnRlc3RoYXJuZXNzZXh0ZW5zaW9uLmpzCmluZGV4IDNiODI3
YzNkN2QwM2I4ZjZjNjdkMDFjN2Q5NGFiN2E4OTUxZmU1NmMuLjRkMTAyMDY5NmJhMjViYjZlMDNh
Nzk3MzU2MTlmNTM3OTQ1MTQ1NjQgMTAwNzU1Ci0tLSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMv
dzNjL3dlYnBlcmYvcmVzb3VyY2VzL3dlYnBlcmZ0ZXN0aGFybmVzc2V4dGVuc2lvbi5qcworKysg
Yi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3czYy93ZWJwZXJmL3Jlc291cmNlcy93ZWJwZXJmdGVz
dGhhcm5lc3NleHRlbnNpb24uanMKQEAgLTE3NCw2ICsxNzQsNDAgQEAgUGVyZm9ybWFuY2VDb250
ZXh0LnByb3RvdHlwZSA9CiAgICAgICAgICAgICAgICAgdGhpcy5wZXJmb3JtYW5jZUNvbnRleHQu
b0dldEVudHJpZXNCeU5hbWUgICAgfHwKICAgICAgICAgICAgICAgICB0aGlzLnBlcmZvcm1hbmNl
Q29udGV4dC53ZWJraXRHZXRFbnRyaWVzQnlOYW1lKQogICAgICAgICAgICAgICAgIC5hcHBseSh0
aGlzLnBlcmZvcm1hbmNlQ29udGV4dCwgYXJndW1lbnRzKTsKKyAgICB9LAorCisgICAgc2V0UmVz
b3VyY2VUaW1pbmdCdWZmZXJTaXplOiBmdW5jdGlvbigpCisgICAgeworICAgICAgICByZXR1cm4g
KHRoaXMucGVyZm9ybWFuY2VDb250ZXh0LnNldFJlc291cmNlVGltaW5nQnVmZmVyU2l6ZSAgICAg
fHwKKyAgICAgICAgICAgICAgICB0aGlzLnBlcmZvcm1hbmNlQ29udGV4dC5tb3pTZXRSZXNvdXJj
ZVRpbWluZ0J1ZmZlclNpemUgIHx8IAorICAgICAgICAgICAgICAgIHRoaXMucGVyZm9ybWFuY2VD
b250ZXh0Lm1zU2V0UmVzb3VyY2VUaW1pbmdCdWZmZXJTaXplICAgfHwKKyAgICAgICAgICAgICAg
ICB0aGlzLnBlcmZvcm1hbmNlQ29udGV4dC5vU2V0UmVzb3VyY2VUaW1pbmdCdWZmZXJTaXplICAg
IHx8CisgICAgICAgICAgICAgICAgdGhpcy5wZXJmb3JtYW5jZUNvbnRleHQud2Via2l0U2V0UmVz
b3VyY2VUaW1pbmdCdWZmZXJTaXplKQorICAgICAgICAgICAgICAgIC5hcHBseSh0aGlzLnBlcmZv
cm1hbmNlQ29udGV4dCwgYXJndW1lbnRzKTsKKyAgICB9LAorCisgICAgcmVnaXN0ZXJSZXNvdXJj
ZVRpbWluZ0J1ZmZlckZ1bGxDYWxsYmFjazogZnVuY3Rpb24oZnVuYykKKyAgICB7CisgICAgICAg
IGlmICh0eXBlb2YgdGhpcy5wZXJmb3JtYW5jZUNvbnRleHQub25yZXNvdXJjZXRpbWluZ2J1ZmZl
cmZ1bGwgIT09ICJ1bmRlZmluZWQiKQorICAgICAgICAgICAgdGhpcy5wZXJmb3JtYW5jZUNvbnRl
eHQub25yZXNvdXJjZXRpbWluZ2J1ZmZlcmZ1bGwgPSBmdW5jOworICAgICAgICBlbHNlIGlmICh0
eXBlb2YgdGhpcy5wZXJmb3JtYW5jZUNvbnRleHQub25tb3pyZXNvdXJjZXRpbWluZ2J1ZmZlcmZ1
bGwgIT09ICJ1bmRlZmluZWQiKQorICAgICAgICAgICAgdGhpcy5wZXJmb3JtYW5jZUNvbnRleHQu
b25tb3pyZXNvdXJjZXRpbWluZ2J1ZmZlcmZ1bGwgPSBmdW5jOworICAgICAgICBlbHNlIGlmICh0
eXBlb2YgdGhpcy5wZXJmb3JtYW5jZUNvbnRleHQub25tc3Jlc291cmNldGltaW5nYnVmZmVyZnVs
bCAhPT0gInVuZGVmaW5lZCIpCisgICAgICAgICAgICB0aGlzLnBlcmZvcm1hbmNlQ29udGV4dC5v
bm1zcmVzb3VyY2V0aW1pbmdidWZmZXJmdWxsID0gZnVuYzsKKyAgICAgICAgZWxzZSBpZiAodHlw
ZW9mIHRoaXMucGVyZm9ybWFuY2VDb250ZXh0Lm9ub3Jlc291cmNldGltaW5nYnVmZmVyZnVsbCAh
PT0gInVuZGVmaW5lZCIpCisgICAgICAgICAgICB0aGlzLnBlcmZvcm1hbmNlQ29udGV4dC5vbm9y
ZXNvdXJjZXRpbWluZ2J1ZmZlcmZ1bGwgPSBmdW5jOworICAgICAgICBlbHNlIGlmICh0eXBlb2Yg
dGhpcy5wZXJmb3JtYW5jZUNvbnRleHQub253ZWJraXRyZXNvdXJjZXRpbWluZ2J1ZmZlcmZ1bGwg
IT09ICJ1bmRlZmluZWQiKQorICAgICAgICAgICAgdGhpcy5wZXJmb3JtYW5jZUNvbnRleHQub253
ZWJraXRyZXNvdXJjZXRpbWluZ2J1ZmZlcmZ1bGwgPSBmdW5jOworICAgIH0sCisKKyAgICBjbGVh
clJlc291cmNlVGltaW5nczogZnVuY3Rpb24oKQorICAgIHsKKyAgICAgICAgKHRoaXMucGVyZm9y
bWFuY2VDb250ZXh0LmNsZWFyUmVzb3VyY2VUaW1pbmdzICAgICB8fAorICAgICAgICAgdGhpcy5w
ZXJmb3JtYW5jZUNvbnRleHQubW96Q2xlYXJSZXNvdXJjZVRpbWluZ3MgIHx8IAorICAgICAgICAg
dGhpcy5wZXJmb3JtYW5jZUNvbnRleHQubXNDbGVhclJlc291cmNlVGltaW5ncyAgIHx8CisgICAg
ICAgICB0aGlzLnBlcmZvcm1hbmNlQ29udGV4dC5vQ2xlYXJSZXNvdXJjZVRpbWluZ3MgICAgfHwK
KyAgICAgICAgIHRoaXMucGVyZm9ybWFuY2VDb250ZXh0LndlYmtpdENsZWFyUmVzb3VyY2VUaW1p
bmdzKQorICAgICAgICAuYXBwbHkodGhpcy5wZXJmb3JtYW5jZUNvbnRleHQsIGFyZ3VtZW50cyk7
CiAgICAgfQogCiB9OwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93M2Mvd2Vi
cGVyZi9zdWJtaXNzaW9uL0ludGVsL3Jlc291cmNlLXRpbWluZy90ZXN0X3Jlc291cmNlX3RpbWlu
Z19idWZmZXJfZnVsbF93aGVuX3BvcHVsYXRlX2VudHJpZXMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0
VGVzdHMvaHR0cC90ZXN0cy93M2Mvd2VicGVyZi9zdWJtaXNzaW9uL0ludGVsL3Jlc291cmNlLXRp
bWluZy90ZXN0X3Jlc291cmNlX3RpbWluZ19idWZmZXJfZnVsbF93aGVuX3BvcHVsYXRlX2VudHJp
ZXMtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjYxZjEwMTYxMmIwNjZmMmZkYzU1ZDAyYjk3NzM4
M2RkNzVmZWZkOGMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3cz
Yy93ZWJwZXJmL3N1Ym1pc3Npb24vSW50ZWwvcmVzb3VyY2UtdGltaW5nL3Rlc3RfcmVzb3VyY2Vf
dGltaW5nX2J1ZmZlcl9mdWxsX3doZW5fcG9wdWxhdGVfZW50cmllcy1leHBlY3RlZC50eHQKQEAg
LTAsMCArMSw3IEBACitEZXNjcmlwdGlvbg0KKw0KK1RoaXMgdGVzdCB2YWxpZGF0ZXMgdGhlIGZ1
bmN0aW9uYWxpdHkgb2Ygb25yZXNvdXJjZXRpbWluZ2J1ZmZlcmZ1bGwgaW4gcmVzb3VyY2UgdGlt
aW5nLg0KKw0KKw0KK1BBU1Mgb25yZXNvdXJjZXRpbWluZ2J1ZmZlcmZ1bGwgc2hvdWxkIGhhdmUg
YmVlbiBpbnZva2VkIG9uY2UgYnVmZmVyIGlzIGZ1bGwhIA0KKw0KZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2h0dHAvdGVzdHMvdzNjL3dlYnBlcmYvc3VibWlzc2lvbi9JbnRlbC9yZXNvdXJjZS10
aW1pbmcvdGVzdF9yZXNvdXJjZV90aW1pbmdfYnVmZmVyX2Z1bGxfd2hlbl9wb3B1bGF0ZV9lbnRy
aWVzLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3czYy93ZWJwZXJmL3N1Ym1pc3Npb24v
SW50ZWwvcmVzb3VyY2UtdGltaW5nL3Rlc3RfcmVzb3VyY2VfdGltaW5nX2J1ZmZlcl9mdWxsX3do
ZW5fcG9wdWxhdGVfZW50cmllcy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjczOTJhNGIxMTNkYjE3ZGJjYjEy
ZmY5YWQ4NmIyMWJhZjMxZTYwNzkKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRw
L3Rlc3RzL3czYy93ZWJwZXJmL3N1Ym1pc3Npb24vSW50ZWwvcmVzb3VyY2UtdGltaW5nL3Rlc3Rf
cmVzb3VyY2VfdGltaW5nX2J1ZmZlcl9mdWxsX3doZW5fcG9wdWxhdGVfZW50cmllcy5odG1sCkBA
IC0wLDAgKzEsMzUgQEAKKzwhRE9DVFlQRSBIVE1MPg0KKzxodG1sPg0KKyAgICA8aGVhZD4NCisg
ICAgICAgIDxtZXRhIGNoYXJzZXQ9InV0Zi04IiAvPg0KKyAgICAgICAgPHRpdGxlPm9ucmVzb3Vy
Y2V0aW1pbmdidWZmZXJmdWxsIGNhbGxiYWNrIG9mIHJlc291cmNlIHRpbWluZzwvdGl0bGU+DQor
ICAgICAgICA8c2NyaXB0IHNyYz0iL3czYy93ZWJwZXJmL3Jlc291cmNlcy93ZWJwZXJmdGVzdGhh
cm5lc3NleHRlbnNpb24uanMiPjwvc2NyaXB0Pg0KKyAgICAgICAgPHNjcmlwdD4NCisgICAgICAg
ICAgICB2YXIgY29udGV4dCA9IG5ldyBQZXJmb3JtYW5jZUNvbnRleHQocGVyZm9ybWFuY2UpOw0K
KyAgICAgICAgICAgIHZhciBjb3VudCA9IDA7DQorICAgICAgICAgICAgZnVuY3Rpb24gYnVmZmVy
X2Z1bGxfY2FsbF9iYWNrKCkNCisgICAgICAgICAgICB7DQorICAgICAgICAgICAgICAgIGNvdW50
Kys7DQorICAgICAgICAgICAgfQ0KKyAgICAgICAgICAgIGNvbnRleHQucmVnaXN0ZXJSZXNvdXJj
ZVRpbWluZ0J1ZmZlckZ1bGxDYWxsYmFjayhidWZmZXJfZnVsbF9jYWxsX2JhY2spOw0KKyAgICAg
ICAgICAgIGNvbnRleHQuc2V0UmVzb3VyY2VUaW1pbmdCdWZmZXJTaXplKDIpOw0KKyAgICAgICAg
PC9zY3JpcHQ+DQorICAgICAgICA8bGluayByZWw9ImF1dGhvciIgdGl0bGU9IkludGVsIiBocmVm
PSJodHRwOi8vd3d3LmludGVsLmNvbS8iIC8+DQorICAgICAgICA8bGluayByZWw9ImhlbHAiIGhy
ZWY9Imh0dHA6Ly93d3cudzMub3JnL1RSL3Jlc291cmNlLXRpbWluZy8jcGVyZm9ybWFuY2VyZXNv
dXJjZXRpbWluZyIvPg0KKyAgICAgICAgPHNjcmlwdCBzcmM9Ii93M2MvcmVzb3VyY2VzL3Rlc3Ro
YXJuZXNzLmpzIj48L3NjcmlwdD4NCisgICAgICAgIDxzY3JpcHQgc3JjPSIvdzNjL3Jlc291cmNl
cy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+DQorICAgICAgICA8c2NyaXB0IHNyYz0i
L3czYy93ZWJwZXJmL3Jlc291cmNlcy93ZWJwZXJmdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0Pg0K
KyAgICAgICAgPHNjcmlwdD4NCisgICAgICAgICAgICBzZXR1cCh7IGV4cGxpY2l0X2RvbmU6IHRy
dWUgfSk7ICAgICAgICAgICAgDQorICAgICAgICAgICAgZnVuY3Rpb24gb25sb2FkX3Rlc3QoKQ0K
KyAgICAgICAgICAgIHsNCisgICAgICAgICAgICAgICAgdGVzdF9lcXVhbHMoY291bnQsIDEsICJv
bnJlc291cmNldGltaW5nYnVmZmVyZnVsbCBzaG91bGQgaGF2ZSBiZWVuIGludm9rZWQgb25jZSBi
dWZmZXIgaXMgZnVsbCEiKTsNCisgICAgICAgICAgICAgICAgZG9uZSgpOyAgICAgICAgICAgICAg
ICANCisgICAgICAgICAgICB9DQorICAgICAgICA8L3NjcmlwdD4NCisgICAgPC9oZWFkPg0KKyAg
ICA8Ym9keSBvbmxvYWQ9b25sb2FkX3Rlc3QoKT4NCisgICAgICAgIDxoMT5EZXNjcmlwdGlvbjwv
aDE+DQorICAgICAgICA8cD5UaGlzIHRlc3QgdmFsaWRhdGVzIHRoZSBmdW5jdGlvbmFsaXR5IG9m
IG9ucmVzb3VyY2V0aW1pbmdidWZmZXJmdWxsIGluIHJlc291cmNlIHRpbWluZy48L3A+DQorICAg
IDwvYm9keT4NCis8L2h0bWw+DQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93
M2Mvd2VicGVyZi9zdWJtaXNzaW9uL0ludGVsL3Jlc291cmNlLXRpbWluZy90ZXN0X3Jlc291cmNl
X3RpbWluZ19idWZmZXJfZnVsbF93aGVuX3Nocmlua19idWZmZXJfc2l6ZS1leHBlY3RlZC50eHQg
Yi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3czYy93ZWJwZXJmL3N1Ym1pc3Npb24vSW50ZWwvcmVz
b3VyY2UtdGltaW5nL3Rlc3RfcmVzb3VyY2VfdGltaW5nX2J1ZmZlcl9mdWxsX3doZW5fc2hyaW5r
X2J1ZmZlcl9zaXplLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5mNjIxZmFmMTFiZWQ2N2IzYzkz
MThmMzVkMTkyOTUzZDVmZGIwNmY0Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0
cC90ZXN0cy93M2Mvd2VicGVyZi9zdWJtaXNzaW9uL0ludGVsL3Jlc291cmNlLXRpbWluZy90ZXN0
X3Jlc291cmNlX3RpbWluZ19idWZmZXJfZnVsbF93aGVuX3Nocmlua19idWZmZXJfc2l6ZS1leHBl
Y3RlZC50eHQKQEAgLTAsMCArMSw3IEBACitEZXNjcmlwdGlvbg0KKw0KK1RoaXMgdGVzdCB2YWxp
ZGF0ZXMgdGhlIGZ1bmN0aW9uYWxpdHkgb2Ygb25yZXNvdXJjZXRpbWluZ2J1ZmZlcmZ1bGwgaW4g
cmVzb3VyY2UgdGltaW5nLg0KKw0KKw0KK1BBU1Mgb25yZXNvdXJjZXRpbWluZ2J1ZmZlcmZ1bGwg
c2hvdWxkIGJlIGludm9rZWQgb25jZSB0aGUgYnVmZmVyIGlzIHNocnVuayB0byBzaXplIHdoaWNo
IGlzIGxlc3MgdGhhbiBvciBlcXVhbCB0byBjdXJyZW50IGVudHJ5IG51bWJlciEgDQorDQpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93M2Mvd2VicGVyZi9zdWJtaXNzaW9uL0lu
dGVsL3Jlc291cmNlLXRpbWluZy90ZXN0X3Jlc291cmNlX3RpbWluZ19idWZmZXJfZnVsbF93aGVu
X3Nocmlua19idWZmZXJfc2l6ZS5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93M2Mvd2Vi
cGVyZi9zdWJtaXNzaW9uL0ludGVsL3Jlc291cmNlLXRpbWluZy90ZXN0X3Jlc291cmNlX3RpbWlu
Z19idWZmZXJfZnVsbF93aGVuX3Nocmlua19idWZmZXJfc2l6ZS5odG1sCm5ldyBmaWxlIG1vZGUg
MTAwNzU1CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjM3
ZGQ0OTI0OWRhNTI2ODZkMDE0NWFhYWVjMDc5NzBiNWMwZDY2YjYKLS0tIC9kZXYvbnVsbAorKysg
Yi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3czYy93ZWJwZXJmL3N1Ym1pc3Npb24vSW50ZWwvcmVz
b3VyY2UtdGltaW5nL3Rlc3RfcmVzb3VyY2VfdGltaW5nX2J1ZmZlcl9mdWxsX3doZW5fc2hyaW5r
X2J1ZmZlcl9zaXplLmh0bWwKQEAgLTAsMCArMSwzNyBAQAorPCFET0NUWVBFIEhUTUw+DQorPGh0
bWw+DQorICAgIDxoZWFkPg0KKyAgICAgICAgPG1ldGEgY2hhcnNldD0idXRmLTgiIC8+DQorICAg
ICAgICA8dGl0bGU+b25yZXNvdXJjZXRpbWluZ2J1ZmZlcmZ1bGwgY2FsbGJhY2sgb2YgcmVzb3Vy
Y2UgdGltaW5nPC90aXRsZT4NCisgICAgICAgIDxzY3JpcHQgc3JjPSIvdzNjL3dlYnBlcmYvcmVz
b3VyY2VzL3dlYnBlcmZ0ZXN0aGFybmVzc2V4dGVuc2lvbi5qcyI+PC9zY3JpcHQ+DQorICAgICAg
ICA8c2NyaXB0Pg0KKyAgICAgICAgICAgIHZhciBjb250ZXh0ID0gbmV3IFBlcmZvcm1hbmNlQ29u
dGV4dChwZXJmb3JtYW5jZSk7DQorICAgICAgICAgICAgdmFyIGNvdW50ID0gMDsNCisgICAgICAg
ICAgICBmdW5jdGlvbiBidWZmZXJfZnVsbF9jYWxsX2JhY2soKQ0KKyAgICAgICAgICAgIHsNCisg
ICAgICAgICAgICAgICAgY291bnQrKzsNCisgICAgICAgICAgICB9DQorDQorICAgICAgICAgICAg
Y29udGV4dC5yZWdpc3RlclJlc291cmNlVGltaW5nQnVmZmVyRnVsbENhbGxiYWNrKGJ1ZmZlcl9m
dWxsX2NhbGxfYmFjayk7DQorICAgICAgICA8L3NjcmlwdD4NCisgICAgICAgIDxsaW5rIHJlbD0i
YXV0aG9yIiB0aXRsZT0iSW50ZWwiIGhyZWY9Imh0dHA6Ly93d3cuaW50ZWwuY29tLyIgLz4NCisg
ICAgICAgIDxsaW5rIHJlbD0iaGVscCIgaHJlZj0iaHR0cDovL3d3dy53My5vcmcvVFIvcmVzb3Vy
Y2UtdGltaW5nLyNwZXJmb3JtYW5jZXJlc291cmNldGltaW5nIi8+DQorICAgICAgICA8c2NyaXB0
IHNyYz0iL3czYy9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0Pg0KKyAgICAgICAg
PHNjcmlwdCBzcmM9Ii93M2MvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3Njcmlw
dD4NCisgICAgICAgIDxzY3JpcHQgc3JjPSIvdzNjL3dlYnBlcmYvcmVzb3VyY2VzL3dlYnBlcmZ0
ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+DQorICAgICAgICA8c2NyaXB0Pg0KKyAgICAgICAgICAg
IHNldHVwKHsgZXhwbGljaXRfZG9uZTogdHJ1ZSB9KTsgICAgICAgICAgICANCisgICAgICAgICAg
ICBmdW5jdGlvbiBvbmxvYWRfdGVzdCgpDQorICAgICAgICAgICAgew0KKyAgICAgICAgICAgICAg
ICBjb250ZXh0LnNldFJlc291cmNlVGltaW5nQnVmZmVyU2l6ZSgzKTsNCisgICAgICAgICAgICAg
ICAgY29udGV4dC5zZXRSZXNvdXJjZVRpbWluZ0J1ZmZlclNpemUoMik7DQorICAgICAgICAgICAg
ICAgIHRlc3RfZXF1YWxzKGNvdW50LCAyLCAib25yZXNvdXJjZXRpbWluZ2J1ZmZlcmZ1bGwgc2hv
dWxkIGJlIGludm9rZWQgb25jZSB0aGUgYnVmZmVyIGlzIHNocnVuayB0byBzaXplIHdoaWNoIGlz
IGxlc3MgdGhhbiBvciBlcXVhbCB0byBjdXJyZW50IGVudHJ5IG51bWJlciEiKTsNCisgICAgICAg
ICAgICAgICAgZG9uZSgpOyAgICAgICAgICAgICAgICANCisgICAgICAgICAgICB9DQorICAgICAg
ICA8L3NjcmlwdD4NCisgICAgPC9oZWFkPg0KKyAgICA8Ym9keSBvbmxvYWQ9b25sb2FkX3Rlc3Qo
KT4NCisgICAgICAgIDxoMT5EZXNjcmlwdGlvbjwvaDE+DQorICAgICAgICA8cD5UaGlzIHRlc3Qg
dmFsaWRhdGVzIHRoZSBmdW5jdGlvbmFsaXR5IG9mIG9ucmVzb3VyY2V0aW1pbmdidWZmZXJmdWxs
IGluIHJlc291cmNlIHRpbWluZy48L3A+DQorICAgIDwvYm9keT4NCis8L2h0bWw+DQpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93M2Mvd2VicGVyZi9zdWJtaXNzaW9uL0ludGVs
L3Jlc291cmNlLXRpbWluZy90ZXN0X3Jlc291cmNlX3RpbWluZ19idWZmZXJfc2l6ZV9yZXN0cmlj
dGlvbi1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3czYy93ZWJwZXJmL3N1
Ym1pc3Npb24vSW50ZWwvcmVzb3VyY2UtdGltaW5nL3Rlc3RfcmVzb3VyY2VfdGltaW5nX2J1ZmZl
cl9zaXplX3Jlc3RyaWN0aW9uLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5kYTg0NDkxNzdhZjI3
OGY3NmFiNjU0NjhkNmM3NjhlNDIyODZjNDkyCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVz
dHMvaHR0cC90ZXN0cy93M2Mvd2VicGVyZi9zdWJtaXNzaW9uL0ludGVsL3Jlc291cmNlLXRpbWlu
Zy90ZXN0X3Jlc291cmNlX3RpbWluZ19idWZmZXJfc2l6ZV9yZXN0cmljdGlvbi1leHBlY3RlZC50
eHQKQEAgLTAsMCArMSw3IEBACitEZXNjcmlwdGlvbg0KKw0KK1RoaXMgdGVzdCB2YWxpZGF0ZXMg
dGhlIGZ1bmN0aW9uYWxpdHkgb2Ygc2V0UmVzb3VyY2VUaW1pbmdCdWZmZXJTaXplIG1ldGhvZCBp
biByZXNvdXJjZSB0aW1pbmcuDQorDQorDQorUEFTUyAyIHJlc291cmNlIHRpbWluZyBlbnRyaWVz
IHNob3VsZCBiZSBzdG9yZWQgc2luY2UgYnVmZmVyIHNpemUgaXMgMiEgDQorDQpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93M2Mvd2VicGVyZi9zdWJtaXNzaW9uL0ludGVsL3Jl
c291cmNlLXRpbWluZy90ZXN0X3Jlc291cmNlX3RpbWluZ19idWZmZXJfc2l6ZV9yZXN0cmljdGlv
bi5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93M2Mvd2VicGVyZi9zdWJtaXNzaW9uL0lu
dGVsL3Jlc291cmNlLXRpbWluZy90ZXN0X3Jlc291cmNlX3RpbWluZ19idWZmZXJfc2l6ZV9yZXN0
cmljdGlvbi5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjc5MTY3ZjA0YWU0MTJiNGJhODU2NWRmZGYzMjg4MTE4
ZjE0NjkzN2YKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3czYy93
ZWJwZXJmL3N1Ym1pc3Npb24vSW50ZWwvcmVzb3VyY2UtdGltaW5nL3Rlc3RfcmVzb3VyY2VfdGlt
aW5nX2J1ZmZlcl9zaXplX3Jlc3RyaWN0aW9uLmh0bWwKQEAgLTAsMCArMSwzMCBAQAorPCFET0NU
WVBFIEhUTUw+DQorPGh0bWw+DQorICAgIDxoZWFkPg0KKyAgICAgICAgPG1ldGEgY2hhcnNldD0i
dXRmLTgiIC8+DQorICAgICAgICA8dGl0bGU+YnVmZmVyIHNpemUgcmVzdHJpY3Rpb24gZnVuY3Rp
b25hbGl0eSBvZiByZXNvdXJjZSB0aW1pbmc8L3RpdGxlPg0KKyAgICAgICAgPHNjcmlwdCBzcmM9
Ii93M2Mvd2VicGVyZi9yZXNvdXJjZXMvd2VicGVyZnRlc3RoYXJuZXNzZXh0ZW5zaW9uLmpzIj48
L3NjcmlwdD4NCisgICAgICAgIDxzY3JpcHQ+DQorICAgICAgICAgICAgdmFyIGNvbnRleHQgPSBu
ZXcgUGVyZm9ybWFuY2VDb250ZXh0KHBlcmZvcm1hbmNlKTsNCisgICAgICAgICAgICB2YXIgYnVm
ZmVyX3NpemUgPSAyOw0KKyAgICAgICAgICAgIGNvbnRleHQuc2V0UmVzb3VyY2VUaW1pbmdCdWZm
ZXJTaXplKGJ1ZmZlcl9zaXplKTsNCisgICAgICAgIDwvc2NyaXB0Pg0KKyAgICAgICAgPGxpbmsg
cmVsPSJhdXRob3IiIHRpdGxlPSJJbnRlbCIgaHJlZj0iaHR0cDovL3d3dy5pbnRlbC5jb20vIiAv
Pg0KKyAgICAgICAgPGxpbmsgcmVsPSJoZWxwIiBocmVmPSJodHRwOi8vd3d3LnczLm9yZy9UUi9y
ZXNvdXJjZS10aW1pbmcvI3BlcmZvcm1hbmNlcmVzb3VyY2V0aW1pbmciLz4NCisgICAgICAgIDxz
Y3JpcHQgc3JjPSIvdzNjL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+DQorICAg
ICAgICA8c2NyaXB0IHNyYz0iL3czYy9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwv
c2NyaXB0Pg0KKyAgICAgICAgPHNjcmlwdCBzcmM9Ii93M2Mvd2VicGVyZi9yZXNvdXJjZXMvd2Vi
cGVyZnRlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4NCisgICAgICAgIDxzY3JpcHQ+DQorICAgICAg
ICAgICAgc2V0dXAoeyBleHBsaWNpdF9kb25lOiB0cnVlIH0pOyAgICAgICAgICAgIA0KKyAgICAg
ICAgICAgIGZ1bmN0aW9uIG9ubG9hZF90ZXN0KCkNCisgICAgICAgICAgICB7DQorICAgICAgICAg
ICAgICAgIHRlc3RfZXF1YWxzKGNvbnRleHQuZ2V0RW50cmllc0J5VHlwZSgicmVzb3VyY2UiKS5s
ZW5ndGgsIGJ1ZmZlcl9zaXplLCBidWZmZXJfc2l6ZSArICIgcmVzb3VyY2UgdGltaW5nIGVudHJp
ZXMgc2hvdWxkIGJlIHN0b3JlZCBzaW5jZSBidWZmZXIgc2l6ZSBpcyAiICsgYnVmZmVyX3NpemUg
KyAiISIpOw0KKyAgICAgICAgICAgICAgICBkb25lKCk7ICAgICAgICAgICAgICAgIA0KKyAgICAg
ICAgICAgIH0NCisgICAgICAgIDwvc2NyaXB0Pg0KKyAgICA8L2hlYWQ+DQorICAgIDxib2R5IG9u
bG9hZD1vbmxvYWRfdGVzdCgpPg0KKyAgICAgICAgPGgxPkRlc2NyaXB0aW9uPC9oMT4NCisgICAg
ICAgIDxwPlRoaXMgdGVzdCB2YWxpZGF0ZXMgdGhlIGZ1bmN0aW9uYWxpdHkgb2Ygc2V0UmVzb3Vy
Y2VUaW1pbmdCdWZmZXJTaXplIG1ldGhvZCBpbiByZXNvdXJjZSB0aW1pbmcuPC9wPg0KKyAgICA8
L2JvZHk+DQorPC9odG1sPg0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvdzNj
L3dlYnBlcmYvc3VibWlzc2lvbi9JbnRlbC9yZXNvdXJjZS10aW1pbmcvdGVzdF9yZXNvdXJjZV90
aW1pbmdfY2xlYXJfcmVzb3VyY2VfdGltaW5nX2Z1bmN0aW9uYWxpdHktZXhwZWN0ZWQudHh0IGIv
TGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93M2Mvd2VicGVyZi9zdWJtaXNzaW9uL0ludGVsL3Jlc291
cmNlLXRpbWluZy90ZXN0X3Jlc291cmNlX3RpbWluZ19jbGVhcl9yZXNvdXJjZV90aW1pbmdfZnVu
Y3Rpb25hbGl0eS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMzM4MjUwYmU0OWE1MmQ0Njg0OGI4
MmIzNWViZDQ1MDUxM2RkYzBiZgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAv
dGVzdHMvdzNjL3dlYnBlcmYvc3VibWlzc2lvbi9JbnRlbC9yZXNvdXJjZS10aW1pbmcvdGVzdF9y
ZXNvdXJjZV90aW1pbmdfY2xlYXJfcmVzb3VyY2VfdGltaW5nX2Z1bmN0aW9uYWxpdHktZXhwZWN0
ZWQudHh0CkBAIC0wLDAgKzEsOCBAQAorRGVzY3JpcHRpb24NCisNCitUaGlzIHRlc3QgdmFsaWRh
dGVzIHRoZSBmdW5jdGlvbmFsaXR5IG9mIGNsZWFyUmVzb3VyY2VUaW1pbmdzIG1ldGhvZCBpbiBy
ZXNvdXJjZSB0aW1pbmcuDQorDQorDQorUEFTUyA0IHJlc291cmNlIHRpbWluZyBlbnRyaWVzIHNo
b3VsZCBiZSBzdG9yZWQgaW4gdGhpcyBwYWdlISANCitQQVNTIE5vIHJlc291cmNlIHRpbWluZyBl
bnRyaWVzIHNob3VsZCBiZSBzdG9yZWQgYWZ0ZXIgY2xlYXJSZXNvdXJjZVRpbWluZ3MhIA0KKw0K
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvdzNjL3dlYnBlcmYvc3VibWlzc2lv
bi9JbnRlbC9yZXNvdXJjZS10aW1pbmcvdGVzdF9yZXNvdXJjZV90aW1pbmdfY2xlYXJfcmVzb3Vy
Y2VfdGltaW5nX2Z1bmN0aW9uYWxpdHkuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvdzNj
L3dlYnBlcmYvc3VibWlzc2lvbi9JbnRlbC9yZXNvdXJjZS10aW1pbmcvdGVzdF9yZXNvdXJjZV90
aW1pbmdfY2xlYXJfcmVzb3VyY2VfdGltaW5nX2Z1bmN0aW9uYWxpdHkuaHRtbApuZXcgZmlsZSBt
b2RlIDEwMDc1NQppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li45N2MyNmZiMDM0ZjAwMTE3ZTEwYmRkNGI0NDkyNjI5ZWY5NzEzMGRhCi0tLSAvZGV2L251bGwK
KysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93M2Mvd2VicGVyZi9zdWJtaXNzaW9uL0ludGVs
L3Jlc291cmNlLXRpbWluZy90ZXN0X3Jlc291cmNlX3RpbWluZ19jbGVhcl9yZXNvdXJjZV90aW1p
bmdfZnVuY3Rpb25hbGl0eS5odG1sCkBAIC0wLDAgKzEsMjggQEAKKzwhRE9DVFlQRSBIVE1MPg0K
KzxodG1sPg0KKyAgICA8aGVhZD4NCisgICAgICAgIDxtZXRhIGNoYXJzZXQ9InV0Zi04IiAvPg0K
KyAgICAgICAgPHRpdGxlPmNsZWFyUmVzb3VyY2VUaW1pbmdzIGZ1bmN0aW9uYWxpdHkgb2YgcmVz
b3VyY2UgdGltaW5nPC90aXRsZT4NCisgICAgICAgIDxsaW5rIHJlbD0iYXV0aG9yIiB0aXRsZT0i
SW50ZWwiIGhyZWY9Imh0dHA6Ly93d3cuaW50ZWwuY29tLyIgLz4NCisgICAgICAgIDxsaW5rIHJl
bD0iaGVscCIgaHJlZj0iaHR0cDovL3d3dy53My5vcmcvVFIvcmVzb3VyY2UtdGltaW5nLyNwZXJm
b3JtYW5jZXJlc291cmNldGltaW5nIi8+DQorICAgICAgICA8c2NyaXB0IHNyYz0iL3czYy9yZXNv
dXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0Pg0KKyAgICAgICAgPHNjcmlwdCBzcmM9Ii93
M2MvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4NCisgICAgICAgIDxz
Y3JpcHQgc3JjPSIvdzNjL3dlYnBlcmYvcmVzb3VyY2VzL3dlYnBlcmZ0ZXN0aGFybmVzcy5qcyI+
PC9zY3JpcHQ+DQorICAgICAgICA8c2NyaXB0IHNyYz0iL3czYy93ZWJwZXJmL3Jlc291cmNlcy93
ZWJwZXJmdGVzdGhhcm5lc3NleHRlbnNpb24uanMiPjwvc2NyaXB0Pg0KKyAgICAgICAgPHNjcmlw
dD4NCisgICAgICAgICAgICBzZXR1cCh7IGV4cGxpY2l0X2RvbmU6IHRydWUgfSk7DQorICAgICAg
ICAgICAgdmFyIGNvbnRleHQgPSBuZXcgUGVyZm9ybWFuY2VDb250ZXh0KHBlcmZvcm1hbmNlKTsN
CisgICAgICAgICAgICBmdW5jdGlvbiBvbmxvYWRfdGVzdCgpDQorICAgICAgICAgICAgew0KKyAg
ICAgICAgICAgICAgICB0ZXN0X2VxdWFscyhjb250ZXh0LmdldEVudHJpZXNCeVR5cGUoInJlc291
cmNlIikubGVuZ3RoLCA0LCA0ICsgIiByZXNvdXJjZSB0aW1pbmcgZW50cmllcyBzaG91bGQgYmUg
c3RvcmVkIGluIHRoaXMgcGFnZSEiKTsNCisgICAgICAgICAgICAgICAgY29udGV4dC5jbGVhclJl
c291cmNlVGltaW5ncygpOw0KKyAgICAgICAgICAgICAgICB0ZXN0X2VxdWFscyhjb250ZXh0Lmdl
dEVudHJpZXNCeVR5cGUoInJlc291cmNlIikubGVuZ3RoLCAwLCAiTm8gcmVzb3VyY2UgdGltaW5n
IGVudHJpZXMgc2hvdWxkIGJlIHN0b3JlZCBhZnRlciBjbGVhclJlc291cmNlVGltaW5ncyEiKTsN
CisgICAgICAgICAgICAgICAgZG9uZSgpOw0KKyAgICAgICAgICAgIH0NCisgICAgICAgIDwvc2Ny
aXB0Pg0KKyAgICA8L2hlYWQ+DQorICAgIDxib2R5IG9ubG9hZD1vbmxvYWRfdGVzdCgpPg0KKyAg
ICAgICAgPGgxPkRlc2NyaXB0aW9uPC9oMT4NCisgICAgICAgIDxwPlRoaXMgdGVzdCB2YWxpZGF0
ZXMgdGhlIGZ1bmN0aW9uYWxpdHkgb2YgY2xlYXJSZXNvdXJjZVRpbWluZ3MgbWV0aG9kIGluIHJl
c291cmNlIHRpbWluZy48L3A+DQorICAgIDwvYm9keT4NCis8L2h0bWw+DQpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93M2Mvd2VicGVyZi9zdWJtaXNzaW9uL0ludGVsL3Jlc291
cmNlLXRpbWluZy90ZXN0X3Jlc291cmNlX3RpbWluZ19vbl9zaHJpbmtfYnVmZmVyX3NpemUtZXhw
ZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93M2Mvd2VicGVyZi9zdWJtaXNzaW9u
L0ludGVsL3Jlc291cmNlLXRpbWluZy90ZXN0X3Jlc291cmNlX3RpbWluZ19vbl9zaHJpbmtfYnVm
ZmVyX3NpemUtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjM5MGM3YzEwOTM3Y2QxODFhZWIwOGJj
ODEzNDg4ZTk3YjI5OWYwMDUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rl
c3RzL3czYy93ZWJwZXJmL3N1Ym1pc3Npb24vSW50ZWwvcmVzb3VyY2UtdGltaW5nL3Rlc3RfcmVz
b3VyY2VfdGltaW5nX29uX3Nocmlua19idWZmZXJfc2l6ZS1leHBlY3RlZC50eHQKQEAgLTAsMCAr
MSw5IEBACitEZXNjcmlwdGlvbg0KKw0KK1RoaXMgdGVzdCB2YWxpZGF0ZXMgdGhlIGJlaGF2aW9y
IG9mIHNocmluayByZXNvdXJjZSB0aW1pbmcgYnVmZmVyIHNpemUuDQorDQorDQorUEFTUyBUaGVy
ZSBzaG91bGQgYmUgZW50cmllcyBpbiByZXNvdXJjZSB0aW1pbmcgYnVmZmVyISANCitQQVNTIFJl
c291cmNlIHRpbWluZyBidWZmZXIgc2hvdWxkIG5ldmVyIGJlZW4gY2hhbmdlZCBldmVuIGJ1ZmZl
ciBzaXplIGlzIHNocnVuayEgDQorUEFTUyBUaGVyZSBzaG91bGQgYmUgbm8gZW50cmllcyBpbiBy
ZXNvdXJjZSB0aW1pbmcgYnVmZmVyIGFmdGVyIGNsZWFyUmVzb3VyY2VUaW1pbmdzIA0KKw0KZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvdzNjL3dlYnBlcmYvc3VibWlzc2lvbi9J
bnRlbC9yZXNvdXJjZS10aW1pbmcvdGVzdF9yZXNvdXJjZV90aW1pbmdfb25fc2hyaW5rX2J1ZmZl
cl9zaXplLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3czYy93ZWJwZXJmL3N1Ym1pc3Np
b24vSW50ZWwvcmVzb3VyY2UtdGltaW5nL3Rlc3RfcmVzb3VyY2VfdGltaW5nX29uX3Nocmlua19i
dWZmZXJfc2l6ZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmM0NDdkNTRhZDAzYTAwZTlkZjg1NmQxOTVmODE4
ZjRiMjhjYzgxZGUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3cz
Yy93ZWJwZXJmL3N1Ym1pc3Npb24vSW50ZWwvcmVzb3VyY2UtdGltaW5nL3Rlc3RfcmVzb3VyY2Vf
dGltaW5nX29uX3Nocmlua19idWZmZXJfc2l6ZS5odG1sCkBAIC0wLDAgKzEsMzQgQEAKKzwhRE9D
VFlQRSBIVE1MPg0KKzxodG1sPg0KKyAgICA8aGVhZD4NCisgICAgICAgIDxtZXRhIGNoYXJzZXQ9
InV0Zi04IiAvPg0KKyAgICAgICAgPHRpdGxlPnNocmluayByZXNvdXJjZSB0aW1pbmcgYnVmZmVy
IHNpemU8L3RpdGxlPg0KKyAgICAgICAgPGxpbmsgcmVsPSJhdXRob3IiIHRpdGxlPSJJbnRlbCIg
aHJlZj0iaHR0cDovL3d3dy5pbnRlbC5jb20vIiAvPg0KKyAgICAgICAgPGxpbmsgcmVsPSJoZWxw
IiBocmVmPSJodHRwOi8vd3d3LnczLm9yZy9UUi9yZXNvdXJjZS10aW1pbmcvI3BlcmZvcm1hbmNl
cmVzb3VyY2V0aW1pbmciLz4NCisgICAgICAgIDxzY3JpcHQgc3JjPSIvdzNjL3Jlc291cmNlcy90
ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+DQorICAgICAgICA8c2NyaXB0IHNyYz0iL3czYy9yZXNv
dXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0Pg0KKyAgICAgICAgPHNjcmlwdCBz
cmM9Ii93M2Mvd2VicGVyZi9yZXNvdXJjZXMvd2VicGVyZnRlc3RoYXJuZXNzLmpzIj48L3Njcmlw
dD4NCisgICAgICAgIDxzY3JpcHQgc3JjPSIvdzNjL3dlYnBlcmYvcmVzb3VyY2VzL3dlYnBlcmZ0
ZXN0aGFybmVzc2V4dGVuc2lvbi5qcyI+PC9zY3JpcHQ+DQorICAgICAgICA8c2NyaXB0Pg0KKyAg
ICAgICAgICAgIHNldHVwKHsgZXhwbGljaXRfZG9uZTogdHJ1ZSB9KTsNCisgICAgICAgICAgICB2
YXIgY29udGV4dCA9IG5ldyBQZXJmb3JtYW5jZUNvbnRleHQocGVyZm9ybWFuY2UpOw0KKyAgICAg
ICAgICAgIGZ1bmN0aW9uIG9ubG9hZF90ZXN0KCkNCisgICAgICAgICAgICB7DQorICAgICAgICAg
ICAgICAgIHZhciBlbnRyeV9saXN0X2JlZm9yZV9zaHJpbmsgPSBjb250ZXh0LmdldEVudHJpZXNC
eVR5cGUoJ3Jlc291cmNlJyk7DQorICAgICAgICAgICAgICAgIGNvbnRleHQuc2V0UmVzb3VyY2VU
aW1pbmdCdWZmZXJTaXplKDApOw0KKyAgICAgICAgICAgICAgICB2YXIgZW50cnlfbGlzdF9hZnRl
cl9zaHJpbmsgPSBjb250ZXh0LmdldEVudHJpZXNCeVR5cGUoJ3Jlc291cmNlJyk7DQorICAgICAg
ICAgICAgICAgIA0KKyAgICAgICAgICAgICAgICB0ZXN0X2dyZWF0ZXJfdGhhbihlbnRyeV9saXN0
X2JlZm9yZV9zaHJpbmsubGVuZ3RoLCAwLCAiVGhlcmUgc2hvdWxkIGJlIGVudHJpZXMgaW4gcmVz
b3VyY2UgdGltaW5nIGJ1ZmZlciEiKTsNCisgICAgICAgICAgICAgICAgdGVzdF9lcXVhbHMoSlNP
Ti5zdHJpbmdpZnkoZW50cnlfbGlzdF9iZWZvcmVfc2hyaW5rKSwgSlNPTi5zdHJpbmdpZnkoZW50
cnlfbGlzdF9hZnRlcl9zaHJpbmspLCAiUmVzb3VyY2UgdGltaW5nIGJ1ZmZlciBzaG91bGQgbmV2
ZXIgYmVlbiBjaGFuZ2VkIGV2ZW4gYnVmZmVyIHNpemUgaXMgc2hydW5rISIpOw0KKyAgICAgICAg
ICAgICAgICANCisgICAgICAgICAgICAgICAgY29udGV4dC5jbGVhclJlc291cmNlVGltaW5ncygp
Ow0KKyAgICAgICAgICAgICAgICB0ZXN0X2VxdWFscyhjb250ZXh0LmdldEVudHJpZXNCeVR5cGUo
J3Jlc291cmNlJykubGVuZ3RoLCAwLCAiVGhlcmUgc2hvdWxkIGJlIG5vIGVudHJpZXMgaW4gcmVz
b3VyY2UgdGltaW5nIGJ1ZmZlciBhZnRlciBjbGVhclJlc291cmNlVGltaW5ncyIpOw0KKyAgICAg
ICAgICAgICAgICBkb25lKCk7DQorICAgICAgICAgICAgfQ0KKyAgICAgICAgPC9zY3JpcHQ+DQor
ICAgIDwvaGVhZD4NCisgICAgPGJvZHkgb25sb2FkPW9ubG9hZF90ZXN0KCk+DQorICAgICAgICA8
aDE+RGVzY3JpcHRpb248L2gxPg0KKyAgICAgICAgPHA+VGhpcyB0ZXN0IHZhbGlkYXRlcyB0aGUg
YmVoYXZpb3Igb2Ygc2hyaW5rIHJlc291cmNlIHRpbWluZyBidWZmZXIgc2l6ZS48L3A+DQorICAg
IDwvYm9keT4NCis8L2h0bWw+DQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93
M2Mvd2VicGVyZi9zdWJtaXNzaW9uL0ludGVsL3Jlc291cmNlLXRpbWluZy90ZXN0X3Jlc291cmNl
X3RpbWluZ19zdG9yZV9hbmRfY2xlYXJfZHVyaW5nX2NhbGxiYWNrLWV4cGVjdGVkLnR4dCBiL0xh
eW91dFRlc3RzL2h0dHAvdGVzdHMvdzNjL3dlYnBlcmYvc3VibWlzc2lvbi9JbnRlbC9yZXNvdXJj
ZS10aW1pbmcvdGVzdF9yZXNvdXJjZV90aW1pbmdfc3RvcmVfYW5kX2NsZWFyX2R1cmluZ19jYWxs
YmFjay1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZjk4OThkOGRjZTk4YjM0MjY3OTZmOWI1ODg0
OGJjOTA1MDU3MGFmNQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMv
dzNjL3dlYnBlcmYvc3VibWlzc2lvbi9JbnRlbC9yZXNvdXJjZS10aW1pbmcvdGVzdF9yZXNvdXJj
ZV90aW1pbmdfc3RvcmVfYW5kX2NsZWFyX2R1cmluZ19jYWxsYmFjay1leHBlY3RlZC50eHQKQEAg
LTAsMCArMSw4IEBACitEZXNjcmlwdGlvbg0KKw0KK1RoaXMgdGVzdCB2YWxpZGF0ZXMgdGhlIGJl
aGF2aW9yIG9mIHJlYWQgYW5kIGNsZWFyIG9wZXJhdGlvbiBpbiBvbnJlc291cmNldGltaW5nYnVm
ZmVyZnVsbCBjYWxsYmFjayBvZiByZXNvdXJjZSB0aW1pbmcuDQorDQorDQorUEFTUyBObyBlbnRy
eSBzaG91bGQgYmUgc3RvcmVkIGluIHJlc291cmNlIHRpbWluZyBidWZmZXIgc2luY2UgaXQncyBj
bGVhcmVkIG9uY2UgYW4gaXRlbSBhcnJpdmVkISANCitQQVNTIDQgcmVzb3VyY2UgdGltaW5nIGVu
dHJpZXMgc2hvdWxkIGJlIG1vdmVkIHRvIGdsb2JhbCBidWZmZXIhIA0KKw0KZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2h0dHAvdGVzdHMvdzNjL3dlYnBlcmYvc3VibWlzc2lvbi9JbnRlbC9yZXNv
dXJjZS10aW1pbmcvdGVzdF9yZXNvdXJjZV90aW1pbmdfc3RvcmVfYW5kX2NsZWFyX2R1cmluZ19j
YWxsYmFjay5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93M2Mvd2VicGVyZi9zdWJtaXNz
aW9uL0ludGVsL3Jlc291cmNlLXRpbWluZy90ZXN0X3Jlc291cmNlX3RpbWluZ19zdG9yZV9hbmRf
Y2xlYXJfZHVyaW5nX2NhbGxiYWNrLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNmQwNjQzMzA3Y2JiN2Q4MjY3
ZjgzNzk4YjJkMWEwZDU3YzE0N2JlNAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0
dHAvdGVzdHMvdzNjL3dlYnBlcmYvc3VibWlzc2lvbi9JbnRlbC9yZXNvdXJjZS10aW1pbmcvdGVz
dF9yZXNvdXJjZV90aW1pbmdfc3RvcmVfYW5kX2NsZWFyX2R1cmluZ19jYWxsYmFjay5odG1sCkBA
IC0wLDAgKzEsNDAgQEAKKzwhRE9DVFlQRSBIVE1MPg0KKzxodG1sPg0KKyAgICA8aGVhZD4NCisg
ICAgICAgIDxtZXRhIGNoYXJzZXQ9InV0Zi04IiAvPg0KKyAgICAgICAgPHRpdGxlPnJlYWQgYW5k
IGNsZWFyIHJlc291cmNlIHRpbWluZyBlbnRyeSBpbiBvbnJlc291cmNldGltaW5nYnVmZmVyZnVs
bCBjYWxsYmFjazwvdGl0bGU+DQorICAgICAgICA8c2NyaXB0IHNyYz0iL3czYy93ZWJwZXJmL3Jl
c291cmNlcy93ZWJwZXJmdGVzdGhhcm5lc3NleHRlbnNpb24uanMiPjwvc2NyaXB0Pg0KKyAgICAg
ICAgPHNjcmlwdD4NCisgICAgICAgICAgICB2YXIgY29udGV4dCA9IG5ldyBQZXJmb3JtYW5jZUNv
bnRleHQocGVyZm9ybWFuY2UpOw0KKyAgICAgICAgICAgIHZhciByZXNvdXJjZV90aW1pbmdfYnVm
ZmVyX3NpemUgPSAxOw0KKyAgICAgICAgICAgIHZhciBnbG9iYWxfYnVmZmVyID0gW107DQorICAg
ICAgICAgICAgZnVuY3Rpb24gc3RvcmVfYW5kX2NsZWFyKCkNCisgICAgICAgICAgICB7DQorICAg
ICAgICAgICAgICAgIHZhciBlbnRyeV9saXN0ID0gY29udGV4dC5nZXRFbnRyaWVzQnlUeXBlKCdy
ZXNvdXJjZScpOw0KKyAgICAgICAgICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGVudHJ5X2xp
c3QubGVuZ3RoOyArK2kpDQorICAgICAgICAgICAgICAgICAgICBnbG9iYWxfYnVmZmVyLnB1c2go
ZW50cnlfbGlzdFtpXSk7DQorICAgICAgICAgICAgICAgIGNvbnRleHQuY2xlYXJSZXNvdXJjZVRp
bWluZ3MoKTsNCisgICAgICAgICAgICB9DQorICAgICAgICAgICAgY29udGV4dC5yZWdpc3RlclJl
c291cmNlVGltaW5nQnVmZmVyRnVsbENhbGxiYWNrKHN0b3JlX2FuZF9jbGVhcik7DQorICAgICAg
ICAgICAgY29udGV4dC5zZXRSZXNvdXJjZVRpbWluZ0J1ZmZlclNpemUocmVzb3VyY2VfdGltaW5n
X2J1ZmZlcl9zaXplKTsNCisgICAgICAgIDwvc2NyaXB0Pg0KKyAgICAgICAgPGxpbmsgcmVsPSJh
dXRob3IiIHRpdGxlPSJJbnRlbCIgaHJlZj0iaHR0cDovL3d3dy5pbnRlbC5jb20vIiAvPg0KKyAg
ICAgICAgPGxpbmsgcmVsPSJoZWxwIiBocmVmPSJodHRwOi8vd3d3LnczLm9yZy9UUi9yZXNvdXJj
ZS10aW1pbmcvI3BlcmZvcm1hbmNlcmVzb3VyY2V0aW1pbmciLz4NCisgICAgICAgIDxzY3JpcHQg
c3JjPSIvdzNjL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+DQorICAgICAgICA8
c2NyaXB0IHNyYz0iL3czYy9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0
Pg0KKyAgICAgICAgPHNjcmlwdCBzcmM9Ii93M2Mvd2VicGVyZi9yZXNvdXJjZXMvd2VicGVyZnRl
c3RoYXJuZXNzLmpzIj48L3NjcmlwdD4NCisgICAgICAgIDxzY3JpcHQ+DQorICAgICAgICAgICAg
c2V0dXAoeyBleHBsaWNpdF9kb25lOiB0cnVlIH0pOyAgICAgICAgICAgICAgICANCisgICAgICAg
ICAgICBmdW5jdGlvbiBvbmxvYWRfdGVzdCgpDQorICAgICAgICAgICAgew0KKyAgICAgICAgICAg
ICAgICB0ZXN0X2VxdWFscyhjb250ZXh0LmdldEVudHJpZXNCeVR5cGUoJ3Jlc291cmNlJykubGVu
Z3RoLCAwLCAiTm8gZW50cnkgc2hvdWxkIGJlIHN0b3JlZCBpbiByZXNvdXJjZSB0aW1pbmcgYnVm
ZmVyIHNpbmNlIGl0J3MgY2xlYXJlZCBvbmNlIGFuIGl0ZW0gYXJyaXZlZCEiKTsNCisgICAgICAg
ICAgICAgICAgdGVzdF9lcXVhbHMoZ2xvYmFsX2J1ZmZlci5sZW5ndGgsIDQsICI0IHJlc291cmNl
IHRpbWluZyBlbnRyaWVzIHNob3VsZCBiZSBtb3ZlZCB0byBnbG9iYWwgYnVmZmVyISIpOw0KKyAg
ICAgICAgICAgICAgICBkb25lKCk7DQorICAgICAgICAgICAgfQ0KKyAgICAgICAgPC9zY3JpcHQ+
DQorICAgIDwvaGVhZD4NCisgICAgPGJvZHkgb25sb2FkPW9ubG9hZF90ZXN0KCk+DQorICAgICAg
ICA8aDE+RGVzY3JpcHRpb248L2gxPg0KKyAgICAgICAgPHA+VGhpcyB0ZXN0IHZhbGlkYXRlcyB0
aGUgYmVoYXZpb3Igb2YgcmVhZCBhbmQgY2xlYXIgb3BlcmF0aW9uIGluIG9ucmVzb3VyY2V0aW1p
bmdidWZmZXJmdWxsIGNhbGxiYWNrIG9mIHJlc291cmNlIHRpbWluZy48L3A+DQorICAgIDwvYm9k
eT4NCis8L2h0bWw+DQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0v
VGVzdEV4cGVjdGF0aW9ucyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL1Rlc3RFeHBl
Y3RhdGlvbnMKaW5kZXggMWQzY2JhZmQyM2Y4MjlhZmQ3YjdkM2QyY2EyNzZlYmQ5YWYwZmIyMy4u
ZmMzOWQ4OTNjMjFhNDRmODI4NTg0MmY5NDE3MmFhYjg3Mjg4ZTkwMiAxMDA2NDQKLS0tIGEvTGF5
b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vVGVzdEV4cGVjdGF0aW9ucworKysgYi9MYXlvdXRU
ZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS9UZXN0RXhwZWN0YXRpb25zCkBAIC00MjI3LDMgKzQyMjcs
NiBAQCB3ZWJraXQub3JnL2IvOTk2MDQgWyBNYWMgV2luIF0gaHR0cC90ZXN0cy93b3JrZXJzL3Rl
eHQtZW5jb2RpbmcuaHRtbCBbIFBhc3MgQ3JhcwogCiAjIFVzZXIgVGltaW5nIGlzIG5vdCBlbmFi
bGUgeWV0LiBzbyBza2lwIGl0Lgogd2Via2l0Lm9yZy9iLzg0ODkzIGh0dHAvdGVzdHMvdzNjL3dl
YnBlcmYvc3VibWlzc2lvbi91c2VyLXRpbWluZyBbIFNraXAgXQorCisjIFJlc291cmNlIFRpbWlu
ZyBpcyBub3QgZW5hYmxlIHlldCwgc2tpcCBpdC4KK3dlYmtpdC5vcmcvYi82MTEzOCBodHRwL3Rl
c3RzL3czYy93ZWJwZXJmL3N1Ym1pc3Npb24vSW50ZWwvcmVzb3VyY2UtdGltaW5nIFsgU2tpcCBd
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9lZmwvVGVzdEV4cGVjdGF0aW9ucyBi
L0xheW91dFRlc3RzL3BsYXRmb3JtL2VmbC9UZXN0RXhwZWN0YXRpb25zCmluZGV4IGExNTcwNjQ0
ZTBkZjU0MWI4MzEzYjQwMDcxYWNmZDBhNWM3ODAyYTYuLmNmOGM1MzNiOTZjOTg0ZTk1YTQ3Nzk5
MGJmYmExNWZhOTJkYzkyYjYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2VmbC9U
ZXN0RXhwZWN0YXRpb25zCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2VmbC9UZXN0RXhwZWN0
YXRpb25zCkBAIC0yMDU3LDMgKzIwNTcsNiBAQCB3ZWJraXQub3JnL2IvODQ4OTMgaHR0cC90ZXN0
cy93M2Mvd2VicGVyZi9zdWJtaXNzaW9uL3VzZXItdGltaW5nIFsgU2tpcCBdCiAKICMgUmVncmVz
c2lvbiBhZnRlciByMTMxNjQwLgogd2Via2l0Lm9yZy9iLzk5NjkxIGdhbWVwYWQvZ2FtZXBhZC1v
dXQtb2YtcmFuZ2UtY3Jhc2hlci5odG1sIFsgRmFpbHVyZSBdCisKKyMgUmVzb3VyY2UgVGltaW5n
IGlzIG5vdCBlbmFibGUgeWV0LCBza2lwIGl0Lgord2Via2l0Lm9yZy9iLzYxMTM4IGh0dHAvdGVz
dHMvdzNjL3dlYnBlcmYvc3VibWlzc2lvbi9JbnRlbC9yZXNvdXJjZS10aW1pbmcgWyBTa2lwIF0K
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2d0ay9UZXN0RXhwZWN0YXRpb25zIGIv
TGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL1Rlc3RFeHBlY3RhdGlvbnMKaW5kZXggZDE5ODhhODFi
NGJlNzQ0MzYwMmZmNDk5YzA2N2I4MjZkMDAzMTU4Ny4uMjQ1NjUzODdlMzE2OTE3NjBhMzFmYjUx
NTk2ODQ4N2Y3YjMzMWUxOSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL1Rl
c3RFeHBlY3RhdGlvbnMKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL1Rlc3RFeHBlY3Rh
dGlvbnMKQEAgLTEzNzksNiArMTM3OSw5IEBAIHdlYmtpdC5vcmcvYi85ODk1MCB0cmFuc2l0aW9u
cy9ibGVuZG1vZGUtdHJhbnNpdGlvbnMuaHRtbCBbIEZhaWx1cmUgXQogIyBVc2VyIFRpbWluZyBp
cyBub3QgZW5hYmxlIHlldC4gc28gc2tpcCBpdC4KIHdlYmtpdC5vcmcvYi84NDg5MyBodHRwL3Rl
c3RzL3czYy93ZWJwZXJmL3N1Ym1pc3Npb24vdXNlci10aW1pbmcgWyBTa2lwIF0KIAorIyBSZXNv
dXJjZSBUaW1pbmcgaXMgbm90IGVuYWJsZSB5ZXQsIHNraXAgaXQuCit3ZWJraXQub3JnL2IvNjEx
MzggaHR0cC90ZXN0cy93M2Mvd2VicGVyZi9zdWJtaXNzaW9uL0ludGVsL3Jlc291cmNlLXRpbWlu
ZyBbIFNraXAgXQorCiAjLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwogIyBFbmQgb2Yg
VGVzdHMgZmFpbGluZwogIy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9UZXN0RXhwZWN0YXRpb25zIGIvTGF5b3V0VGVz
dHMvcGxhdGZvcm0vbWFjL1Rlc3RFeHBlY3RhdGlvbnMKaW5kZXggOTc4MjBkNTJmNTY3NDA1NDlh
MDE3MDNiOGEwNDUyMWQyMzA5NTcyNi4uNjQwNjY0MmE4NzhiZjA5OWU5ZTY5NWUxN2E4Yjg5MGVh
ZDBmZWM4YSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL1Rlc3RFeHBlY3Rh
dGlvbnMKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL1Rlc3RFeHBlY3RhdGlvbnMKQEAg
LTEzMTQsMyArMTMxNCw2IEBAIHdlYmtpdC5vcmcvYi85OTIyMSBmYXN0L2pzL3JhbmRvbS1hcnJh
eS1nYy1zdHJlc3MuaHRtbCBbIFBhc3MgVGltZW91dCBdCiAKICMgVXNlciBUaW1pbmcgaXMgbm90
IGVuYWJsZSB5ZXQuIHNvIHNraXAgaXQuCiB3ZWJraXQub3JnL2IvODQ4OTMgaHR0cC90ZXN0cy93
M2Mvd2VicGVyZi9zdWJtaXNzaW9uL3VzZXItdGltaW5nIFsgU2tpcCBdCisKKyMgUmVzb3VyY2Ug
VGltaW5nIGlzIG5vdCBlbmFibGUgeWV0LCBza2lwIGl0Lgord2Via2l0Lm9yZy9iLzYxMTM4IGh0
dHAvdGVzdHMvdzNjL3dlYnBlcmYvc3VibWlzc2lvbi9JbnRlbC9yZXNvdXJjZS10aW1pbmcgWyBT
a2lwIF0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL3F0LTUuMC13azIvVGVzdEV4
cGVjdGF0aW9ucyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL3F0LTUuMC13azIvVGVzdEV4cGVjdGF0
aW9ucwppbmRleCA3N2M0NWUzODQ5Mjc3N2I4OGNjOGNjZDRhY2YyOWRhNWVjOGE1YjY4Li4xYjk4
NzFjYzVkZDc3OTM0YTJjZTg3OTliNDM4ZGRjNzJkOGZmYjVlIDEwMDY0NAotLS0gYS9MYXlvdXRU
ZXN0cy9wbGF0Zm9ybS9xdC01LjAtd2syL1Rlc3RFeHBlY3RhdGlvbnMKKysrIGIvTGF5b3V0VGVz
dHMvcGxhdGZvcm0vcXQtNS4wLXdrMi9UZXN0RXhwZWN0YXRpb25zCkBAIC02MTgsMyArNjE4LDYg
QEAgd2Via2l0Lm9yZy9iLzk5MTU1IGh0dHAvdGVzdHMvbmF2aWdhdGlvbi9waW5nLWNyb3NzLW9y
aWdpbi1mcm9tLWh0dHBzLmh0bWwKIAogIyBVc2VyIFRpbWluZyBpcyBub3QgZW5hYmxlZAogd2Vi
a2l0Lm9yZy9iLzg0ODkzIGh0dHAvdGVzdHMvdzNjL3dlYnBlcmYvcHJvcG9zYWwvdXNlci10aW1p
bmcKKworIyBSZXNvdXJjZSBUaW1pbmcgaXMgbm90IGVuYWJsZSB5ZXQsIHNraXAgaXQuCit3ZWJr
aXQub3JnL2IvNjExMzggaHR0cC90ZXN0cy93M2Mvd2VicGVyZi9zdWJtaXNzaW9uL0ludGVsL3Jl
c291cmNlLXRpbWluZwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vcXQvVGVzdEV4
cGVjdGF0aW9ucyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL3F0L1Rlc3RFeHBlY3RhdGlvbnMKaW5k
ZXggNmFmZGE5NDBiODgyM2QzYmU4ZTU2YTc4MzQzMjU4OGIxZTVkYmY0OC4uZGNjYjI5NDQ2Mzlj
OWM0OGQ0YmI5YWRjYjgwZGEyMjEwMmY1MTQ5YSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxh
dGZvcm0vcXQvVGVzdEV4cGVjdGF0aW9ucworKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9xdC9U
ZXN0RXhwZWN0YXRpb25zCkBAIC01OTAsNiArNTkwLDkgQEAgZmFzdC9kb20vR2VvbG9jYXRpb24v
Y29vcmRpbmF0ZXMtaW50ZXJmYWNlLWF0dHJpYnV0ZXMuaHRtbAogIyBVc2VyIFRpbWluZyBpcyBu
b3QgZW5hYmxlZAogd2Via2l0Lm9yZy9iLzg0ODkzIGh0dHAvdGVzdHMvdzNjL3dlYnBlcmYvc3Vi
bWlzc2lvbi91c2VyLXRpbWluZwogCisjIFJlc291cmNlIFRpbWluZyBpcyBub3QgZW5hYmxlIHll
dCwgc2tpcCBpdC4KK3dlYmtpdC5vcmcvYi82MTEzOCBodHRwL3Rlc3RzL3czYy93ZWJwZXJmL3N1
Ym1pc3Npb24vSW50ZWwvcmVzb3VyY2UtdGltaW5nCisKICMgPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICMK
ICMgICAgICAgRHJhZyBhbmQgRHJvcCBTdXBwb3J0IGluIERSVC4gICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICMKICMgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICMKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL3dpbi9UZXN0RXhwZWN0YXRpb25zIGIvTGF5b3V0VGVz
dHMvcGxhdGZvcm0vd2luL1Rlc3RFeHBlY3RhdGlvbnMKaW5kZXggMTYyYmZlNjI5OWVmYzJhMjNj
NzM0OGI4NzAxZjNjMDczOTY4ZWFmNC4uMTg0YWQxZWM3Yjk1ZjUzNGJjOWNiYzBjNTc4MzU4ZDg5
NzZkZjAxNCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2luL1Rlc3RFeHBlY3Rh
dGlvbnMKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2luL1Rlc3RFeHBlY3RhdGlvbnMKQEAg
LTIzNDUsMyArMjM0NSw2IEBAIHRyYW5zaXRpb25zL2JsZW5kbW9kZS10cmFuc2l0aW9ucy5odG1s
CiAKICMgVXNlciBUaW1pbmcgaXMgbm90IGVuYWJsZWQKIHdlYmtpdC5vcmcvYi84NDg5MyBodHRw
L3Rlc3RzL3czYy93ZWJwZXJmL3N1Ym1pc3Npb24vdXNlci10aW1pbmcKKworIyBSZXNvdXJjZSBU
aW1pbmcgaXMgbm90IGVuYWJsZSB5ZXQsIHNraXAgaXQuCit3ZWJraXQub3JnL2IvNjExMzggaHR0
cC90ZXN0cy93M2Mvd2VicGVyZi9zdWJtaXNzaW9uL0ludGVsL3Jlc291cmNlLXRpbWluZwo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>169510</attachid>
            <date>2012-10-18 17:18:12 -0700</date>
            <delta_ts>2012-10-18 17:53:05 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-84885-20121019082227.patch</filename>
            <type>text/plain</type>
            <size>33372</size>
            <attacher name="pdeng6">pan.deng</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTMxODIzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZjI5NTYxYmVlYjczYjRj
ZGNlY2ZmMDFmZTIyNzExNzJjNzQ1ODQ1NS4uNjI4YWFlMDNlMzlmOTM4ZTcwZWI0MmY5Nzk1MDc2
ZjI2YTZhM2Q3YSAxMDA3NTUKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI5IEBACisyMDEyLTEwLTE4ICBQYW4g
RGVuZyAgPHBhbi5kZW5nQGludGVsLmNvbT4KKworICAgICAgICBbUmVzb3VyY2UgVGltaW5nXUlt
cGxlbWVudGF0aW9uIG9mIHJlc291cmNlIHRpbWluZyBidWZmZXIgc2l6ZSByZXN0cmljdGlvbiBm
dW5jdGlvbmFsaXR5CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD04NDg4NS4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICBodHRwOi8vd3d3LnczLm9yZy9UUi8yMDEyL0NSLXJlc291cmNlLXRpbWluZy0yMDEyMDUy
Mi8KKyAgICAgICAgVGhpcyBwYXRjaCBlbmFibGUgZnVuY3Rpb25hbGl0eSBvZiBzZXQgYnVmZmVy
IHNpemUoZGVmYXVsdCBpcyAxNTAgYXMgc3BlYykuIFdoZW4gYnVmZmVyIGlzIGZ1bGwsIHJlc291
cmNlVGltaW5nQnVmZmVyRnVsbCBldmVudCB3aWxsIGJlIGZpcmVkLiBJbmNvbWluZyBlbnRyaWVz
IHdpbGwgYmUgZHJvcHBlZCBpZiBubyBtb3JlIHNwYWNlIGZvciB0aGVtLiAKKworICAgICAgICBU
ZXN0czogaHR0cC90ZXN0cy93M2Mvd2VicGVyZi9zdWJtaXNzaW9uL0ludGVsL3Jlc291cmNlLXRp
bWluZy90ZXN0X3Jlc291cmNlX3RpbWluZ19idWZmZXJfZnVsbF93aGVuX3BvcHVsYXRlX2VudHJp
ZXMuaHRtbAorICAgICAgICAgICAgICAgaHR0cC90ZXN0cy93M2Mvd2VicGVyZi9zdWJtaXNzaW9u
L0ludGVsL3Jlc291cmNlLXRpbWluZy90ZXN0X3Jlc291cmNlX3RpbWluZ19idWZmZXJfZnVsbF93
aGVuX3Nocmlua19idWZmZXJfc2l6ZS5odG1sCisgICAgICAgICAgICAgICBodHRwL3Rlc3RzL3cz
Yy93ZWJwZXJmL3N1Ym1pc3Npb24vSW50ZWwvcmVzb3VyY2UtdGltaW5nL3Rlc3RfcmVzb3VyY2Vf
dGltaW5nX2J1ZmZlcl9zaXplX3Jlc3RyaWN0aW9uLmh0bWwKKyAgICAgICAgICAgICAgIGh0dHAv
dGVzdHMvdzNjL3dlYnBlcmYvc3VibWlzc2lvbi9JbnRlbC9yZXNvdXJjZS10aW1pbmcvdGVzdF9y
ZXNvdXJjZV90aW1pbmdfY2xlYXJfcmVzb3VyY2VfdGltaW5nX2Z1bmN0aW9uYWxpdHkuaHRtbAor
ICAgICAgICAgICAgICAgaHR0cC90ZXN0cy93M2Mvd2VicGVyZi9zdWJtaXNzaW9uL0ludGVsL3Jl
c291cmNlLXRpbWluZy90ZXN0X3Jlc291cmNlX3RpbWluZ19vbl9zaHJpbmtfYnVmZmVyX3NpemUu
aHRtbAorICAgICAgICAgICAgICAgaHR0cC90ZXN0cy93M2Mvd2VicGVyZi9zdWJtaXNzaW9uL0lu
dGVsL3Jlc291cmNlLXRpbWluZy90ZXN0X3Jlc291cmNlX3RpbWluZ19zdG9yZV9hbmRfY2xlYXJf
ZHVyaW5nX2NhbGxiYWNrLmh0bWwKKworICAgICAgICAqIHBhZ2UvUGVyZm9ybWFuY2UuY3BwOgor
ICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChXZWJDb3JlOjpQZXJmb3JtYW5jZTo6UGVyZm9y
bWFuY2UpOgorICAgICAgICAoV2ViQ29yZTo6UGVyZm9ybWFuY2U6OndlYmtpdFNldFJlc291cmNl
VGltaW5nQnVmZmVyU2l6ZSk6CisgICAgICAgIChXZWJDb3JlOjpQZXJmb3JtYW5jZTo6YWRkUmVz
b3VyY2VUaW1pbmcpOgorICAgICAgICAoV2ViQ29yZTo6UGVyZm9ybWFuY2U6OmlzUmVzb3VyY2VU
aW1pbmdCdWZmZXJGdWxsKToKKyAgICAgICAgKiBwYWdlL1BlcmZvcm1hbmNlLmg6CisgICAgICAg
IChQZXJmb3JtYW5jZSk6CisKIDIwMTItMTAtMTggIENsYXVkaW8gU2FhdmVkcmEgIDxjc2FhdmVk
cmFAaWdhbGlhLmNvbT4KIAogICAgICAgICBbR1RLXSBJbnZhbGlkIHJlYWQgZnJvbSBXZWJLaXQ6
OkRPTU9iamVjdENhY2hlOjpjbGVhckJ5RnJhbWUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BhZ2UvUGVyZm9ybWFuY2UuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9QZXJmb3JtYW5jZS5j
cHAKaW5kZXggMTQ5MTc1Y2E2MjlmYjEwNzgzM2U3N2RlNTA4NWNjZDQwNjQ0NzAyNy4uMjQ5ODdj
ZWQ4NTU0MzU0YmUzZjE1NTRhMzZmOGI4NmNjODZlNmY3MCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGFnZS9QZXJmb3JtYW5jZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9QZXJm
b3JtYW5jZS5jcHAKQEAgLTQ5LDggKzQ5LDE1IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAor
I2lmIEVOQUJMRShSRVNPVVJDRV9USU1JTkcpCitzdGF0aWMgY29uc3Qgc2l6ZV90IGRlZmF1bHRS
ZXNvdXJjZVRpbWluZ0J1ZmZlclNpemUgPSAxNTA7CisjZW5kaWYKKwogUGVyZm9ybWFuY2U6OlBl
cmZvcm1hbmNlKEZyYW1lKiBmcmFtZSkKICAgICA6IERPTVdpbmRvd1Byb3BlcnR5KGZyYW1lKQor
I2lmIEVOQUJMRShSRVNPVVJDRV9USU1JTkcpCisgICAgLCBtX3Jlc291cmNlVGltaW5nQnVmZmVy
U2l6ZShkZWZhdWx0UmVzb3VyY2VUaW1pbmdCdWZmZXJTaXplKQorI2VuZGlmCiB7CiB9CiAKQEAg
LTE0MywxOSArMTUwLDI5IEBAIHZvaWQgUGVyZm9ybWFuY2U6OndlYmtpdENsZWFyUmVzb3VyY2VU
aW1pbmdzKCkKICAgICBtX3Jlc291cmNlVGltaW5nQnVmZmVyLmNsZWFyKCk7CiB9CiAKLXZvaWQg
UGVyZm9ybWFuY2U6OndlYmtpdFNldFJlc291cmNlVGltaW5nQnVmZmVyU2l6ZSh1bnNpZ25lZCBp
bnQpCit2b2lkIFBlcmZvcm1hbmNlOjp3ZWJraXRTZXRSZXNvdXJjZVRpbWluZ0J1ZmZlclNpemUo
dW5zaWduZWQgc2l6ZSkKIHsKLSAgICAvLyBGSVhNRTogSW1wbGVtZW50IHRoaXMuCisgICAgbV9y
ZXNvdXJjZVRpbWluZ0J1ZmZlclNpemUgPSBzaXplOworICAgIGlmIChpc1Jlc291cmNlVGltaW5n
QnVmZmVyRnVsbCgpKQorICAgICAgICBkaXNwYXRjaEV2ZW50KEV2ZW50OjpjcmVhdGUoZXZlbnRO
YW1lcygpLndlYmtpdHJlc291cmNldGltaW5nYnVmZmVyZnVsbEV2ZW50LCBmYWxzZSwgZmFsc2Up
KTsKIH0KIAogdm9pZCBQZXJmb3JtYW5jZTo6YWRkUmVzb3VyY2VUaW1pbmcoY29uc3QgUmVzb3Vy
Y2VSZXF1ZXN0JiByZXF1ZXN0LCBjb25zdCBSZXNvdXJjZVJlc3BvbnNlJiByZXNwb25zZSwgZG91
YmxlIGZpbmlzaFRpbWUsIERvY3VtZW50KiByZXF1ZXN0aW5nRG9jdW1lbnQpCiB7Ci0gICAgaWYg
KCFyZXNwb25zZS5yZXNvdXJjZUxvYWRUaW1pbmcoKSkKKyAgICBpZiAoIXJlc3BvbnNlLnJlc291
cmNlTG9hZFRpbWluZygpIHx8IGlzUmVzb3VyY2VUaW1pbmdCdWZmZXJGdWxsKCkpCiAgICAgICAg
IHJldHVybjsKIAogICAgIFJlZlB0cjxQZXJmb3JtYW5jZUVudHJ5PiBlbnRyeSA9IFBlcmZvcm1h
bmNlUmVzb3VyY2VUaW1pbmc6OmNyZWF0ZShyZXF1ZXN0LCByZXNwb25zZSwgZmluaXNoVGltZSwg
cmVxdWVzdGluZ0RvY3VtZW50KTsKLSAgICAvLyBGSVhNRTogTmVlZCB0byBlbmZvcmNlIGJ1ZmZl
ciBsaW1pdHMuCisKICAgICBtX3Jlc291cmNlVGltaW5nQnVmZmVyLmFwcGVuZChlbnRyeSk7CisK
KyAgICBpZiAoaXNSZXNvdXJjZVRpbWluZ0J1ZmZlckZ1bGwoKSkKKyAgICAgICAgZGlzcGF0Y2hF
dmVudChFdmVudDo6Y3JlYXRlKGV2ZW50TmFtZXMoKS53ZWJraXRyZXNvdXJjZXRpbWluZ2J1ZmZl
cmZ1bGxFdmVudCwgZmFsc2UsIGZhbHNlKSk7Cit9CisKK2Jvb2wgUGVyZm9ybWFuY2U6OmlzUmVz
b3VyY2VUaW1pbmdCdWZmZXJGdWxsKCkKK3sKKyAgICByZXR1cm4gbV9yZXNvdXJjZVRpbWluZ0J1
ZmZlci5zaXplKCkgPj0gbV9yZXNvdXJjZVRpbWluZ0J1ZmZlclNpemU7CiB9CiAKICNlbmRpZiAv
LyBFTkFCTEUoUkVTT1VSQ0VfVElNSU5HKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFn
ZS9QZXJmb3JtYW5jZS5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9QZXJmb3JtYW5jZS5oCmluZGV4
IGZlMDlkOTAyY2M3OWIyZjNjNDVkNTg1MDQyNTMzNGU4OTYyN2VmN2QuLjhkOTQ5ZjI0YzQzNjEz
NTUxZWFmODAwZDdiMWM3ZThhMTZkNmEzZWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bh
Z2UvUGVyZm9ybWFuY2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BlcmZvcm1hbmNlLmgK
QEAgLTEwMCw2ICsxMDAsNyBAQCBwcml2YXRlOgogICAgIHZpcnR1YWwgdm9pZCBkZXJlZkV2ZW50
VGFyZ2V0KCkgeyBkZXJlZigpOyB9CiAgICAgdmlydHVhbCBFdmVudFRhcmdldERhdGEqIGV2ZW50
VGFyZ2V0RGF0YSgpOwogICAgIHZpcnR1YWwgRXZlbnRUYXJnZXREYXRhKiBlbnN1cmVFdmVudFRh
cmdldERhdGEoKTsKKyAgICBib29sIGlzUmVzb3VyY2VUaW1pbmdCdWZmZXJGdWxsKCk7CiAKICAg
ICBFdmVudFRhcmdldERhdGEgbV9ldmVudFRhcmdldERhdGE7CiAKQEAgLTEwOCw2ICsxMDksNyBA
QCBwcml2YXRlOgogCiAjaWYgRU5BQkxFKFJFU09VUkNFX1RJTUlORykKICAgICBWZWN0b3I8UmVm
UHRyPFBlcmZvcm1hbmNlRW50cnk+ID4gbV9yZXNvdXJjZVRpbWluZ0J1ZmZlcjsKKyAgICB1bnNp
Z25lZCBtX3Jlc291cmNlVGltaW5nQnVmZmVyU2l6ZTsKICNlbmRpZgogCiAjaWYgRU5BQkxFKFVT
RVJfVElNSU5HKQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVz
dHMvQ2hhbmdlTG9nCmluZGV4IDdjMDc0YmYxZGM5NTExMTg2ZTcxNDUzNjFmNTE0MzZmYjE4ZjE3
NzIuLmRhYWIyODU3YTIzNGI5ZDAwMDUzMzIzMzdlYzY0MzIyMTA5YjJjY2IgMTAwNjQ0Ci0tLSBh
L0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwzNyBAQAorMjAxMi0xMC0xOCAgUGFuIERlbmcgIDxwYW4uZGVuZ0BpbnRlbC5jb20+CisK
KyAgICAgICAgW1Jlc291cmNlIFRpbWluZ11UZXN0IGNhc2VzIGZvciBzZXQgYnVmZmVyIHNpemUg
ZnVuY3Rpb25hbGl0eSBhbmQgZXZlbnQgd2hlbiBidWZmZXIgZnVsbC4KKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTg0ODg1LgorCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRlc3QgY2FzZXMgaW4gdGhpcyBwYXRj
aCB2YWxpZGF0ZSBidWZmZXIgc2l6ZSByZXN0cmljdGlvbiBmdW5jdGlvbmFsaXR5LCBjbGVhciBy
ZXNvdXJjZSB0aW1pbmcgZnVuY3Rpb25hbGl0eSBhbmQgdGhlIGZpcmVkIGV2ZW50IHdoZW4gYnVm
ZmVyIGZ1bGwuIAorCisgICAgICAgICogaHR0cC90ZXN0cy93M2Mvd2VicGVyZi9yZXNvdXJjZXMv
d2VicGVyZnRlc3RoYXJuZXNzZXh0ZW5zaW9uLmpzOgorICAgICAgICAoUGVyZm9ybWFuY2VDb250
ZXh0LnByb3RvdHlwZS5nZXRFbnRyaWVzQnlOYW1lKToKKyAgICAgICAgKFBlcmZvcm1hbmNlQ29u
dGV4dC5wcm90b3R5cGUuc2V0UmVzb3VyY2VUaW1pbmdCdWZmZXJTaXplKToKKyAgICAgICAgKFBl
cmZvcm1hbmNlQ29udGV4dC5wcm90b3R5cGUucmVnaXN0ZXJSZXNvdXJjZVRpbWluZ0J1ZmZlckZ1
bGxDYWxsYmFjayk6CisgICAgICAgIChQZXJmb3JtYW5jZUNvbnRleHQucHJvdG90eXBlLmNsZWFy
UmVzb3VyY2VUaW1pbmdzKToKKyAgICAgICAgKiBodHRwL3Rlc3RzL3czYy93ZWJwZXJmL3N1Ym1p
c3Npb24vSW50ZWwvcmVzb3VyY2UtdGltaW5nL3Rlc3RfcmVzb3VyY2VfdGltaW5nX2J1ZmZlcl9m
dWxsX3doZW5fcG9wdWxhdGVfZW50cmllcy1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAq
IGh0dHAvdGVzdHMvdzNjL3dlYnBlcmYvc3VibWlzc2lvbi9JbnRlbC9yZXNvdXJjZS10aW1pbmcv
dGVzdF9yZXNvdXJjZV90aW1pbmdfYnVmZmVyX2Z1bGxfd2hlbl9wb3B1bGF0ZV9lbnRyaWVzLmh0
bWw6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvdzNjL3dlYnBlcmYvc3VibWlzc2lvbi9J
bnRlbC9yZXNvdXJjZS10aW1pbmcvdGVzdF9yZXNvdXJjZV90aW1pbmdfYnVmZmVyX2Z1bGxfd2hl
bl9zaHJpbmtfYnVmZmVyX3NpemUtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBodHRw
L3Rlc3RzL3czYy93ZWJwZXJmL3N1Ym1pc3Npb24vSW50ZWwvcmVzb3VyY2UtdGltaW5nL3Rlc3Rf
cmVzb3VyY2VfdGltaW5nX2J1ZmZlcl9mdWxsX3doZW5fc2hyaW5rX2J1ZmZlcl9zaXplLmh0bWw6
IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvdzNjL3dlYnBlcmYvc3VibWlzc2lvbi9JbnRl
bC9yZXNvdXJjZS10aW1pbmcvdGVzdF9yZXNvdXJjZV90aW1pbmdfYnVmZmVyX3NpemVfcmVzdHJp
Y3Rpb24tZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3czYy93ZWJw
ZXJmL3N1Ym1pc3Npb24vSW50ZWwvcmVzb3VyY2UtdGltaW5nL3Rlc3RfcmVzb3VyY2VfdGltaW5n
X2J1ZmZlcl9zaXplX3Jlc3RyaWN0aW9uLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVz
dHMvdzNjL3dlYnBlcmYvc3VibWlzc2lvbi9JbnRlbC9yZXNvdXJjZS10aW1pbmcvdGVzdF9yZXNv
dXJjZV90aW1pbmdfY2xlYXJfcmVzb3VyY2VfdGltaW5nX2Z1bmN0aW9uYWxpdHktZXhwZWN0ZWQu
dHh0OiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3czYy93ZWJwZXJmL3N1Ym1pc3Npb24v
SW50ZWwvcmVzb3VyY2UtdGltaW5nL3Rlc3RfcmVzb3VyY2VfdGltaW5nX2NsZWFyX3Jlc291cmNl
X3RpbWluZ19mdW5jdGlvbmFsaXR5Lmh0bWw6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMv
dzNjL3dlYnBlcmYvc3VibWlzc2lvbi9JbnRlbC9yZXNvdXJjZS10aW1pbmcvdGVzdF9yZXNvdXJj
ZV90aW1pbmdfb25fc2hyaW5rX2J1ZmZlcl9zaXplLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAg
ICAgICogaHR0cC90ZXN0cy93M2Mvd2VicGVyZi9zdWJtaXNzaW9uL0ludGVsL3Jlc291cmNlLXRp
bWluZy90ZXN0X3Jlc291cmNlX3RpbWluZ19vbl9zaHJpbmtfYnVmZmVyX3NpemUuaHRtbDogQWRk
ZWQuCisgICAgICAgICogaHR0cC90ZXN0cy93M2Mvd2VicGVyZi9zdWJtaXNzaW9uL0ludGVsL3Jl
c291cmNlLXRpbWluZy90ZXN0X3Jlc291cmNlX3RpbWluZ19zdG9yZV9hbmRfY2xlYXJfZHVyaW5n
X2NhbGxiYWNrLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy93M2Mv
d2VicGVyZi9zdWJtaXNzaW9uL0ludGVsL3Jlc291cmNlLXRpbWluZy90ZXN0X3Jlc291cmNlX3Rp
bWluZ19zdG9yZV9hbmRfY2xlYXJfZHVyaW5nX2NhbGxiYWNrLmh0bWw6IEFkZGVkLgorICAgICAg
ICAqIHBsYXRmb3JtL2Nocm9taXVtL1Rlc3RFeHBlY3RhdGlvbnM6CisgICAgICAgICogcGxhdGZv
cm0vZWZsL1Rlc3RFeHBlY3RhdGlvbnM6CisgICAgICAgICogcGxhdGZvcm0vZ3RrL1Rlc3RFeHBl
Y3RhdGlvbnM6CisgICAgICAgICogcGxhdGZvcm0vbWFjL1Rlc3RFeHBlY3RhdGlvbnM6CisgICAg
ICAgICogcGxhdGZvcm0vcXQtNS4wLXdrMi9UZXN0RXhwZWN0YXRpb25zOgorICAgICAgICAqIHBs
YXRmb3JtL3F0L1Rlc3RFeHBlY3RhdGlvbnM6CisgICAgICAgICogcGxhdGZvcm0vd2luL1Rlc3RF
eHBlY3RhdGlvbnM6CisKIDIwMTItMTAtMTggIFcuIEphbWVzIE1hY0xlYW4gIDx3am1hY2xlYW5A
Y2hyb21pdW0ub3JnPgogCiAgICAgICAgIFtjaHJvbWl1bV0gUmUtZW5hYmxlIGdlc3R1cmUgaGln
aGxpZ2h0IGxheW91dCB0ZXN0cywgZml4IEdlc3R1cmVMb25nUHJlc3MgcmVncmVzc2lvbi4KZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvdzNjL3dlYnBlcmYvcmVzb3VyY2VzL3dl
YnBlcmZ0ZXN0aGFybmVzc2V4dGVuc2lvbi5qcyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvdzNj
L3dlYnBlcmYvcmVzb3VyY2VzL3dlYnBlcmZ0ZXN0aGFybmVzc2V4dGVuc2lvbi5qcwppbmRleCAz
YjgyN2MzZDdkMDNiOGY2YzY3ZDAxYzdkOTRhYjdhODk1MWZlNTZjLi40ZDEwMjA2OTZiYTI1YmI2
ZTAzYTc5NzM1NjE5ZjUzNzk0NTE0NTY0IDEwMDc1NQotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rl
c3RzL3czYy93ZWJwZXJmL3Jlc291cmNlcy93ZWJwZXJmdGVzdGhhcm5lc3NleHRlbnNpb24uanMK
KysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93M2Mvd2VicGVyZi9yZXNvdXJjZXMvd2VicGVy
ZnRlc3RoYXJuZXNzZXh0ZW5zaW9uLmpzCkBAIC0xNzQsNiArMTc0LDQwIEBAIFBlcmZvcm1hbmNl
Q29udGV4dC5wcm90b3R5cGUgPQogICAgICAgICAgICAgICAgIHRoaXMucGVyZm9ybWFuY2VDb250
ZXh0Lm9HZXRFbnRyaWVzQnlOYW1lICAgIHx8CiAgICAgICAgICAgICAgICAgdGhpcy5wZXJmb3Jt
YW5jZUNvbnRleHQud2Via2l0R2V0RW50cmllc0J5TmFtZSkKICAgICAgICAgICAgICAgICAuYXBw
bHkodGhpcy5wZXJmb3JtYW5jZUNvbnRleHQsIGFyZ3VtZW50cyk7CisgICAgfSwKKworICAgIHNl
dFJlc291cmNlVGltaW5nQnVmZmVyU2l6ZTogZnVuY3Rpb24oKQorICAgIHsKKyAgICAgICAgcmV0
dXJuICh0aGlzLnBlcmZvcm1hbmNlQ29udGV4dC5zZXRSZXNvdXJjZVRpbWluZ0J1ZmZlclNpemUg
ICAgIHx8CisgICAgICAgICAgICAgICAgdGhpcy5wZXJmb3JtYW5jZUNvbnRleHQubW96U2V0UmVz
b3VyY2VUaW1pbmdCdWZmZXJTaXplICB8fCAKKyAgICAgICAgICAgICAgICB0aGlzLnBlcmZvcm1h
bmNlQ29udGV4dC5tc1NldFJlc291cmNlVGltaW5nQnVmZmVyU2l6ZSAgIHx8CisgICAgICAgICAg
ICAgICAgdGhpcy5wZXJmb3JtYW5jZUNvbnRleHQub1NldFJlc291cmNlVGltaW5nQnVmZmVyU2l6
ZSAgICB8fAorICAgICAgICAgICAgICAgIHRoaXMucGVyZm9ybWFuY2VDb250ZXh0LndlYmtpdFNl
dFJlc291cmNlVGltaW5nQnVmZmVyU2l6ZSkKKyAgICAgICAgICAgICAgICAuYXBwbHkodGhpcy5w
ZXJmb3JtYW5jZUNvbnRleHQsIGFyZ3VtZW50cyk7CisgICAgfSwKKworICAgIHJlZ2lzdGVyUmVz
b3VyY2VUaW1pbmdCdWZmZXJGdWxsQ2FsbGJhY2s6IGZ1bmN0aW9uKGZ1bmMpCisgICAgeworICAg
ICAgICBpZiAodHlwZW9mIHRoaXMucGVyZm9ybWFuY2VDb250ZXh0Lm9ucmVzb3VyY2V0aW1pbmdi
dWZmZXJmdWxsICE9PSAidW5kZWZpbmVkIikKKyAgICAgICAgICAgIHRoaXMucGVyZm9ybWFuY2VD
b250ZXh0Lm9ucmVzb3VyY2V0aW1pbmdidWZmZXJmdWxsID0gZnVuYzsKKyAgICAgICAgZWxzZSBp
ZiAodHlwZW9mIHRoaXMucGVyZm9ybWFuY2VDb250ZXh0Lm9ubW96cmVzb3VyY2V0aW1pbmdidWZm
ZXJmdWxsICE9PSAidW5kZWZpbmVkIikKKyAgICAgICAgICAgIHRoaXMucGVyZm9ybWFuY2VDb250
ZXh0Lm9ubW96cmVzb3VyY2V0aW1pbmdidWZmZXJmdWxsID0gZnVuYzsKKyAgICAgICAgZWxzZSBp
ZiAodHlwZW9mIHRoaXMucGVyZm9ybWFuY2VDb250ZXh0Lm9ubXNyZXNvdXJjZXRpbWluZ2J1ZmZl
cmZ1bGwgIT09ICJ1bmRlZmluZWQiKQorICAgICAgICAgICAgdGhpcy5wZXJmb3JtYW5jZUNvbnRl
eHQub25tc3Jlc291cmNldGltaW5nYnVmZmVyZnVsbCA9IGZ1bmM7CisgICAgICAgIGVsc2UgaWYg
KHR5cGVvZiB0aGlzLnBlcmZvcm1hbmNlQ29udGV4dC5vbm9yZXNvdXJjZXRpbWluZ2J1ZmZlcmZ1
bGwgIT09ICJ1bmRlZmluZWQiKQorICAgICAgICAgICAgdGhpcy5wZXJmb3JtYW5jZUNvbnRleHQu
b25vcmVzb3VyY2V0aW1pbmdidWZmZXJmdWxsID0gZnVuYzsKKyAgICAgICAgZWxzZSBpZiAodHlw
ZW9mIHRoaXMucGVyZm9ybWFuY2VDb250ZXh0Lm9ud2Via2l0cmVzb3VyY2V0aW1pbmdidWZmZXJm
dWxsICE9PSAidW5kZWZpbmVkIikKKyAgICAgICAgICAgIHRoaXMucGVyZm9ybWFuY2VDb250ZXh0
Lm9ud2Via2l0cmVzb3VyY2V0aW1pbmdidWZmZXJmdWxsID0gZnVuYzsKKyAgICB9LAorCisgICAg
Y2xlYXJSZXNvdXJjZVRpbWluZ3M6IGZ1bmN0aW9uKCkKKyAgICB7CisgICAgICAgICh0aGlzLnBl
cmZvcm1hbmNlQ29udGV4dC5jbGVhclJlc291cmNlVGltaW5ncyAgICAgfHwKKyAgICAgICAgIHRo
aXMucGVyZm9ybWFuY2VDb250ZXh0Lm1vekNsZWFyUmVzb3VyY2VUaW1pbmdzICB8fCAKKyAgICAg
ICAgIHRoaXMucGVyZm9ybWFuY2VDb250ZXh0Lm1zQ2xlYXJSZXNvdXJjZVRpbWluZ3MgICB8fAor
ICAgICAgICAgdGhpcy5wZXJmb3JtYW5jZUNvbnRleHQub0NsZWFyUmVzb3VyY2VUaW1pbmdzICAg
IHx8CisgICAgICAgICB0aGlzLnBlcmZvcm1hbmNlQ29udGV4dC53ZWJraXRDbGVhclJlc291cmNl
VGltaW5ncykKKyAgICAgICAgLmFwcGx5KHRoaXMucGVyZm9ybWFuY2VDb250ZXh0LCBhcmd1bWVu
dHMpOwogICAgIH0KIAogfTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvdzNj
L3dlYnBlcmYvc3VibWlzc2lvbi9JbnRlbC9yZXNvdXJjZS10aW1pbmcvdGVzdF9yZXNvdXJjZV90
aW1pbmdfYnVmZmVyX2Z1bGxfd2hlbl9wb3B1bGF0ZV9lbnRyaWVzLWV4cGVjdGVkLnR4dCBiL0xh
eW91dFRlc3RzL2h0dHAvdGVzdHMvdzNjL3dlYnBlcmYvc3VibWlzc2lvbi9JbnRlbC9yZXNvdXJj
ZS10aW1pbmcvdGVzdF9yZXNvdXJjZV90aW1pbmdfYnVmZmVyX2Z1bGxfd2hlbl9wb3B1bGF0ZV9l
bnRyaWVzLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42MWYxMDE2MTJiMDY2ZjJmZGM1NWQwMmI5
NzczODNkZDc1ZmVmZDhjCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0
cy93M2Mvd2VicGVyZi9zdWJtaXNzaW9uL0ludGVsL3Jlc291cmNlLXRpbWluZy90ZXN0X3Jlc291
cmNlX3RpbWluZ19idWZmZXJfZnVsbF93aGVuX3BvcHVsYXRlX2VudHJpZXMtZXhwZWN0ZWQudHh0
CkBAIC0wLDAgKzEsNyBAQAorRGVzY3JpcHRpb24NCisNCitUaGlzIHRlc3QgdmFsaWRhdGVzIHRo
ZSBmdW5jdGlvbmFsaXR5IG9mIG9ucmVzb3VyY2V0aW1pbmdidWZmZXJmdWxsIGluIHJlc291cmNl
IHRpbWluZy4NCisNCisNCitQQVNTIG9ucmVzb3VyY2V0aW1pbmdidWZmZXJmdWxsIHNob3VsZCBo
YXZlIGJlZW4gaW52b2tlZCBvbmNlIGJ1ZmZlciBpcyBmdWxsISANCisNCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9odHRwL3Rlc3RzL3czYy93ZWJwZXJmL3N1Ym1pc3Npb24vSW50ZWwvcmVzb3Vy
Y2UtdGltaW5nL3Rlc3RfcmVzb3VyY2VfdGltaW5nX2J1ZmZlcl9mdWxsX3doZW5fcG9wdWxhdGVf
ZW50cmllcy5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93M2Mvd2VicGVyZi9zdWJtaXNz
aW9uL0ludGVsL3Jlc291cmNlLXRpbWluZy90ZXN0X3Jlc291cmNlX3RpbWluZ19idWZmZXJfZnVs
bF93aGVuX3BvcHVsYXRlX2VudHJpZXMuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43MzkyYTRiMTEzZGIxN2Ri
Y2IxMmZmOWFkODZiMjFiYWYzMWU2MDc5Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMv
aHR0cC90ZXN0cy93M2Mvd2VicGVyZi9zdWJtaXNzaW9uL0ludGVsL3Jlc291cmNlLXRpbWluZy90
ZXN0X3Jlc291cmNlX3RpbWluZ19idWZmZXJfZnVsbF93aGVuX3BvcHVsYXRlX2VudHJpZXMuaHRt
bApAQCAtMCwwICsxLDM1IEBACis8IURPQ1RZUEUgSFRNTD4NCis8aHRtbD4NCisgICAgPGhlYWQ+
DQorICAgICAgICA8bWV0YSBjaGFyc2V0PSJ1dGYtOCIgLz4NCisgICAgICAgIDx0aXRsZT5vbnJl
c291cmNldGltaW5nYnVmZmVyZnVsbCBjYWxsYmFjayBvZiByZXNvdXJjZSB0aW1pbmc8L3RpdGxl
Pg0KKyAgICAgICAgPHNjcmlwdCBzcmM9Ii93M2Mvd2VicGVyZi9yZXNvdXJjZXMvd2VicGVyZnRl
c3RoYXJuZXNzZXh0ZW5zaW9uLmpzIj48L3NjcmlwdD4NCisgICAgICAgIDxzY3JpcHQ+DQorICAg
ICAgICAgICAgdmFyIGNvbnRleHQgPSBuZXcgUGVyZm9ybWFuY2VDb250ZXh0KHBlcmZvcm1hbmNl
KTsNCisgICAgICAgICAgICB2YXIgY291bnQgPSAwOw0KKyAgICAgICAgICAgIGZ1bmN0aW9uIGJ1
ZmZlcl9mdWxsX2NhbGxfYmFjaygpDQorICAgICAgICAgICAgew0KKyAgICAgICAgICAgICAgICBj
b3VudCsrOw0KKyAgICAgICAgICAgIH0NCisgICAgICAgICAgICBjb250ZXh0LnJlZ2lzdGVyUmVz
b3VyY2VUaW1pbmdCdWZmZXJGdWxsQ2FsbGJhY2soYnVmZmVyX2Z1bGxfY2FsbF9iYWNrKTsNCisg
ICAgICAgICAgICBjb250ZXh0LnNldFJlc291cmNlVGltaW5nQnVmZmVyU2l6ZSgyKTsNCisgICAg
ICAgIDwvc2NyaXB0Pg0KKyAgICAgICAgPGxpbmsgcmVsPSJhdXRob3IiIHRpdGxlPSJJbnRlbCIg
aHJlZj0iaHR0cDovL3d3dy5pbnRlbC5jb20vIiAvPg0KKyAgICAgICAgPGxpbmsgcmVsPSJoZWxw
IiBocmVmPSJodHRwOi8vd3d3LnczLm9yZy9UUi9yZXNvdXJjZS10aW1pbmcvI3BlcmZvcm1hbmNl
cmVzb3VyY2V0aW1pbmciLz4NCisgICAgICAgIDxzY3JpcHQgc3JjPSIvdzNjL3Jlc291cmNlcy90
ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+DQorICAgICAgICA8c2NyaXB0IHNyYz0iL3czYy9yZXNv
dXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0Pg0KKyAgICAgICAgPHNjcmlwdCBz
cmM9Ii93M2Mvd2VicGVyZi9yZXNvdXJjZXMvd2VicGVyZnRlc3RoYXJuZXNzLmpzIj48L3Njcmlw
dD4NCisgICAgICAgIDxzY3JpcHQ+DQorICAgICAgICAgICAgc2V0dXAoeyBleHBsaWNpdF9kb25l
OiB0cnVlIH0pOyAgICAgICAgICAgIA0KKyAgICAgICAgICAgIGZ1bmN0aW9uIG9ubG9hZF90ZXN0
KCkNCisgICAgICAgICAgICB7DQorICAgICAgICAgICAgICAgIHRlc3RfZXF1YWxzKGNvdW50LCAx
LCAib25yZXNvdXJjZXRpbWluZ2J1ZmZlcmZ1bGwgc2hvdWxkIGhhdmUgYmVlbiBpbnZva2VkIG9u
Y2UgYnVmZmVyIGlzIGZ1bGwhIik7DQorICAgICAgICAgICAgICAgIGRvbmUoKTsgICAgICAgICAg
ICAgICAgDQorICAgICAgICAgICAgfQ0KKyAgICAgICAgPC9zY3JpcHQ+DQorICAgIDwvaGVhZD4N
CisgICAgPGJvZHkgb25sb2FkPW9ubG9hZF90ZXN0KCk+DQorICAgICAgICA8aDE+RGVzY3JpcHRp
b248L2gxPg0KKyAgICAgICAgPHA+VGhpcyB0ZXN0IHZhbGlkYXRlcyB0aGUgZnVuY3Rpb25hbGl0
eSBvZiBvbnJlc291cmNldGltaW5nYnVmZmVyZnVsbCBpbiByZXNvdXJjZSB0aW1pbmcuPC9wPg0K
KyAgICA8L2JvZHk+DQorPC9odG1sPg0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVz
dHMvdzNjL3dlYnBlcmYvc3VibWlzc2lvbi9JbnRlbC9yZXNvdXJjZS10aW1pbmcvdGVzdF9yZXNv
dXJjZV90aW1pbmdfYnVmZmVyX2Z1bGxfd2hlbl9zaHJpbmtfYnVmZmVyX3NpemUtZXhwZWN0ZWQu
dHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93M2Mvd2VicGVyZi9zdWJtaXNzaW9uL0ludGVs
L3Jlc291cmNlLXRpbWluZy90ZXN0X3Jlc291cmNlX3RpbWluZ19idWZmZXJfZnVsbF93aGVuX3No
cmlua19idWZmZXJfc2l6ZS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZjYyMWZhZjExYmVkNjdi
M2M5MzE4ZjM1ZDE5Mjk1M2Q1ZmRiMDZmNAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3Rz
L2h0dHAvdGVzdHMvdzNjL3dlYnBlcmYvc3VibWlzc2lvbi9JbnRlbC9yZXNvdXJjZS10aW1pbmcv
dGVzdF9yZXNvdXJjZV90aW1pbmdfYnVmZmVyX2Z1bGxfd2hlbl9zaHJpbmtfYnVmZmVyX3NpemUt
ZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNyBAQAorRGVzY3JpcHRpb24NCisNCitUaGlzIHRlc3Qg
dmFsaWRhdGVzIHRoZSBmdW5jdGlvbmFsaXR5IG9mIG9ucmVzb3VyY2V0aW1pbmdidWZmZXJmdWxs
IGluIHJlc291cmNlIHRpbWluZy4NCisNCisNCitQQVNTIG9ucmVzb3VyY2V0aW1pbmdidWZmZXJm
dWxsIHNob3VsZCBiZSBpbnZva2VkIG9uY2UgdGhlIGJ1ZmZlciBpcyBzaHJ1bmsgdG8gc2l6ZSB3
aGljaCBpcyBsZXNzIHRoYW4gb3IgZXF1YWwgdG8gY3VycmVudCBlbnRyeSBudW1iZXIhIA0KKw0K
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvdzNjL3dlYnBlcmYvc3VibWlzc2lv
bi9JbnRlbC9yZXNvdXJjZS10aW1pbmcvdGVzdF9yZXNvdXJjZV90aW1pbmdfYnVmZmVyX2Z1bGxf
d2hlbl9zaHJpbmtfYnVmZmVyX3NpemUuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvdzNj
L3dlYnBlcmYvc3VibWlzc2lvbi9JbnRlbC9yZXNvdXJjZS10aW1pbmcvdGVzdF9yZXNvdXJjZV90
aW1pbmdfYnVmZmVyX2Z1bGxfd2hlbl9zaHJpbmtfYnVmZmVyX3NpemUuaHRtbApuZXcgZmlsZSBt
b2RlIDEwMDc1NQppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li4zN2RkNDkyNDlkYTUyNjg2ZDAxNDVhYWFlYzA3OTcwYjVjMGQ2NmI2Ci0tLSAvZGV2L251bGwK
KysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93M2Mvd2VicGVyZi9zdWJtaXNzaW9uL0ludGVs
L3Jlc291cmNlLXRpbWluZy90ZXN0X3Jlc291cmNlX3RpbWluZ19idWZmZXJfZnVsbF93aGVuX3No
cmlua19idWZmZXJfc2l6ZS5odG1sCkBAIC0wLDAgKzEsMzcgQEAKKzwhRE9DVFlQRSBIVE1MPg0K
KzxodG1sPg0KKyAgICA8aGVhZD4NCisgICAgICAgIDxtZXRhIGNoYXJzZXQ9InV0Zi04IiAvPg0K
KyAgICAgICAgPHRpdGxlPm9ucmVzb3VyY2V0aW1pbmdidWZmZXJmdWxsIGNhbGxiYWNrIG9mIHJl
c291cmNlIHRpbWluZzwvdGl0bGU+DQorICAgICAgICA8c2NyaXB0IHNyYz0iL3czYy93ZWJwZXJm
L3Jlc291cmNlcy93ZWJwZXJmdGVzdGhhcm5lc3NleHRlbnNpb24uanMiPjwvc2NyaXB0Pg0KKyAg
ICAgICAgPHNjcmlwdD4NCisgICAgICAgICAgICB2YXIgY29udGV4dCA9IG5ldyBQZXJmb3JtYW5j
ZUNvbnRleHQocGVyZm9ybWFuY2UpOw0KKyAgICAgICAgICAgIHZhciBjb3VudCA9IDA7DQorICAg
ICAgICAgICAgZnVuY3Rpb24gYnVmZmVyX2Z1bGxfY2FsbF9iYWNrKCkNCisgICAgICAgICAgICB7
DQorICAgICAgICAgICAgICAgIGNvdW50Kys7DQorICAgICAgICAgICAgfQ0KKw0KKyAgICAgICAg
ICAgIGNvbnRleHQucmVnaXN0ZXJSZXNvdXJjZVRpbWluZ0J1ZmZlckZ1bGxDYWxsYmFjayhidWZm
ZXJfZnVsbF9jYWxsX2JhY2spOw0KKyAgICAgICAgPC9zY3JpcHQ+DQorICAgICAgICA8bGluayBy
ZWw9ImF1dGhvciIgdGl0bGU9IkludGVsIiBocmVmPSJodHRwOi8vd3d3LmludGVsLmNvbS8iIC8+
DQorICAgICAgICA8bGluayByZWw9ImhlbHAiIGhyZWY9Imh0dHA6Ly93d3cudzMub3JnL1RSL3Jl
c291cmNlLXRpbWluZy8jcGVyZm9ybWFuY2VyZXNvdXJjZXRpbWluZyIvPg0KKyAgICAgICAgPHNj
cmlwdCBzcmM9Ii93M2MvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4NCisgICAg
ICAgIDxzY3JpcHQgc3JjPSIvdzNjL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9z
Y3JpcHQ+DQorICAgICAgICA8c2NyaXB0IHNyYz0iL3czYy93ZWJwZXJmL3Jlc291cmNlcy93ZWJw
ZXJmdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0Pg0KKyAgICAgICAgPHNjcmlwdD4NCisgICAgICAg
ICAgICBzZXR1cCh7IGV4cGxpY2l0X2RvbmU6IHRydWUgfSk7ICAgICAgICAgICAgDQorICAgICAg
ICAgICAgZnVuY3Rpb24gb25sb2FkX3Rlc3QoKQ0KKyAgICAgICAgICAgIHsNCisgICAgICAgICAg
ICAgICAgY29udGV4dC5zZXRSZXNvdXJjZVRpbWluZ0J1ZmZlclNpemUoMyk7DQorICAgICAgICAg
ICAgICAgIGNvbnRleHQuc2V0UmVzb3VyY2VUaW1pbmdCdWZmZXJTaXplKDIpOw0KKyAgICAgICAg
ICAgICAgICB0ZXN0X2VxdWFscyhjb3VudCwgMiwgIm9ucmVzb3VyY2V0aW1pbmdidWZmZXJmdWxs
IHNob3VsZCBiZSBpbnZva2VkIG9uY2UgdGhlIGJ1ZmZlciBpcyBzaHJ1bmsgdG8gc2l6ZSB3aGlj
aCBpcyBsZXNzIHRoYW4gb3IgZXF1YWwgdG8gY3VycmVudCBlbnRyeSBudW1iZXIhIik7DQorICAg
ICAgICAgICAgICAgIGRvbmUoKTsgICAgICAgICAgICAgICAgDQorICAgICAgICAgICAgfQ0KKyAg
ICAgICAgPC9zY3JpcHQ+DQorICAgIDwvaGVhZD4NCisgICAgPGJvZHkgb25sb2FkPW9ubG9hZF90
ZXN0KCk+DQorICAgICAgICA8aDE+RGVzY3JpcHRpb248L2gxPg0KKyAgICAgICAgPHA+VGhpcyB0
ZXN0IHZhbGlkYXRlcyB0aGUgZnVuY3Rpb25hbGl0eSBvZiBvbnJlc291cmNldGltaW5nYnVmZmVy
ZnVsbCBpbiByZXNvdXJjZSB0aW1pbmcuPC9wPg0KKyAgICA8L2JvZHk+DQorPC9odG1sPg0KZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvdzNjL3dlYnBlcmYvc3VibWlzc2lvbi9J
bnRlbC9yZXNvdXJjZS10aW1pbmcvdGVzdF9yZXNvdXJjZV90aW1pbmdfYnVmZmVyX3NpemVfcmVz
dHJpY3Rpb24tZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93M2Mvd2VicGVy
Zi9zdWJtaXNzaW9uL0ludGVsL3Jlc291cmNlLXRpbWluZy90ZXN0X3Jlc291cmNlX3RpbWluZ19i
dWZmZXJfc2l6ZV9yZXN0cmljdGlvbi1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA3NTUK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZGE4NDQ5MTc3
YWYyNzhmNzZhYjY1NDY4ZDZjNzY4ZTQyMjg2YzQ5MgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91
dFRlc3RzL2h0dHAvdGVzdHMvdzNjL3dlYnBlcmYvc3VibWlzc2lvbi9JbnRlbC9yZXNvdXJjZS10
aW1pbmcvdGVzdF9yZXNvdXJjZV90aW1pbmdfYnVmZmVyX3NpemVfcmVzdHJpY3Rpb24tZXhwZWN0
ZWQudHh0CkBAIC0wLDAgKzEsNyBAQAorRGVzY3JpcHRpb24NCisNCitUaGlzIHRlc3QgdmFsaWRh
dGVzIHRoZSBmdW5jdGlvbmFsaXR5IG9mIHNldFJlc291cmNlVGltaW5nQnVmZmVyU2l6ZSBtZXRo
b2QgaW4gcmVzb3VyY2UgdGltaW5nLg0KKw0KKw0KK1BBU1MgMiByZXNvdXJjZSB0aW1pbmcgZW50
cmllcyBzaG91bGQgYmUgc3RvcmVkIHNpbmNlIGJ1ZmZlciBzaXplIGlzIDIhIA0KKw0KZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvdzNjL3dlYnBlcmYvc3VibWlzc2lvbi9JbnRl
bC9yZXNvdXJjZS10aW1pbmcvdGVzdF9yZXNvdXJjZV90aW1pbmdfYnVmZmVyX3NpemVfcmVzdHJp
Y3Rpb24uaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvdzNjL3dlYnBlcmYvc3VibWlzc2lv
bi9JbnRlbC9yZXNvdXJjZS10aW1pbmcvdGVzdF9yZXNvdXJjZV90aW1pbmdfYnVmZmVyX3NpemVf
cmVzdHJpY3Rpb24uaHRtbApuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43OTE2N2YwNGFlNDEyYjRiYTg1NjVkZmRmMzI4
ODExOGYxNDY5MzdmCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93
M2Mvd2VicGVyZi9zdWJtaXNzaW9uL0ludGVsL3Jlc291cmNlLXRpbWluZy90ZXN0X3Jlc291cmNl
X3RpbWluZ19idWZmZXJfc2l6ZV9yZXN0cmljdGlvbi5odG1sCkBAIC0wLDAgKzEsMzAgQEAKKzwh
RE9DVFlQRSBIVE1MPg0KKzxodG1sPg0KKyAgICA8aGVhZD4NCisgICAgICAgIDxtZXRhIGNoYXJz
ZXQ9InV0Zi04IiAvPg0KKyAgICAgICAgPHRpdGxlPmJ1ZmZlciBzaXplIHJlc3RyaWN0aW9uIGZ1
bmN0aW9uYWxpdHkgb2YgcmVzb3VyY2UgdGltaW5nPC90aXRsZT4NCisgICAgICAgIDxzY3JpcHQg
c3JjPSIvdzNjL3dlYnBlcmYvcmVzb3VyY2VzL3dlYnBlcmZ0ZXN0aGFybmVzc2V4dGVuc2lvbi5q
cyI+PC9zY3JpcHQ+DQorICAgICAgICA8c2NyaXB0Pg0KKyAgICAgICAgICAgIHZhciBjb250ZXh0
ID0gbmV3IFBlcmZvcm1hbmNlQ29udGV4dChwZXJmb3JtYW5jZSk7DQorICAgICAgICAgICAgdmFy
IGJ1ZmZlcl9zaXplID0gMjsNCisgICAgICAgICAgICBjb250ZXh0LnNldFJlc291cmNlVGltaW5n
QnVmZmVyU2l6ZShidWZmZXJfc2l6ZSk7DQorICAgICAgICA8L3NjcmlwdD4NCisgICAgICAgIDxs
aW5rIHJlbD0iYXV0aG9yIiB0aXRsZT0iSW50ZWwiIGhyZWY9Imh0dHA6Ly93d3cuaW50ZWwuY29t
LyIgLz4NCisgICAgICAgIDxsaW5rIHJlbD0iaGVscCIgaHJlZj0iaHR0cDovL3d3dy53My5vcmcv
VFIvcmVzb3VyY2UtdGltaW5nLyNwZXJmb3JtYW5jZXJlc291cmNldGltaW5nIi8+DQorICAgICAg
ICA8c2NyaXB0IHNyYz0iL3czYy9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0Pg0K
KyAgICAgICAgPHNjcmlwdCBzcmM9Ii93M2MvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0Lmpz
Ij48L3NjcmlwdD4NCisgICAgICAgIDxzY3JpcHQgc3JjPSIvdzNjL3dlYnBlcmYvcmVzb3VyY2Vz
L3dlYnBlcmZ0ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+DQorICAgICAgICA8c2NyaXB0Pg0KKyAg
ICAgICAgICAgIHNldHVwKHsgZXhwbGljaXRfZG9uZTogdHJ1ZSB9KTsgICAgICAgICAgICANCisg
ICAgICAgICAgICBmdW5jdGlvbiBvbmxvYWRfdGVzdCgpDQorICAgICAgICAgICAgew0KKyAgICAg
ICAgICAgICAgICB0ZXN0X2VxdWFscyhjb250ZXh0LmdldEVudHJpZXNCeVR5cGUoInJlc291cmNl
IikubGVuZ3RoLCBidWZmZXJfc2l6ZSwgYnVmZmVyX3NpemUgKyAiIHJlc291cmNlIHRpbWluZyBl
bnRyaWVzIHNob3VsZCBiZSBzdG9yZWQgc2luY2UgYnVmZmVyIHNpemUgaXMgIiArIGJ1ZmZlcl9z
aXplICsgIiEiKTsNCisgICAgICAgICAgICAgICAgZG9uZSgpOyAgICAgICAgICAgICAgICANCisg
ICAgICAgICAgICB9DQorICAgICAgICA8L3NjcmlwdD4NCisgICAgPC9oZWFkPg0KKyAgICA8Ym9k
eSBvbmxvYWQ9b25sb2FkX3Rlc3QoKT4NCisgICAgICAgIDxoMT5EZXNjcmlwdGlvbjwvaDE+DQor
ICAgICAgICA8cD5UaGlzIHRlc3QgdmFsaWRhdGVzIHRoZSBmdW5jdGlvbmFsaXR5IG9mIHNldFJl
c291cmNlVGltaW5nQnVmZmVyU2l6ZSBtZXRob2QgaW4gcmVzb3VyY2UgdGltaW5nLjwvcD4NCisg
ICAgPC9ib2R5Pg0KKzwvaHRtbD4NCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3Rz
L3czYy93ZWJwZXJmL3N1Ym1pc3Npb24vSW50ZWwvcmVzb3VyY2UtdGltaW5nL3Rlc3RfcmVzb3Vy
Y2VfdGltaW5nX2NsZWFyX3Jlc291cmNlX3RpbWluZ19mdW5jdGlvbmFsaXR5LWV4cGVjdGVkLnR4
dCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvdzNjL3dlYnBlcmYvc3VibWlzc2lvbi9JbnRlbC9y
ZXNvdXJjZS10aW1pbmcvdGVzdF9yZXNvdXJjZV90aW1pbmdfY2xlYXJfcmVzb3VyY2VfdGltaW5n
X2Z1bmN0aW9uYWxpdHktZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjMzODI1MGJlNDlhNTJkNDY4
NDhiODJiMzVlYmQ0NTA1MTNkZGMwYmYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9o
dHRwL3Rlc3RzL3czYy93ZWJwZXJmL3N1Ym1pc3Npb24vSW50ZWwvcmVzb3VyY2UtdGltaW5nL3Rl
c3RfcmVzb3VyY2VfdGltaW5nX2NsZWFyX3Jlc291cmNlX3RpbWluZ19mdW5jdGlvbmFsaXR5LWV4
cGVjdGVkLnR4dApAQCAtMCwwICsxLDggQEAKK0Rlc2NyaXB0aW9uDQorDQorVGhpcyB0ZXN0IHZh
bGlkYXRlcyB0aGUgZnVuY3Rpb25hbGl0eSBvZiBjbGVhclJlc291cmNlVGltaW5ncyBtZXRob2Qg
aW4gcmVzb3VyY2UgdGltaW5nLg0KKw0KKw0KK1BBU1MgNCByZXNvdXJjZSB0aW1pbmcgZW50cmll
cyBzaG91bGQgYmUgc3RvcmVkIGluIHRoaXMgcGFnZSEgDQorUEFTUyBObyByZXNvdXJjZSB0aW1p
bmcgZW50cmllcyBzaG91bGQgYmUgc3RvcmVkIGFmdGVyIGNsZWFyUmVzb3VyY2VUaW1pbmdzISAN
CisNCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3czYy93ZWJwZXJmL3N1Ym1p
c3Npb24vSW50ZWwvcmVzb3VyY2UtdGltaW5nL3Rlc3RfcmVzb3VyY2VfdGltaW5nX2NsZWFyX3Jl
c291cmNlX3RpbWluZ19mdW5jdGlvbmFsaXR5Lmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3Rz
L3czYy93ZWJwZXJmL3N1Ym1pc3Npb24vSW50ZWwvcmVzb3VyY2UtdGltaW5nL3Rlc3RfcmVzb3Vy
Y2VfdGltaW5nX2NsZWFyX3Jlc291cmNlX3RpbWluZ19mdW5jdGlvbmFsaXR5Lmh0bWwKbmV3IGZp
bGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uOTdjMjZmYjAzNGYwMDExN2UxMGJkZDRiNDQ5MjYyOWVmOTcxMzBkYQotLS0gL2Rldi9u
dWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvdzNjL3dlYnBlcmYvc3VibWlzc2lvbi9J
bnRlbC9yZXNvdXJjZS10aW1pbmcvdGVzdF9yZXNvdXJjZV90aW1pbmdfY2xlYXJfcmVzb3VyY2Vf
dGltaW5nX2Z1bmN0aW9uYWxpdHkuaHRtbApAQCAtMCwwICsxLDI4IEBACis8IURPQ1RZUEUgSFRN
TD4NCis8aHRtbD4NCisgICAgPGhlYWQ+DQorICAgICAgICA8bWV0YSBjaGFyc2V0PSJ1dGYtOCIg
Lz4NCisgICAgICAgIDx0aXRsZT5jbGVhclJlc291cmNlVGltaW5ncyBmdW5jdGlvbmFsaXR5IG9m
IHJlc291cmNlIHRpbWluZzwvdGl0bGU+DQorICAgICAgICA8bGluayByZWw9ImF1dGhvciIgdGl0
bGU9IkludGVsIiBocmVmPSJodHRwOi8vd3d3LmludGVsLmNvbS8iIC8+DQorICAgICAgICA8bGlu
ayByZWw9ImhlbHAiIGhyZWY9Imh0dHA6Ly93d3cudzMub3JnL1RSL3Jlc291cmNlLXRpbWluZy8j
cGVyZm9ybWFuY2VyZXNvdXJjZXRpbWluZyIvPg0KKyAgICAgICAgPHNjcmlwdCBzcmM9Ii93M2Mv
cmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4NCisgICAgICAgIDxzY3JpcHQgc3Jj
PSIvdzNjL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+DQorICAgICAg
ICA8c2NyaXB0IHNyYz0iL3czYy93ZWJwZXJmL3Jlc291cmNlcy93ZWJwZXJmdGVzdGhhcm5lc3Mu
anMiPjwvc2NyaXB0Pg0KKyAgICAgICAgPHNjcmlwdCBzcmM9Ii93M2Mvd2VicGVyZi9yZXNvdXJj
ZXMvd2VicGVyZnRlc3RoYXJuZXNzZXh0ZW5zaW9uLmpzIj48L3NjcmlwdD4NCisgICAgICAgIDxz
Y3JpcHQ+DQorICAgICAgICAgICAgc2V0dXAoeyBleHBsaWNpdF9kb25lOiB0cnVlIH0pOw0KKyAg
ICAgICAgICAgIHZhciBjb250ZXh0ID0gbmV3IFBlcmZvcm1hbmNlQ29udGV4dChwZXJmb3JtYW5j
ZSk7DQorICAgICAgICAgICAgZnVuY3Rpb24gb25sb2FkX3Rlc3QoKQ0KKyAgICAgICAgICAgIHsN
CisgICAgICAgICAgICAgICAgdGVzdF9lcXVhbHMoY29udGV4dC5nZXRFbnRyaWVzQnlUeXBlKCJy
ZXNvdXJjZSIpLmxlbmd0aCwgNCwgNCArICIgcmVzb3VyY2UgdGltaW5nIGVudHJpZXMgc2hvdWxk
IGJlIHN0b3JlZCBpbiB0aGlzIHBhZ2UhIik7DQorICAgICAgICAgICAgICAgIGNvbnRleHQuY2xl
YXJSZXNvdXJjZVRpbWluZ3MoKTsNCisgICAgICAgICAgICAgICAgdGVzdF9lcXVhbHMoY29udGV4
dC5nZXRFbnRyaWVzQnlUeXBlKCJyZXNvdXJjZSIpLmxlbmd0aCwgMCwgIk5vIHJlc291cmNlIHRp
bWluZyBlbnRyaWVzIHNob3VsZCBiZSBzdG9yZWQgYWZ0ZXIgY2xlYXJSZXNvdXJjZVRpbWluZ3Mh
Iik7DQorICAgICAgICAgICAgICAgIGRvbmUoKTsNCisgICAgICAgICAgICB9DQorICAgICAgICA8
L3NjcmlwdD4NCisgICAgPC9oZWFkPg0KKyAgICA8Ym9keSBvbmxvYWQ9b25sb2FkX3Rlc3QoKT4N
CisgICAgICAgIDxoMT5EZXNjcmlwdGlvbjwvaDE+DQorICAgICAgICA8cD5UaGlzIHRlc3QgdmFs
aWRhdGVzIHRoZSBmdW5jdGlvbmFsaXR5IG9mIGNsZWFyUmVzb3VyY2VUaW1pbmdzIG1ldGhvZCBp
biByZXNvdXJjZSB0aW1pbmcuPC9wPg0KKyAgICA8L2JvZHk+DQorPC9odG1sPg0KZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvdzNjL3dlYnBlcmYvc3VibWlzc2lvbi9JbnRlbC9y
ZXNvdXJjZS10aW1pbmcvdGVzdF9yZXNvdXJjZV90aW1pbmdfb25fc2hyaW5rX2J1ZmZlcl9zaXpl
LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvdzNjL3dlYnBlcmYvc3VibWlz
c2lvbi9JbnRlbC9yZXNvdXJjZS10aW1pbmcvdGVzdF9yZXNvdXJjZV90aW1pbmdfb25fc2hyaW5r
X2J1ZmZlcl9zaXplLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4zOTBjN2MxMDkzN2NkMTgxYWVi
MDhiYzgxMzQ4OGU5N2IyOTlmMDA1Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0
cC90ZXN0cy93M2Mvd2VicGVyZi9zdWJtaXNzaW9uL0ludGVsL3Jlc291cmNlLXRpbWluZy90ZXN0
X3Jlc291cmNlX3RpbWluZ19vbl9zaHJpbmtfYnVmZmVyX3NpemUtZXhwZWN0ZWQudHh0CkBAIC0w
LDAgKzEsOSBAQAorRGVzY3JpcHRpb24NCisNCitUaGlzIHRlc3QgdmFsaWRhdGVzIHRoZSBiZWhh
dmlvciBvZiBzaHJpbmsgcmVzb3VyY2UgdGltaW5nIGJ1ZmZlciBzaXplLg0KKw0KKw0KK1BBU1Mg
VGhlcmUgc2hvdWxkIGJlIGVudHJpZXMgaW4gcmVzb3VyY2UgdGltaW5nIGJ1ZmZlciEgDQorUEFT
UyBSZXNvdXJjZSB0aW1pbmcgYnVmZmVyIHNob3VsZCBuZXZlciBiZWVuIGNoYW5nZWQgZXZlbiBi
dWZmZXIgc2l6ZSBpcyBzaHJ1bmshIA0KK1BBU1MgVGhlcmUgc2hvdWxkIGJlIG5vIGVudHJpZXMg
aW4gcmVzb3VyY2UgdGltaW5nIGJ1ZmZlciBhZnRlciBjbGVhclJlc291cmNlVGltaW5ncyANCisN
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3czYy93ZWJwZXJmL3N1Ym1pc3Np
b24vSW50ZWwvcmVzb3VyY2UtdGltaW5nL3Rlc3RfcmVzb3VyY2VfdGltaW5nX29uX3Nocmlua19i
dWZmZXJfc2l6ZS5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93M2Mvd2VicGVyZi9zdWJt
aXNzaW9uL0ludGVsL3Jlc291cmNlLXRpbWluZy90ZXN0X3Jlc291cmNlX3RpbWluZ19vbl9zaHJp
bmtfYnVmZmVyX3NpemUuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5jNDQ3ZDU0YWQwM2EwMGU5ZGY4NTZkMTk1
ZjgxOGY0YjI4Y2M4MWRlCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0
cy93M2Mvd2VicGVyZi9zdWJtaXNzaW9uL0ludGVsL3Jlc291cmNlLXRpbWluZy90ZXN0X3Jlc291
cmNlX3RpbWluZ19vbl9zaHJpbmtfYnVmZmVyX3NpemUuaHRtbApAQCAtMCwwICsxLDM0IEBACis8
IURPQ1RZUEUgSFRNTD4NCis8aHRtbD4NCisgICAgPGhlYWQ+DQorICAgICAgICA8bWV0YSBjaGFy
c2V0PSJ1dGYtOCIgLz4NCisgICAgICAgIDx0aXRsZT5zaHJpbmsgcmVzb3VyY2UgdGltaW5nIGJ1
ZmZlciBzaXplPC90aXRsZT4NCisgICAgICAgIDxsaW5rIHJlbD0iYXV0aG9yIiB0aXRsZT0iSW50
ZWwiIGhyZWY9Imh0dHA6Ly93d3cuaW50ZWwuY29tLyIgLz4NCisgICAgICAgIDxsaW5rIHJlbD0i
aGVscCIgaHJlZj0iaHR0cDovL3d3dy53My5vcmcvVFIvcmVzb3VyY2UtdGltaW5nLyNwZXJmb3Jt
YW5jZXJlc291cmNldGltaW5nIi8+DQorICAgICAgICA8c2NyaXB0IHNyYz0iL3czYy9yZXNvdXJj
ZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0Pg0KKyAgICAgICAgPHNjcmlwdCBzcmM9Ii93M2Mv
cmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4NCisgICAgICAgIDxzY3Jp
cHQgc3JjPSIvdzNjL3dlYnBlcmYvcmVzb3VyY2VzL3dlYnBlcmZ0ZXN0aGFybmVzcy5qcyI+PC9z
Y3JpcHQ+DQorICAgICAgICA8c2NyaXB0IHNyYz0iL3czYy93ZWJwZXJmL3Jlc291cmNlcy93ZWJw
ZXJmdGVzdGhhcm5lc3NleHRlbnNpb24uanMiPjwvc2NyaXB0Pg0KKyAgICAgICAgPHNjcmlwdD4N
CisgICAgICAgICAgICBzZXR1cCh7IGV4cGxpY2l0X2RvbmU6IHRydWUgfSk7DQorICAgICAgICAg
ICAgdmFyIGNvbnRleHQgPSBuZXcgUGVyZm9ybWFuY2VDb250ZXh0KHBlcmZvcm1hbmNlKTsNCisg
ICAgICAgICAgICBmdW5jdGlvbiBvbmxvYWRfdGVzdCgpDQorICAgICAgICAgICAgew0KKyAgICAg
ICAgICAgICAgICB2YXIgZW50cnlfbGlzdF9iZWZvcmVfc2hyaW5rID0gY29udGV4dC5nZXRFbnRy
aWVzQnlUeXBlKCdyZXNvdXJjZScpOw0KKyAgICAgICAgICAgICAgICBjb250ZXh0LnNldFJlc291
cmNlVGltaW5nQnVmZmVyU2l6ZSgwKTsNCisgICAgICAgICAgICAgICAgdmFyIGVudHJ5X2xpc3Rf
YWZ0ZXJfc2hyaW5rID0gY29udGV4dC5nZXRFbnRyaWVzQnlUeXBlKCdyZXNvdXJjZScpOw0KKyAg
ICAgICAgICAgICAgICANCisgICAgICAgICAgICAgICAgdGVzdF9ncmVhdGVyX3RoYW4oZW50cnlf
bGlzdF9iZWZvcmVfc2hyaW5rLmxlbmd0aCwgMCwgIlRoZXJlIHNob3VsZCBiZSBlbnRyaWVzIGlu
IHJlc291cmNlIHRpbWluZyBidWZmZXIhIik7DQorICAgICAgICAgICAgICAgIHRlc3RfZXF1YWxz
KEpTT04uc3RyaW5naWZ5KGVudHJ5X2xpc3RfYmVmb3JlX3NocmluayksIEpTT04uc3RyaW5naWZ5
KGVudHJ5X2xpc3RfYWZ0ZXJfc2hyaW5rKSwgIlJlc291cmNlIHRpbWluZyBidWZmZXIgc2hvdWxk
IG5ldmVyIGJlZW4gY2hhbmdlZCBldmVuIGJ1ZmZlciBzaXplIGlzIHNocnVuayEiKTsNCisgICAg
ICAgICAgICAgICAgDQorICAgICAgICAgICAgICAgIGNvbnRleHQuY2xlYXJSZXNvdXJjZVRpbWlu
Z3MoKTsNCisgICAgICAgICAgICAgICAgdGVzdF9lcXVhbHMoY29udGV4dC5nZXRFbnRyaWVzQnlU
eXBlKCdyZXNvdXJjZScpLmxlbmd0aCwgMCwgIlRoZXJlIHNob3VsZCBiZSBubyBlbnRyaWVzIGlu
IHJlc291cmNlIHRpbWluZyBidWZmZXIgYWZ0ZXIgY2xlYXJSZXNvdXJjZVRpbWluZ3MiKTsNCisg
ICAgICAgICAgICAgICAgZG9uZSgpOw0KKyAgICAgICAgICAgIH0NCisgICAgICAgIDwvc2NyaXB0
Pg0KKyAgICA8L2hlYWQ+DQorICAgIDxib2R5IG9ubG9hZD1vbmxvYWRfdGVzdCgpPg0KKyAgICAg
ICAgPGgxPkRlc2NyaXB0aW9uPC9oMT4NCisgICAgICAgIDxwPlRoaXMgdGVzdCB2YWxpZGF0ZXMg
dGhlIGJlaGF2aW9yIG9mIHNocmluayByZXNvdXJjZSB0aW1pbmcgYnVmZmVyIHNpemUuPC9wPg0K
KyAgICA8L2JvZHk+DQorPC9odG1sPg0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVz
dHMvdzNjL3dlYnBlcmYvc3VibWlzc2lvbi9JbnRlbC9yZXNvdXJjZS10aW1pbmcvdGVzdF9yZXNv
dXJjZV90aW1pbmdfc3RvcmVfYW5kX2NsZWFyX2R1cmluZ19jYWxsYmFjay1leHBlY3RlZC50eHQg
Yi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3czYy93ZWJwZXJmL3N1Ym1pc3Npb24vSW50ZWwvcmVz
b3VyY2UtdGltaW5nL3Rlc3RfcmVzb3VyY2VfdGltaW5nX3N0b3JlX2FuZF9jbGVhcl9kdXJpbmdf
Y2FsbGJhY2stZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmY5ODk4ZDhkY2U5OGIzNDI2Nzk2Zjli
NTg4NDhiYzkwNTA1NzBhZjUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rl
c3RzL3czYy93ZWJwZXJmL3N1Ym1pc3Npb24vSW50ZWwvcmVzb3VyY2UtdGltaW5nL3Rlc3RfcmVz
b3VyY2VfdGltaW5nX3N0b3JlX2FuZF9jbGVhcl9kdXJpbmdfY2FsbGJhY2stZXhwZWN0ZWQudHh0
CkBAIC0wLDAgKzEsOCBAQAorRGVzY3JpcHRpb24NCisNCitUaGlzIHRlc3QgdmFsaWRhdGVzIHRo
ZSBiZWhhdmlvciBvZiByZWFkIGFuZCBjbGVhciBvcGVyYXRpb24gaW4gb25yZXNvdXJjZXRpbWlu
Z2J1ZmZlcmZ1bGwgY2FsbGJhY2sgb2YgcmVzb3VyY2UgdGltaW5nLg0KKw0KKw0KK1BBU1MgTm8g
ZW50cnkgc2hvdWxkIGJlIHN0b3JlZCBpbiByZXNvdXJjZSB0aW1pbmcgYnVmZmVyIHNpbmNlIGl0
J3MgY2xlYXJlZCBvbmNlIGFuIGl0ZW0gYXJyaXZlZCEgDQorUEFTUyA0IHJlc291cmNlIHRpbWlu
ZyBlbnRyaWVzIHNob3VsZCBiZSBtb3ZlZCB0byBnbG9iYWwgYnVmZmVyISANCisNCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3czYy93ZWJwZXJmL3N1Ym1pc3Npb24vSW50ZWwv
cmVzb3VyY2UtdGltaW5nL3Rlc3RfcmVzb3VyY2VfdGltaW5nX3N0b3JlX2FuZF9jbGVhcl9kdXJp
bmdfY2FsbGJhY2suaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvdzNjL3dlYnBlcmYvc3Vi
bWlzc2lvbi9JbnRlbC9yZXNvdXJjZS10aW1pbmcvdGVzdF9yZXNvdXJjZV90aW1pbmdfc3RvcmVf
YW5kX2NsZWFyX2R1cmluZ19jYWxsYmFjay5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjZkMDY0MzMwN2NiYjdk
ODI2N2Y4Mzc5OGIyZDFhMGQ1N2MxNDdiZTQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0
cy9odHRwL3Rlc3RzL3czYy93ZWJwZXJmL3N1Ym1pc3Npb24vSW50ZWwvcmVzb3VyY2UtdGltaW5n
L3Rlc3RfcmVzb3VyY2VfdGltaW5nX3N0b3JlX2FuZF9jbGVhcl9kdXJpbmdfY2FsbGJhY2suaHRt
bApAQCAtMCwwICsxLDQwIEBACis8IURPQ1RZUEUgSFRNTD4NCis8aHRtbD4NCisgICAgPGhlYWQ+
DQorICAgICAgICA8bWV0YSBjaGFyc2V0PSJ1dGYtOCIgLz4NCisgICAgICAgIDx0aXRsZT5yZWFk
IGFuZCBjbGVhciByZXNvdXJjZSB0aW1pbmcgZW50cnkgaW4gb25yZXNvdXJjZXRpbWluZ2J1ZmZl
cmZ1bGwgY2FsbGJhY2s8L3RpdGxlPg0KKyAgICAgICAgPHNjcmlwdCBzcmM9Ii93M2Mvd2VicGVy
Zi9yZXNvdXJjZXMvd2VicGVyZnRlc3RoYXJuZXNzZXh0ZW5zaW9uLmpzIj48L3NjcmlwdD4NCisg
ICAgICAgIDxzY3JpcHQ+DQorICAgICAgICAgICAgdmFyIGNvbnRleHQgPSBuZXcgUGVyZm9ybWFu
Y2VDb250ZXh0KHBlcmZvcm1hbmNlKTsNCisgICAgICAgICAgICB2YXIgcmVzb3VyY2VfdGltaW5n
X2J1ZmZlcl9zaXplID0gMTsNCisgICAgICAgICAgICB2YXIgZ2xvYmFsX2J1ZmZlciA9IFtdOw0K
KyAgICAgICAgICAgIGZ1bmN0aW9uIHN0b3JlX2FuZF9jbGVhcigpDQorICAgICAgICAgICAgew0K
KyAgICAgICAgICAgICAgICB2YXIgZW50cnlfbGlzdCA9IGNvbnRleHQuZ2V0RW50cmllc0J5VHlw
ZSgncmVzb3VyY2UnKTsNCisgICAgICAgICAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBlbnRy
eV9saXN0Lmxlbmd0aDsgKytpKQ0KKyAgICAgICAgICAgICAgICAgICAgZ2xvYmFsX2J1ZmZlci5w
dXNoKGVudHJ5X2xpc3RbaV0pOw0KKyAgICAgICAgICAgICAgICBjb250ZXh0LmNsZWFyUmVzb3Vy
Y2VUaW1pbmdzKCk7DQorICAgICAgICAgICAgfQ0KKyAgICAgICAgICAgIGNvbnRleHQucmVnaXN0
ZXJSZXNvdXJjZVRpbWluZ0J1ZmZlckZ1bGxDYWxsYmFjayhzdG9yZV9hbmRfY2xlYXIpOw0KKyAg
ICAgICAgICAgIGNvbnRleHQuc2V0UmVzb3VyY2VUaW1pbmdCdWZmZXJTaXplKHJlc291cmNlX3Rp
bWluZ19idWZmZXJfc2l6ZSk7DQorICAgICAgICA8L3NjcmlwdD4NCisgICAgICAgIDxsaW5rIHJl
bD0iYXV0aG9yIiB0aXRsZT0iSW50ZWwiIGhyZWY9Imh0dHA6Ly93d3cuaW50ZWwuY29tLyIgLz4N
CisgICAgICAgIDxsaW5rIHJlbD0iaGVscCIgaHJlZj0iaHR0cDovL3d3dy53My5vcmcvVFIvcmVz
b3VyY2UtdGltaW5nLyNwZXJmb3JtYW5jZXJlc291cmNldGltaW5nIi8+DQorICAgICAgICA8c2Ny
aXB0IHNyYz0iL3czYy9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0Pg0KKyAgICAg
ICAgPHNjcmlwdCBzcmM9Ii93M2MvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3Nj
cmlwdD4NCisgICAgICAgIDxzY3JpcHQgc3JjPSIvdzNjL3dlYnBlcmYvcmVzb3VyY2VzL3dlYnBl
cmZ0ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+DQorICAgICAgICA8c2NyaXB0Pg0KKyAgICAgICAg
ICAgIHNldHVwKHsgZXhwbGljaXRfZG9uZTogdHJ1ZSB9KTsgICAgICAgICAgICAgICAgDQorICAg
ICAgICAgICAgZnVuY3Rpb24gb25sb2FkX3Rlc3QoKQ0KKyAgICAgICAgICAgIHsNCisgICAgICAg
ICAgICAgICAgdGVzdF9lcXVhbHMoY29udGV4dC5nZXRFbnRyaWVzQnlUeXBlKCdyZXNvdXJjZScp
Lmxlbmd0aCwgMCwgIk5vIGVudHJ5IHNob3VsZCBiZSBzdG9yZWQgaW4gcmVzb3VyY2UgdGltaW5n
IGJ1ZmZlciBzaW5jZSBpdCdzIGNsZWFyZWQgb25jZSBhbiBpdGVtIGFycml2ZWQhIik7DQorICAg
ICAgICAgICAgICAgIHRlc3RfZXF1YWxzKGdsb2JhbF9idWZmZXIubGVuZ3RoLCA0LCAiNCByZXNv
dXJjZSB0aW1pbmcgZW50cmllcyBzaG91bGQgYmUgbW92ZWQgdG8gZ2xvYmFsIGJ1ZmZlciEiKTsN
CisgICAgICAgICAgICAgICAgZG9uZSgpOw0KKyAgICAgICAgICAgIH0NCisgICAgICAgIDwvc2Ny
aXB0Pg0KKyAgICA8L2hlYWQ+DQorICAgIDxib2R5IG9ubG9hZD1vbmxvYWRfdGVzdCgpPg0KKyAg
ICAgICAgPGgxPkRlc2NyaXB0aW9uPC9oMT4NCisgICAgICAgIDxwPlRoaXMgdGVzdCB2YWxpZGF0
ZXMgdGhlIGJlaGF2aW9yIG9mIHJlYWQgYW5kIGNsZWFyIG9wZXJhdGlvbiBpbiBvbnJlc291cmNl
dGltaW5nYnVmZmVyZnVsbCBjYWxsYmFjayBvZiByZXNvdXJjZSB0aW1pbmcuPC9wPg0KKyAgICA8
L2JvZHk+DQorPC9odG1sPg0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9t
aXVtL1Rlc3RFeHBlY3RhdGlvbnMgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS9UZXN0
RXhwZWN0YXRpb25zCmluZGV4IDU2MzhjNjFmYzgyMjVhNjRiNTAxZGEwN2Q3YmRkMWFiZmRiOTEy
MjEuLjgzNWQwYTAxYjc2NDE5MTUzNmU0NjU2MjJkYmY4MWFiOWVlMDlkMDkgMTAwNjQ0Ci0tLSBh
L0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL1Rlc3RFeHBlY3RhdGlvbnMKKysrIGIvTGF5
b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vVGVzdEV4cGVjdGF0aW9ucwpAQCAtNDIzMCwzICs0
MjMwLDYgQEAgd2Via2l0Lm9yZy9iLzg0ODkzIGh0dHAvdGVzdHMvdzNjL3dlYnBlcmYvc3VibWlz
c2lvbi9JbnRlbC91c2VyLXRpbWluZyBbIFNraXAgXQogIyBFeHBlY3RlZCB0byBmYWlsIHVudGls
IFdlYkdMIGV4dGVuc2lvbiBpbXBsZW1lbnRhdGlvbiBsYW5kcwogd2Via2l0Lm9yZy9iLzk4MjU3
IGZhc3QvY2FudmFzL3dlYmdsL29lcy1lbGVtZW50LWluZGV4LXVpbnQuaHRtbCBbIEZhaWx1cmUg
UGFzcyBdCiB3ZWJraXQub3JnL2IvOTgyNTcgcGxhdGZvcm0vY2hyb21pdW0vdmlydHVhbC9ncHUv
ZmFzdC9jYW52YXMvd2ViZ2wvb2VzLWVsZW1lbnQtaW5kZXgtdWludC5odG1sIFsgRmFpbHVyZSBQ
YXNzIF0KKworIyBSZXNvdXJjZSBUaW1pbmcgaXMgbm90IGVuYWJsZSB5ZXQsIHNraXAgaXQuCit3
ZWJraXQub3JnL2IvNjExMzggaHR0cC90ZXN0cy93M2Mvd2VicGVyZi9zdWJtaXNzaW9uL0ludGVs
L3Jlc291cmNlLXRpbWluZyBbIFNraXAgXQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZv
cm0vZWZsL1Rlc3RFeHBlY3RhdGlvbnMgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9lZmwvVGVzdEV4
cGVjdGF0aW9ucwppbmRleCAxOTQwNWU1MWJlNDA5YzJjYWM0ZjI0ZTRmMGNmZTM4Y2Y4Mzc0NWNi
Li5iMDE0ZjNhMzg3NDFlOTQ0YTE5ZWNjY2UyZDUwZGM4YmI0M2UyOTc5IDEwMDY0NAotLS0gYS9M
YXlvdXRUZXN0cy9wbGF0Zm9ybS9lZmwvVGVzdEV4cGVjdGF0aW9ucworKysgYi9MYXlvdXRUZXN0
cy9wbGF0Zm9ybS9lZmwvVGVzdEV4cGVjdGF0aW9ucwpAQCAtMjA2MCwzICsyMDYwLDYgQEAgd2Vi
a2l0Lm9yZy9iLzg0ODkzIGh0dHAvdGVzdHMvdzNjL3dlYnBlcmYvc3VibWlzc2lvbi9JbnRlbC91
c2VyLXRpbWluZyBbIFNraXAgXQogCiAjIFJlZ3Jlc3Npb24gYWZ0ZXIgcjEzMTY0MC4KIHdlYmtp
dC5vcmcvYi85OTY5MSBnYW1lcGFkL2dhbWVwYWQtb3V0LW9mLXJhbmdlLWNyYXNoZXIuaHRtbCBb
IEZhaWx1cmUgXQorCisjIFJlc291cmNlIFRpbWluZyBpcyBub3QgZW5hYmxlIHlldCwgc2tpcCBp
dC4KK3dlYmtpdC5vcmcvYi82MTEzOCBodHRwL3Rlc3RzL3czYy93ZWJwZXJmL3N1Ym1pc3Npb24v
SW50ZWwvcmVzb3VyY2UtdGltaW5nIFsgU2tpcCBdCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9w
bGF0Zm9ybS9ndGsvVGVzdEV4cGVjdGF0aW9ucyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2d0ay9U
ZXN0RXhwZWN0YXRpb25zCmluZGV4IDkzYzJmZjBhOTFmOTY2ZWM1ODNjNTYxNWM4NDJjNmJlYWNm
NmNhMzguLjRmMTdlZTI0MmIxMWJhYjJkYzU4NTg3YzI4YzYwNTFlMDYzOTE0ZWQgMTAwNjQ0Ci0t
LSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2d0ay9UZXN0RXhwZWN0YXRpb25zCisrKyBiL0xheW91
dFRlc3RzL3BsYXRmb3JtL2d0ay9UZXN0RXhwZWN0YXRpb25zCkBAIC0xMzgyLDYgKzEzODIsOSBA
QCB3ZWJraXQub3JnL2IvOTg5NTAgdHJhbnNpdGlvbnMvYmxlbmRtb2RlLXRyYW5zaXRpb25zLmh0
bWwgWyBGYWlsdXJlIF0KICMgVXNlciBUaW1pbmcgaXMgbm90IGVuYWJsZSB5ZXQuIHNvIHNraXAg
aXQuCiB3ZWJraXQub3JnL2IvODQ4OTMgaHR0cC90ZXN0cy93M2Mvd2VicGVyZi9zdWJtaXNzaW9u
L0ludGVsL3VzZXItdGltaW5nIFsgU2tpcCBdCiAKKyMgUmVzb3VyY2UgVGltaW5nIGlzIG5vdCBl
bmFibGUgeWV0LCBza2lwIGl0Lgord2Via2l0Lm9yZy9iLzYxMTM4IGh0dHAvdGVzdHMvdzNjL3dl
YnBlcmYvc3VibWlzc2lvbi9JbnRlbC9yZXNvdXJjZS10aW1pbmcgWyBTa2lwIF0KKwogIy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KICMgRW5kIG9mIFRlc3RzIGZhaWxpbmcKICMvLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0
Zm9ybS9tYWMvVGVzdEV4cGVjdGF0aW9ucyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9UZXN0
RXhwZWN0YXRpb25zCmluZGV4IDQ3NjM2MjJiMDJiMzgwYWMwYTcwNzk5Mzc1ZTNlNWJhNGM0ZmNl
NDEuLjVkNWFmYWQ1YTA1OTdkMGM1Y2I1MDRmYjAzYjcxOGU1Y2ZjMjdjYzkgMTAwNjQ0Ci0tLSBh
L0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9UZXN0RXhwZWN0YXRpb25zCisrKyBiL0xheW91dFRl
c3RzL3BsYXRmb3JtL21hYy9UZXN0RXhwZWN0YXRpb25zCkBAIC0xMzIwLDMgKzEzMjAsNiBAQCB3
ZWJraXQub3JnL2IvODQ4OTMgaHR0cC90ZXN0cy93M2Mvd2VicGVyZi9zdWJtaXNzaW9uL0ludGVs
L3VzZXItdGltaW5nIFsgU2tpcCBdCiAKICMgRXhwZWN0ZWQgdG8gZmFpbCB1bnRpbCBXZWJHTCBl
eHRlbnNpb24gaW1wbGVtZW50YXRpb24gbGFuZHMKIHdlYmtpdC5vcmcvYi85ODI1NyBmYXN0L2Nh
bnZhcy93ZWJnbC9vZXMtZWxlbWVudC1pbmRleC11aW50Lmh0bWwgWyBGYWlsdXJlIFBhc3MgXQor
CisjIFJlc291cmNlIFRpbWluZyBpcyBub3QgZW5hYmxlIHlldCwgc2tpcCBpdC4KK3dlYmtpdC5v
cmcvYi82MTEzOCBodHRwL3Rlc3RzL3czYy93ZWJwZXJmL3N1Ym1pc3Npb24vSW50ZWwvcmVzb3Vy
Y2UtdGltaW5nIFsgU2tpcCBdCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9xdC01
LjAtd2syL1Rlc3RFeHBlY3RhdGlvbnMgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9xdC01LjAtd2sy
L1Rlc3RFeHBlY3RhdGlvbnMKaW5kZXggMTc5M2U2MGFiM2Y3YTBhMTYzNzYzZmIyYzZmMTNmMmM3
MTlhNTI5MS4uOTFiYjg4OWExMWRhYTQ0YjVmODQyYzgxOTYyMWIzOTBhOTU3Mjc5NSAxMDA2NDQK
LS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vcXQtNS4wLXdrMi9UZXN0RXhwZWN0YXRpb25zCisr
KyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL3F0LTUuMC13azIvVGVzdEV4cGVjdGF0aW9ucwpAQCAt
NjE4LDMgKzYxOCw2IEBAIHdlYmtpdC5vcmcvYi85OTE1NSBodHRwL3Rlc3RzL25hdmlnYXRpb24v
cGluZy1jcm9zcy1vcmlnaW4tZnJvbS1odHRwcy5odG1sCiAKICMgVXNlciBUaW1pbmcgaXMgbm90
IGVuYWJsZWQKIHdlYmtpdC5vcmcvYi84NDg5MyBodHRwL3Rlc3RzL3czYy93ZWJwZXJmL3Byb3Bv
c2FsL0ludGVsL3VzZXItdGltaW5nCisKKyMgUmVzb3VyY2UgVGltaW5nIGlzIG5vdCBlbmFibGUg
eWV0LCBza2lwIGl0Lgord2Via2l0Lm9yZy9iLzYxMTM4IGh0dHAvdGVzdHMvdzNjL3dlYnBlcmYv
c3VibWlzc2lvbi9JbnRlbC9yZXNvdXJjZS10aW1pbmcKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L3BsYXRmb3JtL3F0L1Rlc3RFeHBlY3RhdGlvbnMgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9xdC9U
ZXN0RXhwZWN0YXRpb25zCmluZGV4IDg3NTY5OWJjMWM2OWNiMTBmOWZhZjhlMWExMGQ0N2IyNGM5
MWE3OGEuLjBkMTg0YjU5ZmIxYTdlNmM1ZjVmNmQ5ZDJiYzgwOTBlZDcwYzdkZDcgMTAwNjQ0Ci0t
LSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL3F0L1Rlc3RFeHBlY3RhdGlvbnMKKysrIGIvTGF5b3V0
VGVzdHMvcGxhdGZvcm0vcXQvVGVzdEV4cGVjdGF0aW9ucwpAQCAtNTkxLDYgKzU5MSw5IEBAIGZh
c3QvZG9tL0dlb2xvY2F0aW9uL2Nvb3JkaW5hdGVzLWludGVyZmFjZS1hdHRyaWJ1dGVzLmh0bWwK
ICMgVXNlciBUaW1pbmcgaXMgbm90IGVuYWJsZWQKIHdlYmtpdC5vcmcvYi84NDg5MyBodHRwL3Rl
c3RzL3czYy93ZWJwZXJmL3N1Ym1pc3Npb24vSW50ZWwvdXNlci10aW1pbmcKIAorIyBSZXNvdXJj
ZSBUaW1pbmcgaXMgbm90IGVuYWJsZSB5ZXQsIHNraXAgaXQuCit3ZWJraXQub3JnL2IvNjExMzgg
aHR0cC90ZXN0cy93M2Mvd2VicGVyZi9zdWJtaXNzaW9uL0ludGVsL3Jlc291cmNlLXRpbWluZwor
CiAjID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PSAjCiAjICAgICAgIERyYWcgYW5kIERyb3AgU3VwcG9ydCBp
biBEUlQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjCiAjID09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PSAjCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93aW4vVGVz
dEV4cGVjdGF0aW9ucyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL3dpbi9UZXN0RXhwZWN0YXRpb25z
CmluZGV4IGEwMTQ5ODE1NGYzZThlYmM1ZWI2NGUwYjM4NjI0N2NjYjA1Mjc3YWIuLmJlZjAzYzA0
NDg3MjMwMWQyYTI3ODljNDcxMDdiM2ZlNWM4MTBmNWUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3Rz
L3BsYXRmb3JtL3dpbi9UZXN0RXhwZWN0YXRpb25zCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3Jt
L3dpbi9UZXN0RXhwZWN0YXRpb25zCkBAIC0yMzQ4LDMgKzIzNDgsNiBAQCB0cmFuc2l0aW9ucy9i
bGVuZG1vZGUtdHJhbnNpdGlvbnMuaHRtbAogCiAjIFVzZXIgVGltaW5nIGlzIG5vdCBlbmFibGVk
CiB3ZWJraXQub3JnL2IvODQ4OTMgaHR0cC90ZXN0cy93M2Mvd2VicGVyZi9zdWJtaXNzaW9uL0lu
dGVsL3VzZXItdGltaW5nCisKKyMgUmVzb3VyY2UgVGltaW5nIGlzIG5vdCBlbmFibGUgeWV0LCBz
a2lwIGl0Lgord2Via2l0Lm9yZy9iLzYxMTM4IGh0dHAvdGVzdHMvdzNjL3dlYnBlcmYvc3VibWlz
c2lvbi9JbnRlbC9yZXNvdXJjZS10aW1pbmcK
</data>

          </attachment>
      

    </bug>

</bugzilla>