<?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>138127</bug_id>
          
          <creation_ts>2014-10-27 22:23:32 -0700</creation_ts>
          <short_desc>Insecure content warnings not emitted when page is restored from page cache</short_desc>
          <delta_ts>2023-03-03 14:11:24 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>History</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>PC</rep_platform>
          <op_sys>Linux</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>WONTFIX</resolution>
          
          <see_also>https://bugs.webkit.org/show_bug.cgi?id=196182</see_also>
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>140625</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Michael Catanzaro">mcatanzaro</reporter>
          <assigned_to name="Michael Catanzaro">mcatanzaro</assigned_to>
          <cc>ap</cc>
    
    <cc>beidson</cc>
    
    <cc>berto</cc>
    
    <cc>bfulgham</cc>
    
    <cc>buildbot</cc>
    
    <cc>cdumez</cc>
    
    <cc>cgarcia</cc>
    
    <cc>commit-queue</cc>
    
    <cc>dbates</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>gustavo</cc>
    
    <cc>japhet</cc>
    
    <cc>jberlin</cc>
    
    <cc>kangil.han</cc>
    
    <cc>mbaluta</cc>
    
    <cc>mcatanzaro</cc>
    
    <cc>mkwst</cc>
    
    <cc>mrobinson</cc>
    
    <cc>rniwa</cc>
    
    <cc>wilander</cc>
    
    <cc>zan</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1044414</commentid>
    <comment_count>0</comment_count>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2014-10-27 22:23:32 -0700</bug_when>
    <thetext>When a page with insecure content is restored from the page cache, it needs to emit the normal insecure content detected events didDisplayInsecureContent or didRunInsecureContent. [1] is a quick test in a browser that displays insecure content warnings (like Epiphany). Just note the insecure content warning, then click any link on that page, then click back and note that there is no longer any warning.

This patch mostly works so I&apos;m posting it for feedback. I added GTK+ test cases to make sure not just that the insecure-content-detected signal fires, but also that this occurs after load-committed, which is what Epiphany expects and I guess is what is probably desired? (The problem is that one of the assertions I added to check this is failing, so I guess this is likely broken, but I need to debug it more.)

[1] https://www.ssllabs.com/ssltest/viewMyClient.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1044419</commentid>
    <comment_count>1</comment_count>
      <attachid>240529</attachid>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2014-10-27 22:34:21 -0700</bug_when>
    <thetext>Created attachment 240529
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1044420</commentid>
    <comment_count>2</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-10-27 22:36:32 -0700</bug_when>
    <thetext>Thanks for the patch. If this patch contains new public API please make sure it follows the guidelines for new WebKit2 GTK+ API. See http://trac.webkit.org/wiki/WebKitGTK/AddingNewWebKit2API</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1044621</commentid>
    <comment_count>3</comment_count>
      <attachid>240574</attachid>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2014-10-28 15:14:23 -0700</bug_when>
    <thetext>Created attachment 240574
Patch

Fixed that.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1045048</commentid>
    <comment_count>4</comment_count>
      <attachid>240574</attachid>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2014-10-30 10:04:15 -0700</bug_when>
    <thetext>Comment on attachment 240574
Patch

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

This is basically a new feature, and I think it&apos;d be important to test cross platform.

&gt; Source/WebCore/history/CachedFrame.cpp:107
&gt; +    if (frame.didDisplayInsecureContent()) {

How is it okay to check this on the frame when (in the common main-frame case) it is being reused from the previously shown content?

&gt; Source/WebCore/history/CachedFrame.cpp:112
&gt; +    if (frame.didRunInsecureContent()) {

Ditto.

&gt; Source/WebCore/history/CachedFrame.cpp:114
&gt; +        frame.loader().client().didRunInsecureContent(m_document-&gt;securityOrigin(), m_url);

&quot;did run insecure content&quot; being overloaded for the page cache restore case seems weird.

&gt; Source/WebCore/loader/FrameLoader.cpp:-1805
&gt; +        dispatchDidCommitLoad();
&gt; +
&gt; +        // CachedPage::restore() emits events (e.g. didDisplayInsecureContent) that are good to have after didCommitLoad.
&gt;          // FIXME: This API should be turned around so that we ground CachedPage into the Page.
&gt;          cachedPage-&gt;restore(*m_frame.page());
&gt;  
&gt; -        dispatchDidCommitLoad();

Did you run the WK2 API tests before making this change?  I suspect they will be very relevant.

Also, as is suggested in this code and your comment, FrameLoader is usually incharge of dispatching events and callbacks etc etc.  Yet now some of that logic is being moved into the cached frame restore.  That doesn&apos;t seem good.

&gt; Source/WebCore/page/Frame.h:269
&gt; +        void setDidDisplayInsecureContent(bool value = true) { m_didDisplayInsecureContent = value; }
&gt; +        bool didDisplayInsecureContent() const { return m_didDisplayInsecureContent; }
&gt; +        void setDidRunInsecureContent(bool value = true) { m_didRunInsecureContent = value; }
&gt; +        bool didRunInsecureContent() const { return m_didRunInsecureContent; }

Why is Frame the right place for these?  Frames are commonly reused between navigations (and the main frame always is)

I&apos;m not confident the values are kept fully up to date in this patch. It would be much better to attach these values to something that *does* change with navigations.  Document is one example.  DOMWindow is another.  etc etc</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1045163</commentid>
    <comment_count>5</comment_count>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2014-10-30 15:57:18 -0700</bug_when>
    <thetext>Thanks for the review. I&apos;ll work on cross-platform tests before I try to address your comments.

(In reply to comment #4)
&gt; This is basically a new feature, and I think it&apos;d be important to test cross
&gt; platform.

I&apos;d call it a minor security bug rather than a feature, since it&apos;s unsafe for a port to use these events unless it completely blocks all mixed content.

&gt; &gt; Source/WebCore/history/CachedFrame.cpp:107
&gt; &gt; +    if (frame.didDisplayInsecureContent()) {
&gt; 
&gt; How is it okay to check this on the frame when (in the common main-frame
&gt; case) it is being reused from the previously shown content?

You&apos;re right; now loading a single page with insecure content causes unrelated future loads from the page cache to emit these events, like you suspected. That&apos;s very bad. I&apos;ll add a test for this.

&gt; Did you run the WK2 API tests before making this change?  I suspect they
&gt; will be very relevant.

If we&apos;re thinking of the same tests (the Google framework ones), those all passed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1066264</commentid>
    <comment_count>6</comment_count>
      <attachid>245906</attachid>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2015-02-02 15:27:49 -0800</bug_when>
    <thetext>Created attachment 245906
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1066265</commentid>
    <comment_count>7</comment_count>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2015-02-02 15:30:09 -0800</bug_when>
    <thetext>Brady, thanks for the last review and sorry for the delay on this. I think this second attempt addresses your previous comments.

Carlos might want to approve the GTK-specific changes.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1141676</commentid>
    <comment_count>8</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2015-11-12 15:58:04 -0800</bug_when>
    <thetext>Strangely, the symptom didn&apos;t reproduce in Safari when I tested going back to &lt;https://www.ssllabs.com/ssltest/viewMyClient.html&gt; - it just won&apos;t go into page cache. I wonder if this is something that we do intentionally.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1141862</commentid>
    <comment_count>9</comment_count>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2015-11-13 10:09:32 -0800</bug_when>
    <thetext>I did consider rejecting the page from the page cache as a potential solution for this (and the equivalent favicon cache issue). The disadvantage is that would obviously make affected sites slower.

OTOH, such sites are broken, and I&apos;m fine with them receiving a performance penalty for that.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1151990</commentid>
    <comment_count>10</comment_count>
      <attachid>245906</attachid>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2016-01-02 10:12:27 -0800</bug_when>
    <thetext>Comment on attachment 245906
Patch

I think my patch should store a list of insecure URIs so that they can be reported properly, rather than pretending that the entire frame is insecure.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1430029</commentid>
    <comment_count>11</comment_count>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2018-06-04 22:17:05 -0700</bug_when>
    <thetext>*** Bug 134882 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1430030</commentid>
    <comment_count>12</comment_count>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2018-06-04 22:17:28 -0700</bug_when>
    <thetext>(In reply to Michael Catanzaro from comment #11)
&gt; *** Bug 134882 has been marked as a duplicate of this bug. ***

This (private) bug has another testcase.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1620837</commentid>
    <comment_count>13</comment_count>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2020-02-19 13:33:23 -0800</bug_when>
    <thetext>Hm, I thought this might be fixed by r206006, but the reproducer in my first comment is still failing so maybe not.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1885204</commentid>
    <comment_count>14</comment_count>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2022-07-19 14:59:21 -0700</bug_when>
    <thetext>If we fix bug #219396, then we can close this issue as obsolete because the page cache should never contain insecure content.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1938637</commentid>
    <comment_count>15</comment_count>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2023-03-03 14:11:24 -0800</bug_when>
    <thetext>This is obsoleted by bug #247197 and bug #219396.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>240529</attachid>
            <date>2014-10-27 22:34:21 -0700</date>
            <delta_ts>2014-10-28 15:14:17 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-138127-20141028003429.patch</filename>
            <type>text/plain</type>
            <size>13498</size>
            <attacher name="Michael Catanzaro">mcatanzaro</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTc1MjMxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYmQ1ZjY4NzIxOWJhN2Fj
NzlkZjBkMzY0ZjM0YTQxMWVmNmE4MTBhOC4uOGU2MGIwZTI0NTg4ODVlNDA4NDFkZmNlMWUxOTY3
NjJmNjA4ZjhlYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMxIEBACisyMDE0LTEwLTI3ICBNaWNo
YWVsIENhdGFuemFybyAgPG1jYXRhbnphcm9AaWdhbGlhLmNvbT4KKworICAgICAgICBJbnNlY3Vy
ZSBjb250ZW50IHdhcm5pbmdzIG5vdCBlbWl0dGVkIHdoZW4gcGFnZSBpcyByZXN0b3JlZCBmcm9t
IHBhZ2UgY2FjaGUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTEzODEyNworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgICogaGlzdG9yeS9DYWNoZWRGcmFtZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDYWNoZWRG
cmFtZUJhc2U6OnJlc3RvcmUpOgorICAgICAgICBDaGVjayB0aGUgRnJhbWUgdG8gc2VlIGlmIGl0
IGlzIGluc2VjdXJlIGNvbnRlbnQsIGFuZCBlbWl0IHRoZQorICAgICAgICBhcHByb3ByaWF0ZSBl
dmVudHMgaWYgc28uCisgICAgICAgICogbG9hZGVyL0ZyYW1lTG9hZGVyLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OkZyYW1lTG9hZGVyOjpjb21taXRQcm92aXNpb25hbExvYWQpOgorICAgICAgICBS
ZWNvcmQgaW4gdGhlIEZyYW1lIGlmIGluc2VjdXJlIGNvbnRlbnQgaGFzIGV2ZXIgYmVlbiBsb2Fk
ZWQuCisgICAgICAgICogbG9hZGVyL01peGVkQ29udGVudENoZWNrZXIuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6TWl4ZWRDb250ZW50Q2hlY2tlcjo6Y2FuRGlzcGxheUluc2VjdXJlQ29udGVudCk6
CisgICAgICAgIChXZWJDb3JlOjpNaXhlZENvbnRlbnRDaGVja2VyOjpjYW5SdW5JbnNlY3VyZUNv
bnRlbnQpOgorICAgICAgICAoV2ViQ29yZTo6TWl4ZWRDb250ZW50Q2hlY2tlcjo6bG9nV2Fybmlu
Zyk6CisgICAgICAgIE1ha2UgbG9nV2FybmluZyBlYXNpZXIgdG8gdXNlIGZyb20gb3V0c2lkZSBN
aXhlZENvbnRlbnRDaGVja2VyLgorICAgICAgICAqIGxvYWRlci9NaXhlZENvbnRlbnRDaGVja2Vy
Lmg6CisgICAgICAgIE1ha2UgbG9nV2FybmluZyBwdWJsaWMuCisgICAgICAgICogcGFnZS9GcmFt
ZS5oOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWU6OnNldERpZERpc3BsYXlJbnNlY3VyZUNvbnRl
bnQpOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWU6OmRpZERpc3BsYXlJbnNlY3VyZUNvbnRlbnQp
OgorICAgICAgICAoV2ViQ29yZTo6RnJhbWU6OnNldERpZFJ1bkluc2VjdXJlQ29udGVudCk6Cisg
ICAgICAgIChXZWJDb3JlOjpGcmFtZTo6ZGlkUnVuSW5zZWN1cmVDb250ZW50KToKKyAgICAgICAg
QWRkZWQuCisKIDIwMTQtMTAtMjcgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KIAog
ICAgICAgICBVc2Ugc2VwYXJhdGUgSGFzaE1hcHMgZm9yIGNvbW1vbiBhbmQgdW5jb21tb24gaGVh
ZGVycyBpbiBIVFRQSGVhZGVyTWFwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VM
b2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggODE5ZjcwYzY3YjY5MmFlMjVkZmRk
MGQ1YzNmZTZmMWRhNDg0Y2FjYy4uMzQ3N2UwMWYxNzY0MmE5NDI2YTNlY2FlYjU3MjZkNGJlOGE2
MGM5MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9X
ZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE3IEBACisyMDE0LTEwLTI3ICBNaWNoYWVsIENh
dGFuemFybyAgPG1jYXRhbnphcm9AaWdhbGlhLmNvbT4KKworICAgICAgICBJbnNlY3VyZSBjb250
ZW50IHdhcm5pbmdzIG5vdCBlbWl0dGVkIHdoZW4gcGFnZSBpcyByZXN0b3JlZCBmcm9tIHBhZ2Ug
Y2FjaGUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEz
ODEyNworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIElm
IHRoZSBsb2FkIGhhcyBzdGFydGVkIGJ1dCBoYXMgbm90IGJlZW4gY29tbWl0dGVkLCBxdWV1ZSBp
bnNlY3VyZQorICAgICAgICBjb250ZW50IGV2ZW50cyB1bnRpbCB0aGUgbG9hZCBpcyBjb21taXR0
ZWQuCisKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRXZWJWaWV3LmNwcDoKKyAg
ICAgICAgKHdlYmtpdFdlYlZpZXdFbWl0TG9hZENoYW5nZWQpOgorICAgICAgICAod2Via2l0V2Vi
Vmlld0luc2VjdXJlQ29udGVudERldGVjdGVkKToKKwogMjAxNC0xMC0yNyAgQ2hyaXMgRHVtZXog
IDxjZHVtZXpAYXBwbGUuY29tPgogCiAgICAgICAgIFVzZSBzZXBhcmF0ZSBIYXNoTWFwcyBmb3Ig
Y29tbW9uIGFuZCB1bmNvbW1vbiBoZWFkZXJzIGluIEhUVFBIZWFkZXJNYXAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2hpc3RvcnkvQ2FjaGVkRnJhbWUuY3BwIGIvU291cmNlL1dlYkNvcmUv
aGlzdG9yeS9DYWNoZWRGcmFtZS5jcHAKaW5kZXggNTBlNjU5NmQwYTczNWJlODdhNTI2OGNjZTY4
NDE5NDk4N2Q4YzFiMC4uMjhiMzQ1M2RiNjg5NjkwZDIxZjkzMDRhOTg5ZmZiNTI5ZWNlYmFhYiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaGlzdG9yeS9DYWNoZWRGcmFtZS5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvaGlzdG9yeS9DYWNoZWRGcmFtZS5jcHAKQEAgLTEwNCw2ICsxMDQsMTYg
QEAgdm9pZCBDYWNoZWRGcmFtZUJhc2U6OnJlc3RvcmUoKQogCiAgICAgZnJhbWUubG9hZGVyKCku
Y2xpZW50KCkuZGlkUmVzdG9yZUZyb21QYWdlQ2FjaGUoKTsKIAorICAgIGlmIChmcmFtZS5kaWRE
aXNwbGF5SW5zZWN1cmVDb250ZW50KCkpIHsKKyAgICAgICAgZnJhbWUubG9hZGVyKCkubWl4ZWRD
b250ZW50Q2hlY2tlcigpLmxvZ1dhcm5pbmcodHJ1ZSwgSW5zZWN1cmVDb250ZW50RXZlbnQ6Oklu
c2VjdXJlQ29udGVudERpc3BsYXllZCwgbV91cmwpOworICAgICAgICBmcmFtZS5sb2FkZXIoKS5j
bGllbnQoKS5kaWREaXNwbGF5SW5zZWN1cmVDb250ZW50KCk7CisgICAgfQorCisgICAgaWYgKGZy
YW1lLmRpZFJ1bkluc2VjdXJlQ29udGVudCgpKSB7CisgICAgICAgIGZyYW1lLmxvYWRlcigpLm1p
eGVkQ29udGVudENoZWNrZXIoKS5sb2dXYXJuaW5nKHRydWUsIEluc2VjdXJlQ29udGVudEV2ZW50
OjpJbnNlY3VyZUNvbnRlbnRSdW4sIG1fdXJsKTsKKyAgICAgICAgZnJhbWUubG9hZGVyKCkuY2xp
ZW50KCkuZGlkUnVuSW5zZWN1cmVDb250ZW50KG1fZG9jdW1lbnQtPnNlY3VyaXR5T3JpZ2luKCks
IG1fdXJsKTsKKyAgICB9CisKICAgICAvLyBSZWNvbnN0cnVjdCB0aGUgRnJhbWVUcmVlLiBBbmQg
b3BlbiB0aGUgY2hpbGQgQ2FjaGVkRnJhbWVzIGluIHRoZWlyIHJlc3BlY3RpdmUgRnJhbWVMb2Fk
ZXJzLgogICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBtX2NoaWxkRnJhbWVzLnNpemUoKTsg
KytpKSB7CiAgICAgICAgIGZyYW1lLnRyZWUoKS5hcHBlbmRDaGlsZCgmbV9jaGlsZEZyYW1lc1tp
XS0+dmlldygpLT5mcmFtZSgpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9G
cmFtZUxvYWRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXIuY3BwCmlu
ZGV4IDkyMDc0NDQxN2NlYjYxOWViZDQ3ODU5ODI1YjM5YWI1ODcxMDU4YjguLmEwNjc3MGVkNTRi
NTNmMzcxYTIyZTJiOWVhNTkzODk1N2Q0ZDIwMWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2xvYWRlci9GcmFtZUxvYWRlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1l
TG9hZGVyLmNwcApAQCAtMTc5OSwxMCArMTc5OSwxMyBAQCB2b2lkIEZyYW1lTG9hZGVyOjpjb21t
aXRQcm92aXNpb25hbExvYWQoKQogI2VuZGlmCiAgICAgICAgIHByZXBhcmVGb3JDYWNoZWRQYWdl
UmVzdG9yZSgpOwogCisgICAgICAgIGRpc3BhdGNoRGlkQ29tbWl0TG9hZCgpOworCisgICAgICAg
IC8vIFJlc3RvcmUgdGhlIGNhY2hlZCBwYWdlIGFmdGVyIGRpc3BhdGNoRGlkQ29tbWl0TG9hZCgp
IHNvIHRoYXQgdGhlIGNhY2hlZCBwYWdlCisgICAgICAgIC8vIG1heSBzYWZlbHkgZmlyZSBsb2Fk
IGV2ZW50cyAoZS5nLiBmb3IgbWl4ZWQgY29udGVudCBkZXRlY3Rpb24pLgogICAgICAgICAvLyBG
SVhNRTogVGhpcyBBUEkgc2hvdWxkIGJlIHR1cm5lZCBhcm91bmQgc28gdGhhdCB3ZSBncm91bmQg
Q2FjaGVkUGFnZSBpbnRvIHRoZSBQYWdlLgogICAgICAgICBjYWNoZWRQYWdlLT5yZXN0b3JlKCpt
X2ZyYW1lLnBhZ2UoKSk7CiAKLSAgICAgICAgZGlzcGF0Y2hEaWRDb21taXRMb2FkKCk7CiAjaWYg
UExBVEZPUk0oSU9TKQogICAgICAgICBtX2ZyYW1lLnBhZ2UoKS0+Y2hyb21lKCkuc2V0RGlzcGF0
Y2hWaWV3cG9ydERhdGFEaWRDaGFuZ2VTdXBwcmVzc2VkKGZhbHNlKTsKICAgICAgICAgbV9mcmFt
ZS5wYWdlKCktPmNocm9tZSgpLmRpc3BhdGNoVmlld3BvcnRQcm9wZXJ0aWVzRGlkQ2hhbmdlKG1f
ZnJhbWUucGFnZSgpLT52aWV3cG9ydEFyZ3VtZW50cygpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2xvYWRlci9NaXhlZENvbnRlbnRDaGVja2VyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xv
YWRlci9NaXhlZENvbnRlbnRDaGVja2VyLmNwcAppbmRleCA3YzJkMmUzYWM4OTkyZjkwNDI3YTAw
MzJmM2QzYzIzNTZkY2EzN2Y3Li40MDU3NTgyZDI0YTY1YWVkMWZkZDMzZTVlODgxNGIwOWJkYWJj
MWVhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvTWl4ZWRDb250ZW50Q2hlY2tl
ci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL01peGVkQ29udGVudENoZWNrZXIuY3Bw
CkBAIC02NiwxMCArNjYsMTIgQEAgYm9vbCBNaXhlZENvbnRlbnRDaGVja2VyOjpjYW5EaXNwbGF5
SW5zZWN1cmVDb250ZW50KFNlY3VyaXR5T3JpZ2luKiBzZWN1cml0eU9yaWcKICAgICAgICAgcmV0
dXJuIHRydWU7CiAKICAgICBib29sIGFsbG93ZWQgPSBtX2ZyYW1lLnNldHRpbmdzKCkuYWxsb3dE
aXNwbGF5T2ZJbnNlY3VyZUNvbnRlbnQoKTsKLSAgICBsb2dXYXJuaW5nKGFsbG93ZWQsICJkaXNw
bGF5ZWQiLCB1cmwpOworICAgIGxvZ1dhcm5pbmcoYWxsb3dlZCwgSW5zZWN1cmVDb250ZW50RXZl
bnQ6Okluc2VjdXJlQ29udGVudERpc3BsYXllZCwgdXJsKTsKIAotICAgIGlmIChhbGxvd2VkKQor
ICAgIGlmIChhbGxvd2VkKSB7CisgICAgICAgIG1fZnJhbWUuc2V0RGlkRGlzcGxheUluc2VjdXJl
Q29udGVudCgpOwogICAgICAgICBjbGllbnQoKS5kaWREaXNwbGF5SW5zZWN1cmVDb250ZW50KCk7
CisgICAgfQogCiAgICAgcmV0dXJuIGFsbG93ZWQ7CiB9CkBAIC04MCwxNyArODIsMTkgQEAgYm9v
bCBNaXhlZENvbnRlbnRDaGVja2VyOjpjYW5SdW5JbnNlY3VyZUNvbnRlbnQoU2VjdXJpdHlPcmln
aW4qIHNlY3VyaXR5T3JpZ2luLAogICAgICAgICByZXR1cm4gdHJ1ZTsKIAogICAgIGJvb2wgYWxs
b3dlZCA9IG1fZnJhbWUuc2V0dGluZ3MoKS5hbGxvd1J1bm5pbmdPZkluc2VjdXJlQ29udGVudCgp
OwotICAgIGxvZ1dhcm5pbmcoYWxsb3dlZCwgInJhbiIsIHVybCk7CisgICAgbG9nV2FybmluZyhh
bGxvd2VkLCBJbnNlY3VyZUNvbnRlbnRFdmVudDo6SW5zZWN1cmVDb250ZW50UnVuLCB1cmwpOwog
Ci0gICAgaWYgKGFsbG93ZWQpCisgICAgaWYgKGFsbG93ZWQpIHsKKyAgICAgICAgbV9mcmFtZS5z
ZXREaWRSdW5JbnNlY3VyZUNvbnRlbnQoKTsKICAgICAgICAgY2xpZW50KCkuZGlkUnVuSW5zZWN1
cmVDb250ZW50KHNlY3VyaXR5T3JpZ2luLCB1cmwpOworICAgIH0KIAogICAgIHJldHVybiBhbGxv
d2VkOwogfQogCi12b2lkIE1peGVkQ29udGVudENoZWNrZXI6OmxvZ1dhcm5pbmcoYm9vbCBhbGxv
d2VkLCBjb25zdCBTdHJpbmcmIGFjdGlvbiwgY29uc3QgVVJMJiB0YXJnZXQpIGNvbnN0Cit2b2lk
IE1peGVkQ29udGVudENoZWNrZXI6OmxvZ1dhcm5pbmcoYm9vbCBhbGxvd2VkLCBJbnNlY3VyZUNv
bnRlbnRFdmVudCBldmVudCwgY29uc3QgVVJMJiB0YXJnZXQpIGNvbnN0CiB7Ci0gICAgU3RyaW5n
IG1lc3NhZ2UgPSBtYWtlU3RyaW5nKChhbGxvd2VkID8gU3RyaW5nKCkgOiAiW2Jsb2NrZWRdICIp
LCAiVGhlIHBhZ2UgYXQgIiwgbV9mcmFtZS5kb2N1bWVudCgpLT51cmwoKS5zdHJpbmdDZW50ZXJF
bGxpcHNpemVkVG9MZW5ndGgoKSwgJyAnLCBhY3Rpb24sICIgaW5zZWN1cmUgY29udGVudCBmcm9t
ICIsIHRhcmdldC5zdHJpbmdDZW50ZXJFbGxpcHNpemVkVG9MZW5ndGgoKSwgIi5cbiIpOworICAg
IFN0cmluZyBtZXNzYWdlID0gbWFrZVN0cmluZygoYWxsb3dlZCA/IFN0cmluZygpIDogIltibG9j
a2VkXSAiKSwgIlRoZSBwYWdlIGF0ICIsIG1fZnJhbWUuZG9jdW1lbnQoKS0+dXJsKCkuc3RyaW5n
Q2VudGVyRWxsaXBzaXplZFRvTGVuZ3RoKCksIGV2ZW50ID09IEluc2VjdXJlQ29udGVudEV2ZW50
OjpJbnNlY3VyZUNvbnRlbnRSdW4gPyAiIHJhbiIgOiAiIGRpc3BsYXllZCIsICIgaW5zZWN1cmUg
Y29udGVudCBmcm9tICIsIHRhcmdldC5zdHJpbmdDZW50ZXJFbGxpcHNpemVkVG9MZW5ndGgoKSwg
Ii5cbiIpOwogICAgIG1fZnJhbWUuZG9jdW1lbnQoKS0+YWRkQ29uc29sZU1lc3NhZ2UoTWVzc2Fn
ZVNvdXJjZTo6U2VjdXJpdHksIE1lc3NhZ2VMZXZlbDo6V2FybmluZywgbWVzc2FnZSk7CiB9CiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9NaXhlZENvbnRlbnRDaGVja2VyLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvTWl4ZWRDb250ZW50Q2hlY2tlci5oCmluZGV4IGJmZjlj
Nzk1ZmUxZTU1M2I5MTg1ZDc0MTc5Njk1OTRlZmJiODkzYTcuLmZhNzFkZThjMzVlOWYzNmUzNWQ3
ZWNkZGY2Yzg0MDczMGI5NmUzY2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9N
aXhlZENvbnRlbnRDaGVja2VyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL01peGVkQ29u
dGVudENoZWNrZXIuaApAQCAtNDEsNiArNDEsMTEgQEAgY2xhc3MgRnJhbWVMb2FkZXJDbGllbnQ7
CiBjbGFzcyBVUkw7CiBjbGFzcyBTZWN1cml0eU9yaWdpbjsKIAorZW51bSBjbGFzcyBJbnNlY3Vy
ZUNvbnRlbnRFdmVudCB7CisgICAgSW5zZWN1cmVDb250ZW50RGlzcGxheWVkLAorICAgIEluc2Vj
dXJlQ29udGVudFJ1bgorfTsKKwogY2xhc3MgTWl4ZWRDb250ZW50Q2hlY2tlciB7CiAgICAgV1RG
X01BS0VfTk9OQ09QWUFCTEUoTWl4ZWRDb250ZW50Q2hlY2tlcik7CiBwdWJsaWM6CkBAIC01MCwx
MiArNTUsMTIgQEAgcHVibGljOgogICAgIGJvb2wgY2FuUnVuSW5zZWN1cmVDb250ZW50KFNlY3Vy
aXR5T3JpZ2luKiwgY29uc3QgVVJMJikgY29uc3Q7CiAgICAgc3RhdGljIGJvb2wgaXNNaXhlZENv
bnRlbnQoU2VjdXJpdHlPcmlnaW4qLCBjb25zdCBVUkwmKTsKIAorICAgIHZvaWQgbG9nV2Fybmlu
Zyhib29sIGFsbG93ZWQsIEluc2VjdXJlQ29udGVudEV2ZW50LCBjb25zdCBVUkwmKSBjb25zdDsK
KwogcHJpdmF0ZToKICAgICAvLyBGSVhNRTogVGhpcyBzaG91bGQgcHJvYmFibHkgaGF2ZSBhIHNl
cGFyYXRlIGNsaWVudCBmcm9tIEZyYW1lTG9hZGVyLgogICAgIEZyYW1lTG9hZGVyQ2xpZW50JiBj
bGllbnQoKSBjb25zdDsKIAotICAgIHZvaWQgbG9nV2FybmluZyhib29sIGFsbG93ZWQsIGNvbnN0
IFN0cmluZyYgYWN0aW9uLCBjb25zdCBVUkwmKSBjb25zdDsKLQogICAgIEZyYW1lJiBtX2ZyYW1l
OwogfTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZS5oIGIvU291cmNl
L1dlYkNvcmUvcGFnZS9GcmFtZS5oCmluZGV4IDZlZGRhMzQyMDc5MzAzOGY4MzJkN2E4MzIzZmY3
MGExM2ZhY2E4NjMuLjRhODBiOGMyMmRjYjcxYTJkYzQ4NGMyNzViZTY5YjNlNDk5NmVjZjEgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWUuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL0ZyYW1lLmgKQEAgLTI2Myw2ICsyNjMsMTEgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewog
CiAgICAgICAgIGJvb2wgaXNVUkxBbGxvd2VkKGNvbnN0IFVSTCYpIGNvbnN0OwogCisgICAgICAg
IHZvaWQgc2V0RGlkRGlzcGxheUluc2VjdXJlQ29udGVudChib29sIHZhbHVlID0gdHJ1ZSkgeyBt
X2RpZERpc3BsYXlJbnNlY3VyZUNvbnRlbnQgPSB2YWx1ZTsgfQorICAgICAgICBib29sIGRpZERp
c3BsYXlJbnNlY3VyZUNvbnRlbnQoKSBjb25zdCB7IHJldHVybiBtX2RpZERpc3BsYXlJbnNlY3Vy
ZUNvbnRlbnQ7IH0KKyAgICAgICAgdm9pZCBzZXREaWRSdW5JbnNlY3VyZUNvbnRlbnQoYm9vbCB2
YWx1ZSA9IHRydWUpIHsgbV9kaWRSdW5JbnNlY3VyZUNvbnRlbnQgPSB2YWx1ZTsgfQorICAgICAg
ICBib29sIGRpZFJ1bkluc2VjdXJlQ29udGVudCgpIGNvbnN0IHsgcmV0dXJuIG1fZGlkUnVuSW5z
ZWN1cmVDb250ZW50OyB9CisKICAgICAvLyA9PT09PT09PQogCiAgICAgcHJvdGVjdGVkOgpAQCAt
MzE1LDYgKzMyMCw5IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgZmxvYXQgbV90ZXh0
Wm9vbUZhY3RvcjsKIAogICAgICAgICBpbnQgbV9hY3RpdmVET01PYmplY3RzQW5kQW5pbWF0aW9u
c1N1c3BlbmRlZENvdW50OworCisgICAgICAgIGJvb2wgbV9kaWREaXNwbGF5SW5zZWN1cmVDb250
ZW50OworICAgICAgICBib29sIG1fZGlkUnVuSW5zZWN1cmVDb250ZW50OwogICAgIH07CiAKICAg
ICBpbmxpbmUgdm9pZCBGcmFtZTo6aW5pdCgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRXZWJWaWV3LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9BUEkvZ3RrL1dlYktpdFdlYlZpZXcuY3BwCmluZGV4IGEzNTlmZGVjYTU5MDFjZTE1ZjE2
NjIyMzc4ZDIyZGIxZTA5MjA4MmIuLmYwYjViZTgxOWQyMmQ5ZjY4OGUyMTY2YmVlNjVhNGU0M2Vi
ODdlNjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktp
dFdlYlZpZXcuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktp
dFdlYlZpZXcuY3BwCkBAIC0xNjcsNiArMTY3LDcgQEAgc3RydWN0IF9XZWJLaXRXZWJWaWV3UHJp
dmF0ZSB7CiAgICAgYm9vbCB3YWl0aW5nRm9yTWFpblJlc291cmNlOwogICAgIHVuc2lnbmVkIGxv
bmcgbWFpblJlc291cmNlUmVzcG9uc2VIYW5kbGVySUQ7CiAgICAgV2ViS2l0TG9hZEV2ZW50IGxh
c3REZWxheWVkRXZlbnQ7CisgICAgc3RkOjp1bmlxdWVfcHRyPFdlYktpdEluc2VjdXJlQ29udGVu
dEV2ZW50PiBkZWxheWVkSW5zZWN1cmVDb250ZW50RXZlbnQ7CiAKICAgICBHUmVmUHRyPFdlYktp
dEJhY2tGb3J3YXJkTGlzdD4gYmFja0ZvcndhcmRMaXN0OwogICAgIEdSZWZQdHI8V2ViS2l0U2V0
dGluZ3M+IHNldHRpbmdzOwpAQCAtMTU5Nyw5ICsxNTk4LDEzIEBAIHN0YXRpYyB2b2lkIHdlYmtp
dFdlYlZpZXdFbWl0TG9hZENoYW5nZWQoV2ViS2l0V2ViVmlldyogd2ViVmlldywgV2ViS2l0TG9h
ZEV2ZW50CiAgICAgZ19zaWduYWxfZW1pdCh3ZWJWaWV3LCBzaWduYWxzW0xPQURfQ0hBTkdFRF0s
IDAsIGxvYWRFdmVudCk7CiAKICAgICBpZiAoaXNEZWxheWVkRXZlbnQpIHsKLSAgICAgICAgaWYg
KGxvYWRFdmVudCA9PSBXRUJLSVRfTE9BRF9DT01NSVRURUQpCisgICAgICAgIGlmIChsb2FkRXZl
bnQgPT0gV0VCS0lUX0xPQURfQ09NTUlUVEVEKSB7CiAgICAgICAgICAgICB3ZWJWaWV3LT5wcml2
LT53YWl0aW5nRm9yTWFpblJlc291cmNlID0gZmFsc2U7Ci0gICAgICAgIGVsc2UgaWYgKGxvYWRF
dmVudCA9PSBXRUJLSVRfTE9BRF9GSU5JU0hFRCkgeworICAgICAgICAgICAgaWYgKHdlYlZpZXct
PnByaXYtPmRlbGF5ZWRJbnNlY3VyZUNvbnRlbnRFdmVudCkgeworICAgICAgICAgICAgICAgIGdf
c2lnbmFsX2VtaXQod2ViVmlldywgc2lnbmFsc1tJTlNFQ1VSRV9DT05URU5UX0RFVEVDVEVEXSwg
MCwgKndlYlZpZXctPnByaXYtPmRlbGF5ZWRJbnNlY3VyZUNvbnRlbnRFdmVudCk7CisgICAgICAg
ICAgICAgICAgd2ViVmlldy0+cHJpdi0+ZGVsYXllZEluc2VjdXJlQ29udGVudEV2ZW50LnJlc2V0
KCk7CisgICAgICAgICAgICB9CisgICAgICAgIH0gZWxzZSBpZiAobG9hZEV2ZW50ID09IFdFQktJ
VF9MT0FEX0ZJTklTSEVEKSB7CiAgICAgICAgICAgICAvLyBNYW51YWxseSBzZXQgaXMtbG9hZGlu
ZyBhZ2FpbiBpbiBjYXNlIGEgbmV3IGxvYWQgd2FzIHN0YXJ0ZWQuCiAgICAgICAgICAgICB3ZWJr
aXRXZWJWaWV3U2V0SXNMb2FkaW5nKHdlYlZpZXcsIGdldFBhZ2Uod2ViVmlldyktPnBhZ2VMb2Fk
U3RhdGUoKS5pc0xvYWRpbmcoKSk7CiAgICAgICAgIH0KQEAgLTE5NDYsNyArMTk1MSwxMCBAQCB2
b2lkIHdlYmtpdFdlYlZpZXdIYW5kbGVBdXRoZW50aWNhdGlvbkNoYWxsZW5nZShXZWJLaXRXZWJW
aWV3KiB3ZWJWaWV3LCBBdXRoZW50aQogCiB2b2lkIHdlYmtpdFdlYlZpZXdJbnNlY3VyZUNvbnRl
bnREZXRlY3RlZChXZWJLaXRXZWJWaWV3KiB3ZWJWaWV3LCBXZWJLaXRJbnNlY3VyZUNvbnRlbnRF
dmVudCB0eXBlKQogewotICAgIGdfc2lnbmFsX2VtaXQod2ViVmlldywgc2lnbmFsc1tJTlNFQ1VS
RV9DT05URU5UX0RFVEVDVEVEXSwgMCwgdHlwZSk7CisgICAgaWYgKHdlYlZpZXctPnByaXYtPndh
aXRpbmdGb3JNYWluUmVzb3VyY2UpCisgICAgICAgIHdlYlZpZXctPnByaXYtPmRlbGF5ZWRJbnNl
Y3VyZUNvbnRlbnRFdmVudCA9IHN0ZDo6bWFrZV91bmlxdWU8V2ViS2l0SW5zZWN1cmVDb250ZW50
RXZlbnQ+KHR5cGUpOworICAgIGVsc2UKKyAgICAgICAgZ19zaWduYWxfZW1pdCh3ZWJWaWV3LCBz
aWduYWxzW0lOU0VDVVJFX0NPTlRFTlRfREVURUNURURdLCAwLCB0eXBlKTsKIH0KIAogLyoqCmRp
ZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cgYi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggY2ZkNjkx
M2YwMmI3OTAxNTc1YmQxZjMwMGQ3NmM5MTgyZDNkNTA2Ny4uMDQxODAwMWJlZWQ2OGI2YmY4YzQx
ZGExNzAyYjU0YWEwZTBiNmIzMSAxMDA2NDQKLS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rv
b2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE3IEBACisyMDE0LTEwLTI3ICBNaWNoYWVsIENhdGFu
emFybyAgPG1jYXRhbnphcm9AaWdhbGlhLmNvbT4KKworICAgICAgICBJbnNlY3VyZSBjb250ZW50
IHdhcm5pbmdzIG5vdCBlbWl0dGVkIHdoZW4gcGFnZSBpcyByZXN0b3JlZCBmcm9tIHBhZ2UgY2Fj
aGUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEzODEy
NworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZCBH
VEsrIHRlc3QgdG8gZW5zdXJlIHRoYXQgaW5zZWN1cmUtY29udGVudC1kZXRlY3RlZCBpcyBlbWl0
dGVkIHdoZW4KKyAgICAgICAgYSBwYWdlIGlzIHJlc3RvcmVkIGZyb20gdGhlIHBhZ2UgY2FjaGUu
IEFsc28gZW5zdXJlIHRoaXMgb2NjdXJzIGJlZm9yZQorICAgICAgICBsb2FkLWNvbW1pdHRlZC4K
KworICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Mkd0ay9UZXN0U1NMLmNwcDoK
KyAgICAgICAgKHRlc3RJbnNlY3VyZUNvbnRlbnQpOgorCiAyMDE0LTEwLTI1ICBSYW5pZXJlIFNp
bHZhICA8cmFuaWVyZUBpbWUudW5pY2FtcC5icj4KIAogICAgICAgICBGaXggbGluayB0byBBcmNo
IExpbnV4IFdpa2kKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0
Mkd0ay9UZXN0U1NMLmNwcCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Mkd0ay9U
ZXN0U1NMLmNwcAppbmRleCA3MjMyNjAwY2JlNWEwZTBmYTI2ZmU1MjE5NWI0NTVkZmJhMjIxNzI3
Li5jMmZiYmE0YmNlMjdmMDI3MTM4ZjQ2YWQyMjViOGM0YjdjMzVlNzA3IDEwMDY0NAotLS0gYS9U
b29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDJHdGsvVGVzdFNTTC5jcHAKKysrIGIvVG9v
bHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyR3RrL1Rlc3RTU0wuY3BwCkBAIC04OCw3ICs4
OCw3IEBAIHN0YXRpYyB2b2lkIHRlc3RTU0woU1NMVGVzdCogdGVzdCwgZ2NvbnN0cG9pbnRlcikK
ICAgICB3ZWJraXRfd2ViX2NvbnRleHRfc2V0X3Rsc19lcnJvcnNfcG9saWN5KGNvbnRleHQsIG9y
aWdpbmFsUG9saWN5KTsKIH0KIAotY2xhc3MgSW5zZWN1cmVDb250ZW50VGVzdDogcHVibGljIFdl
YlZpZXdUZXN0IHsKK2NsYXNzIEluc2VjdXJlQ29udGVudFRlc3Q6IHB1YmxpYyBMb2FkVHJhY2tp
bmdUZXN0IHsKIHB1YmxpYzoKICAgICBNQUtFX0dMSUJfVEVTVF9GSVhUVVJFKEluc2VjdXJlQ29u
dGVudFRlc3QpOwogCkBAIC0xMTAsNiArMTEwLDEzIEBAIHB1YmxpYzoKICAgICAgICAgICAgIHRl
c3QtPm1faW5zZWN1cmVDb250ZW50RGlzcGxheWVkID0gdHJ1ZTsKICAgICB9CiAKKyAgICB2aXJ0
dWFsIHZvaWQgbG9hZENvbW1pdHRlZCgpCisgICAgeworICAgICAgICAvLyBFbnN1cmUgaW5zZWN1
cmUtY29udGVudC1kZXRlY3RlZCBkb2VzIG5vdCBmaXJlIHVudGlsIGFmdGVyIGxvYWQtY29tbWl0
dGVkLgorICAgICAgICBnX2Fzc2VydCghbV9pbnNlY3VyZUNvbnRlbnRSdW4pOworICAgICAgICBn
X2Fzc2VydCghbV9pbnNlY3VyZUNvbnRlbnREaXNwbGF5ZWQpOworICAgIH0KKwogICAgIGJvb2wg
bV9pbnNlY3VyZUNvbnRlbnRSdW47CiAgICAgYm9vbCBtX2luc2VjdXJlQ29udGVudERpc3BsYXll
ZDsKIH07CkBAIC0xMjYsNiArMTMzLDE5IEBAIHN0YXRpYyB2b2lkIHRlc3RJbnNlY3VyZUNvbnRl
bnQoSW5zZWN1cmVDb250ZW50VGVzdCogdGVzdCwgZ2NvbnN0cG9pbnRlcikKICAgICBnX2Fzc2Vy
dCh0ZXN0LT5tX2luc2VjdXJlQ29udGVudFJ1bik7CiAgICAgZ19hc3NlcnQodGVzdC0+bV9pbnNl
Y3VyZUNvbnRlbnREaXNwbGF5ZWQpOwogCisgICAgdGVzdC0+bV9pbnNlY3VyZUNvbnRlbnRSdW4g
PSBmYWxzZTsKKyAgICB0ZXN0LT5tX2luc2VjdXJlQ29udGVudERpc3BsYXllZCA9IGZhbHNlOwor
ICAgIHRlc3QtPmxvYWRVUkkoa0h0dHBzU2VydmVyLT5nZXRVUklGb3JQYXRoKCIvIikuZGF0YSgp
KTsKKyAgICB0ZXN0LT53YWl0VW50aWxMb2FkRmluaXNoZWQoKTsKKyAgICBnX2Fzc2VydCghdGVz
dC0+bV9pbnNlY3VyZUNvbnRlbnRSdW4pOworICAgIGdfYXNzZXJ0KCF0ZXN0LT5tX2luc2VjdXJl
Q29udGVudERpc3BsYXllZCk7CisKKyAgICAvLyBFbnN1cmUgaW5zZWN1cmUgY29udGVudCBpcyBk
ZXRlY3RlZCB3aGVuIHBhZ2UgaXMgcmVzdG9yZWQgZnJvbSBwYWdlIGNhY2hlCisgICAgdGVzdC0+
Z29CYWNrKCk7CisgICAgdGVzdC0+d2FpdFVudGlsTG9hZEZpbmlzaGVkKCk7CisgICAgZ19hc3Nl
cnQodGVzdC0+bV9pbnNlY3VyZUNvbnRlbnRSdW4pOworICAgIGdfYXNzZXJ0KHRlc3QtPm1faW5z
ZWN1cmVDb250ZW50RGlzcGxheWVkKTsKKwogICAgIHdlYmtpdF93ZWJfY29udGV4dF9zZXRfdGxz
X2Vycm9yc19wb2xpY3koY29udGV4dCwgb3JpZ2luYWxQb2xpY3kpOwogfQogCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>240574</attachid>
            <date>2014-10-28 15:14:23 -0700</date>
            <delta_ts>2015-02-02 15:27:43 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-138127-20141028171431.patch</filename>
            <type>text/plain</type>
            <size>13998</size>
            <attacher name="Michael Catanzaro">mcatanzaro</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTc1MjMxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYmQ1ZjY4NzIxOWJhN2Fj
NzlkZjBkMzY0ZjM0YTQxMWVmNmE4MTBhOC4uOGU2MGIwZTI0NTg4ODVlNDA4NDFkZmNlMWUxOTY3
NjJmNjA4ZjhlYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMxIEBACisyMDE0LTEwLTI3ICBNaWNo
YWVsIENhdGFuemFybyAgPG1jYXRhbnphcm9AaWdhbGlhLmNvbT4KKworICAgICAgICBJbnNlY3Vy
ZSBjb250ZW50IHdhcm5pbmdzIG5vdCBlbWl0dGVkIHdoZW4gcGFnZSBpcyByZXN0b3JlZCBmcm9t
IHBhZ2UgY2FjaGUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTEzODEyNworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgICogaGlzdG9yeS9DYWNoZWRGcmFtZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDYWNoZWRG
cmFtZUJhc2U6OnJlc3RvcmUpOgorICAgICAgICBDaGVjayB0aGUgRnJhbWUgdG8gc2VlIGlmIGl0
IGlzIGluc2VjdXJlIGNvbnRlbnQsIGFuZCBlbWl0IHRoZQorICAgICAgICBhcHByb3ByaWF0ZSBl
dmVudHMgaWYgc28uCisgICAgICAgICogbG9hZGVyL0ZyYW1lTG9hZGVyLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OkZyYW1lTG9hZGVyOjpjb21taXRQcm92aXNpb25hbExvYWQpOgorICAgICAgICBS
ZWNvcmQgaW4gdGhlIEZyYW1lIGlmIGluc2VjdXJlIGNvbnRlbnQgaGFzIGV2ZXIgYmVlbiBsb2Fk
ZWQuCisgICAgICAgICogbG9hZGVyL01peGVkQ29udGVudENoZWNrZXIuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6TWl4ZWRDb250ZW50Q2hlY2tlcjo6Y2FuRGlzcGxheUluc2VjdXJlQ29udGVudCk6
CisgICAgICAgIChXZWJDb3JlOjpNaXhlZENvbnRlbnRDaGVja2VyOjpjYW5SdW5JbnNlY3VyZUNv
bnRlbnQpOgorICAgICAgICAoV2ViQ29yZTo6TWl4ZWRDb250ZW50Q2hlY2tlcjo6bG9nV2Fybmlu
Zyk6CisgICAgICAgIE1ha2UgbG9nV2FybmluZyBlYXNpZXIgdG8gdXNlIGZyb20gb3V0c2lkZSBN
aXhlZENvbnRlbnRDaGVja2VyLgorICAgICAgICAqIGxvYWRlci9NaXhlZENvbnRlbnRDaGVja2Vy
Lmg6CisgICAgICAgIE1ha2UgbG9nV2FybmluZyBwdWJsaWMuCisgICAgICAgICogcGFnZS9GcmFt
ZS5oOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWU6OnNldERpZERpc3BsYXlJbnNlY3VyZUNvbnRl
bnQpOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWU6OmRpZERpc3BsYXlJbnNlY3VyZUNvbnRlbnQp
OgorICAgICAgICAoV2ViQ29yZTo6RnJhbWU6OnNldERpZFJ1bkluc2VjdXJlQ29udGVudCk6Cisg
ICAgICAgIChXZWJDb3JlOjpGcmFtZTo6ZGlkUnVuSW5zZWN1cmVDb250ZW50KToKKyAgICAgICAg
QWRkZWQuCisKIDIwMTQtMTAtMjcgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KIAog
ICAgICAgICBVc2Ugc2VwYXJhdGUgSGFzaE1hcHMgZm9yIGNvbW1vbiBhbmQgdW5jb21tb24gaGVh
ZGVycyBpbiBIVFRQSGVhZGVyTWFwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VM
b2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggODE5ZjcwYzY3YjY5MmFlMjVkZmRk
MGQ1YzNmZTZmMWRhNDg0Y2FjYy4uMzQ3N2UwMWYxNzY0MmE5NDI2YTNlY2FlYjU3MjZkNGJlOGE2
MGM5MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9X
ZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE3IEBACisyMDE0LTEwLTI3ICBNaWNoYWVsIENh
dGFuemFybyAgPG1jYXRhbnphcm9AaWdhbGlhLmNvbT4KKworICAgICAgICBJbnNlY3VyZSBjb250
ZW50IHdhcm5pbmdzIG5vdCBlbWl0dGVkIHdoZW4gcGFnZSBpcyByZXN0b3JlZCBmcm9tIHBhZ2Ug
Y2FjaGUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEz
ODEyNworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIElm
IHRoZSBsb2FkIGhhcyBzdGFydGVkIGJ1dCBoYXMgbm90IGJlZW4gY29tbWl0dGVkLCBxdWV1ZSBp
bnNlY3VyZQorICAgICAgICBjb250ZW50IGV2ZW50cyB1bnRpbCB0aGUgbG9hZCBpcyBjb21taXR0
ZWQuCisKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRXZWJWaWV3LmNwcDoKKyAg
ICAgICAgKHdlYmtpdFdlYlZpZXdFbWl0TG9hZENoYW5nZWQpOgorICAgICAgICAod2Via2l0V2Vi
Vmlld0luc2VjdXJlQ29udGVudERldGVjdGVkKToKKwogMjAxNC0xMC0yNyAgQ2hyaXMgRHVtZXog
IDxjZHVtZXpAYXBwbGUuY29tPgogCiAgICAgICAgIFVzZSBzZXBhcmF0ZSBIYXNoTWFwcyBmb3Ig
Y29tbW9uIGFuZCB1bmNvbW1vbiBoZWFkZXJzIGluIEhUVFBIZWFkZXJNYXAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2hpc3RvcnkvQ2FjaGVkRnJhbWUuY3BwIGIvU291cmNlL1dlYkNvcmUv
aGlzdG9yeS9DYWNoZWRGcmFtZS5jcHAKaW5kZXggNTBlNjU5NmQwYTczNWJlODdhNTI2OGNjZTY4
NDE5NDk4N2Q4YzFiMC4uMjhiMzQ1M2RiNjg5NjkwZDIxZjkzMDRhOTg5ZmZiNTI5ZWNlYmFhYiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaGlzdG9yeS9DYWNoZWRGcmFtZS5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvaGlzdG9yeS9DYWNoZWRGcmFtZS5jcHAKQEAgLTEwNCw2ICsxMDQsMTYg
QEAgdm9pZCBDYWNoZWRGcmFtZUJhc2U6OnJlc3RvcmUoKQogCiAgICAgZnJhbWUubG9hZGVyKCku
Y2xpZW50KCkuZGlkUmVzdG9yZUZyb21QYWdlQ2FjaGUoKTsKIAorICAgIGlmIChmcmFtZS5kaWRE
aXNwbGF5SW5zZWN1cmVDb250ZW50KCkpIHsKKyAgICAgICAgZnJhbWUubG9hZGVyKCkubWl4ZWRD
b250ZW50Q2hlY2tlcigpLmxvZ1dhcm5pbmcodHJ1ZSwgSW5zZWN1cmVDb250ZW50RXZlbnQ6Oklu
c2VjdXJlQ29udGVudERpc3BsYXllZCwgbV91cmwpOworICAgICAgICBmcmFtZS5sb2FkZXIoKS5j
bGllbnQoKS5kaWREaXNwbGF5SW5zZWN1cmVDb250ZW50KCk7CisgICAgfQorCisgICAgaWYgKGZy
YW1lLmRpZFJ1bkluc2VjdXJlQ29udGVudCgpKSB7CisgICAgICAgIGZyYW1lLmxvYWRlcigpLm1p
eGVkQ29udGVudENoZWNrZXIoKS5sb2dXYXJuaW5nKHRydWUsIEluc2VjdXJlQ29udGVudEV2ZW50
OjpJbnNlY3VyZUNvbnRlbnRSdW4sIG1fdXJsKTsKKyAgICAgICAgZnJhbWUubG9hZGVyKCkuY2xp
ZW50KCkuZGlkUnVuSW5zZWN1cmVDb250ZW50KG1fZG9jdW1lbnQtPnNlY3VyaXR5T3JpZ2luKCks
IG1fdXJsKTsKKyAgICB9CisKICAgICAvLyBSZWNvbnN0cnVjdCB0aGUgRnJhbWVUcmVlLiBBbmQg
b3BlbiB0aGUgY2hpbGQgQ2FjaGVkRnJhbWVzIGluIHRoZWlyIHJlc3BlY3RpdmUgRnJhbWVMb2Fk
ZXJzLgogICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBtX2NoaWxkRnJhbWVzLnNpemUoKTsg
KytpKSB7CiAgICAgICAgIGZyYW1lLnRyZWUoKS5hcHBlbmRDaGlsZCgmbV9jaGlsZEZyYW1lc1tp
XS0+dmlldygpLT5mcmFtZSgpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9G
cmFtZUxvYWRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXIuY3BwCmlu
ZGV4IDkyMDc0NDQxN2NlYjYxOWViZDQ3ODU5ODI1YjM5YWI1ODcxMDU4YjguLjYyY2ZmYzA2ZjIy
MTM2ZGFlMGY4MTUwMDMzN2M1ZmUxNmI5MjM5ZmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2xvYWRlci9GcmFtZUxvYWRlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1l
TG9hZGVyLmNwcApAQCAtMTc5OSwxMCArMTc5OSwxMiBAQCB2b2lkIEZyYW1lTG9hZGVyOjpjb21t
aXRQcm92aXNpb25hbExvYWQoKQogI2VuZGlmCiAgICAgICAgIHByZXBhcmVGb3JDYWNoZWRQYWdl
UmVzdG9yZSgpOwogCisgICAgICAgIGRpc3BhdGNoRGlkQ29tbWl0TG9hZCgpOworCisgICAgICAg
IC8vIENhY2hlZFBhZ2U6OnJlc3RvcmUoKSBlbWl0cyBldmVudHMgKGUuZy4gZGlkRGlzcGxheUlu
c2VjdXJlQ29udGVudCkgdGhhdCBhcmUgZ29vZCB0byBoYXZlIGFmdGVyIGRpZENvbW1pdExvYWQu
CiAgICAgICAgIC8vIEZJWE1FOiBUaGlzIEFQSSBzaG91bGQgYmUgdHVybmVkIGFyb3VuZCBzbyB0
aGF0IHdlIGdyb3VuZCBDYWNoZWRQYWdlIGludG8gdGhlIFBhZ2UuCiAgICAgICAgIGNhY2hlZFBh
Z2UtPnJlc3RvcmUoKm1fZnJhbWUucGFnZSgpKTsKIAotICAgICAgICBkaXNwYXRjaERpZENvbW1p
dExvYWQoKTsKICNpZiBQTEFURk9STShJT1MpCiAgICAgICAgIG1fZnJhbWUucGFnZSgpLT5jaHJv
bWUoKS5zZXREaXNwYXRjaFZpZXdwb3J0RGF0YURpZENoYW5nZVN1cHByZXNzZWQoZmFsc2UpOwog
ICAgICAgICBtX2ZyYW1lLnBhZ2UoKS0+Y2hyb21lKCkuZGlzcGF0Y2hWaWV3cG9ydFByb3BlcnRp
ZXNEaWRDaGFuZ2UobV9mcmFtZS5wYWdlKCktPnZpZXdwb3J0QXJndW1lbnRzKCkpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL01peGVkQ29udGVudENoZWNrZXIuY3BwIGIvU291
cmNlL1dlYkNvcmUvbG9hZGVyL01peGVkQ29udGVudENoZWNrZXIuY3BwCmluZGV4IDdjMmQyZTNh
Yzg5OTJmOTA0MjdhMDAzMmYzZDNjMjM1NmRjYTM3ZjcuLjQwNTc1ODJkMjRhNjVhZWQxZmRkMzNl
NWU4ODE0YjA5YmRhYmMxZWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9NaXhl
ZENvbnRlbnRDaGVja2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvTWl4ZWRDb250
ZW50Q2hlY2tlci5jcHAKQEAgLTY2LDEwICs2NiwxMiBAQCBib29sIE1peGVkQ29udGVudENoZWNr
ZXI6OmNhbkRpc3BsYXlJbnNlY3VyZUNvbnRlbnQoU2VjdXJpdHlPcmlnaW4qIHNlY3VyaXR5T3Jp
ZwogICAgICAgICByZXR1cm4gdHJ1ZTsKIAogICAgIGJvb2wgYWxsb3dlZCA9IG1fZnJhbWUuc2V0
dGluZ3MoKS5hbGxvd0Rpc3BsYXlPZkluc2VjdXJlQ29udGVudCgpOwotICAgIGxvZ1dhcm5pbmco
YWxsb3dlZCwgImRpc3BsYXllZCIsIHVybCk7CisgICAgbG9nV2FybmluZyhhbGxvd2VkLCBJbnNl
Y3VyZUNvbnRlbnRFdmVudDo6SW5zZWN1cmVDb250ZW50RGlzcGxheWVkLCB1cmwpOwogCi0gICAg
aWYgKGFsbG93ZWQpCisgICAgaWYgKGFsbG93ZWQpIHsKKyAgICAgICAgbV9mcmFtZS5zZXREaWRE
aXNwbGF5SW5zZWN1cmVDb250ZW50KCk7CiAgICAgICAgIGNsaWVudCgpLmRpZERpc3BsYXlJbnNl
Y3VyZUNvbnRlbnQoKTsKKyAgICB9CiAKICAgICByZXR1cm4gYWxsb3dlZDsKIH0KQEAgLTgwLDE3
ICs4MiwxOSBAQCBib29sIE1peGVkQ29udGVudENoZWNrZXI6OmNhblJ1bkluc2VjdXJlQ29udGVu
dChTZWN1cml0eU9yaWdpbiogc2VjdXJpdHlPcmlnaW4sCiAgICAgICAgIHJldHVybiB0cnVlOwog
CiAgICAgYm9vbCBhbGxvd2VkID0gbV9mcmFtZS5zZXR0aW5ncygpLmFsbG93UnVubmluZ09mSW5z
ZWN1cmVDb250ZW50KCk7Ci0gICAgbG9nV2FybmluZyhhbGxvd2VkLCAicmFuIiwgdXJsKTsKKyAg
ICBsb2dXYXJuaW5nKGFsbG93ZWQsIEluc2VjdXJlQ29udGVudEV2ZW50OjpJbnNlY3VyZUNvbnRl
bnRSdW4sIHVybCk7CiAKLSAgICBpZiAoYWxsb3dlZCkKKyAgICBpZiAoYWxsb3dlZCkgeworICAg
ICAgICBtX2ZyYW1lLnNldERpZFJ1bkluc2VjdXJlQ29udGVudCgpOwogICAgICAgICBjbGllbnQo
KS5kaWRSdW5JbnNlY3VyZUNvbnRlbnQoc2VjdXJpdHlPcmlnaW4sIHVybCk7CisgICAgfQogCiAg
ICAgcmV0dXJuIGFsbG93ZWQ7CiB9CiAKLXZvaWQgTWl4ZWRDb250ZW50Q2hlY2tlcjo6bG9nV2Fy
bmluZyhib29sIGFsbG93ZWQsIGNvbnN0IFN0cmluZyYgYWN0aW9uLCBjb25zdCBVUkwmIHRhcmdl
dCkgY29uc3QKK3ZvaWQgTWl4ZWRDb250ZW50Q2hlY2tlcjo6bG9nV2FybmluZyhib29sIGFsbG93
ZWQsIEluc2VjdXJlQ29udGVudEV2ZW50IGV2ZW50LCBjb25zdCBVUkwmIHRhcmdldCkgY29uc3QK
IHsKLSAgICBTdHJpbmcgbWVzc2FnZSA9IG1ha2VTdHJpbmcoKGFsbG93ZWQgPyBTdHJpbmcoKSA6
ICJbYmxvY2tlZF0gIiksICJUaGUgcGFnZSBhdCAiLCBtX2ZyYW1lLmRvY3VtZW50KCktPnVybCgp
LnN0cmluZ0NlbnRlckVsbGlwc2l6ZWRUb0xlbmd0aCgpLCAnICcsIGFjdGlvbiwgIiBpbnNlY3Vy
ZSBjb250ZW50IGZyb20gIiwgdGFyZ2V0LnN0cmluZ0NlbnRlckVsbGlwc2l6ZWRUb0xlbmd0aCgp
LCAiLlxuIik7CisgICAgU3RyaW5nIG1lc3NhZ2UgPSBtYWtlU3RyaW5nKChhbGxvd2VkID8gU3Ry
aW5nKCkgOiAiW2Jsb2NrZWRdICIpLCAiVGhlIHBhZ2UgYXQgIiwgbV9mcmFtZS5kb2N1bWVudCgp
LT51cmwoKS5zdHJpbmdDZW50ZXJFbGxpcHNpemVkVG9MZW5ndGgoKSwgZXZlbnQgPT0gSW5zZWN1
cmVDb250ZW50RXZlbnQ6Okluc2VjdXJlQ29udGVudFJ1biA/ICIgcmFuIiA6ICIgZGlzcGxheWVk
IiwgIiBpbnNlY3VyZSBjb250ZW50IGZyb20gIiwgdGFyZ2V0LnN0cmluZ0NlbnRlckVsbGlwc2l6
ZWRUb0xlbmd0aCgpLCAiLlxuIik7CiAgICAgbV9mcmFtZS5kb2N1bWVudCgpLT5hZGRDb25zb2xl
TWVzc2FnZShNZXNzYWdlU291cmNlOjpTZWN1cml0eSwgTWVzc2FnZUxldmVsOjpXYXJuaW5nLCBt
ZXNzYWdlKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL01peGVkQ29u
dGVudENoZWNrZXIuaCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9NaXhlZENvbnRlbnRDaGVja2Vy
LmgKaW5kZXggYmZmOWM3OTVmZTFlNTUzYjkxODVkNzQxNzk2OTU5NGVmYmI4OTNhNy4uZmE3MWRl
OGMzNWU5ZjM2ZTM1ZDdlY2RkZjZjODQwNzMwYjk2ZTNjZCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvbG9hZGVyL01peGVkQ29udGVudENoZWNrZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9s
b2FkZXIvTWl4ZWRDb250ZW50Q2hlY2tlci5oCkBAIC00MSw2ICs0MSwxMSBAQCBjbGFzcyBGcmFt
ZUxvYWRlckNsaWVudDsKIGNsYXNzIFVSTDsKIGNsYXNzIFNlY3VyaXR5T3JpZ2luOwogCitlbnVt
IGNsYXNzIEluc2VjdXJlQ29udGVudEV2ZW50IHsKKyAgICBJbnNlY3VyZUNvbnRlbnREaXNwbGF5
ZWQsCisgICAgSW5zZWN1cmVDb250ZW50UnVuCit9OworCiBjbGFzcyBNaXhlZENvbnRlbnRDaGVj
a2VyIHsKICAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShNaXhlZENvbnRlbnRDaGVja2VyKTsKIHB1
YmxpYzoKQEAgLTUwLDEyICs1NSwxMiBAQCBwdWJsaWM6CiAgICAgYm9vbCBjYW5SdW5JbnNlY3Vy
ZUNvbnRlbnQoU2VjdXJpdHlPcmlnaW4qLCBjb25zdCBVUkwmKSBjb25zdDsKICAgICBzdGF0aWMg
Ym9vbCBpc01peGVkQ29udGVudChTZWN1cml0eU9yaWdpbiosIGNvbnN0IFVSTCYpOwogCisgICAg
dm9pZCBsb2dXYXJuaW5nKGJvb2wgYWxsb3dlZCwgSW5zZWN1cmVDb250ZW50RXZlbnQsIGNvbnN0
IFVSTCYpIGNvbnN0OworCiBwcml2YXRlOgogICAgIC8vIEZJWE1FOiBUaGlzIHNob3VsZCBwcm9i
YWJseSBoYXZlIGEgc2VwYXJhdGUgY2xpZW50IGZyb20gRnJhbWVMb2FkZXIuCiAgICAgRnJhbWVM
b2FkZXJDbGllbnQmIGNsaWVudCgpIGNvbnN0OwogCi0gICAgdm9pZCBsb2dXYXJuaW5nKGJvb2wg
YWxsb3dlZCwgY29uc3QgU3RyaW5nJiBhY3Rpb24sIGNvbnN0IFVSTCYpIGNvbnN0OwotCiAgICAg
RnJhbWUmIG1fZnJhbWU7CiB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0Zy
YW1lLmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lLmgKaW5kZXggNmVkZGEzNDIwNzkzMDM4
ZjgzMmQ3YTgzMjNmZjcwYTEzZmFjYTg2My4uNGE4MGI4YzIyZGNiNzFhMmRjNDg0YzI3NWJlNjli
M2U0OTk2ZWNmMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZS5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWUuaApAQCAtMjYzLDYgKzI2MywxMSBAQCBuYW1lc3Bh
Y2UgV2ViQ29yZSB7CiAKICAgICAgICAgYm9vbCBpc1VSTEFsbG93ZWQoY29uc3QgVVJMJikgY29u
c3Q7CiAKKyAgICAgICAgdm9pZCBzZXREaWREaXNwbGF5SW5zZWN1cmVDb250ZW50KGJvb2wgdmFs
dWUgPSB0cnVlKSB7IG1fZGlkRGlzcGxheUluc2VjdXJlQ29udGVudCA9IHZhbHVlOyB9CisgICAg
ICAgIGJvb2wgZGlkRGlzcGxheUluc2VjdXJlQ29udGVudCgpIGNvbnN0IHsgcmV0dXJuIG1fZGlk
RGlzcGxheUluc2VjdXJlQ29udGVudDsgfQorICAgICAgICB2b2lkIHNldERpZFJ1bkluc2VjdXJl
Q29udGVudChib29sIHZhbHVlID0gdHJ1ZSkgeyBtX2RpZFJ1bkluc2VjdXJlQ29udGVudCA9IHZh
bHVlOyB9CisgICAgICAgIGJvb2wgZGlkUnVuSW5zZWN1cmVDb250ZW50KCkgY29uc3QgeyByZXR1
cm4gbV9kaWRSdW5JbnNlY3VyZUNvbnRlbnQ7IH0KKwogICAgIC8vID09PT09PT09CiAKICAgICBw
cm90ZWN0ZWQ6CkBAIC0zMTUsNiArMzIwLDkgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAg
ICBmbG9hdCBtX3RleHRab29tRmFjdG9yOwogCiAgICAgICAgIGludCBtX2FjdGl2ZURPTU9iamVj
dHNBbmRBbmltYXRpb25zU3VzcGVuZGVkQ291bnQ7CisKKyAgICAgICAgYm9vbCBtX2RpZERpc3Bs
YXlJbnNlY3VyZUNvbnRlbnQ7CisgICAgICAgIGJvb2wgbV9kaWRSdW5JbnNlY3VyZUNvbnRlbnQ7
CiAgICAgfTsKIAogICAgIGlubGluZSB2b2lkIEZyYW1lOjppbml0KCkKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFdlYlZpZXcuY3BwIGIvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0V2ViVmlldy5jcHAKaW5kZXggYTM1OWZk
ZWNhNTkwMWNlMTVmMTY2MjIzNzhkMjJkYjFlMDkyMDgyYi4uOTIyODY2MjBhNmY1ZTIyMmRjZmQ4
ZjFhYjY5MDEzNjNlZjk4MjEzNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L0FQSS9ndGsvV2ViS2l0V2ViVmlldy5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L0FQSS9ndGsvV2ViS2l0V2ViVmlldy5jcHAKQEAgLTE2Nyw2ICsxNjcsOCBAQCBzdHJ1Y3QgX1dl
YktpdFdlYlZpZXdQcml2YXRlIHsKICAgICBib29sIHdhaXRpbmdGb3JNYWluUmVzb3VyY2U7CiAg
ICAgdW5zaWduZWQgbG9uZyBtYWluUmVzb3VyY2VSZXNwb25zZUhhbmRsZXJJRDsKICAgICBXZWJL
aXRMb2FkRXZlbnQgbGFzdERlbGF5ZWRFdmVudDsKKyAgICBib29sIGlzSW5zZWN1cmVDb250ZW50
UnVuRXZlbnREZWxheWVkOworICAgIGJvb2wgaXNJbnNlY3VyZUNvbnRlbnREaXNwbGF5ZWRFdmVu
dERlbGF5ZWQ7CiAKICAgICBHUmVmUHRyPFdlYktpdEJhY2tGb3J3YXJkTGlzdD4gYmFja0Zvcndh
cmRMaXN0OwogICAgIEdSZWZQdHI8V2ViS2l0U2V0dGluZ3M+IHNldHRpbmdzOwpAQCAtMTU5Nyw5
ICsxNTk5LDE3IEBAIHN0YXRpYyB2b2lkIHdlYmtpdFdlYlZpZXdFbWl0TG9hZENoYW5nZWQoV2Vi
S2l0V2ViVmlldyogd2ViVmlldywgV2ViS2l0TG9hZEV2ZW50CiAgICAgZ19zaWduYWxfZW1pdCh3
ZWJWaWV3LCBzaWduYWxzW0xPQURfQ0hBTkdFRF0sIDAsIGxvYWRFdmVudCk7CiAKICAgICBpZiAo
aXNEZWxheWVkRXZlbnQpIHsKLSAgICAgICAgaWYgKGxvYWRFdmVudCA9PSBXRUJLSVRfTE9BRF9D
T01NSVRURUQpCisgICAgICAgIGlmIChsb2FkRXZlbnQgPT0gV0VCS0lUX0xPQURfQ09NTUlUVEVE
KSB7CiAgICAgICAgICAgICB3ZWJWaWV3LT5wcml2LT53YWl0aW5nRm9yTWFpblJlc291cmNlID0g
ZmFsc2U7Ci0gICAgICAgIGVsc2UgaWYgKGxvYWRFdmVudCA9PSBXRUJLSVRfTE9BRF9GSU5JU0hF
RCkgeworICAgICAgICAgICAgaWYgKHdlYlZpZXctPnByaXYtPmlzSW5zZWN1cmVDb250ZW50UnVu
RXZlbnREZWxheWVkKSB7CisgICAgICAgICAgICAgICAgZ19zaWduYWxfZW1pdCh3ZWJWaWV3LCBz
aWduYWxzW0lOU0VDVVJFX0NPTlRFTlRfREVURUNURURdLCAwLCBXRUJLSVRfSU5TRUNVUkVfQ09O
VEVOVF9SVU4pOworICAgICAgICAgICAgICAgIHdlYlZpZXctPnByaXYtPmlzSW5zZWN1cmVDb250
ZW50UnVuRXZlbnREZWxheWVkID0gZmFsc2U7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBp
ZiAod2ViVmlldy0+cHJpdi0+aXNJbnNlY3VyZUNvbnRlbnREaXNwbGF5ZWRFdmVudERlbGF5ZWQp
IHsKKyAgICAgICAgICAgICAgICBnX3NpZ25hbF9lbWl0KHdlYlZpZXcsIHNpZ25hbHNbSU5TRUNV
UkVfQ09OVEVOVF9ERVRFQ1RFRF0sIDAsIFdFQktJVF9JTlNFQ1VSRV9DT05URU5UX0RJU1BMQVlF
RCk7CisgICAgICAgICAgICAgICAgd2ViVmlldy0+cHJpdi0+aXNJbnNlY3VyZUNvbnRlbnREaXNw
bGF5ZWRFdmVudERlbGF5ZWQgPSBmYWxzZTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfSBlbHNl
IGlmIChsb2FkRXZlbnQgPT0gV0VCS0lUX0xPQURfRklOSVNIRUQpIHsKICAgICAgICAgICAgIC8v
IE1hbnVhbGx5IHNldCBpcy1sb2FkaW5nIGFnYWluIGluIGNhc2UgYSBuZXcgbG9hZCB3YXMgc3Rh
cnRlZC4KICAgICAgICAgICAgIHdlYmtpdFdlYlZpZXdTZXRJc0xvYWRpbmcod2ViVmlldywgZ2V0
UGFnZSh3ZWJWaWV3KS0+cGFnZUxvYWRTdGF0ZSgpLmlzTG9hZGluZygpKTsKICAgICAgICAgfQpA
QCAtMTk0Niw3ICsxOTU2LDE0IEBAIHZvaWQgd2Via2l0V2ViVmlld0hhbmRsZUF1dGhlbnRpY2F0
aW9uQ2hhbGxlbmdlKFdlYktpdFdlYlZpZXcqIHdlYlZpZXcsIEF1dGhlbnRpCiAKIHZvaWQgd2Vi
a2l0V2ViVmlld0luc2VjdXJlQ29udGVudERldGVjdGVkKFdlYktpdFdlYlZpZXcqIHdlYlZpZXcs
IFdlYktpdEluc2VjdXJlQ29udGVudEV2ZW50IHR5cGUpCiB7Ci0gICAgZ19zaWduYWxfZW1pdCh3
ZWJWaWV3LCBzaWduYWxzW0lOU0VDVVJFX0NPTlRFTlRfREVURUNURURdLCAwLCB0eXBlKTsKKyAg
ICAvKiBFbnN1cmUgdGhhdCBpbnNlY3VyZSBjb250ZW50IGRldGVjdGVkIGV2ZW50cyBhcmUgZW1p
dHRlZCBhZnRlciBsb2FkLWNvbW1pdHRlZC4gKi8KKyAgICBpZiAod2ViVmlldy0+cHJpdi0+d2Fp
dGluZ0Zvck1haW5SZXNvdXJjZSkgeworICAgICAgICBpZiAodHlwZSA9PSBXRUJLSVRfSU5TRUNV
UkVfQ09OVEVOVF9SVU4pCisgICAgICAgICAgICB3ZWJWaWV3LT5wcml2LT5pc0luc2VjdXJlQ29u
dGVudFJ1bkV2ZW50RGVsYXllZCA9IHRydWU7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIHdl
YlZpZXctPnByaXYtPmlzSW5zZWN1cmVDb250ZW50RGlzcGxheWVkRXZlbnREZWxheWVkID0gdHJ1
ZTsKKyAgICB9IGVsc2UKKyAgICAgICAgZ19zaWduYWxfZW1pdCh3ZWJWaWV3LCBzaWduYWxzW0lO
U0VDVVJFX0NPTlRFTlRfREVURUNURURdLCAwLCB0eXBlKTsKIH0KIAogLyoqCmRpZmYgLS1naXQg
YS9Ub29scy9DaGFuZ2VMb2cgYi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggY2ZkNjkxM2YwMmI3OTAx
NTc1YmQxZjMwMGQ3NmM5MTgyZDNkNTA2Ny4uMDQxODAwMWJlZWQ2OGI2YmY4YzQxZGExNzAyYjU0
YWEwZTBiNmIzMSAxMDA2NDQKLS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5n
ZUxvZwpAQCAtMSwzICsxLDE3IEBACisyMDE0LTEwLTI3ICBNaWNoYWVsIENhdGFuemFybyAgPG1j
YXRhbnphcm9AaWdhbGlhLmNvbT4KKworICAgICAgICBJbnNlY3VyZSBjb250ZW50IHdhcm5pbmdz
IG5vdCBlbWl0dGVkIHdoZW4gcGFnZSBpcyByZXN0b3JlZCBmcm9tIHBhZ2UgY2FjaGUKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEzODEyNworCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZCBHVEsrIHRlc3Qg
dG8gZW5zdXJlIHRoYXQgaW5zZWN1cmUtY29udGVudC1kZXRlY3RlZCBpcyBlbWl0dGVkIHdoZW4K
KyAgICAgICAgYSBwYWdlIGlzIHJlc3RvcmVkIGZyb20gdGhlIHBhZ2UgY2FjaGUuIEFsc28gZW5z
dXJlIHRoaXMgb2NjdXJzIGJlZm9yZQorICAgICAgICBsb2FkLWNvbW1pdHRlZC4KKworICAgICAg
ICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Mkd0ay9UZXN0U1NMLmNwcDoKKyAgICAgICAg
KHRlc3RJbnNlY3VyZUNvbnRlbnQpOgorCiAyMDE0LTEwLTI1ICBSYW5pZXJlIFNpbHZhICA8cmFu
aWVyZUBpbWUudW5pY2FtcC5icj4KIAogICAgICAgICBGaXggbGluayB0byBBcmNoIExpbnV4IFdp
a2kKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Mkd0ay9UZXN0
U1NMLmNwcCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Mkd0ay9UZXN0U1NMLmNw
cAppbmRleCA3MjMyNjAwY2JlNWEwZTBmYTI2ZmU1MjE5NWI0NTVkZmJhMjIxNzI3Li43NDA4N2Ez
NzY2OGQyY2EzMWExYzcyMDcxMjBhYjhlN2ZkYjIyYzE1IDEwMDY0NAotLS0gYS9Ub29scy9UZXN0
V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDJHdGsvVGVzdFNTTC5jcHAKKysrIGIvVG9vbHMvVGVzdFdl
YktpdEFQSS9UZXN0cy9XZWJLaXQyR3RrL1Rlc3RTU0wuY3BwCkBAIC04OCw3ICs4OCw3IEBAIHN0
YXRpYyB2b2lkIHRlc3RTU0woU1NMVGVzdCogdGVzdCwgZ2NvbnN0cG9pbnRlcikKICAgICB3ZWJr
aXRfd2ViX2NvbnRleHRfc2V0X3Rsc19lcnJvcnNfcG9saWN5KGNvbnRleHQsIG9yaWdpbmFsUG9s
aWN5KTsKIH0KIAotY2xhc3MgSW5zZWN1cmVDb250ZW50VGVzdDogcHVibGljIFdlYlZpZXdUZXN0
IHsKK2NsYXNzIEluc2VjdXJlQ29udGVudFRlc3Q6IHB1YmxpYyBMb2FkVHJhY2tpbmdUZXN0IHsK
IHB1YmxpYzoKICAgICBNQUtFX0dMSUJfVEVTVF9GSVhUVVJFKEluc2VjdXJlQ29udGVudFRlc3Qp
OwogCkBAIC0xMTAsNiArMTEwLDE0IEBAIHB1YmxpYzoKICAgICAgICAgICAgIHRlc3QtPm1faW5z
ZWN1cmVDb250ZW50RGlzcGxheWVkID0gdHJ1ZTsKICAgICB9CiAKKyAgICB2aXJ0dWFsIHZvaWQg
bG9hZENvbW1pdHRlZCgpIG92ZXJyaWRlCisgICAgeworICAgICAgICAvLyBFbnN1cmUgaW5zZWN1
cmUtY29udGVudC1kZXRlY3RlZCBkb2VzIG5vdCBmaXJlIHVudGlsIGFmdGVyIGxvYWQtY29tbWl0
dGVkLgorICAgICAgICBnX2Fzc2VydCghbV9pbnNlY3VyZUNvbnRlbnRSdW4pOworICAgICAgICBn
X2Fzc2VydCghbV9pbnNlY3VyZUNvbnRlbnREaXNwbGF5ZWQpOworICAgICAgICBMb2FkVHJhY2tp
bmdUZXN0Ojpsb2FkQ29tbWl0dGVkKCk7CisgICAgfQorCiAgICAgYm9vbCBtX2luc2VjdXJlQ29u
dGVudFJ1bjsKICAgICBib29sIG1faW5zZWN1cmVDb250ZW50RGlzcGxheWVkOwogfTsKQEAgLTEy
Niw2ICsxMzQsMTkgQEAgc3RhdGljIHZvaWQgdGVzdEluc2VjdXJlQ29udGVudChJbnNlY3VyZUNv
bnRlbnRUZXN0KiB0ZXN0LCBnY29uc3Rwb2ludGVyKQogICAgIGdfYXNzZXJ0KHRlc3QtPm1faW5z
ZWN1cmVDb250ZW50UnVuKTsKICAgICBnX2Fzc2VydCh0ZXN0LT5tX2luc2VjdXJlQ29udGVudERp
c3BsYXllZCk7CiAKKyAgICB0ZXN0LT5tX2luc2VjdXJlQ29udGVudFJ1biA9IGZhbHNlOworICAg
IHRlc3QtPm1faW5zZWN1cmVDb250ZW50RGlzcGxheWVkID0gZmFsc2U7CisgICAgdGVzdC0+bG9h
ZFVSSShrSHR0cHNTZXJ2ZXItPmdldFVSSUZvclBhdGgoIi8iKS5kYXRhKCkpOworICAgIHRlc3Qt
PndhaXRVbnRpbExvYWRGaW5pc2hlZCgpOworICAgIGdfYXNzZXJ0KCF0ZXN0LT5tX2luc2VjdXJl
Q29udGVudFJ1bik7CisgICAgZ19hc3NlcnQoIXRlc3QtPm1faW5zZWN1cmVDb250ZW50RGlzcGxh
eWVkKTsKKworICAgIC8vIEVuc3VyZSBpbnNlY3VyZSBjb250ZW50IGlzIGRldGVjdGVkIHdoZW4g
cGFnZSBpcyByZXN0b3JlZCBmcm9tIHBhZ2UgY2FjaGUKKyAgICB0ZXN0LT5nb0JhY2soKTsKKyAg
ICB0ZXN0LT53YWl0VW50aWxMb2FkRmluaXNoZWQoKTsKKyAgICBnX2Fzc2VydCh0ZXN0LT5tX2lu
c2VjdXJlQ29udGVudFJ1bik7CisgICAgZ19hc3NlcnQodGVzdC0+bV9pbnNlY3VyZUNvbnRlbnRE
aXNwbGF5ZWQpOworCiAgICAgd2Via2l0X3dlYl9jb250ZXh0X3NldF90bHNfZXJyb3JzX3BvbGlj
eShjb250ZXh0LCBvcmlnaW5hbFBvbGljeSk7CiB9CiAK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>245906</attachid>
            <date>2015-02-02 15:27:49 -0800</date>
            <delta_ts>2016-01-02 10:12:27 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-138127-20150202172758.patch</filename>
            <type>text/plain</type>
            <size>25078</size>
            <attacher name="Michael Catanzaro">mcatanzaro</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTc5NDY4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZjhkYzAyZmZhNmJhNDUw
ZDIxNDU4YTZmNmNjZGRjNTJkZWIyZTY0ZS4uYmYyNGUzZmQ1OGYwNmMxZDQ2MDc3YzQwNWFmYzJj
YWNhZmVhYzZkMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMyIEBACisyMDE1LTAyLTAyICBNaWNo
YWVsIENhdGFuemFybyAgPG1jYXRhbnphcm9AaWdhbGlhLmNvbT4KKworICAgICAgICBJbnNlY3Vy
ZSBjb250ZW50IHdhcm5pbmdzIG5vdCBlbWl0dGVkIHdoZW4gcGFnZSBpcyByZXN0b3JlZCBmcm9t
IHBhZ2UgY2FjaGUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTEzODEyNworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgIFRlc3RzOiBodHRwL3Rlc3RzL3NlY3VyaXR5L21peGVkQ29udGVudC9hY3RpdmUtY29udGVu
dC1pbi1wYWdlLWNhY2hlLmh0bWwKKyAgICAgICAgICAgICAgIGh0dHAvdGVzdHMvc2VjdXJpdHkv
bWl4ZWRDb250ZW50L3Bhc3NpdmUtY29udGVudC1pbi1wYWdlLWNhY2hlLmh0bWwKKworICAgICAg
ICAqIGRvbS9Eb2N1bWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudDo6RG9jdW1l
bnQpOiBBZGQgYm9vbGVhbiBtZW1iZXJzIHRvIGluZGljYXRlIHdoZXRoZXIgdGhlIERvY3VtZW50
IGNvbnRhaW5zCisgICAgICAgIGluc2VjdXJlIGNvbnRlbnQuCisgICAgICAgICogZG9tL0RvY3Vt
ZW50Lmg6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudDo6aGFzRGlzcGxheWVkSW5zZWN1cmVD
b250ZW50KTogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudDo6c2V0SGFzRGlzcGxh
eWVkSW5zZWN1cmVDb250ZW50KTogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudDo6
aGFzUnVuSW5zZWN1cmVDb250ZW50KTogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVu
dDo6c2V0SGFzUnVuSW5zZWN1cmVDb250ZW50KTogQWRkZWQuCisgICAgICAgICogbG9hZGVyL0Zy
YW1lTG9hZGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lTG9hZGVyOjpjb21taXRQcm92
aXNpb25hbExvYWQpOiBDYWxsCisgICAgICAgIGVtaXRJbnNlY3VyZUNvbnRlbnRFdmVudHNGb3JS
ZXN0b3JlZENhY2hlZFBhZ2UgYWZ0ZXIgcmVzdG9yaW5nIGEgcGFnZSBmcm9tIHRoZSBwYWdlIGNh
Y2hlLgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVMb2FkZXI6OmVtaXRJbnNlY3VyZUNvbnRlbnRF
dmVudHNGb3JSZXN0b3JlZENhY2hlZFBhZ2UpOiBBZGRlZC4KKyAgICAgICAgKiBsb2FkZXIvRnJh
bWVMb2FkZXIuaDogQWRkIGVtaXRJbnNlY3VyZUNvbnRlbnRFdmVudHNGb3JSZXN0b3JlZENhY2hl
ZFBhZ2UuCisgICAgICAgICogbG9hZGVyL01peGVkQ29udGVudENoZWNrZXIuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6TWl4ZWRDb250ZW50Q2hlY2tlcjo6Y2FuRGlzcGxheUluc2VjdXJlQ29udGVu
dCk6IENhbGwKKyAgICAgICAgRG9jdW1lbnQ6OnNldEhhc0Rpc3BsYXllZEluc2VjdXJlQ29udGVu
dC4KKyAgICAgICAgKFdlYkNvcmU6Ok1peGVkQ29udGVudENoZWNrZXI6OmNhblJ1bkluc2VjdXJl
Q29udGVudCk6IENhbGwKKyAgICAgICAgRG9jdW1lbnQ6OnNldEhhc1J1bkluc2VjdXJlQ29udGVu
dC4KKwogMjAxNS0wMS0zMSAgRGFyaW4gQWRsZXIgIDxkYXJpbkBhcHBsZS5jb20+CiAKICAgICAg
ICAgU3RvcCBkaXNwYXRjaGluZyBldmVudHMgdG8gd2l0aCBTVkdFbGVtZW50SW5zdGFuY2Ugb2Jq
ZWN0cyBhcyB0aGVpciB0YXJnZXRzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VM
b2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggMjMxMWE1Nzg0ZDM4MGYzZTFkMDA3
YmY0NzBiNTJhMzA2OTJhODM3Ni4uZDczOGU1M2JhNDcxNDRjYWIxZTY2Y2QxN2E4YjIwOTNjY2E1
ZTdjOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9X
ZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE1IEBACisyMDE1LTAyLTAyICBNaWNoYWVsIENh
dGFuemFybyAgPG1jYXRhbnphcm9AaWdhbGlhLmNvbT4KKworICAgICAgICBJbnNlY3VyZSBjb250
ZW50IHdhcm5pbmdzIG5vdCBlbWl0dGVkIHdoZW4gcGFnZSBpcyByZXN0b3JlZCBmcm9tIHBhZ2Ug
Y2FjaGUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEz
ODEyNworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICog
VUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0V2ViVmlldy5jcHA6CisgICAgICAgICh3ZWJraXRXZWJW
aWV3RW1pdExvYWRDaGFuZ2VkKTogRW1pdCBkZWxheWVkIGluc2VjdXJlIGNvbnRlbnQgZXZlbnRz
LgorICAgICAgICAod2Via2l0V2ViVmlld0luc2VjdXJlQ29udGVudERldGVjdGVkKTogRGVsYXkg
aW5zZWN1cmUgY29udGVudCBldmVudHMgd2hlbiByZXN0b3JpbmcgYSBwYWdlCisgICAgICAgIGZy
b20gdGhlIHBhZ2UgY2FjaGUuCisKIDIwMTUtMDItMDEgIERhbiBCZXJuc3RlaW4gIDxtaXR6QGFw
cGxlLmNvbT4KIAogICAgICAgICBSZW1vdmUgVmlld0dlc3R1cmVDb250cm9sbGVyIHRyYWNpbmcK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9kb20vRG9jdW1lbnQuY3BwCmluZGV4IGY5YWY2NDMzNTkwNjNkODQwNzBiMmExMmQ5YTJl
MmUxZGIxNTJlOWUuLmZkYzA1NTNkOGY5ZjY3Y2I5NWU0YjAxZDYxOWJmYmY5ZGNlMDhiODAgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvZG9tL0RvY3VtZW50LmNwcApAQCAtNTE4LDYgKzUxOCw4IEBAIERvY3VtZW50OjpEb2N1
bWVudChGcmFtZSogZnJhbWUsIGNvbnN0IFVSTCYgdXJsLCB1bnNpZ25lZCBkb2N1bWVudENsYXNz
ZXMsIHVuc2lnCiAgICAgLCBtX2hhc1ByZXBhcmVkRm9yRGVzdHJ1Y3Rpb24oZmFsc2UpCiAgICAg
LCBtX2hhc1N0eWxlV2l0aFZpZXdwb3J0VW5pdHMoZmFsc2UpCiAgICAgLCBtX2lzUGxheWluZ0F1
ZGlvKGZhbHNlKQorICAgICwgbV9oYXNEaXNwbGF5ZWRJbnNlY3VyZUNvbnRlbnQoZmFsc2UpCisg
ICAgLCBtX2hhc1J1bkluc2VjdXJlQ29udGVudChmYWxzZSkKIHsKICAgICBhbGxEb2N1bWVudHMo
KS5hZGQodGhpcyk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5o
IGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmgKaW5kZXggOGM1OGYyYjNhZDY4M2Y5YjA1
ZWI4M2YzNTNhOTRmZjI0NGMxMDFmOC4uMmNiMGZkMGRlM2E3OTFkZTQyOWMzMDNiMTVjOWFkNmM2
MGE1MGZkMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmgKKysrIGIv
U291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmgKQEAgLTEyODcsNiArMTI4NywxMSBAQCBwdWJs
aWM6CiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCB1cGRhdGVJc1BsYXlpbmdBdWRpbygpOwogICAg
IHZvaWQgcGFnZU11dGVkU3RhdGVEaWRDaGFuZ2UoKTsKIAorICAgIGJvb2wgaGFzRGlzcGxheWVk
SW5zZWN1cmVDb250ZW50KCkgY29uc3QgeyByZXR1cm4gbV9oYXNEaXNwbGF5ZWRJbnNlY3VyZUNv
bnRlbnQ7IH0KKyAgICB2b2lkIHNldEhhc0Rpc3BsYXllZEluc2VjdXJlQ29udGVudChib29sIGRp
c3BsYXllZCkgeyBtX2hhc0Rpc3BsYXllZEluc2VjdXJlQ29udGVudCA9IGRpc3BsYXllZDsgfQor
ICAgIGJvb2wgaGFzUnVuSW5zZWN1cmVDb250ZW50KCkgY29uc3QgeyByZXR1cm4gbV9oYXNSdW5J
bnNlY3VyZUNvbnRlbnQ7IH0KKyAgICB2b2lkIHNldEhhc1J1bkluc2VjdXJlQ29udGVudChib29s
IHJ1bikgeyBtX2hhc1J1bkluc2VjdXJlQ29udGVudCA9IHJ1bjsgfQorCiBwcm90ZWN0ZWQ6CiAg
ICAgZW51bSBDb25zdHJ1Y3Rpb25GbGFncyB7IFN5bnRoZXNpemVkID0gMSwgTm9uUmVuZGVyZWRQ
bGFjZWhvbGRlciA9IDEgPDwgMSB9OwogICAgIERvY3VtZW50KEZyYW1lKiwgY29uc3QgVVJMJiwg
dW5zaWduZWQgPSBEZWZhdWx0RG9jdW1lbnRDbGFzcywgdW5zaWduZWQgY29uc3RydWN0aW9uRmxh
Z3MgPSAwKTsKQEAgLTE3MjQsNiArMTcyOSw5IEBAIHByaXZhdGU6CiAKICAgICBIYXNoU2V0PEF1
ZGlvUHJvZHVjZXIqPiBtX2F1ZGlvUHJvZHVjZXJzOwogICAgIGJvb2wgbV9pc1BsYXlpbmdBdWRp
bzsKKworICAgIGJvb2wgbV9oYXNEaXNwbGF5ZWRJbnNlY3VyZUNvbnRlbnQ7CisgICAgYm9vbCBt
X2hhc1J1bkluc2VjdXJlQ29udGVudDsKIH07CiAKIGlubGluZSB2b2lkIERvY3VtZW50Ojpub3Rp
ZnlSZW1vdmVQZW5kaW5nU2hlZXRJZk5lZWRlZCgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9sb2FkZXIvRnJhbWVMb2FkZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9h
ZGVyLmNwcAppbmRleCAwNTlmMGZmOGU0ZmMxNmY2ZjA5M2ExY2QwYWMyNzllMmM0NzA5NzRkLi4z
OWY5NzRkNzhhODE4MDNmYmMwZTVhMWFkMzBiZTI3OTYxMTZlZDBmIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xv
YWRlci9GcmFtZUxvYWRlci5jcHAKQEAgLTE4MTMsNyArMTgxMywxMCBAQCB2b2lkIEZyYW1lTG9h
ZGVyOjpjb21taXRQcm92aXNpb25hbExvYWQoKQogICAgICAgICBtX2ZyYW1lLnBhZ2UoKS0+Y2hy
b21lKCkuc2V0RGlzcGF0Y2hWaWV3cG9ydERhdGFEaWRDaGFuZ2VTdXBwcmVzc2VkKGZhbHNlKTsK
ICAgICAgICAgbV9mcmFtZS5wYWdlKCktPmNocm9tZSgpLmRpc3BhdGNoVmlld3BvcnRQcm9wZXJ0
aWVzRGlkQ2hhbmdlKG1fZnJhbWUucGFnZSgpLT52aWV3cG9ydEFyZ3VtZW50cygpKTsKICNlbmRp
ZgotICAgICAgICAvLyBJZiB3ZSBoYXZlIGEgdGl0bGUgbGV0IHRoZSBXZWJWaWV3IGtub3cgYWJv
dXQgaXQuIAorCisgICAgICAgIGVtaXRJbnNlY3VyZUNvbnRlbnRFdmVudHNGb3JSZXN0b3JlZENh
Y2hlZFBhZ2UoKTsKKworICAgICAgICAvLyBJZiB3ZSBoYXZlIGEgdGl0bGUgbGV0IHRoZSBXZWJW
aWV3IGtub3cgYWJvdXQgaXQuCiAgICAgICAgIFN0cmluZ1dpdGhEaXJlY3Rpb24gdGl0bGUgPSBt
X2RvY3VtZW50TG9hZGVyLT50aXRsZSgpOwogICAgICAgICBpZiAoIXRpdGxlLmlzTnVsbCgpKQog
ICAgICAgICAgICAgbV9jbGllbnQuZGlzcGF0Y2hEaWRSZWNlaXZlVGl0bGUodGl0bGUpOwpAQCAt
MjA1MCw2ICsyMDUzLDI1IEBAIHZvaWQgRnJhbWVMb2FkZXI6OnByZXBhcmVGb3JDYWNoZWRQYWdl
UmVzdG9yZSgpCiAgICAgfQogfQogCit2b2lkIEZyYW1lTG9hZGVyOjplbWl0SW5zZWN1cmVDb250
ZW50RXZlbnRzRm9yUmVzdG9yZWRDYWNoZWRQYWdlKCkKK3sKKyAgICBpZiAobV9mcmFtZS5kb2N1
bWVudCgpLT5oYXNEaXNwbGF5ZWRJbnNlY3VyZUNvbnRlbnQoKSkgeworICAgICAgICBtX2NsaWVu
dC5kaWREaXNwbGF5SW5zZWN1cmVDb250ZW50KCk7CisgICAgICAgIFN0cmluZyBtZXNzYWdlID0g
bWFrZVN0cmluZygiVGhlIGNhY2hlZCBwYWdlICIsIG1fZnJhbWUuZG9jdW1lbnQoKS0+dXJsKCku
c3RyaW5nQ2VudGVyRWxsaXBzaXplZFRvTGVuZ3RoKCksICIgZGlzcGxheWVkIHBhc3NpdmUgbWl4
ZWQgY29udGVudC4iKTsKKyAgICAgICAgbV9mcmFtZS5kb2N1bWVudCgpLT5hZGRDb25zb2xlTWVz
c2FnZShNZXNzYWdlU291cmNlOjpTZWN1cml0eSwgTWVzc2FnZUxldmVsOjpXYXJuaW5nLCBtZXNz
YWdlKTsKKyAgICB9CisKKyAgICAvLyBJZiB0aGUgcGFnZSBjb250YWluZWQgYWN0aXZlIG1peGVk
IGNvbnRlbnQgd2hlbiBpdCB3ZW50IGludG8gdGhlCisgICAgLy8gcGFnZSBjYWNoZSwgd2UgbXVz
dCBpbmRpY2F0ZSB0aGF0IHdoZW4gcmVzdG9yaW5nIHRoZSBwYWdlLCBldmVuCisgICAgLy8gdGhv
dWdoIG5vdGhpbmcgaXMgYmVpbmcgInJ1biIgcmlnaHQgbm93LiBUaGUgVVJMIG9mIHRoZSBpbnNl
Y3VyZQorICAgIC8vIGNvbnRlbnQgd2lsbCBiZSByZXBvcnRlZCBhcyB0aGUgVVJMIG9mIHRoZSBw
YWdlIGl0c2VsZi4KKyAgICBpZiAobV9mcmFtZS5kb2N1bWVudCgpLT5oYXNSdW5JbnNlY3VyZUNv
bnRlbnQoKSkgeworICAgICAgICBtX2NsaWVudC5kaWRSdW5JbnNlY3VyZUNvbnRlbnQobV9mcmFt
ZS5kb2N1bWVudCgpLT5zZWN1cml0eU9yaWdpbigpLCBtX2ZyYW1lLmRvY3VtZW50KCktPnVybCgp
KTsKKyAgICAgICAgU3RyaW5nIG1lc3NhZ2UgPSBtYWtlU3RyaW5nKCJUaGUgY2FjaGVkIHBhZ2Ug
IiwgbV9mcmFtZS5kb2N1bWVudCgpLT51cmwoKS5zdHJpbmdDZW50ZXJFbGxpcHNpemVkVG9MZW5n
dGgoKSwgIiBjb250YWlucyBhY3RpdmUgbWl4ZWQgY29udGVudC4iKTsKKyAgICAgICAgbV9mcmFt
ZS5kb2N1bWVudCgpLT5hZGRDb25zb2xlTWVzc2FnZShNZXNzYWdlU291cmNlOjpTZWN1cml0eSwg
TWVzc2FnZUxldmVsOjpXYXJuaW5nLCBtZXNzYWdlKTsKKyAgICB9Cit9CisKIHZvaWQgRnJhbWVM
b2FkZXI6Om9wZW4oQ2FjaGVkRnJhbWVCYXNlJiBjYWNoZWRGcmFtZSkKIHsKICAgICBtX2lzQ29t
cGxldGUgPSBmYWxzZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxv
YWRlci5oIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyLmgKaW5kZXggMDZmYThm
MDViOGYyMDQwNTM1NTliNGY1MmY5YzFkMmM3ODA2MGM2OS4uMDI5YmZlZjZiNDQ0NmMyZWZkYWNh
Y2QyZDEyMzJjZDI0MGMyYzQ1NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0Zy
YW1lTG9hZGVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyLmgKQEAg
LTMzNCw2ICszMzQsNyBAQCBwcml2YXRlOgogCiAgICAgdm9pZCBjbG9zZU9sZERhdGFTb3VyY2Vz
KCk7CiAgICAgdm9pZCBwcmVwYXJlRm9yQ2FjaGVkUGFnZVJlc3RvcmUoKTsKKyAgICB2b2lkIGVt
aXRJbnNlY3VyZUNvbnRlbnRFdmVudHNGb3JSZXN0b3JlZENhY2hlZFBhZ2UoKTsKIAogICAgIGJv
b2wgc2hvdWxkUmVsb2FkVG9IYW5kbGVVbnJlYWNoYWJsZVVSTChEb2N1bWVudExvYWRlciopOwog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvTWl4ZWRDb250ZW50Q2hlY2tlci5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvTWl4ZWRDb250ZW50Q2hlY2tlci5jcHAKaW5kZXgg
N2MyZDJlM2FjODk5MmY5MDQyN2EwMDMyZjNkM2MyMzU2ZGNhMzdmNy4uODkxNDFkNGViOThhMWUx
OTRhMTAwZmYyM2JmMWYxMzFiN2ZhYzk0OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9h
ZGVyL01peGVkQ29udGVudENoZWNrZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9N
aXhlZENvbnRlbnRDaGVja2VyLmNwcApAQCAtNjgsOCArNjgsMTAgQEAgYm9vbCBNaXhlZENvbnRl
bnRDaGVja2VyOjpjYW5EaXNwbGF5SW5zZWN1cmVDb250ZW50KFNlY3VyaXR5T3JpZ2luKiBzZWN1
cml0eU9yaWcKICAgICBib29sIGFsbG93ZWQgPSBtX2ZyYW1lLnNldHRpbmdzKCkuYWxsb3dEaXNw
bGF5T2ZJbnNlY3VyZUNvbnRlbnQoKTsKICAgICBsb2dXYXJuaW5nKGFsbG93ZWQsICJkaXNwbGF5
ZWQiLCB1cmwpOwogCi0gICAgaWYgKGFsbG93ZWQpCisgICAgaWYgKGFsbG93ZWQpIHsKKyAgICAg
ICAgbV9mcmFtZS5kb2N1bWVudCgpLT5zZXRIYXNEaXNwbGF5ZWRJbnNlY3VyZUNvbnRlbnQodHJ1
ZSk7CiAgICAgICAgIGNsaWVudCgpLmRpZERpc3BsYXlJbnNlY3VyZUNvbnRlbnQoKTsKKyAgICB9
CiAKICAgICByZXR1cm4gYWxsb3dlZDsKIH0KQEAgLTgyLDggKzg0LDEwIEBAIGJvb2wgTWl4ZWRD
b250ZW50Q2hlY2tlcjo6Y2FuUnVuSW5zZWN1cmVDb250ZW50KFNlY3VyaXR5T3JpZ2luKiBzZWN1
cml0eU9yaWdpbiwKICAgICBib29sIGFsbG93ZWQgPSBtX2ZyYW1lLnNldHRpbmdzKCkuYWxsb3dS
dW5uaW5nT2ZJbnNlY3VyZUNvbnRlbnQoKTsKICAgICBsb2dXYXJuaW5nKGFsbG93ZWQsICJyYW4i
LCB1cmwpOwogCi0gICAgaWYgKGFsbG93ZWQpCisgICAgaWYgKGFsbG93ZWQpIHsKKyAgICAgICAg
bV9mcmFtZS5kb2N1bWVudCgpLT5zZXRIYXNSdW5JbnNlY3VyZUNvbnRlbnQodHJ1ZSk7CiAgICAg
ICAgIGNsaWVudCgpLmRpZFJ1bkluc2VjdXJlQ29udGVudChzZWN1cml0eU9yaWdpbiwgdXJsKTsK
KyAgICB9CiAKICAgICByZXR1cm4gYWxsb3dlZDsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFdlYlZpZXcuY3BwIGIvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0V2ViVmlldy5jcHAKaW5kZXggMGJhMTZkYzIwZGUxYzUx
Yjg2YWM5MDE0MzFjNjhjMGMwNWJmZGYxNy4uOWM1NGYyODc1YjIxMzBiNTkxMzE3ODRhOTFiYjZl
MGRiYWRhNmM2NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsv
V2ViS2l0V2ViVmlldy5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsv
V2ViS2l0V2ViVmlldy5jcHAKQEAgLTE4Miw2ICsxODIsOCBAQCBzdHJ1Y3QgX1dlYktpdFdlYlZp
ZXdQcml2YXRlIHsKICAgICBib29sIHdhaXRpbmdGb3JNYWluUmVzb3VyY2U7CiAgICAgdW5zaWdu
ZWQgbG9uZyBtYWluUmVzb3VyY2VSZXNwb25zZUhhbmRsZXJJRDsKICAgICBXZWJLaXRMb2FkRXZl
bnQgbGFzdERlbGF5ZWRFdmVudDsKKyAgICBib29sIGlzSW5zZWN1cmVDb250ZW50UnVuRXZlbnRE
ZWxheWVkOworICAgIGJvb2wgaXNJbnNlY3VyZUNvbnRlbnREaXNwbGF5ZWRFdmVudERlbGF5ZWQ7
CiAKICAgICBHUmVmUHRyPFdlYktpdEJhY2tGb3J3YXJkTGlzdD4gYmFja0ZvcndhcmRMaXN0Owog
ICAgIEdSZWZQdHI8V2ViS2l0U2V0dGluZ3M+IHNldHRpbmdzOwpAQCAtMTc2Niw5ICsxNzY4LDE3
IEBAIHN0YXRpYyB2b2lkIHdlYmtpdFdlYlZpZXdFbWl0TG9hZENoYW5nZWQoV2ViS2l0V2ViVmll
dyogd2ViVmlldywgV2ViS2l0TG9hZEV2ZW50CiAgICAgZ19zaWduYWxfZW1pdCh3ZWJWaWV3LCBz
aWduYWxzW0xPQURfQ0hBTkdFRF0sIDAsIGxvYWRFdmVudCk7CiAKICAgICBpZiAoaXNEZWxheWVk
RXZlbnQpIHsKLSAgICAgICAgaWYgKGxvYWRFdmVudCA9PSBXRUJLSVRfTE9BRF9DT01NSVRURUQp
CisgICAgICAgIGlmIChsb2FkRXZlbnQgPT0gV0VCS0lUX0xPQURfQ09NTUlUVEVEKSB7CiAgICAg
ICAgICAgICB3ZWJWaWV3LT5wcml2LT53YWl0aW5nRm9yTWFpblJlc291cmNlID0gZmFsc2U7Ci0g
ICAgICAgIGVsc2UgaWYgKGxvYWRFdmVudCA9PSBXRUJLSVRfTE9BRF9GSU5JU0hFRCkgeworICAg
ICAgICAgICAgaWYgKHdlYlZpZXctPnByaXYtPmlzSW5zZWN1cmVDb250ZW50UnVuRXZlbnREZWxh
eWVkKSB7CisgICAgICAgICAgICAgICAgZ19zaWduYWxfZW1pdCh3ZWJWaWV3LCBzaWduYWxzW0lO
U0VDVVJFX0NPTlRFTlRfREVURUNURURdLCAwLCBXRUJLSVRfSU5TRUNVUkVfQ09OVEVOVF9SVU4p
OworICAgICAgICAgICAgICAgIHdlYlZpZXctPnByaXYtPmlzSW5zZWN1cmVDb250ZW50UnVuRXZl
bnREZWxheWVkID0gZmFsc2U7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpZiAod2ViVmll
dy0+cHJpdi0+aXNJbnNlY3VyZUNvbnRlbnREaXNwbGF5ZWRFdmVudERlbGF5ZWQpIHsKKyAgICAg
ICAgICAgICAgICBnX3NpZ25hbF9lbWl0KHdlYlZpZXcsIHNpZ25hbHNbSU5TRUNVUkVfQ09OVEVO
VF9ERVRFQ1RFRF0sIDAsIFdFQktJVF9JTlNFQ1VSRV9DT05URU5UX0RJU1BMQVlFRCk7CisgICAg
ICAgICAgICAgICAgd2ViVmlldy0+cHJpdi0+aXNJbnNlY3VyZUNvbnRlbnREaXNwbGF5ZWRFdmVu
dERlbGF5ZWQgPSBmYWxzZTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfSBlbHNlIGlmIChsb2Fk
RXZlbnQgPT0gV0VCS0lUX0xPQURfRklOSVNIRUQpIHsKICAgICAgICAgICAgIC8vIE1hbnVhbGx5
IHNldCBpcy1sb2FkaW5nIGFnYWluIGluIGNhc2UgYSBuZXcgbG9hZCB3YXMgc3RhcnRlZC4KICAg
ICAgICAgICAgIHdlYmtpdFdlYlZpZXdTZXRJc0xvYWRpbmcod2ViVmlldywgZ2V0UGFnZSh3ZWJW
aWV3KS0+cGFnZUxvYWRTdGF0ZSgpLmlzTG9hZGluZygpKTsKICAgICAgICAgfQpAQCAtMjEwNSw3
ICsyMTE1LDE4IEBAIHZvaWQgd2Via2l0V2ViVmlld0hhbmRsZUF1dGhlbnRpY2F0aW9uQ2hhbGxl
bmdlKFdlYktpdFdlYlZpZXcqIHdlYlZpZXcsIEF1dGhlbnRpCiAKIHZvaWQgd2Via2l0V2ViVmll
d0luc2VjdXJlQ29udGVudERldGVjdGVkKFdlYktpdFdlYlZpZXcqIHdlYlZpZXcsIFdlYktpdElu
c2VjdXJlQ29udGVudEV2ZW50IHR5cGUpCiB7Ci0gICAgZ19zaWduYWxfZW1pdCh3ZWJWaWV3LCBz
aWduYWxzW0lOU0VDVVJFX0NPTlRFTlRfREVURUNURURdLCAwLCB0eXBlKTsKKyAgICAvLyBCZWNh
dXNlIHdlJ3ZlIGNob3NlbiB0byBkZWxheSB0aGUgZW1pc3Npb24gb2YgbG9hZC1jb21taXR0ZWQg
ZXZlbnRzIHdoZW4KKyAgICAvLyBhIHBhZ2UgaXMgcmVzdG9yZWQgZnJvbSB0aGUgcGFnZSBjYWNo
ZSwgd2UgbXVzdCBhbHNvIGRlbGF5IGluc2VjdXJlCisgICAgLy8gY29udGVudCBldmVudHMgdGhh
dCBhcnJpdmUgYWZ0ZXIgdGhlIGxvYWQgaGFzIGJlZW4gY29tbWl0dGVkIGJ1dCBiZWZvcmUKKyAg
ICAvLyB3ZSBkaXNwYXRjaCBvdXIgbG9hZC1jb21taXR0ZWQgZXZlbnQsIHNvIHRoYXQgQVBJIHVz
ZXJzIGRvIG5vdCByZWNlaXZlCisgICAgLy8gaW5zZWN1cmUtY29udGVudC1kZXRlY3RlZCBiZWZv
cmUgbG9hZC1jb21taXR0ZWQuCisgICAgaWYgKHdlYlZpZXctPnByaXYtPndhaXRpbmdGb3JNYWlu
UmVzb3VyY2UpIHsKKyAgICAgICAgaWYgKHR5cGUgPT0gV0VCS0lUX0lOU0VDVVJFX0NPTlRFTlRf
UlVOKQorICAgICAgICAgICAgd2ViVmlldy0+cHJpdi0+aXNJbnNlY3VyZUNvbnRlbnRSdW5FdmVu
dERlbGF5ZWQgPSB0cnVlOworICAgICAgICBlbHNlCisgICAgICAgICAgICB3ZWJWaWV3LT5wcml2
LT5pc0luc2VjdXJlQ29udGVudERpc3BsYXllZEV2ZW50RGVsYXllZCA9IHRydWU7CisgICAgfSBl
bHNlCisgICAgICAgIGdfc2lnbmFsX2VtaXQod2ViVmlldywgc2lnbmFsc1tJTlNFQ1VSRV9DT05U
RU5UX0RFVEVDVEVEXSwgMCwgdHlwZSk7CiB9CiAKIGJvb2wgd2Via2l0V2ViVmlld0VtaXRTaG93
Tm90aWZpY2F0aW9uKFdlYktpdFdlYlZpZXcqIHdlYlZpZXcsIFdlYktpdE5vdGlmaWNhdGlvbiog
d2ViTm90aWZpY2F0aW9uKQpkaWZmIC0tZ2l0IGEvVG9vbHMvQ2hhbmdlTG9nIGIvVG9vbHMvQ2hh
bmdlTG9nCmluZGV4IDIyY2NmNDdiNTQ1Y2VmMzIzODE4M2NlMGNmYzM4MmZiZDIyZjUyZmQuLmQ5
MWU4ZGFmZWI2ZjE3N2ExNTg3ZGQyOGI1NjM4ODVlNjQ0M2ZhMmEgMTAwNjQ0Ci0tLSBhL1Rvb2xz
L0NoYW5nZUxvZworKysgYi9Ub29scy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNiBAQAorMjAxNS0w
Mi0wMiAgTWljaGFlbCBDYXRhbnphcm8gIDxtY2F0YW56YXJvQGlnYWxpYS5jb20+CisKKyAgICAg
ICAgSW5zZWN1cmUgY29udGVudCB3YXJuaW5ncyBub3QgZW1pdHRlZCB3aGVuIHBhZ2UgaXMgcmVz
dG9yZWQgZnJvbSBwYWdlIGNhY2hlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0xMzgxMjcKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICBNYWtlIHN1cmUgdGhhdCBpbnNlY3VyZS1jb250ZW50LWRldGVjdGVkIGlz
IGVtaXR0ZWQgYWZ0ZXIgbG9hZC1jb21taXR0ZWQgd2hlbiByZXN0b3JpbmcgYQorICAgICAgICBw
YWdlIGZyb20gdGhlIHBhZ2UgY2FjaGUuCisKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3Rz
L1dlYktpdDJHdGsvVGVzdFNTTC5jcHA6CisgICAgICAgICh0ZXN0SW5zZWN1cmVDb250ZW50KToK
KwogMjAxNS0wMS0zMSAgU2FtIFdlaW5pZyAgPHNhbUB3ZWJraXQub3JnPgogCiAgICAgICAgIFJl
bW92ZSBldmVuIG1vcmUgTW91bnRhaW4gTGlvbiBzdXBwb3J0CmRpZmYgLS1naXQgYS9Ub29scy9U
ZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDJHdGsvVGVzdFNTTC5jcHAgYi9Ub29scy9UZXN0V2Vi
S2l0QVBJL1Rlc3RzL1dlYktpdDJHdGsvVGVzdFNTTC5jcHAKaW5kZXggMGJlZDdhMTc2ODZlY2I1
YTE0NmQ4Mjk4YmUzOGIxZjQwZDNiN2M4Yi4uN2Y2MTM2OGIyNjAzZDg0ZWY5MjgyNzBmY2ZlMTA4
NTVkZjU4OWVjMiAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQy
R3RrL1Rlc3RTU0wuY3BwCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Mkd0
ay9UZXN0U1NMLmNwcApAQCAtODgsNyArODgsNyBAQCBzdGF0aWMgdm9pZCB0ZXN0U1NMKFNTTFRl
c3QqIHRlc3QsIGdjb25zdHBvaW50ZXIpCiAgICAgd2Via2l0X3dlYl9jb250ZXh0X3NldF90bHNf
ZXJyb3JzX3BvbGljeShjb250ZXh0LCBvcmlnaW5hbFBvbGljeSk7CiB9CiAKLWNsYXNzIEluc2Vj
dXJlQ29udGVudFRlc3Q6IHB1YmxpYyBXZWJWaWV3VGVzdCB7CitjbGFzcyBJbnNlY3VyZUNvbnRl
bnRUZXN0OiBwdWJsaWMgTG9hZFRyYWNraW5nVGVzdCB7CiBwdWJsaWM6CiAgICAgTUFLRV9HTElC
X1RFU1RfRklYVFVSRShJbnNlY3VyZUNvbnRlbnRUZXN0KTsKIApAQCAtMTEwLDYgKzExMCwxNSBA
QCBwdWJsaWM6CiAgICAgICAgICAgICB0ZXN0LT5tX2luc2VjdXJlQ29udGVudERpc3BsYXllZCA9
IHRydWU7CiAgICAgfQogCisgICAgdmlydHVhbCB2b2lkIGxvYWRDb21taXR0ZWQoKSBvdmVycmlk
ZQorICAgIHsKKyAgICAgICAgLy8gRW5zdXJlIGluc2VjdXJlLWNvbnRlbnQtZGV0ZWN0ZWQgZG9l
cyBub3QgZmlyZSB1bnRpbCBhZnRlcgorICAgICAgICAvLyBsb2FkLWNvbW1pdHRlZCAoaW4gcGFy
dGljdWxhciwgd2hlbiByZXN0b3JpbmcgZnJvbSB0aGUgcGFnZSBjYWNoZSkuCisgICAgICAgIGdf
YXNzZXJ0KCFtX2luc2VjdXJlQ29udGVudFJ1bik7CisgICAgICAgIGdfYXNzZXJ0KCFtX2luc2Vj
dXJlQ29udGVudERpc3BsYXllZCk7CisgICAgICAgIExvYWRUcmFja2luZ1Rlc3Q6OmxvYWRDb21t
aXR0ZWQoKTsKKyAgICB9CisKICAgICBib29sIG1faW5zZWN1cmVDb250ZW50UnVuOwogICAgIGJv
b2wgbV9pbnNlY3VyZUNvbnRlbnREaXNwbGF5ZWQ7CiB9OwpAQCAtMTI2LDYgKzEzNSwxOSBAQCBz
dGF0aWMgdm9pZCB0ZXN0SW5zZWN1cmVDb250ZW50KEluc2VjdXJlQ29udGVudFRlc3QqIHRlc3Qs
IGdjb25zdHBvaW50ZXIpCiAgICAgZ19hc3NlcnQodGVzdC0+bV9pbnNlY3VyZUNvbnRlbnRSdW4p
OwogICAgIGdfYXNzZXJ0KHRlc3QtPm1faW5zZWN1cmVDb250ZW50RGlzcGxheWVkKTsKIAorICAg
IHRlc3QtPm1faW5zZWN1cmVDb250ZW50UnVuID0gZmFsc2U7CisgICAgdGVzdC0+bV9pbnNlY3Vy
ZUNvbnRlbnREaXNwbGF5ZWQgPSBmYWxzZTsKKyAgICB0ZXN0LT5sb2FkVVJJKGtIdHRwc1NlcnZl
ci0+Z2V0VVJJRm9yUGF0aCgiLyIpLmRhdGEoKSk7CisgICAgdGVzdC0+d2FpdFVudGlsTG9hZEZp
bmlzaGVkKCk7CisgICAgZ19hc3NlcnQoIXRlc3QtPm1faW5zZWN1cmVDb250ZW50UnVuKTsKKyAg
ICBnX2Fzc2VydCghdGVzdC0+bV9pbnNlY3VyZUNvbnRlbnREaXNwbGF5ZWQpOworCisgICAgLy8g
RW5zdXJlIGluc2VjdXJlIGNvbnRlbnQgaXMgZGV0ZWN0ZWQgd2hlbiBhIHBhZ2UgaXMgcmVzdG9y
ZWQgZnJvbSB0aGUgcGFnZSBjYWNoZS4KKyAgICB0ZXN0LT5nb0JhY2soKTsKKyAgICB0ZXN0LT53
YWl0VW50aWxMb2FkRmluaXNoZWQoKTsKKyAgICBnX2Fzc2VydCh0ZXN0LT5tX2luc2VjdXJlQ29u
dGVudFJ1bik7CisgICAgZ19hc3NlcnQodGVzdC0+bV9pbnNlY3VyZUNvbnRlbnREaXNwbGF5ZWQp
OworCiAgICAgd2Via2l0X3dlYl9jb250ZXh0X3NldF90bHNfZXJyb3JzX3BvbGljeShjb250ZXh0
LCBvcmlnaW5hbFBvbGljeSk7CiB9CiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxv
ZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCA2NjE1MTg4YmU0YjY4YTM1ZTRkMzI1MjVk
MThjNDBmMmRhNjZkNTViLi5lMTdlMGJkZTJhMTU3MTE1OTA1NWQyMjhjYmU4NTc0OTRkMzhhN2Nj
IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMjEgQEAKKzIwMTUtMDItMDIgIE1pY2hhZWwgQ2F0YW56YXJvICA8
bWNhdGFuemFyb0BpZ2FsaWEuY29tPgorCisgICAgICAgIEluc2VjdXJlIGNvbnRlbnQgd2Fybmlu
Z3Mgbm90IGVtaXR0ZWQgd2hlbiBwYWdlIGlzIHJlc3RvcmVkIGZyb20gcGFnZSBjYWNoZQorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTM4MTI3CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgRW5zdXJlIGluc2Vj
dXJlIGNvbnRlbnQgaXMgZGV0ZWN0ZWQgb24gcGFnZXMgcmVzdG9yZWQgZnJvbSB0aGUgcGFnZSBj
YWNoZS4KKworICAgICAgICAqIGh0dHAvdGVzdHMvc2VjdXJpdHkvbWl4ZWRDb250ZW50L2FjdGl2
ZS1jb250ZW50LWluLXBhZ2UtY2FjaGUtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBo
dHRwL3Rlc3RzL3NlY3VyaXR5L21peGVkQ29udGVudC9hY3RpdmUtY29udGVudC1pbi1wYWdlLWNh
Y2hlLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvc2VjdXJpdHkvbWl4ZWRDb250
ZW50L3Bhc3NpdmUtY29udGVudC1pbi1wYWdlLWNhY2hlLWV4cGVjdGVkLnR4dDogQWRkZWQuCisg
ICAgICAgICogaHR0cC90ZXN0cy9zZWN1cml0eS9taXhlZENvbnRlbnQvcGFzc2l2ZS1jb250ZW50
LWluLXBhZ2UtY2FjaGUuaHRtbDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9zZWN1cml0
eS9taXhlZENvbnRlbnQvcmVzb3VyY2VzL2luc2VjdXJlLWltYWdlLWluLXBhZ2UtY2FjaGUuaHRt
bDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9zZWN1cml0eS9taXhlZENvbnRlbnQvcmVz
b3VyY2VzL2luc2VjdXJlLXNjcmlwdC1pbi1wYWdlLWNhY2hlLmh0bWw6IEFkZGVkLgorICAgICAg
ICAqIGh0dHAvdGVzdHMvc2VjdXJpdHkvbWl4ZWRDb250ZW50L3Jlc291cmNlcy9zZWN1cmUtaW1h
Z2UtaW4tcGFnZS1jYWNoZS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3NlY3Vy
aXR5L21peGVkQ29udGVudC9yZXNvdXJjZXMvc2VjdXJlLXNjcmlwdC1pbi1wYWdlLWNhY2hlLmh0
bWw6IEFkZGVkLgorCiAyMDE1LTAxLTMxICBEYXJpbiBBZGxlciAgPGRhcmluQGFwcGxlLmNvbT4K
IAogICAgICAgICBTdG9wIGRpc3BhdGNoaW5nIGV2ZW50cyB3aXRoIFNWR0VsZW1lbnRJbnN0YW5j
ZSBvYmplY3RzIGFzIHRoZWlyIHRhcmdldHMKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAv
dGVzdHMvc2VjdXJpdHkvbWl4ZWRDb250ZW50L2FjdGl2ZS1jb250ZW50LWluLXBhZ2UtY2FjaGUt
ZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9taXhlZENvbnRl
bnQvYWN0aXZlLWNvbnRlbnQtaW4tcGFnZS1jYWNoZS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
MjUwYWNmZmE0NmZkMDY5MDY1ODE1MmQ4NDI4MTI4MDc2ZWM4ZjgzYQotLS0gL2Rldi9udWxsCisr
KyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvbWl4ZWRDb250ZW50L2FjdGl2ZS1j
b250ZW50LWluLXBhZ2UtY2FjaGUtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsOCBAQAorQ09OU09M
RSBNRVNTQUdFOiBUaGUgcGFnZSBhdCBodHRwczovLzEyNy4wLjAuMTo4NDQzL3NlY3VyaXR5L21p
eGVkQ29udGVudC9yZXNvdXJjZXMvaW5zZWN1cmUtc2NyaXB0LWluLXBhZ2UtY2FjaGUuaHRtbCBy
YW4gaW5zZWN1cmUgY29udGVudCBmcm9tIGh0dHA6Ly8xMjcuMC4wLjE6ODA4MC9zZWN1cml0eS9t
aXhlZENvbnRlbnQvcmVzb3VyY2VzL3NjcmlwdC5qcy4KKworQ09OU09MRSBNRVNTQUdFOiBsaW5l
IDg6IGluc2VjdXJlLXNjcmlwdC1pbi1wYWdlLWNhY2hlIGxvYWRlZCBub3JtYWxseSAobm90IGZy
b20gcGFnZSBjYWNoZSkuCitDT05TT0xFIE1FU1NBR0U6IGxpbmUgNTogc2VjdXJlLXNjcmlwdC1p
bi1wYWdlLWNhY2hlIGxvYWRlZCBub3JtYWxseSAobm90IGZyb20gcGFnZSBjYWNoZSkuCitDT05T
T0xFIE1FU1NBR0U6IGxpbmUgMTE6IGluc2VjdXJlLXNjcmlwdC1pbi1wYWdlLWNhY2hlIGxvYWRl
ZCBmcm9tIHBhZ2UgY2FjaGUuCitDT05TT0xFIE1FU1NBR0U6IFRoZSBjYWNoZWQgcGFnZSBodHRw
czovLzEyNy4wLjAuMTo4NDQzL3NlY3VyaXR5L21peGVkQ29udGVudC9yZXNvdXJjZXMvaW5zZWN1
cmUtc2NyaXB0LWluLXBhZ2UtY2FjaGUuaHRtbCBjb250YWlucyBhY3RpdmUgbWl4ZWQgY29udGVu
dC4KK0NPTlNPTEUgTUVTU0FHRTogbGluZSA4OiBzZWN1cmUtc2NyaXB0LWluLXBhZ2UtY2FjaGUg
bG9hZGVkIGZyb20gcGFnZSBjYWNoZS4KK1RoaXMgdGVzdCBvcGVucyBhIHdpbmRvdyB0aGF0IGxv
YWRzIGEgcGFnZSB3aXRoIGFuIGluc2VjdXJlIHNjcmlwdCwgbmF2aWdhdGVzIHRvIGEgbmV3IHBh
Z2UgdGhhdCBsb2FkcyB0aGUgc2NyaXB0IHNlY3VyZWx5LCByZXR1cm5zIHRvIHRoZSBwYWdlIHdp
dGggdGhlIGluc2VjdXJlIHNjcmlwdCwgYW5kIHRoZW4gcmV0dXJucyB0byB0aGUgcGFnZSB3aXRo
IHRoZSBzZWN1cmUgc2NyaXB0LiBXaGVuIHJldHVybmluZyB0byBib3RoIHBhZ2VzLCB0aGV5IHNo
b3VsZCBiZSBsb2FkZWQgZnJvbSB0aGUgcGFnZSBjYWNoZS4gVGhlcmUgc2hvdWxkIGJlIGV4YWN0
bHkgdHdvIG1peGVkIGNvbnRlbnQgd2FybmluZ3MsIG9uZSBmb3IgZWFjaCB2aXNpdCB0byB0aGUg
cGFnZSB3aXRoIHRoZSBpbnNlY3VyZSBzY3JpcHQuCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9o
dHRwL3Rlc3RzL3NlY3VyaXR5L21peGVkQ29udGVudC9hY3RpdmUtY29udGVudC1pbi1wYWdlLWNh
Y2hlLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L21peGVkQ29udGVudC9h
Y3RpdmUtY29udGVudC1pbi1wYWdlLWNhY2hlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMTdiYTk3NjY5NDYw
OTRjYTVjNTg5MGIxZGZmZDljNDI1MTUyYzY4ZgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRl
c3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvbWl4ZWRDb250ZW50L2FjdGl2ZS1jb250ZW50LWluLXBh
Z2UtY2FjaGUuaHRtbApAQCAtMCwwICsxLDI3IEBACis8aHRtbD4KKzxib2R5PgorPHNjcmlwdD4K
K2lmICh3aW5kb3cudGVzdFJ1bm5lcikgeworICAgIHRlc3RSdW5uZXIud2FpdFVudGlsRG9uZSgp
OworICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOworICAgIHRlc3RSdW5uZXIuc2V0Q2FuT3Bl
bldpbmRvd3MoKTsKKyAgICB0ZXN0UnVubmVyLnNldENsb3NlUmVtYWluaW5nV2luZG93c1doZW5D
b21wbGV0ZSh0cnVlKTsKK30KKword2luZG93LmFkZEV2ZW50TGlzdGVuZXIoIm1lc3NhZ2UiLCBm
dW5jdGlvbiAoZSkgeworICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikKKyAgICAgICAgdGVzdFJ1
bm5lci5ub3RpZnlEb25lKCk7Cit9LCBmYWxzZSk7CisKKzwvc2NyaXB0PgorPHA+VGhpcyB0ZXN0
IG9wZW5zIGEgd2luZG93IHRoYXQgbG9hZHMgYSBwYWdlIHdpdGggYW4gaW5zZWN1cmUgc2NyaXB0
LCBuYXZpZ2F0ZXMKK3RvIGEgbmV3IHBhZ2UgdGhhdCBsb2FkcyB0aGUgc2NyaXB0IHNlY3VyZWx5
LCByZXR1cm5zIHRvIHRoZSBwYWdlIHdpdGggdGhlCitpbnNlY3VyZSBzY3JpcHQsIGFuZCB0aGVu
IHJldHVybnMgdG8gdGhlIHBhZ2Ugd2l0aCB0aGUgc2VjdXJlIHNjcmlwdC4gV2hlbgorcmV0dXJu
aW5nIHRvIGJvdGggcGFnZXMsIHRoZXkgc2hvdWxkIGJlIGxvYWRlZCBmcm9tIHRoZSBwYWdlIGNh
Y2hlLiBUaGVyZQorc2hvdWxkIGJlIGV4YWN0bHkgdHdvIG1peGVkIGNvbnRlbnQgd2FybmluZ3Ms
IG9uZSBmb3IgZWFjaCB2aXNpdCB0byB0aGUgcGFnZQord2l0aCB0aGUgaW5zZWN1cmUgc2NyaXB0
LjwvcD4KKzxzY3JpcHQ+Cit3aW5kb3cub3BlbigiaHR0cHM6Ly8xMjcuMC4wLjE6ODQ0My9zZWN1
cml0eS9taXhlZENvbnRlbnQvcmVzb3VyY2VzL2luc2VjdXJlLXNjcmlwdC1pbi1wYWdlLWNhY2hl
Lmh0bWwiKTsKKzwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9taXhlZENvbnRlbnQvcGFzc2l2ZS1jb250ZW50LWlu
LXBhZ2UtY2FjaGUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0
eS9taXhlZENvbnRlbnQvcGFzc2l2ZS1jb250ZW50LWluLXBhZ2UtY2FjaGUtZXhwZWN0ZWQudHh0
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLjJlZGU4ZTU1Y2NjM2UxYmM0ZjcxMzgyMDQwMWM5NTE5NmY5OTIzMGMKLS0t
IC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L21peGVkQ29u
dGVudC9wYXNzaXZlLWNvbnRlbnQtaW4tcGFnZS1jYWNoZS1leHBlY3RlZC50eHQKQEAgLTAsMCAr
MSw4IEBACitDT05TT0xFIE1FU1NBR0U6IGxpbmUgMTogVGhlIHBhZ2UgYXQgaHR0cHM6Ly8xMjcu
MC4wLjE6ODQ0My9zZWN1cml0eS9taXhlZENvbnRlbnQvcmVzb3VyY2VzL2luc2VjdXJlLWltYWdl
LWluLXBhZ2UtY2FjaGUuaHRtbCBkaXNwbGF5ZWQgaW5zZWN1cmUgY29udGVudCBmcm9tIGh0dHA6
Ly8xMjcuMC4wLjE6ODA4MC9zZWN1cml0eS9yZXNvdXJjZXMvY29tcGFzcy5qcGcuCisKK0NPTlNP
TEUgTUVTU0FHRTogbGluZSA4OiBpbnNlY3VyZS1pbWFnZS1pbi1wYWdlLWNhY2hlIGxvYWRlZCBu
b3JtYWxseSAobm90IGZyb20gcGFnZSBjYWNoZSkuCitDT05TT0xFIE1FU1NBR0U6IGxpbmUgNTog
c2VjdXJlLWltYWdlLWluLXBhZ2UtY2FjaGUgbG9hZGVkIG5vcm1hbGx5IChub3QgZnJvbSBwYWdl
IGNhY2hlKS4KK0NPTlNPTEUgTUVTU0FHRTogbGluZSAxMTogaW5zZWN1cmUtaW1hZ2UtaW4tcGFn
ZS1jYWNoZSBsb2FkZWQgZnJvbSBwYWdlIGNhY2hlLgorQ09OU09MRSBNRVNTQUdFOiBUaGUgY2Fj
aGVkIHBhZ2UgaHR0cHM6Ly8xMjcuMC4wLjE6ODQ0My9zZWN1cml0eS9taXhlZENvbnRlbnQvcmVz
b3VyY2VzL2luc2VjdXJlLWltYWdlLWluLXBhZ2UtY2FjaGUuaHRtbCBkaXNwbGF5ZWQgcGFzc2l2
ZSBtaXhlZCBjb250ZW50LgorQ09OU09MRSBNRVNTQUdFOiBsaW5lIDg6IHNlY3VyZS1pbWFnZS1p
bi1wYWdlLWNhY2hlIGxvYWRlZCBmcm9tIHBhZ2UgY2FjaGUuCitUaGlzIHRlc3Qgb3BlbnMgYSB3
aW5kb3cgdGhhdCBsb2FkcyBhIHBhZ2Ugd2l0aCBhbiBpbnNlY3VyZSBpbWFnZSwgbmF2aWdhdGVz
IHRvIGEgbmV3IHBhZ2UgdGhhdCBsb2FkcyB0aGUgaW1hZ2Ugc2VjdXJlbHksIHJldHVybnMgdG8g
dGhlIHBhZ2Ugd2l0aCB0aGUgaW5zZWN1cmUgaW1hZ2UsIGFuZCB0aGVuIHJldHVybnMgdG8gdGhl
IHBhZ2Ugd2l0aCB0aGUgc2VjdXJlIGltYWdlLiBXaGVuIHJldHVybmluZyB0byBib3RoIHBhZ2Vz
LCB0aGV5IHNob3VsZCBiZSBsb2FkZWQgZnJvbSB0aGUgcGFnZSBjYWNoZS4gVGhlcmUgc2hvdWxk
IGJlIGV4YWN0bHkgdHdvIG1peGVkIGNvbnRlbnQgd2FybmluZ3MsIG9uZSBmb3IgZWFjaCB2aXNp
dCB0byB0aGUgcGFnZSB3aXRoIHRoZSBpbnNlY3VyZSBpbWFnZS4KZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvbWl4ZWRDb250ZW50L3Bhc3NpdmUtY29udGVudC1p
bi1wYWdlLWNhY2hlLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L21peGVk
Q29udGVudC9wYXNzaXZlLWNvbnRlbnQtaW4tcGFnZS1jYWNoZS5odG1sCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmI2
OTZlMzFmZTc4MzZjOThlNzc5NTc2MzBmZmZjY2JhMDQ0ZmZmMjgKLS0tIC9kZXYvbnVsbAorKysg
Yi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L21peGVkQ29udGVudC9wYXNzaXZlLWNv
bnRlbnQtaW4tcGFnZS1jYWNoZS5odG1sCkBAIC0wLDAgKzEsMjcgQEAKKzxodG1sPgorPGJvZHk+
Cis8c2NyaXB0PgoraWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7CisgICAgdGVzdFJ1bm5lci53YWl0
VW50aWxEb25lKCk7CisgICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7CisgICAgdGVzdFJ1bm5l
ci5zZXRDYW5PcGVuV2luZG93cygpOworICAgIHRlc3RSdW5uZXIuc2V0Q2xvc2VSZW1haW5pbmdX
aW5kb3dzV2hlbkNvbXBsZXRlKHRydWUpOworfQorCit3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigi
bWVzc2FnZSIsIGZ1bmN0aW9uIChlKSB7CisgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKQorICAg
ICAgICB0ZXN0UnVubmVyLm5vdGlmeURvbmUoKTsKK30sIGZhbHNlKTsKKworPC9zY3JpcHQ+Cis8
cD5UaGlzIHRlc3Qgb3BlbnMgYSB3aW5kb3cgdGhhdCBsb2FkcyBhIHBhZ2Ugd2l0aCBhbiBpbnNl
Y3VyZSBpbWFnZSwgbmF2aWdhdGVzCit0byBhIG5ldyBwYWdlIHRoYXQgbG9hZHMgdGhlIGltYWdl
IHNlY3VyZWx5LCByZXR1cm5zIHRvIHRoZSBwYWdlIHdpdGggdGhlCitpbnNlY3VyZSBpbWFnZSwg
YW5kIHRoZW4gcmV0dXJucyB0byB0aGUgcGFnZSB3aXRoIHRoZSBzZWN1cmUgaW1hZ2UuIFdoZW4K
K3JldHVybmluZyB0byBib3RoIHBhZ2VzLCB0aGV5IHNob3VsZCBiZSBsb2FkZWQgZnJvbSB0aGUg
cGFnZSBjYWNoZS4gVGhlcmUKK3Nob3VsZCBiZSBleGFjdGx5IHR3byBtaXhlZCBjb250ZW50IHdh
cm5pbmdzLCBvbmUgZm9yIGVhY2ggdmlzaXQgdG8gdGhlIHBhZ2UKK3dpdGggdGhlIGluc2VjdXJl
IGltYWdlLjwvcD4KKzxzY3JpcHQ+Cit3aW5kb3cub3BlbigiaHR0cHM6Ly8xMjcuMC4wLjE6ODQ0
My9zZWN1cml0eS9taXhlZENvbnRlbnQvcmVzb3VyY2VzL2luc2VjdXJlLWltYWdlLWluLXBhZ2Ut
Y2FjaGUuaHRtbCIpOworPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L21peGVkQ29udGVudC9yZXNvdXJjZXMvaW5z
ZWN1cmUtaW1hZ2UtaW4tcGFnZS1jYWNoZS5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9z
ZWN1cml0eS9taXhlZENvbnRlbnQvcmVzb3VyY2VzL2luc2VjdXJlLWltYWdlLWluLXBhZ2UtY2Fj
aGUuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi45Y2I5YzhlZWE0MTAwYzBkYjQwYjI5Y2Q2MjA2NjI1YTNhZDI3
MTg2Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9t
aXhlZENvbnRlbnQvcmVzb3VyY2VzL2luc2VjdXJlLWltYWdlLWluLXBhZ2UtY2FjaGUuaHRtbApA
QCAtMCwwICsxLDE1IEBACis8aW1nIHNyYz0iaHR0cDovLzEyNy4wLjAuMTo4MDgwL3NlY3VyaXR5
L3Jlc291cmNlcy9jb21wYXNzLmpwZyI+Cis8c2NyaXB0PgoraWYgKHdpbmRvdy50ZXN0UnVubmVy
KQorICAgIHRlc3RSdW5uZXIub3ZlcnJpZGVQcmVmZXJlbmNlKCJXZWJLaXRVc2VzUGFnZUNhY2hl
UHJlZmVyZW5jZUtleSIsIDEpOworCit3aW5kb3cub25wYWdlc2hvdyA9IGZ1bmN0aW9uKGV2dCkg
eworICAgIGlmICghZXZ0LnBlcnNpc3RlZCkgeworICAgICAgICBjb25zb2xlLmxvZygiaW5zZWN1
cmUtaW1hZ2UtaW4tcGFnZS1jYWNoZSBsb2FkZWQgbm9ybWFsbHkgKG5vdCBmcm9tIHBhZ2UgY2Fj
aGUpLiIpOworICAgICAgICBzZXRUaW1lb3V0KCd3aW5kb3cubG9jYXRpb24gPSAiaHR0cHM6Ly8x
MjcuMC4wLjE6ODQ0My9zZWN1cml0eS9taXhlZENvbnRlbnQvcmVzb3VyY2VzL3NlY3VyZS1pbWFn
ZS1pbi1wYWdlLWNhY2hlLmh0bWwiJywgMCk7CisgICAgfSBlbHNlIHsKKyAgICAgICAgY29uc29s
ZS5sb2coImluc2VjdXJlLWltYWdlLWluLXBhZ2UtY2FjaGUgbG9hZGVkIGZyb20gcGFnZSBjYWNo
ZS4iKTsKKyAgICAgICAgc2V0VGltZW91dCgnaGlzdG9yeS5mb3J3YXJkKCknLCAwKTsKKyAgICB9
Cit9Cis8L3NjcmlwdD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJp
dHkvbWl4ZWRDb250ZW50L3Jlc291cmNlcy9pbnNlY3VyZS1zY3JpcHQtaW4tcGFnZS1jYWNoZS5o
dG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9taXhlZENvbnRlbnQvcmVzb3Vy
Y2VzL2luc2VjdXJlLXNjcmlwdC1pbi1wYWdlLWNhY2hlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYjQ2MDBk
MzMyMjExMzIxNzc4ZWI0ZjVhMmViYzY4OWUxYzQ5NzgyNAotLS0gL2Rldi9udWxsCisrKyBiL0xh
eW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvbWl4ZWRDb250ZW50L3Jlc291cmNlcy9pbnNl
Y3VyZS1zY3JpcHQtaW4tcGFnZS1jYWNoZS5odG1sCkBAIC0wLDAgKzEsMTUgQEAKKzxzY3JpcHQg
c3JjPSJodHRwOi8vMTI3LjAuMC4xOjgwODAvc2VjdXJpdHkvbWl4ZWRDb250ZW50L3Jlc291cmNl
cy9zY3JpcHQuanMiPjwvc2NyaXB0PgorPHNjcmlwdD4KK2lmICh3aW5kb3cudGVzdFJ1bm5lcikK
KyAgICB0ZXN0UnVubmVyLm92ZXJyaWRlUHJlZmVyZW5jZSgiV2ViS2l0VXNlc1BhZ2VDYWNoZVBy
ZWZlcmVuY2VLZXkiLCAxKTsKKword2luZG93Lm9ucGFnZXNob3cgPSBmdW5jdGlvbihldnQpIHsK
KyAgICBpZiAoIWV2dC5wZXJzaXN0ZWQpIHsKKyAgICAgICAgY29uc29sZS5sb2coImluc2VjdXJl
LXNjcmlwdC1pbi1wYWdlLWNhY2hlIGxvYWRlZCBub3JtYWxseSAobm90IGZyb20gcGFnZSBjYWNo
ZSkuIik7CisgICAgICAgIHNldFRpbWVvdXQoJ3dpbmRvdy5sb2NhdGlvbiA9ICJodHRwczovLzEy
Ny4wLjAuMTo4NDQzL3NlY3VyaXR5L21peGVkQ29udGVudC9yZXNvdXJjZXMvc2VjdXJlLXNjcmlw
dC1pbi1wYWdlLWNhY2hlLmh0bWwiJywgMCk7CisgICAgfSBlbHNlIHsKKyAgICAgICAgY29uc29s
ZS5sb2coImluc2VjdXJlLXNjcmlwdC1pbi1wYWdlLWNhY2hlIGxvYWRlZCBmcm9tIHBhZ2UgY2Fj
aGUuIik7CisgICAgICAgIHNldFRpbWVvdXQoJ2hpc3RvcnkuZm9yd2FyZCgpJywgMCk7CisgICAg
fQorfQorPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3Vy
aXR5L21peGVkQ29udGVudC9yZXNvdXJjZXMvc2VjdXJlLWltYWdlLWluLXBhZ2UtY2FjaGUuaHRt
bCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvbWl4ZWRDb250ZW50L3Jlc291cmNl
cy9zZWN1cmUtaW1hZ2UtaW4tcGFnZS1jYWNoZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjkzZGY4YzhjN2U2
ZTM5YmIyNTI4NmFjNGIwMjE5OTZkODlhNTcyZjkKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRU
ZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L21peGVkQ29udGVudC9yZXNvdXJjZXMvc2VjdXJlLWlt
YWdlLWluLXBhZ2UtY2FjaGUuaHRtbApAQCAtMCwwICsxLDEzIEBACis8aW1nIHNyYz0iaHR0cHM6
Ly8xMjcuMC4wLjE6ODQ0My9zZWN1cml0eS9yZXNvdXJjZXMvY29tcGFzcy5qcGciPgorPHNjcmlw
dD4KK3dpbmRvdy5vbnBhZ2VzaG93ID0gZnVuY3Rpb24oZXZ0KSB7CisgICAgaWYgKCFldnQucGVy
c2lzdGVkKSB7CisgICAgICAgIGNvbnNvbGUubG9nKCJzZWN1cmUtaW1hZ2UtaW4tcGFnZS1jYWNo
ZSBsb2FkZWQgbm9ybWFsbHkgKG5vdCBmcm9tIHBhZ2UgY2FjaGUpLiIpOworICAgICAgICBzZXRU
aW1lb3V0KCdoaXN0b3J5LmJhY2soKScsIDApOworICAgIH0gZWxzZSB7CisgICAgICAgIGNvbnNv
bGUubG9nKCJzZWN1cmUtaW1hZ2UtaW4tcGFnZS1jYWNoZSBsb2FkZWQgZnJvbSBwYWdlIGNhY2hl
LiIpOworICAgICAgICBpZiAod2luZG93Lm9wZW5lcikKKyAgICAgICAgICAgIHdpbmRvdy5vcGVu
ZXIucG9zdE1lc3NhZ2UoJ2RvbmUnLCAnKicpOworICAgIH0KK30KKzwvc2NyaXB0PgpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9taXhlZENvbnRlbnQvcmVzb3Vy
Y2VzL3NlY3VyZS1zY3JpcHQtaW4tcGFnZS1jYWNoZS5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90
ZXN0cy9zZWN1cml0eS9taXhlZENvbnRlbnQvcmVzb3VyY2VzL3NlY3VyZS1zY3JpcHQtaW4tcGFn
ZS1jYWNoZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmNjMjQ3MTc1ZTdhMDdkMjQxYTkyOWJkNWNkODVkMDY3
NGUxMDUyYTcKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3Vy
aXR5L21peGVkQ29udGVudC9yZXNvdXJjZXMvc2VjdXJlLXNjcmlwdC1pbi1wYWdlLWNhY2hlLmh0
bWwKQEAgLTAsMCArMSwxMyBAQAorPHNjcmlwdCBzcmM9Imh0dHBzOi8vMTI3LjAuMC4xOjg0NDMv
c2VjdXJpdHkvbWl4ZWRDb250ZW50L3Jlc291cmNlcy9zY3JpcHQuanMiPjwvc2NyaXB0PgorPHNj
cmlwdD4KK3dpbmRvdy5vbnBhZ2VzaG93ID0gZnVuY3Rpb24oZXZ0KSB7CisgICAgaWYgKCFldnQu
cGVyc2lzdGVkKSB7CisgICAgICAgIGNvbnNvbGUubG9nKCJzZWN1cmUtc2NyaXB0LWluLXBhZ2Ut
Y2FjaGUgbG9hZGVkIG5vcm1hbGx5IChub3QgZnJvbSBwYWdlIGNhY2hlKS4iKTsKKyAgICAgICAg
c2V0VGltZW91dCgnaGlzdG9yeS5iYWNrKCknLCAwKTsKKyAgICB9IGVsc2UgeworICAgICAgICBj
b25zb2xlLmxvZygic2VjdXJlLXNjcmlwdC1pbi1wYWdlLWNhY2hlIGxvYWRlZCBmcm9tIHBhZ2Ug
Y2FjaGUuIik7CisgICAgICAgIGlmICh3aW5kb3cub3BlbmVyKQorICAgICAgICAgICAgd2luZG93
Lm9wZW5lci5wb3N0TWVzc2FnZSgnZG9uZScsICcqJyk7CisgICAgfQorfQorPC9zY3JpcHQ+Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>