<?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>52058</bug_id>
          
          <creation_ts>2011-01-07 07:19:21 -0800</creation_ts>
          <short_desc>setContentEditable with true/false/inherit string is not working properly</short_desc>
          <delta_ts>2011-10-18 22:46:50 -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>HTML Editing</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>PC</rep_platform>
          <op_sys>OS X 10.5</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>
          <dependson>51957</dependson>
    
    <dependson>54290</dependson>
          <blocked>57244</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Chang Shu">cshu</reporter>
          <assigned_to name="Chang Shu">cshu</assigned_to>
          <cc>abarth</cc>
    
    <cc>ap</cc>
    
    <cc>commit-queue</cc>
    
    <cc>darin</cc>
    
    <cc>eric</cc>
    
    <cc>rniwa</cc>
    
    <cc>suresh.voruganti</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>330758</commentid>
    <comment_count>0</comment_count>
    <who name="Chang Shu">cshu</who>
    <bug_when>2011-01-07 07:19:21 -0800</bug_when>
    <thetext>The current implementation of setContentEditable does not strictly follow the spec.
Layout tests:
set-true.html
set-false.html
set-inherit-parent-true.html
set-inherit-parent-false.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>330852</commentid>
    <comment_count>1</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2011-01-07 10:32:58 -0800</bug_when>
    <thetext>&gt; set-true.html
&gt; set-false.html
&gt; set-inherit-parent-true.html
&gt; set-inherit-parent-false.html

Where can one find these layout tests?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>330868</commentid>
    <comment_count>2</comment_count>
    <who name="Chang Shu">cshu</who>
    <bug_when>2011-01-07 10:53:56 -0800</bug_when>
    <thetext>(In reply to comment #1)
&gt; &gt; set-true.html
&gt; &gt; set-false.html
&gt; &gt; set-inherit-parent-true.html
&gt; &gt; set-inherit-parent-false.html
&gt; 
&gt; Where can one find these layout tests?

:) I was asked to create the bugs and put references in the expected test results. These tests are not landed yet. Please see bug 51957.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>340516</commentid>
    <comment_count>3</comment_count>
      <attachid>80246</attachid>
    <who name="Chang Shu">cshu</who>
    <bug_when>2011-01-26 15:24:16 -0800</bug_when>
    <thetext>Created attachment 80246
fix patch

As we have discussed, calling document()-&gt;updateLayoutIgnorePendingStylesheets() in setContentEditable() is not the ultimate solution for resolving the dom-renderstyle sync problem as setAttribute(&quot;contenteditable&quot;,value) will still fail. But at least, the &quot;contentEditable = value&quot; case is resolved and it won&apos;t cause a big performance regression. So I put this patch for review.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>340592</commentid>
    <comment_count>4</comment_count>
      <attachid>80246</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2011-01-26 16:54:40 -0800</bug_when>
    <thetext>Comment on attachment 80246
fix patch

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

&gt; Source/WebCore/html/HTMLElement.cpp:743
&gt; +    document()-&gt;updateLayoutIgnorePendingStylesheets();

This is wrong. The correct place to put a layout update is in the getter, not the setter. If you make a test case that sets the attribute with setAttribute or removeAttribute you will see that the fix is not effective for that case.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>340593</commentid>
    <comment_count>5</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2011-01-26 16:55:11 -0800</bug_when>
    <thetext>(In reply to comment #3)
&gt; As we have discussed, calling document()-&gt;updateLayoutIgnorePendingStylesheets() in setContentEditable() is not the ultimate solution for resolving the dom-renderstyle sync problem as setAttribute(&quot;contenteditable&quot;,value) will still fail. But at least, the &quot;contentEditable = value&quot; case is resolved and it won&apos;t cause a big performance regression. So I put this patch for review.

I see your comment now.

I don’t agree that this is a reasonable intermediate step.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>340600</commentid>
    <comment_count>6</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2011-01-26 17:06:42 -0800</bug_when>
    <thetext>(In reply to comment #4)
&gt; (From update of attachment 80246 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=80246&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/html/HTMLElement.cpp:743
&gt; &gt; +    document()-&gt;updateLayoutIgnorePendingStylesheets();
&gt; 
&gt; This is wrong. The correct place to put a layout update is in the getter, not the setter. If you make a test case that sets the attribute with setAttribute or removeAttribute you will see that the fix is not effective for that case.

However, updating layout in getting creates a security vulnerability.  I think we should resolve the bug 52025 first.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>340621</commentid>
    <comment_count>7</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2011-01-26 17:24:05 -0800</bug_when>
    <thetext>(In reply to comment #6)
&gt; (In reply to comment #4)
&gt; &gt; This is wrong. The correct place to put a layout update is in the getter, not the setter. If you make a test case that sets the attribute with setAttribute or removeAttribute you will see that the fix is not effective for that case.
&gt; 
&gt; However, updating layout in getting creates a security vulnerability. I think we should resolve the bug 52025 first.

If there is a rush to do this and we want to make getting this value from the DOM to work right now, we can separate internal use of isContentEditable from the DOM-visible version, and put the updateLayout function in the DOM version.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>340639</commentid>
    <comment_count>8</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2011-01-26 17:33:43 -0800</bug_when>
    <thetext>(In reply to comment #7)
&gt; If there is a rush to do this and we want to make getting this value from the DOM to work right now, we can separate internal use of isContentEditable from the DOM-visible version, and put the updateLayout function in the DOM version.

But we do need to update the layout to obtain the correct value, right?  So we&apos;ll end up getting differnt values depending on whether script queried values or not and that might lead to some inconsistent state within WebCore.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>340647</commentid>
    <comment_count>9</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2011-01-26 17:38:20 -0800</bug_when>
    <thetext>(In reply to comment #8)
&gt; But we do need to update the layout to obtain the correct value, right?

Yes.

&gt; So we&apos;ll end up getting differnt values depending on whether script queried values or not and that might lead to some inconsistent state within WebCore.

That’s already true.

We can get different values depending on whether the script performs an operation that triggers style computation. To give one trivial example, calling offsetLeft on some object will trigger style computation (and layout).

So having isContentEditable be an additional function that gives the correct value won’t necessarily cause new problems.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>340696</commentid>
    <comment_count>10</comment_count>
    <who name="Chang Shu">cshu</who>
    <bug_when>2011-01-26 19:19:39 -0800</bug_when>
    <thetext>&gt; &gt; However, updating layout in getting creates a security vulnerability. I think we should resolve the bug 52025 first.
&gt; 
&gt; If there is a rush to do this and we want to make getting this value from the DOM to work right now, we can separate internal use of isContentEditable from the DOM-visible version, and put the updateLayout function in the DOM version.

Bug 52025 has an impact on the live website and I won&apos;t think it will be resolved any time soon. I will creat a new patch based on Darin&apos;s idea about using a new function.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>340867</commentid>
    <comment_count>11</comment_count>
    <who name="Chang Shu">cshu</who>
    <bug_when>2011-01-27 07:25:05 -0800</bug_when>
    <thetext>&gt; I will creat a new patch based on Darin&apos;s idea about using a new function.

I just realized there are tons of places calling isContentEditable(defined in Node.h), which I planed to rename to isEditable for internal use and keep isContentEditable (defined in HTMLElement.idl) for js use. Would you guys go for it?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>340980</commentid>
    <comment_count>12</comment_count>
    <who name="Chang Shu">cshu</who>
    <bug_when>2011-01-27 11:57:28 -0800</bug_when>
    <thetext>*** Bug 52059 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>340987</commentid>
    <comment_count>13</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2011-01-27 12:06:33 -0800</bug_when>
    <thetext>(In reply to comment #11)
&gt; &gt; I will creat a new patch based on Darin&apos;s idea about using a new function.
&gt; 
&gt; I just realized there are tons of places calling isContentEditable(defined in Node.h), which I planed to rename to isEditable for internal use and keep isContentEditable (defined in HTMLElement.idl) for js use. Would you guys go for it?

Yes, renaming the existing function is the right way to do this.

But the name should not be different in an arbitrary way. Instead the difference should express the difference between the functions. The old function is faster but requires that renderers and style be up to date, otherwise gives the wrong name. If we had a sense of the future direction that would help us choose the right name. For example, if we think we are changing all call sites, then deprecatedFastIsContentEditable would be one idea for the name. Another possibility is fastIsContentEditable, which at least answers the question of why you’d use it instead of isContentEditable.

The difficulty of naming this is directly tied to the difficulty of correctly calling the existing function!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>349309</commentid>
    <comment_count>14</comment_count>
    <who name="Suresh Voruganti">suresh.voruganti</who>
    <bug_when>2011-02-10 13:05:32 -0800</bug_when>
    <thetext>Removing the error from Qtwebkit2.1.x Nice to have master bug.

We still need to fix the problem in trunk.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>374496</commentid>
    <comment_count>15</comment_count>
      <attachid>87145</attachid>
    <who name="Chang Shu">cshu</who>
    <bug_when>2011-03-28 08:11:46 -0700</bug_when>
    <thetext>Created attachment 87145
fix patch 2</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>374499</commentid>
    <comment_count>16</comment_count>
      <attachid>87145</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2011-03-28 08:17:18 -0700</bug_when>
    <thetext>Comment on attachment 87145
fix patch 2

There are many places where we currently call rendererIsEditable, right?  How do we know that we don&apos;t need to replace those calls by isContentEditable?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>374506</commentid>
    <comment_count>17</comment_count>
    <who name="Chang Shu">cshu</who>
    <bug_when>2011-03-28 08:33:02 -0700</bug_when>
    <thetext>(In reply to comment #16)
&gt; (From update of attachment 87145 [details])
&gt; There are many places where we currently call rendererIsEditable, right?  How do we know that we don&apos;t need to replace those calls by isContentEditable?

Since this patch should not cause any regression (because the original code never updates layout), I think it&apos;s reasonable that we fix issues in the future when they show up. For places we know we should call isContentEditable, like the ones you have pointed out, we should fix them now. What do you think?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>378494</commentid>
    <comment_count>18</comment_count>
      <attachid>87145</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2011-04-03 00:15:09 -0700</bug_when>
    <thetext>Comment on attachment 87145
fix patch 2

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

Thanks for filing the followup bug.

&gt; Source/WebCore/dom/Node.cpp:716
&gt; +    document()-&gt;updateLayoutIgnorePendingStylesheets();

Why do we ignore pending stylesheets?  Don&apos;t we need to include pending stylesheets as well?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>378750</commentid>
    <comment_count>19</comment_count>
    <who name="Chang Shu">cshu</who>
    <bug_when>2011-04-04 06:12:03 -0700</bug_when>
    <thetext>(In reply to comment #18)
&gt; (From update of attachment 87145 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=87145&amp;action=review
&gt; 
&gt; Thanks for filing the followup bug.
&gt; 
&gt; &gt; Source/WebCore/dom/Node.cpp:716
&gt; &gt; +    document()-&gt;updateLayoutIgnorePendingStylesheets();
&gt; 
&gt; Why do we ignore pending stylesheets?  Don&apos;t we need to include pending stylesheets as well?

This has to trace back to the discussion in comment #12 of
https://bugs.webkit.org/show_bug.cgi?id=50636.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>378799</commentid>
    <comment_count>20</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2011-04-04 08:26:12 -0700</bug_when>
    <thetext>(In reply to comment #18)
&gt; &gt; Source/WebCore/dom/Node.cpp:716
&gt; &gt; +    document()-&gt;updateLayoutIgnorePendingStylesheets();
&gt; 
&gt; Why do we ignore pending stylesheets?  Don&apos;t we need to include pending stylesheets as well?

I don’t think the name makes this entirely clear, but the difference between updateLayout and updateLayoutIgnorePendingStylesheets is related to the state early in page loading, where stylesheets are still loading

To avoid a “flash of unstyled content”, the entire page is set to “display: none” until the stylesheets are loaded. If the caller can live with that, getting null for the renderer if called during that early period, then updateLayout is the right function to call. If the caller needs good data for the renderers even if called during that early period and it’s acceptable to have a FOUC, then updateLayoutIgnorePendingStylesheets is the right function to call.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>378807</commentid>
    <comment_count>21</comment_count>
    <who name="Chang Shu">cshu</who>
    <bug_when>2011-04-04 08:47:20 -0700</bug_when>
    <thetext>&gt; &gt; Why do we ignore pending stylesheets?  Don&apos;t we need to include pending stylesheets as well?
&gt; 
&gt; I don’t think the name makes this entirely clear, but the difference between updateLayout and updateLayoutIgnorePendingStylesheets is related to the state early in page loading, where stylesheets are still loading
&gt; 
&gt; To avoid a “flash of unstyled content”, the entire page is set to “display: none” until the stylesheets are loaded. If the caller can live with that, getting null for the renderer if called during that early period, then updateLayout is the right function to call. If the caller needs good data for the renderers even if called during that early period and it’s acceptable to have a FOUC, then updateLayoutIgnorePendingStylesheets is the right function to call.

Thanks for sharing the knowledge. It seems to me updateLayoutIgnorePendingStylesheets tries the best and is a better choice for us.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>378948</commentid>
    <comment_count>22</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2011-04-04 12:14:07 -0700</bug_when>
    <thetext>(In reply to comment #20)
&gt; I don’t think the name makes this entirely clear, but the difference between updateLayout and updateLayoutIgnorePendingStylesheets is related to the state early in page loading, where stylesheets are still loading
&gt; 
&gt; To avoid a “flash of unstyled content”, the entire page is set to “display: none” until the stylesheets are loaded. If the caller can live with that, getting null for the renderer if called during that early period, then updateLayout is the right function to call. If the caller needs good data for the renderers even if called during that early period and it’s acceptable to have a FOUC, then updateLayoutIgnorePendingStylesheets is the right function to call.

I see. Thanks for the clarification, Darin!

(In reply to comment #21)
&gt; Thanks for sharing the knowledge. It seems to me updateLayoutIgnorePendingStylesheets tries the best and is a better choice for us.

I agree.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>378953</commentid>
    <comment_count>23</comment_count>
      <attachid>87145</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2011-04-04 12:20:55 -0700</bug_when>
    <thetext>Comment on attachment 87145
fix patch 2

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

r=me provided you make the following change to the change log entry.

&gt; Source/WebCore/ChangeLog:10
&gt; +        checking editability: rendererIsEditable and isContentEdiable. The former is a fast path,
&gt; +        which checks the render style of usermodify. The latter updates the layout first to make

In addition to being fast, rendererIsEditable does NOT trigger layout, which is an important thing in some call sites so you should probably mention that although the function implies it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>378957</commentid>
    <comment_count>24</comment_count>
    <who name="Chang Shu">cshu</who>
    <bug_when>2011-04-04 12:25:54 -0700</bug_when>
    <thetext>(In reply to comment #23)
&gt; (From update of attachment 87145 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=87145&amp;action=review
&gt; 
&gt; r=me provided you make the following change to the change log entry.
&gt; 
&gt; &gt; Source/WebCore/ChangeLog:10
&gt; &gt; +        checking editability: rendererIsEditable and isContentEdiable. The former is a fast path,
&gt; &gt; +        which checks the render style of usermodify. The latter updates the layout first to make
&gt; 
&gt; In addition to being fast, rendererIsEditable does NOT trigger layout, which is an important thing in some call sites so you should probably mention that although the function implies it.

Thanks for the review, Ryosuke. I will rebaseline the patch with change log update and cq+ it myself.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>378994</commentid>
    <comment_count>25</comment_count>
      <attachid>88108</attachid>
    <who name="Chang Shu">cshu</who>
    <bug_when>2011-04-04 13:11:46 -0700</bug_when>
    <thetext>Created attachment 88108
fix patch 3

review+ already. only updated changelog and rebaselined.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>379148</commentid>
    <comment_count>26</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2011-04-04 15:46:44 -0700</bug_when>
    <thetext>The commit-queue encountered the following flaky tests while processing attachment 88108:

fast/loader/recursive-before-unload-crash.html bug 50880 (authors: beidson@apple.com and eric@webkit.org)
The commit-queue is continuing to process your patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>379150</commentid>
    <comment_count>27</comment_count>
      <attachid>88108</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2011-04-04 15:49:41 -0700</bug_when>
    <thetext>Comment on attachment 88108
fix patch 3

Clearing flags on attachment: 88108

Committed r82886: &lt;http://trac.webkit.org/changeset/82886&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>379151</commentid>
    <comment_count>28</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2011-04-04 15:49:47 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>379238</commentid>
    <comment_count>29</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-04-04 17:10:52 -0700</bug_when>
    <thetext>http://trac.webkit.org/changeset/82886 might have broken Windows XP Debug (Tests)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>394977</commentid>
    <comment_count>30</comment_count>
    <who name="Chang Shu">cshu</who>
    <bug_when>2011-04-28 17:34:09 -0700</bug_when>
    <thetext>*** Bug 50636 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>80246</attachid>
            <date>2011-01-26 15:24:16 -0800</date>
            <delta_ts>2011-03-28 08:11:46 -0700</delta_ts>
            <desc>fix patch</desc>
            <filename>52058_1.patch</filename>
            <type>text/plain</type>
            <size>11517</size>
            <attacher name="Chang Shu">cshu</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDc2NzI2KQorKysgU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTQgQEAKKzIwMTEtMDEtMjYgIENoYW5nIFNo
dSAgPGNoYW5nLnNodUBub2tpYS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgQ2FsbCB1cGRhdGVsYXlvdXQgaW4gc2V0Q29udGVudEVkaXRhYmxl
IHNvIHJlbmRlciBzdHlsZSBjYW4gYmUgdXBkYXRlZAorICAgICAgICBiZWZvcmUgbmV4dCBqYXZh
c2NyaXB0IGNhbGwgd2hpY2ggbWF5IGNoZWNrIGlzQ29udGVudEVkaXRhYmxlLgorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTIwNTgKKworICAgICAgICAq
IGh0bWwvSFRNTEVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SFRNTEVsZW1lbnQ6OnNl
dENvbnRlbnRFZGl0YWJsZSk6CisKIDIwMTEtMDEtMjYgIERhdmUgSHlhdHQgIDxoeWF0dEBhcHBs
ZS5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgRGFuIEJlcm5zdGVpbi4KSW5kZXg6IFNvdXJj
ZS9XZWJDb3JlL2h0bWwvSFRNTEVsZW1lbnQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJD
b3JlL2h0bWwvSFRNTEVsZW1lbnQuY3BwCShyZXZpc2lvbiA3NjUyOCkKKysrIFNvdXJjZS9XZWJD
b3JlL2h0bWwvSFRNTEVsZW1lbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC03MzksNiArNzM5LDgg
QEAgdm9pZCBIVE1MRWxlbWVudDo6c2V0Q29udGVudEVkaXRhYmxlKGNvbgogICAgICAgICByZW1v
dmVBdHRyaWJ1dGUoY29udGVudGVkaXRhYmxlQXR0ciwgZWMpOwogICAgIGVsc2UKICAgICAgICAg
ZWMgPSBTWU5UQVhfRVJSOworCisgICAgZG9jdW1lbnQoKS0+dXBkYXRlTGF5b3V0SWdub3JlUGVu
ZGluZ1N0eWxlc2hlZXRzKCk7CiB9CiAKIGJvb2wgSFRNTEVsZW1lbnQ6OmRyYWdnYWJsZSgpIGNv
bnN0CkluZGV4OiBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVz
dHMvQ2hhbmdlTG9nCShyZXZpc2lvbiA3NjcyNikKKysrIExheW91dFRlc3RzL0NoYW5nZUxvZwko
d29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDIxIEBACisyMDExLTAxLTI2ICBDaGFuZyBTaHUgIDxj
aGFuZy5zaHVAbm9raWEuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgIFJlbW92ZWQgZGVidWcgaW5mbyBhbmQgdXBkYXRlZCB0ZXN0IHJlc3VsdHMg
YWZ0ZXIgcGFzc2luZy4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTUyMDU4CisKKyAgICAgICAgKiBmYXN0L2RvbS9IVE1MRWxlbWVudC9zZXQtZmFsc2Ut
ZXhwZWN0ZWQudHh0OgorICAgICAgICAqIGZhc3QvZG9tL0hUTUxFbGVtZW50L3NldC1mYWxzZS5o
dG1sOgorICAgICAgICAqIGZhc3QvZG9tL0hUTUxFbGVtZW50L3NldC1pbmhlcml0LXBhcmVudC1m
YWxzZS1leHBlY3RlZC50eHQ6CisgICAgICAgICogZmFzdC9kb20vSFRNTEVsZW1lbnQvc2V0LWlu
aGVyaXQtcGFyZW50LWZhbHNlLmh0bWw6CisgICAgICAgICogZmFzdC9kb20vSFRNTEVsZW1lbnQv
c2V0LWluaGVyaXQtcGFyZW50LXRydWUtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIGZhc3QvZG9t
L0hUTUxFbGVtZW50L3NldC1pbmhlcml0LXBhcmVudC10cnVlLmh0bWw6CisgICAgICAgICogZmFz
dC9kb20vSFRNTEVsZW1lbnQvc2V0LXRydWUtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIGZhc3Qv
ZG9tL0hUTUxFbGVtZW50L3NldC10cnVlLmh0bWw6CisgICAgICAgICogZmFzdC9kb20vSFRNTEVs
ZW1lbnQvc2V0LXZhbHVlLWNhc2VpbnNlbnNpdGl2ZS1leHBlY3RlZC50eHQ6CisgICAgICAgICog
ZmFzdC9kb20vSFRNTEVsZW1lbnQvc2V0LXZhbHVlLWNhc2VpbnNlbnNpdGl2ZS5odG1sOgorCiAy
MDExLTAxLTI2ICBEYXZlIEh5YXR0ICA8aHlhdHRAYXBwbGUuY29tPgogCiAgICAgICAgIFJldmll
d2VkIGJ5IERhbiBCZXJuc3RlaW4uCkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2RvbS9IVE1MRWxl
bWVudC9zZXQtZmFsc2UtZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zh
c3QvZG9tL0hUTUxFbGVtZW50L3NldC1mYWxzZS1leHBlY3RlZC50eHQJKHJldmlzaW9uIDc2NTI4
KQorKysgTGF5b3V0VGVzdHMvZmFzdC9kb20vSFRNTEVsZW1lbnQvc2V0LWZhbHNlLWV4cGVjdGVk
LnR4dAkod29ya2luZyBjb3B5KQpAQCAtOSw4ICs5LDcgQEAgT24gc3VjY2VzcywgeW91IHdpbGwg
c2VlIGEgc2VyaWVzIG9mICJQQQogCiBQQVNTIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJkaXYx
IikuZ2V0QXR0cmlidXRlKCJjb250ZW50RWRpdGFibGUiKSBpcyAiZmFsc2UiCiBQQVNTIGRvY3Vt
ZW50LmdldEVsZW1lbnRCeUlkKCJkaXYxIikuY29udGVudEVkaXRhYmxlIGlzICJmYWxzZSIKLUZB
SUwgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImRpdjEiKS5pc0NvbnRlbnRFZGl0YWJsZSBzaG91
bGQgYmUgZmFsc2UuIFdhcyB0cnVlLgotRklYTUU6IHNldENvbnRlbnRFZGl0YWJsZSB3aXRoIHRy
dWUvZmFsc2UvaW5oZXJpdCBzdHJpbmcgaXMgbm90IHdvcmtpbmcgcHJvcGVybHkuIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD01MjA1OAorUEFTUyBkb2N1bWVudC5nZXRF
bGVtZW50QnlJZCgiZGl2MSIpLmlzQ29udGVudEVkaXRhYmxlIGlzIGZhbHNlCiBQQVNTIHdpbmRv
dy5nZXRDb21wdXRlZFN0eWxlKGRpdjEsICIiKS5nZXRQcm9wZXJ0eVZhbHVlKCItd2Via2l0LXVz
ZXItbW9kaWZ5IikgaXMgInJlYWQtb25seSIKIFBBU1MgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQo
InAyIikuY29udGVudEVkaXRhYmxlIGlzICJmYWxzZSIKIFBBU1MgZG9jdW1lbnQuZ2V0RWxlbWVu
dEJ5SWQoInAyIikuaXNDb250ZW50RWRpdGFibGUgaXMgZmFsc2UKSW5kZXg6IExheW91dFRlc3Rz
L2Zhc3QvZG9tL0hUTUxFbGVtZW50L3NldC1mYWxzZS5odG1sCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91
dFRlc3RzL2Zhc3QvZG9tL0hUTUxFbGVtZW50L3NldC1mYWxzZS5odG1sCShyZXZpc2lvbiA3NjUy
OCkKKysrIExheW91dFRlc3RzL2Zhc3QvZG9tL0hUTUxFbGVtZW50L3NldC1mYWxzZS5odG1sCSh3
b3JraW5nIGNvcHkpCkBAIC0yMSw3ICsyMSw2IEBAIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJw
MiIpLmNvbnRlbnRFZGkKIHNob3VsZEJlKCdkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiZGl2MSIp
LmdldEF0dHJpYnV0ZSgiY29udGVudEVkaXRhYmxlIiknLCciZmFsc2UiJyk7CiBzaG91bGRCZSgn
ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImRpdjEiKS5jb250ZW50RWRpdGFibGUnLCAnImZhbHNl
IicpOwogc2hvdWxkQmUoJ2RvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJkaXYxIikuaXNDb250ZW50
RWRpdGFibGUnLCAnZmFsc2UnKTsKLWRlYnVnKCJGSVhNRTogc2V0Q29udGVudEVkaXRhYmxlIHdp
dGggdHJ1ZS9mYWxzZS9pbmhlcml0IHN0cmluZyBpcyBub3Qgd29ya2luZyBwcm9wZXJseS4gaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTUyMDU4Iik7CiBzaG91bGRCZSgn
d2luZG93LmdldENvbXB1dGVkU3R5bGUoZGl2MSwgIiIpLmdldFByb3BlcnR5VmFsdWUoIi13ZWJr
aXQtdXNlci1tb2RpZnkiKScsICcicmVhZC1vbmx5IicpOwogCiBzaG91bGRCZSgnZG9jdW1lbnQu
Z2V0RWxlbWVudEJ5SWQoInAyIikuY29udGVudEVkaXRhYmxlJywgJyJmYWxzZSInKTsKSW5kZXg6
IExheW91dFRlc3RzL2Zhc3QvZG9tL0hUTUxFbGVtZW50L3NldC1pbmhlcml0LXBhcmVudC1mYWxz
ZS1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9kb20vSFRNTEVs
ZW1lbnQvc2V0LWluaGVyaXQtcGFyZW50LWZhbHNlLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gNzY1
MjgpCisrKyBMYXlvdXRUZXN0cy9mYXN0L2RvbS9IVE1MRWxlbWVudC9zZXQtaW5oZXJpdC1wYXJl
bnQtZmFsc2UtZXhwZWN0ZWQudHh0CSh3b3JraW5nIGNvcHkpCkBAIC04LDggKzgsNyBAQCBPbiBz
dWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBCiAKIFBBU1MgZG9jdW1lbnQuZ2V0
RWxlbWVudEJ5SWQoInAiKS5oYXNBdHRyaWJ1dGUoImNvbnRlbnRFZGl0YWJsZSIpIGlzIGZhbHNl
CiBQQVNTIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJwIikuY29udGVudEVkaXRhYmxlIGlzICJp
bmhlcml0IgotRkFJTCBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgicCIpLmlzQ29udGVudEVkaXRh
YmxlIHNob3VsZCBiZSBmYWxzZS4gV2FzIHRydWUuCi1GSVhNRTogc2V0Q29udGVudEVkaXRhYmxl
IHdpdGggdHJ1ZS9mYWxzZS9pbmhlcml0IHN0cmluZyBpcyBub3Qgd29ya2luZyBwcm9wZXJseS4g
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTUyMDU4CitQQVNTIGRvY3Vt
ZW50LmdldEVsZW1lbnRCeUlkKCJwIikuaXNDb250ZW50RWRpdGFibGUgaXMgZmFsc2UKIFBBU1Mg
d2luZG93LmdldENvbXB1dGVkU3R5bGUocCwgIiIpLmdldFByb3BlcnR5VmFsdWUoIi13ZWJraXQt
dXNlci1tb2RpZnkiKSBpcyAicmVhZC1vbmx5IgogCiBQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBp
cyB0cnVlCkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2RvbS9IVE1MRWxlbWVudC9zZXQtaW5oZXJp
dC1wYXJlbnQtZmFsc2UuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2RvbS9I
VE1MRWxlbWVudC9zZXQtaW5oZXJpdC1wYXJlbnQtZmFsc2UuaHRtbAkocmV2aXNpb24gNzY1Mjgp
CisrKyBMYXlvdXRUZXN0cy9mYXN0L2RvbS9IVE1MRWxlbWVudC9zZXQtaW5oZXJpdC1wYXJlbnQt
ZmFsc2UuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMTksNyArMTksNiBAQCBkb2N1bWVudC5nZXRF
bGVtZW50QnlJZCgicCIpLmNvbnRlbnRFZGl0CiBzaG91bGRCZSgnZG9jdW1lbnQuZ2V0RWxlbWVu
dEJ5SWQoInAiKS5oYXNBdHRyaWJ1dGUoImNvbnRlbnRFZGl0YWJsZSIpJywnZmFsc2UnKTsKIHNo
b3VsZEJlKCdkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgicCIpLmNvbnRlbnRFZGl0YWJsZScsICci
aW5oZXJpdCInKTsKIHNob3VsZEJlKCdkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgicCIpLmlzQ29u
dGVudEVkaXRhYmxlJywgJ2ZhbHNlJyk7Ci1kZWJ1ZygiRklYTUU6IHNldENvbnRlbnRFZGl0YWJs
ZSB3aXRoIHRydWUvZmFsc2UvaW5oZXJpdCBzdHJpbmcgaXMgbm90IHdvcmtpbmcgcHJvcGVybHku
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD01MjA1OCIpOwogc2hvdWxk
QmUoJ3dpbmRvdy5nZXRDb21wdXRlZFN0eWxlKHAsICIiKS5nZXRQcm9wZXJ0eVZhbHVlKCItd2Vi
a2l0LXVzZXItbW9kaWZ5IiknLCAnInJlYWQtb25seSInKTsKIAogZG9jdW1lbnQuZ2V0RWxlbWVu
dEJ5SWQoImRpdiIpLnN0eWxlLmRpc3BsYXk9ICdub25lJzsKSW5kZXg6IExheW91dFRlc3RzL2Zh
c3QvZG9tL0hUTUxFbGVtZW50L3NldC1pbmhlcml0LXBhcmVudC10cnVlLWV4cGVjdGVkLnR4dAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2RvbS9IVE1MRWxlbWVudC9zZXQtaW5oZXJp
dC1wYXJlbnQtdHJ1ZS1leHBlY3RlZC50eHQJKHJldmlzaW9uIDc2NTI4KQorKysgTGF5b3V0VGVz
dHMvZmFzdC9kb20vSFRNTEVsZW1lbnQvc2V0LWluaGVyaXQtcGFyZW50LXRydWUtZXhwZWN0ZWQu
dHh0CSh3b3JraW5nIGNvcHkpCkBAIC04LDggKzgsNyBAQCBPbiBzdWNjZXNzLCB5b3Ugd2lsbCBz
ZWUgYSBzZXJpZXMgb2YgIlBBCiAKIFBBU1MgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInAiKS5o
YXNBdHRyaWJ1dGUoImNvbnRlbnRFZGl0YWJsZSIpIGlzIGZhbHNlCiBQQVNTIGRvY3VtZW50Lmdl
dEVsZW1lbnRCeUlkKCJwIikuY29udGVudEVkaXRhYmxlIGlzICJpbmhlcml0IgotRkFJTCBkb2N1
bWVudC5nZXRFbGVtZW50QnlJZCgicCIpLmlzQ29udGVudEVkaXRhYmxlIHNob3VsZCBiZSB0cnVl
LiBXYXMgZmFsc2UuCi1GSVhNRTogc2V0Q29udGVudEVkaXRhYmxlIHdpdGggdHJ1ZS9mYWxzZS9p
bmhlcml0IHN0cmluZyBpcyBub3Qgd29ya2luZyBwcm9wZXJseS4gaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTUyMDU4CitQQVNTIGRvY3VtZW50LmdldEVsZW1lbnRCeUlk
KCJwIikuaXNDb250ZW50RWRpdGFibGUgaXMgdHJ1ZQogUEFTUyB3aW5kb3cuZ2V0Q29tcHV0ZWRT
dHlsZShwLCAiIikuZ2V0UHJvcGVydHlWYWx1ZSgiLXdlYmtpdC11c2VyLW1vZGlmeSIpIGlzICJy
ZWFkLXdyaXRlIgogCiBQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCkluZGV4OiBMYXlv
dXRUZXN0cy9mYXN0L2RvbS9IVE1MRWxlbWVudC9zZXQtaW5oZXJpdC1wYXJlbnQtdHJ1ZS5odG1s
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvZG9tL0hUTUxFbGVtZW50L3NldC1pbmhl
cml0LXBhcmVudC10cnVlLmh0bWwJKHJldmlzaW9uIDc2NTI4KQorKysgTGF5b3V0VGVzdHMvZmFz
dC9kb20vSFRNTEVsZW1lbnQvc2V0LWluaGVyaXQtcGFyZW50LXRydWUuaHRtbAkod29ya2luZyBj
b3B5KQpAQCAtMTksNyArMTksNiBAQCBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgicCIpLmNvbnRl
bnRFZGl0CiBzaG91bGRCZSgnZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInAiKS5oYXNBdHRyaWJ1
dGUoImNvbnRlbnRFZGl0YWJsZSIpJywnZmFsc2UnKTsKIHNob3VsZEJlKCdkb2N1bWVudC5nZXRF
bGVtZW50QnlJZCgicCIpLmNvbnRlbnRFZGl0YWJsZScsICciaW5oZXJpdCInKTsKIHNob3VsZEJl
KCdkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgicCIpLmlzQ29udGVudEVkaXRhYmxlJywgJ3RydWUn
KTsKLWRlYnVnKCJGSVhNRTogc2V0Q29udGVudEVkaXRhYmxlIHdpdGggdHJ1ZS9mYWxzZS9pbmhl
cml0IHN0cmluZyBpcyBub3Qgd29ya2luZyBwcm9wZXJseS4gaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTUyMDU4Iik7CiBzaG91bGRCZSgnd2luZG93LmdldENvbXB1dGVk
U3R5bGUocCwgIiIpLmdldFByb3BlcnR5VmFsdWUoIi13ZWJraXQtdXNlci1tb2RpZnkiKScsICci
cmVhZC13cml0ZSInKTsKIAogZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImRpdiIpLnN0eWxlLmRp
c3BsYXk9ICdub25lJzsKSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvZG9tL0hUTUxFbGVtZW50L3Nl
dC10cnVlLWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2RvbS9I
VE1MRWxlbWVudC9zZXQtdHJ1ZS1leHBlY3RlZC50eHQJKHJldmlzaW9uIDc2NTI4KQorKysgTGF5
b3V0VGVzdHMvZmFzdC9kb20vSFRNTEVsZW1lbnQvc2V0LXRydWUtZXhwZWN0ZWQudHh0CSh3b3Jr
aW5nIGNvcHkpCkBAIC05LDggKzksNyBAQCBPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJp
ZXMgb2YgIlBBCiAKIFBBU1MgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImRpdjEiKS5nZXRBdHRy
aWJ1dGUoImNvbnRlbnRFZGl0YWJsZSIpIGlzICJ0cnVlIgogUEFTUyBkb2N1bWVudC5nZXRFbGVt
ZW50QnlJZCgiZGl2MSIpLmNvbnRlbnRFZGl0YWJsZSBpcyAidHJ1ZSIKLUZBSUwgZG9jdW1lbnQu
Z2V0RWxlbWVudEJ5SWQoImRpdjEiKS5pc0NvbnRlbnRFZGl0YWJsZSBzaG91bGQgYmUgdHJ1ZS4g
V2FzIGZhbHNlLgotRklYTUU6IHNldENvbnRlbnRFZGl0YWJsZSB3aXRoIHRydWUvZmFsc2UvaW5o
ZXJpdCBzdHJpbmcgaXMgbm90IHdvcmtpbmcgcHJvcGVybHkuIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD01MjA1OAorUEFTUyBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgi
ZGl2MSIpLmlzQ29udGVudEVkaXRhYmxlIGlzIHRydWUKIFBBU1Mgd2luZG93LmdldENvbXB1dGVk
U3R5bGUoZGl2MSwgIiIpLmdldFByb3BlcnR5VmFsdWUoIi13ZWJraXQtdXNlci1tb2RpZnkiKSBp
cyAicmVhZC13cml0ZSIKIFBBU1MgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInAyIikuZ2V0QXR0
cmlidXRlKCJjb250ZW50RWRpdGFibGUiKSBpcyAidHJ1ZSIKIFBBU1MgZG9jdW1lbnQuZ2V0RWxl
bWVudEJ5SWQoInAyIikuY29udGVudEVkaXRhYmxlIGlzICJ0cnVlIgpJbmRleDogTGF5b3V0VGVz
dHMvZmFzdC9kb20vSFRNTEVsZW1lbnQvc2V0LXRydWUuaHRtbAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlv
dXRUZXN0cy9mYXN0L2RvbS9IVE1MRWxlbWVudC9zZXQtdHJ1ZS5odG1sCShyZXZpc2lvbiA3NjUy
OCkKKysrIExheW91dFRlc3RzL2Zhc3QvZG9tL0hUTUxFbGVtZW50L3NldC10cnVlLmh0bWwJKHdv
cmtpbmcgY29weSkKQEAgLTIxLDcgKzIxLDYgQEAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInAy
IikuY29udGVudEVkaQogc2hvdWxkQmUoJ2RvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJkaXYxIiku
Z2V0QXR0cmlidXRlKCJjb250ZW50RWRpdGFibGUiKScsJyJ0cnVlIicpOwogc2hvdWxkQmUoJ2Rv
Y3VtZW50LmdldEVsZW1lbnRCeUlkKCJkaXYxIikuY29udGVudEVkaXRhYmxlJywgJyJ0cnVlIicp
Owogc2hvdWxkQmUoJ2RvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJkaXYxIikuaXNDb250ZW50RWRp
dGFibGUnLCAndHJ1ZScpOwotZGVidWcoIkZJWE1FOiBzZXRDb250ZW50RWRpdGFibGUgd2l0aCB0
cnVlL2ZhbHNlL2luaGVyaXQgc3RyaW5nIGlzIG5vdCB3b3JraW5nIHByb3Blcmx5LiBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTIwNTgiKTsKIHNob3VsZEJlKCd3aW5k
b3cuZ2V0Q29tcHV0ZWRTdHlsZShkaXYxLCAiIikuZ2V0UHJvcGVydHlWYWx1ZSgiLXdlYmtpdC11
c2VyLW1vZGlmeSIpJywgJyJyZWFkLXdyaXRlIicpOwogCiBzaG91bGRCZSgnZG9jdW1lbnQuZ2V0
RWxlbWVudEJ5SWQoInAyIikuZ2V0QXR0cmlidXRlKCJjb250ZW50RWRpdGFibGUiKScsJyJ0cnVl
IicpOwpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9kb20vSFRNTEVsZW1lbnQvc2V0LXZhbHVlLWNh
c2VpbnNlbnNpdGl2ZS1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFz
dC9kb20vSFRNTEVsZW1lbnQvc2V0LXZhbHVlLWNhc2VpbnNlbnNpdGl2ZS1leHBlY3RlZC50eHQJ
KHJldmlzaW9uIDc2NTI4KQorKysgTGF5b3V0VGVzdHMvZmFzdC9kb20vSFRNTEVsZW1lbnQvc2V0
LXZhbHVlLWNhc2VpbnNlbnNpdGl2ZS1leHBlY3RlZC50eHQJKHdvcmtpbmcgY29weSkKQEAgLTEw
LDggKzEwLDcgQEAgT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQQogCiBQ
QVNTIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJkaXYxIikuZ2V0QXR0cmlidXRlKCJjb250ZW50
RWRpdGFibGUiKSBpcyAidHJ1ZSIKIFBBU1MgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImRpdjEi
KS5jb250ZW50RWRpdGFibGUgaXMgInRydWUiCi1GQUlMIGRvY3VtZW50LmdldEVsZW1lbnRCeUlk
KCJkaXYxIikuaXNDb250ZW50RWRpdGFibGUgc2hvdWxkIGJlIHRydWUuIFdhcyBmYWxzZS4KLUZJ
WE1FOiBpc0NvbnRlbnRFZGl0YWJsZSBpcyBub3Qgd29ya2luZyBwcm9wZXJseS4gUmVsYXRlZCB0
byBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTIwNTgKK1BBU1MgZG9j
dW1lbnQuZ2V0RWxlbWVudEJ5SWQoImRpdjEiKS5pc0NvbnRlbnRFZGl0YWJsZSBpcyB0cnVlCiBQ
QVNTIHdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKGRpdjEsICIiKS5nZXRQcm9wZXJ0eVZhbHVlKCIt
d2Via2l0LXVzZXItbW9kaWZ5IikgaXMgInJlYWQtd3JpdGUiCiBQQVNTIGRvY3VtZW50LmdldEVs
ZW1lbnRCeUlkKCJwMSIpLmdldEF0dHJpYnV0ZSgiY29udGVudEVkaXRhYmxlIikgaXMgImZhbHNl
IgogUEFTUyBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgicDEiKS5jb250ZW50RWRpdGFibGUgaXMg
ImZhbHNlIgpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9kb20vSFRNTEVsZW1lbnQvc2V0LXZhbHVl
LWNhc2VpbnNlbnNpdGl2ZS5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvZG9t
L0hUTUxFbGVtZW50L3NldC12YWx1ZS1jYXNlaW5zZW5zaXRpdmUuaHRtbAkocmV2aXNpb24gNzY1
MjgpCisrKyBMYXlvdXRUZXN0cy9mYXN0L2RvbS9IVE1MRWxlbWVudC9zZXQtdmFsdWUtY2FzZWlu
c2Vuc2l0aXZlLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTIzLDcgKzIzLDYgQEAgZG9jdW1lbnQu
Z2V0RWxlbWVudEJ5SWQoInAyIikuY29udGVudEVkaQogc2hvdWxkQmUoJ2RvY3VtZW50LmdldEVs
ZW1lbnRCeUlkKCJkaXYxIikuZ2V0QXR0cmlidXRlKCJjb250ZW50RWRpdGFibGUiKScsJyJ0cnVl
IicpOwogc2hvdWxkQmUoJ2RvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJkaXYxIikuY29udGVudEVk
aXRhYmxlJywgJyJ0cnVlIicpOwogc2hvdWxkQmUoJ2RvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJk
aXYxIikuaXNDb250ZW50RWRpdGFibGUnLCAndHJ1ZScpOwotZGVidWcoIkZJWE1FOiBpc0NvbnRl
bnRFZGl0YWJsZSBpcyBub3Qgd29ya2luZyBwcm9wZXJseS4gUmVsYXRlZCB0byBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTIwNTgiKTsKIHNob3VsZEJlKCd3aW5kb3cu
Z2V0Q29tcHV0ZWRTdHlsZShkaXYxLCAiIikuZ2V0UHJvcGVydHlWYWx1ZSgiLXdlYmtpdC11c2Vy
LW1vZGlmeSIpJywgJyJyZWFkLXdyaXRlIicpOwogCiBzaG91bGRCZSgnZG9jdW1lbnQuZ2V0RWxl
bWVudEJ5SWQoInAxIikuZ2V0QXR0cmlidXRlKCJjb250ZW50RWRpdGFibGUiKScsJyJmYWxzZSIn
KTsK
</data>
<flag name="review"
          id="71712"
          type_id="1"
          status="-"
          setter="darin"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>87145</attachid>
            <date>2011-03-28 08:11:46 -0700</date>
            <delta_ts>2011-04-04 13:11:46 -0700</delta_ts>
            <desc>fix patch 2</desc>
            <filename>52058_2.patch</filename>
            <type>text/plain</type>
            <size>16906</size>
            <attacher name="Chang Shu">cshu</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDgyMTE0KQorKysgU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMjcgQEAKKzIwMTEtMDMtMjggIENoYW5nIFNo
dSAgPGNzaHVAd2Via2l0Lm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICBzZXRDb250ZW50RWRpdGFibGUgd2l0aCB0cnVlL2ZhbHNlL2luaGVyaXQg
c3RyaW5nIGlzIG5vdCB3b3JraW5nIHByb3Blcmx5CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD01MjA1OAorCisgICAgICAgIE1vdmUgaXNDb250ZW50RWRp
dGFibGUgZnJvbSBIVE1MRWxlbWVudCB0byBOb2RlLiBUaHVzLCBOb2RlIHByb3ZpZGVzIHR3byBm
dW5jdGlvbnMgZm9yCisgICAgICAgIGNoZWNraW5nIGVkaXRhYmlsaXR5OiByZW5kZXJlcklzRWRp
dGFibGUgYW5kIGlzQ29udGVudEVkaWFibGUuIFRoZSBmb3JtZXIgaXMgYSBmYXN0IHBhdGgsCisg
ICAgICAgIHdoaWNoIGNoZWNrcyB0aGUgcmVuZGVyIHN0eWxlIG9mIHVzZXJtb2RpZnkuIFRoZSBs
YXR0ZXIgdXBkYXRlcyB0aGUgbGF5b3V0IGZpcnN0IHRvIG1ha2UKKyAgICAgICAgc3VyZSB0aGUg
cmVuZGVyIHN0eWxlIHN5bmNzIHdpdGggRE9NIGNvbnRlbnRlZGl0YWJsZSBhdHRyaWJ1dGUuIFRo
ZSBjYWxsIHNpdGVzIHRoYXQgbmVlZCB0bworICAgICAgICBjYWxsIGlzQ29udGVudEVkaXRhYmxl
IHJhdGhlciB0aGFuIHJlbmRlcmVySXNFZGl0YWJsZSBhcmUgYWxzbyB1cGRhdGVkIGluIHRoZSBw
YXRjaC4KKworICAgICAgICBUaGlzIHBhdGNoIGZpeGVzIGFsbCB0aGUgZmFpbGVkIGxheW91dCB0
ZXN0cyByZWxhdGVkIHRvIHNldCBjb250ZW50ZWRpdGFibGUuCisKKyAgICAgICAgKiBhY2Nlc3Np
YmlsaXR5L0FjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
QWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdDo6aXNSZWFkT25seSk6CisgICAgICAgICogZG9tL05v
ZGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Tm9kZTo6aXNDb250ZW50RWRpdGFibGUpOgorICAg
ICAgICAoV2ViQ29yZTo6Tm9kZTo6c2hvdWxkVXNlSW5wdXRNZXRob2QpOgorICAgICAgICAqIGRv
bS9Ob2RlLmg6CisgICAgICAgICogaHRtbC9IVE1MRWxlbWVudC5jcHA6CisgICAgICAgICogaHRt
bC9IVE1MRWxlbWVudC5oOgorCiAyMDExLTAzLTI4ICBQYXZlbCBGZWxkbWFuICA8cGZlbGRtYW5A
Y2hyb21pdW0ub3JnPgogCiAgICAgICAgIFJldmlld2VkIGJ5IFl1cnkgU2VtaWtoYXRza3kuCklu
ZGV4OiBTb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlSZW5kZXJPYmpl
Y3QuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNz
aWJpbGl0eVJlbmRlck9iamVjdC5jcHAJKHJldmlzaW9uIDgxOTY2KQorKysgU291cmNlL1dlYkNv
cmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0LmNwcAkod29ya2luZyBj
b3B5KQpAQCAtNjYxLDcgKzY2MSw3IEBAIGJvb2wgQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdDo6
aXNSZWFkT24KICAgICAgICAgICAgIHJldHVybiB0cnVlOwogICAgICAgICAKICAgICAgICAgSFRN
TEVsZW1lbnQqIGJvZHkgPSBkb2N1bWVudC0+Ym9keSgpOwotICAgICAgICBpZiAoYm9keSAmJiBi
b2R5LT5yZW5kZXJlcklzRWRpdGFibGUoKSkKKyAgICAgICAgaWYgKGJvZHkgJiYgYm9keS0+aXND
b250ZW50RWRpdGFibGUoKSkKICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKIAogICAgICAgICBy
ZXR1cm4gIWRvY3VtZW50LT5yZW5kZXJlcklzRWRpdGFibGUoKTsKSW5kZXg6IFNvdXJjZS9XZWJD
b3JlL2RvbS9Ob2RlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9kb20vTm9kZS5j
cHAJKHJldmlzaW9uIDgxOTY2KQorKysgU291cmNlL1dlYkNvcmUvZG9tL05vZGUuY3BwCSh3b3Jr
aW5nIGNvcHkpCkBAIC03MTEsNiArNzExLDEyIEBAIHZvaWQgTm9kZTo6ZGVwcmVjYXRlZFBhcnNl
ckFkZENoaWxkKFBhc3MKIHsKIH0KIAorYm9vbCBOb2RlOjppc0NvbnRlbnRFZGl0YWJsZSgpIGNv
bnN0Cit7CisgICAgZG9jdW1lbnQoKS0+dXBkYXRlTGF5b3V0SWdub3JlUGVuZGluZ1N0eWxlc2hl
ZXRzKCk7CisgICAgcmV0dXJuIHJlbmRlcmVySXNFZGl0YWJsZShFZGl0YWJsZSk7Cit9CisKIGJv
b2wgTm9kZTo6cmVuZGVyZXJJc0VkaXRhYmxlKEVkaXRhYmxlTGV2ZWwgZWRpdGFibGVMZXZlbCkg
Y29uc3QKIHsKICAgICBpZiAoZG9jdW1lbnQoKS0+aW5EZXNpZ25Nb2RlKCkgfHwgKGRvY3VtZW50
KCktPmZyYW1lKCkgJiYgZG9jdW1lbnQoKS0+ZnJhbWUoKS0+cGFnZSgpICYmIGRvY3VtZW50KCkt
PmZyYW1lKCktPnBhZ2UoKS0+aXNFZGl0YWJsZSgpKSkKQEAgLTc0MCw3ICs3NDYsNyBAQCBib29s
IE5vZGU6OnJlbmRlcmVySXNFZGl0YWJsZShFZGl0YWJsZUxlCiAKIGJvb2wgTm9kZTo6c2hvdWxk
VXNlSW5wdXRNZXRob2QoKSBjb25zdAogewotICAgIHJldHVybiByZW5kZXJlcklzRWRpdGFibGUo
KTsKKyAgICByZXR1cm4gaXNDb250ZW50RWRpdGFibGUoKTsKIH0KIAogUmVuZGVyQm94KiBOb2Rl
OjpyZW5kZXJCb3goKSBjb25zdApJbmRleDogU291cmNlL1dlYkNvcmUvZG9tL05vZGUuaAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9kb20vTm9kZS5oCShyZXZpc2lvbiA4MTk2NikKKysr
IFNvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlLmgJKHdvcmtpbmcgY29weSkKQEAgLTMxOSwxMCArMzE5
LDggQEAgcHVibGljOgogICAgIHZpcnR1YWwgYm9vbCBpc0tleWJvYXJkRm9jdXNhYmxlKEtleWJv
YXJkRXZlbnQqKSBjb25zdDsKICAgICB2aXJ0dWFsIGJvb2wgaXNNb3VzZUZvY3VzYWJsZSgpIGNv
bnN0OwogCi0jaWYgUExBVEZPUk0oTUFDKQotICAgIC8vIE9iamVjdGl2ZS1DIGV4dGVuc2lvbnMK
LSAgICBib29sIGlzQ29udGVudEVkaXRhYmxlKCkgY29uc3QgeyByZXR1cm4gcmVuZGVyZXJJc0Vk
aXRhYmxlKEVkaXRhYmxlKTsgfQotI2VuZGlmCisgICAgYm9vbCBpc0NvbnRlbnRFZGl0YWJsZSgp
IGNvbnN0OworCiAgICAgYm9vbCByZW5kZXJlcklzRWRpdGFibGUoKSBjb25zdCB7IHJldHVybiBy
ZW5kZXJlcklzRWRpdGFibGUoRWRpdGFibGUpOyB9CiAgICAgYm9vbCByZW5kZXJlcklzUmljaGx5
RWRpdGFibGUoKSBjb25zdCB7IHJldHVybiByZW5kZXJlcklzRWRpdGFibGUoUmljaGx5RWRpdGFi
bGUpOyB9CiAgICAgdmlydHVhbCBib29sIHNob3VsZFVzZUlucHV0TWV0aG9kKCkgY29uc3Q7Cklu
ZGV4OiBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxFbGVtZW50LmNwcAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV2ViQ29yZS9odG1sL0hUTUxFbGVtZW50LmNwcAkocmV2aXNpb24gODE5NjYpCisrKyBT
b3VyY2UvV2ViQ29yZS9odG1sL0hUTUxFbGVtZW50LmNwcAkod29ya2luZyBjb3B5KQpAQCAtNjU3
LDExICs2NTcsNiBAQCBib29sIEhUTUxFbGVtZW50OjpzdXBwb3J0c0ZvY3VzKCkgY29uc3QKICAg
ICByZXR1cm4gRWxlbWVudDo6c3VwcG9ydHNGb2N1cygpIHx8IChyZW5kZXJlcklzRWRpdGFibGUo
KSAmJiBwYXJlbnROb2RlKCkgJiYgIXBhcmVudE5vZGUoKS0+cmVuZGVyZXJJc0VkaXRhYmxlKCkp
OwogfQogCi1ib29sIEhUTUxFbGVtZW50Ojppc0NvbnRlbnRFZGl0YWJsZSgpIGNvbnN0Ci17Ci0g
ICAgcmV0dXJuIHJlbmRlcmVySXNFZGl0YWJsZSgpOwotfQotCiBTdHJpbmcgSFRNTEVsZW1lbnQ6
OmNvbnRlbnRFZGl0YWJsZSgpIGNvbnN0CiB7CiAgICAgY29uc3QgQXRvbWljU3RyaW5nJiB2YWx1
ZSA9IGZhc3RHZXRBdHRyaWJ1dGUoY29udGVudGVkaXRhYmxlQXR0cik7CkluZGV4OiBTb3VyY2Uv
V2ViQ29yZS9odG1sL0hUTUxFbGVtZW50LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUv
aHRtbC9IVE1MRWxlbWVudC5oCShyZXZpc2lvbiA4MTk2NikKKysrIFNvdXJjZS9XZWJDb3JlL2h0
bWwvSFRNTEVsZW1lbnQuaAkod29ya2luZyBjb3B5KQpAQCAtNTcsOCArNTcsNiBAQCBwdWJsaWM6
CiAKICAgICB2aXJ0dWFsIGJvb2wgc3VwcG9ydHNGb2N1cygpIGNvbnN0OwogCi0gICAgYm9vbCBp
c0NvbnRlbnRFZGl0YWJsZSgpIGNvbnN0OwotCiAgICAgU3RyaW5nIGNvbnRlbnRFZGl0YWJsZSgp
IGNvbnN0OwogICAgIHZvaWQgc2V0Q29udGVudEVkaXRhYmxlKGNvbnN0IFN0cmluZyYsIEV4Y2Vw
dGlvbkNvZGUmKTsKIApJbmRleDogU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cJKHJldmlzaW9uIDgy
MTE0KQorKysgU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkK
QEAgLTEsMyArMSwyMCBAQAorMjAxMS0wMy0yOCAgQ2hhbmcgU2h1ICA8Y3NodUB3ZWJraXQub3Jn
PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIHNldENv
bnRlbnRFZGl0YWJsZSB3aXRoIHRydWUvZmFsc2UvaW5oZXJpdCBzdHJpbmcgaXMgbm90IHdvcmtp
bmcgcHJvcGVybHkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTUyMDU4CisKKyAgICAgICAgTW92ZSBpc0NvbnRlbnRFZGl0YWJsZSBmcm9tIEhUTUxFbGVt
ZW50IHRvIE5vZGUuIFdlYktpdCBzaG91bGQgb25seSBhY2Nlc3MgaXNDb250ZW50RWRpdGFibGUK
KyAgICAgICAgYXMgcmVuZGVyZXJJc0VkaXRhYmxlIGlzIGZvciBXZWJDb3JlIGludGVybmFsIHVz
ZS4KKworICAgICAgICAqIHNyYy9XZWJOb2RlLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViTm9k
ZTo6aXNDb250ZW50RWRpdGFibGUpOgorICAgICAgICAqIHNyYy9XZWJWaWV3SW1wbC5jcHA6Cisg
ICAgICAgIChXZWJLaXQ6OldlYlZpZXdJbXBsOjpzZXRGb2N1cyk6CisgICAgICAgIChXZWJLaXQ6
OldlYlZpZXdJbXBsOjpzZXRDb21wb3NpdGlvbik6CisgICAgICAgIChXZWJLaXQ6OldlYlZpZXdJ
bXBsOjpjb25maXJtQ29tcG9zaXRpb24pOgorCiAyMDExLTAzLTI1ICBBbmR5IEVzdGVzICA8YWVz
dGVzQGFwcGxlLmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBieSBBZGVsZSBQZXRlcnNvbi4KSW5k
ZXg6IFNvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYk5vZGUuY3BwCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYk5vZGUuY3BwCShyZXZpc2lvbiA4MTk2NikK
KysrIFNvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYk5vZGUuY3BwCSh3b3JraW5nIGNvcHkp
CkBAIC0xNTIsNyArMTUyLDcgQEAgYm9vbCBXZWJOb2RlOjppc0ZvY3VzYWJsZSgpIGNvbnN0CiAK
IGJvb2wgV2ViTm9kZTo6aXNDb250ZW50RWRpdGFibGUoKSBjb25zdAogewotICAgIHJldHVybiBt
X3ByaXZhdGUtPnJlbmRlcmVySXNFZGl0YWJsZSgpOworICAgIHJldHVybiBtX3ByaXZhdGUtPmlz
Q29udGVudEVkaXRhYmxlKCk7CiB9CiAKIGJvb2wgV2ViTm9kZTo6aXNFbGVtZW50Tm9kZSgpIGNv
bnN0CkluZGV4OiBTb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJWaWV3SW1wbC5jcHAKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViVmlld0ltcGwuY3BwCShy
ZXZpc2lvbiA4MTk2NikKKysrIFNvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlZpZXdJbXBs
LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTI1Niw3ICsxMjU2LDcgQEAgdm9pZCBXZWJWaWV3SW1w
bDo6c2V0Rm9jdXMoYm9vbCBlbmFibGUpCiAgICAgICAgICAgICAgICAgRWxlbWVudCogZWxlbWVu
dCA9IHN0YXRpY19jYXN0PEVsZW1lbnQqPihmb2N1c2VkTm9kZSk7CiAgICAgICAgICAgICAgICAg
aWYgKGVsZW1lbnQtPmlzVGV4dEZvcm1Db250cm9sKCkpCiAgICAgICAgICAgICAgICAgICAgIGVs
ZW1lbnQtPnVwZGF0ZUZvY3VzQXBwZWFyYW5jZSh0cnVlKTsKLSAgICAgICAgICAgICAgICBlbHNl
IGlmIChmb2N1c2VkTm9kZS0+cmVuZGVyZXJJc0VkaXRhYmxlKCkpIHsKKyAgICAgICAgICAgICAg
ICBlbHNlIGlmIChmb2N1c2VkTm9kZS0+aXNDb250ZW50RWRpdGFibGUoKSkgewogICAgICAgICAg
ICAgICAgICAgICAvLyB1cGRhdGVGb2N1c0FwcGVhcmFuY2UoKSBzZWxlY3RzIGFsbCB0aGUgdGV4
dCBvZgogICAgICAgICAgICAgICAgICAgICAvLyBjb250ZW50c2VkaXRhYmxlIERJVnMuIFNvIHdl
IHNldCB0aGUgc2VsZWN0aW9uIGV4cGxpY2l0bHkKICAgICAgICAgICAgICAgICAgICAgLy8gaW5z
dGVhZC4gTm90ZSB0aGF0IHRoaXMgaGFzIHRoZSBzaWRlIGVmZmVjdCBvZiBtb3ZpbmcgdGhlCkBA
IC0xMzE4LDcgKzEzMTgsNyBAQCBib29sIFdlYlZpZXdJbXBsOjpzZXRDb21wb3NpdGlvbigKICAg
ICBQYXNzUmVmUHRyPFJhbmdlPiByYW5nZSA9IGVkaXRvci0+Y29tcG9zaXRpb25SYW5nZSgpOwog
ICAgIGlmIChyYW5nZSkgewogICAgICAgICBjb25zdCBOb2RlKiBub2RlID0gcmFuZ2UtPnN0YXJ0
Q29udGFpbmVyKCk7Ci0gICAgICAgIGlmICghbm9kZSB8fCAhbm9kZS0+cmVuZGVyZXJJc0VkaXRh
YmxlKCkpCisgICAgICAgIGlmICghbm9kZSB8fCAhbm9kZS0+aXNDb250ZW50RWRpdGFibGUoKSkK
ICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICB9CiAKQEAgLTEzNjcsNyArMTM2Nyw3IEBA
IGJvb2wgV2ViVmlld0ltcGw6OmNvbmZpcm1Db21wb3NpdGlvbihjb24KICAgICBQYXNzUmVmUHRy
PFJhbmdlPiByYW5nZSA9IGVkaXRvci0+Y29tcG9zaXRpb25SYW5nZSgpOwogICAgIGlmIChyYW5n
ZSkgewogICAgICAgICBjb25zdCBOb2RlKiBub2RlID0gcmFuZ2UtPnN0YXJ0Q29udGFpbmVyKCk7
Ci0gICAgICAgIGlmICghbm9kZSB8fCAhbm9kZS0+cmVuZGVyZXJJc0VkaXRhYmxlKCkpCisgICAg
ICAgIGlmICghbm9kZSB8fCAhbm9kZS0+aXNDb250ZW50RWRpdGFibGUoKSkKICAgICAgICAgICAg
IHJldHVybiBmYWxzZTsKICAgICB9CiAKSW5kZXg6IFNvdXJjZS9XZWJLaXQvaGFpa3UvQ2hhbmdl
TG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvaGFpa3UvQ2hhbmdlTG9nCShyZXZpc2lv
biA4MjExNCkKKysrIFNvdXJjZS9XZWJLaXQvaGFpa3UvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkp
CkBAIC0xLDMgKzEsMTYgQEAKKzIwMTEtMDMtMjggIENoYW5nIFNodSAgPGNzaHVAd2Via2l0Lm9y
Zz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBzZXRD
b250ZW50RWRpdGFibGUgd2l0aCB0cnVlL2ZhbHNlL2luaGVyaXQgc3RyaW5nIGlzIG5vdCB3b3Jr
aW5nIHByb3Blcmx5CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD01MjA1OAorCisgICAgICAgIE1vdmUgaXNDb250ZW50RWRpdGFibGUgZnJvbSBIVE1MRWxl
bWVudCB0byBOb2RlLiBXZWJLaXQgc2hvdWxkIG9ubHkgYWNjZXNzIGlzQ29udGVudEVkaXRhYmxl
CisgICAgICAgIGFzIHJlbmRlcmVySXNFZGl0YWJsZSBpcyBmb3IgV2ViQ29yZSBpbnRlcm5hbCB1
c2UuCisKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9FZGl0b3JDbGllbnRIYWlrdS5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpFZGl0b3JDbGllbnRIYWlrdTo6aGFuZGxlS2V5Ym9hcmRFdmVudCk6
CisKIDIwMTEtMDMtMjUgIEFuZHkgRXN0ZXMgIDxhZXN0ZXNAYXBwbGUuY29tPgogCiAgICAgICAg
IFJldmlld2VkIGJ5IEFkZWxlIFBldGVyc29uLgpJbmRleDogU291cmNlL1dlYktpdC9oYWlrdS9X
ZWJDb3JlU3VwcG9ydC9FZGl0b3JDbGllbnRIYWlrdS5jcHAKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYktpdC9oYWlrdS9XZWJDb3JlU3VwcG9ydC9FZGl0b3JDbGllbnRIYWlrdS5jcHAJKHJldmlz
aW9uIDgxOTY2KQorKysgU291cmNlL1dlYktpdC9oYWlrdS9XZWJDb3JlU3VwcG9ydC9FZGl0b3JD
bGllbnRIYWlrdS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI1NCw3ICsyNTQsNyBAQCB2b2lkIEVk
aXRvckNsaWVudEhhaWt1OjpoYW5kbGVLZXlib2FyZEV2CiAgICAgaWYgKCFzdGFydCkKICAgICAg
ICAgcmV0dXJuOwogCi0gICAgaWYgKHN0YXJ0LT5yZW5kZXJlcklzRWRpdGFibGUoKSkgeworICAg
IGlmIChzdGFydC0+aXNDb250ZW50RWRpdGFibGUoKSkgewogICAgICAgICBzd2l0Y2ggKGtldmVu
dC0+d2luZG93c1ZpcnR1YWxLZXlDb2RlKCkpIHsKICAgICAgICAgY2FzZSBWS19CQUNLOgogICAg
ICAgICAgICAgZnJhbWUtPmVkaXRvcigpLT5kZWxldGVXaXRoRGlyZWN0aW9uKERpcmVjdGlvbkJh
Y2t3YXJkLApJbmRleDogU291cmNlL1dlYktpdC9xdC9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL1dlYktpdC9xdC9DaGFuZ2VMb2cJKHJldmlzaW9uIDgyMTE0KQorKysgU291cmNlL1dl
YktpdC9xdC9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwxNiBAQAorMjAxMS0w
My0yOCAgQ2hhbmcgU2h1ICA8Y3NodUB3ZWJraXQub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIHNldENvbnRlbnRFZGl0YWJsZSB3aXRoIHRydWUv
ZmFsc2UvaW5oZXJpdCBzdHJpbmcgaXMgbm90IHdvcmtpbmcgcHJvcGVybHkKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTUyMDU4CisKKyAgICAgICAgTW92
ZSBpc0NvbnRlbnRFZGl0YWJsZSBmcm9tIEhUTUxFbGVtZW50IHRvIE5vZGUuIFdlYktpdCBzaG91
bGQgb25seSBhY2Nlc3MgaXNDb250ZW50RWRpdGFibGUKKyAgICAgICAgYXMgcmVuZGVyZXJJc0Vk
aXRhYmxlIGlzIGZvciBXZWJDb3JlIGludGVybmFsIHVzZS4KKworICAgICAgICAqIFdlYkNvcmVT
dXBwb3J0L0VkaXRvckNsaWVudFF0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkVkaXRvckNsaWVu
dFF0OjpoYW5kbGVLZXlib2FyZEV2ZW50KToKKwogMjAxMS0wMy0yOCAgQ3NhYmEgT3N6dHJvZ29u
w6FjICA8b3NzeUB3ZWJraXQub3JnPgogCiAgICAgICAgIFJldmlld2VkIGJ5IEFuZHJlYXMgS2xp
bmcuCkluZGV4OiBTb3VyY2UvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L0VkaXRvckNsaWVudFF0
LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L0VkaXRv
ckNsaWVudFF0LmNwcAkocmV2aXNpb24gODE5NjYpCisrKyBTb3VyY2UvV2ViS2l0L3F0L1dlYkNv
cmVTdXBwb3J0L0VkaXRvckNsaWVudFF0LmNwcAkod29ya2luZyBjb3B5KQpAQCAtNDIwLDcgKzQy
MCw3IEBAIHZvaWQgRWRpdG9yQ2xpZW50UXQ6OmhhbmRsZUtleWJvYXJkRXZlbnQKICAgICAgICAg
cmV0dXJuOwogCiAgICAgLy8gRklYTUU6IHJlZmFjdG9yIGFsbCBvZiB0aGlzIHRvIHVzZSBBY3Rp
b25zIG9yIHNvbWV0aGluZyBsaWtlIHRoZW0KLSAgICBpZiAoc3RhcnQtPnJlbmRlcmVySXNFZGl0
YWJsZSgpKSB7CisgICAgaWYgKHN0YXJ0LT5pc0NvbnRlbnRFZGl0YWJsZSgpKSB7CiAgICAgICAg
IGJvb2wgZG9TcGF0aWFsTmF2aWdhdGlvbiA9IGZhbHNlOwogICAgICAgICBpZiAoaXNTcGF0aWFs
TmF2aWdhdGlvbkVuYWJsZWQoZnJhbWUpKSB7CiAgICAgICAgICAgICBpZiAoIWtldmVudC0+bW9k
aWZpZXJzKCkpIHsKSW5kZXg6IExheW91dFRlc3RzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBM
YXlvdXRUZXN0cy9DaGFuZ2VMb2cJKHJldmlzaW9uIDgyMTE0KQorKysgTGF5b3V0VGVzdHMvQ2hh
bmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTkgQEAKKzIwMTEtMDMtMjggIENoYW5n
IFNodSAgPGNzaHVAd2Via2l0Lm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICBzZXRDb250ZW50RWRpdGFibGUgd2l0aCB0cnVlL2ZhbHNlL2luaGVy
aXQgc3RyaW5nIGlzIG5vdCB3b3JraW5nIHByb3Blcmx5CisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD01MjA1OAorCisgICAgICAgIFVwZGF0ZWQgZXhwZWN0
ZWQgcmVzdWx0cyBhZnRlciB0aGlzIHBhdGNoIGZpeGVzIHRoZSBzZXQgY29udGVudGVkaXRhYmxl
IGlzc3VlLgorCisgICAgICAgICogZmFzdC9kb20vSFRNTEVsZW1lbnQvc2V0LWZhbHNlLWV4cGVj
dGVkLnR4dDoKKyAgICAgICAgKiBmYXN0L2RvbS9IVE1MRWxlbWVudC9zZXQtZmFsc2UuaHRtbDoK
KyAgICAgICAgKiBmYXN0L2RvbS9IVE1MRWxlbWVudC9zZXQtaW5oZXJpdC1wYXJlbnQtZmFsc2Ut
ZXhwZWN0ZWQudHh0OgorICAgICAgICAqIGZhc3QvZG9tL0hUTUxFbGVtZW50L3NldC1pbmhlcml0
LXBhcmVudC10cnVlLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBmYXN0L2RvbS9IVE1MRWxlbWVu
dC9zZXQtdHJ1ZS1leHBlY3RlZC50eHQ6CisgICAgICAgICogZmFzdC9kb20vSFRNTEVsZW1lbnQv
c2V0LXZhbHVlLWNhc2VpbnNlbnNpdGl2ZS1leHBlY3RlZC50eHQ6CisKIDIwMTEtMDMtMjggIFJ5
b3N1a2UgTml3YSAgPHJuaXdhQHdlYmtpdC5vcmc+CiAKICAgICAgICAgW0dUS10gVXBkYXRlIHRl
eHQgZXhwZWN0YXRpb25zIGFmdGVyIHI4MjEwNS4KSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvZG9t
L0hUTUxFbGVtZW50L3NldC1mYWxzZS1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0
VGVzdHMvZmFzdC9kb20vSFRNTEVsZW1lbnQvc2V0LWZhbHNlLWV4cGVjdGVkLnR4dAkocmV2aXNp
b24gODE5NjYpCisrKyBMYXlvdXRUZXN0cy9mYXN0L2RvbS9IVE1MRWxlbWVudC9zZXQtZmFsc2Ut
ZXhwZWN0ZWQudHh0CSh3b3JraW5nIGNvcHkpCkBAIC05LDggKzksNyBAQCBPbiBzdWNjZXNzLCB5
b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBCiAKIFBBU1MgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5
SWQoImRpdjEiKS5nZXRBdHRyaWJ1dGUoImNvbnRlbnRFZGl0YWJsZSIpIGlzICJmYWxzZSIKIFBB
U1MgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImRpdjEiKS5jb250ZW50RWRpdGFibGUgaXMgImZh
bHNlIgotRkFJTCBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiZGl2MSIpLmlzQ29udGVudEVkaXRh
YmxlIHNob3VsZCBiZSBmYWxzZS4gV2FzIHRydWUuCi1GSVhNRTogc2V0Q29udGVudEVkaXRhYmxl
IHdpdGggdHJ1ZS9mYWxzZS9pbmhlcml0IHN0cmluZyBpcyBub3Qgd29ya2luZyBwcm9wZXJseS4g
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTUyMDU4CitQQVNTIGRvY3Vt
ZW50LmdldEVsZW1lbnRCeUlkKCJkaXYxIikuaXNDb250ZW50RWRpdGFibGUgaXMgZmFsc2UKIFBB
U1Mgd2luZG93LmdldENvbXB1dGVkU3R5bGUoZGl2MSwgIiIpLmdldFByb3BlcnR5VmFsdWUoIi13
ZWJraXQtdXNlci1tb2RpZnkiKSBpcyAicmVhZC1vbmx5IgogUEFTUyBkb2N1bWVudC5nZXRFbGVt
ZW50QnlJZCgicDIiKS5jb250ZW50RWRpdGFibGUgaXMgImZhbHNlIgogUEFTUyBkb2N1bWVudC5n
ZXRFbGVtZW50QnlJZCgicDIiKS5pc0NvbnRlbnRFZGl0YWJsZSBpcyBmYWxzZQpJbmRleDogTGF5
b3V0VGVzdHMvZmFzdC9kb20vSFRNTEVsZW1lbnQvc2V0LWZhbHNlLmh0bWwKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gTGF5b3V0VGVzdHMvZmFzdC9kb20vSFRNTEVsZW1lbnQvc2V0LWZhbHNlLmh0bWwJKHJldmlz
aW9uIDgxOTY2KQorKysgTGF5b3V0VGVzdHMvZmFzdC9kb20vSFRNTEVsZW1lbnQvc2V0LWZhbHNl
Lmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTIxLDcgKzIxLDYgQEAgZG9jdW1lbnQuZ2V0RWxlbWVu
dEJ5SWQoInAyIikuY29udGVudEVkaQogc2hvdWxkQmUoJ2RvY3VtZW50LmdldEVsZW1lbnRCeUlk
KCJkaXYxIikuZ2V0QXR0cmlidXRlKCJjb250ZW50RWRpdGFibGUiKScsJyJmYWxzZSInKTsKIHNo
b3VsZEJlKCdkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiZGl2MSIpLmNvbnRlbnRFZGl0YWJsZScs
ICciZmFsc2UiJyk7CiBzaG91bGRCZSgnZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImRpdjEiKS5p
c0NvbnRlbnRFZGl0YWJsZScsICdmYWxzZScpOwotZGVidWcoIkZJWE1FOiBzZXRDb250ZW50RWRp
dGFibGUgd2l0aCB0cnVlL2ZhbHNlL2luaGVyaXQgc3RyaW5nIGlzIG5vdCB3b3JraW5nIHByb3Bl
cmx5LiBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTIwNTgiKTsKIHNo
b3VsZEJlKCd3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZShkaXYxLCAiIikuZ2V0UHJvcGVydHlWYWx1
ZSgiLXdlYmtpdC11c2VyLW1vZGlmeSIpJywgJyJyZWFkLW9ubHkiJyk7CiAKIHNob3VsZEJlKCdk
b2N1bWVudC5nZXRFbGVtZW50QnlJZCgicDIiKS5jb250ZW50RWRpdGFibGUnLCAnImZhbHNlIicp
OwpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9kb20vSFRNTEVsZW1lbnQvc2V0LWluaGVyaXQtcGFy
ZW50LWZhbHNlLWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2Rv
bS9IVE1MRWxlbWVudC9zZXQtaW5oZXJpdC1wYXJlbnQtZmFsc2UtZXhwZWN0ZWQudHh0CShyZXZp
c2lvbiA4MTk2NikKKysrIExheW91dFRlc3RzL2Zhc3QvZG9tL0hUTUxFbGVtZW50L3NldC1pbmhl
cml0LXBhcmVudC1mYWxzZS1leHBlY3RlZC50eHQJKHdvcmtpbmcgY29weSkKQEAgLTgsNyArOCw3
IEBAIE9uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEEKIAogUEFTUyBkb2N1
bWVudC5nZXRFbGVtZW50QnlJZCgicCIpLmhhc0F0dHJpYnV0ZSgiY29udGVudEVkaXRhYmxlIikg
aXMgZmFsc2UKIFBBU1MgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInAiKS5jb250ZW50RWRpdGFi
bGUgaXMgImluaGVyaXQiCi1GQUlMIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJwIikuaXNDb250
ZW50RWRpdGFibGUgc2hvdWxkIGJlIGZhbHNlLiBXYXMgdHJ1ZS4KK1BBU1MgZG9jdW1lbnQuZ2V0
RWxlbWVudEJ5SWQoInAiKS5pc0NvbnRlbnRFZGl0YWJsZSBpcyBmYWxzZQogRklYTUU6IHNldENv
bnRlbnRFZGl0YWJsZSB3aXRoIHRydWUvZmFsc2UvaW5oZXJpdCBzdHJpbmcgaXMgbm90IHdvcmtp
bmcgcHJvcGVybHkuIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD01MjA1
OAogUEFTUyB3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZShwLCAiIikuZ2V0UHJvcGVydHlWYWx1ZSgi
LXdlYmtpdC11c2VyLW1vZGlmeSIpIGlzICJyZWFkLW9ubHkiCiAKSW5kZXg6IExheW91dFRlc3Rz
L2Zhc3QvZG9tL0hUTUxFbGVtZW50L3NldC1pbmhlcml0LXBhcmVudC10cnVlLWV4cGVjdGVkLnR4
dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2RvbS9IVE1MRWxlbWVudC9zZXQtaW5o
ZXJpdC1wYXJlbnQtdHJ1ZS1leHBlY3RlZC50eHQJKHJldmlzaW9uIDgxOTY2KQorKysgTGF5b3V0
VGVzdHMvZmFzdC9kb20vSFRNTEVsZW1lbnQvc2V0LWluaGVyaXQtcGFyZW50LXRydWUtZXhwZWN0
ZWQudHh0CSh3b3JraW5nIGNvcHkpCkBAIC04LDcgKzgsNyBAQCBPbiBzdWNjZXNzLCB5b3Ugd2ls
bCBzZWUgYSBzZXJpZXMgb2YgIlBBCiAKIFBBU1MgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInAi
KS5oYXNBdHRyaWJ1dGUoImNvbnRlbnRFZGl0YWJsZSIpIGlzIGZhbHNlCiBQQVNTIGRvY3VtZW50
LmdldEVsZW1lbnRCeUlkKCJwIikuY29udGVudEVkaXRhYmxlIGlzICJpbmhlcml0IgotRkFJTCBk
b2N1bWVudC5nZXRFbGVtZW50QnlJZCgicCIpLmlzQ29udGVudEVkaXRhYmxlIHNob3VsZCBiZSB0
cnVlLiBXYXMgZmFsc2UuCitQQVNTIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJwIikuaXNDb250
ZW50RWRpdGFibGUgaXMgdHJ1ZQogRklYTUU6IHNldENvbnRlbnRFZGl0YWJsZSB3aXRoIHRydWUv
ZmFsc2UvaW5oZXJpdCBzdHJpbmcgaXMgbm90IHdvcmtpbmcgcHJvcGVybHkuIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD01MjA1OAogUEFTUyB3aW5kb3cuZ2V0Q29tcHV0
ZWRTdHlsZShwLCAiIikuZ2V0UHJvcGVydHlWYWx1ZSgiLXdlYmtpdC11c2VyLW1vZGlmeSIpIGlz
ICJyZWFkLXdyaXRlIgogCkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2RvbS9IVE1MRWxlbWVudC9z
ZXQtdHJ1ZS1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9kb20v
SFRNTEVsZW1lbnQvc2V0LXRydWUtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiA4MTk2NikKKysrIExh
eW91dFRlc3RzL2Zhc3QvZG9tL0hUTUxFbGVtZW50L3NldC10cnVlLWV4cGVjdGVkLnR4dAkod29y
a2luZyBjb3B5KQpAQCAtOSw3ICs5LDcgQEAgT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2Vy
aWVzIG9mICJQQQogCiBQQVNTIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJkaXYxIikuZ2V0QXR0
cmlidXRlKCJjb250ZW50RWRpdGFibGUiKSBpcyAidHJ1ZSIKIFBBU1MgZG9jdW1lbnQuZ2V0RWxl
bWVudEJ5SWQoImRpdjEiKS5jb250ZW50RWRpdGFibGUgaXMgInRydWUiCi1GQUlMIGRvY3VtZW50
LmdldEVsZW1lbnRCeUlkKCJkaXYxIikuaXNDb250ZW50RWRpdGFibGUgc2hvdWxkIGJlIHRydWUu
IFdhcyBmYWxzZS4KK1BBU1MgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImRpdjEiKS5pc0NvbnRl
bnRFZGl0YWJsZSBpcyB0cnVlCiBGSVhNRTogc2V0Q29udGVudEVkaXRhYmxlIHdpdGggdHJ1ZS9m
YWxzZS9pbmhlcml0IHN0cmluZyBpcyBub3Qgd29ya2luZyBwcm9wZXJseS4gaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTUyMDU4CiBQQVNTIHdpbmRvdy5nZXRDb21wdXRl
ZFN0eWxlKGRpdjEsICIiKS5nZXRQcm9wZXJ0eVZhbHVlKCItd2Via2l0LXVzZXItbW9kaWZ5Iikg
aXMgInJlYWQtd3JpdGUiCiBQQVNTIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJwMiIpLmdldEF0
dHJpYnV0ZSgiY29udGVudEVkaXRhYmxlIikgaXMgInRydWUiCkluZGV4OiBMYXlvdXRUZXN0cy9m
YXN0L2RvbS9IVE1MRWxlbWVudC9zZXQtdmFsdWUtY2FzZWluc2Vuc2l0aXZlLWV4cGVjdGVkLnR4
dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2RvbS9IVE1MRWxlbWVudC9zZXQtdmFs
dWUtY2FzZWluc2Vuc2l0aXZlLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gODE5NjYpCisrKyBMYXlv
dXRUZXN0cy9mYXN0L2RvbS9IVE1MRWxlbWVudC9zZXQtdmFsdWUtY2FzZWluc2Vuc2l0aXZlLWV4
cGVjdGVkLnR4dAkod29ya2luZyBjb3B5KQpAQCAtMTEsNyArMTEsNyBAQCBPbiBzdWNjZXNzLCB5
b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBCiAKIFBBU1MgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5
SWQoImRpdjEiKS5nZXRBdHRyaWJ1dGUoImNvbnRlbnRFZGl0YWJsZSIpIGlzICJ0cnVlIgogUEFT
UyBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiZGl2MSIpLmNvbnRlbnRFZGl0YWJsZSBpcyAidHJ1
ZSIKLUZBSUwgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImRpdjEiKS5pc0NvbnRlbnRFZGl0YWJs
ZSBzaG91bGQgYmUgdHJ1ZS4gV2FzIGZhbHNlLgorUEFTUyBkb2N1bWVudC5nZXRFbGVtZW50QnlJ
ZCgiZGl2MSIpLmlzQ29udGVudEVkaXRhYmxlIGlzIHRydWUKIEZJWE1FOiBpc0NvbnRlbnRFZGl0
YWJsZSBpcyBub3Qgd29ya2luZyBwcm9wZXJseS4gUmVsYXRlZCB0byBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTIwNTgKIFBBU1Mgd2luZG93LmdldENvbXB1dGVkU3R5
bGUoZGl2MSwgIiIpLmdldFByb3BlcnR5VmFsdWUoIi13ZWJraXQtdXNlci1tb2RpZnkiKSBpcyAi
cmVhZC13cml0ZSIKIFBBU1MgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInAxIikuZ2V0QXR0cmli
dXRlKCJjb250ZW50RWRpdGFibGUiKSBpcyAiZmFsc2UiCg==
</data>
<flag name="review"
          id="79551"
          type_id="1"
          status="+"
          setter="rniwa"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>88108</attachid>
            <date>2011-04-04 13:11:46 -0700</date>
            <delta_ts>2011-04-04 15:49:41 -0700</delta_ts>
            <desc>fix patch 3</desc>
            <filename>52058_3.patch</filename>
            <type>text/plain</type>
            <size>17057</size>
            <attacher name="Chang Shu">cshu</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDgyODQyKQorKysgU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMjggQEAKKzIwMTEtMDQtMDQgIENoYW5nIFNo
dSAgPGNzaHVAd2Via2l0Lm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBSeW9zdWtlIE5pd2Eu
CisKKyAgICAgICAgc2V0Q29udGVudEVkaXRhYmxlIHdpdGggdHJ1ZS9mYWxzZS9pbmhlcml0IHN0
cmluZyBpcyBub3Qgd29ya2luZyBwcm9wZXJseQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTIwNTgKKworICAgICAgICBNb3ZlIGlzQ29udGVudEVkaXRh
YmxlIGZyb20gSFRNTEVsZW1lbnQgdG8gTm9kZS4gVGh1cywgTm9kZSBwcm92aWRlcyB0d28gZnVu
Y3Rpb25zIGZvcgorICAgICAgICBjaGVja2luZyBlZGl0YWJpbGl0eTogcmVuZGVyZXJJc0VkaXRh
YmxlIGFuZCBpc0NvbnRlbnRFZGlhYmxlLiBUaGUgZm9ybWVyIGlzIGEgZmFzdCBwYXRoLAorICAg
ICAgICB3aGljaCBkb2VzIE5PVCB0cmlnZ2VyIGxheW91dCBhbmQgb25seSBjaGVja3MgdGhlIHJl
bmRlciBzdHlsZSBvZiB1c2VybW9kaWZ5LiBUaGUgbGF0dGVyCisgICAgICAgIHVwZGF0ZXMgdGhl
IGxheW91dCBmaXJzdCB0byBtYWtlIHN1cmUgdGhlIHJlbmRlciBzdHlsZSBzeW5jcyB3aXRoIERP
TSBjb250ZW50ZWRpdGFibGUgCisgICAgICAgIGF0dHJpYnV0ZS4gQ2VydGFpbiBjYWxsIHNpdGVz
IHRoYXQgbmVlZCB0byBjYWxsIGlzQ29udGVudEVkaXRhYmxlIHJhdGhlciB0aGFuIHJlbmRlcmVy
SXNFZGl0YWJsZQorICAgICAgICBhcmUgYWxzbyB1cGRhdGVkIGluIHRoZSBwYXRjaC4gQnV0IGEg
Y29tcGxldGUgZml4IHdpbGwgZm9sbG93IHVwIGluIGJ1ZyA1NzI0NC4KKworICAgICAgICBUaGlz
IHBhdGNoIGZpeGVzIGFsbCB0aGUgZmFpbGVkIGxheW91dCB0ZXN0cyByZWxhdGVkIHRvIHNldCBj
b250ZW50ZWRpdGFibGUuCisKKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlS
ZW5kZXJPYmplY3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6QWNjZXNzaWJpbGl0eVJlbmRlck9i
amVjdDo6aXNSZWFkT25seSk6CisgICAgICAgICogZG9tL05vZGUuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6Tm9kZTo6aXNDb250ZW50RWRpdGFibGUpOgorICAgICAgICAoV2ViQ29yZTo6Tm9kZTo6
c2hvdWxkVXNlSW5wdXRNZXRob2QpOgorICAgICAgICAqIGRvbS9Ob2RlLmg6CisgICAgICAgICog
aHRtbC9IVE1MRWxlbWVudC5jcHA6CisgICAgICAgICogaHRtbC9IVE1MRWxlbWVudC5oOgorCiAy
MDExLTA0LTA0ICBTZXJnaW8gVmlsbGFyIFNlbmluICA8c3ZpbGxhckBpZ2FsaWEuY29tPgogCiAg
ICAgICAgIFJldmlld2VkIGJ5IE1hcnRpbiBSb2JpbnNvbi4KSW5kZXg6IFNvdXJjZS9XZWJDb3Jl
L2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdC5jcHAKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0
LmNwcAkocmV2aXNpb24gODI4NDIpCisrKyBTb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0Fj
Y2Vzc2liaWxpdHlSZW5kZXJPYmplY3QuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC02NjEsNyArNjYx
LDcgQEAgYm9vbCBBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0Ojppc1JlYWRPbgogICAgICAgICAg
ICAgcmV0dXJuIHRydWU7CiAgICAgICAgIAogICAgICAgICBIVE1MRWxlbWVudCogYm9keSA9IGRv
Y3VtZW50LT5ib2R5KCk7Ci0gICAgICAgIGlmIChib2R5ICYmIGJvZHktPnJlbmRlcmVySXNFZGl0
YWJsZSgpKQorICAgICAgICBpZiAoYm9keSAmJiBib2R5LT5pc0NvbnRlbnRFZGl0YWJsZSgpKQog
ICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogCiAgICAgICAgIHJldHVybiAhZG9jdW1lbnQtPnJl
bmRlcmVySXNFZGl0YWJsZSgpOwpJbmRleDogU291cmNlL1dlYkNvcmUvZG9tL05vZGUuY3BwCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlLmNwcAkocmV2aXNpb24gODI4NDIp
CisrKyBTb3VyY2UvV2ViQ29yZS9kb20vTm9kZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTcwOSw2
ICs3MDksMTIgQEAgdm9pZCBOb2RlOjpkZXByZWNhdGVkUGFyc2VyQWRkQ2hpbGQoUGFzcwogewog
fQogCitib29sIE5vZGU6OmlzQ29udGVudEVkaXRhYmxlKCkgY29uc3QKK3sKKyAgICBkb2N1bWVu
dCgpLT51cGRhdGVMYXlvdXRJZ25vcmVQZW5kaW5nU3R5bGVzaGVldHMoKTsKKyAgICByZXR1cm4g
cmVuZGVyZXJJc0VkaXRhYmxlKEVkaXRhYmxlKTsKK30KKwogYm9vbCBOb2RlOjpyZW5kZXJlcklz
RWRpdGFibGUoRWRpdGFibGVMZXZlbCBlZGl0YWJsZUxldmVsKSBjb25zdAogewogICAgIGlmIChk
b2N1bWVudCgpLT5pbkRlc2lnbk1vZGUoKSB8fCAoZG9jdW1lbnQoKS0+ZnJhbWUoKSAmJiBkb2N1
bWVudCgpLT5mcmFtZSgpLT5wYWdlKCkgJiYgZG9jdW1lbnQoKS0+ZnJhbWUoKS0+cGFnZSgpLT5p
c0VkaXRhYmxlKCkpKQpAQCAtNzM4LDcgKzc0NCw3IEBAIGJvb2wgTm9kZTo6cmVuZGVyZXJJc0Vk
aXRhYmxlKEVkaXRhYmxlTGUKIAogYm9vbCBOb2RlOjpzaG91bGRVc2VJbnB1dE1ldGhvZCgpIGNv
bnN0CiB7Ci0gICAgcmV0dXJuIHJlbmRlcmVySXNFZGl0YWJsZSgpOworICAgIHJldHVybiBpc0Nv
bnRlbnRFZGl0YWJsZSgpOwogfQogCiBSZW5kZXJCb3gqIE5vZGU6OnJlbmRlckJveCgpIGNvbnN0
CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9kb20vTm9kZS5oCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9X
ZWJDb3JlL2RvbS9Ob2RlLmgJKHJldmlzaW9uIDgyODQyKQorKysgU291cmNlL1dlYkNvcmUvZG9t
L05vZGUuaAkod29ya2luZyBjb3B5KQpAQCAtMzE5LDEwICszMTksOCBAQCBwdWJsaWM6CiAgICAg
dmlydHVhbCBib29sIGlzS2V5Ym9hcmRGb2N1c2FibGUoS2V5Ym9hcmRFdmVudCopIGNvbnN0Owog
ICAgIHZpcnR1YWwgYm9vbCBpc01vdXNlRm9jdXNhYmxlKCkgY29uc3Q7CiAKLSNpZiBQTEFURk9S
TShNQUMpCi0gICAgLy8gT2JqZWN0aXZlLUMgZXh0ZW5zaW9ucwotICAgIGJvb2wgaXNDb250ZW50
RWRpdGFibGUoKSBjb25zdCB7IHJldHVybiByZW5kZXJlcklzRWRpdGFibGUoRWRpdGFibGUpOyB9
Ci0jZW5kaWYKKyAgICBib29sIGlzQ29udGVudEVkaXRhYmxlKCkgY29uc3Q7CisKICAgICBib29s
IHJlbmRlcmVySXNFZGl0YWJsZSgpIGNvbnN0IHsgcmV0dXJuIHJlbmRlcmVySXNFZGl0YWJsZShF
ZGl0YWJsZSk7IH0KICAgICBib29sIHJlbmRlcmVySXNSaWNobHlFZGl0YWJsZSgpIGNvbnN0IHsg
cmV0dXJuIHJlbmRlcmVySXNFZGl0YWJsZShSaWNobHlFZGl0YWJsZSk7IH0KICAgICB2aXJ0dWFs
IGJvb2wgc2hvdWxkVXNlSW5wdXRNZXRob2QoKSBjb25zdDsKSW5kZXg6IFNvdXJjZS9XZWJDb3Jl
L2h0bWwvSFRNTEVsZW1lbnQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2h0bWwv
SFRNTEVsZW1lbnQuY3BwCShyZXZpc2lvbiA4Mjg0MikKKysrIFNvdXJjZS9XZWJDb3JlL2h0bWwv
SFRNTEVsZW1lbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC02NTcsMTEgKzY1Nyw2IEBAIGJvb2wg
SFRNTEVsZW1lbnQ6OnN1cHBvcnRzRm9jdXMoKSBjb25zdAogICAgIHJldHVybiBFbGVtZW50Ojpz
dXBwb3J0c0ZvY3VzKCkgfHwgKHJlbmRlcmVySXNFZGl0YWJsZSgpICYmIHBhcmVudE5vZGUoKSAm
JiAhcGFyZW50Tm9kZSgpLT5yZW5kZXJlcklzRWRpdGFibGUoKSk7CiB9CiAKLWJvb2wgSFRNTEVs
ZW1lbnQ6OmlzQ29udGVudEVkaXRhYmxlKCkgY29uc3QKLXsKLSAgICByZXR1cm4gcmVuZGVyZXJJ
c0VkaXRhYmxlKCk7Ci19Ci0KIFN0cmluZyBIVE1MRWxlbWVudDo6Y29udGVudEVkaXRhYmxlKCkg
Y29uc3QKIHsKICAgICBjb25zdCBBdG9taWNTdHJpbmcmIHZhbHVlID0gZmFzdEdldEF0dHJpYnV0
ZShjb250ZW50ZWRpdGFibGVBdHRyKTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEVs
ZW1lbnQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxFbGVtZW50LmgJ
KHJldmlzaW9uIDgyODQyKQorKysgU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRWxlbWVudC5oCSh3
b3JraW5nIGNvcHkpCkBAIC01Nyw4ICs1Nyw2IEBAIHB1YmxpYzoKIAogICAgIHZpcnR1YWwgYm9v
bCBzdXBwb3J0c0ZvY3VzKCkgY29uc3Q7CiAKLSAgICBib29sIGlzQ29udGVudEVkaXRhYmxlKCkg
Y29uc3Q7Ci0KICAgICBTdHJpbmcgY29udGVudEVkaXRhYmxlKCkgY29uc3Q7CiAgICAgdm9pZCBz
ZXRDb250ZW50RWRpdGFibGUoY29uc3QgU3RyaW5nJiwgRXhjZXB0aW9uQ29kZSYpOwogCkluZGV4
OiBTb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwkocmV2aXNpb24gODI4NDIpCisrKyBTb3VyY2UvV2Vi
S2l0L2Nocm9taXVtL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDIwIEBACisy
MDExLTA0LTA0ICBDaGFuZyBTaHUgIDxjc2h1QHdlYmtpdC5vcmc+CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgUnlvc3VrZSBOaXdhLgorCisgICAgICAgIHNldENvbnRlbnRFZGl0YWJsZSB3aXRoIHRy
dWUvZmFsc2UvaW5oZXJpdCBzdHJpbmcgaXMgbm90IHdvcmtpbmcgcHJvcGVybHkKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTUyMDU4CisKKyAgICAgICAg
TW92ZSBpc0NvbnRlbnRFZGl0YWJsZSBmcm9tIEhUTUxFbGVtZW50IHRvIE5vZGUuIFdlYktpdCBz
aG91bGQgb25seSBhY2Nlc3MgaXNDb250ZW50RWRpdGFibGUKKyAgICAgICAgYXMgcmVuZGVyZXJJ
c0VkaXRhYmxlIGlzIGZvciBXZWJDb3JlIGludGVybmFsIHVzZS4KKworICAgICAgICAqIHNyYy9X
ZWJOb2RlLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViTm9kZTo6aXNDb250ZW50RWRpdGFibGUp
OgorICAgICAgICAqIHNyYy9XZWJWaWV3SW1wbC5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlZp
ZXdJbXBsOjpzZXRGb2N1cyk6CisgICAgICAgIChXZWJLaXQ6OldlYlZpZXdJbXBsOjpzZXRDb21w
b3NpdGlvbik6CisgICAgICAgIChXZWJLaXQ6OldlYlZpZXdJbXBsOjpjb25maXJtQ29tcG9zaXRp
b24pOgorCiAyMDExLTA0LTAxICBBZGFtIEJhcnRoICA8YWJhcnRoQHdlYmtpdC5vcmc+CiAKICAg
ICAgICAgQXR0ZW1wdCB0byBmaXggdGhlIENocm9taXVtIGJ1aWxkIHVzaW5nIHRoZSBncmVhdCBh
bmQgcG93ZXJmdWwgZ2l0LgpJbmRleDogU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViTm9k
ZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViTm9kZS5j
cHAJKHJldmlzaW9uIDgyODQyKQorKysgU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViTm9k
ZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTE1Miw3ICsxNTIsNyBAQCBib29sIFdlYk5vZGU6Omlz
Rm9jdXNhYmxlKCkgY29uc3QKIAogYm9vbCBXZWJOb2RlOjppc0NvbnRlbnRFZGl0YWJsZSgpIGNv
bnN0CiB7Ci0gICAgcmV0dXJuIG1fcHJpdmF0ZS0+cmVuZGVyZXJJc0VkaXRhYmxlKCk7CisgICAg
cmV0dXJuIG1fcHJpdmF0ZS0+aXNDb250ZW50RWRpdGFibGUoKTsKIH0KIAogYm9vbCBXZWJOb2Rl
Ojppc0VsZW1lbnROb2RlKCkgY29uc3QKSW5kZXg6IFNvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3Jj
L1dlYlZpZXdJbXBsLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Ny
Yy9XZWJWaWV3SW1wbC5jcHAJKHJldmlzaW9uIDgyODQyKQorKysgU291cmNlL1dlYktpdC9jaHJv
bWl1bS9zcmMvV2ViVmlld0ltcGwuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xMjczLDcgKzEyNzMs
NyBAQCB2b2lkIFdlYlZpZXdJbXBsOjpzZXRGb2N1cyhib29sIGVuYWJsZSkKICAgICAgICAgICAg
ICAgICBFbGVtZW50KiBlbGVtZW50ID0gc3RhdGljX2Nhc3Q8RWxlbWVudCo+KGZvY3VzZWROb2Rl
KTsKICAgICAgICAgICAgICAgICBpZiAoZWxlbWVudC0+aXNUZXh0Rm9ybUNvbnRyb2woKSkKICAg
ICAgICAgICAgICAgICAgICAgZWxlbWVudC0+dXBkYXRlRm9jdXNBcHBlYXJhbmNlKHRydWUpOwot
ICAgICAgICAgICAgICAgIGVsc2UgaWYgKGZvY3VzZWROb2RlLT5yZW5kZXJlcklzRWRpdGFibGUo
KSkgeworICAgICAgICAgICAgICAgIGVsc2UgaWYgKGZvY3VzZWROb2RlLT5pc0NvbnRlbnRFZGl0
YWJsZSgpKSB7CiAgICAgICAgICAgICAgICAgICAgIC8vIHVwZGF0ZUZvY3VzQXBwZWFyYW5jZSgp
IHNlbGVjdHMgYWxsIHRoZSB0ZXh0IG9mCiAgICAgICAgICAgICAgICAgICAgIC8vIGNvbnRlbnRz
ZWRpdGFibGUgRElWcy4gU28gd2Ugc2V0IHRoZSBzZWxlY3Rpb24gZXhwbGljaXRseQogICAgICAg
ICAgICAgICAgICAgICAvLyBpbnN0ZWFkLiBOb3RlIHRoYXQgdGhpcyBoYXMgdGhlIHNpZGUgZWZm
ZWN0IG9mIG1vdmluZyB0aGUKQEAgLTEzMzUsNyArMTMzNSw3IEBAIGJvb2wgV2ViVmlld0ltcGw6
OnNldENvbXBvc2l0aW9uKAogICAgIFBhc3NSZWZQdHI8UmFuZ2U+IHJhbmdlID0gZWRpdG9yLT5j
b21wb3NpdGlvblJhbmdlKCk7CiAgICAgaWYgKHJhbmdlKSB7CiAgICAgICAgIGNvbnN0IE5vZGUq
IG5vZGUgPSByYW5nZS0+c3RhcnRDb250YWluZXIoKTsKLSAgICAgICAgaWYgKCFub2RlIHx8ICFu
b2RlLT5yZW5kZXJlcklzRWRpdGFibGUoKSkKKyAgICAgICAgaWYgKCFub2RlIHx8ICFub2RlLT5p
c0NvbnRlbnRFZGl0YWJsZSgpKQogICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIH0KIApA
QCAtMTM4NCw3ICsxMzg0LDcgQEAgYm9vbCBXZWJWaWV3SW1wbDo6Y29uZmlybUNvbXBvc2l0aW9u
KGNvbgogICAgIFBhc3NSZWZQdHI8UmFuZ2U+IHJhbmdlID0gZWRpdG9yLT5jb21wb3NpdGlvblJh
bmdlKCk7CiAgICAgaWYgKHJhbmdlKSB7CiAgICAgICAgIGNvbnN0IE5vZGUqIG5vZGUgPSByYW5n
ZS0+c3RhcnRDb250YWluZXIoKTsKLSAgICAgICAgaWYgKCFub2RlIHx8ICFub2RlLT5yZW5kZXJl
cklzRWRpdGFibGUoKSkKKyAgICAgICAgaWYgKCFub2RlIHx8ICFub2RlLT5pc0NvbnRlbnRFZGl0
YWJsZSgpKQogICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIH0KIApJbmRleDogU291cmNl
L1dlYktpdC9oYWlrdS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9oYWlr
dS9DaGFuZ2VMb2cJKHJldmlzaW9uIDgyODQyKQorKysgU291cmNlL1dlYktpdC9oYWlrdS9DaGFu
Z2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwxNiBAQAorMjAxMS0wNC0wNCAgQ2hhbmcg
U2h1ICA8Y3NodUB3ZWJraXQub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IFJ5b3N1a2UgTml3
YS4KKworICAgICAgICBzZXRDb250ZW50RWRpdGFibGUgd2l0aCB0cnVlL2ZhbHNlL2luaGVyaXQg
c3RyaW5nIGlzIG5vdCB3b3JraW5nIHByb3Blcmx5CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD01MjA1OAorCisgICAgICAgIE1vdmUgaXNDb250ZW50RWRp
dGFibGUgZnJvbSBIVE1MRWxlbWVudCB0byBOb2RlLiBXZWJLaXQgc2hvdWxkIG9ubHkgYWNjZXNz
IGlzQ29udGVudEVkaXRhYmxlCisgICAgICAgIGFzIHJlbmRlcmVySXNFZGl0YWJsZSBpcyBmb3Ig
V2ViQ29yZSBpbnRlcm5hbCB1c2UuCisKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9FZGl0b3JD
bGllbnRIYWlrdS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpFZGl0b3JDbGllbnRIYWlrdTo6aGFu
ZGxlS2V5Ym9hcmRFdmVudCk6CisKIDIwMTEtMDMtMzEgIEV2YW4gTWFydGluICA8ZXZhbkBjaHJv
bWl1bS5vcmc+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgRXJpYyBTZWlkZWwuCkluZGV4OiBTb3Vy
Y2UvV2ViS2l0L2hhaWt1L1dlYkNvcmVTdXBwb3J0L0VkaXRvckNsaWVudEhhaWt1LmNwcAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L2hhaWt1L1dlYkNvcmVTdXBwb3J0L0VkaXRvckNsaWVu
dEhhaWt1LmNwcAkocmV2aXNpb24gODI4NDIpCisrKyBTb3VyY2UvV2ViS2l0L2hhaWt1L1dlYkNv
cmVTdXBwb3J0L0VkaXRvckNsaWVudEhhaWt1LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjU0LDcg
KzI1NCw3IEBAIHZvaWQgRWRpdG9yQ2xpZW50SGFpa3U6OmhhbmRsZUtleWJvYXJkRXYKICAgICBp
ZiAoIXN0YXJ0KQogICAgICAgICByZXR1cm47CiAKLSAgICBpZiAoc3RhcnQtPnJlbmRlcmVySXNF
ZGl0YWJsZSgpKSB7CisgICAgaWYgKHN0YXJ0LT5pc0NvbnRlbnRFZGl0YWJsZSgpKSB7CiAgICAg
ICAgIHN3aXRjaCAoa2V2ZW50LT53aW5kb3dzVmlydHVhbEtleUNvZGUoKSkgewogICAgICAgICBj
YXNlIFZLX0JBQ0s6CiAgICAgICAgICAgICBmcmFtZS0+ZWRpdG9yKCktPmRlbGV0ZVdpdGhEaXJl
Y3Rpb24oRGlyZWN0aW9uQmFja3dhcmQsCkluZGV4OiBTb3VyY2UvV2ViS2l0L3F0L0NoYW5nZUxv
Zwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L3F0L0NoYW5nZUxvZwkocmV2aXNpb24gODI4
NDIpCisrKyBTb3VyY2UvV2ViS2l0L3F0L0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwz
ICsxLDE2IEBACisyMDExLTA0LTA0ICBDaGFuZyBTaHUgIDxjc2h1QHdlYmtpdC5vcmc+CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgUnlvc3VrZSBOaXdhLgorCisgICAgICAgIHNldENvbnRlbnRFZGl0
YWJsZSB3aXRoIHRydWUvZmFsc2UvaW5oZXJpdCBzdHJpbmcgaXMgbm90IHdvcmtpbmcgcHJvcGVy
bHkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTUyMDU4
CisKKyAgICAgICAgTW92ZSBpc0NvbnRlbnRFZGl0YWJsZSBmcm9tIEhUTUxFbGVtZW50IHRvIE5v
ZGUuIFdlYktpdCBzaG91bGQgb25seSBhY2Nlc3MgaXNDb250ZW50RWRpdGFibGUKKyAgICAgICAg
YXMgcmVuZGVyZXJJc0VkaXRhYmxlIGlzIGZvciBXZWJDb3JlIGludGVybmFsIHVzZS4KKworICAg
ICAgICAqIFdlYkNvcmVTdXBwb3J0L0VkaXRvckNsaWVudFF0LmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OkVkaXRvckNsaWVudFF0OjpoYW5kbGVLZXlib2FyZEV2ZW50KToKKwogMjAxMS0wNC0wMSAg
Q2Fyb2wgU3phYm8gIDxjYXJvbC5zemFib0Bub2tpYS5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQg
YnkgQmVuamFtaW4gUG91bGFpbi4KSW5kZXg6IFNvdXJjZS9XZWJLaXQvcXQvV2ViQ29yZVN1cHBv
cnQvRWRpdG9yQ2xpZW50UXQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvcXQvV2Vi
Q29yZVN1cHBvcnQvRWRpdG9yQ2xpZW50UXQuY3BwCShyZXZpc2lvbiA4Mjg0MikKKysrIFNvdXJj
ZS9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvRWRpdG9yQ2xpZW50UXQuY3BwCSh3b3JraW5nIGNv
cHkpCkBAIC00MjAsNyArNDIwLDcgQEAgdm9pZCBFZGl0b3JDbGllbnRRdDo6aGFuZGxlS2V5Ym9h
cmRFdmVudAogICAgICAgICByZXR1cm47CiAKICAgICAvLyBGSVhNRTogcmVmYWN0b3IgYWxsIG9m
IHRoaXMgdG8gdXNlIEFjdGlvbnMgb3Igc29tZXRoaW5nIGxpa2UgdGhlbQotICAgIGlmIChzdGFy
dC0+cmVuZGVyZXJJc0VkaXRhYmxlKCkpIHsKKyAgICBpZiAoc3RhcnQtPmlzQ29udGVudEVkaXRh
YmxlKCkpIHsKICAgICAgICAgYm9vbCBkb1NwYXRpYWxOYXZpZ2F0aW9uID0gZmFsc2U7CiAgICAg
ICAgIGlmIChpc1NwYXRpYWxOYXZpZ2F0aW9uRW5hYmxlZChmcmFtZSkpIHsKICAgICAgICAgICAg
IGlmICgha2V2ZW50LT5tb2RpZmllcnMoKSkgewpJbmRleDogTGF5b3V0VGVzdHMvQ2hhbmdlTG9n
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL0NoYW5nZUxvZwkocmV2aXNpb24gODI4NDIpCisr
KyBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwxOSBAQAor
MjAxMS0wNC0wNCAgQ2hhbmcgU2h1ICA8Y3NodUB3ZWJraXQub3JnPgorCisgICAgICAgIFJldmll
d2VkIGJ5IFJ5b3N1a2UgTml3YS4KKworICAgICAgICBzZXRDb250ZW50RWRpdGFibGUgd2l0aCB0
cnVlL2ZhbHNlL2luaGVyaXQgc3RyaW5nIGlzIG5vdCB3b3JraW5nIHByb3Blcmx5CisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD01MjA1OAorCisgICAgICAg
IFVwZGF0ZWQgZXhwZWN0ZWQgcmVzdWx0cyBhZnRlciB0aGlzIHBhdGNoIGZpeGVzIHRoZSBzZXQg
Y29udGVudGVkaXRhYmxlIGlzc3VlLgorCisgICAgICAgICogZmFzdC9kb20vSFRNTEVsZW1lbnQv
c2V0LWZhbHNlLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBmYXN0L2RvbS9IVE1MRWxlbWVudC9z
ZXQtZmFsc2UuaHRtbDoKKyAgICAgICAgKiBmYXN0L2RvbS9IVE1MRWxlbWVudC9zZXQtaW5oZXJp
dC1wYXJlbnQtZmFsc2UtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIGZhc3QvZG9tL0hUTUxFbGVt
ZW50L3NldC1pbmhlcml0LXBhcmVudC10cnVlLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBmYXN0
L2RvbS9IVE1MRWxlbWVudC9zZXQtdHJ1ZS1leHBlY3RlZC50eHQ6CisgICAgICAgICogZmFzdC9k
b20vSFRNTEVsZW1lbnQvc2V0LXZhbHVlLWNhc2VpbnNlbnNpdGl2ZS1leHBlY3RlZC50eHQ6CisK
IDIwMTEtMDQtMDQgIEplc3NpZSBCZXJsaW4gIDxqYmVybGluQGFwcGxlLmNvbT4KIAogICAgICAg
ICBSZW1vdmUgYSB0ZXN0IGZyb20gdGhlIHdpbi13azIgc2tpcHBlZCBsaXN0IHRoYXQgZG9lcyBu
b3QgZXhpc3QuCkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2RvbS9IVE1MRWxlbWVudC9zZXQtZmFs
c2UtZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvZG9tL0hUTUxF
bGVtZW50L3NldC1mYWxzZS1leHBlY3RlZC50eHQJKHJldmlzaW9uIDgyODQyKQorKysgTGF5b3V0
VGVzdHMvZmFzdC9kb20vSFRNTEVsZW1lbnQvc2V0LWZhbHNlLWV4cGVjdGVkLnR4dAkod29ya2lu
ZyBjb3B5KQpAQCAtOSw4ICs5LDcgQEAgT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVz
IG9mICJQQQogCiBQQVNTIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJkaXYxIikuZ2V0QXR0cmli
dXRlKCJjb250ZW50RWRpdGFibGUiKSBpcyAiZmFsc2UiCiBQQVNTIGRvY3VtZW50LmdldEVsZW1l
bnRCeUlkKCJkaXYxIikuY29udGVudEVkaXRhYmxlIGlzICJmYWxzZSIKLUZBSUwgZG9jdW1lbnQu
Z2V0RWxlbWVudEJ5SWQoImRpdjEiKS5pc0NvbnRlbnRFZGl0YWJsZSBzaG91bGQgYmUgZmFsc2Uu
IFdhcyB0cnVlLgotRklYTUU6IHNldENvbnRlbnRFZGl0YWJsZSB3aXRoIHRydWUvZmFsc2UvaW5o
ZXJpdCBzdHJpbmcgaXMgbm90IHdvcmtpbmcgcHJvcGVybHkuIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD01MjA1OAorUEFTUyBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgi
ZGl2MSIpLmlzQ29udGVudEVkaXRhYmxlIGlzIGZhbHNlCiBQQVNTIHdpbmRvdy5nZXRDb21wdXRl
ZFN0eWxlKGRpdjEsICIiKS5nZXRQcm9wZXJ0eVZhbHVlKCItd2Via2l0LXVzZXItbW9kaWZ5Iikg
aXMgInJlYWQtb25seSIKIFBBU1MgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInAyIikuY29udGVu
dEVkaXRhYmxlIGlzICJmYWxzZSIKIFBBU1MgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInAyIiku
aXNDb250ZW50RWRpdGFibGUgaXMgZmFsc2UKSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvZG9tL0hU
TUxFbGVtZW50L3NldC1mYWxzZS5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3Qv
ZG9tL0hUTUxFbGVtZW50L3NldC1mYWxzZS5odG1sCShyZXZpc2lvbiA4Mjg0MikKKysrIExheW91
dFRlc3RzL2Zhc3QvZG9tL0hUTUxFbGVtZW50L3NldC1mYWxzZS5odG1sCSh3b3JraW5nIGNvcHkp
CkBAIC0yMSw3ICsyMSw2IEBAIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJwMiIpLmNvbnRlbnRF
ZGkKIHNob3VsZEJlKCdkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiZGl2MSIpLmdldEF0dHJpYnV0
ZSgiY29udGVudEVkaXRhYmxlIiknLCciZmFsc2UiJyk7CiBzaG91bGRCZSgnZG9jdW1lbnQuZ2V0
RWxlbWVudEJ5SWQoImRpdjEiKS5jb250ZW50RWRpdGFibGUnLCAnImZhbHNlIicpOwogc2hvdWxk
QmUoJ2RvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJkaXYxIikuaXNDb250ZW50RWRpdGFibGUnLCAn
ZmFsc2UnKTsKLWRlYnVnKCJGSVhNRTogc2V0Q29udGVudEVkaXRhYmxlIHdpdGggdHJ1ZS9mYWxz
ZS9pbmhlcml0IHN0cmluZyBpcyBub3Qgd29ya2luZyBwcm9wZXJseS4gaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTUyMDU4Iik7CiBzaG91bGRCZSgnd2luZG93LmdldENv
bXB1dGVkU3R5bGUoZGl2MSwgIiIpLmdldFByb3BlcnR5VmFsdWUoIi13ZWJraXQtdXNlci1tb2Rp
ZnkiKScsICcicmVhZC1vbmx5IicpOwogCiBzaG91bGRCZSgnZG9jdW1lbnQuZ2V0RWxlbWVudEJ5
SWQoInAyIikuY29udGVudEVkaXRhYmxlJywgJyJmYWxzZSInKTsKSW5kZXg6IExheW91dFRlc3Rz
L2Zhc3QvZG9tL0hUTUxFbGVtZW50L3NldC1pbmhlcml0LXBhcmVudC1mYWxzZS1leHBlY3RlZC50
eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9kb20vSFRNTEVsZW1lbnQvc2V0LWlu
aGVyaXQtcGFyZW50LWZhbHNlLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gODI4NDIpCisrKyBMYXlv
dXRUZXN0cy9mYXN0L2RvbS9IVE1MRWxlbWVudC9zZXQtaW5oZXJpdC1wYXJlbnQtZmFsc2UtZXhw
ZWN0ZWQudHh0CSh3b3JraW5nIGNvcHkpCkBAIC04LDcgKzgsNyBAQCBPbiBzdWNjZXNzLCB5b3Ug
d2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBCiAKIFBBU1MgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQo
InAiKS5oYXNBdHRyaWJ1dGUoImNvbnRlbnRFZGl0YWJsZSIpIGlzIGZhbHNlCiBQQVNTIGRvY3Vt
ZW50LmdldEVsZW1lbnRCeUlkKCJwIikuY29udGVudEVkaXRhYmxlIGlzICJpbmhlcml0IgotRkFJ
TCBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgicCIpLmlzQ29udGVudEVkaXRhYmxlIHNob3VsZCBi
ZSBmYWxzZS4gV2FzIHRydWUuCitQQVNTIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJwIikuaXND
b250ZW50RWRpdGFibGUgaXMgZmFsc2UKIEZJWE1FOiBzZXRDb250ZW50RWRpdGFibGUgd2l0aCB0
cnVlL2ZhbHNlL2luaGVyaXQgc3RyaW5nIGlzIG5vdCB3b3JraW5nIHByb3Blcmx5LiBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTIwNTgKIFBBU1Mgd2luZG93LmdldENv
bXB1dGVkU3R5bGUocCwgIiIpLmdldFByb3BlcnR5VmFsdWUoIi13ZWJraXQtdXNlci1tb2RpZnki
KSBpcyAicmVhZC1vbmx5IgogCkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2RvbS9IVE1MRWxlbWVu
dC9zZXQtaW5oZXJpdC1wYXJlbnQtdHJ1ZS1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5
b3V0VGVzdHMvZmFzdC9kb20vSFRNTEVsZW1lbnQvc2V0LWluaGVyaXQtcGFyZW50LXRydWUtZXhw
ZWN0ZWQudHh0CShyZXZpc2lvbiA4Mjg0MikKKysrIExheW91dFRlc3RzL2Zhc3QvZG9tL0hUTUxF
bGVtZW50L3NldC1pbmhlcml0LXBhcmVudC10cnVlLWV4cGVjdGVkLnR4dAkod29ya2luZyBjb3B5
KQpAQCAtOCw3ICs4LDcgQEAgT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQ
QQogCiBQQVNTIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJwIikuaGFzQXR0cmlidXRlKCJjb250
ZW50RWRpdGFibGUiKSBpcyBmYWxzZQogUEFTUyBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgicCIp
LmNvbnRlbnRFZGl0YWJsZSBpcyAiaW5oZXJpdCIKLUZBSUwgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5
SWQoInAiKS5pc0NvbnRlbnRFZGl0YWJsZSBzaG91bGQgYmUgdHJ1ZS4gV2FzIGZhbHNlLgorUEFT
UyBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgicCIpLmlzQ29udGVudEVkaXRhYmxlIGlzIHRydWUK
IEZJWE1FOiBzZXRDb250ZW50RWRpdGFibGUgd2l0aCB0cnVlL2ZhbHNlL2luaGVyaXQgc3RyaW5n
IGlzIG5vdCB3b3JraW5nIHByb3Blcmx5LiBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9NTIwNTgKIFBBU1Mgd2luZG93LmdldENvbXB1dGVkU3R5bGUocCwgIiIpLmdldFBy
b3BlcnR5VmFsdWUoIi13ZWJraXQtdXNlci1tb2RpZnkiKSBpcyAicmVhZC13cml0ZSIKIApJbmRl
eDogTGF5b3V0VGVzdHMvZmFzdC9kb20vSFRNTEVsZW1lbnQvc2V0LXRydWUtZXhwZWN0ZWQudHh0
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvZG9tL0hUTUxFbGVtZW50L3NldC10cnVl
LWV4cGVjdGVkLnR4dAkocmV2aXNpb24gODI4NDIpCisrKyBMYXlvdXRUZXN0cy9mYXN0L2RvbS9I
VE1MRWxlbWVudC9zZXQtdHJ1ZS1leHBlY3RlZC50eHQJKHdvcmtpbmcgY29weSkKQEAgLTksNyAr
OSw3IEBAIE9uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEEKIAogUEFTUyBk
b2N1bWVudC5nZXRFbGVtZW50QnlJZCgiZGl2MSIpLmdldEF0dHJpYnV0ZSgiY29udGVudEVkaXRh
YmxlIikgaXMgInRydWUiCiBQQVNTIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJkaXYxIikuY29u
dGVudEVkaXRhYmxlIGlzICJ0cnVlIgotRkFJTCBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiZGl2
MSIpLmlzQ29udGVudEVkaXRhYmxlIHNob3VsZCBiZSB0cnVlLiBXYXMgZmFsc2UuCitQQVNTIGRv
Y3VtZW50LmdldEVsZW1lbnRCeUlkKCJkaXYxIikuaXNDb250ZW50RWRpdGFibGUgaXMgdHJ1ZQog
RklYTUU6IHNldENvbnRlbnRFZGl0YWJsZSB3aXRoIHRydWUvZmFsc2UvaW5oZXJpdCBzdHJpbmcg
aXMgbm90IHdvcmtpbmcgcHJvcGVybHkuIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD01MjA1OAogUEFTUyB3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZShkaXYxLCAiIikuZ2V0
UHJvcGVydHlWYWx1ZSgiLXdlYmtpdC11c2VyLW1vZGlmeSIpIGlzICJyZWFkLXdyaXRlIgogUEFT
UyBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgicDIiKS5nZXRBdHRyaWJ1dGUoImNvbnRlbnRFZGl0
YWJsZSIpIGlzICJ0cnVlIgpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9kb20vSFRNTEVsZW1lbnQv
c2V0LXZhbHVlLWNhc2VpbnNlbnNpdGl2ZS1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5
b3V0VGVzdHMvZmFzdC9kb20vSFRNTEVsZW1lbnQvc2V0LXZhbHVlLWNhc2VpbnNlbnNpdGl2ZS1l
eHBlY3RlZC50eHQJKHJldmlzaW9uIDgyODQyKQorKysgTGF5b3V0VGVzdHMvZmFzdC9kb20vSFRN
TEVsZW1lbnQvc2V0LXZhbHVlLWNhc2VpbnNlbnNpdGl2ZS1leHBlY3RlZC50eHQJKHdvcmtpbmcg
Y29weSkKQEAgLTExLDcgKzExLDcgQEAgT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVz
IG9mICJQQQogCiBQQVNTIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJkaXYxIikuZ2V0QXR0cmli
dXRlKCJjb250ZW50RWRpdGFibGUiKSBpcyAidHJ1ZSIKIFBBU1MgZG9jdW1lbnQuZ2V0RWxlbWVu
dEJ5SWQoImRpdjEiKS5jb250ZW50RWRpdGFibGUgaXMgInRydWUiCi1GQUlMIGRvY3VtZW50Lmdl
dEVsZW1lbnRCeUlkKCJkaXYxIikuaXNDb250ZW50RWRpdGFibGUgc2hvdWxkIGJlIHRydWUuIFdh
cyBmYWxzZS4KK1BBU1MgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImRpdjEiKS5pc0NvbnRlbnRF
ZGl0YWJsZSBpcyB0cnVlCiBGSVhNRTogaXNDb250ZW50RWRpdGFibGUgaXMgbm90IHdvcmtpbmcg
cHJvcGVybHkuIFJlbGF0ZWQgdG8gaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTUyMDU4CiBQQVNTIHdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKGRpdjEsICIiKS5nZXRQcm9w
ZXJ0eVZhbHVlKCItd2Via2l0LXVzZXItbW9kaWZ5IikgaXMgInJlYWQtd3JpdGUiCiBQQVNTIGRv
Y3VtZW50LmdldEVsZW1lbnRCeUlkKCJwMSIpLmdldEF0dHJpYnV0ZSgiY29udGVudEVkaXRhYmxl
IikgaXMgImZhbHNlIgo=
</data>

          </attachment>
      

    </bug>

</bugzilla>