<?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>53611</bug_id>
          
          <creation_ts>2011-02-02 11:47:38 -0800</creation_ts>
          <short_desc>Propagate security origin of parent document into HTML documents created with DOMImplementation</short_desc>
          <delta_ts>2011-02-21 12:46:15 -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>WebCore Misc.</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>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="anton muhin">antonm</reporter>
          <assigned_to name="anton muhin">antonm</assigned_to>
          <cc>abarth</cc>
    
    <cc>ap</cc>
    
    <cc>buildbot</cc>
    
    <cc>commit-queue</cc>
    
    <cc>darin</cc>
    
    <cc>sam</cc>
    
    <cc>webkit-ews</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>344091</commentid>
    <comment_count>0</comment_count>
    <who name="anton muhin">antonm</who>
    <bug_when>2011-02-02 11:47:38 -0800</bug_when>
    <thetext>Propagate security origin of parent document into HTML documents created with DOMImplementation</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>344113</commentid>
    <comment_count>1</comment_count>
      <attachid>80945</attachid>
    <who name="anton muhin">antonm</who>
    <bug_when>2011-02-02 12:04:00 -0800</bug_when>
    <thetext>Created attachment 80945
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>344119</commentid>
    <comment_count>2</comment_count>
      <attachid>80947</attachid>
    <who name="anton muhin">antonm</who>
    <bug_when>2011-02-02 12:08:21 -0800</bug_when>
    <thetext>Created attachment 80947
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>344194</commentid>
    <comment_count>3</comment_count>
      <attachid>80947</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2011-02-02 13:38:32 -0800</bug_when>
    <thetext>Comment on attachment 80947
Patch

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

&gt; Source/WebCore/dom/DOMImplementation.h:71
&gt; -    DOMImplementation() { }
&gt; +    DOMImplementation(const Document* parent) : m_parent(parent) { }

I&apos;d move this into the CPP file and ASSERT(m_parent).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>344614</commentid>
    <comment_count>4</comment_count>
      <attachid>81047</attachid>
    <who name="anton muhin">antonm</who>
    <bug_when>2011-02-03 03:13:05 -0800</bug_when>
    <thetext>Created attachment 81047
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>344621</commentid>
    <comment_count>5</comment_count>
    <who name="anton muhin">antonm</who>
    <bug_when>2011-02-03 03:27:25 -0800</bug_when>
    <thetext>(In reply to comment #3)
&gt; (From update of attachment 80947 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=80947&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/dom/DOMImplementation.h:71
&gt; &gt; -    DOMImplementation() { }
&gt; &gt; +    DOMImplementation(const Document* parent) : m_parent(parent) { }
&gt; 
&gt; I&apos;d move this into the CPP file and ASSERT(m_parent).

Done.  I&apos;ve uploaded with r? to run though bots once again.  Once it green, I&apos;ll ask for r+ from someone around to land it actually.  Thanks a lot for review, Adam.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>344639</commentid>
    <comment_count>6</comment_count>
      <attachid>81047</attachid>
    <who name="anton muhin">antonm</who>
    <bug_when>2011-02-03 05:03:46 -0800</bug_when>
    <thetext>Comment on attachment 81047
Patch

Thanks a lot, Yury!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>345057</commentid>
    <comment_count>7</comment_count>
      <attachid>81047</attachid>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2011-02-03 15:22:53 -0800</bug_when>
    <thetext>Comment on attachment 81047
Patch

Do we ever use &quot;const Document*&quot; (other than in misguided code)? I may be just confused, but I think that the design is such that large classes like Docuemnt or Frame are never const in WebCore.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>345429</commentid>
    <comment_count>8</comment_count>
    <who name="anton muhin">antonm</who>
    <bug_when>2011-02-04 03:08:39 -0800</bug_when>
    <thetext>Alexey,

WebCore::Document::implementation() is const method hence I cannot obtain not const Document unless I const cast it away or change constness of the method.   As Document::securityOrigin is const as well, the simplest solution was to store a pointer to a const Document.

Does that sound reasonable?

yours,
anton.

(In reply to comment #7)
&gt; (From update of attachment 81047 [details])
&gt; Do we ever use &quot;const Document*&quot; (other than in misguided code)? I may be just confused, but I think that the design is such that large classes like Docuemnt or Frame are never const in WebCore.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>345512</commentid>
    <comment_count>9</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2011-02-04 08:51:36 -0800</bug_when>
    <thetext>I think that no methods on Document are supposed to be const. Darin, is that accurate?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>345514</commentid>
    <comment_count>10</comment_count>
    <who name="anton muhin">antonm</who>
    <bug_when>2011-02-04 08:53:30 -0800</bug_when>
    <thetext>I am sorry, but that&apos;s apparently not directly related to the patch under consideration.  Maybe I should be allowed to proceed with it and if conclusion would be constness should be removed, my poor const Document will go away with this change as well?

(In reply to comment #9)
&gt; I think that no methods on Document are supposed to be const. Darin, is that accurate?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>345526</commentid>
    <comment_count>11</comment_count>
      <attachid>81047</attachid>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2011-02-04 09:19:24 -0800</bug_when>
    <thetext>Comment on attachment 81047
Patch

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

OK, I took a deeper look now, and I&apos;m puzzled why this has r+ at all. I would encourage reviewers to pay more attention to what they approve.

&gt; Source/WebCore/ChangeLog:10
&gt; +        Absence of regressions is covered by the current tests.  It&apos;s difficult
&gt; +        to check this via layout tests as objects reside in the same JS context and hence
&gt; +        there are no security origin checks.

If this is not observable, why do this at all? And if it&apos;s just difficult to test, it still needs a test.

Note that we already have code to deal with security context of documents created via DOMImplementation in Document::initSecurityContext(). If it&apos;s wrong, or the comment there is wrong, that should be addressed.

Finally, this change directly contradicts DOM 3 Core &lt;http://www.w3.org/TR/DOM-Level-3-Core/core.html#ID-102161490&gt;, which says &quot;The DOMImplementation interface provides a number of methods for performing operations that are independent of any particular instance of the document object model.&quot; There should be an explanation of why that&apos;s OK.

&gt; Source/WebCore/dom/DOMImplementation.cpp:174
&gt; +DOMImplementation::DOMImplementation(const Document* parent) : m_parent(parent)

Initialization should be on a separate line.

&gt; Source/WebCore/dom/DOMImplementation.cpp:251
&gt; +    if (!m_parent) {
&gt; +        ec = INVALID_STATE_ERR;
&gt; +        return 0;
&gt; +    }

Is this how it works in other browsers? This is definitely testable, and there should be a regression test.

Garbage collection should never be observable in JavaScript, so instead of checking for document having been destroyed and raising an exception, you should make sure that it is not destroyed while observable through DOMImplementation. For JSC, this is done by overriding markChildren method (see e.g. JSDocument::markChildren() in JSDocumentCustom.cpp).

&gt; Source/WebCore/dom/DOMImplementation.h:68
&gt; +    void documentDestroyed()
&gt; +    {
&gt; +        m_parent = 0;
&gt; +    }

This should be on one line.

&gt; Source/WebCore/dom/DOMImplementation.h:73
&gt; +    const Document* m_parent;

The document is not a parent of DOMImplementation, so the name is misleading.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>345562</commentid>
    <comment_count>12</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2011-02-04 09:55:27 -0800</bug_when>
    <thetext>(In reply to comment #9)
&gt; I think that no methods on Document are supposed to be const. Darin, is that accurate?

Yes. It’s important to remove const from a function rather than starting to use const Document* in new code.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>345569</commentid>
    <comment_count>13</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2011-02-04 10:07:43 -0800</bug_when>
    <thetext>&gt; If this is not observable, why do this at all? And if it&apos;s just difficult to test, it still needs a test.

This is one patch in a series of patches, which unfortunately does not have a meta bug to explain the context.  The main idea is that we are adding some defense-in-depth security checks to V8 as described in &lt;http://www.adambarth.com/papers/2009/barth-weinberger-song.pdf&gt;.  These checks are not directly observable because they are defense-in-depth.

Before we turn the checks on, we need to associate the correct security context with a number of objects.  There are a number of objects in WebCore that have incorrect security contexts, but that can&apos;t be observed as such because the security check that would block access isn&apos;t actually materialized (see the paper above for an explanation of why that&apos;s the case). 

Documents created via DOMImplementation are an example of one of these objects.

&gt; Note that we already have code to deal with security context of documents created via DOMImplementation in Document::initSecurityContext(). If it&apos;s wrong, or the comment there is wrong, that should be addressed.

This code assumes that documents that don&apos;t have a frame belong to the null security context.  That&apos;s not really accurate, but it&apos;s a fine default.

&gt; Finally, this change directly contradicts DOM 3 Core &lt;http://www.w3.org/TR/DOM-Level-3-Core/core.html#ID-102161490&gt;, which says &quot;The DOMImplementation interface provides a number of methods for performing operations that are independent of any particular instance of the document object model.&quot; There should be an explanation of why that&apos;s OK.

I&apos;m not sure how that&apos;s related to the discussion here.  That requirement is on the operation of the interface.  This patch is related to some internal bookkeeping about who should have access to which objects.

Relatedly, there are several design pressures pushing us to associate a parent or owner document with documents created by DOMImplementation.  We&apos;ve seen it proposed in a number of different patches, including the patches related to document.load and loading subresources from XSLT.

&gt; &gt; Source/WebCore/dom/DOMImplementation.h:73
&gt; &gt; +    const Document* m_parent;
&gt; 
&gt; The document is not a parent of DOMImplementation, so the name is misleading.

Perhaps m_ownerDocument would be more accurate?

Thanks for your comments.  My apologies that the full context for these patches hasn&apos;t been included in each one.  I should have asked antonm to create a meta bug with that information.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>345584</commentid>
    <comment_count>14</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2011-02-04 10:19:16 -0800</bug_when>
    <thetext>&gt; I&apos;m not sure how that&apos;s related to the discussion here.

Well, I still don&apos;t have context, but to me, this phrase from the spec bluntly says &quot;there should be no m_document pointer in your WebCore::DOMImplementation class&quot;.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>345616</commentid>
    <comment_count>15</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2011-02-04 10:59:01 -0800</bug_when>
    <thetext>(In reply to comment #14)
&gt; &gt; I&apos;m not sure how that&apos;s related to the discussion here.
&gt; 
&gt; Well, I still don&apos;t have context, but to me, this phrase from the spec bluntly says &quot;there should be no m_document pointer in your WebCore::DOMImplementation class&quot;.

The documents created via DOMImplementation are implicitly related to other documents already.  For example, if you follow the JavaScript prototype chain backwards from window.document and from a document created via DOMImplementation, you&apos;ll eventually arrive at an object that they share.  Similarly, following the prototype chain backwards from document.implementation backwards will also lead to an object in the prototype chain of window.document.

From that perspective, it&apos;s unclear to me whether the author of that sentence understood its implications in the way you describe.  In any case, specifications are only about observable behavior, not about implementation.  Is there some experiment we should run to observe us violation this requirement of the specification?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>345649</commentid>
    <comment_count>16</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2011-02-04 11:40:40 -0800</bug_when>
    <thetext>&gt; For example, if you follow the JavaScript prototype chain backwards from window.document 
&gt; and from a document created via DOMImplementation, you&apos;ll eventually arrive at an object
&gt; that they share.

Should that be considered a bug? Can it possibly be fixed?

&gt; Is there some experiment we should run to observe us violation this requirement of the specification?

With the attached patch, yes. DOMImplementation fails to create a document after its owner document is deleted.

It&apos;s of course difficult to propose an experiment to detect a design mistake in something that&apos;s not supposed to ever be observable! But it is still feels very strange that we need to add new dependencies between objects just for a non-observable feature.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>345661</commentid>
    <comment_count>17</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2011-02-04 11:54:50 -0800</bug_when>
    <thetext>(In reply to comment #16)
&gt; &gt; For example, if you follow the JavaScript prototype chain backwards from window.document 
&gt; &gt; and from a document created via DOMImplementation, you&apos;ll eventually arrive at an object
&gt; &gt; that they share.
&gt; 
&gt; Should that be considered a bug? Can it possibly be fixed?

It&apos;s not a bug and it cannot be fixed.  That&apos;s the way JavaScript works.

&gt; &gt; Is there some experiment we should run to observe us violation this requirement of the specification?
&gt; 
&gt; With the attached patch, yes. DOMImplementation fails to create a document after its owner document is deleted.

That&apos;s probably worth writing a test for.  However, most DOM methods fail to anything useful after their owner document is deleted.

&gt; It&apos;s of course difficult to propose an experiment to detect a design mistake in something that&apos;s not supposed to ever be observable! But it is still feels very strange that we need to add new dependencies between objects just for a non-observable feature.

I don&apos;t agree that it&apos;s a design mistake.  Somehow we need to assign a security context to the newly created document.  Do you have another proposal for how to do that?

Currently, our design is to not assign it a security context and hope that its pointer doesn&apos;t leak into the wrong hands.  Historically, we&apos;ve had vulnerabilities precisely because it has leaked.  We&apos;d like to harden ourselves against this class of vulnerabilities.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>345672</commentid>
    <comment_count>18</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2011-02-04 12:02:00 -0800</bug_when>
    <thetext>&gt; &gt; &gt; For example, if you follow the JavaScript prototype chain backwards from window.document 
&gt; &gt; &gt; and from a document created via DOMImplementation, you&apos;ll eventually arrive at an object
&gt; &gt; &gt; that they share.

Could you please attach a test for that? I can&apos;t get that work in Safari 5.0.3, no matter how many &quot;.__proto__&quot; I append.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>345748</commentid>
    <comment_count>19</comment_count>
    <who name="anton muhin">antonm</who>
    <bug_when>2011-02-04 13:34:58 -0800</bug_when>
    <thetext>Alexey, thank you very much for your comments.

Let me try to clarify several things.

As far as I understand currently there is the following invariant: if two JS objects belong to the same JS context (roughly, they share the same Object.prototype), they must belong to the same security domain, otherwise we have the security issue.

However, v8 for sure and as far as I can judge from the source JSC bindings both take the following shortcut: if objects are in the same context, we do not check their security origins.

Therefore, current WebKit implementation breaks the important invariant above: document and documents created via DOMImplementation live in one context, but their security origins are different.  It&apos;s impossible to prove in pure JS due to shortcut above, but quite easy in C++---just add an ASSERT.

(BTW, it looks like you&apos;d like to see if it&apos;s indeed the case the document and documents created via DOMImplementation reside in the same context.  That&apos;s easy to prove.  Open any page in Safari and then in WebInspector do something like:

d = document.implementation.createHTMLDocument(&apos;&apos;)
Document
Object.prototype.isPrototypeOf(d)
true
Object.prototype.isPrototypeOf(document)
true

As can be seen both d and document share the same Object.prototype.

That&apos;s exactly the issue I&apos;d like to address.  BTW, FF4 and Opera 11 both do it right, try &quot;document.implementation.createHTMLDocument().domain&quot; in those browsers and in Safari and Chromium.

Now to the solution.  I decided to add a pointer to parent document to the DOMImplementation.  You cite: &quot;The DOMImplementation interface provides a number of methods for performing operations that are independent of any particular instance of the document object model.&quot;.  Note though, that it talks of instance of DOM (standard assumes that there might be different DOM implementations even residing in one browser that&apos;s why it&apos;s not guaranteed that you can move nodes around).  Please, note as well http://www.w3.org/TR/html5/dom.html#the-document-s-address : &quot;When a Document is created by a script using the createDocument() or createHTMLDocument() APIs, the document&apos;s address is the same as the document&apos;s address of the script&apos;s document.&quot; which at the very least (imho) makes DOMImplementation dependent on script to document relationship.  Probably, we need clarifications from other people involved in HTML5 spec.

Now to ref counting.  Then I added an exception, I thought not about JS bindings, but about general situation: what if I keep a live reference to DOMImplementation with RefPtr.  Throwing an exception appeared for me to be the best way out.

But I am definitely guilty of forgetting to introduce dependency from DOMimplementation to the document in JS which I introduced in C++.  Thanks a lot for spotting this.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>345798</commentid>
    <comment_count>20</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2011-02-04 14:32:15 -0800</bug_when>
    <thetext>Thanks Anton, that&apos;s perfectly convincing.

The reason I was confused is that we get different prototype chains for normal documents and ones created with DOMImplementation.createDocument:

var doc = document.implementation.createDocument(null, &quot;doc&quot;, null);
alert(document.__proto__.__proto__.__proto__.__proto__ === doc.__proto__.__proto__.__proto__.__proto__)
// prints false

So, this patch just needs:
-  JSDOMImplementation mark JSDocument,
- a test for this behavior,
- no more const Document*.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>347523</commentid>
    <comment_count>21</comment_count>
      <attachid>81664</attachid>
    <who name="anton muhin">antonm</who>
    <bug_when>2011-02-08 10:59:03 -0800</bug_when>
    <thetext>Created attachment 81664
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>347533</commentid>
    <comment_count>22</comment_count>
    <who name="anton muhin">antonm</who>
    <bug_when>2011-02-08 11:02:49 -0800</bug_when>
    <thetext>I&apos;ve uploaded new version of the patch which (I hope) should address all concerns.

I don&apos;t believe &apos;parent&apos; will survive :) and will be happy to change to any better term.  Adam once suggested &apos;owner&apos;.

(In reply to comment #20)
&gt; Thanks Anton, that&apos;s perfectly convincing.
&gt; 
&gt; The reason I was confused is that we get different prototype chains for normal documents and ones created with DOMImplementation.createDocument:
&gt; 
&gt; var doc = document.implementation.createDocument(null, &quot;doc&quot;, null);
&gt; alert(document.__proto__.__proto__.__proto__.__proto__ === doc.__proto__.__proto__.__proto__.__proto__)
&gt; // prints false
&gt; 
&gt; So, this patch just needs:
&gt; -  JSDOMImplementation mark JSDocument,
&gt; - a test for this behavior,
&gt; - no more const Document*.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>347535</commentid>
    <comment_count>23</comment_count>
    <who name="anton muhin">antonm</who>
    <bug_when>2011-02-08 11:04:46 -0800</bug_when>
    <thetext>Sorry, forgot to add JSDOMImplementationCustom.cpp, uploading in no time.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>347546</commentid>
    <comment_count>24</comment_count>
      <attachid>81667</attachid>
    <who name="anton muhin">antonm</who>
    <bug_when>2011-02-08 11:12:19 -0800</bug_when>
    <thetext>Created attachment 81667
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>347578</commentid>
    <comment_count>25</comment_count>
    <who name="anton muhin">antonm</who>
    <bug_when>2011-02-08 11:54:34 -0800</bug_when>
    <thetext>One thing I need to mention: alas, commenting out body of JSDOMImplementation::markChildren doesn&apos;t make added test fail.  I&apos;ll try to investigate it more.

(In reply to comment #24)
&gt; Created an attachment (id=81667) [details]
&gt; Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>347585</commentid>
    <comment_count>26</comment_count>
    <who name="Build Bot">buildbot</who>
    <bug_when>2011-02-08 12:08:29 -0800</bug_when>
    <thetext>Attachment 81667 did not build on win:
Build output: http://queues.webkit.org/results/7801160</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>347586</commentid>
    <comment_count>27</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2011-02-08 12:09:59 -0800</bug_when>
    <thetext>I suggest ownerDocument()/m_ownerDocument.

Is gc-9.html the best place for this, or should a new test be added? You can try adding a timeout to make it more likely that the document pointer gets off stack and collected.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>347589</commentid>
    <comment_count>28</comment_count>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2011-02-08 12:14:16 -0800</bug_when>
    <thetext>Attachment 81667 did not build on qt:
Build output: http://queues.webkit.org/results/7847151</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>349869</commentid>
    <comment_count>29</comment_count>
      <attachid>82152</attachid>
    <who name="anton muhin">antonm</who>
    <bug_when>2011-02-11 11:28:56 -0800</bug_when>
    <thetext>Created attachment 82152
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>349872</commentid>
    <comment_count>30</comment_count>
    <who name="anton muhin">antonm</who>
    <bug_when>2011-02-11 11:32:05 -0800</bug_when>
    <thetext>(In reply to comment #27)
&gt; I suggest ownerDocument()/m_ownerDocument.

Done.

&gt; Is gc-9.html the best place for this, or should a new test be added? You can try adding a timeout to 
make it more likely that the document pointer gets off stack and collected.

The test didn&apos;t work because I forgot to add it into main test runner, sorry, now everything is fine.

Regarding gc-9 vs. separate layout test.  I personally prefer to keep number of tests to the minimum and keep related things together.  But you should be ways more experienced in true WebKit ways, so if you&apos;d prefer to have a separate test, so it&apos;ll be.

Sorry for delay, has been preempted.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>349908</commentid>
    <comment_count>31</comment_count>
      <attachid>82152</attachid>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2011-02-11 12:14:51 -0800</bug_when>
    <thetext>Comment on attachment 82152
Patch

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

&gt; if you&apos;d prefer to have a separate test, so it&apos;ll be.

It&apos;s good to have tests in one file when they are clearly independent (output is clearly separated, there is no conceivable way the tests could affect each other by being on one page, and you can comment out all subtests but one for easier debugging). When that&apos;s not true, separate tests make it easier to figure out what happened when they fail.

r=me with comments addressed.

&gt; LayoutTests/fast/dom/gc-9.html:90
&gt; +  impl.createHTMLDocument(&apos;&apos;);  // May crash or throw an excepiton if we collect parent document of impl.

Typo: exception.

&gt; Source/WebCore/bindings/js/JSDOMImplementationCustom.cpp:5
&gt; + * modify it under the terms of the GNU Library General Public

Please consider using a BSD license for new code.

&gt; Source/WebCore/bindings/js/JSDOMImplementationCustom.cpp:34
&gt; +    Document* doc = domImplementation-&gt;ownerDocument();

Please don&apos;t abbreviate &quot;ownerDocument&quot;.

&gt; Source/WebCore/bindings/js/JSDOMImplementationCustom.cpp:39
&gt; +} // namespace WebCore

I&apos;m not a fan of these comments - they don&apos;t guarantee that they are true if you&apos;re wondering about that (you&apos;ll use your editor to find matching brace if you really need to check what&apos;s wrong with nesting), but most of the time, they just add visual noise.

&gt; Source/WebCore/dom/DOMImplementation.h:48
&gt; +    PassRefPtr&lt;DocumentType&gt; createDocumentType(const String&amp; qualifiedName, const String&amp; publicId, const String &amp;systemId, ExceptionCode&amp;);

As you&apos;re touching this code already, please move &quot;&amp;&quot; to a correct position.

&gt; Source/WebCore/dom/DOMImplementation.h:72
&gt; +    template &lt;class T&gt;
&gt; +    PassRefPtr&lt;T&gt; setSecurityOrigin(PassRefPtr&lt;T&gt; doc);

I could suggest not using a template, and spelling out &quot;document&quot;. But it would probably be best to just inline this function in the only place it&apos;s used.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>349910</commentid>
    <comment_count>32</comment_count>
    <who name="anton muhin">antonm</who>
    <bug_when>2011-02-11 12:22:15 -0800</bug_when>
    <thetext>Alexey, thanks a lot for all your suggestions.  I&apos;ll address all comments next week, but right now I&apos;d ask you just one question: may you provide me a link to the BSD license?  I copied the license from JSDOMWindowCustom.cpp.

ANd another minor question: I just kept this &quot;// namespace WebCore&quot; from JSDOMWindowCustom.cpp which I used as a template.  If modern trend is to remove them, I&apos;d be happy as I find them distracting too.  Just double checking.

Thanks again for review.

And I&apos;ll upload another r? patch to run through various builder we have.

(In reply to comment #31)
&gt; (From update of attachment 82152 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=82152&amp;action=review
&gt; 
&gt; &gt; if you&apos;d prefer to have a separate test, so it&apos;ll be.
&gt; 
&gt; It&apos;s good to have tests in one file when they are clearly independent (output is clearly separated, there is no conceivable way the tests could affect each other by being on one page, and you can comment out all subtests but one for easier debugging). When that&apos;s not true, separate tests make it easier to figure out what happened when they fail.
&gt; 
&gt; r=me with comments addressed.
&gt; 
&gt; &gt; LayoutTests/fast/dom/gc-9.html:90
&gt; &gt; +  impl.createHTMLDocument(&apos;&apos;);  // May crash or throw an excepiton if we collect parent document of impl.
&gt; 
&gt; Typo: exception.
&gt; 
&gt; &gt; Source/WebCore/bindings/js/JSDOMImplementationCustom.cpp:5
&gt; &gt; + * modify it under the terms of the GNU Library General Public
&gt; 
&gt; Please consider using a BSD license for new code.
&gt; 
&gt; &gt; Source/WebCore/bindings/js/JSDOMImplementationCustom.cpp:34
&gt; &gt; +    Document* doc = domImplementation-&gt;ownerDocument();
&gt; 
&gt; Please don&apos;t abbreviate &quot;ownerDocument&quot;.
&gt; 
&gt; &gt; Source/WebCore/bindings/js/JSDOMImplementationCustom.cpp:39
&gt; &gt; +} // namespace WebCore
&gt; 
&gt; I&apos;m not a fan of these comments - they don&apos;t guarantee that they are true if you&apos;re wondering about that (you&apos;ll use your editor to find matching brace if you really need to check what&apos;s wrong with nesting), but most of the time, they just add visual noise.
&gt; 
&gt; &gt; Source/WebCore/dom/DOMImplementation.h:48
&gt; &gt; +    PassRefPtr&lt;DocumentType&gt; createDocumentType(const String&amp; qualifiedName, const String&amp; publicId, const String &amp;systemId, ExceptionCode&amp;);
&gt; 
&gt; As you&apos;re touching this code already, please move &quot;&amp;&quot; to a correct position.
&gt; 
&gt; &gt; Source/WebCore/dom/DOMImplementation.h:72
&gt; &gt; +    template &lt;class T&gt;
&gt; &gt; +    PassRefPtr&lt;T&gt; setSecurityOrigin(PassRefPtr&lt;T&gt; doc);
&gt; 
&gt; I could suggest not using a template, and spelling out &quot;document&quot;. But it would probably be best to just inline this function in the only place it&apos;s used.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>349925</commentid>
    <comment_count>33</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2011-02-11 12:37:17 -0800</bug_when>
    <thetext>(In reply to comment #32)
&gt; may you provide me a link to the BSD license?  I copied the license from JSDOMWindowCustom.cpp.

We have &lt;http://webkit.org/coding/bsd-license.html&gt; on site - Google employees probably need to use a version with &quot;Google, Inc.&quot; in it though.

&gt; ANd another minor question: I just kept this &quot;// namespace WebCore&quot; from JSDOMWindowCustom.cpp which I used as a template.  If modern trend is to remove them, I&apos;d be happy as I find them distracting too.  Just double checking.

We don&apos;t have a style guideline on this, but there was a moderate level of support for not having comments on closing whole file namespace blocks when discussed on webkit-dev. I sometimes comment on this when there aren&apos;t bigger issues to comment on.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>350599</commentid>
    <comment_count>34</comment_count>
      <attachid>82306</attachid>
    <who name="anton muhin">antonm</who>
    <bug_when>2011-02-14 05:10:50 -0800</bug_when>
    <thetext>Created attachment 82306
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>350611</commentid>
    <comment_count>35</comment_count>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2011-02-14 05:32:06 -0800</bug_when>
    <thetext>Attachment 82306 did not build on qt:
Build output: http://queues.webkit.org/results/7913505</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>350612</commentid>
    <comment_count>36</comment_count>
      <attachid>82308</attachid>
    <who name="anton muhin">antonm</who>
    <bug_when>2011-02-14 05:35:04 -0800</bug_when>
    <thetext>Created attachment 82308
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>350613</commentid>
    <comment_count>37</comment_count>
    <who name="anton muhin">antonm</who>
    <bug_when>2011-02-14 05:36:04 -0800</bug_when>
    <thetext>Thanks a lot for pointers and further explanations.  Uploading new patch with the license and removed comment.

(In reply to comment #33)
&gt; (In reply to comment #32)
&gt; &gt; may you provide me a link to the BSD license?  I copied the license from JSDOMWindowCustom.cpp.
&gt; 
&gt; We have &lt;http://webkit.org/coding/bsd-license.html&gt; on site - Google employees probably need to use a version with &quot;Google, Inc.&quot; in it though.
&gt; 
&gt; &gt; ANd another minor question: I just kept this &quot;// namespace WebCore&quot; from JSDOMWindowCustom.cpp which I used as a template.  If modern trend is to remove them, I&apos;d be happy as I find them distracting too.  Just double checking.
&gt; 
&gt; We don&apos;t have a style guideline on this, but there was a moderate level of support for not having comments on closing whole file namespace blocks when discussed on webkit-dev. I sometimes comment on this when there aren&apos;t bigger issues to comment on.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>350618</commentid>
    <comment_count>38</comment_count>
    <who name="Build Bot">buildbot</who>
    <bug_when>2011-02-14 05:59:48 -0800</bug_when>
    <thetext>Attachment 82306 did not build on win:
Build output: http://queues.webkit.org/results/7913513</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>350627</commentid>
    <comment_count>39</comment_count>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2011-02-14 06:17:05 -0800</bug_when>
    <thetext>Attachment 82308 did not build on qt:
Build output: http://queues.webkit.org/results/7913516</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>350629</commentid>
    <comment_count>40</comment_count>
    <who name="Build Bot">buildbot</who>
    <bug_when>2011-02-14 06:20:27 -0800</bug_when>
    <thetext>Attachment 82308 did not build on win:
Build output: http://queues.webkit.org/results/7912506</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>350660</commentid>
    <comment_count>41</comment_count>
      <attachid>82315</attachid>
    <who name="anton muhin">antonm</who>
    <bug_when>2011-02-14 08:02:24 -0800</bug_when>
    <thetext>Created attachment 82315
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>350683</commentid>
    <comment_count>42</comment_count>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2011-02-14 08:45:42 -0800</bug_when>
    <thetext>Attachment 82315 did not build on qt:
Build output: http://queues.webkit.org/results/7911575</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>350685</commentid>
    <comment_count>43</comment_count>
    <who name="Build Bot">buildbot</who>
    <bug_when>2011-02-14 08:49:42 -0800</bug_when>
    <thetext>Attachment 82315 did not build on win:
Build output: http://queues.webkit.org/results/7907634</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>350769</commentid>
    <comment_count>44</comment_count>
      <attachid>82341</attachid>
    <who name="anton muhin">antonm</who>
    <bug_when>2011-02-14 11:01:31 -0800</bug_when>
    <thetext>Created attachment 82341
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>350826</commentid>
    <comment_count>45</comment_count>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2011-02-14 12:43:49 -0800</bug_when>
    <thetext>Attachment 82341 did not build on qt:
Build output: http://queues.webkit.org/results/7910688</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>350837</commentid>
    <comment_count>46</comment_count>
    <who name="Build Bot">buildbot</who>
    <bug_when>2011-02-14 13:04:05 -0800</bug_when>
    <thetext>Attachment 82341 did not build on win:
Build output: http://queues.webkit.org/results/7912589</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>351251</commentid>
    <comment_count>47</comment_count>
      <attachid>82451</attachid>
    <who name="anton muhin">antonm</who>
    <bug_when>2011-02-15 07:38:53 -0800</bug_when>
    <thetext>Created attachment 82451
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>351282</commentid>
    <comment_count>48</comment_count>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2011-02-15 08:22:35 -0800</bug_when>
    <thetext>Attachment 82451 did not build on qt:
Build output: http://queues.webkit.org/results/7911873</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>352107</commentid>
    <comment_count>49</comment_count>
      <attachid>82646</attachid>
    <who name="anton muhin">antonm</who>
    <bug_when>2011-02-16 08:50:16 -0800</bug_when>
    <thetext>Created attachment 82646
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>352957</commentid>
    <comment_count>50</comment_count>
      <attachid>82817</attachid>
    <who name="anton muhin">antonm</who>
    <bug_when>2011-02-17 09:15:29 -0800</bug_when>
    <thetext>Created attachment 82817
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>354599</commentid>
    <comment_count>51</comment_count>
    <who name="anton muhin">antonm</who>
    <bug_when>2011-02-21 08:03:21 -0800</bug_when>
    <thetext>Committed r79223: &lt;http://trac.webkit.org/changeset/79223&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>354745</commentid>
    <comment_count>52</comment_count>
      <attachid>82817</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2011-02-21 12:46:15 -0800</bug_when>
    <thetext>Comment on attachment 82817
Patch

Clearing review flag on landed patch.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>80945</attachid>
            <date>2011-02-02 12:04:00 -0800</date>
            <delta_ts>2011-02-02 12:08:16 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-53611-20110202230358.patch</filename>
            <type>text/plain</type>
            <size>4682</size>
            <attacher name="anton muhin">antonm</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCA5NGMzZjdlMjg2M2I4NThhYjZiZTYzYWM4ZTMyOTI4ZmYyNmZmZjlkLi44
ZTU4N2MzNWI2NzI1ZDUyYTgyYTU0ZGE3NzY1YWVkZTFlMDEzNWE5IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0x
LDMgKzEsMjQgQEAKKzIwMTEtMDItMDIgIEFudG9uIE11aGluICA8YW50b25tQGNocm9taXVtLm9y
Zz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBQcm9w
YWdhdGUgc2VjdXJpdHkgb3JpZ2luIG9mIHBhcmVudCBkb2N1bWVudCBpbnRvIEhUTUwgZG9jdW1l
bnRzIGNyZWF0ZWQgd2l0aCBET01JbXBsZW1lbnRhdGlvbgorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTM2MTEKKworICAgICAgICBBYnNlbmNlIG9mIHJl
Z3Jlc3Npb25zIGlzIGNvdmVyZWQgYnkgdGhlIGN1cnJlbnQgdGV4dHMuICBDdXJyZW50bHkgaXQn
cyBkaWZmaWN1bHQKKyAgICAgICAgdG8gY2hlY2sgdGhpcyB2aWEgbGF5b3V0IHRlc3RzIGFzIG9i
amVjdHMgcmVzaWRlIGluIHRoZSBzYW1lIEpTIGNvbnRleHQgYW5kIGhlbmNlCisgICAgICAgIHRo
ZXJlIGFyZSBubyBzZWN1cml0eSBvcmlnaW4gY2hlY2tzLgorCisgICAgICAgICogZG9tL0RPTUlt
cGxlbWVudGF0aW9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRPTUltcGxlbWVudGF0aW9uOjpj
cmVhdGVEb2N1bWVudCk6IHByb3BhZ2F0ZSBzZWN1cml0eSBvcmlnaW4gb2YgdGhlIHBhcmVudCBk
b2N1bWVudAorICAgICAgICAqIGRvbS9ET01JbXBsZW1lbnRhdGlvbi5oOgorICAgICAgICAoV2Vi
Q29yZTo6RE9NSW1wbGVtZW50YXRpb246OmNyZWF0ZSk6IHRha2UgYSBwYXJlbnQgZG9jdW1lbnQg
YXMgYW4gYXJndW1lbnQKKyAgICAgICAgKFdlYkNvcmU6OkRPTUltcGxlbWVudGF0aW9uOjpkb2N1
bWVudERlc3Ryb3llZCk6IGEgY2FsbGJhY2sgdG8gbm90aWZ5IHdoZW4gcGFyZW50IGRvY3VtZW50
IGdldHMgZGVzdHJveWVkCisgICAgICAgIChXZWJDb3JlOjpET01JbXBsZW1lbnRhdGlvbjo6RE9N
SW1wbGVtZW50YXRpb24pOiB0YWtlIGEgcGFyZW50IGRvY3VtZW50IGFzIGFuIGFyZ3VtZW50Cisg
ICAgICAgICogZG9tL0RvY3VtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50Ojp+
RG9jdW1lbnQpOiBub3RpZnkgRE9NIGltcGxlbWVudGF0aW9uIChpZiBhbnkpIG9uIGRlc3RydWN0
aW9uCisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudDo6aW1wbGVtZW50YXRpb24pOiBwYXNzIGl0
c2VsZiB3aGVuIGNvbnN0cnVjdGluZyBET00gaW1wbGVtZW50YXRpb24KKwogMjAxMS0wMi0wMiAg
QW50dGkgS29pdmlzdG8gIDxhbnR0aUBhcHBsZS5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkg
TWFjaWVqIFN0YWNob3dpYWsuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRE9NSW1w
bGVtZW50YXRpb24uY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL0RPTUltcGxlbWVudGF0aW9uLmNw
cAppbmRleCAzMGU4ODlmOGMxZjJhY2ZmZjA1YTU5NWUxMjUzNjRlNDUyODIxZGRiLi4yNmM4ZDM1
NTc4YTQyYmZkOTlhMmZmOWQxY2QwN2ZlNGU2M2UxZTUwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9kb20vRE9NSW1wbGVtZW50YXRpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9E
T01JbXBsZW1lbnRhdGlvbi5jcHAKQEAgLTI0MCw2ICsyNDAsMTIgQEAgUGFzc1JlZlB0cjxEb2N1
bWVudD4gRE9NSW1wbGVtZW50YXRpb246OmNyZWF0ZURvY3VtZW50KGNvbnN0IFN0cmluZyYgbmFt
ZXNwYWNlVVIKICAgICBlbHNlCiAgICAgICAgIGRvYyA9IERvY3VtZW50OjpjcmVhdGUoMCwgS1VS
TCgpKTsKIAorICAgIGlmICghbV9wYXJlbnQpIHsKKyAgICAgICAgZWMgPSBJTlZBTElEX1NUQVRF
X0VSUjsKKyAgICAgICAgcmV0dXJuIDA7CisgICAgfQorICAgIGRvYy0+c2V0U2VjdXJpdHlPcmln
aW4obV9wYXJlbnQtPnNlY3VyaXR5T3JpZ2luKCkpOworCiAgICAgUmVmUHRyPE5vZGU+IGRvY3Vt
ZW50RWxlbWVudDsKICAgICBpZiAoIXF1YWxpZmllZE5hbWUuaXNFbXB0eSgpKSB7CiAgICAgICAg
IGRvY3VtZW50RWxlbWVudCA9IGRvYy0+Y3JlYXRlRWxlbWVudE5TKG5hbWVzcGFjZVVSSSwgcXVh
bGlmaWVkTmFtZSwgZWMpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0RPTUltcGxl
bWVudGF0aW9uLmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vRE9NSW1wbGVtZW50YXRpb24uaAppbmRl
eCBhMjBmN2QyM2UxNGFmMzMyYTkxZDEzMWQwZDA1MDUxZTg4OWI2MWVkLi44YTgxMzY2Mzc0ZWY4
MTY0MzZmMzNhMThmNjk5M2RkMWUxNGU0M2NkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9k
b20vRE9NSW1wbGVtZW50YXRpb24uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRE9NSW1wbGVt
ZW50YXRpb24uaApAQCAtNDEsMTIgKzQxLDEyIEBAIHR5cGVkZWYgaW50IEV4Y2VwdGlvbkNvZGU7
CiAKIGNsYXNzIERPTUltcGxlbWVudGF0aW9uIDogcHVibGljIFJlZkNvdW50ZWQ8RE9NSW1wbGVt
ZW50YXRpb24+IHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxET01JbXBsZW1lbnRh
dGlvbj4gY3JlYXRlKCkgeyByZXR1cm4gYWRvcHRSZWYobmV3IERPTUltcGxlbWVudGF0aW9uKTsg
fQorICAgIHN0YXRpYyBQYXNzUmVmUHRyPERPTUltcGxlbWVudGF0aW9uPiBjcmVhdGUoY29uc3Qg
RG9jdW1lbnQqIHBhcmVudCkgeyByZXR1cm4gYWRvcHRSZWYobmV3IERPTUltcGxlbWVudGF0aW9u
KHBhcmVudCkpOyB9CiAKICAgICAvLyBET00gbWV0aG9kcyAmIGF0dHJpYnV0ZXMgZm9yIERPTUlt
cGxlbWVudGF0aW9uCiAgICAgc3RhdGljIGJvb2wgaGFzRmVhdHVyZShjb25zdCBTdHJpbmcmIGZl
YXR1cmUsIGNvbnN0IFN0cmluZyYgdmVyc2lvbik7CiAgICAgc3RhdGljIFBhc3NSZWZQdHI8RG9j
dW1lbnRUeXBlPiBjcmVhdGVEb2N1bWVudFR5cGUoY29uc3QgU3RyaW5nJiBxdWFsaWZpZWROYW1l
LCBjb25zdCBTdHJpbmcmIHB1YmxpY0lkLCBjb25zdCBTdHJpbmcgJnN5c3RlbUlkLCBFeGNlcHRp
b25Db2RlJik7Ci0gICAgc3RhdGljIFBhc3NSZWZQdHI8RG9jdW1lbnQ+IGNyZWF0ZURvY3VtZW50
KGNvbnN0IFN0cmluZyYgbmFtZXNwYWNlVVJJLCBjb25zdCBTdHJpbmcmIHF1YWxpZmllZE5hbWUs
IERvY3VtZW50VHlwZSosIEV4Y2VwdGlvbkNvZGUmKTsKKyAgICBQYXNzUmVmUHRyPERvY3VtZW50
PiBjcmVhdGVEb2N1bWVudChjb25zdCBTdHJpbmcmIG5hbWVzcGFjZVVSSSwgY29uc3QgU3RyaW5n
JiBxdWFsaWZpZWROYW1lLCBEb2N1bWVudFR5cGUqLCBFeGNlcHRpb25Db2RlJik7CiAKICAgICBE
T01JbXBsZW1lbnRhdGlvbiogZ2V0SW50ZXJmYWNlKGNvbnN0IFN0cmluZyYgZmVhdHVyZSk7CiAK
QEAgLTYyLDggKzYyLDE1IEBAIHB1YmxpYzoKICAgICBzdGF0aWMgYm9vbCBpc1hNTE1JTUVUeXBl
KGNvbnN0IFN0cmluZyYgTUlNRVR5cGUpOwogICAgIHN0YXRpYyBib29sIGlzVGV4dE1JTUVUeXBl
KGNvbnN0IFN0cmluZyYgTUlNRVR5cGUpOwogCisgICAgdm9pZCBkb2N1bWVudERlc3Ryb3llZCgp
CisgICAgeworICAgICAgICBtX3BhcmVudCA9IDA7CisgICAgfQorCiBwcml2YXRlOgotICAgIERP
TUltcGxlbWVudGF0aW9uKCkgeyB9CisgICAgRE9NSW1wbGVtZW50YXRpb24oY29uc3QgRG9jdW1l
bnQqIHBhcmVudCkgOiBtX3BhcmVudChwYXJlbnQpIHsgfQorCisgICAgY29uc3QgRG9jdW1lbnQq
IG1fcGFyZW50OwogfTsKIAogfSAvL25hbWVzcGFjZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvZG9tL0RvY3VtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKaW5k
ZXggMjUyMGFlOGMyY2ViZmRlMDc1OTMzYTNlMjk0ZmVmOTFiNDc1YTFmYS4uMTg0ZTAwMDlkODY3
M2NmMzc2OTY2OGQxYzBkMDM5Y2JiYzUwMTExMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
ZG9tL0RvY3VtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCkBA
IC02MDcsNiArNjA3LDkgQEAgRG9jdW1lbnQ6On5Eb2N1bWVudCgpCiAKICAgICBpZiAobV9tZWRp
YVF1ZXJ5TWF0Y2hlcikKICAgICAgICAgbV9tZWRpYVF1ZXJ5TWF0Y2hlci0+ZG9jdW1lbnREZXN0
cm95ZWQoKTsKKworICAgIGlmIChtX2ltcGxlbWVudGF0aW9uKQorICAgICAgICBtX2ltcGxlbWVu
dGF0aW9uLT5kb2N1bWVudERlc3Ryb3llZCgpOwogfQogCiBNZWRpYVF1ZXJ5TWF0Y2hlciogRG9j
dW1lbnQ6Om1lZGlhUXVlcnlNYXRjaGVyKCkKQEAgLTY5MSw3ICs2OTQsNyBAQCB2b2lkIERvY3Vt
ZW50OjpzZXREb2NUeXBlKFBhc3NSZWZQdHI8RG9jdW1lbnRUeXBlPiBkb2NUeXBlKQogRE9NSW1w
bGVtZW50YXRpb24qIERvY3VtZW50OjppbXBsZW1lbnRhdGlvbigpIGNvbnN0CiB7CiAgICAgaWYg
KCFtX2ltcGxlbWVudGF0aW9uKQotICAgICAgICBtX2ltcGxlbWVudGF0aW9uID0gRE9NSW1wbGVt
ZW50YXRpb246OmNyZWF0ZSgpOworICAgICAgICBtX2ltcGxlbWVudGF0aW9uID0gRE9NSW1wbGVt
ZW50YXRpb246OmNyZWF0ZSh0aGlzKTsKICAgICByZXR1cm4gbV9pbXBsZW1lbnRhdGlvbi5nZXQo
KTsKIH0KIAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>80947</attachid>
            <date>2011-02-02 12:08:21 -0800</date>
            <delta_ts>2011-02-03 03:13:00 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-53611-20110202230819.patch</filename>
            <type>text/plain</type>
            <size>4672</size>
            <attacher name="anton muhin">antonm</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCA5NGMzZjdlMjg2M2I4NThhYjZiZTYzYWM4ZTMyOTI4ZmYyNmZmZjlkLi44
MzMzMWQ1YjI1MzI5NTZlNGVkMmI5YTgwODRiYmNhOGEzNjc1OTZkIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0x
LDMgKzEsMjQgQEAKKzIwMTEtMDItMDIgIEFudG9uIE11aGluICA8YW50b25tQGNocm9taXVtLm9y
Zz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBQcm9w
YWdhdGUgc2VjdXJpdHkgb3JpZ2luIG9mIHBhcmVudCBkb2N1bWVudCBpbnRvIEhUTUwgZG9jdW1l
bnRzIGNyZWF0ZWQgd2l0aCBET01JbXBsZW1lbnRhdGlvbgorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTM2MTEKKworICAgICAgICBBYnNlbmNlIG9mIHJl
Z3Jlc3Npb25zIGlzIGNvdmVyZWQgYnkgdGhlIGN1cnJlbnQgdGVzdHMuICBJdCdzIGRpZmZpY3Vs
dAorICAgICAgICB0byBjaGVjayB0aGlzIHZpYSBsYXlvdXQgdGVzdHMgYXMgb2JqZWN0cyByZXNp
ZGUgaW4gdGhlIHNhbWUgSlMgY29udGV4dCBhbmQgaGVuY2UKKyAgICAgICAgdGhlcmUgYXJlIG5v
IHNlY3VyaXR5IG9yaWdpbiBjaGVja3MuCisKKyAgICAgICAgKiBkb20vRE9NSW1wbGVtZW50YXRp
b24uY3BwOgorICAgICAgICAoV2ViQ29yZTo6RE9NSW1wbGVtZW50YXRpb246OmNyZWF0ZURvY3Vt
ZW50KTogcHJvcGFnYXRlIHNlY3VyaXR5IG9yaWdpbiBvZiB0aGUgcGFyZW50IGRvY3VtZW50Cisg
ICAgICAgICogZG9tL0RPTUltcGxlbWVudGF0aW9uLmg6CisgICAgICAgIChXZWJDb3JlOjpET01J
bXBsZW1lbnRhdGlvbjo6Y3JlYXRlKTogdGFrZSBhIHBhcmVudCBkb2N1bWVudCBhcyBhbiBhcmd1
bWVudAorICAgICAgICAoV2ViQ29yZTo6RE9NSW1wbGVtZW50YXRpb246OmRvY3VtZW50RGVzdHJv
eWVkKTogYSBjYWxsYmFjayB0byBub3RpZnkgd2hlbiBwYXJlbnQgZG9jdW1lbnQgZ2V0cyBkZXN0
cm95ZWQKKyAgICAgICAgKFdlYkNvcmU6OkRPTUltcGxlbWVudGF0aW9uOjpET01JbXBsZW1lbnRh
dGlvbik6IHRha2UgYSBwYXJlbnQgZG9jdW1lbnQgYXMgYW4gYXJndW1lbnQKKyAgICAgICAgKiBk
b20vRG9jdW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnQ6On5Eb2N1bWVudCk6
IG5vdGlmeSBET00gaW1wbGVtZW50YXRpb24gKGlmIGFueSkgb24gZGVzdHJ1Y3Rpb24KKyAgICAg
ICAgKFdlYkNvcmU6OkRvY3VtZW50OjppbXBsZW1lbnRhdGlvbik6IHBhc3MgaXRzZWxmIHdoZW4g
Y29uc3RydWN0aW5nIERPTSBpbXBsZW1lbnRhdGlvbgorCiAyMDExLTAyLTAyICBBbnR0aSBLb2l2
aXN0byAgPGFudHRpQGFwcGxlLmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBieSBNYWNpZWogU3Rh
Y2hvd2lhay4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9ET01JbXBsZW1lbnRhdGlv
bi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRE9NSW1wbGVtZW50YXRpb24uY3BwCmluZGV4IDMw
ZTg4OWY4YzFmMmFjZmZmMDVhNTk1ZTEyNTM2NGU0NTI4MjFkZGIuLjI2YzhkMzU1NzhhNDJiZmQ5
OWEyZmY5ZDFjZDA3ZmU0ZTYzZTFlNTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9E
T01JbXBsZW1lbnRhdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0RPTUltcGxlbWVu
dGF0aW9uLmNwcApAQCAtMjQwLDYgKzI0MCwxMiBAQCBQYXNzUmVmUHRyPERvY3VtZW50PiBET01J
bXBsZW1lbnRhdGlvbjo6Y3JlYXRlRG9jdW1lbnQoY29uc3QgU3RyaW5nJiBuYW1lc3BhY2VVUgog
ICAgIGVsc2UKICAgICAgICAgZG9jID0gRG9jdW1lbnQ6OmNyZWF0ZSgwLCBLVVJMKCkpOwogCisg
ICAgaWYgKCFtX3BhcmVudCkgeworICAgICAgICBlYyA9IElOVkFMSURfU1RBVEVfRVJSOworICAg
ICAgICByZXR1cm4gMDsKKyAgICB9CisgICAgZG9jLT5zZXRTZWN1cml0eU9yaWdpbihtX3BhcmVu
dC0+c2VjdXJpdHlPcmlnaW4oKSk7CisKICAgICBSZWZQdHI8Tm9kZT4gZG9jdW1lbnRFbGVtZW50
OwogICAgIGlmICghcXVhbGlmaWVkTmFtZS5pc0VtcHR5KCkpIHsKICAgICAgICAgZG9jdW1lbnRF
bGVtZW50ID0gZG9jLT5jcmVhdGVFbGVtZW50TlMobmFtZXNwYWNlVVJJLCBxdWFsaWZpZWROYW1l
LCBlYyk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRE9NSW1wbGVtZW50YXRpb24u
aCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9ET01JbXBsZW1lbnRhdGlvbi5oCmluZGV4IGEyMGY3ZDIz
ZTE0YWYzMzJhOTFkMTMxZDBkMDUwNTFlODg5YjYxZWQuLjhhODEzNjYzNzRlZjgxNjQzNmYzM2Ex
OGY2OTkzZGQxZTE0ZTQzY2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9ET01JbXBs
ZW1lbnRhdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9ET01JbXBsZW1lbnRhdGlvbi5o
CkBAIC00MSwxMiArNDEsMTIgQEAgdHlwZWRlZiBpbnQgRXhjZXB0aW9uQ29kZTsKIAogY2xhc3Mg
RE9NSW1wbGVtZW50YXRpb24gOiBwdWJsaWMgUmVmQ291bnRlZDxET01JbXBsZW1lbnRhdGlvbj4g
ewogcHVibGljOgotICAgIHN0YXRpYyBQYXNzUmVmUHRyPERPTUltcGxlbWVudGF0aW9uPiBjcmVh
dGUoKSB7IHJldHVybiBhZG9wdFJlZihuZXcgRE9NSW1wbGVtZW50YXRpb24pOyB9CisgICAgc3Rh
dGljIFBhc3NSZWZQdHI8RE9NSW1wbGVtZW50YXRpb24+IGNyZWF0ZShjb25zdCBEb2N1bWVudCog
cGFyZW50KSB7IHJldHVybiBhZG9wdFJlZihuZXcgRE9NSW1wbGVtZW50YXRpb24ocGFyZW50KSk7
IH0KIAogICAgIC8vIERPTSBtZXRob2RzICYgYXR0cmlidXRlcyBmb3IgRE9NSW1wbGVtZW50YXRp
b24KICAgICBzdGF0aWMgYm9vbCBoYXNGZWF0dXJlKGNvbnN0IFN0cmluZyYgZmVhdHVyZSwgY29u
c3QgU3RyaW5nJiB2ZXJzaW9uKTsKICAgICBzdGF0aWMgUGFzc1JlZlB0cjxEb2N1bWVudFR5cGU+
IGNyZWF0ZURvY3VtZW50VHlwZShjb25zdCBTdHJpbmcmIHF1YWxpZmllZE5hbWUsIGNvbnN0IFN0
cmluZyYgcHVibGljSWQsIGNvbnN0IFN0cmluZyAmc3lzdGVtSWQsIEV4Y2VwdGlvbkNvZGUmKTsK
LSAgICBzdGF0aWMgUGFzc1JlZlB0cjxEb2N1bWVudD4gY3JlYXRlRG9jdW1lbnQoY29uc3QgU3Ry
aW5nJiBuYW1lc3BhY2VVUkksIGNvbnN0IFN0cmluZyYgcXVhbGlmaWVkTmFtZSwgRG9jdW1lbnRU
eXBlKiwgRXhjZXB0aW9uQ29kZSYpOworICAgIFBhc3NSZWZQdHI8RG9jdW1lbnQ+IGNyZWF0ZURv
Y3VtZW50KGNvbnN0IFN0cmluZyYgbmFtZXNwYWNlVVJJLCBjb25zdCBTdHJpbmcmIHF1YWxpZmll
ZE5hbWUsIERvY3VtZW50VHlwZSosIEV4Y2VwdGlvbkNvZGUmKTsKIAogICAgIERPTUltcGxlbWVu
dGF0aW9uKiBnZXRJbnRlcmZhY2UoY29uc3QgU3RyaW5nJiBmZWF0dXJlKTsKIApAQCAtNjIsOCAr
NjIsMTUgQEAgcHVibGljOgogICAgIHN0YXRpYyBib29sIGlzWE1MTUlNRVR5cGUoY29uc3QgU3Ry
aW5nJiBNSU1FVHlwZSk7CiAgICAgc3RhdGljIGJvb2wgaXNUZXh0TUlNRVR5cGUoY29uc3QgU3Ry
aW5nJiBNSU1FVHlwZSk7CiAKKyAgICB2b2lkIGRvY3VtZW50RGVzdHJveWVkKCkKKyAgICB7Cisg
ICAgICAgIG1fcGFyZW50ID0gMDsKKyAgICB9CisKIHByaXZhdGU6Ci0gICAgRE9NSW1wbGVtZW50
YXRpb24oKSB7IH0KKyAgICBET01JbXBsZW1lbnRhdGlvbihjb25zdCBEb2N1bWVudCogcGFyZW50
KSA6IG1fcGFyZW50KHBhcmVudCkgeyB9CisKKyAgICBjb25zdCBEb2N1bWVudCogbV9wYXJlbnQ7
CiB9OwogCiB9IC8vbmFtZXNwYWNlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9j
dW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcAppbmRleCAyNTIwYWU4
YzJjZWJmZGUwNzU5MzNhM2UyOTRmZWY5MWI0NzVhMWZhLi4xODRlMDAwOWQ4NjczY2YzNzY5NjY4
ZDFjMGQwMzljYmJjNTAxMTExIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1l
bnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKQEAgLTYwNyw2ICs2
MDcsOSBAQCBEb2N1bWVudDo6fkRvY3VtZW50KCkKIAogICAgIGlmIChtX21lZGlhUXVlcnlNYXRj
aGVyKQogICAgICAgICBtX21lZGlhUXVlcnlNYXRjaGVyLT5kb2N1bWVudERlc3Ryb3llZCgpOwor
CisgICAgaWYgKG1faW1wbGVtZW50YXRpb24pCisgICAgICAgIG1faW1wbGVtZW50YXRpb24tPmRv
Y3VtZW50RGVzdHJveWVkKCk7CiB9CiAKIE1lZGlhUXVlcnlNYXRjaGVyKiBEb2N1bWVudDo6bWVk
aWFRdWVyeU1hdGNoZXIoKQpAQCAtNjkxLDcgKzY5NCw3IEBAIHZvaWQgRG9jdW1lbnQ6OnNldERv
Y1R5cGUoUGFzc1JlZlB0cjxEb2N1bWVudFR5cGU+IGRvY1R5cGUpCiBET01JbXBsZW1lbnRhdGlv
biogRG9jdW1lbnQ6OmltcGxlbWVudGF0aW9uKCkgY29uc3QKIHsKICAgICBpZiAoIW1faW1wbGVt
ZW50YXRpb24pCi0gICAgICAgIG1faW1wbGVtZW50YXRpb24gPSBET01JbXBsZW1lbnRhdGlvbjo6
Y3JlYXRlKCk7CisgICAgICAgIG1faW1wbGVtZW50YXRpb24gPSBET01JbXBsZW1lbnRhdGlvbjo6
Y3JlYXRlKHRoaXMpOwogICAgIHJldHVybiBtX2ltcGxlbWVudGF0aW9uLmdldCgpOwogfQogCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>81047</attachid>
            <date>2011-02-03 03:13:05 -0800</date>
            <delta_ts>2011-02-08 10:58:57 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-53611-20110203141303.patch</filename>
            <type>text/plain</type>
            <size>4968</size>
            <attacher name="anton muhin">antonm</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCA5NGMzZjdlMjg2M2I4NThhYjZiZTYzYWM4ZTMyOTI4ZmYyNmZmZjlkLi44
MzMzMWQ1YjI1MzI5NTZlNGVkMmI5YTgwODRiYmNhOGEzNjc1OTZkIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0x
LDMgKzEsMjQgQEAKKzIwMTEtMDItMDIgIEFudG9uIE11aGluICA8YW50b25tQGNocm9taXVtLm9y
Zz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBQcm9w
YWdhdGUgc2VjdXJpdHkgb3JpZ2luIG9mIHBhcmVudCBkb2N1bWVudCBpbnRvIEhUTUwgZG9jdW1l
bnRzIGNyZWF0ZWQgd2l0aCBET01JbXBsZW1lbnRhdGlvbgorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTM2MTEKKworICAgICAgICBBYnNlbmNlIG9mIHJl
Z3Jlc3Npb25zIGlzIGNvdmVyZWQgYnkgdGhlIGN1cnJlbnQgdGVzdHMuICBJdCdzIGRpZmZpY3Vs
dAorICAgICAgICB0byBjaGVjayB0aGlzIHZpYSBsYXlvdXQgdGVzdHMgYXMgb2JqZWN0cyByZXNp
ZGUgaW4gdGhlIHNhbWUgSlMgY29udGV4dCBhbmQgaGVuY2UKKyAgICAgICAgdGhlcmUgYXJlIG5v
IHNlY3VyaXR5IG9yaWdpbiBjaGVja3MuCisKKyAgICAgICAgKiBkb20vRE9NSW1wbGVtZW50YXRp
b24uY3BwOgorICAgICAgICAoV2ViQ29yZTo6RE9NSW1wbGVtZW50YXRpb246OmNyZWF0ZURvY3Vt
ZW50KTogcHJvcGFnYXRlIHNlY3VyaXR5IG9yaWdpbiBvZiB0aGUgcGFyZW50IGRvY3VtZW50Cisg
ICAgICAgICogZG9tL0RPTUltcGxlbWVudGF0aW9uLmg6CisgICAgICAgIChXZWJDb3JlOjpET01J
bXBsZW1lbnRhdGlvbjo6Y3JlYXRlKTogdGFrZSBhIHBhcmVudCBkb2N1bWVudCBhcyBhbiBhcmd1
bWVudAorICAgICAgICAoV2ViQ29yZTo6RE9NSW1wbGVtZW50YXRpb246OmRvY3VtZW50RGVzdHJv
eWVkKTogYSBjYWxsYmFjayB0byBub3RpZnkgd2hlbiBwYXJlbnQgZG9jdW1lbnQgZ2V0cyBkZXN0
cm95ZWQKKyAgICAgICAgKFdlYkNvcmU6OkRPTUltcGxlbWVudGF0aW9uOjpET01JbXBsZW1lbnRh
dGlvbik6IHRha2UgYSBwYXJlbnQgZG9jdW1lbnQgYXMgYW4gYXJndW1lbnQKKyAgICAgICAgKiBk
b20vRG9jdW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnQ6On5Eb2N1bWVudCk6
IG5vdGlmeSBET00gaW1wbGVtZW50YXRpb24gKGlmIGFueSkgb24gZGVzdHJ1Y3Rpb24KKyAgICAg
ICAgKFdlYkNvcmU6OkRvY3VtZW50OjppbXBsZW1lbnRhdGlvbik6IHBhc3MgaXRzZWxmIHdoZW4g
Y29uc3RydWN0aW5nIERPTSBpbXBsZW1lbnRhdGlvbgorCiAyMDExLTAyLTAyICBBbnR0aSBLb2l2
aXN0byAgPGFudHRpQGFwcGxlLmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBieSBNYWNpZWogU3Rh
Y2hvd2lhay4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9ET01JbXBsZW1lbnRhdGlv
bi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRE9NSW1wbGVtZW50YXRpb24uY3BwCmluZGV4IDMw
ZTg4OWY4YzFmMmFjZmZmMDVhNTk1ZTEyNTM2NGU0NTI4MjFkZGIuLjY3ZDdjNzQxZDc5NDRlYmRj
NDdhZjljZDNhM2FhYWE3MTY1ZmNmMjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9E
T01JbXBsZW1lbnRhdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0RPTUltcGxlbWVu
dGF0aW9uLmNwcApAQCAtMTcxLDYgKzE3MSwxMSBAQCBzdGF0aWMgYm9vbCBpc1NWRzExRmVhdHVy
ZShjb25zdCBTdHJpbmcgJmZlYXR1cmUpCiB9CiAjZW5kaWYKIAorRE9NSW1wbGVtZW50YXRpb246
OkRPTUltcGxlbWVudGF0aW9uKGNvbnN0IERvY3VtZW50KiBwYXJlbnQpIDogbV9wYXJlbnQocGFy
ZW50KQoreworICAgIEFTU0VSVChtX3BhcmVudCk7Cit9CisKIGJvb2wgRE9NSW1wbGVtZW50YXRp
b246Omhhc0ZlYXR1cmUoY29uc3QgU3RyaW5nJiBmZWF0dXJlLCBjb25zdCBTdHJpbmcmIHZlcnNp
b24pCiB7CiAgICAgU3RyaW5nIGxvd2VyID0gZmVhdHVyZS5sb3dlcigpOwpAQCAtMjQwLDYgKzI0
NSwxMiBAQCBQYXNzUmVmUHRyPERvY3VtZW50PiBET01JbXBsZW1lbnRhdGlvbjo6Y3JlYXRlRG9j
dW1lbnQoY29uc3QgU3RyaW5nJiBuYW1lc3BhY2VVUgogICAgIGVsc2UKICAgICAgICAgZG9jID0g
RG9jdW1lbnQ6OmNyZWF0ZSgwLCBLVVJMKCkpOwogCisgICAgaWYgKCFtX3BhcmVudCkgeworICAg
ICAgICBlYyA9IElOVkFMSURfU1RBVEVfRVJSOworICAgICAgICByZXR1cm4gMDsKKyAgICB9Cisg
ICAgZG9jLT5zZXRTZWN1cml0eU9yaWdpbihtX3BhcmVudC0+c2VjdXJpdHlPcmlnaW4oKSk7CisK
ICAgICBSZWZQdHI8Tm9kZT4gZG9jdW1lbnRFbGVtZW50OwogICAgIGlmICghcXVhbGlmaWVkTmFt
ZS5pc0VtcHR5KCkpIHsKICAgICAgICAgZG9jdW1lbnRFbGVtZW50ID0gZG9jLT5jcmVhdGVFbGVt
ZW50TlMobmFtZXNwYWNlVVJJLCBxdWFsaWZpZWROYW1lLCBlYyk7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9kb20vRE9NSW1wbGVtZW50YXRpb24uaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9E
T01JbXBsZW1lbnRhdGlvbi5oCmluZGV4IGEyMGY3ZDIzZTE0YWYzMzJhOTFkMTMxZDBkMDUwNTFl
ODg5YjYxZWQuLjAzZWFmMDk2NTA2NjMyMmViYTQ0ZmVhNzQzYzg0NDM5OWNlNzU5NzIgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9ET01JbXBsZW1lbnRhdGlvbi5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2RvbS9ET01JbXBsZW1lbnRhdGlvbi5oCkBAIC00MSwxMiArNDEsMTIgQEAgdHlw
ZWRlZiBpbnQgRXhjZXB0aW9uQ29kZTsKIAogY2xhc3MgRE9NSW1wbGVtZW50YXRpb24gOiBwdWJs
aWMgUmVmQ291bnRlZDxET01JbXBsZW1lbnRhdGlvbj4gewogcHVibGljOgotICAgIHN0YXRpYyBQ
YXNzUmVmUHRyPERPTUltcGxlbWVudGF0aW9uPiBjcmVhdGUoKSB7IHJldHVybiBhZG9wdFJlZihu
ZXcgRE9NSW1wbGVtZW50YXRpb24pOyB9CisgICAgc3RhdGljIFBhc3NSZWZQdHI8RE9NSW1wbGVt
ZW50YXRpb24+IGNyZWF0ZShjb25zdCBEb2N1bWVudCogcGFyZW50KSB7IHJldHVybiBhZG9wdFJl
ZihuZXcgRE9NSW1wbGVtZW50YXRpb24ocGFyZW50KSk7IH0KIAogICAgIC8vIERPTSBtZXRob2Rz
ICYgYXR0cmlidXRlcyBmb3IgRE9NSW1wbGVtZW50YXRpb24KICAgICBzdGF0aWMgYm9vbCBoYXNG
ZWF0dXJlKGNvbnN0IFN0cmluZyYgZmVhdHVyZSwgY29uc3QgU3RyaW5nJiB2ZXJzaW9uKTsKICAg
ICBzdGF0aWMgUGFzc1JlZlB0cjxEb2N1bWVudFR5cGU+IGNyZWF0ZURvY3VtZW50VHlwZShjb25z
dCBTdHJpbmcmIHF1YWxpZmllZE5hbWUsIGNvbnN0IFN0cmluZyYgcHVibGljSWQsIGNvbnN0IFN0
cmluZyAmc3lzdGVtSWQsIEV4Y2VwdGlvbkNvZGUmKTsKLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxE
b2N1bWVudD4gY3JlYXRlRG9jdW1lbnQoY29uc3QgU3RyaW5nJiBuYW1lc3BhY2VVUkksIGNvbnN0
IFN0cmluZyYgcXVhbGlmaWVkTmFtZSwgRG9jdW1lbnRUeXBlKiwgRXhjZXB0aW9uQ29kZSYpOwor
ICAgIFBhc3NSZWZQdHI8RG9jdW1lbnQ+IGNyZWF0ZURvY3VtZW50KGNvbnN0IFN0cmluZyYgbmFt
ZXNwYWNlVVJJLCBjb25zdCBTdHJpbmcmIHF1YWxpZmllZE5hbWUsIERvY3VtZW50VHlwZSosIEV4
Y2VwdGlvbkNvZGUmKTsKIAogICAgIERPTUltcGxlbWVudGF0aW9uKiBnZXRJbnRlcmZhY2UoY29u
c3QgU3RyaW5nJiBmZWF0dXJlKTsKIApAQCAtNjIsOCArNjIsMTUgQEAgcHVibGljOgogICAgIHN0
YXRpYyBib29sIGlzWE1MTUlNRVR5cGUoY29uc3QgU3RyaW5nJiBNSU1FVHlwZSk7CiAgICAgc3Rh
dGljIGJvb2wgaXNUZXh0TUlNRVR5cGUoY29uc3QgU3RyaW5nJiBNSU1FVHlwZSk7CiAKKyAgICB2
b2lkIGRvY3VtZW50RGVzdHJveWVkKCkKKyAgICB7CisgICAgICAgIG1fcGFyZW50ID0gMDsKKyAg
ICB9CisKIHByaXZhdGU6Ci0gICAgRE9NSW1wbGVtZW50YXRpb24oKSB7IH0KKyAgICBET01JbXBs
ZW1lbnRhdGlvbihjb25zdCBEb2N1bWVudCogcGFyZW50KTsKKworICAgIGNvbnN0IERvY3VtZW50
KiBtX3BhcmVudDsKIH07CiAKIH0gLy9uYW1lc3BhY2UKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2RvbS9Eb2N1bWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCmlu
ZGV4IDI1MjBhZThjMmNlYmZkZTA3NTkzM2EzZTI5NGZlZjkxYjQ3NWExZmEuLjE4NGUwMDA5ZDg2
NzNjZjM3Njk2NjhkMWMwZDAzOWNiYmM1MDExMTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2RvbS9Eb2N1bWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcApA
QCAtNjA3LDYgKzYwNyw5IEBAIERvY3VtZW50Ojp+RG9jdW1lbnQoKQogCiAgICAgaWYgKG1fbWVk
aWFRdWVyeU1hdGNoZXIpCiAgICAgICAgIG1fbWVkaWFRdWVyeU1hdGNoZXItPmRvY3VtZW50RGVz
dHJveWVkKCk7CisKKyAgICBpZiAobV9pbXBsZW1lbnRhdGlvbikKKyAgICAgICAgbV9pbXBsZW1l
bnRhdGlvbi0+ZG9jdW1lbnREZXN0cm95ZWQoKTsKIH0KIAogTWVkaWFRdWVyeU1hdGNoZXIqIERv
Y3VtZW50OjptZWRpYVF1ZXJ5TWF0Y2hlcigpCkBAIC02OTEsNyArNjk0LDcgQEAgdm9pZCBEb2N1
bWVudDo6c2V0RG9jVHlwZShQYXNzUmVmUHRyPERvY3VtZW50VHlwZT4gZG9jVHlwZSkKIERPTUlt
cGxlbWVudGF0aW9uKiBEb2N1bWVudDo6aW1wbGVtZW50YXRpb24oKSBjb25zdAogewogICAgIGlm
ICghbV9pbXBsZW1lbnRhdGlvbikKLSAgICAgICAgbV9pbXBsZW1lbnRhdGlvbiA9IERPTUltcGxl
bWVudGF0aW9uOjpjcmVhdGUoKTsKKyAgICAgICAgbV9pbXBsZW1lbnRhdGlvbiA9IERPTUltcGxl
bWVudGF0aW9uOjpjcmVhdGUodGhpcyk7CiAgICAgcmV0dXJuIG1faW1wbGVtZW50YXRpb24uZ2V0
KCk7CiB9CiAK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>81664</attachid>
            <date>2011-02-08 10:59:03 -0800</date>
            <delta_ts>2011-02-08 11:12:14 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-53611-20110208215901.patch</filename>
            <type>text/plain</type>
            <size>16437</size>
            <attacher name="anton muhin">antonm</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogNzc5MjcKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5n
ZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCBkY2Q4YWIyNmZlYjEyOTI5ZDZkNWUy
MWEwNWEzNTEwMzNkNTE5N2M3Li4yOWZhOGVjYjFlZDA4OTlhZTQ4MWMxNWU4ZWZkZDMwMDM1OWQ1
NTliIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAKKzIwMTEtMDItMDggIEFudG9uIE11aGluICA8YW50
b25tQGNocm9taXVtLm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICBQcm9wYWdhdGUgc2VjdXJpdHkgb3JpZ2luIG9mIHBhcmVudCBkb2N1bWVudCBp
bnRvIEhUTUwgZG9jdW1lbnRzIGNyZWF0ZWQgd2l0aCBET01JbXBsZW1lbnRhdGlvbgorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTM2MTEKKworICAgICAg
ICBBZGRpdGlvbmFsIHRlc3Qgd2hpY2ggY2hlY2tzIGNhc2Ugd2hlbiBwYXJlbnQgZG9jdW1lbnQg
Y2FuIGJlIGNvbGxlY3RlZCB3aGlsZQorICAgICAgICBpdHMgaW1wbGVtZW50YXRpb24gaXMgYWxp
dmUuCisKKyAgICAgICAgKiBmYXN0L2RvbS9nYy05Lmh0bWw6CisKIDIwMTEtMDItMDggIFNoZXJp
ZmYgQm90ICA8d2Via2l0LnJldmlldy5ib3RAZ21haWwuY29tPgogCiAgICAgICAgIFVucmV2aWV3
ZWQsIHJvbGxpbmcgb3V0IHI3NzkyNC4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZG9t
L2djLTkuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL2djLTkuaHRtbAppbmRleCAyYmMyNWFk
M2VmOGE0ODRmMjM3Mjc1NGI2OGEyNDcxYTVlNWY0YzQ1Li5hYWRjMTVlNWJkMzhiYjIxYzEwNmFk
NjRmMzk5NWQ0OTRlNGFmNGQ2IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9nYy05
Lmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vZ2MtOS5odG1sCkBAIC04Myw2ICs4Mywx
MyBAQCBmdW5jdGlvbiB0ZXN0RXZlbnRzKCkKICAgICB9CiB9CiAKK2Z1bmN0aW9uIHRlc3RET01J
bXBsZW1lbnRhdGlvbigpCit7CisgIHZhciBpbXBsID0gZG9jdW1lbnQuaW1wbGVtZW50YXRpb24u
Y3JlYXRlSFRNTERvY3VtZW50KCcnKS5pbXBsZW1lbnRhdGlvbjsKKyAgZ2MoKTsKKyAgaW1wbC5j
cmVhdGVIVE1MRG9jdW1lbnQoJycpOyAgLy8gTWF5IGNyYXNoIG9yIHRocm93IGFuIGV4Y2VwaXRv
biBpZiB3ZSBjb2xsZWN0IHBhcmVudCBkb2N1bWVudCBvZiBpbXBsLgorfQorCiBmdW5jdGlvbiB0
ZXN0KCkgCiB7CiAgICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL0FuZHJvaWQuanNjYmluZGluZ3MubWsgYi9Tb3VyY2UvV2ViQ29y
ZS9BbmRyb2lkLmpzY2JpbmRpbmdzLm1rCmluZGV4IDI2Y2I0ZTQ3ZmQ5ZmZiOGYzZjdmODgzMGJl
Mjk1M2Q4NmM1MmRlZTguLmI5NDIwOGE2YmE2YzU0YTU3MTEzZDkwNTVmZTI1MGFmMThiYzYyYmEg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0FuZHJvaWQuanNjYmluZGluZ3MubWsKKysrIGIv
U291cmNlL1dlYkNvcmUvQW5kcm9pZC5qc2NiaW5kaW5ncy5tawpAQCAtODcsNiArODcsNyBAQCBM
T0NBTF9TUkNfRklMRVMgKz0gXAogCWJpbmRpbmdzL2pzL0pTRE9NQmluZGluZy5jcHAgXAogCWJp
bmRpbmdzL2pzL0pTRE9NRm9ybURhdGFDdXN0b20uY3BwIFwKIAliaW5kaW5ncy9qcy9KU0RPTUds
b2JhbE9iamVjdC5jcHAgXAorCWJpbmRpbmdzL2pzL0pTRE9NSW1wbGVtZW50YXRpb25DdXN0b20u
Y3BwIFwKIAliaW5kaW5ncy9qcy9KU0RPTVNldHRhYmxlVG9rZW5MaXN0LmNwcCBcCiAJYmluZGlu
Z3MvanMvSlNET01Ub2tlbkxpc3QuY3BwIFwKIAliaW5kaW5ncy9qcy9KU0RPTVdpbmRvd0Jhc2Uu
Y3BwIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0IGIvU291cmNl
L1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKaW5kZXggZjcxZDlmNjZhMTZiZWQwZjE0ZDBiMjE5NjI0
YjYwNzU3ODFiM2Q5MS4uZDAyYzI5MDkwN2QyOWRjMGY5MjkxYTI5YTE0M2ViMjVhODdiYjIzNSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKKysrIGIvU291cmNlL1dl
YkNvcmUvQ01ha2VMaXN0cy50eHQKQEAgLTQ4Miw2ICs0ODIsNyBAQCBTRVQoV2ViQ29yZV9TT1VS
Q0VTCiAgICAgYmluZGluZ3MvanMvSlNET01CaW5kaW5nLmNwcAogICAgIGJpbmRpbmdzL2pzL0pT
RE9NRm9ybURhdGFDdXN0b20uY3BwCiAgICAgYmluZGluZ3MvanMvSlNET01HbG9iYWxPYmplY3Qu
Y3BwCisgICAgYmluZGluZ3MvanMvSlNET01JbXBsZW1lbnRhdGlvbkN1c3RvbS5jcHAKICAgICBi
aW5kaW5ncy9qcy9KU0RPTU1pbWVUeXBlQXJyYXlDdXN0b20uY3BwCiAgICAgYmluZGluZ3MvanMv
SlNET01QbHVnaW5BcnJheUN1c3RvbS5jcHAKICAgICBiaW5kaW5ncy9qcy9KU0RPTVBsdWdpbkN1
c3RvbS5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9X
ZWJDb3JlL0NoYW5nZUxvZwppbmRleCA1NjllOWIwMGYxYTYyMDdkNTI5ZDJmMGZjZGYzYTk0OGQ0
MGE1YzE1Li42YmJmOWM1YjE3NzE5YWQ0ZWM3Zjk3Njk0MzUyOTEzN2UyOWQyNmI4IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nCkBAIC0xLDMgKzEsMzkgQEAKKzIwMTEtMDItMDggIEFudG9uIE11aGluICA8YW50b25tQGNo
cm9taXVtLm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICBQcm9wYWdhdGUgc2VjdXJpdHkgb3JpZ2luIG9mIHBhcmVudCBkb2N1bWVudCBpbnRvIEhU
TUwgZG9jdW1lbnRzIGNyZWF0ZWQgd2l0aCBET01JbXBsZW1lbnRhdGlvbgorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTM2MTEKKworICAgICAgICBUaGlz
IHJlc3RvcmVzIGludmFyaWFudCB0aGF0IEpTIHdyYXBwZXJzIHJlc2lkaW5nIGluIHRoZSBzYW1l
IEpTIGNvbnRleHQgc2hvdWxkIGNvbWUKKyAgICAgICAgZnJvbSB0aGUgc2FtZSBzZWN1cml0eSBv
cmlnaW4uCisKKyAgICAgICAgQWJzZW5jZSBvZiByZWdyZXNzaW9ucyBpcyBjb3ZlcmVkIGJ5IHRo
ZSBjdXJyZW50IHRlc3RzLiAgRGlmZmVyZW50IHNlY3VyaXR5IG9yaWdpbiBvZgorICAgICAgICBE
T01JbXBsZW1lbnRhdGlvbiBpcyBkaWZmaWN1bHQgdG8gY2hlY2sgd2l0aCBsYXlvdXQgdGVzdHMg
YXMgRE9NSW1wbGVtZW50YXRpb24KKyAgICAgICAgcmVzaWRlcyBpbiB0aGUgc2FtZSBKUyBjb250
ZXh0IGFzIHBhcmVudCBkb2N1bWVudCBhbmQgdGhlcmVmb3JlIHRoZXJlIGFyZSBubyBzZWN1cml0
eSBvcmlnaW4gY2hlY2tzLgorICAgICAgICBUaGlzIGlzIG9ic2VydmFibGUgaG93ZXZlciBpbiBD
KysuCisKKyAgICAgICAgKiBBbmRyb2lkLmpzY2JpbmRpbmdzLm1rOgorICAgICAgICAqIENNYWtl
TGlzdHMudHh0OgorICAgICAgICAqIFdlYkNvcmUuZ3lwaToKKyAgICAgICAgKiBXZWJDb3JlLnBy
bzoKKyAgICAgICAgKiBXZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvajoKKyAgICAgICAgKiBX
ZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogYmluZGluZ3Mvdjgv
VjhHQ0NvbnRyb2xsZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Tm9kZUdyb3VwZXJWaXNpdG9y
Ojp2aXNpdERPTVdyYXBwZXIpOgorICAgICAgICAqIGRvbS9ET01JbXBsZW1lbnRhdGlvbi5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpET01JbXBsZW1lbnRhdGlvbjo6RE9NSW1wbGVtZW50YXRpb24p
OgorICAgICAgICAoV2ViQ29yZTo6RE9NSW1wbGVtZW50YXRpb246OmNyZWF0ZURvY3VtZW50KToK
KyAgICAgICAgKiBkb20vRE9NSW1wbGVtZW50YXRpb24uaDoKKyAgICAgICAgKFdlYkNvcmU6OkRP
TUltcGxlbWVudGF0aW9uOjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6RE9NSW1wbGVtZW50
YXRpb246OmRvY3VtZW50RGVzdHJveWVkKToKKyAgICAgICAgKFdlYkNvcmU6OkRPTUltcGxlbWVu
dGF0aW9uOjpwYXJlbnREb2N1bWVudCk6CisgICAgICAgICogZG9tL0RPTUltcGxlbWVudGF0aW9u
LmlkbDoKKyAgICAgICAgKiBkb20vRG9jdW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RG9j
dW1lbnQ6On5Eb2N1bWVudCk6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudDo6aW1wbGVtZW50
YXRpb24pOgorICAgICAgICAqIGRvbS9Eb2N1bWVudC5oOgorCiAyMDExLTAyLTA4ICBTaGVyaWZm
IEJvdCAgPHdlYmtpdC5yZXZpZXcuYm90QGdtYWlsLmNvbT4KIAogICAgICAgICBVbnJldmlld2Vk
LCByb2xsaW5nIG91dCByNzc5MjQuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3Jl
Lmd5cGkgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkKaW5kZXggMzc0MTFlMGE0MWE5MGUx
MmI2MzJjYmMyNTA1ZDYxYzliNWFiZjE4YS4uZGFiYmU2YTJlN2FkNmU3ZDcxMGJiNzc1ZGZlNjVl
NTQ2Y2JkYjEzZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpCisrKyBi
L1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQpAQCAtNjE1LDYgKzYxNSw3IEBACiAgICAgICAg
ICAgICAnYmluZGluZ3MvanMvSlNET01CaW5kaW5nLmgnLAogICAgICAgICAgICAgJ2JpbmRpbmdz
L2pzL0pTRE9NR2xvYmFsT2JqZWN0LmNwcCcsCiAgICAgICAgICAgICAnYmluZGluZ3MvanMvSlNE
T01HbG9iYWxPYmplY3QuaCcsCisgICAgICAgICAgICAnYmluZGluZ3MvanMvSlNET01JbXBsZW1l
bnRhdGlvbkN1c3RvbS5jcHAnLAogICAgICAgICAgICAgJ2JpbmRpbmdzL2pzL0pTRE9NU3RyaW5n
TWFwQ3VzdG9tLmNwcCcsCiAgICAgICAgICAgICAnYmluZGluZ3MvanMvSlNET01TdHJpbmdNYXBD
dXN0b20uaCcsCiAgICAgICAgICAgICAnYmluZGluZ3MvanMvSlNET01XaW5kb3dCYXNlLmNwcCcs
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnBybyBiL1NvdXJjZS9XZWJDb3Jl
L1dlYkNvcmUucHJvCmluZGV4IGYwNTEyYWE2N2NjZDQwZDZlYTA5NTQ4ZDZkZTAyZmFhMGVkMTMw
OTcuLmQ3NDY0ZTg2YjU2ZmM2MDA3ZDI4ZWUwNDdlNjMyNWJkNDA3NzM1YTMgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUucHJvCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUu
cHJvCkBAIC0xNTExLDYgKzE1MTEsNyBAQCB2OCB7CiAgICAgICAgIGJpbmRpbmdzL2pzL0pTRGVi
dWdXcmFwcGVyU2V0LmggXAogICAgICAgICBiaW5kaW5ncy9qcy9KU0RPTUJpbmRpbmcuaCBcCiAg
ICAgICAgIGJpbmRpbmdzL2pzL0pTRE9NR2xvYmFsT2JqZWN0LmggXAorICAgICAgICBiaW5kaW5n
cy9qcy9KU0RPTUltcGxlbWVudGF0aW9uQ3VzdG9tLmggXAogICAgICAgICBiaW5kaW5ncy9qcy9K
U0RPTVN0cmluZ01hcEN1c3RvbS5oIFwKICAgICAgICAgYmluZGluZ3MvanMvSlNET01XaW5kb3dC
YXNlLmggXAogICAgICAgICBiaW5kaW5ncy9qcy9KU0RPTVdpbmRvd0N1c3RvbS5oIFwKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qIGIvU291
cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2oKaW5kZXggNWM5NzJjNzcx
MzExMDI1OWZkZTgyMzE0MDgxNTE0ZTc1NjJlYjM1NC4uYjBkZjA5MTdmOWU4MzFmNjViZjllMTE1
ZTIyOWQyN2MyN2Q5ZjNlYSAxMDA3NTUKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3By
b2ovV2ViQ29yZS52Y3Byb2oKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2Vi
Q29yZS52Y3Byb2oKQEAgLTU3OTEzLDYgKzU3OTEzLDU4IEBACiAJCQkJCT4KIAkJCQk8L0ZpbGU+
CiAJCQkJPEZpbGUKKwkJCQkJUmVsYXRpdmVQYXRoPSIuLlxiaW5kaW5nc1xqc1xKU0RPTUltcGxl
bWVudGF0aW9uQ3VzdG9tLmNwcCIKKwkJCQkJPgorCQkJCQk8RmlsZUNvbmZpZ3VyYXRpb24KKwkJ
CQkJCU5hbWU9IkRlYnVnfFdpbjMyIgorCQkJCQkJRXhjbHVkZWRGcm9tQnVpbGQ9InRydWUiCisJ
CQkJCQk+CisJCQkJCQk8VG9vbAorCQkJCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiCisJCQkJ
CQkvPgorCQkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPgorCQkJCQk8RmlsZUNvbmZpZ3VyYXRpb24K
KwkJCQkJCU5hbWU9IlJlbGVhc2V8V2luMzIiCisJCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1
ZSIKKwkJCQkJCT4KKwkJCQkJCTxUb29sCisJCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCIK
KwkJCQkJCS8+CisJCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+CisJCQkJCTxGaWxlQ29uZmlndXJh
dGlvbgorCQkJCQkJTmFtZT0iRGVidWdfQ2Fpcm9fQ0ZMaXRlfFdpbjMyIgorCQkJCQkJRXhjbHVk
ZWRGcm9tQnVpbGQ9InRydWUiCisJCQkJCQk+CisJCQkJCQk8VG9vbAorCQkJCQkJCU5hbWU9IlZD
Q0xDb21waWxlclRvb2wiCisJCQkJCQkvPgorCQkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPgorCQkJ
CQk8RmlsZUNvbmZpZ3VyYXRpb24KKwkJCQkJCU5hbWU9IlJlbGVhc2VfQ2Fpcm9fQ0ZMaXRlfFdp
bjMyIgorCQkJCQkJRXhjbHVkZWRGcm9tQnVpbGQ9InRydWUiCisJCQkJCQk+CisJCQkJCQk8VG9v
bAorCQkJCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiCisJCQkJCQkvPgorCQkJCQk8L0ZpbGVD
b25maWd1cmF0aW9uPgorCQkJCQk8RmlsZUNvbmZpZ3VyYXRpb24KKwkJCQkJCU5hbWU9IkRlYnVn
X0FsbHxXaW4zMiIKKwkJCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIgorCQkJCQkJPgorCQkJ
CQkJPFRvb2wKKwkJCQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIgorCQkJCQkJLz4KKwkJCQkJ
PC9GaWxlQ29uZmlndXJhdGlvbj4KKwkJCQkJPEZpbGVDb25maWd1cmF0aW9uCisJCQkJCQlOYW1l
PSJSZWxlYXNlX0xUQ0d8V2luMzIiCisJCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSIKKwkJ
CQkJCT4KKwkJCQkJCTxUb29sCisJCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCIKKwkJCQkJ
CS8+CisJCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+CisJCQkJPC9GaWxlPgorCQkJCTxGaWxlCiAJ
CQkJCVJlbGF0aXZlUGF0aD0iLi5cYmluZGluZ3NcanNcSlNET01NaW1lVHlwZUFycmF5Q3VzdG9t
LmNwcCIKIAkJCQkJPgogCQkJCQk8RmlsZUNvbmZpZ3VyYXRpb24KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJD
b3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCAyYjI0NDk1YTIzNGI2
NWI1ZDUzZTlkZTg1ZDc4NDE4OGFkMGVlM2JlLi5iODlhMzlhODQ4MmUwMTFmNDdiNGQxYjZmZDEy
YjU3ZmJkYWVjNGFjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJv
ai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ov
cHJvamVjdC5wYnhwcm9qCkBAIC02NTIsNiArNjUyLDcgQEAKIAkJMUNGQUUzMjMwQTZENkEzRjAw
MzI1OTNEIC8qIGxpYm9iamMuZHlsaWIgaW4gRnJhbWV3b3JrcyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSAxQ0ZBRTMyMjBBNkQ2QTNGMDAzMjU5M0QgLyogbGlib2JqYy5keWxp
YiAqLzsgfTsKIAkJMjBENjI5MjYxMjUzNjkwQjAwMDgxNTQzIC8qIEluc3BlY3Rvckluc3RydW1l
bnRhdGlvbi5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSAyMEQ2MjkyNDEyNTM2OTBCMDAwODE1NDMgLyogSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uLmNw
cCAqLzsgfTsKIAkJMjBENjI5MjcxMjUzNjkwQjAwMDgxNTQzIC8qIEluc3BlY3Rvckluc3RydW1l
bnRhdGlvbi5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
MjBENjI5MjUxMjUzNjkwQjAwMDgxNTQzIC8qIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbi5oICov
OyB9OworCQkyMjg4NUU2NDEzMDFBRTRDMDA1MjZFNjggLyogSlNET01JbXBsZW1lbnRhdGlvbkN1
c3RvbS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAy
Mjg4NUU2MzEzMDFBRTRDMDA1MjZFNjggLyogSlNET01JbXBsZW1lbnRhdGlvbkN1c3RvbS5jcHAg
Ki87IH07CiAJCTIyOEMyODQ1MTBEODI1MDAwMDlEMEQwRSAvKiBTY3JpcHRXcmFwcGFibGUuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDIyOEMyODQ0MTBE
ODI1MDAwMDlEMEQwRSAvKiBTY3JpcHRXcmFwcGFibGUuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklC
VVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQkyNEY1NEVBQzEwMUZFOTE0MDAwQUU3NDEgLyog
QXBwbGljYXRpb25DYWNoZUhvc3QuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gMjRGNTRFQUExMDFGRTkxNDAwMEFFNzQxIC8qIEFwcGxpY2F0aW9uQ2Fj
aGVIb3N0LmNwcCAqLzsgfTsKIAkJMjRGNTRFQUQxMDFGRTkxNDAwMEFFNzQxIC8qIEFwcGxpY2F0
aW9uQ2FjaGVIb3N0LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSAyNEY1NEVBQjEwMUZFOTE0MDAwQUU3NDEgLyogQXBwbGljYXRpb25DYWNoZUhvc3QuaCAq
Lzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9ICgpOyB9OyB9OwpAQCAtNjk5NSw2ICs2OTk2LDcg
QEAKIAkJMUNGQUUzMjIwQTZENkEzRjAwMzI1OTNEIC8qIGxpYm9iamMuZHlsaWIgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSAiY29tcGlsZWQubWFjaC1v
LmR5bGliIjsgbmFtZSA9IGxpYm9iamMuZHlsaWI7IHBhdGggPSAvdXNyL2xpYi9saWJvYmpjLmR5
bGliOyBzb3VyY2VUcmVlID0gIjxhYnNvbHV0ZT4iOyB9OwogCQkyMEQ2MjkyNDEyNTM2OTBCMDAw
ODE1NDMgLyogSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLmNwcDsgcGF0aCA9IEluc3BlY3Rvckluc3RydW1lbnRhdGlvbi5jcHA7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCTIwRDYyOTI1MTI1MzY5MEIwMDA4MTU0MyAvKiBJbnNwZWN0
b3JJbnN0cnVtZW50YXRpb24uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSW5z
cGVjdG9ySW5zdHJ1bWVudGF0aW9uLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTIy
ODg1RTYzMTMwMUFFNEMwMDUyNkU2OCAvKiBKU0RPTUltcGxlbWVudGF0aW9uQ3VzdG9tLmNwcCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IEpTRE9NSW1wbGVtZW50YXRpb25D
dXN0b20uY3BwOyBwYXRoID0gYmluZGluZ3MvanMvSlNET01JbXBsZW1lbnRhdGlvbkN1c3RvbS5j
cHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTIyOEMyODQ0MTBEODI1MDAwMDlEMEQw
RSAvKiBTY3JpcHRXcmFwcGFibGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
U2NyaXB0V3JhcHBhYmxlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTI0NDJCQkY4
MTE5NEM5RDMwMEQ0OTQ2OSAvKiBIYXNoQ2hhbmdlRXZlbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gSGFzaENoYW5nZUV2ZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCTI0RjU0RUFBMTAxRkU5MTQwMDBBRTc0MSAvKiBBcHBsaWNhdGlvbkNhY2hlSG9zdC5j
cHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBBcHBsaWNhdGlvbkNhY2hl
SG9zdC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xMjM5OSw2ICsxMjQwMSw3
IEBACiAJCTA4NjdENjkxRkU4NDAyOEZDMDJBQUMwNyAvKiBXZWJLaXQgKi8gPSB7CiAJCQlpc2Eg
PSBQQlhHcm91cDsKIAkJCWNoaWxkcmVuID0gKAorCQkJCTIyODg1RTYzMTMwMUFFNEMwMDUyNkU2
OCAvKiBKU0RPTUltcGxlbWVudGF0aW9uQ3VzdG9tLmNwcCAqLywKIAkJCQk2NUM5N0FGMjA4RUE5
MDg4MDBBQ0QyNzMgLyogY29uZmlnLmggKi8sCiAJCQkJRURFQzk4MDIwQUVEN0UxNzAwNTkxMzdG
IC8qIFdlYkNvcmVQcmVmaXguaCAqLywKIAkJCQk5MzA3MDYxMzA5RTBDQTgyMDBCMTdGRTQgLyog
RGVyaXZlZFNvdXJjZXMubWFrZSAqLywKQEAgLTIyNTAxLDcgKzIyNTA0LDYgQEAKIAkJCWlzYSA9
IFBCWFByb2plY3Q7CiAJCQlidWlsZENvbmZpZ3VyYXRpb25MaXN0ID0gMTQ5QzI4NDMwODkwMkIx
MTAwOEE5RUZDIC8qIEJ1aWxkIGNvbmZpZ3VyYXRpb24gbGlzdCBmb3IgUEJYUHJvamVjdCAiV2Vi
Q29yZSIgKi87CiAJCQljb21wYXRpYmlsaXR5VmVyc2lvbiA9ICJYY29kZSAyLjQiOwotCQkJZGV2
ZWxvcG1lbnRSZWdpb24gPSBFbmdsaXNoOwogCQkJaGFzU2Nhbm5lZEZvckVuY29kaW5ncyA9IDE7
CiAJCQlrbm93blJlZ2lvbnMgPSAoCiAJCQkJRW5nbGlzaCwKQEAgLTI1MTI2LDYgKzI1MTI4LDcg
QEAKIAkJCQk5MzQzQ0I4MTEyRjI1RTUxMDAzM0M1RUUgLyogVGV4dENvZGVjVVRGOC5jcHAgaW4g
U291cmNlcyAqLywKIAkJCQk5NzdFMkUwRTEyRjBGQzlDMDBDMTMzNzkgLyogWFNTRmlsdGVyLmNw
cCBpbiBTb3VyY2VzICovLAogCQkJCTBGMjlDMTZFMTMwMEMyRTIwMDJENzk0RSAvKiBBY2Nlc3Np
YmlsaXR5QWxsSW5PbmUuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJMjI4ODVFNjQxMzAxQUU0QzAw
NTI2RTY4IC8qIEpTRE9NSW1wbGVtZW50YXRpb25DdXN0b20uY3BwIGluIFNvdXJjZXMgKi8sCiAJ
CQkpOwogCQkJcnVuT25seUZvckRlcGxveW1lbnRQb3N0cHJvY2Vzc2luZyA9IDA7CiAJCX07CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9WOEdDQ29udHJvbGxlci5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9WOEdDQ29udHJvbGxlci5jcHAKaW5kZXggZjFj
ZjIwNjcyZmZjZDc4NmEwMTI4NTJjNjZkMjU0M2QxOTE4MDc1Zi4uYTM0ZGMyNDI1ZWJlN2Y3OTM1
YmEwOTE4YjBjOGQyZGM3ODA3OThjMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3MvdjgvVjhHQ0NvbnRyb2xsZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4
L1Y4R0NDb250cm9sbGVyLmNwcApAQCAtMjkwLDYgKzI5MCw3IEBAIHB1YmxpYzoKICAgICAgICAg
aWYgKG5vZGUtPmlzRG9jdW1lbnROb2RlKCkpIHsKICAgICAgICAgICAgIERvY3VtZW50KiBkb2N1
bWVudCA9IHJlaW50ZXJwcmV0X2Nhc3Q8RG9jdW1lbnQqPihub2RlKTsKICAgICAgICAgICAgIGFk
ZERPTU9iamVjdFRvR3JvdXAoc3RvcmUsIGdyb3VwSWQsIGRvY3VtZW50LT5zdHlsZVNoZWV0cygp
KTsKKyAgICAgICAgICAgIGFkZERPTU9iamVjdFRvR3JvdXAoc3RvcmUsIGdyb3VwSWQsIGRvY3Vt
ZW50LT5pbXBsZW1lbnRhdGlvbigpKTsKICAgICAgICAgfQogCiAgICAgICAgIFdyYXBwZXJUeXBl
SW5mbyogdHlwZUluZm8gPSBWOERPTVdyYXBwZXI6OmRvbVdyYXBwZXJUeXBlKHdyYXBwZXIpOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0RPTUltcGxlbWVudGF0aW9uLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2RvbS9ET01JbXBsZW1lbnRhdGlvbi5jcHAKaW5kZXggMzBlODg5ZjhjMWYy
YWNmZmYwNWE1OTVlMTI1MzY0ZTQ1MjgyMWRkYi4uNDdjZGZjZjcxNDE0ODcyMDVhZjNkNzRkOGMw
MzI0ZDVhNzU3MWZlYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0RPTUltcGxlbWVu
dGF0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRE9NSW1wbGVtZW50YXRpb24uY3Bw
CkBAIC0xNzEsNiArMTcxLDEyIEBAIHN0YXRpYyBib29sIGlzU1ZHMTFGZWF0dXJlKGNvbnN0IFN0
cmluZyAmZmVhdHVyZSkKIH0KICNlbmRpZgogCitET01JbXBsZW1lbnRhdGlvbjo6RE9NSW1wbGVt
ZW50YXRpb24oRG9jdW1lbnQqIHBhcmVudCkKKyAgICA6IG1fcGFyZW50KHBhcmVudCkKK3sKKyAg
ICBBU1NFUlQobV9wYXJlbnQpOworfQorCiBib29sIERPTUltcGxlbWVudGF0aW9uOjpoYXNGZWF0
dXJlKGNvbnN0IFN0cmluZyYgZmVhdHVyZSwgY29uc3QgU3RyaW5nJiB2ZXJzaW9uKQogewogICAg
IFN0cmluZyBsb3dlciA9IGZlYXR1cmUubG93ZXIoKTsKQEAgLTI0MCw2ICsyNDYsMTIgQEAgUGFz
c1JlZlB0cjxEb2N1bWVudD4gRE9NSW1wbGVtZW50YXRpb246OmNyZWF0ZURvY3VtZW50KGNvbnN0
IFN0cmluZyYgbmFtZXNwYWNlVVIKICAgICBlbHNlCiAgICAgICAgIGRvYyA9IERvY3VtZW50Ojpj
cmVhdGUoMCwgS1VSTCgpKTsKIAorICAgIGlmICghbV9wYXJlbnQpIHsKKyAgICAgICAgZWMgPSBJ
TlZBTElEX1NUQVRFX0VSUjsKKyAgICAgICAgcmV0dXJuIDA7CisgICAgfQorICAgIGRvYy0+c2V0
U2VjdXJpdHlPcmlnaW4obV9wYXJlbnQtPnNlY3VyaXR5T3JpZ2luKCkpOworCiAgICAgUmVmUHRy
PE5vZGU+IGRvY3VtZW50RWxlbWVudDsKICAgICBpZiAoIXF1YWxpZmllZE5hbWUuaXNFbXB0eSgp
KSB7CiAgICAgICAgIGRvY3VtZW50RWxlbWVudCA9IGRvYy0+Y3JlYXRlRWxlbWVudE5TKG5hbWVz
cGFjZVVSSSwgcXVhbGlmaWVkTmFtZSwgZWMpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
ZG9tL0RPTUltcGxlbWVudGF0aW9uLmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vRE9NSW1wbGVtZW50
YXRpb24uaAppbmRleCBhMjBmN2QyM2UxNGFmMzMyYTkxZDEzMWQwZDA1MDUxZTg4OWI2MWVkLi44
MTM0YjZmNTQ5YjBmY2Q3ZWIzMTFlZDI5MmVlZmM3YjM1NjUwNTE3IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9kb20vRE9NSW1wbGVtZW50YXRpb24uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9k
b20vRE9NSW1wbGVtZW50YXRpb24uaApAQCAtNDEsMTIgKzQxLDEyIEBAIHR5cGVkZWYgaW50IEV4
Y2VwdGlvbkNvZGU7CiAKIGNsYXNzIERPTUltcGxlbWVudGF0aW9uIDogcHVibGljIFJlZkNvdW50
ZWQ8RE9NSW1wbGVtZW50YXRpb24+IHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxE
T01JbXBsZW1lbnRhdGlvbj4gY3JlYXRlKCkgeyByZXR1cm4gYWRvcHRSZWYobmV3IERPTUltcGxl
bWVudGF0aW9uKTsgfQorICAgIHN0YXRpYyBQYXNzUmVmUHRyPERPTUltcGxlbWVudGF0aW9uPiBj
cmVhdGUoRG9jdW1lbnQqIHBhcmVudCkgeyByZXR1cm4gYWRvcHRSZWYobmV3IERPTUltcGxlbWVu
dGF0aW9uKHBhcmVudCkpOyB9CiAKICAgICAvLyBET00gbWV0aG9kcyAmIGF0dHJpYnV0ZXMgZm9y
IERPTUltcGxlbWVudGF0aW9uCiAgICAgc3RhdGljIGJvb2wgaGFzRmVhdHVyZShjb25zdCBTdHJp
bmcmIGZlYXR1cmUsIGNvbnN0IFN0cmluZyYgdmVyc2lvbik7CiAgICAgc3RhdGljIFBhc3NSZWZQ
dHI8RG9jdW1lbnRUeXBlPiBjcmVhdGVEb2N1bWVudFR5cGUoY29uc3QgU3RyaW5nJiBxdWFsaWZp
ZWROYW1lLCBjb25zdCBTdHJpbmcmIHB1YmxpY0lkLCBjb25zdCBTdHJpbmcgJnN5c3RlbUlkLCBF
eGNlcHRpb25Db2RlJik7Ci0gICAgc3RhdGljIFBhc3NSZWZQdHI8RG9jdW1lbnQ+IGNyZWF0ZURv
Y3VtZW50KGNvbnN0IFN0cmluZyYgbmFtZXNwYWNlVVJJLCBjb25zdCBTdHJpbmcmIHF1YWxpZmll
ZE5hbWUsIERvY3VtZW50VHlwZSosIEV4Y2VwdGlvbkNvZGUmKTsKKyAgICBQYXNzUmVmUHRyPERv
Y3VtZW50PiBjcmVhdGVEb2N1bWVudChjb25zdCBTdHJpbmcmIG5hbWVzcGFjZVVSSSwgY29uc3Qg
U3RyaW5nJiBxdWFsaWZpZWROYW1lLCBEb2N1bWVudFR5cGUqLCBFeGNlcHRpb25Db2RlJik7CiAK
ICAgICBET01JbXBsZW1lbnRhdGlvbiogZ2V0SW50ZXJmYWNlKGNvbnN0IFN0cmluZyYgZmVhdHVy
ZSk7CiAKQEAgLTYyLDggKzYyLDE0IEBAIHB1YmxpYzoKICAgICBzdGF0aWMgYm9vbCBpc1hNTE1J
TUVUeXBlKGNvbnN0IFN0cmluZyYgTUlNRVR5cGUpOwogICAgIHN0YXRpYyBib29sIGlzVGV4dE1J
TUVUeXBlKGNvbnN0IFN0cmluZyYgTUlNRVR5cGUpOwogCisgICAgdm9pZCBkb2N1bWVudERlc3Ry
b3llZCgpIHsgbV9wYXJlbnQgPSAwOyB9CisKKyAgICBEb2N1bWVudCogcGFyZW50RG9jdW1lbnQo
KSB7IHJldHVybiBtX3BhcmVudDsgfQorCiBwcml2YXRlOgotICAgIERPTUltcGxlbWVudGF0aW9u
KCkgeyB9CisgICAgRE9NSW1wbGVtZW50YXRpb24oRG9jdW1lbnQqIHBhcmVudCk7CisKKyAgICBE
b2N1bWVudCogbV9wYXJlbnQ7CiB9OwogCiB9IC8vbmFtZXNwYWNlCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9kb20vRE9NSW1wbGVtZW50YXRpb24uaWRsIGIvU291cmNlL1dlYkNvcmUvZG9t
L0RPTUltcGxlbWVudGF0aW9uLmlkbAppbmRleCA4MWRmNmM4ODA4YmZkM2Y5NjUzZmUwYWM1N2Mz
Njg2NjdmN2EyZGUxLi44NDIwMjgxYjE0N2I4MGQxZmJjZjk4YjM3MmEyMTY4YjlhYTFiODM0IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRE9NSW1wbGVtZW50YXRpb24uaWRsCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2RvbS9ET01JbXBsZW1lbnRhdGlvbi5pZGwKQEAgLTIwLDcgKzIwLDkg
QEAKIAogbW9kdWxlIGNvcmUgewogCi0gICAgaW50ZXJmYWNlIERPTUltcGxlbWVudGF0aW9uIHsK
KyAgICBpbnRlcmZhY2UgWworICAgICAgICBDdXN0b21NYXJrRnVuY3Rpb24KKyAgICBdIERPTUlt
cGxlbWVudGF0aW9uIHsKIAogICAgICAgICAvLyBET00gTGV2ZWwgMQogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3Vt
ZW50LmNwcAppbmRleCAxMDc5MmZjZjZiNGUyM2M2OWY2NjkyMTBiYzk2ODM0ZmViMDIzMWI3Li5i
OWQ4NzlmYTljNDI5MDk4OTcxYTE4NjE3YTY1NGQ1ZTQ2ZGQ3MmRlIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1
bWVudC5jcHAKQEAgLTYwNiw2ICs2MDYsOSBAQCBEb2N1bWVudDo6fkRvY3VtZW50KCkKIAogICAg
IGlmIChtX21lZGlhUXVlcnlNYXRjaGVyKQogICAgICAgICBtX21lZGlhUXVlcnlNYXRjaGVyLT5k
b2N1bWVudERlc3Ryb3llZCgpOworCisgICAgaWYgKG1faW1wbGVtZW50YXRpb24pCisgICAgICAg
IG1faW1wbGVtZW50YXRpb24tPmRvY3VtZW50RGVzdHJveWVkKCk7CiB9CiAKIE1lZGlhUXVlcnlN
YXRjaGVyKiBEb2N1bWVudDo6bWVkaWFRdWVyeU1hdGNoZXIoKQpAQCAtNjg3LDEwICs2OTAsMTAg
QEAgdm9pZCBEb2N1bWVudDo6c2V0RG9jVHlwZShQYXNzUmVmUHRyPERvY3VtZW50VHlwZT4gZG9j
VHlwZSkKICAgICAgICAgbV9kb2NUeXBlLT5zZXREb2N1bWVudCh0aGlzKTsKIH0KIAotRE9NSW1w
bGVtZW50YXRpb24qIERvY3VtZW50OjppbXBsZW1lbnRhdGlvbigpIGNvbnN0CitET01JbXBsZW1l
bnRhdGlvbiogRG9jdW1lbnQ6OmltcGxlbWVudGF0aW9uKCkKIHsKICAgICBpZiAoIW1faW1wbGVt
ZW50YXRpb24pCi0gICAgICAgIG1faW1wbGVtZW50YXRpb24gPSBET01JbXBsZW1lbnRhdGlvbjo6
Y3JlYXRlKCk7CisgICAgICAgIG1faW1wbGVtZW50YXRpb24gPSBET01JbXBsZW1lbnRhdGlvbjo6
Y3JlYXRlKHRoaXMpOwogICAgIHJldHVybiBtX2ltcGxlbWVudGF0aW9uLmdldCgpOwogfQogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaCBiL1NvdXJjZS9XZWJDb3Jl
L2RvbS9Eb2N1bWVudC5oCmluZGV4IDk0NmU1N2FmMmI2ZjhmMWMwZjc2NzkyOTAzMWM4ZGI2MGEx
M2Q4OTYuLmNiOTJhYjhmZDgxMWZhYWQ3Y2RhMTRjN2U1ZGM5NmUzOWVhODdlOTMgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Rv
bS9Eb2N1bWVudC5oCkBAIC0zMDMsNyArMzAzLDcgQEAgcHVibGljOgogCiAgICAgRG9jdW1lbnRU
eXBlKiBkb2N0eXBlKCkgY29uc3QgeyByZXR1cm4gbV9kb2NUeXBlLmdldCgpOyB9CiAKLSAgICBE
T01JbXBsZW1lbnRhdGlvbiogaW1wbGVtZW50YXRpb24oKSBjb25zdDsKKyAgICBET01JbXBsZW1l
bnRhdGlvbiogaW1wbGVtZW50YXRpb24oKTsKICAgICAKICAgICBFbGVtZW50KiBkb2N1bWVudEVs
ZW1lbnQoKSBjb25zdAogICAgIHsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>81667</attachid>
            <date>2011-02-08 11:12:19 -0800</date>
            <delta_ts>2011-02-11 11:28:49 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-53611-20110208221218.patch</filename>
            <type>text/plain</type>
            <size>18114</size>
            <attacher name="anton muhin">antonm</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogNzc5MjcKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5n
ZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCBkY2Q4YWIyNmZlYjEyOTI5ZDZkNWUy
MWEwNWEzNTEwMzNkNTE5N2M3Li4yOWZhOGVjYjFlZDA4OTlhZTQ4MWMxNWU4ZWZkZDMwMDM1OWQ1
NTliIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAKKzIwMTEtMDItMDggIEFudG9uIE11aGluICA8YW50
b25tQGNocm9taXVtLm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICBQcm9wYWdhdGUgc2VjdXJpdHkgb3JpZ2luIG9mIHBhcmVudCBkb2N1bWVudCBp
bnRvIEhUTUwgZG9jdW1lbnRzIGNyZWF0ZWQgd2l0aCBET01JbXBsZW1lbnRhdGlvbgorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTM2MTEKKworICAgICAg
ICBBZGRpdGlvbmFsIHRlc3Qgd2hpY2ggY2hlY2tzIGNhc2Ugd2hlbiBwYXJlbnQgZG9jdW1lbnQg
Y2FuIGJlIGNvbGxlY3RlZCB3aGlsZQorICAgICAgICBpdHMgaW1wbGVtZW50YXRpb24gaXMgYWxp
dmUuCisKKyAgICAgICAgKiBmYXN0L2RvbS9nYy05Lmh0bWw6CisKIDIwMTEtMDItMDggIFNoZXJp
ZmYgQm90ICA8d2Via2l0LnJldmlldy5ib3RAZ21haWwuY29tPgogCiAgICAgICAgIFVucmV2aWV3
ZWQsIHJvbGxpbmcgb3V0IHI3NzkyNC4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZG9t
L2djLTkuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL2djLTkuaHRtbAppbmRleCAyYmMyNWFk
M2VmOGE0ODRmMjM3Mjc1NGI2OGEyNDcxYTVlNWY0YzQ1Li5hYWRjMTVlNWJkMzhiYjIxYzEwNmFk
NjRmMzk5NWQ0OTRlNGFmNGQ2IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9nYy05
Lmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vZ2MtOS5odG1sCkBAIC04Myw2ICs4Mywx
MyBAQCBmdW5jdGlvbiB0ZXN0RXZlbnRzKCkKICAgICB9CiB9CiAKK2Z1bmN0aW9uIHRlc3RET01J
bXBsZW1lbnRhdGlvbigpCit7CisgIHZhciBpbXBsID0gZG9jdW1lbnQuaW1wbGVtZW50YXRpb24u
Y3JlYXRlSFRNTERvY3VtZW50KCcnKS5pbXBsZW1lbnRhdGlvbjsKKyAgZ2MoKTsKKyAgaW1wbC5j
cmVhdGVIVE1MRG9jdW1lbnQoJycpOyAgLy8gTWF5IGNyYXNoIG9yIHRocm93IGFuIGV4Y2VwaXRv
biBpZiB3ZSBjb2xsZWN0IHBhcmVudCBkb2N1bWVudCBvZiBpbXBsLgorfQorCiBmdW5jdGlvbiB0
ZXN0KCkgCiB7CiAgICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL0FuZHJvaWQuanNjYmluZGluZ3MubWsgYi9Tb3VyY2UvV2ViQ29y
ZS9BbmRyb2lkLmpzY2JpbmRpbmdzLm1rCmluZGV4IDI2Y2I0ZTQ3ZmQ5ZmZiOGYzZjdmODgzMGJl
Mjk1M2Q4NmM1MmRlZTguLmI5NDIwOGE2YmE2YzU0YTU3MTEzZDkwNTVmZTI1MGFmMThiYzYyYmEg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0FuZHJvaWQuanNjYmluZGluZ3MubWsKKysrIGIv
U291cmNlL1dlYkNvcmUvQW5kcm9pZC5qc2NiaW5kaW5ncy5tawpAQCAtODcsNiArODcsNyBAQCBM
T0NBTF9TUkNfRklMRVMgKz0gXAogCWJpbmRpbmdzL2pzL0pTRE9NQmluZGluZy5jcHAgXAogCWJp
bmRpbmdzL2pzL0pTRE9NRm9ybURhdGFDdXN0b20uY3BwIFwKIAliaW5kaW5ncy9qcy9KU0RPTUds
b2JhbE9iamVjdC5jcHAgXAorCWJpbmRpbmdzL2pzL0pTRE9NSW1wbGVtZW50YXRpb25DdXN0b20u
Y3BwIFwKIAliaW5kaW5ncy9qcy9KU0RPTVNldHRhYmxlVG9rZW5MaXN0LmNwcCBcCiAJYmluZGlu
Z3MvanMvSlNET01Ub2tlbkxpc3QuY3BwIFwKIAliaW5kaW5ncy9qcy9KU0RPTVdpbmRvd0Jhc2Uu
Y3BwIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0IGIvU291cmNl
L1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKaW5kZXggZjcxZDlmNjZhMTZiZWQwZjE0ZDBiMjE5NjI0
YjYwNzU3ODFiM2Q5MS4uZDAyYzI5MDkwN2QyOWRjMGY5MjkxYTI5YTE0M2ViMjVhODdiYjIzNSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKKysrIGIvU291cmNlL1dl
YkNvcmUvQ01ha2VMaXN0cy50eHQKQEAgLTQ4Miw2ICs0ODIsNyBAQCBTRVQoV2ViQ29yZV9TT1VS
Q0VTCiAgICAgYmluZGluZ3MvanMvSlNET01CaW5kaW5nLmNwcAogICAgIGJpbmRpbmdzL2pzL0pT
RE9NRm9ybURhdGFDdXN0b20uY3BwCiAgICAgYmluZGluZ3MvanMvSlNET01HbG9iYWxPYmplY3Qu
Y3BwCisgICAgYmluZGluZ3MvanMvSlNET01JbXBsZW1lbnRhdGlvbkN1c3RvbS5jcHAKICAgICBi
aW5kaW5ncy9qcy9KU0RPTU1pbWVUeXBlQXJyYXlDdXN0b20uY3BwCiAgICAgYmluZGluZ3MvanMv
SlNET01QbHVnaW5BcnJheUN1c3RvbS5jcHAKICAgICBiaW5kaW5ncy9qcy9KU0RPTVBsdWdpbkN1
c3RvbS5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9X
ZWJDb3JlL0NoYW5nZUxvZwppbmRleCA1NjllOWIwMGYxYTYyMDdkNTI5ZDJmMGZjZGYzYTk0OGQ0
MGE1YzE1Li42YmJmOWM1YjE3NzE5YWQ0ZWM3Zjk3Njk0MzUyOTEzN2UyOWQyNmI4IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nCkBAIC0xLDMgKzEsMzkgQEAKKzIwMTEtMDItMDggIEFudG9uIE11aGluICA8YW50b25tQGNo
cm9taXVtLm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICBQcm9wYWdhdGUgc2VjdXJpdHkgb3JpZ2luIG9mIHBhcmVudCBkb2N1bWVudCBpbnRvIEhU
TUwgZG9jdW1lbnRzIGNyZWF0ZWQgd2l0aCBET01JbXBsZW1lbnRhdGlvbgorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTM2MTEKKworICAgICAgICBUaGlz
IHJlc3RvcmVzIGludmFyaWFudCB0aGF0IEpTIHdyYXBwZXJzIHJlc2lkaW5nIGluIHRoZSBzYW1l
IEpTIGNvbnRleHQgc2hvdWxkIGNvbWUKKyAgICAgICAgZnJvbSB0aGUgc2FtZSBzZWN1cml0eSBv
cmlnaW4uCisKKyAgICAgICAgQWJzZW5jZSBvZiByZWdyZXNzaW9ucyBpcyBjb3ZlcmVkIGJ5IHRo
ZSBjdXJyZW50IHRlc3RzLiAgRGlmZmVyZW50IHNlY3VyaXR5IG9yaWdpbiBvZgorICAgICAgICBE
T01JbXBsZW1lbnRhdGlvbiBpcyBkaWZmaWN1bHQgdG8gY2hlY2sgd2l0aCBsYXlvdXQgdGVzdHMg
YXMgRE9NSW1wbGVtZW50YXRpb24KKyAgICAgICAgcmVzaWRlcyBpbiB0aGUgc2FtZSBKUyBjb250
ZXh0IGFzIHBhcmVudCBkb2N1bWVudCBhbmQgdGhlcmVmb3JlIHRoZXJlIGFyZSBubyBzZWN1cml0
eSBvcmlnaW4gY2hlY2tzLgorICAgICAgICBUaGlzIGlzIG9ic2VydmFibGUgaG93ZXZlciBpbiBD
KysuCisKKyAgICAgICAgKiBBbmRyb2lkLmpzY2JpbmRpbmdzLm1rOgorICAgICAgICAqIENNYWtl
TGlzdHMudHh0OgorICAgICAgICAqIFdlYkNvcmUuZ3lwaToKKyAgICAgICAgKiBXZWJDb3JlLnBy
bzoKKyAgICAgICAgKiBXZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvajoKKyAgICAgICAgKiBX
ZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogYmluZGluZ3Mvdjgv
VjhHQ0NvbnRyb2xsZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Tm9kZUdyb3VwZXJWaXNpdG9y
Ojp2aXNpdERPTVdyYXBwZXIpOgorICAgICAgICAqIGRvbS9ET01JbXBsZW1lbnRhdGlvbi5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpET01JbXBsZW1lbnRhdGlvbjo6RE9NSW1wbGVtZW50YXRpb24p
OgorICAgICAgICAoV2ViQ29yZTo6RE9NSW1wbGVtZW50YXRpb246OmNyZWF0ZURvY3VtZW50KToK
KyAgICAgICAgKiBkb20vRE9NSW1wbGVtZW50YXRpb24uaDoKKyAgICAgICAgKFdlYkNvcmU6OkRP
TUltcGxlbWVudGF0aW9uOjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6RE9NSW1wbGVtZW50
YXRpb246OmRvY3VtZW50RGVzdHJveWVkKToKKyAgICAgICAgKFdlYkNvcmU6OkRPTUltcGxlbWVu
dGF0aW9uOjpwYXJlbnREb2N1bWVudCk6CisgICAgICAgICogZG9tL0RPTUltcGxlbWVudGF0aW9u
LmlkbDoKKyAgICAgICAgKiBkb20vRG9jdW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RG9j
dW1lbnQ6On5Eb2N1bWVudCk6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudDo6aW1wbGVtZW50
YXRpb24pOgorICAgICAgICAqIGRvbS9Eb2N1bWVudC5oOgorCiAyMDExLTAyLTA4ICBTaGVyaWZm
IEJvdCAgPHdlYmtpdC5yZXZpZXcuYm90QGdtYWlsLmNvbT4KIAogICAgICAgICBVbnJldmlld2Vk
LCByb2xsaW5nIG91dCByNzc5MjQuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3Jl
Lmd5cGkgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkKaW5kZXggMzc0MTFlMGE0MWE5MGUx
MmI2MzJjYmMyNTA1ZDYxYzliNWFiZjE4YS4uZGFiYmU2YTJlN2FkNmU3ZDcxMGJiNzc1ZGZlNjVl
NTQ2Y2JkYjEzZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpCisrKyBi
L1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQpAQCAtNjE1LDYgKzYxNSw3IEBACiAgICAgICAg
ICAgICAnYmluZGluZ3MvanMvSlNET01CaW5kaW5nLmgnLAogICAgICAgICAgICAgJ2JpbmRpbmdz
L2pzL0pTRE9NR2xvYmFsT2JqZWN0LmNwcCcsCiAgICAgICAgICAgICAnYmluZGluZ3MvanMvSlNE
T01HbG9iYWxPYmplY3QuaCcsCisgICAgICAgICAgICAnYmluZGluZ3MvanMvSlNET01JbXBsZW1l
bnRhdGlvbkN1c3RvbS5jcHAnLAogICAgICAgICAgICAgJ2JpbmRpbmdzL2pzL0pTRE9NU3RyaW5n
TWFwQ3VzdG9tLmNwcCcsCiAgICAgICAgICAgICAnYmluZGluZ3MvanMvSlNET01TdHJpbmdNYXBD
dXN0b20uaCcsCiAgICAgICAgICAgICAnYmluZGluZ3MvanMvSlNET01XaW5kb3dCYXNlLmNwcCcs
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnBybyBiL1NvdXJjZS9XZWJDb3Jl
L1dlYkNvcmUucHJvCmluZGV4IGYwNTEyYWE2N2NjZDQwZDZlYTA5NTQ4ZDZkZTAyZmFhMGVkMTMw
OTcuLmQ3NDY0ZTg2YjU2ZmM2MDA3ZDI4ZWUwNDdlNjMyNWJkNDA3NzM1YTMgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUucHJvCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUu
cHJvCkBAIC0xNTExLDYgKzE1MTEsNyBAQCB2OCB7CiAgICAgICAgIGJpbmRpbmdzL2pzL0pTRGVi
dWdXcmFwcGVyU2V0LmggXAogICAgICAgICBiaW5kaW5ncy9qcy9KU0RPTUJpbmRpbmcuaCBcCiAg
ICAgICAgIGJpbmRpbmdzL2pzL0pTRE9NR2xvYmFsT2JqZWN0LmggXAorICAgICAgICBiaW5kaW5n
cy9qcy9KU0RPTUltcGxlbWVudGF0aW9uQ3VzdG9tLmggXAogICAgICAgICBiaW5kaW5ncy9qcy9K
U0RPTVN0cmluZ01hcEN1c3RvbS5oIFwKICAgICAgICAgYmluZGluZ3MvanMvSlNET01XaW5kb3dC
YXNlLmggXAogICAgICAgICBiaW5kaW5ncy9qcy9KU0RPTVdpbmRvd0N1c3RvbS5oIFwKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qIGIvU291
cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2oKaW5kZXggNWM5NzJjNzcx
MzExMDI1OWZkZTgyMzE0MDgxNTE0ZTc1NjJlYjM1NC4uYjBkZjA5MTdmOWU4MzFmNjViZjllMTE1
ZTIyOWQyN2MyN2Q5ZjNlYSAxMDA3NTUKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3By
b2ovV2ViQ29yZS52Y3Byb2oKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2Vi
Q29yZS52Y3Byb2oKQEAgLTU3OTEzLDYgKzU3OTEzLDU4IEBACiAJCQkJCT4KIAkJCQk8L0ZpbGU+
CiAJCQkJPEZpbGUKKwkJCQkJUmVsYXRpdmVQYXRoPSIuLlxiaW5kaW5nc1xqc1xKU0RPTUltcGxl
bWVudGF0aW9uQ3VzdG9tLmNwcCIKKwkJCQkJPgorCQkJCQk8RmlsZUNvbmZpZ3VyYXRpb24KKwkJ
CQkJCU5hbWU9IkRlYnVnfFdpbjMyIgorCQkJCQkJRXhjbHVkZWRGcm9tQnVpbGQ9InRydWUiCisJ
CQkJCQk+CisJCQkJCQk8VG9vbAorCQkJCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiCisJCQkJ
CQkvPgorCQkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPgorCQkJCQk8RmlsZUNvbmZpZ3VyYXRpb24K
KwkJCQkJCU5hbWU9IlJlbGVhc2V8V2luMzIiCisJCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1
ZSIKKwkJCQkJCT4KKwkJCQkJCTxUb29sCisJCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCIK
KwkJCQkJCS8+CisJCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+CisJCQkJCTxGaWxlQ29uZmlndXJh
dGlvbgorCQkJCQkJTmFtZT0iRGVidWdfQ2Fpcm9fQ0ZMaXRlfFdpbjMyIgorCQkJCQkJRXhjbHVk
ZWRGcm9tQnVpbGQ9InRydWUiCisJCQkJCQk+CisJCQkJCQk8VG9vbAorCQkJCQkJCU5hbWU9IlZD
Q0xDb21waWxlclRvb2wiCisJCQkJCQkvPgorCQkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPgorCQkJ
CQk8RmlsZUNvbmZpZ3VyYXRpb24KKwkJCQkJCU5hbWU9IlJlbGVhc2VfQ2Fpcm9fQ0ZMaXRlfFdp
bjMyIgorCQkJCQkJRXhjbHVkZWRGcm9tQnVpbGQ9InRydWUiCisJCQkJCQk+CisJCQkJCQk8VG9v
bAorCQkJCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiCisJCQkJCQkvPgorCQkJCQk8L0ZpbGVD
b25maWd1cmF0aW9uPgorCQkJCQk8RmlsZUNvbmZpZ3VyYXRpb24KKwkJCQkJCU5hbWU9IkRlYnVn
X0FsbHxXaW4zMiIKKwkJCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIgorCQkJCQkJPgorCQkJ
CQkJPFRvb2wKKwkJCQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIgorCQkJCQkJLz4KKwkJCQkJ
PC9GaWxlQ29uZmlndXJhdGlvbj4KKwkJCQkJPEZpbGVDb25maWd1cmF0aW9uCisJCQkJCQlOYW1l
PSJSZWxlYXNlX0xUQ0d8V2luMzIiCisJCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSIKKwkJ
CQkJCT4KKwkJCQkJCTxUb29sCisJCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCIKKwkJCQkJ
CS8+CisJCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+CisJCQkJPC9GaWxlPgorCQkJCTxGaWxlCiAJ
CQkJCVJlbGF0aXZlUGF0aD0iLi5cYmluZGluZ3NcanNcSlNET01NaW1lVHlwZUFycmF5Q3VzdG9t
LmNwcCIKIAkJCQkJPgogCQkJCQk8RmlsZUNvbmZpZ3VyYXRpb24KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJD
b3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCAyYjI0NDk1YTIzNGI2
NWI1ZDUzZTlkZTg1ZDc4NDE4OGFkMGVlM2JlLi5iODlhMzlhODQ4MmUwMTFmNDdiNGQxYjZmZDEy
YjU3ZmJkYWVjNGFjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJv
ai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ov
cHJvamVjdC5wYnhwcm9qCkBAIC02NTIsNiArNjUyLDcgQEAKIAkJMUNGQUUzMjMwQTZENkEzRjAw
MzI1OTNEIC8qIGxpYm9iamMuZHlsaWIgaW4gRnJhbWV3b3JrcyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSAxQ0ZBRTMyMjBBNkQ2QTNGMDAzMjU5M0QgLyogbGlib2JqYy5keWxp
YiAqLzsgfTsKIAkJMjBENjI5MjYxMjUzNjkwQjAwMDgxNTQzIC8qIEluc3BlY3Rvckluc3RydW1l
bnRhdGlvbi5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSAyMEQ2MjkyNDEyNTM2OTBCMDAwODE1NDMgLyogSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uLmNw
cCAqLzsgfTsKIAkJMjBENjI5MjcxMjUzNjkwQjAwMDgxNTQzIC8qIEluc3BlY3Rvckluc3RydW1l
bnRhdGlvbi5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
MjBENjI5MjUxMjUzNjkwQjAwMDgxNTQzIC8qIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbi5oICov
OyB9OworCQkyMjg4NUU2NDEzMDFBRTRDMDA1MjZFNjggLyogSlNET01JbXBsZW1lbnRhdGlvbkN1
c3RvbS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAy
Mjg4NUU2MzEzMDFBRTRDMDA1MjZFNjggLyogSlNET01JbXBsZW1lbnRhdGlvbkN1c3RvbS5jcHAg
Ki87IH07CiAJCTIyOEMyODQ1MTBEODI1MDAwMDlEMEQwRSAvKiBTY3JpcHRXcmFwcGFibGUuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDIyOEMyODQ0MTBE
ODI1MDAwMDlEMEQwRSAvKiBTY3JpcHRXcmFwcGFibGUuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklC
VVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQkyNEY1NEVBQzEwMUZFOTE0MDAwQUU3NDEgLyog
QXBwbGljYXRpb25DYWNoZUhvc3QuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gMjRGNTRFQUExMDFGRTkxNDAwMEFFNzQxIC8qIEFwcGxpY2F0aW9uQ2Fj
aGVIb3N0LmNwcCAqLzsgfTsKIAkJMjRGNTRFQUQxMDFGRTkxNDAwMEFFNzQxIC8qIEFwcGxpY2F0
aW9uQ2FjaGVIb3N0LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSAyNEY1NEVBQjEwMUZFOTE0MDAwQUU3NDEgLyogQXBwbGljYXRpb25DYWNoZUhvc3QuaCAq
Lzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9ICgpOyB9OyB9OwpAQCAtNjk5NSw2ICs2OTk2LDcg
QEAKIAkJMUNGQUUzMjIwQTZENkEzRjAwMzI1OTNEIC8qIGxpYm9iamMuZHlsaWIgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSAiY29tcGlsZWQubWFjaC1v
LmR5bGliIjsgbmFtZSA9IGxpYm9iamMuZHlsaWI7IHBhdGggPSAvdXNyL2xpYi9saWJvYmpjLmR5
bGliOyBzb3VyY2VUcmVlID0gIjxhYnNvbHV0ZT4iOyB9OwogCQkyMEQ2MjkyNDEyNTM2OTBCMDAw
ODE1NDMgLyogSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLmNwcDsgcGF0aCA9IEluc3BlY3Rvckluc3RydW1lbnRhdGlvbi5jcHA7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCTIwRDYyOTI1MTI1MzY5MEIwMDA4MTU0MyAvKiBJbnNwZWN0
b3JJbnN0cnVtZW50YXRpb24uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSW5z
cGVjdG9ySW5zdHJ1bWVudGF0aW9uLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTIy
ODg1RTYzMTMwMUFFNEMwMDUyNkU2OCAvKiBKU0RPTUltcGxlbWVudGF0aW9uQ3VzdG9tLmNwcCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IEpTRE9NSW1wbGVtZW50YXRpb25D
dXN0b20uY3BwOyBwYXRoID0gYmluZGluZ3MvanMvSlNET01JbXBsZW1lbnRhdGlvbkN1c3RvbS5j
cHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTIyOEMyODQ0MTBEODI1MDAwMDlEMEQw
RSAvKiBTY3JpcHRXcmFwcGFibGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
U2NyaXB0V3JhcHBhYmxlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTI0NDJCQkY4
MTE5NEM5RDMwMEQ0OTQ2OSAvKiBIYXNoQ2hhbmdlRXZlbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gSGFzaENoYW5nZUV2ZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCTI0RjU0RUFBMTAxRkU5MTQwMDBBRTc0MSAvKiBBcHBsaWNhdGlvbkNhY2hlSG9zdC5j
cHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBBcHBsaWNhdGlvbkNhY2hl
SG9zdC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xMjM5OSw2ICsxMjQwMSw3
IEBACiAJCTA4NjdENjkxRkU4NDAyOEZDMDJBQUMwNyAvKiBXZWJLaXQgKi8gPSB7CiAJCQlpc2Eg
PSBQQlhHcm91cDsKIAkJCWNoaWxkcmVuID0gKAorCQkJCTIyODg1RTYzMTMwMUFFNEMwMDUyNkU2
OCAvKiBKU0RPTUltcGxlbWVudGF0aW9uQ3VzdG9tLmNwcCAqLywKIAkJCQk2NUM5N0FGMjA4RUE5
MDg4MDBBQ0QyNzMgLyogY29uZmlnLmggKi8sCiAJCQkJRURFQzk4MDIwQUVEN0UxNzAwNTkxMzdG
IC8qIFdlYkNvcmVQcmVmaXguaCAqLywKIAkJCQk5MzA3MDYxMzA5RTBDQTgyMDBCMTdGRTQgLyog
RGVyaXZlZFNvdXJjZXMubWFrZSAqLywKQEAgLTIyNTAxLDcgKzIyNTA0LDYgQEAKIAkJCWlzYSA9
IFBCWFByb2plY3Q7CiAJCQlidWlsZENvbmZpZ3VyYXRpb25MaXN0ID0gMTQ5QzI4NDMwODkwMkIx
MTAwOEE5RUZDIC8qIEJ1aWxkIGNvbmZpZ3VyYXRpb24gbGlzdCBmb3IgUEJYUHJvamVjdCAiV2Vi
Q29yZSIgKi87CiAJCQljb21wYXRpYmlsaXR5VmVyc2lvbiA9ICJYY29kZSAyLjQiOwotCQkJZGV2
ZWxvcG1lbnRSZWdpb24gPSBFbmdsaXNoOwogCQkJaGFzU2Nhbm5lZEZvckVuY29kaW5ncyA9IDE7
CiAJCQlrbm93blJlZ2lvbnMgPSAoCiAJCQkJRW5nbGlzaCwKQEAgLTI1MTI2LDYgKzI1MTI4LDcg
QEAKIAkJCQk5MzQzQ0I4MTEyRjI1RTUxMDAzM0M1RUUgLyogVGV4dENvZGVjVVRGOC5jcHAgaW4g
U291cmNlcyAqLywKIAkJCQk5NzdFMkUwRTEyRjBGQzlDMDBDMTMzNzkgLyogWFNTRmlsdGVyLmNw
cCBpbiBTb3VyY2VzICovLAogCQkJCTBGMjlDMTZFMTMwMEMyRTIwMDJENzk0RSAvKiBBY2Nlc3Np
YmlsaXR5QWxsSW5PbmUuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJMjI4ODVFNjQxMzAxQUU0QzAw
NTI2RTY4IC8qIEpTRE9NSW1wbGVtZW50YXRpb25DdXN0b20uY3BwIGluIFNvdXJjZXMgKi8sCiAJ
CQkpOwogCQkJcnVuT25seUZvckRlcGxveW1lbnRQb3N0cHJvY2Vzc2luZyA9IDA7CiAJCX07CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTUltcGxlbWVudGF0aW9u
Q3VzdG9tLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NSW1wbGVtZW50YXRp
b25DdXN0b20uY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmFiOTE1ZTE3MWQ0ZWFmMDEwZjFjZTJjZjA4MTA0ZjA0
NjdlNjNjZWMKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9K
U0RPTUltcGxlbWVudGF0aW9uQ3VzdG9tLmNwcApAQCAtMCwwICsxLDM5IEBACisvKgorICogQ29w
eXJpZ2h0IChDKSAyMDA3LCAyMDA4LCAyMDA5IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KKyAqCisgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3Ry
aWJ1dGUgaXQgYW5kL29yCisgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUg
TGlicmFyeSBHZW5lcmFsIFB1YmxpYworICogTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZy
ZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCisgKiB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vu
c2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisgKgorICogVGhpcyBs
aWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWws
CisgKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3
YXJyYW50eSBvZgorICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB
UiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKKyAqIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5z
ZSBmb3IgbW9yZSBkZXRhaWxzLgorICoKKyAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNv
cHkgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKyAqIGFsb25nIHdp
dGggdGhpcyBsaWJyYXJ5OyBzZWUgdGhlIGZpbGUgQ09QWUlORy5MSUIuICBJZiBub3QsIHdyaXRl
IHRvCisgKiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBT
dHJlZXQsIEZpZnRoIEZsb29yLAorICogQm9zdG9uLCBNQSAwMjExMC0xMzAxLCBVU0EuCisgKi8K
KworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIkpTRE9NSW1wbGVtZW50YXRpb24uaCIK
KworI2luY2x1ZGUgIkRPTUltcGxlbWVudGF0aW9uLmgiCisKK3VzaW5nIG5hbWVzcGFjZSBKU0M7
CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKwordm9pZCBKU0RPTUltcGxlbWVudGF0aW9uOjptYXJr
Q2hpbGRyZW4oTWFya1N0YWNrJiBtYXJrU3RhY2spCit7CisgICAgQmFzZTo6bWFya0NoaWxkcmVu
KG1hcmtTdGFjayk7CisKKyAgICBET01JbXBsZW1lbnRhdGlvbiogZG9tSW1wbGVtZW50YXRpb24g
PSBpbXBsKCk7CisgICAgSlNHbG9iYWxEYXRhJiBnbG9iYWxEYXRhID0gKkhlYXA6OmhlYXAodGhp
cyktPmdsb2JhbERhdGEoKTsKKworICAgIG1hcmtET01PYmplY3RXcmFwcGVyKG1hcmtTdGFjaywg
Z2xvYmFsRGF0YSwgZG9tSW1wbGVtZW50YXRpb24tPnBhcmVudERvY3VtZW50KCkpOworfQorCit9
IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy92OC9WOEdDQ29udHJvbGxlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9WOEdD
Q29udHJvbGxlci5jcHAKaW5kZXggZjFjZjIwNjcyZmZjZDc4NmEwMTI4NTJjNjZkMjU0M2QxOTE4
MDc1Zi4uYTM0ZGMyNDI1ZWJlN2Y3OTM1YmEwOTE4YjBjOGQyZGM3ODA3OThjMiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvVjhHQ0NvbnRyb2xsZXIuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1Y4R0NDb250cm9sbGVyLmNwcApAQCAtMjkwLDYgKzI5
MCw3IEBAIHB1YmxpYzoKICAgICAgICAgaWYgKG5vZGUtPmlzRG9jdW1lbnROb2RlKCkpIHsKICAg
ICAgICAgICAgIERvY3VtZW50KiBkb2N1bWVudCA9IHJlaW50ZXJwcmV0X2Nhc3Q8RG9jdW1lbnQq
Pihub2RlKTsKICAgICAgICAgICAgIGFkZERPTU9iamVjdFRvR3JvdXAoc3RvcmUsIGdyb3VwSWQs
IGRvY3VtZW50LT5zdHlsZVNoZWV0cygpKTsKKyAgICAgICAgICAgIGFkZERPTU9iamVjdFRvR3Jv
dXAoc3RvcmUsIGdyb3VwSWQsIGRvY3VtZW50LT5pbXBsZW1lbnRhdGlvbigpKTsKICAgICAgICAg
fQogCiAgICAgICAgIFdyYXBwZXJUeXBlSW5mbyogdHlwZUluZm8gPSBWOERPTVdyYXBwZXI6OmRv
bVdyYXBwZXJUeXBlKHdyYXBwZXIpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0RP
TUltcGxlbWVudGF0aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9ET01JbXBsZW1lbnRhdGlv
bi5jcHAKaW5kZXggMzBlODg5ZjhjMWYyYWNmZmYwNWE1OTVlMTI1MzY0ZTQ1MjgyMWRkYi4uNDdj
ZGZjZjcxNDE0ODcyMDVhZjNkNzRkOGMwMzI0ZDVhNzU3MWZlYSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvZG9tL0RPTUltcGxlbWVudGF0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9k
b20vRE9NSW1wbGVtZW50YXRpb24uY3BwCkBAIC0xNzEsNiArMTcxLDEyIEBAIHN0YXRpYyBib29s
IGlzU1ZHMTFGZWF0dXJlKGNvbnN0IFN0cmluZyAmZmVhdHVyZSkKIH0KICNlbmRpZgogCitET01J
bXBsZW1lbnRhdGlvbjo6RE9NSW1wbGVtZW50YXRpb24oRG9jdW1lbnQqIHBhcmVudCkKKyAgICA6
IG1fcGFyZW50KHBhcmVudCkKK3sKKyAgICBBU1NFUlQobV9wYXJlbnQpOworfQorCiBib29sIERP
TUltcGxlbWVudGF0aW9uOjpoYXNGZWF0dXJlKGNvbnN0IFN0cmluZyYgZmVhdHVyZSwgY29uc3Qg
U3RyaW5nJiB2ZXJzaW9uKQogewogICAgIFN0cmluZyBsb3dlciA9IGZlYXR1cmUubG93ZXIoKTsK
QEAgLTI0MCw2ICsyNDYsMTIgQEAgUGFzc1JlZlB0cjxEb2N1bWVudD4gRE9NSW1wbGVtZW50YXRp
b246OmNyZWF0ZURvY3VtZW50KGNvbnN0IFN0cmluZyYgbmFtZXNwYWNlVVIKICAgICBlbHNlCiAg
ICAgICAgIGRvYyA9IERvY3VtZW50OjpjcmVhdGUoMCwgS1VSTCgpKTsKIAorICAgIGlmICghbV9w
YXJlbnQpIHsKKyAgICAgICAgZWMgPSBJTlZBTElEX1NUQVRFX0VSUjsKKyAgICAgICAgcmV0dXJu
IDA7CisgICAgfQorICAgIGRvYy0+c2V0U2VjdXJpdHlPcmlnaW4obV9wYXJlbnQtPnNlY3VyaXR5
T3JpZ2luKCkpOworCiAgICAgUmVmUHRyPE5vZGU+IGRvY3VtZW50RWxlbWVudDsKICAgICBpZiAo
IXF1YWxpZmllZE5hbWUuaXNFbXB0eSgpKSB7CiAgICAgICAgIGRvY3VtZW50RWxlbWVudCA9IGRv
Yy0+Y3JlYXRlRWxlbWVudE5TKG5hbWVzcGFjZVVSSSwgcXVhbGlmaWVkTmFtZSwgZWMpOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0RPTUltcGxlbWVudGF0aW9uLmggYi9Tb3VyY2Uv
V2ViQ29yZS9kb20vRE9NSW1wbGVtZW50YXRpb24uaAppbmRleCBhMjBmN2QyM2UxNGFmMzMyYTkx
ZDEzMWQwZDA1MDUxZTg4OWI2MWVkLi44MTM0YjZmNTQ5YjBmY2Q3ZWIzMTFlZDI5MmVlZmM3YjM1
NjUwNTE3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRE9NSW1wbGVtZW50YXRpb24u
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRE9NSW1wbGVtZW50YXRpb24uaApAQCAtNDEsMTIg
KzQxLDEyIEBAIHR5cGVkZWYgaW50IEV4Y2VwdGlvbkNvZGU7CiAKIGNsYXNzIERPTUltcGxlbWVu
dGF0aW9uIDogcHVibGljIFJlZkNvdW50ZWQ8RE9NSW1wbGVtZW50YXRpb24+IHsKIHB1YmxpYzoK
LSAgICBzdGF0aWMgUGFzc1JlZlB0cjxET01JbXBsZW1lbnRhdGlvbj4gY3JlYXRlKCkgeyByZXR1
cm4gYWRvcHRSZWYobmV3IERPTUltcGxlbWVudGF0aW9uKTsgfQorICAgIHN0YXRpYyBQYXNzUmVm
UHRyPERPTUltcGxlbWVudGF0aW9uPiBjcmVhdGUoRG9jdW1lbnQqIHBhcmVudCkgeyByZXR1cm4g
YWRvcHRSZWYobmV3IERPTUltcGxlbWVudGF0aW9uKHBhcmVudCkpOyB9CiAKICAgICAvLyBET00g
bWV0aG9kcyAmIGF0dHJpYnV0ZXMgZm9yIERPTUltcGxlbWVudGF0aW9uCiAgICAgc3RhdGljIGJv
b2wgaGFzRmVhdHVyZShjb25zdCBTdHJpbmcmIGZlYXR1cmUsIGNvbnN0IFN0cmluZyYgdmVyc2lv
bik7CiAgICAgc3RhdGljIFBhc3NSZWZQdHI8RG9jdW1lbnRUeXBlPiBjcmVhdGVEb2N1bWVudFR5
cGUoY29uc3QgU3RyaW5nJiBxdWFsaWZpZWROYW1lLCBjb25zdCBTdHJpbmcmIHB1YmxpY0lkLCBj
b25zdCBTdHJpbmcgJnN5c3RlbUlkLCBFeGNlcHRpb25Db2RlJik7Ci0gICAgc3RhdGljIFBhc3NS
ZWZQdHI8RG9jdW1lbnQ+IGNyZWF0ZURvY3VtZW50KGNvbnN0IFN0cmluZyYgbmFtZXNwYWNlVVJJ
LCBjb25zdCBTdHJpbmcmIHF1YWxpZmllZE5hbWUsIERvY3VtZW50VHlwZSosIEV4Y2VwdGlvbkNv
ZGUmKTsKKyAgICBQYXNzUmVmUHRyPERvY3VtZW50PiBjcmVhdGVEb2N1bWVudChjb25zdCBTdHJp
bmcmIG5hbWVzcGFjZVVSSSwgY29uc3QgU3RyaW5nJiBxdWFsaWZpZWROYW1lLCBEb2N1bWVudFR5
cGUqLCBFeGNlcHRpb25Db2RlJik7CiAKICAgICBET01JbXBsZW1lbnRhdGlvbiogZ2V0SW50ZXJm
YWNlKGNvbnN0IFN0cmluZyYgZmVhdHVyZSk7CiAKQEAgLTYyLDggKzYyLDE0IEBAIHB1YmxpYzoK
ICAgICBzdGF0aWMgYm9vbCBpc1hNTE1JTUVUeXBlKGNvbnN0IFN0cmluZyYgTUlNRVR5cGUpOwog
ICAgIHN0YXRpYyBib29sIGlzVGV4dE1JTUVUeXBlKGNvbnN0IFN0cmluZyYgTUlNRVR5cGUpOwog
CisgICAgdm9pZCBkb2N1bWVudERlc3Ryb3llZCgpIHsgbV9wYXJlbnQgPSAwOyB9CisKKyAgICBE
b2N1bWVudCogcGFyZW50RG9jdW1lbnQoKSB7IHJldHVybiBtX3BhcmVudDsgfQorCiBwcml2YXRl
OgotICAgIERPTUltcGxlbWVudGF0aW9uKCkgeyB9CisgICAgRE9NSW1wbGVtZW50YXRpb24oRG9j
dW1lbnQqIHBhcmVudCk7CisKKyAgICBEb2N1bWVudCogbV9wYXJlbnQ7CiB9OwogCiB9IC8vbmFt
ZXNwYWNlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRE9NSW1wbGVtZW50YXRpb24u
aWRsIGIvU291cmNlL1dlYkNvcmUvZG9tL0RPTUltcGxlbWVudGF0aW9uLmlkbAppbmRleCA4MWRm
NmM4ODA4YmZkM2Y5NjUzZmUwYWM1N2MzNjg2NjdmN2EyZGUxLi44NDIwMjgxYjE0N2I4MGQxZmJj
Zjk4YjM3MmEyMTY4YjlhYTFiODM0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRE9N
SW1wbGVtZW50YXRpb24uaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9ET01JbXBsZW1lbnRh
dGlvbi5pZGwKQEAgLTIwLDcgKzIwLDkgQEAKIAogbW9kdWxlIGNvcmUgewogCi0gICAgaW50ZXJm
YWNlIERPTUltcGxlbWVudGF0aW9uIHsKKyAgICBpbnRlcmZhY2UgWworICAgICAgICBDdXN0b21N
YXJrRnVuY3Rpb24KKyAgICBdIERPTUltcGxlbWVudGF0aW9uIHsKIAogICAgICAgICAvLyBET00g
TGV2ZWwgMQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwIGIv
U291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcAppbmRleCAxMDc5MmZjZjZiNGUyM2M2OWY2
NjkyMTBiYzk2ODM0ZmViMDIzMWI3Li5iOWQ4NzlmYTljNDI5MDk4OTcxYTE4NjE3YTY1NGQ1ZTQ2
ZGQ3MmRlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKQEAgLTYwNiw2ICs2MDYsOSBAQCBEb2N1
bWVudDo6fkRvY3VtZW50KCkKIAogICAgIGlmIChtX21lZGlhUXVlcnlNYXRjaGVyKQogICAgICAg
ICBtX21lZGlhUXVlcnlNYXRjaGVyLT5kb2N1bWVudERlc3Ryb3llZCgpOworCisgICAgaWYgKG1f
aW1wbGVtZW50YXRpb24pCisgICAgICAgIG1faW1wbGVtZW50YXRpb24tPmRvY3VtZW50RGVzdHJv
eWVkKCk7CiB9CiAKIE1lZGlhUXVlcnlNYXRjaGVyKiBEb2N1bWVudDo6bWVkaWFRdWVyeU1hdGNo
ZXIoKQpAQCAtNjg3LDEwICs2OTAsMTAgQEAgdm9pZCBEb2N1bWVudDo6c2V0RG9jVHlwZShQYXNz
UmVmUHRyPERvY3VtZW50VHlwZT4gZG9jVHlwZSkKICAgICAgICAgbV9kb2NUeXBlLT5zZXREb2N1
bWVudCh0aGlzKTsKIH0KIAotRE9NSW1wbGVtZW50YXRpb24qIERvY3VtZW50OjppbXBsZW1lbnRh
dGlvbigpIGNvbnN0CitET01JbXBsZW1lbnRhdGlvbiogRG9jdW1lbnQ6OmltcGxlbWVudGF0aW9u
KCkKIHsKICAgICBpZiAoIW1faW1wbGVtZW50YXRpb24pCi0gICAgICAgIG1faW1wbGVtZW50YXRp
b24gPSBET01JbXBsZW1lbnRhdGlvbjo6Y3JlYXRlKCk7CisgICAgICAgIG1faW1wbGVtZW50YXRp
b24gPSBET01JbXBsZW1lbnRhdGlvbjo6Y3JlYXRlKHRoaXMpOwogICAgIHJldHVybiBtX2ltcGxl
bWVudGF0aW9uLmdldCgpOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9j
dW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oCmluZGV4IDk0NmU1N2FmMmI2
ZjhmMWMwZjc2NzkyOTAzMWM4ZGI2MGExM2Q4OTYuLmNiOTJhYjhmZDgxMWZhYWQ3Y2RhMTRjN2U1
ZGM5NmUzOWVhODdlOTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oCkBAIC0zMDMsNyArMzAzLDcgQEAg
cHVibGljOgogCiAgICAgRG9jdW1lbnRUeXBlKiBkb2N0eXBlKCkgY29uc3QgeyByZXR1cm4gbV9k
b2NUeXBlLmdldCgpOyB9CiAKLSAgICBET01JbXBsZW1lbnRhdGlvbiogaW1wbGVtZW50YXRpb24o
KSBjb25zdDsKKyAgICBET01JbXBsZW1lbnRhdGlvbiogaW1wbGVtZW50YXRpb24oKTsKICAgICAK
ICAgICBFbGVtZW50KiBkb2N1bWVudEVsZW1lbnQoKSBjb25zdAogICAgIHsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>82152</attachid>
            <date>2011-02-11 11:28:56 -0800</date>
            <delta_ts>2011-02-14 05:10:44 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-53611-20110211222853.patch</filename>
            <type>text/plain</type>
            <size>20321</size>
            <attacher name="anton muhin">antonm</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogNzc5MjcKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5n
ZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCBkY2Q4YWIyNmZlYjEyOTI5ZDZkNWUy
MWEwNWEzNTEwMzNkNTE5N2M3Li4yOWZhOGVjYjFlZDA4OTlhZTQ4MWMxNWU4ZWZkZDMwMDM1OWQ1
NTliIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAKKzIwMTEtMDItMDggIEFudG9uIE11aGluICA8YW50
b25tQGNocm9taXVtLm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICBQcm9wYWdhdGUgc2VjdXJpdHkgb3JpZ2luIG9mIHBhcmVudCBkb2N1bWVudCBp
bnRvIEhUTUwgZG9jdW1lbnRzIGNyZWF0ZWQgd2l0aCBET01JbXBsZW1lbnRhdGlvbgorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTM2MTEKKworICAgICAg
ICBBZGRpdGlvbmFsIHRlc3Qgd2hpY2ggY2hlY2tzIGNhc2Ugd2hlbiBwYXJlbnQgZG9jdW1lbnQg
Y2FuIGJlIGNvbGxlY3RlZCB3aGlsZQorICAgICAgICBpdHMgaW1wbGVtZW50YXRpb24gaXMgYWxp
dmUuCisKKyAgICAgICAgKiBmYXN0L2RvbS9nYy05Lmh0bWw6CisKIDIwMTEtMDItMDggIFNoZXJp
ZmYgQm90ICA8d2Via2l0LnJldmlldy5ib3RAZ21haWwuY29tPgogCiAgICAgICAgIFVucmV2aWV3
ZWQsIHJvbGxpbmcgb3V0IHI3NzkyNC4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZG9t
L2djLTkuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL2djLTkuaHRtbAppbmRleCAyYmMyNWFk
M2VmOGE0ODRmMjM3Mjc1NGI2OGEyNDcxYTVlNWY0YzQ1Li4yNGNkNTczMWI4NzhiN2FmNzdjNTZk
NWE1MDQ5ODFhNDc4Mzk4MjJjIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9nYy05
Lmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vZ2MtOS5odG1sCkBAIC04Myw2ICs4Mywx
MyBAQCBmdW5jdGlvbiB0ZXN0RXZlbnRzKCkKICAgICB9CiB9CiAKK2Z1bmN0aW9uIHRlc3RET01J
bXBsZW1lbnRhdGlvbigpCit7CisgIHZhciBpbXBsID0gZG9jdW1lbnQuaW1wbGVtZW50YXRpb24u
Y3JlYXRlSFRNTERvY3VtZW50KCcnKS5pbXBsZW1lbnRhdGlvbjsKKyAgZ2MoKTsKKyAgaW1wbC5j
cmVhdGVIVE1MRG9jdW1lbnQoJycpOyAgLy8gTWF5IGNyYXNoIG9yIHRocm93IGFuIGV4Y2VwaXRv
biBpZiB3ZSBjb2xsZWN0IHBhcmVudCBkb2N1bWVudCBvZiBpbXBsLgorfQorCiBmdW5jdGlvbiB0
ZXN0KCkgCiB7CiAgICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKQEAgLTk3LDYg
KzEwNCw3IEBAIGZ1bmN0aW9uIHRlc3QoKQogICAgIHRlc3RQcm9wZXJ0aWVzQWdhaW4oKTsKIAog
ICAgIHRlc3RFdmVudHMoKTsKKyAgICB0ZXN0RE9NSW1wbGVtZW50YXRpb24oKTsKIH0KIAogLy8g
QnkgZGVmYXVsdCwgd2UgZXhwZWN0IHRoYXQgY3VzdG9tIHByb3BlcnRpZXMgYXJlIG5vdCBhbGxv
d2VkLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQW5kcm9pZC5qc2NiaW5kaW5ncy5tayBi
L1NvdXJjZS9XZWJDb3JlL0FuZHJvaWQuanNjYmluZGluZ3MubWsKaW5kZXggMjZjYjRlNDdmZDlm
ZmI4ZjNmN2Y4ODMwYmUyOTUzZDg2YzUyZGVlOC4uYjk0MjA4YTZiYTZjNTRhNTcxMTNkOTA1NWZl
MjUwYWYxOGJjNjJiYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQW5kcm9pZC5qc2NiaW5k
aW5ncy5taworKysgYi9Tb3VyY2UvV2ViQ29yZS9BbmRyb2lkLmpzY2JpbmRpbmdzLm1rCkBAIC04
Nyw2ICs4Nyw3IEBAIExPQ0FMX1NSQ19GSUxFUyArPSBcCiAJYmluZGluZ3MvanMvSlNET01CaW5k
aW5nLmNwcCBcCiAJYmluZGluZ3MvanMvSlNET01Gb3JtRGF0YUN1c3RvbS5jcHAgXAogCWJpbmRp
bmdzL2pzL0pTRE9NR2xvYmFsT2JqZWN0LmNwcCBcCisJYmluZGluZ3MvanMvSlNET01JbXBsZW1l
bnRhdGlvbkN1c3RvbS5jcHAgXAogCWJpbmRpbmdzL2pzL0pTRE9NU2V0dGFibGVUb2tlbkxpc3Qu
Y3BwIFwKIAliaW5kaW5ncy9qcy9KU0RPTVRva2VuTGlzdC5jcHAgXAogCWJpbmRpbmdzL2pzL0pT
RE9NV2luZG93QmFzZS5jcHAgXApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0
cy50eHQgYi9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dAppbmRleCBmNzFkOWY2NmExNmJl
ZDBmMTRkMGIyMTk2MjRiNjA3NTc4MWIzZDkxLi5kMDJjMjkwOTA3ZDI5ZGMwZjkyOTFhMjlhMTQz
ZWIyNWE4N2JiMjM1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dApAQCAtNDgyLDYgKzQ4Miw3IEBAIFNF
VChXZWJDb3JlX1NPVVJDRVMKICAgICBiaW5kaW5ncy9qcy9KU0RPTUJpbmRpbmcuY3BwCiAgICAg
YmluZGluZ3MvanMvSlNET01Gb3JtRGF0YUN1c3RvbS5jcHAKICAgICBiaW5kaW5ncy9qcy9KU0RP
TUdsb2JhbE9iamVjdC5jcHAKKyAgICBiaW5kaW5ncy9qcy9KU0RPTUltcGxlbWVudGF0aW9uQ3Vz
dG9tLmNwcAogICAgIGJpbmRpbmdzL2pzL0pTRE9NTWltZVR5cGVBcnJheUN1c3RvbS5jcHAKICAg
ICBiaW5kaW5ncy9qcy9KU0RPTVBsdWdpbkFycmF5Q3VzdG9tLmNwcAogICAgIGJpbmRpbmdzL2pz
L0pTRE9NUGx1Z2luQ3VzdG9tLmNwcApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IDU2OWU5YjAwZjFhNjIwN2Q1Mjlk
MmYwZmNkZjNhOTQ4ZDQwYTVjMTUuLjZiYmY5YzViMTc3MTlhZDRlYzdmOTc2OTQzNTI5MTM3ZTI5
ZDI2YjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2Uv
V2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwzOSBAQAorMjAxMS0wMi0wOCAgQW50b24gTXVo
aW4gIDxhbnRvbm1AY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgIFByb3BhZ2F0ZSBzZWN1cml0eSBvcmlnaW4gb2YgcGFyZW50IGRv
Y3VtZW50IGludG8gSFRNTCBkb2N1bWVudHMgY3JlYXRlZCB3aXRoIERPTUltcGxlbWVudGF0aW9u
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD01MzYxMQor
CisgICAgICAgIFRoaXMgcmVzdG9yZXMgaW52YXJpYW50IHRoYXQgSlMgd3JhcHBlcnMgcmVzaWRp
bmcgaW4gdGhlIHNhbWUgSlMgY29udGV4dCBzaG91bGQgY29tZQorICAgICAgICBmcm9tIHRoZSBz
YW1lIHNlY3VyaXR5IG9yaWdpbi4KKworICAgICAgICBBYnNlbmNlIG9mIHJlZ3Jlc3Npb25zIGlz
IGNvdmVyZWQgYnkgdGhlIGN1cnJlbnQgdGVzdHMuICBEaWZmZXJlbnQgc2VjdXJpdHkgb3JpZ2lu
IG9mCisgICAgICAgIERPTUltcGxlbWVudGF0aW9uIGlzIGRpZmZpY3VsdCB0byBjaGVjayB3aXRo
IGxheW91dCB0ZXN0cyBhcyBET01JbXBsZW1lbnRhdGlvbgorICAgICAgICByZXNpZGVzIGluIHRo
ZSBzYW1lIEpTIGNvbnRleHQgYXMgcGFyZW50IGRvY3VtZW50IGFuZCB0aGVyZWZvcmUgdGhlcmUg
YXJlIG5vIHNlY3VyaXR5IG9yaWdpbiBjaGVja3MuCisgICAgICAgIFRoaXMgaXMgb2JzZXJ2YWJs
ZSBob3dldmVyIGluIEMrKy4KKworICAgICAgICAqIEFuZHJvaWQuanNjYmluZGluZ3MubWs6Cisg
ICAgICAgICogQ01ha2VMaXN0cy50eHQ6CisgICAgICAgICogV2ViQ29yZS5neXBpOgorICAgICAg
ICAqIFdlYkNvcmUucHJvOgorICAgICAgICAqIFdlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9q
OgorICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAg
KiBiaW5kaW5ncy92OC9WOEdDQ29udHJvbGxlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpOb2Rl
R3JvdXBlclZpc2l0b3I6OnZpc2l0RE9NV3JhcHBlcik6CisgICAgICAgICogZG9tL0RPTUltcGxl
bWVudGF0aW9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRPTUltcGxlbWVudGF0aW9uOjpET01J
bXBsZW1lbnRhdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpET01JbXBsZW1lbnRhdGlvbjo6Y3Jl
YXRlRG9jdW1lbnQpOgorICAgICAgICAqIGRvbS9ET01JbXBsZW1lbnRhdGlvbi5oOgorICAgICAg
ICAoV2ViQ29yZTo6RE9NSW1wbGVtZW50YXRpb246OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3Jl
OjpET01JbXBsZW1lbnRhdGlvbjo6ZG9jdW1lbnREZXN0cm95ZWQpOgorICAgICAgICAoV2ViQ29y
ZTo6RE9NSW1wbGVtZW50YXRpb246OnBhcmVudERvY3VtZW50KToKKyAgICAgICAgKiBkb20vRE9N
SW1wbGVtZW50YXRpb24uaWRsOgorICAgICAgICAqIGRvbS9Eb2N1bWVudC5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpEb2N1bWVudDo6fkRvY3VtZW50KToKKyAgICAgICAgKFdlYkNvcmU6OkRvY3Vt
ZW50OjppbXBsZW1lbnRhdGlvbik6CisgICAgICAgICogZG9tL0RvY3VtZW50Lmg6CisKIDIwMTEt
MDItMDggIFNoZXJpZmYgQm90ICA8d2Via2l0LnJldmlldy5ib3RAZ21haWwuY29tPgogCiAgICAg
ICAgIFVucmV2aWV3ZWQsIHJvbGxpbmcgb3V0IHI3NzkyNC4KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL1dlYkNvcmUuZ3lwaSBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQppbmRleCAz
NzQxMWUwYTQxYTkwZTEyYjYzMmNiYzI1MDVkNjFjOWI1YWJmMThhLi5kYWJiZTZhMmU3YWQ2ZTdk
NzEwYmI3NzVkZmU2NWU1NDZjYmRiMTNlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJD
b3JlLmd5cGkKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpCkBAIC02MTUsNiArNjE1
LDcgQEAKICAgICAgICAgICAgICdiaW5kaW5ncy9qcy9KU0RPTUJpbmRpbmcuaCcsCiAgICAgICAg
ICAgICAnYmluZGluZ3MvanMvSlNET01HbG9iYWxPYmplY3QuY3BwJywKICAgICAgICAgICAgICdi
aW5kaW5ncy9qcy9KU0RPTUdsb2JhbE9iamVjdC5oJywKKyAgICAgICAgICAgICdiaW5kaW5ncy9q
cy9KU0RPTUltcGxlbWVudGF0aW9uQ3VzdG9tLmNwcCcsCiAgICAgICAgICAgICAnYmluZGluZ3Mv
anMvSlNET01TdHJpbmdNYXBDdXN0b20uY3BwJywKICAgICAgICAgICAgICdiaW5kaW5ncy9qcy9K
U0RPTVN0cmluZ01hcEN1c3RvbS5oJywKICAgICAgICAgICAgICdiaW5kaW5ncy9qcy9KU0RPTVdp
bmRvd0Jhc2UuY3BwJywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUucHJvIGIv
U291cmNlL1dlYkNvcmUvV2ViQ29yZS5wcm8KaW5kZXggZjA1MTJhYTY3Y2NkNDBkNmVhMDk1NDhk
NmRlMDJmYWEwZWQxMzA5Ny4uZDc0NjRlODZiNTZmYzYwMDdkMjhlZTA0N2U2MzI1YmQ0MDc3MzVh
MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5wcm8KKysrIGIvU291cmNlL1dl
YkNvcmUvV2ViQ29yZS5wcm8KQEAgLTE1MTEsNiArMTUxMSw3IEBAIHY4IHsKICAgICAgICAgYmlu
ZGluZ3MvanMvSlNEZWJ1Z1dyYXBwZXJTZXQuaCBcCiAgICAgICAgIGJpbmRpbmdzL2pzL0pTRE9N
QmluZGluZy5oIFwKICAgICAgICAgYmluZGluZ3MvanMvSlNET01HbG9iYWxPYmplY3QuaCBcCisg
ICAgICAgIGJpbmRpbmdzL2pzL0pTRE9NSW1wbGVtZW50YXRpb25DdXN0b20uaCBcCiAgICAgICAg
IGJpbmRpbmdzL2pzL0pTRE9NU3RyaW5nTWFwQ3VzdG9tLmggXAogICAgICAgICBiaW5kaW5ncy9q
cy9KU0RPTVdpbmRvd0Jhc2UuaCBcCiAgICAgICAgIGJpbmRpbmdzL2pzL0pTRE9NV2luZG93Q3Vz
dG9tLmggXApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29y
ZS52Y3Byb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvagpp
bmRleCA1Yzk3MmM3NzEzMTEwMjU5ZmRlODIzMTQwODE1MTRlNzU2MmViMzU0Li5iMGRmMDkxN2Y5
ZTgzMWY2NWJmOWUxMTVlMjI5ZDI3YzI3ZDlmM2VhIDEwMDc1NQotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJD
b3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvagpAQCAtNTc5MTMsNiArNTc5MTMsNTggQEAKIAkJCQkJ
PgogCQkJCTwvRmlsZT4KIAkJCQk8RmlsZQorCQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXGJpbmRpbmdz
XGpzXEpTRE9NSW1wbGVtZW50YXRpb25DdXN0b20uY3BwIgorCQkJCQk+CisJCQkJCTxGaWxlQ29u
ZmlndXJhdGlvbgorCQkJCQkJTmFtZT0iRGVidWd8V2luMzIiCisJCQkJCQlFeGNsdWRlZEZyb21C
dWlsZD0idHJ1ZSIKKwkJCQkJCT4KKwkJCQkJCTxUb29sCisJCQkJCQkJTmFtZT0iVkNDTENvbXBp
bGVyVG9vbCIKKwkJCQkJCS8+CisJCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+CisJCQkJCTxGaWxl
Q29uZmlndXJhdGlvbgorCQkJCQkJTmFtZT0iUmVsZWFzZXxXaW4zMiIKKwkJCQkJCUV4Y2x1ZGVk
RnJvbUJ1aWxkPSJ0cnVlIgorCQkJCQkJPgorCQkJCQkJPFRvb2wKKwkJCQkJCQlOYW1lPSJWQ0NM
Q29tcGlsZXJUb29sIgorCQkJCQkJLz4KKwkJCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4KKwkJCQkJ
PEZpbGVDb25maWd1cmF0aW9uCisJCQkJCQlOYW1lPSJEZWJ1Z19DYWlyb19DRkxpdGV8V2luMzIi
CisJCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSIKKwkJCQkJCT4KKwkJCQkJCTxUb29sCisJ
CQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCIKKwkJCQkJCS8+CisJCQkJCTwvRmlsZUNvbmZp
Z3VyYXRpb24+CisJCQkJCTxGaWxlQ29uZmlndXJhdGlvbgorCQkJCQkJTmFtZT0iUmVsZWFzZV9D
YWlyb19DRkxpdGV8V2luMzIiCisJCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSIKKwkJCQkJ
CT4KKwkJCQkJCTxUb29sCisJCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCIKKwkJCQkJCS8+
CisJCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+CisJCQkJCTxGaWxlQ29uZmlndXJhdGlvbgorCQkJ
CQkJTmFtZT0iRGVidWdfQWxsfFdpbjMyIgorCQkJCQkJRXhjbHVkZWRGcm9tQnVpbGQ9InRydWUi
CisJCQkJCQk+CisJCQkJCQk8VG9vbAorCQkJCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiCisJ
CQkJCQkvPgorCQkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPgorCQkJCQk8RmlsZUNvbmZpZ3VyYXRp
b24KKwkJCQkJCU5hbWU9IlJlbGVhc2VfTFRDR3xXaW4zMiIKKwkJCQkJCUV4Y2x1ZGVkRnJvbUJ1
aWxkPSJ0cnVlIgorCQkJCQkJPgorCQkJCQkJPFRvb2wKKwkJCQkJCQlOYW1lPSJWQ0NMQ29tcGls
ZXJUb29sIgorCQkJCQkJLz4KKwkJCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4KKwkJCQk8L0ZpbGU+
CisJCQkJPEZpbGUKIAkJCQkJUmVsYXRpdmVQYXRoPSIuLlxiaW5kaW5nc1xqc1xKU0RPTU1pbWVU
eXBlQXJyYXlDdXN0b20uY3BwIgogCQkJCQk+CiAJCQkJCTxGaWxlQ29uZmlndXJhdGlvbgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9q
IGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4
IDJiMjQ0OTVhMjM0YjY1YjVkNTNlOWRlODVkNzg0MTg4YWQwZWUzYmUuLmI4OWEzOWE4NDgyZTAx
MWY0N2I0ZDFiNmZkMTJiNTdmYmRhZWM0YWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dl
YkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJD
b3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTY1Miw2ICs2NTIsNyBAQAogCQkxQ0ZB
RTMyMzBBNkQ2QTNGMDAzMjU5M0QgLyogbGlib2JqYy5keWxpYiBpbiBGcmFtZXdvcmtzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFDRkFFMzIyMEE2RDZBM0YwMDMyNTkzRCAv
KiBsaWJvYmpjLmR5bGliICovOyB9OwogCQkyMEQ2MjkyNjEyNTM2OTBCMDAwODE1NDMgLyogSW5z
cGVjdG9ySW5zdHJ1bWVudGF0aW9uLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDIwRDYyOTI0MTI1MzY5MEIwMDA4MTU0MyAvKiBJbnNwZWN0b3JJbnN0
cnVtZW50YXRpb24uY3BwICovOyB9OwogCQkyMEQ2MjkyNzEyNTM2OTBCMDAwODE1NDMgLyogSW5z
cGVjdG9ySW5zdHJ1bWVudGF0aW9uLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSAyMEQ2MjkyNTEyNTM2OTBCMDAwODE1NDMgLyogSW5zcGVjdG9ySW5zdHJ1
bWVudGF0aW9uLmggKi87IH07CisJCTIyODg1RTY0MTMwMUFFNEMwMDUyNkU2OCAvKiBKU0RPTUlt
cGxlbWVudGF0aW9uQ3VzdG9tLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDIyODg1RTYzMTMwMUFFNEMwMDUyNkU2OCAvKiBKU0RPTUltcGxlbWVudGF0
aW9uQ3VzdG9tLmNwcCAqLzsgfTsKIAkJMjI4QzI4NDUxMEQ4MjUwMDAwOUQwRDBFIC8qIFNjcmlw
dFdyYXBwYWJsZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gMjI4QzI4NDQxMEQ4MjUwMDAwOUQwRDBFIC8qIFNjcmlwdFdyYXBwYWJsZS5oICovOyBzZXR0
aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTI0RjU0RUFDMTAxRkU5
MTQwMDBBRTc0MSAvKiBBcHBsaWNhdGlvbkNhY2hlSG9zdC5jcHAgaW4gU291cmNlcyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyNEY1NEVBQTEwMUZFOTE0MDAwQUU3NDEgLyog
QXBwbGljYXRpb25DYWNoZUhvc3QuY3BwICovOyB9OwogCQkyNEY1NEVBRDEwMUZFOTE0MDAwQUU3
NDEgLyogQXBwbGljYXRpb25DYWNoZUhvc3QuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDI0RjU0RUFCMTAxRkU5MTQwMDBBRTc0MSAvKiBBcHBsaWNhdGlv
bkNhY2hlSG9zdC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKCk7IH07IH07CkBAIC02
OTk1LDYgKzY5OTYsNyBAQAogCQkxQ0ZBRTMyMjBBNkQ2QTNGMDAzMjU5M0QgLyogbGlib2JqYy5k
eWxpYiAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9ICJj
b21waWxlZC5tYWNoLW8uZHlsaWIiOyBuYW1lID0gbGlib2JqYy5keWxpYjsgcGF0aCA9IC91c3Iv
bGliL2xpYm9iamMuZHlsaWI7IHNvdXJjZVRyZWUgPSAiPGFic29sdXRlPiI7IH07CiAJCTIwRDYy
OTI0MTI1MzY5MEIwMDA4MTU0MyAvKiBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb24uY3BwICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9u
LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMjBENjI5MjUxMjUzNjkwQjAwMDgx
NTQzIC8qIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb24uaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKKwkJMjI4ODVFNjMxMzAxQUU0QzAwNTI2RTY4IC8qIEpTRE9NSW1wbGVtZW50YXRp
b25DdXN0b20uY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0gSlNET01J
bXBsZW1lbnRhdGlvbkN1c3RvbS5jcHA7IHBhdGggPSBiaW5kaW5ncy9qcy9KU0RPTUltcGxlbWVu
dGF0aW9uQ3VzdG9tLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMjI4QzI4NDQx
MEQ4MjUwMDAwOUQwRDBFIC8qIFNjcmlwdFdyYXBwYWJsZS5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBTY3JpcHRXcmFwcGFibGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJMjQ0MkJCRjgxMTk0QzlEMzAwRDQ5NDY5IC8qIEhhc2hDaGFuZ2VFdmVudC5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBIYXNoQ2hhbmdlRXZlbnQuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMjRGNTRFQUExMDFGRTkxNDAwMEFFNzQxIC8qIEFwcGxpY2F0
aW9uQ2FjaGVIb3N0LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEFw
cGxpY2F0aW9uQ2FjaGVIb3N0LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTEy
Mzk5LDYgKzEyNDAxLDcgQEAKIAkJMDg2N0Q2OTFGRTg0MDI4RkMwMkFBQzA3IC8qIFdlYktpdCAq
LyA9IHsKIAkJCWlzYSA9IFBCWEdyb3VwOwogCQkJY2hpbGRyZW4gPSAoCisJCQkJMjI4ODVFNjMx
MzAxQUU0QzAwNTI2RTY4IC8qIEpTRE9NSW1wbGVtZW50YXRpb25DdXN0b20uY3BwICovLAogCQkJ
CTY1Qzk3QUYyMDhFQTkwODgwMEFDRDI3MyAvKiBjb25maWcuaCAqLywKIAkJCQlFREVDOTgwMjBB
RUQ3RTE3MDA1OTEzN0YgLyogV2ViQ29yZVByZWZpeC5oICovLAogCQkJCTkzMDcwNjEzMDlFMENB
ODIwMEIxN0ZFNCAvKiBEZXJpdmVkU291cmNlcy5tYWtlICovLApAQCAtMjI1MDEsNyArMjI1MDQs
NiBAQAogCQkJaXNhID0gUEJYUHJvamVjdDsKIAkJCWJ1aWxkQ29uZmlndXJhdGlvbkxpc3QgPSAx
NDlDMjg0MzA4OTAyQjExMDA4QTlFRkMgLyogQnVpbGQgY29uZmlndXJhdGlvbiBsaXN0IGZvciBQ
QlhQcm9qZWN0ICJXZWJDb3JlIiAqLzsKIAkJCWNvbXBhdGliaWxpdHlWZXJzaW9uID0gIlhjb2Rl
IDIuNCI7Ci0JCQlkZXZlbG9wbWVudFJlZ2lvbiA9IEVuZ2xpc2g7CiAJCQloYXNTY2FubmVkRm9y
RW5jb2RpbmdzID0gMTsKIAkJCWtub3duUmVnaW9ucyA9ICgKIAkJCQlFbmdsaXNoLApAQCAtMjUx
MjYsNiArMjUxMjgsNyBAQAogCQkJCTkzNDNDQjgxMTJGMjVFNTEwMDMzQzVFRSAvKiBUZXh0Q29k
ZWNVVEY4LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTk3N0UyRTBFMTJGMEZDOUMwMEMxMzM3OSAv
KiBYU1NGaWx0ZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMEYyOUMxNkUxMzAwQzJFMjAwMkQ3
OTRFIC8qIEFjY2Vzc2liaWxpdHlBbGxJbk9uZS5jcHAgaW4gU291cmNlcyAqLywKKwkJCQkyMjg4
NUU2NDEzMDFBRTRDMDA1MjZFNjggLyogSlNET01JbXBsZW1lbnRhdGlvbkN1c3RvbS5jcHAgaW4g
U291cmNlcyAqLywKIAkJCSk7CiAJCQlydW5Pbmx5Rm9yRGVwbG95bWVudFBvc3Rwcm9jZXNzaW5n
ID0gMDsKIAkJfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTQmlu
ZGluZ3NBbGxJbk9uZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0JpbmRpbmdz
QWxsSW5PbmUuY3BwCmluZGV4IGJkZDYyMzcwOTk1MDBhMzgxZWQwZGQ0MTg3YjliNWM2ZGU3NmY3
MzUuLjY2ZDI2NTMyMTI3YTlkODRhOTcxYzU4M2ZjMjU1NmI5OGExNTZlMzIgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTQmluZGluZ3NBbGxJbk9uZS5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNCaW5kaW5nc0FsbEluT25lLmNwcApAQCAtNTUs
NiArNTUsNyBAQAogI2luY2x1ZGUgIkpTRE9NQmluZGluZy5jcHAiCiAjaW5jbHVkZSAiSlNET01G
b3JtRGF0YUN1c3RvbS5jcHAiCiAjaW5jbHVkZSAiSlNET01HbG9iYWxPYmplY3QuY3BwIgorI2lu
Y2x1ZGUgIkpTRE9NSW1wbGVtZW50YXRpb24uY3BwIgogI2luY2x1ZGUgIkpTRE9NTWltZVR5cGVB
cnJheUN1c3RvbS5jcHAiCiAjaW5jbHVkZSAiSlNET01QbHVnaW5BcnJheUN1c3RvbS5jcHAiCiAj
aW5jbHVkZSAiSlNET01QbHVnaW5DdXN0b20uY3BwIgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvYmluZGluZ3MvanMvSlNET01JbXBsZW1lbnRhdGlvbkN1c3RvbS5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9qcy9KU0RPTUltcGxlbWVudGF0aW9uQ3VzdG9tLmNwcApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li4yZDQ4NzBhMDBjYjQ1YjdkYzA3MjQxYzE5YmU5NTY4YmRhM2YwZmJlCi0tLSAvZGV2L251bGwK
KysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01JbXBsZW1lbnRhdGlvbkN1c3Rv
bS5jcHAKQEAgLTAsMCArMSwzOSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAwNywgMjAwOCwg
MjAwOSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogVGhpcyBsaWJyYXJ5
IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorICogbW9k
aWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMK
KyAqIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247
IGVpdGhlcgorICogdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24p
IGFueSBsYXRlciB2ZXJzaW9uLgorICoKKyAqIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBp
biB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICogYnV0IFdJVEhPVVQgQU5ZIFdB
UlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAqIE1FUkNIQU5U
QUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05V
CisgKiBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyAq
CisgKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGlicmFyeSBH
ZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisgKiBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgc2VlIHRo
ZSBmaWxlIENPUFlJTkcuTElCLiAgSWYgbm90LCB3cml0ZSB0bworICogdGhlIEZyZWUgU29mdHdh
cmUgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwKKyAq
IEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIK
KyNpbmNsdWRlICJKU0RPTUltcGxlbWVudGF0aW9uLmgiCisKKyNpbmNsdWRlICJET01JbXBsZW1l
bnRhdGlvbi5oIgorCit1c2luZyBuYW1lc3BhY2UgSlNDOworCituYW1lc3BhY2UgV2ViQ29yZSB7
CisKK3ZvaWQgSlNET01JbXBsZW1lbnRhdGlvbjo6bWFya0NoaWxkcmVuKE1hcmtTdGFjayYgbWFy
a1N0YWNrKQoreworICAgIEJhc2U6Om1hcmtDaGlsZHJlbihtYXJrU3RhY2spOworCisgICAgRE9N
SW1wbGVtZW50YXRpb24qIGRvbUltcGxlbWVudGF0aW9uID0gaW1wbCgpOworICAgIERvY3VtZW50
KiBkb2MgPSBkb21JbXBsZW1lbnRhdGlvbi0+b3duZXJEb2N1bWVudCgpOworICAgIGlmIChkb2Mp
CisgICAgICAgIG1hcmtET01Ob2RlV3JhcHBlcihtYXJrU3RhY2ssIGRvYywgZG9jKTsKK30KKwor
fSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3MvdjgvVjhHQ0NvbnRyb2xsZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvVjhH
Q0NvbnRyb2xsZXIuY3BwCmluZGV4IGYxY2YyMDY3MmZmY2Q3ODZhMDEyODUyYzY2ZDI1NDNkMTkx
ODA3NWYuLmEzNGRjMjQyNWViZTdmNzkzNWJhMDkxOGIwYzhkMmRjNzgwNzk4YzIgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1Y4R0NDb250cm9sbGVyLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9WOEdDQ29udHJvbGxlci5jcHAKQEAgLTI5MCw2ICsy
OTAsNyBAQCBwdWJsaWM6CiAgICAgICAgIGlmIChub2RlLT5pc0RvY3VtZW50Tm9kZSgpKSB7CiAg
ICAgICAgICAgICBEb2N1bWVudCogZG9jdW1lbnQgPSByZWludGVycHJldF9jYXN0PERvY3VtZW50
Kj4obm9kZSk7CiAgICAgICAgICAgICBhZGRET01PYmplY3RUb0dyb3VwKHN0b3JlLCBncm91cElk
LCBkb2N1bWVudC0+c3R5bGVTaGVldHMoKSk7CisgICAgICAgICAgICBhZGRET01PYmplY3RUb0dy
b3VwKHN0b3JlLCBncm91cElkLCBkb2N1bWVudC0+aW1wbGVtZW50YXRpb24oKSk7CiAgICAgICAg
IH0KIAogICAgICAgICBXcmFwcGVyVHlwZUluZm8qIHR5cGVJbmZvID0gVjhET01XcmFwcGVyOjpk
b21XcmFwcGVyVHlwZSh3cmFwcGVyKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9E
T01JbXBsZW1lbnRhdGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRE9NSW1wbGVtZW50YXRp
b24uY3BwCmluZGV4IDMwZTg4OWY4YzFmMmFjZmZmMDVhNTk1ZTEyNTM2NGU0NTI4MjFkZGIuLmY2
ODE5OWZmOTM5YzUzNDllNmM4ODljMjUxMGIzNGY3MmNmYWMwMzYgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2RvbS9ET01JbXBsZW1lbnRhdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
ZG9tL0RPTUltcGxlbWVudGF0aW9uLmNwcApAQCAtMTcxLDYgKzE3MSwyMSBAQCBzdGF0aWMgYm9v
bCBpc1NWRzExRmVhdHVyZShjb25zdCBTdHJpbmcgJmZlYXR1cmUpCiB9CiAjZW5kaWYKIAorRE9N
SW1wbGVtZW50YXRpb246OkRPTUltcGxlbWVudGF0aW9uKERvY3VtZW50KiBvd25lckRvY3VtZW50
KQorICAgIDogbV9vd25lckRvY3VtZW50KG93bmVyRG9jdW1lbnQpCit7CisgICAgQVNTRVJUKG1f
b3duZXJEb2N1bWVudCk7Cit9CisKK3RlbXBsYXRlIDxjbGFzcyBUPgorUGFzc1JlZlB0cjxUPiBE
T01JbXBsZW1lbnRhdGlvbjo6c2V0U2VjdXJpdHlPcmlnaW4oUGFzc1JlZlB0cjxUPiBkb2MpCit7
CisgICAgQVNTRVJUKG1fb3duZXJEb2N1bWVudCk7CisgICAgaWYgKG1fb3duZXJEb2N1bWVudCkK
KyAgICAgICAgZG9jLT5zZXRTZWN1cml0eU9yaWdpbihtX293bmVyRG9jdW1lbnQtPnNlY3VyaXR5
T3JpZ2luKCkpOworICAgIHJldHVybiBkb2M7Cit9CisKIGJvb2wgRE9NSW1wbGVtZW50YXRpb246
Omhhc0ZlYXR1cmUoY29uc3QgU3RyaW5nJiBmZWF0dXJlLCBjb25zdCBTdHJpbmcmIHZlcnNpb24p
CiB7CiAgICAgU3RyaW5nIGxvd2VyID0gZmVhdHVyZS5sb3dlcigpOwpAQCAtMjQwLDYgKzI1NSwx
MiBAQCBQYXNzUmVmUHRyPERvY3VtZW50PiBET01JbXBsZW1lbnRhdGlvbjo6Y3JlYXRlRG9jdW1l
bnQoY29uc3QgU3RyaW5nJiBuYW1lc3BhY2VVUgogICAgIGVsc2UKICAgICAgICAgZG9jID0gRG9j
dW1lbnQ6OmNyZWF0ZSgwLCBLVVJMKCkpOwogCisgICAgaWYgKCFtX293bmVyRG9jdW1lbnQpIHsK
KyAgICAgICAgZWMgPSBJTlZBTElEX1NUQVRFX0VSUjsKKyAgICAgICAgcmV0dXJuIDA7CisgICAg
fQorICAgIGRvYy0+c2V0U2VjdXJpdHlPcmlnaW4obV9vd25lckRvY3VtZW50LT5zZWN1cml0eU9y
aWdpbigpKTsKKwogICAgIFJlZlB0cjxOb2RlPiBkb2N1bWVudEVsZW1lbnQ7CiAgICAgaWYgKCFx
dWFsaWZpZWROYW1lLmlzRW1wdHkoKSkgewogICAgICAgICBkb2N1bWVudEVsZW1lbnQgPSBkb2Mt
PmNyZWF0ZUVsZW1lbnROUyhuYW1lc3BhY2VVUkksIHF1YWxpZmllZE5hbWUsIGVjKTsKQEAgLTMw
MCw3ICszMjEsNyBAQCBQYXNzUmVmUHRyPEhUTUxEb2N1bWVudD4gRE9NSW1wbGVtZW50YXRpb246
OmNyZWF0ZUhUTUxEb2N1bWVudChjb25zdCBTdHJpbmcmIHRpdAogICAgIGQtPm9wZW4oKTsKICAg
ICBkLT53cml0ZSgiPCFkb2N0eXBlIGh0bWw+PGh0bWw+PGJvZHk+PC9ib2R5PjwvaHRtbD4iKTsK
ICAgICBkLT5zZXRUaXRsZSh0aXRsZSk7Ci0gICAgcmV0dXJuIGQucmVsZWFzZSgpOworICAgIHJl
dHVybiBzZXRTZWN1cml0eU9yaWdpbihkLnJlbGVhc2UoKSk7CiB9CiAKIFBhc3NSZWZQdHI8RG9j
dW1lbnQ+IERPTUltcGxlbWVudGF0aW9uOjpjcmVhdGVEb2N1bWVudChjb25zdCBTdHJpbmcmIHR5
cGUsIEZyYW1lKiBmcmFtZSwgY29uc3QgS1VSTCYgdXJsLCBib29sIGluVmlld1NvdXJjZU1vZGUp
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRE9NSW1wbGVtZW50YXRpb24uaCBiL1Nv
dXJjZS9XZWJDb3JlL2RvbS9ET01JbXBsZW1lbnRhdGlvbi5oCmluZGV4IGEyMGY3ZDIzZTE0YWYz
MzJhOTFkMTMxZDBkMDUwNTFlODg5YjYxZWQuLmE0NzAwMTRjY2E5NDljNjlmZDY1YTIyNjBmZDFl
MTRlNjBmYzE5ZWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9ET01JbXBsZW1lbnRh
dGlvbi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9ET01JbXBsZW1lbnRhdGlvbi5oCkBAIC00
MSwxMiArNDEsMTIgQEAgdHlwZWRlZiBpbnQgRXhjZXB0aW9uQ29kZTsKIAogY2xhc3MgRE9NSW1w
bGVtZW50YXRpb24gOiBwdWJsaWMgUmVmQ291bnRlZDxET01JbXBsZW1lbnRhdGlvbj4gewogcHVi
bGljOgotICAgIHN0YXRpYyBQYXNzUmVmUHRyPERPTUltcGxlbWVudGF0aW9uPiBjcmVhdGUoKSB7
IHJldHVybiBhZG9wdFJlZihuZXcgRE9NSW1wbGVtZW50YXRpb24pOyB9CisgICAgc3RhdGljIFBh
c3NSZWZQdHI8RE9NSW1wbGVtZW50YXRpb24+IGNyZWF0ZShEb2N1bWVudCogb3duZXJEb2N1bWVu
dCkgeyByZXR1cm4gYWRvcHRSZWYobmV3IERPTUltcGxlbWVudGF0aW9uKG93bmVyRG9jdW1lbnQp
KTsgfQogCiAgICAgLy8gRE9NIG1ldGhvZHMgJiBhdHRyaWJ1dGVzIGZvciBET01JbXBsZW1lbnRh
dGlvbgogICAgIHN0YXRpYyBib29sIGhhc0ZlYXR1cmUoY29uc3QgU3RyaW5nJiBmZWF0dXJlLCBj
b25zdCBTdHJpbmcmIHZlcnNpb24pOwotICAgIHN0YXRpYyBQYXNzUmVmUHRyPERvY3VtZW50VHlw
ZT4gY3JlYXRlRG9jdW1lbnRUeXBlKGNvbnN0IFN0cmluZyYgcXVhbGlmaWVkTmFtZSwgY29uc3Qg
U3RyaW5nJiBwdWJsaWNJZCwgY29uc3QgU3RyaW5nICZzeXN0ZW1JZCwgRXhjZXB0aW9uQ29kZSYp
OwotICAgIHN0YXRpYyBQYXNzUmVmUHRyPERvY3VtZW50PiBjcmVhdGVEb2N1bWVudChjb25zdCBT
dHJpbmcmIG5hbWVzcGFjZVVSSSwgY29uc3QgU3RyaW5nJiBxdWFsaWZpZWROYW1lLCBEb2N1bWVu
dFR5cGUqLCBFeGNlcHRpb25Db2RlJik7CisgICAgUGFzc1JlZlB0cjxEb2N1bWVudFR5cGU+IGNy
ZWF0ZURvY3VtZW50VHlwZShjb25zdCBTdHJpbmcmIHF1YWxpZmllZE5hbWUsIGNvbnN0IFN0cmlu
ZyYgcHVibGljSWQsIGNvbnN0IFN0cmluZyAmc3lzdGVtSWQsIEV4Y2VwdGlvbkNvZGUmKTsKKyAg
ICBQYXNzUmVmUHRyPERvY3VtZW50PiBjcmVhdGVEb2N1bWVudChjb25zdCBTdHJpbmcmIG5hbWVz
cGFjZVVSSSwgY29uc3QgU3RyaW5nJiBxdWFsaWZpZWROYW1lLCBEb2N1bWVudFR5cGUqLCBFeGNl
cHRpb25Db2RlJik7CiAKICAgICBET01JbXBsZW1lbnRhdGlvbiogZ2V0SW50ZXJmYWNlKGNvbnN0
IFN0cmluZyYgZmVhdHVyZSk7CiAKQEAgLTU0LDcgKzU0LDcgQEAgcHVibGljOgogICAgIHN0YXRp
YyBQYXNzUmVmUHRyPENTU1N0eWxlU2hlZXQ+IGNyZWF0ZUNTU1N0eWxlU2hlZXQoY29uc3QgU3Ry
aW5nJiB0aXRsZSwgY29uc3QgU3RyaW5nJiBtZWRpYSwgRXhjZXB0aW9uQ29kZSYpOwogCiAgICAg
Ly8gRnJvbSB0aGUgSFRNTERPTUltcGxlbWVudGF0aW9uIGludGVyZmFjZQotICAgIHN0YXRpYyBQ
YXNzUmVmUHRyPEhUTUxEb2N1bWVudD4gY3JlYXRlSFRNTERvY3VtZW50KGNvbnN0IFN0cmluZyYg
dGl0bGUpOworICAgIFBhc3NSZWZQdHI8SFRNTERvY3VtZW50PiBjcmVhdGVIVE1MRG9jdW1lbnQo
Y29uc3QgU3RyaW5nJiB0aXRsZSk7CiAKICAgICAvLyBPdGhlciBtZXRob2RzIChub3QgcGFydCBv
ZiBET00pCiAgICAgc3RhdGljIFBhc3NSZWZQdHI8RG9jdW1lbnQ+IGNyZWF0ZURvY3VtZW50KGNv
bnN0IFN0cmluZyYgTUlNRVR5cGUsIEZyYW1lKiwgY29uc3QgS1VSTCYsIGJvb2wgaW5WaWV3U291
cmNlTW9kZSk7CkBAIC02Miw4ICs2MiwxNiBAQCBwdWJsaWM6CiAgICAgc3RhdGljIGJvb2wgaXNY
TUxNSU1FVHlwZShjb25zdCBTdHJpbmcmIE1JTUVUeXBlKTsKICAgICBzdGF0aWMgYm9vbCBpc1Rl
eHRNSU1FVHlwZShjb25zdCBTdHJpbmcmIE1JTUVUeXBlKTsKIAorICAgIERvY3VtZW50KiBvd25l
ckRvY3VtZW50KCkgeyByZXR1cm4gbV9vd25lckRvY3VtZW50OyB9CisgICAgdm9pZCBvd25lckRv
Y3VtZW50RGVzdHJveWVkKCkgeyBtX293bmVyRG9jdW1lbnQgPSAwOyB9CisKIHByaXZhdGU6Ci0g
ICAgRE9NSW1wbGVtZW50YXRpb24oKSB7IH0KKyAgICBET01JbXBsZW1lbnRhdGlvbihEb2N1bWVu
dCogb3duZXJEb2N1bWVudCk7CisKKyAgICB0ZW1wbGF0ZSA8Y2xhc3MgVD4KKyAgICBQYXNzUmVm
UHRyPFQ+IHNldFNlY3VyaXR5T3JpZ2luKFBhc3NSZWZQdHI8VD4gZG9jKTsKKworICAgIERvY3Vt
ZW50KiBtX293bmVyRG9jdW1lbnQ7CiB9OwogCiB9IC8vbmFtZXNwYWNlCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9kb20vRE9NSW1wbGVtZW50YXRpb24uaWRsIGIvU291cmNlL1dlYkNvcmUv
ZG9tL0RPTUltcGxlbWVudGF0aW9uLmlkbAppbmRleCA4MWRmNmM4ODA4YmZkM2Y5NjUzZmUwYWM1
N2MzNjg2NjdmN2EyZGUxLi44NDIwMjgxYjE0N2I4MGQxZmJjZjk4YjM3MmEyMTY4YjlhYTFiODM0
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRE9NSW1wbGVtZW50YXRpb24uaWRsCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9ET01JbXBsZW1lbnRhdGlvbi5pZGwKQEAgLTIwLDcgKzIw
LDkgQEAKIAogbW9kdWxlIGNvcmUgewogCi0gICAgaW50ZXJmYWNlIERPTUltcGxlbWVudGF0aW9u
IHsKKyAgICBpbnRlcmZhY2UgWworICAgICAgICBDdXN0b21NYXJrRnVuY3Rpb24KKyAgICBdIERP
TUltcGxlbWVudGF0aW9uIHsKIAogICAgICAgICAvLyBET00gTGV2ZWwgMQogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL0Rv
Y3VtZW50LmNwcAppbmRleCAxMDc5MmZjZjZiNGUyM2M2OWY2NjkyMTBiYzk2ODM0ZmViMDIzMWI3
Li5jNTc2NGUwODc1NjdiZWIwYjhhYmQxZTgxNmM2MTY2ZTA2YTdhYTZlIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9E
b2N1bWVudC5jcHAKQEAgLTYwNiw2ICs2MDYsOSBAQCBEb2N1bWVudDo6fkRvY3VtZW50KCkKIAog
ICAgIGlmIChtX21lZGlhUXVlcnlNYXRjaGVyKQogICAgICAgICBtX21lZGlhUXVlcnlNYXRjaGVy
LT5kb2N1bWVudERlc3Ryb3llZCgpOworCisgICAgaWYgKG1faW1wbGVtZW50YXRpb24pCisgICAg
ICAgIG1faW1wbGVtZW50YXRpb24tPm93bmVyRG9jdW1lbnREZXN0cm95ZWQoKTsKIH0KIAogTWVk
aWFRdWVyeU1hdGNoZXIqIERvY3VtZW50OjptZWRpYVF1ZXJ5TWF0Y2hlcigpCkBAIC02ODcsMTAg
KzY5MCwxMCBAQCB2b2lkIERvY3VtZW50OjpzZXREb2NUeXBlKFBhc3NSZWZQdHI8RG9jdW1lbnRU
eXBlPiBkb2NUeXBlKQogICAgICAgICBtX2RvY1R5cGUtPnNldERvY3VtZW50KHRoaXMpOwogfQog
Ci1ET01JbXBsZW1lbnRhdGlvbiogRG9jdW1lbnQ6OmltcGxlbWVudGF0aW9uKCkgY29uc3QKK0RP
TUltcGxlbWVudGF0aW9uKiBEb2N1bWVudDo6aW1wbGVtZW50YXRpb24oKQogewogICAgIGlmICgh
bV9pbXBsZW1lbnRhdGlvbikKLSAgICAgICAgbV9pbXBsZW1lbnRhdGlvbiA9IERPTUltcGxlbWVu
dGF0aW9uOjpjcmVhdGUoKTsKKyAgICAgICAgbV9pbXBsZW1lbnRhdGlvbiA9IERPTUltcGxlbWVu
dGF0aW9uOjpjcmVhdGUodGhpcyk7CiAgICAgcmV0dXJuIG1faW1wbGVtZW50YXRpb24uZ2V0KCk7
CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oIGIvU291cmNl
L1dlYkNvcmUvZG9tL0RvY3VtZW50LmgKaW5kZXggOTQ2ZTU3YWYyYjZmOGYxYzBmNzY3OTI5MDMx
YzhkYjYwYTEzZDg5Ni4uY2I5MmFiOGZkODExZmFhZDdjZGExNGM3ZTVkYzk2ZTM5ZWE4N2U5MyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmgKKysrIGIvU291cmNlL1dl
YkNvcmUvZG9tL0RvY3VtZW50LmgKQEAgLTMwMyw3ICszMDMsNyBAQCBwdWJsaWM6CiAKICAgICBE
b2N1bWVudFR5cGUqIGRvY3R5cGUoKSBjb25zdCB7IHJldHVybiBtX2RvY1R5cGUuZ2V0KCk7IH0K
IAotICAgIERPTUltcGxlbWVudGF0aW9uKiBpbXBsZW1lbnRhdGlvbigpIGNvbnN0OworICAgIERP
TUltcGxlbWVudGF0aW9uKiBpbXBsZW1lbnRhdGlvbigpOwogICAgIAogICAgIEVsZW1lbnQqIGRv
Y3VtZW50RWxlbWVudCgpIGNvbnN0CiAgICAgewo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>82306</attachid>
            <date>2011-02-14 05:10:50 -0800</date>
            <delta_ts>2011-02-14 05:34:55 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-53611-20110214161048.patch</filename>
            <type>text/plain</type>
            <size>20021</size>
            <attacher name="anton muhin">antonm</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogNzg0MjgKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5n
ZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCA1NWI0NGE2ODAwMWE4NmZhMmQ0YzVj
NjJjMmM1ODJmZjRmN2EyOThmLi44ODYyYzg1NjBjZDE5MDRkNmFhYzAxMjFlMzM4ZDg3YzE0ZDQ5
MzU3IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAKKzIwMTEtMDItMDggIEFudG9uIE11aGluICA8YW50
b25tQGNocm9taXVtLm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICBQcm9wYWdhdGUgc2VjdXJpdHkgb3JpZ2luIG9mIHBhcmVudCBkb2N1bWVudCBp
bnRvIEhUTUwgZG9jdW1lbnRzIGNyZWF0ZWQgd2l0aCBET01JbXBsZW1lbnRhdGlvbgorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTM2MTEKKworICAgICAg
ICBBZGRpdGlvbmFsIHRlc3Qgd2hpY2ggY2hlY2tzIGNhc2Ugd2hlbiBwYXJlbnQgZG9jdW1lbnQg
Y2FuIGJlIGNvbGxlY3RlZCB3aGlsZQorICAgICAgICBpdHMgaW1wbGVtZW50YXRpb24gaXMgYWxp
dmUuCisKKyAgICAgICAgKiBmYXN0L2RvbS9nYy05Lmh0bWw6CisKIDIwMTEtMDItMTMgIFNoaW5p
Y2hpcm8gSGFtYWppICA8aGFtYWppQGNocm9taXVtLm9yZz4KIAogICAgICAgICBVcGRhdGUgY2hy
b21pdW0ncyB0ZXN0IGV4cGVjdGF0aW9ucyBmb3IgZmFzdC9pbmxpbmUvaW5saW5lLWJveC1iYWNr
Z3JvdW5kLSoKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL2djLTkuaHRtbCBiL0xh
eW91dFRlc3RzL2Zhc3QvZG9tL2djLTkuaHRtbAppbmRleCAyYmMyNWFkM2VmOGE0ODRmMjM3Mjc1
NGI2OGEyNDcxYTVlNWY0YzQ1Li4zZWRhM2FlMzQxMTkxYjIwYWU3MjI0ZTZiNmJjN2VhMTZiMzA3
NWE3IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9nYy05Lmh0bWwKKysrIGIvTGF5
b3V0VGVzdHMvZmFzdC9kb20vZ2MtOS5odG1sCkBAIC04Myw2ICs4MywxMyBAQCBmdW5jdGlvbiB0
ZXN0RXZlbnRzKCkKICAgICB9CiB9CiAKK2Z1bmN0aW9uIHRlc3RET01JbXBsZW1lbnRhdGlvbigp
Cit7CisgIHZhciBpbXBsID0gZG9jdW1lbnQuaW1wbGVtZW50YXRpb24uY3JlYXRlSFRNTERvY3Vt
ZW50KCcnKS5pbXBsZW1lbnRhdGlvbjsKKyAgZ2MoKTsKKyAgaW1wbC5jcmVhdGVIVE1MRG9jdW1l
bnQoJycpOyAgLy8gTWF5IGNyYXNoIG9yIHRocm93IGFuIGV4Y2VwdGlvbiBpZiB3ZSBjb2xsZWN0
IHBhcmVudCBkb2N1bWVudCBvZiBpbXBsLgorfQorCiBmdW5jdGlvbiB0ZXN0KCkgCiB7CiAgICAg
aWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKQEAgLTk3LDYgKzEwNCw3IEBAIGZ1bmN0
aW9uIHRlc3QoKQogICAgIHRlc3RQcm9wZXJ0aWVzQWdhaW4oKTsKIAogICAgIHRlc3RFdmVudHMo
KTsKKyAgICB0ZXN0RE9NSW1wbGVtZW50YXRpb24oKTsKIH0KIAogLy8gQnkgZGVmYXVsdCwgd2Ug
ZXhwZWN0IHRoYXQgY3VzdG9tIHByb3BlcnRpZXMgYXJlIG5vdCBhbGxvd2VkLgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvQW5kcm9pZC5qc2NiaW5kaW5ncy5tayBiL1NvdXJjZS9XZWJDb3Jl
L0FuZHJvaWQuanNjYmluZGluZ3MubWsKaW5kZXggYzY3MWFkOTI2OWZmZDBhOTZjNTJjNjFkMTJl
NjViYzgwOTE1ODFkOS4uYmZhNjdhOGQxYzIwMWRlZTRlNTU5ODQyYTQ4YjQ3NTMyMjEwNTMzMiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQW5kcm9pZC5qc2NiaW5kaW5ncy5taworKysgYi9T
b3VyY2UvV2ViQ29yZS9BbmRyb2lkLmpzY2JpbmRpbmdzLm1rCkBAIC04Nyw2ICs4Nyw3IEBAIExP
Q0FMX1NSQ19GSUxFUyArPSBcCiAJYmluZGluZ3MvanMvSlNET01CaW5kaW5nLmNwcCBcCiAJYmlu
ZGluZ3MvanMvSlNET01Gb3JtRGF0YUN1c3RvbS5jcHAgXAogCWJpbmRpbmdzL2pzL0pTRE9NR2xv
YmFsT2JqZWN0LmNwcCBcCisJYmluZGluZ3MvanMvSlNET01JbXBsZW1lbnRhdGlvbkN1c3RvbS5j
cHAgXAogCWJpbmRpbmdzL2pzL0pTRE9NU2V0dGFibGVUb2tlbkxpc3QuY3BwIFwKIAliaW5kaW5n
cy9qcy9KU0RPTVRva2VuTGlzdC5jcHAgXAogCWJpbmRpbmdzL2pzL0pTRE9NV2luZG93QmFzZS5j
cHAgXApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQgYi9Tb3VyY2Uv
V2ViQ29yZS9DTWFrZUxpc3RzLnR4dAppbmRleCAyODczZDhhM2I5YjEwZTRmOThiMmZlODY4MDYx
NGI0OTI1YzRjZmVjLi45MzNjNWU2YmEzNzZlZTg4NjhiNzhjMTY2Y2MwMmE0ZjQ0ZDM5YTJlIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9DTWFrZUxpc3RzLnR4dApAQCAtNDg1LDYgKzQ4NSw3IEBAIFNFVChXZWJDb3JlX1NPVVJD
RVMKICAgICBiaW5kaW5ncy9qcy9KU0RPTUJpbmRpbmcuY3BwCiAgICAgYmluZGluZ3MvanMvSlNE
T01Gb3JtRGF0YUN1c3RvbS5jcHAKICAgICBiaW5kaW5ncy9qcy9KU0RPTUdsb2JhbE9iamVjdC5j
cHAKKyAgICBiaW5kaW5ncy9qcy9KU0RPTUltcGxlbWVudGF0aW9uQ3VzdG9tLmNwcAogICAgIGJp
bmRpbmdzL2pzL0pTRE9NTWltZVR5cGVBcnJheUN1c3RvbS5jcHAKICAgICBiaW5kaW5ncy9qcy9K
U0RPTVBsdWdpbkFycmF5Q3VzdG9tLmNwcAogICAgIGJpbmRpbmdzL2pzL0pTRE9NUGx1Z2luQ3Vz
dG9tLmNwcApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291cmNlL1dl
YkNvcmUvQ2hhbmdlTG9nCmluZGV4IDEzMDZkNjQwMjU3M2QzOTI0NTliZmI2Mjk0ZTA5MThhMTdh
NDk0MjMuLmZjMDRiZGE3YmMzMTZkMTU2OWE3ZWY3MzdkYjc1ZWZhZDNlYWNlOGYgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VM
b2cKQEAgLTEsMyArMSwzOSBAQAorMjAxMS0wMi0wOCAgQW50b24gTXVoaW4gIDxhbnRvbm1AY2hy
b21pdW0ub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgIFByb3BhZ2F0ZSBzZWN1cml0eSBvcmlnaW4gb2YgcGFyZW50IGRvY3VtZW50IGludG8gSFRN
TCBkb2N1bWVudHMgY3JlYXRlZCB3aXRoIERPTUltcGxlbWVudGF0aW9uCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD01MzYxMQorCisgICAgICAgIFRoaXMg
cmVzdG9yZXMgaW52YXJpYW50IHRoYXQgSlMgd3JhcHBlcnMgcmVzaWRpbmcgaW4gdGhlIHNhbWUg
SlMgY29udGV4dCBzaG91bGQgY29tZQorICAgICAgICBmcm9tIHRoZSBzYW1lIHNlY3VyaXR5IG9y
aWdpbi4KKworICAgICAgICBBYnNlbmNlIG9mIHJlZ3Jlc3Npb25zIGlzIGNvdmVyZWQgYnkgdGhl
IGN1cnJlbnQgdGVzdHMuICBEaWZmZXJlbnQgc2VjdXJpdHkgb3JpZ2luIG9mCisgICAgICAgIERP
TUltcGxlbWVudGF0aW9uIGlzIGRpZmZpY3VsdCB0byBjaGVjayB3aXRoIGxheW91dCB0ZXN0cyBh
cyBET01JbXBsZW1lbnRhdGlvbgorICAgICAgICByZXNpZGVzIGluIHRoZSBzYW1lIEpTIGNvbnRl
eHQgYXMgcGFyZW50IGRvY3VtZW50IGFuZCB0aGVyZWZvcmUgdGhlcmUgYXJlIG5vIHNlY3VyaXR5
IG9yaWdpbiBjaGVja3MuCisgICAgICAgIFRoaXMgaXMgb2JzZXJ2YWJsZSBob3dldmVyIGluIEMr
Ky4KKworICAgICAgICAqIEFuZHJvaWQuanNjYmluZGluZ3MubWs6CisgICAgICAgICogQ01ha2VM
aXN0cy50eHQ6CisgICAgICAgICogV2ViQ29yZS5neXBpOgorICAgICAgICAqIFdlYkNvcmUucHJv
OgorICAgICAgICAqIFdlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qOgorICAgICAgICAqIFdl
YkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBiaW5kaW5ncy92OC9W
OEdDQ29udHJvbGxlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpOb2RlR3JvdXBlclZpc2l0b3I6
OnZpc2l0RE9NV3JhcHBlcik6CisgICAgICAgICogZG9tL0RPTUltcGxlbWVudGF0aW9uLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OkRPTUltcGxlbWVudGF0aW9uOjpET01JbXBsZW1lbnRhdGlvbik6
CisgICAgICAgIChXZWJDb3JlOjpET01JbXBsZW1lbnRhdGlvbjo6Y3JlYXRlRG9jdW1lbnQpOgor
ICAgICAgICAqIGRvbS9ET01JbXBsZW1lbnRhdGlvbi5oOgorICAgICAgICAoV2ViQ29yZTo6RE9N
SW1wbGVtZW50YXRpb246OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpET01JbXBsZW1lbnRh
dGlvbjo6ZG9jdW1lbnREZXN0cm95ZWQpOgorICAgICAgICAoV2ViQ29yZTo6RE9NSW1wbGVtZW50
YXRpb246OnBhcmVudERvY3VtZW50KToKKyAgICAgICAgKiBkb20vRE9NSW1wbGVtZW50YXRpb24u
aWRsOgorICAgICAgICAqIGRvbS9Eb2N1bWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpEb2N1
bWVudDo6fkRvY3VtZW50KToKKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50OjppbXBsZW1lbnRh
dGlvbik6CisgICAgICAgICogZG9tL0RvY3VtZW50Lmg6CisKIDIwMTEtMDItMTIgIFNhbSBXZWlu
aWcgIDxzYW1Ad2Via2l0Lm9yZz4KIAogICAgICAgICBSZXZpZXdlZCBieSBEYW4gQmVybnN0ZWlu
LgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpIGIvU291cmNlL1dlYkNv
cmUvV2ViQ29yZS5neXBpCmluZGV4IGViODAxNmM3OTA4MzcyZDRmZGVhYzY4ZGU0MjMxZTZmOTk1
NjlkYTkuLjIxYWY0NzgzOWQ1M2UzZDU4NmQ0NTI0ZGY2MDAyNDBkYTFmMTcwODMgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJD
b3JlLmd5cGkKQEAgLTYxNiw2ICs2MTYsNyBAQAogICAgICAgICAgICAgJ2JpbmRpbmdzL2pzL0pT
RE9NQmluZGluZy5oJywKICAgICAgICAgICAgICdiaW5kaW5ncy9qcy9KU0RPTUdsb2JhbE9iamVj
dC5jcHAnLAogICAgICAgICAgICAgJ2JpbmRpbmdzL2pzL0pTRE9NR2xvYmFsT2JqZWN0LmgnLAor
ICAgICAgICAgICAgJ2JpbmRpbmdzL2pzL0pTRE9NSW1wbGVtZW50YXRpb25DdXN0b20uY3BwJywK
ICAgICAgICAgICAgICdiaW5kaW5ncy9qcy9KU0RPTVN0cmluZ01hcEN1c3RvbS5jcHAnLAogICAg
ICAgICAgICAgJ2JpbmRpbmdzL2pzL0pTRE9NU3RyaW5nTWFwQ3VzdG9tLmgnLAogICAgICAgICAg
ICAgJ2JpbmRpbmdzL2pzL0pTRE9NV2luZG93QmFzZS5jcHAnLApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvV2ViQ29yZS5wcm8gYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnBybwppbmRleCA4
Zjc1N2NmOTY3YmRkNmY2NDc5ZWI5OGQ0ZDZjMzAzMzEzZjQ4Y2E4Li42MzNmZTM0NTQ5YWZhMzlm
YzU0ZTgxZGNhNmNmNWJiMGJmYWUxNDc5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJD
b3JlLnBybworKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnBybwpAQCAtMTUyNyw2ICsxNTI3
LDcgQEAgdjggewogICAgICAgICBiaW5kaW5ncy9qcy9KU0N1c3RvbVhQYXRoTlNSZXNvbHZlci5o
IFwKICAgICAgICAgYmluZGluZ3MvanMvSlNET01CaW5kaW5nLmggXAogICAgICAgICBiaW5kaW5n
cy9qcy9KU0RPTUdsb2JhbE9iamVjdC5oIFwKKyAgICAgICAgYmluZGluZ3MvanMvSlNET01JbXBs
ZW1lbnRhdGlvbkN1c3RvbS5oIFwKICAgICAgICAgYmluZGluZ3MvanMvSlNET01TdHJpbmdNYXBD
dXN0b20uaCBcCiAgICAgICAgIGJpbmRpbmdzL2pzL0pTRE9NV2luZG93QmFzZS5oIFwKICAgICAg
ICAgYmluZGluZ3MvanMvSlNET01XaW5kb3dDdXN0b20uaCBcCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dl
YkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qCmluZGV4IDJhOGYzNDBhNjk0OTcwNTcyZmM5YTU1
MDA0OGJmMzgzYWZjOWU4YjQuLjUxZDVjNmJlNGQxMWEyNWJmNDJhNzgzMmFmNWYzODI4ZmEyNTE2
YmIgMTAwNzU1Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNw
cm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qCkBA
IC01ODA2OSw2ICs1ODA2OSw1OCBAQAogCQkJCQk+CiAJCQkJPC9GaWxlPgogCQkJCTxGaWxlCisJ
CQkJCVJlbGF0aXZlUGF0aD0iLi5cYmluZGluZ3NcanNcSlNET01JbXBsZW1lbnRhdGlvbkN1c3Rv
bS5jcHAiCisJCQkJCT4KKwkJCQkJPEZpbGVDb25maWd1cmF0aW9uCisJCQkJCQlOYW1lPSJEZWJ1
Z3xXaW4zMiIKKwkJCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIgorCQkJCQkJPgorCQkJCQkJ
PFRvb2wKKwkJCQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIgorCQkJCQkJLz4KKwkJCQkJPC9G
aWxlQ29uZmlndXJhdGlvbj4KKwkJCQkJPEZpbGVDb25maWd1cmF0aW9uCisJCQkJCQlOYW1lPSJS
ZWxlYXNlfFdpbjMyIgorCQkJCQkJRXhjbHVkZWRGcm9tQnVpbGQ9InRydWUiCisJCQkJCQk+CisJ
CQkJCQk8VG9vbAorCQkJCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiCisJCQkJCQkvPgorCQkJ
CQk8L0ZpbGVDb25maWd1cmF0aW9uPgorCQkJCQk8RmlsZUNvbmZpZ3VyYXRpb24KKwkJCQkJCU5h
bWU9IkRlYnVnX0NhaXJvX0NGTGl0ZXxXaW4zMiIKKwkJCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0
cnVlIgorCQkJCQkJPgorCQkJCQkJPFRvb2wKKwkJCQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29s
IgorCQkJCQkJLz4KKwkJCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4KKwkJCQkJPEZpbGVDb25maWd1
cmF0aW9uCisJCQkJCQlOYW1lPSJSZWxlYXNlX0NhaXJvX0NGTGl0ZXxXaW4zMiIKKwkJCQkJCUV4
Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIgorCQkJCQkJPgorCQkJCQkJPFRvb2wKKwkJCQkJCQlOYW1l
PSJWQ0NMQ29tcGlsZXJUb29sIgorCQkJCQkJLz4KKwkJCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4K
KwkJCQkJPEZpbGVDb25maWd1cmF0aW9uCisJCQkJCQlOYW1lPSJEZWJ1Z19BbGx8V2luMzIiCisJ
CQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSIKKwkJCQkJCT4KKwkJCQkJCTxUb29sCisJCQkJ
CQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCIKKwkJCQkJCS8+CisJCQkJCTwvRmlsZUNvbmZpZ3Vy
YXRpb24+CisJCQkJCTxGaWxlQ29uZmlndXJhdGlvbgorCQkJCQkJTmFtZT0iUmVsZWFzZV9MVENH
fFdpbjMyIgorCQkJCQkJRXhjbHVkZWRGcm9tQnVpbGQ9InRydWUiCisJCQkJCQk+CisJCQkJCQk8
VG9vbAorCQkJCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiCisJCQkJCQkvPgorCQkJCQk8L0Zp
bGVDb25maWd1cmF0aW9uPgorCQkJCTwvRmlsZT4KKwkJCQk8RmlsZQogCQkJCQlSZWxhdGl2ZVBh
dGg9Ii4uXGJpbmRpbmdzXGpzXEpTRE9NTWltZVR5cGVBcnJheUN1c3RvbS5jcHAiCiAJCQkJCT4K
IAkJCQkJPEZpbGVDb25maWd1cmF0aW9uCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJD
b3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhj
b2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggZmMxNzkyNzBhNDk0ZTdkMjNjNTMyNjU0ZmVh
M2FmNDNiNjhlYmUwNi4uMGYxYzdhZTYyYmY2ZjM3YzgwYTFiYWVhYTMwOGUzYWZkY2Q5NWZkOSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhw
cm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
agpAQCAtNjUyLDYgKzY1Miw3IEBACiAJCTFDRkFFMzIzMEE2RDZBM0YwMDMyNTkzRCAvKiBsaWJv
YmpjLmR5bGliIGluIEZyYW1ld29ya3MgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gMUNGQUUzMjIwQTZENkEzRjAwMzI1OTNEIC8qIGxpYm9iamMuZHlsaWIgKi87IH07CiAJCTIw
RDYyOTI2MTI1MzY5MEIwMDA4MTU0MyAvKiBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb24uY3BwIGlu
IFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMjBENjI5MjQxMjUz
NjkwQjAwMDgxNTQzIC8qIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbi5jcHAgKi87IH07CiAJCTIw
RDYyOTI3MTI1MzY5MEIwMDA4MTU0MyAvKiBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb24uaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDIwRDYyOTI1MTI1MzY5
MEIwMDA4MTU0MyAvKiBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb24uaCAqLzsgfTsKKwkJMjI4ODVF
NjQxMzAxQUU0QzAwNTI2RTY4IC8qIEpTRE9NSW1wbGVtZW50YXRpb25DdXN0b20uY3BwIGluIFNv
dXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMjI4ODVFNjMxMzAxQUU0
QzAwNTI2RTY4IC8qIEpTRE9NSW1wbGVtZW50YXRpb25DdXN0b20uY3BwICovOyB9OwogCQkyMjhD
Mjg0NTEwRDgyNTAwMDA5RDBEMEUgLyogU2NyaXB0V3JhcHBhYmxlLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyMjhDMjg0NDEwRDgyNTAwMDA5RDBEMEUg
LyogU2NyaXB0V3JhcHBhYmxlLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0
ZSwgKTsgfTsgfTsKIAkJMjRGNTRFQUMxMDFGRTkxNDAwMEFFNzQxIC8qIEFwcGxpY2F0aW9uQ2Fj
aGVIb3N0LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDI0RjU0RUFBMTAxRkU5MTQwMDBBRTc0MSAvKiBBcHBsaWNhdGlvbkNhY2hlSG9zdC5jcHAgKi87
IH07CiAJCTI0RjU0RUFEMTAxRkU5MTQwMDBBRTc0MSAvKiBBcHBsaWNhdGlvbkNhY2hlSG9zdC5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMjRGNTRFQUIx
MDFGRTkxNDAwMEFFNzQxIC8qIEFwcGxpY2F0aW9uQ2FjaGVIb3N0LmggKi87IHNldHRpbmdzID0g
e0FUVFJJQlVURVMgPSAoKTsgfTsgfTsKQEAgLTcwMDAsNiArNzAwMSw3IEBACiAJCTFDRkFFMzIy
MEE2RDZBM0YwMDMyNTkzRCAvKiBsaWJvYmpjLmR5bGliICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gImNvbXBpbGVkLm1hY2gtby5keWxpYiI7IG5hbWUg
PSBsaWJvYmpjLmR5bGliOyBwYXRoID0gL3Vzci9saWIvbGlib2JqYy5keWxpYjsgc291cmNlVHJl
ZSA9ICI8YWJzb2x1dGU+IjsgfTsKIAkJMjBENjI5MjQxMjUzNjkwQjAwMDgxNTQzIC8qIEluc3Bl
Y3Rvckluc3RydW1lbnRhdGlvbi5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBh
dGggPSBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb24uY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQkyMEQ2MjkyNTEyNTM2OTBCMDAwODE1NDMgLyogSW5zcGVjdG9ySW5zdHJ1bWVudGF0
aW9uLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEluc3BlY3Rvckluc3RydW1l
bnRhdGlvbi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkyMjg4NUU2MzEzMDFBRTRD
MDA1MjZFNjggLyogSlNET01JbXBsZW1lbnRhdGlvbkN1c3RvbS5jcHAgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBKU0RPTUltcGxlbWVudGF0aW9uQ3VzdG9tLmNwcDsgcGF0
aCA9IGJpbmRpbmdzL2pzL0pTRE9NSW1wbGVtZW50YXRpb25DdXN0b20uY3BwOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQkyMjhDMjg0NDEwRDgyNTAwMDA5RDBEMEUgLyogU2NyaXB0V3Jh
cHBhYmxlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNjcmlwdFdyYXBwYWJs
ZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkyNDQyQkJGODExOTRDOUQzMDBENDk0
NjkgLyogSGFzaENoYW5nZUV2ZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IEhhc2hDaGFuZ2VFdmVudC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkyNEY1NEVB
QTEwMUZFOTE0MDAwQUU3NDEgLyogQXBwbGljYXRpb25DYWNoZUhvc3QuY3BwICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gQXBwbGljYXRpb25DYWNoZUhvc3QuY3BwOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTI0MTAsNiArMTI0MTIsNyBAQAogCQkwODY3RDY5
MUZFODQwMjhGQzAyQUFDMDcgLyogV2ViS2l0ICovID0gewogCQkJaXNhID0gUEJYR3JvdXA7CiAJ
CQljaGlsZHJlbiA9ICgKKwkJCQkyMjg4NUU2MzEzMDFBRTRDMDA1MjZFNjggLyogSlNET01JbXBs
ZW1lbnRhdGlvbkN1c3RvbS5jcHAgKi8sCiAJCQkJNjVDOTdBRjIwOEVBOTA4ODAwQUNEMjczIC8q
IGNvbmZpZy5oICovLAogCQkJCUVERUM5ODAyMEFFRDdFMTcwMDU5MTM3RiAvKiBXZWJDb3JlUHJl
Zml4LmggKi8sCiAJCQkJOTMwNzA2MTMwOUUwQ0E4MjAwQjE3RkU0IC8qIERlcml2ZWRTb3VyY2Vz
Lm1ha2UgKi8sCkBAIC0yMjUxOSw3ICsyMjUyMiw2IEBACiAJCQlpc2EgPSBQQlhQcm9qZWN0Owog
CQkJYnVpbGRDb25maWd1cmF0aW9uTGlzdCA9IDE0OUMyODQzMDg5MDJCMTEwMDhBOUVGQyAvKiBC
dWlsZCBjb25maWd1cmF0aW9uIGxpc3QgZm9yIFBCWFByb2plY3QgIldlYkNvcmUiICovOwogCQkJ
Y29tcGF0aWJpbGl0eVZlcnNpb24gPSAiWGNvZGUgMi40IjsKLQkJCWRldmVsb3BtZW50UmVnaW9u
ID0gRW5nbGlzaDsKIAkJCWhhc1NjYW5uZWRGb3JFbmNvZGluZ3MgPSAxOwogCQkJa25vd25SZWdp
b25zID0gKAogCQkJCUVuZ2xpc2gsCkBAIC0yNTE0OCw2ICsyNTE1MCw3IEBACiAJCQkJQTFFMTE1
NDQxMzAxNUMzRDAwNTRBQzhDIC8qIERpc3RhbnRMaWdodFNvdXJjZS5jcHAgaW4gU291cmNlcyAq
LywKIAkJCQlBMUUxMTU0NjEzMDE1QzRFMDA1NEFDOEMgLyogUG9pbnRMaWdodFNvdXJjZS5jcHAg
aW4gU291cmNlcyAqLywKIAkJCQlBMUUxMTU0ODEzMDE1QzVEMDA1NEFDOEMgLyogU3BvdExpZ2h0
U291cmNlLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTIyODg1RTY0MTMwMUFFNEMwMDUyNkU2OCAv
KiBKU0RPTUltcGxlbWVudGF0aW9uQ3VzdG9tLmNwcCBpbiBTb3VyY2VzICovLAogCQkJKTsKIAkJ
CXJ1bk9ubHlGb3JEZXBsb3ltZW50UG9zdHByb2Nlc3NpbmcgPSAwOwogCQl9OwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNCaW5kaW5nc0FsbEluT25lLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTQmluZGluZ3NBbGxJbk9uZS5jcHAKaW5kZXggN2M1
ZWRjNjQxZWIxYzJlOGFlNmM1MTEyODkyOTRkMzY5NjkzODdhNi4uNmY4MjY1ZTIzZjAyMTE3Mzc3
NTczOGFmMThlMmNiZTQ4NGQzMjI1MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3MvanMvSlNCaW5kaW5nc0FsbEluT25lLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9qcy9KU0JpbmRpbmdzQWxsSW5PbmUuY3BwCkBAIC01Niw2ICs1Niw3IEBACiAjaW5jbHVkZSAi
SlNET01CaW5kaW5nLmNwcCIKICNpbmNsdWRlICJKU0RPTUZvcm1EYXRhQ3VzdG9tLmNwcCIKICNp
bmNsdWRlICJKU0RPTUdsb2JhbE9iamVjdC5jcHAiCisjaW5jbHVkZSAiSlNET01JbXBsZW1lbnRh
dGlvbi5jcHAiCiAjaW5jbHVkZSAiSlNET01NaW1lVHlwZUFycmF5Q3VzdG9tLmNwcCIKICNpbmNs
dWRlICJKU0RPTVBsdWdpbkFycmF5Q3VzdG9tLmNwcCIKICNpbmNsdWRlICJKU0RPTVBsdWdpbkN1
c3RvbS5jcHAiCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTUlt
cGxlbWVudGF0aW9uQ3VzdG9tLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9N
SW1wbGVtZW50YXRpb25DdXN0b20uY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjU1ZDBmNGZjNzA4ODc0MTBkMTUy
OGVhNmJlYTdjZWUzYTkzZmIxMTIKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9qcy9KU0RPTUltcGxlbWVudGF0aW9uQ3VzdG9tLmNwcApAQCAtMCwwICsxLDM5IEBA
CisvKgorICogQ29weXJpZ2h0IChDKSAyMDA3LCAyMDA4LCAyMDA5IEFwcGxlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KKyAqCisgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91
IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1z
IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYworICogTGljZW5zZSBhcyBwdWJsaXNo
ZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCisgKiB2ZXJzaW9uIDIg
b2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisg
KgorICogVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2ls
bCBiZSB1c2VmdWwsCisgKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0
aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9S
IEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKKyAqIExpYnJhcnkgR2VuZXJhbCBQ
dWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorICoKKyAqIFlvdSBzaG91bGQgaGF2ZSBy
ZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UK
KyAqIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBzZWUgdGhlIGZpbGUgQ09QWUlORy5MSUIuICBJ
ZiBub3QsIHdyaXRlIHRvCisgKiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1
MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLAorICogQm9zdG9uLCBNQSAwMjExMC0xMzAx
LCBVU0EuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIkpTRE9NSW1wbGVt
ZW50YXRpb24uaCIKKworI2luY2x1ZGUgIkRPTUltcGxlbWVudGF0aW9uLmgiCisKK3VzaW5nIG5h
bWVzcGFjZSBKU0M7CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKwordm9pZCBKU0RPTUltcGxlbWVu
dGF0aW9uOjptYXJrQ2hpbGRyZW4oTWFya1N0YWNrJiBtYXJrU3RhY2spCit7CisgICAgQmFzZTo6
bWFya0NoaWxkcmVuKG1hcmtTdGFjayk7CisKKyAgICBET01JbXBsZW1lbnRhdGlvbiogZG9tSW1w
bGVtZW50YXRpb24gPSBpbXBsKCk7CisgICAgRG9jdW1lbnQqIG93bmVyRG9jdW1lbnQgPSBkb21J
bXBsZW1lbnRhdGlvbi0+b3duZXJEb2N1bWVudCgpOworICAgIGlmIChvd25lckRvY3VtZW50KQor
ICAgICAgICBtYXJrRE9NTm9kZVdyYXBwZXIobWFya1N0YWNrLCBvd25lckRvY3VtZW50LCBvd25l
ckRvY3VtZW50KTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvVjhHQ0NvbnRyb2xsZXIuY3BwIGIvU291cmNlL1dlYkNv
cmUvYmluZGluZ3MvdjgvVjhHQ0NvbnRyb2xsZXIuY3BwCmluZGV4IGYxY2YyMDY3MmZmY2Q3ODZh
MDEyODUyYzY2ZDI1NDNkMTkxODA3NWYuLmEzNGRjMjQyNWViZTdmNzkzNWJhMDkxOGIwYzhkMmRj
NzgwNzk4YzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1Y4R0NDb250
cm9sbGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9WOEdDQ29udHJvbGxl
ci5jcHAKQEAgLTI5MCw2ICsyOTAsNyBAQCBwdWJsaWM6CiAgICAgICAgIGlmIChub2RlLT5pc0Rv
Y3VtZW50Tm9kZSgpKSB7CiAgICAgICAgICAgICBEb2N1bWVudCogZG9jdW1lbnQgPSByZWludGVy
cHJldF9jYXN0PERvY3VtZW50Kj4obm9kZSk7CiAgICAgICAgICAgICBhZGRET01PYmplY3RUb0dy
b3VwKHN0b3JlLCBncm91cElkLCBkb2N1bWVudC0+c3R5bGVTaGVldHMoKSk7CisgICAgICAgICAg
ICBhZGRET01PYmplY3RUb0dyb3VwKHN0b3JlLCBncm91cElkLCBkb2N1bWVudC0+aW1wbGVtZW50
YXRpb24oKSk7CiAgICAgICAgIH0KIAogICAgICAgICBXcmFwcGVyVHlwZUluZm8qIHR5cGVJbmZv
ID0gVjhET01XcmFwcGVyOjpkb21XcmFwcGVyVHlwZSh3cmFwcGVyKTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2RvbS9ET01JbXBsZW1lbnRhdGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9k
b20vRE9NSW1wbGVtZW50YXRpb24uY3BwCmluZGV4IDMwZTg4OWY4YzFmMmFjZmZmMDVhNTk1ZTEy
NTM2NGU0NTI4MjFkZGIuLjNiYTExMzczMzg3YjNlNzEzNjQ4YTQ5NTk2YzljMTA1MDc2YzdiMTIg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9ET01JbXBsZW1lbnRhdGlvbi5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvZG9tL0RPTUltcGxlbWVudGF0aW9uLmNwcApAQCAtMTcxLDYgKzE3
MSwxMiBAQCBzdGF0aWMgYm9vbCBpc1NWRzExRmVhdHVyZShjb25zdCBTdHJpbmcgJmZlYXR1cmUp
CiB9CiAjZW5kaWYKIAorRE9NSW1wbGVtZW50YXRpb246OkRPTUltcGxlbWVudGF0aW9uKERvY3Vt
ZW50KiBvd25lckRvY3VtZW50KQorICAgIDogbV9vd25lckRvY3VtZW50KG93bmVyRG9jdW1lbnQp
Cit7CisgICAgQVNTRVJUKG1fb3duZXJEb2N1bWVudCk7Cit9CisKIGJvb2wgRE9NSW1wbGVtZW50
YXRpb246Omhhc0ZlYXR1cmUoY29uc3QgU3RyaW5nJiBmZWF0dXJlLCBjb25zdCBTdHJpbmcmIHZl
cnNpb24pCiB7CiAgICAgU3RyaW5nIGxvd2VyID0gZmVhdHVyZS5sb3dlcigpOwpAQCAtMjQwLDYg
KzI0NiwxMiBAQCBQYXNzUmVmUHRyPERvY3VtZW50PiBET01JbXBsZW1lbnRhdGlvbjo6Y3JlYXRl
RG9jdW1lbnQoY29uc3QgU3RyaW5nJiBuYW1lc3BhY2VVUgogICAgIGVsc2UKICAgICAgICAgZG9j
ID0gRG9jdW1lbnQ6OmNyZWF0ZSgwLCBLVVJMKCkpOwogCisgICAgaWYgKCFtX293bmVyRG9jdW1l
bnQpIHsKKyAgICAgICAgZWMgPSBJTlZBTElEX1NUQVRFX0VSUjsKKyAgICAgICAgcmV0dXJuIDA7
CisgICAgfQorICAgIGRvYy0+c2V0U2VjdXJpdHlPcmlnaW4obV9vd25lckRvY3VtZW50LT5zZWN1
cml0eU9yaWdpbigpKTsKKwogICAgIFJlZlB0cjxOb2RlPiBkb2N1bWVudEVsZW1lbnQ7CiAgICAg
aWYgKCFxdWFsaWZpZWROYW1lLmlzRW1wdHkoKSkgewogICAgICAgICBkb2N1bWVudEVsZW1lbnQg
PSBkb2MtPmNyZWF0ZUVsZW1lbnROUyhuYW1lc3BhY2VVUkksIHF1YWxpZmllZE5hbWUsIGVjKTsK
QEAgLTMwMCw2ICszMTIsOSBAQCBQYXNzUmVmUHRyPEhUTUxEb2N1bWVudD4gRE9NSW1wbGVtZW50
YXRpb246OmNyZWF0ZUhUTUxEb2N1bWVudChjb25zdCBTdHJpbmcmIHRpdAogICAgIGQtPm9wZW4o
KTsKICAgICBkLT53cml0ZSgiPCFkb2N0eXBlIGh0bWw+PGh0bWw+PGJvZHk+PC9ib2R5PjwvaHRt
bD4iKTsKICAgICBkLT5zZXRUaXRsZSh0aXRsZSk7CisgICAgQVNTRVJUKG1fb3duZXJEb2N1bWVu
dCk7CisgICAgaWYgKG1fb3duZXJEb2N1bWVudCkKKyAgICAgICAgZC0+c2V0U2VjdXJpdHlPcmln
aW4obV9vd25lckRvY3VtZW50LT5zZWN1cml0eU9yaWdpbigpKTsKICAgICByZXR1cm4gZC5yZWxl
YXNlKCk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9ET01JbXBsZW1lbnRh
dGlvbi5oIGIvU291cmNlL1dlYkNvcmUvZG9tL0RPTUltcGxlbWVudGF0aW9uLmgKaW5kZXggYTIw
ZjdkMjNlMTRhZjMzMmE5MWQxMzFkMGQwNTA1MWU4ODliNjFlZC4uNGVhZGJhM2Y3NGRkZjZkMGRk
Njk3YTYwYmI3ODJmZDY5NDUwOWRhYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0RP
TUltcGxlbWVudGF0aW9uLmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0RPTUltcGxlbWVudGF0
aW9uLmgKQEAgLTQxLDEyICs0MSwxMiBAQCB0eXBlZGVmIGludCBFeGNlcHRpb25Db2RlOwogCiBj
bGFzcyBET01JbXBsZW1lbnRhdGlvbiA6IHB1YmxpYyBSZWZDb3VudGVkPERPTUltcGxlbWVudGF0
aW9uPiB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFBhc3NSZWZQdHI8RE9NSW1wbGVtZW50YXRpb24+
IGNyZWF0ZSgpIHsgcmV0dXJuIGFkb3B0UmVmKG5ldyBET01JbXBsZW1lbnRhdGlvbik7IH0KKyAg
ICBzdGF0aWMgUGFzc1JlZlB0cjxET01JbXBsZW1lbnRhdGlvbj4gY3JlYXRlKERvY3VtZW50KiBv
d25lckRvY3VtZW50KSB7IHJldHVybiBhZG9wdFJlZihuZXcgRE9NSW1wbGVtZW50YXRpb24ob3du
ZXJEb2N1bWVudCkpOyB9CiAKICAgICAvLyBET00gbWV0aG9kcyAmIGF0dHJpYnV0ZXMgZm9yIERP
TUltcGxlbWVudGF0aW9uCiAgICAgc3RhdGljIGJvb2wgaGFzRmVhdHVyZShjb25zdCBTdHJpbmcm
IGZlYXR1cmUsIGNvbnN0IFN0cmluZyYgdmVyc2lvbik7Ci0gICAgc3RhdGljIFBhc3NSZWZQdHI8
RG9jdW1lbnRUeXBlPiBjcmVhdGVEb2N1bWVudFR5cGUoY29uc3QgU3RyaW5nJiBxdWFsaWZpZWRO
YW1lLCBjb25zdCBTdHJpbmcmIHB1YmxpY0lkLCBjb25zdCBTdHJpbmcgJnN5c3RlbUlkLCBFeGNl
cHRpb25Db2RlJik7Ci0gICAgc3RhdGljIFBhc3NSZWZQdHI8RG9jdW1lbnQ+IGNyZWF0ZURvY3Vt
ZW50KGNvbnN0IFN0cmluZyYgbmFtZXNwYWNlVVJJLCBjb25zdCBTdHJpbmcmIHF1YWxpZmllZE5h
bWUsIERvY3VtZW50VHlwZSosIEV4Y2VwdGlvbkNvZGUmKTsKKyAgICBQYXNzUmVmUHRyPERvY3Vt
ZW50VHlwZT4gY3JlYXRlRG9jdW1lbnRUeXBlKGNvbnN0IFN0cmluZyYgcXVhbGlmaWVkTmFtZSwg
Y29uc3QgU3RyaW5nJiBwdWJsaWNJZCwgY29uc3QgU3RyaW5nJiBzeXN0ZW1JZCwgRXhjZXB0aW9u
Q29kZSYpOworICAgIFBhc3NSZWZQdHI8RG9jdW1lbnQ+IGNyZWF0ZURvY3VtZW50KGNvbnN0IFN0
cmluZyYgbmFtZXNwYWNlVVJJLCBjb25zdCBTdHJpbmcmIHF1YWxpZmllZE5hbWUsIERvY3VtZW50
VHlwZSosIEV4Y2VwdGlvbkNvZGUmKTsKIAogICAgIERPTUltcGxlbWVudGF0aW9uKiBnZXRJbnRl
cmZhY2UoY29uc3QgU3RyaW5nJiBmZWF0dXJlKTsKIApAQCAtNTQsNyArNTQsNyBAQCBwdWJsaWM6
CiAgICAgc3RhdGljIFBhc3NSZWZQdHI8Q1NTU3R5bGVTaGVldD4gY3JlYXRlQ1NTU3R5bGVTaGVl
dChjb25zdCBTdHJpbmcmIHRpdGxlLCBjb25zdCBTdHJpbmcmIG1lZGlhLCBFeGNlcHRpb25Db2Rl
Jik7CiAKICAgICAvLyBGcm9tIHRoZSBIVE1MRE9NSW1wbGVtZW50YXRpb24gaW50ZXJmYWNlCi0g
ICAgc3RhdGljIFBhc3NSZWZQdHI8SFRNTERvY3VtZW50PiBjcmVhdGVIVE1MRG9jdW1lbnQoY29u
c3QgU3RyaW5nJiB0aXRsZSk7CisgICAgUGFzc1JlZlB0cjxIVE1MRG9jdW1lbnQ+IGNyZWF0ZUhU
TUxEb2N1bWVudChjb25zdCBTdHJpbmcmIHRpdGxlKTsKIAogICAgIC8vIE90aGVyIG1ldGhvZHMg
KG5vdCBwYXJ0IG9mIERPTSkKICAgICBzdGF0aWMgUGFzc1JlZlB0cjxEb2N1bWVudD4gY3JlYXRl
RG9jdW1lbnQoY29uc3QgU3RyaW5nJiBNSU1FVHlwZSwgRnJhbWUqLCBjb25zdCBLVVJMJiwgYm9v
bCBpblZpZXdTb3VyY2VNb2RlKTsKQEAgLTYyLDggKzYyLDEzIEBAIHB1YmxpYzoKICAgICBzdGF0
aWMgYm9vbCBpc1hNTE1JTUVUeXBlKGNvbnN0IFN0cmluZyYgTUlNRVR5cGUpOwogICAgIHN0YXRp
YyBib29sIGlzVGV4dE1JTUVUeXBlKGNvbnN0IFN0cmluZyYgTUlNRVR5cGUpOwogCisgICAgRG9j
dW1lbnQqIG93bmVyRG9jdW1lbnQoKSB7IHJldHVybiBtX293bmVyRG9jdW1lbnQ7IH0KKyAgICB2
b2lkIG93bmVyRG9jdW1lbnREZXN0cm95ZWQoKSB7IG1fb3duZXJEb2N1bWVudCA9IDA7IH0KKwog
cHJpdmF0ZToKLSAgICBET01JbXBsZW1lbnRhdGlvbigpIHsgfQorICAgIERPTUltcGxlbWVudGF0
aW9uKERvY3VtZW50KiBvd25lckRvY3VtZW50KTsKKworICAgIERvY3VtZW50KiBtX293bmVyRG9j
dW1lbnQ7CiB9OwogCiB9IC8vbmFtZXNwYWNlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9k
b20vRE9NSW1wbGVtZW50YXRpb24uaWRsIGIvU291cmNlL1dlYkNvcmUvZG9tL0RPTUltcGxlbWVu
dGF0aW9uLmlkbAppbmRleCA4MWRmNmM4ODA4YmZkM2Y5NjUzZmUwYWM1N2MzNjg2NjdmN2EyZGUx
Li44NDIwMjgxYjE0N2I4MGQxZmJjZjk4YjM3MmEyMTY4YjlhYTFiODM0IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9kb20vRE9NSW1wbGVtZW50YXRpb24uaWRsCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2RvbS9ET01JbXBsZW1lbnRhdGlvbi5pZGwKQEAgLTIwLDcgKzIwLDkgQEAKIAogbW9kdWxl
IGNvcmUgewogCi0gICAgaW50ZXJmYWNlIERPTUltcGxlbWVudGF0aW9uIHsKKyAgICBpbnRlcmZh
Y2UgWworICAgICAgICBDdXN0b21NYXJrRnVuY3Rpb24KKyAgICBdIERPTUltcGxlbWVudGF0aW9u
IHsKIAogICAgICAgICAvLyBET00gTGV2ZWwgMQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9kb20vRG9jdW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcAppbmRl
eCA0NGI0ZTQ5YTUwODY1ZjkyMjVmNTA2NmI2YThmODI1MTZkODBmOWZmLi5lOGY4ZGJmYjNmODhi
ZmZjYjViZmQ1YmNkNTEyYWM5MjgyZTQzZWQ5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9k
b20vRG9jdW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKQEAg
LTYwMyw2ICs2MDMsOSBAQCBEb2N1bWVudDo6fkRvY3VtZW50KCkKIAogICAgIGlmIChtX21lZGlh
UXVlcnlNYXRjaGVyKQogICAgICAgICBtX21lZGlhUXVlcnlNYXRjaGVyLT5kb2N1bWVudERlc3Ry
b3llZCgpOworCisgICAgaWYgKG1faW1wbGVtZW50YXRpb24pCisgICAgICAgIG1faW1wbGVtZW50
YXRpb24tPm93bmVyRG9jdW1lbnREZXN0cm95ZWQoKTsKIH0KIAogTWVkaWFRdWVyeU1hdGNoZXIq
IERvY3VtZW50OjptZWRpYVF1ZXJ5TWF0Y2hlcigpCkBAIC02ODQsMTAgKzY4NywxMCBAQCB2b2lk
IERvY3VtZW50OjpzZXREb2NUeXBlKFBhc3NSZWZQdHI8RG9jdW1lbnRUeXBlPiBkb2NUeXBlKQog
ICAgICAgICBtX2RvY1R5cGUtPnNldERvY3VtZW50KHRoaXMpOwogfQogCi1ET01JbXBsZW1lbnRh
dGlvbiogRG9jdW1lbnQ6OmltcGxlbWVudGF0aW9uKCkgY29uc3QKK0RPTUltcGxlbWVudGF0aW9u
KiBEb2N1bWVudDo6aW1wbGVtZW50YXRpb24oKQogewogICAgIGlmICghbV9pbXBsZW1lbnRhdGlv
bikKLSAgICAgICAgbV9pbXBsZW1lbnRhdGlvbiA9IERPTUltcGxlbWVudGF0aW9uOjpjcmVhdGUo
KTsKKyAgICAgICAgbV9pbXBsZW1lbnRhdGlvbiA9IERPTUltcGxlbWVudGF0aW9uOjpjcmVhdGUo
dGhpcyk7CiAgICAgcmV0dXJuIG1faW1wbGVtZW50YXRpb24uZ2V0KCk7CiB9CiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oIGIvU291cmNlL1dlYkNvcmUvZG9tL0Rv
Y3VtZW50LmgKaW5kZXggNzJiN2I0ZDJhNDg4YjIwZTJiYTgyMDA4NmNiZWQ2NTI2NTk3ZjYxMi4u
MTUzZDI1NmY0ZmZkMThkNjQ3MDA3ODkzNWI5NGY2MWIyY2QwZjg3OSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3Vt
ZW50LmgKQEAgLTMwNCw3ICszMDQsNyBAQCBwdWJsaWM6CiAKICAgICBEb2N1bWVudFR5cGUqIGRv
Y3R5cGUoKSBjb25zdCB7IHJldHVybiBtX2RvY1R5cGUuZ2V0KCk7IH0KIAotICAgIERPTUltcGxl
bWVudGF0aW9uKiBpbXBsZW1lbnRhdGlvbigpIGNvbnN0OworICAgIERPTUltcGxlbWVudGF0aW9u
KiBpbXBsZW1lbnRhdGlvbigpOwogICAgIAogICAgIEVsZW1lbnQqIGRvY3VtZW50RWxlbWVudCgp
IGNvbnN0CiAgICAgewo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>82308</attachid>
            <date>2011-02-14 05:35:04 -0800</date>
            <delta_ts>2011-02-14 08:02:18 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-53611-20110214163500.patch</filename>
            <type>text/plain</type>
            <size>20496</size>
            <attacher name="anton muhin">antonm</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogNzg0MjgKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5n
ZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCA1NWI0NGE2ODAwMWE4NmZhMmQ0YzVj
NjJjMmM1ODJmZjRmN2EyOThmLi44ODYyYzg1NjBjZDE5MDRkNmFhYzAxMjFlMzM4ZDg3YzE0ZDQ5
MzU3IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAKKzIwMTEtMDItMDggIEFudG9uIE11aGluICA8YW50
b25tQGNocm9taXVtLm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICBQcm9wYWdhdGUgc2VjdXJpdHkgb3JpZ2luIG9mIHBhcmVudCBkb2N1bWVudCBp
bnRvIEhUTUwgZG9jdW1lbnRzIGNyZWF0ZWQgd2l0aCBET01JbXBsZW1lbnRhdGlvbgorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTM2MTEKKworICAgICAg
ICBBZGRpdGlvbmFsIHRlc3Qgd2hpY2ggY2hlY2tzIGNhc2Ugd2hlbiBwYXJlbnQgZG9jdW1lbnQg
Y2FuIGJlIGNvbGxlY3RlZCB3aGlsZQorICAgICAgICBpdHMgaW1wbGVtZW50YXRpb24gaXMgYWxp
dmUuCisKKyAgICAgICAgKiBmYXN0L2RvbS9nYy05Lmh0bWw6CisKIDIwMTEtMDItMTMgIFNoaW5p
Y2hpcm8gSGFtYWppICA8aGFtYWppQGNocm9taXVtLm9yZz4KIAogICAgICAgICBVcGRhdGUgY2hy
b21pdW0ncyB0ZXN0IGV4cGVjdGF0aW9ucyBmb3IgZmFzdC9pbmxpbmUvaW5saW5lLWJveC1iYWNr
Z3JvdW5kLSoKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL2djLTkuaHRtbCBiL0xh
eW91dFRlc3RzL2Zhc3QvZG9tL2djLTkuaHRtbAppbmRleCAyYmMyNWFkM2VmOGE0ODRmMjM3Mjc1
NGI2OGEyNDcxYTVlNWY0YzQ1Li4zZWRhM2FlMzQxMTkxYjIwYWU3MjI0ZTZiNmJjN2VhMTZiMzA3
NWE3IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9nYy05Lmh0bWwKKysrIGIvTGF5
b3V0VGVzdHMvZmFzdC9kb20vZ2MtOS5odG1sCkBAIC04Myw2ICs4MywxMyBAQCBmdW5jdGlvbiB0
ZXN0RXZlbnRzKCkKICAgICB9CiB9CiAKK2Z1bmN0aW9uIHRlc3RET01JbXBsZW1lbnRhdGlvbigp
Cit7CisgIHZhciBpbXBsID0gZG9jdW1lbnQuaW1wbGVtZW50YXRpb24uY3JlYXRlSFRNTERvY3Vt
ZW50KCcnKS5pbXBsZW1lbnRhdGlvbjsKKyAgZ2MoKTsKKyAgaW1wbC5jcmVhdGVIVE1MRG9jdW1l
bnQoJycpOyAgLy8gTWF5IGNyYXNoIG9yIHRocm93IGFuIGV4Y2VwdGlvbiBpZiB3ZSBjb2xsZWN0
IHBhcmVudCBkb2N1bWVudCBvZiBpbXBsLgorfQorCiBmdW5jdGlvbiB0ZXN0KCkgCiB7CiAgICAg
aWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKQEAgLTk3LDYgKzEwNCw3IEBAIGZ1bmN0
aW9uIHRlc3QoKQogICAgIHRlc3RQcm9wZXJ0aWVzQWdhaW4oKTsKIAogICAgIHRlc3RFdmVudHMo
KTsKKyAgICB0ZXN0RE9NSW1wbGVtZW50YXRpb24oKTsKIH0KIAogLy8gQnkgZGVmYXVsdCwgd2Ug
ZXhwZWN0IHRoYXQgY3VzdG9tIHByb3BlcnRpZXMgYXJlIG5vdCBhbGxvd2VkLgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvQW5kcm9pZC5qc2NiaW5kaW5ncy5tayBiL1NvdXJjZS9XZWJDb3Jl
L0FuZHJvaWQuanNjYmluZGluZ3MubWsKaW5kZXggYzY3MWFkOTI2OWZmZDBhOTZjNTJjNjFkMTJl
NjViYzgwOTE1ODFkOS4uYmZhNjdhOGQxYzIwMWRlZTRlNTU5ODQyYTQ4YjQ3NTMyMjEwNTMzMiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQW5kcm9pZC5qc2NiaW5kaW5ncy5taworKysgYi9T
b3VyY2UvV2ViQ29yZS9BbmRyb2lkLmpzY2JpbmRpbmdzLm1rCkBAIC04Nyw2ICs4Nyw3IEBAIExP
Q0FMX1NSQ19GSUxFUyArPSBcCiAJYmluZGluZ3MvanMvSlNET01CaW5kaW5nLmNwcCBcCiAJYmlu
ZGluZ3MvanMvSlNET01Gb3JtRGF0YUN1c3RvbS5jcHAgXAogCWJpbmRpbmdzL2pzL0pTRE9NR2xv
YmFsT2JqZWN0LmNwcCBcCisJYmluZGluZ3MvanMvSlNET01JbXBsZW1lbnRhdGlvbkN1c3RvbS5j
cHAgXAogCWJpbmRpbmdzL2pzL0pTRE9NU2V0dGFibGVUb2tlbkxpc3QuY3BwIFwKIAliaW5kaW5n
cy9qcy9KU0RPTVRva2VuTGlzdC5jcHAgXAogCWJpbmRpbmdzL2pzL0pTRE9NV2luZG93QmFzZS5j
cHAgXApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQgYi9Tb3VyY2Uv
V2ViQ29yZS9DTWFrZUxpc3RzLnR4dAppbmRleCAyODczZDhhM2I5YjEwZTRmOThiMmZlODY4MDYx
NGI0OTI1YzRjZmVjLi45MzNjNWU2YmEzNzZlZTg4NjhiNzhjMTY2Y2MwMmE0ZjQ0ZDM5YTJlIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9DTWFrZUxpc3RzLnR4dApAQCAtNDg1LDYgKzQ4NSw3IEBAIFNFVChXZWJDb3JlX1NPVVJD
RVMKICAgICBiaW5kaW5ncy9qcy9KU0RPTUJpbmRpbmcuY3BwCiAgICAgYmluZGluZ3MvanMvSlNE
T01Gb3JtRGF0YUN1c3RvbS5jcHAKICAgICBiaW5kaW5ncy9qcy9KU0RPTUdsb2JhbE9iamVjdC5j
cHAKKyAgICBiaW5kaW5ncy9qcy9KU0RPTUltcGxlbWVudGF0aW9uQ3VzdG9tLmNwcAogICAgIGJp
bmRpbmdzL2pzL0pTRE9NTWltZVR5cGVBcnJheUN1c3RvbS5jcHAKICAgICBiaW5kaW5ncy9qcy9K
U0RPTVBsdWdpbkFycmF5Q3VzdG9tLmNwcAogICAgIGJpbmRpbmdzL2pzL0pTRE9NUGx1Z2luQ3Vz
dG9tLmNwcApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291cmNlL1dl
YkNvcmUvQ2hhbmdlTG9nCmluZGV4IDEzMDZkNjQwMjU3M2QzOTI0NTliZmI2Mjk0ZTA5MThhMTdh
NDk0MjMuLmZjMDRiZGE3YmMzMTZkMTU2OWE3ZWY3MzdkYjc1ZWZhZDNlYWNlOGYgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VM
b2cKQEAgLTEsMyArMSwzOSBAQAorMjAxMS0wMi0wOCAgQW50b24gTXVoaW4gIDxhbnRvbm1AY2hy
b21pdW0ub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgIFByb3BhZ2F0ZSBzZWN1cml0eSBvcmlnaW4gb2YgcGFyZW50IGRvY3VtZW50IGludG8gSFRN
TCBkb2N1bWVudHMgY3JlYXRlZCB3aXRoIERPTUltcGxlbWVudGF0aW9uCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD01MzYxMQorCisgICAgICAgIFRoaXMg
cmVzdG9yZXMgaW52YXJpYW50IHRoYXQgSlMgd3JhcHBlcnMgcmVzaWRpbmcgaW4gdGhlIHNhbWUg
SlMgY29udGV4dCBzaG91bGQgY29tZQorICAgICAgICBmcm9tIHRoZSBzYW1lIHNlY3VyaXR5IG9y
aWdpbi4KKworICAgICAgICBBYnNlbmNlIG9mIHJlZ3Jlc3Npb25zIGlzIGNvdmVyZWQgYnkgdGhl
IGN1cnJlbnQgdGVzdHMuICBEaWZmZXJlbnQgc2VjdXJpdHkgb3JpZ2luIG9mCisgICAgICAgIERP
TUltcGxlbWVudGF0aW9uIGlzIGRpZmZpY3VsdCB0byBjaGVjayB3aXRoIGxheW91dCB0ZXN0cyBh
cyBET01JbXBsZW1lbnRhdGlvbgorICAgICAgICByZXNpZGVzIGluIHRoZSBzYW1lIEpTIGNvbnRl
eHQgYXMgcGFyZW50IGRvY3VtZW50IGFuZCB0aGVyZWZvcmUgdGhlcmUgYXJlIG5vIHNlY3VyaXR5
IG9yaWdpbiBjaGVja3MuCisgICAgICAgIFRoaXMgaXMgb2JzZXJ2YWJsZSBob3dldmVyIGluIEMr
Ky4KKworICAgICAgICAqIEFuZHJvaWQuanNjYmluZGluZ3MubWs6CisgICAgICAgICogQ01ha2VM
aXN0cy50eHQ6CisgICAgICAgICogV2ViQ29yZS5neXBpOgorICAgICAgICAqIFdlYkNvcmUucHJv
OgorICAgICAgICAqIFdlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qOgorICAgICAgICAqIFdl
YkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBiaW5kaW5ncy92OC9W
OEdDQ29udHJvbGxlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpOb2RlR3JvdXBlclZpc2l0b3I6
OnZpc2l0RE9NV3JhcHBlcik6CisgICAgICAgICogZG9tL0RPTUltcGxlbWVudGF0aW9uLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OkRPTUltcGxlbWVudGF0aW9uOjpET01JbXBsZW1lbnRhdGlvbik6
CisgICAgICAgIChXZWJDb3JlOjpET01JbXBsZW1lbnRhdGlvbjo6Y3JlYXRlRG9jdW1lbnQpOgor
ICAgICAgICAqIGRvbS9ET01JbXBsZW1lbnRhdGlvbi5oOgorICAgICAgICAoV2ViQ29yZTo6RE9N
SW1wbGVtZW50YXRpb246OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpET01JbXBsZW1lbnRh
dGlvbjo6ZG9jdW1lbnREZXN0cm95ZWQpOgorICAgICAgICAoV2ViQ29yZTo6RE9NSW1wbGVtZW50
YXRpb246OnBhcmVudERvY3VtZW50KToKKyAgICAgICAgKiBkb20vRE9NSW1wbGVtZW50YXRpb24u
aWRsOgorICAgICAgICAqIGRvbS9Eb2N1bWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpEb2N1
bWVudDo6fkRvY3VtZW50KToKKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50OjppbXBsZW1lbnRh
dGlvbik6CisgICAgICAgICogZG9tL0RvY3VtZW50Lmg6CisKIDIwMTEtMDItMTIgIFNhbSBXZWlu
aWcgIDxzYW1Ad2Via2l0Lm9yZz4KIAogICAgICAgICBSZXZpZXdlZCBieSBEYW4gQmVybnN0ZWlu
LgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpIGIvU291cmNlL1dlYkNv
cmUvV2ViQ29yZS5neXBpCmluZGV4IGViODAxNmM3OTA4MzcyZDRmZGVhYzY4ZGU0MjMxZTZmOTk1
NjlkYTkuLjIxYWY0NzgzOWQ1M2UzZDU4NmQ0NTI0ZGY2MDAyNDBkYTFmMTcwODMgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJD
b3JlLmd5cGkKQEAgLTYxNiw2ICs2MTYsNyBAQAogICAgICAgICAgICAgJ2JpbmRpbmdzL2pzL0pT
RE9NQmluZGluZy5oJywKICAgICAgICAgICAgICdiaW5kaW5ncy9qcy9KU0RPTUdsb2JhbE9iamVj
dC5jcHAnLAogICAgICAgICAgICAgJ2JpbmRpbmdzL2pzL0pTRE9NR2xvYmFsT2JqZWN0LmgnLAor
ICAgICAgICAgICAgJ2JpbmRpbmdzL2pzL0pTRE9NSW1wbGVtZW50YXRpb25DdXN0b20uY3BwJywK
ICAgICAgICAgICAgICdiaW5kaW5ncy9qcy9KU0RPTVN0cmluZ01hcEN1c3RvbS5jcHAnLAogICAg
ICAgICAgICAgJ2JpbmRpbmdzL2pzL0pTRE9NU3RyaW5nTWFwQ3VzdG9tLmgnLAogICAgICAgICAg
ICAgJ2JpbmRpbmdzL2pzL0pTRE9NV2luZG93QmFzZS5jcHAnLApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvV2ViQ29yZS5wcm8gYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnBybwppbmRleCA4
Zjc1N2NmOTY3YmRkNmY2NDc5ZWI5OGQ0ZDZjMzAzMzEzZjQ4Y2E4Li42MzNmZTM0NTQ5YWZhMzlm
YzU0ZTgxZGNhNmNmNWJiMGJmYWUxNDc5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJD
b3JlLnBybworKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnBybwpAQCAtMTUyNyw2ICsxNTI3
LDcgQEAgdjggewogICAgICAgICBiaW5kaW5ncy9qcy9KU0N1c3RvbVhQYXRoTlNSZXNvbHZlci5o
IFwKICAgICAgICAgYmluZGluZ3MvanMvSlNET01CaW5kaW5nLmggXAogICAgICAgICBiaW5kaW5n
cy9qcy9KU0RPTUdsb2JhbE9iamVjdC5oIFwKKyAgICAgICAgYmluZGluZ3MvanMvSlNET01JbXBs
ZW1lbnRhdGlvbkN1c3RvbS5oIFwKICAgICAgICAgYmluZGluZ3MvanMvSlNET01TdHJpbmdNYXBD
dXN0b20uaCBcCiAgICAgICAgIGJpbmRpbmdzL2pzL0pTRE9NV2luZG93QmFzZS5oIFwKICAgICAg
ICAgYmluZGluZ3MvanMvSlNET01XaW5kb3dDdXN0b20uaCBcCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dl
YkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qCmluZGV4IDJhOGYzNDBhNjk0OTcwNTcyZmM5YTU1
MDA0OGJmMzgzYWZjOWU4YjQuLjUxZDVjNmJlNGQxMWEyNWJmNDJhNzgzMmFmNWYzODI4ZmEyNTE2
YmIgMTAwNzU1Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNw
cm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qCkBA
IC01ODA2OSw2ICs1ODA2OSw1OCBAQAogCQkJCQk+CiAJCQkJPC9GaWxlPgogCQkJCTxGaWxlCisJ
CQkJCVJlbGF0aXZlUGF0aD0iLi5cYmluZGluZ3NcanNcSlNET01JbXBsZW1lbnRhdGlvbkN1c3Rv
bS5jcHAiCisJCQkJCT4KKwkJCQkJPEZpbGVDb25maWd1cmF0aW9uCisJCQkJCQlOYW1lPSJEZWJ1
Z3xXaW4zMiIKKwkJCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIgorCQkJCQkJPgorCQkJCQkJ
PFRvb2wKKwkJCQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIgorCQkJCQkJLz4KKwkJCQkJPC9G
aWxlQ29uZmlndXJhdGlvbj4KKwkJCQkJPEZpbGVDb25maWd1cmF0aW9uCisJCQkJCQlOYW1lPSJS
ZWxlYXNlfFdpbjMyIgorCQkJCQkJRXhjbHVkZWRGcm9tQnVpbGQ9InRydWUiCisJCQkJCQk+CisJ
CQkJCQk8VG9vbAorCQkJCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiCisJCQkJCQkvPgorCQkJ
CQk8L0ZpbGVDb25maWd1cmF0aW9uPgorCQkJCQk8RmlsZUNvbmZpZ3VyYXRpb24KKwkJCQkJCU5h
bWU9IkRlYnVnX0NhaXJvX0NGTGl0ZXxXaW4zMiIKKwkJCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0
cnVlIgorCQkJCQkJPgorCQkJCQkJPFRvb2wKKwkJCQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29s
IgorCQkJCQkJLz4KKwkJCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4KKwkJCQkJPEZpbGVDb25maWd1
cmF0aW9uCisJCQkJCQlOYW1lPSJSZWxlYXNlX0NhaXJvX0NGTGl0ZXxXaW4zMiIKKwkJCQkJCUV4
Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIgorCQkJCQkJPgorCQkJCQkJPFRvb2wKKwkJCQkJCQlOYW1l
PSJWQ0NMQ29tcGlsZXJUb29sIgorCQkJCQkJLz4KKwkJCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4K
KwkJCQkJPEZpbGVDb25maWd1cmF0aW9uCisJCQkJCQlOYW1lPSJEZWJ1Z19BbGx8V2luMzIiCisJ
CQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSIKKwkJCQkJCT4KKwkJCQkJCTxUb29sCisJCQkJ
CQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCIKKwkJCQkJCS8+CisJCQkJCTwvRmlsZUNvbmZpZ3Vy
YXRpb24+CisJCQkJCTxGaWxlQ29uZmlndXJhdGlvbgorCQkJCQkJTmFtZT0iUmVsZWFzZV9MVENH
fFdpbjMyIgorCQkJCQkJRXhjbHVkZWRGcm9tQnVpbGQ9InRydWUiCisJCQkJCQk+CisJCQkJCQk8
VG9vbAorCQkJCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiCisJCQkJCQkvPgorCQkJCQk8L0Zp
bGVDb25maWd1cmF0aW9uPgorCQkJCTwvRmlsZT4KKwkJCQk8RmlsZQogCQkJCQlSZWxhdGl2ZVBh
dGg9Ii4uXGJpbmRpbmdzXGpzXEpTRE9NTWltZVR5cGVBcnJheUN1c3RvbS5jcHAiCiAJCQkJCT4K
IAkJCQkJPEZpbGVDb25maWd1cmF0aW9uCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJD
b3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhj
b2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggZmMxNzkyNzBhNDk0ZTdkMjNjNTMyNjU0ZmVh
M2FmNDNiNjhlYmUwNi4uMGYxYzdhZTYyYmY2ZjM3YzgwYTFiYWVhYTMwOGUzYWZkY2Q5NWZkOSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhw
cm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
agpAQCAtNjUyLDYgKzY1Miw3IEBACiAJCTFDRkFFMzIzMEE2RDZBM0YwMDMyNTkzRCAvKiBsaWJv
YmpjLmR5bGliIGluIEZyYW1ld29ya3MgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gMUNGQUUzMjIwQTZENkEzRjAwMzI1OTNEIC8qIGxpYm9iamMuZHlsaWIgKi87IH07CiAJCTIw
RDYyOTI2MTI1MzY5MEIwMDA4MTU0MyAvKiBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb24uY3BwIGlu
IFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMjBENjI5MjQxMjUz
NjkwQjAwMDgxNTQzIC8qIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbi5jcHAgKi87IH07CiAJCTIw
RDYyOTI3MTI1MzY5MEIwMDA4MTU0MyAvKiBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb24uaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDIwRDYyOTI1MTI1MzY5
MEIwMDA4MTU0MyAvKiBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb24uaCAqLzsgfTsKKwkJMjI4ODVF
NjQxMzAxQUU0QzAwNTI2RTY4IC8qIEpTRE9NSW1wbGVtZW50YXRpb25DdXN0b20uY3BwIGluIFNv
dXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMjI4ODVFNjMxMzAxQUU0
QzAwNTI2RTY4IC8qIEpTRE9NSW1wbGVtZW50YXRpb25DdXN0b20uY3BwICovOyB9OwogCQkyMjhD
Mjg0NTEwRDgyNTAwMDA5RDBEMEUgLyogU2NyaXB0V3JhcHBhYmxlLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyMjhDMjg0NDEwRDgyNTAwMDA5RDBEMEUg
LyogU2NyaXB0V3JhcHBhYmxlLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0
ZSwgKTsgfTsgfTsKIAkJMjRGNTRFQUMxMDFGRTkxNDAwMEFFNzQxIC8qIEFwcGxpY2F0aW9uQ2Fj
aGVIb3N0LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDI0RjU0RUFBMTAxRkU5MTQwMDBBRTc0MSAvKiBBcHBsaWNhdGlvbkNhY2hlSG9zdC5jcHAgKi87
IH07CiAJCTI0RjU0RUFEMTAxRkU5MTQwMDBBRTc0MSAvKiBBcHBsaWNhdGlvbkNhY2hlSG9zdC5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMjRGNTRFQUIx
MDFGRTkxNDAwMEFFNzQxIC8qIEFwcGxpY2F0aW9uQ2FjaGVIb3N0LmggKi87IHNldHRpbmdzID0g
e0FUVFJJQlVURVMgPSAoKTsgfTsgfTsKQEAgLTcwMDAsNiArNzAwMSw3IEBACiAJCTFDRkFFMzIy
MEE2RDZBM0YwMDMyNTkzRCAvKiBsaWJvYmpjLmR5bGliICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gImNvbXBpbGVkLm1hY2gtby5keWxpYiI7IG5hbWUg
PSBsaWJvYmpjLmR5bGliOyBwYXRoID0gL3Vzci9saWIvbGlib2JqYy5keWxpYjsgc291cmNlVHJl
ZSA9ICI8YWJzb2x1dGU+IjsgfTsKIAkJMjBENjI5MjQxMjUzNjkwQjAwMDgxNTQzIC8qIEluc3Bl
Y3Rvckluc3RydW1lbnRhdGlvbi5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBh
dGggPSBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb24uY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQkyMEQ2MjkyNTEyNTM2OTBCMDAwODE1NDMgLyogSW5zcGVjdG9ySW5zdHJ1bWVudGF0
aW9uLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEluc3BlY3Rvckluc3RydW1l
bnRhdGlvbi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkyMjg4NUU2MzEzMDFBRTRD
MDA1MjZFNjggLyogSlNET01JbXBsZW1lbnRhdGlvbkN1c3RvbS5jcHAgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBKU0RPTUltcGxlbWVudGF0aW9uQ3VzdG9tLmNwcDsgcGF0
aCA9IGJpbmRpbmdzL2pzL0pTRE9NSW1wbGVtZW50YXRpb25DdXN0b20uY3BwOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQkyMjhDMjg0NDEwRDgyNTAwMDA5RDBEMEUgLyogU2NyaXB0V3Jh
cHBhYmxlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNjcmlwdFdyYXBwYWJs
ZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkyNDQyQkJGODExOTRDOUQzMDBENDk0
NjkgLyogSGFzaENoYW5nZUV2ZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IEhhc2hDaGFuZ2VFdmVudC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkyNEY1NEVB
QTEwMUZFOTE0MDAwQUU3NDEgLyogQXBwbGljYXRpb25DYWNoZUhvc3QuY3BwICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gQXBwbGljYXRpb25DYWNoZUhvc3QuY3BwOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTI0MTAsNiArMTI0MTIsNyBAQAogCQkwODY3RDY5
MUZFODQwMjhGQzAyQUFDMDcgLyogV2ViS2l0ICovID0gewogCQkJaXNhID0gUEJYR3JvdXA7CiAJ
CQljaGlsZHJlbiA9ICgKKwkJCQkyMjg4NUU2MzEzMDFBRTRDMDA1MjZFNjggLyogSlNET01JbXBs
ZW1lbnRhdGlvbkN1c3RvbS5jcHAgKi8sCiAJCQkJNjVDOTdBRjIwOEVBOTA4ODAwQUNEMjczIC8q
IGNvbmZpZy5oICovLAogCQkJCUVERUM5ODAyMEFFRDdFMTcwMDU5MTM3RiAvKiBXZWJDb3JlUHJl
Zml4LmggKi8sCiAJCQkJOTMwNzA2MTMwOUUwQ0E4MjAwQjE3RkU0IC8qIERlcml2ZWRTb3VyY2Vz
Lm1ha2UgKi8sCkBAIC0yMjUxOSw3ICsyMjUyMiw2IEBACiAJCQlpc2EgPSBQQlhQcm9qZWN0Owog
CQkJYnVpbGRDb25maWd1cmF0aW9uTGlzdCA9IDE0OUMyODQzMDg5MDJCMTEwMDhBOUVGQyAvKiBC
dWlsZCBjb25maWd1cmF0aW9uIGxpc3QgZm9yIFBCWFByb2plY3QgIldlYkNvcmUiICovOwogCQkJ
Y29tcGF0aWJpbGl0eVZlcnNpb24gPSAiWGNvZGUgMi40IjsKLQkJCWRldmVsb3BtZW50UmVnaW9u
ID0gRW5nbGlzaDsKIAkJCWhhc1NjYW5uZWRGb3JFbmNvZGluZ3MgPSAxOwogCQkJa25vd25SZWdp
b25zID0gKAogCQkJCUVuZ2xpc2gsCkBAIC0yNTE0OCw2ICsyNTE1MCw3IEBACiAJCQkJQTFFMTE1
NDQxMzAxNUMzRDAwNTRBQzhDIC8qIERpc3RhbnRMaWdodFNvdXJjZS5jcHAgaW4gU291cmNlcyAq
LywKIAkJCQlBMUUxMTU0NjEzMDE1QzRFMDA1NEFDOEMgLyogUG9pbnRMaWdodFNvdXJjZS5jcHAg
aW4gU291cmNlcyAqLywKIAkJCQlBMUUxMTU0ODEzMDE1QzVEMDA1NEFDOEMgLyogU3BvdExpZ2h0
U291cmNlLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTIyODg1RTY0MTMwMUFFNEMwMDUyNkU2OCAv
KiBKU0RPTUltcGxlbWVudGF0aW9uQ3VzdG9tLmNwcCBpbiBTb3VyY2VzICovLAogCQkJKTsKIAkJ
CXJ1bk9ubHlGb3JEZXBsb3ltZW50UG9zdHByb2Nlc3NpbmcgPSAwOwogCQl9OwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNCaW5kaW5nc0FsbEluT25lLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTQmluZGluZ3NBbGxJbk9uZS5jcHAKaW5kZXggN2M1
ZWRjNjQxZWIxYzJlOGFlNmM1MTEyODkyOTRkMzY5NjkzODdhNi4uNmY4MjY1ZTIzZjAyMTE3Mzc3
NTczOGFmMThlMmNiZTQ4NGQzMjI1MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3MvanMvSlNCaW5kaW5nc0FsbEluT25lLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9qcy9KU0JpbmRpbmdzQWxsSW5PbmUuY3BwCkBAIC01Niw2ICs1Niw3IEBACiAjaW5jbHVkZSAi
SlNET01CaW5kaW5nLmNwcCIKICNpbmNsdWRlICJKU0RPTUZvcm1EYXRhQ3VzdG9tLmNwcCIKICNp
bmNsdWRlICJKU0RPTUdsb2JhbE9iamVjdC5jcHAiCisjaW5jbHVkZSAiSlNET01JbXBsZW1lbnRh
dGlvbi5jcHAiCiAjaW5jbHVkZSAiSlNET01NaW1lVHlwZUFycmF5Q3VzdG9tLmNwcCIKICNpbmNs
dWRlICJKU0RPTVBsdWdpbkFycmF5Q3VzdG9tLmNwcCIKICNpbmNsdWRlICJKU0RPTVBsdWdpbkN1
c3RvbS5jcHAiCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTUlt
cGxlbWVudGF0aW9uQ3VzdG9tLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9N
SW1wbGVtZW50YXRpb25DdXN0b20uY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmFjODNjNjkwYWIwYTZhNzBhMGJi
NGNkZjIyOGZmNzY0NzVmMTgzYzQKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9qcy9KU0RPTUltcGxlbWVudGF0aW9uQ3VzdG9tLmNwcApAQCAtMCwwICsxLDQyIEBA
CisvKgorICogQ29weXJpZ2h0IChDKSAyMDExIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0IG1vZGlmaWNhdGlvbiwKKyAqIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlIG1ldDoKKyAqCisgKiAxLiBS
ZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHly
aWdodCBub3RpY2UsCisgKiB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyLgorICoKKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBt
dXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSwKKyAqIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlIGRvY3VtZW50
YXRpb24KKyAqICBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3Ry
aWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4g
QU5EIElUUyBDT05UUklCVVRPUlMg4oCcQVMgSVPigJ0gQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJ
RUQgV0FSUkFOVElFUywKKyAqIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1Q
TElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJU
SUNVTEFSIFBVUlBPU0UKKyAqIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBM
RSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJ
UkVDVCwgSU5DSURFTlRBTCwKKyAqIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElB
TCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0Yg
U1VCU1RJVFVURSBHT09EUyBPUgorICogU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQ
Uk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBB
TlkgVEhFT1JZIE9GIExJQUJJTElUWSwKKyAqIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBM
SUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJ
U0lORyBJTiBBTlkgV0FZIE9VVCBPRgorICogVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVO
IElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNp
bmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJKU0RPTUltcGxlbWVudGF0aW9uLmgiCisKKyNp
bmNsdWRlICJET01JbXBsZW1lbnRhdGlvbi5oIgorCit1c2luZyBuYW1lc3BhY2UgSlNDOworCitu
YW1lc3BhY2UgV2ViQ29yZSB7CisKK3ZvaWQgSlNET01JbXBsZW1lbnRhdGlvbjo6bWFya0NoaWxk
cmVuKE1hcmtTdGFjayYgbWFya1N0YWNrKQoreworICAgIEJhc2U6Om1hcmtDaGlsZHJlbihtYXJr
U3RhY2spOworCisgICAgRE9NSW1wbGVtZW50YXRpb24qIGRvbUltcGxlbWVudGF0aW9uID0gaW1w
bCgpOworICAgIERvY3VtZW50KiBvd25lckRvY3VtZW50ID0gZG9tSW1wbGVtZW50YXRpb24tPm93
bmVyRG9jdW1lbnQoKTsKKyAgICBpZiAob3duZXJEb2N1bWVudCkKKyAgICAgICAgbWFya0RPTU5v
ZGVXcmFwcGVyKG1hcmtTdGFjaywgb3duZXJEb2N1bWVudCwgb3duZXJEb2N1bWVudCk7Cit9CisK
K30KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1Y4R0NDb250cm9sbGVy
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1Y4R0NDb250cm9sbGVyLmNwcAppbmRl
eCBmMWNmMjA2NzJmZmNkNzg2YTAxMjg1MmM2NmQyNTQzZDE5MTgwNzVmLi5hMzRkYzI0MjVlYmU3
Zjc5MzViYTA5MThiMGM4ZDJkYzc4MDc5OGMyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy92OC9WOEdDQ29udHJvbGxlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3MvdjgvVjhHQ0NvbnRyb2xsZXIuY3BwCkBAIC0yOTAsNiArMjkwLDcgQEAgcHVibGljOgogICAg
ICAgICBpZiAobm9kZS0+aXNEb2N1bWVudE5vZGUoKSkgewogICAgICAgICAgICAgRG9jdW1lbnQq
IGRvY3VtZW50ID0gcmVpbnRlcnByZXRfY2FzdDxEb2N1bWVudCo+KG5vZGUpOwogICAgICAgICAg
ICAgYWRkRE9NT2JqZWN0VG9Hcm91cChzdG9yZSwgZ3JvdXBJZCwgZG9jdW1lbnQtPnN0eWxlU2hl
ZXRzKCkpOworICAgICAgICAgICAgYWRkRE9NT2JqZWN0VG9Hcm91cChzdG9yZSwgZ3JvdXBJZCwg
ZG9jdW1lbnQtPmltcGxlbWVudGF0aW9uKCkpOwogICAgICAgICB9CiAKICAgICAgICAgV3JhcHBl
clR5cGVJbmZvKiB0eXBlSW5mbyA9IFY4RE9NV3JhcHBlcjo6ZG9tV3JhcHBlclR5cGUod3JhcHBl
cik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRE9NSW1wbGVtZW50YXRpb24uY3Bw
IGIvU291cmNlL1dlYkNvcmUvZG9tL0RPTUltcGxlbWVudGF0aW9uLmNwcAppbmRleCAzMGU4ODlm
OGMxZjJhY2ZmZjA1YTU5NWUxMjUzNjRlNDUyODIxZGRiLi4zYmExMTM3MzM4N2IzZTcxMzY0OGE0
OTU5NmM5YzEwNTA3NmM3YjEyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRE9NSW1w
bGVtZW50YXRpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9ET01JbXBsZW1lbnRhdGlv
bi5jcHAKQEAgLTE3MSw2ICsxNzEsMTIgQEAgc3RhdGljIGJvb2wgaXNTVkcxMUZlYXR1cmUoY29u
c3QgU3RyaW5nICZmZWF0dXJlKQogfQogI2VuZGlmCiAKK0RPTUltcGxlbWVudGF0aW9uOjpET01J
bXBsZW1lbnRhdGlvbihEb2N1bWVudCogb3duZXJEb2N1bWVudCkKKyAgICA6IG1fb3duZXJEb2N1
bWVudChvd25lckRvY3VtZW50KQoreworICAgIEFTU0VSVChtX293bmVyRG9jdW1lbnQpOworfQor
CiBib29sIERPTUltcGxlbWVudGF0aW9uOjpoYXNGZWF0dXJlKGNvbnN0IFN0cmluZyYgZmVhdHVy
ZSwgY29uc3QgU3RyaW5nJiB2ZXJzaW9uKQogewogICAgIFN0cmluZyBsb3dlciA9IGZlYXR1cmUu
bG93ZXIoKTsKQEAgLTI0MCw2ICsyNDYsMTIgQEAgUGFzc1JlZlB0cjxEb2N1bWVudD4gRE9NSW1w
bGVtZW50YXRpb246OmNyZWF0ZURvY3VtZW50KGNvbnN0IFN0cmluZyYgbmFtZXNwYWNlVVIKICAg
ICBlbHNlCiAgICAgICAgIGRvYyA9IERvY3VtZW50OjpjcmVhdGUoMCwgS1VSTCgpKTsKIAorICAg
IGlmICghbV9vd25lckRvY3VtZW50KSB7CisgICAgICAgIGVjID0gSU5WQUxJRF9TVEFURV9FUlI7
CisgICAgICAgIHJldHVybiAwOworICAgIH0KKyAgICBkb2MtPnNldFNlY3VyaXR5T3JpZ2luKG1f
b3duZXJEb2N1bWVudC0+c2VjdXJpdHlPcmlnaW4oKSk7CisKICAgICBSZWZQdHI8Tm9kZT4gZG9j
dW1lbnRFbGVtZW50OwogICAgIGlmICghcXVhbGlmaWVkTmFtZS5pc0VtcHR5KCkpIHsKICAgICAg
ICAgZG9jdW1lbnRFbGVtZW50ID0gZG9jLT5jcmVhdGVFbGVtZW50TlMobmFtZXNwYWNlVVJJLCBx
dWFsaWZpZWROYW1lLCBlYyk7CkBAIC0zMDAsNiArMzEyLDkgQEAgUGFzc1JlZlB0cjxIVE1MRG9j
dW1lbnQ+IERPTUltcGxlbWVudGF0aW9uOjpjcmVhdGVIVE1MRG9jdW1lbnQoY29uc3QgU3RyaW5n
JiB0aXQKICAgICBkLT5vcGVuKCk7CiAgICAgZC0+d3JpdGUoIjwhZG9jdHlwZSBodG1sPjxodG1s
Pjxib2R5PjwvYm9keT48L2h0bWw+Iik7CiAgICAgZC0+c2V0VGl0bGUodGl0bGUpOworICAgIEFT
U0VSVChtX293bmVyRG9jdW1lbnQpOworICAgIGlmIChtX293bmVyRG9jdW1lbnQpCisgICAgICAg
IGQtPnNldFNlY3VyaXR5T3JpZ2luKG1fb3duZXJEb2N1bWVudC0+c2VjdXJpdHlPcmlnaW4oKSk7
CiAgICAgcmV0dXJuIGQucmVsZWFzZSgpOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9kb20vRE9NSW1wbGVtZW50YXRpb24uaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9ET01JbXBsZW1l
bnRhdGlvbi5oCmluZGV4IGEyMGY3ZDIzZTE0YWYzMzJhOTFkMTMxZDBkMDUwNTFlODg5YjYxZWQu
LjRlYWRiYTNmNzRkZGY2ZDBkZDY5N2E2MGJiNzgyZmQ2OTQ1MDlkYWIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2RvbS9ET01JbXBsZW1lbnRhdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2RvbS9ET01JbXBsZW1lbnRhdGlvbi5oCkBAIC00MSwxMiArNDEsMTIgQEAgdHlwZWRlZiBpbnQg
RXhjZXB0aW9uQ29kZTsKIAogY2xhc3MgRE9NSW1wbGVtZW50YXRpb24gOiBwdWJsaWMgUmVmQ291
bnRlZDxET01JbXBsZW1lbnRhdGlvbj4gewogcHVibGljOgotICAgIHN0YXRpYyBQYXNzUmVmUHRy
PERPTUltcGxlbWVudGF0aW9uPiBjcmVhdGUoKSB7IHJldHVybiBhZG9wdFJlZihuZXcgRE9NSW1w
bGVtZW50YXRpb24pOyB9CisgICAgc3RhdGljIFBhc3NSZWZQdHI8RE9NSW1wbGVtZW50YXRpb24+
IGNyZWF0ZShEb2N1bWVudCogb3duZXJEb2N1bWVudCkgeyByZXR1cm4gYWRvcHRSZWYobmV3IERP
TUltcGxlbWVudGF0aW9uKG93bmVyRG9jdW1lbnQpKTsgfQogCiAgICAgLy8gRE9NIG1ldGhvZHMg
JiBhdHRyaWJ1dGVzIGZvciBET01JbXBsZW1lbnRhdGlvbgogICAgIHN0YXRpYyBib29sIGhhc0Zl
YXR1cmUoY29uc3QgU3RyaW5nJiBmZWF0dXJlLCBjb25zdCBTdHJpbmcmIHZlcnNpb24pOwotICAg
IHN0YXRpYyBQYXNzUmVmUHRyPERvY3VtZW50VHlwZT4gY3JlYXRlRG9jdW1lbnRUeXBlKGNvbnN0
IFN0cmluZyYgcXVhbGlmaWVkTmFtZSwgY29uc3QgU3RyaW5nJiBwdWJsaWNJZCwgY29uc3QgU3Ry
aW5nICZzeXN0ZW1JZCwgRXhjZXB0aW9uQ29kZSYpOwotICAgIHN0YXRpYyBQYXNzUmVmUHRyPERv
Y3VtZW50PiBjcmVhdGVEb2N1bWVudChjb25zdCBTdHJpbmcmIG5hbWVzcGFjZVVSSSwgY29uc3Qg
U3RyaW5nJiBxdWFsaWZpZWROYW1lLCBEb2N1bWVudFR5cGUqLCBFeGNlcHRpb25Db2RlJik7Cisg
ICAgUGFzc1JlZlB0cjxEb2N1bWVudFR5cGU+IGNyZWF0ZURvY3VtZW50VHlwZShjb25zdCBTdHJp
bmcmIHF1YWxpZmllZE5hbWUsIGNvbnN0IFN0cmluZyYgcHVibGljSWQsIGNvbnN0IFN0cmluZyYg
c3lzdGVtSWQsIEV4Y2VwdGlvbkNvZGUmKTsKKyAgICBQYXNzUmVmUHRyPERvY3VtZW50PiBjcmVh
dGVEb2N1bWVudChjb25zdCBTdHJpbmcmIG5hbWVzcGFjZVVSSSwgY29uc3QgU3RyaW5nJiBxdWFs
aWZpZWROYW1lLCBEb2N1bWVudFR5cGUqLCBFeGNlcHRpb25Db2RlJik7CiAKICAgICBET01JbXBs
ZW1lbnRhdGlvbiogZ2V0SW50ZXJmYWNlKGNvbnN0IFN0cmluZyYgZmVhdHVyZSk7CiAKQEAgLTU0
LDcgKzU0LDcgQEAgcHVibGljOgogICAgIHN0YXRpYyBQYXNzUmVmUHRyPENTU1N0eWxlU2hlZXQ+
IGNyZWF0ZUNTU1N0eWxlU2hlZXQoY29uc3QgU3RyaW5nJiB0aXRsZSwgY29uc3QgU3RyaW5nJiBt
ZWRpYSwgRXhjZXB0aW9uQ29kZSYpOwogCiAgICAgLy8gRnJvbSB0aGUgSFRNTERPTUltcGxlbWVu
dGF0aW9uIGludGVyZmFjZQotICAgIHN0YXRpYyBQYXNzUmVmUHRyPEhUTUxEb2N1bWVudD4gY3Jl
YXRlSFRNTERvY3VtZW50KGNvbnN0IFN0cmluZyYgdGl0bGUpOworICAgIFBhc3NSZWZQdHI8SFRN
TERvY3VtZW50PiBjcmVhdGVIVE1MRG9jdW1lbnQoY29uc3QgU3RyaW5nJiB0aXRsZSk7CiAKICAg
ICAvLyBPdGhlciBtZXRob2RzIChub3QgcGFydCBvZiBET00pCiAgICAgc3RhdGljIFBhc3NSZWZQ
dHI8RG9jdW1lbnQ+IGNyZWF0ZURvY3VtZW50KGNvbnN0IFN0cmluZyYgTUlNRVR5cGUsIEZyYW1l
KiwgY29uc3QgS1VSTCYsIGJvb2wgaW5WaWV3U291cmNlTW9kZSk7CkBAIC02Miw4ICs2MiwxMyBA
QCBwdWJsaWM6CiAgICAgc3RhdGljIGJvb2wgaXNYTUxNSU1FVHlwZShjb25zdCBTdHJpbmcmIE1J
TUVUeXBlKTsKICAgICBzdGF0aWMgYm9vbCBpc1RleHRNSU1FVHlwZShjb25zdCBTdHJpbmcmIE1J
TUVUeXBlKTsKIAorICAgIERvY3VtZW50KiBvd25lckRvY3VtZW50KCkgeyByZXR1cm4gbV9vd25l
ckRvY3VtZW50OyB9CisgICAgdm9pZCBvd25lckRvY3VtZW50RGVzdHJveWVkKCkgeyBtX293bmVy
RG9jdW1lbnQgPSAwOyB9CisKIHByaXZhdGU6Ci0gICAgRE9NSW1wbGVtZW50YXRpb24oKSB7IH0K
KyAgICBET01JbXBsZW1lbnRhdGlvbihEb2N1bWVudCogb3duZXJEb2N1bWVudCk7CisKKyAgICBE
b2N1bWVudCogbV9vd25lckRvY3VtZW50OwogfTsKIAogfSAvL25hbWVzcGFjZQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvZG9tL0RPTUltcGxlbWVudGF0aW9uLmlkbCBiL1NvdXJjZS9XZWJD
b3JlL2RvbS9ET01JbXBsZW1lbnRhdGlvbi5pZGwKaW5kZXggODFkZjZjODgwOGJmZDNmOTY1M2Zl
MGFjNTdjMzY4NjY3ZjdhMmRlMS4uODQyMDI4MWIxNDdiODBkMWZiY2Y5OGIzNzJhMjE2OGI5YWEx
YjgzNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0RPTUltcGxlbWVudGF0aW9uLmlk
bAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRE9NSW1wbGVtZW50YXRpb24uaWRsCkBAIC0yMCw3
ICsyMCw5IEBACiAKIG1vZHVsZSBjb3JlIHsKIAotICAgIGludGVyZmFjZSBET01JbXBsZW1lbnRh
dGlvbiB7CisgICAgaW50ZXJmYWNlIFsKKyAgICAgICAgQ3VzdG9tTWFya0Z1bmN0aW9uCisgICAg
XSBET01JbXBsZW1lbnRhdGlvbiB7CiAKICAgICAgICAgLy8gRE9NIExldmVsIDEKIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Rv
bS9Eb2N1bWVudC5jcHAKaW5kZXggNDRiNGU0OWE1MDg2NWY5MjI1ZjUwNjZiNmE4ZjgyNTE2ZDgw
ZjlmZi4uZThmOGRiZmIzZjg4YmZmY2I1YmZkNWJjZDUxMmFjOTI4MmU0M2VkOSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9k
b20vRG9jdW1lbnQuY3BwCkBAIC02MDMsNiArNjAzLDkgQEAgRG9jdW1lbnQ6On5Eb2N1bWVudCgp
CiAKICAgICBpZiAobV9tZWRpYVF1ZXJ5TWF0Y2hlcikKICAgICAgICAgbV9tZWRpYVF1ZXJ5TWF0
Y2hlci0+ZG9jdW1lbnREZXN0cm95ZWQoKTsKKworICAgIGlmIChtX2ltcGxlbWVudGF0aW9uKQor
ICAgICAgICBtX2ltcGxlbWVudGF0aW9uLT5vd25lckRvY3VtZW50RGVzdHJveWVkKCk7CiB9CiAK
IE1lZGlhUXVlcnlNYXRjaGVyKiBEb2N1bWVudDo6bWVkaWFRdWVyeU1hdGNoZXIoKQpAQCAtNjg0
LDEwICs2ODcsMTAgQEAgdm9pZCBEb2N1bWVudDo6c2V0RG9jVHlwZShQYXNzUmVmUHRyPERvY3Vt
ZW50VHlwZT4gZG9jVHlwZSkKICAgICAgICAgbV9kb2NUeXBlLT5zZXREb2N1bWVudCh0aGlzKTsK
IH0KIAotRE9NSW1wbGVtZW50YXRpb24qIERvY3VtZW50OjppbXBsZW1lbnRhdGlvbigpIGNvbnN0
CitET01JbXBsZW1lbnRhdGlvbiogRG9jdW1lbnQ6OmltcGxlbWVudGF0aW9uKCkKIHsKICAgICBp
ZiAoIW1faW1wbGVtZW50YXRpb24pCi0gICAgICAgIG1faW1wbGVtZW50YXRpb24gPSBET01JbXBs
ZW1lbnRhdGlvbjo6Y3JlYXRlKCk7CisgICAgICAgIG1faW1wbGVtZW50YXRpb24gPSBET01JbXBs
ZW1lbnRhdGlvbjo6Y3JlYXRlKHRoaXMpOwogICAgIHJldHVybiBtX2ltcGxlbWVudGF0aW9uLmdl
dCgpOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaCBiL1Nv
dXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oCmluZGV4IDcyYjdiNGQyYTQ4OGIyMGUyYmE4MjAw
ODZjYmVkNjUyNjU5N2Y2MTIuLjE1M2QyNTZmNGZmZDE4ZDY0NzAwNzg5MzViOTRmNjFiMmNkMGY4
NzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oCkBAIC0zMDQsNyArMzA0LDcgQEAgcHVibGljOgogCiAg
ICAgRG9jdW1lbnRUeXBlKiBkb2N0eXBlKCkgY29uc3QgeyByZXR1cm4gbV9kb2NUeXBlLmdldCgp
OyB9CiAKLSAgICBET01JbXBsZW1lbnRhdGlvbiogaW1wbGVtZW50YXRpb24oKSBjb25zdDsKKyAg
ICBET01JbXBsZW1lbnRhdGlvbiogaW1wbGVtZW50YXRpb24oKTsKICAgICAKICAgICBFbGVtZW50
KiBkb2N1bWVudEVsZW1lbnQoKSBjb25zdAogICAgIHsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>82315</attachid>
            <date>2011-02-14 08:02:24 -0800</date>
            <delta_ts>2011-02-14 11:01:25 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-53611-20110214190222.patch</filename>
            <type>text/plain</type>
            <size>20462</size>
            <attacher name="anton muhin">antonm</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogNzg0NzcKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5n
ZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCBiMGM3ZGI5NjUzODZhZjg0NzUwYjlh
YWM2YWNiOWRlYTU1Nzk4ZGVmLi4yYTVjYWUzZmYxZDYxYTRiNzI2ZDRhMzI5Mzk5YzZlMjZjZjkx
YTIwIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAKKzIwMTEtMDItMDggIEFudG9uIE11aGluICA8YW50
b25tQGNocm9taXVtLm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICBQcm9wYWdhdGUgc2VjdXJpdHkgb3JpZ2luIG9mIHBhcmVudCBkb2N1bWVudCBp
bnRvIEhUTUwgZG9jdW1lbnRzIGNyZWF0ZWQgd2l0aCBET01JbXBsZW1lbnRhdGlvbgorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTM2MTEKKworICAgICAg
ICBBZGRpdGlvbmFsIHRlc3Qgd2hpY2ggY2hlY2tzIGNhc2Ugd2hlbiBwYXJlbnQgZG9jdW1lbnQg
Y2FuIGJlIGNvbGxlY3RlZCB3aGlsZQorICAgICAgICBpdHMgaW1wbGVtZW50YXRpb24gaXMgYWxp
dmUuCisKKyAgICAgICAgKiBmYXN0L2RvbS9nYy05Lmh0bWw6CisKIDIwMTEtMDItMTQgIFBhdmVs
IEZlbGRtYW4gIDxwZmVsZG1hbkBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkg
WXVyeSBTZW1pa2hhdHNreS4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL2djLTku
aHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL2djLTkuaHRtbAppbmRleCAyYmMyNWFkM2VmOGE0
ODRmMjM3Mjc1NGI2OGEyNDcxYTVlNWY0YzQ1Li4zZWRhM2FlMzQxMTkxYjIwYWU3MjI0ZTZiNmJj
N2VhMTZiMzA3NWE3IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9nYy05Lmh0bWwK
KysrIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vZ2MtOS5odG1sCkBAIC04Myw2ICs4MywxMyBAQCBm
dW5jdGlvbiB0ZXN0RXZlbnRzKCkKICAgICB9CiB9CiAKK2Z1bmN0aW9uIHRlc3RET01JbXBsZW1l
bnRhdGlvbigpCit7CisgIHZhciBpbXBsID0gZG9jdW1lbnQuaW1wbGVtZW50YXRpb24uY3JlYXRl
SFRNTERvY3VtZW50KCcnKS5pbXBsZW1lbnRhdGlvbjsKKyAgZ2MoKTsKKyAgaW1wbC5jcmVhdGVI
VE1MRG9jdW1lbnQoJycpOyAgLy8gTWF5IGNyYXNoIG9yIHRocm93IGFuIGV4Y2VwdGlvbiBpZiB3
ZSBjb2xsZWN0IHBhcmVudCBkb2N1bWVudCBvZiBpbXBsLgorfQorCiBmdW5jdGlvbiB0ZXN0KCkg
CiB7CiAgICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKQEAgLTk3LDYgKzEwNCw3
IEBAIGZ1bmN0aW9uIHRlc3QoKQogICAgIHRlc3RQcm9wZXJ0aWVzQWdhaW4oKTsKIAogICAgIHRl
c3RFdmVudHMoKTsKKyAgICB0ZXN0RE9NSW1wbGVtZW50YXRpb24oKTsKIH0KIAogLy8gQnkgZGVm
YXVsdCwgd2UgZXhwZWN0IHRoYXQgY3VzdG9tIHByb3BlcnRpZXMgYXJlIG5vdCBhbGxvd2VkLgpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQW5kcm9pZC5qc2NiaW5kaW5ncy5tayBiL1NvdXJj
ZS9XZWJDb3JlL0FuZHJvaWQuanNjYmluZGluZ3MubWsKaW5kZXggYzY3MWFkOTI2OWZmZDBhOTZj
NTJjNjFkMTJlNjViYzgwOTE1ODFkOS4uYmZhNjdhOGQxYzIwMWRlZTRlNTU5ODQyYTQ4YjQ3NTMy
MjEwNTMzMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQW5kcm9pZC5qc2NiaW5kaW5ncy5t
aworKysgYi9Tb3VyY2UvV2ViQ29yZS9BbmRyb2lkLmpzY2JpbmRpbmdzLm1rCkBAIC04Nyw2ICs4
Nyw3IEBAIExPQ0FMX1NSQ19GSUxFUyArPSBcCiAJYmluZGluZ3MvanMvSlNET01CaW5kaW5nLmNw
cCBcCiAJYmluZGluZ3MvanMvSlNET01Gb3JtRGF0YUN1c3RvbS5jcHAgXAogCWJpbmRpbmdzL2pz
L0pTRE9NR2xvYmFsT2JqZWN0LmNwcCBcCisJYmluZGluZ3MvanMvSlNET01JbXBsZW1lbnRhdGlv
bkN1c3RvbS5jcHAgXAogCWJpbmRpbmdzL2pzL0pTRE9NU2V0dGFibGVUb2tlbkxpc3QuY3BwIFwK
IAliaW5kaW5ncy9qcy9KU0RPTVRva2VuTGlzdC5jcHAgXAogCWJpbmRpbmdzL2pzL0pTRE9NV2lu
ZG93QmFzZS5jcHAgXApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQg
Yi9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dAppbmRleCAyODczZDhhM2I5YjEwZTRmOThi
MmZlODY4MDYxNGI0OTI1YzRjZmVjLi45MzNjNWU2YmEzNzZlZTg4NjhiNzhjMTY2Y2MwMmE0ZjQ0
ZDM5YTJlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dAorKysgYi9T
b3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dApAQCAtNDg1LDYgKzQ4NSw3IEBAIFNFVChXZWJD
b3JlX1NPVVJDRVMKICAgICBiaW5kaW5ncy9qcy9KU0RPTUJpbmRpbmcuY3BwCiAgICAgYmluZGlu
Z3MvanMvSlNET01Gb3JtRGF0YUN1c3RvbS5jcHAKICAgICBiaW5kaW5ncy9qcy9KU0RPTUdsb2Jh
bE9iamVjdC5jcHAKKyAgICBiaW5kaW5ncy9qcy9KU0RPTUltcGxlbWVudGF0aW9uQ3VzdG9tLmNw
cAogICAgIGJpbmRpbmdzL2pzL0pTRE9NTWltZVR5cGVBcnJheUN1c3RvbS5jcHAKICAgICBiaW5k
aW5ncy9qcy9KU0RPTVBsdWdpbkFycmF5Q3VzdG9tLmNwcAogICAgIGJpbmRpbmdzL2pzL0pTRE9N
UGx1Z2luQ3VzdG9tLmNwcApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIv
U291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IGE0Y2VkNWI1MDczMzU4MWQ4ZTJiMDhjZGFk
ODk2M2M2OGZiMDkwN2MuLjRmODFhZDFhYTIxODY1YzIzMWFiYTU3ZGQ1NjE3MjdkMmFmYzE3OTYg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwzOSBAQAorMjAxMS0wMi0wOCAgQW50b24gTXVoaW4gIDxh
bnRvbm1AY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgIFByb3BhZ2F0ZSBzZWN1cml0eSBvcmlnaW4gb2YgcGFyZW50IGRvY3VtZW50
IGludG8gSFRNTCBkb2N1bWVudHMgY3JlYXRlZCB3aXRoIERPTUltcGxlbWVudGF0aW9uCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD01MzYxMQorCisgICAg
ICAgIFRoaXMgcmVzdG9yZXMgaW52YXJpYW50IHRoYXQgSlMgd3JhcHBlcnMgcmVzaWRpbmcgaW4g
dGhlIHNhbWUgSlMgY29udGV4dCBzaG91bGQgY29tZQorICAgICAgICBmcm9tIHRoZSBzYW1lIHNl
Y3VyaXR5IG9yaWdpbi4KKworICAgICAgICBBYnNlbmNlIG9mIHJlZ3Jlc3Npb25zIGlzIGNvdmVy
ZWQgYnkgdGhlIGN1cnJlbnQgdGVzdHMuICBEaWZmZXJlbnQgc2VjdXJpdHkgb3JpZ2luIG9mCisg
ICAgICAgIERPTUltcGxlbWVudGF0aW9uIGlzIGRpZmZpY3VsdCB0byBjaGVjayB3aXRoIGxheW91
dCB0ZXN0cyBhcyBET01JbXBsZW1lbnRhdGlvbgorICAgICAgICByZXNpZGVzIGluIHRoZSBzYW1l
IEpTIGNvbnRleHQgYXMgcGFyZW50IGRvY3VtZW50IGFuZCB0aGVyZWZvcmUgdGhlcmUgYXJlIG5v
IHNlY3VyaXR5IG9yaWdpbiBjaGVja3MuCisgICAgICAgIFRoaXMgaXMgb2JzZXJ2YWJsZSBob3dl
dmVyIGluIEMrKy4KKworICAgICAgICAqIEFuZHJvaWQuanNjYmluZGluZ3MubWs6CisgICAgICAg
ICogQ01ha2VMaXN0cy50eHQ6CisgICAgICAgICogV2ViQ29yZS5neXBpOgorICAgICAgICAqIFdl
YkNvcmUucHJvOgorICAgICAgICAqIFdlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qOgorICAg
ICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBiaW5k
aW5ncy92OC9WOEdDQ29udHJvbGxlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpOb2RlR3JvdXBl
clZpc2l0b3I6OnZpc2l0RE9NV3JhcHBlcik6CisgICAgICAgICogZG9tL0RPTUltcGxlbWVudGF0
aW9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRPTUltcGxlbWVudGF0aW9uOjpET01JbXBsZW1l
bnRhdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpET01JbXBsZW1lbnRhdGlvbjo6Y3JlYXRlRG9j
dW1lbnQpOgorICAgICAgICAqIGRvbS9ET01JbXBsZW1lbnRhdGlvbi5oOgorICAgICAgICAoV2Vi
Q29yZTo6RE9NSW1wbGVtZW50YXRpb246OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpET01J
bXBsZW1lbnRhdGlvbjo6ZG9jdW1lbnREZXN0cm95ZWQpOgorICAgICAgICAoV2ViQ29yZTo6RE9N
SW1wbGVtZW50YXRpb246OnBhcmVudERvY3VtZW50KToKKyAgICAgICAgKiBkb20vRE9NSW1wbGVt
ZW50YXRpb24uaWRsOgorICAgICAgICAqIGRvbS9Eb2N1bWVudC5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpEb2N1bWVudDo6fkRvY3VtZW50KToKKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50Ojpp
bXBsZW1lbnRhdGlvbik6CisgICAgICAgICogZG9tL0RvY3VtZW50Lmg6CisKIDIwMTEtMDItMTQg
IFJvbGFuZCBTdGVpbmVyICA8cm9sYW5kc3RlaW5lckBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAg
UmV2aWV3ZWQgYnkgS2VudCBUYW11cmEuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJD
b3JlLmd5cGkgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkKaW5kZXggZWI4MDE2Yzc5MDgz
NzJkNGZkZWFjNjhkZTQyMzFlNmY5OTU2OWRhOS4uMjFhZjQ3ODM5ZDUzZTNkNTg2ZDQ1MjRkZjYw
MDI0MGRhMWYxNzA4MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpCisr
KyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQpAQCAtNjE2LDYgKzYxNiw3IEBACiAgICAg
ICAgICAgICAnYmluZGluZ3MvanMvSlNET01CaW5kaW5nLmgnLAogICAgICAgICAgICAgJ2JpbmRp
bmdzL2pzL0pTRE9NR2xvYmFsT2JqZWN0LmNwcCcsCiAgICAgICAgICAgICAnYmluZGluZ3MvanMv
SlNET01HbG9iYWxPYmplY3QuaCcsCisgICAgICAgICAgICAnYmluZGluZ3MvanMvSlNET01JbXBs
ZW1lbnRhdGlvbkN1c3RvbS5jcHAnLAogICAgICAgICAgICAgJ2JpbmRpbmdzL2pzL0pTRE9NU3Ry
aW5nTWFwQ3VzdG9tLmNwcCcsCiAgICAgICAgICAgICAnYmluZGluZ3MvanMvSlNET01TdHJpbmdN
YXBDdXN0b20uaCcsCiAgICAgICAgICAgICAnYmluZGluZ3MvanMvSlNET01XaW5kb3dCYXNlLmNw
cCcsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnBybyBiL1NvdXJjZS9XZWJD
b3JlL1dlYkNvcmUucHJvCmluZGV4IDc0OGMwMzI2M2EwNTM4ZGZjYzdjMGNlODBiMDBkMzU4Nzdh
ZjJkMWEuLjk0ZjZjYTVlMjdiNTUyZThjMjYxZGNjYWI4ZmY5ZDQwMmRhNTViNTMgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUucHJvCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNv
cmUucHJvCkBAIC0xNTI2LDYgKzE1MjYsNyBAQCB2OCB7CiAgICAgICAgIGJpbmRpbmdzL2pzL0pT
Q3VzdG9tWFBhdGhOU1Jlc29sdmVyLmggXAogICAgICAgICBiaW5kaW5ncy9qcy9KU0RPTUJpbmRp
bmcuaCBcCiAgICAgICAgIGJpbmRpbmdzL2pzL0pTRE9NR2xvYmFsT2JqZWN0LmggXAorICAgICAg
ICBiaW5kaW5ncy9qcy9KU0RPTUltcGxlbWVudGF0aW9uQ3VzdG9tLmggXAogICAgICAgICBiaW5k
aW5ncy9qcy9KU0RPTVN0cmluZ01hcEN1c3RvbS5oIFwKICAgICAgICAgYmluZGluZ3MvanMvSlNE
T01XaW5kb3dCYXNlLmggXAogICAgICAgICBiaW5kaW5ncy9qcy9KU0RPTVdpbmRvd0N1c3RvbS5o
IFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNw
cm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2oKaW5kZXgg
MmE4ZjM0MGE2OTQ5NzA1NzJmYzlhNTUwMDQ4YmYzODNhZmM5ZThiNC4uNTFkNWM2YmU0ZDExYTI1
YmY0MmE3ODMyYWY1ZjM4MjhmYTI1MTZiYiAxMDA3NTUKLS0tIGEvU291cmNlL1dlYkNvcmUvV2Vi
Q29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2oKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52
Y3Byb2ovV2ViQ29yZS52Y3Byb2oKQEAgLTU4MDY5LDYgKzU4MDY5LDU4IEBACiAJCQkJCT4KIAkJ
CQk8L0ZpbGU+CiAJCQkJPEZpbGUKKwkJCQkJUmVsYXRpdmVQYXRoPSIuLlxiaW5kaW5nc1xqc1xK
U0RPTUltcGxlbWVudGF0aW9uQ3VzdG9tLmNwcCIKKwkJCQkJPgorCQkJCQk8RmlsZUNvbmZpZ3Vy
YXRpb24KKwkJCQkJCU5hbWU9IkRlYnVnfFdpbjMyIgorCQkJCQkJRXhjbHVkZWRGcm9tQnVpbGQ9
InRydWUiCisJCQkJCQk+CisJCQkJCQk8VG9vbAorCQkJCQkJCU5hbWU9IlZDQ0xDb21waWxlclRv
b2wiCisJCQkJCQkvPgorCQkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPgorCQkJCQk8RmlsZUNvbmZp
Z3VyYXRpb24KKwkJCQkJCU5hbWU9IlJlbGVhc2V8V2luMzIiCisJCQkJCQlFeGNsdWRlZEZyb21C
dWlsZD0idHJ1ZSIKKwkJCQkJCT4KKwkJCQkJCTxUb29sCisJCQkJCQkJTmFtZT0iVkNDTENvbXBp
bGVyVG9vbCIKKwkJCQkJCS8+CisJCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+CisJCQkJCTxGaWxl
Q29uZmlndXJhdGlvbgorCQkJCQkJTmFtZT0iRGVidWdfQ2Fpcm9fQ0ZMaXRlfFdpbjMyIgorCQkJ
CQkJRXhjbHVkZWRGcm9tQnVpbGQ9InRydWUiCisJCQkJCQk+CisJCQkJCQk8VG9vbAorCQkJCQkJ
CU5hbWU9IlZDQ0xDb21waWxlclRvb2wiCisJCQkJCQkvPgorCQkJCQk8L0ZpbGVDb25maWd1cmF0
aW9uPgorCQkJCQk8RmlsZUNvbmZpZ3VyYXRpb24KKwkJCQkJCU5hbWU9IlJlbGVhc2VfQ2Fpcm9f
Q0ZMaXRlfFdpbjMyIgorCQkJCQkJRXhjbHVkZWRGcm9tQnVpbGQ9InRydWUiCisJCQkJCQk+CisJ
CQkJCQk8VG9vbAorCQkJCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiCisJCQkJCQkvPgorCQkJ
CQk8L0ZpbGVDb25maWd1cmF0aW9uPgorCQkJCQk8RmlsZUNvbmZpZ3VyYXRpb24KKwkJCQkJCU5h
bWU9IkRlYnVnX0FsbHxXaW4zMiIKKwkJCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIgorCQkJ
CQkJPgorCQkJCQkJPFRvb2wKKwkJCQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIgorCQkJCQkJ
Lz4KKwkJCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4KKwkJCQkJPEZpbGVDb25maWd1cmF0aW9uCisJ
CQkJCQlOYW1lPSJSZWxlYXNlX0xUQ0d8V2luMzIiCisJCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0i
dHJ1ZSIKKwkJCQkJCT4KKwkJCQkJCTxUb29sCisJCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9v
bCIKKwkJCQkJCS8+CisJCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+CisJCQkJPC9GaWxlPgorCQkJ
CTxGaWxlCiAJCQkJCVJlbGF0aXZlUGF0aD0iLi5cYmluZGluZ3NcanNcSlNET01NaW1lVHlwZUFy
cmF5Q3VzdG9tLmNwcCIKIAkJCQkJPgogCQkJCQk8RmlsZUNvbmZpZ3VyYXRpb24KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1Nv
dXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCBmYzE3
OTI3MGE0OTRlN2QyM2M1MzI2NTRmZWEzYWY0M2I2OGViZTA2Li4wZjFjN2FlNjJiZjZmMzdjODBh
MWJhZWFhMzA4ZTNhZmRjZDk1ZmQ5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3Jl
Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54
Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC02NTIsNiArNjUyLDcgQEAKIAkJMUNGQUUzMjMw
QTZENkEzRjAwMzI1OTNEIC8qIGxpYm9iamMuZHlsaWIgaW4gRnJhbWV3b3JrcyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxQ0ZBRTMyMjBBNkQ2QTNGMDAzMjU5M0QgLyogbGli
b2JqYy5keWxpYiAqLzsgfTsKIAkJMjBENjI5MjYxMjUzNjkwQjAwMDgxNTQzIC8qIEluc3BlY3Rv
ckluc3RydW1lbnRhdGlvbi5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSAyMEQ2MjkyNDEyNTM2OTBCMDAwODE1NDMgLyogSW5zcGVjdG9ySW5zdHJ1bWVu
dGF0aW9uLmNwcCAqLzsgfTsKIAkJMjBENjI5MjcxMjUzNjkwQjAwMDgxNTQzIC8qIEluc3BlY3Rv
ckluc3RydW1lbnRhdGlvbi5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gMjBENjI5MjUxMjUzNjkwQjAwMDgxNTQzIC8qIEluc3BlY3Rvckluc3RydW1lbnRh
dGlvbi5oICovOyB9OworCQkyMjg4NUU2NDEzMDFBRTRDMDA1MjZFNjggLyogSlNET01JbXBsZW1l
bnRhdGlvbkN1c3RvbS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSAyMjg4NUU2MzEzMDFBRTRDMDA1MjZFNjggLyogSlNET01JbXBsZW1lbnRhdGlvbkN1
c3RvbS5jcHAgKi87IH07CiAJCTIyOEMyODQ1MTBEODI1MDAwMDlEMEQwRSAvKiBTY3JpcHRXcmFw
cGFibGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDIy
OEMyODQ0MTBEODI1MDAwMDlEMEQwRSAvKiBTY3JpcHRXcmFwcGFibGUuaCAqLzsgc2V0dGluZ3Mg
PSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQkyNEY1NEVBQzEwMUZFOTE0MDAw
QUU3NDEgLyogQXBwbGljYXRpb25DYWNoZUhvc3QuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMjRGNTRFQUExMDFGRTkxNDAwMEFFNzQxIC8qIEFwcGxp
Y2F0aW9uQ2FjaGVIb3N0LmNwcCAqLzsgfTsKIAkJMjRGNTRFQUQxMDFGRTkxNDAwMEFFNzQxIC8q
IEFwcGxpY2F0aW9uQ2FjaGVIb3N0LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSAyNEY1NEVBQjEwMUZFOTE0MDAwQUU3NDEgLyogQXBwbGljYXRpb25DYWNo
ZUhvc3QuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9ICgpOyB9OyB9OwpAQCAtNzAwMCw2
ICs3MDAxLDcgQEAKIAkJMUNGQUUzMjIwQTZENkEzRjAwMzI1OTNEIC8qIGxpYm9iamMuZHlsaWIg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSAiY29tcGls
ZWQubWFjaC1vLmR5bGliIjsgbmFtZSA9IGxpYm9iamMuZHlsaWI7IHBhdGggPSAvdXNyL2xpYi9s
aWJvYmpjLmR5bGliOyBzb3VyY2VUcmVlID0gIjxhYnNvbHV0ZT4iOyB9OwogCQkyMEQ2MjkyNDEy
NTM2OTBCMDAwODE1NDMgLyogSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uLmNwcCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEluc3BlY3Rvckluc3RydW1lbnRhdGlvbi5jcHA7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTIwRDYyOTI1MTI1MzY5MEIwMDA4MTU0MyAv
KiBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb24uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CisJCTIyODg1RTYzMTMwMUFFNEMwMDUyNkU2OCAvKiBKU0RPTUltcGxlbWVudGF0aW9uQ3Vz
dG9tLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IEpTRE9NSW1wbGVt
ZW50YXRpb25DdXN0b20uY3BwOyBwYXRoID0gYmluZGluZ3MvanMvSlNET01JbXBsZW1lbnRhdGlv
bkN1c3RvbS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTIyOEMyODQ0MTBEODI1
MDAwMDlEMEQwRSAvKiBTY3JpcHRXcmFwcGFibGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gU2NyaXB0V3JhcHBhYmxlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CTI0NDJCQkY4MTE5NEM5RDMwMEQ0OTQ2OSAvKiBIYXNoQ2hhbmdlRXZlbnQuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSGFzaENoYW5nZUV2ZW50Lmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCTI0RjU0RUFBMTAxRkU5MTQwMDBBRTc0MSAvKiBBcHBsaWNhdGlvbkNh
Y2hlSG9zdC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBBcHBsaWNh
dGlvbkNhY2hlSG9zdC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xMjQxMCw2
ICsxMjQxMiw3IEBACiAJCTA4NjdENjkxRkU4NDAyOEZDMDJBQUMwNyAvKiBXZWJLaXQgKi8gPSB7
CiAJCQlpc2EgPSBQQlhHcm91cDsKIAkJCWNoaWxkcmVuID0gKAorCQkJCTIyODg1RTYzMTMwMUFF
NEMwMDUyNkU2OCAvKiBKU0RPTUltcGxlbWVudGF0aW9uQ3VzdG9tLmNwcCAqLywKIAkJCQk2NUM5
N0FGMjA4RUE5MDg4MDBBQ0QyNzMgLyogY29uZmlnLmggKi8sCiAJCQkJRURFQzk4MDIwQUVEN0Ux
NzAwNTkxMzdGIC8qIFdlYkNvcmVQcmVmaXguaCAqLywKIAkJCQk5MzA3MDYxMzA5RTBDQTgyMDBC
MTdGRTQgLyogRGVyaXZlZFNvdXJjZXMubWFrZSAqLywKQEAgLTIyNTE5LDcgKzIyNTIyLDYgQEAK
IAkJCWlzYSA9IFBCWFByb2plY3Q7CiAJCQlidWlsZENvbmZpZ3VyYXRpb25MaXN0ID0gMTQ5QzI4
NDMwODkwMkIxMTAwOEE5RUZDIC8qIEJ1aWxkIGNvbmZpZ3VyYXRpb24gbGlzdCBmb3IgUEJYUHJv
amVjdCAiV2ViQ29yZSIgKi87CiAJCQljb21wYXRpYmlsaXR5VmVyc2lvbiA9ICJYY29kZSAyLjQi
OwotCQkJZGV2ZWxvcG1lbnRSZWdpb24gPSBFbmdsaXNoOwogCQkJaGFzU2Nhbm5lZEZvckVuY29k
aW5ncyA9IDE7CiAJCQlrbm93blJlZ2lvbnMgPSAoCiAJCQkJRW5nbGlzaCwKQEAgLTI1MTQ4LDYg
KzI1MTUwLDcgQEAKIAkJCQlBMUUxMTU0NDEzMDE1QzNEMDA1NEFDOEMgLyogRGlzdGFudExpZ2h0
U291cmNlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUExRTExNTQ2MTMwMTVDNEUwMDU0QUM4QyAv
KiBQb2ludExpZ2h0U291cmNlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUExRTExNTQ4MTMwMTVD
NUQwMDU0QUM4QyAvKiBTcG90TGlnaHRTb3VyY2UuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJMjI4
ODVFNjQxMzAxQUU0QzAwNTI2RTY4IC8qIEpTRE9NSW1wbGVtZW50YXRpb25DdXN0b20uY3BwIGlu
IFNvdXJjZXMgKi8sCiAJCQkpOwogCQkJcnVuT25seUZvckRlcGxveW1lbnRQb3N0cHJvY2Vzc2lu
ZyA9IDA7CiAJCX07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0Jp
bmRpbmdzQWxsSW5PbmUuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNCaW5kaW5n
c0FsbEluT25lLmNwcAppbmRleCA3YzVlZGM2NDFlYjFjMmU4YWU2YzUxMTI4OTI5NGQzNjk2OTM4
N2E2Li42ZjgyNjVlMjNmMDIxMTczNzc1NzM4YWYxOGUyY2JlNDg0ZDMyMjUyIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0JpbmRpbmdzQWxsSW5PbmUuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTQmluZGluZ3NBbGxJbk9uZS5jcHAKQEAgLTU2
LDYgKzU2LDcgQEAKICNpbmNsdWRlICJKU0RPTUJpbmRpbmcuY3BwIgogI2luY2x1ZGUgIkpTRE9N
Rm9ybURhdGFDdXN0b20uY3BwIgogI2luY2x1ZGUgIkpTRE9NR2xvYmFsT2JqZWN0LmNwcCIKKyNp
bmNsdWRlICJKU0RPTUltcGxlbWVudGF0aW9uLmNwcCIKICNpbmNsdWRlICJKU0RPTU1pbWVUeXBl
QXJyYXlDdXN0b20uY3BwIgogI2luY2x1ZGUgIkpTRE9NUGx1Z2luQXJyYXlDdXN0b20uY3BwIgog
I2luY2x1ZGUgIkpTRE9NUGx1Z2luQ3VzdG9tLmNwcCIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL2pzL0pTRE9NSW1wbGVtZW50YXRpb25DdXN0b20uY3BwIGIvU291cmNlL1dl
YkNvcmUvYmluZGluZ3MvanMvSlNET01JbXBsZW1lbnRhdGlvbkN1c3RvbS5jcHAKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uYWM4M2M2OTBhYjBhNmE3MGEwYmI0Y2RmMjI4ZmY3NjQ3NWYxODNjNAotLS0gL2Rldi9udWxs
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NSW1wbGVtZW50YXRpb25DdXN0
b20uY3BwCkBAIC0wLDAgKzEsNDIgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTEgR29vZ2xl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQgbW9kaWZpY2F0aW9u
LAorICogYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cyBhcmUgbWV0OgorICoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0
IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSwKKyAqIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKgorICogMi4gUmVkaXN0cmli
dXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQg
bm90aWNlLAorICogdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lciBpbiB0aGUgZG9jdW1lbnRhdGlvbgorICogIGFuZC9vciBvdGhlciBtYXRlcmlhbHMg
cHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMg
UFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyDigJxBUyBJU+KAnSBB
TkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLAorICogSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZ
IEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRQorICogQVJFIERJU0NMQUlNRUQu
IElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFC
TEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAorICogU1BFQ0lBTCwgRVhF
TVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SCisgKiBTRVJWSUNFUzsg
TE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikg
SE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLAorICogV0hFVEhF
UiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJ
R0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GCisgKiBUSEUgVVNF
IE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIkpTRE9N
SW1wbGVtZW50YXRpb24uaCIKKworI2luY2x1ZGUgIkRPTUltcGxlbWVudGF0aW9uLmgiCisKK3Vz
aW5nIG5hbWVzcGFjZSBKU0M7CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKwordm9pZCBKU0RPTUlt
cGxlbWVudGF0aW9uOjptYXJrQ2hpbGRyZW4oTWFya1N0YWNrJiBtYXJrU3RhY2spCit7CisgICAg
QmFzZTo6bWFya0NoaWxkcmVuKG1hcmtTdGFjayk7CisKKyAgICBET01JbXBsZW1lbnRhdGlvbiog
ZG9tSW1wbGVtZW50YXRpb24gPSBpbXBsKCk7CisgICAgRG9jdW1lbnQqIG93bmVyRG9jdW1lbnQg
PSBkb21JbXBsZW1lbnRhdGlvbi0+b3duZXJEb2N1bWVudCgpOworICAgIGlmIChvd25lckRvY3Vt
ZW50KQorICAgICAgICBtYXJrRE9NTm9kZVdyYXBwZXIobWFya1N0YWNrLCBvd25lckRvY3VtZW50
LCBvd25lckRvY3VtZW50KTsKK30KKworfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3MvdjgvVjhHQ0NvbnRyb2xsZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvdjgv
VjhHQ0NvbnRyb2xsZXIuY3BwCmluZGV4IGYxY2YyMDY3MmZmY2Q3ODZhMDEyODUyYzY2ZDI1NDNk
MTkxODA3NWYuLmEzNGRjMjQyNWViZTdmNzkzNWJhMDkxOGIwYzhkMmRjNzgwNzk4YzIgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1Y4R0NDb250cm9sbGVyLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9WOEdDQ29udHJvbGxlci5jcHAKQEAgLTI5MCw2
ICsyOTAsNyBAQCBwdWJsaWM6CiAgICAgICAgIGlmIChub2RlLT5pc0RvY3VtZW50Tm9kZSgpKSB7
CiAgICAgICAgICAgICBEb2N1bWVudCogZG9jdW1lbnQgPSByZWludGVycHJldF9jYXN0PERvY3Vt
ZW50Kj4obm9kZSk7CiAgICAgICAgICAgICBhZGRET01PYmplY3RUb0dyb3VwKHN0b3JlLCBncm91
cElkLCBkb2N1bWVudC0+c3R5bGVTaGVldHMoKSk7CisgICAgICAgICAgICBhZGRET01PYmplY3RU
b0dyb3VwKHN0b3JlLCBncm91cElkLCBkb2N1bWVudC0+aW1wbGVtZW50YXRpb24oKSk7CiAgICAg
ICAgIH0KIAogICAgICAgICBXcmFwcGVyVHlwZUluZm8qIHR5cGVJbmZvID0gVjhET01XcmFwcGVy
Ojpkb21XcmFwcGVyVHlwZSh3cmFwcGVyKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Rv
bS9ET01JbXBsZW1lbnRhdGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRE9NSW1wbGVtZW50
YXRpb24uY3BwCmluZGV4IDMwZTg4OWY4YzFmMmFjZmZmMDVhNTk1ZTEyNTM2NGU0NTI4MjFkZGIu
LjNiYTExMzczMzg3YjNlNzEzNjQ4YTQ5NTk2YzljMTA1MDc2YzdiMTIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2RvbS9ET01JbXBsZW1lbnRhdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvZG9tL0RPTUltcGxlbWVudGF0aW9uLmNwcApAQCAtMTcxLDYgKzE3MSwxMiBAQCBzdGF0aWMg
Ym9vbCBpc1NWRzExRmVhdHVyZShjb25zdCBTdHJpbmcgJmZlYXR1cmUpCiB9CiAjZW5kaWYKIAor
RE9NSW1wbGVtZW50YXRpb246OkRPTUltcGxlbWVudGF0aW9uKERvY3VtZW50KiBvd25lckRvY3Vt
ZW50KQorICAgIDogbV9vd25lckRvY3VtZW50KG93bmVyRG9jdW1lbnQpCit7CisgICAgQVNTRVJU
KG1fb3duZXJEb2N1bWVudCk7Cit9CisKIGJvb2wgRE9NSW1wbGVtZW50YXRpb246Omhhc0ZlYXR1
cmUoY29uc3QgU3RyaW5nJiBmZWF0dXJlLCBjb25zdCBTdHJpbmcmIHZlcnNpb24pCiB7CiAgICAg
U3RyaW5nIGxvd2VyID0gZmVhdHVyZS5sb3dlcigpOwpAQCAtMjQwLDYgKzI0NiwxMiBAQCBQYXNz
UmVmUHRyPERvY3VtZW50PiBET01JbXBsZW1lbnRhdGlvbjo6Y3JlYXRlRG9jdW1lbnQoY29uc3Qg
U3RyaW5nJiBuYW1lc3BhY2VVUgogICAgIGVsc2UKICAgICAgICAgZG9jID0gRG9jdW1lbnQ6OmNy
ZWF0ZSgwLCBLVVJMKCkpOwogCisgICAgaWYgKCFtX293bmVyRG9jdW1lbnQpIHsKKyAgICAgICAg
ZWMgPSBJTlZBTElEX1NUQVRFX0VSUjsKKyAgICAgICAgcmV0dXJuIDA7CisgICAgfQorICAgIGRv
Yy0+c2V0U2VjdXJpdHlPcmlnaW4obV9vd25lckRvY3VtZW50LT5zZWN1cml0eU9yaWdpbigpKTsK
KwogICAgIFJlZlB0cjxOb2RlPiBkb2N1bWVudEVsZW1lbnQ7CiAgICAgaWYgKCFxdWFsaWZpZWRO
YW1lLmlzRW1wdHkoKSkgewogICAgICAgICBkb2N1bWVudEVsZW1lbnQgPSBkb2MtPmNyZWF0ZUVs
ZW1lbnROUyhuYW1lc3BhY2VVUkksIHF1YWxpZmllZE5hbWUsIGVjKTsKQEAgLTMwMCw2ICszMTIs
OSBAQCBQYXNzUmVmUHRyPEhUTUxEb2N1bWVudD4gRE9NSW1wbGVtZW50YXRpb246OmNyZWF0ZUhU
TUxEb2N1bWVudChjb25zdCBTdHJpbmcmIHRpdAogICAgIGQtPm9wZW4oKTsKICAgICBkLT53cml0
ZSgiPCFkb2N0eXBlIGh0bWw+PGh0bWw+PGJvZHk+PC9ib2R5PjwvaHRtbD4iKTsKICAgICBkLT5z
ZXRUaXRsZSh0aXRsZSk7CisgICAgQVNTRVJUKG1fb3duZXJEb2N1bWVudCk7CisgICAgaWYgKG1f
b3duZXJEb2N1bWVudCkKKyAgICAgICAgZC0+c2V0U2VjdXJpdHlPcmlnaW4obV9vd25lckRvY3Vt
ZW50LT5zZWN1cml0eU9yaWdpbigpKTsKICAgICByZXR1cm4gZC5yZWxlYXNlKCk7CiB9CiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9ET01JbXBsZW1lbnRhdGlvbi5oIGIvU291cmNl
L1dlYkNvcmUvZG9tL0RPTUltcGxlbWVudGF0aW9uLmgKaW5kZXggYTIwZjdkMjNlMTRhZjMzMmE5
MWQxMzFkMGQwNTA1MWU4ODliNjFlZC4uNGVhZGJhM2Y3NGRkZjZkMGRkNjk3YTYwYmI3ODJmZDY5
NDUwOWRhYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0RPTUltcGxlbWVudGF0aW9u
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0RPTUltcGxlbWVudGF0aW9uLmgKQEAgLTQxLDEy
ICs0MSwxMiBAQCB0eXBlZGVmIGludCBFeGNlcHRpb25Db2RlOwogCiBjbGFzcyBET01JbXBsZW1l
bnRhdGlvbiA6IHB1YmxpYyBSZWZDb3VudGVkPERPTUltcGxlbWVudGF0aW9uPiB7CiBwdWJsaWM6
Ci0gICAgc3RhdGljIFBhc3NSZWZQdHI8RE9NSW1wbGVtZW50YXRpb24+IGNyZWF0ZSgpIHsgcmV0
dXJuIGFkb3B0UmVmKG5ldyBET01JbXBsZW1lbnRhdGlvbik7IH0KKyAgICBzdGF0aWMgUGFzc1Jl
ZlB0cjxET01JbXBsZW1lbnRhdGlvbj4gY3JlYXRlKERvY3VtZW50KiBvd25lckRvY3VtZW50KSB7
IHJldHVybiBhZG9wdFJlZihuZXcgRE9NSW1wbGVtZW50YXRpb24ob3duZXJEb2N1bWVudCkpOyB9
CiAKICAgICAvLyBET00gbWV0aG9kcyAmIGF0dHJpYnV0ZXMgZm9yIERPTUltcGxlbWVudGF0aW9u
CiAgICAgc3RhdGljIGJvb2wgaGFzRmVhdHVyZShjb25zdCBTdHJpbmcmIGZlYXR1cmUsIGNvbnN0
IFN0cmluZyYgdmVyc2lvbik7Ci0gICAgc3RhdGljIFBhc3NSZWZQdHI8RG9jdW1lbnRUeXBlPiBj
cmVhdGVEb2N1bWVudFR5cGUoY29uc3QgU3RyaW5nJiBxdWFsaWZpZWROYW1lLCBjb25zdCBTdHJp
bmcmIHB1YmxpY0lkLCBjb25zdCBTdHJpbmcgJnN5c3RlbUlkLCBFeGNlcHRpb25Db2RlJik7Ci0g
ICAgc3RhdGljIFBhc3NSZWZQdHI8RG9jdW1lbnQ+IGNyZWF0ZURvY3VtZW50KGNvbnN0IFN0cmlu
ZyYgbmFtZXNwYWNlVVJJLCBjb25zdCBTdHJpbmcmIHF1YWxpZmllZE5hbWUsIERvY3VtZW50VHlw
ZSosIEV4Y2VwdGlvbkNvZGUmKTsKKyAgICBQYXNzUmVmUHRyPERvY3VtZW50VHlwZT4gY3JlYXRl
RG9jdW1lbnRUeXBlKGNvbnN0IFN0cmluZyYgcXVhbGlmaWVkTmFtZSwgY29uc3QgU3RyaW5nJiBw
dWJsaWNJZCwgY29uc3QgU3RyaW5nJiBzeXN0ZW1JZCwgRXhjZXB0aW9uQ29kZSYpOworICAgIFBh
c3NSZWZQdHI8RG9jdW1lbnQ+IGNyZWF0ZURvY3VtZW50KGNvbnN0IFN0cmluZyYgbmFtZXNwYWNl
VVJJLCBjb25zdCBTdHJpbmcmIHF1YWxpZmllZE5hbWUsIERvY3VtZW50VHlwZSosIEV4Y2VwdGlv
bkNvZGUmKTsKIAogICAgIERPTUltcGxlbWVudGF0aW9uKiBnZXRJbnRlcmZhY2UoY29uc3QgU3Ry
aW5nJiBmZWF0dXJlKTsKIApAQCAtNTQsNyArNTQsNyBAQCBwdWJsaWM6CiAgICAgc3RhdGljIFBh
c3NSZWZQdHI8Q1NTU3R5bGVTaGVldD4gY3JlYXRlQ1NTU3R5bGVTaGVldChjb25zdCBTdHJpbmcm
IHRpdGxlLCBjb25zdCBTdHJpbmcmIG1lZGlhLCBFeGNlcHRpb25Db2RlJik7CiAKICAgICAvLyBG
cm9tIHRoZSBIVE1MRE9NSW1wbGVtZW50YXRpb24gaW50ZXJmYWNlCi0gICAgc3RhdGljIFBhc3NS
ZWZQdHI8SFRNTERvY3VtZW50PiBjcmVhdGVIVE1MRG9jdW1lbnQoY29uc3QgU3RyaW5nJiB0aXRs
ZSk7CisgICAgUGFzc1JlZlB0cjxIVE1MRG9jdW1lbnQ+IGNyZWF0ZUhUTUxEb2N1bWVudChjb25z
dCBTdHJpbmcmIHRpdGxlKTsKIAogICAgIC8vIE90aGVyIG1ldGhvZHMgKG5vdCBwYXJ0IG9mIERP
TSkKICAgICBzdGF0aWMgUGFzc1JlZlB0cjxEb2N1bWVudD4gY3JlYXRlRG9jdW1lbnQoY29uc3Qg
U3RyaW5nJiBNSU1FVHlwZSwgRnJhbWUqLCBjb25zdCBLVVJMJiwgYm9vbCBpblZpZXdTb3VyY2VN
b2RlKTsKQEAgLTYyLDggKzYyLDEzIEBAIHB1YmxpYzoKICAgICBzdGF0aWMgYm9vbCBpc1hNTE1J
TUVUeXBlKGNvbnN0IFN0cmluZyYgTUlNRVR5cGUpOwogICAgIHN0YXRpYyBib29sIGlzVGV4dE1J
TUVUeXBlKGNvbnN0IFN0cmluZyYgTUlNRVR5cGUpOwogCisgICAgRG9jdW1lbnQqIG93bmVyRG9j
dW1lbnQoKSB7IHJldHVybiBtX293bmVyRG9jdW1lbnQ7IH0KKyAgICB2b2lkIG93bmVyRG9jdW1l
bnREZXN0cm95ZWQoKSB7IG1fb3duZXJEb2N1bWVudCA9IDA7IH0KKwogcHJpdmF0ZToKLSAgICBE
T01JbXBsZW1lbnRhdGlvbigpIHsgfQorICAgIERPTUltcGxlbWVudGF0aW9uKERvY3VtZW50KiBv
d25lckRvY3VtZW50KTsKKworICAgIERvY3VtZW50KiBtX293bmVyRG9jdW1lbnQ7CiB9OwogCiB9
IC8vbmFtZXNwYWNlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRE9NSW1wbGVtZW50
YXRpb24uaWRsIGIvU291cmNlL1dlYkNvcmUvZG9tL0RPTUltcGxlbWVudGF0aW9uLmlkbAppbmRl
eCA4MWRmNmM4ODA4YmZkM2Y5NjUzZmUwYWM1N2MzNjg2NjdmN2EyZGUxLi44NDIwMjgxYjE0N2I4
MGQxZmJjZjk4YjM3MmEyMTY4YjlhYTFiODM0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9k
b20vRE9NSW1wbGVtZW50YXRpb24uaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9ET01JbXBs
ZW1lbnRhdGlvbi5pZGwKQEAgLTIwLDcgKzIwLDkgQEAKIAogbW9kdWxlIGNvcmUgewogCi0gICAg
aW50ZXJmYWNlIERPTUltcGxlbWVudGF0aW9uIHsKKyAgICBpbnRlcmZhY2UgWworICAgICAgICBD
dXN0b21NYXJrRnVuY3Rpb24KKyAgICBdIERPTUltcGxlbWVudGF0aW9uIHsKIAogICAgICAgICAv
LyBET00gTGV2ZWwgMQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQu
Y3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcAppbmRleCBiMzZmZmYwNjQ5MjAw
ZjAyMjdiYjViY2U3MjhlYmZjYTU5YzdlNmU1Li4wZWExMjJiNGFiM2IwODRmMGIwMjM3NTQwMTll
Y2I3ZDg5OGFjOTAxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKQEAgLTYwNCw2ICs2MDQsOSBA
QCBEb2N1bWVudDo6fkRvY3VtZW50KCkKIAogICAgIGlmIChtX21lZGlhUXVlcnlNYXRjaGVyKQog
ICAgICAgICBtX21lZGlhUXVlcnlNYXRjaGVyLT5kb2N1bWVudERlc3Ryb3llZCgpOworCisgICAg
aWYgKG1faW1wbGVtZW50YXRpb24pCisgICAgICAgIG1faW1wbGVtZW50YXRpb24tPm93bmVyRG9j
dW1lbnREZXN0cm95ZWQoKTsKIH0KIAogTWVkaWFRdWVyeU1hdGNoZXIqIERvY3VtZW50OjptZWRp
YVF1ZXJ5TWF0Y2hlcigpCkBAIC02ODUsMTAgKzY4OCwxMCBAQCB2b2lkIERvY3VtZW50OjpzZXRE
b2NUeXBlKFBhc3NSZWZQdHI8RG9jdW1lbnRUeXBlPiBkb2NUeXBlKQogICAgICAgICBtX2RvY1R5
cGUtPnNldERvY3VtZW50KHRoaXMpOwogfQogCi1ET01JbXBsZW1lbnRhdGlvbiogRG9jdW1lbnQ6
OmltcGxlbWVudGF0aW9uKCkgY29uc3QKK0RPTUltcGxlbWVudGF0aW9uKiBEb2N1bWVudDo6aW1w
bGVtZW50YXRpb24oKQogewogICAgIGlmICghbV9pbXBsZW1lbnRhdGlvbikKLSAgICAgICAgbV9p
bXBsZW1lbnRhdGlvbiA9IERPTUltcGxlbWVudGF0aW9uOjpjcmVhdGUoKTsKKyAgICAgICAgbV9p
bXBsZW1lbnRhdGlvbiA9IERPTUltcGxlbWVudGF0aW9uOjpjcmVhdGUodGhpcyk7CiAgICAgcmV0
dXJuIG1faW1wbGVtZW50YXRpb24uZ2V0KCk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2RvbS9Eb2N1bWVudC5oIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmgKaW5kZXgg
Mzk4NWI1MzI4N2IxZGI0NzdiZTJiMGY0MmJiNjUyNmE1ODVmMWMxNC4uZTA0OTAyMjhlNmI4MDVj
YmI1NzIwYTZmYTg1N2JhZjUzZmNmZTBiNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9t
L0RvY3VtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmgKQEAgLTMwNCw3
ICszMDQsNyBAQCBwdWJsaWM6CiAKICAgICBEb2N1bWVudFR5cGUqIGRvY3R5cGUoKSBjb25zdCB7
IHJldHVybiBtX2RvY1R5cGUuZ2V0KCk7IH0KIAotICAgIERPTUltcGxlbWVudGF0aW9uKiBpbXBs
ZW1lbnRhdGlvbigpIGNvbnN0OworICAgIERPTUltcGxlbWVudGF0aW9uKiBpbXBsZW1lbnRhdGlv
bigpOwogICAgIAogICAgIEVsZW1lbnQqIGRvY3VtZW50RWxlbWVudCgpIGNvbnN0CiAgICAgewo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>82341</attachid>
            <date>2011-02-14 11:01:31 -0800</date>
            <delta_ts>2011-02-15 07:38:46 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-53611-20110214220129.patch</filename>
            <type>text/plain</type>
            <size>21250</size>
            <attacher name="anton muhin">antonm</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogNzg0NzcKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5n
ZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCBiMGM3ZGI5NjUzODZhZjg0NzUwYjlh
YWM2YWNiOWRlYTU1Nzk4ZGVmLi4yYTVjYWUzZmYxZDYxYTRiNzI2ZDRhMzI5Mzk5YzZlMjZjZjkx
YTIwIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAKKzIwMTEtMDItMDggIEFudG9uIE11aGluICA8YW50
b25tQGNocm9taXVtLm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICBQcm9wYWdhdGUgc2VjdXJpdHkgb3JpZ2luIG9mIHBhcmVudCBkb2N1bWVudCBp
bnRvIEhUTUwgZG9jdW1lbnRzIGNyZWF0ZWQgd2l0aCBET01JbXBsZW1lbnRhdGlvbgorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTM2MTEKKworICAgICAg
ICBBZGRpdGlvbmFsIHRlc3Qgd2hpY2ggY2hlY2tzIGNhc2Ugd2hlbiBwYXJlbnQgZG9jdW1lbnQg
Y2FuIGJlIGNvbGxlY3RlZCB3aGlsZQorICAgICAgICBpdHMgaW1wbGVtZW50YXRpb24gaXMgYWxp
dmUuCisKKyAgICAgICAgKiBmYXN0L2RvbS9nYy05Lmh0bWw6CisKIDIwMTEtMDItMTQgIFBhdmVs
IEZlbGRtYW4gIDxwZmVsZG1hbkBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkg
WXVyeSBTZW1pa2hhdHNreS4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL2djLTku
aHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL2djLTkuaHRtbAppbmRleCAyYmMyNWFkM2VmOGE0
ODRmMjM3Mjc1NGI2OGEyNDcxYTVlNWY0YzQ1Li4zZWRhM2FlMzQxMTkxYjIwYWU3MjI0ZTZiNmJj
N2VhMTZiMzA3NWE3IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9nYy05Lmh0bWwK
KysrIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vZ2MtOS5odG1sCkBAIC04Myw2ICs4MywxMyBAQCBm
dW5jdGlvbiB0ZXN0RXZlbnRzKCkKICAgICB9CiB9CiAKK2Z1bmN0aW9uIHRlc3RET01JbXBsZW1l
bnRhdGlvbigpCit7CisgIHZhciBpbXBsID0gZG9jdW1lbnQuaW1wbGVtZW50YXRpb24uY3JlYXRl
SFRNTERvY3VtZW50KCcnKS5pbXBsZW1lbnRhdGlvbjsKKyAgZ2MoKTsKKyAgaW1wbC5jcmVhdGVI
VE1MRG9jdW1lbnQoJycpOyAgLy8gTWF5IGNyYXNoIG9yIHRocm93IGFuIGV4Y2VwdGlvbiBpZiB3
ZSBjb2xsZWN0IHBhcmVudCBkb2N1bWVudCBvZiBpbXBsLgorfQorCiBmdW5jdGlvbiB0ZXN0KCkg
CiB7CiAgICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKQEAgLTk3LDYgKzEwNCw3
IEBAIGZ1bmN0aW9uIHRlc3QoKQogICAgIHRlc3RQcm9wZXJ0aWVzQWdhaW4oKTsKIAogICAgIHRl
c3RFdmVudHMoKTsKKyAgICB0ZXN0RE9NSW1wbGVtZW50YXRpb24oKTsKIH0KIAogLy8gQnkgZGVm
YXVsdCwgd2UgZXhwZWN0IHRoYXQgY3VzdG9tIHByb3BlcnRpZXMgYXJlIG5vdCBhbGxvd2VkLgpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQW5kcm9pZC5qc2NiaW5kaW5ncy5tayBiL1NvdXJj
ZS9XZWJDb3JlL0FuZHJvaWQuanNjYmluZGluZ3MubWsKaW5kZXggYzY3MWFkOTI2OWZmZDBhOTZj
NTJjNjFkMTJlNjViYzgwOTE1ODFkOS4uYmZhNjdhOGQxYzIwMWRlZTRlNTU5ODQyYTQ4YjQ3NTMy
MjEwNTMzMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQW5kcm9pZC5qc2NiaW5kaW5ncy5t
aworKysgYi9Tb3VyY2UvV2ViQ29yZS9BbmRyb2lkLmpzY2JpbmRpbmdzLm1rCkBAIC04Nyw2ICs4
Nyw3IEBAIExPQ0FMX1NSQ19GSUxFUyArPSBcCiAJYmluZGluZ3MvanMvSlNET01CaW5kaW5nLmNw
cCBcCiAJYmluZGluZ3MvanMvSlNET01Gb3JtRGF0YUN1c3RvbS5jcHAgXAogCWJpbmRpbmdzL2pz
L0pTRE9NR2xvYmFsT2JqZWN0LmNwcCBcCisJYmluZGluZ3MvanMvSlNET01JbXBsZW1lbnRhdGlv
bkN1c3RvbS5jcHAgXAogCWJpbmRpbmdzL2pzL0pTRE9NU2V0dGFibGVUb2tlbkxpc3QuY3BwIFwK
IAliaW5kaW5ncy9qcy9KU0RPTVRva2VuTGlzdC5jcHAgXAogCWJpbmRpbmdzL2pzL0pTRE9NV2lu
ZG93QmFzZS5jcHAgXApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQg
Yi9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dAppbmRleCAyODczZDhhM2I5YjEwZTRmOThi
MmZlODY4MDYxNGI0OTI1YzRjZmVjLi45MzNjNWU2YmEzNzZlZTg4NjhiNzhjMTY2Y2MwMmE0ZjQ0
ZDM5YTJlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dAorKysgYi9T
b3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dApAQCAtNDg1LDYgKzQ4NSw3IEBAIFNFVChXZWJD
b3JlX1NPVVJDRVMKICAgICBiaW5kaW5ncy9qcy9KU0RPTUJpbmRpbmcuY3BwCiAgICAgYmluZGlu
Z3MvanMvSlNET01Gb3JtRGF0YUN1c3RvbS5jcHAKICAgICBiaW5kaW5ncy9qcy9KU0RPTUdsb2Jh
bE9iamVjdC5jcHAKKyAgICBiaW5kaW5ncy9qcy9KU0RPTUltcGxlbWVudGF0aW9uQ3VzdG9tLmNw
cAogICAgIGJpbmRpbmdzL2pzL0pTRE9NTWltZVR5cGVBcnJheUN1c3RvbS5jcHAKICAgICBiaW5k
aW5ncy9qcy9KU0RPTVBsdWdpbkFycmF5Q3VzdG9tLmNwcAogICAgIGJpbmRpbmdzL2pzL0pTRE9N
UGx1Z2luQ3VzdG9tLmNwcApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIv
U291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IGE0Y2VkNWI1MDczMzU4MWQ4ZTJiMDhjZGFk
ODk2M2M2OGZiMDkwN2MuLjRmODFhZDFhYTIxODY1YzIzMWFiYTU3ZGQ1NjE3MjdkMmFmYzE3OTYg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwzOSBAQAorMjAxMS0wMi0wOCAgQW50b24gTXVoaW4gIDxh
bnRvbm1AY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgIFByb3BhZ2F0ZSBzZWN1cml0eSBvcmlnaW4gb2YgcGFyZW50IGRvY3VtZW50
IGludG8gSFRNTCBkb2N1bWVudHMgY3JlYXRlZCB3aXRoIERPTUltcGxlbWVudGF0aW9uCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD01MzYxMQorCisgICAg
ICAgIFRoaXMgcmVzdG9yZXMgaW52YXJpYW50IHRoYXQgSlMgd3JhcHBlcnMgcmVzaWRpbmcgaW4g
dGhlIHNhbWUgSlMgY29udGV4dCBzaG91bGQgY29tZQorICAgICAgICBmcm9tIHRoZSBzYW1lIHNl
Y3VyaXR5IG9yaWdpbi4KKworICAgICAgICBBYnNlbmNlIG9mIHJlZ3Jlc3Npb25zIGlzIGNvdmVy
ZWQgYnkgdGhlIGN1cnJlbnQgdGVzdHMuICBEaWZmZXJlbnQgc2VjdXJpdHkgb3JpZ2luIG9mCisg
ICAgICAgIERPTUltcGxlbWVudGF0aW9uIGlzIGRpZmZpY3VsdCB0byBjaGVjayB3aXRoIGxheW91
dCB0ZXN0cyBhcyBET01JbXBsZW1lbnRhdGlvbgorICAgICAgICByZXNpZGVzIGluIHRoZSBzYW1l
IEpTIGNvbnRleHQgYXMgcGFyZW50IGRvY3VtZW50IGFuZCB0aGVyZWZvcmUgdGhlcmUgYXJlIG5v
IHNlY3VyaXR5IG9yaWdpbiBjaGVja3MuCisgICAgICAgIFRoaXMgaXMgb2JzZXJ2YWJsZSBob3dl
dmVyIGluIEMrKy4KKworICAgICAgICAqIEFuZHJvaWQuanNjYmluZGluZ3MubWs6CisgICAgICAg
ICogQ01ha2VMaXN0cy50eHQ6CisgICAgICAgICogV2ViQ29yZS5neXBpOgorICAgICAgICAqIFdl
YkNvcmUucHJvOgorICAgICAgICAqIFdlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qOgorICAg
ICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBiaW5k
aW5ncy92OC9WOEdDQ29udHJvbGxlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpOb2RlR3JvdXBl
clZpc2l0b3I6OnZpc2l0RE9NV3JhcHBlcik6CisgICAgICAgICogZG9tL0RPTUltcGxlbWVudGF0
aW9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRPTUltcGxlbWVudGF0aW9uOjpET01JbXBsZW1l
bnRhdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpET01JbXBsZW1lbnRhdGlvbjo6Y3JlYXRlRG9j
dW1lbnQpOgorICAgICAgICAqIGRvbS9ET01JbXBsZW1lbnRhdGlvbi5oOgorICAgICAgICAoV2Vi
Q29yZTo6RE9NSW1wbGVtZW50YXRpb246OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpET01J
bXBsZW1lbnRhdGlvbjo6ZG9jdW1lbnREZXN0cm95ZWQpOgorICAgICAgICAoV2ViQ29yZTo6RE9N
SW1wbGVtZW50YXRpb246OnBhcmVudERvY3VtZW50KToKKyAgICAgICAgKiBkb20vRE9NSW1wbGVt
ZW50YXRpb24uaWRsOgorICAgICAgICAqIGRvbS9Eb2N1bWVudC5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpEb2N1bWVudDo6fkRvY3VtZW50KToKKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50Ojpp
bXBsZW1lbnRhdGlvbik6CisgICAgICAgICogZG9tL0RvY3VtZW50Lmg6CisKIDIwMTEtMDItMTQg
IFJvbGFuZCBTdGVpbmVyICA8cm9sYW5kc3RlaW5lckBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAg
UmV2aWV3ZWQgYnkgS2VudCBUYW11cmEuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJD
b3JlLmd5cGkgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkKaW5kZXggZWI4MDE2Yzc5MDgz
NzJkNGZkZWFjNjhkZTQyMzFlNmY5OTU2OWRhOS4uMjFhZjQ3ODM5ZDUzZTNkNTg2ZDQ1MjRkZjYw
MDI0MGRhMWYxNzA4MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpCisr
KyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQpAQCAtNjE2LDYgKzYxNiw3IEBACiAgICAg
ICAgICAgICAnYmluZGluZ3MvanMvSlNET01CaW5kaW5nLmgnLAogICAgICAgICAgICAgJ2JpbmRp
bmdzL2pzL0pTRE9NR2xvYmFsT2JqZWN0LmNwcCcsCiAgICAgICAgICAgICAnYmluZGluZ3MvanMv
SlNET01HbG9iYWxPYmplY3QuaCcsCisgICAgICAgICAgICAnYmluZGluZ3MvanMvSlNET01JbXBs
ZW1lbnRhdGlvbkN1c3RvbS5jcHAnLAogICAgICAgICAgICAgJ2JpbmRpbmdzL2pzL0pTRE9NU3Ry
aW5nTWFwQ3VzdG9tLmNwcCcsCiAgICAgICAgICAgICAnYmluZGluZ3MvanMvSlNET01TdHJpbmdN
YXBDdXN0b20uaCcsCiAgICAgICAgICAgICAnYmluZGluZ3MvanMvSlNET01XaW5kb3dCYXNlLmNw
cCcsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnBybyBiL1NvdXJjZS9XZWJD
b3JlL1dlYkNvcmUucHJvCmluZGV4IDc0OGMwMzI2M2EwNTM4ZGZjYzdjMGNlODBiMDBkMzU4Nzdh
ZjJkMWEuLjk0ZjZjYTVlMjdiNTUyZThjMjYxZGNjYWI4ZmY5ZDQwMmRhNTViNTMgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUucHJvCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNv
cmUucHJvCkBAIC0xNTI2LDYgKzE1MjYsNyBAQCB2OCB7CiAgICAgICAgIGJpbmRpbmdzL2pzL0pT
Q3VzdG9tWFBhdGhOU1Jlc29sdmVyLmggXAogICAgICAgICBiaW5kaW5ncy9qcy9KU0RPTUJpbmRp
bmcuaCBcCiAgICAgICAgIGJpbmRpbmdzL2pzL0pTRE9NR2xvYmFsT2JqZWN0LmggXAorICAgICAg
ICBiaW5kaW5ncy9qcy9KU0RPTUltcGxlbWVudGF0aW9uQ3VzdG9tLmggXAogICAgICAgICBiaW5k
aW5ncy9qcy9KU0RPTVN0cmluZ01hcEN1c3RvbS5oIFwKICAgICAgICAgYmluZGluZ3MvanMvSlNE
T01XaW5kb3dCYXNlLmggXAogICAgICAgICBiaW5kaW5ncy9qcy9KU0RPTVdpbmRvd0N1c3RvbS5o
IFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNw
cm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2oKaW5kZXgg
MmE4ZjM0MGE2OTQ5NzA1NzJmYzlhNTUwMDQ4YmYzODNhZmM5ZThiNC4uNTFkNWM2YmU0ZDExYTI1
YmY0MmE3ODMyYWY1ZjM4MjhmYTI1MTZiYiAxMDA3NTUKLS0tIGEvU291cmNlL1dlYkNvcmUvV2Vi
Q29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2oKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52
Y3Byb2ovV2ViQ29yZS52Y3Byb2oKQEAgLTU4MDY5LDYgKzU4MDY5LDU4IEBACiAJCQkJCT4KIAkJ
CQk8L0ZpbGU+CiAJCQkJPEZpbGUKKwkJCQkJUmVsYXRpdmVQYXRoPSIuLlxiaW5kaW5nc1xqc1xK
U0RPTUltcGxlbWVudGF0aW9uQ3VzdG9tLmNwcCIKKwkJCQkJPgorCQkJCQk8RmlsZUNvbmZpZ3Vy
YXRpb24KKwkJCQkJCU5hbWU9IkRlYnVnfFdpbjMyIgorCQkJCQkJRXhjbHVkZWRGcm9tQnVpbGQ9
InRydWUiCisJCQkJCQk+CisJCQkJCQk8VG9vbAorCQkJCQkJCU5hbWU9IlZDQ0xDb21waWxlclRv
b2wiCisJCQkJCQkvPgorCQkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPgorCQkJCQk8RmlsZUNvbmZp
Z3VyYXRpb24KKwkJCQkJCU5hbWU9IlJlbGVhc2V8V2luMzIiCisJCQkJCQlFeGNsdWRlZEZyb21C
dWlsZD0idHJ1ZSIKKwkJCQkJCT4KKwkJCQkJCTxUb29sCisJCQkJCQkJTmFtZT0iVkNDTENvbXBp
bGVyVG9vbCIKKwkJCQkJCS8+CisJCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+CisJCQkJCTxGaWxl
Q29uZmlndXJhdGlvbgorCQkJCQkJTmFtZT0iRGVidWdfQ2Fpcm9fQ0ZMaXRlfFdpbjMyIgorCQkJ
CQkJRXhjbHVkZWRGcm9tQnVpbGQ9InRydWUiCisJCQkJCQk+CisJCQkJCQk8VG9vbAorCQkJCQkJ
CU5hbWU9IlZDQ0xDb21waWxlclRvb2wiCisJCQkJCQkvPgorCQkJCQk8L0ZpbGVDb25maWd1cmF0
aW9uPgorCQkJCQk8RmlsZUNvbmZpZ3VyYXRpb24KKwkJCQkJCU5hbWU9IlJlbGVhc2VfQ2Fpcm9f
Q0ZMaXRlfFdpbjMyIgorCQkJCQkJRXhjbHVkZWRGcm9tQnVpbGQ9InRydWUiCisJCQkJCQk+CisJ
CQkJCQk8VG9vbAorCQkJCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiCisJCQkJCQkvPgorCQkJ
CQk8L0ZpbGVDb25maWd1cmF0aW9uPgorCQkJCQk8RmlsZUNvbmZpZ3VyYXRpb24KKwkJCQkJCU5h
bWU9IkRlYnVnX0FsbHxXaW4zMiIKKwkJCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIgorCQkJ
CQkJPgorCQkJCQkJPFRvb2wKKwkJCQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIgorCQkJCQkJ
Lz4KKwkJCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4KKwkJCQkJPEZpbGVDb25maWd1cmF0aW9uCisJ
CQkJCQlOYW1lPSJSZWxlYXNlX0xUQ0d8V2luMzIiCisJCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0i
dHJ1ZSIKKwkJCQkJCT4KKwkJCQkJCTxUb29sCisJCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9v
bCIKKwkJCQkJCS8+CisJCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+CisJCQkJPC9GaWxlPgorCQkJ
CTxGaWxlCiAJCQkJCVJlbGF0aXZlUGF0aD0iLi5cYmluZGluZ3NcanNcSlNET01NaW1lVHlwZUFy
cmF5Q3VzdG9tLmNwcCIKIAkJCQkJPgogCQkJCQk8RmlsZUNvbmZpZ3VyYXRpb24KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1Nv
dXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCBmYzE3
OTI3MGE0OTRlN2QyM2M1MzI2NTRmZWEzYWY0M2I2OGViZTA2Li4wZjFjN2FlNjJiZjZmMzdjODBh
MWJhZWFhMzA4ZTNhZmRjZDk1ZmQ5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3Jl
Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54
Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC02NTIsNiArNjUyLDcgQEAKIAkJMUNGQUUzMjMw
QTZENkEzRjAwMzI1OTNEIC8qIGxpYm9iamMuZHlsaWIgaW4gRnJhbWV3b3JrcyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxQ0ZBRTMyMjBBNkQ2QTNGMDAzMjU5M0QgLyogbGli
b2JqYy5keWxpYiAqLzsgfTsKIAkJMjBENjI5MjYxMjUzNjkwQjAwMDgxNTQzIC8qIEluc3BlY3Rv
ckluc3RydW1lbnRhdGlvbi5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSAyMEQ2MjkyNDEyNTM2OTBCMDAwODE1NDMgLyogSW5zcGVjdG9ySW5zdHJ1bWVu
dGF0aW9uLmNwcCAqLzsgfTsKIAkJMjBENjI5MjcxMjUzNjkwQjAwMDgxNTQzIC8qIEluc3BlY3Rv
ckluc3RydW1lbnRhdGlvbi5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gMjBENjI5MjUxMjUzNjkwQjAwMDgxNTQzIC8qIEluc3BlY3Rvckluc3RydW1lbnRh
dGlvbi5oICovOyB9OworCQkyMjg4NUU2NDEzMDFBRTRDMDA1MjZFNjggLyogSlNET01JbXBsZW1l
bnRhdGlvbkN1c3RvbS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSAyMjg4NUU2MzEzMDFBRTRDMDA1MjZFNjggLyogSlNET01JbXBsZW1lbnRhdGlvbkN1
c3RvbS5jcHAgKi87IH07CiAJCTIyOEMyODQ1MTBEODI1MDAwMDlEMEQwRSAvKiBTY3JpcHRXcmFw
cGFibGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDIy
OEMyODQ0MTBEODI1MDAwMDlEMEQwRSAvKiBTY3JpcHRXcmFwcGFibGUuaCAqLzsgc2V0dGluZ3Mg
PSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQkyNEY1NEVBQzEwMUZFOTE0MDAw
QUU3NDEgLyogQXBwbGljYXRpb25DYWNoZUhvc3QuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMjRGNTRFQUExMDFGRTkxNDAwMEFFNzQxIC8qIEFwcGxp
Y2F0aW9uQ2FjaGVIb3N0LmNwcCAqLzsgfTsKIAkJMjRGNTRFQUQxMDFGRTkxNDAwMEFFNzQxIC8q
IEFwcGxpY2F0aW9uQ2FjaGVIb3N0LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSAyNEY1NEVBQjEwMUZFOTE0MDAwQUU3NDEgLyogQXBwbGljYXRpb25DYWNo
ZUhvc3QuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9ICgpOyB9OyB9OwpAQCAtNzAwMCw2
ICs3MDAxLDcgQEAKIAkJMUNGQUUzMjIwQTZENkEzRjAwMzI1OTNEIC8qIGxpYm9iamMuZHlsaWIg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSAiY29tcGls
ZWQubWFjaC1vLmR5bGliIjsgbmFtZSA9IGxpYm9iamMuZHlsaWI7IHBhdGggPSAvdXNyL2xpYi9s
aWJvYmpjLmR5bGliOyBzb3VyY2VUcmVlID0gIjxhYnNvbHV0ZT4iOyB9OwogCQkyMEQ2MjkyNDEy
NTM2OTBCMDAwODE1NDMgLyogSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uLmNwcCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEluc3BlY3Rvckluc3RydW1lbnRhdGlvbi5jcHA7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTIwRDYyOTI1MTI1MzY5MEIwMDA4MTU0MyAv
KiBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb24uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CisJCTIyODg1RTYzMTMwMUFFNEMwMDUyNkU2OCAvKiBKU0RPTUltcGxlbWVudGF0aW9uQ3Vz
dG9tLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IEpTRE9NSW1wbGVt
ZW50YXRpb25DdXN0b20uY3BwOyBwYXRoID0gYmluZGluZ3MvanMvSlNET01JbXBsZW1lbnRhdGlv
bkN1c3RvbS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTIyOEMyODQ0MTBEODI1
MDAwMDlEMEQwRSAvKiBTY3JpcHRXcmFwcGFibGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gU2NyaXB0V3JhcHBhYmxlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CTI0NDJCQkY4MTE5NEM5RDMwMEQ0OTQ2OSAvKiBIYXNoQ2hhbmdlRXZlbnQuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSGFzaENoYW5nZUV2ZW50Lmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCTI0RjU0RUFBMTAxRkU5MTQwMDBBRTc0MSAvKiBBcHBsaWNhdGlvbkNh
Y2hlSG9zdC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBBcHBsaWNh
dGlvbkNhY2hlSG9zdC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xMjQxMCw2
ICsxMjQxMiw3IEBACiAJCTA4NjdENjkxRkU4NDAyOEZDMDJBQUMwNyAvKiBXZWJLaXQgKi8gPSB7
CiAJCQlpc2EgPSBQQlhHcm91cDsKIAkJCWNoaWxkcmVuID0gKAorCQkJCTIyODg1RTYzMTMwMUFF
NEMwMDUyNkU2OCAvKiBKU0RPTUltcGxlbWVudGF0aW9uQ3VzdG9tLmNwcCAqLywKIAkJCQk2NUM5
N0FGMjA4RUE5MDg4MDBBQ0QyNzMgLyogY29uZmlnLmggKi8sCiAJCQkJRURFQzk4MDIwQUVEN0Ux
NzAwNTkxMzdGIC8qIFdlYkNvcmVQcmVmaXguaCAqLywKIAkJCQk5MzA3MDYxMzA5RTBDQTgyMDBC
MTdGRTQgLyogRGVyaXZlZFNvdXJjZXMubWFrZSAqLywKQEAgLTIyNTE5LDcgKzIyNTIyLDYgQEAK
IAkJCWlzYSA9IFBCWFByb2plY3Q7CiAJCQlidWlsZENvbmZpZ3VyYXRpb25MaXN0ID0gMTQ5QzI4
NDMwODkwMkIxMTAwOEE5RUZDIC8qIEJ1aWxkIGNvbmZpZ3VyYXRpb24gbGlzdCBmb3IgUEJYUHJv
amVjdCAiV2ViQ29yZSIgKi87CiAJCQljb21wYXRpYmlsaXR5VmVyc2lvbiA9ICJYY29kZSAyLjQi
OwotCQkJZGV2ZWxvcG1lbnRSZWdpb24gPSBFbmdsaXNoOwogCQkJaGFzU2Nhbm5lZEZvckVuY29k
aW5ncyA9IDE7CiAJCQlrbm93blJlZ2lvbnMgPSAoCiAJCQkJRW5nbGlzaCwKQEAgLTI1MTQ4LDYg
KzI1MTUwLDcgQEAKIAkJCQlBMUUxMTU0NDEzMDE1QzNEMDA1NEFDOEMgLyogRGlzdGFudExpZ2h0
U291cmNlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUExRTExNTQ2MTMwMTVDNEUwMDU0QUM4QyAv
KiBQb2ludExpZ2h0U291cmNlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUExRTExNTQ4MTMwMTVD
NUQwMDU0QUM4QyAvKiBTcG90TGlnaHRTb3VyY2UuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJMjI4
ODVFNjQxMzAxQUU0QzAwNTI2RTY4IC8qIEpTRE9NSW1wbGVtZW50YXRpb25DdXN0b20uY3BwIGlu
IFNvdXJjZXMgKi8sCiAJCQkpOwogCQkJcnVuT25seUZvckRlcGxveW1lbnRQb3N0cHJvY2Vzc2lu
ZyA9IDA7CiAJCX07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0Jp
bmRpbmdzQWxsSW5PbmUuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNCaW5kaW5n
c0FsbEluT25lLmNwcAppbmRleCA3YzVlZGM2NDFlYjFjMmU4YWU2YzUxMTI4OTI5NGQzNjk2OTM4
N2E2Li42ZjgyNjVlMjNmMDIxMTczNzc1NzM4YWYxOGUyY2JlNDg0ZDMyMjUyIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0JpbmRpbmdzQWxsSW5PbmUuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTQmluZGluZ3NBbGxJbk9uZS5jcHAKQEAgLTU2
LDYgKzU2LDcgQEAKICNpbmNsdWRlICJKU0RPTUJpbmRpbmcuY3BwIgogI2luY2x1ZGUgIkpTRE9N
Rm9ybURhdGFDdXN0b20uY3BwIgogI2luY2x1ZGUgIkpTRE9NR2xvYmFsT2JqZWN0LmNwcCIKKyNp
bmNsdWRlICJKU0RPTUltcGxlbWVudGF0aW9uLmNwcCIKICNpbmNsdWRlICJKU0RPTU1pbWVUeXBl
QXJyYXlDdXN0b20uY3BwIgogI2luY2x1ZGUgIkpTRE9NUGx1Z2luQXJyYXlDdXN0b20uY3BwIgog
I2luY2x1ZGUgIkpTRE9NUGx1Z2luQ3VzdG9tLmNwcCIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL2pzL0pTRE9NSW1wbGVtZW50YXRpb25DdXN0b20uY3BwIGIvU291cmNlL1dl
YkNvcmUvYmluZGluZ3MvanMvSlNET01JbXBsZW1lbnRhdGlvbkN1c3RvbS5jcHAKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uYWM4M2M2OTBhYjBhNmE3MGEwYmI0Y2RmMjI4ZmY3NjQ3NWYxODNjNAotLS0gL2Rldi9udWxs
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NSW1wbGVtZW50YXRpb25DdXN0
b20uY3BwCkBAIC0wLDAgKzEsNDIgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTEgR29vZ2xl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQgbW9kaWZpY2F0aW9u
LAorICogYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cyBhcmUgbWV0OgorICoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0
IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSwKKyAqIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKgorICogMi4gUmVkaXN0cmli
dXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQg
bm90aWNlLAorICogdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lciBpbiB0aGUgZG9jdW1lbnRhdGlvbgorICogIGFuZC9vciBvdGhlciBtYXRlcmlhbHMg
cHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMg
UFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyDigJxBUyBJU+KAnSBB
TkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLAorICogSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZ
IEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRQorICogQVJFIERJU0NMQUlNRUQu
IElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFC
TEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAorICogU1BFQ0lBTCwgRVhF
TVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SCisgKiBTRVJWSUNFUzsg
TE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikg
SE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLAorICogV0hFVEhF
UiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJ
R0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GCisgKiBUSEUgVVNF
IE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIkpTRE9N
SW1wbGVtZW50YXRpb24uaCIKKworI2luY2x1ZGUgIkRPTUltcGxlbWVudGF0aW9uLmgiCisKK3Vz
aW5nIG5hbWVzcGFjZSBKU0M7CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKwordm9pZCBKU0RPTUlt
cGxlbWVudGF0aW9uOjptYXJrQ2hpbGRyZW4oTWFya1N0YWNrJiBtYXJrU3RhY2spCit7CisgICAg
QmFzZTo6bWFya0NoaWxkcmVuKG1hcmtTdGFjayk7CisKKyAgICBET01JbXBsZW1lbnRhdGlvbiog
ZG9tSW1wbGVtZW50YXRpb24gPSBpbXBsKCk7CisgICAgRG9jdW1lbnQqIG93bmVyRG9jdW1lbnQg
PSBkb21JbXBsZW1lbnRhdGlvbi0+b3duZXJEb2N1bWVudCgpOworICAgIGlmIChvd25lckRvY3Vt
ZW50KQorICAgICAgICBtYXJrRE9NTm9kZVdyYXBwZXIobWFya1N0YWNrLCBvd25lckRvY3VtZW50
LCBvd25lckRvY3VtZW50KTsKK30KKworfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMucG0gYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5wbQppbmRleCBkMjMwOWU5MjdmY2JhYWE4NjczZmRj
MjY5ZGIxOGZkOTcyMjA2YzY5Li43NDZhZWI4YjhkZmUwMDY2MGIwYjI0YTYzZTliMjQ5NmJkN2Fj
ODYxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5l
cmF0b3JKUy5wbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5l
cmF0b3JKUy5wbQpAQCAtMjc1Nyw3ICsyNzU3LDcgQEAgc3ViIEdlbmVyYXRlSGFzaFRhYmxlCiAg
ICAgcHVzaChAaW1wbENvbnRlbnQsICJ9O1xuXG4iKTsKICAgICBwdXNoKEBpbXBsQ29udGVudCwg
IiN1bmRlZiBUSFVOS19HRU5FUkFUT1JcbiIpOwogICAgIG15ICRjb21wYWN0U2l6ZU1hc2sgPSAk
bnVtRW50cmllcyAtIDE7Ci0gICAgcHVzaChAaW1wbENvbnRlbnQsICJzdGF0aWMgSlNDX0NPTlNU
X0hBU0hUQUJMRSBIYXNoVGFibGUgJG5hbWUgPSB7ICRjb21wYWN0U2l6ZSwgJGNvbXBhY3RTaXpl
TWFzaywgJG5hbWVFbnRyaWVzLCAwIH07XG4iKTsKKyAgICBwdXNoKEBpbXBsQ29udGVudCwgInN0
YXRpYyBKU0NfQ09OU1RfSEFTSFRBQkxFIEpTQzo6SGFzaFRhYmxlICRuYW1lID0geyAkY29tcGFj
dFNpemUsICRjb21wYWN0U2l6ZU1hc2ssICRuYW1lRW50cmllcywgMCB9O1xuIik7CiB9CiAKICMg
SW50ZXJuYWwgaGVscGVyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9W
OEdDQ29udHJvbGxlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9WOEdDQ29udHJv
bGxlci5jcHAKaW5kZXggZjFjZjIwNjcyZmZjZDc4NmEwMTI4NTJjNjZkMjU0M2QxOTE4MDc1Zi4u
YTM0ZGMyNDI1ZWJlN2Y3OTM1YmEwOTE4YjBjOGQyZGM3ODA3OThjMiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvVjhHQ0NvbnRyb2xsZXIuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL3Y4L1Y4R0NDb250cm9sbGVyLmNwcApAQCAtMjkwLDYgKzI5MCw3IEBA
IHB1YmxpYzoKICAgICAgICAgaWYgKG5vZGUtPmlzRG9jdW1lbnROb2RlKCkpIHsKICAgICAgICAg
ICAgIERvY3VtZW50KiBkb2N1bWVudCA9IHJlaW50ZXJwcmV0X2Nhc3Q8RG9jdW1lbnQqPihub2Rl
KTsKICAgICAgICAgICAgIGFkZERPTU9iamVjdFRvR3JvdXAoc3RvcmUsIGdyb3VwSWQsIGRvY3Vt
ZW50LT5zdHlsZVNoZWV0cygpKTsKKyAgICAgICAgICAgIGFkZERPTU9iamVjdFRvR3JvdXAoc3Rv
cmUsIGdyb3VwSWQsIGRvY3VtZW50LT5pbXBsZW1lbnRhdGlvbigpKTsKICAgICAgICAgfQogCiAg
ICAgICAgIFdyYXBwZXJUeXBlSW5mbyogdHlwZUluZm8gPSBWOERPTVdyYXBwZXI6OmRvbVdyYXBw
ZXJUeXBlKHdyYXBwZXIpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0RPTUltcGxl
bWVudGF0aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9ET01JbXBsZW1lbnRhdGlvbi5jcHAK
aW5kZXggMzBlODg5ZjhjMWYyYWNmZmYwNWE1OTVlMTI1MzY0ZTQ1MjgyMWRkYi4uM2JhMTEzNzMz
ODdiM2U3MTM2NDhhNDk1OTZjOWMxMDUwNzZjN2IxMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvZG9tL0RPTUltcGxlbWVudGF0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRE9N
SW1wbGVtZW50YXRpb24uY3BwCkBAIC0xNzEsNiArMTcxLDEyIEBAIHN0YXRpYyBib29sIGlzU1ZH
MTFGZWF0dXJlKGNvbnN0IFN0cmluZyAmZmVhdHVyZSkKIH0KICNlbmRpZgogCitET01JbXBsZW1l
bnRhdGlvbjo6RE9NSW1wbGVtZW50YXRpb24oRG9jdW1lbnQqIG93bmVyRG9jdW1lbnQpCisgICAg
OiBtX293bmVyRG9jdW1lbnQob3duZXJEb2N1bWVudCkKK3sKKyAgICBBU1NFUlQobV9vd25lckRv
Y3VtZW50KTsKK30KKwogYm9vbCBET01JbXBsZW1lbnRhdGlvbjo6aGFzRmVhdHVyZShjb25zdCBT
dHJpbmcmIGZlYXR1cmUsIGNvbnN0IFN0cmluZyYgdmVyc2lvbikKIHsKICAgICBTdHJpbmcgbG93
ZXIgPSBmZWF0dXJlLmxvd2VyKCk7CkBAIC0yNDAsNiArMjQ2LDEyIEBAIFBhc3NSZWZQdHI8RG9j
dW1lbnQ+IERPTUltcGxlbWVudGF0aW9uOjpjcmVhdGVEb2N1bWVudChjb25zdCBTdHJpbmcmIG5h
bWVzcGFjZVVSCiAgICAgZWxzZQogICAgICAgICBkb2MgPSBEb2N1bWVudDo6Y3JlYXRlKDAsIEtV
UkwoKSk7CiAKKyAgICBpZiAoIW1fb3duZXJEb2N1bWVudCkgeworICAgICAgICBlYyA9IElOVkFM
SURfU1RBVEVfRVJSOworICAgICAgICByZXR1cm4gMDsKKyAgICB9CisgICAgZG9jLT5zZXRTZWN1
cml0eU9yaWdpbihtX293bmVyRG9jdW1lbnQtPnNlY3VyaXR5T3JpZ2luKCkpOworCiAgICAgUmVm
UHRyPE5vZGU+IGRvY3VtZW50RWxlbWVudDsKICAgICBpZiAoIXF1YWxpZmllZE5hbWUuaXNFbXB0
eSgpKSB7CiAgICAgICAgIGRvY3VtZW50RWxlbWVudCA9IGRvYy0+Y3JlYXRlRWxlbWVudE5TKG5h
bWVzcGFjZVVSSSwgcXVhbGlmaWVkTmFtZSwgZWMpOwpAQCAtMzAwLDYgKzMxMiw5IEBAIFBhc3NS
ZWZQdHI8SFRNTERvY3VtZW50PiBET01JbXBsZW1lbnRhdGlvbjo6Y3JlYXRlSFRNTERvY3VtZW50
KGNvbnN0IFN0cmluZyYgdGl0CiAgICAgZC0+b3BlbigpOwogICAgIGQtPndyaXRlKCI8IWRvY3R5
cGUgaHRtbD48aHRtbD48Ym9keT48L2JvZHk+PC9odG1sPiIpOwogICAgIGQtPnNldFRpdGxlKHRp
dGxlKTsKKyAgICBBU1NFUlQobV9vd25lckRvY3VtZW50KTsKKyAgICBpZiAobV9vd25lckRvY3Vt
ZW50KQorICAgICAgICBkLT5zZXRTZWN1cml0eU9yaWdpbihtX293bmVyRG9jdW1lbnQtPnNlY3Vy
aXR5T3JpZ2luKCkpOwogICAgIHJldHVybiBkLnJlbGVhc2UoKTsKIH0KIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvZG9tL0RPTUltcGxlbWVudGF0aW9uLmggYi9Tb3VyY2UvV2ViQ29yZS9k
b20vRE9NSW1wbGVtZW50YXRpb24uaAppbmRleCBhMjBmN2QyM2UxNGFmMzMyYTkxZDEzMWQwZDA1
MDUxZTg4OWI2MWVkLi40ZWFkYmEzZjc0ZGRmNmQwZGQ2OTdhNjBiYjc4MmZkNjk0NTA5ZGFiIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRE9NSW1wbGVtZW50YXRpb24uaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9kb20vRE9NSW1wbGVtZW50YXRpb24uaApAQCAtNDEsMTIgKzQxLDEyIEBA
IHR5cGVkZWYgaW50IEV4Y2VwdGlvbkNvZGU7CiAKIGNsYXNzIERPTUltcGxlbWVudGF0aW9uIDog
cHVibGljIFJlZkNvdW50ZWQ8RE9NSW1wbGVtZW50YXRpb24+IHsKIHB1YmxpYzoKLSAgICBzdGF0
aWMgUGFzc1JlZlB0cjxET01JbXBsZW1lbnRhdGlvbj4gY3JlYXRlKCkgeyByZXR1cm4gYWRvcHRS
ZWYobmV3IERPTUltcGxlbWVudGF0aW9uKTsgfQorICAgIHN0YXRpYyBQYXNzUmVmUHRyPERPTUlt
cGxlbWVudGF0aW9uPiBjcmVhdGUoRG9jdW1lbnQqIG93bmVyRG9jdW1lbnQpIHsgcmV0dXJuIGFk
b3B0UmVmKG5ldyBET01JbXBsZW1lbnRhdGlvbihvd25lckRvY3VtZW50KSk7IH0KIAogICAgIC8v
IERPTSBtZXRob2RzICYgYXR0cmlidXRlcyBmb3IgRE9NSW1wbGVtZW50YXRpb24KICAgICBzdGF0
aWMgYm9vbCBoYXNGZWF0dXJlKGNvbnN0IFN0cmluZyYgZmVhdHVyZSwgY29uc3QgU3RyaW5nJiB2
ZXJzaW9uKTsKLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxEb2N1bWVudFR5cGU+IGNyZWF0ZURvY3Vt
ZW50VHlwZShjb25zdCBTdHJpbmcmIHF1YWxpZmllZE5hbWUsIGNvbnN0IFN0cmluZyYgcHVibGlj
SWQsIGNvbnN0IFN0cmluZyAmc3lzdGVtSWQsIEV4Y2VwdGlvbkNvZGUmKTsKLSAgICBzdGF0aWMg
UGFzc1JlZlB0cjxEb2N1bWVudD4gY3JlYXRlRG9jdW1lbnQoY29uc3QgU3RyaW5nJiBuYW1lc3Bh
Y2VVUkksIGNvbnN0IFN0cmluZyYgcXVhbGlmaWVkTmFtZSwgRG9jdW1lbnRUeXBlKiwgRXhjZXB0
aW9uQ29kZSYpOworICAgIFBhc3NSZWZQdHI8RG9jdW1lbnRUeXBlPiBjcmVhdGVEb2N1bWVudFR5
cGUoY29uc3QgU3RyaW5nJiBxdWFsaWZpZWROYW1lLCBjb25zdCBTdHJpbmcmIHB1YmxpY0lkLCBj
b25zdCBTdHJpbmcmIHN5c3RlbUlkLCBFeGNlcHRpb25Db2RlJik7CisgICAgUGFzc1JlZlB0cjxE
b2N1bWVudD4gY3JlYXRlRG9jdW1lbnQoY29uc3QgU3RyaW5nJiBuYW1lc3BhY2VVUkksIGNvbnN0
IFN0cmluZyYgcXVhbGlmaWVkTmFtZSwgRG9jdW1lbnRUeXBlKiwgRXhjZXB0aW9uQ29kZSYpOwog
CiAgICAgRE9NSW1wbGVtZW50YXRpb24qIGdldEludGVyZmFjZShjb25zdCBTdHJpbmcmIGZlYXR1
cmUpOwogCkBAIC01NCw3ICs1NCw3IEBAIHB1YmxpYzoKICAgICBzdGF0aWMgUGFzc1JlZlB0cjxD
U1NTdHlsZVNoZWV0PiBjcmVhdGVDU1NTdHlsZVNoZWV0KGNvbnN0IFN0cmluZyYgdGl0bGUsIGNv
bnN0IFN0cmluZyYgbWVkaWEsIEV4Y2VwdGlvbkNvZGUmKTsKIAogICAgIC8vIEZyb20gdGhlIEhU
TUxET01JbXBsZW1lbnRhdGlvbiBpbnRlcmZhY2UKLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxIVE1M
RG9jdW1lbnQ+IGNyZWF0ZUhUTUxEb2N1bWVudChjb25zdCBTdHJpbmcmIHRpdGxlKTsKKyAgICBQ
YXNzUmVmUHRyPEhUTUxEb2N1bWVudD4gY3JlYXRlSFRNTERvY3VtZW50KGNvbnN0IFN0cmluZyYg
dGl0bGUpOwogCiAgICAgLy8gT3RoZXIgbWV0aG9kcyAobm90IHBhcnQgb2YgRE9NKQogICAgIHN0
YXRpYyBQYXNzUmVmUHRyPERvY3VtZW50PiBjcmVhdGVEb2N1bWVudChjb25zdCBTdHJpbmcmIE1J
TUVUeXBlLCBGcmFtZSosIGNvbnN0IEtVUkwmLCBib29sIGluVmlld1NvdXJjZU1vZGUpOwpAQCAt
NjIsOCArNjIsMTMgQEAgcHVibGljOgogICAgIHN0YXRpYyBib29sIGlzWE1MTUlNRVR5cGUoY29u
c3QgU3RyaW5nJiBNSU1FVHlwZSk7CiAgICAgc3RhdGljIGJvb2wgaXNUZXh0TUlNRVR5cGUoY29u
c3QgU3RyaW5nJiBNSU1FVHlwZSk7CiAKKyAgICBEb2N1bWVudCogb3duZXJEb2N1bWVudCgpIHsg
cmV0dXJuIG1fb3duZXJEb2N1bWVudDsgfQorICAgIHZvaWQgb3duZXJEb2N1bWVudERlc3Ryb3ll
ZCgpIHsgbV9vd25lckRvY3VtZW50ID0gMDsgfQorCiBwcml2YXRlOgotICAgIERPTUltcGxlbWVu
dGF0aW9uKCkgeyB9CisgICAgRE9NSW1wbGVtZW50YXRpb24oRG9jdW1lbnQqIG93bmVyRG9jdW1l
bnQpOworCisgICAgRG9jdW1lbnQqIG1fb3duZXJEb2N1bWVudDsKIH07CiAKIH0gLy9uYW1lc3Bh
Y2UKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9ET01JbXBsZW1lbnRhdGlvbi5pZGwg
Yi9Tb3VyY2UvV2ViQ29yZS9kb20vRE9NSW1wbGVtZW50YXRpb24uaWRsCmluZGV4IDgxZGY2Yzg4
MDhiZmQzZjk2NTNmZTBhYzU3YzM2ODY2N2Y3YTJkZTEuLjg0MjAyODFiMTQ3YjgwZDFmYmNmOThi
MzcyYTIxNjhiOWFhMWI4MzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9ET01JbXBs
ZW1lbnRhdGlvbi5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0RPTUltcGxlbWVudGF0aW9u
LmlkbApAQCAtMjAsNyArMjAsOSBAQAogCiBtb2R1bGUgY29yZSB7CiAKLSAgICBpbnRlcmZhY2Ug
RE9NSW1wbGVtZW50YXRpb24geworICAgIGludGVyZmFjZSBbCisgICAgICAgIEN1c3RvbU1hcmtG
dW5jdGlvbgorICAgIF0gRE9NSW1wbGVtZW50YXRpb24gewogCiAgICAgICAgIC8vIERPTSBMZXZl
bCAxCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCmluZGV4IGIzNmZmZjA2NDkyMDBmMDIyN2JiNWJj
ZTcyOGViZmNhNTljN2U2ZTUuLjBlYTEyMmI0YWIzYjA4NGYwYjAyMzc1NDAxOWVjYjdkODk4YWM5
MDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcApAQCAtNjA0LDYgKzYwNCw5IEBAIERvY3VtZW50
Ojp+RG9jdW1lbnQoKQogCiAgICAgaWYgKG1fbWVkaWFRdWVyeU1hdGNoZXIpCiAgICAgICAgIG1f
bWVkaWFRdWVyeU1hdGNoZXItPmRvY3VtZW50RGVzdHJveWVkKCk7CisKKyAgICBpZiAobV9pbXBs
ZW1lbnRhdGlvbikKKyAgICAgICAgbV9pbXBsZW1lbnRhdGlvbi0+b3duZXJEb2N1bWVudERlc3Ry
b3llZCgpOwogfQogCiBNZWRpYVF1ZXJ5TWF0Y2hlciogRG9jdW1lbnQ6Om1lZGlhUXVlcnlNYXRj
aGVyKCkKQEAgLTY4NSwxMCArNjg4LDEwIEBAIHZvaWQgRG9jdW1lbnQ6OnNldERvY1R5cGUoUGFz
c1JlZlB0cjxEb2N1bWVudFR5cGU+IGRvY1R5cGUpCiAgICAgICAgIG1fZG9jVHlwZS0+c2V0RG9j
dW1lbnQodGhpcyk7CiB9CiAKLURPTUltcGxlbWVudGF0aW9uKiBEb2N1bWVudDo6aW1wbGVtZW50
YXRpb24oKSBjb25zdAorRE9NSW1wbGVtZW50YXRpb24qIERvY3VtZW50OjppbXBsZW1lbnRhdGlv
bigpCiB7CiAgICAgaWYgKCFtX2ltcGxlbWVudGF0aW9uKQotICAgICAgICBtX2ltcGxlbWVudGF0
aW9uID0gRE9NSW1wbGVtZW50YXRpb246OmNyZWF0ZSgpOworICAgICAgICBtX2ltcGxlbWVudGF0
aW9uID0gRE9NSW1wbGVtZW50YXRpb246OmNyZWF0ZSh0aGlzKTsKICAgICByZXR1cm4gbV9pbXBs
ZW1lbnRhdGlvbi5nZXQoKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0Rv
Y3VtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaAppbmRleCAzOTg1YjUzMjg3
YjFkYjQ3N2JlMmIwZjQyYmI2NTI2YTU4NWYxYzE0Li5lMDQ5MDIyOGU2YjgwNWNiYjU3MjBhNmZh
ODU3YmFmNTNmY2ZlMGI0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaApAQCAtMzA0LDcgKzMwNCw3IEBA
IHB1YmxpYzoKIAogICAgIERvY3VtZW50VHlwZSogZG9jdHlwZSgpIGNvbnN0IHsgcmV0dXJuIG1f
ZG9jVHlwZS5nZXQoKTsgfQogCi0gICAgRE9NSW1wbGVtZW50YXRpb24qIGltcGxlbWVudGF0aW9u
KCkgY29uc3Q7CisgICAgRE9NSW1wbGVtZW50YXRpb24qIGltcGxlbWVudGF0aW9uKCk7CiAgICAg
CiAgICAgRWxlbWVudCogZG9jdW1lbnRFbGVtZW50KCkgY29uc3QKICAgICB7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>82451</attachid>
            <date>2011-02-15 07:38:53 -0800</date>
            <delta_ts>2011-02-16 08:50:10 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-53611-20110215183851.patch</filename>
            <type>text/plain</type>
            <size>21256</size>
            <attacher name="anton muhin">antonm</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogNzg0NzcKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5n
ZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCBiMGM3ZGI5NjUzODZhZjg0NzUwYjlh
YWM2YWNiOWRlYTU1Nzk4ZGVmLi4yYTVjYWUzZmYxZDYxYTRiNzI2ZDRhMzI5Mzk5YzZlMjZjZjkx
YTIwIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAKKzIwMTEtMDItMDggIEFudG9uIE11aGluICA8YW50
b25tQGNocm9taXVtLm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICBQcm9wYWdhdGUgc2VjdXJpdHkgb3JpZ2luIG9mIHBhcmVudCBkb2N1bWVudCBp
bnRvIEhUTUwgZG9jdW1lbnRzIGNyZWF0ZWQgd2l0aCBET01JbXBsZW1lbnRhdGlvbgorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTM2MTEKKworICAgICAg
ICBBZGRpdGlvbmFsIHRlc3Qgd2hpY2ggY2hlY2tzIGNhc2Ugd2hlbiBwYXJlbnQgZG9jdW1lbnQg
Y2FuIGJlIGNvbGxlY3RlZCB3aGlsZQorICAgICAgICBpdHMgaW1wbGVtZW50YXRpb24gaXMgYWxp
dmUuCisKKyAgICAgICAgKiBmYXN0L2RvbS9nYy05Lmh0bWw6CisKIDIwMTEtMDItMTQgIFBhdmVs
IEZlbGRtYW4gIDxwZmVsZG1hbkBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkg
WXVyeSBTZW1pa2hhdHNreS4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL2djLTku
aHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL2djLTkuaHRtbAppbmRleCAyYmMyNWFkM2VmOGE0
ODRmMjM3Mjc1NGI2OGEyNDcxYTVlNWY0YzQ1Li4zZWRhM2FlMzQxMTkxYjIwYWU3MjI0ZTZiNmJj
N2VhMTZiMzA3NWE3IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9nYy05Lmh0bWwK
KysrIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vZ2MtOS5odG1sCkBAIC04Myw2ICs4MywxMyBAQCBm
dW5jdGlvbiB0ZXN0RXZlbnRzKCkKICAgICB9CiB9CiAKK2Z1bmN0aW9uIHRlc3RET01JbXBsZW1l
bnRhdGlvbigpCit7CisgIHZhciBpbXBsID0gZG9jdW1lbnQuaW1wbGVtZW50YXRpb24uY3JlYXRl
SFRNTERvY3VtZW50KCcnKS5pbXBsZW1lbnRhdGlvbjsKKyAgZ2MoKTsKKyAgaW1wbC5jcmVhdGVI
VE1MRG9jdW1lbnQoJycpOyAgLy8gTWF5IGNyYXNoIG9yIHRocm93IGFuIGV4Y2VwdGlvbiBpZiB3
ZSBjb2xsZWN0IHBhcmVudCBkb2N1bWVudCBvZiBpbXBsLgorfQorCiBmdW5jdGlvbiB0ZXN0KCkg
CiB7CiAgICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKQEAgLTk3LDYgKzEwNCw3
IEBAIGZ1bmN0aW9uIHRlc3QoKQogICAgIHRlc3RQcm9wZXJ0aWVzQWdhaW4oKTsKIAogICAgIHRl
c3RFdmVudHMoKTsKKyAgICB0ZXN0RE9NSW1wbGVtZW50YXRpb24oKTsKIH0KIAogLy8gQnkgZGVm
YXVsdCwgd2UgZXhwZWN0IHRoYXQgY3VzdG9tIHByb3BlcnRpZXMgYXJlIG5vdCBhbGxvd2VkLgpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQW5kcm9pZC5qc2NiaW5kaW5ncy5tayBiL1NvdXJj
ZS9XZWJDb3JlL0FuZHJvaWQuanNjYmluZGluZ3MubWsKaW5kZXggYzY3MWFkOTI2OWZmZDBhOTZj
NTJjNjFkMTJlNjViYzgwOTE1ODFkOS4uYmZhNjdhOGQxYzIwMWRlZTRlNTU5ODQyYTQ4YjQ3NTMy
MjEwNTMzMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQW5kcm9pZC5qc2NiaW5kaW5ncy5t
aworKysgYi9Tb3VyY2UvV2ViQ29yZS9BbmRyb2lkLmpzY2JpbmRpbmdzLm1rCkBAIC04Nyw2ICs4
Nyw3IEBAIExPQ0FMX1NSQ19GSUxFUyArPSBcCiAJYmluZGluZ3MvanMvSlNET01CaW5kaW5nLmNw
cCBcCiAJYmluZGluZ3MvanMvSlNET01Gb3JtRGF0YUN1c3RvbS5jcHAgXAogCWJpbmRpbmdzL2pz
L0pTRE9NR2xvYmFsT2JqZWN0LmNwcCBcCisJYmluZGluZ3MvanMvSlNET01JbXBsZW1lbnRhdGlv
bkN1c3RvbS5jcHAgXAogCWJpbmRpbmdzL2pzL0pTRE9NU2V0dGFibGVUb2tlbkxpc3QuY3BwIFwK
IAliaW5kaW5ncy9qcy9KU0RPTVRva2VuTGlzdC5jcHAgXAogCWJpbmRpbmdzL2pzL0pTRE9NV2lu
ZG93QmFzZS5jcHAgXApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQg
Yi9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dAppbmRleCAyODczZDhhM2I5YjEwZTRmOThi
MmZlODY4MDYxNGI0OTI1YzRjZmVjLi45MzNjNWU2YmEzNzZlZTg4NjhiNzhjMTY2Y2MwMmE0ZjQ0
ZDM5YTJlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dAorKysgYi9T
b3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dApAQCAtNDg1LDYgKzQ4NSw3IEBAIFNFVChXZWJD
b3JlX1NPVVJDRVMKICAgICBiaW5kaW5ncy9qcy9KU0RPTUJpbmRpbmcuY3BwCiAgICAgYmluZGlu
Z3MvanMvSlNET01Gb3JtRGF0YUN1c3RvbS5jcHAKICAgICBiaW5kaW5ncy9qcy9KU0RPTUdsb2Jh
bE9iamVjdC5jcHAKKyAgICBiaW5kaW5ncy9qcy9KU0RPTUltcGxlbWVudGF0aW9uQ3VzdG9tLmNw
cAogICAgIGJpbmRpbmdzL2pzL0pTRE9NTWltZVR5cGVBcnJheUN1c3RvbS5jcHAKICAgICBiaW5k
aW5ncy9qcy9KU0RPTVBsdWdpbkFycmF5Q3VzdG9tLmNwcAogICAgIGJpbmRpbmdzL2pzL0pTRE9N
UGx1Z2luQ3VzdG9tLmNwcApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIv
U291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IGE0Y2VkNWI1MDczMzU4MWQ4ZTJiMDhjZGFk
ODk2M2M2OGZiMDkwN2MuLjRmODFhZDFhYTIxODY1YzIzMWFiYTU3ZGQ1NjE3MjdkMmFmYzE3OTYg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwzOSBAQAorMjAxMS0wMi0wOCAgQW50b24gTXVoaW4gIDxh
bnRvbm1AY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgIFByb3BhZ2F0ZSBzZWN1cml0eSBvcmlnaW4gb2YgcGFyZW50IGRvY3VtZW50
IGludG8gSFRNTCBkb2N1bWVudHMgY3JlYXRlZCB3aXRoIERPTUltcGxlbWVudGF0aW9uCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD01MzYxMQorCisgICAg
ICAgIFRoaXMgcmVzdG9yZXMgaW52YXJpYW50IHRoYXQgSlMgd3JhcHBlcnMgcmVzaWRpbmcgaW4g
dGhlIHNhbWUgSlMgY29udGV4dCBzaG91bGQgY29tZQorICAgICAgICBmcm9tIHRoZSBzYW1lIHNl
Y3VyaXR5IG9yaWdpbi4KKworICAgICAgICBBYnNlbmNlIG9mIHJlZ3Jlc3Npb25zIGlzIGNvdmVy
ZWQgYnkgdGhlIGN1cnJlbnQgdGVzdHMuICBEaWZmZXJlbnQgc2VjdXJpdHkgb3JpZ2luIG9mCisg
ICAgICAgIERPTUltcGxlbWVudGF0aW9uIGlzIGRpZmZpY3VsdCB0byBjaGVjayB3aXRoIGxheW91
dCB0ZXN0cyBhcyBET01JbXBsZW1lbnRhdGlvbgorICAgICAgICByZXNpZGVzIGluIHRoZSBzYW1l
IEpTIGNvbnRleHQgYXMgcGFyZW50IGRvY3VtZW50IGFuZCB0aGVyZWZvcmUgdGhlcmUgYXJlIG5v
IHNlY3VyaXR5IG9yaWdpbiBjaGVja3MuCisgICAgICAgIFRoaXMgaXMgb2JzZXJ2YWJsZSBob3dl
dmVyIGluIEMrKy4KKworICAgICAgICAqIEFuZHJvaWQuanNjYmluZGluZ3MubWs6CisgICAgICAg
ICogQ01ha2VMaXN0cy50eHQ6CisgICAgICAgICogV2ViQ29yZS5neXBpOgorICAgICAgICAqIFdl
YkNvcmUucHJvOgorICAgICAgICAqIFdlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qOgorICAg
ICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBiaW5k
aW5ncy92OC9WOEdDQ29udHJvbGxlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpOb2RlR3JvdXBl
clZpc2l0b3I6OnZpc2l0RE9NV3JhcHBlcik6CisgICAgICAgICogZG9tL0RPTUltcGxlbWVudGF0
aW9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRPTUltcGxlbWVudGF0aW9uOjpET01JbXBsZW1l
bnRhdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpET01JbXBsZW1lbnRhdGlvbjo6Y3JlYXRlRG9j
dW1lbnQpOgorICAgICAgICAqIGRvbS9ET01JbXBsZW1lbnRhdGlvbi5oOgorICAgICAgICAoV2Vi
Q29yZTo6RE9NSW1wbGVtZW50YXRpb246OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpET01J
bXBsZW1lbnRhdGlvbjo6ZG9jdW1lbnREZXN0cm95ZWQpOgorICAgICAgICAoV2ViQ29yZTo6RE9N
SW1wbGVtZW50YXRpb246OnBhcmVudERvY3VtZW50KToKKyAgICAgICAgKiBkb20vRE9NSW1wbGVt
ZW50YXRpb24uaWRsOgorICAgICAgICAqIGRvbS9Eb2N1bWVudC5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpEb2N1bWVudDo6fkRvY3VtZW50KToKKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50Ojpp
bXBsZW1lbnRhdGlvbik6CisgICAgICAgICogZG9tL0RvY3VtZW50Lmg6CisKIDIwMTEtMDItMTQg
IFJvbGFuZCBTdGVpbmVyICA8cm9sYW5kc3RlaW5lckBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAg
UmV2aWV3ZWQgYnkgS2VudCBUYW11cmEuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJD
b3JlLmd5cGkgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkKaW5kZXggZWI4MDE2Yzc5MDgz
NzJkNGZkZWFjNjhkZTQyMzFlNmY5OTU2OWRhOS4uMjFhZjQ3ODM5ZDUzZTNkNTg2ZDQ1MjRkZjYw
MDI0MGRhMWYxNzA4MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpCisr
KyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQpAQCAtNjE2LDYgKzYxNiw3IEBACiAgICAg
ICAgICAgICAnYmluZGluZ3MvanMvSlNET01CaW5kaW5nLmgnLAogICAgICAgICAgICAgJ2JpbmRp
bmdzL2pzL0pTRE9NR2xvYmFsT2JqZWN0LmNwcCcsCiAgICAgICAgICAgICAnYmluZGluZ3MvanMv
SlNET01HbG9iYWxPYmplY3QuaCcsCisgICAgICAgICAgICAnYmluZGluZ3MvanMvSlNET01JbXBs
ZW1lbnRhdGlvbkN1c3RvbS5jcHAnLAogICAgICAgICAgICAgJ2JpbmRpbmdzL2pzL0pTRE9NU3Ry
aW5nTWFwQ3VzdG9tLmNwcCcsCiAgICAgICAgICAgICAnYmluZGluZ3MvanMvSlNET01TdHJpbmdN
YXBDdXN0b20uaCcsCiAgICAgICAgICAgICAnYmluZGluZ3MvanMvSlNET01XaW5kb3dCYXNlLmNw
cCcsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnBybyBiL1NvdXJjZS9XZWJD
b3JlL1dlYkNvcmUucHJvCmluZGV4IDc0OGMwMzI2M2EwNTM4ZGZjYzdjMGNlODBiMDBkMzU4Nzdh
ZjJkMWEuLjk0ZjZjYTVlMjdiNTUyZThjMjYxZGNjYWI4ZmY5ZDQwMmRhNTViNTMgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUucHJvCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNv
cmUucHJvCkBAIC0xNTI2LDYgKzE1MjYsNyBAQCB2OCB7CiAgICAgICAgIGJpbmRpbmdzL2pzL0pT
Q3VzdG9tWFBhdGhOU1Jlc29sdmVyLmggXAogICAgICAgICBiaW5kaW5ncy9qcy9KU0RPTUJpbmRp
bmcuaCBcCiAgICAgICAgIGJpbmRpbmdzL2pzL0pTRE9NR2xvYmFsT2JqZWN0LmggXAorICAgICAg
ICBiaW5kaW5ncy9qcy9KU0RPTUltcGxlbWVudGF0aW9uQ3VzdG9tLmggXAogICAgICAgICBiaW5k
aW5ncy9qcy9KU0RPTVN0cmluZ01hcEN1c3RvbS5oIFwKICAgICAgICAgYmluZGluZ3MvanMvSlNE
T01XaW5kb3dCYXNlLmggXAogICAgICAgICBiaW5kaW5ncy9qcy9KU0RPTVdpbmRvd0N1c3RvbS5o
IFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNw
cm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2oKaW5kZXgg
MmE4ZjM0MGE2OTQ5NzA1NzJmYzlhNTUwMDQ4YmYzODNhZmM5ZThiNC4uNTFkNWM2YmU0ZDExYTI1
YmY0MmE3ODMyYWY1ZjM4MjhmYTI1MTZiYiAxMDA3NTUKLS0tIGEvU291cmNlL1dlYkNvcmUvV2Vi
Q29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2oKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52
Y3Byb2ovV2ViQ29yZS52Y3Byb2oKQEAgLTU4MDY5LDYgKzU4MDY5LDU4IEBACiAJCQkJCT4KIAkJ
CQk8L0ZpbGU+CiAJCQkJPEZpbGUKKwkJCQkJUmVsYXRpdmVQYXRoPSIuLlxiaW5kaW5nc1xqc1xK
U0RPTUltcGxlbWVudGF0aW9uQ3VzdG9tLmNwcCIKKwkJCQkJPgorCQkJCQk8RmlsZUNvbmZpZ3Vy
YXRpb24KKwkJCQkJCU5hbWU9IkRlYnVnfFdpbjMyIgorCQkJCQkJRXhjbHVkZWRGcm9tQnVpbGQ9
InRydWUiCisJCQkJCQk+CisJCQkJCQk8VG9vbAorCQkJCQkJCU5hbWU9IlZDQ0xDb21waWxlclRv
b2wiCisJCQkJCQkvPgorCQkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPgorCQkJCQk8RmlsZUNvbmZp
Z3VyYXRpb24KKwkJCQkJCU5hbWU9IlJlbGVhc2V8V2luMzIiCisJCQkJCQlFeGNsdWRlZEZyb21C
dWlsZD0idHJ1ZSIKKwkJCQkJCT4KKwkJCQkJCTxUb29sCisJCQkJCQkJTmFtZT0iVkNDTENvbXBp
bGVyVG9vbCIKKwkJCQkJCS8+CisJCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+CisJCQkJCTxGaWxl
Q29uZmlndXJhdGlvbgorCQkJCQkJTmFtZT0iRGVidWdfQ2Fpcm9fQ0ZMaXRlfFdpbjMyIgorCQkJ
CQkJRXhjbHVkZWRGcm9tQnVpbGQ9InRydWUiCisJCQkJCQk+CisJCQkJCQk8VG9vbAorCQkJCQkJ
CU5hbWU9IlZDQ0xDb21waWxlclRvb2wiCisJCQkJCQkvPgorCQkJCQk8L0ZpbGVDb25maWd1cmF0
aW9uPgorCQkJCQk8RmlsZUNvbmZpZ3VyYXRpb24KKwkJCQkJCU5hbWU9IlJlbGVhc2VfQ2Fpcm9f
Q0ZMaXRlfFdpbjMyIgorCQkJCQkJRXhjbHVkZWRGcm9tQnVpbGQ9InRydWUiCisJCQkJCQk+CisJ
CQkJCQk8VG9vbAorCQkJCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiCisJCQkJCQkvPgorCQkJ
CQk8L0ZpbGVDb25maWd1cmF0aW9uPgorCQkJCQk8RmlsZUNvbmZpZ3VyYXRpb24KKwkJCQkJCU5h
bWU9IkRlYnVnX0FsbHxXaW4zMiIKKwkJCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIgorCQkJ
CQkJPgorCQkJCQkJPFRvb2wKKwkJCQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIgorCQkJCQkJ
Lz4KKwkJCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4KKwkJCQkJPEZpbGVDb25maWd1cmF0aW9uCisJ
CQkJCQlOYW1lPSJSZWxlYXNlX0xUQ0d8V2luMzIiCisJCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0i
dHJ1ZSIKKwkJCQkJCT4KKwkJCQkJCTxUb29sCisJCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9v
bCIKKwkJCQkJCS8+CisJCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+CisJCQkJPC9GaWxlPgorCQkJ
CTxGaWxlCiAJCQkJCVJlbGF0aXZlUGF0aD0iLi5cYmluZGluZ3NcanNcSlNET01NaW1lVHlwZUFy
cmF5Q3VzdG9tLmNwcCIKIAkJCQkJPgogCQkJCQk8RmlsZUNvbmZpZ3VyYXRpb24KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1Nv
dXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCBmYzE3
OTI3MGE0OTRlN2QyM2M1MzI2NTRmZWEzYWY0M2I2OGViZTA2Li4wZjFjN2FlNjJiZjZmMzdjODBh
MWJhZWFhMzA4ZTNhZmRjZDk1ZmQ5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3Jl
Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54
Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC02NTIsNiArNjUyLDcgQEAKIAkJMUNGQUUzMjMw
QTZENkEzRjAwMzI1OTNEIC8qIGxpYm9iamMuZHlsaWIgaW4gRnJhbWV3b3JrcyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxQ0ZBRTMyMjBBNkQ2QTNGMDAzMjU5M0QgLyogbGli
b2JqYy5keWxpYiAqLzsgfTsKIAkJMjBENjI5MjYxMjUzNjkwQjAwMDgxNTQzIC8qIEluc3BlY3Rv
ckluc3RydW1lbnRhdGlvbi5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSAyMEQ2MjkyNDEyNTM2OTBCMDAwODE1NDMgLyogSW5zcGVjdG9ySW5zdHJ1bWVu
dGF0aW9uLmNwcCAqLzsgfTsKIAkJMjBENjI5MjcxMjUzNjkwQjAwMDgxNTQzIC8qIEluc3BlY3Rv
ckluc3RydW1lbnRhdGlvbi5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gMjBENjI5MjUxMjUzNjkwQjAwMDgxNTQzIC8qIEluc3BlY3Rvckluc3RydW1lbnRh
dGlvbi5oICovOyB9OworCQkyMjg4NUU2NDEzMDFBRTRDMDA1MjZFNjggLyogSlNET01JbXBsZW1l
bnRhdGlvbkN1c3RvbS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSAyMjg4NUU2MzEzMDFBRTRDMDA1MjZFNjggLyogSlNET01JbXBsZW1lbnRhdGlvbkN1
c3RvbS5jcHAgKi87IH07CiAJCTIyOEMyODQ1MTBEODI1MDAwMDlEMEQwRSAvKiBTY3JpcHRXcmFw
cGFibGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDIy
OEMyODQ0MTBEODI1MDAwMDlEMEQwRSAvKiBTY3JpcHRXcmFwcGFibGUuaCAqLzsgc2V0dGluZ3Mg
PSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQkyNEY1NEVBQzEwMUZFOTE0MDAw
QUU3NDEgLyogQXBwbGljYXRpb25DYWNoZUhvc3QuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMjRGNTRFQUExMDFGRTkxNDAwMEFFNzQxIC8qIEFwcGxp
Y2F0aW9uQ2FjaGVIb3N0LmNwcCAqLzsgfTsKIAkJMjRGNTRFQUQxMDFGRTkxNDAwMEFFNzQxIC8q
IEFwcGxpY2F0aW9uQ2FjaGVIb3N0LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSAyNEY1NEVBQjEwMUZFOTE0MDAwQUU3NDEgLyogQXBwbGljYXRpb25DYWNo
ZUhvc3QuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9ICgpOyB9OyB9OwpAQCAtNzAwMCw2
ICs3MDAxLDcgQEAKIAkJMUNGQUUzMjIwQTZENkEzRjAwMzI1OTNEIC8qIGxpYm9iamMuZHlsaWIg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSAiY29tcGls
ZWQubWFjaC1vLmR5bGliIjsgbmFtZSA9IGxpYm9iamMuZHlsaWI7IHBhdGggPSAvdXNyL2xpYi9s
aWJvYmpjLmR5bGliOyBzb3VyY2VUcmVlID0gIjxhYnNvbHV0ZT4iOyB9OwogCQkyMEQ2MjkyNDEy
NTM2OTBCMDAwODE1NDMgLyogSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uLmNwcCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEluc3BlY3Rvckluc3RydW1lbnRhdGlvbi5jcHA7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTIwRDYyOTI1MTI1MzY5MEIwMDA4MTU0MyAv
KiBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb24uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CisJCTIyODg1RTYzMTMwMUFFNEMwMDUyNkU2OCAvKiBKU0RPTUltcGxlbWVudGF0aW9uQ3Vz
dG9tLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IEpTRE9NSW1wbGVt
ZW50YXRpb25DdXN0b20uY3BwOyBwYXRoID0gYmluZGluZ3MvanMvSlNET01JbXBsZW1lbnRhdGlv
bkN1c3RvbS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTIyOEMyODQ0MTBEODI1
MDAwMDlEMEQwRSAvKiBTY3JpcHRXcmFwcGFibGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gU2NyaXB0V3JhcHBhYmxlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CTI0NDJCQkY4MTE5NEM5RDMwMEQ0OTQ2OSAvKiBIYXNoQ2hhbmdlRXZlbnQuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSGFzaENoYW5nZUV2ZW50Lmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCTI0RjU0RUFBMTAxRkU5MTQwMDBBRTc0MSAvKiBBcHBsaWNhdGlvbkNh
Y2hlSG9zdC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBBcHBsaWNh
dGlvbkNhY2hlSG9zdC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xMjQxMCw2
ICsxMjQxMiw3IEBACiAJCTA4NjdENjkxRkU4NDAyOEZDMDJBQUMwNyAvKiBXZWJLaXQgKi8gPSB7
CiAJCQlpc2EgPSBQQlhHcm91cDsKIAkJCWNoaWxkcmVuID0gKAorCQkJCTIyODg1RTYzMTMwMUFF
NEMwMDUyNkU2OCAvKiBKU0RPTUltcGxlbWVudGF0aW9uQ3VzdG9tLmNwcCAqLywKIAkJCQk2NUM5
N0FGMjA4RUE5MDg4MDBBQ0QyNzMgLyogY29uZmlnLmggKi8sCiAJCQkJRURFQzk4MDIwQUVEN0Ux
NzAwNTkxMzdGIC8qIFdlYkNvcmVQcmVmaXguaCAqLywKIAkJCQk5MzA3MDYxMzA5RTBDQTgyMDBC
MTdGRTQgLyogRGVyaXZlZFNvdXJjZXMubWFrZSAqLywKQEAgLTIyNTE5LDcgKzIyNTIyLDYgQEAK
IAkJCWlzYSA9IFBCWFByb2plY3Q7CiAJCQlidWlsZENvbmZpZ3VyYXRpb25MaXN0ID0gMTQ5QzI4
NDMwODkwMkIxMTAwOEE5RUZDIC8qIEJ1aWxkIGNvbmZpZ3VyYXRpb24gbGlzdCBmb3IgUEJYUHJv
amVjdCAiV2ViQ29yZSIgKi87CiAJCQljb21wYXRpYmlsaXR5VmVyc2lvbiA9ICJYY29kZSAyLjQi
OwotCQkJZGV2ZWxvcG1lbnRSZWdpb24gPSBFbmdsaXNoOwogCQkJaGFzU2Nhbm5lZEZvckVuY29k
aW5ncyA9IDE7CiAJCQlrbm93blJlZ2lvbnMgPSAoCiAJCQkJRW5nbGlzaCwKQEAgLTI1MTQ4LDYg
KzI1MTUwLDcgQEAKIAkJCQlBMUUxMTU0NDEzMDE1QzNEMDA1NEFDOEMgLyogRGlzdGFudExpZ2h0
U291cmNlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUExRTExNTQ2MTMwMTVDNEUwMDU0QUM4QyAv
KiBQb2ludExpZ2h0U291cmNlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUExRTExNTQ4MTMwMTVD
NUQwMDU0QUM4QyAvKiBTcG90TGlnaHRTb3VyY2UuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJMjI4
ODVFNjQxMzAxQUU0QzAwNTI2RTY4IC8qIEpTRE9NSW1wbGVtZW50YXRpb25DdXN0b20uY3BwIGlu
IFNvdXJjZXMgKi8sCiAJCQkpOwogCQkJcnVuT25seUZvckRlcGxveW1lbnRQb3N0cHJvY2Vzc2lu
ZyA9IDA7CiAJCX07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0Jp
bmRpbmdzQWxsSW5PbmUuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNCaW5kaW5n
c0FsbEluT25lLmNwcAppbmRleCA3YzVlZGM2NDFlYjFjMmU4YWU2YzUxMTI4OTI5NGQzNjk2OTM4
N2E2Li42Yjg2ZTQ0MjIwMzZmYWI1MzEzZTRjODAwYjE4MDdiYjNiYTgyZmZjIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0JpbmRpbmdzQWxsSW5PbmUuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTQmluZGluZ3NBbGxJbk9uZS5jcHAKQEAgLTU2
LDYgKzU2LDcgQEAKICNpbmNsdWRlICJKU0RPTUJpbmRpbmcuY3BwIgogI2luY2x1ZGUgIkpTRE9N
Rm9ybURhdGFDdXN0b20uY3BwIgogI2luY2x1ZGUgIkpTRE9NR2xvYmFsT2JqZWN0LmNwcCIKKyNp
bmNsdWRlICJKU0RPTUltcGxlbWVudGF0aW9uQ3VzdG9tLmNwcCIKICNpbmNsdWRlICJKU0RPTU1p
bWVUeXBlQXJyYXlDdXN0b20uY3BwIgogI2luY2x1ZGUgIkpTRE9NUGx1Z2luQXJyYXlDdXN0b20u
Y3BwIgogI2luY2x1ZGUgIkpTRE9NUGx1Z2luQ3VzdG9tLmNwcCIKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NSW1wbGVtZW50YXRpb25DdXN0b20uY3BwIGIvU291
cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01JbXBsZW1lbnRhdGlvbkN1c3RvbS5jcHAKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uYWM4M2M2OTBhYjBhNmE3MGEwYmI0Y2RmMjI4ZmY3NjQ3NWYxODNjNAotLS0gL2Rl
di9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NSW1wbGVtZW50YXRp
b25DdXN0b20uY3BwCkBAIC0wLDAgKzEsNDIgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTEg
R29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQgbW9kaWZp
Y2F0aW9uLAorICogYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucyBhcmUgbWV0OgorICoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29k
ZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSwKKyAqIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKgorICogMi4gUmVk
aXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5
cmlnaHQgbm90aWNlLAorICogdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lciBpbiB0aGUgZG9jdW1lbnRhdGlvbgorICogIGFuZC9vciBvdGhlciBtYXRl
cmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdB
UkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyDigJxBUyBJ
U+KAnSBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLAorICogSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRB
QklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRQorICogQVJFIERJU0NM
QUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUyBC
RSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAorICogU1BFQ0lB
TCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SCisgKiBTRVJW
SUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQ
VElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLAorICog
V0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5H
IE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GCisgKiBU
SEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJ
VFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUg
IkpTRE9NSW1wbGVtZW50YXRpb24uaCIKKworI2luY2x1ZGUgIkRPTUltcGxlbWVudGF0aW9uLmgi
CisKK3VzaW5nIG5hbWVzcGFjZSBKU0M7CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKwordm9pZCBK
U0RPTUltcGxlbWVudGF0aW9uOjptYXJrQ2hpbGRyZW4oTWFya1N0YWNrJiBtYXJrU3RhY2spCit7
CisgICAgQmFzZTo6bWFya0NoaWxkcmVuKG1hcmtTdGFjayk7CisKKyAgICBET01JbXBsZW1lbnRh
dGlvbiogZG9tSW1wbGVtZW50YXRpb24gPSBpbXBsKCk7CisgICAgRG9jdW1lbnQqIG93bmVyRG9j
dW1lbnQgPSBkb21JbXBsZW1lbnRhdGlvbi0+b3duZXJEb2N1bWVudCgpOworICAgIGlmIChvd25l
ckRvY3VtZW50KQorICAgICAgICBtYXJrRE9NTm9kZVdyYXBwZXIobWFya1N0YWNrLCBvd25lckRv
Y3VtZW50LCBvd25lckRvY3VtZW50KTsKK30KKworfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMucG0gYi9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5wbQppbmRleCBkMjMwOWU5MjdmY2JhYWE4
NjczZmRjMjY5ZGIxOGZkOTcyMjA2YzY5Li43NDZhZWI4YjhkZmUwMDY2MGIwYjI0YTYzZTliMjQ5
NmJkN2FjODYxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0Nv
ZGVHZW5lcmF0b3JKUy5wbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0Nv
ZGVHZW5lcmF0b3JKUy5wbQpAQCAtMjc1Nyw3ICsyNzU3LDcgQEAgc3ViIEdlbmVyYXRlSGFzaFRh
YmxlCiAgICAgcHVzaChAaW1wbENvbnRlbnQsICJ9O1xuXG4iKTsKICAgICBwdXNoKEBpbXBsQ29u
dGVudCwgIiN1bmRlZiBUSFVOS19HRU5FUkFUT1JcbiIpOwogICAgIG15ICRjb21wYWN0U2l6ZU1h
c2sgPSAkbnVtRW50cmllcyAtIDE7Ci0gICAgcHVzaChAaW1wbENvbnRlbnQsICJzdGF0aWMgSlND
X0NPTlNUX0hBU0hUQUJMRSBIYXNoVGFibGUgJG5hbWUgPSB7ICRjb21wYWN0U2l6ZSwgJGNvbXBh
Y3RTaXplTWFzaywgJG5hbWVFbnRyaWVzLCAwIH07XG4iKTsKKyAgICBwdXNoKEBpbXBsQ29udGVu
dCwgInN0YXRpYyBKU0NfQ09OU1RfSEFTSFRBQkxFIEpTQzo6SGFzaFRhYmxlICRuYW1lID0geyAk
Y29tcGFjdFNpemUsICRjb21wYWN0U2l6ZU1hc2ssICRuYW1lRW50cmllcywgMCB9O1xuIik7CiB9
CiAKICMgSW50ZXJuYWwgaGVscGVyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy92OC9WOEdDQ29udHJvbGxlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9WOEdD
Q29udHJvbGxlci5jcHAKaW5kZXggZjFjZjIwNjcyZmZjZDc4NmEwMTI4NTJjNjZkMjU0M2QxOTE4
MDc1Zi4uYTM0ZGMyNDI1ZWJlN2Y3OTM1YmEwOTE4YjBjOGQyZGM3ODA3OThjMiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvVjhHQ0NvbnRyb2xsZXIuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1Y4R0NDb250cm9sbGVyLmNwcApAQCAtMjkwLDYgKzI5
MCw3IEBAIHB1YmxpYzoKICAgICAgICAgaWYgKG5vZGUtPmlzRG9jdW1lbnROb2RlKCkpIHsKICAg
ICAgICAgICAgIERvY3VtZW50KiBkb2N1bWVudCA9IHJlaW50ZXJwcmV0X2Nhc3Q8RG9jdW1lbnQq
Pihub2RlKTsKICAgICAgICAgICAgIGFkZERPTU9iamVjdFRvR3JvdXAoc3RvcmUsIGdyb3VwSWQs
IGRvY3VtZW50LT5zdHlsZVNoZWV0cygpKTsKKyAgICAgICAgICAgIGFkZERPTU9iamVjdFRvR3Jv
dXAoc3RvcmUsIGdyb3VwSWQsIGRvY3VtZW50LT5pbXBsZW1lbnRhdGlvbigpKTsKICAgICAgICAg
fQogCiAgICAgICAgIFdyYXBwZXJUeXBlSW5mbyogdHlwZUluZm8gPSBWOERPTVdyYXBwZXI6OmRv
bVdyYXBwZXJUeXBlKHdyYXBwZXIpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0RP
TUltcGxlbWVudGF0aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9ET01JbXBsZW1lbnRhdGlv
bi5jcHAKaW5kZXggMzBlODg5ZjhjMWYyYWNmZmYwNWE1OTVlMTI1MzY0ZTQ1MjgyMWRkYi4uM2Jh
MTEzNzMzODdiM2U3MTM2NDhhNDk1OTZjOWMxMDUwNzZjN2IxMiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvZG9tL0RPTUltcGxlbWVudGF0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9k
b20vRE9NSW1wbGVtZW50YXRpb24uY3BwCkBAIC0xNzEsNiArMTcxLDEyIEBAIHN0YXRpYyBib29s
IGlzU1ZHMTFGZWF0dXJlKGNvbnN0IFN0cmluZyAmZmVhdHVyZSkKIH0KICNlbmRpZgogCitET01J
bXBsZW1lbnRhdGlvbjo6RE9NSW1wbGVtZW50YXRpb24oRG9jdW1lbnQqIG93bmVyRG9jdW1lbnQp
CisgICAgOiBtX293bmVyRG9jdW1lbnQob3duZXJEb2N1bWVudCkKK3sKKyAgICBBU1NFUlQobV9v
d25lckRvY3VtZW50KTsKK30KKwogYm9vbCBET01JbXBsZW1lbnRhdGlvbjo6aGFzRmVhdHVyZShj
b25zdCBTdHJpbmcmIGZlYXR1cmUsIGNvbnN0IFN0cmluZyYgdmVyc2lvbikKIHsKICAgICBTdHJp
bmcgbG93ZXIgPSBmZWF0dXJlLmxvd2VyKCk7CkBAIC0yNDAsNiArMjQ2LDEyIEBAIFBhc3NSZWZQ
dHI8RG9jdW1lbnQ+IERPTUltcGxlbWVudGF0aW9uOjpjcmVhdGVEb2N1bWVudChjb25zdCBTdHJp
bmcmIG5hbWVzcGFjZVVSCiAgICAgZWxzZQogICAgICAgICBkb2MgPSBEb2N1bWVudDo6Y3JlYXRl
KDAsIEtVUkwoKSk7CiAKKyAgICBpZiAoIW1fb3duZXJEb2N1bWVudCkgeworICAgICAgICBlYyA9
IElOVkFMSURfU1RBVEVfRVJSOworICAgICAgICByZXR1cm4gMDsKKyAgICB9CisgICAgZG9jLT5z
ZXRTZWN1cml0eU9yaWdpbihtX293bmVyRG9jdW1lbnQtPnNlY3VyaXR5T3JpZ2luKCkpOworCiAg
ICAgUmVmUHRyPE5vZGU+IGRvY3VtZW50RWxlbWVudDsKICAgICBpZiAoIXF1YWxpZmllZE5hbWUu
aXNFbXB0eSgpKSB7CiAgICAgICAgIGRvY3VtZW50RWxlbWVudCA9IGRvYy0+Y3JlYXRlRWxlbWVu
dE5TKG5hbWVzcGFjZVVSSSwgcXVhbGlmaWVkTmFtZSwgZWMpOwpAQCAtMzAwLDYgKzMxMiw5IEBA
IFBhc3NSZWZQdHI8SFRNTERvY3VtZW50PiBET01JbXBsZW1lbnRhdGlvbjo6Y3JlYXRlSFRNTERv
Y3VtZW50KGNvbnN0IFN0cmluZyYgdGl0CiAgICAgZC0+b3BlbigpOwogICAgIGQtPndyaXRlKCI8
IWRvY3R5cGUgaHRtbD48aHRtbD48Ym9keT48L2JvZHk+PC9odG1sPiIpOwogICAgIGQtPnNldFRp
dGxlKHRpdGxlKTsKKyAgICBBU1NFUlQobV9vd25lckRvY3VtZW50KTsKKyAgICBpZiAobV9vd25l
ckRvY3VtZW50KQorICAgICAgICBkLT5zZXRTZWN1cml0eU9yaWdpbihtX293bmVyRG9jdW1lbnQt
PnNlY3VyaXR5T3JpZ2luKCkpOwogICAgIHJldHVybiBkLnJlbGVhc2UoKTsKIH0KIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0RPTUltcGxlbWVudGF0aW9uLmggYi9Tb3VyY2UvV2Vi
Q29yZS9kb20vRE9NSW1wbGVtZW50YXRpb24uaAppbmRleCBhMjBmN2QyM2UxNGFmMzMyYTkxZDEz
MWQwZDA1MDUxZTg4OWI2MWVkLi40ZWFkYmEzZjc0ZGRmNmQwZGQ2OTdhNjBiYjc4MmZkNjk0NTA5
ZGFiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRE9NSW1wbGVtZW50YXRpb24uaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRE9NSW1wbGVtZW50YXRpb24uaApAQCAtNDEsMTIgKzQx
LDEyIEBAIHR5cGVkZWYgaW50IEV4Y2VwdGlvbkNvZGU7CiAKIGNsYXNzIERPTUltcGxlbWVudGF0
aW9uIDogcHVibGljIFJlZkNvdW50ZWQ8RE9NSW1wbGVtZW50YXRpb24+IHsKIHB1YmxpYzoKLSAg
ICBzdGF0aWMgUGFzc1JlZlB0cjxET01JbXBsZW1lbnRhdGlvbj4gY3JlYXRlKCkgeyByZXR1cm4g
YWRvcHRSZWYobmV3IERPTUltcGxlbWVudGF0aW9uKTsgfQorICAgIHN0YXRpYyBQYXNzUmVmUHRy
PERPTUltcGxlbWVudGF0aW9uPiBjcmVhdGUoRG9jdW1lbnQqIG93bmVyRG9jdW1lbnQpIHsgcmV0
dXJuIGFkb3B0UmVmKG5ldyBET01JbXBsZW1lbnRhdGlvbihvd25lckRvY3VtZW50KSk7IH0KIAog
ICAgIC8vIERPTSBtZXRob2RzICYgYXR0cmlidXRlcyBmb3IgRE9NSW1wbGVtZW50YXRpb24KICAg
ICBzdGF0aWMgYm9vbCBoYXNGZWF0dXJlKGNvbnN0IFN0cmluZyYgZmVhdHVyZSwgY29uc3QgU3Ry
aW5nJiB2ZXJzaW9uKTsKLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxEb2N1bWVudFR5cGU+IGNyZWF0
ZURvY3VtZW50VHlwZShjb25zdCBTdHJpbmcmIHF1YWxpZmllZE5hbWUsIGNvbnN0IFN0cmluZyYg
cHVibGljSWQsIGNvbnN0IFN0cmluZyAmc3lzdGVtSWQsIEV4Y2VwdGlvbkNvZGUmKTsKLSAgICBz
dGF0aWMgUGFzc1JlZlB0cjxEb2N1bWVudD4gY3JlYXRlRG9jdW1lbnQoY29uc3QgU3RyaW5nJiBu
YW1lc3BhY2VVUkksIGNvbnN0IFN0cmluZyYgcXVhbGlmaWVkTmFtZSwgRG9jdW1lbnRUeXBlKiwg
RXhjZXB0aW9uQ29kZSYpOworICAgIFBhc3NSZWZQdHI8RG9jdW1lbnRUeXBlPiBjcmVhdGVEb2N1
bWVudFR5cGUoY29uc3QgU3RyaW5nJiBxdWFsaWZpZWROYW1lLCBjb25zdCBTdHJpbmcmIHB1Ymxp
Y0lkLCBjb25zdCBTdHJpbmcmIHN5c3RlbUlkLCBFeGNlcHRpb25Db2RlJik7CisgICAgUGFzc1Jl
ZlB0cjxEb2N1bWVudD4gY3JlYXRlRG9jdW1lbnQoY29uc3QgU3RyaW5nJiBuYW1lc3BhY2VVUkks
IGNvbnN0IFN0cmluZyYgcXVhbGlmaWVkTmFtZSwgRG9jdW1lbnRUeXBlKiwgRXhjZXB0aW9uQ29k
ZSYpOwogCiAgICAgRE9NSW1wbGVtZW50YXRpb24qIGdldEludGVyZmFjZShjb25zdCBTdHJpbmcm
IGZlYXR1cmUpOwogCkBAIC01NCw3ICs1NCw3IEBAIHB1YmxpYzoKICAgICBzdGF0aWMgUGFzc1Jl
ZlB0cjxDU1NTdHlsZVNoZWV0PiBjcmVhdGVDU1NTdHlsZVNoZWV0KGNvbnN0IFN0cmluZyYgdGl0
bGUsIGNvbnN0IFN0cmluZyYgbWVkaWEsIEV4Y2VwdGlvbkNvZGUmKTsKIAogICAgIC8vIEZyb20g
dGhlIEhUTUxET01JbXBsZW1lbnRhdGlvbiBpbnRlcmZhY2UKLSAgICBzdGF0aWMgUGFzc1JlZlB0
cjxIVE1MRG9jdW1lbnQ+IGNyZWF0ZUhUTUxEb2N1bWVudChjb25zdCBTdHJpbmcmIHRpdGxlKTsK
KyAgICBQYXNzUmVmUHRyPEhUTUxEb2N1bWVudD4gY3JlYXRlSFRNTERvY3VtZW50KGNvbnN0IFN0
cmluZyYgdGl0bGUpOwogCiAgICAgLy8gT3RoZXIgbWV0aG9kcyAobm90IHBhcnQgb2YgRE9NKQog
ICAgIHN0YXRpYyBQYXNzUmVmUHRyPERvY3VtZW50PiBjcmVhdGVEb2N1bWVudChjb25zdCBTdHJp
bmcmIE1JTUVUeXBlLCBGcmFtZSosIGNvbnN0IEtVUkwmLCBib29sIGluVmlld1NvdXJjZU1vZGUp
OwpAQCAtNjIsOCArNjIsMTMgQEAgcHVibGljOgogICAgIHN0YXRpYyBib29sIGlzWE1MTUlNRVR5
cGUoY29uc3QgU3RyaW5nJiBNSU1FVHlwZSk7CiAgICAgc3RhdGljIGJvb2wgaXNUZXh0TUlNRVR5
cGUoY29uc3QgU3RyaW5nJiBNSU1FVHlwZSk7CiAKKyAgICBEb2N1bWVudCogb3duZXJEb2N1bWVu
dCgpIHsgcmV0dXJuIG1fb3duZXJEb2N1bWVudDsgfQorICAgIHZvaWQgb3duZXJEb2N1bWVudERl
c3Ryb3llZCgpIHsgbV9vd25lckRvY3VtZW50ID0gMDsgfQorCiBwcml2YXRlOgotICAgIERPTUlt
cGxlbWVudGF0aW9uKCkgeyB9CisgICAgRE9NSW1wbGVtZW50YXRpb24oRG9jdW1lbnQqIG93bmVy
RG9jdW1lbnQpOworCisgICAgRG9jdW1lbnQqIG1fb3duZXJEb2N1bWVudDsKIH07CiAKIH0gLy9u
YW1lc3BhY2UKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9ET01JbXBsZW1lbnRhdGlv
bi5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRE9NSW1wbGVtZW50YXRpb24uaWRsCmluZGV4IDgx
ZGY2Yzg4MDhiZmQzZjk2NTNmZTBhYzU3YzM2ODY2N2Y3YTJkZTEuLjg0MjAyODFiMTQ3YjgwZDFm
YmNmOThiMzcyYTIxNjhiOWFhMWI4MzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9E
T01JbXBsZW1lbnRhdGlvbi5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0RPTUltcGxlbWVu
dGF0aW9uLmlkbApAQCAtMjAsNyArMjAsOSBAQAogCiBtb2R1bGUgY29yZSB7CiAKLSAgICBpbnRl
cmZhY2UgRE9NSW1wbGVtZW50YXRpb24geworICAgIGludGVyZmFjZSBbCisgICAgICAgIEN1c3Rv
bU1hcmtGdW5jdGlvbgorICAgIF0gRE9NSW1wbGVtZW50YXRpb24gewogCiAgICAgICAgIC8vIERP
TSBMZXZlbCAxCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCmluZGV4IGIzNmZmZjA2NDkyMDBmMDIy
N2JiNWJjZTcyOGViZmNhNTljN2U2ZTUuLjBlYTEyMmI0YWIzYjA4NGYwYjAyMzc1NDAxOWVjYjdk
ODk4YWM5MDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcApAQCAtNjA0LDYgKzYwNCw5IEBAIERv
Y3VtZW50Ojp+RG9jdW1lbnQoKQogCiAgICAgaWYgKG1fbWVkaWFRdWVyeU1hdGNoZXIpCiAgICAg
ICAgIG1fbWVkaWFRdWVyeU1hdGNoZXItPmRvY3VtZW50RGVzdHJveWVkKCk7CisKKyAgICBpZiAo
bV9pbXBsZW1lbnRhdGlvbikKKyAgICAgICAgbV9pbXBsZW1lbnRhdGlvbi0+b3duZXJEb2N1bWVu
dERlc3Ryb3llZCgpOwogfQogCiBNZWRpYVF1ZXJ5TWF0Y2hlciogRG9jdW1lbnQ6Om1lZGlhUXVl
cnlNYXRjaGVyKCkKQEAgLTY4NSwxMCArNjg4LDEwIEBAIHZvaWQgRG9jdW1lbnQ6OnNldERvY1R5
cGUoUGFzc1JlZlB0cjxEb2N1bWVudFR5cGU+IGRvY1R5cGUpCiAgICAgICAgIG1fZG9jVHlwZS0+
c2V0RG9jdW1lbnQodGhpcyk7CiB9CiAKLURPTUltcGxlbWVudGF0aW9uKiBEb2N1bWVudDo6aW1w
bGVtZW50YXRpb24oKSBjb25zdAorRE9NSW1wbGVtZW50YXRpb24qIERvY3VtZW50OjppbXBsZW1l
bnRhdGlvbigpCiB7CiAgICAgaWYgKCFtX2ltcGxlbWVudGF0aW9uKQotICAgICAgICBtX2ltcGxl
bWVudGF0aW9uID0gRE9NSW1wbGVtZW50YXRpb246OmNyZWF0ZSgpOworICAgICAgICBtX2ltcGxl
bWVudGF0aW9uID0gRE9NSW1wbGVtZW50YXRpb246OmNyZWF0ZSh0aGlzKTsKICAgICByZXR1cm4g
bV9pbXBsZW1lbnRhdGlvbi5nZXQoKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
ZG9tL0RvY3VtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaAppbmRleCAzOTg1
YjUzMjg3YjFkYjQ3N2JlMmIwZjQyYmI2NTI2YTU4NWYxYzE0Li5lMDQ5MDIyOGU2YjgwNWNiYjU3
MjBhNmZhODU3YmFmNTNmY2ZlMGI0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9j
dW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaApAQCAtMzA0LDcgKzMw
NCw3IEBAIHB1YmxpYzoKIAogICAgIERvY3VtZW50VHlwZSogZG9jdHlwZSgpIGNvbnN0IHsgcmV0
dXJuIG1fZG9jVHlwZS5nZXQoKTsgfQogCi0gICAgRE9NSW1wbGVtZW50YXRpb24qIGltcGxlbWVu
dGF0aW9uKCkgY29uc3Q7CisgICAgRE9NSW1wbGVtZW50YXRpb24qIGltcGxlbWVudGF0aW9uKCk7
CiAgICAgCiAgICAgRWxlbWVudCogZG9jdW1lbnRFbGVtZW50KCkgY29uc3QKICAgICB7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>82646</attachid>
            <date>2011-02-16 08:50:16 -0800</date>
            <delta_ts>2011-02-17 09:15:23 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-53611-20110216195014.patch</filename>
            <type>text/plain</type>
            <size>22558</size>
            <attacher name="anton muhin">antonm</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogNzg2OTUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5n
ZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCA3NmE2Mjc2Yzc4OTZhZWMwODQ4MTUw
N2QzN2M2NzJhMTQzNmExZWNhLi4xYTliMmNmODYwNzUzYzVlZWJmN2IyMmRjMmEyNTcxMDM1OWYw
ZmRjIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAKKzIwMTEtMDItMDggIEFudG9uIE11aGluICA8YW50
b25tQGNocm9taXVtLm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICBQcm9wYWdhdGUgc2VjdXJpdHkgb3JpZ2luIG9mIHBhcmVudCBkb2N1bWVudCBp
bnRvIEhUTUwgZG9jdW1lbnRzIGNyZWF0ZWQgd2l0aCBET01JbXBsZW1lbnRhdGlvbgorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTM2MTEKKworICAgICAg
ICBBZGRpdGlvbmFsIHRlc3Qgd2hpY2ggY2hlY2tzIGNhc2Ugd2hlbiBwYXJlbnQgZG9jdW1lbnQg
Y2FuIGJlIGNvbGxlY3RlZCB3aGlsZQorICAgICAgICBpdHMgaW1wbGVtZW50YXRpb24gaXMgYWxp
dmUuCisKKyAgICAgICAgKiBmYXN0L2RvbS9nYy05Lmh0bWw6CisKIDIwMTEtMDItMTYgIFBoaWxp
cHBlIE5vcm1hbmQgIDxwbm9ybWFuZEBpZ2FsaWEuY29tPgogCiAgICAgICAgIFVucmV2aWV3ZWQs
IHJlYmFzZWxpbmUgdGVzdCBhZnRlciByNzg2OTAuCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9m
YXN0L2RvbS9nYy05Lmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9nYy05Lmh0bWwKaW5kZXgg
MmJjMjVhZDNlZjhhNDg0ZjIzNzI3NTRiNjhhMjQ3MWE1ZTVmNGM0NS4uM2VkYTNhZTM0MTE5MWIy
MGFlNzIyNGU2YjZiYzdlYTE2YjMwNzVhNyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9k
b20vZ2MtOS5odG1sCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL2djLTkuaHRtbApAQCAtODMs
NiArODMsMTMgQEAgZnVuY3Rpb24gdGVzdEV2ZW50cygpCiAgICAgfQogfQogCitmdW5jdGlvbiB0
ZXN0RE9NSW1wbGVtZW50YXRpb24oKQoreworICB2YXIgaW1wbCA9IGRvY3VtZW50LmltcGxlbWVu
dGF0aW9uLmNyZWF0ZUhUTUxEb2N1bWVudCgnJykuaW1wbGVtZW50YXRpb247CisgIGdjKCk7Cisg
IGltcGwuY3JlYXRlSFRNTERvY3VtZW50KCcnKTsgIC8vIE1heSBjcmFzaCBvciB0aHJvdyBhbiBl
eGNlcHRpb24gaWYgd2UgY29sbGVjdCBwYXJlbnQgZG9jdW1lbnQgb2YgaW1wbC4KK30KKwogZnVu
Y3Rpb24gdGVzdCgpIAogewogICAgIGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCkBA
IC05Nyw2ICsxMDQsNyBAQCBmdW5jdGlvbiB0ZXN0KCkKICAgICB0ZXN0UHJvcGVydGllc0FnYWlu
KCk7CiAKICAgICB0ZXN0RXZlbnRzKCk7CisgICAgdGVzdERPTUltcGxlbWVudGF0aW9uKCk7CiB9
CiAKIC8vIEJ5IGRlZmF1bHQsIHdlIGV4cGVjdCB0aGF0IGN1c3RvbSBwcm9wZXJ0aWVzIGFyZSBu
b3QgYWxsb3dlZC4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0FuZHJvaWQuanNjYmluZGlu
Z3MubWsgYi9Tb3VyY2UvV2ViQ29yZS9BbmRyb2lkLmpzY2JpbmRpbmdzLm1rCmluZGV4IGM2NzFh
ZDkyNjlmZmQwYTk2YzUyYzYxZDEyZTY1YmM4MDkxNTgxZDkuLmJmYTY3YThkMWMyMDFkZWU0ZTU1
OTg0MmE0OGI0NzUzMjIxMDUzMzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0FuZHJvaWQu
anNjYmluZGluZ3MubWsKKysrIGIvU291cmNlL1dlYkNvcmUvQW5kcm9pZC5qc2NiaW5kaW5ncy5t
awpAQCAtODcsNiArODcsNyBAQCBMT0NBTF9TUkNfRklMRVMgKz0gXAogCWJpbmRpbmdzL2pzL0pT
RE9NQmluZGluZy5jcHAgXAogCWJpbmRpbmdzL2pzL0pTRE9NRm9ybURhdGFDdXN0b20uY3BwIFwK
IAliaW5kaW5ncy9qcy9KU0RPTUdsb2JhbE9iamVjdC5jcHAgXAorCWJpbmRpbmdzL2pzL0pTRE9N
SW1wbGVtZW50YXRpb25DdXN0b20uY3BwIFwKIAliaW5kaW5ncy9qcy9KU0RPTVNldHRhYmxlVG9r
ZW5MaXN0LmNwcCBcCiAJYmluZGluZ3MvanMvSlNET01Ub2tlbkxpc3QuY3BwIFwKIAliaW5kaW5n
cy9qcy9KU0RPTVdpbmRvd0Jhc2UuY3BwIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NN
YWtlTGlzdHMudHh0IGIvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKaW5kZXggYzBhMmM0
ZTlmZTQzNzE4ZTgyOTRjZjA2YzI0MmM5ZjA5ODI3NTJhMS4uNjNhMTNkMGQ0NmNkMGMzZmVmYmU1
OTY1YzY2NjE3NzNjN2Y0NzlhZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0
cy50eHQKKysrIGIvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKQEAgLTQ4Myw2ICs0ODMs
NyBAQCBTRVQoV2ViQ29yZV9TT1VSQ0VTCiAgICAgYmluZGluZ3MvanMvSlNET01CaW5kaW5nLmNw
cAogICAgIGJpbmRpbmdzL2pzL0pTRE9NRm9ybURhdGFDdXN0b20uY3BwCiAgICAgYmluZGluZ3Mv
anMvSlNET01HbG9iYWxPYmplY3QuY3BwCisgICAgYmluZGluZ3MvanMvSlNET01JbXBsZW1lbnRh
dGlvbkN1c3RvbS5jcHAKICAgICBiaW5kaW5ncy9qcy9KU0RPTU1pbWVUeXBlQXJyYXlDdXN0b20u
Y3BwCiAgICAgYmluZGluZ3MvanMvSlNET01QbHVnaW5BcnJheUN1c3RvbS5jcHAKICAgICBiaW5k
aW5ncy9qcy9KU0RPTVBsdWdpbkN1c3RvbS5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCAyMmZkNTYyMmU5NDJl
ZDA4Mzc4MjExM2UwMWJkODlmNTAyOTIxOTdlLi4zNTFhMTMwMjk2YjRhOWYxZDA3YjI0ZDNmYmZl
NDkxYzJhNzBiZjQ3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIv
U291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzkgQEAKKzIwMTEtMDItMDggIEFu
dG9uIE11aGluICA8YW50b25tQGNocm9taXVtLm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICBQcm9wYWdhdGUgc2VjdXJpdHkgb3JpZ2luIG9mIHBh
cmVudCBkb2N1bWVudCBpbnRvIEhUTUwgZG9jdW1lbnRzIGNyZWF0ZWQgd2l0aCBET01JbXBsZW1l
bnRhdGlvbgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
NTM2MTEKKworICAgICAgICBUaGlzIHJlc3RvcmVzIGludmFyaWFudCB0aGF0IEpTIHdyYXBwZXJz
IHJlc2lkaW5nIGluIHRoZSBzYW1lIEpTIGNvbnRleHQgc2hvdWxkIGNvbWUKKyAgICAgICAgZnJv
bSB0aGUgc2FtZSBzZWN1cml0eSBvcmlnaW4uCisKKyAgICAgICAgQWJzZW5jZSBvZiByZWdyZXNz
aW9ucyBpcyBjb3ZlcmVkIGJ5IHRoZSBjdXJyZW50IHRlc3RzLiAgRGlmZmVyZW50IHNlY3VyaXR5
IG9yaWdpbiBvZgorICAgICAgICBET01JbXBsZW1lbnRhdGlvbiBpcyBkaWZmaWN1bHQgdG8gY2hl
Y2sgd2l0aCBsYXlvdXQgdGVzdHMgYXMgRE9NSW1wbGVtZW50YXRpb24KKyAgICAgICAgcmVzaWRl
cyBpbiB0aGUgc2FtZSBKUyBjb250ZXh0IGFzIHBhcmVudCBkb2N1bWVudCBhbmQgdGhlcmVmb3Jl
IHRoZXJlIGFyZSBubyBzZWN1cml0eSBvcmlnaW4gY2hlY2tzLgorICAgICAgICBUaGlzIGlzIG9i
c2VydmFibGUgaG93ZXZlciBpbiBDKysuCisKKyAgICAgICAgKiBBbmRyb2lkLmpzY2JpbmRpbmdz
Lm1rOgorICAgICAgICAqIENNYWtlTGlzdHMudHh0OgorICAgICAgICAqIFdlYkNvcmUuZ3lwaToK
KyAgICAgICAgKiBXZWJDb3JlLnBybzoKKyAgICAgICAgKiBXZWJDb3JlLnZjcHJvai9XZWJDb3Jl
LnZjcHJvajoKKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6Cisg
ICAgICAgICogYmluZGluZ3MvdjgvVjhHQ0NvbnRyb2xsZXIuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6Tm9kZUdyb3VwZXJWaXNpdG9yOjp2aXNpdERPTVdyYXBwZXIpOgorICAgICAgICAqIGRvbS9E
T01JbXBsZW1lbnRhdGlvbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpET01JbXBsZW1lbnRhdGlv
bjo6RE9NSW1wbGVtZW50YXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6RE9NSW1wbGVtZW50YXRp
b246OmNyZWF0ZURvY3VtZW50KToKKyAgICAgICAgKiBkb20vRE9NSW1wbGVtZW50YXRpb24uaDoK
KyAgICAgICAgKFdlYkNvcmU6OkRPTUltcGxlbWVudGF0aW9uOjpjcmVhdGUpOgorICAgICAgICAo
V2ViQ29yZTo6RE9NSW1wbGVtZW50YXRpb246OmRvY3VtZW50RGVzdHJveWVkKToKKyAgICAgICAg
KFdlYkNvcmU6OkRPTUltcGxlbWVudGF0aW9uOjpwYXJlbnREb2N1bWVudCk6CisgICAgICAgICog
ZG9tL0RPTUltcGxlbWVudGF0aW9uLmlkbDoKKyAgICAgICAgKiBkb20vRG9jdW1lbnQuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnQ6On5Eb2N1bWVudCk6CisgICAgICAgIChXZWJDb3Jl
OjpEb2N1bWVudDo6aW1wbGVtZW50YXRpb24pOgorICAgICAgICAqIGRvbS9Eb2N1bWVudC5oOgor
CiAyMDExLTAyLTE2ICBTaGVyaWZmIEJvdCAgPHdlYmtpdC5yZXZpZXcuYm90QGdtYWlsLmNvbT4K
IAogICAgICAgICBVbnJldmlld2VkLCByb2xsaW5nIG91dCByNzg2NTUuCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkK
aW5kZXggMTA2YmU1Y2RhMzdjNGQxMWI2NjE3MGNmMTc4ZjBhZGJhMDRkZThkZC4uMmI3YTM1ZTZk
YWU2NGU2NTEzMDI1MDBhYTFkZmY3YzFiYTBjODg2MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvV2ViQ29yZS5neXBpCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQpAQCAtNjEz
LDYgKzYxMyw3IEBACiAgICAgICAgICAgICAnYmluZGluZ3MvanMvSlNET01CaW5kaW5nLmgnLAog
ICAgICAgICAgICAgJ2JpbmRpbmdzL2pzL0pTRE9NR2xvYmFsT2JqZWN0LmNwcCcsCiAgICAgICAg
ICAgICAnYmluZGluZ3MvanMvSlNET01HbG9iYWxPYmplY3QuaCcsCisgICAgICAgICAgICAnYmlu
ZGluZ3MvanMvSlNET01JbXBsZW1lbnRhdGlvbkN1c3RvbS5jcHAnLAogICAgICAgICAgICAgJ2Jp
bmRpbmdzL2pzL0pTRE9NU3RyaW5nTWFwQ3VzdG9tLmNwcCcsCiAgICAgICAgICAgICAnYmluZGlu
Z3MvanMvSlNET01TdHJpbmdNYXBDdXN0b20uaCcsCiAgICAgICAgICAgICAnYmluZGluZ3MvanMv
SlNET01XaW5kb3dCYXNlLmNwcCcsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3Jl
LnBybyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUucHJvCmluZGV4IDVjODIwNDBlNDdkNGNlNjQ0
MmY2NDFkZmNhMWQ2ZGE1NmNiNjE3YjMuLjg4NGQ5YmY5ZmJkNjQzMWQ3YjY3YjZiMGZiN2IyZWNh
NWNmMmIyNjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUucHJvCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL1dlYkNvcmUucHJvCkBAIC0xMzk1LDYgKzEzOTUsNyBAQCB2OCB7CiAgICAg
ICAgIGJpbmRpbmdzL2pzL0pTQ3VzdG9tWFBhdGhOU1Jlc29sdmVyLmggXAogICAgICAgICBiaW5k
aW5ncy9qcy9KU0RPTUJpbmRpbmcuaCBcCiAgICAgICAgIGJpbmRpbmdzL2pzL0pTRE9NR2xvYmFs
T2JqZWN0LmggXAorICAgICAgICBiaW5kaW5ncy9qcy9KU0RPTUltcGxlbWVudGF0aW9uQ3VzdG9t
LmggXAogICAgICAgICBiaW5kaW5ncy9qcy9KU0RPTVN0cmluZ01hcEN1c3RvbS5oIFwKICAgICAg
ICAgYmluZGluZ3MvanMvSlNET01XaW5kb3dCYXNlLmggXAogICAgICAgICBiaW5kaW5ncy9qcy9K
U0RPTVdpbmRvd0N1c3RvbS5oIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUu
dmNwcm9qL1dlYkNvcmUudmNwcm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2Vi
Q29yZS52Y3Byb2oKaW5kZXggNGFiZmUwYzBjMTc3YjA3NzkyYTA5M2ZiMTZmMDQwMGZhNDU3MTJk
NS4uNjVkMjBlNjEyOTExNjJiZDUwZTY1YmRhOGUyNmM5ZmYwZjk5NDU0ZiAxMDA3NTUKLS0tIGEv
U291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2oKKysrIGIvU291cmNl
L1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2oKQEAgLTU3OTYxLDYgKzU3OTYx
LDU4IEBACiAJCQkJCT4KIAkJCQk8L0ZpbGU+CiAJCQkJPEZpbGUKKwkJCQkJUmVsYXRpdmVQYXRo
PSIuLlxiaW5kaW5nc1xqc1xKU0RPTUltcGxlbWVudGF0aW9uQ3VzdG9tLmNwcCIKKwkJCQkJPgor
CQkJCQk8RmlsZUNvbmZpZ3VyYXRpb24KKwkJCQkJCU5hbWU9IkRlYnVnfFdpbjMyIgorCQkJCQlF
eGNsdWRlZEZyb21CdWlsZD0idHJ1ZSIKKwkJCQkJCT4KKwkJCQkJCTxUb29sCisJCQkJCQkJTmFt
ZT0iVkNDTENvbXBpbGVyVG9vbCIKKwkJCQkJCS8+CisJCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+
CisJCQkJCTxGaWxlQ29uZmlndXJhdGlvbgorCQkJCQkJTmFtZT0iUmVsZWFzZXxXaW4zMiIKKwkJ
CQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIgorCQkJCQkJPgorCQkJCQkJPFRvb2wKKwkJCQkJ
CQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIgorCQkJCQkJLz4KKwkJCQkJPC9GaWxlQ29uZmlndXJh
dGlvbj4KKwkJCQkJPEZpbGVDb25maWd1cmF0aW9uCisJCQkJCQlOYW1lPSJEZWJ1Z19DYWlyb19D
RkxpdGV8V2luMzIiCisJCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSIKKwkJCQkJCT4KKwkJ
CQkJCTxUb29sCisJCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCIKKwkJCQkJCS8+CisJCQkJ
CTwvRmlsZUNvbmZpZ3VyYXRpb24+CisJCQkJCTxGaWxlQ29uZmlndXJhdGlvbgorCQkJCQkJTmFt
ZT0iUmVsZWFzZV9DYWlyb19DRkxpdGV8V2luMzIiCisJCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0i
dHJ1ZSIKKwkJCQkJCT4KKwkJCQkJCTxUb29sCisJCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9v
bCIKKwkJCQkJCS8+CisJCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+CisJCQkJCTxGaWxlQ29uZmln
dXJhdGlvbgorCQkJCQkJTmFtZT0iRGVidWdfQWxsfFdpbjMyIgorCQkJCQkJRXhjbHVkZWRGcm9t
QnVpbGQ9InRydWUiCisJCQkJCQk+CisJCQkJCQk8VG9vbAorCQkJCQkJCU5hbWU9IlZDQ0xDb21w
aWxlclRvb2wiCisJCQkJCQkvPgorCQkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPgorCQkJCQk8Rmls
ZUNvbmZpZ3VyYXRpb24KKwkJCQkJCU5hbWU9IlJlbGVhc2VfTFRDR3xXaW4zMiIKKwkJCQkJCUV4
Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIgorCQkJCQkJPgorCQkJCQkJPFRvb2wKKwkJCQkJCQlOYW1l
PSJWQ0NMQ29tcGlsZXJUb29sIgorCQkJCQkJLz4KKwkJCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4K
KwkJCQk8L0ZpbGU+CisJCQkJPEZpbGUKIAkJCQkJUmVsYXRpdmVQYXRoPSIuLlxiaW5kaW5nc1xq
c1xKU0RPTU1pbWVUeXBlQXJyYXlDdXN0b20uY3BwIgogCQkJCQk+CiAJCQkJCTxGaWxlQ29uZmln
dXJhdGlvbgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJv
amVjdC5wYnhwcm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5w
Ynhwcm9qCmluZGV4IDVkNmUzMDY1MGJkZmI5NDJkZjkzZjBjZTNjMjk5MDM2MzhmMGQwNDYuLjhh
MTAyOTVkOTc5ZWVlZDU5Yzg0OGI5YmNmODUwY2VjYTQ0OTQxN2EgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTY1Miw2ICs2NTIs
NyBAQAogCQkxQ0ZBRTMyMzBBNkQ2QTNGMDAzMjU5M0QgLyogbGlib2JqYy5keWxpYiBpbiBGcmFt
ZXdvcmtzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFDRkFFMzIyMEE2RDZB
M0YwMDMyNTkzRCAvKiBsaWJvYmpjLmR5bGliICovOyB9OwogCQkyMEQ2MjkyNjEyNTM2OTBCMDAw
ODE1NDMgLyogSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uLmNwcCBpbiBTb3VyY2VzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDIwRDYyOTI0MTI1MzY5MEIwMDA4MTU0MyAvKiBJ
bnNwZWN0b3JJbnN0cnVtZW50YXRpb24uY3BwICovOyB9OwogCQkyMEQ2MjkyNzEyNTM2OTBCMDAw
ODE1NDMgLyogSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyMEQ2MjkyNTEyNTM2OTBCMDAwODE1NDMgLyogSW5z
cGVjdG9ySW5zdHJ1bWVudGF0aW9uLmggKi87IH07CisJCTIyODg1RTY0MTMwMUFFNEMwMDUyNkU2
OCAvKiBKU0RPTUltcGxlbWVudGF0aW9uQ3VzdG9tLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDIyODg1RTYzMTMwMUFFNEMwMDUyNkU2OCAvKiBKU0RP
TUltcGxlbWVudGF0aW9uQ3VzdG9tLmNwcCAqLzsgfTsKIAkJMjI4QzI4NDUxMEQ4MjUwMDAwOUQw
RDBFIC8qIFNjcmlwdFdyYXBwYWJsZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gMjI4QzI4NDQxMEQ4MjUwMDAwOUQwRDBFIC8qIFNjcmlwdFdyYXBwYWJs
ZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTI0
RjU0RUFDMTAxRkU5MTQwMDBBRTc0MSAvKiBBcHBsaWNhdGlvbkNhY2hlSG9zdC5jcHAgaW4gU291
cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyNEY1NEVBQTEwMUZFOTE0
MDAwQUU3NDEgLyogQXBwbGljYXRpb25DYWNoZUhvc3QuY3BwICovOyB9OwogCQkyNEY1NEVBRDEw
MUZFOTE0MDAwQUU3NDEgLyogQXBwbGljYXRpb25DYWNoZUhvc3QuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDI0RjU0RUFCMTAxRkU5MTQwMDBBRTc0MSAv
KiBBcHBsaWNhdGlvbkNhY2hlSG9zdC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKCk7
IH07IH07CkBAIC02OTk0LDYgKzY5OTUsNyBAQAogCQkxQ0ZBRTMyMjBBNkQ2QTNGMDAzMjU5M0Qg
LyogbGlib2JqYy5keWxpYiAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25G
aWxlVHlwZSA9ICJjb21waWxlZC5tYWNoLW8uZHlsaWIiOyBuYW1lID0gbGlib2JqYy5keWxpYjsg
cGF0aCA9IC91c3IvbGliL2xpYm9iamMuZHlsaWI7IHNvdXJjZVRyZWUgPSAiPGFic29sdXRlPiI7
IH07CiAJCTIwRDYyOTI0MTI1MzY5MEIwMDA4MTU0MyAvKiBJbnNwZWN0b3JJbnN0cnVtZW50YXRp
b24uY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSW5zcGVjdG9ySW5z
dHJ1bWVudGF0aW9uLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMjBENjI5MjUx
MjUzNjkwQjAwMDgxNTQzIC8qIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbi5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb24uaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMjI4ODVFNjMxMzAxQUU0QzAwNTI2RTY4IC8qIEpTRE9N
SW1wbGVtZW50YXRpb25DdXN0b20uY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBu
YW1lID0gSlNET01JbXBsZW1lbnRhdGlvbkN1c3RvbS5jcHA7IHBhdGggPSBiaW5kaW5ncy9qcy9K
U0RPTUltcGxlbWVudGF0aW9uQ3VzdG9tLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJMjI4QzI4NDQxMEQ4MjUwMDAwOUQwRDBFIC8qIFNjcmlwdFdyYXBwYWJsZS5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTY3JpcHRXcmFwcGFibGUuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJMjQ0MkJCRjgxMTk0QzlEMzAwRDQ5NDY5IC8qIEhhc2hDaGFuZ2VF
dmVudC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBIYXNoQ2hhbmdlRXZlbnQu
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMjRGNTRFQUExMDFGRTkxNDAwMEFFNzQx
IC8qIEFwcGxpY2F0aW9uQ2FjaGVIb3N0LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNw
cDsgcGF0aCA9IEFwcGxpY2F0aW9uQ2FjaGVIb3N0LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKQEAgLTEyMzk1LDYgKzEyMzk3LDcgQEAKIAkJMDg2N0Q2OTFGRTg0MDI4RkMwMkFBQzA3
IC8qIFdlYktpdCAqLyA9IHsKIAkJCWlzYSA9IFBCWEdyb3VwOwogCQkJY2hpbGRyZW4gPSAoCisJ
CQkJMjI4ODVFNjMxMzAxQUU0QzAwNTI2RTY4IC8qIEpTRE9NSW1wbGVtZW50YXRpb25DdXN0b20u
Y3BwICovLAogCQkJCTY1Qzk3QUYyMDhFQTkwODgwMEFDRDI3MyAvKiBjb25maWcuaCAqLywKIAkJ
CQlFREVDOTgwMjBBRUQ3RTE3MDA1OTEzN0YgLyogV2ViQ29yZVByZWZpeC5oICovLAogCQkJCTkz
MDcwNjEzMDlFMENBODIwMEIxN0ZFNCAvKiBEZXJpdmVkU291cmNlcy5tYWtlICovLApAQCAtMjI0
OTMsNyArMjI0OTYsNiBAQAogCQkJaXNhID0gUEJYUHJvamVjdDsKIAkJCWJ1aWxkQ29uZmlndXJh
dGlvbkxpc3QgPSAxNDlDMjg0MzA4OTAyQjExMDA4QTlFRkMgLyogQnVpbGQgY29uZmlndXJhdGlv
biBsaXN0IGZvciBQQlhQcm9qZWN0ICJXZWJDb3JlIiAqLzsKIAkJCWNvbXBhdGliaWxpdHlWZXJz
aW9uID0gIlhjb2RlIDIuNCI7Ci0JCQlkZXZlbG9wbWVudFJlZ2lvbiA9IEVuZ2xpc2g7CiAJCQlo
YXNTY2FubmVkRm9yRW5jb2RpbmdzID0gMTsKIAkJCWtub3duUmVnaW9ucyA9ICgKIAkJCQlFbmds
aXNoLApAQCAtMjUxMTYsNiArMjUxMTgsNyBAQAogCQkJCUExRTExNTQ0MTMwMTVDM0QwMDU0QUM4
QyAvKiBEaXN0YW50TGlnaHRTb3VyY2UuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQTFFMTE1NDYx
MzAxNUM0RTAwNTRBQzhDIC8qIFBvaW50TGlnaHRTb3VyY2UuY3BwIGluIFNvdXJjZXMgKi8sCiAJ
CQkJQTFFMTE1NDgxMzAxNUM1RDAwNTRBQzhDIC8qIFNwb3RMaWdodFNvdXJjZS5jcHAgaW4gU291
cmNlcyAqLywKKwkJCQkyMjg4NUU2NDEzMDFBRTRDMDA1MjZFNjggLyogSlNET01JbXBsZW1lbnRh
dGlvbkN1c3RvbS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlCOERCREI0QjEzMEIwRjhBMDBGNUNE
QjEgLyogU2V0U2VsZWN0aW9uQ29tbWFuZC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlCOERCREI0
RDEzMEIwRjhBMDBGNUNEQjEgLyogU3BlbGxpbmdDb3JyZWN0aW9uQ29tbWFuZC5jcHAgaW4gU291
cmNlcyAqLywKIAkJCSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9K
U0JpbmRpbmdzQWxsSW5PbmUuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNCaW5k
aW5nc0FsbEluT25lLmNwcAppbmRleCA3YzVlZGM2NDFlYjFjMmU4YWU2YzUxMTI4OTI5NGQzNjk2
OTM4N2E2Li42Yjg2ZTQ0MjIwMzZmYWI1MzEzZTRjODAwYjE4MDdiYjNiYTgyZmZjIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0JpbmRpbmdzQWxsSW5PbmUuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTQmluZGluZ3NBbGxJbk9uZS5jcHAKQEAg
LTU2LDYgKzU2LDcgQEAKICNpbmNsdWRlICJKU0RPTUJpbmRpbmcuY3BwIgogI2luY2x1ZGUgIkpT
RE9NRm9ybURhdGFDdXN0b20uY3BwIgogI2luY2x1ZGUgIkpTRE9NR2xvYmFsT2JqZWN0LmNwcCIK
KyNpbmNsdWRlICJKU0RPTUltcGxlbWVudGF0aW9uQ3VzdG9tLmNwcCIKICNpbmNsdWRlICJKU0RP
TU1pbWVUeXBlQXJyYXlDdXN0b20uY3BwIgogI2luY2x1ZGUgIkpTRE9NUGx1Z2luQXJyYXlDdXN0
b20uY3BwIgogI2luY2x1ZGUgIkpTRE9NUGx1Z2luQ3VzdG9tLmNwcCIKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NSW1wbGVtZW50YXRpb25DdXN0b20uY3BwIGIv
U291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01JbXBsZW1lbnRhdGlvbkN1c3RvbS5jcHAK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uYWM4M2M2OTBhYjBhNmE3MGEwYmI0Y2RmMjI4ZmY3NjQ3NWYxODNjNAotLS0g
L2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NSW1wbGVtZW50
YXRpb25DdXN0b20uY3BwCkBAIC0wLDAgKzEsNDIgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIw
MTEgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQgbW9k
aWZpY2F0aW9uLAorICogYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucyBhcmUgbWV0OgorICoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2Ug
Y29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSwKKyAqIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKgorICogMi4g
UmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBj
b3B5cmlnaHQgbm90aWNlLAorICogdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lciBpbiB0aGUgZG9jdW1lbnRhdGlvbgorICogIGFuZC9vciBvdGhlciBt
YXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09G
VFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyDigJxB
UyBJU+KAnSBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLAorICogSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hB
TlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRQorICogQVJFIERJ
U0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9S
UyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAorICogU1BF
Q0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SCisgKiBT
RVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVS
UlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLAor
ICogV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVE
SU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GCisg
KiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lC
SUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1
ZGUgIkpTRE9NSW1wbGVtZW50YXRpb24uaCIKKworI2luY2x1ZGUgIkRPTUltcGxlbWVudGF0aW9u
LmgiCisKK3VzaW5nIG5hbWVzcGFjZSBKU0M7CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKwordm9p
ZCBKU0RPTUltcGxlbWVudGF0aW9uOjptYXJrQ2hpbGRyZW4oTWFya1N0YWNrJiBtYXJrU3RhY2sp
Cit7CisgICAgQmFzZTo6bWFya0NoaWxkcmVuKG1hcmtTdGFjayk7CisKKyAgICBET01JbXBsZW1l
bnRhdGlvbiogZG9tSW1wbGVtZW50YXRpb24gPSBpbXBsKCk7CisgICAgRG9jdW1lbnQqIG93bmVy
RG9jdW1lbnQgPSBkb21JbXBsZW1lbnRhdGlvbi0+b3duZXJEb2N1bWVudCgpOworICAgIGlmIChv
d25lckRvY3VtZW50KQorICAgICAgICBtYXJrRE9NTm9kZVdyYXBwZXIobWFya1N0YWNrLCBvd25l
ckRvY3VtZW50LCBvd25lckRvY3VtZW50KTsKK30KKworfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9yVjgucG0gYi9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JWOC5wbQppbmRleCBmMzkzMjMwOGY0MDM1
MWI4OWIzZGFhZWE0NDJhZmNiYTdjODY0NTlhLi43M2ZjNDRmYzczNTZlYzIxNjlmYWYzYTAyYTE1
OTUyMDQ1M2I5Mzc2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRz
L0NvZGVHZW5lcmF0b3JWOC5wbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRz
L0NvZGVHZW5lcmF0b3JWOC5wbQpAQCAtMzY3LDE2ICszNjcsMTQgQEAgRU5ECiB2ODo6SGFuZGxl
PHY4OjpPYmplY3Q+ICR7Y2xhc3NOYW1lfTo6d3JhcCgke25hdGl2ZVR5cGV9KiBpbXBsJHtmb3Jj
ZU5ld09iamVjdElucHV0fSkKIHsKIEVORAotICAgIGlmICgkZG9tTWFwRnVuY3Rpb24pIHsKLSAg
ICAgICAgcHVzaChAaGVhZGVyQ29udGVudCwgIiAgICBpZiAoIWZvcmNlTmV3T2JqZWN0KSB7XG4i
KSBpZiBJc0RPTU5vZGVUeXBlKCRpbnRlcmZhY2VOYW1lKTsKLSAgICAgICAgbXkgJGdldFdyYXBw
ZXIgPSBJc05vZGVTdWJUeXBlKCRkYXRhTm9kZSkgPyAiVjhET01XcmFwcGVyOjpnZXRXcmFwcGVy
KGltcGwpIiA6ICIke2RvbU1hcEZ1bmN0aW9ufS5nZXQoaW1wbCkiOwotICAgICAgICBwdXNoKEBo
ZWFkZXJDb250ZW50LCA8PEVORCk7CisgICAgcHVzaChAaGVhZGVyQ29udGVudCwgIiAgICBpZiAo
IWZvcmNlTmV3T2JqZWN0KSB7XG4iKSBpZiBJc0RPTU5vZGVUeXBlKCRpbnRlcmZhY2VOYW1lKTsK
KyAgICBteSAkZ2V0V3JhcHBlciA9IElzTm9kZVN1YlR5cGUoJGRhdGFOb2RlKSA/ICJWOERPTVdy
YXBwZXI6OmdldFdyYXBwZXIoaW1wbCkiIDogIiR7ZG9tTWFwRnVuY3Rpb259LmdldChpbXBsKSI7
CisgICAgcHVzaChAaGVhZGVyQ29udGVudCwgPDxFTkQpOwogICAgICAgICB2ODo6SGFuZGxlPHY4
OjpPYmplY3Q+IHdyYXBwZXIgPSAke2dldFdyYXBwZXJ9OwogICAgICAgICBpZiAoIXdyYXBwZXIu
SXNFbXB0eSgpKQogICAgICAgICAgICAgcmV0dXJuIHdyYXBwZXI7CiBFTkQKLSAgICAgICAgcHVz
aChAaGVhZGVyQ29udGVudCwgIiAgICB9XG4iKSBpZiBJc0RPTU5vZGVUeXBlKCRpbnRlcmZhY2VO
YW1lKTsKLSAgICB9CisgICAgcHVzaChAaGVhZGVyQ29udGVudCwgIiAgICB9XG4iKSBpZiBJc0RP
TU5vZGVUeXBlKCRpbnRlcmZhY2VOYW1lKTsKICAgICBwdXNoKEBoZWFkZXJDb250ZW50LCA8PEVO
RCk7CiAgICAgcmV0dXJuICR7Y2xhc3NOYW1lfTo6d3JhcFNsb3coaW1wbCk7CiB9CkBAIC0yNTAx
LDExICsyNDk5LDkgQEAgRU5ECiBFTkQKICAgICB9CiAKLSAgICBpZiAoJGRvbU1hcEZ1bmN0aW9u
KSB7Ci0gICAgICAgIHB1c2goQGltcGxDb250ZW50LCA8PEVORCk7CisgICAgcHVzaChAaW1wbENv
bnRlbnQsIDw8RU5EKTsKICAgICAke2RvbU1hcEZ1bmN0aW9ufS5zZXQoaW1wbCwgdjg6OlBlcnNp
c3RlbnQ8djg6Ok9iamVjdD46Ok5ldyh3cmFwcGVyKSk7CiBFTkQKLSAgICB9CiAKICAgICBwdXNo
KEBpbXBsQ29udGVudCwgPDxFTkQpOwogICAgIHJldHVybiB3cmFwcGVyOwpAQCAtMjU0OSw3ICsy
NTQ1LDYgQEAgc3ViIEdldERvbU1hcEZ1bmN0aW9uCiAgICAgbXkgJHR5cGUgPSBzaGlmdDsKICAg
ICByZXR1cm4gImdldERPTVNWR0VsZW1lbnRJbnN0YW5jZU1hcCgpIiBpZiAkdHlwZSBlcSAiU1ZH
RWxlbWVudEluc3RhbmNlIjsKICAgICByZXR1cm4gImdldERPTU5vZGVNYXAoKSIgaWYgKCRkYXRh
Tm9kZSAmJiBJc05vZGVTdWJUeXBlKCRkYXRhTm9kZSkpOwotICAgIHJldHVybiAiIiBpZiAkdHlw
ZSBlcSAiRE9NSW1wbGVtZW50YXRpb24iOwogICAgIHJldHVybiAiZ2V0QWN0aXZlRE9NT2JqZWN0
TWFwKCkiIGlmIElzQWN0aXZlRG9tVHlwZSgkdHlwZSk7CiAgICAgcmV0dXJuICJnZXRET01PYmpl
Y3RNYXAoKSI7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9WOEdD
Q29udHJvbGxlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9WOEdDQ29udHJvbGxl
ci5jcHAKaW5kZXggZjFjZjIwNjcyZmZjZDc4NmEwMTI4NTJjNjZkMjU0M2QxOTE4MDc1Zi4uYTM0
ZGMyNDI1ZWJlN2Y3OTM1YmEwOTE4YjBjOGQyZGM3ODA3OThjMiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvYmluZGluZ3MvdjgvVjhHQ0NvbnRyb2xsZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL3Y4L1Y4R0NDb250cm9sbGVyLmNwcApAQCAtMjkwLDYgKzI5MCw3IEBAIHB1
YmxpYzoKICAgICAgICAgaWYgKG5vZGUtPmlzRG9jdW1lbnROb2RlKCkpIHsKICAgICAgICAgICAg
IERvY3VtZW50KiBkb2N1bWVudCA9IHJlaW50ZXJwcmV0X2Nhc3Q8RG9jdW1lbnQqPihub2RlKTsK
ICAgICAgICAgICAgIGFkZERPTU9iamVjdFRvR3JvdXAoc3RvcmUsIGdyb3VwSWQsIGRvY3VtZW50
LT5zdHlsZVNoZWV0cygpKTsKKyAgICAgICAgICAgIGFkZERPTU9iamVjdFRvR3JvdXAoc3RvcmUs
IGdyb3VwSWQsIGRvY3VtZW50LT5pbXBsZW1lbnRhdGlvbigpKTsKICAgICAgICAgfQogCiAgICAg
ICAgIFdyYXBwZXJUeXBlSW5mbyogdHlwZUluZm8gPSBWOERPTVdyYXBwZXI6OmRvbVdyYXBwZXJU
eXBlKHdyYXBwZXIpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0RPTUltcGxlbWVu
dGF0aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9ET01JbXBsZW1lbnRhdGlvbi5jcHAKaW5k
ZXggMzBlODg5ZjhjMWYyYWNmZmYwNWE1OTVlMTI1MzY0ZTQ1MjgyMWRkYi4uM2JhMTEzNzMzODdi
M2U3MTM2NDhhNDk1OTZjOWMxMDUwNzZjN2IxMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
ZG9tL0RPTUltcGxlbWVudGF0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRE9NSW1w
bGVtZW50YXRpb24uY3BwCkBAIC0xNzEsNiArMTcxLDEyIEBAIHN0YXRpYyBib29sIGlzU1ZHMTFG
ZWF0dXJlKGNvbnN0IFN0cmluZyAmZmVhdHVyZSkKIH0KICNlbmRpZgogCitET01JbXBsZW1lbnRh
dGlvbjo6RE9NSW1wbGVtZW50YXRpb24oRG9jdW1lbnQqIG93bmVyRG9jdW1lbnQpCisgICAgOiBt
X293bmVyRG9jdW1lbnQob3duZXJEb2N1bWVudCkKK3sKKyAgICBBU1NFUlQobV9vd25lckRvY3Vt
ZW50KTsKK30KKwogYm9vbCBET01JbXBsZW1lbnRhdGlvbjo6aGFzRmVhdHVyZShjb25zdCBTdHJp
bmcmIGZlYXR1cmUsIGNvbnN0IFN0cmluZyYgdmVyc2lvbikKIHsKICAgICBTdHJpbmcgbG93ZXIg
PSBmZWF0dXJlLmxvd2VyKCk7CkBAIC0yNDAsNiArMjQ2LDEyIEBAIFBhc3NSZWZQdHI8RG9jdW1l
bnQ+IERPTUltcGxlbWVudGF0aW9uOjpjcmVhdGVEb2N1bWVudChjb25zdCBTdHJpbmcmIG5hbWVz
cGFjZVVSCiAgICAgZWxzZQogICAgICAgICBkb2MgPSBEb2N1bWVudDo6Y3JlYXRlKDAsIEtVUkwo
KSk7CiAKKyAgICBpZiAoIW1fb3duZXJEb2N1bWVudCkgeworICAgICAgICBlYyA9IElOVkFMSURf
U1RBVEVfRVJSOworICAgICAgICByZXR1cm4gMDsKKyAgICB9CisgICAgZG9jLT5zZXRTZWN1cml0
eU9yaWdpbihtX293bmVyRG9jdW1lbnQtPnNlY3VyaXR5T3JpZ2luKCkpOworCiAgICAgUmVmUHRy
PE5vZGU+IGRvY3VtZW50RWxlbWVudDsKICAgICBpZiAoIXF1YWxpZmllZE5hbWUuaXNFbXB0eSgp
KSB7CiAgICAgICAgIGRvY3VtZW50RWxlbWVudCA9IGRvYy0+Y3JlYXRlRWxlbWVudE5TKG5hbWVz
cGFjZVVSSSwgcXVhbGlmaWVkTmFtZSwgZWMpOwpAQCAtMzAwLDYgKzMxMiw5IEBAIFBhc3NSZWZQ
dHI8SFRNTERvY3VtZW50PiBET01JbXBsZW1lbnRhdGlvbjo6Y3JlYXRlSFRNTERvY3VtZW50KGNv
bnN0IFN0cmluZyYgdGl0CiAgICAgZC0+b3BlbigpOwogICAgIGQtPndyaXRlKCI8IWRvY3R5cGUg
aHRtbD48aHRtbD48Ym9keT48L2JvZHk+PC9odG1sPiIpOwogICAgIGQtPnNldFRpdGxlKHRpdGxl
KTsKKyAgICBBU1NFUlQobV9vd25lckRvY3VtZW50KTsKKyAgICBpZiAobV9vd25lckRvY3VtZW50
KQorICAgICAgICBkLT5zZXRTZWN1cml0eU9yaWdpbihtX293bmVyRG9jdW1lbnQtPnNlY3VyaXR5
T3JpZ2luKCkpOwogICAgIHJldHVybiBkLnJlbGVhc2UoKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvZG9tL0RPTUltcGxlbWVudGF0aW9uLmggYi9Tb3VyY2UvV2ViQ29yZS9kb20v
RE9NSW1wbGVtZW50YXRpb24uaAppbmRleCBhMjBmN2QyM2UxNGFmMzMyYTkxZDEzMWQwZDA1MDUx
ZTg4OWI2MWVkLi40ZWFkYmEzZjc0ZGRmNmQwZGQ2OTdhNjBiYjc4MmZkNjk0NTA5ZGFiIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRE9NSW1wbGVtZW50YXRpb24uaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9kb20vRE9NSW1wbGVtZW50YXRpb24uaApAQCAtNDEsMTIgKzQxLDEyIEBAIHR5
cGVkZWYgaW50IEV4Y2VwdGlvbkNvZGU7CiAKIGNsYXNzIERPTUltcGxlbWVudGF0aW9uIDogcHVi
bGljIFJlZkNvdW50ZWQ8RE9NSW1wbGVtZW50YXRpb24+IHsKIHB1YmxpYzoKLSAgICBzdGF0aWMg
UGFzc1JlZlB0cjxET01JbXBsZW1lbnRhdGlvbj4gY3JlYXRlKCkgeyByZXR1cm4gYWRvcHRSZWYo
bmV3IERPTUltcGxlbWVudGF0aW9uKTsgfQorICAgIHN0YXRpYyBQYXNzUmVmUHRyPERPTUltcGxl
bWVudGF0aW9uPiBjcmVhdGUoRG9jdW1lbnQqIG93bmVyRG9jdW1lbnQpIHsgcmV0dXJuIGFkb3B0
UmVmKG5ldyBET01JbXBsZW1lbnRhdGlvbihvd25lckRvY3VtZW50KSk7IH0KIAogICAgIC8vIERP
TSBtZXRob2RzICYgYXR0cmlidXRlcyBmb3IgRE9NSW1wbGVtZW50YXRpb24KICAgICBzdGF0aWMg
Ym9vbCBoYXNGZWF0dXJlKGNvbnN0IFN0cmluZyYgZmVhdHVyZSwgY29uc3QgU3RyaW5nJiB2ZXJz
aW9uKTsKLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxEb2N1bWVudFR5cGU+IGNyZWF0ZURvY3VtZW50
VHlwZShjb25zdCBTdHJpbmcmIHF1YWxpZmllZE5hbWUsIGNvbnN0IFN0cmluZyYgcHVibGljSWQs
IGNvbnN0IFN0cmluZyAmc3lzdGVtSWQsIEV4Y2VwdGlvbkNvZGUmKTsKLSAgICBzdGF0aWMgUGFz
c1JlZlB0cjxEb2N1bWVudD4gY3JlYXRlRG9jdW1lbnQoY29uc3QgU3RyaW5nJiBuYW1lc3BhY2VV
UkksIGNvbnN0IFN0cmluZyYgcXVhbGlmaWVkTmFtZSwgRG9jdW1lbnRUeXBlKiwgRXhjZXB0aW9u
Q29kZSYpOworICAgIFBhc3NSZWZQdHI8RG9jdW1lbnRUeXBlPiBjcmVhdGVEb2N1bWVudFR5cGUo
Y29uc3QgU3RyaW5nJiBxdWFsaWZpZWROYW1lLCBjb25zdCBTdHJpbmcmIHB1YmxpY0lkLCBjb25z
dCBTdHJpbmcmIHN5c3RlbUlkLCBFeGNlcHRpb25Db2RlJik7CisgICAgUGFzc1JlZlB0cjxEb2N1
bWVudD4gY3JlYXRlRG9jdW1lbnQoY29uc3QgU3RyaW5nJiBuYW1lc3BhY2VVUkksIGNvbnN0IFN0
cmluZyYgcXVhbGlmaWVkTmFtZSwgRG9jdW1lbnRUeXBlKiwgRXhjZXB0aW9uQ29kZSYpOwogCiAg
ICAgRE9NSW1wbGVtZW50YXRpb24qIGdldEludGVyZmFjZShjb25zdCBTdHJpbmcmIGZlYXR1cmUp
OwogCkBAIC01NCw3ICs1NCw3IEBAIHB1YmxpYzoKICAgICBzdGF0aWMgUGFzc1JlZlB0cjxDU1NT
dHlsZVNoZWV0PiBjcmVhdGVDU1NTdHlsZVNoZWV0KGNvbnN0IFN0cmluZyYgdGl0bGUsIGNvbnN0
IFN0cmluZyYgbWVkaWEsIEV4Y2VwdGlvbkNvZGUmKTsKIAogICAgIC8vIEZyb20gdGhlIEhUTUxE
T01JbXBsZW1lbnRhdGlvbiBpbnRlcmZhY2UKLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxIVE1MRG9j
dW1lbnQ+IGNyZWF0ZUhUTUxEb2N1bWVudChjb25zdCBTdHJpbmcmIHRpdGxlKTsKKyAgICBQYXNz
UmVmUHRyPEhUTUxEb2N1bWVudD4gY3JlYXRlSFRNTERvY3VtZW50KGNvbnN0IFN0cmluZyYgdGl0
bGUpOwogCiAgICAgLy8gT3RoZXIgbWV0aG9kcyAobm90IHBhcnQgb2YgRE9NKQogICAgIHN0YXRp
YyBQYXNzUmVmUHRyPERvY3VtZW50PiBjcmVhdGVEb2N1bWVudChjb25zdCBTdHJpbmcmIE1JTUVU
eXBlLCBGcmFtZSosIGNvbnN0IEtVUkwmLCBib29sIGluVmlld1NvdXJjZU1vZGUpOwpAQCAtNjIs
OCArNjIsMTMgQEAgcHVibGljOgogICAgIHN0YXRpYyBib29sIGlzWE1MTUlNRVR5cGUoY29uc3Qg
U3RyaW5nJiBNSU1FVHlwZSk7CiAgICAgc3RhdGljIGJvb2wgaXNUZXh0TUlNRVR5cGUoY29uc3Qg
U3RyaW5nJiBNSU1FVHlwZSk7CiAKKyAgICBEb2N1bWVudCogb3duZXJEb2N1bWVudCgpIHsgcmV0
dXJuIG1fb3duZXJEb2N1bWVudDsgfQorICAgIHZvaWQgb3duZXJEb2N1bWVudERlc3Ryb3llZCgp
IHsgbV9vd25lckRvY3VtZW50ID0gMDsgfQorCiBwcml2YXRlOgotICAgIERPTUltcGxlbWVudGF0
aW9uKCkgeyB9CisgICAgRE9NSW1wbGVtZW50YXRpb24oRG9jdW1lbnQqIG93bmVyRG9jdW1lbnQp
OworCisgICAgRG9jdW1lbnQqIG1fb3duZXJEb2N1bWVudDsKIH07CiAKIH0gLy9uYW1lc3BhY2UK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9ET01JbXBsZW1lbnRhdGlvbi5pZGwgYi9T
b3VyY2UvV2ViQ29yZS9kb20vRE9NSW1wbGVtZW50YXRpb24uaWRsCmluZGV4IDgxZGY2Yzg4MDhi
ZmQzZjk2NTNmZTBhYzU3YzM2ODY2N2Y3YTJkZTEuLjg0MjAyODFiMTQ3YjgwZDFmYmNmOThiMzcy
YTIxNjhiOWFhMWI4MzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9ET01JbXBsZW1l
bnRhdGlvbi5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0RPTUltcGxlbWVudGF0aW9uLmlk
bApAQCAtMjAsNyArMjAsOSBAQAogCiBtb2R1bGUgY29yZSB7CiAKLSAgICBpbnRlcmZhY2UgRE9N
SW1wbGVtZW50YXRpb24geworICAgIGludGVyZmFjZSBbCisgICAgICAgIEN1c3RvbU1hcmtGdW5j
dGlvbgorICAgIF0gRE9NSW1wbGVtZW50YXRpb24gewogCiAgICAgICAgIC8vIERPTSBMZXZlbCAx
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCmluZGV4IGE3YmI4NWExZjJhZTc0Y2Y0ZDNlMTJhY2Fh
ZjY1MWU0ZmUzY2IzYmYuLjk5ODAyYjkyMTc2NGNkMjAxYTFhOWNlYzhlYmEzMzFiYjU1ZWI3YWYg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcApAQCAtNjAyLDYgKzYwMiw5IEBAIERvY3VtZW50Ojp+
RG9jdW1lbnQoKQogCiAgICAgaWYgKG1fbWVkaWFRdWVyeU1hdGNoZXIpCiAgICAgICAgIG1fbWVk
aWFRdWVyeU1hdGNoZXItPmRvY3VtZW50RGVzdHJveWVkKCk7CisKKyAgICBpZiAobV9pbXBsZW1l
bnRhdGlvbikKKyAgICAgICAgbV9pbXBsZW1lbnRhdGlvbi0+b3duZXJEb2N1bWVudERlc3Ryb3ll
ZCgpOwogfQogCiBNZWRpYVF1ZXJ5TWF0Y2hlciogRG9jdW1lbnQ6Om1lZGlhUXVlcnlNYXRjaGVy
KCkKQEAgLTY4MywxMCArNjg2LDEwIEBAIHZvaWQgRG9jdW1lbnQ6OnNldERvY1R5cGUoUGFzc1Jl
ZlB0cjxEb2N1bWVudFR5cGU+IGRvY1R5cGUpCiAgICAgICAgIG1fZG9jVHlwZS0+c2V0RG9jdW1l
bnQodGhpcyk7CiB9CiAKLURPTUltcGxlbWVudGF0aW9uKiBEb2N1bWVudDo6aW1wbGVtZW50YXRp
b24oKSBjb25zdAorRE9NSW1wbGVtZW50YXRpb24qIERvY3VtZW50OjppbXBsZW1lbnRhdGlvbigp
CiB7CiAgICAgaWYgKCFtX2ltcGxlbWVudGF0aW9uKQotICAgICAgICBtX2ltcGxlbWVudGF0aW9u
ID0gRE9NSW1wbGVtZW50YXRpb246OmNyZWF0ZSgpOworICAgICAgICBtX2ltcGxlbWVudGF0aW9u
ID0gRE9NSW1wbGVtZW50YXRpb246OmNyZWF0ZSh0aGlzKTsKICAgICByZXR1cm4gbV9pbXBsZW1l
bnRhdGlvbi5nZXQoKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3Vt
ZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaAppbmRleCA5ZTE1YWM3ZmRiZjgx
NTRmYWMzMGM0MzdhZTNmODM1MzU3ZTM1NTU5Li40NzMwZTk0ZWNjNWJjY2Q3NjdjOWJhNjJjZjEx
ODk3NWFjODVjOWUwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaApAQCAtMzA1LDcgKzMwNSw3IEBAIHB1
YmxpYzoKIAogICAgIERvY3VtZW50VHlwZSogZG9jdHlwZSgpIGNvbnN0IHsgcmV0dXJuIG1fZG9j
VHlwZS5nZXQoKTsgfQogCi0gICAgRE9NSW1wbGVtZW50YXRpb24qIGltcGxlbWVudGF0aW9uKCkg
Y29uc3Q7CisgICAgRE9NSW1wbGVtZW50YXRpb24qIGltcGxlbWVudGF0aW9uKCk7CiAgICAgCiAg
ICAgRWxlbWVudCogZG9jdW1lbnRFbGVtZW50KCkgY29uc3QKICAgICB7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>82817</attachid>
            <date>2011-02-17 09:15:29 -0800</date>
            <delta_ts>2011-02-21 12:46:14 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-53611-20110217201527.patch</filename>
            <type>text/plain</type>
            <size>22707</size>
            <attacher name="anton muhin">antonm</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogNzg4MzUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5n
ZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCA4MzE2ZTc5NjYwYWQwNjFmYmY4ZDAw
ZTFlNTc1NzkwZjJiM2Q3MzJkLi4wMjExZDZiYjRmOTgwYWVmODEyZDRmMTczM2VjM2JiYzgxMWUw
M2M0IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMjEgQEAKKzIwMTEtMDItMDggIEFudG9uIE11aGluICA8YW50
b25tQGNocm9taXVtLm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICBQcm9wYWdhdGUgc2VjdXJpdHkgb3JpZ2luIG9mIHBhcmVudCBkb2N1bWVudCBp
bnRvIEhUTUwgZG9jdW1lbnRzIGNyZWF0ZWQgd2l0aCBET01JbXBsZW1lbnRhdGlvbgorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTM2MTEKKworICAgICAg
ICBBZGRpdGlvbmFsIHRlc3Qgd2hpY2ggY2hlY2tzIGNhc2Ugd2hlbiBwYXJlbnQgZG9jdW1lbnQg
Y2FuIGJlIGNvbGxlY3RlZCB3aGlsZQorICAgICAgICBpdHMgaW1wbGVtZW50YXRpb24gaXMgYWxp
dmUuCisKKyAgICAgICAgKiBmYXN0L2RvbS9nYy05Lmh0bWw6CisKKzIwMTEtMDItMTYgIFBoaWxp
cHBlIE5vcm1hbmQgIDxwbm9ybWFuZEBpZ2FsaWEuY29tPgorCisgICAgICAgIFVucmV2aWV3ZWQs
IHJlYmFzZWxpbmUgdGVzdCBhZnRlciByNzg2OTAuCisKKyAgICAgICAgKiBtZWRpYS9jb250cm9s
cy13aXRob3V0LXByZWxvYWQtZXhwZWN0ZWQudHh0OgorCiAyMDExLTAyLTE3ICBJbHlhIFRpa2hv
bm92c2t5ICA8bG9pc2xvQGNocm9taXVtLm9yZz4KIAogICAgICAgICBSZXZpZXdlZCBieSBZdXJ5
IFNlbWlraGF0c2t5LgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vZ2MtOS5odG1s
IGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vZ2MtOS5odG1sCmluZGV4IDJiYzI1YWQzZWY4YTQ4NGYy
MzcyNzU0YjY4YTI0NzFhNWU1ZjRjNDUuLjNlZGEzYWUzNDExOTFiMjBhZTcyMjRlNmI2YmM3ZWEx
NmIzMDc1YTcgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL2djLTkuaHRtbAorKysg
Yi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9nYy05Lmh0bWwKQEAgLTgzLDYgKzgzLDEzIEBAIGZ1bmN0
aW9uIHRlc3RFdmVudHMoKQogICAgIH0KIH0KIAorZnVuY3Rpb24gdGVzdERPTUltcGxlbWVudGF0
aW9uKCkKK3sKKyAgdmFyIGltcGwgPSBkb2N1bWVudC5pbXBsZW1lbnRhdGlvbi5jcmVhdGVIVE1M
RG9jdW1lbnQoJycpLmltcGxlbWVudGF0aW9uOworICBnYygpOworICBpbXBsLmNyZWF0ZUhUTUxE
b2N1bWVudCgnJyk7ICAvLyBNYXkgY3Jhc2ggb3IgdGhyb3cgYW4gZXhjZXB0aW9uIGlmIHdlIGNv
bGxlY3QgcGFyZW50IGRvY3VtZW50IG9mIGltcGwuCit9CisKIGZ1bmN0aW9uIHRlc3QoKSAKIHsK
ICAgICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQpAQCAtOTcsNiArMTA0LDcgQEAg
ZnVuY3Rpb24gdGVzdCgpCiAgICAgdGVzdFByb3BlcnRpZXNBZ2FpbigpOwogCiAgICAgdGVzdEV2
ZW50cygpOworICAgIHRlc3RET01JbXBsZW1lbnRhdGlvbigpOwogfQogCiAvLyBCeSBkZWZhdWx0
LCB3ZSBleHBlY3QgdGhhdCBjdXN0b20gcHJvcGVydGllcyBhcmUgbm90IGFsbG93ZWQuCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9BbmRyb2lkLmpzY2JpbmRpbmdzLm1rIGIvU291cmNlL1dl
YkNvcmUvQW5kcm9pZC5qc2NiaW5kaW5ncy5tawppbmRleCBjNjcxYWQ5MjY5ZmZkMGE5NmM1MmM2
MWQxMmU2NWJjODA5MTU4MWQ5Li5iZmE2N2E4ZDFjMjAxZGVlNGU1NTk4NDJhNDhiNDc1MzIyMTA1
MzMyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9BbmRyb2lkLmpzY2JpbmRpbmdzLm1rCisr
KyBiL1NvdXJjZS9XZWJDb3JlL0FuZHJvaWQuanNjYmluZGluZ3MubWsKQEAgLTg3LDYgKzg3LDcg
QEAgTE9DQUxfU1JDX0ZJTEVTICs9IFwKIAliaW5kaW5ncy9qcy9KU0RPTUJpbmRpbmcuY3BwIFwK
IAliaW5kaW5ncy9qcy9KU0RPTUZvcm1EYXRhQ3VzdG9tLmNwcCBcCiAJYmluZGluZ3MvanMvSlNE
T01HbG9iYWxPYmplY3QuY3BwIFwKKwliaW5kaW5ncy9qcy9KU0RPTUltcGxlbWVudGF0aW9uQ3Vz
dG9tLmNwcCBcCiAJYmluZGluZ3MvanMvSlNET01TZXR0YWJsZVRva2VuTGlzdC5jcHAgXAogCWJp
bmRpbmdzL2pzL0pTRE9NVG9rZW5MaXN0LmNwcCBcCiAJYmluZGluZ3MvanMvSlNET01XaW5kb3dC
YXNlLmNwcCBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dCBiL1Nv
dXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CmluZGV4IGMwYTJjNGU5ZmU0MzcxOGU4Mjk0Y2Yw
NmMyNDJjOWYwOTgyNzUyYTEuLjYzYTEzZDBkNDZjZDBjM2ZlZmJlNTk2NWM2NjYxNzczYzdmNDc5
YWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CisrKyBiL1NvdXJj
ZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CkBAIC00ODMsNiArNDgzLDcgQEAgU0VUKFdlYkNvcmVf
U09VUkNFUwogICAgIGJpbmRpbmdzL2pzL0pTRE9NQmluZGluZy5jcHAKICAgICBiaW5kaW5ncy9q
cy9KU0RPTUZvcm1EYXRhQ3VzdG9tLmNwcAogICAgIGJpbmRpbmdzL2pzL0pTRE9NR2xvYmFsT2Jq
ZWN0LmNwcAorICAgIGJpbmRpbmdzL2pzL0pTRE9NSW1wbGVtZW50YXRpb25DdXN0b20uY3BwCiAg
ICAgYmluZGluZ3MvanMvSlNET01NaW1lVHlwZUFycmF5Q3VzdG9tLmNwcAogICAgIGJpbmRpbmdz
L2pzL0pTRE9NUGx1Z2luQXJyYXlDdXN0b20uY3BwCiAgICAgYmluZGluZ3MvanMvSlNET01QbHVn
aW5DdXN0b20uY3BwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3Vy
Y2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYzZmN2IyY2M2YTg0ZDE4NmUwZDZhZjJjMjJmYWJm
YjQ4MmVkMjk3Yi4uOTZlNTUwNDllNzM5YTZmNTRlNmE0MDE3NGFhOWM5ZmVkMWQ0ZTdiZSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwpAQCAtMSwzICsxLDM5IEBACisyMDExLTAyLTA4ICBBbnRvbiBNdWhpbiAgPGFudG9u
bUBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgUHJvcGFnYXRlIHNlY3VyaXR5IG9yaWdpbiBvZiBwYXJlbnQgZG9jdW1lbnQgaW50
byBIVE1MIGRvY3VtZW50cyBjcmVhdGVkIHdpdGggRE9NSW1wbGVtZW50YXRpb24KKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTUzNjExCisKKyAgICAgICAg
VGhpcyByZXN0b3JlcyBpbnZhcmlhbnQgdGhhdCBKUyB3cmFwcGVycyByZXNpZGluZyBpbiB0aGUg
c2FtZSBKUyBjb250ZXh0IHNob3VsZCBjb21lCisgICAgICAgIGZyb20gdGhlIHNhbWUgc2VjdXJp
dHkgb3JpZ2luLgorCisgICAgICAgIEFic2VuY2Ugb2YgcmVncmVzc2lvbnMgaXMgY292ZXJlZCBi
eSB0aGUgY3VycmVudCB0ZXN0cy4gIERpZmZlcmVudCBzZWN1cml0eSBvcmlnaW4gb2YKKyAgICAg
ICAgRE9NSW1wbGVtZW50YXRpb24gaXMgZGlmZmljdWx0IHRvIGNoZWNrIHdpdGggbGF5b3V0IHRl
c3RzIGFzIERPTUltcGxlbWVudGF0aW9uCisgICAgICAgIHJlc2lkZXMgaW4gdGhlIHNhbWUgSlMg
Y29udGV4dCBhcyBwYXJlbnQgZG9jdW1lbnQgYW5kIHRoZXJlZm9yZSB0aGVyZSBhcmUgbm8gc2Vj
dXJpdHkgb3JpZ2luIGNoZWNrcy4KKyAgICAgICAgVGhpcyBpcyBvYnNlcnZhYmxlIGhvd2V2ZXIg
aW4gQysrLgorCisgICAgICAgICogQW5kcm9pZC5qc2NiaW5kaW5ncy5tazoKKyAgICAgICAgKiBD
TWFrZUxpc3RzLnR4dDoKKyAgICAgICAgKiBXZWJDb3JlLmd5cGk6CisgICAgICAgICogV2ViQ29y
ZS5wcm86CisgICAgICAgICogV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2o6CisgICAgICAg
ICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIGJpbmRpbmdz
L3Y4L1Y4R0NDb250cm9sbGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok5vZGVHcm91cGVyVmlz
aXRvcjo6dmlzaXRET01XcmFwcGVyKToKKyAgICAgICAgKiBkb20vRE9NSW1wbGVtZW50YXRpb24u
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6RE9NSW1wbGVtZW50YXRpb246OkRPTUltcGxlbWVudGF0
aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OkRPTUltcGxlbWVudGF0aW9uOjpjcmVhdGVEb2N1bWVu
dCk6CisgICAgICAgICogZG9tL0RPTUltcGxlbWVudGF0aW9uLmg6CisgICAgICAgIChXZWJDb3Jl
OjpET01JbXBsZW1lbnRhdGlvbjo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OkRPTUltcGxl
bWVudGF0aW9uOjpkb2N1bWVudERlc3Ryb3llZCk6CisgICAgICAgIChXZWJDb3JlOjpET01JbXBs
ZW1lbnRhdGlvbjo6cGFyZW50RG9jdW1lbnQpOgorICAgICAgICAqIGRvbS9ET01JbXBsZW1lbnRh
dGlvbi5pZGw6CisgICAgICAgICogZG9tL0RvY3VtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OkRvY3VtZW50Ojp+RG9jdW1lbnQpOgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnQ6OmltcGxl
bWVudGF0aW9uKToKKyAgICAgICAgKiBkb20vRG9jdW1lbnQuaDoKKwogMjAxMS0wMi0xNyAgS3Jp
c3RpYW4gQW1saWUgIDxrcmlzdGlhbi5hbWxpZUBub2tpYS5jb20+CiAKICAgICAgICAgUmV2aWV3
ZWQgYnkgTGFzemxvIEdvbWJvcy4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUu
Z3lwaSBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQppbmRleCBhOTlmN2I5NjM1NTg3M2Vk
MTNkODdiM2Y1MTQxMDAwMWFjOGRlYjIzLi44MTVlYWEyY2I4MmUyYTVlY2QxMThhNjU4N2IyNDZm
M2ZkZWFiZTY5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkKKysrIGIv
U291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpCkBAIC02MTUsNiArNjE1LDcgQEAKICAgICAgICAg
ICAgICdiaW5kaW5ncy9qcy9KU0RPTUJpbmRpbmcuaCcsCiAgICAgICAgICAgICAnYmluZGluZ3Mv
anMvSlNET01HbG9iYWxPYmplY3QuY3BwJywKICAgICAgICAgICAgICdiaW5kaW5ncy9qcy9KU0RP
TUdsb2JhbE9iamVjdC5oJywKKyAgICAgICAgICAgICdiaW5kaW5ncy9qcy9KU0RPTUltcGxlbWVu
dGF0aW9uQ3VzdG9tLmNwcCcsCiAgICAgICAgICAgICAnYmluZGluZ3MvanMvSlNET01TdHJpbmdN
YXBDdXN0b20uY3BwJywKICAgICAgICAgICAgICdiaW5kaW5ncy9qcy9KU0RPTVN0cmluZ01hcEN1
c3RvbS5oJywKICAgICAgICAgICAgICdiaW5kaW5ncy9qcy9KU0RPTVdpbmRvd0Jhc2UuY3BwJywK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUucHJvIGIvU291cmNlL1dlYkNvcmUv
V2ViQ29yZS5wcm8KaW5kZXggNTc0MWVmYmZjMDRiMWQzNzk5OGE1NGNmNjk4NTZkOGVkMTY4OWMx
Ni4uNThlYWJmZTM5NzliYWQwNDkyNjJmMWQ5YzFmZjQ5M2JkM2M0MGQyZCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvV2ViQ29yZS5wcm8KKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5w
cm8KQEAgLTEzOTUsNiArMTM5NSw3IEBAIHY4IHsKICAgICAgICAgYmluZGluZ3MvanMvSlNDdXN0
b21YUGF0aE5TUmVzb2x2ZXIuaCBcCiAgICAgICAgIGJpbmRpbmdzL2pzL0pTRE9NQmluZGluZy5o
IFwKICAgICAgICAgYmluZGluZ3MvanMvSlNET01HbG9iYWxPYmplY3QuaCBcCisgICAgICAgIGJp
bmRpbmdzL2pzL0pTRE9NSW1wbGVtZW50YXRpb25DdXN0b20uaCBcCiAgICAgICAgIGJpbmRpbmdz
L2pzL0pTRE9NU3RyaW5nTWFwQ3VzdG9tLmggXAogICAgICAgICBiaW5kaW5ncy9qcy9KU0RPTVdp
bmRvd0Jhc2UuaCBcCiAgICAgICAgIGJpbmRpbmdzL2pzL0pTRE9NV2luZG93Q3VzdG9tLmggXApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2og
Yi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvagppbmRleCAyN2Mz
YzVjZTYzMzA5N2Q4OWIwMmMxYmNmM2RmMTExYTRjNWMyM2U0Li44YjY1OWQ2OWM4MDlhNjQzM2E2
MTYzODBlMWJkM2RjMWE1MDRiYTVjIDEwMDc1NQotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3Jl
LnZjcHJvai9XZWJDb3JlLnZjcHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjcHJv
ai9XZWJDb3JlLnZjcHJvagpAQCAtNTc5NjEsNiArNTc5NjEsNTggQEAKIAkJCQkJPgogCQkJCTwv
RmlsZT4KIAkJCQk8RmlsZQorCQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXGJpbmRpbmdzXGpzXEpTRE9N
SW1wbGVtZW50YXRpb25DdXN0b20uY3BwIgorCQkJCQk+CisJCQkJCTxGaWxlQ29uZmlndXJhdGlv
bgorCQkJCQkJTmFtZT0iRGVidWd8V2luMzIiCisJCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVl
IgorCQkJCQkJPgorCQkJCQkJPFRvb2wKKwkJCQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIgor
CQkJCQkJLz4KKwkJCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4KKwkJCQkJPEZpbGVDb25maWd1cmF0
aW9uCisJCQkJCQlOYW1lPSJSZWxlYXNlfFdpbjMyIgorCQkJCQkJRXhjbHVkZWRGcm9tQnVpbGQ9
InRydWUiCisJCQkJCQk+CisJCQkJCQk8VG9vbAorCQkJCQkJCU5hbWU9IlZDQ0xDb21waWxlclRv
b2wiCisJCQkJCQkvPgorCQkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPgorCQkJCQk8RmlsZUNvbmZp
Z3VyYXRpb24KKwkJCQkJCU5hbWU9IkRlYnVnX0NhaXJvX0NGTGl0ZXxXaW4zMiIKKwkJCQkJCUV4
Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIgorCQkJCQkJPgorCQkJCQkJPFRvb2wKKwkJCQkJCQlOYW1l
PSJWQ0NMQ29tcGlsZXJUb29sIgorCQkJCQkJLz4KKwkJCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4K
KwkJCQkJPEZpbGVDb25maWd1cmF0aW9uCisJCQkJCQlOYW1lPSJSZWxlYXNlX0NhaXJvX0NGTGl0
ZXxXaW4zMiIKKwkJCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIgorCQkJCQkJPgorCQkJCQkJ
PFRvb2wKKwkJCQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIgorCQkJCQkJLz4KKwkJCQkJPC9G
aWxlQ29uZmlndXJhdGlvbj4KKwkJCQkJPEZpbGVDb25maWd1cmF0aW9uCisJCQkJCQlOYW1lPSJE
ZWJ1Z19BbGx8V2luMzIiCisJCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSIKKwkJCQkJCT4K
KwkJCQkJCTxUb29sCisJCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCIKKwkJCQkJCS8+CisJ
CQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+CisJCQkJCTxGaWxlQ29uZmlndXJhdGlvbgorCQkJCQkJ
TmFtZT0iUmVsZWFzZV9MVENHfFdpbjMyIgorCQkJCQkJRXhjbHVkZWRGcm9tQnVpbGQ9InRydWUi
CisJCQkJCQk+CisJCQkJCQk8VG9vbAorCQkJCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiCisJ
CQkJCQkvPgorCQkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPgorCQkJCTwvRmlsZT4KKwkJCQk8Rmls
ZQogCQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXGJpbmRpbmdzXGpzXEpTRE9NTWltZVR5cGVBcnJheUN1
c3RvbS5jcHAiCiAJCQkJCT4KIAkJCQkJPEZpbGVDb25maWd1cmF0aW9uCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2Uv
V2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggNWQ2ZTMwNjUw
YmRmYjk0MmRmOTNmMGNlM2MyOTkwMzYzOGYwZDA0Ni4uOGExMDI5NWQ5NzllZWVkNTljODQ4Yjli
Y2Y4NTBjZWNhNDQ5NDE3YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29k
ZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvagpAQCAtNjUyLDYgKzY1Miw3IEBACiAJCTFDRkFFMzIzMEE2RDZB
M0YwMDMyNTkzRCAvKiBsaWJvYmpjLmR5bGliIGluIEZyYW1ld29ya3MgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gMUNGQUUzMjIwQTZENkEzRjAwMzI1OTNEIC8qIGxpYm9iamMu
ZHlsaWIgKi87IH07CiAJCTIwRDYyOTI2MTI1MzY5MEIwMDA4MTU0MyAvKiBJbnNwZWN0b3JJbnN0
cnVtZW50YXRpb24uY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gMjBENjI5MjQxMjUzNjkwQjAwMDgxNTQzIC8qIEluc3BlY3Rvckluc3RydW1lbnRhdGlv
bi5jcHAgKi87IH07CiAJCTIwRDYyOTI3MTI1MzY5MEIwMDA4MTU0MyAvKiBJbnNwZWN0b3JJbnN0
cnVtZW50YXRpb24uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDIwRDYyOTI1MTI1MzY5MEIwMDA4MTU0MyAvKiBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb24u
aCAqLzsgfTsKKwkJMjI4ODVFNjQxMzAxQUU0QzAwNTI2RTY4IC8qIEpTRE9NSW1wbGVtZW50YXRp
b25DdXN0b20uY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gMjI4ODVFNjMxMzAxQUU0QzAwNTI2RTY4IC8qIEpTRE9NSW1wbGVtZW50YXRpb25DdXN0b20u
Y3BwICovOyB9OwogCQkyMjhDMjg0NTEwRDgyNTAwMDA5RDBEMEUgLyogU2NyaXB0V3JhcHBhYmxl
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyMjhDMjg0
NDEwRDgyNTAwMDA5RDBEMEUgLyogU2NyaXB0V3JhcHBhYmxlLmggKi87IHNldHRpbmdzID0ge0FU
VFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJMjRGNTRFQUMxMDFGRTkxNDAwMEFFNzQx
IC8qIEFwcGxpY2F0aW9uQ2FjaGVIb3N0LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDI0RjU0RUFBMTAxRkU5MTQwMDBBRTc0MSAvKiBBcHBsaWNhdGlv
bkNhY2hlSG9zdC5jcHAgKi87IH07CiAJCTI0RjU0RUFEMTAxRkU5MTQwMDBBRTc0MSAvKiBBcHBs
aWNhdGlvbkNhY2hlSG9zdC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gMjRGNTRFQUIxMDFGRTkxNDAwMEFFNzQxIC8qIEFwcGxpY2F0aW9uQ2FjaGVIb3N0
LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoKTsgfTsgfTsKQEAgLTY5OTQsNiArNjk5
NSw3IEBACiAJCTFDRkFFMzIyMEE2RDZBM0YwMDMyNTkzRCAvKiBsaWJvYmpjLmR5bGliICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gImNvbXBpbGVkLm1h
Y2gtby5keWxpYiI7IG5hbWUgPSBsaWJvYmpjLmR5bGliOyBwYXRoID0gL3Vzci9saWIvbGlib2Jq
Yy5keWxpYjsgc291cmNlVHJlZSA9ICI8YWJzb2x1dGU+IjsgfTsKIAkJMjBENjI5MjQxMjUzNjkw
QjAwMDgxNTQzIC8qIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbi5jcHAgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb24uY3BwOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkyMEQ2MjkyNTEyNTM2OTBCMDAwODE1NDMgLyogSW5z
cGVjdG9ySW5zdHJ1bWVudGF0aW9uLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IEluc3BlY3Rvckluc3RydW1lbnRhdGlvbi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owor
CQkyMjg4NUU2MzEzMDFBRTRDMDA1MjZFNjggLyogSlNET01JbXBsZW1lbnRhdGlvbkN1c3RvbS5j
cHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBKU0RPTUltcGxlbWVudGF0
aW9uQ3VzdG9tLmNwcDsgcGF0aCA9IGJpbmRpbmdzL2pzL0pTRE9NSW1wbGVtZW50YXRpb25DdXN0
b20uY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkyMjhDMjg0NDEwRDgyNTAwMDA5
RDBEMEUgLyogU2NyaXB0V3JhcHBhYmxlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IFNjcmlwdFdyYXBwYWJsZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkyNDQy
QkJGODExOTRDOUQzMDBENDk0NjkgLyogSGFzaENoYW5nZUV2ZW50LmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IEhhc2hDaGFuZ2VFdmVudC5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQkyNEY1NEVBQTEwMUZFOTE0MDAwQUU3NDEgLyogQXBwbGljYXRpb25DYWNoZUhv
c3QuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gQXBwbGljYXRpb25D
YWNoZUhvc3QuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTIzOTUsNiArMTIz
OTcsNyBAQAogCQkwODY3RDY5MUZFODQwMjhGQzAyQUFDMDcgLyogV2ViS2l0ICovID0gewogCQkJ
aXNhID0gUEJYR3JvdXA7CiAJCQljaGlsZHJlbiA9ICgKKwkJCQkyMjg4NUU2MzEzMDFBRTRDMDA1
MjZFNjggLyogSlNET01JbXBsZW1lbnRhdGlvbkN1c3RvbS5jcHAgKi8sCiAJCQkJNjVDOTdBRjIw
OEVBOTA4ODAwQUNEMjczIC8qIGNvbmZpZy5oICovLAogCQkJCUVERUM5ODAyMEFFRDdFMTcwMDU5
MTM3RiAvKiBXZWJDb3JlUHJlZml4LmggKi8sCiAJCQkJOTMwNzA2MTMwOUUwQ0E4MjAwQjE3RkU0
IC8qIERlcml2ZWRTb3VyY2VzLm1ha2UgKi8sCkBAIC0yMjQ5Myw3ICsyMjQ5Niw2IEBACiAJCQlp
c2EgPSBQQlhQcm9qZWN0OwogCQkJYnVpbGRDb25maWd1cmF0aW9uTGlzdCA9IDE0OUMyODQzMDg5
MDJCMTEwMDhBOUVGQyAvKiBCdWlsZCBjb25maWd1cmF0aW9uIGxpc3QgZm9yIFBCWFByb2plY3Qg
IldlYkNvcmUiICovOwogCQkJY29tcGF0aWJpbGl0eVZlcnNpb24gPSAiWGNvZGUgMi40IjsKLQkJ
CWRldmVsb3BtZW50UmVnaW9uID0gRW5nbGlzaDsKIAkJCWhhc1NjYW5uZWRGb3JFbmNvZGluZ3Mg
PSAxOwogCQkJa25vd25SZWdpb25zID0gKAogCQkJCUVuZ2xpc2gsCkBAIC0yNTExNiw2ICsyNTEx
OCw3IEBACiAJCQkJQTFFMTE1NDQxMzAxNUMzRDAwNTRBQzhDIC8qIERpc3RhbnRMaWdodFNvdXJj
ZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlBMUUxMTU0NjEzMDE1QzRFMDA1NEFDOEMgLyogUG9p
bnRMaWdodFNvdXJjZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlBMUUxMTU0ODEzMDE1QzVEMDA1
NEFDOEMgLyogU3BvdExpZ2h0U291cmNlLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTIyODg1RTY0
MTMwMUFFNEMwMDUyNkU2OCAvKiBKU0RPTUltcGxlbWVudGF0aW9uQ3VzdG9tLmNwcCBpbiBTb3Vy
Y2VzICovLAogCQkJCUI4REJEQjRCMTMwQjBGOEEwMEY1Q0RCMSAvKiBTZXRTZWxlY3Rpb25Db21t
YW5kLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUI4REJEQjREMTMwQjBGOEEwMEY1Q0RCMSAvKiBT
cGVsbGluZ0NvcnJlY3Rpb25Db21tYW5kLmNwcCBpbiBTb3VyY2VzICovLAogCQkJKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTQmluZGluZ3NBbGxJbk9uZS5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0JpbmRpbmdzQWxsSW5PbmUuY3BwCmluZGV4
IDdjNWVkYzY0MWViMWMyZThhZTZjNTExMjg5Mjk0ZDM2OTY5Mzg3YTYuLjZiODZlNDQyMjAzNmZh
YjUzMTNlNGM4MDBiMTgwN2JiM2JhODJmZmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL2pzL0pTQmluZGluZ3NBbGxJbk9uZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3MvanMvSlNCaW5kaW5nc0FsbEluT25lLmNwcApAQCAtNTYsNiArNTYsNyBAQAogI2luY2x1
ZGUgIkpTRE9NQmluZGluZy5jcHAiCiAjaW5jbHVkZSAiSlNET01Gb3JtRGF0YUN1c3RvbS5jcHAi
CiAjaW5jbHVkZSAiSlNET01HbG9iYWxPYmplY3QuY3BwIgorI2luY2x1ZGUgIkpTRE9NSW1wbGVt
ZW50YXRpb25DdXN0b20uY3BwIgogI2luY2x1ZGUgIkpTRE9NTWltZVR5cGVBcnJheUN1c3RvbS5j
cHAiCiAjaW5jbHVkZSAiSlNET01QbHVnaW5BcnJheUN1c3RvbS5jcHAiCiAjaW5jbHVkZSAiSlNE
T01QbHVnaW5DdXN0b20uY3BwIgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
anMvSlNET01JbXBsZW1lbnRhdGlvbkN1c3RvbS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9qcy9KU0RPTUltcGxlbWVudGF0aW9uQ3VzdG9tLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5hYzgzYzY5MGFi
MGE2YTcwYTBiYjRjZGYyMjhmZjc2NDc1ZjE4M2M0Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNl
L1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01JbXBsZW1lbnRhdGlvbkN1c3RvbS5jcHAKQEAgLTAs
MCArMSw0MiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMSBHb29nbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dCBtb2RpZmljYXRpb24sCisgKiBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZSBtZXQ6Cisg
KgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBh
Ym92ZSBjb3B5cmlnaHQgbm90aWNlLAorICogdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmlu
YXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UsCisgKiB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRo
ZSBkb2N1bWVudGF0aW9uCisgKiAgYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRo
IHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBB
UFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIOKAnEFTIElT4oCdIEFORCBBTlkgRVhQUkVT
UyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsCisgKiBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1Mg
Rk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFCisgKiBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQg
U0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJ
UkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCisgKiBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENP
TlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NV
UkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IKKyAqIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwg
REFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNF
RCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksCisgKiBXSEVUSEVSIElOIENPTlRSQUNU
LCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhF
UldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YKKyAqIFRIRSBVU0UgT0YgVEhJUyBTT0ZU
V0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4K
KyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiSlNET01JbXBsZW1lbnRhdGlv
bi5oIgorCisjaW5jbHVkZSAiRE9NSW1wbGVtZW50YXRpb24uaCIKKwordXNpbmcgbmFtZXNwYWNl
IEpTQzsKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCit2b2lkIEpTRE9NSW1wbGVtZW50YXRpb246
Om1hcmtDaGlsZHJlbihNYXJrU3RhY2smIG1hcmtTdGFjaykKK3sKKyAgICBCYXNlOjptYXJrQ2hp
bGRyZW4obWFya1N0YWNrKTsKKworICAgIERPTUltcGxlbWVudGF0aW9uKiBkb21JbXBsZW1lbnRh
dGlvbiA9IGltcGwoKTsKKyAgICBEb2N1bWVudCogb3duZXJEb2N1bWVudCA9IGRvbUltcGxlbWVu
dGF0aW9uLT5vd25lckRvY3VtZW50KCk7CisgICAgaWYgKG93bmVyRG9jdW1lbnQpCisgICAgICAg
IG1hcmtET01Ob2RlV3JhcHBlcihtYXJrU3RhY2ssIG93bmVyRG9jdW1lbnQsIG93bmVyRG9jdW1l
bnQpOworfQorCit9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRz
L0NvZGVHZW5lcmF0b3JWOC5wbSBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29k
ZUdlbmVyYXRvclY4LnBtCmluZGV4IGYzOTMyMzA4ZjQwMzUxYjg5YjNkYWFlYTQ0MmFmY2JhN2M4
NjQ1OWEuLjczZmM0NGZjNzM1NmVjMjE2OWZhZjNhMDJhMTU5NTIwNDUzYjkzNzYgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvclY4LnBtCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvclY4LnBtCkBA
IC0zNjcsMTYgKzM2NywxNCBAQCBFTkQKIHY4OjpIYW5kbGU8djg6Ok9iamVjdD4gJHtjbGFzc05h
bWV9Ojp3cmFwKCR7bmF0aXZlVHlwZX0qIGltcGwke2ZvcmNlTmV3T2JqZWN0SW5wdXR9KQogewog
RU5ECi0gICAgaWYgKCRkb21NYXBGdW5jdGlvbikgewotICAgICAgICBwdXNoKEBoZWFkZXJDb250
ZW50LCAiICAgIGlmICghZm9yY2VOZXdPYmplY3QpIHtcbiIpIGlmIElzRE9NTm9kZVR5cGUoJGlu
dGVyZmFjZU5hbWUpOwotICAgICAgICBteSAkZ2V0V3JhcHBlciA9IElzTm9kZVN1YlR5cGUoJGRh
dGFOb2RlKSA/ICJWOERPTVdyYXBwZXI6OmdldFdyYXBwZXIoaW1wbCkiIDogIiR7ZG9tTWFwRnVu
Y3Rpb259LmdldChpbXBsKSI7Ci0gICAgICAgIHB1c2goQGhlYWRlckNvbnRlbnQsIDw8RU5EKTsK
KyAgICBwdXNoKEBoZWFkZXJDb250ZW50LCAiICAgIGlmICghZm9yY2VOZXdPYmplY3QpIHtcbiIp
IGlmIElzRE9NTm9kZVR5cGUoJGludGVyZmFjZU5hbWUpOworICAgIG15ICRnZXRXcmFwcGVyID0g
SXNOb2RlU3ViVHlwZSgkZGF0YU5vZGUpID8gIlY4RE9NV3JhcHBlcjo6Z2V0V3JhcHBlcihpbXBs
KSIgOiAiJHtkb21NYXBGdW5jdGlvbn0uZ2V0KGltcGwpIjsKKyAgICBwdXNoKEBoZWFkZXJDb250
ZW50LCA8PEVORCk7CiAgICAgICAgIHY4OjpIYW5kbGU8djg6Ok9iamVjdD4gd3JhcHBlciA9ICR7
Z2V0V3JhcHBlcn07CiAgICAgICAgIGlmICghd3JhcHBlci5Jc0VtcHR5KCkpCiAgICAgICAgICAg
ICByZXR1cm4gd3JhcHBlcjsKIEVORAotICAgICAgICBwdXNoKEBoZWFkZXJDb250ZW50LCAiICAg
IH1cbiIpIGlmIElzRE9NTm9kZVR5cGUoJGludGVyZmFjZU5hbWUpOwotICAgIH0KKyAgICBwdXNo
KEBoZWFkZXJDb250ZW50LCAiICAgIH1cbiIpIGlmIElzRE9NTm9kZVR5cGUoJGludGVyZmFjZU5h
bWUpOwogICAgIHB1c2goQGhlYWRlckNvbnRlbnQsIDw8RU5EKTsKICAgICByZXR1cm4gJHtjbGFz
c05hbWV9Ojp3cmFwU2xvdyhpbXBsKTsKIH0KQEAgLTI1MDEsMTEgKzI0OTksOSBAQCBFTkQKIEVO
RAogICAgIH0KIAotICAgIGlmICgkZG9tTWFwRnVuY3Rpb24pIHsKLSAgICAgICAgcHVzaChAaW1w
bENvbnRlbnQsIDw8RU5EKTsKKyAgICBwdXNoKEBpbXBsQ29udGVudCwgPDxFTkQpOwogICAgICR7
ZG9tTWFwRnVuY3Rpb259LnNldChpbXBsLCB2ODo6UGVyc2lzdGVudDx2ODo6T2JqZWN0Pjo6TmV3
KHdyYXBwZXIpKTsKIEVORAotICAgIH0KIAogICAgIHB1c2goQGltcGxDb250ZW50LCA8PEVORCk7
CiAgICAgcmV0dXJuIHdyYXBwZXI7CkBAIC0yNTQ5LDcgKzI1NDUsNiBAQCBzdWIgR2V0RG9tTWFw
RnVuY3Rpb24KICAgICBteSAkdHlwZSA9IHNoaWZ0OwogICAgIHJldHVybiAiZ2V0RE9NU1ZHRWxl
bWVudEluc3RhbmNlTWFwKCkiIGlmICR0eXBlIGVxICJTVkdFbGVtZW50SW5zdGFuY2UiOwogICAg
IHJldHVybiAiZ2V0RE9NTm9kZU1hcCgpIiBpZiAoJGRhdGFOb2RlICYmIElzTm9kZVN1YlR5cGUo
JGRhdGFOb2RlKSk7Ci0gICAgcmV0dXJuICIiIGlmICR0eXBlIGVxICJET01JbXBsZW1lbnRhdGlv
biI7CiAgICAgcmV0dXJuICJnZXRBY3RpdmVET01PYmplY3RNYXAoKSIgaWYgSXNBY3RpdmVEb21U
eXBlKCR0eXBlKTsKICAgICByZXR1cm4gImdldERPTU9iamVjdE1hcCgpIjsKIH0KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1Y4R0NDb250cm9sbGVyLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1Y4R0NDb250cm9sbGVyLmNwcAppbmRleCBmMWNmMjA2NzJm
ZmNkNzg2YTAxMjg1MmM2NmQyNTQzZDE5MTgwNzVmLi5hMzRkYzI0MjVlYmU3Zjc5MzViYTA5MThi
MGM4ZDJkYzc4MDc5OGMyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9W
OEdDQ29udHJvbGxlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvVjhHQ0Nv
bnRyb2xsZXIuY3BwCkBAIC0yOTAsNiArMjkwLDcgQEAgcHVibGljOgogICAgICAgICBpZiAobm9k
ZS0+aXNEb2N1bWVudE5vZGUoKSkgewogICAgICAgICAgICAgRG9jdW1lbnQqIGRvY3VtZW50ID0g
cmVpbnRlcnByZXRfY2FzdDxEb2N1bWVudCo+KG5vZGUpOwogICAgICAgICAgICAgYWRkRE9NT2Jq
ZWN0VG9Hcm91cChzdG9yZSwgZ3JvdXBJZCwgZG9jdW1lbnQtPnN0eWxlU2hlZXRzKCkpOworICAg
ICAgICAgICAgYWRkRE9NT2JqZWN0VG9Hcm91cChzdG9yZSwgZ3JvdXBJZCwgZG9jdW1lbnQtPmlt
cGxlbWVudGF0aW9uKCkpOwogICAgICAgICB9CiAKICAgICAgICAgV3JhcHBlclR5cGVJbmZvKiB0
eXBlSW5mbyA9IFY4RE9NV3JhcHBlcjo6ZG9tV3JhcHBlclR5cGUod3JhcHBlcik7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRE9NSW1wbGVtZW50YXRpb24uY3BwIGIvU291cmNlL1dl
YkNvcmUvZG9tL0RPTUltcGxlbWVudGF0aW9uLmNwcAppbmRleCAzMGU4ODlmOGMxZjJhY2ZmZjA1
YTU5NWUxMjUzNjRlNDUyODIxZGRiLi4zYmExMTM3MzM4N2IzZTcxMzY0OGE0OTU5NmM5YzEwNTA3
NmM3YjEyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRE9NSW1wbGVtZW50YXRpb24u
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9ET01JbXBsZW1lbnRhdGlvbi5jcHAKQEAgLTE3
MSw2ICsxNzEsMTIgQEAgc3RhdGljIGJvb2wgaXNTVkcxMUZlYXR1cmUoY29uc3QgU3RyaW5nICZm
ZWF0dXJlKQogfQogI2VuZGlmCiAKK0RPTUltcGxlbWVudGF0aW9uOjpET01JbXBsZW1lbnRhdGlv
bihEb2N1bWVudCogb3duZXJEb2N1bWVudCkKKyAgICA6IG1fb3duZXJEb2N1bWVudChvd25lckRv
Y3VtZW50KQoreworICAgIEFTU0VSVChtX293bmVyRG9jdW1lbnQpOworfQorCiBib29sIERPTUlt
cGxlbWVudGF0aW9uOjpoYXNGZWF0dXJlKGNvbnN0IFN0cmluZyYgZmVhdHVyZSwgY29uc3QgU3Ry
aW5nJiB2ZXJzaW9uKQogewogICAgIFN0cmluZyBsb3dlciA9IGZlYXR1cmUubG93ZXIoKTsKQEAg
LTI0MCw2ICsyNDYsMTIgQEAgUGFzc1JlZlB0cjxEb2N1bWVudD4gRE9NSW1wbGVtZW50YXRpb246
OmNyZWF0ZURvY3VtZW50KGNvbnN0IFN0cmluZyYgbmFtZXNwYWNlVVIKICAgICBlbHNlCiAgICAg
ICAgIGRvYyA9IERvY3VtZW50OjpjcmVhdGUoMCwgS1VSTCgpKTsKIAorICAgIGlmICghbV9vd25l
ckRvY3VtZW50KSB7CisgICAgICAgIGVjID0gSU5WQUxJRF9TVEFURV9FUlI7CisgICAgICAgIHJl
dHVybiAwOworICAgIH0KKyAgICBkb2MtPnNldFNlY3VyaXR5T3JpZ2luKG1fb3duZXJEb2N1bWVu
dC0+c2VjdXJpdHlPcmlnaW4oKSk7CisKICAgICBSZWZQdHI8Tm9kZT4gZG9jdW1lbnRFbGVtZW50
OwogICAgIGlmICghcXVhbGlmaWVkTmFtZS5pc0VtcHR5KCkpIHsKICAgICAgICAgZG9jdW1lbnRF
bGVtZW50ID0gZG9jLT5jcmVhdGVFbGVtZW50TlMobmFtZXNwYWNlVVJJLCBxdWFsaWZpZWROYW1l
LCBlYyk7CkBAIC0zMDAsNiArMzEyLDkgQEAgUGFzc1JlZlB0cjxIVE1MRG9jdW1lbnQ+IERPTUlt
cGxlbWVudGF0aW9uOjpjcmVhdGVIVE1MRG9jdW1lbnQoY29uc3QgU3RyaW5nJiB0aXQKICAgICBk
LT5vcGVuKCk7CiAgICAgZC0+d3JpdGUoIjwhZG9jdHlwZSBodG1sPjxodG1sPjxib2R5PjwvYm9k
eT48L2h0bWw+Iik7CiAgICAgZC0+c2V0VGl0bGUodGl0bGUpOworICAgIEFTU0VSVChtX293bmVy
RG9jdW1lbnQpOworICAgIGlmIChtX293bmVyRG9jdW1lbnQpCisgICAgICAgIGQtPnNldFNlY3Vy
aXR5T3JpZ2luKG1fb3duZXJEb2N1bWVudC0+c2VjdXJpdHlPcmlnaW4oKSk7CiAgICAgcmV0dXJu
IGQucmVsZWFzZSgpOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRE9NSW1w
bGVtZW50YXRpb24uaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9ET01JbXBsZW1lbnRhdGlvbi5oCmlu
ZGV4IGEyMGY3ZDIzZTE0YWYzMzJhOTFkMTMxZDBkMDUwNTFlODg5YjYxZWQuLjRlYWRiYTNmNzRk
ZGY2ZDBkZDY5N2E2MGJiNzgyZmQ2OTQ1MDlkYWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2RvbS9ET01JbXBsZW1lbnRhdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9ET01JbXBs
ZW1lbnRhdGlvbi5oCkBAIC00MSwxMiArNDEsMTIgQEAgdHlwZWRlZiBpbnQgRXhjZXB0aW9uQ29k
ZTsKIAogY2xhc3MgRE9NSW1wbGVtZW50YXRpb24gOiBwdWJsaWMgUmVmQ291bnRlZDxET01JbXBs
ZW1lbnRhdGlvbj4gewogcHVibGljOgotICAgIHN0YXRpYyBQYXNzUmVmUHRyPERPTUltcGxlbWVu
dGF0aW9uPiBjcmVhdGUoKSB7IHJldHVybiBhZG9wdFJlZihuZXcgRE9NSW1wbGVtZW50YXRpb24p
OyB9CisgICAgc3RhdGljIFBhc3NSZWZQdHI8RE9NSW1wbGVtZW50YXRpb24+IGNyZWF0ZShEb2N1
bWVudCogb3duZXJEb2N1bWVudCkgeyByZXR1cm4gYWRvcHRSZWYobmV3IERPTUltcGxlbWVudGF0
aW9uKG93bmVyRG9jdW1lbnQpKTsgfQogCiAgICAgLy8gRE9NIG1ldGhvZHMgJiBhdHRyaWJ1dGVz
IGZvciBET01JbXBsZW1lbnRhdGlvbgogICAgIHN0YXRpYyBib29sIGhhc0ZlYXR1cmUoY29uc3Qg
U3RyaW5nJiBmZWF0dXJlLCBjb25zdCBTdHJpbmcmIHZlcnNpb24pOwotICAgIHN0YXRpYyBQYXNz
UmVmUHRyPERvY3VtZW50VHlwZT4gY3JlYXRlRG9jdW1lbnRUeXBlKGNvbnN0IFN0cmluZyYgcXVh
bGlmaWVkTmFtZSwgY29uc3QgU3RyaW5nJiBwdWJsaWNJZCwgY29uc3QgU3RyaW5nICZzeXN0ZW1J
ZCwgRXhjZXB0aW9uQ29kZSYpOwotICAgIHN0YXRpYyBQYXNzUmVmUHRyPERvY3VtZW50PiBjcmVh
dGVEb2N1bWVudChjb25zdCBTdHJpbmcmIG5hbWVzcGFjZVVSSSwgY29uc3QgU3RyaW5nJiBxdWFs
aWZpZWROYW1lLCBEb2N1bWVudFR5cGUqLCBFeGNlcHRpb25Db2RlJik7CisgICAgUGFzc1JlZlB0
cjxEb2N1bWVudFR5cGU+IGNyZWF0ZURvY3VtZW50VHlwZShjb25zdCBTdHJpbmcmIHF1YWxpZmll
ZE5hbWUsIGNvbnN0IFN0cmluZyYgcHVibGljSWQsIGNvbnN0IFN0cmluZyYgc3lzdGVtSWQsIEV4
Y2VwdGlvbkNvZGUmKTsKKyAgICBQYXNzUmVmUHRyPERvY3VtZW50PiBjcmVhdGVEb2N1bWVudChj
b25zdCBTdHJpbmcmIG5hbWVzcGFjZVVSSSwgY29uc3QgU3RyaW5nJiBxdWFsaWZpZWROYW1lLCBE
b2N1bWVudFR5cGUqLCBFeGNlcHRpb25Db2RlJik7CiAKICAgICBET01JbXBsZW1lbnRhdGlvbiog
Z2V0SW50ZXJmYWNlKGNvbnN0IFN0cmluZyYgZmVhdHVyZSk7CiAKQEAgLTU0LDcgKzU0LDcgQEAg
cHVibGljOgogICAgIHN0YXRpYyBQYXNzUmVmUHRyPENTU1N0eWxlU2hlZXQ+IGNyZWF0ZUNTU1N0
eWxlU2hlZXQoY29uc3QgU3RyaW5nJiB0aXRsZSwgY29uc3QgU3RyaW5nJiBtZWRpYSwgRXhjZXB0
aW9uQ29kZSYpOwogCiAgICAgLy8gRnJvbSB0aGUgSFRNTERPTUltcGxlbWVudGF0aW9uIGludGVy
ZmFjZQotICAgIHN0YXRpYyBQYXNzUmVmUHRyPEhUTUxEb2N1bWVudD4gY3JlYXRlSFRNTERvY3Vt
ZW50KGNvbnN0IFN0cmluZyYgdGl0bGUpOworICAgIFBhc3NSZWZQdHI8SFRNTERvY3VtZW50PiBj
cmVhdGVIVE1MRG9jdW1lbnQoY29uc3QgU3RyaW5nJiB0aXRsZSk7CiAKICAgICAvLyBPdGhlciBt
ZXRob2RzIChub3QgcGFydCBvZiBET00pCiAgICAgc3RhdGljIFBhc3NSZWZQdHI8RG9jdW1lbnQ+
IGNyZWF0ZURvY3VtZW50KGNvbnN0IFN0cmluZyYgTUlNRVR5cGUsIEZyYW1lKiwgY29uc3QgS1VS
TCYsIGJvb2wgaW5WaWV3U291cmNlTW9kZSk7CkBAIC02Miw4ICs2MiwxMyBAQCBwdWJsaWM6CiAg
ICAgc3RhdGljIGJvb2wgaXNYTUxNSU1FVHlwZShjb25zdCBTdHJpbmcmIE1JTUVUeXBlKTsKICAg
ICBzdGF0aWMgYm9vbCBpc1RleHRNSU1FVHlwZShjb25zdCBTdHJpbmcmIE1JTUVUeXBlKTsKIAor
ICAgIERvY3VtZW50KiBvd25lckRvY3VtZW50KCkgeyByZXR1cm4gbV9vd25lckRvY3VtZW50OyB9
CisgICAgdm9pZCBvd25lckRvY3VtZW50RGVzdHJveWVkKCkgeyBtX293bmVyRG9jdW1lbnQgPSAw
OyB9CisKIHByaXZhdGU6Ci0gICAgRE9NSW1wbGVtZW50YXRpb24oKSB7IH0KKyAgICBET01JbXBs
ZW1lbnRhdGlvbihEb2N1bWVudCogb3duZXJEb2N1bWVudCk7CisKKyAgICBEb2N1bWVudCogbV9v
d25lckRvY3VtZW50OwogfTsKIAogfSAvL25hbWVzcGFjZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvZG9tL0RPTUltcGxlbWVudGF0aW9uLmlkbCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9ET01J
bXBsZW1lbnRhdGlvbi5pZGwKaW5kZXggODFkZjZjODgwOGJmZDNmOTY1M2ZlMGFjNTdjMzY4NjY3
ZjdhMmRlMS4uODQyMDI4MWIxNDdiODBkMWZiY2Y5OGIzNzJhMjE2OGI5YWExYjgzNCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0RPTUltcGxlbWVudGF0aW9uLmlkbAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9kb20vRE9NSW1wbGVtZW50YXRpb24uaWRsCkBAIC0yMCw3ICsyMCw5IEBACiAK
IG1vZHVsZSBjb3JlIHsKIAotICAgIGludGVyZmFjZSBET01JbXBsZW1lbnRhdGlvbiB7CisgICAg
aW50ZXJmYWNlIFsKKyAgICAgICAgQ3VzdG9tTWFya0Z1bmN0aW9uCisgICAgXSBET01JbXBsZW1l
bnRhdGlvbiB7CiAKICAgICAgICAgLy8gRE9NIExldmVsIDEKIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5j
cHAKaW5kZXggYTdiYjg1YTFmMmFlNzRjZjRkM2UxMmFjYWFmNjUxZTRmZTNjYjNiZi4uOTk4MDJi
OTIxNzY0Y2QyMDFhMWE5Y2VjOGViYTMzMWJiNTVlYjdhZiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvZG9tL0RvY3VtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQu
Y3BwCkBAIC02MDIsNiArNjAyLDkgQEAgRG9jdW1lbnQ6On5Eb2N1bWVudCgpCiAKICAgICBpZiAo
bV9tZWRpYVF1ZXJ5TWF0Y2hlcikKICAgICAgICAgbV9tZWRpYVF1ZXJ5TWF0Y2hlci0+ZG9jdW1l
bnREZXN0cm95ZWQoKTsKKworICAgIGlmIChtX2ltcGxlbWVudGF0aW9uKQorICAgICAgICBtX2lt
cGxlbWVudGF0aW9uLT5vd25lckRvY3VtZW50RGVzdHJveWVkKCk7CiB9CiAKIE1lZGlhUXVlcnlN
YXRjaGVyKiBEb2N1bWVudDo6bWVkaWFRdWVyeU1hdGNoZXIoKQpAQCAtNjgzLDEwICs2ODYsMTAg
QEAgdm9pZCBEb2N1bWVudDo6c2V0RG9jVHlwZShQYXNzUmVmUHRyPERvY3VtZW50VHlwZT4gZG9j
VHlwZSkKICAgICAgICAgbV9kb2NUeXBlLT5zZXREb2N1bWVudCh0aGlzKTsKIH0KIAotRE9NSW1w
bGVtZW50YXRpb24qIERvY3VtZW50OjppbXBsZW1lbnRhdGlvbigpIGNvbnN0CitET01JbXBsZW1l
bnRhdGlvbiogRG9jdW1lbnQ6OmltcGxlbWVudGF0aW9uKCkKIHsKICAgICBpZiAoIW1faW1wbGVt
ZW50YXRpb24pCi0gICAgICAgIG1faW1wbGVtZW50YXRpb24gPSBET01JbXBsZW1lbnRhdGlvbjo6
Y3JlYXRlKCk7CisgICAgICAgIG1faW1wbGVtZW50YXRpb24gPSBET01JbXBsZW1lbnRhdGlvbjo6
Y3JlYXRlKHRoaXMpOwogICAgIHJldHVybiBtX2ltcGxlbWVudGF0aW9uLmdldCgpOwogfQogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaCBiL1NvdXJjZS9XZWJDb3Jl
L2RvbS9Eb2N1bWVudC5oCmluZGV4IDllMTVhYzdmZGJmODE1NGZhYzMwYzQzN2FlM2Y4MzUzNTdl
MzU1NTkuLjQ3MzBlOTRlY2M1YmNjZDc2N2M5YmE2MmNmMTE4OTc1YWM4NWM5ZTAgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Rv
bS9Eb2N1bWVudC5oCkBAIC0zMDUsNyArMzA1LDcgQEAgcHVibGljOgogCiAgICAgRG9jdW1lbnRU
eXBlKiBkb2N0eXBlKCkgY29uc3QgeyByZXR1cm4gbV9kb2NUeXBlLmdldCgpOyB9CiAKLSAgICBE
T01JbXBsZW1lbnRhdGlvbiogaW1wbGVtZW50YXRpb24oKSBjb25zdDsKKyAgICBET01JbXBsZW1l
bnRhdGlvbiogaW1wbGVtZW50YXRpb24oKTsKICAgICAKICAgICBFbGVtZW50KiBkb2N1bWVudEVs
ZW1lbnQoKSBjb25zdAogICAgIHsK
</data>

          </attachment>
      

    </bug>

</bugzilla>