<?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>34436</bug_id>
          
          <creation_ts>2010-02-01 10:03:27 -0800</creation_ts>
          <short_desc>Change XSSAuditor block syntax</short_desc>
          <delta_ts>2010-03-31 23:50:49 -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>Frames</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>XSSAuditor</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>36933</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Adam Barth">abarth</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>dbates</cc>
    
    <cc>eric</cc>
    
    <cc>sam</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>186466</commentid>
    <comment_count>0</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2010-02-01 10:03:27 -0800</bug_when>
    <thetext>Apparently, it would be better if we used the following syntax for the full-page block header for XSSAuditor:

&quot;X-XSS-Protection:&quot; OWS &quot;1&quot; &quot;;&quot; 1*LWS &quot;mode&quot; &quot;=&quot; &quot;block&quot; OWS

in non-ABNF form, that looks like:

X-XSS-Protection: 1; mode=block</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>186469</commentid>
    <comment_count>1</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2010-02-01 10:09:47 -0800</bug_when>
    <thetext>Oops:

&quot;X-XSS-Protection:&quot; OWS &quot;1&quot; &quot;;&quot; &quot;mode&quot; &quot;=&quot; &quot;block&quot; OWS

Note that this is the &quot;new&quot; ABNF syntax, so the following would be valid:

X-XSS-Protection: 1;mode=block
X-XSS-Protection: 1 ; mode =block

because LWS (spaces and tabs) are allowed between each token.  Also the tokens are case insensitive.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>194325</commentid>
    <comment_count>2</comment_count>
      <attachid>49651</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2010-02-26 15:03:48 -0800</bug_when>
    <thetext>Created attachment 49651
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>194329</commentid>
    <comment_count>3</comment_count>
      <attachid>49653</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2010-02-26 15:06:55 -0800</bug_when>
    <thetext>Created attachment 49653
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>194469</commentid>
    <comment_count>4</comment_count>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2010-02-26 23:46:05 -0800</bug_when>
    <thetext>In the expected results file &quot;xss-protection-parsing-01-expected.txt&quot; there is a timed out fail message:

...
+CONSOLE MESSAGE: line 1: Refused to execute a JavaScript script. Source code of script found within request.
+
+FAIL: Timed out waiting for notifyDone to be called
+This tests our parsing of the X-XSS-Protection header.
...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>194474</commentid>
    <comment_count>5</comment_count>
      <attachid>49653</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2010-02-27 00:28:10 -0800</bug_when>
    <thetext>Comment on attachment 49653
Patch

Ah, that&apos;s no good.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>194475</commentid>
    <comment_count>6</comment_count>
      <attachid>49678</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2010-02-27 01:02:16 -0800</bug_when>
    <thetext>Created attachment 49678
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>199798</commentid>
    <comment_count>7</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-03-15 13:26:24 -0700</bug_when>
    <thetext>This matches some new spec?  How should a reviewer evaluate this patch?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>199801</commentid>
    <comment_count>8</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2010-03-15 13:28:11 -0700</bug_when>
    <thetext>&gt; This matches some new spec?  How should a reviewer evaluate this patch?

It matches what some IE folks asked us to use.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>201689</commentid>
    <comment_count>9</comment_count>
      <attachid>49678</attachid>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2010-03-18 21:17:18 -0700</bug_when>
    <thetext>Comment on attachment 49678
Patch


&gt; --- a/WebCore/ChangeLog
&gt; +++ b/WebCore/ChangeLog
&gt; @@ -1,3 +1,27 @@
&gt; +2010-02-27  Adam Barth  &lt;abarth@webkit.org&gt;
&gt; [...]
&gt; +        * WebCore.xcodeproj/project.pbxproj:

This line should be removed from the change log since this patch does not contain any changes to the WebCore Xcode project file.

&gt; -bool XSSAuditor::shouldFullPageBlockForXSSProtectionHeader() const
&gt; +XSSProtectionDisposition XSSAuditor::xssProtection() const
&gt;  {
&gt;      // If we detect an XSS attack and find the HTTP header &quot;X-XSS-Protection: 12&quot; then
&gt;      // we will stop loading the page as opposed to ignoring the script. The value &quot;12&quot;
&gt; @@ -302,9 +302,7 @@ bool XSSAuditor::shouldFullPageBlockForXSSProtectionHeader() const

Either this comment needs to removed or it needs to be updated since we are no longer using the &quot;12&quot; notation to do full-page blocking.

&gt; +XSSProtectionDisposition parseXSSProtectionHeader(const String&amp; header)
&gt; +{
&gt; +    String stippedHeader = header.stripWhiteSpace();
&gt; +
&gt; +    if (stippedHeader.isEmpty())
&gt; +        return XSSProtectionEnabled;
&gt; +
&gt; +    if (stippedHeader[0] == &apos;0&apos;)
&gt; +        return XSSProtectionDisabled;
&gt; +
&gt; +    int length = (int)header.length();

Minor style issue, the explicit cast to type integer (i.e. &quot;(int)&quot;) is unnecessary.

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>202059</commentid>
    <comment_count>10</comment_count>
      <attachid>51194</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2010-03-19 15:33:27 -0700</bug_when>
    <thetext>Created attachment 51194
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>202060</commentid>
    <comment_count>11</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2010-03-19 15:34:33 -0700</bug_when>
    <thetext>&gt; This line should be removed from the change log since this patch does not
&gt; contain any changes to the WebCore Xcode project file.

Fixed.

&gt; Either this comment needs to removed or it needs to be updated since we are no
&gt; longer using the &quot;12&quot; notation to do full-page blocking.

Removed.

&gt; Minor style issue, the explicit cast to type integer (i.e. &quot;(int)&quot;) is
&gt; unnecessary.

I left it in because it&apos;s converting from unsigned to signed and other instances in this file do it too.  (I think one of the ports might have a warning-as-error in this case.)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>202164</commentid>
    <comment_count>12</comment_count>
      <attachid>51194</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2010-03-19 20:55:20 -0700</bug_when>
    <thetext>Comment on attachment 51194
Patch for landing

Clearing flags on attachment: 51194

Committed r56295: &lt;http://trac.webkit.org/changeset/56295&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>202165</commentid>
    <comment_count>13</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2010-03-19 20:55:25 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>206783</commentid>
    <comment_count>14</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-03-31 15:59:22 -0700</bug_when>
    <thetext>http/tests/security/xssAuditor/xss-protection-parsing-01.html has failed on the Tiger bot ever since this commit.  Please fix. :)</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>49651</attachid>
            <date>2010-02-26 15:03:48 -0800</date>
            <delta_ts>2010-02-26 15:06:51 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-34436-20100226150346.patch</filename>
            <type>text/plain</type>
            <size>16762</size>
            <attacher name="Adam Barth">abarth</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCBjODg0YWMxLi5iZjY4MDllIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjMgQEAKKzIwMTAtMDIt
MjYgIEFkYW0gQmFydGggIDxhYmFydGhAd2Via2l0Lm9yZz4KKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBDaGFuZ2UgWFNTQXVkaXRvciBibG9jayBzeW50
YXgKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTM0NDM2
CisKKyAgICAgICAgVXBkYXRlIHRlc3RzIHRvIGFjY291bnQgZm9yIHRoZSBuZXcgYmxvY2tpbmcg
c3ludGF4LiAgQWRkZWQgdGVzdCBmb3IKKyAgICAgICAgZGlzYWJsaW5nIHRoZSBYU1MgZmlsdGVy
LgorCisgICAgICAgICogaHR0cC90ZXN0cy9zZWN1cml0eS94c3NBdWRpdG9yL21hbGZvcm1lZC14
c3MtcHJvdGVjdGlvbi1oZWFkZXItZXhwZWN0ZWQudHh0OgorICAgICAgICAqIGh0dHAvdGVzdHMv
c2VjdXJpdHkveHNzQXVkaXRvci9tYWxmb3JtZWQteHNzLXByb3RlY3Rpb24taGVhZGVyLmh0bWw6
CisgICAgICAgICogaHR0cC90ZXN0cy9zZWN1cml0eS94c3NBdWRpdG9yL25vLXByb3RlY3Rpb24t
c2NyaXB0LXRhZy1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvc2Vj
dXJpdHkveHNzQXVkaXRvci9uby1wcm90ZWN0aW9uLXNjcmlwdC10YWcuaHRtbDogQWRkZWQuCisg
ICAgICAgICogaHR0cC90ZXN0cy9zZWN1cml0eS94c3NBdWRpdG9yL3Jlc291cmNlcy9lY2hvLWhl
YWQtYmFzZS1ocmVmLnBsOgorICAgICAgICAqIGh0dHAvdGVzdHMvc2VjdXJpdHkveHNzQXVkaXRv
ci9yZXNvdXJjZXMvZWNoby1pbnRlcnRhZy1jbGljay1hbmQtbm90aWZ5LnBsOgorICAgICAgICAq
IGh0dHAvdGVzdHMvc2VjdXJpdHkveHNzQXVkaXRvci9yZXNvdXJjZXMvZWNoby1pbnRlcnRhZy5w
bDoKKyAgICAgICAgKiBodHRwL3Rlc3RzL3NlY3VyaXR5L3hzc0F1ZGl0b3IveHNzLXByb3RlY3Rp
b24tcGFyc2luZy0wMS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMv
c2VjdXJpdHkveHNzQXVkaXRvci94c3MtcHJvdGVjdGlvbi1wYXJzaW5nLTAxLmh0bWw6IEFkZGVk
LgorCiAyMDEwLTAyLTI2ICBEaXJrIFNjaHVsemUgIDxrcml0QHdlYmtpdC5vcmc+CiAKICAgICAg
ICAgUmV2aWV3ZWQgYnkgTmlrb2xhcyBaaW1tZXJtYW5uLgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvaHR0cC90ZXN0cy9zZWN1cml0eS94c3NBdWRpdG9yL21hbGZvcm1lZC14c3MtcHJvdGVjdGlv
bi1oZWFkZXItZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS94
c3NBdWRpdG9yL21hbGZvcm1lZC14c3MtcHJvdGVjdGlvbi1oZWFkZXItZXhwZWN0ZWQudHh0Cmlu
ZGV4IDBlZWZhZDMuLmVjOGRjYWUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMv
c2VjdXJpdHkveHNzQXVkaXRvci9tYWxmb3JtZWQteHNzLXByb3RlY3Rpb24taGVhZGVyLWV4cGVj
dGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L3hzc0F1ZGl0b3Iv
bWFsZm9ybWVkLXhzcy1wcm90ZWN0aW9uLWhlYWRlci1leHBlY3RlZC50eHQKQEAgLTcsNCArNyw0
IEBAIFRoaXMgdGVzdHMgdGhhdCB0aGUgWC1YU1MtUHJvdGVjdGlvbiBoZWFkZXIgaXMgbm90IGln
bm9yZWQgd2hlbiB0aGUgbGVuZ3RoIG9mIGl0CiAtLS0tLS0tLQogRnJhbWU6ICdmcmFtZScKIC0t
LS0tLS0tCi0KK0lmIHlvdSBzZWUgdGhpcyBtZXNzYWdlIGFuZCBubyBKYXZhU2NyaXB0IGFsZXJ0
KCkgdGhlbiB0aGUgdGVzdCBQQVNTRUQuCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rl
c3RzL3NlY3VyaXR5L3hzc0F1ZGl0b3IvbWFsZm9ybWVkLXhzcy1wcm90ZWN0aW9uLWhlYWRlci5o
dG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS94c3NBdWRpdG9yL21hbGZvcm1l
ZC14c3MtcHJvdGVjdGlvbi1oZWFkZXIuaHRtbAppbmRleCA2ODBjNDU1Li4xOTVmOTY1IDEwMDY0
NAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L3hzc0F1ZGl0b3IvbWFsZm9y
bWVkLXhzcy1wcm90ZWN0aW9uLWhlYWRlci5odG1sCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVz
dHMvc2VjdXJpdHkveHNzQXVkaXRvci9tYWxmb3JtZWQteHNzLXByb3RlY3Rpb24taGVhZGVyLmh0
bWwKQEAgLTEzLDcgKzEzLDcgQEAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikgewog
PC9oZWFkPgogPGJvZHk+CiA8cD5UaGlzIHRlc3RzIHRoYXQgdGhlIFgtWFNTLVByb3RlY3Rpb24g
aGVhZGVyIGlzIG5vdCBpZ25vcmVkIHdoZW4gdGhlIGxlbmd0aCBvZiBpdHMgdmFsdWUgZXhjZWVk
cyA8YSBocmVmPSJodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjczMTIj
YzEzIj4xNiBjaGFyYWN0ZXJzLjwvYT48L3A+Ci08aWZyYW1lIGlkPSJmcmFtZSIgb25sb2FkPSJj
aGVja0lmRnJhbWVMb2NhdGlvbk1hdGNoZXNVUkxBbmRDYWxsRG9uZSgnZnJhbWUnLCAnYWJvdXQ6
YmxhbmsnKSIgc3JjPSJodHRwOi8vMTI3LjAuMC4xOjgwMDAvc2VjdXJpdHkveHNzQXVkaXRvci9y
ZXNvdXJjZXMvZWNoby1pbnRlcnRhZy5wbD9jdXN0b20taGVhZGVyPVgtWFNTLVByb3RlY3Rpb246
IDEyMzQ1Njc4OTAxMjM0NTY3JnE9PHNjcmlwdD5hbGVydCgvWFNTLyk8L3NjcmlwdD48cD5JZiB5
b3Ugc2VlIHRoaXMgbWVzc2FnZSBhbmQgbm8gSmF2YVNjcmlwdCBhbGVydCgpIHRoZW4gdGhlIHRl
c3QgUEFTU0VELjwvcD4iPgorPGlmcmFtZSBpZD0iZnJhbWUiIG9ubG9hZD0iY2hlY2tJZkZyYW1l
TG9jYXRpb25NYXRjaGVzVVJMQW5kQ2FsbERvbmUoJ2ZyYW1lJywgJ2Fib3V0OmJsYW5rJykiIHNy
Yz0iaHR0cDovLzEyNy4wLjAuMTo4MDAwL3NlY3VyaXR5L3hzc0F1ZGl0b3IvcmVzb3VyY2VzL2Vj
aG8taW50ZXJ0YWcucGw/bm90aWZ5RG9uZT0xJmN1c3RvbS1oZWFkZXI9WC1YU1MtUHJvdGVjdGlv
bjogMTIzNDU2Nzg5MDEyMzQ1NjcmcT08c2NyaXB0PmFsZXJ0KC9YU1MvKTwvc2NyaXB0PjxwPklm
IHlvdSBzZWUgdGhpcyBtZXNzYWdlIGFuZCBubyBKYXZhU2NyaXB0IGFsZXJ0KCkgdGhlbiB0aGUg
dGVzdCBQQVNTRUQuPC9wPiI+CiA8L2lmcmFtZT4KIDwvYm9keT4KIDwvaHRtbD4KZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkveHNzQXVkaXRvci9uby1wcm90ZWN0
aW9uLXNjcmlwdC10YWctZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1
cml0eS94c3NBdWRpdG9yL25vLXByb3RlY3Rpb24tc2NyaXB0LXRhZy1leHBlY3RlZC50eHQKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uY2I1YTEyYQotLS0gL2Rldi9udWxsCisr
KyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkveHNzQXVkaXRvci9uby1wcm90ZWN0
aW9uLXNjcmlwdC10YWctZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNCBAQAorQUxFUlQ6IC9QQVNT
LworVGhpcyBzY3JpcHQgc2hvdWxkIHJ1biBiZWNhdXNlIFhTUyBwcm90ZWN0aW9uIGlzIGRpc2Fi
bGVkLgorCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkveHNz
QXVkaXRvci9uby1wcm90ZWN0aW9uLXNjcmlwdC10YWcuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAv
dGVzdHMvc2VjdXJpdHkveHNzQXVkaXRvci9uby1wcm90ZWN0aW9uLXNjcmlwdC10YWcuaHRtbApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5iMTJhODI3Ci0tLSAvZGV2L251bGwK
KysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS94c3NBdWRpdG9yL25vLXByb3Rl
Y3Rpb24tc2NyaXB0LXRhZy5odG1sCkBAIC0wLDAgKzEsMTcgQEAKKzwhRE9DVFlQRSBodG1sPgor
PGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQgc3JjPSJodHRwOi8vbG9jYWxob3N0OjgwMDAvc2VjdXJp
dHkveHNzQXVkaXRvci9yZXNvdXJjZXMvdXRpbGl0aWVzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQ+
CitpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKSB7CisgICAgbGF5b3V0VGVzdENvbnRy
b2xsZXIuZHVtcEFzVGV4dCgpOworICAgIGxheW91dFRlc3RDb250cm9sbGVyLnNldFhTU0F1ZGl0
b3JFbmFibGVkKHRydWUpOworfQorPC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxwPlRoaXMg
c2NyaXB0IHNob3VsZCBydW4gYmVjYXVzZSBYU1MgcHJvdGVjdGlvbiBpcyBkaXNhYmxlZC48L3A+
Cis8aWZyYW1lIGlkPSJmcmFtZSIgc3JjPSJodHRwOi8vMTI3LjAuMC4xOjgwMDAvc2VjdXJpdHkv
eHNzQXVkaXRvci9yZXNvdXJjZXMvZWNoby1pbnRlcnRhZy5wbD9kaXNhYmxlLXByb3RlY3Rpb249
MSZxPTxzY3JpcHQ+YWxlcnQoL1BBU1MvKTwvc2NyaXB0PiI+Cis8L2lmcmFtZT4KKzwvYm9keT4K
KzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkveHNz
QXVkaXRvci9yZXNvdXJjZXMvZWNoby1oZWFkLWJhc2UtaHJlZi5wbCBiL0xheW91dFRlc3RzL2h0
dHAvdGVzdHMvc2VjdXJpdHkveHNzQXVkaXRvci9yZXNvdXJjZXMvZWNoby1oZWFkLWJhc2UtaHJl
Zi5wbAppbmRleCAwMWE1ODk1Li4yYTc0NmYwIDEwMDc1NQotLS0gYS9MYXlvdXRUZXN0cy9odHRw
L3Rlc3RzL3NlY3VyaXR5L3hzc0F1ZGl0b3IvcmVzb3VyY2VzL2VjaG8taGVhZC1iYXNlLWhyZWYu
cGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS94c3NBdWRpdG9yL3Jlc291
cmNlcy9lY2hvLWhlYWQtYmFzZS1ocmVmLnBsCkBAIC01LDcgKzUsNyBAQCB1c2UgQ0dJOwogbXkg
JGNnaSA9IG5ldyBDR0k7CiAKIGlmICgkY2dpLT5wYXJhbSgnZW5hYmxlLWZ1bGwtYmxvY2snKSkg
ewotICAgIHByaW50ICJYLVhTUy1Qcm90ZWN0aW9uOiAxMlxuIjsKKyAgICBwcmludCAiWC1YU1Mt
UHJvdGVjdGlvbjogMTsgbW9kZT1ibG9ja1xuIjsKIH0KIHByaW50ICJDb250ZW50LVR5cGU6IHRl
eHQvaHRtbDsgY2hhcnNldD1VVEYtOFxuXG4iOwogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9o
dHRwL3Rlc3RzL3NlY3VyaXR5L3hzc0F1ZGl0b3IvcmVzb3VyY2VzL2VjaG8taW50ZXJ0YWctY2xp
Y2stYW5kLW5vdGlmeS5wbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkveHNzQXVk
aXRvci9yZXNvdXJjZXMvZWNoby1pbnRlcnRhZy1jbGljay1hbmQtbm90aWZ5LnBsCmluZGV4IDk3
ZjM3ZmMuLjZlMTAxN2UgMTAwNzU1Ci0tLSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJp
dHkveHNzQXVkaXRvci9yZXNvdXJjZXMvZWNoby1pbnRlcnRhZy1jbGljay1hbmQtbm90aWZ5LnBs
CisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkveHNzQXVkaXRvci9yZXNvdXJj
ZXMvZWNoby1pbnRlcnRhZy1jbGljay1hbmQtbm90aWZ5LnBsCkBAIC01LDcgKzUsNyBAQCB1c2Ug
Q0dJOwogbXkgJGNnaSA9IG5ldyBDR0k7CiAKIGlmICgkY2dpLT5wYXJhbSgnZW5hYmxlLWZ1bGwt
YmxvY2snKSkgewotICAgIHByaW50ICJYLVhTUy1Qcm90ZWN0aW9uOiAxMlxuIjsKKyAgICBwcmlu
dCAiWC1YU1MtUHJvdGVjdGlvbjogMTsgbW9kZT1ibG9ja1xuIjsKIH0KIHByaW50ICJDb250ZW50
LVR5cGU6IHRleHQvaHRtbDsgY2hhcnNldD1VVEYtOFxuXG4iOwogCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L3hzc0F1ZGl0b3IvcmVzb3VyY2VzL2VjaG8taW50
ZXJ0YWcucGwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L3hzc0F1ZGl0b3IvcmVz
b3VyY2VzL2VjaG8taW50ZXJ0YWcucGwKaW5kZXggMDUwNDZhYi4uNWM5M2UxYiAxMDA3NTUKLS0t
IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS94c3NBdWRpdG9yL3Jlc291cmNlcy9l
Y2hvLWludGVydGFnLnBsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkveHNz
QXVkaXRvci9yZXNvdXJjZXMvZWNoby1pbnRlcnRhZy5wbApAQCAtNSw3ICs1LDEwIEBAIHVzZSBD
R0k7CiBteSAkY2dpID0gbmV3IENHSTsKIAogaWYgKCRjZ2ktPnBhcmFtKCdlbmFibGUtZnVsbC1i
bG9jaycpKSB7Ci0gICAgcHJpbnQgIlgtWFNTLVByb3RlY3Rpb246IDEyXG4iOworICAgIHByaW50
ICJYLVhTUy1Qcm90ZWN0aW9uOiAxOyBtb2RlPWJsb2NrXG4iOworfQoraWYgKCRjZ2ktPnBhcmFt
KCdkaXNhYmxlLXByb3RlY3Rpb24nKSkgeworICAgIHByaW50ICJYLVhTUy1Qcm90ZWN0aW9uOiAw
XG4iOwogfQogaWYgKCRjZ2ktPnBhcmFtKCdjdXN0b20taGVhZGVyJykpIHsKICAgICBwcmludCAk
Y2dpLT5wYXJhbSgnY3VzdG9tLWhlYWRlcicpIC4gIlxuIjsKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkveHNzQXVkaXRvci94c3MtcHJvdGVjdGlvbi1wYXJzaW5n
LTAxLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkveHNzQXVk
aXRvci94c3MtcHJvdGVjdGlvbi1wYXJzaW5nLTAxLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwLi4wMzAyZDUzCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0
VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS94c3NBdWRpdG9yL3hzcy1wcm90ZWN0aW9uLXBhcnNp
bmctMDEtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTEgQEAKK0NPTlNPTEUgTUVTU0FHRTogbGlu
ZSAxOiBSZWZ1c2VkIHRvIGV4ZWN1dGUgYSBKYXZhU2NyaXB0IHNjcmlwdC4gU291cmNlIGNvZGUg
b2Ygc2NyaXB0IGZvdW5kIHdpdGhpbiByZXF1ZXN0LgorCitGQUlMOiBUaW1lZCBvdXQgd2FpdGlu
ZyBmb3Igbm90aWZ5RG9uZSB0byBiZSBjYWxsZWQKK1RoaXMgdGVzdHMgb3VyIHBhcnNpbmcgb2Yg
dGhlIFgtWFNTLVByb3RlY3Rpb24gaGVhZGVyLgorCisKKworLS0tLS0tLS0KK0ZyYW1lOiAnZnJh
bWUnCistLS0tLS0tLQorSWYgeW91IHNlZSB0aGlzIG1lc3NhZ2UgdGhlbiB0aGUgdGVzdCBGQUlM
RUQuCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L3hzc0F1ZGl0
b3IveHNzLXByb3RlY3Rpb24tcGFyc2luZy0wMS5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0
cy9zZWN1cml0eS94c3NBdWRpdG9yL3hzcy1wcm90ZWN0aW9uLXBhcnNpbmctMDEuaHRtbApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45NWYyMDVlCi0tLSAvZGV2L251bGwKKysr
IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS94c3NBdWRpdG9yL3hzcy1wcm90ZWN0
aW9uLXBhcnNpbmctMDEuaHRtbApAQCAtMCwwICsxLDE5IEBACis8IURPQ1RZUEUgaHRtbD4KKzxo
dG1sPgorPGhlYWQ+Cis8c2NyaXB0IHNyYz0iaHR0cDovL2xvY2FsaG9zdDo4MDAwL3NlY3VyaXR5
L3hzc0F1ZGl0b3IvcmVzb3VyY2VzL3V0aWxpdGllcy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0Pgor
aWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikgeworICAgIGxheW91dFRlc3RDb250cm9s
bGVyLmR1bXBBc1RleHQoKTsKKyAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQ2hpbGRGcmFt
ZXNBc1RleHQoKTsKKyAgICBsYXlvdXRUZXN0Q29udHJvbGxlci53YWl0VW50aWxEb25lKCk7Cisg
ICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuc2V0WFNTQXVkaXRvckVuYWJsZWQodHJ1ZSk7Cit9Cis8
L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHA+VGhpcyB0ZXN0cyBvdXIgcGFyc2luZyBvZiB0
aGUgWC1YU1MtUHJvdGVjdGlvbiBoZWFkZXIuPC9wPgorPGlmcmFtZSBpZD0iZnJhbWUiIG9ubG9h
ZD0iY2hlY2tJZkZyYW1lTG9jYXRpb25NYXRjaGVzVVJMQW5kQ2FsbERvbmUoJ2ZyYW1lJywgJ2Fi
b3V0OmJsYW5rJykiIHNyYz0iaHR0cDovLzEyNy4wLjAuMTo4MDAwL3NlY3VyaXR5L3hzc0F1ZGl0
b3IvcmVzb3VyY2VzL2VjaG8taW50ZXJ0YWcucGw/Y3VzdG9tLWhlYWRlcj1YLVhTUy1Qcm90ZWN0
aW9uOiAgIDEgIDsgTW9EZSA9ICBiTG9jSyAgICZxPTxzY3JpcHQ+YWxlcnQoL1hTUy8pPC9zY3Jp
cHQ+PHA+SWYgeW91IHNlZSB0aGlzIG1lc3NhZ2UgdGhlbiB0aGUgdGVzdCBGQUlMRUQuPC9wPiI+
Cis8L2lmcmFtZT4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdl
TG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNzU2ZDMxNi4uZGEzYTYzYSAxMDA2NDQKLS0t
IGEvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsNSArMSwy
OSBAQAogMjAxMC0wMi0yNiAgQWRhbSBCYXJ0aCAgPGFiYXJ0aEB3ZWJraXQub3JnPgogCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIENoYW5nZSBYU1NBdWRp
dG9yIGJsb2NrIHN5bnRheAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MzQ0MzYKKworICAgICAgICBVcGRhdGUgb3VyIGJsb2NraW5nIHN5bnRheCB0byBz
b21ldGhpbmcgbW9yZSByZWFzb25hYmxlLiAgQWxzbywKKyAgICAgICAgaW1wbGVtZW50ZWQgYSB3
YXkgZm9yIGEgd2ViIHNpdGUgdG8gZGlzYWJsZSB0aGUgZmlsdGVyLgorCisgICAgICAgIFRlc3Rz
OiBodHRwL3Rlc3RzL3NlY3VyaXR5L3hzc0F1ZGl0b3Ivbm8tcHJvdGVjdGlvbi1zY3JpcHQtdGFn
Lmh0bWwKKyAgICAgICAgICAgICAgIGh0dHAvdGVzdHMvc2VjdXJpdHkveHNzQXVkaXRvci94c3Mt
cHJvdGVjdGlvbi1wYXJzaW5nLTAxLmh0bWwKKworICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9q
L3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBwYWdlL1hTU0F1ZGl0b3IuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6WFNTQXVkaXRvcjo6eHNzUHJvdGVjdGlvbik6CisgICAgICAgIChXZWJDb3Jl
OjpYU1NBdWRpdG9yOjpmaW5kSW5SZXF1ZXN0KToKKyAgICAgICAgKiBwYWdlL1hTU0F1ZGl0b3Iu
aDoKKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL0hUVFBQYXJzZXJzLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OnNraXBUb2tlbik6CisgICAgICAgIChXZWJDb3JlOjpwYXJzZVhTU1Byb3RlY3Rp
b25IZWFkZXIpOgorICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsvSFRUUFBhcnNlcnMuaDoKKyAg
ICAgICAgKFdlYkNvcmU6Oik6CisKKzIwMTAtMDItMjYgIEFkYW0gQmFydGggIDxhYmFydGhAd2Vi
a2l0Lm9yZz4KKwogICAgICAgICBSZXZpZXdlZCBieSBEYXJpbiBBZGxlci4KIAogICAgICAgICBY
U1NBdWRpdG9yIGlzIHN1cGVyIHN1cGVyIHN1cGVyIHNsb3cKZGlmZiAtLWdpdCBhL1dlYkNvcmUv
V2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvV2ViQ29yZS9XZWJDb3JlLnhjb2Rl
cHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggMTk2MGNkNC4uYjExNjY3ZCAxMDA2NDQKLS0tIGEv
V2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvV2ViQ29yZS9X
ZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTE3OTg2LDcgKzE3OTg2LDcgQEAK
IAkJCQk4NTNDQTlERDBBRUVDNUU5MDAyMzcyREMgLyogUmVuZGVyU1ZHSW5saW5lVGV4dC5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJQThGNUMwQjgwRjkyODVBQzAwOThFMDZCIC8qIFJlbmRlclNWR01v
ZGVsT2JqZWN0LmggaW4gSGVhZGVycyAqLywKIAkJCQkwODMxOTJBQTExMkI0MzA1MDA4M0MzQjkg
LyogUmVuZGVyU1ZHUmVzb3VyY2UuaCBpbiBIZWFkZXJzICovLAotIAkJCQk4NEJEQTE2QzExMzU4
RDJBMDBEQkY2NEMgLyogUmVuZGVyU1ZHUmVzb3VyY2VDbGlwcGVyLmggaW4gSGVhZGVycyAqLywK
KwkJCQk4NEJEQTE2QzExMzU4RDJBMDBEQkY2NEMgLyogUmVuZGVyU1ZHUmVzb3VyY2VDbGlwcGVy
LmggaW4gSGVhZGVycyAqLywKIAkJCQkwODMxOTJBQzExMkI0MzA1MDA4M0MzQjkgLyogUmVuZGVy
U1ZHUmVzb3VyY2VNYXNrZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCUFBMzFCNUI1MEMxREZEMTAw
MEFFNzA4MyAvKiBSZW5kZXJTVkdSb290LmggaW4gSGVhZGVycyAqLywKIAkJCQkwOERBQjlCQjEx
MDNEOUE1MDAzRTdBQkEgLyogUmVuZGVyU1ZHU2hhZG93VHJlZVJvb3RDb250YWluZXIuaCBpbiBI
ZWFkZXJzICovLApAQCAtMjAyMzUsNyArMjAyMzUsNyBAQAogCQkJCTg1M0NBOURBMEFFRUM1RTkw
MDIzNzJEQyAvKiBSZW5kZXJTVkdJbmxpbmUuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJODUzQ0E5
REMwQUVFQzVFOTAwMjM3MkRDIC8qIFJlbmRlclNWR0lubGluZVRleHQuY3BwIGluIFNvdXJjZXMg
Ki8sCiAJCQkJQThGNUMwQjkwRjkyODVBQzAwOThFMDZCIC8qIFJlbmRlclNWR01vZGVsT2JqZWN0
LmNwcCBpbiBTb3VyY2VzICovLAotIAkJCQk4NEJEQTE2QjExMzU4RDJBMDBEQkY2NEMgLyogUmVu
ZGVyU1ZHUmVzb3VyY2VDbGlwcGVyLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTg0QkRBMTZCMTEz
NThEMkEwMERCRjY0QyAvKiBSZW5kZXJTVkdSZXNvdXJjZUNsaXBwZXIuY3BwIGluIFNvdXJjZXMg
Ki8sCiAJCQkJMDgzMTkyQUIxMTJCNDMwNTAwODNDM0I5IC8qIFJlbmRlclNWR1Jlc291cmNlTWFz
a2VyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUFBMzFCNUI0MEMxREZEMTAwMEFFNzA4MyAvKiBS
ZW5kZXJTVkdSb290LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTA4REFCOUJBMTEwM0Q5QTUwMDNF
N0FCQSAvKiBSZW5kZXJTVkdTaGFkb3dUcmVlUm9vdENvbnRhaW5lci5jcHAgaW4gU291cmNlcyAq
LywKZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGFnZS9YU1NBdWRpdG9yLmNwcCBiL1dlYkNvcmUvcGFn
ZS9YU1NBdWRpdG9yLmNwcAppbmRleCAwZGY3MzY0Li44NDliMmY3IDEwMDY0NAotLS0gYS9XZWJD
b3JlL3BhZ2UvWFNTQXVkaXRvci5jcHAKKysrIGIvV2ViQ29yZS9wYWdlL1hTU0F1ZGl0b3IuY3Bw
CkBAIC0yOTAsNyArMjkwLDcgQEAgYm9vbCBYU1NBdWRpdG9yOjppc1NhbWVPcmlnaW5SZXNvdXJj
ZShjb25zdCBTdHJpbmcmIHVybCkgY29uc3QKICAgICByZXR1cm4gKG1fZnJhbWUtPmRvY3VtZW50
KCktPnVybCgpLmhvc3QoKSA9PSByZXNvdXJjZVVSTC5ob3N0KCkgJiYgcmVzb3VyY2VVUkwucXVl
cnkoKS5pc0VtcHR5KCkpOwogfQogCi1ib29sIFhTU0F1ZGl0b3I6OnNob3VsZEZ1bGxQYWdlQmxv
Y2tGb3JYU1NQcm90ZWN0aW9uSGVhZGVyKCkgY29uc3QKK1hTU1Byb3RlY3Rpb25EaXNwb3NpdGlv
biBYU1NBdWRpdG9yOjp4c3NQcm90ZWN0aW9uKCkgY29uc3QKIHsKICAgICAvLyBJZiB3ZSBkZXRl
Y3QgYW4gWFNTIGF0dGFjayBhbmQgZmluZCB0aGUgSFRUUCBoZWFkZXIgIlgtWFNTLVByb3RlY3Rp
b246IDEyIiB0aGVuCiAgICAgLy8gd2Ugd2lsbCBzdG9wIGxvYWRpbmcgdGhlIHBhZ2UgYXMgb3Bw
b3NlZCB0byBpZ25vcmluZyB0aGUgc2NyaXB0LiBUaGUgdmFsdWUgIjEyIgpAQCAtMzAyLDkgKzMw
Miw3IEBAIGJvb2wgWFNTQXVkaXRvcjo6c2hvdWxkRnVsbFBhZ2VCbG9ja0ZvclhTU1Byb3RlY3Rp
b25IZWFkZXIoKSBjb25zdAogICAgIGlmIChmcmFtZS0+ZG9jdW1lbnQoKS0+dXJsKCkgPT0gYmxh
bmtVUkwoKSkKICAgICAgICAgZnJhbWUgPSBtX2ZyYW1lLT50cmVlKCktPnBhcmVudCgpOwogCi0g
ICAgLy8gV2Ugc3RyaXAgYW55IHdoaXRlc3BhY2UgY2hhcmFjdGVycyB0byBjb25mb3JtIHRvIHRo
ZSBiZWhhdmlvciBpbiBJbnRlcm5ldCBFeHBsb3Jlci4KLSAgICBTdHJpbmcgeHNzUHJvdGVjdGlv
blZhbHVlID0gZnJhbWUtPmxvYWRlcigpLT5kb2N1bWVudExvYWRlcigpLT5yZXNwb25zZSgpLmh0
dHBIZWFkZXJGaWVsZChYU1NQcm90ZWN0aW9uSGVhZGVyKS5zdHJpcFdoaXRlU3BhY2UoKTsKLSAg
ICByZXR1cm4gKHhzc1Byb3RlY3Rpb25WYWx1ZS5sZW5ndGgoKSA+PSAyICYmIHhzc1Byb3RlY3Rp
b25WYWx1ZVswXSA9PSAnMScgJiYgeHNzUHJvdGVjdGlvblZhbHVlWzFdID09ICcyJyk7CisgICAg
cmV0dXJuIHBhcnNlWFNTUHJvdGVjdGlvbkhlYWRlcihmcmFtZS0+bG9hZGVyKCktPmRvY3VtZW50
TG9hZGVyKCktPnJlc3BvbnNlKCkuaHR0cEhlYWRlckZpZWxkKFhTU1Byb3RlY3Rpb25IZWFkZXIp
KTsKIH0KIAogYm9vbCBYU1NBdWRpdG9yOjpmaW5kSW5SZXF1ZXN0KGNvbnN0IEZpbmRUYXNrJiB0
YXNrKSBjb25zdApAQCAtMzE4LDExICszMTYsMjQgQEAgYm9vbCBYU1NBdWRpdG9yOjpmaW5kSW5S
ZXF1ZXN0KGNvbnN0IEZpbmRUYXNrJiB0YXNrKSBjb25zdAogICAgICAgICByZXN1bHQgPSBmaW5k
SW5SZXF1ZXN0KG1fZnJhbWUsIHRhc2spOwogICAgICAgICBibG9ja0ZyYW1lID0gbV9mcmFtZTsK
ICAgICB9Ci0gICAgaWYgKHJlc3VsdCAmJiBibG9ja0ZyYW1lICYmIHNob3VsZEZ1bGxQYWdlQmxv
Y2tGb3JYU1NQcm90ZWN0aW9uSGVhZGVyKCkpIHsKLSAgICAgICAgYmxvY2tGcmFtZS0+bG9hZGVy
KCktPnN0b3BBbGxMb2FkZXJzKCk7Ci0gICAgICAgIGJsb2NrRnJhbWUtPnJlZGlyZWN0U2NoZWR1
bGVyKCktPnNjaGVkdWxlTG9jYXRpb25DaGFuZ2UoYmxhbmtVUkwoKSwgU3RyaW5nKCkpOworICAg
IGlmICghcmVzdWx0KQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICBzd2l0Y2ggKHhzc1By
b3RlY3Rpb24oKSkgeworICAgIGNhc2UgWFNTUHJvdGVjdGlvbkRpc2FibGVkOgorICAgICAgICBy
ZXR1cm4gZmFsc2U7CisgICAgY2FzZSBYU1NQcm90ZWN0aW9uRW5hYmxlZDoKKyAgICAgICAgYnJl
YWs7CisgICAgY2FzZSBYU1NQcm90ZWN0aW9uQmxvY2tFbmFibGVkOgorICAgICAgICBpZiAoYmxv
Y2tGcmFtZSkgeworICAgICAgICAgICAgYmxvY2tGcmFtZS0+bG9hZGVyKCktPnN0b3BBbGxMb2Fk
ZXJzKCk7CisgICAgICAgICAgICBibG9ja0ZyYW1lLT5yZWRpcmVjdFNjaGVkdWxlcigpLT5zY2hl
ZHVsZUxvY2F0aW9uQ2hhbmdlKGJsYW5rVVJMKCksIFN0cmluZygpKTsKKyAgICAgICAgfQorICAg
ICAgICBicmVhazsKKyAgICBkZWZhdWx0OgorICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsK
ICAgICB9Ci0gICAgcmV0dXJuIHJlc3VsdDsKKyAgICByZXR1cm4gdHJ1ZTsKIH0KIAogYm9vbCBY
U1NBdWRpdG9yOjpmaW5kSW5SZXF1ZXN0KEZyYW1lKiBmcmFtZSwgY29uc3QgRmluZFRhc2smIHRh
c2spIGNvbnN0CmRpZmYgLS1naXQgYS9XZWJDb3JlL3BhZ2UvWFNTQXVkaXRvci5oIGIvV2ViQ29y
ZS9wYWdlL1hTU0F1ZGl0b3IuaAppbmRleCBiZmY2Y2JlLi5hNzYyOGYzIDEwMDY0NAotLS0gYS9X
ZWJDb3JlL3BhZ2UvWFNTQXVkaXRvci5oCisrKyBiL1dlYkNvcmUvcGFnZS9YU1NBdWRpdG9yLmgK
QEAgLTI3LDYgKzI3LDcgQEAKICNpZm5kZWYgWFNTQXVkaXRvcl9oCiAjZGVmaW5lIFhTU0F1ZGl0
b3JfaAogCisjaW5jbHVkZSAiSFRUUFBhcnNlcnMuaCIKICNpbmNsdWRlICJQbGF0Zm9ybVN0cmlu
Zy5oIgogI2luY2x1ZGUgIlRleHRFbmNvZGluZy5oIgogCkBAIC0xNDQsNyArMTQ1LDcgQEAgbmFt
ZXNwYWNlIFdlYkNvcmUgewogICAgICAgICBib29sIGZpbmRJblJlcXVlc3QoY29uc3QgRmluZFRh
c2smKSBjb25zdDsKICAgICAgICAgYm9vbCBmaW5kSW5SZXF1ZXN0KEZyYW1lKiwgY29uc3QgRmlu
ZFRhc2smKSBjb25zdDsKIAotICAgICAgICBib29sIHNob3VsZEZ1bGxQYWdlQmxvY2tGb3JYU1NQ
cm90ZWN0aW9uSGVhZGVyKCkgY29uc3Q7CisgICAgICAgIFhTU1Byb3RlY3Rpb25EaXNwb3NpdGlv
biB4c3NQcm90ZWN0aW9uKCkgY29uc3Q7CiAKICAgICAgICAgLy8gVGhlIGZyYW1lIHRvIGF1ZGl0
LgogICAgICAgICBGcmFtZSogbV9mcmFtZTsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGxhdGZvcm0v
bmV0d29yay9IVFRQUGFyc2Vycy5jcHAgYi9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvSFRUUFBh
cnNlcnMuY3BwCmluZGV4IDkyMDI2NjAuLjI2NDUzOGIgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGxh
dGZvcm0vbmV0d29yay9IVFRQUGFyc2Vycy5jcHAKKysrIGIvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3
b3JrL0hUVFBQYXJzZXJzLmNwcApAQCAtNTUsNiArNTUsMjEgQEAgc3RhdGljIGlubGluZSBib29s
IHNraXBXaGl0ZVNwYWNlKGNvbnN0IFN0cmluZyYgc3RyLCBpbnQmIHBvcywgYm9vbCBmcm9tSHR0
cEVxdWkKICAgICByZXR1cm4gcG9zICE9IGxlbjsKIH0KIAorLy8gUmV0dXJucyB0cnVlIGlmIHRo
ZSBmdW5jdGlvbiBjYW4gbWF0Y2ggdGhlIHdob2xlIHRva2VuIChjYXNlIGluc2Vuc2l0aXZlKS4K
Ky8vIE5vdGU6IE1pZ2h0IHJldHVybiBwb3MgPT0gc3RyLmxlbmd0aCgpCitzdGF0aWMgaW5saW5l
IGJvb2wgc2tpcFRva2VuKGNvbnN0IFN0cmluZyYgc3RyLCBpbnQmIHBvcywgY29uc3QgY2hhciog
dG9rZW4pCit7CisgICAgaW50IGxlbiA9IHN0ci5sZW5ndGgoKTsKKworICAgIHdoaWxlIChwb3Mg
IT0gbGVuICYmICp0b2tlbikgeworICAgICAgICBpZiAodG9BU0NJSUxvd2VyKHN0cltwb3NdKSAh
PSAqdG9rZW4rKykKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgKytwb3M7Cisg
ICAgfQorCisgICAgcmV0dXJuIHRydWU7Cit9CisKIGJvb2wgcGFyc2VIVFRQUmVmcmVzaChjb25z
dCBTdHJpbmcmIHJlZnJlc2gsIGJvb2wgZnJvbUh0dHBFcXVpdk1ldGEsIGRvdWJsZSYgZGVsYXks
IFN0cmluZyYgdXJsKQogewogICAgIGludCBsZW4gPSByZWZyZXNoLmxlbmd0aCgpOwpAQCAtMjIw
LDQgKzIzNSwzMiBAQCBTdHJpbmcgZXh0cmFjdENoYXJzZXRGcm9tTWVkaWFUeXBlKGNvbnN0IFN0
cmluZyYgbWVkaWFUeXBlKQogICAgIAogICAgIHJldHVybiBTdHJpbmcoKTsKIH0KKworWFNTUHJv
dGVjdGlvbkRpc3Bvc2l0aW9uIHBhcnNlWFNTUHJvdGVjdGlvbkhlYWRlcihjb25zdCBTdHJpbmcm
IGhlYWRlcikKK3sKKyAgICBTdHJpbmcgc3RpcHBlZEhlYWRlciA9IGhlYWRlci5zdHJpcFdoaXRl
U3BhY2UoKTsKKworICAgIGlmIChzdGlwcGVkSGVhZGVyLmlzRW1wdHkoKSkKKyAgICAgICAgcmV0
dXJuIFhTU1Byb3RlY3Rpb25FbmFibGVkOworCisgICAgaWYgKHN0aXBwZWRIZWFkZXJbMF0gPT0g
JzAnKQorICAgICAgICByZXR1cm4gWFNTUHJvdGVjdGlvbkRpc2FibGVkOworCisgICAgaW50IGxl
bmd0aCA9IChpbnQpaGVhZGVyLmxlbmd0aCgpOworICAgIGludCBwb3MgPSAwOworICAgIGlmIChz
dGlwcGVkSGVhZGVyW3BvcysrXSA9PSAnMScKKyAgICAgICAgJiYgc2tpcFdoaXRlU3BhY2Uoc3Rp
cHBlZEhlYWRlciwgcG9zLCBmYWxzZSkKKyAgICAgICAgJiYgc3RpcHBlZEhlYWRlcltwb3MrK10g
PT0gJzsnCisgICAgICAgICYmIHNraXBXaGl0ZVNwYWNlKHN0aXBwZWRIZWFkZXIsIHBvcywgZmFs
c2UpCisgICAgICAgICYmIHNraXBUb2tlbihzdGlwcGVkSGVhZGVyLCBwb3MsICJtb2RlIikKKyAg
ICAgICAgJiYgc2tpcFdoaXRlU3BhY2Uoc3RpcHBlZEhlYWRlciwgcG9zLCBmYWxzZSkKKyAgICAg
ICAgJiYgc3RpcHBlZEhlYWRlcltwb3MrK10gPT0gJz0nCisgICAgICAgICYmIHNraXBXaGl0ZVNw
YWNlKHN0aXBwZWRIZWFkZXIsIHBvcywgZmFsc2UpCisgICAgICAgICYmIHNraXBUb2tlbihzdGlw
cGVkSGVhZGVyLCBwb3MsICJibG9jayIpCisgICAgICAgICYmIHBvcyA9PSBsZW5ndGgpCisgICAg
ICAgIHJldHVybiBYU1NQcm90ZWN0aW9uQmxvY2tFbmFibGVkOworCisgICAgcmV0dXJuIFhTU1By
b3RlY3Rpb25FbmFibGVkOworfQorCiB9CmRpZmYgLS1naXQgYS9XZWJDb3JlL3BsYXRmb3JtL25l
dHdvcmsvSFRUUFBhcnNlcnMuaCBiL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9IVFRQUGFyc2Vy
cy5oCmluZGV4IDA2NDhhZWUuLmIxY2I3MDkgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGxhdGZvcm0v
bmV0d29yay9IVFRQUGFyc2Vycy5oCisrKyBiL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9IVFRQ
UGFyc2Vycy5oCkBAIC0zMSwxMyArMzEsMjEgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi0g
ICAgY2xhc3MgU3RyaW5nOworY2xhc3MgU3RyaW5nOworCitlbnVtIFhTU1Byb3RlY3Rpb25EaXNw
b3NpdGlvbiB7CisgICAgWFNTUHJvdGVjdGlvbkRpc2FibGVkLAorICAgIFhTU1Byb3RlY3Rpb25F
bmFibGVkLAorICAgIFhTU1Byb3RlY3Rpb25CbG9ja0VuYWJsZWQKK307CisKK2Jvb2wgcGFyc2VI
VFRQUmVmcmVzaChjb25zdCBTdHJpbmcmIHJlZnJlc2gsIGJvb2wgZnJvbUh0dHBFcXVpdk1ldGEs
IGRvdWJsZSYgZGVsYXksIFN0cmluZyYgdXJsKTsKK2RvdWJsZSBwYXJzZURhdGUoY29uc3QgU3Ry
aW5nJik7CitTdHJpbmcgZmlsZW5hbWVGcm9tSFRUUENvbnRlbnREaXNwb3NpdGlvbihjb25zdCBT
dHJpbmcmKTsgCitTdHJpbmcgZXh0cmFjdE1JTUVUeXBlRnJvbU1lZGlhVHlwZShjb25zdCBTdHJp
bmcmKTsKK1N0cmluZyBleHRyYWN0Q2hhcnNldEZyb21NZWRpYVR5cGUoY29uc3QgU3RyaW5nJik7
IAorWFNTUHJvdGVjdGlvbkRpc3Bvc2l0aW9uIHBhcnNlWFNTUHJvdGVjdGlvbkhlYWRlcihjb25z
dCBTdHJpbmcmKTsKIAotICAgIGJvb2wgcGFyc2VIVFRQUmVmcmVzaChjb25zdCBTdHJpbmcmIHJl
ZnJlc2gsIGJvb2wgZnJvbUh0dHBFcXVpdk1ldGEsIGRvdWJsZSYgZGVsYXksIFN0cmluZyYgdXJs
KTsKLSAgICBkb3VibGUgcGFyc2VEYXRlKGNvbnN0IFN0cmluZyYpOwotICAgIFN0cmluZyBmaWxl
bmFtZUZyb21IVFRQQ29udGVudERpc3Bvc2l0aW9uKGNvbnN0IFN0cmluZyYpOyAKLSAgICBTdHJp
bmcgZXh0cmFjdE1JTUVUeXBlRnJvbU1lZGlhVHlwZShjb25zdCBTdHJpbmcmKTsKLSAgICBTdHJp
bmcgZXh0cmFjdENoYXJzZXRGcm9tTWVkaWFUeXBlKGNvbnN0IFN0cmluZyYpOyAKIH0KIAogI2Vu
ZGlmCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>49653</attachid>
            <date>2010-02-26 15:06:55 -0800</date>
            <delta_ts>2010-02-27 01:02:12 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-34436-20100226150653.patch</filename>
            <type>text/plain</type>
            <size>15313</size>
            <attacher name="Adam Barth">abarth</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCBjODg0YWMxLi5iZjY4MDllIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjMgQEAKKzIwMTAtMDIt
MjYgIEFkYW0gQmFydGggIDxhYmFydGhAd2Via2l0Lm9yZz4KKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBDaGFuZ2UgWFNTQXVkaXRvciBibG9jayBzeW50
YXgKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTM0NDM2
CisKKyAgICAgICAgVXBkYXRlIHRlc3RzIHRvIGFjY291bnQgZm9yIHRoZSBuZXcgYmxvY2tpbmcg
c3ludGF4LiAgQWRkZWQgdGVzdCBmb3IKKyAgICAgICAgZGlzYWJsaW5nIHRoZSBYU1MgZmlsdGVy
LgorCisgICAgICAgICogaHR0cC90ZXN0cy9zZWN1cml0eS94c3NBdWRpdG9yL21hbGZvcm1lZC14
c3MtcHJvdGVjdGlvbi1oZWFkZXItZXhwZWN0ZWQudHh0OgorICAgICAgICAqIGh0dHAvdGVzdHMv
c2VjdXJpdHkveHNzQXVkaXRvci9tYWxmb3JtZWQteHNzLXByb3RlY3Rpb24taGVhZGVyLmh0bWw6
CisgICAgICAgICogaHR0cC90ZXN0cy9zZWN1cml0eS94c3NBdWRpdG9yL25vLXByb3RlY3Rpb24t
c2NyaXB0LXRhZy1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvc2Vj
dXJpdHkveHNzQXVkaXRvci9uby1wcm90ZWN0aW9uLXNjcmlwdC10YWcuaHRtbDogQWRkZWQuCisg
ICAgICAgICogaHR0cC90ZXN0cy9zZWN1cml0eS94c3NBdWRpdG9yL3Jlc291cmNlcy9lY2hvLWhl
YWQtYmFzZS1ocmVmLnBsOgorICAgICAgICAqIGh0dHAvdGVzdHMvc2VjdXJpdHkveHNzQXVkaXRv
ci9yZXNvdXJjZXMvZWNoby1pbnRlcnRhZy1jbGljay1hbmQtbm90aWZ5LnBsOgorICAgICAgICAq
IGh0dHAvdGVzdHMvc2VjdXJpdHkveHNzQXVkaXRvci9yZXNvdXJjZXMvZWNoby1pbnRlcnRhZy5w
bDoKKyAgICAgICAgKiBodHRwL3Rlc3RzL3NlY3VyaXR5L3hzc0F1ZGl0b3IveHNzLXByb3RlY3Rp
b24tcGFyc2luZy0wMS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMv
c2VjdXJpdHkveHNzQXVkaXRvci94c3MtcHJvdGVjdGlvbi1wYXJzaW5nLTAxLmh0bWw6IEFkZGVk
LgorCiAyMDEwLTAyLTI2ICBEaXJrIFNjaHVsemUgIDxrcml0QHdlYmtpdC5vcmc+CiAKICAgICAg
ICAgUmV2aWV3ZWQgYnkgTmlrb2xhcyBaaW1tZXJtYW5uLgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvaHR0cC90ZXN0cy9zZWN1cml0eS94c3NBdWRpdG9yL21hbGZvcm1lZC14c3MtcHJvdGVjdGlv
bi1oZWFkZXItZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS94
c3NBdWRpdG9yL21hbGZvcm1lZC14c3MtcHJvdGVjdGlvbi1oZWFkZXItZXhwZWN0ZWQudHh0Cmlu
ZGV4IDBlZWZhZDMuLmVjOGRjYWUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMv
c2VjdXJpdHkveHNzQXVkaXRvci9tYWxmb3JtZWQteHNzLXByb3RlY3Rpb24taGVhZGVyLWV4cGVj
dGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L3hzc0F1ZGl0b3Iv
bWFsZm9ybWVkLXhzcy1wcm90ZWN0aW9uLWhlYWRlci1leHBlY3RlZC50eHQKQEAgLTcsNCArNyw0
IEBAIFRoaXMgdGVzdHMgdGhhdCB0aGUgWC1YU1MtUHJvdGVjdGlvbiBoZWFkZXIgaXMgbm90IGln
bm9yZWQgd2hlbiB0aGUgbGVuZ3RoIG9mIGl0CiAtLS0tLS0tLQogRnJhbWU6ICdmcmFtZScKIC0t
LS0tLS0tCi0KK0lmIHlvdSBzZWUgdGhpcyBtZXNzYWdlIGFuZCBubyBKYXZhU2NyaXB0IGFsZXJ0
KCkgdGhlbiB0aGUgdGVzdCBQQVNTRUQuCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rl
c3RzL3NlY3VyaXR5L3hzc0F1ZGl0b3IvbWFsZm9ybWVkLXhzcy1wcm90ZWN0aW9uLWhlYWRlci5o
dG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS94c3NBdWRpdG9yL21hbGZvcm1l
ZC14c3MtcHJvdGVjdGlvbi1oZWFkZXIuaHRtbAppbmRleCA2ODBjNDU1Li4xOTVmOTY1IDEwMDY0
NAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L3hzc0F1ZGl0b3IvbWFsZm9y
bWVkLXhzcy1wcm90ZWN0aW9uLWhlYWRlci5odG1sCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVz
dHMvc2VjdXJpdHkveHNzQXVkaXRvci9tYWxmb3JtZWQteHNzLXByb3RlY3Rpb24taGVhZGVyLmh0
bWwKQEAgLTEzLDcgKzEzLDcgQEAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikgewog
PC9oZWFkPgogPGJvZHk+CiA8cD5UaGlzIHRlc3RzIHRoYXQgdGhlIFgtWFNTLVByb3RlY3Rpb24g
aGVhZGVyIGlzIG5vdCBpZ25vcmVkIHdoZW4gdGhlIGxlbmd0aCBvZiBpdHMgdmFsdWUgZXhjZWVk
cyA8YSBocmVmPSJodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjczMTIj
YzEzIj4xNiBjaGFyYWN0ZXJzLjwvYT48L3A+Ci08aWZyYW1lIGlkPSJmcmFtZSIgb25sb2FkPSJj
aGVja0lmRnJhbWVMb2NhdGlvbk1hdGNoZXNVUkxBbmRDYWxsRG9uZSgnZnJhbWUnLCAnYWJvdXQ6
YmxhbmsnKSIgc3JjPSJodHRwOi8vMTI3LjAuMC4xOjgwMDAvc2VjdXJpdHkveHNzQXVkaXRvci9y
ZXNvdXJjZXMvZWNoby1pbnRlcnRhZy5wbD9jdXN0b20taGVhZGVyPVgtWFNTLVByb3RlY3Rpb246
IDEyMzQ1Njc4OTAxMjM0NTY3JnE9PHNjcmlwdD5hbGVydCgvWFNTLyk8L3NjcmlwdD48cD5JZiB5
b3Ugc2VlIHRoaXMgbWVzc2FnZSBhbmQgbm8gSmF2YVNjcmlwdCBhbGVydCgpIHRoZW4gdGhlIHRl
c3QgUEFTU0VELjwvcD4iPgorPGlmcmFtZSBpZD0iZnJhbWUiIG9ubG9hZD0iY2hlY2tJZkZyYW1l
TG9jYXRpb25NYXRjaGVzVVJMQW5kQ2FsbERvbmUoJ2ZyYW1lJywgJ2Fib3V0OmJsYW5rJykiIHNy
Yz0iaHR0cDovLzEyNy4wLjAuMTo4MDAwL3NlY3VyaXR5L3hzc0F1ZGl0b3IvcmVzb3VyY2VzL2Vj
aG8taW50ZXJ0YWcucGw/bm90aWZ5RG9uZT0xJmN1c3RvbS1oZWFkZXI9WC1YU1MtUHJvdGVjdGlv
bjogMTIzNDU2Nzg5MDEyMzQ1NjcmcT08c2NyaXB0PmFsZXJ0KC9YU1MvKTwvc2NyaXB0PjxwPklm
IHlvdSBzZWUgdGhpcyBtZXNzYWdlIGFuZCBubyBKYXZhU2NyaXB0IGFsZXJ0KCkgdGhlbiB0aGUg
dGVzdCBQQVNTRUQuPC9wPiI+CiA8L2lmcmFtZT4KIDwvYm9keT4KIDwvaHRtbD4KZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkveHNzQXVkaXRvci9uby1wcm90ZWN0
aW9uLXNjcmlwdC10YWctZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1
cml0eS94c3NBdWRpdG9yL25vLXByb3RlY3Rpb24tc2NyaXB0LXRhZy1leHBlY3RlZC50eHQKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uY2I1YTEyYQotLS0gL2Rldi9udWxsCisr
KyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkveHNzQXVkaXRvci9uby1wcm90ZWN0
aW9uLXNjcmlwdC10YWctZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNCBAQAorQUxFUlQ6IC9QQVNT
LworVGhpcyBzY3JpcHQgc2hvdWxkIHJ1biBiZWNhdXNlIFhTUyBwcm90ZWN0aW9uIGlzIGRpc2Fi
bGVkLgorCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkveHNz
QXVkaXRvci9uby1wcm90ZWN0aW9uLXNjcmlwdC10YWcuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAv
dGVzdHMvc2VjdXJpdHkveHNzQXVkaXRvci9uby1wcm90ZWN0aW9uLXNjcmlwdC10YWcuaHRtbApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5iMTJhODI3Ci0tLSAvZGV2L251bGwK
KysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS94c3NBdWRpdG9yL25vLXByb3Rl
Y3Rpb24tc2NyaXB0LXRhZy5odG1sCkBAIC0wLDAgKzEsMTcgQEAKKzwhRE9DVFlQRSBodG1sPgor
PGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQgc3JjPSJodHRwOi8vbG9jYWxob3N0OjgwMDAvc2VjdXJp
dHkveHNzQXVkaXRvci9yZXNvdXJjZXMvdXRpbGl0aWVzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQ+
CitpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKSB7CisgICAgbGF5b3V0VGVzdENvbnRy
b2xsZXIuZHVtcEFzVGV4dCgpOworICAgIGxheW91dFRlc3RDb250cm9sbGVyLnNldFhTU0F1ZGl0
b3JFbmFibGVkKHRydWUpOworfQorPC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxwPlRoaXMg
c2NyaXB0IHNob3VsZCBydW4gYmVjYXVzZSBYU1MgcHJvdGVjdGlvbiBpcyBkaXNhYmxlZC48L3A+
Cis8aWZyYW1lIGlkPSJmcmFtZSIgc3JjPSJodHRwOi8vMTI3LjAuMC4xOjgwMDAvc2VjdXJpdHkv
eHNzQXVkaXRvci9yZXNvdXJjZXMvZWNoby1pbnRlcnRhZy5wbD9kaXNhYmxlLXByb3RlY3Rpb249
MSZxPTxzY3JpcHQ+YWxlcnQoL1BBU1MvKTwvc2NyaXB0PiI+Cis8L2lmcmFtZT4KKzwvYm9keT4K
KzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkveHNz
QXVkaXRvci9yZXNvdXJjZXMvZWNoby1oZWFkLWJhc2UtaHJlZi5wbCBiL0xheW91dFRlc3RzL2h0
dHAvdGVzdHMvc2VjdXJpdHkveHNzQXVkaXRvci9yZXNvdXJjZXMvZWNoby1oZWFkLWJhc2UtaHJl
Zi5wbAppbmRleCAwMWE1ODk1Li4yYTc0NmYwIDEwMDc1NQotLS0gYS9MYXlvdXRUZXN0cy9odHRw
L3Rlc3RzL3NlY3VyaXR5L3hzc0F1ZGl0b3IvcmVzb3VyY2VzL2VjaG8taGVhZC1iYXNlLWhyZWYu
cGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS94c3NBdWRpdG9yL3Jlc291
cmNlcy9lY2hvLWhlYWQtYmFzZS1ocmVmLnBsCkBAIC01LDcgKzUsNyBAQCB1c2UgQ0dJOwogbXkg
JGNnaSA9IG5ldyBDR0k7CiAKIGlmICgkY2dpLT5wYXJhbSgnZW5hYmxlLWZ1bGwtYmxvY2snKSkg
ewotICAgIHByaW50ICJYLVhTUy1Qcm90ZWN0aW9uOiAxMlxuIjsKKyAgICBwcmludCAiWC1YU1Mt
UHJvdGVjdGlvbjogMTsgbW9kZT1ibG9ja1xuIjsKIH0KIHByaW50ICJDb250ZW50LVR5cGU6IHRl
eHQvaHRtbDsgY2hhcnNldD1VVEYtOFxuXG4iOwogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9o
dHRwL3Rlc3RzL3NlY3VyaXR5L3hzc0F1ZGl0b3IvcmVzb3VyY2VzL2VjaG8taW50ZXJ0YWctY2xp
Y2stYW5kLW5vdGlmeS5wbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkveHNzQXVk
aXRvci9yZXNvdXJjZXMvZWNoby1pbnRlcnRhZy1jbGljay1hbmQtbm90aWZ5LnBsCmluZGV4IDk3
ZjM3ZmMuLjZlMTAxN2UgMTAwNzU1Ci0tLSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJp
dHkveHNzQXVkaXRvci9yZXNvdXJjZXMvZWNoby1pbnRlcnRhZy1jbGljay1hbmQtbm90aWZ5LnBs
CisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkveHNzQXVkaXRvci9yZXNvdXJj
ZXMvZWNoby1pbnRlcnRhZy1jbGljay1hbmQtbm90aWZ5LnBsCkBAIC01LDcgKzUsNyBAQCB1c2Ug
Q0dJOwogbXkgJGNnaSA9IG5ldyBDR0k7CiAKIGlmICgkY2dpLT5wYXJhbSgnZW5hYmxlLWZ1bGwt
YmxvY2snKSkgewotICAgIHByaW50ICJYLVhTUy1Qcm90ZWN0aW9uOiAxMlxuIjsKKyAgICBwcmlu
dCAiWC1YU1MtUHJvdGVjdGlvbjogMTsgbW9kZT1ibG9ja1xuIjsKIH0KIHByaW50ICJDb250ZW50
LVR5cGU6IHRleHQvaHRtbDsgY2hhcnNldD1VVEYtOFxuXG4iOwogCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L3hzc0F1ZGl0b3IvcmVzb3VyY2VzL2VjaG8taW50
ZXJ0YWcucGwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L3hzc0F1ZGl0b3IvcmVz
b3VyY2VzL2VjaG8taW50ZXJ0YWcucGwKaW5kZXggMDUwNDZhYi4uNWM5M2UxYiAxMDA3NTUKLS0t
IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS94c3NBdWRpdG9yL3Jlc291cmNlcy9l
Y2hvLWludGVydGFnLnBsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkveHNz
QXVkaXRvci9yZXNvdXJjZXMvZWNoby1pbnRlcnRhZy5wbApAQCAtNSw3ICs1LDEwIEBAIHVzZSBD
R0k7CiBteSAkY2dpID0gbmV3IENHSTsKIAogaWYgKCRjZ2ktPnBhcmFtKCdlbmFibGUtZnVsbC1i
bG9jaycpKSB7Ci0gICAgcHJpbnQgIlgtWFNTLVByb3RlY3Rpb246IDEyXG4iOworICAgIHByaW50
ICJYLVhTUy1Qcm90ZWN0aW9uOiAxOyBtb2RlPWJsb2NrXG4iOworfQoraWYgKCRjZ2ktPnBhcmFt
KCdkaXNhYmxlLXByb3RlY3Rpb24nKSkgeworICAgIHByaW50ICJYLVhTUy1Qcm90ZWN0aW9uOiAw
XG4iOwogfQogaWYgKCRjZ2ktPnBhcmFtKCdjdXN0b20taGVhZGVyJykpIHsKICAgICBwcmludCAk
Y2dpLT5wYXJhbSgnY3VzdG9tLWhlYWRlcicpIC4gIlxuIjsKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkveHNzQXVkaXRvci94c3MtcHJvdGVjdGlvbi1wYXJzaW5n
LTAxLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkveHNzQXVk
aXRvci94c3MtcHJvdGVjdGlvbi1wYXJzaW5nLTAxLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwLi4wMzAyZDUzCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0
VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS94c3NBdWRpdG9yL3hzcy1wcm90ZWN0aW9uLXBhcnNp
bmctMDEtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTEgQEAKK0NPTlNPTEUgTUVTU0FHRTogbGlu
ZSAxOiBSZWZ1c2VkIHRvIGV4ZWN1dGUgYSBKYXZhU2NyaXB0IHNjcmlwdC4gU291cmNlIGNvZGUg
b2Ygc2NyaXB0IGZvdW5kIHdpdGhpbiByZXF1ZXN0LgorCitGQUlMOiBUaW1lZCBvdXQgd2FpdGlu
ZyBmb3Igbm90aWZ5RG9uZSB0byBiZSBjYWxsZWQKK1RoaXMgdGVzdHMgb3VyIHBhcnNpbmcgb2Yg
dGhlIFgtWFNTLVByb3RlY3Rpb24gaGVhZGVyLgorCisKKworLS0tLS0tLS0KK0ZyYW1lOiAnZnJh
bWUnCistLS0tLS0tLQorSWYgeW91IHNlZSB0aGlzIG1lc3NhZ2UgdGhlbiB0aGUgdGVzdCBGQUlM
RUQuCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L3hzc0F1ZGl0
b3IveHNzLXByb3RlY3Rpb24tcGFyc2luZy0wMS5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0
cy9zZWN1cml0eS94c3NBdWRpdG9yL3hzcy1wcm90ZWN0aW9uLXBhcnNpbmctMDEuaHRtbApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45NWYyMDVlCi0tLSAvZGV2L251bGwKKysr
IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS94c3NBdWRpdG9yL3hzcy1wcm90ZWN0
aW9uLXBhcnNpbmctMDEuaHRtbApAQCAtMCwwICsxLDE5IEBACis8IURPQ1RZUEUgaHRtbD4KKzxo
dG1sPgorPGhlYWQ+Cis8c2NyaXB0IHNyYz0iaHR0cDovL2xvY2FsaG9zdDo4MDAwL3NlY3VyaXR5
L3hzc0F1ZGl0b3IvcmVzb3VyY2VzL3V0aWxpdGllcy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0Pgor
aWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikgeworICAgIGxheW91dFRlc3RDb250cm9s
bGVyLmR1bXBBc1RleHQoKTsKKyAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQ2hpbGRGcmFt
ZXNBc1RleHQoKTsKKyAgICBsYXlvdXRUZXN0Q29udHJvbGxlci53YWl0VW50aWxEb25lKCk7Cisg
ICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuc2V0WFNTQXVkaXRvckVuYWJsZWQodHJ1ZSk7Cit9Cis8
L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHA+VGhpcyB0ZXN0cyBvdXIgcGFyc2luZyBvZiB0
aGUgWC1YU1MtUHJvdGVjdGlvbiBoZWFkZXIuPC9wPgorPGlmcmFtZSBpZD0iZnJhbWUiIG9ubG9h
ZD0iY2hlY2tJZkZyYW1lTG9jYXRpb25NYXRjaGVzVVJMQW5kQ2FsbERvbmUoJ2ZyYW1lJywgJ2Fi
b3V0OmJsYW5rJykiIHNyYz0iaHR0cDovLzEyNy4wLjAuMTo4MDAwL3NlY3VyaXR5L3hzc0F1ZGl0
b3IvcmVzb3VyY2VzL2VjaG8taW50ZXJ0YWcucGw/Y3VzdG9tLWhlYWRlcj1YLVhTUy1Qcm90ZWN0
aW9uOiAgIDEgIDsgTW9EZSA9ICBiTG9jSyAgICZxPTxzY3JpcHQ+YWxlcnQoL1hTUy8pPC9zY3Jp
cHQ+PHA+SWYgeW91IHNlZSB0aGlzIG1lc3NhZ2UgdGhlbiB0aGUgdGVzdCBGQUlMRUQuPC9wPiI+
Cis8L2lmcmFtZT4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdl
TG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNzU2ZDMxNi4uZGEzYTYzYSAxMDA2NDQKLS0t
IGEvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsNSArMSwy
OSBAQAogMjAxMC0wMi0yNiAgQWRhbSBCYXJ0aCAgPGFiYXJ0aEB3ZWJraXQub3JnPgogCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIENoYW5nZSBYU1NBdWRp
dG9yIGJsb2NrIHN5bnRheAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MzQ0MzYKKworICAgICAgICBVcGRhdGUgb3VyIGJsb2NraW5nIHN5bnRheCB0byBz
b21ldGhpbmcgbW9yZSByZWFzb25hYmxlLiAgQWxzbywKKyAgICAgICAgaW1wbGVtZW50ZWQgYSB3
YXkgZm9yIGEgd2ViIHNpdGUgdG8gZGlzYWJsZSB0aGUgZmlsdGVyLgorCisgICAgICAgIFRlc3Rz
OiBodHRwL3Rlc3RzL3NlY3VyaXR5L3hzc0F1ZGl0b3Ivbm8tcHJvdGVjdGlvbi1zY3JpcHQtdGFn
Lmh0bWwKKyAgICAgICAgICAgICAgIGh0dHAvdGVzdHMvc2VjdXJpdHkveHNzQXVkaXRvci94c3Mt
cHJvdGVjdGlvbi1wYXJzaW5nLTAxLmh0bWwKKworICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9q
L3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBwYWdlL1hTU0F1ZGl0b3IuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6WFNTQXVkaXRvcjo6eHNzUHJvdGVjdGlvbik6CisgICAgICAgIChXZWJDb3Jl
OjpYU1NBdWRpdG9yOjpmaW5kSW5SZXF1ZXN0KToKKyAgICAgICAgKiBwYWdlL1hTU0F1ZGl0b3Iu
aDoKKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL0hUVFBQYXJzZXJzLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OnNraXBUb2tlbik6CisgICAgICAgIChXZWJDb3JlOjpwYXJzZVhTU1Byb3RlY3Rp
b25IZWFkZXIpOgorICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsvSFRUUFBhcnNlcnMuaDoKKyAg
ICAgICAgKFdlYkNvcmU6Oik6CisKKzIwMTAtMDItMjYgIEFkYW0gQmFydGggIDxhYmFydGhAd2Vi
a2l0Lm9yZz4KKwogICAgICAgICBSZXZpZXdlZCBieSBEYXJpbiBBZGxlci4KIAogICAgICAgICBY
U1NBdWRpdG9yIGlzIHN1cGVyIHN1cGVyIHN1cGVyIHNsb3cKZGlmZiAtLWdpdCBhL1dlYkNvcmUv
cGFnZS9YU1NBdWRpdG9yLmNwcCBiL1dlYkNvcmUvcGFnZS9YU1NBdWRpdG9yLmNwcAppbmRleCAw
ZGY3MzY0Li44NDliMmY3IDEwMDY0NAotLS0gYS9XZWJDb3JlL3BhZ2UvWFNTQXVkaXRvci5jcHAK
KysrIGIvV2ViQ29yZS9wYWdlL1hTU0F1ZGl0b3IuY3BwCkBAIC0yOTAsNyArMjkwLDcgQEAgYm9v
bCBYU1NBdWRpdG9yOjppc1NhbWVPcmlnaW5SZXNvdXJjZShjb25zdCBTdHJpbmcmIHVybCkgY29u
c3QKICAgICByZXR1cm4gKG1fZnJhbWUtPmRvY3VtZW50KCktPnVybCgpLmhvc3QoKSA9PSByZXNv
dXJjZVVSTC5ob3N0KCkgJiYgcmVzb3VyY2VVUkwucXVlcnkoKS5pc0VtcHR5KCkpOwogfQogCi1i
b29sIFhTU0F1ZGl0b3I6OnNob3VsZEZ1bGxQYWdlQmxvY2tGb3JYU1NQcm90ZWN0aW9uSGVhZGVy
KCkgY29uc3QKK1hTU1Byb3RlY3Rpb25EaXNwb3NpdGlvbiBYU1NBdWRpdG9yOjp4c3NQcm90ZWN0
aW9uKCkgY29uc3QKIHsKICAgICAvLyBJZiB3ZSBkZXRlY3QgYW4gWFNTIGF0dGFjayBhbmQgZmlu
ZCB0aGUgSFRUUCBoZWFkZXIgIlgtWFNTLVByb3RlY3Rpb246IDEyIiB0aGVuCiAgICAgLy8gd2Ug
d2lsbCBzdG9wIGxvYWRpbmcgdGhlIHBhZ2UgYXMgb3Bwb3NlZCB0byBpZ25vcmluZyB0aGUgc2Ny
aXB0LiBUaGUgdmFsdWUgIjEyIgpAQCAtMzAyLDkgKzMwMiw3IEBAIGJvb2wgWFNTQXVkaXRvcjo6
c2hvdWxkRnVsbFBhZ2VCbG9ja0ZvclhTU1Byb3RlY3Rpb25IZWFkZXIoKSBjb25zdAogICAgIGlm
IChmcmFtZS0+ZG9jdW1lbnQoKS0+dXJsKCkgPT0gYmxhbmtVUkwoKSkKICAgICAgICAgZnJhbWUg
PSBtX2ZyYW1lLT50cmVlKCktPnBhcmVudCgpOwogCi0gICAgLy8gV2Ugc3RyaXAgYW55IHdoaXRl
c3BhY2UgY2hhcmFjdGVycyB0byBjb25mb3JtIHRvIHRoZSBiZWhhdmlvciBpbiBJbnRlcm5ldCBF
eHBsb3Jlci4KLSAgICBTdHJpbmcgeHNzUHJvdGVjdGlvblZhbHVlID0gZnJhbWUtPmxvYWRlcigp
LT5kb2N1bWVudExvYWRlcigpLT5yZXNwb25zZSgpLmh0dHBIZWFkZXJGaWVsZChYU1NQcm90ZWN0
aW9uSGVhZGVyKS5zdHJpcFdoaXRlU3BhY2UoKTsKLSAgICByZXR1cm4gKHhzc1Byb3RlY3Rpb25W
YWx1ZS5sZW5ndGgoKSA+PSAyICYmIHhzc1Byb3RlY3Rpb25WYWx1ZVswXSA9PSAnMScgJiYgeHNz
UHJvdGVjdGlvblZhbHVlWzFdID09ICcyJyk7CisgICAgcmV0dXJuIHBhcnNlWFNTUHJvdGVjdGlv
bkhlYWRlcihmcmFtZS0+bG9hZGVyKCktPmRvY3VtZW50TG9hZGVyKCktPnJlc3BvbnNlKCkuaHR0
cEhlYWRlckZpZWxkKFhTU1Byb3RlY3Rpb25IZWFkZXIpKTsKIH0KIAogYm9vbCBYU1NBdWRpdG9y
OjpmaW5kSW5SZXF1ZXN0KGNvbnN0IEZpbmRUYXNrJiB0YXNrKSBjb25zdApAQCAtMzE4LDExICsz
MTYsMjQgQEAgYm9vbCBYU1NBdWRpdG9yOjpmaW5kSW5SZXF1ZXN0KGNvbnN0IEZpbmRUYXNrJiB0
YXNrKSBjb25zdAogICAgICAgICByZXN1bHQgPSBmaW5kSW5SZXF1ZXN0KG1fZnJhbWUsIHRhc2sp
OwogICAgICAgICBibG9ja0ZyYW1lID0gbV9mcmFtZTsKICAgICB9Ci0gICAgaWYgKHJlc3VsdCAm
JiBibG9ja0ZyYW1lICYmIHNob3VsZEZ1bGxQYWdlQmxvY2tGb3JYU1NQcm90ZWN0aW9uSGVhZGVy
KCkpIHsKLSAgICAgICAgYmxvY2tGcmFtZS0+bG9hZGVyKCktPnN0b3BBbGxMb2FkZXJzKCk7Ci0g
ICAgICAgIGJsb2NrRnJhbWUtPnJlZGlyZWN0U2NoZWR1bGVyKCktPnNjaGVkdWxlTG9jYXRpb25D
aGFuZ2UoYmxhbmtVUkwoKSwgU3RyaW5nKCkpOworICAgIGlmICghcmVzdWx0KQorICAgICAgICBy
ZXR1cm4gZmFsc2U7CisKKyAgICBzd2l0Y2ggKHhzc1Byb3RlY3Rpb24oKSkgeworICAgIGNhc2Ug
WFNTUHJvdGVjdGlvbkRpc2FibGVkOgorICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgY2FzZSBY
U1NQcm90ZWN0aW9uRW5hYmxlZDoKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBYU1NQcm90ZWN0
aW9uQmxvY2tFbmFibGVkOgorICAgICAgICBpZiAoYmxvY2tGcmFtZSkgeworICAgICAgICAgICAg
YmxvY2tGcmFtZS0+bG9hZGVyKCktPnN0b3BBbGxMb2FkZXJzKCk7CisgICAgICAgICAgICBibG9j
a0ZyYW1lLT5yZWRpcmVjdFNjaGVkdWxlcigpLT5zY2hlZHVsZUxvY2F0aW9uQ2hhbmdlKGJsYW5r
VVJMKCksIFN0cmluZygpKTsKKyAgICAgICAgfQorICAgICAgICBicmVhazsKKyAgICBkZWZhdWx0
OgorICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKICAgICB9Ci0gICAgcmV0dXJuIHJlc3Vs
dDsKKyAgICByZXR1cm4gdHJ1ZTsKIH0KIAogYm9vbCBYU1NBdWRpdG9yOjpmaW5kSW5SZXF1ZXN0
KEZyYW1lKiBmcmFtZSwgY29uc3QgRmluZFRhc2smIHRhc2spIGNvbnN0CmRpZmYgLS1naXQgYS9X
ZWJDb3JlL3BhZ2UvWFNTQXVkaXRvci5oIGIvV2ViQ29yZS9wYWdlL1hTU0F1ZGl0b3IuaAppbmRl
eCBiZmY2Y2JlLi5hNzYyOGYzIDEwMDY0NAotLS0gYS9XZWJDb3JlL3BhZ2UvWFNTQXVkaXRvci5o
CisrKyBiL1dlYkNvcmUvcGFnZS9YU1NBdWRpdG9yLmgKQEAgLTI3LDYgKzI3LDcgQEAKICNpZm5k
ZWYgWFNTQXVkaXRvcl9oCiAjZGVmaW5lIFhTU0F1ZGl0b3JfaAogCisjaW5jbHVkZSAiSFRUUFBh
cnNlcnMuaCIKICNpbmNsdWRlICJQbGF0Zm9ybVN0cmluZy5oIgogI2luY2x1ZGUgIlRleHRFbmNv
ZGluZy5oIgogCkBAIC0xNDQsNyArMTQ1LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAg
ICBib29sIGZpbmRJblJlcXVlc3QoY29uc3QgRmluZFRhc2smKSBjb25zdDsKICAgICAgICAgYm9v
bCBmaW5kSW5SZXF1ZXN0KEZyYW1lKiwgY29uc3QgRmluZFRhc2smKSBjb25zdDsKIAotICAgICAg
ICBib29sIHNob3VsZEZ1bGxQYWdlQmxvY2tGb3JYU1NQcm90ZWN0aW9uSGVhZGVyKCkgY29uc3Q7
CisgICAgICAgIFhTU1Byb3RlY3Rpb25EaXNwb3NpdGlvbiB4c3NQcm90ZWN0aW9uKCkgY29uc3Q7
CiAKICAgICAgICAgLy8gVGhlIGZyYW1lIHRvIGF1ZGl0LgogICAgICAgICBGcmFtZSogbV9mcmFt
ZTsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9IVFRQUGFyc2Vycy5jcHAg
Yi9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvSFRUUFBhcnNlcnMuY3BwCmluZGV4IDkyMDI2NjAu
LjI2NDUzOGIgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9IVFRQUGFyc2Vy
cy5jcHAKKysrIGIvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL0hUVFBQYXJzZXJzLmNwcApAQCAt
NTUsNiArNTUsMjEgQEAgc3RhdGljIGlubGluZSBib29sIHNraXBXaGl0ZVNwYWNlKGNvbnN0IFN0
cmluZyYgc3RyLCBpbnQmIHBvcywgYm9vbCBmcm9tSHR0cEVxdWkKICAgICByZXR1cm4gcG9zICE9
IGxlbjsKIH0KIAorLy8gUmV0dXJucyB0cnVlIGlmIHRoZSBmdW5jdGlvbiBjYW4gbWF0Y2ggdGhl
IHdob2xlIHRva2VuIChjYXNlIGluc2Vuc2l0aXZlKS4KKy8vIE5vdGU6IE1pZ2h0IHJldHVybiBw
b3MgPT0gc3RyLmxlbmd0aCgpCitzdGF0aWMgaW5saW5lIGJvb2wgc2tpcFRva2VuKGNvbnN0IFN0
cmluZyYgc3RyLCBpbnQmIHBvcywgY29uc3QgY2hhciogdG9rZW4pCit7CisgICAgaW50IGxlbiA9
IHN0ci5sZW5ndGgoKTsKKworICAgIHdoaWxlIChwb3MgIT0gbGVuICYmICp0b2tlbikgeworICAg
ICAgICBpZiAodG9BU0NJSUxvd2VyKHN0cltwb3NdKSAhPSAqdG9rZW4rKykKKyAgICAgICAgICAg
IHJldHVybiBmYWxzZTsKKyAgICAgICAgKytwb3M7CisgICAgfQorCisgICAgcmV0dXJuIHRydWU7
Cit9CisKIGJvb2wgcGFyc2VIVFRQUmVmcmVzaChjb25zdCBTdHJpbmcmIHJlZnJlc2gsIGJvb2wg
ZnJvbUh0dHBFcXVpdk1ldGEsIGRvdWJsZSYgZGVsYXksIFN0cmluZyYgdXJsKQogewogICAgIGlu
dCBsZW4gPSByZWZyZXNoLmxlbmd0aCgpOwpAQCAtMjIwLDQgKzIzNSwzMiBAQCBTdHJpbmcgZXh0
cmFjdENoYXJzZXRGcm9tTWVkaWFUeXBlKGNvbnN0IFN0cmluZyYgbWVkaWFUeXBlKQogICAgIAog
ICAgIHJldHVybiBTdHJpbmcoKTsKIH0KKworWFNTUHJvdGVjdGlvbkRpc3Bvc2l0aW9uIHBhcnNl
WFNTUHJvdGVjdGlvbkhlYWRlcihjb25zdCBTdHJpbmcmIGhlYWRlcikKK3sKKyAgICBTdHJpbmcg
c3RpcHBlZEhlYWRlciA9IGhlYWRlci5zdHJpcFdoaXRlU3BhY2UoKTsKKworICAgIGlmIChzdGlw
cGVkSGVhZGVyLmlzRW1wdHkoKSkKKyAgICAgICAgcmV0dXJuIFhTU1Byb3RlY3Rpb25FbmFibGVk
OworCisgICAgaWYgKHN0aXBwZWRIZWFkZXJbMF0gPT0gJzAnKQorICAgICAgICByZXR1cm4gWFNT
UHJvdGVjdGlvbkRpc2FibGVkOworCisgICAgaW50IGxlbmd0aCA9IChpbnQpaGVhZGVyLmxlbmd0
aCgpOworICAgIGludCBwb3MgPSAwOworICAgIGlmIChzdGlwcGVkSGVhZGVyW3BvcysrXSA9PSAn
MScKKyAgICAgICAgJiYgc2tpcFdoaXRlU3BhY2Uoc3RpcHBlZEhlYWRlciwgcG9zLCBmYWxzZSkK
KyAgICAgICAgJiYgc3RpcHBlZEhlYWRlcltwb3MrK10gPT0gJzsnCisgICAgICAgICYmIHNraXBX
aGl0ZVNwYWNlKHN0aXBwZWRIZWFkZXIsIHBvcywgZmFsc2UpCisgICAgICAgICYmIHNraXBUb2tl
bihzdGlwcGVkSGVhZGVyLCBwb3MsICJtb2RlIikKKyAgICAgICAgJiYgc2tpcFdoaXRlU3BhY2Uo
c3RpcHBlZEhlYWRlciwgcG9zLCBmYWxzZSkKKyAgICAgICAgJiYgc3RpcHBlZEhlYWRlcltwb3Mr
K10gPT0gJz0nCisgICAgICAgICYmIHNraXBXaGl0ZVNwYWNlKHN0aXBwZWRIZWFkZXIsIHBvcywg
ZmFsc2UpCisgICAgICAgICYmIHNraXBUb2tlbihzdGlwcGVkSGVhZGVyLCBwb3MsICJibG9jayIp
CisgICAgICAgICYmIHBvcyA9PSBsZW5ndGgpCisgICAgICAgIHJldHVybiBYU1NQcm90ZWN0aW9u
QmxvY2tFbmFibGVkOworCisgICAgcmV0dXJuIFhTU1Byb3RlY3Rpb25FbmFibGVkOworfQorCiB9
CmRpZmYgLS1naXQgYS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvSFRUUFBhcnNlcnMuaCBiL1dl
YkNvcmUvcGxhdGZvcm0vbmV0d29yay9IVFRQUGFyc2Vycy5oCmluZGV4IDA2NDhhZWUuLmIxY2I3
MDkgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9IVFRQUGFyc2Vycy5oCisr
KyBiL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9IVFRQUGFyc2Vycy5oCkBAIC0zMSwxMyArMzEs
MjEgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi0gICAgY2xhc3MgU3RyaW5nOworY2xhc3Mg
U3RyaW5nOworCitlbnVtIFhTU1Byb3RlY3Rpb25EaXNwb3NpdGlvbiB7CisgICAgWFNTUHJvdGVj
dGlvbkRpc2FibGVkLAorICAgIFhTU1Byb3RlY3Rpb25FbmFibGVkLAorICAgIFhTU1Byb3RlY3Rp
b25CbG9ja0VuYWJsZWQKK307CisKK2Jvb2wgcGFyc2VIVFRQUmVmcmVzaChjb25zdCBTdHJpbmcm
IHJlZnJlc2gsIGJvb2wgZnJvbUh0dHBFcXVpdk1ldGEsIGRvdWJsZSYgZGVsYXksIFN0cmluZyYg
dXJsKTsKK2RvdWJsZSBwYXJzZURhdGUoY29uc3QgU3RyaW5nJik7CitTdHJpbmcgZmlsZW5hbWVG
cm9tSFRUUENvbnRlbnREaXNwb3NpdGlvbihjb25zdCBTdHJpbmcmKTsgCitTdHJpbmcgZXh0cmFj
dE1JTUVUeXBlRnJvbU1lZGlhVHlwZShjb25zdCBTdHJpbmcmKTsKK1N0cmluZyBleHRyYWN0Q2hh
cnNldEZyb21NZWRpYVR5cGUoY29uc3QgU3RyaW5nJik7IAorWFNTUHJvdGVjdGlvbkRpc3Bvc2l0
aW9uIHBhcnNlWFNTUHJvdGVjdGlvbkhlYWRlcihjb25zdCBTdHJpbmcmKTsKIAotICAgIGJvb2wg
cGFyc2VIVFRQUmVmcmVzaChjb25zdCBTdHJpbmcmIHJlZnJlc2gsIGJvb2wgZnJvbUh0dHBFcXVp
dk1ldGEsIGRvdWJsZSYgZGVsYXksIFN0cmluZyYgdXJsKTsKLSAgICBkb3VibGUgcGFyc2VEYXRl
KGNvbnN0IFN0cmluZyYpOwotICAgIFN0cmluZyBmaWxlbmFtZUZyb21IVFRQQ29udGVudERpc3Bv
c2l0aW9uKGNvbnN0IFN0cmluZyYpOyAKLSAgICBTdHJpbmcgZXh0cmFjdE1JTUVUeXBlRnJvbU1l
ZGlhVHlwZShjb25zdCBTdHJpbmcmKTsKLSAgICBTdHJpbmcgZXh0cmFjdENoYXJzZXRGcm9tTWVk
aWFUeXBlKGNvbnN0IFN0cmluZyYpOyAKIH0KIAogI2VuZGlmCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>49678</attachid>
            <date>2010-02-27 01:02:16 -0800</date>
            <delta_ts>2010-03-19 15:33:23 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-34436-20100227010214.patch</filename>
            <type>text/plain</type>
            <size>15234</size>
            <attacher name="Adam Barth">abarth</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCA0OWYwZDhhLi5lMDhlNzI4IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjMgQEAKKzIwMTAtMDIt
MjcgIEFkYW0gQmFydGggIDxhYmFydGhAd2Via2l0Lm9yZz4KKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBDaGFuZ2UgWFNTQXVkaXRvciBibG9jayBzeW50
YXgKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTM0NDM2
CisKKyAgICAgICAgVXBkYXRlIHRlc3RzIHRvIGFjY291bnQgZm9yIHRoZSBuZXcgYmxvY2tpbmcg
c3ludGF4LiAgQWRkZWQgdGVzdCBmb3IKKyAgICAgICAgZGlzYWJsaW5nIHRoZSBYU1MgZmlsdGVy
LgorCisgICAgICAgICogaHR0cC90ZXN0cy9zZWN1cml0eS94c3NBdWRpdG9yL21hbGZvcm1lZC14
c3MtcHJvdGVjdGlvbi1oZWFkZXItZXhwZWN0ZWQudHh0OgorICAgICAgICAqIGh0dHAvdGVzdHMv
c2VjdXJpdHkveHNzQXVkaXRvci9tYWxmb3JtZWQteHNzLXByb3RlY3Rpb24taGVhZGVyLmh0bWw6
CisgICAgICAgICogaHR0cC90ZXN0cy9zZWN1cml0eS94c3NBdWRpdG9yL25vLXByb3RlY3Rpb24t
c2NyaXB0LXRhZy1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvc2Vj
dXJpdHkveHNzQXVkaXRvci9uby1wcm90ZWN0aW9uLXNjcmlwdC10YWcuaHRtbDogQWRkZWQuCisg
ICAgICAgICogaHR0cC90ZXN0cy9zZWN1cml0eS94c3NBdWRpdG9yL3Jlc291cmNlcy9lY2hvLWhl
YWQtYmFzZS1ocmVmLnBsOgorICAgICAgICAqIGh0dHAvdGVzdHMvc2VjdXJpdHkveHNzQXVkaXRv
ci9yZXNvdXJjZXMvZWNoby1pbnRlcnRhZy1jbGljay1hbmQtbm90aWZ5LnBsOgorICAgICAgICAq
IGh0dHAvdGVzdHMvc2VjdXJpdHkveHNzQXVkaXRvci9yZXNvdXJjZXMvZWNoby1pbnRlcnRhZy5w
bDoKKyAgICAgICAgKiBodHRwL3Rlc3RzL3NlY3VyaXR5L3hzc0F1ZGl0b3IveHNzLXByb3RlY3Rp
b24tcGFyc2luZy0wMS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMv
c2VjdXJpdHkveHNzQXVkaXRvci94c3MtcHJvdGVjdGlvbi1wYXJzaW5nLTAxLmh0bWw6IEFkZGVk
LgorCiAyMDEwLTAyLTI2ICBBbGV4ZXkgUHJvc2t1cnlha292ICA8YXBAYXBwbGUuY29tPgogCiAg
ICAgICAgIFJldmlld2VkIGJ5IEFuZGVycyBDYXJsc3Nvbi4KZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkveHNzQXVkaXRvci9tYWxmb3JtZWQteHNzLXByb3RlY3Rp
b24taGVhZGVyLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkv
eHNzQXVkaXRvci9tYWxmb3JtZWQteHNzLXByb3RlY3Rpb24taGVhZGVyLWV4cGVjdGVkLnR4dApp
bmRleCAwZWVmYWQzLi5lYzhkY2FlIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3Rz
L3NlY3VyaXR5L3hzc0F1ZGl0b3IvbWFsZm9ybWVkLXhzcy1wcm90ZWN0aW9uLWhlYWRlci1leHBl
Y3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS94c3NBdWRpdG9y
L21hbGZvcm1lZC14c3MtcHJvdGVjdGlvbi1oZWFkZXItZXhwZWN0ZWQudHh0CkBAIC03LDQgKzcs
NCBAQCBUaGlzIHRlc3RzIHRoYXQgdGhlIFgtWFNTLVByb3RlY3Rpb24gaGVhZGVyIGlzIG5vdCBp
Z25vcmVkIHdoZW4gdGhlIGxlbmd0aCBvZiBpdAogLS0tLS0tLS0KIEZyYW1lOiAnZnJhbWUnCiAt
LS0tLS0tLQotCitJZiB5b3Ugc2VlIHRoaXMgbWVzc2FnZSBhbmQgbm8gSmF2YVNjcmlwdCBhbGVy
dCgpIHRoZW4gdGhlIHRlc3QgUEFTU0VELgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90
ZXN0cy9zZWN1cml0eS94c3NBdWRpdG9yL21hbGZvcm1lZC14c3MtcHJvdGVjdGlvbi1oZWFkZXIu
aHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkveHNzQXVkaXRvci9tYWxmb3Jt
ZWQteHNzLXByb3RlY3Rpb24taGVhZGVyLmh0bWwKaW5kZXggNjgwYzQ1NS4uMTk1Zjk2NSAxMDA2
NDQKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS94c3NBdWRpdG9yL21hbGZv
cm1lZC14c3MtcHJvdGVjdGlvbi1oZWFkZXIuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rl
c3RzL3NlY3VyaXR5L3hzc0F1ZGl0b3IvbWFsZm9ybWVkLXhzcy1wcm90ZWN0aW9uLWhlYWRlci5o
dG1sCkBAIC0xMyw3ICsxMyw3IEBAIGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpIHsK
IDwvaGVhZD4KIDxib2R5PgogPHA+VGhpcyB0ZXN0cyB0aGF0IHRoZSBYLVhTUy1Qcm90ZWN0aW9u
IGhlYWRlciBpcyBub3QgaWdub3JlZCB3aGVuIHRoZSBsZW5ndGggb2YgaXRzIHZhbHVlIGV4Y2Vl
ZHMgPGEgaHJlZj0iaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTI3MzEy
I2MxMyI+MTYgY2hhcmFjdGVycy48L2E+PC9wPgotPGlmcmFtZSBpZD0iZnJhbWUiIG9ubG9hZD0i
Y2hlY2tJZkZyYW1lTG9jYXRpb25NYXRjaGVzVVJMQW5kQ2FsbERvbmUoJ2ZyYW1lJywgJ2Fib3V0
OmJsYW5rJykiIHNyYz0iaHR0cDovLzEyNy4wLjAuMTo4MDAwL3NlY3VyaXR5L3hzc0F1ZGl0b3Iv
cmVzb3VyY2VzL2VjaG8taW50ZXJ0YWcucGw/Y3VzdG9tLWhlYWRlcj1YLVhTUy1Qcm90ZWN0aW9u
OiAxMjM0NTY3ODkwMTIzNDU2NyZxPTxzY3JpcHQ+YWxlcnQoL1hTUy8pPC9zY3JpcHQ+PHA+SWYg
eW91IHNlZSB0aGlzIG1lc3NhZ2UgYW5kIG5vIEphdmFTY3JpcHQgYWxlcnQoKSB0aGVuIHRoZSB0
ZXN0IFBBU1NFRC48L3A+Ij4KKzxpZnJhbWUgaWQ9ImZyYW1lIiBvbmxvYWQ9ImNoZWNrSWZGcmFt
ZUxvY2F0aW9uTWF0Y2hlc1VSTEFuZENhbGxEb25lKCdmcmFtZScsICdhYm91dDpibGFuaycpIiBz
cmM9Imh0dHA6Ly8xMjcuMC4wLjE6ODAwMC9zZWN1cml0eS94c3NBdWRpdG9yL3Jlc291cmNlcy9l
Y2hvLWludGVydGFnLnBsP25vdGlmeURvbmU9MSZjdXN0b20taGVhZGVyPVgtWFNTLVByb3RlY3Rp
b246IDEyMzQ1Njc4OTAxMjM0NTY3JnE9PHNjcmlwdD5hbGVydCgvWFNTLyk8L3NjcmlwdD48cD5J
ZiB5b3Ugc2VlIHRoaXMgbWVzc2FnZSBhbmQgbm8gSmF2YVNjcmlwdCBhbGVydCgpIHRoZW4gdGhl
IHRlc3QgUEFTU0VELjwvcD4iPgogPC9pZnJhbWU+CiA8L2JvZHk+CiA8L2h0bWw+CmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L3hzc0F1ZGl0b3Ivbm8tcHJvdGVj
dGlvbi1zY3JpcHQtdGFnLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2Vj
dXJpdHkveHNzQXVkaXRvci9uby1wcm90ZWN0aW9uLXNjcmlwdC10YWctZXhwZWN0ZWQudHh0Cm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmNiNWExMmEKLS0tIC9kZXYvbnVsbAor
KysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L3hzc0F1ZGl0b3Ivbm8tcHJvdGVj
dGlvbi1zY3JpcHQtdGFnLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDQgQEAKK0FMRVJUOiAvUEFT
Uy8KK1RoaXMgc2NyaXB0IHNob3VsZCBydW4gYmVjYXVzZSBYU1MgcHJvdGVjdGlvbiBpcyBkaXNh
YmxlZC4KKworCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L3hz
c0F1ZGl0b3Ivbm8tcHJvdGVjdGlvbi1zY3JpcHQtdGFnLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRw
L3Rlc3RzL3NlY3VyaXR5L3hzc0F1ZGl0b3Ivbm8tcHJvdGVjdGlvbi1zY3JpcHQtdGFnLmh0bWwK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYjEyYTgyNwotLS0gL2Rldi9udWxs
CisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkveHNzQXVkaXRvci9uby1wcm90
ZWN0aW9uLXNjcmlwdC10YWcuaHRtbApAQCAtMCwwICsxLDE3IEBACis8IURPQ1RZUEUgaHRtbD4K
KzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0IHNyYz0iaHR0cDovL2xvY2FsaG9zdDo4MDAwL3NlY3Vy
aXR5L3hzc0F1ZGl0b3IvcmVzb3VyY2VzL3V0aWxpdGllcy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0
PgoraWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikgeworICAgIGxheW91dFRlc3RDb250
cm9sbGVyLmR1bXBBc1RleHQoKTsKKyAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5zZXRYU1NBdWRp
dG9yRW5hYmxlZCh0cnVlKTsKK30KKzwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8cD5UaGlz
IHNjcmlwdCBzaG91bGQgcnVuIGJlY2F1c2UgWFNTIHByb3RlY3Rpb24gaXMgZGlzYWJsZWQuPC9w
PgorPGlmcmFtZSBpZD0iZnJhbWUiIHNyYz0iaHR0cDovLzEyNy4wLjAuMTo4MDAwL3NlY3VyaXR5
L3hzc0F1ZGl0b3IvcmVzb3VyY2VzL2VjaG8taW50ZXJ0YWcucGw/ZGlzYWJsZS1wcm90ZWN0aW9u
PTEmcT08c2NyaXB0PmFsZXJ0KC9QQVNTLyk8L3NjcmlwdD4iPgorPC9pZnJhbWU+Cis8L2JvZHk+
Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L3hz
c0F1ZGl0b3IvcmVzb3VyY2VzL2VjaG8taGVhZC1iYXNlLWhyZWYucGwgYi9MYXlvdXRUZXN0cy9o
dHRwL3Rlc3RzL3NlY3VyaXR5L3hzc0F1ZGl0b3IvcmVzb3VyY2VzL2VjaG8taGVhZC1iYXNlLWhy
ZWYucGwKaW5kZXggMDFhNTg5NS4uMmE3NDZmMCAxMDA3NTUKLS0tIGEvTGF5b3V0VGVzdHMvaHR0
cC90ZXN0cy9zZWN1cml0eS94c3NBdWRpdG9yL3Jlc291cmNlcy9lY2hvLWhlYWQtYmFzZS1ocmVm
LnBsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkveHNzQXVkaXRvci9yZXNv
dXJjZXMvZWNoby1oZWFkLWJhc2UtaHJlZi5wbApAQCAtNSw3ICs1LDcgQEAgdXNlIENHSTsKIG15
ICRjZ2kgPSBuZXcgQ0dJOwogCiBpZiAoJGNnaS0+cGFyYW0oJ2VuYWJsZS1mdWxsLWJsb2NrJykp
IHsKLSAgICBwcmludCAiWC1YU1MtUHJvdGVjdGlvbjogMTJcbiI7CisgICAgcHJpbnQgIlgtWFNT
LVByb3RlY3Rpb246IDE7IG1vZGU9YmxvY2tcbiI7CiB9CiBwcmludCAiQ29udGVudC1UeXBlOiB0
ZXh0L2h0bWw7IGNoYXJzZXQ9VVRGLThcblxuIjsKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aHR0cC90ZXN0cy9zZWN1cml0eS94c3NBdWRpdG9yL3Jlc291cmNlcy9lY2hvLWludGVydGFnLWNs
aWNrLWFuZC1ub3RpZnkucGwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L3hzc0F1
ZGl0b3IvcmVzb3VyY2VzL2VjaG8taW50ZXJ0YWctY2xpY2stYW5kLW5vdGlmeS5wbAppbmRleCA5
N2YzN2ZjLi42ZTEwMTdlIDEwMDc1NQotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3Vy
aXR5L3hzc0F1ZGl0b3IvcmVzb3VyY2VzL2VjaG8taW50ZXJ0YWctY2xpY2stYW5kLW5vdGlmeS5w
bAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L3hzc0F1ZGl0b3IvcmVzb3Vy
Y2VzL2VjaG8taW50ZXJ0YWctY2xpY2stYW5kLW5vdGlmeS5wbApAQCAtNSw3ICs1LDcgQEAgdXNl
IENHSTsKIG15ICRjZ2kgPSBuZXcgQ0dJOwogCiBpZiAoJGNnaS0+cGFyYW0oJ2VuYWJsZS1mdWxs
LWJsb2NrJykpIHsKLSAgICBwcmludCAiWC1YU1MtUHJvdGVjdGlvbjogMTJcbiI7CisgICAgcHJp
bnQgIlgtWFNTLVByb3RlY3Rpb246IDE7IG1vZGU9YmxvY2tcbiI7CiB9CiBwcmludCAiQ29udGVu
dC1UeXBlOiB0ZXh0L2h0bWw7IGNoYXJzZXQ9VVRGLThcblxuIjsKIApkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS94c3NBdWRpdG9yL3Jlc291cmNlcy9lY2hvLWlu
dGVydGFnLnBsIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS94c3NBdWRpdG9yL3Jl
c291cmNlcy9lY2hvLWludGVydGFnLnBsCmluZGV4IDA1MDQ2YWIuLmVmOGUyZjYgMTAwNzU1Ci0t
LSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkveHNzQXVkaXRvci9yZXNvdXJjZXMv
ZWNoby1pbnRlcnRhZy5wbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L3hz
c0F1ZGl0b3IvcmVzb3VyY2VzL2VjaG8taW50ZXJ0YWcucGwKQEAgLTUsNyArNSwxMyBAQCB1c2Ug
Q0dJOwogbXkgJGNnaSA9IG5ldyBDR0k7CiAKIGlmICgkY2dpLT5wYXJhbSgnZW5hYmxlLWZ1bGwt
YmxvY2snKSkgewotICAgIHByaW50ICJYLVhTUy1Qcm90ZWN0aW9uOiAxMlxuIjsKKyAgICBwcmlu
dCAiWC1YU1MtUHJvdGVjdGlvbjogMTsgbW9kZT1ibG9ja1xuIjsKK30KK2lmICgkY2dpLT5wYXJh
bSgnZGlzYWJsZS1wcm90ZWN0aW9uJykpIHsKKyAgICBwcmludCAiWC1YU1MtUHJvdGVjdGlvbjog
MFxuIjsKK30KK2lmICgkY2dpLT5wYXJhbSgnY3JhenktaGVhZGVyJykpIHsKKyAgICBwcmludCAi
WC1YU1MtUHJvdGVjdGlvbjogICAxICA7TW9EZSA9ICBiTG9jSyAgIFxuIjsKIH0KIGlmICgkY2dp
LT5wYXJhbSgnY3VzdG9tLWhlYWRlcicpKSB7CiAgICAgcHJpbnQgJGNnaS0+cGFyYW0oJ2N1c3Rv
bS1oZWFkZXInKSAuICJcbiI7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Nl
Y3VyaXR5L3hzc0F1ZGl0b3IveHNzLXByb3RlY3Rpb24tcGFyc2luZy0wMS1leHBlY3RlZC50eHQg
Yi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L3hzc0F1ZGl0b3IveHNzLXByb3RlY3Rp
b24tcGFyc2luZy0wMS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMC4uMmM4MTdjMAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMv
c2VjdXJpdHkveHNzQXVkaXRvci94c3MtcHJvdGVjdGlvbi1wYXJzaW5nLTAxLWV4cGVjdGVkLnR4
dApAQCAtMCwwICsxLDEwIEBACitDT05TT0xFIE1FU1NBR0U6IGxpbmUgMTogUmVmdXNlZCB0byBl
eGVjdXRlIGEgSmF2YVNjcmlwdCBzY3JpcHQuIFNvdXJjZSBjb2RlIG9mIHNjcmlwdCBmb3VuZCB3
aXRoaW4gcmVxdWVzdC4KKworVGhpcyB0ZXN0cyBvdXIgcGFyc2luZyBvZiB0aGUgWC1YU1MtUHJv
dGVjdGlvbiBoZWFkZXIuCisKKworCistLS0tLS0tLQorRnJhbWU6ICdmcmFtZScKKy0tLS0tLS0t
CisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkveHNzQXVkaXRv
ci94c3MtcHJvdGVjdGlvbi1wYXJzaW5nLTAxLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3Rz
L3NlY3VyaXR5L3hzc0F1ZGl0b3IveHNzLXByb3RlY3Rpb24tcGFyc2luZy0wMS5odG1sCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjYxOWUyNTgKLS0tIC9kZXYvbnVsbAorKysg
Yi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L3hzc0F1ZGl0b3IveHNzLXByb3RlY3Rp
b24tcGFyc2luZy0wMS5odG1sCkBAIC0wLDAgKzEsMTkgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0
bWw+Cis8aGVhZD4KKzxzY3JpcHQgc3JjPSJodHRwOi8vbG9jYWxob3N0OjgwMDAvc2VjdXJpdHkv
eHNzQXVkaXRvci9yZXNvdXJjZXMvdXRpbGl0aWVzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQ+Citp
ZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKSB7CisgICAgbGF5b3V0VGVzdENvbnRyb2xs
ZXIuZHVtcEFzVGV4dCgpOworICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBDaGlsZEZyYW1l
c0FzVGV4dCgpOworICAgIGxheW91dFRlc3RDb250cm9sbGVyLndhaXRVbnRpbERvbmUoKTsKKyAg
ICBsYXlvdXRUZXN0Q29udHJvbGxlci5zZXRYU1NBdWRpdG9yRW5hYmxlZCh0cnVlKTsKK30KKzwv
c2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8cD5UaGlzIHRlc3RzIG91ciBwYXJzaW5nIG9mIHRo
ZSBYLVhTUy1Qcm90ZWN0aW9uIGhlYWRlci48L3A+Cis8aWZyYW1lIGlkPSJmcmFtZSIgb25sb2Fk
PSJjaGVja0lmRnJhbWVMb2NhdGlvbk1hdGNoZXNVUkxBbmRDYWxsRG9uZSgnZnJhbWUnLCAnYWJv
dXQ6YmxhbmsnKSIgc3JjPSJodHRwOi8vMTI3LjAuMC4xOjgwMDAvc2VjdXJpdHkveHNzQXVkaXRv
ci9yZXNvdXJjZXMvZWNoby1pbnRlcnRhZy5wbD9jcmF6eS1oZWFkZXI9MSZxPTxzY3JpcHQ+YWxl
cnQoL1hTUy8pPC9zY3JpcHQ+PHA+SWYgeW91IHNlZSB0aGlzIG1lc3NhZ2UgdGhlbiB0aGUgdGVz
dCBGQUlMRUQuPC9wPiI+Cis8L2lmcmFtZT4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBh
L1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMGI0MTE0ZC4uMDM5
OGEwYyAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvV2ViQ29yZS9DaGFuZ2VM
b2cKQEAgLTEsMyArMSwyNyBAQAorMjAxMC0wMi0yNyAgQWRhbSBCYXJ0aCAgPGFiYXJ0aEB3ZWJr
aXQub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
IENoYW5nZSBYU1NBdWRpdG9yIGJsb2NrIHN5bnRheAorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MzQ0MzYKKworICAgICAgICBVcGRhdGUgb3VyIGJsb2Nr
aW5nIHN5bnRheCB0byBzb21ldGhpbmcgbW9yZSByZWFzb25hYmxlLiAgQWxzbywKKyAgICAgICAg
aW1wbGVtZW50ZWQgYSB3YXkgZm9yIGEgd2ViIHNpdGUgdG8gZGlzYWJsZSB0aGUgZmlsdGVyLgor
CisgICAgICAgIFRlc3RzOiBodHRwL3Rlc3RzL3NlY3VyaXR5L3hzc0F1ZGl0b3Ivbm8tcHJvdGVj
dGlvbi1zY3JpcHQtdGFnLmh0bWwKKyAgICAgICAgICAgICAgIGh0dHAvdGVzdHMvc2VjdXJpdHkv
eHNzQXVkaXRvci94c3MtcHJvdGVjdGlvbi1wYXJzaW5nLTAxLmh0bWwKKworICAgICAgICAqIFdl
YkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBwYWdlL1hTU0F1ZGl0
b3IuY3BwOgorICAgICAgICAoV2ViQ29yZTo6WFNTQXVkaXRvcjo6eHNzUHJvdGVjdGlvbik6Cisg
ICAgICAgIChXZWJDb3JlOjpYU1NBdWRpdG9yOjpmaW5kSW5SZXF1ZXN0KToKKyAgICAgICAgKiBw
YWdlL1hTU0F1ZGl0b3IuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL0hUVFBQYXJzZXJz
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OnNraXBUb2tlbik6CisgICAgICAgIChXZWJDb3JlOjpw
YXJzZVhTU1Byb3RlY3Rpb25IZWFkZXIpOgorICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsvSFRU
UFBhcnNlcnMuaDoKKyAgICAgICAgKFdlYkNvcmU6Oik6CisKIDIwMTAtMDItMjYgIFBhdmVsIEZl
bGRtYW4gIDxwZmVsZG1hbkBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgVGlt
b3RoeSBIYXRjaGVyLgpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wYWdlL1hTU0F1ZGl0b3IuY3BwIGIv
V2ViQ29yZS9wYWdlL1hTU0F1ZGl0b3IuY3BwCmluZGV4IDBkZjczNjQuLjg0OWIyZjcgMTAwNjQ0
Ci0tLSBhL1dlYkNvcmUvcGFnZS9YU1NBdWRpdG9yLmNwcAorKysgYi9XZWJDb3JlL3BhZ2UvWFNT
QXVkaXRvci5jcHAKQEAgLTI5MCw3ICsyOTAsNyBAQCBib29sIFhTU0F1ZGl0b3I6OmlzU2FtZU9y
aWdpblJlc291cmNlKGNvbnN0IFN0cmluZyYgdXJsKSBjb25zdAogICAgIHJldHVybiAobV9mcmFt
ZS0+ZG9jdW1lbnQoKS0+dXJsKCkuaG9zdCgpID09IHJlc291cmNlVVJMLmhvc3QoKSAmJiByZXNv
dXJjZVVSTC5xdWVyeSgpLmlzRW1wdHkoKSk7CiB9CiAKLWJvb2wgWFNTQXVkaXRvcjo6c2hvdWxk
RnVsbFBhZ2VCbG9ja0ZvclhTU1Byb3RlY3Rpb25IZWFkZXIoKSBjb25zdAorWFNTUHJvdGVjdGlv
bkRpc3Bvc2l0aW9uIFhTU0F1ZGl0b3I6Onhzc1Byb3RlY3Rpb24oKSBjb25zdAogewogICAgIC8v
IElmIHdlIGRldGVjdCBhbiBYU1MgYXR0YWNrIGFuZCBmaW5kIHRoZSBIVFRQIGhlYWRlciAiWC1Y
U1MtUHJvdGVjdGlvbjogMTIiIHRoZW4KICAgICAvLyB3ZSB3aWxsIHN0b3AgbG9hZGluZyB0aGUg
cGFnZSBhcyBvcHBvc2VkIHRvIGlnbm9yaW5nIHRoZSBzY3JpcHQuIFRoZSB2YWx1ZSAiMTIiCkBA
IC0zMDIsOSArMzAyLDcgQEAgYm9vbCBYU1NBdWRpdG9yOjpzaG91bGRGdWxsUGFnZUJsb2NrRm9y
WFNTUHJvdGVjdGlvbkhlYWRlcigpIGNvbnN0CiAgICAgaWYgKGZyYW1lLT5kb2N1bWVudCgpLT51
cmwoKSA9PSBibGFua1VSTCgpKQogICAgICAgICBmcmFtZSA9IG1fZnJhbWUtPnRyZWUoKS0+cGFy
ZW50KCk7CiAKLSAgICAvLyBXZSBzdHJpcCBhbnkgd2hpdGVzcGFjZSBjaGFyYWN0ZXJzIHRvIGNv
bmZvcm0gdG8gdGhlIGJlaGF2aW9yIGluIEludGVybmV0IEV4cGxvcmVyLgotICAgIFN0cmluZyB4
c3NQcm90ZWN0aW9uVmFsdWUgPSBmcmFtZS0+bG9hZGVyKCktPmRvY3VtZW50TG9hZGVyKCktPnJl
c3BvbnNlKCkuaHR0cEhlYWRlckZpZWxkKFhTU1Byb3RlY3Rpb25IZWFkZXIpLnN0cmlwV2hpdGVT
cGFjZSgpOwotICAgIHJldHVybiAoeHNzUHJvdGVjdGlvblZhbHVlLmxlbmd0aCgpID49IDIgJiYg
eHNzUHJvdGVjdGlvblZhbHVlWzBdID09ICcxJyAmJiB4c3NQcm90ZWN0aW9uVmFsdWVbMV0gPT0g
JzInKTsKKyAgICByZXR1cm4gcGFyc2VYU1NQcm90ZWN0aW9uSGVhZGVyKGZyYW1lLT5sb2FkZXIo
KS0+ZG9jdW1lbnRMb2FkZXIoKS0+cmVzcG9uc2UoKS5odHRwSGVhZGVyRmllbGQoWFNTUHJvdGVj
dGlvbkhlYWRlcikpOwogfQogCiBib29sIFhTU0F1ZGl0b3I6OmZpbmRJblJlcXVlc3QoY29uc3Qg
RmluZFRhc2smIHRhc2spIGNvbnN0CkBAIC0zMTgsMTEgKzMxNiwyNCBAQCBib29sIFhTU0F1ZGl0
b3I6OmZpbmRJblJlcXVlc3QoY29uc3QgRmluZFRhc2smIHRhc2spIGNvbnN0CiAgICAgICAgIHJl
c3VsdCA9IGZpbmRJblJlcXVlc3QobV9mcmFtZSwgdGFzayk7CiAgICAgICAgIGJsb2NrRnJhbWUg
PSBtX2ZyYW1lOwogICAgIH0KLSAgICBpZiAocmVzdWx0ICYmIGJsb2NrRnJhbWUgJiYgc2hvdWxk
RnVsbFBhZ2VCbG9ja0ZvclhTU1Byb3RlY3Rpb25IZWFkZXIoKSkgewotICAgICAgICBibG9ja0Zy
YW1lLT5sb2FkZXIoKS0+c3RvcEFsbExvYWRlcnMoKTsKLSAgICAgICAgYmxvY2tGcmFtZS0+cmVk
aXJlY3RTY2hlZHVsZXIoKS0+c2NoZWR1bGVMb2NhdGlvbkNoYW5nZShibGFua1VSTCgpLCBTdHJp
bmcoKSk7CisgICAgaWYgKCFyZXN1bHQpCisgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgIHN3
aXRjaCAoeHNzUHJvdGVjdGlvbigpKSB7CisgICAgY2FzZSBYU1NQcm90ZWN0aW9uRGlzYWJsZWQ6
CisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICBjYXNlIFhTU1Byb3RlY3Rpb25FbmFibGVkOgor
ICAgICAgICBicmVhazsKKyAgICBjYXNlIFhTU1Byb3RlY3Rpb25CbG9ja0VuYWJsZWQ6CisgICAg
ICAgIGlmIChibG9ja0ZyYW1lKSB7CisgICAgICAgICAgICBibG9ja0ZyYW1lLT5sb2FkZXIoKS0+
c3RvcEFsbExvYWRlcnMoKTsKKyAgICAgICAgICAgIGJsb2NrRnJhbWUtPnJlZGlyZWN0U2NoZWR1
bGVyKCktPnNjaGVkdWxlTG9jYXRpb25DaGFuZ2UoYmxhbmtVUkwoKSwgU3RyaW5nKCkpOworICAg
ICAgICB9CisgICAgICAgIGJyZWFrOworICAgIGRlZmF1bHQ6CisgICAgICAgIEFTU0VSVF9OT1Rf
UkVBQ0hFRCgpOwogICAgIH0KLSAgICByZXR1cm4gcmVzdWx0OworICAgIHJldHVybiB0cnVlOwog
fQogCiBib29sIFhTU0F1ZGl0b3I6OmZpbmRJblJlcXVlc3QoRnJhbWUqIGZyYW1lLCBjb25zdCBG
aW5kVGFzayYgdGFzaykgY29uc3QKZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGFnZS9YU1NBdWRpdG9y
LmggYi9XZWJDb3JlL3BhZ2UvWFNTQXVkaXRvci5oCmluZGV4IGJmZjZjYmUuLmE3NjI4ZjMgMTAw
NjQ0Ci0tLSBhL1dlYkNvcmUvcGFnZS9YU1NBdWRpdG9yLmgKKysrIGIvV2ViQ29yZS9wYWdlL1hT
U0F1ZGl0b3IuaApAQCAtMjcsNiArMjcsNyBAQAogI2lmbmRlZiBYU1NBdWRpdG9yX2gKICNkZWZp
bmUgWFNTQXVkaXRvcl9oCiAKKyNpbmNsdWRlICJIVFRQUGFyc2Vycy5oIgogI2luY2x1ZGUgIlBs
YXRmb3JtU3RyaW5nLmgiCiAjaW5jbHVkZSAiVGV4dEVuY29kaW5nLmgiCiAKQEAgLTE0NCw3ICsx
NDUsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgIGJvb2wgZmluZEluUmVxdWVzdChj
b25zdCBGaW5kVGFzayYpIGNvbnN0OwogICAgICAgICBib29sIGZpbmRJblJlcXVlc3QoRnJhbWUq
LCBjb25zdCBGaW5kVGFzayYpIGNvbnN0OwogCi0gICAgICAgIGJvb2wgc2hvdWxkRnVsbFBhZ2VC
bG9ja0ZvclhTU1Byb3RlY3Rpb25IZWFkZXIoKSBjb25zdDsKKyAgICAgICAgWFNTUHJvdGVjdGlv
bkRpc3Bvc2l0aW9uIHhzc1Byb3RlY3Rpb24oKSBjb25zdDsKIAogICAgICAgICAvLyBUaGUgZnJh
bWUgdG8gYXVkaXQuCiAgICAgICAgIEZyYW1lKiBtX2ZyYW1lOwpkaWZmIC0tZ2l0IGEvV2ViQ29y
ZS9wbGF0Zm9ybS9uZXR3b3JrL0hUVFBQYXJzZXJzLmNwcCBiL1dlYkNvcmUvcGxhdGZvcm0vbmV0
d29yay9IVFRQUGFyc2Vycy5jcHAKaW5kZXggOTIwMjY2MC4uMjY0NTM4YiAxMDA2NDQKLS0tIGEv
V2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL0hUVFBQYXJzZXJzLmNwcAorKysgYi9XZWJDb3JlL3Bs
YXRmb3JtL25ldHdvcmsvSFRUUFBhcnNlcnMuY3BwCkBAIC01NSw2ICs1NSwyMSBAQCBzdGF0aWMg
aW5saW5lIGJvb2wgc2tpcFdoaXRlU3BhY2UoY29uc3QgU3RyaW5nJiBzdHIsIGludCYgcG9zLCBi
b29sIGZyb21IdHRwRXF1aQogICAgIHJldHVybiBwb3MgIT0gbGVuOwogfQogCisvLyBSZXR1cm5z
IHRydWUgaWYgdGhlIGZ1bmN0aW9uIGNhbiBtYXRjaCB0aGUgd2hvbGUgdG9rZW4gKGNhc2UgaW5z
ZW5zaXRpdmUpLgorLy8gTm90ZTogTWlnaHQgcmV0dXJuIHBvcyA9PSBzdHIubGVuZ3RoKCkKK3N0
YXRpYyBpbmxpbmUgYm9vbCBza2lwVG9rZW4oY29uc3QgU3RyaW5nJiBzdHIsIGludCYgcG9zLCBj
b25zdCBjaGFyKiB0b2tlbikKK3sKKyAgICBpbnQgbGVuID0gc3RyLmxlbmd0aCgpOworCisgICAg
d2hpbGUgKHBvcyAhPSBsZW4gJiYgKnRva2VuKSB7CisgICAgICAgIGlmICh0b0FTQ0lJTG93ZXIo
c3RyW3Bvc10pICE9ICp0b2tlbisrKQorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAg
ICArK3BvczsKKyAgICB9CisKKyAgICByZXR1cm4gdHJ1ZTsKK30KKwogYm9vbCBwYXJzZUhUVFBS
ZWZyZXNoKGNvbnN0IFN0cmluZyYgcmVmcmVzaCwgYm9vbCBmcm9tSHR0cEVxdWl2TWV0YSwgZG91
YmxlJiBkZWxheSwgU3RyaW5nJiB1cmwpCiB7CiAgICAgaW50IGxlbiA9IHJlZnJlc2gubGVuZ3Ro
KCk7CkBAIC0yMjAsNCArMjM1LDMyIEBAIFN0cmluZyBleHRyYWN0Q2hhcnNldEZyb21NZWRpYVR5
cGUoY29uc3QgU3RyaW5nJiBtZWRpYVR5cGUpCiAgICAgCiAgICAgcmV0dXJuIFN0cmluZygpOwog
fQorCitYU1NQcm90ZWN0aW9uRGlzcG9zaXRpb24gcGFyc2VYU1NQcm90ZWN0aW9uSGVhZGVyKGNv
bnN0IFN0cmluZyYgaGVhZGVyKQoreworICAgIFN0cmluZyBzdGlwcGVkSGVhZGVyID0gaGVhZGVy
LnN0cmlwV2hpdGVTcGFjZSgpOworCisgICAgaWYgKHN0aXBwZWRIZWFkZXIuaXNFbXB0eSgpKQor
ICAgICAgICByZXR1cm4gWFNTUHJvdGVjdGlvbkVuYWJsZWQ7CisKKyAgICBpZiAoc3RpcHBlZEhl
YWRlclswXSA9PSAnMCcpCisgICAgICAgIHJldHVybiBYU1NQcm90ZWN0aW9uRGlzYWJsZWQ7CisK
KyAgICBpbnQgbGVuZ3RoID0gKGludCloZWFkZXIubGVuZ3RoKCk7CisgICAgaW50IHBvcyA9IDA7
CisgICAgaWYgKHN0aXBwZWRIZWFkZXJbcG9zKytdID09ICcxJworICAgICAgICAmJiBza2lwV2hp
dGVTcGFjZShzdGlwcGVkSGVhZGVyLCBwb3MsIGZhbHNlKQorICAgICAgICAmJiBzdGlwcGVkSGVh
ZGVyW3BvcysrXSA9PSAnOycKKyAgICAgICAgJiYgc2tpcFdoaXRlU3BhY2Uoc3RpcHBlZEhlYWRl
ciwgcG9zLCBmYWxzZSkKKyAgICAgICAgJiYgc2tpcFRva2VuKHN0aXBwZWRIZWFkZXIsIHBvcywg
Im1vZGUiKQorICAgICAgICAmJiBza2lwV2hpdGVTcGFjZShzdGlwcGVkSGVhZGVyLCBwb3MsIGZh
bHNlKQorICAgICAgICAmJiBzdGlwcGVkSGVhZGVyW3BvcysrXSA9PSAnPScKKyAgICAgICAgJiYg
c2tpcFdoaXRlU3BhY2Uoc3RpcHBlZEhlYWRlciwgcG9zLCBmYWxzZSkKKyAgICAgICAgJiYgc2tp
cFRva2VuKHN0aXBwZWRIZWFkZXIsIHBvcywgImJsb2NrIikKKyAgICAgICAgJiYgcG9zID09IGxl
bmd0aCkKKyAgICAgICAgcmV0dXJuIFhTU1Byb3RlY3Rpb25CbG9ja0VuYWJsZWQ7CisKKyAgICBy
ZXR1cm4gWFNTUHJvdGVjdGlvbkVuYWJsZWQ7Cit9CisKIH0KZGlmZiAtLWdpdCBhL1dlYkNvcmUv
cGxhdGZvcm0vbmV0d29yay9IVFRQUGFyc2Vycy5oIGIvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3Jr
L0hUVFBQYXJzZXJzLmgKaW5kZXggMDY0OGFlZS4uYjFjYjcwOSAxMDA2NDQKLS0tIGEvV2ViQ29y
ZS9wbGF0Zm9ybS9uZXR3b3JrL0hUVFBQYXJzZXJzLmgKKysrIGIvV2ViQ29yZS9wbGF0Zm9ybS9u
ZXR3b3JrL0hUVFBQYXJzZXJzLmgKQEAgLTMxLDEzICszMSwyMSBAQAogCiBuYW1lc3BhY2UgV2Vi
Q29yZSB7CiAKLSAgICBjbGFzcyBTdHJpbmc7CitjbGFzcyBTdHJpbmc7CisKK2VudW0gWFNTUHJv
dGVjdGlvbkRpc3Bvc2l0aW9uIHsKKyAgICBYU1NQcm90ZWN0aW9uRGlzYWJsZWQsCisgICAgWFNT
UHJvdGVjdGlvbkVuYWJsZWQsCisgICAgWFNTUHJvdGVjdGlvbkJsb2NrRW5hYmxlZAorfTsKKwor
Ym9vbCBwYXJzZUhUVFBSZWZyZXNoKGNvbnN0IFN0cmluZyYgcmVmcmVzaCwgYm9vbCBmcm9tSHR0
cEVxdWl2TWV0YSwgZG91YmxlJiBkZWxheSwgU3RyaW5nJiB1cmwpOworZG91YmxlIHBhcnNlRGF0
ZShjb25zdCBTdHJpbmcmKTsKK1N0cmluZyBmaWxlbmFtZUZyb21IVFRQQ29udGVudERpc3Bvc2l0
aW9uKGNvbnN0IFN0cmluZyYpOyAKK1N0cmluZyBleHRyYWN0TUlNRVR5cGVGcm9tTWVkaWFUeXBl
KGNvbnN0IFN0cmluZyYpOworU3RyaW5nIGV4dHJhY3RDaGFyc2V0RnJvbU1lZGlhVHlwZShjb25z
dCBTdHJpbmcmKTsgCitYU1NQcm90ZWN0aW9uRGlzcG9zaXRpb24gcGFyc2VYU1NQcm90ZWN0aW9u
SGVhZGVyKGNvbnN0IFN0cmluZyYpOwogCi0gICAgYm9vbCBwYXJzZUhUVFBSZWZyZXNoKGNvbnN0
IFN0cmluZyYgcmVmcmVzaCwgYm9vbCBmcm9tSHR0cEVxdWl2TWV0YSwgZG91YmxlJiBkZWxheSwg
U3RyaW5nJiB1cmwpOwotICAgIGRvdWJsZSBwYXJzZURhdGUoY29uc3QgU3RyaW5nJik7Ci0gICAg
U3RyaW5nIGZpbGVuYW1lRnJvbUhUVFBDb250ZW50RGlzcG9zaXRpb24oY29uc3QgU3RyaW5nJik7
IAotICAgIFN0cmluZyBleHRyYWN0TUlNRVR5cGVGcm9tTWVkaWFUeXBlKGNvbnN0IFN0cmluZyYp
OwotICAgIFN0cmluZyBleHRyYWN0Q2hhcnNldEZyb21NZWRpYVR5cGUoY29uc3QgU3RyaW5nJik7
IAogfQogCiAjZW5kaWYK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>51194</attachid>
            <date>2010-03-19 15:33:27 -0700</date>
            <delta_ts>2010-03-19 20:55:20 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-34436-20100319153325.patch</filename>
            <type>text/plain</type>
            <size>15314</size>
            <attacher name="Adam Barth">abarth</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCBmNDUzMmMwLi5iNDVjZTUzIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjMgQEAKKzIwMTAtMDMt
MTkgIEFkYW0gQmFydGggIDxhYmFydGhAd2Via2l0Lm9yZz4KKworICAgICAgICBSZXZpZXdlZCBi
eSBEYW5pZWwgQmF0ZXMuCisKKyAgICAgICAgQ2hhbmdlIFhTU0F1ZGl0b3IgYmxvY2sgc3ludGF4
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0zNDQzNgor
CisgICAgICAgIFVwZGF0ZSB0ZXN0cyB0byBhY2NvdW50IGZvciB0aGUgbmV3IGJsb2NraW5nIHN5
bnRheC4gIEFkZGVkIHRlc3QgZm9yCisgICAgICAgIGRpc2FibGluZyB0aGUgWFNTIGZpbHRlci4K
KworICAgICAgICAqIGh0dHAvdGVzdHMvc2VjdXJpdHkveHNzQXVkaXRvci9tYWxmb3JtZWQteHNz
LXByb3RlY3Rpb24taGVhZGVyLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBodHRwL3Rlc3RzL3Nl
Y3VyaXR5L3hzc0F1ZGl0b3IvbWFsZm9ybWVkLXhzcy1wcm90ZWN0aW9uLWhlYWRlci5odG1sOgor
ICAgICAgICAqIGh0dHAvdGVzdHMvc2VjdXJpdHkveHNzQXVkaXRvci9uby1wcm90ZWN0aW9uLXNj
cmlwdC10YWctZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3NlY3Vy
aXR5L3hzc0F1ZGl0b3Ivbm8tcHJvdGVjdGlvbi1zY3JpcHQtdGFnLmh0bWw6IEFkZGVkLgorICAg
ICAgICAqIGh0dHAvdGVzdHMvc2VjdXJpdHkveHNzQXVkaXRvci9yZXNvdXJjZXMvZWNoby1oZWFk
LWJhc2UtaHJlZi5wbDoKKyAgICAgICAgKiBodHRwL3Rlc3RzL3NlY3VyaXR5L3hzc0F1ZGl0b3Iv
cmVzb3VyY2VzL2VjaG8taW50ZXJ0YWctY2xpY2stYW5kLW5vdGlmeS5wbDoKKyAgICAgICAgKiBo
dHRwL3Rlc3RzL3NlY3VyaXR5L3hzc0F1ZGl0b3IvcmVzb3VyY2VzL2VjaG8taW50ZXJ0YWcucGw6
CisgICAgICAgICogaHR0cC90ZXN0cy9zZWN1cml0eS94c3NBdWRpdG9yL3hzcy1wcm90ZWN0aW9u
LXBhcnNpbmctMDEtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3Nl
Y3VyaXR5L3hzc0F1ZGl0b3IveHNzLXByb3RlY3Rpb24tcGFyc2luZy0wMS5odG1sOiBBZGRlZC4K
KwogMjAxMC0wMy0xOCAgRGFyaW4gRmlzaGVyICA8ZGFyaW5AY2hyb21pdW0ub3JnPgogCiAgICAg
ICAgIFJldmlld2VkIGJ5IEFkYW0gQmFydGguCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRw
L3Rlc3RzL3NlY3VyaXR5L3hzc0F1ZGl0b3IvbWFsZm9ybWVkLXhzcy1wcm90ZWN0aW9uLWhlYWRl
ci1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L3hzc0F1ZGl0
b3IvbWFsZm9ybWVkLXhzcy1wcm90ZWN0aW9uLWhlYWRlci1leHBlY3RlZC50eHQKaW5kZXggMGVl
ZmFkMy4uZWM4ZGNhZSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0
eS94c3NBdWRpdG9yL21hbGZvcm1lZC14c3MtcHJvdGVjdGlvbi1oZWFkZXItZXhwZWN0ZWQudHh0
CisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkveHNzQXVkaXRvci9tYWxmb3Jt
ZWQteHNzLXByb3RlY3Rpb24taGVhZGVyLWV4cGVjdGVkLnR4dApAQCAtNyw0ICs3LDQgQEAgVGhp
cyB0ZXN0cyB0aGF0IHRoZSBYLVhTUy1Qcm90ZWN0aW9uIGhlYWRlciBpcyBub3QgaWdub3JlZCB3
aGVuIHRoZSBsZW5ndGggb2YgaXQKIC0tLS0tLS0tCiBGcmFtZTogJ2ZyYW1lJwogLS0tLS0tLS0K
LQorSWYgeW91IHNlZSB0aGlzIG1lc3NhZ2UgYW5kIG5vIEphdmFTY3JpcHQgYWxlcnQoKSB0aGVu
IHRoZSB0ZXN0IFBBU1NFRC4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2Vj
dXJpdHkveHNzQXVkaXRvci9tYWxmb3JtZWQteHNzLXByb3RlY3Rpb24taGVhZGVyLmh0bWwgYi9M
YXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L3hzc0F1ZGl0b3IvbWFsZm9ybWVkLXhzcy1w
cm90ZWN0aW9uLWhlYWRlci5odG1sCmluZGV4IDY4MGM0NTUuLjE5NWY5NjUgMTAwNjQ0Ci0tLSBh
L0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkveHNzQXVkaXRvci9tYWxmb3JtZWQteHNz
LXByb3RlY3Rpb24taGVhZGVyLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1
cml0eS94c3NBdWRpdG9yL21hbGZvcm1lZC14c3MtcHJvdGVjdGlvbi1oZWFkZXIuaHRtbApAQCAt
MTMsNyArMTMsNyBAQCBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKSB7CiA8L2hlYWQ+
CiA8Ym9keT4KIDxwPlRoaXMgdGVzdHMgdGhhdCB0aGUgWC1YU1MtUHJvdGVjdGlvbiBoZWFkZXIg
aXMgbm90IGlnbm9yZWQgd2hlbiB0aGUgbGVuZ3RoIG9mIGl0cyB2YWx1ZSBleGNlZWRzIDxhIGhy
ZWY9Imh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yNzMxMiNjMTMiPjE2
IGNoYXJhY3RlcnMuPC9hPjwvcD4KLTxpZnJhbWUgaWQ9ImZyYW1lIiBvbmxvYWQ9ImNoZWNrSWZG
cmFtZUxvY2F0aW9uTWF0Y2hlc1VSTEFuZENhbGxEb25lKCdmcmFtZScsICdhYm91dDpibGFuaycp
IiBzcmM9Imh0dHA6Ly8xMjcuMC4wLjE6ODAwMC9zZWN1cml0eS94c3NBdWRpdG9yL3Jlc291cmNl
cy9lY2hvLWludGVydGFnLnBsP2N1c3RvbS1oZWFkZXI9WC1YU1MtUHJvdGVjdGlvbjogMTIzNDU2
Nzg5MDEyMzQ1NjcmcT08c2NyaXB0PmFsZXJ0KC9YU1MvKTwvc2NyaXB0PjxwPklmIHlvdSBzZWUg
dGhpcyBtZXNzYWdlIGFuZCBubyBKYXZhU2NyaXB0IGFsZXJ0KCkgdGhlbiB0aGUgdGVzdCBQQVNT
RUQuPC9wPiI+Cis8aWZyYW1lIGlkPSJmcmFtZSIgb25sb2FkPSJjaGVja0lmRnJhbWVMb2NhdGlv
bk1hdGNoZXNVUkxBbmRDYWxsRG9uZSgnZnJhbWUnLCAnYWJvdXQ6YmxhbmsnKSIgc3JjPSJodHRw
Oi8vMTI3LjAuMC4xOjgwMDAvc2VjdXJpdHkveHNzQXVkaXRvci9yZXNvdXJjZXMvZWNoby1pbnRl
cnRhZy5wbD9ub3RpZnlEb25lPTEmY3VzdG9tLWhlYWRlcj1YLVhTUy1Qcm90ZWN0aW9uOiAxMjM0
NTY3ODkwMTIzNDU2NyZxPTxzY3JpcHQ+YWxlcnQoL1hTUy8pPC9zY3JpcHQ+PHA+SWYgeW91IHNl
ZSB0aGlzIG1lc3NhZ2UgYW5kIG5vIEphdmFTY3JpcHQgYWxlcnQoKSB0aGVuIHRoZSB0ZXN0IFBB
U1NFRC48L3A+Ij4KIDwvaWZyYW1lPgogPC9ib2R5PgogPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS94c3NBdWRpdG9yL25vLXByb3RlY3Rpb24tc2Ny
aXB0LXRhZy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L3hz
c0F1ZGl0b3Ivbm8tcHJvdGVjdGlvbi1zY3JpcHQtdGFnLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5jYjVhMTJhCi0tLSAvZGV2L251bGwKKysrIGIvTGF5
b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS94c3NBdWRpdG9yL25vLXByb3RlY3Rpb24tc2Ny
aXB0LXRhZy1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw0IEBACitBTEVSVDogL1BBU1MvCitUaGlz
IHNjcmlwdCBzaG91bGQgcnVuIGJlY2F1c2UgWFNTIHByb3RlY3Rpb24gaXMgZGlzYWJsZWQuCisK
KwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS94c3NBdWRpdG9y
L25vLXByb3RlY3Rpb24tc2NyaXB0LXRhZy5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9z
ZWN1cml0eS94c3NBdWRpdG9yL25vLXByb3RlY3Rpb24tc2NyaXB0LXRhZy5odG1sCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmIxMmE4MjcKLS0tIC9kZXYvbnVsbAorKysgYi9M
YXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L3hzc0F1ZGl0b3Ivbm8tcHJvdGVjdGlvbi1z
Y3JpcHQtdGFnLmh0bWwKQEAgLTAsMCArMSwxNyBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4K
KzxoZWFkPgorPHNjcmlwdCBzcmM9Imh0dHA6Ly9sb2NhbGhvc3Q6ODAwMC9zZWN1cml0eS94c3NB
dWRpdG9yL3Jlc291cmNlcy91dGlsaXRpZXMuanMiPjwvc2NyaXB0PgorPHNjcmlwdD4KK2lmICh3
aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpIHsKKyAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5k
dW1wQXNUZXh0KCk7CisgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuc2V0WFNTQXVkaXRvckVuYWJs
ZWQodHJ1ZSk7Cit9Cis8L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHA+VGhpcyBzY3JpcHQg
c2hvdWxkIHJ1biBiZWNhdXNlIFhTUyBwcm90ZWN0aW9uIGlzIGRpc2FibGVkLjwvcD4KKzxpZnJh
bWUgaWQ9ImZyYW1lIiBzcmM9Imh0dHA6Ly8xMjcuMC4wLjE6ODAwMC9zZWN1cml0eS94c3NBdWRp
dG9yL3Jlc291cmNlcy9lY2hvLWludGVydGFnLnBsP2Rpc2FibGUtcHJvdGVjdGlvbj0xJnE9PHNj
cmlwdD5hbGVydCgvUEFTUy8pPC9zY3JpcHQ+Ij4KKzwvaWZyYW1lPgorPC9ib2R5PgorPC9odG1s
PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS94c3NBdWRpdG9y
L3Jlc291cmNlcy9lY2hvLWhlYWQtYmFzZS1ocmVmLnBsIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0
cy9zZWN1cml0eS94c3NBdWRpdG9yL3Jlc291cmNlcy9lY2hvLWhlYWQtYmFzZS1ocmVmLnBsCmlu
ZGV4IDAxYTU4OTUuLjJhNzQ2ZjAgMTAwNzU1Ci0tLSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMv
c2VjdXJpdHkveHNzQXVkaXRvci9yZXNvdXJjZXMvZWNoby1oZWFkLWJhc2UtaHJlZi5wbAorKysg
Yi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L3hzc0F1ZGl0b3IvcmVzb3VyY2VzL2Vj
aG8taGVhZC1iYXNlLWhyZWYucGwKQEAgLTUsNyArNSw3IEBAIHVzZSBDR0k7CiBteSAkY2dpID0g
bmV3IENHSTsKIAogaWYgKCRjZ2ktPnBhcmFtKCdlbmFibGUtZnVsbC1ibG9jaycpKSB7Ci0gICAg
cHJpbnQgIlgtWFNTLVByb3RlY3Rpb246IDEyXG4iOworICAgIHByaW50ICJYLVhTUy1Qcm90ZWN0
aW9uOiAxOyBtb2RlPWJsb2NrXG4iOwogfQogcHJpbnQgIkNvbnRlbnQtVHlwZTogdGV4dC9odG1s
OyBjaGFyc2V0PVVURi04XG5cbiI7CiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVz
dHMvc2VjdXJpdHkveHNzQXVkaXRvci9yZXNvdXJjZXMvZWNoby1pbnRlcnRhZy1jbGljay1hbmQt
bm90aWZ5LnBsIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS94c3NBdWRpdG9yL3Jl
c291cmNlcy9lY2hvLWludGVydGFnLWNsaWNrLWFuZC1ub3RpZnkucGwKaW5kZXggOTdmMzdmYy4u
NmUxMDE3ZSAxMDA3NTUKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS94c3NB
dWRpdG9yL3Jlc291cmNlcy9lY2hvLWludGVydGFnLWNsaWNrLWFuZC1ub3RpZnkucGwKKysrIGIv
TGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS94c3NBdWRpdG9yL3Jlc291cmNlcy9lY2hv
LWludGVydGFnLWNsaWNrLWFuZC1ub3RpZnkucGwKQEAgLTUsNyArNSw3IEBAIHVzZSBDR0k7CiBt
eSAkY2dpID0gbmV3IENHSTsKIAogaWYgKCRjZ2ktPnBhcmFtKCdlbmFibGUtZnVsbC1ibG9jaycp
KSB7Ci0gICAgcHJpbnQgIlgtWFNTLVByb3RlY3Rpb246IDEyXG4iOworICAgIHByaW50ICJYLVhT
Uy1Qcm90ZWN0aW9uOiAxOyBtb2RlPWJsb2NrXG4iOwogfQogcHJpbnQgIkNvbnRlbnQtVHlwZTog
dGV4dC9odG1sOyBjaGFyc2V0PVVURi04XG5cbiI7CiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2h0dHAvdGVzdHMvc2VjdXJpdHkveHNzQXVkaXRvci9yZXNvdXJjZXMvZWNoby1pbnRlcnRhZy5w
bCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkveHNzQXVkaXRvci9yZXNvdXJjZXMv
ZWNoby1pbnRlcnRhZy5wbAppbmRleCAwNTA0NmFiLi5lZjhlMmY2IDEwMDc1NQotLS0gYS9MYXlv
dXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L3hzc0F1ZGl0b3IvcmVzb3VyY2VzL2VjaG8taW50
ZXJ0YWcucGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS94c3NBdWRpdG9y
L3Jlc291cmNlcy9lY2hvLWludGVydGFnLnBsCkBAIC01LDcgKzUsMTMgQEAgdXNlIENHSTsKIG15
ICRjZ2kgPSBuZXcgQ0dJOwogCiBpZiAoJGNnaS0+cGFyYW0oJ2VuYWJsZS1mdWxsLWJsb2NrJykp
IHsKLSAgICBwcmludCAiWC1YU1MtUHJvdGVjdGlvbjogMTJcbiI7CisgICAgcHJpbnQgIlgtWFNT
LVByb3RlY3Rpb246IDE7IG1vZGU9YmxvY2tcbiI7Cit9CitpZiAoJGNnaS0+cGFyYW0oJ2Rpc2Fi
bGUtcHJvdGVjdGlvbicpKSB7CisgICAgcHJpbnQgIlgtWFNTLVByb3RlY3Rpb246IDBcbiI7Cit9
CitpZiAoJGNnaS0+cGFyYW0oJ2NyYXp5LWhlYWRlcicpKSB7CisgICAgcHJpbnQgIlgtWFNTLVBy
b3RlY3Rpb246ICAgMSAgO01vRGUgPSAgYkxvY0sgICBcbiI7CiB9CiBpZiAoJGNnaS0+cGFyYW0o
J2N1c3RvbS1oZWFkZXInKSkgewogICAgIHByaW50ICRjZ2ktPnBhcmFtKCdjdXN0b20taGVhZGVy
JykgLiAiXG4iOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS94
c3NBdWRpdG9yL3hzcy1wcm90ZWN0aW9uLXBhcnNpbmctMDEtZXhwZWN0ZWQudHh0IGIvTGF5b3V0
VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS94c3NBdWRpdG9yL3hzcy1wcm90ZWN0aW9uLXBhcnNp
bmctMDEtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjJj
ODE3YzAKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5
L3hzc0F1ZGl0b3IveHNzLXByb3RlY3Rpb24tcGFyc2luZy0wMS1leHBlY3RlZC50eHQKQEAgLTAs
MCArMSwxMCBAQAorQ09OU09MRSBNRVNTQUdFOiBsaW5lIDE6IFJlZnVzZWQgdG8gZXhlY3V0ZSBh
IEphdmFTY3JpcHQgc2NyaXB0LiBTb3VyY2UgY29kZSBvZiBzY3JpcHQgZm91bmQgd2l0aGluIHJl
cXVlc3QuCisKK1RoaXMgdGVzdHMgb3VyIHBhcnNpbmcgb2YgdGhlIFgtWFNTLVByb3RlY3Rpb24g
aGVhZGVyLgorCisKKworLS0tLS0tLS0KK0ZyYW1lOiAnZnJhbWUnCistLS0tLS0tLQorCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L3hzc0F1ZGl0b3IveHNzLXBy
b3RlY3Rpb24tcGFyc2luZy0wMS5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0
eS94c3NBdWRpdG9yL3hzcy1wcm90ZWN0aW9uLXBhcnNpbmctMDEuaHRtbApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwLi42MTllMjU4Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0
VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS94c3NBdWRpdG9yL3hzcy1wcm90ZWN0aW9uLXBhcnNp
bmctMDEuaHRtbApAQCAtMCwwICsxLDE5IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhl
YWQ+Cis8c2NyaXB0IHNyYz0iaHR0cDovL2xvY2FsaG9zdDo4MDAwL3NlY3VyaXR5L3hzc0F1ZGl0
b3IvcmVzb3VyY2VzL3V0aWxpdGllcy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0PgoraWYgKHdpbmRv
dy5sYXlvdXRUZXN0Q29udHJvbGxlcikgeworICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBB
c1RleHQoKTsKKyAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQ2hpbGRGcmFtZXNBc1RleHQo
KTsKKyAgICBsYXlvdXRUZXN0Q29udHJvbGxlci53YWl0VW50aWxEb25lKCk7CisgICAgbGF5b3V0
VGVzdENvbnRyb2xsZXIuc2V0WFNTQXVkaXRvckVuYWJsZWQodHJ1ZSk7Cit9Cis8L3NjcmlwdD4K
KzwvaGVhZD4KKzxib2R5PgorPHA+VGhpcyB0ZXN0cyBvdXIgcGFyc2luZyBvZiB0aGUgWC1YU1Mt
UHJvdGVjdGlvbiBoZWFkZXIuPC9wPgorPGlmcmFtZSBpZD0iZnJhbWUiIG9ubG9hZD0iY2hlY2tJ
ZkZyYW1lTG9jYXRpb25NYXRjaGVzVVJMQW5kQ2FsbERvbmUoJ2ZyYW1lJywgJ2Fib3V0OmJsYW5r
JykiIHNyYz0iaHR0cDovLzEyNy4wLjAuMTo4MDAwL3NlY3VyaXR5L3hzc0F1ZGl0b3IvcmVzb3Vy
Y2VzL2VjaG8taW50ZXJ0YWcucGw/Y3JhenktaGVhZGVyPTEmcT08c2NyaXB0PmFsZXJ0KC9YU1Mv
KTwvc2NyaXB0PjxwPklmIHlvdSBzZWUgdGhpcyBtZXNzYWdlIHRoZW4gdGhlIHRlc3QgRkFJTEVE
LjwvcD4iPgorPC9pZnJhbWU+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9XZWJDb3Jl
L0NoYW5nZUxvZyBiL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IDk3NDE5NDQuLjdkMWUyMDggMTAw
NjQ0Ci0tLSBhL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0x
LDMgKzEsMjYgQEAKKzIwMTAtMDMtMTkgIEFkYW0gQmFydGggIDxhYmFydGhAd2Via2l0Lm9yZz4K
KworICAgICAgICBSZXZpZXdlZCBieSBEYW5pZWwgQmF0ZXMuCisKKyAgICAgICAgQ2hhbmdlIFhT
U0F1ZGl0b3IgYmxvY2sgc3ludGF4CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0zNDQzNgorCisgICAgICAgIFVwZGF0ZSBvdXIgYmxvY2tpbmcgc3ludGF4
IHRvIHNvbWV0aGluZyBtb3JlIHJlYXNvbmFibGUuICBBbHNvLAorICAgICAgICBpbXBsZW1lbnRl
ZCBhIHdheSBmb3IgYSB3ZWIgc2l0ZSB0byBkaXNhYmxlIHRoZSBmaWx0ZXIuCisKKyAgICAgICAg
VGVzdHM6IGh0dHAvdGVzdHMvc2VjdXJpdHkveHNzQXVkaXRvci9uby1wcm90ZWN0aW9uLXNjcmlw
dC10YWcuaHRtbAorICAgICAgICAgICAgICAgaHR0cC90ZXN0cy9zZWN1cml0eS94c3NBdWRpdG9y
L3hzcy1wcm90ZWN0aW9uLXBhcnNpbmctMDEuaHRtbAorCisgICAgICAgICogcGFnZS9YU1NBdWRp
dG9yLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlhTU0F1ZGl0b3I6Onhzc1Byb3RlY3Rpb24pOgor
ICAgICAgICAoV2ViQ29yZTo6WFNTQXVkaXRvcjo6ZmluZEluUmVxdWVzdCk6CisgICAgICAgICog
cGFnZS9YU1NBdWRpdG9yLmg6CisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9IVFRQUGFyc2Vy
cy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpza2lwVG9rZW4pOgorICAgICAgICAoV2ViQ29yZTo6
cGFyc2VYU1NQcm90ZWN0aW9uSGVhZGVyKToKKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL0hU
VFBQYXJzZXJzLmg6CisgICAgICAgIChXZWJDb3JlOjopOgorCiAyMDEwLTAzLTE4ICBEYXJpbiBG
aXNoZXIgIDxkYXJpbkBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgQWRhbSBC
YXJ0aC4KZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGFnZS9YU1NBdWRpdG9yLmNwcCBiL1dlYkNvcmUv
cGFnZS9YU1NBdWRpdG9yLmNwcAppbmRleCAwZGY3MzY0Li4wOTRmMjAwIDEwMDY0NAotLS0gYS9X
ZWJDb3JlL3BhZ2UvWFNTQXVkaXRvci5jcHAKKysrIGIvV2ViQ29yZS9wYWdlL1hTU0F1ZGl0b3Iu
Y3BwCkBAIC0yOTAsMjEgKzI5MCwxNSBAQCBib29sIFhTU0F1ZGl0b3I6OmlzU2FtZU9yaWdpblJl
c291cmNlKGNvbnN0IFN0cmluZyYgdXJsKSBjb25zdAogICAgIHJldHVybiAobV9mcmFtZS0+ZG9j
dW1lbnQoKS0+dXJsKCkuaG9zdCgpID09IHJlc291cmNlVVJMLmhvc3QoKSAmJiByZXNvdXJjZVVS
TC5xdWVyeSgpLmlzRW1wdHkoKSk7CiB9CiAKLWJvb2wgWFNTQXVkaXRvcjo6c2hvdWxkRnVsbFBh
Z2VCbG9ja0ZvclhTU1Byb3RlY3Rpb25IZWFkZXIoKSBjb25zdAorWFNTUHJvdGVjdGlvbkRpc3Bv
c2l0aW9uIFhTU0F1ZGl0b3I6Onhzc1Byb3RlY3Rpb24oKSBjb25zdAogewotICAgIC8vIElmIHdl
IGRldGVjdCBhbiBYU1MgYXR0YWNrIGFuZCBmaW5kIHRoZSBIVFRQIGhlYWRlciAiWC1YU1MtUHJv
dGVjdGlvbjogMTIiIHRoZW4KLSAgICAvLyB3ZSB3aWxsIHN0b3AgbG9hZGluZyB0aGUgcGFnZSBh
cyBvcHBvc2VkIHRvIGlnbm9yaW5nIHRoZSBzY3JpcHQuIFRoZSB2YWx1ZSAiMTIiCi0gICAgLy8g
Y2FtZSBmcm9tIGEgcGVyc29uYWwgY29tbXVuaWNhdGlvbiwgc2VlIDxodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjczMTI+Ci0gICAgLy8gZm9yIG1vcmUgZGV0YWlscy4K
ICAgICBERUZJTkVfU1RBVElDX0xPQ0FMKFN0cmluZywgWFNTUHJvdGVjdGlvbkhlYWRlciwgKCJY
LVhTUy1Qcm90ZWN0aW9uIikpOwogCiAgICAgRnJhbWUqIGZyYW1lID0gbV9mcmFtZTsKICAgICBp
ZiAoZnJhbWUtPmRvY3VtZW50KCktPnVybCgpID09IGJsYW5rVVJMKCkpCiAgICAgICAgIGZyYW1l
ID0gbV9mcmFtZS0+dHJlZSgpLT5wYXJlbnQoKTsKIAotICAgIC8vIFdlIHN0cmlwIGFueSB3aGl0
ZXNwYWNlIGNoYXJhY3RlcnMgdG8gY29uZm9ybSB0byB0aGUgYmVoYXZpb3IgaW4gSW50ZXJuZXQg
RXhwbG9yZXIuCi0gICAgU3RyaW5nIHhzc1Byb3RlY3Rpb25WYWx1ZSA9IGZyYW1lLT5sb2FkZXIo
KS0+ZG9jdW1lbnRMb2FkZXIoKS0+cmVzcG9uc2UoKS5odHRwSGVhZGVyRmllbGQoWFNTUHJvdGVj
dGlvbkhlYWRlcikuc3RyaXBXaGl0ZVNwYWNlKCk7Ci0gICAgcmV0dXJuICh4c3NQcm90ZWN0aW9u
VmFsdWUubGVuZ3RoKCkgPj0gMiAmJiB4c3NQcm90ZWN0aW9uVmFsdWVbMF0gPT0gJzEnICYmIHhz
c1Byb3RlY3Rpb25WYWx1ZVsxXSA9PSAnMicpOworICAgIHJldHVybiBwYXJzZVhTU1Byb3RlY3Rp
b25IZWFkZXIoZnJhbWUtPmxvYWRlcigpLT5kb2N1bWVudExvYWRlcigpLT5yZXNwb25zZSgpLmh0
dHBIZWFkZXJGaWVsZChYU1NQcm90ZWN0aW9uSGVhZGVyKSk7CiB9CiAKIGJvb2wgWFNTQXVkaXRv
cjo6ZmluZEluUmVxdWVzdChjb25zdCBGaW5kVGFzayYgdGFzaykgY29uc3QKQEAgLTMxOCwxMSAr
MzEyLDI0IEBAIGJvb2wgWFNTQXVkaXRvcjo6ZmluZEluUmVxdWVzdChjb25zdCBGaW5kVGFzayYg
dGFzaykgY29uc3QKICAgICAgICAgcmVzdWx0ID0gZmluZEluUmVxdWVzdChtX2ZyYW1lLCB0YXNr
KTsKICAgICAgICAgYmxvY2tGcmFtZSA9IG1fZnJhbWU7CiAgICAgfQotICAgIGlmIChyZXN1bHQg
JiYgYmxvY2tGcmFtZSAmJiBzaG91bGRGdWxsUGFnZUJsb2NrRm9yWFNTUHJvdGVjdGlvbkhlYWRl
cigpKSB7Ci0gICAgICAgIGJsb2NrRnJhbWUtPmxvYWRlcigpLT5zdG9wQWxsTG9hZGVycygpOwot
ICAgICAgICBibG9ja0ZyYW1lLT5yZWRpcmVjdFNjaGVkdWxlcigpLT5zY2hlZHVsZUxvY2F0aW9u
Q2hhbmdlKGJsYW5rVVJMKCksIFN0cmluZygpKTsKKyAgICBpZiAoIXJlc3VsdCkKKyAgICAgICAg
cmV0dXJuIGZhbHNlOworCisgICAgc3dpdGNoICh4c3NQcm90ZWN0aW9uKCkpIHsKKyAgICBjYXNl
IFhTU1Byb3RlY3Rpb25EaXNhYmxlZDoKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIGNhc2Ug
WFNTUHJvdGVjdGlvbkVuYWJsZWQ6CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgWFNTUHJvdGVj
dGlvbkJsb2NrRW5hYmxlZDoKKyAgICAgICAgaWYgKGJsb2NrRnJhbWUpIHsKKyAgICAgICAgICAg
IGJsb2NrRnJhbWUtPmxvYWRlcigpLT5zdG9wQWxsTG9hZGVycygpOworICAgICAgICAgICAgYmxv
Y2tGcmFtZS0+cmVkaXJlY3RTY2hlZHVsZXIoKS0+c2NoZWR1bGVMb2NhdGlvbkNoYW5nZShibGFu
a1VSTCgpLCBTdHJpbmcoKSk7CisgICAgICAgIH0KKyAgICAgICAgYnJlYWs7CisgICAgZGVmYXVs
dDoKKyAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CiAgICAgfQotICAgIHJldHVybiByZXN1
bHQ7CisgICAgcmV0dXJuIHRydWU7CiB9CiAKIGJvb2wgWFNTQXVkaXRvcjo6ZmluZEluUmVxdWVz
dChGcmFtZSogZnJhbWUsIGNvbnN0IEZpbmRUYXNrJiB0YXNrKSBjb25zdApkaWZmIC0tZ2l0IGEv
V2ViQ29yZS9wYWdlL1hTU0F1ZGl0b3IuaCBiL1dlYkNvcmUvcGFnZS9YU1NBdWRpdG9yLmgKaW5k
ZXggYmZmNmNiZS4uYTc2MjhmMyAxMDA2NDQKLS0tIGEvV2ViQ29yZS9wYWdlL1hTU0F1ZGl0b3Iu
aAorKysgYi9XZWJDb3JlL3BhZ2UvWFNTQXVkaXRvci5oCkBAIC0yNyw2ICsyNyw3IEBACiAjaWZu
ZGVmIFhTU0F1ZGl0b3JfaAogI2RlZmluZSBYU1NBdWRpdG9yX2gKIAorI2luY2x1ZGUgIkhUVFBQ
YXJzZXJzLmgiCiAjaW5jbHVkZSAiUGxhdGZvcm1TdHJpbmcuaCIKICNpbmNsdWRlICJUZXh0RW5j
b2RpbmcuaCIKIApAQCAtMTQ0LDcgKzE0NSw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAg
ICAgYm9vbCBmaW5kSW5SZXF1ZXN0KGNvbnN0IEZpbmRUYXNrJikgY29uc3Q7CiAgICAgICAgIGJv
b2wgZmluZEluUmVxdWVzdChGcmFtZSosIGNvbnN0IEZpbmRUYXNrJikgY29uc3Q7CiAKLSAgICAg
ICAgYm9vbCBzaG91bGRGdWxsUGFnZUJsb2NrRm9yWFNTUHJvdGVjdGlvbkhlYWRlcigpIGNvbnN0
OworICAgICAgICBYU1NQcm90ZWN0aW9uRGlzcG9zaXRpb24geHNzUHJvdGVjdGlvbigpIGNvbnN0
OwogCiAgICAgICAgIC8vIFRoZSBmcmFtZSB0byBhdWRpdC4KICAgICAgICAgRnJhbWUqIG1fZnJh
bWU7CmRpZmYgLS1naXQgYS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvSFRUUFBhcnNlcnMuY3Bw
IGIvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL0hUVFBQYXJzZXJzLmNwcAppbmRleCA5MjAyNjYw
Li4yNjQ1MzhiIDEwMDY0NAotLS0gYS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvSFRUUFBhcnNl
cnMuY3BwCisrKyBiL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9IVFRQUGFyc2Vycy5jcHAKQEAg
LTU1LDYgKzU1LDIxIEBAIHN0YXRpYyBpbmxpbmUgYm9vbCBza2lwV2hpdGVTcGFjZShjb25zdCBT
dHJpbmcmIHN0ciwgaW50JiBwb3MsIGJvb2wgZnJvbUh0dHBFcXVpCiAgICAgcmV0dXJuIHBvcyAh
PSBsZW47CiB9CiAKKy8vIFJldHVybnMgdHJ1ZSBpZiB0aGUgZnVuY3Rpb24gY2FuIG1hdGNoIHRo
ZSB3aG9sZSB0b2tlbiAoY2FzZSBpbnNlbnNpdGl2ZSkuCisvLyBOb3RlOiBNaWdodCByZXR1cm4g
cG9zID09IHN0ci5sZW5ndGgoKQorc3RhdGljIGlubGluZSBib29sIHNraXBUb2tlbihjb25zdCBT
dHJpbmcmIHN0ciwgaW50JiBwb3MsIGNvbnN0IGNoYXIqIHRva2VuKQoreworICAgIGludCBsZW4g
PSBzdHIubGVuZ3RoKCk7CisKKyAgICB3aGlsZSAocG9zICE9IGxlbiAmJiAqdG9rZW4pIHsKKyAg
ICAgICAgaWYgKHRvQVNDSUlMb3dlcihzdHJbcG9zXSkgIT0gKnRva2VuKyspCisgICAgICAgICAg
ICByZXR1cm4gZmFsc2U7CisgICAgICAgICsrcG9zOworICAgIH0KKworICAgIHJldHVybiB0cnVl
OworfQorCiBib29sIHBhcnNlSFRUUFJlZnJlc2goY29uc3QgU3RyaW5nJiByZWZyZXNoLCBib29s
IGZyb21IdHRwRXF1aXZNZXRhLCBkb3VibGUmIGRlbGF5LCBTdHJpbmcmIHVybCkKIHsKICAgICBp
bnQgbGVuID0gcmVmcmVzaC5sZW5ndGgoKTsKQEAgLTIyMCw0ICsyMzUsMzIgQEAgU3RyaW5nIGV4
dHJhY3RDaGFyc2V0RnJvbU1lZGlhVHlwZShjb25zdCBTdHJpbmcmIG1lZGlhVHlwZSkKICAgICAK
ICAgICByZXR1cm4gU3RyaW5nKCk7CiB9CisKK1hTU1Byb3RlY3Rpb25EaXNwb3NpdGlvbiBwYXJz
ZVhTU1Byb3RlY3Rpb25IZWFkZXIoY29uc3QgU3RyaW5nJiBoZWFkZXIpCit7CisgICAgU3RyaW5n
IHN0aXBwZWRIZWFkZXIgPSBoZWFkZXIuc3RyaXBXaGl0ZVNwYWNlKCk7CisKKyAgICBpZiAoc3Rp
cHBlZEhlYWRlci5pc0VtcHR5KCkpCisgICAgICAgIHJldHVybiBYU1NQcm90ZWN0aW9uRW5hYmxl
ZDsKKworICAgIGlmIChzdGlwcGVkSGVhZGVyWzBdID09ICcwJykKKyAgICAgICAgcmV0dXJuIFhT
U1Byb3RlY3Rpb25EaXNhYmxlZDsKKworICAgIGludCBsZW5ndGggPSAoaW50KWhlYWRlci5sZW5n
dGgoKTsKKyAgICBpbnQgcG9zID0gMDsKKyAgICBpZiAoc3RpcHBlZEhlYWRlcltwb3MrK10gPT0g
JzEnCisgICAgICAgICYmIHNraXBXaGl0ZVNwYWNlKHN0aXBwZWRIZWFkZXIsIHBvcywgZmFsc2Up
CisgICAgICAgICYmIHN0aXBwZWRIZWFkZXJbcG9zKytdID09ICc7JworICAgICAgICAmJiBza2lw
V2hpdGVTcGFjZShzdGlwcGVkSGVhZGVyLCBwb3MsIGZhbHNlKQorICAgICAgICAmJiBza2lwVG9r
ZW4oc3RpcHBlZEhlYWRlciwgcG9zLCAibW9kZSIpCisgICAgICAgICYmIHNraXBXaGl0ZVNwYWNl
KHN0aXBwZWRIZWFkZXIsIHBvcywgZmFsc2UpCisgICAgICAgICYmIHN0aXBwZWRIZWFkZXJbcG9z
KytdID09ICc9JworICAgICAgICAmJiBza2lwV2hpdGVTcGFjZShzdGlwcGVkSGVhZGVyLCBwb3Ms
IGZhbHNlKQorICAgICAgICAmJiBza2lwVG9rZW4oc3RpcHBlZEhlYWRlciwgcG9zLCAiYmxvY2si
KQorICAgICAgICAmJiBwb3MgPT0gbGVuZ3RoKQorICAgICAgICByZXR1cm4gWFNTUHJvdGVjdGlv
bkJsb2NrRW5hYmxlZDsKKworICAgIHJldHVybiBYU1NQcm90ZWN0aW9uRW5hYmxlZDsKK30KKwog
fQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL0hUVFBQYXJzZXJzLmggYi9X
ZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvSFRUUFBhcnNlcnMuaAppbmRleCAwNjQ4YWVlLi5iMWNi
NzA5IDEwMDY0NAotLS0gYS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvSFRUUFBhcnNlcnMuaAor
KysgYi9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvSFRUUFBhcnNlcnMuaApAQCAtMzEsMTMgKzMx
LDIxIEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotICAgIGNsYXNzIFN0cmluZzsKK2NsYXNz
IFN0cmluZzsKKworZW51bSBYU1NQcm90ZWN0aW9uRGlzcG9zaXRpb24geworICAgIFhTU1Byb3Rl
Y3Rpb25EaXNhYmxlZCwKKyAgICBYU1NQcm90ZWN0aW9uRW5hYmxlZCwKKyAgICBYU1NQcm90ZWN0
aW9uQmxvY2tFbmFibGVkCit9OworCitib29sIHBhcnNlSFRUUFJlZnJlc2goY29uc3QgU3RyaW5n
JiByZWZyZXNoLCBib29sIGZyb21IdHRwRXF1aXZNZXRhLCBkb3VibGUmIGRlbGF5LCBTdHJpbmcm
IHVybCk7Citkb3VibGUgcGFyc2VEYXRlKGNvbnN0IFN0cmluZyYpOworU3RyaW5nIGZpbGVuYW1l
RnJvbUhUVFBDb250ZW50RGlzcG9zaXRpb24oY29uc3QgU3RyaW5nJik7IAorU3RyaW5nIGV4dHJh
Y3RNSU1FVHlwZUZyb21NZWRpYVR5cGUoY29uc3QgU3RyaW5nJik7CitTdHJpbmcgZXh0cmFjdENo
YXJzZXRGcm9tTWVkaWFUeXBlKGNvbnN0IFN0cmluZyYpOyAKK1hTU1Byb3RlY3Rpb25EaXNwb3Np
dGlvbiBwYXJzZVhTU1Byb3RlY3Rpb25IZWFkZXIoY29uc3QgU3RyaW5nJik7CiAKLSAgICBib29s
IHBhcnNlSFRUUFJlZnJlc2goY29uc3QgU3RyaW5nJiByZWZyZXNoLCBib29sIGZyb21IdHRwRXF1
aXZNZXRhLCBkb3VibGUmIGRlbGF5LCBTdHJpbmcmIHVybCk7Ci0gICAgZG91YmxlIHBhcnNlRGF0
ZShjb25zdCBTdHJpbmcmKTsKLSAgICBTdHJpbmcgZmlsZW5hbWVGcm9tSFRUUENvbnRlbnREaXNw
b3NpdGlvbihjb25zdCBTdHJpbmcmKTsgCi0gICAgU3RyaW5nIGV4dHJhY3RNSU1FVHlwZUZyb21N
ZWRpYVR5cGUoY29uc3QgU3RyaW5nJik7Ci0gICAgU3RyaW5nIGV4dHJhY3RDaGFyc2V0RnJvbU1l
ZGlhVHlwZShjb25zdCBTdHJpbmcmKTsgCiB9CiAKICNlbmRpZgo=
</data>

          </attachment>
      

    </bug>

</bugzilla>