<?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>107963</bug_id>
          
          <creation_ts>2013-01-25 10:57:45 -0800</creation_ts>
          <short_desc>Add FrameLoaderClient::didAccessInitialDocument</short_desc>
          <delta_ts>2013-03-05 13:13:20 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>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>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Charles Reis">creis</reporter>
          <assigned_to name="Charles Reis">creis</assigned_to>
          <cc>abarth</cc>
    
    <cc>ap</cc>
    
    <cc>beidson</cc>
    
    <cc>buildbot</cc>
    
    <cc>dglazkov</cc>
    
    <cc>eric</cc>
    
    <cc>fishd</cc>
    
    <cc>ggaren</cc>
    
    <cc>haraken</cc>
    
    <cc>jamesr</cc>
    
    <cc>japhet</cc>
    
    <cc>rniwa</cc>
    
    <cc>sam</cc>
    
    <cc>tkent+wkapi</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>816746</commentid>
    <comment_count>0</comment_count>
    <who name="Charles Reis">creis</who>
    <bug_when>2013-01-25 10:57:45 -0800</bug_when>
    <thetext>As part of http://crbug.com/9682, we&apos;ve been looking for a way to safely display the provisional URL in the address bar when a user navigates to a slow web site in a new tab.  The danger here is that another page (e.g., the opener) can access the initial empty document during the slow navigation.  If that page modifies the new window&apos;s contents, it&apos;s a URL spoof exploit.  As a result, Chrome currently shows about:blank in these new windows until the navigation commits.

That sort of attack is uncommon, though, so we&apos;d like to show the provisional URL unless we detect that the initial empty document has been accessed.  This is similar to how Opera behaves: it shows the provisional URL until another page tries to modify the initial empty document.  Note that we&apos;ve explored other options like detecting if the render tree is no longer empty, but that&apos;s imperfect: it won&apos;t react to permission requests, title changes, audio, etc.

The JavaScript bindings can let us know when the initial empty document is accessed (similar to how it works after document.domain has been modified), at which point we can notify the FrameLoaderClient.  From there, we can show about:blank instead of the provisional URL in the address bar.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>816753</commentid>
    <comment_count>1</comment_count>
      <attachid>184775</attachid>
    <who name="Charles Reis">creis</who>
    <bug_when>2013-01-25 11:02:14 -0800</bug_when>
    <thetext>Created attachment 184775
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>816756</commentid>
    <comment_count>2</comment_count>
    <who name="Charles Reis">creis</who>
    <bug_when>2013-01-25 11:04:10 -0800</bug_when>
    <thetext>I&apos;ve uploaded an initial patch that adds the callback to the V8 bindings.  That could probably use a careful check to see if it&apos;s in the right place.  I&apos;m also not sure how to hook it up in JSC, or if there&apos;s interest in that.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>816759</commentid>
    <comment_count>3</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-01-25 11:05:00 -0800</bug_when>
    <thetext>Please wait for approval from abarth@webkit.org, dglazkov@chromium.org, fishd@chromium.org, jamesr@chromium.org or tkent@chromium.org before submitting, as this patch contains changes to the Chromium public API. See also https://trac.webkit.org/wiki/ChromiumWebKitAPI.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>816879</commentid>
    <comment_count>4</comment_count>
      <attachid>184775</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2013-01-25 13:31:41 -0800</bug_when>
    <thetext>Comment on attachment 184775
Patch

Attachment 184775 did not pass mac-wk2-ews (mac-wk2):
Output: http://queues.webkit.org/results/16113572

New failing tests:
editing/pasteboard/4641033.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>817272</commentid>
    <comment_count>5</comment_count>
    <who name="Sam Weinig">sam</who>
    <bug_when>2013-01-26 15:39:41 -0800</bug_when>
    <thetext>(In reply to comment #2)
&gt; I&apos;ve uploaded an initial patch that adds the callback to the V8 bindings.  That could probably use a careful check to see if it&apos;s in the right place.  I&apos;m also not sure how to hook it up in JSC, or if there&apos;s interest in that.

If it is a good enough idea to go into WebCore, it should be implemented for JSC.  This should also have tests.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>817324</commentid>
    <comment_count>6</comment_count>
    <who name="Darin Fisher (:fishd, Google)">fishd</who>
    <bug_when>2013-01-26 23:12:22 -0800</bug_when>
    <thetext>(In reply to comment #5)
&gt; (In reply to comment #2)
&gt; &gt; I&apos;ve uploaded an initial patch that adds the callback to the V8 bindings.  That could probably use a careful check to see if it&apos;s in the right place.  I&apos;m also not sure how to hook it up in JSC, or if there&apos;s interest in that.
&gt; 
&gt; If it is a good enough idea to go into WebCore, it should be implemented for JSC.  This should also have tests.

Why do you want unused code?  The current approach adds a little bit of code to FrameLoader to route an event through FrameLoaderClient.  I&apos;d imagine that could be put behind an #ifdef or perhaps factored out.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>817415</commentid>
    <comment_count>7</comment_count>
    <who name="Sam Weinig">sam</who>
    <bug_when>2013-01-27 13:52:21 -0800</bug_when>
    <thetext>(In reply to comment #6)
&gt; (In reply to comment #5)
&gt; &gt; (In reply to comment #2)
&gt; &gt; &gt; I&apos;ve uploaded an initial patch that adds the callback to the V8 bindings.  That could probably use a careful check to see if it&apos;s in the right place.  I&apos;m also not sure how to hook it up in JSC, or if there&apos;s interest in that.
&gt; &gt; 
&gt; &gt; If it is a good enough idea to go into WebCore, it should be implemented for JSC.  This should also have tests.
&gt; 
&gt; Why do you want unused code?  The current approach adds a little bit of code to FrameLoader to route an event through FrameLoaderClient.  I&apos;d imagine that could be put behind an #ifdef or perhaps factored out.

I&apos;m not sure I understand.  Are you saying the issue you are solving is somehow specific to Chrome?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>817417</commentid>
    <comment_count>8</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2013-01-27 14:04:25 -0800</bug_when>
    <thetext>&gt; I&apos;m not sure I understand.  Are you saying the issue you are solving is somehow specific to Chrome?

Charlie&apos;s patch adds a notification to the embedder, which we plan to use in Chromium for some purpose.  If other embedders of WebKit have need for the same notification, they should feel free to add it themselves.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>817421</commentid>
    <comment_count>9</comment_count>
    <who name="Sam Weinig">sam</who>
    <bug_when>2013-01-27 14:49:03 -0800</bug_when>
    <thetext>(In reply to comment #8)
&gt; &gt; I&apos;m not sure I understand.  Are you saying the issue you are solving is somehow specific to Chrome?
&gt; 
&gt; Charlie&apos;s patch adds a notification to the embedder, which we plan to use in Chromium for some purpose.  If other embedders of WebKit have need for the same notification, they should feel free to add it themselves.

Ok.  My main concern here is that this is adding a new FrameLoaderClient function that is not called for those using the WebKit projects JavaScript framework.  That seems like a bad idea.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>817432</commentid>
    <comment_count>10</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2013-01-27 16:42:27 -0800</bug_when>
    <thetext>&gt; Ok.  My main concern here is that this is adding a new FrameLoaderClient function that is not called for those using the WebKit projects JavaScript framework.  That seems like a bad idea.

Would you be willing to withdraw your objection if we put this callback behind an ifdef so as to clearly label that it isn&apos;t used by other ports?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>817435</commentid>
    <comment_count>11</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2013-01-27 16:56:17 -0800</bug_when>
    <thetext>I think the information that Sam was looking for (but maybe not asking for) is:
- This is to fix a quirky security behavior which Chrome has, which exists to prevent a spoofing attack vector which most other browsers don&apos;t bother with, but Chrome does.
- When you click a link in Chrome, it shows &quot;about:blank&quot; during the load.  This is intentional, the navigating page can modify the initial empty document (about:blank) page during load and have the URL bar mislead the user into thinking they&apos;re already at the site they mean to be.  I&apos;m dubious that this happens in practice, but Chrome choses to protect against it.
- This security feature doesn&apos;t apply to any other WebKIt based browser that I know of, but in order to &quot;fix&quot; this to be more user friendly, Chrome needs to be made aware of any potential accesses to this about:blank page, and fall-back to displaying about:blank during the load.  That notification allows chrome to &quot;lie&quot; to the user (like every other browser does) and show the provisional URL, while being sure that the original page hasn&apos;t tampered with the initial empty document.

In short:  I don&apos;t think anyone besides chromium cares.  We should just add this flag behind a #ifdef CHROMIUM as abarth suggests (or not, it doesn&apos;t really matter).  One could implement this notification for access to the initial empty document via JSC bindings, but since no embedder would need it, it would be dead code.

If Safari wanted to add this security behavior, it would be trivial to do, and they would need to both implement the JSC side of this, as well as the browser logic.  But as noted above, a #ifdef CHROMIUM would prevent any confusion and make sure this dead code is compiled out of other WebKIts.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>817489</commentid>
    <comment_count>12</comment_count>
    <who name="Sam Weinig">sam</who>
    <bug_when>2013-01-27 20:28:30 -0800</bug_when>
    <thetext>Sorry to cause such a fuss, was mainly just overly curious.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>846580</commentid>
    <comment_count>13</comment_count>
      <attachid>191262</attachid>
    <who name="Charles Reis">creis</who>
    <bug_when>2013-03-04 09:44:54 -0800</bug_when>
    <thetext>Created attachment 191262
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>846582</commentid>
    <comment_count>14</comment_count>
    <who name="Charles Reis">creis</who>
    <bug_when>2013-03-04 09:45:15 -0800</bug_when>
    <thetext>Sorry for the long delay on this-- I got pulled into some higher priority issues for a while.  I&apos;ve uploaded a new patch with PLATFORM(CHROMIUM) ifdefs and a test in WebFrameTest.cpp.  Can you take another look?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>846759</commentid>
    <comment_count>15</comment_count>
      <attachid>191262</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2013-03-04 13:03:06 -0800</bug_when>
    <thetext>Comment on attachment 191262
Patch

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

LGTM with some nits below.  @Sam: Thoughts?

&gt; Source/WebCore/bindings/v8/V8DOMWindowShell.cpp:405
&gt; +#if PLATFORM(CHROMIUM)

bindings/v8 implies PLATFORM(CHROMIUM).  There&apos;s no need for this ifdef in this file.

&gt; Source/WebCore/bindings/v8/custom/V8DOMWindowCustom.cpp:526
&gt; +#if PLATFORM(CHROMIUM)

ditto

&gt; Source/WebCore/bindings/v8/custom/V8DOMWindowCustom.cpp:567
&gt; +#if PLATFORM(CHROMIUM)

ditto</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>846774</commentid>
    <comment_count>16</comment_count>
      <attachid>191299</attachid>
    <who name="Charles Reis">creis</who>
    <bug_when>2013-03-04 13:16:45 -0800</bug_when>
    <thetext>Created attachment 191299
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>846775</commentid>
    <comment_count>17</comment_count>
    <who name="Charles Reis">creis</who>
    <bug_when>2013-03-04 13:17:26 -0800</bug_when>
    <thetext>(In reply to comment #15)
&gt; (From update of attachment 191262 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=191262&amp;action=review
&gt; 
&gt; LGTM with some nits below.  @Sam: Thoughts?
&gt; 
&gt; &gt; Source/WebCore/bindings/v8/V8DOMWindowShell.cpp:405
&gt; &gt; +#if PLATFORM(CHROMIUM)
&gt; 
&gt; bindings/v8 implies PLATFORM(CHROMIUM).  There&apos;s no need for this ifdef in this file.
&gt; 
&gt; &gt; Source/WebCore/bindings/v8/custom/V8DOMWindowCustom.cpp:526
&gt; &gt; +#if PLATFORM(CHROMIUM)
&gt; 
&gt; ditto
&gt; 
&gt; &gt; Source/WebCore/bindings/v8/custom/V8DOMWindowCustom.cpp:567
&gt; &gt; +#if PLATFORM(CHROMIUM)
&gt; 
&gt; ditto

Thanks, new patch uploaded.  (I wasn&apos;t sure if there were other platforms that used V8.)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>847009</commentid>
    <comment_count>18</comment_count>
      <attachid>191299</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2013-03-04 16:40:34 -0800</bug_when>
    <thetext>Comment on attachment 191299
Patch

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

One minor issue below.

&gt; Source/WebCore/loader/FrameLoader.cpp:1594
&gt; +        m_client-&gt;didAccessInitialDocument();

It&apos;s a bit scary to make this call in the middle of the v8 security check.  I don&apos;t think we expect to be re-entered in that state.  Perhaps we should use a timer to make the call asynchronously.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>847156</commentid>
    <comment_count>19</comment_count>
    <who name="Charles Reis">creis</who>
    <bug_when>2013-03-04 18:26:15 -0800</bug_when>
    <thetext>(In reply to comment #18)
&gt; (From update of attachment 191299 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=191299&amp;action=review
&gt; 
&gt; One minor issue below.
&gt; 
&gt; &gt; Source/WebCore/loader/FrameLoader.cpp:1594
&gt; &gt; +        m_client-&gt;didAccessInitialDocument();
&gt; 
&gt; It&apos;s a bit scary to make this call in the middle of the v8 security check.  I don&apos;t think we expect to be re-entered in that state.  Perhaps we should use a timer to make the call asynchronously.

Hmm, is there a way to wait for that timer to fire in WebFrameTest?  I haven&apos;t found Otherwise the test checks synchronously and fails.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>847157</commentid>
    <comment_count>20</comment_count>
    <who name="Charles Reis">creis</who>
    <bug_when>2013-03-04 18:29:16 -0800</bug_when>
    <thetext>(In reply to comment #19)
&gt; (In reply to comment #18)
&gt; &gt; (From update of attachment 191299 [details] [details])
&gt; &gt; View in context: https://bugs.webkit.org/attachment.cgi?id=191299&amp;action=review
&gt; &gt; 
&gt; &gt; One minor issue below.
&gt; &gt; 
&gt; &gt; &gt; Source/WebCore/loader/FrameLoader.cpp:1594
&gt; &gt; &gt; +        m_client-&gt;didAccessInitialDocument();
&gt; &gt; 
&gt; &gt; It&apos;s a bit scary to make this call in the middle of the v8 security check.  I don&apos;t think we expect to be re-entered in that state.  Perhaps we should use a timer to make the call asynchronously.
&gt; 
&gt; Hmm, is there a way to wait for that timer to fire in WebFrameTest?  I haven&apos;t found Otherwise the test checks synchronously and fails.

Nevermind.  Stumbled across runPendingTasks().</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>847159</commentid>
    <comment_count>21</comment_count>
      <attachid>191372</attachid>
    <who name="Charles Reis">creis</who>
    <bug_when>2013-03-04 18:34:06 -0800</bug_when>
    <thetext>Created attachment 191372
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>847952</commentid>
    <comment_count>22</comment_count>
      <attachid>191372</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2013-03-05 12:53:28 -0800</bug_when>
    <thetext>Comment on attachment 191372
Patch

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

&gt; Source/WebCore/loader/FrameLoader.cpp:1601
&gt; +{

I would have added an ASSERT here that m_didAccessInitialDocument was set, but you don&apos;t need to re-spin your patch for that.

&gt; Source/WebKit/chromium/tests/WebFrameTest.cpp:2433
&gt; +    TestAccessInitialDocumentWebFrameClient() : m_didAccessInitialDocument(false)

Technically the : and the characters after that go on a new line.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>847984</commentid>
    <comment_count>23</comment_count>
      <attachid>191372</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-03-05 13:13:15 -0800</bug_when>
    <thetext>Comment on attachment 191372
Patch

Clearing flags on attachment: 191372

Committed r144805: &lt;http://trac.webkit.org/changeset/144805&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>847985</commentid>
    <comment_count>24</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-03-05 13:13:20 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>184775</attachid>
            <date>2013-01-25 11:02:14 -0800</date>
            <delta_ts>2013-03-04 09:44:51 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-107963-20130125105905.patch</filename>
            <type>text/plain</type>
            <size>10546</size>
            <attacher name="Charles Reis">creis</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQwODQwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOWEzZDI0Nzk2YjAxMDJj
Yjk1N2Y2MDc0YzkxYzA0MTM4OTZhN2FlNy4uNWU5YjM3ODFmYzU2OGZhNWE2YzgzZmIwZTJjNjcx
ZDA3MGQxNzIxNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMzIEBACisyMDEzLTAxLTI1ICBDaGFy
bGllIFJlaXMgIDxjcmVpc0BjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgQWRkIEZyYW1lTG9hZGVy
Q2xpZW50OjpkaWRBY2Nlc3NJbml0aWFsRG9jdW1lbnQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEwNzk2MworCisgICAgICAgIE5vdGlmaWVzIHRoZSBG
cmFtZUxvYWRlckNsaWVudCBpZiBhbm90aGVyIHBhZ2UgYWNjZXNzZXMgdGhlCisgICAgICAgIGlu
aXRpYWwgZW1wdHkgZG9jdW1lbnQgb2YgYSBtYWluIGZyYW1lLiAgSW4gdGhpcyBjYXNlLCBpdCBp
cworICAgICAgICBubyBsb25nZXIgc2FmZSB0byBkaXNwbGF5IHRoZSBwcm92aXNpb25hbCBVUkwu
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgTm8gbmV3
IHRlc3RzIChPT1BTISkuCisKKyAgICAgICAgKiBiaW5kaW5ncy92OC9WOERPTVdpbmRvd1NoZWxs
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlY4RE9NV2luZG93U2hlbGw6OnNldFNlY3VyaXR5VG9r
ZW4pOgorICAgICAgICAgICAgVXNlIGRlZmF1bHQgdG9rZW4gZm9yIGluaXRpYWwgZG9jdW1lbnQu
CisgICAgICAgICogYmluZGluZ3MvdjgvY3VzdG9tL1Y4RE9NV2luZG93Q3VzdG9tLmNwcDoKKyAg
ICAgICAgICAgIE5vdGlmeSBsb2FkZXIgaWYgaW5pdGlhbCBkb2N1bWVudCBpcyBhY2Nlc3NlZC4K
KyAgICAgICAgKFdlYkNvcmU6OlY4RE9NV2luZG93OjpuYW1lZFNlY3VyaXR5Q2hlY2spOgorICAg
ICAgICAoV2ViQ29yZTo6VjhET01XaW5kb3c6OmluZGV4ZWRTZWN1cml0eUNoZWNrKToKKyAgICAg
ICAgKiBsb2FkZXIvRnJhbWVMb2FkZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVMb2Fk
ZXI6OkZyYW1lTG9hZGVyKToKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lTG9hZGVyOjpkaWRBY2Nl
c3NJbml0aWFsRG9jdW1lbnQpOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgICogbG9hZGVy
L0ZyYW1lTG9hZGVyLmg6CisgICAgICAgIChGcmFtZUxvYWRlcik6CisgICAgICAgICogbG9hZGVy
L0ZyYW1lTG9hZGVyQ2xpZW50Lmg6CisgICAgICAgIChGcmFtZUxvYWRlckNsaWVudCk6CisgICAg
ICAgIChXZWJDb3JlOjpGcmFtZUxvYWRlckNsaWVudDo6ZGlkQWNjZXNzSW5pdGlhbERvY3VtZW50
KToKKwogMjAxMy0wMS0yNSAgTWlrZSBXZXN0ICA8bWt3c3RAY2hyb21pdW0ub3JnPgogCiAgICAg
ICAgIFNjcmlwdENvbnRyb2xsZXI6OmV4ZWN1dGVJZkphdmFTY3JpcHRVUkwgaW5jb3JyZWN0bHkg
Y2hlY2tzIHZpZXdzb3VyY2UgbW9kZS4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21p
dW0vQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKaW5kZXggMjc3
ODM1Zjk2Y2Y3Njc5YzgyOWJlNjFjZDIzNGY3YzEwOGFiZDhiZi4uZjEzZGZiNDBhYzlmNzM5NGYz
NmFlZDg2YjNiZmYxODI2Nzk4N2MxNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1
bS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwyMyBAQAorMjAxMy0wMS0yNSAgQ2hhcmxpZSBSZWlzICA8Y3JlaXNAY2hyb21pdW0ub3Jn
PgorCisgICAgICAgIEFkZCBGcmFtZUxvYWRlckNsaWVudDo6ZGlkQWNjZXNzSW5pdGlhbERvY3Vt
ZW50CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDc5
NjMKKworICAgICAgICBOb3RpZmllcyBXZWJGcmFtZUNsaWVudCBpZiBhbm90aGVyIHBhZ2UgYWNj
ZXNzZXMgdGhlIGluaXRpYWwKKyAgICAgICAgZW1wdHkgZG9jdW1lbnQgb2YgYSBtYWluIGZyYW1l
LiAgSW4gdGhpcyBjYXNlLCBpdCBpcyBubyBsb25nZXIKKyAgICAgICAgc2FmZSB0byBkaXNwbGF5
IHRoZSBwcm92aXNpb25hbCBVUkwuCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgKiBwdWJsaWMvV2ViRnJhbWVDbGllbnQuaDoKKyAgICAgICAgKFdlYkZy
YW1lQ2xpZW50KToKKyAgICAgICAgKFdlYktpdDo6V2ViRnJhbWVDbGllbnQ6OmRpZEFjY2Vzc0lu
aXRpYWxEb2N1bWVudCk6CisgICAgICAgICogc3JjL0ZyYW1lTG9hZGVyQ2xpZW50SW1wbC5jcHA6
CisgICAgICAgIChXZWJLaXQ6OkZyYW1lTG9hZGVyQ2xpZW50SW1wbDo6ZGlkQWNjZXNzSW5pdGlh
bERvY3VtZW50KToKKyAgICAgICAgKFdlYktpdCk6CisgICAgICAgICogc3JjL0ZyYW1lTG9hZGVy
Q2xpZW50SW1wbC5oOgorICAgICAgICAoRnJhbWVMb2FkZXJDbGllbnRJbXBsKToKKwogMjAxMy0w
MS0yNSAgU2hlcmlmZiBCb3QgIDx3ZWJraXQucmV2aWV3LmJvdEBnbWFpbC5jb20+CiAKICAgICAg
ICAgVW5yZXZpZXdlZCwgcm9sbGluZyBvdXQgcjE0MDc3NC4KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL3Y4L1Y4RE9NV2luZG93U2hlbGwuY3BwIGIvU291cmNlL1dlYkNvcmUv
YmluZGluZ3MvdjgvVjhET01XaW5kb3dTaGVsbC5jcHAKaW5kZXggOWIxZWUzZDdkZjAxNDg0OGY0
YmFmODY1N2NjMzc5NTdjMjlhNTk3MC4uMjA1NGQwODI5YmQzNDg2NmU1NWMxYThjZTgxMGQzOWMz
NTliMzE2MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvVjhET01XaW5k
b3dTaGVsbC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvVjhET01XaW5kb3dT
aGVsbC5jcHAKQEAgLTM5NSw3ICszOTUsMTEgQEAgdm9pZCBWOERPTVdpbmRvd1NoZWxsOjpzZXRT
ZWN1cml0eVRva2VuKCkKICAgICAvLyBOb3RlOiB3ZSBjYW4ndCB1c2UgdGhlIEhUVFBPcmlnaW4g
aWYgaXQgd2FzIHNldCBmcm9tIHRoZSBET00uCiAgICAgU2VjdXJpdHlPcmlnaW4qIG9yaWdpbiA9
IGRvY3VtZW50LT5zZWN1cml0eU9yaWdpbigpOwogICAgIFN0cmluZyB0b2tlbjsKLSAgICBpZiAo
IW9yaWdpbi0+ZG9tYWluV2FzU2V0SW5ET00oKSkKKyAgICAvLyBXZSBzdGljayB3aXRoIGFuIGVt
cHR5IHRva2VuIGlmIGRvY3VtZW50LmRvbWFpbiB3YXMgbW9kaWZpZWQgb3IgaWYgd2UKKyAgICAv
LyBhcmUgaW4gdGhlIGluaXRpYWwgZW1wdHkgZG9jdW1lbnQsIHNvIHRoYXQgd2UgY2FuIGRvIGEg
ZnVsbCBjYW5BY2Nlc3MKKyAgICAvLyBjaGVjayBpbiB0aG9zZSBjYXNlcy4KKyAgICBpZiAoIW9y
aWdpbi0+ZG9tYWluV2FzU2V0SW5ET00oKQorICAgICAgICAmJiAhbV9mcmFtZS0+bG9hZGVyKCkt
PnN0YXRlTWFjaGluZSgpLT5pc0Rpc3BsYXlpbmdJbml0aWFsRW1wdHlEb2N1bWVudCgpKQogICAg
ICAgICB0b2tlbiA9IGRvY3VtZW50LT5zZWN1cml0eU9yaWdpbigpLT50b1N0cmluZygpOwogCiAg
ICAgLy8gQW4gZW1wdHkgb3IgIm51bGwiIHRva2VuIG1lYW5zIHdlIGFsd2F5cyBoYXZlIHRvIGNh
bGwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9WOERPTVdp
bmRvd0N1c3RvbS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0b20vVjhET01X
aW5kb3dDdXN0b20uY3BwCmluZGV4IDYxMzlkZDBiYmRiODdkYWM1OWM5Yzg5ZmQyNzYwMjNmNmY4
Yzk2YWEuLjE4OTJmMWE4NDMyYjNjMmExZWUxMGNmNGYxNmU3NDY4NGI4ZGVjMjMgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9WOERPTVdpbmRvd0N1c3RvbS5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4RE9NV2luZG93Q3Vz
dG9tLmNwcApAQCAtNTIxLDYgKzUyMSwxMCBAQCBib29sIFY4RE9NV2luZG93OjpuYW1lZFNlY3Vy
aXR5Q2hlY2sodjg6OkxvY2FsPHY4OjpPYmplY3Q+IGhvc3QsIHY4OjpMb2NhbDx2ODo6VgogICAg
IGlmICghdGFyZ2V0KQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKKyAgICAvLyBOb3RpZnkgdGhl
IGxvYWRlcidzIGNsaWVudCBpZiB0aGUgaW5pdGlhbCBkb2N1bWVudCBoYXMgYmVlbiBhY2Nlc3Nl
ZC4KKyAgICBpZiAodGFyZ2V0LT5sb2FkZXIoKS0+c3RhdGVNYWNoaW5lKCktPmlzRGlzcGxheWlu
Z0luaXRpYWxFbXB0eURvY3VtZW50KCkpCisgICAgICAgIHRhcmdldC0+bG9hZGVyKCktPmRpZEFj
Y2Vzc0luaXRpYWxEb2N1bWVudCgpOworCiAgICAgaWYgKGtleS0+SXNTdHJpbmcoKSkgewogICAg
ICAgICBERUZJTkVfU1RBVElDX0xPQ0FMKEF0b21pY1N0cmluZywgbmFtZU9mUHJvdG9Qcm9wZXJ0
eSwgKCJfX3Byb3RvX18iLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7CiAK
QEAgLTU1NSw2ICs1NTksMTAgQEAgYm9vbCBWOERPTVdpbmRvdzo6aW5kZXhlZFNlY3VyaXR5Q2hl
Y2sodjg6OkxvY2FsPHY4OjpPYmplY3Q+IGhvc3QsIHVpbnQzMl90IGluZGUKICAgICAgICAgcmV0
dXJuIGZhbHNlOwogICAgIEZyYW1lKiBjaGlsZEZyYW1lID0gIHRhcmdldC0+dHJlZSgpLT5zY29w
ZWRDaGlsZChpbmRleCk7CiAKKyAgICAvLyBOb3RpZnkgdGhlIGxvYWRlcidzIGNsaWVudCBpZiB0
aGUgaW5pdGlhbCBkb2N1bWVudCBoYXMgYmVlbiBhY2Nlc3NlZC4KKyAgICBpZiAodGFyZ2V0LT5s
b2FkZXIoKS0+c3RhdGVNYWNoaW5lKCktPmlzRGlzcGxheWluZ0luaXRpYWxFbXB0eURvY3VtZW50
KCkpCisgICAgICAgIHRhcmdldC0+bG9hZGVyKCktPmRpZEFjY2Vzc0luaXRpYWxEb2N1bWVudCgp
OworCiAgICAgLy8gTm90aWNlIHRoYXQgd2UgY2FuJ3QgY2FsbCBIYXNSZWFsTmFtZWRQcm9wZXJ0
eSBmb3IgQUNDRVNTX0hBUwogICAgIC8vIGJlY2F1c2UgdGhhdCB3b3VsZCBnZW5lcmF0ZSBpbmZp
bml0ZSByZWN1cnNpb24uCiAgICAgaWYgKHR5cGUgPT0gdjg6OkFDQ0VTU19IQVMgJiYgY2hpbGRG
cmFtZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlci5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXIuY3BwCmluZGV4IDk1YjUxM2I1NGUx
YzI0YmVlZjQ5MDcxMzkzZTkxN2YwNzM3YWJjMmIuLjA2YzVlNTkzNTBmNzhkNzlkNzM3ODE1NTA1
NzhhNzE1NGZmYzM5YTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxv
YWRlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyLmNwcApAQCAt
MjMyLDYgKzIzMiw3IEBAIEZyYW1lTG9hZGVyOjpGcmFtZUxvYWRlcihGcmFtZSogZnJhbWUsIEZy
YW1lTG9hZGVyQ2xpZW50KiBjbGllbnQpCiAgICAgLCBtX3Nob3VsZENhbGxDaGVja0NvbXBsZXRl
ZChmYWxzZSkKICAgICAsIG1fc2hvdWxkQ2FsbENoZWNrTG9hZENvbXBsZXRlKGZhbHNlKQogICAg
ICwgbV9vcGVuZXIoMCkKKyAgICAsIG1fZGlkQWNjZXNzSW5pdGlhbERvY3VtZW50KGZhbHNlKQog
ICAgICwgbV9kaWRQZXJmb3JtRmlyc3ROYXZpZ2F0aW9uKGZhbHNlKQogICAgICwgbV9sb2FkaW5n
RnJvbUNhY2hlZFBhZ2UoZmFsc2UpCiAgICAgLCBtX3N1cHByZXNzT3BlbmVySW5OZXdGcmFtZShm
YWxzZSkKQEAgLTE1ODMsNiArMTU4NCwxNSBAQCBEb2N1bWVudExvYWRlciogRnJhbWVMb2FkZXI6
OmFjdGl2ZURvY3VtZW50TG9hZGVyKCkgY29uc3QKICAgICByZXR1cm4gbV9kb2N1bWVudExvYWRl
ci5nZXQoKTsKIH0KIAordm9pZCBGcmFtZUxvYWRlcjo6ZGlkQWNjZXNzSW5pdGlhbERvY3VtZW50
KCkKK3sKKyAgICAvLyBXZSBvbmx5IG5lZWQgdG8gbm90aWZ5IHRoZSBjbGllbnQgb25jZSwgYW5k
IG9ubHkgZm9yIHRoZSBtYWluIGZyYW1lLgorICAgIGlmIChpc0xvYWRpbmdNYWluRnJhbWUoKSAm
JiAhbV9kaWRBY2Nlc3NJbml0aWFsRG9jdW1lbnQpIHsKKyAgICAgICAgbV9kaWRBY2Nlc3NJbml0
aWFsRG9jdW1lbnQgPSB0cnVlOworICAgICAgICBtX2NsaWVudC0+ZGlkQWNjZXNzSW5pdGlhbERv
Y3VtZW50KCk7CisgICAgfQorfQorCiBib29sIEZyYW1lTG9hZGVyOjppc0xvYWRpbmcoKSBjb25z
dAogewogICAgIERvY3VtZW50TG9hZGVyKiBkb2NMb2FkZXIgPSBhY3RpdmVEb2N1bWVudExvYWRl
cigpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyLmggYi9T
b3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXIuaAppbmRleCBmMzI5MjcyN2QyYzgwZmU0
ODMzMTg5YjZiMDEyYzEzNDdlNzkxZWNmLi4wNzcwMDJjMWVmMzU0MDg1YWZhMzEzODE3MjMzN2Fh
YmZhMjNjOWYwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXIu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXIuaApAQCAtMTM3LDYgKzEz
Nyw4IEBAIHB1YmxpYzoKICAgICAvLyBGSVhNRTogY2xlYXIoKSBpcyB0cnlpbmcgdG8gZG8gdG9v
IG1hbnkgdGhpbmdzLiBXZSBzaG91bGQgYnJlYWsgaXQgZG93biBpbnRvIHNtYWxsZXIgZnVuY3Rp
b25zIChpZGVhbGx5IHdpdGggZmV3ZXIgcmF3IEJvb2xlYW4gcGFyYW1ldGVycykuCiAgICAgdm9p
ZCBjbGVhcihEb2N1bWVudCogbmV3RG9jdW1lbnQsIGJvb2wgY2xlYXJXaW5kb3dQcm9wZXJ0aWVz
ID0gdHJ1ZSwgYm9vbCBjbGVhclNjcmlwdE9iamVjdHMgPSB0cnVlLCBib29sIGNsZWFyRnJhbWVW
aWV3ID0gdHJ1ZSk7CiAKKyAgICB2b2lkIGRpZEFjY2Vzc0luaXRpYWxEb2N1bWVudCgpOworCiAg
ICAgYm9vbCBpc0xvYWRpbmcoKSBjb25zdDsKICAgICBib29sIGZyYW1lSGFzTG9hZGVkKCkgY29u
c3Q7CiAKQEAgLTQzMCw2ICs0MzIsNyBAQCBwcml2YXRlOgogICAgIEZyYW1lKiBtX29wZW5lcjsK
ICAgICBIYXNoU2V0PEZyYW1lKj4gbV9vcGVuZWRGcmFtZXM7CiAKKyAgICBib29sIG1fZGlkQWNj
ZXNzSW5pdGlhbERvY3VtZW50OwogICAgIGJvb2wgbV9kaWRQZXJmb3JtRmlyc3ROYXZpZ2F0aW9u
OwogICAgIGJvb2wgbV9sb2FkaW5nRnJvbUNhY2hlZFBhZ2U7CiAgICAgYm9vbCBtX3N1cHByZXNz
T3BlbmVySW5OZXdGcmFtZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFt
ZUxvYWRlckNsaWVudC5oIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyQ2xpZW50
LmgKaW5kZXggM2JkMTBhNzg4MmZkN2ZmMmFhYTY1NDEwZjNhNmU3YTFhYTBjODk0ZS4uMjllMWYy
NTUxZWMyOTY5ODAyMjY0NGNlZDhlYTUyODc2OGExZDc4NyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyQ2xpZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvbG9h
ZGVyL0ZyYW1lTG9hZGVyQ2xpZW50LmgKQEAgLTIxMyw2ICsyMTMsMTEgQEAgbmFtZXNwYWNlIFdl
YkNvcmUgewogICAgICAgICB2aXJ0dWFsIGJvb2wgc2hvdWxkU3RvcExvYWRpbmdGb3JIaXN0b3J5
SXRlbShIaXN0b3J5SXRlbSopIGNvbnN0ID0gMDsKICAgICAgICAgdmlydHVhbCB2b2lkIHVwZGF0
ZUdsb2JhbEhpc3RvcnlJdGVtRm9yUGFnZSgpIHsgfQogCisgICAgICAgIC8vIEFub3RoZXIgcGFn
ZSBoYXMgYWNjZXNzZWQgdGhlIGluaXRpYWwgZW1wdHkgZG9jdW1lbnQgb2YgdGhpcyBmcmFtZS4K
KyAgICAgICAgLy8gSXQgaXMgbm8gbG9uZ2VyIHNhZmUgdG8gZGlzcGxheSBhIHByb3Zpc2lvbmFs
IFVSTCwgc2luY2UgYSBVUkwgc3Bvb2YKKyAgICAgICAgLy8gaXMgbm93IHBvc3NpYmxlLgorICAg
ICAgICB2aXJ0dWFsIHZvaWQgZGlkQWNjZXNzSW5pdGlhbERvY3VtZW50KCkgeyB9CisKICAgICAg
ICAgLy8gVGhpcyBmcmFtZSBoYXMgc2V0IGl0cyBvcGVuZXIgdG8gbnVsbCwgZGlzb3duaW5nIGl0
IGZvciB0aGUgbGlmZXRpbWUgb2YgdGhlIGZyYW1lLgogICAgICAgICAvLyBTZWUgaHR0cDovL2h0
bWwuc3BlYy53aGF0d2cub3JnLyNkb20tb3BlbmVyLgogICAgICAgICAvLyBGSVhNRTogSlNDIHNo
b3VsZCBhbGxvdyBkaXNvd25pbmcgb3BlbmVyLiAtIDxodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MTAzOTEzPi4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21p
dW0vcHVibGljL1dlYkZyYW1lQ2xpZW50LmggYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1Ymxp
Yy9XZWJGcmFtZUNsaWVudC5oCmluZGV4IDljYmUwMDlhYjc4NTE2N2Y0NTc0ZjNmOTVmNTJlZDk3
MjE1MDE0YTkuLmQwMWE1Y2Q1ZTU2MjFmMjdhMWQyNzUyZmVhNGY1M2FjM2MxMWFhNDQgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYkZyYW1lQ2xpZW50LmgKKysr
IGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViRnJhbWVDbGllbnQuaApAQCAtMTA1
LDYgKzEwNSwxMSBAQCBwdWJsaWM6CiAKICAgICAvLyBHZW5lcmFsIG5vdGlmaWNhdGlvbnMgLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIAorICAgIC8vIElu
ZGljYXRlcyB0aGF0IGFub3RoZXIgcGFnZSBoYXMgYWNjZXNzZWQgdGhlIERPTSBvZiB0aGUgaW5p
dGlhbCBlbXB0eQorICAgIC8vIGRvY3VtZW50IG9mIGEgbWFpbiBmcmFtZS4gQWZ0ZXIgdGhpcywg
aXQgaXMgbm8gbG9uZ2VyIHNhZmUgdG8gc2hvdyBhCisgICAgLy8gcGVuZGluZyBuYXZpZ2F0aW9u
J3MgVVJMLCBiZWNhdXNlIGEgVVJMIHNwb29mIGlzIHBvc3NpYmxlLgorICAgIHZpcnR1YWwgdm9p
ZCBkaWRBY2Nlc3NJbml0aWFsRG9jdW1lbnQoV2ViRnJhbWUqKSB7IH0KKwogICAgIC8vIEEgY2hp
bGQgZnJhbWUgd2FzIGNyZWF0ZWQgaW4gdGhpcyBmcmFtZS4gVGhpcyBpcyBjYWxsZWQgd2hlbiB0
aGUgZnJhbWUKICAgICAvLyBpcyBjcmVhdGVkIGFuZCBpbml0aWFsaXplZC4KICAgICB2aXJ0dWFs
IHZvaWQgZGlkQ3JlYXRlRnJhbWUoV2ViRnJhbWUqIHBhcmVudCwgV2ViRnJhbWUqIGNoaWxkKSB7
IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0ZyYW1lTG9hZGVyQ2xp
ZW50SW1wbC5jcHAgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9GcmFtZUxvYWRlckNsaWVu
dEltcGwuY3BwCmluZGV4IDBkZWFjNTM4ZDg4ZGQ4ZmY3YzczODA1Y2VjM2ZjZjFlOWZkNzZlMGUu
LjQ1OTE2YzE5MGM3ZDQ0NTMwYjk5ODY1NTAxMmYwNWE2ZjU2ZjgyYmMgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0ZyYW1lTG9hZGVyQ2xpZW50SW1wbC5jcHAKKysrIGIv
U291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvRnJhbWVMb2FkZXJDbGllbnRJbXBsLmNwcApAQCAt
MTIxNiw2ICsxMjE2LDEyIEBAIGJvb2wgRnJhbWVMb2FkZXJDbGllbnRJbXBsOjpzaG91bGRTdG9w
TG9hZGluZ0Zvckhpc3RvcnlJdGVtKEhpc3RvcnlJdGVtKiB0YXJnZXRJCiAgICAgcmV0dXJuICF1
cmwucHJvdG9jb2xJcyhiYWNrRm9yd2FyZE5hdmlnYXRpb25TY2hlbWUpOwogfQogCit2b2lkIEZy
YW1lTG9hZGVyQ2xpZW50SW1wbDo6ZGlkQWNjZXNzSW5pdGlhbERvY3VtZW50KCkKK3sKKyAgICBp
ZiAobV93ZWJGcmFtZS0+Y2xpZW50KCkpCisgICAgICAgIG1fd2ViRnJhbWUtPmNsaWVudCgpLT5k
aWRBY2Nlc3NJbml0aWFsRG9jdW1lbnQobV93ZWJGcmFtZSk7Cit9CisKIHZvaWQgRnJhbWVMb2Fk
ZXJDbGllbnRJbXBsOjpkaWREaXNvd25PcGVuZXIoKQogewogICAgIGlmIChtX3dlYkZyYW1lLT5j
bGllbnQoKSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0ZyYW1lTG9h
ZGVyQ2xpZW50SW1wbC5oIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvRnJhbWVMb2FkZXJD
bGllbnRJbXBsLmgKaW5kZXggNmE4Njg1ZjM3ZjJmYzZjYTdmYmZkOGZkZmNmNjRmODE4MmQ5YTIz
MC4uZmZiNDUyODA1NjViM2VkYjIwMjYwNGRmMWRkZTQwNWNmOTYxOGFlZiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvRnJhbWVMb2FkZXJDbGllbnRJbXBsLmgKKysrIGIv
U291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvRnJhbWVMb2FkZXJDbGllbnRJbXBsLmgKQEAgLTEz
OCw2ICsxMzgsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIHVwZGF0ZUdsb2JhbEhpc3Rv
cnlSZWRpcmVjdExpbmtzKCk7CiAgICAgdmlydHVhbCBib29sIHNob3VsZEdvVG9IaXN0b3J5SXRl
bShXZWJDb3JlOjpIaXN0b3J5SXRlbSopIGNvbnN0OwogICAgIHZpcnR1YWwgYm9vbCBzaG91bGRT
dG9wTG9hZGluZ0Zvckhpc3RvcnlJdGVtKFdlYkNvcmU6Okhpc3RvcnlJdGVtKikgY29uc3Q7Cisg
ICAgdmlydHVhbCB2b2lkIGRpZEFjY2Vzc0luaXRpYWxEb2N1bWVudCgpOwogICAgIHZpcnR1YWwg
dm9pZCBkaWREaXNvd25PcGVuZXIoKTsKICAgICB2aXJ0dWFsIHZvaWQgZGlkRGlzcGxheUluc2Vj
dXJlQ29udGVudCgpOwogICAgIHZpcnR1YWwgdm9pZCBkaWRSdW5JbnNlY3VyZUNvbnRlbnQoV2Vi
Q29yZTo6U2VjdXJpdHlPcmlnaW4qLCBjb25zdCBXZWJDb3JlOjpLVVJMJiBpbnNlY3VyZVVSTCk7
Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>191262</attachid>
            <date>2013-03-04 09:44:54 -0800</date>
            <delta_ts>2013-03-04 13:16:42 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-107963-20130304094102.patch</filename>
            <type>text/plain</type>
            <size>13743</size>
            <attacher name="Charles Reis">creis</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQ0NjM0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMGRlNWRkNzdmN2I1MTk3
YTg5OTlhOGE3M2ZmNzFhY2NlYjYwMjNiOS4uZjUxMzAwMGUwODFlYWQ4NDQwNmExZGQ5ZmQ4ODU3
ZDg2ZjkyMzZlOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM0IEBACisyMDEzLTAzLTA0ICBDaGFy
bGllIFJlaXMgIDxjcmVpc0BjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgQWRkIEZyYW1lTG9hZGVy
Q2xpZW50OjpkaWRBY2Nlc3NJbml0aWFsRG9jdW1lbnQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEwNzk2MworCisgICAgICAgIE5vdGlmaWVzIHRoZSBG
cmFtZUxvYWRlckNsaWVudCBpZiBhbm90aGVyIHBhZ2UgYWNjZXNzZXMgdGhlCisgICAgICAgIGlu
aXRpYWwgZW1wdHkgZG9jdW1lbnQgb2YgYSBtYWluIGZyYW1lLiAgSW4gdGhpcyBjYXNlLCBpdCBp
cworICAgICAgICBubyBsb25nZXIgc2FmZSB0byBkaXNwbGF5IHRoZSBwcm92aXNpb25hbCBVUkwu
CisKKyAgICAgICAgT25seSB0YWtlcyBlZmZlY3QgZm9yIFBMQVRGT1JNKENIUk9NSVVNKSwgc2lu
Y2Ugbm8gb3RoZXIgcGxhdGZvcm1zCisgICAgICAgIGxpc3RlbiB0byB0aGUgbm90aWZpY2F0aW9u
LgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogYmlu
ZGluZ3MvdjgvVjhET01XaW5kb3dTaGVsbC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpWOERPTVdp
bmRvd1NoZWxsOjpzZXRTZWN1cml0eVRva2VuKToKKyAgICAgICAgICAgIFVzZSBkZWZhdWx0IHRv
a2VuIGZvciBpbml0aWFsIGRvY3VtZW50LgorICAgICAgICAqIGJpbmRpbmdzL3Y4L2N1c3RvbS9W
OERPTVdpbmRvd0N1c3RvbS5jcHA6CisgICAgICAgICAgICBOb3RpZnkgbG9hZGVyIGlmIGluaXRp
YWwgZG9jdW1lbnQgaXMgYWNjZXNzZWQuCisgICAgICAgIChXZWJDb3JlOjpWOERPTVdpbmRvdzo6
bmFtZWRTZWN1cml0eUNoZWNrKToKKyAgICAgICAgKFdlYkNvcmU6OlY4RE9NV2luZG93OjppbmRl
eGVkU2VjdXJpdHlDaGVjayk6CisgICAgICAgICogbG9hZGVyL0ZyYW1lTG9hZGVyLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OkZyYW1lTG9hZGVyOjpGcmFtZUxvYWRlcik6CisgICAgICAgIChXZWJD
b3JlOjpGcmFtZUxvYWRlcjo6ZGlkQWNjZXNzSW5pdGlhbERvY3VtZW50KToKKyAgICAgICAgKFdl
YkNvcmUpOgorICAgICAgICAqIGxvYWRlci9GcmFtZUxvYWRlci5oOgorICAgICAgICAoRnJhbWVM
b2FkZXIpOgorICAgICAgICAqIGxvYWRlci9GcmFtZUxvYWRlckNsaWVudC5oOgorICAgICAgICAo
RnJhbWVMb2FkZXJDbGllbnQpOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVMb2FkZXJDbGllbnQ6
OmRpZEFjY2Vzc0luaXRpYWxEb2N1bWVudCk6CisKIDIwMTMtMDMtMDQgIHBlYXZvQG91dGxvb2su
Y29tICA8cGVhdm9Ab3V0bG9vay5jb20+CiAKICAgICAgICAgW0N1cmxdIENvbXBpbGUgZml4IGFm
dGVyIHIxNDQyMTYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9n
IGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKaW5kZXggZmJlM2UwMTIzMDkxMThj
NjY0ODE3Njg2N2MxZDA3MjRmYzY1MjBiYy4uNjFlNGJkYWE4MGZiZDFhOWFkYjg3ZTA2YTUxZDhh
NDY2YWQxZGQ0NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cK
KysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyNCBAQAor
MjAxMy0wMy0wNCAgQ2hhcmxpZSBSZWlzICA8Y3JlaXNAY2hyb21pdW0ub3JnPgorCisgICAgICAg
IEFkZCBGcmFtZUxvYWRlckNsaWVudDo6ZGlkQWNjZXNzSW5pdGlhbERvY3VtZW50CisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDc5NjMKKworICAgICAg
ICBOb3RpZmllcyBXZWJGcmFtZUNsaWVudCBpZiBhbm90aGVyIHBhZ2UgYWNjZXNzZXMgdGhlIGlu
aXRpYWwKKyAgICAgICAgZW1wdHkgZG9jdW1lbnQgb2YgYSBtYWluIGZyYW1lLiAgSW4gdGhpcyBj
YXNlLCBpdCBpcyBubyBsb25nZXIKKyAgICAgICAgc2FmZSB0byBkaXNwbGF5IHRoZSBwcm92aXNp
b25hbCBVUkwuCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgKiBwdWJsaWMvV2ViRnJhbWVDbGllbnQuaDoKKyAgICAgICAgKFdlYkZyYW1lQ2xpZW50KToK
KyAgICAgICAgKFdlYktpdDo6V2ViRnJhbWVDbGllbnQ6OmRpZEFjY2Vzc0luaXRpYWxEb2N1bWVu
dCk6CisgICAgICAgICogc3JjL0ZyYW1lTG9hZGVyQ2xpZW50SW1wbC5jcHA6CisgICAgICAgIChX
ZWJLaXQ6OkZyYW1lTG9hZGVyQ2xpZW50SW1wbDo6ZGlkQWNjZXNzSW5pdGlhbERvY3VtZW50KToK
KyAgICAgICAgKFdlYktpdCk6CisgICAgICAgICogc3JjL0ZyYW1lTG9hZGVyQ2xpZW50SW1wbC5o
OgorICAgICAgICAoRnJhbWVMb2FkZXJDbGllbnRJbXBsKToKKyAgICAgICAgKiB0ZXN0cy9XZWJG
cmFtZVRlc3QuY3BwOgorCiAyMDEzLTAzLTA0ICBBbmRyZXkgTHVzaG5pa292ICA8bHVzaG5pa292
QGNocm9taXVtLm9yZz4KIAogICAgICAgICBXZWIgSW5zcGVjdG9yOiBhZGQgQWNlIGVkaXRvciBl
eHBlcmltZW50CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9WOERPTVdp
bmRvd1NoZWxsLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1Y4RE9NV2luZG93U2hl
bGwuY3BwCmluZGV4IDM0NDgxYWU3YjIyZDc5OGM1Y2MwZjk3YmRlNDdlZjk5NmI3ZTM2YzQuLjJi
OTY4MGMxYzRhMGFhNDg0OTZmYTM0NTY3MjkwMmQwZDgyYjBkNjAgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1Y4RE9NV2luZG93U2hlbGwuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL3Y4L1Y4RE9NV2luZG93U2hlbGwuY3BwCkBAIC00MDIsOCArNDAyLDE3
IEBAIHZvaWQgVjhET01XaW5kb3dTaGVsbDo6c2V0U2VjdXJpdHlUb2tlbigpCiAgICAgLy8gTm90
ZTogd2UgY2FuJ3QgdXNlIHRoZSBIVFRQT3JpZ2luIGlmIGl0IHdhcyBzZXQgZnJvbSB0aGUgRE9N
LgogICAgIFNlY3VyaXR5T3JpZ2luKiBvcmlnaW4gPSBkb2N1bWVudC0+c2VjdXJpdHlPcmlnaW4o
KTsKICAgICBTdHJpbmcgdG9rZW47Ci0gICAgaWYgKCFvcmlnaW4tPmRvbWFpbldhc1NldEluRE9N
KCkpCisjaWYgUExBVEZPUk0oQ0hST01JVU0pCisgICAgLy8gV2Ugc3RpY2sgd2l0aCBhbiBlbXB0
eSB0b2tlbiBpZiBkb2N1bWVudC5kb21haW4gd2FzIG1vZGlmaWVkIG9yIGlmIHdlCisgICAgLy8g
YXJlIGluIHRoZSBpbml0aWFsIGVtcHR5IGRvY3VtZW50LCBzbyB0aGF0IHdlIGNhbiBkbyBhIGZ1
bGwgY2FuQWNjZXNzCisgICAgLy8gY2hlY2sgaW4gdGhvc2UgY2FzZXMuCisgICAgaWYgKCFvcmln
aW4tPmRvbWFpbldhc1NldEluRE9NKCkKKyAgICAgICAgJiYgIW1fZnJhbWUtPmxvYWRlcigpLT5z
dGF0ZU1hY2hpbmUoKS0+aXNEaXNwbGF5aW5nSW5pdGlhbEVtcHR5RG9jdW1lbnQoKSkgeworI2Vs
c2UKKyAgICBpZiAoIW9yaWdpbi0+ZG9tYWluV2FzU2V0SW5ET00oKSkgeworI2VuZGlmCiAgICAg
ICAgIHRva2VuID0gZG9jdW1lbnQtPnNlY3VyaXR5T3JpZ2luKCktPnRvU3RyaW5nKCk7CisgICAg
fQogCiAgICAgLy8gQW4gZW1wdHkgb3IgIm51bGwiIHRva2VuIG1lYW5zIHdlIGFsd2F5cyBoYXZl
IHRvIGNhbGwKICAgICAvLyBjYW5BY2Nlc3MuIFRoZSB0b1N0cmluZyBtZXRob2Qgb24gc2VjdXJp
dHlPcmlnaW5zIHJldHVybnMgdGhlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy92OC9jdXN0b20vVjhET01XaW5kb3dDdXN0b20uY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3MvdjgvY3VzdG9tL1Y4RE9NV2luZG93Q3VzdG9tLmNwcAppbmRleCA2Y2VmMmU1NmNlYzY2ZGU5
Mzc2YmNkYjRiYWYwMGVjMjVlMzI5M2ZiLi5kN2IyNDRhNTA3N2Q1Yjg5OTQ4ZjdmYmY4N2QyMjRk
YzFjM2VlM2IzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0b20v
VjhET01XaW5kb3dDdXN0b20uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L2N1
c3RvbS9WOERPTVdpbmRvd0N1c3RvbS5jcHAKQEAgLTUyMyw2ICs1MjMsMTIgQEAgYm9vbCBWOERP
TVdpbmRvdzo6bmFtZWRTZWN1cml0eUNoZWNrQ3VzdG9tKHY4OjpMb2NhbDx2ODo6T2JqZWN0PiBo
b3N0LCB2ODo6TG9jYWwKICAgICBpZiAoIXRhcmdldCkKICAgICAgICAgcmV0dXJuIGZhbHNlOwog
CisjaWYgUExBVEZPUk0oQ0hST01JVU0pCisgICAgLy8gTm90aWZ5IHRoZSBsb2FkZXIncyBjbGll
bnQgaWYgdGhlIGluaXRpYWwgZG9jdW1lbnQgaGFzIGJlZW4gYWNjZXNzZWQuCisgICAgaWYgKHRh
cmdldC0+bG9hZGVyKCktPnN0YXRlTWFjaGluZSgpLT5pc0Rpc3BsYXlpbmdJbml0aWFsRW1wdHlE
b2N1bWVudCgpKQorICAgICAgICB0YXJnZXQtPmxvYWRlcigpLT5kaWRBY2Nlc3NJbml0aWFsRG9j
dW1lbnQoKTsKKyNlbmRpZgorCiAgICAgaWYgKGtleS0+SXNTdHJpbmcoKSkgewogICAgICAgICBE
RUZJTkVfU1RBVElDX0xPQ0FMKEF0b21pY1N0cmluZywgbmFtZU9mUHJvdG9Qcm9wZXJ0eSwgKCJf
X3Byb3RvX18iLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7CiAKQEAgLTU1
OCw2ICs1NjQsMTIgQEAgYm9vbCBWOERPTVdpbmRvdzo6aW5kZXhlZFNlY3VyaXR5Q2hlY2tDdXN0
b20odjg6OkxvY2FsPHY4OjpPYmplY3Q+IGhvc3QsIHVpbnQzMl8KICAgICAgICAgcmV0dXJuIGZh
bHNlOwogICAgIEZyYW1lKiBjaGlsZEZyYW1lID0gIHRhcmdldC0+dHJlZSgpLT5zY29wZWRDaGls
ZChpbmRleCk7CiAKKyNpZiBQTEFURk9STShDSFJPTUlVTSkKKyAgICAvLyBOb3RpZnkgdGhlIGxv
YWRlcidzIGNsaWVudCBpZiB0aGUgaW5pdGlhbCBkb2N1bWVudCBoYXMgYmVlbiBhY2Nlc3NlZC4K
KyAgICBpZiAodGFyZ2V0LT5sb2FkZXIoKS0+c3RhdGVNYWNoaW5lKCktPmlzRGlzcGxheWluZ0lu
aXRpYWxFbXB0eURvY3VtZW50KCkpCisgICAgICAgIHRhcmdldC0+bG9hZGVyKCktPmRpZEFjY2Vz
c0luaXRpYWxEb2N1bWVudCgpOworI2VuZGlmCisKICAgICAvLyBOb3RpY2UgdGhhdCB3ZSBjYW4n
dCBjYWxsIEhhc1JlYWxOYW1lZFByb3BlcnR5IGZvciBBQ0NFU1NfSEFTCiAgICAgLy8gYmVjYXVz
ZSB0aGF0IHdvdWxkIGdlbmVyYXRlIGluZmluaXRlIHJlY3Vyc2lvbi4KICAgICBpZiAodHlwZSA9
PSB2ODo6QUNDRVNTX0hBUyAmJiBjaGlsZEZyYW1lKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvbG9hZGVyL0ZyYW1lTG9hZGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxv
YWRlci5jcHAKaW5kZXggMmM2MDU2YmY1MTg0NmM4YmFmNGJiNTY3NmRiMzZkOGIwYjJjYjM4Ni4u
N2Y2ZmM1ZjRjMjFjOTNkNGU3M2E0YjM2ZTkzZjNhMDYxNDA1MmJlNSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9s
b2FkZXIvRnJhbWVMb2FkZXIuY3BwCkBAIC0yMzMsNiArMjMzLDkgQEAgRnJhbWVMb2FkZXI6OkZy
YW1lTG9hZGVyKEZyYW1lKiBmcmFtZSwgRnJhbWVMb2FkZXJDbGllbnQqIGNsaWVudCkKICAgICAs
IG1fc2hvdWxkQ2FsbENoZWNrQ29tcGxldGVkKGZhbHNlKQogICAgICwgbV9zaG91bGRDYWxsQ2hl
Y2tMb2FkQ29tcGxldGUoZmFsc2UpCiAgICAgLCBtX29wZW5lcigwKQorI2lmIFBMQVRGT1JNKENI
Uk9NSVVNKQorICAgICwgbV9kaWRBY2Nlc3NJbml0aWFsRG9jdW1lbnQoZmFsc2UpCisjZW5kaWYK
ICAgICAsIG1fZGlkUGVyZm9ybUZpcnN0TmF2aWdhdGlvbihmYWxzZSkKICAgICAsIG1fbG9hZGlu
Z0Zyb21DYWNoZWRQYWdlKGZhbHNlKQogICAgICwgbV9zdXBwcmVzc09wZW5lckluTmV3RnJhbWUo
ZmFsc2UpCkBAIC0xNTgyLDYgKzE1ODUsMTcgQEAgRG9jdW1lbnRMb2FkZXIqIEZyYW1lTG9hZGVy
OjphY3RpdmVEb2N1bWVudExvYWRlcigpIGNvbnN0CiAgICAgcmV0dXJuIG1fZG9jdW1lbnRMb2Fk
ZXIuZ2V0KCk7CiB9CiAKKyNpZiBQTEFURk9STShDSFJPTUlVTSkKK3ZvaWQgRnJhbWVMb2FkZXI6
OmRpZEFjY2Vzc0luaXRpYWxEb2N1bWVudCgpCit7CisgICAgLy8gV2Ugb25seSBuZWVkIHRvIG5v
dGlmeSB0aGUgY2xpZW50IG9uY2UsIGFuZCBvbmx5IGZvciB0aGUgbWFpbiBmcmFtZS4KKyAgICBp
ZiAoaXNMb2FkaW5nTWFpbkZyYW1lKCkgJiYgIW1fZGlkQWNjZXNzSW5pdGlhbERvY3VtZW50KSB7
CisgICAgICAgIG1fZGlkQWNjZXNzSW5pdGlhbERvY3VtZW50ID0gdHJ1ZTsKKyAgICAgICAgbV9j
bGllbnQtPmRpZEFjY2Vzc0luaXRpYWxEb2N1bWVudCgpOworICAgIH0KK30KKyNlbmRpZgorCiBi
b29sIEZyYW1lTG9hZGVyOjppc0xvYWRpbmcoKSBjb25zdAogewogICAgIERvY3VtZW50TG9hZGVy
KiBkb2NMb2FkZXIgPSBhY3RpdmVEb2N1bWVudExvYWRlcigpOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJh
bWVMb2FkZXIuaAppbmRleCBmMzI5MjcyN2QyYzgwZmU0ODMzMTg5YjZiMDEyYzEzNDdlNzkxZWNm
Li5hODlkMjNkMDVlYjQ2OGMxODhkZWU3NjIxYmZiNmVhZmIyMjU3MmYwIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9s
b2FkZXIvRnJhbWVMb2FkZXIuaApAQCAtMTM3LDYgKzEzNywxMCBAQCBwdWJsaWM6CiAgICAgLy8g
RklYTUU6IGNsZWFyKCkgaXMgdHJ5aW5nIHRvIGRvIHRvbyBtYW55IHRoaW5ncy4gV2Ugc2hvdWxk
IGJyZWFrIGl0IGRvd24gaW50byBzbWFsbGVyIGZ1bmN0aW9ucyAoaWRlYWxseSB3aXRoIGZld2Vy
IHJhdyBCb29sZWFuIHBhcmFtZXRlcnMpLgogICAgIHZvaWQgY2xlYXIoRG9jdW1lbnQqIG5ld0Rv
Y3VtZW50LCBib29sIGNsZWFyV2luZG93UHJvcGVydGllcyA9IHRydWUsIGJvb2wgY2xlYXJTY3Jp
cHRPYmplY3RzID0gdHJ1ZSwgYm9vbCBjbGVhckZyYW1lVmlldyA9IHRydWUpOwogCisjaWYgUExB
VEZPUk0oQ0hST01JVU0pCisgICAgdm9pZCBkaWRBY2Nlc3NJbml0aWFsRG9jdW1lbnQoKTsKKyNl
bmRpZgorCiAgICAgYm9vbCBpc0xvYWRpbmcoKSBjb25zdDsKICAgICBib29sIGZyYW1lSGFzTG9h
ZGVkKCkgY29uc3Q7CiAKQEAgLTQzMCw2ICs0MzQsOSBAQCBwcml2YXRlOgogICAgIEZyYW1lKiBt
X29wZW5lcjsKICAgICBIYXNoU2V0PEZyYW1lKj4gbV9vcGVuZWRGcmFtZXM7CiAKKyNpZiBQTEFU
Rk9STShDSFJPTUlVTSkKKyAgICBib29sIG1fZGlkQWNjZXNzSW5pdGlhbERvY3VtZW50OworI2Vu
ZGlmCiAgICAgYm9vbCBtX2RpZFBlcmZvcm1GaXJzdE5hdmlnYXRpb247CiAgICAgYm9vbCBtX2xv
YWRpbmdGcm9tQ2FjaGVkUGFnZTsKICAgICBib29sIG1fc3VwcHJlc3NPcGVuZXJJbk5ld0ZyYW1l
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyQ2xpZW50Lmgg
Yi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXJDbGllbnQuaAppbmRleCA5MWY2NDU3
MGY3YTQxM2I4OTc4Njk1N2U2NjJjN2RkYTBhMzQ1YTFlLi5kMzlhNWI4ZWFiYzBhOTVhNTNhZjBk
N2FkMmI0MWQyYmYzOWI4ZmI5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJh
bWVMb2FkZXJDbGllbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXJD
bGllbnQuaApAQCAtMjExLDYgKzIxMSwxMyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAg
IHZpcnR1YWwgYm9vbCBzaG91bGRTdG9wTG9hZGluZ0Zvckhpc3RvcnlJdGVtKEhpc3RvcnlJdGVt
KikgY29uc3QgPSAwOwogICAgICAgICB2aXJ0dWFsIHZvaWQgdXBkYXRlR2xvYmFsSGlzdG9yeUl0
ZW1Gb3JQYWdlKCkgeyB9CiAKKyNpZiBQTEFURk9STShDSFJPTUlVTSkKKyAgICAgICAgLy8gQW5v
dGhlciBwYWdlIGhhcyBhY2Nlc3NlZCB0aGUgaW5pdGlhbCBlbXB0eSBkb2N1bWVudCBvZiB0aGlz
IGZyYW1lLgorICAgICAgICAvLyBJdCBpcyBubyBsb25nZXIgc2FmZSB0byBkaXNwbGF5IGEgcHJv
dmlzaW9uYWwgVVJMLCBzaW5jZSBhIFVSTCBzcG9vZgorICAgICAgICAvLyBpcyBub3cgcG9zc2li
bGUuCisgICAgICAgIHZpcnR1YWwgdm9pZCBkaWRBY2Nlc3NJbml0aWFsRG9jdW1lbnQoKSB7IH0K
KyNlbmRpZgorCiAgICAgICAgIC8vIFRoaXMgZnJhbWUgaGFzIHNldCBpdHMgb3BlbmVyIHRvIG51
bGwsIGRpc293bmluZyBpdCBmb3IgdGhlIGxpZmV0aW1lIG9mIHRoZSBmcmFtZS4KICAgICAgICAg
Ly8gU2VlIGh0dHA6Ly9odG1sLnNwZWMud2hhdHdnLm9yZy8jZG9tLW9wZW5lci4KICAgICAgICAg
Ly8gRklYTUU6IEpTQyBzaG91bGQgYWxsb3cgZGlzb3duaW5nIG9wZW5lci4gLSA8aHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEwMzkxMz4uCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJGcmFtZUNsaWVudC5oIGIvU291cmNlL1dlYktp
dC9jaHJvbWl1bS9wdWJsaWMvV2ViRnJhbWVDbGllbnQuaAppbmRleCAyZGYxNTNmYzA1NTE2NTcx
N2Q5ZmRkNThkYjI5NjQ0ZWQ3MjY3NDY0Li5iMzA3NmUwZWZjYTZmNzk1NzkwZTg3MDk4MzIyYTlm
ODNlYTIyNzIwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJG
cmFtZUNsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYkZyYW1l
Q2xpZW50LmgKQEAgLTEwMiw2ICsxMDIsMTEgQEAgcHVibGljOgogCiAgICAgLy8gR2VuZXJhbCBu
b3RpZmljYXRpb25zIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tCiAKKyAgICAvLyBJbmRpY2F0ZXMgdGhhdCBhbm90aGVyIHBhZ2UgaGFzIGFjY2Vzc2VkIHRo
ZSBET00gb2YgdGhlIGluaXRpYWwgZW1wdHkKKyAgICAvLyBkb2N1bWVudCBvZiBhIG1haW4gZnJh
bWUuIEFmdGVyIHRoaXMsIGl0IGlzIG5vIGxvbmdlciBzYWZlIHRvIHNob3cgYQorICAgIC8vIHBl
bmRpbmcgbmF2aWdhdGlvbidzIFVSTCwgYmVjYXVzZSBhIFVSTCBzcG9vZiBpcyBwb3NzaWJsZS4K
KyAgICB2aXJ0dWFsIHZvaWQgZGlkQWNjZXNzSW5pdGlhbERvY3VtZW50KFdlYkZyYW1lKikgeyB9
CisKICAgICAvLyBBIGNoaWxkIGZyYW1lIHdhcyBjcmVhdGVkIGluIHRoaXMgZnJhbWUuIFRoaXMg
aXMgY2FsbGVkIHdoZW4gdGhlIGZyYW1lCiAgICAgLy8gaXMgY3JlYXRlZCBhbmQgaW5pdGlhbGl6
ZWQuCiAgICAgdmlydHVhbCB2b2lkIGRpZENyZWF0ZUZyYW1lKFdlYkZyYW1lKiBwYXJlbnQsIFdl
YkZyYW1lKiBjaGlsZCkgeyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Ny
Yy9GcmFtZUxvYWRlckNsaWVudEltcGwuY3BwIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMv
RnJhbWVMb2FkZXJDbGllbnRJbXBsLmNwcAppbmRleCA2YjIzY2RlNzA1MzYzMDFhODgzOTJkOTM5
NDQ3NTYwZmYyNmE4NWZmLi5jZWNhNzNiZWJmYjI1MzMxYTU0NTkzMTA4NzE0MjI1ZDg2NTJmNzEx
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9GcmFtZUxvYWRlckNsaWVu
dEltcGwuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0ZyYW1lTG9hZGVyQ2xp
ZW50SW1wbC5jcHAKQEAgLTEyMTksNiArMTIxOSwxMiBAQCBib29sIEZyYW1lTG9hZGVyQ2xpZW50
SW1wbDo6c2hvdWxkU3RvcExvYWRpbmdGb3JIaXN0b3J5SXRlbShIaXN0b3J5SXRlbSogdGFyZ2V0
SQogICAgIHJldHVybiAhdXJsLnByb3RvY29sSXMoYmFja0ZvcndhcmROYXZpZ2F0aW9uU2NoZW1l
KTsKIH0KIAordm9pZCBGcmFtZUxvYWRlckNsaWVudEltcGw6OmRpZEFjY2Vzc0luaXRpYWxEb2N1
bWVudCgpCit7CisgICAgaWYgKG1fd2ViRnJhbWUtPmNsaWVudCgpKQorICAgICAgICBtX3dlYkZy
YW1lLT5jbGllbnQoKS0+ZGlkQWNjZXNzSW5pdGlhbERvY3VtZW50KG1fd2ViRnJhbWUpOworfQor
CiB2b2lkIEZyYW1lTG9hZGVyQ2xpZW50SW1wbDo6ZGlkRGlzb3duT3BlbmVyKCkKIHsKICAgICBp
ZiAobV93ZWJGcmFtZS0+Y2xpZW50KCkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9t
aXVtL3NyYy9GcmFtZUxvYWRlckNsaWVudEltcGwuaCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0v
c3JjL0ZyYW1lTG9hZGVyQ2xpZW50SW1wbC5oCmluZGV4IGJjY2VjMGYzMzRiNzRhNTU1MGEwYTJm
YjU4ZGY1NGVmY2VjZDliZDguLjNmMGM4MWY5ZjU3MzFhMDY2NDIzMGEzMWNjMGI5Y2YwMjMwM2M1
NDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0ZyYW1lTG9hZGVyQ2xp
ZW50SW1wbC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0ZyYW1lTG9hZGVyQ2xp
ZW50SW1wbC5oCkBAIC0xMzksNiArMTM5LDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCB1
cGRhdGVHbG9iYWxIaXN0b3J5UmVkaXJlY3RMaW5rcygpOwogICAgIHZpcnR1YWwgYm9vbCBzaG91
bGRHb1RvSGlzdG9yeUl0ZW0oV2ViQ29yZTo6SGlzdG9yeUl0ZW0qKSBjb25zdDsKICAgICB2aXJ0
dWFsIGJvb2wgc2hvdWxkU3RvcExvYWRpbmdGb3JIaXN0b3J5SXRlbShXZWJDb3JlOjpIaXN0b3J5
SXRlbSopIGNvbnN0OworICAgIHZpcnR1YWwgdm9pZCBkaWRBY2Nlc3NJbml0aWFsRG9jdW1lbnQo
KTsKICAgICB2aXJ0dWFsIHZvaWQgZGlkRGlzb3duT3BlbmVyKCk7CiAgICAgdmlydHVhbCB2b2lk
IGRpZERpc3BsYXlJbnNlY3VyZUNvbnRlbnQoKTsKICAgICB2aXJ0dWFsIHZvaWQgZGlkUnVuSW5z
ZWN1cmVDb250ZW50KFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luKiwgY29uc3QgV2ViQ29yZTo6S1VS
TCYgaW5zZWN1cmVVUkwpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0
cy9XZWJGcmFtZVRlc3QuY3BwIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0cy9XZWJGcmFt
ZVRlc3QuY3BwCmluZGV4IDEyNzI2OTkzYzM1YjUyMmVkYWMxMjM2ZTY3OTUzZGJlMzZkZjY5NzAu
LmMyZTc3M2FjNmQ0ZDQ5MTM4YzA2ZjI1MWJlZTQ3MmVmZjg1NDkwYmMgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMvV2ViRnJhbWVUZXN0LmNwcAorKysgYi9Tb3VyY2Uv
V2ViS2l0L2Nocm9taXVtL3Rlc3RzL1dlYkZyYW1lVGVzdC5jcHAKQEAgLTI0MjgsNCArMjQyOCw2
NiBAQCBURVNUX0YoV2ViRnJhbWVUZXN0LCBNQVlCRV9SZXBsYWNlTWlzc3BlbGxlZFJhbmdlKQog
ICAgIG1fd2ViVmlldyA9IDA7CiB9CiAKK2NsYXNzIFRlc3RBY2Nlc3NJbml0aWFsRG9jdW1lbnRX
ZWJGcmFtZUNsaWVudCA6IHB1YmxpYyBXZWJGcmFtZUNsaWVudCB7CitwdWJsaWM6CisgICAgVGVz
dEFjY2Vzc0luaXRpYWxEb2N1bWVudFdlYkZyYW1lQ2xpZW50KCkgOiBtX2RpZEFjY2Vzc0luaXRp
YWxEb2N1bWVudChmYWxzZSkKKyAgICB7CisgICAgfQorCisgICAgdmlydHVhbCB2b2lkIGRpZEFj
Y2Vzc0luaXRpYWxEb2N1bWVudChXZWJGcmFtZSogZnJhbWUpCisgICAgeworICAgICAgICBFWFBF
Q1RfVFJVRSghbV9kaWRBY2Nlc3NJbml0aWFsRG9jdW1lbnQpOworICAgICAgICBtX2RpZEFjY2Vz
c0luaXRpYWxEb2N1bWVudCA9IHRydWU7CisgICAgfQorICAgIAorICAgIGJvb2wgbV9kaWRBY2Nl
c3NJbml0aWFsRG9jdW1lbnQ7Cit9OworCitURVNUX0YoV2ViRnJhbWVUZXN0LCBEaWRBY2Nlc3NJ
bml0aWFsRG9jdW1lbnRCb2R5KQoreworICAgIFRlc3RBY2Nlc3NJbml0aWFsRG9jdW1lbnRXZWJG
cmFtZUNsaWVudCB3ZWJGcmFtZUNsaWVudDsKKyAgICBtX3dlYlZpZXcgPSBGcmFtZVRlc3RIZWxw
ZXJzOjpjcmVhdGVXZWJWaWV3KHRydWUsICZ3ZWJGcmFtZUNsaWVudCk7CisgICAgRVhQRUNUX0ZB
TFNFKHdlYkZyYW1lQ2xpZW50Lm1fZGlkQWNjZXNzSW5pdGlhbERvY3VtZW50KTsKKworICAgIC8v
IENyZWF0ZSBhbm90aGVyIHdpbmRvdyB0aGF0IHdpbGwgdHJ5IHRvIGFjY2VzcyBpdC4KKyAgICBX
ZWJWaWV3KiBuZXdWaWV3ID0gRnJhbWVUZXN0SGVscGVyczo6Y3JlYXRlV2ViVmlldyh0cnVlKTsK
KyAgICBuZXdWaWV3LT5tYWluRnJhbWUoKS0+c2V0T3BlbmVyKG1fd2ViVmlldy0+bWFpbkZyYW1l
KCkpOworICAgIEVYUEVDVF9GQUxTRSh3ZWJGcmFtZUNsaWVudC5tX2RpZEFjY2Vzc0luaXRpYWxE
b2N1bWVudCk7CisKKyAgICAvLyBBY2Nlc3MgdGhlIGluaXRpYWwgZG9jdW1lbnQgYnkgbW9kaWZ5
aW5nIHRoZSBib2R5LgorICAgIG5ld1ZpZXctPm1haW5GcmFtZSgpLT5leGVjdXRlU2NyaXB0KAor
ICAgICAgICBXZWJTY3JpcHRTb3VyY2UoIndpbmRvdy5vcGVuZXIuZG9jdW1lbnQuYm9keS5pbm5l
ckhUTUwgKz0gJ01vZGlmaWVkJzsiKSk7CisgICAgRVhQRUNUX1RSVUUod2ViRnJhbWVDbGllbnQu
bV9kaWRBY2Nlc3NJbml0aWFsRG9jdW1lbnQpOworCisgICAgLy8gQWNjZXNzIHRoZSBpbml0aWFs
IGRvY3VtZW50IGFnYWluLCB0byBlbnN1cmUgd2UgZG9uJ3Qgbm90aWZ5IHR3aWNlLgorICAgIG5l
d1ZpZXctPm1haW5GcmFtZSgpLT5leGVjdXRlU2NyaXB0KAorICAgICAgICBXZWJTY3JpcHRTb3Vy
Y2UoIndpbmRvdy5vcGVuZXIuZG9jdW1lbnQuYm9keS5pbm5lckhUTUwgKz0gJ01vZGlmaWVkJzsi
KSk7CisgICAgRVhQRUNUX1RSVUUod2ViRnJhbWVDbGllbnQubV9kaWRBY2Nlc3NJbml0aWFsRG9j
dW1lbnQpOworCisgICAgbmV3Vmlldy0+Y2xvc2UoKTsKKyAgICBtX3dlYlZpZXctPmNsb3NlKCk7
CisgICAgbV93ZWJWaWV3ID0gMDsKK30KKworVEVTVF9GKFdlYkZyYW1lVGVzdCwgRGlkQWNjZXNz
SW5pdGlhbERvY3VtZW50TmF2aWdhdG9yKQoreworICAgIFRlc3RBY2Nlc3NJbml0aWFsRG9jdW1l
bnRXZWJGcmFtZUNsaWVudCB3ZWJGcmFtZUNsaWVudDsKKyAgICBtX3dlYlZpZXcgPSBGcmFtZVRl
c3RIZWxwZXJzOjpjcmVhdGVXZWJWaWV3KHRydWUsICZ3ZWJGcmFtZUNsaWVudCk7CisgICAgRVhQ
RUNUX0ZBTFNFKHdlYkZyYW1lQ2xpZW50Lm1fZGlkQWNjZXNzSW5pdGlhbERvY3VtZW50KTsKKwor
ICAgIC8vIENyZWF0ZSBhbm90aGVyIHdpbmRvdyB0aGF0IHdpbGwgdHJ5IHRvIGFjY2VzcyBpdC4K
KyAgICBXZWJWaWV3KiBuZXdWaWV3ID0gRnJhbWVUZXN0SGVscGVyczo6Y3JlYXRlV2ViVmlldyh0
cnVlKTsKKyAgICBuZXdWaWV3LT5tYWluRnJhbWUoKS0+c2V0T3BlbmVyKG1fd2ViVmlldy0+bWFp
bkZyYW1lKCkpOworICAgIEVYUEVDVF9GQUxTRSh3ZWJGcmFtZUNsaWVudC5tX2RpZEFjY2Vzc0lu
aXRpYWxEb2N1bWVudCk7CisKKyAgICAvLyBBY2Nlc3MgdGhlIGluaXRpYWwgZG9jdW1lbnQgdG8g
Z2V0IHRvIHRoZSBuYXZpZ2F0b3Igb2JqZWN0LgorICAgIG5ld1ZpZXctPm1haW5GcmFtZSgpLT5l
eGVjdXRlU2NyaXB0KAorICAgICAgICBXZWJTY3JpcHRTb3VyY2UoImNvbnNvbGUubG9nKHdpbmRv
dy5vcGVuZXIubmF2aWdhdG9yKTsiKSk7CisgICAgRVhQRUNUX1RSVUUod2ViRnJhbWVDbGllbnQu
bV9kaWRBY2Nlc3NJbml0aWFsRG9jdW1lbnQpOworCisgICAgbmV3Vmlldy0+Y2xvc2UoKTsKKyAg
ICBtX3dlYlZpZXctPmNsb3NlKCk7CisgICAgbV93ZWJWaWV3ID0gMDsKK30KKwogfSAvLyBuYW1l
c3BhY2UK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>191299</attachid>
            <date>2013-03-04 13:16:45 -0800</date>
            <delta_ts>2013-03-04 18:34:02 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-107963-20130304131253.patch</filename>
            <type>text/plain</type>
            <size>13520</size>
            <attacher name="Charles Reis">creis</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQ0NjM0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMGRlNWRkNzdmN2I1MTk3
YTg5OTlhOGE3M2ZmNzFhY2NlYjYwMjNiOS4uZjUxMzAwMGUwODFlYWQ4NDQwNmExZGQ5ZmQ4ODU3
ZDg2ZjkyMzZlOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM0IEBACisyMDEzLTAzLTA0ICBDaGFy
bGllIFJlaXMgIDxjcmVpc0BjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgQWRkIEZyYW1lTG9hZGVy
Q2xpZW50OjpkaWRBY2Nlc3NJbml0aWFsRG9jdW1lbnQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEwNzk2MworCisgICAgICAgIE5vdGlmaWVzIHRoZSBG
cmFtZUxvYWRlckNsaWVudCBpZiBhbm90aGVyIHBhZ2UgYWNjZXNzZXMgdGhlCisgICAgICAgIGlu
aXRpYWwgZW1wdHkgZG9jdW1lbnQgb2YgYSBtYWluIGZyYW1lLiAgSW4gdGhpcyBjYXNlLCBpdCBp
cworICAgICAgICBubyBsb25nZXIgc2FmZSB0byBkaXNwbGF5IHRoZSBwcm92aXNpb25hbCBVUkwu
CisKKyAgICAgICAgT25seSB0YWtlcyBlZmZlY3QgZm9yIFBMQVRGT1JNKENIUk9NSVVNKSwgc2lu
Y2Ugbm8gb3RoZXIgcGxhdGZvcm1zCisgICAgICAgIGxpc3RlbiB0byB0aGUgbm90aWZpY2F0aW9u
LgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogYmlu
ZGluZ3MvdjgvVjhET01XaW5kb3dTaGVsbC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpWOERPTVdp
bmRvd1NoZWxsOjpzZXRTZWN1cml0eVRva2VuKToKKyAgICAgICAgICAgIFVzZSBkZWZhdWx0IHRv
a2VuIGZvciBpbml0aWFsIGRvY3VtZW50LgorICAgICAgICAqIGJpbmRpbmdzL3Y4L2N1c3RvbS9W
OERPTVdpbmRvd0N1c3RvbS5jcHA6CisgICAgICAgICAgICBOb3RpZnkgbG9hZGVyIGlmIGluaXRp
YWwgZG9jdW1lbnQgaXMgYWNjZXNzZWQuCisgICAgICAgIChXZWJDb3JlOjpWOERPTVdpbmRvdzo6
bmFtZWRTZWN1cml0eUNoZWNrKToKKyAgICAgICAgKFdlYkNvcmU6OlY4RE9NV2luZG93OjppbmRl
eGVkU2VjdXJpdHlDaGVjayk6CisgICAgICAgICogbG9hZGVyL0ZyYW1lTG9hZGVyLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OkZyYW1lTG9hZGVyOjpGcmFtZUxvYWRlcik6CisgICAgICAgIChXZWJD
b3JlOjpGcmFtZUxvYWRlcjo6ZGlkQWNjZXNzSW5pdGlhbERvY3VtZW50KToKKyAgICAgICAgKFdl
YkNvcmUpOgorICAgICAgICAqIGxvYWRlci9GcmFtZUxvYWRlci5oOgorICAgICAgICAoRnJhbWVM
b2FkZXIpOgorICAgICAgICAqIGxvYWRlci9GcmFtZUxvYWRlckNsaWVudC5oOgorICAgICAgICAo
RnJhbWVMb2FkZXJDbGllbnQpOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVMb2FkZXJDbGllbnQ6
OmRpZEFjY2Vzc0luaXRpYWxEb2N1bWVudCk6CisKIDIwMTMtMDMtMDQgIHBlYXZvQG91dGxvb2su
Y29tICA8cGVhdm9Ab3V0bG9vay5jb20+CiAKICAgICAgICAgW0N1cmxdIENvbXBpbGUgZml4IGFm
dGVyIHIxNDQyMTYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9n
IGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKaW5kZXggZmJlM2UwMTIzMDkxMThj
NjY0ODE3Njg2N2MxZDA3MjRmYzY1MjBiYy4uNjFlNGJkYWE4MGZiZDFhOWFkYjg3ZTA2YTUxZDhh
NDY2YWQxZGQ0NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cK
KysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyNCBAQAor
MjAxMy0wMy0wNCAgQ2hhcmxpZSBSZWlzICA8Y3JlaXNAY2hyb21pdW0ub3JnPgorCisgICAgICAg
IEFkZCBGcmFtZUxvYWRlckNsaWVudDo6ZGlkQWNjZXNzSW5pdGlhbERvY3VtZW50CisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDc5NjMKKworICAgICAg
ICBOb3RpZmllcyBXZWJGcmFtZUNsaWVudCBpZiBhbm90aGVyIHBhZ2UgYWNjZXNzZXMgdGhlIGlu
aXRpYWwKKyAgICAgICAgZW1wdHkgZG9jdW1lbnQgb2YgYSBtYWluIGZyYW1lLiAgSW4gdGhpcyBj
YXNlLCBpdCBpcyBubyBsb25nZXIKKyAgICAgICAgc2FmZSB0byBkaXNwbGF5IHRoZSBwcm92aXNp
b25hbCBVUkwuCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgKiBwdWJsaWMvV2ViRnJhbWVDbGllbnQuaDoKKyAgICAgICAgKFdlYkZyYW1lQ2xpZW50KToK
KyAgICAgICAgKFdlYktpdDo6V2ViRnJhbWVDbGllbnQ6OmRpZEFjY2Vzc0luaXRpYWxEb2N1bWVu
dCk6CisgICAgICAgICogc3JjL0ZyYW1lTG9hZGVyQ2xpZW50SW1wbC5jcHA6CisgICAgICAgIChX
ZWJLaXQ6OkZyYW1lTG9hZGVyQ2xpZW50SW1wbDo6ZGlkQWNjZXNzSW5pdGlhbERvY3VtZW50KToK
KyAgICAgICAgKFdlYktpdCk6CisgICAgICAgICogc3JjL0ZyYW1lTG9hZGVyQ2xpZW50SW1wbC5o
OgorICAgICAgICAoRnJhbWVMb2FkZXJDbGllbnRJbXBsKToKKyAgICAgICAgKiB0ZXN0cy9XZWJG
cmFtZVRlc3QuY3BwOgorCiAyMDEzLTAzLTA0ICBBbmRyZXkgTHVzaG5pa292ICA8bHVzaG5pa292
QGNocm9taXVtLm9yZz4KIAogICAgICAgICBXZWIgSW5zcGVjdG9yOiBhZGQgQWNlIGVkaXRvciBl
eHBlcmltZW50CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9WOERPTVdp
bmRvd1NoZWxsLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1Y4RE9NV2luZG93U2hl
bGwuY3BwCmluZGV4IDM0NDgxYWU3YjIyZDc5OGM1Y2MwZjk3YmRlNDdlZjk5NmI3ZTM2YzQuLmRk
NGI1OGY1NmEzOWMyZDQ4YjgzMzhkMmZjY2U2ZTBhNmQ2NjVhZWEgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1Y4RE9NV2luZG93U2hlbGwuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL3Y4L1Y4RE9NV2luZG93U2hlbGwuY3BwCkBAIC00MDIsNyArNDAyLDEx
IEBAIHZvaWQgVjhET01XaW5kb3dTaGVsbDo6c2V0U2VjdXJpdHlUb2tlbigpCiAgICAgLy8gTm90
ZTogd2UgY2FuJ3QgdXNlIHRoZSBIVFRQT3JpZ2luIGlmIGl0IHdhcyBzZXQgZnJvbSB0aGUgRE9N
LgogICAgIFNlY3VyaXR5T3JpZ2luKiBvcmlnaW4gPSBkb2N1bWVudC0+c2VjdXJpdHlPcmlnaW4o
KTsKICAgICBTdHJpbmcgdG9rZW47Ci0gICAgaWYgKCFvcmlnaW4tPmRvbWFpbldhc1NldEluRE9N
KCkpCisgICAgLy8gV2Ugc3RpY2sgd2l0aCBhbiBlbXB0eSB0b2tlbiBpZiBkb2N1bWVudC5kb21h
aW4gd2FzIG1vZGlmaWVkIG9yIGlmIHdlCisgICAgLy8gYXJlIGluIHRoZSBpbml0aWFsIGVtcHR5
IGRvY3VtZW50LCBzbyB0aGF0IHdlIGNhbiBkbyBhIGZ1bGwgY2FuQWNjZXNzCisgICAgLy8gY2hl
Y2sgaW4gdGhvc2UgY2FzZXMuCisgICAgaWYgKCFvcmlnaW4tPmRvbWFpbldhc1NldEluRE9NKCkK
KyAgICAgICAgJiYgIW1fZnJhbWUtPmxvYWRlcigpLT5zdGF0ZU1hY2hpbmUoKS0+aXNEaXNwbGF5
aW5nSW5pdGlhbEVtcHR5RG9jdW1lbnQoKSkKICAgICAgICAgdG9rZW4gPSBkb2N1bWVudC0+c2Vj
dXJpdHlPcmlnaW4oKS0+dG9TdHJpbmcoKTsKIAogICAgIC8vIEFuIGVtcHR5IG9yICJudWxsIiB0
b2tlbiBtZWFucyB3ZSBhbHdheXMgaGF2ZSB0byBjYWxsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy92OC9jdXN0b20vVjhET01XaW5kb3dDdXN0b20uY3BwIGIvU291cmNlL1dl
YkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4RE9NV2luZG93Q3VzdG9tLmNwcAppbmRleCA2Y2Vm
MmU1NmNlYzY2ZGU5Mzc2YmNkYjRiYWYwMGVjMjVlMzI5M2ZiLi5mYjc0MmI0Yzc3YmE4YzEyODM4
NzZkYjZhY2Q5ZjA1YjZiNjNmZGY4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy92OC9jdXN0b20vVjhET01XaW5kb3dDdXN0b20uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL3Y4L2N1c3RvbS9WOERPTVdpbmRvd0N1c3RvbS5jcHAKQEAgLTUyMyw2ICs1MjMsMTAg
QEAgYm9vbCBWOERPTVdpbmRvdzo6bmFtZWRTZWN1cml0eUNoZWNrQ3VzdG9tKHY4OjpMb2NhbDx2
ODo6T2JqZWN0PiBob3N0LCB2ODo6TG9jYWwKICAgICBpZiAoIXRhcmdldCkKICAgICAgICAgcmV0
dXJuIGZhbHNlOwogCisgICAgLy8gTm90aWZ5IHRoZSBsb2FkZXIncyBjbGllbnQgaWYgdGhlIGlu
aXRpYWwgZG9jdW1lbnQgaGFzIGJlZW4gYWNjZXNzZWQuCisgICAgaWYgKHRhcmdldC0+bG9hZGVy
KCktPnN0YXRlTWFjaGluZSgpLT5pc0Rpc3BsYXlpbmdJbml0aWFsRW1wdHlEb2N1bWVudCgpKQor
ICAgICAgICB0YXJnZXQtPmxvYWRlcigpLT5kaWRBY2Nlc3NJbml0aWFsRG9jdW1lbnQoKTsKKwog
ICAgIGlmIChrZXktPklzU3RyaW5nKCkpIHsKICAgICAgICAgREVGSU5FX1NUQVRJQ19MT0NBTChB
dG9taWNTdHJpbmcsIG5hbWVPZlByb3RvUHJvcGVydHksICgiX19wcm90b19fIiwgQXRvbWljU3Ry
aW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOwogCkBAIC01NTgsNiArNTYyLDEwIEBAIGJvb2wg
VjhET01XaW5kb3c6OmluZGV4ZWRTZWN1cml0eUNoZWNrQ3VzdG9tKHY4OjpMb2NhbDx2ODo6T2Jq
ZWN0PiBob3N0LCB1aW50MzJfCiAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICBGcmFtZSogY2hp
bGRGcmFtZSA9ICB0YXJnZXQtPnRyZWUoKS0+c2NvcGVkQ2hpbGQoaW5kZXgpOwogCisgICAgLy8g
Tm90aWZ5IHRoZSBsb2FkZXIncyBjbGllbnQgaWYgdGhlIGluaXRpYWwgZG9jdW1lbnQgaGFzIGJl
ZW4gYWNjZXNzZWQuCisgICAgaWYgKHRhcmdldC0+bG9hZGVyKCktPnN0YXRlTWFjaGluZSgpLT5p
c0Rpc3BsYXlpbmdJbml0aWFsRW1wdHlEb2N1bWVudCgpKQorICAgICAgICB0YXJnZXQtPmxvYWRl
cigpLT5kaWRBY2Nlc3NJbml0aWFsRG9jdW1lbnQoKTsKKwogICAgIC8vIE5vdGljZSB0aGF0IHdl
IGNhbid0IGNhbGwgSGFzUmVhbE5hbWVkUHJvcGVydHkgZm9yIEFDQ0VTU19IQVMKICAgICAvLyBi
ZWNhdXNlIHRoYXQgd291bGQgZ2VuZXJhdGUgaW5maW5pdGUgcmVjdXJzaW9uLgogICAgIGlmICh0
eXBlID09IHY4OjpBQ0NFU1NfSEFTICYmIGNoaWxkRnJhbWUpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0Zy
YW1lTG9hZGVyLmNwcAppbmRleCAyYzYwNTZiZjUxODQ2YzhiYWY0YmI1Njc2ZGIzNmQ4YjBiMmNi
Mzg2Li43ZjZmYzVmNGMyMWM5M2Q0ZTczYTRiMzZlOTNmM2EwNjE0MDUyYmU1IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2xvYWRlci9GcmFtZUxvYWRlci5jcHAKQEAgLTIzMyw2ICsyMzMsOSBAQCBGcmFtZUxvYWRl
cjo6RnJhbWVMb2FkZXIoRnJhbWUqIGZyYW1lLCBGcmFtZUxvYWRlckNsaWVudCogY2xpZW50KQog
ICAgICwgbV9zaG91bGRDYWxsQ2hlY2tDb21wbGV0ZWQoZmFsc2UpCiAgICAgLCBtX3Nob3VsZENh
bGxDaGVja0xvYWRDb21wbGV0ZShmYWxzZSkKICAgICAsIG1fb3BlbmVyKDApCisjaWYgUExBVEZP
Uk0oQ0hST01JVU0pCisgICAgLCBtX2RpZEFjY2Vzc0luaXRpYWxEb2N1bWVudChmYWxzZSkKKyNl
bmRpZgogICAgICwgbV9kaWRQZXJmb3JtRmlyc3ROYXZpZ2F0aW9uKGZhbHNlKQogICAgICwgbV9s
b2FkaW5nRnJvbUNhY2hlZFBhZ2UoZmFsc2UpCiAgICAgLCBtX3N1cHByZXNzT3BlbmVySW5OZXdG
cmFtZShmYWxzZSkKQEAgLTE1ODIsNiArMTU4NSwxNyBAQCBEb2N1bWVudExvYWRlciogRnJhbWVM
b2FkZXI6OmFjdGl2ZURvY3VtZW50TG9hZGVyKCkgY29uc3QKICAgICByZXR1cm4gbV9kb2N1bWVu
dExvYWRlci5nZXQoKTsKIH0KIAorI2lmIFBMQVRGT1JNKENIUk9NSVVNKQordm9pZCBGcmFtZUxv
YWRlcjo6ZGlkQWNjZXNzSW5pdGlhbERvY3VtZW50KCkKK3sKKyAgICAvLyBXZSBvbmx5IG5lZWQg
dG8gbm90aWZ5IHRoZSBjbGllbnQgb25jZSwgYW5kIG9ubHkgZm9yIHRoZSBtYWluIGZyYW1lLgor
ICAgIGlmIChpc0xvYWRpbmdNYWluRnJhbWUoKSAmJiAhbV9kaWRBY2Nlc3NJbml0aWFsRG9jdW1l
bnQpIHsKKyAgICAgICAgbV9kaWRBY2Nlc3NJbml0aWFsRG9jdW1lbnQgPSB0cnVlOworICAgICAg
ICBtX2NsaWVudC0+ZGlkQWNjZXNzSW5pdGlhbERvY3VtZW50KCk7CisgICAgfQorfQorI2VuZGlm
CisKIGJvb2wgRnJhbWVMb2FkZXI6OmlzTG9hZGluZygpIGNvbnN0CiB7CiAgICAgRG9jdW1lbnRM
b2FkZXIqIGRvY0xvYWRlciA9IGFjdGl2ZURvY3VtZW50TG9hZGVyKCk7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXIuaCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRl
ci9GcmFtZUxvYWRlci5oCmluZGV4IGYzMjkyNzI3ZDJjODBmZTQ4MzMxODliNmIwMTJjMTM0N2U3
OTFlY2YuLmE4OWQyM2QwNWViNDY4YzE4OGRlZTc2MjFiZmI2ZWFmYjIyNTcyZjAgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlci5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2xvYWRlci9GcmFtZUxvYWRlci5oCkBAIC0xMzcsNiArMTM3LDEwIEBAIHB1YmxpYzoKICAg
ICAvLyBGSVhNRTogY2xlYXIoKSBpcyB0cnlpbmcgdG8gZG8gdG9vIG1hbnkgdGhpbmdzLiBXZSBz
aG91bGQgYnJlYWsgaXQgZG93biBpbnRvIHNtYWxsZXIgZnVuY3Rpb25zIChpZGVhbGx5IHdpdGgg
ZmV3ZXIgcmF3IEJvb2xlYW4gcGFyYW1ldGVycykuCiAgICAgdm9pZCBjbGVhcihEb2N1bWVudCog
bmV3RG9jdW1lbnQsIGJvb2wgY2xlYXJXaW5kb3dQcm9wZXJ0aWVzID0gdHJ1ZSwgYm9vbCBjbGVh
clNjcmlwdE9iamVjdHMgPSB0cnVlLCBib29sIGNsZWFyRnJhbWVWaWV3ID0gdHJ1ZSk7CiAKKyNp
ZiBQTEFURk9STShDSFJPTUlVTSkKKyAgICB2b2lkIGRpZEFjY2Vzc0luaXRpYWxEb2N1bWVudCgp
OworI2VuZGlmCisKICAgICBib29sIGlzTG9hZGluZygpIGNvbnN0OwogICAgIGJvb2wgZnJhbWVI
YXNMb2FkZWQoKSBjb25zdDsKIApAQCAtNDMwLDYgKzQzNCw5IEBAIHByaXZhdGU6CiAgICAgRnJh
bWUqIG1fb3BlbmVyOwogICAgIEhhc2hTZXQ8RnJhbWUqPiBtX29wZW5lZEZyYW1lczsKIAorI2lm
IFBMQVRGT1JNKENIUk9NSVVNKQorICAgIGJvb2wgbV9kaWRBY2Nlc3NJbml0aWFsRG9jdW1lbnQ7
CisjZW5kaWYKICAgICBib29sIG1fZGlkUGVyZm9ybUZpcnN0TmF2aWdhdGlvbjsKICAgICBib29s
IG1fbG9hZGluZ0Zyb21DYWNoZWRQYWdlOwogICAgIGJvb2wgbV9zdXBwcmVzc09wZW5lckluTmV3
RnJhbWU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXJDbGll
bnQuaCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlckNsaWVudC5oCmluZGV4IDkx
ZjY0NTcwZjdhNDEzYjg5Nzg2OTU3ZTY2MmM3ZGRhMGEzNDVhMWUuLmQzOWE1YjhlYWJjMGE5NWE1
M2FmMGQ3YWQyYjQxZDJiZjM5YjhmYjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRl
ci9GcmFtZUxvYWRlckNsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxv
YWRlckNsaWVudC5oCkBAIC0yMTEsNiArMjExLDEzIEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAg
ICAgICAgdmlydHVhbCBib29sIHNob3VsZFN0b3BMb2FkaW5nRm9ySGlzdG9yeUl0ZW0oSGlzdG9y
eUl0ZW0qKSBjb25zdCA9IDA7CiAgICAgICAgIHZpcnR1YWwgdm9pZCB1cGRhdGVHbG9iYWxIaXN0
b3J5SXRlbUZvclBhZ2UoKSB7IH0KIAorI2lmIFBMQVRGT1JNKENIUk9NSVVNKQorICAgICAgICAv
LyBBbm90aGVyIHBhZ2UgaGFzIGFjY2Vzc2VkIHRoZSBpbml0aWFsIGVtcHR5IGRvY3VtZW50IG9m
IHRoaXMgZnJhbWUuCisgICAgICAgIC8vIEl0IGlzIG5vIGxvbmdlciBzYWZlIHRvIGRpc3BsYXkg
YSBwcm92aXNpb25hbCBVUkwsIHNpbmNlIGEgVVJMIHNwb29mCisgICAgICAgIC8vIGlzIG5vdyBw
b3NzaWJsZS4KKyAgICAgICAgdmlydHVhbCB2b2lkIGRpZEFjY2Vzc0luaXRpYWxEb2N1bWVudCgp
IHsgfQorI2VuZGlmCisKICAgICAgICAgLy8gVGhpcyBmcmFtZSBoYXMgc2V0IGl0cyBvcGVuZXIg
dG8gbnVsbCwgZGlzb3duaW5nIGl0IGZvciB0aGUgbGlmZXRpbWUgb2YgdGhlIGZyYW1lLgogICAg
ICAgICAvLyBTZWUgaHR0cDovL2h0bWwuc3BlYy53aGF0d2cub3JnLyNkb20tb3BlbmVyLgogICAg
ICAgICAvLyBGSVhNRTogSlNDIHNob3VsZCBhbGxvdyBkaXNvd25pbmcgb3BlbmVyLiAtIDxodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTAzOTEzPi4KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYkZyYW1lQ2xpZW50LmggYi9Tb3VyY2Uv
V2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJGcmFtZUNsaWVudC5oCmluZGV4IDJkZjE1M2ZjMDU1
MTY1NzE3ZDlmZGQ1OGRiMjk2NDRlZDcyNjc0NjQuLmIzMDc2ZTBlZmNhNmY3OTU3OTBlODcwOTgz
MjJhOWY4M2VhMjI3MjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGlj
L1dlYkZyYW1lQ2xpZW50LmgKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2Vi
RnJhbWVDbGllbnQuaApAQCAtMTAyLDYgKzEwMiwxMSBAQCBwdWJsaWM6CiAKICAgICAvLyBHZW5l
cmFsIG5vdGlmaWNhdGlvbnMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0KIAorICAgIC8vIEluZGljYXRlcyB0aGF0IGFub3RoZXIgcGFnZSBoYXMgYWNjZXNz
ZWQgdGhlIERPTSBvZiB0aGUgaW5pdGlhbCBlbXB0eQorICAgIC8vIGRvY3VtZW50IG9mIGEgbWFp
biBmcmFtZS4gQWZ0ZXIgdGhpcywgaXQgaXMgbm8gbG9uZ2VyIHNhZmUgdG8gc2hvdyBhCisgICAg
Ly8gcGVuZGluZyBuYXZpZ2F0aW9uJ3MgVVJMLCBiZWNhdXNlIGEgVVJMIHNwb29mIGlzIHBvc3Np
YmxlLgorICAgIHZpcnR1YWwgdm9pZCBkaWRBY2Nlc3NJbml0aWFsRG9jdW1lbnQoV2ViRnJhbWUq
KSB7IH0KKwogICAgIC8vIEEgY2hpbGQgZnJhbWUgd2FzIGNyZWF0ZWQgaW4gdGhpcyBmcmFtZS4g
VGhpcyBpcyBjYWxsZWQgd2hlbiB0aGUgZnJhbWUKICAgICAvLyBpcyBjcmVhdGVkIGFuZCBpbml0
aWFsaXplZC4KICAgICB2aXJ0dWFsIHZvaWQgZGlkQ3JlYXRlRnJhbWUoV2ViRnJhbWUqIHBhcmVu
dCwgV2ViRnJhbWUqIGNoaWxkKSB7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21p
dW0vc3JjL0ZyYW1lTG9hZGVyQ2xpZW50SW1wbC5jcHAgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVt
L3NyYy9GcmFtZUxvYWRlckNsaWVudEltcGwuY3BwCmluZGV4IDZiMjNjZGU3MDUzNjMwMWE4ODM5
MmQ5Mzk0NDc1NjBmZjI2YTg1ZmYuLmNlY2E3M2JlYmZiMjUzMzFhNTQ1OTMxMDg3MTQyMjVkODY1
MmY3MTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0ZyYW1lTG9hZGVy
Q2xpZW50SW1wbC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvRnJhbWVMb2Fk
ZXJDbGllbnRJbXBsLmNwcApAQCAtMTIxOSw2ICsxMjE5LDEyIEBAIGJvb2wgRnJhbWVMb2FkZXJD
bGllbnRJbXBsOjpzaG91bGRTdG9wTG9hZGluZ0Zvckhpc3RvcnlJdGVtKEhpc3RvcnlJdGVtKiB0
YXJnZXRJCiAgICAgcmV0dXJuICF1cmwucHJvdG9jb2xJcyhiYWNrRm9yd2FyZE5hdmlnYXRpb25T
Y2hlbWUpOwogfQogCit2b2lkIEZyYW1lTG9hZGVyQ2xpZW50SW1wbDo6ZGlkQWNjZXNzSW5pdGlh
bERvY3VtZW50KCkKK3sKKyAgICBpZiAobV93ZWJGcmFtZS0+Y2xpZW50KCkpCisgICAgICAgIG1f
d2ViRnJhbWUtPmNsaWVudCgpLT5kaWRBY2Nlc3NJbml0aWFsRG9jdW1lbnQobV93ZWJGcmFtZSk7
Cit9CisKIHZvaWQgRnJhbWVMb2FkZXJDbGllbnRJbXBsOjpkaWREaXNvd25PcGVuZXIoKQogewog
ICAgIGlmIChtX3dlYkZyYW1lLT5jbGllbnQoKSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
Y2hyb21pdW0vc3JjL0ZyYW1lTG9hZGVyQ2xpZW50SW1wbC5oIGIvU291cmNlL1dlYktpdC9jaHJv
bWl1bS9zcmMvRnJhbWVMb2FkZXJDbGllbnRJbXBsLmgKaW5kZXggYmNjZWMwZjMzNGI3NGE1NTUw
YTBhMmZiNThkZjU0ZWZjZWNkOWJkOC4uM2YwYzgxZjlmNTczMWEwNjY0MjMwYTMxY2MwYjljZjAy
MzAzYzU0NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvRnJhbWVMb2Fk
ZXJDbGllbnRJbXBsLmgKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvRnJhbWVMb2Fk
ZXJDbGllbnRJbXBsLmgKQEAgLTEzOSw2ICsxMzksNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2
b2lkIHVwZGF0ZUdsb2JhbEhpc3RvcnlSZWRpcmVjdExpbmtzKCk7CiAgICAgdmlydHVhbCBib29s
IHNob3VsZEdvVG9IaXN0b3J5SXRlbShXZWJDb3JlOjpIaXN0b3J5SXRlbSopIGNvbnN0OwogICAg
IHZpcnR1YWwgYm9vbCBzaG91bGRTdG9wTG9hZGluZ0Zvckhpc3RvcnlJdGVtKFdlYkNvcmU6Okhp
c3RvcnlJdGVtKikgY29uc3Q7CisgICAgdmlydHVhbCB2b2lkIGRpZEFjY2Vzc0luaXRpYWxEb2N1
bWVudCgpOwogICAgIHZpcnR1YWwgdm9pZCBkaWREaXNvd25PcGVuZXIoKTsKICAgICB2aXJ0dWFs
IHZvaWQgZGlkRGlzcGxheUluc2VjdXJlQ29udGVudCgpOwogICAgIHZpcnR1YWwgdm9pZCBkaWRS
dW5JbnNlY3VyZUNvbnRlbnQoV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW4qLCBjb25zdCBXZWJDb3Jl
OjpLVVJMJiBpbnNlY3VyZVVSTCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVt
L3Rlc3RzL1dlYkZyYW1lVGVzdC5jcHAgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rlc3RzL1dl
YkZyYW1lVGVzdC5jcHAKaW5kZXggMTI3MjY5OTNjMzViNTIyZWRhYzEyMzZlNjc5NTNkYmUzNmRm
Njk3MC4uYzJlNzczYWM2ZDRkNDkxMzhjMDZmMjUxYmVlNDcyZWZmODU0OTBiYyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0cy9XZWJGcmFtZVRlc3QuY3BwCisrKyBiL1Nv
dXJjZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMvV2ViRnJhbWVUZXN0LmNwcApAQCAtMjQyOCw0ICsy
NDI4LDY2IEBAIFRFU1RfRihXZWJGcmFtZVRlc3QsIE1BWUJFX1JlcGxhY2VNaXNzcGVsbGVkUmFu
Z2UpCiAgICAgbV93ZWJWaWV3ID0gMDsKIH0KIAorY2xhc3MgVGVzdEFjY2Vzc0luaXRpYWxEb2N1
bWVudFdlYkZyYW1lQ2xpZW50IDogcHVibGljIFdlYkZyYW1lQ2xpZW50IHsKK3B1YmxpYzoKKyAg
ICBUZXN0QWNjZXNzSW5pdGlhbERvY3VtZW50V2ViRnJhbWVDbGllbnQoKSA6IG1fZGlkQWNjZXNz
SW5pdGlhbERvY3VtZW50KGZhbHNlKQorICAgIHsKKyAgICB9CisKKyAgICB2aXJ0dWFsIHZvaWQg
ZGlkQWNjZXNzSW5pdGlhbERvY3VtZW50KFdlYkZyYW1lKiBmcmFtZSkKKyAgICB7CisgICAgICAg
IEVYUEVDVF9UUlVFKCFtX2RpZEFjY2Vzc0luaXRpYWxEb2N1bWVudCk7CisgICAgICAgIG1fZGlk
QWNjZXNzSW5pdGlhbERvY3VtZW50ID0gdHJ1ZTsKKyAgICB9CisgICAgCisgICAgYm9vbCBtX2Rp
ZEFjY2Vzc0luaXRpYWxEb2N1bWVudDsKK307CisKK1RFU1RfRihXZWJGcmFtZVRlc3QsIERpZEFj
Y2Vzc0luaXRpYWxEb2N1bWVudEJvZHkpCit7CisgICAgVGVzdEFjY2Vzc0luaXRpYWxEb2N1bWVu
dFdlYkZyYW1lQ2xpZW50IHdlYkZyYW1lQ2xpZW50OworICAgIG1fd2ViVmlldyA9IEZyYW1lVGVz
dEhlbHBlcnM6OmNyZWF0ZVdlYlZpZXcodHJ1ZSwgJndlYkZyYW1lQ2xpZW50KTsKKyAgICBFWFBF
Q1RfRkFMU0Uod2ViRnJhbWVDbGllbnQubV9kaWRBY2Nlc3NJbml0aWFsRG9jdW1lbnQpOworCisg
ICAgLy8gQ3JlYXRlIGFub3RoZXIgd2luZG93IHRoYXQgd2lsbCB0cnkgdG8gYWNjZXNzIGl0Lgor
ICAgIFdlYlZpZXcqIG5ld1ZpZXcgPSBGcmFtZVRlc3RIZWxwZXJzOjpjcmVhdGVXZWJWaWV3KHRy
dWUpOworICAgIG5ld1ZpZXctPm1haW5GcmFtZSgpLT5zZXRPcGVuZXIobV93ZWJWaWV3LT5tYWlu
RnJhbWUoKSk7CisgICAgRVhQRUNUX0ZBTFNFKHdlYkZyYW1lQ2xpZW50Lm1fZGlkQWNjZXNzSW5p
dGlhbERvY3VtZW50KTsKKworICAgIC8vIEFjY2VzcyB0aGUgaW5pdGlhbCBkb2N1bWVudCBieSBt
b2RpZnlpbmcgdGhlIGJvZHkuCisgICAgbmV3Vmlldy0+bWFpbkZyYW1lKCktPmV4ZWN1dGVTY3Jp
cHQoCisgICAgICAgIFdlYlNjcmlwdFNvdXJjZSgid2luZG93Lm9wZW5lci5kb2N1bWVudC5ib2R5
LmlubmVySFRNTCArPSAnTW9kaWZpZWQnOyIpKTsKKyAgICBFWFBFQ1RfVFJVRSh3ZWJGcmFtZUNs
aWVudC5tX2RpZEFjY2Vzc0luaXRpYWxEb2N1bWVudCk7CisKKyAgICAvLyBBY2Nlc3MgdGhlIGlu
aXRpYWwgZG9jdW1lbnQgYWdhaW4sIHRvIGVuc3VyZSB3ZSBkb24ndCBub3RpZnkgdHdpY2UuCisg
ICAgbmV3Vmlldy0+bWFpbkZyYW1lKCktPmV4ZWN1dGVTY3JpcHQoCisgICAgICAgIFdlYlNjcmlw
dFNvdXJjZSgid2luZG93Lm9wZW5lci5kb2N1bWVudC5ib2R5LmlubmVySFRNTCArPSAnTW9kaWZp
ZWQnOyIpKTsKKyAgICBFWFBFQ1RfVFJVRSh3ZWJGcmFtZUNsaWVudC5tX2RpZEFjY2Vzc0luaXRp
YWxEb2N1bWVudCk7CisKKyAgICBuZXdWaWV3LT5jbG9zZSgpOworICAgIG1fd2ViVmlldy0+Y2xv
c2UoKTsKKyAgICBtX3dlYlZpZXcgPSAwOworfQorCitURVNUX0YoV2ViRnJhbWVUZXN0LCBEaWRB
Y2Nlc3NJbml0aWFsRG9jdW1lbnROYXZpZ2F0b3IpCit7CisgICAgVGVzdEFjY2Vzc0luaXRpYWxE
b2N1bWVudFdlYkZyYW1lQ2xpZW50IHdlYkZyYW1lQ2xpZW50OworICAgIG1fd2ViVmlldyA9IEZy
YW1lVGVzdEhlbHBlcnM6OmNyZWF0ZVdlYlZpZXcodHJ1ZSwgJndlYkZyYW1lQ2xpZW50KTsKKyAg
ICBFWFBFQ1RfRkFMU0Uod2ViRnJhbWVDbGllbnQubV9kaWRBY2Nlc3NJbml0aWFsRG9jdW1lbnQp
OworCisgICAgLy8gQ3JlYXRlIGFub3RoZXIgd2luZG93IHRoYXQgd2lsbCB0cnkgdG8gYWNjZXNz
IGl0LgorICAgIFdlYlZpZXcqIG5ld1ZpZXcgPSBGcmFtZVRlc3RIZWxwZXJzOjpjcmVhdGVXZWJW
aWV3KHRydWUpOworICAgIG5ld1ZpZXctPm1haW5GcmFtZSgpLT5zZXRPcGVuZXIobV93ZWJWaWV3
LT5tYWluRnJhbWUoKSk7CisgICAgRVhQRUNUX0ZBTFNFKHdlYkZyYW1lQ2xpZW50Lm1fZGlkQWNj
ZXNzSW5pdGlhbERvY3VtZW50KTsKKworICAgIC8vIEFjY2VzcyB0aGUgaW5pdGlhbCBkb2N1bWVu
dCB0byBnZXQgdG8gdGhlIG5hdmlnYXRvciBvYmplY3QuCisgICAgbmV3Vmlldy0+bWFpbkZyYW1l
KCktPmV4ZWN1dGVTY3JpcHQoCisgICAgICAgIFdlYlNjcmlwdFNvdXJjZSgiY29uc29sZS5sb2co
d2luZG93Lm9wZW5lci5uYXZpZ2F0b3IpOyIpKTsKKyAgICBFWFBFQ1RfVFJVRSh3ZWJGcmFtZUNs
aWVudC5tX2RpZEFjY2Vzc0luaXRpYWxEb2N1bWVudCk7CisKKyAgICBuZXdWaWV3LT5jbG9zZSgp
OworICAgIG1fd2ViVmlldy0+Y2xvc2UoKTsKKyAgICBtX3dlYlZpZXcgPSAwOworfQorCiB9IC8v
IG5hbWVzcGFjZQo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>191372</attachid>
            <date>2013-03-04 18:34:06 -0800</date>
            <delta_ts>2013-03-05 13:13:15 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-107963-20130304183013.patch</filename>
            <type>text/plain</type>
            <size>14138</size>
            <attacher name="Charles Reis">creis</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQ0NjM0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMGRlNWRkNzdmN2I1MTk3
YTg5OTlhOGE3M2ZmNzFhY2NlYjYwMjNiOS4uZjUxMzAwMGUwODFlYWQ4NDQwNmExZGQ5ZmQ4ODU3
ZDg2ZjkyMzZlOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM0IEBACisyMDEzLTAzLTA0ICBDaGFy
bGllIFJlaXMgIDxjcmVpc0BjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgQWRkIEZyYW1lTG9hZGVy
Q2xpZW50OjpkaWRBY2Nlc3NJbml0aWFsRG9jdW1lbnQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEwNzk2MworCisgICAgICAgIE5vdGlmaWVzIHRoZSBG
cmFtZUxvYWRlckNsaWVudCBpZiBhbm90aGVyIHBhZ2UgYWNjZXNzZXMgdGhlCisgICAgICAgIGlu
aXRpYWwgZW1wdHkgZG9jdW1lbnQgb2YgYSBtYWluIGZyYW1lLiAgSW4gdGhpcyBjYXNlLCBpdCBp
cworICAgICAgICBubyBsb25nZXIgc2FmZSB0byBkaXNwbGF5IHRoZSBwcm92aXNpb25hbCBVUkwu
CisKKyAgICAgICAgT25seSB0YWtlcyBlZmZlY3QgZm9yIFBMQVRGT1JNKENIUk9NSVVNKSwgc2lu
Y2Ugbm8gb3RoZXIgcGxhdGZvcm1zCisgICAgICAgIGxpc3RlbiB0byB0aGUgbm90aWZpY2F0aW9u
LgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogYmlu
ZGluZ3MvdjgvVjhET01XaW5kb3dTaGVsbC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpWOERPTVdp
bmRvd1NoZWxsOjpzZXRTZWN1cml0eVRva2VuKToKKyAgICAgICAgICAgIFVzZSBkZWZhdWx0IHRv
a2VuIGZvciBpbml0aWFsIGRvY3VtZW50LgorICAgICAgICAqIGJpbmRpbmdzL3Y4L2N1c3RvbS9W
OERPTVdpbmRvd0N1c3RvbS5jcHA6CisgICAgICAgICAgICBOb3RpZnkgbG9hZGVyIGlmIGluaXRp
YWwgZG9jdW1lbnQgaXMgYWNjZXNzZWQuCisgICAgICAgIChXZWJDb3JlOjpWOERPTVdpbmRvdzo6
bmFtZWRTZWN1cml0eUNoZWNrKToKKyAgICAgICAgKFdlYkNvcmU6OlY4RE9NV2luZG93OjppbmRl
eGVkU2VjdXJpdHlDaGVjayk6CisgICAgICAgICogbG9hZGVyL0ZyYW1lTG9hZGVyLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OkZyYW1lTG9hZGVyOjpGcmFtZUxvYWRlcik6CisgICAgICAgIChXZWJD
b3JlOjpGcmFtZUxvYWRlcjo6ZGlkQWNjZXNzSW5pdGlhbERvY3VtZW50KToKKyAgICAgICAgKFdl
YkNvcmUpOgorICAgICAgICAqIGxvYWRlci9GcmFtZUxvYWRlci5oOgorICAgICAgICAoRnJhbWVM
b2FkZXIpOgorICAgICAgICAqIGxvYWRlci9GcmFtZUxvYWRlckNsaWVudC5oOgorICAgICAgICAo
RnJhbWVMb2FkZXJDbGllbnQpOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVMb2FkZXJDbGllbnQ6
OmRpZEFjY2Vzc0luaXRpYWxEb2N1bWVudCk6CisKIDIwMTMtMDMtMDQgIHBlYXZvQG91dGxvb2su
Y29tICA8cGVhdm9Ab3V0bG9vay5jb20+CiAKICAgICAgICAgW0N1cmxdIENvbXBpbGUgZml4IGFm
dGVyIHIxNDQyMTYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9n
IGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKaW5kZXggZmJlM2UwMTIzMDkxMThj
NjY0ODE3Njg2N2MxZDA3MjRmYzY1MjBiYy4uNjFlNGJkYWE4MGZiZDFhOWFkYjg3ZTA2YTUxZDhh
NDY2YWQxZGQ0NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cK
KysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyNCBAQAor
MjAxMy0wMy0wNCAgQ2hhcmxpZSBSZWlzICA8Y3JlaXNAY2hyb21pdW0ub3JnPgorCisgICAgICAg
IEFkZCBGcmFtZUxvYWRlckNsaWVudDo6ZGlkQWNjZXNzSW5pdGlhbERvY3VtZW50CisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDc5NjMKKworICAgICAg
ICBOb3RpZmllcyBXZWJGcmFtZUNsaWVudCBpZiBhbm90aGVyIHBhZ2UgYWNjZXNzZXMgdGhlIGlu
aXRpYWwKKyAgICAgICAgZW1wdHkgZG9jdW1lbnQgb2YgYSBtYWluIGZyYW1lLiAgSW4gdGhpcyBj
YXNlLCBpdCBpcyBubyBsb25nZXIKKyAgICAgICAgc2FmZSB0byBkaXNwbGF5IHRoZSBwcm92aXNp
b25hbCBVUkwuCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgKiBwdWJsaWMvV2ViRnJhbWVDbGllbnQuaDoKKyAgICAgICAgKFdlYkZyYW1lQ2xpZW50KToK
KyAgICAgICAgKFdlYktpdDo6V2ViRnJhbWVDbGllbnQ6OmRpZEFjY2Vzc0luaXRpYWxEb2N1bWVu
dCk6CisgICAgICAgICogc3JjL0ZyYW1lTG9hZGVyQ2xpZW50SW1wbC5jcHA6CisgICAgICAgIChX
ZWJLaXQ6OkZyYW1lTG9hZGVyQ2xpZW50SW1wbDo6ZGlkQWNjZXNzSW5pdGlhbERvY3VtZW50KToK
KyAgICAgICAgKFdlYktpdCk6CisgICAgICAgICogc3JjL0ZyYW1lTG9hZGVyQ2xpZW50SW1wbC5o
OgorICAgICAgICAoRnJhbWVMb2FkZXJDbGllbnRJbXBsKToKKyAgICAgICAgKiB0ZXN0cy9XZWJG
cmFtZVRlc3QuY3BwOgorCiAyMDEzLTAzLTA0ICBBbmRyZXkgTHVzaG5pa292ICA8bHVzaG5pa292
QGNocm9taXVtLm9yZz4KIAogICAgICAgICBXZWIgSW5zcGVjdG9yOiBhZGQgQWNlIGVkaXRvciBl
eHBlcmltZW50CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9WOERPTVdp
bmRvd1NoZWxsLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1Y4RE9NV2luZG93U2hl
bGwuY3BwCmluZGV4IDM0NDgxYWU3YjIyZDc5OGM1Y2MwZjk3YmRlNDdlZjk5NmI3ZTM2YzQuLmRk
NGI1OGY1NmEzOWMyZDQ4YjgzMzhkMmZjY2U2ZTBhNmQ2NjVhZWEgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1Y4RE9NV2luZG93U2hlbGwuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL3Y4L1Y4RE9NV2luZG93U2hlbGwuY3BwCkBAIC00MDIsNyArNDAyLDEx
IEBAIHZvaWQgVjhET01XaW5kb3dTaGVsbDo6c2V0U2VjdXJpdHlUb2tlbigpCiAgICAgLy8gTm90
ZTogd2UgY2FuJ3QgdXNlIHRoZSBIVFRQT3JpZ2luIGlmIGl0IHdhcyBzZXQgZnJvbSB0aGUgRE9N
LgogICAgIFNlY3VyaXR5T3JpZ2luKiBvcmlnaW4gPSBkb2N1bWVudC0+c2VjdXJpdHlPcmlnaW4o
KTsKICAgICBTdHJpbmcgdG9rZW47Ci0gICAgaWYgKCFvcmlnaW4tPmRvbWFpbldhc1NldEluRE9N
KCkpCisgICAgLy8gV2Ugc3RpY2sgd2l0aCBhbiBlbXB0eSB0b2tlbiBpZiBkb2N1bWVudC5kb21h
aW4gd2FzIG1vZGlmaWVkIG9yIGlmIHdlCisgICAgLy8gYXJlIGluIHRoZSBpbml0aWFsIGVtcHR5
IGRvY3VtZW50LCBzbyB0aGF0IHdlIGNhbiBkbyBhIGZ1bGwgY2FuQWNjZXNzCisgICAgLy8gY2hl
Y2sgaW4gdGhvc2UgY2FzZXMuCisgICAgaWYgKCFvcmlnaW4tPmRvbWFpbldhc1NldEluRE9NKCkK
KyAgICAgICAgJiYgIW1fZnJhbWUtPmxvYWRlcigpLT5zdGF0ZU1hY2hpbmUoKS0+aXNEaXNwbGF5
aW5nSW5pdGlhbEVtcHR5RG9jdW1lbnQoKSkKICAgICAgICAgdG9rZW4gPSBkb2N1bWVudC0+c2Vj
dXJpdHlPcmlnaW4oKS0+dG9TdHJpbmcoKTsKIAogICAgIC8vIEFuIGVtcHR5IG9yICJudWxsIiB0
b2tlbiBtZWFucyB3ZSBhbHdheXMgaGF2ZSB0byBjYWxsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy92OC9jdXN0b20vVjhET01XaW5kb3dDdXN0b20uY3BwIGIvU291cmNlL1dl
YkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4RE9NV2luZG93Q3VzdG9tLmNwcAppbmRleCA2Y2Vm
MmU1NmNlYzY2ZGU5Mzc2YmNkYjRiYWYwMGVjMjVlMzI5M2ZiLi5mYjc0MmI0Yzc3YmE4YzEyODM4
NzZkYjZhY2Q5ZjA1YjZiNjNmZGY4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy92OC9jdXN0b20vVjhET01XaW5kb3dDdXN0b20uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL3Y4L2N1c3RvbS9WOERPTVdpbmRvd0N1c3RvbS5jcHAKQEAgLTUyMyw2ICs1MjMsMTAg
QEAgYm9vbCBWOERPTVdpbmRvdzo6bmFtZWRTZWN1cml0eUNoZWNrQ3VzdG9tKHY4OjpMb2NhbDx2
ODo6T2JqZWN0PiBob3N0LCB2ODo6TG9jYWwKICAgICBpZiAoIXRhcmdldCkKICAgICAgICAgcmV0
dXJuIGZhbHNlOwogCisgICAgLy8gTm90aWZ5IHRoZSBsb2FkZXIncyBjbGllbnQgaWYgdGhlIGlu
aXRpYWwgZG9jdW1lbnQgaGFzIGJlZW4gYWNjZXNzZWQuCisgICAgaWYgKHRhcmdldC0+bG9hZGVy
KCktPnN0YXRlTWFjaGluZSgpLT5pc0Rpc3BsYXlpbmdJbml0aWFsRW1wdHlEb2N1bWVudCgpKQor
ICAgICAgICB0YXJnZXQtPmxvYWRlcigpLT5kaWRBY2Nlc3NJbml0aWFsRG9jdW1lbnQoKTsKKwog
ICAgIGlmIChrZXktPklzU3RyaW5nKCkpIHsKICAgICAgICAgREVGSU5FX1NUQVRJQ19MT0NBTChB
dG9taWNTdHJpbmcsIG5hbWVPZlByb3RvUHJvcGVydHksICgiX19wcm90b19fIiwgQXRvbWljU3Ry
aW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOwogCkBAIC01NTgsNiArNTYyLDEwIEBAIGJvb2wg
VjhET01XaW5kb3c6OmluZGV4ZWRTZWN1cml0eUNoZWNrQ3VzdG9tKHY4OjpMb2NhbDx2ODo6T2Jq
ZWN0PiBob3N0LCB1aW50MzJfCiAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICBGcmFtZSogY2hp
bGRGcmFtZSA9ICB0YXJnZXQtPnRyZWUoKS0+c2NvcGVkQ2hpbGQoaW5kZXgpOwogCisgICAgLy8g
Tm90aWZ5IHRoZSBsb2FkZXIncyBjbGllbnQgaWYgdGhlIGluaXRpYWwgZG9jdW1lbnQgaGFzIGJl
ZW4gYWNjZXNzZWQuCisgICAgaWYgKHRhcmdldC0+bG9hZGVyKCktPnN0YXRlTWFjaGluZSgpLT5p
c0Rpc3BsYXlpbmdJbml0aWFsRW1wdHlEb2N1bWVudCgpKQorICAgICAgICB0YXJnZXQtPmxvYWRl
cigpLT5kaWRBY2Nlc3NJbml0aWFsRG9jdW1lbnQoKTsKKwogICAgIC8vIE5vdGljZSB0aGF0IHdl
IGNhbid0IGNhbGwgSGFzUmVhbE5hbWVkUHJvcGVydHkgZm9yIEFDQ0VTU19IQVMKICAgICAvLyBi
ZWNhdXNlIHRoYXQgd291bGQgZ2VuZXJhdGUgaW5maW5pdGUgcmVjdXJzaW9uLgogICAgIGlmICh0
eXBlID09IHY4OjpBQ0NFU1NfSEFTICYmIGNoaWxkRnJhbWUpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0Zy
YW1lTG9hZGVyLmNwcAppbmRleCAyYzYwNTZiZjUxODQ2YzhiYWY0YmI1Njc2ZGIzNmQ4YjBiMmNi
Mzg2Li5iNjdjY2QzYTFlMDBmZjJjYjFlMjQyMGI0ZjdkM2MwMjQzMzgwYzM0IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2xvYWRlci9GcmFtZUxvYWRlci5jcHAKQEAgLTIzMyw2ICsyMzMsMTAgQEAgRnJhbWVMb2Fk
ZXI6OkZyYW1lTG9hZGVyKEZyYW1lKiBmcmFtZSwgRnJhbWVMb2FkZXJDbGllbnQqIGNsaWVudCkK
ICAgICAsIG1fc2hvdWxkQ2FsbENoZWNrQ29tcGxldGVkKGZhbHNlKQogICAgICwgbV9zaG91bGRD
YWxsQ2hlY2tMb2FkQ29tcGxldGUoZmFsc2UpCiAgICAgLCBtX29wZW5lcigwKQorI2lmIFBMQVRG
T1JNKENIUk9NSVVNKQorICAgICwgbV9kaWRBY2Nlc3NJbml0aWFsRG9jdW1lbnQoZmFsc2UpCisg
ICAgLCBtX2RpZEFjY2Vzc0luaXRpYWxEb2N1bWVudFRpbWVyKHRoaXMsICZGcmFtZUxvYWRlcjo6
ZGlkQWNjZXNzSW5pdGlhbERvY3VtZW50VGltZXJGaXJlZCkKKyNlbmRpZgogICAgICwgbV9kaWRQ
ZXJmb3JtRmlyc3ROYXZpZ2F0aW9uKGZhbHNlKQogICAgICwgbV9sb2FkaW5nRnJvbUNhY2hlZFBh
Z2UoZmFsc2UpCiAgICAgLCBtX3N1cHByZXNzT3BlbmVySW5OZXdGcmFtZShmYWxzZSkKQEAgLTE1
ODIsNiArMTU4NiwyMyBAQCBEb2N1bWVudExvYWRlciogRnJhbWVMb2FkZXI6OmFjdGl2ZURvY3Vt
ZW50TG9hZGVyKCkgY29uc3QKICAgICByZXR1cm4gbV9kb2N1bWVudExvYWRlci5nZXQoKTsKIH0K
IAorI2lmIFBMQVRGT1JNKENIUk9NSVVNKQordm9pZCBGcmFtZUxvYWRlcjo6ZGlkQWNjZXNzSW5p
dGlhbERvY3VtZW50KCkKK3sKKyAgICAvLyBXZSBvbmx5IG5lZWQgdG8gbm90aWZ5IHRoZSBjbGll
bnQgb25jZSwgYW5kIG9ubHkgZm9yIHRoZSBtYWluIGZyYW1lLgorICAgIGlmIChpc0xvYWRpbmdN
YWluRnJhbWUoKSAmJiAhbV9kaWRBY2Nlc3NJbml0aWFsRG9jdW1lbnQpIHsKKyAgICAgICAgbV9k
aWRBY2Nlc3NJbml0aWFsRG9jdW1lbnQgPSB0cnVlOworICAgICAgICAvLyBOb3RpZnkgYXN5bmNo
cm9ub3VzbHksIHNpbmNlIHRoaXMgaXMgY2FsbGVkIHdpdGhpbiBhIEphdmFTY3JpcHQgc2VjdXJp
dHkgY2hlY2suCisgICAgICAgIG1fZGlkQWNjZXNzSW5pdGlhbERvY3VtZW50VGltZXIuc3RhcnRP
bmVTaG90KDApOworICAgIH0KK30KKwordm9pZCBGcmFtZUxvYWRlcjo6ZGlkQWNjZXNzSW5pdGlh
bERvY3VtZW50VGltZXJGaXJlZChUaW1lcjxGcmFtZUxvYWRlcj4qKQoreworICAgIG1fY2xpZW50
LT5kaWRBY2Nlc3NJbml0aWFsRG9jdW1lbnQoKTsKK30KKyNlbmRpZgorCiBib29sIEZyYW1lTG9h
ZGVyOjppc0xvYWRpbmcoKSBjb25zdAogewogICAgIERvY3VtZW50TG9hZGVyKiBkb2NMb2FkZXIg
PSBhY3RpdmVEb2N1bWVudExvYWRlcigpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9h
ZGVyL0ZyYW1lTG9hZGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXIuaApp
bmRleCBmMzI5MjcyN2QyYzgwZmU0ODMzMTg5YjZiMDEyYzEzNDdlNzkxZWNmLi5hMTAxNjg5ZTlj
Yjk3MWJjZjE0MzA0OTk3NTI4YmU5MjY2M2I0ZWZkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9sb2FkZXIvRnJhbWVMb2FkZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVM
b2FkZXIuaApAQCAtMTM3LDYgKzEzNywxMSBAQCBwdWJsaWM6CiAgICAgLy8gRklYTUU6IGNsZWFy
KCkgaXMgdHJ5aW5nIHRvIGRvIHRvbyBtYW55IHRoaW5ncy4gV2Ugc2hvdWxkIGJyZWFrIGl0IGRv
d24gaW50byBzbWFsbGVyIGZ1bmN0aW9ucyAoaWRlYWxseSB3aXRoIGZld2VyIHJhdyBCb29sZWFu
IHBhcmFtZXRlcnMpLgogICAgIHZvaWQgY2xlYXIoRG9jdW1lbnQqIG5ld0RvY3VtZW50LCBib29s
IGNsZWFyV2luZG93UHJvcGVydGllcyA9IHRydWUsIGJvb2wgY2xlYXJTY3JpcHRPYmplY3RzID0g
dHJ1ZSwgYm9vbCBjbGVhckZyYW1lVmlldyA9IHRydWUpOwogCisjaWYgUExBVEZPUk0oQ0hST01J
VU0pCisgICAgdm9pZCBkaWRBY2Nlc3NJbml0aWFsRG9jdW1lbnQoKTsKKyAgICB2b2lkIGRpZEFj
Y2Vzc0luaXRpYWxEb2N1bWVudFRpbWVyRmlyZWQoVGltZXI8RnJhbWVMb2FkZXI+Kik7CisjZW5k
aWYKKwogICAgIGJvb2wgaXNMb2FkaW5nKCkgY29uc3Q7CiAgICAgYm9vbCBmcmFtZUhhc0xvYWRl
ZCgpIGNvbnN0OwogCkBAIC00MzAsNiArNDM1LDEwIEBAIHByaXZhdGU6CiAgICAgRnJhbWUqIG1f
b3BlbmVyOwogICAgIEhhc2hTZXQ8RnJhbWUqPiBtX29wZW5lZEZyYW1lczsKIAorI2lmIFBMQVRG
T1JNKENIUk9NSVVNKQorICAgIGJvb2wgbV9kaWRBY2Nlc3NJbml0aWFsRG9jdW1lbnQ7CisgICAg
VGltZXI8RnJhbWVMb2FkZXI+IG1fZGlkQWNjZXNzSW5pdGlhbERvY3VtZW50VGltZXI7CisjZW5k
aWYKICAgICBib29sIG1fZGlkUGVyZm9ybUZpcnN0TmF2aWdhdGlvbjsKICAgICBib29sIG1fbG9h
ZGluZ0Zyb21DYWNoZWRQYWdlOwogICAgIGJvb2wgbV9zdXBwcmVzc09wZW5lckluTmV3RnJhbWU7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXJDbGllbnQuaCBi
L1NvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlckNsaWVudC5oCmluZGV4IDkxZjY0NTcw
ZjdhNDEzYjg5Nzg2OTU3ZTY2MmM3ZGRhMGEzNDVhMWUuLmQzOWE1YjhlYWJjMGE5NWE1M2FmMGQ3
YWQyYjQxZDJiZjM5YjhmYjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFt
ZUxvYWRlckNsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlckNs
aWVudC5oCkBAIC0yMTEsNiArMjExLDEzIEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAg
dmlydHVhbCBib29sIHNob3VsZFN0b3BMb2FkaW5nRm9ySGlzdG9yeUl0ZW0oSGlzdG9yeUl0ZW0q
KSBjb25zdCA9IDA7CiAgICAgICAgIHZpcnR1YWwgdm9pZCB1cGRhdGVHbG9iYWxIaXN0b3J5SXRl
bUZvclBhZ2UoKSB7IH0KIAorI2lmIFBMQVRGT1JNKENIUk9NSVVNKQorICAgICAgICAvLyBBbm90
aGVyIHBhZ2UgaGFzIGFjY2Vzc2VkIHRoZSBpbml0aWFsIGVtcHR5IGRvY3VtZW50IG9mIHRoaXMg
ZnJhbWUuCisgICAgICAgIC8vIEl0IGlzIG5vIGxvbmdlciBzYWZlIHRvIGRpc3BsYXkgYSBwcm92
aXNpb25hbCBVUkwsIHNpbmNlIGEgVVJMIHNwb29mCisgICAgICAgIC8vIGlzIG5vdyBwb3NzaWJs
ZS4KKyAgICAgICAgdmlydHVhbCB2b2lkIGRpZEFjY2Vzc0luaXRpYWxEb2N1bWVudCgpIHsgfQor
I2VuZGlmCisKICAgICAgICAgLy8gVGhpcyBmcmFtZSBoYXMgc2V0IGl0cyBvcGVuZXIgdG8gbnVs
bCwgZGlzb3duaW5nIGl0IGZvciB0aGUgbGlmZXRpbWUgb2YgdGhlIGZyYW1lLgogICAgICAgICAv
LyBTZWUgaHR0cDovL2h0bWwuc3BlYy53aGF0d2cub3JnLyNkb20tb3BlbmVyLgogICAgICAgICAv
LyBGSVhNRTogSlNDIHNob3VsZCBhbGxvdyBkaXNvd25pbmcgb3BlbmVyLiAtIDxodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTAzOTEzPi4KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYkZyYW1lQ2xpZW50LmggYi9Tb3VyY2UvV2ViS2l0
L2Nocm9taXVtL3B1YmxpYy9XZWJGcmFtZUNsaWVudC5oCmluZGV4IDJkZjE1M2ZjMDU1MTY1NzE3
ZDlmZGQ1OGRiMjk2NDRlZDcyNjc0NjQuLmIzMDc2ZTBlZmNhNmY3OTU3OTBlODcwOTgzMjJhOWY4
M2VhMjI3MjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYkZy
YW1lQ2xpZW50LmgKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViRnJhbWVD
bGllbnQuaApAQCAtMTAyLDYgKzEwMiwxMSBAQCBwdWJsaWM6CiAKICAgICAvLyBHZW5lcmFsIG5v
dGlmaWNhdGlvbnMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0KIAorICAgIC8vIEluZGljYXRlcyB0aGF0IGFub3RoZXIgcGFnZSBoYXMgYWNjZXNzZWQgdGhl
IERPTSBvZiB0aGUgaW5pdGlhbCBlbXB0eQorICAgIC8vIGRvY3VtZW50IG9mIGEgbWFpbiBmcmFt
ZS4gQWZ0ZXIgdGhpcywgaXQgaXMgbm8gbG9uZ2VyIHNhZmUgdG8gc2hvdyBhCisgICAgLy8gcGVu
ZGluZyBuYXZpZ2F0aW9uJ3MgVVJMLCBiZWNhdXNlIGEgVVJMIHNwb29mIGlzIHBvc3NpYmxlLgor
ICAgIHZpcnR1YWwgdm9pZCBkaWRBY2Nlc3NJbml0aWFsRG9jdW1lbnQoV2ViRnJhbWUqKSB7IH0K
KwogICAgIC8vIEEgY2hpbGQgZnJhbWUgd2FzIGNyZWF0ZWQgaW4gdGhpcyBmcmFtZS4gVGhpcyBp
cyBjYWxsZWQgd2hlbiB0aGUgZnJhbWUKICAgICAvLyBpcyBjcmVhdGVkIGFuZCBpbml0aWFsaXpl
ZC4KICAgICB2aXJ0dWFsIHZvaWQgZGlkQ3JlYXRlRnJhbWUoV2ViRnJhbWUqIHBhcmVudCwgV2Vi
RnJhbWUqIGNoaWxkKSB7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3Jj
L0ZyYW1lTG9hZGVyQ2xpZW50SW1wbC5jcHAgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9G
cmFtZUxvYWRlckNsaWVudEltcGwuY3BwCmluZGV4IDZiMjNjZGU3MDUzNjMwMWE4ODM5MmQ5Mzk0
NDc1NjBmZjI2YTg1ZmYuLmNlY2E3M2JlYmZiMjUzMzFhNTQ1OTMxMDg3MTQyMjVkODY1MmY3MTEg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0ZyYW1lTG9hZGVyQ2xpZW50
SW1wbC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvRnJhbWVMb2FkZXJDbGll
bnRJbXBsLmNwcApAQCAtMTIxOSw2ICsxMjE5LDEyIEBAIGJvb2wgRnJhbWVMb2FkZXJDbGllbnRJ
bXBsOjpzaG91bGRTdG9wTG9hZGluZ0Zvckhpc3RvcnlJdGVtKEhpc3RvcnlJdGVtKiB0YXJnZXRJ
CiAgICAgcmV0dXJuICF1cmwucHJvdG9jb2xJcyhiYWNrRm9yd2FyZE5hdmlnYXRpb25TY2hlbWUp
OwogfQogCit2b2lkIEZyYW1lTG9hZGVyQ2xpZW50SW1wbDo6ZGlkQWNjZXNzSW5pdGlhbERvY3Vt
ZW50KCkKK3sKKyAgICBpZiAobV93ZWJGcmFtZS0+Y2xpZW50KCkpCisgICAgICAgIG1fd2ViRnJh
bWUtPmNsaWVudCgpLT5kaWRBY2Nlc3NJbml0aWFsRG9jdW1lbnQobV93ZWJGcmFtZSk7Cit9CisK
IHZvaWQgRnJhbWVMb2FkZXJDbGllbnRJbXBsOjpkaWREaXNvd25PcGVuZXIoKQogewogICAgIGlm
IChtX3dlYkZyYW1lLT5jbGllbnQoKSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21p
dW0vc3JjL0ZyYW1lTG9hZGVyQ2xpZW50SW1wbC5oIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9z
cmMvRnJhbWVMb2FkZXJDbGllbnRJbXBsLmgKaW5kZXggYmNjZWMwZjMzNGI3NGE1NTUwYTBhMmZi
NThkZjU0ZWZjZWNkOWJkOC4uM2YwYzgxZjlmNTczMWEwNjY0MjMwYTMxY2MwYjljZjAyMzAzYzU0
NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvRnJhbWVMb2FkZXJDbGll
bnRJbXBsLmgKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvRnJhbWVMb2FkZXJDbGll
bnRJbXBsLmgKQEAgLTEzOSw2ICsxMzksNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIHVw
ZGF0ZUdsb2JhbEhpc3RvcnlSZWRpcmVjdExpbmtzKCk7CiAgICAgdmlydHVhbCBib29sIHNob3Vs
ZEdvVG9IaXN0b3J5SXRlbShXZWJDb3JlOjpIaXN0b3J5SXRlbSopIGNvbnN0OwogICAgIHZpcnR1
YWwgYm9vbCBzaG91bGRTdG9wTG9hZGluZ0Zvckhpc3RvcnlJdGVtKFdlYkNvcmU6Okhpc3RvcnlJ
dGVtKikgY29uc3Q7CisgICAgdmlydHVhbCB2b2lkIGRpZEFjY2Vzc0luaXRpYWxEb2N1bWVudCgp
OwogICAgIHZpcnR1YWwgdm9pZCBkaWREaXNvd25PcGVuZXIoKTsKICAgICB2aXJ0dWFsIHZvaWQg
ZGlkRGlzcGxheUluc2VjdXJlQ29udGVudCgpOwogICAgIHZpcnR1YWwgdm9pZCBkaWRSdW5JbnNl
Y3VyZUNvbnRlbnQoV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW4qLCBjb25zdCBXZWJDb3JlOjpLVVJM
JiBpbnNlY3VyZVVSTCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rlc3Rz
L1dlYkZyYW1lVGVzdC5jcHAgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rlc3RzL1dlYkZyYW1l
VGVzdC5jcHAKaW5kZXggMTI3MjY5OTNjMzViNTIyZWRhYzEyMzZlNjc5NTNkYmUzNmRmNjk3MC4u
ZGY1YjZkYWJlYzhiMjU4NTEyNjEwZmM4ZGJmNDYyMDgxY2FiOTQ4OCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0cy9XZWJGcmFtZVRlc3QuY3BwCisrKyBiL1NvdXJjZS9X
ZWJLaXQvY2hyb21pdW0vdGVzdHMvV2ViRnJhbWVUZXN0LmNwcApAQCAtMjQyOCw0ICsyNDI4LDcz
IEBAIFRFU1RfRihXZWJGcmFtZVRlc3QsIE1BWUJFX1JlcGxhY2VNaXNzcGVsbGVkUmFuZ2UpCiAg
ICAgbV93ZWJWaWV3ID0gMDsKIH0KIAorY2xhc3MgVGVzdEFjY2Vzc0luaXRpYWxEb2N1bWVudFdl
YkZyYW1lQ2xpZW50IDogcHVibGljIFdlYkZyYW1lQ2xpZW50IHsKK3B1YmxpYzoKKyAgICBUZXN0
QWNjZXNzSW5pdGlhbERvY3VtZW50V2ViRnJhbWVDbGllbnQoKSA6IG1fZGlkQWNjZXNzSW5pdGlh
bERvY3VtZW50KGZhbHNlKQorICAgIHsKKyAgICB9CisKKyAgICB2aXJ0dWFsIHZvaWQgZGlkQWNj
ZXNzSW5pdGlhbERvY3VtZW50KFdlYkZyYW1lKiBmcmFtZSkKKyAgICB7CisgICAgICAgIEVYUEVD
VF9UUlVFKCFtX2RpZEFjY2Vzc0luaXRpYWxEb2N1bWVudCk7CisgICAgICAgIG1fZGlkQWNjZXNz
SW5pdGlhbERvY3VtZW50ID0gdHJ1ZTsKKyAgICB9CisgICAgCisgICAgYm9vbCBtX2RpZEFjY2Vz
c0luaXRpYWxEb2N1bWVudDsKK307CisKK1RFU1RfRihXZWJGcmFtZVRlc3QsIERpZEFjY2Vzc0lu
aXRpYWxEb2N1bWVudEJvZHkpCit7CisgICAgVGVzdEFjY2Vzc0luaXRpYWxEb2N1bWVudFdlYkZy
YW1lQ2xpZW50IHdlYkZyYW1lQ2xpZW50OworICAgIG1fd2ViVmlldyA9IEZyYW1lVGVzdEhlbHBl
cnM6OmNyZWF0ZVdlYlZpZXcodHJ1ZSwgJndlYkZyYW1lQ2xpZW50KTsKKyAgICBydW5QZW5kaW5n
VGFza3MoKTsKKyAgICBFWFBFQ1RfRkFMU0Uod2ViRnJhbWVDbGllbnQubV9kaWRBY2Nlc3NJbml0
aWFsRG9jdW1lbnQpOworCisgICAgLy8gQ3JlYXRlIGFub3RoZXIgd2luZG93IHRoYXQgd2lsbCB0
cnkgdG8gYWNjZXNzIGl0LgorICAgIFdlYlZpZXcqIG5ld1ZpZXcgPSBGcmFtZVRlc3RIZWxwZXJz
OjpjcmVhdGVXZWJWaWV3KHRydWUpOworICAgIG5ld1ZpZXctPm1haW5GcmFtZSgpLT5zZXRPcGVu
ZXIobV93ZWJWaWV3LT5tYWluRnJhbWUoKSk7CisgICAgcnVuUGVuZGluZ1Rhc2tzKCk7CisgICAg
RVhQRUNUX0ZBTFNFKHdlYkZyYW1lQ2xpZW50Lm1fZGlkQWNjZXNzSW5pdGlhbERvY3VtZW50KTsK
KworICAgIC8vIEFjY2VzcyB0aGUgaW5pdGlhbCBkb2N1bWVudCBieSBtb2RpZnlpbmcgdGhlIGJv
ZHkuCisgICAgbmV3Vmlldy0+bWFpbkZyYW1lKCktPmV4ZWN1dGVTY3JpcHQoCisgICAgICAgIFdl
YlNjcmlwdFNvdXJjZSgid2luZG93Lm9wZW5lci5kb2N1bWVudC5ib2R5LmlubmVySFRNTCArPSAn
TW9kaWZpZWQnOyIpKTsKKyAgICBydW5QZW5kaW5nVGFza3MoKTsKKyAgICBFWFBFQ1RfVFJVRSh3
ZWJGcmFtZUNsaWVudC5tX2RpZEFjY2Vzc0luaXRpYWxEb2N1bWVudCk7CisKKyAgICAvLyBBY2Nl
c3MgdGhlIGluaXRpYWwgZG9jdW1lbnQgYWdhaW4sIHRvIGVuc3VyZSB3ZSBkb24ndCBub3RpZnkg
dHdpY2UuCisgICAgbmV3Vmlldy0+bWFpbkZyYW1lKCktPmV4ZWN1dGVTY3JpcHQoCisgICAgICAg
IFdlYlNjcmlwdFNvdXJjZSgid2luZG93Lm9wZW5lci5kb2N1bWVudC5ib2R5LmlubmVySFRNTCAr
PSAnTW9kaWZpZWQnOyIpKTsKKyAgICBydW5QZW5kaW5nVGFza3MoKTsKKyAgICBFWFBFQ1RfVFJV
RSh3ZWJGcmFtZUNsaWVudC5tX2RpZEFjY2Vzc0luaXRpYWxEb2N1bWVudCk7CisKKyAgICBuZXdW
aWV3LT5jbG9zZSgpOworICAgIG1fd2ViVmlldy0+Y2xvc2UoKTsKKyAgICBtX3dlYlZpZXcgPSAw
OworfQorCitURVNUX0YoV2ViRnJhbWVUZXN0LCBEaWRBY2Nlc3NJbml0aWFsRG9jdW1lbnROYXZp
Z2F0b3IpCit7CisgICAgVGVzdEFjY2Vzc0luaXRpYWxEb2N1bWVudFdlYkZyYW1lQ2xpZW50IHdl
YkZyYW1lQ2xpZW50OworICAgIG1fd2ViVmlldyA9IEZyYW1lVGVzdEhlbHBlcnM6OmNyZWF0ZVdl
YlZpZXcodHJ1ZSwgJndlYkZyYW1lQ2xpZW50KTsKKyAgICBydW5QZW5kaW5nVGFza3MoKTsKKyAg
ICBFWFBFQ1RfRkFMU0Uod2ViRnJhbWVDbGllbnQubV9kaWRBY2Nlc3NJbml0aWFsRG9jdW1lbnQp
OworCisgICAgLy8gQ3JlYXRlIGFub3RoZXIgd2luZG93IHRoYXQgd2lsbCB0cnkgdG8gYWNjZXNz
IGl0LgorICAgIFdlYlZpZXcqIG5ld1ZpZXcgPSBGcmFtZVRlc3RIZWxwZXJzOjpjcmVhdGVXZWJW
aWV3KHRydWUpOworICAgIG5ld1ZpZXctPm1haW5GcmFtZSgpLT5zZXRPcGVuZXIobV93ZWJWaWV3
LT5tYWluRnJhbWUoKSk7CisgICAgcnVuUGVuZGluZ1Rhc2tzKCk7CisgICAgRVhQRUNUX0ZBTFNF
KHdlYkZyYW1lQ2xpZW50Lm1fZGlkQWNjZXNzSW5pdGlhbERvY3VtZW50KTsKKworICAgIC8vIEFj
Y2VzcyB0aGUgaW5pdGlhbCBkb2N1bWVudCB0byBnZXQgdG8gdGhlIG5hdmlnYXRvciBvYmplY3Qu
CisgICAgbmV3Vmlldy0+bWFpbkZyYW1lKCktPmV4ZWN1dGVTY3JpcHQoCisgICAgICAgIFdlYlNj
cmlwdFNvdXJjZSgiY29uc29sZS5sb2cod2luZG93Lm9wZW5lci5uYXZpZ2F0b3IpOyIpKTsKKyAg
ICBydW5QZW5kaW5nVGFza3MoKTsKKyAgICBFWFBFQ1RfVFJVRSh3ZWJGcmFtZUNsaWVudC5tX2Rp
ZEFjY2Vzc0luaXRpYWxEb2N1bWVudCk7CisKKyAgICBuZXdWaWV3LT5jbG9zZSgpOworICAgIG1f
d2ViVmlldy0+Y2xvc2UoKTsKKyAgICBtX3dlYlZpZXcgPSAwOworfQorCiB9IC8vIG5hbWVzcGFj
ZQo=
</data>

          </attachment>
      

    </bug>

</bugzilla>