<?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>42112</bug_id>
          
          <creation_ts>2010-07-12 14:24:38 -0700</creation_ts>
          <short_desc>U+0000 is turned to U+FFFD (replacement character)</short_desc>
          <delta_ts>2010-08-05 17:49:19 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Layout and Rendering</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>http://big5.xinhuanet.com/gate/big5/www.xinhuanet.com/</bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>41115</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Jungshik Shin">jshin</reporter>
          <assigned_to name="Adam Barth">abarth</assigned_to>
          <cc>abarth</cc>
    
    <cc>ap</cc>
    
    <cc>eric</cc>
    
    <cc>evan</cc>
    
    <cc>hsivonen</cc>
    
    <cc>ian</cc>
    
    <cc>mike</cc>
    
    <cc>vivianz</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>250054</commentid>
    <comment_count>0</comment_count>
    <who name="Jungshik Shin">jshin</who>
    <bug_when>2010-07-12 14:24:38 -0700</bug_when>
    <thetext>The page in the url field has td&apos;s like this sprinkled all over the place

&lt;td&gt;^@^@&lt;/td&gt;

where ^@ stands for U+0000. 

They&apos;re rendered with a glyph for replacement character (U+0000). This is a recent regression. 

It&apos;s reported against Chromium at http://crbug.com/48603</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>250093</commentid>
    <comment_count>1</comment_count>
    <who name="Jungshik Shin">jshin</who>
    <bug_when>2010-07-12 15:18:56 -0700</bug_when>
    <thetext>It&apos;s strange that this regressed because I don&apos;t see a recent change relevant to the treatment of U+0000 in Font.h and GlyphPageTreeNode.cpp</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>250121</commentid>
    <comment_count>2</comment_count>
    <who name="Jungshik Shin">jshin</who>
    <bug_when>2010-07-12 16:15:21 -0700</bug_when>
    <thetext>It seems that it regressed between 461229 and r61316</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>250823</commentid>
    <comment_count>3</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2010-07-13 16:58:10 -0700</bug_when>
    <thetext>HTML5 requires that zero bytes are decoded as U+FFFD. I think that this is a mistake, but I haven&apos;t been successful at convincing HTML5 powers.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>250829</commentid>
    <comment_count>4</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2010-07-13 17:03:26 -0700</bug_when>
    <thetext>Thanks.  These are nice examples.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>250850</commentid>
    <comment_count>5</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2010-07-13 17:27:40 -0700</bug_when>
    <thetext>Our layout is also screwy on that page.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>251407</commentid>
    <comment_count>6</comment_count>
    <who name="Jungshik Shin">jshin</who>
    <bug_when>2010-07-14 13:42:28 -0700</bug_when>
    <thetext>(In reply to comment #3)
&gt; HTML5 requires that zero bytes are decoded as U+FFFD. I think that this is a mistake, but I haven&apos;t been successful at convincing HTML5 powers.

Is it about HTML5 10.2.4.70 (http://www.whatwg.org/specs/web-apps/current-work/multipage/tokenization.html) or something else? 10.2.4.70 seems to only about NCR processing. 

For my reference: it&apos;s done in http://trac.webkit.org/changeset/60791</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>251409</commentid>
    <comment_count>7</comment_count>
    <who name="Jungshik Shin">jshin</who>
    <bug_when>2010-07-14 13:45:37 -0700</bug_when>
    <thetext>Sorry that I missed a reference to the spec in HTMLTokenizer (http://www.whatwg.org/specs/web-apps/current-work/#preprocessing-the-input-stream)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>251459</commentid>
    <comment_count>8</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2010-07-14 15:25:31 -0700</bug_when>
    <thetext>[3:24pm] Hixie: abarth: yeah, it&apos;s basically intentional
[3:24pm] Hixie: abarth: there shouldn&apos;t be NULs there at all and they&apos;re likely to be triggering all kinds of security problems
[3:24pm] Hixie: abarth: making it ugly is one way to draw attention to it</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>251501</commentid>
    <comment_count>9</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2010-07-14 16:16:18 -0700</bug_when>
    <thetext>It doesn&apos;t seem that we&apos;re going to get much sympathy from WhatWG, so the options are basically to ignore such content, or to avoid implementing this aspect of HTML5.

My personal preference would be the latter, since it&apos;s a useless and incompatible change, but I expect many other WebKit developers to disagree.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>251525</commentid>
    <comment_count>10</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2010-07-14 17:04:22 -0700</bug_when>
    <thetext>I think it&apos;s important for the spec and the implementation to agree.  I don&apos;t have a strong opinion on which behavior is better in this particular topic.  One approach to move forward is to talk with Henri and some of the other Mozilla folks and see if we can come to an agreement.  If WebKit and Firefox agree, it will be hard for the working group to not agree also.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>251718</commentid>
    <comment_count>11</comment_count>
    <who name="Henri Sivonen">hsivonen</who>
    <bug_when>2010-07-15 00:29:20 -0700</bug_when>
    <thetext>See http://hg.mozilla.org/mozilla-central/rev/ae259fec2443

I made the tree builder ignore U+0000-originating U+FFFD in element content when the tree builder is neither in the &apos;text&apos; state nor in the &apos;in foreign content&apos; state (the two states that handle &lt;script&gt;, &lt;style&gt; and &lt;textarea&gt; text.)

As far as I can tell, the defense in depth rationale for turning U+0000 into U+FFFD doesn&apos;t apply to element content when script, style or textarea isn&apos;t involved.

Does this change make sense to you? (Note that Hixie didn&apos;t put this in the spec in http://html5.org/tools/web-apps-tracker?from=5155&amp;to=5156 )</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>251721</commentid>
    <comment_count>12</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2010-07-15 00:38:02 -0700</bug_when>
    <thetext>&gt; Does this change make sense to you?

Yeah we could do something similar.  Architecturally, we&apos;d have the tree builder set a bit on the tokenizer / input stream preprocessor to not generate FFFD when it&apos;s not in the text or foreign content state.  It would then be similar to the CR LF collapsing, but it could collapse an unbounded number of characters, which should be doable.

@ap, would that address your concerns?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>251894</commentid>
    <comment_count>13</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2010-07-15 08:10:30 -0700</bug_when>
    <thetext>Yes, that certainly addresses the known practical issues.

In general, I think that the more complicated null handling gets, the more potential security issues there are. The recent security problems with nulls that I know of were all caused by stripping them in tokenizer instead of passing as is, which some software did, and some didn&apos;t perform. Converting nulls to U+FFFD will be a unique trait of HTML5 processing, so it will likely always remain an unexpected feature for many.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>254083</commentid>
    <comment_count>14</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2010-07-20 17:47:14 -0700</bug_when>
    <thetext>Apparently this problem also occurs on the US bank login page:
http://code.google.com/p/chromium/issues/detail?id=49720</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>254084</commentid>
    <comment_count>15</comment_count>
    <who name="Evan Martin">evan</who>
    <bug_when>2010-07-20 17:49:24 -0700</bug_when>
    <thetext>Another page exhibiting the same issue: usbank&apos;s login page.  This was reported by a Chrome users.

You can see the problem without an account here:
https://www4.usbank.com/internetBanking/RequestRouter?requestCmdId=DisplayLoginPageNotYou

Hex snippet of page contents from the cache:
00004cb0:  66  6d  2f  70  65  72  73  6f  6e  61  6c  2f  61  63  68  69  fm/personal/achi
00004cc0:  65  76  65  5f  67  6f  61  6c  73  2f  49  44  5f  74  68  65  eve_goals/ID_the
00004cd0:  66  74  2e  63  66  6d  22  3e  50  72  6f  74  65  63  74  20  ft.cfm&quot;&gt;Protect 
00004ce0:  59  6f  75  72  20  49  64  65  6e  74  69  74  79  3c  2f  61  Your Identity&lt;/a
00004cf0:  3e  3c  2f  74  64  3e  0a  20  20  20  20  20  20  20  20  20  &gt;&lt;/td&gt;.         
00004d00:  20  20  20  20  20  20  20  20  20  3c  2f  74  72  3e  20  3c           &lt;/tr&gt; &lt;
00004d10:  2f  74  61  62  6c  65  3e  00  00  00  00  00  00  00  00  00  /table&gt;.........
00004d20:  00  00  00  00  00  00  00  00  00  00  00  00  00  00  00  00  ................
00004d30:  00  00  00  00  00  00  00  00  00  00  00  00  00  00  00  00  ................
00004d40:  00  00  00  00  00  00  00  00  00  00  00  00  00  00  00  00  ................</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>254159</commentid>
    <comment_count>16</comment_count>
    <who name="Henri Sivonen">hsivonen</who>
    <bug_when>2010-07-21 01:20:46 -0700</bug_when>
    <thetext>It seems to me that the fix I implemented for Gecko (ignoring U+0000-originating U+FFFD in text content when the tree builder isn&apos;t in the &apos;text&apos; or &apos;in foreign content&apos; modes) addresses this problem for the sites reported here.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>255001</commentid>
    <comment_count>17</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2010-07-22 14:55:05 -0700</bug_when>
    <thetext>This bug is hard to fix before enabling the new tree builder because the old tree builder doesn&apos;t use the same state machine.  It&apos;s complicated to fix here too without introducing a per-character branch, but I think I see how to do it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>255002</commentid>
    <comment_count>18</comment_count>
      <attachid>62344</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2010-07-22 14:56:31 -0700</bug_when>
    <thetext>Created attachment 62344
Work in progress</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>260692</commentid>
    <comment_count>19</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2010-08-05 10:43:14 -0700</bug_when>
    <thetext>I haz a patch.  Gather test results changes.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>260759</commentid>
    <comment_count>20</comment_count>
      <attachid>63614</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2010-08-05 12:16:45 -0700</bug_when>
    <thetext>Created attachment 63614
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>260765</commentid>
    <comment_count>21</comment_count>
      <attachid>63614</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2010-08-05 12:23:25 -0700</bug_when>
    <thetext>Comment on attachment 63614
Patch

&gt; +    // Swallowing U+0000 characters isn&apos;t in the HTML5 spec, but turning all
&gt; +    // the U+0000 characters into replacement characters has compatibility
&gt; +    // problems problems.

problems problems problems</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>260782</commentid>
    <comment_count>22</comment_count>
      <attachid>63620</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2010-08-05 12:45:03 -0700</bug_when>
    <thetext>Created attachment 63620
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>260796</commentid>
    <comment_count>23</comment_count>
      <attachid>63620</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2010-08-05 13:08:04 -0700</bug_when>
    <thetext>Comment on attachment 63620
Patch

&gt; -PASS canvas.getContext(&apos;2dï¿½&apos;) is null
&gt; +PASS canvas.getContext(&apos;2d&apos;) is null

&gt; -PASS String(&quot;ï¿½&quot;).length is 1
&gt; +PASS String(&quot;&quot;).length is 1

I think an even better approach to these would be to fix the escapeHTML function in js-test-pre.js to escape null characters. We could do that in a separate pass before making this change.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>260807</commentid>
    <comment_count>24</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2010-08-05 13:31:34 -0700</bug_when>
    <thetext>&gt; I think an even better approach to these would be to fix the escapeHTML function in js-test-pre.js to escape null characters. We could do that in a separate pass before making this change.

Ok.  I&apos;ll file a new bug for that.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>260839</commentid>
    <comment_count>25</comment_count>
      <attachid>63620</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-08-05 14:02:07 -0700</bug_when>
    <thetext>Comment on attachment 63620
Patch

We came up with better names in person.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>260873</commentid>
    <comment_count>26</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2010-08-05 14:39:16 -0700</bug_when>
    <thetext>&gt; Ok.  I&apos;ll file a new bug for that.

https://bugs.webkit.org/show_bug.cgi?id=43579</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>260906</commentid>
    <comment_count>27</comment_count>
      <attachid>63648</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2010-08-05 15:35:57 -0700</bug_when>
    <thetext>Created attachment 63648
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>260909</commentid>
    <comment_count>28</comment_count>
      <attachid>63648</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-08-05 15:42:34 -0700</bug_when>
    <thetext>Comment on attachment 63648
Patch

OK.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>260969</commentid>
    <comment_count>29</comment_count>
      <attachid>63648</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2010-08-05 17:12:26 -0700</bug_when>
    <thetext>Comment on attachment 63648
Patch

Clearing flags on attachment: 63648

Committed r64799: &lt;http://trac.webkit.org/changeset/64799&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>260970</commentid>
    <comment_count>30</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2010-08-05 17:12:35 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>260994</commentid>
    <comment_count>31</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-08-05 17:49:19 -0700</bug_when>
    <thetext>http://trac.webkit.org/changeset/64799 might have broken Qt Linux Release
The following changes are on the blame list:
http://trac.webkit.org/changeset/64800
http://trac.webkit.org/changeset/64801
http://trac.webkit.org/changeset/64799</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>62344</attachid>
            <date>2010-07-22 14:56:31 -0700</date>
            <delta_ts>2010-08-05 12:16:40 -0700</delta_ts>
            <desc>Work in progress</desc>
            <filename>bug-42112-20100722145630.patch</filename>
            <type>text/plain</type>
            <size>5809</size>
            <attacher name="Adam Barth">abarth</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvaHRtbC9IVE1MVG9rZW5pemVyLmNwcCBiL1dlYkNvcmUvaHRt
bC9IVE1MVG9rZW5pemVyLmNwcAppbmRleCA1NWZkMWNhNDg0NDJlMWVlODNkZmNhZDY1ZmY3NGIz
ZjczOTQ5OWRjLi4yZmM0YTYwYjBlNDc4NGVlM2FlNzgyODhkMzAyMWE1NGM5MzgwYTI1IDEwMDY0
NAotLS0gYS9XZWJDb3JlL2h0bWwvSFRNTFRva2VuaXplci5jcHAKKysrIGIvV2ViQ29yZS9odG1s
L0hUTUxUb2tlbml6ZXIuY3BwCkBAIC0xMTEsNiArMTExLDcgQEAgdm9pZCBIVE1MVG9rZW5pemVy
OjpyZXNldCgpCiAgICAgbV90b2tlbiA9IDA7CiAgICAgbV9saW5lTnVtYmVyID0gMDsKICAgICBt
X3NraXBMZWFkaW5nTmV3TGluZUZvckxpc3RpbmcgPSBmYWxzZTsKKyAgICBtX3Nob3VsZFNraXBO
dWxsQ2hhcmFjdGVycyA9IHRydWU7CiAgICAgbV9hZGRpdGlvbmFsQWxsb3dlZENoYXJhY3RlciA9
ICdcMCc7CiB9CiAKZGlmZiAtLWdpdCBhL1dlYkNvcmUvaHRtbC9IVE1MVG9rZW5pemVyLmggYi9X
ZWJDb3JlL2h0bWwvSFRNTFRva2VuaXplci5oCmluZGV4IDk2YzJkN2M2OWFkNTUyMTFlOThjYzA5
MzM2NjMwODRjZmY2YzhjZmMuLmEyMzM1ZmYxYTQ2MjgyOTkyMDY0Mjk4YmVmZmE5ZWQwMWVhYTBk
NDQgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvaHRtbC9IVE1MVG9rZW5pemVyLmgKKysrIGIvV2ViQ29y
ZS9odG1sL0hUTUxUb2tlbml6ZXIuaApAQCAtMTMyLDE0ICsxMzIsMTggQEAgcHVibGljOgogCiAg
ICAgLy8gSGFjayB0byBza2lwIGxlYWRpbmcgbmV3bGluZSBpbiA8cHJlPi88bGlzdGluZz4gZm9y
IGF1dGhvcmluZyBlYXNlLgogICAgIC8vIGh0dHA6Ly93d3cud2hhdHdnLm9yZy9zcGVjcy93ZWIt
YXBwcy9jdXJyZW50LXdvcmsvbXVsdGlwYWdlL3Rva2VuaXphdGlvbi5odG1sI3BhcnNpbmctbWFp
bi1pbmJvZHkKLSAgICB2b2lkIHNraXBMZWFkaW5nTmV3TGluZUZvckxpc3RpbmcoKSB7IG1fc2tp
cExlYWRpbmdOZXdMaW5lRm9yTGlzdGluZyA9IHRydWU7IH0KKyAgICB2b2lkIHNldFNraXBMZWFk
aW5nTmV3TGluZUZvckxpc3RpbmcoYm9vbCB2YWx1ZSkgeyBtX3NraXBMZWFkaW5nTmV3TGluZUZv
ckxpc3RpbmcgPSB2YWx1ZTsgfQorCisgICAgYm9vbCBzaG91bGRTa2lwTnVsbENoYXJhY3RlcnMo
KSBjb25zdCB7IHJldHVybiBtX3Nob3VsZFNraXBOdWxsQ2hhcmFjdGVyczsgfQorICAgIHZvaWQg
c2V0U2tpcE51bGxDaGFyYWN0ZXJzKGJvb2wgdmFsdWUpIHsgbV9zaG91bGRTa2lwTnVsbENoYXJh
Y3RlcnMgPSB2YWx1ZTsgfQogCiBwcml2YXRlOgogICAgIC8vIGh0dHA6Ly93d3cud2hhdHdnLm9y
Zy9zcGVjcy93ZWItYXBwcy9jdXJyZW50LXdvcmsvI3ByZXByb2Nlc3NpbmctdGhlLWlucHV0LXN0
cmVhbQogICAgIGNsYXNzIElucHV0U3RyZWFtUHJlcHJvY2Vzc29yIDogcHVibGljIE5vbmNvcHlh
YmxlIHsKICAgICBwdWJsaWM6Ci0gICAgICAgIElucHV0U3RyZWFtUHJlcHJvY2Vzc29yKCkKLSAg
ICAgICAgICAgIDogbV9uZXh0SW5wdXRDaGFyYWN0ZXIoJ1wwJykKKyAgICAgICAgSW5wdXRTdHJl
YW1QcmVwcm9jZXNzb3IoSFRNTFRva2VuaXplciogdG9rZW5pemVyKQorICAgICAgICAgICAgOiBt
X3Rva2VuaXplcih0b2tlbml6ZXIpCisgICAgICAgICAgICAsIG1fbmV4dElucHV0Q2hhcmFjdGVy
KCdcMCcpCiAgICAgICAgICAgICAsIG1fc2tpcE5leHROZXdMaW5lKGZhbHNlKQogICAgICAgICB7
CiAgICAgICAgIH0KQEAgLTE1MSw2ICsxNTUsNyBAQCBwcml2YXRlOgogICAgICAgICAvLyBjaGFy
YWN0ZXJzIGluIHxzb3VyY2V8IChhZnRlciBjb2xsYXBzaW5nIFxyXG4sIGV0YykuCiAgICAgICAg
IGJvb2wgcGVlayhTZWdtZW50ZWRTdHJpbmcmIHNvdXJjZSwgaW50JiBsaW5lTnVtYmVyKQogICAg
ICAgICB7CisgICAgICAgIHBlZWtBZ2FpbjoKICAgICAgICAgICAgIG1fbmV4dElucHV0Q2hhcmFj
dGVyID0gKnNvdXJjZTsKICAgICAgICAgICAgIGlmIChtX25leHRJbnB1dENoYXJhY3RlciA9PSAn
XG4nICYmIG1fc2tpcE5leHROZXdMaW5lKSB7CiAgICAgICAgICAgICAgICAgbV9za2lwTmV4dE5l
d0xpbmUgPSBmYWxzZTsKQEAgLTE2OCw4ICsxNzMsMTUgQEAgcHJpdmF0ZToKICAgICAgICAgICAg
ICAgICAvLyBhIG51bWJlciBvZiBzcGVjaWZpYyBjaGFyYWN0ZXIgdmFsdWVzIGFyZSBwYXJzZSBl
cnJvcnMgYW5kIHNob3VsZCBiZSByZXBsYWNlZAogICAgICAgICAgICAgICAgIC8vIGJ5IHRoZSBy
ZXBsYWNlbWVudCBjaGFyYWN0ZXIuIFdlIHN1c3BlY3QgdGhpcyBpcyBhIHByb2JsZW0gd2l0aCB0
aGUgc3BlYyBhcyBkb2luZwogICAgICAgICAgICAgICAgIC8vIHRoYXQgZmlsdGVyaW5nIGJyZWFr
cyBzdXJyb2dhdGUgcGFpciBoYW5kbGluZyBhbmQgY2F1c2VzIHVzIG5vdCB0byBtYXRjaCBNaW5l
ZmllbGQuCi0gICAgICAgICAgICAgICAgaWYgKG1fbmV4dElucHV0Q2hhcmFjdGVyID09ICdcMCcg
JiYgIXNob3VsZFRyZWF0TnVsbEFzRW5kT2ZGaWxlTWFya2VyKHNvdXJjZSkpCisgICAgICAgICAg
ICAgICAgaWYgKG1fbmV4dElucHV0Q2hhcmFjdGVyID09ICdcMCcgJiYgIXNob3VsZFRyZWF0TnVs
bEFzRW5kT2ZGaWxlTWFya2VyKHNvdXJjZSkpIHsKKyAgICAgICAgICAgICAgICAgICAgaWYgKG1f
dG9rZW5pemVyLnNob3VsZFNraXBOdWxsQ2hhcmFjdGVycygpKSB7CisgICAgICAgICAgICAgICAg
ICAgICAgICBzb3VyY2UuYWR2YW5jZVBhc3ROZXdsaW5lKGxpbmVOdW1iZXIpOworICAgICAgICAg
ICAgICAgICAgICAgICAgaWYgKHNvdXJjZS5pc0VtcHR5KCkpCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICAgICAgICAgICAgICAgICAgZ290byBwZWVr
QWdhaW47CisgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgbV9uZXh0
SW5wdXRDaGFyYWN0ZXIgPSAweEZGRkQ7CisgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAg
fQogICAgICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgICAgIH0KQEAgLTE5MSw2ICsyMDMsOCBA
QCBwcml2YXRlOgogICAgICAgICAgICAgcmV0dXJuIHNvdXJjZS5pc0Nsb3NlZCgpICYmIHNvdXJj
ZS5sZW5ndGgoKSA9PSAxOwogICAgICAgICB9CiAKKyAgICAgICAgSFRNTFRva2VuaXplciogbV90
b2tlbml6ZXI7CisKICAgICAgICAgLy8gaHR0cDovL3d3dy53aGF0d2cub3JnL3NwZWNzL3dlYi1h
cHBzL2N1cnJlbnQtd29yay8jbmV4dC1pbnB1dC1jaGFyYWN0ZXIKICAgICAgICAgVUNoYXIgbV9u
ZXh0SW5wdXRDaGFyYWN0ZXI7CiAgICAgICAgIGJvb2wgbV9za2lwTmV4dE5ld0xpbmU7CkBAIC0y
MzEsNiArMjQ1LDcgQEAgcHJpdmF0ZToKICAgICBpbnQgbV9saW5lTnVtYmVyOwogCiAgICAgYm9v
bCBtX3NraXBMZWFkaW5nTmV3TGluZUZvckxpc3Rpbmc7CisgICAgYm9vbCBtX3Nob3VsZFNraXBO
dWxsQ2hhcmFjdGVyczsKIAogICAgIC8vIGh0dHA6Ly93d3cud2hhdHdnLm9yZy9zcGVjcy93ZWIt
YXBwcy9jdXJyZW50LXdvcmsvI3RlbXBvcmFyeS1idWZmZXIKICAgICBWZWN0b3I8VUNoYXIsIDMy
PiBtX3RlbXBvcmFyeUJ1ZmZlcjsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvaHRtbC9IVE1MVHJlZUJ1
aWxkZXIuY3BwIGIvV2ViQ29yZS9odG1sL0hUTUxUcmVlQnVpbGRlci5jcHAKaW5kZXggNmFjYTcy
ZmY0ZWUwNjk0MmMwZjQ4ZjEyYjZkYTk0MmIzNjllMmQwMy4uZjdhZjhhZWQ3M2VlZTQ5OWJhNjRi
NmE3MDA1YjRhOGExZTdlZmU1YSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9odG1sL0hUTUxUcmVlQnVp
bGRlci5jcHAKKysrIGIvV2ViQ29yZS9odG1sL0hUTUxUcmVlQnVpbGRlci5jcHAKQEAgLTQ3NCw3
ICs0NzQsNyBAQCB2b2lkIEhUTUxUcmVlQnVpbGRlcjo6cGFzc1Rva2VuVG9MZWdhY3lQYXJzZXIo
SFRNTFRva2VuJiB0b2tlbikKICAgICAgICAgICAgIG1fbGFzdFNjcmlwdEVsZW1lbnQgPSBzdGF0
aWNfcG9pbnRlcl9jYXN0PEVsZW1lbnQ+KHJlc3VsdCk7CiAgICAgICAgICAgICBtX2xhc3RTY3Jp
cHRFbGVtZW50U3RhcnRMaW5lID0gbV90b2tlbml6ZXItPmxpbmVOdW1iZXIoKTsKICAgICAgICAg
fSBlbHNlIGlmIChvbGRTdHlsZVRva2VuLnRhZ05hbWUgPT0gcHJlVGFnIHx8IG9sZFN0eWxlVG9r
ZW4udGFnTmFtZSA9PSBsaXN0aW5nVGFnKQotICAgICAgICAgICAgbV90b2tlbml6ZXItPnNraXBM
ZWFkaW5nTmV3TGluZUZvckxpc3RpbmcoKTsKKyAgICAgICAgICAgIG1fdG9rZW5pemVyLT5zZXRT
a2lwTGVhZGluZ05ld0xpbmVGb3JMaXN0aW5nKHRydWUpOwogICAgICAgICBlbHNlCiAgICAgICAg
ICAgICBtX3Rva2VuaXplci0+c2V0U3RhdGUoYWRqdXN0ZWRMZXhlclN0YXRlKG1fdG9rZW5pemVy
LT5zdGF0ZSgpLCBvbGRTdHlsZVRva2VuLnRhZ05hbWUsIG1fZG9jdW1lbnQtPmZyYW1lKCkpKTsK
ICAgICB9IGVsc2UgaWYgKHRva2VuLnR5cGUoKSA9PSBIVE1MVG9rZW46OkVuZFRhZykgewpAQCAt
NTA2LDYgKzUwNiwxMSBAQCB2b2lkIEhUTUxUcmVlQnVpbGRlcjo6Y29uc3RydWN0VHJlZUZyb21U
b2tlbihIVE1MVG9rZW4mIHJhd1Rva2VuKQogCiAgICAgQXRvbWljSFRNTFRva2VuIHRva2VuKHJh
d1Rva2VuKTsKICAgICBwcm9jZXNzVG9rZW4odG9rZW4pOworCisgICAgLy8gU3dhbGxvd2luZyBV
KzAwMDAgY2hhcmFjdGVycyBpc24ndCBpbiB0aGUgSFRNTDUgc3BlYywgYnV0IHR1cm5pbmcgYWxs
CisgICAgLy8gdGhlIFUrMDAwMCBjaGFyYWN0ZXJzIGludG8gcmVwbGFjZW1lbnQgY2hhcmFjdGVy
cyBoYXMgY29tcGF0aWJpbGl0eQorICAgIC8vIHByb2JsZW1zIHByb2JsZW1zLgorICAgIG1fdG9r
ZW5pemVyLT5zZXRTa2lwTnVsbENoYXJhY3RlcnMobV9pbnNlcnRpb25Nb2RlICE9IFRleHRNb2Rl
ICYmIG1faW5zZXJ0aW9uTW9kZSAhPSBJbkZvcmVpZ25Db250ZW50TW9kZSk7CiB9CiAKIHZvaWQg
SFRNTFRyZWVCdWlsZGVyOjpwcm9jZXNzVG9rZW4oQXRvbWljSFRNTFRva2VuJiB0b2tlbikKQEAg
LTgzOSw3ICs4NDQsNyBAQCB2b2lkIEhUTUxUcmVlQnVpbGRlcjo6cHJvY2Vzc1N0YXJ0VGFnRm9y
SW5Cb2R5KEF0b21pY0hUTUxUb2tlbiYgdG9rZW4pCiAgICAgaWYgKHRva2VuLm5hbWUoKSA9PSBw
cmVUYWcgfHwgdG9rZW4ubmFtZSgpID09IGxpc3RpbmdUYWcpIHsKICAgICAgICAgcHJvY2Vzc0Zh
a2VQRW5kVGFnSWZQSW5CdXR0b25TY29wZSgpOwogICAgICAgICBtX3RyZWUuaW5zZXJ0SFRNTEVs
ZW1lbnQodG9rZW4pOwotICAgICAgICBtX3Rva2VuaXplci0+c2tpcExlYWRpbmdOZXdMaW5lRm9y
TGlzdGluZygpOworICAgICAgICBtX3Rva2VuaXplci0+c2V0U2tpcExlYWRpbmdOZXdMaW5lRm9y
TGlzdGluZyh0cnVlKTsKICAgICAgICAgbV9mcmFtZXNldE9rID0gZmFsc2U7CiAgICAgICAgIHJl
dHVybjsKICAgICB9CkBAIC05NTksNyArOTY0LDcgQEAgdm9pZCBIVE1MVHJlZUJ1aWxkZXI6OnBy
b2Nlc3NTdGFydFRhZ0ZvckluQm9keShBdG9taWNIVE1MVG9rZW4mIHRva2VuKQogICAgIH0KICAg
ICBpZiAodG9rZW4ubmFtZSgpID09IHRleHRhcmVhVGFnKSB7CiAgICAgICAgIG1fdHJlZS5pbnNl
cnRIVE1MRWxlbWVudCh0b2tlbik7Ci0gICAgICAgIG1fdG9rZW5pemVyLT5za2lwTGVhZGluZ05l
d0xpbmVGb3JMaXN0aW5nKCk7CisgICAgICAgIG1fdG9rZW5pemVyLT5zZXRTa2lwTGVhZGluZ05l
d0xpbmVGb3JMaXN0aW5nKHRydWUpOwogICAgICAgICBtX3Rva2VuaXplci0+c2V0U3RhdGUoSFRN
TFRva2VuaXplcjo6UkNEQVRBU3RhdGUpOwogICAgICAgICBtX29yaWdpbmFsSW5zZXJ0aW9uTW9k
ZSA9IG1faW5zZXJ0aW9uTW9kZTsKICAgICAgICAgbV9mcmFtZXNldE9rID0gZmFsc2U7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>63614</attachid>
            <date>2010-08-05 12:16:45 -0700</date>
            <delta_ts>2010-08-05 12:44:59 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-42112-20100805121643.patch</filename>
            <type>text/plain</type>
            <size>22386</size>
            <attacher name="Adam Barth">abarth</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCAyNzMwZWIzMWY2OWI1MDhkMzBjNWU3ZDQ5ZWUzMjBlZWUzOGQyYzA5Li43NTJjMDk0
YmU5YWVkNzExN2FjODk3NzE2NDhjZWVmMjk2MDY3MTI3IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzEgQEAK
KzIwMTAtMDgtMDUgIEFkYW0gQmFydGggIDxhYmFydGhAd2Via2l0Lm9yZz4KKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBVKzAwMDAgaXMgdHVybmVkIHRv
IFUrRkZGRCAocmVwbGFjZW1lbnQgY2hhcmFjdGVyKQorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDIxMTIKKworICAgICAgICBVcGRhdGUgdGVzdCByZXN1
bHRzIHRvIHNob3cgbnVsbCBzdHJpcHBpbmcuICBUaGVzZSBjaGFuZ2VzIGFyZSBtb3N0bHkKKyAg
ICAgICAgZ29pbmcgYmFjayB0byB0aGUgb2xkIHJlc3VsdHMgd2UgaGFkIGJlZm9yZSB3ZSBhZGRl
ZCB0aGUgRkZGRAorICAgICAgICByZXBsYWNlbWVudC4KKworICAgICAgICAqIGZhc3QvY2FudmFz
L2NhbnZhcy1nZXRDb250ZXh0LWludmFsaWQtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIGZhc3Qv
ZG9tL3N0cmlwTnVsbEZyb21UZXh0Tm9kZXMtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIGZhc3Qv
anMvbnVsbC1jaGFyLWluLXN0cmluZy1leHBlY3RlZC50eHQ6CisgICAgICAgICogZmFzdC9qcy9z
d2l0Y2gtYmVoYXZpb3VyLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBmYXN0L3Rva2VuaXplci9u
dWxsLWluLXRleHQtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L3Rva2VuaXpl
ci9udWxsLWluLXRleHQuaHRtbDogQWRkZWQuCisgICAgICAgICogZmFzdC90b2tlbml6ZXIvbnVs
bC14c3MtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L3Rva2VuaXplci9udWxs
LXhzcy5odG1sOiBBZGRlZC4KKyAgICAgICAgICAgIC0gVGhlIG1haW4gcmlzayB3aXRoIHN0cmlw
cGluZyBudWxsIGNoYXJhY3RlcnMgaXMgdGhhdCB0aGV5J2xsIGJlCisgICAgICAgICAgICAgIHVz
ZWQgaW4gWFNTIGF0dGFja3MuICBUaGlzIHRlc3Qgc2hvd3MgdGhhdCB3ZSBkb24ndCBzdHJpcCBu
dWxsCisgICAgICAgICAgICAgIGNoYXJhY3RlcnMgZnJvbSB0YWcgbmFtZXMuCisgICAgICAgICog
cGxhdGZvcm0vbWFjL2Zhc3QvdGV4dC9zdHJpcE51bGxGcm9tVGV4dC1leHBlY3RlZC50eHQ6Cisg
ICAgICAgICogc3RvcmFnZS9kb21zdG9yYWdlL2NvbXBsZXgtdmFsdWVzLWV4cGVjdGVkLnR4dDoK
KyAgICAgICAgKiBzdmcvZG9tL2Z1enotcGF0aC1wYXJzZXItZXhwZWN0ZWQudHh0OgorICAgICAg
ICAqIHN2Zy9kb20vcmdiLWNvbG9yLXBhcnNlci1leHBlY3RlZC50eHQ6CisgICAgICAgICogd2Vi
c29ja2V0L3Rlc3RzL2JhZC1zdWItcHJvdG9jb2wtY29udHJvbC1jaGFycy1leHBlY3RlZC50eHQ6
CisKIDIwMTAtMDgtMDUgIEplcmVteSBPcmxvdyAgPGpvcmxvd0BjaHJvbWl1bS5vcmc+CiAKICAg
ICAgICAgRG9uJ3Qgc2tpcCBzcGVlY2ggdGVzdHMuCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9m
YXN0L2NhbnZhcy9jYW52YXMtZ2V0Q29udGV4dC1pbnZhbGlkLWV4cGVjdGVkLnR4dCBiL0xheW91
dFRlc3RzL2Zhc3QvY2FudmFzL2NhbnZhcy1nZXRDb250ZXh0LWludmFsaWQtZXhwZWN0ZWQudHh0
CmluZGV4IDM0YjE0OWRiNzhjMTdmZmI5YmFkZTdkMmI4MDhjMTNiMDU1NzM4NzQuLjJmMjRlOGVk
MDRkYmZhYjNmMjAwOTliZjZlNzI1Y2NmMjNiZDVhYmIgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3Rz
L2Zhc3QvY2FudmFzL2NhbnZhcy1nZXRDb250ZXh0LWludmFsaWQtZXhwZWN0ZWQudHh0CisrKyBi
L0xheW91dFRlc3RzL2Zhc3QvY2FudmFzL2NhbnZhcy1nZXRDb250ZXh0LWludmFsaWQtZXhwZWN0
ZWQudHh0CkBAIC02LDcgKzYsNyBAQCBPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMg
b2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURQogUEFTUyBjYW52
YXMuZ2V0Q29udGV4dCgnJykgaXMgbnVsbAogUEFTUyBjYW52YXMuZ2V0Q29udGV4dCgnMmQjJykg
aXMgbnVsbAogUEFTUyBjYW52YXMuZ2V0Q29udGV4dCgnVGhpcyBpcyBjbGVhcmx5IG5vdCBhIHZh
bGlkIGNvbnRleHQgbmFtZS4nKSBpcyBudWxsCi1QQVNTIGNhbnZhcy5nZXRDb250ZXh0KCcyZO+/
vScpIGlzIG51bGwKK1BBU1MgY2FudmFzLmdldENvbnRleHQoJzJkJykgaXMgbnVsbAogUEFTUyBj
YW52YXMuZ2V0Q29udGV4dCgnMu+9hCcpIGlzIG51bGwKIFBBU1MgY2FudmFzLmdldENvbnRleHQo
JzJEJykgaXMgbnVsbAogUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vc3RyaXBOdWxsRnJvbVRleHROb2Rlcy1leHBlY3RlZC50
eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9zdHJpcE51bGxGcm9tVGV4dE5vZGVzLWV4cGVjdGVk
LnR4dAppbmRleCAzNzA5NGExYTBkN2NmYjZmM2ZkMDU0YjA2NzYzZTIyMDNmNGY5MGNiLi4wOTA4
YjI0Njg2MzgwZGNhNzU3ZWNiZDIxNTc0MDNjZDkyNWFjYWY5IDEwMDY0NAotLS0gYS9MYXlvdXRU
ZXN0cy9mYXN0L2RvbS9zdHJpcE51bGxGcm9tVGV4dE5vZGVzLWV4cGVjdGVkLnR4dAorKysgYi9M
YXlvdXRUZXN0cy9mYXN0L2RvbS9zdHJpcE51bGxGcm9tVGV4dE5vZGVzLWV4cGVjdGVkLnR4dApA
QCAtMSwyICsxLDIgQEAKLe+/ve+/ve+/ve+/ve+/ve+/ve+/ve+/ve+/vWhlbGzvv73vv73vv73v
v73vv71vCi1UaGUgbnVsbCBjaGFyYWN0ZXJzIHNob3VsZCBiZSBzdHJpcHBlZCBvdXQgb2YgdGhl
IHN0cmluZyBhYm92ZSBhbmQgaXQgc2hvdWxkIGhhdmUgYSBsZW5ndGggb2YgNS4gQW5kIHRoZSBE
T00gdGhpbmtzIHRoZSBsZW5ndGggaXMuLi4xOSA6LSgKK2hlbGxvCitUaGUgbnVsbCBjaGFyYWN0
ZXJzIHNob3VsZCBiZSBzdHJpcHBlZCBvdXQgb2YgdGhlIHN0cmluZyBhYm92ZSBhbmQgaXQgc2hv
dWxkIGhhdmUgYSBsZW5ndGggb2YgNS4gQW5kIHRoZSBET00gdGhpbmtzIHRoZSBsZW5ndGggaXMu
Li41IQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9qcy9udWxsLWNoYXItaW4tc3RyaW5n
LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvanMvbnVsbC1jaGFyLWluLXN0cmluZy1l
eHBlY3RlZC50eHQKaW5kZXggNmQyOGU2NGI4MmI4M2E2Nzg1MTJkMDM2OTgxYjM5YWY4ZGJlYjAy
Zi4uODQ0Mzc1NzNiNTQ0NmRmY2NkYjc3NDE3OTNkNmNjYzBiMTdkYzQ2NyAxMDA2NDQKLS0tIGEv
TGF5b3V0VGVzdHMvZmFzdC9qcy9udWxsLWNoYXItaW4tc3RyaW5nLWV4cGVjdGVkLnR4dAorKysg
Yi9MYXlvdXRUZXN0cy9mYXN0L2pzL251bGwtY2hhci1pbi1zdHJpbmctZXhwZWN0ZWQudHh0CkBA
IC0zLDcgKzMsNyBAQCBUaGlzIHRlc3QgY2hlY2tzIHRoYXQgbnVsbCBjaGFyYWN0ZXJzIGFyZSBh
bGxvd2VkIGluIEphdmFTY3JpcHQgc3RyaW5ncywgcmF0aGVyCiBPbiBzdWNjZXNzLCB5b3Ugd2ls
bCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01Q
TEVURSIuCiAKIAotUEFTUyBTdHJpbmcoIu+/vSIpLmxlbmd0aCBpcyAxCitQQVNTIFN0cmluZygi
IikubGVuZ3RoIGlzIDEKIFBBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKIAogVEVTVCBD
T01QTEVURQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9qcy9zd2l0Y2gtYmVoYXZpb3Vy
LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvanMvc3dpdGNoLWJlaGF2aW91ci1leHBl
Y3RlZC50eHQKaW5kZXggNGZlZGIxOWQ3NzI2ODk2YTgzMTFlYWQyM2QwMGZkYjJhOWYyODdiYS4u
ZjAyZjA5MTM3ZTE4MTQyOGNmMzNiOThjMzI2NTE1NjM0NTYzODRlOSAxMDA2NDQKLS0tIGEvTGF5
b3V0VGVzdHMvZmFzdC9qcy9zd2l0Y2gtYmVoYXZpb3VyLWV4cGVjdGVkLnR4dAorKysgYi9MYXlv
dXRUZXN0cy9mYXN0L2pzL3N3aXRjaC1iZWhhdmlvdXItZXhwZWN0ZWQudHh0CkBAIC0zLDcgKzMs
NyBAQCBUaGlzIHRlc3QgY292ZXJzIHRoZSBjb3JyZWN0bmVzcyBhbmQgYmVoYXZpb3VyIG9mIHN3
aXRjaCBzdGF0ZW1lbnRzLgogT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQ
QVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgogCiAKLVBBU1MgY2hh
cmFjdGVyU3dpdGNoKCfvv70nKSBpcyAi77+9IgorUEFTUyBjaGFyYWN0ZXJTd2l0Y2goJycpIGlz
ICIiCiBQQVNTIGNoYXJhY3RlclN3aXRjaCgnQScpIGlzICJBIgogUEFTUyBjaGFyYWN0ZXJTd2l0
Y2goJ2EnKSBpcyAiYSIKIFBBU1MgY2hhcmFjdGVyU3dpdGNoKCcxJykgaXMgIjEiCkBAIC0xOSw3
ICsxOSw3IEBAIFBBU1MgY2hhcmFjdGVyU3dpdGNoKC0xKSBpcyAiZGVmYXVsdCIKIFBBU1MgY2hh
cmFjdGVyU3dpdGNoKC0xMDAwMDAwMDAwKSBpcyAiZGVmYXVsdCIKIFBBU1MgY2hhcmFjdGVyU3dp
dGNoKDEwMDAwMDAwMDApIGlzICJkZWZhdWx0IgogUEFTUyBjaGFyYWN0ZXJTd2l0Y2goe30pIGlz
ICJkZWZhdWx0IgotUEFTUyBzcGFyc2VDaGFyYWN0ZXJTd2l0Y2goJ++/vScpIGlzICLvv70iCitQ
QVNTIHNwYXJzZUNoYXJhY3RlclN3aXRjaCgnJykgaXMgIiIKIFBBU1Mgc3BhcnNlQ2hhcmFjdGVy
U3dpdGNoKCdBJykgaXMgIkEiCiBQQVNTIHNwYXJzZUNoYXJhY3RlclN3aXRjaCgnYScpIGlzICJh
IgogUEFTUyBzcGFyc2VDaGFyYWN0ZXJTd2l0Y2goJzEnKSBpcyAiMSIKQEAgLTM1LDcgKzM1LDcg
QEAgUEFTUyBzcGFyc2VDaGFyYWN0ZXJTd2l0Y2goLTEpIGlzICJkZWZhdWx0IgogUEFTUyBzcGFy
c2VDaGFyYWN0ZXJTd2l0Y2goLTEwMDAwMDAwMDApIGlzICJkZWZhdWx0IgogUEFTUyBzcGFyc2VD
aGFyYWN0ZXJTd2l0Y2goMTAwMDAwMDAwMCkgaXMgImRlZmF1bHQiCiBQQVNTIHNwYXJzZUNoYXJh
Y3RlclN3aXRjaCh7fSkgaXMgImRlZmF1bHQiCi1QQVNTIHN0cmluZ1N3aXRjaCgn77+9JykgaXMg
Iu+/vSIKK1BBU1Mgc3RyaW5nU3dpdGNoKCcnKSBpcyAiIgogUEFTUyBzdHJpbmdTd2l0Y2goJ0En
KSBpcyAiQSIKIFBBU1Mgc3RyaW5nU3dpdGNoKCdhJykgaXMgImEiCiBQQVNTIHN0cmluZ1N3aXRj
aCgnMScpIGlzICIxIgpAQCAtNTMsNyArNTMsNyBAQCBQQVNTIHN0cmluZ1N3aXRjaCgtMSkgaXMg
ImRlZmF1bHQiCiBQQVNTIHN0cmluZ1N3aXRjaCgtMTAwMDAwMDAwMCkgaXMgImRlZmF1bHQiCiBQ
QVNTIHN0cmluZ1N3aXRjaCgxMDAwMDAwMDAwKSBpcyAiZGVmYXVsdCIKIFBBU1Mgc3RyaW5nU3dp
dGNoKHt9KSBpcyAiZGVmYXVsdCIKLVBBU1MgbnVtYmVyU3dpdGNoKCfvv70nKSBpcyAiZGVmYXVs
dCIKK1BBU1MgbnVtYmVyU3dpdGNoKCcnKSBpcyAiZGVmYXVsdCIKIFBBU1MgbnVtYmVyU3dpdGNo
KCdBJykgaXMgImRlZmF1bHQiCiBQQVNTIG51bWJlclN3aXRjaCgnYScpIGlzICJkZWZhdWx0Igog
UEFTUyBudW1iZXJTd2l0Y2goJzEnKSBpcyAiZGVmYXVsdCIKQEAgLTcxLDcgKzcxLDcgQEAgUEFT
UyBudW1iZXJTd2l0Y2goLTEpIGlzIC0xCiBQQVNTIG51bWJlclN3aXRjaCgtMTAwMDAwMDAwMCkg
aXMgImRlZmF1bHQiCiBQQVNTIG51bWJlclN3aXRjaCgxMDAwMDAwMDAwKSBpcyAiZGVmYXVsdCIK
IFBBU1MgbnVtYmVyU3dpdGNoKHt9KSBpcyAiZGVmYXVsdCIKLVBBU1Mgc3BhcnNlTnVtYmVyU3dp
dGNoKCfvv70nKSBpcyAiZGVmYXVsdCIKK1BBU1Mgc3BhcnNlTnVtYmVyU3dpdGNoKCcnKSBpcyAi
ZGVmYXVsdCIKIFBBU1Mgc3BhcnNlTnVtYmVyU3dpdGNoKCdBJykgaXMgImRlZmF1bHQiCiBQQVNT
IHNwYXJzZU51bWJlclN3aXRjaCgnYScpIGlzICJkZWZhdWx0IgogUEFTUyBzcGFyc2VOdW1iZXJT
d2l0Y2goJzEnKSBpcyAiZGVmYXVsdCIKQEAgLTg5LDcgKzg5LDcgQEAgUEFTUyBzcGFyc2VOdW1i
ZXJTd2l0Y2goLTEpIGlzIC0xCiBQQVNTIHNwYXJzZU51bWJlclN3aXRjaCgtMTAwMDAwMDAwMCkg
aXMgLTEwMDAwMDAwMDAKIFBBU1Mgc3BhcnNlTnVtYmVyU3dpdGNoKDEwMDAwMDAwMDApIGlzIDEw
MDAwMDAwMDAKIFBBU1Mgc3BhcnNlTnVtYmVyU3dpdGNoKHt9KSBpcyAiZGVmYXVsdCIKLVBBU1Mg
Z2VuZXJhbFN3aXRjaCgn77+9JykgaXMgIu+/vSIKK1BBU1MgZ2VuZXJhbFN3aXRjaCgnJykgaXMg
IiIKIFBBU1MgZ2VuZXJhbFN3aXRjaCgnQScpIGlzICJBIgogUEFTUyBnZW5lcmFsU3dpdGNoKCdh
JykgaXMgImEiCiBQQVNTIGdlbmVyYWxTd2l0Y2goJzEnKSBpcyAiMSIKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2Zhc3QvdG9rZW5pemVyL251bGwtaW4tdGV4dC1leHBlY3RlZC50eHQgYi9MYXlv
dXRUZXN0cy9mYXN0L3Rva2VuaXplci9udWxsLWluLXRleHQtZXhwZWN0ZWQudHh0Cm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLjdlZjIyZTlhNDMxYWQwMjcyNzEzYjcxZmRjODc5NDAxNmM4ZWYxMmYKLS0tIC9kZXYvbnVs
bAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L3Rva2VuaXplci9udWxsLWluLXRleHQtZXhwZWN0ZWQu
dHh0CkBAIC0wLDAgKzEgQEAKK1BBU1MKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvdG9r
ZW5pemVyL251bGwtaW4tdGV4dC5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC90b2tlbml6ZXIvbnVs
bC1pbi10ZXh0Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNjI2MjAwZDJiNzMyMDdjYWQ0ZjIxMTZjNTBhMDg2
ZjQ4Mjc5OGE3MQpHSVQgYmluYXJ5IHBhdGNoCmxpdGVyYWwgOTcKemNtV0c9V0MjeEN2TUVrMyR9
QXxjPEh9NF4mP3dLJE9VVzxTJVNvKXZGRChnNEVpUTQrJm5xZCkmJmYkRygmU1BBCmEwJkZzUkRX
JG11aj5SRlY2KHQmKSk/N0NGRmNTZjV3anMmQAoKbGl0ZXJhbCAwCkhjbVY/ZDAwMDAxCgpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC90b2tlbml6ZXIvbnVsbC14c3MtZXhwZWN0ZWQudHh0
IGIvTGF5b3V0VGVzdHMvZmFzdC90b2tlbml6ZXIvbnVsbC14c3MtZXhwZWN0ZWQudHh0Cm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLjI0NjJiNGIwMDRmZWNjMGU2Yzk4MGYwNGFkNDhiOWJhMTEyNjliMjAKLS0tIC9kZXYv
bnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L3Rva2VuaXplci9udWxsLXhzcy1leHBlY3RlZC50
eHQKQEAgLTAsMCArMSBAQAorYWxlcnQoJ0ZBSUwnKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2Zhc3QvdG9rZW5pemVyL251bGwteHNzLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L3Rva2VuaXpl
ci9udWxsLXhzcy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmE5MDAwZWY3ZGRlZGFlODQyNGRhOTZkNzQzMzc1
ZmVjOTQ2MmVhZTEKR0lUIGJpbmFyeSBwYXRjaApsaXRlcmFsIDEyNAp6Y21jQzFQRyVefEVHViV7
JXQ8WE8oTks0RF56PjJKdzZAVk5QNmk4ZSp9eGM/WCRsKFVuUnpNczwkNWBabUhETTUKcEEqc2JC
JmlRI0lNZm97RXlfI0dLSyE4bX5GUXFpTXpfQjxhd1czNXIpMHp1bUd5cSkmRCgoT1AKCmxpdGVy
YWwgMApIY21WP2QwMDAwMQoKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9m
YXN0L3RleHQvc3RyaXBOdWxsRnJvbVRleHQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvcGxh
dGZvcm0vbWFjL2Zhc3QvdGV4dC9zdHJpcE51bGxGcm9tVGV4dC1leHBlY3RlZC50eHQKaW5kZXgg
NmY5YmJjMmI5ZTU0M2I0ZjQ5NThiZDQ5YjUyNDgwMTcyMDQxMjNjZC4uNTE2OTRmNmM4YTU4ZjIx
NGYzMDEzZjc1YjI0ZDNkYzk5NzZjNzRjMiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZv
cm0vbWFjL2Zhc3QvdGV4dC9zdHJpcE51bGxGcm9tVGV4dC1leHBlY3RlZC50eHQKKysrIGIvTGF5
b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2Zhc3QvdGV4dC9zdHJpcE51bGxGcm9tVGV4dC1leHBlY3Rl
ZC50eHQKQEAgLTMsNiArMyw0IEBAIGxheWVyIGF0ICgwLDApIHNpemUgODAweDYwMAogbGF5ZXIg
YXQgKDAsMCkgc2l6ZSA4MDB4NjAwCiAgIFJlbmRlckJsb2NrIHtIVE1MfSBhdCAoMCwwKSBzaXpl
IDgwMHg2MDAKICAgICBSZW5kZXJCb2R5IHtCT0RZfSBhdCAoOCw4KSBzaXplIDc4NHg1ODQKLSAg
ICAgIFJlbmRlckJsb2NrIHtESVZ9IGF0ICgwLDApIHNpemUgNzg0eDIxIFtib3JkZXI6ICgxcHgg
c29saWQgI0ZGMDAwMCldCi0gICAgICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoMSwyKSBzaXpl
IDE2eDE4Ci0gICAgICAgICAgdGV4dCBydW4gYXQgKDEsMikgd2lkdGggMTY6ICJceHtGRkZEfSIK
KyAgICAgIFJlbmRlckJsb2NrIHtESVZ9IGF0ICgwLDApIHNpemUgNzg0eDIgW2JvcmRlcjogKDFw
eCBzb2xpZCAjRkYwMDAwKV0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3N0b3JhZ2UvZG9tc3Rv
cmFnZS9jb21wbGV4LXZhbHVlcy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2Rv
bXN0b3JhZ2UvY29tcGxleC12YWx1ZXMtZXhwZWN0ZWQudHh0CmluZGV4IDlhNzVlNDJlM2ZhNjQ4
MzIwNWU4NDY0YWUxMjBhMTI3NjY4ZjZhNmIuLjY5ZDc2NDQ3YzNhZjMxOGU0YjY1ZDVjMmYxN2I2
ZjE5ZjRiYzE0YzYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3N0b3JhZ2UvZG9tc3RvcmFnZS9j
b21wbGV4LXZhbHVlcy1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9kb21z
dG9yYWdlL2NvbXBsZXgtdmFsdWVzLWV4cGVjdGVkLnR4dApAQCAtODIsMjUgKzgyLDI1IEBAIFBB
U1Mgc3RvcmFnZS5nZXRJdGVtKCdmb285JykgaXMgIjIiCiAKIHN0b3JhZ2UuZm9vMTAgPSBrCiBQ
QVNTIHR5cGVvZiBzdG9yYWdlWydmb28xMCddIGlzICJzdHJpbmciCi1QQVNTIHN0b3JhZ2VbJ2Zv
bzEwJ10gaXMgIu6XgcO/7LCh77+9aGVsbG8iCitQQVNTIHN0b3JhZ2VbJ2ZvbzEwJ10gaXMgIu6X
gcO/7LChaGVsbG8iCiBQQVNTIHR5cGVvZiBzdG9yYWdlLmZvbzEwIGlzICJzdHJpbmciCi1QQVNT
IHN0b3JhZ2UuZm9vMTAgaXMgIu6XgcO/7LCh77+9aGVsbG8iCitQQVNTIHN0b3JhZ2UuZm9vMTAg
aXMgIu6XgcO/7LChaGVsbG8iCiBQQVNTIHR5cGVvZiBzdG9yYWdlLmdldEl0ZW0oJ2ZvbzEwJykg
aXMgInN0cmluZyIKLVBBU1Mgc3RvcmFnZS5nZXRJdGVtKCdmb28xMCcpIGlzICLul4HDv+ywoe+/
vWhlbGxvIgorUEFTUyBzdG9yYWdlLmdldEl0ZW0oJ2ZvbzEwJykgaXMgIu6XgcO/7LChaGVsbG8i
CiBzdG9yYWdlWydmb28xMSddID0gawogUEFTUyB0eXBlb2Ygc3RvcmFnZVsnZm9vMTEnXSBpcyAi
c3RyaW5nIgotUEFTUyBzdG9yYWdlWydmb28xMSddIGlzICLul4HDv+ywoe+/vWhlbGxvIgorUEFT
UyBzdG9yYWdlWydmb28xMSddIGlzICLul4HDv+ywoWhlbGxvIgogUEFTUyB0eXBlb2Ygc3RvcmFn
ZS5mb28xMSBpcyAic3RyaW5nIgotUEFTUyBzdG9yYWdlLmZvbzExIGlzICLul4HDv+ywoe+/vWhl
bGxvIgorUEFTUyBzdG9yYWdlLmZvbzExIGlzICLul4HDv+ywoWhlbGxvIgogUEFTUyB0eXBlb2Yg
c3RvcmFnZS5nZXRJdGVtKCdmb28xMScpIGlzICJzdHJpbmciCi1QQVNTIHN0b3JhZ2UuZ2V0SXRl
bSgnZm9vMTEnKSBpcyAi7peBw7/ssKHvv71oZWxsbyIKK1BBU1Mgc3RvcmFnZS5nZXRJdGVtKCdm
b28xMScpIGlzICLul4HDv+ywoWhlbGxvIgogc3RvcmFnZS5zZXRJdGVtKCdmb28xMicsIGspCiBQ
QVNTIHR5cGVvZiBzdG9yYWdlWydmb28xMiddIGlzICJzdHJpbmciCi1QQVNTIHN0b3JhZ2VbJ2Zv
bzEyJ10gaXMgIu6XgcO/7LCh77+9aGVsbG8iCitQQVNTIHN0b3JhZ2VbJ2ZvbzEyJ10gaXMgIu6X
gcO/7LChaGVsbG8iCiBQQVNTIHR5cGVvZiBzdG9yYWdlLmZvbzEyIGlzICJzdHJpbmciCi1QQVNT
IHN0b3JhZ2UuZm9vMTIgaXMgIu6XgcO/7LCh77+9aGVsbG8iCitQQVNTIHN0b3JhZ2UuZm9vMTIg
aXMgIu6XgcO/7LChaGVsbG8iCiBQQVNTIHR5cGVvZiBzdG9yYWdlLmdldEl0ZW0oJ2ZvbzEyJykg
aXMgInN0cmluZyIKLVBBU1Mgc3RvcmFnZS5nZXRJdGVtKCdmb28xMicpIGlzICLul4HDv+ywoe+/
vWhlbGxvIgorUEFTUyBzdG9yYWdlLmdldEl0ZW0oJ2ZvbzEyJykgaXMgIu6XgcO/7LChaGVsbG8i
CiAKIAogVGVzdGluZyBsb2NhbFN0b3JhZ2UKQEAgLTE4MiwyNSArMTgyLDI1IEBAIFBBU1Mgc3Rv
cmFnZS5nZXRJdGVtKCdmb285JykgaXMgIjIiCiAKIHN0b3JhZ2UuZm9vMTAgPSBrCiBQQVNTIHR5
cGVvZiBzdG9yYWdlWydmb28xMCddIGlzICJzdHJpbmciCi1QQVNTIHN0b3JhZ2VbJ2ZvbzEwJ10g
aXMgIu6XgcO/7LCh77+9aGVsbG8iCitQQVNTIHN0b3JhZ2VbJ2ZvbzEwJ10gaXMgIu6XgcO/7LCh
aGVsbG8iCiBQQVNTIHR5cGVvZiBzdG9yYWdlLmZvbzEwIGlzICJzdHJpbmciCi1QQVNTIHN0b3Jh
Z2UuZm9vMTAgaXMgIu6XgcO/7LCh77+9aGVsbG8iCitQQVNTIHN0b3JhZ2UuZm9vMTAgaXMgIu6X
gcO/7LChaGVsbG8iCiBQQVNTIHR5cGVvZiBzdG9yYWdlLmdldEl0ZW0oJ2ZvbzEwJykgaXMgInN0
cmluZyIKLVBBU1Mgc3RvcmFnZS5nZXRJdGVtKCdmb28xMCcpIGlzICLul4HDv+ywoe+/vWhlbGxv
IgorUEFTUyBzdG9yYWdlLmdldEl0ZW0oJ2ZvbzEwJykgaXMgIu6XgcO/7LChaGVsbG8iCiBzdG9y
YWdlWydmb28xMSddID0gawogUEFTUyB0eXBlb2Ygc3RvcmFnZVsnZm9vMTEnXSBpcyAic3RyaW5n
IgotUEFTUyBzdG9yYWdlWydmb28xMSddIGlzICLul4HDv+ywoe+/vWhlbGxvIgorUEFTUyBzdG9y
YWdlWydmb28xMSddIGlzICLul4HDv+ywoWhlbGxvIgogUEFTUyB0eXBlb2Ygc3RvcmFnZS5mb28x
MSBpcyAic3RyaW5nIgotUEFTUyBzdG9yYWdlLmZvbzExIGlzICLul4HDv+ywoe+/vWhlbGxvIgor
UEFTUyBzdG9yYWdlLmZvbzExIGlzICLul4HDv+ywoWhlbGxvIgogUEFTUyB0eXBlb2Ygc3RvcmFn
ZS5nZXRJdGVtKCdmb28xMScpIGlzICJzdHJpbmciCi1QQVNTIHN0b3JhZ2UuZ2V0SXRlbSgnZm9v
MTEnKSBpcyAi7peBw7/ssKHvv71oZWxsbyIKK1BBU1Mgc3RvcmFnZS5nZXRJdGVtKCdmb28xMScp
IGlzICLul4HDv+ywoWhlbGxvIgogc3RvcmFnZS5zZXRJdGVtKCdmb28xMicsIGspCiBQQVNTIHR5
cGVvZiBzdG9yYWdlWydmb28xMiddIGlzICJzdHJpbmciCi1QQVNTIHN0b3JhZ2VbJ2ZvbzEyJ10g
aXMgIu6XgcO/7LCh77+9aGVsbG8iCitQQVNTIHN0b3JhZ2VbJ2ZvbzEyJ10gaXMgIu6XgcO/7LCh
aGVsbG8iCiBQQVNTIHR5cGVvZiBzdG9yYWdlLmZvbzEyIGlzICJzdHJpbmciCi1QQVNTIHN0b3Jh
Z2UuZm9vMTIgaXMgIu6XgcO/7LCh77+9aGVsbG8iCitQQVNTIHN0b3JhZ2UuZm9vMTIgaXMgIu6X
gcO/7LChaGVsbG8iCiBQQVNTIHR5cGVvZiBzdG9yYWdlLmdldEl0ZW0oJ2ZvbzEyJykgaXMgInN0
cmluZyIKLVBBU1Mgc3RvcmFnZS5nZXRJdGVtKCdmb28xMicpIGlzICLul4HDv+ywoe+/vWhlbGxv
IgorUEFTUyBzdG9yYWdlLmdldEl0ZW0oJ2ZvbzEyJykgaXMgIu6XgcO/7LChaGVsbG8iCiBQQVNT
IHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCiAKIFRFU1QgQ09NUExFVEUKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL3N2Zy9kb20vZnV6ei1wYXRoLXBhcnNlci1leHBlY3RlZC50eHQgYi9MYXlv
dXRUZXN0cy9zdmcvZG9tL2Z1enotcGF0aC1wYXJzZXItZXhwZWN0ZWQudHh0CmluZGV4IGQ5MjVk
ZWM5ZjU4ZWRjMmMzZWY0MDE5YzE0ZDVjMmNlM2YxYWE3ZGMuLjNlODFkZjBiYjIyODZiNzIxZDFj
NDE3OWQyMzQ3ZjVmOTc2ZDU5NDcgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3N2Zy9kb20vZnV6
ei1wYXRoLXBhcnNlci1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvc3ZnL2RvbS9mdXp6
LXBhdGgtcGFyc2VyLWV4cGVjdGVkLnR4dApAQCAtNDU5LDcgKzQ1OSw3IEBAIFBhcnNlZCBhcyA0
IGNvbW1hbmQocykgW01DQ0NdOiBNMSwxUTIgOSw0IDEsczYsMyA2LDksczYgMCwwLDYsMSB6YzIs
MSA3IDAsMSA0LFoyCiBQYXJzZWQgYXMgMSBjb21tYW5kKHMpIFtNXTogTTEsMWE5LDIgNiAxIDIg
MiAyLHphOSAwIDIgOCwyLDMsMyBzNSw4LDggMSxIQzUgOCA1LDgsNCAyIGM4IDQgNSAyIDUgOSxs
MyA5LEg3IHM2IDIsMCAwIGE0IDksMSA2LDMsNywwLE02LAogQ291bGQgbm90IHBhcnNlOiAKIENv
dWxkIG5vdCBwYXJzZTogTQotQ291bGQgbm90IHBhcnNlOiBN77+9CitDb3VsZCBub3QgcGFyc2U6
IE0KIFBhcnNlZCBhcyAyIGNvbW1hbmQocykgW01aXTogTTEsMVowCiBQQVNTIHN1Y2Nlc3NmdWxs
eVBhcnNlZCBpcyB0cnVlCiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3N2Zy9kb20vcmdiLWNv
bG9yLXBhcnNlci1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9zdmcvZG9tL3JnYi1jb2xvci1w
YXJzZXItZXhwZWN0ZWQudHh0CmluZGV4IDJmNTc3ZWMxOTgxZTg3OWI3NGM1ZmQ1ZGU4YTE3Y2E5
ZmNlNDUwMmMuLjQwNDA4NWY3MmIyNzI4Njk4YWM1YTViMzhlMWM5MWEzYTVhOGNiNzUgMTAwNjQ0
Ci0tLSBhL0xheW91dFRlc3RzL3N2Zy9kb20vcmdiLWNvbG9yLXBhcnNlci1leHBlY3RlZC50eHQK
KysrIGIvTGF5b3V0VGVzdHMvc3ZnL2RvbS9yZ2ItY29sb3ItcGFyc2VyLWV4cGVjdGVkLnR4dApA
QCAtMjU0LDggKzI1NCw4IEBAIFRocmV3IGV4Y2VwdGlvbiBFcnJvcjogU1ZHX0lOVkFMSURfVkFM
VUVfRVJSOiBET00gU1ZHIEV4Y2VwdGlvbiAxOiByZ2IoNzErMSsoKTMzCiBUaHJldyBleGNlcHRp
b24gRXJyb3I6IFNWR19JTlZBTElEX1ZBTFVFX0VSUjogRE9NIFNWRyBFeGNlcHRpb24gMTogcmdi
KC4yNysKIFRocmV3IGV4Y2VwdGlvbiBFcnJvcjogU1ZHX0lOVkFMSURfVkFMVUVfRVJSOiBET00g
U1ZHIEV4Y2VwdGlvbiAxOiByZ2IoCiBUaHJldyBleGNlcHRpb24gRXJyb3I6IFNWR19JTlZBTElE
X1ZBTFVFX0VSUjogRE9NIFNWRyBFeGNlcHRpb24gMTogCi1UaHJldyBleGNlcHRpb24gRXJyb3I6
IFNWR19JTlZBTElEX1ZBTFVFX0VSUjogRE9NIFNWRyBFeGNlcHRpb24gMTog77+9Ci1UaHJldyBl
eGNlcHRpb24gRXJyb3I6IFNWR19JTlZBTElEX1ZBTFVFX0VSUjogRE9NIFNWRyBFeGNlcHRpb24g
MTogcmdiKO+/vSkKK1RocmV3IGV4Y2VwdGlvbiBFcnJvcjogU1ZHX0lOVkFMSURfVkFMVUVfRVJS
OiBET00gU1ZHIEV4Y2VwdGlvbiAxOiAKK1RocmV3IGV4Y2VwdGlvbiBFcnJvcjogU1ZHX0lOVkFM
SURfVkFMVUVfRVJSOiBET00gU1ZHIEV4Y2VwdGlvbiAxOiByZ2IoKQogUEFTUyBzdWNjZXNzZnVs
bHlQYXJzZWQgaXMgdHJ1ZQogCiBURVNUIENPTVBMRVRFCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy93ZWJzb2NrZXQvdGVzdHMvYmFkLXN1Yi1wcm90b2NvbC1jb250cm9sLWNoYXJzLWV4cGVjdGVk
LnR4dCBiL0xheW91dFRlc3RzL3dlYnNvY2tldC90ZXN0cy9iYWQtc3ViLXByb3RvY29sLWNvbnRy
b2wtY2hhcnMtZXhwZWN0ZWQudHh0CmluZGV4IDI4MzlhODY2MzJiMmNmODZlMzdhZTg3YmEwMDZi
Zjk0YzI1NTk0OTkuLjQ0NGVhNDBiNzUyZDhiYjk3YTYyYjFiNjRjYzc5Nzg3OGJhYjEyZmMgMTAw
NjQ0Ci0tLSBhL0xheW91dFRlc3RzL3dlYnNvY2tldC90ZXN0cy9iYWQtc3ViLXByb3RvY29sLWNv
bnRyb2wtY2hhcnMtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL3dlYnNvY2tldC90ZXN0
cy9iYWQtc3ViLXByb3RvY29sLWNvbnRyb2wtY2hhcnMtZXhwZWN0ZWQudHh0CkBAIC01LDcgKzUs
NyBAQCBUZXN0IFdlYlNvY2tldCBiYWQgc3ViLXByb3RvY29sIG5hbWVzIGJ5IGNvbnRyb2wgY2hh
cmFjdGVycy4KIAogT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBt
ZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgogCi1QQVNTIG5ldyBXZWJTb2Nr
ZXQoIndzOi8vMTI3LjAuMC4xOjg4ODAvc2ltcGxlIiwgIu+/vSIpIHRocmV3IGV4Y2VwdGlvbiBF
cnJvcjogU1lOVEFYX0VSUjogRE9NIEV4Y2VwdGlvbiAxMi4KK1BBU1MgbmV3IFdlYlNvY2tldCgi
d3M6Ly8xMjcuMC4wLjE6ODg4MC9zaW1wbGUiLCAiIikgdGhyZXcgZXhjZXB0aW9uIEVycm9yOiBT
WU5UQVhfRVJSOiBET00gRXhjZXB0aW9uIDEyLgogUEFTUyBuZXcgV2ViU29ja2V0KCJ3czovLzEy
Ny4wLjAuMTo4ODgwL3NpbXBsZSIsICIJIikgdGhyZXcgZXhjZXB0aW9uIEVycm9yOiBTWU5UQVhf
RVJSOiBET00gRXhjZXB0aW9uIDEyLgogUEFTUyBuZXcgV2ViU29ja2V0KCJ3czovLzEyNy4wLjAu
MTo4ODgwL3NpbXBsZSIsICIKICIpIHRocmV3IGV4Y2VwdGlvbiBTeW50YXhFcnJvcjogUGFyc2Ug
ZXJyb3IuCmRpZmYgLS1naXQgYS9XZWJDb3JlL0NoYW5nZUxvZyBiL1dlYkNvcmUvQ2hhbmdlTG9n
CmluZGV4IDY5YWU4OTAxODhlMjE5ZGE5N2QwZGM4MzQzZGU3ZWQxYjJiMTVjNzUuLmVlNmFjMDg2
OTZlYjk4ZTliOWVjOTBmODQ5M2Q5NDI4MjlkOTc5ZDUgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvQ2hh
bmdlTG9nCisrKyBiL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzYgQEAKKzIwMTAtMDgt
MDUgIEFkYW0gQmFydGggIDxhYmFydGhAd2Via2l0Lm9yZz4KKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBVKzAwMDAgaXMgdHVybmVkIHRvIFUrRkZGRCAo
cmVwbGFjZW1lbnQgY2hhcmFjdGVyKQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9NDIxMTIKKworICAgICAgICBUaGlzIHBhdGNoIGludHJvZHVjZXMgYW4g
aW50ZW50aW9uYWwgcGFyc2luZyBkaWZmZXJlbmNlIGZyb20gdGhlIEhUTUw1CisgICAgICAgIHBh
cnNpbmcgc3BlY2lmaWNpYXRpb24uICBUaGUgc3BlYyByZXF1aXJlcyB1cyB0byBjb252ZXJ0IE5V
TEwKKyAgICAgICAgY2hhcmFjdGVycyB0byBVK0ZGRkQsIGJ1dCBkb2luZyBzbyBjYXVzZXMgY29t
cGF0aWJpbGl0eSBpc3N1ZXMgd2l0aCBhCisgICAgICAgIG51bWJlciBvZiBzaXRlcywgaW5jbHVk
aW5nIFVTIEJhbmsuCisKKyAgICAgICAgSW4gdGhpcyBwYXRjaCwgd2Ugc3RyaXAgdGhlIG51bGwg
Y2hhcmFjdGVycyBpbnN0ZWFkIGluIGNlcnRhaW4gY2FzZXMuCisgICAgICAgIEZpcmVmb3ggaGFz
IG1hZGUgYSBjb3JyZXNwb25kaW5nIGNoYW5nZS4gIEFmdGVyIGdhdGhlcmluZyBjb21wYXRhYmls
aXR5CisgICAgICAgIGRhdGEsIHdlIGhvcGUgdG8gY29udmluY2UgdGhlIEhUTUwgV0cgdG8gYWRv
cHQgdGhpcyBjaGFuZ2UuCisKKyAgICAgICAgVGVzdHM6IGZhc3QvdG9rZW5pemVyL251bGwtaW4t
dGV4dC5odG1sCisgICAgICAgICAgICAgICBmYXN0L3Rva2VuaXplci9udWxsLXhzcy5odG1sCisK
KyAgICAgICAgKiBodG1sL0hUTUxUb2tlbml6ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SFRN
TFRva2VuaXplcjo6SFRNTFRva2VuaXplcik6CisgICAgICAgIChXZWJDb3JlOjpIVE1MVG9rZW5p
emVyOjpyZXNldCk6CisgICAgICAgICogaHRtbC9IVE1MVG9rZW5pemVyLmg6CisgICAgICAgIChX
ZWJDb3JlOjpIVE1MVG9rZW5pemVyOjpzZXRTa2lwTGVhZGluZ05ld0xpbmVGb3JMaXN0aW5nKToK
KyAgICAgICAgKFdlYkNvcmU6OkhUTUxUb2tlbml6ZXI6OnNob3VsZFNraXBOdWxsQ2hhcmFjdGVy
cyk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MVG9rZW5pemVyOjpzZXRTa2lwTnVsbENoYXJhY3Rl
cnMpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTFRva2VuaXplcjo6SW5wdXRTdHJlYW1QcmVwcm9j
ZXNzb3I6OklucHV0U3RyZWFtUHJlcHJvY2Vzc29yKToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxU
b2tlbml6ZXI6OklucHV0U3RyZWFtUHJlcHJvY2Vzc29yOjpwZWVrKToKKyAgICAgICAgKiBodG1s
L0hUTUxUcmVlQnVpbGRlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpIVE1MVHJlZUJ1aWxkZXI6
OnBhc3NUb2tlblRvTGVnYWN5UGFyc2VyKToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxUcmVlQnVp
bGRlcjo6Y29uc3RydWN0VHJlZUZyb21Ub2tlbik6CisgICAgICAgIChXZWJDb3JlOjpIVE1MVHJl
ZUJ1aWxkZXI6OnByb2Nlc3NTdGFydFRhZ0ZvckluQm9keSk6CisKIDIwMTAtMDgtMDUgIEZyYW7D
p29pcyBTYXVzc2V0ICA8c2F1c3NldEBnbWFpbC5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkg
S2VubmV0aCBSb2hkZSBDaHJpc3RpYW5zZW4uCmRpZmYgLS1naXQgYS9XZWJDb3JlL2h0bWwvSFRN
TFRva2VuaXplci5jcHAgYi9XZWJDb3JlL2h0bWwvSFRNTFRva2VuaXplci5jcHAKaW5kZXggYzgy
MzRlNDdhYzkyZTE4ZGVjNGQyMTQ4NGIwNGY1NTJlNzlmMDhmOC4uNGM2MTg1MTYxYTg5ZTkyNjc2
NDA4ZmU2ZTQyYTNjZTA0NDVlMDg4NSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9odG1sL0hUTUxUb2tl
bml6ZXIuY3BwCisrKyBiL1dlYkNvcmUvaHRtbC9IVE1MVG9rZW5pemVyLmNwcApAQCAtOTcsNiAr
OTcsNyBAQCBpbmxpbmUgYm9vbCBpc0VuZFRhZ0J1ZmZlcmluZ1N0YXRlKEhUTUxUb2tlbml6ZXI6
OlN0YXRlIHN0YXRlKQogfQogCiBIVE1MVG9rZW5pemVyOjpIVE1MVG9rZW5pemVyKCkKKyAgICA6
IG1faW5wdXRTdHJlYW1QcmVwcm9jZXNzb3IodGhpcykKIHsKICAgICByZXNldCgpOwogfQpAQCAt
MTExLDYgKzExMiw3IEBAIHZvaWQgSFRNTFRva2VuaXplcjo6cmVzZXQoKQogICAgIG1fdG9rZW4g
PSAwOwogICAgIG1fbGluZU51bWJlciA9IDA7CiAgICAgbV9za2lwTGVhZGluZ05ld0xpbmVGb3JM
aXN0aW5nID0gZmFsc2U7CisgICAgbV9zaG91bGRTa2lwTnVsbENoYXJhY3RlcnMgPSB0cnVlOwog
ICAgIG1fYWRkaXRpb25hbEFsbG93ZWRDaGFyYWN0ZXIgPSAnXDAnOwogfQogCmRpZmYgLS1naXQg
YS9XZWJDb3JlL2h0bWwvSFRNTFRva2VuaXplci5oIGIvV2ViQ29yZS9odG1sL0hUTUxUb2tlbml6
ZXIuaAppbmRleCA3ZWU5ZDQxNzQzOTY3OGQ1ODA3MjA2MzMxNTI2YjkxNjY0NmNkOWQwLi45OWQ2
MjJhMWYzNjEyZTZhYzVlYWFjNmRjYWVlZjRmOGMxOGVhODM4IDEwMDY0NAotLS0gYS9XZWJDb3Jl
L2h0bWwvSFRNTFRva2VuaXplci5oCisrKyBiL1dlYkNvcmUvaHRtbC9IVE1MVG9rZW5pemVyLmgK
QEAgLTEzMiwxNCArMTMyLDE4IEBAIHB1YmxpYzoKIAogICAgIC8vIEhhY2sgdG8gc2tpcCBsZWFk
aW5nIG5ld2xpbmUgaW4gPHByZT4vPGxpc3Rpbmc+IGZvciBhdXRob3JpbmcgZWFzZS4KICAgICAv
LyBodHRwOi8vd3d3LndoYXR3Zy5vcmcvc3BlY3Mvd2ViLWFwcHMvY3VycmVudC13b3JrL211bHRp
cGFnZS90b2tlbml6YXRpb24uaHRtbCNwYXJzaW5nLW1haW4taW5ib2R5Ci0gICAgdm9pZCBza2lw
TGVhZGluZ05ld0xpbmVGb3JMaXN0aW5nKCkgeyBtX3NraXBMZWFkaW5nTmV3TGluZUZvckxpc3Rp
bmcgPSB0cnVlOyB9CisgICAgdm9pZCBzZXRTa2lwTGVhZGluZ05ld0xpbmVGb3JMaXN0aW5nKGJv
b2wgdmFsdWUpIHsgbV9za2lwTGVhZGluZ05ld0xpbmVGb3JMaXN0aW5nID0gdmFsdWU7IH0KKwor
ICAgIGJvb2wgc2hvdWxkU2tpcE51bGxDaGFyYWN0ZXJzKCkgY29uc3QgeyByZXR1cm4gbV9zaG91
bGRTa2lwTnVsbENoYXJhY3RlcnM7IH0KKyAgICB2b2lkIHNldFNraXBOdWxsQ2hhcmFjdGVycyhi
b29sIHZhbHVlKSB7IG1fc2hvdWxkU2tpcE51bGxDaGFyYWN0ZXJzID0gdmFsdWU7IH0KIAogcHJp
dmF0ZToKICAgICAvLyBodHRwOi8vd3d3LndoYXR3Zy5vcmcvc3BlY3Mvd2ViLWFwcHMvY3VycmVu
dC13b3JrLyNwcmVwcm9jZXNzaW5nLXRoZS1pbnB1dC1zdHJlYW0KICAgICBjbGFzcyBJbnB1dFN0
cmVhbVByZXByb2Nlc3NvciA6IHB1YmxpYyBOb25jb3B5YWJsZSB7CiAgICAgcHVibGljOgotICAg
ICAgICBJbnB1dFN0cmVhbVByZXByb2Nlc3NvcigpCi0gICAgICAgICAgICA6IG1fbmV4dElucHV0
Q2hhcmFjdGVyKCdcMCcpCisgICAgICAgIElucHV0U3RyZWFtUHJlcHJvY2Vzc29yKEhUTUxUb2tl
bml6ZXIqIHRva2VuaXplcikKKyAgICAgICAgICAgIDogbV90b2tlbml6ZXIodG9rZW5pemVyKQor
ICAgICAgICAgICAgLCBtX25leHRJbnB1dENoYXJhY3RlcignXDAnKQogICAgICAgICAgICAgLCBt
X3NraXBOZXh0TmV3TGluZShmYWxzZSkKICAgICAgICAgewogICAgICAgICB9CkBAIC0xNTEsNiAr
MTU1LDcgQEAgcHJpdmF0ZToKICAgICAgICAgLy8gY2hhcmFjdGVycyBpbiB8c291cmNlfCAoYWZ0
ZXIgY29sbGFwc2luZyBcclxuLCBldGMpLgogICAgICAgICBBTFdBWVNfSU5MSU5FIGJvb2wgcGVl
ayhTZWdtZW50ZWRTdHJpbmcmIHNvdXJjZSwgaW50JiBsaW5lTnVtYmVyKQogICAgICAgICB7Cisg
ICAgICAgIFBlZWtBZ2FpbjoKICAgICAgICAgICAgIG1fbmV4dElucHV0Q2hhcmFjdGVyID0gKnNv
dXJjZTsKIAogICAgICAgICAgICAgLy8gRXZlcnkgYnJhbmNoIGluIHRoaXMgZnVuY3Rpb24gaXMg
ZXhwZW5zaXZlLCBzbyB3ZSBoYXZlIGEKQEAgLTE3OSw4ICsxODQsMTkgQEAgcHJpdmF0ZToKICAg
ICAgICAgICAgICAgICAvLyBhIG51bWJlciBvZiBzcGVjaWZpYyBjaGFyYWN0ZXIgdmFsdWVzIGFy
ZSBwYXJzZSBlcnJvcnMgYW5kIHNob3VsZCBiZSByZXBsYWNlZAogICAgICAgICAgICAgICAgIC8v
IGJ5IHRoZSByZXBsYWNlbWVudCBjaGFyYWN0ZXIuIFdlIHN1c3BlY3QgdGhpcyBpcyBhIHByb2Js
ZW0gd2l0aCB0aGUgc3BlYyBhcyBkb2luZwogICAgICAgICAgICAgICAgIC8vIHRoYXQgZmlsdGVy
aW5nIGJyZWFrcyBzdXJyb2dhdGUgcGFpciBoYW5kbGluZyBhbmQgY2F1c2VzIHVzIG5vdCB0byBt
YXRjaCBNaW5lZmllbGQuCi0gICAgICAgICAgICAgICAgaWYgKG1fbmV4dElucHV0Q2hhcmFjdGVy
ID09ICdcMCcgJiYgIXNob3VsZFRyZWF0TnVsbEFzRW5kT2ZGaWxlTWFya2VyKHNvdXJjZSkpCisg
ICAgICAgICAgICAgICAgaWYgKG1fbmV4dElucHV0Q2hhcmFjdGVyID09ICdcMCcgJiYgIXNob3Vs
ZFRyZWF0TnVsbEFzRW5kT2ZGaWxlTWFya2VyKHNvdXJjZSkpIHsKKyAgICAgICAgICAgICAgICAg
ICAgaWYgKG1fdG9rZW5pemVyLT5zaG91bGRTa2lwTnVsbENoYXJhY3RlcnMoKQorICAgICAgICAg
ICAgICAgICAgICAgICAgJiYgKG1fdG9rZW5pemVyLT5zdGF0ZSgpID09IERhdGFTdGF0ZQorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIHx8IG1fdG9rZW5pemVyLT5zdGF0ZSgpID09IFJDREFU
QVN0YXRlCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgfHwgbV90b2tlbml6ZXItPnN0YXRl
KCkgPT0gUkFXVEVYVFN0YXRlCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgfHwgbV90b2tl
bml6ZXItPnN0YXRlKCkgPT0gUExBSU5URVhUU3RhdGUpKSB7CisgICAgICAgICAgICAgICAgICAg
ICAgICBzb3VyY2UuYWR2YW5jZVBhc3ROb25OZXdsaW5lKCk7CisgICAgICAgICAgICAgICAgICAg
ICAgICBpZiAoc291cmNlLmlzRW1wdHkoKSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBy
ZXR1cm4gZmFsc2U7CisgICAgICAgICAgICAgICAgICAgICAgICBnb3RvIFBlZWtBZ2FpbjsKKyAg
ICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICBtX25leHRJbnB1dENoYXJh
Y3RlciA9IDB4RkZGRDsKKyAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICB9CiAgICAgICAg
ICAgICByZXR1cm4gdHJ1ZTsKICAgICAgICAgfQpAQCAtMjAyLDYgKzIxOCw4IEBAIHByaXZhdGU6
CiAgICAgICAgICAgICByZXR1cm4gc291cmNlLmlzQ2xvc2VkKCkgJiYgc291cmNlLmxlbmd0aCgp
ID09IDE7CiAgICAgICAgIH0KIAorICAgICAgICBIVE1MVG9rZW5pemVyKiBtX3Rva2VuaXplcjsK
KwogICAgICAgICAvLyBodHRwOi8vd3d3LndoYXR3Zy5vcmcvc3BlY3Mvd2ViLWFwcHMvY3VycmVu
dC13b3JrLyNuZXh0LWlucHV0LWNoYXJhY3RlcgogICAgICAgICBVQ2hhciBtX25leHRJbnB1dENo
YXJhY3RlcjsKICAgICAgICAgYm9vbCBtX3NraXBOZXh0TmV3TGluZTsKQEAgLTI0Miw2ICsyNjAs
NyBAQCBwcml2YXRlOgogICAgIGludCBtX2xpbmVOdW1iZXI7CiAKICAgICBib29sIG1fc2tpcExl
YWRpbmdOZXdMaW5lRm9yTGlzdGluZzsKKyAgICBib29sIG1fc2hvdWxkU2tpcE51bGxDaGFyYWN0
ZXJzOwogCiAgICAgLy8gaHR0cDovL3d3dy53aGF0d2cub3JnL3NwZWNzL3dlYi1hcHBzL2N1cnJl
bnQtd29yay8jdGVtcG9yYXJ5LWJ1ZmZlcgogICAgIFZlY3RvcjxVQ2hhciwgMzI+IG1fdGVtcG9y
YXJ5QnVmZmVyOwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9odG1sL0hUTUxUcmVlQnVpbGRlci5jcHAg
Yi9XZWJDb3JlL2h0bWwvSFRNTFRyZWVCdWlsZGVyLmNwcAppbmRleCAwZTBkMjIwODk1NmJmMzUy
YjQ3ZDEwMDViMjc1MGVkMGI3YTM5YTkzLi42ZjgyNDg5N2Y4MTUyZTE1YWY4YWI1NzA4ODQwNGU2
M2EzNWQzZGY5IDEwMDY0NAotLS0gYS9XZWJDb3JlL2h0bWwvSFRNTFRyZWVCdWlsZGVyLmNwcAor
KysgYi9XZWJDb3JlL2h0bWwvSFRNTFRyZWVCdWlsZGVyLmNwcApAQCAtNDY5LDcgKzQ2OSw3IEBA
IHZvaWQgSFRNTFRyZWVCdWlsZGVyOjpwYXNzVG9rZW5Ub0xlZ2FjeVBhcnNlcihIVE1MVG9rZW4m
IHRva2VuKQogICAgICAgICAgICAgbV9sYXN0U2NyaXB0RWxlbWVudCA9IHN0YXRpY19wb2ludGVy
X2Nhc3Q8RWxlbWVudD4ocmVzdWx0KTsKICAgICAgICAgICAgIG1fbGFzdFNjcmlwdEVsZW1lbnRT
dGFydExpbmUgPSBtX3Rva2VuaXplci0+bGluZU51bWJlcigpOwogICAgICAgICB9IGVsc2UgaWYg
KG9sZFN0eWxlVG9rZW4udGFnTmFtZSA9PSBwcmVUYWcgfHwgb2xkU3R5bGVUb2tlbi50YWdOYW1l
ID09IGxpc3RpbmdUYWcpCi0gICAgICAgICAgICBtX3Rva2VuaXplci0+c2tpcExlYWRpbmdOZXdM
aW5lRm9yTGlzdGluZygpOworICAgICAgICAgICAgbV90b2tlbml6ZXItPnNldFNraXBMZWFkaW5n
TmV3TGluZUZvckxpc3RpbmcodHJ1ZSk7CiAgICAgICAgIGVsc2UKICAgICAgICAgICAgIG1fdG9r
ZW5pemVyLT5zZXRTdGF0ZShhZGp1c3RlZExleGVyU3RhdGUobV90b2tlbml6ZXItPnN0YXRlKCks
IG9sZFN0eWxlVG9rZW4udGFnTmFtZSwgbV9kb2N1bWVudC0+ZnJhbWUoKSkpOwogICAgIH0gZWxz
ZSBpZiAodG9rZW4udHlwZSgpID09IEhUTUxUb2tlbjo6RW5kVGFnKSB7CkBAIC01MDksNiArNTA5
LDExIEBAIHZvaWQgSFRNTFRyZWVCdWlsZGVyOjpjb25zdHJ1Y3RUcmVlRnJvbVRva2VuKEhUTUxU
b2tlbiYgcmF3VG9rZW4pCiAKICAgICBBdG9taWNIVE1MVG9rZW4gdG9rZW4ocmF3VG9rZW4pOwog
ICAgIHByb2Nlc3NUb2tlbih0b2tlbik7CisKKyAgICAvLyBTd2FsbG93aW5nIFUrMDAwMCBjaGFy
YWN0ZXJzIGlzbid0IGluIHRoZSBIVE1MNSBzcGVjLCBidXQgdHVybmluZyBhbGwKKyAgICAvLyB0
aGUgVSswMDAwIGNoYXJhY3RlcnMgaW50byByZXBsYWNlbWVudCBjaGFyYWN0ZXJzIGhhcyBjb21w
YXRpYmlsaXR5CisgICAgLy8gcHJvYmxlbXMgcHJvYmxlbXMuCisgICAgbV90b2tlbml6ZXItPnNl
dFNraXBOdWxsQ2hhcmFjdGVycyhtX2luc2VydGlvbk1vZGUgIT0gVGV4dE1vZGUgJiYgbV9pbnNl
cnRpb25Nb2RlICE9IEluRm9yZWlnbkNvbnRlbnRNb2RlKTsKIH0KIAogdm9pZCBIVE1MVHJlZUJ1
aWxkZXI6OnByb2Nlc3NUb2tlbihBdG9taWNIVE1MVG9rZW4mIHRva2VuKQpAQCAtODQ4LDcgKzg1
Myw3IEBAIHZvaWQgSFRNTFRyZWVCdWlsZGVyOjpwcm9jZXNzU3RhcnRUYWdGb3JJbkJvZHkoQXRv
bWljSFRNTFRva2VuJiB0b2tlbikKICAgICBpZiAodG9rZW4ubmFtZSgpID09IHByZVRhZyB8fCB0
b2tlbi5uYW1lKCkgPT0gbGlzdGluZ1RhZykgewogICAgICAgICBwcm9jZXNzRmFrZVBFbmRUYWdJ
ZlBJbkJ1dHRvblNjb3BlKCk7CiAgICAgICAgIG1fdHJlZS5pbnNlcnRIVE1MRWxlbWVudCh0b2tl
bik7Ci0gICAgICAgIG1fdG9rZW5pemVyLT5za2lwTGVhZGluZ05ld0xpbmVGb3JMaXN0aW5nKCk7
CisgICAgICAgIG1fdG9rZW5pemVyLT5zZXRTa2lwTGVhZGluZ05ld0xpbmVGb3JMaXN0aW5nKHRy
dWUpOwogICAgICAgICBtX2ZyYW1lc2V0T2sgPSBmYWxzZTsKICAgICAgICAgcmV0dXJuOwogICAg
IH0KQEAgLTk2OCw3ICs5NzMsNyBAQCB2b2lkIEhUTUxUcmVlQnVpbGRlcjo6cHJvY2Vzc1N0YXJ0
VGFnRm9ySW5Cb2R5KEF0b21pY0hUTUxUb2tlbiYgdG9rZW4pCiAgICAgfQogICAgIGlmICh0b2tl
bi5uYW1lKCkgPT0gdGV4dGFyZWFUYWcpIHsKICAgICAgICAgbV90cmVlLmluc2VydEhUTUxFbGVt
ZW50KHRva2VuKTsKLSAgICAgICAgbV90b2tlbml6ZXItPnNraXBMZWFkaW5nTmV3TGluZUZvckxp
c3RpbmcoKTsKKyAgICAgICAgbV90b2tlbml6ZXItPnNldFNraXBMZWFkaW5nTmV3TGluZUZvckxp
c3RpbmcodHJ1ZSk7CiAgICAgICAgIG1fdG9rZW5pemVyLT5zZXRTdGF0ZShIVE1MVG9rZW5pemVy
OjpSQ0RBVEFTdGF0ZSk7CiAgICAgICAgIG1fb3JpZ2luYWxJbnNlcnRpb25Nb2RlID0gbV9pbnNl
cnRpb25Nb2RlOwogICAgICAgICBtX2ZyYW1lc2V0T2sgPSBmYWxzZTsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>63620</attachid>
            <date>2010-08-05 12:45:03 -0700</date>
            <delta_ts>2010-08-05 15:35:53 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-42112-20100805124502.patch</filename>
            <type>text/plain</type>
            <size>22377</size>
            <attacher name="Adam Barth">abarth</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCAyNzMwZWIzMWY2OWI1MDhkMzBjNWU3ZDQ5ZWUzMjBlZWUzOGQyYzA5Li43NTJjMDk0
YmU5YWVkNzExN2FjODk3NzE2NDhjZWVmMjk2MDY3MTI3IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzEgQEAK
KzIwMTAtMDgtMDUgIEFkYW0gQmFydGggIDxhYmFydGhAd2Via2l0Lm9yZz4KKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBVKzAwMDAgaXMgdHVybmVkIHRv
IFUrRkZGRCAocmVwbGFjZW1lbnQgY2hhcmFjdGVyKQorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDIxMTIKKworICAgICAgICBVcGRhdGUgdGVzdCByZXN1
bHRzIHRvIHNob3cgbnVsbCBzdHJpcHBpbmcuICBUaGVzZSBjaGFuZ2VzIGFyZSBtb3N0bHkKKyAg
ICAgICAgZ29pbmcgYmFjayB0byB0aGUgb2xkIHJlc3VsdHMgd2UgaGFkIGJlZm9yZSB3ZSBhZGRl
ZCB0aGUgRkZGRAorICAgICAgICByZXBsYWNlbWVudC4KKworICAgICAgICAqIGZhc3QvY2FudmFz
L2NhbnZhcy1nZXRDb250ZXh0LWludmFsaWQtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIGZhc3Qv
ZG9tL3N0cmlwTnVsbEZyb21UZXh0Tm9kZXMtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIGZhc3Qv
anMvbnVsbC1jaGFyLWluLXN0cmluZy1leHBlY3RlZC50eHQ6CisgICAgICAgICogZmFzdC9qcy9z
d2l0Y2gtYmVoYXZpb3VyLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBmYXN0L3Rva2VuaXplci9u
dWxsLWluLXRleHQtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L3Rva2VuaXpl
ci9udWxsLWluLXRleHQuaHRtbDogQWRkZWQuCisgICAgICAgICogZmFzdC90b2tlbml6ZXIvbnVs
bC14c3MtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L3Rva2VuaXplci9udWxs
LXhzcy5odG1sOiBBZGRlZC4KKyAgICAgICAgICAgIC0gVGhlIG1haW4gcmlzayB3aXRoIHN0cmlw
cGluZyBudWxsIGNoYXJhY3RlcnMgaXMgdGhhdCB0aGV5J2xsIGJlCisgICAgICAgICAgICAgIHVz
ZWQgaW4gWFNTIGF0dGFja3MuICBUaGlzIHRlc3Qgc2hvd3MgdGhhdCB3ZSBkb24ndCBzdHJpcCBu
dWxsCisgICAgICAgICAgICAgIGNoYXJhY3RlcnMgZnJvbSB0YWcgbmFtZXMuCisgICAgICAgICog
cGxhdGZvcm0vbWFjL2Zhc3QvdGV4dC9zdHJpcE51bGxGcm9tVGV4dC1leHBlY3RlZC50eHQ6Cisg
ICAgICAgICogc3RvcmFnZS9kb21zdG9yYWdlL2NvbXBsZXgtdmFsdWVzLWV4cGVjdGVkLnR4dDoK
KyAgICAgICAgKiBzdmcvZG9tL2Z1enotcGF0aC1wYXJzZXItZXhwZWN0ZWQudHh0OgorICAgICAg
ICAqIHN2Zy9kb20vcmdiLWNvbG9yLXBhcnNlci1leHBlY3RlZC50eHQ6CisgICAgICAgICogd2Vi
c29ja2V0L3Rlc3RzL2JhZC1zdWItcHJvdG9jb2wtY29udHJvbC1jaGFycy1leHBlY3RlZC50eHQ6
CisKIDIwMTAtMDgtMDUgIEplcmVteSBPcmxvdyAgPGpvcmxvd0BjaHJvbWl1bS5vcmc+CiAKICAg
ICAgICAgRG9uJ3Qgc2tpcCBzcGVlY2ggdGVzdHMuCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9m
YXN0L2NhbnZhcy9jYW52YXMtZ2V0Q29udGV4dC1pbnZhbGlkLWV4cGVjdGVkLnR4dCBiL0xheW91
dFRlc3RzL2Zhc3QvY2FudmFzL2NhbnZhcy1nZXRDb250ZXh0LWludmFsaWQtZXhwZWN0ZWQudHh0
CmluZGV4IDM0YjE0OWRiNzhjMTdmZmI5YmFkZTdkMmI4MDhjMTNiMDU1NzM4NzQuLjJmMjRlOGVk
MDRkYmZhYjNmMjAwOTliZjZlNzI1Y2NmMjNiZDVhYmIgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3Rz
L2Zhc3QvY2FudmFzL2NhbnZhcy1nZXRDb250ZXh0LWludmFsaWQtZXhwZWN0ZWQudHh0CisrKyBi
L0xheW91dFRlc3RzL2Zhc3QvY2FudmFzL2NhbnZhcy1nZXRDb250ZXh0LWludmFsaWQtZXhwZWN0
ZWQudHh0CkBAIC02LDcgKzYsNyBAQCBPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMg
b2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURQogUEFTUyBjYW52
YXMuZ2V0Q29udGV4dCgnJykgaXMgbnVsbAogUEFTUyBjYW52YXMuZ2V0Q29udGV4dCgnMmQjJykg
aXMgbnVsbAogUEFTUyBjYW52YXMuZ2V0Q29udGV4dCgnVGhpcyBpcyBjbGVhcmx5IG5vdCBhIHZh
bGlkIGNvbnRleHQgbmFtZS4nKSBpcyBudWxsCi1QQVNTIGNhbnZhcy5nZXRDb250ZXh0KCcyZO+/
vScpIGlzIG51bGwKK1BBU1MgY2FudmFzLmdldENvbnRleHQoJzJkJykgaXMgbnVsbAogUEFTUyBj
YW52YXMuZ2V0Q29udGV4dCgnMu+9hCcpIGlzIG51bGwKIFBBU1MgY2FudmFzLmdldENvbnRleHQo
JzJEJykgaXMgbnVsbAogUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vc3RyaXBOdWxsRnJvbVRleHROb2Rlcy1leHBlY3RlZC50
eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9zdHJpcE51bGxGcm9tVGV4dE5vZGVzLWV4cGVjdGVk
LnR4dAppbmRleCAzNzA5NGExYTBkN2NmYjZmM2ZkMDU0YjA2NzYzZTIyMDNmNGY5MGNiLi4wOTA4
YjI0Njg2MzgwZGNhNzU3ZWNiZDIxNTc0MDNjZDkyNWFjYWY5IDEwMDY0NAotLS0gYS9MYXlvdXRU
ZXN0cy9mYXN0L2RvbS9zdHJpcE51bGxGcm9tVGV4dE5vZGVzLWV4cGVjdGVkLnR4dAorKysgYi9M
YXlvdXRUZXN0cy9mYXN0L2RvbS9zdHJpcE51bGxGcm9tVGV4dE5vZGVzLWV4cGVjdGVkLnR4dApA
QCAtMSwyICsxLDIgQEAKLe+/ve+/ve+/ve+/ve+/ve+/ve+/ve+/ve+/vWhlbGzvv73vv73vv73v
v73vv71vCi1UaGUgbnVsbCBjaGFyYWN0ZXJzIHNob3VsZCBiZSBzdHJpcHBlZCBvdXQgb2YgdGhl
IHN0cmluZyBhYm92ZSBhbmQgaXQgc2hvdWxkIGhhdmUgYSBsZW5ndGggb2YgNS4gQW5kIHRoZSBE
T00gdGhpbmtzIHRoZSBsZW5ndGggaXMuLi4xOSA6LSgKK2hlbGxvCitUaGUgbnVsbCBjaGFyYWN0
ZXJzIHNob3VsZCBiZSBzdHJpcHBlZCBvdXQgb2YgdGhlIHN0cmluZyBhYm92ZSBhbmQgaXQgc2hv
dWxkIGhhdmUgYSBsZW5ndGggb2YgNS4gQW5kIHRoZSBET00gdGhpbmtzIHRoZSBsZW5ndGggaXMu
Li41IQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9qcy9udWxsLWNoYXItaW4tc3RyaW5n
LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvanMvbnVsbC1jaGFyLWluLXN0cmluZy1l
eHBlY3RlZC50eHQKaW5kZXggNmQyOGU2NGI4MmI4M2E2Nzg1MTJkMDM2OTgxYjM5YWY4ZGJlYjAy
Zi4uODQ0Mzc1NzNiNTQ0NmRmY2NkYjc3NDE3OTNkNmNjYzBiMTdkYzQ2NyAxMDA2NDQKLS0tIGEv
TGF5b3V0VGVzdHMvZmFzdC9qcy9udWxsLWNoYXItaW4tc3RyaW5nLWV4cGVjdGVkLnR4dAorKysg
Yi9MYXlvdXRUZXN0cy9mYXN0L2pzL251bGwtY2hhci1pbi1zdHJpbmctZXhwZWN0ZWQudHh0CkBA
IC0zLDcgKzMsNyBAQCBUaGlzIHRlc3QgY2hlY2tzIHRoYXQgbnVsbCBjaGFyYWN0ZXJzIGFyZSBh
bGxvd2VkIGluIEphdmFTY3JpcHQgc3RyaW5ncywgcmF0aGVyCiBPbiBzdWNjZXNzLCB5b3Ugd2ls
bCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01Q
TEVURSIuCiAKIAotUEFTUyBTdHJpbmcoIu+/vSIpLmxlbmd0aCBpcyAxCitQQVNTIFN0cmluZygi
IikubGVuZ3RoIGlzIDEKIFBBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKIAogVEVTVCBD
T01QTEVURQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9qcy9zd2l0Y2gtYmVoYXZpb3Vy
LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvanMvc3dpdGNoLWJlaGF2aW91ci1leHBl
Y3RlZC50eHQKaW5kZXggNGZlZGIxOWQ3NzI2ODk2YTgzMTFlYWQyM2QwMGZkYjJhOWYyODdiYS4u
ZjAyZjA5MTM3ZTE4MTQyOGNmMzNiOThjMzI2NTE1NjM0NTYzODRlOSAxMDA2NDQKLS0tIGEvTGF5
b3V0VGVzdHMvZmFzdC9qcy9zd2l0Y2gtYmVoYXZpb3VyLWV4cGVjdGVkLnR4dAorKysgYi9MYXlv
dXRUZXN0cy9mYXN0L2pzL3N3aXRjaC1iZWhhdmlvdXItZXhwZWN0ZWQudHh0CkBAIC0zLDcgKzMs
NyBAQCBUaGlzIHRlc3QgY292ZXJzIHRoZSBjb3JyZWN0bmVzcyBhbmQgYmVoYXZpb3VyIG9mIHN3
aXRjaCBzdGF0ZW1lbnRzLgogT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQ
QVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgogCiAKLVBBU1MgY2hh
cmFjdGVyU3dpdGNoKCfvv70nKSBpcyAi77+9IgorUEFTUyBjaGFyYWN0ZXJTd2l0Y2goJycpIGlz
ICIiCiBQQVNTIGNoYXJhY3RlclN3aXRjaCgnQScpIGlzICJBIgogUEFTUyBjaGFyYWN0ZXJTd2l0
Y2goJ2EnKSBpcyAiYSIKIFBBU1MgY2hhcmFjdGVyU3dpdGNoKCcxJykgaXMgIjEiCkBAIC0xOSw3
ICsxOSw3IEBAIFBBU1MgY2hhcmFjdGVyU3dpdGNoKC0xKSBpcyAiZGVmYXVsdCIKIFBBU1MgY2hh
cmFjdGVyU3dpdGNoKC0xMDAwMDAwMDAwKSBpcyAiZGVmYXVsdCIKIFBBU1MgY2hhcmFjdGVyU3dp
dGNoKDEwMDAwMDAwMDApIGlzICJkZWZhdWx0IgogUEFTUyBjaGFyYWN0ZXJTd2l0Y2goe30pIGlz
ICJkZWZhdWx0IgotUEFTUyBzcGFyc2VDaGFyYWN0ZXJTd2l0Y2goJ++/vScpIGlzICLvv70iCitQ
QVNTIHNwYXJzZUNoYXJhY3RlclN3aXRjaCgnJykgaXMgIiIKIFBBU1Mgc3BhcnNlQ2hhcmFjdGVy
U3dpdGNoKCdBJykgaXMgIkEiCiBQQVNTIHNwYXJzZUNoYXJhY3RlclN3aXRjaCgnYScpIGlzICJh
IgogUEFTUyBzcGFyc2VDaGFyYWN0ZXJTd2l0Y2goJzEnKSBpcyAiMSIKQEAgLTM1LDcgKzM1LDcg
QEAgUEFTUyBzcGFyc2VDaGFyYWN0ZXJTd2l0Y2goLTEpIGlzICJkZWZhdWx0IgogUEFTUyBzcGFy
c2VDaGFyYWN0ZXJTd2l0Y2goLTEwMDAwMDAwMDApIGlzICJkZWZhdWx0IgogUEFTUyBzcGFyc2VD
aGFyYWN0ZXJTd2l0Y2goMTAwMDAwMDAwMCkgaXMgImRlZmF1bHQiCiBQQVNTIHNwYXJzZUNoYXJh
Y3RlclN3aXRjaCh7fSkgaXMgImRlZmF1bHQiCi1QQVNTIHN0cmluZ1N3aXRjaCgn77+9JykgaXMg
Iu+/vSIKK1BBU1Mgc3RyaW5nU3dpdGNoKCcnKSBpcyAiIgogUEFTUyBzdHJpbmdTd2l0Y2goJ0En
KSBpcyAiQSIKIFBBU1Mgc3RyaW5nU3dpdGNoKCdhJykgaXMgImEiCiBQQVNTIHN0cmluZ1N3aXRj
aCgnMScpIGlzICIxIgpAQCAtNTMsNyArNTMsNyBAQCBQQVNTIHN0cmluZ1N3aXRjaCgtMSkgaXMg
ImRlZmF1bHQiCiBQQVNTIHN0cmluZ1N3aXRjaCgtMTAwMDAwMDAwMCkgaXMgImRlZmF1bHQiCiBQ
QVNTIHN0cmluZ1N3aXRjaCgxMDAwMDAwMDAwKSBpcyAiZGVmYXVsdCIKIFBBU1Mgc3RyaW5nU3dp
dGNoKHt9KSBpcyAiZGVmYXVsdCIKLVBBU1MgbnVtYmVyU3dpdGNoKCfvv70nKSBpcyAiZGVmYXVs
dCIKK1BBU1MgbnVtYmVyU3dpdGNoKCcnKSBpcyAiZGVmYXVsdCIKIFBBU1MgbnVtYmVyU3dpdGNo
KCdBJykgaXMgImRlZmF1bHQiCiBQQVNTIG51bWJlclN3aXRjaCgnYScpIGlzICJkZWZhdWx0Igog
UEFTUyBudW1iZXJTd2l0Y2goJzEnKSBpcyAiZGVmYXVsdCIKQEAgLTcxLDcgKzcxLDcgQEAgUEFT
UyBudW1iZXJTd2l0Y2goLTEpIGlzIC0xCiBQQVNTIG51bWJlclN3aXRjaCgtMTAwMDAwMDAwMCkg
aXMgImRlZmF1bHQiCiBQQVNTIG51bWJlclN3aXRjaCgxMDAwMDAwMDAwKSBpcyAiZGVmYXVsdCIK
IFBBU1MgbnVtYmVyU3dpdGNoKHt9KSBpcyAiZGVmYXVsdCIKLVBBU1Mgc3BhcnNlTnVtYmVyU3dp
dGNoKCfvv70nKSBpcyAiZGVmYXVsdCIKK1BBU1Mgc3BhcnNlTnVtYmVyU3dpdGNoKCcnKSBpcyAi
ZGVmYXVsdCIKIFBBU1Mgc3BhcnNlTnVtYmVyU3dpdGNoKCdBJykgaXMgImRlZmF1bHQiCiBQQVNT
IHNwYXJzZU51bWJlclN3aXRjaCgnYScpIGlzICJkZWZhdWx0IgogUEFTUyBzcGFyc2VOdW1iZXJT
d2l0Y2goJzEnKSBpcyAiZGVmYXVsdCIKQEAgLTg5LDcgKzg5LDcgQEAgUEFTUyBzcGFyc2VOdW1i
ZXJTd2l0Y2goLTEpIGlzIC0xCiBQQVNTIHNwYXJzZU51bWJlclN3aXRjaCgtMTAwMDAwMDAwMCkg
aXMgLTEwMDAwMDAwMDAKIFBBU1Mgc3BhcnNlTnVtYmVyU3dpdGNoKDEwMDAwMDAwMDApIGlzIDEw
MDAwMDAwMDAKIFBBU1Mgc3BhcnNlTnVtYmVyU3dpdGNoKHt9KSBpcyAiZGVmYXVsdCIKLVBBU1Mg
Z2VuZXJhbFN3aXRjaCgn77+9JykgaXMgIu+/vSIKK1BBU1MgZ2VuZXJhbFN3aXRjaCgnJykgaXMg
IiIKIFBBU1MgZ2VuZXJhbFN3aXRjaCgnQScpIGlzICJBIgogUEFTUyBnZW5lcmFsU3dpdGNoKCdh
JykgaXMgImEiCiBQQVNTIGdlbmVyYWxTd2l0Y2goJzEnKSBpcyAiMSIKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2Zhc3QvdG9rZW5pemVyL251bGwtaW4tdGV4dC1leHBlY3RlZC50eHQgYi9MYXlv
dXRUZXN0cy9mYXN0L3Rva2VuaXplci9udWxsLWluLXRleHQtZXhwZWN0ZWQudHh0Cm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLjdlZjIyZTlhNDMxYWQwMjcyNzEzYjcxZmRjODc5NDAxNmM4ZWYxMmYKLS0tIC9kZXYvbnVs
bAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L3Rva2VuaXplci9udWxsLWluLXRleHQtZXhwZWN0ZWQu
dHh0CkBAIC0wLDAgKzEgQEAKK1BBU1MKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvdG9r
ZW5pemVyL251bGwtaW4tdGV4dC5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC90b2tlbml6ZXIvbnVs
bC1pbi10ZXh0Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNjI2MjAwZDJiNzMyMDdjYWQ0ZjIxMTZjNTBhMDg2
ZjQ4Mjc5OGE3MQpHSVQgYmluYXJ5IHBhdGNoCmxpdGVyYWwgOTcKemNtV0c9V0MjeEN2TUVrMyR9
QXxjPEh9NF4mP3dLJE9VVzxTJVNvKXZGRChnNEVpUTQrJm5xZCkmJmYkRygmU1BBCmEwJkZzUkRX
JG11aj5SRlY2KHQmKSk/N0NGRmNTZjV3anMmQAoKbGl0ZXJhbCAwCkhjbVY/ZDAwMDAxCgpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC90b2tlbml6ZXIvbnVsbC14c3MtZXhwZWN0ZWQudHh0
IGIvTGF5b3V0VGVzdHMvZmFzdC90b2tlbml6ZXIvbnVsbC14c3MtZXhwZWN0ZWQudHh0Cm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLjI0NjJiNGIwMDRmZWNjMGU2Yzk4MGYwNGFkNDhiOWJhMTEyNjliMjAKLS0tIC9kZXYv
bnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L3Rva2VuaXplci9udWxsLXhzcy1leHBlY3RlZC50
eHQKQEAgLTAsMCArMSBAQAorYWxlcnQoJ0ZBSUwnKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2Zhc3QvdG9rZW5pemVyL251bGwteHNzLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L3Rva2VuaXpl
ci9udWxsLXhzcy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmE5MDAwZWY3ZGRlZGFlODQyNGRhOTZkNzQzMzc1
ZmVjOTQ2MmVhZTEKR0lUIGJpbmFyeSBwYXRjaApsaXRlcmFsIDEyNAp6Y21jQzFQRyVefEVHViV7
JXQ8WE8oTks0RF56PjJKdzZAVk5QNmk4ZSp9eGM/WCRsKFVuUnpNczwkNWBabUhETTUKcEEqc2JC
JmlRI0lNZm97RXlfI0dLSyE4bX5GUXFpTXpfQjxhd1czNXIpMHp1bUd5cSkmRCgoT1AKCmxpdGVy
YWwgMApIY21WP2QwMDAwMQoKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9m
YXN0L3RleHQvc3RyaXBOdWxsRnJvbVRleHQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvcGxh
dGZvcm0vbWFjL2Zhc3QvdGV4dC9zdHJpcE51bGxGcm9tVGV4dC1leHBlY3RlZC50eHQKaW5kZXgg
NmY5YmJjMmI5ZTU0M2I0ZjQ5NThiZDQ5YjUyNDgwMTcyMDQxMjNjZC4uNTE2OTRmNmM4YTU4ZjIx
NGYzMDEzZjc1YjI0ZDNkYzk5NzZjNzRjMiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZv
cm0vbWFjL2Zhc3QvdGV4dC9zdHJpcE51bGxGcm9tVGV4dC1leHBlY3RlZC50eHQKKysrIGIvTGF5
b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2Zhc3QvdGV4dC9zdHJpcE51bGxGcm9tVGV4dC1leHBlY3Rl
ZC50eHQKQEAgLTMsNiArMyw0IEBAIGxheWVyIGF0ICgwLDApIHNpemUgODAweDYwMAogbGF5ZXIg
YXQgKDAsMCkgc2l6ZSA4MDB4NjAwCiAgIFJlbmRlckJsb2NrIHtIVE1MfSBhdCAoMCwwKSBzaXpl
IDgwMHg2MDAKICAgICBSZW5kZXJCb2R5IHtCT0RZfSBhdCAoOCw4KSBzaXplIDc4NHg1ODQKLSAg
ICAgIFJlbmRlckJsb2NrIHtESVZ9IGF0ICgwLDApIHNpemUgNzg0eDIxIFtib3JkZXI6ICgxcHgg
c29saWQgI0ZGMDAwMCldCi0gICAgICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoMSwyKSBzaXpl
IDE2eDE4Ci0gICAgICAgICAgdGV4dCBydW4gYXQgKDEsMikgd2lkdGggMTY6ICJceHtGRkZEfSIK
KyAgICAgIFJlbmRlckJsb2NrIHtESVZ9IGF0ICgwLDApIHNpemUgNzg0eDIgW2JvcmRlcjogKDFw
eCBzb2xpZCAjRkYwMDAwKV0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3N0b3JhZ2UvZG9tc3Rv
cmFnZS9jb21wbGV4LXZhbHVlcy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2Rv
bXN0b3JhZ2UvY29tcGxleC12YWx1ZXMtZXhwZWN0ZWQudHh0CmluZGV4IDlhNzVlNDJlM2ZhNjQ4
MzIwNWU4NDY0YWUxMjBhMTI3NjY4ZjZhNmIuLjY5ZDc2NDQ3YzNhZjMxOGU0YjY1ZDVjMmYxN2I2
ZjE5ZjRiYzE0YzYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3N0b3JhZ2UvZG9tc3RvcmFnZS9j
b21wbGV4LXZhbHVlcy1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9kb21z
dG9yYWdlL2NvbXBsZXgtdmFsdWVzLWV4cGVjdGVkLnR4dApAQCAtODIsMjUgKzgyLDI1IEBAIFBB
U1Mgc3RvcmFnZS5nZXRJdGVtKCdmb285JykgaXMgIjIiCiAKIHN0b3JhZ2UuZm9vMTAgPSBrCiBQ
QVNTIHR5cGVvZiBzdG9yYWdlWydmb28xMCddIGlzICJzdHJpbmciCi1QQVNTIHN0b3JhZ2VbJ2Zv
bzEwJ10gaXMgIu6XgcO/7LCh77+9aGVsbG8iCitQQVNTIHN0b3JhZ2VbJ2ZvbzEwJ10gaXMgIu6X
gcO/7LChaGVsbG8iCiBQQVNTIHR5cGVvZiBzdG9yYWdlLmZvbzEwIGlzICJzdHJpbmciCi1QQVNT
IHN0b3JhZ2UuZm9vMTAgaXMgIu6XgcO/7LCh77+9aGVsbG8iCitQQVNTIHN0b3JhZ2UuZm9vMTAg
aXMgIu6XgcO/7LChaGVsbG8iCiBQQVNTIHR5cGVvZiBzdG9yYWdlLmdldEl0ZW0oJ2ZvbzEwJykg
aXMgInN0cmluZyIKLVBBU1Mgc3RvcmFnZS5nZXRJdGVtKCdmb28xMCcpIGlzICLul4HDv+ywoe+/
vWhlbGxvIgorUEFTUyBzdG9yYWdlLmdldEl0ZW0oJ2ZvbzEwJykgaXMgIu6XgcO/7LChaGVsbG8i
CiBzdG9yYWdlWydmb28xMSddID0gawogUEFTUyB0eXBlb2Ygc3RvcmFnZVsnZm9vMTEnXSBpcyAi
c3RyaW5nIgotUEFTUyBzdG9yYWdlWydmb28xMSddIGlzICLul4HDv+ywoe+/vWhlbGxvIgorUEFT
UyBzdG9yYWdlWydmb28xMSddIGlzICLul4HDv+ywoWhlbGxvIgogUEFTUyB0eXBlb2Ygc3RvcmFn
ZS5mb28xMSBpcyAic3RyaW5nIgotUEFTUyBzdG9yYWdlLmZvbzExIGlzICLul4HDv+ywoe+/vWhl
bGxvIgorUEFTUyBzdG9yYWdlLmZvbzExIGlzICLul4HDv+ywoWhlbGxvIgogUEFTUyB0eXBlb2Yg
c3RvcmFnZS5nZXRJdGVtKCdmb28xMScpIGlzICJzdHJpbmciCi1QQVNTIHN0b3JhZ2UuZ2V0SXRl
bSgnZm9vMTEnKSBpcyAi7peBw7/ssKHvv71oZWxsbyIKK1BBU1Mgc3RvcmFnZS5nZXRJdGVtKCdm
b28xMScpIGlzICLul4HDv+ywoWhlbGxvIgogc3RvcmFnZS5zZXRJdGVtKCdmb28xMicsIGspCiBQ
QVNTIHR5cGVvZiBzdG9yYWdlWydmb28xMiddIGlzICJzdHJpbmciCi1QQVNTIHN0b3JhZ2VbJ2Zv
bzEyJ10gaXMgIu6XgcO/7LCh77+9aGVsbG8iCitQQVNTIHN0b3JhZ2VbJ2ZvbzEyJ10gaXMgIu6X
gcO/7LChaGVsbG8iCiBQQVNTIHR5cGVvZiBzdG9yYWdlLmZvbzEyIGlzICJzdHJpbmciCi1QQVNT
IHN0b3JhZ2UuZm9vMTIgaXMgIu6XgcO/7LCh77+9aGVsbG8iCitQQVNTIHN0b3JhZ2UuZm9vMTIg
aXMgIu6XgcO/7LChaGVsbG8iCiBQQVNTIHR5cGVvZiBzdG9yYWdlLmdldEl0ZW0oJ2ZvbzEyJykg
aXMgInN0cmluZyIKLVBBU1Mgc3RvcmFnZS5nZXRJdGVtKCdmb28xMicpIGlzICLul4HDv+ywoe+/
vWhlbGxvIgorUEFTUyBzdG9yYWdlLmdldEl0ZW0oJ2ZvbzEyJykgaXMgIu6XgcO/7LChaGVsbG8i
CiAKIAogVGVzdGluZyBsb2NhbFN0b3JhZ2UKQEAgLTE4MiwyNSArMTgyLDI1IEBAIFBBU1Mgc3Rv
cmFnZS5nZXRJdGVtKCdmb285JykgaXMgIjIiCiAKIHN0b3JhZ2UuZm9vMTAgPSBrCiBQQVNTIHR5
cGVvZiBzdG9yYWdlWydmb28xMCddIGlzICJzdHJpbmciCi1QQVNTIHN0b3JhZ2VbJ2ZvbzEwJ10g
aXMgIu6XgcO/7LCh77+9aGVsbG8iCitQQVNTIHN0b3JhZ2VbJ2ZvbzEwJ10gaXMgIu6XgcO/7LCh
aGVsbG8iCiBQQVNTIHR5cGVvZiBzdG9yYWdlLmZvbzEwIGlzICJzdHJpbmciCi1QQVNTIHN0b3Jh
Z2UuZm9vMTAgaXMgIu6XgcO/7LCh77+9aGVsbG8iCitQQVNTIHN0b3JhZ2UuZm9vMTAgaXMgIu6X
gcO/7LChaGVsbG8iCiBQQVNTIHR5cGVvZiBzdG9yYWdlLmdldEl0ZW0oJ2ZvbzEwJykgaXMgInN0
cmluZyIKLVBBU1Mgc3RvcmFnZS5nZXRJdGVtKCdmb28xMCcpIGlzICLul4HDv+ywoe+/vWhlbGxv
IgorUEFTUyBzdG9yYWdlLmdldEl0ZW0oJ2ZvbzEwJykgaXMgIu6XgcO/7LChaGVsbG8iCiBzdG9y
YWdlWydmb28xMSddID0gawogUEFTUyB0eXBlb2Ygc3RvcmFnZVsnZm9vMTEnXSBpcyAic3RyaW5n
IgotUEFTUyBzdG9yYWdlWydmb28xMSddIGlzICLul4HDv+ywoe+/vWhlbGxvIgorUEFTUyBzdG9y
YWdlWydmb28xMSddIGlzICLul4HDv+ywoWhlbGxvIgogUEFTUyB0eXBlb2Ygc3RvcmFnZS5mb28x
MSBpcyAic3RyaW5nIgotUEFTUyBzdG9yYWdlLmZvbzExIGlzICLul4HDv+ywoe+/vWhlbGxvIgor
UEFTUyBzdG9yYWdlLmZvbzExIGlzICLul4HDv+ywoWhlbGxvIgogUEFTUyB0eXBlb2Ygc3RvcmFn
ZS5nZXRJdGVtKCdmb28xMScpIGlzICJzdHJpbmciCi1QQVNTIHN0b3JhZ2UuZ2V0SXRlbSgnZm9v
MTEnKSBpcyAi7peBw7/ssKHvv71oZWxsbyIKK1BBU1Mgc3RvcmFnZS5nZXRJdGVtKCdmb28xMScp
IGlzICLul4HDv+ywoWhlbGxvIgogc3RvcmFnZS5zZXRJdGVtKCdmb28xMicsIGspCiBQQVNTIHR5
cGVvZiBzdG9yYWdlWydmb28xMiddIGlzICJzdHJpbmciCi1QQVNTIHN0b3JhZ2VbJ2ZvbzEyJ10g
aXMgIu6XgcO/7LCh77+9aGVsbG8iCitQQVNTIHN0b3JhZ2VbJ2ZvbzEyJ10gaXMgIu6XgcO/7LCh
aGVsbG8iCiBQQVNTIHR5cGVvZiBzdG9yYWdlLmZvbzEyIGlzICJzdHJpbmciCi1QQVNTIHN0b3Jh
Z2UuZm9vMTIgaXMgIu6XgcO/7LCh77+9aGVsbG8iCitQQVNTIHN0b3JhZ2UuZm9vMTIgaXMgIu6X
gcO/7LChaGVsbG8iCiBQQVNTIHR5cGVvZiBzdG9yYWdlLmdldEl0ZW0oJ2ZvbzEyJykgaXMgInN0
cmluZyIKLVBBU1Mgc3RvcmFnZS5nZXRJdGVtKCdmb28xMicpIGlzICLul4HDv+ywoe+/vWhlbGxv
IgorUEFTUyBzdG9yYWdlLmdldEl0ZW0oJ2ZvbzEyJykgaXMgIu6XgcO/7LChaGVsbG8iCiBQQVNT
IHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCiAKIFRFU1QgQ09NUExFVEUKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL3N2Zy9kb20vZnV6ei1wYXRoLXBhcnNlci1leHBlY3RlZC50eHQgYi9MYXlv
dXRUZXN0cy9zdmcvZG9tL2Z1enotcGF0aC1wYXJzZXItZXhwZWN0ZWQudHh0CmluZGV4IGQ5MjVk
ZWM5ZjU4ZWRjMmMzZWY0MDE5YzE0ZDVjMmNlM2YxYWE3ZGMuLjNlODFkZjBiYjIyODZiNzIxZDFj
NDE3OWQyMzQ3ZjVmOTc2ZDU5NDcgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3N2Zy9kb20vZnV6
ei1wYXRoLXBhcnNlci1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvc3ZnL2RvbS9mdXp6
LXBhdGgtcGFyc2VyLWV4cGVjdGVkLnR4dApAQCAtNDU5LDcgKzQ1OSw3IEBAIFBhcnNlZCBhcyA0
IGNvbW1hbmQocykgW01DQ0NdOiBNMSwxUTIgOSw0IDEsczYsMyA2LDksczYgMCwwLDYsMSB6YzIs
MSA3IDAsMSA0LFoyCiBQYXJzZWQgYXMgMSBjb21tYW5kKHMpIFtNXTogTTEsMWE5LDIgNiAxIDIg
MiAyLHphOSAwIDIgOCwyLDMsMyBzNSw4LDggMSxIQzUgOCA1LDgsNCAyIGM4IDQgNSAyIDUgOSxs
MyA5LEg3IHM2IDIsMCAwIGE0IDksMSA2LDMsNywwLE02LAogQ291bGQgbm90IHBhcnNlOiAKIENv
dWxkIG5vdCBwYXJzZTogTQotQ291bGQgbm90IHBhcnNlOiBN77+9CitDb3VsZCBub3QgcGFyc2U6
IE0KIFBhcnNlZCBhcyAyIGNvbW1hbmQocykgW01aXTogTTEsMVowCiBQQVNTIHN1Y2Nlc3NmdWxs
eVBhcnNlZCBpcyB0cnVlCiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3N2Zy9kb20vcmdiLWNv
bG9yLXBhcnNlci1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9zdmcvZG9tL3JnYi1jb2xvci1w
YXJzZXItZXhwZWN0ZWQudHh0CmluZGV4IDJmNTc3ZWMxOTgxZTg3OWI3NGM1ZmQ1ZGU4YTE3Y2E5
ZmNlNDUwMmMuLjQwNDA4NWY3MmIyNzI4Njk4YWM1YTViMzhlMWM5MWEzYTVhOGNiNzUgMTAwNjQ0
Ci0tLSBhL0xheW91dFRlc3RzL3N2Zy9kb20vcmdiLWNvbG9yLXBhcnNlci1leHBlY3RlZC50eHQK
KysrIGIvTGF5b3V0VGVzdHMvc3ZnL2RvbS9yZ2ItY29sb3ItcGFyc2VyLWV4cGVjdGVkLnR4dApA
QCAtMjU0LDggKzI1NCw4IEBAIFRocmV3IGV4Y2VwdGlvbiBFcnJvcjogU1ZHX0lOVkFMSURfVkFM
VUVfRVJSOiBET00gU1ZHIEV4Y2VwdGlvbiAxOiByZ2IoNzErMSsoKTMzCiBUaHJldyBleGNlcHRp
b24gRXJyb3I6IFNWR19JTlZBTElEX1ZBTFVFX0VSUjogRE9NIFNWRyBFeGNlcHRpb24gMTogcmdi
KC4yNysKIFRocmV3IGV4Y2VwdGlvbiBFcnJvcjogU1ZHX0lOVkFMSURfVkFMVUVfRVJSOiBET00g
U1ZHIEV4Y2VwdGlvbiAxOiByZ2IoCiBUaHJldyBleGNlcHRpb24gRXJyb3I6IFNWR19JTlZBTElE
X1ZBTFVFX0VSUjogRE9NIFNWRyBFeGNlcHRpb24gMTogCi1UaHJldyBleGNlcHRpb24gRXJyb3I6
IFNWR19JTlZBTElEX1ZBTFVFX0VSUjogRE9NIFNWRyBFeGNlcHRpb24gMTog77+9Ci1UaHJldyBl
eGNlcHRpb24gRXJyb3I6IFNWR19JTlZBTElEX1ZBTFVFX0VSUjogRE9NIFNWRyBFeGNlcHRpb24g
MTogcmdiKO+/vSkKK1RocmV3IGV4Y2VwdGlvbiBFcnJvcjogU1ZHX0lOVkFMSURfVkFMVUVfRVJS
OiBET00gU1ZHIEV4Y2VwdGlvbiAxOiAKK1RocmV3IGV4Y2VwdGlvbiBFcnJvcjogU1ZHX0lOVkFM
SURfVkFMVUVfRVJSOiBET00gU1ZHIEV4Y2VwdGlvbiAxOiByZ2IoKQogUEFTUyBzdWNjZXNzZnVs
bHlQYXJzZWQgaXMgdHJ1ZQogCiBURVNUIENPTVBMRVRFCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy93ZWJzb2NrZXQvdGVzdHMvYmFkLXN1Yi1wcm90b2NvbC1jb250cm9sLWNoYXJzLWV4cGVjdGVk
LnR4dCBiL0xheW91dFRlc3RzL3dlYnNvY2tldC90ZXN0cy9iYWQtc3ViLXByb3RvY29sLWNvbnRy
b2wtY2hhcnMtZXhwZWN0ZWQudHh0CmluZGV4IDI4MzlhODY2MzJiMmNmODZlMzdhZTg3YmEwMDZi
Zjk0YzI1NTk0OTkuLjQ0NGVhNDBiNzUyZDhiYjk3YTYyYjFiNjRjYzc5Nzg3OGJhYjEyZmMgMTAw
NjQ0Ci0tLSBhL0xheW91dFRlc3RzL3dlYnNvY2tldC90ZXN0cy9iYWQtc3ViLXByb3RvY29sLWNv
bnRyb2wtY2hhcnMtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL3dlYnNvY2tldC90ZXN0
cy9iYWQtc3ViLXByb3RvY29sLWNvbnRyb2wtY2hhcnMtZXhwZWN0ZWQudHh0CkBAIC01LDcgKzUs
NyBAQCBUZXN0IFdlYlNvY2tldCBiYWQgc3ViLXByb3RvY29sIG5hbWVzIGJ5IGNvbnRyb2wgY2hh
cmFjdGVycy4KIAogT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBt
ZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgogCi1QQVNTIG5ldyBXZWJTb2Nr
ZXQoIndzOi8vMTI3LjAuMC4xOjg4ODAvc2ltcGxlIiwgIu+/vSIpIHRocmV3IGV4Y2VwdGlvbiBF
cnJvcjogU1lOVEFYX0VSUjogRE9NIEV4Y2VwdGlvbiAxMi4KK1BBU1MgbmV3IFdlYlNvY2tldCgi
d3M6Ly8xMjcuMC4wLjE6ODg4MC9zaW1wbGUiLCAiIikgdGhyZXcgZXhjZXB0aW9uIEVycm9yOiBT
WU5UQVhfRVJSOiBET00gRXhjZXB0aW9uIDEyLgogUEFTUyBuZXcgV2ViU29ja2V0KCJ3czovLzEy
Ny4wLjAuMTo4ODgwL3NpbXBsZSIsICIJIikgdGhyZXcgZXhjZXB0aW9uIEVycm9yOiBTWU5UQVhf
RVJSOiBET00gRXhjZXB0aW9uIDEyLgogUEFTUyBuZXcgV2ViU29ja2V0KCJ3czovLzEyNy4wLjAu
MTo4ODgwL3NpbXBsZSIsICIKICIpIHRocmV3IGV4Y2VwdGlvbiBTeW50YXhFcnJvcjogUGFyc2Ug
ZXJyb3IuCmRpZmYgLS1naXQgYS9XZWJDb3JlL0NoYW5nZUxvZyBiL1dlYkNvcmUvQ2hhbmdlTG9n
CmluZGV4IDY5YWU4OTAxODhlMjE5ZGE5N2QwZGM4MzQzZGU3ZWQxYjJiMTVjNzUuLmVlNmFjMDg2
OTZlYjk4ZTliOWVjOTBmODQ5M2Q5NDI4MjlkOTc5ZDUgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvQ2hh
bmdlTG9nCisrKyBiL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzYgQEAKKzIwMTAtMDgt
MDUgIEFkYW0gQmFydGggIDxhYmFydGhAd2Via2l0Lm9yZz4KKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBVKzAwMDAgaXMgdHVybmVkIHRvIFUrRkZGRCAo
cmVwbGFjZW1lbnQgY2hhcmFjdGVyKQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9NDIxMTIKKworICAgICAgICBUaGlzIHBhdGNoIGludHJvZHVjZXMgYW4g
aW50ZW50aW9uYWwgcGFyc2luZyBkaWZmZXJlbmNlIGZyb20gdGhlIEhUTUw1CisgICAgICAgIHBh
cnNpbmcgc3BlY2lmaWNpYXRpb24uICBUaGUgc3BlYyByZXF1aXJlcyB1cyB0byBjb252ZXJ0IE5V
TEwKKyAgICAgICAgY2hhcmFjdGVycyB0byBVK0ZGRkQsIGJ1dCBkb2luZyBzbyBjYXVzZXMgY29t
cGF0aWJpbGl0eSBpc3N1ZXMgd2l0aCBhCisgICAgICAgIG51bWJlciBvZiBzaXRlcywgaW5jbHVk
aW5nIFVTIEJhbmsuCisKKyAgICAgICAgSW4gdGhpcyBwYXRjaCwgd2Ugc3RyaXAgdGhlIG51bGwg
Y2hhcmFjdGVycyBpbnN0ZWFkIGluIGNlcnRhaW4gY2FzZXMuCisgICAgICAgIEZpcmVmb3ggaGFz
IG1hZGUgYSBjb3JyZXNwb25kaW5nIGNoYW5nZS4gIEFmdGVyIGdhdGhlcmluZyBjb21wYXRhYmls
aXR5CisgICAgICAgIGRhdGEsIHdlIGhvcGUgdG8gY29udmluY2UgdGhlIEhUTUwgV0cgdG8gYWRv
cHQgdGhpcyBjaGFuZ2UuCisKKyAgICAgICAgVGVzdHM6IGZhc3QvdG9rZW5pemVyL251bGwtaW4t
dGV4dC5odG1sCisgICAgICAgICAgICAgICBmYXN0L3Rva2VuaXplci9udWxsLXhzcy5odG1sCisK
KyAgICAgICAgKiBodG1sL0hUTUxUb2tlbml6ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SFRN
TFRva2VuaXplcjo6SFRNTFRva2VuaXplcik6CisgICAgICAgIChXZWJDb3JlOjpIVE1MVG9rZW5p
emVyOjpyZXNldCk6CisgICAgICAgICogaHRtbC9IVE1MVG9rZW5pemVyLmg6CisgICAgICAgIChX
ZWJDb3JlOjpIVE1MVG9rZW5pemVyOjpzZXRTa2lwTGVhZGluZ05ld0xpbmVGb3JMaXN0aW5nKToK
KyAgICAgICAgKFdlYkNvcmU6OkhUTUxUb2tlbml6ZXI6OnNob3VsZFNraXBOdWxsQ2hhcmFjdGVy
cyk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MVG9rZW5pemVyOjpzZXRTa2lwTnVsbENoYXJhY3Rl
cnMpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTFRva2VuaXplcjo6SW5wdXRTdHJlYW1QcmVwcm9j
ZXNzb3I6OklucHV0U3RyZWFtUHJlcHJvY2Vzc29yKToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxU
b2tlbml6ZXI6OklucHV0U3RyZWFtUHJlcHJvY2Vzc29yOjpwZWVrKToKKyAgICAgICAgKiBodG1s
L0hUTUxUcmVlQnVpbGRlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpIVE1MVHJlZUJ1aWxkZXI6
OnBhc3NUb2tlblRvTGVnYWN5UGFyc2VyKToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxUcmVlQnVp
bGRlcjo6Y29uc3RydWN0VHJlZUZyb21Ub2tlbik6CisgICAgICAgIChXZWJDb3JlOjpIVE1MVHJl
ZUJ1aWxkZXI6OnByb2Nlc3NTdGFydFRhZ0ZvckluQm9keSk6CisKIDIwMTAtMDgtMDUgIEZyYW7D
p29pcyBTYXVzc2V0ICA8c2F1c3NldEBnbWFpbC5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkg
S2VubmV0aCBSb2hkZSBDaHJpc3RpYW5zZW4uCmRpZmYgLS1naXQgYS9XZWJDb3JlL2h0bWwvSFRN
TFRva2VuaXplci5jcHAgYi9XZWJDb3JlL2h0bWwvSFRNTFRva2VuaXplci5jcHAKaW5kZXggYzgy
MzRlNDdhYzkyZTE4ZGVjNGQyMTQ4NGIwNGY1NTJlNzlmMDhmOC4uNGM2MTg1MTYxYTg5ZTkyNjc2
NDA4ZmU2ZTQyYTNjZTA0NDVlMDg4NSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9odG1sL0hUTUxUb2tl
bml6ZXIuY3BwCisrKyBiL1dlYkNvcmUvaHRtbC9IVE1MVG9rZW5pemVyLmNwcApAQCAtOTcsNiAr
OTcsNyBAQCBpbmxpbmUgYm9vbCBpc0VuZFRhZ0J1ZmZlcmluZ1N0YXRlKEhUTUxUb2tlbml6ZXI6
OlN0YXRlIHN0YXRlKQogfQogCiBIVE1MVG9rZW5pemVyOjpIVE1MVG9rZW5pemVyKCkKKyAgICA6
IG1faW5wdXRTdHJlYW1QcmVwcm9jZXNzb3IodGhpcykKIHsKICAgICByZXNldCgpOwogfQpAQCAt
MTExLDYgKzExMiw3IEBAIHZvaWQgSFRNTFRva2VuaXplcjo6cmVzZXQoKQogICAgIG1fdG9rZW4g
PSAwOwogICAgIG1fbGluZU51bWJlciA9IDA7CiAgICAgbV9za2lwTGVhZGluZ05ld0xpbmVGb3JM
aXN0aW5nID0gZmFsc2U7CisgICAgbV9zaG91bGRTa2lwTnVsbENoYXJhY3RlcnMgPSB0cnVlOwog
ICAgIG1fYWRkaXRpb25hbEFsbG93ZWRDaGFyYWN0ZXIgPSAnXDAnOwogfQogCmRpZmYgLS1naXQg
YS9XZWJDb3JlL2h0bWwvSFRNTFRva2VuaXplci5oIGIvV2ViQ29yZS9odG1sL0hUTUxUb2tlbml6
ZXIuaAppbmRleCA3ZWU5ZDQxNzQzOTY3OGQ1ODA3MjA2MzMxNTI2YjkxNjY0NmNkOWQwLi45OWQ2
MjJhMWYzNjEyZTZhYzVlYWFjNmRjYWVlZjRmOGMxOGVhODM4IDEwMDY0NAotLS0gYS9XZWJDb3Jl
L2h0bWwvSFRNTFRva2VuaXplci5oCisrKyBiL1dlYkNvcmUvaHRtbC9IVE1MVG9rZW5pemVyLmgK
QEAgLTEzMiwxNCArMTMyLDE4IEBAIHB1YmxpYzoKIAogICAgIC8vIEhhY2sgdG8gc2tpcCBsZWFk
aW5nIG5ld2xpbmUgaW4gPHByZT4vPGxpc3Rpbmc+IGZvciBhdXRob3JpbmcgZWFzZS4KICAgICAv
LyBodHRwOi8vd3d3LndoYXR3Zy5vcmcvc3BlY3Mvd2ViLWFwcHMvY3VycmVudC13b3JrL211bHRp
cGFnZS90b2tlbml6YXRpb24uaHRtbCNwYXJzaW5nLW1haW4taW5ib2R5Ci0gICAgdm9pZCBza2lw
TGVhZGluZ05ld0xpbmVGb3JMaXN0aW5nKCkgeyBtX3NraXBMZWFkaW5nTmV3TGluZUZvckxpc3Rp
bmcgPSB0cnVlOyB9CisgICAgdm9pZCBzZXRTa2lwTGVhZGluZ05ld0xpbmVGb3JMaXN0aW5nKGJv
b2wgdmFsdWUpIHsgbV9za2lwTGVhZGluZ05ld0xpbmVGb3JMaXN0aW5nID0gdmFsdWU7IH0KKwor
ICAgIGJvb2wgc2hvdWxkU2tpcE51bGxDaGFyYWN0ZXJzKCkgY29uc3QgeyByZXR1cm4gbV9zaG91
bGRTa2lwTnVsbENoYXJhY3RlcnM7IH0KKyAgICB2b2lkIHNldFNraXBOdWxsQ2hhcmFjdGVycyhi
b29sIHZhbHVlKSB7IG1fc2hvdWxkU2tpcE51bGxDaGFyYWN0ZXJzID0gdmFsdWU7IH0KIAogcHJp
dmF0ZToKICAgICAvLyBodHRwOi8vd3d3LndoYXR3Zy5vcmcvc3BlY3Mvd2ViLWFwcHMvY3VycmVu
dC13b3JrLyNwcmVwcm9jZXNzaW5nLXRoZS1pbnB1dC1zdHJlYW0KICAgICBjbGFzcyBJbnB1dFN0
cmVhbVByZXByb2Nlc3NvciA6IHB1YmxpYyBOb25jb3B5YWJsZSB7CiAgICAgcHVibGljOgotICAg
ICAgICBJbnB1dFN0cmVhbVByZXByb2Nlc3NvcigpCi0gICAgICAgICAgICA6IG1fbmV4dElucHV0
Q2hhcmFjdGVyKCdcMCcpCisgICAgICAgIElucHV0U3RyZWFtUHJlcHJvY2Vzc29yKEhUTUxUb2tl
bml6ZXIqIHRva2VuaXplcikKKyAgICAgICAgICAgIDogbV90b2tlbml6ZXIodG9rZW5pemVyKQor
ICAgICAgICAgICAgLCBtX25leHRJbnB1dENoYXJhY3RlcignXDAnKQogICAgICAgICAgICAgLCBt
X3NraXBOZXh0TmV3TGluZShmYWxzZSkKICAgICAgICAgewogICAgICAgICB9CkBAIC0xNTEsNiAr
MTU1LDcgQEAgcHJpdmF0ZToKICAgICAgICAgLy8gY2hhcmFjdGVycyBpbiB8c291cmNlfCAoYWZ0
ZXIgY29sbGFwc2luZyBcclxuLCBldGMpLgogICAgICAgICBBTFdBWVNfSU5MSU5FIGJvb2wgcGVl
ayhTZWdtZW50ZWRTdHJpbmcmIHNvdXJjZSwgaW50JiBsaW5lTnVtYmVyKQogICAgICAgICB7Cisg
ICAgICAgIFBlZWtBZ2FpbjoKICAgICAgICAgICAgIG1fbmV4dElucHV0Q2hhcmFjdGVyID0gKnNv
dXJjZTsKIAogICAgICAgICAgICAgLy8gRXZlcnkgYnJhbmNoIGluIHRoaXMgZnVuY3Rpb24gaXMg
ZXhwZW5zaXZlLCBzbyB3ZSBoYXZlIGEKQEAgLTE3OSw4ICsxODQsMTkgQEAgcHJpdmF0ZToKICAg
ICAgICAgICAgICAgICAvLyBhIG51bWJlciBvZiBzcGVjaWZpYyBjaGFyYWN0ZXIgdmFsdWVzIGFy
ZSBwYXJzZSBlcnJvcnMgYW5kIHNob3VsZCBiZSByZXBsYWNlZAogICAgICAgICAgICAgICAgIC8v
IGJ5IHRoZSByZXBsYWNlbWVudCBjaGFyYWN0ZXIuIFdlIHN1c3BlY3QgdGhpcyBpcyBhIHByb2Js
ZW0gd2l0aCB0aGUgc3BlYyBhcyBkb2luZwogICAgICAgICAgICAgICAgIC8vIHRoYXQgZmlsdGVy
aW5nIGJyZWFrcyBzdXJyb2dhdGUgcGFpciBoYW5kbGluZyBhbmQgY2F1c2VzIHVzIG5vdCB0byBt
YXRjaCBNaW5lZmllbGQuCi0gICAgICAgICAgICAgICAgaWYgKG1fbmV4dElucHV0Q2hhcmFjdGVy
ID09ICdcMCcgJiYgIXNob3VsZFRyZWF0TnVsbEFzRW5kT2ZGaWxlTWFya2VyKHNvdXJjZSkpCisg
ICAgICAgICAgICAgICAgaWYgKG1fbmV4dElucHV0Q2hhcmFjdGVyID09ICdcMCcgJiYgIXNob3Vs
ZFRyZWF0TnVsbEFzRW5kT2ZGaWxlTWFya2VyKHNvdXJjZSkpIHsKKyAgICAgICAgICAgICAgICAg
ICAgaWYgKG1fdG9rZW5pemVyLT5zaG91bGRTa2lwTnVsbENoYXJhY3RlcnMoKQorICAgICAgICAg
ICAgICAgICAgICAgICAgJiYgKG1fdG9rZW5pemVyLT5zdGF0ZSgpID09IERhdGFTdGF0ZQorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIHx8IG1fdG9rZW5pemVyLT5zdGF0ZSgpID09IFJDREFU
QVN0YXRlCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgfHwgbV90b2tlbml6ZXItPnN0YXRl
KCkgPT0gUkFXVEVYVFN0YXRlCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgfHwgbV90b2tl
bml6ZXItPnN0YXRlKCkgPT0gUExBSU5URVhUU3RhdGUpKSB7CisgICAgICAgICAgICAgICAgICAg
ICAgICBzb3VyY2UuYWR2YW5jZVBhc3ROb25OZXdsaW5lKCk7CisgICAgICAgICAgICAgICAgICAg
ICAgICBpZiAoc291cmNlLmlzRW1wdHkoKSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBy
ZXR1cm4gZmFsc2U7CisgICAgICAgICAgICAgICAgICAgICAgICBnb3RvIFBlZWtBZ2FpbjsKKyAg
ICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICBtX25leHRJbnB1dENoYXJh
Y3RlciA9IDB4RkZGRDsKKyAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICB9CiAgICAgICAg
ICAgICByZXR1cm4gdHJ1ZTsKICAgICAgICAgfQpAQCAtMjAyLDYgKzIxOCw4IEBAIHByaXZhdGU6
CiAgICAgICAgICAgICByZXR1cm4gc291cmNlLmlzQ2xvc2VkKCkgJiYgc291cmNlLmxlbmd0aCgp
ID09IDE7CiAgICAgICAgIH0KIAorICAgICAgICBIVE1MVG9rZW5pemVyKiBtX3Rva2VuaXplcjsK
KwogICAgICAgICAvLyBodHRwOi8vd3d3LndoYXR3Zy5vcmcvc3BlY3Mvd2ViLWFwcHMvY3VycmVu
dC13b3JrLyNuZXh0LWlucHV0LWNoYXJhY3RlcgogICAgICAgICBVQ2hhciBtX25leHRJbnB1dENo
YXJhY3RlcjsKICAgICAgICAgYm9vbCBtX3NraXBOZXh0TmV3TGluZTsKQEAgLTI0Miw2ICsyNjAs
NyBAQCBwcml2YXRlOgogICAgIGludCBtX2xpbmVOdW1iZXI7CiAKICAgICBib29sIG1fc2tpcExl
YWRpbmdOZXdMaW5lRm9yTGlzdGluZzsKKyAgICBib29sIG1fc2hvdWxkU2tpcE51bGxDaGFyYWN0
ZXJzOwogCiAgICAgLy8gaHR0cDovL3d3dy53aGF0d2cub3JnL3NwZWNzL3dlYi1hcHBzL2N1cnJl
bnQtd29yay8jdGVtcG9yYXJ5LWJ1ZmZlcgogICAgIFZlY3RvcjxVQ2hhciwgMzI+IG1fdGVtcG9y
YXJ5QnVmZmVyOwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9odG1sL0hUTUxUcmVlQnVpbGRlci5jcHAg
Yi9XZWJDb3JlL2h0bWwvSFRNTFRyZWVCdWlsZGVyLmNwcAppbmRleCAwZTBkMjIwODk1NmJmMzUy
YjQ3ZDEwMDViMjc1MGVkMGI3YTM5YTkzLi5iZTMwNTcxNmVkMTkxOTFjMzBjNDJiNTEzOTIwNTlk
MjYzNjE2ZDlkIDEwMDY0NAotLS0gYS9XZWJDb3JlL2h0bWwvSFRNTFRyZWVCdWlsZGVyLmNwcAor
KysgYi9XZWJDb3JlL2h0bWwvSFRNTFRyZWVCdWlsZGVyLmNwcApAQCAtNDY5LDcgKzQ2OSw3IEBA
IHZvaWQgSFRNTFRyZWVCdWlsZGVyOjpwYXNzVG9rZW5Ub0xlZ2FjeVBhcnNlcihIVE1MVG9rZW4m
IHRva2VuKQogICAgICAgICAgICAgbV9sYXN0U2NyaXB0RWxlbWVudCA9IHN0YXRpY19wb2ludGVy
X2Nhc3Q8RWxlbWVudD4ocmVzdWx0KTsKICAgICAgICAgICAgIG1fbGFzdFNjcmlwdEVsZW1lbnRT
dGFydExpbmUgPSBtX3Rva2VuaXplci0+bGluZU51bWJlcigpOwogICAgICAgICB9IGVsc2UgaWYg
KG9sZFN0eWxlVG9rZW4udGFnTmFtZSA9PSBwcmVUYWcgfHwgb2xkU3R5bGVUb2tlbi50YWdOYW1l
ID09IGxpc3RpbmdUYWcpCi0gICAgICAgICAgICBtX3Rva2VuaXplci0+c2tpcExlYWRpbmdOZXdM
aW5lRm9yTGlzdGluZygpOworICAgICAgICAgICAgbV90b2tlbml6ZXItPnNldFNraXBMZWFkaW5n
TmV3TGluZUZvckxpc3RpbmcodHJ1ZSk7CiAgICAgICAgIGVsc2UKICAgICAgICAgICAgIG1fdG9r
ZW5pemVyLT5zZXRTdGF0ZShhZGp1c3RlZExleGVyU3RhdGUobV90b2tlbml6ZXItPnN0YXRlKCks
IG9sZFN0eWxlVG9rZW4udGFnTmFtZSwgbV9kb2N1bWVudC0+ZnJhbWUoKSkpOwogICAgIH0gZWxz
ZSBpZiAodG9rZW4udHlwZSgpID09IEhUTUxUb2tlbjo6RW5kVGFnKSB7CkBAIC01MDksNiArNTA5
LDExIEBAIHZvaWQgSFRNTFRyZWVCdWlsZGVyOjpjb25zdHJ1Y3RUcmVlRnJvbVRva2VuKEhUTUxU
b2tlbiYgcmF3VG9rZW4pCiAKICAgICBBdG9taWNIVE1MVG9rZW4gdG9rZW4ocmF3VG9rZW4pOwog
ICAgIHByb2Nlc3NUb2tlbih0b2tlbik7CisKKyAgICAvLyBTd2FsbG93aW5nIFUrMDAwMCBjaGFy
YWN0ZXJzIGlzbid0IGluIHRoZSBIVE1MNSBzcGVjLCBidXQgdHVybmluZyBhbGwKKyAgICAvLyB0
aGUgVSswMDAwIGNoYXJhY3RlcnMgaW50byByZXBsYWNlbWVudCBjaGFyYWN0ZXJzIGhhcyBjb21w
YXRpYmlsaXR5CisgICAgLy8gcHJvYmxlbXMuCisgICAgbV90b2tlbml6ZXItPnNldFNraXBOdWxs
Q2hhcmFjdGVycyhtX2luc2VydGlvbk1vZGUgIT0gVGV4dE1vZGUgJiYgbV9pbnNlcnRpb25Nb2Rl
ICE9IEluRm9yZWlnbkNvbnRlbnRNb2RlKTsKIH0KIAogdm9pZCBIVE1MVHJlZUJ1aWxkZXI6OnBy
b2Nlc3NUb2tlbihBdG9taWNIVE1MVG9rZW4mIHRva2VuKQpAQCAtODQ4LDcgKzg1Myw3IEBAIHZv
aWQgSFRNTFRyZWVCdWlsZGVyOjpwcm9jZXNzU3RhcnRUYWdGb3JJbkJvZHkoQXRvbWljSFRNTFRv
a2VuJiB0b2tlbikKICAgICBpZiAodG9rZW4ubmFtZSgpID09IHByZVRhZyB8fCB0b2tlbi5uYW1l
KCkgPT0gbGlzdGluZ1RhZykgewogICAgICAgICBwcm9jZXNzRmFrZVBFbmRUYWdJZlBJbkJ1dHRv
blNjb3BlKCk7CiAgICAgICAgIG1fdHJlZS5pbnNlcnRIVE1MRWxlbWVudCh0b2tlbik7Ci0gICAg
ICAgIG1fdG9rZW5pemVyLT5za2lwTGVhZGluZ05ld0xpbmVGb3JMaXN0aW5nKCk7CisgICAgICAg
IG1fdG9rZW5pemVyLT5zZXRTa2lwTGVhZGluZ05ld0xpbmVGb3JMaXN0aW5nKHRydWUpOwogICAg
ICAgICBtX2ZyYW1lc2V0T2sgPSBmYWxzZTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KQEAgLTk2
OCw3ICs5NzMsNyBAQCB2b2lkIEhUTUxUcmVlQnVpbGRlcjo6cHJvY2Vzc1N0YXJ0VGFnRm9ySW5C
b2R5KEF0b21pY0hUTUxUb2tlbiYgdG9rZW4pCiAgICAgfQogICAgIGlmICh0b2tlbi5uYW1lKCkg
PT0gdGV4dGFyZWFUYWcpIHsKICAgICAgICAgbV90cmVlLmluc2VydEhUTUxFbGVtZW50KHRva2Vu
KTsKLSAgICAgICAgbV90b2tlbml6ZXItPnNraXBMZWFkaW5nTmV3TGluZUZvckxpc3RpbmcoKTsK
KyAgICAgICAgbV90b2tlbml6ZXItPnNldFNraXBMZWFkaW5nTmV3TGluZUZvckxpc3RpbmcodHJ1
ZSk7CiAgICAgICAgIG1fdG9rZW5pemVyLT5zZXRTdGF0ZShIVE1MVG9rZW5pemVyOjpSQ0RBVEFT
dGF0ZSk7CiAgICAgICAgIG1fb3JpZ2luYWxJbnNlcnRpb25Nb2RlID0gbV9pbnNlcnRpb25Nb2Rl
OwogICAgICAgICBtX2ZyYW1lc2V0T2sgPSBmYWxzZTsK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>63648</attachid>
            <date>2010-08-05 15:35:57 -0700</date>
            <delta_ts>2010-08-05 17:12:26 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-42112-20100805153556.patch</filename>
            <type>text/plain</type>
            <size>14223</size>
            <attacher name="Adam Barth">abarth</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCAzNjAxZjZiYTdjZDBiNWU4NGNlOWRmYWViMzk4OTc4ZTc5MWNhOWVhLi5hM2Q1MWE5
YjMxMDljNmZhNjU1MzdmMDhmNTg1NGM4ZmRlMGVkZDIwIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0yLDYgKzIsMjkgQEAK
IAogICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KIAorICAgICAgICBVKzAwMDAg
aXMgdHVybmVkIHRvIFUrRkZGRCAocmVwbGFjZW1lbnQgY2hhcmFjdGVyKQorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDIxMTIKKworICAgICAgICBVcGRh
dGUgdGVzdCByZXN1bHRzIHRvIHNob3cgbnVsbCBzdHJpcHBpbmcuICBUaGVzZSBjaGFuZ2VzIGFy
ZSBtb3N0bHkKKyAgICAgICAgZ29pbmcgYmFjayB0byB0aGUgb2xkIHJlc3VsdHMgd2UgaGFkIGJl
Zm9yZSB3ZSBhZGRlZCB0aGUgRkZGRAorICAgICAgICByZXBsYWNlbWVudC4KKworICAgICAgICAq
IGZhc3QvZG9tL3N0cmlwTnVsbEZyb21UZXh0Tm9kZXMtZXhwZWN0ZWQudHh0OgorICAgICAgICAq
IGZhc3QvdG9rZW5pemVyL251bGwtaW4tdGV4dC1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAg
ICAqIGZhc3QvdG9rZW5pemVyL251bGwtaW4tdGV4dC5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBm
YXN0L3Rva2VuaXplci9udWxsLXhzcy1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZh
c3QvdG9rZW5pemVyL251bGwteHNzLmh0bWw6IEFkZGVkLgorICAgICAgICAgICAgLSBUaGUgbWFp
biByaXNrIHdpdGggc3RyaXBwaW5nIG51bGwgY2hhcmFjdGVycyBpcyB0aGF0IHRoZXknbGwgYmUK
KyAgICAgICAgICAgICAgdXNlZCBpbiBYU1MgYXR0YWNrcy4gIFRoaXMgdGVzdCBzaG93cyB0aGF0
IHdlIGRvbid0IHN0cmlwIG51bGwKKyAgICAgICAgICAgICAgY2hhcmFjdGVycyBmcm9tIHRhZyBu
YW1lcy4KKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvZmFzdC90ZXh0L3N0cmlwTnVsbEZyb21UZXh0
LWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBzdmcvZG9tL2Z1enotcGF0aC1wYXJzZXItZXhwZWN0
ZWQudHh0OgorICAgICAgICAqIHN2Zy9kb20vcmdiLWNvbG9yLXBhcnNlci1leHBlY3RlZC50eHQ6
CisKKzIwMTAtMDgtMDUgIEFkYW0gQmFydGggIDxhYmFydGhAd2Via2l0Lm9yZz4KKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwogICAgICAgICBqcy10ZXN0LXByZS5qcydz
IGVzY2FwZUhUTUwgc2hvdWxkIGVzY2FwZSBudWxsIGNoYXJhY3RlcnMgc28gd2UgY2FuIHNlZSB0
aGVtCiAgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00MzU3
OQogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9zdHJpcE51bGxGcm9tVGV4dE5v
ZGVzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL3N0cmlwTnVsbEZyb21UZXh0
Tm9kZXMtZXhwZWN0ZWQudHh0CmluZGV4IDM3MDk0YTFhMGQ3Y2ZiNmYzZmQwNTRiMDY3NjNlMjIw
M2Y0ZjkwY2IuLjA5MDhiMjQ2ODYzODBkY2E3NTdlY2JkMjE1NzQwM2NkOTI1YWNhZjkgMTAwNjQ0
Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL3N0cmlwTnVsbEZyb21UZXh0Tm9kZXMtZXhwZWN0
ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL3N0cmlwTnVsbEZyb21UZXh0Tm9kZXMt
ZXhwZWN0ZWQudHh0CkBAIC0xLDIgKzEsMiBAQAot77+977+977+977+977+977+977+977+977+9
aGVsbO+/ve+/ve+/ve+/ve+/vW8KLVRoZSBudWxsIGNoYXJhY3RlcnMgc2hvdWxkIGJlIHN0cmlw
cGVkIG91dCBvZiB0aGUgc3RyaW5nIGFib3ZlIGFuZCBpdCBzaG91bGQgaGF2ZSBhIGxlbmd0aCBv
ZiA1LiBBbmQgdGhlIERPTSB0aGlua3MgdGhlIGxlbmd0aCBpcy4uLjE5IDotKAoraGVsbG8KK1Ro
ZSBudWxsIGNoYXJhY3RlcnMgc2hvdWxkIGJlIHN0cmlwcGVkIG91dCBvZiB0aGUgc3RyaW5nIGFi
b3ZlIGFuZCBpdCBzaG91bGQgaGF2ZSBhIGxlbmd0aCBvZiA1LiBBbmQgdGhlIERPTSB0aGlua3Mg
dGhlIGxlbmd0aCBpcy4uLjUhCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3Rva2VuaXpl
ci9udWxsLWluLXRleHQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC90b2tlbml6ZXIv
bnVsbC1pbi10ZXh0LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43ZWYyMmU5YTQzMWFkMDI3Mjcx
M2I3MWZkYzg3OTQwMTZjOGVmMTJmCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFz
dC90b2tlbml6ZXIvbnVsbC1pbi10ZXh0LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxIEBACitQQVNT
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3Rva2VuaXplci9udWxsLWluLXRleHQuaHRt
bCBiL0xheW91dFRlc3RzL2Zhc3QvdG9rZW5pemVyL251bGwtaW4tdGV4dC5odG1sCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLjYyNjIwMGQyYjczMjA3Y2FkNGYyMTE2YzUwYTA4NmY0ODI3OThhNzEKR0lUIGJpbmFyeSBw
YXRjaApsaXRlcmFsIDk3CnpjbVdHPVdDI3hDdk1FazMkfUF8YzxIfTReJj93SyRPVVc8UyVTbyl2
RkQoZzRFaVE0KyZucWQpJiZmJEcoJlNQQQphMCZGc1JEVyRtdWo+UkZWNih0JikpPzdDRkZjU2Y1
d2pzJkAKCmxpdGVyYWwgMApIY21WP2QwMDAwMQoKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zh
c3QvdG9rZW5pemVyL251bGwteHNzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvdG9r
ZW5pemVyL251bGwteHNzLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yNDYyYjRiMDA0ZmVjYzBl
NmM5ODBmMDRhZDQ4YjliYTExMjY5YjIwCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMv
ZmFzdC90b2tlbml6ZXIvbnVsbC14c3MtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEgQEAKK2FsZXJ0
KCdGQUlMJyk7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3Rva2VuaXplci9udWxsLXhz
cy5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC90b2tlbml6ZXIvbnVsbC14c3MuaHRtbApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi5hOTAwMGVmN2RkZWRhZTg0MjRkYTk2ZDc0MzM3NWZlYzk0NjJlYWUxCkdJVCBiaW5hcnkg
cGF0Y2gKbGl0ZXJhbCAxMjQKemNtY0MxUEclXnxFR1YleyV0PFhPKE5LNEReej4ySnc2QFZOUDZp
OGUqfXhjP1gkbChVblJ6TXM8JDVgWm1IRE01CnBBKnNiQiZpUSNJTWZve0V5XyNHS0shOG1+RlFx
aU16X0I8YXdXMzVyKTB6dW1HeXEpJkQoKE9QCgpsaXRlcmFsIDAKSGNtVj9kMDAwMDEKCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvZmFzdC90ZXh0L3N0cmlwTnVsbEZyb21U
ZXh0LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9mYXN0L3RleHQvc3Ry
aXBOdWxsRnJvbVRleHQtZXhwZWN0ZWQudHh0CmluZGV4IDZmOWJiYzJiOWU1NDNiNGY0OTU4YmQ0
OWI1MjQ4MDE3MjA0MTIzY2QuLjUxNjk0ZjZjOGE1OGYyMTRmMzAxM2Y3NWIyNGQzZGM5OTc2Yzc0
YzIgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9mYXN0L3RleHQvc3RyaXBO
dWxsRnJvbVRleHQtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9m
YXN0L3RleHQvc3RyaXBOdWxsRnJvbVRleHQtZXhwZWN0ZWQudHh0CkBAIC0zLDYgKzMsNCBAQCBs
YXllciBhdCAoMCwwKSBzaXplIDgwMHg2MDAKIGxheWVyIGF0ICgwLDApIHNpemUgODAweDYwMAog
ICBSZW5kZXJCbG9jayB7SFRNTH0gYXQgKDAsMCkgc2l6ZSA4MDB4NjAwCiAgICAgUmVuZGVyQm9k
eSB7Qk9EWX0gYXQgKDgsOCkgc2l6ZSA3ODR4NTg0Ci0gICAgICBSZW5kZXJCbG9jayB7RElWfSBh
dCAoMCwwKSBzaXplIDc4NHgyMSBbYm9yZGVyOiAoMXB4IHNvbGlkICNGRjAwMDApXQotICAgICAg
ICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDEsMikgc2l6ZSAxNngxOAotICAgICAgICAgIHRleHQg
cnVuIGF0ICgxLDIpIHdpZHRoIDE2OiAiXHh7RkZGRH0iCisgICAgICBSZW5kZXJCbG9jayB7RElW
fSBhdCAoMCwwKSBzaXplIDc4NHgyIFtib3JkZXI6ICgxcHggc29saWQgI0ZGMDAwMCldCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9zdmcvZG9tL2Z1enotcGF0aC1wYXJzZXItZXhwZWN0ZWQudHh0
IGIvTGF5b3V0VGVzdHMvc3ZnL2RvbS9mdXp6LXBhdGgtcGFyc2VyLWV4cGVjdGVkLnR4dAppbmRl
eCBkOTI1ZGVjOWY1OGVkYzJjM2VmNDAxOWMxNGQ1YzJjZTNmMWFhN2RjLi4zZTgxZGYwYmIyMjg2
YjcyMWQxYzQxNzlkMjM0N2Y1Zjk3NmQ1OTQ3IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9zdmcv
ZG9tL2Z1enotcGF0aC1wYXJzZXItZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL3N2Zy9k
b20vZnV6ei1wYXRoLXBhcnNlci1leHBlY3RlZC50eHQKQEAgLTQ1OSw3ICs0NTksNyBAQCBQYXJz
ZWQgYXMgNCBjb21tYW5kKHMpIFtNQ0NDXTogTTEsMVEyIDksNCAxLHM2LDMgNiw5LHM2IDAsMCw2
LDEgemMyLDEgNyAwLDEgNCxaMgogUGFyc2VkIGFzIDEgY29tbWFuZChzKSBbTV06IE0xLDFhOSwy
IDYgMSAyIDIgMix6YTkgMCAyIDgsMiwzLDMgczUsOCw4IDEsSEM1IDggNSw4LDQgMiBjOCA0IDUg
MiA1IDksbDMgOSxINyBzNiAyLDAgMCBhNCA5LDEgNiwzLDcsMCxNNiwKIENvdWxkIG5vdCBwYXJz
ZTogCiBDb3VsZCBub3QgcGFyc2U6IE0KLUNvdWxkIG5vdCBwYXJzZTogTe+/vQorQ291bGQgbm90
IHBhcnNlOiBNCiBQYXJzZWQgYXMgMiBjb21tYW5kKHMpIFtNWl06IE0xLDFaMAogUEFTUyBzdWNj
ZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9zdmcvZG9t
L3JnYi1jb2xvci1wYXJzZXItZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvc3ZnL2RvbS9yZ2It
Y29sb3ItcGFyc2VyLWV4cGVjdGVkLnR4dAppbmRleCAyZjU3N2VjMTk4MWU4NzliNzRjNWZkNWRl
OGExN2NhOWZjZTQ1MDJjLi40MDQwODVmNzJiMjcyODY5OGFjNWE1YjM4ZTFjOTFhM2E1YThjYjc1
IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9zdmcvZG9tL3JnYi1jb2xvci1wYXJzZXItZXhwZWN0
ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL3N2Zy9kb20vcmdiLWNvbG9yLXBhcnNlci1leHBlY3Rl
ZC50eHQKQEAgLTI1NCw4ICsyNTQsOCBAQCBUaHJldyBleGNlcHRpb24gRXJyb3I6IFNWR19JTlZB
TElEX1ZBTFVFX0VSUjogRE9NIFNWRyBFeGNlcHRpb24gMTogcmdiKDcxKzErKCkzMwogVGhyZXcg
ZXhjZXB0aW9uIEVycm9yOiBTVkdfSU5WQUxJRF9WQUxVRV9FUlI6IERPTSBTVkcgRXhjZXB0aW9u
IDE6IHJnYiguMjcrCiBUaHJldyBleGNlcHRpb24gRXJyb3I6IFNWR19JTlZBTElEX1ZBTFVFX0VS
UjogRE9NIFNWRyBFeGNlcHRpb24gMTogcmdiKAogVGhyZXcgZXhjZXB0aW9uIEVycm9yOiBTVkdf
SU5WQUxJRF9WQUxVRV9FUlI6IERPTSBTVkcgRXhjZXB0aW9uIDE6IAotVGhyZXcgZXhjZXB0aW9u
IEVycm9yOiBTVkdfSU5WQUxJRF9WQUxVRV9FUlI6IERPTSBTVkcgRXhjZXB0aW9uIDE6IO+/vQot
VGhyZXcgZXhjZXB0aW9uIEVycm9yOiBTVkdfSU5WQUxJRF9WQUxVRV9FUlI6IERPTSBTVkcgRXhj
ZXB0aW9uIDE6IHJnYijvv70pCitUaHJldyBleGNlcHRpb24gRXJyb3I6IFNWR19JTlZBTElEX1ZB
TFVFX0VSUjogRE9NIFNWRyBFeGNlcHRpb24gMTogCitUaHJldyBleGNlcHRpb24gRXJyb3I6IFNW
R19JTlZBTElEX1ZBTFVFX0VSUjogRE9NIFNWRyBFeGNlcHRpb24gMTogcmdiKCkKIFBBU1Mgc3Vj
Y2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKIAogVEVTVCBDT01QTEVURQpkaWZmIC0tZ2l0IGEvV2Vi
Q29yZS9DaGFuZ2VMb2cgYi9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCA2OWFlODkwMTg4ZTIxOWRh
OTdkMGRjODM0M2RlN2VkMWIyYjE1Yzc1Li5mZWVlMzVmZWUwYjAyMGMzZGQxNzBmYWMzNjUwZDg4
MmUzOGUyZDliIDEwMDY0NAotLS0gYS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9XZWJDb3JlL0No
YW5nZUxvZwpAQCAtMSwzICsxLDM3IEBACisyMDEwLTA4LTA1ICBBZGFtIEJhcnRoICA8YWJhcnRo
QHdlYmtpdC5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgVSswMDAwIGlzIHR1cm5lZCB0byBVK0ZGRkQgKHJlcGxhY2VtZW50IGNoYXJhY3RlcikK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQyMTEyCisK
KyAgICAgICAgVGhpcyBwYXRjaCBpbnRyb2R1Y2VzIGFuIGludGVudGlvbmFsIHBhcnNpbmcgZGlm
ZmVyZW5jZSBmcm9tIHRoZSBIVE1MNQorICAgICAgICBwYXJzaW5nIHNwZWNpZmljaWF0aW9uLiAg
VGhlIHNwZWMgcmVxdWlyZXMgdXMgdG8gY29udmVydCBOVUxMCisgICAgICAgIGNoYXJhY3RlcnMg
dG8gVStGRkZELCBidXQgZG9pbmcgc28gY2F1c2VzIGNvbXBhdGliaWxpdHkgaXNzdWVzIHdpdGgg
YQorICAgICAgICBudW1iZXIgb2Ygc2l0ZXMsIGluY2x1ZGluZyBVUyBCYW5rLgorCisgICAgICAg
IEluIHRoaXMgcGF0Y2gsIHdlIHN0cmlwIHRoZSBudWxsIGNoYXJhY3RlcnMgaW5zdGVhZCBpbiBj
ZXJ0YWluIGNhc2VzLgorICAgICAgICBGaXJlZm94IGhhcyBtYWRlIGEgY29ycmVzcG9uZGluZyBj
aGFuZ2UuICBBZnRlciBnYXRoZXJpbmcgY29tcGF0YWJpbGl0eQorICAgICAgICBkYXRhLCB3ZSBo
b3BlIHRvIGNvbnZpbmNlIHRoZSBIVE1MIFdHIHRvIGFkb3B0IHRoaXMgY2hhbmdlLgorCisgICAg
ICAgIFRlc3RzOiBmYXN0L3Rva2VuaXplci9udWxsLWluLXRleHQuaHRtbAorICAgICAgICAgICAg
ICAgZmFzdC90b2tlbml6ZXIvbnVsbC14c3MuaHRtbAorCisgICAgICAgICogaHRtbC9IVE1MVG9r
ZW5pemVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxUb2tlbml6ZXI6OkhUTUxUb2tlbml6
ZXIpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTFRva2VuaXplcjo6cmVzZXQpOgorICAgICAgICAq
IGh0bWwvSFRNTFRva2VuaXplci5oOgorICAgICAgICAoV2ViQ29yZTo6SFRNTFRva2VuaXplcjo6
c2V0U2tpcExlYWRpbmdOZXdMaW5lRm9yTGlzdGluZyk6CisgICAgICAgIChXZWJDb3JlOjpIVE1M
VG9rZW5pemVyOjpmb3JjZU51bGxDaGFyYWN0ZXJSZXBsYWNlbWVudCk6CisgICAgICAgIChXZWJD
b3JlOjpIVE1MVG9rZW5pemVyOjpzZXRGb3JjZU51bGxDaGFyYWN0ZXJSZXBsYWNlbWVudCk6Cisg
ICAgICAgIChXZWJDb3JlOjpIVE1MVG9rZW5pemVyOjpzaG91bGRTa2lwTnVsbENoYXJhY3RlcnMp
OgorICAgICAgICAoV2ViQ29yZTo6SFRNTFRva2VuaXplcjo6SW5wdXRTdHJlYW1QcmVwcm9jZXNz
b3I6OklucHV0U3RyZWFtUHJlcHJvY2Vzc29yKToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxUb2tl
bml6ZXI6OklucHV0U3RyZWFtUHJlcHJvY2Vzc29yOjpwZWVrKToKKyAgICAgICAgKiBodG1sL0hU
TUxUcmVlQnVpbGRlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpIVE1MVHJlZUJ1aWxkZXI6OnBh
c3NUb2tlblRvTGVnYWN5UGFyc2VyKToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxUcmVlQnVpbGRl
cjo6Y29uc3RydWN0VHJlZUZyb21Ub2tlbik6CisgICAgICAgIChXZWJDb3JlOjpIVE1MVHJlZUJ1
aWxkZXI6OnByb2Nlc3NTdGFydFRhZ0ZvckluQm9keSk6CisKIDIwMTAtMDgtMDUgIEZyYW7Dp29p
cyBTYXVzc2V0ICA8c2F1c3NldEBnbWFpbC5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgS2Vu
bmV0aCBSb2hkZSBDaHJpc3RpYW5zZW4uCmRpZmYgLS1naXQgYS9XZWJDb3JlL2h0bWwvSFRNTFRv
a2VuaXplci5jcHAgYi9XZWJDb3JlL2h0bWwvSFRNTFRva2VuaXplci5jcHAKaW5kZXggYzgyMzRl
NDdhYzkyZTE4ZGVjNGQyMTQ4NGIwNGY1NTJlNzlmMDhmOC4uYTUyYWJhNjYzMzQwMzAzNGQyNGVm
NGEyNmJkZDRlNzY2NjZjZjFhNSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9odG1sL0hUTUxUb2tlbml6
ZXIuY3BwCisrKyBiL1dlYkNvcmUvaHRtbC9IVE1MVG9rZW5pemVyLmNwcApAQCAtOTcsNiArOTcs
NyBAQCBpbmxpbmUgYm9vbCBpc0VuZFRhZ0J1ZmZlcmluZ1N0YXRlKEhUTUxUb2tlbml6ZXI6OlN0
YXRlIHN0YXRlKQogfQogCiBIVE1MVG9rZW5pemVyOjpIVE1MVG9rZW5pemVyKCkKKyAgICA6IG1f
aW5wdXRTdHJlYW1QcmVwcm9jZXNzb3IodGhpcykKIHsKICAgICByZXNldCgpOwogfQpAQCAtMTEx
LDYgKzExMiw3IEBAIHZvaWQgSFRNTFRva2VuaXplcjo6cmVzZXQoKQogICAgIG1fdG9rZW4gPSAw
OwogICAgIG1fbGluZU51bWJlciA9IDA7CiAgICAgbV9za2lwTGVhZGluZ05ld0xpbmVGb3JMaXN0
aW5nID0gZmFsc2U7CisgICAgbV9mb3JjZU51bGxDaGFyYWN0ZXJSZXBsYWNlbWVudCA9IGZhbHNl
OwogICAgIG1fYWRkaXRpb25hbEFsbG93ZWRDaGFyYWN0ZXIgPSAnXDAnOwogfQogCmRpZmYgLS1n
aXQgYS9XZWJDb3JlL2h0bWwvSFRNTFRva2VuaXplci5oIGIvV2ViQ29yZS9odG1sL0hUTUxUb2tl
bml6ZXIuaAppbmRleCA3ZWU5ZDQxNzQzOTY3OGQ1ODA3MjA2MzMxNTI2YjkxNjY0NmNkOWQwLi5l
NGNhMTZhY2UxYmUzZDc4YmE2ZjcxNTEzNTlkYWQ4MDIxOTdmOThiIDEwMDY0NAotLS0gYS9XZWJD
b3JlL2h0bWwvSFRNTFRva2VuaXplci5oCisrKyBiL1dlYkNvcmUvaHRtbC9IVE1MVG9rZW5pemVy
LmgKQEAgLTEzMiwxNCArMTMyLDI3IEBAIHB1YmxpYzoKIAogICAgIC8vIEhhY2sgdG8gc2tpcCBs
ZWFkaW5nIG5ld2xpbmUgaW4gPHByZT4vPGxpc3Rpbmc+IGZvciBhdXRob3JpbmcgZWFzZS4KICAg
ICAvLyBodHRwOi8vd3d3LndoYXR3Zy5vcmcvc3BlY3Mvd2ViLWFwcHMvY3VycmVudC13b3JrL211
bHRpcGFnZS90b2tlbml6YXRpb24uaHRtbCNwYXJzaW5nLW1haW4taW5ib2R5Ci0gICAgdm9pZCBz
a2lwTGVhZGluZ05ld0xpbmVGb3JMaXN0aW5nKCkgeyBtX3NraXBMZWFkaW5nTmV3TGluZUZvckxp
c3RpbmcgPSB0cnVlOyB9CisgICAgdm9pZCBzZXRTa2lwTGVhZGluZ05ld0xpbmVGb3JMaXN0aW5n
KGJvb2wgdmFsdWUpIHsgbV9za2lwTGVhZGluZ05ld0xpbmVGb3JMaXN0aW5nID0gdmFsdWU7IH0K
KworICAgIGJvb2wgZm9yY2VOdWxsQ2hhcmFjdGVyUmVwbGFjZW1lbnQoKSBjb25zdCB7IHJldHVy
biBtX2ZvcmNlTnVsbENoYXJhY3RlclJlcGxhY2VtZW50OyB9CisgICAgdm9pZCBzZXRGb3JjZU51
bGxDaGFyYWN0ZXJSZXBsYWNlbWVudChib29sIHZhbHVlKSB7IG1fZm9yY2VOdWxsQ2hhcmFjdGVy
UmVwbGFjZW1lbnQgPSB2YWx1ZTsgfQorCisgICAgYm9vbCBzaG91bGRTa2lwTnVsbENoYXJhY3Rl
cnMoKSBjb25zdAorICAgIHsKKyAgICAgICAgcmV0dXJuICFtX2ZvcmNlTnVsbENoYXJhY3RlclJl
cGxhY2VtZW50CisgICAgICAgICAgICAmJiAobV9zdGF0ZSA9PSBEYXRhU3RhdGUKKyAgICAgICAg
ICAgICAgICB8fCBtX3N0YXRlID09IFJDREFUQVN0YXRlCisgICAgICAgICAgICAgICAgfHwgbV9z
dGF0ZSA9PSBSQVdURVhUU3RhdGUKKyAgICAgICAgICAgICAgICB8fCBtX3N0YXRlID09IFBMQUlO
VEVYVFN0YXRlKTsKKyAgICB9CiAKIHByaXZhdGU6CiAgICAgLy8gaHR0cDovL3d3dy53aGF0d2cu
b3JnL3NwZWNzL3dlYi1hcHBzL2N1cnJlbnQtd29yay8jcHJlcHJvY2Vzc2luZy10aGUtaW5wdXQt
c3RyZWFtCiAgICAgY2xhc3MgSW5wdXRTdHJlYW1QcmVwcm9jZXNzb3IgOiBwdWJsaWMgTm9uY29w
eWFibGUgewogICAgIHB1YmxpYzoKLSAgICAgICAgSW5wdXRTdHJlYW1QcmVwcm9jZXNzb3IoKQot
ICAgICAgICAgICAgOiBtX25leHRJbnB1dENoYXJhY3RlcignXDAnKQorICAgICAgICBJbnB1dFN0
cmVhbVByZXByb2Nlc3NvcihIVE1MVG9rZW5pemVyKiB0b2tlbml6ZXIpCisgICAgICAgICAgICA6
IG1fdG9rZW5pemVyKHRva2VuaXplcikKKyAgICAgICAgICAgICwgbV9uZXh0SW5wdXRDaGFyYWN0
ZXIoJ1wwJykKICAgICAgICAgICAgICwgbV9za2lwTmV4dE5ld0xpbmUoZmFsc2UpCiAgICAgICAg
IHsKICAgICAgICAgfQpAQCAtMTUxLDYgKzE2NCw3IEBAIHByaXZhdGU6CiAgICAgICAgIC8vIGNo
YXJhY3RlcnMgaW4gfHNvdXJjZXwgKGFmdGVyIGNvbGxhcHNpbmcgXHJcbiwgZXRjKS4KICAgICAg
ICAgQUxXQVlTX0lOTElORSBib29sIHBlZWsoU2VnbWVudGVkU3RyaW5nJiBzb3VyY2UsIGludCYg
bGluZU51bWJlcikKICAgICAgICAgeworICAgICAgICBQZWVrQWdhaW46CiAgICAgICAgICAgICBt
X25leHRJbnB1dENoYXJhY3RlciA9ICpzb3VyY2U7CiAKICAgICAgICAgICAgIC8vIEV2ZXJ5IGJy
YW5jaCBpbiB0aGlzIGZ1bmN0aW9uIGlzIGV4cGVuc2l2ZSwgc28gd2UgaGF2ZSBhCkBAIC0xNzks
OCArMTkzLDE1IEBAIHByaXZhdGU6CiAgICAgICAgICAgICAgICAgLy8gYSBudW1iZXIgb2Ygc3Bl
Y2lmaWMgY2hhcmFjdGVyIHZhbHVlcyBhcmUgcGFyc2UgZXJyb3JzIGFuZCBzaG91bGQgYmUgcmVw
bGFjZWQKICAgICAgICAgICAgICAgICAvLyBieSB0aGUgcmVwbGFjZW1lbnQgY2hhcmFjdGVyLiBX
ZSBzdXNwZWN0IHRoaXMgaXMgYSBwcm9ibGVtIHdpdGggdGhlIHNwZWMgYXMgZG9pbmcKICAgICAg
ICAgICAgICAgICAvLyB0aGF0IGZpbHRlcmluZyBicmVha3Mgc3Vycm9nYXRlIHBhaXIgaGFuZGxp
bmcgYW5kIGNhdXNlcyB1cyBub3QgdG8gbWF0Y2ggTWluZWZpZWxkLgotICAgICAgICAgICAgICAg
IGlmIChtX25leHRJbnB1dENoYXJhY3RlciA9PSAnXDAnICYmICFzaG91bGRUcmVhdE51bGxBc0Vu
ZE9mRmlsZU1hcmtlcihzb3VyY2UpKQorICAgICAgICAgICAgICAgIGlmIChtX25leHRJbnB1dENo
YXJhY3RlciA9PSAnXDAnICYmICFzaG91bGRUcmVhdE51bGxBc0VuZE9mRmlsZU1hcmtlcihzb3Vy
Y2UpKSB7CisgICAgICAgICAgICAgICAgICAgIGlmIChtX3Rva2VuaXplci0+c2hvdWxkU2tpcE51
bGxDaGFyYWN0ZXJzKCkpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHNvdXJjZS5hZHZhbmNl
UGFzdE5vbk5ld2xpbmUoKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIChzb3VyY2UuaXNF
bXB0eSgpKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAg
ICAgICAgICAgICAgICAgICAgIGdvdG8gUGVla0FnYWluOworICAgICAgICAgICAgICAgICAgICB9
CiAgICAgICAgICAgICAgICAgICAgIG1fbmV4dElucHV0Q2hhcmFjdGVyID0gMHhGRkZEOworICAg
ICAgICAgICAgICAgIH0KICAgICAgICAgICAgIH0KICAgICAgICAgICAgIHJldHVybiB0cnVlOwog
ICAgICAgICB9CkBAIC0yMDIsNiArMjIzLDggQEAgcHJpdmF0ZToKICAgICAgICAgICAgIHJldHVy
biBzb3VyY2UuaXNDbG9zZWQoKSAmJiBzb3VyY2UubGVuZ3RoKCkgPT0gMTsKICAgICAgICAgfQog
CisgICAgICAgIEhUTUxUb2tlbml6ZXIqIG1fdG9rZW5pemVyOworCiAgICAgICAgIC8vIGh0dHA6
Ly93d3cud2hhdHdnLm9yZy9zcGVjcy93ZWItYXBwcy9jdXJyZW50LXdvcmsvI25leHQtaW5wdXQt
Y2hhcmFjdGVyCiAgICAgICAgIFVDaGFyIG1fbmV4dElucHV0Q2hhcmFjdGVyOwogICAgICAgICBi
b29sIG1fc2tpcE5leHROZXdMaW5lOwpAQCAtMjQyLDYgKzI2NSw3IEBAIHByaXZhdGU6CiAgICAg
aW50IG1fbGluZU51bWJlcjsKIAogICAgIGJvb2wgbV9za2lwTGVhZGluZ05ld0xpbmVGb3JMaXN0
aW5nOworICAgIGJvb2wgbV9mb3JjZU51bGxDaGFyYWN0ZXJSZXBsYWNlbWVudDsKIAogICAgIC8v
IGh0dHA6Ly93d3cud2hhdHdnLm9yZy9zcGVjcy93ZWItYXBwcy9jdXJyZW50LXdvcmsvI3RlbXBv
cmFyeS1idWZmZXIKICAgICBWZWN0b3I8VUNoYXIsIDMyPiBtX3RlbXBvcmFyeUJ1ZmZlcjsKZGlm
ZiAtLWdpdCBhL1dlYkNvcmUvaHRtbC9IVE1MVHJlZUJ1aWxkZXIuY3BwIGIvV2ViQ29yZS9odG1s
L0hUTUxUcmVlQnVpbGRlci5jcHAKaW5kZXggMGUwZDIyMDg5NTZiZjM1MmI0N2QxMDA1YjI3NTBl
ZDBiN2EzOWE5My4uNjIzNWM4OGE3ZjM1YTY5MDNlOGM3NmZlNWY1ODhmYmVlMDI2YmVmYiAxMDA2
NDQKLS0tIGEvV2ViQ29yZS9odG1sL0hUTUxUcmVlQnVpbGRlci5jcHAKKysrIGIvV2ViQ29yZS9o
dG1sL0hUTUxUcmVlQnVpbGRlci5jcHAKQEAgLTQ2OSw3ICs0NjksNyBAQCB2b2lkIEhUTUxUcmVl
QnVpbGRlcjo6cGFzc1Rva2VuVG9MZWdhY3lQYXJzZXIoSFRNTFRva2VuJiB0b2tlbikKICAgICAg
ICAgICAgIG1fbGFzdFNjcmlwdEVsZW1lbnQgPSBzdGF0aWNfcG9pbnRlcl9jYXN0PEVsZW1lbnQ+
KHJlc3VsdCk7CiAgICAgICAgICAgICBtX2xhc3RTY3JpcHRFbGVtZW50U3RhcnRMaW5lID0gbV90
b2tlbml6ZXItPmxpbmVOdW1iZXIoKTsKICAgICAgICAgfSBlbHNlIGlmIChvbGRTdHlsZVRva2Vu
LnRhZ05hbWUgPT0gcHJlVGFnIHx8IG9sZFN0eWxlVG9rZW4udGFnTmFtZSA9PSBsaXN0aW5nVGFn
KQotICAgICAgICAgICAgbV90b2tlbml6ZXItPnNraXBMZWFkaW5nTmV3TGluZUZvckxpc3Rpbmco
KTsKKyAgICAgICAgICAgIG1fdG9rZW5pemVyLT5zZXRTa2lwTGVhZGluZ05ld0xpbmVGb3JMaXN0
aW5nKHRydWUpOwogICAgICAgICBlbHNlCiAgICAgICAgICAgICBtX3Rva2VuaXplci0+c2V0U3Rh
dGUoYWRqdXN0ZWRMZXhlclN0YXRlKG1fdG9rZW5pemVyLT5zdGF0ZSgpLCBvbGRTdHlsZVRva2Vu
LnRhZ05hbWUsIG1fZG9jdW1lbnQtPmZyYW1lKCkpKTsKICAgICB9IGVsc2UgaWYgKHRva2VuLnR5
cGUoKSA9PSBIVE1MVG9rZW46OkVuZFRhZykgewpAQCAtNTA5LDYgKzUwOSwxMSBAQCB2b2lkIEhU
TUxUcmVlQnVpbGRlcjo6Y29uc3RydWN0VHJlZUZyb21Ub2tlbihIVE1MVG9rZW4mIHJhd1Rva2Vu
KQogCiAgICAgQXRvbWljSFRNTFRva2VuIHRva2VuKHJhd1Rva2VuKTsKICAgICBwcm9jZXNzVG9r
ZW4odG9rZW4pOworCisgICAgLy8gU3dhbGxvd2luZyBVKzAwMDAgY2hhcmFjdGVycyBpc24ndCBp
biB0aGUgSFRNTDUgc3BlYywgYnV0IHR1cm5pbmcgYWxsCisgICAgLy8gdGhlIFUrMDAwMCBjaGFy
YWN0ZXJzIGludG8gcmVwbGFjZW1lbnQgY2hhcmFjdGVycyBoYXMgY29tcGF0aWJpbGl0eQorICAg
IC8vIHByb2JsZW1zLgorICAgIG1fdG9rZW5pemVyLT5zZXRGb3JjZU51bGxDaGFyYWN0ZXJSZXBs
YWNlbWVudChtX2luc2VydGlvbk1vZGUgPT0gVGV4dE1vZGUgfHwgbV9pbnNlcnRpb25Nb2RlID09
IEluRm9yZWlnbkNvbnRlbnRNb2RlKTsKIH0KIAogdm9pZCBIVE1MVHJlZUJ1aWxkZXI6OnByb2Nl
c3NUb2tlbihBdG9taWNIVE1MVG9rZW4mIHRva2VuKQpAQCAtODQ4LDcgKzg1Myw3IEBAIHZvaWQg
SFRNTFRyZWVCdWlsZGVyOjpwcm9jZXNzU3RhcnRUYWdGb3JJbkJvZHkoQXRvbWljSFRNTFRva2Vu
JiB0b2tlbikKICAgICBpZiAodG9rZW4ubmFtZSgpID09IHByZVRhZyB8fCB0b2tlbi5uYW1lKCkg
PT0gbGlzdGluZ1RhZykgewogICAgICAgICBwcm9jZXNzRmFrZVBFbmRUYWdJZlBJbkJ1dHRvblNj
b3BlKCk7CiAgICAgICAgIG1fdHJlZS5pbnNlcnRIVE1MRWxlbWVudCh0b2tlbik7Ci0gICAgICAg
IG1fdG9rZW5pemVyLT5za2lwTGVhZGluZ05ld0xpbmVGb3JMaXN0aW5nKCk7CisgICAgICAgIG1f
dG9rZW5pemVyLT5zZXRTa2lwTGVhZGluZ05ld0xpbmVGb3JMaXN0aW5nKHRydWUpOwogICAgICAg
ICBtX2ZyYW1lc2V0T2sgPSBmYWxzZTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KQEAgLTk2OCw3
ICs5NzMsNyBAQCB2b2lkIEhUTUxUcmVlQnVpbGRlcjo6cHJvY2Vzc1N0YXJ0VGFnRm9ySW5Cb2R5
KEF0b21pY0hUTUxUb2tlbiYgdG9rZW4pCiAgICAgfQogICAgIGlmICh0b2tlbi5uYW1lKCkgPT0g
dGV4dGFyZWFUYWcpIHsKICAgICAgICAgbV90cmVlLmluc2VydEhUTUxFbGVtZW50KHRva2VuKTsK
LSAgICAgICAgbV90b2tlbml6ZXItPnNraXBMZWFkaW5nTmV3TGluZUZvckxpc3RpbmcoKTsKKyAg
ICAgICAgbV90b2tlbml6ZXItPnNldFNraXBMZWFkaW5nTmV3TGluZUZvckxpc3RpbmcodHJ1ZSk7
CiAgICAgICAgIG1fdG9rZW5pemVyLT5zZXRTdGF0ZShIVE1MVG9rZW5pemVyOjpSQ0RBVEFTdGF0
ZSk7CiAgICAgICAgIG1fb3JpZ2luYWxJbnNlcnRpb25Nb2RlID0gbV9pbnNlcnRpb25Nb2RlOwog
ICAgICAgICBtX2ZyYW1lc2V0T2sgPSBmYWxzZTsK
</data>

          </attachment>
      

    </bug>

</bugzilla>