<?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>109061</bug_id>
          
          <creation_ts>2013-02-06 09:24:40 -0800</creation_ts>
          <short_desc>&lt;link rel=&quot;apple-touch-icon&quot;&gt; tag is not honored on CNN.com, workflowy.com etc</short_desc>
          <delta_ts>2013-03-15 00:40:03 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>DOM</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>111266</dependson>
          
          <everconfirmed>0</everconfirmed>
          <reporter name="Ruslan Abdikeev">aruslan</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>abarth</cc>
    
    <cc>andersca</cc>
    
    <cc>beidson</cc>
    
    <cc>buildbot</cc>
    
    <cc>ddkilzer</cc>
    
    <cc>dglazkov</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>fishd</cc>
    
    <cc>jamesr</cc>
    
    <cc>japhet</cc>
    
    <cc>leviw</cc>
    
    <cc>mathias</cc>
    
    <cc>ojan.autocc</cc>
    
    <cc>philn</cc>
    
    <cc>rniwa</cc>
    
    <cc>syoichi</cc>
    
    <cc>tkent</cc>
    
    <cc>tkent+wkapi</cc>
    
    <cc>webkit.review.bot</cc>
    
    <cc>xan.lopez</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>826499</commentid>
    <comment_count>0</comment_count>
    <who name="Ruslan Abdikeev">aruslan</who>
    <bug_when>2013-02-06 09:24:40 -0800</bug_when>
    <thetext>No apple-touch-icons are fetched (and, hence, used) for CNN.con, workflowy.com etc.
The same holds for apple-touch-icon-precomposed.

Test steps:

Load http://aruslan.me/t1237621jsa/t.html
    &lt;html&gt;&lt;head&gt;
    &lt;link href=&quot;http://www.cnn.com/favicon.ie9.ico&quot; rel=&quot;Shortcut Icon&quot; type=&quot;image/x-icon&quot; /&gt;
    &lt;link href=&quot;http://i.cdn.turner.com/cnn/.e/img/3.0/global/misc/apple-touch-icon.png&quot; rel=&quot;apple-touch-icon&quot; type=&quot;image/png&quot; /&gt;
    &lt;title&gt;Title&lt;/title&gt;
    &lt;/head&gt;&lt;body&gt;Body.&lt;/body&gt;&lt;/html&gt;

Observed results:
1. favicon.ie9.ico is fetched and shown correctly.
2. apple-touch-icon is NOT fetched; instead, the request is made to the website to fetch &quot;default&quot; fallback apple-touch-icon.png.

Expected results:
1. favicon.ie9.ico is fetched and shown (no changes).
2. apple-touch-icon from CDN is fetched and shown.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>826510</commentid>
    <comment_count>1</comment_count>
      <attachid>186872</attachid>
    <who name="Ruslan Abdikeev">aruslan</who>
    <bug_when>2013-02-06 09:40:36 -0800</bug_when>
    <thetext>Created attachment 186872
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>826611</commentid>
    <comment_count>2</comment_count>
      <attachid>186887</attachid>
    <who name="Ruslan Abdikeev">aruslan</who>
    <bug_when>2013-02-06 11:47:18 -0800</bug_when>
    <thetext>Created attachment 186887
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>826669</commentid>
    <comment_count>3</comment_count>
      <attachid>186887</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-02-06 12:51:01 -0800</bug_when>
    <thetext>Comment on attachment 186887
Patch

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

New failing tests:
fast/dom/icon-url-list-apple-touch.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>826671</commentid>
    <comment_count>4</comment_count>
      <attachid>186887</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2013-02-06 12:51:50 -0800</bug_when>
    <thetext>Comment on attachment 186887
Patch

Attachment 186887 did not pass mac-ews (mac):
Output: http://queues.webkit.org/results/16393364</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>826782</commentid>
    <comment_count>5</comment_count>
      <attachid>186926</attachid>
    <who name="Ruslan Abdikeev">aruslan</who>
    <bug_when>2013-02-06 14:55:52 -0800</bug_when>
    <thetext>Created attachment 186926
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>826865</commentid>
    <comment_count>6</comment_count>
      <attachid>186926</attachid>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2013-02-06 16:31:34 -0800</bug_when>
    <thetext>Comment on attachment 186926
Patch

Why are we making a change that causes all desktop webkit clients to download a non-standard icon that was meant for mobile devices?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>826873</commentid>
    <comment_count>7</comment_count>
    <who name="Ruslan Abdikeev">aruslan</who>
    <bug_when>2013-02-06 16:36:31 -0800</bug_when>
    <thetext>(In reply to comment #6)
&gt; (From update of attachment 186926 [details])
&gt; Why are we making a change that causes all desktop webkit clients to download a non-standard icon that was meant for mobile devices?

Desktop clients shouldn&apos;t define ENABLE(TOUCH_ICON_LOADING).
When TOUCH_ICON_LOADING is not enabled, LinkRelAttribute ignores &lt;link rel&gt; for non-standard icons.
As the result, Document.cpp doesn&apos;t have them anyway.

This patch is to fix the error that causes all TOUCH_ICON_LOADING-enabled clients to never get touch icons.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>826912</commentid>
    <comment_count>8</comment_count>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2013-02-06 17:16:09 -0800</bug_when>
    <thetext>Good point, but...

There is a comment inside Document::ironURLs() that says:
// Include any icons where type = link, rel = &quot;shortcut icon&quot;.

Admittedly this is an example of why comments aren&apos;t good enforcement over more obvious naming in code.  But that point aside, this patch changes that behavior.

This method is about &quot;shortcut icons&quot; that should be considered in the course of normal favicon loading whereas apple-touch-icons were always meant to be loaded out of band from normal page loading.

We should rename iconURLs to shortcutIconURLs and leave it&apos;s behavior as-is.  If you need to get at the apple-touch-icons for whatever reason, they can be in a different accessor.

You could also refactor the current accessor to take an IconType parameter and leverage that for code reuse between the current behavior and the new behavior you hope to add.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>826934</commentid>
    <comment_count>9</comment_count>
    <who name="Ruslan Abdikeev">aruslan</who>
    <bug_when>2013-02-06 17:56:02 -0800</bug_when>
    <thetext>(In reply to comment #8)
&gt; We should rename iconURLs to shortcutIconURLs and leave it&apos;s behavior as-is.  If you need to get at the apple-touch-icons for whatever reason, they can be in a different accessor.
&gt; You could also refactor the current accessor to take an IconType parameter and leverage that for code reuse between the current behavior and the new behavior you hope to add.

Agreed; I&apos;m going to rename existing iconURLs() to shortcutIconURLs() keeping its semantics and add iconURLs(int iconTypes) that accepts a bitmask of IconTypes.
Additionally, I&apos;ll extend Internals.idl, fix tests and surrounding call-sites.

Are these names and parameters fine by you?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>826953</commentid>
    <comment_count>10</comment_count>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2013-02-06 18:09:53 -0800</bug_when>
    <thetext>Sounds reasonable.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>826977</commentid>
    <comment_count>11</comment_count>
      <attachid>186976</attachid>
    <who name="Ruslan Abdikeev">aruslan</who>
    <bug_when>2013-02-06 18:42:59 -0800</bug_when>
    <thetext>Created attachment 186976
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>826981</commentid>
    <comment_count>12</comment_count>
    <who name="Ruslan Abdikeev">aruslan</who>
    <bug_when>2013-02-06 18:45:26 -0800</bug_when>
    <thetext>(In reply to comment #10)
&gt; Sounds reasonable.

Please take a look, thanks!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>827022</commentid>
    <comment_count>13</comment_count>
      <attachid>186976</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2013-02-06 20:06:45 -0800</bug_when>
    <thetext>Comment on attachment 186976
Patch

Attachment 186976 did not pass mac-wk2-ews (mac-wk2):
Output: http://queues.webkit.org/results/16417050</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>827053</commentid>
    <comment_count>14</comment_count>
      <attachid>186976</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2013-02-06 22:08:29 -0800</bug_when>
    <thetext>Comment on attachment 186976
Patch

Attachment 186976 did not pass mac-ews (mac):
Output: http://queues.webkit.org/results/16409082</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>827068</commentid>
    <comment_count>15</comment_count>
      <attachid>186976</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2013-02-06 23:05:24 -0800</bug_when>
    <thetext>Comment on attachment 186976
Patch

Attachment 186976 did not pass win-ews (win):
Output: http://queues.webkit.org/results/16414112</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>827070</commentid>
    <comment_count>16</comment_count>
      <attachid>186976</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2013-02-06 23:10:10 -0800</bug_when>
    <thetext>Comment on attachment 186976
Patch

Attachment 186976 did not pass mac-ews (mac):
Output: http://queues.webkit.org/results/16403099</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>827583</commentid>
    <comment_count>17</comment_count>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2013-02-07 08:57:31 -0800</bug_when>
    <thetext>I&apos;ll hold off on review until ews is cleared up</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>829714</commentid>
    <comment_count>18</comment_count>
    <who name="Ruslan Abdikeev">aruslan</who>
    <bug_when>2013-02-11 08:14:06 -0800</bug_when>
    <thetext>(In reply to comment #17)
&gt; I&apos;ll hold off on review until ews is cleared up

It fails to build on gtk/mac/mac-wk2/win with

Undefined symbols for architecture x86_64:
  &quot;__ZN7WebCore8Document8iconURLsEv&quot;

Strangely, this means that something refers to (now gone) iconURLs(void), but only at the link time.  Otherwise it would have failed to compile the call to iconURLs().

Do we use precompiled libraries on gtk/mac/win?  How could I trigger a clobber build or something?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>829810</commentid>
    <comment_count>19</comment_count>
    <who name="Ruslan Abdikeev">aruslan</who>
    <bug_when>2013-02-11 09:52:17 -0800</bug_when>
    <thetext>gtk-ews fails with the reverse:

./.libs/libWebCoreInternals.a(./.libs/../Source/WebCore/testing/.libs/libWebCoreInternals_la-Internals.o):Internals.cpp:function WebCore::Internals::iconURLs(WebCore::Document*, int) const: error: undefined reference to &apos;WebCore::Document::iconURLs(int)&apos;

Looks like it uses correct headers, but links against a stale library.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>830236</commentid>
    <comment_count>20</comment_count>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2013-02-11 15:37:24 -0800</bug_when>
    <thetext>(In reply to comment #18)
&gt; (In reply to comment #17)
&gt; &gt; I&apos;ll hold off on review until ews is cleared up
&gt; 
&gt; It fails to build on gtk/mac/mac-wk2/win with
&gt; 
&gt; Undefined symbols for architecture x86_64:
&gt;   &quot;__ZN7WebCore8Document8iconURLsEv&quot;

WebCore in these ports export only specific symbols. See http://trac.webkit.org/wiki/ExportingSymbols .</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>830401</commentid>
    <comment_count>21</comment_count>
      <attachid>187737</attachid>
    <who name="Ruslan Abdikeev">aruslan</who>
    <bug_when>2013-02-11 17:55:17 -0800</bug_when>
    <thetext>Created attachment 187737
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>830410</commentid>
    <comment_count>22</comment_count>
    <who name="Levi Weintraub">leviw</who>
    <bug_when>2013-02-11 18:04:15 -0800</bug_when>
    <thetext>(In reply to comment #21)
&gt; Created an attachment (id=187737) [details]
&gt; Patch

Heads up in case you didn&apos;t notice, but this patch doesn&apos;t end up applying, so EWS gave up :(</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>830435</commentid>
    <comment_count>23</comment_count>
      <attachid>187746</attachid>
    <who name="Ruslan Abdikeev">aruslan</who>
    <bug_when>2013-02-11 18:36:25 -0800</bug_when>
    <thetext>Created attachment 187746
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>830449</commentid>
    <comment_count>24</comment_count>
    <who name="Ruslan Abdikeev">aruslan</who>
    <bug_when>2013-02-11 18:42:45 -0800</bug_when>
    <thetext>(In reply to comment #22)
&gt; (In reply to comment #21)
&gt; &gt; Created an attachment (id=187737) [details] [details]
&gt; &gt; Patch
&gt; 
&gt; Heads up in case you didn&apos;t notice, but this patch doesn&apos;t end up applying, so EWS gave up :(

Thanks, Levi, rebase FTW.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>830570</commentid>
    <comment_count>25</comment_count>
    <who name="Levi Weintraub">leviw</who>
    <bug_when>2013-02-11 22:39:42 -0800</bug_when>
    <thetext>(In reply to comment #24)
&gt; (In reply to comment #22)
&gt; &gt; (In reply to comment #21)
&gt; &gt; &gt; Created an attachment (id=187737) [details] [details] [details]
&gt; &gt; &gt; Patch
&gt; &gt; 
&gt; &gt; Heads up in case you didn&apos;t notice, but this patch doesn&apos;t end up applying, so EWS gave up :(
&gt; 
&gt; Thanks, Levi, rebase FTW.

Woo, green!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>831324</commentid>
    <comment_count>26</comment_count>
    <who name="Ruslan Abdikeev">aruslan</who>
    <bug_when>2013-02-12 15:15:19 -0800</bug_when>
    <thetext>(In reply to comment #25)
&gt; (In reply to comment #24)
&gt; &gt; (In reply to comment #22)
&gt; &gt; &gt; (In reply to comment #21)
&gt; &gt; &gt; &gt; Created an attachment (id=187737) [details] [details] [details] [details]
&gt; &gt; &gt; &gt; Patch
&gt; &gt; &gt; 
&gt; &gt; &gt; Heads up in case you didn&apos;t notice, but this patch doesn&apos;t end up applying, so EWS gave up :(
&gt; &gt; 
&gt; &gt; Thanks, Levi, rebase FTW.
&gt; 
&gt; Woo, green!

What are my next steps?
On Mac it says &quot;pass&quot; and then it fails (?), on Mac-WK2 it fails as well.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>831797</commentid>
    <comment_count>27</comment_count>
      <attachid>187746</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2013-02-13 04:15:29 -0800</bug_when>
    <thetext>Comment on attachment 187746
Patch

Attachment 187746 did not pass win-ews (win):
Output: http://queues.webkit.org/results/16454806</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>832006</commentid>
    <comment_count>28</comment_count>
      <attachid>188107</attachid>
    <who name="Ruslan Abdikeev">aruslan</who>
    <bug_when>2013-02-13 10:03:06 -0800</bug_when>
    <thetext>Created attachment 188107
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>832254</commentid>
    <comment_count>29</comment_count>
    <who name="Ruslan Abdikeev">aruslan</who>
    <bug_when>2013-02-13 13:20:47 -0800</bug_when>
    <thetext>Why I don&apos;t see Win in the EWS?
Green is good. Green is healthy.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>832687</commentid>
    <comment_count>30</comment_count>
      <attachid>188252</attachid>
    <who name="Ruslan Abdikeev">aruslan</who>
    <bug_when>2013-02-13 20:02:48 -0800</bug_when>
    <thetext>Created attachment 188252
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>832688</commentid>
    <comment_count>31</comment_count>
    <who name="Ruslan Abdikeev">aruslan</who>
    <bug_when>2013-02-13 20:04:21 -0800</bug_when>
    <thetext>(In reply to comment #25)
&gt; (In reply to comment #24)
&gt; &gt; (In reply to comment #22)
&gt; &gt; &gt; (In reply to comment #21)
&gt; &gt; &gt; &gt; Created an attachment (id=187737) [details] [details] [details] [details]
&gt; &gt; &gt; &gt; Patch
&gt; &gt; &gt; 
&gt; &gt; &gt; Heads up in case you didn&apos;t notice, but this patch doesn&apos;t end up applying, so EWS gave up :(
&gt; &gt; 
&gt; &gt; Thanks, Levi, rebase FTW.
&gt; 
&gt; Woo, green!

Rebased and re-submitted (the previous patch is green on all platforms, but for some reason EWS never put it to Win).  Assuming Win is green this time, this should be a final version.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>837034</commentid>
    <comment_count>32</comment_count>
      <attachid>189218</attachid>
    <who name="Ruslan Abdikeev">aruslan</who>
    <bug_when>2013-02-19 18:08:39 -0800</bug_when>
    <thetext>Created attachment 189218
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>838672</commentid>
    <comment_count>33</comment_count>
    <who name="Levi Weintraub">leviw</who>
    <bug_when>2013-02-21 12:10:56 -0800</bug_when>
    <thetext>Brady, would you take another look?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>840015</commentid>
    <comment_count>34</comment_count>
      <attachid>189837</attachid>
    <who name="Ruslan Abdikeev">aruslan</who>
    <bug_when>2013-02-22 14:48:16 -0800</bug_when>
    <thetext>Created attachment 189837
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>840018</commentid>
    <comment_count>35</comment_count>
    <who name="Ruslan Abdikeev">aruslan</who>
    <bug_when>2013-02-22 14:51:26 -0800</bug_when>
    <thetext>Brady -- would you take another look please?

Rebase. The last 4 patches are exactly the same, but first the &quot;win&quot; EWS bot had unrelated problems (eventually became &quot;green&quot;), and now &quot;cr-android&quot; EWS bot is failing and &quot;mac&quot; build had some problems apparently.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>841114</commentid>
    <comment_count>36</comment_count>
      <attachid>189837</attachid>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2013-02-25 10:59:57 -0800</bug_when>
    <thetext>Comment on attachment 189837
Patch

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

&gt; Source/WebCore/dom/Document.cpp:4466
&gt; +const Vector&lt;IconURL&gt;&amp; Document::shortcutIconURLs()
&gt; +{
&gt; +    // Include any icons where type = link, rel = &quot;shortcut icon&quot;.
&gt; +    return iconURLs(Favicon);
&gt; +}

Where does the &quot;Favicon&quot; symbol come from and...

&gt; Source/WebCore/dom/Document.cpp:4468
&gt; +const Vector&lt;IconURL&gt;&amp; Document::iconURLs(int iconTypes)

...why is this not an enum?

This should be an enum</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>841136</commentid>
    <comment_count>37</comment_count>
      <attachid>189837</attachid>
    <who name="Ruslan Abdikeev">aruslan</who>
    <bug_when>2013-02-25 11:26:45 -0800</bug_when>
    <thetext>Comment on attachment 189837
Patch

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

&gt;&gt; Source/WebCore/dom/Document.cpp:4466
&gt;&gt; +}
&gt; 
&gt; Where does the &quot;Favicon&quot; symbol come from and...

from WebCore::IconType enum (defined in Source/WebCore/dom/IconURL.h).

&gt;&gt; Source/WebCore/dom/Document.cpp:4468
&gt;&gt; +const Vector&lt;IconURL&gt;&amp; Document::iconURLs(int iconTypes)
&gt; 
&gt; ...why is this not an enum?
&gt; 
&gt; This should be an enum

It&apos;s a bitmask of requested icon types (this matches IconController::urlsForTypes(int iconTypes) API).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>842115</commentid>
    <comment_count>38</comment_count>
    <who name="Ruslan Abdikeev">aruslan</who>
    <bug_when>2013-02-26 09:46:18 -0800</bug_when>
    <thetext>(In reply to comment #36)
&gt; (From update of attachment 189837 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=189837&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/dom/Document.cpp:4466
&gt; &gt; +const Vector&lt;IconURL&gt;&amp; Document::shortcutIconURLs()
&gt; &gt; +{
&gt; &gt; +    // Include any icons where type = link, rel = &quot;shortcut icon&quot;.
&gt; &gt; +    return iconURLs(Favicon);
&gt; &gt; +}
&gt; 
&gt; Where does the &quot;Favicon&quot; symbol come from and...
&gt; 
&gt; &gt; Source/WebCore/dom/Document.cpp:4468
&gt; &gt; +const Vector&lt;IconURL&gt;&amp; Document::iconURLs(int iconTypes)
&gt; 
&gt; ...why is this not an enum?
&gt; 
&gt; This should be an enum

Hi Brady,
&quot;Favicon&quot; symbol comes from WebCore::IconType enum (defined in Source/WebCore/dom/IconURL.h), and
&gt;&gt; +const Vector&lt;IconURL&gt;&amp; Document::iconURLs(int iconTypes)
isn&apos;t enum because it&apos;s a bitmask of requested icon types.
This matches IconController::urlsForTypes(int iconTypes) API.

Please let me know if anything should be adjusted here.
Otherwise, I&apos;d appreciate if you could approve this patch.

Yours,
-- Ruslan.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>842201</commentid>
    <comment_count>39</comment_count>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2013-02-26 11:15:00 -0800</bug_when>
    <thetext>(In reply to comment #38)
&gt; (In reply to comment #36
&gt; 
&gt; Hi Brady,
&gt; &quot;Favicon&quot; symbol comes from WebCore::IconType enum (defined in Source/WebCore/dom/IconURL.h), and
&gt; &gt;&gt; +const Vector&lt;IconURL&gt;&amp; Document::iconURLs(int iconTypes)
&gt; isn&apos;t enum because it&apos;s a bitmask of requested icon types.
&gt; This matches IconController::urlsForTypes(int iconTypes) API.

Then please call it iconTypesMask, and no harm in updating the old one also.

r+ with that change.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>842202</commentid>
    <comment_count>40</comment_count>
      <attachid>189837</attachid>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2013-02-26 11:15:17 -0800</bug_when>
    <thetext>Comment on attachment 189837
Patch

r+ with the question naming change.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>842265</commentid>
    <comment_count>41</comment_count>
      <attachid>190340</attachid>
    <who name="Ruslan Abdikeev">aruslan</who>
    <bug_when>2013-02-26 12:32:28 -0800</bug_when>
    <thetext>Created attachment 190340
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>842268</commentid>
    <comment_count>42</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-02-26 12:34:41 -0800</bug_when>
    <thetext>Please wait for approval from abarth@webkit.org, dglazkov@chromium.org, fishd@chromium.org, jamesr@chromium.org or tkent@chromium.org before submitting, as this patch contains changes to the Chromium public API. See also https://trac.webkit.org/wiki/ChromiumWebKitAPI.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>842269</commentid>
    <comment_count>43</comment_count>
    <who name="Ruslan Abdikeev">aruslan</who>
    <bug_when>2013-02-26 12:36:56 -0800</bug_when>
    <thetext>(In reply to comment #40)
&gt; (From update of attachment 189837 [details])
&gt; r+ with the question naming change.

Renamed iconTypes to iconTypesMask in Document, Internals, IconController and Chromium WebFrame.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>842393</commentid>
    <comment_count>44</comment_count>
      <attachid>190340</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2013-02-26 14:50:01 -0800</bug_when>
    <thetext>Comment on attachment 190340
Patch

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

&gt; LayoutTests/fast/dom/icon-url-list-apple-touch.html:17
&gt; +    var supportsTouchIcons = window.internals.isTouchIconsLoadingSupported();

This is sort of unusual.  Typically we just have different expected.txt files when compile-time options change rather than having the test automagically adapt.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>842421</commentid>
    <comment_count>45</comment_count>
      <attachid>190340</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2013-02-26 15:11:22 -0800</bug_when>
    <thetext>Comment on attachment 190340
Patch

API change LGTM.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>845214</commentid>
    <comment_count>46</comment_count>
      <attachid>190974</attachid>
    <who name="Ruslan Abdikeev">aruslan</who>
    <bug_when>2013-03-01 08:50:14 -0800</bug_when>
    <thetext>Created attachment 190974
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>845490</commentid>
    <comment_count>47</comment_count>
    <who name="Ruslan Abdikeev">aruslan</who>
    <bug_when>2013-03-01 14:10:39 -0800</bug_when>
    <thetext>(In reply to comment #44)
&gt; (From update of attachment 190340 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=190340&amp;action=review
&gt; 
&gt; &gt; LayoutTests/fast/dom/icon-url-list-apple-touch.html:17
&gt; &gt; +    var supportsTouchIcons = window.internals.isTouchIconsLoadingSupported();
&gt; 
&gt; This is sort of unusual.  Typically we just have different expected.txt files when compile-time options change rather than having the test automagically adapt.

Hi Adam and Brady,

PTAL: I removed test auto-adaptation to apple-touch-icon loading and created two -expected -- one in the cross-platform with favicon only, and one in chromium with favicon and apple-touch-icon.

Yours,
-- Ruslan.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>845559</commentid>
    <comment_count>48</comment_count>
      <attachid>190974</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-03-01 15:25:01 -0800</bug_when>
    <thetext>Comment on attachment 190974
Patch

Attachment 190974 did not pass chromium-ews (chromium-xvfb):
Output: http://webkit-commit-queue.appspot.com/results/16877059

New failing tests:
fast/dom/icon-url-list-apple-touch.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>845595</commentid>
    <comment_count>49</comment_count>
      <attachid>190974</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-03-01 16:17:05 -0800</bug_when>
    <thetext>Comment on attachment 190974
Patch

Attachment 190974 did not pass chromium-ews (chromium-xvfb):
Output: http://webkit-commit-queue.appspot.com/results/16796239

New failing tests:
fast/dom/icon-url-list-apple-touch.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>845701</commentid>
    <comment_count>50</comment_count>
      <attachid>191088</attachid>
    <who name="Ruslan Abdikeev">aruslan</who>
    <bug_when>2013-03-01 18:48:48 -0800</bug_when>
    <thetext>Created attachment 191088
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>845705</commentid>
    <comment_count>51</comment_count>
    <who name="Ruslan Abdikeev">aruslan</who>
    <bug_when>2013-03-01 18:54:28 -0800</bug_when>
    <thetext>Moved the expectations from chromium/ to chromium-android/ due to chromium-linux failing because it doesn&apos;t ENABLE TOUCH_ICON_LOADING.

I believe some of the chromium-mac targets could be enabling touch icons loading, in which case the expectations should be copied there from chromium-android.

To summarize, I believe the auto-adapting test was a simpler design and it didn&apos;t require heavy maintenance.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>845939</commentid>
    <comment_count>52</comment_count>
      <attachid>191088</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2013-03-02 23:32:51 -0800</bug_when>
    <thetext>Comment on attachment 191088
Patch

This patch looks good.  Thank you for taking the expected.txt route.  I can understand why it seems like the adapting test might be easier when writing the test, but this approach is consistent with how we manage other platform differences and is easier to maintain in the long run.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>845981</commentid>
    <comment_count>53</comment_count>
      <attachid>191088</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-03-03 01:56:08 -0800</bug_when>
    <thetext>Comment on attachment 191088
Patch

Clearing flags on attachment: 191088

Committed r144567: &lt;http://trac.webkit.org/changeset/144567&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>845982</commentid>
    <comment_count>54</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-03-03 01:56:16 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>845988</commentid>
    <comment_count>55</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-03-03 02:29:49 -0800</bug_when>
    <thetext>Re-opened since this is blocked by bug 111266</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>846002</commentid>
    <comment_count>56</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2013-03-03 04:01:13 -0800</bug_when>
    <thetext>(In reply to comment #55)
&gt; Re-opened since this is blocked by bug 111266

The patch caused Apple Windows build failures:

e.g.

19&gt;LINK : C:\cygwin\home\buildbot\slave\win-debug\build\WebKitBuild\Debug\bin\DumpRenderTree.dll not found or not built by the last incremental link; performing full link
19&gt;   Creating library C:\cygwin\home\buildbot\slave\win-debug\build\WebKitBuild\Debug\lib\DumpRenderTree.lib and object C:\cygwin\home\buildbot\slave\win-debug\build\WebKitBuild\Debug\lib\DumpRenderTree.exp
19&gt;WebCoreTestSupport.lib(JSInternals.obj) : error LNK2019: unresolved external symbol &quot;class JSC::JSValue __cdecl WebCore::toJS(class JSC::ExecState *,class WebCore::JSDOMGlobalObject *,class WebCore::CSSStyleDeclaration *)&quot; (?toJS@WebCore@@YA?AVJSValue@JSC@@PAVExecState@3@PAVJSDOMGlobalObject@1@PAVCSSStyleDeclaration@1@@Z) referenced in function &quot;__int64 __fastcall WebCore::jsInternalsPrototypeFunctionComputedStyleIncludingVisitedInfo(class JSC::ExecState *)&quot; (?jsInternalsPrototypeFunctionComputedStyleIncludingVisitedInfo@WebCore@@YI_JPAVExecState@JSC@@@Z)

http://build.webkit.org/builders/Apple%20Win%20Debug%20%28Build%29/builds/63456/steps/compile-webkit/logs/stdio

It wasn’t a simple missing symbol error. It looked like something wasn’t compliling.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>846519</commentid>
    <comment_count>57</comment_count>
    <who name="Ruslan Abdikeev">aruslan</who>
    <bug_when>2013-03-04 08:28:45 -0800</bug_when>
    <thetext>(In reply to comment #56)
&gt; The patch caused Apple Windows build failures:
http://build.webkit.org/builders/Apple%20Win%20Debug%20%28Build%29/builds/63456/steps/compile-webkit/logs/stdio
&gt; 
&gt; It wasn’t a simple missing symbol error. It looked like something wasn’t compliling.

Thank you for jumping in on the issue!

Given that the breakage wasn&apos;t caused by this patch (reverting this patch didn&apos;t help, and the build was fixed subsequently with http://trac.webkit.org/changeset/144573), I&apos;m going to re-land it

Objections?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>846540</commentid>
    <comment_count>58</comment_count>
    <who name="Ruslan Abdikeev">aruslan</who>
    <bug_when>2013-03-04 08:58:16 -0800</bug_when>
    <thetext>(In reply to comment #57)
&gt; (In reply to comment #56)
&gt; &gt; The patch caused Apple Windows build failures:
&gt; http://build.webkit.org/builders/Apple%20Win%20Debug%20%28Build%29/builds/63456/steps/compile-webkit/logs/stdio
&gt; &gt; 
&gt; &gt; It wasn’t a simple missing symbol error. It looked like something wasn’t compliling.
&gt; 
&gt; Thank you for jumping in on the issue!
&gt; 
&gt; Given that the breakage wasn&apos;t caused by this patch (reverting this patch didn&apos;t help, and the build was fixed subsequently with http://trac.webkit.org/changeset/144573), I&apos;m going to re-land it
&gt; 
&gt; Objections?

P.S. The revert (http://trac.webkit.org/changeset/144572) failed with the same link errors as this patch:
http://build.webkit.org/builders/Apple%20Win%20Debug%20%28Build%29/builds/63457

The real fix was submitted in a subsequent patch (http://trac.webkit.org/changeset/144573) and made the tree green:
http://build.webkit.org/builders/Apple%20Win%20Debug%20%28Build%29/builds/63458

That is, unless I&apos;m reading it wrong.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>846603</commentid>
    <comment_count>59</comment_count>
      <attachid>191267</attachid>
    <who name="Ruslan Abdikeev">aruslan</who>
    <bug_when>2013-03-04 10:09:42 -0800</bug_when>
    <thetext>Created attachment 191267
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>846613</commentid>
    <comment_count>60</comment_count>
    <who name="Ruslan Abdikeev">aruslan</who>
    <bug_when>2013-03-04 10:37:12 -0800</bug_when>
    <thetext>(In reply to comment #59)
&gt; Created an attachment (id=191267) [details]
&gt; Patch

This is a rebased patch.

Previously the patch failed to compile on apple-win, because WebKitBuild\Debug\obj\WebCore\DerivedSources\JSInternals.cpp had to be regenerated, but there was an unrelated issue preventing this from happening.

The build just before the revert successfully compiled everything related to this patch, but was blocked on the other issue:
http://build.webkit.org/builders/Apple%20Win%20Debug%20%28Build%29/builds/63456/steps/compile-webkit/logs/stdio

Reverting the patch didn&apos;t help, as the unrelated issue remained.

Asking for permission to re-land the patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>846762</commentid>
    <comment_count>61</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2013-03-04 13:06:51 -0800</bug_when>
    <thetext>&gt; Asking for permission to re-land the patch.

The http://build.webkit.org/waterfall?show=Apple%20Win%20Debug%20(Build) bot is current not compiling.  I&apos;d prefer to re-land your patch when the bot is compiling so that we can verify that it does compile...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>846764</commentid>
    <comment_count>62</comment_count>
    <who name="Ruslan Abdikeev">aruslan</who>
    <bug_when>2013-03-04 13:08:02 -0800</bug_when>
    <thetext>(In reply to comment #61)
&gt; &gt; Asking for permission to re-land the patch.
&gt; 
&gt; The http://build.webkit.org/waterfall?show=Apple%20Win%20Debug%20(Build) bot is current not compiling.  I&apos;d prefer to re-land your patch when the bot is compiling so that we can verify that it does compile...

Sure thing. Thanks, Adam!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>846982</commentid>
    <comment_count>63</comment_count>
      <attachid>191267</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2013-03-04 16:18:54 -0800</bug_when>
    <thetext>Comment on attachment 191267
Patch

Windows is building again.  Let&apos;s try landing this patch again.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>847017</commentid>
    <comment_count>64</comment_count>
      <attachid>191267</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-03-04 16:44:36 -0800</bug_when>
    <thetext>Comment on attachment 191267
Patch

Clearing flags on attachment: 191267

Committed r144696: &lt;http://trac.webkit.org/changeset/144696&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>847018</commentid>
    <comment_count>65</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-03-04 16:44:44 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>847067</commentid>
    <comment_count>66</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2013-03-04 17:17:39 -0800</bug_when>
    <thetext>http://build.webkit.org/builders/Apple%20Win%20Debug%20%28Build%29/builds/63524 confirms that this patch builds correct for apple-win.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>186872</attachid>
            <date>2013-02-06 09:40:36 -0800</date>
            <delta_ts>2013-02-06 11:47:16 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-109061-20130206093713.patch</filename>
            <type>text/plain</type>
            <size>1465</size>
            <attacher name="Ruslan Abdikeev">aruslan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQyMDAwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNWUxNDEzMjk2Y2Y4MmEx
YWU1ODIzZjc4ZDNiNjQ4ZTdiMzBjNjBiZi4uNTJiYzBkMjZkOTk3NWI1NDAzYzVlMzM1MDAyMjA3
MmI2NWNiNWVhNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE1IEBACisyMDEzLTAyLTA2ICBSdXNs
YW4gQWJkaWtlZXYgIDxhcnVzbGFuQGNocm9taXVtLm9yZz4KKworICAgICAgICA8bGluayByZWw9
ImFwcGxlLXRvdWNoLWljb24iPiB0YWcgaXMgbm90IGhvbm9yZWQgb24gQ05OLmNvbSwgd29ya2Zs
b3d5LmNvbSBldGMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTEwOTA2MQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgIEljb25Db250cm9sbGVyLmNwcCBleHBlY3RzIHRoYXQgRG9jdW1lbnQuY3BwIGljb25VUkxz
KCkgcmV0dXJucyBhbGwgdHlwZXMgb2YgaWNvbnMuCisKKyAgICAgICAgKiBkb20vRG9jdW1lbnQu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnQ6Omljb25VUkxzKToKKwogMjAxMy0wMi0w
NiAgVnNldm9sb2QgVmxhc292ICA8dnNldmlrQGNocm9taXVtLm9yZz4KIAogICAgICAgICBXZWIg
SW5zcGVjdG9yOiBSZW1vdmUgaXNTbmlwcGV0IGZpZWxkIGZyb20gRmlsZURlc2NyaXB0b3IgYW5k
IFVJU291cmNlQ29kZS4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCmluZGV4IDYyMTQ3NTZiYzE0Mzg5
MzE2OTk2NGRlYWNmZjcyY2FmYTcyMDM2YjIuLmM5YTQ4Mzg0ZTQ2OTI5OWVlNjRkYTM2ZDUyYmFi
NmY1OWUwZjcxNGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcApAQCAtNDQ4Myw3ICs0NDgzLDcg
QEAgY29uc3QgVmVjdG9yPEljb25VUkw+JiBEb2N1bWVudDo6aWNvblVSTHMoKQogICAgICAgICBp
ZiAoIWNoaWxkLT5oYXNUYWdOYW1lKGxpbmtUYWcpKQogICAgICAgICAgICAgY29udGludWU7CiAg
ICAgICAgIEhUTUxMaW5rRWxlbWVudCogbGlua0VsZW1lbnQgPSBzdGF0aWNfY2FzdDxIVE1MTGlu
a0VsZW1lbnQqPihjaGlsZCk7Ci0gICAgICAgIGlmIChsaW5rRWxlbWVudC0+aWNvblR5cGUoKSAh
PSBGYXZpY29uKQorICAgICAgICBpZiAobGlua0VsZW1lbnQtPmljb25UeXBlKCkgPT0gSW52YWxp
ZEljb24pCiAgICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgaWYgKGxpbmtFbGVtZW50LT5o
cmVmKCkuaXNFbXB0eSgpKQogICAgICAgICAgICAgY29udGludWU7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>186887</attachid>
            <date>2013-02-06 11:47:18 -0800</date>
            <delta_ts>2013-02-06 14:55:49 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-109061-20130206114355.patch</filename>
            <type>text/plain</type>
            <size>5106</size>
            <attacher name="Ruslan Abdikeev">aruslan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQyMDAwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNWUxNDEzMjk2Y2Y4MmEx
YWU1ODIzZjc4ZDNiNjQ4ZTdiMzBjNjBiZi4uNTJiYzBkMjZkOTk3NWI1NDAzYzVlMzM1MDAyMjA3
MmI2NWNiNWVhNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE1IEBACisyMDEzLTAyLTA2ICBSdXNs
YW4gQWJkaWtlZXYgIDxhcnVzbGFuQGNocm9taXVtLm9yZz4KKworICAgICAgICA8bGluayByZWw9
ImFwcGxlLXRvdWNoLWljb24iPiB0YWcgaXMgbm90IGhvbm9yZWQgb24gQ05OLmNvbSwgd29ya2Zs
b3d5LmNvbSBldGMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTEwOTA2MQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgIEljb25Db250cm9sbGVyLmNwcCBleHBlY3RzIHRoYXQgRG9jdW1lbnQuY3BwIGljb25VUkxz
KCkgcmV0dXJucyBhbGwgdHlwZXMgb2YgaWNvbnMuCisKKyAgICAgICAgKiBkb20vRG9jdW1lbnQu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnQ6Omljb25VUkxzKToKKwogMjAxMy0wMi0w
NiAgVnNldm9sb2QgVmxhc292ICA8dnNldmlrQGNocm9taXVtLm9yZz4KIAogICAgICAgICBXZWIg
SW5zcGVjdG9yOiBSZW1vdmUgaXNTbmlwcGV0IGZpZWxkIGZyb20gRmlsZURlc2NyaXB0b3IgYW5k
IFVJU291cmNlQ29kZS4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCmluZGV4IDYyMTQ3NTZiYzE0Mzg5
MzE2OTk2NGRlYWNmZjcyY2FmYTcyMDM2YjIuLmM5YTQ4Mzg0ZTQ2OTI5OWVlNjRkYTM2ZDUyYmFi
NmY1OWUwZjcxNGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcApAQCAtNDQ4Myw3ICs0NDgzLDcg
QEAgY29uc3QgVmVjdG9yPEljb25VUkw+JiBEb2N1bWVudDo6aWNvblVSTHMoKQogICAgICAgICBp
ZiAoIWNoaWxkLT5oYXNUYWdOYW1lKGxpbmtUYWcpKQogICAgICAgICAgICAgY29udGludWU7CiAg
ICAgICAgIEhUTUxMaW5rRWxlbWVudCogbGlua0VsZW1lbnQgPSBzdGF0aWNfY2FzdDxIVE1MTGlu
a0VsZW1lbnQqPihjaGlsZCk7Ci0gICAgICAgIGlmIChsaW5rRWxlbWVudC0+aWNvblR5cGUoKSAh
PSBGYXZpY29uKQorICAgICAgICBpZiAobGlua0VsZW1lbnQtPmljb25UeXBlKCkgPT0gSW52YWxp
ZEljb24pCiAgICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgaWYgKGxpbmtFbGVtZW50LT5o
cmVmKCkuaXNFbXB0eSgpKQogICAgICAgICAgICAgY29udGludWU7CmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggNTFhNDNjODdm
NmUyMzk5MDdlNmVjMGExNzkwZGVjMmQzNWUzYjZkYi4uNzMwZjBjZDJjMmQxNjlhZjY0OWJkZGIw
MzcwZDY2ZTJkZGU4NTZmZSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBi
L0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE1IEBACisyMDEzLTAyLTA2ICBSdXNs
YW4gQWJkaWtlZXYgIDxhcnVzbGFuQGNocm9taXVtLm9yZz4KKworICAgICAgICA8bGluayByZWw9
ImFwcGxlLXRvdWNoLWljb24iPiB0YWcgaXMgbm90IGhvbm9yZWQgb24gQ05OLmNvbSwgd29ya2Zs
b3d5LmNvbSBldGMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTEwOTA2MQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgIEFkZGVkIGEgdGVzdCB0byBjaGVjayB0aGF0IGFwcGxlLXRvdWNoLWljb25zIGFyZSBjb3Jy
ZWN0bHkgaW5jbHVkZWQgaW4gdGhlIGxpc3QuCisKKyAgICAgICAgKiBmYXN0L2RvbS9pY29uLXVy
bC1saXN0LWFwcGxlLXRvdWNoLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogZmFzdC9k
b20vaWNvbi11cmwtbGlzdC1hcHBsZS10b3VjaC5odG1sOiBBZGRlZC4KKwogMjAxMy0wMi0wNiAg
VnNldm9sb2QgVmxhc292ICA8dnNldmlrQGNocm9taXVtLm9yZz4KIAogICAgICAgICBXZWIgSW5z
cGVjdG9yOiBSZW1vdmUgaXNTbmlwcGV0IGZpZWxkIGZyb20gRmlsZURlc2NyaXB0b3IgYW5kIFVJ
U291cmNlQ29kZS4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL2ljb24tdXJsLWxp
c3QtYXBwbGUtdG91Y2gtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vaWNvbi11
cmwtbGlzdC1hcHBsZS10b3VjaC1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOWJlOTRhNWY0YjI1
YmNkYjU0MzY2NTVlZDA4NzhhM2FhYjMxYzA5NAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRl
c3RzL2Zhc3QvZG9tL2ljb24tdXJsLWxpc3QtYXBwbGUtdG91Y2gtZXhwZWN0ZWQudHh0CkBAIC0w
LDAgKzEsOCBAQAorZXhwZWN0ZWRVUkxbMF0gaXM6IGh0dHA6Ly90ZXN0LmNvbS9pL3RvdWNoLXBy
ZWNvbXBvc2VkLnBuZworZXhwZWN0ZWRVUkxbMV0gaXM6IGh0dHA6Ly90ZXN0LmNvbS9pL3RvdWNo
LnBuZworZXhwZWN0ZWRVUkxbMl0gaXM6IGh0dHA6Ly90ZXN0LmNvbS9vbGRmYXZpY29uLmljbwor
YWN0dWFsVVJMc1swXSBpczogaHR0cDovL3Rlc3QuY29tL2kvdG91Y2gtcHJlY29tcG9zZWQucG5n
CithY3R1YWxVUkxzWzFdIGlzOiBodHRwOi8vdGVzdC5jb20vaS90b3VjaC5wbmcKK2FjdHVhbFVS
THNbMl0gaXM6IGh0dHA6Ly90ZXN0LmNvbS9vbGRmYXZpY29uLmljbworUEFTUyBVUkwgbGlzdCBt
YXRjaGVzIGV4cGVjdGVkCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL2ljb24t
dXJsLWxpc3QtYXBwbGUtdG91Y2guaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL2ljb24tdXJs
LWxpc3QtYXBwbGUtdG91Y2guaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5kNWI1MDNhMzQ0MWEzMmQ0N2U5ZWI3
NmUxNDU3MDczNjdjMzg1ZGMzCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9k
b20vaWNvbi11cmwtbGlzdC1hcHBsZS10b3VjaC5odG1sCkBAIC0wLDAgKzEsNTAgQEAKKzxodG1s
PgorPGhlYWQ+Cis8dGl0bGU+T3JpZ2luYWwgVGl0bGU8L3RpdGxlPgorPGxpbmsgcmVsPSJzaG9y
dGN1dCBpY29uIiB0eXBlPSJpbWFnZS94LWljb24iIGhyZWY9Imh0dHA6Ly90ZXN0LmNvbS9vbGRm
YXZpY29uLmljbyIvPgorPGxpbmsgcmVsPSJhcHBsZS10b3VjaC1pY29uIiB0eXBlPSJpbWFnZS9w
bmciIGhyZWY9Imh0dHA6Ly90ZXN0LmNvbS9pL3RvdWNoLnBuZyIvPgorPGxpbmsgcmVsPSJhcHBs
ZS10b3VjaC1pY29uLXByZWNvbXBvc2VkIiB0eXBlPSJpbWFnZS9wbmciIGhyZWY9Imh0dHA6Ly90
ZXN0LmNvbS9pL3RvdWNoLXByZWNvbXBvc2VkLnBuZyIvPgorPHNjcmlwdCBzcmM9Ii4uL2pzL3Jl
c291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0PgorCitmdW5jdGlvbiBy
dW5UZXN0cygpIHsKKyAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpCisgICAgICAgIHRlc3RSdW5u
ZXIuZHVtcEFzVGV4dCgpOworCisgICAgLy8gRmV0Y2ggZXhwZWN0ZWQgVVJMcyBmcm9tIDxsaW5r
PiB0YWdzLgorICAgIC8vIE5vdGUgdGhhdCB0aGUgZXhwZWN0ZWQgb3JkZXIgaXMgcmV2ZXJzZSB0
byBlbnN1cmUgdGhhdCBpY29ucyBzZWVuIGxhdGVyCisgICAgLy8gdGFrZSBwcmVjZWRlbmNlIGFz
IHJlcXVpcmVkIGJ5IHRoZSBzcGVjLgorICAgIHZhciBpY29uVGFncyA9IGRvY3VtZW50LmdldEVs
ZW1lbnRzQnlUYWdOYW1lKCJsaW5rIik7CisgICAgdmFyIGV4cGVjdGVkVVJMcyA9IFtdOworICAg
IGZvciAodmFyIGkgPSAwOyBpIDwgaWNvblRhZ3MubGVuZ3RoOyBpKyspCisgICAgICAgIGV4cGVj
dGVkVVJMc1tpXSA9IGljb25UYWdzW2ldLmhyZWY7CisgICAgZXhwZWN0ZWRVUkxzLnJldmVyc2Uo
KTsKKyAgICBmb3IgKHZhciBpID0gMDsgaSA8IGV4cGVjdGVkVVJMcy5sZW5ndGg7IGkrKykKKyAg
ICAgICAgZGVidWcoJ2V4cGVjdGVkVVJMWycgKyBpICsgJ10gaXM6ICcgKyBleHBlY3RlZFVSTHNb
aV0pOworCisgICAgLy8gRmV0Y2ggdGhlIGFjdHVhbCBsaXN0IG9mIGljb24gVVJMcy4KKyAgICB2
YXIgYWN0dWFsVVJMcyA9IHdpbmRvdy5pbnRlcm5hbHMuaWNvblVSTHMoZG9jdW1lbnQpOworICAg
IGZvciAodmFyIGkgPSAwOyBpIDwgaWNvblRhZ3MubGVuZ3RoOyBpKyspCisgICAgICAgIGRlYnVn
KCdhY3R1YWxVUkxzWycgKyBpICsgJ10gaXM6ICcgKyBhY3R1YWxVUkxzW2ldKTsKKworICAgIC8v
IENoZWNrIHRoYXQgdGhlIFVSTCBsaXN0IGluIHRoZSBkb2N1bWVudCBpcyBhcyB3ZSBleHBlY3Qu
CisgICAgdmFyIHN1Y2Nlc3MgPSBleHBlY3RlZFVSTHMubGVuZ3RoID09IGFjdHVhbFVSTHMubGVu
Z3RoOworICAgIGZvciAodmFyIGkgPSAwOyBzdWNjZXNzICYmIGkgPCBhY3R1YWxVUkxzLmxlbmd0
aDsgaSsrKSB7CisgICAgICAgIGlmIChleHBlY3RlZFVSTHNbaV0gIT0gYWN0dWFsVVJMc1tpXSkg
eworICAgICAgICAgICAgZGVidWcoJ21pc21hdGNoIGV4cGVjdGVkPScgKyBleHBlY3RlZFVSTHNb
aV0gKworICAgICAgICAgICAgICAgICAgICAnIGFjdHVhbD0nICsgYWN0dWFsVVJMc1tpXSk7Cisg
ICAgICAgICAgICBzdWNjZXNzID0gZmFsc2U7CisgICAgICAgIH0KKyAgICB9CisgICAgaWYgKHN1
Y2Nlc3MpCisgICAgICAgIHRlc3RQYXNzZWQoJ1VSTCBsaXN0IG1hdGNoZXMgZXhwZWN0ZWQnKTsK
KyAgICBlbHNlCisgICAgICAgIHRlc3RGYWlsZWQoJ1VSTCBsaXN0IGRvZXMgbm90IG1hdGNoIGV4
cGVjdGVkJyk7Cit9CisKKzwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHkgb25sb2FkPSdydW5UZXN0
cygpOyc+Cis8L2Rpdj4KKzwvYm9keT4KKzwvaHRtbD4K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>186926</attachid>
            <date>2013-02-06 14:55:52 -0800</date>
            <delta_ts>2013-02-06 18:42:56 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-109061-20130206145229.patch</filename>
            <type>text/plain</type>
            <size>7279</size>
            <attacher name="Ruslan Abdikeev">aruslan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQyMDAwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNWUxNDEzMjk2Y2Y4MmEx
YWU1ODIzZjc4ZDNiNjQ4ZTdiMzBjNjBiZi4uNjc4MGU3NTFhYzllNTFiODc5MzU2M2RlOGRmNDgw
MTZlOTM1NmY5MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIxIEBACisyMDEzLTAyLTA2ICBSdXNs
YW4gQWJkaWtlZXYgIDxhcnVzbGFuQGNocm9taXVtLm9yZz4KKworICAgICAgICA8bGluayByZWw9
ImFwcGxlLXRvdWNoLWljb24iPiB0YWcgaXMgbm90IGhvbm9yZWQgb24gQ05OLmNvbSwgd29ya2Zs
b3d5LmNvbSBldGMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTEwOTA2MQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgIEZpeGVkIERvY3VtZW50LmNwcDogSWNvbkNvbnRyb2xsZXIgZXhwZWN0cyB0aGF0IGljb25V
UkxzKCkgcmV0dXJucyBhbGwgdHlwZXMgb2YgaWNvbnMuCisgICAgICAgIEFkZGVkIGlzVG91Y2hJ
Y29uc0xvYWRpbmdTdXBwb3J0ZWQoKSBmb3IgdGVzdHMuCisKKyAgICAgICAgKiBkb20vRG9jdW1l
bnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnQ6Omljb25VUkxzKToKKyAgICAgICAg
KiB0ZXN0aW5nL0ludGVybmFscy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbnRlcm5hbHM6Omlz
VG91Y2hJY29uc0xvYWRpbmdTdXBwb3J0ZWQpOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAg
ICogdGVzdGluZy9JbnRlcm5hbHMuaDoKKyAgICAgICAgKiB0ZXN0aW5nL0ludGVybmFscy5pZGw6
CisKIDIwMTMtMDItMDYgIFZzZXZvbG9kIFZsYXNvdiAgPHZzZXZpa0BjaHJvbWl1bS5vcmc+CiAK
ICAgICAgICAgV2ViIEluc3BlY3RvcjogUmVtb3ZlIGlzU25pcHBldCBmaWVsZCBmcm9tIEZpbGVE
ZXNjcmlwdG9yIGFuZCBVSVNvdXJjZUNvZGUuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9k
b20vRG9jdW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcAppbmRleCA2
MjE0NzU2YmMxNDM4OTMxNjk5NjRkZWFjZmY3MmNhZmE3MjAzNmIyLi5jOWE0ODM4NGU0NjkyOTll
ZTY0ZGEzNmQ1MmJhYjZmNTllMGY3MTRmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20v
RG9jdW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKQEAgLTQ0
ODMsNyArNDQ4Myw3IEBAIGNvbnN0IFZlY3RvcjxJY29uVVJMPiYgRG9jdW1lbnQ6Omljb25VUkxz
KCkKICAgICAgICAgaWYgKCFjaGlsZC0+aGFzVGFnTmFtZShsaW5rVGFnKSkKICAgICAgICAgICAg
IGNvbnRpbnVlOwogICAgICAgICBIVE1MTGlua0VsZW1lbnQqIGxpbmtFbGVtZW50ID0gc3RhdGlj
X2Nhc3Q8SFRNTExpbmtFbGVtZW50Kj4oY2hpbGQpOwotICAgICAgICBpZiAobGlua0VsZW1lbnQt
Pmljb25UeXBlKCkgIT0gRmF2aWNvbikKKyAgICAgICAgaWYgKGxpbmtFbGVtZW50LT5pY29uVHlw
ZSgpID09IEludmFsaWRJY29uKQogICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgIGlmIChs
aW5rRWxlbWVudC0+aHJlZigpLmlzRW1wdHkoKSkKICAgICAgICAgICAgIGNvbnRpbnVlOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuY3BwIGIvU291cmNlL1dl
YkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuY3BwCmluZGV4IDNmNzgyNWRjMzk3MzFkN2FkNmY5ZDRm
MDZmMzczY2Q1ODAyM2Y2YjYuLjUzY2UzMWU4Yzg4ZmEyZDVlYjE0ZDcxNGE1MTNlMjI5ZjZmYWE4
YTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5jcHAKQEAgLTE2NzUsNiArMTY3NSwx
NSBAQCBWZWN0b3I8U3RyaW5nPiBJbnRlcm5hbHM6Omljb25VUkxzKERvY3VtZW50KiBkb2N1bWVu
dCkgY29uc3QKICAgICByZXR1cm4gYXJyYXk7CiB9CiAKK2Jvb2wgSW50ZXJuYWxzOjppc1RvdWNo
SWNvbnNMb2FkaW5nU3VwcG9ydGVkKCkgY29uc3QKK3sKKyNpZiBFTkFCTEUoVE9VQ0hfSUNPTl9M
T0FESU5HKQorICAgIHJldHVybiB0cnVlOworI2Vsc2UKKyAgICByZXR1cm4gZmFsc2U7CisjZW5k
aWYKK30KKwogaW50IEludGVybmFsczo6bnVtYmVyT2ZQYWdlcyhmbG9hdCBwYWdlV2lkdGgsIGZs
b2F0IHBhZ2VIZWlnaHQpCiB7CiAgICAgaWYgKCFmcmFtZSgpKQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaCBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50
ZXJuYWxzLmgKaW5kZXggODMxNGY5MzliNWFiY2ViZDIwNzg5MGNlOTM0M2MyZjVhNjcxN2Q3Yi4u
Y2NlYzkxOGIwNzk4Njc3NDRiYTMwNjIwNDY5NDZjMTFlODY1MGUyYyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0
aW5nL0ludGVybmFscy5oCkBAIC0yNDIsNiArMjQyLDcgQEAgcHVibGljOgogCiAgICAgaW50IHBh
Z2VOdW1iZXIoRWxlbWVudCosIGZsb2F0IHBhZ2VXaWR0aCA9IDgwMCwgZmxvYXQgcGFnZUhlaWdo
dCA9IDYwMCk7CiAgICAgVmVjdG9yPFN0cmluZz4gaWNvblVSTHMoRG9jdW1lbnQqKSBjb25zdDsK
KyAgICBib29sIGlzVG91Y2hJY29uc0xvYWRpbmdTdXBwb3J0ZWQoKSBjb25zdDsKIAogICAgIGlu
dCBudW1iZXJPZlBhZ2VzKGZsb2F0IHBhZ2VXaWR0aEluUGl4ZWxzID0gODAwLCBmbG9hdCBwYWdl
SGVpZ2h0SW5QaXhlbHMgPSA2MDApOwogICAgIFN0cmluZyBwYWdlUHJvcGVydHkoU3RyaW5nLCBp
bnQsIEV4Y2VwdGlvbkNvZGUmID0gQVNTRVJUX05PX0VYQ0VQVElPTikgY29uc3Q7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5pZGwgYi9Tb3VyY2UvV2ViQ29y
ZS90ZXN0aW5nL0ludGVybmFscy5pZGwKaW5kZXggZjdhOTdhYjg4ZWYzNTk0ZGVkYjAwZTNmMjBm
ODZiNTQ0NjhlMzhkMC4uZGM5MWExZTJkNzI5YmI1MDFiZTAzY2M0ZjIyZTY0Y2YzZWQyNmNlNCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaWRsCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmlkbApAQCAtMjA5LDYgKzIwOSw3IEBACiAg
ICAgRE9NU3RyaW5nIGNvdW50ZXJWYWx1ZShpbiBFbGVtZW50IGVsZW1lbnQpOwogICAgIGxvbmcg
cGFnZU51bWJlcihpbiBFbGVtZW50IGVsZW1lbnQsIGluIFtPcHRpb25hbF0gZmxvYXQgcGFnZVdp
ZHRoLCBpbiBbT3B0aW9uYWxdIGZsb2F0IHBhZ2VIZWlnaHQpOwogICAgIERPTVN0cmluZ1tdIGlj
b25VUkxzKGluIERvY3VtZW50IGRvY3VtZW50KTsKKyAgICBib29sZWFuIGlzVG91Y2hJY29uc0xv
YWRpbmdTdXBwb3J0ZWQoKTsKICAgICBsb25nIG51bWJlck9mUGFnZXMoaW4gW09wdGlvbmFsXSBk
b3VibGUgcGFnZVdpZHRoSW5QaXhlbHMsIGluIFtPcHRpb25hbF0gZG91YmxlIHBhZ2VIZWlnaHRJ
blBpeGVscyk7CiAgICAgRE9NU3RyaW5nIHBhZ2VQcm9wZXJ0eShpbiBET01TdHJpbmcgcHJvcGVy
dHlOYW1lLCBpbiBsb25nIHBhZ2VOdW1iZXIpIHJhaXNlcyAoRE9NRXhjZXB0aW9uKTsKICAgICBE
T01TdHJpbmcgcGFnZVNpemVBbmRNYXJnaW5zSW5QaXhlbHMoaW4gbG9uZyBwYWdlSW5kZXgsIGlu
IGxvbmcgd2lkdGgsIGluIGxvbmcgaGVpZ2h0LCBpbiBsb25nIG1hcmdpblRvcCwgaW4gbG9uZyBt
YXJnaW5SaWdodCwgaW4gbG9uZyBtYXJnaW5Cb3R0b20sIGluIGxvbmcgbWFyZ2luTGVmdCkgcmFp
c2VzIChET01FeGNlcHRpb24pOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIv
TGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IDUxYTQzYzg3ZjZlMjM5OTA3ZTZlYzBhMTc5MGRl
YzJkMzVlM2I2ZGIuLjczMGYwY2QyYzJkMTY5YWY2NDliZGRiMDM3MGQ2NmUyZGRlODU2ZmUgMTAw
NjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKQEAgLTEsMyArMSwxNSBAQAorMjAxMy0wMi0wNiAgUnVzbGFuIEFiZGlrZWV2ICA8YXJ1c2xh
bkBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgPGxpbmsgcmVsPSJhcHBsZS10b3VjaC1pY29uIj4g
dGFnIGlzIG5vdCBob25vcmVkIG9uIENOTi5jb20sIHdvcmtmbG93eS5jb20gZXRjCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDkwNjEKKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGRlZCBhIHRlc3QgdG8g
Y2hlY2sgdGhhdCBhcHBsZS10b3VjaC1pY29ucyBhcmUgY29ycmVjdGx5IGluY2x1ZGVkIGluIHRo
ZSBsaXN0LgorCisgICAgICAgICogZmFzdC9kb20vaWNvbi11cmwtbGlzdC1hcHBsZS10b3VjaC1l
eHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZG9tL2ljb24tdXJsLWxpc3QtYXBw
bGUtdG91Y2guaHRtbDogQWRkZWQuCisKIDIwMTMtMDItMDYgIFZzZXZvbG9kIFZsYXNvdiAgPHZz
ZXZpa0BjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgV2ViIEluc3BlY3RvcjogUmVtb3ZlIGlzU25p
cHBldCBmaWVsZCBmcm9tIEZpbGVEZXNjcmlwdG9yIGFuZCBVSVNvdXJjZUNvZGUuCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9pY29uLXVybC1saXN0LWFwcGxlLXRvdWNoLWV4cGVj
dGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL2ljb24tdXJsLWxpc3QtYXBwbGUtdG91Y2gt
ZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjk5M2M1NTVmOGE1YzRkZDFjZDVhZWE0MGRmNThjOTc0
NTJjZDgxYWIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9pY29uLXVy
bC1saXN0LWFwcGxlLXRvdWNoLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDMgQEAKK1Rlc3RzIHRo
YXQgYWxsIGZhdmljb25zIGFuZCB0b3VjaCBpY29ucyAoaWYgRU5BQkxFKFRPVUNIX0lDT05fTE9B
RElORykpIGFyZSBpbiBkb2N1bWVudC5pY29uVVJMcygpCitQQVNTIFVSTCBsaXN0IG1hdGNoZXMg
ZXhwZWN0ZWQKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vaWNvbi11cmwtbGlz
dC1hcHBsZS10b3VjaC5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vaWNvbi11cmwtbGlzdC1h
cHBsZS10b3VjaC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjNkNTIwMjFkMjVkNTFiOTQ5YzVhYjI3OTRhYzgz
N2I5ZmVkOWRhOWQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9pY29u
LXVybC1saXN0LWFwcGxlLXRvdWNoLmh0bWwKQEAgLTAsMCArMSw0OSBAQAorPGh0bWw+Cis8aGVh
ZD4KKzx0aXRsZT5PcmlnaW5hbCBUaXRsZTwvdGl0bGU+Cis8bGluayByZWw9InNob3J0Y3V0IGlj
b24iIHR5cGU9ImltYWdlL3gtaWNvbiIgaHJlZj0iaHR0cDovL3Rlc3QuY29tL29sZGZhdmljb24u
aWNvIi8+Cis8bGluayByZWw9ImFwcGxlLXRvdWNoLWljb24iIHR5cGU9ImltYWdlL3BuZyIgaHJl
Zj0iaHR0cDovL3Rlc3QuY29tL2kvdG91Y2gucG5nIi8+Cis8bGluayByZWw9ImFwcGxlLXRvdWNo
LWljb24tcHJlY29tcG9zZWQiIHR5cGU9ImltYWdlL3BuZyIgaHJlZj0iaHR0cDovL3Rlc3QuY29t
L2kvdG91Y2gtcHJlY29tcG9zZWQucG5nIi8+Cis8c2NyaXB0IHNyYz0iLi4vanMvcmVzb3VyY2Vz
L2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQ+CisKK2Z1bmN0aW9uIHJ1blRlc3Rz
KCkgeworICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikKKyAgICAgICAgdGVzdFJ1bm5lci5kdW1w
QXNUZXh0KCk7CisKKyAgICBkZWJ1ZygnVGVzdHMgdGhhdCBhbGwgZmF2aWNvbnMgYW5kIHRvdWNo
IGljb25zIChpZiBFTkFCTEUoVE9VQ0hfSUNPTl9MT0FESU5HKSkgYXJlIGluIGRvY3VtZW50Lmlj
b25VUkxzKCknKTsKKworICAgIC8vIEZldGNoIHRoZSBhY3R1YWwgbGlzdCBvZiBpY29uIFVSTHMu
CisgICAgdmFyIHN1cHBvcnRzVG91Y2hJY29ucyA9IHdpbmRvdy5pbnRlcm5hbHMuaXNUb3VjaElj
b25zTG9hZGluZ1N1cHBvcnRlZCgpOworICAgIHZhciBhY3R1YWxVUkxzID0gd2luZG93LmludGVy
bmFscy5pY29uVVJMcyhkb2N1bWVudCk7CisKKyAgICAvLyBDaGVjayB0aGF0IHRoZSBVUkwgbGlz
dCBpbiB0aGUgZG9jdW1lbnQgaXMgYXMgd2UgZXhwZWN0LgorICAgIC8vIE5vdGUgdGhhdCB0aGUg
ZXhwZWN0ZWQgb3JkZXIgaXMgcmV2ZXJzZSB0byBlbnN1cmUgdGhhdCBpY29ucyBzZWVuIGxhdGVy
CisgICAgLy8gdGFrZSBwcmVjZWRlbmNlIGFzIHJlcXVpcmVkIGJ5IHRoZSBzcGVjLgorICAgIHZh
ciBleHBlY3RlZFVSTHMgPSBzdXBwb3J0c1RvdWNoSWNvbnMgPyBbCisgICAgICAgICJodHRwOi8v
dGVzdC5jb20vaS90b3VjaC1wcmVjb21wb3NlZC5wbmciLAorICAgICAgICAiaHR0cDovL3Rlc3Qu
Y29tL2kvdG91Y2gucG5nIiwKKyAgICAgICAgImh0dHA6Ly90ZXN0LmNvbS9vbGRmYXZpY29uLmlj
byIsCisgICAgXSA6IFsKKyAgICAgICAgImh0dHA6Ly90ZXN0LmNvbS9vbGRmYXZpY29uLmljbyIK
KyAgICBdOworICAgIHZhciBzdWNjZXNzID0gZXhwZWN0ZWRVUkxzLmxlbmd0aCA9PSBhY3R1YWxV
UkxzLmxlbmd0aDsKKyAgICBmb3IgKHZhciBpID0gMDsgc3VjY2VzcyAmJiBpIDwgYWN0dWFsVVJM
cy5sZW5ndGg7IGkrKykgeworICAgICAgICBpZiAoZXhwZWN0ZWRVUkxzW2ldICE9IGFjdHVhbFVS
THNbaV0pIHsKKyAgICAgICAgICAgIGRlYnVnKCdtaXNtYXRjaCBleHBlY3RlZD0nICsgZXhwZWN0
ZWRVUkxzW2ldICsKKyAgICAgICAgICAgICAgICAgICAgJyBhY3R1YWw9JyArIGFjdHVhbFVSTHNb
aV0pOworICAgICAgICAgICAgc3VjY2VzcyA9IGZhbHNlOworICAgICAgICB9CisgICAgfQorICAg
IGlmIChzdWNjZXNzKQorICAgICAgICB0ZXN0UGFzc2VkKCdVUkwgbGlzdCBtYXRjaGVzIGV4cGVj
dGVkJyk7CisgICAgZWxzZQorICAgICAgICB0ZXN0RmFpbGVkKCdVUkwgbGlzdCBkb2VzIG5vdCBt
YXRjaCBleHBlY3RlZCcpOworfQorCis8L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5IG9ubG9hZD0n
cnVuVGVzdHMoKTsnPgorPC9kaXY+Cis8L2JvZHk+Cis8L2h0bWw+Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>186976</attachid>
            <date>2013-02-06 18:42:59 -0800</date>
            <delta_ts>2013-02-11 17:55:13 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-109061-20130206183935.patch</filename>
            <type>text/plain</type>
            <size>14575</size>
            <attacher name="Ruslan Abdikeev">aruslan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQyMDU3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYWRjNWVlZGU0ODE0NzM4
NzIyMzM5MDliZjNkODRkOTQ4NzE3ZWVjMC4uNTY0NzFlOWVmNjY4OWVmM2FiYWU3MjM0NTUzY2Ux
YThlYmZmNGFmZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM0IEBACisyMDEzLTAyLTA2ICBSdXNs
YW4gQWJkaWtlZXYgIDxhcnVzbGFuQGNocm9taXVtLm9yZz4KKworICAgICAgICA8bGluayByZWw9
ImFwcGxlLXRvdWNoLWljb24iPiB0YWcgaXMgbm90IGhvbm9yZWQgb24gQ05OLmNvbSwgd29ya2Zs
b3d5LmNvbSBldGMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTEwOTA2MQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgIFRlc3Q6IGZhc3QvZG9tL2ljb24tdXJsLWxpc3QtYXBwbGUtdG91Y2guaHRtbAorCisgICAg
ICAgIEFkZGVkIGljb25UeXBlcyBwYXJhbWV0ZXIgdG8gRG9jdW1lbnQ6Omljb25VUkxzKCkuCisg
ICAgICAgIEFkZGVkIERvY3VtZW50OjpzaG9ydGN1dEljb25VUkxzKCkgd2l0aCBvcmlnaW5hbCBz
ZW1hbnRpY3Mgb2YgaWNvblVSTHMoKS4KKyAgICAgICAgRml4ZWQgSWNvbkNvbnRyb2xsZXIuY3Bw
IHRvIHByb3ZpZGUgaWNvblR5cGVzIHRvIGljb25VUkxzKCkuCisKKyAgICAgICAgKiBkb20vRG9j
dW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnQ6OnNob3J0Y3V0SWNvblVSTHMp
OgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudDo6aWNvblVS
THMpOgorICAgICAgICAqIGRvbS9Eb2N1bWVudC5oOgorICAgICAgICAoRG9jdW1lbnQpOgorICAg
ICAgICAqIGxvYWRlci9pY29uL0ljb25Db250cm9sbGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
Okljb25Db250cm9sbGVyOjppY29uVVJMKToKKyAgICAgICAgKFdlYkNvcmU6Okljb25Db250cm9s
bGVyOjp1cmxzRm9yVHlwZXMpOgorICAgICAgICAqIHRlc3RpbmcvSW50ZXJuYWxzLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OkludGVybmFsczo6aWNvblVSTHMpOgorICAgICAgICAoV2ViQ29yZTo6
SW50ZXJuYWxzOjpzaG9ydGN1dEljb25VUkxzKToKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAg
ICAoV2ViQ29yZTo6SW50ZXJuYWxzOjphbGxJY29uVVJMcyk6CisgICAgICAgIChXZWJDb3JlOjpJ
bnRlcm5hbHM6OmlzVG91Y2hJY29uc0xvYWRpbmdTdXBwb3J0ZWQpOgorICAgICAgICAqIHRlc3Rp
bmcvSW50ZXJuYWxzLmg6CisgICAgICAgICogdGVzdGluZy9JbnRlcm5hbHMuaWRsOgorCiAyMDEz
LTAyLTA2ICBUZXJyeSBBbmRlcnNvbiAgPHRkYW5kZXJzb25AY2hyb21pdW0ub3JnPgogCiAgICAg
ICAgIEFkZCBzdXBwb3J0IGZvciBnZXN0dXJlIHNjcm9sbCBldmVudHMgdGhhdCBkbyBub3QgcHJv
cGFnYXRlIHRvIGVuY2xvc2luZyBzY3JvbGxhYmxlcwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvZG9tL0RvY3VtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKaW5k
ZXggNjIxNDc1NmJjMTQzODkzMTY5OTY0ZGVhY2ZmNzJjYWZhNzIwMzZiMi4uZDkyNDc3NTU4NDg5
ODFhNWJjOTI4ZTA5YjRhNzVhNGYwODIwMzA2OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
ZG9tL0RvY3VtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCkBA
IC00NDY4LDE0ICs0NDY4LDE5IEBAIFBhc3NSZWZQdHI8WFBhdGhSZXN1bHQ+IERvY3VtZW50Ojpl
dmFsdWF0ZShjb25zdCBTdHJpbmcmIGV4cHJlc3Npb24sCiAgICAgcmV0dXJuIG1feHBhdGhFdmFs
dWF0b3ItPmV2YWx1YXRlKGV4cHJlc3Npb24sIGNvbnRleHROb2RlLCByZXNvbHZlciwgdHlwZSwg
cmVzdWx0LCBlYyk7CiB9CiAKLWNvbnN0IFZlY3RvcjxJY29uVVJMPiYgRG9jdW1lbnQ6Omljb25V
UkxzKCkKK2NvbnN0IFZlY3RvcjxJY29uVVJMPiYgRG9jdW1lbnQ6OnNob3J0Y3V0SWNvblVSTHMo
KQoreworICAgIC8vIEluY2x1ZGUgYW55IGljb25zIHdoZXJlIHR5cGUgPSBsaW5rLCByZWwgPSAi
c2hvcnRjdXQgaWNvbiIuCisgICAgcmV0dXJuIGljb25VUkxzKEZhdmljb24pOworfQorCitjb25z
dCBWZWN0b3I8SWNvblVSTD4mIERvY3VtZW50OjppY29uVVJMcyhpbnQgaWNvblR5cGVzKQogewog
ICAgIG1faWNvblVSTHMuY2xlYXIoKTsKIAogICAgIGlmICghaGVhZCgpIHx8ICEoaGVhZCgpLT5j
aGlsZHJlbigpKSkKICAgICAgICAgcmV0dXJuIG1faWNvblVSTHM7CiAKLSAgICAvLyBJbmNsdWRl
IGFueSBpY29ucyB3aGVyZSB0eXBlID0gbGluaywgcmVsID0gInNob3J0Y3V0IGljb24iLgogICAg
IFJlZlB0cjxIVE1MQ29sbGVjdGlvbj4gY2hpbGRyZW4gPSBoZWFkKCktPmNoaWxkcmVuKCk7CiAg
ICAgdW5zaWduZWQgaW50IGxlbmd0aCA9IGNoaWxkcmVuLT5sZW5ndGgoKTsKICAgICBmb3IgKHVu
c2lnbmVkIGludCBpID0gMDsgaSA8IGxlbmd0aDsgKytpKSB7CkBAIC00NDgzLDcgKzQ0ODgsNyBA
QCBjb25zdCBWZWN0b3I8SWNvblVSTD4mIERvY3VtZW50OjppY29uVVJMcygpCiAgICAgICAgIGlm
ICghY2hpbGQtPmhhc1RhZ05hbWUobGlua1RhZykpCiAgICAgICAgICAgICBjb250aW51ZTsKICAg
ICAgICAgSFRNTExpbmtFbGVtZW50KiBsaW5rRWxlbWVudCA9IHN0YXRpY19jYXN0PEhUTUxMaW5r
RWxlbWVudCo+KGNoaWxkKTsKLSAgICAgICAgaWYgKGxpbmtFbGVtZW50LT5pY29uVHlwZSgpICE9
IEZhdmljb24pCisgICAgICAgIGlmICghKGxpbmtFbGVtZW50LT5pY29uVHlwZSgpICYgaWNvblR5
cGVzKSkKICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICBpZiAobGlua0VsZW1lbnQtPmhy
ZWYoKS5pc0VtcHR5KCkpCiAgICAgICAgICAgICBjb250aW51ZTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmgK
aW5kZXggN2JkOWYxOTBjNDc1YTU3MzJlMzMyMzUzMWU3ZWI1NzQ0MTYyYjE2Yy4uZTIwNjE0MTk0
MzdmNGI3YWNhNWM4NGIyMjUzNzk3YmUxY2QxZjgwYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvZG9tL0RvY3VtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmgKQEAg
LTk0MSw3ICs5NDEsOCBAQCBwdWJsaWM6CiAgICAgYm9vbCBoYXNOb2Rlc1dpdGhQbGFjZWhvbGRl
clN0eWxlKCkgY29uc3QgeyByZXR1cm4gbV9oYXNOb2Rlc1dpdGhQbGFjZWhvbGRlclN0eWxlOyB9
CiAgICAgdm9pZCBzZXRIYXNOb2Rlc1dpdGhQbGFjZWhvbGRlclN0eWxlKCkgeyBtX2hhc05vZGVz
V2l0aFBsYWNlaG9sZGVyU3R5bGUgPSB0cnVlOyB9CiAKLSAgICBjb25zdCBWZWN0b3I8SWNvblVS
TD4mIGljb25VUkxzKCk7CisgICAgY29uc3QgVmVjdG9yPEljb25VUkw+JiBzaG9ydGN1dEljb25V
UkxzKCk7CisgICAgY29uc3QgVmVjdG9yPEljb25VUkw+JiBpY29uVVJMcyhpbnQgaWNvblR5cGVz
KTsKICAgICB2b2lkIGFkZEljb25VUkwoY29uc3QgU3RyaW5nJiB1cmwsIGNvbnN0IFN0cmluZyYg
bWltZVR5cGUsIGNvbnN0IFN0cmluZyYgc2l6ZSwgSWNvblR5cGUpOwogCiAgICAgdm9pZCBzZXRV
c2VTZWN1cmVLZXlib2FyZEVudHJ5V2hlbkFjdGl2ZShib29sKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2xvYWRlci9pY29uL0ljb25Db250cm9sbGVyLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2xvYWRlci9pY29uL0ljb25Db250cm9sbGVyLmNwcAppbmRleCA3NGZhYTk1OWNhYmUzNDQ4MWEw
ZjU3OWY3ZTUyNDA4MjJlMDEzODA0Li4zYWQxNTljZjA2OThmOTgwN2MzZTkxZjM4ZmFlN2M1ZDJj
MGVkZTUzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvaWNvbi9JY29uQ29udHJv
bGxlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2ljb24vSWNvbkNvbnRyb2xsZXIu
Y3BwCkBAIC02OCwxMyArNjgsMTEgQEAgS1VSTCBJY29uQ29udHJvbGxlcjo6dXJsKCkKIEljb25V
UkwgSWNvbkNvbnRyb2xsZXI6Omljb25VUkwoSWNvblR5cGUgaWNvblR5cGUpIGNvbnN0CiB7CiAg
ICAgSWNvblVSTCByZXN1bHQ7Ci0gICAgY29uc3QgVmVjdG9yPEljb25VUkw+JiBpY29uVVJMcyA9
IG1fZnJhbWUtPmRvY3VtZW50KCktPmljb25VUkxzKCk7CisgICAgY29uc3QgVmVjdG9yPEljb25V
Ukw+JiBpY29uVVJMcyA9IG1fZnJhbWUtPmRvY3VtZW50KCktPmljb25VUkxzKGljb25UeXBlKTsK
ICAgICBWZWN0b3I8SWNvblVSTD46OmNvbnN0X2l0ZXJhdG9yIGl0ZXIoaWNvblVSTHMuYmVnaW4o
KSk7CiAgICAgZm9yICg7IGl0ZXIgIT0gaWNvblVSTHMuZW5kKCk7ICsraXRlcikgewotICAgICAg
ICBpZiAoaXRlci0+bV9pY29uVHlwZSA9PSBpY29uVHlwZSkgewotICAgICAgICAgICAgaWYgKHJl
c3VsdC5tX2ljb25VUkwuaXNFbXB0eSgpIHx8ICFpdGVyLT5tX21pbWVUeXBlLmlzRW1wdHkoKSkK
LSAgICAgICAgICAgICAgICByZXN1bHQgPSAqaXRlcjsKLSAgICAgICAgfQorICAgICAgICBpZiAo
cmVzdWx0Lm1faWNvblVSTC5pc0VtcHR5KCkgfHwgIWl0ZXItPm1fbWltZVR5cGUuaXNFbXB0eSgp
KQorICAgICAgICAgICAgcmVzdWx0ID0gKml0ZXI7CiAgICAgfQogCiAgICAgcmV0dXJuIHJlc3Vs
dDsKQEAgLTEwNSwxMSArMTAzLDggQEAgSWNvblVSTHMgSWNvbkNvbnRyb2xsZXI6OnVybHNGb3JU
eXBlcyhpbnQgaWNvblR5cGVzKQogI2VuZGlmCiAKICAgICAvLyBGaW5hbGx5LCBhcHBlbmQgYWxs
IHJlbWFpbmluZyBpY29ucyBvZiB0aGlzIHR5cGUuCi0gICAgY29uc3QgVmVjdG9yPEljb25VUkw+
JiBhbGxJY29uVVJMcyA9IG1fZnJhbWUtPmRvY3VtZW50KCktPmljb25VUkxzKCk7CisgICAgY29u
c3QgVmVjdG9yPEljb25VUkw+JiBhbGxJY29uVVJMcyA9IG1fZnJhbWUtPmRvY3VtZW50KCktPmlj
b25VUkxzKGljb25UeXBlcyk7CiAgICAgZm9yIChWZWN0b3I8SWNvblVSTD46OmNvbnN0X2l0ZXJh
dG9yIGl0ZXIgPSBhbGxJY29uVVJMcy5iZWdpbigpOyBpdGVyICE9IGFsbEljb25VUkxzLmVuZCgp
OyArK2l0ZXIpIHsKLSAgICAgICAgaWYgKCEoaXRlci0+bV9pY29uVHlwZSAmIGljb25UeXBlcykp
Ci0gICAgICAgICAgICBjb250aW51ZTsKLQogICAgICAgICBpbnQgaTsKICAgICAgICAgaW50IGlj
b25Db3VudCA9IGljb25VUkxzLnNpemUoKTsKICAgICAgICAgZm9yIChpID0gMDsgaSA8IGljb25D
b3VudDsgKytpKSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFs
cy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5jcHAKaW5kZXggM2Y3ODI1
ZGMzOTczMWQ3YWQ2ZjlkNGYwNmYzNzNjZDU4MDIzZjZiNi4uY2Q5NDA4MjVmMWJiNmI3NTIwOWRm
NWYxY2UwODI3YTU4YWJlYmUyMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9J
bnRlcm5hbHMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmNwcApA
QCAtMTY2Myw5ICsxNjYzLDkgQEAgaW50IEludGVybmFsczo6cGFnZU51bWJlcihFbGVtZW50KiBl
bGVtZW50LCBmbG9hdCBwYWdlV2lkdGgsIGZsb2F0IHBhZ2VIZWlnaHQpCiAgICAgcmV0dXJuIFBy
aW50Q29udGV4dDo6cGFnZU51bWJlckZvckVsZW1lbnQoZWxlbWVudCwgRmxvYXRTaXplKHBhZ2VX
aWR0aCwgcGFnZUhlaWdodCkpOwogfQogCi1WZWN0b3I8U3RyaW5nPiBJbnRlcm5hbHM6Omljb25V
UkxzKERvY3VtZW50KiBkb2N1bWVudCkgY29uc3QKK1ZlY3RvcjxTdHJpbmc+IEludGVybmFsczo6
aWNvblVSTHMoRG9jdW1lbnQqIGRvY3VtZW50LCBpbnQgaWNvblR5cGVzKSBjb25zdAogewotICAg
IFZlY3RvcjxJY29uVVJMPiBpY29uVVJMcyA9IGRvY3VtZW50LT5pY29uVVJMcygpOworICAgIFZl
Y3RvcjxJY29uVVJMPiBpY29uVVJMcyA9IGRvY3VtZW50LT5pY29uVVJMcyhpY29uVHlwZXMpOwog
ICAgIFZlY3RvcjxTdHJpbmc+IGFycmF5OwogCiAgICAgVmVjdG9yPEljb25VUkw+Ojpjb25zdF9p
dGVyYXRvciBpdGVyKGljb25VUkxzLmJlZ2luKCkpOwpAQCAtMTY3NSw2ICsxNjc1LDI1IEBAIFZl
Y3RvcjxTdHJpbmc+IEludGVybmFsczo6aWNvblVSTHMoRG9jdW1lbnQqIGRvY3VtZW50KSBjb25z
dAogICAgIHJldHVybiBhcnJheTsKIH0KIAorVmVjdG9yPFN0cmluZz4gSW50ZXJuYWxzOjpzaG9y
dGN1dEljb25VUkxzKERvY3VtZW50KiBkb2N1bWVudCkgY29uc3QKK3sKKyAgICByZXR1cm4gaWNv
blVSTHMoZG9jdW1lbnQsIEZhdmljb24pOworfQorCitWZWN0b3I8U3RyaW5nPiBJbnRlcm5hbHM6
OmFsbEljb25VUkxzKERvY3VtZW50KiBkb2N1bWVudCkgY29uc3QKK3sKKyAgICByZXR1cm4gaWNv
blVSTHMoZG9jdW1lbnQsIEZhdmljb24gfCBUb3VjaEljb24gfCBUb3VjaFByZWNvbXBvc2VkSWNv
bik7Cit9CisKK2Jvb2wgSW50ZXJuYWxzOjppc1RvdWNoSWNvbnNMb2FkaW5nU3VwcG9ydGVkKCkg
Y29uc3QKK3sKKyNpZiBFTkFCTEUoVE9VQ0hfSUNPTl9MT0FESU5HKQorICAgIHJldHVybiB0cnVl
OworI2Vsc2UKKyAgICByZXR1cm4gZmFsc2U7CisjZW5kaWYKK30KKwogaW50IEludGVybmFsczo6
bnVtYmVyT2ZQYWdlcyhmbG9hdCBwYWdlV2lkdGgsIGZsb2F0IHBhZ2VIZWlnaHQpCiB7CiAgICAg
aWYgKCFmcmFtZSgpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5h
bHMuaCBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmgKaW5kZXggODMxNGY5Mzli
NWFiY2ViZDIwNzg5MGNlOTM0M2MyZjVhNjcxN2Q3Yi4uZWNiMmExYWE1NDM1MGVmYjdlM2I4NDA3
MTM5YTNkZTExMmIyYjJhOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRl
cm5hbHMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5oCkBAIC0yNDEs
NyArMjQxLDkgQEAgcHVibGljOgogICAgIFN0cmluZyBjb3VudGVyVmFsdWUoRWxlbWVudCopOwog
CiAgICAgaW50IHBhZ2VOdW1iZXIoRWxlbWVudCosIGZsb2F0IHBhZ2VXaWR0aCA9IDgwMCwgZmxv
YXQgcGFnZUhlaWdodCA9IDYwMCk7Ci0gICAgVmVjdG9yPFN0cmluZz4gaWNvblVSTHMoRG9jdW1l
bnQqKSBjb25zdDsKKyAgICBWZWN0b3I8U3RyaW5nPiBzaG9ydGN1dEljb25VUkxzKERvY3VtZW50
KikgY29uc3Q7CisgICAgVmVjdG9yPFN0cmluZz4gYWxsSWNvblVSTHMoRG9jdW1lbnQqKSBjb25z
dDsKKyAgICBib29sIGlzVG91Y2hJY29uc0xvYWRpbmdTdXBwb3J0ZWQoKSBjb25zdDsKIAogICAg
IGludCBudW1iZXJPZlBhZ2VzKGZsb2F0IHBhZ2VXaWR0aEluUGl4ZWxzID0gODAwLCBmbG9hdCBw
YWdlSGVpZ2h0SW5QaXhlbHMgPSA2MDApOwogICAgIFN0cmluZyBwYWdlUHJvcGVydHkoU3RyaW5n
LCBpbnQsIEV4Y2VwdGlvbkNvZGUmID0gQVNTRVJUX05PX0VYQ0VQVElPTikgY29uc3Q7CkBAIC0y
NzgsNiArMjgwLDcgQEAgcHJpdmF0ZToKICAgICBleHBsaWNpdCBJbnRlcm5hbHMoRG9jdW1lbnQq
KTsKICAgICBEb2N1bWVudCogY29udGV4dERvY3VtZW50KCkgY29uc3Q7CiAgICAgRnJhbWUqIGZy
YW1lKCkgY29uc3Q7CisgICAgVmVjdG9yPFN0cmluZz4gaWNvblVSTHMoRG9jdW1lbnQqLCBpbnQg
aWNvblR5cGVzKSBjb25zdDsKIAogICAgIERvY3VtZW50TWFya2VyKiBtYXJrZXJBdChOb2RlKiwg
Y29uc3QgU3RyaW5nJiBtYXJrZXJUeXBlLCB1bnNpZ25lZCBpbmRleCwgRXhjZXB0aW9uQ29kZSYp
OwogI2lmIEVOQUJMRShJTlNQRUNUT1IpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS90ZXN0
aW5nL0ludGVybmFscy5pZGwgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5pZGwK
aW5kZXggZjdhOTdhYjg4ZWYzNTk0ZGVkYjAwZTNmMjBmODZiNTQ0NjhlMzhkMC4uMGYwYmUzNDE3
YjMyZjg3MmZmM2E3OTQ0ZjNhODZhN2E5ZWFjMTkzMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvdGVzdGluZy9JbnRlcm5hbHMuaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50
ZXJuYWxzLmlkbApAQCAtMjA4LDcgKzIwOCw5IEBACiAKICAgICBET01TdHJpbmcgY291bnRlclZh
bHVlKGluIEVsZW1lbnQgZWxlbWVudCk7CiAgICAgbG9uZyBwYWdlTnVtYmVyKGluIEVsZW1lbnQg
ZWxlbWVudCwgaW4gW09wdGlvbmFsXSBmbG9hdCBwYWdlV2lkdGgsIGluIFtPcHRpb25hbF0gZmxv
YXQgcGFnZUhlaWdodCk7Ci0gICAgRE9NU3RyaW5nW10gaWNvblVSTHMoaW4gRG9jdW1lbnQgZG9j
dW1lbnQpOworICAgIERPTVN0cmluZ1tdIHNob3J0Y3V0SWNvblVSTHMoaW4gRG9jdW1lbnQgZG9j
dW1lbnQpOworICAgIERPTVN0cmluZ1tdIGFsbEljb25VUkxzKGluIERvY3VtZW50IGRvY3VtZW50
KTsKKyAgICBib29sZWFuIGlzVG91Y2hJY29uc0xvYWRpbmdTdXBwb3J0ZWQoKTsKICAgICBsb25n
IG51bWJlck9mUGFnZXMoaW4gW09wdGlvbmFsXSBkb3VibGUgcGFnZVdpZHRoSW5QaXhlbHMsIGlu
IFtPcHRpb25hbF0gZG91YmxlIHBhZ2VIZWlnaHRJblBpeGVscyk7CiAgICAgRE9NU3RyaW5nIHBh
Z2VQcm9wZXJ0eShpbiBET01TdHJpbmcgcHJvcGVydHlOYW1lLCBpbiBsb25nIHBhZ2VOdW1iZXIp
IHJhaXNlcyAoRE9NRXhjZXB0aW9uKTsKICAgICBET01TdHJpbmcgcGFnZVNpemVBbmRNYXJnaW5z
SW5QaXhlbHMoaW4gbG9uZyBwYWdlSW5kZXgsIGluIGxvbmcgd2lkdGgsIGluIGxvbmcgaGVpZ2h0
LCBpbiBsb25nIG1hcmdpblRvcCwgaW4gbG9uZyBtYXJnaW5SaWdodCwgaW4gbG9uZyBtYXJnaW5C
b3R0b20sIGluIGxvbmcgbWFyZ2luTGVmdCkgcmFpc2VzIChET01FeGNlcHRpb24pOwpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4
IGMwNmVlNjIwYmFhNmNmZmFkM2I2NjcwZmY3ZTAzZjNkZjU0NTc0MTQuLjkzYzg0NWIzMmFiMzkw
YTM4YmJiY2RkOGY1MTg4ZjM1ZDkxOGI3NzAgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5n
ZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxOSBAQAorMjAxMy0w
Mi0wNiAgUnVzbGFuIEFiZGlrZWV2ICA8YXJ1c2xhbkBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAg
PGxpbmsgcmVsPSJhcHBsZS10b3VjaC1pY29uIj4gdGFnIGlzIG5vdCBob25vcmVkIG9uIENOTi5j
b20sIHdvcmtmbG93eS5jb20gZXRjCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0xMDkwNjEKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICBBZGRlZCB0ZXN0IGZvciBhcHBsZS10b3VjaC1pY29uIGluIGFsbEljb25V
UkxzKCkuCisgICAgICAgIENoYW5nZWQgaWNvblVSTHMoKSB0byBzaG9ydGN1dEljb25VUkxzKCku
CisKKyAgICAgICAgKiBmYXN0L2RvbS9pY29uLXVybC1jaGFuZ2UuaHRtbDoKKyAgICAgICAgKiBm
YXN0L2RvbS9pY29uLXVybC1saXN0LWFwcGxlLXRvdWNoLWV4cGVjdGVkLnR4dDogQWRkZWQuCisg
ICAgICAgICogZmFzdC9kb20vaWNvbi11cmwtbGlzdC1hcHBsZS10b3VjaC5odG1sOiBBZGRlZC4K
KyAgICAgICAgKiBmYXN0L2RvbS9pY29uLXVybC1saXN0Lmh0bWw6CisgICAgICAgICogZmFzdC9k
b20vaWNvbi11cmwtcHJvcGVydHkuaHRtbDoKKwogMjAxMy0wMi0wNiAgVGVycnkgQW5kZXJzb24g
IDx0ZGFuZGVyc29uQGNocm9taXVtLm9yZz4KIAogICAgICAgICBBZGQgc3VwcG9ydCBmb3IgZ2Vz
dHVyZSBzY3JvbGwgZXZlbnRzIHRoYXQgZG8gbm90IHByb3BhZ2F0ZSB0byBlbmNsb3Npbmcgc2Ny
b2xsYWJsZXMKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL2ljb24tdXJsLWNoYW5n
ZS5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vaWNvbi11cmwtY2hhbmdlLmh0bWwKaW5kZXgg
ODJkNTM0ZWVjZGE3Y2QxNGFiNTU5OTMxYTIyYjI3OTkyYTZmZTVlNy4uOTkzMjcyZWRiYzJmYTJm
NjY3YWM0ODk5ZTY3MGMyYzUwNzBlZGQxZiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9k
b20vaWNvbi11cmwtY2hhbmdlLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vaWNvbi11
cmwtY2hhbmdlLmh0bWwKQEAgLTQ1LDcgKzQ1LDcgQEAgZnVuY3Rpb24gcnVuVGVzdHMoKSB7CiAK
ICAgICAvLyBjaGVjayB0aGF0IHRoZSBVUkwgbGlzdCBpbiB0aGUgZG9jdW1lbnQgaXMgYXMgd2Ug
ZXhwZWN0CiAgICAgdmFyIGV4cGVjdGVkVVJMcyA9ICJodHRwOi8vdGVzdC5jb20vb2xkZmF2aWNv
bi5pY28iOwotICAgIHZhciBpY29uVVJMcyA9IHdpbmRvdy5pbnRlcm5hbHMuaWNvblVSTHMoZG9j
dW1lbnQpOworICAgIHZhciBpY29uVVJMcyA9IHdpbmRvdy5pbnRlcm5hbHMuc2hvcnRjdXRJY29u
VVJMcyhkb2N1bWVudCk7CiAgICAgaWYgKGV4cGVjdGVkVVJMcyA9PSBpY29uVVJMc1swXSkKICAg
ICAgICAgdGVzdFBhc3NlZCgnVVJMIGxpc3QgbWF0Y2hlcyBleHBlY3RlZCcpOwogICAgIGVsc2UK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL2ljb24tdXJsLWxpc3QtYXBwbGUtdG91
Y2gtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vaWNvbi11cmwtbGlzdC1hcHBs
ZS10b3VjaC1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOTkzYzU1NWY4YTVjNGRkMWNkNWFlYTQw
ZGY1OGM5NzQ1MmNkODFhYgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZG9t
L2ljb24tdXJsLWxpc3QtYXBwbGUtdG91Y2gtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMyBAQAor
VGVzdHMgdGhhdCBhbGwgZmF2aWNvbnMgYW5kIHRvdWNoIGljb25zIChpZiBFTkFCTEUoVE9VQ0hf
SUNPTl9MT0FESU5HKSkgYXJlIGluIGRvY3VtZW50Lmljb25VUkxzKCkKK1BBU1MgVVJMIGxpc3Qg
bWF0Y2hlcyBleHBlY3RlZAorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9pY29u
LXVybC1saXN0LWFwcGxlLXRvdWNoLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9pY29uLXVy
bC1saXN0LWFwcGxlLXRvdWNoLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMDFiOTk0YzhiNGJkYWI5MmNlZGUx
ZDY5M2Q5Mjc3ZmM2YjZjY2U3NAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3Qv
ZG9tL2ljb24tdXJsLWxpc3QtYXBwbGUtdG91Y2guaHRtbApAQCAtMCwwICsxLDQ5IEBACis8aHRt
bD4KKzxoZWFkPgorPHRpdGxlPk9yaWdpbmFsIFRpdGxlPC90aXRsZT4KKzxsaW5rIHJlbD0ic2hv
cnRjdXQgaWNvbiIgdHlwZT0iaW1hZ2UveC1pY29uIiBocmVmPSJodHRwOi8vdGVzdC5jb20vb2xk
ZmF2aWNvbi5pY28iLz4KKzxsaW5rIHJlbD0iYXBwbGUtdG91Y2gtaWNvbiIgdHlwZT0iaW1hZ2Uv
cG5nIiBocmVmPSJodHRwOi8vdGVzdC5jb20vaS90b3VjaC5wbmciLz4KKzxsaW5rIHJlbD0iYXBw
bGUtdG91Y2gtaWNvbi1wcmVjb21wb3NlZCIgdHlwZT0iaW1hZ2UvcG5nIiBocmVmPSJodHRwOi8v
dGVzdC5jb20vaS90b3VjaC1wcmVjb21wb3NlZC5wbmciLz4KKzxzY3JpcHQgc3JjPSIuLi9qcy9y
ZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPHNjcmlwdD4KKworZnVuY3Rpb24g
cnVuVGVzdHMoKSB7CisgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKQorICAgICAgICB0ZXN0UnVu
bmVyLmR1bXBBc1RleHQoKTsKKworICAgIGRlYnVnKCdUZXN0cyB0aGF0IGFsbCBmYXZpY29ucyBh
bmQgdG91Y2ggaWNvbnMgKGlmIEVOQUJMRShUT1VDSF9JQ09OX0xPQURJTkcpKSBhcmUgaW4gZG9j
dW1lbnQuaWNvblVSTHMoKScpOworCisgICAgLy8gRmV0Y2ggdGhlIGFjdHVhbCBsaXN0IG9mIGlj
b24gVVJMcy4KKyAgICB2YXIgc3VwcG9ydHNUb3VjaEljb25zID0gd2luZG93LmludGVybmFscy5p
c1RvdWNoSWNvbnNMb2FkaW5nU3VwcG9ydGVkKCk7CisgICAgdmFyIGFjdHVhbFVSTHMgPSB3aW5k
b3cuaW50ZXJuYWxzLmFsbEljb25VUkxzKGRvY3VtZW50KTsKKworICAgIC8vIENoZWNrIHRoYXQg
dGhlIFVSTCBsaXN0IGluIHRoZSBkb2N1bWVudCBpcyBhcyB3ZSBleHBlY3QuCisgICAgLy8gTm90
ZSB0aGF0IHRoZSBleHBlY3RlZCBvcmRlciBpcyByZXZlcnNlIHRvIGVuc3VyZSB0aGF0IGljb25z
IHNlZW4gbGF0ZXIKKyAgICAvLyB0YWtlIHByZWNlZGVuY2UgYXMgcmVxdWlyZWQgYnkgdGhlIHNw
ZWMuCisgICAgdmFyIGV4cGVjdGVkVVJMcyA9IHN1cHBvcnRzVG91Y2hJY29ucyA/IFsKKyAgICAg
ICAgImh0dHA6Ly90ZXN0LmNvbS9pL3RvdWNoLXByZWNvbXBvc2VkLnBuZyIsCisgICAgICAgICJo
dHRwOi8vdGVzdC5jb20vaS90b3VjaC5wbmciLAorICAgICAgICAiaHR0cDovL3Rlc3QuY29tL29s
ZGZhdmljb24uaWNvIiwKKyAgICBdIDogWworICAgICAgICAiaHR0cDovL3Rlc3QuY29tL29sZGZh
dmljb24uaWNvIgorICAgIF07CisgICAgdmFyIHN1Y2Nlc3MgPSBleHBlY3RlZFVSTHMubGVuZ3Ro
ID09IGFjdHVhbFVSTHMubGVuZ3RoOworICAgIGZvciAodmFyIGkgPSAwOyBzdWNjZXNzICYmIGkg
PCBhY3R1YWxVUkxzLmxlbmd0aDsgaSsrKSB7CisgICAgICAgIGlmIChleHBlY3RlZFVSTHNbaV0g
IT0gYWN0dWFsVVJMc1tpXSkgeworICAgICAgICAgICAgZGVidWcoJ21pc21hdGNoIGV4cGVjdGVk
PScgKyBleHBlY3RlZFVSTHNbaV0gKworICAgICAgICAgICAgICAgICAgICAnIGFjdHVhbD0nICsg
YWN0dWFsVVJMc1tpXSk7CisgICAgICAgICAgICBzdWNjZXNzID0gZmFsc2U7CisgICAgICAgIH0K
KyAgICB9CisgICAgaWYgKHN1Y2Nlc3MpCisgICAgICAgIHRlc3RQYXNzZWQoJ1VSTCBsaXN0IG1h
dGNoZXMgZXhwZWN0ZWQnKTsKKyAgICBlbHNlCisgICAgICAgIHRlc3RGYWlsZWQoJ1VSTCBsaXN0
IGRvZXMgbm90IG1hdGNoIGV4cGVjdGVkJyk7Cit9CisKKzwvc2NyaXB0PgorPC9oZWFkPgorPGJv
ZHkgb25sb2FkPSdydW5UZXN0cygpOyc+Cis8L2Rpdj4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL2ljb24tdXJsLWxpc3QuaHRtbCBiL0xheW91dFRl
c3RzL2Zhc3QvZG9tL2ljb24tdXJsLWxpc3QuaHRtbAppbmRleCBkZGEwMGU3MmVmZmJmZTFkMmIy
OTE2YWM4MjNkNGNiOGVlNDZkNDU0Li42ZDNkZmRhNmE1ZGU0OTlhMDdlMTI1OTc1NzhmMzQwZWRl
ODM3ZjVmIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9pY29uLXVybC1saXN0Lmh0
bWwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vaWNvbi11cmwtbGlzdC5odG1sCkBAIC00OCw3
ICs0OCw3IEBAIGZ1bmN0aW9uIHJ1blRlc3RzKCkgewogICAgIHZhciBleHBlY3RlZFVSTDAgPSAi
aHR0cDovL3Rlc3QuY29tL2JhcmZhdmljb24uaWNvIjsKICAgICB2YXIgZXhwZWN0ZWRVUkwxID0g
Imh0dHA6Ly90ZXN0LmNvbS9mb29mYXZpY29uLmljbyI7CiAgICAgdmFyIGV4cGVjdGVkVVJMMiA9
ICJodHRwOi8vdGVzdC5jb20vbmV3ZmF2aWNvbi5pY28iOwotICAgIHZhciBpY29uVVJMcyA9IHdp
bmRvdy5pbnRlcm5hbHMuaWNvblVSTHMoZG9jdW1lbnQpOworICAgIHZhciBpY29uVVJMcyA9IHdp
bmRvdy5pbnRlcm5hbHMuc2hvcnRjdXRJY29uVVJMcyhkb2N1bWVudCk7CiAgICAgaWYgKGV4cGVj
dGVkVVJMMCA9PSBpY29uVVJMc1swXSAmJiBleHBlY3RlZFVSTDEgPT0gaWNvblVSTHNbMV0gJiYg
ZXhwZWN0ZWRVUkwyID09IGljb25VUkxzWzJdKSAKICAgICAgICAgdGVzdFBhc3NlZCgnVVJMIGxp
c3QgbWF0Y2hlcyBleHBlY3RlZCcpOwogICAgIGVsc2UKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2Zhc3QvZG9tL2ljb24tdXJsLXByb3BlcnR5Lmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9p
Y29uLXVybC1wcm9wZXJ0eS5odG1sCmluZGV4IDhhNmI5YzIzODg1MDZlMGUyODQyZDM3ZWMwNzEw
ODU1YmY0ZmI5ZjUuLjJkMWMwMTIxNTcxYTk3YmYxNTQzZDQxNjU0NmY3NjhlNzUxNjFlZDMgMTAw
NjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL2ljb24tdXJsLXByb3BlcnR5Lmh0bWwKKysr
IGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vaWNvbi11cmwtcHJvcGVydHkuaHRtbApAQCAtNDMsNyAr
NDMsNyBAQCBmdW5jdGlvbiBydW5UZXN0cygpIHsKIAogICAgIC8vIGNoZWNrIHRoYXQgdGhlIFVS
TCBsaXN0IGluIHRoZSBkb2N1bWVudCBpcyBhcyB3ZSBleHBlY3QKICAgICB2YXIgZXhwZWN0ZWRV
UkxzID0gImh0dHA6Ly90ZXN0LmNvbS9uZXdmYXZpY29uLmljbyI7Ci0gICAgdmFyIGljb25VUkxz
ID0gd2luZG93LmludGVybmFscy5pY29uVVJMcyhkb2N1bWVudCk7CisgICAgdmFyIGljb25VUkxz
ID0gd2luZG93LmludGVybmFscy5zaG9ydGN1dEljb25VUkxzKGRvY3VtZW50KTsKICAgICBpZiAo
ZXhwZWN0ZWRVUkxzID09IGljb25VUkxzWzBdKQogICAgICAgICBkZWJ1Z091dHB1dCgnUEFTUyAt
IFVSTCBsaXN0IG1hdGNoZXMgZXhwZWN0ZWQnKTsKICAgICBlbHNlCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>187737</attachid>
            <date>2013-02-11 17:55:17 -0800</date>
            <delta_ts>2013-02-11 18:36:21 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-109061-20130211175148.patch</filename>
            <type>text/plain</type>
            <size>16713</size>
            <attacher name="Ruslan Abdikeev">aruslan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQyMDU3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYWRjNWVlZGU0ODE0NzM4
NzIyMzM5MDliZjNkODRkOTQ4NzE3ZWVjMC4uNmUzNDVlNzY1ODU4NGEwNDljNDYwNWRhNmM3ZDkz
MGUwODdmZTU3ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM1IEBACisyMDEzLTAyLTExICBSdXNs
YW4gQWJkaWtlZXYgIDxhcnVzbGFuQGNocm9taXVtLm9yZz4KKworICAgICAgICA8bGluayByZWw9
ImFwcGxlLXRvdWNoLWljb24iPiB0YWcgaXMgbm90IGhvbm9yZWQgb24gQ05OLmNvbSwgd29ya2Zs
b3d5LmNvbSBldGMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTEwOTA2MQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgIFRlc3Q6IGZhc3QvZG9tL2ljb24tdXJsLWxpc3QtYXBwbGUtdG91Y2guaHRtbAorCisgICAg
ICAgIEFkZGVkIGljb25UeXBlcyBwYXJhbWV0ZXIgdG8gRG9jdW1lbnQ6Omljb25VUkxzKCkuCisg
ICAgICAgIEFkZGVkIERvY3VtZW50OjpzaG9ydGN1dEljb25VUkxzKCkgd2l0aCBvcmlnaW5hbCBz
ZW1hbnRpY3Mgb2YgaWNvblVSTHMoKS4KKyAgICAgICAgRml4ZWQgSWNvbkNvbnRyb2xsZXIuY3Bw
IHRvIHByb3ZpZGUgaWNvblR5cGVzIHRvIGljb25VUkxzKCkuCisKKyAgICAgICAgKiBXZWJDb3Jl
LmV4cC5pbjoKKyAgICAgICAgKiBkb20vRG9jdW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
RG9jdW1lbnQ6OnNob3J0Y3V0SWNvblVSTHMpOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAg
IChXZWJDb3JlOjpEb2N1bWVudDo6aWNvblVSTHMpOgorICAgICAgICAqIGRvbS9Eb2N1bWVudC5o
OgorICAgICAgICAoRG9jdW1lbnQpOgorICAgICAgICAqIGxvYWRlci9pY29uL0ljb25Db250cm9s
bGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Okljb25Db250cm9sbGVyOjppY29uVVJMKToKKyAg
ICAgICAgKFdlYkNvcmU6Okljb25Db250cm9sbGVyOjp1cmxzRm9yVHlwZXMpOgorICAgICAgICAq
IHRlc3RpbmcvSW50ZXJuYWxzLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkludGVybmFsczo6aWNv
blVSTHMpOgorICAgICAgICAoV2ViQ29yZTo6SW50ZXJuYWxzOjpzaG9ydGN1dEljb25VUkxzKToK
KyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoV2ViQ29yZTo6SW50ZXJuYWxzOjphbGxJY29u
VVJMcyk6CisgICAgICAgIChXZWJDb3JlOjpJbnRlcm5hbHM6OmlzVG91Y2hJY29uc0xvYWRpbmdT
dXBwb3J0ZWQpOgorICAgICAgICAqIHRlc3RpbmcvSW50ZXJuYWxzLmg6CisgICAgICAgICogdGVz
dGluZy9JbnRlcm5hbHMuaWRsOgorCiAyMDEzLTAyLTA2ICBUZXJyeSBBbmRlcnNvbiAgPHRkYW5k
ZXJzb25AY2hyb21pdW0ub3JnPgogCiAgICAgICAgIEFkZCBzdXBwb3J0IGZvciBnZXN0dXJlIHNj
cm9sbCBldmVudHMgdGhhdCBkbyBub3QgcHJvcGFnYXRlIHRvIGVuY2xvc2luZyBzY3JvbGxhYmxl
cwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5leHAuaW4gYi9Tb3VyY2UvV2Vi
Q29yZS9XZWJDb3JlLmV4cC5pbgppbmRleCAwMzhlNWUyZDVhZGE5Zjc4OTkyOGM0YjE5NTI1ZjA3
M2IwZjBiMDE4Li5iZTJjZGFhODM0YjZiNWNiOTFjODEzNzZiMGZhYjM4OWRiNTJjOTAyIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmV4cC5pbgorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9XZWJDb3JlLmV4cC5pbgpAQCAtOTQ3LDcgKzk0Nyw4IEBAIF9fWk43V2ViQ29yZThEb2N1bWVu
dDM2dXBkYXRlTGF5b3V0SWdub3JlUGVuZGluZ1N0eWxlc2hlZXRzRXYKIF9fWk43V2ViQ29yZThE
b2N1bWVudDRoZWFkRXYKIF9fWk43V2ViQ29yZThGb3JtRGF0YTI4cmVtb3ZlR2VuZXJhdGVkRmls
ZXNJZk5lZWRlZEV2CiBfX1pON1dlYkNvcmU4Rm9ybURhdGE2ZGVjb2RlRVJOM1dURjdEZWNvZGVy
RQotX19aTjdXZWJDb3JlOERvY3VtZW50OGljb25VUkxzRXYKK19fWk43V2ViQ29yZThEb2N1bWVu
dDhpY29uVVJMc0VpCitfX1pON1dlYkNvcmU4RG9jdW1lbnQxNnNob3J0Y3V0SWNvblVSTHNFdgog
X19aTjdXZWJDb3JlOEZvcm1EYXRhNmNyZWF0ZUVQS3ZtCiBfX1pON1dlYkNvcmU4Rm9ybURhdGFE
MUV2CiBfX1pON1dlYkNvcmU4R3JhZGllbnQxMmFkZENvbG9yU3RvcEVmUktOU181Q29sb3JFCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwIGIvU291cmNlL1dlYkNv
cmUvZG9tL0RvY3VtZW50LmNwcAppbmRleCA2MjE0NzU2YmMxNDM4OTMxNjk5NjRkZWFjZmY3MmNh
ZmE3MjAzNmIyLi5kOTI0Nzc1NTg0ODk4MWE1YmM5MjhlMDliNGE3NWE0ZjA4MjAzMDY4IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2RvbS9Eb2N1bWVudC5jcHAKQEAgLTQ0NjgsMTQgKzQ0NjgsMTkgQEAgUGFzc1JlZlB0cjxY
UGF0aFJlc3VsdD4gRG9jdW1lbnQ6OmV2YWx1YXRlKGNvbnN0IFN0cmluZyYgZXhwcmVzc2lvbiwK
ICAgICByZXR1cm4gbV94cGF0aEV2YWx1YXRvci0+ZXZhbHVhdGUoZXhwcmVzc2lvbiwgY29udGV4
dE5vZGUsIHJlc29sdmVyLCB0eXBlLCByZXN1bHQsIGVjKTsKIH0KIAotY29uc3QgVmVjdG9yPElj
b25VUkw+JiBEb2N1bWVudDo6aWNvblVSTHMoKQorY29uc3QgVmVjdG9yPEljb25VUkw+JiBEb2N1
bWVudDo6c2hvcnRjdXRJY29uVVJMcygpCit7CisgICAgLy8gSW5jbHVkZSBhbnkgaWNvbnMgd2hl
cmUgdHlwZSA9IGxpbmssIHJlbCA9ICJzaG9ydGN1dCBpY29uIi4KKyAgICByZXR1cm4gaWNvblVS
THMoRmF2aWNvbik7Cit9CisKK2NvbnN0IFZlY3RvcjxJY29uVVJMPiYgRG9jdW1lbnQ6Omljb25V
UkxzKGludCBpY29uVHlwZXMpCiB7CiAgICAgbV9pY29uVVJMcy5jbGVhcigpOwogCiAgICAgaWYg
KCFoZWFkKCkgfHwgIShoZWFkKCktPmNoaWxkcmVuKCkpKQogICAgICAgICByZXR1cm4gbV9pY29u
VVJMczsKIAotICAgIC8vIEluY2x1ZGUgYW55IGljb25zIHdoZXJlIHR5cGUgPSBsaW5rLCByZWwg
PSAic2hvcnRjdXQgaWNvbiIuCiAgICAgUmVmUHRyPEhUTUxDb2xsZWN0aW9uPiBjaGlsZHJlbiA9
IGhlYWQoKS0+Y2hpbGRyZW4oKTsKICAgICB1bnNpZ25lZCBpbnQgbGVuZ3RoID0gY2hpbGRyZW4t
Pmxlbmd0aCgpOwogICAgIGZvciAodW5zaWduZWQgaW50IGkgPSAwOyBpIDwgbGVuZ3RoOyArK2kp
IHsKQEAgLTQ0ODMsNyArNDQ4OCw3IEBAIGNvbnN0IFZlY3RvcjxJY29uVVJMPiYgRG9jdW1lbnQ6
Omljb25VUkxzKCkKICAgICAgICAgaWYgKCFjaGlsZC0+aGFzVGFnTmFtZShsaW5rVGFnKSkKICAg
ICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICBIVE1MTGlua0VsZW1lbnQqIGxpbmtFbGVtZW50
ID0gc3RhdGljX2Nhc3Q8SFRNTExpbmtFbGVtZW50Kj4oY2hpbGQpOwotICAgICAgICBpZiAobGlu
a0VsZW1lbnQtPmljb25UeXBlKCkgIT0gRmF2aWNvbikKKyAgICAgICAgaWYgKCEobGlua0VsZW1l
bnQtPmljb25UeXBlKCkgJiBpY29uVHlwZXMpKQogICAgICAgICAgICAgY29udGludWU7CiAgICAg
ICAgIGlmIChsaW5rRWxlbWVudC0+aHJlZigpLmlzRW1wdHkoKSkKICAgICAgICAgICAgIGNvbnRp
bnVlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmggYi9Tb3VyY2Uv
V2ViQ29yZS9kb20vRG9jdW1lbnQuaAppbmRleCA3YmQ5ZjE5MGM0NzVhNTczMmUzMzIzNTMxZTdl
YjU3NDQxNjJiMTZjLi5lMjA2MTQxOTQzN2Y0YjdhY2E1Yzg0YjIyNTM3OTdiZTFjZDFmODBjIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9kb20vRG9jdW1lbnQuaApAQCAtOTQxLDcgKzk0MSw4IEBAIHB1YmxpYzoKICAgICBib29s
IGhhc05vZGVzV2l0aFBsYWNlaG9sZGVyU3R5bGUoKSBjb25zdCB7IHJldHVybiBtX2hhc05vZGVz
V2l0aFBsYWNlaG9sZGVyU3R5bGU7IH0KICAgICB2b2lkIHNldEhhc05vZGVzV2l0aFBsYWNlaG9s
ZGVyU3R5bGUoKSB7IG1faGFzTm9kZXNXaXRoUGxhY2Vob2xkZXJTdHlsZSA9IHRydWU7IH0KIAot
ICAgIGNvbnN0IFZlY3RvcjxJY29uVVJMPiYgaWNvblVSTHMoKTsKKyAgICBjb25zdCBWZWN0b3I8
SWNvblVSTD4mIHNob3J0Y3V0SWNvblVSTHMoKTsKKyAgICBjb25zdCBWZWN0b3I8SWNvblVSTD4m
IGljb25VUkxzKGludCBpY29uVHlwZXMpOwogICAgIHZvaWQgYWRkSWNvblVSTChjb25zdCBTdHJp
bmcmIHVybCwgY29uc3QgU3RyaW5nJiBtaW1lVHlwZSwgY29uc3QgU3RyaW5nJiBzaXplLCBJY29u
VHlwZSk7CiAKICAgICB2b2lkIHNldFVzZVNlY3VyZUtleWJvYXJkRW50cnlXaGVuQWN0aXZlKGJv
b2wpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2ljb24vSWNvbkNvbnRyb2xs
ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2ljb24vSWNvbkNvbnRyb2xsZXIuY3BwCmlu
ZGV4IDc0ZmFhOTU5Y2FiZTM0NDgxYTBmNTc5ZjdlNTI0MDgyMmUwMTM4MDQuLjNhZDE1OWNmMDY5
OGY5ODA3YzNlOTFmMzhmYWU3YzVkMmMwZWRlNTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2xvYWRlci9pY29uL0ljb25Db250cm9sbGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2Fk
ZXIvaWNvbi9JY29uQ29udHJvbGxlci5jcHAKQEAgLTY4LDEzICs2OCwxMSBAQCBLVVJMIEljb25D
b250cm9sbGVyOjp1cmwoKQogSWNvblVSTCBJY29uQ29udHJvbGxlcjo6aWNvblVSTChJY29uVHlw
ZSBpY29uVHlwZSkgY29uc3QKIHsKICAgICBJY29uVVJMIHJlc3VsdDsKLSAgICBjb25zdCBWZWN0
b3I8SWNvblVSTD4mIGljb25VUkxzID0gbV9mcmFtZS0+ZG9jdW1lbnQoKS0+aWNvblVSTHMoKTsK
KyAgICBjb25zdCBWZWN0b3I8SWNvblVSTD4mIGljb25VUkxzID0gbV9mcmFtZS0+ZG9jdW1lbnQo
KS0+aWNvblVSTHMoaWNvblR5cGUpOwogICAgIFZlY3RvcjxJY29uVVJMPjo6Y29uc3RfaXRlcmF0
b3IgaXRlcihpY29uVVJMcy5iZWdpbigpKTsKICAgICBmb3IgKDsgaXRlciAhPSBpY29uVVJMcy5l
bmQoKTsgKytpdGVyKSB7Ci0gICAgICAgIGlmIChpdGVyLT5tX2ljb25UeXBlID09IGljb25UeXBl
KSB7Ci0gICAgICAgICAgICBpZiAocmVzdWx0Lm1faWNvblVSTC5pc0VtcHR5KCkgfHwgIWl0ZXIt
Pm1fbWltZVR5cGUuaXNFbXB0eSgpKQotICAgICAgICAgICAgICAgIHJlc3VsdCA9ICppdGVyOwot
ICAgICAgICB9CisgICAgICAgIGlmIChyZXN1bHQubV9pY29uVVJMLmlzRW1wdHkoKSB8fCAhaXRl
ci0+bV9taW1lVHlwZS5pc0VtcHR5KCkpCisgICAgICAgICAgICByZXN1bHQgPSAqaXRlcjsKICAg
ICB9CiAKICAgICByZXR1cm4gcmVzdWx0OwpAQCAtMTA1LDExICsxMDMsOCBAQCBJY29uVVJMcyBJ
Y29uQ29udHJvbGxlcjo6dXJsc0ZvclR5cGVzKGludCBpY29uVHlwZXMpCiAjZW5kaWYKIAogICAg
IC8vIEZpbmFsbHksIGFwcGVuZCBhbGwgcmVtYWluaW5nIGljb25zIG9mIHRoaXMgdHlwZS4KLSAg
ICBjb25zdCBWZWN0b3I8SWNvblVSTD4mIGFsbEljb25VUkxzID0gbV9mcmFtZS0+ZG9jdW1lbnQo
KS0+aWNvblVSTHMoKTsKKyAgICBjb25zdCBWZWN0b3I8SWNvblVSTD4mIGFsbEljb25VUkxzID0g
bV9mcmFtZS0+ZG9jdW1lbnQoKS0+aWNvblVSTHMoaWNvblR5cGVzKTsKICAgICBmb3IgKFZlY3Rv
cjxJY29uVVJMPjo6Y29uc3RfaXRlcmF0b3IgaXRlciA9IGFsbEljb25VUkxzLmJlZ2luKCk7IGl0
ZXIgIT0gYWxsSWNvblVSTHMuZW5kKCk7ICsraXRlcikgewotICAgICAgICBpZiAoIShpdGVyLT5t
X2ljb25UeXBlICYgaWNvblR5cGVzKSkKLSAgICAgICAgICAgIGNvbnRpbnVlOwotCiAgICAgICAg
IGludCBpOwogICAgICAgICBpbnQgaWNvbkNvdW50ID0gaWNvblVSTHMuc2l6ZSgpOwogICAgICAg
ICBmb3IgKGkgPSAwOyBpIDwgaWNvbkNvdW50OyArK2kpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50
ZXJuYWxzLmNwcAppbmRleCAzZjc4MjVkYzM5NzMxZDdhZDZmOWQ0ZjA2ZjM3M2NkNTgwMjNmNmI2
Li5jZDk0MDgyNWYxYmI2Yjc1MjA5ZGY1ZjFjZTA4MjdhNThhYmViZTIyIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
dGVzdGluZy9JbnRlcm5hbHMuY3BwCkBAIC0xNjYzLDkgKzE2NjMsOSBAQCBpbnQgSW50ZXJuYWxz
OjpwYWdlTnVtYmVyKEVsZW1lbnQqIGVsZW1lbnQsIGZsb2F0IHBhZ2VXaWR0aCwgZmxvYXQgcGFn
ZUhlaWdodCkKICAgICByZXR1cm4gUHJpbnRDb250ZXh0OjpwYWdlTnVtYmVyRm9yRWxlbWVudChl
bGVtZW50LCBGbG9hdFNpemUocGFnZVdpZHRoLCBwYWdlSGVpZ2h0KSk7CiB9CiAKLVZlY3RvcjxT
dHJpbmc+IEludGVybmFsczo6aWNvblVSTHMoRG9jdW1lbnQqIGRvY3VtZW50KSBjb25zdAorVmVj
dG9yPFN0cmluZz4gSW50ZXJuYWxzOjppY29uVVJMcyhEb2N1bWVudCogZG9jdW1lbnQsIGludCBp
Y29uVHlwZXMpIGNvbnN0CiB7Ci0gICAgVmVjdG9yPEljb25VUkw+IGljb25VUkxzID0gZG9jdW1l
bnQtPmljb25VUkxzKCk7CisgICAgVmVjdG9yPEljb25VUkw+IGljb25VUkxzID0gZG9jdW1lbnQt
Pmljb25VUkxzKGljb25UeXBlcyk7CiAgICAgVmVjdG9yPFN0cmluZz4gYXJyYXk7CiAKICAgICBW
ZWN0b3I8SWNvblVSTD46OmNvbnN0X2l0ZXJhdG9yIGl0ZXIoaWNvblVSTHMuYmVnaW4oKSk7CkBA
IC0xNjc1LDYgKzE2NzUsMjUgQEAgVmVjdG9yPFN0cmluZz4gSW50ZXJuYWxzOjppY29uVVJMcyhE
b2N1bWVudCogZG9jdW1lbnQpIGNvbnN0CiAgICAgcmV0dXJuIGFycmF5OwogfQogCitWZWN0b3I8
U3RyaW5nPiBJbnRlcm5hbHM6OnNob3J0Y3V0SWNvblVSTHMoRG9jdW1lbnQqIGRvY3VtZW50KSBj
b25zdAoreworICAgIHJldHVybiBpY29uVVJMcyhkb2N1bWVudCwgRmF2aWNvbik7Cit9CisKK1Zl
Y3RvcjxTdHJpbmc+IEludGVybmFsczo6YWxsSWNvblVSTHMoRG9jdW1lbnQqIGRvY3VtZW50KSBj
b25zdAoreworICAgIHJldHVybiBpY29uVVJMcyhkb2N1bWVudCwgRmF2aWNvbiB8IFRvdWNoSWNv
biB8IFRvdWNoUHJlY29tcG9zZWRJY29uKTsKK30KKworYm9vbCBJbnRlcm5hbHM6OmlzVG91Y2hJ
Y29uc0xvYWRpbmdTdXBwb3J0ZWQoKSBjb25zdAoreworI2lmIEVOQUJMRShUT1VDSF9JQ09OX0xP
QURJTkcpCisgICAgcmV0dXJuIHRydWU7CisjZWxzZQorICAgIHJldHVybiBmYWxzZTsKKyNlbmRp
ZgorfQorCiBpbnQgSW50ZXJuYWxzOjpudW1iZXJPZlBhZ2VzKGZsb2F0IHBhZ2VXaWR0aCwgZmxv
YXQgcGFnZUhlaWdodCkKIHsKICAgICBpZiAoIWZyYW1lKCkpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5oIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRl
cm5hbHMuaAppbmRleCA4MzE0ZjkzOWI1YWJjZWJkMjA3ODkwY2U5MzQzYzJmNWE2NzE3ZDdiLi5l
Y2IyYTFhYTU0MzUwZWZiN2UzYjg0MDcxMzlhM2RlMTEyYjJiMmE5IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Rlc3Rp
bmcvSW50ZXJuYWxzLmgKQEAgLTI0MSw3ICsyNDEsOSBAQCBwdWJsaWM6CiAgICAgU3RyaW5nIGNv
dW50ZXJWYWx1ZShFbGVtZW50Kik7CiAKICAgICBpbnQgcGFnZU51bWJlcihFbGVtZW50KiwgZmxv
YXQgcGFnZVdpZHRoID0gODAwLCBmbG9hdCBwYWdlSGVpZ2h0ID0gNjAwKTsKLSAgICBWZWN0b3I8
U3RyaW5nPiBpY29uVVJMcyhEb2N1bWVudCopIGNvbnN0OworICAgIFZlY3RvcjxTdHJpbmc+IHNo
b3J0Y3V0SWNvblVSTHMoRG9jdW1lbnQqKSBjb25zdDsKKyAgICBWZWN0b3I8U3RyaW5nPiBhbGxJ
Y29uVVJMcyhEb2N1bWVudCopIGNvbnN0OworICAgIGJvb2wgaXNUb3VjaEljb25zTG9hZGluZ1N1
cHBvcnRlZCgpIGNvbnN0OwogCiAgICAgaW50IG51bWJlck9mUGFnZXMoZmxvYXQgcGFnZVdpZHRo
SW5QaXhlbHMgPSA4MDAsIGZsb2F0IHBhZ2VIZWlnaHRJblBpeGVscyA9IDYwMCk7CiAgICAgU3Ry
aW5nIHBhZ2VQcm9wZXJ0eShTdHJpbmcsIGludCwgRXhjZXB0aW9uQ29kZSYgPSBBU1NFUlRfTk9f
RVhDRVBUSU9OKSBjb25zdDsKQEAgLTI3OCw2ICsyODAsNyBAQCBwcml2YXRlOgogICAgIGV4cGxp
Y2l0IEludGVybmFscyhEb2N1bWVudCopOwogICAgIERvY3VtZW50KiBjb250ZXh0RG9jdW1lbnQo
KSBjb25zdDsKICAgICBGcmFtZSogZnJhbWUoKSBjb25zdDsKKyAgICBWZWN0b3I8U3RyaW5nPiBp
Y29uVVJMcyhEb2N1bWVudCosIGludCBpY29uVHlwZXMpIGNvbnN0OwogCiAgICAgRG9jdW1lbnRN
YXJrZXIqIG1hcmtlckF0KE5vZGUqLCBjb25zdCBTdHJpbmcmIG1hcmtlclR5cGUsIHVuc2lnbmVk
IGluZGV4LCBFeGNlcHRpb25Db2RlJik7CiAjaWYgRU5BQkxFKElOU1BFQ1RPUikKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmlkbCBiL1NvdXJjZS9XZWJDb3Jl
L3Rlc3RpbmcvSW50ZXJuYWxzLmlkbAppbmRleCBmN2E5N2FiODhlZjM1OTRkZWRiMDBlM2YyMGY4
NmI1NDQ2OGUzOGQwLi4wZjBiZTM0MTdiMzJmODcyZmYzYTc5NDRmM2E4NmE3YTllYWMxOTMwIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5pZGwKKysrIGIvU291
cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaWRsCkBAIC0yMDgsNyArMjA4LDkgQEAKIAog
ICAgIERPTVN0cmluZyBjb3VudGVyVmFsdWUoaW4gRWxlbWVudCBlbGVtZW50KTsKICAgICBsb25n
IHBhZ2VOdW1iZXIoaW4gRWxlbWVudCBlbGVtZW50LCBpbiBbT3B0aW9uYWxdIGZsb2F0IHBhZ2VX
aWR0aCwgaW4gW09wdGlvbmFsXSBmbG9hdCBwYWdlSGVpZ2h0KTsKLSAgICBET01TdHJpbmdbXSBp
Y29uVVJMcyhpbiBEb2N1bWVudCBkb2N1bWVudCk7CisgICAgRE9NU3RyaW5nW10gc2hvcnRjdXRJ
Y29uVVJMcyhpbiBEb2N1bWVudCBkb2N1bWVudCk7CisgICAgRE9NU3RyaW5nW10gYWxsSWNvblVS
THMoaW4gRG9jdW1lbnQgZG9jdW1lbnQpOworICAgIGJvb2xlYW4gaXNUb3VjaEljb25zTG9hZGlu
Z1N1cHBvcnRlZCgpOwogICAgIGxvbmcgbnVtYmVyT2ZQYWdlcyhpbiBbT3B0aW9uYWxdIGRvdWJs
ZSBwYWdlV2lkdGhJblBpeGVscywgaW4gW09wdGlvbmFsXSBkb3VibGUgcGFnZUhlaWdodEluUGl4
ZWxzKTsKICAgICBET01TdHJpbmcgcGFnZVByb3BlcnR5KGluIERPTVN0cmluZyBwcm9wZXJ0eU5h
bWUsIGluIGxvbmcgcGFnZU51bWJlcikgcmFpc2VzIChET01FeGNlcHRpb24pOwogICAgIERPTVN0
cmluZyBwYWdlU2l6ZUFuZE1hcmdpbnNJblBpeGVscyhpbiBsb25nIHBhZ2VJbmRleCwgaW4gbG9u
ZyB3aWR0aCwgaW4gbG9uZyBoZWlnaHQsIGluIGxvbmcgbWFyZ2luVG9wLCBpbiBsb25nIG1hcmdp
blJpZ2h0LCBpbiBsb25nIG1hcmdpbkJvdHRvbSwgaW4gbG9uZyBtYXJnaW5MZWZ0KSByYWlzZXMg
KERPTUV4Y2VwdGlvbik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvYXV0b3Rvb2xzL3N5bWJvbHMuZmls
dGVyIGIvU291cmNlL2F1dG90b29scy9zeW1ib2xzLmZpbHRlcgppbmRleCA5ZDczMGIzZTBjMzhj
NDhjYzAzN2U4YzRjOGMxNDFjNWMzMTY4YjNjLi44ZmQwNTZkOWMyNGUxYzVkZjEzMTlhY2M0Njdi
MTFkOTZhODdjZjI0IDEwMDY0NAotLS0gYS9Tb3VyY2UvYXV0b3Rvb2xzL3N5bWJvbHMuZmlsdGVy
CisrKyBiL1NvdXJjZS9hdXRvdG9vbHMvc3ltYm9scy5maWx0ZXIKQEAgLTQxLDcgKzQxLDggQEAg
X1pON1dlYkNvcmU0dG9KU0VQTjNKU0M5RXhlY1N0YXRlRVBOU18xN0pTRE9NR2xvYmFsT2JqZWN0
RVBOU181UmFuZ2VFOwogX1pON1dlYkNvcmU1UmFuZ2U2Y3JlYXRlRU4zV1RGMTBQYXNzUmVmUHRy
SU5TXzhEb2N1bWVudEVFRU5TMl9JTlNfNE5vZGVFRUVpUzZfaTsKIF9aTjdXZWJDb3JlNVJhbmdl
RDFFdjsKIF9aTjdXZWJDb3JlOERvY3VtZW50MzZ1cGRhdGVMYXlvdXRJZ25vcmVQZW5kaW5nU3R5
bGVzaGVldHNFdjsKLV9aTjdXZWJDb3JlOERvY3VtZW50OGljb25VUkxzRXY7CitfWk43V2ViQ29y
ZThEb2N1bWVudDhpY29uVVJMc0VpOworX1pON1dlYkNvcmU4RG9jdW1lbnQxNnNob3J0Y3V0SWNv
blVSTHNFdjsKIF9aTjdXZWJDb3JlOUhUTUxOYW1lczhpbnB1dFRhZ0U7CiBfWk43V2ViQ29yZTlI
VE1MTmFtZXMxMXRleHRhcmVhVGFnRTsKIF9aTjdXZWJDb3JlMTBKU0RvY3VtZW50MTBwdXRWaXJ0
dWFsRVBOM0pTQzlFeGVjU3RhdGVFUktOUzFfMTBJZGVudGlmaWVyRU5TMV83SlNWYWx1ZUVSTlMx
XzE1UHV0UHJvcGVydHlTbG90RTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBi
L0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCBjMDZlZTYyMGJhYTZjZmZhZDNiNjY3MGZmN2Uw
M2YzZGY1NDU3NDE0Li42MmNjYjk3ZjgxODkyMzA5NDM5ZWRjMjZmMzJhMTBiNDQ3MWI2MzA1IDEw
MDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdl
TG9nCkBAIC0xLDMgKzEsMTkgQEAKKzIwMTMtMDItMTEgIFJ1c2xhbiBBYmRpa2VldiAgPGFydXNs
YW5AY2hyb21pdW0ub3JnPgorCisgICAgICAgIDxsaW5rIHJlbD0iYXBwbGUtdG91Y2gtaWNvbiI+
IHRhZyBpcyBub3QgaG9ub3JlZCBvbiBDTk4uY29tLCB3b3JrZmxvd3kuY29tIGV0YworICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTA5MDYxCisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkZWQgdGVzdCBmb3Ig
YXBwbGUtdG91Y2gtaWNvbiBpbiBhbGxJY29uVVJMcygpLgorICAgICAgICBDaGFuZ2VkIGljb25V
UkxzKCkgdG8gc2hvcnRjdXRJY29uVVJMcygpLgorCisgICAgICAgICogZmFzdC9kb20vaWNvbi11
cmwtY2hhbmdlLmh0bWw6CisgICAgICAgICogZmFzdC9kb20vaWNvbi11cmwtbGlzdC1hcHBsZS10
b3VjaC1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZG9tL2ljb24tdXJsLWxp
c3QtYXBwbGUtdG91Y2guaHRtbDogQWRkZWQuCisgICAgICAgICogZmFzdC9kb20vaWNvbi11cmwt
bGlzdC5odG1sOgorICAgICAgICAqIGZhc3QvZG9tL2ljb24tdXJsLXByb3BlcnR5Lmh0bWw6CisK
IDIwMTMtMDItMDYgIFRlcnJ5IEFuZGVyc29uICA8dGRhbmRlcnNvbkBjaHJvbWl1bS5vcmc+CiAK
ICAgICAgICAgQWRkIHN1cHBvcnQgZm9yIGdlc3R1cmUgc2Nyb2xsIGV2ZW50cyB0aGF0IGRvIG5v
dCBwcm9wYWdhdGUgdG8gZW5jbG9zaW5nIHNjcm9sbGFibGVzCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9mYXN0L2RvbS9pY29uLXVybC1jaGFuZ2UuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZG9t
L2ljb24tdXJsLWNoYW5nZS5odG1sCmluZGV4IDgyZDUzNGVlY2RhN2NkMTRhYjU1OTkzMWEyMmIy
Nzk5MmE2ZmU1ZTcuLjk5MzI3MmVkYmMyZmEyZjY2N2FjNDg5OWU2NzBjMmM1MDcwZWRkMWYgMTAw
NjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL2ljb24tdXJsLWNoYW5nZS5odG1sCisrKyBi
L0xheW91dFRlc3RzL2Zhc3QvZG9tL2ljb24tdXJsLWNoYW5nZS5odG1sCkBAIC00NSw3ICs0NSw3
IEBAIGZ1bmN0aW9uIHJ1blRlc3RzKCkgewogCiAgICAgLy8gY2hlY2sgdGhhdCB0aGUgVVJMIGxp
c3QgaW4gdGhlIGRvY3VtZW50IGlzIGFzIHdlIGV4cGVjdAogICAgIHZhciBleHBlY3RlZFVSTHMg
PSAiaHR0cDovL3Rlc3QuY29tL29sZGZhdmljb24uaWNvIjsKLSAgICB2YXIgaWNvblVSTHMgPSB3
aW5kb3cuaW50ZXJuYWxzLmljb25VUkxzKGRvY3VtZW50KTsKKyAgICB2YXIgaWNvblVSTHMgPSB3
aW5kb3cuaW50ZXJuYWxzLnNob3J0Y3V0SWNvblVSTHMoZG9jdW1lbnQpOwogICAgIGlmIChleHBl
Y3RlZFVSTHMgPT0gaWNvblVSTHNbMF0pCiAgICAgICAgIHRlc3RQYXNzZWQoJ1VSTCBsaXN0IG1h
dGNoZXMgZXhwZWN0ZWQnKTsKICAgICBlbHNlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0
L2RvbS9pY29uLXVybC1saXN0LWFwcGxlLXRvdWNoLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3Rz
L2Zhc3QvZG9tL2ljb24tdXJsLWxpc3QtYXBwbGUtdG91Y2gtZXhwZWN0ZWQudHh0Cm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLjk5M2M1NTVmOGE1YzRkZDFjZDVhZWE0MGRmNThjOTc0NTJjZDgxYWIKLS0tIC9kZXYvbnVs
bAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9pY29uLXVybC1saXN0LWFwcGxlLXRvdWNoLWV4
cGVjdGVkLnR4dApAQCAtMCwwICsxLDMgQEAKK1Rlc3RzIHRoYXQgYWxsIGZhdmljb25zIGFuZCB0
b3VjaCBpY29ucyAoaWYgRU5BQkxFKFRPVUNIX0lDT05fTE9BRElORykpIGFyZSBpbiBkb2N1bWVu
dC5pY29uVVJMcygpCitQQVNTIFVSTCBsaXN0IG1hdGNoZXMgZXhwZWN0ZWQKKwpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vaWNvbi11cmwtbGlzdC1hcHBsZS10b3VjaC5odG1sIGIv
TGF5b3V0VGVzdHMvZmFzdC9kb20vaWNvbi11cmwtbGlzdC1hcHBsZS10b3VjaC5odG1sCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLjAxYjk5NGM4YjRiZGFiOTJjZWRlMWQ2OTNkOTI3N2ZjNmI2Y2NlNzQKLS0tIC9kZXYv
bnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9pY29uLXVybC1saXN0LWFwcGxlLXRvdWNo
Lmh0bWwKQEAgLTAsMCArMSw0OSBAQAorPGh0bWw+Cis8aGVhZD4KKzx0aXRsZT5PcmlnaW5hbCBU
aXRsZTwvdGl0bGU+Cis8bGluayByZWw9InNob3J0Y3V0IGljb24iIHR5cGU9ImltYWdlL3gtaWNv
biIgaHJlZj0iaHR0cDovL3Rlc3QuY29tL29sZGZhdmljb24uaWNvIi8+Cis8bGluayByZWw9ImFw
cGxlLXRvdWNoLWljb24iIHR5cGU9ImltYWdlL3BuZyIgaHJlZj0iaHR0cDovL3Rlc3QuY29tL2kv
dG91Y2gucG5nIi8+Cis8bGluayByZWw9ImFwcGxlLXRvdWNoLWljb24tcHJlY29tcG9zZWQiIHR5
cGU9ImltYWdlL3BuZyIgaHJlZj0iaHR0cDovL3Rlc3QuY29tL2kvdG91Y2gtcHJlY29tcG9zZWQu
cG5nIi8+Cis8c2NyaXB0IHNyYz0iLi4vanMvcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3Nj
cmlwdD4KKzxzY3JpcHQ+CisKK2Z1bmN0aW9uIHJ1blRlc3RzKCkgeworICAgIGlmICh3aW5kb3cu
dGVzdFJ1bm5lcikKKyAgICAgICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7CisKKyAgICBkZWJ1
ZygnVGVzdHMgdGhhdCBhbGwgZmF2aWNvbnMgYW5kIHRvdWNoIGljb25zIChpZiBFTkFCTEUoVE9V
Q0hfSUNPTl9MT0FESU5HKSkgYXJlIGluIGRvY3VtZW50Lmljb25VUkxzKCknKTsKKworICAgIC8v
IEZldGNoIHRoZSBhY3R1YWwgbGlzdCBvZiBpY29uIFVSTHMuCisgICAgdmFyIHN1cHBvcnRzVG91
Y2hJY29ucyA9IHdpbmRvdy5pbnRlcm5hbHMuaXNUb3VjaEljb25zTG9hZGluZ1N1cHBvcnRlZCgp
OworICAgIHZhciBhY3R1YWxVUkxzID0gd2luZG93LmludGVybmFscy5hbGxJY29uVVJMcyhkb2N1
bWVudCk7CisKKyAgICAvLyBDaGVjayB0aGF0IHRoZSBVUkwgbGlzdCBpbiB0aGUgZG9jdW1lbnQg
aXMgYXMgd2UgZXhwZWN0LgorICAgIC8vIE5vdGUgdGhhdCB0aGUgZXhwZWN0ZWQgb3JkZXIgaXMg
cmV2ZXJzZSB0byBlbnN1cmUgdGhhdCBpY29ucyBzZWVuIGxhdGVyCisgICAgLy8gdGFrZSBwcmVj
ZWRlbmNlIGFzIHJlcXVpcmVkIGJ5IHRoZSBzcGVjLgorICAgIHZhciBleHBlY3RlZFVSTHMgPSBz
dXBwb3J0c1RvdWNoSWNvbnMgPyBbCisgICAgICAgICJodHRwOi8vdGVzdC5jb20vaS90b3VjaC1w
cmVjb21wb3NlZC5wbmciLAorICAgICAgICAiaHR0cDovL3Rlc3QuY29tL2kvdG91Y2gucG5nIiwK
KyAgICAgICAgImh0dHA6Ly90ZXN0LmNvbS9vbGRmYXZpY29uLmljbyIsCisgICAgXSA6IFsKKyAg
ICAgICAgImh0dHA6Ly90ZXN0LmNvbS9vbGRmYXZpY29uLmljbyIKKyAgICBdOworICAgIHZhciBz
dWNjZXNzID0gZXhwZWN0ZWRVUkxzLmxlbmd0aCA9PSBhY3R1YWxVUkxzLmxlbmd0aDsKKyAgICBm
b3IgKHZhciBpID0gMDsgc3VjY2VzcyAmJiBpIDwgYWN0dWFsVVJMcy5sZW5ndGg7IGkrKykgewor
ICAgICAgICBpZiAoZXhwZWN0ZWRVUkxzW2ldICE9IGFjdHVhbFVSTHNbaV0pIHsKKyAgICAgICAg
ICAgIGRlYnVnKCdtaXNtYXRjaCBleHBlY3RlZD0nICsgZXhwZWN0ZWRVUkxzW2ldICsKKyAgICAg
ICAgICAgICAgICAgICAgJyBhY3R1YWw9JyArIGFjdHVhbFVSTHNbaV0pOworICAgICAgICAgICAg
c3VjY2VzcyA9IGZhbHNlOworICAgICAgICB9CisgICAgfQorICAgIGlmIChzdWNjZXNzKQorICAg
ICAgICB0ZXN0UGFzc2VkKCdVUkwgbGlzdCBtYXRjaGVzIGV4cGVjdGVkJyk7CisgICAgZWxzZQor
ICAgICAgICB0ZXN0RmFpbGVkKCdVUkwgbGlzdCBkb2VzIG5vdCBtYXRjaCBleHBlY3RlZCcpOwor
fQorCis8L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5IG9ubG9hZD0ncnVuVGVzdHMoKTsnPgorPC9k
aXY+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9p
Y29uLXVybC1saXN0Lmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9pY29uLXVybC1saXN0Lmh0
bWwKaW5kZXggZGRhMDBlNzJlZmZiZmUxZDJiMjkxNmFjODIzZDRjYjhlZTQ2ZDQ1NC4uNmQzZGZk
YTZhNWRlNDk5YTA3ZTEyNTk3NTc4ZjM0MGVkZTgzN2Y1ZiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVz
dHMvZmFzdC9kb20vaWNvbi11cmwtbGlzdC5odG1sCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZG9t
L2ljb24tdXJsLWxpc3QuaHRtbApAQCAtNDgsNyArNDgsNyBAQCBmdW5jdGlvbiBydW5UZXN0cygp
IHsKICAgICB2YXIgZXhwZWN0ZWRVUkwwID0gImh0dHA6Ly90ZXN0LmNvbS9iYXJmYXZpY29uLmlj
byI7CiAgICAgdmFyIGV4cGVjdGVkVVJMMSA9ICJodHRwOi8vdGVzdC5jb20vZm9vZmF2aWNvbi5p
Y28iOwogICAgIHZhciBleHBlY3RlZFVSTDIgPSAiaHR0cDovL3Rlc3QuY29tL25ld2Zhdmljb24u
aWNvIjsKLSAgICB2YXIgaWNvblVSTHMgPSB3aW5kb3cuaW50ZXJuYWxzLmljb25VUkxzKGRvY3Vt
ZW50KTsKKyAgICB2YXIgaWNvblVSTHMgPSB3aW5kb3cuaW50ZXJuYWxzLnNob3J0Y3V0SWNvblVS
THMoZG9jdW1lbnQpOwogICAgIGlmIChleHBlY3RlZFVSTDAgPT0gaWNvblVSTHNbMF0gJiYgZXhw
ZWN0ZWRVUkwxID09IGljb25VUkxzWzFdICYmIGV4cGVjdGVkVVJMMiA9PSBpY29uVVJMc1syXSkg
CiAgICAgICAgIHRlc3RQYXNzZWQoJ1VSTCBsaXN0IG1hdGNoZXMgZXhwZWN0ZWQnKTsKICAgICBl
bHNlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9pY29uLXVybC1wcm9wZXJ0eS5o
dG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vaWNvbi11cmwtcHJvcGVydHkuaHRtbAppbmRleCA4
YTZiOWMyMzg4NTA2ZTBlMjg0MmQzN2VjMDcxMDg1NWJmNGZiOWY1Li4yZDFjMDEyMTU3MWE5N2Jm
MTU0M2Q0MTY1NDZmNzY4ZTc1MTYxZWQzIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2Rv
bS9pY29uLXVybC1wcm9wZXJ0eS5odG1sCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL2ljb24t
dXJsLXByb3BlcnR5Lmh0bWwKQEAgLTQzLDcgKzQzLDcgQEAgZnVuY3Rpb24gcnVuVGVzdHMoKSB7
CiAKICAgICAvLyBjaGVjayB0aGF0IHRoZSBVUkwgbGlzdCBpbiB0aGUgZG9jdW1lbnQgaXMgYXMg
d2UgZXhwZWN0CiAgICAgdmFyIGV4cGVjdGVkVVJMcyA9ICJodHRwOi8vdGVzdC5jb20vbmV3ZmF2
aWNvbi5pY28iOwotICAgIHZhciBpY29uVVJMcyA9IHdpbmRvdy5pbnRlcm5hbHMuaWNvblVSTHMo
ZG9jdW1lbnQpOworICAgIHZhciBpY29uVVJMcyA9IHdpbmRvdy5pbnRlcm5hbHMuc2hvcnRjdXRJ
Y29uVVJMcyhkb2N1bWVudCk7CiAgICAgaWYgKGV4cGVjdGVkVVJMcyA9PSBpY29uVVJMc1swXSkK
ICAgICAgICAgZGVidWdPdXRwdXQoJ1BBU1MgLSBVUkwgbGlzdCBtYXRjaGVzIGV4cGVjdGVkJyk7
CiAgICAgZWxzZQpkaWZmIC0tZ2l0IGEvQ2hhbmdlTG9nIGIvQ2hhbmdlTG9nCmluZGV4IDk5ZjE3
YjJlMDBjYjlmZWYxNzE3Yjg0Yjc4YTkwNmVmYjBhN2UwYzAuLjc2N2QxYTFmN2NiMjlhZjJkYTEw
NTVlOWNhZjI2NTZiMmVhOTM5NjcgMTAwNjQ0Ci0tLSBhL0NoYW5nZUxvZworKysgYi9DaGFuZ2VM
b2cKQEAgLTEsMyArMSwxMiBAQAorMjAxMy0wMi0xMSAgUnVzbGFuIEFiZGlrZWV2ICA8YXJ1c2xh
bkBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgPGxpbmsgcmVsPSJhcHBsZS10b3VjaC1pY29uIj4g
dGFnIGlzIG5vdCBob25vcmVkIG9uIENOTi5jb20sIHdvcmtmbG93eS5jb20gZXRjCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDkwNjEKKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFNvdXJjZS9hdXRvdG9v
bHMvc3ltYm9scy5maWx0ZXI6CisKIDIwMTMtMDItMDYgIEpvbmF0aG9uIEpvbmdzbWEgIDxqb25h
dGhvbi5qb25nc21hQGNvbGxhYm9yYS5jb20+CiAKICAgICAgICAgW0dTdHJlYW1lcl0gTWVkaWFQ
bGF5ZXIncyBjb2RlIGlzIG5vdCBlYXNpbHkgcmV1c2FibGUgYnkgb3RoZXIgR1N0cmVhbWVyLWJh
c2VkIHBsYXllcnMK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>187746</attachid>
            <date>2013-02-11 18:36:25 -0800</date>
            <delta_ts>2013-02-13 10:03:00 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-109061-20130211183256.patch</filename>
            <type>text/plain</type>
            <size>16565</size>
            <attacher name="Ruslan Abdikeev">aruslan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQyNTY1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYmFiYWJlMzFkMWMxNDhm
NDRjZjIwMmVmNjVjOTZhNWM4NGE4OGY1YS4uMWE4NTYzMmNkZDI0ZmM0ZDIyYWZiY2UxMDM1MDI1
NDdhYjgyZjVhYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM1IEBACisyMDEzLTAyLTExICBSdXNs
YW4gQWJkaWtlZXYgIDxhcnVzbGFuQGNocm9taXVtLm9yZz4KKworICAgICAgICA8bGluayByZWw9
ImFwcGxlLXRvdWNoLWljb24iPiB0YWcgaXMgbm90IGhvbm9yZWQgb24gQ05OLmNvbSwgd29ya2Zs
b3d5LmNvbSBldGMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTEwOTA2MQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgIFRlc3Q6IGZhc3QvZG9tL2ljb24tdXJsLWxpc3QtYXBwbGUtdG91Y2guaHRtbAorCisgICAg
ICAgIEFkZGVkIGljb25UeXBlcyBwYXJhbWV0ZXIgdG8gRG9jdW1lbnQ6Omljb25VUkxzKCkuCisg
ICAgICAgIEFkZGVkIERvY3VtZW50OjpzaG9ydGN1dEljb25VUkxzKCkgd2l0aCBvcmlnaW5hbCBz
ZW1hbnRpY3Mgb2YgaWNvblVSTHMoKS4KKyAgICAgICAgRml4ZWQgSWNvbkNvbnRyb2xsZXIuY3Bw
IHRvIHByb3ZpZGUgaWNvblR5cGVzIHRvIGljb25VUkxzKCkuCisKKyAgICAgICAgKiBXZWJDb3Jl
LmV4cC5pbjoKKyAgICAgICAgKiBkb20vRG9jdW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
RG9jdW1lbnQ6OnNob3J0Y3V0SWNvblVSTHMpOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAg
IChXZWJDb3JlOjpEb2N1bWVudDo6aWNvblVSTHMpOgorICAgICAgICAqIGRvbS9Eb2N1bWVudC5o
OgorICAgICAgICAoRG9jdW1lbnQpOgorICAgICAgICAqIGxvYWRlci9pY29uL0ljb25Db250cm9s
bGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Okljb25Db250cm9sbGVyOjppY29uVVJMKToKKyAg
ICAgICAgKFdlYkNvcmU6Okljb25Db250cm9sbGVyOjp1cmxzRm9yVHlwZXMpOgorICAgICAgICAq
IHRlc3RpbmcvSW50ZXJuYWxzLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkludGVybmFsczo6aWNv
blVSTHMpOgorICAgICAgICAoV2ViQ29yZTo6SW50ZXJuYWxzOjpzaG9ydGN1dEljb25VUkxzKToK
KyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoV2ViQ29yZTo6SW50ZXJuYWxzOjphbGxJY29u
VVJMcyk6CisgICAgICAgIChXZWJDb3JlOjpJbnRlcm5hbHM6OmlzVG91Y2hJY29uc0xvYWRpbmdT
dXBwb3J0ZWQpOgorICAgICAgICAqIHRlc3RpbmcvSW50ZXJuYWxzLmg6CisgICAgICAgICogdGVz
dGluZy9JbnRlcm5hbHMuaWRsOgorCiAyMDEzLTAyLTExICBLZW50YXJvIEhhcmEgIDxoYXJha2Vu
QGNocm9taXVtLm9yZz4KIAogICAgICAgICBbVjhdIFNjaGVkdWxlZEFjdGlvbjo6bV9jb250ZXh0
IGNhbiBiZSBlbXB0eSwgc28gd2Ugc2hvdWxkbid0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9XZWJDb3JlLmV4cC5pbiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZXhwLmluCmluZGV4IDQy
ODhjMmJiNmI1MTJkODI1ZmEyNTRkYzRiNDRjODlhMThhNjA4MzAuLjZlZGE4ZmM1ZDQwMjE5Mzk3
ZmIwZmI5MTAxYTBiYWM0ZTMwMTI2ZDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNv
cmUuZXhwLmluCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZXhwLmluCkBAIC05NjQsNyAr
OTY0LDggQEAgX19aTjdXZWJDb3JlOERvY3VtZW50MzZ1cGRhdGVMYXlvdXRJZ25vcmVQZW5kaW5n
U3R5bGVzaGVldHNFdgogX19aTjdXZWJDb3JlOERvY3VtZW50NGhlYWRFdgogX19aTjdXZWJDb3Jl
OEZvcm1EYXRhMjhyZW1vdmVHZW5lcmF0ZWRGaWxlc0lmTmVlZGVkRXYKIF9fWk43V2ViQ29yZThG
b3JtRGF0YTZkZWNvZGVFUk4zV1RGN0RlY29kZXJFCi1fX1pON1dlYkNvcmU4RG9jdW1lbnQ4aWNv
blVSTHNFdgorX19aTjdXZWJDb3JlOERvY3VtZW50OGljb25VUkxzRWkKK19fWk43V2ViQ29yZThE
b2N1bWVudDE2c2hvcnRjdXRJY29uVVJMc0V2CiBfX1pON1dlYkNvcmU4Rm9ybURhdGE2Y3JlYXRl
RVBLdm0KIF9fWk43V2ViQ29yZThGb3JtRGF0YUQxRXYKIF9fWk43V2ViQ29yZThHcmFkaWVudDEy
YWRkQ29sb3JTdG9wRWZSS05TXzVDb2xvckUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Rv
bS9Eb2N1bWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCmluZGV4IDRk
NjI5NjNjYTExZTUwOThmMGUxZjc3NzcyZjFhZDg5MWM1ODhkMzcuLmIwNjFjYTQ3MWY1ZTFlMjcw
MTVhNzEwYTdkYmNlYzkxNzBhNjE3ZDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9E
b2N1bWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcApAQCAtNDQ2
NSwxNCArNDQ2NSwxOSBAQCBQYXNzUmVmUHRyPFhQYXRoUmVzdWx0PiBEb2N1bWVudDo6ZXZhbHVh
dGUoY29uc3QgU3RyaW5nJiBleHByZXNzaW9uLAogICAgIHJldHVybiBtX3hwYXRoRXZhbHVhdG9y
LT5ldmFsdWF0ZShleHByZXNzaW9uLCBjb250ZXh0Tm9kZSwgcmVzb2x2ZXIsIHR5cGUsIHJlc3Vs
dCwgZWMpOwogfQogCi1jb25zdCBWZWN0b3I8SWNvblVSTD4mIERvY3VtZW50OjppY29uVVJMcygp
Citjb25zdCBWZWN0b3I8SWNvblVSTD4mIERvY3VtZW50OjpzaG9ydGN1dEljb25VUkxzKCkKK3sK
KyAgICAvLyBJbmNsdWRlIGFueSBpY29ucyB3aGVyZSB0eXBlID0gbGluaywgcmVsID0gInNob3J0
Y3V0IGljb24iLgorICAgIHJldHVybiBpY29uVVJMcyhGYXZpY29uKTsKK30KKworY29uc3QgVmVj
dG9yPEljb25VUkw+JiBEb2N1bWVudDo6aWNvblVSTHMoaW50IGljb25UeXBlcykKIHsKICAgICBt
X2ljb25VUkxzLmNsZWFyKCk7CiAKICAgICBpZiAoIWhlYWQoKSB8fCAhKGhlYWQoKS0+Y2hpbGRy
ZW4oKSkpCiAgICAgICAgIHJldHVybiBtX2ljb25VUkxzOwogCi0gICAgLy8gSW5jbHVkZSBhbnkg
aWNvbnMgd2hlcmUgdHlwZSA9IGxpbmssIHJlbCA9ICJzaG9ydGN1dCBpY29uIi4KICAgICBSZWZQ
dHI8SFRNTENvbGxlY3Rpb24+IGNoaWxkcmVuID0gaGVhZCgpLT5jaGlsZHJlbigpOwogICAgIHVu
c2lnbmVkIGludCBsZW5ndGggPSBjaGlsZHJlbi0+bGVuZ3RoKCk7CiAgICAgZm9yICh1bnNpZ25l
ZCBpbnQgaSA9IDA7IGkgPCBsZW5ndGg7ICsraSkgewpAQCAtNDQ4MCw3ICs0NDg1LDcgQEAgY29u
c3QgVmVjdG9yPEljb25VUkw+JiBEb2N1bWVudDo6aWNvblVSTHMoKQogICAgICAgICBpZiAoIWNo
aWxkLT5oYXNUYWdOYW1lKGxpbmtUYWcpKQogICAgICAgICAgICAgY29udGludWU7CiAgICAgICAg
IEhUTUxMaW5rRWxlbWVudCogbGlua0VsZW1lbnQgPSBzdGF0aWNfY2FzdDxIVE1MTGlua0VsZW1l
bnQqPihjaGlsZCk7Ci0gICAgICAgIGlmIChsaW5rRWxlbWVudC0+aWNvblR5cGUoKSAhPSBGYXZp
Y29uKQorICAgICAgICBpZiAoIShsaW5rRWxlbWVudC0+aWNvblR5cGUoKSAmIGljb25UeXBlcykp
CiAgICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgaWYgKGxpbmtFbGVtZW50LT5ocmVmKCku
aXNFbXB0eSgpKQogICAgICAgICAgICAgY29udGludWU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9kb20vRG9jdW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oCmluZGV4
IDcyYzgzOTkzYmUwN2ZmOGMyNzYyMDI5OWFhMjE2NDk2Y2Y3ZjU5ZTcuLjkwMWI0YjgyNWNiODdk
ZTliNDc2ZjhjODcxYjk4Y2FlOTFhNzllNGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Rv
bS9Eb2N1bWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oCkBAIC05NDEs
NyArOTQxLDggQEAgcHVibGljOgogICAgIGJvb2wgaGFzTm9kZXNXaXRoUGxhY2Vob2xkZXJTdHls
ZSgpIGNvbnN0IHsgcmV0dXJuIG1faGFzTm9kZXNXaXRoUGxhY2Vob2xkZXJTdHlsZTsgfQogICAg
IHZvaWQgc2V0SGFzTm9kZXNXaXRoUGxhY2Vob2xkZXJTdHlsZSgpIHsgbV9oYXNOb2Rlc1dpdGhQ
bGFjZWhvbGRlclN0eWxlID0gdHJ1ZTsgfQogCi0gICAgY29uc3QgVmVjdG9yPEljb25VUkw+JiBp
Y29uVVJMcygpOworICAgIGNvbnN0IFZlY3RvcjxJY29uVVJMPiYgc2hvcnRjdXRJY29uVVJMcygp
OworICAgIGNvbnN0IFZlY3RvcjxJY29uVVJMPiYgaWNvblVSTHMoaW50IGljb25UeXBlcyk7CiAg
ICAgdm9pZCBhZGRJY29uVVJMKGNvbnN0IFN0cmluZyYgdXJsLCBjb25zdCBTdHJpbmcmIG1pbWVU
eXBlLCBjb25zdCBTdHJpbmcmIHNpemUsIEljb25UeXBlKTsKIAogICAgIHZvaWQgc2V0VXNlU2Vj
dXJlS2V5Ym9hcmRFbnRyeVdoZW5BY3RpdmUoYm9vbCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9sb2FkZXIvaWNvbi9JY29uQ29udHJvbGxlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2Fk
ZXIvaWNvbi9JY29uQ29udHJvbGxlci5jcHAKaW5kZXggNzRmYWE5NTljYWJlMzQ0ODFhMGY1Nzlm
N2U1MjQwODIyZTAxMzgwNC4uM2FkMTU5Y2YwNjk4Zjk4MDdjM2U5MWYzOGZhZTdjNWQyYzBlZGU1
MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2ljb24vSWNvbkNvbnRyb2xsZXIu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9pY29uL0ljb25Db250cm9sbGVyLmNwcApA
QCAtNjgsMTMgKzY4LDExIEBAIEtVUkwgSWNvbkNvbnRyb2xsZXI6OnVybCgpCiBJY29uVVJMIElj
b25Db250cm9sbGVyOjppY29uVVJMKEljb25UeXBlIGljb25UeXBlKSBjb25zdAogewogICAgIElj
b25VUkwgcmVzdWx0OwotICAgIGNvbnN0IFZlY3RvcjxJY29uVVJMPiYgaWNvblVSTHMgPSBtX2Zy
YW1lLT5kb2N1bWVudCgpLT5pY29uVVJMcygpOworICAgIGNvbnN0IFZlY3RvcjxJY29uVVJMPiYg
aWNvblVSTHMgPSBtX2ZyYW1lLT5kb2N1bWVudCgpLT5pY29uVVJMcyhpY29uVHlwZSk7CiAgICAg
VmVjdG9yPEljb25VUkw+Ojpjb25zdF9pdGVyYXRvciBpdGVyKGljb25VUkxzLmJlZ2luKCkpOwog
ICAgIGZvciAoOyBpdGVyICE9IGljb25VUkxzLmVuZCgpOyArK2l0ZXIpIHsKLSAgICAgICAgaWYg
KGl0ZXItPm1faWNvblR5cGUgPT0gaWNvblR5cGUpIHsKLSAgICAgICAgICAgIGlmIChyZXN1bHQu
bV9pY29uVVJMLmlzRW1wdHkoKSB8fCAhaXRlci0+bV9taW1lVHlwZS5pc0VtcHR5KCkpCi0gICAg
ICAgICAgICAgICAgcmVzdWx0ID0gKml0ZXI7Ci0gICAgICAgIH0KKyAgICAgICAgaWYgKHJlc3Vs
dC5tX2ljb25VUkwuaXNFbXB0eSgpIHx8ICFpdGVyLT5tX21pbWVUeXBlLmlzRW1wdHkoKSkKKyAg
ICAgICAgICAgIHJlc3VsdCA9ICppdGVyOwogICAgIH0KIAogICAgIHJldHVybiByZXN1bHQ7CkBA
IC0xMDUsMTEgKzEwMyw4IEBAIEljb25VUkxzIEljb25Db250cm9sbGVyOjp1cmxzRm9yVHlwZXMo
aW50IGljb25UeXBlcykKICNlbmRpZgogCiAgICAgLy8gRmluYWxseSwgYXBwZW5kIGFsbCByZW1h
aW5pbmcgaWNvbnMgb2YgdGhpcyB0eXBlLgotICAgIGNvbnN0IFZlY3RvcjxJY29uVVJMPiYgYWxs
SWNvblVSTHMgPSBtX2ZyYW1lLT5kb2N1bWVudCgpLT5pY29uVVJMcygpOworICAgIGNvbnN0IFZl
Y3RvcjxJY29uVVJMPiYgYWxsSWNvblVSTHMgPSBtX2ZyYW1lLT5kb2N1bWVudCgpLT5pY29uVVJM
cyhpY29uVHlwZXMpOwogICAgIGZvciAoVmVjdG9yPEljb25VUkw+Ojpjb25zdF9pdGVyYXRvciBp
dGVyID0gYWxsSWNvblVSTHMuYmVnaW4oKTsgaXRlciAhPSBhbGxJY29uVVJMcy5lbmQoKTsgKytp
dGVyKSB7Ci0gICAgICAgIGlmICghKGl0ZXItPm1faWNvblR5cGUgJiBpY29uVHlwZXMpKQotICAg
ICAgICAgICAgY29udGludWU7Ci0KICAgICAgICAgaW50IGk7CiAgICAgICAgIGludCBpY29uQ291
bnQgPSBpY29uVVJMcy5zaXplKCk7CiAgICAgICAgIGZvciAoaSA9IDA7IGkgPCBpY29uQ291bnQ7
ICsraSkgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuY3Bw
IGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuY3BwCmluZGV4IDhmNWJkMmJlODU1
ZTcxNDBiMzljMGJkOGJmYjkzMDdmOGE2ZDFkYTQuLmEyYWIyNjE2YmNmZmE3NGFiY2FjNjE5NTUw
MjM2YWIwNzc0NTllNWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJu
YWxzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5jcHAKQEAgLTE2
OTgsOSArMTY5OCw5IEBAIGludCBJbnRlcm5hbHM6OnBhZ2VOdW1iZXIoRWxlbWVudCogZWxlbWVu
dCwgZmxvYXQgcGFnZVdpZHRoLCBmbG9hdCBwYWdlSGVpZ2h0KQogICAgIHJldHVybiBQcmludENv
bnRleHQ6OnBhZ2VOdW1iZXJGb3JFbGVtZW50KGVsZW1lbnQsIEZsb2F0U2l6ZShwYWdlV2lkdGgs
IHBhZ2VIZWlnaHQpKTsKIH0KIAotVmVjdG9yPFN0cmluZz4gSW50ZXJuYWxzOjppY29uVVJMcyhE
b2N1bWVudCogZG9jdW1lbnQpIGNvbnN0CitWZWN0b3I8U3RyaW5nPiBJbnRlcm5hbHM6Omljb25V
UkxzKERvY3VtZW50KiBkb2N1bWVudCwgaW50IGljb25UeXBlcykgY29uc3QKIHsKLSAgICBWZWN0
b3I8SWNvblVSTD4gaWNvblVSTHMgPSBkb2N1bWVudC0+aWNvblVSTHMoKTsKKyAgICBWZWN0b3I8
SWNvblVSTD4gaWNvblVSTHMgPSBkb2N1bWVudC0+aWNvblVSTHMoaWNvblR5cGVzKTsKICAgICBW
ZWN0b3I8U3RyaW5nPiBhcnJheTsKIAogICAgIFZlY3RvcjxJY29uVVJMPjo6Y29uc3RfaXRlcmF0
b3IgaXRlcihpY29uVVJMcy5iZWdpbigpKTsKQEAgLTE3MTAsNiArMTcxMCwyNSBAQCBWZWN0b3I8
U3RyaW5nPiBJbnRlcm5hbHM6Omljb25VUkxzKERvY3VtZW50KiBkb2N1bWVudCkgY29uc3QKICAg
ICByZXR1cm4gYXJyYXk7CiB9CiAKK1ZlY3RvcjxTdHJpbmc+IEludGVybmFsczo6c2hvcnRjdXRJ
Y29uVVJMcyhEb2N1bWVudCogZG9jdW1lbnQpIGNvbnN0Cit7CisgICAgcmV0dXJuIGljb25VUkxz
KGRvY3VtZW50LCBGYXZpY29uKTsKK30KKworVmVjdG9yPFN0cmluZz4gSW50ZXJuYWxzOjphbGxJ
Y29uVVJMcyhEb2N1bWVudCogZG9jdW1lbnQpIGNvbnN0Cit7CisgICAgcmV0dXJuIGljb25VUkxz
KGRvY3VtZW50LCBGYXZpY29uIHwgVG91Y2hJY29uIHwgVG91Y2hQcmVjb21wb3NlZEljb24pOwor
fQorCitib29sIEludGVybmFsczo6aXNUb3VjaEljb25zTG9hZGluZ1N1cHBvcnRlZCgpIGNvbnN0
Cit7CisjaWYgRU5BQkxFKFRPVUNIX0lDT05fTE9BRElORykKKyAgICByZXR1cm4gdHJ1ZTsKKyNl
bHNlCisgICAgcmV0dXJuIGZhbHNlOworI2VuZGlmCit9CisKIGludCBJbnRlcm5hbHM6Om51bWJl
ck9mUGFnZXMoZmxvYXQgcGFnZVdpZHRoLCBmbG9hdCBwYWdlSGVpZ2h0KQogewogICAgIGlmICgh
ZnJhbWUoKSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmgg
Yi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5oCmluZGV4IGU3MGFjNmM4MTNiYzk5
ZTQwYWZhZmNhZmFkZjViYTk1YjBhZmI0MmYuLmVkZDllNzRhZjgxMDBjNTc1YjE2MWNkMDBjMGVh
ZWU1NDI0YTZhY2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxz
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaApAQCAtMjQ4LDcgKzI0
OCw5IEBAIHB1YmxpYzoKICAgICBTdHJpbmcgY291bnRlclZhbHVlKEVsZW1lbnQqKTsKIAogICAg
IGludCBwYWdlTnVtYmVyKEVsZW1lbnQqLCBmbG9hdCBwYWdlV2lkdGggPSA4MDAsIGZsb2F0IHBh
Z2VIZWlnaHQgPSA2MDApOwotICAgIFZlY3RvcjxTdHJpbmc+IGljb25VUkxzKERvY3VtZW50Kikg
Y29uc3Q7CisgICAgVmVjdG9yPFN0cmluZz4gc2hvcnRjdXRJY29uVVJMcyhEb2N1bWVudCopIGNv
bnN0OworICAgIFZlY3RvcjxTdHJpbmc+IGFsbEljb25VUkxzKERvY3VtZW50KikgY29uc3Q7Cisg
ICAgYm9vbCBpc1RvdWNoSWNvbnNMb2FkaW5nU3VwcG9ydGVkKCkgY29uc3Q7CiAKICAgICBpbnQg
bnVtYmVyT2ZQYWdlcyhmbG9hdCBwYWdlV2lkdGhJblBpeGVscyA9IDgwMCwgZmxvYXQgcGFnZUhl
aWdodEluUGl4ZWxzID0gNjAwKTsKICAgICBTdHJpbmcgcGFnZVByb3BlcnR5KFN0cmluZywgaW50
LCBFeGNlcHRpb25Db2RlJiA9IEFTU0VSVF9OT19FWENFUFRJT04pIGNvbnN0OwpAQCAtMjg5LDYg
KzI5MSw3IEBAIHByaXZhdGU6CiAgICAgZXhwbGljaXQgSW50ZXJuYWxzKERvY3VtZW50Kik7CiAg
ICAgRG9jdW1lbnQqIGNvbnRleHREb2N1bWVudCgpIGNvbnN0OwogICAgIEZyYW1lKiBmcmFtZSgp
IGNvbnN0OworICAgIFZlY3RvcjxTdHJpbmc+IGljb25VUkxzKERvY3VtZW50KiwgaW50IGljb25U
eXBlcykgY29uc3Q7CiAKICAgICBEb2N1bWVudE1hcmtlciogbWFya2VyQXQoTm9kZSosIGNvbnN0
IFN0cmluZyYgbWFya2VyVHlwZSwgdW5zaWduZWQgaW5kZXgsIEV4Y2VwdGlvbkNvZGUmKTsKICNp
ZiBFTkFCTEUoSU5TUEVDVE9SKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9J
bnRlcm5hbHMuaWRsIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaWRsCmluZGV4
IGJmNjM0NzlkNGNmNzQzY2E0NGE3Yjg5ZWMzMGZiZTI5YjVkMTViYWEuLjkwNDgzYjlhNmVlMTI4
ZTc4NzRmOTY4OWY4NDRhNDA0NTBjNDI0YWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Rl
c3RpbmcvSW50ZXJuYWxzLmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFs
cy5pZGwKQEAgLTIxNSw3ICsyMTUsOSBAQAogCiAgICAgRE9NU3RyaW5nIGNvdW50ZXJWYWx1ZShp
biBFbGVtZW50IGVsZW1lbnQpOwogICAgIGxvbmcgcGFnZU51bWJlcihpbiBFbGVtZW50IGVsZW1l
bnQsIGluIFtPcHRpb25hbF0gZmxvYXQgcGFnZVdpZHRoLCBpbiBbT3B0aW9uYWxdIGZsb2F0IHBh
Z2VIZWlnaHQpOwotICAgIERPTVN0cmluZ1tdIGljb25VUkxzKGluIERvY3VtZW50IGRvY3VtZW50
KTsKKyAgICBET01TdHJpbmdbXSBzaG9ydGN1dEljb25VUkxzKGluIERvY3VtZW50IGRvY3VtZW50
KTsKKyAgICBET01TdHJpbmdbXSBhbGxJY29uVVJMcyhpbiBEb2N1bWVudCBkb2N1bWVudCk7Cisg
ICAgYm9vbGVhbiBpc1RvdWNoSWNvbnNMb2FkaW5nU3VwcG9ydGVkKCk7CiAgICAgbG9uZyBudW1i
ZXJPZlBhZ2VzKGluIFtPcHRpb25hbF0gZG91YmxlIHBhZ2VXaWR0aEluUGl4ZWxzLCBpbiBbT3B0
aW9uYWxdIGRvdWJsZSBwYWdlSGVpZ2h0SW5QaXhlbHMpOwogICAgIERPTVN0cmluZyBwYWdlUHJv
cGVydHkoaW4gRE9NU3RyaW5nIHByb3BlcnR5TmFtZSwgaW4gbG9uZyBwYWdlTnVtYmVyKSByYWlz
ZXMgKERPTUV4Y2VwdGlvbik7CiAgICAgRE9NU3RyaW5nIHBhZ2VTaXplQW5kTWFyZ2luc0luUGl4
ZWxzKGluIGxvbmcgcGFnZUluZGV4LCBpbiBsb25nIHdpZHRoLCBpbiBsb25nIGhlaWdodCwgaW4g
bG9uZyBtYXJnaW5Ub3AsIGluIGxvbmcgbWFyZ2luUmlnaHQsIGluIGxvbmcgbWFyZ2luQm90dG9t
LCBpbiBsb25nIG1hcmdpbkxlZnQpIHJhaXNlcyAoRE9NRXhjZXB0aW9uKTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9hdXRvdG9vbHMvc3ltYm9scy5maWx0ZXIgYi9Tb3VyY2UvYXV0b3Rvb2xzL3N5bWJv
bHMuZmlsdGVyCmluZGV4IGRjNzUwZWI5NTM5ZjA1YWM3ZTY0N2IwMjFkM2ZlMzA4MDdlYzk1YmIu
LmMwNTkwODI1MjAzYTU4Y2Y2ODEwYTUxMmNhNTEzZDhjZjRmNTdkZjAgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9hdXRvdG9vbHMvc3ltYm9scy5maWx0ZXIKKysrIGIvU291cmNlL2F1dG90b29scy9zeW1i
b2xzLmZpbHRlcgpAQCAtNDEsNyArNDEsOCBAQCBfWk43V2ViQ29yZTR0b0pTRVBOM0pTQzlFeGVj
U3RhdGVFUE5TXzE3SlNET01HbG9iYWxPYmplY3RFUE5TXzVSYW5nZUU7CiBfWk43V2ViQ29yZTVS
YW5nZTZjcmVhdGVFTjNXVEYxMFBhc3NSZWZQdHJJTlNfOERvY3VtZW50RUVFTlMyX0lOU180Tm9k
ZUVFRWlTNl9pOwogX1pON1dlYkNvcmU1UmFuZ2VEMUV2OwogX1pON1dlYkNvcmU4RG9jdW1lbnQz
NnVwZGF0ZUxheW91dElnbm9yZVBlbmRpbmdTdHlsZXNoZWV0c0V2OwotX1pON1dlYkNvcmU4RG9j
dW1lbnQ4aWNvblVSTHNFdjsKK19aTjdXZWJDb3JlOERvY3VtZW50OGljb25VUkxzRWk7CitfWk43
V2ViQ29yZThEb2N1bWVudDE2c2hvcnRjdXRJY29uVVJMc0V2OwogX1pON1dlYkNvcmU4U2V0dGlu
Z3MxOW1pbkRPTVRpbWVySW50ZXJ2YWxFdjsKIF9aTjdXZWJDb3JlOFNldHRpbmdzMjJzZXRNaW5E
T01UaW1lckludGVydmFsRWQ7CiBfWk43V2ViQ29yZTlIVE1MTmFtZXM4aW5wdXRUYWdFOwpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmlu
ZGV4IGU4N2RhODBmODA4NDVkOTNmMTIwYzE0ZTEwZTBhYjE5ZDExMWU0NDMuLjJkZjZlMTc3Mzc5
MDMzMzdmNWNjYzZhZDQ0ZGFkYTg5YWVmNjc5YmEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0No
YW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxOSBAQAorMjAx
My0wMi0xMSAgUnVzbGFuIEFiZGlrZWV2ICA8YXJ1c2xhbkBjaHJvbWl1bS5vcmc+CisKKyAgICAg
ICAgPGxpbmsgcmVsPSJhcHBsZS10b3VjaC1pY29uIj4gdGFnIGlzIG5vdCBob25vcmVkIG9uIENO
Ti5jb20sIHdvcmtmbG93eS5jb20gZXRjCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0xMDkwNjEKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICBBZGRlZCB0ZXN0IGZvciBhcHBsZS10b3VjaC1pY29uIGluIGFsbElj
b25VUkxzKCkuCisgICAgICAgIENoYW5nZWQgaWNvblVSTHMoKSB0byBzaG9ydGN1dEljb25VUkxz
KCkuCisKKyAgICAgICAgKiBmYXN0L2RvbS9pY29uLXVybC1jaGFuZ2UuaHRtbDoKKyAgICAgICAg
KiBmYXN0L2RvbS9pY29uLXVybC1saXN0LWFwcGxlLXRvdWNoLWV4cGVjdGVkLnR4dDogQWRkZWQu
CisgICAgICAgICogZmFzdC9kb20vaWNvbi11cmwtbGlzdC1hcHBsZS10b3VjaC5odG1sOiBBZGRl
ZC4KKyAgICAgICAgKiBmYXN0L2RvbS9pY29uLXVybC1saXN0Lmh0bWw6CisgICAgICAgICogZmFz
dC9kb20vaWNvbi11cmwtcHJvcGVydHkuaHRtbDoKKwogMjAxMy0wMi0xMSAgUnlvc3VrZSBOaXdh
ICA8cm5pd2FAd2Via2l0Lm9yZz4KIAogICAgICAgICBNb3ZlIGRlbGV0aW9uVUkgdGVzdHMgaW50
byBwbGF0Zm9ybS9tYWMKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL2ljb24tdXJs
LWNoYW5nZS5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vaWNvbi11cmwtY2hhbmdlLmh0bWwK
aW5kZXggODJkNTM0ZWVjZGE3Y2QxNGFiNTU5OTMxYTIyYjI3OTkyYTZmZTVlNy4uOTkzMjcyZWRi
YzJmYTJmNjY3YWM0ODk5ZTY3MGMyYzUwNzBlZGQxZiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMv
ZmFzdC9kb20vaWNvbi11cmwtY2hhbmdlLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20v
aWNvbi11cmwtY2hhbmdlLmh0bWwKQEAgLTQ1LDcgKzQ1LDcgQEAgZnVuY3Rpb24gcnVuVGVzdHMo
KSB7CiAKICAgICAvLyBjaGVjayB0aGF0IHRoZSBVUkwgbGlzdCBpbiB0aGUgZG9jdW1lbnQgaXMg
YXMgd2UgZXhwZWN0CiAgICAgdmFyIGV4cGVjdGVkVVJMcyA9ICJodHRwOi8vdGVzdC5jb20vb2xk
ZmF2aWNvbi5pY28iOwotICAgIHZhciBpY29uVVJMcyA9IHdpbmRvdy5pbnRlcm5hbHMuaWNvblVS
THMoZG9jdW1lbnQpOworICAgIHZhciBpY29uVVJMcyA9IHdpbmRvdy5pbnRlcm5hbHMuc2hvcnRj
dXRJY29uVVJMcyhkb2N1bWVudCk7CiAgICAgaWYgKGV4cGVjdGVkVVJMcyA9PSBpY29uVVJMc1sw
XSkKICAgICAgICAgdGVzdFBhc3NlZCgnVVJMIGxpc3QgbWF0Y2hlcyBleHBlY3RlZCcpOwogICAg
IGVsc2UKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL2ljb24tdXJsLWxpc3QtYXBw
bGUtdG91Y2gtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vaWNvbi11cmwtbGlz
dC1hcHBsZS10b3VjaC1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOTkzYzU1NWY4YTVjNGRkMWNk
NWFlYTQwZGY1OGM5NzQ1MmNkODFhYgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zh
c3QvZG9tL2ljb24tdXJsLWxpc3QtYXBwbGUtdG91Y2gtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEs
MyBAQAorVGVzdHMgdGhhdCBhbGwgZmF2aWNvbnMgYW5kIHRvdWNoIGljb25zIChpZiBFTkFCTEUo
VE9VQ0hfSUNPTl9MT0FESU5HKSkgYXJlIGluIGRvY3VtZW50Lmljb25VUkxzKCkKK1BBU1MgVVJM
IGxpc3QgbWF0Y2hlcyBleHBlY3RlZAorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2Rv
bS9pY29uLXVybC1saXN0LWFwcGxlLXRvdWNoLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9p
Y29uLXVybC1saXN0LWFwcGxlLXRvdWNoLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMDFiOTk0YzhiNGJkYWI5
MmNlZGUxZDY5M2Q5Mjc3ZmM2YjZjY2U3NAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3Rz
L2Zhc3QvZG9tL2ljb24tdXJsLWxpc3QtYXBwbGUtdG91Y2guaHRtbApAQCAtMCwwICsxLDQ5IEBA
Cis8aHRtbD4KKzxoZWFkPgorPHRpdGxlPk9yaWdpbmFsIFRpdGxlPC90aXRsZT4KKzxsaW5rIHJl
bD0ic2hvcnRjdXQgaWNvbiIgdHlwZT0iaW1hZ2UveC1pY29uIiBocmVmPSJodHRwOi8vdGVzdC5j
b20vb2xkZmF2aWNvbi5pY28iLz4KKzxsaW5rIHJlbD0iYXBwbGUtdG91Y2gtaWNvbiIgdHlwZT0i
aW1hZ2UvcG5nIiBocmVmPSJodHRwOi8vdGVzdC5jb20vaS90b3VjaC5wbmciLz4KKzxsaW5rIHJl
bD0iYXBwbGUtdG91Y2gtaWNvbi1wcmVjb21wb3NlZCIgdHlwZT0iaW1hZ2UvcG5nIiBocmVmPSJo
dHRwOi8vdGVzdC5jb20vaS90b3VjaC1wcmVjb21wb3NlZC5wbmciLz4KKzxzY3JpcHQgc3JjPSIu
Li9qcy9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPHNjcmlwdD4KKworZnVu
Y3Rpb24gcnVuVGVzdHMoKSB7CisgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKQorICAgICAgICB0
ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKKworICAgIGRlYnVnKCdUZXN0cyB0aGF0IGFsbCBmYXZp
Y29ucyBhbmQgdG91Y2ggaWNvbnMgKGlmIEVOQUJMRShUT1VDSF9JQ09OX0xPQURJTkcpKSBhcmUg
aW4gZG9jdW1lbnQuaWNvblVSTHMoKScpOworCisgICAgLy8gRmV0Y2ggdGhlIGFjdHVhbCBsaXN0
IG9mIGljb24gVVJMcy4KKyAgICB2YXIgc3VwcG9ydHNUb3VjaEljb25zID0gd2luZG93LmludGVy
bmFscy5pc1RvdWNoSWNvbnNMb2FkaW5nU3VwcG9ydGVkKCk7CisgICAgdmFyIGFjdHVhbFVSTHMg
PSB3aW5kb3cuaW50ZXJuYWxzLmFsbEljb25VUkxzKGRvY3VtZW50KTsKKworICAgIC8vIENoZWNr
IHRoYXQgdGhlIFVSTCBsaXN0IGluIHRoZSBkb2N1bWVudCBpcyBhcyB3ZSBleHBlY3QuCisgICAg
Ly8gTm90ZSB0aGF0IHRoZSBleHBlY3RlZCBvcmRlciBpcyByZXZlcnNlIHRvIGVuc3VyZSB0aGF0
IGljb25zIHNlZW4gbGF0ZXIKKyAgICAvLyB0YWtlIHByZWNlZGVuY2UgYXMgcmVxdWlyZWQgYnkg
dGhlIHNwZWMuCisgICAgdmFyIGV4cGVjdGVkVVJMcyA9IHN1cHBvcnRzVG91Y2hJY29ucyA/IFsK
KyAgICAgICAgImh0dHA6Ly90ZXN0LmNvbS9pL3RvdWNoLXByZWNvbXBvc2VkLnBuZyIsCisgICAg
ICAgICJodHRwOi8vdGVzdC5jb20vaS90b3VjaC5wbmciLAorICAgICAgICAiaHR0cDovL3Rlc3Qu
Y29tL29sZGZhdmljb24uaWNvIiwKKyAgICBdIDogWworICAgICAgICAiaHR0cDovL3Rlc3QuY29t
L29sZGZhdmljb24uaWNvIgorICAgIF07CisgICAgdmFyIHN1Y2Nlc3MgPSBleHBlY3RlZFVSTHMu
bGVuZ3RoID09IGFjdHVhbFVSTHMubGVuZ3RoOworICAgIGZvciAodmFyIGkgPSAwOyBzdWNjZXNz
ICYmIGkgPCBhY3R1YWxVUkxzLmxlbmd0aDsgaSsrKSB7CisgICAgICAgIGlmIChleHBlY3RlZFVS
THNbaV0gIT0gYWN0dWFsVVJMc1tpXSkgeworICAgICAgICAgICAgZGVidWcoJ21pc21hdGNoIGV4
cGVjdGVkPScgKyBleHBlY3RlZFVSTHNbaV0gKworICAgICAgICAgICAgICAgICAgICAnIGFjdHVh
bD0nICsgYWN0dWFsVVJMc1tpXSk7CisgICAgICAgICAgICBzdWNjZXNzID0gZmFsc2U7CisgICAg
ICAgIH0KKyAgICB9CisgICAgaWYgKHN1Y2Nlc3MpCisgICAgICAgIHRlc3RQYXNzZWQoJ1VSTCBs
aXN0IG1hdGNoZXMgZXhwZWN0ZWQnKTsKKyAgICBlbHNlCisgICAgICAgIHRlc3RGYWlsZWQoJ1VS
TCBsaXN0IGRvZXMgbm90IG1hdGNoIGV4cGVjdGVkJyk7Cit9CisKKzwvc2NyaXB0PgorPC9oZWFk
PgorPGJvZHkgb25sb2FkPSdydW5UZXN0cygpOyc+Cis8L2Rpdj4KKzwvYm9keT4KKzwvaHRtbD4K
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL2ljb24tdXJsLWxpc3QuaHRtbCBiL0xh
eW91dFRlc3RzL2Zhc3QvZG9tL2ljb24tdXJsLWxpc3QuaHRtbAppbmRleCBkZGEwMGU3MmVmZmJm
ZTFkMmIyOTE2YWM4MjNkNGNiOGVlNDZkNDU0Li42ZDNkZmRhNmE1ZGU0OTlhMDdlMTI1OTc1Nzhm
MzQwZWRlODM3ZjVmIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9pY29uLXVybC1s
aXN0Lmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vaWNvbi11cmwtbGlzdC5odG1sCkBA
IC00OCw3ICs0OCw3IEBAIGZ1bmN0aW9uIHJ1blRlc3RzKCkgewogICAgIHZhciBleHBlY3RlZFVS
TDAgPSAiaHR0cDovL3Rlc3QuY29tL2JhcmZhdmljb24uaWNvIjsKICAgICB2YXIgZXhwZWN0ZWRV
UkwxID0gImh0dHA6Ly90ZXN0LmNvbS9mb29mYXZpY29uLmljbyI7CiAgICAgdmFyIGV4cGVjdGVk
VVJMMiA9ICJodHRwOi8vdGVzdC5jb20vbmV3ZmF2aWNvbi5pY28iOwotICAgIHZhciBpY29uVVJM
cyA9IHdpbmRvdy5pbnRlcm5hbHMuaWNvblVSTHMoZG9jdW1lbnQpOworICAgIHZhciBpY29uVVJM
cyA9IHdpbmRvdy5pbnRlcm5hbHMuc2hvcnRjdXRJY29uVVJMcyhkb2N1bWVudCk7CiAgICAgaWYg
KGV4cGVjdGVkVVJMMCA9PSBpY29uVVJMc1swXSAmJiBleHBlY3RlZFVSTDEgPT0gaWNvblVSTHNb
MV0gJiYgZXhwZWN0ZWRVUkwyID09IGljb25VUkxzWzJdKSAKICAgICAgICAgdGVzdFBhc3NlZCgn
VVJMIGxpc3QgbWF0Y2hlcyBleHBlY3RlZCcpOwogICAgIGVsc2UKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2Zhc3QvZG9tL2ljb24tdXJsLXByb3BlcnR5Lmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0
L2RvbS9pY29uLXVybC1wcm9wZXJ0eS5odG1sCmluZGV4IDhhNmI5YzIzODg1MDZlMGUyODQyZDM3
ZWMwNzEwODU1YmY0ZmI5ZjUuLjJkMWMwMTIxNTcxYTk3YmYxNTQzZDQxNjU0NmY3NjhlNzUxNjFl
ZDMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL2ljb24tdXJsLXByb3BlcnR5Lmh0
bWwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vaWNvbi11cmwtcHJvcGVydHkuaHRtbApAQCAt
NDMsNyArNDMsNyBAQCBmdW5jdGlvbiBydW5UZXN0cygpIHsKIAogICAgIC8vIGNoZWNrIHRoYXQg
dGhlIFVSTCBsaXN0IGluIHRoZSBkb2N1bWVudCBpcyBhcyB3ZSBleHBlY3QKICAgICB2YXIgZXhw
ZWN0ZWRVUkxzID0gImh0dHA6Ly90ZXN0LmNvbS9uZXdmYXZpY29uLmljbyI7Ci0gICAgdmFyIGlj
b25VUkxzID0gd2luZG93LmludGVybmFscy5pY29uVVJMcyhkb2N1bWVudCk7CisgICAgdmFyIGlj
b25VUkxzID0gd2luZG93LmludGVybmFscy5zaG9ydGN1dEljb25VUkxzKGRvY3VtZW50KTsKICAg
ICBpZiAoZXhwZWN0ZWRVUkxzID09IGljb25VUkxzWzBdKQogICAgICAgICBkZWJ1Z091dHB1dCgn
UEFTUyAtIFVSTCBsaXN0IG1hdGNoZXMgZXhwZWN0ZWQnKTsKICAgICBlbHNlCmRpZmYgLS1naXQg
YS9DaGFuZ2VMb2cgYi9DaGFuZ2VMb2cKaW5kZXggZTQwMTk3NTQ2YjhiOGJkNTA4OTVmMjYzOTkz
ZDdmZTgzNDMxM2MxNC4uOGU1NDZmMjk4YmFhZTVhODgwZGRiOWQyM2YyZTI1NGI3ZTRmN2RhOSAx
MDA2NDQKLS0tIGEvQ2hhbmdlTG9nCisrKyBiL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEyIEBACisy
MDEzLTAyLTExICBSdXNsYW4gQWJkaWtlZXYgIDxhcnVzbGFuQGNocm9taXVtLm9yZz4KKworICAg
ICAgICA8bGluayByZWw9ImFwcGxlLXRvdWNoLWljb24iPiB0YWcgaXMgbm90IGhvbm9yZWQgb24g
Q05OLmNvbSwgd29ya2Zsb3d5LmNvbSBldGMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTEwOTA2MQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgICogU291cmNlL2F1dG90b29scy9zeW1ib2xzLmZpbHRlcjoKKwog
MjAxMy0wMi0xMSAgQmVuamFtaW4gUG91bGFpbiAgPGJlbmphbWluQHdlYmtpdC5vcmc+CiAKICAg
ICAgICAgS2lsbCBUZXN0UnVubmVyOjpzZXRNaW5pbXVtVGltZXJJbnRlcnZhbDsgaW1wbGVtZW50
IHRoZSBmZWF0dXJlIHdpdGggSW50ZXJuYWxTZXR0aW5ncwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>188107</attachid>
            <date>2013-02-13 10:03:06 -0800</date>
            <delta_ts>2013-02-13 20:02:42 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-109061-20130213095935.patch</filename>
            <type>text/plain</type>
            <size>19045</size>
            <attacher name="Ruslan Abdikeev">aruslan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQyNzU0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYzg4NGYyOWUxZTA2MzZh
MWIzMjVjMmY3Y2NlNmYyZjAzMTQ0ZTNlMC4uZjc5NzZiNGJlN2UxMjBlZGRlYTBlZWE1MjRkNjIy
OWYxZmEyOTExMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM1IEBACisyMDEzLTAyLTEzICBSdXNs
YW4gQWJkaWtlZXYgIDxhcnVzbGFuQGNocm9taXVtLm9yZz4KKworICAgICAgICA8bGluayByZWw9
ImFwcGxlLXRvdWNoLWljb24iPiB0YWcgaXMgbm90IGhvbm9yZWQgb24gQ05OLmNvbSwgd29ya2Zs
b3d5LmNvbSBldGMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTEwOTA2MQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgIFRlc3Q6IGZhc3QvZG9tL2ljb24tdXJsLWxpc3QtYXBwbGUtdG91Y2guaHRtbAorCisgICAg
ICAgIEFkZGVkIGljb25UeXBlcyBwYXJhbWV0ZXIgdG8gRG9jdW1lbnQ6Omljb25VUkxzKCkuCisg
ICAgICAgIEFkZGVkIERvY3VtZW50OjpzaG9ydGN1dEljb25VUkxzKCkgd2l0aCBvcmlnaW5hbCBz
ZW1hbnRpY3Mgb2YgaWNvblVSTHMoKS4KKyAgICAgICAgRml4ZWQgSWNvbkNvbnRyb2xsZXIuY3Bw
IHRvIHByb3ZpZGUgaWNvblR5cGVzIHRvIGljb25VUkxzKCkuCisKKyAgICAgICAgKiBXZWJDb3Jl
LmV4cC5pbjoKKyAgICAgICAgKiBkb20vRG9jdW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
RG9jdW1lbnQ6OnNob3J0Y3V0SWNvblVSTHMpOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAg
IChXZWJDb3JlOjpEb2N1bWVudDo6aWNvblVSTHMpOgorICAgICAgICAqIGRvbS9Eb2N1bWVudC5o
OgorICAgICAgICAoRG9jdW1lbnQpOgorICAgICAgICAqIGxvYWRlci9pY29uL0ljb25Db250cm9s
bGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Okljb25Db250cm9sbGVyOjppY29uVVJMKToKKyAg
ICAgICAgKFdlYkNvcmU6Okljb25Db250cm9sbGVyOjp1cmxzRm9yVHlwZXMpOgorICAgICAgICAq
IHRlc3RpbmcvSW50ZXJuYWxzLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkludGVybmFsczo6aWNv
blVSTHMpOgorICAgICAgICAoV2ViQ29yZTo6SW50ZXJuYWxzOjpzaG9ydGN1dEljb25VUkxzKToK
KyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoV2ViQ29yZTo6SW50ZXJuYWxzOjphbGxJY29u
VVJMcyk6CisgICAgICAgIChXZWJDb3JlOjpJbnRlcm5hbHM6OmlzVG91Y2hJY29uc0xvYWRpbmdT
dXBwb3J0ZWQpOgorICAgICAgICAqIHRlc3RpbmcvSW50ZXJuYWxzLmg6CisgICAgICAgICogdGVz
dGluZy9JbnRlcm5hbHMuaWRsOgorCiAyMDEzLTAyLTEzICBSYXNobWkgU2h5YW1hc3VuZGFyICA8
cmFzaG1pLnMyQHNhbXN1bmcuY29tPgogCiAgICAgICAgIFRoZSAyRCBDYW52YXMgZnVuY3Rpb25z
IGZpbGxUZXh0KCkvc3Ryb2tlVGV4dCgpIHNob3VsZCBkaXNwbGF5IG5vdGhpbmcgd2hlbiBtYXhX
aWR0aCBpcyBsZXNzIHRoZW4gb3IgZXF1YWwgdG8gemVybwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvV2ViQ29yZS5leHAuaW4gYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmV4cC5pbgppbmRl
eCA2NzA5ZGUxOGU2NWJkMGZiZTliMjQ3MDk5Y2ExOGU3NTY0NDk3MzMxLi5kZTNlYWUyZTdjNTM4
NTY0M2I1ZGJiNmZlMDkyN2UwZDFiNDQzZWRmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9X
ZWJDb3JlLmV4cC5pbgorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmV4cC5pbgpAQCAtOTcw
LDcgKzk3MCw4IEBAIF9fWk43V2ViQ29yZThEb2N1bWVudDM2dXBkYXRlTGF5b3V0SWdub3JlUGVu
ZGluZ1N0eWxlc2hlZXRzRXYKIF9fWk43V2ViQ29yZThEb2N1bWVudDRoZWFkRXYKIF9fWk43V2Vi
Q29yZThGb3JtRGF0YTI4cmVtb3ZlR2VuZXJhdGVkRmlsZXNJZk5lZWRlZEV2CiBfX1pON1dlYkNv
cmU4Rm9ybURhdGE2ZGVjb2RlRVJOM1dURjdEZWNvZGVyRQotX19aTjdXZWJDb3JlOERvY3VtZW50
OGljb25VUkxzRXYKK19fWk43V2ViQ29yZThEb2N1bWVudDhpY29uVVJMc0VpCitfX1pON1dlYkNv
cmU4RG9jdW1lbnQxNnNob3J0Y3V0SWNvblVSTHNFdgogX19aTjdXZWJDb3JlOEZvcm1EYXRhNmNy
ZWF0ZUVQS3ZtCiBfX1pON1dlYkNvcmU4Rm9ybURhdGFEMUV2CiBfX1pON1dlYkNvcmU4R3JhZGll
bnQxMmFkZENvbG9yU3RvcEVmUktOU181Q29sb3JFCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9kb20vRG9jdW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcAppbmRl
eCA0ZDYyOTYzY2ExMWU1MDk4ZjBlMWY3Nzc3MmYxYWQ4OTFjNTg4ZDM3Li5iMDYxY2E0NzFmNWUx
ZTI3MDE1YTcxMGE3ZGJjZWM5MTcwYTYxN2Q5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9k
b20vRG9jdW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKQEAg
LTQ0NjUsMTQgKzQ0NjUsMTkgQEAgUGFzc1JlZlB0cjxYUGF0aFJlc3VsdD4gRG9jdW1lbnQ6OmV2
YWx1YXRlKGNvbnN0IFN0cmluZyYgZXhwcmVzc2lvbiwKICAgICByZXR1cm4gbV94cGF0aEV2YWx1
YXRvci0+ZXZhbHVhdGUoZXhwcmVzc2lvbiwgY29udGV4dE5vZGUsIHJlc29sdmVyLCB0eXBlLCBy
ZXN1bHQsIGVjKTsKIH0KIAotY29uc3QgVmVjdG9yPEljb25VUkw+JiBEb2N1bWVudDo6aWNvblVS
THMoKQorY29uc3QgVmVjdG9yPEljb25VUkw+JiBEb2N1bWVudDo6c2hvcnRjdXRJY29uVVJMcygp
Cit7CisgICAgLy8gSW5jbHVkZSBhbnkgaWNvbnMgd2hlcmUgdHlwZSA9IGxpbmssIHJlbCA9ICJz
aG9ydGN1dCBpY29uIi4KKyAgICByZXR1cm4gaWNvblVSTHMoRmF2aWNvbik7Cit9CisKK2NvbnN0
IFZlY3RvcjxJY29uVVJMPiYgRG9jdW1lbnQ6Omljb25VUkxzKGludCBpY29uVHlwZXMpCiB7CiAg
ICAgbV9pY29uVVJMcy5jbGVhcigpOwogCiAgICAgaWYgKCFoZWFkKCkgfHwgIShoZWFkKCktPmNo
aWxkcmVuKCkpKQogICAgICAgICByZXR1cm4gbV9pY29uVVJMczsKIAotICAgIC8vIEluY2x1ZGUg
YW55IGljb25zIHdoZXJlIHR5cGUgPSBsaW5rLCByZWwgPSAic2hvcnRjdXQgaWNvbiIuCiAgICAg
UmVmUHRyPEhUTUxDb2xsZWN0aW9uPiBjaGlsZHJlbiA9IGhlYWQoKS0+Y2hpbGRyZW4oKTsKICAg
ICB1bnNpZ25lZCBpbnQgbGVuZ3RoID0gY2hpbGRyZW4tPmxlbmd0aCgpOwogICAgIGZvciAodW5z
aWduZWQgaW50IGkgPSAwOyBpIDwgbGVuZ3RoOyArK2kpIHsKQEAgLTQ0ODAsNyArNDQ4NSw3IEBA
IGNvbnN0IFZlY3RvcjxJY29uVVJMPiYgRG9jdW1lbnQ6Omljb25VUkxzKCkKICAgICAgICAgaWYg
KCFjaGlsZC0+aGFzVGFnTmFtZShsaW5rVGFnKSkKICAgICAgICAgICAgIGNvbnRpbnVlOwogICAg
ICAgICBIVE1MTGlua0VsZW1lbnQqIGxpbmtFbGVtZW50ID0gc3RhdGljX2Nhc3Q8SFRNTExpbmtF
bGVtZW50Kj4oY2hpbGQpOwotICAgICAgICBpZiAobGlua0VsZW1lbnQtPmljb25UeXBlKCkgIT0g
RmF2aWNvbikKKyAgICAgICAgaWYgKCEobGlua0VsZW1lbnQtPmljb25UeXBlKCkgJiBpY29uVHlw
ZXMpKQogICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgIGlmIChsaW5rRWxlbWVudC0+aHJl
ZigpLmlzRW1wdHkoKSkKICAgICAgICAgICAgIGNvbnRpbnVlOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvZG9tL0RvY3VtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaApp
bmRleCA3MmM4Mzk5M2JlMDdmZjhjMjc2MjAyOTlhYTIxNjQ5NmNmN2Y1OWU3Li45MDFiNGI4MjVj
Yjg3ZGU5YjQ3NmY4Yzg3MWI5OGNhZTkxYTc5ZTRhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9kb20vRG9jdW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaApAQCAt
OTQxLDcgKzk0MSw4IEBAIHB1YmxpYzoKICAgICBib29sIGhhc05vZGVzV2l0aFBsYWNlaG9sZGVy
U3R5bGUoKSBjb25zdCB7IHJldHVybiBtX2hhc05vZGVzV2l0aFBsYWNlaG9sZGVyU3R5bGU7IH0K
ICAgICB2b2lkIHNldEhhc05vZGVzV2l0aFBsYWNlaG9sZGVyU3R5bGUoKSB7IG1faGFzTm9kZXNX
aXRoUGxhY2Vob2xkZXJTdHlsZSA9IHRydWU7IH0KIAotICAgIGNvbnN0IFZlY3RvcjxJY29uVVJM
PiYgaWNvblVSTHMoKTsKKyAgICBjb25zdCBWZWN0b3I8SWNvblVSTD4mIHNob3J0Y3V0SWNvblVS
THMoKTsKKyAgICBjb25zdCBWZWN0b3I8SWNvblVSTD4mIGljb25VUkxzKGludCBpY29uVHlwZXMp
OwogICAgIHZvaWQgYWRkSWNvblVSTChjb25zdCBTdHJpbmcmIHVybCwgY29uc3QgU3RyaW5nJiBt
aW1lVHlwZSwgY29uc3QgU3RyaW5nJiBzaXplLCBJY29uVHlwZSk7CiAKICAgICB2b2lkIHNldFVz
ZVNlY3VyZUtleWJvYXJkRW50cnlXaGVuQWN0aXZlKGJvb2wpOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvbG9hZGVyL2ljb24vSWNvbkNvbnRyb2xsZXIuY3BwIGIvU291cmNlL1dlYkNvcmUv
bG9hZGVyL2ljb24vSWNvbkNvbnRyb2xsZXIuY3BwCmluZGV4IDc0ZmFhOTU5Y2FiZTM0NDgxYTBm
NTc5ZjdlNTI0MDgyMmUwMTM4MDQuLjNhZDE1OWNmMDY5OGY5ODA3YzNlOTFmMzhmYWU3YzVkMmMw
ZWRlNTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9pY29uL0ljb25Db250cm9s
bGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvaWNvbi9JY29uQ29udHJvbGxlci5j
cHAKQEAgLTY4LDEzICs2OCwxMSBAQCBLVVJMIEljb25Db250cm9sbGVyOjp1cmwoKQogSWNvblVS
TCBJY29uQ29udHJvbGxlcjo6aWNvblVSTChJY29uVHlwZSBpY29uVHlwZSkgY29uc3QKIHsKICAg
ICBJY29uVVJMIHJlc3VsdDsKLSAgICBjb25zdCBWZWN0b3I8SWNvblVSTD4mIGljb25VUkxzID0g
bV9mcmFtZS0+ZG9jdW1lbnQoKS0+aWNvblVSTHMoKTsKKyAgICBjb25zdCBWZWN0b3I8SWNvblVS
TD4mIGljb25VUkxzID0gbV9mcmFtZS0+ZG9jdW1lbnQoKS0+aWNvblVSTHMoaWNvblR5cGUpOwog
ICAgIFZlY3RvcjxJY29uVVJMPjo6Y29uc3RfaXRlcmF0b3IgaXRlcihpY29uVVJMcy5iZWdpbigp
KTsKICAgICBmb3IgKDsgaXRlciAhPSBpY29uVVJMcy5lbmQoKTsgKytpdGVyKSB7Ci0gICAgICAg
IGlmIChpdGVyLT5tX2ljb25UeXBlID09IGljb25UeXBlKSB7Ci0gICAgICAgICAgICBpZiAocmVz
dWx0Lm1faWNvblVSTC5pc0VtcHR5KCkgfHwgIWl0ZXItPm1fbWltZVR5cGUuaXNFbXB0eSgpKQot
ICAgICAgICAgICAgICAgIHJlc3VsdCA9ICppdGVyOwotICAgICAgICB9CisgICAgICAgIGlmIChy
ZXN1bHQubV9pY29uVVJMLmlzRW1wdHkoKSB8fCAhaXRlci0+bV9taW1lVHlwZS5pc0VtcHR5KCkp
CisgICAgICAgICAgICByZXN1bHQgPSAqaXRlcjsKICAgICB9CiAKICAgICByZXR1cm4gcmVzdWx0
OwpAQCAtMTA1LDExICsxMDMsOCBAQCBJY29uVVJMcyBJY29uQ29udHJvbGxlcjo6dXJsc0ZvclR5
cGVzKGludCBpY29uVHlwZXMpCiAjZW5kaWYKIAogICAgIC8vIEZpbmFsbHksIGFwcGVuZCBhbGwg
cmVtYWluaW5nIGljb25zIG9mIHRoaXMgdHlwZS4KLSAgICBjb25zdCBWZWN0b3I8SWNvblVSTD4m
IGFsbEljb25VUkxzID0gbV9mcmFtZS0+ZG9jdW1lbnQoKS0+aWNvblVSTHMoKTsKKyAgICBjb25z
dCBWZWN0b3I8SWNvblVSTD4mIGFsbEljb25VUkxzID0gbV9mcmFtZS0+ZG9jdW1lbnQoKS0+aWNv
blVSTHMoaWNvblR5cGVzKTsKICAgICBmb3IgKFZlY3RvcjxJY29uVVJMPjo6Y29uc3RfaXRlcmF0
b3IgaXRlciA9IGFsbEljb25VUkxzLmJlZ2luKCk7IGl0ZXIgIT0gYWxsSWNvblVSTHMuZW5kKCk7
ICsraXRlcikgewotICAgICAgICBpZiAoIShpdGVyLT5tX2ljb25UeXBlICYgaWNvblR5cGVzKSkK
LSAgICAgICAgICAgIGNvbnRpbnVlOwotCiAgICAgICAgIGludCBpOwogICAgICAgICBpbnQgaWNv
bkNvdW50ID0gaWNvblVSTHMuc2l6ZSgpOwogICAgICAgICBmb3IgKGkgPSAwOyBpIDwgaWNvbkNv
dW50OyArK2kpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxz
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmNwcAppbmRleCA3NzFmMGNj
ZjQyMGE5YzQ5YWFiOWMzZjJkYzViMGY0YWJhMTcwMDJhLi4yNDE2Y2U4NWZiYjBlMWYwYzhiZjFh
ODhkMzdhMzM4MWIyNzAwZGNhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0lu
dGVybmFscy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuY3BwCkBA
IC0xNzEwLDkgKzE3MTAsOSBAQCBpbnQgSW50ZXJuYWxzOjpwYWdlTnVtYmVyKEVsZW1lbnQqIGVs
ZW1lbnQsIGZsb2F0IHBhZ2VXaWR0aCwgZmxvYXQgcGFnZUhlaWdodCkKICAgICByZXR1cm4gUHJp
bnRDb250ZXh0OjpwYWdlTnVtYmVyRm9yRWxlbWVudChlbGVtZW50LCBGbG9hdFNpemUocGFnZVdp
ZHRoLCBwYWdlSGVpZ2h0KSk7CiB9CiAKLVZlY3RvcjxTdHJpbmc+IEludGVybmFsczo6aWNvblVS
THMoRG9jdW1lbnQqIGRvY3VtZW50KSBjb25zdAorVmVjdG9yPFN0cmluZz4gSW50ZXJuYWxzOjpp
Y29uVVJMcyhEb2N1bWVudCogZG9jdW1lbnQsIGludCBpY29uVHlwZXMpIGNvbnN0CiB7Ci0gICAg
VmVjdG9yPEljb25VUkw+IGljb25VUkxzID0gZG9jdW1lbnQtPmljb25VUkxzKCk7CisgICAgVmVj
dG9yPEljb25VUkw+IGljb25VUkxzID0gZG9jdW1lbnQtPmljb25VUkxzKGljb25UeXBlcyk7CiAg
ICAgVmVjdG9yPFN0cmluZz4gYXJyYXk7CiAKICAgICBWZWN0b3I8SWNvblVSTD46OmNvbnN0X2l0
ZXJhdG9yIGl0ZXIoaWNvblVSTHMuYmVnaW4oKSk7CkBAIC0xNzIyLDYgKzE3MjIsMjUgQEAgVmVj
dG9yPFN0cmluZz4gSW50ZXJuYWxzOjppY29uVVJMcyhEb2N1bWVudCogZG9jdW1lbnQpIGNvbnN0
CiAgICAgcmV0dXJuIGFycmF5OwogfQogCitWZWN0b3I8U3RyaW5nPiBJbnRlcm5hbHM6OnNob3J0
Y3V0SWNvblVSTHMoRG9jdW1lbnQqIGRvY3VtZW50KSBjb25zdAoreworICAgIHJldHVybiBpY29u
VVJMcyhkb2N1bWVudCwgRmF2aWNvbik7Cit9CisKK1ZlY3RvcjxTdHJpbmc+IEludGVybmFsczo6
YWxsSWNvblVSTHMoRG9jdW1lbnQqIGRvY3VtZW50KSBjb25zdAoreworICAgIHJldHVybiBpY29u
VVJMcyhkb2N1bWVudCwgRmF2aWNvbiB8IFRvdWNoSWNvbiB8IFRvdWNoUHJlY29tcG9zZWRJY29u
KTsKK30KKworYm9vbCBJbnRlcm5hbHM6OmlzVG91Y2hJY29uc0xvYWRpbmdTdXBwb3J0ZWQoKSBj
b25zdAoreworI2lmIEVOQUJMRShUT1VDSF9JQ09OX0xPQURJTkcpCisgICAgcmV0dXJuIHRydWU7
CisjZWxzZQorICAgIHJldHVybiBmYWxzZTsKKyNlbmRpZgorfQorCiBpbnQgSW50ZXJuYWxzOjpu
dW1iZXJPZlBhZ2VzKGZsb2F0IHBhZ2VXaWR0aCwgZmxvYXQgcGFnZUhlaWdodCkKIHsKICAgICBp
ZiAoIWZyYW1lKCkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFs
cy5oIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaAppbmRleCBlNzBhYzZjODEz
YmM5OWU0MGFmYWZjYWZhZGY1YmE5NWIwYWZiNDJmLi5lZGQ5ZTc0YWY4MTAwYzU3NWIxNjFjZDAw
YzBlYWVlNTQyNGE2YWNmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVy
bmFscy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmgKQEAgLTI0OCw3
ICsyNDgsOSBAQCBwdWJsaWM6CiAgICAgU3RyaW5nIGNvdW50ZXJWYWx1ZShFbGVtZW50Kik7CiAK
ICAgICBpbnQgcGFnZU51bWJlcihFbGVtZW50KiwgZmxvYXQgcGFnZVdpZHRoID0gODAwLCBmbG9h
dCBwYWdlSGVpZ2h0ID0gNjAwKTsKLSAgICBWZWN0b3I8U3RyaW5nPiBpY29uVVJMcyhEb2N1bWVu
dCopIGNvbnN0OworICAgIFZlY3RvcjxTdHJpbmc+IHNob3J0Y3V0SWNvblVSTHMoRG9jdW1lbnQq
KSBjb25zdDsKKyAgICBWZWN0b3I8U3RyaW5nPiBhbGxJY29uVVJMcyhEb2N1bWVudCopIGNvbnN0
OworICAgIGJvb2wgaXNUb3VjaEljb25zTG9hZGluZ1N1cHBvcnRlZCgpIGNvbnN0OwogCiAgICAg
aW50IG51bWJlck9mUGFnZXMoZmxvYXQgcGFnZVdpZHRoSW5QaXhlbHMgPSA4MDAsIGZsb2F0IHBh
Z2VIZWlnaHRJblBpeGVscyA9IDYwMCk7CiAgICAgU3RyaW5nIHBhZ2VQcm9wZXJ0eShTdHJpbmcs
IGludCwgRXhjZXB0aW9uQ29kZSYgPSBBU1NFUlRfTk9fRVhDRVBUSU9OKSBjb25zdDsKQEAgLTI4
OSw2ICsyOTEsNyBAQCBwcml2YXRlOgogICAgIGV4cGxpY2l0IEludGVybmFscyhEb2N1bWVudCop
OwogICAgIERvY3VtZW50KiBjb250ZXh0RG9jdW1lbnQoKSBjb25zdDsKICAgICBGcmFtZSogZnJh
bWUoKSBjb25zdDsKKyAgICBWZWN0b3I8U3RyaW5nPiBpY29uVVJMcyhEb2N1bWVudCosIGludCBp
Y29uVHlwZXMpIGNvbnN0OwogCiAgICAgRG9jdW1lbnRNYXJrZXIqIG1hcmtlckF0KE5vZGUqLCBj
b25zdCBTdHJpbmcmIG1hcmtlclR5cGUsIHVuc2lnbmVkIGluZGV4LCBFeGNlcHRpb25Db2RlJik7
CiAjaWYgRU5BQkxFKElOU1BFQ1RPUikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Rlc3Rp
bmcvSW50ZXJuYWxzLmlkbCBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmlkbApp
bmRleCBiZjYzNDc5ZDRjZjc0M2NhNDRhN2I4OWVjMzBmYmUyOWI1ZDE1YmFhLi45MDQ4M2I5YTZl
ZTEyOGU3ODc0Zjk2ODlmODQ0YTQwNDUwYzQyNGFiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS90ZXN0aW5nL0ludGVybmFscy5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRl
cm5hbHMuaWRsCkBAIC0yMTUsNyArMjE1LDkgQEAKIAogICAgIERPTVN0cmluZyBjb3VudGVyVmFs
dWUoaW4gRWxlbWVudCBlbGVtZW50KTsKICAgICBsb25nIHBhZ2VOdW1iZXIoaW4gRWxlbWVudCBl
bGVtZW50LCBpbiBbT3B0aW9uYWxdIGZsb2F0IHBhZ2VXaWR0aCwgaW4gW09wdGlvbmFsXSBmbG9h
dCBwYWdlSGVpZ2h0KTsKLSAgICBET01TdHJpbmdbXSBpY29uVVJMcyhpbiBEb2N1bWVudCBkb2N1
bWVudCk7CisgICAgRE9NU3RyaW5nW10gc2hvcnRjdXRJY29uVVJMcyhpbiBEb2N1bWVudCBkb2N1
bWVudCk7CisgICAgRE9NU3RyaW5nW10gYWxsSWNvblVSTHMoaW4gRG9jdW1lbnQgZG9jdW1lbnQp
OworICAgIGJvb2xlYW4gaXNUb3VjaEljb25zTG9hZGluZ1N1cHBvcnRlZCgpOwogICAgIGxvbmcg
bnVtYmVyT2ZQYWdlcyhpbiBbT3B0aW9uYWxdIGRvdWJsZSBwYWdlV2lkdGhJblBpeGVscywgaW4g
W09wdGlvbmFsXSBkb3VibGUgcGFnZUhlaWdodEluUGl4ZWxzKTsKICAgICBET01TdHJpbmcgcGFn
ZVByb3BlcnR5KGluIERPTVN0cmluZyBwcm9wZXJ0eU5hbWUsIGluIGxvbmcgcGFnZU51bWJlcikg
cmFpc2VzIChET01FeGNlcHRpb24pOwogICAgIERPTVN0cmluZyBwYWdlU2l6ZUFuZE1hcmdpbnNJ
blBpeGVscyhpbiBsb25nIHBhZ2VJbmRleCwgaW4gbG9uZyB3aWR0aCwgaW4gbG9uZyBoZWlnaHQs
IGluIGxvbmcgbWFyZ2luVG9wLCBpbiBsb25nIG1hcmdpblJpZ2h0LCBpbiBsb25nIG1hcmdpbkJv
dHRvbSwgaW4gbG9uZyBtYXJnaW5MZWZ0KSByYWlzZXMgKERPTUV4Y2VwdGlvbik7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1dlYktpdC52Y3hwcm9qL1dlYktpdEV4cG9ydEdlbmVyYXRvci9X
ZWJLaXRFeHBvcnRzLmRlZi5pbiBiL1NvdXJjZS9XZWJLaXQvV2ViS2l0LnZjeHByb2ovV2ViS2l0
RXhwb3J0R2VuZXJhdG9yL1dlYktpdEV4cG9ydHMuZGVmLmluCmluZGV4IDllZWRkZWYwMWEyNGQ5
MzE4MzM1NGY1YjM4ZTNhNGIwODgzZTM2OTQuLmJiMDk3ZDhiY2I0NDdhYWZiMTc5ZWRhZDM1OTk0
MDAzMmEyNTQwZmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViS2l0LnZjeHByb2ovV2Vi
S2l0RXhwb3J0R2VuZXJhdG9yL1dlYktpdEV4cG9ydHMuZGVmLmluCisrKyBiL1NvdXJjZS9XZWJL
aXQvV2ViS2l0LnZjeHByb2ovV2ViS2l0RXhwb3J0R2VuZXJhdG9yL1dlYktpdEV4cG9ydHMuZGVm
LmluCkBAIC0zMjUsNyArMzI1LDggQEAgRVhQT1JUUwogICAgICAgICA/c2V0QWxsb3dzUm91bmRp
bmdIYWNrc0BUZXh0UnVuQFdlYkNvcmVAQFNBWF9OQFoKICAgICAgICAgP3JlZ2lzdGVyVVJMU2No
ZW1lQXNCeXBhc3NpbmdDb250ZW50U2VjdXJpdHlQb2xpY3lAU2NoZW1lUmVnaXN0cnlAV2ViQ29y
ZUBAU0FYQUJWU3RyaW5nQFdURkBAQFoKICAgICAgICAgP3JlbW92ZVVSTFNjaGVtZVJlZ2lzdGVy
ZWRBc0J5cGFzc2luZ0NvbnRlbnRTZWN1cml0eVBvbGljeUBTY2hlbWVSZWdpc3RyeUBXZWJDb3Jl
QEBTQVhBQlZTdHJpbmdAV1RGQEBAWgotICAgICAgICA/aWNvblVSTHNARG9jdW1lbnRAV2ViQ29y
ZUBAUUFFQUJWPyRWZWN0b3JAVUljb25VUkxAV2ViQ29yZUBAJDBBQEBXVEZAQFhaCisgICAgICAg
ID9zaG9ydGN1dEljb25VUkxzQERvY3VtZW50QFdlYkNvcmVAQFFBRUFCVj8kVmVjdG9yQFVJY29u
VVJMQFdlYkNvcmVAQCQwQUBAV1RGQEBYWgorICAgICAgICA/aWNvblVSTHNARG9jdW1lbnRAV2Vi
Q29yZUBAUUFFQUJWPyRWZWN0b3JAVUljb25VUkxAV2ViQ29yZUBAJDBBQEBXVEZAQEhAWgogICAg
ICAgICA/bnVtYmVyT2ZQYWdlc0BQcmludENvbnRleHRAV2ViQ29yZUBAU0FIUEFWRnJhbWVAMkBB
QlZGbG9hdFNpemVAMkBAWgogICAgICAgICA/cGFnZVByb3BlcnR5QFByaW50Q29udGV4dEBXZWJD
b3JlQEBTQT9BVlN0cmluZ0BXVEZAQFBBVkZyYW1lQDJAUEJESEBaCiAgICAgICAgID9wYWdlU2l6
ZUFuZE1hcmdpbnNJblBpeGVsc0BQcmludENvbnRleHRAV2ViQ29yZUBAU0E/QVZTdHJpbmdAV1RG
QEBQQVZGcmFtZUAyQEhISEhISEhAWgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC93aW4vV2Vi
S2l0LnZjcHJvai9XZWJLaXRFeHBvcnRzLmRlZi5pbiBiL1NvdXJjZS9XZWJLaXQvd2luL1dlYktp
dC52Y3Byb2ovV2ViS2l0RXhwb3J0cy5kZWYuaW4KaW5kZXggOWVlZGRlZjAxYTI0ZDkzMTgzMzU0
ZjViMzhlM2E0YjA4ODNlMzY5NC4uYmIwOTdkOGJjYjQ0N2FhZmIxNzllZGFkMzU5OTQwMDMyYTI1
NDBmYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC93aW4vV2ViS2l0LnZjcHJvai9XZWJLaXRF
eHBvcnRzLmRlZi5pbgorKysgYi9Tb3VyY2UvV2ViS2l0L3dpbi9XZWJLaXQudmNwcm9qL1dlYktp
dEV4cG9ydHMuZGVmLmluCkBAIC0zMjUsNyArMzI1LDggQEAgRVhQT1JUUwogICAgICAgICA/c2V0
QWxsb3dzUm91bmRpbmdIYWNrc0BUZXh0UnVuQFdlYkNvcmVAQFNBWF9OQFoKICAgICAgICAgP3Jl
Z2lzdGVyVVJMU2NoZW1lQXNCeXBhc3NpbmdDb250ZW50U2VjdXJpdHlQb2xpY3lAU2NoZW1lUmVn
aXN0cnlAV2ViQ29yZUBAU0FYQUJWU3RyaW5nQFdURkBAQFoKICAgICAgICAgP3JlbW92ZVVSTFNj
aGVtZVJlZ2lzdGVyZWRBc0J5cGFzc2luZ0NvbnRlbnRTZWN1cml0eVBvbGljeUBTY2hlbWVSZWdp
c3RyeUBXZWJDb3JlQEBTQVhBQlZTdHJpbmdAV1RGQEBAWgotICAgICAgICA/aWNvblVSTHNARG9j
dW1lbnRAV2ViQ29yZUBAUUFFQUJWPyRWZWN0b3JAVUljb25VUkxAV2ViQ29yZUBAJDBBQEBXVEZA
QFhaCisgICAgICAgID9zaG9ydGN1dEljb25VUkxzQERvY3VtZW50QFdlYkNvcmVAQFFBRUFCVj8k
VmVjdG9yQFVJY29uVVJMQFdlYkNvcmVAQCQwQUBAV1RGQEBYWgorICAgICAgICA/aWNvblVSTHNA
RG9jdW1lbnRAV2ViQ29yZUBAUUFFQUJWPyRWZWN0b3JAVUljb25VUkxAV2ViQ29yZUBAJDBBQEBX
VEZAQEhAWgogICAgICAgICA/bnVtYmVyT2ZQYWdlc0BQcmludENvbnRleHRAV2ViQ29yZUBAU0FI
UEFWRnJhbWVAMkBBQlZGbG9hdFNpemVAMkBAWgogICAgICAgICA/cGFnZVByb3BlcnR5QFByaW50
Q29udGV4dEBXZWJDb3JlQEBTQT9BVlN0cmluZ0BXVEZAQFBBVkZyYW1lQDJAUEJESEBaCiAgICAg
ICAgID9wYWdlU2l6ZUFuZE1hcmdpbnNJblBpeGVsc0BQcmludENvbnRleHRAV2ViQ29yZUBAU0E/
QVZTdHJpbmdAV1RGQEBQQVZGcmFtZUAyQEhISEhISEhAWgpkaWZmIC0tZ2l0IGEvU291cmNlL2F1
dG90b29scy9zeW1ib2xzLmZpbHRlciBiL1NvdXJjZS9hdXRvdG9vbHMvc3ltYm9scy5maWx0ZXIK
aW5kZXggN2M3ZTE3OTNiNjhlZDEwNTU4YzEzZTBlMGFjNTBmNTY5OGQ3ZTAyNC4uMzliYWU5MmMw
YjJkMzVhOTUzODA5OGNiNzJjNjQ0YjhiMzc4N2RjNiAxMDA2NDQKLS0tIGEvU291cmNlL2F1dG90
b29scy9zeW1ib2xzLmZpbHRlcgorKysgYi9Tb3VyY2UvYXV0b3Rvb2xzL3N5bWJvbHMuZmlsdGVy
CkBAIC00MSw3ICs0MSw4IEBAIF9aTjdXZWJDb3JlNHRvSlNFUE4zSlNDOUV4ZWNTdGF0ZUVQTlNf
MTdKU0RPTUdsb2JhbE9iamVjdEVQTlNfNVJhbmdlRTsKIF9aTjdXZWJDb3JlNVJhbmdlNmNyZWF0
ZUVOM1dURjEwUGFzc1JlZlB0cklOU184RG9jdW1lbnRFRUVOUzJfSU5TXzROb2RlRUVFaVM2X2k7
CiBfWk43V2ViQ29yZTVSYW5nZUQxRXY7CiBfWk43V2ViQ29yZThEb2N1bWVudDM2dXBkYXRlTGF5
b3V0SWdub3JlUGVuZGluZ1N0eWxlc2hlZXRzRXY7Ci1fWk43V2ViQ29yZThEb2N1bWVudDhpY29u
VVJMc0V2OworX1pON1dlYkNvcmU4RG9jdW1lbnQ4aWNvblVSTHNFaTsKK19aTjdXZWJDb3JlOERv
Y3VtZW50MTZzaG9ydGN1dEljb25VUkxzRXY7CiBfWk43V2ViQ29yZThTZXR0aW5nczE5bWluRE9N
VGltZXJJbnRlcnZhbEV2OwogX1pON1dlYkNvcmU4U2V0dGluZ3MyMnNldE1pbkRPTVRpbWVySW50
ZXJ2YWxFZDsKIF9aTjdXZWJDb3JlOUhUTUxOYW1lczhpbnB1dFRhZ0U7CmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggYzAwY2E1
YzJhY2EyMjUyZDE1YWJkN2I2MzFjZjg2MzM0NzllNjM5Zi4uMWFjMTNmYjgyYWUzNTc0ZjQyZDk3
ZGYzMTk0ZDdmYTNhYWQzMTMzZSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisr
KyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE5IEBACisyMDEzLTAyLTEzICBS
dXNsYW4gQWJkaWtlZXYgIDxhcnVzbGFuQGNocm9taXVtLm9yZz4KKworICAgICAgICA8bGluayBy
ZWw9ImFwcGxlLXRvdWNoLWljb24iPiB0YWcgaXMgbm90IGhvbm9yZWQgb24gQ05OLmNvbSwgd29y
a2Zsb3d5LmNvbSBldGMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTEwOTA2MQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgIEFkZGVkIHRlc3QgZm9yIGFwcGxlLXRvdWNoLWljb24gaW4gYWxsSWNvblVSTHMoKS4K
KyAgICAgICAgQ2hhbmdlZCBpY29uVVJMcygpIHRvIHNob3J0Y3V0SWNvblVSTHMoKS4KKworICAg
ICAgICAqIGZhc3QvZG9tL2ljb24tdXJsLWNoYW5nZS5odG1sOgorICAgICAgICAqIGZhc3QvZG9t
L2ljb24tdXJsLWxpc3QtYXBwbGUtdG91Y2gtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAg
KiBmYXN0L2RvbS9pY29uLXVybC1saXN0LWFwcGxlLXRvdWNoLmh0bWw6IEFkZGVkLgorICAgICAg
ICAqIGZhc3QvZG9tL2ljb24tdXJsLWxpc3QuaHRtbDoKKyAgICAgICAgKiBmYXN0L2RvbS9pY29u
LXVybC1wcm9wZXJ0eS5odG1sOgorCiAyMDEzLTAyLTEzICBSYXNobWkgU2h5YW1hc3VuZGFyICA8
cmFzaG1pLnMyQHNhbXN1bmcuY29tPgogCiAgICAgICAgIFRoZSAyRCBDYW52YXMgZnVuY3Rpb25z
IGZpbGxUZXh0KCkvc3Ryb2tlVGV4dCgpIHNob3VsZCBkaXNwbGF5IG5vdGhpbmcgd2hlbiBtYXhX
aWR0aCBpcyBsZXNzIHRoZW4gb3IgZXF1YWwgdG8gemVybwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvZmFzdC9kb20vaWNvbi11cmwtY2hhbmdlLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9p
Y29uLXVybC1jaGFuZ2UuaHRtbAppbmRleCA4MmQ1MzRlZWNkYTdjZDE0YWI1NTk5MzFhMjJiMjc5
OTJhNmZlNWU3Li45OTMyNzJlZGJjMmZhMmY2NjdhYzQ4OTllNjcwYzJjNTA3MGVkZDFmIDEwMDY0
NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9pY29uLXVybC1jaGFuZ2UuaHRtbAorKysgYi9M
YXlvdXRUZXN0cy9mYXN0L2RvbS9pY29uLXVybC1jaGFuZ2UuaHRtbApAQCAtNDUsNyArNDUsNyBA
QCBmdW5jdGlvbiBydW5UZXN0cygpIHsKIAogICAgIC8vIGNoZWNrIHRoYXQgdGhlIFVSTCBsaXN0
IGluIHRoZSBkb2N1bWVudCBpcyBhcyB3ZSBleHBlY3QKICAgICB2YXIgZXhwZWN0ZWRVUkxzID0g
Imh0dHA6Ly90ZXN0LmNvbS9vbGRmYXZpY29uLmljbyI7Ci0gICAgdmFyIGljb25VUkxzID0gd2lu
ZG93LmludGVybmFscy5pY29uVVJMcyhkb2N1bWVudCk7CisgICAgdmFyIGljb25VUkxzID0gd2lu
ZG93LmludGVybmFscy5zaG9ydGN1dEljb25VUkxzKGRvY3VtZW50KTsKICAgICBpZiAoZXhwZWN0
ZWRVUkxzID09IGljb25VUkxzWzBdKQogICAgICAgICB0ZXN0UGFzc2VkKCdVUkwgbGlzdCBtYXRj
aGVzIGV4cGVjdGVkJyk7CiAgICAgZWxzZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9k
b20vaWNvbi11cmwtbGlzdC1hcHBsZS10b3VjaC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9m
YXN0L2RvbS9pY29uLXVybC1saXN0LWFwcGxlLXRvdWNoLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li45OTNjNTU1ZjhhNWM0ZGQxY2Q1YWVhNDBkZjU4Yzk3NDUyY2Q4MWFiCi0tLSAvZGV2L251bGwK
KysrIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vaWNvbi11cmwtbGlzdC1hcHBsZS10b3VjaC1leHBl
Y3RlZC50eHQKQEAgLTAsMCArMSwzIEBACitUZXN0cyB0aGF0IGFsbCBmYXZpY29ucyBhbmQgdG91
Y2ggaWNvbnMgKGlmIEVOQUJMRShUT1VDSF9JQ09OX0xPQURJTkcpKSBhcmUgaW4gZG9jdW1lbnQu
aWNvblVSTHMoKQorUEFTUyBVUkwgbGlzdCBtYXRjaGVzIGV4cGVjdGVkCisKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2Zhc3QvZG9tL2ljb24tdXJsLWxpc3QtYXBwbGUtdG91Y2guaHRtbCBiL0xh
eW91dFRlc3RzL2Zhc3QvZG9tL2ljb24tdXJsLWxpc3QtYXBwbGUtdG91Y2guaHRtbApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi4wMWI5OTRjOGI0YmRhYjkyY2VkZTFkNjkzZDkyNzdmYzZiNmNjZTc0Ci0tLSAvZGV2L251
bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vaWNvbi11cmwtbGlzdC1hcHBsZS10b3VjaC5o
dG1sCkBAIC0wLDAgKzEsNDkgQEAKKzxodG1sPgorPGhlYWQ+Cis8dGl0bGU+T3JpZ2luYWwgVGl0
bGU8L3RpdGxlPgorPGxpbmsgcmVsPSJzaG9ydGN1dCBpY29uIiB0eXBlPSJpbWFnZS94LWljb24i
IGhyZWY9Imh0dHA6Ly90ZXN0LmNvbS9vbGRmYXZpY29uLmljbyIvPgorPGxpbmsgcmVsPSJhcHBs
ZS10b3VjaC1pY29uIiB0eXBlPSJpbWFnZS9wbmciIGhyZWY9Imh0dHA6Ly90ZXN0LmNvbS9pL3Rv
dWNoLnBuZyIvPgorPGxpbmsgcmVsPSJhcHBsZS10b3VjaC1pY29uLXByZWNvbXBvc2VkIiB0eXBl
PSJpbWFnZS9wbmciIGhyZWY9Imh0dHA6Ly90ZXN0LmNvbS9pL3RvdWNoLXByZWNvbXBvc2VkLnBu
ZyIvPgorPHNjcmlwdCBzcmM9Ii4uL2pzL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3Jp
cHQ+Cis8c2NyaXB0PgorCitmdW5jdGlvbiBydW5UZXN0cygpIHsKKyAgICBpZiAod2luZG93LnRl
c3RSdW5uZXIpCisgICAgICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOworCisgICAgZGVidWco
J1Rlc3RzIHRoYXQgYWxsIGZhdmljb25zIGFuZCB0b3VjaCBpY29ucyAoaWYgRU5BQkxFKFRPVUNI
X0lDT05fTE9BRElORykpIGFyZSBpbiBkb2N1bWVudC5pY29uVVJMcygpJyk7CisKKyAgICAvLyBG
ZXRjaCB0aGUgYWN0dWFsIGxpc3Qgb2YgaWNvbiBVUkxzLgorICAgIHZhciBzdXBwb3J0c1RvdWNo
SWNvbnMgPSB3aW5kb3cuaW50ZXJuYWxzLmlzVG91Y2hJY29uc0xvYWRpbmdTdXBwb3J0ZWQoKTsK
KyAgICB2YXIgYWN0dWFsVVJMcyA9IHdpbmRvdy5pbnRlcm5hbHMuYWxsSWNvblVSTHMoZG9jdW1l
bnQpOworCisgICAgLy8gQ2hlY2sgdGhhdCB0aGUgVVJMIGxpc3QgaW4gdGhlIGRvY3VtZW50IGlz
IGFzIHdlIGV4cGVjdC4KKyAgICAvLyBOb3RlIHRoYXQgdGhlIGV4cGVjdGVkIG9yZGVyIGlzIHJl
dmVyc2UgdG8gZW5zdXJlIHRoYXQgaWNvbnMgc2VlbiBsYXRlcgorICAgIC8vIHRha2UgcHJlY2Vk
ZW5jZSBhcyByZXF1aXJlZCBieSB0aGUgc3BlYy4KKyAgICB2YXIgZXhwZWN0ZWRVUkxzID0gc3Vw
cG9ydHNUb3VjaEljb25zID8gWworICAgICAgICAiaHR0cDovL3Rlc3QuY29tL2kvdG91Y2gtcHJl
Y29tcG9zZWQucG5nIiwKKyAgICAgICAgImh0dHA6Ly90ZXN0LmNvbS9pL3RvdWNoLnBuZyIsCisg
ICAgICAgICJodHRwOi8vdGVzdC5jb20vb2xkZmF2aWNvbi5pY28iLAorICAgIF0gOiBbCisgICAg
ICAgICJodHRwOi8vdGVzdC5jb20vb2xkZmF2aWNvbi5pY28iCisgICAgXTsKKyAgICB2YXIgc3Vj
Y2VzcyA9IGV4cGVjdGVkVVJMcy5sZW5ndGggPT0gYWN0dWFsVVJMcy5sZW5ndGg7CisgICAgZm9y
ICh2YXIgaSA9IDA7IHN1Y2Nlc3MgJiYgaSA8IGFjdHVhbFVSTHMubGVuZ3RoOyBpKyspIHsKKyAg
ICAgICAgaWYgKGV4cGVjdGVkVVJMc1tpXSAhPSBhY3R1YWxVUkxzW2ldKSB7CisgICAgICAgICAg
ICBkZWJ1ZygnbWlzbWF0Y2ggZXhwZWN0ZWQ9JyArIGV4cGVjdGVkVVJMc1tpXSArCisgICAgICAg
ICAgICAgICAgICAgICcgYWN0dWFsPScgKyBhY3R1YWxVUkxzW2ldKTsKKyAgICAgICAgICAgIHN1
Y2Nlc3MgPSBmYWxzZTsKKyAgICAgICAgfQorICAgIH0KKyAgICBpZiAoc3VjY2VzcykKKyAgICAg
ICAgdGVzdFBhc3NlZCgnVVJMIGxpc3QgbWF0Y2hlcyBleHBlY3RlZCcpOworICAgIGVsc2UKKyAg
ICAgICAgdGVzdEZhaWxlZCgnVVJMIGxpc3QgZG9lcyBub3QgbWF0Y2ggZXhwZWN0ZWQnKTsKK30K
KworPC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keSBvbmxvYWQ9J3J1blRlc3RzKCk7Jz4KKzwvZGl2
PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vaWNv
bi11cmwtbGlzdC5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vaWNvbi11cmwtbGlzdC5odG1s
CmluZGV4IGRkYTAwZTcyZWZmYmZlMWQyYjI5MTZhYzgyM2Q0Y2I4ZWU0NmQ0NTQuLjZkM2RmZGE2
YTVkZTQ5OWEwN2UxMjU5NzU3OGYzNDBlZGU4MzdmNWYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3Rz
L2Zhc3QvZG9tL2ljb24tdXJsLWxpc3QuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9p
Y29uLXVybC1saXN0Lmh0bWwKQEAgLTQ4LDcgKzQ4LDcgQEAgZnVuY3Rpb24gcnVuVGVzdHMoKSB7
CiAgICAgdmFyIGV4cGVjdGVkVVJMMCA9ICJodHRwOi8vdGVzdC5jb20vYmFyZmF2aWNvbi5pY28i
OwogICAgIHZhciBleHBlY3RlZFVSTDEgPSAiaHR0cDovL3Rlc3QuY29tL2Zvb2Zhdmljb24uaWNv
IjsKICAgICB2YXIgZXhwZWN0ZWRVUkwyID0gImh0dHA6Ly90ZXN0LmNvbS9uZXdmYXZpY29uLmlj
byI7Ci0gICAgdmFyIGljb25VUkxzID0gd2luZG93LmludGVybmFscy5pY29uVVJMcyhkb2N1bWVu
dCk7CisgICAgdmFyIGljb25VUkxzID0gd2luZG93LmludGVybmFscy5zaG9ydGN1dEljb25VUkxz
KGRvY3VtZW50KTsKICAgICBpZiAoZXhwZWN0ZWRVUkwwID09IGljb25VUkxzWzBdICYmIGV4cGVj
dGVkVVJMMSA9PSBpY29uVVJMc1sxXSAmJiBleHBlY3RlZFVSTDIgPT0gaWNvblVSTHNbMl0pIAog
ICAgICAgICB0ZXN0UGFzc2VkKCdVUkwgbGlzdCBtYXRjaGVzIGV4cGVjdGVkJyk7CiAgICAgZWxz
ZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vaWNvbi11cmwtcHJvcGVydHkuaHRt
bCBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL2ljb24tdXJsLXByb3BlcnR5Lmh0bWwKaW5kZXggOGE2
YjljMjM4ODUwNmUwZTI4NDJkMzdlYzA3MTA4NTViZjRmYjlmNS4uMmQxYzAxMjE1NzFhOTdiZjE1
NDNkNDE2NTQ2Zjc2OGU3NTE2MWVkMyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9kb20v
aWNvbi11cmwtcHJvcGVydHkuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9pY29uLXVy
bC1wcm9wZXJ0eS5odG1sCkBAIC00Myw3ICs0Myw3IEBAIGZ1bmN0aW9uIHJ1blRlc3RzKCkgewog
CiAgICAgLy8gY2hlY2sgdGhhdCB0aGUgVVJMIGxpc3QgaW4gdGhlIGRvY3VtZW50IGlzIGFzIHdl
IGV4cGVjdAogICAgIHZhciBleHBlY3RlZFVSTHMgPSAiaHR0cDovL3Rlc3QuY29tL25ld2Zhdmlj
b24uaWNvIjsKLSAgICB2YXIgaWNvblVSTHMgPSB3aW5kb3cuaW50ZXJuYWxzLmljb25VUkxzKGRv
Y3VtZW50KTsKKyAgICB2YXIgaWNvblVSTHMgPSB3aW5kb3cuaW50ZXJuYWxzLnNob3J0Y3V0SWNv
blVSTHMoZG9jdW1lbnQpOwogICAgIGlmIChleHBlY3RlZFVSTHMgPT0gaWNvblVSTHNbMF0pCiAg
ICAgICAgIGRlYnVnT3V0cHV0KCdQQVNTIC0gVVJMIGxpc3QgbWF0Y2hlcyBleHBlY3RlZCcpOwog
ICAgIGVsc2UKZGlmZiAtLWdpdCBhL0NoYW5nZUxvZyBiL0NoYW5nZUxvZwppbmRleCBmZDM1YmIx
NjQwOTY4NTVmODE2ZmY1YjFkODc0M2UyNjBmMDc5NjQxLi5jNDA4NGVjYjk4MjhmZDA1OGQ0NTA3
ZGJiMWQxYTEyZTJiMTg1NGZmIDEwMDY0NAotLS0gYS9DaGFuZ2VMb2cKKysrIGIvQ2hhbmdlTG9n
CkBAIC0xLDMgKzEsMTIgQEAKKzIwMTMtMDItMTMgIFJ1c2xhbiBBYmRpa2VldiAgPGFydXNsYW5A
Y2hyb21pdW0ub3JnPgorCisgICAgICAgIDxsaW5rIHJlbD0iYXBwbGUtdG91Y2gtaWNvbiI+IHRh
ZyBpcyBub3QgaG9ub3JlZCBvbiBDTk4uY29tLCB3b3JrZmxvd3kuY29tIGV0YworICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTA5MDYxCisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBTb3VyY2UvYXV0b3Rvb2xz
L3N5bWJvbHMuZmlsdGVyOgorCiAyMDEzLTAyLTEyICBNYXJ0aW4gUm9iaW5zb24gIDxtcm9iaW5z
b25AaWdhbGlhLmNvbT4KIAogICAgICAgICBbR1RLXSBSZW1vdmUgdGhlIEdMaWIgdW5pY29kZSBi
YWNrZW5kCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>188252</attachid>
            <date>2013-02-13 20:02:48 -0800</date>
            <delta_ts>2013-02-19 18:08:35 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-109061-20130213195916.patch</filename>
            <type>text/plain</type>
            <size>18897</size>
            <attacher name="Ruslan Abdikeev">aruslan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQyODQ1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMTcxZGViZTJmODMwNzQz
OThkMTNlODZjYTJiZGYwMDA1YTJkMGE3ZS4uYzI4YTE2YzQxMTlhYzFiOTg1YmMyNTA5MzVjNmNl
MjM2ZTdkZjI5OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM1IEBACisyMDEzLTAyLTEzICBSdXNs
YW4gQWJkaWtlZXYgIDxhcnVzbGFuQGNocm9taXVtLm9yZz4KKworICAgICAgICA8bGluayByZWw9
ImFwcGxlLXRvdWNoLWljb24iPiB0YWcgaXMgbm90IGhvbm9yZWQgb24gQ05OLmNvbSwgd29ya2Zs
b3d5LmNvbSBldGMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTEwOTA2MQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgIFRlc3Q6IGZhc3QvZG9tL2ljb24tdXJsLWxpc3QtYXBwbGUtdG91Y2guaHRtbAorCisgICAg
ICAgIEFkZGVkIGljb25UeXBlcyBwYXJhbWV0ZXIgdG8gRG9jdW1lbnQ6Omljb25VUkxzKCkuCisg
ICAgICAgIEFkZGVkIERvY3VtZW50OjpzaG9ydGN1dEljb25VUkxzKCkgd2l0aCBvcmlnaW5hbCBz
ZW1hbnRpY3Mgb2YgaWNvblVSTHMoKS4KKyAgICAgICAgRml4ZWQgSWNvbkNvbnRyb2xsZXIuY3Bw
IHRvIHByb3ZpZGUgaWNvblR5cGVzIHRvIGljb25VUkxzKCkuCisKKyAgICAgICAgKiBXZWJDb3Jl
LmV4cC5pbjoKKyAgICAgICAgKiBkb20vRG9jdW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
RG9jdW1lbnQ6OnNob3J0Y3V0SWNvblVSTHMpOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAg
IChXZWJDb3JlOjpEb2N1bWVudDo6aWNvblVSTHMpOgorICAgICAgICAqIGRvbS9Eb2N1bWVudC5o
OgorICAgICAgICAoRG9jdW1lbnQpOgorICAgICAgICAqIGxvYWRlci9pY29uL0ljb25Db250cm9s
bGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Okljb25Db250cm9sbGVyOjppY29uVVJMKToKKyAg
ICAgICAgKFdlYkNvcmU6Okljb25Db250cm9sbGVyOjp1cmxzRm9yVHlwZXMpOgorICAgICAgICAq
IHRlc3RpbmcvSW50ZXJuYWxzLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkludGVybmFsczo6aWNv
blVSTHMpOgorICAgICAgICAoV2ViQ29yZTo6SW50ZXJuYWxzOjpzaG9ydGN1dEljb25VUkxzKToK
KyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoV2ViQ29yZTo6SW50ZXJuYWxzOjphbGxJY29u
VVJMcyk6CisgICAgICAgIChXZWJDb3JlOjpJbnRlcm5hbHM6OmlzVG91Y2hJY29uc0xvYWRpbmdT
dXBwb3J0ZWQpOgorICAgICAgICAqIHRlc3RpbmcvSW50ZXJuYWxzLmg6CisgICAgICAgICogdGVz
dGluZy9JbnRlcm5hbHMuaWRsOgorCiAyMDEzLTAyLTEzICBTb28tSHl1biBDaG9pICA8c2g5LmNo
b2lAc2Ftc3VuZy5jb20+CiAKICAgICAgICAgRml4IGluZGVudGF0aW9uIGVycm9yIGluIE1lZGlh
UGxheWVyUHJpdmF0ZUdTdHJlYW1lci5oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJD
b3JlLmV4cC5pbiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZXhwLmluCmluZGV4IDY3MDlkZTE4
ZTY1YmQwZmJlOWIyNDcwOTljYTE4ZTc1NjQ0OTczMzEuLmRlM2VhZTJlN2M1Mzg1NjQzYjVkYmI2
ZmUwOTI3ZTBkMWI0NDNlZGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZXhw
LmluCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZXhwLmluCkBAIC05NzAsNyArOTcwLDgg
QEAgX19aTjdXZWJDb3JlOERvY3VtZW50MzZ1cGRhdGVMYXlvdXRJZ25vcmVQZW5kaW5nU3R5bGVz
aGVldHNFdgogX19aTjdXZWJDb3JlOERvY3VtZW50NGhlYWRFdgogX19aTjdXZWJDb3JlOEZvcm1E
YXRhMjhyZW1vdmVHZW5lcmF0ZWRGaWxlc0lmTmVlZGVkRXYKIF9fWk43V2ViQ29yZThGb3JtRGF0
YTZkZWNvZGVFUk4zV1RGN0RlY29kZXJFCi1fX1pON1dlYkNvcmU4RG9jdW1lbnQ4aWNvblVSTHNF
dgorX19aTjdXZWJDb3JlOERvY3VtZW50OGljb25VUkxzRWkKK19fWk43V2ViQ29yZThEb2N1bWVu
dDE2c2hvcnRjdXRJY29uVVJMc0V2CiBfX1pON1dlYkNvcmU4Rm9ybURhdGE2Y3JlYXRlRVBLdm0K
IF9fWk43V2ViQ29yZThGb3JtRGF0YUQxRXYKIF9fWk43V2ViQ29yZThHcmFkaWVudDEyYWRkQ29s
b3JTdG9wRWZSS05TXzVDb2xvckUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1
bWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCmluZGV4IGE1YWI5OTRi
MDkyMjdlNzRiZWM2NGM1YzA1Nzc5ZDI4NjI1NTgxYzguLjNiN2E3ZjdmNWVlODhjMmRlOGE5ZGIx
NTc0YTcyNzFlMTMzYmU0ZTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVu
dC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcApAQCAtNDQ3MSwxNCAr
NDQ3MSwxOSBAQCBQYXNzUmVmUHRyPFhQYXRoUmVzdWx0PiBEb2N1bWVudDo6ZXZhbHVhdGUoY29u
c3QgU3RyaW5nJiBleHByZXNzaW9uLAogICAgIHJldHVybiBtX3hwYXRoRXZhbHVhdG9yLT5ldmFs
dWF0ZShleHByZXNzaW9uLCBjb250ZXh0Tm9kZSwgcmVzb2x2ZXIsIHR5cGUsIHJlc3VsdCwgZWMp
OwogfQogCi1jb25zdCBWZWN0b3I8SWNvblVSTD4mIERvY3VtZW50OjppY29uVVJMcygpCitjb25z
dCBWZWN0b3I8SWNvblVSTD4mIERvY3VtZW50OjpzaG9ydGN1dEljb25VUkxzKCkKK3sKKyAgICAv
LyBJbmNsdWRlIGFueSBpY29ucyB3aGVyZSB0eXBlID0gbGluaywgcmVsID0gInNob3J0Y3V0IGlj
b24iLgorICAgIHJldHVybiBpY29uVVJMcyhGYXZpY29uKTsKK30KKworY29uc3QgVmVjdG9yPElj
b25VUkw+JiBEb2N1bWVudDo6aWNvblVSTHMoaW50IGljb25UeXBlcykKIHsKICAgICBtX2ljb25V
UkxzLmNsZWFyKCk7CiAKICAgICBpZiAoIWhlYWQoKSB8fCAhKGhlYWQoKS0+Y2hpbGRyZW4oKSkp
CiAgICAgICAgIHJldHVybiBtX2ljb25VUkxzOwogCi0gICAgLy8gSW5jbHVkZSBhbnkgaWNvbnMg
d2hlcmUgdHlwZSA9IGxpbmssIHJlbCA9ICJzaG9ydGN1dCBpY29uIi4KICAgICBSZWZQdHI8SFRN
TENvbGxlY3Rpb24+IGNoaWxkcmVuID0gaGVhZCgpLT5jaGlsZHJlbigpOwogICAgIHVuc2lnbmVk
IGludCBsZW5ndGggPSBjaGlsZHJlbi0+bGVuZ3RoKCk7CiAgICAgZm9yICh1bnNpZ25lZCBpbnQg
aSA9IDA7IGkgPCBsZW5ndGg7ICsraSkgewpAQCAtNDQ4Niw3ICs0NDkxLDcgQEAgY29uc3QgVmVj
dG9yPEljb25VUkw+JiBEb2N1bWVudDo6aWNvblVSTHMoKQogICAgICAgICBpZiAoIWNoaWxkLT5o
YXNUYWdOYW1lKGxpbmtUYWcpKQogICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgIEhUTUxM
aW5rRWxlbWVudCogbGlua0VsZW1lbnQgPSBzdGF0aWNfY2FzdDxIVE1MTGlua0VsZW1lbnQqPihj
aGlsZCk7Ci0gICAgICAgIGlmIChsaW5rRWxlbWVudC0+aWNvblR5cGUoKSAhPSBGYXZpY29uKQor
ICAgICAgICBpZiAoIShsaW5rRWxlbWVudC0+aWNvblR5cGUoKSAmIGljb25UeXBlcykpCiAgICAg
ICAgICAgICBjb250aW51ZTsKICAgICAgICAgaWYgKGxpbmtFbGVtZW50LT5ocmVmKCkuaXNFbXB0
eSgpKQogICAgICAgICAgICAgY29udGludWU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9k
b20vRG9jdW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oCmluZGV4IDcyYzgz
OTkzYmUwN2ZmOGMyNzYyMDI5OWFhMjE2NDk2Y2Y3ZjU5ZTcuLjkwMWI0YjgyNWNiODdkZTliNDc2
ZjhjODcxYjk4Y2FlOTFhNzllNGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1
bWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oCkBAIC05NDEsNyArOTQx
LDggQEAgcHVibGljOgogICAgIGJvb2wgaGFzTm9kZXNXaXRoUGxhY2Vob2xkZXJTdHlsZSgpIGNv
bnN0IHsgcmV0dXJuIG1faGFzTm9kZXNXaXRoUGxhY2Vob2xkZXJTdHlsZTsgfQogICAgIHZvaWQg
c2V0SGFzTm9kZXNXaXRoUGxhY2Vob2xkZXJTdHlsZSgpIHsgbV9oYXNOb2Rlc1dpdGhQbGFjZWhv
bGRlclN0eWxlID0gdHJ1ZTsgfQogCi0gICAgY29uc3QgVmVjdG9yPEljb25VUkw+JiBpY29uVVJM
cygpOworICAgIGNvbnN0IFZlY3RvcjxJY29uVVJMPiYgc2hvcnRjdXRJY29uVVJMcygpOworICAg
IGNvbnN0IFZlY3RvcjxJY29uVVJMPiYgaWNvblVSTHMoaW50IGljb25UeXBlcyk7CiAgICAgdm9p
ZCBhZGRJY29uVVJMKGNvbnN0IFN0cmluZyYgdXJsLCBjb25zdCBTdHJpbmcmIG1pbWVUeXBlLCBj
b25zdCBTdHJpbmcmIHNpemUsIEljb25UeXBlKTsKIAogICAgIHZvaWQgc2V0VXNlU2VjdXJlS2V5
Ym9hcmRFbnRyeVdoZW5BY3RpdmUoYm9vbCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9s
b2FkZXIvaWNvbi9JY29uQ29udHJvbGxlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvaWNv
bi9JY29uQ29udHJvbGxlci5jcHAKaW5kZXggNzRmYWE5NTljYWJlMzQ0ODFhMGY1NzlmN2U1MjQw
ODIyZTAxMzgwNC4uM2FkMTU5Y2YwNjk4Zjk4MDdjM2U5MWYzOGZhZTdjNWQyYzBlZGU1MyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2ljb24vSWNvbkNvbnRyb2xsZXIuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9pY29uL0ljb25Db250cm9sbGVyLmNwcApAQCAtNjgs
MTMgKzY4LDExIEBAIEtVUkwgSWNvbkNvbnRyb2xsZXI6OnVybCgpCiBJY29uVVJMIEljb25Db250
cm9sbGVyOjppY29uVVJMKEljb25UeXBlIGljb25UeXBlKSBjb25zdAogewogICAgIEljb25VUkwg
cmVzdWx0OwotICAgIGNvbnN0IFZlY3RvcjxJY29uVVJMPiYgaWNvblVSTHMgPSBtX2ZyYW1lLT5k
b2N1bWVudCgpLT5pY29uVVJMcygpOworICAgIGNvbnN0IFZlY3RvcjxJY29uVVJMPiYgaWNvblVS
THMgPSBtX2ZyYW1lLT5kb2N1bWVudCgpLT5pY29uVVJMcyhpY29uVHlwZSk7CiAgICAgVmVjdG9y
PEljb25VUkw+Ojpjb25zdF9pdGVyYXRvciBpdGVyKGljb25VUkxzLmJlZ2luKCkpOwogICAgIGZv
ciAoOyBpdGVyICE9IGljb25VUkxzLmVuZCgpOyArK2l0ZXIpIHsKLSAgICAgICAgaWYgKGl0ZXIt
Pm1faWNvblR5cGUgPT0gaWNvblR5cGUpIHsKLSAgICAgICAgICAgIGlmIChyZXN1bHQubV9pY29u
VVJMLmlzRW1wdHkoKSB8fCAhaXRlci0+bV9taW1lVHlwZS5pc0VtcHR5KCkpCi0gICAgICAgICAg
ICAgICAgcmVzdWx0ID0gKml0ZXI7Ci0gICAgICAgIH0KKyAgICAgICAgaWYgKHJlc3VsdC5tX2lj
b25VUkwuaXNFbXB0eSgpIHx8ICFpdGVyLT5tX21pbWVUeXBlLmlzRW1wdHkoKSkKKyAgICAgICAg
ICAgIHJlc3VsdCA9ICppdGVyOwogICAgIH0KIAogICAgIHJldHVybiByZXN1bHQ7CkBAIC0xMDUs
MTEgKzEwMyw4IEBAIEljb25VUkxzIEljb25Db250cm9sbGVyOjp1cmxzRm9yVHlwZXMoaW50IGlj
b25UeXBlcykKICNlbmRpZgogCiAgICAgLy8gRmluYWxseSwgYXBwZW5kIGFsbCByZW1haW5pbmcg
aWNvbnMgb2YgdGhpcyB0eXBlLgotICAgIGNvbnN0IFZlY3RvcjxJY29uVVJMPiYgYWxsSWNvblVS
THMgPSBtX2ZyYW1lLT5kb2N1bWVudCgpLT5pY29uVVJMcygpOworICAgIGNvbnN0IFZlY3RvcjxJ
Y29uVVJMPiYgYWxsSWNvblVSTHMgPSBtX2ZyYW1lLT5kb2N1bWVudCgpLT5pY29uVVJMcyhpY29u
VHlwZXMpOwogICAgIGZvciAoVmVjdG9yPEljb25VUkw+Ojpjb25zdF9pdGVyYXRvciBpdGVyID0g
YWxsSWNvblVSTHMuYmVnaW4oKTsgaXRlciAhPSBhbGxJY29uVVJMcy5lbmQoKTsgKytpdGVyKSB7
Ci0gICAgICAgIGlmICghKGl0ZXItPm1faWNvblR5cGUgJiBpY29uVHlwZXMpKQotICAgICAgICAg
ICAgY29udGludWU7Ci0KICAgICAgICAgaW50IGk7CiAgICAgICAgIGludCBpY29uQ291bnQgPSBp
Y29uVVJMcy5zaXplKCk7CiAgICAgICAgIGZvciAoaSA9IDA7IGkgPCBpY29uQ291bnQ7ICsraSkg
ewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuY3BwIGIvU291
cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuY3BwCmluZGV4IDc3MWYwY2NmNDIwYTljNDlh
YWI5YzNmMmRjNWIwZjRhYmExNzAwMmEuLjI0MTZjZTg1ZmJiMGUxZjBjOGJmMWE4OGQzN2EzMzgx
YjI3MDBkY2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5jcHAKQEAgLTE3MTAsOSAr
MTcxMCw5IEBAIGludCBJbnRlcm5hbHM6OnBhZ2VOdW1iZXIoRWxlbWVudCogZWxlbWVudCwgZmxv
YXQgcGFnZVdpZHRoLCBmbG9hdCBwYWdlSGVpZ2h0KQogICAgIHJldHVybiBQcmludENvbnRleHQ6
OnBhZ2VOdW1iZXJGb3JFbGVtZW50KGVsZW1lbnQsIEZsb2F0U2l6ZShwYWdlV2lkdGgsIHBhZ2VI
ZWlnaHQpKTsKIH0KIAotVmVjdG9yPFN0cmluZz4gSW50ZXJuYWxzOjppY29uVVJMcyhEb2N1bWVu
dCogZG9jdW1lbnQpIGNvbnN0CitWZWN0b3I8U3RyaW5nPiBJbnRlcm5hbHM6Omljb25VUkxzKERv
Y3VtZW50KiBkb2N1bWVudCwgaW50IGljb25UeXBlcykgY29uc3QKIHsKLSAgICBWZWN0b3I8SWNv
blVSTD4gaWNvblVSTHMgPSBkb2N1bWVudC0+aWNvblVSTHMoKTsKKyAgICBWZWN0b3I8SWNvblVS
TD4gaWNvblVSTHMgPSBkb2N1bWVudC0+aWNvblVSTHMoaWNvblR5cGVzKTsKICAgICBWZWN0b3I8
U3RyaW5nPiBhcnJheTsKIAogICAgIFZlY3RvcjxJY29uVVJMPjo6Y29uc3RfaXRlcmF0b3IgaXRl
cihpY29uVVJMcy5iZWdpbigpKTsKQEAgLTE3MjIsNiArMTcyMiwyNSBAQCBWZWN0b3I8U3RyaW5n
PiBJbnRlcm5hbHM6Omljb25VUkxzKERvY3VtZW50KiBkb2N1bWVudCkgY29uc3QKICAgICByZXR1
cm4gYXJyYXk7CiB9CiAKK1ZlY3RvcjxTdHJpbmc+IEludGVybmFsczo6c2hvcnRjdXRJY29uVVJM
cyhEb2N1bWVudCogZG9jdW1lbnQpIGNvbnN0Cit7CisgICAgcmV0dXJuIGljb25VUkxzKGRvY3Vt
ZW50LCBGYXZpY29uKTsKK30KKworVmVjdG9yPFN0cmluZz4gSW50ZXJuYWxzOjphbGxJY29uVVJM
cyhEb2N1bWVudCogZG9jdW1lbnQpIGNvbnN0Cit7CisgICAgcmV0dXJuIGljb25VUkxzKGRvY3Vt
ZW50LCBGYXZpY29uIHwgVG91Y2hJY29uIHwgVG91Y2hQcmVjb21wb3NlZEljb24pOworfQorCiti
b29sIEludGVybmFsczo6aXNUb3VjaEljb25zTG9hZGluZ1N1cHBvcnRlZCgpIGNvbnN0Cit7Cisj
aWYgRU5BQkxFKFRPVUNIX0lDT05fTE9BRElORykKKyAgICByZXR1cm4gdHJ1ZTsKKyNlbHNlCisg
ICAgcmV0dXJuIGZhbHNlOworI2VuZGlmCit9CisKIGludCBJbnRlcm5hbHM6Om51bWJlck9mUGFn
ZXMoZmxvYXQgcGFnZVdpZHRoLCBmbG9hdCBwYWdlSGVpZ2h0KQogewogICAgIGlmICghZnJhbWUo
KSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmggYi9Tb3Vy
Y2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5oCmluZGV4IGU3MGFjNmM4MTNiYzk5ZTQwYWZh
ZmNhZmFkZjViYTk1YjBhZmI0MmYuLmVkZDllNzRhZjgxMDBjNTc1YjE2MWNkMDBjMGVhZWU1NDI0
YTZhY2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmgKKysr
IGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaApAQCAtMjQ4LDcgKzI0OCw5IEBA
IHB1YmxpYzoKICAgICBTdHJpbmcgY291bnRlclZhbHVlKEVsZW1lbnQqKTsKIAogICAgIGludCBw
YWdlTnVtYmVyKEVsZW1lbnQqLCBmbG9hdCBwYWdlV2lkdGggPSA4MDAsIGZsb2F0IHBhZ2VIZWln
aHQgPSA2MDApOwotICAgIFZlY3RvcjxTdHJpbmc+IGljb25VUkxzKERvY3VtZW50KikgY29uc3Q7
CisgICAgVmVjdG9yPFN0cmluZz4gc2hvcnRjdXRJY29uVVJMcyhEb2N1bWVudCopIGNvbnN0Owor
ICAgIFZlY3RvcjxTdHJpbmc+IGFsbEljb25VUkxzKERvY3VtZW50KikgY29uc3Q7CisgICAgYm9v
bCBpc1RvdWNoSWNvbnNMb2FkaW5nU3VwcG9ydGVkKCkgY29uc3Q7CiAKICAgICBpbnQgbnVtYmVy
T2ZQYWdlcyhmbG9hdCBwYWdlV2lkdGhJblBpeGVscyA9IDgwMCwgZmxvYXQgcGFnZUhlaWdodElu
UGl4ZWxzID0gNjAwKTsKICAgICBTdHJpbmcgcGFnZVByb3BlcnR5KFN0cmluZywgaW50LCBFeGNl
cHRpb25Db2RlJiA9IEFTU0VSVF9OT19FWENFUFRJT04pIGNvbnN0OwpAQCAtMjg5LDYgKzI5MSw3
IEBAIHByaXZhdGU6CiAgICAgZXhwbGljaXQgSW50ZXJuYWxzKERvY3VtZW50Kik7CiAgICAgRG9j
dW1lbnQqIGNvbnRleHREb2N1bWVudCgpIGNvbnN0OwogICAgIEZyYW1lKiBmcmFtZSgpIGNvbnN0
OworICAgIFZlY3RvcjxTdHJpbmc+IGljb25VUkxzKERvY3VtZW50KiwgaW50IGljb25UeXBlcykg
Y29uc3Q7CiAKICAgICBEb2N1bWVudE1hcmtlciogbWFya2VyQXQoTm9kZSosIGNvbnN0IFN0cmlu
ZyYgbWFya2VyVHlwZSwgdW5zaWduZWQgaW5kZXgsIEV4Y2VwdGlvbkNvZGUmKTsKICNpZiBFTkFC
TEUoSU5TUEVDVE9SKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5h
bHMuaWRsIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaWRsCmluZGV4IGJmNjM0
NzlkNGNmNzQzY2E0NGE3Yjg5ZWMzMGZiZTI5YjVkMTViYWEuLjkwNDgzYjlhNmVlMTI4ZTc4NzRm
OTY4OWY4NDRhNDA0NTBjNDI0YWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Rlc3Rpbmcv
SW50ZXJuYWxzLmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5pZGwK
QEAgLTIxNSw3ICsyMTUsOSBAQAogCiAgICAgRE9NU3RyaW5nIGNvdW50ZXJWYWx1ZShpbiBFbGVt
ZW50IGVsZW1lbnQpOwogICAgIGxvbmcgcGFnZU51bWJlcihpbiBFbGVtZW50IGVsZW1lbnQsIGlu
IFtPcHRpb25hbF0gZmxvYXQgcGFnZVdpZHRoLCBpbiBbT3B0aW9uYWxdIGZsb2F0IHBhZ2VIZWln
aHQpOwotICAgIERPTVN0cmluZ1tdIGljb25VUkxzKGluIERvY3VtZW50IGRvY3VtZW50KTsKKyAg
ICBET01TdHJpbmdbXSBzaG9ydGN1dEljb25VUkxzKGluIERvY3VtZW50IGRvY3VtZW50KTsKKyAg
ICBET01TdHJpbmdbXSBhbGxJY29uVVJMcyhpbiBEb2N1bWVudCBkb2N1bWVudCk7CisgICAgYm9v
bGVhbiBpc1RvdWNoSWNvbnNMb2FkaW5nU3VwcG9ydGVkKCk7CiAgICAgbG9uZyBudW1iZXJPZlBh
Z2VzKGluIFtPcHRpb25hbF0gZG91YmxlIHBhZ2VXaWR0aEluUGl4ZWxzLCBpbiBbT3B0aW9uYWxd
IGRvdWJsZSBwYWdlSGVpZ2h0SW5QaXhlbHMpOwogICAgIERPTVN0cmluZyBwYWdlUHJvcGVydHko
aW4gRE9NU3RyaW5nIHByb3BlcnR5TmFtZSwgaW4gbG9uZyBwYWdlTnVtYmVyKSByYWlzZXMgKERP
TUV4Y2VwdGlvbik7CiAgICAgRE9NU3RyaW5nIHBhZ2VTaXplQW5kTWFyZ2luc0luUGl4ZWxzKGlu
IGxvbmcgcGFnZUluZGV4LCBpbiBsb25nIHdpZHRoLCBpbiBsb25nIGhlaWdodCwgaW4gbG9uZyBt
YXJnaW5Ub3AsIGluIGxvbmcgbWFyZ2luUmlnaHQsIGluIGxvbmcgbWFyZ2luQm90dG9tLCBpbiBs
b25nIG1hcmdpbkxlZnQpIHJhaXNlcyAoRE9NRXhjZXB0aW9uKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvV2ViS2l0LnZjeHByb2ovV2ViS2l0RXhwb3J0R2VuZXJhdG9yL1dlYktpdEV4cG9y
dHMuZGVmLmluIGIvU291cmNlL1dlYktpdC9XZWJLaXQudmN4cHJvai9XZWJLaXRFeHBvcnRHZW5l
cmF0b3IvV2ViS2l0RXhwb3J0cy5kZWYuaW4KaW5kZXggOWVlZGRlZjAxYTI0ZDkzMTgzMzU0ZjVi
MzhlM2E0YjA4ODNlMzY5NC4uYmIwOTdkOGJjYjQ0N2FhZmIxNzllZGFkMzU5OTQwMDMyYTI1NDBm
YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJLaXQudmN4cHJvai9XZWJLaXRFeHBvcnRH
ZW5lcmF0b3IvV2ViS2l0RXhwb3J0cy5kZWYuaW4KKysrIGIvU291cmNlL1dlYktpdC9XZWJLaXQu
dmN4cHJvai9XZWJLaXRFeHBvcnRHZW5lcmF0b3IvV2ViS2l0RXhwb3J0cy5kZWYuaW4KQEAgLTMy
NSw3ICszMjUsOCBAQCBFWFBPUlRTCiAgICAgICAgID9zZXRBbGxvd3NSb3VuZGluZ0hhY2tzQFRl
eHRSdW5AV2ViQ29yZUBAU0FYX05AWgogICAgICAgICA/cmVnaXN0ZXJVUkxTY2hlbWVBc0J5cGFz
c2luZ0NvbnRlbnRTZWN1cml0eVBvbGljeUBTY2hlbWVSZWdpc3RyeUBXZWJDb3JlQEBTQVhBQlZT
dHJpbmdAV1RGQEBAWgogICAgICAgICA/cmVtb3ZlVVJMU2NoZW1lUmVnaXN0ZXJlZEFzQnlwYXNz
aW5nQ29udGVudFNlY3VyaXR5UG9saWN5QFNjaGVtZVJlZ2lzdHJ5QFdlYkNvcmVAQFNBWEFCVlN0
cmluZ0BXVEZAQEBaCi0gICAgICAgID9pY29uVVJMc0BEb2N1bWVudEBXZWJDb3JlQEBRQUVBQlY/
JFZlY3RvckBVSWNvblVSTEBXZWJDb3JlQEAkMEFAQFdURkBAWFoKKyAgICAgICAgP3Nob3J0Y3V0
SWNvblVSTHNARG9jdW1lbnRAV2ViQ29yZUBAUUFFQUJWPyRWZWN0b3JAVUljb25VUkxAV2ViQ29y
ZUBAJDBBQEBXVEZAQFhaCisgICAgICAgID9pY29uVVJMc0BEb2N1bWVudEBXZWJDb3JlQEBRQUVB
QlY/JFZlY3RvckBVSWNvblVSTEBXZWJDb3JlQEAkMEFAQFdURkBASEBaCiAgICAgICAgID9udW1i
ZXJPZlBhZ2VzQFByaW50Q29udGV4dEBXZWJDb3JlQEBTQUhQQVZGcmFtZUAyQEFCVkZsb2F0U2l6
ZUAyQEBaCiAgICAgICAgID9wYWdlUHJvcGVydHlAUHJpbnRDb250ZXh0QFdlYkNvcmVAQFNBP0FW
U3RyaW5nQFdURkBAUEFWRnJhbWVAMkBQQkRIQFoKICAgICAgICAgP3BhZ2VTaXplQW5kTWFyZ2lu
c0luUGl4ZWxzQFByaW50Q29udGV4dEBXZWJDb3JlQEBTQT9BVlN0cmluZ0BXVEZAQFBBVkZyYW1l
QDJASEhISEhISEBaCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L3dpbi9XZWJLaXQudmNwcm9q
L1dlYktpdEV4cG9ydHMuZGVmLmluIGIvU291cmNlL1dlYktpdC93aW4vV2ViS2l0LnZjcHJvai9X
ZWJLaXRFeHBvcnRzLmRlZi5pbgppbmRleCA5ZWVkZGVmMDFhMjRkOTMxODMzNTRmNWIzOGUzYTRi
MDg4M2UzNjk0Li5iYjA5N2Q4YmNiNDQ3YWFmYjE3OWVkYWQzNTk5NDAwMzJhMjU0MGZjIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L3dpbi9XZWJLaXQudmNwcm9qL1dlYktpdEV4cG9ydHMuZGVm
LmluCisrKyBiL1NvdXJjZS9XZWJLaXQvd2luL1dlYktpdC52Y3Byb2ovV2ViS2l0RXhwb3J0cy5k
ZWYuaW4KQEAgLTMyNSw3ICszMjUsOCBAQCBFWFBPUlRTCiAgICAgICAgID9zZXRBbGxvd3NSb3Vu
ZGluZ0hhY2tzQFRleHRSdW5AV2ViQ29yZUBAU0FYX05AWgogICAgICAgICA/cmVnaXN0ZXJVUkxT
Y2hlbWVBc0J5cGFzc2luZ0NvbnRlbnRTZWN1cml0eVBvbGljeUBTY2hlbWVSZWdpc3RyeUBXZWJD
b3JlQEBTQVhBQlZTdHJpbmdAV1RGQEBAWgogICAgICAgICA/cmVtb3ZlVVJMU2NoZW1lUmVnaXN0
ZXJlZEFzQnlwYXNzaW5nQ29udGVudFNlY3VyaXR5UG9saWN5QFNjaGVtZVJlZ2lzdHJ5QFdlYkNv
cmVAQFNBWEFCVlN0cmluZ0BXVEZAQEBaCi0gICAgICAgID9pY29uVVJMc0BEb2N1bWVudEBXZWJD
b3JlQEBRQUVBQlY/JFZlY3RvckBVSWNvblVSTEBXZWJDb3JlQEAkMEFAQFdURkBAWFoKKyAgICAg
ICAgP3Nob3J0Y3V0SWNvblVSTHNARG9jdW1lbnRAV2ViQ29yZUBAUUFFQUJWPyRWZWN0b3JAVUlj
b25VUkxAV2ViQ29yZUBAJDBBQEBXVEZAQFhaCisgICAgICAgID9pY29uVVJMc0BEb2N1bWVudEBX
ZWJDb3JlQEBRQUVBQlY/JFZlY3RvckBVSWNvblVSTEBXZWJDb3JlQEAkMEFAQFdURkBASEBaCiAg
ICAgICAgID9udW1iZXJPZlBhZ2VzQFByaW50Q29udGV4dEBXZWJDb3JlQEBTQUhQQVZGcmFtZUAy
QEFCVkZsb2F0U2l6ZUAyQEBaCiAgICAgICAgID9wYWdlUHJvcGVydHlAUHJpbnRDb250ZXh0QFdl
YkNvcmVAQFNBP0FWU3RyaW5nQFdURkBAUEFWRnJhbWVAMkBQQkRIQFoKICAgICAgICAgP3BhZ2VT
aXplQW5kTWFyZ2luc0luUGl4ZWxzQFByaW50Q29udGV4dEBXZWJDb3JlQEBTQT9BVlN0cmluZ0BX
VEZAQFBBVkZyYW1lQDJASEhISEhISEBaCmRpZmYgLS1naXQgYS9Tb3VyY2UvYXV0b3Rvb2xzL3N5
bWJvbHMuZmlsdGVyIGIvU291cmNlL2F1dG90b29scy9zeW1ib2xzLmZpbHRlcgppbmRleCA3Yzdl
MTc5M2I2OGVkMTA1NThjMTNlMGUwYWM1MGY1Njk4ZDdlMDI0Li4zOWJhZTkyYzBiMmQzNWE5NTM4
MDk4Y2I3MmM2NDRiOGIzNzg3ZGM2IDEwMDY0NAotLS0gYS9Tb3VyY2UvYXV0b3Rvb2xzL3N5bWJv
bHMuZmlsdGVyCisrKyBiL1NvdXJjZS9hdXRvdG9vbHMvc3ltYm9scy5maWx0ZXIKQEAgLTQxLDcg
KzQxLDggQEAgX1pON1dlYkNvcmU0dG9KU0VQTjNKU0M5RXhlY1N0YXRlRVBOU18xN0pTRE9NR2xv
YmFsT2JqZWN0RVBOU181UmFuZ2VFOwogX1pON1dlYkNvcmU1UmFuZ2U2Y3JlYXRlRU4zV1RGMTBQ
YXNzUmVmUHRySU5TXzhEb2N1bWVudEVFRU5TMl9JTlNfNE5vZGVFRUVpUzZfaTsKIF9aTjdXZWJD
b3JlNVJhbmdlRDFFdjsKIF9aTjdXZWJDb3JlOERvY3VtZW50MzZ1cGRhdGVMYXlvdXRJZ25vcmVQ
ZW5kaW5nU3R5bGVzaGVldHNFdjsKLV9aTjdXZWJDb3JlOERvY3VtZW50OGljb25VUkxzRXY7Citf
Wk43V2ViQ29yZThEb2N1bWVudDhpY29uVVJMc0VpOworX1pON1dlYkNvcmU4RG9jdW1lbnQxNnNo
b3J0Y3V0SWNvblVSTHNFdjsKIF9aTjdXZWJDb3JlOFNldHRpbmdzMTltaW5ET01UaW1lckludGVy
dmFsRXY7CiBfWk43V2ViQ29yZThTZXR0aW5nczIyc2V0TWluRE9NVGltZXJJbnRlcnZhbEVkOwog
X1pON1dlYkNvcmU5SFRNTE5hbWVzOGlucHV0VGFnRTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCA4YjcwYmJkODEwMzgyNTYw
OWViMGUyMmYwY2QxNzQ5OWE3ZWY5MGExLi4wOWE1MTY5M2VkNDI0MWQ0MWQwZjM4YmJkNGMzZmRk
N2VlMDhlNGMwIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0
VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTkgQEAKKzIwMTMtMDItMTMgIFJ1c2xhbiBBYmRp
a2VldiAgPGFydXNsYW5AY2hyb21pdW0ub3JnPgorCisgICAgICAgIDxsaW5rIHJlbD0iYXBwbGUt
dG91Y2gtaWNvbiI+IHRhZyBpcyBub3QgaG9ub3JlZCBvbiBDTk4uY29tLCB3b3JrZmxvd3kuY29t
IGV0YworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTA5
MDYxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRk
ZWQgdGVzdCBmb3IgYXBwbGUtdG91Y2gtaWNvbiBpbiBhbGxJY29uVVJMcygpLgorICAgICAgICBD
aGFuZ2VkIGljb25VUkxzKCkgdG8gc2hvcnRjdXRJY29uVVJMcygpLgorCisgICAgICAgICogZmFz
dC9kb20vaWNvbi11cmwtY2hhbmdlLmh0bWw6CisgICAgICAgICogZmFzdC9kb20vaWNvbi11cmwt
bGlzdC1hcHBsZS10b3VjaC1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZG9t
L2ljb24tdXJsLWxpc3QtYXBwbGUtdG91Y2guaHRtbDogQWRkZWQuCisgICAgICAgICogZmFzdC9k
b20vaWNvbi11cmwtbGlzdC5odG1sOgorICAgICAgICAqIGZhc3QvZG9tL2ljb24tdXJsLXByb3Bl
cnR5Lmh0bWw6CisKIDIwMTMtMDItMTMgIEFsYW4gQ3V0dGVyICA8YWxhbmN1dHRlckBjaHJvbWl1
bS5vcmc+CiAKICAgICAgICAgW0Nocm9taXVtXSBVbnJldmlld2VkIGdhcmRlbmluZwpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vaWNvbi11cmwtY2hhbmdlLmh0bWwgYi9MYXlvdXRU
ZXN0cy9mYXN0L2RvbS9pY29uLXVybC1jaGFuZ2UuaHRtbAppbmRleCA4MmQ1MzRlZWNkYTdjZDE0
YWI1NTk5MzFhMjJiMjc5OTJhNmZlNWU3Li45OTMyNzJlZGJjMmZhMmY2NjdhYzQ4OTllNjcwYzJj
NTA3MGVkZDFmIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9pY29uLXVybC1jaGFu
Z2UuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9pY29uLXVybC1jaGFuZ2UuaHRtbApA
QCAtNDUsNyArNDUsNyBAQCBmdW5jdGlvbiBydW5UZXN0cygpIHsKIAogICAgIC8vIGNoZWNrIHRo
YXQgdGhlIFVSTCBsaXN0IGluIHRoZSBkb2N1bWVudCBpcyBhcyB3ZSBleHBlY3QKICAgICB2YXIg
ZXhwZWN0ZWRVUkxzID0gImh0dHA6Ly90ZXN0LmNvbS9vbGRmYXZpY29uLmljbyI7Ci0gICAgdmFy
IGljb25VUkxzID0gd2luZG93LmludGVybmFscy5pY29uVVJMcyhkb2N1bWVudCk7CisgICAgdmFy
IGljb25VUkxzID0gd2luZG93LmludGVybmFscy5zaG9ydGN1dEljb25VUkxzKGRvY3VtZW50KTsK
ICAgICBpZiAoZXhwZWN0ZWRVUkxzID09IGljb25VUkxzWzBdKQogICAgICAgICB0ZXN0UGFzc2Vk
KCdVUkwgbGlzdCBtYXRjaGVzIGV4cGVjdGVkJyk7CiAgICAgZWxzZQpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvZmFzdC9kb20vaWNvbi11cmwtbGlzdC1hcHBsZS10b3VjaC1leHBlY3RlZC50eHQg
Yi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9pY29uLXVybC1saXN0LWFwcGxlLXRvdWNoLWV4cGVjdGVk
LnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi45OTNjNTU1ZjhhNWM0ZGQxY2Q1YWVhNDBkZjU4Yzk3NDUyY2Q4MWFi
Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vaWNvbi11cmwtbGlzdC1h
cHBsZS10b3VjaC1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwzIEBACitUZXN0cyB0aGF0IGFsbCBm
YXZpY29ucyBhbmQgdG91Y2ggaWNvbnMgKGlmIEVOQUJMRShUT1VDSF9JQ09OX0xPQURJTkcpKSBh
cmUgaW4gZG9jdW1lbnQuaWNvblVSTHMoKQorUEFTUyBVUkwgbGlzdCBtYXRjaGVzIGV4cGVjdGVk
CisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL2ljb24tdXJsLWxpc3QtYXBwbGUt
dG91Y2guaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL2ljb24tdXJsLWxpc3QtYXBwbGUtdG91
Y2guaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi4wMWI5OTRjOGI0YmRhYjkyY2VkZTFkNjkzZDkyNzdmYzZiNmNj
ZTc0Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vaWNvbi11cmwtbGlz
dC1hcHBsZS10b3VjaC5odG1sCkBAIC0wLDAgKzEsNDkgQEAKKzxodG1sPgorPGhlYWQ+Cis8dGl0
bGU+T3JpZ2luYWwgVGl0bGU8L3RpdGxlPgorPGxpbmsgcmVsPSJzaG9ydGN1dCBpY29uIiB0eXBl
PSJpbWFnZS94LWljb24iIGhyZWY9Imh0dHA6Ly90ZXN0LmNvbS9vbGRmYXZpY29uLmljbyIvPgor
PGxpbmsgcmVsPSJhcHBsZS10b3VjaC1pY29uIiB0eXBlPSJpbWFnZS9wbmciIGhyZWY9Imh0dHA6
Ly90ZXN0LmNvbS9pL3RvdWNoLnBuZyIvPgorPGxpbmsgcmVsPSJhcHBsZS10b3VjaC1pY29uLXBy
ZWNvbXBvc2VkIiB0eXBlPSJpbWFnZS9wbmciIGhyZWY9Imh0dHA6Ly90ZXN0LmNvbS9pL3RvdWNo
LXByZWNvbXBvc2VkLnBuZyIvPgorPHNjcmlwdCBzcmM9Ii4uL2pzL3Jlc291cmNlcy9qcy10ZXN0
LXByZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0PgorCitmdW5jdGlvbiBydW5UZXN0cygpIHsKKyAg
ICBpZiAod2luZG93LnRlc3RSdW5uZXIpCisgICAgICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgp
OworCisgICAgZGVidWcoJ1Rlc3RzIHRoYXQgYWxsIGZhdmljb25zIGFuZCB0b3VjaCBpY29ucyAo
aWYgRU5BQkxFKFRPVUNIX0lDT05fTE9BRElORykpIGFyZSBpbiBkb2N1bWVudC5pY29uVVJMcygp
Jyk7CisKKyAgICAvLyBGZXRjaCB0aGUgYWN0dWFsIGxpc3Qgb2YgaWNvbiBVUkxzLgorICAgIHZh
ciBzdXBwb3J0c1RvdWNoSWNvbnMgPSB3aW5kb3cuaW50ZXJuYWxzLmlzVG91Y2hJY29uc0xvYWRp
bmdTdXBwb3J0ZWQoKTsKKyAgICB2YXIgYWN0dWFsVVJMcyA9IHdpbmRvdy5pbnRlcm5hbHMuYWxs
SWNvblVSTHMoZG9jdW1lbnQpOworCisgICAgLy8gQ2hlY2sgdGhhdCB0aGUgVVJMIGxpc3QgaW4g
dGhlIGRvY3VtZW50IGlzIGFzIHdlIGV4cGVjdC4KKyAgICAvLyBOb3RlIHRoYXQgdGhlIGV4cGVj
dGVkIG9yZGVyIGlzIHJldmVyc2UgdG8gZW5zdXJlIHRoYXQgaWNvbnMgc2VlbiBsYXRlcgorICAg
IC8vIHRha2UgcHJlY2VkZW5jZSBhcyByZXF1aXJlZCBieSB0aGUgc3BlYy4KKyAgICB2YXIgZXhw
ZWN0ZWRVUkxzID0gc3VwcG9ydHNUb3VjaEljb25zID8gWworICAgICAgICAiaHR0cDovL3Rlc3Qu
Y29tL2kvdG91Y2gtcHJlY29tcG9zZWQucG5nIiwKKyAgICAgICAgImh0dHA6Ly90ZXN0LmNvbS9p
L3RvdWNoLnBuZyIsCisgICAgICAgICJodHRwOi8vdGVzdC5jb20vb2xkZmF2aWNvbi5pY28iLAor
ICAgIF0gOiBbCisgICAgICAgICJodHRwOi8vdGVzdC5jb20vb2xkZmF2aWNvbi5pY28iCisgICAg
XTsKKyAgICB2YXIgc3VjY2VzcyA9IGV4cGVjdGVkVVJMcy5sZW5ndGggPT0gYWN0dWFsVVJMcy5s
ZW5ndGg7CisgICAgZm9yICh2YXIgaSA9IDA7IHN1Y2Nlc3MgJiYgaSA8IGFjdHVhbFVSTHMubGVu
Z3RoOyBpKyspIHsKKyAgICAgICAgaWYgKGV4cGVjdGVkVVJMc1tpXSAhPSBhY3R1YWxVUkxzW2ld
KSB7CisgICAgICAgICAgICBkZWJ1ZygnbWlzbWF0Y2ggZXhwZWN0ZWQ9JyArIGV4cGVjdGVkVVJM
c1tpXSArCisgICAgICAgICAgICAgICAgICAgICcgYWN0dWFsPScgKyBhY3R1YWxVUkxzW2ldKTsK
KyAgICAgICAgICAgIHN1Y2Nlc3MgPSBmYWxzZTsKKyAgICAgICAgfQorICAgIH0KKyAgICBpZiAo
c3VjY2VzcykKKyAgICAgICAgdGVzdFBhc3NlZCgnVVJMIGxpc3QgbWF0Y2hlcyBleHBlY3RlZCcp
OworICAgIGVsc2UKKyAgICAgICAgdGVzdEZhaWxlZCgnVVJMIGxpc3QgZG9lcyBub3QgbWF0Y2gg
ZXhwZWN0ZWQnKTsKK30KKworPC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keSBvbmxvYWQ9J3J1blRl
c3RzKCk7Jz4KKzwvZGl2PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvZmFzdC9kb20vaWNvbi11cmwtbGlzdC5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vaWNv
bi11cmwtbGlzdC5odG1sCmluZGV4IGRkYTAwZTcyZWZmYmZlMWQyYjI5MTZhYzgyM2Q0Y2I4ZWU0
NmQ0NTQuLjZkM2RmZGE2YTVkZTQ5OWEwN2UxMjU5NzU3OGYzNDBlZGU4MzdmNWYgMTAwNjQ0Ci0t
LSBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL2ljb24tdXJsLWxpc3QuaHRtbAorKysgYi9MYXlvdXRU
ZXN0cy9mYXN0L2RvbS9pY29uLXVybC1saXN0Lmh0bWwKQEAgLTQ4LDcgKzQ4LDcgQEAgZnVuY3Rp
b24gcnVuVGVzdHMoKSB7CiAgICAgdmFyIGV4cGVjdGVkVVJMMCA9ICJodHRwOi8vdGVzdC5jb20v
YmFyZmF2aWNvbi5pY28iOwogICAgIHZhciBleHBlY3RlZFVSTDEgPSAiaHR0cDovL3Rlc3QuY29t
L2Zvb2Zhdmljb24uaWNvIjsKICAgICB2YXIgZXhwZWN0ZWRVUkwyID0gImh0dHA6Ly90ZXN0LmNv
bS9uZXdmYXZpY29uLmljbyI7Ci0gICAgdmFyIGljb25VUkxzID0gd2luZG93LmludGVybmFscy5p
Y29uVVJMcyhkb2N1bWVudCk7CisgICAgdmFyIGljb25VUkxzID0gd2luZG93LmludGVybmFscy5z
aG9ydGN1dEljb25VUkxzKGRvY3VtZW50KTsKICAgICBpZiAoZXhwZWN0ZWRVUkwwID09IGljb25V
UkxzWzBdICYmIGV4cGVjdGVkVVJMMSA9PSBpY29uVVJMc1sxXSAmJiBleHBlY3RlZFVSTDIgPT0g
aWNvblVSTHNbMl0pIAogICAgICAgICB0ZXN0UGFzc2VkKCdVUkwgbGlzdCBtYXRjaGVzIGV4cGVj
dGVkJyk7CiAgICAgZWxzZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vaWNvbi11
cmwtcHJvcGVydHkuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL2ljb24tdXJsLXByb3BlcnR5
Lmh0bWwKaW5kZXggOGE2YjljMjM4ODUwNmUwZTI4NDJkMzdlYzA3MTA4NTViZjRmYjlmNS4uMmQx
YzAxMjE1NzFhOTdiZjE1NDNkNDE2NTQ2Zjc2OGU3NTE2MWVkMyAxMDA2NDQKLS0tIGEvTGF5b3V0
VGVzdHMvZmFzdC9kb20vaWNvbi11cmwtcHJvcGVydHkuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9m
YXN0L2RvbS9pY29uLXVybC1wcm9wZXJ0eS5odG1sCkBAIC00Myw3ICs0Myw3IEBAIGZ1bmN0aW9u
IHJ1blRlc3RzKCkgewogCiAgICAgLy8gY2hlY2sgdGhhdCB0aGUgVVJMIGxpc3QgaW4gdGhlIGRv
Y3VtZW50IGlzIGFzIHdlIGV4cGVjdAogICAgIHZhciBleHBlY3RlZFVSTHMgPSAiaHR0cDovL3Rl
c3QuY29tL25ld2Zhdmljb24uaWNvIjsKLSAgICB2YXIgaWNvblVSTHMgPSB3aW5kb3cuaW50ZXJu
YWxzLmljb25VUkxzKGRvY3VtZW50KTsKKyAgICB2YXIgaWNvblVSTHMgPSB3aW5kb3cuaW50ZXJu
YWxzLnNob3J0Y3V0SWNvblVSTHMoZG9jdW1lbnQpOwogICAgIGlmIChleHBlY3RlZFVSTHMgPT0g
aWNvblVSTHNbMF0pCiAgICAgICAgIGRlYnVnT3V0cHV0KCdQQVNTIC0gVVJMIGxpc3QgbWF0Y2hl
cyBleHBlY3RlZCcpOwogICAgIGVsc2UKZGlmZiAtLWdpdCBhL0NoYW5nZUxvZyBiL0NoYW5nZUxv
ZwppbmRleCBlMzkxMGMzNzg5ODI2MmEyMjllZDU3Yzk1NjY5YTlhYWUxZTc5ZDdlLi5lMjk1MWNk
OWRmZDVlNmJkMzZmNDJiZjJkZWMwMDhjMWEwNjY1NTU2IDEwMDY0NAotLS0gYS9DaGFuZ2VMb2cK
KysrIGIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTIgQEAKKzIwMTMtMDItMTMgIFJ1c2xhbiBBYmRp
a2VldiAgPGFydXNsYW5AY2hyb21pdW0ub3JnPgorCisgICAgICAgIDxsaW5rIHJlbD0iYXBwbGUt
dG91Y2gtaWNvbiI+IHRhZyBpcyBub3QgaG9ub3JlZCBvbiBDTk4uY29tLCB3b3JrZmxvd3kuY29t
IGV0YworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTA5
MDYxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBT
b3VyY2UvYXV0b3Rvb2xzL3N5bWJvbHMuZmlsdGVyOgorCiAyMDEzLTAyLTEzICBNYXJ0aW4gUm9i
aW5zb24gIDxtcm9iaW5zb25AaWdhbGlhLmNvbT4KIAogICAgICAgICBUcnkgb25jZSBhZ2FpbiB0
byBmaXggdGhlIGJ1aWxkIGFmdGVyIHIxNDI3NTYK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>189218</attachid>
            <date>2013-02-19 18:08:39 -0800</date>
            <delta_ts>2013-02-22 14:48:11 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-109061-20130219180501.patch</filename>
            <type>text/plain</type>
            <size>18882</size>
            <attacher name="Ruslan Abdikeev">aruslan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQzNDIxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMWYxOGU0YTg2ODVlYTY5
ZTJlNmNlYzA4MTA1ZWIyNTFhODA5ODBkNC4uZTNlZGE4OGEyY2E1ZWFmNDc4NTMzYjdhNGVlYTg0
OTY5Nzc1N2IwYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM1IEBACisyMDEzLTAyLTE5ICBSdXNs
YW4gQWJkaWtlZXYgIDxhcnVzbGFuQGNocm9taXVtLm9yZz4KKworICAgICAgICA8bGluayByZWw9
ImFwcGxlLXRvdWNoLWljb24iPiB0YWcgaXMgbm90IGhvbm9yZWQgb24gQ05OLmNvbSwgd29ya2Zs
b3d5LmNvbSBldGMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTEwOTA2MQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgIFRlc3Q6IGZhc3QvZG9tL2ljb24tdXJsLWxpc3QtYXBwbGUtdG91Y2guaHRtbAorCisgICAg
ICAgIEFkZGVkIGljb25UeXBlcyBwYXJhbWV0ZXIgdG8gRG9jdW1lbnQ6Omljb25VUkxzKCkuCisg
ICAgICAgIEFkZGVkIERvY3VtZW50OjpzaG9ydGN1dEljb25VUkxzKCkgd2l0aCBvcmlnaW5hbCBz
ZW1hbnRpY3Mgb2YgaWNvblVSTHMoKS4KKyAgICAgICAgRml4ZWQgSWNvbkNvbnRyb2xsZXIuY3Bw
IHRvIHByb3ZpZGUgaWNvblR5cGVzIHRvIGljb25VUkxzKCkuCisKKyAgICAgICAgKiBXZWJDb3Jl
LmV4cC5pbjoKKyAgICAgICAgKiBkb20vRG9jdW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
RG9jdW1lbnQ6OnNob3J0Y3V0SWNvblVSTHMpOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAg
IChXZWJDb3JlOjpEb2N1bWVudDo6aWNvblVSTHMpOgorICAgICAgICAqIGRvbS9Eb2N1bWVudC5o
OgorICAgICAgICAoRG9jdW1lbnQpOgorICAgICAgICAqIGxvYWRlci9pY29uL0ljb25Db250cm9s
bGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Okljb25Db250cm9sbGVyOjppY29uVVJMKToKKyAg
ICAgICAgKFdlYkNvcmU6Okljb25Db250cm9sbGVyOjp1cmxzRm9yVHlwZXMpOgorICAgICAgICAq
IHRlc3RpbmcvSW50ZXJuYWxzLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkludGVybmFsczo6aWNv
blVSTHMpOgorICAgICAgICAoV2ViQ29yZTo6SW50ZXJuYWxzOjpzaG9ydGN1dEljb25VUkxzKToK
KyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoV2ViQ29yZTo6SW50ZXJuYWxzOjphbGxJY29u
VVJMcyk6CisgICAgICAgIChXZWJDb3JlOjpJbnRlcm5hbHM6OmlzVG91Y2hJY29uc0xvYWRpbmdT
dXBwb3J0ZWQpOgorICAgICAgICAqIHRlc3RpbmcvSW50ZXJuYWxzLmg6CisgICAgICAgICogdGVz
dGluZy9JbnRlcm5hbHMuaWRsOgorCiAyMDEzLTAyLTE5ICBEZWFuIEphY2tzb24gIDxkaW5vQGFw
cGxlLmNvbT4KIAogICAgICAgICBTbmFwc2hvdHRlZCBwbHVnaW4gbGFiZWwgc2hvdWxkIG5vdCBi
ZSBzZWxlY3RhYmxlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmV4cC5pbiBi
L1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZXhwLmluCmluZGV4IDhkYmEwYWE0MTBjODUyMTIyNDM3
YWRlNGYzNjlkZWJjNDhjNjAwOTIuLmQ0ZmQ5YTU4OTI2YzcxMTU2NzJkMDMyNTExYTg0MzcxMDlh
NmJkODMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZXhwLmluCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL1dlYkNvcmUuZXhwLmluCkBAIC05NzMsNyArOTczLDggQEAgX19aTjdXZWJD
b3JlOERvY3VtZW50MzZ1cGRhdGVMYXlvdXRJZ25vcmVQZW5kaW5nU3R5bGVzaGVldHNFdgogX19a
TjdXZWJDb3JlOERvY3VtZW50NGhlYWRFdgogX19aTjdXZWJDb3JlOEZvcm1EYXRhMjhyZW1vdmVH
ZW5lcmF0ZWRGaWxlc0lmTmVlZGVkRXYKIF9fWk43V2ViQ29yZThGb3JtRGF0YTZkZWNvZGVFUk4z
V1RGN0RlY29kZXJFCi1fX1pON1dlYkNvcmU4RG9jdW1lbnQ4aWNvblVSTHNFdgorX19aTjdXZWJD
b3JlOERvY3VtZW50OGljb25VUkxzRWkKK19fWk43V2ViQ29yZThEb2N1bWVudDE2c2hvcnRjdXRJ
Y29uVVJMc0V2CiBfX1pON1dlYkNvcmU4Rm9ybURhdGE2Y3JlYXRlRVBLdm0KIF9fWk43V2ViQ29y
ZThGb3JtRGF0YUQxRXYKIF9fWk43V2ViQ29yZThHcmFkaWVudDEyYWRkQ29sb3JTdG9wRWZSS05T
XzVDb2xvckUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCmluZGV4IDU1YjRjOTgyNGFmOGMxNzdhMWNi
ZTdhZmU3OTc2OTQxMDhjZWYyNmQuLmU3YWFhODA1YWNhNWE4NzI2NGJlNDZhODIyYzRiZjZkOWI2
YmFkNzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcApAQCAtNDQ1OSwxNCArNDQ1OSwxOSBAQCBQ
YXNzUmVmUHRyPFhQYXRoUmVzdWx0PiBEb2N1bWVudDo6ZXZhbHVhdGUoY29uc3QgU3RyaW5nJiBl
eHByZXNzaW9uLAogICAgIHJldHVybiBtX3hwYXRoRXZhbHVhdG9yLT5ldmFsdWF0ZShleHByZXNz
aW9uLCBjb250ZXh0Tm9kZSwgcmVzb2x2ZXIsIHR5cGUsIHJlc3VsdCwgZWMpOwogfQogCi1jb25z
dCBWZWN0b3I8SWNvblVSTD4mIERvY3VtZW50OjppY29uVVJMcygpCitjb25zdCBWZWN0b3I8SWNv
blVSTD4mIERvY3VtZW50OjpzaG9ydGN1dEljb25VUkxzKCkKK3sKKyAgICAvLyBJbmNsdWRlIGFu
eSBpY29ucyB3aGVyZSB0eXBlID0gbGluaywgcmVsID0gInNob3J0Y3V0IGljb24iLgorICAgIHJl
dHVybiBpY29uVVJMcyhGYXZpY29uKTsKK30KKworY29uc3QgVmVjdG9yPEljb25VUkw+JiBEb2N1
bWVudDo6aWNvblVSTHMoaW50IGljb25UeXBlcykKIHsKICAgICBtX2ljb25VUkxzLmNsZWFyKCk7
CiAKICAgICBpZiAoIWhlYWQoKSB8fCAhKGhlYWQoKS0+Y2hpbGRyZW4oKSkpCiAgICAgICAgIHJl
dHVybiBtX2ljb25VUkxzOwogCi0gICAgLy8gSW5jbHVkZSBhbnkgaWNvbnMgd2hlcmUgdHlwZSA9
IGxpbmssIHJlbCA9ICJzaG9ydGN1dCBpY29uIi4KICAgICBSZWZQdHI8SFRNTENvbGxlY3Rpb24+
IGNoaWxkcmVuID0gaGVhZCgpLT5jaGlsZHJlbigpOwogICAgIHVuc2lnbmVkIGludCBsZW5ndGgg
PSBjaGlsZHJlbi0+bGVuZ3RoKCk7CiAgICAgZm9yICh1bnNpZ25lZCBpbnQgaSA9IDA7IGkgPCBs
ZW5ndGg7ICsraSkgewpAQCAtNDQ3NCw3ICs0NDc5LDcgQEAgY29uc3QgVmVjdG9yPEljb25VUkw+
JiBEb2N1bWVudDo6aWNvblVSTHMoKQogICAgICAgICBpZiAoIWNoaWxkLT5oYXNUYWdOYW1lKGxp
bmtUYWcpKQogICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgIEhUTUxMaW5rRWxlbWVudCog
bGlua0VsZW1lbnQgPSBzdGF0aWNfY2FzdDxIVE1MTGlua0VsZW1lbnQqPihjaGlsZCk7Ci0gICAg
ICAgIGlmIChsaW5rRWxlbWVudC0+aWNvblR5cGUoKSAhPSBGYXZpY29uKQorICAgICAgICBpZiAo
IShsaW5rRWxlbWVudC0+aWNvblR5cGUoKSAmIGljb25UeXBlcykpCiAgICAgICAgICAgICBjb250
aW51ZTsKICAgICAgICAgaWYgKGxpbmtFbGVtZW50LT5ocmVmKCkuaXNFbXB0eSgpKQogICAgICAg
ICAgICAgY29udGludWU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQu
aCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oCmluZGV4IDEyNjQzOGQ3MGVmMDE2MWJj
MmFmZThmY2VhNzY4YTRiYzg3MDM3YWIuLjIzYmNhMjljZjNhYTI3NDJmNTUwYjJjYTUwZDk4YzE1
YjdjODc0YmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oCkBAIC05NDEsNyArOTQxLDggQEAgcHVibGlj
OgogICAgIGJvb2wgaGFzTm9kZXNXaXRoUGxhY2Vob2xkZXJTdHlsZSgpIGNvbnN0IHsgcmV0dXJu
IG1faGFzTm9kZXNXaXRoUGxhY2Vob2xkZXJTdHlsZTsgfQogICAgIHZvaWQgc2V0SGFzTm9kZXNX
aXRoUGxhY2Vob2xkZXJTdHlsZSgpIHsgbV9oYXNOb2Rlc1dpdGhQbGFjZWhvbGRlclN0eWxlID0g
dHJ1ZTsgfQogCi0gICAgY29uc3QgVmVjdG9yPEljb25VUkw+JiBpY29uVVJMcygpOworICAgIGNv
bnN0IFZlY3RvcjxJY29uVVJMPiYgc2hvcnRjdXRJY29uVVJMcygpOworICAgIGNvbnN0IFZlY3Rv
cjxJY29uVVJMPiYgaWNvblVSTHMoaW50IGljb25UeXBlcyk7CiAgICAgdm9pZCBhZGRJY29uVVJM
KGNvbnN0IFN0cmluZyYgdXJsLCBjb25zdCBTdHJpbmcmIG1pbWVUeXBlLCBjb25zdCBTdHJpbmcm
IHNpemUsIEljb25UeXBlKTsKIAogICAgIHZvaWQgc2V0VXNlU2VjdXJlS2V5Ym9hcmRFbnRyeVdo
ZW5BY3RpdmUoYm9vbCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvaWNvbi9J
Y29uQ29udHJvbGxlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvaWNvbi9JY29uQ29udHJv
bGxlci5jcHAKaW5kZXggNzRmYWE5NTljYWJlMzQ0ODFhMGY1NzlmN2U1MjQwODIyZTAxMzgwNC4u
M2FkMTU5Y2YwNjk4Zjk4MDdjM2U5MWYzOGZhZTdjNWQyYzBlZGU1MyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvbG9hZGVyL2ljb24vSWNvbkNvbnRyb2xsZXIuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2xvYWRlci9pY29uL0ljb25Db250cm9sbGVyLmNwcApAQCAtNjgsMTMgKzY4LDExIEBA
IEtVUkwgSWNvbkNvbnRyb2xsZXI6OnVybCgpCiBJY29uVVJMIEljb25Db250cm9sbGVyOjppY29u
VVJMKEljb25UeXBlIGljb25UeXBlKSBjb25zdAogewogICAgIEljb25VUkwgcmVzdWx0OwotICAg
IGNvbnN0IFZlY3RvcjxJY29uVVJMPiYgaWNvblVSTHMgPSBtX2ZyYW1lLT5kb2N1bWVudCgpLT5p
Y29uVVJMcygpOworICAgIGNvbnN0IFZlY3RvcjxJY29uVVJMPiYgaWNvblVSTHMgPSBtX2ZyYW1l
LT5kb2N1bWVudCgpLT5pY29uVVJMcyhpY29uVHlwZSk7CiAgICAgVmVjdG9yPEljb25VUkw+Ojpj
b25zdF9pdGVyYXRvciBpdGVyKGljb25VUkxzLmJlZ2luKCkpOwogICAgIGZvciAoOyBpdGVyICE9
IGljb25VUkxzLmVuZCgpOyArK2l0ZXIpIHsKLSAgICAgICAgaWYgKGl0ZXItPm1faWNvblR5cGUg
PT0gaWNvblR5cGUpIHsKLSAgICAgICAgICAgIGlmIChyZXN1bHQubV9pY29uVVJMLmlzRW1wdHko
KSB8fCAhaXRlci0+bV9taW1lVHlwZS5pc0VtcHR5KCkpCi0gICAgICAgICAgICAgICAgcmVzdWx0
ID0gKml0ZXI7Ci0gICAgICAgIH0KKyAgICAgICAgaWYgKHJlc3VsdC5tX2ljb25VUkwuaXNFbXB0
eSgpIHx8ICFpdGVyLT5tX21pbWVUeXBlLmlzRW1wdHkoKSkKKyAgICAgICAgICAgIHJlc3VsdCA9
ICppdGVyOwogICAgIH0KIAogICAgIHJldHVybiByZXN1bHQ7CkBAIC0xMDUsMTEgKzEwMyw4IEBA
IEljb25VUkxzIEljb25Db250cm9sbGVyOjp1cmxzRm9yVHlwZXMoaW50IGljb25UeXBlcykKICNl
bmRpZgogCiAgICAgLy8gRmluYWxseSwgYXBwZW5kIGFsbCByZW1haW5pbmcgaWNvbnMgb2YgdGhp
cyB0eXBlLgotICAgIGNvbnN0IFZlY3RvcjxJY29uVVJMPiYgYWxsSWNvblVSTHMgPSBtX2ZyYW1l
LT5kb2N1bWVudCgpLT5pY29uVVJMcygpOworICAgIGNvbnN0IFZlY3RvcjxJY29uVVJMPiYgYWxs
SWNvblVSTHMgPSBtX2ZyYW1lLT5kb2N1bWVudCgpLT5pY29uVVJMcyhpY29uVHlwZXMpOwogICAg
IGZvciAoVmVjdG9yPEljb25VUkw+Ojpjb25zdF9pdGVyYXRvciBpdGVyID0gYWxsSWNvblVSTHMu
YmVnaW4oKTsgaXRlciAhPSBhbGxJY29uVVJMcy5lbmQoKTsgKytpdGVyKSB7Ci0gICAgICAgIGlm
ICghKGl0ZXItPm1faWNvblR5cGUgJiBpY29uVHlwZXMpKQotICAgICAgICAgICAgY29udGludWU7
Ci0KICAgICAgICAgaW50IGk7CiAgICAgICAgIGludCBpY29uQ291bnQgPSBpY29uVVJMcy5zaXpl
KCk7CiAgICAgICAgIGZvciAoaSA9IDA7IGkgPCBpY29uQ291bnQ7ICsraSkgewpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuY3BwIGIvU291cmNlL1dlYkNvcmUv
dGVzdGluZy9JbnRlcm5hbHMuY3BwCmluZGV4IDM4MzQ0MTA5MTYzMDEyOTM3YzlmNTU1YzBlNTcy
ODQ5MzhmM2ZmYTcuLmVkOGE0MTkyYjA2MjQwM2MwOTFiZjA3YmQyZjFkNTRhNDUyMjdhMjYgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5jcHAKQEAgLTE3NDIsOSArMTc0Miw5IEBAIGlu
dCBJbnRlcm5hbHM6OnBhZ2VOdW1iZXIoRWxlbWVudCogZWxlbWVudCwgZmxvYXQgcGFnZVdpZHRo
LCBmbG9hdCBwYWdlSGVpZ2h0KQogICAgIHJldHVybiBQcmludENvbnRleHQ6OnBhZ2VOdW1iZXJG
b3JFbGVtZW50KGVsZW1lbnQsIEZsb2F0U2l6ZShwYWdlV2lkdGgsIHBhZ2VIZWlnaHQpKTsKIH0K
IAotVmVjdG9yPFN0cmluZz4gSW50ZXJuYWxzOjppY29uVVJMcyhEb2N1bWVudCogZG9jdW1lbnQp
IGNvbnN0CitWZWN0b3I8U3RyaW5nPiBJbnRlcm5hbHM6Omljb25VUkxzKERvY3VtZW50KiBkb2N1
bWVudCwgaW50IGljb25UeXBlcykgY29uc3QKIHsKLSAgICBWZWN0b3I8SWNvblVSTD4gaWNvblVS
THMgPSBkb2N1bWVudC0+aWNvblVSTHMoKTsKKyAgICBWZWN0b3I8SWNvblVSTD4gaWNvblVSTHMg
PSBkb2N1bWVudC0+aWNvblVSTHMoaWNvblR5cGVzKTsKICAgICBWZWN0b3I8U3RyaW5nPiBhcnJh
eTsKIAogICAgIFZlY3RvcjxJY29uVVJMPjo6Y29uc3RfaXRlcmF0b3IgaXRlcihpY29uVVJMcy5i
ZWdpbigpKTsKQEAgLTE3NTQsNiArMTc1NCwyNSBAQCBWZWN0b3I8U3RyaW5nPiBJbnRlcm5hbHM6
Omljb25VUkxzKERvY3VtZW50KiBkb2N1bWVudCkgY29uc3QKICAgICByZXR1cm4gYXJyYXk7CiB9
CiAKK1ZlY3RvcjxTdHJpbmc+IEludGVybmFsczo6c2hvcnRjdXRJY29uVVJMcyhEb2N1bWVudCog
ZG9jdW1lbnQpIGNvbnN0Cit7CisgICAgcmV0dXJuIGljb25VUkxzKGRvY3VtZW50LCBGYXZpY29u
KTsKK30KKworVmVjdG9yPFN0cmluZz4gSW50ZXJuYWxzOjphbGxJY29uVVJMcyhEb2N1bWVudCog
ZG9jdW1lbnQpIGNvbnN0Cit7CisgICAgcmV0dXJuIGljb25VUkxzKGRvY3VtZW50LCBGYXZpY29u
IHwgVG91Y2hJY29uIHwgVG91Y2hQcmVjb21wb3NlZEljb24pOworfQorCitib29sIEludGVybmFs
czo6aXNUb3VjaEljb25zTG9hZGluZ1N1cHBvcnRlZCgpIGNvbnN0Cit7CisjaWYgRU5BQkxFKFRP
VUNIX0lDT05fTE9BRElORykKKyAgICByZXR1cm4gdHJ1ZTsKKyNlbHNlCisgICAgcmV0dXJuIGZh
bHNlOworI2VuZGlmCit9CisKIGludCBJbnRlcm5hbHM6Om51bWJlck9mUGFnZXMoZmxvYXQgcGFn
ZVdpZHRoLCBmbG9hdCBwYWdlSGVpZ2h0KQogewogICAgIGlmICghZnJhbWUoKSkKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmggYi9Tb3VyY2UvV2ViQ29yZS90
ZXN0aW5nL0ludGVybmFscy5oCmluZGV4IDNjYWRhMTljMzNiYzY4YTMxODk4MTk0ZDI4ZmM4YTkz
NTg5OTg3NzkuLjIwOTEzODA4MzI0ZWI3YWM3ZTVmOGVlNTZjNmYxODRkMzQwMDViMDAgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaApAQCAtMjQ4LDcgKzI0OCw5IEBAIHB1YmxpYzoKICAg
ICBTdHJpbmcgY291bnRlclZhbHVlKEVsZW1lbnQqKTsKIAogICAgIGludCBwYWdlTnVtYmVyKEVs
ZW1lbnQqLCBmbG9hdCBwYWdlV2lkdGggPSA4MDAsIGZsb2F0IHBhZ2VIZWlnaHQgPSA2MDApOwot
ICAgIFZlY3RvcjxTdHJpbmc+IGljb25VUkxzKERvY3VtZW50KikgY29uc3Q7CisgICAgVmVjdG9y
PFN0cmluZz4gc2hvcnRjdXRJY29uVVJMcyhEb2N1bWVudCopIGNvbnN0OworICAgIFZlY3RvcjxT
dHJpbmc+IGFsbEljb25VUkxzKERvY3VtZW50KikgY29uc3Q7CisgICAgYm9vbCBpc1RvdWNoSWNv
bnNMb2FkaW5nU3VwcG9ydGVkKCkgY29uc3Q7CiAKICAgICBpbnQgbnVtYmVyT2ZQYWdlcyhmbG9h
dCBwYWdlV2lkdGhJblBpeGVscyA9IDgwMCwgZmxvYXQgcGFnZUhlaWdodEluUGl4ZWxzID0gNjAw
KTsKICAgICBTdHJpbmcgcGFnZVByb3BlcnR5KFN0cmluZywgaW50LCBFeGNlcHRpb25Db2RlJiA9
IEFTU0VSVF9OT19FWENFUFRJT04pIGNvbnN0OwpAQCAtMjkzLDYgKzI5NSw3IEBAIHByaXZhdGU6
CiAgICAgZXhwbGljaXQgSW50ZXJuYWxzKERvY3VtZW50Kik7CiAgICAgRG9jdW1lbnQqIGNvbnRl
eHREb2N1bWVudCgpIGNvbnN0OwogICAgIEZyYW1lKiBmcmFtZSgpIGNvbnN0OworICAgIFZlY3Rv
cjxTdHJpbmc+IGljb25VUkxzKERvY3VtZW50KiwgaW50IGljb25UeXBlcykgY29uc3Q7CiAKICAg
ICBEb2N1bWVudE1hcmtlciogbWFya2VyQXQoTm9kZSosIGNvbnN0IFN0cmluZyYgbWFya2VyVHlw
ZSwgdW5zaWduZWQgaW5kZXgsIEV4Y2VwdGlvbkNvZGUmKTsKICNpZiBFTkFCTEUoSU5TUEVDVE9S
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaWRsIGIvU291
cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaWRsCmluZGV4IDg1ZWZkOTQ1YmQ5NTc3Nzlh
ZWNmNDJkMTM5OTBjMDQ4NDIxODM5NzQuLjBkYTUyZWU4YmE1ZDk3MWUyMzM0NGVmZGQ1MjlkOWQ2
MGUyNTQ2Y2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmlk
bAorKysgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5pZGwKQEAgLTIxNSw3ICsy
MTUsOSBAQAogCiAgICAgRE9NU3RyaW5nIGNvdW50ZXJWYWx1ZShpbiBFbGVtZW50IGVsZW1lbnQp
OwogICAgIGxvbmcgcGFnZU51bWJlcihpbiBFbGVtZW50IGVsZW1lbnQsIGluIFtPcHRpb25hbF0g
ZmxvYXQgcGFnZVdpZHRoLCBpbiBbT3B0aW9uYWxdIGZsb2F0IHBhZ2VIZWlnaHQpOwotICAgIERP
TVN0cmluZ1tdIGljb25VUkxzKGluIERvY3VtZW50IGRvY3VtZW50KTsKKyAgICBET01TdHJpbmdb
XSBzaG9ydGN1dEljb25VUkxzKGluIERvY3VtZW50IGRvY3VtZW50KTsKKyAgICBET01TdHJpbmdb
XSBhbGxJY29uVVJMcyhpbiBEb2N1bWVudCBkb2N1bWVudCk7CisgICAgYm9vbGVhbiBpc1RvdWNo
SWNvbnNMb2FkaW5nU3VwcG9ydGVkKCk7CiAgICAgbG9uZyBudW1iZXJPZlBhZ2VzKGluIFtPcHRp
b25hbF0gZG91YmxlIHBhZ2VXaWR0aEluUGl4ZWxzLCBpbiBbT3B0aW9uYWxdIGRvdWJsZSBwYWdl
SGVpZ2h0SW5QaXhlbHMpOwogICAgIERPTVN0cmluZyBwYWdlUHJvcGVydHkoaW4gRE9NU3RyaW5n
IHByb3BlcnR5TmFtZSwgaW4gbG9uZyBwYWdlTnVtYmVyKSByYWlzZXMgKERPTUV4Y2VwdGlvbik7
CiAgICAgRE9NU3RyaW5nIHBhZ2VTaXplQW5kTWFyZ2luc0luUGl4ZWxzKGluIGxvbmcgcGFnZUlu
ZGV4LCBpbiBsb25nIHdpZHRoLCBpbiBsb25nIGhlaWdodCwgaW4gbG9uZyBtYXJnaW5Ub3AsIGlu
IGxvbmcgbWFyZ2luUmlnaHQsIGluIGxvbmcgbWFyZ2luQm90dG9tLCBpbiBsb25nIG1hcmdpbkxl
ZnQpIHJhaXNlcyAoRE9NRXhjZXB0aW9uKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2Vi
S2l0LnZjeHByb2ovV2ViS2l0RXhwb3J0R2VuZXJhdG9yL1dlYktpdEV4cG9ydHMuZGVmLmluIGIv
U291cmNlL1dlYktpdC9XZWJLaXQudmN4cHJvai9XZWJLaXRFeHBvcnRHZW5lcmF0b3IvV2ViS2l0
RXhwb3J0cy5kZWYuaW4KaW5kZXggMjBhN2NhMjgwODdhNDU4ZjY4OTc0ZjFmMDk0NDdkMzQ1NWQy
NjkxZi4uZGU4YjJhM2MyNmQ4Yjk1ZTkwYzlkMjNkYWRmN2NkNGRhNDlhYTA2YSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9XZWJLaXQudmN4cHJvai9XZWJLaXRFeHBvcnRHZW5lcmF0b3IvV2Vi
S2l0RXhwb3J0cy5kZWYuaW4KKysrIGIvU291cmNlL1dlYktpdC9XZWJLaXQudmN4cHJvai9XZWJL
aXRFeHBvcnRHZW5lcmF0b3IvV2ViS2l0RXhwb3J0cy5kZWYuaW4KQEAgLTMyNSw3ICszMjUsOCBA
QCBFWFBPUlRTCiAgICAgICAgID9zZXRBbGxvd3NSb3VuZGluZ0hhY2tzQFRleHRSdW5AV2ViQ29y
ZUBAU0FYX05AWgogICAgICAgICA/cmVnaXN0ZXJVUkxTY2hlbWVBc0J5cGFzc2luZ0NvbnRlbnRT
ZWN1cml0eVBvbGljeUBTY2hlbWVSZWdpc3RyeUBXZWJDb3JlQEBTQVhBQlZTdHJpbmdAV1RGQEBA
WgogICAgICAgICA/cmVtb3ZlVVJMU2NoZW1lUmVnaXN0ZXJlZEFzQnlwYXNzaW5nQ29udGVudFNl
Y3VyaXR5UG9saWN5QFNjaGVtZVJlZ2lzdHJ5QFdlYkNvcmVAQFNBWEFCVlN0cmluZ0BXVEZAQEBa
Ci0gICAgICAgID9pY29uVVJMc0BEb2N1bWVudEBXZWJDb3JlQEBRQUVBQlY/JFZlY3RvckBVSWNv
blVSTEBXZWJDb3JlQEAkMEFAQFdURkBAWFoKKyAgICAgICAgP3Nob3J0Y3V0SWNvblVSTHNARG9j
dW1lbnRAV2ViQ29yZUBAUUFFQUJWPyRWZWN0b3JAVUljb25VUkxAV2ViQ29yZUBAJDBBQEBXVEZA
QFhaCisgICAgICAgID9pY29uVVJMc0BEb2N1bWVudEBXZWJDb3JlQEBRQUVBQlY/JFZlY3RvckBV
SWNvblVSTEBXZWJDb3JlQEAkMEFAQFdURkBASEBaCiAgICAgICAgID9udW1iZXJPZlBhZ2VzQFBy
aW50Q29udGV4dEBXZWJDb3JlQEBTQUhQQVZGcmFtZUAyQEFCVkZsb2F0U2l6ZUAyQEBaCiAgICAg
ICAgID9wYWdlUHJvcGVydHlAUHJpbnRDb250ZXh0QFdlYkNvcmVAQFNBP0FWU3RyaW5nQFdURkBA
UEFWRnJhbWVAMkBQQkRIQFoKICAgICAgICAgP3BhZ2VTaXplQW5kTWFyZ2luc0luUGl4ZWxzQFBy
aW50Q29udGV4dEBXZWJDb3JlQEBTQT9BVlN0cmluZ0BXVEZAQFBBVkZyYW1lQDJASEhISEhISEBa
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L3dpbi9XZWJLaXQudmNwcm9qL1dlYktpdEV4cG9y
dHMuZGVmLmluIGIvU291cmNlL1dlYktpdC93aW4vV2ViS2l0LnZjcHJvai9XZWJLaXRFeHBvcnRz
LmRlZi5pbgppbmRleCBkZWJiZmExM2Q2NDQ2OTFjMTY0NmZlOWZhMjE0NGZjZDMzMjU0NDU5Li41
YWVmM2IxMGE4NTNlMDA1OTM4OWNiNWQwY2VkY2QzNmExYTBhOTA1IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L3dpbi9XZWJLaXQudmNwcm9qL1dlYktpdEV4cG9ydHMuZGVmLmluCisrKyBiL1Nv
dXJjZS9XZWJLaXQvd2luL1dlYktpdC52Y3Byb2ovV2ViS2l0RXhwb3J0cy5kZWYuaW4KQEAgLTMy
Niw3ICszMjYsOCBAQCBFWFBPUlRTCiAgICAgICAgID9zZXRBbGxvd3NSb3VuZGluZ0hhY2tzQFRl
eHRSdW5AV2ViQ29yZUBAU0FYX05AWgogICAgICAgICA/cmVnaXN0ZXJVUkxTY2hlbWVBc0J5cGFz
c2luZ0NvbnRlbnRTZWN1cml0eVBvbGljeUBTY2hlbWVSZWdpc3RyeUBXZWJDb3JlQEBTQVhBQlZT
dHJpbmdAV1RGQEBAWgogICAgICAgICA/cmVtb3ZlVVJMU2NoZW1lUmVnaXN0ZXJlZEFzQnlwYXNz
aW5nQ29udGVudFNlY3VyaXR5UG9saWN5QFNjaGVtZVJlZ2lzdHJ5QFdlYkNvcmVAQFNBWEFCVlN0
cmluZ0BXVEZAQEBaCi0gICAgICAgID9pY29uVVJMc0BEb2N1bWVudEBXZWJDb3JlQEBRQUVBQlY/
JFZlY3RvckBVSWNvblVSTEBXZWJDb3JlQEAkMEFAQFdURkBAWFoKKyAgICAgICAgP3Nob3J0Y3V0
SWNvblVSTHNARG9jdW1lbnRAV2ViQ29yZUBAUUFFQUJWPyRWZWN0b3JAVUljb25VUkxAV2ViQ29y
ZUBAJDBBQEBXVEZAQFhaCisgICAgICAgID9pY29uVVJMc0BEb2N1bWVudEBXZWJDb3JlQEBRQUVB
QlY/JFZlY3RvckBVSWNvblVSTEBXZWJDb3JlQEAkMEFAQFdURkBASEBaCiAgICAgICAgID9udW1i
ZXJPZlBhZ2VzQFByaW50Q29udGV4dEBXZWJDb3JlQEBTQUhQQVZGcmFtZUAyQEFCVkZsb2F0U2l6
ZUAyQEBaCiAgICAgICAgID9wYWdlUHJvcGVydHlAUHJpbnRDb250ZXh0QFdlYkNvcmVAQFNBP0FW
U3RyaW5nQFdURkBAUEFWRnJhbWVAMkBQQkRIQFoKICAgICAgICAgP3BhZ2VTaXplQW5kTWFyZ2lu
c0luUGl4ZWxzQFByaW50Q29udGV4dEBXZWJDb3JlQEBTQT9BVlN0cmluZ0BXVEZAQFBBVkZyYW1l
QDJASEhISEhISEBaCmRpZmYgLS1naXQgYS9Tb3VyY2UvYXV0b3Rvb2xzL3N5bWJvbHMuZmlsdGVy
IGIvU291cmNlL2F1dG90b29scy9zeW1ib2xzLmZpbHRlcgppbmRleCAxZWE3ZTBkNzFkNjU2YTgx
M2E0YzMxYTdiZGE5YjE3NDk2ZDRiYjYyLi4zYjZkNDllYjE0MDMzZTY4YmU1ODYzZjFjMWZkMDUy
ODMyMWYzNzJmIDEwMDY0NAotLS0gYS9Tb3VyY2UvYXV0b3Rvb2xzL3N5bWJvbHMuZmlsdGVyCisr
KyBiL1NvdXJjZS9hdXRvdG9vbHMvc3ltYm9scy5maWx0ZXIKQEAgLTQxLDcgKzQxLDggQEAgX1pO
N1dlYkNvcmU0dG9KU0VQTjNKU0M5RXhlY1N0YXRlRVBOU18xN0pTRE9NR2xvYmFsT2JqZWN0RVBO
U181UmFuZ2VFOwogX1pON1dlYkNvcmU1UmFuZ2U2Y3JlYXRlRU4zV1RGMTBQYXNzUmVmUHRySU5T
XzhEb2N1bWVudEVFRU5TMl9JTlNfNE5vZGVFRUVpUzZfaTsKIF9aTjdXZWJDb3JlNVJhbmdlRDFF
djsKIF9aTjdXZWJDb3JlOERvY3VtZW50MzZ1cGRhdGVMYXlvdXRJZ25vcmVQZW5kaW5nU3R5bGVz
aGVldHNFdjsKLV9aTjdXZWJDb3JlOERvY3VtZW50OGljb25VUkxzRXY7CitfWk43V2ViQ29yZThE
b2N1bWVudDhpY29uVVJMc0VpOworX1pON1dlYkNvcmU4RG9jdW1lbnQxNnNob3J0Y3V0SWNvblVS
THNFdjsKIF9aTjdXZWJDb3JlOFNldHRpbmdzMTltaW5ET01UaW1lckludGVydmFsRXY7CiBfWk43
V2ViQ29yZThTZXR0aW5nczIyc2V0TWluRE9NVGltZXJJbnRlcnZhbEVkOwogX1pON1dlYkNvcmU5
SFRNTE5hbWVzOGlucHV0VGFnRTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBi
L0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCA1MWU5M2VmZDgzYWE2NzNlMzUzNWZiMGMxMDlj
OGVkNmY2ZTM2OGI5Li42ZDhhOGQxOGYxMmZjMTJlY2Q3OTJmNmMwZjM4MTRlMzFhYmM2NThiIDEw
MDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdl
TG9nCkBAIC0xLDMgKzEsMTkgQEAKKzIwMTMtMDItMTkgIFJ1c2xhbiBBYmRpa2VldiAgPGFydXNs
YW5AY2hyb21pdW0ub3JnPgorCisgICAgICAgIDxsaW5rIHJlbD0iYXBwbGUtdG91Y2gtaWNvbiI+
IHRhZyBpcyBub3QgaG9ub3JlZCBvbiBDTk4uY29tLCB3b3JrZmxvd3kuY29tIGV0YworICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTA5MDYxCisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkZWQgdGVzdCBmb3Ig
YXBwbGUtdG91Y2gtaWNvbiBpbiBhbGxJY29uVVJMcygpLgorICAgICAgICBDaGFuZ2VkIGljb25V
UkxzKCkgdG8gc2hvcnRjdXRJY29uVVJMcygpLgorCisgICAgICAgICogZmFzdC9kb20vaWNvbi11
cmwtY2hhbmdlLmh0bWw6CisgICAgICAgICogZmFzdC9kb20vaWNvbi11cmwtbGlzdC1hcHBsZS10
b3VjaC1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZG9tL2ljb24tdXJsLWxp
c3QtYXBwbGUtdG91Y2guaHRtbDogQWRkZWQuCisgICAgICAgICogZmFzdC9kb20vaWNvbi11cmwt
bGlzdC5odG1sOgorICAgICAgICAqIGZhc3QvZG9tL2ljb24tdXJsLXByb3BlcnR5Lmh0bWw6CisK
IDIwMTMtMDItMTkgIEhhbnMgTXVsbGVyICA8aG11bGxlckBhZG9iZS5jb20+CiAKICAgICAgICAg
W0NTUyBFeGNsdXNpb25zXSBFbmFibGUgc2hhcGUtaW5zaWRlIHN1cHBvcnQgZm9yIGVsbGlwc2Vz
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9pY29uLXVybC1jaGFuZ2UuaHRtbCBi
L0xheW91dFRlc3RzL2Zhc3QvZG9tL2ljb24tdXJsLWNoYW5nZS5odG1sCmluZGV4IDgyZDUzNGVl
Y2RhN2NkMTRhYjU1OTkzMWEyMmIyNzk5MmE2ZmU1ZTcuLjk5MzI3MmVkYmMyZmEyZjY2N2FjNDg5
OWU2NzBjMmM1MDcwZWRkMWYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL2ljb24t
dXJsLWNoYW5nZS5odG1sCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL2ljb24tdXJsLWNoYW5n
ZS5odG1sCkBAIC00NSw3ICs0NSw3IEBAIGZ1bmN0aW9uIHJ1blRlc3RzKCkgewogCiAgICAgLy8g
Y2hlY2sgdGhhdCB0aGUgVVJMIGxpc3QgaW4gdGhlIGRvY3VtZW50IGlzIGFzIHdlIGV4cGVjdAog
ICAgIHZhciBleHBlY3RlZFVSTHMgPSAiaHR0cDovL3Rlc3QuY29tL29sZGZhdmljb24uaWNvIjsK
LSAgICB2YXIgaWNvblVSTHMgPSB3aW5kb3cuaW50ZXJuYWxzLmljb25VUkxzKGRvY3VtZW50KTsK
KyAgICB2YXIgaWNvblVSTHMgPSB3aW5kb3cuaW50ZXJuYWxzLnNob3J0Y3V0SWNvblVSTHMoZG9j
dW1lbnQpOwogICAgIGlmIChleHBlY3RlZFVSTHMgPT0gaWNvblVSTHNbMF0pCiAgICAgICAgIHRl
c3RQYXNzZWQoJ1VSTCBsaXN0IG1hdGNoZXMgZXhwZWN0ZWQnKTsKICAgICBlbHNlCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9pY29uLXVybC1saXN0LWFwcGxlLXRvdWNoLWV4cGVj
dGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL2ljb24tdXJsLWxpc3QtYXBwbGUtdG91Y2gt
ZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjk5M2M1NTVmOGE1YzRkZDFjZDVhZWE0MGRmNThjOTc0
NTJjZDgxYWIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9pY29uLXVy
bC1saXN0LWFwcGxlLXRvdWNoLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDMgQEAKK1Rlc3RzIHRo
YXQgYWxsIGZhdmljb25zIGFuZCB0b3VjaCBpY29ucyAoaWYgRU5BQkxFKFRPVUNIX0lDT05fTE9B
RElORykpIGFyZSBpbiBkb2N1bWVudC5pY29uVVJMcygpCitQQVNTIFVSTCBsaXN0IG1hdGNoZXMg
ZXhwZWN0ZWQKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vaWNvbi11cmwtbGlz
dC1hcHBsZS10b3VjaC5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vaWNvbi11cmwtbGlzdC1h
cHBsZS10b3VjaC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjAxYjk5NGM4YjRiZGFiOTJjZWRlMWQ2OTNkOTI3
N2ZjNmI2Y2NlNzQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9pY29u
LXVybC1saXN0LWFwcGxlLXRvdWNoLmh0bWwKQEAgLTAsMCArMSw0OSBAQAorPGh0bWw+Cis8aGVh
ZD4KKzx0aXRsZT5PcmlnaW5hbCBUaXRsZTwvdGl0bGU+Cis8bGluayByZWw9InNob3J0Y3V0IGlj
b24iIHR5cGU9ImltYWdlL3gtaWNvbiIgaHJlZj0iaHR0cDovL3Rlc3QuY29tL29sZGZhdmljb24u
aWNvIi8+Cis8bGluayByZWw9ImFwcGxlLXRvdWNoLWljb24iIHR5cGU9ImltYWdlL3BuZyIgaHJl
Zj0iaHR0cDovL3Rlc3QuY29tL2kvdG91Y2gucG5nIi8+Cis8bGluayByZWw9ImFwcGxlLXRvdWNo
LWljb24tcHJlY29tcG9zZWQiIHR5cGU9ImltYWdlL3BuZyIgaHJlZj0iaHR0cDovL3Rlc3QuY29t
L2kvdG91Y2gtcHJlY29tcG9zZWQucG5nIi8+Cis8c2NyaXB0IHNyYz0iLi4vanMvcmVzb3VyY2Vz
L2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQ+CisKK2Z1bmN0aW9uIHJ1blRlc3Rz
KCkgeworICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikKKyAgICAgICAgdGVzdFJ1bm5lci5kdW1w
QXNUZXh0KCk7CisKKyAgICBkZWJ1ZygnVGVzdHMgdGhhdCBhbGwgZmF2aWNvbnMgYW5kIHRvdWNo
IGljb25zIChpZiBFTkFCTEUoVE9VQ0hfSUNPTl9MT0FESU5HKSkgYXJlIGluIGRvY3VtZW50Lmlj
b25VUkxzKCknKTsKKworICAgIC8vIEZldGNoIHRoZSBhY3R1YWwgbGlzdCBvZiBpY29uIFVSTHMu
CisgICAgdmFyIHN1cHBvcnRzVG91Y2hJY29ucyA9IHdpbmRvdy5pbnRlcm5hbHMuaXNUb3VjaElj
b25zTG9hZGluZ1N1cHBvcnRlZCgpOworICAgIHZhciBhY3R1YWxVUkxzID0gd2luZG93LmludGVy
bmFscy5hbGxJY29uVVJMcyhkb2N1bWVudCk7CisKKyAgICAvLyBDaGVjayB0aGF0IHRoZSBVUkwg
bGlzdCBpbiB0aGUgZG9jdW1lbnQgaXMgYXMgd2UgZXhwZWN0LgorICAgIC8vIE5vdGUgdGhhdCB0
aGUgZXhwZWN0ZWQgb3JkZXIgaXMgcmV2ZXJzZSB0byBlbnN1cmUgdGhhdCBpY29ucyBzZWVuIGxh
dGVyCisgICAgLy8gdGFrZSBwcmVjZWRlbmNlIGFzIHJlcXVpcmVkIGJ5IHRoZSBzcGVjLgorICAg
IHZhciBleHBlY3RlZFVSTHMgPSBzdXBwb3J0c1RvdWNoSWNvbnMgPyBbCisgICAgICAgICJodHRw
Oi8vdGVzdC5jb20vaS90b3VjaC1wcmVjb21wb3NlZC5wbmciLAorICAgICAgICAiaHR0cDovL3Rl
c3QuY29tL2kvdG91Y2gucG5nIiwKKyAgICAgICAgImh0dHA6Ly90ZXN0LmNvbS9vbGRmYXZpY29u
LmljbyIsCisgICAgXSA6IFsKKyAgICAgICAgImh0dHA6Ly90ZXN0LmNvbS9vbGRmYXZpY29uLmlj
byIKKyAgICBdOworICAgIHZhciBzdWNjZXNzID0gZXhwZWN0ZWRVUkxzLmxlbmd0aCA9PSBhY3R1
YWxVUkxzLmxlbmd0aDsKKyAgICBmb3IgKHZhciBpID0gMDsgc3VjY2VzcyAmJiBpIDwgYWN0dWFs
VVJMcy5sZW5ndGg7IGkrKykgeworICAgICAgICBpZiAoZXhwZWN0ZWRVUkxzW2ldICE9IGFjdHVh
bFVSTHNbaV0pIHsKKyAgICAgICAgICAgIGRlYnVnKCdtaXNtYXRjaCBleHBlY3RlZD0nICsgZXhw
ZWN0ZWRVUkxzW2ldICsKKyAgICAgICAgICAgICAgICAgICAgJyBhY3R1YWw9JyArIGFjdHVhbFVS
THNbaV0pOworICAgICAgICAgICAgc3VjY2VzcyA9IGZhbHNlOworICAgICAgICB9CisgICAgfQor
ICAgIGlmIChzdWNjZXNzKQorICAgICAgICB0ZXN0UGFzc2VkKCdVUkwgbGlzdCBtYXRjaGVzIGV4
cGVjdGVkJyk7CisgICAgZWxzZQorICAgICAgICB0ZXN0RmFpbGVkKCdVUkwgbGlzdCBkb2VzIG5v
dCBtYXRjaCBleHBlY3RlZCcpOworfQorCis8L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5IG9ubG9h
ZD0ncnVuVGVzdHMoKTsnPgorPC9kaXY+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9mYXN0L2RvbS9pY29uLXVybC1saXN0Lmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0
L2RvbS9pY29uLXVybC1saXN0Lmh0bWwKaW5kZXggZGRhMDBlNzJlZmZiZmUxZDJiMjkxNmFjODIz
ZDRjYjhlZTQ2ZDQ1NC4uNmQzZGZkYTZhNWRlNDk5YTA3ZTEyNTk3NTc4ZjM0MGVkZTgzN2Y1ZiAx
MDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vaWNvbi11cmwtbGlzdC5odG1sCisrKyBi
L0xheW91dFRlc3RzL2Zhc3QvZG9tL2ljb24tdXJsLWxpc3QuaHRtbApAQCAtNDgsNyArNDgsNyBA
QCBmdW5jdGlvbiBydW5UZXN0cygpIHsKICAgICB2YXIgZXhwZWN0ZWRVUkwwID0gImh0dHA6Ly90
ZXN0LmNvbS9iYXJmYXZpY29uLmljbyI7CiAgICAgdmFyIGV4cGVjdGVkVVJMMSA9ICJodHRwOi8v
dGVzdC5jb20vZm9vZmF2aWNvbi5pY28iOwogICAgIHZhciBleHBlY3RlZFVSTDIgPSAiaHR0cDov
L3Rlc3QuY29tL25ld2Zhdmljb24uaWNvIjsKLSAgICB2YXIgaWNvblVSTHMgPSB3aW5kb3cuaW50
ZXJuYWxzLmljb25VUkxzKGRvY3VtZW50KTsKKyAgICB2YXIgaWNvblVSTHMgPSB3aW5kb3cuaW50
ZXJuYWxzLnNob3J0Y3V0SWNvblVSTHMoZG9jdW1lbnQpOwogICAgIGlmIChleHBlY3RlZFVSTDAg
PT0gaWNvblVSTHNbMF0gJiYgZXhwZWN0ZWRVUkwxID09IGljb25VUkxzWzFdICYmIGV4cGVjdGVk
VVJMMiA9PSBpY29uVVJMc1syXSkgCiAgICAgICAgIHRlc3RQYXNzZWQoJ1VSTCBsaXN0IG1hdGNo
ZXMgZXhwZWN0ZWQnKTsKICAgICBlbHNlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2Rv
bS9pY29uLXVybC1wcm9wZXJ0eS5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vaWNvbi11cmwt
cHJvcGVydHkuaHRtbAppbmRleCA4YTZiOWMyMzg4NTA2ZTBlMjg0MmQzN2VjMDcxMDg1NWJmNGZi
OWY1Li4yZDFjMDEyMTU3MWE5N2JmMTU0M2Q0MTY1NDZmNzY4ZTc1MTYxZWQzIDEwMDY0NAotLS0g
YS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9pY29uLXVybC1wcm9wZXJ0eS5odG1sCisrKyBiL0xheW91
dFRlc3RzL2Zhc3QvZG9tL2ljb24tdXJsLXByb3BlcnR5Lmh0bWwKQEAgLTQzLDcgKzQzLDcgQEAg
ZnVuY3Rpb24gcnVuVGVzdHMoKSB7CiAKICAgICAvLyBjaGVjayB0aGF0IHRoZSBVUkwgbGlzdCBp
biB0aGUgZG9jdW1lbnQgaXMgYXMgd2UgZXhwZWN0CiAgICAgdmFyIGV4cGVjdGVkVVJMcyA9ICJo
dHRwOi8vdGVzdC5jb20vbmV3ZmF2aWNvbi5pY28iOwotICAgIHZhciBpY29uVVJMcyA9IHdpbmRv
dy5pbnRlcm5hbHMuaWNvblVSTHMoZG9jdW1lbnQpOworICAgIHZhciBpY29uVVJMcyA9IHdpbmRv
dy5pbnRlcm5hbHMuc2hvcnRjdXRJY29uVVJMcyhkb2N1bWVudCk7CiAgICAgaWYgKGV4cGVjdGVk
VVJMcyA9PSBpY29uVVJMc1swXSkKICAgICAgICAgZGVidWdPdXRwdXQoJ1BBU1MgLSBVUkwgbGlz
dCBtYXRjaGVzIGV4cGVjdGVkJyk7CiAgICAgZWxzZQpkaWZmIC0tZ2l0IGEvQ2hhbmdlTG9nIGIv
Q2hhbmdlTG9nCmluZGV4IDBiY2QwNjhhZDQ3MGU0ZmU5YTJjODIyMzg4NjI3NjJhMTc4NjU4ZmQu
LjJkMDg0MGRlY2JlMGVjNzJjZjRhNGQ4N2ZhODRlYWYyNzgxNmY0NTQgMTAwNjQ0Ci0tLSBhL0No
YW5nZUxvZworKysgYi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMiBAQAorMjAxMy0wMi0xOSAgUnVz
bGFuIEFiZGlrZWV2ICA8YXJ1c2xhbkBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgPGxpbmsgcmVs
PSJhcHBsZS10b3VjaC1pY29uIj4gdGFnIGlzIG5vdCBob25vcmVkIG9uIENOTi5jb20sIHdvcmtm
bG93eS5jb20gZXRjCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0xMDkwNjEKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICAqIFNvdXJjZS9hdXRvdG9vbHMvc3ltYm9scy5maWx0ZXI6CisKIDIwMTMtMDItMTkgIENs
YXVkaW8gU2FhdmVkcmEgIDxjc2FhdmVkcmFAaWdhbGlhLmNvbT4KIAogICAgICAgICBVbnJldmll
d2VkIGJ1aWxkIGZpeC4K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>189837</attachid>
            <date>2013-02-22 14:48:16 -0800</date>
            <delta_ts>2013-02-26 12:32:22 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-109061-20130222144435.patch</filename>
            <type>text/plain</type>
            <size>18945</size>
            <attacher name="Ruslan Abdikeev">aruslan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQzNzQ3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggN2U5NDcxYmIwZDkwMDQ5
ZGJmMDNlMmI2M2JmMmY5OThjMDRmNTEyMy4uMDliM2E0NGUyODJhOTc4MTYyMGEzNTRlNzA4NmVl
ZjY0YTI5MGNmMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM1IEBACisyMDEzLTAyLTIyICBSdXNs
YW4gQWJkaWtlZXYgIDxhcnVzbGFuQGNocm9taXVtLm9yZz4KKworICAgICAgICA8bGluayByZWw9
ImFwcGxlLXRvdWNoLWljb24iPiB0YWcgaXMgbm90IGhvbm9yZWQgb24gQ05OLmNvbSwgd29ya2Zs
b3d5LmNvbSBldGMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTEwOTA2MQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgIFRlc3Q6IGZhc3QvZG9tL2ljb24tdXJsLWxpc3QtYXBwbGUtdG91Y2guaHRtbAorCisgICAg
ICAgIEFkZGVkIGljb25UeXBlcyBwYXJhbWV0ZXIgdG8gRG9jdW1lbnQ6Omljb25VUkxzKCkuCisg
ICAgICAgIEFkZGVkIERvY3VtZW50OjpzaG9ydGN1dEljb25VUkxzKCkgd2l0aCBvcmlnaW5hbCBz
ZW1hbnRpY3Mgb2YgaWNvblVSTHMoKS4KKyAgICAgICAgRml4ZWQgSWNvbkNvbnRyb2xsZXIuY3Bw
IHRvIHByb3ZpZGUgaWNvblR5cGVzIHRvIGljb25VUkxzKCkuCisKKyAgICAgICAgKiBXZWJDb3Jl
LmV4cC5pbjoKKyAgICAgICAgKiBkb20vRG9jdW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
RG9jdW1lbnQ6OnNob3J0Y3V0SWNvblVSTHMpOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAg
IChXZWJDb3JlOjpEb2N1bWVudDo6aWNvblVSTHMpOgorICAgICAgICAqIGRvbS9Eb2N1bWVudC5o
OgorICAgICAgICAoRG9jdW1lbnQpOgorICAgICAgICAqIGxvYWRlci9pY29uL0ljb25Db250cm9s
bGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Okljb25Db250cm9sbGVyOjppY29uVVJMKToKKyAg
ICAgICAgKFdlYkNvcmU6Okljb25Db250cm9sbGVyOjp1cmxzRm9yVHlwZXMpOgorICAgICAgICAq
IHRlc3RpbmcvSW50ZXJuYWxzLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkludGVybmFsczo6aWNv
blVSTHMpOgorICAgICAgICAoV2ViQ29yZTo6SW50ZXJuYWxzOjpzaG9ydGN1dEljb25VUkxzKToK
KyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoV2ViQ29yZTo6SW50ZXJuYWxzOjphbGxJY29u
VVJMcyk6CisgICAgICAgIChXZWJDb3JlOjpJbnRlcm5hbHM6OmlzVG91Y2hJY29uc0xvYWRpbmdT
dXBwb3J0ZWQpOgorICAgICAgICAqIHRlc3RpbmcvSW50ZXJuYWxzLmg6CisgICAgICAgICogdGVz
dGluZy9JbnRlcm5hbHMuaWRsOgorCiAyMDEzLTAyLTIyICBBbGxhbiBTYW5kZmVsZCBKZW5zZW4g
IDxhbGxhbi5qZW5zZW5AZGlnaWEuY29tPgogCiAgICAgICAgIFVucmV2aWV3ZWQgYnVpbGQtZml4
IGFmdGVyIHIxNDM3NDQuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmV4cC5p
biBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZXhwLmluCmluZGV4IDllZmMyYzI4MTk2YTVjZDc2
NDc1ZWQ2Y2RjZmY2N2I4OGFiNzJlYmUuLjAxOTEwZWU5YWUyYWRjZWMwMGJjMGE5M2I5NWY0MGQz
OTZhNGU0NjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZXhwLmluCisrKyBi
L1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZXhwLmluCkBAIC05ODAsNyArOTgwLDggQEAgX19aTjdX
ZWJDb3JlOERvY3VtZW50MzZ1cGRhdGVMYXlvdXRJZ25vcmVQZW5kaW5nU3R5bGVzaGVldHNFdgog
X19aTjdXZWJDb3JlOERvY3VtZW50NGhlYWRFdgogX19aTjdXZWJDb3JlOEZvcm1EYXRhMjhyZW1v
dmVHZW5lcmF0ZWRGaWxlc0lmTmVlZGVkRXYKIF9fWk43V2ViQ29yZThGb3JtRGF0YTZkZWNvZGVF
Uk4zV1RGN0RlY29kZXJFCi1fX1pON1dlYkNvcmU4RG9jdW1lbnQ4aWNvblVSTHNFdgorX19aTjdX
ZWJDb3JlOERvY3VtZW50OGljb25VUkxzRWkKK19fWk43V2ViQ29yZThEb2N1bWVudDE2c2hvcnRj
dXRJY29uVVJMc0V2CiBfX1pON1dlYkNvcmU4Rm9ybURhdGE2Y3JlYXRlRVBLdm0KIF9fWk43V2Vi
Q29yZThGb3JtRGF0YUQxRXYKIF9fWk43V2ViQ29yZThHcmFkaWVudDEyYWRkQ29sb3JTdG9wRWZS
S05TXzVDb2xvckUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCmluZGV4IGU0NWY4NGY0M2QxZmY3YzEy
NmIyOWQ0NjE3ODdlNWYxNWVjZGVjNzIuLjhkYjQxY2QzMmZjNTM4MjFiODY4OWFkMjQ4NzdlMDcx
YWIzZDYwMDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcApAQCAtNDQ1OSwxNCArNDQ1OSwxOSBA
QCBQYXNzUmVmUHRyPFhQYXRoUmVzdWx0PiBEb2N1bWVudDo6ZXZhbHVhdGUoY29uc3QgU3RyaW5n
JiBleHByZXNzaW9uLAogICAgIHJldHVybiBtX3hwYXRoRXZhbHVhdG9yLT5ldmFsdWF0ZShleHBy
ZXNzaW9uLCBjb250ZXh0Tm9kZSwgcmVzb2x2ZXIsIHR5cGUsIHJlc3VsdCwgZWMpOwogfQogCi1j
b25zdCBWZWN0b3I8SWNvblVSTD4mIERvY3VtZW50OjppY29uVVJMcygpCitjb25zdCBWZWN0b3I8
SWNvblVSTD4mIERvY3VtZW50OjpzaG9ydGN1dEljb25VUkxzKCkKK3sKKyAgICAvLyBJbmNsdWRl
IGFueSBpY29ucyB3aGVyZSB0eXBlID0gbGluaywgcmVsID0gInNob3J0Y3V0IGljb24iLgorICAg
IHJldHVybiBpY29uVVJMcyhGYXZpY29uKTsKK30KKworY29uc3QgVmVjdG9yPEljb25VUkw+JiBE
b2N1bWVudDo6aWNvblVSTHMoaW50IGljb25UeXBlcykKIHsKICAgICBtX2ljb25VUkxzLmNsZWFy
KCk7CiAKICAgICBpZiAoIWhlYWQoKSB8fCAhKGhlYWQoKS0+Y2hpbGRyZW4oKSkpCiAgICAgICAg
IHJldHVybiBtX2ljb25VUkxzOwogCi0gICAgLy8gSW5jbHVkZSBhbnkgaWNvbnMgd2hlcmUgdHlw
ZSA9IGxpbmssIHJlbCA9ICJzaG9ydGN1dCBpY29uIi4KICAgICBSZWZQdHI8SFRNTENvbGxlY3Rp
b24+IGNoaWxkcmVuID0gaGVhZCgpLT5jaGlsZHJlbigpOwogICAgIHVuc2lnbmVkIGludCBsZW5n
dGggPSBjaGlsZHJlbi0+bGVuZ3RoKCk7CiAgICAgZm9yICh1bnNpZ25lZCBpbnQgaSA9IDA7IGkg
PCBsZW5ndGg7ICsraSkgewpAQCAtNDQ3NCw3ICs0NDc5LDcgQEAgY29uc3QgVmVjdG9yPEljb25V
Ukw+JiBEb2N1bWVudDo6aWNvblVSTHMoKQogICAgICAgICBpZiAoIWNoaWxkLT5oYXNUYWdOYW1l
KGxpbmtUYWcpKQogICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgIEhUTUxMaW5rRWxlbWVu
dCogbGlua0VsZW1lbnQgPSBzdGF0aWNfY2FzdDxIVE1MTGlua0VsZW1lbnQqPihjaGlsZCk7Ci0g
ICAgICAgIGlmIChsaW5rRWxlbWVudC0+aWNvblR5cGUoKSAhPSBGYXZpY29uKQorICAgICAgICBp
ZiAoIShsaW5rRWxlbWVudC0+aWNvblR5cGUoKSAmIGljb25UeXBlcykpCiAgICAgICAgICAgICBj
b250aW51ZTsKICAgICAgICAgaWYgKGxpbmtFbGVtZW50LT5ocmVmKCkuaXNFbXB0eSgpKQogICAg
ICAgICAgICAgY29udGludWU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1l
bnQuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oCmluZGV4IDEyNjQzOGQ3MGVmMDE2
MWJjMmFmZThmY2VhNzY4YTRiYzg3MDM3YWIuLjIzYmNhMjljZjNhYTI3NDJmNTUwYjJjYTUwZDk4
YzE1YjdjODc0YmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oCkBAIC05NDEsNyArOTQxLDggQEAgcHVi
bGljOgogICAgIGJvb2wgaGFzTm9kZXNXaXRoUGxhY2Vob2xkZXJTdHlsZSgpIGNvbnN0IHsgcmV0
dXJuIG1faGFzTm9kZXNXaXRoUGxhY2Vob2xkZXJTdHlsZTsgfQogICAgIHZvaWQgc2V0SGFzTm9k
ZXNXaXRoUGxhY2Vob2xkZXJTdHlsZSgpIHsgbV9oYXNOb2Rlc1dpdGhQbGFjZWhvbGRlclN0eWxl
ID0gdHJ1ZTsgfQogCi0gICAgY29uc3QgVmVjdG9yPEljb25VUkw+JiBpY29uVVJMcygpOworICAg
IGNvbnN0IFZlY3RvcjxJY29uVVJMPiYgc2hvcnRjdXRJY29uVVJMcygpOworICAgIGNvbnN0IFZl
Y3RvcjxJY29uVVJMPiYgaWNvblVSTHMoaW50IGljb25UeXBlcyk7CiAgICAgdm9pZCBhZGRJY29u
VVJMKGNvbnN0IFN0cmluZyYgdXJsLCBjb25zdCBTdHJpbmcmIG1pbWVUeXBlLCBjb25zdCBTdHJp
bmcmIHNpemUsIEljb25UeXBlKTsKIAogICAgIHZvaWQgc2V0VXNlU2VjdXJlS2V5Ym9hcmRFbnRy
eVdoZW5BY3RpdmUoYm9vbCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvaWNv
bi9JY29uQ29udHJvbGxlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvaWNvbi9JY29uQ29u
dHJvbGxlci5jcHAKaW5kZXggNzRmYWE5NTljYWJlMzQ0ODFhMGY1NzlmN2U1MjQwODIyZTAxMzgw
NC4uM2FkMTU5Y2YwNjk4Zjk4MDdjM2U5MWYzOGZhZTdjNWQyYzBlZGU1MyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvbG9hZGVyL2ljb24vSWNvbkNvbnRyb2xsZXIuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2xvYWRlci9pY29uL0ljb25Db250cm9sbGVyLmNwcApAQCAtNjgsMTMgKzY4LDEx
IEBAIEtVUkwgSWNvbkNvbnRyb2xsZXI6OnVybCgpCiBJY29uVVJMIEljb25Db250cm9sbGVyOjpp
Y29uVVJMKEljb25UeXBlIGljb25UeXBlKSBjb25zdAogewogICAgIEljb25VUkwgcmVzdWx0Owot
ICAgIGNvbnN0IFZlY3RvcjxJY29uVVJMPiYgaWNvblVSTHMgPSBtX2ZyYW1lLT5kb2N1bWVudCgp
LT5pY29uVVJMcygpOworICAgIGNvbnN0IFZlY3RvcjxJY29uVVJMPiYgaWNvblVSTHMgPSBtX2Zy
YW1lLT5kb2N1bWVudCgpLT5pY29uVVJMcyhpY29uVHlwZSk7CiAgICAgVmVjdG9yPEljb25VUkw+
Ojpjb25zdF9pdGVyYXRvciBpdGVyKGljb25VUkxzLmJlZ2luKCkpOwogICAgIGZvciAoOyBpdGVy
ICE9IGljb25VUkxzLmVuZCgpOyArK2l0ZXIpIHsKLSAgICAgICAgaWYgKGl0ZXItPm1faWNvblR5
cGUgPT0gaWNvblR5cGUpIHsKLSAgICAgICAgICAgIGlmIChyZXN1bHQubV9pY29uVVJMLmlzRW1w
dHkoKSB8fCAhaXRlci0+bV9taW1lVHlwZS5pc0VtcHR5KCkpCi0gICAgICAgICAgICAgICAgcmVz
dWx0ID0gKml0ZXI7Ci0gICAgICAgIH0KKyAgICAgICAgaWYgKHJlc3VsdC5tX2ljb25VUkwuaXNF
bXB0eSgpIHx8ICFpdGVyLT5tX21pbWVUeXBlLmlzRW1wdHkoKSkKKyAgICAgICAgICAgIHJlc3Vs
dCA9ICppdGVyOwogICAgIH0KIAogICAgIHJldHVybiByZXN1bHQ7CkBAIC0xMDUsMTEgKzEwMyw4
IEBAIEljb25VUkxzIEljb25Db250cm9sbGVyOjp1cmxzRm9yVHlwZXMoaW50IGljb25UeXBlcykK
ICNlbmRpZgogCiAgICAgLy8gRmluYWxseSwgYXBwZW5kIGFsbCByZW1haW5pbmcgaWNvbnMgb2Yg
dGhpcyB0eXBlLgotICAgIGNvbnN0IFZlY3RvcjxJY29uVVJMPiYgYWxsSWNvblVSTHMgPSBtX2Zy
YW1lLT5kb2N1bWVudCgpLT5pY29uVVJMcygpOworICAgIGNvbnN0IFZlY3RvcjxJY29uVVJMPiYg
YWxsSWNvblVSTHMgPSBtX2ZyYW1lLT5kb2N1bWVudCgpLT5pY29uVVJMcyhpY29uVHlwZXMpOwog
ICAgIGZvciAoVmVjdG9yPEljb25VUkw+Ojpjb25zdF9pdGVyYXRvciBpdGVyID0gYWxsSWNvblVS
THMuYmVnaW4oKTsgaXRlciAhPSBhbGxJY29uVVJMcy5lbmQoKTsgKytpdGVyKSB7Ci0gICAgICAg
IGlmICghKGl0ZXItPm1faWNvblR5cGUgJiBpY29uVHlwZXMpKQotICAgICAgICAgICAgY29udGlu
dWU7Ci0KICAgICAgICAgaW50IGk7CiAgICAgICAgIGludCBpY29uQ291bnQgPSBpY29uVVJMcy5z
aXplKCk7CiAgICAgICAgIGZvciAoaSA9IDA7IGkgPCBpY29uQ291bnQ7ICsraSkgewpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuY3BwIGIvU291cmNlL1dlYkNv
cmUvdGVzdGluZy9JbnRlcm5hbHMuY3BwCmluZGV4IDE3MWViNWI1MjM4NzIwZWE5Y2YyOGFhZGNk
MTdiMjhhMzUzNzA1ZDQuLjdiYzE5NDBjYjEzMGNiNzdmOTM4YjRiYjYzOWJhZmYwZjU4ZjM2MTYg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5jcHAKQEAgLTE3NDQsOSArMTc0NCw5IEBA
IGludCBJbnRlcm5hbHM6OnBhZ2VOdW1iZXIoRWxlbWVudCogZWxlbWVudCwgZmxvYXQgcGFnZVdp
ZHRoLCBmbG9hdCBwYWdlSGVpZ2h0KQogICAgIHJldHVybiBQcmludENvbnRleHQ6OnBhZ2VOdW1i
ZXJGb3JFbGVtZW50KGVsZW1lbnQsIEZsb2F0U2l6ZShwYWdlV2lkdGgsIHBhZ2VIZWlnaHQpKTsK
IH0KIAotVmVjdG9yPFN0cmluZz4gSW50ZXJuYWxzOjppY29uVVJMcyhEb2N1bWVudCogZG9jdW1l
bnQpIGNvbnN0CitWZWN0b3I8U3RyaW5nPiBJbnRlcm5hbHM6Omljb25VUkxzKERvY3VtZW50KiBk
b2N1bWVudCwgaW50IGljb25UeXBlcykgY29uc3QKIHsKLSAgICBWZWN0b3I8SWNvblVSTD4gaWNv
blVSTHMgPSBkb2N1bWVudC0+aWNvblVSTHMoKTsKKyAgICBWZWN0b3I8SWNvblVSTD4gaWNvblVS
THMgPSBkb2N1bWVudC0+aWNvblVSTHMoaWNvblR5cGVzKTsKICAgICBWZWN0b3I8U3RyaW5nPiBh
cnJheTsKIAogICAgIFZlY3RvcjxJY29uVVJMPjo6Y29uc3RfaXRlcmF0b3IgaXRlcihpY29uVVJM
cy5iZWdpbigpKTsKQEAgLTE3NTYsNiArMTc1NiwyNSBAQCBWZWN0b3I8U3RyaW5nPiBJbnRlcm5h
bHM6Omljb25VUkxzKERvY3VtZW50KiBkb2N1bWVudCkgY29uc3QKICAgICByZXR1cm4gYXJyYXk7
CiB9CiAKK1ZlY3RvcjxTdHJpbmc+IEludGVybmFsczo6c2hvcnRjdXRJY29uVVJMcyhEb2N1bWVu
dCogZG9jdW1lbnQpIGNvbnN0Cit7CisgICAgcmV0dXJuIGljb25VUkxzKGRvY3VtZW50LCBGYXZp
Y29uKTsKK30KKworVmVjdG9yPFN0cmluZz4gSW50ZXJuYWxzOjphbGxJY29uVVJMcyhEb2N1bWVu
dCogZG9jdW1lbnQpIGNvbnN0Cit7CisgICAgcmV0dXJuIGljb25VUkxzKGRvY3VtZW50LCBGYXZp
Y29uIHwgVG91Y2hJY29uIHwgVG91Y2hQcmVjb21wb3NlZEljb24pOworfQorCitib29sIEludGVy
bmFsczo6aXNUb3VjaEljb25zTG9hZGluZ1N1cHBvcnRlZCgpIGNvbnN0Cit7CisjaWYgRU5BQkxF
KFRPVUNIX0lDT05fTE9BRElORykKKyAgICByZXR1cm4gdHJ1ZTsKKyNlbHNlCisgICAgcmV0dXJu
IGZhbHNlOworI2VuZGlmCit9CisKIGludCBJbnRlcm5hbHM6Om51bWJlck9mUGFnZXMoZmxvYXQg
cGFnZVdpZHRoLCBmbG9hdCBwYWdlSGVpZ2h0KQogewogICAgIGlmICghZnJhbWUoKSkKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmggYi9Tb3VyY2UvV2ViQ29y
ZS90ZXN0aW5nL0ludGVybmFscy5oCmluZGV4IDkwNzA0Mjc4ODExY2NlMjY5NzlmY2JjMzg3ZWFl
M2ExNWYwNWM1ZmQuLjVkODYwYTg5Y2JjMWNiMjc2YzViNzVjMWUwMzhiYjlmYzYzZWYyYTUgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaApAQCAtMjQ4LDcgKzI0OCw5IEBAIHB1YmxpYzoK
ICAgICBTdHJpbmcgY291bnRlclZhbHVlKEVsZW1lbnQqKTsKIAogICAgIGludCBwYWdlTnVtYmVy
KEVsZW1lbnQqLCBmbG9hdCBwYWdlV2lkdGggPSA4MDAsIGZsb2F0IHBhZ2VIZWlnaHQgPSA2MDAp
OwotICAgIFZlY3RvcjxTdHJpbmc+IGljb25VUkxzKERvY3VtZW50KikgY29uc3Q7CisgICAgVmVj
dG9yPFN0cmluZz4gc2hvcnRjdXRJY29uVVJMcyhEb2N1bWVudCopIGNvbnN0OworICAgIFZlY3Rv
cjxTdHJpbmc+IGFsbEljb25VUkxzKERvY3VtZW50KikgY29uc3Q7CisgICAgYm9vbCBpc1RvdWNo
SWNvbnNMb2FkaW5nU3VwcG9ydGVkKCkgY29uc3Q7CiAKICAgICBpbnQgbnVtYmVyT2ZQYWdlcyhm
bG9hdCBwYWdlV2lkdGhJblBpeGVscyA9IDgwMCwgZmxvYXQgcGFnZUhlaWdodEluUGl4ZWxzID0g
NjAwKTsKICAgICBTdHJpbmcgcGFnZVByb3BlcnR5KFN0cmluZywgaW50LCBFeGNlcHRpb25Db2Rl
JiA9IEFTU0VSVF9OT19FWENFUFRJT04pIGNvbnN0OwpAQCAtMjkzLDYgKzI5NSw3IEBAIHByaXZh
dGU6CiAgICAgZXhwbGljaXQgSW50ZXJuYWxzKERvY3VtZW50Kik7CiAgICAgRG9jdW1lbnQqIGNv
bnRleHREb2N1bWVudCgpIGNvbnN0OwogICAgIEZyYW1lKiBmcmFtZSgpIGNvbnN0OworICAgIFZl
Y3RvcjxTdHJpbmc+IGljb25VUkxzKERvY3VtZW50KiwgaW50IGljb25UeXBlcykgY29uc3Q7CiAK
ICAgICBEb2N1bWVudE1hcmtlciogbWFya2VyQXQoTm9kZSosIGNvbnN0IFN0cmluZyYgbWFya2Vy
VHlwZSwgdW5zaWduZWQgaW5kZXgsIEV4Y2VwdGlvbkNvZGUmKTsKICNpZiBFTkFCTEUoSU5TUEVD
VE9SKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaWRsIGIv
U291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaWRsCmluZGV4IDVhODdlMzM2OTQ2N2U0
Mzk0Zjc4MGY4YTYzYjYwZGRlM2JiZTEyYWQuLjE1NTRkOGZhODc2MmFjOTRlY2Q0NGVhMDMwMGM3
ODBkNDdiYmQzYmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxz
LmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5pZGwKQEAgLTIxNSw3
ICsyMTUsOSBAQAogCiAgICAgRE9NU3RyaW5nIGNvdW50ZXJWYWx1ZShpbiBFbGVtZW50IGVsZW1l
bnQpOwogICAgIGxvbmcgcGFnZU51bWJlcihpbiBFbGVtZW50IGVsZW1lbnQsIGluIFtPcHRpb25h
bF0gZmxvYXQgcGFnZVdpZHRoLCBpbiBbT3B0aW9uYWxdIGZsb2F0IHBhZ2VIZWlnaHQpOwotICAg
IERPTVN0cmluZ1tdIGljb25VUkxzKGluIERvY3VtZW50IGRvY3VtZW50KTsKKyAgICBET01TdHJp
bmdbXSBzaG9ydGN1dEljb25VUkxzKGluIERvY3VtZW50IGRvY3VtZW50KTsKKyAgICBET01TdHJp
bmdbXSBhbGxJY29uVVJMcyhpbiBEb2N1bWVudCBkb2N1bWVudCk7CisgICAgYm9vbGVhbiBpc1Rv
dWNoSWNvbnNMb2FkaW5nU3VwcG9ydGVkKCk7CiAgICAgbG9uZyBudW1iZXJPZlBhZ2VzKGluIFtP
cHRpb25hbF0gZG91YmxlIHBhZ2VXaWR0aEluUGl4ZWxzLCBpbiBbT3B0aW9uYWxdIGRvdWJsZSBw
YWdlSGVpZ2h0SW5QaXhlbHMpOwogICAgIERPTVN0cmluZyBwYWdlUHJvcGVydHkoaW4gRE9NU3Ry
aW5nIHByb3BlcnR5TmFtZSwgaW4gbG9uZyBwYWdlTnVtYmVyKSByYWlzZXMgKERPTUV4Y2VwdGlv
bik7CiAgICAgRE9NU3RyaW5nIHBhZ2VTaXplQW5kTWFyZ2luc0luUGl4ZWxzKGluIGxvbmcgcGFn
ZUluZGV4LCBpbiBsb25nIHdpZHRoLCBpbiBsb25nIGhlaWdodCwgaW4gbG9uZyBtYXJnaW5Ub3As
IGluIGxvbmcgbWFyZ2luUmlnaHQsIGluIGxvbmcgbWFyZ2luQm90dG9tLCBpbiBsb25nIG1hcmdp
bkxlZnQpIHJhaXNlcyAoRE9NRXhjZXB0aW9uKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
V2ViS2l0LnZjeHByb2ovV2ViS2l0RXhwb3J0R2VuZXJhdG9yL1dlYktpdEV4cG9ydHMuZGVmLmlu
IGIvU291cmNlL1dlYktpdC9XZWJLaXQudmN4cHJvai9XZWJLaXRFeHBvcnRHZW5lcmF0b3IvV2Vi
S2l0RXhwb3J0cy5kZWYuaW4KaW5kZXggMjFmYTBjYjc2ZDczMjE1MDA1OTcyMWQ3ZjMzYmRlNTQ3
ZWJmNGQzMS4uNGRjNDA3NzcxZmE1YzA0MDU3M2JmMjg3ZDUwYzMyNmYzMWNhYjE5YSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9XZWJLaXQudmN4cHJvai9XZWJLaXRFeHBvcnRHZW5lcmF0b3Iv
V2ViS2l0RXhwb3J0cy5kZWYuaW4KKysrIGIvU291cmNlL1dlYktpdC9XZWJLaXQudmN4cHJvai9X
ZWJLaXRFeHBvcnRHZW5lcmF0b3IvV2ViS2l0RXhwb3J0cy5kZWYuaW4KQEAgLTMyNSw3ICszMjUs
OCBAQCBFWFBPUlRTCiAgICAgICAgID9zZXRBbGxvd3NSb3VuZGluZ0hhY2tzQFRleHRSdW5AV2Vi
Q29yZUBAU0FYX05AWgogICAgICAgICA/cmVnaXN0ZXJVUkxTY2hlbWVBc0J5cGFzc2luZ0NvbnRl
bnRTZWN1cml0eVBvbGljeUBTY2hlbWVSZWdpc3RyeUBXZWJDb3JlQEBTQVhBQlZTdHJpbmdAV1RG
QEBAWgogICAgICAgICA/cmVtb3ZlVVJMU2NoZW1lUmVnaXN0ZXJlZEFzQnlwYXNzaW5nQ29udGVu
dFNlY3VyaXR5UG9saWN5QFNjaGVtZVJlZ2lzdHJ5QFdlYkNvcmVAQFNBWEFCVlN0cmluZ0BXVEZA
QEBaCi0gICAgICAgID9pY29uVVJMc0BEb2N1bWVudEBXZWJDb3JlQEBRQUVBQlY/JFZlY3RvckBV
SWNvblVSTEBXZWJDb3JlQEAkMEFAQFdURkBAWFoKKyAgICAgICAgP3Nob3J0Y3V0SWNvblVSTHNA
RG9jdW1lbnRAV2ViQ29yZUBAUUFFQUJWPyRWZWN0b3JAVUljb25VUkxAV2ViQ29yZUBAJDBBQEBX
VEZAQFhaCisgICAgICAgID9pY29uVVJMc0BEb2N1bWVudEBXZWJDb3JlQEBRQUVBQlY/JFZlY3Rv
ckBVSWNvblVSTEBXZWJDb3JlQEAkMEFAQFdURkBASEBaCiAgICAgICAgID9udW1iZXJPZlBhZ2Vz
QFByaW50Q29udGV4dEBXZWJDb3JlQEBTQUhQQVZGcmFtZUAyQEFCVkZsb2F0U2l6ZUAyQEBaCiAg
ICAgICAgID9wYWdlUHJvcGVydHlAUHJpbnRDb250ZXh0QFdlYkNvcmVAQFNBP0FWU3RyaW5nQFdU
RkBAUEFWRnJhbWVAMkBQQkRIQFoKICAgICAgICAgP3BhZ2VTaXplQW5kTWFyZ2luc0luUGl4ZWxz
QFByaW50Q29udGV4dEBXZWJDb3JlQEBTQT9BVlN0cmluZ0BXVEZAQFBBVkZyYW1lQDJASEhISEhI
SEBaCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L3dpbi9XZWJLaXQudmNwcm9qL1dlYktpdEV4
cG9ydHMuZGVmLmluIGIvU291cmNlL1dlYktpdC93aW4vV2ViS2l0LnZjcHJvai9XZWJLaXRFeHBv
cnRzLmRlZi5pbgppbmRleCAyMWZhMGNiNzZkNzMyMTUwMDU5NzIxZDdmMzNiZGU1NDdlYmY0ZDMx
Li40ZGM0MDc3NzFmYTVjMDQwNTczYmYyODdkNTBjMzI2ZjMxY2FiMTlhIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L3dpbi9XZWJLaXQudmNwcm9qL1dlYktpdEV4cG9ydHMuZGVmLmluCisrKyBi
L1NvdXJjZS9XZWJLaXQvd2luL1dlYktpdC52Y3Byb2ovV2ViS2l0RXhwb3J0cy5kZWYuaW4KQEAg
LTMyNSw3ICszMjUsOCBAQCBFWFBPUlRTCiAgICAgICAgID9zZXRBbGxvd3NSb3VuZGluZ0hhY2tz
QFRleHRSdW5AV2ViQ29yZUBAU0FYX05AWgogICAgICAgICA/cmVnaXN0ZXJVUkxTY2hlbWVBc0J5
cGFzc2luZ0NvbnRlbnRTZWN1cml0eVBvbGljeUBTY2hlbWVSZWdpc3RyeUBXZWJDb3JlQEBTQVhB
QlZTdHJpbmdAV1RGQEBAWgogICAgICAgICA/cmVtb3ZlVVJMU2NoZW1lUmVnaXN0ZXJlZEFzQnlw
YXNzaW5nQ29udGVudFNlY3VyaXR5UG9saWN5QFNjaGVtZVJlZ2lzdHJ5QFdlYkNvcmVAQFNBWEFC
VlN0cmluZ0BXVEZAQEBaCi0gICAgICAgID9pY29uVVJMc0BEb2N1bWVudEBXZWJDb3JlQEBRQUVB
QlY/JFZlY3RvckBVSWNvblVSTEBXZWJDb3JlQEAkMEFAQFdURkBAWFoKKyAgICAgICAgP3Nob3J0
Y3V0SWNvblVSTHNARG9jdW1lbnRAV2ViQ29yZUBAUUFFQUJWPyRWZWN0b3JAVUljb25VUkxAV2Vi
Q29yZUBAJDBBQEBXVEZAQFhaCisgICAgICAgID9pY29uVVJMc0BEb2N1bWVudEBXZWJDb3JlQEBR
QUVBQlY/JFZlY3RvckBVSWNvblVSTEBXZWJDb3JlQEAkMEFAQFdURkBASEBaCiAgICAgICAgID9u
dW1iZXJPZlBhZ2VzQFByaW50Q29udGV4dEBXZWJDb3JlQEBTQUhQQVZGcmFtZUAyQEFCVkZsb2F0
U2l6ZUAyQEBaCiAgICAgICAgID9wYWdlUHJvcGVydHlAUHJpbnRDb250ZXh0QFdlYkNvcmVAQFNB
P0FWU3RyaW5nQFdURkBAUEFWRnJhbWVAMkBQQkRIQFoKICAgICAgICAgP3BhZ2VTaXplQW5kTWFy
Z2luc0luUGl4ZWxzQFByaW50Q29udGV4dEBXZWJDb3JlQEBTQT9BVlN0cmluZ0BXVEZAQFBBVkZy
YW1lQDJASEhISEhISEBaCmRpZmYgLS1naXQgYS9Tb3VyY2UvYXV0b3Rvb2xzL3N5bWJvbHMuZmls
dGVyIGIvU291cmNlL2F1dG90b29scy9zeW1ib2xzLmZpbHRlcgppbmRleCA0OWY0YjZlNzIxYWYy
YmQxNWNlZmVmYjljZDlkYWUwOTg4YTEyNjk0Li5jMGQwOGRhZjg0ZTc1MTUxNzJkZjFmMjA3YjIz
NmU0N2U2ZmVkZjQ3IDEwMDY0NAotLS0gYS9Tb3VyY2UvYXV0b3Rvb2xzL3N5bWJvbHMuZmlsdGVy
CisrKyBiL1NvdXJjZS9hdXRvdG9vbHMvc3ltYm9scy5maWx0ZXIKQEAgLTQxLDcgKzQxLDggQEAg
X1pON1dlYkNvcmU0dG9KU0VQTjNKU0M5RXhlY1N0YXRlRVBOU18xN0pTRE9NR2xvYmFsT2JqZWN0
RVBOU181UmFuZ2VFOwogX1pON1dlYkNvcmU1UmFuZ2U2Y3JlYXRlRU4zV1RGMTBQYXNzUmVmUHRy
SU5TXzhEb2N1bWVudEVFRU5TMl9JTlNfNE5vZGVFRUVpUzZfaTsKIF9aTjdXZWJDb3JlNVJhbmdl
RDFFdjsKIF9aTjdXZWJDb3JlOERvY3VtZW50MzZ1cGRhdGVMYXlvdXRJZ25vcmVQZW5kaW5nU3R5
bGVzaGVldHNFdjsKLV9aTjdXZWJDb3JlOERvY3VtZW50OGljb25VUkxzRXY7CitfWk43V2ViQ29y
ZThEb2N1bWVudDhpY29uVVJMc0VpOworX1pON1dlYkNvcmU4RG9jdW1lbnQxNnNob3J0Y3V0SWNv
blVSTHNFdjsKIF9aTjdXZWJDb3JlOFNldHRpbmdzMTltaW5ET01UaW1lckludGVydmFsRXY7CiBf
Wk43V2ViQ29yZThTZXR0aW5nczIyc2V0TWluRE9NVGltZXJJbnRlcnZhbEVkOwogX1pON1dlYkNv
cmU5SFRNTE5hbWVzOGlucHV0VGFnRTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxv
ZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCAwOGYxNGM0OGJhN2ZlNjVhNTdmMzg3ZDcw
OTIwZjg3NjJmNGRhNzM1Li42MzE5YjkxYmI5NmI0ZDljM2I2MTg4OWYwZTI1YjlhNjAwMDE4NmM4
IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTkgQEAKKzIwMTMtMDItMjIgIFJ1c2xhbiBBYmRpa2VldiAgPGFy
dXNsYW5AY2hyb21pdW0ub3JnPgorCisgICAgICAgIDxsaW5rIHJlbD0iYXBwbGUtdG91Y2gtaWNv
biI+IHRhZyBpcyBub3QgaG9ub3JlZCBvbiBDTk4uY29tLCB3b3JrZmxvd3kuY29tIGV0YworICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTA5MDYxCisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkZWQgdGVzdCBm
b3IgYXBwbGUtdG91Y2gtaWNvbiBpbiBhbGxJY29uVVJMcygpLgorICAgICAgICBDaGFuZ2VkIGlj
b25VUkxzKCkgdG8gc2hvcnRjdXRJY29uVVJMcygpLgorCisgICAgICAgICogZmFzdC9kb20vaWNv
bi11cmwtY2hhbmdlLmh0bWw6CisgICAgICAgICogZmFzdC9kb20vaWNvbi11cmwtbGlzdC1hcHBs
ZS10b3VjaC1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZG9tL2ljb24tdXJs
LWxpc3QtYXBwbGUtdG91Y2guaHRtbDogQWRkZWQuCisgICAgICAgICogZmFzdC9kb20vaWNvbi11
cmwtbGlzdC5odG1sOgorICAgICAgICAqIGZhc3QvZG9tL2ljb24tdXJsLXByb3BlcnR5Lmh0bWw6
CisKIDIwMTMtMDItMjIgIFJhcGhhZWwgS3VibyBkYSBDb3N0YSAgPHJhcGhhZWwua3Viby5kYS5j
b3N0YUBpbnRlbC5jb20+CiAKICAgICAgICAgW1dUUl0gRG8gbm90IGR1bXAgaW5mb3JtYXRpb24g
YWJvdXQgZW1wdHkgc3ViZnJhbWVzLgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9kb20v
aWNvbi11cmwtY2hhbmdlLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9pY29uLXVybC1jaGFu
Z2UuaHRtbAppbmRleCA4MmQ1MzRlZWNkYTdjZDE0YWI1NTk5MzFhMjJiMjc5OTJhNmZlNWU3Li45
OTMyNzJlZGJjMmZhMmY2NjdhYzQ4OTllNjcwYzJjNTA3MGVkZDFmIDEwMDY0NAotLS0gYS9MYXlv
dXRUZXN0cy9mYXN0L2RvbS9pY29uLXVybC1jaGFuZ2UuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9m
YXN0L2RvbS9pY29uLXVybC1jaGFuZ2UuaHRtbApAQCAtNDUsNyArNDUsNyBAQCBmdW5jdGlvbiBy
dW5UZXN0cygpIHsKIAogICAgIC8vIGNoZWNrIHRoYXQgdGhlIFVSTCBsaXN0IGluIHRoZSBkb2N1
bWVudCBpcyBhcyB3ZSBleHBlY3QKICAgICB2YXIgZXhwZWN0ZWRVUkxzID0gImh0dHA6Ly90ZXN0
LmNvbS9vbGRmYXZpY29uLmljbyI7Ci0gICAgdmFyIGljb25VUkxzID0gd2luZG93LmludGVybmFs
cy5pY29uVVJMcyhkb2N1bWVudCk7CisgICAgdmFyIGljb25VUkxzID0gd2luZG93LmludGVybmFs
cy5zaG9ydGN1dEljb25VUkxzKGRvY3VtZW50KTsKICAgICBpZiAoZXhwZWN0ZWRVUkxzID09IGlj
b25VUkxzWzBdKQogICAgICAgICB0ZXN0UGFzc2VkKCdVUkwgbGlzdCBtYXRjaGVzIGV4cGVjdGVk
Jyk7CiAgICAgZWxzZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vaWNvbi11cmwt
bGlzdC1hcHBsZS10b3VjaC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9pY29u
LXVybC1saXN0LWFwcGxlLXRvdWNoLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45OTNjNTU1Zjhh
NWM0ZGQxY2Q1YWVhNDBkZjU4Yzk3NDUyY2Q4MWFiCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0
VGVzdHMvZmFzdC9kb20vaWNvbi11cmwtbGlzdC1hcHBsZS10b3VjaC1leHBlY3RlZC50eHQKQEAg
LTAsMCArMSwzIEBACitUZXN0cyB0aGF0IGFsbCBmYXZpY29ucyBhbmQgdG91Y2ggaWNvbnMgKGlm
IEVOQUJMRShUT1VDSF9JQ09OX0xPQURJTkcpKSBhcmUgaW4gZG9jdW1lbnQuaWNvblVSTHMoKQor
UEFTUyBVUkwgbGlzdCBtYXRjaGVzIGV4cGVjdGVkCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2Zhc3QvZG9tL2ljb24tdXJsLWxpc3QtYXBwbGUtdG91Y2guaHRtbCBiL0xheW91dFRlc3RzL2Zh
c3QvZG9tL2ljb24tdXJsLWxpc3QtYXBwbGUtdG91Y2guaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4wMWI5OTRj
OGI0YmRhYjkyY2VkZTFkNjkzZDkyNzdmYzZiNmNjZTc0Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5
b3V0VGVzdHMvZmFzdC9kb20vaWNvbi11cmwtbGlzdC1hcHBsZS10b3VjaC5odG1sCkBAIC0wLDAg
KzEsNDkgQEAKKzxodG1sPgorPGhlYWQ+Cis8dGl0bGU+T3JpZ2luYWwgVGl0bGU8L3RpdGxlPgor
PGxpbmsgcmVsPSJzaG9ydGN1dCBpY29uIiB0eXBlPSJpbWFnZS94LWljb24iIGhyZWY9Imh0dHA6
Ly90ZXN0LmNvbS9vbGRmYXZpY29uLmljbyIvPgorPGxpbmsgcmVsPSJhcHBsZS10b3VjaC1pY29u
IiB0eXBlPSJpbWFnZS9wbmciIGhyZWY9Imh0dHA6Ly90ZXN0LmNvbS9pL3RvdWNoLnBuZyIvPgor
PGxpbmsgcmVsPSJhcHBsZS10b3VjaC1pY29uLXByZWNvbXBvc2VkIiB0eXBlPSJpbWFnZS9wbmci
IGhyZWY9Imh0dHA6Ly90ZXN0LmNvbS9pL3RvdWNoLXByZWNvbXBvc2VkLnBuZyIvPgorPHNjcmlw
dCBzcmM9Ii4uL2pzL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0
PgorCitmdW5jdGlvbiBydW5UZXN0cygpIHsKKyAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpCisg
ICAgICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOworCisgICAgZGVidWcoJ1Rlc3RzIHRoYXQg
YWxsIGZhdmljb25zIGFuZCB0b3VjaCBpY29ucyAoaWYgRU5BQkxFKFRPVUNIX0lDT05fTE9BRElO
RykpIGFyZSBpbiBkb2N1bWVudC5pY29uVVJMcygpJyk7CisKKyAgICAvLyBGZXRjaCB0aGUgYWN0
dWFsIGxpc3Qgb2YgaWNvbiBVUkxzLgorICAgIHZhciBzdXBwb3J0c1RvdWNoSWNvbnMgPSB3aW5k
b3cuaW50ZXJuYWxzLmlzVG91Y2hJY29uc0xvYWRpbmdTdXBwb3J0ZWQoKTsKKyAgICB2YXIgYWN0
dWFsVVJMcyA9IHdpbmRvdy5pbnRlcm5hbHMuYWxsSWNvblVSTHMoZG9jdW1lbnQpOworCisgICAg
Ly8gQ2hlY2sgdGhhdCB0aGUgVVJMIGxpc3QgaW4gdGhlIGRvY3VtZW50IGlzIGFzIHdlIGV4cGVj
dC4KKyAgICAvLyBOb3RlIHRoYXQgdGhlIGV4cGVjdGVkIG9yZGVyIGlzIHJldmVyc2UgdG8gZW5z
dXJlIHRoYXQgaWNvbnMgc2VlbiBsYXRlcgorICAgIC8vIHRha2UgcHJlY2VkZW5jZSBhcyByZXF1
aXJlZCBieSB0aGUgc3BlYy4KKyAgICB2YXIgZXhwZWN0ZWRVUkxzID0gc3VwcG9ydHNUb3VjaElj
b25zID8gWworICAgICAgICAiaHR0cDovL3Rlc3QuY29tL2kvdG91Y2gtcHJlY29tcG9zZWQucG5n
IiwKKyAgICAgICAgImh0dHA6Ly90ZXN0LmNvbS9pL3RvdWNoLnBuZyIsCisgICAgICAgICJodHRw
Oi8vdGVzdC5jb20vb2xkZmF2aWNvbi5pY28iLAorICAgIF0gOiBbCisgICAgICAgICJodHRwOi8v
dGVzdC5jb20vb2xkZmF2aWNvbi5pY28iCisgICAgXTsKKyAgICB2YXIgc3VjY2VzcyA9IGV4cGVj
dGVkVVJMcy5sZW5ndGggPT0gYWN0dWFsVVJMcy5sZW5ndGg7CisgICAgZm9yICh2YXIgaSA9IDA7
IHN1Y2Nlc3MgJiYgaSA8IGFjdHVhbFVSTHMubGVuZ3RoOyBpKyspIHsKKyAgICAgICAgaWYgKGV4
cGVjdGVkVVJMc1tpXSAhPSBhY3R1YWxVUkxzW2ldKSB7CisgICAgICAgICAgICBkZWJ1ZygnbWlz
bWF0Y2ggZXhwZWN0ZWQ9JyArIGV4cGVjdGVkVVJMc1tpXSArCisgICAgICAgICAgICAgICAgICAg
ICcgYWN0dWFsPScgKyBhY3R1YWxVUkxzW2ldKTsKKyAgICAgICAgICAgIHN1Y2Nlc3MgPSBmYWxz
ZTsKKyAgICAgICAgfQorICAgIH0KKyAgICBpZiAoc3VjY2VzcykKKyAgICAgICAgdGVzdFBhc3Nl
ZCgnVVJMIGxpc3QgbWF0Y2hlcyBleHBlY3RlZCcpOworICAgIGVsc2UKKyAgICAgICAgdGVzdEZh
aWxlZCgnVVJMIGxpc3QgZG9lcyBub3QgbWF0Y2ggZXhwZWN0ZWQnKTsKK30KKworPC9zY3JpcHQ+
Cis8L2hlYWQ+Cis8Ym9keSBvbmxvYWQ9J3J1blRlc3RzKCk7Jz4KKzwvZGl2PgorPC9ib2R5Pgor
PC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vaWNvbi11cmwtbGlzdC5o
dG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vaWNvbi11cmwtbGlzdC5odG1sCmluZGV4IGRkYTAw
ZTcyZWZmYmZlMWQyYjI5MTZhYzgyM2Q0Y2I4ZWU0NmQ0NTQuLjZkM2RmZGE2YTVkZTQ5OWEwN2Ux
MjU5NzU3OGYzNDBlZGU4MzdmNWYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL2lj
b24tdXJsLWxpc3QuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9pY29uLXVybC1saXN0
Lmh0bWwKQEAgLTQ4LDcgKzQ4LDcgQEAgZnVuY3Rpb24gcnVuVGVzdHMoKSB7CiAgICAgdmFyIGV4
cGVjdGVkVVJMMCA9ICJodHRwOi8vdGVzdC5jb20vYmFyZmF2aWNvbi5pY28iOwogICAgIHZhciBl
eHBlY3RlZFVSTDEgPSAiaHR0cDovL3Rlc3QuY29tL2Zvb2Zhdmljb24uaWNvIjsKICAgICB2YXIg
ZXhwZWN0ZWRVUkwyID0gImh0dHA6Ly90ZXN0LmNvbS9uZXdmYXZpY29uLmljbyI7Ci0gICAgdmFy
IGljb25VUkxzID0gd2luZG93LmludGVybmFscy5pY29uVVJMcyhkb2N1bWVudCk7CisgICAgdmFy
IGljb25VUkxzID0gd2luZG93LmludGVybmFscy5zaG9ydGN1dEljb25VUkxzKGRvY3VtZW50KTsK
ICAgICBpZiAoZXhwZWN0ZWRVUkwwID09IGljb25VUkxzWzBdICYmIGV4cGVjdGVkVVJMMSA9PSBp
Y29uVVJMc1sxXSAmJiBleHBlY3RlZFVSTDIgPT0gaWNvblVSTHNbMl0pIAogICAgICAgICB0ZXN0
UGFzc2VkKCdVUkwgbGlzdCBtYXRjaGVzIGV4cGVjdGVkJyk7CiAgICAgZWxzZQpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vaWNvbi11cmwtcHJvcGVydHkuaHRtbCBiL0xheW91dFRl
c3RzL2Zhc3QvZG9tL2ljb24tdXJsLXByb3BlcnR5Lmh0bWwKaW5kZXggOGE2YjljMjM4ODUwNmUw
ZTI4NDJkMzdlYzA3MTA4NTViZjRmYjlmNS4uMmQxYzAxMjE1NzFhOTdiZjE1NDNkNDE2NTQ2Zjc2
OGU3NTE2MWVkMyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vaWNvbi11cmwtcHJv
cGVydHkuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9pY29uLXVybC1wcm9wZXJ0eS5o
dG1sCkBAIC00Myw3ICs0Myw3IEBAIGZ1bmN0aW9uIHJ1blRlc3RzKCkgewogCiAgICAgLy8gY2hl
Y2sgdGhhdCB0aGUgVVJMIGxpc3QgaW4gdGhlIGRvY3VtZW50IGlzIGFzIHdlIGV4cGVjdAogICAg
IHZhciBleHBlY3RlZFVSTHMgPSAiaHR0cDovL3Rlc3QuY29tL25ld2Zhdmljb24uaWNvIjsKLSAg
ICB2YXIgaWNvblVSTHMgPSB3aW5kb3cuaW50ZXJuYWxzLmljb25VUkxzKGRvY3VtZW50KTsKKyAg
ICB2YXIgaWNvblVSTHMgPSB3aW5kb3cuaW50ZXJuYWxzLnNob3J0Y3V0SWNvblVSTHMoZG9jdW1l
bnQpOwogICAgIGlmIChleHBlY3RlZFVSTHMgPT0gaWNvblVSTHNbMF0pCiAgICAgICAgIGRlYnVn
T3V0cHV0KCdQQVNTIC0gVVJMIGxpc3QgbWF0Y2hlcyBleHBlY3RlZCcpOwogICAgIGVsc2UKZGlm
ZiAtLWdpdCBhL0NoYW5nZUxvZyBiL0NoYW5nZUxvZwppbmRleCAyNGU3ZTljZDU5NDQ4ODBiNjI5
NzNiM2E0MmM1NjU5ZjNkYzRhZTVlLi5kNzViNTZhN2VjZDcyZmYyZDcyYTFmZTQxNTcwNzZkYmNl
NTBjY2Q2IDEwMDY0NAotLS0gYS9DaGFuZ2VMb2cKKysrIGIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEs
MTIgQEAKKzIwMTMtMDItMjIgIFJ1c2xhbiBBYmRpa2VldiAgPGFydXNsYW5AY2hyb21pdW0ub3Jn
PgorCisgICAgICAgIDxsaW5rIHJlbD0iYXBwbGUtdG91Y2gtaWNvbiI+IHRhZyBpcyBub3QgaG9u
b3JlZCBvbiBDTk4uY29tLCB3b3JrZmxvd3kuY29tIGV0YworICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTA5MDYxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBTb3VyY2UvYXV0b3Rvb2xzL3N5bWJvbHMuZmls
dGVyOgorCiAyMDEzLTAyLTIxICBUb255IENoYW5nICA8dG9ueUBjaHJvbWl1bS5vcmc+CiAKICAg
ICAgICAgQXV0b2dlbmVyYXRlIFNldHRpbmdzIHRoYXQgY2FsbCBzZXROZWVkc1JlY2FsY1N0eWxl
SW5BbGxGcmFtZXMgd2hlbiBzZXQK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>190340</attachid>
            <date>2013-02-26 12:32:28 -0800</date>
            <delta_ts>2013-03-01 08:50:08 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-109061-20130226122842.patch</filename>
            <type>text/plain</type>
            <size>22979</size>
            <attacher name="Ruslan Abdikeev">aruslan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQ0MDgyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNDlkYjIxZjA4NjJhMTc3
NmU1OTYwYzRhOWQ2YzI0ZjMwYzhlMTViYy4uODk3MjljMjA2MDhmMjBlMWE3ZmZhYzM2Y2MzOTBm
YzI2ZjRiY2JjOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM2IEBACisyMDEzLTAyLTI2ICBSdXNs
YW4gQWJkaWtlZXYgIDxhcnVzbGFuQGNocm9taXVtLm9yZz4KKworICAgICAgICA8bGluayByZWw9
ImFwcGxlLXRvdWNoLWljb24iPiB0YWcgaXMgbm90IGhvbm9yZWQgb24gQ05OLmNvbSwgd29ya2Zs
b3d5LmNvbSBldGMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTEwOTA2MQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgIFRlc3Q6IGZhc3QvZG9tL2ljb24tdXJsLWxpc3QtYXBwbGUtdG91Y2guaHRtbAorCisgICAg
ICAgIEFkZGVkIGljb25UeXBlcyBwYXJhbWV0ZXIgdG8gRG9jdW1lbnQ6Omljb25VUkxzKCkuCisg
ICAgICAgIEFkZGVkIERvY3VtZW50OjpzaG9ydGN1dEljb25VUkxzKCkgd2l0aCBvcmlnaW5hbCBz
ZW1hbnRpY3Mgb2YgaWNvblVSTHMoKS4KKyAgICAgICAgRml4ZWQgSWNvbkNvbnRyb2xsZXIuY3Bw
IHRvIHByb3ZpZGUgaWNvblR5cGVzTWFzayB0byBpY29uVVJMcygpLgorICAgICAgICBSZW5hbWVk
IGljb25UeXBlcyB0byBpY29uVHlwZXNNYXNrIHRvIG1ha2UgdGhlIG1lYW5pbmcgY2xlYXJlci4K
KworICAgICAgICAqIFdlYkNvcmUuZXhwLmluOgorICAgICAgICAqIGRvbS9Eb2N1bWVudC5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudDo6c2hvcnRjdXRJY29uVVJMcyk6CisgICAgICAg
IChXZWJDb3JlKToKKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50OjppY29uVVJMcyk6CisgICAg
ICAgICogZG9tL0RvY3VtZW50Lmg6CisgICAgICAgIChEb2N1bWVudCk6CisgICAgICAgICogbG9h
ZGVyL2ljb24vSWNvbkNvbnRyb2xsZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SWNvbkNvbnRy
b2xsZXI6Omljb25VUkwpOgorICAgICAgICAoV2ViQ29yZTo6SWNvbkNvbnRyb2xsZXI6OnVybHNG
b3JUeXBlcyk6CisgICAgICAgICogdGVzdGluZy9JbnRlcm5hbHMuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6SW50ZXJuYWxzOjppY29uVVJMcyk6CisgICAgICAgIChXZWJDb3JlOjpJbnRlcm5hbHM6
OnNob3J0Y3V0SWNvblVSTHMpOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChXZWJDb3Jl
OjpJbnRlcm5hbHM6OmFsbEljb25VUkxzKToKKyAgICAgICAgKFdlYkNvcmU6OkludGVybmFsczo6
aXNUb3VjaEljb25zTG9hZGluZ1N1cHBvcnRlZCk6CisgICAgICAgICogdGVzdGluZy9JbnRlcm5h
bHMuaDoKKyAgICAgICAgKiB0ZXN0aW5nL0ludGVybmFscy5pZGw6CisKIDIwMTMtMDItMjYgIEFs
bGFuIFNhbmRmZWxkIEplbnNlbiAgPGFsbGFuLmplbnNlbkBkaWdpYS5jb20+CiAKICAgICAgICAg
W1RleE1hcF0gSWdub3JlIGxheWVyIHJlcGFpbnQgcmVxdWVzdCB3aGVuIGRyYXdzQ29udGVudCBp
cyBmYWxzZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5leHAuaW4gYi9Tb3Vy
Y2UvV2ViQ29yZS9XZWJDb3JlLmV4cC5pbgppbmRleCBjM2U3YTkyMTQ0ZmM1MWM0MDI2MWZjMzU1
MjFiNGMyZTQyNzIzYzBkLi5iYzQ3MGI0MmFjMzY4NDQxYWM1YjQ5NWUxMzlkNjBiMDU5ZGM5YTAx
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmV4cC5pbgorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9XZWJDb3JlLmV4cC5pbgpAQCAtOTc3LDcgKzk3Nyw4IEBAIF9fWk43V2ViQ29yZThE
b2N1bWVudDM2dXBkYXRlTGF5b3V0SWdub3JlUGVuZGluZ1N0eWxlc2hlZXRzRXYKIF9fWk43V2Vi
Q29yZThEb2N1bWVudDRoZWFkRXYKIF9fWk43V2ViQ29yZThGb3JtRGF0YTI4cmVtb3ZlR2VuZXJh
dGVkRmlsZXNJZk5lZWRlZEV2CiBfX1pON1dlYkNvcmU4Rm9ybURhdGE2ZGVjb2RlRVJOM1dURjdE
ZWNvZGVyRQotX19aTjdXZWJDb3JlOERvY3VtZW50OGljb25VUkxzRXYKK19fWk43V2ViQ29yZThE
b2N1bWVudDhpY29uVVJMc0VpCitfX1pON1dlYkNvcmU4RG9jdW1lbnQxNnNob3J0Y3V0SWNvblVS
THNFdgogX19aTjdXZWJDb3JlOEZvcm1EYXRhNmNyZWF0ZUVQS3ZtCiBfX1pON1dlYkNvcmU4Rm9y
bURhdGFEMUV2CiBfX1pON1dlYkNvcmU4R3JhZGllbnQxMmFkZENvbG9yU3RvcEVmUktOU181Q29s
b3JFCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwIGIvU291cmNl
L1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcAppbmRleCAyYzVkZjY3MzJhNWMzMGRkYzkyMTZlMjlj
ZTFhMDFjMDRkY2ZmYTFlLi4yMWM2ZDY1ZGIwNTQ4NWFkYmY4NjkxZjU4NjZjZTRiMGY3NWI4ODZm
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKQEAgLTQ0OTQsMTQgKzQ0OTQsMTkgQEAgUGFzc1Jl
ZlB0cjxYUGF0aFJlc3VsdD4gRG9jdW1lbnQ6OmV2YWx1YXRlKGNvbnN0IFN0cmluZyYgZXhwcmVz
c2lvbiwKICAgICByZXR1cm4gbV94cGF0aEV2YWx1YXRvci0+ZXZhbHVhdGUoZXhwcmVzc2lvbiwg
Y29udGV4dE5vZGUsIHJlc29sdmVyLCB0eXBlLCByZXN1bHQsIGVjKTsKIH0KIAotY29uc3QgVmVj
dG9yPEljb25VUkw+JiBEb2N1bWVudDo6aWNvblVSTHMoKQorY29uc3QgVmVjdG9yPEljb25VUkw+
JiBEb2N1bWVudDo6c2hvcnRjdXRJY29uVVJMcygpCit7CisgICAgLy8gSW5jbHVkZSBhbnkgaWNv
bnMgd2hlcmUgdHlwZSA9IGxpbmssIHJlbCA9ICJzaG9ydGN1dCBpY29uIi4KKyAgICByZXR1cm4g
aWNvblVSTHMoRmF2aWNvbik7Cit9CisKK2NvbnN0IFZlY3RvcjxJY29uVVJMPiYgRG9jdW1lbnQ6
Omljb25VUkxzKGludCBpY29uVHlwZXNNYXNrKQogewogICAgIG1faWNvblVSTHMuY2xlYXIoKTsK
IAogICAgIGlmICghaGVhZCgpIHx8ICEoaGVhZCgpLT5jaGlsZHJlbigpKSkKICAgICAgICAgcmV0
dXJuIG1faWNvblVSTHM7CiAKLSAgICAvLyBJbmNsdWRlIGFueSBpY29ucyB3aGVyZSB0eXBlID0g
bGluaywgcmVsID0gInNob3J0Y3V0IGljb24iLgogICAgIFJlZlB0cjxIVE1MQ29sbGVjdGlvbj4g
Y2hpbGRyZW4gPSBoZWFkKCktPmNoaWxkcmVuKCk7CiAgICAgdW5zaWduZWQgaW50IGxlbmd0aCA9
IGNoaWxkcmVuLT5sZW5ndGgoKTsKICAgICBmb3IgKHVuc2lnbmVkIGludCBpID0gMDsgaSA8IGxl
bmd0aDsgKytpKSB7CkBAIC00NTA5LDcgKzQ1MTQsNyBAQCBjb25zdCBWZWN0b3I8SWNvblVSTD4m
IERvY3VtZW50OjppY29uVVJMcygpCiAgICAgICAgIGlmICghY2hpbGQtPmhhc1RhZ05hbWUobGlu
a1RhZykpCiAgICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgSFRNTExpbmtFbGVtZW50KiBs
aW5rRWxlbWVudCA9IHN0YXRpY19jYXN0PEhUTUxMaW5rRWxlbWVudCo+KGNoaWxkKTsKLSAgICAg
ICAgaWYgKGxpbmtFbGVtZW50LT5pY29uVHlwZSgpICE9IEZhdmljb24pCisgICAgICAgIGlmICgh
KGxpbmtFbGVtZW50LT5pY29uVHlwZSgpICYgaWNvblR5cGVzTWFzaykpCiAgICAgICAgICAgICBj
b250aW51ZTsKICAgICAgICAgaWYgKGxpbmtFbGVtZW50LT5ocmVmKCkuaXNFbXB0eSgpKQogICAg
ICAgICAgICAgY29udGludWU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1l
bnQuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oCmluZGV4IGQ4Yjk4NjMyOTY5YjE5
YmUwOGExYjQ3ZDZhZjk0M2JkNDA3YjQ4ZDguLjA2MzYzZDNhNTRlYjI2OTIxZGMwYmExMDQ5MzY0
ZWQzOGI4Y2ZjNTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oCkBAIC05NDMsNyArOTQzLDggQEAgcHVi
bGljOgogICAgIGJvb2wgaGFzTm9kZXNXaXRoUGxhY2Vob2xkZXJTdHlsZSgpIGNvbnN0IHsgcmV0
dXJuIG1faGFzTm9kZXNXaXRoUGxhY2Vob2xkZXJTdHlsZTsgfQogICAgIHZvaWQgc2V0SGFzTm9k
ZXNXaXRoUGxhY2Vob2xkZXJTdHlsZSgpIHsgbV9oYXNOb2Rlc1dpdGhQbGFjZWhvbGRlclN0eWxl
ID0gdHJ1ZTsgfQogCi0gICAgY29uc3QgVmVjdG9yPEljb25VUkw+JiBpY29uVVJMcygpOworICAg
IGNvbnN0IFZlY3RvcjxJY29uVVJMPiYgc2hvcnRjdXRJY29uVVJMcygpOworICAgIGNvbnN0IFZl
Y3RvcjxJY29uVVJMPiYgaWNvblVSTHMoaW50IGljb25UeXBlc01hc2spOwogICAgIHZvaWQgYWRk
SWNvblVSTChjb25zdCBTdHJpbmcmIHVybCwgY29uc3QgU3RyaW5nJiBtaW1lVHlwZSwgY29uc3Qg
U3RyaW5nJiBzaXplLCBJY29uVHlwZSk7CiAKICAgICB2b2lkIHNldFVzZVNlY3VyZUtleWJvYXJk
RW50cnlXaGVuQWN0aXZlKGJvb2wpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVy
L2ljb24vSWNvbkNvbnRyb2xsZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2ljb24vSWNv
bkNvbnRyb2xsZXIuY3BwCmluZGV4IDc0ZmFhOTU5Y2FiZTM0NDgxYTBmNTc5ZjdlNTI0MDgyMmUw
MTM4MDQuLmIyNTdmYTBiZWU1NzExY2ZkYTJkMmQ5ZjE3MGNmNDg5MDg2MDVmOWIgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9pY29uL0ljb25Db250cm9sbGVyLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9sb2FkZXIvaWNvbi9JY29uQ29udHJvbGxlci5jcHAKQEAgLTY4LDMzICs2
OCwzMSBAQCBLVVJMIEljb25Db250cm9sbGVyOjp1cmwoKQogSWNvblVSTCBJY29uQ29udHJvbGxl
cjo6aWNvblVSTChJY29uVHlwZSBpY29uVHlwZSkgY29uc3QKIHsKICAgICBJY29uVVJMIHJlc3Vs
dDsKLSAgICBjb25zdCBWZWN0b3I8SWNvblVSTD4mIGljb25VUkxzID0gbV9mcmFtZS0+ZG9jdW1l
bnQoKS0+aWNvblVSTHMoKTsKKyAgICBjb25zdCBWZWN0b3I8SWNvblVSTD4mIGljb25VUkxzID0g
bV9mcmFtZS0+ZG9jdW1lbnQoKS0+aWNvblVSTHMoaWNvblR5cGUpOwogICAgIFZlY3RvcjxJY29u
VVJMPjo6Y29uc3RfaXRlcmF0b3IgaXRlcihpY29uVVJMcy5iZWdpbigpKTsKICAgICBmb3IgKDsg
aXRlciAhPSBpY29uVVJMcy5lbmQoKTsgKytpdGVyKSB7Ci0gICAgICAgIGlmIChpdGVyLT5tX2lj
b25UeXBlID09IGljb25UeXBlKSB7Ci0gICAgICAgICAgICBpZiAocmVzdWx0Lm1faWNvblVSTC5p
c0VtcHR5KCkgfHwgIWl0ZXItPm1fbWltZVR5cGUuaXNFbXB0eSgpKQotICAgICAgICAgICAgICAg
IHJlc3VsdCA9ICppdGVyOwotICAgICAgICB9CisgICAgICAgIGlmIChyZXN1bHQubV9pY29uVVJM
LmlzRW1wdHkoKSB8fCAhaXRlci0+bV9taW1lVHlwZS5pc0VtcHR5KCkpCisgICAgICAgICAgICBy
ZXN1bHQgPSAqaXRlcjsKICAgICB9CiAKICAgICByZXR1cm4gcmVzdWx0OwogfQogCi1JY29uVVJM
cyBJY29uQ29udHJvbGxlcjo6dXJsc0ZvclR5cGVzKGludCBpY29uVHlwZXMpCitJY29uVVJMcyBJ
Y29uQ29udHJvbGxlcjo6dXJsc0ZvclR5cGVzKGludCBpY29uVHlwZXNNYXNrKQogewogICAgIElj
b25VUkxzIGljb25VUkxzOwogICAgIGlmIChtX2ZyYW1lLT50cmVlKCkgJiYgbV9mcmFtZS0+dHJl
ZSgpLT5wYXJlbnQoKSkKICAgICAgICAgcmV0dXJuIGljb25VUkxzOwogICAgICAgICAKLSAgICBp
ZiAoaWNvblR5cGVzICYgRmF2aWNvbiAmJiAhYXBwZW5kVG9JY29uVVJMcyhGYXZpY29uLCAmaWNv
blVSTHMpKQorICAgIGlmIChpY29uVHlwZXNNYXNrICYgRmF2aWNvbiAmJiAhYXBwZW5kVG9JY29u
VVJMcyhGYXZpY29uLCAmaWNvblVSTHMpKQogICAgICAgICBpY29uVVJMcy5hcHBlbmQoZGVmYXVs
dFVSTChGYXZpY29uKSk7CiAKICNpZiBFTkFCTEUoVE9VQ0hfSUNPTl9MT0FESU5HKQogICAgIGlu
dCBtaXNzZWRJY29ucyA9IDA7Ci0gICAgaWYgKGljb25UeXBlcyAmIFRvdWNoUHJlY29tcG9zZWRJ
Y29uKQorICAgIGlmIChpY29uVHlwZXNNYXNrICYgVG91Y2hQcmVjb21wb3NlZEljb24pCiAgICAg
ICAgIG1pc3NlZEljb25zICs9IGFwcGVuZFRvSWNvblVSTHMoVG91Y2hQcmVjb21wb3NlZEljb24s
ICZpY29uVVJMcykgPyAwOjE7CiAKLSAgICBpZiAoaWNvblR5cGVzICYgVG91Y2hJY29uKQorICAg
IGlmIChpY29uVHlwZXNNYXNrICYgVG91Y2hJY29uKQogICAgICAgbWlzc2VkSWNvbnMgKz0gYXBw
ZW5kVG9JY29uVVJMcyhUb3VjaEljb24sICZpY29uVVJMcykgPyAwOjE7CiAKICAgICAvLyBPbmx5
IHJldHVybiB0aGUgZGVmYXVsdCB0b3VjaCBpY29ucyB3aGVuIHRoZSBib3RoIHdlcmUgcmVxdWly
ZWQgYW5kIG5laXRoZXIgd2FzIGdvdHRlbi4KQEAgLTEwNSwxMSArMTAzLDggQEAgSWNvblVSTHMg
SWNvbkNvbnRyb2xsZXI6OnVybHNGb3JUeXBlcyhpbnQgaWNvblR5cGVzKQogI2VuZGlmCiAKICAg
ICAvLyBGaW5hbGx5LCBhcHBlbmQgYWxsIHJlbWFpbmluZyBpY29ucyBvZiB0aGlzIHR5cGUuCi0g
ICAgY29uc3QgVmVjdG9yPEljb25VUkw+JiBhbGxJY29uVVJMcyA9IG1fZnJhbWUtPmRvY3VtZW50
KCktPmljb25VUkxzKCk7CisgICAgY29uc3QgVmVjdG9yPEljb25VUkw+JiBhbGxJY29uVVJMcyA9
IG1fZnJhbWUtPmRvY3VtZW50KCktPmljb25VUkxzKGljb25UeXBlc01hc2spOwogICAgIGZvciAo
VmVjdG9yPEljb25VUkw+Ojpjb25zdF9pdGVyYXRvciBpdGVyID0gYWxsSWNvblVSTHMuYmVnaW4o
KTsgaXRlciAhPSBhbGxJY29uVVJMcy5lbmQoKTsgKytpdGVyKSB7Ci0gICAgICAgIGlmICghKGl0
ZXItPm1faWNvblR5cGUgJiBpY29uVHlwZXMpKQotICAgICAgICAgICAgY29udGludWU7Ci0KICAg
ICAgICAgaW50IGk7CiAgICAgICAgIGludCBpY29uQ291bnQgPSBpY29uVVJMcy5zaXplKCk7CiAg
ICAgICAgIGZvciAoaSA9IDA7IGkgPCBpY29uQ291bnQ7ICsraSkgewpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvbG9hZGVyL2ljb24vSWNvbkNvbnRyb2xsZXIuaCBiL1NvdXJjZS9XZWJDb3Jl
L2xvYWRlci9pY29uL0ljb25Db250cm9sbGVyLmgKaW5kZXggYjJjYWJhMmEwYTk1ZDNlZDBhZDEw
YjMzYjBlZGEyZDgxZjYxZGMxNi4uNjFkZmE3NmI2YzRmZmNiZmY3NmQ1NmI5NjQzYjVjNDg3NTcw
NjY1OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2ljb24vSWNvbkNvbnRyb2xs
ZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvaWNvbi9JY29uQ29udHJvbGxlci5oCkBA
IC00OCw3ICs0OCw3IEBAIHB1YmxpYzoKICAgICB+SWNvbkNvbnRyb2xsZXIoKTsKIAogICAgIEtV
UkwgdXJsKCk7Ci0gICAgSWNvblVSTHMgdXJsc0ZvclR5cGVzKGludCBpY29uVHlwZXMpOworICAg
IEljb25VUkxzIHVybHNGb3JUeXBlcyhpbnQgaWNvblR5cGVzTWFzayk7CiAgICAgSWNvblVSTCBp
Y29uVVJMKEljb25UeXBlKSBjb25zdDsKIAogICAgIHZvaWQgc3RhcnRMb2FkZXIoKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmNwcAppbmRleCBjZjU2ZjMxZmNhZWM4ZGE3YmRiOWIzOTFh
MzBhNzAzOTUwMDUzMWIwLi4zNWM1OGNiYTBiNTc3MTYyZDAwMjk5MTEyNDBmYWEwZGQzMzMzNjJj
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuY3BwCkBAIC0xNzU0LDkgKzE3NTQsOSBA
QCBpbnQgSW50ZXJuYWxzOjpwYWdlTnVtYmVyKEVsZW1lbnQqIGVsZW1lbnQsIGZsb2F0IHBhZ2VX
aWR0aCwgZmxvYXQgcGFnZUhlaWdodCkKICAgICByZXR1cm4gUHJpbnRDb250ZXh0OjpwYWdlTnVt
YmVyRm9yRWxlbWVudChlbGVtZW50LCBGbG9hdFNpemUocGFnZVdpZHRoLCBwYWdlSGVpZ2h0KSk7
CiB9CiAKLVZlY3RvcjxTdHJpbmc+IEludGVybmFsczo6aWNvblVSTHMoRG9jdW1lbnQqIGRvY3Vt
ZW50KSBjb25zdAorVmVjdG9yPFN0cmluZz4gSW50ZXJuYWxzOjppY29uVVJMcyhEb2N1bWVudCog
ZG9jdW1lbnQsIGludCBpY29uVHlwZXNNYXNrKSBjb25zdAogewotICAgIFZlY3RvcjxJY29uVVJM
PiBpY29uVVJMcyA9IGRvY3VtZW50LT5pY29uVVJMcygpOworICAgIFZlY3RvcjxJY29uVVJMPiBp
Y29uVVJMcyA9IGRvY3VtZW50LT5pY29uVVJMcyhpY29uVHlwZXNNYXNrKTsKICAgICBWZWN0b3I8
U3RyaW5nPiBhcnJheTsKIAogICAgIFZlY3RvcjxJY29uVVJMPjo6Y29uc3RfaXRlcmF0b3IgaXRl
cihpY29uVVJMcy5iZWdpbigpKTsKQEAgLTE3NjYsNiArMTc2NiwyNSBAQCBWZWN0b3I8U3RyaW5n
PiBJbnRlcm5hbHM6Omljb25VUkxzKERvY3VtZW50KiBkb2N1bWVudCkgY29uc3QKICAgICByZXR1
cm4gYXJyYXk7CiB9CiAKK1ZlY3RvcjxTdHJpbmc+IEludGVybmFsczo6c2hvcnRjdXRJY29uVVJM
cyhEb2N1bWVudCogZG9jdW1lbnQpIGNvbnN0Cit7CisgICAgcmV0dXJuIGljb25VUkxzKGRvY3Vt
ZW50LCBGYXZpY29uKTsKK30KKworVmVjdG9yPFN0cmluZz4gSW50ZXJuYWxzOjphbGxJY29uVVJM
cyhEb2N1bWVudCogZG9jdW1lbnQpIGNvbnN0Cit7CisgICAgcmV0dXJuIGljb25VUkxzKGRvY3Vt
ZW50LCBGYXZpY29uIHwgVG91Y2hJY29uIHwgVG91Y2hQcmVjb21wb3NlZEljb24pOworfQorCiti
b29sIEludGVybmFsczo6aXNUb3VjaEljb25zTG9hZGluZ1N1cHBvcnRlZCgpIGNvbnN0Cit7Cisj
aWYgRU5BQkxFKFRPVUNIX0lDT05fTE9BRElORykKKyAgICByZXR1cm4gdHJ1ZTsKKyNlbHNlCisg
ICAgcmV0dXJuIGZhbHNlOworI2VuZGlmCit9CisKIGludCBJbnRlcm5hbHM6Om51bWJlck9mUGFn
ZXMoZmxvYXQgcGFnZVdpZHRoLCBmbG9hdCBwYWdlSGVpZ2h0KQogewogICAgIGlmICghZnJhbWUo
KSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmggYi9Tb3Vy
Y2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5oCmluZGV4IGNjM2JhZTY2YWRmZTZmNTZjMTBl
YzRiNDdlOTNkMjY5MmU1M2FhZDUuLmIyOWQ1YzNmMmNlMzIxNmZlMWMwM2RhYTNjNjNjMmZiMzkz
MjhlNGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmgKKysr
IGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaApAQCAtMjQ5LDcgKzI0OSw5IEBA
IHB1YmxpYzoKICAgICBTdHJpbmcgY291bnRlclZhbHVlKEVsZW1lbnQqKTsKIAogICAgIGludCBw
YWdlTnVtYmVyKEVsZW1lbnQqLCBmbG9hdCBwYWdlV2lkdGggPSA4MDAsIGZsb2F0IHBhZ2VIZWln
aHQgPSA2MDApOwotICAgIFZlY3RvcjxTdHJpbmc+IGljb25VUkxzKERvY3VtZW50KikgY29uc3Q7
CisgICAgVmVjdG9yPFN0cmluZz4gc2hvcnRjdXRJY29uVVJMcyhEb2N1bWVudCopIGNvbnN0Owor
ICAgIFZlY3RvcjxTdHJpbmc+IGFsbEljb25VUkxzKERvY3VtZW50KikgY29uc3Q7CisgICAgYm9v
bCBpc1RvdWNoSWNvbnNMb2FkaW5nU3VwcG9ydGVkKCkgY29uc3Q7CiAKICAgICBpbnQgbnVtYmVy
T2ZQYWdlcyhmbG9hdCBwYWdlV2lkdGhJblBpeGVscyA9IDgwMCwgZmxvYXQgcGFnZUhlaWdodElu
UGl4ZWxzID0gNjAwKTsKICAgICBTdHJpbmcgcGFnZVByb3BlcnR5KFN0cmluZywgaW50LCBFeGNl
cHRpb25Db2RlJiA9IEFTU0VSVF9OT19FWENFUFRJT04pIGNvbnN0OwpAQCAtMjk0LDYgKzI5Niw3
IEBAIHByaXZhdGU6CiAgICAgZXhwbGljaXQgSW50ZXJuYWxzKERvY3VtZW50Kik7CiAgICAgRG9j
dW1lbnQqIGNvbnRleHREb2N1bWVudCgpIGNvbnN0OwogICAgIEZyYW1lKiBmcmFtZSgpIGNvbnN0
OworICAgIFZlY3RvcjxTdHJpbmc+IGljb25VUkxzKERvY3VtZW50KiwgaW50IGljb25UeXBlc01h
c2spIGNvbnN0OwogCiAgICAgRG9jdW1lbnRNYXJrZXIqIG1hcmtlckF0KE5vZGUqLCBjb25zdCBT
dHJpbmcmIG1hcmtlclR5cGUsIHVuc2lnbmVkIGluZGV4LCBFeGNlcHRpb25Db2RlJik7CiAjaWYg
RU5BQkxFKElOU1BFQ1RPUikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50
ZXJuYWxzLmlkbCBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmlkbAppbmRleCBm
YjA2MDA5OGE5ZmIzYTlmOTIxZjk2NWUzYWFiMzM1ZmU3NDIzNTIxLi5kOTFiODEzNWJmOWEyOWI4
MWJjNmM4MzAyMjUzZjBkYWI4ZDFmMDhlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS90ZXN0
aW5nL0ludGVybmFscy5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMu
aWRsCkBAIC0yMTYsNyArMjE2LDkgQEAKIAogICAgIERPTVN0cmluZyBjb3VudGVyVmFsdWUoaW4g
RWxlbWVudCBlbGVtZW50KTsKICAgICBsb25nIHBhZ2VOdW1iZXIoaW4gRWxlbWVudCBlbGVtZW50
LCBpbiBbT3B0aW9uYWxdIGZsb2F0IHBhZ2VXaWR0aCwgaW4gW09wdGlvbmFsXSBmbG9hdCBwYWdl
SGVpZ2h0KTsKLSAgICBET01TdHJpbmdbXSBpY29uVVJMcyhpbiBEb2N1bWVudCBkb2N1bWVudCk7
CisgICAgRE9NU3RyaW5nW10gc2hvcnRjdXRJY29uVVJMcyhpbiBEb2N1bWVudCBkb2N1bWVudCk7
CisgICAgRE9NU3RyaW5nW10gYWxsSWNvblVSTHMoaW4gRG9jdW1lbnQgZG9jdW1lbnQpOworICAg
IGJvb2xlYW4gaXNUb3VjaEljb25zTG9hZGluZ1N1cHBvcnRlZCgpOwogICAgIGxvbmcgbnVtYmVy
T2ZQYWdlcyhpbiBbT3B0aW9uYWxdIGRvdWJsZSBwYWdlV2lkdGhJblBpeGVscywgaW4gW09wdGlv
bmFsXSBkb3VibGUgcGFnZUhlaWdodEluUGl4ZWxzKTsKICAgICBET01TdHJpbmcgcGFnZVByb3Bl
cnR5KGluIERPTVN0cmluZyBwcm9wZXJ0eU5hbWUsIGluIGxvbmcgcGFnZU51bWJlcikgcmFpc2Vz
IChET01FeGNlcHRpb24pOwogICAgIERPTVN0cmluZyBwYWdlU2l6ZUFuZE1hcmdpbnNJblBpeGVs
cyhpbiBsb25nIHBhZ2VJbmRleCwgaW4gbG9uZyB3aWR0aCwgaW4gbG9uZyBoZWlnaHQsIGluIGxv
bmcgbWFyZ2luVG9wLCBpbiBsb25nIG1hcmdpblJpZ2h0LCBpbiBsb25nIG1hcmdpbkJvdHRvbSwg
aW4gbG9uZyBtYXJnaW5MZWZ0KSByYWlzZXMgKERPTUV4Y2VwdGlvbik7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1dlYktpdC52Y3hwcm9qL1dlYktpdEV4cG9ydEdlbmVyYXRvci9XZWJLaXRF
eHBvcnRzLmRlZi5pbiBiL1NvdXJjZS9XZWJLaXQvV2ViS2l0LnZjeHByb2ovV2ViS2l0RXhwb3J0
R2VuZXJhdG9yL1dlYktpdEV4cG9ydHMuZGVmLmluCmluZGV4IDQzN2U3N2M5MmQxNmM5N2FmNDZl
YjI1N2M4MDJlYTViYjZiZWI5NGUuLjE0NmEwYzBiNzJiYTg3OWYyMDllNjY4NzY4ZWU0MjNlZWY0
ZDI5NTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViS2l0LnZjeHByb2ovV2ViS2l0RXhw
b3J0R2VuZXJhdG9yL1dlYktpdEV4cG9ydHMuZGVmLmluCisrKyBiL1NvdXJjZS9XZWJLaXQvV2Vi
S2l0LnZjeHByb2ovV2ViS2l0RXhwb3J0R2VuZXJhdG9yL1dlYktpdEV4cG9ydHMuZGVmLmluCkBA
IC0zMjUsNyArMzI1LDggQEAgRVhQT1JUUwogICAgICAgICA/c2V0QWxsb3dzUm91bmRpbmdIYWNr
c0BUZXh0UnVuQFdlYkNvcmVAQFNBWF9OQFoKICAgICAgICAgP3JlZ2lzdGVyVVJMU2NoZW1lQXNC
eXBhc3NpbmdDb250ZW50U2VjdXJpdHlQb2xpY3lAU2NoZW1lUmVnaXN0cnlAV2ViQ29yZUBAU0FY
QUJWU3RyaW5nQFdURkBAQFoKICAgICAgICAgP3JlbW92ZVVSTFNjaGVtZVJlZ2lzdGVyZWRBc0J5
cGFzc2luZ0NvbnRlbnRTZWN1cml0eVBvbGljeUBTY2hlbWVSZWdpc3RyeUBXZWJDb3JlQEBTQVhB
QlZTdHJpbmdAV1RGQEBAWgotICAgICAgICA/aWNvblVSTHNARG9jdW1lbnRAV2ViQ29yZUBAUUFF
QUJWPyRWZWN0b3JAVUljb25VUkxAV2ViQ29yZUBAJDBBQEBXVEZAQFhaCisgICAgICAgID9zaG9y
dGN1dEljb25VUkxzQERvY3VtZW50QFdlYkNvcmVAQFFBRUFCVj8kVmVjdG9yQFVJY29uVVJMQFdl
YkNvcmVAQCQwQUBAV1RGQEBYWgorICAgICAgICA/aWNvblVSTHNARG9jdW1lbnRAV2ViQ29yZUBA
UUFFQUJWPyRWZWN0b3JAVUljb25VUkxAV2ViQ29yZUBAJDBBQEBXVEZAQEhAWgogICAgICAgICA/
bnVtYmVyT2ZQYWdlc0BQcmludENvbnRleHRAV2ViQ29yZUBAU0FIUEFWRnJhbWVAMkBBQlZGbG9h
dFNpemVAMkBAWgogICAgICAgICA/cGFnZVByb3BlcnR5QFByaW50Q29udGV4dEBXZWJDb3JlQEBT
QT9BVlN0cmluZ0BXVEZAQFBBVkZyYW1lQDJAUEJESEBaCiAgICAgICAgID9wYWdlU2l6ZUFuZE1h
cmdpbnNJblBpeGVsc0BQcmludENvbnRleHRAV2ViQ29yZUBAU0E/QVZTdHJpbmdAV1RGQEBQQVZG
cmFtZUAyQEhISEhISEhAWgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJs
aWMvV2ViRnJhbWUuaCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYkZyYW1lLmgK
aW5kZXggODEyYWQ2ZWE1NjYyNjUzODJlYWY3N2JhYTExOWExOTdmZjhlZWRkMS4uZTc0ZWZlYjc4
YjcyNDUwOTFiMjg0YWYxMDZkMjViYTM1MTgzMGViOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9jaHJvbWl1bS9wdWJsaWMvV2ViRnJhbWUuaAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVt
L3B1YmxpYy9XZWJGcmFtZS5oCkBAIC0xMzAsMTAgKzEzMCwxMCBAQCBwdWJsaWM6CiAgICAgdmly
dHVhbCBsb25nIGxvbmcgaWRlbnRpZmllcigpIGNvbnN0ID0gMDsKIAogICAgIC8vIFRoZSB1cmxz
IG9mIHRoZSBnaXZlbiBjb21iaW5hdGlvbiB0eXBlcyBvZiBmYXZpY29uIChpZiBhbnkpIHNwZWNp
ZmllZCBieQotICAgIC8vIHRoZSBkb2N1bWVudCBsb2FkZWQgaW4gdGhpcyBmcmFtZS4gVGhlIGlj
b25UeXBlcyBpcyBhIGJpdC1tYXNrIG9mCisgICAgLy8gdGhlIGRvY3VtZW50IGxvYWRlZCBpbiB0
aGlzIGZyYW1lLiBUaGUgaWNvblR5cGVzTWFzayBpcyBhIGJpdC1tYXNrIG9mCiAgICAgLy8gV2Vi
SWNvblVSTDo6VHlwZSB2YWx1ZXMsIHVzZWQgdG8gc2VsZWN0IGZyb20gdGhlIGF2YWlsYWJsZSBz
ZXQgb2YgaWNvbgogICAgIC8vIFVSTHMKLSAgICB2aXJ0dWFsIFdlYlZlY3RvcjxXZWJJY29uVVJM
PiBpY29uVVJMcyhpbnQgaWNvblR5cGVzKSBjb25zdCA9IDA7CisgICAgdmlydHVhbCBXZWJWZWN0
b3I8V2ViSWNvblVSTD4gaWNvblVSTHMoaW50IGljb25UeXBlc01hc2spIGNvbnN0ID0gMDsKIAog
CiAgICAgLy8gR2VvbWV0cnkgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0v
c3JjL1dlYkZyYW1lSW1wbC5jcHAgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJGcmFt
ZUltcGwuY3BwCmluZGV4IDNjZGY1MDMxYTVlYmVkZmZhOWJmN2VlODQ5NzlkYjlmNzgxNjIwZWQu
LmRhNTllYWFiY2FkOGQ0NDY4YjI5YzZlN2FmZmZiMmEwNDEyOTcyOWYgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYkZyYW1lSW1wbC5jcHAKKysrIGIvU291cmNlL1dl
YktpdC9jaHJvbWl1bS9zcmMvV2ViRnJhbWVJbXBsLmNwcApAQCAtNTc0LDEyICs1NzQsMTIgQEAg
bG9uZyBsb25nIFdlYkZyYW1lSW1wbDo6aWRlbnRpZmllcigpIGNvbnN0CiAgICAgcmV0dXJuIG1f
aWRlbnRpZmllcjsKIH0KIAotV2ViVmVjdG9yPFdlYkljb25VUkw+IFdlYkZyYW1lSW1wbDo6aWNv
blVSTHMoaW50IGljb25UeXBlcykgY29uc3QKK1dlYlZlY3RvcjxXZWJJY29uVVJMPiBXZWJGcmFt
ZUltcGw6Omljb25VUkxzKGludCBpY29uVHlwZXNNYXNrKSBjb25zdAogewogICAgIC8vIFRoZSBV
UkwgdG8gdGhlIGljb24gbWF5IGJlIGluIHRoZSBoZWFkZXIuIEFzIHN1Y2gsIG9ubHkKICAgICAv
LyBhc2sgdGhlIGxvYWRlciBmb3IgdGhlIGljb24gaWYgaXQncyBmaW5pc2hlZCBsb2FkaW5nLgog
ICAgIGlmIChmcmFtZSgpLT5sb2FkZXIoKS0+c3RhdGUoKSA9PSBGcmFtZVN0YXRlQ29tcGxldGUp
Ci0gICAgICAgIHJldHVybiBmcmFtZSgpLT5sb2FkZXIoKS0+aWNvbigpLT51cmxzRm9yVHlwZXMo
aWNvblR5cGVzKTsKKyAgICAgICAgcmV0dXJuIGZyYW1lKCktPmxvYWRlcigpLT5pY29uKCktPnVy
bHNGb3JUeXBlcyhpY29uVHlwZXNNYXNrKTsKICAgICByZXR1cm4gV2ViVmVjdG9yPFdlYkljb25V
Ukw+KCk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYkZy
YW1lSW1wbC5oIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViRnJhbWVJbXBsLmgKaW5k
ZXggMGNlOThmYjVjMGVjMDhiMzJjMGJjYzU2NWQwZDY5YzJkZmEyZTJhNC4uMzQ5NGJhZTJkNTc3
MDI1MGI4ZWY0YzMwMmZhZDlkOTZmZmY3ZTNlZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9j
aHJvbWl1bS9zcmMvV2ViRnJhbWVJbXBsLmgKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9z
cmMvV2ViRnJhbWVJbXBsLmgKQEAgLTc3LDcgKzc3LDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwg
V2ViU3RyaW5nIGFzc2lnbmVkTmFtZSgpIGNvbnN0OwogICAgIHZpcnR1YWwgdm9pZCBzZXROYW1l
KGNvbnN0IFdlYlN0cmluZyYpOwogICAgIHZpcnR1YWwgbG9uZyBsb25nIGlkZW50aWZpZXIoKSBj
b25zdDsKLSAgICB2aXJ0dWFsIFdlYlZlY3RvcjxXZWJJY29uVVJMPiBpY29uVVJMcyhpbnQgaWNv
blR5cGVzKSBjb25zdDsKKyAgICB2aXJ0dWFsIFdlYlZlY3RvcjxXZWJJY29uVVJMPiBpY29uVVJM
cyhpbnQgaWNvblR5cGVzTWFzaykgY29uc3Q7CiAgICAgdmlydHVhbCBXZWJTaXplIHNjcm9sbE9m
ZnNldCgpIGNvbnN0OwogICAgIHZpcnR1YWwgdm9pZCBzZXRTY3JvbGxPZmZzZXQoY29uc3QgV2Vi
U2l6ZSYpOwogICAgIHZpcnR1YWwgV2ViU2l6ZSBtaW5pbXVtU2Nyb2xsT2Zmc2V0KCkgY29uc3Q7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L3dpbi9XZWJLaXQudmNwcm9qL1dlYktpdEV4cG9y
dHMuZGVmLmluIGIvU291cmNlL1dlYktpdC93aW4vV2ViS2l0LnZjcHJvai9XZWJLaXRFeHBvcnRz
LmRlZi5pbgppbmRleCBmZmE1MjcxMmEwY2QyYWEyNzYzNTc3ODdjNzI3NGM0MjU2NTQ3MmM4Li5m
YjBlZWI5ZTY3ODRkYWFhMmRhM2Q5ODg5NDg3OTAyOGUwOGI5YzlkIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L3dpbi9XZWJLaXQudmNwcm9qL1dlYktpdEV4cG9ydHMuZGVmLmluCisrKyBiL1Nv
dXJjZS9XZWJLaXQvd2luL1dlYktpdC52Y3Byb2ovV2ViS2l0RXhwb3J0cy5kZWYuaW4KQEAgLTMy
NSw3ICszMjUsOCBAQCBFWFBPUlRTCiAgICAgICAgID9zZXRBbGxvd3NSb3VuZGluZ0hhY2tzQFRl
eHRSdW5AV2ViQ29yZUBAU0FYX05AWgogICAgICAgICA/cmVnaXN0ZXJVUkxTY2hlbWVBc0J5cGFz
c2luZ0NvbnRlbnRTZWN1cml0eVBvbGljeUBTY2hlbWVSZWdpc3RyeUBXZWJDb3JlQEBTQVhBQlZT
dHJpbmdAV1RGQEBAWgogICAgICAgICA/cmVtb3ZlVVJMU2NoZW1lUmVnaXN0ZXJlZEFzQnlwYXNz
aW5nQ29udGVudFNlY3VyaXR5UG9saWN5QFNjaGVtZVJlZ2lzdHJ5QFdlYkNvcmVAQFNBWEFCVlN0
cmluZ0BXVEZAQEBaCi0gICAgICAgID9pY29uVVJMc0BEb2N1bWVudEBXZWJDb3JlQEBRQUVBQlY/
JFZlY3RvckBVSWNvblVSTEBXZWJDb3JlQEAkMEFAQFdURkBAWFoKKyAgICAgICAgP3Nob3J0Y3V0
SWNvblVSTHNARG9jdW1lbnRAV2ViQ29yZUBAUUFFQUJWPyRWZWN0b3JAVUljb25VUkxAV2ViQ29y
ZUBAJDBBQEBXVEZAQFhaCisgICAgICAgID9pY29uVVJMc0BEb2N1bWVudEBXZWJDb3JlQEBRQUVB
QlY/JFZlY3RvckBVSWNvblVSTEBXZWJDb3JlQEAkMEFAQFdURkBASEBaCiAgICAgICAgID9udW1i
ZXJPZlBhZ2VzQFByaW50Q29udGV4dEBXZWJDb3JlQEBTQUhQQVZGcmFtZUAyQEFCVkZsb2F0U2l6
ZUAyQEBaCiAgICAgICAgID9wYWdlUHJvcGVydHlAUHJpbnRDb250ZXh0QFdlYkNvcmVAQFNBP0FW
U3RyaW5nQFdURkBAUEFWRnJhbWVAMkBQQkRIQFoKICAgICAgICAgP3BhZ2VTaXplQW5kTWFyZ2lu
c0luUGl4ZWxzQFByaW50Q29udGV4dEBXZWJDb3JlQEBTQT9BVlN0cmluZ0BXVEZAQFBBVkZyYW1l
QDJASEhISEhISEBaCmRpZmYgLS1naXQgYS9Tb3VyY2UvYXV0b3Rvb2xzL3N5bWJvbHMuZmlsdGVy
IGIvU291cmNlL2F1dG90b29scy9zeW1ib2xzLmZpbHRlcgppbmRleCA5ZTFjZjY1N2FiM2IwZTYw
MmNkOWNkNWFmOTM4NGZlNDAxZGFhOWUxLi5iMDNkYWQ4MjY4NGI4MjM1YjE1NzUyYmNjNGU3ZTU5
YTE3NWNkMTUxIDEwMDY0NAotLS0gYS9Tb3VyY2UvYXV0b3Rvb2xzL3N5bWJvbHMuZmlsdGVyCisr
KyBiL1NvdXJjZS9hdXRvdG9vbHMvc3ltYm9scy5maWx0ZXIKQEAgLTQxLDcgKzQxLDggQEAgX1pO
N1dlYkNvcmU0dG9KU0VQTjNKU0M5RXhlY1N0YXRlRVBOU18xN0pTRE9NR2xvYmFsT2JqZWN0RVBO
U181UmFuZ2VFOwogX1pON1dlYkNvcmU1UmFuZ2U2Y3JlYXRlRU4zV1RGMTBQYXNzUmVmUHRySU5T
XzhEb2N1bWVudEVFRU5TMl9JTlNfNE5vZGVFRUVpUzZfaTsKIF9aTjdXZWJDb3JlNVJhbmdlRDFF
djsKIF9aTjdXZWJDb3JlOERvY3VtZW50MzZ1cGRhdGVMYXlvdXRJZ25vcmVQZW5kaW5nU3R5bGVz
aGVldHNFdjsKLV9aTjdXZWJDb3JlOERvY3VtZW50OGljb25VUkxzRXY7CitfWk43V2ViQ29yZThE
b2N1bWVudDhpY29uVVJMc0VpOworX1pON1dlYkNvcmU4RG9jdW1lbnQxNnNob3J0Y3V0SWNvblVS
THNFdjsKIF9aTjdXZWJDb3JlOFNldHRpbmdzMTltaW5ET01UaW1lckludGVydmFsRXY7CiBfWk43
V2ViQ29yZThTZXR0aW5nczIyc2V0TWluRE9NVGltZXJJbnRlcnZhbEVkOwogX1pON1dlYkNvcmU5
SFRNTE5hbWVzOGlucHV0VGFnRTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBi
L0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCBhODViNmZjNGQzMjNlMjM1NTQ1MGM4NjFhNTMx
MDkwZDk3NWIzMDEzLi4xNjhjNDRkZWMxY2Y4NzI4MWY1N2M1ZWQyMDlmNjQ2MzhkY2ExYzRlIDEw
MDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdl
TG9nCkBAIC0xLDMgKzEsMTkgQEAKKzIwMTMtMDItMjYgIFJ1c2xhbiBBYmRpa2VldiAgPGFydXNs
YW5AY2hyb21pdW0ub3JnPgorCisgICAgICAgIDxsaW5rIHJlbD0iYXBwbGUtdG91Y2gtaWNvbiI+
IHRhZyBpcyBub3QgaG9ub3JlZCBvbiBDTk4uY29tLCB3b3JrZmxvd3kuY29tIGV0YworICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTA5MDYxCisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkZWQgdGVzdCBmb3Ig
YXBwbGUtdG91Y2gtaWNvbiBpbiBhbGxJY29uVVJMcygpLgorICAgICAgICBDaGFuZ2VkIGljb25V
UkxzKCkgdG8gc2hvcnRjdXRJY29uVVJMcygpLgorCisgICAgICAgICogZmFzdC9kb20vaWNvbi11
cmwtY2hhbmdlLmh0bWw6CisgICAgICAgICogZmFzdC9kb20vaWNvbi11cmwtbGlzdC1hcHBsZS10
b3VjaC1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZG9tL2ljb24tdXJsLWxp
c3QtYXBwbGUtdG91Y2guaHRtbDogQWRkZWQuCisgICAgICAgICogZmFzdC9kb20vaWNvbi11cmwt
bGlzdC5odG1sOgorICAgICAgICAqIGZhc3QvZG9tL2ljb24tdXJsLXByb3BlcnR5Lmh0bWw6CisK
IDIwMTMtMDItMjYgIFphbiBEb2JlcnNlayAgPHpkb2JlcnNla0BpZ2FsaWEuY29tPgogCiAgICAg
ICAgIFVucmV2aWV3ZWQgZ2FyZGVuaW5nLgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9k
b20vaWNvbi11cmwtY2hhbmdlLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9pY29uLXVybC1j
aGFuZ2UuaHRtbAppbmRleCA4MmQ1MzRlZWNkYTdjZDE0YWI1NTk5MzFhMjJiMjc5OTJhNmZlNWU3
Li45OTMyNzJlZGJjMmZhMmY2NjdhYzQ4OTllNjcwYzJjNTA3MGVkZDFmIDEwMDY0NAotLS0gYS9M
YXlvdXRUZXN0cy9mYXN0L2RvbS9pY29uLXVybC1jaGFuZ2UuaHRtbAorKysgYi9MYXlvdXRUZXN0
cy9mYXN0L2RvbS9pY29uLXVybC1jaGFuZ2UuaHRtbApAQCAtNDUsNyArNDUsNyBAQCBmdW5jdGlv
biBydW5UZXN0cygpIHsKIAogICAgIC8vIGNoZWNrIHRoYXQgdGhlIFVSTCBsaXN0IGluIHRoZSBk
b2N1bWVudCBpcyBhcyB3ZSBleHBlY3QKICAgICB2YXIgZXhwZWN0ZWRVUkxzID0gImh0dHA6Ly90
ZXN0LmNvbS9vbGRmYXZpY29uLmljbyI7Ci0gICAgdmFyIGljb25VUkxzID0gd2luZG93LmludGVy
bmFscy5pY29uVVJMcyhkb2N1bWVudCk7CisgICAgdmFyIGljb25VUkxzID0gd2luZG93LmludGVy
bmFscy5zaG9ydGN1dEljb25VUkxzKGRvY3VtZW50KTsKICAgICBpZiAoZXhwZWN0ZWRVUkxzID09
IGljb25VUkxzWzBdKQogICAgICAgICB0ZXN0UGFzc2VkKCdVUkwgbGlzdCBtYXRjaGVzIGV4cGVj
dGVkJyk7CiAgICAgZWxzZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vaWNvbi11
cmwtbGlzdC1hcHBsZS10b3VjaC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9p
Y29uLXVybC1saXN0LWFwcGxlLXRvdWNoLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45OTNjNTU1
ZjhhNWM0ZGQxY2Q1YWVhNDBkZjU4Yzk3NDUyY2Q4MWFiCi0tLSAvZGV2L251bGwKKysrIGIvTGF5
b3V0VGVzdHMvZmFzdC9kb20vaWNvbi11cmwtbGlzdC1hcHBsZS10b3VjaC1leHBlY3RlZC50eHQK
QEAgLTAsMCArMSwzIEBACitUZXN0cyB0aGF0IGFsbCBmYXZpY29ucyBhbmQgdG91Y2ggaWNvbnMg
KGlmIEVOQUJMRShUT1VDSF9JQ09OX0xPQURJTkcpKSBhcmUgaW4gZG9jdW1lbnQuaWNvblVSTHMo
KQorUEFTUyBVUkwgbGlzdCBtYXRjaGVzIGV4cGVjdGVkCisKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2Zhc3QvZG9tL2ljb24tdXJsLWxpc3QtYXBwbGUtdG91Y2guaHRtbCBiL0xheW91dFRlc3Rz
L2Zhc3QvZG9tL2ljb24tdXJsLWxpc3QtYXBwbGUtdG91Y2guaHRtbApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4wMWI5
OTRjOGI0YmRhYjkyY2VkZTFkNjkzZDkyNzdmYzZiNmNjZTc0Ci0tLSAvZGV2L251bGwKKysrIGIv
TGF5b3V0VGVzdHMvZmFzdC9kb20vaWNvbi11cmwtbGlzdC1hcHBsZS10b3VjaC5odG1sCkBAIC0w
LDAgKzEsNDkgQEAKKzxodG1sPgorPGhlYWQ+Cis8dGl0bGU+T3JpZ2luYWwgVGl0bGU8L3RpdGxl
PgorPGxpbmsgcmVsPSJzaG9ydGN1dCBpY29uIiB0eXBlPSJpbWFnZS94LWljb24iIGhyZWY9Imh0
dHA6Ly90ZXN0LmNvbS9vbGRmYXZpY29uLmljbyIvPgorPGxpbmsgcmVsPSJhcHBsZS10b3VjaC1p
Y29uIiB0eXBlPSJpbWFnZS9wbmciIGhyZWY9Imh0dHA6Ly90ZXN0LmNvbS9pL3RvdWNoLnBuZyIv
PgorPGxpbmsgcmVsPSJhcHBsZS10b3VjaC1pY29uLXByZWNvbXBvc2VkIiB0eXBlPSJpbWFnZS9w
bmciIGhyZWY9Imh0dHA6Ly90ZXN0LmNvbS9pL3RvdWNoLXByZWNvbXBvc2VkLnBuZyIvPgorPHNj
cmlwdCBzcmM9Ii4uL2pzL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8c2Ny
aXB0PgorCitmdW5jdGlvbiBydW5UZXN0cygpIHsKKyAgICBpZiAod2luZG93LnRlc3RSdW5uZXIp
CisgICAgICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOworCisgICAgZGVidWcoJ1Rlc3RzIHRo
YXQgYWxsIGZhdmljb25zIGFuZCB0b3VjaCBpY29ucyAoaWYgRU5BQkxFKFRPVUNIX0lDT05fTE9B
RElORykpIGFyZSBpbiBkb2N1bWVudC5pY29uVVJMcygpJyk7CisKKyAgICAvLyBGZXRjaCB0aGUg
YWN0dWFsIGxpc3Qgb2YgaWNvbiBVUkxzLgorICAgIHZhciBzdXBwb3J0c1RvdWNoSWNvbnMgPSB3
aW5kb3cuaW50ZXJuYWxzLmlzVG91Y2hJY29uc0xvYWRpbmdTdXBwb3J0ZWQoKTsKKyAgICB2YXIg
YWN0dWFsVVJMcyA9IHdpbmRvdy5pbnRlcm5hbHMuYWxsSWNvblVSTHMoZG9jdW1lbnQpOworCisg
ICAgLy8gQ2hlY2sgdGhhdCB0aGUgVVJMIGxpc3QgaW4gdGhlIGRvY3VtZW50IGlzIGFzIHdlIGV4
cGVjdC4KKyAgICAvLyBOb3RlIHRoYXQgdGhlIGV4cGVjdGVkIG9yZGVyIGlzIHJldmVyc2UgdG8g
ZW5zdXJlIHRoYXQgaWNvbnMgc2VlbiBsYXRlcgorICAgIC8vIHRha2UgcHJlY2VkZW5jZSBhcyBy
ZXF1aXJlZCBieSB0aGUgc3BlYy4KKyAgICB2YXIgZXhwZWN0ZWRVUkxzID0gc3VwcG9ydHNUb3Vj
aEljb25zID8gWworICAgICAgICAiaHR0cDovL3Rlc3QuY29tL2kvdG91Y2gtcHJlY29tcG9zZWQu
cG5nIiwKKyAgICAgICAgImh0dHA6Ly90ZXN0LmNvbS9pL3RvdWNoLnBuZyIsCisgICAgICAgICJo
dHRwOi8vdGVzdC5jb20vb2xkZmF2aWNvbi5pY28iLAorICAgIF0gOiBbCisgICAgICAgICJodHRw
Oi8vdGVzdC5jb20vb2xkZmF2aWNvbi5pY28iCisgICAgXTsKKyAgICB2YXIgc3VjY2VzcyA9IGV4
cGVjdGVkVVJMcy5sZW5ndGggPT0gYWN0dWFsVVJMcy5sZW5ndGg7CisgICAgZm9yICh2YXIgaSA9
IDA7IHN1Y2Nlc3MgJiYgaSA8IGFjdHVhbFVSTHMubGVuZ3RoOyBpKyspIHsKKyAgICAgICAgaWYg
KGV4cGVjdGVkVVJMc1tpXSAhPSBhY3R1YWxVUkxzW2ldKSB7CisgICAgICAgICAgICBkZWJ1Zygn
bWlzbWF0Y2ggZXhwZWN0ZWQ9JyArIGV4cGVjdGVkVVJMc1tpXSArCisgICAgICAgICAgICAgICAg
ICAgICcgYWN0dWFsPScgKyBhY3R1YWxVUkxzW2ldKTsKKyAgICAgICAgICAgIHN1Y2Nlc3MgPSBm
YWxzZTsKKyAgICAgICAgfQorICAgIH0KKyAgICBpZiAoc3VjY2VzcykKKyAgICAgICAgdGVzdFBh
c3NlZCgnVVJMIGxpc3QgbWF0Y2hlcyBleHBlY3RlZCcpOworICAgIGVsc2UKKyAgICAgICAgdGVz
dEZhaWxlZCgnVVJMIGxpc3QgZG9lcyBub3QgbWF0Y2ggZXhwZWN0ZWQnKTsKK30KKworPC9zY3Jp
cHQ+Cis8L2hlYWQ+Cis8Ym9keSBvbmxvYWQ9J3J1blRlc3RzKCk7Jz4KKzwvZGl2PgorPC9ib2R5
PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vaWNvbi11cmwtbGlz
dC5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vaWNvbi11cmwtbGlzdC5odG1sCmluZGV4IGRk
YTAwZTcyZWZmYmZlMWQyYjI5MTZhYzgyM2Q0Y2I4ZWU0NmQ0NTQuLjZkM2RmZGE2YTVkZTQ5OWEw
N2UxMjU5NzU3OGYzNDBlZGU4MzdmNWYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvZG9t
L2ljb24tdXJsLWxpc3QuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9pY29uLXVybC1s
aXN0Lmh0bWwKQEAgLTQ4LDcgKzQ4LDcgQEAgZnVuY3Rpb24gcnVuVGVzdHMoKSB7CiAgICAgdmFy
IGV4cGVjdGVkVVJMMCA9ICJodHRwOi8vdGVzdC5jb20vYmFyZmF2aWNvbi5pY28iOwogICAgIHZh
ciBleHBlY3RlZFVSTDEgPSAiaHR0cDovL3Rlc3QuY29tL2Zvb2Zhdmljb24uaWNvIjsKICAgICB2
YXIgZXhwZWN0ZWRVUkwyID0gImh0dHA6Ly90ZXN0LmNvbS9uZXdmYXZpY29uLmljbyI7Ci0gICAg
dmFyIGljb25VUkxzID0gd2luZG93LmludGVybmFscy5pY29uVVJMcyhkb2N1bWVudCk7CisgICAg
dmFyIGljb25VUkxzID0gd2luZG93LmludGVybmFscy5zaG9ydGN1dEljb25VUkxzKGRvY3VtZW50
KTsKICAgICBpZiAoZXhwZWN0ZWRVUkwwID09IGljb25VUkxzWzBdICYmIGV4cGVjdGVkVVJMMSA9
PSBpY29uVVJMc1sxXSAmJiBleHBlY3RlZFVSTDIgPT0gaWNvblVSTHNbMl0pIAogICAgICAgICB0
ZXN0UGFzc2VkKCdVUkwgbGlzdCBtYXRjaGVzIGV4cGVjdGVkJyk7CiAgICAgZWxzZQpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vaWNvbi11cmwtcHJvcGVydHkuaHRtbCBiL0xheW91
dFRlc3RzL2Zhc3QvZG9tL2ljb24tdXJsLXByb3BlcnR5Lmh0bWwKaW5kZXggOGE2YjljMjM4ODUw
NmUwZTI4NDJkMzdlYzA3MTA4NTViZjRmYjlmNS4uMmQxYzAxMjE1NzFhOTdiZjE1NDNkNDE2NTQ2
Zjc2OGU3NTE2MWVkMyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vaWNvbi11cmwt
cHJvcGVydHkuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9pY29uLXVybC1wcm9wZXJ0
eS5odG1sCkBAIC00Myw3ICs0Myw3IEBAIGZ1bmN0aW9uIHJ1blRlc3RzKCkgewogCiAgICAgLy8g
Y2hlY2sgdGhhdCB0aGUgVVJMIGxpc3QgaW4gdGhlIGRvY3VtZW50IGlzIGFzIHdlIGV4cGVjdAog
ICAgIHZhciBleHBlY3RlZFVSTHMgPSAiaHR0cDovL3Rlc3QuY29tL25ld2Zhdmljb24uaWNvIjsK
LSAgICB2YXIgaWNvblVSTHMgPSB3aW5kb3cuaW50ZXJuYWxzLmljb25VUkxzKGRvY3VtZW50KTsK
KyAgICB2YXIgaWNvblVSTHMgPSB3aW5kb3cuaW50ZXJuYWxzLnNob3J0Y3V0SWNvblVSTHMoZG9j
dW1lbnQpOwogICAgIGlmIChleHBlY3RlZFVSTHMgPT0gaWNvblVSTHNbMF0pCiAgICAgICAgIGRl
YnVnT3V0cHV0KCdQQVNTIC0gVVJMIGxpc3QgbWF0Y2hlcyBleHBlY3RlZCcpOwogICAgIGVsc2UK
ZGlmZiAtLWdpdCBhL0NoYW5nZUxvZyBiL0NoYW5nZUxvZwppbmRleCBiZjlmMmI3ZDEyYmYyMmRi
ZmJlMDUwYTViMmYyODRjZjI3YjgxMDNhLi5lN2JhMGU1OGUwMDFlODYyNTNiM2MxYmU0ZmE5N2Uy
NWQ5ZTM5ODM4IDEwMDY0NAotLS0gYS9DaGFuZ2VMb2cKKysrIGIvQ2hhbmdlTG9nCkBAIC0xLDMg
KzEsMTIgQEAKKzIwMTMtMDItMjYgIFJ1c2xhbiBBYmRpa2VldiAgPGFydXNsYW5AY2hyb21pdW0u
b3JnPgorCisgICAgICAgIDxsaW5rIHJlbD0iYXBwbGUtdG91Y2gtaWNvbiI+IHRhZyBpcyBub3Qg
aG9ub3JlZCBvbiBDTk4uY29tLCB3b3JrZmxvd3kuY29tIGV0YworICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTA5MDYxCisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBTb3VyY2UvYXV0b3Rvb2xzL3N5bWJvbHMu
ZmlsdGVyOgorCiAyMDEzLTAyLTI0ICBMYXN6bG8gR29tYm9zICA8bC5nb21ib3NAc2Ftc3VuZy5j
b20+CiAKICAgICAgICAgW0VGTF0gUmVuYW1lIEVOQUJMRV9SRUdJT05TIHRvIEVOQUJMRV9DU1Nf
UkVHSU9OUwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>190974</attachid>
            <date>2013-03-01 08:50:14 -0800</date>
            <delta_ts>2013-03-01 18:48:42 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-109061-20130301084625.patch</filename>
            <type>text/plain</type>
            <size>22601</size>
            <attacher name="Ruslan Abdikeev">aruslan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQ0NDU5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYTk1OWY5MmFiODMzYmQ2
ZGVmYTgzYzIzZDIzYjMwNzc0YjUzNGI2MC4uOTFhYmNmY2Q4ZjhmMzUwMDFjZjlmYjZiNmY5NDli
YWNkY2ZjZmE4NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM1IEBACisyMDEzLTAzLTAxICBSdXNs
YW4gQWJkaWtlZXYgIDxhcnVzbGFuQGNocm9taXVtLm9yZz4KKworICAgICAgICA8bGluayByZWw9
ImFwcGxlLXRvdWNoLWljb24iPiB0YWcgaXMgbm90IGhvbm9yZWQgb24gQ05OLmNvbSwgd29ya2Zs
b3d5LmNvbSBldGMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTEwOTA2MQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgIFRlc3Q6IGZhc3QvZG9tL2ljb24tdXJsLWxpc3QtYXBwbGUtdG91Y2guaHRtbAorCisgICAg
ICAgIEFkZGVkIGljb25UeXBlcyBwYXJhbWV0ZXIgdG8gRG9jdW1lbnQ6Omljb25VUkxzKCkuCisg
ICAgICAgIEFkZGVkIERvY3VtZW50OjpzaG9ydGN1dEljb25VUkxzKCkgd2l0aCBvcmlnaW5hbCBz
ZW1hbnRpY3Mgb2YgaWNvblVSTHMoKS4KKyAgICAgICAgRml4ZWQgSWNvbkNvbnRyb2xsZXIuY3Bw
IHRvIHByb3ZpZGUgaWNvblR5cGVzTWFzayB0byBpY29uVVJMcygpLgorICAgICAgICBSZW5hbWVk
IGljb25UeXBlcyB0byBpY29uVHlwZXNNYXNrIHRvIG1ha2UgdGhlIG1lYW5pbmcgY2xlYXJlci4K
KworICAgICAgICAqIFdlYkNvcmUuZXhwLmluOgorICAgICAgICAqIGRvbS9Eb2N1bWVudC5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudDo6c2hvcnRjdXRJY29uVVJMcyk6CisgICAgICAg
IChXZWJDb3JlKToKKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50OjppY29uVVJMcyk6CisgICAg
ICAgICogZG9tL0RvY3VtZW50Lmg6CisgICAgICAgIChEb2N1bWVudCk6CisgICAgICAgICogbG9h
ZGVyL2ljb24vSWNvbkNvbnRyb2xsZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SWNvbkNvbnRy
b2xsZXI6Omljb25VUkwpOgorICAgICAgICAoV2ViQ29yZTo6SWNvbkNvbnRyb2xsZXI6OnVybHNG
b3JUeXBlcyk6CisgICAgICAgICogdGVzdGluZy9JbnRlcm5hbHMuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6SW50ZXJuYWxzOjppY29uVVJMcyk6CisgICAgICAgIChXZWJDb3JlOjpJbnRlcm5hbHM6
OnNob3J0Y3V0SWNvblVSTHMpOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChXZWJDb3Jl
OjpJbnRlcm5hbHM6OmFsbEljb25VUkxzKToKKyAgICAgICAgKiB0ZXN0aW5nL0ludGVybmFscy5o
OgorICAgICAgICAqIHRlc3RpbmcvSW50ZXJuYWxzLmlkbDoKKwogMjAxMy0wMy0wMSAgRGF2aWQg
S2lsemVyICA8ZGRraWx6ZXJAYXBwbGUuY29tPgogCiAgICAgICAgIEJVSUxEIEZJWCAocjE0NDM1
OCk6IEFkZCBVTlVTRURfUEFSQU0oKSBtYWNyb3MgdG8gV2ViQ29yZTo6RXh0ZW5zaW9uczNET3Bl
bkdMOjpkcmF3QnVmZmVyc0VYVCgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3Jl
LmV4cC5pbiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZXhwLmluCmluZGV4IGY2ZjIzMDRiNTA5
MzdlNzQ3YjkwNDg4MmQ2ZDc1NGM5NTgzMzQyOGYuLjRmYWVmY2VmYjVlYzY1NzNmYjYxZjcxZDFj
MWIyYTNmY2Y5ZWFiNjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZXhwLmlu
CisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZXhwLmluCkBAIC05ODEsNyArOTgxLDggQEAg
X19aTjdXZWJDb3JlOERvY3VtZW50MzZ1cGRhdGVMYXlvdXRJZ25vcmVQZW5kaW5nU3R5bGVzaGVl
dHNFdgogX19aTjdXZWJDb3JlOERvY3VtZW50NGhlYWRFdgogX19aTjdXZWJDb3JlOEZvcm1EYXRh
MjhyZW1vdmVHZW5lcmF0ZWRGaWxlc0lmTmVlZGVkRXYKIF9fWk43V2ViQ29yZThGb3JtRGF0YTZk
ZWNvZGVFUk4zV1RGN0RlY29kZXJFCi1fX1pON1dlYkNvcmU4RG9jdW1lbnQ4aWNvblVSTHNFdgor
X19aTjdXZWJDb3JlOERvY3VtZW50OGljb25VUkxzRWkKK19fWk43V2ViQ29yZThEb2N1bWVudDE2
c2hvcnRjdXRJY29uVVJMc0V2CiBfX1pON1dlYkNvcmU4Rm9ybURhdGE2Y3JlYXRlRVBLdm0KIF9f
Wk43V2ViQ29yZThGb3JtRGF0YUQxRXYKIF9fWk43V2ViQ29yZThHcmFkaWVudDEyYWRkQ29sb3JT
dG9wRWZSS05TXzVDb2xvckUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVu
dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCmluZGV4IDJjNWRmNjczMmE1
YzMwZGRjOTIxNmUyOWNlMWEwMWMwNGRjZmZhMWUuLjIxYzZkNjVkYjA1NDg1YWRiZjg2OTFmNTg2
NmNlNGIwZjc1Yjg4NmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcApAQCAtNDQ5NCwxNCArNDQ5
NCwxOSBAQCBQYXNzUmVmUHRyPFhQYXRoUmVzdWx0PiBEb2N1bWVudDo6ZXZhbHVhdGUoY29uc3Qg
U3RyaW5nJiBleHByZXNzaW9uLAogICAgIHJldHVybiBtX3hwYXRoRXZhbHVhdG9yLT5ldmFsdWF0
ZShleHByZXNzaW9uLCBjb250ZXh0Tm9kZSwgcmVzb2x2ZXIsIHR5cGUsIHJlc3VsdCwgZWMpOwog
fQogCi1jb25zdCBWZWN0b3I8SWNvblVSTD4mIERvY3VtZW50OjppY29uVVJMcygpCitjb25zdCBW
ZWN0b3I8SWNvblVSTD4mIERvY3VtZW50OjpzaG9ydGN1dEljb25VUkxzKCkKK3sKKyAgICAvLyBJ
bmNsdWRlIGFueSBpY29ucyB3aGVyZSB0eXBlID0gbGluaywgcmVsID0gInNob3J0Y3V0IGljb24i
LgorICAgIHJldHVybiBpY29uVVJMcyhGYXZpY29uKTsKK30KKworY29uc3QgVmVjdG9yPEljb25V
Ukw+JiBEb2N1bWVudDo6aWNvblVSTHMoaW50IGljb25UeXBlc01hc2spCiB7CiAgICAgbV9pY29u
VVJMcy5jbGVhcigpOwogCiAgICAgaWYgKCFoZWFkKCkgfHwgIShoZWFkKCktPmNoaWxkcmVuKCkp
KQogICAgICAgICByZXR1cm4gbV9pY29uVVJMczsKIAotICAgIC8vIEluY2x1ZGUgYW55IGljb25z
IHdoZXJlIHR5cGUgPSBsaW5rLCByZWwgPSAic2hvcnRjdXQgaWNvbiIuCiAgICAgUmVmUHRyPEhU
TUxDb2xsZWN0aW9uPiBjaGlsZHJlbiA9IGhlYWQoKS0+Y2hpbGRyZW4oKTsKICAgICB1bnNpZ25l
ZCBpbnQgbGVuZ3RoID0gY2hpbGRyZW4tPmxlbmd0aCgpOwogICAgIGZvciAodW5zaWduZWQgaW50
IGkgPSAwOyBpIDwgbGVuZ3RoOyArK2kpIHsKQEAgLTQ1MDksNyArNDUxNCw3IEBAIGNvbnN0IFZl
Y3RvcjxJY29uVVJMPiYgRG9jdW1lbnQ6Omljb25VUkxzKCkKICAgICAgICAgaWYgKCFjaGlsZC0+
aGFzVGFnTmFtZShsaW5rVGFnKSkKICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICBIVE1M
TGlua0VsZW1lbnQqIGxpbmtFbGVtZW50ID0gc3RhdGljX2Nhc3Q8SFRNTExpbmtFbGVtZW50Kj4o
Y2hpbGQpOwotICAgICAgICBpZiAobGlua0VsZW1lbnQtPmljb25UeXBlKCkgIT0gRmF2aWNvbikK
KyAgICAgICAgaWYgKCEobGlua0VsZW1lbnQtPmljb25UeXBlKCkgJiBpY29uVHlwZXNNYXNrKSkK
ICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICBpZiAobGlua0VsZW1lbnQtPmhyZWYoKS5p
c0VtcHR5KCkpCiAgICAgICAgICAgICBjb250aW51ZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2RvbS9Eb2N1bWVudC5oIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmgKaW5kZXgg
ZDhiOTg2MzI5NjliMTliZTA4YTFiNDdkNmFmOTQzYmQ0MDdiNDhkOC4uMDYzNjNkM2E1NGViMjY5
MjFkYzBiYTEwNDkzNjRlZDM4YjhjZmM1NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9t
L0RvY3VtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmgKQEAgLTk0Myw3
ICs5NDMsOCBAQCBwdWJsaWM6CiAgICAgYm9vbCBoYXNOb2Rlc1dpdGhQbGFjZWhvbGRlclN0eWxl
KCkgY29uc3QgeyByZXR1cm4gbV9oYXNOb2Rlc1dpdGhQbGFjZWhvbGRlclN0eWxlOyB9CiAgICAg
dm9pZCBzZXRIYXNOb2Rlc1dpdGhQbGFjZWhvbGRlclN0eWxlKCkgeyBtX2hhc05vZGVzV2l0aFBs
YWNlaG9sZGVyU3R5bGUgPSB0cnVlOyB9CiAKLSAgICBjb25zdCBWZWN0b3I8SWNvblVSTD4mIGlj
b25VUkxzKCk7CisgICAgY29uc3QgVmVjdG9yPEljb25VUkw+JiBzaG9ydGN1dEljb25VUkxzKCk7
CisgICAgY29uc3QgVmVjdG9yPEljb25VUkw+JiBpY29uVVJMcyhpbnQgaWNvblR5cGVzTWFzayk7
CiAgICAgdm9pZCBhZGRJY29uVVJMKGNvbnN0IFN0cmluZyYgdXJsLCBjb25zdCBTdHJpbmcmIG1p
bWVUeXBlLCBjb25zdCBTdHJpbmcmIHNpemUsIEljb25UeXBlKTsKIAogICAgIHZvaWQgc2V0VXNl
U2VjdXJlS2V5Ym9hcmRFbnRyeVdoZW5BY3RpdmUoYm9vbCk7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9sb2FkZXIvaWNvbi9JY29uQ29udHJvbGxlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9s
b2FkZXIvaWNvbi9JY29uQ29udHJvbGxlci5jcHAKaW5kZXggNzRmYWE5NTljYWJlMzQ0ODFhMGY1
NzlmN2U1MjQwODIyZTAxMzgwNC4uYjI1N2ZhMGJlZTU3MTFjZmRhMmQyZDlmMTcwY2Y0ODkwODYw
NWY5YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2ljb24vSWNvbkNvbnRyb2xs
ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9pY29uL0ljb25Db250cm9sbGVyLmNw
cApAQCAtNjgsMzMgKzY4LDMxIEBAIEtVUkwgSWNvbkNvbnRyb2xsZXI6OnVybCgpCiBJY29uVVJM
IEljb25Db250cm9sbGVyOjppY29uVVJMKEljb25UeXBlIGljb25UeXBlKSBjb25zdAogewogICAg
IEljb25VUkwgcmVzdWx0OwotICAgIGNvbnN0IFZlY3RvcjxJY29uVVJMPiYgaWNvblVSTHMgPSBt
X2ZyYW1lLT5kb2N1bWVudCgpLT5pY29uVVJMcygpOworICAgIGNvbnN0IFZlY3RvcjxJY29uVVJM
PiYgaWNvblVSTHMgPSBtX2ZyYW1lLT5kb2N1bWVudCgpLT5pY29uVVJMcyhpY29uVHlwZSk7CiAg
ICAgVmVjdG9yPEljb25VUkw+Ojpjb25zdF9pdGVyYXRvciBpdGVyKGljb25VUkxzLmJlZ2luKCkp
OwogICAgIGZvciAoOyBpdGVyICE9IGljb25VUkxzLmVuZCgpOyArK2l0ZXIpIHsKLSAgICAgICAg
aWYgKGl0ZXItPm1faWNvblR5cGUgPT0gaWNvblR5cGUpIHsKLSAgICAgICAgICAgIGlmIChyZXN1
bHQubV9pY29uVVJMLmlzRW1wdHkoKSB8fCAhaXRlci0+bV9taW1lVHlwZS5pc0VtcHR5KCkpCi0g
ICAgICAgICAgICAgICAgcmVzdWx0ID0gKml0ZXI7Ci0gICAgICAgIH0KKyAgICAgICAgaWYgKHJl
c3VsdC5tX2ljb25VUkwuaXNFbXB0eSgpIHx8ICFpdGVyLT5tX21pbWVUeXBlLmlzRW1wdHkoKSkK
KyAgICAgICAgICAgIHJlc3VsdCA9ICppdGVyOwogICAgIH0KIAogICAgIHJldHVybiByZXN1bHQ7
CiB9CiAKLUljb25VUkxzIEljb25Db250cm9sbGVyOjp1cmxzRm9yVHlwZXMoaW50IGljb25UeXBl
cykKK0ljb25VUkxzIEljb25Db250cm9sbGVyOjp1cmxzRm9yVHlwZXMoaW50IGljb25UeXBlc01h
c2spCiB7CiAgICAgSWNvblVSTHMgaWNvblVSTHM7CiAgICAgaWYgKG1fZnJhbWUtPnRyZWUoKSAm
JiBtX2ZyYW1lLT50cmVlKCktPnBhcmVudCgpKQogICAgICAgICByZXR1cm4gaWNvblVSTHM7CiAg
ICAgICAgIAotICAgIGlmIChpY29uVHlwZXMgJiBGYXZpY29uICYmICFhcHBlbmRUb0ljb25VUkxz
KEZhdmljb24sICZpY29uVVJMcykpCisgICAgaWYgKGljb25UeXBlc01hc2sgJiBGYXZpY29uICYm
ICFhcHBlbmRUb0ljb25VUkxzKEZhdmljb24sICZpY29uVVJMcykpCiAgICAgICAgIGljb25VUkxz
LmFwcGVuZChkZWZhdWx0VVJMKEZhdmljb24pKTsKIAogI2lmIEVOQUJMRShUT1VDSF9JQ09OX0xP
QURJTkcpCiAgICAgaW50IG1pc3NlZEljb25zID0gMDsKLSAgICBpZiAoaWNvblR5cGVzICYgVG91
Y2hQcmVjb21wb3NlZEljb24pCisgICAgaWYgKGljb25UeXBlc01hc2sgJiBUb3VjaFByZWNvbXBv
c2VkSWNvbikKICAgICAgICAgbWlzc2VkSWNvbnMgKz0gYXBwZW5kVG9JY29uVVJMcyhUb3VjaFBy
ZWNvbXBvc2VkSWNvbiwgJmljb25VUkxzKSA/IDA6MTsKIAotICAgIGlmIChpY29uVHlwZXMgJiBU
b3VjaEljb24pCisgICAgaWYgKGljb25UeXBlc01hc2sgJiBUb3VjaEljb24pCiAgICAgICBtaXNz
ZWRJY29ucyArPSBhcHBlbmRUb0ljb25VUkxzKFRvdWNoSWNvbiwgJmljb25VUkxzKSA/IDA6MTsK
IAogICAgIC8vIE9ubHkgcmV0dXJuIHRoZSBkZWZhdWx0IHRvdWNoIGljb25zIHdoZW4gdGhlIGJv
dGggd2VyZSByZXF1aXJlZCBhbmQgbmVpdGhlciB3YXMgZ290dGVuLgpAQCAtMTA1LDExICsxMDMs
OCBAQCBJY29uVVJMcyBJY29uQ29udHJvbGxlcjo6dXJsc0ZvclR5cGVzKGludCBpY29uVHlwZXMp
CiAjZW5kaWYKIAogICAgIC8vIEZpbmFsbHksIGFwcGVuZCBhbGwgcmVtYWluaW5nIGljb25zIG9m
IHRoaXMgdHlwZS4KLSAgICBjb25zdCBWZWN0b3I8SWNvblVSTD4mIGFsbEljb25VUkxzID0gbV9m
cmFtZS0+ZG9jdW1lbnQoKS0+aWNvblVSTHMoKTsKKyAgICBjb25zdCBWZWN0b3I8SWNvblVSTD4m
IGFsbEljb25VUkxzID0gbV9mcmFtZS0+ZG9jdW1lbnQoKS0+aWNvblVSTHMoaWNvblR5cGVzTWFz
ayk7CiAgICAgZm9yIChWZWN0b3I8SWNvblVSTD46OmNvbnN0X2l0ZXJhdG9yIGl0ZXIgPSBhbGxJ
Y29uVVJMcy5iZWdpbigpOyBpdGVyICE9IGFsbEljb25VUkxzLmVuZCgpOyArK2l0ZXIpIHsKLSAg
ICAgICAgaWYgKCEoaXRlci0+bV9pY29uVHlwZSAmIGljb25UeXBlcykpCi0gICAgICAgICAgICBj
b250aW51ZTsKLQogICAgICAgICBpbnQgaTsKICAgICAgICAgaW50IGljb25Db3VudCA9IGljb25V
UkxzLnNpemUoKTsKICAgICAgICAgZm9yIChpID0gMDsgaSA8IGljb25Db3VudDsgKytpKSB7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvaWNvbi9JY29uQ29udHJvbGxlci5oIGIv
U291cmNlL1dlYkNvcmUvbG9hZGVyL2ljb24vSWNvbkNvbnRyb2xsZXIuaAppbmRleCBiMmNhYmEy
YTBhOTVkM2VkMGFkMTBiMzNiMGVkYTJkODFmNjFkYzE2Li42MWRmYTc2YjZjNGZmY2JmZjc2ZDU2
Yjk2NDNiNWM0ODc1NzA2NjU4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvaWNv
bi9JY29uQ29udHJvbGxlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9pY29uL0ljb25D
b250cm9sbGVyLmgKQEAgLTQ4LDcgKzQ4LDcgQEAgcHVibGljOgogICAgIH5JY29uQ29udHJvbGxl
cigpOwogCiAgICAgS1VSTCB1cmwoKTsKLSAgICBJY29uVVJMcyB1cmxzRm9yVHlwZXMoaW50IGlj
b25UeXBlcyk7CisgICAgSWNvblVSTHMgdXJsc0ZvclR5cGVzKGludCBpY29uVHlwZXNNYXNrKTsK
ICAgICBJY29uVVJMIGljb25VUkwoSWNvblR5cGUpIGNvbnN0OwogCiAgICAgdm9pZCBzdGFydExv
YWRlcigpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuY3Bw
IGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuY3BwCmluZGV4IGNmNTZmMzFmY2Fl
YzhkYTdiZGI5YjM5MWEzMGE3MDM5NTAwNTMxYjAuLjU5MTE1ZTYxNDBjZTVmNDJlMDQ5MTc2Y2Fl
NzUxYzhkNGRkZjVlZTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJu
YWxzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5jcHAKQEAgLTE3
NTQsOSArMTc1NCw5IEBAIGludCBJbnRlcm5hbHM6OnBhZ2VOdW1iZXIoRWxlbWVudCogZWxlbWVu
dCwgZmxvYXQgcGFnZVdpZHRoLCBmbG9hdCBwYWdlSGVpZ2h0KQogICAgIHJldHVybiBQcmludENv
bnRleHQ6OnBhZ2VOdW1iZXJGb3JFbGVtZW50KGVsZW1lbnQsIEZsb2F0U2l6ZShwYWdlV2lkdGgs
IHBhZ2VIZWlnaHQpKTsKIH0KIAotVmVjdG9yPFN0cmluZz4gSW50ZXJuYWxzOjppY29uVVJMcyhE
b2N1bWVudCogZG9jdW1lbnQpIGNvbnN0CitWZWN0b3I8U3RyaW5nPiBJbnRlcm5hbHM6Omljb25V
UkxzKERvY3VtZW50KiBkb2N1bWVudCwgaW50IGljb25UeXBlc01hc2spIGNvbnN0CiB7Ci0gICAg
VmVjdG9yPEljb25VUkw+IGljb25VUkxzID0gZG9jdW1lbnQtPmljb25VUkxzKCk7CisgICAgVmVj
dG9yPEljb25VUkw+IGljb25VUkxzID0gZG9jdW1lbnQtPmljb25VUkxzKGljb25UeXBlc01hc2sp
OwogICAgIFZlY3RvcjxTdHJpbmc+IGFycmF5OwogCiAgICAgVmVjdG9yPEljb25VUkw+Ojpjb25z
dF9pdGVyYXRvciBpdGVyKGljb25VUkxzLmJlZ2luKCkpOwpAQCAtMTc2Niw2ICsxNzY2LDE2IEBA
IFZlY3RvcjxTdHJpbmc+IEludGVybmFsczo6aWNvblVSTHMoRG9jdW1lbnQqIGRvY3VtZW50KSBj
b25zdAogICAgIHJldHVybiBhcnJheTsKIH0KIAorVmVjdG9yPFN0cmluZz4gSW50ZXJuYWxzOjpz
aG9ydGN1dEljb25VUkxzKERvY3VtZW50KiBkb2N1bWVudCkgY29uc3QKK3sKKyAgICByZXR1cm4g
aWNvblVSTHMoZG9jdW1lbnQsIEZhdmljb24pOworfQorCitWZWN0b3I8U3RyaW5nPiBJbnRlcm5h
bHM6OmFsbEljb25VUkxzKERvY3VtZW50KiBkb2N1bWVudCkgY29uc3QKK3sKKyAgICByZXR1cm4g
aWNvblVSTHMoZG9jdW1lbnQsIEZhdmljb24gfCBUb3VjaEljb24gfCBUb3VjaFByZWNvbXBvc2Vk
SWNvbik7Cit9CisKIGludCBJbnRlcm5hbHM6Om51bWJlck9mUGFnZXMoZmxvYXQgcGFnZVdpZHRo
LCBmbG9hdCBwYWdlSGVpZ2h0KQogewogICAgIGlmICghZnJhbWUoKSkKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmggYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5n
L0ludGVybmFscy5oCmluZGV4IGNjM2JhZTY2YWRmZTZmNTZjMTBlYzRiNDdlOTNkMjY5MmU1M2Fh
ZDUuLmVjOTMyZTVmNzcwY2ZlMGY5ODQ2YWQwNjUxMWM0OTliYjAyMDk1OWQgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
dGVzdGluZy9JbnRlcm5hbHMuaApAQCAtMjQ5LDcgKzI0OSw4IEBAIHB1YmxpYzoKICAgICBTdHJp
bmcgY291bnRlclZhbHVlKEVsZW1lbnQqKTsKIAogICAgIGludCBwYWdlTnVtYmVyKEVsZW1lbnQq
LCBmbG9hdCBwYWdlV2lkdGggPSA4MDAsIGZsb2F0IHBhZ2VIZWlnaHQgPSA2MDApOwotICAgIFZl
Y3RvcjxTdHJpbmc+IGljb25VUkxzKERvY3VtZW50KikgY29uc3Q7CisgICAgVmVjdG9yPFN0cmlu
Zz4gc2hvcnRjdXRJY29uVVJMcyhEb2N1bWVudCopIGNvbnN0OworICAgIFZlY3RvcjxTdHJpbmc+
IGFsbEljb25VUkxzKERvY3VtZW50KikgY29uc3Q7CiAKICAgICBpbnQgbnVtYmVyT2ZQYWdlcyhm
bG9hdCBwYWdlV2lkdGhJblBpeGVscyA9IDgwMCwgZmxvYXQgcGFnZUhlaWdodEluUGl4ZWxzID0g
NjAwKTsKICAgICBTdHJpbmcgcGFnZVByb3BlcnR5KFN0cmluZywgaW50LCBFeGNlcHRpb25Db2Rl
JiA9IEFTU0VSVF9OT19FWENFUFRJT04pIGNvbnN0OwpAQCAtMjk0LDYgKzI5NSw3IEBAIHByaXZh
dGU6CiAgICAgZXhwbGljaXQgSW50ZXJuYWxzKERvY3VtZW50Kik7CiAgICAgRG9jdW1lbnQqIGNv
bnRleHREb2N1bWVudCgpIGNvbnN0OwogICAgIEZyYW1lKiBmcmFtZSgpIGNvbnN0OworICAgIFZl
Y3RvcjxTdHJpbmc+IGljb25VUkxzKERvY3VtZW50KiwgaW50IGljb25UeXBlc01hc2spIGNvbnN0
OwogCiAgICAgRG9jdW1lbnRNYXJrZXIqIG1hcmtlckF0KE5vZGUqLCBjb25zdCBTdHJpbmcmIG1h
cmtlclR5cGUsIHVuc2lnbmVkIGluZGV4LCBFeGNlcHRpb25Db2RlJik7CiAjaWYgRU5BQkxFKElO
U1BFQ1RPUikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmlk
bCBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmlkbAppbmRleCBmYjA2MDA5OGE5
ZmIzYTlmOTIxZjk2NWUzYWFiMzM1ZmU3NDIzNTIxLi42OGMwMTM1M2JjNjEwZDQzNzZiYWQ3Nzg5
NGZjMDE3NzQxOTUxYmNhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVy
bmFscy5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaWRsCkBAIC0y
MTYsNyArMjE2LDggQEAKIAogICAgIERPTVN0cmluZyBjb3VudGVyVmFsdWUoaW4gRWxlbWVudCBl
bGVtZW50KTsKICAgICBsb25nIHBhZ2VOdW1iZXIoaW4gRWxlbWVudCBlbGVtZW50LCBpbiBbT3B0
aW9uYWxdIGZsb2F0IHBhZ2VXaWR0aCwgaW4gW09wdGlvbmFsXSBmbG9hdCBwYWdlSGVpZ2h0KTsK
LSAgICBET01TdHJpbmdbXSBpY29uVVJMcyhpbiBEb2N1bWVudCBkb2N1bWVudCk7CisgICAgRE9N
U3RyaW5nW10gc2hvcnRjdXRJY29uVVJMcyhpbiBEb2N1bWVudCBkb2N1bWVudCk7CisgICAgRE9N
U3RyaW5nW10gYWxsSWNvblVSTHMoaW4gRG9jdW1lbnQgZG9jdW1lbnQpOwogICAgIGxvbmcgbnVt
YmVyT2ZQYWdlcyhpbiBbT3B0aW9uYWxdIGRvdWJsZSBwYWdlV2lkdGhJblBpeGVscywgaW4gW09w
dGlvbmFsXSBkb3VibGUgcGFnZUhlaWdodEluUGl4ZWxzKTsKICAgICBET01TdHJpbmcgcGFnZVBy
b3BlcnR5KGluIERPTVN0cmluZyBwcm9wZXJ0eU5hbWUsIGluIGxvbmcgcGFnZU51bWJlcikgcmFp
c2VzIChET01FeGNlcHRpb24pOwogICAgIERPTVN0cmluZyBwYWdlU2l6ZUFuZE1hcmdpbnNJblBp
eGVscyhpbiBsb25nIHBhZ2VJbmRleCwgaW4gbG9uZyB3aWR0aCwgaW4gbG9uZyBoZWlnaHQsIGlu
IGxvbmcgbWFyZ2luVG9wLCBpbiBsb25nIG1hcmdpblJpZ2h0LCBpbiBsb25nIG1hcmdpbkJvdHRv
bSwgaW4gbG9uZyBtYXJnaW5MZWZ0KSByYWlzZXMgKERPTUV4Y2VwdGlvbik7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1dlYktpdC52Y3hwcm9qL1dlYktpdEV4cG9ydEdlbmVyYXRvci9XZWJL
aXRFeHBvcnRzLmRlZi5pbiBiL1NvdXJjZS9XZWJLaXQvV2ViS2l0LnZjeHByb2ovV2ViS2l0RXhw
b3J0R2VuZXJhdG9yL1dlYktpdEV4cG9ydHMuZGVmLmluCmluZGV4IDQzN2U3N2M5MmQxNmM5N2Fm
NDZlYjI1N2M4MDJlYTViYjZiZWI5NGUuLjE0NmEwYzBiNzJiYTg3OWYyMDllNjY4NzY4ZWU0MjNl
ZWY0ZDI5NTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViS2l0LnZjeHByb2ovV2ViS2l0
RXhwb3J0R2VuZXJhdG9yL1dlYktpdEV4cG9ydHMuZGVmLmluCisrKyBiL1NvdXJjZS9XZWJLaXQv
V2ViS2l0LnZjeHByb2ovV2ViS2l0RXhwb3J0R2VuZXJhdG9yL1dlYktpdEV4cG9ydHMuZGVmLmlu
CkBAIC0zMjUsNyArMzI1LDggQEAgRVhQT1JUUwogICAgICAgICA/c2V0QWxsb3dzUm91bmRpbmdI
YWNrc0BUZXh0UnVuQFdlYkNvcmVAQFNBWF9OQFoKICAgICAgICAgP3JlZ2lzdGVyVVJMU2NoZW1l
QXNCeXBhc3NpbmdDb250ZW50U2VjdXJpdHlQb2xpY3lAU2NoZW1lUmVnaXN0cnlAV2ViQ29yZUBA
U0FYQUJWU3RyaW5nQFdURkBAQFoKICAgICAgICAgP3JlbW92ZVVSTFNjaGVtZVJlZ2lzdGVyZWRB
c0J5cGFzc2luZ0NvbnRlbnRTZWN1cml0eVBvbGljeUBTY2hlbWVSZWdpc3RyeUBXZWJDb3JlQEBT
QVhBQlZTdHJpbmdAV1RGQEBAWgotICAgICAgICA/aWNvblVSTHNARG9jdW1lbnRAV2ViQ29yZUBA
UUFFQUJWPyRWZWN0b3JAVUljb25VUkxAV2ViQ29yZUBAJDBBQEBXVEZAQFhaCisgICAgICAgID9z
aG9ydGN1dEljb25VUkxzQERvY3VtZW50QFdlYkNvcmVAQFFBRUFCVj8kVmVjdG9yQFVJY29uVVJM
QFdlYkNvcmVAQCQwQUBAV1RGQEBYWgorICAgICAgICA/aWNvblVSTHNARG9jdW1lbnRAV2ViQ29y
ZUBAUUFFQUJWPyRWZWN0b3JAVUljb25VUkxAV2ViQ29yZUBAJDBBQEBXVEZAQEhAWgogICAgICAg
ICA/bnVtYmVyT2ZQYWdlc0BQcmludENvbnRleHRAV2ViQ29yZUBAU0FIUEFWRnJhbWVAMkBBQlZG
bG9hdFNpemVAMkBAWgogICAgICAgICA/cGFnZVByb3BlcnR5QFByaW50Q29udGV4dEBXZWJDb3Jl
QEBTQT9BVlN0cmluZ0BXVEZAQFBBVkZyYW1lQDJAUEJESEBaCiAgICAgICAgID9wYWdlU2l6ZUFu
ZE1hcmdpbnNJblBpeGVsc0BQcmludENvbnRleHRAV2ViQ29yZUBAU0E/QVZTdHJpbmdAV1RGQEBQ
QVZGcmFtZUAyQEhISEhISEhAWgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9w
dWJsaWMvV2ViRnJhbWUuaCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYkZyYW1l
LmgKaW5kZXggODEyYWQ2ZWE1NjYyNjUzODJlYWY3N2JhYTExOWExOTdmZjhlZWRkMS4uZTc0ZWZl
Yjc4YjcyNDUwOTFiMjg0YWYxMDZkMjViYTM1MTgzMGViOCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViRnJhbWUuaAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9t
aXVtL3B1YmxpYy9XZWJGcmFtZS5oCkBAIC0xMzAsMTAgKzEzMCwxMCBAQCBwdWJsaWM6CiAgICAg
dmlydHVhbCBsb25nIGxvbmcgaWRlbnRpZmllcigpIGNvbnN0ID0gMDsKIAogICAgIC8vIFRoZSB1
cmxzIG9mIHRoZSBnaXZlbiBjb21iaW5hdGlvbiB0eXBlcyBvZiBmYXZpY29uIChpZiBhbnkpIHNw
ZWNpZmllZCBieQotICAgIC8vIHRoZSBkb2N1bWVudCBsb2FkZWQgaW4gdGhpcyBmcmFtZS4gVGhl
IGljb25UeXBlcyBpcyBhIGJpdC1tYXNrIG9mCisgICAgLy8gdGhlIGRvY3VtZW50IGxvYWRlZCBp
biB0aGlzIGZyYW1lLiBUaGUgaWNvblR5cGVzTWFzayBpcyBhIGJpdC1tYXNrIG9mCiAgICAgLy8g
V2ViSWNvblVSTDo6VHlwZSB2YWx1ZXMsIHVzZWQgdG8gc2VsZWN0IGZyb20gdGhlIGF2YWlsYWJs
ZSBzZXQgb2YgaWNvbgogICAgIC8vIFVSTHMKLSAgICB2aXJ0dWFsIFdlYlZlY3RvcjxXZWJJY29u
VVJMPiBpY29uVVJMcyhpbnQgaWNvblR5cGVzKSBjb25zdCA9IDA7CisgICAgdmlydHVhbCBXZWJW
ZWN0b3I8V2ViSWNvblVSTD4gaWNvblVSTHMoaW50IGljb25UeXBlc01hc2spIGNvbnN0ID0gMDsK
IAogCiAgICAgLy8gR2VvbWV0cnkgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21p
dW0vc3JjL1dlYkZyYW1lSW1wbC5jcHAgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJG
cmFtZUltcGwuY3BwCmluZGV4IDNjZGY1MDMxYTVlYmVkZmZhOWJmN2VlODQ5NzlkYjlmNzgxNjIw
ZWQuLmRhNTllYWFiY2FkOGQ0NDY4YjI5YzZlN2FmZmZiMmEwNDEyOTcyOWYgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYkZyYW1lSW1wbC5jcHAKKysrIGIvU291cmNl
L1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViRnJhbWVJbXBsLmNwcApAQCAtNTc0LDEyICs1NzQsMTIg
QEAgbG9uZyBsb25nIFdlYkZyYW1lSW1wbDo6aWRlbnRpZmllcigpIGNvbnN0CiAgICAgcmV0dXJu
IG1faWRlbnRpZmllcjsKIH0KIAotV2ViVmVjdG9yPFdlYkljb25VUkw+IFdlYkZyYW1lSW1wbDo6
aWNvblVSTHMoaW50IGljb25UeXBlcykgY29uc3QKK1dlYlZlY3RvcjxXZWJJY29uVVJMPiBXZWJG
cmFtZUltcGw6Omljb25VUkxzKGludCBpY29uVHlwZXNNYXNrKSBjb25zdAogewogICAgIC8vIFRo
ZSBVUkwgdG8gdGhlIGljb24gbWF5IGJlIGluIHRoZSBoZWFkZXIuIEFzIHN1Y2gsIG9ubHkKICAg
ICAvLyBhc2sgdGhlIGxvYWRlciBmb3IgdGhlIGljb24gaWYgaXQncyBmaW5pc2hlZCBsb2FkaW5n
LgogICAgIGlmIChmcmFtZSgpLT5sb2FkZXIoKS0+c3RhdGUoKSA9PSBGcmFtZVN0YXRlQ29tcGxl
dGUpCi0gICAgICAgIHJldHVybiBmcmFtZSgpLT5sb2FkZXIoKS0+aWNvbigpLT51cmxzRm9yVHlw
ZXMoaWNvblR5cGVzKTsKKyAgICAgICAgcmV0dXJuIGZyYW1lKCktPmxvYWRlcigpLT5pY29uKCkt
PnVybHNGb3JUeXBlcyhpY29uVHlwZXNNYXNrKTsKICAgICByZXR1cm4gV2ViVmVjdG9yPFdlYklj
b25VUkw+KCk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dl
YkZyYW1lSW1wbC5oIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViRnJhbWVJbXBsLmgK
aW5kZXggMGNlOThmYjVjMGVjMDhiMzJjMGJjYzU2NWQwZDY5YzJkZmEyZTJhNC4uMzQ5NGJhZTJk
NTc3MDI1MGI4ZWY0YzMwMmZhZDlkOTZmZmY3ZTNlZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9jaHJvbWl1bS9zcmMvV2ViRnJhbWVJbXBsLmgKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1
bS9zcmMvV2ViRnJhbWVJbXBsLmgKQEAgLTc3LDcgKzc3LDcgQEAgcHVibGljOgogICAgIHZpcnR1
YWwgV2ViU3RyaW5nIGFzc2lnbmVkTmFtZSgpIGNvbnN0OwogICAgIHZpcnR1YWwgdm9pZCBzZXRO
YW1lKGNvbnN0IFdlYlN0cmluZyYpOwogICAgIHZpcnR1YWwgbG9uZyBsb25nIGlkZW50aWZpZXIo
KSBjb25zdDsKLSAgICB2aXJ0dWFsIFdlYlZlY3RvcjxXZWJJY29uVVJMPiBpY29uVVJMcyhpbnQg
aWNvblR5cGVzKSBjb25zdDsKKyAgICB2aXJ0dWFsIFdlYlZlY3RvcjxXZWJJY29uVVJMPiBpY29u
VVJMcyhpbnQgaWNvblR5cGVzTWFzaykgY29uc3Q7CiAgICAgdmlydHVhbCBXZWJTaXplIHNjcm9s
bE9mZnNldCgpIGNvbnN0OwogICAgIHZpcnR1YWwgdm9pZCBzZXRTY3JvbGxPZmZzZXQoY29uc3Qg
V2ViU2l6ZSYpOwogICAgIHZpcnR1YWwgV2ViU2l6ZSBtaW5pbXVtU2Nyb2xsT2Zmc2V0KCkgY29u
c3Q7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L3dpbi9XZWJLaXQudmNwcm9qL1dlYktpdEV4
cG9ydHMuZGVmLmluIGIvU291cmNlL1dlYktpdC93aW4vV2ViS2l0LnZjcHJvai9XZWJLaXRFeHBv
cnRzLmRlZi5pbgppbmRleCBmZmE1MjcxMmEwY2QyYWEyNzYzNTc3ODdjNzI3NGM0MjU2NTQ3MmM4
Li5mYjBlZWI5ZTY3ODRkYWFhMmRhM2Q5ODg5NDg3OTAyOGUwOGI5YzlkIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L3dpbi9XZWJLaXQudmNwcm9qL1dlYktpdEV4cG9ydHMuZGVmLmluCisrKyBi
L1NvdXJjZS9XZWJLaXQvd2luL1dlYktpdC52Y3Byb2ovV2ViS2l0RXhwb3J0cy5kZWYuaW4KQEAg
LTMyNSw3ICszMjUsOCBAQCBFWFBPUlRTCiAgICAgICAgID9zZXRBbGxvd3NSb3VuZGluZ0hhY2tz
QFRleHRSdW5AV2ViQ29yZUBAU0FYX05AWgogICAgICAgICA/cmVnaXN0ZXJVUkxTY2hlbWVBc0J5
cGFzc2luZ0NvbnRlbnRTZWN1cml0eVBvbGljeUBTY2hlbWVSZWdpc3RyeUBXZWJDb3JlQEBTQVhB
QlZTdHJpbmdAV1RGQEBAWgogICAgICAgICA/cmVtb3ZlVVJMU2NoZW1lUmVnaXN0ZXJlZEFzQnlw
YXNzaW5nQ29udGVudFNlY3VyaXR5UG9saWN5QFNjaGVtZVJlZ2lzdHJ5QFdlYkNvcmVAQFNBWEFC
VlN0cmluZ0BXVEZAQEBaCi0gICAgICAgID9pY29uVVJMc0BEb2N1bWVudEBXZWJDb3JlQEBRQUVB
QlY/JFZlY3RvckBVSWNvblVSTEBXZWJDb3JlQEAkMEFAQFdURkBAWFoKKyAgICAgICAgP3Nob3J0
Y3V0SWNvblVSTHNARG9jdW1lbnRAV2ViQ29yZUBAUUFFQUJWPyRWZWN0b3JAVUljb25VUkxAV2Vi
Q29yZUBAJDBBQEBXVEZAQFhaCisgICAgICAgID9pY29uVVJMc0BEb2N1bWVudEBXZWJDb3JlQEBR
QUVBQlY/JFZlY3RvckBVSWNvblVSTEBXZWJDb3JlQEAkMEFAQFdURkBASEBaCiAgICAgICAgID9u
dW1iZXJPZlBhZ2VzQFByaW50Q29udGV4dEBXZWJDb3JlQEBTQUhQQVZGcmFtZUAyQEFCVkZsb2F0
U2l6ZUAyQEBaCiAgICAgICAgID9wYWdlUHJvcGVydHlAUHJpbnRDb250ZXh0QFdlYkNvcmVAQFNB
P0FWU3RyaW5nQFdURkBAUEFWRnJhbWVAMkBQQkRIQFoKICAgICAgICAgP3BhZ2VTaXplQW5kTWFy
Z2luc0luUGl4ZWxzQFByaW50Q29udGV4dEBXZWJDb3JlQEBTQT9BVlN0cmluZ0BXVEZAQFBBVkZy
YW1lQDJASEhISEhISEBaCmRpZmYgLS1naXQgYS9Tb3VyY2UvYXV0b3Rvb2xzL3N5bWJvbHMuZmls
dGVyIGIvU291cmNlL2F1dG90b29scy9zeW1ib2xzLmZpbHRlcgppbmRleCA5ZTFjZjY1N2FiM2Iw
ZTYwMmNkOWNkNWFmOTM4NGZlNDAxZGFhOWUxLi5iMDNkYWQ4MjY4NGI4MjM1YjE1NzUyYmNjNGU3
ZTU5YTE3NWNkMTUxIDEwMDY0NAotLS0gYS9Tb3VyY2UvYXV0b3Rvb2xzL3N5bWJvbHMuZmlsdGVy
CisrKyBiL1NvdXJjZS9hdXRvdG9vbHMvc3ltYm9scy5maWx0ZXIKQEAgLTQxLDcgKzQxLDggQEAg
X1pON1dlYkNvcmU0dG9KU0VQTjNKU0M5RXhlY1N0YXRlRVBOU18xN0pTRE9NR2xvYmFsT2JqZWN0
RVBOU181UmFuZ2VFOwogX1pON1dlYkNvcmU1UmFuZ2U2Y3JlYXRlRU4zV1RGMTBQYXNzUmVmUHRy
SU5TXzhEb2N1bWVudEVFRU5TMl9JTlNfNE5vZGVFRUVpUzZfaTsKIF9aTjdXZWJDb3JlNVJhbmdl
RDFFdjsKIF9aTjdXZWJDb3JlOERvY3VtZW50MzZ1cGRhdGVMYXlvdXRJZ25vcmVQZW5kaW5nU3R5
bGVzaGVldHNFdjsKLV9aTjdXZWJDb3JlOERvY3VtZW50OGljb25VUkxzRXY7CitfWk43V2ViQ29y
ZThEb2N1bWVudDhpY29uVVJMc0VpOworX1pON1dlYkNvcmU4RG9jdW1lbnQxNnNob3J0Y3V0SWNv
blVSTHNFdjsKIF9aTjdXZWJDb3JlOFNldHRpbmdzMTltaW5ET01UaW1lckludGVydmFsRXY7CiBf
Wk43V2ViQ29yZThTZXR0aW5nczIyc2V0TWluRE9NVGltZXJJbnRlcnZhbEVkOwogX1pON1dlYkNv
cmU5SFRNTE5hbWVzOGlucHV0VGFnRTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxv
ZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCBlM2MxODkwODY3NjkxMTM4YWI3YzRmZWJh
OGQ0OTQwZDVjNGU0ZWViLi40NjE1NmJhNTI4Y2EyNDMxY2Y3Y2Q3Mjg3NDUzM2M3NjhhN2YzNjI1
IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTkgQEAKKzIwMTMtMDMtMDEgIFJ1c2xhbiBBYmRpa2VldiAgPGFy
dXNsYW5AY2hyb21pdW0ub3JnPgorCisgICAgICAgIDxsaW5rIHJlbD0iYXBwbGUtdG91Y2gtaWNv
biI+IHRhZyBpcyBub3QgaG9ub3JlZCBvbiBDTk4uY29tLCB3b3JrZmxvd3kuY29tIGV0YworICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTA5MDYxCisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkZWQgdGVzdCBm
b3IgYXBwbGUtdG91Y2gtaWNvbiBpbiBhbGxJY29uVVJMcygpLgorICAgICAgICBDaGFuZ2VkIGlj
b25VUkxzKCkgdG8gc2hvcnRjdXRJY29uVVJMcygpLgorCisgICAgICAgICogZmFzdC9kb20vaWNv
bi11cmwtY2hhbmdlLmh0bWw6CisgICAgICAgICogZmFzdC9kb20vaWNvbi11cmwtbGlzdC1hcHBs
ZS10b3VjaC1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZG9tL2ljb24tdXJs
LWxpc3QtYXBwbGUtdG91Y2guaHRtbDogQWRkZWQuCisgICAgICAgICogZmFzdC9kb20vaWNvbi11
cmwtbGlzdC5odG1sOgorICAgICAgICAqIGZhc3QvZG9tL2ljb24tdXJsLXByb3BlcnR5Lmh0bWw6
CisKIDIwMTMtMDMtMDEgIMOBZMOhbSBLYWxsYWkgIDxrYWRhbUBpbmYudS1zemVnZWQuaHU+CiAK
ICAgICAgICAgW1F0XSBVbnJldmlld2VkIGdhcmRlbmluZy4KZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2Zhc3QvZG9tL2ljb24tdXJsLWNoYW5nZS5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20v
aWNvbi11cmwtY2hhbmdlLmh0bWwKaW5kZXggODJkNTM0ZWVjZGE3Y2QxNGFiNTU5OTMxYTIyYjI3
OTkyYTZmZTVlNy4uOTkzMjcyZWRiYzJmYTJmNjY3YWM0ODk5ZTY3MGMyYzUwNzBlZGQxZiAxMDA2
NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vaWNvbi11cmwtY2hhbmdlLmh0bWwKKysrIGIv
TGF5b3V0VGVzdHMvZmFzdC9kb20vaWNvbi11cmwtY2hhbmdlLmh0bWwKQEAgLTQ1LDcgKzQ1LDcg
QEAgZnVuY3Rpb24gcnVuVGVzdHMoKSB7CiAKICAgICAvLyBjaGVjayB0aGF0IHRoZSBVUkwgbGlz
dCBpbiB0aGUgZG9jdW1lbnQgaXMgYXMgd2UgZXhwZWN0CiAgICAgdmFyIGV4cGVjdGVkVVJMcyA9
ICJodHRwOi8vdGVzdC5jb20vb2xkZmF2aWNvbi5pY28iOwotICAgIHZhciBpY29uVVJMcyA9IHdp
bmRvdy5pbnRlcm5hbHMuaWNvblVSTHMoZG9jdW1lbnQpOworICAgIHZhciBpY29uVVJMcyA9IHdp
bmRvdy5pbnRlcm5hbHMuc2hvcnRjdXRJY29uVVJMcyhkb2N1bWVudCk7CiAgICAgaWYgKGV4cGVj
dGVkVVJMcyA9PSBpY29uVVJMc1swXSkKICAgICAgICAgdGVzdFBhc3NlZCgnVVJMIGxpc3QgbWF0
Y2hlcyBleHBlY3RlZCcpOwogICAgIGVsc2UKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3Qv
ZG9tL2ljb24tdXJsLWxpc3QtYXBwbGUtdG91Y2gtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMv
ZmFzdC9kb20vaWNvbi11cmwtbGlzdC1hcHBsZS10b3VjaC1leHBlY3RlZC50eHQKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uNzc0NDJmMGY3YzczZGNhYmZiM2MzNmEzNzc2ZTA1YTgxMjg0MmVmZgotLS0gL2Rldi9udWxs
CisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL2ljb24tdXJsLWxpc3QtYXBwbGUtdG91Y2gtZXhw
ZWN0ZWQudHh0CkBAIC0wLDAgKzEsMyBAQAorVGVzdHMgdGhhdCBhbGwgZmF2aWNvbnMgYW5kIHRv
dWNoIGljb25zIChpZiBFTkFCTEUoVE9VQ0hfSUNPTl9MT0FESU5HKSkgYXJlIGluIGRvY3VtZW50
Lmljb25VUkxzKCkKK2h0dHA6Ly90ZXN0LmNvbS9vbGRmYXZpY29uLmljbworCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9pY29uLXVybC1saXN0LWFwcGxlLXRvdWNoLmh0bWwgYi9M
YXlvdXRUZXN0cy9mYXN0L2RvbS9pY29uLXVybC1saXN0LWFwcGxlLXRvdWNoLmh0bWwKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uOTQxMjMwZDA5YWQxYmJlYzY2MGMzYTY5NmFhYWMxODdkY2ZkYmFlNwotLS0gL2Rldi9u
dWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL2ljb24tdXJsLWxpc3QtYXBwbGUtdG91Y2gu
aHRtbApAQCAtMCwwICsxLDI4IEBACis8aHRtbD4KKzxoZWFkPgorPHRpdGxlPk9yaWdpbmFsIFRp
dGxlPC90aXRsZT4KKzxsaW5rIHJlbD0ic2hvcnRjdXQgaWNvbiIgdHlwZT0iaW1hZ2UveC1pY29u
IiBocmVmPSJodHRwOi8vdGVzdC5jb20vb2xkZmF2aWNvbi5pY28iLz4KKzxsaW5rIHJlbD0iYXBw
bGUtdG91Y2gtaWNvbiIgdHlwZT0iaW1hZ2UvcG5nIiBocmVmPSJodHRwOi8vdGVzdC5jb20vaS90
b3VjaC5wbmciLz4KKzxsaW5rIHJlbD0iYXBwbGUtdG91Y2gtaWNvbi1wcmVjb21wb3NlZCIgdHlw
ZT0iaW1hZ2UvcG5nIiBocmVmPSJodHRwOi8vdGVzdC5jb20vaS90b3VjaC1wcmVjb21wb3NlZC5w
bmciLz4KKzxzY3JpcHQgc3JjPSIuLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2Ny
aXB0PgorPHNjcmlwdD4KK2Z1bmN0aW9uIHJ1blRlc3RzKCkgeworICAgIGlmICh3aW5kb3cudGVz
dFJ1bm5lcikKKyAgICAgICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7CisKKyAgICBkZWJ1Zygn
VGVzdHMgdGhhdCBhbGwgZmF2aWNvbnMgYW5kIHRvdWNoIGljb25zIChpZiBFTkFCTEUoVE9VQ0hf
SUNPTl9MT0FESU5HKSkgYXJlIGluIGRvY3VtZW50Lmljb25VUkxzKCknKTsKKworICAgIC8vIEZl
dGNoIHRoZSBhY3R1YWwgbGlzdCBvZiBpY29uIFVSTHMuCisgICAgdmFyIGFjdHVhbFVSTHMgPSB3
aW5kb3cuaW50ZXJuYWxzLmFsbEljb25VUkxzKGRvY3VtZW50KTsKKworICAgIC8vIFByaW50IG91
dCB0aGUgVVJMIGxpc3QgaW4gdGhlIGRvY3VtZW50IHRvIG1hdGNoIGl0IGFnYWluc3QgdGhlIGV4
cGVjdGVkIGxpc3QuCisgICAgLy8gTm90ZSB0aGF0IHRoZSBleHBlY3RlZCBvcmRlciBpcyByZXZl
cnNlIHRvIGVuc3VyZSB0aGF0IGljb25zIHNlZW4gbGF0ZXIKKyAgICAvLyB0YWtlIHByZWNlZGVu
Y2UgYXMgcmVxdWlyZWQgYnkgdGhlIHNwZWMuCisgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBhY3R1
YWxVUkxzLmxlbmd0aDsgaSsrKQorICAgICAgICBkZWJ1ZyhhY3R1YWxVUkxzW2ldKTsKK30KKzwv
c2NyaXB0PgorPC9oZWFkPgorPGJvZHkgb25sb2FkPSdydW5UZXN0cygpOyc+Cis8L2JvZHk+Cis8
L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9pY29uLXVybC1saXN0Lmh0
bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9pY29uLXVybC1saXN0Lmh0bWwKaW5kZXggZGRhMDBl
NzJlZmZiZmUxZDJiMjkxNmFjODIzZDRjYjhlZTQ2ZDQ1NC4uNmQzZGZkYTZhNWRlNDk5YTA3ZTEy
NTk3NTc4ZjM0MGVkZTgzN2Y1ZiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vaWNv
bi11cmwtbGlzdC5odG1sCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL2ljb24tdXJsLWxpc3Qu
aHRtbApAQCAtNDgsNyArNDgsNyBAQCBmdW5jdGlvbiBydW5UZXN0cygpIHsKICAgICB2YXIgZXhw
ZWN0ZWRVUkwwID0gImh0dHA6Ly90ZXN0LmNvbS9iYXJmYXZpY29uLmljbyI7CiAgICAgdmFyIGV4
cGVjdGVkVVJMMSA9ICJodHRwOi8vdGVzdC5jb20vZm9vZmF2aWNvbi5pY28iOwogICAgIHZhciBl
eHBlY3RlZFVSTDIgPSAiaHR0cDovL3Rlc3QuY29tL25ld2Zhdmljb24uaWNvIjsKLSAgICB2YXIg
aWNvblVSTHMgPSB3aW5kb3cuaW50ZXJuYWxzLmljb25VUkxzKGRvY3VtZW50KTsKKyAgICB2YXIg
aWNvblVSTHMgPSB3aW5kb3cuaW50ZXJuYWxzLnNob3J0Y3V0SWNvblVSTHMoZG9jdW1lbnQpOwog
ICAgIGlmIChleHBlY3RlZFVSTDAgPT0gaWNvblVSTHNbMF0gJiYgZXhwZWN0ZWRVUkwxID09IGlj
b25VUkxzWzFdICYmIGV4cGVjdGVkVVJMMiA9PSBpY29uVVJMc1syXSkgCiAgICAgICAgIHRlc3RQ
YXNzZWQoJ1VSTCBsaXN0IG1hdGNoZXMgZXhwZWN0ZWQnKTsKICAgICBlbHNlCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9pY29uLXVybC1wcm9wZXJ0eS5odG1sIGIvTGF5b3V0VGVz
dHMvZmFzdC9kb20vaWNvbi11cmwtcHJvcGVydHkuaHRtbAppbmRleCA4YTZiOWMyMzg4NTA2ZTBl
Mjg0MmQzN2VjMDcxMDg1NWJmNGZiOWY1Li4yZDFjMDEyMTU3MWE5N2JmMTU0M2Q0MTY1NDZmNzY4
ZTc1MTYxZWQzIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9pY29uLXVybC1wcm9w
ZXJ0eS5odG1sCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL2ljb24tdXJsLXByb3BlcnR5Lmh0
bWwKQEAgLTQzLDcgKzQzLDcgQEAgZnVuY3Rpb24gcnVuVGVzdHMoKSB7CiAKICAgICAvLyBjaGVj
ayB0aGF0IHRoZSBVUkwgbGlzdCBpbiB0aGUgZG9jdW1lbnQgaXMgYXMgd2UgZXhwZWN0CiAgICAg
dmFyIGV4cGVjdGVkVVJMcyA9ICJodHRwOi8vdGVzdC5jb20vbmV3ZmF2aWNvbi5pY28iOwotICAg
IHZhciBpY29uVVJMcyA9IHdpbmRvdy5pbnRlcm5hbHMuaWNvblVSTHMoZG9jdW1lbnQpOworICAg
IHZhciBpY29uVVJMcyA9IHdpbmRvdy5pbnRlcm5hbHMuc2hvcnRjdXRJY29uVVJMcyhkb2N1bWVu
dCk7CiAgICAgaWYgKGV4cGVjdGVkVVJMcyA9PSBpY29uVVJMc1swXSkKICAgICAgICAgZGVidWdP
dXRwdXQoJ1BBU1MgLSBVUkwgbGlzdCBtYXRjaGVzIGV4cGVjdGVkJyk7CiAgICAgZWxzZQpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vZmFzdC9kb20vaWNvbi11cmwt
bGlzdC1hcHBsZS10b3VjaC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJv
bWl1bS9mYXN0L2RvbS9pY29uLXVybC1saXN0LWFwcGxlLXRvdWNoLWV4cGVjdGVkLnR4dApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi4yNGRiYzRkMGE4MGEzYTI5ODdmOTJjNTMxY2RlMzI4OGIzNTVmM2E2Ci0tLSAvZGV2
L251bGwKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vZmFzdC9kb20vaWNvbi11
cmwtbGlzdC1hcHBsZS10b3VjaC1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw1IEBACitUZXN0cyB0
aGF0IGFsbCBmYXZpY29ucyBhbmQgdG91Y2ggaWNvbnMgKGlmIEVOQUJMRShUT1VDSF9JQ09OX0xP
QURJTkcpKSBhcmUgaW4gZG9jdW1lbnQuaWNvblVSTHMoKQoraHR0cDovL3Rlc3QuY29tL2kvdG91
Y2gtcHJlY29tcG9zZWQucG5nCitodHRwOi8vdGVzdC5jb20vaS90b3VjaC5wbmcKK2h0dHA6Ly90
ZXN0LmNvbS9vbGRmYXZpY29uLmljbworCmRpZmYgLS1naXQgYS9DaGFuZ2VMb2cgYi9DaGFuZ2VM
b2cKaW5kZXggOTAwNGQwNjk4ZDA4NzQ3ZmZmN2Y1MzRkMmQ3MmJjNmFhYmViNDk2MC4uOTllZmQx
YzM0NDc3YTU1Y2ZkODk1OTkzNWUyNjQyZDM4NmE4M2NiNiAxMDA2NDQKLS0tIGEvQ2hhbmdlTG9n
CisrKyBiL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEyIEBACisyMDEzLTAzLTAxICBSdXNsYW4gQWJk
aWtlZXYgIDxhcnVzbGFuQGNocm9taXVtLm9yZz4KKworICAgICAgICA8bGluayByZWw9ImFwcGxl
LXRvdWNoLWljb24iPiB0YWcgaXMgbm90IGhvbm9yZWQgb24gQ05OLmNvbSwgd29ya2Zsb3d5LmNv
bSBldGMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEw
OTA2MQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICog
U291cmNlL2F1dG90b29scy9zeW1ib2xzLmZpbHRlcjoKKwogMjAxMy0wMi0yNyAgWmFuIERvYmVy
c2VrICA8emRvYmVyc2VrQGlnYWxpYS5jb20+CiAKICAgICAgICAgW0dUS10gRGlzYWJsZSBNYXRo
TUwgc3VwcG9ydCBpbiByZWxlYXNlIGJ1aWxkcwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>191088</attachid>
            <date>2013-03-01 18:48:48 -0800</date>
            <delta_ts>2013-03-04 10:09:23 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-109061-20130301184458.patch</filename>
            <type>text/plain</type>
            <size>22668</size>
            <attacher name="Ruslan Abdikeev">aruslan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQ0NTIxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMGQyY2I2ZDU0NmJjNDY5
NTQ0MzdiMTkzZTdhN2QzOGIyZTBjZWZmYy4uODNmYWUwOGJhNzUzYzM5NzliNjM3MDc0YzgyYmQ2
MWEyMDNhZmI2MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM1IEBACisyMDEzLTAzLTAxICBSdXNs
YW4gQWJkaWtlZXYgIDxhcnVzbGFuQGNocm9taXVtLm9yZz4KKworICAgICAgICA8bGluayByZWw9
ImFwcGxlLXRvdWNoLWljb24iPiB0YWcgaXMgbm90IGhvbm9yZWQgb24gQ05OLmNvbSwgd29ya2Zs
b3d5LmNvbSBldGMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTEwOTA2MQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgIFRlc3Q6IGZhc3QvZG9tL2ljb24tdXJsLWxpc3QtYXBwbGUtdG91Y2guaHRtbAorCisgICAg
ICAgIEFkZGVkIGljb25UeXBlcyBwYXJhbWV0ZXIgdG8gRG9jdW1lbnQ6Omljb25VUkxzKCkuCisg
ICAgICAgIEFkZGVkIERvY3VtZW50OjpzaG9ydGN1dEljb25VUkxzKCkgd2l0aCBvcmlnaW5hbCBz
ZW1hbnRpY3Mgb2YgaWNvblVSTHMoKS4KKyAgICAgICAgRml4ZWQgSWNvbkNvbnRyb2xsZXIuY3Bw
IHRvIHByb3ZpZGUgaWNvblR5cGVzTWFzayB0byBpY29uVVJMcygpLgorICAgICAgICBSZW5hbWVk
IGljb25UeXBlcyB0byBpY29uVHlwZXNNYXNrIHRvIG1ha2UgdGhlIG1lYW5pbmcgY2xlYXJlci4K
KworICAgICAgICAqIFdlYkNvcmUuZXhwLmluOgorICAgICAgICAqIGRvbS9Eb2N1bWVudC5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudDo6c2hvcnRjdXRJY29uVVJMcyk6CisgICAgICAg
IChXZWJDb3JlKToKKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50OjppY29uVVJMcyk6CisgICAg
ICAgICogZG9tL0RvY3VtZW50Lmg6CisgICAgICAgIChEb2N1bWVudCk6CisgICAgICAgICogbG9h
ZGVyL2ljb24vSWNvbkNvbnRyb2xsZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SWNvbkNvbnRy
b2xsZXI6Omljb25VUkwpOgorICAgICAgICAoV2ViQ29yZTo6SWNvbkNvbnRyb2xsZXI6OnVybHNG
b3JUeXBlcyk6CisgICAgICAgICogdGVzdGluZy9JbnRlcm5hbHMuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6SW50ZXJuYWxzOjppY29uVVJMcyk6CisgICAgICAgIChXZWJDb3JlOjpJbnRlcm5hbHM6
OnNob3J0Y3V0SWNvblVSTHMpOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChXZWJDb3Jl
OjpJbnRlcm5hbHM6OmFsbEljb25VUkxzKToKKyAgICAgICAgKiB0ZXN0aW5nL0ludGVybmFscy5o
OgorICAgICAgICAqIHRlc3RpbmcvSW50ZXJuYWxzLmlkbDoKKwogMjAxMy0wMy0wMSAgQmVhciBU
cmF2aXMgIDxiZXRyYXZpc0BhZG9iZS5jb20+CiAKICAgICAgICAgW2NzcyBleGNsdXNpb25zXSBN
b3ZlIEV4Y2x1c2lvblNoYXBlSW5zaWRlSW5mbyBpbnRvIFJlbmRlckJsb2NrUmFyZURhdGEKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZXhwLmluIGIvU291cmNlL1dlYkNvcmUv
V2ViQ29yZS5leHAuaW4KaW5kZXggMDk3MmM3N2FjNWYyNzc0MzIxOGE1N2RmYzQ4YzhiYjAwMmIy
ZjMyNS4uMGU1ZDJiZGUzMjg1MzM3Njk0YWJhYjcyNTYzYzlhYzNhMGY2N2YzMSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5leHAuaW4KKysrIGIvU291cmNlL1dlYkNvcmUvV2Vi
Q29yZS5leHAuaW4KQEAgLTk4MCw3ICs5ODAsOCBAQCBfX1pON1dlYkNvcmU4RG9jdW1lbnQzNnVw
ZGF0ZUxheW91dElnbm9yZVBlbmRpbmdTdHlsZXNoZWV0c0V2CiBfX1pON1dlYkNvcmU4RG9jdW1l
bnQ0aGVhZEV2CiBfX1pON1dlYkNvcmU4Rm9ybURhdGEyOHJlbW92ZUdlbmVyYXRlZEZpbGVzSWZO
ZWVkZWRFdgogX19aTjdXZWJDb3JlOEZvcm1EYXRhNmRlY29kZUVSTjNXVEY3RGVjb2RlckUKLV9f
Wk43V2ViQ29yZThEb2N1bWVudDhpY29uVVJMc0V2CitfX1pON1dlYkNvcmU4RG9jdW1lbnQ4aWNv
blVSTHNFaQorX19aTjdXZWJDb3JlOERvY3VtZW50MTZzaG9ydGN1dEljb25VUkxzRXYKIF9fWk43
V2ViQ29yZThGb3JtRGF0YTZjcmVhdGVFUEt2bQogX19aTjdXZWJDb3JlOEZvcm1EYXRhRDFFdgog
X19aTjdXZWJDb3JlOEdyYWRpZW50MTJhZGRDb2xvclN0b3BFZlJLTlNfNUNvbG9yRQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Rv
bS9Eb2N1bWVudC5jcHAKaW5kZXggMjgzNWJkMDFlNzc1NTI0YTJiZGNhMmI4Mjc1ZjIyZTEyZTA4
MjYwZS4uNmQ5ODI3NWVmNzkyNjAzOGEzMGZlNTc2ZmU3M2FkNjFmOTJiMGQwYyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9k
b20vRG9jdW1lbnQuY3BwCkBAIC00NDk5LDE0ICs0NDk5LDE5IEBAIFBhc3NSZWZQdHI8WFBhdGhS
ZXN1bHQ+IERvY3VtZW50OjpldmFsdWF0ZShjb25zdCBTdHJpbmcmIGV4cHJlc3Npb24sCiAgICAg
cmV0dXJuIG1feHBhdGhFdmFsdWF0b3ItPmV2YWx1YXRlKGV4cHJlc3Npb24sIGNvbnRleHROb2Rl
LCByZXNvbHZlciwgdHlwZSwgcmVzdWx0LCBlYyk7CiB9CiAKLWNvbnN0IFZlY3RvcjxJY29uVVJM
PiYgRG9jdW1lbnQ6Omljb25VUkxzKCkKK2NvbnN0IFZlY3RvcjxJY29uVVJMPiYgRG9jdW1lbnQ6
OnNob3J0Y3V0SWNvblVSTHMoKQoreworICAgIC8vIEluY2x1ZGUgYW55IGljb25zIHdoZXJlIHR5
cGUgPSBsaW5rLCByZWwgPSAic2hvcnRjdXQgaWNvbiIuCisgICAgcmV0dXJuIGljb25VUkxzKEZh
dmljb24pOworfQorCitjb25zdCBWZWN0b3I8SWNvblVSTD4mIERvY3VtZW50OjppY29uVVJMcyhp
bnQgaWNvblR5cGVzTWFzaykKIHsKICAgICBtX2ljb25VUkxzLmNsZWFyKCk7CiAKICAgICBpZiAo
IWhlYWQoKSB8fCAhKGhlYWQoKS0+Y2hpbGRyZW4oKSkpCiAgICAgICAgIHJldHVybiBtX2ljb25V
UkxzOwogCi0gICAgLy8gSW5jbHVkZSBhbnkgaWNvbnMgd2hlcmUgdHlwZSA9IGxpbmssIHJlbCA9
ICJzaG9ydGN1dCBpY29uIi4KICAgICBSZWZQdHI8SFRNTENvbGxlY3Rpb24+IGNoaWxkcmVuID0g
aGVhZCgpLT5jaGlsZHJlbigpOwogICAgIHVuc2lnbmVkIGludCBsZW5ndGggPSBjaGlsZHJlbi0+
bGVuZ3RoKCk7CiAgICAgZm9yICh1bnNpZ25lZCBpbnQgaSA9IDA7IGkgPCBsZW5ndGg7ICsraSkg
ewpAQCAtNDUxNCw3ICs0NTE5LDcgQEAgY29uc3QgVmVjdG9yPEljb25VUkw+JiBEb2N1bWVudDo6
aWNvblVSTHMoKQogICAgICAgICBpZiAoIWNoaWxkLT5oYXNUYWdOYW1lKGxpbmtUYWcpKQogICAg
ICAgICAgICAgY29udGludWU7CiAgICAgICAgIEhUTUxMaW5rRWxlbWVudCogbGlua0VsZW1lbnQg
PSBzdGF0aWNfY2FzdDxIVE1MTGlua0VsZW1lbnQqPihjaGlsZCk7Ci0gICAgICAgIGlmIChsaW5r
RWxlbWVudC0+aWNvblR5cGUoKSAhPSBGYXZpY29uKQorICAgICAgICBpZiAoIShsaW5rRWxlbWVu
dC0+aWNvblR5cGUoKSAmIGljb25UeXBlc01hc2spKQogICAgICAgICAgICAgY29udGludWU7CiAg
ICAgICAgIGlmIChsaW5rRWxlbWVudC0+aHJlZigpLmlzRW1wdHkoKSkKICAgICAgICAgICAgIGNv
bnRpbnVlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmggYi9Tb3Vy
Y2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaAppbmRleCBkOGI5ODYzMjk2OWIxOWJlMDhhMWI0N2Q2
YWY5NDNiZDQwN2I0OGQ4Li4wNjM2M2QzYTU0ZWIyNjkyMWRjMGJhMTA0OTM2NGVkMzhiOGNmYzU1
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9kb20vRG9jdW1lbnQuaApAQCAtOTQzLDcgKzk0Myw4IEBAIHB1YmxpYzoKICAgICBi
b29sIGhhc05vZGVzV2l0aFBsYWNlaG9sZGVyU3R5bGUoKSBjb25zdCB7IHJldHVybiBtX2hhc05v
ZGVzV2l0aFBsYWNlaG9sZGVyU3R5bGU7IH0KICAgICB2b2lkIHNldEhhc05vZGVzV2l0aFBsYWNl
aG9sZGVyU3R5bGUoKSB7IG1faGFzTm9kZXNXaXRoUGxhY2Vob2xkZXJTdHlsZSA9IHRydWU7IH0K
IAotICAgIGNvbnN0IFZlY3RvcjxJY29uVVJMPiYgaWNvblVSTHMoKTsKKyAgICBjb25zdCBWZWN0
b3I8SWNvblVSTD4mIHNob3J0Y3V0SWNvblVSTHMoKTsKKyAgICBjb25zdCBWZWN0b3I8SWNvblVS
TD4mIGljb25VUkxzKGludCBpY29uVHlwZXNNYXNrKTsKICAgICB2b2lkIGFkZEljb25VUkwoY29u
c3QgU3RyaW5nJiB1cmwsIGNvbnN0IFN0cmluZyYgbWltZVR5cGUsIGNvbnN0IFN0cmluZyYgc2l6
ZSwgSWNvblR5cGUpOwogCiAgICAgdm9pZCBzZXRVc2VTZWN1cmVLZXlib2FyZEVudHJ5V2hlbkFj
dGl2ZShib29sKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9pY29uL0ljb25D
b250cm9sbGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9pY29uL0ljb25Db250cm9sbGVy
LmNwcAppbmRleCA3NGZhYTk1OWNhYmUzNDQ4MWEwZjU3OWY3ZTUyNDA4MjJlMDEzODA0Li5iMjU3
ZmEwYmVlNTcxMWNmZGEyZDJkOWYxNzBjZjQ4OTA4NjA1ZjliIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9sb2FkZXIvaWNvbi9JY29uQ29udHJvbGxlci5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvbG9hZGVyL2ljb24vSWNvbkNvbnRyb2xsZXIuY3BwCkBAIC02OCwzMyArNjgsMzEgQEAgS1VS
TCBJY29uQ29udHJvbGxlcjo6dXJsKCkKIEljb25VUkwgSWNvbkNvbnRyb2xsZXI6Omljb25VUkwo
SWNvblR5cGUgaWNvblR5cGUpIGNvbnN0CiB7CiAgICAgSWNvblVSTCByZXN1bHQ7Ci0gICAgY29u
c3QgVmVjdG9yPEljb25VUkw+JiBpY29uVVJMcyA9IG1fZnJhbWUtPmRvY3VtZW50KCktPmljb25V
UkxzKCk7CisgICAgY29uc3QgVmVjdG9yPEljb25VUkw+JiBpY29uVVJMcyA9IG1fZnJhbWUtPmRv
Y3VtZW50KCktPmljb25VUkxzKGljb25UeXBlKTsKICAgICBWZWN0b3I8SWNvblVSTD46OmNvbnN0
X2l0ZXJhdG9yIGl0ZXIoaWNvblVSTHMuYmVnaW4oKSk7CiAgICAgZm9yICg7IGl0ZXIgIT0gaWNv
blVSTHMuZW5kKCk7ICsraXRlcikgewotICAgICAgICBpZiAoaXRlci0+bV9pY29uVHlwZSA9PSBp
Y29uVHlwZSkgewotICAgICAgICAgICAgaWYgKHJlc3VsdC5tX2ljb25VUkwuaXNFbXB0eSgpIHx8
ICFpdGVyLT5tX21pbWVUeXBlLmlzRW1wdHkoKSkKLSAgICAgICAgICAgICAgICByZXN1bHQgPSAq
aXRlcjsKLSAgICAgICAgfQorICAgICAgICBpZiAocmVzdWx0Lm1faWNvblVSTC5pc0VtcHR5KCkg
fHwgIWl0ZXItPm1fbWltZVR5cGUuaXNFbXB0eSgpKQorICAgICAgICAgICAgcmVzdWx0ID0gKml0
ZXI7CiAgICAgfQogCiAgICAgcmV0dXJuIHJlc3VsdDsKIH0KIAotSWNvblVSTHMgSWNvbkNvbnRy
b2xsZXI6OnVybHNGb3JUeXBlcyhpbnQgaWNvblR5cGVzKQorSWNvblVSTHMgSWNvbkNvbnRyb2xs
ZXI6OnVybHNGb3JUeXBlcyhpbnQgaWNvblR5cGVzTWFzaykKIHsKICAgICBJY29uVVJMcyBpY29u
VVJMczsKICAgICBpZiAobV9mcmFtZS0+dHJlZSgpICYmIG1fZnJhbWUtPnRyZWUoKS0+cGFyZW50
KCkpCiAgICAgICAgIHJldHVybiBpY29uVVJMczsKICAgICAgICAgCi0gICAgaWYgKGljb25UeXBl
cyAmIEZhdmljb24gJiYgIWFwcGVuZFRvSWNvblVSTHMoRmF2aWNvbiwgJmljb25VUkxzKSkKKyAg
ICBpZiAoaWNvblR5cGVzTWFzayAmIEZhdmljb24gJiYgIWFwcGVuZFRvSWNvblVSTHMoRmF2aWNv
biwgJmljb25VUkxzKSkKICAgICAgICAgaWNvblVSTHMuYXBwZW5kKGRlZmF1bHRVUkwoRmF2aWNv
bikpOwogCiAjaWYgRU5BQkxFKFRPVUNIX0lDT05fTE9BRElORykKICAgICBpbnQgbWlzc2VkSWNv
bnMgPSAwOwotICAgIGlmIChpY29uVHlwZXMgJiBUb3VjaFByZWNvbXBvc2VkSWNvbikKKyAgICBp
ZiAoaWNvblR5cGVzTWFzayAmIFRvdWNoUHJlY29tcG9zZWRJY29uKQogICAgICAgICBtaXNzZWRJ
Y29ucyArPSBhcHBlbmRUb0ljb25VUkxzKFRvdWNoUHJlY29tcG9zZWRJY29uLCAmaWNvblVSTHMp
ID8gMDoxOwogCi0gICAgaWYgKGljb25UeXBlcyAmIFRvdWNoSWNvbikKKyAgICBpZiAoaWNvblR5
cGVzTWFzayAmIFRvdWNoSWNvbikKICAgICAgIG1pc3NlZEljb25zICs9IGFwcGVuZFRvSWNvblVS
THMoVG91Y2hJY29uLCAmaWNvblVSTHMpID8gMDoxOwogCiAgICAgLy8gT25seSByZXR1cm4gdGhl
IGRlZmF1bHQgdG91Y2ggaWNvbnMgd2hlbiB0aGUgYm90aCB3ZXJlIHJlcXVpcmVkIGFuZCBuZWl0
aGVyIHdhcyBnb3R0ZW4uCkBAIC0xMDUsMTEgKzEwMyw4IEBAIEljb25VUkxzIEljb25Db250cm9s
bGVyOjp1cmxzRm9yVHlwZXMoaW50IGljb25UeXBlcykKICNlbmRpZgogCiAgICAgLy8gRmluYWxs
eSwgYXBwZW5kIGFsbCByZW1haW5pbmcgaWNvbnMgb2YgdGhpcyB0eXBlLgotICAgIGNvbnN0IFZl
Y3RvcjxJY29uVVJMPiYgYWxsSWNvblVSTHMgPSBtX2ZyYW1lLT5kb2N1bWVudCgpLT5pY29uVVJM
cygpOworICAgIGNvbnN0IFZlY3RvcjxJY29uVVJMPiYgYWxsSWNvblVSTHMgPSBtX2ZyYW1lLT5k
b2N1bWVudCgpLT5pY29uVVJMcyhpY29uVHlwZXNNYXNrKTsKICAgICBmb3IgKFZlY3RvcjxJY29u
VVJMPjo6Y29uc3RfaXRlcmF0b3IgaXRlciA9IGFsbEljb25VUkxzLmJlZ2luKCk7IGl0ZXIgIT0g
YWxsSWNvblVSTHMuZW5kKCk7ICsraXRlcikgewotICAgICAgICBpZiAoIShpdGVyLT5tX2ljb25U
eXBlICYgaWNvblR5cGVzKSkKLSAgICAgICAgICAgIGNvbnRpbnVlOwotCiAgICAgICAgIGludCBp
OwogICAgICAgICBpbnQgaWNvbkNvdW50ID0gaWNvblVSTHMuc2l6ZSgpOwogICAgICAgICBmb3Ig
KGkgPSAwOyBpIDwgaWNvbkNvdW50OyArK2kpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2xvYWRlci9pY29uL0ljb25Db250cm9sbGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvaWNv
bi9JY29uQ29udHJvbGxlci5oCmluZGV4IGIyY2FiYTJhMGE5NWQzZWQwYWQxMGIzM2IwZWRhMmQ4
MWY2MWRjMTYuLjYxZGZhNzZiNmM0ZmZjYmZmNzZkNTZiOTY0M2I1YzQ4NzU3MDY2NTggMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9pY29uL0ljb25Db250cm9sbGVyLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvbG9hZGVyL2ljb24vSWNvbkNvbnRyb2xsZXIuaApAQCAtNDgsNyArNDgs
NyBAQCBwdWJsaWM6CiAgICAgfkljb25Db250cm9sbGVyKCk7CiAKICAgICBLVVJMIHVybCgpOwot
ICAgIEljb25VUkxzIHVybHNGb3JUeXBlcyhpbnQgaWNvblR5cGVzKTsKKyAgICBJY29uVVJMcyB1
cmxzRm9yVHlwZXMoaW50IGljb25UeXBlc01hc2spOwogICAgIEljb25VUkwgaWNvblVSTChJY29u
VHlwZSkgY29uc3Q7CiAKICAgICB2b2lkIHN0YXJ0TG9hZGVyKCk7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5n
L0ludGVybmFscy5jcHAKaW5kZXggY2Y1NmYzMWZjYWVjOGRhN2JkYjliMzkxYTMwYTcwMzk1MDA1
MzFiMC4uNTkxMTVlNjE0MGNlNWY0MmUwNDkxNzZjYWU3NTFjOGQ0ZGRmNWVlNCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmNwcApAQCAtMTc1NCw5ICsxNzU0LDkgQEAgaW50IEludGVy
bmFsczo6cGFnZU51bWJlcihFbGVtZW50KiBlbGVtZW50LCBmbG9hdCBwYWdlV2lkdGgsIGZsb2F0
IHBhZ2VIZWlnaHQpCiAgICAgcmV0dXJuIFByaW50Q29udGV4dDo6cGFnZU51bWJlckZvckVsZW1l
bnQoZWxlbWVudCwgRmxvYXRTaXplKHBhZ2VXaWR0aCwgcGFnZUhlaWdodCkpOwogfQogCi1WZWN0
b3I8U3RyaW5nPiBJbnRlcm5hbHM6Omljb25VUkxzKERvY3VtZW50KiBkb2N1bWVudCkgY29uc3QK
K1ZlY3RvcjxTdHJpbmc+IEludGVybmFsczo6aWNvblVSTHMoRG9jdW1lbnQqIGRvY3VtZW50LCBp
bnQgaWNvblR5cGVzTWFzaykgY29uc3QKIHsKLSAgICBWZWN0b3I8SWNvblVSTD4gaWNvblVSTHMg
PSBkb2N1bWVudC0+aWNvblVSTHMoKTsKKyAgICBWZWN0b3I8SWNvblVSTD4gaWNvblVSTHMgPSBk
b2N1bWVudC0+aWNvblVSTHMoaWNvblR5cGVzTWFzayk7CiAgICAgVmVjdG9yPFN0cmluZz4gYXJy
YXk7CiAKICAgICBWZWN0b3I8SWNvblVSTD46OmNvbnN0X2l0ZXJhdG9yIGl0ZXIoaWNvblVSTHMu
YmVnaW4oKSk7CkBAIC0xNzY2LDYgKzE3NjYsMTYgQEAgVmVjdG9yPFN0cmluZz4gSW50ZXJuYWxz
OjppY29uVVJMcyhEb2N1bWVudCogZG9jdW1lbnQpIGNvbnN0CiAgICAgcmV0dXJuIGFycmF5Owog
fQogCitWZWN0b3I8U3RyaW5nPiBJbnRlcm5hbHM6OnNob3J0Y3V0SWNvblVSTHMoRG9jdW1lbnQq
IGRvY3VtZW50KSBjb25zdAoreworICAgIHJldHVybiBpY29uVVJMcyhkb2N1bWVudCwgRmF2aWNv
bik7Cit9CisKK1ZlY3RvcjxTdHJpbmc+IEludGVybmFsczo6YWxsSWNvblVSTHMoRG9jdW1lbnQq
IGRvY3VtZW50KSBjb25zdAoreworICAgIHJldHVybiBpY29uVVJMcyhkb2N1bWVudCwgRmF2aWNv
biB8IFRvdWNoSWNvbiB8IFRvdWNoUHJlY29tcG9zZWRJY29uKTsKK30KKwogaW50IEludGVybmFs
czo6bnVtYmVyT2ZQYWdlcyhmbG9hdCBwYWdlV2lkdGgsIGZsb2F0IHBhZ2VIZWlnaHQpCiB7CiAg
ICAgaWYgKCFmcmFtZSgpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRl
cm5hbHMuaCBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmgKaW5kZXggY2MzYmFl
NjZhZGZlNmY1NmMxMGVjNGI0N2U5M2QyNjkyZTUzYWFkNS4uZWM5MzJlNWY3NzBjZmUwZjk4NDZh
ZDA2NTExYzQ5OWJiMDIwOTU5ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9J
bnRlcm5hbHMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5oCkBAIC0y
NDksNyArMjQ5LDggQEAgcHVibGljOgogICAgIFN0cmluZyBjb3VudGVyVmFsdWUoRWxlbWVudCop
OwogCiAgICAgaW50IHBhZ2VOdW1iZXIoRWxlbWVudCosIGZsb2F0IHBhZ2VXaWR0aCA9IDgwMCwg
ZmxvYXQgcGFnZUhlaWdodCA9IDYwMCk7Ci0gICAgVmVjdG9yPFN0cmluZz4gaWNvblVSTHMoRG9j
dW1lbnQqKSBjb25zdDsKKyAgICBWZWN0b3I8U3RyaW5nPiBzaG9ydGN1dEljb25VUkxzKERvY3Vt
ZW50KikgY29uc3Q7CisgICAgVmVjdG9yPFN0cmluZz4gYWxsSWNvblVSTHMoRG9jdW1lbnQqKSBj
b25zdDsKIAogICAgIGludCBudW1iZXJPZlBhZ2VzKGZsb2F0IHBhZ2VXaWR0aEluUGl4ZWxzID0g
ODAwLCBmbG9hdCBwYWdlSGVpZ2h0SW5QaXhlbHMgPSA2MDApOwogICAgIFN0cmluZyBwYWdlUHJv
cGVydHkoU3RyaW5nLCBpbnQsIEV4Y2VwdGlvbkNvZGUmID0gQVNTRVJUX05PX0VYQ0VQVElPTikg
Y29uc3Q7CkBAIC0yOTQsNiArMjk1LDcgQEAgcHJpdmF0ZToKICAgICBleHBsaWNpdCBJbnRlcm5h
bHMoRG9jdW1lbnQqKTsKICAgICBEb2N1bWVudCogY29udGV4dERvY3VtZW50KCkgY29uc3Q7CiAg
ICAgRnJhbWUqIGZyYW1lKCkgY29uc3Q7CisgICAgVmVjdG9yPFN0cmluZz4gaWNvblVSTHMoRG9j
dW1lbnQqLCBpbnQgaWNvblR5cGVzTWFzaykgY29uc3Q7CiAKICAgICBEb2N1bWVudE1hcmtlciog
bWFya2VyQXQoTm9kZSosIGNvbnN0IFN0cmluZyYgbWFya2VyVHlwZSwgdW5zaWduZWQgaW5kZXgs
IEV4Y2VwdGlvbkNvZGUmKTsKICNpZiBFTkFCTEUoSU5TUEVDVE9SKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaWRsIGIvU291cmNlL1dlYkNvcmUvdGVzdGlu
Zy9JbnRlcm5hbHMuaWRsCmluZGV4IGZiMDYwMDk4YTlmYjNhOWY5MjFmOTY1ZTNhYWIzMzVmZTc0
MjM1MjEuLjY4YzAxMzUzYmM2MTBkNDM3NmJhZDc3ODk0ZmMwMTc3NDE5NTFiY2EgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmlkbAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS90ZXN0aW5nL0ludGVybmFscy5pZGwKQEAgLTIxNiw3ICsyMTYsOCBAQAogCiAgICAgRE9N
U3RyaW5nIGNvdW50ZXJWYWx1ZShpbiBFbGVtZW50IGVsZW1lbnQpOwogICAgIGxvbmcgcGFnZU51
bWJlcihpbiBFbGVtZW50IGVsZW1lbnQsIGluIFtPcHRpb25hbF0gZmxvYXQgcGFnZVdpZHRoLCBp
biBbT3B0aW9uYWxdIGZsb2F0IHBhZ2VIZWlnaHQpOwotICAgIERPTVN0cmluZ1tdIGljb25VUkxz
KGluIERvY3VtZW50IGRvY3VtZW50KTsKKyAgICBET01TdHJpbmdbXSBzaG9ydGN1dEljb25VUkxz
KGluIERvY3VtZW50IGRvY3VtZW50KTsKKyAgICBET01TdHJpbmdbXSBhbGxJY29uVVJMcyhpbiBE
b2N1bWVudCBkb2N1bWVudCk7CiAgICAgbG9uZyBudW1iZXJPZlBhZ2VzKGluIFtPcHRpb25hbF0g
ZG91YmxlIHBhZ2VXaWR0aEluUGl4ZWxzLCBpbiBbT3B0aW9uYWxdIGRvdWJsZSBwYWdlSGVpZ2h0
SW5QaXhlbHMpOwogICAgIERPTVN0cmluZyBwYWdlUHJvcGVydHkoaW4gRE9NU3RyaW5nIHByb3Bl
cnR5TmFtZSwgaW4gbG9uZyBwYWdlTnVtYmVyKSByYWlzZXMgKERPTUV4Y2VwdGlvbik7CiAgICAg
RE9NU3RyaW5nIHBhZ2VTaXplQW5kTWFyZ2luc0luUGl4ZWxzKGluIGxvbmcgcGFnZUluZGV4LCBp
biBsb25nIHdpZHRoLCBpbiBsb25nIGhlaWdodCwgaW4gbG9uZyBtYXJnaW5Ub3AsIGluIGxvbmcg
bWFyZ2luUmlnaHQsIGluIGxvbmcgbWFyZ2luQm90dG9tLCBpbiBsb25nIG1hcmdpbkxlZnQpIHJh
aXNlcyAoRE9NRXhjZXB0aW9uKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViS2l0LnZj
eHByb2ovV2ViS2l0RXhwb3J0R2VuZXJhdG9yL1dlYktpdEV4cG9ydHMuZGVmLmluIGIvU291cmNl
L1dlYktpdC9XZWJLaXQudmN4cHJvai9XZWJLaXRFeHBvcnRHZW5lcmF0b3IvV2ViS2l0RXhwb3J0
cy5kZWYuaW4KaW5kZXggNDM3ZTc3YzkyZDE2Yzk3YWY0NmViMjU3YzgwMmVhNWJiNmJlYjk0ZS4u
MTQ2YTBjMGI3MmJhODc5ZjIwOWU2Njg3NjhlZTQyM2VlZjRkMjk1OSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9XZWJLaXQudmN4cHJvai9XZWJLaXRFeHBvcnRHZW5lcmF0b3IvV2ViS2l0RXhw
b3J0cy5kZWYuaW4KKysrIGIvU291cmNlL1dlYktpdC9XZWJLaXQudmN4cHJvai9XZWJLaXRFeHBv
cnRHZW5lcmF0b3IvV2ViS2l0RXhwb3J0cy5kZWYuaW4KQEAgLTMyNSw3ICszMjUsOCBAQCBFWFBP
UlRTCiAgICAgICAgID9zZXRBbGxvd3NSb3VuZGluZ0hhY2tzQFRleHRSdW5AV2ViQ29yZUBAU0FY
X05AWgogICAgICAgICA/cmVnaXN0ZXJVUkxTY2hlbWVBc0J5cGFzc2luZ0NvbnRlbnRTZWN1cml0
eVBvbGljeUBTY2hlbWVSZWdpc3RyeUBXZWJDb3JlQEBTQVhBQlZTdHJpbmdAV1RGQEBAWgogICAg
ICAgICA/cmVtb3ZlVVJMU2NoZW1lUmVnaXN0ZXJlZEFzQnlwYXNzaW5nQ29udGVudFNlY3VyaXR5
UG9saWN5QFNjaGVtZVJlZ2lzdHJ5QFdlYkNvcmVAQFNBWEFCVlN0cmluZ0BXVEZAQEBaCi0gICAg
ICAgID9pY29uVVJMc0BEb2N1bWVudEBXZWJDb3JlQEBRQUVBQlY/JFZlY3RvckBVSWNvblVSTEBX
ZWJDb3JlQEAkMEFAQFdURkBAWFoKKyAgICAgICAgP3Nob3J0Y3V0SWNvblVSTHNARG9jdW1lbnRA
V2ViQ29yZUBAUUFFQUJWPyRWZWN0b3JAVUljb25VUkxAV2ViQ29yZUBAJDBBQEBXVEZAQFhaCisg
ICAgICAgID9pY29uVVJMc0BEb2N1bWVudEBXZWJDb3JlQEBRQUVBQlY/JFZlY3RvckBVSWNvblVS
TEBXZWJDb3JlQEAkMEFAQFdURkBASEBaCiAgICAgICAgID9udW1iZXJPZlBhZ2VzQFByaW50Q29u
dGV4dEBXZWJDb3JlQEBTQUhQQVZGcmFtZUAyQEFCVkZsb2F0U2l6ZUAyQEBaCiAgICAgICAgID9w
YWdlUHJvcGVydHlAUHJpbnRDb250ZXh0QFdlYkNvcmVAQFNBP0FWU3RyaW5nQFdURkBAUEFWRnJh
bWVAMkBQQkRIQFoKICAgICAgICAgP3BhZ2VTaXplQW5kTWFyZ2luc0luUGl4ZWxzQFByaW50Q29u
dGV4dEBXZWJDb3JlQEBTQT9BVlN0cmluZ0BXVEZAQFBBVkZyYW1lQDJASEhISEhISEBaCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJGcmFtZS5oIGIvU291cmNl
L1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViRnJhbWUuaAppbmRleCA4MTJhZDZlYTU2NjI2NTM4
MmVhZjc3YmFhMTE5YTE5N2ZmOGVlZGQxLi5lNzRlZmViNzhiNzI0NTA5MWIyODRhZjEwNmQyNWJh
MzUxODMwZWI4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJG
cmFtZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYkZyYW1lLmgKQEAg
LTEzMCwxMCArMTMwLDEwIEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIGxvbmcgbG9uZyBpZGVudGlm
aWVyKCkgY29uc3QgPSAwOwogCiAgICAgLy8gVGhlIHVybHMgb2YgdGhlIGdpdmVuIGNvbWJpbmF0
aW9uIHR5cGVzIG9mIGZhdmljb24gKGlmIGFueSkgc3BlY2lmaWVkIGJ5Ci0gICAgLy8gdGhlIGRv
Y3VtZW50IGxvYWRlZCBpbiB0aGlzIGZyYW1lLiBUaGUgaWNvblR5cGVzIGlzIGEgYml0LW1hc2sg
b2YKKyAgICAvLyB0aGUgZG9jdW1lbnQgbG9hZGVkIGluIHRoaXMgZnJhbWUuIFRoZSBpY29uVHlw
ZXNNYXNrIGlzIGEgYml0LW1hc2sgb2YKICAgICAvLyBXZWJJY29uVVJMOjpUeXBlIHZhbHVlcywg
dXNlZCB0byBzZWxlY3QgZnJvbSB0aGUgYXZhaWxhYmxlIHNldCBvZiBpY29uCiAgICAgLy8gVVJM
cwotICAgIHZpcnR1YWwgV2ViVmVjdG9yPFdlYkljb25VUkw+IGljb25VUkxzKGludCBpY29uVHlw
ZXMpIGNvbnN0ID0gMDsKKyAgICB2aXJ0dWFsIFdlYlZlY3RvcjxXZWJJY29uVVJMPiBpY29uVVJM
cyhpbnQgaWNvblR5cGVzTWFzaykgY29uc3QgPSAwOwogCiAKICAgICAvLyBHZW9tZXRyeSAtLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViRnJhbWVJbXBsLmNwcCBi
L1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYkZyYW1lSW1wbC5jcHAKaW5kZXggM2NkZjUw
MzFhNWViZWRmZmE5YmY3ZWU4NDk3OWRiOWY3ODE2MjBlZC4uZGE1OWVhYWJjYWQ4ZDQ0NjhiMjlj
NmU3YWZmZmIyYTA0MTI5NzI5ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9z
cmMvV2ViRnJhbWVJbXBsLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJG
cmFtZUltcGwuY3BwCkBAIC01NzQsMTIgKzU3NCwxMiBAQCBsb25nIGxvbmcgV2ViRnJhbWVJbXBs
OjppZGVudGlmaWVyKCkgY29uc3QKICAgICByZXR1cm4gbV9pZGVudGlmaWVyOwogfQogCi1XZWJW
ZWN0b3I8V2ViSWNvblVSTD4gV2ViRnJhbWVJbXBsOjppY29uVVJMcyhpbnQgaWNvblR5cGVzKSBj
b25zdAorV2ViVmVjdG9yPFdlYkljb25VUkw+IFdlYkZyYW1lSW1wbDo6aWNvblVSTHMoaW50IGlj
b25UeXBlc01hc2spIGNvbnN0CiB7CiAgICAgLy8gVGhlIFVSTCB0byB0aGUgaWNvbiBtYXkgYmUg
aW4gdGhlIGhlYWRlci4gQXMgc3VjaCwgb25seQogICAgIC8vIGFzayB0aGUgbG9hZGVyIGZvciB0
aGUgaWNvbiBpZiBpdCdzIGZpbmlzaGVkIGxvYWRpbmcuCiAgICAgaWYgKGZyYW1lKCktPmxvYWRl
cigpLT5zdGF0ZSgpID09IEZyYW1lU3RhdGVDb21wbGV0ZSkKLSAgICAgICAgcmV0dXJuIGZyYW1l
KCktPmxvYWRlcigpLT5pY29uKCktPnVybHNGb3JUeXBlcyhpY29uVHlwZXMpOworICAgICAgICBy
ZXR1cm4gZnJhbWUoKS0+bG9hZGVyKCktPmljb24oKS0+dXJsc0ZvclR5cGVzKGljb25UeXBlc01h
c2spOwogICAgIHJldHVybiBXZWJWZWN0b3I8V2ViSWNvblVSTD4oKTsKIH0KIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViRnJhbWVJbXBsLmggYi9Tb3VyY2UvV2Vi
S2l0L2Nocm9taXVtL3NyYy9XZWJGcmFtZUltcGwuaAppbmRleCAwY2U5OGZiNWMwZWMwOGIzMmMw
YmNjNTY1ZDBkNjljMmRmYTJlMmE0Li4zNDk0YmFlMmQ1NzcwMjUwYjhlZjRjMzAyZmFkOWQ5NmZm
ZjdlM2VmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJGcmFtZUlt
cGwuaAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJGcmFtZUltcGwuaApAQCAt
NzcsNyArNzcsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBXZWJTdHJpbmcgYXNzaWduZWROYW1l
KCkgY29uc3Q7CiAgICAgdmlydHVhbCB2b2lkIHNldE5hbWUoY29uc3QgV2ViU3RyaW5nJik7CiAg
ICAgdmlydHVhbCBsb25nIGxvbmcgaWRlbnRpZmllcigpIGNvbnN0OwotICAgIHZpcnR1YWwgV2Vi
VmVjdG9yPFdlYkljb25VUkw+IGljb25VUkxzKGludCBpY29uVHlwZXMpIGNvbnN0OworICAgIHZp
cnR1YWwgV2ViVmVjdG9yPFdlYkljb25VUkw+IGljb25VUkxzKGludCBpY29uVHlwZXNNYXNrKSBj
b25zdDsKICAgICB2aXJ0dWFsIFdlYlNpemUgc2Nyb2xsT2Zmc2V0KCkgY29uc3Q7CiAgICAgdmly
dHVhbCB2b2lkIHNldFNjcm9sbE9mZnNldChjb25zdCBXZWJTaXplJik7CiAgICAgdmlydHVhbCBX
ZWJTaXplIG1pbmltdW1TY3JvbGxPZmZzZXQoKSBjb25zdDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvd2luL1dlYktpdC52Y3Byb2ovV2ViS2l0RXhwb3J0cy5kZWYuaW4gYi9Tb3VyY2UvV2Vi
S2l0L3dpbi9XZWJLaXQudmNwcm9qL1dlYktpdEV4cG9ydHMuZGVmLmluCmluZGV4IGZmYTUyNzEy
YTBjZDJhYTI3NjM1Nzc4N2M3Mjc0YzQyNTY1NDcyYzguLmZiMGVlYjllNjc4NGRhYWEyZGEzZDk4
ODk0ODc5MDI4ZTA4YjljOWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvd2luL1dlYktpdC52
Y3Byb2ovV2ViS2l0RXhwb3J0cy5kZWYuaW4KKysrIGIvU291cmNlL1dlYktpdC93aW4vV2ViS2l0
LnZjcHJvai9XZWJLaXRFeHBvcnRzLmRlZi5pbgpAQCAtMzI1LDcgKzMyNSw4IEBAIEVYUE9SVFMK
ICAgICAgICAgP3NldEFsbG93c1JvdW5kaW5nSGFja3NAVGV4dFJ1bkBXZWJDb3JlQEBTQVhfTkBa
CiAgICAgICAgID9yZWdpc3RlclVSTFNjaGVtZUFzQnlwYXNzaW5nQ29udGVudFNlY3VyaXR5UG9s
aWN5QFNjaGVtZVJlZ2lzdHJ5QFdlYkNvcmVAQFNBWEFCVlN0cmluZ0BXVEZAQEBaCiAgICAgICAg
ID9yZW1vdmVVUkxTY2hlbWVSZWdpc3RlcmVkQXNCeXBhc3NpbmdDb250ZW50U2VjdXJpdHlQb2xp
Y3lAU2NoZW1lUmVnaXN0cnlAV2ViQ29yZUBAU0FYQUJWU3RyaW5nQFdURkBAQFoKLSAgICAgICAg
P2ljb25VUkxzQERvY3VtZW50QFdlYkNvcmVAQFFBRUFCVj8kVmVjdG9yQFVJY29uVVJMQFdlYkNv
cmVAQCQwQUBAV1RGQEBYWgorICAgICAgICA/c2hvcnRjdXRJY29uVVJMc0BEb2N1bWVudEBXZWJD
b3JlQEBRQUVBQlY/JFZlY3RvckBVSWNvblVSTEBXZWJDb3JlQEAkMEFAQFdURkBAWFoKKyAgICAg
ICAgP2ljb25VUkxzQERvY3VtZW50QFdlYkNvcmVAQFFBRUFCVj8kVmVjdG9yQFVJY29uVVJMQFdl
YkNvcmVAQCQwQUBAV1RGQEBIQFoKICAgICAgICAgP251bWJlck9mUGFnZXNAUHJpbnRDb250ZXh0
QFdlYkNvcmVAQFNBSFBBVkZyYW1lQDJAQUJWRmxvYXRTaXplQDJAQFoKICAgICAgICAgP3BhZ2VQ
cm9wZXJ0eUBQcmludENvbnRleHRAV2ViQ29yZUBAU0E/QVZTdHJpbmdAV1RGQEBQQVZGcmFtZUAy
QFBCREhAWgogICAgICAgICA/cGFnZVNpemVBbmRNYXJnaW5zSW5QaXhlbHNAUHJpbnRDb250ZXh0
QFdlYkNvcmVAQFNBP0FWU3RyaW5nQFdURkBAUEFWRnJhbWVAMkBISEhISEhIQFoKZGlmZiAtLWdp
dCBhL1NvdXJjZS9hdXRvdG9vbHMvc3ltYm9scy5maWx0ZXIgYi9Tb3VyY2UvYXV0b3Rvb2xzL3N5
bWJvbHMuZmlsdGVyCmluZGV4IDllMWNmNjU3YWIzYjBlNjAyY2Q5Y2Q1YWY5Mzg0ZmU0MDFkYWE5
ZTEuLmIwM2RhZDgyNjg0YjgyMzViMTU3NTJiY2M0ZTdlNTlhMTc1Y2QxNTEgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9hdXRvdG9vbHMvc3ltYm9scy5maWx0ZXIKKysrIGIvU291cmNlL2F1dG90b29scy9z
eW1ib2xzLmZpbHRlcgpAQCAtNDEsNyArNDEsOCBAQCBfWk43V2ViQ29yZTR0b0pTRVBOM0pTQzlF
eGVjU3RhdGVFUE5TXzE3SlNET01HbG9iYWxPYmplY3RFUE5TXzVSYW5nZUU7CiBfWk43V2ViQ29y
ZTVSYW5nZTZjcmVhdGVFTjNXVEYxMFBhc3NSZWZQdHJJTlNfOERvY3VtZW50RUVFTlMyX0lOU180
Tm9kZUVFRWlTNl9pOwogX1pON1dlYkNvcmU1UmFuZ2VEMUV2OwogX1pON1dlYkNvcmU4RG9jdW1l
bnQzNnVwZGF0ZUxheW91dElnbm9yZVBlbmRpbmdTdHlsZXNoZWV0c0V2OwotX1pON1dlYkNvcmU4
RG9jdW1lbnQ4aWNvblVSTHNFdjsKK19aTjdXZWJDb3JlOERvY3VtZW50OGljb25VUkxzRWk7Citf
Wk43V2ViQ29yZThEb2N1bWVudDE2c2hvcnRjdXRJY29uVVJMc0V2OwogX1pON1dlYkNvcmU4U2V0
dGluZ3MxOW1pbkRPTVRpbWVySW50ZXJ2YWxFdjsKIF9aTjdXZWJDb3JlOFNldHRpbmdzMjJzZXRN
aW5ET01UaW1lckludGVydmFsRWQ7CiBfWk43V2ViQ29yZTlIVE1MTmFtZXM4aW5wdXRUYWdFOwpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9n
CmluZGV4IGYyNjk2MmE0NmVhM2UwOGI3OTBlMTNmYTAwMTI3NTYwNThlY2ExNjYuLmE1MDg4Mzkx
ZWM4MTRhMjBjNmU0YjZhOGNiZmFmMGYxMDM2NGRhNzQgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3Rz
L0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxOSBAQAor
MjAxMy0wMy0wMSAgUnVzbGFuIEFiZGlrZWV2ICA8YXJ1c2xhbkBjaHJvbWl1bS5vcmc+CisKKyAg
ICAgICAgPGxpbmsgcmVsPSJhcHBsZS10b3VjaC1pY29uIj4gdGFnIGlzIG5vdCBob25vcmVkIG9u
IENOTi5jb20sIHdvcmtmbG93eS5jb20gZXRjCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0xMDkwNjEKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBBZGRlZCB0ZXN0IGZvciBhcHBsZS10b3VjaC1pY29uIGluIGFs
bEljb25VUkxzKCkuCisgICAgICAgIENoYW5nZWQgaWNvblVSTHMoKSB0byBzaG9ydGN1dEljb25V
UkxzKCkuCisKKyAgICAgICAgKiBmYXN0L2RvbS9pY29uLXVybC1jaGFuZ2UuaHRtbDoKKyAgICAg
ICAgKiBmYXN0L2RvbS9pY29uLXVybC1saXN0LWFwcGxlLXRvdWNoLWV4cGVjdGVkLnR4dDogQWRk
ZWQuCisgICAgICAgICogZmFzdC9kb20vaWNvbi11cmwtbGlzdC1hcHBsZS10b3VjaC5odG1sOiBB
ZGRlZC4KKyAgICAgICAgKiBmYXN0L2RvbS9pY29uLXVybC1saXN0Lmh0bWw6CisgICAgICAgICog
ZmFzdC9kb20vaWNvbi11cmwtcHJvcGVydHkuaHRtbDoKKwogMjAxMy0wMy0wMSAgVGVycnkgQW5k
ZXJzb24gIDx0ZGFuZGVyc29uQGNocm9taXVtLm9yZz4KIAogICAgICAgICBFdmVudEhhbmRsZXI6
OmhhbmRsZUdlc3R1cmVTY3JvbGxVcGRhdGUoKSBzaG91bGQgaW52b2tlIHRoZSB1c2VyLWdlbmVy
YXRlZCBzY3JvbGwgcm91dGluZXMgCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9p
Y29uLXVybC1jaGFuZ2UuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL2ljb24tdXJsLWNoYW5n
ZS5odG1sCmluZGV4IDgyZDUzNGVlY2RhN2NkMTRhYjU1OTkzMWEyMmIyNzk5MmE2ZmU1ZTcuLjk5
MzI3MmVkYmMyZmEyZjY2N2FjNDg5OWU2NzBjMmM1MDcwZWRkMWYgMTAwNjQ0Ci0tLSBhL0xheW91
dFRlc3RzL2Zhc3QvZG9tL2ljb24tdXJsLWNoYW5nZS5odG1sCisrKyBiL0xheW91dFRlc3RzL2Zh
c3QvZG9tL2ljb24tdXJsLWNoYW5nZS5odG1sCkBAIC00NSw3ICs0NSw3IEBAIGZ1bmN0aW9uIHJ1
blRlc3RzKCkgewogCiAgICAgLy8gY2hlY2sgdGhhdCB0aGUgVVJMIGxpc3QgaW4gdGhlIGRvY3Vt
ZW50IGlzIGFzIHdlIGV4cGVjdAogICAgIHZhciBleHBlY3RlZFVSTHMgPSAiaHR0cDovL3Rlc3Qu
Y29tL29sZGZhdmljb24uaWNvIjsKLSAgICB2YXIgaWNvblVSTHMgPSB3aW5kb3cuaW50ZXJuYWxz
Lmljb25VUkxzKGRvY3VtZW50KTsKKyAgICB2YXIgaWNvblVSTHMgPSB3aW5kb3cuaW50ZXJuYWxz
LnNob3J0Y3V0SWNvblVSTHMoZG9jdW1lbnQpOwogICAgIGlmIChleHBlY3RlZFVSTHMgPT0gaWNv
blVSTHNbMF0pCiAgICAgICAgIHRlc3RQYXNzZWQoJ1VSTCBsaXN0IG1hdGNoZXMgZXhwZWN0ZWQn
KTsKICAgICBlbHNlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9pY29uLXVybC1s
aXN0LWFwcGxlLXRvdWNoLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL2ljb24t
dXJsLWxpc3QtYXBwbGUtdG91Y2gtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjc3NDQyZjBmN2M3
M2RjYWJmYjNjMzZhMzc3NmUwNWE4MTI4NDJlZmYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRU
ZXN0cy9mYXN0L2RvbS9pY29uLXVybC1saXN0LWFwcGxlLXRvdWNoLWV4cGVjdGVkLnR4dApAQCAt
MCwwICsxLDMgQEAKK1Rlc3RzIHRoYXQgYWxsIGZhdmljb25zIGFuZCB0b3VjaCBpY29ucyAoaWYg
RU5BQkxFKFRPVUNIX0lDT05fTE9BRElORykpIGFyZSBpbiBkb2N1bWVudC5pY29uVVJMcygpCito
dHRwOi8vdGVzdC5jb20vb2xkZmF2aWNvbi5pY28KKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
ZmFzdC9kb20vaWNvbi11cmwtbGlzdC1hcHBsZS10b3VjaC5odG1sIGIvTGF5b3V0VGVzdHMvZmFz
dC9kb20vaWNvbi11cmwtbGlzdC1hcHBsZS10b3VjaC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjk0MTIzMGQw
OWFkMWJiZWM2NjBjM2E2OTZhYWFjMTg3ZGNmZGJhZTcKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlv
dXRUZXN0cy9mYXN0L2RvbS9pY29uLXVybC1saXN0LWFwcGxlLXRvdWNoLmh0bWwKQEAgLTAsMCAr
MSwyOCBAQAorPGh0bWw+Cis8aGVhZD4KKzx0aXRsZT5PcmlnaW5hbCBUaXRsZTwvdGl0bGU+Cis8
bGluayByZWw9InNob3J0Y3V0IGljb24iIHR5cGU9ImltYWdlL3gtaWNvbiIgaHJlZj0iaHR0cDov
L3Rlc3QuY29tL29sZGZhdmljb24uaWNvIi8+Cis8bGluayByZWw9ImFwcGxlLXRvdWNoLWljb24i
IHR5cGU9ImltYWdlL3BuZyIgaHJlZj0iaHR0cDovL3Rlc3QuY29tL2kvdG91Y2gucG5nIi8+Cis8
bGluayByZWw9ImFwcGxlLXRvdWNoLWljb24tcHJlY29tcG9zZWQiIHR5cGU9ImltYWdlL3BuZyIg
aHJlZj0iaHR0cDovL3Rlc3QuY29tL2kvdG91Y2gtcHJlY29tcG9zZWQucG5nIi8+Cis8c2NyaXB0
IHNyYz0iLi4vanMvcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQ+
CitmdW5jdGlvbiBydW5UZXN0cygpIHsKKyAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpCisgICAg
ICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOworCisgICAgZGVidWcoJ1Rlc3RzIHRoYXQgYWxs
IGZhdmljb25zIGFuZCB0b3VjaCBpY29ucyAoaWYgRU5BQkxFKFRPVUNIX0lDT05fTE9BRElORykp
IGFyZSBpbiBkb2N1bWVudC5pY29uVVJMcygpJyk7CisKKyAgICAvLyBGZXRjaCB0aGUgYWN0dWFs
IGxpc3Qgb2YgaWNvbiBVUkxzLgorICAgIHZhciBhY3R1YWxVUkxzID0gd2luZG93LmludGVybmFs
cy5hbGxJY29uVVJMcyhkb2N1bWVudCk7CisKKyAgICAvLyBQcmludCBvdXQgdGhlIFVSTCBsaXN0
IGluIHRoZSBkb2N1bWVudCB0byBtYXRjaCBpdCBhZ2FpbnN0IHRoZSBleHBlY3RlZCBsaXN0Lgor
ICAgIC8vIE5vdGUgdGhhdCB0aGUgZXhwZWN0ZWQgb3JkZXIgaXMgcmV2ZXJzZSB0byBlbnN1cmUg
dGhhdCBpY29ucyBzZWVuIGxhdGVyCisgICAgLy8gdGFrZSBwcmVjZWRlbmNlIGFzIHJlcXVpcmVk
IGJ5IHRoZSBzcGVjLgorICAgIGZvciAodmFyIGkgPSAwOyBpIDwgYWN0dWFsVVJMcy5sZW5ndGg7
IGkrKykKKyAgICAgICAgZGVidWcoYWN0dWFsVVJMc1tpXSk7Cit9Cis8L3NjcmlwdD4KKzwvaGVh
ZD4KKzxib2R5IG9ubG9hZD0ncnVuVGVzdHMoKTsnPgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vaWNvbi11cmwtbGlzdC5odG1sIGIvTGF5b3V0VGVz
dHMvZmFzdC9kb20vaWNvbi11cmwtbGlzdC5odG1sCmluZGV4IGRkYTAwZTcyZWZmYmZlMWQyYjI5
MTZhYzgyM2Q0Y2I4ZWU0NmQ0NTQuLjZkM2RmZGE2YTVkZTQ5OWEwN2UxMjU5NzU3OGYzNDBlZGU4
MzdmNWYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL2ljb24tdXJsLWxpc3QuaHRt
bAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9pY29uLXVybC1saXN0Lmh0bWwKQEAgLTQ4LDcg
KzQ4LDcgQEAgZnVuY3Rpb24gcnVuVGVzdHMoKSB7CiAgICAgdmFyIGV4cGVjdGVkVVJMMCA9ICJo
dHRwOi8vdGVzdC5jb20vYmFyZmF2aWNvbi5pY28iOwogICAgIHZhciBleHBlY3RlZFVSTDEgPSAi
aHR0cDovL3Rlc3QuY29tL2Zvb2Zhdmljb24uaWNvIjsKICAgICB2YXIgZXhwZWN0ZWRVUkwyID0g
Imh0dHA6Ly90ZXN0LmNvbS9uZXdmYXZpY29uLmljbyI7Ci0gICAgdmFyIGljb25VUkxzID0gd2lu
ZG93LmludGVybmFscy5pY29uVVJMcyhkb2N1bWVudCk7CisgICAgdmFyIGljb25VUkxzID0gd2lu
ZG93LmludGVybmFscy5zaG9ydGN1dEljb25VUkxzKGRvY3VtZW50KTsKICAgICBpZiAoZXhwZWN0
ZWRVUkwwID09IGljb25VUkxzWzBdICYmIGV4cGVjdGVkVVJMMSA9PSBpY29uVVJMc1sxXSAmJiBl
eHBlY3RlZFVSTDIgPT0gaWNvblVSTHNbMl0pIAogICAgICAgICB0ZXN0UGFzc2VkKCdVUkwgbGlz
dCBtYXRjaGVzIGV4cGVjdGVkJyk7CiAgICAgZWxzZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
ZmFzdC9kb20vaWNvbi11cmwtcHJvcGVydHkuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL2lj
b24tdXJsLXByb3BlcnR5Lmh0bWwKaW5kZXggOGE2YjljMjM4ODUwNmUwZTI4NDJkMzdlYzA3MTA4
NTViZjRmYjlmNS4uMmQxYzAxMjE1NzFhOTdiZjE1NDNkNDE2NTQ2Zjc2OGU3NTE2MWVkMyAxMDA2
NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vaWNvbi11cmwtcHJvcGVydHkuaHRtbAorKysg
Yi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9pY29uLXVybC1wcm9wZXJ0eS5odG1sCkBAIC00Myw3ICs0
Myw3IEBAIGZ1bmN0aW9uIHJ1blRlc3RzKCkgewogCiAgICAgLy8gY2hlY2sgdGhhdCB0aGUgVVJM
IGxpc3QgaW4gdGhlIGRvY3VtZW50IGlzIGFzIHdlIGV4cGVjdAogICAgIHZhciBleHBlY3RlZFVS
THMgPSAiaHR0cDovL3Rlc3QuY29tL25ld2Zhdmljb24uaWNvIjsKLSAgICB2YXIgaWNvblVSTHMg
PSB3aW5kb3cuaW50ZXJuYWxzLmljb25VUkxzKGRvY3VtZW50KTsKKyAgICB2YXIgaWNvblVSTHMg
PSB3aW5kb3cuaW50ZXJuYWxzLnNob3J0Y3V0SWNvblVSTHMoZG9jdW1lbnQpOwogICAgIGlmIChl
eHBlY3RlZFVSTHMgPT0gaWNvblVSTHNbMF0pCiAgICAgICAgIGRlYnVnT3V0cHV0KCdQQVNTIC0g
VVJMIGxpc3QgbWF0Y2hlcyBleHBlY3RlZCcpOwogICAgIGVsc2UKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtLWFuZHJvaWQvZmFzdC9kb20vaWNvbi11cmwtbGlzdC1h
cHBsZS10b3VjaC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS1h
bmRyb2lkL2Zhc3QvZG9tL2ljb24tdXJsLWxpc3QtYXBwbGUtdG91Y2gtZXhwZWN0ZWQudHh0Cm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLjI0ZGJjNGQwYTgwYTNhMjk4N2Y5MmM1MzFjZGUzMjg4YjM1NWYzYTYKLS0tIC9k
ZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS1hbmRyb2lkL2Zhc3Qv
ZG9tL2ljb24tdXJsLWxpc3QtYXBwbGUtdG91Y2gtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNSBA
QAorVGVzdHMgdGhhdCBhbGwgZmF2aWNvbnMgYW5kIHRvdWNoIGljb25zIChpZiBFTkFCTEUoVE9V
Q0hfSUNPTl9MT0FESU5HKSkgYXJlIGluIGRvY3VtZW50Lmljb25VUkxzKCkKK2h0dHA6Ly90ZXN0
LmNvbS9pL3RvdWNoLXByZWNvbXBvc2VkLnBuZworaHR0cDovL3Rlc3QuY29tL2kvdG91Y2gucG5n
CitodHRwOi8vdGVzdC5jb20vb2xkZmF2aWNvbi5pY28KKwpkaWZmIC0tZ2l0IGEvQ2hhbmdlTG9n
IGIvQ2hhbmdlTG9nCmluZGV4IDkwMDRkMDY5OGQwODc0N2ZmZjdmNTM0ZDJkNzJiYzZhYWJlYjQ5
NjAuLjk5ZWZkMWMzNDQ3N2E1NWNmZDg5NTk5MzVlMjY0MmQzODZhODNjYjYgMTAwNjQ0Ci0tLSBh
L0NoYW5nZUxvZworKysgYi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMiBAQAorMjAxMy0wMy0wMSAg
UnVzbGFuIEFiZGlrZWV2ICA8YXJ1c2xhbkBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgPGxpbmsg
cmVsPSJhcHBsZS10b3VjaC1pY29uIj4gdGFnIGlzIG5vdCBob25vcmVkIG9uIENOTi5jb20sIHdv
cmtmbG93eS5jb20gZXRjCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0xMDkwNjEKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICAqIFNvdXJjZS9hdXRvdG9vbHMvc3ltYm9scy5maWx0ZXI6CisKIDIwMTMtMDItMjcg
IFphbiBEb2JlcnNlayAgPHpkb2JlcnNla0BpZ2FsaWEuY29tPgogCiAgICAgICAgIFtHVEtdIERp
c2FibGUgTWF0aE1MIHN1cHBvcnQgaW4gcmVsZWFzZSBidWlsZHMK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>191267</attachid>
            <date>2013-03-04 10:09:42 -0800</date>
            <delta_ts>2013-03-04 16:44:36 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-109061-20130304100544.patch</filename>
            <type>text/plain</type>
            <size>22638</size>
            <attacher name="Ruslan Abdikeev">aruslan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQ0NjMxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNzJkYjc0Yzg4MjE0Yzhl
YmNkOGExNjdmNmUwYjMwMGQzOTk0ODk0NS4uYjZkY2ZkNzI0YzFjY2Q0ZWIwZWJkNDY5MjU0OGEw
MjdiYjQxZjJiYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM1IEBACisyMDEzLTAzLTA0ICBSdXNs
YW4gQWJkaWtlZXYgIDxhcnVzbGFuQGNocm9taXVtLm9yZz4KKworICAgICAgICA8bGluayByZWw9
ImFwcGxlLXRvdWNoLWljb24iPiB0YWcgaXMgbm90IGhvbm9yZWQgb24gQ05OLmNvbSwgd29ya2Zs
b3d5LmNvbSBldGMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTEwOTA2MQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgIFRlc3Q6IGZhc3QvZG9tL2ljb24tdXJsLWxpc3QtYXBwbGUtdG91Y2guaHRtbAorCisgICAg
ICAgIEFkZGVkIGljb25UeXBlcyBwYXJhbWV0ZXIgdG8gRG9jdW1lbnQ6Omljb25VUkxzKCkuCisg
ICAgICAgIEFkZGVkIERvY3VtZW50OjpzaG9ydGN1dEljb25VUkxzKCkgd2l0aCBvcmlnaW5hbCBz
ZW1hbnRpY3Mgb2YgaWNvblVSTHMoKS4KKyAgICAgICAgRml4ZWQgSWNvbkNvbnRyb2xsZXIuY3Bw
IHRvIHByb3ZpZGUgaWNvblR5cGVzTWFzayB0byBpY29uVVJMcygpLgorICAgICAgICBSZW5hbWVk
IGljb25UeXBlcyB0byBpY29uVHlwZXNNYXNrIHRvIG1ha2UgdGhlIG1lYW5pbmcgY2xlYXJlci4K
KworICAgICAgICAqIFdlYkNvcmUuZXhwLmluOgorICAgICAgICAqIGRvbS9Eb2N1bWVudC5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudDo6c2hvcnRjdXRJY29uVVJMcyk6CisgICAgICAg
IChXZWJDb3JlKToKKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50OjppY29uVVJMcyk6CisgICAg
ICAgICogZG9tL0RvY3VtZW50Lmg6CisgICAgICAgIChEb2N1bWVudCk6CisgICAgICAgICogbG9h
ZGVyL2ljb24vSWNvbkNvbnRyb2xsZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SWNvbkNvbnRy
b2xsZXI6Omljb25VUkwpOgorICAgICAgICAoV2ViQ29yZTo6SWNvbkNvbnRyb2xsZXI6OnVybHNG
b3JUeXBlcyk6CisgICAgICAgICogdGVzdGluZy9JbnRlcm5hbHMuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6SW50ZXJuYWxzOjppY29uVVJMcyk6CisgICAgICAgIChXZWJDb3JlOjpJbnRlcm5hbHM6
OnNob3J0Y3V0SWNvblVSTHMpOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChXZWJDb3Jl
OjpJbnRlcm5hbHM6OmFsbEljb25VUkxzKToKKyAgICAgICAgKiB0ZXN0aW5nL0ludGVybmFscy5o
OgorICAgICAgICAqIHRlc3RpbmcvSW50ZXJuYWxzLmlkbDoKKwogMjAxMy0wMy0wNCAgQW50b2lu
ZSBRdWludCAgPGdyYW91dHNAYXBwbGUuY29tPgogCiAgICAgICAgIEZpeCBkZWJ1ZyBidWlsZCB1
bmRlciBjZXJ0YWluIGNvbmZpZ3VyYXRpb25zLCBjYXVzZSB3YXMKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL1dlYkNvcmUuZXhwLmluIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5leHAuaW4K
aW5kZXggYjM5OTE3MmFkZmE4ZDYwNzQyNDcyMDUxMWQwYjllNjNjNTZkMzliMi4uMzM3OTljYTMx
ZWMyOWZlMTk3MWM5MWUxZjliNWYwMjJjMTJhOWEyYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvV2ViQ29yZS5leHAuaW4KKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5leHAuaW4KQEAg
LTk4Miw3ICs5ODIsOCBAQCBfX1pON1dlYkNvcmU4RG9jdW1lbnQzNnVwZGF0ZUxheW91dElnbm9y
ZVBlbmRpbmdTdHlsZXNoZWV0c0V2CiBfX1pON1dlYkNvcmU4RG9jdW1lbnQ0aGVhZEV2CiBfX1pO
N1dlYkNvcmU4Rm9ybURhdGEyOHJlbW92ZUdlbmVyYXRlZEZpbGVzSWZOZWVkZWRFdgogX19aTjdX
ZWJDb3JlOEZvcm1EYXRhNmRlY29kZUVSTjNXVEY3RGVjb2RlckUKLV9fWk43V2ViQ29yZThEb2N1
bWVudDhpY29uVVJMc0V2CitfX1pON1dlYkNvcmU4RG9jdW1lbnQ4aWNvblVSTHNFaQorX19aTjdX
ZWJDb3JlOERvY3VtZW50MTZzaG9ydGN1dEljb25VUkxzRXYKIF9fWk43V2ViQ29yZThGb3JtRGF0
YTZjcmVhdGVFUEt2bQogX19aTjdXZWJDb3JlOEZvcm1EYXRhRDFFdgogX19aTjdXZWJDb3JlOEdy
YWRpZW50MTJhZGRDb2xvclN0b3BFZlJLTlNfNUNvbG9yRQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvZG9tL0RvY3VtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAK
aW5kZXggYzM2ZTY1Y2Q3MmEzNThiZGZhOGI2YTU1ZDJiOWM3MTY2YzgzZGFlMi4uNWI4YzY0NmJi
ZTlhNmI3ZmQyNzBlOWI1YzliNDdkMWE0NGRhZWM2ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvZG9tL0RvY3VtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3Bw
CkBAIC00NDk5LDE0ICs0NDk5LDE5IEBAIFBhc3NSZWZQdHI8WFBhdGhSZXN1bHQ+IERvY3VtZW50
OjpldmFsdWF0ZShjb25zdCBTdHJpbmcmIGV4cHJlc3Npb24sCiAgICAgcmV0dXJuIG1feHBhdGhF
dmFsdWF0b3ItPmV2YWx1YXRlKGV4cHJlc3Npb24sIGNvbnRleHROb2RlLCByZXNvbHZlciwgdHlw
ZSwgcmVzdWx0LCBlYyk7CiB9CiAKLWNvbnN0IFZlY3RvcjxJY29uVVJMPiYgRG9jdW1lbnQ6Omlj
b25VUkxzKCkKK2NvbnN0IFZlY3RvcjxJY29uVVJMPiYgRG9jdW1lbnQ6OnNob3J0Y3V0SWNvblVS
THMoKQoreworICAgIC8vIEluY2x1ZGUgYW55IGljb25zIHdoZXJlIHR5cGUgPSBsaW5rLCByZWwg
PSAic2hvcnRjdXQgaWNvbiIuCisgICAgcmV0dXJuIGljb25VUkxzKEZhdmljb24pOworfQorCitj
b25zdCBWZWN0b3I8SWNvblVSTD4mIERvY3VtZW50OjppY29uVVJMcyhpbnQgaWNvblR5cGVzTWFz
aykKIHsKICAgICBtX2ljb25VUkxzLmNsZWFyKCk7CiAKICAgICBpZiAoIWhlYWQoKSB8fCAhKGhl
YWQoKS0+Y2hpbGRyZW4oKSkpCiAgICAgICAgIHJldHVybiBtX2ljb25VUkxzOwogCi0gICAgLy8g
SW5jbHVkZSBhbnkgaWNvbnMgd2hlcmUgdHlwZSA9IGxpbmssIHJlbCA9ICJzaG9ydGN1dCBpY29u
Ii4KICAgICBSZWZQdHI8SFRNTENvbGxlY3Rpb24+IGNoaWxkcmVuID0gaGVhZCgpLT5jaGlsZHJl
bigpOwogICAgIHVuc2lnbmVkIGludCBsZW5ndGggPSBjaGlsZHJlbi0+bGVuZ3RoKCk7CiAgICAg
Zm9yICh1bnNpZ25lZCBpbnQgaSA9IDA7IGkgPCBsZW5ndGg7ICsraSkgewpAQCAtNDUxNCw3ICs0
NTE5LDcgQEAgY29uc3QgVmVjdG9yPEljb25VUkw+JiBEb2N1bWVudDo6aWNvblVSTHMoKQogICAg
ICAgICBpZiAoIWNoaWxkLT5oYXNUYWdOYW1lKGxpbmtUYWcpKQogICAgICAgICAgICAgY29udGlu
dWU7CiAgICAgICAgIEhUTUxMaW5rRWxlbWVudCogbGlua0VsZW1lbnQgPSBzdGF0aWNfY2FzdDxI
VE1MTGlua0VsZW1lbnQqPihjaGlsZCk7Ci0gICAgICAgIGlmIChsaW5rRWxlbWVudC0+aWNvblR5
cGUoKSAhPSBGYXZpY29uKQorICAgICAgICBpZiAoIShsaW5rRWxlbWVudC0+aWNvblR5cGUoKSAm
IGljb25UeXBlc01hc2spKQogICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgIGlmIChsaW5r
RWxlbWVudC0+aHJlZigpLmlzRW1wdHkoKSkKICAgICAgICAgICAgIGNvbnRpbnVlOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9kb20v
RG9jdW1lbnQuaAppbmRleCBkOGI5ODYzMjk2OWIxOWJlMDhhMWI0N2Q2YWY5NDNiZDQwN2I0OGQ4
Li4wNjM2M2QzYTU0ZWIyNjkyMWRjMGJhMTA0OTM2NGVkMzhiOGNmYzU1IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9j
dW1lbnQuaApAQCAtOTQzLDcgKzk0Myw4IEBAIHB1YmxpYzoKICAgICBib29sIGhhc05vZGVzV2l0
aFBsYWNlaG9sZGVyU3R5bGUoKSBjb25zdCB7IHJldHVybiBtX2hhc05vZGVzV2l0aFBsYWNlaG9s
ZGVyU3R5bGU7IH0KICAgICB2b2lkIHNldEhhc05vZGVzV2l0aFBsYWNlaG9sZGVyU3R5bGUoKSB7
IG1faGFzTm9kZXNXaXRoUGxhY2Vob2xkZXJTdHlsZSA9IHRydWU7IH0KIAotICAgIGNvbnN0IFZl
Y3RvcjxJY29uVVJMPiYgaWNvblVSTHMoKTsKKyAgICBjb25zdCBWZWN0b3I8SWNvblVSTD4mIHNo
b3J0Y3V0SWNvblVSTHMoKTsKKyAgICBjb25zdCBWZWN0b3I8SWNvblVSTD4mIGljb25VUkxzKGlu
dCBpY29uVHlwZXNNYXNrKTsKICAgICB2b2lkIGFkZEljb25VUkwoY29uc3QgU3RyaW5nJiB1cmws
IGNvbnN0IFN0cmluZyYgbWltZVR5cGUsIGNvbnN0IFN0cmluZyYgc2l6ZSwgSWNvblR5cGUpOwog
CiAgICAgdm9pZCBzZXRVc2VTZWN1cmVLZXlib2FyZEVudHJ5V2hlbkFjdGl2ZShib29sKTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9pY29uL0ljb25Db250cm9sbGVyLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2xvYWRlci9pY29uL0ljb25Db250cm9sbGVyLmNwcAppbmRleCA0MzZh
OTdjNmQwNjZmMTYxNjY2NTJkZWE2ZjQ1NzQ2YjI5ZTE3NmUzLi44ZjIzZjZkYjExMTBhNzAzOTI4
OTI2YmYxMTdlMjZlMTk5MzFhYWUyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIv
aWNvbi9JY29uQ29udHJvbGxlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2ljb24v
SWNvbkNvbnRyb2xsZXIuY3BwCkBAIC02OSwzMyArNjksMzEgQEAgS1VSTCBJY29uQ29udHJvbGxl
cjo6dXJsKCkKIEljb25VUkwgSWNvbkNvbnRyb2xsZXI6Omljb25VUkwoSWNvblR5cGUgaWNvblR5
cGUpIGNvbnN0CiB7CiAgICAgSWNvblVSTCByZXN1bHQ7Ci0gICAgY29uc3QgVmVjdG9yPEljb25V
Ukw+JiBpY29uVVJMcyA9IG1fZnJhbWUtPmRvY3VtZW50KCktPmljb25VUkxzKCk7CisgICAgY29u
c3QgVmVjdG9yPEljb25VUkw+JiBpY29uVVJMcyA9IG1fZnJhbWUtPmRvY3VtZW50KCktPmljb25V
UkxzKGljb25UeXBlKTsKICAgICBWZWN0b3I8SWNvblVSTD46OmNvbnN0X2l0ZXJhdG9yIGl0ZXIo
aWNvblVSTHMuYmVnaW4oKSk7CiAgICAgZm9yICg7IGl0ZXIgIT0gaWNvblVSTHMuZW5kKCk7ICsr
aXRlcikgewotICAgICAgICBpZiAoaXRlci0+bV9pY29uVHlwZSA9PSBpY29uVHlwZSkgewotICAg
ICAgICAgICAgaWYgKHJlc3VsdC5tX2ljb25VUkwuaXNFbXB0eSgpIHx8ICFpdGVyLT5tX21pbWVU
eXBlLmlzRW1wdHkoKSkKLSAgICAgICAgICAgICAgICByZXN1bHQgPSAqaXRlcjsKLSAgICAgICAg
fQorICAgICAgICBpZiAocmVzdWx0Lm1faWNvblVSTC5pc0VtcHR5KCkgfHwgIWl0ZXItPm1fbWlt
ZVR5cGUuaXNFbXB0eSgpKQorICAgICAgICAgICAgcmVzdWx0ID0gKml0ZXI7CiAgICAgfQogCiAg
ICAgcmV0dXJuIHJlc3VsdDsKIH0KIAotSWNvblVSTHMgSWNvbkNvbnRyb2xsZXI6OnVybHNGb3JU
eXBlcyhpbnQgaWNvblR5cGVzKQorSWNvblVSTHMgSWNvbkNvbnRyb2xsZXI6OnVybHNGb3JUeXBl
cyhpbnQgaWNvblR5cGVzTWFzaykKIHsKICAgICBJY29uVVJMcyBpY29uVVJMczsKICAgICBpZiAo
bV9mcmFtZS0+dHJlZSgpICYmIG1fZnJhbWUtPnRyZWUoKS0+cGFyZW50KCkpCiAgICAgICAgIHJl
dHVybiBpY29uVVJMczsKICAgICAgICAgCi0gICAgaWYgKGljb25UeXBlcyAmIEZhdmljb24gJiYg
IWFwcGVuZFRvSWNvblVSTHMoRmF2aWNvbiwgJmljb25VUkxzKSkKKyAgICBpZiAoaWNvblR5cGVz
TWFzayAmIEZhdmljb24gJiYgIWFwcGVuZFRvSWNvblVSTHMoRmF2aWNvbiwgJmljb25VUkxzKSkK
ICAgICAgICAgaWNvblVSTHMuYXBwZW5kKGRlZmF1bHRVUkwoRmF2aWNvbikpOwogCiAjaWYgRU5B
QkxFKFRPVUNIX0lDT05fTE9BRElORykKICAgICBpbnQgbWlzc2VkSWNvbnMgPSAwOwotICAgIGlm
IChpY29uVHlwZXMgJiBUb3VjaFByZWNvbXBvc2VkSWNvbikKKyAgICBpZiAoaWNvblR5cGVzTWFz
ayAmIFRvdWNoUHJlY29tcG9zZWRJY29uKQogICAgICAgICBtaXNzZWRJY29ucyArPSBhcHBlbmRU
b0ljb25VUkxzKFRvdWNoUHJlY29tcG9zZWRJY29uLCAmaWNvblVSTHMpID8gMDoxOwogCi0gICAg
aWYgKGljb25UeXBlcyAmIFRvdWNoSWNvbikKKyAgICBpZiAoaWNvblR5cGVzTWFzayAmIFRvdWNo
SWNvbikKICAgICAgIG1pc3NlZEljb25zICs9IGFwcGVuZFRvSWNvblVSTHMoVG91Y2hJY29uLCAm
aWNvblVSTHMpID8gMDoxOwogCiAgICAgLy8gT25seSByZXR1cm4gdGhlIGRlZmF1bHQgdG91Y2gg
aWNvbnMgd2hlbiB0aGUgYm90aCB3ZXJlIHJlcXVpcmVkIGFuZCBuZWl0aGVyIHdhcyBnb3R0ZW4u
CkBAIC0xMDYsMTEgKzEwNCw4IEBAIEljb25VUkxzIEljb25Db250cm9sbGVyOjp1cmxzRm9yVHlw
ZXMoaW50IGljb25UeXBlcykKICNlbmRpZgogCiAgICAgLy8gRmluYWxseSwgYXBwZW5kIGFsbCBy
ZW1haW5pbmcgaWNvbnMgb2YgdGhpcyB0eXBlLgotICAgIGNvbnN0IFZlY3RvcjxJY29uVVJMPiYg
YWxsSWNvblVSTHMgPSBtX2ZyYW1lLT5kb2N1bWVudCgpLT5pY29uVVJMcygpOworICAgIGNvbnN0
IFZlY3RvcjxJY29uVVJMPiYgYWxsSWNvblVSTHMgPSBtX2ZyYW1lLT5kb2N1bWVudCgpLT5pY29u
VVJMcyhpY29uVHlwZXNNYXNrKTsKICAgICBmb3IgKFZlY3RvcjxJY29uVVJMPjo6Y29uc3RfaXRl
cmF0b3IgaXRlciA9IGFsbEljb25VUkxzLmJlZ2luKCk7IGl0ZXIgIT0gYWxsSWNvblVSTHMuZW5k
KCk7ICsraXRlcikgewotICAgICAgICBpZiAoIShpdGVyLT5tX2ljb25UeXBlICYgaWNvblR5cGVz
KSkKLSAgICAgICAgICAgIGNvbnRpbnVlOwotCiAgICAgICAgIGludCBpOwogICAgICAgICBpbnQg
aWNvbkNvdW50ID0gaWNvblVSTHMuc2l6ZSgpOwogICAgICAgICBmb3IgKGkgPSAwOyBpIDwgaWNv
bkNvdW50OyArK2kpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9pY29uL0lj
b25Db250cm9sbGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvaWNvbi9JY29uQ29udHJvbGxl
ci5oCmluZGV4IGIyY2FiYTJhMGE5NWQzZWQwYWQxMGIzM2IwZWRhMmQ4MWY2MWRjMTYuLjYxZGZh
NzZiNmM0ZmZjYmZmNzZkNTZiOTY0M2I1YzQ4NzU3MDY2NTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2xvYWRlci9pY29uL0ljb25Db250cm9sbGVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
bG9hZGVyL2ljb24vSWNvbkNvbnRyb2xsZXIuaApAQCAtNDgsNyArNDgsNyBAQCBwdWJsaWM6CiAg
ICAgfkljb25Db250cm9sbGVyKCk7CiAKICAgICBLVVJMIHVybCgpOwotICAgIEljb25VUkxzIHVy
bHNGb3JUeXBlcyhpbnQgaWNvblR5cGVzKTsKKyAgICBJY29uVVJMcyB1cmxzRm9yVHlwZXMoaW50
IGljb25UeXBlc01hc2spOwogICAgIEljb25VUkwgaWNvblVSTChJY29uVHlwZSkgY29uc3Q7CiAK
ICAgICB2b2lkIHN0YXJ0TG9hZGVyKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS90ZXN0
aW5nL0ludGVybmFscy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5jcHAK
aW5kZXggM2RkZWZmN2ZhMDE3MDljNWM3ZTA2YjAyYzZiNWZlMmFmZTk3MDE2MC4uZDFhN2U5OTM5
YTc5YjM2NjkzODA2NGI5NDQ3MjA2ODY3NTcwYzE1ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvdGVzdGluZy9JbnRlcm5hbHMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50
ZXJuYWxzLmNwcApAQCAtMTc2Niw5ICsxNzY2LDkgQEAgaW50IEludGVybmFsczo6cGFnZU51bWJl
cihFbGVtZW50KiBlbGVtZW50LCBmbG9hdCBwYWdlV2lkdGgsIGZsb2F0IHBhZ2VIZWlnaHQpCiAg
ICAgcmV0dXJuIFByaW50Q29udGV4dDo6cGFnZU51bWJlckZvckVsZW1lbnQoZWxlbWVudCwgRmxv
YXRTaXplKHBhZ2VXaWR0aCwgcGFnZUhlaWdodCkpOwogfQogCi1WZWN0b3I8U3RyaW5nPiBJbnRl
cm5hbHM6Omljb25VUkxzKERvY3VtZW50KiBkb2N1bWVudCkgY29uc3QKK1ZlY3RvcjxTdHJpbmc+
IEludGVybmFsczo6aWNvblVSTHMoRG9jdW1lbnQqIGRvY3VtZW50LCBpbnQgaWNvblR5cGVzTWFz
aykgY29uc3QKIHsKLSAgICBWZWN0b3I8SWNvblVSTD4gaWNvblVSTHMgPSBkb2N1bWVudC0+aWNv
blVSTHMoKTsKKyAgICBWZWN0b3I8SWNvblVSTD4gaWNvblVSTHMgPSBkb2N1bWVudC0+aWNvblVS
THMoaWNvblR5cGVzTWFzayk7CiAgICAgVmVjdG9yPFN0cmluZz4gYXJyYXk7CiAKICAgICBWZWN0
b3I8SWNvblVSTD46OmNvbnN0X2l0ZXJhdG9yIGl0ZXIoaWNvblVSTHMuYmVnaW4oKSk7CkBAIC0x
Nzc4LDYgKzE3NzgsMTYgQEAgVmVjdG9yPFN0cmluZz4gSW50ZXJuYWxzOjppY29uVVJMcyhEb2N1
bWVudCogZG9jdW1lbnQpIGNvbnN0CiAgICAgcmV0dXJuIGFycmF5OwogfQogCitWZWN0b3I8U3Ry
aW5nPiBJbnRlcm5hbHM6OnNob3J0Y3V0SWNvblVSTHMoRG9jdW1lbnQqIGRvY3VtZW50KSBjb25z
dAoreworICAgIHJldHVybiBpY29uVVJMcyhkb2N1bWVudCwgRmF2aWNvbik7Cit9CisKK1ZlY3Rv
cjxTdHJpbmc+IEludGVybmFsczo6YWxsSWNvblVSTHMoRG9jdW1lbnQqIGRvY3VtZW50KSBjb25z
dAoreworICAgIHJldHVybiBpY29uVVJMcyhkb2N1bWVudCwgRmF2aWNvbiB8IFRvdWNoSWNvbiB8
IFRvdWNoUHJlY29tcG9zZWRJY29uKTsKK30KKwogaW50IEludGVybmFsczo6bnVtYmVyT2ZQYWdl
cyhmbG9hdCBwYWdlV2lkdGgsIGZsb2F0IHBhZ2VIZWlnaHQpCiB7CiAgICAgaWYgKCFmcmFtZSgp
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaCBiL1NvdXJj
ZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmgKaW5kZXggNGEyNmE5NTE2NWZlYWJlYTdlOGNi
MzQ1NmQ2ZTI3MzQ5ODZlY2Q4NS4uZWVjMzgzYTVkMDM4Njk5MjA0YTQ1YTlmZGQ0MjM4YWVjNjI1
ZTcwNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5oCkBAIC0yNTEsNyArMjUxLDggQEAg
cHVibGljOgogICAgIFN0cmluZyBjb3VudGVyVmFsdWUoRWxlbWVudCopOwogCiAgICAgaW50IHBh
Z2VOdW1iZXIoRWxlbWVudCosIGZsb2F0IHBhZ2VXaWR0aCA9IDgwMCwgZmxvYXQgcGFnZUhlaWdo
dCA9IDYwMCk7Ci0gICAgVmVjdG9yPFN0cmluZz4gaWNvblVSTHMoRG9jdW1lbnQqKSBjb25zdDsK
KyAgICBWZWN0b3I8U3RyaW5nPiBzaG9ydGN1dEljb25VUkxzKERvY3VtZW50KikgY29uc3Q7Cisg
ICAgVmVjdG9yPFN0cmluZz4gYWxsSWNvblVSTHMoRG9jdW1lbnQqKSBjb25zdDsKIAogICAgIGlu
dCBudW1iZXJPZlBhZ2VzKGZsb2F0IHBhZ2VXaWR0aEluUGl4ZWxzID0gODAwLCBmbG9hdCBwYWdl
SGVpZ2h0SW5QaXhlbHMgPSA2MDApOwogICAgIFN0cmluZyBwYWdlUHJvcGVydHkoU3RyaW5nLCBp
bnQsIEV4Y2VwdGlvbkNvZGUmID0gQVNTRVJUX05PX0VYQ0VQVElPTikgY29uc3Q7CkBAIC0yOTgs
NiArMjk5LDcgQEAgcHJpdmF0ZToKICAgICBleHBsaWNpdCBJbnRlcm5hbHMoRG9jdW1lbnQqKTsK
ICAgICBEb2N1bWVudCogY29udGV4dERvY3VtZW50KCkgY29uc3Q7CiAgICAgRnJhbWUqIGZyYW1l
KCkgY29uc3Q7CisgICAgVmVjdG9yPFN0cmluZz4gaWNvblVSTHMoRG9jdW1lbnQqLCBpbnQgaWNv
blR5cGVzTWFzaykgY29uc3Q7CiAKICAgICBEb2N1bWVudE1hcmtlciogbWFya2VyQXQoTm9kZSos
IGNvbnN0IFN0cmluZyYgbWFya2VyVHlwZSwgdW5zaWduZWQgaW5kZXgsIEV4Y2VwdGlvbkNvZGUm
KTsKICNpZiBFTkFCTEUoSU5TUEVDVE9SKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvdGVz
dGluZy9JbnRlcm5hbHMuaWRsIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaWRs
CmluZGV4IDU4YmQzYzEyMWQ4ZjcwZmJhZjExYjI0NzFmMzlhMTMxZDdjNWQ2ZDMuLjM3MmIwOTg2
MmE2MjA2OWFmNjRmNTIwNjQ2ZTA1OGQzODZmZjllZDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0lu
dGVybmFscy5pZGwKQEAgLTIxNyw3ICsyMTcsOCBAQAogCiAgICAgRE9NU3RyaW5nIGNvdW50ZXJW
YWx1ZShpbiBFbGVtZW50IGVsZW1lbnQpOwogICAgIGxvbmcgcGFnZU51bWJlcihpbiBFbGVtZW50
IGVsZW1lbnQsIGluIFtPcHRpb25hbF0gZmxvYXQgcGFnZVdpZHRoLCBpbiBbT3B0aW9uYWxdIGZs
b2F0IHBhZ2VIZWlnaHQpOwotICAgIERPTVN0cmluZ1tdIGljb25VUkxzKGluIERvY3VtZW50IGRv
Y3VtZW50KTsKKyAgICBET01TdHJpbmdbXSBzaG9ydGN1dEljb25VUkxzKGluIERvY3VtZW50IGRv
Y3VtZW50KTsKKyAgICBET01TdHJpbmdbXSBhbGxJY29uVVJMcyhpbiBEb2N1bWVudCBkb2N1bWVu
dCk7CiAgICAgbG9uZyBudW1iZXJPZlBhZ2VzKGluIFtPcHRpb25hbF0gZG91YmxlIHBhZ2VXaWR0
aEluUGl4ZWxzLCBpbiBbT3B0aW9uYWxdIGRvdWJsZSBwYWdlSGVpZ2h0SW5QaXhlbHMpOwogICAg
IERPTVN0cmluZyBwYWdlUHJvcGVydHkoaW4gRE9NU3RyaW5nIHByb3BlcnR5TmFtZSwgaW4gbG9u
ZyBwYWdlTnVtYmVyKSByYWlzZXMgKERPTUV4Y2VwdGlvbik7CiAgICAgRE9NU3RyaW5nIHBhZ2VT
aXplQW5kTWFyZ2luc0luUGl4ZWxzKGluIGxvbmcgcGFnZUluZGV4LCBpbiBsb25nIHdpZHRoLCBp
biBsb25nIGhlaWdodCwgaW4gbG9uZyBtYXJnaW5Ub3AsIGluIGxvbmcgbWFyZ2luUmlnaHQsIGlu
IGxvbmcgbWFyZ2luQm90dG9tLCBpbiBsb25nIG1hcmdpbkxlZnQpIHJhaXNlcyAoRE9NRXhjZXB0
aW9uKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViS2l0LnZjeHByb2ovV2ViS2l0RXhw
b3J0R2VuZXJhdG9yL1dlYktpdEV4cG9ydHMuZGVmLmluIGIvU291cmNlL1dlYktpdC9XZWJLaXQu
dmN4cHJvai9XZWJLaXRFeHBvcnRHZW5lcmF0b3IvV2ViS2l0RXhwb3J0cy5kZWYuaW4KaW5kZXgg
NDM3ZTc3YzkyZDE2Yzk3YWY0NmViMjU3YzgwMmVhNWJiNmJlYjk0ZS4uMTQ2YTBjMGI3MmJhODc5
ZjIwOWU2Njg3NjhlZTQyM2VlZjRkMjk1OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJL
aXQudmN4cHJvai9XZWJLaXRFeHBvcnRHZW5lcmF0b3IvV2ViS2l0RXhwb3J0cy5kZWYuaW4KKysr
IGIvU291cmNlL1dlYktpdC9XZWJLaXQudmN4cHJvai9XZWJLaXRFeHBvcnRHZW5lcmF0b3IvV2Vi
S2l0RXhwb3J0cy5kZWYuaW4KQEAgLTMyNSw3ICszMjUsOCBAQCBFWFBPUlRTCiAgICAgICAgID9z
ZXRBbGxvd3NSb3VuZGluZ0hhY2tzQFRleHRSdW5AV2ViQ29yZUBAU0FYX05AWgogICAgICAgICA/
cmVnaXN0ZXJVUkxTY2hlbWVBc0J5cGFzc2luZ0NvbnRlbnRTZWN1cml0eVBvbGljeUBTY2hlbWVS
ZWdpc3RyeUBXZWJDb3JlQEBTQVhBQlZTdHJpbmdAV1RGQEBAWgogICAgICAgICA/cmVtb3ZlVVJM
U2NoZW1lUmVnaXN0ZXJlZEFzQnlwYXNzaW5nQ29udGVudFNlY3VyaXR5UG9saWN5QFNjaGVtZVJl
Z2lzdHJ5QFdlYkNvcmVAQFNBWEFCVlN0cmluZ0BXVEZAQEBaCi0gICAgICAgID9pY29uVVJMc0BE
b2N1bWVudEBXZWJDb3JlQEBRQUVBQlY/JFZlY3RvckBVSWNvblVSTEBXZWJDb3JlQEAkMEFAQFdU
RkBAWFoKKyAgICAgICAgP3Nob3J0Y3V0SWNvblVSTHNARG9jdW1lbnRAV2ViQ29yZUBAUUFFQUJW
PyRWZWN0b3JAVUljb25VUkxAV2ViQ29yZUBAJDBBQEBXVEZAQFhaCisgICAgICAgID9pY29uVVJM
c0BEb2N1bWVudEBXZWJDb3JlQEBRQUVBQlY/JFZlY3RvckBVSWNvblVSTEBXZWJDb3JlQEAkMEFA
QFdURkBASEBaCiAgICAgICAgID9udW1iZXJPZlBhZ2VzQFByaW50Q29udGV4dEBXZWJDb3JlQEBT
QUhQQVZGcmFtZUAyQEFCVkZsb2F0U2l6ZUAyQEBaCiAgICAgICAgID9wYWdlUHJvcGVydHlAUHJp
bnRDb250ZXh0QFdlYkNvcmVAQFNBP0FWU3RyaW5nQFdURkBAUEFWRnJhbWVAMkBQQkRIQFoKICAg
ICAgICAgP3BhZ2VTaXplQW5kTWFyZ2luc0luUGl4ZWxzQFByaW50Q29udGV4dEBXZWJDb3JlQEBT
QT9BVlN0cmluZ0BXVEZAQFBBVkZyYW1lQDJASEhISEhISEBaCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJGcmFtZS5oIGIvU291cmNlL1dlYktpdC9jaHJvbWl1
bS9wdWJsaWMvV2ViRnJhbWUuaAppbmRleCA4MTJhZDZlYTU2NjI2NTM4MmVhZjc3YmFhMTE5YTE5
N2ZmOGVlZGQxLi5lNzRlZmViNzhiNzI0NTA5MWIyODRhZjEwNmQyNWJhMzUxODMwZWI4IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJGcmFtZS5oCisrKyBiL1Nv
dXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYkZyYW1lLmgKQEAgLTEzMCwxMCArMTMwLDEw
IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIGxvbmcgbG9uZyBpZGVudGlmaWVyKCkgY29uc3QgPSAw
OwogCiAgICAgLy8gVGhlIHVybHMgb2YgdGhlIGdpdmVuIGNvbWJpbmF0aW9uIHR5cGVzIG9mIGZh
dmljb24gKGlmIGFueSkgc3BlY2lmaWVkIGJ5Ci0gICAgLy8gdGhlIGRvY3VtZW50IGxvYWRlZCBp
biB0aGlzIGZyYW1lLiBUaGUgaWNvblR5cGVzIGlzIGEgYml0LW1hc2sgb2YKKyAgICAvLyB0aGUg
ZG9jdW1lbnQgbG9hZGVkIGluIHRoaXMgZnJhbWUuIFRoZSBpY29uVHlwZXNNYXNrIGlzIGEgYml0
LW1hc2sgb2YKICAgICAvLyBXZWJJY29uVVJMOjpUeXBlIHZhbHVlcywgdXNlZCB0byBzZWxlY3Qg
ZnJvbSB0aGUgYXZhaWxhYmxlIHNldCBvZiBpY29uCiAgICAgLy8gVVJMcwotICAgIHZpcnR1YWwg
V2ViVmVjdG9yPFdlYkljb25VUkw+IGljb25VUkxzKGludCBpY29uVHlwZXMpIGNvbnN0ID0gMDsK
KyAgICB2aXJ0dWFsIFdlYlZlY3RvcjxXZWJJY29uVVJMPiBpY29uVVJMcyhpbnQgaWNvblR5cGVz
TWFzaykgY29uc3QgPSAwOwogCiAKICAgICAvLyBHZW9tZXRyeSAtLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViRnJhbWVJbXBsLmNwcCBiL1NvdXJjZS9XZWJLaXQv
Y2hyb21pdW0vc3JjL1dlYkZyYW1lSW1wbC5jcHAKaW5kZXggM2NkZjUwMzFhNWViZWRmZmE5YmY3
ZWU4NDk3OWRiOWY3ODE2MjBlZC4uZGE1OWVhYWJjYWQ4ZDQ0NjhiMjljNmU3YWZmZmIyYTA0MTI5
NzI5ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViRnJhbWVJbXBs
LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJGcmFtZUltcGwuY3BwCkBA
IC01NzQsMTIgKzU3NCwxMiBAQCBsb25nIGxvbmcgV2ViRnJhbWVJbXBsOjppZGVudGlmaWVyKCkg
Y29uc3QKICAgICByZXR1cm4gbV9pZGVudGlmaWVyOwogfQogCi1XZWJWZWN0b3I8V2ViSWNvblVS
TD4gV2ViRnJhbWVJbXBsOjppY29uVVJMcyhpbnQgaWNvblR5cGVzKSBjb25zdAorV2ViVmVjdG9y
PFdlYkljb25VUkw+IFdlYkZyYW1lSW1wbDo6aWNvblVSTHMoaW50IGljb25UeXBlc01hc2spIGNv
bnN0CiB7CiAgICAgLy8gVGhlIFVSTCB0byB0aGUgaWNvbiBtYXkgYmUgaW4gdGhlIGhlYWRlci4g
QXMgc3VjaCwgb25seQogICAgIC8vIGFzayB0aGUgbG9hZGVyIGZvciB0aGUgaWNvbiBpZiBpdCdz
IGZpbmlzaGVkIGxvYWRpbmcuCiAgICAgaWYgKGZyYW1lKCktPmxvYWRlcigpLT5zdGF0ZSgpID09
IEZyYW1lU3RhdGVDb21wbGV0ZSkKLSAgICAgICAgcmV0dXJuIGZyYW1lKCktPmxvYWRlcigpLT5p
Y29uKCktPnVybHNGb3JUeXBlcyhpY29uVHlwZXMpOworICAgICAgICByZXR1cm4gZnJhbWUoKS0+
bG9hZGVyKCktPmljb24oKS0+dXJsc0ZvclR5cGVzKGljb25UeXBlc01hc2spOwogICAgIHJldHVy
biBXZWJWZWN0b3I8V2ViSWNvblVSTD4oKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9jaHJvbWl1bS9zcmMvV2ViRnJhbWVJbXBsLmggYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Ny
Yy9XZWJGcmFtZUltcGwuaAppbmRleCBiMDliYmJhOWQ0ODYxNzQwNWI0MDY4YjZhMjI3NDk5OGFh
MjU3M2FjLi45N2M2MjFkYzljMzdlZGQ3NzQ3MjRlMWFiODk4M2FjMTE4NzkyY2I2IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJGcmFtZUltcGwuaAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJGcmFtZUltcGwuaApAQCAtNzgsNyArNzgsNyBAQCBw
dWJsaWM6CiAgICAgdmlydHVhbCBXZWJTdHJpbmcgYXNzaWduZWROYW1lKCkgY29uc3Q7CiAgICAg
dmlydHVhbCB2b2lkIHNldE5hbWUoY29uc3QgV2ViU3RyaW5nJik7CiAgICAgdmlydHVhbCBsb25n
IGxvbmcgaWRlbnRpZmllcigpIGNvbnN0OwotICAgIHZpcnR1YWwgV2ViVmVjdG9yPFdlYkljb25V
Ukw+IGljb25VUkxzKGludCBpY29uVHlwZXMpIGNvbnN0OworICAgIHZpcnR1YWwgV2ViVmVjdG9y
PFdlYkljb25VUkw+IGljb25VUkxzKGludCBpY29uVHlwZXNNYXNrKSBjb25zdDsKICAgICB2aXJ0
dWFsIFdlYlNpemUgc2Nyb2xsT2Zmc2V0KCkgY29uc3Q7CiAgICAgdmlydHVhbCB2b2lkIHNldFNj
cm9sbE9mZnNldChjb25zdCBXZWJTaXplJik7CiAgICAgdmlydHVhbCBXZWJTaXplIG1pbmltdW1T
Y3JvbGxPZmZzZXQoKSBjb25zdDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvd2luL1dlYktp
dC52Y3Byb2ovV2ViS2l0RXhwb3J0cy5kZWYuaW4gYi9Tb3VyY2UvV2ViS2l0L3dpbi9XZWJLaXQu
dmNwcm9qL1dlYktpdEV4cG9ydHMuZGVmLmluCmluZGV4IDA2MDRkMzc2MzEyYWVlY2RhODNiNzhh
OWU5NTQ0ZDc0YzFkOGUwNWQuLmIxYWFmNDMyNDdiMTNhOTFmMjM0NjcyYzZlNGQ2OWEwM2IxNGFk
M2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvd2luL1dlYktpdC52Y3Byb2ovV2ViS2l0RXhw
b3J0cy5kZWYuaW4KKysrIGIvU291cmNlL1dlYktpdC93aW4vV2ViS2l0LnZjcHJvai9XZWJLaXRF
eHBvcnRzLmRlZi5pbgpAQCAtMzI4LDcgKzMyOCw4IEBAIEVYUE9SVFMKICAgICAgICAgP3NldEFs
bG93c1JvdW5kaW5nSGFja3NAVGV4dFJ1bkBXZWJDb3JlQEBTQVhfTkBaCiAgICAgICAgID9yZWdp
c3RlclVSTFNjaGVtZUFzQnlwYXNzaW5nQ29udGVudFNlY3VyaXR5UG9saWN5QFNjaGVtZVJlZ2lz
dHJ5QFdlYkNvcmVAQFNBWEFCVlN0cmluZ0BXVEZAQEBaCiAgICAgICAgID9yZW1vdmVVUkxTY2hl
bWVSZWdpc3RlcmVkQXNCeXBhc3NpbmdDb250ZW50U2VjdXJpdHlQb2xpY3lAU2NoZW1lUmVnaXN0
cnlAV2ViQ29yZUBAU0FYQUJWU3RyaW5nQFdURkBAQFoKLSAgICAgICAgP2ljb25VUkxzQERvY3Vt
ZW50QFdlYkNvcmVAQFFBRUFCVj8kVmVjdG9yQFVJY29uVVJMQFdlYkNvcmVAQCQwQUBAV1RGQEBY
WgorICAgICAgICA/c2hvcnRjdXRJY29uVVJMc0BEb2N1bWVudEBXZWJDb3JlQEBRQUVBQlY/JFZl
Y3RvckBVSWNvblVSTEBXZWJDb3JlQEAkMEFAQFdURkBAWFoKKyAgICAgICAgP2ljb25VUkxzQERv
Y3VtZW50QFdlYkNvcmVAQFFBRUFCVj8kVmVjdG9yQFVJY29uVVJMQFdlYkNvcmVAQCQwQUBAV1RG
QEBIQFoKICAgICAgICAgP251bWJlck9mUGFnZXNAUHJpbnRDb250ZXh0QFdlYkNvcmVAQFNBSFBB
VkZyYW1lQDJAQUJWRmxvYXRTaXplQDJAQFoKICAgICAgICAgP3BhZ2VQcm9wZXJ0eUBQcmludENv
bnRleHRAV2ViQ29yZUBAU0E/QVZTdHJpbmdAV1RGQEBQQVZGcmFtZUAyQFBCREhAWgogICAgICAg
ICA/cGFnZVNpemVBbmRNYXJnaW5zSW5QaXhlbHNAUHJpbnRDb250ZXh0QFdlYkNvcmVAQFNBP0FW
U3RyaW5nQFdURkBAUEFWRnJhbWVAMkBISEhISEhIQFoKZGlmZiAtLWdpdCBhL1NvdXJjZS9hdXRv
dG9vbHMvc3ltYm9scy5maWx0ZXIgYi9Tb3VyY2UvYXV0b3Rvb2xzL3N5bWJvbHMuZmlsdGVyCmlu
ZGV4IGRiZWFmNDdjNmZkZDg1MDg5YWU5ZTNiMzYwM2JjNTY5OGIzN2I5MGUuLjdiYTI1ZDAxYzk4
MjBhYTQ4YzdlNWY2Y2UwMjYyNDdkZDE0N2EwZjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9hdXRvdG9v
bHMvc3ltYm9scy5maWx0ZXIKKysrIGIvU291cmNlL2F1dG90b29scy9zeW1ib2xzLmZpbHRlcgpA
QCAtNDIsNyArNDIsOCBAQCBfWk43V2ViQ29yZTR0b0pTRVBOM0pTQzlFeGVjU3RhdGVFUE5TXzE3
SlNET01HbG9iYWxPYmplY3RFUE5TXzVSYW5nZUU7CiBfWk43V2ViQ29yZTVSYW5nZTZjcmVhdGVF
TjNXVEYxMFBhc3NSZWZQdHJJTlNfOERvY3VtZW50RUVFTlMyX0lOU180Tm9kZUVFRWlTNl9pOwog
X1pON1dlYkNvcmU1UmFuZ2VEMUV2OwogX1pON1dlYkNvcmU4RG9jdW1lbnQzNnVwZGF0ZUxheW91
dElnbm9yZVBlbmRpbmdTdHlsZXNoZWV0c0V2OwotX1pON1dlYkNvcmU4RG9jdW1lbnQ4aWNvblVS
THNFdjsKK19aTjdXZWJDb3JlOERvY3VtZW50OGljb25VUkxzRWk7CitfWk43V2ViQ29yZThEb2N1
bWVudDE2c2hvcnRjdXRJY29uVVJMc0V2OwogX1pON1dlYkNvcmU4U2V0dGluZ3MxOW1pbkRPTVRp
bWVySW50ZXJ2YWxFdjsKIF9aTjdXZWJDb3JlOFNldHRpbmdzMjJzZXRNaW5ET01UaW1lckludGVy
dmFsRWQ7CiBfWk43V2ViQ29yZTlIVE1MTmFtZXM4aW5wdXRUYWdFOwpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IDlhN2VkMWU0
OTllMjUyMjI5MjZlYzgwODU3ZjNiODc0ZGVjODk5MjguLmYwMDNlMWI5MzI3ZDgwYTg2ZDYyZmNh
NzRmNmJjZWI1Mzg3N2QyNzUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysg
Yi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxOSBAQAorMjAxMy0wMy0wNCAgUnVz
bGFuIEFiZGlrZWV2ICA8YXJ1c2xhbkBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgPGxpbmsgcmVs
PSJhcHBsZS10b3VjaC1pY29uIj4gdGFnIGlzIG5vdCBob25vcmVkIG9uIENOTi5jb20sIHdvcmtm
bG93eS5jb20gZXRjCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0xMDkwNjEKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICBBZGRlZCB0ZXN0IGZvciBhcHBsZS10b3VjaC1pY29uIGluIGFsbEljb25VUkxzKCkuCisg
ICAgICAgIENoYW5nZWQgaWNvblVSTHMoKSB0byBzaG9ydGN1dEljb25VUkxzKCkuCisKKyAgICAg
ICAgKiBmYXN0L2RvbS9pY29uLXVybC1jaGFuZ2UuaHRtbDoKKyAgICAgICAgKiBmYXN0L2RvbS9p
Y29uLXVybC1saXN0LWFwcGxlLXRvdWNoLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICog
ZmFzdC9kb20vaWNvbi11cmwtbGlzdC1hcHBsZS10b3VjaC5odG1sOiBBZGRlZC4KKyAgICAgICAg
KiBmYXN0L2RvbS9pY29uLXVybC1saXN0Lmh0bWw6CisgICAgICAgICogZmFzdC9kb20vaWNvbi11
cmwtcHJvcGVydHkuaHRtbDoKKwogMjAxMy0wMy0wNCAgw4Fkw6FtIEthbGxhaSAgPGthZGFtQGlu
Zi51LXN6ZWdlZC5odT4KIAogICAgICAgICBbUXRdW1dLMl0gVW5yZXZpZXdlZCBnYXJkZW5pbmcu
IFVwZGF0ZWQgcGxhdGZvcm0gc3BlY2lmaWMgZXhwZWN0ZWQgZmlsZXMgYW5kIHBuZyByZXN1bHRz
LgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vaWNvbi11cmwtY2hhbmdlLmh0bWwg
Yi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9pY29uLXVybC1jaGFuZ2UuaHRtbAppbmRleCA4MmQ1MzRl
ZWNkYTdjZDE0YWI1NTk5MzFhMjJiMjc5OTJhNmZlNWU3Li45OTMyNzJlZGJjMmZhMmY2NjdhYzQ4
OTllNjcwYzJjNTA3MGVkZDFmIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9pY29u
LXVybC1jaGFuZ2UuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9pY29uLXVybC1jaGFu
Z2UuaHRtbApAQCAtNDUsNyArNDUsNyBAQCBmdW5jdGlvbiBydW5UZXN0cygpIHsKIAogICAgIC8v
IGNoZWNrIHRoYXQgdGhlIFVSTCBsaXN0IGluIHRoZSBkb2N1bWVudCBpcyBhcyB3ZSBleHBlY3QK
ICAgICB2YXIgZXhwZWN0ZWRVUkxzID0gImh0dHA6Ly90ZXN0LmNvbS9vbGRmYXZpY29uLmljbyI7
Ci0gICAgdmFyIGljb25VUkxzID0gd2luZG93LmludGVybmFscy5pY29uVVJMcyhkb2N1bWVudCk7
CisgICAgdmFyIGljb25VUkxzID0gd2luZG93LmludGVybmFscy5zaG9ydGN1dEljb25VUkxzKGRv
Y3VtZW50KTsKICAgICBpZiAoZXhwZWN0ZWRVUkxzID09IGljb25VUkxzWzBdKQogICAgICAgICB0
ZXN0UGFzc2VkKCdVUkwgbGlzdCBtYXRjaGVzIGV4cGVjdGVkJyk7CiAgICAgZWxzZQpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vaWNvbi11cmwtbGlzdC1hcHBsZS10b3VjaC1leHBl
Y3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9pY29uLXVybC1saXN0LWFwcGxlLXRvdWNo
LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43NzQ0MmYwZjdjNzNkY2FiZmIzYzM2YTM3NzZlMDVh
ODEyODQyZWZmCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vaWNvbi11
cmwtbGlzdC1hcHBsZS10b3VjaC1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwzIEBACitUZXN0cyB0
aGF0IGFsbCBmYXZpY29ucyBhbmQgdG91Y2ggaWNvbnMgKGlmIEVOQUJMRShUT1VDSF9JQ09OX0xP
QURJTkcpKSBhcmUgaW4gZG9jdW1lbnQuaWNvblVSTHMoKQoraHR0cDovL3Rlc3QuY29tL29sZGZh
dmljb24uaWNvCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL2ljb24tdXJsLWxp
c3QtYXBwbGUtdG91Y2guaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL2ljb24tdXJsLWxpc3Qt
YXBwbGUtdG91Y2guaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45NDEyMzBkMDlhZDFiYmVjNjYwYzNhNjk2YWFh
YzE4N2RjZmRiYWU3Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vaWNv
bi11cmwtbGlzdC1hcHBsZS10b3VjaC5odG1sCkBAIC0wLDAgKzEsMjggQEAKKzxodG1sPgorPGhl
YWQ+Cis8dGl0bGU+T3JpZ2luYWwgVGl0bGU8L3RpdGxlPgorPGxpbmsgcmVsPSJzaG9ydGN1dCBp
Y29uIiB0eXBlPSJpbWFnZS94LWljb24iIGhyZWY9Imh0dHA6Ly90ZXN0LmNvbS9vbGRmYXZpY29u
LmljbyIvPgorPGxpbmsgcmVsPSJhcHBsZS10b3VjaC1pY29uIiB0eXBlPSJpbWFnZS9wbmciIGhy
ZWY9Imh0dHA6Ly90ZXN0LmNvbS9pL3RvdWNoLnBuZyIvPgorPGxpbmsgcmVsPSJhcHBsZS10b3Vj
aC1pY29uLXByZWNvbXBvc2VkIiB0eXBlPSJpbWFnZS9wbmciIGhyZWY9Imh0dHA6Ly90ZXN0LmNv
bS9pL3RvdWNoLXByZWNvbXBvc2VkLnBuZyIvPgorPHNjcmlwdCBzcmM9Ii4uL2pzL3Jlc291cmNl
cy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0PgorZnVuY3Rpb24gcnVuVGVzdHMo
KSB7CisgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKQorICAgICAgICB0ZXN0UnVubmVyLmR1bXBB
c1RleHQoKTsKKworICAgIGRlYnVnKCdUZXN0cyB0aGF0IGFsbCBmYXZpY29ucyBhbmQgdG91Y2gg
aWNvbnMgKGlmIEVOQUJMRShUT1VDSF9JQ09OX0xPQURJTkcpKSBhcmUgaW4gZG9jdW1lbnQuaWNv
blVSTHMoKScpOworCisgICAgLy8gRmV0Y2ggdGhlIGFjdHVhbCBsaXN0IG9mIGljb24gVVJMcy4K
KyAgICB2YXIgYWN0dWFsVVJMcyA9IHdpbmRvdy5pbnRlcm5hbHMuYWxsSWNvblVSTHMoZG9jdW1l
bnQpOworCisgICAgLy8gUHJpbnQgb3V0IHRoZSBVUkwgbGlzdCBpbiB0aGUgZG9jdW1lbnQgdG8g
bWF0Y2ggaXQgYWdhaW5zdCB0aGUgZXhwZWN0ZWQgbGlzdC4KKyAgICAvLyBOb3RlIHRoYXQgdGhl
IGV4cGVjdGVkIG9yZGVyIGlzIHJldmVyc2UgdG8gZW5zdXJlIHRoYXQgaWNvbnMgc2VlbiBsYXRl
cgorICAgIC8vIHRha2UgcHJlY2VkZW5jZSBhcyByZXF1aXJlZCBieSB0aGUgc3BlYy4KKyAgICBm
b3IgKHZhciBpID0gMDsgaSA8IGFjdHVhbFVSTHMubGVuZ3RoOyBpKyspCisgICAgICAgIGRlYnVn
KGFjdHVhbFVSTHNbaV0pOworfQorPC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keSBvbmxvYWQ9J3J1
blRlc3RzKCk7Jz4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zh
c3QvZG9tL2ljb24tdXJsLWxpc3QuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL2ljb24tdXJs
LWxpc3QuaHRtbAppbmRleCBkZGEwMGU3MmVmZmJmZTFkMmIyOTE2YWM4MjNkNGNiOGVlNDZkNDU0
Li42ZDNkZmRhNmE1ZGU0OTlhMDdlMTI1OTc1NzhmMzQwZWRlODM3ZjVmIDEwMDY0NAotLS0gYS9M
YXlvdXRUZXN0cy9mYXN0L2RvbS9pY29uLXVybC1saXN0Lmh0bWwKKysrIGIvTGF5b3V0VGVzdHMv
ZmFzdC9kb20vaWNvbi11cmwtbGlzdC5odG1sCkBAIC00OCw3ICs0OCw3IEBAIGZ1bmN0aW9uIHJ1
blRlc3RzKCkgewogICAgIHZhciBleHBlY3RlZFVSTDAgPSAiaHR0cDovL3Rlc3QuY29tL2JhcmZh
dmljb24uaWNvIjsKICAgICB2YXIgZXhwZWN0ZWRVUkwxID0gImh0dHA6Ly90ZXN0LmNvbS9mb29m
YXZpY29uLmljbyI7CiAgICAgdmFyIGV4cGVjdGVkVVJMMiA9ICJodHRwOi8vdGVzdC5jb20vbmV3
ZmF2aWNvbi5pY28iOwotICAgIHZhciBpY29uVVJMcyA9IHdpbmRvdy5pbnRlcm5hbHMuaWNvblVS
THMoZG9jdW1lbnQpOworICAgIHZhciBpY29uVVJMcyA9IHdpbmRvdy5pbnRlcm5hbHMuc2hvcnRj
dXRJY29uVVJMcyhkb2N1bWVudCk7CiAgICAgaWYgKGV4cGVjdGVkVVJMMCA9PSBpY29uVVJMc1sw
XSAmJiBleHBlY3RlZFVSTDEgPT0gaWNvblVSTHNbMV0gJiYgZXhwZWN0ZWRVUkwyID09IGljb25V
UkxzWzJdKSAKICAgICAgICAgdGVzdFBhc3NlZCgnVVJMIGxpc3QgbWF0Y2hlcyBleHBlY3RlZCcp
OwogICAgIGVsc2UKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL2ljb24tdXJsLXBy
b3BlcnR5Lmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9pY29uLXVybC1wcm9wZXJ0eS5odG1s
CmluZGV4IDhhNmI5YzIzODg1MDZlMGUyODQyZDM3ZWMwNzEwODU1YmY0ZmI5ZjUuLjJkMWMwMTIx
NTcxYTk3YmYxNTQzZDQxNjU0NmY3NjhlNzUxNjFlZDMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3Rz
L2Zhc3QvZG9tL2ljb24tdXJsLXByb3BlcnR5Lmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9k
b20vaWNvbi11cmwtcHJvcGVydHkuaHRtbApAQCAtNDMsNyArNDMsNyBAQCBmdW5jdGlvbiBydW5U
ZXN0cygpIHsKIAogICAgIC8vIGNoZWNrIHRoYXQgdGhlIFVSTCBsaXN0IGluIHRoZSBkb2N1bWVu
dCBpcyBhcyB3ZSBleHBlY3QKICAgICB2YXIgZXhwZWN0ZWRVUkxzID0gImh0dHA6Ly90ZXN0LmNv
bS9uZXdmYXZpY29uLmljbyI7Ci0gICAgdmFyIGljb25VUkxzID0gd2luZG93LmludGVybmFscy5p
Y29uVVJMcyhkb2N1bWVudCk7CisgICAgdmFyIGljb25VUkxzID0gd2luZG93LmludGVybmFscy5z
aG9ydGN1dEljb25VUkxzKGRvY3VtZW50KTsKICAgICBpZiAoZXhwZWN0ZWRVUkxzID09IGljb25V
UkxzWzBdKQogICAgICAgICBkZWJ1Z091dHB1dCgnUEFTUyAtIFVSTCBsaXN0IG1hdGNoZXMgZXhw
ZWN0ZWQnKTsKICAgICBlbHNlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJv
bWl1bS1hbmRyb2lkL2Zhc3QvZG9tL2ljb24tdXJsLWxpc3QtYXBwbGUtdG91Y2gtZXhwZWN0ZWQu
dHh0IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0tYW5kcm9pZC9mYXN0L2RvbS9pY29u
LXVybC1saXN0LWFwcGxlLXRvdWNoLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yNGRiYzRkMGE4
MGEzYTI5ODdmOTJjNTMxY2RlMzI4OGIzNTVmM2E2Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0
VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0tYW5kcm9pZC9mYXN0L2RvbS9pY29uLXVybC1saXN0LWFw
cGxlLXRvdWNoLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDUgQEAKK1Rlc3RzIHRoYXQgYWxsIGZh
dmljb25zIGFuZCB0b3VjaCBpY29ucyAoaWYgRU5BQkxFKFRPVUNIX0lDT05fTE9BRElORykpIGFy
ZSBpbiBkb2N1bWVudC5pY29uVVJMcygpCitodHRwOi8vdGVzdC5jb20vaS90b3VjaC1wcmVjb21w
b3NlZC5wbmcKK2h0dHA6Ly90ZXN0LmNvbS9pL3RvdWNoLnBuZworaHR0cDovL3Rlc3QuY29tL29s
ZGZhdmljb24uaWNvCisKZGlmZiAtLWdpdCBhL0NoYW5nZUxvZyBiL0NoYW5nZUxvZwppbmRleCA0
YWVhOTliMzg1NDdiMzZjZGFmYjJmZTI2NmI3YzlkYzhiMWVhZTI0Li44NGQyOTJiN2UxZDhlZDMz
Y2YwOTVkNWQ5NGUwZTBhZDhiMTQyMjM4IDEwMDY0NAotLS0gYS9DaGFuZ2VMb2cKKysrIGIvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTIgQEAKKzIwMTMtMDMtMDQgIFJ1c2xhbiBBYmRpa2VldiAgPGFy
dXNsYW5AY2hyb21pdW0ub3JnPgorCisgICAgICAgIDxsaW5rIHJlbD0iYXBwbGUtdG91Y2gtaWNv
biI+IHRhZyBpcyBub3QgaG9ub3JlZCBvbiBDTk4uY29tLCB3b3JrZmxvd3kuY29tIGV0YworICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTA5MDYxCisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBTb3VyY2UvYXV0
b3Rvb2xzL3N5bWJvbHMuZmlsdGVyOgorCiAyMDEzLTAzLTA0ICBLdW5paGlrbyBTYWthbW90byAg
PGtzYWthbW90b0BjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgQWRkIGJ1aWxkIGZsYWcgZm9yIEZv
bnRMb2FkZXIK
</data>

          </attachment>
      

    </bug>

</bugzilla>