<?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>60818</bug_id>
          
          <creation_ts>2011-05-13 16:46:09 -0700</creation_ts>
          <short_desc>Remove Node::deprecatedParserAddChild</short_desc>
          <delta_ts>2019-02-06 09:03:39 -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>DOM</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>54179</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Julien Chaffraix">jchaffraix</reporter>
          <assigned_to name="Julien Chaffraix">jchaffraix</assigned_to>
          <cc>abarth</cc>
    
    <cc>ap</cc>
    
    <cc>cdumez</cc>
    
    <cc>commit-queue</cc>
    
    <cc>eric</cc>
    
    <cc>rniwa</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>403947</commentid>
    <comment_count>0</comment_count>
    <who name="Julien Chaffraix">jchaffraix</who>
    <bug_when>2011-05-13 16:46:09 -0700</bug_when>
    <thetext>As the name says it, let&apos;s remove this method that is left from previous refactorings.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>403950</commentid>
    <comment_count>1</comment_count>
      <attachid>93531</attachid>
    <who name="Julien Chaffraix">jchaffraix</who>
    <bug_when>2011-05-13 16:50:19 -0700</bug_when>
    <thetext>Created attachment 93531
Proposed fix: Refactor XMLDocumentParser to remove the calls to deprecatedParserAddChild</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>403955</commentid>
    <comment_count>2</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-05-13 16:53:20 -0700</bug_when>
    <thetext>Attachment 93531 did not pass style-queue:

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

Source/WebCore/dom/XMLDocumentParser.h:46:  Code inside a namespace should not be indented.  [whitespace/indent] [4]
Total errors found: 1 in 6 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>403960</commentid>
    <comment_count>3</comment_count>
      <attachid>93533</attachid>
    <who name="Julien Chaffraix">jchaffraix</who>
    <bug_when>2011-05-13 17:00:04 -0700</bug_when>
    <thetext>Created attachment 93533
Updated patch with proper style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>404631</commentid>
    <comment_count>4</comment_count>
      <attachid>93533</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2011-05-16 11:36:19 -0700</bug_when>
    <thetext>Comment on attachment 93533
Updated patch with proper style.

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

&gt; Source/WebCore/html/shadow/TextControlInnerElements.cpp:81
&gt; +        toContainerNode(parent)-&gt;parserAddChild(this);

We should just change this to use appendChild.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>404632</commentid>
    <comment_count>5</comment_count>
      <attachid>93533</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2011-05-16 11:37:26 -0700</bug_when>
    <thetext>Comment on attachment 93533
Updated patch with proper style.

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

&gt; Source/WebCore/html/shadow/TextControlInnerElements.cpp:81
&gt;          // FIXME: This code seems very wrong.  Why are we magically adding |this| to the DOM here?
&gt;          //        We shouldn&apos;t be calling parser API methods outside of the parser!
&gt; -        parent-&gt;deprecatedParserAddChild(this);
&gt; +        toContainerNode(parent)-&gt;parserAddChild(this);

I don&apos;t think this part of the change is correct.  TextControlInnerElements is not part of the parser and therefore should not be calling &quot;parser&quot; methods like parserAddChild.

The rest looks pretty good though.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>404633</commentid>
    <comment_count>6</comment_count>
      <attachid>93533</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2011-05-16 11:37:47 -0700</bug_when>
    <thetext>Comment on attachment 93533
Updated patch with proper style.

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

&gt; Source/WebCore/dom/XMLDocumentParser.h:193
&gt; +        RefPtr&lt;Text&gt; m_terminalTextNode;

I&apos;m not sure I would call this &quot;terminalTextNode&quot;.  Maybe m_currentTextNode?  Or m_openTextNode?  Does &quot;terminal text node&quot; come from some spec somewhere?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>404634</commentid>
    <comment_count>7</comment_count>
      <attachid>93533</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2011-05-16 11:39:24 -0700</bug_when>
    <thetext>Comment on attachment 93533
Updated patch with proper style.

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

&gt; Source/WebCore/dom/XMLDocumentParser.h:191
&gt; +        ContainerNode* m_currentNode;
&gt; +        Vector&lt;ContainerNode*&gt; m_currentNodeStack;

We should think about abstracting some of this out into an XMLConstructionSite like how we have an HTMLConstructionSite (in a later patch).  The construction site model allows us to in the future consider doing parsing on a separate thread, and also just generally helps segment off the logic from this monolithic class.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>404833</commentid>
    <comment_count>8</comment_count>
    <who name="Julien Chaffraix">jchaffraix</who>
    <bug_when>2011-05-16 17:20:27 -0700</bug_when>
    <thetext>(In reply to comment #6)
&gt; (From update of attachment 93533 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=93533&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/dom/XMLDocumentParser.h:193
&gt; &gt; +        RefPtr&lt;Text&gt; m_terminalTextNode;
&gt; 
&gt; I&apos;m not sure I would call this &quot;terminalTextNode&quot;.  Maybe m_currentTextNode?  Or m_openTextNode?  Does &quot;terminal text node&quot; come from some spec somewhere?

The naming does not come from any specification. I found that it captures the essence of what this is better: your DOM tree leaves are Text node. I thought about m_currentTextNode but I found it too generic. I don&apos;t have better alternative thus I guess m_currentTextNode will do.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>404849</commentid>
    <comment_count>9</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2011-05-16 17:47:22 -0700</bug_when>
    <thetext>n_leafNode ?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>404916</commentid>
    <comment_count>10</comment_count>
    <who name="Julien Chaffraix">jchaffraix</who>
    <bug_when>2011-05-16 19:58:26 -0700</bug_when>
    <thetext>(In reply to comment #9)
&gt; n_leafNode ?

m_leafTextNode is more precise as we only cover this type of leaf nodes. Any of those 2 options would be very fine by me (actually a terminal node is a synonym of a leaf node). Eric, thoughts on that?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>406137</commentid>
    <comment_count>11</comment_count>
      <attachid>94009</attachid>
    <who name="Julien Chaffraix">jchaffraix</who>
    <bug_when>2011-05-18 17:33:05 -0700</bug_when>
    <thetext>Created attachment 94009
Updated after Eric&apos;s and Adam&apos;s review

Eric, if you don&apos;t like the new naming, just say it!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>406165</commentid>
    <comment_count>12</comment_count>
      <attachid>94009</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2011-05-18 18:12:22 -0700</bug_when>
    <thetext>Comment on attachment 94009
Updated after Eric&apos;s and Adam&apos;s review

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

&gt; Source/WebCore/html/shadow/TextControlInnerElements.cpp:82
&gt; +        toContainerNode(parent)-&gt;appendChild(this, ec);
&gt; +        ASSERT(!ec);

Can this line of code run arbitrary JavaScript?  If so, will we end up with memory corruption because |renderer| or |this| can be freed?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>406348</commentid>
    <comment_count>13</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2011-05-19 05:37:16 -0700</bug_when>
    <thetext>Either we&apos;ll have to make it resilient to DOM modifications, or continue cheating with the parser API.  I&apos;m not really familiar with this callsite.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>406349</commentid>
    <comment_count>14</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2011-05-19 05:37:41 -0700</bug_when>
    <thetext>I thought mutation events were async these days anyway?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>406401</commentid>
    <comment_count>15</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2011-05-19 08:16:00 -0700</bug_when>
    <thetext>(In reply to comment #14)
&gt; I thought mutation events were async these days anyway?

Only during editing commands.  We can slowly migrate to the world where this is true everywhere by declaring EventQueueScope.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>406452</commentid>
    <comment_count>16</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2011-05-19 09:34:07 -0700</bug_when>
    <thetext>IMHO, we should do the rest of this patch and worry about that last callsite in another bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>406453</commentid>
    <comment_count>17</comment_count>
    <who name="Julien Chaffraix">jchaffraix</who>
    <bug_when>2011-05-19 09:39:55 -0700</bug_when>
    <thetext>(In reply to comment #16)
&gt; IMHO, we should do the rest of this patch and worry about that last callsite in another bug.

I don&apos;t think this can cause problems as the mutation event is dispatched in the shadow tree. However this is also my opinion that this change does not belong to this patch but *you guys* asked this to be rolled in (and specifically marked the bug r- because of that), not me!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>406456</commentid>
    <comment_count>18</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2011-05-19 09:45:20 -0700</bug_when>
    <thetext>It doesn&apos;t make sense to chagne from deprecatedParserAppendChild to parserAppendChild for a callsite which shouldn&apos;t call it in the first place. :)  So we should fix the callsite first, before we remove deprecatedparserApendChild, IMO.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>406531</commentid>
    <comment_count>19</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2011-05-19 11:15:17 -0700</bug_when>
    <thetext>&gt; I don&apos;t think this can cause problems as the mutation event is dispatched in the shadow tree. However this is also my opinion that this change does not belong to this patch but *you guys* asked this to be rolled in (and specifically marked the bug r- because of that), not me!

Sorry for the back-and-forth.  99% of this patch is great.  It&apos;s neither correct to remove the &quot;deprecated&quot; or to change to &quot;appendChild&quot;, but for different reasons.  That code probably needs a more substantial change to be correct.  If we get down to one tricky instance of deprecatedParserAddChild in this patch, that&apos;s great!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>406579</commentid>
    <comment_count>20</comment_count>
    <who name="Julien Chaffraix">jchaffraix</who>
    <bug_when>2011-05-19 12:35:04 -0700</bug_when>
    <thetext>&gt; Sorry for the back-and-forth.  99% of this patch is great.  It&apos;s neither correct to remove the &quot;deprecated&quot; or to change to &quot;appendChild&quot;, but for different reasons.  That code probably needs a more substantial change to be correct.  If we get down to one tricky instance of deprecatedParserAddChild in this patch, that&apos;s great!

No worries, I understand all the comments and the fact that we should try to nix this call. I had a look at that today and it looks like the overhaul of how we attach the shadow tree for &lt;input&gt; as part of bug 54179 will solve our problem. The change is actively worked on so I don&apos;t think I should try another way to solve this problem. I will thus just scale down and keep this last call around until the other bug is solved.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>406699</commentid>
    <comment_count>21</comment_count>
      <attachid>94131</attachid>
    <who name="Julien Chaffraix">jchaffraix</who>
    <bug_when>2011-05-19 15:31:40 -0700</bug_when>
    <thetext>Created attachment 94131
New patch - Removed the change in TextControlInnerElements and kept the deprecated methods as we still have one caller</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>406775</commentid>
    <comment_count>22</comment_count>
      <attachid>94131</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2011-05-19 17:37:10 -0700</bug_when>
    <thetext>Comment on attachment 94131
New patch - Removed the change in TextControlInnerElements and kept the deprecated methods as we still have one caller

This looks great.  Thanks!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>406839</commentid>
    <comment_count>23</comment_count>
      <attachid>94131</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2011-05-19 19:39:33 -0700</bug_when>
    <thetext>Comment on attachment 94131
New patch - Removed the change in TextControlInnerElements and kept the deprecated methods as we still have one caller

Clearing flags on attachment: 94131

Committed r86921: &lt;http://trac.webkit.org/changeset/86921&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>406840</commentid>
    <comment_count>24</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2011-05-19 19:39:40 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>406847</commentid>
    <comment_count>25</comment_count>
    <who name="Julien Chaffraix">jchaffraix</who>
    <bug_when>2011-05-19 20:05:40 -0700</bug_when>
    <thetext>Re-opening and adding the dependency on bug 54179. Thanks for the reviews Eric and Adam.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>408455</commentid>
    <comment_count>26</comment_count>
      <attachid>94516</attachid>
    <who name="Julien Chaffraix">jchaffraix</who>
    <bug_when>2011-05-23 16:32:20 -0700</bug_when>
    <thetext>Created attachment 94516
Final patch: Remove deprecatedParserAddChild</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>408466</commentid>
    <comment_count>27</comment_count>
      <attachid>94516</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2011-05-23 16:47:44 -0700</bug_when>
    <thetext>Comment on attachment 94516
Final patch: Remove deprecatedParserAddChild

Prettiest patch all day!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>408669</commentid>
    <comment_count>28</comment_count>
      <attachid>94516</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2011-05-23 23:07:40 -0700</bug_when>
    <thetext>Comment on attachment 94516
Final patch: Remove deprecatedParserAddChild

Clearing flags on attachment: 94516

Committed r87128: &lt;http://trac.webkit.org/changeset/87128&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>408671</commentid>
    <comment_count>29</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2011-05-23 23:07:48 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1503009</commentid>
    <comment_count>30</comment_count>
    <who name="Lucas Forschler">lforschler</who>
    <bug_when>2019-02-06 09:03:39 -0800</bug_when>
    <thetext>Mass moving XML DOM bugs to the &quot;DOM&quot; Component.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>93531</attachid>
            <date>2011-05-13 16:50:19 -0700</date>
            <delta_ts>2011-05-13 17:00:01 -0700</delta_ts>
            <desc>Proposed fix: Refactor XMLDocumentParser to remove the calls to deprecatedParserAddChild</desc>
            <filename>bug60818-deprecatedParserAddChild-removal.diff</filename>
            <type>text/plain</type>
            <size>14469</size>
            <attacher name="Julien Chaffraix">jchaffraix</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCAyY2QyOGIzLi4xZjNmM2M4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNTQg
QEAKKzIwMTEtMDUtMTMgIEp1bGllbiBDaGFmZnJhaXggIDxqY2hhZmZyYWl4QGNvZGVhdXJvcmEu
b3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFJl
bW92ZSBOb2RlOjpkZXByZWNhdGVkUGFyc2VyQWRkQ2hpbGQKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTYwODE4CisKKyAgICAgICAgUmVmYWN0b3Jpbmcg
b25seSBzbyBubyBuZXcgdGVzdHMuCisKKyAgICAgICAgKiBkb20vQ29udGFpbmVyTm9kZS5jcHA6
CisgICAgICAgICogZG9tL0NvbnRhaW5lck5vZGUuaDoKKyAgICAgICAgKiBkb20vTm9kZS5jcHA6
CisgICAgICAgICogZG9tL05vZGUuaDoKKyAgICAgICAgUmVtb3ZlZCBkZXByZWNhdGVkUGFyc2Vy
QWRkQ2hpbGQuCisKKyAgICAgICAgKiBkb20vWE1MRG9jdW1lbnRQYXJzZXIuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6WE1MRG9jdW1lbnRQYXJzZXI6OnB1c2hDdXJyZW50Tm9kZSk6IFVwZGF0ZWQg
dG8gdXNlIGEgQ29udGFpbmVyTm9kZS4KKyAgICAgICAgKFdlYkNvcmU6OlhNTERvY3VtZW50UGFy
c2VyOjpjbGVhckN1cnJlbnROb2RlU3RhY2spOiBXZSBub3cgbmVlZCB0byBjbGVhcgorICAgICAg
ICB1cCBtX3Rlcm1pbmFsVGV4dE5vZGUgdG9vLgorCisgICAgICAgIChXZWJDb3JlOjpYTUxEb2N1
bWVudFBhcnNlcjo6ZW50ZXJUZXh0KToKKyAgICAgICAgKFdlYkNvcmU6OlhNTERvY3VtZW50UGFy
c2VyOjpleGl0VGV4dCk6CisgICAgICAgIFRob3NlIG1ldGhvZHMgd2VyZSB1cGRhdGVkIHRvIHVz
ZSBtX3Rlcm1pbmFsVGV4dE5vZGUgaW5zdGVhZCBvZiBtX2N1cnJlbnROb2RlLgorCisgICAgICAg
ICogZG9tL1hNTERvY3VtZW50UGFyc2VyLmg6CisgICAgICAgIENoYW5nZWQgdGhlIGN1cnJlbnRO
b2RlIGxvZ2ljIHRvIHVzZSBDb250YWluZXJOb2RlLgorCisgICAgICAgICogZG9tL1hNTERvY3Vt
ZW50UGFyc2VyTGlieG1sMi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpYTUxEb2N1bWVudFBhcnNl
cjo6c3RhcnRFbGVtZW50TnMpOgorICAgICAgICAoV2ViQ29yZTo6WE1MRG9jdW1lbnRQYXJzZXI6
OmVuZEVsZW1lbnROcyk6CisgICAgICAgIChXZWJDb3JlOjpYTUxEb2N1bWVudFBhcnNlcjo6Y2hh
cmFjdGVycyk6CisgICAgICAgIChXZWJDb3JlOjpYTUxEb2N1bWVudFBhcnNlcjo6cHJvY2Vzc2lu
Z0luc3RydWN0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OlhNTERvY3VtZW50UGFyc2VyOjpjZGF0
YUJsb2NrKToKKyAgICAgICAgKFdlYkNvcmU6OlhNTERvY3VtZW50UGFyc2VyOjpjb21tZW50KToK
KyAgICAgICAgKiBkb20vWE1MRG9jdW1lbnRQYXJzZXJRdC5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpYTUxEb2N1bWVudFBhcnNlcjo6cGFyc2UpOgorICAgICAgICAoV2ViQ29yZTo6WE1MRG9jdW1l
bnRQYXJzZXI6OnBhcnNlU3RhcnRFbGVtZW50KToKKyAgICAgICAgKFdlYkNvcmU6OlhNTERvY3Vt
ZW50UGFyc2VyOjpwYXJzZUVuZEVsZW1lbnQpOgorICAgICAgICAoV2ViQ29yZTo6WE1MRG9jdW1l
bnRQYXJzZXI6OnBhcnNlQ2hhcmFjdGVycyk6CisgICAgICAgIChXZWJDb3JlOjpYTUxEb2N1bWVu
dFBhcnNlcjo6cGFyc2VQcm9jZXNzaW5nSW5zdHJ1Y3Rpb24pOgorICAgICAgICAoV2ViQ29yZTo6
WE1MRG9jdW1lbnRQYXJzZXI6OnBhcnNlQ2RhdGEpOgorICAgICAgICAoV2ViQ29yZTo6WE1MRG9j
dW1lbnRQYXJzZXI6OnBhcnNlQ29tbWVudCk6CisgICAgICAgIFJlbW92ZWQgdGhlIGNhbGxzIHRv
IGRlcHJlY2F0ZWRQYXJzZXJBZGRDaGlsZCwgY2hhbmdlZCB0aGUgY29kZSB0byB1c2UKKyAgICAg
ICAgbV90ZXJtaW5hbFRleHROb2RlIHdoZW4gaXQgbWFkZSBzZW5zZSBhbmQgdXNlZCBDb250YWlu
ZXJOb2RlIGluc3RlYWQgb2YKKyAgICAgICAgTm9kZSBmb3IgbV9jdXJyZW50Tm9kZS4KKworICAg
ICAgICAqIGh0bWwvc2hhZG93L1RleHRDb250cm9sSW5uZXJFbGVtZW50cy5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpUZXh0Q29udHJvbElubmVyRWxlbWVudDo6YXR0YWNoSW5uZXJFbGVtZW50KToK
KyAgICAgICAgQWRkZWQgYSBjaGVjayBmb3IgaXNDb250YWluZXJOb2RlIGFuZCBjYWxsIHBhcnNl
ckFkZENoaWxkLiBUaGlzIG1hdGNoZXMgdGhlCisgICAgICAgIHByZXZpb3VzIGJlaGF2aW9yIG9m
IGRlcHJlY2F0ZWRQYXJzZXJBZGRDaGlsZC4KKwogMjAxMS0wNS0xMyAgTWFydGluIFJvYmluc29u
ICA8bXJvYmluc29uQGlnYWxpYS5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgRXJpYyBTZWlk
ZWwuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vQ29udGFpbmVyTm9kZS5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9kb20vQ29udGFpbmVyTm9kZS5jcHAKaW5kZXggMzJiMDkzNi4uNzYxZGY3
NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0NvbnRhaW5lck5vZGUuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2RvbS9Db250YWluZXJOb2RlLmNwcApAQCAtNjg2LDExICs2ODYsNiBA
QCB2b2lkIENvbnRhaW5lck5vZGU6OnBhcnNlckFkZENoaWxkKFBhc3NSZWZQdHI8Tm9kZT4gbmV3
Q2hpbGQpCiAgICAgY2hpbGRyZW5DaGFuZ2VkKHRydWUsIGxhc3QsIDAsIDEpOwogfQogCi12b2lk
IENvbnRhaW5lck5vZGU6OmRlcHJlY2F0ZWRQYXJzZXJBZGRDaGlsZChQYXNzUmVmUHRyPE5vZGU+
IG5vZGUpCi17Ci0gICAgcGFyc2VyQWRkQ2hpbGQobm9kZSk7Ci19Ci0KIHZvaWQgQ29udGFpbmVy
Tm9kZTo6c3VzcGVuZFBvc3RBdHRhY2hDYWxsYmFja3MoKQogewogICAgIGlmICghc19hdHRhY2hE
ZXB0aCkgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0NvbnRhaW5lck5vZGUuaCBi
L1NvdXJjZS9XZWJDb3JlL2RvbS9Db250YWluZXJOb2RlLmgKaW5kZXggNzZlYjFiZC4uOWY2ZGNl
NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0NvbnRhaW5lck5vZGUuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9kb20vQ29udGFpbmVyTm9kZS5oCkBAIC0xMDIsMTIgKzEwMiw2IEBAIHBy
b3RlY3RlZDoKICAgICB2b2lkIHNldExhc3RDaGlsZChOb2RlKiBjaGlsZCkgeyBtX2xhc3RDaGls
ZCA9IGNoaWxkOyB9CiAKIHByaXZhdGU6Ci0gICAgLy8gTmV2ZXIgY2FsbCB0aGlzIGZ1bmN0aW9u
IGRpcmVjdGx5LiAgSWYgeW91J3JlIHRyeWluZyB0byBjYWxsIHRoaXMKLSAgICAvLyBmdW5jdGlv
biwgeW91ciBjb2RlIGlzIGVpdGhlciB3cm9uZyBvciB5b3UncmUgc3VwcG9zZWQgdG8gY2FsbAot
ICAgIC8vIHBhcnNlckFkZENoaWxkLiAgUGxlYXNlIGRvIG5vdCBjYWxsIHBhcnNlckFkZENoaWxk
IHVubGVzcyB5b3UgYXJlIHRoZQotICAgIC8vIHBhcnNlciEKLSAgICB2aXJ0dWFsIHZvaWQgZGVw
cmVjYXRlZFBhcnNlckFkZENoaWxkKFBhc3NSZWZQdHI8Tm9kZT4pOwotCiAgICAgdm9pZCByZW1v
dmVCZXR3ZWVuKE5vZGUqIHByZXZpb3VzQ2hpbGQsIE5vZGUqIG5leHRDaGlsZCwgTm9kZSogb2xk
Q2hpbGQpOwogICAgIHZvaWQgaW5zZXJ0QmVmb3JlQ29tbW9uKE5vZGUqIG5leHRDaGlsZCwgTm9k
ZSogb2xkQ2hpbGQpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZS5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZS5jcHAKaW5kZXggYzk1OTdmYi4uZTI2ZGQ1MSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL05vZGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2RvbS9Ob2RlLmNwcApAQCAtNzUyLDEwICs3NTIsNiBAQCBjb25zdCBBdG9taWNTdHJpbmcmIE5v
ZGU6OnZpcnR1YWxOYW1lc3BhY2VVUkkoKSBjb25zdAogICAgIHJldHVybiBudWxsQXRvbTsKIH0K
IAotdm9pZCBOb2RlOjpkZXByZWNhdGVkUGFyc2VyQWRkQ2hpbGQoUGFzc1JlZlB0cjxOb2RlPikK
LXsKLX0KLQogYm9vbCBOb2RlOjppc0NvbnRlbnRFZGl0YWJsZSgpIGNvbnN0CiB7CiAgICAgZG9j
dW1lbnQoKS0+dXBkYXRlTGF5b3V0SWdub3JlUGVuZGluZ1N0eWxlc2hlZXRzKCk7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZS5oIGIvU291cmNlL1dlYkNvcmUvZG9tL05vZGUu
aAppbmRleCA1ZmZiNGNjLi42ZjYxMTVkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20v
Tm9kZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlLmgKQEAgLTI2MCw5ICsyNjAsNiBA
QCBwdWJsaWM6CiAgICAgCiAgICAgYm9vbCBpblNhbWVDb250YWluaW5nQmxvY2tGbG93RWxlbWVu
dChOb2RlKik7CiAKLSAgICAvLyBGSVhNRTogQWxsIGNhbGxlcnMgb2YgdGhpcyBmdW5jdGlvbiBh
cmUgYWxtb3N0IGNlcnRhaW5seSB3cm9uZyEKLSAgICB2aXJ0dWFsIHZvaWQgZGVwcmVjYXRlZFBh
cnNlckFkZENoaWxkKFBhc3NSZWZQdHI8Tm9kZT4pOwotCiAgICAgLy8gQ2FsbGVkIGJ5IHRoZSBw
YXJzZXIgd2hlbiB0aGlzIGVsZW1lbnQncyBjbG9zZSB0YWcgaXMgcmVhY2hlZCwKICAgICAvLyBz
aWduYWxpbmcgdGhhdCBhbGwgY2hpbGQgdGFncyBoYXZlIGJlZW4gcGFyc2VkIGFuZCBhZGRlZC4K
ICAgICAvLyBUaGlzIGlzIG5lZWRlZCBmb3IgPGFwcGxldD4gYW5kIDxvYmplY3Q+IGVsZW1lbnRz
LCB3aGljaCBjYW4ndCBsYXkgdGhlbXNlbHZlcyBvdXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2RvbS9YTUxEb2N1bWVudFBhcnNlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vWE1MRG9j
dW1lbnRQYXJzZXIuY3BwCmluZGV4IGJmYmQ4OTIuLjllOWJiMTkgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2RvbS9YTUxEb2N1bWVudFBhcnNlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
ZG9tL1hNTERvY3VtZW50UGFyc2VyLmNwcApAQCAtNjgsNyArNjgsNyBAQCB1c2luZyBuYW1lc3Bh
Y2UgSFRNTE5hbWVzOwogCiBjb25zdCBpbnQgbWF4RXJyb3JzID0gMjU7CiAKLXZvaWQgWE1MRG9j
dW1lbnRQYXJzZXI6OnB1c2hDdXJyZW50Tm9kZShOb2RlKiBuKQordm9pZCBYTUxEb2N1bWVudFBh
cnNlcjo6cHVzaEN1cnJlbnROb2RlKENvbnRhaW5lck5vZGUqIG4pCiB7CiAgICAgQVNTRVJUKG4p
OwogICAgIEFTU0VSVChtX2N1cnJlbnROb2RlKTsKQEAgLTk4LDYgKzk4LDcgQEAgdm9pZCBYTUxE
b2N1bWVudFBhcnNlcjo6Y2xlYXJDdXJyZW50Tm9kZVN0YWNrKCkKICAgICBpZiAobV9jdXJyZW50
Tm9kZSAmJiBtX2N1cnJlbnROb2RlICE9IGRvY3VtZW50KCkpCiAgICAgICAgIG1fY3VycmVudE5v
ZGUtPmRlcmVmKCk7CiAgICAgbV9jdXJyZW50Tm9kZSA9IDA7CisgICAgbV90ZXJtaW5hbFRleHRO
b2RlID0gMDsKIAogICAgIGlmIChtX2N1cnJlbnROb2RlU3RhY2suc2l6ZSgpKSB7IC8vIEFib3J0
ZWQgcGFyc2luZy4KICAgICAgICAgZm9yIChzaXplX3QgaSA9IG1fY3VycmVudE5vZGVTdGFjay5z
aXplKCkgLSAxOyBpICE9IDA7IC0taSkKQEAgLTE2Nyw5ICsxNjgsOSBAQCB2b2lkIFhNTERvY3Vt
ZW50UGFyc2VyOjplbnRlclRleHQoKQogI2lmICFVU0UoUVhNTFNUUkVBTSkKICAgICBBU1NFUlQo
bV9idWZmZXJlZFRleHQuc2l6ZSgpID09IDApOwogI2VuZGlmCi0gICAgUmVmUHRyPE5vZGU+IG5l
d05vZGUgPSBUZXh0OjpjcmVhdGUoZG9jdW1lbnQoKSwgIiIpOwotICAgIG1fY3VycmVudE5vZGUt
PmRlcHJlY2F0ZWRQYXJzZXJBZGRDaGlsZChuZXdOb2RlLmdldCgpKTsKLSAgICBwdXNoQ3VycmVu
dE5vZGUobmV3Tm9kZS5nZXQoKSk7CisgICAgQVNTRVJUKCFtX3Rlcm1pbmFsVGV4dE5vZGUpOwor
ICAgIG1fdGVybWluYWxUZXh0Tm9kZSA9IFRleHQ6OmNyZWF0ZShkb2N1bWVudCgpLCAiIik7Cisg
ICAgbV9jdXJyZW50Tm9kZS0+cGFyc2VyQWRkQ2hpbGQobV90ZXJtaW5hbFRleHROb2RlLmdldCgp
KTsKIH0KIAogI2lmICFVU0UoUVhNTFNUUkVBTSkKQEAgLTE4NSwyMCArMTg2LDIwIEBAIHZvaWQg
WE1MRG9jdW1lbnRQYXJzZXI6OmV4aXRUZXh0KCkKICAgICBpZiAoaXNTdG9wcGVkKCkpCiAgICAg
ICAgIHJldHVybjsKIAotICAgIGlmICghbV9jdXJyZW50Tm9kZSB8fCAhbV9jdXJyZW50Tm9kZS0+
aXNUZXh0Tm9kZSgpKQorICAgIGlmICghbV90ZXJtaW5hbFRleHROb2RlKQogICAgICAgICByZXR1
cm47CiAKICNpZiAhVVNFKFFYTUxTVFJFQU0pCiAgICAgRXhjZXB0aW9uQ29kZSBlYyA9IDA7Ci0g
ICAgc3RhdGljX2Nhc3Q8VGV4dCo+KG1fY3VycmVudE5vZGUpLT5hcHBlbmREYXRhKHRvU3RyaW5n
KG1fYnVmZmVyZWRUZXh0LmRhdGEoKSwgbV9idWZmZXJlZFRleHQuc2l6ZSgpKSwgZWMpOworICAg
IG1fdGVybWluYWxUZXh0Tm9kZS0+YXBwZW5kRGF0YSh0b1N0cmluZyhtX2J1ZmZlcmVkVGV4dC5k
YXRhKCksIG1fYnVmZmVyZWRUZXh0LnNpemUoKSksIGVjKTsKICAgICBWZWN0b3I8eG1sQ2hhcj4g
ZW1wdHk7CiAgICAgbV9idWZmZXJlZFRleHQuc3dhcChlbXB0eSk7CiAjZW5kaWYKIAotICAgIGlm
IChtX3ZpZXcgJiYgbV9jdXJyZW50Tm9kZSAmJiAhbV9jdXJyZW50Tm9kZS0+YXR0YWNoZWQoKSkK
LSAgICAgICAgbV9jdXJyZW50Tm9kZS0+YXR0YWNoKCk7CisgICAgaWYgKG1fdmlldyAmJiAhbV90
ZXJtaW5hbFRleHROb2RlLT5hdHRhY2hlZCgpKQorICAgICAgICBtX3Rlcm1pbmFsVGV4dE5vZGUt
PmF0dGFjaCgpOwogCi0gICAgcG9wQ3VycmVudE5vZGUoKTsKKyAgICBtX3Rlcm1pbmFsVGV4dE5v
ZGUgPSAwOwogfQogCiB2b2lkIFhNTERvY3VtZW50UGFyc2VyOjpkZXRhY2goKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvZG9tL1hNTERvY3VtZW50UGFyc2VyLmggYi9Tb3VyY2UvV2ViQ29y
ZS9kb20vWE1MRG9jdW1lbnRQYXJzZXIuaAppbmRleCAyMDQzYWRkLi45YmY5OWU0IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vWE1MRG9jdW1lbnRQYXJzZXIuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9kb20vWE1MRG9jdW1lbnRQYXJzZXIuaApAQCAtNDMsNyArNDMsNyBAQAogCiBuYW1l
c3BhY2UgV2ViQ29yZSB7CiAKLSAgICBjbGFzcyBOb2RlOworICAgIGNsYXNzIENvbnRhaW5lck5v
ZGU7CiAgICAgY2xhc3MgQ2FjaGVkU2NyaXB0OwogICAgIGNsYXNzIENhY2hlZFJlc291cmNlTG9h
ZGVyOwogICAgIGNsYXNzIERvY3VtZW50RnJhZ21lbnQ7CkBAIC01MSw2ICs1MSw3IEBAIG5hbWVz
cGFjZSBXZWJDb3JlIHsKICAgICBjbGFzcyBFbGVtZW50OwogICAgIGNsYXNzIEZyYW1lVmlldzsK
ICAgICBjbGFzcyBQZW5kaW5nQ2FsbGJhY2tzOworICAgIGNsYXNzIFRleHQ7CiAKICNpZiAhVVNF
KFFYTUxTVFJFQU0pCiAgICAgY2xhc3MgWE1MUGFyc2VyQ29udGV4dCA6IHB1YmxpYyBSZWZDb3Vu
dGVkPFhNTFBhcnNlckNvbnRleHQ+IHsKQEAgLTE2MSw3ICsxNjIsNyBAQCBwdWJsaWM6CiAgICAg
cHJpdmF0ZToKICAgICAgICAgdm9pZCBpbml0aWFsaXplUGFyc2VyQ29udGV4dChjb25zdCBjaGFy
KiBjaHVuayA9IDApOwogCi0gICAgICAgIHZvaWQgcHVzaEN1cnJlbnROb2RlKE5vZGUqKTsKKyAg
ICAgICAgdm9pZCBwdXNoQ3VycmVudE5vZGUoQ29udGFpbmVyTm9kZSopOwogICAgICAgICB2b2lk
IHBvcEN1cnJlbnROb2RlKCk7CiAgICAgICAgIHZvaWQgY2xlYXJDdXJyZW50Tm9kZVN0YWNrKCk7
CiAKQEAgLTE4Niw4ICsxODcsMTAgQEAgcHVibGljOgogICAgICAgICBPd25QdHI8UGVuZGluZ0Nh
bGxiYWNrcz4gbV9wZW5kaW5nQ2FsbGJhY2tzOwogICAgICAgICBWZWN0b3I8eG1sQ2hhcj4gbV9i
dWZmZXJlZFRleHQ7CiAjZW5kaWYKLSAgICAgICAgTm9kZSogbV9jdXJyZW50Tm9kZTsKLSAgICAg
ICAgVmVjdG9yPE5vZGUqPiBtX2N1cnJlbnROb2RlU3RhY2s7CisgICAgICAgIENvbnRhaW5lck5v
ZGUqIG1fY3VycmVudE5vZGU7CisgICAgICAgIFZlY3RvcjxDb250YWluZXJOb2RlKj4gbV9jdXJy
ZW50Tm9kZVN0YWNrOworCisgICAgICAgIFJlZlB0cjxUZXh0PiBtX3Rlcm1pbmFsVGV4dE5vZGU7
CiAKICAgICAgICAgYm9vbCBtX3Nhd0Vycm9yOwogICAgICAgICBib29sIG1fc2F3Q1NTOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL1hNTERvY3VtZW50UGFyc2VyTGlieG1sMi5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9kb20vWE1MRG9jdW1lbnRQYXJzZXJMaWJ4bWwyLmNwcAppbmRleCAy
NDdhYTk0Li4xNjQ0NmUwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vWE1MRG9jdW1l
bnRQYXJzZXJMaWJ4bWwyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vWE1MRG9jdW1lbnRQ
YXJzZXJMaWJ4bWwyLmNwcApAQCAtODIzLDcgKzgyMyw3IEBAIHZvaWQgWE1MRG9jdW1lbnRQYXJz
ZXI6OnN0YXJ0RWxlbWVudE5zKGNvbnN0IHhtbENoYXIqIHhtbExvY2FsTmFtZSwgY29uc3QgeG1s
Q2hhCiAgICAgaWYgKHNjcmlwdEVsZW1lbnQpCiAgICAgICAgIG1fc2NyaXB0U3RhcnRQb3NpdGlv
biA9IHRleHRQb3NpdGlvbk9uZUJhc2VkKCk7CiAKLSAgICBtX2N1cnJlbnROb2RlLT5kZXByZWNh
dGVkUGFyc2VyQWRkQ2hpbGQobmV3RWxlbWVudC5nZXQoKSk7CisgICAgbV9jdXJyZW50Tm9kZS0+
cGFyc2VyQWRkQ2hpbGQobmV3RWxlbWVudC5nZXQoKSk7CiAKICAgICBwdXNoQ3VycmVudE5vZGUo
bmV3RWxlbWVudC5nZXQoKSk7CiAgICAgaWYgKG1fdmlldyAmJiAhbmV3RWxlbWVudC0+YXR0YWNo
ZWQoKSkKQEAgLTg1MCw3ICs4NTAsNyBAQCB2b2lkIFhNTERvY3VtZW50UGFyc2VyOjplbmRFbGVt
ZW50TnMoKQogCiAgICAgZXhpdFRleHQoKTsKIAotICAgIE5vZGUqIG4gPSBtX2N1cnJlbnROb2Rl
OworICAgIENvbnRhaW5lck5vZGUqIG4gPSBtX2N1cnJlbnROb2RlOwogICAgIG4tPmZpbmlzaFBh
cnNpbmdDaGlsZHJlbigpOwogCiAgICAgaWYgKG1fc2NyaXB0aW5nUGVybWlzc2lvbiA9PSBGcmFn
bWVudFNjcmlwdGluZ05vdEFsbG93ZWQgJiYgbi0+aXNFbGVtZW50Tm9kZSgpICYmIHRvU2NyaXB0
RWxlbWVudChzdGF0aWNfY2FzdDxFbGVtZW50Kj4obikpKSB7CkBAIC05MjksNyArOTI5LDcgQEAg
dm9pZCBYTUxEb2N1bWVudFBhcnNlcjo6Y2hhcmFjdGVycyhjb25zdCB4bWxDaGFyKiBzLCBpbnQg
bGVuKQogICAgICAgICByZXR1cm47CiAgICAgfQogCi0gICAgaWYgKCFtX2N1cnJlbnROb2RlLT5p
c1RleHROb2RlKCkpCisgICAgaWYgKCFtX3Rlcm1pbmFsVGV4dE5vZGUpCiAgICAgICAgIGVudGVy
VGV4dCgpOwogICAgIG1fYnVmZmVyZWRUZXh0LmFwcGVuZChzLCBsZW4pOwogfQpAQCAtOTc5LDcg
Kzk3OSw3IEBAIHZvaWQgWE1MRG9jdW1lbnRQYXJzZXI6OnByb2Nlc3NpbmdJbnN0cnVjdGlvbihj
b25zdCB4bWxDaGFyKiB0YXJnZXQsIGNvbnN0IHhtbENoCiAKICAgICBwaS0+c2V0Q3JlYXRlZEJ5
UGFyc2VyKHRydWUpOwogCi0gICAgbV9jdXJyZW50Tm9kZS0+ZGVwcmVjYXRlZFBhcnNlckFkZENo
aWxkKHBpLmdldCgpKTsKKyAgICBtX2N1cnJlbnROb2RlLT5wYXJzZXJBZGRDaGlsZChwaS5nZXQo
KSk7CiAgICAgaWYgKG1fdmlldyAmJiAhcGktPmF0dGFjaGVkKCkpCiAgICAgICAgIHBpLT5hdHRh
Y2goKTsKIApAQCAtMTAwNiw4ICsxMDA2LDggQEAgdm9pZCBYTUxEb2N1bWVudFBhcnNlcjo6Y2Rh
dGFCbG9jayhjb25zdCB4bWxDaGFyKiBzLCBpbnQgbGVuKQogCiAgICAgZXhpdFRleHQoKTsKIAot
ICAgIFJlZlB0cjxOb2RlPiBuZXdOb2RlID0gQ0RBVEFTZWN0aW9uOjpjcmVhdGUoZG9jdW1lbnQo
KSwgdG9TdHJpbmcocywgbGVuKSk7Ci0gICAgbV9jdXJyZW50Tm9kZS0+ZGVwcmVjYXRlZFBhcnNl
ckFkZENoaWxkKG5ld05vZGUuZ2V0KCkpOworICAgIFJlZlB0cjxDREFUQVNlY3Rpb24+IG5ld05v
ZGUgPSBDREFUQVNlY3Rpb246OmNyZWF0ZShkb2N1bWVudCgpLCB0b1N0cmluZyhzLCBsZW4pKTsK
KyAgICBtX2N1cnJlbnROb2RlLT5wYXJzZXJBZGRDaGlsZChuZXdOb2RlLmdldCgpKTsKICAgICBp
ZiAobV92aWV3ICYmICFuZXdOb2RlLT5hdHRhY2hlZCgpKQogICAgICAgICBuZXdOb2RlLT5hdHRh
Y2goKTsKIH0KQEAgLTEwMjQsOCArMTAyNCw4IEBAIHZvaWQgWE1MRG9jdW1lbnRQYXJzZXI6OmNv
bW1lbnQoY29uc3QgeG1sQ2hhciogcykKIAogICAgIGV4aXRUZXh0KCk7CiAKLSAgICBSZWZQdHI8
Tm9kZT4gbmV3Tm9kZSA9IENvbW1lbnQ6OmNyZWF0ZShkb2N1bWVudCgpLCB0b1N0cmluZyhzKSk7
Ci0gICAgbV9jdXJyZW50Tm9kZS0+ZGVwcmVjYXRlZFBhcnNlckFkZENoaWxkKG5ld05vZGUuZ2V0
KCkpOworICAgIFJlZlB0cjxDb21tZW50PiBuZXdOb2RlID0gQ29tbWVudDo6Y3JlYXRlKGRvY3Vt
ZW50KCksIHRvU3RyaW5nKHMpKTsKKyAgICBtX2N1cnJlbnROb2RlLT5wYXJzZXJBZGRDaGlsZChu
ZXdOb2RlLmdldCgpKTsKICAgICBpZiAobV92aWV3ICYmICFuZXdOb2RlLT5hdHRhY2hlZCgpKQog
ICAgICAgICBuZXdOb2RlLT5hdHRhY2goKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2RvbS9YTUxEb2N1bWVudFBhcnNlclF0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9YTUxEb2N1
bWVudFBhcnNlclF0LmNwcAppbmRleCAzNjY0MjI3Li42Y2QyMzBjIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9kb20vWE1MRG9jdW1lbnRQYXJzZXJRdC5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvZG9tL1hNTERvY3VtZW50UGFyc2VyUXQuY3BwCkBAIC00MjUsMTIgKzQyNSwxMiBAQCB2b2lk
IFhNTERvY3VtZW50UGFyc2VyOjpwYXJzZSgpCiAgICAgICAgICAgICAgICApIHsKICAgICAgICAg
ICAgICAgICBRU3RyaW5nIGVudGl0eSA9IG1fc3RyZWFtLm5hbWUoKS50b1N0cmluZygpOwogICAg
ICAgICAgICAgICAgIFVDaGFyIGMgPSBkZWNvZGVOYW1lZEVudGl0eShlbnRpdHkudG9VdGY4KCku
Y29uc3REYXRhKCkpOwotICAgICAgICAgICAgICAgIGlmICghbV9jdXJyZW50Tm9kZS0+aXNUZXh0
Tm9kZSgpKQorICAgICAgICAgICAgICAgIGlmICghbV90ZXJtaW5hbFRleHROb2RlKQogICAgICAg
ICAgICAgICAgICAgICBlbnRlclRleHQoKTsKICAgICAgICAgICAgICAgICBFeGNlcHRpb25Db2Rl
IGVjID0gMDsKICAgICAgICAgICAgICAgICBTdHJpbmcgc3RyKCZjLCAxKTsKICAgICAgICAgICAg
ICAgICAvLyBxRGVidWcoKTw8IiAtLS0tLS0tIGFkZGluZyBlbnRpdHkgIjw8c3RyOwotICAgICAg
ICAgICAgICAgIHN0YXRpY19jYXN0PFRleHQqPihtX2N1cnJlbnROb2RlKS0+YXBwZW5kRGF0YShz
dHIsIGVjKTsKKyAgICAgICAgICAgICAgICBtX3Rlcm1pbmFsVGV4dE5vZGUtPmFwcGVuZERhdGEo
c3RyLCBlYyk7CiAgICAgICAgICAgICB9CiAgICAgICAgIH0KICAgICAgICAgICAgIGJyZWFrOwpA
QCAtNTMzLDcgKzUzMyw3IEBAIHZvaWQgWE1MRG9jdW1lbnRQYXJzZXI6OnBhcnNlU3RhcnRFbGVt
ZW50KCkKICAgICBpZiAoc2NyaXB0RWxlbWVudCkKICAgICAgICAgbV9zY3JpcHRTdGFydFBvc2l0
aW9uID0gdGV4dFBvc2l0aW9uT25lQmFzZWQoKTsKIAotICAgIG1fY3VycmVudE5vZGUtPmRlcHJl
Y2F0ZWRQYXJzZXJBZGRDaGlsZChuZXdFbGVtZW50LmdldCgpKTsKKyAgICBtX2N1cnJlbnROb2Rl
LT5wYXJzZXJBZGRDaGlsZChuZXdFbGVtZW50LmdldCgpKTsKIAogICAgIHB1c2hDdXJyZW50Tm9k
ZShuZXdFbGVtZW50LmdldCgpKTsKICAgICBpZiAobV92aWV3ICYmICFuZXdFbGVtZW50LT5hdHRh
Y2hlZCgpKQpAQCAtNTUyLDcgKzU1Miw3IEBAIHZvaWQgWE1MRG9jdW1lbnRQYXJzZXI6OnBhcnNl
RW5kRWxlbWVudCgpCiB7CiAgICAgZXhpdFRleHQoKTsKIAotICAgIE5vZGUqIG4gPSBtX2N1cnJl
bnROb2RlOworICAgIENvbnRhaW5lck5vZGUqIG4gPSBtX2N1cnJlbnROb2RlOwogICAgIG4tPmZp
bmlzaFBhcnNpbmdDaGlsZHJlbigpOwogCiAgICAgaWYgKG1fc2NyaXB0aW5nUGVybWlzc2lvbiA9
PSBGcmFnbWVudFNjcmlwdGluZ05vdEFsbG93ZWQgJiYgbi0+aXNFbGVtZW50Tm9kZSgpICYmIHRv
U2NyaXB0RWxlbWVudChzdGF0aWNfY2FzdDxFbGVtZW50Kj4obikpKSB7CkBAIC02MTMsMTAgKzYx
MywxMCBAQCB2b2lkIFhNTERvY3VtZW50UGFyc2VyOjpwYXJzZUVuZEVsZW1lbnQoKQogCiB2b2lk
IFhNTERvY3VtZW50UGFyc2VyOjpwYXJzZUNoYXJhY3RlcnMoKQogewotICAgIGlmICghbV9jdXJy
ZW50Tm9kZS0+aXNUZXh0Tm9kZSgpKQorICAgIGlmICghbV90ZXJtaW5hbFRleHROb2RlKQogICAg
ICAgICBlbnRlclRleHQoKTsKICAgICBFeGNlcHRpb25Db2RlIGVjID0gMDsKLSAgICBzdGF0aWNf
Y2FzdDxUZXh0Kj4obV9jdXJyZW50Tm9kZSktPmFwcGVuZERhdGEobV9zdHJlYW0udGV4dCgpLCBl
Yyk7CisgICAgbV90ZXJtaW5hbFRleHROb2RlLT5hcHBlbmREYXRhKG1fc3RyZWFtLnRleHQoKSwg
ZWMpOwogfQogCiB2b2lkIFhNTERvY3VtZW50UGFyc2VyOjpwYXJzZVByb2Nlc3NpbmdJbnN0cnVj
dGlvbigpCkBAIC02MzMsNyArNjMzLDcgQEAgdm9pZCBYTUxEb2N1bWVudFBhcnNlcjo6cGFyc2VQ
cm9jZXNzaW5nSW5zdHJ1Y3Rpb24oKQogCiAgICAgcGktPnNldENyZWF0ZWRCeVBhcnNlcih0cnVl
KTsKIAotICAgIG1fY3VycmVudE5vZGUtPmRlcHJlY2F0ZWRQYXJzZXJBZGRDaGlsZChwaS5nZXQo
KSk7CisgICAgbV9jdXJyZW50Tm9kZS0+cGFyc2VyQWRkQ2hpbGQocGkuZ2V0KCkpOwogICAgIGlm
IChtX3ZpZXcgJiYgIXBpLT5hdHRhY2hlZCgpKQogICAgICAgICBwaS0+YXR0YWNoKCk7CiAKQEAg
LTY1Miw5ICs2NTIsOSBAQCB2b2lkIFhNTERvY3VtZW50UGFyc2VyOjpwYXJzZUNkYXRhKCkKIHsK
ICAgICBleGl0VGV4dCgpOwogCi0gICAgUmVmUHRyPE5vZGU+IG5ld05vZGUgPSBDREFUQVNlY3Rp
b246OmNyZWF0ZShkb2N1bWVudCgpLCBtX3N0cmVhbS50ZXh0KCkpOworICAgIFJlZlB0cjxDREFU
QVNlY3Rpb24+IG5ld05vZGUgPSBDREFUQVNlY3Rpb246OmNyZWF0ZShkb2N1bWVudCgpLCBtX3N0
cmVhbS50ZXh0KCkpOwogCi0gICAgbV9jdXJyZW50Tm9kZS0+ZGVwcmVjYXRlZFBhcnNlckFkZENo
aWxkKG5ld05vZGUuZ2V0KCkpOworICAgIG1fY3VycmVudE5vZGUtPnBhcnNlckFkZENoaWxkKG5l
d05vZGUuZ2V0KCkpOwogICAgIGlmIChtX3ZpZXcgJiYgIW5ld05vZGUtPmF0dGFjaGVkKCkpCiAg
ICAgICAgIG5ld05vZGUtPmF0dGFjaCgpOwogfQpAQCAtNjYzLDkgKzY2Myw5IEBAIHZvaWQgWE1M
RG9jdW1lbnRQYXJzZXI6OnBhcnNlQ29tbWVudCgpCiB7CiAgICAgZXhpdFRleHQoKTsKIAotICAg
IFJlZlB0cjxOb2RlPiBuZXdOb2RlID0gQ29tbWVudDo6Y3JlYXRlKGRvY3VtZW50KCksIG1fc3Ry
ZWFtLnRleHQoKSk7CisgICAgUmVmUHRyPENvbW1lbnQ+IG5ld05vZGUgPSBDb21tZW50OjpjcmVh
dGUoZG9jdW1lbnQoKSwgbV9zdHJlYW0udGV4dCgpKTsKIAotICAgIG1fY3VycmVudE5vZGUtPmRl
cHJlY2F0ZWRQYXJzZXJBZGRDaGlsZChuZXdOb2RlLmdldCgpKTsKKyAgICBtX2N1cnJlbnROb2Rl
LT5wYXJzZXJBZGRDaGlsZChuZXdOb2RlLmdldCgpKTsKICAgICBpZiAobV92aWV3ICYmICFuZXdO
b2RlLT5hdHRhY2hlZCgpKQogICAgICAgICBuZXdOb2RlLT5hdHRhY2goKTsKIH0KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L1RleHRDb250cm9sSW5uZXJFbGVtZW50cy5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9UZXh0Q29udHJvbElubmVyRWxlbWVudHMu
Y3BwCmluZGV4IDAwZmM2NjcuLmZkMTk5NGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0
bWwvc2hhZG93L1RleHRDb250cm9sSW5uZXJFbGVtZW50cy5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvaHRtbC9zaGFkb3cvVGV4dENvbnRyb2xJbm5lckVsZW1lbnRzLmNwcApAQCAtNzUsMTAgKzc1
LDEwIEBAIHZvaWQgVGV4dENvbnRyb2xJbm5lckVsZW1lbnQ6OmF0dGFjaElubmVyRWxlbWVudChO
b2RlKiBwYXJlbnQsIFBhc3NSZWZQdHI8UmVuZGVyCiAgICAgc2V0SW5Eb2N1bWVudCgpOwogCiAg
ICAgLy8gRm9yIGVsZW1lbnRzIG5vdCB5ZXQgaW4gc2hhZG93IERPTSwgYWRkIHRoZSBub2RlIHRv
IHRoZSBET00gbm9ybWFsbHkuCi0gICAgaWYgKCFpc1NoYWRvd1Jvb3QoKSkgeworICAgIGlmICgh
aXNTaGFkb3dSb290KCkgJiYgcGFyZW50LT5pc0NvbnRhaW5lck5vZGUoKSkgewogICAgICAgICAv
LyBGSVhNRTogVGhpcyBjb2RlIHNlZW1zIHZlcnkgd3JvbmcuICBXaHkgYXJlIHdlIG1hZ2ljYWxs
eSBhZGRpbmcgfHRoaXN8IHRvIHRoZSBET00gaGVyZT8KICAgICAgICAgLy8gICAgICAgIFdlIHNo
b3VsZG4ndCBiZSBjYWxsaW5nIHBhcnNlciBBUEkgbWV0aG9kcyBvdXRzaWRlIG9mIHRoZSBwYXJz
ZXIhCi0gICAgICAgIHBhcmVudC0+ZGVwcmVjYXRlZFBhcnNlckFkZENoaWxkKHRoaXMpOworICAg
ICAgICB0b0NvbnRhaW5lck5vZGUocGFyZW50KS0+cGFyc2VyQWRkQ2hpbGQodGhpcyk7CiAgICAg
fQogCiAgICAgLy8gQWRkIHRoZSByZW5kZXJlciB0byB0aGUgcmVuZGVyIHRyZWUK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>93533</attachid>
            <date>2011-05-13 17:00:04 -0700</date>
            <delta_ts>2011-05-18 17:33:05 -0700</delta_ts>
            <desc>Updated patch with proper style.</desc>
            <filename>bug-60818-20110513170003.patch</filename>
            <type>text/plain</type>
            <size>15343</size>
            <attacher name="Julien Chaffraix">jchaffraix</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogODY0MzYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCAyY2QyOGIzYzk3N2E1NDdk
OTc5NDUxYmEwZjk1M2Y0MDE1NjFkMzFhLi4zYTQxMjIzNTE3YjQ0NWU0MzVhYzdiYTY0ZGNlNDFm
NDc5ZDZlZDU0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNTUgQEAKKzIwMTEtMDUtMTMgIEp1bGll
biBDaGFmZnJhaXggIDxqY2hhZmZyYWl4QGNvZGVhdXJvcmEub3JnPgorCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFJlbW92ZSBOb2RlOjpkZXByZWNhdGVk
UGFyc2VyQWRkQ2hpbGQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTYwODE4CisKKyAgICAgICAgUmVmYWN0b3Jpbmcgb25seSBzbyBubyBuZXcgdGVzdHMu
CisKKyAgICAgICAgKiBkb20vQ29udGFpbmVyTm9kZS5jcHA6CisgICAgICAgICogZG9tL0NvbnRh
aW5lck5vZGUuaDoKKyAgICAgICAgKiBkb20vTm9kZS5jcHA6CisgICAgICAgICogZG9tL05vZGUu
aDoKKyAgICAgICAgUmVtb3ZlZCBkZXByZWNhdGVkUGFyc2VyQWRkQ2hpbGQuCisKKyAgICAgICAg
KiBkb20vWE1MRG9jdW1lbnRQYXJzZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6WE1MRG9jdW1l
bnRQYXJzZXI6OnB1c2hDdXJyZW50Tm9kZSk6IFVwZGF0ZWQgdG8gdXNlIGEgQ29udGFpbmVyTm9k
ZS4KKyAgICAgICAgKFdlYkNvcmU6OlhNTERvY3VtZW50UGFyc2VyOjpjbGVhckN1cnJlbnROb2Rl
U3RhY2spOiBXZSBub3cgbmVlZCB0byBjbGVhcgorICAgICAgICB1cCBtX3Rlcm1pbmFsVGV4dE5v
ZGUgdG9vLgorCisgICAgICAgIChXZWJDb3JlOjpYTUxEb2N1bWVudFBhcnNlcjo6ZW50ZXJUZXh0
KToKKyAgICAgICAgKFdlYkNvcmU6OlhNTERvY3VtZW50UGFyc2VyOjpleGl0VGV4dCk6CisgICAg
ICAgIFRob3NlIG1ldGhvZHMgd2VyZSB1cGRhdGVkIHRvIHVzZSBtX3Rlcm1pbmFsVGV4dE5vZGUg
aW5zdGVhZCBvZiBtX2N1cnJlbnROb2RlLgorCisgICAgICAgICogZG9tL1hNTERvY3VtZW50UGFy
c2VyLmg6CisgICAgICAgIENoYW5nZWQgdGhlIGN1cnJlbnROb2RlIGxvZ2ljIHRvIHVzZSBDb250
YWluZXJOb2RlLiBBbHNvIGZpeGVkIHRoZSBzdHlsZSBvZiB0aGUKKyAgICAgICAgZm9yd2FyZCBk
ZWNsYXJhdGlvbnMuCisKKyAgICAgICAgKiBkb20vWE1MRG9jdW1lbnRQYXJzZXJMaWJ4bWwyLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OlhNTERvY3VtZW50UGFyc2VyOjpzdGFydEVsZW1lbnROcyk6
CisgICAgICAgIChXZWJDb3JlOjpYTUxEb2N1bWVudFBhcnNlcjo6ZW5kRWxlbWVudE5zKToKKyAg
ICAgICAgKFdlYkNvcmU6OlhNTERvY3VtZW50UGFyc2VyOjpjaGFyYWN0ZXJzKToKKyAgICAgICAg
KFdlYkNvcmU6OlhNTERvY3VtZW50UGFyc2VyOjpwcm9jZXNzaW5nSW5zdHJ1Y3Rpb24pOgorICAg
ICAgICAoV2ViQ29yZTo6WE1MRG9jdW1lbnRQYXJzZXI6OmNkYXRhQmxvY2spOgorICAgICAgICAo
V2ViQ29yZTo6WE1MRG9jdW1lbnRQYXJzZXI6OmNvbW1lbnQpOgorICAgICAgICAqIGRvbS9YTUxE
b2N1bWVudFBhcnNlclF0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlhNTERvY3VtZW50UGFyc2Vy
OjpwYXJzZSk6CisgICAgICAgIChXZWJDb3JlOjpYTUxEb2N1bWVudFBhcnNlcjo6cGFyc2VTdGFy
dEVsZW1lbnQpOgorICAgICAgICAoV2ViQ29yZTo6WE1MRG9jdW1lbnRQYXJzZXI6OnBhcnNlRW5k
RWxlbWVudCk6CisgICAgICAgIChXZWJDb3JlOjpYTUxEb2N1bWVudFBhcnNlcjo6cGFyc2VDaGFy
YWN0ZXJzKToKKyAgICAgICAgKFdlYkNvcmU6OlhNTERvY3VtZW50UGFyc2VyOjpwYXJzZVByb2Nl
c3NpbmdJbnN0cnVjdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpYTUxEb2N1bWVudFBhcnNlcjo6
cGFyc2VDZGF0YSk6CisgICAgICAgIChXZWJDb3JlOjpYTUxEb2N1bWVudFBhcnNlcjo6cGFyc2VD
b21tZW50KToKKyAgICAgICAgUmVtb3ZlZCB0aGUgY2FsbHMgdG8gZGVwcmVjYXRlZFBhcnNlckFk
ZENoaWxkLCBjaGFuZ2VkIHRoZSBjb2RlIHRvIHVzZQorICAgICAgICBtX3Rlcm1pbmFsVGV4dE5v
ZGUgd2hlbiBpdCBtYWRlIHNlbnNlIGFuZCB1c2VkIENvbnRhaW5lck5vZGUgaW5zdGVhZCBvZgor
ICAgICAgICBOb2RlIGZvciBtX2N1cnJlbnROb2RlLgorCisgICAgICAgICogaHRtbC9zaGFkb3cv
VGV4dENvbnRyb2xJbm5lckVsZW1lbnRzLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlRleHRDb250
cm9sSW5uZXJFbGVtZW50OjphdHRhY2hJbm5lckVsZW1lbnQpOgorICAgICAgICBBZGRlZCBhIGNo
ZWNrIGZvciBpc0NvbnRhaW5lck5vZGUgYW5kIGNhbGwgcGFyc2VyQWRkQ2hpbGQuIFRoaXMgbWF0
Y2hlcyB0aGUKKyAgICAgICAgcHJldmlvdXMgYmVoYXZpb3Igb2YgZGVwcmVjYXRlZFBhcnNlckFk
ZENoaWxkLgorCiAyMDExLTA1LTEzICBNYXJ0aW4gUm9iaW5zb24gIDxtcm9iaW5zb25AaWdhbGlh
LmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBieSBFcmljIFNlaWRlbC4KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2RvbS9Db250YWluZXJOb2RlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9D
b250YWluZXJOb2RlLmNwcAppbmRleCAzMmIwOTM2NWFlODQ5MGFiYjgwZGRjY2E4OWZmMWM3Mjhl
MDVhYzA2Li43NjFkZjc2Y2E4ODBjMzk3YjBkZDY0YTYwN2EzMzgzZDQ0YzU1MmE4IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vQ29udGFpbmVyTm9kZS5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvZG9tL0NvbnRhaW5lck5vZGUuY3BwCkBAIC02ODYsMTEgKzY4Niw2IEBAIHZvaWQgQ29u
dGFpbmVyTm9kZTo6cGFyc2VyQWRkQ2hpbGQoUGFzc1JlZlB0cjxOb2RlPiBuZXdDaGlsZCkKICAg
ICBjaGlsZHJlbkNoYW5nZWQodHJ1ZSwgbGFzdCwgMCwgMSk7CiB9CiAKLXZvaWQgQ29udGFpbmVy
Tm9kZTo6ZGVwcmVjYXRlZFBhcnNlckFkZENoaWxkKFBhc3NSZWZQdHI8Tm9kZT4gbm9kZSkKLXsK
LSAgICBwYXJzZXJBZGRDaGlsZChub2RlKTsKLX0KLQogdm9pZCBDb250YWluZXJOb2RlOjpzdXNw
ZW5kUG9zdEF0dGFjaENhbGxiYWNrcygpCiB7CiAgICAgaWYgKCFzX2F0dGFjaERlcHRoKSB7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vQ29udGFpbmVyTm9kZS5oIGIvU291cmNlL1dl
YkNvcmUvZG9tL0NvbnRhaW5lck5vZGUuaAppbmRleCA3NmViMWJkNzExMTRhNjBiNTY1NjdmYWE0
ZWZjOWNlODYwN2YwOGVkLi45ZjZkY2U1OTlmY2I4MTJmY2YwNzlmZDc4MDEyZmJlOWQxNGE1ZTk5
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vQ29udGFpbmVyTm9kZS5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2RvbS9Db250YWluZXJOb2RlLmgKQEAgLTEwMiwxMiArMTAyLDYgQEAgcHJv
dGVjdGVkOgogICAgIHZvaWQgc2V0TGFzdENoaWxkKE5vZGUqIGNoaWxkKSB7IG1fbGFzdENoaWxk
ID0gY2hpbGQ7IH0KIAogcHJpdmF0ZToKLSAgICAvLyBOZXZlciBjYWxsIHRoaXMgZnVuY3Rpb24g
ZGlyZWN0bHkuICBJZiB5b3UncmUgdHJ5aW5nIHRvIGNhbGwgdGhpcwotICAgIC8vIGZ1bmN0aW9u
LCB5b3VyIGNvZGUgaXMgZWl0aGVyIHdyb25nIG9yIHlvdSdyZSBzdXBwb3NlZCB0byBjYWxsCi0g
ICAgLy8gcGFyc2VyQWRkQ2hpbGQuICBQbGVhc2UgZG8gbm90IGNhbGwgcGFyc2VyQWRkQ2hpbGQg
dW5sZXNzIHlvdSBhcmUgdGhlCi0gICAgLy8gcGFyc2VyIQotICAgIHZpcnR1YWwgdm9pZCBkZXBy
ZWNhdGVkUGFyc2VyQWRkQ2hpbGQoUGFzc1JlZlB0cjxOb2RlPik7Ci0KICAgICB2b2lkIHJlbW92
ZUJldHdlZW4oTm9kZSogcHJldmlvdXNDaGlsZCwgTm9kZSogbmV4dENoaWxkLCBOb2RlKiBvbGRD
aGlsZCk7CiAgICAgdm9pZCBpbnNlcnRCZWZvcmVDb21tb24oTm9kZSogbmV4dENoaWxkLCBOb2Rl
KiBvbGRDaGlsZCk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlLmNwcAppbmRleCBjOTU5N2ZiNmNkYjIxYWU3ZGRkOTJm
ZDljNDQ0ZjBhZWYyYTA3ZmFhLi5lMjZkZDUxNjU0ZDJjMWM4NDYxNWRmMGY2ZTFhN2E5YmVlNTNl
MTNmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZS5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvZG9tL05vZGUuY3BwCkBAIC03NTIsMTAgKzc1Miw2IEBAIGNvbnN0IEF0b21pY1N0
cmluZyYgTm9kZTo6dmlydHVhbE5hbWVzcGFjZVVSSSgpIGNvbnN0CiAgICAgcmV0dXJuIG51bGxB
dG9tOwogfQogCi12b2lkIE5vZGU6OmRlcHJlY2F0ZWRQYXJzZXJBZGRDaGlsZChQYXNzUmVmUHRy
PE5vZGU+KQotewotfQotCiBib29sIE5vZGU6OmlzQ29udGVudEVkaXRhYmxlKCkgY29uc3QKIHsK
ICAgICBkb2N1bWVudCgpLT51cGRhdGVMYXlvdXRJZ25vcmVQZW5kaW5nU3R5bGVzaGVldHMoKTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlLmggYi9Tb3VyY2UvV2ViQ29yZS9k
b20vTm9kZS5oCmluZGV4IDVmZmI0Y2MxZjNjYzYxMWU2ZTE1Zjk0Yjk5YTFhZWMzZWNlMDMwNDku
LjZmNjExNWQ3YzRjYWNlZGY4ODhhZmQ3M2Y1MDRmYTMyOWYzMzgyOTAgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2RvbS9Ob2RlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL05vZGUuaApA
QCAtMjYwLDkgKzI2MCw2IEBAIHB1YmxpYzoKICAgICAKICAgICBib29sIGluU2FtZUNvbnRhaW5p
bmdCbG9ja0Zsb3dFbGVtZW50KE5vZGUqKTsKIAotICAgIC8vIEZJWE1FOiBBbGwgY2FsbGVycyBv
ZiB0aGlzIGZ1bmN0aW9uIGFyZSBhbG1vc3QgY2VydGFpbmx5IHdyb25nIQotICAgIHZpcnR1YWwg
dm9pZCBkZXByZWNhdGVkUGFyc2VyQWRkQ2hpbGQoUGFzc1JlZlB0cjxOb2RlPik7Ci0KICAgICAv
LyBDYWxsZWQgYnkgdGhlIHBhcnNlciB3aGVuIHRoaXMgZWxlbWVudCdzIGNsb3NlIHRhZyBpcyBy
ZWFjaGVkLAogICAgIC8vIHNpZ25hbGluZyB0aGF0IGFsbCBjaGlsZCB0YWdzIGhhdmUgYmVlbiBw
YXJzZWQgYW5kIGFkZGVkLgogICAgIC8vIFRoaXMgaXMgbmVlZGVkIGZvciA8YXBwbGV0PiBhbmQg
PG9iamVjdD4gZWxlbWVudHMsIHdoaWNoIGNhbid0IGxheSB0aGVtc2VsdmVzIG91dApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL1hNTERvY3VtZW50UGFyc2VyLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2RvbS9YTUxEb2N1bWVudFBhcnNlci5jcHAKaW5kZXggYmZiZDg5MjdjZDZhZmNlMDJl
OTI4YWMzNDUxMjFjMjUwOTE1ZDFlNi4uOWU5YmIxOTk1MDJjNjZhZjNmMzUxYjc2MjU1MjBkNGYy
YjU2OTA3YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL1hNTERvY3VtZW50UGFyc2Vy
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vWE1MRG9jdW1lbnRQYXJzZXIuY3BwCkBAIC02
OCw3ICs2OCw3IEBAIHVzaW5nIG5hbWVzcGFjZSBIVE1MTmFtZXM7CiAKIGNvbnN0IGludCBtYXhF
cnJvcnMgPSAyNTsKIAotdm9pZCBYTUxEb2N1bWVudFBhcnNlcjo6cHVzaEN1cnJlbnROb2RlKE5v
ZGUqIG4pCit2b2lkIFhNTERvY3VtZW50UGFyc2VyOjpwdXNoQ3VycmVudE5vZGUoQ29udGFpbmVy
Tm9kZSogbikKIHsKICAgICBBU1NFUlQobik7CiAgICAgQVNTRVJUKG1fY3VycmVudE5vZGUpOwpA
QCAtOTgsNiArOTgsNyBAQCB2b2lkIFhNTERvY3VtZW50UGFyc2VyOjpjbGVhckN1cnJlbnROb2Rl
U3RhY2soKQogICAgIGlmIChtX2N1cnJlbnROb2RlICYmIG1fY3VycmVudE5vZGUgIT0gZG9jdW1l
bnQoKSkKICAgICAgICAgbV9jdXJyZW50Tm9kZS0+ZGVyZWYoKTsKICAgICBtX2N1cnJlbnROb2Rl
ID0gMDsKKyAgICBtX3Rlcm1pbmFsVGV4dE5vZGUgPSAwOwogCiAgICAgaWYgKG1fY3VycmVudE5v
ZGVTdGFjay5zaXplKCkpIHsgLy8gQWJvcnRlZCBwYXJzaW5nLgogICAgICAgICBmb3IgKHNpemVf
dCBpID0gbV9jdXJyZW50Tm9kZVN0YWNrLnNpemUoKSAtIDE7IGkgIT0gMDsgLS1pKQpAQCAtMTY3
LDkgKzE2OCw5IEBAIHZvaWQgWE1MRG9jdW1lbnRQYXJzZXI6OmVudGVyVGV4dCgpCiAjaWYgIVVT
RShRWE1MU1RSRUFNKQogICAgIEFTU0VSVChtX2J1ZmZlcmVkVGV4dC5zaXplKCkgPT0gMCk7CiAj
ZW5kaWYKLSAgICBSZWZQdHI8Tm9kZT4gbmV3Tm9kZSA9IFRleHQ6OmNyZWF0ZShkb2N1bWVudCgp
LCAiIik7Ci0gICAgbV9jdXJyZW50Tm9kZS0+ZGVwcmVjYXRlZFBhcnNlckFkZENoaWxkKG5ld05v
ZGUuZ2V0KCkpOwotICAgIHB1c2hDdXJyZW50Tm9kZShuZXdOb2RlLmdldCgpKTsKKyAgICBBU1NF
UlQoIW1fdGVybWluYWxUZXh0Tm9kZSk7CisgICAgbV90ZXJtaW5hbFRleHROb2RlID0gVGV4dDo6
Y3JlYXRlKGRvY3VtZW50KCksICIiKTsKKyAgICBtX2N1cnJlbnROb2RlLT5wYXJzZXJBZGRDaGls
ZChtX3Rlcm1pbmFsVGV4dE5vZGUuZ2V0KCkpOwogfQogCiAjaWYgIVVTRShRWE1MU1RSRUFNKQpA
QCAtMTg1LDIwICsxODYsMjAgQEAgdm9pZCBYTUxEb2N1bWVudFBhcnNlcjo6ZXhpdFRleHQoKQog
ICAgIGlmIChpc1N0b3BwZWQoKSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgaWYgKCFtX2N1cnJl
bnROb2RlIHx8ICFtX2N1cnJlbnROb2RlLT5pc1RleHROb2RlKCkpCisgICAgaWYgKCFtX3Rlcm1p
bmFsVGV4dE5vZGUpCiAgICAgICAgIHJldHVybjsKIAogI2lmICFVU0UoUVhNTFNUUkVBTSkKICAg
ICBFeGNlcHRpb25Db2RlIGVjID0gMDsKLSAgICBzdGF0aWNfY2FzdDxUZXh0Kj4obV9jdXJyZW50
Tm9kZSktPmFwcGVuZERhdGEodG9TdHJpbmcobV9idWZmZXJlZFRleHQuZGF0YSgpLCBtX2J1ZmZl
cmVkVGV4dC5zaXplKCkpLCBlYyk7CisgICAgbV90ZXJtaW5hbFRleHROb2RlLT5hcHBlbmREYXRh
KHRvU3RyaW5nKG1fYnVmZmVyZWRUZXh0LmRhdGEoKSwgbV9idWZmZXJlZFRleHQuc2l6ZSgpKSwg
ZWMpOwogICAgIFZlY3Rvcjx4bWxDaGFyPiBlbXB0eTsKICAgICBtX2J1ZmZlcmVkVGV4dC5zd2Fw
KGVtcHR5KTsKICNlbmRpZgogCi0gICAgaWYgKG1fdmlldyAmJiBtX2N1cnJlbnROb2RlICYmICFt
X2N1cnJlbnROb2RlLT5hdHRhY2hlZCgpKQotICAgICAgICBtX2N1cnJlbnROb2RlLT5hdHRhY2go
KTsKKyAgICBpZiAobV92aWV3ICYmICFtX3Rlcm1pbmFsVGV4dE5vZGUtPmF0dGFjaGVkKCkpCisg
ICAgICAgIG1fdGVybWluYWxUZXh0Tm9kZS0+YXR0YWNoKCk7CiAKLSAgICBwb3BDdXJyZW50Tm9k
ZSgpOworICAgIG1fdGVybWluYWxUZXh0Tm9kZSA9IDA7CiB9CiAKIHZvaWQgWE1MRG9jdW1lbnRQ
YXJzZXI6OmRldGFjaCgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vWE1MRG9jdW1l
bnRQYXJzZXIuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9YTUxEb2N1bWVudFBhcnNlci5oCmluZGV4
IDIwNDNhZGRkNjJlMTJiNzMzMzc1ODM2ZWVmMWJhZDU3ZTgzM2E5OGIuLjZmMWNjYzNlNTdmMWEw
MmViYmI0YWY1MmE4ZGExYWZiYzQ2MzUyYWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Rv
bS9YTUxEb2N1bWVudFBhcnNlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9YTUxEb2N1bWVu
dFBhcnNlci5oCkBAIC00MywxNCArNDMsMTUgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi0g
ICAgY2xhc3MgTm9kZTsKLSAgICBjbGFzcyBDYWNoZWRTY3JpcHQ7Ci0gICAgY2xhc3MgQ2FjaGVk
UmVzb3VyY2VMb2FkZXI7Ci0gICAgY2xhc3MgRG9jdW1lbnRGcmFnbWVudDsKLSAgICBjbGFzcyBE
b2N1bWVudDsKLSAgICBjbGFzcyBFbGVtZW50OwotICAgIGNsYXNzIEZyYW1lVmlldzsKLSAgICBj
bGFzcyBQZW5kaW5nQ2FsbGJhY2tzOworY2xhc3MgQ29udGFpbmVyTm9kZTsKK2NsYXNzIENhY2hl
ZFNjcmlwdDsKK2NsYXNzIENhY2hlZFJlc291cmNlTG9hZGVyOworY2xhc3MgRG9jdW1lbnRGcmFn
bWVudDsKK2NsYXNzIERvY3VtZW50OworY2xhc3MgRWxlbWVudDsKK2NsYXNzIEZyYW1lVmlldzsK
K2NsYXNzIFBlbmRpbmdDYWxsYmFja3M7CitjbGFzcyBUZXh0OwogCiAjaWYgIVVTRShRWE1MU1RS
RUFNKQogICAgIGNsYXNzIFhNTFBhcnNlckNvbnRleHQgOiBwdWJsaWMgUmVmQ291bnRlZDxYTUxQ
YXJzZXJDb250ZXh0PiB7CkBAIC0xNjEsNyArMTYyLDcgQEAgcHVibGljOgogICAgIHByaXZhdGU6
CiAgICAgICAgIHZvaWQgaW5pdGlhbGl6ZVBhcnNlckNvbnRleHQoY29uc3QgY2hhciogY2h1bmsg
PSAwKTsKIAotICAgICAgICB2b2lkIHB1c2hDdXJyZW50Tm9kZShOb2RlKik7CisgICAgICAgIHZv
aWQgcHVzaEN1cnJlbnROb2RlKENvbnRhaW5lck5vZGUqKTsKICAgICAgICAgdm9pZCBwb3BDdXJy
ZW50Tm9kZSgpOwogICAgICAgICB2b2lkIGNsZWFyQ3VycmVudE5vZGVTdGFjaygpOwogCkBAIC0x
ODYsOCArMTg3LDEwIEBAIHB1YmxpYzoKICAgICAgICAgT3duUHRyPFBlbmRpbmdDYWxsYmFja3M+
IG1fcGVuZGluZ0NhbGxiYWNrczsKICAgICAgICAgVmVjdG9yPHhtbENoYXI+IG1fYnVmZmVyZWRU
ZXh0OwogI2VuZGlmCi0gICAgICAgIE5vZGUqIG1fY3VycmVudE5vZGU7Ci0gICAgICAgIFZlY3Rv
cjxOb2RlKj4gbV9jdXJyZW50Tm9kZVN0YWNrOworICAgICAgICBDb250YWluZXJOb2RlKiBtX2N1
cnJlbnROb2RlOworICAgICAgICBWZWN0b3I8Q29udGFpbmVyTm9kZSo+IG1fY3VycmVudE5vZGVT
dGFjazsKKworICAgICAgICBSZWZQdHI8VGV4dD4gbV90ZXJtaW5hbFRleHROb2RlOwogCiAgICAg
ICAgIGJvb2wgbV9zYXdFcnJvcjsKICAgICAgICAgYm9vbCBtX3Nhd0NTUzsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2RvbS9YTUxEb2N1bWVudFBhcnNlckxpYnhtbDIuY3BwIGIvU291cmNl
L1dlYkNvcmUvZG9tL1hNTERvY3VtZW50UGFyc2VyTGlieG1sMi5jcHAKaW5kZXggMjQ3YWE5NGIz
MDNmODNhNjQzMzgzNWJiZjU2ZjIyMGI2YzQ1ODg1MC4uMTY0NDZlMGJhNGJlYWZhZWVmMTIwNTIz
ZWYxMzUxYTI1M2YxOTA3MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL1hNTERvY3Vt
ZW50UGFyc2VyTGlieG1sMi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL1hNTERvY3VtZW50
UGFyc2VyTGlieG1sMi5jcHAKQEAgLTgyMyw3ICs4MjMsNyBAQCB2b2lkIFhNTERvY3VtZW50UGFy
c2VyOjpzdGFydEVsZW1lbnROcyhjb25zdCB4bWxDaGFyKiB4bWxMb2NhbE5hbWUsIGNvbnN0IHht
bENoYQogICAgIGlmIChzY3JpcHRFbGVtZW50KQogICAgICAgICBtX3NjcmlwdFN0YXJ0UG9zaXRp
b24gPSB0ZXh0UG9zaXRpb25PbmVCYXNlZCgpOwogCi0gICAgbV9jdXJyZW50Tm9kZS0+ZGVwcmVj
YXRlZFBhcnNlckFkZENoaWxkKG5ld0VsZW1lbnQuZ2V0KCkpOworICAgIG1fY3VycmVudE5vZGUt
PnBhcnNlckFkZENoaWxkKG5ld0VsZW1lbnQuZ2V0KCkpOwogCiAgICAgcHVzaEN1cnJlbnROb2Rl
KG5ld0VsZW1lbnQuZ2V0KCkpOwogICAgIGlmIChtX3ZpZXcgJiYgIW5ld0VsZW1lbnQtPmF0dGFj
aGVkKCkpCkBAIC04NTAsNyArODUwLDcgQEAgdm9pZCBYTUxEb2N1bWVudFBhcnNlcjo6ZW5kRWxl
bWVudE5zKCkKIAogICAgIGV4aXRUZXh0KCk7CiAKLSAgICBOb2RlKiBuID0gbV9jdXJyZW50Tm9k
ZTsKKyAgICBDb250YWluZXJOb2RlKiBuID0gbV9jdXJyZW50Tm9kZTsKICAgICBuLT5maW5pc2hQ
YXJzaW5nQ2hpbGRyZW4oKTsKIAogICAgIGlmIChtX3NjcmlwdGluZ1Blcm1pc3Npb24gPT0gRnJh
Z21lbnRTY3JpcHRpbmdOb3RBbGxvd2VkICYmIG4tPmlzRWxlbWVudE5vZGUoKSAmJiB0b1Njcmlw
dEVsZW1lbnQoc3RhdGljX2Nhc3Q8RWxlbWVudCo+KG4pKSkgewpAQCAtOTI5LDcgKzkyOSw3IEBA
IHZvaWQgWE1MRG9jdW1lbnRQYXJzZXI6OmNoYXJhY3RlcnMoY29uc3QgeG1sQ2hhciogcywgaW50
IGxlbikKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAotICAgIGlmICghbV9jdXJyZW50Tm9kZS0+
aXNUZXh0Tm9kZSgpKQorICAgIGlmICghbV90ZXJtaW5hbFRleHROb2RlKQogICAgICAgICBlbnRl
clRleHQoKTsKICAgICBtX2J1ZmZlcmVkVGV4dC5hcHBlbmQocywgbGVuKTsKIH0KQEAgLTk3OSw3
ICs5NzksNyBAQCB2b2lkIFhNTERvY3VtZW50UGFyc2VyOjpwcm9jZXNzaW5nSW5zdHJ1Y3Rpb24o
Y29uc3QgeG1sQ2hhciogdGFyZ2V0LCBjb25zdCB4bWxDaAogCiAgICAgcGktPnNldENyZWF0ZWRC
eVBhcnNlcih0cnVlKTsKIAotICAgIG1fY3VycmVudE5vZGUtPmRlcHJlY2F0ZWRQYXJzZXJBZGRD
aGlsZChwaS5nZXQoKSk7CisgICAgbV9jdXJyZW50Tm9kZS0+cGFyc2VyQWRkQ2hpbGQocGkuZ2V0
KCkpOwogICAgIGlmIChtX3ZpZXcgJiYgIXBpLT5hdHRhY2hlZCgpKQogICAgICAgICBwaS0+YXR0
YWNoKCk7CiAKQEAgLTEwMDYsOCArMTAwNiw4IEBAIHZvaWQgWE1MRG9jdW1lbnRQYXJzZXI6OmNk
YXRhQmxvY2soY29uc3QgeG1sQ2hhciogcywgaW50IGxlbikKIAogICAgIGV4aXRUZXh0KCk7CiAK
LSAgICBSZWZQdHI8Tm9kZT4gbmV3Tm9kZSA9IENEQVRBU2VjdGlvbjo6Y3JlYXRlKGRvY3VtZW50
KCksIHRvU3RyaW5nKHMsIGxlbikpOwotICAgIG1fY3VycmVudE5vZGUtPmRlcHJlY2F0ZWRQYXJz
ZXJBZGRDaGlsZChuZXdOb2RlLmdldCgpKTsKKyAgICBSZWZQdHI8Q0RBVEFTZWN0aW9uPiBuZXdO
b2RlID0gQ0RBVEFTZWN0aW9uOjpjcmVhdGUoZG9jdW1lbnQoKSwgdG9TdHJpbmcocywgbGVuKSk7
CisgICAgbV9jdXJyZW50Tm9kZS0+cGFyc2VyQWRkQ2hpbGQobmV3Tm9kZS5nZXQoKSk7CiAgICAg
aWYgKG1fdmlldyAmJiAhbmV3Tm9kZS0+YXR0YWNoZWQoKSkKICAgICAgICAgbmV3Tm9kZS0+YXR0
YWNoKCk7CiB9CkBAIC0xMDI0LDggKzEwMjQsOCBAQCB2b2lkIFhNTERvY3VtZW50UGFyc2VyOjpj
b21tZW50KGNvbnN0IHhtbENoYXIqIHMpCiAKICAgICBleGl0VGV4dCgpOwogCi0gICAgUmVmUHRy
PE5vZGU+IG5ld05vZGUgPSBDb21tZW50OjpjcmVhdGUoZG9jdW1lbnQoKSwgdG9TdHJpbmcocykp
OwotICAgIG1fY3VycmVudE5vZGUtPmRlcHJlY2F0ZWRQYXJzZXJBZGRDaGlsZChuZXdOb2RlLmdl
dCgpKTsKKyAgICBSZWZQdHI8Q29tbWVudD4gbmV3Tm9kZSA9IENvbW1lbnQ6OmNyZWF0ZShkb2N1
bWVudCgpLCB0b1N0cmluZyhzKSk7CisgICAgbV9jdXJyZW50Tm9kZS0+cGFyc2VyQWRkQ2hpbGQo
bmV3Tm9kZS5nZXQoKSk7CiAgICAgaWYgKG1fdmlldyAmJiAhbmV3Tm9kZS0+YXR0YWNoZWQoKSkK
ICAgICAgICAgbmV3Tm9kZS0+YXR0YWNoKCk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9kb20vWE1MRG9jdW1lbnRQYXJzZXJRdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vWE1MRG9j
dW1lbnRQYXJzZXJRdC5jcHAKaW5kZXggMzY2NDIyNzZkZDFhMWMyZGQ4N2RjNzFmOWJkZTZhMzVl
MmIxZTJjNi4uNmNkMjMwYzU5NWIwNTJmZmYyZDBkZmI4NTVmYTM0NWEzYTJjMGFhNiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL1hNTERvY3VtZW50UGFyc2VyUXQuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2RvbS9YTUxEb2N1bWVudFBhcnNlclF0LmNwcApAQCAtNDI1LDEyICs0MjUs
MTIgQEAgdm9pZCBYTUxEb2N1bWVudFBhcnNlcjo6cGFyc2UoKQogICAgICAgICAgICAgICAgKSB7
CiAgICAgICAgICAgICAgICAgUVN0cmluZyBlbnRpdHkgPSBtX3N0cmVhbS5uYW1lKCkudG9TdHJp
bmcoKTsKICAgICAgICAgICAgICAgICBVQ2hhciBjID0gZGVjb2RlTmFtZWRFbnRpdHkoZW50aXR5
LnRvVXRmOCgpLmNvbnN0RGF0YSgpKTsKLSAgICAgICAgICAgICAgICBpZiAoIW1fY3VycmVudE5v
ZGUtPmlzVGV4dE5vZGUoKSkKKyAgICAgICAgICAgICAgICBpZiAoIW1fdGVybWluYWxUZXh0Tm9k
ZSkKICAgICAgICAgICAgICAgICAgICAgZW50ZXJUZXh0KCk7CiAgICAgICAgICAgICAgICAgRXhj
ZXB0aW9uQ29kZSBlYyA9IDA7CiAgICAgICAgICAgICAgICAgU3RyaW5nIHN0cigmYywgMSk7CiAg
ICAgICAgICAgICAgICAgLy8gcURlYnVnKCk8PCIgLS0tLS0tLSBhZGRpbmcgZW50aXR5ICI8PHN0
cjsKLSAgICAgICAgICAgICAgICBzdGF0aWNfY2FzdDxUZXh0Kj4obV9jdXJyZW50Tm9kZSktPmFw
cGVuZERhdGEoc3RyLCBlYyk7CisgICAgICAgICAgICAgICAgbV90ZXJtaW5hbFRleHROb2RlLT5h
cHBlbmREYXRhKHN0ciwgZWMpOwogICAgICAgICAgICAgfQogICAgICAgICB9CiAgICAgICAgICAg
ICBicmVhazsKQEAgLTUzMyw3ICs1MzMsNyBAQCB2b2lkIFhNTERvY3VtZW50UGFyc2VyOjpwYXJz
ZVN0YXJ0RWxlbWVudCgpCiAgICAgaWYgKHNjcmlwdEVsZW1lbnQpCiAgICAgICAgIG1fc2NyaXB0
U3RhcnRQb3NpdGlvbiA9IHRleHRQb3NpdGlvbk9uZUJhc2VkKCk7CiAKLSAgICBtX2N1cnJlbnRO
b2RlLT5kZXByZWNhdGVkUGFyc2VyQWRkQ2hpbGQobmV3RWxlbWVudC5nZXQoKSk7CisgICAgbV9j
dXJyZW50Tm9kZS0+cGFyc2VyQWRkQ2hpbGQobmV3RWxlbWVudC5nZXQoKSk7CiAKICAgICBwdXNo
Q3VycmVudE5vZGUobmV3RWxlbWVudC5nZXQoKSk7CiAgICAgaWYgKG1fdmlldyAmJiAhbmV3RWxl
bWVudC0+YXR0YWNoZWQoKSkKQEAgLTU1Miw3ICs1NTIsNyBAQCB2b2lkIFhNTERvY3VtZW50UGFy
c2VyOjpwYXJzZUVuZEVsZW1lbnQoKQogewogICAgIGV4aXRUZXh0KCk7CiAKLSAgICBOb2RlKiBu
ID0gbV9jdXJyZW50Tm9kZTsKKyAgICBDb250YWluZXJOb2RlKiBuID0gbV9jdXJyZW50Tm9kZTsK
ICAgICBuLT5maW5pc2hQYXJzaW5nQ2hpbGRyZW4oKTsKIAogICAgIGlmIChtX3NjcmlwdGluZ1Bl
cm1pc3Npb24gPT0gRnJhZ21lbnRTY3JpcHRpbmdOb3RBbGxvd2VkICYmIG4tPmlzRWxlbWVudE5v
ZGUoKSAmJiB0b1NjcmlwdEVsZW1lbnQoc3RhdGljX2Nhc3Q8RWxlbWVudCo+KG4pKSkgewpAQCAt
NjEzLDEwICs2MTMsMTAgQEAgdm9pZCBYTUxEb2N1bWVudFBhcnNlcjo6cGFyc2VFbmRFbGVtZW50
KCkKIAogdm9pZCBYTUxEb2N1bWVudFBhcnNlcjo6cGFyc2VDaGFyYWN0ZXJzKCkKIHsKLSAgICBp
ZiAoIW1fY3VycmVudE5vZGUtPmlzVGV4dE5vZGUoKSkKKyAgICBpZiAoIW1fdGVybWluYWxUZXh0
Tm9kZSkKICAgICAgICAgZW50ZXJUZXh0KCk7CiAgICAgRXhjZXB0aW9uQ29kZSBlYyA9IDA7Ci0g
ICAgc3RhdGljX2Nhc3Q8VGV4dCo+KG1fY3VycmVudE5vZGUpLT5hcHBlbmREYXRhKG1fc3RyZWFt
LnRleHQoKSwgZWMpOworICAgIG1fdGVybWluYWxUZXh0Tm9kZS0+YXBwZW5kRGF0YShtX3N0cmVh
bS50ZXh0KCksIGVjKTsKIH0KIAogdm9pZCBYTUxEb2N1bWVudFBhcnNlcjo6cGFyc2VQcm9jZXNz
aW5nSW5zdHJ1Y3Rpb24oKQpAQCAtNjMzLDcgKzYzMyw3IEBAIHZvaWQgWE1MRG9jdW1lbnRQYXJz
ZXI6OnBhcnNlUHJvY2Vzc2luZ0luc3RydWN0aW9uKCkKIAogICAgIHBpLT5zZXRDcmVhdGVkQnlQ
YXJzZXIodHJ1ZSk7CiAKLSAgICBtX2N1cnJlbnROb2RlLT5kZXByZWNhdGVkUGFyc2VyQWRkQ2hp
bGQocGkuZ2V0KCkpOworICAgIG1fY3VycmVudE5vZGUtPnBhcnNlckFkZENoaWxkKHBpLmdldCgp
KTsKICAgICBpZiAobV92aWV3ICYmICFwaS0+YXR0YWNoZWQoKSkKICAgICAgICAgcGktPmF0dGFj
aCgpOwogCkBAIC02NTIsOSArNjUyLDkgQEAgdm9pZCBYTUxEb2N1bWVudFBhcnNlcjo6cGFyc2VD
ZGF0YSgpCiB7CiAgICAgZXhpdFRleHQoKTsKIAotICAgIFJlZlB0cjxOb2RlPiBuZXdOb2RlID0g
Q0RBVEFTZWN0aW9uOjpjcmVhdGUoZG9jdW1lbnQoKSwgbV9zdHJlYW0udGV4dCgpKTsKKyAgICBS
ZWZQdHI8Q0RBVEFTZWN0aW9uPiBuZXdOb2RlID0gQ0RBVEFTZWN0aW9uOjpjcmVhdGUoZG9jdW1l
bnQoKSwgbV9zdHJlYW0udGV4dCgpKTsKIAotICAgIG1fY3VycmVudE5vZGUtPmRlcHJlY2F0ZWRQ
YXJzZXJBZGRDaGlsZChuZXdOb2RlLmdldCgpKTsKKyAgICBtX2N1cnJlbnROb2RlLT5wYXJzZXJB
ZGRDaGlsZChuZXdOb2RlLmdldCgpKTsKICAgICBpZiAobV92aWV3ICYmICFuZXdOb2RlLT5hdHRh
Y2hlZCgpKQogICAgICAgICBuZXdOb2RlLT5hdHRhY2goKTsKIH0KQEAgLTY2Myw5ICs2NjMsOSBA
QCB2b2lkIFhNTERvY3VtZW50UGFyc2VyOjpwYXJzZUNvbW1lbnQoKQogewogICAgIGV4aXRUZXh0
KCk7CiAKLSAgICBSZWZQdHI8Tm9kZT4gbmV3Tm9kZSA9IENvbW1lbnQ6OmNyZWF0ZShkb2N1bWVu
dCgpLCBtX3N0cmVhbS50ZXh0KCkpOworICAgIFJlZlB0cjxDb21tZW50PiBuZXdOb2RlID0gQ29t
bWVudDo6Y3JlYXRlKGRvY3VtZW50KCksIG1fc3RyZWFtLnRleHQoKSk7CiAKLSAgICBtX2N1cnJl
bnROb2RlLT5kZXByZWNhdGVkUGFyc2VyQWRkQ2hpbGQobmV3Tm9kZS5nZXQoKSk7CisgICAgbV9j
dXJyZW50Tm9kZS0+cGFyc2VyQWRkQ2hpbGQobmV3Tm9kZS5nZXQoKSk7CiAgICAgaWYgKG1fdmll
dyAmJiAhbmV3Tm9kZS0+YXR0YWNoZWQoKSkKICAgICAgICAgbmV3Tm9kZS0+YXR0YWNoKCk7CiB9
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9UZXh0Q29udHJvbElubmVy
RWxlbWVudHMuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvVGV4dENvbnRyb2xJbm5l
ckVsZW1lbnRzLmNwcAppbmRleCAwMGZjNjY3NGNiMDdiMmMxMDAwMWVlYThkNzY0ODZhODk4MmRj
ODJjLi5mZDE5OTRiZTU0ZDNkODExYzRlZDc4YmY2MzBjYTc5NzM3YzRiNWU1IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9UZXh0Q29udHJvbElubmVyRWxlbWVudHMuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L1RleHRDb250cm9sSW5uZXJFbGVtZW50
cy5jcHAKQEAgLTc1LDEwICs3NSwxMCBAQCB2b2lkIFRleHRDb250cm9sSW5uZXJFbGVtZW50Ojph
dHRhY2hJbm5lckVsZW1lbnQoTm9kZSogcGFyZW50LCBQYXNzUmVmUHRyPFJlbmRlcgogICAgIHNl
dEluRG9jdW1lbnQoKTsKIAogICAgIC8vIEZvciBlbGVtZW50cyBub3QgeWV0IGluIHNoYWRvdyBE
T00sIGFkZCB0aGUgbm9kZSB0byB0aGUgRE9NIG5vcm1hbGx5LgotICAgIGlmICghaXNTaGFkb3dS
b290KCkpIHsKKyAgICBpZiAoIWlzU2hhZG93Um9vdCgpICYmIHBhcmVudC0+aXNDb250YWluZXJO
b2RlKCkpIHsKICAgICAgICAgLy8gRklYTUU6IFRoaXMgY29kZSBzZWVtcyB2ZXJ5IHdyb25nLiAg
V2h5IGFyZSB3ZSBtYWdpY2FsbHkgYWRkaW5nIHx0aGlzfCB0byB0aGUgRE9NIGhlcmU/CiAgICAg
ICAgIC8vICAgICAgICBXZSBzaG91bGRuJ3QgYmUgY2FsbGluZyBwYXJzZXIgQVBJIG1ldGhvZHMg
b3V0c2lkZSBvZiB0aGUgcGFyc2VyIQotICAgICAgICBwYXJlbnQtPmRlcHJlY2F0ZWRQYXJzZXJB
ZGRDaGlsZCh0aGlzKTsKKyAgICAgICAgdG9Db250YWluZXJOb2RlKHBhcmVudCktPnBhcnNlckFk
ZENoaWxkKHRoaXMpOwogICAgIH0KIAogICAgIC8vIEFkZCB0aGUgcmVuZGVyZXIgdG8gdGhlIHJl
bmRlciB0cmVlCg==
</data>
<flag name="review"
          id="86707"
          type_id="1"
          status="-"
          setter="eric"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>94009</attachid>
            <date>2011-05-18 17:33:05 -0700</date>
            <delta_ts>2011-05-19 15:31:40 -0700</delta_ts>
            <desc>Updated after Eric&apos;s and Adam&apos;s review</desc>
            <filename>bug60818-deprecatedParserAddChild-removal-4.diff</filename>
            <type>text/plain</type>
            <size>14737</size>
            <attacher name="Julien Chaffraix">jchaffraix</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCAwNzk1Mzk0Li5lMDgzNzA3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNTYg
QEAKKzIwMTEtMDUtMTYgIEp1bGllbiBDaGFmZnJhaXggIDxqY2hhZmZyYWl4QGNvZGVhdXJvcmEu
b3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFJl
bW92ZSBOb2RlOjpkZXByZWNhdGVkUGFyc2VyQWRkQ2hpbGQKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTYwODE4CisKKyAgICAgICAgUmVmYWN0b3Jpbmcg
b25seSBzbyBubyBuZXcgdGVzdHMuCisKKyAgICAgICAgKiBkb20vQ29udGFpbmVyTm9kZS5jcHA6
CisgICAgICAgICogZG9tL0NvbnRhaW5lck5vZGUuaDoKKyAgICAgICAgKiBkb20vTm9kZS5jcHA6
CisgICAgICAgICogZG9tL05vZGUuaDoKKyAgICAgICAgUmVtb3ZlZCBkZXByZWNhdGVkUGFyc2Vy
QWRkQ2hpbGQuCisKKyAgICAgICAgKiBkb20vWE1MRG9jdW1lbnRQYXJzZXIuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6WE1MRG9jdW1lbnRQYXJzZXI6OnB1c2hDdXJyZW50Tm9kZSk6IFVwZGF0ZWQg
dG8gdXNlIGEgQ29udGFpbmVyTm9kZS4KKyAgICAgICAgKFdlYkNvcmU6OlhNTERvY3VtZW50UGFy
c2VyOjpjbGVhckN1cnJlbnROb2RlU3RhY2spOiBXZSBub3cgbmVlZCB0byBjbGVhcgorICAgICAg
ICB1cCBtX2xlYWZUZXh0Tm9kZSB0b28uCisKKyAgICAgICAgKFdlYkNvcmU6OlhNTERvY3VtZW50
UGFyc2VyOjplbnRlclRleHQpOgorICAgICAgICAoV2ViQ29yZTo6WE1MRG9jdW1lbnRQYXJzZXI6
OmV4aXRUZXh0KToKKyAgICAgICAgVGhvc2UgbWV0aG9kcyB3ZXJlIHVwZGF0ZWQgdG8gdXNlIG1f
bGVhZlRleHROb2RlIGluc3RlYWQgb2YgbV9jdXJyZW50Tm9kZS4KKworICAgICAgICAqIGRvbS9Y
TUxEb2N1bWVudFBhcnNlci5oOgorICAgICAgICBDaGFuZ2VkIHRoZSBjdXJyZW50Tm9kZSBsb2dp
YyB0byB1c2UgQ29udGFpbmVyTm9kZS4gQWxzbyBmaXhlZCB0aGUgc3R5bGUgb2YgdGhlCisgICAg
ICAgIGZvcndhcmQgZGVjbGFyYXRpb25zLgorCisgICAgICAgICogZG9tL1hNTERvY3VtZW50UGFy
c2VyTGlieG1sMi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpYTUxEb2N1bWVudFBhcnNlcjo6c3Rh
cnRFbGVtZW50TnMpOgorICAgICAgICAoV2ViQ29yZTo6WE1MRG9jdW1lbnRQYXJzZXI6OmVuZEVs
ZW1lbnROcyk6CisgICAgICAgIChXZWJDb3JlOjpYTUxEb2N1bWVudFBhcnNlcjo6Y2hhcmFjdGVy
cyk6CisgICAgICAgIChXZWJDb3JlOjpYTUxEb2N1bWVudFBhcnNlcjo6cHJvY2Vzc2luZ0luc3Ry
dWN0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OlhNTERvY3VtZW50UGFyc2VyOjpjZGF0YUJsb2Nr
KToKKyAgICAgICAgKFdlYkNvcmU6OlhNTERvY3VtZW50UGFyc2VyOjpjb21tZW50KToKKyAgICAg
ICAgKiBkb20vWE1MRG9jdW1lbnRQYXJzZXJRdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpYTUxE
b2N1bWVudFBhcnNlcjo6cGFyc2UpOgorICAgICAgICAoV2ViQ29yZTo6WE1MRG9jdW1lbnRQYXJz
ZXI6OnBhcnNlU3RhcnRFbGVtZW50KToKKyAgICAgICAgKFdlYkNvcmU6OlhNTERvY3VtZW50UGFy
c2VyOjpwYXJzZUVuZEVsZW1lbnQpOgorICAgICAgICAoV2ViQ29yZTo6WE1MRG9jdW1lbnRQYXJz
ZXI6OnBhcnNlQ2hhcmFjdGVycyk6CisgICAgICAgIChXZWJDb3JlOjpYTUxEb2N1bWVudFBhcnNl
cjo6cGFyc2VQcm9jZXNzaW5nSW5zdHJ1Y3Rpb24pOgorICAgICAgICAoV2ViQ29yZTo6WE1MRG9j
dW1lbnRQYXJzZXI6OnBhcnNlQ2RhdGEpOgorICAgICAgICAoV2ViQ29yZTo6WE1MRG9jdW1lbnRQ
YXJzZXI6OnBhcnNlQ29tbWVudCk6CisgICAgICAgIFJlbW92ZWQgdGhlIGNhbGxzIHRvIGRlcHJl
Y2F0ZWRQYXJzZXJBZGRDaGlsZCwgY2hhbmdlZCB0aGUgY29kZSB0byB1c2UKKyAgICAgICAgbV9s
ZWFmVGV4dE5vZGUgd2hlbiBpdCBtYWRlIHNlbnNlIGFuZCB1c2VkIENvbnRhaW5lck5vZGUgaW5z
dGVhZCBvZgorICAgICAgICBOb2RlIGZvciBtX2N1cnJlbnROb2RlLgorCisgICAgICAgICogaHRt
bC9zaGFkb3cvVGV4dENvbnRyb2xJbm5lckVsZW1lbnRzLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OlRleHRDb250cm9sSW5uZXJFbGVtZW50OjphdHRhY2hJbm5lckVsZW1lbnQpOgorICAgICAgICBT
d2l0Y2hlZCB0aGlzIGNvZGUgdG8gdXNpbmcgYXBwZW5kQ2hpbGQgaWYgdGhlIE5vZGUgaXMgYSBD
b250YWluZXJOb2RlLgorICAgICAgICBUaGlzIG1lYW5zIHRoYXQgd2Ugd2lsbCBkaXNwYXRjaCBh
IE11dGF0aW9uIGV2ZW50IGJ1dCBpdCB3aWxsIGJlIGxpbWl0ZWQgdG8gdGhlCisgICAgICAgIHNo
YWRvdyBET00gYW5kIHRodXMgc2hvdWxkIGhhdmUgbm8gaW1wYWN0IG9uIHRoZSBwYWdlLgorCiAy
MDExLTA1LTE2ICBBbmRyZXcgV2lsc29uICA8YXR3aWxzb25AY2hyb21pdW0ub3JnPgogCiAgICAg
ICAgIFVucmV2aWV3ZWQsIHJvbGxpbmcgb3V0IHI4NjYyNS4KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2RvbS9Db250YWluZXJOb2RlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Db250YWlu
ZXJOb2RlLmNwcAppbmRleCAzMmIwOTM2Li43NjFkZjc2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9kb20vQ29udGFpbmVyTm9kZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0NvbnRh
aW5lck5vZGUuY3BwCkBAIC02ODYsMTEgKzY4Niw2IEBAIHZvaWQgQ29udGFpbmVyTm9kZTo6cGFy
c2VyQWRkQ2hpbGQoUGFzc1JlZlB0cjxOb2RlPiBuZXdDaGlsZCkKICAgICBjaGlsZHJlbkNoYW5n
ZWQodHJ1ZSwgbGFzdCwgMCwgMSk7CiB9CiAKLXZvaWQgQ29udGFpbmVyTm9kZTo6ZGVwcmVjYXRl
ZFBhcnNlckFkZENoaWxkKFBhc3NSZWZQdHI8Tm9kZT4gbm9kZSkKLXsKLSAgICBwYXJzZXJBZGRD
aGlsZChub2RlKTsKLX0KLQogdm9pZCBDb250YWluZXJOb2RlOjpzdXNwZW5kUG9zdEF0dGFjaENh
bGxiYWNrcygpCiB7CiAgICAgaWYgKCFzX2F0dGFjaERlcHRoKSB7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9kb20vQ29udGFpbmVyTm9kZS5oIGIvU291cmNlL1dlYkNvcmUvZG9tL0NvbnRh
aW5lck5vZGUuaAppbmRleCA3NmViMWJkLi45ZjZkY2U1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9kb20vQ29udGFpbmVyTm9kZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Db250YWlu
ZXJOb2RlLmgKQEAgLTEwMiwxMiArMTAyLDYgQEAgcHJvdGVjdGVkOgogICAgIHZvaWQgc2V0TGFz
dENoaWxkKE5vZGUqIGNoaWxkKSB7IG1fbGFzdENoaWxkID0gY2hpbGQ7IH0KIAogcHJpdmF0ZToK
LSAgICAvLyBOZXZlciBjYWxsIHRoaXMgZnVuY3Rpb24gZGlyZWN0bHkuICBJZiB5b3UncmUgdHJ5
aW5nIHRvIGNhbGwgdGhpcwotICAgIC8vIGZ1bmN0aW9uLCB5b3VyIGNvZGUgaXMgZWl0aGVyIHdy
b25nIG9yIHlvdSdyZSBzdXBwb3NlZCB0byBjYWxsCi0gICAgLy8gcGFyc2VyQWRkQ2hpbGQuICBQ
bGVhc2UgZG8gbm90IGNhbGwgcGFyc2VyQWRkQ2hpbGQgdW5sZXNzIHlvdSBhcmUgdGhlCi0gICAg
Ly8gcGFyc2VyIQotICAgIHZpcnR1YWwgdm9pZCBkZXByZWNhdGVkUGFyc2VyQWRkQ2hpbGQoUGFz
c1JlZlB0cjxOb2RlPik7Ci0KICAgICB2b2lkIHJlbW92ZUJldHdlZW4oTm9kZSogcHJldmlvdXND
aGlsZCwgTm9kZSogbmV4dENoaWxkLCBOb2RlKiBvbGRDaGlsZCk7CiAgICAgdm9pZCBpbnNlcnRC
ZWZvcmVDb21tb24oTm9kZSogbmV4dENoaWxkLCBOb2RlKiBvbGRDaGlsZCk7CiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2Rl
LmNwcAppbmRleCBkNzE3Yzg1Li5kNWJlNDViIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9k
b20vTm9kZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL05vZGUuY3BwCkBAIC03NTQsMTAg
Kzc1NCw2IEBAIGNvbnN0IEF0b21pY1N0cmluZyYgTm9kZTo6dmlydHVhbE5hbWVzcGFjZVVSSSgp
IGNvbnN0CiAgICAgcmV0dXJuIG51bGxBdG9tOwogfQogCi12b2lkIE5vZGU6OmRlcHJlY2F0ZWRQ
YXJzZXJBZGRDaGlsZChQYXNzUmVmUHRyPE5vZGU+KQotewotfQotCiBib29sIE5vZGU6OmlzQ29u
dGVudEVkaXRhYmxlKCkgY29uc3QKIHsKICAgICBkb2N1bWVudCgpLT51cGRhdGVMYXlvdXRJZ25v
cmVQZW5kaW5nU3R5bGVzaGVldHMoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9O
b2RlLmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZS5oCmluZGV4IDNmZjhmNGEuLjczNjVlMDMg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvZG9tL05vZGUuaApAQCAtMjYyLDkgKzI2Miw2IEBAIHB1YmxpYzoKICAgICAKICAgICBib29s
IGluU2FtZUNvbnRhaW5pbmdCbG9ja0Zsb3dFbGVtZW50KE5vZGUqKTsKIAotICAgIC8vIEZJWE1F
OiBBbGwgY2FsbGVycyBvZiB0aGlzIGZ1bmN0aW9uIGFyZSBhbG1vc3QgY2VydGFpbmx5IHdyb25n
IQotICAgIHZpcnR1YWwgdm9pZCBkZXByZWNhdGVkUGFyc2VyQWRkQ2hpbGQoUGFzc1JlZlB0cjxO
b2RlPik7Ci0KICAgICAvLyBDYWxsZWQgYnkgdGhlIHBhcnNlciB3aGVuIHRoaXMgZWxlbWVudCdz
IGNsb3NlIHRhZyBpcyByZWFjaGVkLAogICAgIC8vIHNpZ25hbGluZyB0aGF0IGFsbCBjaGlsZCB0
YWdzIGhhdmUgYmVlbiBwYXJzZWQgYW5kIGFkZGVkLgogICAgIC8vIFRoaXMgaXMgbmVlZGVkIGZv
ciA8YXBwbGV0PiBhbmQgPG9iamVjdD4gZWxlbWVudHMsIHdoaWNoIGNhbid0IGxheSB0aGVtc2Vs
dmVzIG91dApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL1hNTERvY3VtZW50UGFyc2Vy
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9YTUxEb2N1bWVudFBhcnNlci5jcHAKaW5kZXggYjhh
MGY1YS4uZTFmZjA2NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL1hNTERvY3VtZW50
UGFyc2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vWE1MRG9jdW1lbnRQYXJzZXIuY3Bw
CkBAIC02OCw3ICs2OCw3IEBAIHVzaW5nIG5hbWVzcGFjZSBIVE1MTmFtZXM7CiAKIGNvbnN0IGlu
dCBtYXhFcnJvcnMgPSAyNTsKIAotdm9pZCBYTUxEb2N1bWVudFBhcnNlcjo6cHVzaEN1cnJlbnRO
b2RlKE5vZGUqIG4pCit2b2lkIFhNTERvY3VtZW50UGFyc2VyOjpwdXNoQ3VycmVudE5vZGUoQ29u
dGFpbmVyTm9kZSogbikKIHsKICAgICBBU1NFUlQobik7CiAgICAgQVNTRVJUKG1fY3VycmVudE5v
ZGUpOwpAQCAtOTgsNiArOTgsNyBAQCB2b2lkIFhNTERvY3VtZW50UGFyc2VyOjpjbGVhckN1cnJl
bnROb2RlU3RhY2soKQogICAgIGlmIChtX2N1cnJlbnROb2RlICYmIG1fY3VycmVudE5vZGUgIT0g
ZG9jdW1lbnQoKSkKICAgICAgICAgbV9jdXJyZW50Tm9kZS0+ZGVyZWYoKTsKICAgICBtX2N1cnJl
bnROb2RlID0gMDsKKyAgICBtX2xlYWZUZXh0Tm9kZSA9IDA7CiAKICAgICBpZiAobV9jdXJyZW50
Tm9kZVN0YWNrLnNpemUoKSkgeyAvLyBBYm9ydGVkIHBhcnNpbmcuCiAgICAgICAgIGZvciAoc2l6
ZV90IGkgPSBtX2N1cnJlbnROb2RlU3RhY2suc2l6ZSgpIC0gMTsgaSAhPSAwOyAtLWkpCkBAIC0x
NjcsOSArMTY4LDkgQEAgdm9pZCBYTUxEb2N1bWVudFBhcnNlcjo6ZW50ZXJUZXh0KCkKICNpZiAh
VVNFKFFYTUxTVFJFQU0pCiAgICAgQVNTRVJUKG1fYnVmZmVyZWRUZXh0LnNpemUoKSA9PSAwKTsK
ICNlbmRpZgotICAgIFJlZlB0cjxOb2RlPiBuZXdOb2RlID0gVGV4dDo6Y3JlYXRlKGRvY3VtZW50
KCksICIiKTsKLSAgICBtX2N1cnJlbnROb2RlLT5kZXByZWNhdGVkUGFyc2VyQWRkQ2hpbGQobmV3
Tm9kZS5nZXQoKSk7Ci0gICAgcHVzaEN1cnJlbnROb2RlKG5ld05vZGUuZ2V0KCkpOworICAgIEFT
U0VSVCghbV9sZWFmVGV4dE5vZGUpOworICAgIG1fbGVhZlRleHROb2RlID0gVGV4dDo6Y3JlYXRl
KGRvY3VtZW50KCksICIiKTsKKyAgICBtX2N1cnJlbnROb2RlLT5wYXJzZXJBZGRDaGlsZChtX2xl
YWZUZXh0Tm9kZS5nZXQoKSk7CiB9CiAKICNpZiAhVVNFKFFYTUxTVFJFQU0pCkBAIC0xODUsMjAg
KzE4NiwyMCBAQCB2b2lkIFhNTERvY3VtZW50UGFyc2VyOjpleGl0VGV4dCgpCiAgICAgaWYgKGlz
U3RvcHBlZCgpKQogICAgICAgICByZXR1cm47CiAKLSAgICBpZiAoIW1fY3VycmVudE5vZGUgfHwg
IW1fY3VycmVudE5vZGUtPmlzVGV4dE5vZGUoKSkKKyAgICBpZiAoIW1fbGVhZlRleHROb2RlKQog
ICAgICAgICByZXR1cm47CiAKICNpZiAhVVNFKFFYTUxTVFJFQU0pCiAgICAgRXhjZXB0aW9uQ29k
ZSBlYyA9IDA7Ci0gICAgc3RhdGljX2Nhc3Q8VGV4dCo+KG1fY3VycmVudE5vZGUpLT5hcHBlbmRE
YXRhKHRvU3RyaW5nKG1fYnVmZmVyZWRUZXh0LmRhdGEoKSwgbV9idWZmZXJlZFRleHQuc2l6ZSgp
KSwgZWMpOworICAgIG1fbGVhZlRleHROb2RlLT5hcHBlbmREYXRhKHRvU3RyaW5nKG1fYnVmZmVy
ZWRUZXh0LmRhdGEoKSwgbV9idWZmZXJlZFRleHQuc2l6ZSgpKSwgZWMpOwogICAgIFZlY3Rvcjx4
bWxDaGFyPiBlbXB0eTsKICAgICBtX2J1ZmZlcmVkVGV4dC5zd2FwKGVtcHR5KTsKICNlbmRpZgog
Ci0gICAgaWYgKG1fdmlldyAmJiBtX2N1cnJlbnROb2RlICYmICFtX2N1cnJlbnROb2RlLT5hdHRh
Y2hlZCgpKQotICAgICAgICBtX2N1cnJlbnROb2RlLT5hdHRhY2goKTsKKyAgICBpZiAobV92aWV3
ICYmICFtX2xlYWZUZXh0Tm9kZS0+YXR0YWNoZWQoKSkKKyAgICAgICAgbV9sZWFmVGV4dE5vZGUt
PmF0dGFjaCgpOwogCi0gICAgcG9wQ3VycmVudE5vZGUoKTsKKyAgICBtX2xlYWZUZXh0Tm9kZSA9
IDA7CiB9CiAKIHZvaWQgWE1MRG9jdW1lbnRQYXJzZXI6OmRldGFjaCgpCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9kb20vWE1MRG9jdW1lbnRQYXJzZXIuaCBiL1NvdXJjZS9XZWJDb3JlL2Rv
bS9YTUxEb2N1bWVudFBhcnNlci5oCmluZGV4IDIwNDNhZGQuLjI5NDgzM2YgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2RvbS9YTUxEb2N1bWVudFBhcnNlci5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2RvbS9YTUxEb2N1bWVudFBhcnNlci5oCkBAIC00MywxNCArNDMsMTUgQEAKIAogbmFtZXNw
YWNlIFdlYkNvcmUgewogCi0gICAgY2xhc3MgTm9kZTsKLSAgICBjbGFzcyBDYWNoZWRTY3JpcHQ7
Ci0gICAgY2xhc3MgQ2FjaGVkUmVzb3VyY2VMb2FkZXI7Ci0gICAgY2xhc3MgRG9jdW1lbnRGcmFn
bWVudDsKLSAgICBjbGFzcyBEb2N1bWVudDsKLSAgICBjbGFzcyBFbGVtZW50OwotICAgIGNsYXNz
IEZyYW1lVmlldzsKLSAgICBjbGFzcyBQZW5kaW5nQ2FsbGJhY2tzOworY2xhc3MgQ29udGFpbmVy
Tm9kZTsKK2NsYXNzIENhY2hlZFNjcmlwdDsKK2NsYXNzIENhY2hlZFJlc291cmNlTG9hZGVyOwor
Y2xhc3MgRG9jdW1lbnRGcmFnbWVudDsKK2NsYXNzIERvY3VtZW50OworY2xhc3MgRWxlbWVudDsK
K2NsYXNzIEZyYW1lVmlldzsKK2NsYXNzIFBlbmRpbmdDYWxsYmFja3M7CitjbGFzcyBUZXh0Owog
CiAjaWYgIVVTRShRWE1MU1RSRUFNKQogICAgIGNsYXNzIFhNTFBhcnNlckNvbnRleHQgOiBwdWJs
aWMgUmVmQ291bnRlZDxYTUxQYXJzZXJDb250ZXh0PiB7CkBAIC0xNjEsNyArMTYyLDcgQEAgcHVi
bGljOgogICAgIHByaXZhdGU6CiAgICAgICAgIHZvaWQgaW5pdGlhbGl6ZVBhcnNlckNvbnRleHQo
Y29uc3QgY2hhciogY2h1bmsgPSAwKTsKIAotICAgICAgICB2b2lkIHB1c2hDdXJyZW50Tm9kZShO
b2RlKik7CisgICAgICAgIHZvaWQgcHVzaEN1cnJlbnROb2RlKENvbnRhaW5lck5vZGUqKTsKICAg
ICAgICAgdm9pZCBwb3BDdXJyZW50Tm9kZSgpOwogICAgICAgICB2b2lkIGNsZWFyQ3VycmVudE5v
ZGVTdGFjaygpOwogCkBAIC0xODYsOCArMTg3LDEwIEBAIHB1YmxpYzoKICAgICAgICAgT3duUHRy
PFBlbmRpbmdDYWxsYmFja3M+IG1fcGVuZGluZ0NhbGxiYWNrczsKICAgICAgICAgVmVjdG9yPHht
bENoYXI+IG1fYnVmZmVyZWRUZXh0OwogI2VuZGlmCi0gICAgICAgIE5vZGUqIG1fY3VycmVudE5v
ZGU7Ci0gICAgICAgIFZlY3RvcjxOb2RlKj4gbV9jdXJyZW50Tm9kZVN0YWNrOworICAgICAgICBD
b250YWluZXJOb2RlKiBtX2N1cnJlbnROb2RlOworICAgICAgICBWZWN0b3I8Q29udGFpbmVyTm9k
ZSo+IG1fY3VycmVudE5vZGVTdGFjazsKKworICAgICAgICBSZWZQdHI8VGV4dD4gbV9sZWFmVGV4
dE5vZGU7CiAKICAgICAgICAgYm9vbCBtX3Nhd0Vycm9yOwogICAgICAgICBib29sIG1fc2F3Q1NT
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL1hNTERvY3VtZW50UGFyc2VyTGlieG1s
Mi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vWE1MRG9jdW1lbnRQYXJzZXJMaWJ4bWwyLmNwcApp
bmRleCAyNDdhYTk0Li41MGVlZjk1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vWE1M
RG9jdW1lbnRQYXJzZXJMaWJ4bWwyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vWE1MRG9j
dW1lbnRQYXJzZXJMaWJ4bWwyLmNwcApAQCAtODIzLDcgKzgyMyw3IEBAIHZvaWQgWE1MRG9jdW1l
bnRQYXJzZXI6OnN0YXJ0RWxlbWVudE5zKGNvbnN0IHhtbENoYXIqIHhtbExvY2FsTmFtZSwgY29u
c3QgeG1sQ2hhCiAgICAgaWYgKHNjcmlwdEVsZW1lbnQpCiAgICAgICAgIG1fc2NyaXB0U3RhcnRQ
b3NpdGlvbiA9IHRleHRQb3NpdGlvbk9uZUJhc2VkKCk7CiAKLSAgICBtX2N1cnJlbnROb2RlLT5k
ZXByZWNhdGVkUGFyc2VyQWRkQ2hpbGQobmV3RWxlbWVudC5nZXQoKSk7CisgICAgbV9jdXJyZW50
Tm9kZS0+cGFyc2VyQWRkQ2hpbGQobmV3RWxlbWVudC5nZXQoKSk7CiAKICAgICBwdXNoQ3VycmVu
dE5vZGUobmV3RWxlbWVudC5nZXQoKSk7CiAgICAgaWYgKG1fdmlldyAmJiAhbmV3RWxlbWVudC0+
YXR0YWNoZWQoKSkKQEAgLTg1MCw3ICs4NTAsNyBAQCB2b2lkIFhNTERvY3VtZW50UGFyc2VyOjpl
bmRFbGVtZW50TnMoKQogCiAgICAgZXhpdFRleHQoKTsKIAotICAgIE5vZGUqIG4gPSBtX2N1cnJl
bnROb2RlOworICAgIENvbnRhaW5lck5vZGUqIG4gPSBtX2N1cnJlbnROb2RlOwogICAgIG4tPmZp
bmlzaFBhcnNpbmdDaGlsZHJlbigpOwogCiAgICAgaWYgKG1fc2NyaXB0aW5nUGVybWlzc2lvbiA9
PSBGcmFnbWVudFNjcmlwdGluZ05vdEFsbG93ZWQgJiYgbi0+aXNFbGVtZW50Tm9kZSgpICYmIHRv
U2NyaXB0RWxlbWVudChzdGF0aWNfY2FzdDxFbGVtZW50Kj4obikpKSB7CkBAIC05MjksNyArOTI5
LDcgQEAgdm9pZCBYTUxEb2N1bWVudFBhcnNlcjo6Y2hhcmFjdGVycyhjb25zdCB4bWxDaGFyKiBz
LCBpbnQgbGVuKQogICAgICAgICByZXR1cm47CiAgICAgfQogCi0gICAgaWYgKCFtX2N1cnJlbnRO
b2RlLT5pc1RleHROb2RlKCkpCisgICAgaWYgKCFtX2xlYWZUZXh0Tm9kZSkKICAgICAgICAgZW50
ZXJUZXh0KCk7CiAgICAgbV9idWZmZXJlZFRleHQuYXBwZW5kKHMsIGxlbik7CiB9CkBAIC05Nzks
NyArOTc5LDcgQEAgdm9pZCBYTUxEb2N1bWVudFBhcnNlcjo6cHJvY2Vzc2luZ0luc3RydWN0aW9u
KGNvbnN0IHhtbENoYXIqIHRhcmdldCwgY29uc3QgeG1sQ2gKIAogICAgIHBpLT5zZXRDcmVhdGVk
QnlQYXJzZXIodHJ1ZSk7CiAKLSAgICBtX2N1cnJlbnROb2RlLT5kZXByZWNhdGVkUGFyc2VyQWRk
Q2hpbGQocGkuZ2V0KCkpOworICAgIG1fY3VycmVudE5vZGUtPnBhcnNlckFkZENoaWxkKHBpLmdl
dCgpKTsKICAgICBpZiAobV92aWV3ICYmICFwaS0+YXR0YWNoZWQoKSkKICAgICAgICAgcGktPmF0
dGFjaCgpOwogCkBAIC0xMDA2LDggKzEwMDYsOCBAQCB2b2lkIFhNTERvY3VtZW50UGFyc2VyOjpj
ZGF0YUJsb2NrKGNvbnN0IHhtbENoYXIqIHMsIGludCBsZW4pCiAKICAgICBleGl0VGV4dCgpOwog
Ci0gICAgUmVmUHRyPE5vZGU+IG5ld05vZGUgPSBDREFUQVNlY3Rpb246OmNyZWF0ZShkb2N1bWVu
dCgpLCB0b1N0cmluZyhzLCBsZW4pKTsKLSAgICBtX2N1cnJlbnROb2RlLT5kZXByZWNhdGVkUGFy
c2VyQWRkQ2hpbGQobmV3Tm9kZS5nZXQoKSk7CisgICAgUmVmUHRyPENEQVRBU2VjdGlvbj4gbmV3
Tm9kZSA9IENEQVRBU2VjdGlvbjo6Y3JlYXRlKGRvY3VtZW50KCksIHRvU3RyaW5nKHMsIGxlbikp
OworICAgIG1fY3VycmVudE5vZGUtPnBhcnNlckFkZENoaWxkKG5ld05vZGUuZ2V0KCkpOwogICAg
IGlmIChtX3ZpZXcgJiYgIW5ld05vZGUtPmF0dGFjaGVkKCkpCiAgICAgICAgIG5ld05vZGUtPmF0
dGFjaCgpOwogfQpAQCAtMTAyNCw4ICsxMDI0LDggQEAgdm9pZCBYTUxEb2N1bWVudFBhcnNlcjo6
Y29tbWVudChjb25zdCB4bWxDaGFyKiBzKQogCiAgICAgZXhpdFRleHQoKTsKIAotICAgIFJlZlB0
cjxOb2RlPiBuZXdOb2RlID0gQ29tbWVudDo6Y3JlYXRlKGRvY3VtZW50KCksIHRvU3RyaW5nKHMp
KTsKLSAgICBtX2N1cnJlbnROb2RlLT5kZXByZWNhdGVkUGFyc2VyQWRkQ2hpbGQobmV3Tm9kZS5n
ZXQoKSk7CisgICAgUmVmUHRyPENvbW1lbnQ+IG5ld05vZGUgPSBDb21tZW50OjpjcmVhdGUoZG9j
dW1lbnQoKSwgdG9TdHJpbmcocykpOworICAgIG1fY3VycmVudE5vZGUtPnBhcnNlckFkZENoaWxk
KG5ld05vZGUuZ2V0KCkpOwogICAgIGlmIChtX3ZpZXcgJiYgIW5ld05vZGUtPmF0dGFjaGVkKCkp
CiAgICAgICAgIG5ld05vZGUtPmF0dGFjaCgpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvZG9tL1hNTERvY3VtZW50UGFyc2VyUXQuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL1hNTERv
Y3VtZW50UGFyc2VyUXQuY3BwCmluZGV4IDUzZTVlZWUuLmM3NGE4ZjQgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2RvbS9YTUxEb2N1bWVudFBhcnNlclF0LmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9kb20vWE1MRG9jdW1lbnRQYXJzZXJRdC5jcHAKQEAgLTQyNSwxMiArNDI1LDEyIEBAIHZv
aWQgWE1MRG9jdW1lbnRQYXJzZXI6OnBhcnNlKCkKICAgICAgICAgICAgICAgICkgewogICAgICAg
ICAgICAgICAgIFFTdHJpbmcgZW50aXR5ID0gbV9zdHJlYW0ubmFtZSgpLnRvU3RyaW5nKCk7CiAg
ICAgICAgICAgICAgICAgVUNoYXIgYyA9IGRlY29kZU5hbWVkRW50aXR5KGVudGl0eS50b1V0Zjgo
KS5jb25zdERhdGEoKSk7Ci0gICAgICAgICAgICAgICAgaWYgKCFtX2N1cnJlbnROb2RlLT5pc1Rl
eHROb2RlKCkpCisgICAgICAgICAgICAgICAgaWYgKCFtX2xlYWZUZXh0Tm9kZSkKICAgICAgICAg
ICAgICAgICAgICAgZW50ZXJUZXh0KCk7CiAgICAgICAgICAgICAgICAgRXhjZXB0aW9uQ29kZSBl
YyA9IDA7CiAgICAgICAgICAgICAgICAgU3RyaW5nIHN0cigmYywgMSk7CiAgICAgICAgICAgICAg
ICAgLy8gcURlYnVnKCk8PCIgLS0tLS0tLSBhZGRpbmcgZW50aXR5ICI8PHN0cjsKLSAgICAgICAg
ICAgICAgICBzdGF0aWNfY2FzdDxUZXh0Kj4obV9jdXJyZW50Tm9kZSktPmFwcGVuZERhdGEoc3Ry
LCBlYyk7CisgICAgICAgICAgICAgICAgbV9sZWFmVGV4dE5vZGUtPmFwcGVuZERhdGEoc3RyLCBl
Yyk7CiAgICAgICAgICAgICB9CiAgICAgICAgIH0KICAgICAgICAgICAgIGJyZWFrOwpAQCAtNTMz
LDcgKzUzMyw3IEBAIHZvaWQgWE1MRG9jdW1lbnRQYXJzZXI6OnBhcnNlU3RhcnRFbGVtZW50KCkK
ICAgICBpZiAoc2NyaXB0RWxlbWVudCkKICAgICAgICAgbV9zY3JpcHRTdGFydFBvc2l0aW9uID0g
dGV4dFBvc2l0aW9uT25lQmFzZWQoKTsKIAotICAgIG1fY3VycmVudE5vZGUtPmRlcHJlY2F0ZWRQ
YXJzZXJBZGRDaGlsZChuZXdFbGVtZW50LmdldCgpKTsKKyAgICBtX2N1cnJlbnROb2RlLT5wYXJz
ZXJBZGRDaGlsZChuZXdFbGVtZW50LmdldCgpKTsKIAogICAgIHB1c2hDdXJyZW50Tm9kZShuZXdF
bGVtZW50LmdldCgpKTsKICAgICBpZiAobV92aWV3ICYmICFuZXdFbGVtZW50LT5hdHRhY2hlZCgp
KQpAQCAtNTUyLDcgKzU1Miw3IEBAIHZvaWQgWE1MRG9jdW1lbnRQYXJzZXI6OnBhcnNlRW5kRWxl
bWVudCgpCiB7CiAgICAgZXhpdFRleHQoKTsKIAotICAgIE5vZGUqIG4gPSBtX2N1cnJlbnROb2Rl
OworICAgIENvbnRhaW5lck5vZGUqIG4gPSBtX2N1cnJlbnROb2RlOwogICAgIG4tPmZpbmlzaFBh
cnNpbmdDaGlsZHJlbigpOwogCiAgICAgaWYgKG1fc2NyaXB0aW5nUGVybWlzc2lvbiA9PSBGcmFn
bWVudFNjcmlwdGluZ05vdEFsbG93ZWQgJiYgbi0+aXNFbGVtZW50Tm9kZSgpICYmIHRvU2NyaXB0
RWxlbWVudChzdGF0aWNfY2FzdDxFbGVtZW50Kj4obikpKSB7CkBAIC02MTMsMTAgKzYxMywxMCBA
QCB2b2lkIFhNTERvY3VtZW50UGFyc2VyOjpwYXJzZUVuZEVsZW1lbnQoKQogCiB2b2lkIFhNTERv
Y3VtZW50UGFyc2VyOjpwYXJzZUNoYXJhY3RlcnMoKQogewotICAgIGlmICghbV9jdXJyZW50Tm9k
ZS0+aXNUZXh0Tm9kZSgpKQorICAgIGlmICghbV9sZWFmVGV4dE5vZGUpCiAgICAgICAgIGVudGVy
VGV4dCgpOwogICAgIEV4Y2VwdGlvbkNvZGUgZWMgPSAwOwotICAgIHN0YXRpY19jYXN0PFRleHQq
PihtX2N1cnJlbnROb2RlKS0+YXBwZW5kRGF0YShtX3N0cmVhbS50ZXh0KCksIGVjKTsKKyAgICBt
X2xlYWZUZXh0Tm9kZS0+YXBwZW5kRGF0YShtX3N0cmVhbS50ZXh0KCksIGVjKTsKIH0KIAogdm9p
ZCBYTUxEb2N1bWVudFBhcnNlcjo6cGFyc2VQcm9jZXNzaW5nSW5zdHJ1Y3Rpb24oKQpAQCAtNjMz
LDcgKzYzMyw3IEBAIHZvaWQgWE1MRG9jdW1lbnRQYXJzZXI6OnBhcnNlUHJvY2Vzc2luZ0luc3Ry
dWN0aW9uKCkKIAogICAgIHBpLT5zZXRDcmVhdGVkQnlQYXJzZXIodHJ1ZSk7CiAKLSAgICBtX2N1
cnJlbnROb2RlLT5kZXByZWNhdGVkUGFyc2VyQWRkQ2hpbGQocGkuZ2V0KCkpOworICAgIG1fY3Vy
cmVudE5vZGUtPnBhcnNlckFkZENoaWxkKHBpLmdldCgpKTsKICAgICBpZiAobV92aWV3ICYmICFw
aS0+YXR0YWNoZWQoKSkKICAgICAgICAgcGktPmF0dGFjaCgpOwogCkBAIC02NTIsOSArNjUyLDkg
QEAgdm9pZCBYTUxEb2N1bWVudFBhcnNlcjo6cGFyc2VDZGF0YSgpCiB7CiAgICAgZXhpdFRleHQo
KTsKIAotICAgIFJlZlB0cjxOb2RlPiBuZXdOb2RlID0gQ0RBVEFTZWN0aW9uOjpjcmVhdGUoZG9j
dW1lbnQoKSwgbV9zdHJlYW0udGV4dCgpKTsKKyAgICBSZWZQdHI8Q0RBVEFTZWN0aW9uPiBuZXdO
b2RlID0gQ0RBVEFTZWN0aW9uOjpjcmVhdGUoZG9jdW1lbnQoKSwgbV9zdHJlYW0udGV4dCgpKTsK
IAotICAgIG1fY3VycmVudE5vZGUtPmRlcHJlY2F0ZWRQYXJzZXJBZGRDaGlsZChuZXdOb2RlLmdl
dCgpKTsKKyAgICBtX2N1cnJlbnROb2RlLT5wYXJzZXJBZGRDaGlsZChuZXdOb2RlLmdldCgpKTsK
ICAgICBpZiAobV92aWV3ICYmICFuZXdOb2RlLT5hdHRhY2hlZCgpKQogICAgICAgICBuZXdOb2Rl
LT5hdHRhY2goKTsKIH0KQEAgLTY2Myw5ICs2NjMsOSBAQCB2b2lkIFhNTERvY3VtZW50UGFyc2Vy
OjpwYXJzZUNvbW1lbnQoKQogewogICAgIGV4aXRUZXh0KCk7CiAKLSAgICBSZWZQdHI8Tm9kZT4g
bmV3Tm9kZSA9IENvbW1lbnQ6OmNyZWF0ZShkb2N1bWVudCgpLCBtX3N0cmVhbS50ZXh0KCkpOwor
ICAgIFJlZlB0cjxDb21tZW50PiBuZXdOb2RlID0gQ29tbWVudDo6Y3JlYXRlKGRvY3VtZW50KCks
IG1fc3RyZWFtLnRleHQoKSk7CiAKLSAgICBtX2N1cnJlbnROb2RlLT5kZXByZWNhdGVkUGFyc2Vy
QWRkQ2hpbGQobmV3Tm9kZS5nZXQoKSk7CisgICAgbV9jdXJyZW50Tm9kZS0+cGFyc2VyQWRkQ2hp
bGQobmV3Tm9kZS5nZXQoKSk7CiAgICAgaWYgKG1fdmlldyAmJiAhbmV3Tm9kZS0+YXR0YWNoZWQo
KSkKICAgICAgICAgbmV3Tm9kZS0+YXR0YWNoKCk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9odG1sL3NoYWRvdy9UZXh0Q29udHJvbElubmVyRWxlbWVudHMuY3BwIGIvU291cmNlL1dl
YkNvcmUvaHRtbC9zaGFkb3cvVGV4dENvbnRyb2xJbm5lckVsZW1lbnRzLmNwcAppbmRleCAwMGZj
NjY3Li5kOGU5ZDMyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9UZXh0
Q29udHJvbElubmVyRWxlbWVudHMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93
L1RleHRDb250cm9sSW5uZXJFbGVtZW50cy5jcHAKQEAgLTc1LDEwICs3NSwxMSBAQCB2b2lkIFRl
eHRDb250cm9sSW5uZXJFbGVtZW50OjphdHRhY2hJbm5lckVsZW1lbnQoTm9kZSogcGFyZW50LCBQ
YXNzUmVmUHRyPFJlbmRlcgogICAgIHNldEluRG9jdW1lbnQoKTsKIAogICAgIC8vIEZvciBlbGVt
ZW50cyBub3QgeWV0IGluIHNoYWRvdyBET00sIGFkZCB0aGUgbm9kZSB0byB0aGUgRE9NIG5vcm1h
bGx5LgotICAgIGlmICghaXNTaGFkb3dSb290KCkpIHsKKyAgICBpZiAoIWlzU2hhZG93Um9vdCgp
ICYmIHBhcmVudC0+aXNDb250YWluZXJOb2RlKCkpIHsKICAgICAgICAgLy8gRklYTUU6IFRoaXMg
Y29kZSBzZWVtcyB2ZXJ5IHdyb25nLiAgV2h5IGFyZSB3ZSBtYWdpY2FsbHkgYWRkaW5nIHx0aGlz
fCB0byB0aGUgRE9NIGhlcmU/Ci0gICAgICAgIC8vICAgICAgICBXZSBzaG91bGRuJ3QgYmUgY2Fs
bGluZyBwYXJzZXIgQVBJIG1ldGhvZHMgb3V0c2lkZSBvZiB0aGUgcGFyc2VyIQotICAgICAgICBw
YXJlbnQtPmRlcHJlY2F0ZWRQYXJzZXJBZGRDaGlsZCh0aGlzKTsKKyAgICAgICAgRXhjZXB0aW9u
Q29kZSBlYyA9IDA7CisgICAgICAgIHRvQ29udGFpbmVyTm9kZShwYXJlbnQpLT5hcHBlbmRDaGls
ZCh0aGlzLCBlYyk7CisgICAgICAgIEFTU0VSVCghZWMpOwogICAgIH0KIAogICAgIC8vIEFkZCB0
aGUgcmVuZGVyZXIgdG8gdGhlIHJlbmRlciB0cmVlCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>94131</attachid>
            <date>2011-05-19 15:31:40 -0700</date>
            <delta_ts>2011-05-23 16:32:20 -0700</delta_ts>
            <desc>New patch - Removed the change in TextControlInnerElements and kept the deprecated methods as we still have one caller</desc>
            <filename>bug60818-deprecatedParserAddChild-removal-5.diff</filename>
            <type>text/plain</type>
            <size>11108</size>
            <attacher name="Julien Chaffraix">jchaffraix</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCBiMGI5YzgwLi44NmNhN2ExIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNDcg
QEAKKzIwMTEtMDUtMTkgIEp1bGllbiBDaGFmZnJhaXggIDxqY2hhZmZyYWl4QGNvZGVhdXJvcmEu
b3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFJl
bW92ZSBOb2RlOjpkZXByZWNhdGVkUGFyc2VyQWRkQ2hpbGQKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTYwODE4CisKKyAgICAgICAgUmVmYWN0b3Jpbmcg
b25seSBzbyBubyBuZXcgdGVzdHMuCisKKyAgICAgICAgVGhpcyBwYXRjaCBmYWlscyBzaG9ydCBv
ZiBvbmUgaW5zdGFuY2Ugb2YgZGVwcmVjYXRlZFBhcnNlckFkZENoaWxkIHdoaWNoIHdpbGwKKyAg
ICAgICAgcmVxdWlyZSBhIHJlZmFjdG9yaW5nIG9mIDxpbnB1dD4gc2hhZG93IERPTSB0byBiZSBy
ZW1vdmVkLgorCisgICAgICAgICogZG9tL1hNTERvY3VtZW50UGFyc2VyLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OlhNTERvY3VtZW50UGFyc2VyOjpwdXNoQ3VycmVudE5vZGUpOiBVcGRhdGVkIHRv
IHVzZSBhIENvbnRhaW5lck5vZGUuCisgICAgICAgIChXZWJDb3JlOjpYTUxEb2N1bWVudFBhcnNl
cjo6Y2xlYXJDdXJyZW50Tm9kZVN0YWNrKTogV2Ugbm93IG5lZWQgdG8gY2xlYXIKKyAgICAgICAg
dXAgbV9sZWFmVGV4dE5vZGUgdG9vLgorCisgICAgICAgIChXZWJDb3JlOjpYTUxEb2N1bWVudFBh
cnNlcjo6ZW50ZXJUZXh0KToKKyAgICAgICAgKFdlYkNvcmU6OlhNTERvY3VtZW50UGFyc2VyOjpl
eGl0VGV4dCk6CisgICAgICAgIFRob3NlIG1ldGhvZHMgd2VyZSB1cGRhdGVkIHRvIHVzZSBtX2xl
YWZUZXh0Tm9kZSBpbnN0ZWFkIG9mIG1fY3VycmVudE5vZGUuCisKKyAgICAgICAgKiBkb20vWE1M
RG9jdW1lbnRQYXJzZXIuaDoKKyAgICAgICAgQ2hhbmdlZCB0aGUgY3VycmVudE5vZGUgbG9naWMg
dG8gdXNlIENvbnRhaW5lck5vZGUuIEFsc28gZml4ZWQgdGhlIHN0eWxlIG9mIHRoZQorICAgICAg
ICBmb3J3YXJkIGRlY2xhcmF0aW9ucy4KKworICAgICAgICAqIGRvbS9YTUxEb2N1bWVudFBhcnNl
ckxpYnhtbDIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6WE1MRG9jdW1lbnRQYXJzZXI6OnN0YXJ0
RWxlbWVudE5zKToKKyAgICAgICAgKFdlYkNvcmU6OlhNTERvY3VtZW50UGFyc2VyOjplbmRFbGVt
ZW50TnMpOgorICAgICAgICAoV2ViQ29yZTo6WE1MRG9jdW1lbnRQYXJzZXI6OmNoYXJhY3RlcnMp
OgorICAgICAgICAoV2ViQ29yZTo6WE1MRG9jdW1lbnRQYXJzZXI6OnByb2Nlc3NpbmdJbnN0cnVj
dGlvbik6CisgICAgICAgIChXZWJDb3JlOjpYTUxEb2N1bWVudFBhcnNlcjo6Y2RhdGFCbG9jayk6
CisgICAgICAgIChXZWJDb3JlOjpYTUxEb2N1bWVudFBhcnNlcjo6Y29tbWVudCk6CisgICAgICAg
ICogZG9tL1hNTERvY3VtZW50UGFyc2VyUXQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6WE1MRG9j
dW1lbnRQYXJzZXI6OnBhcnNlKToKKyAgICAgICAgKFdlYkNvcmU6OlhNTERvY3VtZW50UGFyc2Vy
OjpwYXJzZVN0YXJ0RWxlbWVudCk6CisgICAgICAgIChXZWJDb3JlOjpYTUxEb2N1bWVudFBhcnNl
cjo6cGFyc2VFbmRFbGVtZW50KToKKyAgICAgICAgKFdlYkNvcmU6OlhNTERvY3VtZW50UGFyc2Vy
OjpwYXJzZUNoYXJhY3RlcnMpOgorICAgICAgICAoV2ViQ29yZTo6WE1MRG9jdW1lbnRQYXJzZXI6
OnBhcnNlUHJvY2Vzc2luZ0luc3RydWN0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OlhNTERvY3Vt
ZW50UGFyc2VyOjpwYXJzZUNkYXRhKToKKyAgICAgICAgKFdlYkNvcmU6OlhNTERvY3VtZW50UGFy
c2VyOjpwYXJzZUNvbW1lbnQpOgorICAgICAgICBSZW1vdmVkIHRoZSBjYWxscyB0byBkZXByZWNh
dGVkUGFyc2VyQWRkQ2hpbGQsIGNoYW5nZWQgdGhlIGNvZGUgdG8gdXNlCisgICAgICAgIG1fbGVh
ZlRleHROb2RlIHdoZW4gaXQgbWFkZSBzZW5zZSBhbmQgdXNlZCBDb250YWluZXJOb2RlIGluc3Rl
YWQgb2YKKyAgICAgICAgTm9kZSBmb3IgbV9jdXJyZW50Tm9kZS4KKwogMjAxMS0wNS0xOSAgRGlt
aXRyaSBHbGF6a292ICA8ZGdsYXprb3ZAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIEZpeCBMZW9w
YXJkIGJ1aWxkIGFmdGVyIHI4Njg2OS4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Y
TUxEb2N1bWVudFBhcnNlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vWE1MRG9jdW1lbnRQYXJz
ZXIuY3BwCmluZGV4IGI4YTBmNWEuLmUxZmYwNjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2RvbS9YTUxEb2N1bWVudFBhcnNlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL1hNTERv
Y3VtZW50UGFyc2VyLmNwcApAQCAtNjgsNyArNjgsNyBAQCB1c2luZyBuYW1lc3BhY2UgSFRNTE5h
bWVzOwogCiBjb25zdCBpbnQgbWF4RXJyb3JzID0gMjU7CiAKLXZvaWQgWE1MRG9jdW1lbnRQYXJz
ZXI6OnB1c2hDdXJyZW50Tm9kZShOb2RlKiBuKQordm9pZCBYTUxEb2N1bWVudFBhcnNlcjo6cHVz
aEN1cnJlbnROb2RlKENvbnRhaW5lck5vZGUqIG4pCiB7CiAgICAgQVNTRVJUKG4pOwogICAgIEFT
U0VSVChtX2N1cnJlbnROb2RlKTsKQEAgLTk4LDYgKzk4LDcgQEAgdm9pZCBYTUxEb2N1bWVudFBh
cnNlcjo6Y2xlYXJDdXJyZW50Tm9kZVN0YWNrKCkKICAgICBpZiAobV9jdXJyZW50Tm9kZSAmJiBt
X2N1cnJlbnROb2RlICE9IGRvY3VtZW50KCkpCiAgICAgICAgIG1fY3VycmVudE5vZGUtPmRlcmVm
KCk7CiAgICAgbV9jdXJyZW50Tm9kZSA9IDA7CisgICAgbV9sZWFmVGV4dE5vZGUgPSAwOwogCiAg
ICAgaWYgKG1fY3VycmVudE5vZGVTdGFjay5zaXplKCkpIHsgLy8gQWJvcnRlZCBwYXJzaW5nLgog
ICAgICAgICBmb3IgKHNpemVfdCBpID0gbV9jdXJyZW50Tm9kZVN0YWNrLnNpemUoKSAtIDE7IGkg
IT0gMDsgLS1pKQpAQCAtMTY3LDkgKzE2OCw5IEBAIHZvaWQgWE1MRG9jdW1lbnRQYXJzZXI6OmVu
dGVyVGV4dCgpCiAjaWYgIVVTRShRWE1MU1RSRUFNKQogICAgIEFTU0VSVChtX2J1ZmZlcmVkVGV4
dC5zaXplKCkgPT0gMCk7CiAjZW5kaWYKLSAgICBSZWZQdHI8Tm9kZT4gbmV3Tm9kZSA9IFRleHQ6
OmNyZWF0ZShkb2N1bWVudCgpLCAiIik7Ci0gICAgbV9jdXJyZW50Tm9kZS0+ZGVwcmVjYXRlZFBh
cnNlckFkZENoaWxkKG5ld05vZGUuZ2V0KCkpOwotICAgIHB1c2hDdXJyZW50Tm9kZShuZXdOb2Rl
LmdldCgpKTsKKyAgICBBU1NFUlQoIW1fbGVhZlRleHROb2RlKTsKKyAgICBtX2xlYWZUZXh0Tm9k
ZSA9IFRleHQ6OmNyZWF0ZShkb2N1bWVudCgpLCAiIik7CisgICAgbV9jdXJyZW50Tm9kZS0+cGFy
c2VyQWRkQ2hpbGQobV9sZWFmVGV4dE5vZGUuZ2V0KCkpOwogfQogCiAjaWYgIVVTRShRWE1MU1RS
RUFNKQpAQCAtMTg1LDIwICsxODYsMjAgQEAgdm9pZCBYTUxEb2N1bWVudFBhcnNlcjo6ZXhpdFRl
eHQoKQogICAgIGlmIChpc1N0b3BwZWQoKSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgaWYgKCFt
X2N1cnJlbnROb2RlIHx8ICFtX2N1cnJlbnROb2RlLT5pc1RleHROb2RlKCkpCisgICAgaWYgKCFt
X2xlYWZUZXh0Tm9kZSkKICAgICAgICAgcmV0dXJuOwogCiAjaWYgIVVTRShRWE1MU1RSRUFNKQog
ICAgIEV4Y2VwdGlvbkNvZGUgZWMgPSAwOwotICAgIHN0YXRpY19jYXN0PFRleHQqPihtX2N1cnJl
bnROb2RlKS0+YXBwZW5kRGF0YSh0b1N0cmluZyhtX2J1ZmZlcmVkVGV4dC5kYXRhKCksIG1fYnVm
ZmVyZWRUZXh0LnNpemUoKSksIGVjKTsKKyAgICBtX2xlYWZUZXh0Tm9kZS0+YXBwZW5kRGF0YSh0
b1N0cmluZyhtX2J1ZmZlcmVkVGV4dC5kYXRhKCksIG1fYnVmZmVyZWRUZXh0LnNpemUoKSksIGVj
KTsKICAgICBWZWN0b3I8eG1sQ2hhcj4gZW1wdHk7CiAgICAgbV9idWZmZXJlZFRleHQuc3dhcChl
bXB0eSk7CiAjZW5kaWYKIAotICAgIGlmIChtX3ZpZXcgJiYgbV9jdXJyZW50Tm9kZSAmJiAhbV9j
dXJyZW50Tm9kZS0+YXR0YWNoZWQoKSkKLSAgICAgICAgbV9jdXJyZW50Tm9kZS0+YXR0YWNoKCk7
CisgICAgaWYgKG1fdmlldyAmJiAhbV9sZWFmVGV4dE5vZGUtPmF0dGFjaGVkKCkpCisgICAgICAg
IG1fbGVhZlRleHROb2RlLT5hdHRhY2goKTsKIAotICAgIHBvcEN1cnJlbnROb2RlKCk7CisgICAg
bV9sZWFmVGV4dE5vZGUgPSAwOwogfQogCiB2b2lkIFhNTERvY3VtZW50UGFyc2VyOjpkZXRhY2go
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL1hNTERvY3VtZW50UGFyc2VyLmggYi9T
b3VyY2UvV2ViQ29yZS9kb20vWE1MRG9jdW1lbnRQYXJzZXIuaAppbmRleCAyMDQzYWRkLi4yOTQ4
MzNmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vWE1MRG9jdW1lbnRQYXJzZXIuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vWE1MRG9jdW1lbnRQYXJzZXIuaApAQCAtNDMsMTQgKzQz
LDE1IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotICAgIGNsYXNzIE5vZGU7Ci0gICAgY2xh
c3MgQ2FjaGVkU2NyaXB0OwotICAgIGNsYXNzIENhY2hlZFJlc291cmNlTG9hZGVyOwotICAgIGNs
YXNzIERvY3VtZW50RnJhZ21lbnQ7Ci0gICAgY2xhc3MgRG9jdW1lbnQ7Ci0gICAgY2xhc3MgRWxl
bWVudDsKLSAgICBjbGFzcyBGcmFtZVZpZXc7Ci0gICAgY2xhc3MgUGVuZGluZ0NhbGxiYWNrczsK
K2NsYXNzIENvbnRhaW5lck5vZGU7CitjbGFzcyBDYWNoZWRTY3JpcHQ7CitjbGFzcyBDYWNoZWRS
ZXNvdXJjZUxvYWRlcjsKK2NsYXNzIERvY3VtZW50RnJhZ21lbnQ7CitjbGFzcyBEb2N1bWVudDsK
K2NsYXNzIEVsZW1lbnQ7CitjbGFzcyBGcmFtZVZpZXc7CitjbGFzcyBQZW5kaW5nQ2FsbGJhY2tz
OworY2xhc3MgVGV4dDsKIAogI2lmICFVU0UoUVhNTFNUUkVBTSkKICAgICBjbGFzcyBYTUxQYXJz
ZXJDb250ZXh0IDogcHVibGljIFJlZkNvdW50ZWQ8WE1MUGFyc2VyQ29udGV4dD4gewpAQCAtMTYx
LDcgKzE2Miw3IEBAIHB1YmxpYzoKICAgICBwcml2YXRlOgogICAgICAgICB2b2lkIGluaXRpYWxp
emVQYXJzZXJDb250ZXh0KGNvbnN0IGNoYXIqIGNodW5rID0gMCk7CiAKLSAgICAgICAgdm9pZCBw
dXNoQ3VycmVudE5vZGUoTm9kZSopOworICAgICAgICB2b2lkIHB1c2hDdXJyZW50Tm9kZShDb250
YWluZXJOb2RlKik7CiAgICAgICAgIHZvaWQgcG9wQ3VycmVudE5vZGUoKTsKICAgICAgICAgdm9p
ZCBjbGVhckN1cnJlbnROb2RlU3RhY2soKTsKIApAQCAtMTg2LDggKzE4NywxMCBAQCBwdWJsaWM6
CiAgICAgICAgIE93blB0cjxQZW5kaW5nQ2FsbGJhY2tzPiBtX3BlbmRpbmdDYWxsYmFja3M7CiAg
ICAgICAgIFZlY3Rvcjx4bWxDaGFyPiBtX2J1ZmZlcmVkVGV4dDsKICNlbmRpZgotICAgICAgICBO
b2RlKiBtX2N1cnJlbnROb2RlOwotICAgICAgICBWZWN0b3I8Tm9kZSo+IG1fY3VycmVudE5vZGVT
dGFjazsKKyAgICAgICAgQ29udGFpbmVyTm9kZSogbV9jdXJyZW50Tm9kZTsKKyAgICAgICAgVmVj
dG9yPENvbnRhaW5lck5vZGUqPiBtX2N1cnJlbnROb2RlU3RhY2s7CisKKyAgICAgICAgUmVmUHRy
PFRleHQ+IG1fbGVhZlRleHROb2RlOwogCiAgICAgICAgIGJvb2wgbV9zYXdFcnJvcjsKICAgICAg
ICAgYm9vbCBtX3Nhd0NTUzsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9YTUxEb2N1
bWVudFBhcnNlckxpYnhtbDIuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL1hNTERvY3VtZW50UGFy
c2VyTGlieG1sMi5jcHAKaW5kZXggMjQ3YWE5NC4uNTBlZWY5NSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvZG9tL1hNTERvY3VtZW50UGFyc2VyTGlieG1sMi5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvZG9tL1hNTERvY3VtZW50UGFyc2VyTGlieG1sMi5jcHAKQEAgLTgyMyw3ICs4MjMsNyBA
QCB2b2lkIFhNTERvY3VtZW50UGFyc2VyOjpzdGFydEVsZW1lbnROcyhjb25zdCB4bWxDaGFyKiB4
bWxMb2NhbE5hbWUsIGNvbnN0IHhtbENoYQogICAgIGlmIChzY3JpcHRFbGVtZW50KQogICAgICAg
ICBtX3NjcmlwdFN0YXJ0UG9zaXRpb24gPSB0ZXh0UG9zaXRpb25PbmVCYXNlZCgpOwogCi0gICAg
bV9jdXJyZW50Tm9kZS0+ZGVwcmVjYXRlZFBhcnNlckFkZENoaWxkKG5ld0VsZW1lbnQuZ2V0KCkp
OworICAgIG1fY3VycmVudE5vZGUtPnBhcnNlckFkZENoaWxkKG5ld0VsZW1lbnQuZ2V0KCkpOwog
CiAgICAgcHVzaEN1cnJlbnROb2RlKG5ld0VsZW1lbnQuZ2V0KCkpOwogICAgIGlmIChtX3ZpZXcg
JiYgIW5ld0VsZW1lbnQtPmF0dGFjaGVkKCkpCkBAIC04NTAsNyArODUwLDcgQEAgdm9pZCBYTUxE
b2N1bWVudFBhcnNlcjo6ZW5kRWxlbWVudE5zKCkKIAogICAgIGV4aXRUZXh0KCk7CiAKLSAgICBO
b2RlKiBuID0gbV9jdXJyZW50Tm9kZTsKKyAgICBDb250YWluZXJOb2RlKiBuID0gbV9jdXJyZW50
Tm9kZTsKICAgICBuLT5maW5pc2hQYXJzaW5nQ2hpbGRyZW4oKTsKIAogICAgIGlmIChtX3Njcmlw
dGluZ1Blcm1pc3Npb24gPT0gRnJhZ21lbnRTY3JpcHRpbmdOb3RBbGxvd2VkICYmIG4tPmlzRWxl
bWVudE5vZGUoKSAmJiB0b1NjcmlwdEVsZW1lbnQoc3RhdGljX2Nhc3Q8RWxlbWVudCo+KG4pKSkg
ewpAQCAtOTI5LDcgKzkyOSw3IEBAIHZvaWQgWE1MRG9jdW1lbnRQYXJzZXI6OmNoYXJhY3RlcnMo
Y29uc3QgeG1sQ2hhciogcywgaW50IGxlbikKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAotICAg
IGlmICghbV9jdXJyZW50Tm9kZS0+aXNUZXh0Tm9kZSgpKQorICAgIGlmICghbV9sZWFmVGV4dE5v
ZGUpCiAgICAgICAgIGVudGVyVGV4dCgpOwogICAgIG1fYnVmZmVyZWRUZXh0LmFwcGVuZChzLCBs
ZW4pOwogfQpAQCAtOTc5LDcgKzk3OSw3IEBAIHZvaWQgWE1MRG9jdW1lbnRQYXJzZXI6OnByb2Nl
c3NpbmdJbnN0cnVjdGlvbihjb25zdCB4bWxDaGFyKiB0YXJnZXQsIGNvbnN0IHhtbENoCiAKICAg
ICBwaS0+c2V0Q3JlYXRlZEJ5UGFyc2VyKHRydWUpOwogCi0gICAgbV9jdXJyZW50Tm9kZS0+ZGVw
cmVjYXRlZFBhcnNlckFkZENoaWxkKHBpLmdldCgpKTsKKyAgICBtX2N1cnJlbnROb2RlLT5wYXJz
ZXJBZGRDaGlsZChwaS5nZXQoKSk7CiAgICAgaWYgKG1fdmlldyAmJiAhcGktPmF0dGFjaGVkKCkp
CiAgICAgICAgIHBpLT5hdHRhY2goKTsKIApAQCAtMTAwNiw4ICsxMDA2LDggQEAgdm9pZCBYTUxE
b2N1bWVudFBhcnNlcjo6Y2RhdGFCbG9jayhjb25zdCB4bWxDaGFyKiBzLCBpbnQgbGVuKQogCiAg
ICAgZXhpdFRleHQoKTsKIAotICAgIFJlZlB0cjxOb2RlPiBuZXdOb2RlID0gQ0RBVEFTZWN0aW9u
OjpjcmVhdGUoZG9jdW1lbnQoKSwgdG9TdHJpbmcocywgbGVuKSk7Ci0gICAgbV9jdXJyZW50Tm9k
ZS0+ZGVwcmVjYXRlZFBhcnNlckFkZENoaWxkKG5ld05vZGUuZ2V0KCkpOworICAgIFJlZlB0cjxD
REFUQVNlY3Rpb24+IG5ld05vZGUgPSBDREFUQVNlY3Rpb246OmNyZWF0ZShkb2N1bWVudCgpLCB0
b1N0cmluZyhzLCBsZW4pKTsKKyAgICBtX2N1cnJlbnROb2RlLT5wYXJzZXJBZGRDaGlsZChuZXdO
b2RlLmdldCgpKTsKICAgICBpZiAobV92aWV3ICYmICFuZXdOb2RlLT5hdHRhY2hlZCgpKQogICAg
ICAgICBuZXdOb2RlLT5hdHRhY2goKTsKIH0KQEAgLTEwMjQsOCArMTAyNCw4IEBAIHZvaWQgWE1M
RG9jdW1lbnRQYXJzZXI6OmNvbW1lbnQoY29uc3QgeG1sQ2hhciogcykKIAogICAgIGV4aXRUZXh0
KCk7CiAKLSAgICBSZWZQdHI8Tm9kZT4gbmV3Tm9kZSA9IENvbW1lbnQ6OmNyZWF0ZShkb2N1bWVu
dCgpLCB0b1N0cmluZyhzKSk7Ci0gICAgbV9jdXJyZW50Tm9kZS0+ZGVwcmVjYXRlZFBhcnNlckFk
ZENoaWxkKG5ld05vZGUuZ2V0KCkpOworICAgIFJlZlB0cjxDb21tZW50PiBuZXdOb2RlID0gQ29t
bWVudDo6Y3JlYXRlKGRvY3VtZW50KCksIHRvU3RyaW5nKHMpKTsKKyAgICBtX2N1cnJlbnROb2Rl
LT5wYXJzZXJBZGRDaGlsZChuZXdOb2RlLmdldCgpKTsKICAgICBpZiAobV92aWV3ICYmICFuZXdO
b2RlLT5hdHRhY2hlZCgpKQogICAgICAgICBuZXdOb2RlLT5hdHRhY2goKTsKIH0KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9YTUxEb2N1bWVudFBhcnNlclF0LmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2RvbS9YTUxEb2N1bWVudFBhcnNlclF0LmNwcAppbmRleCA1M2U1ZWVlLi5jNzRhOGY0
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vWE1MRG9jdW1lbnRQYXJzZXJRdC5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvZG9tL1hNTERvY3VtZW50UGFyc2VyUXQuY3BwCkBAIC00MjUs
MTIgKzQyNSwxMiBAQCB2b2lkIFhNTERvY3VtZW50UGFyc2VyOjpwYXJzZSgpCiAgICAgICAgICAg
ICAgICApIHsKICAgICAgICAgICAgICAgICBRU3RyaW5nIGVudGl0eSA9IG1fc3RyZWFtLm5hbWUo
KS50b1N0cmluZygpOwogICAgICAgICAgICAgICAgIFVDaGFyIGMgPSBkZWNvZGVOYW1lZEVudGl0
eShlbnRpdHkudG9VdGY4KCkuY29uc3REYXRhKCkpOwotICAgICAgICAgICAgICAgIGlmICghbV9j
dXJyZW50Tm9kZS0+aXNUZXh0Tm9kZSgpKQorICAgICAgICAgICAgICAgIGlmICghbV9sZWFmVGV4
dE5vZGUpCiAgICAgICAgICAgICAgICAgICAgIGVudGVyVGV4dCgpOwogICAgICAgICAgICAgICAg
IEV4Y2VwdGlvbkNvZGUgZWMgPSAwOwogICAgICAgICAgICAgICAgIFN0cmluZyBzdHIoJmMsIDEp
OwogICAgICAgICAgICAgICAgIC8vIHFEZWJ1ZygpPDwiIC0tLS0tLS0gYWRkaW5nIGVudGl0eSAi
PDxzdHI7Ci0gICAgICAgICAgICAgICAgc3RhdGljX2Nhc3Q8VGV4dCo+KG1fY3VycmVudE5vZGUp
LT5hcHBlbmREYXRhKHN0ciwgZWMpOworICAgICAgICAgICAgICAgIG1fbGVhZlRleHROb2RlLT5h
cHBlbmREYXRhKHN0ciwgZWMpOwogICAgICAgICAgICAgfQogICAgICAgICB9CiAgICAgICAgICAg
ICBicmVhazsKQEAgLTUzMyw3ICs1MzMsNyBAQCB2b2lkIFhNTERvY3VtZW50UGFyc2VyOjpwYXJz
ZVN0YXJ0RWxlbWVudCgpCiAgICAgaWYgKHNjcmlwdEVsZW1lbnQpCiAgICAgICAgIG1fc2NyaXB0
U3RhcnRQb3NpdGlvbiA9IHRleHRQb3NpdGlvbk9uZUJhc2VkKCk7CiAKLSAgICBtX2N1cnJlbnRO
b2RlLT5kZXByZWNhdGVkUGFyc2VyQWRkQ2hpbGQobmV3RWxlbWVudC5nZXQoKSk7CisgICAgbV9j
dXJyZW50Tm9kZS0+cGFyc2VyQWRkQ2hpbGQobmV3RWxlbWVudC5nZXQoKSk7CiAKICAgICBwdXNo
Q3VycmVudE5vZGUobmV3RWxlbWVudC5nZXQoKSk7CiAgICAgaWYgKG1fdmlldyAmJiAhbmV3RWxl
bWVudC0+YXR0YWNoZWQoKSkKQEAgLTU1Miw3ICs1NTIsNyBAQCB2b2lkIFhNTERvY3VtZW50UGFy
c2VyOjpwYXJzZUVuZEVsZW1lbnQoKQogewogICAgIGV4aXRUZXh0KCk7CiAKLSAgICBOb2RlKiBu
ID0gbV9jdXJyZW50Tm9kZTsKKyAgICBDb250YWluZXJOb2RlKiBuID0gbV9jdXJyZW50Tm9kZTsK
ICAgICBuLT5maW5pc2hQYXJzaW5nQ2hpbGRyZW4oKTsKIAogICAgIGlmIChtX3NjcmlwdGluZ1Bl
cm1pc3Npb24gPT0gRnJhZ21lbnRTY3JpcHRpbmdOb3RBbGxvd2VkICYmIG4tPmlzRWxlbWVudE5v
ZGUoKSAmJiB0b1NjcmlwdEVsZW1lbnQoc3RhdGljX2Nhc3Q8RWxlbWVudCo+KG4pKSkgewpAQCAt
NjEzLDEwICs2MTMsMTAgQEAgdm9pZCBYTUxEb2N1bWVudFBhcnNlcjo6cGFyc2VFbmRFbGVtZW50
KCkKIAogdm9pZCBYTUxEb2N1bWVudFBhcnNlcjo6cGFyc2VDaGFyYWN0ZXJzKCkKIHsKLSAgICBp
ZiAoIW1fY3VycmVudE5vZGUtPmlzVGV4dE5vZGUoKSkKKyAgICBpZiAoIW1fbGVhZlRleHROb2Rl
KQogICAgICAgICBlbnRlclRleHQoKTsKICAgICBFeGNlcHRpb25Db2RlIGVjID0gMDsKLSAgICBz
dGF0aWNfY2FzdDxUZXh0Kj4obV9jdXJyZW50Tm9kZSktPmFwcGVuZERhdGEobV9zdHJlYW0udGV4
dCgpLCBlYyk7CisgICAgbV9sZWFmVGV4dE5vZGUtPmFwcGVuZERhdGEobV9zdHJlYW0udGV4dCgp
LCBlYyk7CiB9CiAKIHZvaWQgWE1MRG9jdW1lbnRQYXJzZXI6OnBhcnNlUHJvY2Vzc2luZ0luc3Ry
dWN0aW9uKCkKQEAgLTYzMyw3ICs2MzMsNyBAQCB2b2lkIFhNTERvY3VtZW50UGFyc2VyOjpwYXJz
ZVByb2Nlc3NpbmdJbnN0cnVjdGlvbigpCiAKICAgICBwaS0+c2V0Q3JlYXRlZEJ5UGFyc2VyKHRy
dWUpOwogCi0gICAgbV9jdXJyZW50Tm9kZS0+ZGVwcmVjYXRlZFBhcnNlckFkZENoaWxkKHBpLmdl
dCgpKTsKKyAgICBtX2N1cnJlbnROb2RlLT5wYXJzZXJBZGRDaGlsZChwaS5nZXQoKSk7CiAgICAg
aWYgKG1fdmlldyAmJiAhcGktPmF0dGFjaGVkKCkpCiAgICAgICAgIHBpLT5hdHRhY2goKTsKIApA
QCAtNjUyLDkgKzY1Miw5IEBAIHZvaWQgWE1MRG9jdW1lbnRQYXJzZXI6OnBhcnNlQ2RhdGEoKQog
ewogICAgIGV4aXRUZXh0KCk7CiAKLSAgICBSZWZQdHI8Tm9kZT4gbmV3Tm9kZSA9IENEQVRBU2Vj
dGlvbjo6Y3JlYXRlKGRvY3VtZW50KCksIG1fc3RyZWFtLnRleHQoKSk7CisgICAgUmVmUHRyPENE
QVRBU2VjdGlvbj4gbmV3Tm9kZSA9IENEQVRBU2VjdGlvbjo6Y3JlYXRlKGRvY3VtZW50KCksIG1f
c3RyZWFtLnRleHQoKSk7CiAKLSAgICBtX2N1cnJlbnROb2RlLT5kZXByZWNhdGVkUGFyc2VyQWRk
Q2hpbGQobmV3Tm9kZS5nZXQoKSk7CisgICAgbV9jdXJyZW50Tm9kZS0+cGFyc2VyQWRkQ2hpbGQo
bmV3Tm9kZS5nZXQoKSk7CiAgICAgaWYgKG1fdmlldyAmJiAhbmV3Tm9kZS0+YXR0YWNoZWQoKSkK
ICAgICAgICAgbmV3Tm9kZS0+YXR0YWNoKCk7CiB9CkBAIC02NjMsOSArNjYzLDkgQEAgdm9pZCBY
TUxEb2N1bWVudFBhcnNlcjo6cGFyc2VDb21tZW50KCkKIHsKICAgICBleGl0VGV4dCgpOwogCi0g
ICAgUmVmUHRyPE5vZGU+IG5ld05vZGUgPSBDb21tZW50OjpjcmVhdGUoZG9jdW1lbnQoKSwgbV9z
dHJlYW0udGV4dCgpKTsKKyAgICBSZWZQdHI8Q29tbWVudD4gbmV3Tm9kZSA9IENvbW1lbnQ6OmNy
ZWF0ZShkb2N1bWVudCgpLCBtX3N0cmVhbS50ZXh0KCkpOwogCi0gICAgbV9jdXJyZW50Tm9kZS0+
ZGVwcmVjYXRlZFBhcnNlckFkZENoaWxkKG5ld05vZGUuZ2V0KCkpOworICAgIG1fY3VycmVudE5v
ZGUtPnBhcnNlckFkZENoaWxkKG5ld05vZGUuZ2V0KCkpOwogICAgIGlmIChtX3ZpZXcgJiYgIW5l
d05vZGUtPmF0dGFjaGVkKCkpCiAgICAgICAgIG5ld05vZGUtPmF0dGFjaCgpOwogfQo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>94516</attachid>
            <date>2011-05-23 16:32:20 -0700</date>
            <delta_ts>2011-05-23 23:07:40 -0700</delta_ts>
            <desc>Final patch: Remove deprecatedParserAddChild</desc>
            <filename>bug60818-deprecatedParserAddChild-removal-final-1.diff</filename>
            <type>text/plain</type>
            <size>3067</size>
            <attacher name="Julien Chaffraix">jchaffraix</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCA0MDU4NzgxLi4yMjliNzEwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTkg
QEAKKzIwMTEtMDUtMjMgIEp1bGllbiBDaGFmZnJhaXggIDxqY2hhZmZyYWl4QGNvZGVhdXJvcmEu
b3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFJl
bW92ZSBOb2RlOjpkZXByZWNhdGVkUGFyc2VyQWRkQ2hpbGQKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTYwODE4CisKKyAgICAgICAgTm8gbmV3IHRlc3Rz
IGFzIHRoaXMgaXMganVzdCBhIHJlbW92YWwuCisKKyAgICAgICAgKiBkb20vQ29udGFpbmVyTm9k
ZS5jcHA6CisgICAgICAgICogZG9tL0NvbnRhaW5lck5vZGUuaDoKKyAgICAgICAgKiBkb20vTm9k
ZS5jcHA6CisgICAgICAgICogZG9tL05vZGUuaDoKKyAgICAgICAgUmVtb3ZlZCB0aGUgbWV0aG9k
IG5vdyB0aGF0IHRoZSBsYXN0IGluc3RhbmNlIGdvdCByZW1vdmVkIGFzIHBhcnQgb2YgdGhlIDxp
bnB1dD4KKyAgICAgICAgc2hhZG93IERPTSByZWZhY3RvcmluZy4KKwogMjAxMS0wNS0yMyAgWXVy
eSBTZW1pa2hhdHNreSAgPHl1cnlzQGNocm9taXVtLm9yZz4KIAogICAgICAgICBSZXZpZXdlZCBi
eSBQYXZlbCBGZWxkbWFuLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0NvbnRhaW5l
ck5vZGUuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL0NvbnRhaW5lck5vZGUuY3BwCmluZGV4IDMy
YjA5MzYuLjc2MWRmNzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Db250YWluZXJO
b2RlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vQ29udGFpbmVyTm9kZS5jcHAKQEAgLTY4
NiwxMSArNjg2LDYgQEAgdm9pZCBDb250YWluZXJOb2RlOjpwYXJzZXJBZGRDaGlsZChQYXNzUmVm
UHRyPE5vZGU+IG5ld0NoaWxkKQogICAgIGNoaWxkcmVuQ2hhbmdlZCh0cnVlLCBsYXN0LCAwLCAx
KTsKIH0KIAotdm9pZCBDb250YWluZXJOb2RlOjpkZXByZWNhdGVkUGFyc2VyQWRkQ2hpbGQoUGFz
c1JlZlB0cjxOb2RlPiBub2RlKQotewotICAgIHBhcnNlckFkZENoaWxkKG5vZGUpOwotfQotCiB2
b2lkIENvbnRhaW5lck5vZGU6OnN1c3BlbmRQb3N0QXR0YWNoQ2FsbGJhY2tzKCkKIHsKICAgICBp
ZiAoIXNfYXR0YWNoRGVwdGgpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Db250
YWluZXJOb2RlLmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vQ29udGFpbmVyTm9kZS5oCmluZGV4IDc2
ZWIxYmQuLjlmNmRjZTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Db250YWluZXJO
b2RlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0NvbnRhaW5lck5vZGUuaApAQCAtMTAyLDEy
ICsxMDIsNiBAQCBwcm90ZWN0ZWQ6CiAgICAgdm9pZCBzZXRMYXN0Q2hpbGQoTm9kZSogY2hpbGQp
IHsgbV9sYXN0Q2hpbGQgPSBjaGlsZDsgfQogCiBwcml2YXRlOgotICAgIC8vIE5ldmVyIGNhbGwg
dGhpcyBmdW5jdGlvbiBkaXJlY3RseS4gIElmIHlvdSdyZSB0cnlpbmcgdG8gY2FsbCB0aGlzCi0g
ICAgLy8gZnVuY3Rpb24sIHlvdXIgY29kZSBpcyBlaXRoZXIgd3Jvbmcgb3IgeW91J3JlIHN1cHBv
c2VkIHRvIGNhbGwKLSAgICAvLyBwYXJzZXJBZGRDaGlsZC4gIFBsZWFzZSBkbyBub3QgY2FsbCBw
YXJzZXJBZGRDaGlsZCB1bmxlc3MgeW91IGFyZSB0aGUKLSAgICAvLyBwYXJzZXIhCi0gICAgdmly
dHVhbCB2b2lkIGRlcHJlY2F0ZWRQYXJzZXJBZGRDaGlsZChQYXNzUmVmUHRyPE5vZGU+KTsKLQog
ICAgIHZvaWQgcmVtb3ZlQmV0d2VlbihOb2RlKiBwcmV2aW91c0NoaWxkLCBOb2RlKiBuZXh0Q2hp
bGQsIE5vZGUqIG9sZENoaWxkKTsKICAgICB2b2lkIGluc2VydEJlZm9yZUNvbW1vbihOb2RlKiBu
ZXh0Q2hpbGQsIE5vZGUqIG9sZENoaWxkKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
ZG9tL05vZGUuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL05vZGUuY3BwCmluZGV4IDY0ZTQzMDAu
LjM3MjRjM2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9kb20vTm9kZS5jcHAKQEAgLTc1NCwxMCArNzU0LDYgQEAgY29uc3QgQXRv
bWljU3RyaW5nJiBOb2RlOjp2aXJ0dWFsTmFtZXNwYWNlVVJJKCkgY29uc3QKICAgICByZXR1cm4g
bnVsbEF0b207CiB9CiAKLXZvaWQgTm9kZTo6ZGVwcmVjYXRlZFBhcnNlckFkZENoaWxkKFBhc3NS
ZWZQdHI8Tm9kZT4pCi17Ci19Ci0KIGJvb2wgTm9kZTo6aXNDb250ZW50RWRpdGFibGUoKSBjb25z
dAogewogICAgIGRvY3VtZW50KCktPnVwZGF0ZUxheW91dElnbm9yZVBlbmRpbmdTdHlsZXNoZWV0
cygpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL05vZGUuaCBiL1NvdXJjZS9XZWJD
b3JlL2RvbS9Ob2RlLmgKaW5kZXggZTVmMzFiNS4uYzk1M2VlOSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvZG9tL05vZGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZS5oCkBAIC0y
NjcsOSArMjY3LDYgQEAgcHVibGljOgogICAgIAogICAgIGJvb2wgaW5TYW1lQ29udGFpbmluZ0Js
b2NrRmxvd0VsZW1lbnQoTm9kZSopOwogCi0gICAgLy8gRklYTUU6IEFsbCBjYWxsZXJzIG9mIHRo
aXMgZnVuY3Rpb24gYXJlIGFsbW9zdCBjZXJ0YWlubHkgd3JvbmchCi0gICAgdmlydHVhbCB2b2lk
IGRlcHJlY2F0ZWRQYXJzZXJBZGRDaGlsZChQYXNzUmVmUHRyPE5vZGU+KTsKLQogICAgIC8vIENh
bGxlZCBieSB0aGUgcGFyc2VyIHdoZW4gdGhpcyBlbGVtZW50J3MgY2xvc2UgdGFnIGlzIHJlYWNo
ZWQsCiAgICAgLy8gc2lnbmFsaW5nIHRoYXQgYWxsIGNoaWxkIHRhZ3MgaGF2ZSBiZWVuIHBhcnNl
ZCBhbmQgYWRkZWQuCiAgICAgLy8gVGhpcyBpcyBuZWVkZWQgZm9yIDxhcHBsZXQ+IGFuZCA8b2Jq
ZWN0PiBlbGVtZW50cywgd2hpY2ggY2FuJ3QgbGF5IHRoZW1zZWx2ZXMgb3V0Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>