<?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>45730</bug_id>
          
          <creation_ts>2010-09-13 20:30:38 -0700</creation_ts>
          <short_desc>API to support localized numbers for &lt;input type=number&gt;</short_desc>
          <delta_ts>2011-01-25 19:47:20 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Forms</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>42484</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Kent Tamura">tkent</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>adele</cc>
    
    <cc>ap</cc>
    
    <cc>darin</cc>
    
    <cc>dglazkov</cc>
    
    <cc>eric</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>278677</commentid>
    <comment_count>0</comment_count>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2010-09-13 20:30:38 -0700</bug_when>
    <thetext>API to support localized numbers for &lt;input type=number&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>278680</commentid>
    <comment_count>1</comment_count>
      <attachid>67514</attachid>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2010-09-13 20:37:32 -0700</bug_when>
    <thetext>Created attachment 67514
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>278690</commentid>
    <comment_count>2</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-09-13 21:01:52 -0700</bug_when>
    <thetext>Attachment 67514 did not build on mac:
Build output: http://queues.webkit.org/results/4042003</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>278699</commentid>
    <comment_count>3</comment_count>
      <attachid>67518</attachid>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2010-09-13 21:13:14 -0700</bug_when>
    <thetext>Created attachment 67518
Patch 2 (Fix Mac build)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>278722</commentid>
    <comment_count>4</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2010-09-13 22:08:30 -0700</bug_when>
    <thetext>+// Returns true if the input character can be used to represent a
+// localized number. For example, this should return true for 0-9 . , +
+// - for en-US locale.
+bool isLocalizedNumberCharacter(UChar32);

Should this depend on browser locale, or on page language?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>278734</commentid>
    <comment_count>5</comment_count>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2010-09-13 22:46:48 -0700</bug_when>
    <thetext>(In reply to comment #4)
&gt; +// Returns true if the input character can be used to represent a
&gt; +// localized number. For example, this should return true for 0-9 . , +
&gt; +// - for en-US locale.
&gt; +bool isLocalizedNumberCharacter(UChar32);
&gt; 
&gt; Should this depend on browser locale, or on page language?

It should be the same as other functions in this file.  So, it&apos;s browser locale.
I&apos;ll update the comment.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>278742</commentid>
    <comment_count>6</comment_count>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2010-09-13 23:35:01 -0700</bug_when>
    <thetext>Note that I&apos;ll add LocalizedNumberICU.cpp after this patch.  Probably Qt needs LocalizedNumberQt.cpp, which uses QLocale, and Mac needs LocalizedNumberMac.mm for NSNumberFormatter?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>291500</commentid>
    <comment_count>7</comment_count>
      <attachid>70209</attachid>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2010-10-08 01:44:54 -0700</bug_when>
    <thetext>Created attachment 70209
Patch 2 (comment update, rebased)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>291724</commentid>
    <comment_count>8</comment_count>
      <attachid>70209</attachid>
    <who name="Dimitri Glazkov (Google)">dglazkov</who>
    <bug_when>2010-10-08 09:54:16 -0700</bug_when>
    <thetext>Comment on attachment 70209
Patch 2 (comment update, rebased)

ok.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>291747</commentid>
    <comment_count>9</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2010-10-08 10:27:38 -0700</bug_when>
    <thetext> static bool isNumberCharacter(UChar ch)
 {
-    return ch == &apos;+&apos; || ch == &apos;-&apos; || ch == &apos;.&apos; || ch == &apos;e&apos; || ch == &apos;E&apos;
-        || (ch &gt;= &apos;0&apos; &amp;&amp; ch &lt;= &apos;9&apos;);
+    return isLocalizedNumberCharacter(ch) || ch == &apos;+&apos; || ch == &apos;-&apos; || ch == &apos;.&apos; || ch == &apos;e&apos; || ch == &apos;E&apos; || (ch &gt;= &apos;0&apos; &amp;&amp; ch &lt;= &apos;9&apos;);
 }

This is confusing. Where does the definition come from? For example, a comment before isLocalizedNumberCharacter() says that it includes both period and comma for U.S. locale. But this only forces period. Why?

+++ b/WebCore/rendering/RenderTextControlSingleLine.cpp
@@ -693,7 +693,7 @@ void RenderTextControlSingleLine::updateFromElement()
                 shouldUpdateValue = static_cast&lt;HTMLTextFormControlElement*&gt;(node())-&gt;supportsPlaceholder() || !static_cast&lt;HTMLInputElement*&gt;(node())-&gt;formControlValueMatchesRenderer();
             }
             if (shouldUpdateValue)
-                setInnerTextValue(inputElement()-&gt;value());
+                setInnerTextValue(inputElement()-&gt;visibleValue());
         }

What is this change expected to provide? It seems out of place in a bug that adds an API. ChangeLog comment doesn&apos;t explain the reason for this change.

The concept of &quot;visibleValue&quot; in general seems unclear. How is one supposed to perform DOM manipulation if rendered value is different from DOM value? E.g. what if JS code want to select part of the number in the input field?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>291749</commentid>
    <comment_count>10</comment_count>
      <attachid>70209</attachid>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2010-10-08 10:28:10 -0700</bug_when>
    <thetext>Comment on attachment 70209
Patch 2 (comment update, rebased)

Marking r- for the sake of ongoing discussion.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>292870</commentid>
    <comment_count>11</comment_count>
      <attachid>70515</attachid>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2010-10-12 00:17:17 -0700</bug_when>
    <thetext>Created attachment 70515
Patch rev.4</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>292871</commentid>
    <comment_count>12</comment_count>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2010-10-12 00:23:03 -0700</bug_when>
    <thetext>Thank you for the comments.

(In reply to comment #9)
&gt;  static bool isNumberCharacter(UChar ch)
&gt;  {
&gt; -    return ch == &apos;+&apos; || ch == &apos;-&apos; || ch == &apos;.&apos; || ch == &apos;e&apos; || ch == &apos;E&apos;
&gt; -        || (ch &gt;= &apos;0&apos; &amp;&amp; ch &lt;= &apos;9&apos;);
&gt; +    return isLocalizedNumberCharacter(ch) || ch == &apos;+&apos; || ch == &apos;-&apos; || ch == &apos;.&apos; || ch == &apos;e&apos; || ch == &apos;E&apos; || (ch &gt;= &apos;0&apos; &amp;&amp; ch &lt;= &apos;9&apos;);
&gt;  }
&gt; 
&gt; This is confusing. Where does the definition come from? For example, a comment before isLocalizedNumberCharacter() says that it includes both period and comma for U.S. locale. But this only forces period. Why?

We try to parse a value in a localized number format, and try to parse it in the HTML5 format if the parsing in the localized number format fails.  I added a comment about this to HTMLInputElement::sanitizeValue() and ChangeLog.

&gt; +++ b/WebCore/rendering/RenderTextControlSingleLine.cpp
&gt; @@ -693,7 +693,7 @@ void RenderTextControlSingleLine::updateFromElement()
&gt;                  shouldUpdateValue = static_cast&lt;HTMLTextFormControlElement*&gt;(node())-&gt;supportsPlaceholder() || !static_cast&lt;HTMLInputElement*&gt;(node())-&gt;formControlValueMatchesRenderer();
&gt;              }
&gt;              if (shouldUpdateValue)
&gt; -                setInnerTextValue(inputElement()-&gt;value());
&gt; +                setInnerTextValue(inputElement()-&gt;visibleValue());
&gt;          }
&gt; 
&gt; What is this change expected to provide? It seems out of place in a bug that adds an API. ChangeLog comment doesn&apos;t explain the reason for this change.
&gt; 
&gt; The concept of &quot;visibleValue&quot; in general seems unclear. How is one supposed to perform DOM manipulation if rendered value is different from DOM value? 

ok, I added an explanation of visibleValue() to ChangeLog.
visibleValue() is a localized representation of a number, and value() (DOM manipulation) is the HTML5 number representation.

&gt; E.g. what if JS code want to select part of the number in the input field?

We can&apos;t do it.  HTML5 doesn&apos;t provide selection API for type=number.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>303233</commentid>
    <comment_count>13</comment_count>
      <attachid>72631</attachid>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2010-11-01 23:16:57 -0700</bug_when>
    <thetext>Created attachment 72631
Patch 5 (rebased)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>309575</commentid>
    <comment_count>14</comment_count>
      <attachid>73959</attachid>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2010-11-15 21:31:16 -0800</bug_when>
    <thetext>Created attachment 73959
Patch 6 (rebased)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>318022</commentid>
    <comment_count>15</comment_count>
      <attachid>75777</attachid>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2010-12-06 20:09:02 -0800</bug_when>
    <thetext>Created attachment 75777
Patch 7 (rebased)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>318023</commentid>
    <comment_count>16</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-12-06 20:11:54 -0800</bug_when>
    <thetext>Attachment 75777 did not pass style-queue:

Failed to run &quot;[u&apos;git&apos;, u&apos;reset&apos;, u&apos;--hard&apos;, u&apos;HEAD&apos;]&quot; exit_code: 128
error: git checkout-index: unable to write file LayoutTests/ChangeLog
error: git checkout-index: unable to write file LayoutTests/fast/css/custom-font-xheight.html
error: git checkout-index: unable to write file WebCore/ChangeLog
fatal: Could not reset index file to revision &apos;HEAD&apos;.


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>318202</commentid>
    <comment_count>17</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-12-07 08:27:40 -0800</bug_when>
    <thetext>Attachment 75777 did not pass style-queue:

Failed to run &quot;[u&apos;git&apos;, u&apos;reset&apos;, u&apos;--hard&apos;, u&apos;refs/remotes/trunk&apos;]&quot; exit_code: 128
error: Could not write new index file.
fatal: Could not reset index file to revision &apos;refs/remotes/trunk&apos;.


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>318249</commentid>
    <comment_count>18</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-12-07 09:29:17 -0800</bug_when>
    <thetext>Attachment 75777 did not pass style-queue:

Failed to run &quot;[u&apos;git&apos;, u&apos;reset&apos;, u&apos;--hard&apos;, u&apos;refs/remotes/trunk&apos;]&quot; exit_code: 128
error: Could not write new index file.
fatal: Could not reset index file to revision &apos;refs/remotes/trunk&apos;.


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>318300</commentid>
    <comment_count>19</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-12-07 10:30:22 -0800</bug_when>
    <thetext>Attachment 75777 did not pass style-queue:

Failed to run &quot;[u&apos;git&apos;, u&apos;reset&apos;, u&apos;--hard&apos;, u&apos;refs/remotes/trunk&apos;]&quot; exit_code: 128
error: Could not write new index file.
fatal: Could not reset index file to revision &apos;refs/remotes/trunk&apos;.


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>318350</commentid>
    <comment_count>20</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-12-07 11:31:30 -0800</bug_when>
    <thetext>Attachment 75777 did not pass style-queue:

Failed to run &quot;[u&apos;git&apos;, u&apos;reset&apos;, u&apos;--hard&apos;, u&apos;refs/remotes/trunk&apos;]&quot; exit_code: 128
error: Could not write new index file.
fatal: Could not reset index file to revision &apos;refs/remotes/trunk&apos;.


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>318395</commentid>
    <comment_count>21</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-12-07 12:32:56 -0800</bug_when>
    <thetext>Attachment 75777 did not pass style-queue:

Failed to run &quot;[u&apos;git&apos;, u&apos;reset&apos;, u&apos;--hard&apos;, u&apos;refs/remotes/trunk&apos;]&quot; exit_code: 128
error: Could not write new index file.
fatal: Could not reset index file to revision &apos;refs/remotes/trunk&apos;.


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>318584</commentid>
    <comment_count>22</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-12-07 21:29:41 -0800</bug_when>
    <thetext>Attachment 75777 did not pass style-queue:

Failed to run &quot;[&apos;WebKitTools/Scripts/update-webkit&apos;]&quot; exit_code: 2
Updating OpenSource
Incomplete data: Delta source ended unexpectedly at /usr/lib/git-core/git-svn line 5061

Died at WebKitTools/Scripts/update-webkit line 132.


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>322304</commentid>
    <comment_count>23</comment_count>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2010-12-14 15:49:16 -0800</bug_when>
    <thetext>Ping.
ap, dglazkov, would you take a look at the patch please?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>330058</commentid>
    <comment_count>24</comment_count>
      <attachid>78100</attachid>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2011-01-05 23:29:45 -0800</bug_when>
    <thetext>Created attachment 78100
Patch 8 (rebased)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>340080</commentid>
    <comment_count>25</comment_count>
      <attachid>78100</attachid>
    <who name="Dimitri Glazkov (Google)">dglazkov</who>
    <bug_when>2011-01-25 18:26:25 -0800</bug_when>
    <thetext>Comment on attachment 78100
Patch 8 (rebased)

ok.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>340107</commentid>
    <comment_count>26</comment_count>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2011-01-25 19:47:05 -0800</bug_when>
    <thetext>Landed: http://trac.webkit.org/changeset/76661</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>67514</attachid>
            <date>2010-09-13 20:37:32 -0700</date>
            <delta_ts>2010-09-13 21:13:09 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-45730-20100914123730.patch</filename>
            <type>text/plain</type>
            <size>20547</size>
            <attacher name="Kent Tamura">tkent</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQW5kcm9pZC5tayBiL1dlYkNvcmUvQW5kcm9pZC5tawppbmRl
eCBjMGM1ZmJhMTNlMjc5NDhlYWI3OGM1NzdkYTA1MTI3ODNmOTQzNWRkLi5kNjJkMjM1MjQ3M2Ni
NmFlN2E4NTJiZGM2ZThhYWM3MGM0ODc2NDU5IDEwMDY0NAotLS0gYS9XZWJDb3JlL0FuZHJvaWQu
bWsKKysrIGIvV2ViQ29yZS9BbmRyb2lkLm1rCkBAIC01NjMsNiArNTYzLDcgQEAgTE9DQUxfU1JD
X0ZJTEVTIDo9ICQoTE9DQUxfU1JDX0ZJTEVTKSBcCiAJcGxhdGZvcm0vdGV4dC9CYXNlNjQuY3Bw
IFwKIAlwbGF0Zm9ybS90ZXh0L0JpZGlDb250ZXh0LmNwcCBcCiAJcGxhdGZvcm0vdGV4dC9IeXBo
ZW5hdGlvbi5jcHAgXAorCXBsYXRmb3JtL3RleHQvTG9jYWxpemVkTnVtYmVyTm9uZS5jcHAgXAog
CXBsYXRmb3JtL3RleHQvUmVndWxhckV4cHJlc3Npb24uY3BwIFwKIAlwbGF0Zm9ybS90ZXh0L1Nl
Z21lbnRlZFN0cmluZy5jcHAgXAogCXBsYXRmb3JtL3RleHQvU3RyaW5nLmNwcCBcCmRpZmYgLS1n
aXQgYS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0IGIvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dAppbmRl
eCAyZDg3MGUyYTk2MGE5OWExZjVkZjhlNGI5MjkzYjNkODEwN2FjNGZhLi42ODFlNTU0MjdlYmYz
NDllYjFkNmU3ZGI0OTkyZjJhNDllYTNiZDAzIDEwMDY0NAotLS0gYS9XZWJDb3JlL0NNYWtlTGlz
dHMudHh0CisrKyBiL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKQEAgLTEzMDMsNiArMTMwMyw3IEBA
IFNFVChXZWJDb3JlX1NPVVJDRVMKICAgICBwbGF0Zm9ybS90ZXh0L0Jhc2U2NC5jcHAKICAgICBw
bGF0Zm9ybS90ZXh0L0JpZGlDb250ZXh0LmNwcAogICAgIHBsYXRmb3JtL3RleHQvTGluZUVuZGlu
Zy5jcHAKKyAgICBwbGF0Zm9ybS90ZXh0L0xvY2FsaXplZE51bWJlck5vbmUuY3BwCiAgICAgcGxh
dGZvcm0vdGV4dC9IeXBoZW5hdGlvbi5jcHAKICAgICBwbGF0Zm9ybS90ZXh0L1JlZ3VsYXJFeHBy
ZXNzaW9uLmNwcAogICAgIHBsYXRmb3JtL3RleHQvU2VnbWVudGVkU3RyaW5nLmNwcApkaWZmIC0t
Z2l0IGEvV2ViQ29yZS9DaGFuZ2VMb2cgYi9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCA2MmJiYjEy
NDFiYzI0MjQzZjU0YjE4MWQzMTg3OGUxMTQwY2M5NjQ1Li5kZTIyMjMxMWM3ZGQwZWY5MzRiYjRm
MWQ0NmM1N2MzYjBmN2EzMGUwIDEwMDY0NAotLS0gYS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9X
ZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ0IEBACisyMDEwLTA5LTEzICBLZW50IFRhbXVy
YSAgPHRrZW50QGNocm9taXVtLm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICBBUEkgdG8gc3VwcG9ydCBsb2NhbGl6ZWQgbnVtYmVycyBmb3IgPGlu
cHV0IHR5cGU9bnVtYmVyPgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9NDU3MzAKKworICAgICAgICBJbnRyb2R1Y2UgcGxhdGZvcm0vdGV4dC9Mb2NhbGl6
ZWROdW1iZXIuaCwgYW5kCisgICAgICAgIExvY2FsaXplZE51bWJlck5vbmUuY3BwLCB3aGljaCBp
cyBhbiBlbXB0eSBpbXBsZW1lbnRhdGlvbiBvZiB0aGUKKyAgICAgICAgZnVuY3Rpb25zIGluIExv
Y2FsaXplZE51bWJlci5oLiAgV2UgdXNlIExvY2FsaXplZE51bWJlck5vbmUuY3BwIGluCisgICAg
ICAgIGFsbCBwbGF0Zm9ybXMgZm9yIG5vdy4KKworICAgICAgICBObyBuZXcgdGVzdHMgYmVjYXVz
ZSB0aGlzIGRvZXNuJ3QgY2hhbmdlIGFueSBiZWhhdmlvci4KKworICAgICAgICAqIEFuZHJvaWQu
bWs6IEFkZCBMb2NhbGl6ZWROdW1iZXIuaCBhbmQvb3IgTG9jYWxpemVkTnVtYmVyTm9uZS5jcHAu
CisgICAgICAgICogQ01ha2VMaXN0cy50eHQ6IGRpdHRvLgorICAgICAgICAqIEdOVW1ha2VmaWxl
LmFtOiBkaXR0by4KKyAgICAgICAgKiBXZWJDb3JlLmd5cGk6IGRpdHRvLgorICAgICAgICAqIFdl
YkNvcmUucHJvOiBkaXR0by4KKyAgICAgICAgKiBXZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJv
ajogZGl0dG8uCisgICAgICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOiBk
aXR0by4KKyAgICAgICAgKiBkb20vSW5wdXRFbGVtZW50Lmg6IEFkZCB2aXNpYmxlVmFsdWUoKS4K
KyAgICAgICAgKiBodG1sL0hUTUxJbnB1dEVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
aXNOdW1iZXJDaGFyYWN0ZXIpOiBDYWxscyBpc0xvY2FsaXplZE51bWJlckNoYXJhY3RlcigpLgor
ICAgICAgICAoV2ViQ29yZTo6SFRNTElucHV0RWxlbWVudDo6dmlzaWJsZVZhbHVlKToKKyAgICAg
ICAgICBDYWxscyBmb3JtYXRMb2NhbGl6ZWROdW1iZXIoKSBmb3IgdHlwZT1udW1iZXIsIGNhbGxz
IHZhbHVlKCkgb3RoZXJ3aXNlLgorICAgICAgICAoV2ViQ29yZTo6SFRNTElucHV0RWxlbWVudDo6
aXNBY2NlcHRhYmxlVmFsdWUpOiBDYWxscyBwYXJzZUxvY2FsaXplZE51bWJlcigpLgorICAgICAg
ICAoV2ViQ29yZTo6SFRNTElucHV0RWxlbWVudDo6c2FuaXRpemVWYWx1ZSk6IENhbGxzIHBhcnNl
TG9jYWxpemVkTnVtYmVyKCkuCisgICAgICAgICogaHRtbC9IVE1MSW5wdXRFbGVtZW50Lmg6IEFk
ZCB2aXNpYmxlVmFsdWUoKS4KKyAgICAgICAgKiBwbGF0Zm9ybS90ZXh0L0xvY2FsaXplZE51bWJl
ci5oOiBBZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS90ZXh0L0xvY2FsaXplZE51bWJlck5vbmUu
Y3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OnBhcnNlTG9jYWxpemVkTnVtYmVyKToKKyAg
ICAgICAgKFdlYkNvcmU6OmZvcm1hdExvY2FsaXplZE51bWJlcik6CisgICAgICAgIChXZWJDb3Jl
Ojppc0xvY2FsaXplZE51bWJlckNoYXJhY3Rlcik6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRl
clRleHRDb250cm9sU2luZ2xlTGluZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUZXh0
Q29udHJvbFNpbmdsZUxpbmU6OnVwZGF0ZUZyb21FbGVtZW50KToKKyAgICAgICAgICBDYWxscyBJ
bnB1dEVsZW1lbnQ6OnZpc2libGVWYWx1ZSgpIGluc3RlYWQgb2YgdmFsdWUoKS4KKyAgICAgICAg
KiB3bWwvV01MSW5wdXRFbGVtZW50Lmg6CisgICAgICAgIChXZWJDb3JlOjpXTUxJbnB1dEVsZW1l
bnQ6OnZpc2libGVWYWx1ZSk6CisgICAgICAgICAgSW1wbGVtZW50IHZpc2libGVWYWx1ZSgpLiBJ
dCBqdXN0IGNhbGxzIHZhbHVlKCkuCisKIDIwMTAtMDktMTMgIEFkYW0gQmFydGggIDxhYmFydGhA
d2Via2l0Lm9yZz4KIAogICAgICAgICBSZXZpZXdlZCBieSBEYXJpbiBBZGxlci4KZGlmZiAtLWdp
dCBhL1dlYkNvcmUvR05VbWFrZWZpbGUuYW0gYi9XZWJDb3JlL0dOVW1ha2VmaWxlLmFtCmluZGV4
IDQ3ZTE1NTBhZTBmMGZhMzRiMmYyNGE3Zjk5N2JiM2Q1MmY5M2ZjMDguLjNjMzllYjFkOGFiMGM5
YTE4ZDYwODJkZjA4NmE1MGNhYTg4ZjRiNjMgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvR05VbWFrZWZp
bGUuYW0KKysrIGIvV2ViQ29yZS9HTlVtYWtlZmlsZS5hbQpAQCAtMjMxOSw2ICsyMzE5LDggQEAg
d2ViY29yZV9zb3VyY2VzICs9IFwKIAlXZWJDb3JlL3BsYXRmb3JtL3RleHQvSHlwaGVuYXRpb24u
aCBcCiAJV2ViQ29yZS9wbGF0Zm9ybS90ZXh0L0xpbmVFbmRpbmcuY3BwIFwKIAlXZWJDb3JlL3Bs
YXRmb3JtL3RleHQvTGluZUVuZGluZy5oIFwKKwlXZWJDb3JlL3BsYXRmb3JtL3RleHQvTG9jYWxp
emVkTnVtYmVyLmggXAorCVdlYkNvcmUvcGxhdGZvcm0vdGV4dC9Mb2NhbGl6ZWROdW1iZXJOb25l
LmNwcCBcCiAJV2ViQ29yZS9wbGF0Zm9ybS90ZXh0L1BhcnNlclV0aWxpdGllcy5oIFwKIAlXZWJD
b3JlL3BsYXRmb3JtL3RleHQvUGxhdGZvcm1TdHJpbmcuaCBcCiAJV2ViQ29yZS9wbGF0Zm9ybS90
ZXh0L1JlZ3VsYXJFeHByZXNzaW9uLmNwcCBcCmRpZmYgLS1naXQgYS9XZWJDb3JlL1dlYkNvcmUu
Z3lwaSBiL1dlYkNvcmUvV2ViQ29yZS5neXBpCmluZGV4IGZlZDdjZTM5NzgzODY4ODU4OWRlNjhk
M2M2YzhiNDk2YmZmOThmOGQuLmJhNjk1OGJlODE3YzNkMjVjMjdlM2I3MDViZDk5YjI3OWQ3MWM1
M2IgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvV2ViQ29yZS5neXBpCisrKyBiL1dlYkNvcmUvV2ViQ29y
ZS5neXBpCkBAIC0yOTkxLDYgKzI5OTEsOCBAQAogICAgICAgICAgICAgJ3BsYXRmb3JtL3RleHQv
SHlwaGVuYXRpb24uaCcsCiAgICAgICAgICAgICAncGxhdGZvcm0vdGV4dC9MaW5lRW5kaW5nLmNw
cCcsCiAgICAgICAgICAgICAncGxhdGZvcm0vdGV4dC9MaW5lRW5kaW5nLmgnLAorICAgICAgICAg
ICAgJ3BsYXRmb3JtL3RleHQvTG9jYWxpemVkTnVtYmVyLmgnLAorICAgICAgICAgICAgJ3BsYXRm
b3JtL3RleHQvTG9jYWxpemVkTnVtYmVyTm9uZS5jcHAnLAogICAgICAgICAgICAgJ3BsYXRmb3Jt
L3RleHQvUGFyc2VyVXRpbGl0aWVzLmgnLAogICAgICAgICAgICAgJ3BsYXRmb3JtL3RleHQvUGxh
dGZvcm1TdHJpbmcuaCcsCiAgICAgICAgICAgICAncGxhdGZvcm0vdGV4dC9SZWd1bGFyRXhwcmVz
c2lvbi5jcHAnLApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9XZWJDb3JlLnBybyBiL1dlYkNvcmUvV2Vi
Q29yZS5wcm8KaW5kZXggNmM2N2JkZTE3YjY4ZGUyNzdjODRmMGVhN2ZjNTJiMTkzYWQ5NjU1YS4u
OTFjNmFjYWIwN2VlMGU4NzcwOTMyNjQ4N2JhNzkyYmJlNTdjMTViMiAxMDA2NDQKLS0tIGEvV2Vi
Q29yZS9XZWJDb3JlLnBybworKysgYi9XZWJDb3JlL1dlYkNvcmUucHJvCkBAIC0xMDc3LDYgKzEw
NzcsNyBAQCBTT1VSQ0VTICs9IFwKICAgICBwbGF0Zm9ybS90ZXh0L0Jhc2U2NC5jcHAgXAogICAg
IHBsYXRmb3JtL3RleHQvQmlkaUNvbnRleHQuY3BwIFwKICAgICBwbGF0Zm9ybS90ZXh0L0h5cGhl
bmF0aW9uLmNwcCBcCisgICAgcGxhdGZvcm0vdGV4dC9Mb2NhbGl6ZWROdW1iZXJOb25lLmNwcCBc
CiAgICAgcGxhdGZvcm0vQ29udGVudFR5cGUuY3BwIFwKICAgICBwbGF0Zm9ybS9Db250ZXh0TWVu
dS5jcHAgXAogICAgIHBsYXRmb3JtL0Nyb3NzVGhyZWFkQ29waWVyLmNwcCBcCmRpZmYgLS1naXQg
YS9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qIGIvV2ViQ29yZS9XZWJDb3Jl
LnZjcHJvai9XZWJDb3JlLnZjcHJvagppbmRleCBlMjU2ODM1MzM2YjJkZWVmOTVkZTFjYjc1YzUw
ZjA5MmY4ZDZlYjQwLi43NjdhNmFmZmRkODVlMWQzZWJhNDcwZjAxMjgzYzcyMjhiNTc4NTJkIDEw
MDY0NAotLS0gYS9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qCisrKyBiL1dl
YkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2oKQEAgLTI4MDQ4LDYgKzI4MDQ4LDE0
IEBACiAJCQkJCT4NCiAJCQkJPC9GaWxlPg0KIAkJCQk8RmlsZQ0KKwkJCQkJUmVsYXRpdmVQYXRo
PSIuLlxwbGF0Zm9ybVx0ZXh0XExvY2FsaXplZE51bWJlci5oIg0KKwkJCQkJPg0KKwkJCQk8L0Zp
bGU+DQorCQkJCTxGaWxlDQorCQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXHBsYXRmb3JtXHRleHRcTG9j
YWxpemVkTnVtYmVyTm9uZS5jcHAiDQorCQkJCQk+DQorCQkJCTwvRmlsZT4NCisJCQkJPEZpbGUN
CiAJCQkJCVJlbGF0aXZlUGF0aD0iLi5ccGxhdGZvcm1cdGV4dFxQYXJzZXJVdGlsaXRpZXMuaCIN
CiAJCQkJCT4NCiAJCQkJPC9GaWxlPg0KZGlmZiAtLWdpdCBhL1dlYkNvcmUvV2ViQ29yZS54Y29k
ZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0
LnBieHByb2oKaW5kZXggMTcxYWZkYWJjODgxZGZiY2ZiMTBlNTU0ZTk1NTMzNmE1Nzk1NjQwMi4u
MGQ0NmE0MzAyZDE4MTcxMzkxZWY5N2MxOTU2YWI4MWQzYWY5ZTAyNyAxMDA2NDQKLS0tIGEvV2Vi
Q29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvV2ViQ29yZS9XZWJD
b3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTUzNTgsNiArNTM1OCw4IEBACiAJCUYz
RDQ2MTQ5MTE2MUQ1MzIwMENBMEQwOSAvKiBKU1dvcmtlckNvbnRleHRFcnJvckhhbmRsZXIuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEYzRDQ2MTQ3MTE2
MUQ1MzIwMENBMEQwOSAvKiBKU1dvcmtlckNvbnRleHRFcnJvckhhbmRsZXIuaCAqLzsgfTsKIAkJ
RjRFQUY0QUUxMEM3NDJCMTAwOTEwMEQzIC8qIE9wZW5UeXBlU2FuaXRpemVyLmNwcCBpbiBTb3Vy
Y2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY0RUFGNEFDMTBDNzQyQjEw
MDkxMDBEMyAvKiBPcGVuVHlwZVNhbml0aXplci5jcHAgKi87IH07CiAJCUY0RUFGNEFGMTBDNzQy
QjEwMDkxMDBEMyAvKiBPcGVuVHlwZVNhbml0aXplci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjRFQUY0QUQxMEM3NDJCMTAwOTEwMEQzIC8qIE9wZW5U
eXBlU2FuaXRpemVyLmggKi87IH07CisJCUY1MTQyQzY5MTIzRjEyQjAwMEY1QkQ0QyAvKiBMb2Nh
bGl6ZWROdW1iZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IEY1MTQyQzY4MTIzRjEyQjAwMEY1QkQ0QyAvKiBMb2NhbGl6ZWROdW1iZXIuaCAqLzsgfTsK
KwkJRjUxNDJDNkIxMjNGMTJDNTAwRjVCRDRDIC8qIExvY2FsaXplZE51bWJlck5vbmUuY3BwIGlu
IFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjUxNDJDNkExMjNG
MTJDNTAwRjVCRDRDIC8qIExvY2FsaXplZE51bWJlck5vbmUuY3BwICovOyB9OwogCQlGNUMwNDFE
QTBGRkNBN0NFMDA4MzlENEEgLyogSFRNTERhdGFMaXN0RWxlbWVudC5jcHAgaW4gU291cmNlcyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNUMwNDFENzBGRkNBN0NFMDA4MzlE
NEEgLyogSFRNTERhdGFMaXN0RWxlbWVudC5jcHAgKi87IH07CiAJCUY1QzA0MURCMEZGQ0E3Q0Uw
MDgzOUQ0QSAvKiBIVE1MRGF0YUxpc3RFbGVtZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNUMwNDFEODBGRkNBN0NFMDA4MzlENEEgLyogSFRNTERh
dGFMaXN0RWxlbWVudC5oICovOyB9OwogCQlGNUMwNDFFMzBGRkNBOTZEMDA4MzlENEEgLyogRE9N
SFRNTERhdGFMaXN0RWxlbWVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gRjVDMDQxREUwRkZDQTk2RDAwODM5RDRBIC8qIERPTUhUTUxEYXRhTGlzdEVs
ZW1lbnQuaCAqLzsgfTsKQEAgLTExMjI3LDYgKzExMjI5LDggQEAKIAkJRjNENDYxNDcxMTYxRDUz
MjAwQ0EwRDA5IC8qIEpTV29ya2VyQ29udGV4dEVycm9ySGFuZGxlci5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBKU1dvcmtlckNvbnRleHRFcnJvckhhbmRsZXIuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRjRFQUY0QUMxMEM3NDJCMTAwOTEwMEQzIC8qIE9wZW5U
eXBlU2FuaXRpemVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IE9w
ZW5UeXBlU2FuaXRpemVyLmNwcDsgcGF0aCA9IG9wZW50eXBlL09wZW5UeXBlU2FuaXRpemVyLmNw
cDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRjRFQUY0QUQxMEM3NDJCMTAwOTEwMEQz
IC8qIE9wZW5UeXBlU2FuaXRpemVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9
IE9wZW5UeXBlU2FuaXRpemVyLmg7IHBhdGggPSBvcGVudHlwZS9PcGVuVHlwZVNhbml0aXplci5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlGNTE0MkM2ODEyM0YxMkIwMDBGNUJENEMg
LyogTG9jYWxpemVkTnVtYmVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IExv
Y2FsaXplZE51bWJlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlGNTE0MkM2QTEy
M0YxMkM1MDBGNUJENEMgLyogTG9jYWxpemVkTnVtYmVyTm9uZS5jcHAgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBMb2NhbGl6ZWROdW1iZXJOb25lLmNwcDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRjUyM0QyM0IwMkRFNDM5NjAxODYzNUNBIC8qIEhUTUxEb2N1
bWVudC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7
IGluZGVudFdpZHRoID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7
IHBhdGggPSBIVE1MRG9jdW1lbnQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB0YWJXaWR0
aCA9IDg7IHVzZXNUYWJzID0gMDsgfTsKIAkJRjUyM0QyM0MwMkRFNDM5NjAxODYzNUNBIC8qIEhU
TUxEb2N1bWVudC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDMwOyBpbmRlbnRXaWR0aCA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBIVE1MRG9jdW1lbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgdGFiV2lkdGgg
PSA4OyB1c2VzVGFicyA9IDA7IH07CiAJCUY1MjNEMjNFMDJERTQzOTYwMTg2MzVDQSAvKiBIVE1M
RWxlbWVudC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
MzA7IGluZGVudFdpZHRoID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5j
cHA7IHBhdGggPSBIVE1MRWxlbWVudC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IHRhYldp
ZHRoID0gODsgdXNlc1RhYnMgPSAwOyB9OwpAQCAtMTYwNzksNiArMTYwODMsOCBAQAogCQkJCTM3
NUNEMjMxMTE5RDQzQzgwMEEyQTg1OSAvKiBIeXBoZW5hdGlvbi5oICovLAogCQkJCTg5QjVFQTlG
MTFFODAwM0QwMEYyMzY3RSAvKiBMaW5lRW5kaW5nLmNwcCAqLywKIAkJCQk4OUI1RUFBMDExRTgw
MDNEMDBGMjM2N0UgLyogTGluZUVuZGluZy5oICovLAorCQkJCUY1MTQyQzY4MTIzRjEyQjAwMEY1
QkQ0QyAvKiBMb2NhbGl6ZWROdW1iZXIuaCAqLywKKwkJCQlGNTE0MkM2QTEyM0YxMkM1MDBGNUJE
NEMgLyogTG9jYWxpemVkTnVtYmVyTm9uZS5jcHAgKi8sCiAJCQkJQkM3NkFDMTEwREQ3QUQ1QzAw
NDE1RjM0IC8qIFBhcnNlclV0aWxpdGllcy5oICovLAogCQkJCUIyQzNEOUZCMEQwMDZDMUQwMEVG
NkYyNiAvKiBQbGF0Zm9ybVN0cmluZy5oICovLAogCQkJCUIyQzNEOUZDMEQwMDZDMUQwMEVGNkYy
NiAvKiBSZWd1bGFyRXhwcmVzc2lvbi5jcHAgKi8sCkBAIC0xOTU5MSw2ICsxOTU5Nyw3IEBACiAJ
CQkJNjU2RDM3MzIwQURCQTVERTAwQTQ1NTREIC8qIExvYWRlck5TVVJMRXh0cmFzLmggaW4gSGVh
ZGVycyAqLywKIAkJCQkwNkU4MUVENzBBQjVENUU5MDBDODc4MzcgLyogTG9jYWxDdXJyZW50R3Jh
cGhpY3NDb250ZXh0LmggaW4gSGVhZGVycyAqLywKIAkJCQlCQzVDRkNBOTExRjc5MzMyMDA5OUVE
MDkgLyogTG9jYWxpemF0aW9uU3RyYXRlZ3kuaCBpbiBIZWFkZXJzICovLAorCQkJCUY1MTQyQzY5
MTIzRjEyQjAwMEY1QkQ0QyAvKiBMb2NhbGl6ZWROdW1iZXIuaCBpbiBIZWFkZXJzICovLAogCQkJ
CTkzNTIwN0JFMDlCRDQxMEEwMEYyMDM4RCAvKiBMb2NhbGl6ZWRTdHJpbmdzLmggaW4gSGVhZGVy
cyAqLywKIAkJCQk1MTFGMjMxODBEQzE2MERBMDA0RjAwMzIgLyogTG9jYWxTdG9yYWdlVGFzay5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJNTExRjIzMUEwREMxNjBEQTAwNEYwMDMyIC8qIExvY2FsU3Rv
cmFnZVRocmVhZC5oIGluIEhlYWRlcnMgKi8sCkBAIC0yMjIwMSw2ICsyMjIwOCw3IEBACiAJCQkJ
QkNCMTZDMkMwOTc5QzNCRDAwNDY3NzQxIC8qIGxvYWRlci5jcHAgaW4gU291cmNlcyAqLywKIAkJ
CQk2NTZEMzczMzBBREJBNURFMDBBNDU1NEQgLyogTG9hZGVyTlNVUkxFeHRyYXMubW0gaW4gU291
cmNlcyAqLywKIAkJCQkwNkU4MUVFQzBBQjVEQTk3MDBDODc4MzcgLyogTG9jYWxDdXJyZW50R3Jh
cGhpY3NDb250ZXh0Lm1tIGluIFNvdXJjZXMgKi8sCisJCQkJRjUxNDJDNkIxMjNGMTJDNTAwRjVC
RDRDIC8qIExvY2FsaXplZE51bWJlck5vbmUuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQzA0NkUx
QUMxMjA4QTlGRTAwQkEyQ0Y3IC8qIExvY2FsaXplZFN0cmluZ3MuY3BwIGluIFNvdXJjZXMgKi8s
CiAJCQkJNTExRjIzMTcwREMxNjBEQTAwNEYwMDMyIC8qIExvY2FsU3RvcmFnZVRhc2suY3BwIGlu
IFNvdXJjZXMgKi8sCiAJCQkJNTExRjIzMTkwREMxNjBEQTAwNEYwMDMyIC8qIExvY2FsU3RvcmFn
ZVRocmVhZC5jcHAgaW4gU291cmNlcyAqLywKZGlmZiAtLWdpdCBhL1dlYkNvcmUvZG9tL0lucHV0
RWxlbWVudC5oIGIvV2ViQ29yZS9kb20vSW5wdXRFbGVtZW50LmgKaW5kZXggZDVjZTIxMmRmYTM1
ZjdkM2U5ZDI1MDkxYTY3YWY5NTM1MDNjYTU1OC4uZDMwNDA2NGZjNTI3NTYxYWU3YWZmZjJhNTU0
OGNlZTYxM2U3OTIxOSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9kb20vSW5wdXRFbGVtZW50LmgKKysr
IGIvV2ViQ29yZS9kb20vSW5wdXRFbGVtZW50LmgKQEAgLTU5LDYgKzU5LDcgQEAgcHVibGljOgog
ICAgIHZpcnR1YWwgU3RyaW5nIHZhbHVlKCkgY29uc3QgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBz
ZXRWYWx1ZShjb25zdCBTdHJpbmcmLCBib29sIHNlbmRDaGFuZ2VFdmVudCA9IGZhbHNlKSA9IDA7
CiAgICAgdmlydHVhbCB2b2lkIHNldFZhbHVlRm9yVXNlcihjb25zdCBTdHJpbmcmKSA9IDA7Cisg
ICAgdmlydHVhbCBTdHJpbmcgdmlzaWJsZVZhbHVlKCkgY29uc3QgPSAwOwogCiAgICAgLy8gUmV0
dXJucyB0cnVlIGlmIHRoZSBzcGVjaWZpZWQgc3RyaW5nIGNhbiBiZSBzZXQgYXMgdGhlIHZhbHVl
IG9mIElucHV0RWxlbWVudC4KICAgICB2aXJ0dWFsIGJvb2wgaXNBY2NlcHRhYmxlVmFsdWUoY29u
c3QgU3RyaW5nJikgY29uc3QgPSAwOwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9odG1sL0hUTUxJbnB1
dEVsZW1lbnQuY3BwIGIvV2ViQ29yZS9odG1sL0hUTUxJbnB1dEVsZW1lbnQuY3BwCmluZGV4IGU5
MDUyNWJjMWQ1ZWExOTg1M2FjOTVkMmEzMGMyM2RkY2M1NDY0ZjcuLjY5YzhjM2Y0NzE1Y2E0ZDA1
MzQyYjM4YTgzYzA1MTVlYmUxOThmOWMgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvaHRtbC9IVE1MSW5w
dXRFbGVtZW50LmNwcAorKysgYi9XZWJDb3JlL2h0bWwvSFRNTElucHV0RWxlbWVudC5jcHAKQEAg
LTUyLDYgKzUyLDcgQEAKICNpbmNsdWRlICJIVE1MT3B0aW9uRWxlbWVudC5oIgogI2luY2x1ZGUg
IkhUTUxUcmVlQnVpbGRlci5oIgogI2luY2x1ZGUgIktleWJvYXJkRXZlbnQuaCIKKyNpbmNsdWRl
ICJMb2NhbGl6ZWROdW1iZXIuaCIKICNpbmNsdWRlICJMb2NhbGl6ZWRTdHJpbmdzLmgiCiAjaW5j
bHVkZSAiTW91c2VFdmVudC5oIgogI2luY2x1ZGUgIlBhZ2UuaCIKQEAgLTExNSw4ICsxMTYsNyBA
QCBzdGF0aWMgY29uc3QgY2hhciBlbWFpbFBhdHRlcm5bXSA9CiAKIHN0YXRpYyBib29sIGlzTnVt
YmVyQ2hhcmFjdGVyKFVDaGFyIGNoKQogewotICAgIHJldHVybiBjaCA9PSAnKycgfHwgY2ggPT0g
Jy0nIHx8IGNoID09ICcuJyB8fCBjaCA9PSAnZScgfHwgY2ggPT0gJ0UnCi0gICAgICAgIHx8IChj
aCA+PSAnMCcgJiYgY2ggPD0gJzknKTsKKyAgICByZXR1cm4gaXNMb2NhbGl6ZWROdW1iZXJDaGFy
YWN0ZXIoY2gpIHx8IGNoID09ICcrJyB8fCBjaCA9PSAnLScgfHwgY2ggPT0gJy4nIHx8IGNoID09
ICdlJyB8fCBjaCA9PSAnRScgfHwgKGNoID49ICcwJyAmJiBjaCA8PSAnOScpOwogfQogCiBzdGF0
aWMgYm9vbCBpc1ZhbGlkQ29sb3JTdHJpbmcoY29uc3QgU3RyaW5nJiB2YWx1ZSkKQEAgLTI2NjYs
MTcgKzI2NjYsMzQgQEAgRmlsZUxpc3QqIEhUTUxJbnB1dEVsZW1lbnQ6OmZpbGVzKCkKICAgICBy
ZXR1cm4gbV9maWxlTGlzdC5nZXQoKTsKIH0KIAorU3RyaW5nIEhUTUxJbnB1dEVsZW1lbnQ6OnZp
c2libGVWYWx1ZSgpIGNvbnN0Cit7CisgICAgU3RyaW5nIGN1cnJlbnRWYWx1ZSA9IHZhbHVlKCk7
CisgICAgaWYgKGlucHV0VHlwZSgpICE9IE5VTUJFUikKKyAgICAgICAgcmV0dXJuIGN1cnJlbnRW
YWx1ZTsKKyAgICBpZiAoY3VycmVudFZhbHVlLmlzRW1wdHkoKSkKKyAgICAgICAgcmV0dXJuIGN1
cnJlbnRWYWx1ZTsKKyAgICBkb3VibGUgZG91YmxlVmFsdWUgPSBudW1lcmljX2xpbWl0czxkb3Vi
bGU+OjpxdWlldF9OYU4oKTsKKyAgICBwYXJzZVRvRG91YmxlRm9yTnVtYmVyVHlwZShjdXJyZW50
VmFsdWUsICZkb3VibGVWYWx1ZSk7CisgICAgU3RyaW5nIGxvY2FsaXplZCA9IGZvcm1hdExvY2Fs
aXplZE51bWJlcihkb3VibGVWYWx1ZSk7CisgICAgcmV0dXJuIGxvY2FsaXplZC5pc0VtcHR5KCkg
PyBjdXJyZW50VmFsdWUgOiBsb2NhbGl6ZWQ7Cit9CisKIGJvb2wgSFRNTElucHV0RWxlbWVudDo6
aXNBY2NlcHRhYmxlVmFsdWUoY29uc3QgU3RyaW5nJiBwcm9wb3NlZFZhbHVlKSBjb25zdAogewog
ICAgIGlmIChpbnB1dFR5cGUoKSAhPSBOVU1CRVIpCiAgICAgICAgIHJldHVybiB0cnVlOwotICAg
IHJldHVybiBwcm9wb3NlZFZhbHVlLmlzRW1wdHkoKSB8fCBwYXJzZVRvRG91YmxlRm9yTnVtYmVy
VHlwZShwcm9wb3NlZFZhbHVlLCAwKTsKKyAgICByZXR1cm4gcHJvcG9zZWRWYWx1ZS5pc0VtcHR5
KCkgfHwgaXNmaW5pdGUocGFyc2VMb2NhbGl6ZWROdW1iZXIocHJvcG9zZWRWYWx1ZSkpIHx8IHBh
cnNlVG9Eb3VibGVGb3JOdW1iZXJUeXBlKHByb3Bvc2VkVmFsdWUsIDApOwogfQogCiBTdHJpbmcg
SFRNTElucHV0RWxlbWVudDo6c2FuaXRpemVWYWx1ZShjb25zdCBTdHJpbmcmIHByb3Bvc2VkVmFs
dWUpIGNvbnN0CiB7Ci0gICAgaWYgKGlucHV0VHlwZSgpID09IE5VTUJFUikKKyAgICBpZiAoaW5w
dXRUeXBlKCkgPT0gTlVNQkVSKSB7CisgICAgICAgIGRvdWJsZSBwYXJzZWRWYWx1ZSA9IHBhcnNl
TG9jYWxpemVkTnVtYmVyKHByb3Bvc2VkVmFsdWUpOworICAgICAgICBpZiAoaXNmaW5pdGUocGFy
c2VkVmFsdWUpKQorICAgICAgICAgICAgcmV0dXJuIHNlcmlhbGl6ZUZvck51bWJlclR5cGUocGFy
c2VkVmFsdWUpOwogICAgICAgICByZXR1cm4gcGFyc2VUb0RvdWJsZUZvck51bWJlclR5cGUocHJv
cG9zZWRWYWx1ZSwgMCkgPyBwcm9wb3NlZFZhbHVlIDogU3RyaW5nKCk7CisgICAgfQogCiAgICAg
aWYgKGlzVGV4dEZpZWxkKCkpCiAgICAgICAgIHJldHVybiBJbnB1dEVsZW1lbnQ6OnNhbml0aXpl
VmFsdWVGb3JUZXh0RmllbGQodGhpcywgcHJvcG9zZWRWYWx1ZSk7CmRpZmYgLS1naXQgYS9XZWJD
b3JlL2h0bWwvSFRNTElucHV0RWxlbWVudC5oIGIvV2ViQ29yZS9odG1sL0hUTUxJbnB1dEVsZW1l
bnQuaAppbmRleCBlMDIzNzk2YjdkYTA1MzM3NmJmYTRjYmYxOGRiMTk2ODk4NTdlZmU0Li4wNzg5
OTQ3M2Y5NGI1MWY3MjZhOTc2NmM3N2VkZDY5NWVjOGZlOTg1IDEwMDY0NAotLS0gYS9XZWJDb3Jl
L2h0bWwvSFRNTElucHV0RWxlbWVudC5oCisrKyBiL1dlYkNvcmUvaHRtbC9IVE1MSW5wdXRFbGVt
ZW50LmgKQEAgLTI4MSw2ICsyODEsNyBAQCBwcml2YXRlOgogCiAgICAgdmlydHVhbCB2b2lkIGNh
Y2hlU2VsZWN0aW9uKGludCBzdGFydCwgaW50IGVuZCk7CiAKKyAgICB2aXJ0dWFsIFN0cmluZyB2
aXNpYmxlVmFsdWUoKSBjb25zdDsKICAgICB2aXJ0dWFsIGJvb2wgaXNBY2NlcHRhYmxlVmFsdWUo
Y29uc3QgU3RyaW5nJikgY29uc3Q7CiAgICAgdmlydHVhbCBTdHJpbmcgc2FuaXRpemVWYWx1ZShj
b25zdCBTdHJpbmcmKSBjb25zdDsKICAgICB2aXJ0dWFsIGJvb2wgaGFzVW5hY2NlcHRhYmxlVmFs
dWUoKSBjb25zdDsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGxhdGZvcm0vdGV4dC9Mb2NhbGl6ZWRO
dW1iZXIuaCBiL1dlYkNvcmUvcGxhdGZvcm0vdGV4dC9Mb2NhbGl6ZWROdW1iZXIuaApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi4yYjQ3ODdiMWY4ZjVjZWYzNmVmNjUyMTdkOTQzZDc5MTM3ZjIxNzgwCi0tLSAvZGV2L251
bGwKKysrIGIvV2ViQ29yZS9wbGF0Zm9ybS90ZXh0L0xvY2FsaXplZE51bWJlci5oCkBAIC0wLDAg
KzEsNTkgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAgR29vZ2xlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKKyAqIG1ldDoK
KyAqCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4g
dGhlIGFib3ZlIGNvcHlyaWdodAorICogbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogICAgICogUmVkaXN0cmlidXRpb25zIGlu
IGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQorICogY29weXJpZ2h0IG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgor
ICogaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3
aXRoIHRoZQorICogZGlzdHJpYnV0aW9uLgorICogICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBH
b29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cworICogY29udHJpYnV0b3JzIG1heSBiZSB1
c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KKyAqIHRoaXMg
c29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisgKgor
ICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5E
IENPTlRSSUJVVE9SUworICogIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgorICogQSBQQVJUSUNV
TEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklH
SFQKKyAqIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElO
RElSRUNULCBJTkNJREVOVEFMLAorICogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5U
SUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywgUFJPQ1VSRU1F
TlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCisgKiBEQVRB
LCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFO
RCBPTiBBTlkKKyAqIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNU
UklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhF
UldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZU
V0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4K
KyAqLworCisjaWZuZGVmIExvY2FsaXplZE51bWJlcl9oCisjZGVmaW5lIExvY2FsaXplZE51bWJl
cl9oCisKKyNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KKworbmFtZXNwYWNlIFdlYkNv
cmUgeworCisvLyBQYXJzZXMgYSBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgYSBmbG9hdGluZyBw
b2ludCBudW1iZXIgbG9jYWxpemVkCisvLyBmb3IgdGhlIGJyb3dzZXIncyBjdXJyZW50IGxvY2Fs
ZS4gSWYgdGhlIGlucHV0IHN0cmluZyBpcyBub3QgdmFsaWQKKy8vIG9yIGFuIGltcGxlbWVudGF0
aW9uIGRvZXNuJ3Qgc3VwcG9ydCBsb2NhbGl6ZWQgbnVtYmVycywgdGhpcworLy8gZnVuY3Rpb24g
cmV0dXJucyBOYU4uIFRoaXMgZnVuY3Rpb24gZG9lc24ndCBuZWVkIHRvIHN1cHBvcnQKKy8vIHNj
aWVudGlmaWMgbm90YXRpb24sIE5hTiwgK0luZmluaXR5IGFuZCAtSW5maW5pdHksIGFuZCBkb2Vz
bid0IG5lZWQKKy8vIHRvIHN1cHBvcnQgdGhlIHN0YW5kYXJkIHJlcHJlc2VudGF0aW9ucyBvZiBF
Q01BU2NyaXB0IGFuZCBIVE1MNS4KK2RvdWJsZSBwYXJzZUxvY2FsaXplZE51bWJlcihjb25zdCBT
dHJpbmcmKTsKKworLy8gU2VyaWFsaXplcyB0aGUgc3BlY2lmaWVkIGZsb2F0aW5nIHBvaW50IG51
bWJlciBmb3IgdGhlIGJyb3dzZXIncworLy8gY3VycmVudCBsb2NhbGUuICBJZiBhbiBpbXBsZW1l
bnRhdGlvbiBkb2Vzbid0IHN1cHBvcnQgbG9jYWxpemVkCisvLyBudW1iZXJzIG9yIHRoZSBpbnB1
dCB2YWx1ZSBpcyBOYU4gb3IgSW5maW5pdGl5LCB0aGUgZnVuY3Rpb24gc2hvdWxkCisvLyByZXR1
cm4gYW4gZW1wdHkgc3RyaW5nLgorU3RyaW5nIGZvcm1hdExvY2FsaXplZE51bWJlcihkb3VibGUp
OworCisvLyBSZXR1cm5zIHRydWUgaWYgdGhlIGlucHV0IGNoYXJhY3RlciBjYW4gYmUgdXNlZCB0
byByZXByZXNlbnQgYQorLy8gbG9jYWxpemVkIG51bWJlci4gRm9yIGV4YW1wbGUsIHRoaXMgc2hv
dWxkIHJldHVybiB0cnVlIGZvciAwLTkgLiAsICsKKy8vIC0gZm9yIGVuLVVTIGxvY2FsZS4KK2Jv
b2wgaXNMb2NhbGl6ZWROdW1iZXJDaGFyYWN0ZXIoVUNoYXIzMik7CisKK30gLy8gbmFtZXNwYWNl
IFdlYkNvcmUKKworI2VuZGlmIC8vIExvY2FsaXplZE51bWJlcl9oCmRpZmYgLS1naXQgYS9XZWJD
b3JlL3BsYXRmb3JtL3RleHQvTG9jYWxpemVkTnVtYmVyTm9uZS5jcHAgYi9XZWJDb3JlL3BsYXRm
b3JtL3RleHQvTG9jYWxpemVkTnVtYmVyTm9uZS5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uM2Q2YzZjMjNhNzNl
ZDZjZDJhMzQyYjNiNjUyNzZjMzlmMWE0MjdiYgotLS0gL2Rldi9udWxsCisrKyBiL1dlYkNvcmUv
cGxhdGZvcm0vdGV4dC9Mb2NhbGl6ZWROdW1iZXJOb25lLmNwcApAQCAtMCwwICsxLDU1IEBACisv
KgorICogQ29weXJpZ2h0IChDKSAyMDEwIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCisgKiBtZXQ6CisgKgorICogICAg
ICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lci4KKyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9y
bSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKKyAqIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKKyAqIGluIHRoZSBk
b2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKKyAq
IGRpc3RyaWJ1dGlvbi4KKyAqICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4g
bm9yIHRoZSBuYW1lcyBvZiBpdHMKKyAqIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRv
cnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCisgKiB0aGlzIHNvZnR3YXJlIHdp
dGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorICoKKyAqIFRISVMgU09G
VFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRP
UlMKKyAqICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5D
TFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9G
IE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKKyAqIEEgUEFSVElDVUxBUiBQVVJQT1NF
IEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCisgKiBPV05F
UiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5D
SURFTlRBTCwKKyAqIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VT
IChJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNU
SVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAorICogREFUQSwgT1IgUFJPRklU
UzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCisg
KiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklM
SVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklT
SU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4g
SUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lu
Y2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIkxvY2FsaXplZE51bWJlci5oIgorCisjaW5jbHVk
ZSA8bGltaXRzPgorCit1c2luZyBuYW1lc3BhY2Ugc3RkOworCituYW1lc3BhY2UgV2ViQ29yZSB7
CisKK2RvdWJsZSBwYXJzZUxvY2FsaXplZE51bWJlcihjb25zdCBTdHJpbmcmKQoreworICAgIHJl
dHVybiBudW1lcmljX2xpbWl0czxkb3VibGU+OjpxdWlldF9OYU4oKTsKK30KKworU3RyaW5nIGZv
cm1hdExvY2FsaXplZE51bWJlcihkb3VibGUgdmFsdWUpCit7CisgICAgcmV0dXJuIFN0cmluZygp
OworfQorCitib29sIGlzTG9jYWxpemVkTnVtYmVyQ2hhcmFjdGVyKFVDaGFyMzIpCit7CisgICAg
cmV0dXJuIGZhbHNlOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUZXh0Q29udHJvbFNpbmdsZUxpbmUuY3BwIGIvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyVGV4dENvbnRyb2xTaW5nbGVMaW5lLmNwcAppbmRleCAxN2FiNjVh
Y2E0M2M3Y2RkNjA4Njc1Nzg3NWRkMGY3ZjI0ZDMyYWZjLi42ZDcxYWNlYmEzMjgxNWI1M2M4MDFh
MmM3NGI5NzE0OWUyYWY3NjI4IDEwMDY0NAotLS0gYS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJU
ZXh0Q29udHJvbFNpbmdsZUxpbmUuY3BwCisrKyBiL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRl
eHRDb250cm9sU2luZ2xlTGluZS5jcHAKQEAgLTY4Nyw3ICs2ODcsNyBAQCB2b2lkIFJlbmRlclRl
eHRDb250cm9sU2luZ2xlTGluZTo6dXBkYXRlRnJvbUVsZW1lbnQoKQogICAgICAgICAgICAgLy8g
Rm9yIEhUTUxJbnB1dEVsZW1lbnQsIHVwZGF0ZSB0aGUgcmVuZGVyZXIgdmFsdWUgb25seSBpZiB0
aGUKICAgICAgICAgICAgIC8vIGZvcm1Db250cm9sVmFsdWVNYXRjaGVzUmVuZGVyZXIoKSBmbGFn
IGlzIGZhbHNlLiBJdCBwcm90ZWN0cyBhbgogICAgICAgICAgICAgLy8gdW5hY2NlcHRhYmxlIHJl
bmRlcmVyIHZhbHVlIGZyb20gYmVpbmcgb3ZlcndyaXR0ZW4gd2l0aCB0aGUgRE9NIHZhbHVlLgot
ICAgICAgICAgICAgc2V0SW5uZXJUZXh0VmFsdWUoaW5wdXRFbGVtZW50KCktPnZhbHVlKCkpOwor
ICAgICAgICAgICAgc2V0SW5uZXJUZXh0VmFsdWUoaW5wdXRFbGVtZW50KCktPnZpc2libGVWYWx1
ZSgpKTsKICAgICB9CiAKICAgICBpZiAobV9zZWFyY2hQb3B1cElzVmlzaWJsZSkKZGlmZiAtLWdp
dCBhL1dlYkNvcmUvd21sL1dNTElucHV0RWxlbWVudC5oIGIvV2ViQ29yZS93bWwvV01MSW5wdXRF
bGVtZW50LmgKaW5kZXggZGY3ZjQ5NzJiNzJjYmU4ODQyMGRhYThkYWE1MWE2ZjVmMzQ0YTAyMi4u
NmM2NjQxMGJjZjc2YTllZmZiMThlZTUzOWRiMGE2MTc5ODlhMjUzZSAxMDA2NDQKLS0tIGEvV2Vi
Q29yZS93bWwvV01MSW5wdXRFbGVtZW50LmgKKysrIGIvV2ViQ29yZS93bWwvV01MSW5wdXRFbGVt
ZW50LmgKQEAgLTYzLDYgKzYzLDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgU3RyaW5nIHZhbHVl
KCkgY29uc3Q7CiAgICAgdmlydHVhbCB2b2lkIHNldFZhbHVlKGNvbnN0IFN0cmluZyYsIGJvb2wg
c2VuZENoYW5nZUV2ZW50ID0gZmFsc2UpOwogICAgIHZpcnR1YWwgdm9pZCBzZXRWYWx1ZUZvclVz
ZXIoY29uc3QgU3RyaW5nJik7CisgICAgdmlydHVhbCBTdHJpbmcgdmlzaWJsZVZhbHVlKCkgY29u
c3QgeyByZXR1cm4gdmFsdWUoKTsgfQogICAgIHZpcnR1YWwgdm9pZCBzZXRWYWx1ZUZyb21SZW5k
ZXJlcihjb25zdCBTdHJpbmcmKTsKIAogICAgIHZpcnR1YWwgYm9vbCBzYXZlRm9ybUNvbnRyb2xT
dGF0ZShTdHJpbmcmIHZhbHVlKSBjb25zdDsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>67518</attachid>
            <date>2010-09-13 21:13:14 -0700</date>
            <delta_ts>2010-10-08 01:44:49 -0700</delta_ts>
            <desc>Patch 2 (Fix Mac build)</desc>
            <filename>bug-45730-20100914131312.patch</filename>
            <type>text/plain</type>
            <size>20541</size>
            <attacher name="Kent Tamura">tkent</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQW5kcm9pZC5tayBiL1dlYkNvcmUvQW5kcm9pZC5tawppbmRl
eCBjMGM1ZmJhMTNlMjc5NDhlYWI3OGM1NzdkYTA1MTI3ODNmOTQzNWRkLi5kNjJkMjM1MjQ3M2Ni
NmFlN2E4NTJiZGM2ZThhYWM3MGM0ODc2NDU5IDEwMDY0NAotLS0gYS9XZWJDb3JlL0FuZHJvaWQu
bWsKKysrIGIvV2ViQ29yZS9BbmRyb2lkLm1rCkBAIC01NjMsNiArNTYzLDcgQEAgTE9DQUxfU1JD
X0ZJTEVTIDo9ICQoTE9DQUxfU1JDX0ZJTEVTKSBcCiAJcGxhdGZvcm0vdGV4dC9CYXNlNjQuY3Bw
IFwKIAlwbGF0Zm9ybS90ZXh0L0JpZGlDb250ZXh0LmNwcCBcCiAJcGxhdGZvcm0vdGV4dC9IeXBo
ZW5hdGlvbi5jcHAgXAorCXBsYXRmb3JtL3RleHQvTG9jYWxpemVkTnVtYmVyTm9uZS5jcHAgXAog
CXBsYXRmb3JtL3RleHQvUmVndWxhckV4cHJlc3Npb24uY3BwIFwKIAlwbGF0Zm9ybS90ZXh0L1Nl
Z21lbnRlZFN0cmluZy5jcHAgXAogCXBsYXRmb3JtL3RleHQvU3RyaW5nLmNwcCBcCmRpZmYgLS1n
aXQgYS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0IGIvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dAppbmRl
eCAyZDg3MGUyYTk2MGE5OWExZjVkZjhlNGI5MjkzYjNkODEwN2FjNGZhLi42ODFlNTU0MjdlYmYz
NDllYjFkNmU3ZGI0OTkyZjJhNDllYTNiZDAzIDEwMDY0NAotLS0gYS9XZWJDb3JlL0NNYWtlTGlz
dHMudHh0CisrKyBiL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKQEAgLTEzMDMsNiArMTMwMyw3IEBA
IFNFVChXZWJDb3JlX1NPVVJDRVMKICAgICBwbGF0Zm9ybS90ZXh0L0Jhc2U2NC5jcHAKICAgICBw
bGF0Zm9ybS90ZXh0L0JpZGlDb250ZXh0LmNwcAogICAgIHBsYXRmb3JtL3RleHQvTGluZUVuZGlu
Zy5jcHAKKyAgICBwbGF0Zm9ybS90ZXh0L0xvY2FsaXplZE51bWJlck5vbmUuY3BwCiAgICAgcGxh
dGZvcm0vdGV4dC9IeXBoZW5hdGlvbi5jcHAKICAgICBwbGF0Zm9ybS90ZXh0L1JlZ3VsYXJFeHBy
ZXNzaW9uLmNwcAogICAgIHBsYXRmb3JtL3RleHQvU2VnbWVudGVkU3RyaW5nLmNwcApkaWZmIC0t
Z2l0IGEvV2ViQ29yZS9DaGFuZ2VMb2cgYi9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCA2MmJiYjEy
NDFiYzI0MjQzZjU0YjE4MWQzMTg3OGUxMTQwY2M5NjQ1Li5kZTIyMjMxMWM3ZGQwZWY5MzRiYjRm
MWQ0NmM1N2MzYjBmN2EzMGUwIDEwMDY0NAotLS0gYS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9X
ZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ0IEBACisyMDEwLTA5LTEzICBLZW50IFRhbXVy
YSAgPHRrZW50QGNocm9taXVtLm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICBBUEkgdG8gc3VwcG9ydCBsb2NhbGl6ZWQgbnVtYmVycyBmb3IgPGlu
cHV0IHR5cGU9bnVtYmVyPgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9NDU3MzAKKworICAgICAgICBJbnRyb2R1Y2UgcGxhdGZvcm0vdGV4dC9Mb2NhbGl6
ZWROdW1iZXIuaCwgYW5kCisgICAgICAgIExvY2FsaXplZE51bWJlck5vbmUuY3BwLCB3aGljaCBp
cyBhbiBlbXB0eSBpbXBsZW1lbnRhdGlvbiBvZiB0aGUKKyAgICAgICAgZnVuY3Rpb25zIGluIExv
Y2FsaXplZE51bWJlci5oLiAgV2UgdXNlIExvY2FsaXplZE51bWJlck5vbmUuY3BwIGluCisgICAg
ICAgIGFsbCBwbGF0Zm9ybXMgZm9yIG5vdy4KKworICAgICAgICBObyBuZXcgdGVzdHMgYmVjYXVz
ZSB0aGlzIGRvZXNuJ3QgY2hhbmdlIGFueSBiZWhhdmlvci4KKworICAgICAgICAqIEFuZHJvaWQu
bWs6IEFkZCBMb2NhbGl6ZWROdW1iZXIuaCBhbmQvb3IgTG9jYWxpemVkTnVtYmVyTm9uZS5jcHAu
CisgICAgICAgICogQ01ha2VMaXN0cy50eHQ6IGRpdHRvLgorICAgICAgICAqIEdOVW1ha2VmaWxl
LmFtOiBkaXR0by4KKyAgICAgICAgKiBXZWJDb3JlLmd5cGk6IGRpdHRvLgorICAgICAgICAqIFdl
YkNvcmUucHJvOiBkaXR0by4KKyAgICAgICAgKiBXZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJv
ajogZGl0dG8uCisgICAgICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOiBk
aXR0by4KKyAgICAgICAgKiBkb20vSW5wdXRFbGVtZW50Lmg6IEFkZCB2aXNpYmxlVmFsdWUoKS4K
KyAgICAgICAgKiBodG1sL0hUTUxJbnB1dEVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
aXNOdW1iZXJDaGFyYWN0ZXIpOiBDYWxscyBpc0xvY2FsaXplZE51bWJlckNoYXJhY3RlcigpLgor
ICAgICAgICAoV2ViQ29yZTo6SFRNTElucHV0RWxlbWVudDo6dmlzaWJsZVZhbHVlKToKKyAgICAg
ICAgICBDYWxscyBmb3JtYXRMb2NhbGl6ZWROdW1iZXIoKSBmb3IgdHlwZT1udW1iZXIsIGNhbGxz
IHZhbHVlKCkgb3RoZXJ3aXNlLgorICAgICAgICAoV2ViQ29yZTo6SFRNTElucHV0RWxlbWVudDo6
aXNBY2NlcHRhYmxlVmFsdWUpOiBDYWxscyBwYXJzZUxvY2FsaXplZE51bWJlcigpLgorICAgICAg
ICAoV2ViQ29yZTo6SFRNTElucHV0RWxlbWVudDo6c2FuaXRpemVWYWx1ZSk6IENhbGxzIHBhcnNl
TG9jYWxpemVkTnVtYmVyKCkuCisgICAgICAgICogaHRtbC9IVE1MSW5wdXRFbGVtZW50Lmg6IEFk
ZCB2aXNpYmxlVmFsdWUoKS4KKyAgICAgICAgKiBwbGF0Zm9ybS90ZXh0L0xvY2FsaXplZE51bWJl
ci5oOiBBZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS90ZXh0L0xvY2FsaXplZE51bWJlck5vbmUu
Y3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OnBhcnNlTG9jYWxpemVkTnVtYmVyKToKKyAg
ICAgICAgKFdlYkNvcmU6OmZvcm1hdExvY2FsaXplZE51bWJlcik6CisgICAgICAgIChXZWJDb3Jl
Ojppc0xvY2FsaXplZE51bWJlckNoYXJhY3Rlcik6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRl
clRleHRDb250cm9sU2luZ2xlTGluZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUZXh0
Q29udHJvbFNpbmdsZUxpbmU6OnVwZGF0ZUZyb21FbGVtZW50KToKKyAgICAgICAgICBDYWxscyBJ
bnB1dEVsZW1lbnQ6OnZpc2libGVWYWx1ZSgpIGluc3RlYWQgb2YgdmFsdWUoKS4KKyAgICAgICAg
KiB3bWwvV01MSW5wdXRFbGVtZW50Lmg6CisgICAgICAgIChXZWJDb3JlOjpXTUxJbnB1dEVsZW1l
bnQ6OnZpc2libGVWYWx1ZSk6CisgICAgICAgICAgSW1wbGVtZW50IHZpc2libGVWYWx1ZSgpLiBJ
dCBqdXN0IGNhbGxzIHZhbHVlKCkuCisKIDIwMTAtMDktMTMgIEFkYW0gQmFydGggIDxhYmFydGhA
d2Via2l0Lm9yZz4KIAogICAgICAgICBSZXZpZXdlZCBieSBEYXJpbiBBZGxlci4KZGlmZiAtLWdp
dCBhL1dlYkNvcmUvR05VbWFrZWZpbGUuYW0gYi9XZWJDb3JlL0dOVW1ha2VmaWxlLmFtCmluZGV4
IDQ3ZTE1NTBhZTBmMGZhMzRiMmYyNGE3Zjk5N2JiM2Q1MmY5M2ZjMDguLjNjMzllYjFkOGFiMGM5
YTE4ZDYwODJkZjA4NmE1MGNhYTg4ZjRiNjMgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvR05VbWFrZWZp
bGUuYW0KKysrIGIvV2ViQ29yZS9HTlVtYWtlZmlsZS5hbQpAQCAtMjMxOSw2ICsyMzE5LDggQEAg
d2ViY29yZV9zb3VyY2VzICs9IFwKIAlXZWJDb3JlL3BsYXRmb3JtL3RleHQvSHlwaGVuYXRpb24u
aCBcCiAJV2ViQ29yZS9wbGF0Zm9ybS90ZXh0L0xpbmVFbmRpbmcuY3BwIFwKIAlXZWJDb3JlL3Bs
YXRmb3JtL3RleHQvTGluZUVuZGluZy5oIFwKKwlXZWJDb3JlL3BsYXRmb3JtL3RleHQvTG9jYWxp
emVkTnVtYmVyLmggXAorCVdlYkNvcmUvcGxhdGZvcm0vdGV4dC9Mb2NhbGl6ZWROdW1iZXJOb25l
LmNwcCBcCiAJV2ViQ29yZS9wbGF0Zm9ybS90ZXh0L1BhcnNlclV0aWxpdGllcy5oIFwKIAlXZWJD
b3JlL3BsYXRmb3JtL3RleHQvUGxhdGZvcm1TdHJpbmcuaCBcCiAJV2ViQ29yZS9wbGF0Zm9ybS90
ZXh0L1JlZ3VsYXJFeHByZXNzaW9uLmNwcCBcCmRpZmYgLS1naXQgYS9XZWJDb3JlL1dlYkNvcmUu
Z3lwaSBiL1dlYkNvcmUvV2ViQ29yZS5neXBpCmluZGV4IGZlZDdjZTM5NzgzODY4ODU4OWRlNjhk
M2M2YzhiNDk2YmZmOThmOGQuLmJhNjk1OGJlODE3YzNkMjVjMjdlM2I3MDViZDk5YjI3OWQ3MWM1
M2IgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvV2ViQ29yZS5neXBpCisrKyBiL1dlYkNvcmUvV2ViQ29y
ZS5neXBpCkBAIC0yOTkxLDYgKzI5OTEsOCBAQAogICAgICAgICAgICAgJ3BsYXRmb3JtL3RleHQv
SHlwaGVuYXRpb24uaCcsCiAgICAgICAgICAgICAncGxhdGZvcm0vdGV4dC9MaW5lRW5kaW5nLmNw
cCcsCiAgICAgICAgICAgICAncGxhdGZvcm0vdGV4dC9MaW5lRW5kaW5nLmgnLAorICAgICAgICAg
ICAgJ3BsYXRmb3JtL3RleHQvTG9jYWxpemVkTnVtYmVyLmgnLAorICAgICAgICAgICAgJ3BsYXRm
b3JtL3RleHQvTG9jYWxpemVkTnVtYmVyTm9uZS5jcHAnLAogICAgICAgICAgICAgJ3BsYXRmb3Jt
L3RleHQvUGFyc2VyVXRpbGl0aWVzLmgnLAogICAgICAgICAgICAgJ3BsYXRmb3JtL3RleHQvUGxh
dGZvcm1TdHJpbmcuaCcsCiAgICAgICAgICAgICAncGxhdGZvcm0vdGV4dC9SZWd1bGFyRXhwcmVz
c2lvbi5jcHAnLApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9XZWJDb3JlLnBybyBiL1dlYkNvcmUvV2Vi
Q29yZS5wcm8KaW5kZXggNmM2N2JkZTE3YjY4ZGUyNzdjODRmMGVhN2ZjNTJiMTkzYWQ5NjU1YS4u
OTFjNmFjYWIwN2VlMGU4NzcwOTMyNjQ4N2JhNzkyYmJlNTdjMTViMiAxMDA2NDQKLS0tIGEvV2Vi
Q29yZS9XZWJDb3JlLnBybworKysgYi9XZWJDb3JlL1dlYkNvcmUucHJvCkBAIC0xMDc3LDYgKzEw
NzcsNyBAQCBTT1VSQ0VTICs9IFwKICAgICBwbGF0Zm9ybS90ZXh0L0Jhc2U2NC5jcHAgXAogICAg
IHBsYXRmb3JtL3RleHQvQmlkaUNvbnRleHQuY3BwIFwKICAgICBwbGF0Zm9ybS90ZXh0L0h5cGhl
bmF0aW9uLmNwcCBcCisgICAgcGxhdGZvcm0vdGV4dC9Mb2NhbGl6ZWROdW1iZXJOb25lLmNwcCBc
CiAgICAgcGxhdGZvcm0vQ29udGVudFR5cGUuY3BwIFwKICAgICBwbGF0Zm9ybS9Db250ZXh0TWVu
dS5jcHAgXAogICAgIHBsYXRmb3JtL0Nyb3NzVGhyZWFkQ29waWVyLmNwcCBcCmRpZmYgLS1naXQg
YS9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qIGIvV2ViQ29yZS9XZWJDb3Jl
LnZjcHJvai9XZWJDb3JlLnZjcHJvagppbmRleCBlMjU2ODM1MzM2YjJkZWVmOTVkZTFjYjc1YzUw
ZjA5MmY4ZDZlYjQwLi43NjdhNmFmZmRkODVlMWQzZWJhNDcwZjAxMjgzYzcyMjhiNTc4NTJkIDEw
MDY0NAotLS0gYS9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qCisrKyBiL1dl
YkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2oKQEAgLTI4MDQ4LDYgKzI4MDQ4LDE0
IEBACiAJCQkJCT4NCiAJCQkJPC9GaWxlPg0KIAkJCQk8RmlsZQ0KKwkJCQkJUmVsYXRpdmVQYXRo
PSIuLlxwbGF0Zm9ybVx0ZXh0XExvY2FsaXplZE51bWJlci5oIg0KKwkJCQkJPg0KKwkJCQk8L0Zp
bGU+DQorCQkJCTxGaWxlDQorCQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXHBsYXRmb3JtXHRleHRcTG9j
YWxpemVkTnVtYmVyTm9uZS5jcHAiDQorCQkJCQk+DQorCQkJCTwvRmlsZT4NCisJCQkJPEZpbGUN
CiAJCQkJCVJlbGF0aXZlUGF0aD0iLi5ccGxhdGZvcm1cdGV4dFxQYXJzZXJVdGlsaXRpZXMuaCIN
CiAJCQkJCT4NCiAJCQkJPC9GaWxlPg0KZGlmZiAtLWdpdCBhL1dlYkNvcmUvV2ViQ29yZS54Y29k
ZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0
LnBieHByb2oKaW5kZXggMTcxYWZkYWJjODgxZGZiY2ZiMTBlNTU0ZTk1NTMzNmE1Nzk1NjQwMi4u
MGQ0NmE0MzAyZDE4MTcxMzkxZWY5N2MxOTU2YWI4MWQzYWY5ZTAyNyAxMDA2NDQKLS0tIGEvV2Vi
Q29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvV2ViQ29yZS9XZWJD
b3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTUzNTgsNiArNTM1OCw4IEBACiAJCUYz
RDQ2MTQ5MTE2MUQ1MzIwMENBMEQwOSAvKiBKU1dvcmtlckNvbnRleHRFcnJvckhhbmRsZXIuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEYzRDQ2MTQ3MTE2
MUQ1MzIwMENBMEQwOSAvKiBKU1dvcmtlckNvbnRleHRFcnJvckhhbmRsZXIuaCAqLzsgfTsKIAkJ
RjRFQUY0QUUxMEM3NDJCMTAwOTEwMEQzIC8qIE9wZW5UeXBlU2FuaXRpemVyLmNwcCBpbiBTb3Vy
Y2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY0RUFGNEFDMTBDNzQyQjEw
MDkxMDBEMyAvKiBPcGVuVHlwZVNhbml0aXplci5jcHAgKi87IH07CiAJCUY0RUFGNEFGMTBDNzQy
QjEwMDkxMDBEMyAvKiBPcGVuVHlwZVNhbml0aXplci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjRFQUY0QUQxMEM3NDJCMTAwOTEwMEQzIC8qIE9wZW5U
eXBlU2FuaXRpemVyLmggKi87IH07CisJCUY1MTQyQzY5MTIzRjEyQjAwMEY1QkQ0QyAvKiBMb2Nh
bGl6ZWROdW1iZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IEY1MTQyQzY4MTIzRjEyQjAwMEY1QkQ0QyAvKiBMb2NhbGl6ZWROdW1iZXIuaCAqLzsgfTsK
KwkJRjUxNDJDNkIxMjNGMTJDNTAwRjVCRDRDIC8qIExvY2FsaXplZE51bWJlck5vbmUuY3BwIGlu
IFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjUxNDJDNkExMjNG
MTJDNTAwRjVCRDRDIC8qIExvY2FsaXplZE51bWJlck5vbmUuY3BwICovOyB9OwogCQlGNUMwNDFE
QTBGRkNBN0NFMDA4MzlENEEgLyogSFRNTERhdGFMaXN0RWxlbWVudC5jcHAgaW4gU291cmNlcyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNUMwNDFENzBGRkNBN0NFMDA4MzlE
NEEgLyogSFRNTERhdGFMaXN0RWxlbWVudC5jcHAgKi87IH07CiAJCUY1QzA0MURCMEZGQ0E3Q0Uw
MDgzOUQ0QSAvKiBIVE1MRGF0YUxpc3RFbGVtZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNUMwNDFEODBGRkNBN0NFMDA4MzlENEEgLyogSFRNTERh
dGFMaXN0RWxlbWVudC5oICovOyB9OwogCQlGNUMwNDFFMzBGRkNBOTZEMDA4MzlENEEgLyogRE9N
SFRNTERhdGFMaXN0RWxlbWVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gRjVDMDQxREUwRkZDQTk2RDAwODM5RDRBIC8qIERPTUhUTUxEYXRhTGlzdEVs
ZW1lbnQuaCAqLzsgfTsKQEAgLTExMjI3LDYgKzExMjI5LDggQEAKIAkJRjNENDYxNDcxMTYxRDUz
MjAwQ0EwRDA5IC8qIEpTV29ya2VyQ29udGV4dEVycm9ySGFuZGxlci5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBKU1dvcmtlckNvbnRleHRFcnJvckhhbmRsZXIuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRjRFQUY0QUMxMEM3NDJCMTAwOTEwMEQzIC8qIE9wZW5U
eXBlU2FuaXRpemVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IE9w
ZW5UeXBlU2FuaXRpemVyLmNwcDsgcGF0aCA9IG9wZW50eXBlL09wZW5UeXBlU2FuaXRpemVyLmNw
cDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRjRFQUY0QUQxMEM3NDJCMTAwOTEwMEQz
IC8qIE9wZW5UeXBlU2FuaXRpemVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9
IE9wZW5UeXBlU2FuaXRpemVyLmg7IHBhdGggPSBvcGVudHlwZS9PcGVuVHlwZVNhbml0aXplci5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlGNTE0MkM2ODEyM0YxMkIwMDBGNUJENEMg
LyogTG9jYWxpemVkTnVtYmVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IExv
Y2FsaXplZE51bWJlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlGNTE0MkM2QTEy
M0YxMkM1MDBGNUJENEMgLyogTG9jYWxpemVkTnVtYmVyTm9uZS5jcHAgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBMb2NhbGl6ZWROdW1iZXJOb25lLmNwcDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRjUyM0QyM0IwMkRFNDM5NjAxODYzNUNBIC8qIEhUTUxEb2N1
bWVudC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7
IGluZGVudFdpZHRoID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7
IHBhdGggPSBIVE1MRG9jdW1lbnQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB0YWJXaWR0
aCA9IDg7IHVzZXNUYWJzID0gMDsgfTsKIAkJRjUyM0QyM0MwMkRFNDM5NjAxODYzNUNBIC8qIEhU
TUxEb2N1bWVudC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDMwOyBpbmRlbnRXaWR0aCA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBIVE1MRG9jdW1lbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgdGFiV2lkdGgg
PSA4OyB1c2VzVGFicyA9IDA7IH07CiAJCUY1MjNEMjNFMDJERTQzOTYwMTg2MzVDQSAvKiBIVE1M
RWxlbWVudC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
MzA7IGluZGVudFdpZHRoID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5j
cHA7IHBhdGggPSBIVE1MRWxlbWVudC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IHRhYldp
ZHRoID0gODsgdXNlc1RhYnMgPSAwOyB9OwpAQCAtMTYwNzksNiArMTYwODMsOCBAQAogCQkJCTM3
NUNEMjMxMTE5RDQzQzgwMEEyQTg1OSAvKiBIeXBoZW5hdGlvbi5oICovLAogCQkJCTg5QjVFQTlG
MTFFODAwM0QwMEYyMzY3RSAvKiBMaW5lRW5kaW5nLmNwcCAqLywKIAkJCQk4OUI1RUFBMDExRTgw
MDNEMDBGMjM2N0UgLyogTGluZUVuZGluZy5oICovLAorCQkJCUY1MTQyQzY4MTIzRjEyQjAwMEY1
QkQ0QyAvKiBMb2NhbGl6ZWROdW1iZXIuaCAqLywKKwkJCQlGNTE0MkM2QTEyM0YxMkM1MDBGNUJE
NEMgLyogTG9jYWxpemVkTnVtYmVyTm9uZS5jcHAgKi8sCiAJCQkJQkM3NkFDMTEwREQ3QUQ1QzAw
NDE1RjM0IC8qIFBhcnNlclV0aWxpdGllcy5oICovLAogCQkJCUIyQzNEOUZCMEQwMDZDMUQwMEVG
NkYyNiAvKiBQbGF0Zm9ybVN0cmluZy5oICovLAogCQkJCUIyQzNEOUZDMEQwMDZDMUQwMEVGNkYy
NiAvKiBSZWd1bGFyRXhwcmVzc2lvbi5jcHAgKi8sCkBAIC0xOTU5MSw2ICsxOTU5Nyw3IEBACiAJ
CQkJNjU2RDM3MzIwQURCQTVERTAwQTQ1NTREIC8qIExvYWRlck5TVVJMRXh0cmFzLmggaW4gSGVh
ZGVycyAqLywKIAkJCQkwNkU4MUVENzBBQjVENUU5MDBDODc4MzcgLyogTG9jYWxDdXJyZW50R3Jh
cGhpY3NDb250ZXh0LmggaW4gSGVhZGVycyAqLywKIAkJCQlCQzVDRkNBOTExRjc5MzMyMDA5OUVE
MDkgLyogTG9jYWxpemF0aW9uU3RyYXRlZ3kuaCBpbiBIZWFkZXJzICovLAorCQkJCUY1MTQyQzY5
MTIzRjEyQjAwMEY1QkQ0QyAvKiBMb2NhbGl6ZWROdW1iZXIuaCBpbiBIZWFkZXJzICovLAogCQkJ
CTkzNTIwN0JFMDlCRDQxMEEwMEYyMDM4RCAvKiBMb2NhbGl6ZWRTdHJpbmdzLmggaW4gSGVhZGVy
cyAqLywKIAkJCQk1MTFGMjMxODBEQzE2MERBMDA0RjAwMzIgLyogTG9jYWxTdG9yYWdlVGFzay5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJNTExRjIzMUEwREMxNjBEQTAwNEYwMDMyIC8qIExvY2FsU3Rv
cmFnZVRocmVhZC5oIGluIEhlYWRlcnMgKi8sCkBAIC0yMjIwMSw2ICsyMjIwOCw3IEBACiAJCQkJ
QkNCMTZDMkMwOTc5QzNCRDAwNDY3NzQxIC8qIGxvYWRlci5jcHAgaW4gU291cmNlcyAqLywKIAkJ
CQk2NTZEMzczMzBBREJBNURFMDBBNDU1NEQgLyogTG9hZGVyTlNVUkxFeHRyYXMubW0gaW4gU291
cmNlcyAqLywKIAkJCQkwNkU4MUVFQzBBQjVEQTk3MDBDODc4MzcgLyogTG9jYWxDdXJyZW50R3Jh
cGhpY3NDb250ZXh0Lm1tIGluIFNvdXJjZXMgKi8sCisJCQkJRjUxNDJDNkIxMjNGMTJDNTAwRjVC
RDRDIC8qIExvY2FsaXplZE51bWJlck5vbmUuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQzA0NkUx
QUMxMjA4QTlGRTAwQkEyQ0Y3IC8qIExvY2FsaXplZFN0cmluZ3MuY3BwIGluIFNvdXJjZXMgKi8s
CiAJCQkJNTExRjIzMTcwREMxNjBEQTAwNEYwMDMyIC8qIExvY2FsU3RvcmFnZVRhc2suY3BwIGlu
IFNvdXJjZXMgKi8sCiAJCQkJNTExRjIzMTkwREMxNjBEQTAwNEYwMDMyIC8qIExvY2FsU3RvcmFn
ZVRocmVhZC5jcHAgaW4gU291cmNlcyAqLywKZGlmZiAtLWdpdCBhL1dlYkNvcmUvZG9tL0lucHV0
RWxlbWVudC5oIGIvV2ViQ29yZS9kb20vSW5wdXRFbGVtZW50LmgKaW5kZXggZDVjZTIxMmRmYTM1
ZjdkM2U5ZDI1MDkxYTY3YWY5NTM1MDNjYTU1OC4uZDMwNDA2NGZjNTI3NTYxYWU3YWZmZjJhNTU0
OGNlZTYxM2U3OTIxOSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9kb20vSW5wdXRFbGVtZW50LmgKKysr
IGIvV2ViQ29yZS9kb20vSW5wdXRFbGVtZW50LmgKQEAgLTU5LDYgKzU5LDcgQEAgcHVibGljOgog
ICAgIHZpcnR1YWwgU3RyaW5nIHZhbHVlKCkgY29uc3QgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBz
ZXRWYWx1ZShjb25zdCBTdHJpbmcmLCBib29sIHNlbmRDaGFuZ2VFdmVudCA9IGZhbHNlKSA9IDA7
CiAgICAgdmlydHVhbCB2b2lkIHNldFZhbHVlRm9yVXNlcihjb25zdCBTdHJpbmcmKSA9IDA7Cisg
ICAgdmlydHVhbCBTdHJpbmcgdmlzaWJsZVZhbHVlKCkgY29uc3QgPSAwOwogCiAgICAgLy8gUmV0
dXJucyB0cnVlIGlmIHRoZSBzcGVjaWZpZWQgc3RyaW5nIGNhbiBiZSBzZXQgYXMgdGhlIHZhbHVl
IG9mIElucHV0RWxlbWVudC4KICAgICB2aXJ0dWFsIGJvb2wgaXNBY2NlcHRhYmxlVmFsdWUoY29u
c3QgU3RyaW5nJikgY29uc3QgPSAwOwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9odG1sL0hUTUxJbnB1
dEVsZW1lbnQuY3BwIGIvV2ViQ29yZS9odG1sL0hUTUxJbnB1dEVsZW1lbnQuY3BwCmluZGV4IGU5
MDUyNWJjMWQ1ZWExOTg1M2FjOTVkMmEzMGMyM2RkY2M1NDY0ZjcuLjY5YzhjM2Y0NzE1Y2E0ZDA1
MzQyYjM4YTgzYzA1MTVlYmUxOThmOWMgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvaHRtbC9IVE1MSW5w
dXRFbGVtZW50LmNwcAorKysgYi9XZWJDb3JlL2h0bWwvSFRNTElucHV0RWxlbWVudC5jcHAKQEAg
LTUyLDYgKzUyLDcgQEAKICNpbmNsdWRlICJIVE1MT3B0aW9uRWxlbWVudC5oIgogI2luY2x1ZGUg
IkhUTUxUcmVlQnVpbGRlci5oIgogI2luY2x1ZGUgIktleWJvYXJkRXZlbnQuaCIKKyNpbmNsdWRl
ICJMb2NhbGl6ZWROdW1iZXIuaCIKICNpbmNsdWRlICJMb2NhbGl6ZWRTdHJpbmdzLmgiCiAjaW5j
bHVkZSAiTW91c2VFdmVudC5oIgogI2luY2x1ZGUgIlBhZ2UuaCIKQEAgLTExNSw4ICsxMTYsNyBA
QCBzdGF0aWMgY29uc3QgY2hhciBlbWFpbFBhdHRlcm5bXSA9CiAKIHN0YXRpYyBib29sIGlzTnVt
YmVyQ2hhcmFjdGVyKFVDaGFyIGNoKQogewotICAgIHJldHVybiBjaCA9PSAnKycgfHwgY2ggPT0g
Jy0nIHx8IGNoID09ICcuJyB8fCBjaCA9PSAnZScgfHwgY2ggPT0gJ0UnCi0gICAgICAgIHx8IChj
aCA+PSAnMCcgJiYgY2ggPD0gJzknKTsKKyAgICByZXR1cm4gaXNMb2NhbGl6ZWROdW1iZXJDaGFy
YWN0ZXIoY2gpIHx8IGNoID09ICcrJyB8fCBjaCA9PSAnLScgfHwgY2ggPT0gJy4nIHx8IGNoID09
ICdlJyB8fCBjaCA9PSAnRScgfHwgKGNoID49ICcwJyAmJiBjaCA8PSAnOScpOwogfQogCiBzdGF0
aWMgYm9vbCBpc1ZhbGlkQ29sb3JTdHJpbmcoY29uc3QgU3RyaW5nJiB2YWx1ZSkKQEAgLTI2NjYs
MTcgKzI2NjYsMzQgQEAgRmlsZUxpc3QqIEhUTUxJbnB1dEVsZW1lbnQ6OmZpbGVzKCkKICAgICBy
ZXR1cm4gbV9maWxlTGlzdC5nZXQoKTsKIH0KIAorU3RyaW5nIEhUTUxJbnB1dEVsZW1lbnQ6OnZp
c2libGVWYWx1ZSgpIGNvbnN0Cit7CisgICAgU3RyaW5nIGN1cnJlbnRWYWx1ZSA9IHZhbHVlKCk7
CisgICAgaWYgKGlucHV0VHlwZSgpICE9IE5VTUJFUikKKyAgICAgICAgcmV0dXJuIGN1cnJlbnRW
YWx1ZTsKKyAgICBpZiAoY3VycmVudFZhbHVlLmlzRW1wdHkoKSkKKyAgICAgICAgcmV0dXJuIGN1
cnJlbnRWYWx1ZTsKKyAgICBkb3VibGUgZG91YmxlVmFsdWUgPSBudW1lcmljX2xpbWl0czxkb3Vi
bGU+OjpxdWlldF9OYU4oKTsKKyAgICBwYXJzZVRvRG91YmxlRm9yTnVtYmVyVHlwZShjdXJyZW50
VmFsdWUsICZkb3VibGVWYWx1ZSk7CisgICAgU3RyaW5nIGxvY2FsaXplZCA9IGZvcm1hdExvY2Fs
aXplZE51bWJlcihkb3VibGVWYWx1ZSk7CisgICAgcmV0dXJuIGxvY2FsaXplZC5pc0VtcHR5KCkg
PyBjdXJyZW50VmFsdWUgOiBsb2NhbGl6ZWQ7Cit9CisKIGJvb2wgSFRNTElucHV0RWxlbWVudDo6
aXNBY2NlcHRhYmxlVmFsdWUoY29uc3QgU3RyaW5nJiBwcm9wb3NlZFZhbHVlKSBjb25zdAogewog
ICAgIGlmIChpbnB1dFR5cGUoKSAhPSBOVU1CRVIpCiAgICAgICAgIHJldHVybiB0cnVlOwotICAg
IHJldHVybiBwcm9wb3NlZFZhbHVlLmlzRW1wdHkoKSB8fCBwYXJzZVRvRG91YmxlRm9yTnVtYmVy
VHlwZShwcm9wb3NlZFZhbHVlLCAwKTsKKyAgICByZXR1cm4gcHJvcG9zZWRWYWx1ZS5pc0VtcHR5
KCkgfHwgaXNmaW5pdGUocGFyc2VMb2NhbGl6ZWROdW1iZXIocHJvcG9zZWRWYWx1ZSkpIHx8IHBh
cnNlVG9Eb3VibGVGb3JOdW1iZXJUeXBlKHByb3Bvc2VkVmFsdWUsIDApOwogfQogCiBTdHJpbmcg
SFRNTElucHV0RWxlbWVudDo6c2FuaXRpemVWYWx1ZShjb25zdCBTdHJpbmcmIHByb3Bvc2VkVmFs
dWUpIGNvbnN0CiB7Ci0gICAgaWYgKGlucHV0VHlwZSgpID09IE5VTUJFUikKKyAgICBpZiAoaW5w
dXRUeXBlKCkgPT0gTlVNQkVSKSB7CisgICAgICAgIGRvdWJsZSBwYXJzZWRWYWx1ZSA9IHBhcnNl
TG9jYWxpemVkTnVtYmVyKHByb3Bvc2VkVmFsdWUpOworICAgICAgICBpZiAoaXNmaW5pdGUocGFy
c2VkVmFsdWUpKQorICAgICAgICAgICAgcmV0dXJuIHNlcmlhbGl6ZUZvck51bWJlclR5cGUocGFy
c2VkVmFsdWUpOwogICAgICAgICByZXR1cm4gcGFyc2VUb0RvdWJsZUZvck51bWJlclR5cGUocHJv
cG9zZWRWYWx1ZSwgMCkgPyBwcm9wb3NlZFZhbHVlIDogU3RyaW5nKCk7CisgICAgfQogCiAgICAg
aWYgKGlzVGV4dEZpZWxkKCkpCiAgICAgICAgIHJldHVybiBJbnB1dEVsZW1lbnQ6OnNhbml0aXpl
VmFsdWVGb3JUZXh0RmllbGQodGhpcywgcHJvcG9zZWRWYWx1ZSk7CmRpZmYgLS1naXQgYS9XZWJD
b3JlL2h0bWwvSFRNTElucHV0RWxlbWVudC5oIGIvV2ViQ29yZS9odG1sL0hUTUxJbnB1dEVsZW1l
bnQuaAppbmRleCBlMDIzNzk2YjdkYTA1MzM3NmJmYTRjYmYxOGRiMTk2ODk4NTdlZmU0Li4wNzg5
OTQ3M2Y5NGI1MWY3MjZhOTc2NmM3N2VkZDY5NWVjOGZlOTg1IDEwMDY0NAotLS0gYS9XZWJDb3Jl
L2h0bWwvSFRNTElucHV0RWxlbWVudC5oCisrKyBiL1dlYkNvcmUvaHRtbC9IVE1MSW5wdXRFbGVt
ZW50LmgKQEAgLTI4MSw2ICsyODEsNyBAQCBwcml2YXRlOgogCiAgICAgdmlydHVhbCB2b2lkIGNh
Y2hlU2VsZWN0aW9uKGludCBzdGFydCwgaW50IGVuZCk7CiAKKyAgICB2aXJ0dWFsIFN0cmluZyB2
aXNpYmxlVmFsdWUoKSBjb25zdDsKICAgICB2aXJ0dWFsIGJvb2wgaXNBY2NlcHRhYmxlVmFsdWUo
Y29uc3QgU3RyaW5nJikgY29uc3Q7CiAgICAgdmlydHVhbCBTdHJpbmcgc2FuaXRpemVWYWx1ZShj
b25zdCBTdHJpbmcmKSBjb25zdDsKICAgICB2aXJ0dWFsIGJvb2wgaGFzVW5hY2NlcHRhYmxlVmFs
dWUoKSBjb25zdDsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGxhdGZvcm0vdGV4dC9Mb2NhbGl6ZWRO
dW1iZXIuaCBiL1dlYkNvcmUvcGxhdGZvcm0vdGV4dC9Mb2NhbGl6ZWROdW1iZXIuaApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi4yYjQ3ODdiMWY4ZjVjZWYzNmVmNjUyMTdkOTQzZDc5MTM3ZjIxNzgwCi0tLSAvZGV2L251
bGwKKysrIGIvV2ViQ29yZS9wbGF0Zm9ybS90ZXh0L0xvY2FsaXplZE51bWJlci5oCkBAIC0wLDAg
KzEsNTkgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAgR29vZ2xlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKKyAqIG1ldDoK
KyAqCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4g
dGhlIGFib3ZlIGNvcHlyaWdodAorICogbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogICAgICogUmVkaXN0cmlidXRpb25zIGlu
IGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQorICogY29weXJpZ2h0IG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgor
ICogaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3
aXRoIHRoZQorICogZGlzdHJpYnV0aW9uLgorICogICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBH
b29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cworICogY29udHJpYnV0b3JzIG1heSBiZSB1
c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KKyAqIHRoaXMg
c29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisgKgor
ICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5E
IENPTlRSSUJVVE9SUworICogIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgorICogQSBQQVJUSUNV
TEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklH
SFQKKyAqIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElO
RElSRUNULCBJTkNJREVOVEFMLAorICogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5U
SUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywgUFJPQ1VSRU1F
TlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCisgKiBEQVRB
LCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFO
RCBPTiBBTlkKKyAqIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNU
UklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhF
UldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZU
V0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4K
KyAqLworCisjaWZuZGVmIExvY2FsaXplZE51bWJlcl9oCisjZGVmaW5lIExvY2FsaXplZE51bWJl
cl9oCisKKyNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KKworbmFtZXNwYWNlIFdlYkNv
cmUgeworCisvLyBQYXJzZXMgYSBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgYSBmbG9hdGluZyBw
b2ludCBudW1iZXIgbG9jYWxpemVkCisvLyBmb3IgdGhlIGJyb3dzZXIncyBjdXJyZW50IGxvY2Fs
ZS4gSWYgdGhlIGlucHV0IHN0cmluZyBpcyBub3QgdmFsaWQKKy8vIG9yIGFuIGltcGxlbWVudGF0
aW9uIGRvZXNuJ3Qgc3VwcG9ydCBsb2NhbGl6ZWQgbnVtYmVycywgdGhpcworLy8gZnVuY3Rpb24g
cmV0dXJucyBOYU4uIFRoaXMgZnVuY3Rpb24gZG9lc24ndCBuZWVkIHRvIHN1cHBvcnQKKy8vIHNj
aWVudGlmaWMgbm90YXRpb24sIE5hTiwgK0luZmluaXR5IGFuZCAtSW5maW5pdHksIGFuZCBkb2Vz
bid0IG5lZWQKKy8vIHRvIHN1cHBvcnQgdGhlIHN0YW5kYXJkIHJlcHJlc2VudGF0aW9ucyBvZiBF
Q01BU2NyaXB0IGFuZCBIVE1MNS4KK2RvdWJsZSBwYXJzZUxvY2FsaXplZE51bWJlcihjb25zdCBT
dHJpbmcmKTsKKworLy8gU2VyaWFsaXplcyB0aGUgc3BlY2lmaWVkIGZsb2F0aW5nIHBvaW50IG51
bWJlciBmb3IgdGhlIGJyb3dzZXIncworLy8gY3VycmVudCBsb2NhbGUuICBJZiBhbiBpbXBsZW1l
bnRhdGlvbiBkb2Vzbid0IHN1cHBvcnQgbG9jYWxpemVkCisvLyBudW1iZXJzIG9yIHRoZSBpbnB1
dCB2YWx1ZSBpcyBOYU4gb3IgSW5maW5pdGl5LCB0aGUgZnVuY3Rpb24gc2hvdWxkCisvLyByZXR1
cm4gYW4gZW1wdHkgc3RyaW5nLgorU3RyaW5nIGZvcm1hdExvY2FsaXplZE51bWJlcihkb3VibGUp
OworCisvLyBSZXR1cm5zIHRydWUgaWYgdGhlIGlucHV0IGNoYXJhY3RlciBjYW4gYmUgdXNlZCB0
byByZXByZXNlbnQgYQorLy8gbG9jYWxpemVkIG51bWJlci4gRm9yIGV4YW1wbGUsIHRoaXMgc2hv
dWxkIHJldHVybiB0cnVlIGZvciAwLTkgLiAsICsKKy8vIC0gZm9yIGVuLVVTIGxvY2FsZS4KK2Jv
b2wgaXNMb2NhbGl6ZWROdW1iZXJDaGFyYWN0ZXIoVUNoYXIzMik7CisKK30gLy8gbmFtZXNwYWNl
IFdlYkNvcmUKKworI2VuZGlmIC8vIExvY2FsaXplZE51bWJlcl9oCmRpZmYgLS1naXQgYS9XZWJD
b3JlL3BsYXRmb3JtL3RleHQvTG9jYWxpemVkTnVtYmVyTm9uZS5jcHAgYi9XZWJDb3JlL3BsYXRm
b3JtL3RleHQvTG9jYWxpemVkTnVtYmVyTm9uZS5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZmYzOThlZjU4MWEw
YmVmYzM2NzY2Nzg2MzI4OWI3YjFhOGY2Y2U3ZgotLS0gL2Rldi9udWxsCisrKyBiL1dlYkNvcmUv
cGxhdGZvcm0vdGV4dC9Mb2NhbGl6ZWROdW1iZXJOb25lLmNwcApAQCAtMCwwICsxLDU1IEBACisv
KgorICogQ29weXJpZ2h0IChDKSAyMDEwIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCisgKiBtZXQ6CisgKgorICogICAg
ICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lci4KKyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9y
bSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKKyAqIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKKyAqIGluIHRoZSBk
b2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKKyAq
IGRpc3RyaWJ1dGlvbi4KKyAqICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4g
bm9yIHRoZSBuYW1lcyBvZiBpdHMKKyAqIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRv
cnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCisgKiB0aGlzIHNvZnR3YXJlIHdp
dGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorICoKKyAqIFRISVMgU09G
VFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRP
UlMKKyAqICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5D
TFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9G
IE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKKyAqIEEgUEFSVElDVUxBUiBQVVJQT1NF
IEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCisgKiBPV05F
UiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5D
SURFTlRBTCwKKyAqIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VT
IChJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNU
SVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAorICogREFUQSwgT1IgUFJPRklU
UzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCisg
KiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklM
SVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklT
SU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4g
SUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lu
Y2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIkxvY2FsaXplZE51bWJlci5oIgorCisjaW5jbHVk
ZSA8bGltaXRzPgorCit1c2luZyBuYW1lc3BhY2Ugc3RkOworCituYW1lc3BhY2UgV2ViQ29yZSB7
CisKK2RvdWJsZSBwYXJzZUxvY2FsaXplZE51bWJlcihjb25zdCBTdHJpbmcmKQoreworICAgIHJl
dHVybiBudW1lcmljX2xpbWl0czxkb3VibGU+OjpxdWlldF9OYU4oKTsKK30KKworU3RyaW5nIGZv
cm1hdExvY2FsaXplZE51bWJlcihkb3VibGUpCit7CisgICAgcmV0dXJuIFN0cmluZygpOworfQor
Citib29sIGlzTG9jYWxpemVkTnVtYmVyQ2hhcmFjdGVyKFVDaGFyMzIpCit7CisgICAgcmV0dXJu
IGZhbHNlOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJUZXh0Q29udHJvbFNpbmdsZUxpbmUuY3BwIGIvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyVGV4dENvbnRyb2xTaW5nbGVMaW5lLmNwcAppbmRleCAxN2FiNjVhY2E0M2M3
Y2RkNjA4Njc1Nzg3NWRkMGY3ZjI0ZDMyYWZjLi42ZDcxYWNlYmEzMjgxNWI1M2M4MDFhMmM3NGI5
NzE0OWUyYWY3NjI4IDEwMDY0NAotLS0gYS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUZXh0Q29u
dHJvbFNpbmdsZUxpbmUuY3BwCisrKyBiL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRleHRDb250
cm9sU2luZ2xlTGluZS5jcHAKQEAgLTY4Nyw3ICs2ODcsNyBAQCB2b2lkIFJlbmRlclRleHRDb250
cm9sU2luZ2xlTGluZTo6dXBkYXRlRnJvbUVsZW1lbnQoKQogICAgICAgICAgICAgLy8gRm9yIEhU
TUxJbnB1dEVsZW1lbnQsIHVwZGF0ZSB0aGUgcmVuZGVyZXIgdmFsdWUgb25seSBpZiB0aGUKICAg
ICAgICAgICAgIC8vIGZvcm1Db250cm9sVmFsdWVNYXRjaGVzUmVuZGVyZXIoKSBmbGFnIGlzIGZh
bHNlLiBJdCBwcm90ZWN0cyBhbgogICAgICAgICAgICAgLy8gdW5hY2NlcHRhYmxlIHJlbmRlcmVy
IHZhbHVlIGZyb20gYmVpbmcgb3ZlcndyaXR0ZW4gd2l0aCB0aGUgRE9NIHZhbHVlLgotICAgICAg
ICAgICAgc2V0SW5uZXJUZXh0VmFsdWUoaW5wdXRFbGVtZW50KCktPnZhbHVlKCkpOworICAgICAg
ICAgICAgc2V0SW5uZXJUZXh0VmFsdWUoaW5wdXRFbGVtZW50KCktPnZpc2libGVWYWx1ZSgpKTsK
ICAgICB9CiAKICAgICBpZiAobV9zZWFyY2hQb3B1cElzVmlzaWJsZSkKZGlmZiAtLWdpdCBhL1dl
YkNvcmUvd21sL1dNTElucHV0RWxlbWVudC5oIGIvV2ViQ29yZS93bWwvV01MSW5wdXRFbGVtZW50
LmgKaW5kZXggZGY3ZjQ5NzJiNzJjYmU4ODQyMGRhYThkYWE1MWE2ZjVmMzQ0YTAyMi4uNmM2NjQx
MGJjZjc2YTllZmZiMThlZTUzOWRiMGE2MTc5ODlhMjUzZSAxMDA2NDQKLS0tIGEvV2ViQ29yZS93
bWwvV01MSW5wdXRFbGVtZW50LmgKKysrIGIvV2ViQ29yZS93bWwvV01MSW5wdXRFbGVtZW50LmgK
QEAgLTYzLDYgKzYzLDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgU3RyaW5nIHZhbHVlKCkgY29u
c3Q7CiAgICAgdmlydHVhbCB2b2lkIHNldFZhbHVlKGNvbnN0IFN0cmluZyYsIGJvb2wgc2VuZENo
YW5nZUV2ZW50ID0gZmFsc2UpOwogICAgIHZpcnR1YWwgdm9pZCBzZXRWYWx1ZUZvclVzZXIoY29u
c3QgU3RyaW5nJik7CisgICAgdmlydHVhbCBTdHJpbmcgdmlzaWJsZVZhbHVlKCkgY29uc3QgeyBy
ZXR1cm4gdmFsdWUoKTsgfQogICAgIHZpcnR1YWwgdm9pZCBzZXRWYWx1ZUZyb21SZW5kZXJlcihj
b25zdCBTdHJpbmcmKTsKIAogICAgIHZpcnR1YWwgYm9vbCBzYXZlRm9ybUNvbnRyb2xTdGF0ZShT
dHJpbmcmIHZhbHVlKSBjb25zdDsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>70209</attachid>
            <date>2010-10-08 01:44:54 -0700</date>
            <delta_ts>2010-10-12 00:17:12 -0700</delta_ts>
            <desc>Patch 2 (comment update, rebased)</desc>
            <filename>bug-45730-20101008174452.patch</filename>
            <type>text/plain</type>
            <size>20564</size>
            <attacher name="Kent Tamura">tkent</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQW5kcm9pZC5tayBiL1dlYkNvcmUvQW5kcm9pZC5tawppbmRl
eCA3YWYyMTQ4ZmQ2NDBkYTIyZGM0NWRmYTIxMGRiZGM3MWEwMjQzYTYyLi4xOTU2NzI4Y2Q1MTc4
MDA3ODQwOGFiNDdiMDQ4MWUxNWYwN2RiOGNlIDEwMDY0NAotLS0gYS9XZWJDb3JlL0FuZHJvaWQu
bWsKKysrIGIvV2ViQ29yZS9BbmRyb2lkLm1rCkBAIC02MDMsNiArNjAzLDcgQEAgTE9DQUxfU1JD
X0ZJTEVTIDo9ICQoTE9DQUxfU1JDX0ZJTEVTKSBcCiAJcGxhdGZvcm0vdGV4dC9CYXNlNjQuY3Bw
IFwKIAlwbGF0Zm9ybS90ZXh0L0JpZGlDb250ZXh0LmNwcCBcCiAJcGxhdGZvcm0vdGV4dC9IeXBo
ZW5hdGlvbi5jcHAgXAorCXBsYXRmb3JtL3RleHQvTG9jYWxpemVkTnVtYmVyTm9uZS5jcHAgXAog
CXBsYXRmb3JtL3RleHQvUmVndWxhckV4cHJlc3Npb24uY3BwIFwKIAlwbGF0Zm9ybS90ZXh0L1Nl
Z21lbnRlZFN0cmluZy5jcHAgXAogCXBsYXRmb3JtL3RleHQvU3RyaW5nLmNwcCBcCmRpZmYgLS1n
aXQgYS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0IGIvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dAppbmRl
eCA1MzMxZWFlZDhjZTU1YzhjN2YyNmIxODdiNDY3Y2U0MTUyOWEzMTI3Li4wOGEwMGJlODE5ZDEw
NTAyOWJhOWYxYjA3Y2RmNTEwODgyMDVlNGQ2IDEwMDY0NAotLS0gYS9XZWJDb3JlL0NNYWtlTGlz
dHMudHh0CisrKyBiL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKQEAgLTEzNTcsNiArMTM1Nyw3IEBA
IFNFVChXZWJDb3JlX1NPVVJDRVMKICAgICBwbGF0Zm9ybS90ZXh0L0Jhc2U2NC5jcHAKICAgICBw
bGF0Zm9ybS90ZXh0L0JpZGlDb250ZXh0LmNwcAogICAgIHBsYXRmb3JtL3RleHQvTGluZUVuZGlu
Zy5jcHAKKyAgICBwbGF0Zm9ybS90ZXh0L0xvY2FsaXplZE51bWJlck5vbmUuY3BwCiAgICAgcGxh
dGZvcm0vdGV4dC9IeXBoZW5hdGlvbi5jcHAKICAgICBwbGF0Zm9ybS90ZXh0L1JlZ3VsYXJFeHBy
ZXNzaW9uLmNwcAogICAgIHBsYXRmb3JtL3RleHQvU2VnbWVudGVkU3RyaW5nLmNwcApkaWZmIC0t
Z2l0IGEvV2ViQ29yZS9DaGFuZ2VMb2cgYi9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCAwNzgzYjEz
Y2Q2YzM4Y2JhNmY5OWZlYWM1NzJmNjlmYjNmMDc2YjcyLi5kNDFhMDk0MjFiNDgyMGI3M2IxMTA1
YmExY2Y4MTkwZDVlZGJmMGI5IDEwMDY0NAotLS0gYS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9X
ZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ0IEBACisyMDEwLTA5LTEzICBLZW50IFRhbXVy
YSAgPHRrZW50QGNocm9taXVtLm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICBBUEkgdG8gc3VwcG9ydCBsb2NhbGl6ZWQgbnVtYmVycyBmb3IgPGlu
cHV0IHR5cGU9bnVtYmVyPgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9NDU3MzAKKworICAgICAgICBJbnRyb2R1Y2UgcGxhdGZvcm0vdGV4dC9Mb2NhbGl6
ZWROdW1iZXIuaCwgYW5kCisgICAgICAgIExvY2FsaXplZE51bWJlck5vbmUuY3BwLCB3aGljaCBp
cyBhbiBlbXB0eSBpbXBsZW1lbnRhdGlvbiBvZiB0aGUKKyAgICAgICAgZnVuY3Rpb25zIGluIExv
Y2FsaXplZE51bWJlci5oLiAgV2UgdXNlIExvY2FsaXplZE51bWJlck5vbmUuY3BwIGluCisgICAg
ICAgIGFsbCBwbGF0Zm9ybXMgZm9yIG5vdy4KKworICAgICAgICBObyBuZXcgdGVzdHMgYmVjYXVz
ZSB0aGlzIGRvZXNuJ3QgY2hhbmdlIGFueSBiZWhhdmlvci4KKworICAgICAgICAqIEFuZHJvaWQu
bWs6IEFkZCBMb2NhbGl6ZWROdW1iZXIuaCBhbmQvb3IgTG9jYWxpemVkTnVtYmVyTm9uZS5jcHAu
CisgICAgICAgICogQ01ha2VMaXN0cy50eHQ6IGRpdHRvLgorICAgICAgICAqIEdOVW1ha2VmaWxl
LmFtOiBkaXR0by4KKyAgICAgICAgKiBXZWJDb3JlLmd5cGk6IGRpdHRvLgorICAgICAgICAqIFdl
YkNvcmUucHJvOiBkaXR0by4KKyAgICAgICAgKiBXZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJv
ajogZGl0dG8uCisgICAgICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOiBk
aXR0by4KKyAgICAgICAgKiBkb20vSW5wdXRFbGVtZW50Lmg6IEFkZCB2aXNpYmxlVmFsdWUoKS4K
KyAgICAgICAgKiBodG1sL0hUTUxJbnB1dEVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
aXNOdW1iZXJDaGFyYWN0ZXIpOiBDYWxscyBpc0xvY2FsaXplZE51bWJlckNoYXJhY3RlcigpLgor
ICAgICAgICAoV2ViQ29yZTo6SFRNTElucHV0RWxlbWVudDo6dmlzaWJsZVZhbHVlKToKKyAgICAg
ICAgICBDYWxscyBmb3JtYXRMb2NhbGl6ZWROdW1iZXIoKSBmb3IgdHlwZT1udW1iZXIsIGNhbGxz
IHZhbHVlKCkgb3RoZXJ3aXNlLgorICAgICAgICAoV2ViQ29yZTo6SFRNTElucHV0RWxlbWVudDo6
aXNBY2NlcHRhYmxlVmFsdWUpOiBDYWxscyBwYXJzZUxvY2FsaXplZE51bWJlcigpLgorICAgICAg
ICAoV2ViQ29yZTo6SFRNTElucHV0RWxlbWVudDo6c2FuaXRpemVWYWx1ZSk6IENhbGxzIHBhcnNl
TG9jYWxpemVkTnVtYmVyKCkuCisgICAgICAgICogaHRtbC9IVE1MSW5wdXRFbGVtZW50Lmg6IEFk
ZCB2aXNpYmxlVmFsdWUoKS4KKyAgICAgICAgKiBwbGF0Zm9ybS90ZXh0L0xvY2FsaXplZE51bWJl
ci5oOiBBZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS90ZXh0L0xvY2FsaXplZE51bWJlck5vbmUu
Y3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OnBhcnNlTG9jYWxpemVkTnVtYmVyKToKKyAg
ICAgICAgKFdlYkNvcmU6OmZvcm1hdExvY2FsaXplZE51bWJlcik6CisgICAgICAgIChXZWJDb3Jl
Ojppc0xvY2FsaXplZE51bWJlckNoYXJhY3Rlcik6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRl
clRleHRDb250cm9sU2luZ2xlTGluZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUZXh0
Q29udHJvbFNpbmdsZUxpbmU6OnVwZGF0ZUZyb21FbGVtZW50KToKKyAgICAgICAgICBDYWxscyBJ
bnB1dEVsZW1lbnQ6OnZpc2libGVWYWx1ZSgpIGluc3RlYWQgb2YgdmFsdWUoKS4KKyAgICAgICAg
KiB3bWwvV01MSW5wdXRFbGVtZW50Lmg6CisgICAgICAgIChXZWJDb3JlOjpXTUxJbnB1dEVsZW1l
bnQ6OnZpc2libGVWYWx1ZSk6CisgICAgICAgICAgSW1wbGVtZW50IHZpc2libGVWYWx1ZSgpLiBJ
dCBqdXN0IGNhbGxzIHZhbHVlKCkuCisKIDIwMTAtMTAtMDggIENhcmxvcyBHYXJjaWEgQ2FtcG9z
ICA8Y2dhcmNpYUBpZ2FsaWEuY29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5IFhhbiBMb3Blei4K
ZGlmZiAtLWdpdCBhL1dlYkNvcmUvR05VbWFrZWZpbGUuYW0gYi9XZWJDb3JlL0dOVW1ha2VmaWxl
LmFtCmluZGV4IDRhMjU0N2I3N2M3YzllYTg5YmE1MDk0NGQ0NzBhNjI0YTVlZjM1YWMuLjgzMzll
MjAxNzI1MjYyM2EwMjRkNDFkZGNhNTZiYzRhZTI5ZTI0MGIgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUv
R05VbWFrZWZpbGUuYW0KKysrIGIvV2ViQ29yZS9HTlVtYWtlZmlsZS5hbQpAQCAtMjQ1MCw2ICsy
NDUwLDggQEAgd2ViY29yZV9zb3VyY2VzICs9IFwKIAlXZWJDb3JlL3BsYXRmb3JtL3RleHQvSHlw
aGVuYXRpb24uaCBcCiAJV2ViQ29yZS9wbGF0Zm9ybS90ZXh0L0xpbmVFbmRpbmcuY3BwIFwKIAlX
ZWJDb3JlL3BsYXRmb3JtL3RleHQvTGluZUVuZGluZy5oIFwKKwlXZWJDb3JlL3BsYXRmb3JtL3Rl
eHQvTG9jYWxpemVkTnVtYmVyLmggXAorCVdlYkNvcmUvcGxhdGZvcm0vdGV4dC9Mb2NhbGl6ZWRO
dW1iZXJOb25lLmNwcCBcCiAJV2ViQ29yZS9wbGF0Zm9ybS90ZXh0L1BhcnNlclV0aWxpdGllcy5o
IFwKIAlXZWJDb3JlL3BsYXRmb3JtL3RleHQvUGxhdGZvcm1TdHJpbmcuaCBcCiAJV2ViQ29yZS9w
bGF0Zm9ybS90ZXh0L1JlZ3VsYXJFeHByZXNzaW9uLmNwcCBcCmRpZmYgLS1naXQgYS9XZWJDb3Jl
L1dlYkNvcmUuZ3lwaSBiL1dlYkNvcmUvV2ViQ29yZS5neXBpCmluZGV4IDMzNjdjZWUzOTg3ZjRm
YzcxNTUwMzc3NWIwMzJlZTljNWFlYjMzNTQuLjhlZDQ0MWRjMjZiMzhhMmJlOGJhYjQzOTRjNzk5
OGIzZDhhYjExMjMgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvV2ViQ29yZS5neXBpCisrKyBiL1dlYkNv
cmUvV2ViQ29yZS5neXBpCkBAIC0zMTM2LDYgKzMxMzYsOCBAQAogICAgICAgICAgICAgJ3BsYXRm
b3JtL3RleHQvSHlwaGVuYXRpb24uaCcsCiAgICAgICAgICAgICAncGxhdGZvcm0vdGV4dC9MaW5l
RW5kaW5nLmNwcCcsCiAgICAgICAgICAgICAncGxhdGZvcm0vdGV4dC9MaW5lRW5kaW5nLmgnLAor
ICAgICAgICAgICAgJ3BsYXRmb3JtL3RleHQvTG9jYWxpemVkTnVtYmVyLmgnLAorICAgICAgICAg
ICAgJ3BsYXRmb3JtL3RleHQvTG9jYWxpemVkTnVtYmVyTm9uZS5jcHAnLAogICAgICAgICAgICAg
J3BsYXRmb3JtL3RleHQvUGFyc2VyVXRpbGl0aWVzLmgnLAogICAgICAgICAgICAgJ3BsYXRmb3Jt
L3RleHQvUGxhdGZvcm1TdHJpbmcuaCcsCiAgICAgICAgICAgICAncGxhdGZvcm0vdGV4dC9SZWd1
bGFyRXhwcmVzc2lvbi5jcHAnLApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9XZWJDb3JlLnBybyBiL1dl
YkNvcmUvV2ViQ29yZS5wcm8KaW5kZXggNmJjZmVlZmU3Njc5ZTY3NTY5NzZiNDRmZTNkOTZiMmNi
N2ZhZmQxMy4uMmM2ZWNmNTNjMDI2MmU2MWY3Y2JkNmMxZmYwNTA2ZmYwYjg0OTE0MiAxMDA2NDQK
LS0tIGEvV2ViQ29yZS9XZWJDb3JlLnBybworKysgYi9XZWJDb3JlL1dlYkNvcmUucHJvCkBAIC0x
MTEzLDYgKzExMTMsNyBAQCBTT1VSQ0VTICs9IFwKICAgICBwbGF0Zm9ybS90ZXh0L0Jhc2U2NC5j
cHAgXAogICAgIHBsYXRmb3JtL3RleHQvQmlkaUNvbnRleHQuY3BwIFwKICAgICBwbGF0Zm9ybS90
ZXh0L0h5cGhlbmF0aW9uLmNwcCBcCisgICAgcGxhdGZvcm0vdGV4dC9Mb2NhbGl6ZWROdW1iZXJO
b25lLmNwcCBcCiAgICAgcGxhdGZvcm0vQ29udGVudFR5cGUuY3BwIFwKICAgICBwbGF0Zm9ybS9D
b250ZXh0TWVudS5jcHAgXAogICAgIHBsYXRmb3JtL0Nyb3NzVGhyZWFkQ29waWVyLmNwcCBcCmRp
ZmYgLS1naXQgYS9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qIGIvV2ViQ29y
ZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvagppbmRleCBmNTQ2YTA5YTYzOTkzOGQ2Y2Q2
NzU3ZDI1NDc2YTY0Yjc2N2UxMWZiLi5hZDQxYzVlMDBkNTFhMTJlOTI5OTY2ODk3YTU4Y2FmOGM4
ZGI1NDAxIDEwMDY0NAotLS0gYS9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9q
CisrKyBiL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2oKQEAgLTI4NTk0LDYg
KzI4NTk0LDE0IEBACiAJCQkJCT4NCiAJCQkJPC9GaWxlPg0KIAkJCQk8RmlsZQ0KKwkJCQkJUmVs
YXRpdmVQYXRoPSIuLlxwbGF0Zm9ybVx0ZXh0XExvY2FsaXplZE51bWJlci5oIg0KKwkJCQkJPg0K
KwkJCQk8L0ZpbGU+DQorCQkJCTxGaWxlDQorCQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXHBsYXRmb3Jt
XHRleHRcTG9jYWxpemVkTnVtYmVyTm9uZS5jcHAiDQorCQkJCQk+DQorCQkJCTwvRmlsZT4NCisJ
CQkJPEZpbGUNCiAJCQkJCVJlbGF0aXZlUGF0aD0iLi5ccGxhdGZvcm1cdGV4dFxQYXJzZXJVdGls
aXRpZXMuaCINCiAJCQkJCT4NCiAJCQkJPC9GaWxlPg0KZGlmZiAtLWdpdCBhL1dlYkNvcmUvV2Vi
Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJv
ai9wcm9qZWN0LnBieHByb2oKaW5kZXggOTRiM2NhMjI2ZmQ4MTU1MmMyY2UyMWRlMzRjNDBjZDYx
NDZkNDg4Mi4uYTZkYjVhZWUyOTcyMDcxOWZjODA4ZTYwOGJiMzhlNmMzMGUwNmQ0ZiAxMDA2NDQK
LS0tIGEvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvV2Vi
Q29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTU0NTMsNiArNTQ1Myw4
IEBACiAJCUYzRDQ2MTQ5MTE2MUQ1MzIwMENBMEQwOSAvKiBKU1dvcmtlckNvbnRleHRFcnJvckhh
bmRsZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEYz
RDQ2MTQ3MTE2MUQ1MzIwMENBMEQwOSAvKiBKU1dvcmtlckNvbnRleHRFcnJvckhhbmRsZXIuaCAq
LzsgfTsKIAkJRjRFQUY0QUUxMEM3NDJCMTAwOTEwMEQzIC8qIE9wZW5UeXBlU2FuaXRpemVyLmNw
cCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY0RUFGNEFD
MTBDNzQyQjEwMDkxMDBEMyAvKiBPcGVuVHlwZVNhbml0aXplci5jcHAgKi87IH07CiAJCUY0RUFG
NEFGMTBDNzQyQjEwMDkxMDBEMyAvKiBPcGVuVHlwZVNhbml0aXplci5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjRFQUY0QUQxMEM3NDJCMTAwOTEwMEQz
IC8qIE9wZW5UeXBlU2FuaXRpemVyLmggKi87IH07CisJCUY1MTQyQzY5MTIzRjEyQjAwMEY1QkQ0
QyAvKiBMb2NhbGl6ZWROdW1iZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IEY1MTQyQzY4MTIzRjEyQjAwMEY1QkQ0QyAvKiBMb2NhbGl6ZWROdW1iZXIu
aCAqLzsgfTsKKwkJRjUxNDJDNkIxMjNGMTJDNTAwRjVCRDRDIC8qIExvY2FsaXplZE51bWJlck5v
bmUuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjUx
NDJDNkExMjNGMTJDNTAwRjVCRDRDIC8qIExvY2FsaXplZE51bWJlck5vbmUuY3BwICovOyB9Owog
CQlGNTVCM0RBRDEyNTFGMTJEMDAzRUYyNjkgLyogQmFzZVRleHRJbnB1dFR5cGUuY3BwIGluIFNv
dXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjU1QjNENzkxMjUxRjEy
RDAwM0VGMjY5IC8qIEJhc2VUZXh0SW5wdXRUeXBlLmNwcCAqLzsgfTsKIAkJRjU1QjNEQUUxMjUx
RjEyRDAwM0VGMjY5IC8qIEJhc2VUZXh0SW5wdXRUeXBlLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNTVCM0Q3QTEyNTFGMTJEMDAzRUYyNjkgLyogQmFz
ZVRleHRJbnB1dFR5cGUuaCAqLzsgfTsKIAkJRjU1QjNEQUYxMjUxRjEyRDAwM0VGMjY5IC8qIEJ1
dHRvbklucHV0VHlwZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSBGNTVCM0Q3QjEyNTFGMTJEMDAzRUYyNjkgLyogQnV0dG9uSW5wdXRUeXBlLmNwcCAq
LzsgfTsKQEAgLTExNDY5LDYgKzExNDcxLDggQEAKIAkJRjNENDYxNDcxMTYxRDUzMjAwQ0EwRDA5
IC8qIEpTV29ya2VyQ29udGV4dEVycm9ySGFuZGxlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBKU1dvcmtlckNvbnRleHRFcnJvckhhbmRsZXIuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJRjRFQUY0QUMxMEM3NDJCMTAwOTEwMEQzIC8qIE9wZW5UeXBlU2FuaXRp
emVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IE9wZW5UeXBlU2Fu
aXRpemVyLmNwcDsgcGF0aCA9IG9wZW50eXBlL09wZW5UeXBlU2FuaXRpemVyLmNwcDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRjRFQUY0QUQxMEM3NDJCMTAwOTEwMEQzIC8qIE9wZW5U
eXBlU2FuaXRpemVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IE9wZW5UeXBl
U2FuaXRpemVyLmg7IHBhdGggPSBvcGVudHlwZS9PcGVuVHlwZVNhbml0aXplci5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OworCQlGNTE0MkM2ODEyM0YxMkIwMDBGNUJENEMgLyogTG9jYWxp
emVkTnVtYmVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IExvY2FsaXplZE51
bWJlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlGNTE0MkM2QTEyM0YxMkM1MDBG
NUJENEMgLyogTG9jYWxpemVkTnVtYmVyTm9uZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5jcHA7IHBhdGggPSBMb2NhbGl6ZWROdW1iZXJOb25lLmNwcDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJRjUyM0QyM0IwMkRFNDM5NjAxODYzNUNBIC8qIEhUTUxEb2N1bWVudC5jcHAg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGluZGVudFdp
ZHRoID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBI
VE1MRG9jdW1lbnQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB0YWJXaWR0aCA9IDg7IHVz
ZXNUYWJzID0gMDsgfTsKIAkJRjUyM0QyM0MwMkRFNDM5NjAxODYzNUNBIC8qIEhUTUxEb2N1bWVu
dC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBpbmRl
bnRXaWR0aCA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBI
VE1MRG9jdW1lbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgdGFiV2lkdGggPSA4OyB1c2Vz
VGFicyA9IDA7IH07CiAJCUY1MjNEMjNFMDJERTQzOTYwMTg2MzVDQSAvKiBIVE1MRWxlbWVudC5j
cHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGluZGVu
dFdpZHRoID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGgg
PSBIVE1MRWxlbWVudC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IHRhYldpZHRoID0gODsg
dXNlc1RhYnMgPSAwOyB9OwpAQCAtMTY1NjAsNiArMTY1NjQsOCBAQAogCQkJCTM3NUNEMjMxMTE5
RDQzQzgwMEEyQTg1OSAvKiBIeXBoZW5hdGlvbi5oICovLAogCQkJCTg5QjVFQTlGMTFFODAwM0Qw
MEYyMzY3RSAvKiBMaW5lRW5kaW5nLmNwcCAqLywKIAkJCQk4OUI1RUFBMDExRTgwMDNEMDBGMjM2
N0UgLyogTGluZUVuZGluZy5oICovLAorCQkJCUY1MTQyQzY4MTIzRjEyQjAwMEY1QkQ0QyAvKiBM
b2NhbGl6ZWROdW1iZXIuaCAqLywKKwkJCQlGNTE0MkM2QTEyM0YxMkM1MDBGNUJENEMgLyogTG9j
YWxpemVkTnVtYmVyTm9uZS5jcHAgKi8sCiAJCQkJQkM3NkFDMTEwREQ3QUQ1QzAwNDE1RjM0IC8q
IFBhcnNlclV0aWxpdGllcy5oICovLAogCQkJCUIyQzNEOUZCMEQwMDZDMUQwMEVGNkYyNiAvKiBQ
bGF0Zm9ybVN0cmluZy5oICovLAogCQkJCUIyQzNEOUZDMEQwMDZDMUQwMEVGNkYyNiAvKiBSZWd1
bGFyRXhwcmVzc2lvbi5jcHAgKi8sCkBAIC0yMDE3Niw2ICsyMDE4Miw3IEBACiAJCQkJMDZFODFF
RDcwQUI1RDVFOTAwQzg3ODM3IC8qIExvY2FsQ3VycmVudEdyYXBoaWNzQ29udGV4dC5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJODk4Nzg1NjgxMjJDQTA2NDAwM0FBQkRBIC8qIExvY2FsRmlsZVN5c3Rl
bS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkM1Q0ZDQTkxMUY3OTMzMjAwOTlFRDA5IC8qIExvY2Fs
aXphdGlvblN0cmF0ZWd5LmggaW4gSGVhZGVycyAqLywKKwkJCQlGNTE0MkM2OTEyM0YxMkIwMDBG
NUJENEMgLyogTG9jYWxpemVkTnVtYmVyLmggaW4gSGVhZGVycyAqLywKIAkJCQk5MzUyMDdCRTA5
QkQ0MTBBMDBGMjAzOEQgLyogTG9jYWxpemVkU3RyaW5ncy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
NTExRjIzMTgwREMxNjBEQTAwNEYwMDMyIC8qIExvY2FsU3RvcmFnZVRhc2suaCBpbiBIZWFkZXJz
ICovLAogCQkJCTUxMUYyMzFBMERDMTYwREEwMDRGMDAzMiAvKiBMb2NhbFN0b3JhZ2VUaHJlYWQu
aCBpbiBIZWFkZXJzICovLApAQCAtMjI4NDEsNiArMjI4NDgsNyBAQAogCQkJCTY1NkQzNzMzMEFE
QkE1REUwMEE0NTU0RCAvKiBMb2FkZXJOU1VSTEV4dHJhcy5tbSBpbiBTb3VyY2VzICovLAogCQkJ
CTA2RTgxRUVDMEFCNURBOTcwMEM4NzgzNyAvKiBMb2NhbEN1cnJlbnRHcmFwaGljc0NvbnRleHQu
bW0gaW4gU291cmNlcyAqLywKIAkJCQk4OTg3ODU2NzEyMkNBMDY0MDAzQUFCREEgLyogTG9jYWxG
aWxlU3lzdGVtLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCUY1MTQyQzZCMTIzRjEyQzUwMEY1QkQ0
QyAvKiBMb2NhbGl6ZWROdW1iZXJOb25lLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUMwNDZFMUFD
MTIwOEE5RkUwMEJBMkNGNyAvKiBMb2NhbGl6ZWRTdHJpbmdzLmNwcCBpbiBTb3VyY2VzICovLAog
CQkJCTUxMUYyMzE3MERDMTYwREEwMDRGMDAzMiAvKiBMb2NhbFN0b3JhZ2VUYXNrLmNwcCBpbiBT
b3VyY2VzICovLAogCQkJCTUxMUYyMzE5MERDMTYwREEwMDRGMDAzMiAvKiBMb2NhbFN0b3JhZ2VU
aHJlYWQuY3BwIGluIFNvdXJjZXMgKi8sCmRpZmYgLS1naXQgYS9XZWJDb3JlL2RvbS9JbnB1dEVs
ZW1lbnQuaCBiL1dlYkNvcmUvZG9tL0lucHV0RWxlbWVudC5oCmluZGV4IGQ1Y2UyMTJkZmEzNWY3
ZDNlOWQyNTA5MWE2N2FmOTUzNTAzY2E1NTguLmQzMDQwNjRmYzUyNzU2MWFlN2FmZmYyYTU1NDhj
ZWU2MTNlNzkyMTkgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvZG9tL0lucHV0RWxlbWVudC5oCisrKyBi
L1dlYkNvcmUvZG9tL0lucHV0RWxlbWVudC5oCkBAIC01OSw2ICs1OSw3IEBAIHB1YmxpYzoKICAg
ICB2aXJ0dWFsIFN0cmluZyB2YWx1ZSgpIGNvbnN0ID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgc2V0
VmFsdWUoY29uc3QgU3RyaW5nJiwgYm9vbCBzZW5kQ2hhbmdlRXZlbnQgPSBmYWxzZSkgPSAwOwog
ICAgIHZpcnR1YWwgdm9pZCBzZXRWYWx1ZUZvclVzZXIoY29uc3QgU3RyaW5nJikgPSAwOworICAg
IHZpcnR1YWwgU3RyaW5nIHZpc2libGVWYWx1ZSgpIGNvbnN0ID0gMDsKIAogICAgIC8vIFJldHVy
bnMgdHJ1ZSBpZiB0aGUgc3BlY2lmaWVkIHN0cmluZyBjYW4gYmUgc2V0IGFzIHRoZSB2YWx1ZSBv
ZiBJbnB1dEVsZW1lbnQuCiAgICAgdmlydHVhbCBib29sIGlzQWNjZXB0YWJsZVZhbHVlKGNvbnN0
IFN0cmluZyYpIGNvbnN0ID0gMDsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvaHRtbC9IVE1MSW5wdXRF
bGVtZW50LmNwcCBiL1dlYkNvcmUvaHRtbC9IVE1MSW5wdXRFbGVtZW50LmNwcAppbmRleCA0ZDVj
ZDY0Y2I0ZDAxZmMwMTI5NTMxZmYzYjAzM2MwMjc5ZDNiZWQ2Li42ZDQ2ZjA5YWIwNmUzYjk0NmY1
MTZkN2Q4YjcwYzkxNWM4MDAwNzg2IDEwMDY0NAotLS0gYS9XZWJDb3JlL2h0bWwvSFRNTElucHV0
RWxlbWVudC5jcHAKKysrIGIvV2ViQ29yZS9odG1sL0hUTUxJbnB1dEVsZW1lbnQuY3BwCkBAIC01
Myw2ICs1Myw3IEBACiAjaW5jbHVkZSAiSFRNTFBhcnNlcklkaW9tcy5oIgogI2luY2x1ZGUgIklu
cHV0VHlwZS5oIgogI2luY2x1ZGUgIktleWJvYXJkRXZlbnQuaCIKKyNpbmNsdWRlICJMb2NhbGl6
ZWROdW1iZXIuaCIKICNpbmNsdWRlICJMb2NhbGl6ZWRTdHJpbmdzLmgiCiAjaW5jbHVkZSAiTW91
c2VFdmVudC5oIgogI2luY2x1ZGUgIlBhZ2UuaCIKQEAgLTg5LDggKzkwLDcgQEAgc3RhdGljIGNv
bnN0IGNoYXIgZW1haWxQYXR0ZXJuW10gPQogCiBzdGF0aWMgYm9vbCBpc051bWJlckNoYXJhY3Rl
cihVQ2hhciBjaCkKIHsKLSAgICByZXR1cm4gY2ggPT0gJysnIHx8IGNoID09ICctJyB8fCBjaCA9
PSAnLicgfHwgY2ggPT0gJ2UnIHx8IGNoID09ICdFJwotICAgICAgICB8fCAoY2ggPj0gJzAnICYm
IGNoIDw9ICc5Jyk7CisgICAgcmV0dXJuIGlzTG9jYWxpemVkTnVtYmVyQ2hhcmFjdGVyKGNoKSB8
fCBjaCA9PSAnKycgfHwgY2ggPT0gJy0nIHx8IGNoID09ICcuJyB8fCBjaCA9PSAnZScgfHwgY2gg
PT0gJ0UnIHx8IChjaCA+PSAnMCcgJiYgY2ggPD0gJzknKTsKIH0KIAogc3RhdGljIGJvb2wgaXNW
YWxpZENvbG9yU3RyaW5nKGNvbnN0IFN0cmluZyYgdmFsdWUpCkBAIC0yMDI0LDE3ICsyMDI0LDM0
IEBAIEZpbGVMaXN0KiBIVE1MSW5wdXRFbGVtZW50OjpmaWxlcygpCiAgICAgcmV0dXJuIG1fZmls
ZUxpc3QuZ2V0KCk7CiB9CiAKK1N0cmluZyBIVE1MSW5wdXRFbGVtZW50Ojp2aXNpYmxlVmFsdWUo
KSBjb25zdAoreworICAgIFN0cmluZyBjdXJyZW50VmFsdWUgPSB2YWx1ZSgpOworICAgIGlmIChk
ZXByZWNhdGVkSW5wdXRUeXBlKCkgIT0gTlVNQkVSKQorICAgICAgICByZXR1cm4gY3VycmVudFZh
bHVlOworICAgIGlmIChjdXJyZW50VmFsdWUuaXNFbXB0eSgpKQorICAgICAgICByZXR1cm4gY3Vy
cmVudFZhbHVlOworICAgIGRvdWJsZSBkb3VibGVWYWx1ZSA9IG51bWVyaWNfbGltaXRzPGRvdWJs
ZT46OnF1aWV0X05hTigpOworICAgIHBhcnNlVG9Eb3VibGVGb3JOdW1iZXJUeXBlKGN1cnJlbnRW
YWx1ZSwgJmRvdWJsZVZhbHVlKTsKKyAgICBTdHJpbmcgbG9jYWxpemVkID0gZm9ybWF0TG9jYWxp
emVkTnVtYmVyKGRvdWJsZVZhbHVlKTsKKyAgICByZXR1cm4gbG9jYWxpemVkLmlzRW1wdHkoKSA/
IGN1cnJlbnRWYWx1ZSA6IGxvY2FsaXplZDsKK30KKwogYm9vbCBIVE1MSW5wdXRFbGVtZW50Ojpp
c0FjY2VwdGFibGVWYWx1ZShjb25zdCBTdHJpbmcmIHByb3Bvc2VkVmFsdWUpIGNvbnN0CiB7CiAg
ICAgaWYgKGRlcHJlY2F0ZWRJbnB1dFR5cGUoKSAhPSBOVU1CRVIpCiAgICAgICAgIHJldHVybiB0
cnVlOwotICAgIHJldHVybiBwcm9wb3NlZFZhbHVlLmlzRW1wdHkoKSB8fCBwYXJzZVRvRG91Ymxl
Rm9yTnVtYmVyVHlwZShwcm9wb3NlZFZhbHVlLCAwKTsKKyAgICByZXR1cm4gcHJvcG9zZWRWYWx1
ZS5pc0VtcHR5KCkgfHwgaXNmaW5pdGUocGFyc2VMb2NhbGl6ZWROdW1iZXIocHJvcG9zZWRWYWx1
ZSkpIHx8IHBhcnNlVG9Eb3VibGVGb3JOdW1iZXJUeXBlKHByb3Bvc2VkVmFsdWUsIDApOwogfQog
CiBTdHJpbmcgSFRNTElucHV0RWxlbWVudDo6c2FuaXRpemVWYWx1ZShjb25zdCBTdHJpbmcmIHBy
b3Bvc2VkVmFsdWUpIGNvbnN0CiB7Ci0gICAgaWYgKGRlcHJlY2F0ZWRJbnB1dFR5cGUoKSA9PSBO
VU1CRVIpCisgICAgaWYgKGRlcHJlY2F0ZWRJbnB1dFR5cGUoKSA9PSBOVU1CRVIpIHsKKyAgICAg
ICAgZG91YmxlIHBhcnNlZFZhbHVlID0gcGFyc2VMb2NhbGl6ZWROdW1iZXIocHJvcG9zZWRWYWx1
ZSk7CisgICAgICAgIGlmIChpc2Zpbml0ZShwYXJzZWRWYWx1ZSkpCisgICAgICAgICAgICByZXR1
cm4gc2VyaWFsaXplRm9yTnVtYmVyVHlwZShwYXJzZWRWYWx1ZSk7CiAgICAgICAgIHJldHVybiBw
YXJzZVRvRG91YmxlRm9yTnVtYmVyVHlwZShwcm9wb3NlZFZhbHVlLCAwKSA/IHByb3Bvc2VkVmFs
dWUgOiBTdHJpbmcoKTsKKyAgICB9CiAKICAgICBpZiAoaXNUZXh0RmllbGQoKSkKICAgICAgICAg
cmV0dXJuIElucHV0RWxlbWVudDo6c2FuaXRpemVWYWx1ZUZvclRleHRGaWVsZCh0aGlzLCBwcm9w
b3NlZFZhbHVlKTsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvaHRtbC9IVE1MSW5wdXRFbGVtZW50Lmgg
Yi9XZWJDb3JlL2h0bWwvSFRNTElucHV0RWxlbWVudC5oCmluZGV4IGU0ZTAzNDA2ZDYwYjUxYTlh
ZmE1MDcyYWY1MTlhN2VhYjdkNzEwZDcuLmJjY2MxZDllMTViNDc0OWI2M2VmNmI1YjNmZDE4OWZl
YzA2ZjhjMjggMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvaHRtbC9IVE1MSW5wdXRFbGVtZW50LmgKKysr
IGIvV2ViQ29yZS9odG1sL0hUTUxJbnB1dEVsZW1lbnQuaApAQCAtMjkxLDYgKzI5MSw3IEBAIHBy
aXZhdGU6CiAKICAgICB2aXJ0dWFsIHZvaWQgY2FjaGVTZWxlY3Rpb24oaW50IHN0YXJ0LCBpbnQg
ZW5kKTsKIAorICAgIHZpcnR1YWwgU3RyaW5nIHZpc2libGVWYWx1ZSgpIGNvbnN0OwogICAgIHZp
cnR1YWwgYm9vbCBpc0FjY2VwdGFibGVWYWx1ZShjb25zdCBTdHJpbmcmKSBjb25zdDsKICAgICB2
aXJ0dWFsIFN0cmluZyBzYW5pdGl6ZVZhbHVlKGNvbnN0IFN0cmluZyYpIGNvbnN0OwogICAgIHZp
cnR1YWwgYm9vbCBoYXNVbmFjY2VwdGFibGVWYWx1ZSgpIGNvbnN0OwpkaWZmIC0tZ2l0IGEvV2Vi
Q29yZS9wbGF0Zm9ybS90ZXh0L0xvY2FsaXplZE51bWJlci5oIGIvV2ViQ29yZS9wbGF0Zm9ybS90
ZXh0L0xvY2FsaXplZE51bWJlci5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjJjNGQxNTUxMDVkY2E0MTMxYTAzNzRk
ZjAyOGY0MWVmZDkyNzU4NTgKLS0tIC9kZXYvbnVsbAorKysgYi9XZWJDb3JlL3BsYXRmb3JtL3Rl
eHQvTG9jYWxpemVkTnVtYmVyLmgKQEAgLTAsMCArMSw1OSBAQAorLyoKKyAqIENvcHlyaWdodCAo
QykgMjAxMCBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zIGFyZQorICogbWV0OgorICoKKyAqICAgICAqIFJlZGlzdHJpYnV0aW9u
cyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIu
CisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2Ug
dGhlIGFib3ZlCisgKiBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCisgKiBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQv
b3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCisgKiBkaXN0cmlidXRpb24uCisg
KiAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2Yg
aXRzCisgKiBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHBy
b2R1Y3RzIGRlcml2ZWQgZnJvbQorICogdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHBy
aW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVE
IEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCisgKiAiQVMgSVMiIEFO
RCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAor
ICogTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkg
QU5EIEZJVE5FU1MgRk9SCisgKiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4g
SU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAorICogT1dORVIgT1IgQ09OVFJJQlVUT1JT
IEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCisgKiBTUEVD
SUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQg
Tk9UCisgKiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNF
UlZJQ0VTOyBMT1NTIE9GIFVTRSwKKyAqIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElO
VEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQorICogVEhFT1JZIE9GIExJQUJJ
TElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICog
KElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9V
VCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhF
IFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5kZWYgTG9jYWxpemVkTnVt
YmVyX2gKKyNkZWZpbmUgTG9jYWxpemVkTnVtYmVyX2gKKworI2luY2x1ZGUgPHd0Zi90ZXh0L1dU
RlN0cmluZy5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKKy8vIFBhcnNlcyBhIHN0cmluZyBy
ZXByZXNlbnRhdGlvbiBvZiBhIGZsb2F0aW5nIHBvaW50IG51bWJlciBsb2NhbGl6ZWQKKy8vIGZv
ciB0aGUgYnJvd3NlcidzIGN1cnJlbnQgbG9jYWxlLiBJZiB0aGUgaW5wdXQgc3RyaW5nIGlzIG5v
dCB2YWxpZAorLy8gb3IgYW4gaW1wbGVtZW50YXRpb24gZG9lc24ndCBzdXBwb3J0IGxvY2FsaXpl
ZCBudW1iZXJzLCB0aGlzCisvLyBmdW5jdGlvbiByZXR1cm5zIE5hTi4gVGhpcyBmdW5jdGlvbiBk
b2Vzbid0IG5lZWQgdG8gc3VwcG9ydAorLy8gc2NpZW50aWZpYyBub3RhdGlvbiwgTmFOLCArSW5m
aW5pdHkgYW5kIC1JbmZpbml0eSwgYW5kIGRvZXNuJ3QgbmVlZAorLy8gdG8gc3VwcG9ydCB0aGUg
c3RhbmRhcmQgcmVwcmVzZW50YXRpb25zIG9mIEVDTUFTY3JpcHQgYW5kIEhUTUw1LgorZG91Ymxl
IHBhcnNlTG9jYWxpemVkTnVtYmVyKGNvbnN0IFN0cmluZyYpOworCisvLyBTZXJpYWxpemVzIHRo
ZSBzcGVjaWZpZWQgZmxvYXRpbmcgcG9pbnQgbnVtYmVyIGZvciB0aGUgYnJvd3NlcidzCisvLyBj
dXJyZW50IGxvY2FsZS4gIElmIGFuIGltcGxlbWVudGF0aW9uIGRvZXNuJ3Qgc3VwcG9ydCBsb2Nh
bGl6ZWQKKy8vIG51bWJlcnMgb3IgdGhlIGlucHV0IHZhbHVlIGlzIE5hTiBvciBJbmZpbml0aXks
IHRoZSBmdW5jdGlvbiBzaG91bGQKKy8vIHJldHVybiBhbiBlbXB0eSBzdHJpbmcuCitTdHJpbmcg
Zm9ybWF0TG9jYWxpemVkTnVtYmVyKGRvdWJsZSk7CisKKy8vIFJldHVybnMgdHJ1ZSBpZiB0aGUg
aW5wdXQgY2hhcmFjdGVyIGNhbiBiZSB1c2VkIHRvIHJlcHJlc2VudCBhCisvLyBudW1iZXIgaW4g
dGhlIGJyb3dzZXIgbG9jYWxlLiBGb3IgZXhhbXBsZSwgdGhpcyBzaG91bGQgcmV0dXJuIHRydWUg
Zm9yIDAtOSAuCisvLyAsICsgLSBmb3IgZW4tVVMgbG9jYWxlLgorYm9vbCBpc0xvY2FsaXplZE51
bWJlckNoYXJhY3RlcihVQ2hhcjMyKTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5k
aWYgLy8gTG9jYWxpemVkTnVtYmVyX2gKZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGxhdGZvcm0vdGV4
dC9Mb2NhbGl6ZWROdW1iZXJOb25lLmNwcCBiL1dlYkNvcmUvcGxhdGZvcm0vdGV4dC9Mb2NhbGl6
ZWROdW1iZXJOb25lLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5mZjM5OGVmNTgxYTBiZWZjMzY3NjY3ODYzMjg5
YjdiMWE4ZjZjZTdmCi0tLSAvZGV2L251bGwKKysrIGIvV2ViQ29yZS9wbGF0Zm9ybS90ZXh0L0xv
Y2FsaXplZE51bWJlck5vbmUuY3BwCkBAIC0wLDAgKzEsNTUgQEAKKy8qCisgKiBDb3B5cmlnaHQg
KEMpIDIwMTAgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucyBhcmUKKyAqIG1ldDoKKyAqCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlv
bnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
LgorICogICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNl
IHRoZSBhYm92ZQorICogY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgorICogaW4gdGhlIGRvY3VtZW50YXRpb24gYW5k
L29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQorICogZGlzdHJpYnV0aW9uLgor
ICogICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9m
IGl0cworICogY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBw
cm9kdWN0cyBkZXJpdmVkIGZyb20KKyAqIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBw
cmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURF
RCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUworICogIkFTIElTIiBB
TkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QK
KyAqIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZ
IEFORCBGSVRORVNTIEZPUgorICogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQu
IElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKKyAqIE9XTkVSIE9SIENPTlRSSUJVVE9S
UyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAorICogU1BF
Q0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVU
IE5PVAorICogTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBT
RVJWSUNFUzsgTE9TUyBPRiBVU0UsCisgKiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJ
TlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKKyAqIFRIRU9SWSBPRiBMSUFC
SUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAq
IChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBP
VVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRI
RSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgi
CisjaW5jbHVkZSAiTG9jYWxpemVkTnVtYmVyLmgiCisKKyNpbmNsdWRlIDxsaW1pdHM+CisKK3Vz
aW5nIG5hbWVzcGFjZSBzdGQ7CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworZG91YmxlIHBhcnNl
TG9jYWxpemVkTnVtYmVyKGNvbnN0IFN0cmluZyYpCit7CisgICAgcmV0dXJuIG51bWVyaWNfbGlt
aXRzPGRvdWJsZT46OnF1aWV0X05hTigpOworfQorCitTdHJpbmcgZm9ybWF0TG9jYWxpemVkTnVt
YmVyKGRvdWJsZSkKK3sKKyAgICByZXR1cm4gU3RyaW5nKCk7Cit9CisKK2Jvb2wgaXNMb2NhbGl6
ZWROdW1iZXJDaGFyYWN0ZXIoVUNoYXIzMikKK3sKKyAgICByZXR1cm4gZmFsc2U7Cit9CisKK30g
Ly8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
clRleHRDb250cm9sU2luZ2xlTGluZS5jcHAgYi9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUZXh0
Q29udHJvbFNpbmdsZUxpbmUuY3BwCmluZGV4IDIyMTExMTBhYmUzMjg3YjFiMDQwZTcxOWFjMTFm
NWMwMjVmZjc2YzguLmIwY2IxMzY3MGQ3MjQ3OTY0NjUzM2I0MTZjMTNhODZmNDYwZGYyNmMgMTAw
NjQ0Ci0tLSBhL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRleHRDb250cm9sU2luZ2xlTGluZS5j
cHAKKysrIGIvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGV4dENvbnRyb2xTaW5nbGVMaW5lLmNw
cApAQCAtNjkzLDcgKzY5Myw3IEBAIHZvaWQgUmVuZGVyVGV4dENvbnRyb2xTaW5nbGVMaW5lOjp1
cGRhdGVGcm9tRWxlbWVudCgpCiAgICAgICAgICAgICAgICAgc2hvdWxkVXBkYXRlVmFsdWUgPSBz
dGF0aWNfY2FzdDxIVE1MVGV4dEZvcm1Db250cm9sRWxlbWVudCo+KG5vZGUoKSktPnN1cHBvcnRz
UGxhY2Vob2xkZXIoKSB8fCAhc3RhdGljX2Nhc3Q8SFRNTElucHV0RWxlbWVudCo+KG5vZGUoKSkt
PmZvcm1Db250cm9sVmFsdWVNYXRjaGVzUmVuZGVyZXIoKTsKICAgICAgICAgICAgIH0KICAgICAg
ICAgICAgIGlmIChzaG91bGRVcGRhdGVWYWx1ZSkKLSAgICAgICAgICAgICAgICBzZXRJbm5lclRl
eHRWYWx1ZShpbnB1dEVsZW1lbnQoKS0+dmFsdWUoKSk7CisgICAgICAgICAgICAgICAgc2V0SW5u
ZXJUZXh0VmFsdWUoaW5wdXRFbGVtZW50KCktPnZpc2libGVWYWx1ZSgpKTsKICAgICAgICAgfQog
ICAgIH0KIApkaWZmIC0tZ2l0IGEvV2ViQ29yZS93bWwvV01MSW5wdXRFbGVtZW50LmggYi9XZWJD
b3JlL3dtbC9XTUxJbnB1dEVsZW1lbnQuaAppbmRleCBkZjdmNDk3MmI3MmNiZTg4NDIwZGFhOGRh
YTUxYTZmNWYzNDRhMDIyLi42YzY2NDEwYmNmNzZhOWVmZmIxOGVlNTM5ZGIwYTYxNzk4OWEyNTNl
IDEwMDY0NAotLS0gYS9XZWJDb3JlL3dtbC9XTUxJbnB1dEVsZW1lbnQuaAorKysgYi9XZWJDb3Jl
L3dtbC9XTUxJbnB1dEVsZW1lbnQuaApAQCAtNjMsNiArNjMsNyBAQCBwdWJsaWM6CiAgICAgdmly
dHVhbCBTdHJpbmcgdmFsdWUoKSBjb25zdDsKICAgICB2aXJ0dWFsIHZvaWQgc2V0VmFsdWUoY29u
c3QgU3RyaW5nJiwgYm9vbCBzZW5kQ2hhbmdlRXZlbnQgPSBmYWxzZSk7CiAgICAgdmlydHVhbCB2
b2lkIHNldFZhbHVlRm9yVXNlcihjb25zdCBTdHJpbmcmKTsKKyAgICB2aXJ0dWFsIFN0cmluZyB2
aXNpYmxlVmFsdWUoKSBjb25zdCB7IHJldHVybiB2YWx1ZSgpOyB9CiAgICAgdmlydHVhbCB2b2lk
IHNldFZhbHVlRnJvbVJlbmRlcmVyKGNvbnN0IFN0cmluZyYpOwogCiAgICAgdmlydHVhbCBib29s
IHNhdmVGb3JtQ29udHJvbFN0YXRlKFN0cmluZyYgdmFsdWUpIGNvbnN0Owo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>70515</attachid>
            <date>2010-10-12 00:17:17 -0700</date>
            <delta_ts>2010-11-01 23:16:50 -0700</delta_ts>
            <desc>Patch rev.4</desc>
            <filename>bug-45730-20101012161715.patch</filename>
            <type>text/plain</type>
            <size>21530</size>
            <attacher name="Kent Tamura">tkent</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQW5kcm9pZC5tayBiL1dlYkNvcmUvQW5kcm9pZC5tawppbmRl
eCA3YWYyMTQ4ZmQ2NDBkYTIyZGM0NWRmYTIxMGRiZGM3MWEwMjQzYTYyLi4xOTU2NzI4Y2Q1MTc4
MDA3ODQwOGFiNDdiMDQ4MWUxNWYwN2RiOGNlIDEwMDY0NAotLS0gYS9XZWJDb3JlL0FuZHJvaWQu
bWsKKysrIGIvV2ViQ29yZS9BbmRyb2lkLm1rCkBAIC02MDMsNiArNjAzLDcgQEAgTE9DQUxfU1JD
X0ZJTEVTIDo9ICQoTE9DQUxfU1JDX0ZJTEVTKSBcCiAJcGxhdGZvcm0vdGV4dC9CYXNlNjQuY3Bw
IFwKIAlwbGF0Zm9ybS90ZXh0L0JpZGlDb250ZXh0LmNwcCBcCiAJcGxhdGZvcm0vdGV4dC9IeXBo
ZW5hdGlvbi5jcHAgXAorCXBsYXRmb3JtL3RleHQvTG9jYWxpemVkTnVtYmVyTm9uZS5jcHAgXAog
CXBsYXRmb3JtL3RleHQvUmVndWxhckV4cHJlc3Npb24uY3BwIFwKIAlwbGF0Zm9ybS90ZXh0L1Nl
Z21lbnRlZFN0cmluZy5jcHAgXAogCXBsYXRmb3JtL3RleHQvU3RyaW5nLmNwcCBcCmRpZmYgLS1n
aXQgYS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0IGIvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dAppbmRl
eCA1MzMxZWFlZDhjZTU1YzhjN2YyNmIxODdiNDY3Y2U0MTUyOWEzMTI3Li4wOGEwMGJlODE5ZDEw
NTAyOWJhOWYxYjA3Y2RmNTEwODgyMDVlNGQ2IDEwMDY0NAotLS0gYS9XZWJDb3JlL0NNYWtlTGlz
dHMudHh0CisrKyBiL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKQEAgLTEzNTcsNiArMTM1Nyw3IEBA
IFNFVChXZWJDb3JlX1NPVVJDRVMKICAgICBwbGF0Zm9ybS90ZXh0L0Jhc2U2NC5jcHAKICAgICBw
bGF0Zm9ybS90ZXh0L0JpZGlDb250ZXh0LmNwcAogICAgIHBsYXRmb3JtL3RleHQvTGluZUVuZGlu
Zy5jcHAKKyAgICBwbGF0Zm9ybS90ZXh0L0xvY2FsaXplZE51bWJlck5vbmUuY3BwCiAgICAgcGxh
dGZvcm0vdGV4dC9IeXBoZW5hdGlvbi5jcHAKICAgICBwbGF0Zm9ybS90ZXh0L1JlZ3VsYXJFeHBy
ZXNzaW9uLmNwcAogICAgIHBsYXRmb3JtL3RleHQvU2VnbWVudGVkU3RyaW5nLmNwcApkaWZmIC0t
Z2l0IGEvV2ViQ29yZS9DaGFuZ2VMb2cgYi9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCA2MGM1Nzlh
YjJkNzgwZmJkYWJmYjdiODkwMWMzMGNmZDAzMGI5YWQ3Li44YjU0N2MxYTYzNTRjNjg3OTlhZmJi
MmJhZjIzMTY3ZmI2NzczYjAzIDEwMDY0NAotLS0gYS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9X
ZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDUzIEBACisyMDEwLTA5LTEzICBLZW50IFRhbXVy
YSAgPHRrZW50QGNocm9taXVtLm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICBBUEkgdG8gc3VwcG9ydCBsb2NhbGl6ZWQgbnVtYmVycyBmb3IgPGlu
cHV0IHR5cGU9bnVtYmVyPgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9NDU3MzAKKworICAgICAgICBJbnRyb2R1Y2UgcGxhdGZvcm0vdGV4dC9Mb2NhbGl6
ZWROdW1iZXIuaCwgYW5kCisgICAgICAgIExvY2FsaXplZE51bWJlck5vbmUuY3BwLCB3aGljaCBp
cyBhbiBlbXB0eSBpbXBsZW1lbnRhdGlvbiBvZiB0aGUKKyAgICAgICAgZnVuY3Rpb25zIGluIExv
Y2FsaXplZE51bWJlci5oLiAgV2UgdXNlIExvY2FsaXplZE51bWJlck5vbmUuY3BwIGluCisgICAg
ICAgIGFsbCBwbGF0Zm9ybXMgZm9yIG5vdy4KKworICAgICAgICBBIHN0cmluZyBpbiBhIHR5cGU9
bnVtYmVyIGZpZWxkIGlzIHBhcnNlZCBhcyBhIGxvY2FsaXplZCBudW1iZXIKKyAgICAgICAgZmly
c3QuIElmIHRoZSBwYXJzaW5nIGZhaWxzLCBpdCBpcyBwYXJzZWQgYXMgdGhlIEhUTUw1IG51bWJl
ci4KKworICAgICAgICBXZSBpbnRyb2R1Y2UgSFRNTElucHV0RWxlbWVudDo6dmlzaWJsZVZhbHVl
KCkuIEl0IHJlcHJlc2VudHMgYSB2YWx1ZQorICAgICAgICB3aGljaCBzaG91bGQgYmUgZHJhd24g
YnkgYSByZW5kZXJlci4gSFRNTElucHV0RWxlbWVudDo6dmFsdWUoKSBhbHdheXMKKyAgICAgICAg
cmV0dXJucyBhIG51bWJlciBmb3JtYXR0ZWQgZm9yIEhUTUw1LCBhbmQgdmlzaWJsZVZhbHVlKCkg
bWF5IHJldHVybiBhCisgICAgICAgIGxvY2FsaXplZCBudW1iZXIuCisKKyAgICAgICAgTm8gbmV3
IHRlc3RzIGJlY2F1c2UgdGhpcyBkb2Vzbid0IGNoYW5nZSBhbnkgYmVoYXZpb3IuCisKKyAgICAg
ICAgKiBBbmRyb2lkLm1rOiBBZGQgTG9jYWxpemVkTnVtYmVyLmggYW5kL29yIExvY2FsaXplZE51
bWJlck5vbmUuY3BwLgorICAgICAgICAqIENNYWtlTGlzdHMudHh0OiBkaXR0by4KKyAgICAgICAg
KiBHTlVtYWtlZmlsZS5hbTogZGl0dG8uCisgICAgICAgICogV2ViQ29yZS5neXBpOiBkaXR0by4K
KyAgICAgICAgKiBXZWJDb3JlLnBybzogZGl0dG8uCisgICAgICAgICogV2ViQ29yZS52Y3Byb2ov
V2ViQ29yZS52Y3Byb2o6IGRpdHRvLgorICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2pl
Y3QucGJ4cHJvajogZGl0dG8uCisgICAgICAgICogZG9tL0lucHV0RWxlbWVudC5oOiBBZGQgdmlz
aWJsZVZhbHVlKCkuCisgICAgICAgICogaHRtbC9IVE1MSW5wdXRFbGVtZW50LmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OmlzSFRNTE51bWJlckNoYXJhY3Rlcik6IFJlbmFtZWQgZnJvbSBpc051bWJl
ckNoYXJhY3RlcigpLgorICAgICAgICAoV2ViQ29yZTo6aXNOdW1iZXJDaGFyYWN0ZXIpOiBDYWxs
cyBpc0xvY2FsaXplZE51bWJlckNoYXJhY3RlcigpIGFuZCBpc0hUTUxOdW1iZXJDaGFyYWN0ZXIo
KQorICAgICAgICAoV2ViQ29yZTo6SFRNTElucHV0RWxlbWVudDo6dmlzaWJsZVZhbHVlKToKKyAg
ICAgICAgICBDYWxscyBmb3JtYXRMb2NhbGl6ZWROdW1iZXIoKSBmb3IgdHlwZT1udW1iZXIsIGNh
bGxzIHZhbHVlKCkgb3RoZXJ3aXNlLgorICAgICAgICAoV2ViQ29yZTo6SFRNTElucHV0RWxlbWVu
dDo6aXNBY2NlcHRhYmxlVmFsdWUpOiBDYWxscyBwYXJzZUxvY2FsaXplZE51bWJlcigpLgorICAg
ICAgICAoV2ViQ29yZTo6SFRNTElucHV0RWxlbWVudDo6c2FuaXRpemVWYWx1ZSk6IENhbGxzIHBh
cnNlTG9jYWxpemVkTnVtYmVyKCkuCisgICAgICAgICogaHRtbC9IVE1MSW5wdXRFbGVtZW50Lmg6
IEFkZCB2aXNpYmxlVmFsdWUoKS4KKyAgICAgICAgKiBwbGF0Zm9ybS90ZXh0L0xvY2FsaXplZE51
bWJlci5oOiBBZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS90ZXh0L0xvY2FsaXplZE51bWJlck5v
bmUuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OnBhcnNlTG9jYWxpemVkTnVtYmVyKToK
KyAgICAgICAgKFdlYkNvcmU6OmZvcm1hdExvY2FsaXplZE51bWJlcik6CisgICAgICAgIChXZWJD
b3JlOjppc0xvY2FsaXplZE51bWJlckNoYXJhY3Rlcik6CisgICAgICAgICogcmVuZGVyaW5nL1Jl
bmRlclRleHRDb250cm9sU2luZ2xlTGluZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJU
ZXh0Q29udHJvbFNpbmdsZUxpbmU6OnVwZGF0ZUZyb21FbGVtZW50KToKKyAgICAgICAgICBDYWxs
cyBJbnB1dEVsZW1lbnQ6OnZpc2libGVWYWx1ZSgpIGluc3RlYWQgb2YgdmFsdWUoKS4KKyAgICAg
ICAgKiB3bWwvV01MSW5wdXRFbGVtZW50Lmg6CisgICAgICAgIChXZWJDb3JlOjpXTUxJbnB1dEVs
ZW1lbnQ6OnZpc2libGVWYWx1ZSk6CisgICAgICAgICAgSW1wbGVtZW50IHZpc2libGVWYWx1ZSgp
LiBJdCBqdXN0IGNhbGxzIHZhbHVlKCkuCisKIDIwMTAtMTAtMTEgIEFuZGVycyBDYXJsc3NvbiAg
PGFuZGVyc2NhQGFwcGxlLmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBieSBEYXJpbiBBZGxlci4K
ZGlmZiAtLWdpdCBhL1dlYkNvcmUvR05VbWFrZWZpbGUuYW0gYi9XZWJDb3JlL0dOVW1ha2VmaWxl
LmFtCmluZGV4IGM2MjlhN2MxNjYxNTg1NjQ2OTc3MWYzZjQzOGFkMzFjZTA2OWY1ZGIuLjVhZTc4
OWYzOWYxNTc5NDEyODhkZDg1OTRjNjQ1NzU4YTJhYmFkNjggMTAwNjQ0Ci0tLSBhL1dlYkNvcmUv
R05VbWFrZWZpbGUuYW0KKysrIGIvV2ViQ29yZS9HTlVtYWtlZmlsZS5hbQpAQCAtMjQ0OSw2ICsy
NDQ5LDggQEAgd2ViY29yZV9zb3VyY2VzICs9IFwKIAlXZWJDb3JlL3BsYXRmb3JtL3RleHQvSHlw
aGVuYXRpb24uaCBcCiAJV2ViQ29yZS9wbGF0Zm9ybS90ZXh0L0xpbmVFbmRpbmcuY3BwIFwKIAlX
ZWJDb3JlL3BsYXRmb3JtL3RleHQvTGluZUVuZGluZy5oIFwKKwlXZWJDb3JlL3BsYXRmb3JtL3Rl
eHQvTG9jYWxpemVkTnVtYmVyLmggXAorCVdlYkNvcmUvcGxhdGZvcm0vdGV4dC9Mb2NhbGl6ZWRO
dW1iZXJOb25lLmNwcCBcCiAJV2ViQ29yZS9wbGF0Zm9ybS90ZXh0L1BhcnNlclV0aWxpdGllcy5o
IFwKIAlXZWJDb3JlL3BsYXRmb3JtL3RleHQvUGxhdGZvcm1TdHJpbmcuaCBcCiAJV2ViQ29yZS9w
bGF0Zm9ybS90ZXh0L1JlZ3VsYXJFeHByZXNzaW9uLmNwcCBcCmRpZmYgLS1naXQgYS9XZWJDb3Jl
L1dlYkNvcmUuZ3lwaSBiL1dlYkNvcmUvV2ViQ29yZS5neXBpCmluZGV4IGU1MTUzZmExYWIzZDU5
ZGM0ZTdmMWVkYWM3OWU3ZWE1Y2MyYmIzNjEuLmQyOTdhYzhhMTNkZjA0NGRjZjQxZTQ4MjAwZTUx
MTM0Mzg5YmM5MzkgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvV2ViQ29yZS5neXBpCisrKyBiL1dlYkNv
cmUvV2ViQ29yZS5neXBpCkBAIC0zMTM0LDYgKzMxMzQsOCBAQAogICAgICAgICAgICAgJ3BsYXRm
b3JtL3RleHQvSHlwaGVuYXRpb24uaCcsCiAgICAgICAgICAgICAncGxhdGZvcm0vdGV4dC9MaW5l
RW5kaW5nLmNwcCcsCiAgICAgICAgICAgICAncGxhdGZvcm0vdGV4dC9MaW5lRW5kaW5nLmgnLAor
ICAgICAgICAgICAgJ3BsYXRmb3JtL3RleHQvTG9jYWxpemVkTnVtYmVyLmgnLAorICAgICAgICAg
ICAgJ3BsYXRmb3JtL3RleHQvTG9jYWxpemVkTnVtYmVyTm9uZS5jcHAnLAogICAgICAgICAgICAg
J3BsYXRmb3JtL3RleHQvUGFyc2VyVXRpbGl0aWVzLmgnLAogICAgICAgICAgICAgJ3BsYXRmb3Jt
L3RleHQvUGxhdGZvcm1TdHJpbmcuaCcsCiAgICAgICAgICAgICAncGxhdGZvcm0vdGV4dC9SZWd1
bGFyRXhwcmVzc2lvbi5jcHAnLApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9XZWJDb3JlLnBybyBiL1dl
YkNvcmUvV2ViQ29yZS5wcm8KaW5kZXggOWIxYzUzNGE0MDA2ZDhjYWY0MTg5MGFmZjQyZDI5YjI1
ZTQyYzZiYS4uNjAxYzU1MzUyZGMyNTgyNmIyOGQ2MmRmOTBlOWZlYmVlYjY2Y2U1ZCAxMDA2NDQK
LS0tIGEvV2ViQ29yZS9XZWJDb3JlLnBybworKysgYi9XZWJDb3JlL1dlYkNvcmUucHJvCkBAIC0x
MTEzLDYgKzExMTMsNyBAQCBTT1VSQ0VTICs9IFwKICAgICBwbGF0Zm9ybS90ZXh0L0Jhc2U2NC5j
cHAgXAogICAgIHBsYXRmb3JtL3RleHQvQmlkaUNvbnRleHQuY3BwIFwKICAgICBwbGF0Zm9ybS90
ZXh0L0h5cGhlbmF0aW9uLmNwcCBcCisgICAgcGxhdGZvcm0vdGV4dC9Mb2NhbGl6ZWROdW1iZXJO
b25lLmNwcCBcCiAgICAgcGxhdGZvcm0vQ29udGVudFR5cGUuY3BwIFwKICAgICBwbGF0Zm9ybS9D
b250ZXh0TWVudS5jcHAgXAogICAgIHBsYXRmb3JtL0Nyb3NzVGhyZWFkQ29waWVyLmNwcCBcCmRp
ZmYgLS1naXQgYS9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qIGIvV2ViQ29y
ZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvagppbmRleCAxN2FlOTBhNzc2MjQ5MmJkNzgx
ODNjZjlhMTliOGMyYTIxYTMyYTc1Li40NGM5YWYyNDJjMWM4ODcyZGU5ZTMxYzQ1NTNhODQwMzBi
ZTIxOTdlIDEwMDY0NAotLS0gYS9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9q
CisrKyBiL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2oKQEAgLTI4NTg2LDYg
KzI4NTg2LDE0IEBACiAJCQkJCT4NCiAJCQkJPC9GaWxlPg0KIAkJCQk8RmlsZQ0KKwkJCQkJUmVs
YXRpdmVQYXRoPSIuLlxwbGF0Zm9ybVx0ZXh0XExvY2FsaXplZE51bWJlci5oIg0KKwkJCQkJPg0K
KwkJCQk8L0ZpbGU+DQorCQkJCTxGaWxlDQorCQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXHBsYXRmb3Jt
XHRleHRcTG9jYWxpemVkTnVtYmVyTm9uZS5jcHAiDQorCQkJCQk+DQorCQkJCTwvRmlsZT4NCisJ
CQkJPEZpbGUNCiAJCQkJCVJlbGF0aXZlUGF0aD0iLi5ccGxhdGZvcm1cdGV4dFxQYXJzZXJVdGls
aXRpZXMuaCINCiAJCQkJCT4NCiAJCQkJPC9GaWxlPg0KZGlmZiAtLWdpdCBhL1dlYkNvcmUvV2Vi
Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJv
ai9wcm9qZWN0LnBieHByb2oKaW5kZXggOTRkM2FjYTBmMTc4ZWVjMjhlOGRjZGVkYWQzZDUxZGZj
YzE4ZTRhNC4uNmZlZGU2MjQ4OTE4MTJjZjk2NDQzM2JhOWQxYzEwZmZjZWM4ZDNhMSAxMDA2NDQK
LS0tIGEvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvV2Vi
Q29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTU0NTEsNiArNTQ1MSw4
IEBACiAJCUYzRDQ2MTQ5MTE2MUQ1MzIwMENBMEQwOSAvKiBKU1dvcmtlckNvbnRleHRFcnJvckhh
bmRsZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEYz
RDQ2MTQ3MTE2MUQ1MzIwMENBMEQwOSAvKiBKU1dvcmtlckNvbnRleHRFcnJvckhhbmRsZXIuaCAq
LzsgfTsKIAkJRjRFQUY0QUUxMEM3NDJCMTAwOTEwMEQzIC8qIE9wZW5UeXBlU2FuaXRpemVyLmNw
cCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY0RUFGNEFD
MTBDNzQyQjEwMDkxMDBEMyAvKiBPcGVuVHlwZVNhbml0aXplci5jcHAgKi87IH07CiAJCUY0RUFG
NEFGMTBDNzQyQjEwMDkxMDBEMyAvKiBPcGVuVHlwZVNhbml0aXplci5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjRFQUY0QUQxMEM3NDJCMTAwOTEwMEQz
IC8qIE9wZW5UeXBlU2FuaXRpemVyLmggKi87IH07CisJCUY1MTQyQzY5MTIzRjEyQjAwMEY1QkQ0
QyAvKiBMb2NhbGl6ZWROdW1iZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IEY1MTQyQzY4MTIzRjEyQjAwMEY1QkQ0QyAvKiBMb2NhbGl6ZWROdW1iZXIu
aCAqLzsgfTsKKwkJRjUxNDJDNkIxMjNGMTJDNTAwRjVCRDRDIC8qIExvY2FsaXplZE51bWJlck5v
bmUuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjUx
NDJDNkExMjNGMTJDNTAwRjVCRDRDIC8qIExvY2FsaXplZE51bWJlck5vbmUuY3BwICovOyB9Owog
CQlGNTVCM0RBRDEyNTFGMTJEMDAzRUYyNjkgLyogQmFzZVRleHRJbnB1dFR5cGUuY3BwIGluIFNv
dXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjU1QjNENzkxMjUxRjEy
RDAwM0VGMjY5IC8qIEJhc2VUZXh0SW5wdXRUeXBlLmNwcCAqLzsgfTsKIAkJRjU1QjNEQUUxMjUx
RjEyRDAwM0VGMjY5IC8qIEJhc2VUZXh0SW5wdXRUeXBlLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNTVCM0Q3QTEyNTFGMTJEMDAzRUYyNjkgLyogQmFz
ZVRleHRJbnB1dFR5cGUuaCAqLzsgfTsKIAkJRjU1QjNEQUYxMjUxRjEyRDAwM0VGMjY5IC8qIEJ1
dHRvbklucHV0VHlwZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSBGNTVCM0Q3QjEyNTFGMTJEMDAzRUYyNjkgLyogQnV0dG9uSW5wdXRUeXBlLmNwcCAq
LzsgfTsKQEAgLTExNDY1LDYgKzExNDY3LDggQEAKIAkJRjNENDYxNDcxMTYxRDUzMjAwQ0EwRDA5
IC8qIEpTV29ya2VyQ29udGV4dEVycm9ySGFuZGxlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBKU1dvcmtlckNvbnRleHRFcnJvckhhbmRsZXIuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJRjRFQUY0QUMxMEM3NDJCMTAwOTEwMEQzIC8qIE9wZW5UeXBlU2FuaXRp
emVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IE9wZW5UeXBlU2Fu
aXRpemVyLmNwcDsgcGF0aCA9IG9wZW50eXBlL09wZW5UeXBlU2FuaXRpemVyLmNwcDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRjRFQUY0QUQxMEM3NDJCMTAwOTEwMEQzIC8qIE9wZW5U
eXBlU2FuaXRpemVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IE9wZW5UeXBl
U2FuaXRpemVyLmg7IHBhdGggPSBvcGVudHlwZS9PcGVuVHlwZVNhbml0aXplci5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OworCQlGNTE0MkM2ODEyM0YxMkIwMDBGNUJENEMgLyogTG9jYWxp
emVkTnVtYmVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IExvY2FsaXplZE51
bWJlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlGNTE0MkM2QTEyM0YxMkM1MDBG
NUJENEMgLyogTG9jYWxpemVkTnVtYmVyTm9uZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5jcHA7IHBhdGggPSBMb2NhbGl6ZWROdW1iZXJOb25lLmNwcDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJRjUyM0QyM0IwMkRFNDM5NjAxODYzNUNBIC8qIEhUTUxEb2N1bWVudC5jcHAg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGluZGVudFdp
ZHRoID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBI
VE1MRG9jdW1lbnQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB0YWJXaWR0aCA9IDg7IHVz
ZXNUYWJzID0gMDsgfTsKIAkJRjUyM0QyM0MwMkRFNDM5NjAxODYzNUNBIC8qIEhUTUxEb2N1bWVu
dC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBpbmRl
bnRXaWR0aCA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBI
VE1MRG9jdW1lbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgdGFiV2lkdGggPSA4OyB1c2Vz
VGFicyA9IDA7IH07CiAJCUY1MjNEMjNFMDJERTQzOTYwMTg2MzVDQSAvKiBIVE1MRWxlbWVudC5j
cHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGluZGVu
dFdpZHRoID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGgg
PSBIVE1MRWxlbWVudC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IHRhYldpZHRoID0gODsg
dXNlc1RhYnMgPSAwOyB9OwpAQCAtMTY1NTQsNiArMTY1NTgsOCBAQAogCQkJCTM3NUNEMjMxMTE5
RDQzQzgwMEEyQTg1OSAvKiBIeXBoZW5hdGlvbi5oICovLAogCQkJCTg5QjVFQTlGMTFFODAwM0Qw
MEYyMzY3RSAvKiBMaW5lRW5kaW5nLmNwcCAqLywKIAkJCQk4OUI1RUFBMDExRTgwMDNEMDBGMjM2
N0UgLyogTGluZUVuZGluZy5oICovLAorCQkJCUY1MTQyQzY4MTIzRjEyQjAwMEY1QkQ0QyAvKiBM
b2NhbGl6ZWROdW1iZXIuaCAqLywKKwkJCQlGNTE0MkM2QTEyM0YxMkM1MDBGNUJENEMgLyogTG9j
YWxpemVkTnVtYmVyTm9uZS5jcHAgKi8sCiAJCQkJQkM3NkFDMTEwREQ3QUQ1QzAwNDE1RjM0IC8q
IFBhcnNlclV0aWxpdGllcy5oICovLAogCQkJCUIyQzNEOUZCMEQwMDZDMUQwMEVGNkYyNiAvKiBQ
bGF0Zm9ybVN0cmluZy5oICovLAogCQkJCUIyQzNEOUZDMEQwMDZDMUQwMEVGNkYyNiAvKiBSZWd1
bGFyRXhwcmVzc2lvbi5jcHAgKi8sCkBAIC0yMDE2OSw2ICsyMDE3NSw3IEBACiAJCQkJMDZFODFF
RDcwQUI1RDVFOTAwQzg3ODM3IC8qIExvY2FsQ3VycmVudEdyYXBoaWNzQ29udGV4dC5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJODk4Nzg1NjgxMjJDQTA2NDAwM0FBQkRBIC8qIExvY2FsRmlsZVN5c3Rl
bS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkM1Q0ZDQTkxMUY3OTMzMjAwOTlFRDA5IC8qIExvY2Fs
aXphdGlvblN0cmF0ZWd5LmggaW4gSGVhZGVycyAqLywKKwkJCQlGNTE0MkM2OTEyM0YxMkIwMDBG
NUJENEMgLyogTG9jYWxpemVkTnVtYmVyLmggaW4gSGVhZGVycyAqLywKIAkJCQk5MzUyMDdCRTA5
QkQ0MTBBMDBGMjAzOEQgLyogTG9jYWxpemVkU3RyaW5ncy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
NTExRjIzMTgwREMxNjBEQTAwNEYwMDMyIC8qIExvY2FsU3RvcmFnZVRhc2suaCBpbiBIZWFkZXJz
ICovLAogCQkJCTUxMUYyMzFBMERDMTYwREEwMDRGMDAzMiAvKiBMb2NhbFN0b3JhZ2VUaHJlYWQu
aCBpbiBIZWFkZXJzICovLApAQCAtMjI4MzIsNiArMjI4MzksNyBAQAogCQkJCTY1NkQzNzMzMEFE
QkE1REUwMEE0NTU0RCAvKiBMb2FkZXJOU1VSTEV4dHJhcy5tbSBpbiBTb3VyY2VzICovLAogCQkJ
CTA2RTgxRUVDMEFCNURBOTcwMEM4NzgzNyAvKiBMb2NhbEN1cnJlbnRHcmFwaGljc0NvbnRleHQu
bW0gaW4gU291cmNlcyAqLywKIAkJCQk4OTg3ODU2NzEyMkNBMDY0MDAzQUFCREEgLyogTG9jYWxG
aWxlU3lzdGVtLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCUY1MTQyQzZCMTIzRjEyQzUwMEY1QkQ0
QyAvKiBMb2NhbGl6ZWROdW1iZXJOb25lLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUMwNDZFMUFD
MTIwOEE5RkUwMEJBMkNGNyAvKiBMb2NhbGl6ZWRTdHJpbmdzLmNwcCBpbiBTb3VyY2VzICovLAog
CQkJCTUxMUYyMzE3MERDMTYwREEwMDRGMDAzMiAvKiBMb2NhbFN0b3JhZ2VUYXNrLmNwcCBpbiBT
b3VyY2VzICovLAogCQkJCTUxMUYyMzE5MERDMTYwREEwMDRGMDAzMiAvKiBMb2NhbFN0b3JhZ2VU
aHJlYWQuY3BwIGluIFNvdXJjZXMgKi8sCmRpZmYgLS1naXQgYS9XZWJDb3JlL2RvbS9JbnB1dEVs
ZW1lbnQuaCBiL1dlYkNvcmUvZG9tL0lucHV0RWxlbWVudC5oCmluZGV4IDM0Nzg0YmM3ZTdkMzdj
MDc0NmY1NWM1MWQ2MDE4ODk4OTc4NzM1OGUuLjUwZjM4MDE0ZmVhM2E3M2E3YmFmZmNiODA0ZTdj
MDQ4N2ZmY2QwYzMgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvZG9tL0lucHV0RWxlbWVudC5oCisrKyBi
L1dlYkNvcmUvZG9tL0lucHV0RWxlbWVudC5oCkBAIC01OSw2ICs1OSw4IEBAIHB1YmxpYzoKICAg
ICB2aXJ0dWFsIFN0cmluZyB2YWx1ZSgpIGNvbnN0ID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgc2V0
VmFsdWUoY29uc3QgU3RyaW5nJiwgYm9vbCBzZW5kQ2hhbmdlRXZlbnQgPSBmYWxzZSkgPSAwOwog
ICAgIHZpcnR1YWwgdm9pZCBzZXRWYWx1ZUZvclVzZXIoY29uc3QgU3RyaW5nJikgPSAwOworICAg
IC8vIFRoZSB2YWx1ZSB3aGljaCBpcyBkcmF3biBieSBhIHJlbmRlcmVyLgorICAgIHZpcnR1YWwg
U3RyaW5nIHZpc2libGVWYWx1ZSgpIGNvbnN0ID0gMDsKIAogICAgIC8vIFJldHVybnMgdHJ1ZSBp
ZiB0aGUgc3BlY2lmaWVkIHN0cmluZyBjYW4gYmUgc2V0IGFzIHRoZSB2YWx1ZSBvZiBJbnB1dEVs
ZW1lbnQuCiAgICAgdmlydHVhbCBib29sIGlzQWNjZXB0YWJsZVZhbHVlKGNvbnN0IFN0cmluZyYp
IGNvbnN0ID0gMDsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvaHRtbC9IVE1MSW5wdXRFbGVtZW50LmNw
cCBiL1dlYkNvcmUvaHRtbC9IVE1MSW5wdXRFbGVtZW50LmNwcAppbmRleCAzNzhkZGU0OGJjNjc5
YmMyOTdiNWI2ZGYzZWVjY2Q1ZDM0YmU4OWIxLi4yN2Q2NmM1MjJlNDUxNTM5ODE1OTlkNmQwMmE2
Njc2NjllNWExNWVlIDEwMDY0NAotLS0gYS9XZWJDb3JlL2h0bWwvSFRNTElucHV0RWxlbWVudC5j
cHAKKysrIGIvV2ViQ29yZS9odG1sL0hUTUxJbnB1dEVsZW1lbnQuY3BwCkBAIC01Myw2ICs1Myw3
IEBACiAjaW5jbHVkZSAiSFRNTFBhcnNlcklkaW9tcy5oIgogI2luY2x1ZGUgIklucHV0VHlwZS5o
IgogI2luY2x1ZGUgIktleWJvYXJkRXZlbnQuaCIKKyNpbmNsdWRlICJMb2NhbGl6ZWROdW1iZXIu
aCIKICNpbmNsdWRlICJMb2NhbGl6ZWRTdHJpbmdzLmgiCiAjaW5jbHVkZSAiTW91c2VFdmVudC5o
IgogI2luY2x1ZGUgIlBhZ2UuaCIKQEAgLTgxLDEwICs4MiwxNiBAQCB1c2luZyBuYW1lc3BhY2Ug
SFRNTE5hbWVzOwogCiBjb25zdCBpbnQgbWF4U2F2ZWRSZXN1bHRzID0gMjU2OwogCisvLyBSZXR1
cm5zIHRydWUgaWYgdGhlIHNwZWNpZmllZCBjaGFyYWN0ZXIgY2FuIGJlIGEgcGFydCBvZiAndmFs
aWQgZmxvYXRpbmcKKy8vIHBvaW50IG51bWJlcicgb2YgSFRNTDUuCitzdGF0aWMgaW5saW5lIGJv
b2wgaXNIVE1MTnVtYmVyQ2hhcmFjdGVyKFVDaGFyIGNoKQoreworICAgIHJldHVybiBjaCA9PSAn
KycgfHwgY2ggPT0gJy0nIHx8IGNoID09ICcuJyB8fCBjaCA9PSAnZScgfHwgY2ggPT0gJ0UnIHx8
IChjaCA+PSAnMCcgJiYgY2ggPD0gJzknKTsKK30KKwogc3RhdGljIGJvb2wgaXNOdW1iZXJDaGFy
YWN0ZXIoVUNoYXIgY2gpCiB7Ci0gICAgcmV0dXJuIGNoID09ICcrJyB8fCBjaCA9PSAnLScgfHwg
Y2ggPT0gJy4nIHx8IGNoID09ICdlJyB8fCBjaCA9PSAnRScKLSAgICAgICAgfHwgKGNoID49ICcw
JyAmJiBjaCA8PSAnOScpOworICAgIHJldHVybiBpc0xvY2FsaXplZE51bWJlckNoYXJhY3Rlcihj
aCkgfHwgaXNIVE1MTnVtYmVyQ2hhcmFjdGVyKGNoKTsKIH0KIAogSFRNTElucHV0RWxlbWVudDo6
SFRNTElucHV0RWxlbWVudChjb25zdCBRdWFsaWZpZWROYW1lJiB0YWdOYW1lLCBEb2N1bWVudCog
ZG9jdW1lbnQsIEhUTUxGb3JtRWxlbWVudCogZm9ybSkKQEAgLTE5MDcsMTcgKzE5MTQsMzYgQEAg
RmlsZUxpc3QqIEhUTUxJbnB1dEVsZW1lbnQ6OmZpbGVzKCkKICAgICByZXR1cm4gbV9maWxlTGlz
dC5nZXQoKTsKIH0KIAorU3RyaW5nIEhUTUxJbnB1dEVsZW1lbnQ6OnZpc2libGVWYWx1ZSgpIGNv
bnN0Cit7CisgICAgU3RyaW5nIGN1cnJlbnRWYWx1ZSA9IHZhbHVlKCk7CisgICAgaWYgKGRlcHJl
Y2F0ZWRJbnB1dFR5cGUoKSAhPSBOVU1CRVIpCisgICAgICAgIHJldHVybiBjdXJyZW50VmFsdWU7
CisgICAgaWYgKGN1cnJlbnRWYWx1ZS5pc0VtcHR5KCkpCisgICAgICAgIHJldHVybiBjdXJyZW50
VmFsdWU7CisgICAgZG91YmxlIGRvdWJsZVZhbHVlID0gbnVtZXJpY19saW1pdHM8ZG91YmxlPjo6
cXVpZXRfTmFOKCk7CisgICAgcGFyc2VUb0RvdWJsZUZvck51bWJlclR5cGUoY3VycmVudFZhbHVl
LCAmZG91YmxlVmFsdWUpOworICAgIFN0cmluZyBsb2NhbGl6ZWQgPSBmb3JtYXRMb2NhbGl6ZWRO
dW1iZXIoZG91YmxlVmFsdWUpOworICAgIHJldHVybiBsb2NhbGl6ZWQuaXNFbXB0eSgpID8gY3Vy
cmVudFZhbHVlIDogbG9jYWxpemVkOworfQorCiBib29sIEhUTUxJbnB1dEVsZW1lbnQ6OmlzQWNj
ZXB0YWJsZVZhbHVlKGNvbnN0IFN0cmluZyYgcHJvcG9zZWRWYWx1ZSkgY29uc3QKIHsKICAgICBp
ZiAoZGVwcmVjYXRlZElucHV0VHlwZSgpICE9IE5VTUJFUikKICAgICAgICAgcmV0dXJuIHRydWU7
Ci0gICAgcmV0dXJuIHByb3Bvc2VkVmFsdWUuaXNFbXB0eSgpIHx8IHBhcnNlVG9Eb3VibGVGb3JO
dW1iZXJUeXBlKHByb3Bvc2VkVmFsdWUsIDApOworICAgIHJldHVybiBwcm9wb3NlZFZhbHVlLmlz
RW1wdHkoKSB8fCBpc2Zpbml0ZShwYXJzZUxvY2FsaXplZE51bWJlcihwcm9wb3NlZFZhbHVlKSkg
fHwgcGFyc2VUb0RvdWJsZUZvck51bWJlclR5cGUocHJvcG9zZWRWYWx1ZSwgMCk7CiB9CiAKIFN0
cmluZyBIVE1MSW5wdXRFbGVtZW50OjpzYW5pdGl6ZVZhbHVlKGNvbnN0IFN0cmluZyYgcHJvcG9z
ZWRWYWx1ZSkgY29uc3QKIHsKLSAgICBpZiAoZGVwcmVjYXRlZElucHV0VHlwZSgpID09IE5VTUJF
UikKKyAgICBpZiAoZGVwcmVjYXRlZElucHV0VHlwZSgpID09IE5VTUJFUikgeworICAgICAgICAv
LyBUcnkgdG8gcGFyc2UgdGhlIHZhbHVlIGFzIGEgbG9jYWxpemVkIG51bWJlciwgdGhlbiB0cnkg
dG8gcGFyc2UgaXQgYXMKKyAgICAgICAgLy8gdGhlIHN0YW5kYXJkIGZvcm1hdC4KKyAgICAgICAg
ZG91YmxlIHBhcnNlZFZhbHVlID0gcGFyc2VMb2NhbGl6ZWROdW1iZXIocHJvcG9zZWRWYWx1ZSk7
CisgICAgICAgIGlmIChpc2Zpbml0ZShwYXJzZWRWYWx1ZSkpCisgICAgICAgICAgICByZXR1cm4g
c2VyaWFsaXplRm9yTnVtYmVyVHlwZShwYXJzZWRWYWx1ZSk7CiAgICAgICAgIHJldHVybiBwYXJz
ZVRvRG91YmxlRm9yTnVtYmVyVHlwZShwcm9wb3NlZFZhbHVlLCAwKSA/IHByb3Bvc2VkVmFsdWUg
OiBTdHJpbmcoKTsKKyAgICB9CiAKICAgICBpZiAoaXNUZXh0RmllbGQoKSkKICAgICAgICAgcmV0
dXJuIElucHV0RWxlbWVudDo6c2FuaXRpemVWYWx1ZUZvclRleHRGaWVsZCh0aGlzLCBwcm9wb3Nl
ZFZhbHVlKTsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvaHRtbC9IVE1MSW5wdXRFbGVtZW50LmggYi9X
ZWJDb3JlL2h0bWwvSFRNTElucHV0RWxlbWVudC5oCmluZGV4IGU1ODRhNzhkZjM3OGM2Njc2ZWYz
ZDkzMGNkYzI3YzdlZTdjYjliYjkuLjc4Yjk5YzhjMTdhZmIxYTQ1ZWU4NTk0Yzk1ZGVlMDE0NzBh
MjJlNmEgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvaHRtbC9IVE1MSW5wdXRFbGVtZW50LmgKKysrIGIv
V2ViQ29yZS9odG1sL0hUTUxJbnB1dEVsZW1lbnQuaApAQCAtMjk5LDYgKzI5OSw3IEBAIHByaXZh
dGU6CiAKICAgICB2aXJ0dWFsIHZvaWQgY2FjaGVTZWxlY3Rpb24oaW50IHN0YXJ0LCBpbnQgZW5k
KTsKIAorICAgIHZpcnR1YWwgU3RyaW5nIHZpc2libGVWYWx1ZSgpIGNvbnN0OwogICAgIHZpcnR1
YWwgYm9vbCBpc0FjY2VwdGFibGVWYWx1ZShjb25zdCBTdHJpbmcmKSBjb25zdDsKICAgICB2aXJ0
dWFsIFN0cmluZyBzYW5pdGl6ZVZhbHVlKGNvbnN0IFN0cmluZyYpIGNvbnN0OwogICAgIHZpcnR1
YWwgYm9vbCBoYXNVbmFjY2VwdGFibGVWYWx1ZSgpIGNvbnN0OwpkaWZmIC0tZ2l0IGEvV2ViQ29y
ZS9wbGF0Zm9ybS90ZXh0L0xvY2FsaXplZE51bWJlci5oIGIvV2ViQ29yZS9wbGF0Zm9ybS90ZXh0
L0xvY2FsaXplZE51bWJlci5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjJjNGQxNTUxMDVkY2E0MTMxYTAzNzRkZjAy
OGY0MWVmZDkyNzU4NTgKLS0tIC9kZXYvbnVsbAorKysgYi9XZWJDb3JlL3BsYXRmb3JtL3RleHQv
TG9jYWxpemVkTnVtYmVyLmgKQEAgLTAsMCArMSw1OSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykg
MjAxMCBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAor
ICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zIGFyZQorICogbWV0OgorICoKKyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBv
ZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisg
KiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhl
IGFib3ZlCisgKiBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCisgKiBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Ig
b3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCisgKiBkaXN0cmlidXRpb24uCisgKiAg
ICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRz
CisgKiBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1
Y3RzIGRlcml2ZWQgZnJvbQorICogdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9y
IHdyaXR0ZW4gcGVybWlzc2lvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZ
IFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCisgKiAiQVMgSVMiIEFORCBB
TlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAorICog
TElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5E
IEZJVE5FU1MgRk9SCisgKiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4g
Tk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAorICogT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJF
IExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCisgKiBTUEVDSUFM
LCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9U
CisgKiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJ
Q0VTOyBMT1NTIE9GIFVTRSwKKyAqIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVS
UlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQorICogVEhFT1JZIE9GIExJQUJJTElU
WSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElO
Q0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBP
RiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBP
U1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5kZWYgTG9jYWxpemVkTnVtYmVy
X2gKKyNkZWZpbmUgTG9jYWxpemVkTnVtYmVyX2gKKworI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0
cmluZy5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKKy8vIFBhcnNlcyBhIHN0cmluZyByZXBy
ZXNlbnRhdGlvbiBvZiBhIGZsb2F0aW5nIHBvaW50IG51bWJlciBsb2NhbGl6ZWQKKy8vIGZvciB0
aGUgYnJvd3NlcidzIGN1cnJlbnQgbG9jYWxlLiBJZiB0aGUgaW5wdXQgc3RyaW5nIGlzIG5vdCB2
YWxpZAorLy8gb3IgYW4gaW1wbGVtZW50YXRpb24gZG9lc24ndCBzdXBwb3J0IGxvY2FsaXplZCBu
dW1iZXJzLCB0aGlzCisvLyBmdW5jdGlvbiByZXR1cm5zIE5hTi4gVGhpcyBmdW5jdGlvbiBkb2Vz
bid0IG5lZWQgdG8gc3VwcG9ydAorLy8gc2NpZW50aWZpYyBub3RhdGlvbiwgTmFOLCArSW5maW5p
dHkgYW5kIC1JbmZpbml0eSwgYW5kIGRvZXNuJ3QgbmVlZAorLy8gdG8gc3VwcG9ydCB0aGUgc3Rh
bmRhcmQgcmVwcmVzZW50YXRpb25zIG9mIEVDTUFTY3JpcHQgYW5kIEhUTUw1LgorZG91YmxlIHBh
cnNlTG9jYWxpemVkTnVtYmVyKGNvbnN0IFN0cmluZyYpOworCisvLyBTZXJpYWxpemVzIHRoZSBz
cGVjaWZpZWQgZmxvYXRpbmcgcG9pbnQgbnVtYmVyIGZvciB0aGUgYnJvd3NlcidzCisvLyBjdXJy
ZW50IGxvY2FsZS4gIElmIGFuIGltcGxlbWVudGF0aW9uIGRvZXNuJ3Qgc3VwcG9ydCBsb2NhbGl6
ZWQKKy8vIG51bWJlcnMgb3IgdGhlIGlucHV0IHZhbHVlIGlzIE5hTiBvciBJbmZpbml0aXksIHRo
ZSBmdW5jdGlvbiBzaG91bGQKKy8vIHJldHVybiBhbiBlbXB0eSBzdHJpbmcuCitTdHJpbmcgZm9y
bWF0TG9jYWxpemVkTnVtYmVyKGRvdWJsZSk7CisKKy8vIFJldHVybnMgdHJ1ZSBpZiB0aGUgaW5w
dXQgY2hhcmFjdGVyIGNhbiBiZSB1c2VkIHRvIHJlcHJlc2VudCBhCisvLyBudW1iZXIgaW4gdGhl
IGJyb3dzZXIgbG9jYWxlLiBGb3IgZXhhbXBsZSwgdGhpcyBzaG91bGQgcmV0dXJuIHRydWUgZm9y
IDAtOSAuCisvLyAsICsgLSBmb3IgZW4tVVMgbG9jYWxlLgorYm9vbCBpc0xvY2FsaXplZE51bWJl
ckNoYXJhY3RlcihVQ2hhcjMyKTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYg
Ly8gTG9jYWxpemVkTnVtYmVyX2gKZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGxhdGZvcm0vdGV4dC9M
b2NhbGl6ZWROdW1iZXJOb25lLmNwcCBiL1dlYkNvcmUvcGxhdGZvcm0vdGV4dC9Mb2NhbGl6ZWRO
dW1iZXJOb25lLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5mZjM5OGVmNTgxYTBiZWZjMzY3NjY3ODYzMjg5Yjdi
MWE4ZjZjZTdmCi0tLSAvZGV2L251bGwKKysrIGIvV2ViQ29yZS9wbGF0Zm9ybS90ZXh0L0xvY2Fs
aXplZE51bWJlck5vbmUuY3BwCkBAIC0wLDAgKzEsNTUgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMp
IDIwMTAgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
KyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucyBhcmUKKyAqIG1ldDoKKyAqCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMg
b2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgor
ICogICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRo
ZSBhYm92ZQorICogY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgorICogaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29y
IG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQorICogZGlzdHJpYnV0aW9uLgorICog
ICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0
cworICogY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9k
dWN0cyBkZXJpdmVkIGZyb20KKyAqIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlv
ciB3cml0dGVuIHBlcm1pc3Npb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBC
WSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUworICogIkFTIElTIiBBTkQg
QU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKKyAq
IExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFO
RCBGSVRORVNTIEZPUgorICogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElO
IE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKKyAqIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBC
RSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAorICogU1BFQ0lB
TCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5P
VAorICogTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJW
SUNFUzsgTE9TUyBPRiBVU0UsCisgKiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRF
UlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKKyAqIFRIRU9SWSBPRiBMSUFCSUxJ
VFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJ
TkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQg
T0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisj
aW5jbHVkZSAiTG9jYWxpemVkTnVtYmVyLmgiCisKKyNpbmNsdWRlIDxsaW1pdHM+CisKK3VzaW5n
IG5hbWVzcGFjZSBzdGQ7CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworZG91YmxlIHBhcnNlTG9j
YWxpemVkTnVtYmVyKGNvbnN0IFN0cmluZyYpCit7CisgICAgcmV0dXJuIG51bWVyaWNfbGltaXRz
PGRvdWJsZT46OnF1aWV0X05hTigpOworfQorCitTdHJpbmcgZm9ybWF0TG9jYWxpemVkTnVtYmVy
KGRvdWJsZSkKK3sKKyAgICByZXR1cm4gU3RyaW5nKCk7Cit9CisKK2Jvb2wgaXNMb2NhbGl6ZWRO
dW1iZXJDaGFyYWN0ZXIoVUNoYXIzMikKK3sKKyAgICByZXR1cm4gZmFsc2U7Cit9CisKK30gLy8g
bmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRl
eHRDb250cm9sU2luZ2xlTGluZS5jcHAgYi9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUZXh0Q29u
dHJvbFNpbmdsZUxpbmUuY3BwCmluZGV4IDIyMTExMTBhYmUzMjg3YjFiMDQwZTcxOWFjMTFmNWMw
MjVmZjc2YzguLmIwY2IxMzY3MGQ3MjQ3OTY0NjUzM2I0MTZjMTNhODZmNDYwZGYyNmMgMTAwNjQ0
Ci0tLSBhL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRleHRDb250cm9sU2luZ2xlTGluZS5jcHAK
KysrIGIvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGV4dENvbnRyb2xTaW5nbGVMaW5lLmNwcApA
QCAtNjkzLDcgKzY5Myw3IEBAIHZvaWQgUmVuZGVyVGV4dENvbnRyb2xTaW5nbGVMaW5lOjp1cGRh
dGVGcm9tRWxlbWVudCgpCiAgICAgICAgICAgICAgICAgc2hvdWxkVXBkYXRlVmFsdWUgPSBzdGF0
aWNfY2FzdDxIVE1MVGV4dEZvcm1Db250cm9sRWxlbWVudCo+KG5vZGUoKSktPnN1cHBvcnRzUGxh
Y2Vob2xkZXIoKSB8fCAhc3RhdGljX2Nhc3Q8SFRNTElucHV0RWxlbWVudCo+KG5vZGUoKSktPmZv
cm1Db250cm9sVmFsdWVNYXRjaGVzUmVuZGVyZXIoKTsKICAgICAgICAgICAgIH0KICAgICAgICAg
ICAgIGlmIChzaG91bGRVcGRhdGVWYWx1ZSkKLSAgICAgICAgICAgICAgICBzZXRJbm5lclRleHRW
YWx1ZShpbnB1dEVsZW1lbnQoKS0+dmFsdWUoKSk7CisgICAgICAgICAgICAgICAgc2V0SW5uZXJU
ZXh0VmFsdWUoaW5wdXRFbGVtZW50KCktPnZpc2libGVWYWx1ZSgpKTsKICAgICAgICAgfQogICAg
IH0KIApkaWZmIC0tZ2l0IGEvV2ViQ29yZS93bWwvV01MSW5wdXRFbGVtZW50LmggYi9XZWJDb3Jl
L3dtbC9XTUxJbnB1dEVsZW1lbnQuaAppbmRleCBkZjdmNDk3MmI3MmNiZTg4NDIwZGFhOGRhYTUx
YTZmNWYzNDRhMDIyLi42YzY2NDEwYmNmNzZhOWVmZmIxOGVlNTM5ZGIwYTYxNzk4OWEyNTNlIDEw
MDY0NAotLS0gYS9XZWJDb3JlL3dtbC9XTUxJbnB1dEVsZW1lbnQuaAorKysgYi9XZWJDb3JlL3dt
bC9XTUxJbnB1dEVsZW1lbnQuaApAQCAtNjMsNiArNjMsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVh
bCBTdHJpbmcgdmFsdWUoKSBjb25zdDsKICAgICB2aXJ0dWFsIHZvaWQgc2V0VmFsdWUoY29uc3Qg
U3RyaW5nJiwgYm9vbCBzZW5kQ2hhbmdlRXZlbnQgPSBmYWxzZSk7CiAgICAgdmlydHVhbCB2b2lk
IHNldFZhbHVlRm9yVXNlcihjb25zdCBTdHJpbmcmKTsKKyAgICB2aXJ0dWFsIFN0cmluZyB2aXNp
YmxlVmFsdWUoKSBjb25zdCB7IHJldHVybiB2YWx1ZSgpOyB9CiAgICAgdmlydHVhbCB2b2lkIHNl
dFZhbHVlRnJvbVJlbmRlcmVyKGNvbnN0IFN0cmluZyYpOwogCiAgICAgdmlydHVhbCBib29sIHNh
dmVGb3JtQ29udHJvbFN0YXRlKFN0cmluZyYgdmFsdWUpIGNvbnN0Owo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>72631</attachid>
            <date>2010-11-01 23:16:57 -0700</date>
            <delta_ts>2010-11-15 21:31:11 -0800</delta_ts>
            <desc>Patch 5 (rebased)</desc>
            <filename>bug-45730-20101102151655.patch</filename>
            <type>text/plain</type>
            <size>21533</size>
            <attacher name="Kent Tamura">tkent</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQW5kcm9pZC5tayBiL1dlYkNvcmUvQW5kcm9pZC5tawppbmRl
eCBlYTBjMjllZTNkMTJkNjM3ZGM4ZDBiOGRiMGNiMmJjNTc0ZDc5ZmYxLi45OGQ0NzhmNjc2Yzk3
ZjcxNTE2M2NiOGM2Y2RlMTczNmRlOTlkZjFmIDEwMDY0NAotLS0gYS9XZWJDb3JlL0FuZHJvaWQu
bWsKKysrIGIvV2ViQ29yZS9BbmRyb2lkLm1rCkBAIC02MDgsNiArNjA4LDcgQEAgTE9DQUxfU1JD
X0ZJTEVTIDo9ICQoTE9DQUxfU1JDX0ZJTEVTKSBcCiAJcGxhdGZvcm0vdGV4dC9CYXNlNjQuY3Bw
IFwKIAlwbGF0Zm9ybS90ZXh0L0JpZGlDb250ZXh0LmNwcCBcCiAJcGxhdGZvcm0vdGV4dC9IeXBo
ZW5hdGlvbi5jcHAgXAorCXBsYXRmb3JtL3RleHQvTG9jYWxpemVkTnVtYmVyTm9uZS5jcHAgXAog
CXBsYXRmb3JtL3RleHQvUmVndWxhckV4cHJlc3Npb24uY3BwIFwKIAlwbGF0Zm9ybS90ZXh0L1Nl
Z21lbnRlZFN0cmluZy5jcHAgXAogCXBsYXRmb3JtL3RleHQvU3RyaW5nLmNwcCBcCmRpZmYgLS1n
aXQgYS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0IGIvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dAppbmRl
eCBiYmE3YTMzY2M4ZDJjNmMwZmM5ZTgzZGUwNmNkZDYwNWJlZGNmNWVhLi4yZTVhZWQwNmVmOGQ3
M2M3N2E3MGI1ODc4MTA2YzZkMDMyZDBlM2Q0IDEwMDY0NAotLS0gYS9XZWJDb3JlL0NNYWtlTGlz
dHMudHh0CisrKyBiL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKQEAgLTEzNzMsNiArMTM3Myw3IEBA
IFNFVChXZWJDb3JlX1NPVVJDRVMKICAgICBwbGF0Zm9ybS90ZXh0L0Jhc2U2NC5jcHAKICAgICBw
bGF0Zm9ybS90ZXh0L0JpZGlDb250ZXh0LmNwcAogICAgIHBsYXRmb3JtL3RleHQvTGluZUVuZGlu
Zy5jcHAKKyAgICBwbGF0Zm9ybS90ZXh0L0xvY2FsaXplZE51bWJlck5vbmUuY3BwCiAgICAgcGxh
dGZvcm0vdGV4dC9IeXBoZW5hdGlvbi5jcHAKICAgICBwbGF0Zm9ybS90ZXh0L1JlZ3VsYXJFeHBy
ZXNzaW9uLmNwcAogICAgIHBsYXRmb3JtL3RleHQvU2VnbWVudGVkU3RyaW5nLmNwcApkaWZmIC0t
Z2l0IGEvV2ViQ29yZS9DaGFuZ2VMb2cgYi9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCA5NWVkNzEx
YjE2NmMyNjdmYmJmNThhM2QxMGFjOGRiYzA0ZmZiYmI4Li4yNGIxZDBhZWExOGI3OWI2MjNmZjI0
MDIyODQwMTIwMTk2NDU0ZGRhIDEwMDY0NAotLS0gYS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9X
ZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDUzIEBACisyMDEwLTA5LTEzICBLZW50IFRhbXVy
YSAgPHRrZW50QGNocm9taXVtLm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICBBUEkgdG8gc3VwcG9ydCBsb2NhbGl6ZWQgbnVtYmVycyBmb3IgPGlu
cHV0IHR5cGU9bnVtYmVyPgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9NDU3MzAKKworICAgICAgICBJbnRyb2R1Y2UgcGxhdGZvcm0vdGV4dC9Mb2NhbGl6
ZWROdW1iZXIuaCwgYW5kCisgICAgICAgIExvY2FsaXplZE51bWJlck5vbmUuY3BwLCB3aGljaCBp
cyBhbiBlbXB0eSBpbXBsZW1lbnRhdGlvbiBvZiB0aGUKKyAgICAgICAgZnVuY3Rpb25zIGluIExv
Y2FsaXplZE51bWJlci5oLiAgV2UgdXNlIExvY2FsaXplZE51bWJlck5vbmUuY3BwIGluCisgICAg
ICAgIGFsbCBwbGF0Zm9ybXMgZm9yIG5vdy4KKworICAgICAgICBBIHN0cmluZyBpbiBhIHR5cGU9
bnVtYmVyIGZpZWxkIGlzIHBhcnNlZCBhcyBhIGxvY2FsaXplZCBudW1iZXIKKyAgICAgICAgZmly
c3QuIElmIHRoZSBwYXJzaW5nIGZhaWxzLCBpdCBpcyBwYXJzZWQgYXMgdGhlIEhUTUw1IG51bWJl
ci4KKworICAgICAgICBXZSBpbnRyb2R1Y2UgSFRNTElucHV0RWxlbWVudDo6dmlzaWJsZVZhbHVl
KCkuIEl0IHJlcHJlc2VudHMgYSB2YWx1ZQorICAgICAgICB3aGljaCBzaG91bGQgYmUgZHJhd24g
YnkgYSByZW5kZXJlci4gSFRNTElucHV0RWxlbWVudDo6dmFsdWUoKSBhbHdheXMKKyAgICAgICAg
cmV0dXJucyBhIG51bWJlciBmb3JtYXR0ZWQgZm9yIEhUTUw1LCBhbmQgdmlzaWJsZVZhbHVlKCkg
bWF5IHJldHVybiBhCisgICAgICAgIGxvY2FsaXplZCBudW1iZXIuCisKKyAgICAgICAgTm8gbmV3
IHRlc3RzIGJlY2F1c2UgdGhpcyBkb2Vzbid0IGNoYW5nZSBhbnkgYmVoYXZpb3IuCisKKyAgICAg
ICAgKiBBbmRyb2lkLm1rOiBBZGQgTG9jYWxpemVkTnVtYmVyLmggYW5kL29yIExvY2FsaXplZE51
bWJlck5vbmUuY3BwLgorICAgICAgICAqIENNYWtlTGlzdHMudHh0OiBkaXR0by4KKyAgICAgICAg
KiBHTlVtYWtlZmlsZS5hbTogZGl0dG8uCisgICAgICAgICogV2ViQ29yZS5neXBpOiBkaXR0by4K
KyAgICAgICAgKiBXZWJDb3JlLnBybzogZGl0dG8uCisgICAgICAgICogV2ViQ29yZS52Y3Byb2ov
V2ViQ29yZS52Y3Byb2o6IGRpdHRvLgorICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2pl
Y3QucGJ4cHJvajogZGl0dG8uCisgICAgICAgICogZG9tL0lucHV0RWxlbWVudC5oOiBBZGQgdmlz
aWJsZVZhbHVlKCkuCisgICAgICAgICogaHRtbC9IVE1MSW5wdXRFbGVtZW50LmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OmlzSFRNTE51bWJlckNoYXJhY3Rlcik6IFJlbmFtZWQgZnJvbSBpc051bWJl
ckNoYXJhY3RlcigpLgorICAgICAgICAoV2ViQ29yZTo6aXNOdW1iZXJDaGFyYWN0ZXIpOiBDYWxs
cyBpc0xvY2FsaXplZE51bWJlckNoYXJhY3RlcigpIGFuZCBpc0hUTUxOdW1iZXJDaGFyYWN0ZXIo
KQorICAgICAgICAoV2ViQ29yZTo6SFRNTElucHV0RWxlbWVudDo6dmlzaWJsZVZhbHVlKToKKyAg
ICAgICAgICBDYWxscyBmb3JtYXRMb2NhbGl6ZWROdW1iZXIoKSBmb3IgdHlwZT1udW1iZXIsIGNh
bGxzIHZhbHVlKCkgb3RoZXJ3aXNlLgorICAgICAgICAoV2ViQ29yZTo6SFRNTElucHV0RWxlbWVu
dDo6aXNBY2NlcHRhYmxlVmFsdWUpOiBDYWxscyBwYXJzZUxvY2FsaXplZE51bWJlcigpLgorICAg
ICAgICAoV2ViQ29yZTo6SFRNTElucHV0RWxlbWVudDo6c2FuaXRpemVWYWx1ZSk6IENhbGxzIHBh
cnNlTG9jYWxpemVkTnVtYmVyKCkuCisgICAgICAgICogaHRtbC9IVE1MSW5wdXRFbGVtZW50Lmg6
IEFkZCB2aXNpYmxlVmFsdWUoKS4KKyAgICAgICAgKiBwbGF0Zm9ybS90ZXh0L0xvY2FsaXplZE51
bWJlci5oOiBBZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS90ZXh0L0xvY2FsaXplZE51bWJlck5v
bmUuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OnBhcnNlTG9jYWxpemVkTnVtYmVyKToK
KyAgICAgICAgKFdlYkNvcmU6OmZvcm1hdExvY2FsaXplZE51bWJlcik6CisgICAgICAgIChXZWJD
b3JlOjppc0xvY2FsaXplZE51bWJlckNoYXJhY3Rlcik6CisgICAgICAgICogcmVuZGVyaW5nL1Jl
bmRlclRleHRDb250cm9sU2luZ2xlTGluZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJU
ZXh0Q29udHJvbFNpbmdsZUxpbmU6OnVwZGF0ZUZyb21FbGVtZW50KToKKyAgICAgICAgICBDYWxs
cyBJbnB1dEVsZW1lbnQ6OnZpc2libGVWYWx1ZSgpIGluc3RlYWQgb2YgdmFsdWUoKS4KKyAgICAg
ICAgKiB3bWwvV01MSW5wdXRFbGVtZW50Lmg6CisgICAgICAgIChXZWJDb3JlOjpXTUxJbnB1dEVs
ZW1lbnQ6OnZpc2libGVWYWx1ZSk6CisgICAgICAgICAgSW1wbGVtZW50IHZpc2libGVWYWx1ZSgp
LiBJdCBqdXN0IGNhbGxzIHZhbHVlKCkuCisKIDIwMTAtMTEtMDEgIFNpbW9uIEZyYXNlciAgPHNp
bW9uLmZyYXNlckBhcHBsZS5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgRGFuIEJlcm5zdGVp
bi4KZGlmZiAtLWdpdCBhL1dlYkNvcmUvR05VbWFrZWZpbGUuYW0gYi9XZWJDb3JlL0dOVW1ha2Vm
aWxlLmFtCmluZGV4IGI0MjQzODgwYzRlOTI5YWU3Mzg5NjVjYzRkN2I2OTExNTI3YjljOTAuLjc4
MjQ4ZGE0ODM2YTNjZjI2MWJlYmFhY2YxYzhlMjA3NzhmZTU1OGIgMTAwNjQ0Ci0tLSBhL1dlYkNv
cmUvR05VbWFrZWZpbGUuYW0KKysrIGIvV2ViQ29yZS9HTlVtYWtlZmlsZS5hbQpAQCAtMjQ4MSw2
ICsyNDgxLDggQEAgd2ViY29yZV9zb3VyY2VzICs9IFwKIAlXZWJDb3JlL3BsYXRmb3JtL3RleHQv
SHlwaGVuYXRpb24uaCBcCiAJV2ViQ29yZS9wbGF0Zm9ybS90ZXh0L0xpbmVFbmRpbmcuY3BwIFwK
IAlXZWJDb3JlL3BsYXRmb3JtL3RleHQvTGluZUVuZGluZy5oIFwKKwlXZWJDb3JlL3BsYXRmb3Jt
L3RleHQvTG9jYWxpemVkTnVtYmVyLmggXAorCVdlYkNvcmUvcGxhdGZvcm0vdGV4dC9Mb2NhbGl6
ZWROdW1iZXJOb25lLmNwcCBcCiAJV2ViQ29yZS9wbGF0Zm9ybS90ZXh0L1BhcnNlclV0aWxpdGll
cy5oIFwKIAlXZWJDb3JlL3BsYXRmb3JtL3RleHQvUGxhdGZvcm1TdHJpbmcuaCBcCiAJV2ViQ29y
ZS9wbGF0Zm9ybS90ZXh0L1JlZ3VsYXJFeHByZXNzaW9uLmNwcCBcCmRpZmYgLS1naXQgYS9XZWJD
b3JlL1dlYkNvcmUuZ3lwaSBiL1dlYkNvcmUvV2ViQ29yZS5neXBpCmluZGV4IGE3YTU1NmE0YzVh
MTczMDAyMmI5YTcxMGFkYjg2MTAyOGQ5YjJlMDIuLjYzOTE0YTc4MWE0NWU0MzhkYjkzOGMyZTIy
Y2JlNDkxNmFmNzY0ZTggMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvV2ViQ29yZS5neXBpCisrKyBiL1dl
YkNvcmUvV2ViQ29yZS5neXBpCkBAIC0zMTU5LDYgKzMxNTksOCBAQAogICAgICAgICAgICAgJ3Bs
YXRmb3JtL3RleHQvSHlwaGVuYXRpb24uaCcsCiAgICAgICAgICAgICAncGxhdGZvcm0vdGV4dC9M
aW5lRW5kaW5nLmNwcCcsCiAgICAgICAgICAgICAncGxhdGZvcm0vdGV4dC9MaW5lRW5kaW5nLmgn
LAorICAgICAgICAgICAgJ3BsYXRmb3JtL3RleHQvTG9jYWxpemVkTnVtYmVyLmgnLAorICAgICAg
ICAgICAgJ3BsYXRmb3JtL3RleHQvTG9jYWxpemVkTnVtYmVyTm9uZS5jcHAnLAogICAgICAgICAg
ICAgJ3BsYXRmb3JtL3RleHQvUGFyc2VyVXRpbGl0aWVzLmgnLAogICAgICAgICAgICAgJ3BsYXRm
b3JtL3RleHQvUGxhdGZvcm1TdHJpbmcuaCcsCiAgICAgICAgICAgICAncGxhdGZvcm0vdGV4dC9S
ZWd1bGFyRXhwcmVzc2lvbi5jcHAnLApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9XZWJDb3JlLnBybyBi
L1dlYkNvcmUvV2ViQ29yZS5wcm8KaW5kZXggNDRkNTQ0ZDRiNmEyM2M4N2JiMWIwYjczMzE4Mjk4
OWM1ZTc1Yzg4Yi4uYjQ1YWFjMjBmZGU4ZjljYzg3OTRhYmExMDExMTJhMTU4MjNhODFlNCAxMDA2
NDQKLS0tIGEvV2ViQ29yZS9XZWJDb3JlLnBybworKysgYi9XZWJDb3JlL1dlYkNvcmUucHJvCkBA
IC0xMTI3LDYgKzExMjcsNyBAQCBTT1VSQ0VTICs9IFwKICAgICBwbGF0Zm9ybS90ZXh0L0Jhc2U2
NC5jcHAgXAogICAgIHBsYXRmb3JtL3RleHQvQmlkaUNvbnRleHQuY3BwIFwKICAgICBwbGF0Zm9y
bS90ZXh0L0h5cGhlbmF0aW9uLmNwcCBcCisgICAgcGxhdGZvcm0vdGV4dC9Mb2NhbGl6ZWROdW1i
ZXJOb25lLmNwcCBcCiAgICAgcGxhdGZvcm0vQ29udGVudFR5cGUuY3BwIFwKICAgICBwbGF0Zm9y
bS9Db250ZXh0TWVudS5jcHAgXAogICAgIHBsYXRmb3JtL0Nyb3NzVGhyZWFkQ29waWVyLmNwcCBc
CmRpZmYgLS1naXQgYS9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qIGIvV2Vi
Q29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvagppbmRleCBiYzFmODkwYmI4NTZjNTYw
MGNlZDVhNGY3YWQ5N2RkZTY2NGEwZDFhLi40MTBjZWZlMmRjNWExZTk3NDhiNGI5NTA3YzAyYzky
YzNlNjExOWRiIDEwMDY0NAotLS0gYS9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNw
cm9qCisrKyBiL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2oKQEAgLTI5MDI3
LDYgKzI5MDI3LDE0IEBACiAJCQkJCT4NCiAJCQkJPC9GaWxlPg0KIAkJCQk8RmlsZQ0KKwkJCQkJ
UmVsYXRpdmVQYXRoPSIuLlxwbGF0Zm9ybVx0ZXh0XExvY2FsaXplZE51bWJlci5oIg0KKwkJCQkJ
Pg0KKwkJCQk8L0ZpbGU+DQorCQkJCTxGaWxlDQorCQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXHBsYXRm
b3JtXHRleHRcTG9jYWxpemVkTnVtYmVyTm9uZS5jcHAiDQorCQkJCQk+DQorCQkJCTwvRmlsZT4N
CisJCQkJPEZpbGUNCiAJCQkJCVJlbGF0aXZlUGF0aD0iLi5ccGxhdGZvcm1cdGV4dFxQYXJzZXJV
dGlsaXRpZXMuaCINCiAJCQkJCT4NCiAJCQkJPC9GaWxlPg0KZGlmZiAtLWdpdCBhL1dlYkNvcmUv
V2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvV2ViQ29yZS9XZWJDb3JlLnhjb2Rl
cHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggZDJkNjgzYjYwMzljYjNkYWE3MDNlNzI2NTI5Yjdj
ODk0ODA0NjcxNS4uMjgwZmUzMjIyYzA5MGEzZWQzYzg3NzhkZDM1NDdmYWQ4MTQ1NDAwMyAxMDA2
NDQKLS0tIGEvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIv
V2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTU0ODksNiArNTQ4
OSw4IEBACiAJCUYzRDQ2MTQ5MTE2MUQ1MzIwMENBMEQwOSAvKiBKU1dvcmtlckNvbnRleHRFcnJv
ckhhbmRsZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IEYzRDQ2MTQ3MTE2MUQ1MzIwMENBMEQwOSAvKiBKU1dvcmtlckNvbnRleHRFcnJvckhhbmRsZXIu
aCAqLzsgfTsKIAkJRjRFQUY0QUUxMEM3NDJCMTAwOTEwMEQzIC8qIE9wZW5UeXBlU2FuaXRpemVy
LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY0RUFG
NEFDMTBDNzQyQjEwMDkxMDBEMyAvKiBPcGVuVHlwZVNhbml0aXplci5jcHAgKi87IH07CiAJCUY0
RUFGNEFGMTBDNzQyQjEwMDkxMDBEMyAvKiBPcGVuVHlwZVNhbml0aXplci5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjRFQUY0QUQxMEM3NDJCMTAwOTEw
MEQzIC8qIE9wZW5UeXBlU2FuaXRpemVyLmggKi87IH07CisJCUY1MTQyQzY5MTIzRjEyQjAwMEY1
QkQ0QyAvKiBMb2NhbGl6ZWROdW1iZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IEY1MTQyQzY4MTIzRjEyQjAwMEY1QkQ0QyAvKiBMb2NhbGl6ZWROdW1i
ZXIuaCAqLzsgfTsKKwkJRjUxNDJDNkIxMjNGMTJDNTAwRjVCRDRDIC8qIExvY2FsaXplZE51bWJl
ck5vbmUuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
RjUxNDJDNkExMjNGMTJDNTAwRjVCRDRDIC8qIExvY2FsaXplZE51bWJlck5vbmUuY3BwICovOyB9
OwogCQlGNTVCM0RBRDEyNTFGMTJEMDAzRUYyNjkgLyogQmFzZVRleHRJbnB1dFR5cGUuY3BwIGlu
IFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjU1QjNENzkxMjUx
RjEyRDAwM0VGMjY5IC8qIEJhc2VUZXh0SW5wdXRUeXBlLmNwcCAqLzsgfTsKIAkJRjU1QjNEQUUx
MjUxRjEyRDAwM0VGMjY5IC8qIEJhc2VUZXh0SW5wdXRUeXBlLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNTVCM0Q3QTEyNTFGMTJEMDAzRUYyNjkgLyog
QmFzZVRleHRJbnB1dFR5cGUuaCAqLzsgfTsKIAkJRjU1QjNEQUYxMjUxRjEyRDAwM0VGMjY5IC8q
IEJ1dHRvbklucHV0VHlwZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSBGNTVCM0Q3QjEyNTFGMTJEMDAzRUYyNjkgLyogQnV0dG9uSW5wdXRUeXBlLmNw
cCAqLzsgfTsKQEAgLTExNTQ0LDYgKzExNTQ2LDggQEAKIAkJRjNENDYxNDcxMTYxRDUzMjAwQ0Ew
RDA5IC8qIEpTV29ya2VyQ29udGV4dEVycm9ySGFuZGxlci5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBKU1dvcmtlckNvbnRleHRFcnJvckhhbmRsZXIuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJRjRFQUY0QUMxMEM3NDJCMTAwOTEwMEQzIC8qIE9wZW5UeXBlU2Fu
aXRpemVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IE9wZW5UeXBl
U2FuaXRpemVyLmNwcDsgcGF0aCA9IG9wZW50eXBlL09wZW5UeXBlU2FuaXRpemVyLmNwcDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRjRFQUY0QUQxMEM3NDJCMTAwOTEwMEQzIC8qIE9w
ZW5UeXBlU2FuaXRpemVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IE9wZW5U
eXBlU2FuaXRpemVyLmg7IHBhdGggPSBvcGVudHlwZS9PcGVuVHlwZVNhbml0aXplci5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OworCQlGNTE0MkM2ODEyM0YxMkIwMDBGNUJENEMgLyogTG9j
YWxpemVkTnVtYmVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IExvY2FsaXpl
ZE51bWJlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlGNTE0MkM2QTEyM0YxMkM1
MDBGNUJENEMgLyogTG9jYWxpemVkTnVtYmVyTm9uZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5jcHA7IHBhdGggPSBMb2NhbGl6ZWROdW1iZXJOb25lLmNwcDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJRjUyM0QyM0IwMkRFNDM5NjAxODYzNUNBIC8qIEhUTUxEb2N1bWVudC5j
cHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGluZGVu
dFdpZHRoID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGgg
PSBIVE1MRG9jdW1lbnQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB0YWJXaWR0aCA9IDg7
IHVzZXNUYWJzID0gMDsgfTsKIAkJRjUyM0QyM0MwMkRFNDM5NjAxODYzNUNBIC8qIEhUTUxEb2N1
bWVudC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBp
bmRlbnRXaWR0aCA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBIVE1MRG9jdW1lbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgdGFiV2lkdGggPSA4OyB1
c2VzVGFicyA9IDA7IH07CiAJCUY1MjNEMjNFMDJERTQzOTYwMTg2MzVDQSAvKiBIVE1MRWxlbWVu
dC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGlu
ZGVudFdpZHRoID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBh
dGggPSBIVE1MRWxlbWVudC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IHRhYldpZHRoID0g
ODsgdXNlc1RhYnMgPSAwOyB9OwpAQCAtMTY2ODQsNiArMTY2ODgsOCBAQAogCQkJCTM3NUNEMjMx
MTE5RDQzQzgwMEEyQTg1OSAvKiBIeXBoZW5hdGlvbi5oICovLAogCQkJCTg5QjVFQTlGMTFFODAw
M0QwMEYyMzY3RSAvKiBMaW5lRW5kaW5nLmNwcCAqLywKIAkJCQk4OUI1RUFBMDExRTgwMDNEMDBG
MjM2N0UgLyogTGluZUVuZGluZy5oICovLAorCQkJCUY1MTQyQzY4MTIzRjEyQjAwMEY1QkQ0QyAv
KiBMb2NhbGl6ZWROdW1iZXIuaCAqLywKKwkJCQlGNTE0MkM2QTEyM0YxMkM1MDBGNUJENEMgLyog
TG9jYWxpemVkTnVtYmVyTm9uZS5jcHAgKi8sCiAJCQkJQkM3NkFDMTEwREQ3QUQ1QzAwNDE1RjM0
IC8qIFBhcnNlclV0aWxpdGllcy5oICovLAogCQkJCUIyQzNEOUZCMEQwMDZDMUQwMEVGNkYyNiAv
KiBQbGF0Zm9ybVN0cmluZy5oICovLAogCQkJCUIyQzNEOUZDMEQwMDZDMUQwMEVGNkYyNiAvKiBS
ZWd1bGFyRXhwcmVzc2lvbi5jcHAgKi8sCkBAIC0yMDMyOSw2ICsyMDMzNSw3IEBACiAJCQkJMDZF
ODFFRDcwQUI1RDVFOTAwQzg3ODM3IC8qIExvY2FsQ3VycmVudEdyYXBoaWNzQ29udGV4dC5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJODk4Nzg1NjgxMjJDQTA2NDAwM0FBQkRBIC8qIExvY2FsRmlsZVN5
c3RlbS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkM1Q0ZDQTkxMUY3OTMzMjAwOTlFRDA5IC8qIExv
Y2FsaXphdGlvblN0cmF0ZWd5LmggaW4gSGVhZGVycyAqLywKKwkJCQlGNTE0MkM2OTEyM0YxMkIw
MDBGNUJENEMgLyogTG9jYWxpemVkTnVtYmVyLmggaW4gSGVhZGVycyAqLywKIAkJCQk5MzUyMDdC
RTA5QkQ0MTBBMDBGMjAzOEQgLyogTG9jYWxpemVkU3RyaW5ncy5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJNTExRjIzMTgwREMxNjBEQTAwNEYwMDMyIC8qIExvY2FsU3RvcmFnZVRhc2suaCBpbiBIZWFk
ZXJzICovLAogCQkJCTUxMUYyMzFBMERDMTYwREEwMDRGMDAzMiAvKiBMb2NhbFN0b3JhZ2VUaHJl
YWQuaCBpbiBIZWFkZXJzICovLApAQCAtMjMwMTksNiArMjMwMjYsNyBAQAogCQkJCTY1NkQzNzMz
MEFEQkE1REUwMEE0NTU0RCAvKiBMb2FkZXJOU1VSTEV4dHJhcy5tbSBpbiBTb3VyY2VzICovLAog
CQkJCTA2RTgxRUVDMEFCNURBOTcwMEM4NzgzNyAvKiBMb2NhbEN1cnJlbnRHcmFwaGljc0NvbnRl
eHQubW0gaW4gU291cmNlcyAqLywKIAkJCQk4OTg3ODU2NzEyMkNBMDY0MDAzQUFCREEgLyogTG9j
YWxGaWxlU3lzdGVtLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCUY1MTQyQzZCMTIzRjEyQzUwMEY1
QkQ0QyAvKiBMb2NhbGl6ZWROdW1iZXJOb25lLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUMwNDZF
MUFDMTIwOEE5RkUwMEJBMkNGNyAvKiBMb2NhbGl6ZWRTdHJpbmdzLmNwcCBpbiBTb3VyY2VzICov
LAogCQkJCTUxMUYyMzE3MERDMTYwREEwMDRGMDAzMiAvKiBMb2NhbFN0b3JhZ2VUYXNrLmNwcCBp
biBTb3VyY2VzICovLAogCQkJCTUxMUYyMzE5MERDMTYwREEwMDRGMDAzMiAvKiBMb2NhbFN0b3Jh
Z2VUaHJlYWQuY3BwIGluIFNvdXJjZXMgKi8sCmRpZmYgLS1naXQgYS9XZWJDb3JlL2RvbS9JbnB1
dEVsZW1lbnQuaCBiL1dlYkNvcmUvZG9tL0lucHV0RWxlbWVudC5oCmluZGV4IDM0Nzg0YmM3ZTdk
MzdjMDc0NmY1NWM1MWQ2MDE4ODk4OTc4NzM1OGUuLjUwZjM4MDE0ZmVhM2E3M2E3YmFmZmNiODA0
ZTdjMDQ4N2ZmY2QwYzMgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvZG9tL0lucHV0RWxlbWVudC5oCisr
KyBiL1dlYkNvcmUvZG9tL0lucHV0RWxlbWVudC5oCkBAIC01OSw2ICs1OSw4IEBAIHB1YmxpYzoK
ICAgICB2aXJ0dWFsIFN0cmluZyB2YWx1ZSgpIGNvbnN0ID0gMDsKICAgICB2aXJ0dWFsIHZvaWQg
c2V0VmFsdWUoY29uc3QgU3RyaW5nJiwgYm9vbCBzZW5kQ2hhbmdlRXZlbnQgPSBmYWxzZSkgPSAw
OwogICAgIHZpcnR1YWwgdm9pZCBzZXRWYWx1ZUZvclVzZXIoY29uc3QgU3RyaW5nJikgPSAwOwor
ICAgIC8vIFRoZSB2YWx1ZSB3aGljaCBpcyBkcmF3biBieSBhIHJlbmRlcmVyLgorICAgIHZpcnR1
YWwgU3RyaW5nIHZpc2libGVWYWx1ZSgpIGNvbnN0ID0gMDsKIAogICAgIC8vIFJldHVybnMgdHJ1
ZSBpZiB0aGUgc3BlY2lmaWVkIHN0cmluZyBjYW4gYmUgc2V0IGFzIHRoZSB2YWx1ZSBvZiBJbnB1
dEVsZW1lbnQuCiAgICAgdmlydHVhbCBib29sIGlzQWNjZXB0YWJsZVZhbHVlKGNvbnN0IFN0cmlu
ZyYpIGNvbnN0ID0gMDsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvaHRtbC9IVE1MSW5wdXRFbGVtZW50
LmNwcCBiL1dlYkNvcmUvaHRtbC9IVE1MSW5wdXRFbGVtZW50LmNwcAppbmRleCBiMDMwNjVjOWFm
YzQ4MWI5ZjMxOGU2MzMxNDJkZTBkYzFiMTgzOWUyLi5jNzVmMjIzMjY0MWI4ZjU0Y2E4NTAyZWU4
ODMwMzg3YTZhMDNmYTk0IDEwMDY0NAotLS0gYS9XZWJDb3JlL2h0bWwvSFRNTElucHV0RWxlbWVu
dC5jcHAKKysrIGIvV2ViQ29yZS9odG1sL0hUTUxJbnB1dEVsZW1lbnQuY3BwCkBAIC01Myw2ICs1
Myw3IEBACiAjaW5jbHVkZSAiSFRNTFBhcnNlcklkaW9tcy5oIgogI2luY2x1ZGUgIklucHV0VHlw
ZS5oIgogI2luY2x1ZGUgIktleWJvYXJkRXZlbnQuaCIKKyNpbmNsdWRlICJMb2NhbGl6ZWROdW1i
ZXIuaCIKICNpbmNsdWRlICJMb2NhbGl6ZWRTdHJpbmdzLmgiCiAjaW5jbHVkZSAiTW91c2VFdmVu
dC5oIgogI2luY2x1ZGUgIlBhZ2UuaCIKQEAgLTgwLDEwICs4MSwxNiBAQCB1c2luZyBuYW1lc3Bh
Y2UgSFRNTE5hbWVzOwogCiBjb25zdCBpbnQgbWF4U2F2ZWRSZXN1bHRzID0gMjU2OwogCisvLyBS
ZXR1cm5zIHRydWUgaWYgdGhlIHNwZWNpZmllZCBjaGFyYWN0ZXIgY2FuIGJlIGEgcGFydCBvZiAn
dmFsaWQgZmxvYXRpbmcKKy8vIHBvaW50IG51bWJlcicgb2YgSFRNTDUuCitzdGF0aWMgaW5saW5l
IGJvb2wgaXNIVE1MTnVtYmVyQ2hhcmFjdGVyKFVDaGFyIGNoKQoreworICAgIHJldHVybiBjaCA9
PSAnKycgfHwgY2ggPT0gJy0nIHx8IGNoID09ICcuJyB8fCBjaCA9PSAnZScgfHwgY2ggPT0gJ0Un
IHx8IChjaCA+PSAnMCcgJiYgY2ggPD0gJzknKTsKK30KKwogc3RhdGljIGJvb2wgaXNOdW1iZXJD
aGFyYWN0ZXIoVUNoYXIgY2gpCiB7Ci0gICAgcmV0dXJuIGNoID09ICcrJyB8fCBjaCA9PSAnLScg
fHwgY2ggPT0gJy4nIHx8IGNoID09ICdlJyB8fCBjaCA9PSAnRScKLSAgICAgICAgfHwgKGNoID49
ICcwJyAmJiBjaCA8PSAnOScpOworICAgIHJldHVybiBpc0xvY2FsaXplZE51bWJlckNoYXJhY3Rl
cihjaCkgfHwgaXNIVE1MTnVtYmVyQ2hhcmFjdGVyKGNoKTsKIH0KIAogSFRNTElucHV0RWxlbWVu
dDo6SFRNTElucHV0RWxlbWVudChjb25zdCBRdWFsaWZpZWROYW1lJiB0YWdOYW1lLCBEb2N1bWVu
dCogZG9jdW1lbnQsIEhUTUxGb3JtRWxlbWVudCogZm9ybSkKQEAgLTE3MTYsMTcgKzE3MjMsMzYg
QEAgRmlsZUxpc3QqIEhUTUxJbnB1dEVsZW1lbnQ6OmZpbGVzKCkKICAgICByZXR1cm4gbV9maWxl
TGlzdC5nZXQoKTsKIH0KIAorU3RyaW5nIEhUTUxJbnB1dEVsZW1lbnQ6OnZpc2libGVWYWx1ZSgp
IGNvbnN0Cit7CisgICAgU3RyaW5nIGN1cnJlbnRWYWx1ZSA9IHZhbHVlKCk7CisgICAgaWYgKGRl
cHJlY2F0ZWRJbnB1dFR5cGUoKSAhPSBOVU1CRVIpCisgICAgICAgIHJldHVybiBjdXJyZW50VmFs
dWU7CisgICAgaWYgKGN1cnJlbnRWYWx1ZS5pc0VtcHR5KCkpCisgICAgICAgIHJldHVybiBjdXJy
ZW50VmFsdWU7CisgICAgZG91YmxlIGRvdWJsZVZhbHVlID0gbnVtZXJpY19saW1pdHM8ZG91Ymxl
Pjo6cXVpZXRfTmFOKCk7CisgICAgcGFyc2VUb0RvdWJsZUZvck51bWJlclR5cGUoY3VycmVudFZh
bHVlLCAmZG91YmxlVmFsdWUpOworICAgIFN0cmluZyBsb2NhbGl6ZWQgPSBmb3JtYXRMb2NhbGl6
ZWROdW1iZXIoZG91YmxlVmFsdWUpOworICAgIHJldHVybiBsb2NhbGl6ZWQuaXNFbXB0eSgpID8g
Y3VycmVudFZhbHVlIDogbG9jYWxpemVkOworfQorCiBib29sIEhUTUxJbnB1dEVsZW1lbnQ6Omlz
QWNjZXB0YWJsZVZhbHVlKGNvbnN0IFN0cmluZyYgcHJvcG9zZWRWYWx1ZSkgY29uc3QKIHsKICAg
ICBpZiAoZGVwcmVjYXRlZElucHV0VHlwZSgpICE9IE5VTUJFUikKICAgICAgICAgcmV0dXJuIHRy
dWU7Ci0gICAgcmV0dXJuIHByb3Bvc2VkVmFsdWUuaXNFbXB0eSgpIHx8IHBhcnNlVG9Eb3VibGVG
b3JOdW1iZXJUeXBlKHByb3Bvc2VkVmFsdWUsIDApOworICAgIHJldHVybiBwcm9wb3NlZFZhbHVl
LmlzRW1wdHkoKSB8fCBpc2Zpbml0ZShwYXJzZUxvY2FsaXplZE51bWJlcihwcm9wb3NlZFZhbHVl
KSkgfHwgcGFyc2VUb0RvdWJsZUZvck51bWJlclR5cGUocHJvcG9zZWRWYWx1ZSwgMCk7CiB9CiAK
IFN0cmluZyBIVE1MSW5wdXRFbGVtZW50OjpzYW5pdGl6ZVZhbHVlKGNvbnN0IFN0cmluZyYgcHJv
cG9zZWRWYWx1ZSkgY29uc3QKIHsKLSAgICBpZiAoZGVwcmVjYXRlZElucHV0VHlwZSgpID09IE5V
TUJFUikKKyAgICBpZiAoZGVwcmVjYXRlZElucHV0VHlwZSgpID09IE5VTUJFUikgeworICAgICAg
ICAvLyBUcnkgdG8gcGFyc2UgdGhlIHZhbHVlIGFzIGEgbG9jYWxpemVkIG51bWJlciwgdGhlbiB0
cnkgdG8gcGFyc2UgaXQgYXMKKyAgICAgICAgLy8gdGhlIHN0YW5kYXJkIGZvcm1hdC4KKyAgICAg
ICAgZG91YmxlIHBhcnNlZFZhbHVlID0gcGFyc2VMb2NhbGl6ZWROdW1iZXIocHJvcG9zZWRWYWx1
ZSk7CisgICAgICAgIGlmIChpc2Zpbml0ZShwYXJzZWRWYWx1ZSkpCisgICAgICAgICAgICByZXR1
cm4gc2VyaWFsaXplRm9yTnVtYmVyVHlwZShwYXJzZWRWYWx1ZSk7CiAgICAgICAgIHJldHVybiBw
YXJzZVRvRG91YmxlRm9yTnVtYmVyVHlwZShwcm9wb3NlZFZhbHVlLCAwKSA/IHByb3Bvc2VkVmFs
dWUgOiBTdHJpbmcoKTsKKyAgICB9CiAKICAgICBpZiAoaXNUZXh0RmllbGQoKSkKICAgICAgICAg
cmV0dXJuIElucHV0RWxlbWVudDo6c2FuaXRpemVWYWx1ZUZvclRleHRGaWVsZCh0aGlzLCBwcm9w
b3NlZFZhbHVlKTsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvaHRtbC9IVE1MSW5wdXRFbGVtZW50Lmgg
Yi9XZWJDb3JlL2h0bWwvSFRNTElucHV0RWxlbWVudC5oCmluZGV4IDFhMDQ5MGU3MDFhMWIxYjUy
N2I4NzdmY2RkN2ZlZjQ1NDU3MzhiZDcuLjJhM2RjMDFkNWI4ZjY2MmQ0YzVhZDViZTNiMzJiNmNi
ZjVjZWRiZGYgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvaHRtbC9IVE1MSW5wdXRFbGVtZW50LmgKKysr
IGIvV2ViQ29yZS9odG1sL0hUTUxJbnB1dEVsZW1lbnQuaApAQCAtMzAzLDYgKzMwMyw3IEBAIHBy
aXZhdGU6CiAKICAgICB2aXJ0dWFsIHZvaWQgY2FjaGVTZWxlY3Rpb24oaW50IHN0YXJ0LCBpbnQg
ZW5kKTsKIAorICAgIHZpcnR1YWwgU3RyaW5nIHZpc2libGVWYWx1ZSgpIGNvbnN0OwogICAgIHZp
cnR1YWwgYm9vbCBpc0FjY2VwdGFibGVWYWx1ZShjb25zdCBTdHJpbmcmKSBjb25zdDsKICAgICB2
aXJ0dWFsIFN0cmluZyBzYW5pdGl6ZVZhbHVlKGNvbnN0IFN0cmluZyYpIGNvbnN0OwogICAgIHZp
cnR1YWwgYm9vbCBoYXNVbmFjY2VwdGFibGVWYWx1ZSgpIGNvbnN0OwpkaWZmIC0tZ2l0IGEvV2Vi
Q29yZS9wbGF0Zm9ybS90ZXh0L0xvY2FsaXplZE51bWJlci5oIGIvV2ViQ29yZS9wbGF0Zm9ybS90
ZXh0L0xvY2FsaXplZE51bWJlci5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjJjNGQxNTUxMDVkY2E0MTMxYTAzNzRk
ZjAyOGY0MWVmZDkyNzU4NTgKLS0tIC9kZXYvbnVsbAorKysgYi9XZWJDb3JlL3BsYXRmb3JtL3Rl
eHQvTG9jYWxpemVkTnVtYmVyLmgKQEAgLTAsMCArMSw1OSBAQAorLyoKKyAqIENvcHlyaWdodCAo
QykgMjAxMCBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zIGFyZQorICogbWV0OgorICoKKyAqICAgICAqIFJlZGlzdHJpYnV0aW9u
cyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIu
CisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2Ug
dGhlIGFib3ZlCisgKiBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCisgKiBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQv
b3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCisgKiBkaXN0cmlidXRpb24uCisg
KiAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2Yg
aXRzCisgKiBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHBy
b2R1Y3RzIGRlcml2ZWQgZnJvbQorICogdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHBy
aW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVE
IEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCisgKiAiQVMgSVMiIEFO
RCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAor
ICogTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkg
QU5EIEZJVE5FU1MgRk9SCisgKiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4g
SU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAorICogT1dORVIgT1IgQ09OVFJJQlVUT1JT
IEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCisgKiBTUEVD
SUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQg
Tk9UCisgKiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNF
UlZJQ0VTOyBMT1NTIE9GIFVTRSwKKyAqIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElO
VEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQorICogVEhFT1JZIE9GIExJQUJJ
TElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICog
KElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9V
VCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhF
IFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5kZWYgTG9jYWxpemVkTnVt
YmVyX2gKKyNkZWZpbmUgTG9jYWxpemVkTnVtYmVyX2gKKworI2luY2x1ZGUgPHd0Zi90ZXh0L1dU
RlN0cmluZy5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKKy8vIFBhcnNlcyBhIHN0cmluZyBy
ZXByZXNlbnRhdGlvbiBvZiBhIGZsb2F0aW5nIHBvaW50IG51bWJlciBsb2NhbGl6ZWQKKy8vIGZv
ciB0aGUgYnJvd3NlcidzIGN1cnJlbnQgbG9jYWxlLiBJZiB0aGUgaW5wdXQgc3RyaW5nIGlzIG5v
dCB2YWxpZAorLy8gb3IgYW4gaW1wbGVtZW50YXRpb24gZG9lc24ndCBzdXBwb3J0IGxvY2FsaXpl
ZCBudW1iZXJzLCB0aGlzCisvLyBmdW5jdGlvbiByZXR1cm5zIE5hTi4gVGhpcyBmdW5jdGlvbiBk
b2Vzbid0IG5lZWQgdG8gc3VwcG9ydAorLy8gc2NpZW50aWZpYyBub3RhdGlvbiwgTmFOLCArSW5m
aW5pdHkgYW5kIC1JbmZpbml0eSwgYW5kIGRvZXNuJ3QgbmVlZAorLy8gdG8gc3VwcG9ydCB0aGUg
c3RhbmRhcmQgcmVwcmVzZW50YXRpb25zIG9mIEVDTUFTY3JpcHQgYW5kIEhUTUw1LgorZG91Ymxl
IHBhcnNlTG9jYWxpemVkTnVtYmVyKGNvbnN0IFN0cmluZyYpOworCisvLyBTZXJpYWxpemVzIHRo
ZSBzcGVjaWZpZWQgZmxvYXRpbmcgcG9pbnQgbnVtYmVyIGZvciB0aGUgYnJvd3NlcidzCisvLyBj
dXJyZW50IGxvY2FsZS4gIElmIGFuIGltcGxlbWVudGF0aW9uIGRvZXNuJ3Qgc3VwcG9ydCBsb2Nh
bGl6ZWQKKy8vIG51bWJlcnMgb3IgdGhlIGlucHV0IHZhbHVlIGlzIE5hTiBvciBJbmZpbml0aXks
IHRoZSBmdW5jdGlvbiBzaG91bGQKKy8vIHJldHVybiBhbiBlbXB0eSBzdHJpbmcuCitTdHJpbmcg
Zm9ybWF0TG9jYWxpemVkTnVtYmVyKGRvdWJsZSk7CisKKy8vIFJldHVybnMgdHJ1ZSBpZiB0aGUg
aW5wdXQgY2hhcmFjdGVyIGNhbiBiZSB1c2VkIHRvIHJlcHJlc2VudCBhCisvLyBudW1iZXIgaW4g
dGhlIGJyb3dzZXIgbG9jYWxlLiBGb3IgZXhhbXBsZSwgdGhpcyBzaG91bGQgcmV0dXJuIHRydWUg
Zm9yIDAtOSAuCisvLyAsICsgLSBmb3IgZW4tVVMgbG9jYWxlLgorYm9vbCBpc0xvY2FsaXplZE51
bWJlckNoYXJhY3RlcihVQ2hhcjMyKTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5k
aWYgLy8gTG9jYWxpemVkTnVtYmVyX2gKZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGxhdGZvcm0vdGV4
dC9Mb2NhbGl6ZWROdW1iZXJOb25lLmNwcCBiL1dlYkNvcmUvcGxhdGZvcm0vdGV4dC9Mb2NhbGl6
ZWROdW1iZXJOb25lLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5mZjM5OGVmNTgxYTBiZWZjMzY3NjY3ODYzMjg5
YjdiMWE4ZjZjZTdmCi0tLSAvZGV2L251bGwKKysrIGIvV2ViQ29yZS9wbGF0Zm9ybS90ZXh0L0xv
Y2FsaXplZE51bWJlck5vbmUuY3BwCkBAIC0wLDAgKzEsNTUgQEAKKy8qCisgKiBDb3B5cmlnaHQg
KEMpIDIwMTAgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucyBhcmUKKyAqIG1ldDoKKyAqCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlv
bnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
LgorICogICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNl
IHRoZSBhYm92ZQorICogY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgorICogaW4gdGhlIGRvY3VtZW50YXRpb24gYW5k
L29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQorICogZGlzdHJpYnV0aW9uLgor
ICogICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9m
IGl0cworICogY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBw
cm9kdWN0cyBkZXJpdmVkIGZyb20KKyAqIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBw
cmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURF
RCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUworICogIkFTIElTIiBB
TkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QK
KyAqIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZ
IEFORCBGSVRORVNTIEZPUgorICogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQu
IElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKKyAqIE9XTkVSIE9SIENPTlRSSUJVVE9S
UyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAorICogU1BF
Q0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVU
IE5PVAorICogTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBT
RVJWSUNFUzsgTE9TUyBPRiBVU0UsCisgKiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJ
TlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKKyAqIFRIRU9SWSBPRiBMSUFC
SUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAq
IChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBP
VVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRI
RSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgi
CisjaW5jbHVkZSAiTG9jYWxpemVkTnVtYmVyLmgiCisKKyNpbmNsdWRlIDxsaW1pdHM+CisKK3Vz
aW5nIG5hbWVzcGFjZSBzdGQ7CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworZG91YmxlIHBhcnNl
TG9jYWxpemVkTnVtYmVyKGNvbnN0IFN0cmluZyYpCit7CisgICAgcmV0dXJuIG51bWVyaWNfbGlt
aXRzPGRvdWJsZT46OnF1aWV0X05hTigpOworfQorCitTdHJpbmcgZm9ybWF0TG9jYWxpemVkTnVt
YmVyKGRvdWJsZSkKK3sKKyAgICByZXR1cm4gU3RyaW5nKCk7Cit9CisKK2Jvb2wgaXNMb2NhbGl6
ZWROdW1iZXJDaGFyYWN0ZXIoVUNoYXIzMikKK3sKKyAgICByZXR1cm4gZmFsc2U7Cit9CisKK30g
Ly8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
clRleHRDb250cm9sU2luZ2xlTGluZS5jcHAgYi9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUZXh0
Q29udHJvbFNpbmdsZUxpbmUuY3BwCmluZGV4IDg1ZWZhZTg3ZjgyZGRkYjZmZWFkYWI2ODU4Njdm
MWFmZTNkYzE5NGUuLjExYjRiOGY2YjlkNDMxNGFkNjI0OTFlOTJmMThlNmRjOWUzMTU1NTYgMTAw
NjQ0Ci0tLSBhL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRleHRDb250cm9sU2luZ2xlTGluZS5j
cHAKKysrIGIvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGV4dENvbnRyb2xTaW5nbGVMaW5lLmNw
cApAQCAtNjkzLDcgKzY5Myw3IEBAIHZvaWQgUmVuZGVyVGV4dENvbnRyb2xTaW5nbGVMaW5lOjp1
cGRhdGVGcm9tRWxlbWVudCgpCiAgICAgICAgICAgICAgICAgc2hvdWxkVXBkYXRlVmFsdWUgPSBz
dGF0aWNfY2FzdDxIVE1MVGV4dEZvcm1Db250cm9sRWxlbWVudCo+KG5vZGUoKSktPnN1cHBvcnRz
UGxhY2Vob2xkZXIoKSB8fCAhc3RhdGljX2Nhc3Q8SFRNTElucHV0RWxlbWVudCo+KG5vZGUoKSkt
PmZvcm1Db250cm9sVmFsdWVNYXRjaGVzUmVuZGVyZXIoKTsKICAgICAgICAgICAgIH0KICAgICAg
ICAgICAgIGlmIChzaG91bGRVcGRhdGVWYWx1ZSkKLSAgICAgICAgICAgICAgICBzZXRJbm5lclRl
eHRWYWx1ZShpbnB1dEVsZW1lbnQoKS0+dmFsdWUoKSk7CisgICAgICAgICAgICAgICAgc2V0SW5u
ZXJUZXh0VmFsdWUoaW5wdXRFbGVtZW50KCktPnZpc2libGVWYWx1ZSgpKTsKICAgICAgICAgfQog
ICAgIH0KIApkaWZmIC0tZ2l0IGEvV2ViQ29yZS93bWwvV01MSW5wdXRFbGVtZW50LmggYi9XZWJD
b3JlL3dtbC9XTUxJbnB1dEVsZW1lbnQuaAppbmRleCBkZjdmNDk3MmI3MmNiZTg4NDIwZGFhOGRh
YTUxYTZmNWYzNDRhMDIyLi42YzY2NDEwYmNmNzZhOWVmZmIxOGVlNTM5ZGIwYTYxNzk4OWEyNTNl
IDEwMDY0NAotLS0gYS9XZWJDb3JlL3dtbC9XTUxJbnB1dEVsZW1lbnQuaAorKysgYi9XZWJDb3Jl
L3dtbC9XTUxJbnB1dEVsZW1lbnQuaApAQCAtNjMsNiArNjMsNyBAQCBwdWJsaWM6CiAgICAgdmly
dHVhbCBTdHJpbmcgdmFsdWUoKSBjb25zdDsKICAgICB2aXJ0dWFsIHZvaWQgc2V0VmFsdWUoY29u
c3QgU3RyaW5nJiwgYm9vbCBzZW5kQ2hhbmdlRXZlbnQgPSBmYWxzZSk7CiAgICAgdmlydHVhbCB2
b2lkIHNldFZhbHVlRm9yVXNlcihjb25zdCBTdHJpbmcmKTsKKyAgICB2aXJ0dWFsIFN0cmluZyB2
aXNpYmxlVmFsdWUoKSBjb25zdCB7IHJldHVybiB2YWx1ZSgpOyB9CiAgICAgdmlydHVhbCB2b2lk
IHNldFZhbHVlRnJvbVJlbmRlcmVyKGNvbnN0IFN0cmluZyYpOwogCiAgICAgdmlydHVhbCBib29s
IHNhdmVGb3JtQ29udHJvbFN0YXRlKFN0cmluZyYgdmFsdWUpIGNvbnN0Owo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>73959</attachid>
            <date>2010-11-15 21:31:16 -0800</date>
            <delta_ts>2010-12-06 20:08:56 -0800</delta_ts>
            <desc>Patch 6 (rebased)</desc>
            <filename>bug-45730-20101116143114.patch</filename>
            <type>text/plain</type>
            <size>21513</size>
            <attacher name="Kent Tamura">tkent</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQW5kcm9pZC5tayBiL1dlYkNvcmUvQW5kcm9pZC5tawppbmRl
eCBiNjRlMzJiNmQ4NWY0YWM2MmY3NTJjMDIzYjdhN2VlMWNhMDZhNDQ0Li5lYWRhN2U1ZDYwYzY3
ZjZiNDQ1ZDBhZTMwZjUxMjNmODY1OTA1YmU4IDEwMDY0NAotLS0gYS9XZWJDb3JlL0FuZHJvaWQu
bWsKKysrIGIvV2ViQ29yZS9BbmRyb2lkLm1rCkBAIC02MTQsNiArNjE0LDcgQEAgTE9DQUxfU1JD
X0ZJTEVTIDo9ICQoTE9DQUxfU1JDX0ZJTEVTKSBcCiAJcGxhdGZvcm0vdGV4dC9CYXNlNjQuY3Bw
IFwKIAlwbGF0Zm9ybS90ZXh0L0JpZGlDb250ZXh0LmNwcCBcCiAJcGxhdGZvcm0vdGV4dC9IeXBo
ZW5hdGlvbi5jcHAgXAorCXBsYXRmb3JtL3RleHQvTG9jYWxpemVkTnVtYmVyTm9uZS5jcHAgXAog
CXBsYXRmb3JtL3RleHQvUmVndWxhckV4cHJlc3Npb24uY3BwIFwKIAlwbGF0Zm9ybS90ZXh0L1Nl
Z21lbnRlZFN0cmluZy5jcHAgXAogCXBsYXRmb3JtL3RleHQvU3RyaW5nLmNwcCBcCmRpZmYgLS1n
aXQgYS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0IGIvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dAppbmRl
eCA5MzE3Njg3ZGRiZmIwODJhNjQ0ZDVhZjNjMDA5ZTg1NWU4ZjNlYjEyLi5mMjIwMjJiMDIwYWYx
YTQ5NTVjYzkwNzY0ZTc0YTJjOTE2OTg2MzYwIDEwMDY0NAotLS0gYS9XZWJDb3JlL0NNYWtlTGlz
dHMudHh0CisrKyBiL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKQEAgLTEzODQsNiArMTM4NCw3IEBA
IFNFVChXZWJDb3JlX1NPVVJDRVMKICAgICBwbGF0Zm9ybS90ZXh0L0Jhc2U2NC5jcHAKICAgICBw
bGF0Zm9ybS90ZXh0L0JpZGlDb250ZXh0LmNwcAogICAgIHBsYXRmb3JtL3RleHQvTGluZUVuZGlu
Zy5jcHAKKyAgICBwbGF0Zm9ybS90ZXh0L0xvY2FsaXplZE51bWJlck5vbmUuY3BwCiAgICAgcGxh
dGZvcm0vdGV4dC9IeXBoZW5hdGlvbi5jcHAKICAgICBwbGF0Zm9ybS90ZXh0L1JlZ3VsYXJFeHBy
ZXNzaW9uLmNwcAogICAgIHBsYXRmb3JtL3RleHQvU2VnbWVudGVkU3RyaW5nLmNwcApkaWZmIC0t
Z2l0IGEvV2ViQ29yZS9DaGFuZ2VMb2cgYi9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCAyZGVhZDFk
MWVmYmZlMDc2NGEwOTg1YjZkNmYyYmE5NTEzZWUyMGFhLi5hZDhlZDRiODRmYjI5YzY5MDlhNWEw
ZWU4N2Q1NDUyNzRjZThlODA5IDEwMDY0NAotLS0gYS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9X
ZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDUzIEBACisyMDEwLTA5LTEzICBLZW50IFRhbXVy
YSAgPHRrZW50QGNocm9taXVtLm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICBBUEkgdG8gc3VwcG9ydCBsb2NhbGl6ZWQgbnVtYmVycyBmb3IgPGlu
cHV0IHR5cGU9bnVtYmVyPgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9NDU3MzAKKworICAgICAgICBJbnRyb2R1Y2UgcGxhdGZvcm0vdGV4dC9Mb2NhbGl6
ZWROdW1iZXIuaCwgYW5kCisgICAgICAgIExvY2FsaXplZE51bWJlck5vbmUuY3BwLCB3aGljaCBp
cyBhbiBlbXB0eSBpbXBsZW1lbnRhdGlvbiBvZiB0aGUKKyAgICAgICAgZnVuY3Rpb25zIGluIExv
Y2FsaXplZE51bWJlci5oLiAgV2UgdXNlIExvY2FsaXplZE51bWJlck5vbmUuY3BwIGluCisgICAg
ICAgIGFsbCBwbGF0Zm9ybXMgZm9yIG5vdy4KKworICAgICAgICBBIHN0cmluZyBpbiBhIHR5cGU9
bnVtYmVyIGZpZWxkIGlzIHBhcnNlZCBhcyBhIGxvY2FsaXplZCBudW1iZXIKKyAgICAgICAgZmly
c3QuIElmIHRoZSBwYXJzaW5nIGZhaWxzLCBpdCBpcyBwYXJzZWQgYXMgdGhlIEhUTUw1IG51bWJl
ci4KKworICAgICAgICBXZSBpbnRyb2R1Y2UgSFRNTElucHV0RWxlbWVudDo6dmlzaWJsZVZhbHVl
KCkuIEl0IHJlcHJlc2VudHMgYSB2YWx1ZQorICAgICAgICB3aGljaCBzaG91bGQgYmUgZHJhd24g
YnkgYSByZW5kZXJlci4gSFRNTElucHV0RWxlbWVudDo6dmFsdWUoKSBhbHdheXMKKyAgICAgICAg
cmV0dXJucyBhIG51bWJlciBmb3JtYXR0ZWQgZm9yIEhUTUw1LCBhbmQgdmlzaWJsZVZhbHVlKCkg
bWF5IHJldHVybiBhCisgICAgICAgIGxvY2FsaXplZCBudW1iZXIuCisKKyAgICAgICAgTm8gbmV3
IHRlc3RzIGJlY2F1c2UgdGhpcyBkb2Vzbid0IGNoYW5nZSBhbnkgYmVoYXZpb3IuCisKKyAgICAg
ICAgKiBBbmRyb2lkLm1rOiBBZGQgTG9jYWxpemVkTnVtYmVyLmggYW5kL29yIExvY2FsaXplZE51
bWJlck5vbmUuY3BwLgorICAgICAgICAqIENNYWtlTGlzdHMudHh0OiBkaXR0by4KKyAgICAgICAg
KiBHTlVtYWtlZmlsZS5hbTogZGl0dG8uCisgICAgICAgICogV2ViQ29yZS5neXBpOiBkaXR0by4K
KyAgICAgICAgKiBXZWJDb3JlLnBybzogZGl0dG8uCisgICAgICAgICogV2ViQ29yZS52Y3Byb2ov
V2ViQ29yZS52Y3Byb2o6IGRpdHRvLgorICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2pl
Y3QucGJ4cHJvajogZGl0dG8uCisgICAgICAgICogZG9tL0lucHV0RWxlbWVudC5oOiBBZGQgdmlz
aWJsZVZhbHVlKCkuCisgICAgICAgICogaHRtbC9IVE1MSW5wdXRFbGVtZW50LmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OmlzSFRNTE51bWJlckNoYXJhY3Rlcik6IFJlbmFtZWQgZnJvbSBpc051bWJl
ckNoYXJhY3RlcigpLgorICAgICAgICAoV2ViQ29yZTo6aXNOdW1iZXJDaGFyYWN0ZXIpOiBDYWxs
cyBpc0xvY2FsaXplZE51bWJlckNoYXJhY3RlcigpIGFuZCBpc0hUTUxOdW1iZXJDaGFyYWN0ZXIo
KQorICAgICAgICAoV2ViQ29yZTo6SFRNTElucHV0RWxlbWVudDo6dmlzaWJsZVZhbHVlKToKKyAg
ICAgICAgICBDYWxscyBmb3JtYXRMb2NhbGl6ZWROdW1iZXIoKSBmb3IgdHlwZT1udW1iZXIsIGNh
bGxzIHZhbHVlKCkgb3RoZXJ3aXNlLgorICAgICAgICAoV2ViQ29yZTo6SFRNTElucHV0RWxlbWVu
dDo6aXNBY2NlcHRhYmxlVmFsdWUpOiBDYWxscyBwYXJzZUxvY2FsaXplZE51bWJlcigpLgorICAg
ICAgICAoV2ViQ29yZTo6SFRNTElucHV0RWxlbWVudDo6c2FuaXRpemVWYWx1ZSk6IENhbGxzIHBh
cnNlTG9jYWxpemVkTnVtYmVyKCkuCisgICAgICAgICogaHRtbC9IVE1MSW5wdXRFbGVtZW50Lmg6
IEFkZCB2aXNpYmxlVmFsdWUoKS4KKyAgICAgICAgKiBwbGF0Zm9ybS90ZXh0L0xvY2FsaXplZE51
bWJlci5oOiBBZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS90ZXh0L0xvY2FsaXplZE51bWJlck5v
bmUuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OnBhcnNlTG9jYWxpemVkTnVtYmVyKToK
KyAgICAgICAgKFdlYkNvcmU6OmZvcm1hdExvY2FsaXplZE51bWJlcik6CisgICAgICAgIChXZWJD
b3JlOjppc0xvY2FsaXplZE51bWJlckNoYXJhY3Rlcik6CisgICAgICAgICogcmVuZGVyaW5nL1Jl
bmRlclRleHRDb250cm9sU2luZ2xlTGluZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJU
ZXh0Q29udHJvbFNpbmdsZUxpbmU6OnVwZGF0ZUZyb21FbGVtZW50KToKKyAgICAgICAgICBDYWxs
cyBJbnB1dEVsZW1lbnQ6OnZpc2libGVWYWx1ZSgpIGluc3RlYWQgb2YgdmFsdWUoKS4KKyAgICAg
ICAgKiB3bWwvV01MSW5wdXRFbGVtZW50Lmg6CisgICAgICAgIChXZWJDb3JlOjpXTUxJbnB1dEVs
ZW1lbnQ6OnZpc2libGVWYWx1ZSk6CisgICAgICAgICAgSW1wbGVtZW50IHZpc2libGVWYWx1ZSgp
LiBJdCBqdXN0IGNhbGxzIHZhbHVlKCkuCisKIDIwMTAtMTEtMTUgIEtlbnQgVGFtdXJhICA8dGtl
bnRAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFJldmlld2VkIGJ5IERhcmluIEFkbGVyLgpkaWZm
IC0tZ2l0IGEvV2ViQ29yZS9HTlVtYWtlZmlsZS5hbSBiL1dlYkNvcmUvR05VbWFrZWZpbGUuYW0K
aW5kZXggMDk4NzVkNWI5YjlmMGU5ZDA3NGI0MGMxOGE4MzgzZmY1MDhkOWE4MC4uZTdlOWUzYzQz
ZDU0ZjQ1YzJhZjNlYzU0NjIxN2EzMTY4MThlYTI1NCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9HTlVt
YWtlZmlsZS5hbQorKysgYi9XZWJDb3JlL0dOVW1ha2VmaWxlLmFtCkBAIC0yNTA4LDYgKzI1MDgs
OCBAQCB3ZWJjb3JlX3NvdXJjZXMgKz0gXAogCVdlYkNvcmUvcGxhdGZvcm0vdGV4dC9IeXBoZW5h
dGlvbi5oIFwKIAlXZWJDb3JlL3BsYXRmb3JtL3RleHQvTGluZUVuZGluZy5jcHAgXAogCVdlYkNv
cmUvcGxhdGZvcm0vdGV4dC9MaW5lRW5kaW5nLmggXAorCVdlYkNvcmUvcGxhdGZvcm0vdGV4dC9M
b2NhbGl6ZWROdW1iZXIuaCBcCisJV2ViQ29yZS9wbGF0Zm9ybS90ZXh0L0xvY2FsaXplZE51bWJl
ck5vbmUuY3BwIFwKIAlXZWJDb3JlL3BsYXRmb3JtL3RleHQvUGFyc2VyVXRpbGl0aWVzLmggXAog
CVdlYkNvcmUvcGxhdGZvcm0vdGV4dC9QbGF0Zm9ybVN0cmluZy5oIFwKIAlXZWJDb3JlL3BsYXRm
b3JtL3RleHQvUmVndWxhckV4cHJlc3Npb24uY3BwIFwKZGlmZiAtLWdpdCBhL1dlYkNvcmUvV2Vi
Q29yZS5neXBpIGIvV2ViQ29yZS9XZWJDb3JlLmd5cGkKaW5kZXggYTkzZGM1MTg2MTIwZWI1NjY4
ZDllMDA2ZTM0MTNlYTgyZGYyNTAxNi4uOWIzZGEzYTkzYzliN2ZlZmU1N2JmOTNkZDEwOWZiNzNi
YWFhZGMyZCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9XZWJDb3JlLmd5cGkKKysrIGIvV2ViQ29yZS9X
ZWJDb3JlLmd5cGkKQEAgLTMxODYsNiArMzE4Niw4IEBACiAgICAgICAgICAgICAncGxhdGZvcm0v
dGV4dC9IeXBoZW5hdGlvbi5oJywKICAgICAgICAgICAgICdwbGF0Zm9ybS90ZXh0L0xpbmVFbmRp
bmcuY3BwJywKICAgICAgICAgICAgICdwbGF0Zm9ybS90ZXh0L0xpbmVFbmRpbmcuaCcsCisgICAg
ICAgICAgICAncGxhdGZvcm0vdGV4dC9Mb2NhbGl6ZWROdW1iZXIuaCcsCisgICAgICAgICAgICAn
cGxhdGZvcm0vdGV4dC9Mb2NhbGl6ZWROdW1iZXJOb25lLmNwcCcsCiAgICAgICAgICAgICAncGxh
dGZvcm0vdGV4dC9QYXJzZXJVdGlsaXRpZXMuaCcsCiAgICAgICAgICAgICAncGxhdGZvcm0vdGV4
dC9QbGF0Zm9ybVN0cmluZy5oJywKICAgICAgICAgICAgICdwbGF0Zm9ybS90ZXh0L1JlZ3VsYXJF
eHByZXNzaW9uLmNwcCcsCmRpZmYgLS1naXQgYS9XZWJDb3JlL1dlYkNvcmUucHJvIGIvV2ViQ29y
ZS9XZWJDb3JlLnBybwppbmRleCA3MzczMDRiN2E0OWJiYjIwNWM5MDU0M2UwYjk2NmI0ZDlmYWFi
MWZlLi5mMmY1M2IyM2MzM2M2NGQ3NDUyNGM2MWEzNTQ1MzJlOTk5MjNmYTA1IDEwMDY0NAotLS0g
YS9XZWJDb3JlL1dlYkNvcmUucHJvCisrKyBiL1dlYkNvcmUvV2ViQ29yZS5wcm8KQEAgLTExMzIs
NiArMTEzMiw3IEBAIFNPVVJDRVMgKz0gXAogICAgIHBsYXRmb3JtL3RleHQvQmFzZTY0LmNwcCBc
CiAgICAgcGxhdGZvcm0vdGV4dC9CaWRpQ29udGV4dC5jcHAgXAogICAgIHBsYXRmb3JtL3RleHQv
SHlwaGVuYXRpb24uY3BwIFwKKyAgICBwbGF0Zm9ybS90ZXh0L0xvY2FsaXplZE51bWJlck5vbmUu
Y3BwIFwKICAgICBwbGF0Zm9ybS9Db250ZW50VHlwZS5jcHAgXAogICAgIHBsYXRmb3JtL0NvbnRl
eHRNZW51LmNwcCBcCiAgICAgcGxhdGZvcm0vQ3Jvc3NUaHJlYWRDb3BpZXIuY3BwIFwKZGlmZiAt
LWdpdCBhL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2ogYi9XZWJDb3JlL1dl
YkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qCmluZGV4IDhmNTMyM2JlYTkyZmY4YjFiODUyMmI5
NjVkY2M5MzkyNTE2ODhmMWYuLjZiZjU3OGRlMTJlZGM3ZjJiZjVjNzc1MjZiODJjMDlhYjg3NGEx
ZTAgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2oKKysr
IGIvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvagpAQCAtMjkxNTEsNiArMjkx
NTEsMTQgQEAKIAkJCQkJPg0KIAkJCQk8L0ZpbGU+DQogCQkJCTxGaWxlDQorCQkJCQlSZWxhdGl2
ZVBhdGg9Ii4uXHBsYXRmb3JtXHRleHRcTG9jYWxpemVkTnVtYmVyLmgiDQorCQkJCQk+DQorCQkJ
CTwvRmlsZT4NCisJCQkJPEZpbGUNCisJCQkJCVJlbGF0aXZlUGF0aD0iLi5ccGxhdGZvcm1cdGV4
dFxMb2NhbGl6ZWROdW1iZXJOb25lLmNwcCINCisJCQkJCT4NCisJCQkJPC9GaWxlPg0KKwkJCQk8
RmlsZQ0KIAkJCQkJUmVsYXRpdmVQYXRoPSIuLlxwbGF0Zm9ybVx0ZXh0XFBhcnNlclV0aWxpdGll
cy5oIg0KIAkJCQkJPg0KIAkJCQk8L0ZpbGU+DQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9XZWJDb3Jl
Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvagppbmRleCA3OGE5YTkwMWYyY2MxODI4Njc0YzRhZTAzZmZjOGE0Y2ZlYTdl
ZDcxLi5hNzY3NjUzNWIzN2Y2ODIxZjE2MGZhZWEwYTk2YjRhOGM2NzJlNmE1IDEwMDY0NAotLS0g
YS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9XZWJDb3Jl
L1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtNTUyMyw2ICs1NTIzLDggQEAK
IAkJRjNENDYxNDkxMTYxRDUzMjAwQ0EwRDA5IC8qIEpTV29ya2VyQ29udGV4dEVycm9ySGFuZGxl
ci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjNENDYx
NDcxMTYxRDUzMjAwQ0EwRDA5IC8qIEpTV29ya2VyQ29udGV4dEVycm9ySGFuZGxlci5oICovOyB9
OwogCQlGNEVBRjRBRTEwQzc0MkIxMDA5MTAwRDMgLyogT3BlblR5cGVTYW5pdGl6ZXIuY3BwIGlu
IFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjRFQUY0QUMxMEM3
NDJCMTAwOTEwMEQzIC8qIE9wZW5UeXBlU2FuaXRpemVyLmNwcCAqLzsgfTsKIAkJRjRFQUY0QUYx
MEM3NDJCMTAwOTEwMEQzIC8qIE9wZW5UeXBlU2FuaXRpemVyLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNEVBRjRBRDEwQzc0MkIxMDA5MTAwRDMgLyog
T3BlblR5cGVTYW5pdGl6ZXIuaCAqLzsgfTsKKwkJRjUxNDJDNjkxMjNGMTJCMDAwRjVCRDRDIC8q
IExvY2FsaXplZE51bWJlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gRjUxNDJDNjgxMjNGMTJCMDAwRjVCRDRDIC8qIExvY2FsaXplZE51bWJlci5oICov
OyB9OworCQlGNTE0MkM2QjEyM0YxMkM1MDBGNUJENEMgLyogTG9jYWxpemVkTnVtYmVyTm9uZS5j
cHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNTE0MkM2
QTEyM0YxMkM1MDBGNUJENEMgLyogTG9jYWxpemVkTnVtYmVyTm9uZS5jcHAgKi87IH07CiAJCUY1
NUIzREFEMTI1MUYxMkQwMDNFRjI2OSAvKiBCYXNlVGV4dElucHV0VHlwZS5jcHAgaW4gU291cmNl
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNTVCM0Q3OTEyNTFGMTJEMDAz
RUYyNjkgLyogQmFzZVRleHRJbnB1dFR5cGUuY3BwICovOyB9OwogCQlGNTVCM0RBRTEyNTFGMTJE
MDAzRUYyNjkgLyogQmFzZVRleHRJbnB1dFR5cGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY1NUIzRDdBMTI1MUYxMkQwMDNFRjI2OSAvKiBCYXNlVGV4
dElucHV0VHlwZS5oICovOyB9OwogCQlGNTVCM0RBRjEyNTFGMTJEMDAzRUYyNjkgLyogQnV0dG9u
SW5wdXRUeXBlLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IEY1NUIzRDdCMTI1MUYxMkQwMDNFRjI2OSAvKiBCdXR0b25JbnB1dFR5cGUuY3BwICovOyB9
OwpAQCAtMTE2MTUsNiArMTE2MTcsOCBAQAogCQlGM0Q0NjE0NzExNjFENTMyMDBDQTBEMDkgLyog
SlNXb3JrZXJDb250ZXh0RXJyb3JIYW5kbGVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IEpTV29ya2VyQ29udGV4dEVycm9ySGFuZGxlci5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQlGNEVBRjRBQzEwQzc0MkIxMDA5MTAwRDMgLyogT3BlblR5cGVTYW5pdGl6ZXIu
Y3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0gT3BlblR5cGVTYW5pdGl6
ZXIuY3BwOyBwYXRoID0gb3BlbnR5cGUvT3BlblR5cGVTYW5pdGl6ZXIuY3BwOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQlGNEVBRjRBRDEwQzc0MkIxMDA5MTAwRDMgLyogT3BlblR5cGVT
YW5pdGl6ZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gT3BlblR5cGVTYW5p
dGl6ZXIuaDsgcGF0aCA9IG9wZW50eXBlL09wZW5UeXBlU2FuaXRpemVyLmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CisJCUY1MTQyQzY4MTIzRjEyQjAwMEY1QkQ0QyAvKiBMb2NhbGl6ZWRO
dW1iZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTG9jYWxpemVkTnVtYmVy
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUY1MTQyQzZBMTIzRjEyQzUwMEY1QkQ0
QyAvKiBMb2NhbGl6ZWROdW1iZXJOb25lLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNw
cDsgcGF0aCA9IExvY2FsaXplZE51bWJlck5vbmUuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQlGNTIzRDIzQjAyREU0Mzk2MDE4NjM1Q0EgLyogSFRNTERvY3VtZW50LmNwcCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgaW5kZW50V2lkdGgg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEhUTUxE
b2N1bWVudC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IHRhYldpZHRoID0gODsgdXNlc1Rh
YnMgPSAwOyB9OwogCQlGNTIzRDIzQzAyREU0Mzk2MDE4NjM1Q0EgLyogSFRNTERvY3VtZW50Lmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGluZGVudFdp
ZHRoID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEhUTUxE
b2N1bWVudC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB0YWJXaWR0aCA9IDg7IHVzZXNUYWJz
ID0gMDsgfTsKIAkJRjUyM0QyM0UwMkRFNDM5NjAxODYzNUNBIC8qIEhUTUxFbGVtZW50LmNwcCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgaW5kZW50V2lk
dGggPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEhU
TUxFbGVtZW50LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgdGFiV2lkdGggPSA4OyB1c2Vz
VGFicyA9IDA7IH07CkBAIC0xNjgxNiw2ICsxNjgyMCw4IEBACiAJCQkJMzc1Q0QyMzExMTlENDND
ODAwQTJBODU5IC8qIEh5cGhlbmF0aW9uLmggKi8sCiAJCQkJODlCNUVBOUYxMUU4MDAzRDAwRjIz
NjdFIC8qIExpbmVFbmRpbmcuY3BwICovLAogCQkJCTg5QjVFQUEwMTFFODAwM0QwMEYyMzY3RSAv
KiBMaW5lRW5kaW5nLmggKi8sCisJCQkJRjUxNDJDNjgxMjNGMTJCMDAwRjVCRDRDIC8qIExvY2Fs
aXplZE51bWJlci5oICovLAorCQkJCUY1MTQyQzZBMTIzRjEyQzUwMEY1QkQ0QyAvKiBMb2NhbGl6
ZWROdW1iZXJOb25lLmNwcCAqLywKIAkJCQlCQzc2QUMxMTBERDdBRDVDMDA0MTVGMzQgLyogUGFy
c2VyVXRpbGl0aWVzLmggKi8sCiAJCQkJQjJDM0Q5RkIwRDAwNkMxRDAwRUY2RjI2IC8qIFBsYXRm
b3JtU3RyaW5nLmggKi8sCiAJCQkJQjJDM0Q5RkMwRDAwNkMxRDAwRUY2RjI2IC8qIFJlZ3VsYXJF
eHByZXNzaW9uLmNwcCAqLywKQEAgLTIwNDU0LDYgKzIwNDYwLDcgQEAKIAkJCQkwNkU4MUVENzBB
QjVENUU5MDBDODc4MzcgLyogTG9jYWxDdXJyZW50R3JhcGhpY3NDb250ZXh0LmggaW4gSGVhZGVy
cyAqLywKIAkJCQk4OTg3ODU2ODEyMkNBMDY0MDAzQUFCREEgLyogTG9jYWxGaWxlU3lzdGVtLmgg
aW4gSGVhZGVycyAqLywKIAkJCQlCQzVDRkNBOTExRjc5MzMyMDA5OUVEMDkgLyogTG9jYWxpemF0
aW9uU3RyYXRlZ3kuaCBpbiBIZWFkZXJzICovLAorCQkJCUY1MTQyQzY5MTIzRjEyQjAwMEY1QkQ0
QyAvKiBMb2NhbGl6ZWROdW1iZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTkzNTIwN0JFMDlCRDQx
MEEwMEYyMDM4RCAvKiBMb2NhbGl6ZWRTdHJpbmdzLmggaW4gSGVhZGVycyAqLywKIAkJCQk1MTFG
MjMxODBEQzE2MERBMDA0RjAwMzIgLyogTG9jYWxTdG9yYWdlVGFzay5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJNTExRjIzMUEwREMxNjBEQTAwNEYwMDMyIC8qIExvY2FsU3RvcmFnZVRocmVhZC5oIGlu
IEhlYWRlcnMgKi8sCkBAIC0yMzE2Nyw2ICsyMzE3NCw3IEBACiAJCQkJNjU2RDM3MzMwQURCQTVE
RTAwQTQ1NTREIC8qIExvYWRlck5TVVJMRXh0cmFzLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJMDZF
ODFFRUMwQUI1REE5NzAwQzg3ODM3IC8qIExvY2FsQ3VycmVudEdyYXBoaWNzQ29udGV4dC5tbSBp
biBTb3VyY2VzICovLAogCQkJCTg5ODc4NTY3MTIyQ0EwNjQwMDNBQUJEQSAvKiBMb2NhbEZpbGVT
eXN0ZW0uY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJRjUxNDJDNkIxMjNGMTJDNTAwRjVCRDRDIC8q
IExvY2FsaXplZE51bWJlck5vbmUuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQzA0NkUxQUMxMjA4
QTlGRTAwQkEyQ0Y3IC8qIExvY2FsaXplZFN0cmluZ3MuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJ
NTExRjIzMTcwREMxNjBEQTAwNEYwMDMyIC8qIExvY2FsU3RvcmFnZVRhc2suY3BwIGluIFNvdXJj
ZXMgKi8sCiAJCQkJNTExRjIzMTkwREMxNjBEQTAwNEYwMDMyIC8qIExvY2FsU3RvcmFnZVRocmVh
ZC5jcHAgaW4gU291cmNlcyAqLywKZGlmZiAtLWdpdCBhL1dlYkNvcmUvZG9tL0lucHV0RWxlbWVu
dC5oIGIvV2ViQ29yZS9kb20vSW5wdXRFbGVtZW50LmgKaW5kZXggMzQ3ODRiYzdlN2QzN2MwNzQ2
ZjU1YzUxZDYwMTg4OTg5Nzg3MzU4ZS4uNTBmMzgwMTRmZWEzYTczYTdiYWZmY2I4MDRlN2MwNDg3
ZmZjZDBjMyAxMDA2NDQKLS0tIGEvV2ViQ29yZS9kb20vSW5wdXRFbGVtZW50LmgKKysrIGIvV2Vi
Q29yZS9kb20vSW5wdXRFbGVtZW50LmgKQEAgLTU5LDYgKzU5LDggQEAgcHVibGljOgogICAgIHZp
cnR1YWwgU3RyaW5nIHZhbHVlKCkgY29uc3QgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBzZXRWYWx1
ZShjb25zdCBTdHJpbmcmLCBib29sIHNlbmRDaGFuZ2VFdmVudCA9IGZhbHNlKSA9IDA7CiAgICAg
dmlydHVhbCB2b2lkIHNldFZhbHVlRm9yVXNlcihjb25zdCBTdHJpbmcmKSA9IDA7CisgICAgLy8g
VGhlIHZhbHVlIHdoaWNoIGlzIGRyYXduIGJ5IGEgcmVuZGVyZXIuCisgICAgdmlydHVhbCBTdHJp
bmcgdmlzaWJsZVZhbHVlKCkgY29uc3QgPSAwOwogCiAgICAgLy8gUmV0dXJucyB0cnVlIGlmIHRo
ZSBzcGVjaWZpZWQgc3RyaW5nIGNhbiBiZSBzZXQgYXMgdGhlIHZhbHVlIG9mIElucHV0RWxlbWVu
dC4KICAgICB2aXJ0dWFsIGJvb2wgaXNBY2NlcHRhYmxlVmFsdWUoY29uc3QgU3RyaW5nJikgY29u
c3QgPSAwOwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9odG1sL0hUTUxJbnB1dEVsZW1lbnQuY3BwIGIv
V2ViQ29yZS9odG1sL0hUTUxJbnB1dEVsZW1lbnQuY3BwCmluZGV4IGFmNGU3ZDA1NDgyMTcxMTBl
Mzk3YzNiYzRhMWZlY2Y3NzY3YjU4MDkuLmUzNzY4MjViNDczYzEzYmFjYjg2ODhkMTY1MTI4NWJh
N2I5YmRhNGEgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvaHRtbC9IVE1MSW5wdXRFbGVtZW50LmNwcAor
KysgYi9XZWJDb3JlL2h0bWwvSFRNTElucHV0RWxlbWVudC5jcHAKQEAgLTUzLDYgKzUzLDcgQEAK
ICNpbmNsdWRlICJIVE1MUGFyc2VySWRpb21zLmgiCiAjaW5jbHVkZSAiSW5wdXRUeXBlLmgiCiAj
aW5jbHVkZSAiS2V5Ym9hcmRFdmVudC5oIgorI2luY2x1ZGUgIkxvY2FsaXplZE51bWJlci5oIgog
I2luY2x1ZGUgIkxvY2FsaXplZFN0cmluZ3MuaCIKICNpbmNsdWRlICJNb3VzZUV2ZW50LmgiCiAj
aW5jbHVkZSAiUGFnZS5oIgpAQCAtODAsMTAgKzgxLDE2IEBAIHVzaW5nIG5hbWVzcGFjZSBIVE1M
TmFtZXM7CiAKIGNvbnN0IGludCBtYXhTYXZlZFJlc3VsdHMgPSAyNTY7CiAKKy8vIFJldHVybnMg
dHJ1ZSBpZiB0aGUgc3BlY2lmaWVkIGNoYXJhY3RlciBjYW4gYmUgYSBwYXJ0IG9mICd2YWxpZCBm
bG9hdGluZworLy8gcG9pbnQgbnVtYmVyJyBvZiBIVE1MNS4KK3N0YXRpYyBpbmxpbmUgYm9vbCBp
c0hUTUxOdW1iZXJDaGFyYWN0ZXIoVUNoYXIgY2gpCit7CisgICAgcmV0dXJuIGNoID09ICcrJyB8
fCBjaCA9PSAnLScgfHwgY2ggPT0gJy4nIHx8IGNoID09ICdlJyB8fCBjaCA9PSAnRScgfHwgKGNo
ID49ICcwJyAmJiBjaCA8PSAnOScpOworfQorCiBzdGF0aWMgYm9vbCBpc051bWJlckNoYXJhY3Rl
cihVQ2hhciBjaCkKIHsKLSAgICByZXR1cm4gY2ggPT0gJysnIHx8IGNoID09ICctJyB8fCBjaCA9
PSAnLicgfHwgY2ggPT0gJ2UnIHx8IGNoID09ICdFJwotICAgICAgICB8fCAoY2ggPj0gJzAnICYm
IGNoIDw9ICc5Jyk7CisgICAgcmV0dXJuIGlzTG9jYWxpemVkTnVtYmVyQ2hhcmFjdGVyKGNoKSB8
fCBpc0hUTUxOdW1iZXJDaGFyYWN0ZXIoY2gpOwogfQogCiBIVE1MSW5wdXRFbGVtZW50OjpIVE1M
SW5wdXRFbGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50KiBkb2N1
bWVudCwgSFRNTEZvcm1FbGVtZW50KiBmb3JtKQpAQCAtMTY2NiwxNyArMTY3MywzNiBAQCBGaWxl
TGlzdCogSFRNTElucHV0RWxlbWVudDo6ZmlsZXMoKQogICAgIHJldHVybiBtX2ZpbGVMaXN0Lmdl
dCgpOwogfQogCitTdHJpbmcgSFRNTElucHV0RWxlbWVudDo6dmlzaWJsZVZhbHVlKCkgY29uc3QK
K3sKKyAgICBTdHJpbmcgY3VycmVudFZhbHVlID0gdmFsdWUoKTsKKyAgICBpZiAoZGVwcmVjYXRl
ZElucHV0VHlwZSgpICE9IE5VTUJFUikKKyAgICAgICAgcmV0dXJuIGN1cnJlbnRWYWx1ZTsKKyAg
ICBpZiAoY3VycmVudFZhbHVlLmlzRW1wdHkoKSkKKyAgICAgICAgcmV0dXJuIGN1cnJlbnRWYWx1
ZTsKKyAgICBkb3VibGUgZG91YmxlVmFsdWUgPSBudW1lcmljX2xpbWl0czxkb3VibGU+OjpxdWll
dF9OYU4oKTsKKyAgICBwYXJzZVRvRG91YmxlRm9yTnVtYmVyVHlwZShjdXJyZW50VmFsdWUsICZk
b3VibGVWYWx1ZSk7CisgICAgU3RyaW5nIGxvY2FsaXplZCA9IGZvcm1hdExvY2FsaXplZE51bWJl
cihkb3VibGVWYWx1ZSk7CisgICAgcmV0dXJuIGxvY2FsaXplZC5pc0VtcHR5KCkgPyBjdXJyZW50
VmFsdWUgOiBsb2NhbGl6ZWQ7Cit9CisKIGJvb2wgSFRNTElucHV0RWxlbWVudDo6aXNBY2NlcHRh
YmxlVmFsdWUoY29uc3QgU3RyaW5nJiBwcm9wb3NlZFZhbHVlKSBjb25zdAogewogICAgIGlmIChk
ZXByZWNhdGVkSW5wdXRUeXBlKCkgIT0gTlVNQkVSKQogICAgICAgICByZXR1cm4gdHJ1ZTsKLSAg
ICByZXR1cm4gcHJvcG9zZWRWYWx1ZS5pc0VtcHR5KCkgfHwgcGFyc2VUb0RvdWJsZUZvck51bWJl
clR5cGUocHJvcG9zZWRWYWx1ZSwgMCk7CisgICAgcmV0dXJuIHByb3Bvc2VkVmFsdWUuaXNFbXB0
eSgpIHx8IGlzZmluaXRlKHBhcnNlTG9jYWxpemVkTnVtYmVyKHByb3Bvc2VkVmFsdWUpKSB8fCBw
YXJzZVRvRG91YmxlRm9yTnVtYmVyVHlwZShwcm9wb3NlZFZhbHVlLCAwKTsKIH0KIAogU3RyaW5n
IEhUTUxJbnB1dEVsZW1lbnQ6OnNhbml0aXplVmFsdWUoY29uc3QgU3RyaW5nJiBwcm9wb3NlZFZh
bHVlKSBjb25zdAogewotICAgIGlmIChkZXByZWNhdGVkSW5wdXRUeXBlKCkgPT0gTlVNQkVSKQor
ICAgIGlmIChkZXByZWNhdGVkSW5wdXRUeXBlKCkgPT0gTlVNQkVSKSB7CisgICAgICAgIC8vIFRy
eSB0byBwYXJzZSB0aGUgdmFsdWUgYXMgYSBsb2NhbGl6ZWQgbnVtYmVyLCB0aGVuIHRyeSB0byBw
YXJzZSBpdCBhcworICAgICAgICAvLyB0aGUgc3RhbmRhcmQgZm9ybWF0LgorICAgICAgICBkb3Vi
bGUgcGFyc2VkVmFsdWUgPSBwYXJzZUxvY2FsaXplZE51bWJlcihwcm9wb3NlZFZhbHVlKTsKKyAg
ICAgICAgaWYgKGlzZmluaXRlKHBhcnNlZFZhbHVlKSkKKyAgICAgICAgICAgIHJldHVybiBzZXJp
YWxpemVGb3JOdW1iZXJUeXBlKHBhcnNlZFZhbHVlKTsKICAgICAgICAgcmV0dXJuIHBhcnNlVG9E
b3VibGVGb3JOdW1iZXJUeXBlKHByb3Bvc2VkVmFsdWUsIDApID8gcHJvcG9zZWRWYWx1ZSA6IFN0
cmluZygpOworICAgIH0KIAogICAgIGlmIChpc1RleHRGaWVsZCgpKQogICAgICAgICByZXR1cm4g
SW5wdXRFbGVtZW50OjpzYW5pdGl6ZVZhbHVlRm9yVGV4dEZpZWxkKHRoaXMsIHByb3Bvc2VkVmFs
dWUpOwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9odG1sL0hUTUxJbnB1dEVsZW1lbnQuaCBiL1dlYkNv
cmUvaHRtbC9IVE1MSW5wdXRFbGVtZW50LmgKaW5kZXggOTg4NDExN2I4MTFjY2ExOWVlMDc0N2Iw
NWQwNWI4ZmNlMDIyYjUxYi4uOWJiMjJmODViMmY3NDQ2MWFiN2YzM2EwZDc5ZjZhNzNlZmZjOTAw
ZSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9odG1sL0hUTUxJbnB1dEVsZW1lbnQuaAorKysgYi9XZWJD
b3JlL2h0bWwvSFRNTElucHV0RWxlbWVudC5oCkBAIC0zMDUsNiArMzA1LDcgQEAgcHJpdmF0ZToK
IAogICAgIHZpcnR1YWwgdm9pZCBjYWNoZVNlbGVjdGlvbihpbnQgc3RhcnQsIGludCBlbmQpOwog
CisgICAgdmlydHVhbCBTdHJpbmcgdmlzaWJsZVZhbHVlKCkgY29uc3Q7CiAgICAgdmlydHVhbCBi
b29sIGlzQWNjZXB0YWJsZVZhbHVlKGNvbnN0IFN0cmluZyYpIGNvbnN0OwogICAgIHZpcnR1YWwg
U3RyaW5nIHNhbml0aXplVmFsdWUoY29uc3QgU3RyaW5nJikgY29uc3Q7CiAgICAgdmlydHVhbCBi
b29sIGhhc1VuYWNjZXB0YWJsZVZhbHVlKCkgY29uc3Q7CmRpZmYgLS1naXQgYS9XZWJDb3JlL3Bs
YXRmb3JtL3RleHQvTG9jYWxpemVkTnVtYmVyLmggYi9XZWJDb3JlL3BsYXRmb3JtL3RleHQvTG9j
YWxpemVkTnVtYmVyLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMmM0ZDE1NTEwNWRjYTQxMzFhMDM3NGRmMDI4ZjQx
ZWZkOTI3NTg1OAotLS0gL2Rldi9udWxsCisrKyBiL1dlYkNvcmUvcGxhdGZvcm0vdGV4dC9Mb2Nh
bGl6ZWROdW1iZXIuaApAQCAtMCwwICsxLDU5IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEw
IEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMgYXJlCisgKiBtZXQ6CisgKgorICogICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNv
dXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqICAg
ICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJv
dmUKKyAqIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIKKyAqIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhl
ciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKKyAqIGRpc3RyaWJ1dGlvbi4KKyAqICAgICAq
IE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKKyAq
IGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMg
ZGVyaXZlZCBmcm9tCisgKiB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3Jp
dHRlbiBwZXJtaXNzaW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhF
IENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKKyAqICJBUyBJUyIgQU5EIEFOWSBF
WFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1J
VEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklU
TkVTUyBGT1IKKyAqIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBF
VkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCisgKiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElB
QkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKKyAqIFNQRUNJQUwsIEVY
RU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKKyAq
IExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7
IExPU1MgT0YgVVNFLAorICogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBU
SU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCisgKiBUSEVPUlkgT0YgTElBQklMSVRZLCBX
SEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVE
SU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRI
RSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lC
SUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBMb2NhbGl6ZWROdW1iZXJfaAor
I2RlZmluZSBMb2NhbGl6ZWROdW1iZXJfaAorCisjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5n
Lmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworLy8gUGFyc2VzIGEgc3RyaW5nIHJlcHJlc2Vu
dGF0aW9uIG9mIGEgZmxvYXRpbmcgcG9pbnQgbnVtYmVyIGxvY2FsaXplZAorLy8gZm9yIHRoZSBi
cm93c2VyJ3MgY3VycmVudCBsb2NhbGUuIElmIHRoZSBpbnB1dCBzdHJpbmcgaXMgbm90IHZhbGlk
CisvLyBvciBhbiBpbXBsZW1lbnRhdGlvbiBkb2Vzbid0IHN1cHBvcnQgbG9jYWxpemVkIG51bWJl
cnMsIHRoaXMKKy8vIGZ1bmN0aW9uIHJldHVybnMgTmFOLiBUaGlzIGZ1bmN0aW9uIGRvZXNuJ3Qg
bmVlZCB0byBzdXBwb3J0CisvLyBzY2llbnRpZmljIG5vdGF0aW9uLCBOYU4sICtJbmZpbml0eSBh
bmQgLUluZmluaXR5LCBhbmQgZG9lc24ndCBuZWVkCisvLyB0byBzdXBwb3J0IHRoZSBzdGFuZGFy
ZCByZXByZXNlbnRhdGlvbnMgb2YgRUNNQVNjcmlwdCBhbmQgSFRNTDUuCitkb3VibGUgcGFyc2VM
b2NhbGl6ZWROdW1iZXIoY29uc3QgU3RyaW5nJik7CisKKy8vIFNlcmlhbGl6ZXMgdGhlIHNwZWNp
ZmllZCBmbG9hdGluZyBwb2ludCBudW1iZXIgZm9yIHRoZSBicm93c2VyJ3MKKy8vIGN1cnJlbnQg
bG9jYWxlLiAgSWYgYW4gaW1wbGVtZW50YXRpb24gZG9lc24ndCBzdXBwb3J0IGxvY2FsaXplZAor
Ly8gbnVtYmVycyBvciB0aGUgaW5wdXQgdmFsdWUgaXMgTmFOIG9yIEluZmluaXRpeSwgdGhlIGZ1
bmN0aW9uIHNob3VsZAorLy8gcmV0dXJuIGFuIGVtcHR5IHN0cmluZy4KK1N0cmluZyBmb3JtYXRM
b2NhbGl6ZWROdW1iZXIoZG91YmxlKTsKKworLy8gUmV0dXJucyB0cnVlIGlmIHRoZSBpbnB1dCBj
aGFyYWN0ZXIgY2FuIGJlIHVzZWQgdG8gcmVwcmVzZW50IGEKKy8vIG51bWJlciBpbiB0aGUgYnJv
d3NlciBsb2NhbGUuIEZvciBleGFtcGxlLCB0aGlzIHNob3VsZCByZXR1cm4gdHJ1ZSBmb3IgMC05
IC4KKy8vICwgKyAtIGZvciBlbi1VUyBsb2NhbGUuCitib29sIGlzTG9jYWxpemVkTnVtYmVyQ2hh
cmFjdGVyKFVDaGFyMzIpOworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBM
b2NhbGl6ZWROdW1iZXJfaApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wbGF0Zm9ybS90ZXh0L0xvY2Fs
aXplZE51bWJlck5vbmUuY3BwIGIvV2ViQ29yZS9wbGF0Zm9ybS90ZXh0L0xvY2FsaXplZE51bWJl
ck5vbmUuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLmZmMzk4ZWY1ODFhMGJlZmMzNjc2Njc4NjMyODliN2IxYThm
NmNlN2YKLS0tIC9kZXYvbnVsbAorKysgYi9XZWJDb3JlL3BsYXRmb3JtL3RleHQvTG9jYWxpemVk
TnVtYmVyTm9uZS5jcHAKQEAgLTAsMCArMSw1NSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAx
MCBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICog
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zIGFyZQorICogbWV0OgorICoKKyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBz
b3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAg
ICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFi
b3ZlCisgKiBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyCisgKiBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3Ro
ZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCisgKiBkaXN0cmlidXRpb24uCisgKiAgICAg
KiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCisg
KiBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3Rz
IGRlcml2ZWQgZnJvbQorICogdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdy
aXR0ZW4gcGVybWlzc2lvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRI
RSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCisgKiAiQVMgSVMiIEFORCBBTlkg
RVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAorICogTElN
SVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJ
VE5FU1MgRk9SCisgKiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8g
RVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAorICogT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJ
QUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCisgKiBTUEVDSUFMLCBF
WEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCisg
KiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VT
OyBMT1NTIE9GIFVTRSwKKyAqIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQ
VElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQorICogVEhFT1JZIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBU
SEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNs
dWRlICJMb2NhbGl6ZWROdW1iZXIuaCIKKworI2luY2x1ZGUgPGxpbWl0cz4KKwordXNpbmcgbmFt
ZXNwYWNlIHN0ZDsKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitkb3VibGUgcGFyc2VMb2NhbGl6
ZWROdW1iZXIoY29uc3QgU3RyaW5nJikKK3sKKyAgICByZXR1cm4gbnVtZXJpY19saW1pdHM8ZG91
YmxlPjo6cXVpZXRfTmFOKCk7Cit9CisKK1N0cmluZyBmb3JtYXRMb2NhbGl6ZWROdW1iZXIoZG91
YmxlKQoreworICAgIHJldHVybiBTdHJpbmcoKTsKK30KKworYm9vbCBpc0xvY2FsaXplZE51bWJl
ckNoYXJhY3RlcihVQ2hhcjMyKQoreworICAgIHJldHVybiBmYWxzZTsKK30KKworfSAvLyBuYW1l
c3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGV4dENv
bnRyb2xTaW5nbGVMaW5lLmNwcCBiL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRleHRDb250cm9s
U2luZ2xlTGluZS5jcHAKaW5kZXggZDQ1NWVjMDYwOGQ1MDI4Yjg1NzJhOWFhZmJjZjhkNjg2NWRi
YTE5Yi4uMzE2OGJlZDA4OTE3MDkyMjkxNzE2ZTFiZGYwZjM2MWI1NDVlMzQzMCAxMDA2NDQKLS0t
IGEvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGV4dENvbnRyb2xTaW5nbGVMaW5lLmNwcAorKysg
Yi9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUZXh0Q29udHJvbFNpbmdsZUxpbmUuY3BwCkBAIC02
ODIsNyArNjgyLDcgQEAgdm9pZCBSZW5kZXJUZXh0Q29udHJvbFNpbmdsZUxpbmU6OnVwZGF0ZUZy
b21FbGVtZW50KCkKICAgICAgICAgICAgIC8vIGZsYWcgaXMgZmFsc2UuIEl0IHByb3RlY3RzIGFu
IHVuYWNjZXB0YWJsZSByZW5kZXJlciB2YWx1ZSBmcm9tCiAgICAgICAgICAgICAvLyBiZWluZyBv
dmVyd3JpdHRlbiB3aXRoIHRoZSBET00gdmFsdWUuCiAgICAgICAgICAgICBpZiAoIXN0YXRpY19j
YXN0PEhUTUxJbnB1dEVsZW1lbnQqPihub2RlKCkpLT5mb3JtQ29udHJvbFZhbHVlTWF0Y2hlc1Jl
bmRlcmVyKCkpCi0gICAgICAgICAgICAgICAgc2V0SW5uZXJUZXh0VmFsdWUoaW5wdXRFbGVtZW50
KCktPnZhbHVlKCkpOworICAgICAgICAgICAgICAgIHNldElubmVyVGV4dFZhbHVlKGlucHV0RWxl
bWVudCgpLT52aXNpYmxlVmFsdWUoKSk7CiAgICAgICAgIH0KICAgICB9CiAKZGlmZiAtLWdpdCBh
L1dlYkNvcmUvd21sL1dNTElucHV0RWxlbWVudC5oIGIvV2ViQ29yZS93bWwvV01MSW5wdXRFbGVt
ZW50LmgKaW5kZXggZGY3ZjQ5NzJiNzJjYmU4ODQyMGRhYThkYWE1MWE2ZjVmMzQ0YTAyMi4uNmM2
NjQxMGJjZjc2YTllZmZiMThlZTUzOWRiMGE2MTc5ODlhMjUzZSAxMDA2NDQKLS0tIGEvV2ViQ29y
ZS93bWwvV01MSW5wdXRFbGVtZW50LmgKKysrIGIvV2ViQ29yZS93bWwvV01MSW5wdXRFbGVtZW50
LmgKQEAgLTYzLDYgKzYzLDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgU3RyaW5nIHZhbHVlKCkg
Y29uc3Q7CiAgICAgdmlydHVhbCB2b2lkIHNldFZhbHVlKGNvbnN0IFN0cmluZyYsIGJvb2wgc2Vu
ZENoYW5nZUV2ZW50ID0gZmFsc2UpOwogICAgIHZpcnR1YWwgdm9pZCBzZXRWYWx1ZUZvclVzZXIo
Y29uc3QgU3RyaW5nJik7CisgICAgdmlydHVhbCBTdHJpbmcgdmlzaWJsZVZhbHVlKCkgY29uc3Qg
eyByZXR1cm4gdmFsdWUoKTsgfQogICAgIHZpcnR1YWwgdm9pZCBzZXRWYWx1ZUZyb21SZW5kZXJl
cihjb25zdCBTdHJpbmcmKTsKIAogICAgIHZpcnR1YWwgYm9vbCBzYXZlRm9ybUNvbnRyb2xTdGF0
ZShTdHJpbmcmIHZhbHVlKSBjb25zdDsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>75777</attachid>
            <date>2010-12-06 20:09:02 -0800</date>
            <delta_ts>2011-01-05 23:29:39 -0800</delta_ts>
            <desc>Patch 7 (rebased)</desc>
            <filename>bug-45730-20101207130900.patch</filename>
            <type>text/plain</type>
            <size>21503</size>
            <attacher name="Kent Tamura">tkent</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQW5kcm9pZC5tayBiL1dlYkNvcmUvQW5kcm9pZC5tawppbmRl
eCAxNTQ0Njc5NDYxMTUxNmIyNWQzN2EzOGU0NDZhYTdjMjExNDBiYjVlLi5iYmJkMWM0MThhMjZl
Y2ExYWQzZTFlMTFmMGEwZjBmYTJjYWFhZGQzIDEwMDY0NAotLS0gYS9XZWJDb3JlL0FuZHJvaWQu
bWsKKysrIGIvV2ViQ29yZS9BbmRyb2lkLm1rCkBAIC02MTIsNiArNjEyLDcgQEAgTE9DQUxfU1JD
X0ZJTEVTIDo9ICQoTE9DQUxfU1JDX0ZJTEVTKSBcCiAJcGxhdGZvcm0vdGV4dC9CYXNlNjQuY3Bw
IFwKIAlwbGF0Zm9ybS90ZXh0L0JpZGlDb250ZXh0LmNwcCBcCiAJcGxhdGZvcm0vdGV4dC9IeXBo
ZW5hdGlvbi5jcHAgXAorCXBsYXRmb3JtL3RleHQvTG9jYWxpemVkTnVtYmVyTm9uZS5jcHAgXAog
CXBsYXRmb3JtL3RleHQvUmVndWxhckV4cHJlc3Npb24uY3BwIFwKIAlwbGF0Zm9ybS90ZXh0L1Nl
Z21lbnRlZFN0cmluZy5jcHAgXAogCXBsYXRmb3JtL3RleHQvU3RyaW5nLmNwcCBcCmRpZmYgLS1n
aXQgYS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0IGIvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dAppbmRl
eCA3MzE2NjFhOTg0ODQwZDFjMmRmYmRmMDI2NzA0MzU5ZDA2YWFlMjM0Li45ZjA1OTVhNDlkYmE4
YWM0YTlmNDY1MzY2MmJjNDRkNTViMWJjZmFlIDEwMDY0NAotLS0gYS9XZWJDb3JlL0NNYWtlTGlz
dHMudHh0CisrKyBiL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKQEAgLTE0MDAsNiArMTQwMCw3IEBA
IFNFVChXZWJDb3JlX1NPVVJDRVMKICAgICBwbGF0Zm9ybS90ZXh0L0Jhc2U2NC5jcHAKICAgICBw
bGF0Zm9ybS90ZXh0L0JpZGlDb250ZXh0LmNwcAogICAgIHBsYXRmb3JtL3RleHQvTGluZUVuZGlu
Zy5jcHAKKyAgICBwbGF0Zm9ybS90ZXh0L0xvY2FsaXplZE51bWJlck5vbmUuY3BwCiAgICAgcGxh
dGZvcm0vdGV4dC9IeXBoZW5hdGlvbi5jcHAKICAgICBwbGF0Zm9ybS90ZXh0L1JlZ3VsYXJFeHBy
ZXNzaW9uLmNwcAogICAgIHBsYXRmb3JtL3RleHQvU2VnbWVudGVkU3RyaW5nLmNwcApkaWZmIC0t
Z2l0IGEvV2ViQ29yZS9DaGFuZ2VMb2cgYi9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCA4ZTAzMjVl
YzQ1OWZlOWI3NWIyOTI3MzhkYmUzNDA4ZWRlMGJlOTZhLi5lYTEwZDU1YmZiOTNhMjlmYmE4ZTM1
ZTEwZGZjYzk5ZDk4MjM5ODI1IDEwMDY0NAotLS0gYS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9X
ZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDUzIEBACisyMDEwLTA5LTEzICBLZW50IFRhbXVy
YSAgPHRrZW50QGNocm9taXVtLm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICBBUEkgdG8gc3VwcG9ydCBsb2NhbGl6ZWQgbnVtYmVycyBmb3IgPGlu
cHV0IHR5cGU9bnVtYmVyPgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9NDU3MzAKKworICAgICAgICBJbnRyb2R1Y2UgcGxhdGZvcm0vdGV4dC9Mb2NhbGl6
ZWROdW1iZXIuaCwgYW5kCisgICAgICAgIExvY2FsaXplZE51bWJlck5vbmUuY3BwLCB3aGljaCBp
cyBhbiBlbXB0eSBpbXBsZW1lbnRhdGlvbiBvZiB0aGUKKyAgICAgICAgZnVuY3Rpb25zIGluIExv
Y2FsaXplZE51bWJlci5oLiAgV2UgdXNlIExvY2FsaXplZE51bWJlck5vbmUuY3BwIGluCisgICAg
ICAgIGFsbCBwbGF0Zm9ybXMgZm9yIG5vdy4KKworICAgICAgICBBIHN0cmluZyBpbiBhIHR5cGU9
bnVtYmVyIGZpZWxkIGlzIHBhcnNlZCBhcyBhIGxvY2FsaXplZCBudW1iZXIKKyAgICAgICAgZmly
c3QuIElmIHRoZSBwYXJzaW5nIGZhaWxzLCBpdCBpcyBwYXJzZWQgYXMgdGhlIEhUTUw1IG51bWJl
ci4KKworICAgICAgICBXZSBpbnRyb2R1Y2UgSFRNTElucHV0RWxlbWVudDo6dmlzaWJsZVZhbHVl
KCkuIEl0IHJlcHJlc2VudHMgYSB2YWx1ZQorICAgICAgICB3aGljaCBzaG91bGQgYmUgZHJhd24g
YnkgYSByZW5kZXJlci4gSFRNTElucHV0RWxlbWVudDo6dmFsdWUoKSBhbHdheXMKKyAgICAgICAg
cmV0dXJucyBhIG51bWJlciBmb3JtYXR0ZWQgZm9yIEhUTUw1LCBhbmQgdmlzaWJsZVZhbHVlKCkg
bWF5IHJldHVybiBhCisgICAgICAgIGxvY2FsaXplZCBudW1iZXIuCisKKyAgICAgICAgTm8gbmV3
IHRlc3RzIGJlY2F1c2UgdGhpcyBkb2Vzbid0IGNoYW5nZSBhbnkgYmVoYXZpb3IuCisKKyAgICAg
ICAgKiBBbmRyb2lkLm1rOiBBZGQgTG9jYWxpemVkTnVtYmVyLmggYW5kL29yIExvY2FsaXplZE51
bWJlck5vbmUuY3BwLgorICAgICAgICAqIENNYWtlTGlzdHMudHh0OiBkaXR0by4KKyAgICAgICAg
KiBHTlVtYWtlZmlsZS5hbTogZGl0dG8uCisgICAgICAgICogV2ViQ29yZS5neXBpOiBkaXR0by4K
KyAgICAgICAgKiBXZWJDb3JlLnBybzogZGl0dG8uCisgICAgICAgICogV2ViQ29yZS52Y3Byb2ov
V2ViQ29yZS52Y3Byb2o6IGRpdHRvLgorICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2pl
Y3QucGJ4cHJvajogZGl0dG8uCisgICAgICAgICogZG9tL0lucHV0RWxlbWVudC5oOiBBZGQgdmlz
aWJsZVZhbHVlKCkuCisgICAgICAgICogaHRtbC9IVE1MSW5wdXRFbGVtZW50LmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OmlzSFRNTE51bWJlckNoYXJhY3Rlcik6IFJlbmFtZWQgZnJvbSBpc051bWJl
ckNoYXJhY3RlcigpLgorICAgICAgICAoV2ViQ29yZTo6aXNOdW1iZXJDaGFyYWN0ZXIpOiBDYWxs
cyBpc0xvY2FsaXplZE51bWJlckNoYXJhY3RlcigpIGFuZCBpc0hUTUxOdW1iZXJDaGFyYWN0ZXIo
KQorICAgICAgICAoV2ViQ29yZTo6SFRNTElucHV0RWxlbWVudDo6dmlzaWJsZVZhbHVlKToKKyAg
ICAgICAgICBDYWxscyBmb3JtYXRMb2NhbGl6ZWROdW1iZXIoKSBmb3IgdHlwZT1udW1iZXIsIGNh
bGxzIHZhbHVlKCkgb3RoZXJ3aXNlLgorICAgICAgICAoV2ViQ29yZTo6SFRNTElucHV0RWxlbWVu
dDo6aXNBY2NlcHRhYmxlVmFsdWUpOiBDYWxscyBwYXJzZUxvY2FsaXplZE51bWJlcigpLgorICAg
ICAgICAoV2ViQ29yZTo6SFRNTElucHV0RWxlbWVudDo6c2FuaXRpemVWYWx1ZSk6IENhbGxzIHBh
cnNlTG9jYWxpemVkTnVtYmVyKCkuCisgICAgICAgICogaHRtbC9IVE1MSW5wdXRFbGVtZW50Lmg6
IEFkZCB2aXNpYmxlVmFsdWUoKS4KKyAgICAgICAgKiBwbGF0Zm9ybS90ZXh0L0xvY2FsaXplZE51
bWJlci5oOiBBZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS90ZXh0L0xvY2FsaXplZE51bWJlck5v
bmUuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OnBhcnNlTG9jYWxpemVkTnVtYmVyKToK
KyAgICAgICAgKFdlYkNvcmU6OmZvcm1hdExvY2FsaXplZE51bWJlcik6CisgICAgICAgIChXZWJD
b3JlOjppc0xvY2FsaXplZE51bWJlckNoYXJhY3Rlcik6CisgICAgICAgICogcmVuZGVyaW5nL1Jl
bmRlclRleHRDb250cm9sU2luZ2xlTGluZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJU
ZXh0Q29udHJvbFNpbmdsZUxpbmU6OnVwZGF0ZUZyb21FbGVtZW50KToKKyAgICAgICAgICBDYWxs
cyBJbnB1dEVsZW1lbnQ6OnZpc2libGVWYWx1ZSgpIGluc3RlYWQgb2YgdmFsdWUoKS4KKyAgICAg
ICAgKiB3bWwvV01MSW5wdXRFbGVtZW50Lmg6CisgICAgICAgIChXZWJDb3JlOjpXTUxJbnB1dEVs
ZW1lbnQ6OnZpc2libGVWYWx1ZSk6CisgICAgICAgICAgSW1wbGVtZW50IHZpc2libGVWYWx1ZSgp
LiBJdCBqdXN0IGNhbGxzIHZhbHVlKCkuCisKIDIwMTAtMTItMDYgIFNpbW9uIEZyYXNlciAgPHNp
bW9uLmZyYXNlckBhcHBsZS5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgQmV0aCBEYWtpbi4K
ZGlmZiAtLWdpdCBhL1dlYkNvcmUvR05VbWFrZWZpbGUuYW0gYi9XZWJDb3JlL0dOVW1ha2VmaWxl
LmFtCmluZGV4IDZiMjY0NjQ3ZmYxODcwN2UwY2Q3M2IzYmM3MzY1MTVkMzlkNjc1ODIuLmFiNWZk
MDE3ZDUyZTcwZGU2MWFhNmM2MjE2MGYxMGE5YTFlMWM3NzQgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUv
R05VbWFrZWZpbGUuYW0KKysrIGIvV2ViQ29yZS9HTlVtYWtlZmlsZS5hbQpAQCAtMjU3MSw2ICsy
NTcxLDggQEAgd2ViY29yZV9zb3VyY2VzICs9IFwKIAlXZWJDb3JlL3BsYXRmb3JtL3RleHQvSHlw
aGVuYXRpb24uaCBcCiAJV2ViQ29yZS9wbGF0Zm9ybS90ZXh0L0xpbmVFbmRpbmcuY3BwIFwKIAlX
ZWJDb3JlL3BsYXRmb3JtL3RleHQvTGluZUVuZGluZy5oIFwKKwlXZWJDb3JlL3BsYXRmb3JtL3Rl
eHQvTG9jYWxpemVkTnVtYmVyLmggXAorCVdlYkNvcmUvcGxhdGZvcm0vdGV4dC9Mb2NhbGl6ZWRO
dW1iZXJOb25lLmNwcCBcCiAJV2ViQ29yZS9wbGF0Zm9ybS90ZXh0L1BhcnNlclV0aWxpdGllcy5o
IFwKIAlXZWJDb3JlL3BsYXRmb3JtL3RleHQvUGxhdGZvcm1TdHJpbmcuaCBcCiAJV2ViQ29yZS9w
bGF0Zm9ybS90ZXh0L1JlZ3VsYXJFeHByZXNzaW9uLmNwcCBcCmRpZmYgLS1naXQgYS9XZWJDb3Jl
L1dlYkNvcmUuZ3lwaSBiL1dlYkNvcmUvV2ViQ29yZS5neXBpCmluZGV4IDAxYzVjODk5ZjliZWE2
OWI5OWVmNjVjZDk1ZjA1MjA1ZTA1OTE5ODUuLmU5YmVkZGEyMWIyM2MzZTZhN2JmOGJlZjkyNzQ2
M2Q5OTUyZjE4NWUgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvV2ViQ29yZS5neXBpCisrKyBiL1dlYkNv
cmUvV2ViQ29yZS5neXBpCkBAIC0zMjkyLDYgKzMyOTIsOCBAQAogICAgICAgICAgICAgJ3BsYXRm
b3JtL3RleHQvSHlwaGVuYXRpb24uaCcsCiAgICAgICAgICAgICAncGxhdGZvcm0vdGV4dC9MaW5l
RW5kaW5nLmNwcCcsCiAgICAgICAgICAgICAncGxhdGZvcm0vdGV4dC9MaW5lRW5kaW5nLmgnLAor
ICAgICAgICAgICAgJ3BsYXRmb3JtL3RleHQvTG9jYWxpemVkTnVtYmVyLmgnLAorICAgICAgICAg
ICAgJ3BsYXRmb3JtL3RleHQvTG9jYWxpemVkTnVtYmVyTm9uZS5jcHAnLAogICAgICAgICAgICAg
J3BsYXRmb3JtL3RleHQvUGFyc2VyVXRpbGl0aWVzLmgnLAogICAgICAgICAgICAgJ3BsYXRmb3Jt
L3RleHQvUGxhdGZvcm1TdHJpbmcuaCcsCiAgICAgICAgICAgICAncGxhdGZvcm0vdGV4dC9SZWd1
bGFyRXhwcmVzc2lvbi5jcHAnLApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9XZWJDb3JlLnBybyBiL1dl
YkNvcmUvV2ViQ29yZS5wcm8KaW5kZXggYTJlZWU3ZTkwYTBlMzhkZGVmNTIzYmM3MjdmOGEwNTU3
MDY1ODQzNS4uNDMzMTU1OTYwZmY4YjM5NTVmMTg0NzRmZjU4ZGViYjc1ZmQ0Y2FmYSAxMDA2NDQK
LS0tIGEvV2ViQ29yZS9XZWJDb3JlLnBybworKysgYi9XZWJDb3JlL1dlYkNvcmUucHJvCkBAIC0x
MTQ5LDYgKzExNDksNyBAQCBTT1VSQ0VTICs9IFwKICAgICBwbGF0Zm9ybS90ZXh0L0Jhc2U2NC5j
cHAgXAogICAgIHBsYXRmb3JtL3RleHQvQmlkaUNvbnRleHQuY3BwIFwKICAgICBwbGF0Zm9ybS90
ZXh0L0h5cGhlbmF0aW9uLmNwcCBcCisgICAgcGxhdGZvcm0vdGV4dC9Mb2NhbGl6ZWROdW1iZXJO
b25lLmNwcCBcCiAgICAgcGxhdGZvcm0vQ29udGVudFR5cGUuY3BwIFwKICAgICBwbGF0Zm9ybS9D
b250ZXh0TWVudS5jcHAgXAogICAgIHBsYXRmb3JtL0Nyb3NzVGhyZWFkQ29waWVyLmNwcCBcCmRp
ZmYgLS1naXQgYS9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qIGIvV2ViQ29y
ZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvagppbmRleCAzYTA0YmFjZjA1ZjRjNTJlMDBk
NzRhNmVhNmU4ODU3ZTZlOTUyZjQ3Li41M2UzZTYzZTYxMWQ5MWYzODJkZTY3ZDExZTI2ZmYyM2Uw
Njc5NmRmIDEwMDc1NQotLS0gYS9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9q
CisrKyBiL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2oKQEAgLTMwMTEzLDYg
KzMwMTEzLDE0IEBACiAJCQkJCT4KIAkJCQk8L0ZpbGU+CiAJCQkJPEZpbGUKKwkJCQkJUmVsYXRp
dmVQYXRoPSIuLlxwbGF0Zm9ybVx0ZXh0XExvY2FsaXplZE51bWJlci5oIgorCQkJCQk+CisJCQkJ
PC9GaWxlPgorCQkJCTxGaWxlCisJCQkJCVJlbGF0aXZlUGF0aD0iLi5ccGxhdGZvcm1cdGV4dFxM
b2NhbGl6ZWROdW1iZXJOb25lLmNwcCIKKwkJCQkJPgorCQkJCTwvRmlsZT4KKwkJCQk8RmlsZQog
CQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXHBsYXRmb3JtXHRleHRcUGFyc2VyVXRpbGl0aWVzLmgiCiAJ
CQkJCT4KIAkJCQk8L0ZpbGU+CmRpZmYgLS1naXQgYS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9q
L3Byb2plY3QucGJ4cHJvaiBiL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhw
cm9qCmluZGV4IDRmN2VkNzg3ZTQyMTM3ZjNmNjgxZTVhYmM0OWYwMGZiYjFkODFmMGUuLjc4ZWNj
YzRhMzQ2MTk2YThiZTJmMGQ5NzdmNjdkN2M3ZjAxYTkzY2MgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUv
V2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1dlYkNvcmUvV2ViQ29yZS54
Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC01NTUwLDYgKzU1NTAsOCBAQAogCQlGM0Q0NjE0
OTExNjFENTMyMDBDQTBEMDkgLyogSlNXb3JrZXJDb250ZXh0RXJyb3JIYW5kbGVyLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGM0Q0NjE0NzExNjFENTMy
MDBDQTBEMDkgLyogSlNXb3JrZXJDb250ZXh0RXJyb3JIYW5kbGVyLmggKi87IH07CiAJCUY0RUFG
NEFFMTBDNzQyQjEwMDkxMDBEMyAvKiBPcGVuVHlwZVNhbml0aXplci5jcHAgaW4gU291cmNlcyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNEVBRjRBQzEwQzc0MkIxMDA5MTAw
RDMgLyogT3BlblR5cGVTYW5pdGl6ZXIuY3BwICovOyB9OwogCQlGNEVBRjRBRjEwQzc0MkIxMDA5
MTAwRDMgLyogT3BlblR5cGVTYW5pdGl6ZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IEY0RUFGNEFEMTBDNzQyQjEwMDkxMDBEMyAvKiBPcGVuVHlwZVNh
bml0aXplci5oICovOyB9OworCQlGNTE0MkM2OTEyM0YxMkIwMDBGNUJENEMgLyogTG9jYWxpemVk
TnVtYmVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBG
NTE0MkM2ODEyM0YxMkIwMDBGNUJENEMgLyogTG9jYWxpemVkTnVtYmVyLmggKi87IH07CisJCUY1
MTQyQzZCMTIzRjEyQzUwMEY1QkQ0QyAvKiBMb2NhbGl6ZWROdW1iZXJOb25lLmNwcCBpbiBTb3Vy
Y2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY1MTQyQzZBMTIzRjEyQzUw
MEY1QkQ0QyAvKiBMb2NhbGl6ZWROdW1iZXJOb25lLmNwcCAqLzsgfTsKIAkJRjU1QjNEQUQxMjUx
RjEyRDAwM0VGMjY5IC8qIEJhc2VUZXh0SW5wdXRUeXBlLmNwcCBpbiBTb3VyY2VzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY1NUIzRDc5MTI1MUYxMkQwMDNFRjI2OSAvKiBC
YXNlVGV4dElucHV0VHlwZS5jcHAgKi87IH07CiAJCUY1NUIzREFFMTI1MUYxMkQwMDNFRjI2OSAv
KiBCYXNlVGV4dElucHV0VHlwZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gRjU1QjNEN0ExMjUxRjEyRDAwM0VGMjY5IC8qIEJhc2VUZXh0SW5wdXRUeXBl
LmggKi87IH07CiAJCUY1NUIzREFGMTI1MUYxMkQwMDNFRjI2OSAvKiBCdXR0b25JbnB1dFR5cGUu
Y3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjU1QjNE
N0IxMjUxRjEyRDAwM0VGMjY5IC8qIEJ1dHRvbklucHV0VHlwZS5jcHAgKi87IH07CkBAIC0xMTY3
NSw2ICsxMTY3Nyw4IEBACiAJCUYzRDQ2MTQ3MTE2MUQ1MzIwMENBMEQwOSAvKiBKU1dvcmtlckNv
bnRleHRFcnJvckhhbmRsZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNX
b3JrZXJDb250ZXh0RXJyb3JIYW5kbGVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CUY0RUFGNEFDMTBDNzQyQjEwMDkxMDBEMyAvKiBPcGVuVHlwZVNhbml0aXplci5jcHAgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBPcGVuVHlwZVNhbml0aXplci5jcHA7IHBh
dGggPSBvcGVudHlwZS9PcGVuVHlwZVNhbml0aXplci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCUY0RUFGNEFEMTBDNzQyQjEwMDkxMDBEMyAvKiBPcGVuVHlwZVNhbml0aXplci5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBPcGVuVHlwZVNhbml0aXplci5oOyBw
YXRoID0gb3BlbnR5cGUvT3BlblR5cGVTYW5pdGl6ZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKKwkJRjUxNDJDNjgxMjNGMTJCMDAwRjVCRDRDIC8qIExvY2FsaXplZE51bWJlci5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBMb2NhbGl6ZWROdW1iZXIuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRjUxNDJDNkExMjNGMTJDNTAwRjVCRDRDIC8qIExvY2Fs
aXplZE51bWJlck5vbmUuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0g
TG9jYWxpemVkTnVtYmVyTm9uZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUY1
MjNEMjNCMDJERTQzOTYwMTg2MzVDQSAvKiBIVE1MRG9jdW1lbnQuY3BwICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBpbmRlbnRXaWR0aCA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSFRNTERvY3VtZW50LmNw
cDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgdGFiV2lkdGggPSA4OyB1c2VzVGFicyA9IDA7IH07
CiAJCUY1MjNEMjNDMDJERTQzOTYwMTg2MzVDQSAvKiBIVE1MRG9jdW1lbnQuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgaW5kZW50V2lkdGggPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSFRNTERvY3VtZW50Lmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IHRhYldpZHRoID0gODsgdXNlc1RhYnMgPSAwOyB9Owog
CQlGNTIzRDIzRTAyREU0Mzk2MDE4NjM1Q0EgLyogSFRNTEVsZW1lbnQuY3BwICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBpbmRlbnRXaWR0aCA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSFRNTEVsZW1lbnQu
Y3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB0YWJXaWR0aCA9IDg7IHVzZXNUYWJzID0gMDsg
fTsKQEAgLTE2OTA2LDYgKzE2OTEwLDggQEAKIAkJCQkzNzVDRDIzMTExOUQ0M0M4MDBBMkE4NTkg
LyogSHlwaGVuYXRpb24uaCAqLywKIAkJCQk4OUI1RUE5RjExRTgwMDNEMDBGMjM2N0UgLyogTGlu
ZUVuZGluZy5jcHAgKi8sCiAJCQkJODlCNUVBQTAxMUU4MDAzRDAwRjIzNjdFIC8qIExpbmVFbmRp
bmcuaCAqLywKKwkJCQlGNTE0MkM2ODEyM0YxMkIwMDBGNUJENEMgLyogTG9jYWxpemVkTnVtYmVy
LmggKi8sCisJCQkJRjUxNDJDNkExMjNGMTJDNTAwRjVCRDRDIC8qIExvY2FsaXplZE51bWJlck5v
bmUuY3BwICovLAogCQkJCUJDNzZBQzExMEREN0FENUMwMDQxNUYzNCAvKiBQYXJzZXJVdGlsaXRp
ZXMuaCAqLywKIAkJCQlCMkMzRDlGQjBEMDA2QzFEMDBFRjZGMjYgLyogUGxhdGZvcm1TdHJpbmcu
aCAqLywKIAkJCQlCMkMzRDlGQzBEMDA2QzFEMDBFRjZGMjYgLyogUmVndWxhckV4cHJlc3Npb24u
Y3BwICovLApAQCAtMjA1NjcsNiArMjA1NzMsNyBAQAogCQkJCTA2RTgxRUQ3MEFCNUQ1RTkwMEM4
NzgzNyAvKiBMb2NhbEN1cnJlbnRHcmFwaGljc0NvbnRleHQuaCBpbiBIZWFkZXJzICovLAogCQkJ
CTg5ODc4NTY4MTIyQ0EwNjQwMDNBQUJEQSAvKiBMb2NhbEZpbGVTeXN0ZW0uaCBpbiBIZWFkZXJz
ICovLAogCQkJCUJDNUNGQ0E5MTFGNzkzMzIwMDk5RUQwOSAvKiBMb2NhbGl6YXRpb25TdHJhdGVn
eS5oIGluIEhlYWRlcnMgKi8sCisJCQkJRjUxNDJDNjkxMjNGMTJCMDAwRjVCRDRDIC8qIExvY2Fs
aXplZE51bWJlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOTM1MjA3QkUwOUJENDEwQTAwRjIwMzhE
IC8qIExvY2FsaXplZFN0cmluZ3MuaCBpbiBIZWFkZXJzICovLAogCQkJCTUxMUYyMzE4MERDMTYw
REEwMDRGMDAzMiAvKiBMb2NhbFN0b3JhZ2VUYXNrLmggaW4gSGVhZGVycyAqLywKIAkJCQk1MTFG
MjMxQTBEQzE2MERBMDA0RjAwMzIgLyogTG9jYWxTdG9yYWdlVGhyZWFkLmggaW4gSGVhZGVycyAq
LywKQEAgLTIzMzA1LDYgKzIzMzEyLDcgQEAKIAkJCQk2NTZEMzczMzBBREJBNURFMDBBNDU1NEQg
LyogTG9hZGVyTlNVUkxFeHRyYXMubW0gaW4gU291cmNlcyAqLywKIAkJCQkwNkU4MUVFQzBBQjVE
QTk3MDBDODc4MzcgLyogTG9jYWxDdXJyZW50R3JhcGhpY3NDb250ZXh0Lm1tIGluIFNvdXJjZXMg
Ki8sCiAJCQkJODk4Nzg1NjcxMjJDQTA2NDAwM0FBQkRBIC8qIExvY2FsRmlsZVN5c3RlbS5jcHAg
aW4gU291cmNlcyAqLywKKwkJCQlGNTE0MkM2QjEyM0YxMkM1MDBGNUJENEMgLyogTG9jYWxpemVk
TnVtYmVyTm9uZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlDMDQ2RTFBQzEyMDhBOUZFMDBCQTJD
RjcgLyogTG9jYWxpemVkU3RyaW5ncy5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk1MTFGMjMxNzBE
QzE2MERBMDA0RjAwMzIgLyogTG9jYWxTdG9yYWdlVGFzay5jcHAgaW4gU291cmNlcyAqLywKIAkJ
CQk1MTFGMjMxOTBEQzE2MERBMDA0RjAwMzIgLyogTG9jYWxTdG9yYWdlVGhyZWFkLmNwcCBpbiBT
b3VyY2VzICovLApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9kb20vSW5wdXRFbGVtZW50LmggYi9XZWJD
b3JlL2RvbS9JbnB1dEVsZW1lbnQuaAppbmRleCAzNDc4NGJjN2U3ZDM3YzA3NDZmNTVjNTFkNjAx
ODg5ODk3ODczNThlLi41MGYzODAxNGZlYTNhNzNhN2JhZmZjYjgwNGU3YzA0ODdmZmNkMGMzIDEw
MDY0NAotLS0gYS9XZWJDb3JlL2RvbS9JbnB1dEVsZW1lbnQuaAorKysgYi9XZWJDb3JlL2RvbS9J
bnB1dEVsZW1lbnQuaApAQCAtNTksNiArNTksOCBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBTdHJp
bmcgdmFsdWUoKSBjb25zdCA9IDA7CiAgICAgdmlydHVhbCB2b2lkIHNldFZhbHVlKGNvbnN0IFN0
cmluZyYsIGJvb2wgc2VuZENoYW5nZUV2ZW50ID0gZmFsc2UpID0gMDsKICAgICB2aXJ0dWFsIHZv
aWQgc2V0VmFsdWVGb3JVc2VyKGNvbnN0IFN0cmluZyYpID0gMDsKKyAgICAvLyBUaGUgdmFsdWUg
d2hpY2ggaXMgZHJhd24gYnkgYSByZW5kZXJlci4KKyAgICB2aXJ0dWFsIFN0cmluZyB2aXNpYmxl
VmFsdWUoKSBjb25zdCA9IDA7CiAKICAgICAvLyBSZXR1cm5zIHRydWUgaWYgdGhlIHNwZWNpZmll
ZCBzdHJpbmcgY2FuIGJlIHNldCBhcyB0aGUgdmFsdWUgb2YgSW5wdXRFbGVtZW50LgogICAgIHZp
cnR1YWwgYm9vbCBpc0FjY2VwdGFibGVWYWx1ZShjb25zdCBTdHJpbmcmKSBjb25zdCA9IDA7CmRp
ZmYgLS1naXQgYS9XZWJDb3JlL2h0bWwvSFRNTElucHV0RWxlbWVudC5jcHAgYi9XZWJDb3JlL2h0
bWwvSFRNTElucHV0RWxlbWVudC5jcHAKaW5kZXggNGY5MzM5ZGZkNzc5MTg2MWRkMGRmMjE2YTc3
NDQwMzNhMDgwNDU0MS4uNTdkZmQxMjAwM2Q2ODU2Yzk1YTY1NWM1NjM2YThlZjYzNjM2N2FmMyAx
MDA2NDQKLS0tIGEvV2ViQ29yZS9odG1sL0hUTUxJbnB1dEVsZW1lbnQuY3BwCisrKyBiL1dlYkNv
cmUvaHRtbC9IVE1MSW5wdXRFbGVtZW50LmNwcApAQCAtNTMsNiArNTMsNyBAQAogI2luY2x1ZGUg
IkhUTUxQYXJzZXJJZGlvbXMuaCIKICNpbmNsdWRlICJJbnB1dFR5cGUuaCIKICNpbmNsdWRlICJL
ZXlib2FyZEV2ZW50LmgiCisjaW5jbHVkZSAiTG9jYWxpemVkTnVtYmVyLmgiCiAjaW5jbHVkZSAi
TG9jYWxpemVkU3RyaW5ncy5oIgogI2luY2x1ZGUgIk1vdXNlRXZlbnQuaCIKICNpbmNsdWRlICJQ
YWdlLmgiCkBAIC04MCwxMCArODEsMTYgQEAgdXNpbmcgbmFtZXNwYWNlIEhUTUxOYW1lczsKIAog
Y29uc3QgaW50IG1heFNhdmVkUmVzdWx0cyA9IDI1NjsKIAorLy8gUmV0dXJucyB0cnVlIGlmIHRo
ZSBzcGVjaWZpZWQgY2hhcmFjdGVyIGNhbiBiZSBhIHBhcnQgb2YgJ3ZhbGlkIGZsb2F0aW5nCisv
LyBwb2ludCBudW1iZXInIG9mIEhUTUw1Lgorc3RhdGljIGlubGluZSBib29sIGlzSFRNTE51bWJl
ckNoYXJhY3RlcihVQ2hhciBjaCkKK3sKKyAgICByZXR1cm4gY2ggPT0gJysnIHx8IGNoID09ICct
JyB8fCBjaCA9PSAnLicgfHwgY2ggPT0gJ2UnIHx8IGNoID09ICdFJyB8fCAoY2ggPj0gJzAnICYm
IGNoIDw9ICc5Jyk7Cit9CisKIHN0YXRpYyBib29sIGlzTnVtYmVyQ2hhcmFjdGVyKFVDaGFyIGNo
KQogewotICAgIHJldHVybiBjaCA9PSAnKycgfHwgY2ggPT0gJy0nIHx8IGNoID09ICcuJyB8fCBj
aCA9PSAnZScgfHwgY2ggPT0gJ0UnCi0gICAgICAgIHx8IChjaCA+PSAnMCcgJiYgY2ggPD0gJzkn
KTsKKyAgICByZXR1cm4gaXNMb2NhbGl6ZWROdW1iZXJDaGFyYWN0ZXIoY2gpIHx8IGlzSFRNTE51
bWJlckNoYXJhY3RlcihjaCk7CiB9CiAKIEhUTUxJbnB1dEVsZW1lbnQ6OkhUTUxJbnB1dEVsZW1l
bnQoY29uc3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwgRG9jdW1lbnQqIGRvY3VtZW50LCBIVE1M
Rm9ybUVsZW1lbnQqIGZvcm0pCkBAIC0xNTA2LDE3ICsxNTEzLDM2IEBAIEZpbGVMaXN0KiBIVE1M
SW5wdXRFbGVtZW50OjpmaWxlcygpCiAgICAgcmV0dXJuIG1fZmlsZUxpc3QuZ2V0KCk7CiB9CiAK
K1N0cmluZyBIVE1MSW5wdXRFbGVtZW50Ojp2aXNpYmxlVmFsdWUoKSBjb25zdAoreworICAgIFN0
cmluZyBjdXJyZW50VmFsdWUgPSB2YWx1ZSgpOworICAgIGlmIChkZXByZWNhdGVkSW5wdXRUeXBl
KCkgIT0gTlVNQkVSKQorICAgICAgICByZXR1cm4gY3VycmVudFZhbHVlOworICAgIGlmIChjdXJy
ZW50VmFsdWUuaXNFbXB0eSgpKQorICAgICAgICByZXR1cm4gY3VycmVudFZhbHVlOworICAgIGRv
dWJsZSBkb3VibGVWYWx1ZSA9IG51bWVyaWNfbGltaXRzPGRvdWJsZT46OnF1aWV0X05hTigpOwor
ICAgIHBhcnNlVG9Eb3VibGVGb3JOdW1iZXJUeXBlKGN1cnJlbnRWYWx1ZSwgJmRvdWJsZVZhbHVl
KTsKKyAgICBTdHJpbmcgbG9jYWxpemVkID0gZm9ybWF0TG9jYWxpemVkTnVtYmVyKGRvdWJsZVZh
bHVlKTsKKyAgICByZXR1cm4gbG9jYWxpemVkLmlzRW1wdHkoKSA/IGN1cnJlbnRWYWx1ZSA6IGxv
Y2FsaXplZDsKK30KKwogYm9vbCBIVE1MSW5wdXRFbGVtZW50Ojppc0FjY2VwdGFibGVWYWx1ZShj
b25zdCBTdHJpbmcmIHByb3Bvc2VkVmFsdWUpIGNvbnN0CiB7CiAgICAgaWYgKGRlcHJlY2F0ZWRJ
bnB1dFR5cGUoKSAhPSBOVU1CRVIpCiAgICAgICAgIHJldHVybiB0cnVlOwotICAgIHJldHVybiBw
cm9wb3NlZFZhbHVlLmlzRW1wdHkoKSB8fCBwYXJzZVRvRG91YmxlRm9yTnVtYmVyVHlwZShwcm9w
b3NlZFZhbHVlLCAwKTsKKyAgICByZXR1cm4gcHJvcG9zZWRWYWx1ZS5pc0VtcHR5KCkgfHwgaXNm
aW5pdGUocGFyc2VMb2NhbGl6ZWROdW1iZXIocHJvcG9zZWRWYWx1ZSkpIHx8IHBhcnNlVG9Eb3Vi
bGVGb3JOdW1iZXJUeXBlKHByb3Bvc2VkVmFsdWUsIDApOwogfQogCiBTdHJpbmcgSFRNTElucHV0
RWxlbWVudDo6c2FuaXRpemVWYWx1ZShjb25zdCBTdHJpbmcmIHByb3Bvc2VkVmFsdWUpIGNvbnN0
CiB7Ci0gICAgaWYgKGRlcHJlY2F0ZWRJbnB1dFR5cGUoKSA9PSBOVU1CRVIpCisgICAgaWYgKGRl
cHJlY2F0ZWRJbnB1dFR5cGUoKSA9PSBOVU1CRVIpIHsKKyAgICAgICAgLy8gVHJ5IHRvIHBhcnNl
IHRoZSB2YWx1ZSBhcyBhIGxvY2FsaXplZCBudW1iZXIsIHRoZW4gdHJ5IHRvIHBhcnNlIGl0IGFz
CisgICAgICAgIC8vIHRoZSBzdGFuZGFyZCBmb3JtYXQuCisgICAgICAgIGRvdWJsZSBwYXJzZWRW
YWx1ZSA9IHBhcnNlTG9jYWxpemVkTnVtYmVyKHByb3Bvc2VkVmFsdWUpOworICAgICAgICBpZiAo
aXNmaW5pdGUocGFyc2VkVmFsdWUpKQorICAgICAgICAgICAgcmV0dXJuIHNlcmlhbGl6ZUZvck51
bWJlclR5cGUocGFyc2VkVmFsdWUpOwogICAgICAgICByZXR1cm4gcGFyc2VUb0RvdWJsZUZvck51
bWJlclR5cGUocHJvcG9zZWRWYWx1ZSwgMCkgPyBwcm9wb3NlZFZhbHVlIDogU3RyaW5nKCk7Cisg
ICAgfQogCiAgICAgaWYgKGlzVGV4dEZpZWxkKCkpCiAgICAgICAgIHJldHVybiBJbnB1dEVsZW1l
bnQ6OnNhbml0aXplVmFsdWVGb3JUZXh0RmllbGQodGhpcywgcHJvcG9zZWRWYWx1ZSk7CmRpZmYg
LS1naXQgYS9XZWJDb3JlL2h0bWwvSFRNTElucHV0RWxlbWVudC5oIGIvV2ViQ29yZS9odG1sL0hU
TUxJbnB1dEVsZW1lbnQuaAppbmRleCAwZjBlOTdlNjdiNjUzODVkZmYxY2NmM2QyYTFkMzhjNmIw
NmVkOTdhLi5lOGU0ODEzNTZiODdjMTY2MWIwNTE5MzZlYTcxZjVmMGIxNWRhYTQxIDEwMDY0NAot
LS0gYS9XZWJDb3JlL2h0bWwvSFRNTElucHV0RWxlbWVudC5oCisrKyBiL1dlYkNvcmUvaHRtbC9I
VE1MSW5wdXRFbGVtZW50LmgKQEAgLTMwNiw2ICszMDYsNyBAQCBwcml2YXRlOgogCiAgICAgdmly
dHVhbCB2b2lkIGNhY2hlU2VsZWN0aW9uKGludCBzdGFydCwgaW50IGVuZCk7CiAKKyAgICB2aXJ0
dWFsIFN0cmluZyB2aXNpYmxlVmFsdWUoKSBjb25zdDsKICAgICB2aXJ0dWFsIGJvb2wgaXNBY2Nl
cHRhYmxlVmFsdWUoY29uc3QgU3RyaW5nJikgY29uc3Q7CiAgICAgdmlydHVhbCBTdHJpbmcgc2Fu
aXRpemVWYWx1ZShjb25zdCBTdHJpbmcmKSBjb25zdDsKICAgICB2aXJ0dWFsIGJvb2wgaGFzVW5h
Y2NlcHRhYmxlVmFsdWUoKSBjb25zdDsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGxhdGZvcm0vdGV4
dC9Mb2NhbGl6ZWROdW1iZXIuaCBiL1dlYkNvcmUvcGxhdGZvcm0vdGV4dC9Mb2NhbGl6ZWROdW1i
ZXIuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi4yYzRkMTU1MTA1ZGNhNDEzMWEwMzc0ZGYwMjhmNDFlZmQ5Mjc1ODU4
Ci0tLSAvZGV2L251bGwKKysrIGIvV2ViQ29yZS9wbGF0Zm9ybS90ZXh0L0xvY2FsaXplZE51bWJl
ci5oCkBAIC0wLDAgKzEsNTkgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAgR29vZ2xlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBh
cmUKKyAqIG1ldDoKKyAqCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUg
bXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogICAgICogUmVkaXN0
cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQorICogY29w
eXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lcgorICogaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFs
cyBwcm92aWRlZCB3aXRoIHRoZQorICogZGlzdHJpYnV0aW9uLgorICogICAgICogTmVpdGhlciB0
aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cworICogY29udHJpYnV0
b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZy
b20KKyAqIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1p
c3Npb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hU
IEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUworICogIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1Ig
SU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFRI
RSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgor
ICogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxM
IFRIRSBDT1BZUklHSFQKKyAqIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFO
WSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAorICogU1BFQ0lBTCwgRVhFTVBMQVJZLCBP
UiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBU
TywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBV
U0UsCisgKiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VW
RVIgQ0FVU0VEIEFORCBPTiBBTlkKKyAqIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4g
Q09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElH
RU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICog
T0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBT
VUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVmIExvY2FsaXplZE51bWJlcl9oCisjZGVmaW5lIExv
Y2FsaXplZE51bWJlcl9oCisKKyNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KKworbmFt
ZXNwYWNlIFdlYkNvcmUgeworCisvLyBQYXJzZXMgYSBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2Yg
YSBmbG9hdGluZyBwb2ludCBudW1iZXIgbG9jYWxpemVkCisvLyBmb3IgdGhlIGJyb3dzZXIncyBj
dXJyZW50IGxvY2FsZS4gSWYgdGhlIGlucHV0IHN0cmluZyBpcyBub3QgdmFsaWQKKy8vIG9yIGFu
IGltcGxlbWVudGF0aW9uIGRvZXNuJ3Qgc3VwcG9ydCBsb2NhbGl6ZWQgbnVtYmVycywgdGhpcwor
Ly8gZnVuY3Rpb24gcmV0dXJucyBOYU4uIFRoaXMgZnVuY3Rpb24gZG9lc24ndCBuZWVkIHRvIHN1
cHBvcnQKKy8vIHNjaWVudGlmaWMgbm90YXRpb24sIE5hTiwgK0luZmluaXR5IGFuZCAtSW5maW5p
dHksIGFuZCBkb2Vzbid0IG5lZWQKKy8vIHRvIHN1cHBvcnQgdGhlIHN0YW5kYXJkIHJlcHJlc2Vu
dGF0aW9ucyBvZiBFQ01BU2NyaXB0IGFuZCBIVE1MNS4KK2RvdWJsZSBwYXJzZUxvY2FsaXplZE51
bWJlcihjb25zdCBTdHJpbmcmKTsKKworLy8gU2VyaWFsaXplcyB0aGUgc3BlY2lmaWVkIGZsb2F0
aW5nIHBvaW50IG51bWJlciBmb3IgdGhlIGJyb3dzZXIncworLy8gY3VycmVudCBsb2NhbGUuICBJ
ZiBhbiBpbXBsZW1lbnRhdGlvbiBkb2Vzbid0IHN1cHBvcnQgbG9jYWxpemVkCisvLyBudW1iZXJz
IG9yIHRoZSBpbnB1dCB2YWx1ZSBpcyBOYU4gb3IgSW5maW5pdGl5LCB0aGUgZnVuY3Rpb24gc2hv
dWxkCisvLyByZXR1cm4gYW4gZW1wdHkgc3RyaW5nLgorU3RyaW5nIGZvcm1hdExvY2FsaXplZE51
bWJlcihkb3VibGUpOworCisvLyBSZXR1cm5zIHRydWUgaWYgdGhlIGlucHV0IGNoYXJhY3RlciBj
YW4gYmUgdXNlZCB0byByZXByZXNlbnQgYQorLy8gbnVtYmVyIGluIHRoZSBicm93c2VyIGxvY2Fs
ZS4gRm9yIGV4YW1wbGUsIHRoaXMgc2hvdWxkIHJldHVybiB0cnVlIGZvciAwLTkgLgorLy8gLCAr
IC0gZm9yIGVuLVVTIGxvY2FsZS4KK2Jvb2wgaXNMb2NhbGl6ZWROdW1iZXJDaGFyYWN0ZXIoVUNo
YXIzMik7CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIExvY2FsaXplZE51
bWJlcl9oCmRpZmYgLS1naXQgYS9XZWJDb3JlL3BsYXRmb3JtL3RleHQvTG9jYWxpemVkTnVtYmVy
Tm9uZS5jcHAgYi9XZWJDb3JlL3BsYXRmb3JtL3RleHQvTG9jYWxpemVkTnVtYmVyTm9uZS5jcHAK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uZmYzOThlZjU4MWEwYmVmYzM2NzY2Nzg2MzI4OWI3YjFhOGY2Y2U3ZgotLS0g
L2Rldi9udWxsCisrKyBiL1dlYkNvcmUvcGxhdGZvcm0vdGV4dC9Mb2NhbGl6ZWROdW1iZXJOb25l
LmNwcApAQCAtMCwwICsxLDU1IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEwIEdvb2dsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMg
YXJlCisgKiBtZXQ6CisgKgorICogICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2Rl
IG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqICAgICAqIFJlZGlz
dHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKKyAqIGNv
cHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIKKyAqIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlh
bHMgcHJvdmlkZWQgd2l0aCB0aGUKKyAqIGRpc3RyaWJ1dGlvbi4KKyAqICAgICAqIE5laXRoZXIg
dGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKKyAqIGNvbnRyaWJ1
dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBm
cm9tCisgKiB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJt
aXNzaW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdI
VCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKKyAqICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9S
IElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBU
SEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IK
KyAqIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFM
TCBUSEUgQ09QWVJJR0hUCisgKiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBB
TlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKKyAqIFNQRUNJQUwsIEVYRU1QTEFSWSwg
T1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQg
VE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0Yg
VVNFLAorICogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dF
VkVSIENBVVNFRCBBTkQgT04gQU5ZCisgKiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElO
IENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJ
R0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAq
IE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIkxvY2Fs
aXplZE51bWJlci5oIgorCisjaW5jbHVkZSA8bGltaXRzPgorCit1c2luZyBuYW1lc3BhY2Ugc3Rk
OworCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2RvdWJsZSBwYXJzZUxvY2FsaXplZE51bWJlcihj
b25zdCBTdHJpbmcmKQoreworICAgIHJldHVybiBudW1lcmljX2xpbWl0czxkb3VibGU+OjpxdWll
dF9OYU4oKTsKK30KKworU3RyaW5nIGZvcm1hdExvY2FsaXplZE51bWJlcihkb3VibGUpCit7Cisg
ICAgcmV0dXJuIFN0cmluZygpOworfQorCitib29sIGlzTG9jYWxpemVkTnVtYmVyQ2hhcmFjdGVy
KFVDaGFyMzIpCit7CisgICAgcmV0dXJuIGZhbHNlOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJD
b3JlCmRpZmYgLS1naXQgYS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUZXh0Q29udHJvbFNpbmds
ZUxpbmUuY3BwIGIvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGV4dENvbnRyb2xTaW5nbGVMaW5l
LmNwcAppbmRleCAyZGY5NmEyZDNhODc2OGU3NDg4ZjQ5YTdjOWQ5MWNlOWI2ZjY2YjdlLi43MDAw
ODhmOTQ1MmI5ZjllZmM5ZTk0NWFiNzNhNGM1MjZmZDQ0YzQ3IDEwMDY0NAotLS0gYS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJUZXh0Q29udHJvbFNpbmdsZUxpbmUuY3BwCisrKyBiL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlclRleHRDb250cm9sU2luZ2xlTGluZS5jcHAKQEAgLTY5Niw3ICs2OTYs
NyBAQCB2b2lkIFJlbmRlclRleHRDb250cm9sU2luZ2xlTGluZTo6dXBkYXRlRnJvbUVsZW1lbnQo
KQogICAgICAgICAgICAgLy8gZmxhZyBpcyBmYWxzZS4gSXQgcHJvdGVjdHMgYW4gdW5hY2NlcHRh
YmxlIHJlbmRlcmVyIHZhbHVlIGZyb20KICAgICAgICAgICAgIC8vIGJlaW5nIG92ZXJ3cml0dGVu
IHdpdGggdGhlIERPTSB2YWx1ZS4KICAgICAgICAgICAgIGlmICghc3RhdGljX2Nhc3Q8SFRNTElu
cHV0RWxlbWVudCo+KG5vZGUoKSktPmZvcm1Db250cm9sVmFsdWVNYXRjaGVzUmVuZGVyZXIoKSkK
LSAgICAgICAgICAgICAgICBzZXRJbm5lclRleHRWYWx1ZShpbnB1dEVsZW1lbnQoKS0+dmFsdWUo
KSk7CisgICAgICAgICAgICAgICAgc2V0SW5uZXJUZXh0VmFsdWUoaW5wdXRFbGVtZW50KCktPnZp
c2libGVWYWx1ZSgpKTsKICAgICAgICAgfQogICAgIH0KIApkaWZmIC0tZ2l0IGEvV2ViQ29yZS93
bWwvV01MSW5wdXRFbGVtZW50LmggYi9XZWJDb3JlL3dtbC9XTUxJbnB1dEVsZW1lbnQuaAppbmRl
eCBkZjdmNDk3MmI3MmNiZTg4NDIwZGFhOGRhYTUxYTZmNWYzNDRhMDIyLi42YzY2NDEwYmNmNzZh
OWVmZmIxOGVlNTM5ZGIwYTYxNzk4OWEyNTNlIDEwMDY0NAotLS0gYS9XZWJDb3JlL3dtbC9XTUxJ
bnB1dEVsZW1lbnQuaAorKysgYi9XZWJDb3JlL3dtbC9XTUxJbnB1dEVsZW1lbnQuaApAQCAtNjMs
NiArNjMsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBTdHJpbmcgdmFsdWUoKSBjb25zdDsKICAg
ICB2aXJ0dWFsIHZvaWQgc2V0VmFsdWUoY29uc3QgU3RyaW5nJiwgYm9vbCBzZW5kQ2hhbmdlRXZl
bnQgPSBmYWxzZSk7CiAgICAgdmlydHVhbCB2b2lkIHNldFZhbHVlRm9yVXNlcihjb25zdCBTdHJp
bmcmKTsKKyAgICB2aXJ0dWFsIFN0cmluZyB2aXNpYmxlVmFsdWUoKSBjb25zdCB7IHJldHVybiB2
YWx1ZSgpOyB9CiAgICAgdmlydHVhbCB2b2lkIHNldFZhbHVlRnJvbVJlbmRlcmVyKGNvbnN0IFN0
cmluZyYpOwogCiAgICAgdmlydHVhbCBib29sIHNhdmVGb3JtQ29udHJvbFN0YXRlKFN0cmluZyYg
dmFsdWUpIGNvbnN0Owo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>78100</attachid>
            <date>2011-01-05 23:29:45 -0800</date>
            <delta_ts>2011-01-25 19:47:20 -0800</delta_ts>
            <desc>Patch 8 (rebased)</desc>
            <filename>bug-45730-20110106162943.patch</filename>
            <type>text/plain</type>
            <size>23824</size>
            <attacher name="Kent Tamura">tkent</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQW5kcm9pZC5tayBiL1dlYkNvcmUvQW5kcm9pZC5tawppbmRl
eCAyMGRiNjY3MzE0MjI3ZDYzMjMzZjliZWRkODY0YmVlNjVkNGExYjE4Li45ZjBjMzAxOTQ3NDA5
MjlkNTFjYWVkZTQ2ZGJhYTA0Yzg0ODMxYmZhIDEwMDY0NAotLS0gYS9XZWJDb3JlL0FuZHJvaWQu
bWsKKysrIGIvV2ViQ29yZS9BbmRyb2lkLm1rCkBAIC02MTQsNiArNjE0LDcgQEAgTE9DQUxfU1JD
X0ZJTEVTIDo9ICQoTE9DQUxfU1JDX0ZJTEVTKSBcCiAJcGxhdGZvcm0vdGV4dC9CYXNlNjQuY3Bw
IFwKIAlwbGF0Zm9ybS90ZXh0L0JpZGlDb250ZXh0LmNwcCBcCiAJcGxhdGZvcm0vdGV4dC9IeXBo
ZW5hdGlvbi5jcHAgXAorCXBsYXRmb3JtL3RleHQvTG9jYWxpemVkTnVtYmVyTm9uZS5jcHAgXAog
CXBsYXRmb3JtL3RleHQvUmVndWxhckV4cHJlc3Npb24uY3BwIFwKIAlwbGF0Zm9ybS90ZXh0L1Nl
Z21lbnRlZFN0cmluZy5jcHAgXAogCXBsYXRmb3JtL3RleHQvU3RyaW5nLmNwcCBcCmRpZmYgLS1n
aXQgYS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0IGIvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dAppbmRl
eCAwYmUwYmI4YmNmZWUwYTJkY2MyYTVlMTdhY2Y4Nzc1OWM1ODEzNGJjLi5kOWJlZjBmODRjNmEw
MDc1OWNkOGZhMTEwM2I4NDNlZWY5NGFiMDc2IDEwMDY0NAotLS0gYS9XZWJDb3JlL0NNYWtlTGlz
dHMudHh0CisrKyBiL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKQEAgLTE0MTYsNiArMTQxNiw3IEBA
IFNFVChXZWJDb3JlX1NPVVJDRVMKICAgICBwbGF0Zm9ybS90ZXh0L0Jhc2U2NC5jcHAKICAgICBw
bGF0Zm9ybS90ZXh0L0JpZGlDb250ZXh0LmNwcAogICAgIHBsYXRmb3JtL3RleHQvTGluZUVuZGlu
Zy5jcHAKKyAgICBwbGF0Zm9ybS90ZXh0L0xvY2FsaXplZE51bWJlck5vbmUuY3BwCiAgICAgcGxh
dGZvcm0vdGV4dC9IeXBoZW5hdGlvbi5jcHAKICAgICBwbGF0Zm9ybS90ZXh0L1JlZ3VsYXJFeHBy
ZXNzaW9uLmNwcAogICAgIHBsYXRmb3JtL3RleHQvU2VnbWVudGVkU3RyaW5nLmNwcApkaWZmIC0t
Z2l0IGEvV2ViQ29yZS9DaGFuZ2VMb2cgYi9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCA5NmYyNzAw
MTgzODI3MjBlMDNhMDJiM2I3NGJjYjlhOTBmZDIxNTgzLi4zNmM1NzJmYTAwNWQxOGU1YmQwODI2
NjBhNWJiNzE5YjQxOWU2OTQyIDEwMDY0NAotLS0gYS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9X
ZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU5IEBACisyMDEwLTA5LTEzICBLZW50IFRhbXVy
YSAgPHRrZW50QGNocm9taXVtLm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICBBUEkgdG8gc3VwcG9ydCBsb2NhbGl6ZWQgbnVtYmVycyBmb3IgPGlu
cHV0IHR5cGU9bnVtYmVyPgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9NDU3MzAKKworICAgICAgICBJbnRyb2R1Y2UgcGxhdGZvcm0vdGV4dC9Mb2NhbGl6
ZWROdW1iZXIuaCwgYW5kCisgICAgICAgIExvY2FsaXplZE51bWJlck5vbmUuY3BwLCB3aGljaCBp
cyBhbiBlbXB0eSBpbXBsZW1lbnRhdGlvbiBvZiB0aGUKKyAgICAgICAgZnVuY3Rpb25zIGluIExv
Y2FsaXplZE51bWJlci5oLiAgV2UgdXNlIExvY2FsaXplZE51bWJlck5vbmUuY3BwIGluCisgICAg
ICAgIGFsbCBwbGF0Zm9ybXMgZm9yIG5vdy4KKworICAgICAgICBBIHN0cmluZyBpbiBhIHR5cGU9
bnVtYmVyIGZpZWxkIGlzIHBhcnNlZCBhcyBhIGxvY2FsaXplZCBudW1iZXIKKyAgICAgICAgZmly
c3QuIElmIHRoZSBwYXJzaW5nIGZhaWxzLCBpdCBpcyBwYXJzZWQgYXMgdGhlIEhUTUw1IG51bWJl
ci4KKworICAgICAgICBXZSBpbnRyb2R1Y2UgSFRNTElucHV0RWxlbWVudDo6dmlzaWJsZVZhbHVl
KCkuIEl0IHJlcHJlc2VudHMgYSB2YWx1ZQorICAgICAgICB3aGljaCBzaG91bGQgYmUgZHJhd24g
YnkgYSByZW5kZXJlci4gSFRNTElucHV0RWxlbWVudDo6dmFsdWUoKSBhbHdheXMKKyAgICAgICAg
cmV0dXJucyBhIG51bWJlciBmb3JtYXR0ZWQgZm9yIEhUTUw1LCBhbmQgdmlzaWJsZVZhbHVlKCkg
bWF5IHJldHVybiBhCisgICAgICAgIGxvY2FsaXplZCBudW1iZXIuCisKKyAgICAgICAgTm8gbmV3
IHRlc3RzIGJlY2F1c2UgdGhpcyBkb2Vzbid0IGNoYW5nZSBhbnkgYmVoYXZpb3IuCisKKyAgICAg
ICAgKiBBbmRyb2lkLm1rOiBBZGQgTG9jYWxpemVkTnVtYmVyLmggYW5kL29yIExvY2FsaXplZE51
bWJlck5vbmUuY3BwLgorICAgICAgICAqIENNYWtlTGlzdHMudHh0OiBkaXR0by4KKyAgICAgICAg
KiBHTlVtYWtlZmlsZS5hbTogZGl0dG8uCisgICAgICAgICogV2ViQ29yZS5neXBpOiBkaXR0by4K
KyAgICAgICAgKiBXZWJDb3JlLnBybzogZGl0dG8uCisgICAgICAgICogV2ViQ29yZS52Y3Byb2ov
V2ViQ29yZS52Y3Byb2o6IGRpdHRvLgorICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2pl
Y3QucGJ4cHJvajogZGl0dG8uCisgICAgICAgICogZG9tL0lucHV0RWxlbWVudC5oOiBBZGQgdmlz
aWJsZVZhbHVlKCkuCisgICAgICAgICogaHRtbC9IVE1MSW5wdXRFbGVtZW50LmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OkhUTUxJbnB1dEVsZW1lbnQ6OnZpc2libGVWYWx1ZSk6IEFkZGVkLiAgSnVz
dCBjYWxsIElucHV0VHlwZTo6dmlzaWJsZVZhbHVlKCkuCisgICAgICAgICogaHRtbC9IVE1MSW5w
dXRFbGVtZW50Lmg6IERlY2xhcmUgdmlzaWJsZVZhbHVlKCkuCisgICAgICAgICogaHRtbC9JbnB1
dFR5cGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW5wdXRUeXBlOjp2aXNpYmxlVmFsdWUpOiBB
ZGQgdGhlIGRlZmF1bHQgaW1wbGVtZW50YXRpb24gb2YKKyAgICAgICAgICB2aXNpYmxlVmFsdWUo
KSwgd2hpY2ggcmV0dXJucyBIVE1MSW5wdXRFbGVtZW50Ojp2YWx1ZSgpLgorICAgICAgICAqIGh0
bWwvSW5wdXRUeXBlLmg6IEFkZCBkZWNsYXJhdGlvbnMuCisgICAgICAgICogaHRtbC9OdW1iZXJJ
bnB1dFR5cGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6aXNIVE1MTnVtYmVyQ2hhcmFjdGVyKTog
UmVuYW1lZCBmcm9tIGlzTnVtYmVyQ2hhcmFjdGVyKCkuCisgICAgICAgIChXZWJDb3JlOjppc051
bWJlckNoYXJhY3Rlcik6IENhbGxzIGlzTG9jYWxpemVkTnVtYmVyQ2hhcmFjdGVyKCkgYW5kIGlz
SFRNTE51bWJlckNoYXJhY3RlcigpLgorICAgICAgICAoV2ViQ29yZTo6TnVtYmVySW5wdXRUeXBl
Ojp2aXNpYmxlVmFsdWUpOgorICAgICAgICAgIFJldHVybnMgYSBsb2NhbGl6ZWQgbnVtYmVyIHN0
cmluZyBwcm9kdWNlZCBieSBmb3JtYXRMb2NhbGl6ZWROdW1iZXIoKS4KKyAgICAgICAgKFdlYkNv
cmU6Ok51bWJlcklucHV0VHlwZTo6aXNBY2NlcHRhYmxlVmFsdWUpOiBDYWxscyBwYXJzZUxvY2Fs
aXplZE51bWJlcigpLgorICAgICAgICAoV2ViQ29yZTo6TnVtYmVySW5wdXRUeXBlOjpzYW5pdGl6
ZVZhbHVlKTogQ2FsbHMgcGFyc2VMb2NhbGl6ZWROdW1iZXIoKS4KKyAgICAgICAgKiBodG1sL051
bWJlcklucHV0VHlwZS5oOiBBZGQgZGVjbGFyYXRpb25zLgorICAgICAgICAqIHBsYXRmb3JtL3Rl
eHQvTG9jYWxpemVkTnVtYmVyLmg6IEFkZGVkLgorICAgICAgICAqIHBsYXRmb3JtL3RleHQvTG9j
YWxpemVkTnVtYmVyTm9uZS5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6cGFyc2VMb2Nh
bGl6ZWROdW1iZXIpOgorICAgICAgICAoV2ViQ29yZTo6Zm9ybWF0TG9jYWxpemVkTnVtYmVyKToK
KyAgICAgICAgKFdlYkNvcmU6OmlzTG9jYWxpemVkTnVtYmVyQ2hhcmFjdGVyKToKKyAgICAgICAg
KiByZW5kZXJpbmcvUmVuZGVyVGV4dENvbnRyb2xTaW5nbGVMaW5lLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OlJlbmRlclRleHRDb250cm9sU2luZ2xlTGluZTo6dXBkYXRlRnJvbUVsZW1lbnQpOgor
ICAgICAgICAgIENhbGxzIElucHV0RWxlbWVudDo6dmlzaWJsZVZhbHVlKCkgaW5zdGVhZCBvZiB2
YWx1ZSgpLgorICAgICAgICAqIHdtbC9XTUxJbnB1dEVsZW1lbnQuaDoKKyAgICAgICAgKFdlYkNv
cmU6OldNTElucHV0RWxlbWVudDo6dmlzaWJsZVZhbHVlKTogQWRkZWQuIEl0IGp1c3QgY2FsbHMg
dmFsdWUoKS4KKwogMjAxMS0wMS0wNSAgSmFtZXMgU2ltb25zZW4gIDxzaW1vbmphbUBjaHJvbWl1
bS5vcmc+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgQWRhbSBCYXJ0aC4KZGlmZiAtLWdpdCBhL1dl
YkNvcmUvR05VbWFrZWZpbGUuYW0gYi9XZWJDb3JlL0dOVW1ha2VmaWxlLmFtCmluZGV4IGYwMTA4
OGViMmIwZWY1NTkyMTNmZTNiZGM3MGEyM2M1YzI0MDg2MmQuLmFjYjQ0Yzc4ZTgyYzUzYTE1OGU2
NmZjZjQ4Njc3Y2Q1OWY1NzUyYzMgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvR05VbWFrZWZpbGUuYW0K
KysrIGIvV2ViQ29yZS9HTlVtYWtlZmlsZS5hbQpAQCAtMjU5NCw2ICsyNTk0LDggQEAgd2ViY29y
ZV9zb3VyY2VzICs9IFwKIAlXZWJDb3JlL3BsYXRmb3JtL3RleHQvSHlwaGVuYXRpb24uaCBcCiAJ
V2ViQ29yZS9wbGF0Zm9ybS90ZXh0L0xpbmVFbmRpbmcuY3BwIFwKIAlXZWJDb3JlL3BsYXRmb3Jt
L3RleHQvTGluZUVuZGluZy5oIFwKKwlXZWJDb3JlL3BsYXRmb3JtL3RleHQvTG9jYWxpemVkTnVt
YmVyLmggXAorCVdlYkNvcmUvcGxhdGZvcm0vdGV4dC9Mb2NhbGl6ZWROdW1iZXJOb25lLmNwcCBc
CiAJV2ViQ29yZS9wbGF0Zm9ybS90ZXh0L1BhcnNlclV0aWxpdGllcy5oIFwKIAlXZWJDb3JlL3Bs
YXRmb3JtL3RleHQvUGxhdGZvcm1TdHJpbmcuaCBcCiAJV2ViQ29yZS9wbGF0Zm9ybS90ZXh0L1Jl
Z3VsYXJFeHByZXNzaW9uLmNwcCBcCmRpZmYgLS1naXQgYS9XZWJDb3JlL1dlYkNvcmUuZ3lwaSBi
L1dlYkNvcmUvV2ViQ29yZS5neXBpCmluZGV4IDZhNTE5ZmI1MTVjOWY3YzhlMTk5YmM4ODExMTBm
NTBjYWEyNDBlNzkuLjg3MDA5MDZiMzNiNTQ1NDc0Nzg2MDUwYzM0ZTQxMjA3MjBiMTY2YzQgMTAw
NjQ0Ci0tLSBhL1dlYkNvcmUvV2ViQ29yZS5neXBpCisrKyBiL1dlYkNvcmUvV2ViQ29yZS5neXBp
CkBAIC0zMzEzLDYgKzMzMTMsOCBAQAogICAgICAgICAgICAgJ3BsYXRmb3JtL3RleHQvSHlwaGVu
YXRpb24uaCcsCiAgICAgICAgICAgICAncGxhdGZvcm0vdGV4dC9MaW5lRW5kaW5nLmNwcCcsCiAg
ICAgICAgICAgICAncGxhdGZvcm0vdGV4dC9MaW5lRW5kaW5nLmgnLAorICAgICAgICAgICAgJ3Bs
YXRmb3JtL3RleHQvTG9jYWxpemVkTnVtYmVyLmgnLAorICAgICAgICAgICAgJ3BsYXRmb3JtL3Rl
eHQvTG9jYWxpemVkTnVtYmVyTm9uZS5jcHAnLAogICAgICAgICAgICAgJ3BsYXRmb3JtL3RleHQv
UGFyc2VyVXRpbGl0aWVzLmgnLAogICAgICAgICAgICAgJ3BsYXRmb3JtL3RleHQvUGxhdGZvcm1T
dHJpbmcuaCcsCiAgICAgICAgICAgICAncGxhdGZvcm0vdGV4dC9SZWd1bGFyRXhwcmVzc2lvbi5j
cHAnLApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9XZWJDb3JlLnBybyBiL1dlYkNvcmUvV2ViQ29yZS5w
cm8KaW5kZXggNjZlOTRlNDYwMjIyY2U2MmUwODNiZmZkMjRlNTdiOTAzZTRjYjE0NS4uZmE3MDc3
YjY0Y2I5MjNiNGZlNGZlZjgxOTU2NGRhNzQwMWMzOGZmMSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9X
ZWJDb3JlLnBybworKysgYi9XZWJDb3JlL1dlYkNvcmUucHJvCkBAIC0xMTY5LDYgKzExNjksNyBA
QCBTT1VSQ0VTICs9IFwKICAgICBwbGF0Zm9ybS90ZXh0L0Jhc2U2NC5jcHAgXAogICAgIHBsYXRm
b3JtL3RleHQvQmlkaUNvbnRleHQuY3BwIFwKICAgICBwbGF0Zm9ybS90ZXh0L0h5cGhlbmF0aW9u
LmNwcCBcCisgICAgcGxhdGZvcm0vdGV4dC9Mb2NhbGl6ZWROdW1iZXJOb25lLmNwcCBcCiAgICAg
cGxhdGZvcm0vQ29udGVudFR5cGUuY3BwIFwKICAgICBwbGF0Zm9ybS9Dcm9zc1RocmVhZENvcGll
ci5jcHAgXAogICAgIHBsYXRmb3JtL0RlcHJlY2F0ZWRQdHJMaXN0SW1wbC5jcHAgXApkaWZmIC0t
Z2l0IGEvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvaiBiL1dlYkNvcmUvV2Vi
Q29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2oKaW5kZXggZjc1NjY4M2Y5MzBmYThjNDQ5ZTg4ZmQy
N2QxMjc2YTY0Y2VlNzMzZS4uZGUzZTkzZGQ2YjhhM2ZmOWIwYTU4MTUyN2Q3YTZlMjQ1ZjEzNWM0
YyAxMDA3NTUKLS0tIGEvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvagorKysg
Yi9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qCkBAIC0zMDE2OSw2ICszMDE2
OSwxNCBAQAogCQkJCQk+CiAJCQkJPC9GaWxlPgogCQkJCTxGaWxlCisJCQkJCVJlbGF0aXZlUGF0
aD0iLi5ccGxhdGZvcm1cdGV4dFxMb2NhbGl6ZWROdW1iZXIuaCIKKwkJCQkJPgorCQkJCTwvRmls
ZT4KKwkJCQk8RmlsZQorCQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXHBsYXRmb3JtXHRleHRcTG9jYWxp
emVkTnVtYmVyTm9uZS5jcHAiCisJCQkJCT4KKwkJCQk8L0ZpbGU+CisJCQkJPEZpbGUKIAkJCQkJ
UmVsYXRpdmVQYXRoPSIuLlxwbGF0Zm9ybVx0ZXh0XFBhcnNlclV0aWxpdGllcy5oIgogCQkJCQk+
CiAJCQkJPC9GaWxlPgpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9q
ZWN0LnBieHByb2ogYi9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpp
bmRleCA0MWMyNTMyZjA0ZjBhOGJlMmRmMjY2NGUxZmYzYTk3OGZiZmNiODM5Li5hZTg4ZWRjMjIw
ZGM4MTEzNjI2MzFjYjdlMDAzMjVkMmMyZTVmNzIwIDEwMDY0NAotLS0gYS9XZWJDb3JlL1dlYkNv
cmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9XZWJDb3JlL1dlYkNvcmUueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvagpAQCAtNTU3OSw2ICs1NTc5LDggQEAKIAkJRjNENDYxNDkxMTYx
RDUzMjAwQ0EwRDA5IC8qIEpTV29ya2VyQ29udGV4dEVycm9ySGFuZGxlci5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjNENDYxNDcxMTYxRDUzMjAwQ0Ew
RDA5IC8qIEpTV29ya2VyQ29udGV4dEVycm9ySGFuZGxlci5oICovOyB9OwogCQlGNEVBRjRBRTEw
Qzc0MkIxMDA5MTAwRDMgLyogT3BlblR5cGVTYW5pdGl6ZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjRFQUY0QUMxMEM3NDJCMTAwOTEwMEQzIC8q
IE9wZW5UeXBlU2FuaXRpemVyLmNwcCAqLzsgfTsKIAkJRjRFQUY0QUYxMEM3NDJCMTAwOTEwMEQz
IC8qIE9wZW5UeXBlU2FuaXRpemVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSBGNEVBRjRBRDEwQzc0MkIxMDA5MTAwRDMgLyogT3BlblR5cGVTYW5pdGl6
ZXIuaCAqLzsgfTsKKwkJRjUxNDJDNjkxMjNGMTJCMDAwRjVCRDRDIC8qIExvY2FsaXplZE51bWJl
ci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjUxNDJD
NjgxMjNGMTJCMDAwRjVCRDRDIC8qIExvY2FsaXplZE51bWJlci5oICovOyB9OworCQlGNTE0MkM2
QjEyM0YxMkM1MDBGNUJENEMgLyogTG9jYWxpemVkTnVtYmVyTm9uZS5jcHAgaW4gU291cmNlcyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNTE0MkM2QTEyM0YxMkM1MDBGNUJE
NEMgLyogTG9jYWxpemVkTnVtYmVyTm9uZS5jcHAgKi87IH07CiAJCUY1NUIzREFEMTI1MUYxMkQw
MDNFRjI2OSAvKiBCYXNlVGV4dElucHV0VHlwZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNTVCM0Q3OTEyNTFGMTJEMDAzRUYyNjkgLyogQmFzZVRl
eHRJbnB1dFR5cGUuY3BwICovOyB9OwogCQlGNTVCM0RBRTEyNTFGMTJEMDAzRUYyNjkgLyogQmFz
ZVRleHRJbnB1dFR5cGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IEY1NUIzRDdBMTI1MUYxMkQwMDNFRjI2OSAvKiBCYXNlVGV4dElucHV0VHlwZS5oICov
OyB9OwogCQlGNTVCM0RBRjEyNTFGMTJEMDAzRUYyNjkgLyogQnV0dG9uSW5wdXRUeXBlLmNwcCBp
biBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY1NUIzRDdCMTI1
MUYxMkQwMDNFRjI2OSAvKiBCdXR0b25JbnB1dFR5cGUuY3BwICovOyB9OwpAQCAtMTE4OTgsNiAr
MTE5MDAsOCBAQAogCQlGM0Q0NjE0NzExNjFENTMyMDBDQTBEMDkgLyogSlNXb3JrZXJDb250ZXh0
RXJyb3JIYW5kbGVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTV29ya2Vy
Q29udGV4dEVycm9ySGFuZGxlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlGNEVB
RjRBQzEwQzc0MkIxMDA5MTAwRDMgLyogT3BlblR5cGVTYW5pdGl6ZXIuY3BwICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0gT3BlblR5cGVTYW5pdGl6ZXIuY3BwOyBwYXRoID0g
b3BlbnR5cGUvT3BlblR5cGVTYW5pdGl6ZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQlGNEVBRjRBRDEwQzc0MkIxMDA5MTAwRDMgLyogT3BlblR5cGVTYW5pdGl6ZXIuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gT3BlblR5cGVTYW5pdGl6ZXIuaDsgcGF0aCA9
IG9wZW50eXBlL09wZW5UeXBlU2FuaXRpemVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CisJCUY1MTQyQzY4MTIzRjEyQjAwMEY1QkQ0QyAvKiBMb2NhbGl6ZWROdW1iZXIuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTG9jYWxpemVkTnVtYmVyLmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CisJCUY1MTQyQzZBMTIzRjEyQzUwMEY1QkQ0QyAvKiBMb2NhbGl6ZWRO
dW1iZXJOb25lLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IExvY2Fs
aXplZE51bWJlck5vbmUuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlGNTIzRDIz
QjAyREU0Mzk2MDE4NjM1Q0EgLyogSFRNTERvY3VtZW50LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgaW5kZW50V2lkdGggPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEhUTUxEb2N1bWVudC5jcHA7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IHRhYldpZHRoID0gODsgdXNlc1RhYnMgPSAwOyB9OwogCQlG
NTIzRDIzQzAyREU0Mzk2MDE4NjM1Q0EgLyogSFRNTERvY3VtZW50LmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGluZGVudFdpZHRoID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEhUTUxEb2N1bWVudC5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB0YWJXaWR0aCA9IDg7IHVzZXNUYWJzID0gMDsgfTsKIAkJRjUy
M0QyM0UwMkRFNDM5NjAxODYzNUNBIC8qIEhUTUxFbGVtZW50LmNwcCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgaW5kZW50V2lkdGggPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEhUTUxFbGVtZW50LmNwcDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgdGFiV2lkdGggPSA4OyB1c2VzVGFicyA9IDA7IH07CkBA
IC0xNzM0Niw2ICsxNzM1MCw4IEBACiAJCQkJMzc1Q0QyMzExMTlENDNDODAwQTJBODU5IC8qIEh5
cGhlbmF0aW9uLmggKi8sCiAJCQkJODlCNUVBOUYxMUU4MDAzRDAwRjIzNjdFIC8qIExpbmVFbmRp
bmcuY3BwICovLAogCQkJCTg5QjVFQUEwMTFFODAwM0QwMEYyMzY3RSAvKiBMaW5lRW5kaW5nLmgg
Ki8sCisJCQkJRjUxNDJDNjgxMjNGMTJCMDAwRjVCRDRDIC8qIExvY2FsaXplZE51bWJlci5oICov
LAorCQkJCUY1MTQyQzZBMTIzRjEyQzUwMEY1QkQ0QyAvKiBMb2NhbGl6ZWROdW1iZXJOb25lLmNw
cCAqLywKIAkJCQlCQzc2QUMxMTBERDdBRDVDMDA0MTVGMzQgLyogUGFyc2VyVXRpbGl0aWVzLmgg
Ki8sCiAJCQkJQjJDM0Q5RkIwRDAwNkMxRDAwRUY2RjI2IC8qIFBsYXRmb3JtU3RyaW5nLmggKi8s
CiAJCQkJQjJDM0Q5RkMwRDAwNkMxRDAwRUY2RjI2IC8qIFJlZ3VsYXJFeHByZXNzaW9uLmNwcCAq
LywKQEAgLTIxMzAyLDYgKzIxMzA4LDcgQEAKIAkJCQkwNkU4MUVENzBBQjVENUU5MDBDODc4Mzcg
LyogTG9jYWxDdXJyZW50R3JhcGhpY3NDb250ZXh0LmggaW4gSGVhZGVycyAqLywKIAkJCQk4OTg3
ODU2ODEyMkNBMDY0MDAzQUFCREEgLyogTG9jYWxGaWxlU3lzdGVtLmggaW4gSGVhZGVycyAqLywK
IAkJCQlCQzVDRkNBOTExRjc5MzMyMDA5OUVEMDkgLyogTG9jYWxpemF0aW9uU3RyYXRlZ3kuaCBp
biBIZWFkZXJzICovLAorCQkJCUY1MTQyQzY5MTIzRjEyQjAwMEY1QkQ0QyAvKiBMb2NhbGl6ZWRO
dW1iZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTkzNTIwN0JFMDlCRDQxMEEwMEYyMDM4RCAvKiBM
b2NhbGl6ZWRTdHJpbmdzLmggaW4gSGVhZGVycyAqLywKIAkJCQk1MTFGMjMxODBEQzE2MERBMDA0
RjAwMzIgLyogTG9jYWxTdG9yYWdlVGFzay5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNTExRjIzMUEw
REMxNjBEQTAwNEYwMDMyIC8qIExvY2FsU3RvcmFnZVRocmVhZC5oIGluIEhlYWRlcnMgKi8sCkBA
IC0yNDEzMSw2ICsyNDEzOCw3IEBACiAJCQkJNjU2RDM3MzMwQURCQTVERTAwQTQ1NTREIC8qIExv
YWRlck5TVVJMRXh0cmFzLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJMDZFODFFRUMwQUI1REE5NzAw
Qzg3ODM3IC8qIExvY2FsQ3VycmVudEdyYXBoaWNzQ29udGV4dC5tbSBpbiBTb3VyY2VzICovLAog
CQkJCTg5ODc4NTY3MTIyQ0EwNjQwMDNBQUJEQSAvKiBMb2NhbEZpbGVTeXN0ZW0uY3BwIGluIFNv
dXJjZXMgKi8sCisJCQkJRjUxNDJDNkIxMjNGMTJDNTAwRjVCRDRDIC8qIExvY2FsaXplZE51bWJl
ck5vbmUuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQzA0NkUxQUMxMjA4QTlGRTAwQkEyQ0Y3IC8q
IExvY2FsaXplZFN0cmluZ3MuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNTExRjIzMTcwREMxNjBE
QTAwNEYwMDMyIC8qIExvY2FsU3RvcmFnZVRhc2suY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNTEx
RjIzMTkwREMxNjBEQTAwNEYwMDMyIC8qIExvY2FsU3RvcmFnZVRocmVhZC5jcHAgaW4gU291cmNl
cyAqLywKZGlmZiAtLWdpdCBhL1dlYkNvcmUvZG9tL0lucHV0RWxlbWVudC5oIGIvV2ViQ29yZS9k
b20vSW5wdXRFbGVtZW50LmgKaW5kZXggMmQ1NjA2ZDIxNjRkOTZjOWFkZGJmZDU0ODIyZTNiZGQx
YWI2YThmMS4uMDJhYzVjZjIzNzMyYWJlMzUzMjhhNjI1MzYzZDZmNGMwZjgzMTVkOCAxMDA2NDQK
LS0tIGEvV2ViQ29yZS9kb20vSW5wdXRFbGVtZW50LmgKKysrIGIvV2ViQ29yZS9kb20vSW5wdXRF
bGVtZW50LmgKQEAgLTU5LDYgKzU5LDggQEAgcHVibGljOgogICAgIHZpcnR1YWwgU3RyaW5nIHZh
bHVlKCkgY29uc3QgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBzZXRWYWx1ZShjb25zdCBTdHJpbmcm
LCBib29sIHNlbmRDaGFuZ2VFdmVudCA9IGZhbHNlKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIHNl
dFZhbHVlRm9yVXNlcihjb25zdCBTdHJpbmcmKSA9IDA7CisgICAgLy8gVGhlIHZhbHVlIHdoaWNo
IGlzIGRyYXduIGJ5IGEgcmVuZGVyZXIuCisgICAgdmlydHVhbCBTdHJpbmcgdmlzaWJsZVZhbHVl
KCkgY29uc3QgPSAwOwogCiAgICAgLy8gUmV0dXJucyB0cnVlIGlmIHRoZSBzcGVjaWZpZWQgc3Ry
aW5nIGNhbiBiZSBzZXQgYXMgdGhlIHZhbHVlIG9mIElucHV0RWxlbWVudC4KICAgICB2aXJ0dWFs
IGJvb2wgaXNBY2NlcHRhYmxlVmFsdWUoY29uc3QgU3RyaW5nJikgY29uc3QgPSAwOwpkaWZmIC0t
Z2l0IGEvV2ViQ29yZS9odG1sL0hUTUxJbnB1dEVsZW1lbnQuY3BwIGIvV2ViQ29yZS9odG1sL0hU
TUxJbnB1dEVsZW1lbnQuY3BwCmluZGV4IDAwNzYzOWIyMWFkZGUwMzgwNTBiNzI1MDJiMjA0YTEw
MTdiMWQ0NGUuLjFmOTY0ODczNGY2M2M2MjE1NjJkOGE1NTU3MDljYjM0MTBiOTUxZDYgMTAwNjQ0
Ci0tLSBhL1dlYkNvcmUvaHRtbC9IVE1MSW5wdXRFbGVtZW50LmNwcAorKysgYi9XZWJDb3JlL2h0
bWwvSFRNTElucHV0RWxlbWVudC5jcHAKQEAgLTExMDcsNiArMTEwNywxMSBAQCBGaWxlTGlzdCog
SFRNTElucHV0RWxlbWVudDo6ZmlsZXMoKQogICAgIHJldHVybiBtX2lucHV0VHlwZS0+ZmlsZXMo
KTsKIH0KIAorU3RyaW5nIEhUTUxJbnB1dEVsZW1lbnQ6OnZpc2libGVWYWx1ZSgpIGNvbnN0Cit7
CisgICAgcmV0dXJuIG1faW5wdXRUeXBlLT52aXNpYmxlVmFsdWUoKTsKK30KKwogYm9vbCBIVE1M
SW5wdXRFbGVtZW50Ojppc0FjY2VwdGFibGVWYWx1ZShjb25zdCBTdHJpbmcmIHByb3Bvc2VkVmFs
dWUpIGNvbnN0CiB7CiAgICAgcmV0dXJuIG1faW5wdXRUeXBlLT5pc0FjY2VwdGFibGVWYWx1ZShw
cm9wb3NlZFZhbHVlKTsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvaHRtbC9IVE1MSW5wdXRFbGVtZW50
LmggYi9XZWJDb3JlL2h0bWwvSFRNTElucHV0RWxlbWVudC5oCmluZGV4IGViMzBkZTA4OWNjMDI2
NWY3ZmYwNTcxYWVhODdjZDM2OGE5ZjM5YTIuLjBiNDU2Y2M1OTBiMTg0OTM0ODQzYmU1ODBjNjE1
Mjg4NGY0MzVkNmYgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvaHRtbC9IVE1MSW5wdXRFbGVtZW50LmgK
KysrIGIvV2ViQ29yZS9odG1sL0hUTUxJbnB1dEVsZW1lbnQuaApAQCAtMjU3LDYgKzI1Nyw3IEBA
IHByaXZhdGU6CiAKICAgICB2aXJ0dWFsIHZvaWQgY2FjaGVTZWxlY3Rpb24oaW50IHN0YXJ0LCBp
bnQgZW5kKTsKIAorICAgIHZpcnR1YWwgU3RyaW5nIHZpc2libGVWYWx1ZSgpIGNvbnN0OwogICAg
IHZpcnR1YWwgYm9vbCBpc0FjY2VwdGFibGVWYWx1ZShjb25zdCBTdHJpbmcmKSBjb25zdDsKICAg
ICB2aXJ0dWFsIFN0cmluZyBzYW5pdGl6ZVZhbHVlKGNvbnN0IFN0cmluZyYpIGNvbnN0OwogICAg
IHZpcnR1YWwgYm9vbCBoYXNVbmFjY2VwdGFibGVWYWx1ZSgpIGNvbnN0OwpkaWZmIC0tZ2l0IGEv
V2ViQ29yZS9odG1sL0lucHV0VHlwZS5jcHAgYi9XZWJDb3JlL2h0bWwvSW5wdXRUeXBlLmNwcApp
bmRleCBiZTg2Mzk5YzA0MDc0ZjY5Nzc2YzlhNzEyYWEyMjU2ZmFmYTBlMmQ2Li5iNjM1NzAzNTE2
YWEwODBjYTVjN2EyOTdiOWMxNjM0MjAyODYyYmY5IDEwMDY0NAotLS0gYS9XZWJDb3JlL2h0bWwv
SW5wdXRUeXBlLmNwcAorKysgYi9XZWJDb3JlL2h0bWwvSW5wdXRUeXBlLmNwcApAQCAtNDkzLDYg
KzQ5MywxMSBAQCB2b2lkIElucHV0VHlwZTo6ZGlkRGlzcGF0Y2hDbGljayhFdmVudCosIGNvbnN0
IENsaWNrSGFuZGxpbmdTdGF0ZSYpCiB7CiB9CiAKK1N0cmluZyBJbnB1dFR5cGU6OnZpc2libGVW
YWx1ZSgpIGNvbnN0Cit7CisgICAgcmV0dXJuIGVsZW1lbnQoKS0+dmFsdWUoKTsKK30KKwogYm9v
bCBJbnB1dFR5cGU6OmlzQWNjZXB0YWJsZVZhbHVlKGNvbnN0IFN0cmluZyYpCiB7CiAgICAgcmV0
dXJuIHRydWU7CmRpZmYgLS1naXQgYS9XZWJDb3JlL2h0bWwvSW5wdXRUeXBlLmggYi9XZWJDb3Jl
L2h0bWwvSW5wdXRUeXBlLmgKaW5kZXggNGQyNWE5NzRjMzAwYzI4NzhmYmE2Mjg4MjRkMDcwNzRm
ZmZjOTI5YS4uMjc1ZTI3YmNmZTFkNjJhOTQ3ODc4MDg5YzM2NmU3ZDE0YzNlN2U5NSAxMDA2NDQK
LS0tIGEvV2ViQ29yZS9odG1sL0lucHV0VHlwZS5oCisrKyBiL1dlYkNvcmUvaHRtbC9JbnB1dFR5
cGUuaApAQCAtMTQ2LDYgKzE0Niw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIFN0cmluZyB0eXBl
TWlzbWF0Y2hUZXh0KCkgY29uc3Q7CiAgICAgdmlydHVhbCBTdHJpbmcgdmFsdWVNaXNzaW5nVGV4
dCgpIGNvbnN0OwogICAgIHZpcnR1YWwgYm9vbCBjYW5TZXRTdHJpbmdWYWx1ZSgpIGNvbnN0Owor
ICAgIHZpcnR1YWwgU3RyaW5nIHZpc2libGVWYWx1ZSgpIGNvbnN0OwogICAgIHZpcnR1YWwgYm9v
bCBpc0FjY2VwdGFibGVWYWx1ZShjb25zdCBTdHJpbmcmKTsKICAgICB2aXJ0dWFsIFN0cmluZyBz
YW5pdGl6ZVZhbHVlKGNvbnN0IFN0cmluZyYpOwogICAgIHZpcnR1YWwgYm9vbCBoYXNVbmFjY2Vw
dGFibGVWYWx1ZSgpOwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9odG1sL051bWJlcklucHV0VHlwZS5j
cHAgYi9XZWJDb3JlL2h0bWwvTnVtYmVySW5wdXRUeXBlLmNwcAppbmRleCAzOTE2NTI3M2ZiNmU3
NDM5YTZmMmU5ZjhmZjFjMjJiOTgzMTZlNTc4Li5mMDk2Nzc2NDNmNTliZjlkYTk4YzliYzUzNDg4
OTc3YTI4NTM4ZmNhIDEwMDY0NAotLS0gYS9XZWJDb3JlL2h0bWwvTnVtYmVySW5wdXRUeXBlLmNw
cAorKysgYi9XZWJDb3JlL2h0bWwvTnVtYmVySW5wdXRUeXBlLmNwcApAQCAtMzgsNiArMzgsNyBA
QAogI2luY2x1ZGUgIkhUTUxOYW1lcy5oIgogI2luY2x1ZGUgIkhUTUxQYXJzZXJJZGlvbXMuaCIK
ICNpbmNsdWRlICJLZXlib2FyZEV2ZW50LmgiCisjaW5jbHVkZSAiTG9jYWxpemVkTnVtYmVyLmgi
CiAjaW5jbHVkZSAiUmVuZGVyVGV4dENvbnRyb2wuaCIKICNpbmNsdWRlIDxsaW1pdHM+CiAjaW5j
bHVkZSA8d3RmL0FTQ0lJQ1R5cGUuaD4KQEAgLTU1LDExICs1NiwxOCBAQCBzdGF0aWMgY29uc3Qg
ZG91YmxlIG51bWJlckRlZmF1bHRNYXhpbXVtID0gRkxUX01BWDsKIHN0YXRpYyBjb25zdCBkb3Vi
bGUgbnVtYmVyRGVmYXVsdFN0ZXAgPSAxLjA7CiBzdGF0aWMgY29uc3QgZG91YmxlIG51bWJlclN0
ZXBTY2FsZUZhY3RvciA9IDEuMDsKIAotc3RhdGljIGJvb2wgaXNOdW1iZXJDaGFyYWN0ZXIoVUNo
YXIgY2gpCisvLyBSZXR1cm5zIHRydWUgaWYgdGhlIHNwZWNpZmllZCBjaGFyYWN0ZXIgY2FuIGJl
IGEgcGFydCBvZiAndmFsaWQgZmxvYXRpbmcKKy8vIHBvaW50IG51bWJlcicgb2YgSFRNTDUuCitz
dGF0aWMgYm9vbCBpc0hUTUxOdW1iZXJDaGFyYWN0ZXIoVUNoYXIgY2gpCiB7CiAgICAgcmV0dXJu
IGNoID09ICcrJyB8fCBjaCA9PSAnLScgfHwgY2ggPT0gJy4nIHx8IGNoID09ICdlJyB8fCBjaCA9
PSAnRScgfHwgaXNBU0NJSURpZ2l0KGNoKTsKIH0KIAorc3RhdGljIGJvb2wgaXNOdW1iZXJDaGFy
YWN0ZXIoVUNoYXIgY2gpCit7CisgICAgcmV0dXJuIGlzTG9jYWxpemVkTnVtYmVyQ2hhcmFjdGVy
KGNoKSB8fCBpc0hUTUxOdW1iZXJDaGFyYWN0ZXIoY2gpOworfQorCiBQYXNzT3duUHRyPElucHV0
VHlwZT4gTnVtYmVySW5wdXRUeXBlOjpjcmVhdGUoSFRNTElucHV0RWxlbWVudCogZWxlbWVudCkK
IHsKICAgICByZXR1cm4gYWRvcHRQdHIobmV3IE51bWJlcklucHV0VHlwZShlbGVtZW50KSk7CkBA
IC0yNDgsMTMgKzI1NiwyOSBAQCB2b2lkIE51bWJlcklucHV0VHlwZTo6aGFuZGxlQmx1ckV2ZW50
KCkKICAgICAgICAgZWxlbWVudCgpLT5yZW5kZXJlcigpLT51cGRhdGVGcm9tRWxlbWVudCgpOwog
fQogCitTdHJpbmcgTnVtYmVySW5wdXRUeXBlOjp2aXNpYmxlVmFsdWUoKSBjb25zdAoreworICAg
IFN0cmluZyBjdXJyZW50VmFsdWUgPSBlbGVtZW50KCktPnZhbHVlKCk7CisgICAgaWYgKGN1cnJl
bnRWYWx1ZS5pc0VtcHR5KCkpCisgICAgICAgIHJldHVybiBjdXJyZW50VmFsdWU7CisgICAgZG91
YmxlIGRvdWJsZVZhbHVlID0gbnVtZXJpY19saW1pdHM8ZG91YmxlPjo6cXVpZXRfTmFOKCk7Cisg
ICAgcGFyc2VUb0RvdWJsZUZvck51bWJlclR5cGUoY3VycmVudFZhbHVlLCAmZG91YmxlVmFsdWUp
OworICAgIFN0cmluZyBsb2NhbGl6ZWQgPSBmb3JtYXRMb2NhbGl6ZWROdW1iZXIoZG91YmxlVmFs
dWUpOworICAgIHJldHVybiBsb2NhbGl6ZWQuaXNFbXB0eSgpID8gY3VycmVudFZhbHVlIDogbG9j
YWxpemVkOworfQorCiBib29sIE51bWJlcklucHV0VHlwZTo6aXNBY2NlcHRhYmxlVmFsdWUoY29u
c3QgU3RyaW5nJiBwcm9wb3NlZFZhbHVlKQogewotICAgIHJldHVybiBwcm9wb3NlZFZhbHVlLmlz
RW1wdHkoKSB8fCBwYXJzZVRvRG91YmxlRm9yTnVtYmVyVHlwZShwcm9wb3NlZFZhbHVlLCAwKTsK
KyAgICByZXR1cm4gcHJvcG9zZWRWYWx1ZS5pc0VtcHR5KCkgfHwgaXNmaW5pdGUocGFyc2VMb2Nh
bGl6ZWROdW1iZXIocHJvcG9zZWRWYWx1ZSkpIHx8IHBhcnNlVG9Eb3VibGVGb3JOdW1iZXJUeXBl
KHByb3Bvc2VkVmFsdWUsIDApOwogfQogCiBTdHJpbmcgTnVtYmVySW5wdXRUeXBlOjpzYW5pdGl6
ZVZhbHVlKGNvbnN0IFN0cmluZyYgcHJvcG9zZWRWYWx1ZSkKIHsKKyAgICAvLyBUcnkgdG8gcGFy
c2UgdGhlIHZhbHVlIGFzIGEgbG9jYWxpemVkIG51bWJlciwgdGhlbiB0cnkgdG8gcGFyc2UgaXQg
YXMKKyAgICAvLyB0aGUgc3RhbmRhcmQgZm9ybWF0LgorICAgIGRvdWJsZSBwYXJzZWRWYWx1ZSA9
IHBhcnNlTG9jYWxpemVkTnVtYmVyKHByb3Bvc2VkVmFsdWUpOworICAgIGlmIChpc2Zpbml0ZShw
YXJzZWRWYWx1ZSkpCisgICAgICAgIHJldHVybiBzZXJpYWxpemVGb3JOdW1iZXJUeXBlKHBhcnNl
ZFZhbHVlKTsKICAgICByZXR1cm4gcGFyc2VUb0RvdWJsZUZvck51bWJlclR5cGUocHJvcG9zZWRW
YWx1ZSwgMCkgPyBwcm9wb3NlZFZhbHVlIDogU3RyaW5nKCk7CiB9CiAKZGlmZiAtLWdpdCBhL1dl
YkNvcmUvaHRtbC9OdW1iZXJJbnB1dFR5cGUuaCBiL1dlYkNvcmUvaHRtbC9OdW1iZXJJbnB1dFR5
cGUuaAppbmRleCAwYjIzZDM0MWVmNTE5YTJlYTJhNjBiN2UzNmY5OTY0YTkwOTJjYTUwLi45ZDk3
MTM0NGY4M2FkNTAwOGFjNjllYzkyODkzZDlmZTY2NWIzNTk0IDEwMDY0NAotLS0gYS9XZWJDb3Jl
L2h0bWwvTnVtYmVySW5wdXRUeXBlLmgKKysrIGIvV2ViQ29yZS9odG1sL051bWJlcklucHV0VHlw
ZS5oCkBAIC02NCw2ICs2NCw3IEBAIHByaXZhdGU6CiAgICAgdmlydHVhbCBTdHJpbmcgc2VyaWFs
aXplKGRvdWJsZSkgY29uc3Q7CiAgICAgdmlydHVhbCBkb3VibGUgYWNjZXB0YWJsZUVycm9yKGRv
dWJsZSkgY29uc3Q7CiAgICAgdmlydHVhbCB2b2lkIGhhbmRsZUJsdXJFdmVudCgpOworICAgIHZp
cnR1YWwgU3RyaW5nIHZpc2libGVWYWx1ZSgpIGNvbnN0OwogICAgIHZpcnR1YWwgYm9vbCBpc0Fj
Y2VwdGFibGVWYWx1ZShjb25zdCBTdHJpbmcmKTsKICAgICB2aXJ0dWFsIFN0cmluZyBzYW5pdGl6
ZVZhbHVlKGNvbnN0IFN0cmluZyYpOwogICAgIHZpcnR1YWwgYm9vbCBoYXNVbmFjY2VwdGFibGVW
YWx1ZSgpOwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wbGF0Zm9ybS90ZXh0L0xvY2FsaXplZE51bWJl
ci5oIGIvV2ViQ29yZS9wbGF0Zm9ybS90ZXh0L0xvY2FsaXplZE51bWJlci5oCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LjJjNGQxNTUxMDVkY2E0MTMxYTAzNzRkZjAyOGY0MWVmZDkyNzU4NTgKLS0tIC9kZXYvbnVsbAor
KysgYi9XZWJDb3JlL3BsYXRmb3JtL3RleHQvTG9jYWxpemVkTnVtYmVyLmgKQEAgLTAsMCArMSw1
OSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMCBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQorICogbWV0OgorICoK
KyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmlu
YXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCisgKiBjb3B5cmlnaHQgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCisgKiBp
biB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGgg
dGhlCisgKiBkaXN0cmlidXRpb24uCisgKiAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2ds
ZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCisgKiBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQg
dG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQorICogdGhpcyBzb2Z0
d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKyAqCisgKiBU
SElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09O
VFJJQlVUT1JTCisgKiAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJ
RVMsIElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFO
VElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCisgKiBBIFBBUlRJQ1VMQVIg
UFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAor
ICogT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJF
Q1QsIElOQ0lERU5UQUwsCisgKiBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwg
REFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBP
RiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKKyAqIERBVEEsIE9S
IFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9O
IEFOWQorICogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNU
IExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lT
RSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJF
LCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICov
CisKKyNpZm5kZWYgTG9jYWxpemVkTnVtYmVyX2gKKyNkZWZpbmUgTG9jYWxpemVkTnVtYmVyX2gK
KworI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7
CisKKy8vIFBhcnNlcyBhIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiBhIGZsb2F0aW5nIHBvaW50
IG51bWJlciBsb2NhbGl6ZWQKKy8vIGZvciB0aGUgYnJvd3NlcidzIGN1cnJlbnQgbG9jYWxlLiBJ
ZiB0aGUgaW5wdXQgc3RyaW5nIGlzIG5vdCB2YWxpZAorLy8gb3IgYW4gaW1wbGVtZW50YXRpb24g
ZG9lc24ndCBzdXBwb3J0IGxvY2FsaXplZCBudW1iZXJzLCB0aGlzCisvLyBmdW5jdGlvbiByZXR1
cm5zIE5hTi4gVGhpcyBmdW5jdGlvbiBkb2Vzbid0IG5lZWQgdG8gc3VwcG9ydAorLy8gc2NpZW50
aWZpYyBub3RhdGlvbiwgTmFOLCArSW5maW5pdHkgYW5kIC1JbmZpbml0eSwgYW5kIGRvZXNuJ3Qg
bmVlZAorLy8gdG8gc3VwcG9ydCB0aGUgc3RhbmRhcmQgcmVwcmVzZW50YXRpb25zIG9mIEVDTUFT
Y3JpcHQgYW5kIEhUTUw1LgorZG91YmxlIHBhcnNlTG9jYWxpemVkTnVtYmVyKGNvbnN0IFN0cmlu
ZyYpOworCisvLyBTZXJpYWxpemVzIHRoZSBzcGVjaWZpZWQgZmxvYXRpbmcgcG9pbnQgbnVtYmVy
IGZvciB0aGUgYnJvd3NlcidzCisvLyBjdXJyZW50IGxvY2FsZS4gIElmIGFuIGltcGxlbWVudGF0
aW9uIGRvZXNuJ3Qgc3VwcG9ydCBsb2NhbGl6ZWQKKy8vIG51bWJlcnMgb3IgdGhlIGlucHV0IHZh
bHVlIGlzIE5hTiBvciBJbmZpbml0aXksIHRoZSBmdW5jdGlvbiBzaG91bGQKKy8vIHJldHVybiBh
biBlbXB0eSBzdHJpbmcuCitTdHJpbmcgZm9ybWF0TG9jYWxpemVkTnVtYmVyKGRvdWJsZSk7CisK
Ky8vIFJldHVybnMgdHJ1ZSBpZiB0aGUgaW5wdXQgY2hhcmFjdGVyIGNhbiBiZSB1c2VkIHRvIHJl
cHJlc2VudCBhCisvLyBudW1iZXIgaW4gdGhlIGJyb3dzZXIgbG9jYWxlLiBGb3IgZXhhbXBsZSwg
dGhpcyBzaG91bGQgcmV0dXJuIHRydWUgZm9yIDAtOSAuCisvLyAsICsgLSBmb3IgZW4tVVMgbG9j
YWxlLgorYm9vbCBpc0xvY2FsaXplZE51bWJlckNoYXJhY3RlcihVQ2hhcjMyKTsKKworfSAvLyBu
YW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gTG9jYWxpemVkTnVtYmVyX2gKZGlmZiAtLWdp
dCBhL1dlYkNvcmUvcGxhdGZvcm0vdGV4dC9Mb2NhbGl6ZWROdW1iZXJOb25lLmNwcCBiL1dlYkNv
cmUvcGxhdGZvcm0vdGV4dC9Mb2NhbGl6ZWROdW1iZXJOb25lLmNwcApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5mZjM5
OGVmNTgxYTBiZWZjMzY3NjY3ODYzMjg5YjdiMWE4ZjZjZTdmCi0tLSAvZGV2L251bGwKKysrIGIv
V2ViQ29yZS9wbGF0Zm9ybS90ZXh0L0xvY2FsaXplZE51bWJlck5vbmUuY3BwCkBAIC0wLDAgKzEs
NTUgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKKyAqIG1ldDoKKyAq
CisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhl
IGFib3ZlIGNvcHlyaWdodAorICogbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogICAgICogUmVkaXN0cmlidXRpb25zIGluIGJp
bmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQorICogY29weXJpZ2h0IG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgorICog
aW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRo
IHRoZQorICogZGlzdHJpYnV0aW9uLgorICogICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29n
bGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cworICogY29udHJpYnV0b3JzIG1heSBiZSB1c2Vk
IHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KKyAqIHRoaXMgc29m
dHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisgKgorICog
VEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENP
TlRSSUJVVE9SUworICogIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5U
SUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJB
TlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgorICogQSBQQVJUSUNVTEFS
IFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQK
KyAqIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElS
RUNULCBJTkNJREVOVEFMLAorICogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFM
IERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQg
T0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCisgKiBEQVRBLCBP
UiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBP
TiBBTlkKKyAqIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklD
VCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJ
U0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FS
RSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAq
LworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiTG9jYWxpemVkTnVtYmVyLmgiCisK
KyNpbmNsdWRlIDxsaW1pdHM+CisKK3VzaW5nIG5hbWVzcGFjZSBzdGQ7CisKK25hbWVzcGFjZSBX
ZWJDb3JlIHsKKworZG91YmxlIHBhcnNlTG9jYWxpemVkTnVtYmVyKGNvbnN0IFN0cmluZyYpCit7
CisgICAgcmV0dXJuIG51bWVyaWNfbGltaXRzPGRvdWJsZT46OnF1aWV0X05hTigpOworfQorCitT
dHJpbmcgZm9ybWF0TG9jYWxpemVkTnVtYmVyKGRvdWJsZSkKK3sKKyAgICByZXR1cm4gU3RyaW5n
KCk7Cit9CisKK2Jvb2wgaXNMb2NhbGl6ZWROdW1iZXJDaGFyYWN0ZXIoVUNoYXIzMikKK3sKKyAg
ICByZXR1cm4gZmFsc2U7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBh
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRleHRDb250cm9sU2luZ2xlTGluZS5jcHAgYi9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJUZXh0Q29udHJvbFNpbmdsZUxpbmUuY3BwCmluZGV4IGM4MTVi
ZTE3ZThmMDNhMzQ0ZWNhMzlmZWZlZTc2MTY3NWMzMDE0NzUuLjYxOTEzZjBmMjBlYjFlNmIzNjEz
MTZhNmM4NTE5NGJlZWI5YjVhNWUgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
clRleHRDb250cm9sU2luZ2xlTGluZS5jcHAKKysrIGIvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
VGV4dENvbnRyb2xTaW5nbGVMaW5lLmNwcApAQCAtNjk4LDcgKzY5OCw3IEBAIHZvaWQgUmVuZGVy
VGV4dENvbnRyb2xTaW5nbGVMaW5lOjp1cGRhdGVGcm9tRWxlbWVudCgpCiAgICAgICAgICAgICAv
LyBmbGFnIGlzIGZhbHNlLiBJdCBwcm90ZWN0cyBhbiB1bmFjY2VwdGFibGUgcmVuZGVyZXIgdmFs
dWUgZnJvbQogICAgICAgICAgICAgLy8gYmVpbmcgb3ZlcndyaXR0ZW4gd2l0aCB0aGUgRE9NIHZh
bHVlLgogICAgICAgICAgICAgaWYgKCFzdGF0aWNfY2FzdDxIVE1MSW5wdXRFbGVtZW50Kj4obm9k
ZSgpKS0+Zm9ybUNvbnRyb2xWYWx1ZU1hdGNoZXNSZW5kZXJlcigpKQotICAgICAgICAgICAgICAg
IHNldElubmVyVGV4dFZhbHVlKGlucHV0RWxlbWVudCgpLT52YWx1ZSgpKTsKKyAgICAgICAgICAg
ICAgICBzZXRJbm5lclRleHRWYWx1ZShpbnB1dEVsZW1lbnQoKS0+dmlzaWJsZVZhbHVlKCkpOwog
ICAgICAgICB9CiAgICAgfQogCmRpZmYgLS1naXQgYS9XZWJDb3JlL3dtbC9XTUxJbnB1dEVsZW1l
bnQuaCBiL1dlYkNvcmUvd21sL1dNTElucHV0RWxlbWVudC5oCmluZGV4IGRmN2Y0OTcyYjcyY2Jl
ODg0MjBkYWE4ZGFhNTFhNmY1ZjM0NGEwMjIuLjZjNjY0MTBiY2Y3NmE5ZWZmYjE4ZWU1MzlkYjBh
NjE3OTg5YTI1M2UgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvd21sL1dNTElucHV0RWxlbWVudC5oCisr
KyBiL1dlYkNvcmUvd21sL1dNTElucHV0RWxlbWVudC5oCkBAIC02Myw2ICs2Myw3IEBAIHB1Ymxp
YzoKICAgICB2aXJ0dWFsIFN0cmluZyB2YWx1ZSgpIGNvbnN0OwogICAgIHZpcnR1YWwgdm9pZCBz
ZXRWYWx1ZShjb25zdCBTdHJpbmcmLCBib29sIHNlbmRDaGFuZ2VFdmVudCA9IGZhbHNlKTsKICAg
ICB2aXJ0dWFsIHZvaWQgc2V0VmFsdWVGb3JVc2VyKGNvbnN0IFN0cmluZyYpOworICAgIHZpcnR1
YWwgU3RyaW5nIHZpc2libGVWYWx1ZSgpIGNvbnN0IHsgcmV0dXJuIHZhbHVlKCk7IH0KICAgICB2
aXJ0dWFsIHZvaWQgc2V0VmFsdWVGcm9tUmVuZGVyZXIoY29uc3QgU3RyaW5nJik7CiAKICAgICB2
aXJ0dWFsIGJvb2wgc2F2ZUZvcm1Db250cm9sU3RhdGUoU3RyaW5nJiB2YWx1ZSkgY29uc3Q7Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>