<?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>65850</bug_id>
          
          <creation_ts>2011-08-08 04:37:56 -0700</creation_ts>
          <short_desc>WebSocket: Return type of send() should be void if hybi-10 protocol is chosen</short_desc>
          <delta_ts>2013-05-30 15:34:53 -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>WebCore Misc.</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>65249</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Yuta Kitamura">yutak</reporter>
          <assigned_to name="Yuta Kitamura">yutak</assigned_to>
          <cc>abarth</cc>
    
    <cc>ap</cc>
    
    <cc>commit-queue</cc>
    
    <cc>ian</cc>
    
    <cc>japhet</cc>
    
    <cc>lamarque</cc>
    
    <cc>laszlo.gombos</cc>
    
    <cc>tkent</cc>
    
    <cc>tyoshino</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>447941</commentid>
    <comment_count>0</comment_count>
    <who name="Yuta Kitamura">yutak</who>
    <bug_when>2011-08-08 04:37:56 -0700</bug_when>
    <thetext>Return type of send() was &quot;bool&quot; in the old WebSocket API draft, but it has become &quot;void&quot; in the latest draft:

http://dev.w3.org/html5/websockets/#the-websocket-interface
  interface WebSocket {
    ...
    void send(in DOMString data);
    void send(in ArrayBuffer data);
    void send(in Blob data);
    ...
  };

Because a Blob must be read asynchronously, sending a Blob is also asynchronous operation. Hence, it is not always possible to know whether the actual send operation was successful or not. This is why the return type has been changed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>447951</commentid>
    <comment_count>1</comment_count>
      <attachid>103231</attachid>
    <who name="Yuta Kitamura">yutak</who>
    <bug_when>2011-08-08 05:06:29 -0700</bug_when>
    <thetext>Created attachment 103231
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>448105</commentid>
    <comment_count>2</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2011-08-08 10:57:21 -0700</bug_when>
    <thetext>I understand the consistency reason, but changing the API just for blobs (which other browsers may never implement) seems quite unfortunate.

What is the upgrade path for client side code?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>448145</commentid>
    <comment_count>3</comment_count>
    <who name="Ian &apos;Hixie&apos; Hickson">ian</who>
    <bug_when>2011-08-08 11:55:21 -0700</bug_when>
    <thetext>It wasn&apos;t changed just for blobs. In fact it changed over a year ago.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>448160</commentid>
    <comment_count>4</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2011-08-08 12:13:02 -0700</bug_when>
    <thetext>What is the upgrade path for client side code?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>448380</commentid>
    <comment_count>5</comment_count>
    <who name="Yuta Kitamura">yutak</who>
    <bug_when>2011-08-08 17:26:08 -0700</bug_when>
    <thetext>Another option is to always return true. We may intentionally choose this option just to keep compatibility with older scripts.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>449026</commentid>
    <comment_count>6</comment_count>
    <who name="Takeshi Yoshino">tyoshino</who>
    <bug_when>2011-08-10 01:19:01 -0700</bug_when>
    <thetext>Make it always returning true to address this incompatibility may mislead people who are relying on the return value without setting up onclose and onerror to see. So that&apos;s not an option we can take, I think.

On this working draft update, Hixie changed the return type of send to void.
http://www.w3.org/TR/2011/WD-websockets-20110419/
This change was made on editor&apos;s draft on Aug 6, 2010. A year ago.
http://dev.w3.org/cvsweb/html5/websockets/Overview.html.diff?r1=1.188;r2=1.189;f=h
It seems that this Simon&apos;s post is the rationale for the change. I think this makes sense as a text for specification.
http://lists.whatwg.org/pipermail/whatwg-whatwg.org/2010-April/025942.html

Even before introduction of Blob type to WebSocket, it was not clear a certain send call successfully delivered data to the other peer. The return value can be just a convenient method to see if the connection is closed or not without setting up onclose. The situation is actually not changed. It still make sense to return true/false based on readyState.

But as Mozilla, Opera are disabling WebSocket now and Microsoft doesn&apos;t have it yet, they won&apos;t hesitate to change the API to the latest one when they reenable WebSocket, I think. Let&apos;s go the way we can make the behavior consistent among browsers.

Without the return value, they&apos;re still notified of the failure by close event. When we roll out this update, people who were checking the return value just encounter 100% failure in their applications and see that the API is changed to return undefined. All what they need to do is removing return value checking and setup onerror and onclose handler.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>449259</commentid>
    <comment_count>7</comment_count>
    <who name="Ian &apos;Hixie&apos; Hickson">ian</who>
    <bug_when>2011-08-10 11:31:01 -0700</bug_when>
    <thetext>Older scripts will break anyway because the protocol changed. So I don&apos;t think there&apos;s a huge compatibility issue here.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>449329</commentid>
    <comment_count>8</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2011-08-10 12:57:58 -0700</bug_when>
    <thetext>I don&apos;t understand how that&apos;s relevant. Protocol change breaks servers, not scripts.

You can make your server support several versions of the protocol to work with different browsers (and that&apos;s what servers do in practice). Generally, you just upgrade server code that someone else wrote.

Writing JS code that&apos;s backwards compatible will be harder - you can&apos;t test return type of send() upfront, for instance. Also, browser vendors were somehow under impression that the API was already stable, so it shipped unprefixed (and was unprefixed in Gecko and Opera before they disabled it).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>449574</commentid>
    <comment_count>9</comment_count>
    <who name="Takeshi Yoshino">tyoshino</who>
    <bug_when>2011-08-10 20:53:59 -0700</bug_when>
    <thetext>(In reply to comment #8)
&gt; Writing JS code that&apos;s backwards compatible will be harder - you can&apos;t test return type of send() upfront, for instance.

It&apos;s fine to assume the return type of send() is void. JS is notified of failure via onclose handler on both HyBi 00 and 10.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>478192</commentid>
    <comment_count>10</comment_count>
      <attachid>103231</attachid>
    <who name="Yuta Kitamura">yutak</who>
    <bug_when>2011-10-05 00:18:04 -0700</bug_when>
    <thetext>Comment on attachment 103231
Patch

r- because the patch doesn&apos;t apply any more.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>478197</commentid>
    <comment_count>11</comment_count>
    <who name="Yuta Kitamura">yutak</who>
    <bug_when>2011-10-05 00:32:18 -0700</bug_when>
    <thetext>Gecko 8 has changed the return type to void.

https://developer.mozilla.org/en/WebSockets/WebSockets_reference/WebSocket#send()
&gt; Gecko returns a boolean indicating whether or not the connection is still open; this is corrected in Gecko 8.0 (Firefox 8.0 / Thunderbird 8.0 / SeaMonkey 2.5).

I haven&apos;t tried IE10 yet, but I guess it also returns void because the implementation follows the spec which is relatively new.

Given the situation, I think we can (and should) change the return type at this time. Opinions?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>486007</commentid>
    <comment_count>12</comment_count>
    <who name="Yuta Kitamura">yutak</who>
    <bug_when>2011-10-18 06:40:01 -0700</bug_when>
    <thetext>I checked out IE 10 prerelease and confirmed that IE&apos;s send() returns void.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>486041</commentid>
    <comment_count>13</comment_count>
      <attachid>111442</attachid>
    <who name="Yuta Kitamura">yutak</who>
    <bug_when>2011-10-18 07:18:42 -0700</bug_when>
    <thetext>Created attachment 111442
Patch v2 (rebase)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>606125</commentid>
    <comment_count>14</comment_count>
      <attachid>111442</attachid>
    <who name="Ojan Vafai">ojan</who>
    <bug_when>2012-04-19 16:29:32 -0700</bug_when>
    <thetext>Comment on attachment 111442
Patch v2 (rebase)

Patch looks good. Firefox has been shipping this for many versions now and this makes us match the spec. So, seems like a good change.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>878410</commentid>
    <comment_count>15</comment_count>
      <attachid>198851</attachid>
    <who name="Lamarque V. Souza">lamarque</who>
    <bug_when>2013-04-19 06:37:12 -0700</bug_when>
    <thetext>Created attachment 198851
Patch v3 (rebase)

Rebase patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>878593</commentid>
    <comment_count>16</comment_count>
      <attachid>198851</attachid>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2013-04-19 11:41:36 -0700</bug_when>
    <thetext>Comment on attachment 198851
Patch v3 (rebase)

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

&gt; Source/WebCore/ChangeLog:6
&gt; +        Reviewed by NOBODY (OOPS!).

This patch has already been reviewed, so you didn&apos;t need to ask for review again.

&gt; Source/WebCore/ChangeLog:23
&gt; +        (WebCore::DOMWindowCSS::~DOMWindowCSS):
&gt; +        (DOMWindowCSS):

What?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>878604</commentid>
    <comment_count>17</comment_count>
      <attachid>198907</attachid>
    <who name="Lamarque V. Souza">lamarque</who>
    <bug_when>2013-04-19 12:11:40 -0700</bug_when>
    <thetext>Created attachment 198907
Patch v3 (rebase)

Fix ChangeLog.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>878606</commentid>
    <comment_count>18</comment_count>
    <who name="Lamarque V. Souza">lamarque</who>
    <bug_when>2013-04-19 12:16:09 -0700</bug_when>
    <thetext>(In reply to comment #16)
&gt; (From update of attachment 198851 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=198851&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/ChangeLog:6
&gt; &gt; +        Reviewed by NOBODY (OOPS!).
&gt; 
&gt; This patch has already been reviewed, so you didn&apos;t need to ask for review again.
&gt; 
&gt; &gt; Source/WebCore/ChangeLog:23
&gt; &gt; +        (WebCore::DOMWindowCSS::~DOMWindowCSS):
&gt; &gt; +        (DOMWindowCSS):
&gt; 
&gt; What?

Sorry, it is leftover. WebKit does not compile with css3-conditional-rules flag enabled anymore [1], I had to fix the problem in DOMWindowCSS to compile WebKit and run the unit tests before submitting this patch. I removed the changes in DOMWindowCSS but forgot to edit the ChangeLog.

[1] https://bugs.webkit.org/show_bug.cgi?id=109926</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>879822</commentid>
    <comment_count>19</comment_count>
    <who name="Lamarque V. Souza">lamarque</who>
    <bug_when>2013-04-23 06:59:31 -0700</bug_when>
    <thetext>(In reply to comment #17)
&gt; Created an attachment (id=198907) [details]
&gt; Patch v3 (rebase)
&gt; 
&gt; Fix ChangeLog.

Hi Alexey, can you cq+ the patch 198907 for me? I am not a committer so I cannot do it myself.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>879878</commentid>
    <comment_count>20</comment_count>
      <attachid>198907</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2013-04-23 08:52:06 -0700</bug_when>
    <thetext>Comment on attachment 198907
Patch v3 (rebase)

Clearing flags on attachment: 198907

Committed r148968: &lt;http://trac.webkit.org/changeset/148968&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>895696</commentid>
    <comment_count>21</comment_count>
    <who name="Lamarque V. Souza">lamarque</who>
    <bug_when>2013-05-30 15:29:24 -0700</bug_when>
    <thetext>Can someone close this bug since the patch already landed? I do not have permissions to do so.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>103231</attachid>
            <date>2011-08-08 05:06:29 -0700</date>
            <delta_ts>2011-10-18 07:18:36 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-65850-20110808210627.patch</filename>
            <type>text/plain</type>
            <size>12861</size>
            <attacher name="Yuta Kitamura">yutak</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogOTI0ODgKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5n
ZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCA1NWUxZWJmMDMzZWFjMDAxZTRjMDcw
YTIzMWIzZDYxYTU1NGJkYjNkLi5kOTFlNzk3MTA5ZjhiNGY1MWJmNjJjYmQyNjhjNGVkZmQ5M2U2
YjJjIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMTggQEAKKzIwMTEtMDgtMDggIFl1dGEgS2l0YW11cmEgIDx5
dXRha0BjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgV2ViU29ja2V0OiBSZXR1cm4gdHlwZSBvZiBz
ZW5kKCkgc2hvdWxkIGJlIHZvaWQgaWYgaHliaS0xMCBwcm90b2NvbCBpcyBjaG9zZW4KKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTY1ODUwCisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVXBkYXRlIHRlc3RzIGFu
ZCB0ZXN0IHJlc3VsdHMgYmVjYXVzZSBXZWJTb2NrZXQuc2VuZCgpIG5vdyByZXR1cm5zIHVuZGVm
aW5lZCB3aGVuCisgICAgICAgIHRoZSBoeWJpLTEwIHByb3RvY29sIGlzIGNob3Nlbi4KKworICAg
ICAgICAqIGh0dHAvdGVzdHMvd2Vic29ja2V0L3Rlc3RzL2h5YmkvYnVmZmVyZWRBbW91bnQtYWZ0
ZXItY2xvc2UtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIGh0dHAvdGVzdHMvd2Vic29ja2V0L3Rl
c3RzL2h5YmkvYnVmZmVyZWRBbW91bnQtYWZ0ZXItY2xvc2UuaHRtbDoKKyAgICAgICAgKiBodHRw
L3Rlc3RzL3dlYnNvY2tldC90ZXN0cy9oeWJpL3NlbmQtYWZ0ZXItY2xvc2Utb24tdW5sb2FkLWV4
cGVjdGVkLnR4dDoKKyAgICAgICAgKiBodHRwL3Rlc3RzL3dlYnNvY2tldC90ZXN0cy9oeWJpL3Nl
bmQtYWZ0ZXItY2xvc2Utb24tdW5sb2FkLmh0bWw6CisKIDIwMTEtMDgtMDUgIEppYW4gTGkgIDxq
aWFubGlAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFVucmV2aWV3ZWQsIHNraXAgdGhvc2UgdGVz
dHMgc3RpbGwgZmFpbGluZyBvbiBjaHJvbWl1bSBkdWUgdG8gaW5jb21wbGV0ZQpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJzb2NrZXQvdGVzdHMvaHliaS9idWZmZXJlZEFt
b3VudC1hZnRlci1jbG9zZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dl
YnNvY2tldC90ZXN0cy9oeWJpL2J1ZmZlcmVkQW1vdW50LWFmdGVyLWNsb3NlLWV4cGVjdGVkLnR4
dAppbmRleCA5MWI0ZWM3NWJhYzIzNDVjNzM5MmU5MTczOGM0MzI5MmUyZjY1YWRiLi5iZjViNTQx
MTBmNmYyZjU4NmY5OWRmMGJkMjU3ZDFhNDNiZTllNTBmIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9odHRwL3Rlc3RzL3dlYnNvY2tldC90ZXN0cy9oeWJpL2J1ZmZlcmVkQW1vdW50LWFmdGVyLWNs
b3NlLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dlYnNvY2tldC90
ZXN0cy9oeWJpL2J1ZmZlcmVkQW1vdW50LWFmdGVyLWNsb3NlLWV4cGVjdGVkLnR4dApAQCAtNiw3
ICs2LDcgQEAgQ29ubmVjdGVkLgogQ2xvc2VkLgogUEFTUyB3cy5yZWFkeVN0YXRlIGlzIDMKIFBB
U1Mgd3MuYnVmZmVyZWRBbW91bnQgaXMgMAotUEFTUyB3cy5zZW5kKCdzZW5kIHRvIGNsb3NlZCBz
b2NrZXQnKSBpcyBmYWxzZQorUEFTUyB3cy5zZW5kKCdzZW5kIHRvIGNsb3NlZCBzb2NrZXQnKSBp
cyB1bmRlZmluZWQuCiBQQVNTIHdzLmJ1ZmZlcmVkQW1vdW50IGlzIDIzCiBQQVNTIHN1Y2Nlc3Nm
dWxseVBhcnNlZCBpcyB0cnVlCiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMv
d2Vic29ja2V0L3Rlc3RzL2h5YmkvYnVmZmVyZWRBbW91bnQtYWZ0ZXItY2xvc2UuaHRtbCBiL0xh
eW91dFRlc3RzL2h0dHAvdGVzdHMvd2Vic29ja2V0L3Rlc3RzL2h5YmkvYnVmZmVyZWRBbW91bnQt
YWZ0ZXItY2xvc2UuaHRtbAppbmRleCAwZDY4MTMxYzFiODJjOGFhMzdjNjhkMjlhMzQ5ZjViNzVl
ZjQ5ZTA3Li44ZDA3YTIwYjAxNzIyZTRiZWRjYTBkMDMwOGJlYWFkMDkxZDkwNDViIDEwMDY0NAot
LS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dlYnNvY2tldC90ZXN0cy9oeWJpL2J1ZmZlcmVk
QW1vdW50LWFmdGVyLWNsb3NlLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJz
b2NrZXQvdGVzdHMvaHliaS9idWZmZXJlZEFtb3VudC1hZnRlci1jbG9zZS5odG1sCkBAIC0yNyw3
ICsyNyw3IEBAIHdzLm9uY2xvc2UgPSBmdW5jdGlvbigpCiAgICAgZGVidWcoIkNsb3NlZC4iKTsK
ICAgICBzaG91bGRCZSgid3MucmVhZHlTdGF0ZSIsICIzIik7CiAgICAgc2hvdWxkQmUoIndzLmJ1
ZmZlcmVkQW1vdW50IiwgIjAiKTsKLSAgICBzaG91bGRCZUZhbHNlKCJ3cy5zZW5kKCdzZW5kIHRv
IGNsb3NlZCBzb2NrZXQnKSIpOworICAgIHNob3VsZEJlVW5kZWZpbmVkKCJ3cy5zZW5kKCdzZW5k
IHRvIGNsb3NlZCBzb2NrZXQnKSIpOwogICAgIC8vIElmIHRoZSBjb25uZWN0aW9uIGlzIGNsb3Nl
ZCwgYnVmZmVyZWRBbW91bnQgYXR0cmlidXRlJ3MgdmFsdWUgd2lsbCBvbmx5CiAgICAgLy8gaW5j
cmVhc2Ugd2l0aCBlYWNoIGNhbGwgdG8gdGhlIHNlbmQoKSBtZXRob2QuCiAgICAgLy8gKHRoZSBu
dW1iZXIgZG9lcyBub3QgcmVzZXQgdG8gemVybyBvbmNlIHRoZSBjb25uZWN0aW9uIGNsb3Nlcyku
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dlYnNvY2tldC90ZXN0cy9oeWJp
L3NlbmQtYWZ0ZXItY2xvc2Utb24tdW5sb2FkLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0
dHAvdGVzdHMvd2Vic29ja2V0L3Rlc3RzL2h5Ymkvc2VuZC1hZnRlci1jbG9zZS1vbi11bmxvYWQt
ZXhwZWN0ZWQudHh0CmluZGV4IGNmZjQ4YjFlMjUxOTdkNWM3ZGNlMWU2Y2YzYjgwMTlkN2ZhNDVj
MzIuLjYyMzU4NjQ5Mjg4YzlmZTc2NDExNTBjMjgxYzVjNzNlZDI4YmU0YWEgMTAwNjQ0Ci0tLSBh
L0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd2Vic29ja2V0L3Rlc3RzL2h5Ymkvc2VuZC1hZnRlci1j
bG9zZS1vbi11bmxvYWQtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMv
d2Vic29ja2V0L3Rlc3RzL2h5Ymkvc2VuZC1hZnRlci1jbG9zZS1vbi11bmxvYWQtZXhwZWN0ZWQu
dHh0CkBAIC02LDcgKzYsNyBAQCBQQVNTIHdzIG9uIG1hc3RlciBkb2N1bWVudCBpcyByZWFkeS4K
IFBBU1MgaW5zZXJ0IGEgaWZyYW1lLCB3aGVyZSBvcGVuIHdzIGNhbGxlZCAnc29ja2V0MScKIFBB
U1MgZG9jdW1lbnQuY2hpbGRXZWJTb2NrZXQgaXMgbm9uLW51bGwuCiBQQVNTICdzb2NrZXQxJyBp
cyBzZW50IHRvIHRoZSBzZXJ2ZXIuIHVubG9hZCB0aGUgaWZyYW1lLiBleHBlY3QgcmVjZWl2aW5n
ICdzb2NrZXQxJyBvbiB3cy4uLgotUEFTUyBkb2N1bWVudC5jaGlsZFdlYlNvY2tldC5zZW5kKCdz
ZW5kIHRvIGNsb3NlZCBzb2NrZXQnKSBpcyBmYWxzZQorUEFTUyBkb2N1bWVudC5jaGlsZFdlYlNv
Y2tldC5zZW5kKCdzZW5kIHRvIGNsb3NlZCBzb2NrZXQnKSBpcyB1bmRlZmluZWQuCiBQQVNTIGNs
b3NlZFNvY2tldCBpcyAic29ja2V0MSIKIFBBU1MgZG9jdW1lbnQuY2hpbGRXZWJTb2NrZXQucmVh
ZHlTdGF0ZSBpcyAzCiBQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dlYnNvY2tldC90ZXN0cy9oeWJpL3NlbmQtYWZ0ZXIt
Y2xvc2Utb24tdW5sb2FkLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dlYnNvY2tldC90
ZXN0cy9oeWJpL3NlbmQtYWZ0ZXItY2xvc2Utb24tdW5sb2FkLmh0bWwKaW5kZXggMmQzYjViNWZl
ZTdiMTIxOTM4YWM2OGZkMWZlYmUzMDZjYmE5NGQ0Yy4uMjZhNTg0MTRkNjY5M2VjMWE2YjdjYzA3
YTdlZjBjYWM5NzBiODM5NyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJz
b2NrZXQvdGVzdHMvaHliaS9zZW5kLWFmdGVyLWNsb3NlLW9uLXVubG9hZC5odG1sCisrKyBiL0xh
eW91dFRlc3RzL2h0dHAvdGVzdHMvd2Vic29ja2V0L3Rlc3RzL2h5Ymkvc2VuZC1hZnRlci1jbG9z
ZS1vbi11bmxvYWQuaHRtbApAQCAtNDQsNyArNDQsNyBAQCBkb2N1bWVudC5pZnJhbWVSZWFkeSA9
IGZ1bmN0aW9uKCkKICAgICBzaG91bGRCZU5vbk51bGwoImRvY3VtZW50LmNoaWxkV2ViU29ja2V0
Iik7CiAgICAgZGVidWcoIlBBU1MgJ3NvY2tldDEnIGlzIHNlbnQgdG8gdGhlIHNlcnZlci4gdW5s
b2FkIHRoZSBpZnJhbWUuIGV4cGVjdCByZWNlaXZpbmcgJ3NvY2tldDEnIG9uIHdzLi4uIik7CiAg
ICAgZG9jdW1lbnQuYm9keS5yZW1vdmVDaGlsZChmcmFtZURpdik7Ci0gICAgc2hvdWxkQmVGYWxz
ZSgiZG9jdW1lbnQuY2hpbGRXZWJTb2NrZXQuc2VuZCgnc2VuZCB0byBjbG9zZWQgc29ja2V0Jyki
KTsKKyAgICBzaG91bGRCZVVuZGVmaW5lZCgiZG9jdW1lbnQuY2hpbGRXZWJTb2NrZXQuc2VuZCgn
c2VuZCB0byBjbG9zZWQgc29ja2V0JykiKTsKIH07CiAKIHZhciBzdWNjZXNzZnVsbHlQYXJzZWQg
PSB0cnVlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291cmNlL1dl
YkNvcmUvQ2hhbmdlTG9nCmluZGV4IDgzZTEyOTk5ZDkwNjdjNGM0MzNiZjVjNzA5NzIzMTU3ZDQx
MTQ2MmYuLjRiOGU2Y2Y5NjFlMmQ3ODVjMjc2YzQ5MDVmMmRmYTM2MjM4NzgxOTYgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VM
b2cKQEAgLTEsMyArMSwzMiBAQAorMjAxMS0wOC0wOCAgWXV0YSBLaXRhbXVyYSAgPHl1dGFrQGNo
cm9taXVtLm9yZz4KKworICAgICAgICBXZWJTb2NrZXQ6IFJldHVybiB0eXBlIG9mIHNlbmQoKSBz
aG91bGQgYmUgdm9pZCBpZiBoeWJpLTEwIHByb3RvY29sIGlzIGNob3NlbgorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjU4NTAKKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUaGUgcmVjZW50IFdlYlNvY2tldCBB
UEkgZHJhZnQgc3RhdGVzIHRoYXQgcmV0dXJuIHR5cGUgb2YgV2ViU29ja2V0LnNlbmQoKSBtdXN0
IGJlIHZvaWQsCisgICAgICAgIGJlY2F1c2Ugc2VuZGluZyBhIEJsb2IgaXMgYXN5bmNocm9ub3Vz
IG9wZXJhdGlvbiBhbmQgaXQgaXMgbm90IGFsd2F5cyBwb3NzaWJsZSB0byBrbm93CisgICAgICAg
IHdoZXRoZXIgdGhlIGFjdHVhbCBzZW5kIG9wZXJhdGlvbiB3YXMgc3VjY2Vzc2Z1bCBvciBub3Qu
CisKKyAgICAgICAgVGVzdHM6IGh0dHAvdGVzdHMvd2Vic29ja2V0L3Rlc3RzL2h5YmkvYnVmZmVy
ZWRBbW91bnQtYWZ0ZXItY2xvc2UuaHRtbCAodXBkYXRlZCkKKyAgICAgICAgICAgICAgIGh0dHAv
dGVzdHMvd2Vic29ja2V0L3Rlc3RzL2h5Ymkvc2VuZC1hZnRlci1jbG9zZS1vbi11bmxvYWQuaHRt
bCAodXBkYXRlZCkKKworICAgICAgICAqIGJpbmRpbmdzL2pzL0pTV2ViU29ja2V0Q3VzdG9tLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OkpTV2ViU29ja2V0OjpzZW5kKToKKyAgICAgICAgKiBiaW5k
aW5ncy92OC9jdXN0b20vVjhXZWJTb2NrZXRDdXN0b20uY3BwOgorICAgICAgICAoV2ViQ29yZTo6
VjhXZWJTb2NrZXQ6OnNlbmRDYWxsYmFjayk6CisgICAgICAgICogd2Vic29ja2V0cy9XZWJTb2Nr
ZXQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6V2ViU29ja2V0OjpXZWJTb2NrZXQpOgorICAgICAg
ICAoV2ViQ29yZTo6V2ViU29ja2V0Ojpjb25uZWN0KToKKyAgICAgICAgTmVlZCB0byBzYXZlIHRo
ZSB2YWx1ZSBvZiBtX2NoYW5uZWwtPnVzZUhpeGllNzZQcm90b2NvbCgpIGJlY2F1c2UgaXQgbWF5
IGJlIHJlZmVycmVkCisgICAgICAgIGFmdGVyIG1fY2hhbm5lbCBpcyByZWxlYXNlZC4KKyAgICAg
ICAgKFdlYkNvcmU6OldlYlNvY2tldDo6c2VuZCk6CisgICAgICAgICogd2Vic29ja2V0cy9XZWJT
b2NrZXQuaDoKKyAgICAgICAgKiB3ZWJzb2NrZXRzL1dlYlNvY2tldC5pZGw6CisgICAgICAgIFRo
ZXJlIGlzIG5vIGNvbnZlbmllbnQgd2F5IHRvIGV4cHJlc3MgInJldHVybmluZyB0cnVlLCBmYWxz
ZSBvciB1bmRlZmluZWQiIGluIElETCwgdGh1cworICAgICAgICBjdXN0b20gZnVuY3Rpb24gaXMg
dXNlZC4KKwogMjAxMS0wOC0wNSAgSm9jaGVuIEVpc2luZ2VyICA8am9jaGVuQGNocm9taXVtLm9y
Zz4KIAogICAgICAgICBJbnRyb2R1Y2UgYSBuZXcgUmVzb3VyY2VSZXF1ZXN0OjpUYXJnZXRUeXBl
IGZvciBYSFJzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1dlYlNv
Y2tldEN1c3RvbS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1dlYlNvY2tldEN1
c3RvbS5jcHAKaW5kZXggODE4MmNmNjFhN2MzNmE4YjhhNWY2YmQ5ZjdmNjdiOGZhMTJiYzBjOC4u
Y2IxNjhjNzVjM2RkNzdjYWU5MzA0ZDk4MTg4ZDQ1OGFlMDc2ZTc3NyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNXZWJTb2NrZXRDdXN0b20uY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTV2ViU29ja2V0Q3VzdG9tLmNwcApAQCAtNzEsNiArNzEs
MzAgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBKU1dlYlNvY2tldENvbnN0cnVjdG9y
Ojpjb25zdHJ1Y3RKU1dlYlNvY2tldChFeGVjU3QKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2Rl
KENSRUFURV9ET01fV1JBUFBFUihleGVjLCBqc0NvbnN0cnVjdG9yLT5nbG9iYWxPYmplY3QoKSwg
V2ViU29ja2V0LCB3ZWJTb2NrZXQuZ2V0KCkpKTsKIH0KIAorSlNWYWx1ZSBKU1dlYlNvY2tldDo6
c2VuZChFeGVjU3RhdGUqIGV4ZWMpCit7CisgICAgaWYgKCFleGVjLT5hcmd1bWVudENvdW50KCkp
CisgICAgICAgIHJldHVybiB0aHJvd0Vycm9yKGV4ZWMsIGNyZWF0ZVN5bnRheEVycm9yKGV4ZWMs
ICJOb3QgZW5vdWdoIGFyZ3VtZW50cyIpKTsKKworICAgIFN0cmluZyBtZXNzYWdlID0gdXN0cmlu
Z1RvU3RyaW5nKGV4ZWMtPmFyZ3VtZW50KDApLnRvU3RyaW5nKGV4ZWMpKTsKKyAgICBpZiAoZXhl
Yy0+aGFkRXhjZXB0aW9uKCkpCisgICAgICAgIHJldHVybiBqc1VuZGVmaW5lZCgpOworCisgICAg
RXhjZXB0aW9uQ29kZSBlYyA9IDA7CisgICAgV2ViU29ja2V0OjpTZW5kUmVzdWx0IHJlc3VsdCA9
IGltcGwoKS0+c2VuZChtZXNzYWdlLCBlYyk7CisgICAgc2V0RE9NRXhjZXB0aW9uKGV4ZWMsIGVj
KTsKKyAgICBzd2l0Y2ggKHJlc3VsdCkgeworICAgIGNhc2UgV2ViU29ja2V0OjpTZW5kUmVzdWx0
VW5kZWZpbmVkOgorICAgICAgICByZXR1cm4ganNVbmRlZmluZWQoKTsKKyAgICBjYXNlIFdlYlNv
Y2tldDo6U2VuZFJlc3VsdEZhbHNlOgorICAgICAgICByZXR1cm4ganNCb29sZWFuKGZhbHNlKTsK
KyAgICBjYXNlIFdlYlNvY2tldDo6U2VuZFJlc3VsdFRydWU6CisgICAgICAgIHJldHVybiBqc0Jv
b2xlYW4odHJ1ZSk7CisgICAgfQorICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgIHJldHVy
biBqc1VuZGVmaW5lZCgpOworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKICNlbmRpZgpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4V2ViU29ja2V0
Q3VzdG9tLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9WOFdlYlNvY2tl
dEN1c3RvbS5jcHAKaW5kZXggNWUxNWRhYjg5YWM0YTYwODIwYWVkNjExN2QxNTVlM2Y1MTM2OTc1
ZC4uZTJkYTAzMDQyMjY0NjdlMzM4MmYxZTU0MTc4MmM4ZmMwOWJiYzBhNyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4V2ViU29ja2V0Q3VzdG9tLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0b20vVjhXZWJTb2NrZXRDdXN0b20u
Y3BwCkBAIC05Myw2ICs5MywzNSBAQCB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gVjhXZWJTb2NrZXQ6
OmNvbnN0cnVjdG9yQ2FsbGJhY2soY29uc3Qgdjg6OkFyZ3VtZW50cyYgYXJncwogICAgIHJldHVy
biBhcmdzLkhvbGRlcigpOwogfQogCit2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gVjhXZWJTb2NrZXQ6
OnNlbmRDYWxsYmFjayhjb25zdCB2ODo6QXJndW1lbnRzJiBhcmdzKQoreworICAgIElOQ19TVEFU
UygiRE9NLldlYlNvY2tldC5zZW5kKCkiKTsKKworICAgIGlmICghYXJncy5MZW5ndGgoKSkKKyAg
ICAgICAgcmV0dXJuIHRocm93RXJyb3IoIk5vdCBlbm91Z2ggYXJndW1lbnRzIiwgVjhQcm94eTo6
U3ludGF4RXJyb3IpOworCisgICAgV2ViU29ja2V0KiB3ZWJTb2NrZXQgPSBWOFdlYlNvY2tldDo6
dG9OYXRpdmUoYXJncy5Ib2xkZXIoKSk7CisgICAgdjg6OlRyeUNhdGNoIHRyeUNhdGNoOworICAg
IHY4OjpIYW5kbGU8djg6OlN0cmluZz4gbWVzc2FnZSA9IGFyZ3NbMF0tPlRvU3RyaW5nKCk7Cisg
ICAgaWYgKHRyeUNhdGNoLkhhc0NhdWdodCgpKQorICAgICAgICByZXR1cm4gdGhyb3dFcnJvcih0
cnlDYXRjaC5FeGNlcHRpb24oKSk7CisKKyAgICBFeGNlcHRpb25Db2RlIGVjID0gMDsKKyAgICBX
ZWJTb2NrZXQ6OlNlbmRSZXN1bHQgcmVzdWx0ID0gd2ViU29ja2V0LT5zZW5kKHRvV2ViQ29yZVN0
cmluZyhtZXNzYWdlKSwgZWMpOworICAgIGlmIChlYykKKyAgICAgICAgcmV0dXJuIHRocm93RXJy
b3IoZWMpOworICAgIHN3aXRjaCAocmVzdWx0KSB7CisgICAgY2FzZSBXZWJTb2NrZXQ6OlNlbmRS
ZXN1bHRVbmRlZmluZWQ6CisgICAgICAgIHJldHVybiB2ODo6VW5kZWZpbmVkKCk7CisgICAgY2Fz
ZSBXZWJTb2NrZXQ6OlNlbmRSZXN1bHRGYWxzZToKKyAgICAgICAgcmV0dXJuIHY4OjpGYWxzZSgp
OworICAgIGNhc2UgV2ViU29ja2V0OjpTZW5kUmVzdWx0VHJ1ZToKKyAgICAgICAgcmV0dXJuIHY4
OjpUcnVlKCk7CisgICAgfQorICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgIHJldHVybiB2
ODo6VW5kZWZpbmVkKCk7Cit9CisKIH0gIC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKICNlbmRpZiAg
Ly8gRU5BQkxFKFdFQl9TT0NLRVRTKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd2Vic29j
a2V0cy9XZWJTb2NrZXQuY3BwIGIvU291cmNlL1dlYkNvcmUvd2Vic29ja2V0cy9XZWJTb2NrZXQu
Y3BwCmluZGV4IGE3YTExZTM0ZTcwNTc2NmZiNDI0ODA4NGIwYzBiZTBjY2MxYWY2ZmYuLmVmMjkz
ZDliOTMyOWM4NTIzYzczODkzODcwZTkxYzcwODc0ZmQyYTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3dlYnNvY2tldHMvV2ViU29ja2V0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS93ZWJz
b2NrZXRzL1dlYlNvY2tldC5jcHAKQEAgLTk5LDYgKzk5LDcgQEAgV2ViU29ja2V0OjpXZWJTb2Nr
ZXQoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29udGV4dCkKICAgICA6IEFjdGl2ZURPTU9iamVj
dChjb250ZXh0LCB0aGlzKQogICAgICwgbV9zdGF0ZShDT05ORUNUSU5HKQogICAgICwgbV9idWZm
ZXJlZEFtb3VudEFmdGVyQ2xvc2UoMCkKKyAgICAsIG1fdXNlSGl4aWU3NlByb3RvY29sKHRydWUp
CiB7CiB9CiAKQEAgLTE1MiwyNyArMTUzLDMxIEBAIHZvaWQgV2ViU29ja2V0Ojpjb25uZWN0KGNv
bnN0IFN0cmluZyYgdXJsLCBjb25zdCBTdHJpbmcmIHByb3RvY29sLCBFeGNlcHRpb25Db2RlCiAg
ICAgfQogCiAgICAgbV9jaGFubmVsID0gVGhyZWFkYWJsZVdlYlNvY2tldENoYW5uZWw6OmNyZWF0
ZShzY3JpcHRFeGVjdXRpb25Db250ZXh0KCksIHRoaXMpOwotICAgIC8vIEZJWE1FOiBHZXQgdGhl
IHZhbHVlIG9mIG1fY2hhbm5lbC0+dXNlSGl4aWU3NlByb3RvY29sKCkgYW5kIHZhbGlkYXRlIHRo
ZSB2YWx1ZSBvZiBzdWJwcm90b2NvbAotICAgIC8vIGlmIGh5YmktMTAgcHJvdG9jb2wgaXMgdXNl
ZC4KKyAgICBtX3VzZUhpeGllNzZQcm90b2NvbCA9IG1fY2hhbm5lbC0+dXNlSGl4aWU3NlByb3Rv
Y29sKCk7CisgICAgLy8gRklYTUU6IENoZWNrIHRoZSB2YWx1ZSBvZiBtX3VzZUhpeGllNzZQcm90
b2NvbCwgYW5kIHZhbGlkYXRlIHRoZSB2YWx1ZSBvZiBzdWJwcm90b2NvbCBoZXJlLgogICAgIG1f
Y2hhbm5lbC0+Y29ubmVjdChtX3VybCwgbV9wcm90b2NvbCk7CiAgICAgQWN0aXZlRE9NT2JqZWN0
OjpzZXRQZW5kaW5nQWN0aXZpdHkodGhpcyk7CiB9CiAKLWJvb2wgV2ViU29ja2V0OjpzZW5kKGNv
bnN0IFN0cmluZyYgbWVzc2FnZSwgRXhjZXB0aW9uQ29kZSYgZWMpCitXZWJTb2NrZXQ6OlNlbmRS
ZXN1bHQgV2ViU29ja2V0OjpzZW5kKGNvbnN0IFN0cmluZyYgbWVzc2FnZSwgRXhjZXB0aW9uQ29k
ZSYgZWMpCiB7CiAgICAgTE9HKE5ldHdvcmssICJXZWJTb2NrZXQgJXAgc2VuZCAlcyIsIHRoaXMs
IG1lc3NhZ2UudXRmOCgpLmRhdGEoKSk7CisgICAgU2VuZFJlc3VsdCBmYWlsdXJlID0gbV91c2VI
aXhpZTc2UHJvdG9jb2wgPyBTZW5kUmVzdWx0RmFsc2UgOiBTZW5kUmVzdWx0VW5kZWZpbmVkOwog
ICAgIGlmIChtX3N0YXRlID09IENPTk5FQ1RJTkcpIHsKICAgICAgICAgZWMgPSBJTlZBTElEX1NU
QVRFX0VSUjsKLSAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICByZXR1cm4gZmFpbHVyZTsK
ICAgICB9CiAgICAgLy8gTm8gZXhjZXB0aW9uIGlzIHJhaXNlZCBpZiB0aGUgY29ubmVjdGlvbiB3
YXMgb25jZSBlc3RhYmxpc2hlZCBidXQgaGFzIHN1YnNlcXVlbnRseSBiZWVuIGNsb3NlZC4KICAg
ICBpZiAobV9zdGF0ZSA9PSBDTE9TSU5HIHx8IG1fc3RhdGUgPT0gQ0xPU0VEKSB7CiAgICAgICAg
IG1fYnVmZmVyZWRBbW91bnRBZnRlckNsb3NlICs9IG1lc3NhZ2UudXRmOCgpLmxlbmd0aCgpICsg
MjsgLy8gMiBmb3IgZnJhbWVpbmcKLSAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICByZXR1
cm4gZmFpbHVyZTsKICAgICB9CiAgICAgLy8gRklYTUU6IGNoZWNrIG1lc3NhZ2UgaXMgdmFsaWQg
dXRmOC4KICAgICBBU1NFUlQobV9jaGFubmVsKTsKLSAgICByZXR1cm4gbV9jaGFubmVsLT5zZW5k
KG1lc3NhZ2UpOworICAgIGJvb2wgc2VudFN1Y2Nlc3NmdWxseSA9IG1fY2hhbm5lbC0+c2VuZCht
ZXNzYWdlKTsKKyAgICBpZiAobV91c2VIaXhpZTc2UHJvdG9jb2wpCisgICAgICAgIHJldHVybiBz
ZW50U3VjY2Vzc2Z1bGx5ID8gU2VuZFJlc3VsdFRydWUgOiBTZW5kUmVzdWx0RmFsc2U7CisgICAg
cmV0dXJuIFNlbmRSZXN1bHRVbmRlZmluZWQ7CiB9CiAKIHZvaWQgV2ViU29ja2V0OjpjbG9zZSgp
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93ZWJzb2NrZXRzL1dlYlNvY2tldC5oIGIvU291
cmNlL1dlYkNvcmUvd2Vic29ja2V0cy9XZWJTb2NrZXQuaAppbmRleCAxOTFiYzNmODg5NmQ3MDk1
NTFhY2QxOWQyNmI3MzQ0MDViMjk0YjFjLi5mMjZhYzAwMDczNjllNTlhNzFhZmQ5MDk3YmJmY2Y1
NjlmOGVhYTUwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93ZWJzb2NrZXRzL1dlYlNvY2tl
dC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dlYnNvY2tldHMvV2ViU29ja2V0LmgKQEAgLTY1LDcg
KzY1LDEyIEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgdm9pZCBjb25uZWN0KGNvbnN0
IFN0cmluZyYgdXJsLCBFeGNlcHRpb25Db2RlJik7CiAgICAgICAgIHZvaWQgY29ubmVjdChjb25z
dCBTdHJpbmcmIHVybCwgY29uc3QgU3RyaW5nJiBwcm90b2NvbCwgRXhjZXB0aW9uQ29kZSYpOwog
Ci0gICAgICAgIGJvb2wgc2VuZChjb25zdCBTdHJpbmcmIG1lc3NhZ2UsIEV4Y2VwdGlvbkNvZGUm
KTsKKyAgICAgICAgZW51bSBTZW5kUmVzdWx0IHsKKyAgICAgICAgICAgIFNlbmRSZXN1bHRVbmRl
ZmluZWQsIC8vIEZvciBoeWJpLTEwLgorICAgICAgICAgICAgU2VuZFJlc3VsdEZhbHNlLCAvLyBG
b3IgaGl4aWUtNzYuCisgICAgICAgICAgICBTZW5kUmVzdWx0VHJ1ZSAvLyBGb3IgaGl4aWUtNzYu
CisgICAgICAgIH07CisgICAgICAgIFNlbmRSZXN1bHQgc2VuZChjb25zdCBTdHJpbmcmIG1lc3Nh
Z2UsIEV4Y2VwdGlvbkNvZGUmKTsKIAogICAgICAgICB2b2lkIGNsb3NlKCk7CiAKQEAgLTExMyw2
ICsxMTgsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgIFN0cmluZyBtX3Byb3RvY29s
OwogICAgICAgICBFdmVudFRhcmdldERhdGEgbV9ldmVudFRhcmdldERhdGE7CiAgICAgICAgIHVu
c2lnbmVkIGxvbmcgbV9idWZmZXJlZEFtb3VudEFmdGVyQ2xvc2U7CisgICAgICAgIGJvb2wgbV91
c2VIaXhpZTc2UHJvdG9jb2w7CiAgICAgfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd2Vic29ja2V0cy9XZWJTb2NrZXQuaWRsIGIvU291cmNl
L1dlYkNvcmUvd2Vic29ja2V0cy9XZWJTb2NrZXQuaWRsCmluZGV4IDQ0MjhjYzFiMzhjYWQ1N2I0
ZmQ0MzJkZDgwNzg3YjgzMWZlMmUxYjYuLjgzNjI2OWQxMDQwOTIwOTAwNTI0ZmVhY2E2ZjEzZjQ3
M2JmZTJiODMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3dlYnNvY2tldHMvV2ViU29ja2V0
LmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS93ZWJzb2NrZXRzL1dlYlNvY2tldC5pZGwKQEAgLTU4
LDcgKzU4LDkgQEAgbW9kdWxlIHdlYnNvY2tldHMgewogICAgICAgICBhdHRyaWJ1dGUgRXZlbnRM
aXN0ZW5lciBvbmVycm9yOwogICAgICAgICBhdHRyaWJ1dGUgRXZlbnRMaXN0ZW5lciBvbmNsb3Nl
OwogCi0gICAgICAgIFtSZXF1aXJlc0FsbEFyZ3VtZW50c10gYm9vbGVhbiBzZW5kKGluIERPTVN0
cmluZyBkYXRhKSByYWlzZXMoRE9NRXhjZXB0aW9uKTsKKyAgICAgICAgLy8gRm9yIGhpeGllLTc2
LCBzZW5kKCkgcmV0dXJucyB0cnVlIG9yIGZhbHNlLiBGb3IgaHliaS0xMCwgaXQgcmV0dXJucyB1
bmRlZmluZWQgKHZvaWQpLgorICAgICAgICBbQ3VzdG9tXSBib29sZWFuIHNlbmQoaW4gRE9NU3Ry
aW5nIGRhdGEpIHJhaXNlcyhET01FeGNlcHRpb24pOworCiAgICAgICAgIHZvaWQgY2xvc2UoKTsK
IAogICAgICAgICAvLyBFdmVudFRhcmdldCBpbnRlcmZhY2UK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>111442</attachid>
            <date>2011-10-18 07:18:42 -0700</date>
            <delta_ts>2012-04-19 16:29:31 -0700</delta_ts>
            <desc>Patch v2 (rebase)</desc>
            <filename>bug-65850-20111018231840.patch</filename>
            <type>text/plain</type>
            <size>16091</size>
            <attacher name="Yuta Kitamura">yutak</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogOTc3NDgKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCA4ZjVkN2UxOTNmZTJiOTEw
M2JkZmNjZThjMmI3YzRlMzdmZmI2NGQ5Li5mMDBmNjIwZDc1ZjFiYmY5OTg3MGZmNWI1ZGMzNWJk
NTA1YThlOWFhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzIgQEAKKzIwMTEtMTAtMTggIFl1dGEg
S2l0YW11cmEgIDx5dXRha0BjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgV2ViU29ja2V0OiBSZXR1
cm4gdHlwZSBvZiBzZW5kKCkgc2hvdWxkIGJlIHZvaWQgaWYgaHliaS0xMCBwcm90b2NvbCBpcyBj
aG9zZW4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTY1
ODUwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgV2Vi
U29ja2V0IEFQSSBkcmFmdCBjaGFuZ2VkIHRoZSByZXR1cm4gdHlwZSBvZiBzZW5kKCkgZnJvbSBi
b29sZWFuIHRvIHZvaWQgYmFzZWQgb24gU2ltb24KKyAgICAgICAgUGlldGVycycgcG9zdCB0byBX
SEFUV0cuIEZpcmVmb3ggOCBhbmQgSUUgMTAgYWxyZWFkeSBmb2xsb3cgdGhlIHNwZWNpZmljYXRp
b24sIGhlbmNlIGl0IHNob3VsZAorICAgICAgICBtYWtlIHNlbnNlIGZvciB1cyB0byBkbyB0aGUg
c2FtZSB3aGVuIGh5YmkgcHJvdG9jb2wgaXMgdXNlZC4KKworICAgICAgICBUaGVyZSBpcyBubyBi
ZWhhdmlvciBjaGFuZ2Ugd2hlbiBoaXhpZS03NiBwcm90b2NvbCBpcyB1c2VkLgorCisgICAgICAg
IFRlc3RzOiBodHRwL3Rlc3RzL3dlYnNvY2tldC90ZXN0cy9oeWJpL2J1ZmZlcmVkQW1vdW50LWFm
dGVyLWNsb3NlLmh0bWwgKHVwZGF0ZWQpCisgICAgICAgICAgICAgICBodHRwL3Rlc3RzL3dlYnNv
Y2tldC90ZXN0cy9oeWJpL3NlbmQtYWZ0ZXItY2xvc2Utb24tdW5sb2FkLmh0bWwgKHVwZGF0ZWQp
CisKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU1dlYlNvY2tldEN1c3RvbS5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpKU1dlYlNvY2tldDo6c2VuZCk6CisgICAgICAgICogYmluZGluZ3MvdjgvY3Vz
dG9tL1Y4V2ViU29ja2V0Q3VzdG9tLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlY4V2ViU29ja2V0
OjpzZW5kQ2FsbGJhY2spOgorICAgICAgICAqIHdlYnNvY2tldHMvV2ViU29ja2V0LmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OldlYlNvY2tldDo6c2VuZCk6CisgICAgICAgIChXZWJDb3JlOjpXZWJT
b2NrZXQ6OnRvU2VuZFJlc3VsdCk6CisgICAgICAgIENvbnZlcnQgdGhlIHJldHVybiB2YWx1ZSBv
ZiBXZWJTb2NrZXRDaGFubmVsOjpzZW5kKCkgdG8gU2VuZFJldHVyblR5cGUgdmFsdWUsIGJhc2Vk
IG9uCisgICAgICAgIHRoZSBXZWJTb2NrZXQgcHJvdG9jb2wgdXNlZC4KKyAgICAgICAgKiB3ZWJz
b2NrZXRzL1dlYlNvY2tldC5oOgorICAgICAgICBEZWZpbmUgYW4gZW51bSB3aG9zZSB2YWx1ZSBy
ZXByZXNlbnRzIG9uZSBvZiB1bmRlZmluZWQsIHRydWUgb3IgZmFsc2UuIEFmdGVyIGFsbCB0aGUg
cG9ydHMgaGF2ZQorICAgICAgICB0cmFuc2l0aW9uZWQgdG8gdGhlIG5ldyBwcm90b2NvbCwgd2Ug
d2lsbCBiZSBhYmxlIHRvIHJlbW92ZSB0aGlzIHR5cGUgYW5kIGp1c3QgcmV0dXJuIHZvaWQuCisK
IDIwMTEtMTAtMTggIFphbiBEb2JlcnNlayAgPHphbmRvYmVyc2VrQGdtYWlsLmNvbT4KIAogICAg
ICAgICBbR3RrXSBTdXBwb3J0IGZvciBjbGllbnQtYmFzZWQgZ2VvbG9jYXRpb24KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTV2ViU29ja2V0Q3VzdG9tLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTV2ViU29ja2V0Q3VzdG9tLmNwcAppbmRleCA0OWE4
MjhjYzg4NTVhZDVkMzM5ZTRhMzdjMDg2NTUwOWYxNDkzMzc2Li41YmFjN2RmOTY2ZTcxZGM5ZjI0
Mzk0N2E1MDM0Y2FhYmQwNzU0YmE2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9qcy9KU1dlYlNvY2tldEN1c3RvbS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
anMvSlNXZWJTb2NrZXRDdXN0b20uY3BwCkBAIC05Nyw3ICs5Nyw3IEBAIEpTVmFsdWUgSlNXZWJT
b2NrZXQ6OnNlbmQoRXhlY1N0YXRlKiBleGVjKQogCiAgICAgSlNWYWx1ZSBtZXNzYWdlID0gZXhl
Yy0+YXJndW1lbnQoMCk7CiAgICAgRXhjZXB0aW9uQ29kZSBlYyA9IDA7Ci0gICAgYm9vbCByZXN1
bHQ7CisgICAgV2ViU29ja2V0OjpTZW5kUmVzdWx0VHlwZSByZXN1bHQ7CiAgICAgaWYgKG1lc3Nh
Z2UuaW5oZXJpdHMoJkpTQXJyYXlCdWZmZXI6OnNfaW5mbykpCiAgICAgICAgIHJlc3VsdCA9IGlt
cGwoKS0+c2VuZCh0b0FycmF5QnVmZmVyKG1lc3NhZ2UpLCBlYyk7CiAgICAgZWxzZSBpZiAobWVz
c2FnZS5pbmhlcml0cygmSlNCbG9iOjpzX2luZm8pKQpAQCAtMTEzLDcgKzExMywxNiBAQCBKU1Zh
bHVlIEpTV2ViU29ja2V0OjpzZW5kKEV4ZWNTdGF0ZSogZXhlYykKICAgICAgICAgcmV0dXJuIGpz
VW5kZWZpbmVkKCk7CiAgICAgfQogCi0gICAgcmV0dXJuIGpzQm9vbGVhbihyZXN1bHQpOworICAg
IHN3aXRjaCAocmVzdWx0KSB7CisgICAgY2FzZSBXZWJTb2NrZXQ6OlNlbmRSZXN1bHRVbmRlZmlu
ZWQ6CisgICAgICAgIHJldHVybiBqc1VuZGVmaW5lZCgpOworICAgIGNhc2UgV2ViU29ja2V0OjpT
ZW5kUmVzdWx0RmFsc2U6CisgICAgICAgIHJldHVybiBqc0Jvb2xlYW4oZmFsc2UpOworICAgIGNh
c2UgV2ViU29ja2V0OjpTZW5kUmVzdWx0VHJ1ZToKKyAgICAgICAgcmV0dXJuIGpzQm9vbGVhbih0
cnVlKTsKKyAgICB9CisgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgcmV0dXJuIGpzVW5k
ZWZpbmVkKCk7CiB9CiAKIEpTVmFsdWUgSlNXZWJTb2NrZXQ6OmNsb3NlKEV4ZWNTdGF0ZSogZXhl
YykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9WOFdlYlNv
Y2tldEN1c3RvbS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0b20vVjhXZWJT
b2NrZXRDdXN0b20uY3BwCmluZGV4IDcxOGFhZGU3MmM0MDk3YjJiOTI0Yzk4NjNlOTQ2YzNkODYy
N2RlMTguLjk4N2UzYWVhYWQ3ZDYyZWQyNGRiZjUzYzliMjhkNzljNGQxNWY2ZmEgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9WOFdlYlNvY2tldEN1c3RvbS5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4V2ViU29ja2V0Q3Vz
dG9tLmNwcApAQCAtMTIzLDcgKzEyMyw3IEBAIHY4OjpIYW5kbGU8djg6OlZhbHVlPiBWOFdlYlNv
Y2tldDo6c2VuZENhbGxiYWNrKGNvbnN0IHY4OjpBcmd1bWVudHMmIGFyZ3MpCiAgICAgV2ViU29j
a2V0KiB3ZWJTb2NrZXQgPSBWOFdlYlNvY2tldDo6dG9OYXRpdmUoYXJncy5Ib2xkZXIoKSk7CiAg
ICAgdjg6OkhhbmRsZTx2ODo6VmFsdWU+IG1lc3NhZ2UgPSBhcmdzWzBdOwogICAgIEV4Y2VwdGlv
bkNvZGUgZWMgPSAwOwotICAgIGJvb2wgcmVzdWx0OworICAgIFdlYlNvY2tldDo6U2VuZFJlc3Vs
dFR5cGUgcmVzdWx0OwogICAgIGlmIChWOEFycmF5QnVmZmVyOjpIYXNJbnN0YW5jZShtZXNzYWdl
KSkgewogICAgICAgICBBcnJheUJ1ZmZlciogYXJyYXlCdWZmZXIgPSBWOEFycmF5QnVmZmVyOjp0
b05hdGl2ZSh2ODo6SGFuZGxlPHY4OjpPYmplY3Q+OjpDYXN0KG1lc3NhZ2UpKTsKICAgICAgICAg
QVNTRVJUKGFycmF5QnVmZmVyKTsKQEAgLTE0Miw3ICsxNDIsMTYgQEAgdjg6OkhhbmRsZTx2ODo6
VmFsdWU+IFY4V2ViU29ja2V0OjpzZW5kQ2FsbGJhY2soY29uc3Qgdjg6OkFyZ3VtZW50cyYgYXJn
cykKICAgICBpZiAoZWMpCiAgICAgICAgIHJldHVybiB0aHJvd0Vycm9yKGVjKTsKIAotICAgIHJl
dHVybiB2OEJvb2xlYW4ocmVzdWx0KTsKKyAgICBzd2l0Y2ggKHJlc3VsdCkgeworICAgIGNhc2Ug
V2ViU29ja2V0OjpTZW5kUmVzdWx0VW5kZWZpbmVkOgorICAgICAgICByZXR1cm4gdjg6OlVuZGVm
aW5lZCgpOworICAgIGNhc2UgV2ViU29ja2V0OjpTZW5kUmVzdWx0RmFsc2U6CisgICAgICAgIHJl
dHVybiB2ODo6RmFsc2UoKTsKKyAgICBjYXNlIFdlYlNvY2tldDo6U2VuZFJlc3VsdFRydWU6Cisg
ICAgICAgIHJldHVybiB2ODo6VHJ1ZSgpOworICAgIH0KKyAgICBBU1NFUlRfTk9UX1JFQUNIRUQo
KTsKKyAgICByZXR1cm4gdjg6OlVuZGVmaW5lZCgpOwogfQogCiB2ODo6SGFuZGxlPHY4OjpWYWx1
ZT4gVjhXZWJTb2NrZXQ6OmNsb3NlQ2FsbGJhY2soY29uc3Qgdjg6OkFyZ3VtZW50cyYgYXJncykK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dlYnNvY2tldHMvV2ViU29ja2V0LmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3dlYnNvY2tldHMvV2ViU29ja2V0LmNwcAppbmRleCA5ZTBmNzM1ZTRkNDYx
ZTE4MjY4NDkxZGNkOGI3MTkxNDU2YTM3MDcyLi44NzlkYTMyNmY1YzE5MzY2ZmExNzU0MzQzNzdh
MWU3ZWM1ZWE5ZjkwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93ZWJzb2NrZXRzL1dlYlNv
Y2tldC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvd2Vic29ja2V0cy9XZWJTb2NrZXQuY3BwCkBA
IC0yNTYsMjUgKzI1NiwyNSBAQCB2b2lkIFdlYlNvY2tldDo6Y29ubmVjdChjb25zdCBTdHJpbmcm
IHVybCwgY29uc3QgVmVjdG9yPFN0cmluZz4mIHByb3RvY29scywgRXhjZQogICAgIEFjdGl2ZURP
TU9iamVjdDo6c2V0UGVuZGluZ0FjdGl2aXR5KHRoaXMpOwogfQogCi1ib29sIFdlYlNvY2tldDo6
c2VuZChjb25zdCBTdHJpbmcmIG1lc3NhZ2UsIEV4Y2VwdGlvbkNvZGUmIGVjKQorV2ViU29ja2V0
OjpTZW5kUmVzdWx0VHlwZSBXZWJTb2NrZXQ6OnNlbmQoY29uc3QgU3RyaW5nJiBtZXNzYWdlLCBF
eGNlcHRpb25Db2RlJiBlYykKIHsKICAgICBMT0coTmV0d29yaywgIldlYlNvY2tldCAlcCBzZW5k
ICVzIiwgdGhpcywgbWVzc2FnZS51dGY4KCkuZGF0YSgpKTsKICAgICBpZiAobV9zdGF0ZSA9PSBD
T05ORUNUSU5HKSB7CiAgICAgICAgIGVjID0gSU5WQUxJRF9TVEFURV9FUlI7Ci0gICAgICAgIHJl
dHVybiBmYWxzZTsKKyAgICAgICAgcmV0dXJuIHRvU2VuZFJlc3VsdChmYWxzZSk7CiAgICAgfQog
ICAgIC8vIE5vIGV4Y2VwdGlvbiBpcyByYWlzZWQgaWYgdGhlIGNvbm5lY3Rpb24gd2FzIG9uY2Ug
ZXN0YWJsaXNoZWQgYnV0IGhhcyBzdWJzZXF1ZW50bHkgYmVlbiBjbG9zZWQuCiAgICAgaWYgKG1f
c3RhdGUgPT0gQ0xPU0lORyB8fCBtX3N0YXRlID09IENMT1NFRCkgewogICAgICAgICBzaXplX3Qg
cGF5bG9hZFNpemUgPSBtZXNzYWdlLnV0ZjgoKS5sZW5ndGgoKTsKICAgICAgICAgbV9idWZmZXJl
ZEFtb3VudEFmdGVyQ2xvc2UgKz0gcGF5bG9hZFNpemUgKyBnZXRGcmFtaW5nT3ZlcmhlYWQocGF5
bG9hZFNpemUpOwotICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIHJldHVybiB0b1NlbmRS
ZXN1bHQoZmFsc2UpOwogICAgIH0KICAgICAvLyBGSVhNRTogY2hlY2sgbWVzc2FnZSBpcyB2YWxp
ZCB1dGY4LgogICAgIEFTU0VSVChtX2NoYW5uZWwpOwotICAgIHJldHVybiBtX2NoYW5uZWwtPnNl
bmQobWVzc2FnZSk7CisgICAgcmV0dXJuIHRvU2VuZFJlc3VsdChtX2NoYW5uZWwtPnNlbmQobWVz
c2FnZSkpOwogfQogCi1ib29sIFdlYlNvY2tldDo6c2VuZChBcnJheUJ1ZmZlciogYmluYXJ5RGF0
YSwgRXhjZXB0aW9uQ29kZSYgZWMpCitXZWJTb2NrZXQ6OlNlbmRSZXN1bHRUeXBlIFdlYlNvY2tl
dDo6c2VuZChBcnJheUJ1ZmZlciogYmluYXJ5RGF0YSwgRXhjZXB0aW9uQ29kZSYgZWMpCiB7CiAg
ICAgTE9HKE5ldHdvcmssICJXZWJTb2NrZXQgJXAgc2VuZCBhcnJheWJ1ZmZlciAlcCIsIHRoaXMs
IGJpbmFyeURhdGEpOwogICAgIEFTU0VSVChiaW5hcnlEYXRhKTsKQEAgLTI4MiwxNyArMjgyLDE3
IEBAIGJvb2wgV2ViU29ja2V0OjpzZW5kKEFycmF5QnVmZmVyKiBiaW5hcnlEYXRhLCBFeGNlcHRp
b25Db2RlJiBlYykKICAgICAgICAgcmV0dXJuIHNlbmQoIltvYmplY3QgQXJyYXlCdWZmZXJdIiwg
ZWMpOwogICAgIGlmIChtX3N0YXRlID09IENPTk5FQ1RJTkcpIHsKICAgICAgICAgZWMgPSBJTlZB
TElEX1NUQVRFX0VSUjsKLSAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICByZXR1cm4gdG9T
ZW5kUmVzdWx0KGZhbHNlKTsKICAgICB9CiAgICAgaWYgKG1fc3RhdGUgPT0gQ0xPU0lORyB8fCBt
X3N0YXRlID09IENMT1NFRCkgewogICAgICAgICBtX2J1ZmZlcmVkQW1vdW50QWZ0ZXJDbG9zZSAr
PSBiaW5hcnlEYXRhLT5ieXRlTGVuZ3RoKCkgKyBnZXRGcmFtaW5nT3ZlcmhlYWQoYmluYXJ5RGF0
YS0+Ynl0ZUxlbmd0aCgpKTsKLSAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICByZXR1cm4g
dG9TZW5kUmVzdWx0KGZhbHNlKTsKICAgICB9CiAgICAgQVNTRVJUKG1fY2hhbm5lbCk7Ci0gICAg
cmV0dXJuIG1fY2hhbm5lbC0+c2VuZCgqYmluYXJ5RGF0YSk7CisgICAgcmV0dXJuIHRvU2VuZFJl
c3VsdChtX2NoYW5uZWwtPnNlbmQoKmJpbmFyeURhdGEpKTsKIH0KIAotYm9vbCBXZWJTb2NrZXQ6
OnNlbmQoQmxvYiogYmluYXJ5RGF0YSwgRXhjZXB0aW9uQ29kZSYgZWMpCitXZWJTb2NrZXQ6OlNl
bmRSZXN1bHRUeXBlIFdlYlNvY2tldDo6c2VuZChCbG9iKiBiaW5hcnlEYXRhLCBFeGNlcHRpb25D
b2RlJiBlYykKIHsKICAgICBMT0coTmV0d29yaywgIldlYlNvY2tldCAlcCBzZW5kIGJsb2IgJXMi
LCB0aGlzLCBiaW5hcnlEYXRhLT51cmwoKS5zdHJpbmcoKS51dGY4KCkuZGF0YSgpKTsKICAgICBB
U1NFUlQoYmluYXJ5RGF0YSk7CkBAIC0zMDAsMTUgKzMwMCwxNSBAQCBib29sIFdlYlNvY2tldDo6
c2VuZChCbG9iKiBiaW5hcnlEYXRhLCBFeGNlcHRpb25Db2RlJiBlYykKICAgICAgICAgcmV0dXJu
IHNlbmQoIltvYmplY3QgQmxvYl0iLCBlYyk7CiAgICAgaWYgKG1fc3RhdGUgPT0gQ09OTkVDVElO
RykgewogICAgICAgICBlYyA9IElOVkFMSURfU1RBVEVfRVJSOwotICAgICAgICByZXR1cm4gZmFs
c2U7CisgICAgICAgIHJldHVybiB0b1NlbmRSZXN1bHQoZmFsc2UpOwogICAgIH0KICAgICBpZiAo
bV9zdGF0ZSA9PSBDTE9TSU5HIHx8IG1fc3RhdGUgPT0gQ0xPU0VEKSB7CiAgICAgICAgIHVuc2ln
bmVkIGxvbmcgcGF5bG9hZFNpemUgPSBzdGF0aWNfY2FzdDx1bnNpZ25lZCBsb25nPihiaW5hcnlE
YXRhLT5zaXplKCkpOwogICAgICAgICBtX2J1ZmZlcmVkQW1vdW50QWZ0ZXJDbG9zZSArPSBwYXls
b2FkU2l6ZSArIGdldEZyYW1pbmdPdmVyaGVhZChwYXlsb2FkU2l6ZSk7Ci0gICAgICAgIHJldHVy
biBmYWxzZTsKKyAgICAgICAgcmV0dXJuIHRvU2VuZFJlc3VsdChmYWxzZSk7CiAgICAgfQogICAg
IEFTU0VSVChtX2NoYW5uZWwpOwotICAgIHJldHVybiBtX2NoYW5uZWwtPnNlbmQoKmJpbmFyeURh
dGEpOworICAgIHJldHVybiB0b1NlbmRSZXN1bHQobV9jaGFubmVsLT5zZW5kKCpiaW5hcnlEYXRh
KSk7CiB9CiAKIHZvaWQgV2ViU29ja2V0OjpjbG9zZShpbnQgY29kZSwgY29uc3QgU3RyaW5nJiBy
ZWFzb24sIEV4Y2VwdGlvbkNvZGUmIGVjKQpAQCAtNTU0LDYgKzU1NCwxMyBAQCBzaXplX3QgV2Vi
U29ja2V0OjpnZXRGcmFtaW5nT3ZlcmhlYWQoc2l6ZV90IHBheWxvYWRTaXplKQogICAgIHJldHVy
biBvdmVyaGVhZDsKIH0KIAorV2ViU29ja2V0OjpTZW5kUmVzdWx0VHlwZSBXZWJTb2NrZXQ6OnRv
U2VuZFJlc3VsdChib29sIHN1Y2Nlc3NmdWxseVNlbnQpIGNvbnN0Cit7CisgICAgaWYgKG1fdXNl
SGl4aWU3NlByb3RvY29sKQorICAgICAgICByZXR1cm4gc3VjY2Vzc2Z1bGx5U2VudCA/IFNlbmRS
ZXN1bHRUcnVlIDogU2VuZFJlc3VsdEZhbHNlOworICAgIHJldHVybiBTZW5kUmVzdWx0VW5kZWZp
bmVkOworfQorCiB9ICAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCiAjZW5kaWYKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3dlYnNvY2tldHMvV2ViU29ja2V0LmggYi9Tb3VyY2UvV2ViQ29yZS93
ZWJzb2NrZXRzL1dlYlNvY2tldC5oCmluZGV4IDE5MzI1NzFmYWFkZDJiYmJkMjhiMDljYTRmZDJl
OWM5YmIwYjU0NzIuLmY5ODY0M2Q4ZGVhY2Y5Yzk2YTc5Mjk0YmY1ZjIxZjBkNmE2NDE0NzQgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3dlYnNvY2tldHMvV2ViU29ja2V0LmgKKysrIGIvU291
cmNlL1dlYkNvcmUvd2Vic29ja2V0cy9XZWJTb2NrZXQuaApAQCAtNjgsOSArNjgsMTcgQEAgcHVi
bGljOgogICAgIHZvaWQgY29ubmVjdChjb25zdCBTdHJpbmcmIHVybCwgY29uc3QgU3RyaW5nJiBw
cm90b2NvbCwgRXhjZXB0aW9uQ29kZSYpOwogICAgIHZvaWQgY29ubmVjdChjb25zdCBTdHJpbmcm
IHVybCwgY29uc3QgVmVjdG9yPFN0cmluZz4mIHByb3RvY29scywgRXhjZXB0aW9uQ29kZSYpOwog
Ci0gICAgYm9vbCBzZW5kKGNvbnN0IFN0cmluZyYgbWVzc2FnZSwgRXhjZXB0aW9uQ29kZSYpOwot
ICAgIGJvb2wgc2VuZChBcnJheUJ1ZmZlciosIEV4Y2VwdGlvbkNvZGUmKTsKLSAgICBib29sIHNl
bmQoQmxvYiosIEV4Y2VwdGlvbkNvZGUmKTsKKyAgICAvLyBUaGUgcmV0dXJuIHR5cGUgb2Ygc2Vu
ZCgpIGZvciB0aGUgbmV3IGh5YmkgcHJvdG9jb2wgc2hvdWxkIGJlIHZvaWQgKHVuZGVmaW5lZCku
CisgICAgLy8gT24gaGl4aWUtNzYgcHJvdG9jb2wsIHNlbmQoKSBzaG91bGQgc3RpbGwgcmV0dXJu
IGJvb2xlYW4gdG8ga2VlcCB0aGUgY29tcGF0aWJpbGl0eQorICAgIC8vIGZvciBwb3J0cyBub3Qg
dXNpbmcgdGhlIG5ldyBwcm90b2NvbC4KKyAgICBlbnVtIFNlbmRSZXN1bHRUeXBlIHsKKyAgICAg
ICAgU2VuZFJlc3VsdFVuZGVmaW5lZCwKKyAgICAgICAgU2VuZFJlc3VsdEZhbHNlLAorICAgICAg
ICBTZW5kUmVzdWx0VHJ1ZQorICAgIH07CisgICAgU2VuZFJlc3VsdFR5cGUgc2VuZChjb25zdCBT
dHJpbmcmIG1lc3NhZ2UsIEV4Y2VwdGlvbkNvZGUmKTsKKyAgICBTZW5kUmVzdWx0VHlwZSBzZW5k
KEFycmF5QnVmZmVyKiwgRXhjZXB0aW9uQ29kZSYpOworICAgIFNlbmRSZXN1bHRUeXBlIHNlbmQo
QmxvYiosIEV4Y2VwdGlvbkNvZGUmKTsKIAogICAgIHZvaWQgY2xvc2UoaW50IGNvZGUsIGNvbnN0
IFN0cmluZyYgcmVhc29uLCBFeGNlcHRpb25Db2RlJik7CiAKQEAgLTEyMCw2ICsxMjgsOCBAQCBw
cml2YXRlOgogCiAgICAgc2l6ZV90IGdldEZyYW1pbmdPdmVyaGVhZChzaXplX3QgcGF5bG9hZFNp
emUpOwogCisgICAgU2VuZFJlc3VsdFR5cGUgdG9TZW5kUmVzdWx0KGJvb2wgc3VjY2Vzc2Z1bGx5
U2VudCkgY29uc3Q7CisKICAgICBlbnVtIEJpbmFyeVR5cGUgewogICAgICAgICBCaW5hcnlUeXBl
QmxvYiwKICAgICAgICAgQmluYXJ5VHlwZUFycmF5QnVmZmVyCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggMDQ3YWI0ZjViOGRi
ZjQ5M2QyODk2YWE5NThjYzk0ZTZhZWE4YTI4NC4uNTE4MDEyODEzMjc0YzFiZTE2NTBkMWE5ZTZh
ZjdkMjllNjc2NjdmNiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xh
eW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE4IEBACisyMDExLTEwLTE4ICBZdXRhIEtp
dGFtdXJhICA8eXV0YWtAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFdlYlNvY2tldDogUmV0dXJu
IHR5cGUgb2Ygc2VuZCgpIHNob3VsZCBiZSB2b2lkIGlmIGh5YmktMTAgcHJvdG9jb2wgaXMgY2hv
c2VuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD02NTg1
MAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFVwZGF0
ZSB0ZXN0cyBhbmQgdGVzdCByZXN1bHRzIGJlY2F1c2UgV2ViU29ja2V0LnNlbmQoKSBub3cgcmV0
dXJucyB1bmRlZmluZWQgd2hlbgorICAgICAgICB0aGUgaHliaSBXZWJTb2NrZXQgcHJvdG9jb2wg
aXMgdXNlZC4KKworICAgICAgICAqIGh0dHAvdGVzdHMvd2Vic29ja2V0L3Rlc3RzL2h5YmkvYnVm
ZmVyZWRBbW91bnQtYWZ0ZXItY2xvc2UtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIGh0dHAvdGVz
dHMvd2Vic29ja2V0L3Rlc3RzL2h5YmkvYnVmZmVyZWRBbW91bnQtYWZ0ZXItY2xvc2UuaHRtbDoK
KyAgICAgICAgKiBodHRwL3Rlc3RzL3dlYnNvY2tldC90ZXN0cy9oeWJpL3NlbmQtYWZ0ZXItY2xv
c2Utb24tdW5sb2FkLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBodHRwL3Rlc3RzL3dlYnNvY2tl
dC90ZXN0cy9oeWJpL3NlbmQtYWZ0ZXItY2xvc2Utb24tdW5sb2FkLmh0bWw6CisKIDIwMTEtMTAt
MTggIFphbiBEb2JlcnNlayAgPHphbmRvYmVyc2VrQGdtYWlsLmNvbT4KIAogICAgICAgICBbR3Rr
XSBTdXBwb3J0IGZvciBjbGllbnQtYmFzZWQgZ2VvbG9jYXRpb24KZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2h0dHAvdGVzdHMvd2Vic29ja2V0L3Rlc3RzL2h5YmkvYnVmZmVyZWRBbW91bnQtYWZ0
ZXItY2xvc2UtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJzb2NrZXQv
dGVzdHMvaHliaS9idWZmZXJlZEFtb3VudC1hZnRlci1jbG9zZS1leHBlY3RlZC50eHQKaW5kZXgg
MDQ0ZmUwZjliNGU4NWM3YjM2OWRhMzEzZTVjMzc1YzI3ZDZjMzVlMS4uYWYwZTg3NzNlOGNjNDI2
Mzg4MzI2OThjODM5ZmRlMGY2MmFhMGE5MyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90
ZXN0cy93ZWJzb2NrZXQvdGVzdHMvaHliaS9idWZmZXJlZEFtb3VudC1hZnRlci1jbG9zZS1leHBl
Y3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJzb2NrZXQvdGVzdHMvaHli
aS9idWZmZXJlZEFtb3VudC1hZnRlci1jbG9zZS1leHBlY3RlZC50eHQKQEAgLTcsNDUgKzcsNDUg
QEAgQ2xvc2VkLgogUEFTUyB3cy5yZWFkeVN0YXRlIGlzIDMKIFBBU1Mgd3MuYnVmZmVyZWRBbW91
bnQgaXMgMAogVGVzdGluZyBzZW5kKHN0cmluZykuLi4KLVBBU1Mgd3Muc2VuZChtZXNzYWdlVG9T
ZW5kKSBpcyBmYWxzZQorUEFTUyB3cy5zZW5kKG1lc3NhZ2VUb1NlbmQpIGlzIHVuZGVmaW5lZC4K
IFBBU1MgYnVmZmVyZWRBbW91bnREaWZmZXJlbmNlIGlzIDI3Ci1QQVNTIHdzLnNlbmQobWVzc2Fn
ZVRvU2VuZCkgaXMgZmFsc2UKK1BBU1Mgd3Muc2VuZChtZXNzYWdlVG9TZW5kKSBpcyB1bmRlZmlu
ZWQuCiBQQVNTIGJ1ZmZlcmVkQW1vdW50RGlmZmVyZW5jZSBpcyA2Ci1QQVNTIHdzLnNlbmQobWVz
c2FnZVRvU2VuZCkgaXMgZmFsc2UKK1BBU1Mgd3Muc2VuZChtZXNzYWdlVG9TZW5kKSBpcyB1bmRl
ZmluZWQuCiBQQVNTIGJ1ZmZlcmVkQW1vdW50RGlmZmVyZW5jZSBpcyA3Ci1QQVNTIHdzLnNlbmQo
bWVzc2FnZVRvU2VuZCkgaXMgZmFsc2UKK1BBU1Mgd3Muc2VuZChtZXNzYWdlVG9TZW5kKSBpcyB1
bmRlZmluZWQuCiBQQVNTIGJ1ZmZlcmVkQW1vdW50RGlmZmVyZW5jZSBpcyAxMzEKLVBBU1Mgd3Mu
c2VuZChtZXNzYWdlVG9TZW5kKSBpcyBmYWxzZQorUEFTUyB3cy5zZW5kKG1lc3NhZ2VUb1NlbmQp
IGlzIHVuZGVmaW5lZC4KIFBBU1MgYnVmZmVyZWRBbW91bnREaWZmZXJlbmNlIGlzIDEzNAotUEFT
UyB3cy5zZW5kKG1lc3NhZ2VUb1NlbmQpIGlzIGZhbHNlCitQQVNTIHdzLnNlbmQobWVzc2FnZVRv
U2VuZCkgaXMgdW5kZWZpbmVkLgogUEFTUyBidWZmZXJlZEFtb3VudERpZmZlcmVuY2UgaXMgNjU1
NDMKLVBBU1Mgd3Muc2VuZChtZXNzYWdlVG9TZW5kKSBpcyBmYWxzZQorUEFTUyB3cy5zZW5kKG1l
c3NhZ2VUb1NlbmQpIGlzIHVuZGVmaW5lZC4KIFBBU1MgYnVmZmVyZWRBbW91bnREaWZmZXJlbmNl
IGlzIDY1NTUwCiBUZXN0aW5nIHNlbmQoQXJyYXlCdWZmZXIpLi4uCi1QQVNTIHdzLnNlbmQobWVz
c2FnZVRvU2VuZCkgaXMgZmFsc2UKK1BBU1Mgd3Muc2VuZChtZXNzYWdlVG9TZW5kKSBpcyB1bmRl
ZmluZWQuCiBQQVNTIGJ1ZmZlcmVkQW1vdW50RGlmZmVyZW5jZSBpcyA2Ci1QQVNTIHdzLnNlbmQo
bWVzc2FnZVRvU2VuZCkgaXMgZmFsc2UKK1BBU1Mgd3Muc2VuZChtZXNzYWdlVG9TZW5kKSBpcyB1
bmRlZmluZWQuCiBQQVNTIGJ1ZmZlcmVkQW1vdW50RGlmZmVyZW5jZSBpcyA3Ci1QQVNTIHdzLnNl
bmQobWVzc2FnZVRvU2VuZCkgaXMgZmFsc2UKK1BBU1Mgd3Muc2VuZChtZXNzYWdlVG9TZW5kKSBp
cyB1bmRlZmluZWQuCiBQQVNTIGJ1ZmZlcmVkQW1vdW50RGlmZmVyZW5jZSBpcyAxMzEKLVBBU1Mg
d3Muc2VuZChtZXNzYWdlVG9TZW5kKSBpcyBmYWxzZQorUEFTUyB3cy5zZW5kKG1lc3NhZ2VUb1Nl
bmQpIGlzIHVuZGVmaW5lZC4KIFBBU1MgYnVmZmVyZWRBbW91bnREaWZmZXJlbmNlIGlzIDEzNAot
UEFTUyB3cy5zZW5kKG1lc3NhZ2VUb1NlbmQpIGlzIGZhbHNlCitQQVNTIHdzLnNlbmQobWVzc2Fn
ZVRvU2VuZCkgaXMgdW5kZWZpbmVkLgogUEFTUyBidWZmZXJlZEFtb3VudERpZmZlcmVuY2UgaXMg
NjU1NDMKLVBBU1Mgd3Muc2VuZChtZXNzYWdlVG9TZW5kKSBpcyBmYWxzZQorUEFTUyB3cy5zZW5k
KG1lc3NhZ2VUb1NlbmQpIGlzIHVuZGVmaW5lZC4KIFBBU1MgYnVmZmVyZWRBbW91bnREaWZmZXJl
bmNlIGlzIDY1NTUwCiBUZXN0aW5nIHNlbmQoQmxvYikuLi4KLVBBU1Mgd3Muc2VuZChtZXNzYWdl
VG9TZW5kKSBpcyBmYWxzZQorUEFTUyB3cy5zZW5kKG1lc3NhZ2VUb1NlbmQpIGlzIHVuZGVmaW5l
ZC4KIFBBU1MgYnVmZmVyZWRBbW91bnREaWZmZXJlbmNlIGlzIDYKLVBBU1Mgd3Muc2VuZChtZXNz
YWdlVG9TZW5kKSBpcyBmYWxzZQorUEFTUyB3cy5zZW5kKG1lc3NhZ2VUb1NlbmQpIGlzIHVuZGVm
aW5lZC4KIFBBU1MgYnVmZmVyZWRBbW91bnREaWZmZXJlbmNlIGlzIDcKLVBBU1Mgd3Muc2VuZCht
ZXNzYWdlVG9TZW5kKSBpcyBmYWxzZQorUEFTUyB3cy5zZW5kKG1lc3NhZ2VUb1NlbmQpIGlzIHVu
ZGVmaW5lZC4KIFBBU1MgYnVmZmVyZWRBbW91bnREaWZmZXJlbmNlIGlzIDEzMQotUEFTUyB3cy5z
ZW5kKG1lc3NhZ2VUb1NlbmQpIGlzIGZhbHNlCitQQVNTIHdzLnNlbmQobWVzc2FnZVRvU2VuZCkg
aXMgdW5kZWZpbmVkLgogUEFTUyBidWZmZXJlZEFtb3VudERpZmZlcmVuY2UgaXMgMTM0Ci1QQVNT
IHdzLnNlbmQobWVzc2FnZVRvU2VuZCkgaXMgZmFsc2UKK1BBU1Mgd3Muc2VuZChtZXNzYWdlVG9T
ZW5kKSBpcyB1bmRlZmluZWQuCiBQQVNTIGJ1ZmZlcmVkQW1vdW50RGlmZmVyZW5jZSBpcyA2NTU0
MwotUEFTUyB3cy5zZW5kKG1lc3NhZ2VUb1NlbmQpIGlzIGZhbHNlCitQQVNTIHdzLnNlbmQobWVz
c2FnZVRvU2VuZCkgaXMgdW5kZWZpbmVkLgogUEFTUyBidWZmZXJlZEFtb3VudERpZmZlcmVuY2Ug
aXMgNjU1NTAKIFBBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKIApkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJzb2NrZXQvdGVzdHMvaHliaS9idWZmZXJlZEFtb3Vu
dC1hZnRlci1jbG9zZS5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJzb2NrZXQvdGVz
dHMvaHliaS9idWZmZXJlZEFtb3VudC1hZnRlci1jbG9zZS5odG1sCmluZGV4IDIzMzNkNzMyODk4
MjE4NmI1MDMzNGEzNThmZTk3NmYyNjA3ODY1Y2IuLmFkMzAwNTNjMjgzZjg1ZmZmZGZiOGYwY2Y5
NDNmNGE3OGRjMGY5ZTIgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd2Vic29j
a2V0L3Rlc3RzL2h5YmkvYnVmZmVyZWRBbW91bnQtYWZ0ZXItY2xvc2UuaHRtbAorKysgYi9MYXlv
dXRUZXN0cy9odHRwL3Rlc3RzL3dlYnNvY2tldC90ZXN0cy9oeWJpL2J1ZmZlcmVkQW1vdW50LWFm
dGVyLWNsb3NlLmh0bWwKQEAgLTgyLDcgKzgyLDcgQEAgZnVuY3Rpb24gdGVzdEJ1ZmZlcmVkQW1v
dW50KG1lc3NhZ2UsIGV4cGVjdGVkQnVmZmVyZWRBbW91bnREaWZmZXJlbmNlKQogICAgIC8vICh0
aGUgbnVtYmVyIGRvZXMgbm90IHJlc2V0IHRvIHplcm8gb25jZSB0aGUgY29ubmVjdGlvbiBjbG9z
ZXMpLgogICAgIG1lc3NhZ2VUb1NlbmQgPSBtZXNzYWdlOwogICAgIHZhciBidWZmZXJlZEFtb3Vu
dEJlZm9yZVNlbmQgPSB3cy5idWZmZXJlZEFtb3VudDsKLSAgICBzaG91bGRCZUZhbHNlKCJ3cy5z
ZW5kKG1lc3NhZ2VUb1NlbmQpIik7CisgICAgc2hvdWxkQmVVbmRlZmluZWQoIndzLnNlbmQobWVz
c2FnZVRvU2VuZCkiKTsKICAgICB2YXIgYnVmZmVyZWRBbW91bnRBZnRlclNlbmQgPSB3cy5idWZm
ZXJlZEFtb3VudDsKICAgICBidWZmZXJlZEFtb3VudERpZmZlcmVuY2UgPSBidWZmZXJlZEFtb3Vu
dEFmdGVyU2VuZCAtIGJ1ZmZlcmVkQW1vdW50QmVmb3JlU2VuZDsKICAgICBzaG91bGRFdmFsdWF0
ZVRvKCJidWZmZXJlZEFtb3VudERpZmZlcmVuY2UiLCBleHBlY3RlZEJ1ZmZlcmVkQW1vdW50RGlm
ZmVyZW5jZSk7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dlYnNvY2tldC90
ZXN0cy9oeWJpL3NlbmQtYWZ0ZXItY2xvc2Utb24tdW5sb2FkLWV4cGVjdGVkLnR4dCBiL0xheW91
dFRlc3RzL2h0dHAvdGVzdHMvd2Vic29ja2V0L3Rlc3RzL2h5Ymkvc2VuZC1hZnRlci1jbG9zZS1v
bi11bmxvYWQtZXhwZWN0ZWQudHh0CmluZGV4IGNmZjQ4YjFlMjUxOTdkNWM3ZGNlMWU2Y2YzYjgw
MTlkN2ZhNDVjMzIuLjYyMzU4NjQ5Mjg4YzlmZTc2NDExNTBjMjgxYzVjNzNlZDI4YmU0YWEgMTAw
NjQ0Ci0tLSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd2Vic29ja2V0L3Rlc3RzL2h5Ymkvc2Vu
ZC1hZnRlci1jbG9zZS1vbi11bmxvYWQtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2h0
dHAvdGVzdHMvd2Vic29ja2V0L3Rlc3RzL2h5Ymkvc2VuZC1hZnRlci1jbG9zZS1vbi11bmxvYWQt
ZXhwZWN0ZWQudHh0CkBAIC02LDcgKzYsNyBAQCBQQVNTIHdzIG9uIG1hc3RlciBkb2N1bWVudCBp
cyByZWFkeS4KIFBBU1MgaW5zZXJ0IGEgaWZyYW1lLCB3aGVyZSBvcGVuIHdzIGNhbGxlZCAnc29j
a2V0MScKIFBBU1MgZG9jdW1lbnQuY2hpbGRXZWJTb2NrZXQgaXMgbm9uLW51bGwuCiBQQVNTICdz
b2NrZXQxJyBpcyBzZW50IHRvIHRoZSBzZXJ2ZXIuIHVubG9hZCB0aGUgaWZyYW1lLiBleHBlY3Qg
cmVjZWl2aW5nICdzb2NrZXQxJyBvbiB3cy4uLgotUEFTUyBkb2N1bWVudC5jaGlsZFdlYlNvY2tl
dC5zZW5kKCdzZW5kIHRvIGNsb3NlZCBzb2NrZXQnKSBpcyBmYWxzZQorUEFTUyBkb2N1bWVudC5j
aGlsZFdlYlNvY2tldC5zZW5kKCdzZW5kIHRvIGNsb3NlZCBzb2NrZXQnKSBpcyB1bmRlZmluZWQu
CiBQQVNTIGNsb3NlZFNvY2tldCBpcyAic29ja2V0MSIKIFBBU1MgZG9jdW1lbnQuY2hpbGRXZWJT
b2NrZXQucmVhZHlTdGF0ZSBpcyAzCiBQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dlYnNvY2tldC90ZXN0cy9oeWJpL3Nl
bmQtYWZ0ZXItY2xvc2Utb24tdW5sb2FkLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dl
YnNvY2tldC90ZXN0cy9oeWJpL3NlbmQtYWZ0ZXItY2xvc2Utb24tdW5sb2FkLmh0bWwKaW5kZXgg
MmQzYjViNWZlZTdiMTIxOTM4YWM2OGZkMWZlYmUzMDZjYmE5NGQ0Yy4uMjZhNTg0MTRkNjY5M2Vj
MWE2YjdjYzA3YTdlZjBjYWM5NzBiODM5NyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90
ZXN0cy93ZWJzb2NrZXQvdGVzdHMvaHliaS9zZW5kLWFmdGVyLWNsb3NlLW9uLXVubG9hZC5odG1s
CisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd2Vic29ja2V0L3Rlc3RzL2h5Ymkvc2VuZC1h
ZnRlci1jbG9zZS1vbi11bmxvYWQuaHRtbApAQCAtNDQsNyArNDQsNyBAQCBkb2N1bWVudC5pZnJh
bWVSZWFkeSA9IGZ1bmN0aW9uKCkKICAgICBzaG91bGRCZU5vbk51bGwoImRvY3VtZW50LmNoaWxk
V2ViU29ja2V0Iik7CiAgICAgZGVidWcoIlBBU1MgJ3NvY2tldDEnIGlzIHNlbnQgdG8gdGhlIHNl
cnZlci4gdW5sb2FkIHRoZSBpZnJhbWUuIGV4cGVjdCByZWNlaXZpbmcgJ3NvY2tldDEnIG9uIHdz
Li4uIik7CiAgICAgZG9jdW1lbnQuYm9keS5yZW1vdmVDaGlsZChmcmFtZURpdik7Ci0gICAgc2hv
dWxkQmVGYWxzZSgiZG9jdW1lbnQuY2hpbGRXZWJTb2NrZXQuc2VuZCgnc2VuZCB0byBjbG9zZWQg
c29ja2V0JykiKTsKKyAgICBzaG91bGRCZVVuZGVmaW5lZCgiZG9jdW1lbnQuY2hpbGRXZWJTb2Nr
ZXQuc2VuZCgnc2VuZCB0byBjbG9zZWQgc29ja2V0JykiKTsKIH07CiAKIHZhciBzdWNjZXNzZnVs
bHlQYXJzZWQgPSB0cnVlOwo=
</data>
<flag name="review"
          id="109274"
          type_id="1"
          status="+"
          setter="ojan"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>198851</attachid>
            <date>2013-04-19 06:37:12 -0700</date>
            <delta_ts>2013-04-19 12:11:35 -0700</delta_ts>
            <desc>Patch v3 (rebase)</desc>
            <filename>bug-65850-20130419103640.patch</filename>
            <type>text/plain</type>
            <size>19049</size>
            <attacher name="Lamarque V. Souza">lamarque</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQ4NzIzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYjIzZTAxNjNkMWZhOTYw
NTA4NmM4NTc1MGE1OGE2MDhkMzQ0NjdlMi4uNTg4OGJjMWE2MTY3ZmUwOTYxZWU0MjNmMjIzMDNm
MzdiMjU5NWJlOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI3IEBACisyMDEzLTA0LTE5ICBMYW1h
cnF1ZSBWLiBTb3V6YSAgPExhbWFycXVlLlNvdXphQGJhc3lza29tLmNvbT4KKworICAgICAgICBX
ZWJTb2NrZXQ6IFJldHVybiB0eXBlIG9mIHNlbmQoKSBzaG91bGQgYmUgdm9pZCBpZiBoeWJpLTEw
IHByb3RvY29sIGlzIGNob3NlbgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9NjU4NTAKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICBXZWJTb2NrZXQgQVBJIGRyYWZ0IGNoYW5nZWQgdGhlIHJldHVybiB0eXBlIG9m
IHNlbmQoKSBmcm9tIGJvb2xlYW4gdG8gdm9pZCBiYXNlZCBvbiBTaW1vbgorICAgICAgICBQaWV0
ZXJzJyBwb3N0IHRvIFdIQVRXRy4gRmlyZWZveCA4IGFuZCBJRSAxMCBhbHJlYWR5IGZvbGxvdyB0
aGUgc3BlY2lmaWNhdGlvbiwgaGVuY2UgaXQgc2hvdWxkCisgICAgICAgIG1ha2Ugc2Vuc2UgZm9y
IHVzIHRvIGRvIHRoZSBzYW1lIHdoZW4gaHliaSBwcm90b2NvbCBpcyB1c2VkLgorCisgICAgICAg
IE9yaWdpbmFsIHBhdGNoIGJ5IFl1dGEgS2l0YW11cmEgIDx5dXRha0BjaHJvbWl1bS5vcmc+CisK
KyAgICAgICAgVGVzdHM6IGh0dHAvdGVzdHMvd2Vic29ja2V0L3Rlc3RzL2h5YmkvYnVmZmVyZWRB
bW91bnQtYWZ0ZXItY2xvc2UuaHRtbCAodXBkYXRlZCkKKyAgICAgICAgICAgICAgIGh0dHAvdGVz
dHMvd2Vic29ja2V0L3Rlc3RzL2h5Ymkvc2VuZC1hZnRlci1jbG9zZS1vbi11bmxvYWQuaHRtbCAo
dXBkYXRlZCkKKworICAgICAgICAqIE1vZHVsZXMvd2Vic29ja2V0cy9XZWJTb2NrZXQuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6V2ViU29ja2V0OjpzZW5kKToKKyAgICAgICAgKiBNb2R1bGVzL3dl
YnNvY2tldHMvV2ViU29ja2V0Lmg6CisgICAgICAgICogTW9kdWxlcy93ZWJzb2NrZXRzL1dlYlNv
Y2tldC5pZGw6CisgICAgICAgICogY3NzL0RPTVdpbmRvd0NTUy5oOgorICAgICAgICAoV2ViQ29y
ZTo6RE9NV2luZG93Q1NTOjp+RE9NV2luZG93Q1NTKToKKyAgICAgICAgKERPTVdpbmRvd0NTUyk6
CisKIDIwMTMtMDQtMTggIFRpbW90aHkgSGF0Y2hlciAgPHRpbW90aHlAYXBwbGUuY29tPgogCiAg
ICAgICAgIEFkZCBDU1Muc2V0U3R5bGVUZXh0IHRvIHRoZSBXZWIgSW5zcGVjdG9yIHByb3RvY29s
LgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJzb2NrZXRzL1dlYlNvY2tl
dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnNvY2tldHMvV2ViU29ja2V0LmNwcApp
bmRleCAzZTBlODkxMzMyMjA1ODAyYWYwZWEzMjU4NmQ3MTM5OWRjM2NjZTgwLi40MTI4OTJmNTk1
NmQ3Y2EyZDNjMDg0OGJiYzY4M2JiN2ZjNzAxYmVmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL3dlYnNvY2tldHMvV2ViU29ja2V0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL3dlYnNvY2tldHMvV2ViU29ja2V0LmNwcApAQCAtMjkxLDgzICsyOTEsODIgQEAgdm9p
ZCBXZWJTb2NrZXQ6OmNvbm5lY3QoY29uc3QgU3RyaW5nJiB1cmwsIGNvbnN0IFZlY3RvcjxTdHJp
bmc+JiBwcm90b2NvbHMsIEV4Y2UKICAgICBBY3RpdmVET01PYmplY3Q6OnNldFBlbmRpbmdBY3Rp
dml0eSh0aGlzKTsKIH0KIAotYm9vbCBXZWJTb2NrZXQ6OnNlbmQoY29uc3QgU3RyaW5nJiBtZXNz
YWdlLCBFeGNlcHRpb25Db2RlJiBlYykKK3ZvaWQgV2ViU29ja2V0OjpzZW5kKGNvbnN0IFN0cmlu
ZyYgbWVzc2FnZSwgRXhjZXB0aW9uQ29kZSYgZWMpCiB7CiAgICAgTE9HKE5ldHdvcmssICJXZWJT
b2NrZXQgJXAgc2VuZCgpIFNlbmRpbmcgU3RyaW5nICclcyciLCB0aGlzLCBtZXNzYWdlLnV0Zjgo
KS5kYXRhKCkpOwogICAgIGlmIChtX3N0YXRlID09IENPTk5FQ1RJTkcpIHsKICAgICAgICAgZWMg
PSBJTlZBTElEX1NUQVRFX0VSUjsKLSAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICByZXR1
cm47CiAgICAgfQogICAgIC8vIE5vIGV4Y2VwdGlvbiBpcyByYWlzZWQgaWYgdGhlIGNvbm5lY3Rp
b24gd2FzIG9uY2UgZXN0YWJsaXNoZWQgYnV0IGhhcyBzdWJzZXF1ZW50bHkgYmVlbiBjbG9zZWQu
CiAgICAgaWYgKG1fc3RhdGUgPT0gQ0xPU0lORyB8fCBtX3N0YXRlID09IENMT1NFRCkgewogICAg
ICAgICBzaXplX3QgcGF5bG9hZFNpemUgPSBtZXNzYWdlLnV0ZjgoKS5sZW5ndGgoKTsKICAgICAg
ICAgbV9idWZmZXJlZEFtb3VudEFmdGVyQ2xvc2UgPSBzYXR1cmF0ZUFkZChtX2J1ZmZlcmVkQW1v
dW50QWZ0ZXJDbG9zZSwgcGF5bG9hZFNpemUpOwogICAgICAgICBtX2J1ZmZlcmVkQW1vdW50QWZ0
ZXJDbG9zZSA9IHNhdHVyYXRlQWRkKG1fYnVmZmVyZWRBbW91bnRBZnRlckNsb3NlLCBnZXRGcmFt
aW5nT3ZlcmhlYWQocGF5bG9hZFNpemUpKTsKLSAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAg
ICByZXR1cm47CiAgICAgfQogICAgIEFTU0VSVChtX2NoYW5uZWwpOwogICAgIFRocmVhZGFibGVX
ZWJTb2NrZXRDaGFubmVsOjpTZW5kUmVzdWx0IHJlc3VsdCA9IG1fY2hhbm5lbC0+c2VuZChtZXNz
YWdlKTsKICAgICBpZiAocmVzdWx0ID09IFRocmVhZGFibGVXZWJTb2NrZXRDaGFubmVsOjpJbnZh
bGlkTWVzc2FnZSkgewogICAgICAgICBzY3JpcHRFeGVjdXRpb25Db250ZXh0KCktPmFkZENvbnNv
bGVNZXNzYWdlKEpTTWVzc2FnZVNvdXJjZSwgRXJyb3JNZXNzYWdlTGV2ZWwsICJXZWJzb2NrZXQg
bWVzc2FnZSBjb250YWlucyBpbnZhbGlkIGNoYXJhY3RlcihzKS4iKTsKICAgICAgICAgZWMgPSBT
WU5UQVhfRVJSOwotICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIHJldHVybjsKICAgICB9
Ci0gICAgcmV0dXJuIHJlc3VsdCA9PSBUaHJlYWRhYmxlV2ViU29ja2V0Q2hhbm5lbDo6U2VuZFN1
Y2Nlc3M7CiB9CiAKLWJvb2wgV2ViU29ja2V0OjpzZW5kKEFycmF5QnVmZmVyKiBiaW5hcnlEYXRh
LCBFeGNlcHRpb25Db2RlJiBlYykKK3ZvaWQgV2ViU29ja2V0OjpzZW5kKEFycmF5QnVmZmVyKiBi
aW5hcnlEYXRhLCBFeGNlcHRpb25Db2RlJiBlYykKIHsKICAgICBMT0coTmV0d29yaywgIldlYlNv
Y2tldCAlcCBzZW5kKCkgU2VuZGluZyBBcnJheUJ1ZmZlciAlcCIsIHRoaXMsIGJpbmFyeURhdGEp
OwogICAgIEFTU0VSVChiaW5hcnlEYXRhKTsKICAgICBpZiAobV9zdGF0ZSA9PSBDT05ORUNUSU5H
KSB7CiAgICAgICAgIGVjID0gSU5WQUxJRF9TVEFURV9FUlI7Ci0gICAgICAgIHJldHVybiBmYWxz
ZTsKKyAgICAgICAgcmV0dXJuOwogICAgIH0KICAgICBpZiAobV9zdGF0ZSA9PSBDTE9TSU5HIHx8
IG1fc3RhdGUgPT0gQ0xPU0VEKSB7CiAgICAgICAgIHVuc2lnbmVkIHBheWxvYWRTaXplID0gYmlu
YXJ5RGF0YS0+Ynl0ZUxlbmd0aCgpOwogICAgICAgICBtX2J1ZmZlcmVkQW1vdW50QWZ0ZXJDbG9z
ZSA9IHNhdHVyYXRlQWRkKG1fYnVmZmVyZWRBbW91bnRBZnRlckNsb3NlLCBwYXlsb2FkU2l6ZSk7
CiAgICAgICAgIG1fYnVmZmVyZWRBbW91bnRBZnRlckNsb3NlID0gc2F0dXJhdGVBZGQobV9idWZm
ZXJlZEFtb3VudEFmdGVyQ2xvc2UsIGdldEZyYW1pbmdPdmVyaGVhZChwYXlsb2FkU2l6ZSkpOwot
ICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIHJldHVybjsKICAgICB9CiAgICAgQVNTRVJU
KG1fY2hhbm5lbCk7Ci0gICAgcmV0dXJuIG1fY2hhbm5lbC0+c2VuZCgqYmluYXJ5RGF0YSwgMCwg
YmluYXJ5RGF0YS0+Ynl0ZUxlbmd0aCgpKSA9PSBUaHJlYWRhYmxlV2ViU29ja2V0Q2hhbm5lbDo6
U2VuZFN1Y2Nlc3M7CisgICAgbV9jaGFubmVsLT5zZW5kKCpiaW5hcnlEYXRhLCAwLCBiaW5hcnlE
YXRhLT5ieXRlTGVuZ3RoKCkpOwogfQogCi1ib29sIFdlYlNvY2tldDo6c2VuZChBcnJheUJ1ZmZl
clZpZXcqIGFycmF5QnVmZmVyVmlldywgRXhjZXB0aW9uQ29kZSYgZWMpCit2b2lkIFdlYlNvY2tl
dDo6c2VuZChBcnJheUJ1ZmZlclZpZXcqIGFycmF5QnVmZmVyVmlldywgRXhjZXB0aW9uQ29kZSYg
ZWMpCiB7CiAgICAgTE9HKE5ldHdvcmssICJXZWJTb2NrZXQgJXAgc2VuZCgpIFNlbmRpbmcgQXJy
YXlCdWZmZXJWaWV3ICVwIiwgdGhpcywgYXJyYXlCdWZmZXJWaWV3KTsKICAgICBBU1NFUlQoYXJy
YXlCdWZmZXJWaWV3KTsKICAgICBpZiAobV9zdGF0ZSA9PSBDT05ORUNUSU5HKSB7CiAgICAgICAg
IGVjID0gSU5WQUxJRF9TVEFURV9FUlI7Ci0gICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAg
cmV0dXJuOwogICAgIH0KICAgICBpZiAobV9zdGF0ZSA9PSBDTE9TSU5HIHx8IG1fc3RhdGUgPT0g
Q0xPU0VEKSB7CiAgICAgICAgIHVuc2lnbmVkIHBheWxvYWRTaXplID0gYXJyYXlCdWZmZXJWaWV3
LT5ieXRlTGVuZ3RoKCk7CiAgICAgICAgIG1fYnVmZmVyZWRBbW91bnRBZnRlckNsb3NlID0gc2F0
dXJhdGVBZGQobV9idWZmZXJlZEFtb3VudEFmdGVyQ2xvc2UsIHBheWxvYWRTaXplKTsKICAgICAg
ICAgbV9idWZmZXJlZEFtb3VudEFmdGVyQ2xvc2UgPSBzYXR1cmF0ZUFkZChtX2J1ZmZlcmVkQW1v
dW50QWZ0ZXJDbG9zZSwgZ2V0RnJhbWluZ092ZXJoZWFkKHBheWxvYWRTaXplKSk7Ci0gICAgICAg
IHJldHVybiBmYWxzZTsKKyAgICAgICAgcmV0dXJuOwogICAgIH0KICAgICBBU1NFUlQobV9jaGFu
bmVsKTsKICAgICBSZWZQdHI8QXJyYXlCdWZmZXI+IGFycmF5QnVmZmVyKGFycmF5QnVmZmVyVmll
dy0+YnVmZmVyKCkpOwotICAgIHJldHVybiBtX2NoYW5uZWwtPnNlbmQoKmFycmF5QnVmZmVyLCBh
cnJheUJ1ZmZlclZpZXctPmJ5dGVPZmZzZXQoKSwgYXJyYXlCdWZmZXJWaWV3LT5ieXRlTGVuZ3Ro
KCkpID09IFRocmVhZGFibGVXZWJTb2NrZXRDaGFubmVsOjpTZW5kU3VjY2VzczsKKyAgICBtX2No
YW5uZWwtPnNlbmQoKmFycmF5QnVmZmVyLCBhcnJheUJ1ZmZlclZpZXctPmJ5dGVPZmZzZXQoKSwg
YXJyYXlCdWZmZXJWaWV3LT5ieXRlTGVuZ3RoKCkpOwogfQogCi1ib29sIFdlYlNvY2tldDo6c2Vu
ZChCbG9iKiBiaW5hcnlEYXRhLCBFeGNlcHRpb25Db2RlJiBlYykKK3ZvaWQgV2ViU29ja2V0Ojpz
ZW5kKEJsb2IqIGJpbmFyeURhdGEsIEV4Y2VwdGlvbkNvZGUmIGVjKQogewogICAgIExPRyhOZXR3
b3JrLCAiV2ViU29ja2V0ICVwIHNlbmQoKSBTZW5kaW5nIEJsb2IgJyVzJyIsIHRoaXMsIGJpbmFy
eURhdGEtPnVybCgpLmVsaWRlZFN0cmluZygpLnV0ZjgoKS5kYXRhKCkpOwogICAgIEFTU0VSVChi
aW5hcnlEYXRhKTsKICAgICBpZiAobV9zdGF0ZSA9PSBDT05ORUNUSU5HKSB7CiAgICAgICAgIGVj
ID0gSU5WQUxJRF9TVEFURV9FUlI7Ci0gICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgcmV0
dXJuOwogICAgIH0KICAgICBpZiAobV9zdGF0ZSA9PSBDTE9TSU5HIHx8IG1fc3RhdGUgPT0gQ0xP
U0VEKSB7CiAgICAgICAgIHVuc2lnbmVkIGxvbmcgcGF5bG9hZFNpemUgPSBzdGF0aWNfY2FzdDx1
bnNpZ25lZCBsb25nPihiaW5hcnlEYXRhLT5zaXplKCkpOwogICAgICAgICBtX2J1ZmZlcmVkQW1v
dW50QWZ0ZXJDbG9zZSA9IHNhdHVyYXRlQWRkKG1fYnVmZmVyZWRBbW91bnRBZnRlckNsb3NlLCBw
YXlsb2FkU2l6ZSk7CiAgICAgICAgIG1fYnVmZmVyZWRBbW91bnRBZnRlckNsb3NlID0gc2F0dXJh
dGVBZGQobV9idWZmZXJlZEFtb3VudEFmdGVyQ2xvc2UsIGdldEZyYW1pbmdPdmVyaGVhZChwYXls
b2FkU2l6ZSkpOwotICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIHJldHVybjsKICAgICB9
CiAgICAgQVNTRVJUKG1fY2hhbm5lbCk7Ci0gICAgcmV0dXJuIG1fY2hhbm5lbC0+c2VuZCgqYmlu
YXJ5RGF0YSkgPT0gVGhyZWFkYWJsZVdlYlNvY2tldENoYW5uZWw6OlNlbmRTdWNjZXNzOworICAg
IG1fY2hhbm5lbC0+c2VuZCgqYmluYXJ5RGF0YSk7CiB9CiAKIHZvaWQgV2ViU29ja2V0OjpjbG9z
ZShpbnQgY29kZSwgY29uc3QgU3RyaW5nJiByZWFzb24sIEV4Y2VwdGlvbkNvZGUmIGVjKQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJzb2NrZXRzL1dlYlNvY2tldC5oIGIv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJzb2NrZXRzL1dlYlNvY2tldC5oCmluZGV4IDJiYWU1
MzliMWI1MTI1M2E0YjMzY2ViYjViODQ2OTY4ZWVhNDhjNDEuLmE3YWVhNzFhM2EzNDIyMGE2MjNl
MWM2ZmViNmM4NzE5MjBlYWM0MjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
d2Vic29ja2V0cy9XZWJTb2NrZXQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnNv
Y2tldHMvV2ViU29ja2V0LmgKQEAgLTcyLDEwICs3MiwxMCBAQCBwdWJsaWM6CiAgICAgdm9pZCBj
b25uZWN0KGNvbnN0IFN0cmluZyYgdXJsLCBjb25zdCBTdHJpbmcmIHByb3RvY29sLCBFeGNlcHRp
b25Db2RlJik7CiAgICAgdm9pZCBjb25uZWN0KGNvbnN0IFN0cmluZyYgdXJsLCBjb25zdCBWZWN0
b3I8U3RyaW5nPiYgcHJvdG9jb2xzLCBFeGNlcHRpb25Db2RlJik7CiAKLSAgICBib29sIHNlbmQo
Y29uc3QgU3RyaW5nJiBtZXNzYWdlLCBFeGNlcHRpb25Db2RlJik7Ci0gICAgYm9vbCBzZW5kKEFy
cmF5QnVmZmVyKiwgRXhjZXB0aW9uQ29kZSYpOwotICAgIGJvb2wgc2VuZChBcnJheUJ1ZmZlclZp
ZXcqLCBFeGNlcHRpb25Db2RlJik7Ci0gICAgYm9vbCBzZW5kKEJsb2IqLCBFeGNlcHRpb25Db2Rl
Jik7CisgICAgdm9pZCBzZW5kKGNvbnN0IFN0cmluZyYgbWVzc2FnZSwgRXhjZXB0aW9uQ29kZSYp
OworICAgIHZvaWQgc2VuZChBcnJheUJ1ZmZlciosIEV4Y2VwdGlvbkNvZGUmKTsKKyAgICB2b2lk
IHNlbmQoQXJyYXlCdWZmZXJWaWV3KiwgRXhjZXB0aW9uQ29kZSYpOworICAgIHZvaWQgc2VuZChC
bG9iKiwgRXhjZXB0aW9uQ29kZSYpOwogCiAgICAgdm9pZCBjbG9zZShpbnQgY29kZSwgY29uc3Qg
U3RyaW5nJiByZWFzb24sIEV4Y2VwdGlvbkNvZGUmKTsKICAgICB2b2lkIGNsb3NlKEV4Y2VwdGlv
bkNvZGUmIGVjKSB7IGNsb3NlKFdlYlNvY2tldENoYW5uZWw6OkNsb3NlRXZlbnRDb2RlTm90U3Bl
Y2lmaWVkLCBTdHJpbmcoKSwgZWMpOyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL3dlYnNvY2tldHMvV2ViU29ja2V0LmlkbCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vi
c29ja2V0cy9XZWJTb2NrZXQuaWRsCmluZGV4IDQxZmUyMmIyZjQ4MzAxNDhjMjMyMTM5NzVhOTcx
YmU0ZDVkYzUzNTIuLjQ5MTBjYTIzYzUxNjczYTJlMWY4NTBiNmJlMjE3N2U0ZTc5NGNhN2IgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vic29ja2V0cy9XZWJTb2NrZXQuaWRs
CisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vic29ja2V0cy9XZWJTb2NrZXQuaWRsCkBA
IC02NCwxMyArNjQsMTMgQEAKIAogICAgIGF0dHJpYnV0ZSBET01TdHJpbmcgYmluYXJ5VHlwZTsK
IAotICAgIGJvb2xlYW4gc2VuZChpbiBBcnJheUJ1ZmZlciBkYXRhKQorICAgIHZvaWQgc2VuZChp
biBBcnJheUJ1ZmZlciBkYXRhKQogICAgICAgICByYWlzZXMoRE9NRXhjZXB0aW9uKTsKLSAgICBi
b29sZWFuIHNlbmQoaW4gQXJyYXlCdWZmZXJWaWV3IGRhdGEpCisgICAgdm9pZCBzZW5kKGluIEFy
cmF5QnVmZmVyVmlldyBkYXRhKQogICAgICAgICByYWlzZXMoRE9NRXhjZXB0aW9uKTsKLSAgICBi
b29sZWFuIHNlbmQoaW4gQmxvYiBkYXRhKQorICAgIHZvaWQgc2VuZChpbiBCbG9iIGRhdGEpCiAg
ICAgICAgIHJhaXNlcyhET01FeGNlcHRpb24pOwotICAgIGJvb2xlYW4gc2VuZChpbiBET01TdHJp
bmcgZGF0YSkKKyAgICB2b2lkIHNlbmQoaW4gRE9NU3RyaW5nIGRhdGEpCiAgICAgICAgIHJhaXNl
cyhET01FeGNlcHRpb24pOwogCiAgICAgdm9pZCBjbG9zZShpbiBbQ2xhbXAsIE9wdGlvbmFsXSB1
bnNpZ25lZCBzaG9ydCBjb2RlLCBpbiBbT3B0aW9uYWxdIERPTVN0cmluZyByZWFzb24pIHJhaXNl
cyhET01FeGNlcHRpb24pOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5
b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IDcyMTMwMzFmNDE4ZGMxZmVhZDUxMTlkOGQwZjk1NmY3
NjUwNTVlNTkuLjQ1Y2UwNTY4ZWEzNmVkNWQzNWQyZTg1NWJiZWQ4NGQyMzU5YzFjMmIgMTAwNjQ0
Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cK
QEAgLTEsMyArMSwyMCBAQAorMjAxMy0wNC0xOSAgTGFtYXJxdWUgVi4gU291emEgIDxMYW1hcnF1
ZS5Tb3V6YUBiYXN5c2tvbS5jb20+CisKKyAgICAgICAgV2ViU29ja2V0OiBSZXR1cm4gdHlwZSBv
ZiBzZW5kKCkgc2hvdWxkIGJlIHZvaWQgaWYgaHliaS0xMCBwcm90b2NvbCBpcyBjaG9zZW4KKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTY1ODUwCisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVXBkYXRlIHRlc3Rz
IGFuZCB0ZXN0IHJlc3VsdHMgYmVjYXVzZSBXZWJTb2NrZXQuc2VuZCgpIG5vdyByZXR1cm5zIHVu
ZGVmaW5lZCB3aGVuCisgICAgICAgIHRoZSBoeWJpIFdlYlNvY2tldCBwcm90b2NvbCBpcyB1c2Vk
LgorCisgICAgICAgICogaHR0cC90ZXN0cy93ZWJzb2NrZXQvdGVzdHMvaHliaS9idWZmZXJlZEFt
b3VudC1hZnRlci1jbG9zZS1leHBlY3RlZC50eHQ6CisgICAgICAgICogaHR0cC90ZXN0cy93ZWJz
b2NrZXQvdGVzdHMvaHliaS9idWZmZXJlZEFtb3VudC1hZnRlci1jbG9zZS1pbi1idXN5LWV4cGVj
dGVkLnR4dDoKKyAgICAgICAgKiBodHRwL3Rlc3RzL3dlYnNvY2tldC90ZXN0cy9oeWJpL2J1ZmZl
cmVkQW1vdW50LWFmdGVyLWNsb3NlLWluLWJ1c3kuaHRtbDoKKyAgICAgICAgKiBodHRwL3Rlc3Rz
L3dlYnNvY2tldC90ZXN0cy9oeWJpL2J1ZmZlcmVkQW1vdW50LWFmdGVyLWNsb3NlLmh0bWw6Cisg
ICAgICAgICogaHR0cC90ZXN0cy93ZWJzb2NrZXQvdGVzdHMvaHliaS9zZW5kLWFmdGVyLWNsb3Nl
LW9uLXVubG9hZC1leHBlY3RlZC50eHQ6CisgICAgICAgICogaHR0cC90ZXN0cy93ZWJzb2NrZXQv
dGVzdHMvaHliaS9zZW5kLWFmdGVyLWNsb3NlLW9uLXVubG9hZC5odG1sOgorCiAyMDEzLTA0LTE4
ICBUaW1vdGh5IEhhdGNoZXIgIDx0aW1vdGh5QGFwcGxlLmNvbT4KIAogICAgICAgICBBZGQgQ1NT
LnNldFN0eWxlVGV4dCB0byB0aGUgV2ViIEluc3BlY3RvciBwcm90b2NvbC4KZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd2Vic29ja2V0L3Rlc3RzL2h5YmkvYnVmZmVyZWRBbW91
bnQtYWZ0ZXItY2xvc2UtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJz
b2NrZXQvdGVzdHMvaHliaS9idWZmZXJlZEFtb3VudC1hZnRlci1jbG9zZS1leHBlY3RlZC50eHQK
aW5kZXggMDQ0ZmUwZjliNGU4NWM3YjM2OWRhMzEzZTVjMzc1YzI3ZDZjMzVlMS4uYWYwZTg3NzNl
OGNjNDI2Mzg4MzI2OThjODM5ZmRlMGY2MmFhMGE5MyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMv
aHR0cC90ZXN0cy93ZWJzb2NrZXQvdGVzdHMvaHliaS9idWZmZXJlZEFtb3VudC1hZnRlci1jbG9z
ZS1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJzb2NrZXQvdGVz
dHMvaHliaS9idWZmZXJlZEFtb3VudC1hZnRlci1jbG9zZS1leHBlY3RlZC50eHQKQEAgLTcsNDUg
KzcsNDUgQEAgQ2xvc2VkLgogUEFTUyB3cy5yZWFkeVN0YXRlIGlzIDMKIFBBU1Mgd3MuYnVmZmVy
ZWRBbW91bnQgaXMgMAogVGVzdGluZyBzZW5kKHN0cmluZykuLi4KLVBBU1Mgd3Muc2VuZChtZXNz
YWdlVG9TZW5kKSBpcyBmYWxzZQorUEFTUyB3cy5zZW5kKG1lc3NhZ2VUb1NlbmQpIGlzIHVuZGVm
aW5lZC4KIFBBU1MgYnVmZmVyZWRBbW91bnREaWZmZXJlbmNlIGlzIDI3Ci1QQVNTIHdzLnNlbmQo
bWVzc2FnZVRvU2VuZCkgaXMgZmFsc2UKK1BBU1Mgd3Muc2VuZChtZXNzYWdlVG9TZW5kKSBpcyB1
bmRlZmluZWQuCiBQQVNTIGJ1ZmZlcmVkQW1vdW50RGlmZmVyZW5jZSBpcyA2Ci1QQVNTIHdzLnNl
bmQobWVzc2FnZVRvU2VuZCkgaXMgZmFsc2UKK1BBU1Mgd3Muc2VuZChtZXNzYWdlVG9TZW5kKSBp
cyB1bmRlZmluZWQuCiBQQVNTIGJ1ZmZlcmVkQW1vdW50RGlmZmVyZW5jZSBpcyA3Ci1QQVNTIHdz
LnNlbmQobWVzc2FnZVRvU2VuZCkgaXMgZmFsc2UKK1BBU1Mgd3Muc2VuZChtZXNzYWdlVG9TZW5k
KSBpcyB1bmRlZmluZWQuCiBQQVNTIGJ1ZmZlcmVkQW1vdW50RGlmZmVyZW5jZSBpcyAxMzEKLVBB
U1Mgd3Muc2VuZChtZXNzYWdlVG9TZW5kKSBpcyBmYWxzZQorUEFTUyB3cy5zZW5kKG1lc3NhZ2VU
b1NlbmQpIGlzIHVuZGVmaW5lZC4KIFBBU1MgYnVmZmVyZWRBbW91bnREaWZmZXJlbmNlIGlzIDEz
NAotUEFTUyB3cy5zZW5kKG1lc3NhZ2VUb1NlbmQpIGlzIGZhbHNlCitQQVNTIHdzLnNlbmQobWVz
c2FnZVRvU2VuZCkgaXMgdW5kZWZpbmVkLgogUEFTUyBidWZmZXJlZEFtb3VudERpZmZlcmVuY2Ug
aXMgNjU1NDMKLVBBU1Mgd3Muc2VuZChtZXNzYWdlVG9TZW5kKSBpcyBmYWxzZQorUEFTUyB3cy5z
ZW5kKG1lc3NhZ2VUb1NlbmQpIGlzIHVuZGVmaW5lZC4KIFBBU1MgYnVmZmVyZWRBbW91bnREaWZm
ZXJlbmNlIGlzIDY1NTUwCiBUZXN0aW5nIHNlbmQoQXJyYXlCdWZmZXIpLi4uCi1QQVNTIHdzLnNl
bmQobWVzc2FnZVRvU2VuZCkgaXMgZmFsc2UKK1BBU1Mgd3Muc2VuZChtZXNzYWdlVG9TZW5kKSBp
cyB1bmRlZmluZWQuCiBQQVNTIGJ1ZmZlcmVkQW1vdW50RGlmZmVyZW5jZSBpcyA2Ci1QQVNTIHdz
LnNlbmQobWVzc2FnZVRvU2VuZCkgaXMgZmFsc2UKK1BBU1Mgd3Muc2VuZChtZXNzYWdlVG9TZW5k
KSBpcyB1bmRlZmluZWQuCiBQQVNTIGJ1ZmZlcmVkQW1vdW50RGlmZmVyZW5jZSBpcyA3Ci1QQVNT
IHdzLnNlbmQobWVzc2FnZVRvU2VuZCkgaXMgZmFsc2UKK1BBU1Mgd3Muc2VuZChtZXNzYWdlVG9T
ZW5kKSBpcyB1bmRlZmluZWQuCiBQQVNTIGJ1ZmZlcmVkQW1vdW50RGlmZmVyZW5jZSBpcyAxMzEK
LVBBU1Mgd3Muc2VuZChtZXNzYWdlVG9TZW5kKSBpcyBmYWxzZQorUEFTUyB3cy5zZW5kKG1lc3Nh
Z2VUb1NlbmQpIGlzIHVuZGVmaW5lZC4KIFBBU1MgYnVmZmVyZWRBbW91bnREaWZmZXJlbmNlIGlz
IDEzNAotUEFTUyB3cy5zZW5kKG1lc3NhZ2VUb1NlbmQpIGlzIGZhbHNlCitQQVNTIHdzLnNlbmQo
bWVzc2FnZVRvU2VuZCkgaXMgdW5kZWZpbmVkLgogUEFTUyBidWZmZXJlZEFtb3VudERpZmZlcmVu
Y2UgaXMgNjU1NDMKLVBBU1Mgd3Muc2VuZChtZXNzYWdlVG9TZW5kKSBpcyBmYWxzZQorUEFTUyB3
cy5zZW5kKG1lc3NhZ2VUb1NlbmQpIGlzIHVuZGVmaW5lZC4KIFBBU1MgYnVmZmVyZWRBbW91bnRE
aWZmZXJlbmNlIGlzIDY1NTUwCiBUZXN0aW5nIHNlbmQoQmxvYikuLi4KLVBBU1Mgd3Muc2VuZCht
ZXNzYWdlVG9TZW5kKSBpcyBmYWxzZQorUEFTUyB3cy5zZW5kKG1lc3NhZ2VUb1NlbmQpIGlzIHVu
ZGVmaW5lZC4KIFBBU1MgYnVmZmVyZWRBbW91bnREaWZmZXJlbmNlIGlzIDYKLVBBU1Mgd3Muc2Vu
ZChtZXNzYWdlVG9TZW5kKSBpcyBmYWxzZQorUEFTUyB3cy5zZW5kKG1lc3NhZ2VUb1NlbmQpIGlz
IHVuZGVmaW5lZC4KIFBBU1MgYnVmZmVyZWRBbW91bnREaWZmZXJlbmNlIGlzIDcKLVBBU1Mgd3Mu
c2VuZChtZXNzYWdlVG9TZW5kKSBpcyBmYWxzZQorUEFTUyB3cy5zZW5kKG1lc3NhZ2VUb1NlbmQp
IGlzIHVuZGVmaW5lZC4KIFBBU1MgYnVmZmVyZWRBbW91bnREaWZmZXJlbmNlIGlzIDEzMQotUEFT
UyB3cy5zZW5kKG1lc3NhZ2VUb1NlbmQpIGlzIGZhbHNlCitQQVNTIHdzLnNlbmQobWVzc2FnZVRv
U2VuZCkgaXMgdW5kZWZpbmVkLgogUEFTUyBidWZmZXJlZEFtb3VudERpZmZlcmVuY2UgaXMgMTM0
Ci1QQVNTIHdzLnNlbmQobWVzc2FnZVRvU2VuZCkgaXMgZmFsc2UKK1BBU1Mgd3Muc2VuZChtZXNz
YWdlVG9TZW5kKSBpcyB1bmRlZmluZWQuCiBQQVNTIGJ1ZmZlcmVkQW1vdW50RGlmZmVyZW5jZSBp
cyA2NTU0MwotUEFTUyB3cy5zZW5kKG1lc3NhZ2VUb1NlbmQpIGlzIGZhbHNlCitQQVNTIHdzLnNl
bmQobWVzc2FnZVRvU2VuZCkgaXMgdW5kZWZpbmVkLgogUEFTUyBidWZmZXJlZEFtb3VudERpZmZl
cmVuY2UgaXMgNjU1NTAKIFBBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKIApkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJzb2NrZXQvdGVzdHMvaHliaS9idWZmZXJl
ZEFtb3VudC1hZnRlci1jbG9zZS1pbi1idXN5LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0
dHAvdGVzdHMvd2Vic29ja2V0L3Rlc3RzL2h5YmkvYnVmZmVyZWRBbW91bnQtYWZ0ZXItY2xvc2Ut
aW4tYnVzeS1leHBlY3RlZC50eHQKaW5kZXggYzU0NzgwYzcwZmI0OGMzYjJkZTBhNjIwMzhmMTQ4
ODA2ZTIxOGU0Ny4uMzU3Mjc3NzE2OTBkODlhNTEyNmY4MjhlNzNhN2MzZDZmMGEzMDliNyAxMDA2
NDQKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJzb2NrZXQvdGVzdHMvaHliaS9idWZm
ZXJlZEFtb3VudC1hZnRlci1jbG9zZS1pbi1idXN5LWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRU
ZXN0cy9odHRwL3Rlc3RzL3dlYnNvY2tldC90ZXN0cy9oeWJpL2J1ZmZlcmVkQW1vdW50LWFmdGVy
LWNsb3NlLWluLWJ1c3ktZXhwZWN0ZWQudHh0CkBAIC04LDQ1ICs4LDQ1IEBAIENsb3NlZC4KIFBB
U1Mgd3MucmVhZHlTdGF0ZSBpcyAzCiBQQVNTIHdzLmJ1ZmZlcmVkQW1vdW50IDw9IGJ1ZmZlcmVk
QW1vdW50QWZ0ZXJDbG9zZSBpcyB0cnVlCiBUZXN0aW5nIHNlbmQoc3RyaW5nKS4uLgotUEFTUyB3
cy5zZW5kKG1lc3NhZ2VUb1NlbmQpIGlzIGZhbHNlCitQQVNTIHdzLnNlbmQobWVzc2FnZVRvU2Vu
ZCkgaXMgdW5kZWZpbmVkLgogUEFTUyBidWZmZXJlZEFtb3VudERpZmZlcmVuY2UgaXMgMjcKLVBB
U1Mgd3Muc2VuZChtZXNzYWdlVG9TZW5kKSBpcyBmYWxzZQorUEFTUyB3cy5zZW5kKG1lc3NhZ2VU
b1NlbmQpIGlzIHVuZGVmaW5lZC4KIFBBU1MgYnVmZmVyZWRBbW91bnREaWZmZXJlbmNlIGlzIDYK
LVBBU1Mgd3Muc2VuZChtZXNzYWdlVG9TZW5kKSBpcyBmYWxzZQorUEFTUyB3cy5zZW5kKG1lc3Nh
Z2VUb1NlbmQpIGlzIHVuZGVmaW5lZC4KIFBBU1MgYnVmZmVyZWRBbW91bnREaWZmZXJlbmNlIGlz
IDcKLVBBU1Mgd3Muc2VuZChtZXNzYWdlVG9TZW5kKSBpcyBmYWxzZQorUEFTUyB3cy5zZW5kKG1l
c3NhZ2VUb1NlbmQpIGlzIHVuZGVmaW5lZC4KIFBBU1MgYnVmZmVyZWRBbW91bnREaWZmZXJlbmNl
IGlzIDEzMQotUEFTUyB3cy5zZW5kKG1lc3NhZ2VUb1NlbmQpIGlzIGZhbHNlCitQQVNTIHdzLnNl
bmQobWVzc2FnZVRvU2VuZCkgaXMgdW5kZWZpbmVkLgogUEFTUyBidWZmZXJlZEFtb3VudERpZmZl
cmVuY2UgaXMgMTM0Ci1QQVNTIHdzLnNlbmQobWVzc2FnZVRvU2VuZCkgaXMgZmFsc2UKK1BBU1Mg
d3Muc2VuZChtZXNzYWdlVG9TZW5kKSBpcyB1bmRlZmluZWQuCiBQQVNTIGJ1ZmZlcmVkQW1vdW50
RGlmZmVyZW5jZSBpcyA2NTU0MwotUEFTUyB3cy5zZW5kKG1lc3NhZ2VUb1NlbmQpIGlzIGZhbHNl
CitQQVNTIHdzLnNlbmQobWVzc2FnZVRvU2VuZCkgaXMgdW5kZWZpbmVkLgogUEFTUyBidWZmZXJl
ZEFtb3VudERpZmZlcmVuY2UgaXMgNjU1NTAKIFRlc3Rpbmcgc2VuZChBcnJheUJ1ZmZlcikuLi4K
LVBBU1Mgd3Muc2VuZChtZXNzYWdlVG9TZW5kKSBpcyBmYWxzZQorUEFTUyB3cy5zZW5kKG1lc3Nh
Z2VUb1NlbmQpIGlzIHVuZGVmaW5lZC4KIFBBU1MgYnVmZmVyZWRBbW91bnREaWZmZXJlbmNlIGlz
IDYKLVBBU1Mgd3Muc2VuZChtZXNzYWdlVG9TZW5kKSBpcyBmYWxzZQorUEFTUyB3cy5zZW5kKG1l
c3NhZ2VUb1NlbmQpIGlzIHVuZGVmaW5lZC4KIFBBU1MgYnVmZmVyZWRBbW91bnREaWZmZXJlbmNl
IGlzIDcKLVBBU1Mgd3Muc2VuZChtZXNzYWdlVG9TZW5kKSBpcyBmYWxzZQorUEFTUyB3cy5zZW5k
KG1lc3NhZ2VUb1NlbmQpIGlzIHVuZGVmaW5lZC4KIFBBU1MgYnVmZmVyZWRBbW91bnREaWZmZXJl
bmNlIGlzIDEzMQotUEFTUyB3cy5zZW5kKG1lc3NhZ2VUb1NlbmQpIGlzIGZhbHNlCitQQVNTIHdz
LnNlbmQobWVzc2FnZVRvU2VuZCkgaXMgdW5kZWZpbmVkLgogUEFTUyBidWZmZXJlZEFtb3VudERp
ZmZlcmVuY2UgaXMgMTM0Ci1QQVNTIHdzLnNlbmQobWVzc2FnZVRvU2VuZCkgaXMgZmFsc2UKK1BB
U1Mgd3Muc2VuZChtZXNzYWdlVG9TZW5kKSBpcyB1bmRlZmluZWQuCiBQQVNTIGJ1ZmZlcmVkQW1v
dW50RGlmZmVyZW5jZSBpcyA2NTU0MwotUEFTUyB3cy5zZW5kKG1lc3NhZ2VUb1NlbmQpIGlzIGZh
bHNlCitQQVNTIHdzLnNlbmQobWVzc2FnZVRvU2VuZCkgaXMgdW5kZWZpbmVkLgogUEFTUyBidWZm
ZXJlZEFtb3VudERpZmZlcmVuY2UgaXMgNjU1NTAKIFRlc3Rpbmcgc2VuZChCbG9iKS4uLgotUEFT
UyB3cy5zZW5kKG1lc3NhZ2VUb1NlbmQpIGlzIGZhbHNlCitQQVNTIHdzLnNlbmQobWVzc2FnZVRv
U2VuZCkgaXMgdW5kZWZpbmVkLgogUEFTUyBidWZmZXJlZEFtb3VudERpZmZlcmVuY2UgaXMgNgot
UEFTUyB3cy5zZW5kKG1lc3NhZ2VUb1NlbmQpIGlzIGZhbHNlCitQQVNTIHdzLnNlbmQobWVzc2Fn
ZVRvU2VuZCkgaXMgdW5kZWZpbmVkLgogUEFTUyBidWZmZXJlZEFtb3VudERpZmZlcmVuY2UgaXMg
NwotUEFTUyB3cy5zZW5kKG1lc3NhZ2VUb1NlbmQpIGlzIGZhbHNlCitQQVNTIHdzLnNlbmQobWVz
c2FnZVRvU2VuZCkgaXMgdW5kZWZpbmVkLgogUEFTUyBidWZmZXJlZEFtb3VudERpZmZlcmVuY2Ug
aXMgMTMxCi1QQVNTIHdzLnNlbmQobWVzc2FnZVRvU2VuZCkgaXMgZmFsc2UKK1BBU1Mgd3Muc2Vu
ZChtZXNzYWdlVG9TZW5kKSBpcyB1bmRlZmluZWQuCiBQQVNTIGJ1ZmZlcmVkQW1vdW50RGlmZmVy
ZW5jZSBpcyAxMzQKLVBBU1Mgd3Muc2VuZChtZXNzYWdlVG9TZW5kKSBpcyBmYWxzZQorUEFTUyB3
cy5zZW5kKG1lc3NhZ2VUb1NlbmQpIGlzIHVuZGVmaW5lZC4KIFBBU1MgYnVmZmVyZWRBbW91bnRE
aWZmZXJlbmNlIGlzIDY1NTQzCi1QQVNTIHdzLnNlbmQobWVzc2FnZVRvU2VuZCkgaXMgZmFsc2UK
K1BBU1Mgd3Muc2VuZChtZXNzYWdlVG9TZW5kKSBpcyB1bmRlZmluZWQuCiBQQVNTIGJ1ZmZlcmVk
QW1vdW50RGlmZmVyZW5jZSBpcyA2NTU1MAogUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1
ZQogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dlYnNvY2tldC90ZXN0cy9o
eWJpL2J1ZmZlcmVkQW1vdW50LWFmdGVyLWNsb3NlLWluLWJ1c3kuaHRtbCBiL0xheW91dFRlc3Rz
L2h0dHAvdGVzdHMvd2Vic29ja2V0L3Rlc3RzL2h5YmkvYnVmZmVyZWRBbW91bnQtYWZ0ZXItY2xv
c2UtaW4tYnVzeS5odG1sCmluZGV4IGQ1Zjc2MjJhNmYyNWUwYmNiOTdjYjU2NDFjYjU4MDI0ZDky
ZTYzNzkuLmUxMTMxNWY2YTQ2NDA1MGZmMzFkYThmYjk1OWYxMGM4OTFhY2Q1N2EgMTAwNjQ0Ci0t
LSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd2Vic29ja2V0L3Rlc3RzL2h5YmkvYnVmZmVyZWRB
bW91bnQtYWZ0ZXItY2xvc2UtaW4tYnVzeS5odG1sCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVz
dHMvd2Vic29ja2V0L3Rlc3RzL2h5YmkvYnVmZmVyZWRBbW91bnQtYWZ0ZXItY2xvc2UtaW4tYnVz
eS5odG1sCkBAIC05Niw3ICs5Niw3IEBAIGZ1bmN0aW9uIHRlc3RCdWZmZXJlZEFtb3VudChtZXNz
YWdlLCBleHBlY3RlZEJ1ZmZlcmVkQW1vdW50RGlmZmVyZW5jZSkKICAgICAvLyAodGhlIG51bWJl
ciBkb2VzIG5vdCByZXNldCB0byB6ZXJvIG9uY2UgdGhlIGNvbm5lY3Rpb24gY2xvc2VzKS4KICAg
ICBtZXNzYWdlVG9TZW5kID0gbWVzc2FnZTsKICAgICB2YXIgYnVmZmVyZWRBbW91bnRCZWZvcmVT
ZW5kID0gd3MuYnVmZmVyZWRBbW91bnQ7Ci0gICAgc2hvdWxkQmVGYWxzZSgid3Muc2VuZChtZXNz
YWdlVG9TZW5kKSIpOworICAgIHNob3VsZEJlVW5kZWZpbmVkKCJ3cy5zZW5kKG1lc3NhZ2VUb1Nl
bmQpIik7CiAgICAgdmFyIGJ1ZmZlcmVkQW1vdW50QWZ0ZXJTZW5kID0gd3MuYnVmZmVyZWRBbW91
bnQ7CiAgICAgYnVmZmVyZWRBbW91bnREaWZmZXJlbmNlID0gYnVmZmVyZWRBbW91bnRBZnRlclNl
bmQgLSBidWZmZXJlZEFtb3VudEJlZm9yZVNlbmQ7CiAgICAgc2hvdWxkRXZhbHVhdGVUbygiYnVm
ZmVyZWRBbW91bnREaWZmZXJlbmNlIiwgZXhwZWN0ZWRCdWZmZXJlZEFtb3VudERpZmZlcmVuY2Up
OwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJzb2NrZXQvdGVzdHMvaHli
aS9idWZmZXJlZEFtb3VudC1hZnRlci1jbG9zZS5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0
cy93ZWJzb2NrZXQvdGVzdHMvaHliaS9idWZmZXJlZEFtb3VudC1hZnRlci1jbG9zZS5odG1sCmlu
ZGV4IGU1N2E0Y2EwOTBmN2YyZjkzZWZkZjQ2OWM2ZDgyZTJiOTYyNTNhYzEuLjNjODg1ODU1MDdi
NzUxMWEzMjhkNmQ3YzBkNTZhY2ViNzAxYzAyZTkgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2h0
dHAvdGVzdHMvd2Vic29ja2V0L3Rlc3RzL2h5YmkvYnVmZmVyZWRBbW91bnQtYWZ0ZXItY2xvc2Uu
aHRtbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dlYnNvY2tldC90ZXN0cy9oeWJpL2J1
ZmZlcmVkQW1vdW50LWFmdGVyLWNsb3NlLmh0bWwKQEAgLTc3LDcgKzc3LDcgQEAgZnVuY3Rpb24g
dGVzdEJ1ZmZlcmVkQW1vdW50KG1lc3NhZ2UsIGV4cGVjdGVkQnVmZmVyZWRBbW91bnREaWZmZXJl
bmNlKQogICAgIC8vICh0aGUgbnVtYmVyIGRvZXMgbm90IHJlc2V0IHRvIHplcm8gb25jZSB0aGUg
Y29ubmVjdGlvbiBjbG9zZXMpLgogICAgIG1lc3NhZ2VUb1NlbmQgPSBtZXNzYWdlOwogICAgIHZh
ciBidWZmZXJlZEFtb3VudEJlZm9yZVNlbmQgPSB3cy5idWZmZXJlZEFtb3VudDsKLSAgICBzaG91
bGRCZUZhbHNlKCJ3cy5zZW5kKG1lc3NhZ2VUb1NlbmQpIik7CisgICAgc2hvdWxkQmVVbmRlZmlu
ZWQoIndzLnNlbmQobWVzc2FnZVRvU2VuZCkiKTsKICAgICB2YXIgYnVmZmVyZWRBbW91bnRBZnRl
clNlbmQgPSB3cy5idWZmZXJlZEFtb3VudDsKICAgICBidWZmZXJlZEFtb3VudERpZmZlcmVuY2Ug
PSBidWZmZXJlZEFtb3VudEFmdGVyU2VuZCAtIGJ1ZmZlcmVkQW1vdW50QmVmb3JlU2VuZDsKICAg
ICBzaG91bGRFdmFsdWF0ZVRvKCJidWZmZXJlZEFtb3VudERpZmZlcmVuY2UiLCBleHBlY3RlZEJ1
ZmZlcmVkQW1vdW50RGlmZmVyZW5jZSk7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rl
c3RzL3dlYnNvY2tldC90ZXN0cy9oeWJpL3NlbmQtYWZ0ZXItY2xvc2Utb24tdW5sb2FkLWV4cGVj
dGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd2Vic29ja2V0L3Rlc3RzL2h5Ymkvc2Vu
ZC1hZnRlci1jbG9zZS1vbi11bmxvYWQtZXhwZWN0ZWQudHh0CmluZGV4IGNmZjQ4YjFlMjUxOTdk
NWM3ZGNlMWU2Y2YzYjgwMTlkN2ZhNDVjMzIuLjYyMzU4NjQ5Mjg4YzlmZTc2NDExNTBjMjgxYzVj
NzNlZDI4YmU0YWEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd2Vic29ja2V0
L3Rlc3RzL2h5Ymkvc2VuZC1hZnRlci1jbG9zZS1vbi11bmxvYWQtZXhwZWN0ZWQudHh0CisrKyBi
L0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd2Vic29ja2V0L3Rlc3RzL2h5Ymkvc2VuZC1hZnRlci1j
bG9zZS1vbi11bmxvYWQtZXhwZWN0ZWQudHh0CkBAIC02LDcgKzYsNyBAQCBQQVNTIHdzIG9uIG1h
c3RlciBkb2N1bWVudCBpcyByZWFkeS4KIFBBU1MgaW5zZXJ0IGEgaWZyYW1lLCB3aGVyZSBvcGVu
IHdzIGNhbGxlZCAnc29ja2V0MScKIFBBU1MgZG9jdW1lbnQuY2hpbGRXZWJTb2NrZXQgaXMgbm9u
LW51bGwuCiBQQVNTICdzb2NrZXQxJyBpcyBzZW50IHRvIHRoZSBzZXJ2ZXIuIHVubG9hZCB0aGUg
aWZyYW1lLiBleHBlY3QgcmVjZWl2aW5nICdzb2NrZXQxJyBvbiB3cy4uLgotUEFTUyBkb2N1bWVu
dC5jaGlsZFdlYlNvY2tldC5zZW5kKCdzZW5kIHRvIGNsb3NlZCBzb2NrZXQnKSBpcyBmYWxzZQor
UEFTUyBkb2N1bWVudC5jaGlsZFdlYlNvY2tldC5zZW5kKCdzZW5kIHRvIGNsb3NlZCBzb2NrZXQn
KSBpcyB1bmRlZmluZWQuCiBQQVNTIGNsb3NlZFNvY2tldCBpcyAic29ja2V0MSIKIFBBU1MgZG9j
dW1lbnQuY2hpbGRXZWJTb2NrZXQucmVhZHlTdGF0ZSBpcyAzCiBQQVNTIHN1Y2Nlc3NmdWxseVBh
cnNlZCBpcyB0cnVlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dlYnNvY2tl
dC90ZXN0cy9oeWJpL3NlbmQtYWZ0ZXItY2xvc2Utb24tdW5sb2FkLmh0bWwgYi9MYXlvdXRUZXN0
cy9odHRwL3Rlc3RzL3dlYnNvY2tldC90ZXN0cy9oeWJpL3NlbmQtYWZ0ZXItY2xvc2Utb24tdW5s
b2FkLmh0bWwKaW5kZXggYTcyNDhkYmJjMWU0ZDNlYWVmNTU2YWQzNTNhMTA0NmRmODQ0Yjc1NS4u
YmIzNjA4NjU4ZjBkODNiMzNmNjFkZmMyZDcxZWIyN2FlY2UxZjUxNSAxMDA2NDQKLS0tIGEvTGF5
b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJzb2NrZXQvdGVzdHMvaHliaS9zZW5kLWFmdGVyLWNsb3Nl
LW9uLXVubG9hZC5odG1sCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd2Vic29ja2V0L3Rl
c3RzL2h5Ymkvc2VuZC1hZnRlci1jbG9zZS1vbi11bmxvYWQuaHRtbApAQCAtNDEsNyArNDEsNyBA
QCBkb2N1bWVudC5pZnJhbWVSZWFkeSA9IGZ1bmN0aW9uKCkKICAgICBzaG91bGRCZU5vbk51bGwo
ImRvY3VtZW50LmNoaWxkV2ViU29ja2V0Iik7CiAgICAgZGVidWcoIlBBU1MgJ3NvY2tldDEnIGlz
IHNlbnQgdG8gdGhlIHNlcnZlci4gdW5sb2FkIHRoZSBpZnJhbWUuIGV4cGVjdCByZWNlaXZpbmcg
J3NvY2tldDEnIG9uIHdzLi4uIik7CiAgICAgZG9jdW1lbnQuYm9keS5yZW1vdmVDaGlsZChmcmFt
ZURpdik7Ci0gICAgc2hvdWxkQmVGYWxzZSgiZG9jdW1lbnQuY2hpbGRXZWJTb2NrZXQuc2VuZCgn
c2VuZCB0byBjbG9zZWQgc29ja2V0JykiKTsKKyAgICBzaG91bGRCZVVuZGVmaW5lZCgiZG9jdW1l
bnQuY2hpbGRXZWJTb2NrZXQuc2VuZCgnc2VuZCB0byBjbG9zZWQgc29ja2V0JykiKTsKIH07CiAK
IDwvc2NyaXB0Pgo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>198907</attachid>
            <date>2013-04-19 12:11:40 -0700</date>
            <delta_ts>2013-04-23 08:52:05 -0700</delta_ts>
            <desc>Patch v3 (rebase)</desc>
            <filename>bug-65850-20130419161108.patch</filename>
            <type>text/plain</type>
            <size>18944</size>
            <attacher name="Lamarque V. Souza">lamarque</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQ4NzIzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYjIzZTAxNjNkMWZhOTYw
NTA4NmM4NTc1MGE1OGE2MDhkMzQ0NjdlMi4uZDRlNTBkMzhjYzIxYjM5YzQyODkzM2IzZTNiNTRl
NWE5Yjc2ZjRjOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI0IEBACisyMDEzLTA0LTE5ICBMYW1h
cnF1ZSBWLiBTb3V6YSAgPExhbWFycXVlLlNvdXphQGJhc3lza29tLmNvbT4KKworICAgICAgICBX
ZWJTb2NrZXQ6IFJldHVybiB0eXBlIG9mIHNlbmQoKSBzaG91bGQgYmUgdm9pZCBpZiBoeWJpLTEw
IHByb3RvY29sIGlzIGNob3NlbgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9NjU4NTAKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICBXZWJTb2NrZXQgQVBJIGRyYWZ0IGNoYW5nZWQgdGhlIHJldHVybiB0eXBlIG9m
IHNlbmQoKSBmcm9tIGJvb2xlYW4gdG8gdm9pZCBiYXNlZCBvbiBTaW1vbgorICAgICAgICBQaWV0
ZXJzJyBwb3N0IHRvIFdIQVRXRy4gRmlyZWZveCA4IGFuZCBJRSAxMCBhbHJlYWR5IGZvbGxvdyB0
aGUgc3BlY2lmaWNhdGlvbiwgaGVuY2UgaXQgc2hvdWxkCisgICAgICAgIG1ha2Ugc2Vuc2UgZm9y
IHVzIHRvIGRvIHRoZSBzYW1lIHdoZW4gaHliaSBwcm90b2NvbCBpcyB1c2VkLgorCisgICAgICAg
IE9yaWdpbmFsIHBhdGNoIGJ5IFl1dGEgS2l0YW11cmEgIDx5dXRha0BjaHJvbWl1bS5vcmc+CisK
KyAgICAgICAgVGVzdHM6IGh0dHAvdGVzdHMvd2Vic29ja2V0L3Rlc3RzL2h5YmkvYnVmZmVyZWRB
bW91bnQtYWZ0ZXItY2xvc2UuaHRtbCAodXBkYXRlZCkKKyAgICAgICAgICAgICAgIGh0dHAvdGVz
dHMvd2Vic29ja2V0L3Rlc3RzL2h5Ymkvc2VuZC1hZnRlci1jbG9zZS1vbi11bmxvYWQuaHRtbCAo
dXBkYXRlZCkKKworICAgICAgICAqIE1vZHVsZXMvd2Vic29ja2V0cy9XZWJTb2NrZXQuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6V2ViU29ja2V0OjpzZW5kKToKKyAgICAgICAgKiBNb2R1bGVzL3dl
YnNvY2tldHMvV2ViU29ja2V0Lmg6CisgICAgICAgICogTW9kdWxlcy93ZWJzb2NrZXRzL1dlYlNv
Y2tldC5pZGw6CisKIDIwMTMtMDQtMTggIFRpbW90aHkgSGF0Y2hlciAgPHRpbW90aHlAYXBwbGUu
Y29tPgogCiAgICAgICAgIEFkZCBDU1Muc2V0U3R5bGVUZXh0IHRvIHRoZSBXZWIgSW5zcGVjdG9y
IHByb3RvY29sLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJzb2NrZXRz
L1dlYlNvY2tldC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnNvY2tldHMvV2ViU29j
a2V0LmNwcAppbmRleCAzZTBlODkxMzMyMjA1ODAyYWYwZWEzMjU4NmQ3MTM5OWRjM2NjZTgwLi40
MTI4OTJmNTk1NmQ3Y2EyZDNjMDg0OGJiYzY4M2JiN2ZjNzAxYmVmIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnNvY2tldHMvV2ViU29ja2V0LmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL3dlYnNvY2tldHMvV2ViU29ja2V0LmNwcApAQCAtMjkxLDgzICsyOTEs
ODIgQEAgdm9pZCBXZWJTb2NrZXQ6OmNvbm5lY3QoY29uc3QgU3RyaW5nJiB1cmwsIGNvbnN0IFZl
Y3RvcjxTdHJpbmc+JiBwcm90b2NvbHMsIEV4Y2UKICAgICBBY3RpdmVET01PYmplY3Q6OnNldFBl
bmRpbmdBY3Rpdml0eSh0aGlzKTsKIH0KIAotYm9vbCBXZWJTb2NrZXQ6OnNlbmQoY29uc3QgU3Ry
aW5nJiBtZXNzYWdlLCBFeGNlcHRpb25Db2RlJiBlYykKK3ZvaWQgV2ViU29ja2V0OjpzZW5kKGNv
bnN0IFN0cmluZyYgbWVzc2FnZSwgRXhjZXB0aW9uQ29kZSYgZWMpCiB7CiAgICAgTE9HKE5ldHdv
cmssICJXZWJTb2NrZXQgJXAgc2VuZCgpIFNlbmRpbmcgU3RyaW5nICclcyciLCB0aGlzLCBtZXNz
YWdlLnV0ZjgoKS5kYXRhKCkpOwogICAgIGlmIChtX3N0YXRlID09IENPTk5FQ1RJTkcpIHsKICAg
ICAgICAgZWMgPSBJTlZBTElEX1NUQVRFX0VSUjsKLSAgICAgICAgcmV0dXJuIGZhbHNlOworICAg
ICAgICByZXR1cm47CiAgICAgfQogICAgIC8vIE5vIGV4Y2VwdGlvbiBpcyByYWlzZWQgaWYgdGhl
IGNvbm5lY3Rpb24gd2FzIG9uY2UgZXN0YWJsaXNoZWQgYnV0IGhhcyBzdWJzZXF1ZW50bHkgYmVl
biBjbG9zZWQuCiAgICAgaWYgKG1fc3RhdGUgPT0gQ0xPU0lORyB8fCBtX3N0YXRlID09IENMT1NF
RCkgewogICAgICAgICBzaXplX3QgcGF5bG9hZFNpemUgPSBtZXNzYWdlLnV0ZjgoKS5sZW5ndGgo
KTsKICAgICAgICAgbV9idWZmZXJlZEFtb3VudEFmdGVyQ2xvc2UgPSBzYXR1cmF0ZUFkZChtX2J1
ZmZlcmVkQW1vdW50QWZ0ZXJDbG9zZSwgcGF5bG9hZFNpemUpOwogICAgICAgICBtX2J1ZmZlcmVk
QW1vdW50QWZ0ZXJDbG9zZSA9IHNhdHVyYXRlQWRkKG1fYnVmZmVyZWRBbW91bnRBZnRlckNsb3Nl
LCBnZXRGcmFtaW5nT3ZlcmhlYWQocGF5bG9hZFNpemUpKTsKLSAgICAgICAgcmV0dXJuIGZhbHNl
OworICAgICAgICByZXR1cm47CiAgICAgfQogICAgIEFTU0VSVChtX2NoYW5uZWwpOwogICAgIFRo
cmVhZGFibGVXZWJTb2NrZXRDaGFubmVsOjpTZW5kUmVzdWx0IHJlc3VsdCA9IG1fY2hhbm5lbC0+
c2VuZChtZXNzYWdlKTsKICAgICBpZiAocmVzdWx0ID09IFRocmVhZGFibGVXZWJTb2NrZXRDaGFu
bmVsOjpJbnZhbGlkTWVzc2FnZSkgewogICAgICAgICBzY3JpcHRFeGVjdXRpb25Db250ZXh0KCkt
PmFkZENvbnNvbGVNZXNzYWdlKEpTTWVzc2FnZVNvdXJjZSwgRXJyb3JNZXNzYWdlTGV2ZWwsICJX
ZWJzb2NrZXQgbWVzc2FnZSBjb250YWlucyBpbnZhbGlkIGNoYXJhY3RlcihzKS4iKTsKICAgICAg
ICAgZWMgPSBTWU5UQVhfRVJSOwotICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIHJldHVy
bjsKICAgICB9Ci0gICAgcmV0dXJuIHJlc3VsdCA9PSBUaHJlYWRhYmxlV2ViU29ja2V0Q2hhbm5l
bDo6U2VuZFN1Y2Nlc3M7CiB9CiAKLWJvb2wgV2ViU29ja2V0OjpzZW5kKEFycmF5QnVmZmVyKiBi
aW5hcnlEYXRhLCBFeGNlcHRpb25Db2RlJiBlYykKK3ZvaWQgV2ViU29ja2V0OjpzZW5kKEFycmF5
QnVmZmVyKiBiaW5hcnlEYXRhLCBFeGNlcHRpb25Db2RlJiBlYykKIHsKICAgICBMT0coTmV0d29y
aywgIldlYlNvY2tldCAlcCBzZW5kKCkgU2VuZGluZyBBcnJheUJ1ZmZlciAlcCIsIHRoaXMsIGJp
bmFyeURhdGEpOwogICAgIEFTU0VSVChiaW5hcnlEYXRhKTsKICAgICBpZiAobV9zdGF0ZSA9PSBD
T05ORUNUSU5HKSB7CiAgICAgICAgIGVjID0gSU5WQUxJRF9TVEFURV9FUlI7Ci0gICAgICAgIHJl
dHVybiBmYWxzZTsKKyAgICAgICAgcmV0dXJuOwogICAgIH0KICAgICBpZiAobV9zdGF0ZSA9PSBD
TE9TSU5HIHx8IG1fc3RhdGUgPT0gQ0xPU0VEKSB7CiAgICAgICAgIHVuc2lnbmVkIHBheWxvYWRT
aXplID0gYmluYXJ5RGF0YS0+Ynl0ZUxlbmd0aCgpOwogICAgICAgICBtX2J1ZmZlcmVkQW1vdW50
QWZ0ZXJDbG9zZSA9IHNhdHVyYXRlQWRkKG1fYnVmZmVyZWRBbW91bnRBZnRlckNsb3NlLCBwYXls
b2FkU2l6ZSk7CiAgICAgICAgIG1fYnVmZmVyZWRBbW91bnRBZnRlckNsb3NlID0gc2F0dXJhdGVB
ZGQobV9idWZmZXJlZEFtb3VudEFmdGVyQ2xvc2UsIGdldEZyYW1pbmdPdmVyaGVhZChwYXlsb2Fk
U2l6ZSkpOwotICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIHJldHVybjsKICAgICB9CiAg
ICAgQVNTRVJUKG1fY2hhbm5lbCk7Ci0gICAgcmV0dXJuIG1fY2hhbm5lbC0+c2VuZCgqYmluYXJ5
RGF0YSwgMCwgYmluYXJ5RGF0YS0+Ynl0ZUxlbmd0aCgpKSA9PSBUaHJlYWRhYmxlV2ViU29ja2V0
Q2hhbm5lbDo6U2VuZFN1Y2Nlc3M7CisgICAgbV9jaGFubmVsLT5zZW5kKCpiaW5hcnlEYXRhLCAw
LCBiaW5hcnlEYXRhLT5ieXRlTGVuZ3RoKCkpOwogfQogCi1ib29sIFdlYlNvY2tldDo6c2VuZChB
cnJheUJ1ZmZlclZpZXcqIGFycmF5QnVmZmVyVmlldywgRXhjZXB0aW9uQ29kZSYgZWMpCit2b2lk
IFdlYlNvY2tldDo6c2VuZChBcnJheUJ1ZmZlclZpZXcqIGFycmF5QnVmZmVyVmlldywgRXhjZXB0
aW9uQ29kZSYgZWMpCiB7CiAgICAgTE9HKE5ldHdvcmssICJXZWJTb2NrZXQgJXAgc2VuZCgpIFNl
bmRpbmcgQXJyYXlCdWZmZXJWaWV3ICVwIiwgdGhpcywgYXJyYXlCdWZmZXJWaWV3KTsKICAgICBB
U1NFUlQoYXJyYXlCdWZmZXJWaWV3KTsKICAgICBpZiAobV9zdGF0ZSA9PSBDT05ORUNUSU5HKSB7
CiAgICAgICAgIGVjID0gSU5WQUxJRF9TVEFURV9FUlI7Ci0gICAgICAgIHJldHVybiBmYWxzZTsK
KyAgICAgICAgcmV0dXJuOwogICAgIH0KICAgICBpZiAobV9zdGF0ZSA9PSBDTE9TSU5HIHx8IG1f
c3RhdGUgPT0gQ0xPU0VEKSB7CiAgICAgICAgIHVuc2lnbmVkIHBheWxvYWRTaXplID0gYXJyYXlC
dWZmZXJWaWV3LT5ieXRlTGVuZ3RoKCk7CiAgICAgICAgIG1fYnVmZmVyZWRBbW91bnRBZnRlckNs
b3NlID0gc2F0dXJhdGVBZGQobV9idWZmZXJlZEFtb3VudEFmdGVyQ2xvc2UsIHBheWxvYWRTaXpl
KTsKICAgICAgICAgbV9idWZmZXJlZEFtb3VudEFmdGVyQ2xvc2UgPSBzYXR1cmF0ZUFkZChtX2J1
ZmZlcmVkQW1vdW50QWZ0ZXJDbG9zZSwgZ2V0RnJhbWluZ092ZXJoZWFkKHBheWxvYWRTaXplKSk7
Ci0gICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgcmV0dXJuOwogICAgIH0KICAgICBBU1NF
UlQobV9jaGFubmVsKTsKICAgICBSZWZQdHI8QXJyYXlCdWZmZXI+IGFycmF5QnVmZmVyKGFycmF5
QnVmZmVyVmlldy0+YnVmZmVyKCkpOwotICAgIHJldHVybiBtX2NoYW5uZWwtPnNlbmQoKmFycmF5
QnVmZmVyLCBhcnJheUJ1ZmZlclZpZXctPmJ5dGVPZmZzZXQoKSwgYXJyYXlCdWZmZXJWaWV3LT5i
eXRlTGVuZ3RoKCkpID09IFRocmVhZGFibGVXZWJTb2NrZXRDaGFubmVsOjpTZW5kU3VjY2VzczsK
KyAgICBtX2NoYW5uZWwtPnNlbmQoKmFycmF5QnVmZmVyLCBhcnJheUJ1ZmZlclZpZXctPmJ5dGVP
ZmZzZXQoKSwgYXJyYXlCdWZmZXJWaWV3LT5ieXRlTGVuZ3RoKCkpOwogfQogCi1ib29sIFdlYlNv
Y2tldDo6c2VuZChCbG9iKiBiaW5hcnlEYXRhLCBFeGNlcHRpb25Db2RlJiBlYykKK3ZvaWQgV2Vi
U29ja2V0OjpzZW5kKEJsb2IqIGJpbmFyeURhdGEsIEV4Y2VwdGlvbkNvZGUmIGVjKQogewogICAg
IExPRyhOZXR3b3JrLCAiV2ViU29ja2V0ICVwIHNlbmQoKSBTZW5kaW5nIEJsb2IgJyVzJyIsIHRo
aXMsIGJpbmFyeURhdGEtPnVybCgpLmVsaWRlZFN0cmluZygpLnV0ZjgoKS5kYXRhKCkpOwogICAg
IEFTU0VSVChiaW5hcnlEYXRhKTsKICAgICBpZiAobV9zdGF0ZSA9PSBDT05ORUNUSU5HKSB7CiAg
ICAgICAgIGVjID0gSU5WQUxJRF9TVEFURV9FUlI7Ci0gICAgICAgIHJldHVybiBmYWxzZTsKKyAg
ICAgICAgcmV0dXJuOwogICAgIH0KICAgICBpZiAobV9zdGF0ZSA9PSBDTE9TSU5HIHx8IG1fc3Rh
dGUgPT0gQ0xPU0VEKSB7CiAgICAgICAgIHVuc2lnbmVkIGxvbmcgcGF5bG9hZFNpemUgPSBzdGF0
aWNfY2FzdDx1bnNpZ25lZCBsb25nPihiaW5hcnlEYXRhLT5zaXplKCkpOwogICAgICAgICBtX2J1
ZmZlcmVkQW1vdW50QWZ0ZXJDbG9zZSA9IHNhdHVyYXRlQWRkKG1fYnVmZmVyZWRBbW91bnRBZnRl
ckNsb3NlLCBwYXlsb2FkU2l6ZSk7CiAgICAgICAgIG1fYnVmZmVyZWRBbW91bnRBZnRlckNsb3Nl
ID0gc2F0dXJhdGVBZGQobV9idWZmZXJlZEFtb3VudEFmdGVyQ2xvc2UsIGdldEZyYW1pbmdPdmVy
aGVhZChwYXlsb2FkU2l6ZSkpOwotICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIHJldHVy
bjsKICAgICB9CiAgICAgQVNTRVJUKG1fY2hhbm5lbCk7Ci0gICAgcmV0dXJuIG1fY2hhbm5lbC0+
c2VuZCgqYmluYXJ5RGF0YSkgPT0gVGhyZWFkYWJsZVdlYlNvY2tldENoYW5uZWw6OlNlbmRTdWNj
ZXNzOworICAgIG1fY2hhbm5lbC0+c2VuZCgqYmluYXJ5RGF0YSk7CiB9CiAKIHZvaWQgV2ViU29j
a2V0OjpjbG9zZShpbnQgY29kZSwgY29uc3QgU3RyaW5nJiByZWFzb24sIEV4Y2VwdGlvbkNvZGUm
IGVjKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJzb2NrZXRzL1dlYlNv
Y2tldC5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJzb2NrZXRzL1dlYlNvY2tldC5oCmlu
ZGV4IDJiYWU1MzliMWI1MTI1M2E0YjMzY2ViYjViODQ2OTY4ZWVhNDhjNDEuLmE3YWVhNzFhM2Ez
NDIyMGE2MjNlMWM2ZmViNmM4NzE5MjBlYWM0MjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvd2Vic29ja2V0cy9XZWJTb2NrZXQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL3dlYnNvY2tldHMvV2ViU29ja2V0LmgKQEAgLTcyLDEwICs3MiwxMCBAQCBwdWJsaWM6CiAg
ICAgdm9pZCBjb25uZWN0KGNvbnN0IFN0cmluZyYgdXJsLCBjb25zdCBTdHJpbmcmIHByb3RvY29s
LCBFeGNlcHRpb25Db2RlJik7CiAgICAgdm9pZCBjb25uZWN0KGNvbnN0IFN0cmluZyYgdXJsLCBj
b25zdCBWZWN0b3I8U3RyaW5nPiYgcHJvdG9jb2xzLCBFeGNlcHRpb25Db2RlJik7CiAKLSAgICBi
b29sIHNlbmQoY29uc3QgU3RyaW5nJiBtZXNzYWdlLCBFeGNlcHRpb25Db2RlJik7Ci0gICAgYm9v
bCBzZW5kKEFycmF5QnVmZmVyKiwgRXhjZXB0aW9uQ29kZSYpOwotICAgIGJvb2wgc2VuZChBcnJh
eUJ1ZmZlclZpZXcqLCBFeGNlcHRpb25Db2RlJik7Ci0gICAgYm9vbCBzZW5kKEJsb2IqLCBFeGNl
cHRpb25Db2RlJik7CisgICAgdm9pZCBzZW5kKGNvbnN0IFN0cmluZyYgbWVzc2FnZSwgRXhjZXB0
aW9uQ29kZSYpOworICAgIHZvaWQgc2VuZChBcnJheUJ1ZmZlciosIEV4Y2VwdGlvbkNvZGUmKTsK
KyAgICB2b2lkIHNlbmQoQXJyYXlCdWZmZXJWaWV3KiwgRXhjZXB0aW9uQ29kZSYpOworICAgIHZv
aWQgc2VuZChCbG9iKiwgRXhjZXB0aW9uQ29kZSYpOwogCiAgICAgdm9pZCBjbG9zZShpbnQgY29k
ZSwgY29uc3QgU3RyaW5nJiByZWFzb24sIEV4Y2VwdGlvbkNvZGUmKTsKICAgICB2b2lkIGNsb3Nl
KEV4Y2VwdGlvbkNvZGUmIGVjKSB7IGNsb3NlKFdlYlNvY2tldENoYW5uZWw6OkNsb3NlRXZlbnRD
b2RlTm90U3BlY2lmaWVkLCBTdHJpbmcoKSwgZWMpOyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL3dlYnNvY2tldHMvV2ViU29ja2V0LmlkbCBiL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvd2Vic29ja2V0cy9XZWJTb2NrZXQuaWRsCmluZGV4IDQxZmUyMmIyZjQ4MzAxNDhjMjMy
MTM5NzVhOTcxYmU0ZDVkYzUzNTIuLjQ5MTBjYTIzYzUxNjczYTJlMWY4NTBiNmJlMjE3N2U0ZTc5
NGNhN2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vic29ja2V0cy9XZWJT
b2NrZXQuaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vic29ja2V0cy9XZWJTb2Nr
ZXQuaWRsCkBAIC02NCwxMyArNjQsMTMgQEAKIAogICAgIGF0dHJpYnV0ZSBET01TdHJpbmcgYmlu
YXJ5VHlwZTsKIAotICAgIGJvb2xlYW4gc2VuZChpbiBBcnJheUJ1ZmZlciBkYXRhKQorICAgIHZv
aWQgc2VuZChpbiBBcnJheUJ1ZmZlciBkYXRhKQogICAgICAgICByYWlzZXMoRE9NRXhjZXB0aW9u
KTsKLSAgICBib29sZWFuIHNlbmQoaW4gQXJyYXlCdWZmZXJWaWV3IGRhdGEpCisgICAgdm9pZCBz
ZW5kKGluIEFycmF5QnVmZmVyVmlldyBkYXRhKQogICAgICAgICByYWlzZXMoRE9NRXhjZXB0aW9u
KTsKLSAgICBib29sZWFuIHNlbmQoaW4gQmxvYiBkYXRhKQorICAgIHZvaWQgc2VuZChpbiBCbG9i
IGRhdGEpCiAgICAgICAgIHJhaXNlcyhET01FeGNlcHRpb24pOwotICAgIGJvb2xlYW4gc2VuZChp
biBET01TdHJpbmcgZGF0YSkKKyAgICB2b2lkIHNlbmQoaW4gRE9NU3RyaW5nIGRhdGEpCiAgICAg
ICAgIHJhaXNlcyhET01FeGNlcHRpb24pOwogCiAgICAgdm9pZCBjbG9zZShpbiBbQ2xhbXAsIE9w
dGlvbmFsXSB1bnNpZ25lZCBzaG9ydCBjb2RlLCBpbiBbT3B0aW9uYWxdIERPTVN0cmluZyByZWFz
b24pIHJhaXNlcyhET01FeGNlcHRpb24pOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdl
TG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IDcyMTMwMzFmNDE4ZGMxZmVhZDUxMTlk
OGQwZjk1NmY3NjUwNTVlNTkuLjQ1Y2UwNTY4ZWEzNmVkNWQzNWQyZTg1NWJiZWQ4NGQyMzU5YzFj
MmIgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9D
aGFuZ2VMb2cKQEAgLTEsMyArMSwyMCBAQAorMjAxMy0wNC0xOSAgTGFtYXJxdWUgVi4gU291emEg
IDxMYW1hcnF1ZS5Tb3V6YUBiYXN5c2tvbS5jb20+CisKKyAgICAgICAgV2ViU29ja2V0OiBSZXR1
cm4gdHlwZSBvZiBzZW5kKCkgc2hvdWxkIGJlIHZvaWQgaWYgaHliaS0xMCBwcm90b2NvbCBpcyBj
aG9zZW4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTY1
ODUwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVXBk
YXRlIHRlc3RzIGFuZCB0ZXN0IHJlc3VsdHMgYmVjYXVzZSBXZWJTb2NrZXQuc2VuZCgpIG5vdyBy
ZXR1cm5zIHVuZGVmaW5lZCB3aGVuCisgICAgICAgIHRoZSBoeWJpIFdlYlNvY2tldCBwcm90b2Nv
bCBpcyB1c2VkLgorCisgICAgICAgICogaHR0cC90ZXN0cy93ZWJzb2NrZXQvdGVzdHMvaHliaS9i
dWZmZXJlZEFtb3VudC1hZnRlci1jbG9zZS1leHBlY3RlZC50eHQ6CisgICAgICAgICogaHR0cC90
ZXN0cy93ZWJzb2NrZXQvdGVzdHMvaHliaS9idWZmZXJlZEFtb3VudC1hZnRlci1jbG9zZS1pbi1i
dXN5LWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBodHRwL3Rlc3RzL3dlYnNvY2tldC90ZXN0cy9o
eWJpL2J1ZmZlcmVkQW1vdW50LWFmdGVyLWNsb3NlLWluLWJ1c3kuaHRtbDoKKyAgICAgICAgKiBo
dHRwL3Rlc3RzL3dlYnNvY2tldC90ZXN0cy9oeWJpL2J1ZmZlcmVkQW1vdW50LWFmdGVyLWNsb3Nl
Lmh0bWw6CisgICAgICAgICogaHR0cC90ZXN0cy93ZWJzb2NrZXQvdGVzdHMvaHliaS9zZW5kLWFm
dGVyLWNsb3NlLW9uLXVubG9hZC1leHBlY3RlZC50eHQ6CisgICAgICAgICogaHR0cC90ZXN0cy93
ZWJzb2NrZXQvdGVzdHMvaHliaS9zZW5kLWFmdGVyLWNsb3NlLW9uLXVubG9hZC5odG1sOgorCiAy
MDEzLTA0LTE4ICBUaW1vdGh5IEhhdGNoZXIgIDx0aW1vdGh5QGFwcGxlLmNvbT4KIAogICAgICAg
ICBBZGQgQ1NTLnNldFN0eWxlVGV4dCB0byB0aGUgV2ViIEluc3BlY3RvciBwcm90b2NvbC4KZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd2Vic29ja2V0L3Rlc3RzL2h5YmkvYnVm
ZmVyZWRBbW91bnQtYWZ0ZXItY2xvc2UtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90
ZXN0cy93ZWJzb2NrZXQvdGVzdHMvaHliaS9idWZmZXJlZEFtb3VudC1hZnRlci1jbG9zZS1leHBl
Y3RlZC50eHQKaW5kZXggMDQ0ZmUwZjliNGU4NWM3YjM2OWRhMzEzZTVjMzc1YzI3ZDZjMzVlMS4u
YWYwZTg3NzNlOGNjNDI2Mzg4MzI2OThjODM5ZmRlMGY2MmFhMGE5MyAxMDA2NDQKLS0tIGEvTGF5
b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJzb2NrZXQvdGVzdHMvaHliaS9idWZmZXJlZEFtb3VudC1h
ZnRlci1jbG9zZS1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJz
b2NrZXQvdGVzdHMvaHliaS9idWZmZXJlZEFtb3VudC1hZnRlci1jbG9zZS1leHBlY3RlZC50eHQK
QEAgLTcsNDUgKzcsNDUgQEAgQ2xvc2VkLgogUEFTUyB3cy5yZWFkeVN0YXRlIGlzIDMKIFBBU1Mg
d3MuYnVmZmVyZWRBbW91bnQgaXMgMAogVGVzdGluZyBzZW5kKHN0cmluZykuLi4KLVBBU1Mgd3Mu
c2VuZChtZXNzYWdlVG9TZW5kKSBpcyBmYWxzZQorUEFTUyB3cy5zZW5kKG1lc3NhZ2VUb1NlbmQp
IGlzIHVuZGVmaW5lZC4KIFBBU1MgYnVmZmVyZWRBbW91bnREaWZmZXJlbmNlIGlzIDI3Ci1QQVNT
IHdzLnNlbmQobWVzc2FnZVRvU2VuZCkgaXMgZmFsc2UKK1BBU1Mgd3Muc2VuZChtZXNzYWdlVG9T
ZW5kKSBpcyB1bmRlZmluZWQuCiBQQVNTIGJ1ZmZlcmVkQW1vdW50RGlmZmVyZW5jZSBpcyA2Ci1Q
QVNTIHdzLnNlbmQobWVzc2FnZVRvU2VuZCkgaXMgZmFsc2UKK1BBU1Mgd3Muc2VuZChtZXNzYWdl
VG9TZW5kKSBpcyB1bmRlZmluZWQuCiBQQVNTIGJ1ZmZlcmVkQW1vdW50RGlmZmVyZW5jZSBpcyA3
Ci1QQVNTIHdzLnNlbmQobWVzc2FnZVRvU2VuZCkgaXMgZmFsc2UKK1BBU1Mgd3Muc2VuZChtZXNz
YWdlVG9TZW5kKSBpcyB1bmRlZmluZWQuCiBQQVNTIGJ1ZmZlcmVkQW1vdW50RGlmZmVyZW5jZSBp
cyAxMzEKLVBBU1Mgd3Muc2VuZChtZXNzYWdlVG9TZW5kKSBpcyBmYWxzZQorUEFTUyB3cy5zZW5k
KG1lc3NhZ2VUb1NlbmQpIGlzIHVuZGVmaW5lZC4KIFBBU1MgYnVmZmVyZWRBbW91bnREaWZmZXJl
bmNlIGlzIDEzNAotUEFTUyB3cy5zZW5kKG1lc3NhZ2VUb1NlbmQpIGlzIGZhbHNlCitQQVNTIHdz
LnNlbmQobWVzc2FnZVRvU2VuZCkgaXMgdW5kZWZpbmVkLgogUEFTUyBidWZmZXJlZEFtb3VudERp
ZmZlcmVuY2UgaXMgNjU1NDMKLVBBU1Mgd3Muc2VuZChtZXNzYWdlVG9TZW5kKSBpcyBmYWxzZQor
UEFTUyB3cy5zZW5kKG1lc3NhZ2VUb1NlbmQpIGlzIHVuZGVmaW5lZC4KIFBBU1MgYnVmZmVyZWRB
bW91bnREaWZmZXJlbmNlIGlzIDY1NTUwCiBUZXN0aW5nIHNlbmQoQXJyYXlCdWZmZXIpLi4uCi1Q
QVNTIHdzLnNlbmQobWVzc2FnZVRvU2VuZCkgaXMgZmFsc2UKK1BBU1Mgd3Muc2VuZChtZXNzYWdl
VG9TZW5kKSBpcyB1bmRlZmluZWQuCiBQQVNTIGJ1ZmZlcmVkQW1vdW50RGlmZmVyZW5jZSBpcyA2
Ci1QQVNTIHdzLnNlbmQobWVzc2FnZVRvU2VuZCkgaXMgZmFsc2UKK1BBU1Mgd3Muc2VuZChtZXNz
YWdlVG9TZW5kKSBpcyB1bmRlZmluZWQuCiBQQVNTIGJ1ZmZlcmVkQW1vdW50RGlmZmVyZW5jZSBp
cyA3Ci1QQVNTIHdzLnNlbmQobWVzc2FnZVRvU2VuZCkgaXMgZmFsc2UKK1BBU1Mgd3Muc2VuZCht
ZXNzYWdlVG9TZW5kKSBpcyB1bmRlZmluZWQuCiBQQVNTIGJ1ZmZlcmVkQW1vdW50RGlmZmVyZW5j
ZSBpcyAxMzEKLVBBU1Mgd3Muc2VuZChtZXNzYWdlVG9TZW5kKSBpcyBmYWxzZQorUEFTUyB3cy5z
ZW5kKG1lc3NhZ2VUb1NlbmQpIGlzIHVuZGVmaW5lZC4KIFBBU1MgYnVmZmVyZWRBbW91bnREaWZm
ZXJlbmNlIGlzIDEzNAotUEFTUyB3cy5zZW5kKG1lc3NhZ2VUb1NlbmQpIGlzIGZhbHNlCitQQVNT
IHdzLnNlbmQobWVzc2FnZVRvU2VuZCkgaXMgdW5kZWZpbmVkLgogUEFTUyBidWZmZXJlZEFtb3Vu
dERpZmZlcmVuY2UgaXMgNjU1NDMKLVBBU1Mgd3Muc2VuZChtZXNzYWdlVG9TZW5kKSBpcyBmYWxz
ZQorUEFTUyB3cy5zZW5kKG1lc3NhZ2VUb1NlbmQpIGlzIHVuZGVmaW5lZC4KIFBBU1MgYnVmZmVy
ZWRBbW91bnREaWZmZXJlbmNlIGlzIDY1NTUwCiBUZXN0aW5nIHNlbmQoQmxvYikuLi4KLVBBU1Mg
d3Muc2VuZChtZXNzYWdlVG9TZW5kKSBpcyBmYWxzZQorUEFTUyB3cy5zZW5kKG1lc3NhZ2VUb1Nl
bmQpIGlzIHVuZGVmaW5lZC4KIFBBU1MgYnVmZmVyZWRBbW91bnREaWZmZXJlbmNlIGlzIDYKLVBB
U1Mgd3Muc2VuZChtZXNzYWdlVG9TZW5kKSBpcyBmYWxzZQorUEFTUyB3cy5zZW5kKG1lc3NhZ2VU
b1NlbmQpIGlzIHVuZGVmaW5lZC4KIFBBU1MgYnVmZmVyZWRBbW91bnREaWZmZXJlbmNlIGlzIDcK
LVBBU1Mgd3Muc2VuZChtZXNzYWdlVG9TZW5kKSBpcyBmYWxzZQorUEFTUyB3cy5zZW5kKG1lc3Nh
Z2VUb1NlbmQpIGlzIHVuZGVmaW5lZC4KIFBBU1MgYnVmZmVyZWRBbW91bnREaWZmZXJlbmNlIGlz
IDEzMQotUEFTUyB3cy5zZW5kKG1lc3NhZ2VUb1NlbmQpIGlzIGZhbHNlCitQQVNTIHdzLnNlbmQo
bWVzc2FnZVRvU2VuZCkgaXMgdW5kZWZpbmVkLgogUEFTUyBidWZmZXJlZEFtb3VudERpZmZlcmVu
Y2UgaXMgMTM0Ci1QQVNTIHdzLnNlbmQobWVzc2FnZVRvU2VuZCkgaXMgZmFsc2UKK1BBU1Mgd3Mu
c2VuZChtZXNzYWdlVG9TZW5kKSBpcyB1bmRlZmluZWQuCiBQQVNTIGJ1ZmZlcmVkQW1vdW50RGlm
ZmVyZW5jZSBpcyA2NTU0MwotUEFTUyB3cy5zZW5kKG1lc3NhZ2VUb1NlbmQpIGlzIGZhbHNlCitQ
QVNTIHdzLnNlbmQobWVzc2FnZVRvU2VuZCkgaXMgdW5kZWZpbmVkLgogUEFTUyBidWZmZXJlZEFt
b3VudERpZmZlcmVuY2UgaXMgNjU1NTAKIFBBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUK
IApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJzb2NrZXQvdGVzdHMvaHli
aS9idWZmZXJlZEFtb3VudC1hZnRlci1jbG9zZS1pbi1idXN5LWV4cGVjdGVkLnR4dCBiL0xheW91
dFRlc3RzL2h0dHAvdGVzdHMvd2Vic29ja2V0L3Rlc3RzL2h5YmkvYnVmZmVyZWRBbW91bnQtYWZ0
ZXItY2xvc2UtaW4tYnVzeS1leHBlY3RlZC50eHQKaW5kZXggYzU0NzgwYzcwZmI0OGMzYjJkZTBh
NjIwMzhmMTQ4ODA2ZTIxOGU0Ny4uMzU3Mjc3NzE2OTBkODlhNTEyNmY4MjhlNzNhN2MzZDZmMGEz
MDliNyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJzb2NrZXQvdGVzdHMv
aHliaS9idWZmZXJlZEFtb3VudC1hZnRlci1jbG9zZS1pbi1idXN5LWV4cGVjdGVkLnR4dAorKysg
Yi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dlYnNvY2tldC90ZXN0cy9oeWJpL2J1ZmZlcmVkQW1v
dW50LWFmdGVyLWNsb3NlLWluLWJ1c3ktZXhwZWN0ZWQudHh0CkBAIC04LDQ1ICs4LDQ1IEBAIENs
b3NlZC4KIFBBU1Mgd3MucmVhZHlTdGF0ZSBpcyAzCiBQQVNTIHdzLmJ1ZmZlcmVkQW1vdW50IDw9
IGJ1ZmZlcmVkQW1vdW50QWZ0ZXJDbG9zZSBpcyB0cnVlCiBUZXN0aW5nIHNlbmQoc3RyaW5nKS4u
LgotUEFTUyB3cy5zZW5kKG1lc3NhZ2VUb1NlbmQpIGlzIGZhbHNlCitQQVNTIHdzLnNlbmQobWVz
c2FnZVRvU2VuZCkgaXMgdW5kZWZpbmVkLgogUEFTUyBidWZmZXJlZEFtb3VudERpZmZlcmVuY2Ug
aXMgMjcKLVBBU1Mgd3Muc2VuZChtZXNzYWdlVG9TZW5kKSBpcyBmYWxzZQorUEFTUyB3cy5zZW5k
KG1lc3NhZ2VUb1NlbmQpIGlzIHVuZGVmaW5lZC4KIFBBU1MgYnVmZmVyZWRBbW91bnREaWZmZXJl
bmNlIGlzIDYKLVBBU1Mgd3Muc2VuZChtZXNzYWdlVG9TZW5kKSBpcyBmYWxzZQorUEFTUyB3cy5z
ZW5kKG1lc3NhZ2VUb1NlbmQpIGlzIHVuZGVmaW5lZC4KIFBBU1MgYnVmZmVyZWRBbW91bnREaWZm
ZXJlbmNlIGlzIDcKLVBBU1Mgd3Muc2VuZChtZXNzYWdlVG9TZW5kKSBpcyBmYWxzZQorUEFTUyB3
cy5zZW5kKG1lc3NhZ2VUb1NlbmQpIGlzIHVuZGVmaW5lZC4KIFBBU1MgYnVmZmVyZWRBbW91bnRE
aWZmZXJlbmNlIGlzIDEzMQotUEFTUyB3cy5zZW5kKG1lc3NhZ2VUb1NlbmQpIGlzIGZhbHNlCitQ
QVNTIHdzLnNlbmQobWVzc2FnZVRvU2VuZCkgaXMgdW5kZWZpbmVkLgogUEFTUyBidWZmZXJlZEFt
b3VudERpZmZlcmVuY2UgaXMgMTM0Ci1QQVNTIHdzLnNlbmQobWVzc2FnZVRvU2VuZCkgaXMgZmFs
c2UKK1BBU1Mgd3Muc2VuZChtZXNzYWdlVG9TZW5kKSBpcyB1bmRlZmluZWQuCiBQQVNTIGJ1ZmZl
cmVkQW1vdW50RGlmZmVyZW5jZSBpcyA2NTU0MwotUEFTUyB3cy5zZW5kKG1lc3NhZ2VUb1NlbmQp
IGlzIGZhbHNlCitQQVNTIHdzLnNlbmQobWVzc2FnZVRvU2VuZCkgaXMgdW5kZWZpbmVkLgogUEFT
UyBidWZmZXJlZEFtb3VudERpZmZlcmVuY2UgaXMgNjU1NTAKIFRlc3Rpbmcgc2VuZChBcnJheUJ1
ZmZlcikuLi4KLVBBU1Mgd3Muc2VuZChtZXNzYWdlVG9TZW5kKSBpcyBmYWxzZQorUEFTUyB3cy5z
ZW5kKG1lc3NhZ2VUb1NlbmQpIGlzIHVuZGVmaW5lZC4KIFBBU1MgYnVmZmVyZWRBbW91bnREaWZm
ZXJlbmNlIGlzIDYKLVBBU1Mgd3Muc2VuZChtZXNzYWdlVG9TZW5kKSBpcyBmYWxzZQorUEFTUyB3
cy5zZW5kKG1lc3NhZ2VUb1NlbmQpIGlzIHVuZGVmaW5lZC4KIFBBU1MgYnVmZmVyZWRBbW91bnRE
aWZmZXJlbmNlIGlzIDcKLVBBU1Mgd3Muc2VuZChtZXNzYWdlVG9TZW5kKSBpcyBmYWxzZQorUEFT
UyB3cy5zZW5kKG1lc3NhZ2VUb1NlbmQpIGlzIHVuZGVmaW5lZC4KIFBBU1MgYnVmZmVyZWRBbW91
bnREaWZmZXJlbmNlIGlzIDEzMQotUEFTUyB3cy5zZW5kKG1lc3NhZ2VUb1NlbmQpIGlzIGZhbHNl
CitQQVNTIHdzLnNlbmQobWVzc2FnZVRvU2VuZCkgaXMgdW5kZWZpbmVkLgogUEFTUyBidWZmZXJl
ZEFtb3VudERpZmZlcmVuY2UgaXMgMTM0Ci1QQVNTIHdzLnNlbmQobWVzc2FnZVRvU2VuZCkgaXMg
ZmFsc2UKK1BBU1Mgd3Muc2VuZChtZXNzYWdlVG9TZW5kKSBpcyB1bmRlZmluZWQuCiBQQVNTIGJ1
ZmZlcmVkQW1vdW50RGlmZmVyZW5jZSBpcyA2NTU0MwotUEFTUyB3cy5zZW5kKG1lc3NhZ2VUb1Nl
bmQpIGlzIGZhbHNlCitQQVNTIHdzLnNlbmQobWVzc2FnZVRvU2VuZCkgaXMgdW5kZWZpbmVkLgog
UEFTUyBidWZmZXJlZEFtb3VudERpZmZlcmVuY2UgaXMgNjU1NTAKIFRlc3Rpbmcgc2VuZChCbG9i
KS4uLgotUEFTUyB3cy5zZW5kKG1lc3NhZ2VUb1NlbmQpIGlzIGZhbHNlCitQQVNTIHdzLnNlbmQo
bWVzc2FnZVRvU2VuZCkgaXMgdW5kZWZpbmVkLgogUEFTUyBidWZmZXJlZEFtb3VudERpZmZlcmVu
Y2UgaXMgNgotUEFTUyB3cy5zZW5kKG1lc3NhZ2VUb1NlbmQpIGlzIGZhbHNlCitQQVNTIHdzLnNl
bmQobWVzc2FnZVRvU2VuZCkgaXMgdW5kZWZpbmVkLgogUEFTUyBidWZmZXJlZEFtb3VudERpZmZl
cmVuY2UgaXMgNwotUEFTUyB3cy5zZW5kKG1lc3NhZ2VUb1NlbmQpIGlzIGZhbHNlCitQQVNTIHdz
LnNlbmQobWVzc2FnZVRvU2VuZCkgaXMgdW5kZWZpbmVkLgogUEFTUyBidWZmZXJlZEFtb3VudERp
ZmZlcmVuY2UgaXMgMTMxCi1QQVNTIHdzLnNlbmQobWVzc2FnZVRvU2VuZCkgaXMgZmFsc2UKK1BB
U1Mgd3Muc2VuZChtZXNzYWdlVG9TZW5kKSBpcyB1bmRlZmluZWQuCiBQQVNTIGJ1ZmZlcmVkQW1v
dW50RGlmZmVyZW5jZSBpcyAxMzQKLVBBU1Mgd3Muc2VuZChtZXNzYWdlVG9TZW5kKSBpcyBmYWxz
ZQorUEFTUyB3cy5zZW5kKG1lc3NhZ2VUb1NlbmQpIGlzIHVuZGVmaW5lZC4KIFBBU1MgYnVmZmVy
ZWRBbW91bnREaWZmZXJlbmNlIGlzIDY1NTQzCi1QQVNTIHdzLnNlbmQobWVzc2FnZVRvU2VuZCkg
aXMgZmFsc2UKK1BBU1Mgd3Muc2VuZChtZXNzYWdlVG9TZW5kKSBpcyB1bmRlZmluZWQuCiBQQVNT
IGJ1ZmZlcmVkQW1vdW50RGlmZmVyZW5jZSBpcyA2NTU1MAogUEFTUyBzdWNjZXNzZnVsbHlQYXJz
ZWQgaXMgdHJ1ZQogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dlYnNvY2tl
dC90ZXN0cy9oeWJpL2J1ZmZlcmVkQW1vdW50LWFmdGVyLWNsb3NlLWluLWJ1c3kuaHRtbCBiL0xh
eW91dFRlc3RzL2h0dHAvdGVzdHMvd2Vic29ja2V0L3Rlc3RzL2h5YmkvYnVmZmVyZWRBbW91bnQt
YWZ0ZXItY2xvc2UtaW4tYnVzeS5odG1sCmluZGV4IGQ1Zjc2MjJhNmYyNWUwYmNiOTdjYjU2NDFj
YjU4MDI0ZDkyZTYzNzkuLmUxMTMxNWY2YTQ2NDA1MGZmMzFkYThmYjk1OWYxMGM4OTFhY2Q1N2Eg
MTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd2Vic29ja2V0L3Rlc3RzL2h5Ymkv
YnVmZmVyZWRBbW91bnQtYWZ0ZXItY2xvc2UtaW4tYnVzeS5odG1sCisrKyBiL0xheW91dFRlc3Rz
L2h0dHAvdGVzdHMvd2Vic29ja2V0L3Rlc3RzL2h5YmkvYnVmZmVyZWRBbW91bnQtYWZ0ZXItY2xv
c2UtaW4tYnVzeS5odG1sCkBAIC05Niw3ICs5Niw3IEBAIGZ1bmN0aW9uIHRlc3RCdWZmZXJlZEFt
b3VudChtZXNzYWdlLCBleHBlY3RlZEJ1ZmZlcmVkQW1vdW50RGlmZmVyZW5jZSkKICAgICAvLyAo
dGhlIG51bWJlciBkb2VzIG5vdCByZXNldCB0byB6ZXJvIG9uY2UgdGhlIGNvbm5lY3Rpb24gY2xv
c2VzKS4KICAgICBtZXNzYWdlVG9TZW5kID0gbWVzc2FnZTsKICAgICB2YXIgYnVmZmVyZWRBbW91
bnRCZWZvcmVTZW5kID0gd3MuYnVmZmVyZWRBbW91bnQ7Ci0gICAgc2hvdWxkQmVGYWxzZSgid3Mu
c2VuZChtZXNzYWdlVG9TZW5kKSIpOworICAgIHNob3VsZEJlVW5kZWZpbmVkKCJ3cy5zZW5kKG1l
c3NhZ2VUb1NlbmQpIik7CiAgICAgdmFyIGJ1ZmZlcmVkQW1vdW50QWZ0ZXJTZW5kID0gd3MuYnVm
ZmVyZWRBbW91bnQ7CiAgICAgYnVmZmVyZWRBbW91bnREaWZmZXJlbmNlID0gYnVmZmVyZWRBbW91
bnRBZnRlclNlbmQgLSBidWZmZXJlZEFtb3VudEJlZm9yZVNlbmQ7CiAgICAgc2hvdWxkRXZhbHVh
dGVUbygiYnVmZmVyZWRBbW91bnREaWZmZXJlbmNlIiwgZXhwZWN0ZWRCdWZmZXJlZEFtb3VudERp
ZmZlcmVuY2UpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJzb2NrZXQv
dGVzdHMvaHliaS9idWZmZXJlZEFtb3VudC1hZnRlci1jbG9zZS5odG1sIGIvTGF5b3V0VGVzdHMv
aHR0cC90ZXN0cy93ZWJzb2NrZXQvdGVzdHMvaHliaS9idWZmZXJlZEFtb3VudC1hZnRlci1jbG9z
ZS5odG1sCmluZGV4IGU1N2E0Y2EwOTBmN2YyZjkzZWZkZjQ2OWM2ZDgyZTJiOTYyNTNhYzEuLjNj
ODg1ODU1MDdiNzUxMWEzMjhkNmQ3YzBkNTZhY2ViNzAxYzAyZTkgMTAwNjQ0Ci0tLSBhL0xheW91
dFRlc3RzL2h0dHAvdGVzdHMvd2Vic29ja2V0L3Rlc3RzL2h5YmkvYnVmZmVyZWRBbW91bnQtYWZ0
ZXItY2xvc2UuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dlYnNvY2tldC90ZXN0
cy9oeWJpL2J1ZmZlcmVkQW1vdW50LWFmdGVyLWNsb3NlLmh0bWwKQEAgLTc3LDcgKzc3LDcgQEAg
ZnVuY3Rpb24gdGVzdEJ1ZmZlcmVkQW1vdW50KG1lc3NhZ2UsIGV4cGVjdGVkQnVmZmVyZWRBbW91
bnREaWZmZXJlbmNlKQogICAgIC8vICh0aGUgbnVtYmVyIGRvZXMgbm90IHJlc2V0IHRvIHplcm8g
b25jZSB0aGUgY29ubmVjdGlvbiBjbG9zZXMpLgogICAgIG1lc3NhZ2VUb1NlbmQgPSBtZXNzYWdl
OwogICAgIHZhciBidWZmZXJlZEFtb3VudEJlZm9yZVNlbmQgPSB3cy5idWZmZXJlZEFtb3VudDsK
LSAgICBzaG91bGRCZUZhbHNlKCJ3cy5zZW5kKG1lc3NhZ2VUb1NlbmQpIik7CisgICAgc2hvdWxk
QmVVbmRlZmluZWQoIndzLnNlbmQobWVzc2FnZVRvU2VuZCkiKTsKICAgICB2YXIgYnVmZmVyZWRB
bW91bnRBZnRlclNlbmQgPSB3cy5idWZmZXJlZEFtb3VudDsKICAgICBidWZmZXJlZEFtb3VudERp
ZmZlcmVuY2UgPSBidWZmZXJlZEFtb3VudEFmdGVyU2VuZCAtIGJ1ZmZlcmVkQW1vdW50QmVmb3Jl
U2VuZDsKICAgICBzaG91bGRFdmFsdWF0ZVRvKCJidWZmZXJlZEFtb3VudERpZmZlcmVuY2UiLCBl
eHBlY3RlZEJ1ZmZlcmVkQW1vdW50RGlmZmVyZW5jZSk7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9odHRwL3Rlc3RzL3dlYnNvY2tldC90ZXN0cy9oeWJpL3NlbmQtYWZ0ZXItY2xvc2Utb24tdW5s
b2FkLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd2Vic29ja2V0L3Rlc3Rz
L2h5Ymkvc2VuZC1hZnRlci1jbG9zZS1vbi11bmxvYWQtZXhwZWN0ZWQudHh0CmluZGV4IGNmZjQ4
YjFlMjUxOTdkNWM3ZGNlMWU2Y2YzYjgwMTlkN2ZhNDVjMzIuLjYyMzU4NjQ5Mjg4YzlmZTc2NDEx
NTBjMjgxYzVjNzNlZDI4YmU0YWEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMv
d2Vic29ja2V0L3Rlc3RzL2h5Ymkvc2VuZC1hZnRlci1jbG9zZS1vbi11bmxvYWQtZXhwZWN0ZWQu
dHh0CisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd2Vic29ja2V0L3Rlc3RzL2h5Ymkvc2Vu
ZC1hZnRlci1jbG9zZS1vbi11bmxvYWQtZXhwZWN0ZWQudHh0CkBAIC02LDcgKzYsNyBAQCBQQVNT
IHdzIG9uIG1hc3RlciBkb2N1bWVudCBpcyByZWFkeS4KIFBBU1MgaW5zZXJ0IGEgaWZyYW1lLCB3
aGVyZSBvcGVuIHdzIGNhbGxlZCAnc29ja2V0MScKIFBBU1MgZG9jdW1lbnQuY2hpbGRXZWJTb2Nr
ZXQgaXMgbm9uLW51bGwuCiBQQVNTICdzb2NrZXQxJyBpcyBzZW50IHRvIHRoZSBzZXJ2ZXIuIHVu
bG9hZCB0aGUgaWZyYW1lLiBleHBlY3QgcmVjZWl2aW5nICdzb2NrZXQxJyBvbiB3cy4uLgotUEFT
UyBkb2N1bWVudC5jaGlsZFdlYlNvY2tldC5zZW5kKCdzZW5kIHRvIGNsb3NlZCBzb2NrZXQnKSBp
cyBmYWxzZQorUEFTUyBkb2N1bWVudC5jaGlsZFdlYlNvY2tldC5zZW5kKCdzZW5kIHRvIGNsb3Nl
ZCBzb2NrZXQnKSBpcyB1bmRlZmluZWQuCiBQQVNTIGNsb3NlZFNvY2tldCBpcyAic29ja2V0MSIK
IFBBU1MgZG9jdW1lbnQuY2hpbGRXZWJTb2NrZXQucmVhZHlTdGF0ZSBpcyAzCiBQQVNTIHN1Y2Nl
c3NmdWxseVBhcnNlZCBpcyB0cnVlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3Rz
L3dlYnNvY2tldC90ZXN0cy9oeWJpL3NlbmQtYWZ0ZXItY2xvc2Utb24tdW5sb2FkLmh0bWwgYi9M
YXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dlYnNvY2tldC90ZXN0cy9oeWJpL3NlbmQtYWZ0ZXItY2xv
c2Utb24tdW5sb2FkLmh0bWwKaW5kZXggYTcyNDhkYmJjMWU0ZDNlYWVmNTU2YWQzNTNhMTA0NmRm
ODQ0Yjc1NS4uYmIzNjA4NjU4ZjBkODNiMzNmNjFkZmMyZDcxZWIyN2FlY2UxZjUxNSAxMDA2NDQK
LS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJzb2NrZXQvdGVzdHMvaHliaS9zZW5kLWFm
dGVyLWNsb3NlLW9uLXVubG9hZC5odG1sCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd2Vi
c29ja2V0L3Rlc3RzL2h5Ymkvc2VuZC1hZnRlci1jbG9zZS1vbi11bmxvYWQuaHRtbApAQCAtNDEs
NyArNDEsNyBAQCBkb2N1bWVudC5pZnJhbWVSZWFkeSA9IGZ1bmN0aW9uKCkKICAgICBzaG91bGRC
ZU5vbk51bGwoImRvY3VtZW50LmNoaWxkV2ViU29ja2V0Iik7CiAgICAgZGVidWcoIlBBU1MgJ3Nv
Y2tldDEnIGlzIHNlbnQgdG8gdGhlIHNlcnZlci4gdW5sb2FkIHRoZSBpZnJhbWUuIGV4cGVjdCBy
ZWNlaXZpbmcgJ3NvY2tldDEnIG9uIHdzLi4uIik7CiAgICAgZG9jdW1lbnQuYm9keS5yZW1vdmVD
aGlsZChmcmFtZURpdik7Ci0gICAgc2hvdWxkQmVGYWxzZSgiZG9jdW1lbnQuY2hpbGRXZWJTb2Nr
ZXQuc2VuZCgnc2VuZCB0byBjbG9zZWQgc29ja2V0JykiKTsKKyAgICBzaG91bGRCZVVuZGVmaW5l
ZCgiZG9jdW1lbnQuY2hpbGRXZWJTb2NrZXQuc2VuZCgnc2VuZCB0byBjbG9zZWQgc29ja2V0Jyki
KTsKIH07CiAKIDwvc2NyaXB0Pgo=
</data>

          </attachment>
      

    </bug>

</bugzilla>