<?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>61946</bug_id>
          
          <creation_ts>2011-06-02 11:31:05 -0700</creation_ts>
          <short_desc>FrameLoaderClient::didRunInsecureContent - no way to distinguish between blocked/run cases.</short_desc>
          <delta_ts>2011-06-08 13:05:21 -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>WebKit API</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>0</everconfirmed>
          <reporter name="Thomas Sepez">tsepez</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>abarth</cc>
    
    <cc>ap</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>414302</commentid>
    <comment_count>0</comment_count>
    <who name="Thomas Sepez">tsepez</who>
    <bug_when>2011-06-02 11:31:05 -0700</bug_when>
    <thetext>FrameLoader::checkIfRunInsecureContent() calls m_client-&gt;didRunInsecureContent with the same arguments in both the case where the insecure content was actually run, and in the case where it is blocked from running by security policy.  There needs to be a way to distinguish the two cases so that clients can create appropriate notifications.

Note that FrameLoader::checkIfDisplayInsecurContent() has the same issue with its call to m_client-&gt;didDisplayInsecureContent().

A good solution would be to add didBlockRunningInsecureContent() and didBlockDisplayingInsecureContent() methods, and call one or the other, thus restoring the meaning of the original methods.  Adding a flag seems less desirable since the name of the existing method is now misleading and would more accurately be called &quot;didEncounterInsecureContent()&quot;.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>414317</commentid>
    <comment_count>1</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2011-06-02 11:50:35 -0700</bug_when>
    <thetext>By the way, another approach to doing this is what we do for allowPlugins, which is that we call the client with the WebCore::Setting as an argument.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>414997</commentid>
    <comment_count>2</comment_count>
      <attachid>95926</attachid>
    <who name="Thomas Sepez">tsepez</who>
    <bug_when>2011-06-03 10:57:22 -0700</bug_when>
    <thetext>Created attachment 95926
First cut at changes to get buy-in before investing in tests.

Particularly interested in knowing if I got all the places that need to change.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>415034</commentid>
    <comment_count>3</comment_count>
      <attachid>95926</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2011-06-03 11:36:21 -0700</bug_when>
    <thetext>Comment on attachment 95926
First cut at changes to get buy-in before investing in tests.

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

&gt; Source/WebCore/loader/EmptyClients.h:371
&gt; +    virtual void didBlockDisplayingInsecureContent() { }
&gt; +    virtual void didBlockRunningInsecureContent() { }

We probably want the offending URL, right?  Also, for didBlockRunningInsecureContent we probably want the SecurityOrigin, as in the did run case.

&gt; Source/WebCore/loader/FrameLoader.cpp:1125
&gt; +        m_client-&gt;didDisplayInsecureContent();
&gt; +    } else
&gt; +        m_client-&gt;didBlockDisplayingInsecureContent();

One thing we discussed is whether we should combine these into one call.  Another question is whether we should call back into the client to make the final &quot;go/no-go&quot; decision, like we do for allowPlugins.  That gives the client maximum flexibility.  It can use the Setting to provide a default, but can still tweak things on a load-by-load basis if needed.  Also, the client then knows whether the load was blocked because it makes the final decision.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>415066</commentid>
    <comment_count>4</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2011-06-03 12:01:46 -0700</bug_when>
    <thetext>I still don&apos;t quite understand the use case. If didRunInsecureContent() is called, the browser hides its https lock icon. What are the didBlock notifications good for? Will the browser say &quot;bwa-ha-ha, go use a different browser if you really want to use this site&quot;? Or &quot;dice a coin to decide whether to disable security content policy for this page, and then reload it&quot;?

A broken site is just a broken site. When a CSS stylesheet is served with an incorrect Content-Type, we don&apos;t ask the user whether to load it - we just ignore it. Should content security policies be different?

+        String message = &quot;The page at &quot; + m_frame-&gt;document()-&gt;url().string() + &quot; ran insecure content from &quot; + url.string() + &quot;.\n&quot;;
+        m_frame-&gt;domWindow()-&gt;console()-&gt;addMessage(HTMLMessageSource, LogMessageType, WarningMessageLevel, message, 1, String());

That might be too chatty, not sure. But more importantly, this is too vague. What should a developer do when seeing this message? Does this only mean that their code potentially won&apos;t work in other browsers? We generally don&apos;t log things like that.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>415077</commentid>
    <comment_count>5</comment_count>
    <who name="Thomas Sepez">tsepez</who>
    <bug_when>2011-06-03 12:09:20 -0700</bug_when>
    <thetext>We&apos;re doing something stronger than just hiding the https lock icon.  We&apos;re going to break pages, by default, that try to include scripts on https pages from non-https sources.  And yes, there needs to be a way to disable it, along the lines of the &quot;Toss a coin&quot; scenario you indicated, at least in the short term until the top sites get their act together.

I&apos;d like to do what you suggest along the lines of your CSS analogy, but the carnage will be too high.

The chatty addMessage() messages pre-dated this change.  I think they should go, too.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>415101</commentid>
    <comment_count>6</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2011-06-03 12:39:11 -0700</bug_when>
    <thetext>&gt; The chatty addMessage() messages pre-dated this change.  I think they should go, too.

Please don&apos;t remove those messages.  They&apos;re vey useful to developers.  We have many interactions with developers where we ask them to look for these messages and it usually results in them understanding the issue much better.

w.r.t. to the use case, we&apos;d like to try blocking mixed content by default and then given users the option to override the default in various scenarios.  To know when to offer the override, the embedder needs to know when the mixed content was blocked.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>415112</commentid>
    <comment_count>7</comment_count>
    <who name="Thomas Sepez">tsepez</who>
    <bug_when>2011-06-03 13:04:34 -0700</bug_when>
    <thetext>I think Adam&apos;s right about doing this along the lines of allowPlugin() calls.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>415133</commentid>
    <comment_count>8</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2011-06-03 13:32:29 -0700</bug_when>
    <thetext>To pour a few more words over the use case, we want to eventually block mixed content without an opt-out.  The info-bar approach is an incremental step towards that end which will give us a signal for how much more evangelism is required.  There&apos;s also a related discussion on moz-security about whether browser vendors can act in coordination to block mixed content.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>416035</commentid>
    <comment_count>9</comment_count>
      <attachid>96130</attachid>
    <who name="Thomas Sepez">tsepez</who>
    <bug_when>2011-06-06 15:01:12 -0700</bug_when>
    <thetext>Created attachment 96130
Patch to call into permissions client upon insecure content.

Implements this along the lines of Adam&apos;s suggestion.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>416037</commentid>
    <comment_count>10</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-06-06 15:03:39 -0700</bug_when>
    <thetext>Attachment 96130 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;Source/WebCore/ChangeLog&apos;, u&apos;Source/WebCor...&quot; exit_code: 1

Source/WebKit/chromium/src/FrameLoaderClientImpl.h:210:  The parameter name &quot;url&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
Source/WebKit/chromium/ChangeLog:5:  Line contains tab character.  [whitespace/tab] [5]
Source/WebKit/chromium/ChangeLog:6:  Line contains tab character.  [whitespace/tab] [5]
Source/WebKit/chromium/ChangeLog:7:  Line contains tab character.  [whitespace/tab] [5]
Source/WebCore/ChangeLog:6:  Line contains tab character.  [whitespace/tab] [5]
Total errors found: 5 in 7 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>416038</commentid>
    <comment_count>11</comment_count>
      <attachid>96131</attachid>
    <who name="Thomas Sepez">tsepez</who>
    <bug_when>2011-06-06 15:05:29 -0700</bug_when>
    <thetext>Created attachment 96131
Patch to call into permissions client on insecure content

Fix blasted tabs.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>416044</commentid>
    <comment_count>12</comment_count>
      <attachid>96134</attachid>
    <who name="Thomas Sepez">tsepez</who>
    <bug_when>2011-06-06 15:08:37 -0700</bug_when>
    <thetext>Created attachment 96134
Call into permissions client on insecure content.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>416049</commentid>
    <comment_count>13</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-06-06 15:12:45 -0700</bug_when>
    <thetext>Attachment 96134 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;Source/WebCore/ChangeLog&apos;, u&apos;Source/WebCor...&quot; exit_code: 1

Source/WebKit/chromium/src/FrameLoaderClientImpl.h:210:  insecure_url is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming] [4]
Total errors found: 1 in 7 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>416057</commentid>
    <comment_count>14</comment_count>
      <attachid>96137</attachid>
    <who name="Thomas Sepez">tsepez</who>
    <bug_when>2011-06-06 15:16:53 -0700</bug_when>
    <thetext>Created attachment 96137
Call into permissions client on insecure content.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>416063</commentid>
    <comment_count>15</comment_count>
      <attachid>96137</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2011-06-06 15:25:39 -0700</bug_when>
    <thetext>Comment on attachment 96137
Call into permissions client on insecure content.

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

We could add a Chromium WebKit API test to show that the overrides work.  You can look at how we test the other allow methods, if you want some inspiration.

&gt; Source/WebCore/loader/FrameLoader.cpp:1119
&gt; +    bool allowedPerSettings = settings &amp;&amp; settings-&gt;allowDisplayOfInsecureContent();
&gt; +    bool allowed = m_client-&gt;allowDisplayingInsecureContent(allowedPerSettings);

I&apos;d just inline the settings &amp;&amp; settings-&gt;allowDisplayOfInsecureContent() expression into the client call and get rid of the temporary, but that&apos;s just a style nit.

&gt; Source/WebCore/loader/FrameLoader.cpp:1126
&gt; -    m_client-&gt;didDisplayInsecureContent();
&gt; +    if (allowed)
&gt; +        m_client-&gt;didDisplayInsecureContent();

I&apos;d send the URL through too.

&gt; Source/WebCore/loader/FrameLoaderClient.h:301
&gt; +        virtual bool allowDisplayingInsecureContent(bool enabledPerSettings) { return enabledPerSettings; }

No URL here?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>416097</commentid>
    <comment_count>16</comment_count>
    <who name="Thomas Sepez">tsepez</who>
    <bug_when>2011-06-06 16:08:27 -0700</bug_when>
    <thetext>re: no URL in didDisplayInsecureContent().  Predates this CL, I&apos;d like to leave it for now, as I believe changing that API will ripple through all the platforms as in the first patch I submitted.

re: tests.  Got a pointer to a layout test for one of the other allow options?  I didn&apos;t kick out anything with a few minutes of grepping.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>416169</commentid>
    <comment_count>17</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2011-06-06 17:36:45 -0700</bug_when>
    <thetext>&gt; re: tests.  Got a pointer to a layout test for one of the other allow options?  I didn&apos;t kick out anything with a few minutes of grepping.

http://trac.webkit.org/changeset/87860</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>417380</commentid>
    <comment_count>18</comment_count>
      <attachid>96447</attachid>
    <who name="Thomas Sepez">tsepez</who>
    <bug_when>2011-06-08 11:53:24 -0700</bug_when>
    <thetext>Created attachment 96447
insecure content policy calls into client, plus new tests</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>417401</commentid>
    <comment_count>19</comment_count>
      <attachid>96447</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2011-06-08 12:15:16 -0700</bug_when>
    <thetext>Comment on attachment 96447
insecure content policy calls into client, plus new tests

Fantastic.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>417445</commentid>
    <comment_count>20</comment_count>
      <attachid>96447</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-06-08 13:05:15 -0700</bug_when>
    <thetext>Comment on attachment 96447
insecure content policy calls into client, plus new tests

Clearing flags on attachment: 96447

Committed r88377: &lt;http://trac.webkit.org/changeset/88377&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>417446</commentid>
    <comment_count>21</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-06-08 13:05:21 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>95926</attachid>
            <date>2011-06-03 10:57:22 -0700</date>
            <delta_ts>2011-06-06 15:01:12 -0700</delta_ts>
            <desc>First cut at changes to get buy-in before investing in tests.</desc>
            <filename>patch_61946.txt</filename>
            <type>text/plain</type>
            <size>26093</size>
            <attacher name="Thomas Sepez">tsepez</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDg4MDMwKQorKysgU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTkgQEAKKzIwMTEtMDYtMDMgIFRvbSBTZXBl
eiAgPHRzZXBlekBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgTmVlZCBhIHNob3J0IGRlc2NyaXB0aW9uIGFuZCBidWcgVVJMIChP
T1BTISkKKworICAgICAgICBObyBuZXcgdGVzdHMuIChPT1BTISkKKworICAgICAgICAqIGxvYWRl
ci9FbXB0eUNsaWVudHMuaDoKKyAgICAgICAgKFdlYkNvcmU6OkVtcHR5RnJhbWVMb2FkZXJDbGll
bnQ6OmRpZEJsb2NrRGlzcGxheWluZ0luc2VjdXJlQ29udGVudCk6CisgICAgICAgIChXZWJDb3Jl
OjpFbXB0eUZyYW1lTG9hZGVyQ2xpZW50OjpkaWRCbG9ja1J1bm5pbmdJbnNlY3VyZUNvbnRlbnQp
OgorICAgICAgICAqIGxvYWRlci9GcmFtZUxvYWRlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpG
cmFtZUxvYWRlcjo6Y2hlY2tJZkRpc3BsYXlJbnNlY3VyZUNvbnRlbnQpOgorICAgICAgICAoV2Vi
Q29yZTo6RnJhbWVMb2FkZXI6OmNoZWNrSWZSdW5JbnNlY3VyZUNvbnRlbnQpOgorICAgICAgICAq
IGxvYWRlci9GcmFtZUxvYWRlckNsaWVudC5oOgorCiAyMDExLTA2LTAzICBEb3JlZW4gSmlhbmcg
IDxkb3JlZW4uamlhbmdAbm9raWEuY29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5IEJlbmphbWlu
IFBvdWxhaW4uCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9sb2FkZXIvRW1wdHlDbGllbnRzLmgKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvbG9hZGVyL0VtcHR5Q2xpZW50cy5oCShyZXZpc2lv
biA4Nzk0MikKKysrIFNvdXJjZS9XZWJDb3JlL2xvYWRlci9FbXB0eUNsaWVudHMuaAkod29ya2lu
ZyBjb3B5KQpAQCAtMzY3LDYgKzM2Nyw5IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIGJvb2wgY2Fu
Q2FjaGVQYWdlKCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KICAgICB2aXJ0dWFsIHZvaWQgZGlk
RGlzcGxheUluc2VjdXJlQ29udGVudCgpIHsgfQogICAgIHZpcnR1YWwgdm9pZCBkaWRSdW5JbnNl
Y3VyZUNvbnRlbnQoU2VjdXJpdHlPcmlnaW4qLCBjb25zdCBLVVJMJikgeyB9CisgICAgdmlydHVh
bCB2b2lkIGRpZEJsb2NrRGlzcGxheWluZ0luc2VjdXJlQ29udGVudCgpIHsgfQorICAgIHZpcnR1
YWwgdm9pZCBkaWRCbG9ja1J1bm5pbmdJbnNlY3VyZUNvbnRlbnQoKSB7IH0KKwogICAgIHZpcnR1
YWwgUGFzc1JlZlB0cjxGcmFtZT4gY3JlYXRlRnJhbWUoY29uc3QgS1VSTCYsIGNvbnN0IFN0cmlu
ZyYsIEhUTUxGcmFtZU93bmVyRWxlbWVudCosIGNvbnN0IFN0cmluZyYsIGJvb2wsIGludCwgaW50
KSB7IHJldHVybiAwOyB9CiAgICAgdmlydHVhbCB2b2lkIGRpZFRyYW5zZmVyQ2hpbGRGcmFtZVRv
TmV3RG9jdW1lbnQoUGFnZSopIHsgfQogICAgIHZpcnR1YWwgdm9pZCB0cmFuc2ZlckxvYWRpbmdS
ZXNvdXJjZUZyb21QYWdlKHVuc2lnbmVkIGxvbmcsIERvY3VtZW50TG9hZGVyKiwgY29uc3QgUmVz
b3VyY2VSZXF1ZXN0JiwgUGFnZSopIHsgfQpJbmRleDogU291cmNlL1dlYkNvcmUvbG9hZGVyL0Zy
YW1lTG9hZGVyLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVM
b2FkZXIuY3BwCShyZXZpc2lvbiA4Nzk0MikKKysrIFNvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFt
ZUxvYWRlci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTExMTYsMTAgKzExMTYsMTQgQEAgYm9vbCBG
cmFtZUxvYWRlcjo6Y2hlY2tJZkRpc3BsYXlJbnNlY3VyZQogCiAgICAgU2V0dGluZ3MqIHNldHRp
bmdzID0gbV9mcmFtZS0+c2V0dGluZ3MoKTsKICAgICBib29sIGFsbG93ZWQgPSBzZXR0aW5ncyAm
JiBzZXR0aW5ncy0+YWxsb3dEaXNwbGF5T2ZJbnNlY3VyZUNvbnRlbnQoKTsKLSAgICBTdHJpbmcg
bWVzc2FnZSA9IChhbGxvd2VkID8gZW1wdHlTdHJpbmcoKSA6ICJbYmxvY2tlZF0gIikgKyAiVGhl
IHBhZ2UgYXQgIiArIG1fZnJhbWUtPmRvY3VtZW50KCktPnVybCgpLnN0cmluZygpICsgIiBkaXNw
bGF5ZWQgaW5zZWN1cmUgY29udGVudCBmcm9tICIgKyB1cmwuc3RyaW5nKCkgKyAiLlxuIjsKLSAg
ICBtX2ZyYW1lLT5kb21XaW5kb3coKS0+Y29uc29sZSgpLT5hZGRNZXNzYWdlKEhUTUxNZXNzYWdl
U291cmNlLCBMb2dNZXNzYWdlVHlwZSwgV2FybmluZ01lc3NhZ2VMZXZlbCwgbWVzc2FnZSwgMSwg
U3RyaW5nKCkpOwogCi0gICAgbV9jbGllbnQtPmRpZERpc3BsYXlJbnNlY3VyZUNvbnRlbnQoKTsK
KyAgICBpZiAoYWxsb3dlZCkgeworICAgICAgICBTdHJpbmcgbWVzc2FnZSA9ICJUaGUgcGFnZSBh
dCAiICsgbV9mcmFtZS0+ZG9jdW1lbnQoKS0+dXJsKCkuc3RyaW5nKCkgKyAiIGRpc3BsYXllZCBp
bnNlY3VyZSBjb250ZW50IGZyb20gIiArIHVybC5zdHJpbmcoKSArICIuXG4iOworICAgICAgICBt
X2ZyYW1lLT5kb21XaW5kb3coKS0+Y29uc29sZSgpLT5hZGRNZXNzYWdlKEhUTUxNZXNzYWdlU291
cmNlLCBMb2dNZXNzYWdlVHlwZSwgV2FybmluZ01lc3NhZ2VMZXZlbCwgbWVzc2FnZSwgMSwgU3Ry
aW5nKCkpOworICAgICAgICBtX2NsaWVudC0+ZGlkRGlzcGxheUluc2VjdXJlQ29udGVudCgpOwor
ICAgIH0gZWxzZQorICAgICAgICBtX2NsaWVudC0+ZGlkQmxvY2tEaXNwbGF5aW5nSW5zZWN1cmVD
b250ZW50KCk7CisKICAgICByZXR1cm4gYWxsb3dlZDsKIH0KIApAQCAtMTEzMCwxMCArMTEzNCwx
NCBAQCBib29sIEZyYW1lTG9hZGVyOjpjaGVja0lmUnVuSW5zZWN1cmVDb250CiAKICAgICBTZXR0
aW5ncyogc2V0dGluZ3MgPSBtX2ZyYW1lLT5zZXR0aW5ncygpOwogICAgIGJvb2wgYWxsb3dlZCA9
IHNldHRpbmdzICYmIHNldHRpbmdzLT5hbGxvd1J1bm5pbmdPZkluc2VjdXJlQ29udGVudCgpOwot
ICAgIFN0cmluZyBtZXNzYWdlID0gKGFsbG93ZWQgPyBlbXB0eVN0cmluZygpIDogIltibG9ja2Vk
XSAiKSArICJUaGUgcGFnZSBhdCAiICsgbV9mcmFtZS0+ZG9jdW1lbnQoKS0+dXJsKCkuc3RyaW5n
KCkgKyAiIHJhbiBpbnNlY3VyZSBjb250ZW50IGZyb20gIiArIHVybC5zdHJpbmcoKSArICIuXG4i
OwotICAgIG1fZnJhbWUtPmRvbVdpbmRvdygpLT5jb25zb2xlKCktPmFkZE1lc3NhZ2UoSFRNTE1l
c3NhZ2VTb3VyY2UsIExvZ01lc3NhZ2VUeXBlLCBXYXJuaW5nTWVzc2FnZUxldmVsLCBtZXNzYWdl
LCAxLCBTdHJpbmcoKSk7CiAKLSAgICBtX2NsaWVudC0+ZGlkUnVuSW5zZWN1cmVDb250ZW50KGNv
bnRleHQsIHVybCk7CisgICAgaWYgKGFsbG93ZWQpIHsKKyAgICAgICAgU3RyaW5nIG1lc3NhZ2Ug
PSAiVGhlIHBhZ2UgYXQgIiArIG1fZnJhbWUtPmRvY3VtZW50KCktPnVybCgpLnN0cmluZygpICsg
IiByYW4gaW5zZWN1cmUgY29udGVudCBmcm9tICIgKyB1cmwuc3RyaW5nKCkgKyAiLlxuIjsKKyAg
ICAgICAgbV9mcmFtZS0+ZG9tV2luZG93KCktPmNvbnNvbGUoKS0+YWRkTWVzc2FnZShIVE1MTWVz
c2FnZVNvdXJjZSwgTG9nTWVzc2FnZVR5cGUsIFdhcm5pbmdNZXNzYWdlTGV2ZWwsIG1lc3NhZ2Us
IDEsIFN0cmluZygpKTsKKyAgICAgICAgbV9jbGllbnQtPmRpZFJ1bkluc2VjdXJlQ29udGVudChj
b250ZXh0LCB1cmwpOworICAgIH0gZWxzZQorICAgICAgICBtX2NsaWVudC0+ZGlkQmxvY2tSdW5u
aW5nSW5zZWN1cmVDb250ZW50KCk7CisKICAgICByZXR1cm4gYWxsb3dlZDsKIH0KIApJbmRleDog
U291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyQ2xpZW50LmgKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyQ2xpZW50LmgJKHJldmlzaW9uIDg3OTQy
KQorKysgU291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyQ2xpZW50LmgJKHdvcmtpbmcg
Y29weSkKQEAgLTIwNCw2ICsyMDQsMTYgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICAv
LyBzcHJlYWQgdG8gb3RoZXIgZnJhbWVzIGluIHRoZSBzYW1lIG9yaWdpbi4KICAgICAgICAgdmly
dHVhbCB2b2lkIGRpZFJ1bkluc2VjdXJlQ29udGVudChTZWN1cml0eU9yaWdpbiosIGNvbnN0IEtV
UkwmKSA9IDA7CiAKKyAgICAgICAgLy8gVGhpcyBmcmFtZSB3YXMgcHJldmVudGVkIGZyb20gZGlz
cGxheWluZyBpbmFjdGl2ZSBjb250ZW50IGZyb20gYW4KKyAgICAgICAgLy8gaW5zZWN1cmUgc291
cmNlIGJ5IGEgc2VjdXJpdHkgcG9saWN5LiBIZW5jZSwgdGhlIHBhZ2UgaXMgcG9zc2libHkKKyAg
ICAgICAgLy8gaW5jb21wbGV0ZS4KKyAgICAgICAgdmlydHVhbCB2b2lkIGRpZEJsb2NrRGlzcGxh
eWluZ0luc2VjdXJlQ29udGVudCgpID0gMDsKKworICAgICAgICAvLyBUaGlzIGZyYW1lIHdhcyBw
cmV2ZW50ZWQgZnJvbSBydW5uaW5nIGFjdGl2ZSBjb250ZW50IGZyb20gYW4KKyAgICAgICAgLy8g
aW5zZWN1cmUgc291cmNlIGJ5IGEgc2VjdXJpdHkgcG9saWN5LiBIZW5jZSwgdGhlIHBhZ2UgaXMg
cG9zc2libHkKKyAgICAgICAgLy8gaW5jb21wbGV0ZS4KKyAgICAgICAgdmlydHVhbCB2b2lkIGRp
ZEJsb2NrUnVubmluZ0luc2VjdXJlQ29udGVudCgpID0gMDsKKwogICAgICAgICB2aXJ0dWFsIFJl
c291cmNlRXJyb3IgY2FuY2VsbGVkRXJyb3IoY29uc3QgUmVzb3VyY2VSZXF1ZXN0JikgPSAwOwog
ICAgICAgICB2aXJ0dWFsIFJlc291cmNlRXJyb3IgYmxvY2tlZEVycm9yKGNvbnN0IFJlc291cmNl
UmVxdWVzdCYpID0gMDsKICAgICAgICAgdmlydHVhbCBSZXNvdXJjZUVycm9yIGNhbm5vdFNob3dV
UkxFcnJvcihjb25zdCBSZXNvdXJjZVJlcXVlc3QmKSA9IDA7CkluZGV4OiBTb3VyY2UvV2ViS2l0
Mi9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCShyZXZp
c2lvbiA4ODAzMCkKKysrIFNvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpA
QCAtMSwzICsxLDE0IEBACisyMDExLTA2LTAzICBUb20gU2VwZXogIDx0c2VwZXpAY2hyb21pdW0u
b3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIE5l
ZWQgYSBzaG9ydCBkZXNjcmlwdGlvbiBhbmQgYnVnIFVSTCAoT09QUyEpCisKKyAgICAgICAgKiBX
ZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmNwcDoKKyAgICAg
ICAgKFdlYktpdDo6V2ViRnJhbWVMb2FkZXJDbGllbnQ6OmRpZEJsb2NrRGlzcGxheWluZ0luc2Vj
dXJlQ29udGVudCk6CisgICAgICAgIChXZWJLaXQ6OldlYkZyYW1lTG9hZGVyQ2xpZW50OjpkaWRC
bG9ja1J1bm5pbmdJbnNlY3VyZUNvbnRlbnQpOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViQ29y
ZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuaDoKKwogMjAxMS0wNi0wMyAgTm8nYW0gUm9z
ZW50aGFsICA8bm9hbS5yb3NlbnRoYWxAbm9raWEuY29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5
IEFuZHJlYXMgS2xpbmcuCkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVT
dXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
S2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmNwcAko
cmV2aXNpb24gODc5NDIpCisrKyBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBw
b3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmNwcAkod29ya2luZyBjb3B5KQpAQCAtOTQzLDYgKzk0
MywxNiBAQCB2b2lkIFdlYkZyYW1lTG9hZGVyQ2xpZW50OjpkaWRSdW5JbnNlY3VyCiAgICAgd2Vi
UGFnZS0+c2VuZChNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpEaWRSdW5JbnNlY3VyZUNvbnRlbnRG
b3JGcmFtZShtX2ZyYW1lLT5mcmFtZUlEKCksIEluamVjdGVkQnVuZGxlVXNlck1lc3NhZ2VFbmNv
ZGVyKHVzZXJEYXRhLmdldCgpKSkpOwogfQogCit2b2lkIFdlYkZyYW1lTG9hZGVyQ2xpZW50Ojpk
aWRCbG9ja0Rpc3BsYXlpbmdJbnNlY3VyZUNvbnRlbnQoKQoreworICAgIG5vdEltcGxlbWVudGVk
KCk7Cit9CisKK3ZvaWQgV2ViRnJhbWVMb2FkZXJDbGllbnQ6OmRpZEJsb2NrUnVubmluZ0luc2Vj
dXJlQ29udGVudCgpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKK30KKwogUmVzb3VyY2VFcnJv
ciBXZWJGcmFtZUxvYWRlckNsaWVudDo6Y2FuY2VsbGVkRXJyb3IoY29uc3QgUmVzb3VyY2VSZXF1
ZXN0JiByZXF1ZXN0KQogewogICAgIHJldHVybiBXZWJLaXQ6OmNhbmNlbGxlZEVycm9yKHJlcXVl
c3QpOwpJbmRleDogU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJG
cmFtZUxvYWRlckNsaWVudC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nl
c3MvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuaAkocmV2aXNpb24gODc5NDIp
CisrKyBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9h
ZGVyQ2xpZW50LmgJKHdvcmtpbmcgY29weSkKQEAgLTEzOSw2ICsxMzksOCBAQCBwcml2YXRlOgog
CiAgICAgdmlydHVhbCB2b2lkIGRpZERpc3BsYXlJbnNlY3VyZUNvbnRlbnQoKTsKICAgICB2aXJ0
dWFsIHZvaWQgZGlkUnVuSW5zZWN1cmVDb250ZW50KFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luKiwg
Y29uc3QgV2ViQ29yZTo6S1VSTCYpOworICAgIHZpcnR1YWwgdm9pZCBkaWRCbG9ja0Rpc3BsYXlp
bmdJbnNlY3VyZUNvbnRlbnQoKTsKKyAgICB2aXJ0dWFsIHZvaWQgZGlkQmxvY2tSdW5uaW5nSW5z
ZWN1cmVDb250ZW50KCk7CiAKICAgICB2aXJ0dWFsIFdlYkNvcmU6OlJlc291cmNlRXJyb3IgY2Fu
Y2VsbGVkRXJyb3IoY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0Jik7CiAgICAgdmlydHVh
bCBXZWJDb3JlOjpSZXNvdXJjZUVycm9yIGJsb2NrZWRFcnJvcihjb25zdCBXZWJDb3JlOjpSZXNv
dXJjZVJlcXVlc3QmKTsKSW5kZXg6IFNvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCShyZXZpc2lvbiA4
ODAzMCkKKysrIFNvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkp
CkBAIC0xLDMgKzEsMTcgQEAKKzIwMTEtMDYtMDMgIFRvbSBTZXBleiAgPHRzZXBlekBjaHJvbWl1
bS5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
TmVlZCBhIHNob3J0IGRlc2NyaXB0aW9uIGFuZCBidWcgVVJMIChPT1BTISkKKworICAgICAgICAq
IHB1YmxpYy9XZWJGcmFtZUNsaWVudC5oOgorICAgICAgICAoV2ViS2l0OjpXZWJGcmFtZUNsaWVu
dDo6ZGlkQmxvY2tEaXNwbGF5aW5nSW5zZWN1cmVDb250ZW50KToKKyAgICAgICAgKFdlYktpdDo6
V2ViRnJhbWVDbGllbnQ6OmRpZEJsb2NrUnVubmluZ0luc2VjdXJlQ29udGVudCk6CisgICAgICAg
ICogc3JjL0ZyYW1lTG9hZGVyQ2xpZW50SW1wbC5jcHA6CisgICAgICAgIChXZWJLaXQ6OkZyYW1l
TG9hZGVyQ2xpZW50SW1wbDo6ZGlkQmxvY2tEaXNwbGF5aW5nSW5zZWN1cmVDb250ZW50KToKKyAg
ICAgICAgKFdlYktpdDo6RnJhbWVMb2FkZXJDbGllbnRJbXBsOjpkaWRCbG9ja1J1bm5pbmdJbnNl
Y3VyZUNvbnRlbnQpOgorICAgICAgICAqIHNyYy9GcmFtZUxvYWRlckNsaWVudEltcGwuaDoKKwog
MjAxMS0wNi0wMyAgUGhpbGlwcGUgQmVhdWNoYW1wICA8cGhpbGlwcGUuYmVhdWNoYW1wQGdtYWls
LmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBieSBEaW1pdHJpIEdsYXprb3YuCkluZGV4OiBTb3Vy
Y2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJGcmFtZUNsaWVudC5oCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYkZyYW1lQ2xpZW50LmgJKHJldmlzaW9u
IDg3OTQyKQorKysgU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViRnJhbWVDbGllbnQu
aAkod29ya2luZyBjb3B5KQpAQCAtMjg0LDYgKzI4NCw5IEBAIHB1YmxpYzoKICAgICAvLyBzcHJl
YWQgdG8gb3RoZXIgZnJhbWVzIGluIHRoZSBzYW1lIG9yaWdpbi4KICAgICB2aXJ0dWFsIHZvaWQg
ZGlkUnVuSW5zZWN1cmVDb250ZW50KFdlYkZyYW1lKiwgY29uc3QgV2ViU2VjdXJpdHlPcmlnaW4m
LCBjb25zdCBXZWJVUkwmIGluc2VjdXJlVVJMKSB7IH0KIAorICAgIC8vIEluc2VjdXJlIGNvbnRl
bnQgd2FzIGJsb2NrZWQuIFBhZ2UgbWF5IGFwZXBhciBpbmNvbXBsZXRlLgorICAgIHZpcnR1YWwg
dm9pZCBkaWRCbG9ja0Rpc3BsYXlpbmdJbnNlY3VyZUNvbnRlbnQoV2ViRnJhbWUqKSB7IH0KKyAg
ICB2aXJ0dWFsIHZvaWQgZGlkQmxvY2tSdW5uaW5nSW5zZWN1cmVDb250ZW50KFdlYkZyYW1lKikg
eyB9CiAKICAgICAvLyBTY3JpcHQgbm90aWZpY2F0aW9ucyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIApJbmRleDogU291cmNlL1dlYktpdC9jaHJvbWl1
bS9zcmMvRnJhbWVMb2FkZXJDbGllbnRJbXBsLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
S2l0L2Nocm9taXVtL3NyYy9GcmFtZUxvYWRlckNsaWVudEltcGwuY3BwCShyZXZpc2lvbiA4Nzk0
MikKKysrIFNvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0ZyYW1lTG9hZGVyQ2xpZW50SW1wbC5j
cHAJKHdvcmtpbmcgY29weSkKQEAgLTExODUsNiArMTE4NSwxOCBAQCB2b2lkIEZyYW1lTG9hZGVy
Q2xpZW50SW1wbDo6ZGlkUnVuSW5zZWN1CiAgICAgICAgIG1fd2ViRnJhbWUtPmNsaWVudCgpLT5k
aWRSdW5JbnNlY3VyZUNvbnRlbnQobV93ZWJGcmFtZSwgV2ViU2VjdXJpdHlPcmlnaW4ob3JpZ2lu
KSwgaW5zZWN1cmVVUkwpOwogfQogCit2b2lkIEZyYW1lTG9hZGVyQ2xpZW50SW1wbDo6ZGlkQmxv
Y2tEaXNwbGF5aW5nSW5zZWN1cmVDb250ZW50KCkKK3sKKyAgICBpZiAobV93ZWJGcmFtZS0+Y2xp
ZW50KCkpCisgICAgICAgIG1fd2ViRnJhbWUtPmNsaWVudCgpLT5kaWRCbG9ja0Rpc3BsYXlpbmdJ
bnNlY3VyZUNvbnRlbnQobV93ZWJGcmFtZSk7Cit9CisKK3ZvaWQgRnJhbWVMb2FkZXJDbGllbnRJ
bXBsOjpkaWRCbG9ja1J1bm5pbmdJbnNlY3VyZUNvbnRlbnQoKQoreworICAgIGlmIChtX3dlYkZy
YW1lLT5jbGllbnQoKSkKKyAgICAgICAgbV93ZWJGcmFtZS0+Y2xpZW50KCktPmRpZEJsb2NrUnVu
bmluZ2luZ0luc2VjdXJlQ29udGVudChtX3dlYkZyYW1lKTsKK30KKwogUmVzb3VyY2VFcnJvciBG
cmFtZUxvYWRlckNsaWVudEltcGw6OmJsb2NrZWRFcnJvcihjb25zdCBSZXNvdXJjZVJlcXVlc3Qm
KQogewogICAgIC8vIEZJWE1FCkluZGV4OiBTb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9GcmFt
ZUxvYWRlckNsaWVudEltcGwuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L2Nocm9taXVt
L3NyYy9GcmFtZUxvYWRlckNsaWVudEltcGwuaAkocmV2aXNpb24gODc5NDIpCisrKyBTb3VyY2Uv
V2ViS2l0L2Nocm9taXVtL3NyYy9GcmFtZUxvYWRlckNsaWVudEltcGwuaAkod29ya2luZyBjb3B5
KQpAQCAtMTQ1LDYgKzE0NSw4IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgZGlzcGF0Y2hE
aWRDaGFuZ2VCYWNrRm9yd2FyZEluZGV4KCkgY29uc3Q7CiAgICAgdmlydHVhbCB2b2lkIGRpZERp
c3BsYXlJbnNlY3VyZUNvbnRlbnQoKTsKICAgICB2aXJ0dWFsIHZvaWQgZGlkUnVuSW5zZWN1cmVD
b250ZW50KFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luKiwgY29uc3QgV2ViQ29yZTo6S1VSTCYgaW5z
ZWN1cmVVUkwpOworICAgIHZpcnR1YWwgdm9pZCBkaWRCbG9ja0Rpc3BsYXlpbmdJbnNlY3VyZUNv
bnRlbnQoKTsKKyAgICB2aXJ0dWFsIHZvaWQgZGlkQmxvY2tSdW5uaW5nSW5zZWN1cmVDb250ZW50
KCk7CiAgICAgdmlydHVhbCBXZWJDb3JlOjpSZXNvdXJjZUVycm9yIGJsb2NrZWRFcnJvcihjb25z
dCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmKTsKICAgICB2aXJ0dWFsIFdlYkNvcmU6OlJlc291
cmNlRXJyb3IgY2FuY2VsbGVkRXJyb3IoY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0Jik7
CiAgICAgdmlydHVhbCBXZWJDb3JlOjpSZXNvdXJjZUVycm9yIGNhbm5vdFNob3dVUkxFcnJvcihj
b25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmKTsKSW5kZXg6IFNvdXJjZS9XZWJLaXQvZWZs
L0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L2VmbC9DaGFuZ2VMb2cJKHJl
dmlzaW9uIDg4MDMwKQorKysgU291cmNlL1dlYktpdC9lZmwvQ2hhbmdlTG9nCSh3b3JraW5nIGNv
cHkpCkBAIC0xLDMgKzEsMTQgQEAKKzIwMTEtMDYtMDMgIFRvbSBTZXBleiAgPHRzZXBlekBjaHJv
bWl1bS5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgTmVlZCBhIHNob3J0IGRlc2NyaXB0aW9uIGFuZCBidWcgVVJMIChPT1BTISkKKworICAgICAg
ICAqIFdlYkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50RWZsLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OkZyYW1lTG9hZGVyQ2xpZW50RWZsOjpkaWRCbG9ja0Rpc3BsYXlpbmdJbnNlY3VyZUNv
bnRlbnQpOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVMb2FkZXJDbGllbnRFZmw6OmRpZEJsb2Nr
UnVubmluZ0luc2VjdXJlQ29udGVudCk6CisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvRnJhbWVM
b2FkZXJDbGllbnRFZmwuaDoKKwogMjAxMS0wNi0wMyAgU2hlcmlmZiBCb3QgIDx3ZWJraXQucmV2
aWV3LmJvdEBnbWFpbC5jb20+CiAKICAgICAgICAgVW5yZXZpZXdlZCwgcm9sbGluZyBvdXQgcjg4
MDE0LgpJbmRleDogU291cmNlL1dlYktpdC9lZmwvV2ViQ29yZVN1cHBvcnQvRnJhbWVMb2FkZXJD
bGllbnRFZmwuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvZWZsL1dlYkNvcmVTdXBw
b3J0L0ZyYW1lTG9hZGVyQ2xpZW50RWZsLmNwcAkocmV2aXNpb24gODc5NDIpCisrKyBTb3VyY2Uv
V2ViS2l0L2VmbC9XZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudEVmbC5jcHAJKHdvcmtp
bmcgY29weSkKQEAgLTQ5Niw2ICs0OTYsMTYgQEAgdm9pZCBGcmFtZUxvYWRlckNsaWVudEVmbDo6
ZGlkUnVuSW5zZWN1cgogICAgIG5vdEltcGxlbWVudGVkKCk7CiB9CiAKK3ZvaWQgRnJhbWVMb2Fk
ZXJDbGllbnRFZmw6OmRpZEJsb2NrRGlzcGxheWluZ0luc2VjdXJlQ29udGVudCgpCit7CisgICAg
bm90SW1wbGVtZW50ZWQoKTsKK30KKwordm9pZCBGcmFtZUxvYWRlckNsaWVudEVmbDo6ZGlkQmxv
Y2tSdW5uaW5nSW5zZWN1cmVDb250ZW50KCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworfQor
CiB2b2lkIEZyYW1lTG9hZGVyQ2xpZW50RWZsOjptYWtlUmVwcmVzZW50YXRpb24oRG9jdW1lbnRM
b2FkZXIqKQogewogICAgIG5vdEltcGxlbWVudGVkKCk7CkluZGV4OiBTb3VyY2UvV2ViS2l0L2Vm
bC9XZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudEVmbC5oCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJLaXQvZWZsL1dlYkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50RWZsLmgJKHJl
dmlzaW9uIDg3OTQyKQorKysgU291cmNlL1dlYktpdC9lZmwvV2ViQ29yZVN1cHBvcnQvRnJhbWVM
b2FkZXJDbGllbnRFZmwuaAkod29ya2luZyBjb3B5KQpAQCAtMTY3LDYgKzE2Nyw4IEBAIGNsYXNz
IEZyYW1lTG9hZGVyQ2xpZW50RWZsIDogcHVibGljIEZyYW0KICAgICB2aXJ0dWFsIGJvb2wgc2hv
dWxkU3RvcExvYWRpbmdGb3JIaXN0b3J5SXRlbShIaXN0b3J5SXRlbSopIGNvbnN0OwogICAgIHZp
cnR1YWwgdm9pZCBkaWREaXNwbGF5SW5zZWN1cmVDb250ZW50KCk7CiAgICAgdmlydHVhbCB2b2lk
IGRpZFJ1bkluc2VjdXJlQ29udGVudChTZWN1cml0eU9yaWdpbiosIGNvbnN0IEtVUkwmKTsKKyAg
ICB2aXJ0dWFsIHZvaWQgZGlkQmxvY2tEaXNwbGF5aW5nSW5zZWN1cmVDb250ZW50KCk7CisgICAg
dmlydHVhbCB2b2lkIGRpZEJsb2NrUnVubmluZ0luc2VjdXJlQ29udGVudCgpOwogCiAgICAgdmly
dHVhbCBSZXNvdXJjZUVycm9yIGNhbmNlbGxlZEVycm9yKGNvbnN0IFJlc291cmNlUmVxdWVzdCYp
OwogICAgIHZpcnR1YWwgUmVzb3VyY2VFcnJvciBibG9ja2VkRXJyb3IoY29uc3QgUmVzb3VyY2VS
ZXF1ZXN0Jik7CkluZGV4OiBTb3VyY2UvV2ViS2l0L2d0ay9DaGFuZ2VMb2cKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL1dlYktpdC9ndGsvQ2hhbmdlTG9nCShyZXZpc2lvbiA4ODAzMCkKKysrIFNvdXJj
ZS9XZWJLaXQvZ3RrL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE0IEBACisy
MDExLTA2LTAzICBUb20gU2VwZXogIDx0c2VwZXpAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIE5lZWQgYSBzaG9ydCBkZXNjcmlw
dGlvbiBhbmQgYnVnIFVSTCAoT09QUyEpCisKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9GcmFt
ZUxvYWRlckNsaWVudEd0ay5jcHA6CisgICAgICAgIChXZWJLaXQ6OkZyYW1lTG9hZGVyQ2xpZW50
OjpkaWRCbG9ja0Rpc3BsYXlpbmdJbnNlY3VyZUNvbnRlbnQpOgorICAgICAgICAoV2ViS2l0OjpG
cmFtZUxvYWRlckNsaWVudDo6ZGlkQmxvY2tSdW5uaW5nSW5zZWN1cmVDb250ZW50KToKKyAgICAg
ICAgKiBXZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudEd0ay5oOgorCiAyMDExLTA2LTAz
ICBTZXJnaW8gVmlsbGFyIFNlbmluICA8c3ZpbGxhckBpZ2FsaWEuY29tPgogCiAgICAgICAgIFJl
dmlld2VkIGJ5IE1hcnRpbiBSb2JpbnNvbi4KSW5kZXg6IFNvdXJjZS9XZWJLaXQvZ3RrL1dlYkNv
cmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50R3RrLmNwcAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudEd0ay5jcHAJKHJldmlz
aW9uIDg3OTQyKQorKysgU291cmNlL1dlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvRnJhbWVMb2Fk
ZXJDbGllbnRHdGsuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC04MzksNiArODM5LDE2IEBAIHZvaWQg
RnJhbWVMb2FkZXJDbGllbnQ6OmRpZFJ1bkluc2VjdXJlQ28KICAgICBub3RJbXBsZW1lbnRlZCgp
OwogfQogCit2b2lkIEZyYW1lTG9hZGVyQ2xpZW50OjpkaWRCbG9ja0Rpc3BsYXlpbmdJbnNlY3Vy
ZUNvbnRlbnQoKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7Cit9CisKK3ZvaWQgRnJhbWVMb2Fk
ZXJDbGllbnQ6OmRpZEJsb2NrUnVubmluZ0luc2VjdXJlQ29udGVudCgpCit7CisgICAgbm90SW1w
bGVtZW50ZWQoKTsKK30KKwogdm9pZCBGcmFtZUxvYWRlckNsaWVudDo6bWFrZVJlcHJlc2VudGF0
aW9uKFdlYkNvcmU6OkRvY3VtZW50TG9hZGVyKikKIHsKICAgICBtX2hhc1JlcHJlc2VudGF0aW9u
ID0gdHJ1ZTsKSW5kZXg6IFNvdXJjZS9XZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0ZyYW1lTG9h
ZGVyQ2xpZW50R3RrLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9ndGsvV2ViQ29yZVN1
cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRHdGsuaAkocmV2aXNpb24gODc5NDIpCisrKyBTb3VyY2Uv
V2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudEd0ay5oCSh3b3JraW5n
IGNvcHkpCkBAIC0xNDgsNiArMTQ4LDggQEAgbmFtZXNwYWNlIFdlYktpdCB7CiAKICAgICAgICAg
dmlydHVhbCB2b2lkIGRpZERpc3BsYXlJbnNlY3VyZUNvbnRlbnQoKTsKICAgICAgICAgdmlydHVh
bCB2b2lkIGRpZFJ1bkluc2VjdXJlQ29udGVudChXZWJDb3JlOjpTZWN1cml0eU9yaWdpbiosIGNv
bnN0IFdlYkNvcmU6OktVUkwmKTsKKyAgICAgICAgdmlydHVhbCB2b2lkIGRpZEJsb2NrRGlzcGxh
eWluZ0luc2VjdXJlQ29udGVudCgpOworICAgICAgICB2aXJ0dWFsIHZvaWQgZGlkQmxvY2tSdW5u
aW5nSW5zZWN1cmVDb250ZW50KCk7CiAKICAgICAgICAgdmlydHVhbCBXZWJDb3JlOjpSZXNvdXJj
ZUVycm9yIGNhbmNlbGxlZEVycm9yKGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYpOwog
ICAgICAgICB2aXJ0dWFsIFdlYkNvcmU6OlJlc291cmNlRXJyb3IgYmxvY2tlZEVycm9yKGNvbnN0
IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYpOwpJbmRleDogU291cmNlL1dlYktpdC9tYWMvQ2hh
bmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxvZwkocmV2aXNp
b24gODgwMzApCisrKyBTb3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkK
QEAgLTEsMyArMSwxNCBAQAorMjAxMS0wNi0wMyAgVG9tIFNlcGV6ICA8dHNlcGV6QGNocm9taXVt
Lm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBO
ZWVkIGEgc2hvcnQgZGVzY3JpcHRpb24gYW5kIGJ1ZyBVUkwgKE9PUFMhKQorCisgICAgICAgICog
V2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuaDoKKyAgICAgICAgKiBXZWJDb3Jl
U3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5tbToKKyAgICAgICAgKFdlYkZyYW1lTG9hZGVy
Q2xpZW50OjpkaWRCbG9ja0Rpc3BsYXlpbmdJbnNlY3VyZUNvbnRlbnQpOgorICAgICAgICAoV2Vi
RnJhbWVMb2FkZXJDbGllbnQ6OmRpZEJsb2NrUnVubmluZ0luc2VjdXJlQ29udGVudCk6CisKIDIw
MTEtMDYtMDIgIEFuZGVycyBDYXJsc3NvbiAgPGFuZGVyc2NhQGFwcGxlLmNvbT4KIAogICAgICAg
ICBSZXZpZXdlZCBieSBTYW0gV2VpbmlnLgpJbmRleDogU291cmNlL1dlYktpdC9tYWMvV2ViQ29y
ZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
S2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5oCShyZXZpc2lvbiA4
Nzk0MikKKysrIFNvdXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVy
Q2xpZW50LmgJKHdvcmtpbmcgY29weSkKQEAgLTE1OSw2ICsxNTksOCBAQCBwcml2YXRlOgogCiAg
ICAgdmlydHVhbCB2b2lkIGRpZERpc3BsYXlJbnNlY3VyZUNvbnRlbnQoKTsKICAgICB2aXJ0dWFs
IHZvaWQgZGlkUnVuSW5zZWN1cmVDb250ZW50KFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luKiwgY29u
c3QgV2ViQ29yZTo6S1VSTCYpOworICAgIHZpcnR1YWwgdm9pZCBkaWRCbG9ja0Rpc3BsYXlpbmdJ
bnNlY3VyZUNvbnRlbnQoKTsKKyAgICB2aXJ0dWFsIHZvaWQgZGlkQmxvY2tSdW5uaW5nSW5zZWN1
cmVDb250ZW50KCk7CiAKICAgICB2aXJ0dWFsIFdlYkNvcmU6OlJlc291cmNlRXJyb3IgY2FuY2Vs
bGVkRXJyb3IoY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0Jik7CiAgICAgdmlydHVhbCBX
ZWJDb3JlOjpSZXNvdXJjZUVycm9yIGJsb2NrZWRFcnJvcihjb25zdCBXZWJDb3JlOjpSZXNvdXJj
ZVJlcXVlc3QmKTsKSW5kZXg6IFNvdXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkZy
YW1lTG9hZGVyQ2xpZW50Lm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvbWFjL1dlYkNv
cmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50Lm1tCShyZXZpc2lvbiA4Nzk0MikKKysrIFNv
dXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50Lm1tCSh3
b3JraW5nIGNvcHkpCkBAIC0xMDAwLDYgKzEwMDAsMTQgQEAgdm9pZCBXZWJGcmFtZUxvYWRlckNs
aWVudDo6ZGlkUnVuSW5zZWN1cgogICAgICAgICBDYWxsRnJhbWVMb2FkRGVsZWdhdGUoaW1wbGVt
ZW50YXRpb25zLT5kaWRSdW5JbnNlY3VyZUNvbnRlbnRGdW5jLCB3ZWJWaWV3LCBAc2VsZWN0b3Io
d2ViVmlldzpkaWRSdW5JbnNlY3VyZUNvbnRlbnQ6KSwgd2ViU2VjdXJpdHlPcmlnaW4uZ2V0KCkp
OwogfQogCit2b2lkIFdlYkZyYW1lTG9hZGVyQ2xpZW50OjpkaWRCbG9ja0Rpc3BsYXlpbmdJbnNl
Y3VyZUNvbnRlbnQoKQoreworfQorCit2b2lkIFdlYkZyYW1lTG9hZGVyQ2xpZW50OjpkaWRCbG9j
a1J1bm5pbmdJbnNlY3VyZUNvbnRlbnQoKQoreworfQorCiBSZXNvdXJjZUVycm9yIFdlYkZyYW1l
TG9hZGVyQ2xpZW50OjpjYW5jZWxsZWRFcnJvcihjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVl
c3QpCiB7CiAgICAgcmV0dXJuIFtOU0Vycm9yIF93ZWJLaXRFcnJvcldpdGhEb21haW46TlNVUkxF
cnJvckRvbWFpbiBjb2RlOk5TVVJMRXJyb3JDYW5jZWxsZWQgVVJMOnJlcXVlc3QudXJsKCldOwpJ
bmRleDogU291cmNlL1dlYktpdC9xdC9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dl
YktpdC9xdC9DaGFuZ2VMb2cJKHJldmlzaW9uIDg4MDMwKQorKysgU291cmNlL1dlYktpdC9xdC9D
aGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwxNCBAQAorMjAxMS0wNi0wMyAgVG9t
IFNlcGV6ICA8dHNlcGV6QGNocm9taXVtLm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICBOZWVkIGEgc2hvcnQgZGVzY3JpcHRpb24gYW5kIGJ1ZyBV
UkwgKE9PUFMhKQorCisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRR
dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZUxvYWRlckNsaWVudFF0OjpkaWRCbG9ja0Rp
c3BsYXlpbmdJbnNlY3VyZUNvbnRlbnQpOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVMb2FkZXJD
bGllbnRRdDo6ZGlkQmxvY2tSdW5uaW5nSW5zZWN1cmVDb250ZW50KToKKyAgICAgICAgKiBXZWJD
b3JlU3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudFF0Lmg6CisKIDIwMTEtMDYtMDIgIENhaW8gTWFy
Y2VsbyBkZSBPbGl2ZWlyYSBGaWxobyAgPGNhaW8ub2xpdmVpcmFAb3BlbmJvc3NhLm9yZz4KIAog
ICAgICAgICBSZXZpZXdlZCBieSBBbmRyZWFzIEtsaW5nLgpJbmRleDogU291cmNlL1dlYktpdC9x
dC9XZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudFF0LmNwcAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50UXQuY3BwCShy
ZXZpc2lvbiA4Nzk0MikKKysrIFNvdXJjZS9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvRnJhbWVM
b2FkZXJDbGllbnRRdC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTg4OCw2ICs4ODgsMjIgQEAgdm9p
ZCBGcmFtZUxvYWRlckNsaWVudFF0OjpkaWRSdW5JbnNlY3VyZQogICAgIG5vdEltcGxlbWVudGVk
KCk7CiB9CiAKK3ZvaWQgRnJhbWVMb2FkZXJDbGllbnRRdDo6ZGlkQmxvY2tEaXNwbGF5aW5nSW5z
ZWN1cmVDb250ZW50KCkKK3sKKyAgICBpZiAoZHVtcEZyYW1lTG9hZGVyQ2FsbGJhY2tzKQorICAg
ICAgICBwcmludGYoImRpZEJsb2NrRGlzcGxheWluZ0luc2VjdXJlQ29udGVudFxuIik7CisKKyAg
ICBub3RJbXBsZW1lbnRlZCgpOworfQorCit2b2lkIEZyYW1lTG9hZGVyQ2xpZW50UXQ6OmRpZEJs
b2NrUnVubmluZ0luc2VjdXJlQ29udGVudCgpCit7CisgICAgaWYgKGR1bXBGcmFtZUxvYWRlckNh
bGxiYWNrcykKKyAgICAgICAgcHJpbnRmKCJkaWRCbG9ja1J1bm5pbmdpbmdJbnNlY3VyZUNvbnRl
bnRcbiIpOworCisgICAgbm90SW1wbGVtZW50ZWQoKTsKK30KKwogdm9pZCBGcmFtZUxvYWRlckNs
aWVudFF0OjpzYXZlVmlld1N0YXRlVG9JdGVtKFdlYkNvcmU6Okhpc3RvcnlJdGVtKiBpdGVtKQog
ewogICAgIFFXZWJIaXN0b3J5SXRlbSBoaXN0b3J5SXRlbShuZXcgUVdlYkhpc3RvcnlJdGVtUHJp
dmF0ZShpdGVtKSk7CkluZGV4OiBTb3VyY2UvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L0ZyYW1l
TG9hZGVyQ2xpZW50UXQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L3F0L1dlYkNvcmVT
dXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50UXQuaAkocmV2aXNpb24gODc5NDIpCisrKyBTb3VyY2Uv
V2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50UXQuaAkod29ya2luZyBj
b3B5KQpAQCAtMTYzLDYgKzE2Myw4IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgZGlzcGF0
Y2hEaWRDaGFuZ2VCYWNrRm9yd2FyZEluZGV4KCkgY29uc3Q7CiAgICAgdmlydHVhbCB2b2lkIGRp
ZERpc3BsYXlJbnNlY3VyZUNvbnRlbnQoKTsKICAgICB2aXJ0dWFsIHZvaWQgZGlkUnVuSW5zZWN1
cmVDb250ZW50KFNlY3VyaXR5T3JpZ2luKiwgY29uc3QgS1VSTCYpOworICAgIHZpcnR1YWwgdm9p
ZCBkaWRCbG9ja0Rpc3BsYXlpbmdJbnNlY3VyZUNvbnRlbnQoKTsKKyAgICB2aXJ0dWFsIHZvaWQg
ZGlkQmxvY2tSdW5uaW5nSW5zZWN1cmVDb250ZW50KCk7CiAKICAgICB2aXJ0dWFsIFJlc291cmNl
RXJyb3IgY2FuY2VsbGVkRXJyb3IoY29uc3QgUmVzb3VyY2VSZXF1ZXN0Jik7CiAgICAgdmlydHVh
bCBSZXNvdXJjZUVycm9yIGJsb2NrZWRFcnJvcihjb25zdCBSZXNvdXJjZVJlcXVlc3QmKTsKSW5k
ZXg6IFNvdXJjZS9XZWJLaXQvd2luL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
S2l0L3dpbi9DaGFuZ2VMb2cJKHJldmlzaW9uIDg4MDMwKQorKysgU291cmNlL1dlYktpdC93aW4v
Q2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTQgQEAKKzIwMTEtMDYtMDMgIFRv
bSBTZXBleiAgPHRzZXBlekBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgTmVlZCBhIHNob3J0IGRlc2NyaXB0aW9uIGFuZCBidWcg
VVJMIChPT1BTISkKKworICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xp
ZW50LmNwcDoKKyAgICAgICAgKFdlYkZyYW1lTG9hZGVyQ2xpZW50OjpkaWRCbG9ja0Rpc3BsYXlp
bmdJbnNlY3VyZUNvbnRlbnQpOgorICAgICAgICAoV2ViRnJhbWVMb2FkZXJDbGllbnQ6OmRpZEJs
b2NrUnVubmluZ0luc2VjdXJlQ29udGVudCk6CisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvV2Vi
RnJhbWVMb2FkZXJDbGllbnQuaDoKKwogMjAxMS0wNS0xOCAgQW50aG9ueSBKb2huc29uIDxhbnRo
b255LmpvaG5zb25AZmxleHNpbS5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgQnJlbnQgRnVs
Z2hhbS4KSW5kZXg6IFNvdXJjZS9XZWJLaXQvd2luL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9h
ZGVyQ2xpZW50LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L3dpbi9XZWJDb3JlU3Vw
cG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5jcHAJKHJldmlzaW9uIDg3OTQyKQorKysgU291cmNl
L1dlYktpdC93aW4vV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuY3BwCSh3b3Jr
aW5nIGNvcHkpCkBAIC02NjcsNiArNjY3LDE0IEBAIHZvaWQgV2ViRnJhbWVMb2FkZXJDbGllbnQ6
OmRpZFJ1bkluc2VjdXIKICAgICBmcmFtZUxvYWREZWxlZ2F0ZVByaXYyLT5kaWRSdW5JbnNlY3Vy
ZUNvbnRlbnQod2ViVmlldywgd2ViU2VjdXJpdHlPcmlnaW4uZ2V0KCkpOwogfQogCit2b2lkIFdl
YkZyYW1lTG9hZGVyQ2xpZW50OjpkaWRCbG9ja0Rpc3BsYXlpbmdJbnNlY3VyZUNvbnRlbnQoKQor
eworfQorCit2b2lkIFdlYkZyYW1lTG9hZGVyQ2xpZW50OjpkaWRCbG9ja1J1bm5pbmdJbnNlY3Vy
ZUNvbnRlbnQoKQoreworfQorCiBQYXNzUmVmUHRyPERvY3VtZW50TG9hZGVyPiBXZWJGcmFtZUxv
YWRlckNsaWVudDo6Y3JlYXRlRG9jdW1lbnRMb2FkZXIoY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiBy
ZXF1ZXN0LCBjb25zdCBTdWJzdGl0dXRlRGF0YSYgc3Vic3RpdHV0ZURhdGEpCiB7CiAgICAgUmVm
UHRyPFdlYkRvY3VtZW50TG9hZGVyPiBsb2FkZXIgPSBXZWJEb2N1bWVudExvYWRlcjo6Y3JlYXRl
KHJlcXVlc3QsIHN1YnN0aXR1dGVEYXRhKTsKSW5kZXg6IFNvdXJjZS9XZWJLaXQvd2luL1dlYkNv
cmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmgKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dl
YktpdC93aW4vV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuaAkocmV2aXNpb24g
ODc5NDIpCisrKyBTb3VyY2UvV2ViS2l0L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRl
ckNsaWVudC5oCSh3b3JraW5nIGNvcHkpCkBAIC0xMDEsNiArMTAxLDggQEAgcHVibGljOgogCiAg
ICAgdmlydHVhbCB2b2lkIGRpZERpc3BsYXlJbnNlY3VyZUNvbnRlbnQoKTsKICAgICB2aXJ0dWFs
IHZvaWQgZGlkUnVuSW5zZWN1cmVDb250ZW50KFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luKiwgY29u
c3QgV2ViQ29yZTo6S1VSTCYpOworICAgIHZpcnR1YWwgdm9pZCBkaWRCbG9ja0Rpc3BsYXlpbmdJ
bnNlY3VyZUNvbnRlbnQoKTsKKyAgICB2aXJ0dWFsIHZvaWQgZGlkQmxvY2tSdW5uaW5nSW5zZWN1
cmVDb250ZW50KCk7CiAKICAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8V2ViQ29yZTo6RG9jdW1lbnRM
b2FkZXI+IGNyZWF0ZURvY3VtZW50TG9hZGVyKGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVz
dCYsIGNvbnN0IFdlYkNvcmU6OlN1YnN0aXR1dGVEYXRhJik7CiAgICAgdmlydHVhbCB2b2lkIHNl
dFRpdGxlKGNvbnN0IFdlYkNvcmU6OlN0cmluZ1dpdGhEaXJlY3Rpb24mLCBjb25zdCBXZWJDb3Jl
OjpLVVJMJik7CkluZGV4OiBTb3VyY2UvV2ViS2l0L3dpbmNlL0NoYW5nZUxvZwo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvV2ViS2l0L3dpbmNlL0NoYW5nZUxvZwkocmV2aXNpb24gODgwMzApCisrKyBT
b3VyY2UvV2ViS2l0L3dpbmNlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE0
IEBACisyMDExLTA2LTAzICBUb20gU2VwZXogIDx0c2VwZXpAY2hyb21pdW0ub3JnPgorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIE5lZWQgYSBzaG9ydCBk
ZXNjcmlwdGlvbiBhbmQgYnVnIFVSTCAoT09QUyEpCisKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9y
dC9GcmFtZUxvYWRlckNsaWVudFdpbkNFLmNwcDoKKyAgICAgICAgKFdlYktpdDo6RnJhbWVMb2Fk
ZXJDbGllbnRXaW5DRTo6ZGlkQmxvY2tEaXNwbGF5aW5nSW5zZWN1cmVDb250ZW50KToKKyAgICAg
ICAgKFdlYktpdDo6RnJhbWVMb2FkZXJDbGllbnRXaW5DRTo6ZGlkQmxvY2tSdW5uaW5nSW5zZWN1
cmVDb250ZW50KToKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudFdp
bkNFLmg6CisKIDIwMTEtMDUtMTMgIEpvbiBMZWUgIDxqb25sZWVAYXBwbGUuY29tPgogCiAgICAg
ICAgIFJldmlld2VkIGJ5IFNpbW9uIEZyYXNlci4KSW5kZXg6IFNvdXJjZS9XZWJLaXQvd2luY2Uv
V2ViQ29yZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRXaW5DRS5jcHAKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL1dlYktpdC93aW5jZS9XZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudFdpbkNF
LmNwcAkocmV2aXNpb24gODc5NDIpCisrKyBTb3VyY2UvV2ViS2l0L3dpbmNlL1dlYkNvcmVTdXBw
b3J0L0ZyYW1lTG9hZGVyQ2xpZW50V2luQ0UuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yODYsNiAr
Mjg2LDE2IEBAIHZvaWQgRnJhbWVMb2FkZXJDbGllbnRXaW5DRTo6ZGlkUnVuSW5zZWMKICAgICBu
b3RJbXBsZW1lbnRlZCgpOwogfQogCit2b2lkIEZyYW1lTG9hZGVyQ2xpZW50V2luQ0U6OmRpZEJs
b2NrRGlzcGxheWluZ0luc2VjdXJlQ29udGVudCgpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsK
K30KKwordm9pZCBGcmFtZUxvYWRlckNsaWVudFdpbkNFOjpkaWRCbG9ja1J1bm5pbmdJbnNlY3Vy
ZUNvbnRlbnQoKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7Cit9CisKIHZvaWQgRnJhbWVMb2Fk
ZXJDbGllbnRXaW5DRTo6bWFrZVJlcHJlc2VudGF0aW9uKERvY3VtZW50TG9hZGVyKikKIHsKICAg
ICBub3RJbXBsZW1lbnRlZCgpOwpJbmRleDogU291cmNlL1dlYktpdC93aW5jZS9XZWJDb3JlU3Vw
cG9ydC9GcmFtZUxvYWRlckNsaWVudFdpbkNFLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktp
dC93aW5jZS9XZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudFdpbkNFLmgJKHJldmlzaW9u
IDg3OTQyKQorKysgU291cmNlL1dlYktpdC93aW5jZS9XZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRl
ckNsaWVudFdpbkNFLmgJKHdvcmtpbmcgY29weSkKQEAgLTE0Myw2ICsxNDMsOCBAQCBwdWJsaWM6
CiAKICAgICB2aXJ0dWFsIHZvaWQgZGlkRGlzcGxheUluc2VjdXJlQ29udGVudCgpOwogICAgIHZp
cnR1YWwgdm9pZCBkaWRSdW5JbnNlY3VyZUNvbnRlbnQoV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW4q
LCBjb25zdCBXZWJDb3JlOjpLVVJMJik7CisgICAgdmlydHVhbCB2b2lkIGRpZEJsb2NrRGlzcGxh
eWluZ0luc2VjdXJlQ29udGVudCgpOworICAgIHZpcnR1YWwgdm9pZCBkaWRCbG9ja1J1bm5pbmdJ
bnNlY3VyZUNvbnRlbnQoKTsKIAogICAgIHZpcnR1YWwgV2ViQ29yZTo6UmVzb3VyY2VFcnJvciBj
YW5jZWxsZWRFcnJvcihjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmKTsKICAgICB2aXJ0
dWFsIFdlYkNvcmU6OlJlc291cmNlRXJyb3IgYmxvY2tlZEVycm9yKGNvbnN0IFdlYkNvcmU6OlJl
c291cmNlUmVxdWVzdCYpOwpJbmRleDogU291cmNlL1dlYktpdC93eC9DaGFuZ2VMb2cKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL1dlYktpdC93eC9DaGFuZ2VMb2cJKHJldmlzaW9uIDg4MDMwKQorKysg
U291cmNlL1dlYktpdC93eC9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwxNCBA
QAorMjAxMS0wNi0wMyAgVG9tIFNlcGV6ICA8dHNlcGV6QGNocm9taXVtLm9yZz4KKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBOZWVkIGEgc2hvcnQgZGVz
Y3JpcHRpb24gYW5kIGJ1ZyBVUkwgKE9PUFMhKQorCisgICAgICAgICogV2ViS2l0U3VwcG9ydC9G
cmFtZUxvYWRlckNsaWVudFd4LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lTG9hZGVyQ2xp
ZW50V3g6OmRpZEJsb2NrRGlzcGxheWluZ0luc2VjdXJlQ29udGVudCk6CisgICAgICAgIChXZWJD
b3JlOjpGcmFtZUxvYWRlckNsaWVudFd4OjpkaWRCbG9ja1J1bm5pbmdJbnNlY3VyZUNvbnRlbnQp
OgorICAgICAgICAqIFdlYktpdFN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRXeC5oOgorCiAyMDEx
LTA1LTMxICBSb2JpbiBEdW5uICA8cm9iaW5AYWxsZHVubi5jb20+CiAKICAgICAgICAgUmV2aWV3
ZWQgYnkgS2V2aW4gT2xsaXZpZXIuCkluZGV4OiBTb3VyY2UvV2ViS2l0L3d4L1dlYktpdFN1cHBv
cnQvRnJhbWVMb2FkZXJDbGllbnRXeC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC93
eC9XZWJLaXRTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50V3guY3BwCShyZXZpc2lvbiA4Nzk0MikK
KysrIFNvdXJjZS9XZWJLaXQvd3gvV2ViS2l0U3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudFd4LmNw
cAkod29ya2luZyBjb3B5KQpAQCAtNjA2LDYgKzYwNiwxNiBAQCB2b2lkIEZyYW1lTG9hZGVyQ2xp
ZW50V3g6OmRpZFJ1bkluc2VjdXJlCiAgICAgbm90SW1wbGVtZW50ZWQoKTsKIH0KIAordm9pZCBG
cmFtZUxvYWRlckNsaWVudFd4OjpkaWRCbG9ja0Rpc3BsYXlpbmdJbnNlY3VyZUNvbnRlbnQoKQor
eworICAgIG5vdEltcGxlbWVudGVkKCk7Cit9CisKK3ZvaWQgRnJhbWVMb2FkZXJDbGllbnRXeDo6
ZGlkQmxvY2tSdW5uaW5nSW5zZWN1cmVDb250ZW50KCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgp
OworfQorCiB2b2lkIEZyYW1lTG9hZGVyQ2xpZW50V3g6OnNhdmVTY3JvbGxQb3NpdGlvbkFuZFZp
ZXdTdGF0ZVRvSXRlbShXZWJDb3JlOjpIaXN0b3J5SXRlbSopCiB7CiAgICAgbm90SW1wbGVtZW50
ZWQoKTsKSW5kZXg6IFNvdXJjZS9XZWJLaXQvd3gvV2ViS2l0U3VwcG9ydC9GcmFtZUxvYWRlckNs
aWVudFd4LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC93eC9XZWJLaXRTdXBwb3J0L0Zy
YW1lTG9hZGVyQ2xpZW50V3guaAkocmV2aXNpb24gODc5NDIpCisrKyBTb3VyY2UvV2ViS2l0L3d4
L1dlYktpdFN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRXeC5oCSh3b3JraW5nIGNvcHkpCkBAIC0x
NzAsNiArMTcwLDggQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICAKICAgICAgICAgdmly
dHVhbCB2b2lkIGRpZERpc3BsYXlJbnNlY3VyZUNvbnRlbnQoKTsKICAgICAgICAgdmlydHVhbCB2
b2lkIGRpZFJ1bkluc2VjdXJlQ29udGVudChTZWN1cml0eU9yaWdpbiosIGNvbnN0IEtVUkwmKTsK
KyAgICAgICAgdmlydHVhbCB2b2lkIGRpZEJsb2NrRGlzcGxheWluZ0luc2VjdXJlQ29udGVudCgp
OworICAgICAgICB2aXJ0dWFsIHZvaWQgZGlkQmxvY2tSdW5uaW5nSW5zZWN1cmVDb250ZW50KCk7
CiAKICAgICAgICAgdmlydHVhbCB2b2lkIHNldE1haW5Eb2N1bWVudEVycm9yKERvY3VtZW50TG9h
ZGVyKiwgY29uc3QgUmVzb3VyY2VFcnJvciYpOwogICAgICAgICB2aXJ0dWFsIHZvaWQgY29tbWl0
dGVkTG9hZChEb2N1bWVudExvYWRlciosIGNvbnN0IGNoYXIqLCBpbnQpOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>96130</attachid>
            <date>2011-06-06 15:01:12 -0700</date>
            <delta_ts>2011-06-06 15:05:29 -0700</delta_ts>
            <desc>Patch to call into permissions client upon insecure content.</desc>
            <filename>bug_61946.patch</filename>
            <type>text/plain</type>
            <size>8436</size>
            <attacher name="Thomas Sepez">tsepez</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDg4MTkxKQorKysgU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTkgQEAKKzIwMTEtMDYtMDYgIFRvbSBTZXBl
eiAgPHRzZXBlekBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgQ2hlY2sgd2l0aCBjbGllbnQgZm9yIGluc2VjdXJlIGNvbnRlbnQg
cGVybWlzc2lvbnMuCisJaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTYx
OTQ2CisKKyAgICAgICAgTm8gbmV3IHRlc3RzIHNpbmNlIGNvZGVwYXRoIGNvdmVyZWQgYnkgZXhp
c3Rpbmcgb25lcy4KKworICAgICAgICAqIGxvYWRlci9GcmFtZUxvYWRlci5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpGcmFtZUxvYWRlcjo6Y2hlY2tJZkRpc3BsYXlJbnNlY3VyZUNvbnRlbnQpOgor
ICAgICAgICAoV2ViQ29yZTo6RnJhbWVMb2FkZXI6OmNoZWNrSWZSdW5JbnNlY3VyZUNvbnRlbnQp
OgorICAgICAgICAqIGxvYWRlci9GcmFtZUxvYWRlckNsaWVudC5oOgorICAgICAgICAoV2ViQ29y
ZTo6RnJhbWVMb2FkZXJDbGllbnQ6OmFsbG93RGlzcGxheWluZ0luc2VjdXJlQ29udGVudCk6Cisg
ICAgICAgIChXZWJDb3JlOjpGcmFtZUxvYWRlckNsaWVudDo6YWxsb3dSdW5uaW5nSW5zZWN1cmVD
b250ZW50KToKKwogMjAxMS0wNi0wNiAgTGV2aSBXZWludHJhdWIgIDxsZXZpd0BjaHJvbWl1bS5v
cmc+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgRXJpYyBTZWlkZWwuCkluZGV4OiBTb3VyY2UvV2Vi
Q29yZS9sb2FkZXIvRnJhbWVMb2FkZXIuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3Jl
L2xvYWRlci9GcmFtZUxvYWRlci5jcHAJKHJldmlzaW9uIDg3OTQyKQorKysgU291cmNlL1dlYkNv
cmUvbG9hZGVyL0ZyYW1lTG9hZGVyLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTExNSwxMSArMTEx
NSwxNiBAQCBib29sIEZyYW1lTG9hZGVyOjpjaGVja0lmRGlzcGxheUluc2VjdXJlCiAgICAgICAg
IHJldHVybiB0cnVlOwogCiAgICAgU2V0dGluZ3MqIHNldHRpbmdzID0gbV9mcmFtZS0+c2V0dGlu
Z3MoKTsKLSAgICBib29sIGFsbG93ZWQgPSBzZXR0aW5ncyAmJiBzZXR0aW5ncy0+YWxsb3dEaXNw
bGF5T2ZJbnNlY3VyZUNvbnRlbnQoKTsKLSAgICBTdHJpbmcgbWVzc2FnZSA9IChhbGxvd2VkID8g
ZW1wdHlTdHJpbmcoKSA6ICJbYmxvY2tlZF0gIikgKyAiVGhlIHBhZ2UgYXQgIiArIG1fZnJhbWUt
PmRvY3VtZW50KCktPnVybCgpLnN0cmluZygpICsgIiBkaXNwbGF5ZWQgaW5zZWN1cmUgY29udGVu
dCBmcm9tICIgKyB1cmwuc3RyaW5nKCkgKyAiLlxuIjsKKyAgICBib29sIGFsbG93ZWRQZXJTZXR0
aW5ncyA9IHNldHRpbmdzICYmIHNldHRpbmdzLT5hbGxvd0Rpc3BsYXlPZkluc2VjdXJlQ29udGVu
dCgpOworICAgIGJvb2wgYWxsb3dlZCA9IG1fY2xpZW50LT5hbGxvd0Rpc3BsYXlpbmdJbnNlY3Vy
ZUNvbnRlbnQoYWxsb3dlZFBlclNldHRpbmdzKTsKKyAgICBTdHJpbmcgbWVzc2FnZSA9IChhbGxv
d2VkID8gZW1wdHlTdHJpbmcoKSA6ICJbYmxvY2tlZF0gIikgKyAiVGhlIHBhZ2UgYXQgIiArCisg
ICAgICAgIG1fZnJhbWUtPmRvY3VtZW50KCktPnVybCgpLnN0cmluZygpICsgIiBkaXNwbGF5ZWQg
aW5zZWN1cmUgY29udGVudCBmcm9tICIgKyB1cmwuc3RyaW5nKCkgKyAiLlxuIjsKKyAgICAgICAg
CiAgICAgbV9mcmFtZS0+ZG9tV2luZG93KCktPmNvbnNvbGUoKS0+YWRkTWVzc2FnZShIVE1MTWVz
c2FnZVNvdXJjZSwgTG9nTWVzc2FnZVR5cGUsIFdhcm5pbmdNZXNzYWdlTGV2ZWwsIG1lc3NhZ2Us
IDEsIFN0cmluZygpKTsKIAotICAgIG1fY2xpZW50LT5kaWREaXNwbGF5SW5zZWN1cmVDb250ZW50
KCk7CisgICAgaWYgKGFsbG93ZWQpCisgICAgICAgIG1fY2xpZW50LT5kaWREaXNwbGF5SW5zZWN1
cmVDb250ZW50KCk7CisKICAgICByZXR1cm4gYWxsb3dlZDsKIH0KIApAQCAtMTEyOSwxMSArMTEz
NCwxNiBAQCBib29sIEZyYW1lTG9hZGVyOjpjaGVja0lmUnVuSW5zZWN1cmVDb250CiAgICAgICAg
IHJldHVybiB0cnVlOwogCiAgICAgU2V0dGluZ3MqIHNldHRpbmdzID0gbV9mcmFtZS0+c2V0dGlu
Z3MoKTsKLSAgICBib29sIGFsbG93ZWQgPSBzZXR0aW5ncyAmJiBzZXR0aW5ncy0+YWxsb3dSdW5u
aW5nT2ZJbnNlY3VyZUNvbnRlbnQoKTsKLSAgICBTdHJpbmcgbWVzc2FnZSA9IChhbGxvd2VkID8g
ZW1wdHlTdHJpbmcoKSA6ICJbYmxvY2tlZF0gIikgKyAiVGhlIHBhZ2UgYXQgIiArIG1fZnJhbWUt
PmRvY3VtZW50KCktPnVybCgpLnN0cmluZygpICsgIiByYW4gaW5zZWN1cmUgY29udGVudCBmcm9t
ICIgKyB1cmwuc3RyaW5nKCkgKyAiLlxuIjsKKyAgICBib29sIGFsbG93ZWRQZXJTZXR0aW5ncyA9
IHNldHRpbmdzICYmIHNldHRpbmdzLT5hbGxvd1J1bm5pbmdPZkluc2VjdXJlQ29udGVudCgpOwor
ICAgIGJvb2wgYWxsb3dlZCA9IG1fY2xpZW50LT5hbGxvd1J1bm5pbmdJbnNlY3VyZUNvbnRlbnQo
YWxsb3dlZFBlclNldHRpbmdzLCBjb250ZXh0LCB1cmwpOworICAgIFN0cmluZyBtZXNzYWdlID0g
KGFsbG93ZWQgPyBlbXB0eVN0cmluZygpIDogIltibG9ja2VkXSAiKSArICJUaGUgcGFnZSBhdCAi
ICsKKyAgICAgICAgbV9mcmFtZS0+ZG9jdW1lbnQoKS0+dXJsKCkuc3RyaW5nKCkgKyAiIHJhbiBp
bnNlY3VyZSBjb250ZW50IGZyb20gIiArIHVybC5zdHJpbmcoKSArICIuXG4iOworICAgICAgIAog
ICAgIG1fZnJhbWUtPmRvbVdpbmRvdygpLT5jb25zb2xlKCktPmFkZE1lc3NhZ2UoSFRNTE1lc3Nh
Z2VTb3VyY2UsIExvZ01lc3NhZ2VUeXBlLCBXYXJuaW5nTWVzc2FnZUxldmVsLCBtZXNzYWdlLCAx
LCBTdHJpbmcoKSk7CiAKLSAgICBtX2NsaWVudC0+ZGlkUnVuSW5zZWN1cmVDb250ZW50KGNvbnRl
eHQsIHVybCk7CisgICAgaWYgKGFsbG93ZWQpCisgICAgICAgIG1fY2xpZW50LT5kaWRSdW5JbnNl
Y3VyZUNvbnRlbnQoY29udGV4dCwgdXJsKTsKKwogICAgIHJldHVybiBhbGxvd2VkOwogfQogCklu
ZGV4OiBTb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXJDbGllbnQuaAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXJDbGllbnQuaAkocmV2aXNpb24g
ODc5NDIpCisrKyBTb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXJDbGllbnQuaAkod29y
a2luZyBjb3B5KQpAQCAtMjk4LDcgKzI5OCw5IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAg
ICAgdmlydHVhbCBib29sIGFsbG93SmF2YVNjcmlwdChib29sIGVuYWJsZWRQZXJTZXR0aW5ncykg
eyByZXR1cm4gZW5hYmxlZFBlclNldHRpbmdzOyB9CiAgICAgICAgIHZpcnR1YWwgYm9vbCBhbGxv
d1BsdWdpbnMoYm9vbCBlbmFibGVkUGVyU2V0dGluZ3MpIHsgcmV0dXJuIGVuYWJsZWRQZXJTZXR0
aW5nczsgfQogICAgICAgICB2aXJ0dWFsIGJvb2wgYWxsb3dJbWFnZXMoYm9vbCBlbmFibGVkUGVy
U2V0dGluZ3MpIHsgcmV0dXJuIGVuYWJsZWRQZXJTZXR0aW5nczsgfQotCisgICAgICAgIHZpcnR1
YWwgYm9vbCBhbGxvd0Rpc3BsYXlpbmdJbnNlY3VyZUNvbnRlbnQoYm9vbCBlbmFibGVkUGVyU2V0
dGluZ3MpIHsgcmV0dXJuIGVuYWJsZWRQZXJTZXR0aW5nczsgfQorICAgICAgICB2aXJ0dWFsIGJv
b2wgYWxsb3dSdW5uaW5nSW5zZWN1cmVDb250ZW50KGJvb2wgZW5hYmxlZFBlclNldHRpbmdzLCBT
ZWN1cml0eU9yaWdpbiosIGNvbnN0IEtVUkwmKSB7IHJldHVybiBlbmFibGVkUGVyU2V0dGluZ3M7
IH0KKyAgICAgICAgCiAgICAgICAgIC8vIFRoaXMgY2FsbGJhY2sgbm90aWZpZXMgdGhlIGNsaWVu
dCB0aGF0IHRoZSBmcmFtZSB3YXMgYWJvdXQgdG8gcnVuCiAgICAgICAgIC8vIEphdmFTY3JpcHQg
YnV0IGRpZCBub3QgYmVjYXVzZSBhbGxvd0phdmFTY3JpcHQgcmV0dXJuZWQgZmFsc2UuIFdlCiAg
ICAgICAgIC8vIGhhdmUgYSBzZXBhcmF0ZSBjYWxsYmFjayBoZXJlIGJlY2F1c2UgdGhlcmUgYXJl
IGEgbnVtYmVyIG9mIHBsYWNlcwpJbmRleDogU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VM
b2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cJKHJldmlz
aW9uIDg4MTkxKQorKysgU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cJKHdvcmtpbmcg
Y29weSkKQEAgLTEsMyArMSwxOCBAQAorMjAxMS0wNi0wNiAgVG9tIFNlcGV6ICA8dHNlcGV6QGNo
cm9taXVtLm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworCUNo
ZWNrIHdpdGggY2xpZW50IGFib3V0IHBlcm1pc3Npb25zIGZvciBpbnNlY3VyZSBjb250ZW50Lgor
CWh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD02MTk0NgorCQorICAgICAg
ICAqIHB1YmxpYy9XZWJQZXJtaXNzaW9uQ2xpZW50Lmg6CisgICAgICAgIChXZWJLaXQ6OldlYlBl
cm1pc3Npb25DbGllbnQ6OmFsbG93RGlzcGxheWluZ0luc2VjdXJlQ29udGVudCk6CisgICAgICAg
IChXZWJLaXQ6OldlYlBlcm1pc3Npb25DbGllbnQ6OmFsbG93UnVubmluZ0luc2VjdXJlQ29udGVu
dCk6CisgICAgICAgICogc3JjL0ZyYW1lTG9hZGVyQ2xpZW50SW1wbC5jcHA6CisgICAgICAgIChX
ZWJLaXQ6OkZyYW1lTG9hZGVyQ2xpZW50SW1wbDo6YWxsb3dEaXNwbGF5aW5nSW5zZWN1cmVDb250
ZW50KToKKyAgICAgICAgKFdlYktpdDo6RnJhbWVMb2FkZXJDbGllbnRJbXBsOjphbGxvd1J1bm5p
bmdJbnNlY3VyZUNvbnRlbnQpOgorICAgICAgICAqIHNyYy9GcmFtZUxvYWRlckNsaWVudEltcGwu
aDoKKwogMjAxMS0wNi0wNiAgTmljbyBXZWJlciAgPHRoYWtpc0BjaHJvbWl1bS5vcmc+CiAKICAg
ICAgICAgUmV2aWV3ZWQgYnkgSmFtZXMgUm9iaW5zb24uCkluZGV4OiBTb3VyY2UvV2ViS2l0L2No
cm9taXVtL3B1YmxpYy9XZWJQZXJtaXNzaW9uQ2xpZW50LmgKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViUGVybWlzc2lvbkNsaWVudC5oCShyZXZpc2lvbiA4
Nzk0MikKKysrIFNvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYlBlcm1pc3Npb25DbGll
bnQuaAkod29ya2luZyBjb3B5KQpAQCAtMzYsNiArMzYsNyBAQCBuYW1lc3BhY2UgV2ViS2l0IHsK
IGNsYXNzIFdlYkZyYW1lOwogY2xhc3MgV2ViU2VjdXJpdHlPcmlnaW47CiBjbGFzcyBXZWJTdHJp
bmc7CitjbGFzcyBXZWJVUkw7CiAKIGNsYXNzIFdlYlBlcm1pc3Npb25DbGllbnQgewogcHVibGlj
OgpAQCAtNTcsNiArNTgsMTIgQEAgcHVibGljOgogICAgIC8vIENvbnRyb2xzIHdoZXRoZXIgc2Ny
aXB0cyBhcmUgYWxsb3dlZCB0byBleGVjdXRlIGZvciB0aGlzIGZyYW1lLgogICAgIHZpcnR1YWwg
Ym9vbCBhbGxvd1NjcmlwdChXZWJGcmFtZSosIGJvb2wgZW5hYmxlZFBlclNldHRpbmdzKSB7IHJl
dHVybiBlbmFibGVkUGVyU2V0dGluZ3M7IH0KIAorICAgIC8vIENvbnRyb2xzIHdoZXRoZXIgaW5z
ZWNydXJlIGNvbnRlbnQgaXMgYWxsb3dlZCB0byBkaXNwbGF5IGZvciB0aGlzIGZyYW1lLgorICAg
IHZpcnR1YWwgYm9vbCBhbGxvd0Rpc3BsYXlpbmdJbnNlY3VyZUNvbnRlbnQoV2ViRnJhbWUqLCBi
b29sIGVuYWJsZWRQZXJTZXR0aW5ncykgeyByZXR1cm4gZW5hYmxlZFBlclNldHRpbmdzOyB9CisK
KyAgICAvLyBDb250cm9scyB3aGV0aGVyIGluc2VjcnVyZSBzY3JpcHRzIGFyZSBhbGxvd2VkIHRv
IGV4ZWN1dGUgZm9yIHRoaXMgZnJhbWUuCisgICAgdmlydHVhbCBib29sIGFsbG93UnVubmluZ0lu
c2VjdXJlQ29udGVudChXZWJGcmFtZSosIGJvb2wgZW5hYmxlZFBlclNldHRpbmdzLCBjb25zdCBX
ZWJTZWN1cml0eU9yaWdpbiYsIGNvbnN0IFdlYlVSTCYpIHsgcmV0dXJuIGVuYWJsZWRQZXJTZXR0
aW5nczsgfQorCiAgICAgLy8gQ29udHJvbHMgd2hldGhlciB0aGUgZ2l2ZW4gc2NyaXB0IGV4dGVu
c2lvbiBzaG91bGQgcnVuIGluIGEgbmV3IHNjcmlwdAogICAgIC8vIGNvbnRleHQgaW4gdGhpcyBm
cmFtZS4gSWYgZXh0ZW5zaW9uR3JvdXAgaXMgMCwgdGhlIHNjcmlwdCBjb250ZXh0IGlzIHRoZQog
ICAgIC8vIGZyYW1lJ3MgbWFpbiBjb250ZXh0LiBPdGhlcndpc2UsIGl0IGlzIGEgY29udGV4dCBj
cmVhdGVkIGJ5CkluZGV4OiBTb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9GcmFtZUxvYWRlckNs
aWVudEltcGwuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0Zy
YW1lTG9hZGVyQ2xpZW50SW1wbC5jcHAJKHJldmlzaW9uIDg3OTQyKQorKysgU291cmNlL1dlYktp
dC9jaHJvbWl1bS9zcmMvRnJhbWVMb2FkZXJDbGllbnRJbXBsLmNwcAkod29ya2luZyBjb3B5KQpA
QCAtMjAyLDYgKzIwMiwyNCBAQCBib29sIEZyYW1lTG9hZGVyQ2xpZW50SW1wbDo6YWxsb3dJbWFn
ZXMoCiAgICAgcmV0dXJuIGVuYWJsZWRQZXJTZXR0aW5nczsKIH0KIAorYm9vbCBGcmFtZUxvYWRl
ckNsaWVudEltcGw6OmFsbG93RGlzcGxheWluZ0luc2VjdXJlQ29udGVudChib29sIGVuYWJsZWRQ
ZXJTZXR0aW5ncykKK3sKKyAgICBXZWJWaWV3SW1wbCogd2VidmlldyA9IG1fd2ViRnJhbWUtPnZp
ZXdJbXBsKCk7CisgICAgaWYgKHdlYnZpZXcgJiYgd2Vidmlldy0+cGVybWlzc2lvbkNsaWVudCgp
KQorICAgICAgICByZXR1cm4gd2Vidmlldy0+cGVybWlzc2lvbkNsaWVudCgpLT5hbGxvd0Rpc3Bs
YXlpbmdJbnNlY3VyZUNvbnRlbnQobV93ZWJGcmFtZSwgZW5hYmxlZFBlclNldHRpbmdzKTsKKwor
ICAgIHJldHVybiBlbmFibGVkUGVyU2V0dGluZ3M7Cit9CisKK2Jvb2wgRnJhbWVMb2FkZXJDbGll
bnRJbXBsOjphbGxvd1J1bm5pbmdJbnNlY3VyZUNvbnRlbnQoYm9vbCBlbmFibGVkUGVyU2V0dGlu
Z3MsIFNlY3VyaXR5T3JpZ2luKiBjb250ZXh0LCBjb25zdCBLVVJMJiB1cmwpCit7CisgICAgV2Vi
Vmlld0ltcGwqIHdlYnZpZXcgPSBtX3dlYkZyYW1lLT52aWV3SW1wbCgpOworICAgIGlmICh3ZWJ2
aWV3ICYmIHdlYnZpZXctPnBlcm1pc3Npb25DbGllbnQoKSkKKyAgICAgICAgcmV0dXJuIHdlYnZp
ZXctPnBlcm1pc3Npb25DbGllbnQoKS0+YWxsb3dSdW5uaW5nSW5zZWN1cmVDb250ZW50KG1fd2Vi
RnJhbWUsIGVuYWJsZWRQZXJTZXR0aW5ncywgV2ViU2VjdXJpdHlPcmlnaW4oY29udGV4dCksIFdl
YlVSTCh1cmwpKTsKKworICAgIHJldHVybiBlbmFibGVkUGVyU2V0dGluZ3M7Cit9CisKIHZvaWQg
RnJhbWVMb2FkZXJDbGllbnRJbXBsOjpkaWROb3RBbGxvd1NjcmlwdCgpCiB7CiAgICAgV2ViVmll
d0ltcGwqIHdlYnZpZXcgPSBtX3dlYkZyYW1lLT52aWV3SW1wbCgpOwpJbmRleDogU291cmNlL1dl
YktpdC9jaHJvbWl1bS9zcmMvRnJhbWVMb2FkZXJDbGllbnRJbXBsLmgKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvRnJhbWVMb2FkZXJDbGllbnRJbXBsLmgJKHJldmlz
aW9uIDg3OTQyKQorKysgU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvRnJhbWVMb2FkZXJDbGll
bnRJbXBsLmgJKHdvcmtpbmcgY29weSkKQEAgLTIwNiw2ICsyMDYsOCBAQCBwdWJsaWM6CiAgICAg
dmlydHVhbCBib29sIGFsbG93SmF2YVNjcmlwdChib29sIGVuYWJsZWRQZXJTZXR0aW5ncyk7CiAg
ICAgdmlydHVhbCBib29sIGFsbG93UGx1Z2lucyhib29sIGVuYWJsZWRQZXJTZXR0aW5ncyk7CiAg
ICAgdmlydHVhbCBib29sIGFsbG93SW1hZ2VzKGJvb2wgZW5hYmxlZFBlclNldHRpbmdzKTsKKyAg
ICB2aXJ0dWFsIGJvb2wgYWxsb3dEaXNwbGF5aW5nSW5zZWN1cmVDb250ZW50KGJvb2wgZW5hYmxl
ZFBlclNldHRpbmdzKTsKKyAgICB2aXJ0dWFsIGJvb2wgYWxsb3dSdW5uaW5nSW5zZWN1cmVDb250
ZW50KGJvb2wgZW5hYmxlZFBlclNldHRpbmdzLCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbiogY29u
dGV4dCwgY29uc3QgV2ViQ29yZTo6S1VSTCYgdXJsKTsKICAgICB2aXJ0dWFsIHZvaWQgZGlkTm90
QWxsb3dTY3JpcHQoKTsKICAgICB2aXJ0dWFsIHZvaWQgZGlkTm90QWxsb3dQbHVnaW5zKCk7CiAK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>96131</attachid>
            <date>2011-06-06 15:05:29 -0700</date>
            <delta_ts>2011-06-06 15:08:37 -0700</delta_ts>
            <desc>Patch to call into permissions client on insecure content</desc>
            <filename>bug_61946.patch</filename>
            <type>text/plain</type>
            <size>8464</size>
            <attacher name="Thomas Sepez">tsepez</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDg4MTkxKQorKysgU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTkgQEAKKzIwMTEtMDYtMDYgIFRvbSBTZXBl
eiAgPHRzZXBlekBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgQ2hlY2sgd2l0aCBjbGllbnQgZm9yIGluc2VjdXJlIGNvbnRlbnQg
cGVybWlzc2lvbnMuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD02MTk0NgorCisgICAgICAgIE5vIG5ldyB0ZXN0cyBzaW5jZSBjb2RlcGF0aCBjb3ZlcmVk
IGJ5IGV4aXN0aW5nIG9uZXMuCisKKyAgICAgICAgKiBsb2FkZXIvRnJhbWVMb2FkZXIuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6RnJhbWVMb2FkZXI6OmNoZWNrSWZEaXNwbGF5SW5zZWN1cmVDb250
ZW50KToKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lTG9hZGVyOjpjaGVja0lmUnVuSW5zZWN1cmVD
b250ZW50KToKKyAgICAgICAgKiBsb2FkZXIvRnJhbWVMb2FkZXJDbGllbnQuaDoKKyAgICAgICAg
KFdlYkNvcmU6OkZyYW1lTG9hZGVyQ2xpZW50OjphbGxvd0Rpc3BsYXlpbmdJbnNlY3VyZUNvbnRl
bnQpOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVMb2FkZXJDbGllbnQ6OmFsbG93UnVubmluZ0lu
c2VjdXJlQ29udGVudCk6CisKIDIwMTEtMDYtMDYgIExldmkgV2VpbnRyYXViICA8bGV2aXdAY2hy
b21pdW0ub3JnPgogCiAgICAgICAgIFJldmlld2VkIGJ5IEVyaWMgU2VpZGVsLgpJbmRleDogU291
cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyLmNwcAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXIuY3BwCShyZXZpc2lvbiA4Nzk0MikKKysrIFNvdXJj
ZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTExMTUs
MTEgKzExMTUsMTYgQEAgYm9vbCBGcmFtZUxvYWRlcjo6Y2hlY2tJZkRpc3BsYXlJbnNlY3VyZQog
ICAgICAgICByZXR1cm4gdHJ1ZTsKIAogICAgIFNldHRpbmdzKiBzZXR0aW5ncyA9IG1fZnJhbWUt
PnNldHRpbmdzKCk7Ci0gICAgYm9vbCBhbGxvd2VkID0gc2V0dGluZ3MgJiYgc2V0dGluZ3MtPmFs
bG93RGlzcGxheU9mSW5zZWN1cmVDb250ZW50KCk7Ci0gICAgU3RyaW5nIG1lc3NhZ2UgPSAoYWxs
b3dlZCA/IGVtcHR5U3RyaW5nKCkgOiAiW2Jsb2NrZWRdICIpICsgIlRoZSBwYWdlIGF0ICIgKyBt
X2ZyYW1lLT5kb2N1bWVudCgpLT51cmwoKS5zdHJpbmcoKSArICIgZGlzcGxheWVkIGluc2VjdXJl
IGNvbnRlbnQgZnJvbSAiICsgdXJsLnN0cmluZygpICsgIi5cbiI7CisgICAgYm9vbCBhbGxvd2Vk
UGVyU2V0dGluZ3MgPSBzZXR0aW5ncyAmJiBzZXR0aW5ncy0+YWxsb3dEaXNwbGF5T2ZJbnNlY3Vy
ZUNvbnRlbnQoKTsKKyAgICBib29sIGFsbG93ZWQgPSBtX2NsaWVudC0+YWxsb3dEaXNwbGF5aW5n
SW5zZWN1cmVDb250ZW50KGFsbG93ZWRQZXJTZXR0aW5ncyk7CisgICAgU3RyaW5nIG1lc3NhZ2Ug
PSAoYWxsb3dlZCA/IGVtcHR5U3RyaW5nKCkgOiAiW2Jsb2NrZWRdICIpICsgIlRoZSBwYWdlIGF0
ICIgKworICAgICAgICBtX2ZyYW1lLT5kb2N1bWVudCgpLT51cmwoKS5zdHJpbmcoKSArICIgZGlz
cGxheWVkIGluc2VjdXJlIGNvbnRlbnQgZnJvbSAiICsgdXJsLnN0cmluZygpICsgIi5cbiI7Cisg
ICAgICAgIAogICAgIG1fZnJhbWUtPmRvbVdpbmRvdygpLT5jb25zb2xlKCktPmFkZE1lc3NhZ2Uo
SFRNTE1lc3NhZ2VTb3VyY2UsIExvZ01lc3NhZ2VUeXBlLCBXYXJuaW5nTWVzc2FnZUxldmVsLCBt
ZXNzYWdlLCAxLCBTdHJpbmcoKSk7CiAKLSAgICBtX2NsaWVudC0+ZGlkRGlzcGxheUluc2VjdXJl
Q29udGVudCgpOworICAgIGlmIChhbGxvd2VkKQorICAgICAgICBtX2NsaWVudC0+ZGlkRGlzcGxh
eUluc2VjdXJlQ29udGVudCgpOworCiAgICAgcmV0dXJuIGFsbG93ZWQ7CiB9CiAKQEAgLTExMjks
MTEgKzExMzQsMTYgQEAgYm9vbCBGcmFtZUxvYWRlcjo6Y2hlY2tJZlJ1bkluc2VjdXJlQ29udAog
ICAgICAgICByZXR1cm4gdHJ1ZTsKIAogICAgIFNldHRpbmdzKiBzZXR0aW5ncyA9IG1fZnJhbWUt
PnNldHRpbmdzKCk7Ci0gICAgYm9vbCBhbGxvd2VkID0gc2V0dGluZ3MgJiYgc2V0dGluZ3MtPmFs
bG93UnVubmluZ09mSW5zZWN1cmVDb250ZW50KCk7Ci0gICAgU3RyaW5nIG1lc3NhZ2UgPSAoYWxs
b3dlZCA/IGVtcHR5U3RyaW5nKCkgOiAiW2Jsb2NrZWRdICIpICsgIlRoZSBwYWdlIGF0ICIgKyBt
X2ZyYW1lLT5kb2N1bWVudCgpLT51cmwoKS5zdHJpbmcoKSArICIgcmFuIGluc2VjdXJlIGNvbnRl
bnQgZnJvbSAiICsgdXJsLnN0cmluZygpICsgIi5cbiI7CisgICAgYm9vbCBhbGxvd2VkUGVyU2V0
dGluZ3MgPSBzZXR0aW5ncyAmJiBzZXR0aW5ncy0+YWxsb3dSdW5uaW5nT2ZJbnNlY3VyZUNvbnRl
bnQoKTsKKyAgICBib29sIGFsbG93ZWQgPSBtX2NsaWVudC0+YWxsb3dSdW5uaW5nSW5zZWN1cmVD
b250ZW50KGFsbG93ZWRQZXJTZXR0aW5ncywgY29udGV4dCwgdXJsKTsKKyAgICBTdHJpbmcgbWVz
c2FnZSA9IChhbGxvd2VkID8gZW1wdHlTdHJpbmcoKSA6ICJbYmxvY2tlZF0gIikgKyAiVGhlIHBh
Z2UgYXQgIiArCisgICAgICAgIG1fZnJhbWUtPmRvY3VtZW50KCktPnVybCgpLnN0cmluZygpICsg
IiByYW4gaW5zZWN1cmUgY29udGVudCBmcm9tICIgKyB1cmwuc3RyaW5nKCkgKyAiLlxuIjsKKyAg
ICAgICAKICAgICBtX2ZyYW1lLT5kb21XaW5kb3coKS0+Y29uc29sZSgpLT5hZGRNZXNzYWdlKEhU
TUxNZXNzYWdlU291cmNlLCBMb2dNZXNzYWdlVHlwZSwgV2FybmluZ01lc3NhZ2VMZXZlbCwgbWVz
c2FnZSwgMSwgU3RyaW5nKCkpOwogCi0gICAgbV9jbGllbnQtPmRpZFJ1bkluc2VjdXJlQ29udGVu
dChjb250ZXh0LCB1cmwpOworICAgIGlmIChhbGxvd2VkKQorICAgICAgICBtX2NsaWVudC0+ZGlk
UnVuSW5zZWN1cmVDb250ZW50KGNvbnRleHQsIHVybCk7CisKICAgICByZXR1cm4gYWxsb3dlZDsK
IH0KIApJbmRleDogU291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyQ2xpZW50LmgKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyQ2xpZW50LmgJKHJl
dmlzaW9uIDg3OTQyKQorKysgU291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyQ2xpZW50
LmgJKHdvcmtpbmcgY29weSkKQEAgLTI5OCw3ICsyOTgsOSBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7
CiAgICAgICAgIHZpcnR1YWwgYm9vbCBhbGxvd0phdmFTY3JpcHQoYm9vbCBlbmFibGVkUGVyU2V0
dGluZ3MpIHsgcmV0dXJuIGVuYWJsZWRQZXJTZXR0aW5nczsgfQogICAgICAgICB2aXJ0dWFsIGJv
b2wgYWxsb3dQbHVnaW5zKGJvb2wgZW5hYmxlZFBlclNldHRpbmdzKSB7IHJldHVybiBlbmFibGVk
UGVyU2V0dGluZ3M7IH0KICAgICAgICAgdmlydHVhbCBib29sIGFsbG93SW1hZ2VzKGJvb2wgZW5h
YmxlZFBlclNldHRpbmdzKSB7IHJldHVybiBlbmFibGVkUGVyU2V0dGluZ3M7IH0KLQorICAgICAg
ICB2aXJ0dWFsIGJvb2wgYWxsb3dEaXNwbGF5aW5nSW5zZWN1cmVDb250ZW50KGJvb2wgZW5hYmxl
ZFBlclNldHRpbmdzKSB7IHJldHVybiBlbmFibGVkUGVyU2V0dGluZ3M7IH0KKyAgICAgICAgdmly
dHVhbCBib29sIGFsbG93UnVubmluZ0luc2VjdXJlQ29udGVudChib29sIGVuYWJsZWRQZXJTZXR0
aW5ncywgU2VjdXJpdHlPcmlnaW4qLCBjb25zdCBLVVJMJikgeyByZXR1cm4gZW5hYmxlZFBlclNl
dHRpbmdzOyB9CisgICAgICAgIAogICAgICAgICAvLyBUaGlzIGNhbGxiYWNrIG5vdGlmaWVzIHRo
ZSBjbGllbnQgdGhhdCB0aGUgZnJhbWUgd2FzIGFib3V0IHRvIHJ1bgogICAgICAgICAvLyBKYXZh
U2NyaXB0IGJ1dCBkaWQgbm90IGJlY2F1c2UgYWxsb3dKYXZhU2NyaXB0IHJldHVybmVkIGZhbHNl
LiBXZQogICAgICAgICAvLyBoYXZlIGEgc2VwYXJhdGUgY2FsbGJhY2sgaGVyZSBiZWNhdXNlIHRo
ZXJlIGFyZSBhIG51bWJlciBvZiBwbGFjZXMKSW5kZXg6IFNvdXJjZS9XZWJLaXQvY2hyb21pdW0v
Q2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9n
CShyZXZpc2lvbiA4ODE5MSkKKysrIFNvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCSh3
b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTggQEAKKzIwMTEtMDYtMDYgIFRvbSBTZXBleiAgPHRz
ZXBlekBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgQ2hlY2sgd2l0aCBjbGllbnQgYWJvdXQgcGVybWlzc2lvbnMgZm9yIGluc2Vj
dXJlIGNvbnRlbnQuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD02MTk0NgorICAgICAgICAKKyAgICAgICAgKiBwdWJsaWMvV2ViUGVybWlzc2lvbkNsaWVu
dC5oOgorICAgICAgICAoV2ViS2l0OjpXZWJQZXJtaXNzaW9uQ2xpZW50OjphbGxvd0Rpc3BsYXlp
bmdJbnNlY3VyZUNvbnRlbnQpOgorICAgICAgICAoV2ViS2l0OjpXZWJQZXJtaXNzaW9uQ2xpZW50
OjphbGxvd1J1bm5pbmdJbnNlY3VyZUNvbnRlbnQpOgorICAgICAgICAqIHNyYy9GcmFtZUxvYWRl
ckNsaWVudEltcGwuY3BwOgorICAgICAgICAoV2ViS2l0OjpGcmFtZUxvYWRlckNsaWVudEltcGw6
OmFsbG93RGlzcGxheWluZ0luc2VjdXJlQ29udGVudCk6CisgICAgICAgIChXZWJLaXQ6OkZyYW1l
TG9hZGVyQ2xpZW50SW1wbDo6YWxsb3dSdW5uaW5nSW5zZWN1cmVDb250ZW50KToKKyAgICAgICAg
KiBzcmMvRnJhbWVMb2FkZXJDbGllbnRJbXBsLmg6CisKIDIwMTEtMDYtMDYgIE5pY28gV2ViZXIg
IDx0aGFraXNAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFJldmlld2VkIGJ5IEphbWVzIFJvYmlu
c29uLgpJbmRleDogU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViUGVybWlzc2lvbkNs
aWVudC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYlBl
cm1pc3Npb25DbGllbnQuaAkocmV2aXNpb24gODc5NDIpCisrKyBTb3VyY2UvV2ViS2l0L2Nocm9t
aXVtL3B1YmxpYy9XZWJQZXJtaXNzaW9uQ2xpZW50LmgJKHdvcmtpbmcgY29weSkKQEAgLTM2LDYg
KzM2LDcgQEAgbmFtZXNwYWNlIFdlYktpdCB7CiBjbGFzcyBXZWJGcmFtZTsKIGNsYXNzIFdlYlNl
Y3VyaXR5T3JpZ2luOwogY2xhc3MgV2ViU3RyaW5nOworY2xhc3MgV2ViVVJMOwogCiBjbGFzcyBX
ZWJQZXJtaXNzaW9uQ2xpZW50IHsKIHB1YmxpYzoKQEAgLTU3LDYgKzU4LDEyIEBAIHB1YmxpYzoK
ICAgICAvLyBDb250cm9scyB3aGV0aGVyIHNjcmlwdHMgYXJlIGFsbG93ZWQgdG8gZXhlY3V0ZSBm
b3IgdGhpcyBmcmFtZS4KICAgICB2aXJ0dWFsIGJvb2wgYWxsb3dTY3JpcHQoV2ViRnJhbWUqLCBi
b29sIGVuYWJsZWRQZXJTZXR0aW5ncykgeyByZXR1cm4gZW5hYmxlZFBlclNldHRpbmdzOyB9CiAK
KyAgICAvLyBDb250cm9scyB3aGV0aGVyIGluc2VjcnVyZSBjb250ZW50IGlzIGFsbG93ZWQgdG8g
ZGlzcGxheSBmb3IgdGhpcyBmcmFtZS4KKyAgICB2aXJ0dWFsIGJvb2wgYWxsb3dEaXNwbGF5aW5n
SW5zZWN1cmVDb250ZW50KFdlYkZyYW1lKiwgYm9vbCBlbmFibGVkUGVyU2V0dGluZ3MpIHsgcmV0
dXJuIGVuYWJsZWRQZXJTZXR0aW5nczsgfQorCisgICAgLy8gQ29udHJvbHMgd2hldGhlciBpbnNl
Y3J1cmUgc2NyaXB0cyBhcmUgYWxsb3dlZCB0byBleGVjdXRlIGZvciB0aGlzIGZyYW1lLgorICAg
IHZpcnR1YWwgYm9vbCBhbGxvd1J1bm5pbmdJbnNlY3VyZUNvbnRlbnQoV2ViRnJhbWUqLCBib29s
IGVuYWJsZWRQZXJTZXR0aW5ncywgY29uc3QgV2ViU2VjdXJpdHlPcmlnaW4mLCBjb25zdCBXZWJV
UkwmKSB7IHJldHVybiBlbmFibGVkUGVyU2V0dGluZ3M7IH0KKwogICAgIC8vIENvbnRyb2xzIHdo
ZXRoZXIgdGhlIGdpdmVuIHNjcmlwdCBleHRlbnNpb24gc2hvdWxkIHJ1biBpbiBhIG5ldyBzY3Jp
cHQKICAgICAvLyBjb250ZXh0IGluIHRoaXMgZnJhbWUuIElmIGV4dGVuc2lvbkdyb3VwIGlzIDAs
IHRoZSBzY3JpcHQgY29udGV4dCBpcyB0aGUKICAgICAvLyBmcmFtZSdzIG1haW4gY29udGV4dC4g
T3RoZXJ3aXNlLCBpdCBpcyBhIGNvbnRleHQgY3JlYXRlZCBieQpJbmRleDogU291cmNlL1dlYktp
dC9jaHJvbWl1bS9zcmMvRnJhbWVMb2FkZXJDbGllbnRJbXBsLmNwcAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9GcmFtZUxvYWRlckNsaWVudEltcGwuY3BwCShyZXZp
c2lvbiA4Nzk0MikKKysrIFNvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0ZyYW1lTG9hZGVyQ2xp
ZW50SW1wbC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTIwMiw2ICsyMDIsMjQgQEAgYm9vbCBGcmFt
ZUxvYWRlckNsaWVudEltcGw6OmFsbG93SW1hZ2VzKAogICAgIHJldHVybiBlbmFibGVkUGVyU2V0
dGluZ3M7CiB9CiAKK2Jvb2wgRnJhbWVMb2FkZXJDbGllbnRJbXBsOjphbGxvd0Rpc3BsYXlpbmdJ
bnNlY3VyZUNvbnRlbnQoYm9vbCBlbmFibGVkUGVyU2V0dGluZ3MpCit7CisgICAgV2ViVmlld0lt
cGwqIHdlYnZpZXcgPSBtX3dlYkZyYW1lLT52aWV3SW1wbCgpOworICAgIGlmICh3ZWJ2aWV3ICYm
IHdlYnZpZXctPnBlcm1pc3Npb25DbGllbnQoKSkKKyAgICAgICAgcmV0dXJuIHdlYnZpZXctPnBl
cm1pc3Npb25DbGllbnQoKS0+YWxsb3dEaXNwbGF5aW5nSW5zZWN1cmVDb250ZW50KG1fd2ViRnJh
bWUsIGVuYWJsZWRQZXJTZXR0aW5ncyk7CisKKyAgICByZXR1cm4gZW5hYmxlZFBlclNldHRpbmdz
OworfQorCitib29sIEZyYW1lTG9hZGVyQ2xpZW50SW1wbDo6YWxsb3dSdW5uaW5nSW5zZWN1cmVD
b250ZW50KGJvb2wgZW5hYmxlZFBlclNldHRpbmdzLCBTZWN1cml0eU9yaWdpbiogY29udGV4dCwg
Y29uc3QgS1VSTCYgdXJsKQoreworICAgIFdlYlZpZXdJbXBsKiB3ZWJ2aWV3ID0gbV93ZWJGcmFt
ZS0+dmlld0ltcGwoKTsKKyAgICBpZiAod2VidmlldyAmJiB3ZWJ2aWV3LT5wZXJtaXNzaW9uQ2xp
ZW50KCkpCisgICAgICAgIHJldHVybiB3ZWJ2aWV3LT5wZXJtaXNzaW9uQ2xpZW50KCktPmFsbG93
UnVubmluZ0luc2VjdXJlQ29udGVudChtX3dlYkZyYW1lLCBlbmFibGVkUGVyU2V0dGluZ3MsIFdl
YlNlY3VyaXR5T3JpZ2luKGNvbnRleHQpLCBXZWJVUkwodXJsKSk7CisKKyAgICByZXR1cm4gZW5h
YmxlZFBlclNldHRpbmdzOworfQorCiB2b2lkIEZyYW1lTG9hZGVyQ2xpZW50SW1wbDo6ZGlkTm90
QWxsb3dTY3JpcHQoKQogewogICAgIFdlYlZpZXdJbXBsKiB3ZWJ2aWV3ID0gbV93ZWJGcmFtZS0+
dmlld0ltcGwoKTsKSW5kZXg6IFNvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0ZyYW1lTG9hZGVy
Q2xpZW50SW1wbC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0Zy
YW1lTG9hZGVyQ2xpZW50SW1wbC5oCShyZXZpc2lvbiA4Nzk0MikKKysrIFNvdXJjZS9XZWJLaXQv
Y2hyb21pdW0vc3JjL0ZyYW1lTG9hZGVyQ2xpZW50SW1wbC5oCSh3b3JraW5nIGNvcHkpCkBAIC0y
MDYsNiArMjA2LDggQEAgcHVibGljOgogICAgIHZpcnR1YWwgYm9vbCBhbGxvd0phdmFTY3JpcHQo
Ym9vbCBlbmFibGVkUGVyU2V0dGluZ3MpOwogICAgIHZpcnR1YWwgYm9vbCBhbGxvd1BsdWdpbnMo
Ym9vbCBlbmFibGVkUGVyU2V0dGluZ3MpOwogICAgIHZpcnR1YWwgYm9vbCBhbGxvd0ltYWdlcyhi
b29sIGVuYWJsZWRQZXJTZXR0aW5ncyk7CisgICAgdmlydHVhbCBib29sIGFsbG93RGlzcGxheWlu
Z0luc2VjdXJlQ29udGVudChib29sIGVuYWJsZWRQZXJTZXR0aW5ncyk7CisgICAgdmlydHVhbCBi
b29sIGFsbG93UnVubmluZ0luc2VjdXJlQ29udGVudChib29sIGVuYWJsZWRQZXJTZXR0aW5ncywg
V2ViQ29yZTo6U2VjdXJpdHlPcmlnaW4qIGNvbnRleHQsIGNvbnN0IFdlYkNvcmU6OktVUkwmIHVy
bCk7CiAgICAgdmlydHVhbCB2b2lkIGRpZE5vdEFsbG93U2NyaXB0KCk7CiAgICAgdmlydHVhbCB2
b2lkIGRpZE5vdEFsbG93UGx1Z2lucygpOwogCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>96134</attachid>
            <date>2011-06-06 15:08:37 -0700</date>
            <delta_ts>2011-06-06 15:16:53 -0700</delta_ts>
            <desc>Call into permissions client on insecure content.</desc>
            <filename>bug_61946.patch</filename>
            <type>text/plain</type>
            <size>8473</size>
            <attacher name="Thomas Sepez">tsepez</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDg4MTkxKQorKysgU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTkgQEAKKzIwMTEtMDYtMDYgIFRvbSBTZXBl
eiAgPHRzZXBlekBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgQ2hlY2sgd2l0aCBjbGllbnQgZm9yIGluc2VjdXJlIGNvbnRlbnQg
cGVybWlzc2lvbnMuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD02MTk0NgorCisgICAgICAgIE5vIG5ldyB0ZXN0cyBzaW5jZSBjb2RlcGF0aCBjb3ZlcmVk
IGJ5IGV4aXN0aW5nIG9uZXMuCisKKyAgICAgICAgKiBsb2FkZXIvRnJhbWVMb2FkZXIuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6RnJhbWVMb2FkZXI6OmNoZWNrSWZEaXNwbGF5SW5zZWN1cmVDb250
ZW50KToKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lTG9hZGVyOjpjaGVja0lmUnVuSW5zZWN1cmVD
b250ZW50KToKKyAgICAgICAgKiBsb2FkZXIvRnJhbWVMb2FkZXJDbGllbnQuaDoKKyAgICAgICAg
KFdlYkNvcmU6OkZyYW1lTG9hZGVyQ2xpZW50OjphbGxvd0Rpc3BsYXlpbmdJbnNlY3VyZUNvbnRl
bnQpOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVMb2FkZXJDbGllbnQ6OmFsbG93UnVubmluZ0lu
c2VjdXJlQ29udGVudCk6CisKIDIwMTEtMDYtMDYgIExldmkgV2VpbnRyYXViICA8bGV2aXdAY2hy
b21pdW0ub3JnPgogCiAgICAgICAgIFJldmlld2VkIGJ5IEVyaWMgU2VpZGVsLgpJbmRleDogU291
cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyLmNwcAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXIuY3BwCShyZXZpc2lvbiA4Nzk0MikKKysrIFNvdXJj
ZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTExMTUs
MTEgKzExMTUsMTYgQEAgYm9vbCBGcmFtZUxvYWRlcjo6Y2hlY2tJZkRpc3BsYXlJbnNlY3VyZQog
ICAgICAgICByZXR1cm4gdHJ1ZTsKIAogICAgIFNldHRpbmdzKiBzZXR0aW5ncyA9IG1fZnJhbWUt
PnNldHRpbmdzKCk7Ci0gICAgYm9vbCBhbGxvd2VkID0gc2V0dGluZ3MgJiYgc2V0dGluZ3MtPmFs
bG93RGlzcGxheU9mSW5zZWN1cmVDb250ZW50KCk7Ci0gICAgU3RyaW5nIG1lc3NhZ2UgPSAoYWxs
b3dlZCA/IGVtcHR5U3RyaW5nKCkgOiAiW2Jsb2NrZWRdICIpICsgIlRoZSBwYWdlIGF0ICIgKyBt
X2ZyYW1lLT5kb2N1bWVudCgpLT51cmwoKS5zdHJpbmcoKSArICIgZGlzcGxheWVkIGluc2VjdXJl
IGNvbnRlbnQgZnJvbSAiICsgdXJsLnN0cmluZygpICsgIi5cbiI7CisgICAgYm9vbCBhbGxvd2Vk
UGVyU2V0dGluZ3MgPSBzZXR0aW5ncyAmJiBzZXR0aW5ncy0+YWxsb3dEaXNwbGF5T2ZJbnNlY3Vy
ZUNvbnRlbnQoKTsKKyAgICBib29sIGFsbG93ZWQgPSBtX2NsaWVudC0+YWxsb3dEaXNwbGF5aW5n
SW5zZWN1cmVDb250ZW50KGFsbG93ZWRQZXJTZXR0aW5ncyk7CisgICAgU3RyaW5nIG1lc3NhZ2Ug
PSAoYWxsb3dlZCA/IGVtcHR5U3RyaW5nKCkgOiAiW2Jsb2NrZWRdICIpICsgIlRoZSBwYWdlIGF0
ICIgKworICAgICAgICBtX2ZyYW1lLT5kb2N1bWVudCgpLT51cmwoKS5zdHJpbmcoKSArICIgZGlz
cGxheWVkIGluc2VjdXJlIGNvbnRlbnQgZnJvbSAiICsgdXJsLnN0cmluZygpICsgIi5cbiI7Cisg
ICAgICAgIAogICAgIG1fZnJhbWUtPmRvbVdpbmRvdygpLT5jb25zb2xlKCktPmFkZE1lc3NhZ2Uo
SFRNTE1lc3NhZ2VTb3VyY2UsIExvZ01lc3NhZ2VUeXBlLCBXYXJuaW5nTWVzc2FnZUxldmVsLCBt
ZXNzYWdlLCAxLCBTdHJpbmcoKSk7CiAKLSAgICBtX2NsaWVudC0+ZGlkRGlzcGxheUluc2VjdXJl
Q29udGVudCgpOworICAgIGlmIChhbGxvd2VkKQorICAgICAgICBtX2NsaWVudC0+ZGlkRGlzcGxh
eUluc2VjdXJlQ29udGVudCgpOworCiAgICAgcmV0dXJuIGFsbG93ZWQ7CiB9CiAKQEAgLTExMjks
MTEgKzExMzQsMTYgQEAgYm9vbCBGcmFtZUxvYWRlcjo6Y2hlY2tJZlJ1bkluc2VjdXJlQ29udAog
ICAgICAgICByZXR1cm4gdHJ1ZTsKIAogICAgIFNldHRpbmdzKiBzZXR0aW5ncyA9IG1fZnJhbWUt
PnNldHRpbmdzKCk7Ci0gICAgYm9vbCBhbGxvd2VkID0gc2V0dGluZ3MgJiYgc2V0dGluZ3MtPmFs
bG93UnVubmluZ09mSW5zZWN1cmVDb250ZW50KCk7Ci0gICAgU3RyaW5nIG1lc3NhZ2UgPSAoYWxs
b3dlZCA/IGVtcHR5U3RyaW5nKCkgOiAiW2Jsb2NrZWRdICIpICsgIlRoZSBwYWdlIGF0ICIgKyBt
X2ZyYW1lLT5kb2N1bWVudCgpLT51cmwoKS5zdHJpbmcoKSArICIgcmFuIGluc2VjdXJlIGNvbnRl
bnQgZnJvbSAiICsgdXJsLnN0cmluZygpICsgIi5cbiI7CisgICAgYm9vbCBhbGxvd2VkUGVyU2V0
dGluZ3MgPSBzZXR0aW5ncyAmJiBzZXR0aW5ncy0+YWxsb3dSdW5uaW5nT2ZJbnNlY3VyZUNvbnRl
bnQoKTsKKyAgICBib29sIGFsbG93ZWQgPSBtX2NsaWVudC0+YWxsb3dSdW5uaW5nSW5zZWN1cmVD
b250ZW50KGFsbG93ZWRQZXJTZXR0aW5ncywgY29udGV4dCwgdXJsKTsKKyAgICBTdHJpbmcgbWVz
c2FnZSA9IChhbGxvd2VkID8gZW1wdHlTdHJpbmcoKSA6ICJbYmxvY2tlZF0gIikgKyAiVGhlIHBh
Z2UgYXQgIiArCisgICAgICAgIG1fZnJhbWUtPmRvY3VtZW50KCktPnVybCgpLnN0cmluZygpICsg
IiByYW4gaW5zZWN1cmUgY29udGVudCBmcm9tICIgKyB1cmwuc3RyaW5nKCkgKyAiLlxuIjsKKyAg
ICAgICAKICAgICBtX2ZyYW1lLT5kb21XaW5kb3coKS0+Y29uc29sZSgpLT5hZGRNZXNzYWdlKEhU
TUxNZXNzYWdlU291cmNlLCBMb2dNZXNzYWdlVHlwZSwgV2FybmluZ01lc3NhZ2VMZXZlbCwgbWVz
c2FnZSwgMSwgU3RyaW5nKCkpOwogCi0gICAgbV9jbGllbnQtPmRpZFJ1bkluc2VjdXJlQ29udGVu
dChjb250ZXh0LCB1cmwpOworICAgIGlmIChhbGxvd2VkKQorICAgICAgICBtX2NsaWVudC0+ZGlk
UnVuSW5zZWN1cmVDb250ZW50KGNvbnRleHQsIHVybCk7CisKICAgICByZXR1cm4gYWxsb3dlZDsK
IH0KIApJbmRleDogU291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyQ2xpZW50LmgKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyQ2xpZW50LmgJKHJl
dmlzaW9uIDg3OTQyKQorKysgU291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyQ2xpZW50
LmgJKHdvcmtpbmcgY29weSkKQEAgLTI5OCw3ICsyOTgsOSBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7
CiAgICAgICAgIHZpcnR1YWwgYm9vbCBhbGxvd0phdmFTY3JpcHQoYm9vbCBlbmFibGVkUGVyU2V0
dGluZ3MpIHsgcmV0dXJuIGVuYWJsZWRQZXJTZXR0aW5nczsgfQogICAgICAgICB2aXJ0dWFsIGJv
b2wgYWxsb3dQbHVnaW5zKGJvb2wgZW5hYmxlZFBlclNldHRpbmdzKSB7IHJldHVybiBlbmFibGVk
UGVyU2V0dGluZ3M7IH0KICAgICAgICAgdmlydHVhbCBib29sIGFsbG93SW1hZ2VzKGJvb2wgZW5h
YmxlZFBlclNldHRpbmdzKSB7IHJldHVybiBlbmFibGVkUGVyU2V0dGluZ3M7IH0KLQorICAgICAg
ICB2aXJ0dWFsIGJvb2wgYWxsb3dEaXNwbGF5aW5nSW5zZWN1cmVDb250ZW50KGJvb2wgZW5hYmxl
ZFBlclNldHRpbmdzKSB7IHJldHVybiBlbmFibGVkUGVyU2V0dGluZ3M7IH0KKyAgICAgICAgdmly
dHVhbCBib29sIGFsbG93UnVubmluZ0luc2VjdXJlQ29udGVudChib29sIGVuYWJsZWRQZXJTZXR0
aW5ncywgU2VjdXJpdHlPcmlnaW4qLCBjb25zdCBLVVJMJikgeyByZXR1cm4gZW5hYmxlZFBlclNl
dHRpbmdzOyB9CisgICAgICAgIAogICAgICAgICAvLyBUaGlzIGNhbGxiYWNrIG5vdGlmaWVzIHRo
ZSBjbGllbnQgdGhhdCB0aGUgZnJhbWUgd2FzIGFib3V0IHRvIHJ1bgogICAgICAgICAvLyBKYXZh
U2NyaXB0IGJ1dCBkaWQgbm90IGJlY2F1c2UgYWxsb3dKYXZhU2NyaXB0IHJldHVybmVkIGZhbHNl
LiBXZQogICAgICAgICAvLyBoYXZlIGEgc2VwYXJhdGUgY2FsbGJhY2sgaGVyZSBiZWNhdXNlIHRo
ZXJlIGFyZSBhIG51bWJlciBvZiBwbGFjZXMKSW5kZXg6IFNvdXJjZS9XZWJLaXQvY2hyb21pdW0v
Q2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9n
CShyZXZpc2lvbiA4ODE5MSkKKysrIFNvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCSh3
b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTggQEAKKzIwMTEtMDYtMDYgIFRvbSBTZXBleiAgPHRz
ZXBlekBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgQ2hlY2sgd2l0aCBjbGllbnQgYWJvdXQgcGVybWlzc2lvbnMgZm9yIGluc2Vj
dXJlIGNvbnRlbnQuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD02MTk0NgorICAgICAgICAKKyAgICAgICAgKiBwdWJsaWMvV2ViUGVybWlzc2lvbkNsaWVu
dC5oOgorICAgICAgICAoV2ViS2l0OjpXZWJQZXJtaXNzaW9uQ2xpZW50OjphbGxvd0Rpc3BsYXlp
bmdJbnNlY3VyZUNvbnRlbnQpOgorICAgICAgICAoV2ViS2l0OjpXZWJQZXJtaXNzaW9uQ2xpZW50
OjphbGxvd1J1bm5pbmdJbnNlY3VyZUNvbnRlbnQpOgorICAgICAgICAqIHNyYy9GcmFtZUxvYWRl
ckNsaWVudEltcGwuY3BwOgorICAgICAgICAoV2ViS2l0OjpGcmFtZUxvYWRlckNsaWVudEltcGw6
OmFsbG93RGlzcGxheWluZ0luc2VjdXJlQ29udGVudCk6CisgICAgICAgIChXZWJLaXQ6OkZyYW1l
TG9hZGVyQ2xpZW50SW1wbDo6YWxsb3dSdW5uaW5nSW5zZWN1cmVDb250ZW50KToKKyAgICAgICAg
KiBzcmMvRnJhbWVMb2FkZXJDbGllbnRJbXBsLmg6CisKIDIwMTEtMDYtMDYgIE5pY28gV2ViZXIg
IDx0aGFraXNAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFJldmlld2VkIGJ5IEphbWVzIFJvYmlu
c29uLgpJbmRleDogU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViUGVybWlzc2lvbkNs
aWVudC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYlBl
cm1pc3Npb25DbGllbnQuaAkocmV2aXNpb24gODc5NDIpCisrKyBTb3VyY2UvV2ViS2l0L2Nocm9t
aXVtL3B1YmxpYy9XZWJQZXJtaXNzaW9uQ2xpZW50LmgJKHdvcmtpbmcgY29weSkKQEAgLTM2LDYg
KzM2LDcgQEAgbmFtZXNwYWNlIFdlYktpdCB7CiBjbGFzcyBXZWJGcmFtZTsKIGNsYXNzIFdlYlNl
Y3VyaXR5T3JpZ2luOwogY2xhc3MgV2ViU3RyaW5nOworY2xhc3MgV2ViVVJMOwogCiBjbGFzcyBX
ZWJQZXJtaXNzaW9uQ2xpZW50IHsKIHB1YmxpYzoKQEAgLTU3LDYgKzU4LDEyIEBAIHB1YmxpYzoK
ICAgICAvLyBDb250cm9scyB3aGV0aGVyIHNjcmlwdHMgYXJlIGFsbG93ZWQgdG8gZXhlY3V0ZSBm
b3IgdGhpcyBmcmFtZS4KICAgICB2aXJ0dWFsIGJvb2wgYWxsb3dTY3JpcHQoV2ViRnJhbWUqLCBi
b29sIGVuYWJsZWRQZXJTZXR0aW5ncykgeyByZXR1cm4gZW5hYmxlZFBlclNldHRpbmdzOyB9CiAK
KyAgICAvLyBDb250cm9scyB3aGV0aGVyIGluc2VjcnVyZSBjb250ZW50IGlzIGFsbG93ZWQgdG8g
ZGlzcGxheSBmb3IgdGhpcyBmcmFtZS4KKyAgICB2aXJ0dWFsIGJvb2wgYWxsb3dEaXNwbGF5aW5n
SW5zZWN1cmVDb250ZW50KFdlYkZyYW1lKiwgYm9vbCBlbmFibGVkUGVyU2V0dGluZ3MpIHsgcmV0
dXJuIGVuYWJsZWRQZXJTZXR0aW5nczsgfQorCisgICAgLy8gQ29udHJvbHMgd2hldGhlciBpbnNl
Y3J1cmUgc2NyaXB0cyBhcmUgYWxsb3dlZCB0byBleGVjdXRlIGZvciB0aGlzIGZyYW1lLgorICAg
IHZpcnR1YWwgYm9vbCBhbGxvd1J1bm5pbmdJbnNlY3VyZUNvbnRlbnQoV2ViRnJhbWUqLCBib29s
IGVuYWJsZWRQZXJTZXR0aW5ncywgY29uc3QgV2ViU2VjdXJpdHlPcmlnaW4mLCBjb25zdCBXZWJV
UkwmKSB7IHJldHVybiBlbmFibGVkUGVyU2V0dGluZ3M7IH0KKwogICAgIC8vIENvbnRyb2xzIHdo
ZXRoZXIgdGhlIGdpdmVuIHNjcmlwdCBleHRlbnNpb24gc2hvdWxkIHJ1biBpbiBhIG5ldyBzY3Jp
cHQKICAgICAvLyBjb250ZXh0IGluIHRoaXMgZnJhbWUuIElmIGV4dGVuc2lvbkdyb3VwIGlzIDAs
IHRoZSBzY3JpcHQgY29udGV4dCBpcyB0aGUKICAgICAvLyBmcmFtZSdzIG1haW4gY29udGV4dC4g
T3RoZXJ3aXNlLCBpdCBpcyBhIGNvbnRleHQgY3JlYXRlZCBieQpJbmRleDogU291cmNlL1dlYktp
dC9jaHJvbWl1bS9zcmMvRnJhbWVMb2FkZXJDbGllbnRJbXBsLmNwcAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9GcmFtZUxvYWRlckNsaWVudEltcGwuY3BwCShyZXZp
c2lvbiA4Nzk0MikKKysrIFNvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0ZyYW1lTG9hZGVyQ2xp
ZW50SW1wbC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTIwMiw2ICsyMDIsMjQgQEAgYm9vbCBGcmFt
ZUxvYWRlckNsaWVudEltcGw6OmFsbG93SW1hZ2VzKAogICAgIHJldHVybiBlbmFibGVkUGVyU2V0
dGluZ3M7CiB9CiAKK2Jvb2wgRnJhbWVMb2FkZXJDbGllbnRJbXBsOjphbGxvd0Rpc3BsYXlpbmdJ
bnNlY3VyZUNvbnRlbnQoYm9vbCBlbmFibGVkUGVyU2V0dGluZ3MpCit7CisgICAgV2ViVmlld0lt
cGwqIHdlYnZpZXcgPSBtX3dlYkZyYW1lLT52aWV3SW1wbCgpOworICAgIGlmICh3ZWJ2aWV3ICYm
IHdlYnZpZXctPnBlcm1pc3Npb25DbGllbnQoKSkKKyAgICAgICAgcmV0dXJuIHdlYnZpZXctPnBl
cm1pc3Npb25DbGllbnQoKS0+YWxsb3dEaXNwbGF5aW5nSW5zZWN1cmVDb250ZW50KG1fd2ViRnJh
bWUsIGVuYWJsZWRQZXJTZXR0aW5ncyk7CisKKyAgICByZXR1cm4gZW5hYmxlZFBlclNldHRpbmdz
OworfQorCitib29sIEZyYW1lTG9hZGVyQ2xpZW50SW1wbDo6YWxsb3dSdW5uaW5nSW5zZWN1cmVD
b250ZW50KGJvb2wgZW5hYmxlZFBlclNldHRpbmdzLCBTZWN1cml0eU9yaWdpbiogY29udGV4dCwg
Y29uc3QgS1VSTCYgdXJsKQoreworICAgIFdlYlZpZXdJbXBsKiB3ZWJ2aWV3ID0gbV93ZWJGcmFt
ZS0+dmlld0ltcGwoKTsKKyAgICBpZiAod2VidmlldyAmJiB3ZWJ2aWV3LT5wZXJtaXNzaW9uQ2xp
ZW50KCkpCisgICAgICAgIHJldHVybiB3ZWJ2aWV3LT5wZXJtaXNzaW9uQ2xpZW50KCktPmFsbG93
UnVubmluZ0luc2VjdXJlQ29udGVudChtX3dlYkZyYW1lLCBlbmFibGVkUGVyU2V0dGluZ3MsIFdl
YlNlY3VyaXR5T3JpZ2luKGNvbnRleHQpLCBXZWJVUkwodXJsKSk7CisKKyAgICByZXR1cm4gZW5h
YmxlZFBlclNldHRpbmdzOworfQorCiB2b2lkIEZyYW1lTG9hZGVyQ2xpZW50SW1wbDo6ZGlkTm90
QWxsb3dTY3JpcHQoKQogewogICAgIFdlYlZpZXdJbXBsKiB3ZWJ2aWV3ID0gbV93ZWJGcmFtZS0+
dmlld0ltcGwoKTsKSW5kZXg6IFNvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0ZyYW1lTG9hZGVy
Q2xpZW50SW1wbC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0Zy
YW1lTG9hZGVyQ2xpZW50SW1wbC5oCShyZXZpc2lvbiA4Nzk0MikKKysrIFNvdXJjZS9XZWJLaXQv
Y2hyb21pdW0vc3JjL0ZyYW1lTG9hZGVyQ2xpZW50SW1wbC5oCSh3b3JraW5nIGNvcHkpCkBAIC0y
MDYsNiArMjA2LDggQEAgcHVibGljOgogICAgIHZpcnR1YWwgYm9vbCBhbGxvd0phdmFTY3JpcHQo
Ym9vbCBlbmFibGVkUGVyU2V0dGluZ3MpOwogICAgIHZpcnR1YWwgYm9vbCBhbGxvd1BsdWdpbnMo
Ym9vbCBlbmFibGVkUGVyU2V0dGluZ3MpOwogICAgIHZpcnR1YWwgYm9vbCBhbGxvd0ltYWdlcyhi
b29sIGVuYWJsZWRQZXJTZXR0aW5ncyk7CisgICAgdmlydHVhbCBib29sIGFsbG93RGlzcGxheWlu
Z0luc2VjdXJlQ29udGVudChib29sIGVuYWJsZWRQZXJTZXR0aW5ncyk7CisgICAgdmlydHVhbCBi
b29sIGFsbG93UnVubmluZ0luc2VjdXJlQ29udGVudChib29sIGVuYWJsZWRQZXJTZXR0aW5ncywg
V2ViQ29yZTo6U2VjdXJpdHlPcmlnaW4qIGNvbnRleHQsIGNvbnN0IFdlYkNvcmU6OktVUkwmIGlu
c2VjdXJlX3VybCk7CiAgICAgdmlydHVhbCB2b2lkIGRpZE5vdEFsbG93U2NyaXB0KCk7CiAgICAg
dmlydHVhbCB2b2lkIGRpZE5vdEFsbG93UGx1Z2lucygpOwogCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>96137</attachid>
            <date>2011-06-06 15:16:53 -0700</date>
            <delta_ts>2011-06-08 11:53:24 -0700</delta_ts>
            <desc>Call into permissions client on insecure content.</desc>
            <filename>bug_61946.patch</filename>
            <type>text/plain</type>
            <size>8460</size>
            <attacher name="Thomas Sepez">tsepez</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDg4MTkxKQorKysgU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTkgQEAKKzIwMTEtMDYtMDYgIFRvbSBTZXBl
eiAgPHRzZXBlekBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgQ2hlY2sgd2l0aCBjbGllbnQgZm9yIGluc2VjdXJlIGNvbnRlbnQg
cGVybWlzc2lvbnMuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD02MTk0NgorCisgICAgICAgIE5vIG5ldyB0ZXN0cyBzaW5jZSBjb2RlcGF0aCBjb3ZlcmVk
IGJ5IGV4aXN0aW5nIG9uZXMuCisKKyAgICAgICAgKiBsb2FkZXIvRnJhbWVMb2FkZXIuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6RnJhbWVMb2FkZXI6OmNoZWNrSWZEaXNwbGF5SW5zZWN1cmVDb250
ZW50KToKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lTG9hZGVyOjpjaGVja0lmUnVuSW5zZWN1cmVD
b250ZW50KToKKyAgICAgICAgKiBsb2FkZXIvRnJhbWVMb2FkZXJDbGllbnQuaDoKKyAgICAgICAg
KFdlYkNvcmU6OkZyYW1lTG9hZGVyQ2xpZW50OjphbGxvd0Rpc3BsYXlpbmdJbnNlY3VyZUNvbnRl
bnQpOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVMb2FkZXJDbGllbnQ6OmFsbG93UnVubmluZ0lu
c2VjdXJlQ29udGVudCk6CisKIDIwMTEtMDYtMDYgIExldmkgV2VpbnRyYXViICA8bGV2aXdAY2hy
b21pdW0ub3JnPgogCiAgICAgICAgIFJldmlld2VkIGJ5IEVyaWMgU2VpZGVsLgpJbmRleDogU291
cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyLmNwcAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXIuY3BwCShyZXZpc2lvbiA4Nzk0MikKKysrIFNvdXJj
ZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTExMTUs
MTEgKzExMTUsMTYgQEAgYm9vbCBGcmFtZUxvYWRlcjo6Y2hlY2tJZkRpc3BsYXlJbnNlY3VyZQog
ICAgICAgICByZXR1cm4gdHJ1ZTsKIAogICAgIFNldHRpbmdzKiBzZXR0aW5ncyA9IG1fZnJhbWUt
PnNldHRpbmdzKCk7Ci0gICAgYm9vbCBhbGxvd2VkID0gc2V0dGluZ3MgJiYgc2V0dGluZ3MtPmFs
bG93RGlzcGxheU9mSW5zZWN1cmVDb250ZW50KCk7Ci0gICAgU3RyaW5nIG1lc3NhZ2UgPSAoYWxs
b3dlZCA/IGVtcHR5U3RyaW5nKCkgOiAiW2Jsb2NrZWRdICIpICsgIlRoZSBwYWdlIGF0ICIgKyBt
X2ZyYW1lLT5kb2N1bWVudCgpLT51cmwoKS5zdHJpbmcoKSArICIgZGlzcGxheWVkIGluc2VjdXJl
IGNvbnRlbnQgZnJvbSAiICsgdXJsLnN0cmluZygpICsgIi5cbiI7CisgICAgYm9vbCBhbGxvd2Vk
UGVyU2V0dGluZ3MgPSBzZXR0aW5ncyAmJiBzZXR0aW5ncy0+YWxsb3dEaXNwbGF5T2ZJbnNlY3Vy
ZUNvbnRlbnQoKTsKKyAgICBib29sIGFsbG93ZWQgPSBtX2NsaWVudC0+YWxsb3dEaXNwbGF5aW5n
SW5zZWN1cmVDb250ZW50KGFsbG93ZWRQZXJTZXR0aW5ncyk7CisgICAgU3RyaW5nIG1lc3NhZ2Ug
PSAoYWxsb3dlZCA/IGVtcHR5U3RyaW5nKCkgOiAiW2Jsb2NrZWRdICIpICsgIlRoZSBwYWdlIGF0
ICIgKworICAgICAgICBtX2ZyYW1lLT5kb2N1bWVudCgpLT51cmwoKS5zdHJpbmcoKSArICIgZGlz
cGxheWVkIGluc2VjdXJlIGNvbnRlbnQgZnJvbSAiICsgdXJsLnN0cmluZygpICsgIi5cbiI7Cisg
ICAgICAgIAogICAgIG1fZnJhbWUtPmRvbVdpbmRvdygpLT5jb25zb2xlKCktPmFkZE1lc3NhZ2Uo
SFRNTE1lc3NhZ2VTb3VyY2UsIExvZ01lc3NhZ2VUeXBlLCBXYXJuaW5nTWVzc2FnZUxldmVsLCBt
ZXNzYWdlLCAxLCBTdHJpbmcoKSk7CiAKLSAgICBtX2NsaWVudC0+ZGlkRGlzcGxheUluc2VjdXJl
Q29udGVudCgpOworICAgIGlmIChhbGxvd2VkKQorICAgICAgICBtX2NsaWVudC0+ZGlkRGlzcGxh
eUluc2VjdXJlQ29udGVudCgpOworCiAgICAgcmV0dXJuIGFsbG93ZWQ7CiB9CiAKQEAgLTExMjks
MTEgKzExMzQsMTYgQEAgYm9vbCBGcmFtZUxvYWRlcjo6Y2hlY2tJZlJ1bkluc2VjdXJlQ29udAog
ICAgICAgICByZXR1cm4gdHJ1ZTsKIAogICAgIFNldHRpbmdzKiBzZXR0aW5ncyA9IG1fZnJhbWUt
PnNldHRpbmdzKCk7Ci0gICAgYm9vbCBhbGxvd2VkID0gc2V0dGluZ3MgJiYgc2V0dGluZ3MtPmFs
bG93UnVubmluZ09mSW5zZWN1cmVDb250ZW50KCk7Ci0gICAgU3RyaW5nIG1lc3NhZ2UgPSAoYWxs
b3dlZCA/IGVtcHR5U3RyaW5nKCkgOiAiW2Jsb2NrZWRdICIpICsgIlRoZSBwYWdlIGF0ICIgKyBt
X2ZyYW1lLT5kb2N1bWVudCgpLT51cmwoKS5zdHJpbmcoKSArICIgcmFuIGluc2VjdXJlIGNvbnRl
bnQgZnJvbSAiICsgdXJsLnN0cmluZygpICsgIi5cbiI7CisgICAgYm9vbCBhbGxvd2VkUGVyU2V0
dGluZ3MgPSBzZXR0aW5ncyAmJiBzZXR0aW5ncy0+YWxsb3dSdW5uaW5nT2ZJbnNlY3VyZUNvbnRl
bnQoKTsKKyAgICBib29sIGFsbG93ZWQgPSBtX2NsaWVudC0+YWxsb3dSdW5uaW5nSW5zZWN1cmVD
b250ZW50KGFsbG93ZWRQZXJTZXR0aW5ncywgY29udGV4dCwgdXJsKTsKKyAgICBTdHJpbmcgbWVz
c2FnZSA9IChhbGxvd2VkID8gZW1wdHlTdHJpbmcoKSA6ICJbYmxvY2tlZF0gIikgKyAiVGhlIHBh
Z2UgYXQgIiArCisgICAgICAgIG1fZnJhbWUtPmRvY3VtZW50KCktPnVybCgpLnN0cmluZygpICsg
IiByYW4gaW5zZWN1cmUgY29udGVudCBmcm9tICIgKyB1cmwuc3RyaW5nKCkgKyAiLlxuIjsKKyAg
ICAgICAKICAgICBtX2ZyYW1lLT5kb21XaW5kb3coKS0+Y29uc29sZSgpLT5hZGRNZXNzYWdlKEhU
TUxNZXNzYWdlU291cmNlLCBMb2dNZXNzYWdlVHlwZSwgV2FybmluZ01lc3NhZ2VMZXZlbCwgbWVz
c2FnZSwgMSwgU3RyaW5nKCkpOwogCi0gICAgbV9jbGllbnQtPmRpZFJ1bkluc2VjdXJlQ29udGVu
dChjb250ZXh0LCB1cmwpOworICAgIGlmIChhbGxvd2VkKQorICAgICAgICBtX2NsaWVudC0+ZGlk
UnVuSW5zZWN1cmVDb250ZW50KGNvbnRleHQsIHVybCk7CisKICAgICByZXR1cm4gYWxsb3dlZDsK
IH0KIApJbmRleDogU291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyQ2xpZW50LmgKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyQ2xpZW50LmgJKHJl
dmlzaW9uIDg3OTQyKQorKysgU291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyQ2xpZW50
LmgJKHdvcmtpbmcgY29weSkKQEAgLTI5OCw3ICsyOTgsOSBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7
CiAgICAgICAgIHZpcnR1YWwgYm9vbCBhbGxvd0phdmFTY3JpcHQoYm9vbCBlbmFibGVkUGVyU2V0
dGluZ3MpIHsgcmV0dXJuIGVuYWJsZWRQZXJTZXR0aW5nczsgfQogICAgICAgICB2aXJ0dWFsIGJv
b2wgYWxsb3dQbHVnaW5zKGJvb2wgZW5hYmxlZFBlclNldHRpbmdzKSB7IHJldHVybiBlbmFibGVk
UGVyU2V0dGluZ3M7IH0KICAgICAgICAgdmlydHVhbCBib29sIGFsbG93SW1hZ2VzKGJvb2wgZW5h
YmxlZFBlclNldHRpbmdzKSB7IHJldHVybiBlbmFibGVkUGVyU2V0dGluZ3M7IH0KLQorICAgICAg
ICB2aXJ0dWFsIGJvb2wgYWxsb3dEaXNwbGF5aW5nSW5zZWN1cmVDb250ZW50KGJvb2wgZW5hYmxl
ZFBlclNldHRpbmdzKSB7IHJldHVybiBlbmFibGVkUGVyU2V0dGluZ3M7IH0KKyAgICAgICAgdmly
dHVhbCBib29sIGFsbG93UnVubmluZ0luc2VjdXJlQ29udGVudChib29sIGVuYWJsZWRQZXJTZXR0
aW5ncywgU2VjdXJpdHlPcmlnaW4qLCBjb25zdCBLVVJMJikgeyByZXR1cm4gZW5hYmxlZFBlclNl
dHRpbmdzOyB9CisgICAgICAgIAogICAgICAgICAvLyBUaGlzIGNhbGxiYWNrIG5vdGlmaWVzIHRo
ZSBjbGllbnQgdGhhdCB0aGUgZnJhbWUgd2FzIGFib3V0IHRvIHJ1bgogICAgICAgICAvLyBKYXZh
U2NyaXB0IGJ1dCBkaWQgbm90IGJlY2F1c2UgYWxsb3dKYXZhU2NyaXB0IHJldHVybmVkIGZhbHNl
LiBXZQogICAgICAgICAvLyBoYXZlIGEgc2VwYXJhdGUgY2FsbGJhY2sgaGVyZSBiZWNhdXNlIHRo
ZXJlIGFyZSBhIG51bWJlciBvZiBwbGFjZXMKSW5kZXg6IFNvdXJjZS9XZWJLaXQvY2hyb21pdW0v
Q2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9n
CShyZXZpc2lvbiA4ODE5MSkKKysrIFNvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCSh3
b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTggQEAKKzIwMTEtMDYtMDYgIFRvbSBTZXBleiAgPHRz
ZXBlekBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgQ2hlY2sgd2l0aCBjbGllbnQgYWJvdXQgcGVybWlzc2lvbnMgZm9yIGluc2Vj
dXJlIGNvbnRlbnQuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD02MTk0NgorICAgICAgICAKKyAgICAgICAgKiBwdWJsaWMvV2ViUGVybWlzc2lvbkNsaWVu
dC5oOgorICAgICAgICAoV2ViS2l0OjpXZWJQZXJtaXNzaW9uQ2xpZW50OjphbGxvd0Rpc3BsYXlp
bmdJbnNlY3VyZUNvbnRlbnQpOgorICAgICAgICAoV2ViS2l0OjpXZWJQZXJtaXNzaW9uQ2xpZW50
OjphbGxvd1J1bm5pbmdJbnNlY3VyZUNvbnRlbnQpOgorICAgICAgICAqIHNyYy9GcmFtZUxvYWRl
ckNsaWVudEltcGwuY3BwOgorICAgICAgICAoV2ViS2l0OjpGcmFtZUxvYWRlckNsaWVudEltcGw6
OmFsbG93RGlzcGxheWluZ0luc2VjdXJlQ29udGVudCk6CisgICAgICAgIChXZWJLaXQ6OkZyYW1l
TG9hZGVyQ2xpZW50SW1wbDo6YWxsb3dSdW5uaW5nSW5zZWN1cmVDb250ZW50KToKKyAgICAgICAg
KiBzcmMvRnJhbWVMb2FkZXJDbGllbnRJbXBsLmg6CisKIDIwMTEtMDYtMDYgIE5pY28gV2ViZXIg
IDx0aGFraXNAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFJldmlld2VkIGJ5IEphbWVzIFJvYmlu
c29uLgpJbmRleDogU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViUGVybWlzc2lvbkNs
aWVudC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYlBl
cm1pc3Npb25DbGllbnQuaAkocmV2aXNpb24gODc5NDIpCisrKyBTb3VyY2UvV2ViS2l0L2Nocm9t
aXVtL3B1YmxpYy9XZWJQZXJtaXNzaW9uQ2xpZW50LmgJKHdvcmtpbmcgY29weSkKQEAgLTM2LDYg
KzM2LDcgQEAgbmFtZXNwYWNlIFdlYktpdCB7CiBjbGFzcyBXZWJGcmFtZTsKIGNsYXNzIFdlYlNl
Y3VyaXR5T3JpZ2luOwogY2xhc3MgV2ViU3RyaW5nOworY2xhc3MgV2ViVVJMOwogCiBjbGFzcyBX
ZWJQZXJtaXNzaW9uQ2xpZW50IHsKIHB1YmxpYzoKQEAgLTU3LDYgKzU4LDEyIEBAIHB1YmxpYzoK
ICAgICAvLyBDb250cm9scyB3aGV0aGVyIHNjcmlwdHMgYXJlIGFsbG93ZWQgdG8gZXhlY3V0ZSBm
b3IgdGhpcyBmcmFtZS4KICAgICB2aXJ0dWFsIGJvb2wgYWxsb3dTY3JpcHQoV2ViRnJhbWUqLCBi
b29sIGVuYWJsZWRQZXJTZXR0aW5ncykgeyByZXR1cm4gZW5hYmxlZFBlclNldHRpbmdzOyB9CiAK
KyAgICAvLyBDb250cm9scyB3aGV0aGVyIGluc2VjcnVyZSBjb250ZW50IGlzIGFsbG93ZWQgdG8g
ZGlzcGxheSBmb3IgdGhpcyBmcmFtZS4KKyAgICB2aXJ0dWFsIGJvb2wgYWxsb3dEaXNwbGF5aW5n
SW5zZWN1cmVDb250ZW50KFdlYkZyYW1lKiwgYm9vbCBlbmFibGVkUGVyU2V0dGluZ3MpIHsgcmV0
dXJuIGVuYWJsZWRQZXJTZXR0aW5nczsgfQorCisgICAgLy8gQ29udHJvbHMgd2hldGhlciBpbnNl
Y3J1cmUgc2NyaXB0cyBhcmUgYWxsb3dlZCB0byBleGVjdXRlIGZvciB0aGlzIGZyYW1lLgorICAg
IHZpcnR1YWwgYm9vbCBhbGxvd1J1bm5pbmdJbnNlY3VyZUNvbnRlbnQoV2ViRnJhbWUqLCBib29s
IGVuYWJsZWRQZXJTZXR0aW5ncywgY29uc3QgV2ViU2VjdXJpdHlPcmlnaW4mLCBjb25zdCBXZWJV
UkwmKSB7IHJldHVybiBlbmFibGVkUGVyU2V0dGluZ3M7IH0KKwogICAgIC8vIENvbnRyb2xzIHdo
ZXRoZXIgdGhlIGdpdmVuIHNjcmlwdCBleHRlbnNpb24gc2hvdWxkIHJ1biBpbiBhIG5ldyBzY3Jp
cHQKICAgICAvLyBjb250ZXh0IGluIHRoaXMgZnJhbWUuIElmIGV4dGVuc2lvbkdyb3VwIGlzIDAs
IHRoZSBzY3JpcHQgY29udGV4dCBpcyB0aGUKICAgICAvLyBmcmFtZSdzIG1haW4gY29udGV4dC4g
T3RoZXJ3aXNlLCBpdCBpcyBhIGNvbnRleHQgY3JlYXRlZCBieQpJbmRleDogU291cmNlL1dlYktp
dC9jaHJvbWl1bS9zcmMvRnJhbWVMb2FkZXJDbGllbnRJbXBsLmNwcAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9GcmFtZUxvYWRlckNsaWVudEltcGwuY3BwCShyZXZp
c2lvbiA4Nzk0MikKKysrIFNvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0ZyYW1lTG9hZGVyQ2xp
ZW50SW1wbC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTIwMiw2ICsyMDIsMjQgQEAgYm9vbCBGcmFt
ZUxvYWRlckNsaWVudEltcGw6OmFsbG93SW1hZ2VzKAogICAgIHJldHVybiBlbmFibGVkUGVyU2V0
dGluZ3M7CiB9CiAKK2Jvb2wgRnJhbWVMb2FkZXJDbGllbnRJbXBsOjphbGxvd0Rpc3BsYXlpbmdJ
bnNlY3VyZUNvbnRlbnQoYm9vbCBlbmFibGVkUGVyU2V0dGluZ3MpCit7CisgICAgV2ViVmlld0lt
cGwqIHdlYnZpZXcgPSBtX3dlYkZyYW1lLT52aWV3SW1wbCgpOworICAgIGlmICh3ZWJ2aWV3ICYm
IHdlYnZpZXctPnBlcm1pc3Npb25DbGllbnQoKSkKKyAgICAgICAgcmV0dXJuIHdlYnZpZXctPnBl
cm1pc3Npb25DbGllbnQoKS0+YWxsb3dEaXNwbGF5aW5nSW5zZWN1cmVDb250ZW50KG1fd2ViRnJh
bWUsIGVuYWJsZWRQZXJTZXR0aW5ncyk7CisKKyAgICByZXR1cm4gZW5hYmxlZFBlclNldHRpbmdz
OworfQorCitib29sIEZyYW1lTG9hZGVyQ2xpZW50SW1wbDo6YWxsb3dSdW5uaW5nSW5zZWN1cmVD
b250ZW50KGJvb2wgZW5hYmxlZFBlclNldHRpbmdzLCBTZWN1cml0eU9yaWdpbiogY29udGV4dCwg
Y29uc3QgS1VSTCYgdXJsKQoreworICAgIFdlYlZpZXdJbXBsKiB3ZWJ2aWV3ID0gbV93ZWJGcmFt
ZS0+dmlld0ltcGwoKTsKKyAgICBpZiAod2VidmlldyAmJiB3ZWJ2aWV3LT5wZXJtaXNzaW9uQ2xp
ZW50KCkpCisgICAgICAgIHJldHVybiB3ZWJ2aWV3LT5wZXJtaXNzaW9uQ2xpZW50KCktPmFsbG93
UnVubmluZ0luc2VjdXJlQ29udGVudChtX3dlYkZyYW1lLCBlbmFibGVkUGVyU2V0dGluZ3MsIFdl
YlNlY3VyaXR5T3JpZ2luKGNvbnRleHQpLCBXZWJVUkwodXJsKSk7CisKKyAgICByZXR1cm4gZW5h
YmxlZFBlclNldHRpbmdzOworfQorCiB2b2lkIEZyYW1lTG9hZGVyQ2xpZW50SW1wbDo6ZGlkTm90
QWxsb3dTY3JpcHQoKQogewogICAgIFdlYlZpZXdJbXBsKiB3ZWJ2aWV3ID0gbV93ZWJGcmFtZS0+
dmlld0ltcGwoKTsKSW5kZXg6IFNvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0ZyYW1lTG9hZGVy
Q2xpZW50SW1wbC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0Zy
YW1lTG9hZGVyQ2xpZW50SW1wbC5oCShyZXZpc2lvbiA4Nzk0MikKKysrIFNvdXJjZS9XZWJLaXQv
Y2hyb21pdW0vc3JjL0ZyYW1lTG9hZGVyQ2xpZW50SW1wbC5oCSh3b3JraW5nIGNvcHkpCkBAIC0y
MDYsNiArMjA2LDggQEAgcHVibGljOgogICAgIHZpcnR1YWwgYm9vbCBhbGxvd0phdmFTY3JpcHQo
Ym9vbCBlbmFibGVkUGVyU2V0dGluZ3MpOwogICAgIHZpcnR1YWwgYm9vbCBhbGxvd1BsdWdpbnMo
Ym9vbCBlbmFibGVkUGVyU2V0dGluZ3MpOwogICAgIHZpcnR1YWwgYm9vbCBhbGxvd0ltYWdlcyhi
b29sIGVuYWJsZWRQZXJTZXR0aW5ncyk7CisgICAgdmlydHVhbCBib29sIGFsbG93RGlzcGxheWlu
Z0luc2VjdXJlQ29udGVudChib29sIGVuYWJsZWRQZXJTZXR0aW5ncyk7CisgICAgdmlydHVhbCBi
b29sIGFsbG93UnVubmluZ0luc2VjdXJlQ29udGVudChib29sIGVuYWJsZWRQZXJTZXR0aW5ncywg
V2ViQ29yZTo6U2VjdXJpdHlPcmlnaW4qIGNvbnRleHQsIGNvbnN0IFdlYkNvcmU6OktVUkwmKTsK
ICAgICB2aXJ0dWFsIHZvaWQgZGlkTm90QWxsb3dTY3JpcHQoKTsKICAgICB2aXJ0dWFsIHZvaWQg
ZGlkTm90QWxsb3dQbHVnaW5zKCk7CiAK
</data>
<flag name="review"
          id="89765"
          type_id="1"
          status="+"
          setter="abarth"
    />
    <flag name="commit-queue"
          id="89766"
          type_id="3"
          status="-"
          setter="abarth"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>96447</attachid>
            <date>2011-06-08 11:53:24 -0700</date>
            <delta_ts>2011-06-08 13:05:15 -0700</delta_ts>
            <desc>insecure content policy calls into client, plus new tests</desc>
            <filename>bug_61946.patch</filename>
            <type>text/plain</type>
            <size>29424</size>
            <attacher name="Thomas Sepez">tsepez</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDg4MzY3KQorKysgU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMjEgQEAKKzIwMTEtMDYtMDggIFRvbSBTZXBl
eiAgPHRzZXBlekBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgQ2F1c2UgY2hlY2tzIGZvciBpbnNlY3VyZSBjb250ZW50IGJsb2Nr
aW5nIHBvbGljeSB0byBjYWxsYmFjayB0byBjbGllbnQuCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD02MTk0NgorICAgICAgICBUZXN0czogcGxhdGZvcm0v
Y2hyb21pdW0vaHR0cC90ZXN0cy9zZWN1cml0eS9taXhlZENvbnRlbnQvaW5zZWN1cmUtaW1hZ2Ut
aW4tbWFpbi1mcmFtZS1hbGxvd2VkLmh0bWwKKyAgICAgICAgICAgICAgIHBsYXRmb3JtL2Nocm9t
aXVtL2h0dHAvdGVzdHMvc2VjdXJpdHkvbWl4ZWRDb250ZW50L2luc2VjdXJlLWltYWdlLWluLW1h
aW4tZnJhbWUtYmxvY2tlZC5odG1sCisgICAgICAgICAgICAgICBwbGF0Zm9ybS9jaHJvbWl1bS9o
dHRwL3Rlc3RzL3NlY3VyaXR5L21peGVkQ29udGVudC9pbnNlY3VyZS1zY3JpcHQtaW4tbWFpbi1m
cmFtZS1hbGxvd2VkLmh0bWwKKyAgICAgICAgICAgICAgIHBsYXRmb3JtL2Nocm9taXVtL2h0dHAv
dGVzdHMvc2VjdXJpdHkvbWl4ZWRDb250ZW50L2luc2VjdXJlLXNjcmlwdC1pbi1tYWluLWZyYW1l
LWJsb2NrZWQuaHRtbAorCisgICAgICAgICogbG9hZGVyL0ZyYW1lTG9hZGVyLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OkZyYW1lTG9hZGVyOjpjaGVja0lmRGlzcGxheUluc2VjdXJlQ29udGVudCk6
CisgICAgICAgIChXZWJDb3JlOjpGcmFtZUxvYWRlcjo6Y2hlY2tJZlJ1bkluc2VjdXJlQ29udGVu
dCk6CisgICAgICAgICogbG9hZGVyL0ZyYW1lTG9hZGVyQ2xpZW50Lmg6CisgICAgICAgIChXZWJD
b3JlOjpGcmFtZUxvYWRlckNsaWVudDo6YWxsb3dEaXNwbGF5aW5nSW5zZWN1cmVDb250ZW50KToK
KyAgICAgICAgKFdlYkNvcmU6OkZyYW1lTG9hZGVyQ2xpZW50OjphbGxvd1J1bm5pbmdJbnNlY3Vy
ZUNvbnRlbnQpOgorCiAyMDExLTA2LTA4ICBTaGVyaWZmIEJvdCAgPHdlYmtpdC5yZXZpZXcuYm90
QGdtYWlsLmNvbT4KIAogICAgICAgICBVbnJldmlld2VkLCByb2xsaW5nIG91dCByODgzNjUuCklu
ZGV4OiBTb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXIuY3BwCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlci5jcHAJKHJldmlzaW9uIDg4MjgwKQor
KysgU291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyLmNwcAkod29ya2luZyBjb3B5KQpA
QCAtMTExOCwxMSArMTExOCwxNSBAQCBib29sIEZyYW1lTG9hZGVyOjpjaGVja0lmRGlzcGxheUlu
c2VjdXJlCiAgICAgICAgIHJldHVybiB0cnVlOwogCiAgICAgU2V0dGluZ3MqIHNldHRpbmdzID0g
bV9mcmFtZS0+c2V0dGluZ3MoKTsKLSAgICBib29sIGFsbG93ZWQgPSBzZXR0aW5ncyAmJiBzZXR0
aW5ncy0+YWxsb3dEaXNwbGF5T2ZJbnNlY3VyZUNvbnRlbnQoKTsKLSAgICBTdHJpbmcgbWVzc2Fn
ZSA9IChhbGxvd2VkID8gZW1wdHlTdHJpbmcoKSA6ICJbYmxvY2tlZF0gIikgKyAiVGhlIHBhZ2Ug
YXQgIiArIG1fZnJhbWUtPmRvY3VtZW50KCktPnVybCgpLnN0cmluZygpICsgIiBkaXNwbGF5ZWQg
aW5zZWN1cmUgY29udGVudCBmcm9tICIgKyB1cmwuc3RyaW5nKCkgKyAiLlxuIjsKKyAgICBib29s
IGFsbG93ZWQgPSBtX2NsaWVudC0+YWxsb3dEaXNwbGF5aW5nSW5zZWN1cmVDb250ZW50KHNldHRp
bmdzICYmIHNldHRpbmdzLT5hbGxvd0Rpc3BsYXlPZkluc2VjdXJlQ29udGVudCgpLCBjb250ZXh0
LCB1cmwpOworICAgIFN0cmluZyBtZXNzYWdlID0gKGFsbG93ZWQgPyBlbXB0eVN0cmluZygpIDog
IltibG9ja2VkXSAiKSArICJUaGUgcGFnZSBhdCAiICsKKyAgICAgICAgbV9mcmFtZS0+ZG9jdW1l
bnQoKS0+dXJsKCkuc3RyaW5nKCkgKyAiIGRpc3BsYXllZCBpbnNlY3VyZSBjb250ZW50IGZyb20g
IiArIHVybC5zdHJpbmcoKSArICIuXG4iOworICAgICAgICAKICAgICBtX2ZyYW1lLT5kb21XaW5k
b3coKS0+Y29uc29sZSgpLT5hZGRNZXNzYWdlKEhUTUxNZXNzYWdlU291cmNlLCBMb2dNZXNzYWdl
VHlwZSwgV2FybmluZ01lc3NhZ2VMZXZlbCwgbWVzc2FnZSwgMSwgU3RyaW5nKCkpOwogCi0gICAg
bV9jbGllbnQtPmRpZERpc3BsYXlJbnNlY3VyZUNvbnRlbnQoKTsKKyAgICBpZiAoYWxsb3dlZCkK
KyAgICAgICAgbV9jbGllbnQtPmRpZERpc3BsYXlJbnNlY3VyZUNvbnRlbnQoKTsKKwogICAgIHJl
dHVybiBhbGxvd2VkOwogfQogCkBAIC0xMTMyLDExICsxMTM2LDE1IEBAIGJvb2wgRnJhbWVMb2Fk
ZXI6OmNoZWNrSWZSdW5JbnNlY3VyZUNvbnQKICAgICAgICAgcmV0dXJuIHRydWU7CiAKICAgICBT
ZXR0aW5ncyogc2V0dGluZ3MgPSBtX2ZyYW1lLT5zZXR0aW5ncygpOwotICAgIGJvb2wgYWxsb3dl
ZCA9IHNldHRpbmdzICYmIHNldHRpbmdzLT5hbGxvd1J1bm5pbmdPZkluc2VjdXJlQ29udGVudCgp
OwotICAgIFN0cmluZyBtZXNzYWdlID0gKGFsbG93ZWQgPyBlbXB0eVN0cmluZygpIDogIltibG9j
a2VkXSAiKSArICJUaGUgcGFnZSBhdCAiICsgbV9mcmFtZS0+ZG9jdW1lbnQoKS0+dXJsKCkuc3Ry
aW5nKCkgKyAiIHJhbiBpbnNlY3VyZSBjb250ZW50IGZyb20gIiArIHVybC5zdHJpbmcoKSArICIu
XG4iOworICAgIGJvb2wgYWxsb3dlZCA9IG1fY2xpZW50LT5hbGxvd1J1bm5pbmdJbnNlY3VyZUNv
bnRlbnQoc2V0dGluZ3MgJiYgc2V0dGluZ3MtPmFsbG93UnVubmluZ09mSW5zZWN1cmVDb250ZW50
KCksIGNvbnRleHQsIHVybCk7CisgICAgU3RyaW5nIG1lc3NhZ2UgPSAoYWxsb3dlZCA/IGVtcHR5
U3RyaW5nKCkgOiAiW2Jsb2NrZWRdICIpICsgIlRoZSBwYWdlIGF0ICIgKworICAgICAgICBtX2Zy
YW1lLT5kb2N1bWVudCgpLT51cmwoKS5zdHJpbmcoKSArICIgcmFuIGluc2VjdXJlIGNvbnRlbnQg
ZnJvbSAiICsgdXJsLnN0cmluZygpICsgIi5cbiI7CisgICAgICAgCiAgICAgbV9mcmFtZS0+ZG9t
V2luZG93KCktPmNvbnNvbGUoKS0+YWRkTWVzc2FnZShIVE1MTWVzc2FnZVNvdXJjZSwgTG9nTWVz
c2FnZVR5cGUsIFdhcm5pbmdNZXNzYWdlTGV2ZWwsIG1lc3NhZ2UsIDEsIFN0cmluZygpKTsKIAot
ICAgIG1fY2xpZW50LT5kaWRSdW5JbnNlY3VyZUNvbnRlbnQoY29udGV4dCwgdXJsKTsKKyAgICBp
ZiAoYWxsb3dlZCkKKyAgICAgICAgbV9jbGllbnQtPmRpZFJ1bkluc2VjdXJlQ29udGVudChjb250
ZXh0LCB1cmwpOworCiAgICAgcmV0dXJuIGFsbG93ZWQ7CiB9CiAKSW5kZXg6IFNvdXJjZS9XZWJD
b3JlL2xvYWRlci9GcmFtZUxvYWRlckNsaWVudC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJD
b3JlL2xvYWRlci9GcmFtZUxvYWRlckNsaWVudC5oCShyZXZpc2lvbiA4ODI4MCkKKysrIFNvdXJj
ZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlckNsaWVudC5oCSh3b3JraW5nIGNvcHkpCkBAIC0y
OTgsNyArMjk4LDkgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICB2aXJ0dWFsIGJvb2wg
YWxsb3dKYXZhU2NyaXB0KGJvb2wgZW5hYmxlZFBlclNldHRpbmdzKSB7IHJldHVybiBlbmFibGVk
UGVyU2V0dGluZ3M7IH0KICAgICAgICAgdmlydHVhbCBib29sIGFsbG93UGx1Z2lucyhib29sIGVu
YWJsZWRQZXJTZXR0aW5ncykgeyByZXR1cm4gZW5hYmxlZFBlclNldHRpbmdzOyB9CiAgICAgICAg
IHZpcnR1YWwgYm9vbCBhbGxvd0ltYWdlcyhib29sIGVuYWJsZWRQZXJTZXR0aW5ncykgeyByZXR1
cm4gZW5hYmxlZFBlclNldHRpbmdzOyB9Ci0KKyAgICAgICAgdmlydHVhbCBib29sIGFsbG93RGlz
cGxheWluZ0luc2VjdXJlQ29udGVudChib29sIGVuYWJsZWRQZXJTZXR0aW5ncywgU2VjdXJpdHlP
cmlnaW4qLCBjb25zdCBLVVJMJikgeyByZXR1cm4gZW5hYmxlZFBlclNldHRpbmdzOyB9CisgICAg
ICAgIHZpcnR1YWwgYm9vbCBhbGxvd1J1bm5pbmdJbnNlY3VyZUNvbnRlbnQoYm9vbCBlbmFibGVk
UGVyU2V0dGluZ3MsIFNlY3VyaXR5T3JpZ2luKiwgY29uc3QgS1VSTCYpIHsgcmV0dXJuIGVuYWJs
ZWRQZXJTZXR0aW5nczsgfQorICAgICAgICAKICAgICAgICAgLy8gVGhpcyBjYWxsYmFjayBub3Rp
ZmllcyB0aGUgY2xpZW50IHRoYXQgdGhlIGZyYW1lIHdhcyBhYm91dCB0byBydW4KICAgICAgICAg
Ly8gSmF2YVNjcmlwdCBidXQgZGlkIG5vdCBiZWNhdXNlIGFsbG93SmF2YVNjcmlwdCByZXR1cm5l
ZCBmYWxzZS4gV2UKICAgICAgICAgLy8gaGF2ZSBhIHNlcGFyYXRlIGNhbGxiYWNrIGhlcmUgYmVj
YXVzZSB0aGVyZSBhcmUgYSBudW1iZXIgb2YgcGxhY2VzCkluZGV4OiBTb3VyY2UvV2ViS2l0L2No
cm9taXVtL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L2Nocm9taXVtL0No
YW5nZUxvZwkocmV2aXNpb24gODgzNjcpCisrKyBTb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE4IEBACisyMDExLTA2LTA4ICBUb20gU2Vw
ZXogIDx0c2VwZXpAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgIEFkZCBuZXcgcGVybWlzc2lvbiBjYWxsYmFja3MgZm9yIG1peGVk
IGNvbnRlbnQgYmxvY2tpbmcuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD02MTk0NgorCisgICAgICAgICogcHVibGljL1dlYlBlcm1pc3Npb25DbGllbnQu
aDoKKyAgICAgICAgKFdlYktpdDo6V2ViUGVybWlzc2lvbkNsaWVudDo6YWxsb3dEaXNwbGF5aW5n
SW5zZWN1cmVDb250ZW50KToKKyAgICAgICAgKFdlYktpdDo6V2ViUGVybWlzc2lvbkNsaWVudDo6
YWxsb3dSdW5uaW5nSW5zZWN1cmVDb250ZW50KToKKyAgICAgICAgKiBzcmMvRnJhbWVMb2FkZXJD
bGllbnRJbXBsLmNwcDoKKyAgICAgICAgKFdlYktpdDo6RnJhbWVMb2FkZXJDbGllbnRJbXBsOjph
bGxvd0Rpc3BsYXlpbmdJbnNlY3VyZUNvbnRlbnQpOgorICAgICAgICAoV2ViS2l0OjpGcmFtZUxv
YWRlckNsaWVudEltcGw6OmFsbG93UnVubmluZ0luc2VjdXJlQ29udGVudCk6CisgICAgICAgICog
c3JjL0ZyYW1lTG9hZGVyQ2xpZW50SW1wbC5oOgorCiAyMDExLTA2LTA4ICBSeW9zdWtlIE5pd2Eg
IDxybml3YUB3ZWJraXQub3JnPgogCiAgICAgICAgIEFkZGVkIG5ldyBlbnRyaWVzIGZvciBza2lh
L3RoaXJkX3BhcnR5L2dsdS4KSW5kZXg6IFNvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dl
YlBlcm1pc3Npb25DbGllbnQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L2Nocm9taXVt
L3B1YmxpYy9XZWJQZXJtaXNzaW9uQ2xpZW50LmgJKHJldmlzaW9uIDg4MjgwKQorKysgU291cmNl
L1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViUGVybWlzc2lvbkNsaWVudC5oCSh3b3JraW5nIGNv
cHkpCkBAIC0zNiw2ICszNiw3IEBAIG5hbWVzcGFjZSBXZWJLaXQgewogY2xhc3MgV2ViRnJhbWU7
CiBjbGFzcyBXZWJTZWN1cml0eU9yaWdpbjsKIGNsYXNzIFdlYlN0cmluZzsKK2NsYXNzIFdlYlVS
TDsKIAogY2xhc3MgV2ViUGVybWlzc2lvbkNsaWVudCB7CiBwdWJsaWM6CkBAIC01Nyw2ICs1OCwx
MiBAQCBwdWJsaWM6CiAgICAgLy8gQ29udHJvbHMgd2hldGhlciBzY3JpcHRzIGFyZSBhbGxvd2Vk
IHRvIGV4ZWN1dGUgZm9yIHRoaXMgZnJhbWUuCiAgICAgdmlydHVhbCBib29sIGFsbG93U2NyaXB0
KFdlYkZyYW1lKiwgYm9vbCBlbmFibGVkUGVyU2V0dGluZ3MpIHsgcmV0dXJuIGVuYWJsZWRQZXJT
ZXR0aW5nczsgfQogCisgICAgLy8gQ29udHJvbHMgd2hldGhlciBpbnNlY3J1cmUgY29udGVudCBp
cyBhbGxvd2VkIHRvIGRpc3BsYXkgZm9yIHRoaXMgZnJhbWUuCisgICAgdmlydHVhbCBib29sIGFs
bG93RGlzcGxheWluZ0luc2VjdXJlQ29udGVudChXZWJGcmFtZSosIGJvb2wgZW5hYmxlZFBlclNl
dHRpbmdzLCBjb25zdCBXZWJTZWN1cml0eU9yaWdpbiYsIGNvbnN0IFdlYlVSTCYpIHsgcmV0dXJu
IGVuYWJsZWRQZXJTZXR0aW5nczsgfQorCisgICAgLy8gQ29udHJvbHMgd2hldGhlciBpbnNlY3J1
cmUgc2NyaXB0cyBhcmUgYWxsb3dlZCB0byBleGVjdXRlIGZvciB0aGlzIGZyYW1lLgorICAgIHZp
cnR1YWwgYm9vbCBhbGxvd1J1bm5pbmdJbnNlY3VyZUNvbnRlbnQoV2ViRnJhbWUqLCBib29sIGVu
YWJsZWRQZXJTZXR0aW5ncywgY29uc3QgV2ViU2VjdXJpdHlPcmlnaW4mLCBjb25zdCBXZWJVUkwm
KSB7IHJldHVybiBlbmFibGVkUGVyU2V0dGluZ3M7IH0KKwogICAgIC8vIENvbnRyb2xzIHdoZXRo
ZXIgdGhlIGdpdmVuIHNjcmlwdCBleHRlbnNpb24gc2hvdWxkIHJ1biBpbiBhIG5ldyBzY3JpcHQK
ICAgICAvLyBjb250ZXh0IGluIHRoaXMgZnJhbWUuIElmIGV4dGVuc2lvbkdyb3VwIGlzIDAsIHRo
ZSBzY3JpcHQgY29udGV4dCBpcyB0aGUKICAgICAvLyBmcmFtZSdzIG1haW4gY29udGV4dC4gT3Ro
ZXJ3aXNlLCBpdCBpcyBhIGNvbnRleHQgY3JlYXRlZCBieQpJbmRleDogU291cmNlL1dlYktpdC9j
aHJvbWl1bS9zcmMvRnJhbWVMb2FkZXJDbGllbnRJbXBsLmNwcAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvV2ViS2l0L2Nocm9taXVtL3NyYy9GcmFtZUxvYWRlckNsaWVudEltcGwuY3BwCShyZXZpc2lv
biA4ODI4MCkKKysrIFNvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0ZyYW1lTG9hZGVyQ2xpZW50
SW1wbC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTIwMiw2ICsyMDIsMjQgQEAgYm9vbCBGcmFtZUxv
YWRlckNsaWVudEltcGw6OmFsbG93SW1hZ2VzKAogICAgIHJldHVybiBlbmFibGVkUGVyU2V0dGlu
Z3M7CiB9CiAKK2Jvb2wgRnJhbWVMb2FkZXJDbGllbnRJbXBsOjphbGxvd0Rpc3BsYXlpbmdJbnNl
Y3VyZUNvbnRlbnQoYm9vbCBlbmFibGVkUGVyU2V0dGluZ3MsIFNlY3VyaXR5T3JpZ2luKiBjb250
ZXh0LCBjb25zdCBLVVJMJiB1cmwpCit7CisgICAgV2ViVmlld0ltcGwqIHdlYnZpZXcgPSBtX3dl
YkZyYW1lLT52aWV3SW1wbCgpOworICAgIGlmICh3ZWJ2aWV3ICYmIHdlYnZpZXctPnBlcm1pc3Np
b25DbGllbnQoKSkKKyAgICAgICAgcmV0dXJuIHdlYnZpZXctPnBlcm1pc3Npb25DbGllbnQoKS0+
YWxsb3dEaXNwbGF5aW5nSW5zZWN1cmVDb250ZW50KG1fd2ViRnJhbWUsIGVuYWJsZWRQZXJTZXR0
aW5ncywgV2ViU2VjdXJpdHlPcmlnaW4oY29udGV4dCksIFdlYlVSTCh1cmwpKTsKKworICAgIHJl
dHVybiBlbmFibGVkUGVyU2V0dGluZ3M7Cit9CisKK2Jvb2wgRnJhbWVMb2FkZXJDbGllbnRJbXBs
OjphbGxvd1J1bm5pbmdJbnNlY3VyZUNvbnRlbnQoYm9vbCBlbmFibGVkUGVyU2V0dGluZ3MsIFNl
Y3VyaXR5T3JpZ2luKiBjb250ZXh0LCBjb25zdCBLVVJMJiB1cmwpCit7CisgICAgV2ViVmlld0lt
cGwqIHdlYnZpZXcgPSBtX3dlYkZyYW1lLT52aWV3SW1wbCgpOworICAgIGlmICh3ZWJ2aWV3ICYm
IHdlYnZpZXctPnBlcm1pc3Npb25DbGllbnQoKSkKKyAgICAgICAgcmV0dXJuIHdlYnZpZXctPnBl
cm1pc3Npb25DbGllbnQoKS0+YWxsb3dSdW5uaW5nSW5zZWN1cmVDb250ZW50KG1fd2ViRnJhbWUs
IGVuYWJsZWRQZXJTZXR0aW5ncywgV2ViU2VjdXJpdHlPcmlnaW4oY29udGV4dCksIFdlYlVSTCh1
cmwpKTsKKworICAgIHJldHVybiBlbmFibGVkUGVyU2V0dGluZ3M7Cit9CisKIHZvaWQgRnJhbWVM
b2FkZXJDbGllbnRJbXBsOjpkaWROb3RBbGxvd1NjcmlwdCgpCiB7CiAgICAgV2ViVmlld0ltcGwq
IHdlYnZpZXcgPSBtX3dlYkZyYW1lLT52aWV3SW1wbCgpOwpJbmRleDogU291cmNlL1dlYktpdC9j
aHJvbWl1bS9zcmMvRnJhbWVMb2FkZXJDbGllbnRJbXBsLmgKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYktpdC9jaHJvbWl1bS9zcmMvRnJhbWVMb2FkZXJDbGllbnRJbXBsLmgJKHJldmlzaW9uIDg4
MjgwKQorKysgU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvRnJhbWVMb2FkZXJDbGllbnRJbXBs
LmgJKHdvcmtpbmcgY29weSkKQEAgLTIwNiw2ICsyMDYsOCBAQCBwdWJsaWM6CiAgICAgdmlydHVh
bCBib29sIGFsbG93SmF2YVNjcmlwdChib29sIGVuYWJsZWRQZXJTZXR0aW5ncyk7CiAgICAgdmly
dHVhbCBib29sIGFsbG93UGx1Z2lucyhib29sIGVuYWJsZWRQZXJTZXR0aW5ncyk7CiAgICAgdmly
dHVhbCBib29sIGFsbG93SW1hZ2VzKGJvb2wgZW5hYmxlZFBlclNldHRpbmdzKTsKKyAgICB2aXJ0
dWFsIGJvb2wgYWxsb3dEaXNwbGF5aW5nSW5zZWN1cmVDb250ZW50KGJvb2wgZW5hYmxlZFBlclNl
dHRpbmdzLCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbiosIGNvbnN0IFdlYkNvcmU6OktVUkwmKTsK
KyAgICB2aXJ0dWFsIGJvb2wgYWxsb3dSdW5uaW5nSW5zZWN1cmVDb250ZW50KGJvb2wgZW5hYmxl
ZFBlclNldHRpbmdzLCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbiosIGNvbnN0IFdlYkNvcmU6OktV
UkwmKTsKICAgICB2aXJ0dWFsIHZvaWQgZGlkTm90QWxsb3dTY3JpcHQoKTsKICAgICB2aXJ0dWFs
IHZvaWQgZGlkTm90QWxsb3dQbHVnaW5zKCk7CiAKSW5kZXg6IFRvb2xzL0NoYW5nZUxvZwo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBUb29scy9DaGFuZ2VMb2cJKHJldmlzaW9uIDg4MzY3KQorKysgVG9vbHMvQ2hh
bmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMjIgQEAKKzIwMTEtMDYtMDggIFRvbSBT
ZXBleiAgPHRzZXBlekBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgQWRkIHdlYiBwZXJtaXNzaW9ucyBjYWxsYmFja3MgZm9yIG1p
eGVkIGNvbnRlbnQgYmxvY2tpbmcuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD02MTk0NgorCisgICAgICAgICogRHVtcFJlbmRlclRyZWUvY2hyb21pdW0v
TGF5b3V0VGVzdENvbnRyb2xsZXIuY3BwOgorICAgICAgICAoTGF5b3V0VGVzdENvbnRyb2xsZXI6
OnNldEFsbG93RGlzcGxheU9mSW5zZWN1cmVDb250ZW50KToKKyAgICAgICAgKExheW91dFRlc3RD
b250cm9sbGVyOjpzZXRBbGxvd1J1bm5pbmdPZkluc2VjdXJlQ29udGVudCk6CisgICAgICAgIChM
YXlvdXRUZXN0Q29udHJvbGxlcjo6b3ZlcnJpZGVQcmVmZXJlbmNlKToKKyAgICAgICAgKiBEdW1w
UmVuZGVyVHJlZS9jaHJvbWl1bS9XZWJQZXJtaXNzaW9ucy5jcHA6CisgICAgICAgIChXZWJQZXJt
aXNzaW9uczo6YWxsb3dEaXNwbGF5aW5nSW5zZWN1cmVDb250ZW50KToKKyAgICAgICAgKFdlYlBl
cm1pc3Npb25zOjphbGxvd1J1bm5pbmdJbnNlY3VyZUNvbnRlbnQpOgorICAgICAgICAoV2ViUGVy
bWlzc2lvbnM6OnNldERpc3BsYXlpbmdJbnNlY3VyZUNvbnRlbnRBbGxvd2VkKToKKyAgICAgICAg
KFdlYlBlcm1pc3Npb25zOjpzZXRSdW5uaW5nSW5zZWN1cmVDb250ZW50QWxsb3dlZCk6CisgICAg
ICAgIChXZWJQZXJtaXNzaW9uczo6cmVzZXQpOgorICAgICAgICAqIER1bXBSZW5kZXJUcmVlL2No
cm9taXVtL1dlYlBlcm1pc3Npb25zLmg6CisKIDIwMTEtMDYtMDggIEdyZWcgU2ltb24gIDxncmVn
c2ltb25AY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFJldmlld2VkIGJ5IERpbWl0cmkgR2xhemtv
di4KSW5kZXg6IFRvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL0xheW91dFRlc3RDb250cm9s
bGVyLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9MYXlv
dXRUZXN0Q29udHJvbGxlci5jcHAJKHJldmlzaW9uIDg4MjgwKQorKysgVG9vbHMvRHVtcFJlbmRl
clRyZWUvY2hyb21pdW0vTGF5b3V0VGVzdENvbnRyb2xsZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBA
IC0xMzMwLDEwICsxMzMwLDkgQEAgdm9pZCBMYXlvdXRUZXN0Q29udHJvbGxlcjo6c2V0QWxsb3dV
bml2ZQogCiB2b2lkIExheW91dFRlc3RDb250cm9sbGVyOjpzZXRBbGxvd0Rpc3BsYXlPZkluc2Vj
dXJlQ29udGVudChjb25zdCBDcHBBcmd1bWVudExpc3QmIGFyZ3VtZW50cywgQ3BwVmFyaWFudCog
cmVzdWx0KQogewotICAgIGlmIChhcmd1bWVudHMuc2l6ZSgpID4gMCAmJiBhcmd1bWVudHNbMF0u
aXNCb29sKCkpIHsKLSAgICAgICAgbV9zaGVsbC0+cHJlZmVyZW5jZXMoKS0+YWxsb3dEaXNwbGF5
T2ZJbnNlY3VyZUNvbnRlbnQgPSBhcmd1bWVudHNbMF0udmFsdWUuYm9vbFZhbHVlOwotICAgICAg
ICBtX3NoZWxsLT5hcHBseVByZWZlcmVuY2VzKCk7Ci0gICAgfQorICAgIGlmIChhcmd1bWVudHMu
c2l6ZSgpID4gMCAmJiBhcmd1bWVudHNbMF0uaXNCb29sKCkpCisgICAgICAgIG1fc2hlbGwtPndl
YlBlcm1pc3Npb25zKCktPnNldERpc3BsYXlpbmdJbnNlY3VyZUNvbnRlbnRBbGxvd2VkKGFyZ3Vt
ZW50c1swXS50b0Jvb2xlYW4oKSk7CisKICAgICByZXN1bHQtPnNldE51bGwoKTsKIH0KIApAQCAt
MTM0OCwxMCArMTM0Nyw5IEBAIHZvaWQgTGF5b3V0VGVzdENvbnRyb2xsZXI6OnNldEFsbG93Rmls
ZUEKIAogdm9pZCBMYXlvdXRUZXN0Q29udHJvbGxlcjo6c2V0QWxsb3dSdW5uaW5nT2ZJbnNlY3Vy
ZUNvbnRlbnQoY29uc3QgQ3BwQXJndW1lbnRMaXN0JiBhcmd1bWVudHMsIENwcFZhcmlhbnQqIHJl
c3VsdCkKIHsKLSAgICBpZiAoYXJndW1lbnRzLnNpemUoKSA+IDAgJiYgYXJndW1lbnRzWzBdLmlz
Qm9vbCgpKSB7Ci0gICAgICAgIG1fc2hlbGwtPnByZWZlcmVuY2VzKCktPmFsbG93UnVubmluZ09m
SW5zZWN1cmVDb250ZW50ID0gYXJndW1lbnRzWzBdLnZhbHVlLmJvb2xWYWx1ZTsKLSAgICAgICAg
bV9zaGVsbC0+YXBwbHlQcmVmZXJlbmNlcygpOwotICAgIH0KKyAgICBpZiAoYXJndW1lbnRzLnNp
emUoKSA+IDAgJiYgYXJndW1lbnRzWzBdLmlzQm9vbCgpKQorICAgICAgICBtX3NoZWxsLT53ZWJQ
ZXJtaXNzaW9ucygpLT5zZXRSdW5uaW5nSW5zZWN1cmVDb250ZW50QWxsb3dlZChhcmd1bWVudHNb
MF0udmFsdWUuYm9vbFZhbHVlKTsKKwogICAgIHJlc3VsdC0+c2V0TnVsbCgpOwogfQogCkBAIC0x
NDY4LDYgKzE0NjYsMTAgQEAgdm9pZCBMYXlvdXRUZXN0Q29udHJvbGxlcjo6b3ZlcnJpZGVQcmVm
ZQogICAgICAgICBwcmVmcy0+aHlwZXJsaW5rQXVkaXRpbmdFbmFibGVkID0gY3BwVmFyaWFudFRv
Qm9vbCh2YWx1ZSk7CiAgICAgZWxzZSBpZiAoa2V5ID09ICJXZWJLaXRFbmFibGVDYXJldEJyb3dz
aW5nIikKICAgICAgICAgcHJlZnMtPmNhcmV0QnJvd3NpbmdFbmFibGVkID0gY3BwVmFyaWFudFRv
Qm9vbCh2YWx1ZSk7CisgICAgZWxzZSBpZiAoa2V5ID09ICJXZWJLaXRBbGxvd0Rpc3BsYXlpbmdJ
bnNlY3VyZUNvbnRlbnQiKQorICAgICAgICBwcmVmcy0+YWxsb3dEaXNwbGF5T2ZJbnNlY3VyZUNv
bnRlbnQgPSBjcHBWYXJpYW50VG9Cb29sKHZhbHVlKTsKKyAgICBlbHNlIGlmIChrZXkgPT0gIldl
YktpdEFsbG93UnVubmluZ0luc2VjdXJlQ29udGVudCIpCisgICAgICAgIHByZWZzLT5hbGxvd1J1
bm5pbmdPZkluc2VjdXJlQ29udGVudCA9IGNwcFZhcmlhbnRUb0Jvb2wodmFsdWUpOwogICAgIGVs
c2UgewogICAgICAgICBzdHJpbmcgbWVzc2FnZSgiSW52YWxpZCBuYW1lIGZvciBwcmVmZXJlbmNl
OiAiKTsKICAgICAgICAgbWVzc2FnZS5hcHBlbmQoa2V5KTsKSW5kZXg6IFRvb2xzL0R1bXBSZW5k
ZXJUcmVlL2Nocm9taXVtL1dlYlBlcm1pc3Npb25zLmNwcAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9E
dW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9XZWJQZXJtaXNzaW9ucy5jcHAJKHJldmlzaW9uIDg4Mjgw
KQorKysgVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vV2ViUGVybWlzc2lvbnMuY3BwCSh3
b3JraW5nIGNvcHkpCkBAIC01MCw2ICs1MCwxOCBAQCBib29sIFdlYlBlcm1pc3Npb25zOjphbGxv
d1N0b3JhZ2UoV2ViS2l0CiAgICAgcmV0dXJuIG1fc3RvcmFnZUFsbG93ZWQ7CiB9CiAKK2Jvb2wg
V2ViUGVybWlzc2lvbnM6OmFsbG93RGlzcGxheWluZ0luc2VjdXJlQ29udGVudChXZWJLaXQ6Oldl
YkZyYW1lKiwgYm9vbCBlbmFibGVkUGVyU2V0dGluZ3MsCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgV2ViS2l0OjpXZWJTZWN1cml0eU9y
aWdpbiYsIGNvbnN0IFdlYktpdDo6V2ViVVJMJikKK3sKKyAgICByZXR1cm4gZW5hYmxlZFBlclNl
dHRpbmdzIHx8IG1fZGlzcGxheWluZ0luc2VjdXJlQ29udGVudEFsbG93ZWQ7Cit9CisgCitib29s
IFdlYlBlcm1pc3Npb25zOjphbGxvd1J1bm5pbmdJbnNlY3VyZUNvbnRlbnQoV2ViS2l0OjpXZWJG
cmFtZSosIGJvb2wgZW5hYmxlZFBlclNldHRpbmdzLAorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IFdlYktpdDo6V2ViU2VjdXJpdHlPcmlnaW4m
LCBjb25zdCBXZWJLaXQ6OldlYlVSTCYpCit7CisgICAgcmV0dXJuIGVuYWJsZWRQZXJTZXR0aW5n
cyB8fCBtX3J1bm5pbmdJbnNlY3VyZUNvbnRlbnRBbGxvd2VkOworfQorCiB2b2lkIFdlYlBlcm1p
c3Npb25zOjpzZXRJbWFnZXNBbGxvd2VkKGJvb2wgaW1hZ2VzQWxsb3dlZCkKIHsKICAgICBtX2lt
YWdlc0FsbG93ZWQgPSBpbWFnZXNBbGxvd2VkOwpAQCAtNjAsOCArNzIsMjAgQEAgdm9pZCBXZWJQ
ZXJtaXNzaW9uczo6c2V0U3RvcmFnZUFsbG93ZWQoYgogICAgIG1fc3RvcmFnZUFsbG93ZWQgPSBz
dG9yYWdlQWxsb3dlZDsKIH0KIAordm9pZCBXZWJQZXJtaXNzaW9uczo6c2V0RGlzcGxheWluZ0lu
c2VjdXJlQ29udGVudEFsbG93ZWQoYm9vbCBhbGxvd2VkKQoreworICAgIG1fZGlzcGxheWluZ0lu
c2VjdXJlQ29udGVudEFsbG93ZWQgPSBhbGxvd2VkOworfQorCit2b2lkIFdlYlBlcm1pc3Npb25z
OjpzZXRSdW5uaW5nSW5zZWN1cmVDb250ZW50QWxsb3dlZChib29sIGFsbG93ZWQpCit7CisgICAg
bV9ydW5uaW5nSW5zZWN1cmVDb250ZW50QWxsb3dlZCA9IGFsbG93ZWQ7Cit9CisKIHZvaWQgV2Vi
UGVybWlzc2lvbnM6OnJlc2V0KCkKIHsKICAgICBtX2ltYWdlc0FsbG93ZWQgPSB0cnVlOwogICAg
IG1fc3RvcmFnZUFsbG93ZWQgPSB0cnVlOworICAgIG1fZGlzcGxheWluZ0luc2VjdXJlQ29udGVu
dEFsbG93ZWQgPSBmYWxzZTsKKyAgICBtX3J1bm5pbmdJbnNlY3VyZUNvbnRlbnRBbGxvd2VkID0g
ZmFsc2U7CiB9CkluZGV4OiBUb29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9XZWJQZXJtaXNz
aW9ucy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1dlYlBl
cm1pc3Npb25zLmgJKHJldmlzaW9uIDg4MjgwKQorKysgVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hy
b21pdW0vV2ViUGVybWlzc2lvbnMuaAkod29ya2luZyBjb3B5KQpAQCAtMzgsMTkgKzM4LDI4IEBA
IHB1YmxpYzoKICAgICBXZWJQZXJtaXNzaW9ucygpOwogICAgIHZpcnR1YWwgfldlYlBlcm1pc3Np
b25zKCk7CiAKKyAgICAvLyBPdmVycmlkZSBXZWJQZXJtaXNzaW9uQ2xpZW50IG1ldGhvZHMuCiAg
ICAgdmlydHVhbCBib29sIGFsbG93SW1hZ2VzKFdlYktpdDo6V2ViRnJhbWUqLCBib29sIGVuYWJs
ZWRQZXJTZXR0aW5ncyk7CiAgICAgdmlydHVhbCBib29sIGFsbG93U3RvcmFnZShXZWJLaXQ6Oldl
YkZyYW1lKiwgYm9vbCBsb2NhbCk7CisgICAgdmlydHVhbCBib29sIGFsbG93RGlzcGxheWluZ0lu
c2VjdXJlQ29udGVudChXZWJLaXQ6OldlYkZyYW1lKiwgYm9vbCBlbmFibGVkUGVyU2V0dGluZ3Ms
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBX
ZWJLaXQ6OldlYlNlY3VyaXR5T3JpZ2luJiwgY29uc3QgV2ViS2l0OjpXZWJVUkwmKTsKKyAgICB2
aXJ0dWFsIGJvb2wgYWxsb3dSdW5uaW5nSW5zZWN1cmVDb250ZW50KFdlYktpdDo6V2ViRnJhbWUq
LCBib29sIGVuYWJsZWRQZXJTZXR0aW5ncywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIGNvbnN0IFdlYktpdDo6V2ViU2VjdXJpdHlPcmlnaW4mLCBjb25zdCBX
ZWJLaXQ6OldlYlVSTCYpOwogCi0gICAgLy8gU2V0cyB0aGUgZGlmZmVyZW50IHBvbGljaWVzLgor
ICAgIC8vIEhvb2tzIHRvIHNldCB0aGUgZGlmZmVyZW50IHBvbGljaWVzLgogICAgIHZvaWQgc2V0
SW1hZ2VzQWxsb3dlZChib29sKTsKICAgICB2b2lkIHNldFN0b3JhZ2VBbGxvd2VkKGJvb2wpOwor
ICAgIHZvaWQgc2V0RGlzcGxheWluZ0luc2VjdXJlQ29udGVudEFsbG93ZWQoYm9vbCk7CisgICAg
dm9pZCBzZXRSdW5uaW5nSW5zZWN1cmVDb250ZW50QWxsb3dlZChib29sKTsKIAotICAgIC8vIFJl
c2V0cyB0aGUgcG9saWN5IHRvIGFsbG93IGFsbCBhY2Nlc3MuCisgICAgLy8gUmVzZXRzIHRoZSBw
b2xpY3kgdG8gYWxsb3cgaW1hZ2VzLCBzdG9yYWdlLCBkaXNwbGF5aW5nIGluc2VjdXJlLCBidXQg
bm90IHJ1bm5pbmcgaW5zZWN1cmUuCiAgICAgdm9pZCByZXNldCgpOwogCiBwcml2YXRlOgogICAg
IGJvb2wgbV9pbWFnZXNBbGxvd2VkOwogICAgIGJvb2wgbV9zdG9yYWdlQWxsb3dlZDsKKyAgICBi
b29sIG1fZGlzcGxheWluZ0luc2VjdXJlQ29udGVudEFsbG93ZWQ7CisgICAgYm9vbCBtX3J1bm5p
bmdJbnNlY3VyZUNvbnRlbnRBbGxvd2VkOwogfTsKIAogI2VuZGlmCkluZGV4OiBMYXlvdXRUZXN0
cy9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCShyZXZpc2lv
biA4ODM2NykKKysrIExheW91dFRlc3RzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwz
ICsxLDIzIEBACisyMDExLTA2LTA4ICBUb20gU2VwZXogIDx0c2VwZXpAY2hyb21pdW0ub3JnPgor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIENocm9taXVt
IG1peGVkIGNvbnRlbnQgYmxvY2tpbmcsIGVuc3VyZSB0aGF0IGJvdGggcHJlZmVyZW5jZXMgYW5k
IHdlYiBwZXJtaXNzaW9ucworICAgICAgICBjb250cm9sIHRoZSBvdXRjb21lLiAgRW5zdXJlIG5v
dGlmeSBjYWxsYmFjayBnZXRzIGludm9rZWQgZXZlbiB3aXRoIGluc2VjdXJlIGNvbnRlbnQuCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD02MTk0NgorICAg
ICAgICAKKyAgICAgICAgKiBodHRwL3Rlc3RzL3NlY3VyaXR5L21peGVkQ29udGVudC9yZXNvdXJj
ZXMvZnJhbWUtd2l0aC1pbnNlY3VyZS1pbWFnZS5odG1sOgorICAgICAgICAqIGh0dHAvdGVzdHMv
c2VjdXJpdHkvbWl4ZWRDb250ZW50L3Jlc291cmNlcy9mcmFtZS13aXRoLWluc2VjdXJlLXNjcmlw
dC5odG1sOgorICAgICAgICAqIHBsYXRmb3JtL2Nocm9taXVtL2h0dHAvdGVzdHMvc2VjdXJpdHkv
bWl4ZWRDb250ZW50OiBBZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9jaHJvbWl1bS9odHRwL3Rl
c3RzL3NlY3VyaXR5L21peGVkQ29udGVudC9pbnNlY3VyZS1pbWFnZS1pbi1tYWluLWZyYW1lLWFs
bG93ZWQtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9jaHJvbWl1bS9o
dHRwL3Rlc3RzL3NlY3VyaXR5L21peGVkQ29udGVudC9pbnNlY3VyZS1pbWFnZS1pbi1tYWluLWZy
YW1lLWFsbG93ZWQuaHRtbDogQWRkZWQuCisgICAgICAgICogcGxhdGZvcm0vY2hyb21pdW0vaHR0
cC90ZXN0cy9zZWN1cml0eS9taXhlZENvbnRlbnQvaW5zZWN1cmUtaW1hZ2UtaW4tbWFpbi1mcmFt
ZS1ibG9ja2VkLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogcGxhdGZvcm0vY2hyb21p
dW0vaHR0cC90ZXN0cy9zZWN1cml0eS9taXhlZENvbnRlbnQvaW5zZWN1cmUtaW1hZ2UtaW4tbWFp
bi1mcmFtZS1ibG9ja2VkLmh0bWw6IEFkZGVkLgorICAgICAgICAqIHBsYXRmb3JtL2Nocm9taXVt
L2h0dHAvdGVzdHMvc2VjdXJpdHkvbWl4ZWRDb250ZW50L2luc2VjdXJlLXNjcmlwdC1pbi1tYWlu
LWZyYW1lLWFsbG93ZWQtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9j
aHJvbWl1bS9odHRwL3Rlc3RzL3NlY3VyaXR5L21peGVkQ29udGVudC9pbnNlY3VyZS1zY3JpcHQt
aW4tbWFpbi1mcmFtZS1hbGxvd2VkLmh0bWw6IEFkZGVkLgorICAgICAgICAqIHBsYXRmb3JtL2No
cm9taXVtL2h0dHAvdGVzdHMvc2VjdXJpdHkvbWl4ZWRDb250ZW50L2luc2VjdXJlLXNjcmlwdC1p
bi1tYWluLWZyYW1lLWJsb2NrZWQtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBwbGF0
Zm9ybS9jaHJvbWl1bS9odHRwL3Rlc3RzL3NlY3VyaXR5L21peGVkQ29udGVudC9pbnNlY3VyZS1z
Y3JpcHQtaW4tbWFpbi1mcmFtZS1ibG9ja2VkLmh0bWw6IEFkZGVkLgorCiAyMDExLTA2LTA4ICBN
YXJrIFBpbGdyaW0gIDxwaWxncmltQGNocm9taXVtLm9yZz4KIAogICAgICAgICBSZXZpZXdlZCBi
eSBUb255IENoYW5nLgpJbmRleDogTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9taXhl
ZENvbnRlbnQvcmVzb3VyY2VzL2ZyYW1lLXdpdGgtaW5zZWN1cmUtaW1hZ2UuaHRtbAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L21peGVkQ29udGVudC9yZXNv
dXJjZXMvZnJhbWUtd2l0aC1pbnNlY3VyZS1pbWFnZS5odG1sCShyZXZpc2lvbiA4ODI4MCkKKysr
IExheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvbWl4ZWRDb250ZW50L3Jlc291cmNlcy9m
cmFtZS13aXRoLWluc2VjdXJlLWltYWdlLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTEsOCArMSwx
MSBAQAorPGh0bWw+Cis8Ym9keSBvbmxvYWQ9ImZyYW1lTG9hZGVkKCkiPgogPHNjcmlwdD4KLWZ1
bmN0aW9uIGltZ0xvYWRlZCgpIHsKK2Z1bmN0aW9uIGZyYW1lTG9hZGVkKCkgewogICBpZiAod2lu
ZG93Lm9wZW5lcikKICAgICB3aW5kb3cub3BlbmVyLnBvc3RNZXNzYWdlKCdkb25lJywgJyonKTsK
IH0KIDwvc2NyaXB0PgotPGltZyBvbmxvYWQ9ImltZ0xvYWRlZCgpIgotICAgICBzcmM9Imh0dHA6
Ly8xMjcuMC4wLjE6ODA4MC9zZWN1cml0eS9yZXNvdXJjZXMvY29tcGFzcy5qcGciPgorPGltZyBz
cmM9Imh0dHA6Ly8xMjcuMC4wLjE6ODA4MC9zZWN1cml0eS9yZXNvdXJjZXMvY29tcGFzcy5qcGci
PgorPC9ib2R5PgorPC9odG1sPgpJbmRleDogTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0
eS9taXhlZENvbnRlbnQvcmVzb3VyY2VzL2ZyYW1lLXdpdGgtaW5zZWN1cmUtc2NyaXB0Lmh0bWwK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9taXhlZENvbnRl
bnQvcmVzb3VyY2VzL2ZyYW1lLXdpdGgtaW5zZWN1cmUtc2NyaXB0Lmh0bWwJKHJldmlzaW9uIDg4
MjgwKQorKysgTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9taXhlZENvbnRlbnQvcmVz
b3VyY2VzL2ZyYW1lLXdpdGgtaW5zZWN1cmUtc2NyaXB0Lmh0bWwJKHdvcmtpbmcgY29weSkKQEAg
LTEgKzEsOSBAQAorPGJvZHkgb25sb2FkPSJmcmFtZUxvYWRlZCgpIj4KKzxzY3JpcHQ+CitmdW5j
dGlvbiBmcmFtZUxvYWRlZCgpIHsKKyAgaWYgKHdpbmRvdy5vcGVuZXIpCisgICAgd2luZG93Lm9w
ZW5lci5wb3N0TWVzc2FnZSgnZG9uZScsICcqJyk7Cit9Cis8L3NjcmlwdD4KIDxzY3JpcHQgc3Jj
PSJodHRwOi8vMTI3LjAuMC4xOjgwODAvc2VjdXJpdHkvbWl4ZWRDb250ZW50L3Jlc291cmNlcy9z
Y3JpcHQuanMiPjwvc2NyaXB0PgorPC9ib2R5PgpJbmRleDogTGF5b3V0VGVzdHMvcGxhdGZvcm0v
Y2hyb21pdW0vaHR0cC90ZXN0cy9zZWN1cml0eS9taXhlZENvbnRlbnQvaW5zZWN1cmUtaW1hZ2Ut
aW4tbWFpbi1mcmFtZS1hbGxvd2VkLWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRU
ZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS9odHRwL3Rlc3RzL3NlY3VyaXR5L21peGVkQ29udGVudC9p
bnNlY3VyZS1pbWFnZS1pbi1tYWluLWZyYW1lLWFsbG93ZWQtZXhwZWN0ZWQudHh0CShyZXZpc2lv
biAwKQorKysgTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vaHR0cC90ZXN0cy9zZWN1cml0
eS9taXhlZENvbnRlbnQvaW5zZWN1cmUtaW1hZ2UtaW4tbWFpbi1mcmFtZS1hbGxvd2VkLWV4cGVj
dGVkLnR4dAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSwxNyBAQAorbWFpbiBmcmFtZSAtIGRpZFN0
YXJ0UHJvdmlzaW9uYWxMb2FkRm9yRnJhbWUKK21haW4gZnJhbWUgLSBkaWRGaW5pc2hEb2N1bWVu
dExvYWRGb3JGcmFtZQorbWFpbiBmcmFtZSAtIGRpZEhhbmRsZU9ubG9hZEV2ZW50c0ZvckZyYW1l
CittYWluIGZyYW1lIC0gZGlkRmluaXNoTG9hZEZvckZyYW1lCittYWluIGZyYW1lIC0gZGlkQ29t
bWl0TG9hZEZvckZyYW1lCitmcmFtZSAiPCEtLWZyYW1lUGF0aCAvLzwhLS1mcmFtZTAtLT4tLT4i
IC0gZGlkU3RhcnRQcm92aXNpb25hbExvYWRGb3JGcmFtZQorQ09OU09MRSBNRVNTQUdFOiBsaW5l
IDE6IFRoZSBwYWdlIGF0IGFib3V0OmJsYW5rIGRpc3BsYXllZCBpbnNlY3VyZSBjb250ZW50IGZy
b20gaHR0cDovLzEyNy4wLjAuMTo4MDgwL3NlY3VyaXR5L21peGVkQ29udGVudC9yZXNvdXJjZXMv
Ym9yaW5nLmh0bWwuCisKK2RpZERpc3BsYXlJbnNlY3VyZUNvbnRlbnQKK21haW4gZnJhbWUgLSBk
aWRGaW5pc2hEb2N1bWVudExvYWRGb3JGcmFtZQorZnJhbWUgIjwhLS1mcmFtZVBhdGggLy88IS0t
ZnJhbWUwLS0+LS0+IiAtIGRpZENvbW1pdExvYWRGb3JGcmFtZQorZnJhbWUgIjwhLS1mcmFtZVBh
dGggLy88IS0tZnJhbWUwLS0+LS0+IiAtIGRpZEZpbmlzaERvY3VtZW50TG9hZEZvckZyYW1lCitm
cmFtZSAiPCEtLWZyYW1lUGF0aCAvLzwhLS1mcmFtZTAtLT4tLT4iIC0gZGlkSGFuZGxlT25sb2Fk
RXZlbnRzRm9yRnJhbWUKK21haW4gZnJhbWUgLSBkaWRIYW5kbGVPbmxvYWRFdmVudHNGb3JGcmFt
ZQorZnJhbWUgIjwhLS1mcmFtZVBhdGggLy88IS0tZnJhbWUwLS0+LS0+IiAtIGRpZEZpbmlzaExv
YWRGb3JGcmFtZQorbWFpbiBmcmFtZSAtIGRpZEZpbmlzaExvYWRGb3JGcmFtZQorVGhpcyB0ZXN0
IG9wZW5zIGEgd2luZG93IHRoYXQgbG9hZHMgYW4gaW5zZWN1cmUgaW1hZ2UuIFdlIHNob3VsZCB0
cmlnZ2VyIGEgbWl4ZWQgY29udGVudCBjYWxsYmFjayBldmVuIHRob3VnaCB3ZSd2ZSBzZXQgdGhl
IHByZWZlcmVuY2UgdG8gYmxvY2sgdGhpcywgYmVjYXVzZSB3ZSd2ZSBvdmVycmlkZW4gdGhlIHBy
ZWZlcmVuY2UgdmlhIGEgd2ViIHBlcm1pc3Npb24gY2xpZW50IGNhbGxiYWNrLgpJbmRleDogTGF5
b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vaHR0cC90ZXN0cy9zZWN1cml0eS9taXhlZENvbnRl
bnQvaW5zZWN1cmUtaW1hZ2UtaW4tbWFpbi1mcmFtZS1hbGxvd2VkLmh0bWwKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vaHR0cC90ZXN0cy9zZWN1cml0eS9taXhl
ZENvbnRlbnQvaW5zZWN1cmUtaW1hZ2UtaW4tbWFpbi1mcmFtZS1hbGxvd2VkLmh0bWwJKHJldmlz
aW9uIDApCisrKyBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS9odHRwL3Rlc3RzL3NlY3Vy
aXR5L21peGVkQ29udGVudC9pbnNlY3VyZS1pbWFnZS1pbi1tYWluLWZyYW1lLWFsbG93ZWQuaHRt
bAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSwyNyBAQAorPGh0bWw+Cis8Ym9keT4KKzxzY3JpcHQ+
CitpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKSB7CisgICAgbGF5b3V0VGVzdENvbnRy
b2xsZXIud2FpdFVudGlsRG9uZSgpOworICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1Rl
eHQoKTsKKyAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wRnJhbWVMb2FkQ2FsbGJhY2tzKCk7
CisgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuc2V0Q2FuT3BlbldpbmRvd3MoKTsKKyAgICBsYXlv
dXRUZXN0Q29udHJvbGxlci5zZXRDbG9zZVJlbWFpbmluZ1dpbmRvd3NXaGVuQ29tcGxldGUodHJ1
ZSk7CisgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIub3ZlcnJpZGVQcmVmZXJlbmNlKCJXZWJLaXRB
bGxvd0Rpc3BsYXlpbmdJbnNlY3VyZUNvbnRlbnQiLCBmYWxzZSk7CisgICAgbGF5b3V0VGVzdENv
bnRyb2xsZXIuc2V0QWxsb3dEaXNwbGF5T2ZJbnNlY3VyZUNvbnRlbnQodHJ1ZSk7Cit9CisKK3dp
bmRvdy5hZGRFdmVudExpc3RlbmVyKCJtZXNzYWdlIiwgZnVuY3Rpb24gKGUpIHsKKyAgaWYgKHdp
bmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKKyAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLm5v
dGlmeURvbmUoKTsKK30sIGZhbHNlKTsKKworPC9zY3JpcHQ+Cis8cD5UaGlzIHRlc3Qgb3BlbnMg
YSB3aW5kb3cgdGhhdCBsb2FkcyBhbiBpbnNlY3VyZSBpbWFnZS4gIFdlIHNob3VsZCB0cmlnZ2Vy
CithIG1peGVkIGNvbnRlbnQgY2FsbGJhY2sgZXZlbiB0aG91Z2ggd2UndmUgc2V0IHRoZSBwcmVm
ZXJlbmNlIHRvIGJsb2NrIHRoaXMsCitiZWNhdXNlIHdlJ3ZlIG92ZXJyaWRlbiB0aGUgcHJlZmVy
ZW5jZSB2aWEgYSB3ZWIgcGVybWlzc2lvbiBjbGllbnQgY2FsbGJhY2suPC9wPgorPHNjcmlwdD4K
K3dpbmRvdy5vcGVuKCJodHRwczovLzEyNy4wLjAuMTo4NDQzL3NlY3VyaXR5L21peGVkQ29udGVu
dC9yZXNvdXJjZXMvZnJhbWUtd2l0aC1pbnNlY3VyZS1mcmFtZS5odG1sIik7Cis8L3NjcmlwdD4K
KzwvYm9keT4KKzwvaHRtbD4KSW5kZXg6IExheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL2h0
dHAvdGVzdHMvc2VjdXJpdHkvbWl4ZWRDb250ZW50L2luc2VjdXJlLWltYWdlLWluLW1haW4tZnJh
bWUtYmxvY2tlZC1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvcGxhdGZv
cm0vY2hyb21pdW0vaHR0cC90ZXN0cy9zZWN1cml0eS9taXhlZENvbnRlbnQvaW5zZWN1cmUtaW1h
Z2UtaW4tbWFpbi1mcmFtZS1ibG9ja2VkLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMCkKKysrIExh
eW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL2h0dHAvdGVzdHMvc2VjdXJpdHkvbWl4ZWRDb250
ZW50L2luc2VjdXJlLWltYWdlLWluLW1haW4tZnJhbWUtYmxvY2tlZC1leHBlY3RlZC50eHQJKHJl
dmlzaW9uIDApCkBAIC0wLDAgKzEsMTEgQEAKK21haW4gZnJhbWUgLSBkaWRTdGFydFByb3Zpc2lv
bmFsTG9hZEZvckZyYW1lCittYWluIGZyYW1lIC0gZGlkRmluaXNoRG9jdW1lbnRMb2FkRm9yRnJh
bWUKK21haW4gZnJhbWUgLSBkaWRIYW5kbGVPbmxvYWRFdmVudHNGb3JGcmFtZQorbWFpbiBmcmFt
ZSAtIGRpZEZpbmlzaExvYWRGb3JGcmFtZQorbWFpbiBmcmFtZSAtIGRpZENvbW1pdExvYWRGb3JG
cmFtZQorQ09OU09MRSBNRVNTQUdFOiBsaW5lIDE6IFtibG9ja2VkXSBUaGUgcGFnZSBhdCBodHRw
czovLzEyNy4wLjAuMTo4NDQzL3NlY3VyaXR5L21peGVkQ29udGVudC9yZXNvdXJjZXMvZnJhbWUt
d2l0aC1pbnNlY3VyZS1pbWFnZS5odG1sIGRpc3BsYXllZCBpbnNlY3VyZSBjb250ZW50IGZyb20g
aHR0cDovLzEyNy4wLjAuMTo4MDgwL3NlY3VyaXR5L3Jlc291cmNlcy9jb21wYXNzLmpwZy4KKwor
bWFpbiBmcmFtZSAtIGRpZEZpbmlzaERvY3VtZW50TG9hZEZvckZyYW1lCittYWluIGZyYW1lIC0g
ZGlkSGFuZGxlT25sb2FkRXZlbnRzRm9yRnJhbWUKK21haW4gZnJhbWUgLSBkaWRGaW5pc2hMb2Fk
Rm9yRnJhbWUKK1RoaXMgdGVzdCBvcGVucyBhIHdpbmRvdyB0aGF0IGxvYWRzIGFuIGluc2VjdXJl
IGltYWdlLiBXZSBzaG91bGQgbm90IHRyaWdnZXIgYSBtaXhlZCBjb250ZW50IGNhbGxiYWNrIGV2
ZW4gdGhvdWdoIHRoZSBtYWluIGZyYW1lIGluIHRoZSB3aW5kb3cgaXMgSFRUUFMgYW5kIGlzIGRp
c3BsYXlpbmcgaW5zZWN1cmUgY29udGVudCwgYmVjYXVzZSB3ZSd2ZSBzZXQgdGhlIHByZWZlcmVu
Y2UgdG8gYmxvY2sgdGhpcy4KSW5kZXg6IExheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL2h0
dHAvdGVzdHMvc2VjdXJpdHkvbWl4ZWRDb250ZW50L2luc2VjdXJlLWltYWdlLWluLW1haW4tZnJh
bWUtYmxvY2tlZC5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9t
aXVtL2h0dHAvdGVzdHMvc2VjdXJpdHkvbWl4ZWRDb250ZW50L2luc2VjdXJlLWltYWdlLWluLW1h
aW4tZnJhbWUtYmxvY2tlZC5odG1sCShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvcGxhdGZv
cm0vY2hyb21pdW0vaHR0cC90ZXN0cy9zZWN1cml0eS9taXhlZENvbnRlbnQvaW5zZWN1cmUtaW1h
Z2UtaW4tbWFpbi1mcmFtZS1ibG9ja2VkLmh0bWwJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsMjcg
QEAKKzxodG1sPgorPGJvZHk+Cis8c2NyaXB0PgoraWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJv
bGxlcikgeworICAgIGxheW91dFRlc3RDb250cm9sbGVyLndhaXRVbnRpbERvbmUoKTsKKyAgICBs
YXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7CisgICAgbGF5b3V0VGVzdENvbnRyb2xs
ZXIuZHVtcEZyYW1lTG9hZENhbGxiYWNrcygpOworICAgIGxheW91dFRlc3RDb250cm9sbGVyLnNl
dENhbk9wZW5XaW5kb3dzKCk7CisgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuc2V0Q2xvc2VSZW1h
aW5pbmdXaW5kb3dzV2hlbkNvbXBsZXRlKHRydWUpOworICAgIGxheW91dFRlc3RDb250cm9sbGVy
Lm92ZXJyaWRlUHJlZmVyZW5jZSgiV2ViS2l0QWxsb3dEaXNwbGF5aW5nSW5zZWN1cmVDb250ZW50
IiwgZmFsc2UpOworfQorCit3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigibWVzc2FnZSIsIGZ1bmN0
aW9uIChlKSB7CisgIGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCisgICAgICBsYXlv
dXRUZXN0Q29udHJvbGxlci5ub3RpZnlEb25lKCk7Cit9LCBmYWxzZSk7CisKKzwvc2NyaXB0Pgor
PHA+VGhpcyB0ZXN0IG9wZW5zIGEgd2luZG93IHRoYXQgbG9hZHMgYW4gaW5zZWN1cmUgaW1hZ2Uu
ICBXZSBzaG91bGQgbm90Cit0cmlnZ2VyIGEgbWl4ZWQgY29udGVudCBjYWxsYmFjayBldmVuIHRo
b3VnaCB0aGUgbWFpbiBmcmFtZSBpbiB0aGUgd2luZG93CitpcyBIVFRQUyBhbmQgaXMgZGlzcGxh
eWluZyBpbnNlY3VyZSBjb250ZW50LCBiZWNhdXNlIHdlJ3ZlIHNldCB0aGUgcHJlZmVyZW5jZQor
dG8gYmxvY2sgdGhpcy48L3A+Cis8c2NyaXB0Pgord2luZG93Lm9wZW4oImh0dHBzOi8vMTI3LjAu
MC4xOjg0NDMvc2VjdXJpdHkvbWl4ZWRDb250ZW50L3Jlc291cmNlcy9mcmFtZS13aXRoLWluc2Vj
dXJlLWltYWdlLmh0bWwiKTsKKzwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpJbmRleDogTGF5
b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vaHR0cC90ZXN0cy9zZWN1cml0eS9taXhlZENvbnRl
bnQvaW5zZWN1cmUtc2NyaXB0LWluLW1haW4tZnJhbWUtYWxsb3dlZC1leHBlY3RlZC50eHQKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vaHR0cC90ZXN0cy9zZWN1
cml0eS9taXhlZENvbnRlbnQvaW5zZWN1cmUtc2NyaXB0LWluLW1haW4tZnJhbWUtYWxsb3dlZC1l
eHBlY3RlZC50eHQJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1
bS9odHRwL3Rlc3RzL3NlY3VyaXR5L21peGVkQ29udGVudC9pbnNlY3VyZS1zY3JpcHQtaW4tbWFp
bi1mcmFtZS1hbGxvd2VkLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSwxMiBA
QAorbWFpbiBmcmFtZSAtIGRpZFN0YXJ0UHJvdmlzaW9uYWxMb2FkRm9yRnJhbWUKK21haW4gZnJh
bWUgLSBkaWRGaW5pc2hEb2N1bWVudExvYWRGb3JGcmFtZQorbWFpbiBmcmFtZSAtIGRpZEhhbmRs
ZU9ubG9hZEV2ZW50c0ZvckZyYW1lCittYWluIGZyYW1lIC0gZGlkRmluaXNoTG9hZEZvckZyYW1l
CittYWluIGZyYW1lIC0gZGlkQ29tbWl0TG9hZEZvckZyYW1lCitDT05TT0xFIE1FU1NBR0U6IGxp
bmUgMTogVGhlIHBhZ2UgYXQgaHR0cHM6Ly8xMjcuMC4wLjE6ODQ0My9zZWN1cml0eS9taXhlZENv
bnRlbnQvcmVzb3VyY2VzL2ZyYW1lLXdpdGgtaW5zZWN1cmUtc2NyaXB0Lmh0bWwgcmFuIGluc2Vj
dXJlIGNvbnRlbnQgZnJvbSBodHRwOi8vMTI3LjAuMC4xOjgwODAvc2VjdXJpdHkvbWl4ZWRDb250
ZW50L3Jlc291cmNlcy9zY3JpcHQuanMuCisKK2RpZFJ1bkluc2VjdXJlQ29udGVudAorbWFpbiBm
cmFtZSAtIGRpZEZpbmlzaERvY3VtZW50TG9hZEZvckZyYW1lCittYWluIGZyYW1lIC0gZGlkSGFu
ZGxlT25sb2FkRXZlbnRzRm9yRnJhbWUKK21haW4gZnJhbWUgLSBkaWRGaW5pc2hMb2FkRm9yRnJh
bWUKK1RoaXMgdGVzdCBvcGVucyBhIHdpbmRvdyB0aGF0IGxvYWRzIGFuIGluc2VjdXJlIHNjcmlw
dC4gV2Ugc2hvdWxkIHRyaWdnZXIgYSBtaXhlZCBjb250ZW50IGNhbGxiYWNrIGV2ZW4gdGhvdWdo
IHdlJ3ZlIHNldCB0aGUgcHJlZmVyZW5jZSB0byBibG9jayB0aGlzLCBiZWNhdXNlIHdlJ3ZlIG92
ZXJyaWRlbiB0aGUgcHJlZmVyZW5jZSB2aWEgYSB3ZWIgcGVybWlzc2lvbiBjbGllbnQgY2FsbGJh
Y2suCkluZGV4OiBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS9odHRwL3Rlc3RzL3NlY3Vy
aXR5L21peGVkQ29udGVudC9pbnNlY3VyZS1zY3JpcHQtaW4tbWFpbi1mcmFtZS1hbGxvd2VkLmh0
bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vaHR0cC90ZXN0
cy9zZWN1cml0eS9taXhlZENvbnRlbnQvaW5zZWN1cmUtc2NyaXB0LWluLW1haW4tZnJhbWUtYWxs
b3dlZC5odG1sCShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0v
aHR0cC90ZXN0cy9zZWN1cml0eS9taXhlZENvbnRlbnQvaW5zZWN1cmUtc2NyaXB0LWluLW1haW4t
ZnJhbWUtYWxsb3dlZC5odG1sCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDI3IEBACis8aHRtbD4K
Kzxib2R5PgorPHNjcmlwdD4KK2lmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpIHsKKyAg
ICBsYXlvdXRUZXN0Q29udHJvbGxlci53YWl0VW50aWxEb25lKCk7CisgICAgbGF5b3V0VGVzdENv
bnRyb2xsZXIuZHVtcEFzVGV4dCgpOworICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBGcmFt
ZUxvYWRDYWxsYmFja3MoKTsKKyAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5zZXRDYW5PcGVuV2lu
ZG93cygpOworICAgIGxheW91dFRlc3RDb250cm9sbGVyLnNldENsb3NlUmVtYWluaW5nV2luZG93
c1doZW5Db21wbGV0ZSh0cnVlKTsKKyAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5vdmVycmlkZVBy
ZWZlcmVuY2UoIldlYktpdEFsbG93UnVubmluZ0luc2VjdXJlQ29udGVudCIsIGZhbHNlKTsKKyAg
ICBsYXlvdXRUZXN0Q29udHJvbGxlci5zZXRBbGxvd1J1bm5pbmdPZkluc2VjdXJlQ29udGVudCh0
cnVlKTsKK30KKword2luZG93LmFkZEV2ZW50TGlzdGVuZXIoIm1lc3NhZ2UiLCBmdW5jdGlvbiAo
ZSkgeworICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQorICAgICAgbGF5b3V0VGVz
dENvbnRyb2xsZXIubm90aWZ5RG9uZSgpOworfSwgZmFsc2UpOworCis8L3NjcmlwdD4KKzxwPlRo
aXMgdGVzdCBvcGVucyBhIHdpbmRvdyB0aGF0IGxvYWRzIGFuIGluc2VjdXJlIHNjcmlwdC4gIFdl
IHNob3VsZCB0cmlnZ2VyCithIG1peGVkIGNvbnRlbnQgY2FsbGJhY2sgZXZlbiB0aG91Z2ggd2Un
dmUgc2V0IHRoZSBwcmVmZXJlbmNlIHRvIGJsb2NrIHRoaXMsCitiZWNhdXNlIHdlJ3ZlIG92ZXJy
aWRlbiB0aGUgcHJlZmVyZW5jZSB2aWEgYSB3ZWIgcGVybWlzc2lvbiBjbGllbnQgY2FsbGJhY2su
PC9wPgorPHNjcmlwdD4KK3dpbmRvdy5vcGVuKCJodHRwczovLzEyNy4wLjAuMTo4NDQzL3NlY3Vy
aXR5L21peGVkQ29udGVudC9yZXNvdXJjZXMvZnJhbWUtd2l0aC1pbnNlY3VyZS1zY3JpcHQuaHRt
bCIpOworPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CkluZGV4OiBMYXlvdXRUZXN0cy9wbGF0
Zm9ybS9jaHJvbWl1bS9odHRwL3Rlc3RzL3NlY3VyaXR5L21peGVkQ29udGVudC9pbnNlY3VyZS1z
Y3JpcHQtaW4tbWFpbi1mcmFtZS1ibG9ja2VkLWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBM
YXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS9odHRwL3Rlc3RzL3NlY3VyaXR5L21peGVkQ29u
dGVudC9pbnNlY3VyZS1zY3JpcHQtaW4tbWFpbi1mcmFtZS1ibG9ja2VkLWV4cGVjdGVkLnR4dAko
cmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL2h0dHAvdGVzdHMv
c2VjdXJpdHkvbWl4ZWRDb250ZW50L2luc2VjdXJlLXNjcmlwdC1pbi1tYWluLWZyYW1lLWJsb2Nr
ZWQtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDExIEBACittYWluIGZyYW1l
IC0gZGlkU3RhcnRQcm92aXNpb25hbExvYWRGb3JGcmFtZQorbWFpbiBmcmFtZSAtIGRpZEZpbmlz
aERvY3VtZW50TG9hZEZvckZyYW1lCittYWluIGZyYW1lIC0gZGlkSGFuZGxlT25sb2FkRXZlbnRz
Rm9yRnJhbWUKK21haW4gZnJhbWUgLSBkaWRGaW5pc2hMb2FkRm9yRnJhbWUKK21haW4gZnJhbWUg
LSBkaWRDb21taXRMb2FkRm9yRnJhbWUKK0NPTlNPTEUgTUVTU0FHRTogbGluZSAxOiBbYmxvY2tl
ZF0gVGhlIHBhZ2UgYXQgaHR0cHM6Ly8xMjcuMC4wLjE6ODQ0My9zZWN1cml0eS9taXhlZENvbnRl
bnQvcmVzb3VyY2VzL2ZyYW1lLXdpdGgtaW5zZWN1cmUtc2NyaXB0Lmh0bWwgcmFuIGluc2VjdXJl
IGNvbnRlbnQgZnJvbSBodHRwOi8vMTI3LjAuMC4xOjgwODAvc2VjdXJpdHkvbWl4ZWRDb250ZW50
L3Jlc291cmNlcy9zY3JpcHQuanMuCisKK21haW4gZnJhbWUgLSBkaWRGaW5pc2hEb2N1bWVudExv
YWRGb3JGcmFtZQorbWFpbiBmcmFtZSAtIGRpZEhhbmRsZU9ubG9hZEV2ZW50c0ZvckZyYW1lCitt
YWluIGZyYW1lIC0gZGlkRmluaXNoTG9hZEZvckZyYW1lCitUaGlzIHRlc3Qgb3BlbnMgYSB3aW5k
b3cgdGhhdCBsb2FkcyBhbiBpbnNlY3VyZSBzY3JpcHQuIFdlIHNob3VsZCBub3QgdHJpZ2dlciBh
IG1peGVkIGNvbnRlbnQgY2FsbGJhY2sgZXZlbiB0aG91Z2ggdGhlIG1haW4gZnJhbWUgaW4gdGhl
IHdpbmRvdyBpcyBIVFRQUyBhbmQgaXMgcnVubmluZyBpbnNlY3VyZSBzY3JpcHRzLCBiZWNhdXNl
IHdlJ3ZlIHNldCB0aGUgcHJlZmVyZW5jZSB0byBibG9jayB0aGlzLgpJbmRleDogTGF5b3V0VGVz
dHMvcGxhdGZvcm0vY2hyb21pdW0vaHR0cC90ZXN0cy9zZWN1cml0eS9taXhlZENvbnRlbnQvaW5z
ZWN1cmUtc2NyaXB0LWluLW1haW4tZnJhbWUtYmxvY2tlZC5odG1sCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExh
eW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL2h0dHAvdGVzdHMvc2VjdXJpdHkvbWl4ZWRDb250
ZW50L2luc2VjdXJlLXNjcmlwdC1pbi1tYWluLWZyYW1lLWJsb2NrZWQuaHRtbAkocmV2aXNpb24g
MCkKKysrIExheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL2h0dHAvdGVzdHMvc2VjdXJpdHkv
bWl4ZWRDb250ZW50L2luc2VjdXJlLXNjcmlwdC1pbi1tYWluLWZyYW1lLWJsb2NrZWQuaHRtbAko
cmV2aXNpb24gMCkKQEAgLTAsMCArMSwyNyBAQAorPGh0bWw+Cis8Ym9keT4KKzxzY3JpcHQ+Citp
ZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKSB7CisgICAgbGF5b3V0VGVzdENvbnRyb2xs
ZXIud2FpdFVudGlsRG9uZSgpOworICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQo
KTsKKyAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wRnJhbWVMb2FkQ2FsbGJhY2tzKCk7Cisg
ICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuc2V0Q2FuT3BlbldpbmRvd3MoKTsKKyAgICBsYXlvdXRU
ZXN0Q29udHJvbGxlci5zZXRDbG9zZVJlbWFpbmluZ1dpbmRvd3NXaGVuQ29tcGxldGUodHJ1ZSk7
CisgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIub3ZlcnJpZGVQcmVmZXJlbmNlKCJXZWJLaXRBbGxv
d1J1bm5pbmdJbnNlY3VyZUNvbnRlbnQiLCBmYWxzZSk7Cit9CisKK3dpbmRvdy5hZGRFdmVudExp
c3RlbmVyKCJtZXNzYWdlIiwgZnVuY3Rpb24gKGUpIHsKKyAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0
Q29udHJvbGxlcikKKyAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLm5vdGlmeURvbmUoKTsKK30s
IGZhbHNlKTsKKworPC9zY3JpcHQ+Cis8cD5UaGlzIHRlc3Qgb3BlbnMgYSB3aW5kb3cgdGhhdCBs
b2FkcyBhbiBpbnNlY3VyZSBzY3JpcHQuICBXZSBzaG91bGQgbm90Cit0cmlnZ2VyIGEgbWl4ZWQg
Y29udGVudCBjYWxsYmFjayBldmVuIHRob3VnaCB0aGUgbWFpbiBmcmFtZSBpbiB0aGUgd2luZG93
CitpcyBIVFRQUyBhbmQgaXMgcnVubmluZyBpbnNlY3VyZSBzY3JpcHRzLCBiZWNhdXNlIHdlJ3Zl
IHNldCB0aGUgcHJlZmVyZW5jZQordG8gYmxvY2sgdGhpcy48L3A+Cis8c2NyaXB0Pgord2luZG93
Lm9wZW4oImh0dHBzOi8vMTI3LjAuMC4xOjg0NDMvc2VjdXJpdHkvbWl4ZWRDb250ZW50L3Jlc291
cmNlcy9mcmFtZS13aXRoLWluc2VjdXJlLXNjcmlwdC5odG1sIik7Cis8L3NjcmlwdD4KKzwvYm9k
eT4KKzwvaHRtbD4K
</data>

          </attachment>
      

    </bug>

</bugzilla>