<?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>99780</bug_id>
          
          <creation_ts>2012-10-18 17:43:38 -0700</creation_ts>
          <short_desc>[Chromium] Allow pushState and related history APIs to be disabled per context</short_desc>
          <delta_ts>2012-10-24 16:27:17 -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>History</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</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="Mihai Parparita">mihaip</reporter>
          <assigned_to name="Mihai Parparita">mihaip</assigned_to>
          <cc>abarth</cc>
    
    <cc>dglazkov</cc>
    
    <cc>fishd</cc>
    
    <cc>haraken</cc>
    
    <cc>jamesr</cc>
    
    <cc>japhet</cc>
    
    <cc>morrita</cc>
    
    <cc>ojan</cc>
    
    <cc>peter+ews</cc>
    
    <cc>tkent+wkapi</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>745786</commentid>
    <comment_count>0</comment_count>
    <who name="Mihai Parparita">mihaip</who>
    <bug_when>2012-10-18 17:43:38 -0700</bug_when>
    <thetext>[Chromium] Allow pushState and related history APIs to be disabled per context</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>745790</commentid>
    <comment_count>1</comment_count>
      <attachid>169515</attachid>
    <who name="Mihai Parparita">mihaip</who>
    <bug_when>2012-10-18 17:44:44 -0700</bug_when>
    <thetext>Created attachment 169515
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>745798</commentid>
    <comment_count>2</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-10-18 17:47:41 -0700</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>745809</commentid>
    <comment_count>3</comment_count>
      <attachid>169515</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-10-18 17:54:35 -0700</bug_when>
    <thetext>Comment on attachment 169515
Patch

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

&gt; Source/WebCore/page/History.idl:46
&gt; -    [Custom] void replaceState(in any data, in DOMString title, in [Optional] DOMString url)
&gt; +    [Custom, V8EnabledPerContext=pushState] void replaceState(in any data, in DOMString title, in [Optional] DOMString url)

I presume this works even though these are custom.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>745811</commentid>
    <comment_count>4</comment_count>
    <who name="Mihai Parparita">mihaip</who>
    <bug_when>2012-10-18 17:57:05 -0700</bug_when>
    <thetext>(In reply to comment #3)
&gt; I presume this works even though these are custom.

Seems to work.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>745812</commentid>
    <comment_count>5</comment_count>
      <attachid>169515</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-10-18 17:57:31 -0700</bug_when>
    <thetext>Comment on attachment 169515
Patch

Rejecting attachment 169515 from commit-queue.

Failed to run &quot;[&apos;/mnt/git/webkit-commit-queue/Tools/Scripts/webkit-patch&apos;, &apos;--status-host=queues.webkit.org&apos;, &apos;-...&quot; exit_code: 1

ERROR: /mnt/git/webkit-commit-queue/Source/JavaScriptCore/ChangeLog neither lists a valid reviewer nor contains the string &quot;Unreviewed&quot; or &quot;Rubber stamp&quot; (case insensitive).

Full output: http://queues.webkit.org/results/14455310</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>745872</commentid>
    <comment_count>6</comment_count>
      <attachid>169515</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-10-18 18:47:54 -0700</bug_when>
    <thetext>Comment on attachment 169515
Patch

Rejecting attachment 169515 from commit-queue.

New failing tests:
fast/loader/stateobjects/popstate-after-load-complete-addeventlistener.html
fast/frames/sandboxed-iframe-history-denied.html
fast/loader/stateobjects/popstate-after-load-complete-window-attribute.html
fast/dom/Window/window-appendages-cleared.html
http/tests/navigation/pushstate-updates-referrer.html
http/tests/navigation/replacestate-updates-referrer.html
http/tests/history/popstate-fires-with-pending-requests.html
http/tests/navigation/replacestate-base-illegal.html
fast/loader/scroll-position-restored-on-back-non-cached.html
http/tests/history/replacestate-post-to-get.html
fast/loader/scroll-position-restored-on-back.html
fast/loader/text-document-wrapping.html
fast/loader/stateobjects/popstate-after-load-complete-body-attribute.html
http/tests/navigation/replacestate-base-legal.html
fast/loader/stateobjects/document-destroyed-navigate-back.html
http/tests/navigation/redirect-on-back-updates-history-item.html
http/tests/navigation/redirect-on-reload-updates-history-item.html
http/tests/loading/state-object-security-exception.html
fast/loader/stateobjects/popstate-after-load-complete-body-inline-attribute.html
http/tests/history/replacestate-post-to-get-2.html
http/tests/security/cross-frame-access-history-prototype.html
fast/loader/document-with-fragment-url-3.html
http/tests/xmlhttprequest/xmlhttprequest-unsafe-redirect.html
http/tests/history/history-navigations-set-referrer.html
fast/history/same-document-iframes-changing-pushstate.html
fast/history/history-replace-updates-current-item.html
fast/loader/javascript-url-in-object.html
fast/loader/stateobjects/document-destroyed-navigate-back-with-fragment-scroll.html
fast/loader/document-with-fragment-url-4.html
http/tests/security/cross-frame-access-object-getPrototypeOf.html
Full output: http://queues.webkit.org/results/14464226</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>746565</commentid>
    <comment_count>7</comment_count>
    <who name="Mihai Parparita">mihaip</who>
    <bug_when>2012-10-19 12:58:32 -0700</bug_when>
    <thetext>Huh, it looks like V8History::installPerContextPrototypeProperties is called, context is null, so the if context &amp;&amp; context-&gt;isDocument() &amp;&amp; ContextFeatures::pushStateEnabled(static_cast&lt;Document*&gt;(context)) check fails.

Looking more into it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>746568</commentid>
    <comment_count>8</comment_count>
    <who name="Mihai Parparita">mihaip</who>
    <bug_when>2012-10-19 13:01:07 -0700</bug_when>
    <thetext>Morita-san may know more, since it looks like he touched this in http://trac.webkit.org/changeset/131167 (see comment 7).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>746589</commentid>
    <comment_count>9</comment_count>
    <who name="Mihai Parparita">mihaip</who>
    <bug_when>2012-10-19 13:16:10 -0700</bug_when>
    <thetext>Ah, it&apos;s because V8History::wrapSlow ends up with:

v8::Handle&lt;v8::Object&gt; V8History::wrapSlow(PassRefPtr&lt;History&gt; impl, v8::Handle&lt;v8::Object&gt; creationContext, v8::Isolate* isolate)

    Document* document = 0;
...
    wrapper = V8DOMWrapper::instantiateV8Object(document, &amp;info, impl.get());

So the context is null.

That code gets generated by http://code.google.com/searchframe#OAMlx_jo-ck/src/third_party/WebKit/Source/WebCore/bindings/scripts/CodeGeneratorV8.pm&amp;exact_package=chromium&amp;q=wrapSlow%20file:pm&amp;type=cs&amp;l=3434:

    push(@implContent, &lt;&lt;END);
    Document* document = 0;
    UNUSED_PARAM(document);
END

    if (IsNodeSubType($dataNode) || $interfaceName eq &quot;NotificationCenter&quot;) {
        push(@implContent, &lt;&lt;END);
    document = impl-&gt;document();
END

Adding History next to the NotificationCenter exception seems like the most expedient fix. Not sure if there&apos;s anything cleaner.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>746595</commentid>
    <comment_count>10</comment_count>
      <attachid>169685</attachid>
    <who name="Mihai Parparita">mihaip</who>
    <bug_when>2012-10-19 13:21:54 -0700</bug_when>
    <thetext>Created attachment 169685
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>746637</commentid>
    <comment_count>11</comment_count>
      <attachid>169685</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-10-19 14:25:25 -0700</bug_when>
    <thetext>Comment on attachment 169685
Patch

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

&gt; Source/WebCore/bindings/scripts/CodeGeneratorV8.pm:3438
&gt; -    if (IsNodeSubType($dataNode) || $interfaceName eq &quot;NotificationCenter&quot;) {
&gt; +    if (IsNodeSubType($dataNode) || $interfaceName eq &quot;NotificationCenter&quot; || $interfaceName eq &quot;History&quot;) {

Please don&apos;t do this.  We&apos;re getting rid of this argument.  I&apos;m just waiting for the v8-team to make an API change.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>746639</commentid>
    <comment_count>12</comment_count>
      <attachid>169685</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-10-19 14:27:29 -0700</bug_when>
    <thetext>Comment on attachment 169685
Patch

instantiateV8Object doesn&apos;t need to look at its Document parameter.  You can get the current document by calling currentDocument from http://trac.webkit.org/browser/trunk/Source/WebCore/bindings/v8/BindingState.h</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>746687</commentid>
    <comment_count>13</comment_count>
    <who name="Mihai Parparita">mihaip</who>
    <bug_when>2012-10-19 15:14:55 -0700</bug_when>
    <thetext>(In reply to comment #12)
&gt; (From update of attachment 169685 [details])
&gt; instantiateV8Object doesn&apos;t need to look at its Document parameter.  You can get the current document by calling currentDocument from http://trac.webkit.org/browser/trunk/Source/WebCore/bindings/v8/BindingState.h

Adam is removing Document parameter with http://webkit.org/b/99876</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>746704</commentid>
    <comment_count>14</comment_count>
      <attachid>169685</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-10-19 15:28:07 -0700</bug_when>
    <thetext>Comment on attachment 169685
Patch

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

&gt; Source/WebCore/dom/ContextFeatures.cpp:114
&gt; +    ASSERT(document);
&gt; +    if (!document)
&gt; +        return true;

We shouldn&apos;t both ASSERT and handle the case where the ASSERT fails.  If the ASSERT is legit, we&apos;d prefer to crash and know about the problem.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>746919</commentid>
    <comment_count>15</comment_count>
      <attachid>169758</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-10-19 23:35:48 -0700</bug_when>
    <thetext>Created attachment 169758
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>746920</commentid>
    <comment_count>16</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-10-19 23:36:26 -0700</bug_when>
    <thetext>&gt; Adam is removing Document parameter with http://webkit.org/b/99876

I took the liberty of updating your patch now that Bug 99876 has landed.  Thanks for being patient.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>746924</commentid>
    <comment_count>17</comment_count>
      <attachid>169758</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-10-19 23:49:07 -0700</bug_when>
    <thetext>Comment on attachment 169758
Patch

Attachment 169758 did not pass chromium-ews (chromium-xvfb):
Output: http://queues.webkit.org/results/14460795</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>746927</commentid>
    <comment_count>18</comment_count>
      <attachid>169758</attachid>
    <who name="Peter Beverloo (cr-android ews)">peter+ews</who>
    <bug_when>2012-10-19 23:53:18 -0700</bug_when>
    <thetext>Comment on attachment 169758
Patch

Attachment 169758 did not pass cr-android-ews (chromium-android):
Output: http://queues.webkit.org/results/14460796</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>746938</commentid>
    <comment_count>19</comment_count>
      <attachid>169758</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-10-20 00:45:30 -0700</bug_when>
    <thetext>Comment on attachment 169758
Patch

Hum...  Seems like we need the document member function after all.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>747232</commentid>
    <comment_count>20</comment_count>
    <who name="Hajime Morrita">morrita</who>
    <bug_when>2012-10-21 22:36:16 -0700</bug_when>
    <thetext>(In reply to comment #19)
&gt; (From update of attachment 169758 [details])
&gt; Hum...  Seems like we need the document member function after all.
Hope bug 99954 helps.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>747677</commentid>
    <comment_count>21</comment_count>
      <attachid>169758</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-10-22 10:35:32 -0700</bug_when>
    <thetext>Comment on attachment 169758
Patch

Ok.  Let see if the commit-queue likes it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>747918</commentid>
    <comment_count>22</comment_count>
    <who name="Mihai Parparita">mihaip</who>
    <bug_when>2012-10-22 14:50:42 -0700</bug_when>
    <thetext>(In reply to comment #16)
&gt; &gt; Adam is removing Document parameter with http://webkit.org/b/99876
&gt; 
&gt; I took the liberty of updating your patch now that Bug 99876 has landed.  Thanks for being patient.

Thanks!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>748071</commentid>
    <comment_count>23</comment_count>
      <attachid>169758</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-10-22 16:41:46 -0700</bug_when>
    <thetext>Comment on attachment 169758
Patch

Rejecting attachment 169758 from commit-queue.

New failing tests:
http/tests/security/cross-frame-access-history-prototype.html
fast/frames/sandboxed-iframe-history-denied.html
http/tests/security/cross-frame-access-object-getPrototypeOf.html
Full output: http://queues.webkit.org/results/14490597</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>748147</commentid>
    <comment_count>24</comment_count>
    <who name="Mihai Parparita">mihaip</who>
    <bug_when>2012-10-22 18:02:49 -0700</bug_when>
    <thetext>(In reply to comment #23)
&gt; New failing tests:
&gt; http/tests/security/cross-frame-access-history-prototype.html
&gt; fast/frames/sandboxed-iframe-history-denied.html
&gt; http/tests/security/cross-frame-access-object-getPrototypeOf.html

These tests are failing because of additional output lines like:

CONSOLE MESSAGE: Sandbox access violation: Unsafe JavaScript attempt to access frame with URL script&gt;. The frame requesting access is sandboxed into a unique origin.

It seems like adding V8EnabledPerContext=pushState to the state attribute causes cross-frame history object to print that out (adding it to the pushState() and replaceState() methods doesn&apos;t do it). I&apos;ll look at the generated code and see if I can puzzle out why that happes.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>750139</commentid>
    <comment_count>25</comment_count>
    <who name="Mihai Parparita">mihaip</who>
    <bug_when>2012-10-24 15:43:07 -0700</bug_when>
    <thetext>The stack trace for why we we end up printing that message:

#0  WebCore::DOMWindow::crossDomainAccessErrorMessage (this=0x7fffe4eab380, activeWindow=0x7fffe24a3000)
    at ../../third_party/WebKit/Source/WebCore/page/DOMWindow.cpp:1756
#1  0x00007ffff192801f in WebCore::reportUnsafeJavaScriptAccess (host=..., type=v8::ACCESS_SET, data=...)
    at ../../third_party/WebKit/Source/WebCore/bindings/v8/V8DOMWindowShell.cpp:139
#2  0x00007ffff7347292 in v8::internal::Isolate::ReportFailedAccessCheck (this=0x7fffe4e67000, receiver=0x3541a8fae041, 
    type=v8::ACCESS_SET) at ../../v8/src/isolate.cc:793
#3  0x00007ffff73b6dd9 in v8::internal::JSObject::DefineAccessor (this=0x3541a8fae041, info=0x33a29c027a31)
    at ../../v8/src/objects.cc:4737
#4  0x00007ffff72a280a in v8::internal::SetAccessor (obj=..., info=...) at ../../v8/src/handles.cc:343
#5  0x00007ffff71c9cc7 in v8::Object::SetAccessor (this=0x7fffe24201b0, name=..., getter=
    0x7ffff1970d3e &lt;WebCore::V8History::stateAccessorGetter(v8::Local&lt;v8::String&gt;, v8::AccessorInfo const&amp;)&gt;, setter=0x0, data=..., 
    settings=v8::DEFAULT, attributes=v8::None) at ../../v8/src/api.cc:3119
#6  0x00007ffff21e73d2 in WebCore::V8DOMConfiguration::configureAttribute&lt;v8::Object&gt; (instance=..., prototype=..., attribute=...)
    at ../../third_party/WebKit/Source/WebCore/bindings/v8/V8DOMConfiguration.h:66
#7  0x00007ffff21c822e in WebCore::V8History::installPerContextProperties (instance=..., impl=0x7fffe13e6a50)
    at gen/webcore/bindings/V8History.cpp:237
#8  0x00007ffff21c8699 in WebCore::V8History::wrapSlow (impl=..., creationContext=..., isolate=0x7fffe4e67000)
    at gen/webcore/bindings/V8History.cpp:279
#9  0x00007ffff197bba2 in WebCore::V8History::wrap (impl=0x7fffe13e6a50, creationContext=..., isolate=0x7fffe4e67000)
    at gen/webkit/bindings/V8History.h:70
#10 0x00007ffff197bbfb in WebCore::toV8 (impl=0x7fffe13e6a50, creationContext=..., isolate=0x7fffe4e67000)
    at gen/webkit/bindings/V8History.h:77
#11 0x00007ffff2289b86 in WebCore::DOMWindowV8Internal::historyAttrGetter (name=..., info=...)
    at gen/webcore/bindings/V8DOMWindow.cpp:593
#12 0x00007ffff73a391c in v8::internal::JSObject::GetPropertyWithCallback (this=0x3541a8f3f161, receiver=0x15d8d4b57581, 
    structure=0x15d8d4b62ea9, name=0x3db80c81d0d1) at ../../v8/src/objects.cc:207
#13 0x00007ffff73a429d in v8::internal::JSObject::GetPropertyWithFailedAccessCheck (this=0x15d8d4b57581, receiver=0x15d8d4b57581, 
    result=0x7fffffffb5e0, name=0x3db80c81d0d1, attributes=0x7fffffffb66c) at ../../v8/src/objects.cc:326
#14 0x00007ffff73a577b in v8::internal::Object::GetProperty (this=0x15d8d4b57581, receiver=0x15d8d4b57581, result=0x7fffffffb5e0, 
    name=0x3db80c81d0d1, attributes=0x7fffffffb66c) at ../../v8/src/objects.cc:622
#15 0x00007ffff732e407 in v8::internal::LoadIC::Load (this=0x7fffffffb6b0, state=v8::internal::UNINITIALIZED, object=..., name=...)
    at ../../v8/src/ic.cc:934
#16 0x00007ffff733389b in v8::internal::LoadIC_Miss (args=..., isolate=0x7fffe4e67000) at ../../v8/src/ic.cc:2088

We did the access check before (we also ended up in V8DOMConfiguration::configureAttribute), but I&apos;m guessing that because we did those on the template meant that we didn&apos;t redo it for each context, so we didn&apos;t run this code while in a sandboxed iframe (which can&apos;t access that property).

One option for suppressing this message is to temporarily do a v8::V8::SetFailedAccessCheckCallbackFunction(NULL) when defining the per-context properties. However, that seems hacky (and restoring it to reportUnsafeJavaScriptAccess would mean exposing that from V8DOMWindowShell.cpp, where it&apos;s currently a static).

I&apos;m going to remove the V8EnabledPerContext=pushState from the state attribute for now, since then the CL works as expected and can therefore be landed. I&apos;m guessing that all feature detection for this API looks for the pushState method, not the state property.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>750143</commentid>
    <comment_count>26</comment_count>
      <attachid>170494</attachid>
    <who name="Mihai Parparita">mihaip</who>
    <bug_when>2012-10-24 15:47:33 -0700</bug_when>
    <thetext>Created attachment 170494
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>750186</commentid>
    <comment_count>27</comment_count>
      <attachid>170494</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-10-24 16:27:12 -0700</bug_when>
    <thetext>Comment on attachment 170494
Patch for landing

Clearing flags on attachment: 170494

Committed r132421: &lt;http://trac.webkit.org/changeset/132421&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>750187</commentid>
    <comment_count>28</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-10-24 16:27:17 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>169515</attachid>
            <date>2012-10-18 17:44:44 -0700</date>
            <delta_ts>2012-10-19 13:21:51 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-99780-20121018174329.patch</filename>
            <type>text/plain</type>
            <size>8931</size>
            <attacher name="Mihai Parparita">mihaip</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTMxODI2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOGZhNTc0YWMzMzczZTEz
MTUzYmMzYzcwOWNhZDQzNjNiMDMxYmNlMC4uYmVlMDcxNDFkZDM5ZWIwMTg5OGZhOGZkMDY4YWZk
YjliNWVkYmE2YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI5IEBACisyMDEyLTEwLTE4ICBNaWhh
aSBQYXJwYXJpdGEgIDxtaWhhaXBAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFtDaHJvbWl1bV0g
QWxsb3cgcHVzaFN0YXRlIGFuZCByZWxhdGVkIGhpc3RvcnkgQVBJcyB0byBiZSBkaXNhYmxlZCBw
ZXIgY29udGV4dAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9OTk3ODAKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICBDaHJvbWUgQXBwcyBkbyBub3Qgc3VwcG9ydCB0aGUgaGlzdG9yeSBBUEkgKG9yIG5hdmlnYXRp
b24gaW4gZ2VuZXJhbCkuCisgICAgICAgIFNpbmNlIHB1c2hTdGF0ZSBpcyBnZW5lcmFsbHkgZmVh
dHVyZSBkZXRlY3RlZCwgaXQncyBjbGVhbmVzdCB0byBkaXNhYmxlCisgICAgICAgIGl0IHZpYSBh
IFY4IHBlci1jb250ZXh0IGZlYXR1cmUsIHNvIHRoYXQgYXBwbGljYXRpb25zIGNhbiBoYXZlIHRo
ZQorICAgICAgICBhcHByb3ByaWF0ZSBmYWxsYmFjayBiZWhhdmlvciAob3RoZXIgaGlzdG9yeSBB
UElzIGFyZSByZS1tYXBwZWQgdG8gdGhyb3cKKyAgICAgICAgZXhjZXB0aW9ucywgc2luY2UgaGlz
dG9yeS5iYWNrKCkgYW5kIHRoZSBsaW5rIGFyZSBub3QgZmVhdHVyZSBkZXRlY3RlZCkuCisKKyAg
ICAgICAgKiBkb20vQ29udGV4dEZlYXR1cmVzLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNvbnRl
eHRGZWF0dXJlczo6cHVzaFN0YXRlRW5hYmxlZCk6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAg
ICAgKiBkb20vQ29udGV4dEZlYXR1cmVzLmg6CisgICAgICAgICogZG9tL0RvY3VtZW50LmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50OjplbnF1ZXVlUG9wc3RhdGVFdmVudCk6CisgICAg
ICAgICogcGFnZS9IaXN0b3J5LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Okhpc3Rvcnk6OmRvY3Vt
ZW50KToKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAqIHBhZ2UvSGlzdG9yeS5oOgorICAg
ICAgICAoV2ViQ29yZSk6CisgICAgICAgICogcGFnZS9IaXN0b3J5LmlkbDoKKwogMjAxMi0xMC0x
OCAgUnlvc3VrZSBOaXdhICA8cm5pd2FAd2Via2l0Lm9yZz4KIAogICAgICAgICBSRUdSRVNTSU9O
KHIxMzA0MTEpOiBDb3B5aW5nICYgcGFzdGluZyB0aGUgZmlyc3QgbGluZSBvZiB0ZXh0IGNhbiBt
b3ZlIGNhcmV0IHRvIHRoZSBlbmQgb2YgdGV4dCBhcmVhCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L2Nocm9taXVtL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9n
CmluZGV4IDA0ZjNjNjU1ZDM0Mjg5Y2ZiNGMzN2Y5ZjBiNDNmZWI1ZjMxNDk2ZTcuLjAyYjU2YTlj
MDVhN2U0N2ViNjQ4NzZmYzgxZDk2OTIyMGYxZWZmZjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvY2hyb21pdW0vQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdl
TG9nCkBAIC0xLDMgKzEsMTggQEAKKzIwMTItMTAtMTggIE1paGFpIFBhcnBhcml0YSAgPG1paGFp
cEBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgW0Nocm9taXVtXSBBbGxvdyBwdXNoU3RhdGUgYW5k
IHJlbGF0ZWQgaGlzdG9yeSBBUElzIHRvIGJlIGRpc2FibGVkIHBlciBjb250ZXh0CisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05OTc4MAorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZCBwdXNoU3RhdGUgY29u
dGV4dCBmZWF0dXJlLgorCisgICAgICAgICogcHVibGljL1dlYlBlcm1pc3Npb25DbGllbnQuaDoK
KyAgICAgICAgKFdlYlBlcm1pc3Npb25DbGllbnQpOgorICAgICAgICAoV2ViS2l0OjpXZWJQZXJt
aXNzaW9uQ2xpZW50OjphbGxvd1B1c2hTdGF0ZSk6CisgICAgICAgICogc3JjL0NvbnRleHRGZWF0
dXJlc0NsaWVudEltcGwuY3BwOgorICAgICAgICAoV2ViS2l0OjpDb250ZXh0RmVhdHVyZXNDbGll
bnRJbXBsOjphc2tJZklzRW5hYmxlZCk6CisKIDIwMTItMTAtMTggIFcuIEphbWVzIE1hY0xlYW4g
IDx3am1hY2xlYW5AY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFtjaHJvbWl1bV0gUmUtZW5hYmxl
IGdlc3R1cmUgaGlnaGxpZ2h0IGxheW91dCB0ZXN0cywgZml4IEdlc3R1cmVMb25nUHJlc3MgcmVn
cmVzc2lvbi4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Db250ZXh0RmVhdHVyZXMu
Y3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL0NvbnRleHRGZWF0dXJlcy5jcHAKaW5kZXggMGFhMzEw
ZGZlMzIxMGYxN2UzZThlMTg1MWI3MTQwN2MwM2U4ZTM1OS4uZDc5MGE2NGEzODdkYmQ4YThkOGMz
ZGU3NTkyMzE0OTY1N2YyMGMzNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0NvbnRl
eHRGZWF0dXJlcy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0NvbnRleHRGZWF0dXJlcy5j
cHAKQEAgLTEwNyw2ICsxMDcsMTQgQEAgYm9vbCBDb250ZXh0RmVhdHVyZXM6Om11dGF0aW9uRXZl
bnRzRW5hYmxlZChEb2N1bWVudCogZG9jdW1lbnQpCiAgICAgcmV0dXJuIGRvY3VtZW50LT5jb250
ZXh0RmVhdHVyZXMoKS0+aXNFbmFibGVkKGRvY3VtZW50LCBNdXRhdGlvbkV2ZW50cywgdHJ1ZSk7
CiB9CiAKK2Jvb2wgQ29udGV4dEZlYXR1cmVzOjpwdXNoU3RhdGVFbmFibGVkKERvY3VtZW50KiBk
b2N1bWVudCkKK3sKKyAgICBBU1NFUlQoZG9jdW1lbnQpOworICAgIGlmICghZG9jdW1lbnQpCisg
ICAgICAgIHJldHVybiB0cnVlOworICAgIHJldHVybiBkb2N1bWVudC0+Y29udGV4dEZlYXR1cmVz
KCktPmlzRW5hYmxlZChkb2N1bWVudCwgUHVzaFN0YXRlLCB0cnVlKTsKK30KKwogdm9pZCBwcm92
aWRlQ29udGV4dEZlYXR1cmVzVG8oUGFnZSogcGFnZSwgQ29udGV4dEZlYXR1cmVzQ2xpZW50KiBj
bGllbnQpCiB7CiAgICAgUmVmQ291bnRlZFN1cHBsZW1lbnQ8UGFnZSwgQ29udGV4dEZlYXR1cmVz
Pjo6cHJvdmlkZVRvKHBhZ2UsIENvbnRleHRGZWF0dXJlczo6c3VwcGxlbWVudE5hbWUoKSwgQ29u
dGV4dEZlYXR1cmVzOjpjcmVhdGUoY2xpZW50KSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9kb20vQ29udGV4dEZlYXR1cmVzLmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vQ29udGV4dEZlYXR1
cmVzLmgKaW5kZXggZjBhN2ZhMDJjZDk3ZmMwZmY3MTgxZDhjODRmODU4MjU2MmQ0ZjNmNC4uYjc5
OTI4NTFiMTdlZGYzNWNhYTI4YjljMDdmMzkyMzg3NzFhNzM2NyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvZG9tL0NvbnRleHRGZWF0dXJlcy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9D
b250ZXh0RmVhdHVyZXMuaApAQCAtNDQsNiArNDQsNyBAQCBwdWJsaWM6CiAgICAgICAgIFBhZ2VQ
b3B1cCwKICAgICAgICAgSFRNTE5vdGlmaWNhdGlvbnMsCiAgICAgICAgIE11dGF0aW9uRXZlbnRz
LAorICAgICAgICBQdXNoU3RhdGUsCiAgICAgICAgIEZlYXR1cmVUeXBlU2l6ZSAvLyBTaG91bGQg
YmUgdGhlIGxhc3QgZW50cnkuCiAgICAgfTsKIApAQCAtNTYsNiArNTcsNyBAQCBwdWJsaWM6CiAg
ICAgc3RhdGljIGJvb2wgcGFnZVBvcHVwRW5hYmxlZChEb2N1bWVudCopOwogICAgIHN0YXRpYyBi
b29sIGh0bWxOb3RpZmljYXRpb25zRW5hYmxlZChEb2N1bWVudCopOwogICAgIHN0YXRpYyBib29s
IG11dGF0aW9uRXZlbnRzRW5hYmxlZChEb2N1bWVudCopOworICAgIHN0YXRpYyBib29sIHB1c2hT
dGF0ZUVuYWJsZWQoRG9jdW1lbnQqKTsKIAogICAgIGJvb2wgaXNFbmFibGVkKERvY3VtZW50Kiwg
RmVhdHVyZVR5cGUsIGJvb2wpIGNvbnN0OwogICAgIHZvaWQgdXJsRGlkQ2hhbmdlKERvY3VtZW50
Kik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwIGIvU291cmNl
L1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcAppbmRleCA1NWVhODY5NGYyYzkwN2Q4OGYyMzdhZDM2
NDZmOGUzZjJhMWI3NTY3Li5lMzU5ZTIwZTViNGQzNjc1NjRjYmU5NThkZWQ4Njc4OGYyMTc5NTNm
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKQEAgLTUwMTIsNiArNTAxMiw5IEBAIHZvaWQgRG9j
dW1lbnQ6OmVucXVldWVIYXNoY2hhbmdlRXZlbnQoY29uc3QgU3RyaW5nJiBvbGRVUkwsIGNvbnN0
IFN0cmluZyYgbmV3VVJMCiAKIHZvaWQgRG9jdW1lbnQ6OmVucXVldWVQb3BzdGF0ZUV2ZW50KFBh
c3NSZWZQdHI8U2VyaWFsaXplZFNjcmlwdFZhbHVlPiBzdGF0ZU9iamVjdCkKIHsKKyAgICBpZiAo
IUNvbnRleHRGZWF0dXJlczo6cHVzaFN0YXRlRW5hYmxlZCh0aGlzKSkKKyAgICAgICAgcmV0dXJu
OworCiAgICAgLy8gRklYTUU6IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0zNjIwMiBQb3BzdGF0ZSBldmVudCBuZWVkcyB0byBmaXJlIGFzeW5jaHJvbm91c2x5CiAgICAg
ZGlzcGF0Y2hXaW5kb3dFdmVudChQb3BTdGF0ZUV2ZW50OjpjcmVhdGUoc3RhdGVPYmplY3QsIGRv
bVdpbmRvdygpID8gZG9tV2luZG93KCktPmhpc3RvcnkoKSA6IDApKTsKIH0KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BhZ2UvSGlzdG9yeS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0hp
c3RvcnkuY3BwCmluZGV4IDY2ODMxYzQzM2EwNDA3NmVmOGViYjQyNTQ1OTA4YTMwZjc5MmJlYzIu
LjA0ZTkyMGNkMGJlNjNhYjg4YTI5MDM2MDIzYTA5OWQxOWRmNmViMzYgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BhZ2UvSGlzdG9yeS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9I
aXN0b3J5LmNwcApAQCAtMTYwLDQgKzE2MCw5IEBAIHZvaWQgSGlzdG9yeTo6c3RhdGVPYmplY3RB
ZGRlZChQYXNzUmVmUHRyPFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZT4gZGF0YSwgY29uc3QgU3RyCiAg
ICAgICAgIG1fZnJhbWUtPmxvYWRlcigpLT5jbGllbnQoKS0+ZGlzcGF0Y2hEaWRSZXBsYWNlU3Rh
dGVXaXRoaW5QYWdlKCk7CiB9CiAKK0RvY3VtZW50KiBIaXN0b3J5Ojpkb2N1bWVudCgpIGNvbnN0
Cit7CisgICAgcmV0dXJuIG1fZnJhbWUgPyBtX2ZyYW1lLT5kb2N1bWVudCgpIDogMDsKK30KKwog
fSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9I
aXN0b3J5LmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0hpc3RvcnkuaAppbmRleCA4ODljMzc0MTBj
NmI3Y2E5NDE4NGQzNjE1YTJmODdkY2M3YjE0ZWNiLi4yYTUzOGFlMDk3ODg0OTI5NTcyMzZkZjZl
YjQ4NWZlMTllYzc5MjFkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0hpc3Rvcnku
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0hpc3RvcnkuaApAQCAtMzQsNiArMzQsNyBAQAog
CiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKK2NsYXNzIERvY3VtZW50OwogY2xhc3MgRnJhbWU7CiBj
bGFzcyBTY3JpcHRFeGVjdXRpb25Db250ZXh0OwogY2xhc3MgU2VyaWFsaXplZFNjcmlwdFZhbHVl
OwpAQCAtNjIsNiArNjMsOCBAQCBwdWJsaWM6CiAgICAgfTsKICAgICB2b2lkIHN0YXRlT2JqZWN0
QWRkZWQoUGFzc1JlZlB0cjxTZXJpYWxpemVkU2NyaXB0VmFsdWU+LCBjb25zdCBTdHJpbmcmIHRp
dGxlLCBjb25zdCBTdHJpbmcmIHVybCwgU3RhdGVPYmplY3RUeXBlLCBFeGNlcHRpb25Db2RlJik7
CiAKKyAgICBEb2N1bWVudCogZG9jdW1lbnQoKSBjb25zdDsKKwogcHJpdmF0ZToKICAgICBleHBs
aWNpdCBIaXN0b3J5KEZyYW1lKik7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
SGlzdG9yeS5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0hpc3RvcnkuaWRsCmluZGV4IGFiYjI0
NWYxZGJkODc3NDJiMmVmNTFlOTRlNmMyNTU0NTk4NzQxNTYuLjgwYzMzYjIzMTgwYTgyODdmMzgx
ZmQ0ODc4ZjZjOTc4NjVjNDcxMDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvSGlz
dG9yeS5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9IaXN0b3J5LmlkbApAQCAtMzUsMTUg
KzM1LDE0IEBACiAgICAgT21pdENvbnN0cnVjdG9yCiBdIGludGVyZmFjZSBIaXN0b3J5IHsKICAg
ICByZWFkb25seSBhdHRyaWJ1dGUgdW5zaWduZWQgbG9uZyBsZW5ndGg7Ci0gICAgW0NhY2hlZEF0
dHJpYnV0ZSwgQ3VzdG9tXSByZWFkb25seSBhdHRyaWJ1dGUgU2VyaWFsaXplZFNjcmlwdFZhbHVl
IHN0YXRlOworICAgIFtDYWNoZWRBdHRyaWJ1dGUsIEN1c3RvbSwgVjhFbmFibGVkUGVyQ29udGV4
dD1wdXNoU3RhdGVdIHJlYWRvbmx5IGF0dHJpYnV0ZSBTZXJpYWxpemVkU2NyaXB0VmFsdWUgc3Rh
dGU7CiAKICAgICBbRG9Ob3RDaGVja1NlY3VyaXR5LCBDYWxsV2l0aD1TY3JpcHRFeGVjdXRpb25D
b250ZXh0XSB2b2lkIGJhY2soKTsKICAgICBbRG9Ob3RDaGVja1NlY3VyaXR5LCBDYWxsV2l0aD1T
Y3JpcHRFeGVjdXRpb25Db250ZXh0XSB2b2lkIGZvcndhcmQoKTsKICAgICBbRG9Ob3RDaGVja1Nl
Y3VyaXR5LCBDYWxsV2l0aD1TY3JpcHRFeGVjdXRpb25Db250ZXh0XSB2b2lkIGdvKGluIFtPcHRp
b25hbD1EZWZhdWx0SXNVbmRlZmluZWRdIGxvbmcgZGlzdGFuY2UpOwogCi0gICAgW0N1c3RvbV0g
dm9pZCBwdXNoU3RhdGUoaW4gYW55IGRhdGEsIGluIERPTVN0cmluZyB0aXRsZSwgaW4gW09wdGlv
bmFsXSBET01TdHJpbmcgdXJsKQorICAgIFtDdXN0b20sIFY4RW5hYmxlZFBlckNvbnRleHQ9cHVz
aFN0YXRlXSB2b2lkIHB1c2hTdGF0ZShpbiBhbnkgZGF0YSwgaW4gRE9NU3RyaW5nIHRpdGxlLCBp
biBbT3B0aW9uYWxdIERPTVN0cmluZyB1cmwpCiAgICAgICAgIHJhaXNlcyhET01FeGNlcHRpb24p
OwotICAgIFtDdXN0b21dIHZvaWQgcmVwbGFjZVN0YXRlKGluIGFueSBkYXRhLCBpbiBET01TdHJp
bmcgdGl0bGUsIGluIFtPcHRpb25hbF0gRE9NU3RyaW5nIHVybCkKKyAgICBbQ3VzdG9tLCBWOEVu
YWJsZWRQZXJDb250ZXh0PXB1c2hTdGF0ZV0gdm9pZCByZXBsYWNlU3RhdGUoaW4gYW55IGRhdGEs
IGluIERPTVN0cmluZyB0aXRsZSwgaW4gW09wdGlvbmFsXSBET01TdHJpbmcgdXJsKQogICAgICAg
ICByYWlzZXMoRE9NRXhjZXB0aW9uKTsKIH07Ci0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
Y2hyb21pdW0vcHVibGljL1dlYlBlcm1pc3Npb25DbGllbnQuaCBiL1NvdXJjZS9XZWJLaXQvY2hy
b21pdW0vcHVibGljL1dlYlBlcm1pc3Npb25DbGllbnQuaAppbmRleCA1ZDA1OWVmNWRiMjg4YzU1
YjM5MDQzMTllOTMxN2IzZjZhMDk0NTMwLi4wYjY0MTRiNGUyMjM4NjcyZjM0NWY1ZDBiYzI1MjY2
OWEyZjM2NDdhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJQ
ZXJtaXNzaW9uQ2xpZW50LmgKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2Vi
UGVybWlzc2lvbkNsaWVudC5oCkBAIC0xMDEsNiArMTAxLDkgQEAgcHVibGljOgogICAgIC8vIGJ1
dCBpdCdzIGJlZW4gbmFtZWQgZm9yIGNvbnNpc3RlbmN5IHdpdGggdGhlIHJlc3Qgb2YgdGhlIGlu
dGVyZmFjZS4KICAgICB2aXJ0dWFsIGJvb2wgYWxsb3dNdXRhdGlvbkV2ZW50cyhjb25zdCBXZWJE
b2N1bWVudCYsIGJvb2wgZGVmYXVsdFZhbHVlKSB7IHJldHVybiBkZWZhdWx0VmFsdWU7IH0KIAor
ICAgIC8vIENvbnRyb2xzIHdoZXRoZXIgcHVzaFN0YXRlIGFuZCByZWxhdGVkIEhpc3RvcnkgQVBJ
cyBhcmUgZW5hYmxlZCBmb3IgdGhpcyBmcmFtZS4KKyAgICB2aXJ0dWFsIGJvb2wgYWxsb3dQdXNo
U3RhdGUoY29uc3QgV2ViRG9jdW1lbnQmKSB7IHJldHVybiB0cnVlOyB9CisKICAgICAvLyBOb3Rp
ZmllcyB0aGUgY2xpZW50IHRoYXQgdGhlIGZyYW1lIHdvdWxkIGhhdmUgaW5zdGFudGlhdGVkIGEg
cGx1Zy1pbiBpZiBwbHVnLWlucyB3ZXJlIGVuYWJsZWQuCiAgICAgdmlydHVhbCB2b2lkIGRpZE5v
dEFsbG93UGx1Z2lucyhXZWJGcmFtZSopIHsgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L2Nocm9taXVtL3NyYy9Db250ZXh0RmVhdHVyZXNDbGllbnRJbXBsLmNwcCBiL1NvdXJjZS9XZWJL
aXQvY2hyb21pdW0vc3JjL0NvbnRleHRGZWF0dXJlc0NsaWVudEltcGwuY3BwCmluZGV4IGU1Nzk1
ZWRjNGNiMTkzYTViZDRlMWM0OTkwNzM2ODYxYzcwNDEyZmUuLjQxZmQwNTQxMzU3MmM3OTI2NmNk
OGQ4ZTU1N2MxMDhmNzNkMzVmYWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0v
c3JjL0NvbnRleHRGZWF0dXJlc0NsaWVudEltcGwuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hy
b21pdW0vc3JjL0NvbnRleHRGZWF0dXJlc0NsaWVudEltcGwuY3BwCkBAIC0xNDYsNiArMTQ2LDgg
QEAgYm9vbCBDb250ZXh0RmVhdHVyZXNDbGllbnRJbXBsOjphc2tJZklzRW5hYmxlZChEb2N1bWVu
dCogZG9jdW1lbnQsIENvbnRleHRGZWF0dXIKICAgICAgICAgcmV0dXJuIG1fY2xpZW50LT5hbGxv
d0hUTUxOb3RpZmljYXRpb25zKFdlYkRvY3VtZW50KGRvY3VtZW50KSk7CiAgICAgY2FzZSBDb250
ZXh0RmVhdHVyZXM6Ok11dGF0aW9uRXZlbnRzOgogICAgICAgICByZXR1cm4gbV9jbGllbnQtPmFs
bG93TXV0YXRpb25FdmVudHMoV2ViRG9jdW1lbnQoZG9jdW1lbnQpLCBkZWZhdWx0VmFsdWUpOwor
ICAgIGNhc2UgQ29udGV4dEZlYXR1cmVzOjpQdXNoU3RhdGU6CisgICAgICAgIHJldHVybiBtX2Ns
aWVudC0+YWxsb3dQdXNoU3RhdGUoV2ViRG9jdW1lbnQoZG9jdW1lbnQpKTsKICAgICBkZWZhdWx0
OgogICAgICAgICByZXR1cm4gZGVmYXVsdFZhbHVlOwogICAgIH0K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>169685</attachid>
            <date>2012-10-19 13:21:54 -0700</date>
            <delta_ts>2012-10-19 23:35:45 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-99780-20121019132037.patch</filename>
            <type>text/plain</type>
            <size>9744</size>
            <attacher name="Mihai Parparita">mihaip</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTMxODI2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOGZhNTc0YWMzMzczZTEz
MTUzYmMzYzcwOWNhZDQzNjNiMDMxYmNlMC4uNzhjNGEzM2QxMThmYmQ0MThjYmU0OTIzNWI0ODg2
NzdhZmIwNmY3NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMyIEBACisyMDEyLTEwLTE4ICBNaWhh
aSBQYXJwYXJpdGEgIDxtaWhhaXBAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFtDaHJvbWl1bV0g
QWxsb3cgcHVzaFN0YXRlIGFuZCByZWxhdGVkIGhpc3RvcnkgQVBJcyB0byBiZSBkaXNhYmxlZCBw
ZXIgY29udGV4dAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9OTk3ODAKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICBDaHJvbWUgQXBwcyBkbyBub3Qgc3VwcG9ydCB0aGUgaGlzdG9yeSBBUEkgKG9yIG5hdmlnYXRp
b24gaW4gZ2VuZXJhbCkuCisgICAgICAgIFNpbmNlIHB1c2hTdGF0ZSBpcyBnZW5lcmFsbHkgZmVh
dHVyZSBkZXRlY3RlZCwgaXQncyBjbGVhbmVzdCB0byBkaXNhYmxlCisgICAgICAgIGl0IHZpYSBh
IFY4IHBlci1jb250ZXh0IGZlYXR1cmUsIHNvIHRoYXQgYXBwbGljYXRpb25zIGNhbiBoYXZlIHRo
ZQorICAgICAgICBhcHByb3ByaWF0ZSBmYWxsYmFjayBiZWhhdmlvciAob3RoZXIgaGlzdG9yeSBB
UElzIGFyZSByZS1tYXBwZWQgdG8gdGhyb3cKKyAgICAgICAgZXhjZXB0aW9ucywgc2luY2UgaGlz
dG9yeS5iYWNrKCkgYW5kIHRoZSBsaW5rIGFyZSBub3QgZmVhdHVyZSBkZXRlY3RlZCkuCisKKyAg
ICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JWOC5wbToKKyAgICAgICAgKEdl
bmVyYXRlVG9WOENvbnZlcnRlcnMpOiBBZGQgSGlzdG9yeSB0byB0aGUgbGlzdCBvZiB0eXBlcyB0
aGF0IGhhdmUgYW4KKyAgICAgICAgYXNzb2NpYXRlZCBEb2N1bWVudC4KKyAgICAgICAgKiBkb20v
Q29udGV4dEZlYXR1cmVzLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNvbnRleHRGZWF0dXJlczo6
cHVzaFN0YXRlRW5hYmxlZCk6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKiBkb20vQ29u
dGV4dEZlYXR1cmVzLmg6CisgICAgICAgICogZG9tL0RvY3VtZW50LmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OkRvY3VtZW50OjplbnF1ZXVlUG9wc3RhdGVFdmVudCk6CisgICAgICAgICogcGFnZS9I
aXN0b3J5LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Okhpc3Rvcnk6OmRvY3VtZW50KToKKyAgICAg
ICAgKFdlYkNvcmUpOgorICAgICAgICAqIHBhZ2UvSGlzdG9yeS5oOgorICAgICAgICAoV2ViQ29y
ZSk6CisgICAgICAgICogcGFnZS9IaXN0b3J5LmlkbDoKKwogMjAxMi0xMC0xOCAgUnlvc3VrZSBO
aXdhICA8cm5pd2FAd2Via2l0Lm9yZz4KIAogICAgICAgICBSRUdSRVNTSU9OKHIxMzA0MTEpOiBD
b3B5aW5nICYgcGFzdGluZyB0aGUgZmlyc3QgbGluZSBvZiB0ZXh0IGNhbiBtb3ZlIGNhcmV0IHRv
IHRoZSBlbmQgb2YgdGV4dCBhcmVhCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVt
L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCmluZGV4IDA0ZjNj
NjU1ZDM0Mjg5Y2ZiNGMzN2Y5ZjBiNDNmZWI1ZjMxNDk2ZTcuLjAyYjU2YTljMDVhN2U0N2ViNjQ4
NzZmYzgxZDk2OTIyMGYxZWZmZjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0v
Q2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCkBAIC0xLDMg
KzEsMTggQEAKKzIwMTItMTAtMTggIE1paGFpIFBhcnBhcml0YSAgPG1paGFpcEBjaHJvbWl1bS5v
cmc+CisKKyAgICAgICAgW0Nocm9taXVtXSBBbGxvdyBwdXNoU3RhdGUgYW5kIHJlbGF0ZWQgaGlz
dG9yeSBBUElzIHRvIGJlIGRpc2FibGVkIHBlciBjb250ZXh0CisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05OTc4MAorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZCBwdXNoU3RhdGUgY29udGV4dCBmZWF0dXJl
LgorCisgICAgICAgICogcHVibGljL1dlYlBlcm1pc3Npb25DbGllbnQuaDoKKyAgICAgICAgKFdl
YlBlcm1pc3Npb25DbGllbnQpOgorICAgICAgICAoV2ViS2l0OjpXZWJQZXJtaXNzaW9uQ2xpZW50
OjphbGxvd1B1c2hTdGF0ZSk6CisgICAgICAgICogc3JjL0NvbnRleHRGZWF0dXJlc0NsaWVudElt
cGwuY3BwOgorICAgICAgICAoV2ViS2l0OjpDb250ZXh0RmVhdHVyZXNDbGllbnRJbXBsOjphc2tJ
ZklzRW5hYmxlZCk6CisKIDIwMTItMTAtMTggIFcuIEphbWVzIE1hY0xlYW4gIDx3am1hY2xlYW5A
Y2hyb21pdW0ub3JnPgogCiAgICAgICAgIFtjaHJvbWl1bV0gUmUtZW5hYmxlIGdlc3R1cmUgaGln
aGxpZ2h0IGxheW91dCB0ZXN0cywgZml4IEdlc3R1cmVMb25nUHJlc3MgcmVncmVzc2lvbi4KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvclY4
LnBtIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9yVjgucG0K
aW5kZXggOGM5ZDg2OGRlNDc0Y2VlZDg4ZTNkMWZkNDZkODk4MDZiZDQ1MTYxNi4uMzM4ZDIwZWY4
NmFkNjYyODlkNDVjZjZiY2EyOWY2MDZlMTk2MDhmMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9yVjgucG0KKysrIGIvU291cmNlL1dlYkNv
cmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9yVjgucG0KQEAgLTM0MzUsNyArMzQzNSw3
IEBAIEVORAogICAgIFVOVVNFRF9QQVJBTShkb2N1bWVudCk7CiBFTkQKIAotICAgIGlmIChJc05v
ZGVTdWJUeXBlKCRkYXRhTm9kZSkgfHwgJGludGVyZmFjZU5hbWUgZXEgIk5vdGlmaWNhdGlvbkNl
bnRlciIpIHsKKyAgICBpZiAoSXNOb2RlU3ViVHlwZSgkZGF0YU5vZGUpIHx8ICRpbnRlcmZhY2VO
YW1lIGVxICJOb3RpZmljYXRpb25DZW50ZXIiIHx8ICRpbnRlcmZhY2VOYW1lIGVxICJIaXN0b3J5
IikgewogICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgPDxFTkQpOwogICAgIGRvY3VtZW50ID0g
aW1wbC0+ZG9jdW1lbnQoKTsgCiBFTkQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9D
b250ZXh0RmVhdHVyZXMuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL0NvbnRleHRGZWF0dXJlcy5j
cHAKaW5kZXggMGFhMzEwZGZlMzIxMGYxN2UzZThlMTg1MWI3MTQwN2MwM2U4ZTM1OS4uZDc5MGE2
NGEzODdkYmQ4YThkOGMzZGU3NTkyMzE0OTY1N2YyMGMzNyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvZG9tL0NvbnRleHRGZWF0dXJlcy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0Nv
bnRleHRGZWF0dXJlcy5jcHAKQEAgLTEwNyw2ICsxMDcsMTQgQEAgYm9vbCBDb250ZXh0RmVhdHVy
ZXM6Om11dGF0aW9uRXZlbnRzRW5hYmxlZChEb2N1bWVudCogZG9jdW1lbnQpCiAgICAgcmV0dXJu
IGRvY3VtZW50LT5jb250ZXh0RmVhdHVyZXMoKS0+aXNFbmFibGVkKGRvY3VtZW50LCBNdXRhdGlv
bkV2ZW50cywgdHJ1ZSk7CiB9CiAKK2Jvb2wgQ29udGV4dEZlYXR1cmVzOjpwdXNoU3RhdGVFbmFi
bGVkKERvY3VtZW50KiBkb2N1bWVudCkKK3sKKyAgICBBU1NFUlQoZG9jdW1lbnQpOworICAgIGlm
ICghZG9jdW1lbnQpCisgICAgICAgIHJldHVybiB0cnVlOworICAgIHJldHVybiBkb2N1bWVudC0+
Y29udGV4dEZlYXR1cmVzKCktPmlzRW5hYmxlZChkb2N1bWVudCwgUHVzaFN0YXRlLCB0cnVlKTsK
K30KKwogdm9pZCBwcm92aWRlQ29udGV4dEZlYXR1cmVzVG8oUGFnZSogcGFnZSwgQ29udGV4dEZl
YXR1cmVzQ2xpZW50KiBjbGllbnQpCiB7CiAgICAgUmVmQ291bnRlZFN1cHBsZW1lbnQ8UGFnZSwg
Q29udGV4dEZlYXR1cmVzPjo6cHJvdmlkZVRvKHBhZ2UsIENvbnRleHRGZWF0dXJlczo6c3VwcGxl
bWVudE5hbWUoKSwgQ29udGV4dEZlYXR1cmVzOjpjcmVhdGUoY2xpZW50KSk7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9kb20vQ29udGV4dEZlYXR1cmVzLmggYi9Tb3VyY2UvV2ViQ29yZS9k
b20vQ29udGV4dEZlYXR1cmVzLmgKaW5kZXggZjBhN2ZhMDJjZDk3ZmMwZmY3MTgxZDhjODRmODU4
MjU2MmQ0ZjNmNC4uYjc5OTI4NTFiMTdlZGYzNWNhYTI4YjljMDdmMzkyMzg3NzFhNzM2NyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0NvbnRleHRGZWF0dXJlcy5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2RvbS9Db250ZXh0RmVhdHVyZXMuaApAQCAtNDQsNiArNDQsNyBAQCBwdWJsaWM6
CiAgICAgICAgIFBhZ2VQb3B1cCwKICAgICAgICAgSFRNTE5vdGlmaWNhdGlvbnMsCiAgICAgICAg
IE11dGF0aW9uRXZlbnRzLAorICAgICAgICBQdXNoU3RhdGUsCiAgICAgICAgIEZlYXR1cmVUeXBl
U2l6ZSAvLyBTaG91bGQgYmUgdGhlIGxhc3QgZW50cnkuCiAgICAgfTsKIApAQCAtNTYsNiArNTcs
NyBAQCBwdWJsaWM6CiAgICAgc3RhdGljIGJvb2wgcGFnZVBvcHVwRW5hYmxlZChEb2N1bWVudCop
OwogICAgIHN0YXRpYyBib29sIGh0bWxOb3RpZmljYXRpb25zRW5hYmxlZChEb2N1bWVudCopOwog
ICAgIHN0YXRpYyBib29sIG11dGF0aW9uRXZlbnRzRW5hYmxlZChEb2N1bWVudCopOworICAgIHN0
YXRpYyBib29sIHB1c2hTdGF0ZUVuYWJsZWQoRG9jdW1lbnQqKTsKIAogICAgIGJvb2wgaXNFbmFi
bGVkKERvY3VtZW50KiwgRmVhdHVyZVR5cGUsIGJvb2wpIGNvbnN0OwogICAgIHZvaWQgdXJsRGlk
Q2hhbmdlKERvY3VtZW50Kik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1l
bnQuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcAppbmRleCA1NWVhODY5NGYy
YzkwN2Q4OGYyMzdhZDM2NDZmOGUzZjJhMWI3NTY3Li5lMzU5ZTIwZTViNGQzNjc1NjRjYmU5NThk
ZWQ4Njc4OGYyMTc5NTNmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKQEAgLTUwMTIsNiArNTAx
Miw5IEBAIHZvaWQgRG9jdW1lbnQ6OmVucXVldWVIYXNoY2hhbmdlRXZlbnQoY29uc3QgU3RyaW5n
JiBvbGRVUkwsIGNvbnN0IFN0cmluZyYgbmV3VVJMCiAKIHZvaWQgRG9jdW1lbnQ6OmVucXVldWVQ
b3BzdGF0ZUV2ZW50KFBhc3NSZWZQdHI8U2VyaWFsaXplZFNjcmlwdFZhbHVlPiBzdGF0ZU9iamVj
dCkKIHsKKyAgICBpZiAoIUNvbnRleHRGZWF0dXJlczo6cHVzaFN0YXRlRW5hYmxlZCh0aGlzKSkK
KyAgICAgICAgcmV0dXJuOworCiAgICAgLy8gRklYTUU6IGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0zNjIwMiBQb3BzdGF0ZSBldmVudCBuZWVkcyB0byBmaXJlIGFzeW5j
aHJvbm91c2x5CiAgICAgZGlzcGF0Y2hXaW5kb3dFdmVudChQb3BTdGF0ZUV2ZW50OjpjcmVhdGUo
c3RhdGVPYmplY3QsIGRvbVdpbmRvdygpID8gZG9tV2luZG93KCktPmhpc3RvcnkoKSA6IDApKTsK
IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvSGlzdG9yeS5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL0hpc3RvcnkuY3BwCmluZGV4IDY2ODMxYzQzM2EwNDA3NmVmOGViYjQyNTQ1
OTA4YTMwZjc5MmJlYzIuLjA0ZTkyMGNkMGJlNjNhYjg4YTI5MDM2MDIzYTA5OWQxOWRmNmViMzYg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvSGlzdG9yeS5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvcGFnZS9IaXN0b3J5LmNwcApAQCAtMTYwLDQgKzE2MCw5IEBAIHZvaWQgSGlzdG9y
eTo6c3RhdGVPYmplY3RBZGRlZChQYXNzUmVmUHRyPFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZT4gZGF0
YSwgY29uc3QgU3RyCiAgICAgICAgIG1fZnJhbWUtPmxvYWRlcigpLT5jbGllbnQoKS0+ZGlzcGF0
Y2hEaWRSZXBsYWNlU3RhdGVXaXRoaW5QYWdlKCk7CiB9CiAKK0RvY3VtZW50KiBIaXN0b3J5Ojpk
b2N1bWVudCgpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1fZnJhbWUgPyBtX2ZyYW1lLT5kb2N1bWVu
dCgpIDogMDsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGFnZS9IaXN0b3J5LmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0hpc3RvcnkuaApp
bmRleCA4ODljMzc0MTBjNmI3Y2E5NDE4NGQzNjE1YTJmODdkY2M3YjE0ZWNiLi4yYTUzOGFlMDk3
ODg0OTI5NTcyMzZkZjZlYjQ4NWZlMTllYzc5MjFkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL0hpc3RvcnkuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0hpc3RvcnkuaApAQCAt
MzQsNiArMzQsNyBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKK2NsYXNzIERvY3VtZW50Owog
Y2xhc3MgRnJhbWU7CiBjbGFzcyBTY3JpcHRFeGVjdXRpb25Db250ZXh0OwogY2xhc3MgU2VyaWFs
aXplZFNjcmlwdFZhbHVlOwpAQCAtNjIsNiArNjMsOCBAQCBwdWJsaWM6CiAgICAgfTsKICAgICB2
b2lkIHN0YXRlT2JqZWN0QWRkZWQoUGFzc1JlZlB0cjxTZXJpYWxpemVkU2NyaXB0VmFsdWU+LCBj
b25zdCBTdHJpbmcmIHRpdGxlLCBjb25zdCBTdHJpbmcmIHVybCwgU3RhdGVPYmplY3RUeXBlLCBF
eGNlcHRpb25Db2RlJik7CiAKKyAgICBEb2N1bWVudCogZG9jdW1lbnQoKSBjb25zdDsKKwogcHJp
dmF0ZToKICAgICBleHBsaWNpdCBIaXN0b3J5KEZyYW1lKik7CiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BhZ2UvSGlzdG9yeS5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0hpc3Rvcnku
aWRsCmluZGV4IGFiYjI0NWYxZGJkODc3NDJiMmVmNTFlOTRlNmMyNTU0NTk4NzQxNTYuLjgwYzMz
YjIzMTgwYTgyODdmMzgxZmQ0ODc4ZjZjOTc4NjVjNDcxMDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BhZ2UvSGlzdG9yeS5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9IaXN0b3J5
LmlkbApAQCAtMzUsMTUgKzM1LDE0IEBACiAgICAgT21pdENvbnN0cnVjdG9yCiBdIGludGVyZmFj
ZSBIaXN0b3J5IHsKICAgICByZWFkb25seSBhdHRyaWJ1dGUgdW5zaWduZWQgbG9uZyBsZW5ndGg7
Ci0gICAgW0NhY2hlZEF0dHJpYnV0ZSwgQ3VzdG9tXSByZWFkb25seSBhdHRyaWJ1dGUgU2VyaWFs
aXplZFNjcmlwdFZhbHVlIHN0YXRlOworICAgIFtDYWNoZWRBdHRyaWJ1dGUsIEN1c3RvbSwgVjhF
bmFibGVkUGVyQ29udGV4dD1wdXNoU3RhdGVdIHJlYWRvbmx5IGF0dHJpYnV0ZSBTZXJpYWxpemVk
U2NyaXB0VmFsdWUgc3RhdGU7CiAKICAgICBbRG9Ob3RDaGVja1NlY3VyaXR5LCBDYWxsV2l0aD1T
Y3JpcHRFeGVjdXRpb25Db250ZXh0XSB2b2lkIGJhY2soKTsKICAgICBbRG9Ob3RDaGVja1NlY3Vy
aXR5LCBDYWxsV2l0aD1TY3JpcHRFeGVjdXRpb25Db250ZXh0XSB2b2lkIGZvcndhcmQoKTsKICAg
ICBbRG9Ob3RDaGVja1NlY3VyaXR5LCBDYWxsV2l0aD1TY3JpcHRFeGVjdXRpb25Db250ZXh0XSB2
b2lkIGdvKGluIFtPcHRpb25hbD1EZWZhdWx0SXNVbmRlZmluZWRdIGxvbmcgZGlzdGFuY2UpOwog
Ci0gICAgW0N1c3RvbV0gdm9pZCBwdXNoU3RhdGUoaW4gYW55IGRhdGEsIGluIERPTVN0cmluZyB0
aXRsZSwgaW4gW09wdGlvbmFsXSBET01TdHJpbmcgdXJsKQorICAgIFtDdXN0b20sIFY4RW5hYmxl
ZFBlckNvbnRleHQ9cHVzaFN0YXRlXSB2b2lkIHB1c2hTdGF0ZShpbiBhbnkgZGF0YSwgaW4gRE9N
U3RyaW5nIHRpdGxlLCBpbiBbT3B0aW9uYWxdIERPTVN0cmluZyB1cmwpCiAgICAgICAgIHJhaXNl
cyhET01FeGNlcHRpb24pOwotICAgIFtDdXN0b21dIHZvaWQgcmVwbGFjZVN0YXRlKGluIGFueSBk
YXRhLCBpbiBET01TdHJpbmcgdGl0bGUsIGluIFtPcHRpb25hbF0gRE9NU3RyaW5nIHVybCkKKyAg
ICBbQ3VzdG9tLCBWOEVuYWJsZWRQZXJDb250ZXh0PXB1c2hTdGF0ZV0gdm9pZCByZXBsYWNlU3Rh
dGUoaW4gYW55IGRhdGEsIGluIERPTVN0cmluZyB0aXRsZSwgaW4gW09wdGlvbmFsXSBET01TdHJp
bmcgdXJsKQogICAgICAgICByYWlzZXMoRE9NRXhjZXB0aW9uKTsKIH07Ci0KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYlBlcm1pc3Npb25DbGllbnQuaCBiL1Nv
dXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYlBlcm1pc3Npb25DbGllbnQuaAppbmRleCA1
ZDA1OWVmNWRiMjg4YzU1YjM5MDQzMTllOTMxN2IzZjZhMDk0NTMwLi4wYjY0MTRiNGUyMjM4Njcy
ZjM0NWY1ZDBiYzI1MjY2OWEyZjM2NDdhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9t
aXVtL3B1YmxpYy9XZWJQZXJtaXNzaW9uQ2xpZW50LmgKKysrIGIvU291cmNlL1dlYktpdC9jaHJv
bWl1bS9wdWJsaWMvV2ViUGVybWlzc2lvbkNsaWVudC5oCkBAIC0xMDEsNiArMTAxLDkgQEAgcHVi
bGljOgogICAgIC8vIGJ1dCBpdCdzIGJlZW4gbmFtZWQgZm9yIGNvbnNpc3RlbmN5IHdpdGggdGhl
IHJlc3Qgb2YgdGhlIGludGVyZmFjZS4KICAgICB2aXJ0dWFsIGJvb2wgYWxsb3dNdXRhdGlvbkV2
ZW50cyhjb25zdCBXZWJEb2N1bWVudCYsIGJvb2wgZGVmYXVsdFZhbHVlKSB7IHJldHVybiBkZWZh
dWx0VmFsdWU7IH0KIAorICAgIC8vIENvbnRyb2xzIHdoZXRoZXIgcHVzaFN0YXRlIGFuZCByZWxh
dGVkIEhpc3RvcnkgQVBJcyBhcmUgZW5hYmxlZCBmb3IgdGhpcyBmcmFtZS4KKyAgICB2aXJ0dWFs
IGJvb2wgYWxsb3dQdXNoU3RhdGUoY29uc3QgV2ViRG9jdW1lbnQmKSB7IHJldHVybiB0cnVlOyB9
CisKICAgICAvLyBOb3RpZmllcyB0aGUgY2xpZW50IHRoYXQgdGhlIGZyYW1lIHdvdWxkIGhhdmUg
aW5zdGFudGlhdGVkIGEgcGx1Zy1pbiBpZiBwbHVnLWlucyB3ZXJlIGVuYWJsZWQuCiAgICAgdmly
dHVhbCB2b2lkIGRpZE5vdEFsbG93UGx1Z2lucyhXZWJGcmFtZSopIHsgfQogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9Db250ZXh0RmVhdHVyZXNDbGllbnRJbXBsLmNw
cCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0NvbnRleHRGZWF0dXJlc0NsaWVudEltcGwu
Y3BwCmluZGV4IGU1Nzk1ZWRjNGNiMTkzYTViZDRlMWM0OTkwNzM2ODYxYzcwNDEyZmUuLjQxZmQw
NTQxMzU3MmM3OTI2NmNkOGQ4ZTU1N2MxMDhmNzNkMzVmYWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvY2hyb21pdW0vc3JjL0NvbnRleHRGZWF0dXJlc0NsaWVudEltcGwuY3BwCisrKyBiL1Nv
dXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0NvbnRleHRGZWF0dXJlc0NsaWVudEltcGwuY3BwCkBA
IC0xNDYsNiArMTQ2LDggQEAgYm9vbCBDb250ZXh0RmVhdHVyZXNDbGllbnRJbXBsOjphc2tJZklz
RW5hYmxlZChEb2N1bWVudCogZG9jdW1lbnQsIENvbnRleHRGZWF0dXIKICAgICAgICAgcmV0dXJu
IG1fY2xpZW50LT5hbGxvd0hUTUxOb3RpZmljYXRpb25zKFdlYkRvY3VtZW50KGRvY3VtZW50KSk7
CiAgICAgY2FzZSBDb250ZXh0RmVhdHVyZXM6Ok11dGF0aW9uRXZlbnRzOgogICAgICAgICByZXR1
cm4gbV9jbGllbnQtPmFsbG93TXV0YXRpb25FdmVudHMoV2ViRG9jdW1lbnQoZG9jdW1lbnQpLCBk
ZWZhdWx0VmFsdWUpOworICAgIGNhc2UgQ29udGV4dEZlYXR1cmVzOjpQdXNoU3RhdGU6CisgICAg
ICAgIHJldHVybiBtX2NsaWVudC0+YWxsb3dQdXNoU3RhdGUoV2ViRG9jdW1lbnQoZG9jdW1lbnQp
KTsKICAgICBkZWZhdWx0OgogICAgICAgICByZXR1cm4gZGVmYXVsdFZhbHVlOwogICAgIH0K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>169758</attachid>
            <date>2012-10-19 23:35:48 -0700</date>
            <delta_ts>2012-10-24 15:47:29 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-99780-20121019233442.patch</filename>
            <type>text/plain</type>
            <size>7024</size>
            <attacher name="Adam Barth">abarth</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDEzMTk4MSkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDI0IEBACisyMDEyLTEwLTE5ICBNaWhhaSBQ
YXJwYXJpdGEgIDxtaWhhaXBAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFtDaHJvbWl1bV0gQWxs
b3cgcHVzaFN0YXRlIGFuZCByZWxhdGVkIGhpc3RvcnkgQVBJcyB0byBiZSBkaXNhYmxlZCBwZXIg
Y29udGV4dAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
OTk3ODAKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBD
aHJvbWUgQXBwcyBkbyBub3Qgc3VwcG9ydCB0aGUgaGlzdG9yeSBBUEkgKG9yIG5hdmlnYXRpb24g
aW4gZ2VuZXJhbCkuCisgICAgICAgIFNpbmNlIHB1c2hTdGF0ZSBpcyBnZW5lcmFsbHkgZmVhdHVy
ZSBkZXRlY3RlZCwgaXQncyBjbGVhbmVzdCB0byBkaXNhYmxlCisgICAgICAgIGl0IHZpYSBhIFY4
IHBlci1jb250ZXh0IGZlYXR1cmUsIHNvIHRoYXQgYXBwbGljYXRpb25zIGNhbiBoYXZlIHRoZQor
ICAgICAgICBhcHByb3ByaWF0ZSBmYWxsYmFjayBiZWhhdmlvciAob3RoZXIgaGlzdG9yeSBBUElz
IGFyZSByZS1tYXBwZWQgdG8gdGhyb3cKKyAgICAgICAgZXhjZXB0aW9ucywgc2luY2UgaGlzdG9y
eS5iYWNrKCkgYW5kIHRoZSBsaW5rIGFyZSBub3QgZmVhdHVyZSBkZXRlY3RlZCkuCisKKyAgICAg
ICAgKiBkb20vQ29udGV4dEZlYXR1cmVzLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNvbnRleHRG
ZWF0dXJlczo6cHVzaFN0YXRlRW5hYmxlZCk6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAg
KiBkb20vQ29udGV4dEZlYXR1cmVzLmg6CisgICAgICAgICogZG9tL0RvY3VtZW50LmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OkRvY3VtZW50OjplbnF1ZXVlUG9wc3RhdGVFdmVudCk6CisgICAgICAg
ICogcGFnZS9IaXN0b3J5LmlkbDoKKwogMjAxMi0xMC0xOSAgQWRhbSBCYXJ0aCAgPGFiYXJ0aEB3
ZWJraXQub3JnPgogCiAgICAgICAgIFtWOF0gVjhET01XcmFwcGVyIHNob3VsZCBhdm9pZCB1c2lu
ZyBpdHMgZG9jdW1lbnQgcGFyYW1ldGVyIChzbyB3ZSBjYW4gcmVtb3ZlIGl0IHNvb24pCkluZGV4
OiBTb3VyY2UvV2ViQ29yZS9kb20vQ29udGV4dEZlYXR1cmVzLmNwcAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV2ViQ29yZS9kb20vQ29udGV4dEZlYXR1cmVzLmNwcAkocmV2aXNpb24gMTMxOTc5KQor
KysgU291cmNlL1dlYkNvcmUvZG9tL0NvbnRleHRGZWF0dXJlcy5jcHAJKHdvcmtpbmcgY29weSkK
QEAgLTEwNyw2ICsxMDcsMTEgQEAgYm9vbCBDb250ZXh0RmVhdHVyZXM6Om11dGF0aW9uRXZlbnRz
RW5hYgogICAgIHJldHVybiBkb2N1bWVudC0+Y29udGV4dEZlYXR1cmVzKCktPmlzRW5hYmxlZChk
b2N1bWVudCwgTXV0YXRpb25FdmVudHMsIHRydWUpOwogfQogCitib29sIENvbnRleHRGZWF0dXJl
czo6cHVzaFN0YXRlRW5hYmxlZChEb2N1bWVudCogZG9jdW1lbnQpCit7CisgICAgcmV0dXJuIGRv
Y3VtZW50LT5jb250ZXh0RmVhdHVyZXMoKS0+aXNFbmFibGVkKGRvY3VtZW50LCBQdXNoU3RhdGUs
IHRydWUpOworfQorCiB2b2lkIHByb3ZpZGVDb250ZXh0RmVhdHVyZXNUbyhQYWdlKiBwYWdlLCBD
b250ZXh0RmVhdHVyZXNDbGllbnQqIGNsaWVudCkKIHsKICAgICBSZWZDb3VudGVkU3VwcGxlbWVu
dDxQYWdlLCBDb250ZXh0RmVhdHVyZXM+Ojpwcm92aWRlVG8ocGFnZSwgQ29udGV4dEZlYXR1cmVz
OjpzdXBwbGVtZW50TmFtZSgpLCBDb250ZXh0RmVhdHVyZXM6OmNyZWF0ZShjbGllbnQpKTsKSW5k
ZXg6IFNvdXJjZS9XZWJDb3JlL2RvbS9Db250ZXh0RmVhdHVyZXMuaAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV2ViQ29yZS9kb20vQ29udGV4dEZlYXR1cmVzLmgJKHJldmlzaW9uIDEzMTk3OSkKKysr
IFNvdXJjZS9XZWJDb3JlL2RvbS9Db250ZXh0RmVhdHVyZXMuaAkod29ya2luZyBjb3B5KQpAQCAt
NDQsNiArNDQsNyBAQCBwdWJsaWM6CiAgICAgICAgIFBhZ2VQb3B1cCwKICAgICAgICAgSFRNTE5v
dGlmaWNhdGlvbnMsCiAgICAgICAgIE11dGF0aW9uRXZlbnRzLAorICAgICAgICBQdXNoU3RhdGUs
CiAgICAgICAgIEZlYXR1cmVUeXBlU2l6ZSAvLyBTaG91bGQgYmUgdGhlIGxhc3QgZW50cnkuCiAg
ICAgfTsKIApAQCAtNTYsNiArNTcsNyBAQCBwdWJsaWM6CiAgICAgc3RhdGljIGJvb2wgcGFnZVBv
cHVwRW5hYmxlZChEb2N1bWVudCopOwogICAgIHN0YXRpYyBib29sIGh0bWxOb3RpZmljYXRpb25z
RW5hYmxlZChEb2N1bWVudCopOwogICAgIHN0YXRpYyBib29sIG11dGF0aW9uRXZlbnRzRW5hYmxl
ZChEb2N1bWVudCopOworICAgIHN0YXRpYyBib29sIHB1c2hTdGF0ZUVuYWJsZWQoRG9jdW1lbnQq
KTsKIAogICAgIGJvb2wgaXNFbmFibGVkKERvY3VtZW50KiwgRmVhdHVyZVR5cGUsIGJvb2wpIGNv
bnN0OwogICAgIHZvaWQgdXJsRGlkQ2hhbmdlKERvY3VtZW50Kik7CkluZGV4OiBTb3VyY2UvV2Vi
Q29yZS9kb20vRG9jdW1lbnQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2RvbS9E
b2N1bWVudC5jcHAJKHJldmlzaW9uIDEzMTk3OSkKKysrIFNvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1
bWVudC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTUwMTMsNiArNTAxMyw5IEBAIHZvaWQgRG9jdW1l
bnQ6OmVucXVldWVIYXNoY2hhbmdlRXZlbnQoY28KIAogdm9pZCBEb2N1bWVudDo6ZW5xdWV1ZVBv
cHN0YXRlRXZlbnQoUGFzc1JlZlB0cjxTZXJpYWxpemVkU2NyaXB0VmFsdWU+IHN0YXRlT2JqZWN0
KQogeworICAgIGlmICghQ29udGV4dEZlYXR1cmVzOjpwdXNoU3RhdGVFbmFibGVkKHRoaXMpKQor
ICAgICAgICByZXR1cm47CisKICAgICAvLyBGSVhNRTogaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTM2MjAyIFBvcHN0YXRlIGV2ZW50IG5lZWRzIHRvIGZpcmUgYXN5bmNo
cm9ub3VzbHkKICAgICBkaXNwYXRjaFdpbmRvd0V2ZW50KFBvcFN0YXRlRXZlbnQ6OmNyZWF0ZShz
dGF0ZU9iamVjdCwgZG9tV2luZG93KCkgPyBkb21XaW5kb3coKS0+aGlzdG9yeSgpIDogMCkpOwog
fQpJbmRleDogU291cmNlL1dlYkNvcmUvcGFnZS9IaXN0b3J5LmlkbAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV2ViQ29yZS9wYWdlL0hpc3RvcnkuaWRsCShyZXZpc2lvbiAxMzE5NzkpCisrKyBTb3Vy
Y2UvV2ViQ29yZS9wYWdlL0hpc3RvcnkuaWRsCSh3b3JraW5nIGNvcHkpCkBAIC0zNSwxNSArMzUs
MTQgQEAKICAgICBPbWl0Q29uc3RydWN0b3IKIF0gaW50ZXJmYWNlIEhpc3RvcnkgewogICAgIHJl
YWRvbmx5IGF0dHJpYnV0ZSB1bnNpZ25lZCBsb25nIGxlbmd0aDsKLSAgICBbQ2FjaGVkQXR0cmli
dXRlLCBDdXN0b21dIHJlYWRvbmx5IGF0dHJpYnV0ZSBTZXJpYWxpemVkU2NyaXB0VmFsdWUgc3Rh
dGU7CisgICAgW0NhY2hlZEF0dHJpYnV0ZSwgQ3VzdG9tLCBWOEVuYWJsZWRQZXJDb250ZXh0PXB1
c2hTdGF0ZV0gcmVhZG9ubHkgYXR0cmlidXRlIFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZSBzdGF0ZTsK
IAogICAgIFtEb05vdENoZWNrU2VjdXJpdHksIENhbGxXaXRoPVNjcmlwdEV4ZWN1dGlvbkNvbnRl
eHRdIHZvaWQgYmFjaygpOwogICAgIFtEb05vdENoZWNrU2VjdXJpdHksIENhbGxXaXRoPVNjcmlw
dEV4ZWN1dGlvbkNvbnRleHRdIHZvaWQgZm9yd2FyZCgpOwogICAgIFtEb05vdENoZWNrU2VjdXJp
dHksIENhbGxXaXRoPVNjcmlwdEV4ZWN1dGlvbkNvbnRleHRdIHZvaWQgZ28oaW4gW09wdGlvbmFs
PURlZmF1bHRJc1VuZGVmaW5lZF0gbG9uZyBkaXN0YW5jZSk7CiAKLSAgICBbQ3VzdG9tXSB2b2lk
IHB1c2hTdGF0ZShpbiBhbnkgZGF0YSwgaW4gRE9NU3RyaW5nIHRpdGxlLCBpbiBbT3B0aW9uYWxd
IERPTVN0cmluZyB1cmwpCisgICAgW0N1c3RvbSwgVjhFbmFibGVkUGVyQ29udGV4dD1wdXNoU3Rh
dGVdIHZvaWQgcHVzaFN0YXRlKGluIGFueSBkYXRhLCBpbiBET01TdHJpbmcgdGl0bGUsIGluIFtP
cHRpb25hbF0gRE9NU3RyaW5nIHVybCkKICAgICAgICAgcmFpc2VzKERPTUV4Y2VwdGlvbik7Ci0g
ICAgW0N1c3RvbV0gdm9pZCByZXBsYWNlU3RhdGUoaW4gYW55IGRhdGEsIGluIERPTVN0cmluZyB0
aXRsZSwgaW4gW09wdGlvbmFsXSBET01TdHJpbmcgdXJsKQorICAgIFtDdXN0b20sIFY4RW5hYmxl
ZFBlckNvbnRleHQ9cHVzaFN0YXRlXSB2b2lkIHJlcGxhY2VTdGF0ZShpbiBhbnkgZGF0YSwgaW4g
RE9NU3RyaW5nIHRpdGxlLCBpbiBbT3B0aW9uYWxdIERPTVN0cmluZyB1cmwpCiAgICAgICAgIHJh
aXNlcyhET01FeGNlcHRpb24pOwogfTsKLQpJbmRleDogU291cmNlL1dlYktpdC9jaHJvbWl1bS9D
aGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cJ
KHJldmlzaW9uIDEzMTk3OSkKKysrIFNvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCSh3
b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTggQEAKKzIwMTItMTAtMTkgIE1paGFpIFBhcnBhcml0
YSAgPG1paGFpcEBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgW0Nocm9taXVtXSBBbGxvdyBwdXNo
U3RhdGUgYW5kIHJlbGF0ZWQgaGlzdG9yeSBBUElzIHRvIGJlIGRpc2FibGVkIHBlciBjb250ZXh0
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05OTc4MAor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZCBwdXNo
U3RhdGUgY29udGV4dCBmZWF0dXJlLgorCisgICAgICAgICogcHVibGljL1dlYlBlcm1pc3Npb25D
bGllbnQuaDoKKyAgICAgICAgKFdlYlBlcm1pc3Npb25DbGllbnQpOgorICAgICAgICAoV2ViS2l0
OjpXZWJQZXJtaXNzaW9uQ2xpZW50OjphbGxvd1B1c2hTdGF0ZSk6CisgICAgICAgICogc3JjL0Nv
bnRleHRGZWF0dXJlc0NsaWVudEltcGwuY3BwOgorICAgICAgICAoV2ViS2l0OjpDb250ZXh0RmVh
dHVyZXNDbGllbnRJbXBsOjphc2tJZklzRW5hYmxlZCk6CisKIDIwMTItMTAtMTkgIFl1c3VmIE96
dXlzYWwgIDx5dXN1Zm9AZ29vZ2xlLmNvbT4KIAogICAgICAgICBbY2hyb21pdW1dIERvdWJsZS10
YXAgZGVmYXVsdHMgdG8gem9vbSAoc2hvdWxkIG9ubHkgZG8gdGhpcyBvbiBBbmRyb2lkKQpJbmRl
eDogU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViUGVybWlzc2lvbkNsaWVudC5oCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYlBlcm1pc3Npb25D
bGllbnQuaAkocmV2aXNpb24gMTMxOTc5KQorKysgU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJs
aWMvV2ViUGVybWlzc2lvbkNsaWVudC5oCSh3b3JraW5nIGNvcHkpCkBAIC0xMDEsNiArMTAxLDkg
QEAgcHVibGljOgogICAgIC8vIGJ1dCBpdCdzIGJlZW4gbmFtZWQgZm9yIGNvbnNpc3RlbmN5IHdp
dGggdGhlIHJlc3Qgb2YgdGhlIGludGVyZmFjZS4KICAgICB2aXJ0dWFsIGJvb2wgYWxsb3dNdXRh
dGlvbkV2ZW50cyhjb25zdCBXZWJEb2N1bWVudCYsIGJvb2wgZGVmYXVsdFZhbHVlKSB7IHJldHVy
biBkZWZhdWx0VmFsdWU7IH0KIAorICAgIC8vIENvbnRyb2xzIHdoZXRoZXIgcHVzaFN0YXRlIGFu
ZCByZWxhdGVkIEhpc3RvcnkgQVBJcyBhcmUgZW5hYmxlZCBmb3IgdGhpcyBmcmFtZS4KKyAgICB2
aXJ0dWFsIGJvb2wgYWxsb3dQdXNoU3RhdGUoY29uc3QgV2ViRG9jdW1lbnQmKSB7IHJldHVybiB0
cnVlOyB9CisKICAgICAvLyBOb3RpZmllcyB0aGUgY2xpZW50IHRoYXQgdGhlIGZyYW1lIHdvdWxk
IGhhdmUgaW5zdGFudGlhdGVkIGEgcGx1Zy1pbiBpZiBwbHVnLWlucyB3ZXJlIGVuYWJsZWQuCiAg
ICAgdmlydHVhbCB2b2lkIGRpZE5vdEFsbG93UGx1Z2lucyhXZWJGcmFtZSopIHsgfQogCkluZGV4
OiBTb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9Db250ZXh0RmVhdHVyZXNDbGllbnRJbXBsLmNw
cAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9Db250ZXh0RmVhdHVy
ZXNDbGllbnRJbXBsLmNwcAkocmV2aXNpb24gMTMxOTc5KQorKysgU291cmNlL1dlYktpdC9jaHJv
bWl1bS9zcmMvQ29udGV4dEZlYXR1cmVzQ2xpZW50SW1wbC5jcHAJKHdvcmtpbmcgY29weSkKQEAg
LTE0Niw2ICsxNDYsOCBAQCBib29sIENvbnRleHRGZWF0dXJlc0NsaWVudEltcGw6OmFza0lmSXNF
CiAgICAgICAgIHJldHVybiBtX2NsaWVudC0+YWxsb3dIVE1MTm90aWZpY2F0aW9ucyhXZWJEb2N1
bWVudChkb2N1bWVudCkpOwogICAgIGNhc2UgQ29udGV4dEZlYXR1cmVzOjpNdXRhdGlvbkV2ZW50
czoKICAgICAgICAgcmV0dXJuIG1fY2xpZW50LT5hbGxvd011dGF0aW9uRXZlbnRzKFdlYkRvY3Vt
ZW50KGRvY3VtZW50KSwgZGVmYXVsdFZhbHVlKTsKKyAgICBjYXNlIENvbnRleHRGZWF0dXJlczo6
UHVzaFN0YXRlOgorICAgICAgICByZXR1cm4gbV9jbGllbnQtPmFsbG93UHVzaFN0YXRlKFdlYkRv
Y3VtZW50KGRvY3VtZW50KSk7CiAgICAgZGVmYXVsdDoKICAgICAgICAgcmV0dXJuIGRlZmF1bHRW
YWx1ZTsKICAgICB9Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>170494</attachid>
            <date>2012-10-24 15:47:33 -0700</date>
            <delta_ts>2012-10-24 16:27:12 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-99780-20121024154608.patch</filename>
            <type>text/plain</type>
            <size>7122</size>
            <attacher name="Mihai Parparita">mihaip</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTMyMTY2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMzA2YTViZGM4ZGIzOTMy
MTU5ZjVkMWYxM2MwZmZmZWZlZDcxZGRiMC4uM2EyMWY4YTk5NDk0OWM5OTQyNjEzNWVhNGY4ZjY3
MTE0YzdkMThiOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI0IEBACisyMDEyLTEwLTIyICBNaWhh
aSBQYXJwYXJpdGEgIDxtaWhhaXBAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFtDaHJvbWl1bV0g
QWxsb3cgcHVzaFN0YXRlIGFuZCByZWxhdGVkIGhpc3RvcnkgQVBJcyB0byBiZSBkaXNhYmxlZCBw
ZXIgY29udGV4dAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9OTk3ODAKKworICAgICAgICBSZXZpZXdlZCBieSBBZGFtIEJhcnRoLgorCisgICAgICAgIENo
cm9tZSBBcHBzIGRvIG5vdCBzdXBwb3J0IHRoZSBoaXN0b3J5IEFQSSAob3IgbmF2aWdhdGlvbiBp
biBnZW5lcmFsKS4KKyAgICAgICAgU2luY2UgcHVzaFN0YXRlIGlzIGdlbmVyYWxseSBmZWF0dXJl
IGRldGVjdGVkLCBpdCdzIGNsZWFuZXN0IHRvIGRpc2FibGUKKyAgICAgICAgaXQgdmlhIGEgVjgg
cGVyLWNvbnRleHQgZmVhdHVyZSwgc28gdGhhdCBhcHBsaWNhdGlvbnMgY2FuIGhhdmUgdGhlCisg
ICAgICAgIGFwcHJvcHJpYXRlIGZhbGxiYWNrIGJlaGF2aW9yIChvdGhlciBoaXN0b3J5IEFQSXMg
YXJlIHJlLW1hcHBlZCB0byB0aHJvdworICAgICAgICBleGNlcHRpb25zLCBzaW5jZSBoaXN0b3J5
LmJhY2soKSBhbmQgdGhlIGxpbmsgYXJlIG5vdCBmZWF0dXJlIGRldGVjdGVkKS4KKworICAgICAg
ICAqIGRvbS9Db250ZXh0RmVhdHVyZXMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q29udGV4dEZl
YXR1cmVzOjpwdXNoU3RhdGVFbmFibGVkKToKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAq
IGRvbS9Db250ZXh0RmVhdHVyZXMuaDoKKyAgICAgICAgKiBkb20vRG9jdW1lbnQuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6RG9jdW1lbnQ6OmVucXVldWVQb3BzdGF0ZUV2ZW50KToKKyAgICAgICAg
KiBwYWdlL0hpc3RvcnkuaWRsOgorCiAyMDEyLTEwLTIyICBNaWNoYWVsIFNhYm9mZiAgPG1zYWJv
ZmZAYXBwbGUuY29tPgogCiAgICAgICAgIEhUTUwgUGFyc2VyIHNob3VsZCBwcm9kdWNlIDggYml0
IHN0cmluZ3MgZm9yIGRvY3R5cGUsIGNvbW1lbnQgYW5kIHRhZ05hbWUgdG9rZW5zCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvY2hy
b21pdW0vQ2hhbmdlTG9nCmluZGV4IDM4OWU1YmJkOWZmMzc1NzE1ZmE2NTU1ODZjNjE3NGFjZjE1
ZTgyOGIuLjY2ZTFiMDgyZTFiNzg5NDkzMDQ5ZDcyMGFmNDdiNzI5MTM5YzQ1ZDcgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQv
Y2hyb21pdW0vQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTggQEAKKzIwMTItMTAtMjIgIE1paGFpIFBh
cnBhcml0YSAgPG1paGFpcEBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgW0Nocm9taXVtXSBBbGxv
dyBwdXNoU3RhdGUgYW5kIHJlbGF0ZWQgaGlzdG9yeSBBUElzIHRvIGJlIGRpc2FibGVkIHBlciBj
b250ZXh0CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05
OTc4MAorCisgICAgICAgIFJldmlld2VkIGJ5IEFkYW0gQmFydGguCisKKyAgICAgICAgQWRkIHB1
c2hTdGF0ZSBjb250ZXh0IGZlYXR1cmUuCisKKyAgICAgICAgKiBwdWJsaWMvV2ViUGVybWlzc2lv
bkNsaWVudC5oOgorICAgICAgICAoV2ViUGVybWlzc2lvbkNsaWVudCk6CisgICAgICAgIChXZWJL
aXQ6OldlYlBlcm1pc3Npb25DbGllbnQ6OmFsbG93UHVzaFN0YXRlKToKKyAgICAgICAgKiBzcmMv
Q29udGV4dEZlYXR1cmVzQ2xpZW50SW1wbC5jcHA6CisgICAgICAgIChXZWJLaXQ6OkNvbnRleHRG
ZWF0dXJlc0NsaWVudEltcGw6OmFza0lmSXNFbmFibGVkKToKKwogMjAxMi0xMC0yMiAgU2hlcmlm
ZiBCb3QgIDx3ZWJraXQucmV2aWV3LmJvdEBnbWFpbC5jb20+CiAKICAgICAgICAgVW5yZXZpZXdl
ZCwgcm9sbGluZyBvdXQgcjEzMjExOS4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9D
b250ZXh0RmVhdHVyZXMuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL0NvbnRleHRGZWF0dXJlcy5j
cHAKaW5kZXggMGFhMzEwZGZlMzIxMGYxN2UzZThlMTg1MWI3MTQwN2MwM2U4ZTM1OS4uM2FmYmUz
ODg5NTU5MjI1MmU5OTVjYzllYmRhMzllMzVlNDY3OGM0NSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvZG9tL0NvbnRleHRGZWF0dXJlcy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0Nv
bnRleHRGZWF0dXJlcy5jcHAKQEAgLTEwNyw2ICsxMDcsMTEgQEAgYm9vbCBDb250ZXh0RmVhdHVy
ZXM6Om11dGF0aW9uRXZlbnRzRW5hYmxlZChEb2N1bWVudCogZG9jdW1lbnQpCiAgICAgcmV0dXJu
IGRvY3VtZW50LT5jb250ZXh0RmVhdHVyZXMoKS0+aXNFbmFibGVkKGRvY3VtZW50LCBNdXRhdGlv
bkV2ZW50cywgdHJ1ZSk7CiB9CiAKK2Jvb2wgQ29udGV4dEZlYXR1cmVzOjpwdXNoU3RhdGVFbmFi
bGVkKERvY3VtZW50KiBkb2N1bWVudCkKK3sKKyAgICByZXR1cm4gZG9jdW1lbnQtPmNvbnRleHRG
ZWF0dXJlcygpLT5pc0VuYWJsZWQoZG9jdW1lbnQsIFB1c2hTdGF0ZSwgdHJ1ZSk7Cit9CisKIHZv
aWQgcHJvdmlkZUNvbnRleHRGZWF0dXJlc1RvKFBhZ2UqIHBhZ2UsIENvbnRleHRGZWF0dXJlc0Ns
aWVudCogY2xpZW50KQogewogICAgIFJlZkNvdW50ZWRTdXBwbGVtZW50PFBhZ2UsIENvbnRleHRG
ZWF0dXJlcz46OnByb3ZpZGVUbyhwYWdlLCBDb250ZXh0RmVhdHVyZXM6OnN1cHBsZW1lbnROYW1l
KCksIENvbnRleHRGZWF0dXJlczo6Y3JlYXRlKGNsaWVudCkpOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvZG9tL0NvbnRleHRGZWF0dXJlcy5oIGIvU291cmNlL1dlYkNvcmUvZG9tL0NvbnRl
eHRGZWF0dXJlcy5oCmluZGV4IGYwYTdmYTAyY2Q5N2ZjMGZmNzE4MWQ4Yzg0Zjg1ODI1NjJkNGYz
ZjQuLmI3OTkyODUxYjE3ZWRmMzVjYWEyOGI5YzA3ZjM5MjM4NzcxYTczNjcgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2RvbS9Db250ZXh0RmVhdHVyZXMuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9kb20vQ29udGV4dEZlYXR1cmVzLmgKQEAgLTQ0LDYgKzQ0LDcgQEAgcHVibGljOgogICAgICAg
ICBQYWdlUG9wdXAsCiAgICAgICAgIEhUTUxOb3RpZmljYXRpb25zLAogICAgICAgICBNdXRhdGlv
bkV2ZW50cywKKyAgICAgICAgUHVzaFN0YXRlLAogICAgICAgICBGZWF0dXJlVHlwZVNpemUgLy8g
U2hvdWxkIGJlIHRoZSBsYXN0IGVudHJ5LgogICAgIH07CiAKQEAgLTU2LDYgKzU3LDcgQEAgcHVi
bGljOgogICAgIHN0YXRpYyBib29sIHBhZ2VQb3B1cEVuYWJsZWQoRG9jdW1lbnQqKTsKICAgICBz
dGF0aWMgYm9vbCBodG1sTm90aWZpY2F0aW9uc0VuYWJsZWQoRG9jdW1lbnQqKTsKICAgICBzdGF0
aWMgYm9vbCBtdXRhdGlvbkV2ZW50c0VuYWJsZWQoRG9jdW1lbnQqKTsKKyAgICBzdGF0aWMgYm9v
bCBwdXNoU3RhdGVFbmFibGVkKERvY3VtZW50Kik7CiAKICAgICBib29sIGlzRW5hYmxlZChEb2N1
bWVudCosIEZlYXR1cmVUeXBlLCBib29sKSBjb25zdDsKICAgICB2b2lkIHVybERpZENoYW5nZShE
b2N1bWVudCopOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKaW5kZXggZTg1YzhmMWMwNzNmZmUxMGRh
MDdjZmI0YmNlM2JjZWI5NDQ0NzNhNi4uYjMxYTllOTBkMzc0MjVkZjI3OTFhYWFjYjEyODlhZjM2
Y2Q2YzEyMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCkBAIC01MDEzLDYgKzUwMTMsOSBAQCB2
b2lkIERvY3VtZW50OjplbnF1ZXVlSGFzaGNoYW5nZUV2ZW50KGNvbnN0IFN0cmluZyYgb2xkVVJM
LCBjb25zdCBTdHJpbmcmIG5ld1VSTAogCiB2b2lkIERvY3VtZW50OjplbnF1ZXVlUG9wc3RhdGVF
dmVudChQYXNzUmVmUHRyPFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZT4gc3RhdGVPYmplY3QpCiB7Cisg
ICAgaWYgKCFDb250ZXh0RmVhdHVyZXM6OnB1c2hTdGF0ZUVuYWJsZWQodGhpcykpCisgICAgICAg
IHJldHVybjsKKwogICAgIC8vIEZJWE1FOiBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MzYyMDIgUG9wc3RhdGUgZXZlbnQgbmVlZHMgdG8gZmlyZSBhc3luY2hyb25vdXNs
eQogICAgIGRpc3BhdGNoV2luZG93RXZlbnQoUG9wU3RhdGVFdmVudDo6Y3JlYXRlKHN0YXRlT2Jq
ZWN0LCBkb21XaW5kb3coKSA/IGRvbVdpbmRvdygpLT5oaXN0b3J5KCkgOiAwKSk7CiB9CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0hpc3RvcnkuaWRsIGIvU291cmNlL1dlYkNvcmUv
cGFnZS9IaXN0b3J5LmlkbAppbmRleCBhYmIyNDVmMWRiZDg3NzQyYjJlZjUxZTk0ZTZjMjU1NDU5
ODc0MTU2Li45OWE5ZGJlZWFkMDhiOTllYTc5MTRmMzRlYmI0NzI0NmM2MzUxZGNkIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0hpc3RvcnkuaWRsCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BhZ2UvSGlzdG9yeS5pZGwKQEAgLTQxLDkgKzQxLDggQEAKICAgICBbRG9Ob3RDaGVja1NlY3Vy
aXR5LCBDYWxsV2l0aD1TY3JpcHRFeGVjdXRpb25Db250ZXh0XSB2b2lkIGZvcndhcmQoKTsKICAg
ICBbRG9Ob3RDaGVja1NlY3VyaXR5LCBDYWxsV2l0aD1TY3JpcHRFeGVjdXRpb25Db250ZXh0XSB2
b2lkIGdvKGluIFtPcHRpb25hbD1EZWZhdWx0SXNVbmRlZmluZWRdIGxvbmcgZGlzdGFuY2UpOwog
Ci0gICAgW0N1c3RvbV0gdm9pZCBwdXNoU3RhdGUoaW4gYW55IGRhdGEsIGluIERPTVN0cmluZyB0
aXRsZSwgaW4gW09wdGlvbmFsXSBET01TdHJpbmcgdXJsKQorICAgIFtDdXN0b20sIFY4RW5hYmxl
ZFBlckNvbnRleHQ9cHVzaFN0YXRlXSB2b2lkIHB1c2hTdGF0ZShpbiBhbnkgZGF0YSwgaW4gRE9N
U3RyaW5nIHRpdGxlLCBpbiBbT3B0aW9uYWxdIERPTVN0cmluZyB1cmwpCiAgICAgICAgIHJhaXNl
cyhET01FeGNlcHRpb24pOwotICAgIFtDdXN0b21dIHZvaWQgcmVwbGFjZVN0YXRlKGluIGFueSBk
YXRhLCBpbiBET01TdHJpbmcgdGl0bGUsIGluIFtPcHRpb25hbF0gRE9NU3RyaW5nIHVybCkKKyAg
ICBbQ3VzdG9tLCBWOEVuYWJsZWRQZXJDb250ZXh0PXB1c2hTdGF0ZV0gdm9pZCByZXBsYWNlU3Rh
dGUoaW4gYW55IGRhdGEsIGluIERPTVN0cmluZyB0aXRsZSwgaW4gW09wdGlvbmFsXSBET01TdHJp
bmcgdXJsKQogICAgICAgICByYWlzZXMoRE9NRXhjZXB0aW9uKTsKIH07Ci0KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYlBlcm1pc3Npb25DbGllbnQuaCBiL1Nv
dXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYlBlcm1pc3Npb25DbGllbnQuaAppbmRleCA1
ZDA1OWVmNWRiMjg4YzU1YjM5MDQzMTllOTMxN2IzZjZhMDk0NTMwLi4wYjY0MTRiNGUyMjM4Njcy
ZjM0NWY1ZDBiYzI1MjY2OWEyZjM2NDdhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9t
aXVtL3B1YmxpYy9XZWJQZXJtaXNzaW9uQ2xpZW50LmgKKysrIGIvU291cmNlL1dlYktpdC9jaHJv
bWl1bS9wdWJsaWMvV2ViUGVybWlzc2lvbkNsaWVudC5oCkBAIC0xMDEsNiArMTAxLDkgQEAgcHVi
bGljOgogICAgIC8vIGJ1dCBpdCdzIGJlZW4gbmFtZWQgZm9yIGNvbnNpc3RlbmN5IHdpdGggdGhl
IHJlc3Qgb2YgdGhlIGludGVyZmFjZS4KICAgICB2aXJ0dWFsIGJvb2wgYWxsb3dNdXRhdGlvbkV2
ZW50cyhjb25zdCBXZWJEb2N1bWVudCYsIGJvb2wgZGVmYXVsdFZhbHVlKSB7IHJldHVybiBkZWZh
dWx0VmFsdWU7IH0KIAorICAgIC8vIENvbnRyb2xzIHdoZXRoZXIgcHVzaFN0YXRlIGFuZCByZWxh
dGVkIEhpc3RvcnkgQVBJcyBhcmUgZW5hYmxlZCBmb3IgdGhpcyBmcmFtZS4KKyAgICB2aXJ0dWFs
IGJvb2wgYWxsb3dQdXNoU3RhdGUoY29uc3QgV2ViRG9jdW1lbnQmKSB7IHJldHVybiB0cnVlOyB9
CisKICAgICAvLyBOb3RpZmllcyB0aGUgY2xpZW50IHRoYXQgdGhlIGZyYW1lIHdvdWxkIGhhdmUg
aW5zdGFudGlhdGVkIGEgcGx1Zy1pbiBpZiBwbHVnLWlucyB3ZXJlIGVuYWJsZWQuCiAgICAgdmly
dHVhbCB2b2lkIGRpZE5vdEFsbG93UGx1Z2lucyhXZWJGcmFtZSopIHsgfQogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9Db250ZXh0RmVhdHVyZXNDbGllbnRJbXBsLmNw
cCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0NvbnRleHRGZWF0dXJlc0NsaWVudEltcGwu
Y3BwCmluZGV4IGU1Nzk1ZWRjNGNiMTkzYTViZDRlMWM0OTkwNzM2ODYxYzcwNDEyZmUuLjQxZmQw
NTQxMzU3MmM3OTI2NmNkOGQ4ZTU1N2MxMDhmNzNkMzVmYWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvY2hyb21pdW0vc3JjL0NvbnRleHRGZWF0dXJlc0NsaWVudEltcGwuY3BwCisrKyBiL1Nv
dXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0NvbnRleHRGZWF0dXJlc0NsaWVudEltcGwuY3BwCkBA
IC0xNDYsNiArMTQ2LDggQEAgYm9vbCBDb250ZXh0RmVhdHVyZXNDbGllbnRJbXBsOjphc2tJZklz
RW5hYmxlZChEb2N1bWVudCogZG9jdW1lbnQsIENvbnRleHRGZWF0dXIKICAgICAgICAgcmV0dXJu
IG1fY2xpZW50LT5hbGxvd0hUTUxOb3RpZmljYXRpb25zKFdlYkRvY3VtZW50KGRvY3VtZW50KSk7
CiAgICAgY2FzZSBDb250ZXh0RmVhdHVyZXM6Ok11dGF0aW9uRXZlbnRzOgogICAgICAgICByZXR1
cm4gbV9jbGllbnQtPmFsbG93TXV0YXRpb25FdmVudHMoV2ViRG9jdW1lbnQoZG9jdW1lbnQpLCBk
ZWZhdWx0VmFsdWUpOworICAgIGNhc2UgQ29udGV4dEZlYXR1cmVzOjpQdXNoU3RhdGU6CisgICAg
ICAgIHJldHVybiBtX2NsaWVudC0+YWxsb3dQdXNoU3RhdGUoV2ViRG9jdW1lbnQoZG9jdW1lbnQp
KTsKICAgICBkZWZhdWx0OgogICAgICAgICByZXR1cm4gZGVmYXVsdFZhbHVlOwogICAgIH0K
</data>

          </attachment>
      

    </bug>

</bugzilla>