<?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>109577</bug_id>
          
          <creation_ts>2013-02-12 06:10:29 -0800</creation_ts>
          <short_desc>[WK2] Asynchronous spell checking implementation</short_desc>
          <delta_ts>2013-03-01 03:41:42 -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>WebKit2</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>110208</dependson>
          <blocked>81042</blocked>
    
    <blocked>108172</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Grzegorz Czajkowski">g.czajkowski</reporter>
          <assigned_to name="Grzegorz Czajkowski">g.czajkowski</assigned_to>
          <cc>abecsi</cc>
    
    <cc>andersca</cc>
    
    <cc>buildbot</cc>
    
    <cc>cmarcelo</cc>
    
    <cc>enrica</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>menard</cc>
    
    <cc>mifenton</cc>
    
    <cc>morrita</cc>
    
    <cc>rakuco</cc>
    
    <cc>rniwa</cc>
    
    <cc>webkit-ews</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>830859</commentid>
    <comment_count>0</comment_count>
    <who name="Grzegorz Czajkowski">g.czajkowski</who>
    <bug_when>2013-02-12 06:10:29 -0800</bug_when>
    <thetext>This bug adds the core implementation of the asynchronous spell checking for WK2.

Introduction:
-------------

WebCore asynchronous spell checking implementation is based on abstract class (TextCheckingRequest) which is passed to the client to check spelling for the request and call didSuccess/didCancel when the client has done checking.

WebCore&apos;s SpellChecker object (mainly responsible for asynchronous spell checking) is connected with Frame object. As a result each frame contains own the queue of the spell checking requests.

Proposed solution:
--------------

Associate the abstract TextCheckingRequest with the unique identifier on WebProcess side.
Extract the request data from the TextCheckingRequest class and pass it to the UIProcess.
The client (TextChecker{Gtk/Mac/Efl/Qt}.cpp) gets a new defined abstract object to get the request data and to notify about the results.
After checking spelling the client calls didFinishChecking()/didCancelChecking() (similarly to WebCore::didSuccess/WebCore::didCancel)  on the abstract type.
The implementation sends message to WebProcess - the request (with the proper identifier) has been finished.
WebPage calls on the proper TextCheckingRequest object didSuccess/didCancel method.

Patch is coming.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>831858</commentid>
    <comment_count>1</comment_count>
      <attachid>188070</attachid>
    <who name="Grzegorz Czajkowski">g.czajkowski</who>
    <bug_when>2013-02-13 06:20:40 -0800</bug_when>
    <thetext>Created attachment 188070
proposed patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>831866</commentid>
    <comment_count>2</comment_count>
      <attachid>188070</attachid>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2013-02-13 06:34:57 -0800</bug_when>
    <thetext>Comment on attachment 188070
proposed patch

Attachment 188070 did not pass qt-wk2-ews (qt):
Output: http://queues.webkit.org/results/16514166</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>831872</commentid>
    <comment_count>3</comment_count>
      <attachid>188070</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2013-02-13 06:49:28 -0800</bug_when>
    <thetext>Comment on attachment 188070
proposed patch

Attachment 188070 did not pass mac-wk2-ews (mac-wk2):
Output: http://queues.webkit.org/results/16537149</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>831905</commentid>
    <comment_count>4</comment_count>
      <attachid>188070</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2013-02-13 07:48:56 -0800</bug_when>
    <thetext>Comment on attachment 188070
proposed patch

Attachment 188070 did not pass mac-ews (mac):
Output: http://queues.webkit.org/results/16527173</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>835432</commentid>
    <comment_count>5</comment_count>
      <attachid>188873</attachid>
    <who name="Grzegorz Czajkowski">g.czajkowski</who>
    <bug_when>2013-02-18 06:28:06 -0800</bug_when>
    <thetext>Created attachment 188873
hopefully makes EWS happier</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>835460</commentid>
    <comment_count>6</comment_count>
      <attachid>188873</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2013-02-18 07:15:41 -0800</bug_when>
    <thetext>Comment on attachment 188873
hopefully makes EWS happier

Attachment 188873 did not pass mac-wk2-ews (mac-wk2):
Output: http://queues.webkit.org/results/16617154</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>835616</commentid>
    <comment_count>7</comment_count>
      <attachid>188873</attachid>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2013-02-18 10:41:33 -0800</bug_when>
    <thetext>Comment on attachment 188873
hopefully makes EWS happier

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

Looks good overall, I think it might make sense to land the WebCore specific changes as a separate patch though.

&gt; Source/WebCore/platform/text/TextChecking.h:119
&gt; +class TextCheckingRequest : public RefCounted&lt;TextCheckingRequest&gt;, public TextCheckingRequestData {

It’s a little weird to use inheritance here. Can you make TextCheckingRequestData a member instead?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>836249</commentid>
    <comment_count>8</comment_count>
    <who name="Grzegorz Czajkowski">g.czajkowski</who>
    <bug_when>2013-02-19 04:49:38 -0800</bug_when>
    <thetext>(In reply to comment #7)
&gt; (From update of attachment 188873 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=188873&amp;action=review
&gt; 
&gt; Looks good overall, I think it might make sense to land the WebCore specific changes as a separate patch though.

Done (bug 110208).

&gt; 
&gt; &gt; Source/WebCore/platform/text/TextChecking.h:119
&gt; &gt; +class TextCheckingRequest : public RefCounted&lt;TextCheckingRequest&gt;, public TextCheckingRequestData {
&gt; 
&gt; It’s a little weird to use inheritance here. Can you make TextCheckingRequestData a member instead?

We should be aware of further changes in WebCore (Editor.cpp/SpellChecker.cpp) and ports implementations (BlackBerry, Chromium, Mac) then.
At the moment we are transparently using &apos;TextCheckingRequest&apos; as data container and callback object. Making &apos;TextCheckingRequestData&apos; as member of &apos;TextCheckingRequest&apos; class will cause update a lot of code for example, request-&gt;sequecene() to request-&gt;data().sequence().
IMHO the most advantage of inheritance here is not exposing the setter method for sequecene(). This member has a default value (unrequestedSequence = -1) and as a protected member can be changed by SpellCheckRequest::setCheckerAndSequence (SpellCheckRequest inherits TextCheckingRequest).
If you guys prefer &apos;TextCheckingRequestData&apos; member as member of &apos;TextCheckingRequest&apos; instead of inheritance just let me know, I can change it at bug 110208</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>836285</commentid>
    <comment_count>9</comment_count>
      <attachid>188873</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2013-02-19 05:45:35 -0800</bug_when>
    <thetext>Comment on attachment 188873
hopefully makes EWS happier

Attachment 188873 did not pass mac-ews (mac):
Output: http://queues.webkit.org/results/16621673</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>836350</commentid>
    <comment_count>10</comment_count>
      <attachid>188873</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2013-02-19 07:00:10 -0800</bug_when>
    <thetext>Comment on attachment 188873
hopefully makes EWS happier

Attachment 188873 did not pass mac-ews (mac):
Output: http://queues.webkit.org/results/16621712</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>837138</commentid>
    <comment_count>11</comment_count>
    <who name="Hajime Morrita">morrita</who>
    <bug_when>2013-02-19 21:58:42 -0800</bug_when>
    <thetext>&gt; If you guys prefer &apos;TextCheckingRequestData&apos; member as member of &apos;TextCheckingRequest&apos; instead of inheritance just let me know, I can change it at bug 110208
Let&apos;s do it. I expect the WebCore change being fairly mechanical and 
not significant, even though the number of line changed will be a bit large.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>839417</commentid>
    <comment_count>12</comment_count>
      <attachid>189731</attachid>
    <who name="Grzegorz Czajkowski">g.czajkowski</who>
    <bug_when>2013-02-22 02:36:33 -0800</bug_when>
    <thetext>Created attachment 189731
rebased after r143688

Rebased as the dependent bug 110208 was resolved.

Added one method spellDocumentTag() to TextCheckerCompetion class. It returns the WebPageProxy&apos;s spellDocumentTag as the client might be interested in from which page the request came for example, the client (in requestCheckingOfString) may call checkSpellingOfStrin(spellDocumentTag...) or checkTextOfParagraph(spellDocumentTag,...)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>839584</commentid>
    <comment_count>13</comment_count>
      <attachid>189731</attachid>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2013-02-22 08:20:06 -0800</bug_when>
    <thetext>Comment on attachment 189731
rebased after r143688

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

How is async text checking enabled? (My guess is that it&apos;s a setting in WebCore?)

Patch looks good overall, but I&apos;d like to see another patch with my suggested changes incorporated.

&gt; Source/WebKit2/UIProcess/TextCheckerCompletion.cpp:31
&gt; +PassRefPtr&lt;TextCheckerCompletionImpl&gt; TextCheckerCompletionImpl::create(uint64_t requestID, const WebCore::TextCheckingRequestData&amp; requestData, WebPageProxy* page)

Please use &quot;using namespace WebCore;&quot; so you don&apos;t have to use the WebCore:: qualifier here.

&gt; Source/WebKit2/UIProcess/TextCheckerCompletion.cpp:36
&gt; +TextCheckerCompletionImpl::TextCheckerCompletionImpl(uint64_t requestID, const WebCore::TextCheckingRequestData&amp; requestData, WebPageProxy* page)

Ditto.

&gt; Source/WebKit2/UIProcess/TextCheckerCompletion.cpp:43
&gt; +const WebCore::TextCheckingRequestData&amp; TextCheckerCompletionImpl::textCheckingRequestData() const

Ditto.

&gt; Source/WebKit2/UIProcess/TextCheckerCompletion.cpp:53
&gt; +void TextCheckerCompletionImpl::didFinishCheckingText(const Vector&lt;WebCore::TextCheckingResult&gt;&amp; result) const

Ditto.

&gt; Source/WebKit2/UIProcess/TextCheckerCompletion.h:47
&gt; +class TextCheckerCompletionImpl : public TextCheckerCompletion {

I don&apos;t understand why we need both a TextCheckerCompletion class and a TextCheckerCompletionImpl class - can&apos;t we just have a single class?

&gt; Source/WebKit2/UIProcess/TextCheckerCompletion.h:56
&gt; +    virtual const WebCore::TextCheckingRequestData&amp; textCheckingRequestData() const OVERRIDE;
&gt; +    virtual int64_t spellDocumentTag() OVERRIDE;
&gt; +
&gt; +    virtual void didFinishCheckingText(const Vector&lt;WebCore::TextCheckingResult&gt;&amp;) const OVERRIDE;
&gt; +    virtual void didCancelCheckingText() const OVERRIDE;

These can probably all be private.

&gt; Source/WebKit2/WebProcess/WebPage/WebPage.cpp:3783
&gt; +void WebPage::addTextCheckingRequest(uint64_t requestID, PassRefPtr&lt;WebCore::TextCheckingRequest&gt; request)

No need for WebCore:: here.

&gt; Source/WebKit2/WebProcess/WebPage/WebPage.cpp:3788
&gt; +void WebPage::didFinishCheckingText(uint64_t requestID, const Vector&lt;WebCore::TextCheckingResult&gt;&amp; result)

Ditto.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>840852</commentid>
    <comment_count>14</comment_count>
      <attachid>190027</attachid>
    <who name="Grzegorz Czajkowski">g.czajkowski</who>
    <bug_when>2013-02-25 04:04:52 -0800</bug_when>
    <thetext>Created attachment 190027
apply Anders&apos; suggestions</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>840889</commentid>
    <comment_count>15</comment_count>
    <who name="Grzegorz Czajkowski">g.czajkowski</who>
    <bug_when>2013-02-25 05:15:35 -0800</bug_when>
    <thetext>(In reply to comment #13)
&gt; (From update of attachment 189731 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=189731&amp;action=review
&gt; 
&gt; How is async text checking enabled? (My guess is that it&apos;s a setting in WebCore?)

Yes, there&apos;s setting in WebCore (asynchronousSpellCheckingEnabled). We need to expose it for WK2 - partially it&apos;s done at bug 81042. I am currently adapting it to the trunk.

&gt; &gt; Source/WebKit2/UIProcess/TextCheckerCompletion.h:56
&gt; &gt; +    virtual const WebCore::TextCheckingRequestData&amp; textCheckingRequestData() const OVERRIDE;
&gt; &gt; +    virtual int64_t spellDocumentTag() OVERRIDE;
&gt; &gt; +
&gt; &gt; +    virtual void didFinishCheckingText(const Vector&lt;WebCore::TextCheckingResult&gt;&amp;) const OVERRIDE;
&gt; &gt; +    virtual void didCancelCheckingText() const OVERRIDE;
&gt; 
&gt; These can probably all be private.

They are responsible for getting the request data and notifying the WebPage about spelling results. The client (TextChecker{Efl,Gtk,Mac,Qt}) calls these methods. You can see example of their usage at bug 108172.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>842968</commentid>
    <comment_count>16</comment_count>
    <who name="Grzegorz Czajkowski">g.czajkowski</who>
    <bug_when>2013-02-27 05:35:22 -0800</bug_when>
    <thetext>The reviewers might be interested in the tests result with this patch, see bug 81042, comment 13.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>844235</commentid>
    <comment_count>17</comment_count>
      <attachid>190027</attachid>
    <who name="Enrica Casucci">enrica</who>
    <bug_when>2013-02-28 11:03:43 -0800</bug_when>
    <thetext>Comment on attachment 190027
apply Anders&apos; suggestions

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

Overall it looks good to me. Just some minor comments about the changelog.

&gt; Source/WebKit2/ChangeLog:28
&gt; +        (CoreIPC::::decode):

Remove the 2 lines above.

&gt; Source/WebKit2/ChangeLog:36
&gt; +        (TextChecker):

Remove.

&gt; Source/WebKit2/ChangeLog:40
&gt; +        (WebKit):

Ditto.

&gt; Source/WebKit2/ChangeLog:58
&gt; +        (TextCheckerCompletion):

ditto

&gt; Source/WebKit2/ChangeLog:120
&gt; +        (WebPage):

Ditto.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>844873</commentid>
    <comment_count>18</comment_count>
    <who name="Grzegorz Czajkowski">g.czajkowski</who>
    <bug_when>2013-03-01 00:09:33 -0800</bug_when>
    <thetext>Thanks Enrica for your review!
I&apos;ll apply it before landing.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>844883</commentid>
    <comment_count>19</comment_count>
      <attachid>190900</attachid>
    <who name="Grzegorz Czajkowski">g.czajkowski</who>
    <bug_when>2013-03-01 00:35:26 -0800</bug_when>
    <thetext>Created attachment 190900
patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>844886</commentid>
    <comment_count>20</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-03-01 00:37:29 -0800</bug_when>
    <thetext>Attachment 190900 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;Source/WebKit2/CMakeLists.txt&apos;, u&apos;Source/WebKit2/ChangeLog&apos;, u&apos;Source/WebKit2/GNUmakefile.list.am&apos;, u&apos;Source/WebKit2/Scripts/webkit2/messages.py&apos;, u&apos;Source/WebKit2/Shared/WebCoreArgumentCoders.cpp&apos;, u&apos;Source/WebKit2/Shared/WebCoreArgumentCoders.h&apos;, u&apos;Source/WebKit2/Target.pri&apos;, u&apos;Source/WebKit2/UIProcess/TextChecker.h&apos;, u&apos;Source/WebKit2/UIProcess/TextCheckerCompletion.cpp&apos;, u&apos;Source/WebKit2/UIProcess/TextCheckerCompletion.h&apos;, u&apos;Source/WebKit2/UIProcess/WebPageProxy.cpp&apos;, u&apos;Source/WebKit2/UIProcess/WebPageProxy.h&apos;, u&apos;Source/WebKit2/UIProcess/WebPageProxy.messages.in&apos;, u&apos;Source/WebKit2/UIProcess/efl/TextCheckerEfl.cpp&apos;, u&apos;Source/WebKit2/UIProcess/gtk/TextCheckerGtk.cpp&apos;, u&apos;Source/WebKit2/UIProcess/mac/TextCheckerMac.mm&apos;, u&apos;Source/WebKit2/UIProcess/qt/TextCheckerQt.cpp&apos;, u&apos;Source/WebKit2/WebKit2.xcodeproj/project.pbxproj&apos;, u&apos;Source/WebKit2/WebProcess/WebCoreSupport/WebEditorClient.cpp&apos;, u&apos;Source/WebKit2/WebProcess/WebPage/WebPage.cpp&apos;, u&apos;Source/WebKit2/WebProcess/WebPage/WebPage.h&apos;, u&apos;Source/WebKit2/WebProcess/WebPage/WebPage.messages.in&apos;]&quot; exit_code: 1
Source/WebKit2/WebProcess/WebCoreSupport/WebEditorClient.cpp:49:  Alphabetical sorting problem.  [build/include_order] [4]
Total errors found: 1 in 22 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>844895</commentid>
    <comment_count>21</comment_count>
      <attachid>190903</attachid>
    <who name="Grzegorz Czajkowski">g.czajkowski</who>
    <bug_when>2013-03-01 00:49:40 -0800</bug_when>
    <thetext>Created attachment 190903
fix style after rebase</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>844986</commentid>
    <comment_count>22</comment_count>
      <attachid>190903</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-03-01 02:51:20 -0800</bug_when>
    <thetext>Comment on attachment 190903
fix style after rebase

Rejecting attachment 190903 from commit-queue.

Failed to run &quot;[&apos;/mnt/git/webkit-commit-queue/Tools/Scripts/webkit-patch&apos;, &apos;--status-host=webkit-commit-queue.appspot.com&apos;, &apos;--bot-id=gce-cq-04&apos;, &apos;land-attachment&apos;, &apos;--force-clean&apos;, &apos;--non-interactive&apos;, &apos;--parent-command=commit-queue&apos;, 190903, &apos;--port=chromium-xvfb&apos;]&quot; exit_code: 2 cwd: /mnt/git/webkit-commit-queue

Last 500 characters of output:
queue/Source/WebKit/chromium/third_party/sfntly/cpp/src --revision 134 --non-interactive --force --accept theirs-conflict --ignore-externals&apos; in &apos;/mnt/git/webkit-commit-queue/Source/WebKit/chromium&apos;
46&gt;At revision 134.

________ running &apos;/usr/bin/python tools/clang/scripts/update.py --mac-only&apos; in &apos;/mnt/git/webkit-commit-queue/Source/WebKit/chromium&apos;

________ running &apos;/usr/bin/python gyp_webkit&apos; in &apos;/mnt/git/webkit-commit-queue/Source/WebKit/chromium&apos;
Updating webkit projects from gyp files...

Full output: http://webkit-commit-queue.appspot.com/results/16851208</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>845032</commentid>
    <comment_count>23</comment_count>
    <who name="Grzegorz Czajkowski">g.czajkowski</who>
    <bug_when>2013-03-01 03:41:42 -0800</bug_when>
    <thetext>Committed r144436: &lt;http://trac.webkit.org/changeset/144436&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>188070</attachid>
            <date>2013-02-13 06:20:40 -0800</date>
            <delta_ts>2013-02-18 06:28:06 -0800</delta_ts>
            <desc>proposed patch</desc>
            <filename>spelling-asynchronous-spell-checking-WK2.patch</filename>
            <type>text/plain</type>
            <size>32020</size>
            <attacher name="Grzegorz Czajkowski">g.czajkowski</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCA5M2U0NThlLi5kYzQ2OGUwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzMg
QEAKKzIwMTMtMDItMTIgIEdyemVnb3J6IEN6YWprb3dza2kgIDxnLmN6YWprb3dza2lAc2Ftc3Vu
Zy5jb20+LCBNYXJpdXN6IEdyemVnb3JjenlrIDxtYXJpdXN6LmdAc2Ftc3VuZy5jb20+CisKKyAg
ICAgICAgW1dLMl0gQXN5bmNocm9ub3VzIHNwZWxsIGNoZWNraW5nIGltcGxlbWVudGF0aW9uCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDgxNzIKKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUaGUgY2hhbmdl
cyBpbiBXZWJDb3JlIGFyZSByZXF1aXJlZCB0byBpbXBsZW1lbnQgYXN5bmNocm9ub3VzIHNwZWxs
IGNoZWNraW5nIGluIFdLMi4KKyAgICAgICAgVGhlIGlkZWEgb2YgYXN5bmNocm9ub3VzIHNwZWxs
IGNoZWNraW5nIGluIFdLMSBpcyB0byBwYXNzIHRoZSBwb2ludGVyIHRvIGFic3RyYWN0IG9iamVj
dAorICAgICAgICB0byB0aGUgY2xpZW50IHdobyBpcyBhYmxlIHRvIHZlcmlmeSB0aGUgZ2l2ZW4g
dGV4dCBhbmQgbm90aWZ5IHRoZSBXZWJDb3JlIGFib3V0IHJlc3VsdHMuCisgICAgICAgIFdLMiBl
eHRyYWN0cyB0aGUgcmVxdWVzdCBkYXRhIGFuZCBwYXNzZXMgaXQgKHdpdGggYWRkaXRpb25hbCBp
bmZvcm1hdGlvbikgdG8gdGhlIFVJUHJvY2Vzcy4KKworICAgICAgICBObyBuZXcgdGVzdHMsIGNv
dmVyZWQgYnkgZWRpdGluZy9zcGVsbGluZyB0ZXN0cy4KKworICAgICAgICAqIGVkaXRpbmcvU3Bl
bGxDaGVja2VyLmNwcDoKKyAgICAgICAgTW92ZSAndW5yZXF1ZXN0ZWRTZXF1ZW5jZScgZGVjbGFy
YXRpb24gdG8gdGhlICdUZXh0Q2hlY2tpbmcuaCcgdG8gYmUKKyAgICAgICAgYWNjZXNzaWJsZSBi
eSBkZWZhdWx0IGNvbnN0cnVjdG9yIG9mICdUZXh0Q2hlY2tpbmdSZXF1ZXN0RGF0YScuCisKKyAg
ICAgICAgKiBwbGF0Zm9ybS90ZXh0L1RleHRDaGVja2luZy5oOgorICAgICAgICAoV2ViQ29yZSk6
CisgICAgICAgIChXZWJDb3JlOjpUZXh0Q2hlY2tpbmdSZXF1ZXN0RGF0YTo6VGV4dENoZWNraW5n
UmVxdWVzdERhdGEpOgorICAgICAgICBJbnRyb2R1Y2UgYSBuZXcgJ1RleHRDaGVja2luZ1JlcXVl
c3REYXRhJyBjbGFzcyB0byBleHRyYWN0IHRoZSByZXF1ZXN0IGRhdGEKKyAgICAgICAgZnJvbSB0
aGUgJ1RleHRDaGVja2luZ1JlcXVlc3QnIHRvIGFsbG93IHJldHJpZXZlIGl0IGZyb20gdGhlIGFi
c3RyYWN0IGNsYXNzIGFuZAorICAgICAgICBwYXNzIHRvIFVJUHJvY2Vzcy4KKworICAgICAgICAo
VGV4dENoZWNraW5nUmVxdWVzdCk6CisgICAgICAgIChXZWJDb3JlOjpUZXh0Q2hlY2tpbmdSZXF1
ZXN0OjpUZXh0Q2hlY2tpbmdSZXF1ZXN0KToKKyAgICAgICAgSW5oZXJpdCAnVGV4dENoZWNraW5n
UmVxdWVzdERhdGEnLgorICAgICAgICAoV2ViQ29yZTo6VGV4dENoZWNraW5nUmVxdWVzdDo6flRl
eHRDaGVja2luZ1JlcXVlc3QpOgorCiAyMDEzLTAyLTEzICBQYWJsbyBGbG91cmV0ICA8cGFibG9m
QG1vdG9yb2xhLmNvbT4KIAogICAgICAgICBJbXBsZW1lbnQgY3NzLWNvbmRpdGlvbmFsJ3MgQ1NT
LnN1cHBvcnRzKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvU3BlbGxDaGVj
a2VyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvU3BlbGxDaGVja2VyLmNwcAppbmRleCAz
NjBmYjljLi5iM2MxYTRhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1NwZWxs
Q2hlY2tlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9TcGVsbENoZWNrZXIuY3Bw
CkBAIC00NSw4ICs0NSw2IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotc3RhdGljIGNvbnN0
IGludCB1bnJlcXVlc3RlZFNlcXVlbmNlID0gLTE7Ci0KIFNwZWxsQ2hlY2tSZXF1ZXN0OjpTcGVs
bENoZWNrUmVxdWVzdChQYXNzUmVmUHRyPFJhbmdlPiBjaGVja2luZ1JhbmdlLCBQYXNzUmVmUHRy
PFJhbmdlPiBwYXJhZ3JhcGhSYW5nZSwgY29uc3QgU3RyaW5nJiB0ZXh0LCBUZXh0Q2hlY2tpbmdU
eXBlTWFzayBtYXNrLCBUZXh0Q2hlY2tpbmdQcm9jZXNzVHlwZSBwcm9jZXNzVHlwZSkKICAgICA6
IFRleHRDaGVja2luZ1JlcXVlc3QodW5yZXF1ZXN0ZWRTZXF1ZW5jZSwgdGV4dCwgbWFzaywgcHJv
Y2Vzc1R5cGUpCiAgICAgLCBtX2NoZWNrZXIoMCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL3RleHQvVGV4dENoZWNraW5nLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS90
ZXh0L1RleHRDaGVja2luZy5oCmluZGV4IDEzZGE1ZTkuLjI4MDgzOTYgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL3RleHQvVGV4dENoZWNraW5nLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vdGV4dC9UZXh0Q2hlY2tpbmcuaApAQCAtNTUsNiArNTUsNyBAQCBuYW1l
c3BhY2UgV2ViQ29yZSB7CiAjZW5kaWYgLy8gI2lmIFBMQVRGT1JNKE1BQykgJiYgKFBMQVRGT1JN
KElPUykgfHwgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMDcwKQogCiBlbnVt
IFRleHRDaGVja2luZ1R5cGUgeworICAgIFRleHRDaGVja2luZ1R5cGVOb25lICAgICAgICA9IDAs
CiAgICAgVGV4dENoZWNraW5nVHlwZVNwZWxsaW5nICAgID0gMSA8PCAxLAogICAgIFRleHRDaGVj
a2luZ1R5cGVHcmFtbWFyICAgICA9IDEgPDwgMiwKICAgICBUZXh0Q2hlY2tpbmdUeXBlTGluayAg
ICAgICAgPSAxIDw8IDUsCkBAIC04NywxOSArODgsMjIgQEAgc3RydWN0IFRleHRDaGVja2luZ1Jl
c3VsdCB7CiAgICAgU3RyaW5nIHJlcGxhY2VtZW50OwogfTsKIAotY2xhc3MgVGV4dENoZWNraW5n
UmVxdWVzdCA6IHB1YmxpYyBSZWZDb3VudGVkPFRleHRDaGVja2luZ1JlcXVlc3Q+IHsKK2NvbnN0
IGludCB1bnJlcXVlc3RlZFNlcXVlbmNlID0gLTE7CisKK2NsYXNzIFRleHRDaGVja2luZ1JlcXVl
c3REYXRhIHsKIHB1YmxpYzoKLSAgICBUZXh0Q2hlY2tpbmdSZXF1ZXN0KGludCBzZXF1ZW5jZSwg
Y29uc3QgU3RyaW5nJiB0ZXh0LCBUZXh0Q2hlY2tpbmdUeXBlTWFzayBtYXNrLCBUZXh0Q2hlY2tp
bmdQcm9jZXNzVHlwZSBwcm9jZXNzVHlwZSkKKyAgICBUZXh0Q2hlY2tpbmdSZXF1ZXN0RGF0YSgp
CisgICAgICAgIDogbV9zZXF1ZW5jZSh1bnJlcXVlc3RlZFNlcXVlbmNlKQorICAgICAgICAsIG1f
bWFzayhUZXh0Q2hlY2tpbmdUeXBlTm9uZSkKKyAgICAgICAgLCBtX3Byb2Nlc3NUeXBlKFRleHRD
aGVja2luZ1Byb2Nlc3NJbmNyZW1lbnRhbCkKKyAgICB7IH0KKyAgICBUZXh0Q2hlY2tpbmdSZXF1
ZXN0RGF0YShpbnQgc2VxdWVuY2UsIGNvbnN0IFN0cmluZyYgdGV4dCwgVGV4dENoZWNraW5nVHlw
ZU1hc2sgbWFzaywgVGV4dENoZWNraW5nUHJvY2Vzc1R5cGUgcHJvY2Vzc1R5cGUpCiAgICAgICAg
IDogbV9zZXF1ZW5jZShzZXF1ZW5jZSkKICAgICAgICAgLCBtX3RleHQodGV4dCkKICAgICAgICAg
LCBtX21hc2sobWFzaykKICAgICAgICAgLCBtX3Byb2Nlc3NUeXBlKHByb2Nlc3NUeXBlKQogICAg
IHsgfQogCi0gICAgdmlydHVhbCB+VGV4dENoZWNraW5nUmVxdWVzdCgpIHsgfQotICAgIHZpcnR1
YWwgdm9pZCBkaWRTdWNjZWVkKGNvbnN0IFZlY3RvcjxUZXh0Q2hlY2tpbmdSZXN1bHQ+JikgPSAw
OwotICAgIHZpcnR1YWwgdm9pZCBkaWRDYW5jZWwoKSA9IDA7Ci0KICAgICBpbnQgc2VxdWVuY2Uo
KSBjb25zdCB7IHJldHVybiBtX3NlcXVlbmNlOyB9CiAgICAgU3RyaW5nIHRleHQoKSBjb25zdCB7
IHJldHVybiBtX3RleHQ7IH0KICAgICBUZXh0Q2hlY2tpbmdUeXBlTWFzayBtYXNrKCkgY29uc3Qg
eyByZXR1cm4gbV9tYXNrOyB9CkBAIC0xMTIsNiArMTE2LDE3IEBAIHByb3RlY3RlZDoKICAgICBU
ZXh0Q2hlY2tpbmdQcm9jZXNzVHlwZSBtX3Byb2Nlc3NUeXBlOwogfTsKIAorY2xhc3MgVGV4dENo
ZWNraW5nUmVxdWVzdCA6IHB1YmxpYyBSZWZDb3VudGVkPFRleHRDaGVja2luZ1JlcXVlc3Q+LCBw
dWJsaWMgVGV4dENoZWNraW5nUmVxdWVzdERhdGEgeworcHVibGljOgorICAgIFRleHRDaGVja2lu
Z1JlcXVlc3QoaW50IHNlcXVlbmNlLCBjb25zdCBTdHJpbmcmIHRleHQsIFRleHRDaGVja2luZ1R5
cGVNYXNrIG1hc2ssIFRleHRDaGVja2luZ1Byb2Nlc3NUeXBlIHByb2Nlc3NUeXBlKQorICAgICAg
ICA6IFRleHRDaGVja2luZ1JlcXVlc3REYXRhKHNlcXVlbmNlLCB0ZXh0LCBtYXNrLCBwcm9jZXNz
VHlwZSkKKyAgICB7IH0KKworICAgIHZpcnR1YWwgflRleHRDaGVja2luZ1JlcXVlc3QoKSB7IH0K
KyAgICB2aXJ0dWFsIHZvaWQgZGlkU3VjY2VlZChjb25zdCBWZWN0b3I8VGV4dENoZWNraW5nUmVz
dWx0PiYpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgZGlkQ2FuY2VsKCkgPSAwOworfTsKKwogfQog
CiAjZW5kaWYgLy8gVGV4dENoZWNraW5nX2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NN
YWtlTGlzdHMudHh0IGIvU291cmNlL1dlYktpdDIvQ01ha2VMaXN0cy50eHQKaW5kZXggN2MxYzBm
ZC4uNTk2OGU5OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ01ha2VMaXN0cy50eHQKKysr
IGIvU291cmNlL1dlYktpdDIvQ01ha2VMaXN0cy50eHQKQEAgLTI0NCw2ICsyNDQsNyBAQCBzZXQo
V2ViS2l0Ml9TT1VSQ0VTCiAgICAgVUlQcm9jZXNzL1BhZ2VWaWV3cG9ydENvbnRyb2xsZXIuY3Bw
CiAgICAgVUlQcm9jZXNzL1Jlc3BvbnNpdmVuZXNzVGltZXIuY3BwCiAgICAgVUlQcm9jZXNzL1N0
YXRpc3RpY3NSZXF1ZXN0LmNwcAorICAgIFVJUHJvY2Vzcy9UZXh0Q2hlY2tlckNvbXBsZXRpb24u
Y3BwCiAgICAgVUlQcm9jZXNzL1Zpc2l0ZWRMaW5rUHJvdmlkZXIuY3BwCiAgICAgVUlQcm9jZXNz
L1dlYkFwcGxpY2F0aW9uQ2FjaGVNYW5hZ2VyUHJveHkuY3BwCiAgICAgVUlQcm9jZXNzL1dlYkJh
Y2tGb3J3YXJkTGlzdC5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZyBi
L1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwppbmRleCA5MDNiMGU0Li4wZmE5M2Y1IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdDIvQ2hhbmdl
TG9nCkBAIC0xLDMgKzEsMTMxIEBACisyMDEzLTAyLTEyICBHcnplZ29yeiBDemFqa293c2tpICA8
Zy5jemFqa293c2tpQHNhbXN1bmcuY29tPiwgTWFyaXVzeiBHcnplZ29yY3p5ayA8bWFyaXVzei5n
QHNhbXN1bmcuY29tPgorCisgICAgICAgIFtXSzJdIEFzeW5jaHJvbm91cyBzcGVsbCBjaGVja2lu
ZyBpbXBsZW1lbnRhdGlvbgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MTA4MTcyCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgQXNzb2NpYXRlIHRoZSBhYnN0cmFjdCAnV2ViQ29yZTo6VGV4dENoZWNraW5nUmVx
dWVzdCcgd2l0aCB0aGUgdW5pcXVlIGlkZW50aWZpZXIKKyAgICAgICAgb24gV2ViUHJvY2VzcyBz
aWRlLiBFeHRyYWN0IHRoZSByZXF1ZXN0IGRhdGEgZnJvbSB0aGUgJ1RleHRDaGVja2luZ1JlcXVl
c3QnIHRvCisgICAgICAgIHBhc3MgaXQgdG8gdGhlIFVJUHJvY2Vzcy4gVGhlIGNsaWVudCAoVGV4
dENoZWNrZXJ7R3RrL01hYy9FZmwvUXR9LmNwcCkgZ2V0cworICAgICAgICBhIG5ldyBkZWZpbmVk
IGFic3RyYWN0IG9iamVjdCB3aXRoIHRoZSByZXF1ZXN0IGRhdGEgYW5kIHBvc3NpYmlsaXR5IHRv
IG5vdGlmeQorICAgICAgICBXZWJDb3JlIGFib3V0IHRoZSBzcGVsbGluZyByZXN1bHRzLgorICAg
ICAgICBUaGUgaW1wbGVtZW50YXRpb24gc2VuZHMgYmFjayBhIG1lc3NhZ2UgdG8gV2ViUHJvY2Vz
cywgdGhlIHJlcXVlc3QgKHdpdGggdGhlIHByb3BlcgorICAgICAgICBpZGVudGlmaWVyKSBoYXMg
YmVlbiBoYW5kbGVkIG9yIGNhbmNlbGxlZC4KKyAgICAgICAgRmluYWxseSwgdGhlIFdlYlBhZ2Ug
b2JqZWN0IGNhbGxzIG9uIHRoZSBwcm9wZXIgJ1RleHRDaGVja2luZ1JlcXVlc3QnIG9iamVjdAor
ICAgICAgICBkaWRTdWNjZXNzL2RpZENhbmNlbCBtZXRob2QuCisKKyAgICAgICAgKiBDTWFrZUxp
c3RzLnR4dDoKKyAgICAgICAgKiBHTlVtYWtlZmlsZS5saXN0LmFtOgorICAgICAgICBBZGQgJ1Rl
eHRDaGVja2VyQ29tcGxldGlvbi57aC9jcHB9JyB0byB0aGUgV2ViS2l0MiBjbWFrZSBiYXNlZCBh
bmQKKyAgICAgICAgV0syLUd0aysgYnVpbGRzLgorCisgICAgICAgICogU2NyaXB0cy93ZWJraXQy
L21lc3NhZ2VzLnB5OgorICAgICAgICAoaGVhZGVyc19mb3JfdHlwZSk6CisgICAgICAgIEFkZCBl
eGNlcHRpb24gZm9yICdUZXh0Q2hlY2tpbmdSZXF1ZXN0RGF0YScgY2xhc3MgdG8gcHJvcGVybHkg
ZmluZCBoZWFkZXIKKyAgICAgICAgZmlsZSBmb3IgaXQuCisKKyAgICAgICAgKiBTaGFyZWQvV2Vi
Q29yZUFyZ3VtZW50Q29kZXJzLmNwcDoKKyAgICAgICAgKENvcmVJUEM6Ojo6ZW5jb2RlKToKKyAg
ICAgICAgKENvcmVJUEM6Ojo6ZGVjb2RlKToKKyAgICAgICAgKiBTaGFyZWQvV2ViQ29yZUFyZ3Vt
ZW50Q29kZXJzLmg6CisgICAgICAgIExlYXJuICdBcmd1bWVudENvZGVyJyBob3cgdG8gZW5jb2Rl
L2RlY29kZSBhIG5ld2x5IGludHJvZHVjZWQKKyAgICAgICAgJ1RleHRDaGVja2luZ1JlcXVlc3RE
YXRhJyB0eXBlLgorCisgICAgICAgICogVGFyZ2V0LnByaToKKyAgICAgICAgQWRkICdUZXh0Q2hl
Y2tlckNvbXBsZXRpb24ue2gvY3BwfScgdG8gdGhlIFdLMi1RdCBidWlsZC4KKworICAgICAgICAq
IFVJUHJvY2Vzcy9UZXh0Q2hlY2tlci5oOgorICAgICAgICAoVGV4dENoZWNrZXIpOgorICAgICAg
ICBBZGQgJ3JlcXVlc3RDaGVja2luZ09mU3RyaW5nJyBtZXRob2QgdG8gdGhlIFRleHRDaGVja2Vy
J3MgaW50ZXJmYWNlLgorCisgICAgICAgICogVUlQcm9jZXNzL1RleHRDaGVja2VyQ29tcGxldGlv
bi5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViS2l0KToKKyAgICAgICAgKFdlYktpdDo6VGV4dENo
ZWNrZXJDb21wbGV0aW9uSW1wbDo6Y3JlYXRlKToKKyAgICAgICAgUmV0dXJuIGEgcG9pbnRlciAo
YXMgUGFzc1JlZlB0cikgdG8gdGhlICdUZXh0Q2hlY2tlckNvbXBsZXRpb25JbXBsJyBvYmplY3QK
KyAgICAgICAgdG8gZWFzeSBjYXN0IGl0IHRvIHRoZSBiYXNlIGNsYXNzICgnVGV4dENoZWNrZXJD
b21wbGV0aW9uJykuCisKKyAgICAgICAgKFdlYktpdDo6VGV4dENoZWNrZXJDb21wbGV0aW9uSW1w
bDo6VGV4dENoZWNrZXJDb21wbGV0aW9uSW1wbCk6CisgICAgICAgIERlZmluZXMgYSBjb25zdHJ1
Y3Rvci4KKworICAgICAgICAoV2ViS2l0OjpUZXh0Q2hlY2tlckNvbXBsZXRpb25JbXBsOjp0ZXh0
Q2hlY2tpbmdSZXF1ZXN0RGF0YSk6CisgICAgICAgIEFsbG93IHRvIHJldHJpZXZlICdUZXh0Q2hl
Y2tpbmdSZXF1ZXN0RGF0YScgb2JqZWN0LgorCisgICAgICAgIChXZWJLaXQ6OlRleHRDaGVja2Vy
Q29tcGxldGlvbkltcGw6OmRpZEZpbmlzaENoZWNraW5nVGV4dCk6CisgICAgICAgIChXZWJLaXQ6
OlRleHRDaGVja2VyQ29tcGxldGlvbkltcGw6OmRpZENhbmNlbENoZWNraW5nVGV4dCk6CisgICAg
ICAgIE5vdGlmeSB0aGUgJ1dlYlBhZ2VQcm94eScgb2JqZWN0IHRoYXQgdGhlIHRoZSBnaXZlbiBy
ZXF1ZXN0IGhhcyBiZWVuCisgICAgICAgIGhhbmRsZWQgb3IgY2FuY2VsbGVkLgorCisgICAgICAg
ICogVUlQcm9jZXNzL1RleHRDaGVja2VyQ29tcGxldGlvbi5oOiBBZGRlZC4KKyAgICAgICAgKFdl
YktpdCk6CisgICAgICAgIChUZXh0Q2hlY2tlckNvbXBsZXRpb24pOgorICAgICAgICBJbnRyb2R1
Y2UgYSB2aXJ0dWFsIGNsYXNzLCBpdCBhbGxvd3MgdG8gcmV0cmlldmUgdGhlIHJlcXVlc3QgZGF0
YSBhbmQgY2FsbAorICAgICAgICBkaWRGaW5pc2hDaGVja2luZ1RleHQvZGlkQ2FuY2VsQ2hlY2tp
bmdUZXh0LgorCisgICAgICAgIChXZWJLaXQ6OlRleHRDaGVja2VyQ29tcGxldGlvbjo6flRleHRD
aGVja2VyQ29tcGxldGlvbik6CisgICAgICAgIChUZXh0Q2hlY2tlckNvbXBsZXRpb25JbXBsKToK
KyAgICAgICAgKFdlYktpdDo6VGV4dENoZWNrZXJDb21wbGV0aW9uSW1wbDo6flRleHRDaGVja2Vy
Q29tcGxldGlvbkltcGwpOgorCisgICAgICAgICogVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHA6
CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6cmVxdWVzdENoZWNraW5nT2ZTdHJpbmcp
OgorICAgICAgICBDcmVhdGUgJ1RleHRDaGVja2VyQ29tcGxldGlvbkltcGwnIG9iamVjdCB3aXRo
IGFkZGl0aW9uYWwgZGF0YSBhbmQgcGFzcyBpdAorICAgICAgICBhcyB0aGUgYmFzZSBjbGFzcyB0
byB0aGUgJ1RleHRDaGVja2VyOjpyZXF1ZXN0Q2hlY2tpbmdPZlN0cmluZycgbWV0aG9kLgorCisg
ICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6ZGlkRmluaXNoQ2hlY2tpbmdUZXh0KToKKyAg
ICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5OjpkaWRDYW5jZWxDaGVja2luZ1RleHQpOgorICAg
ICAgICBTZW5kIHRoZSBtZXNzYWdlcyB0byBXZWJQcm9jZXNzIHRoYXQgdGhlIGdpdmVuIHJlcXVl
c3QgaGFzIGJlZW4KKyAgICAgICAgaGFuZGxlZCBvciBjYW5jZWxsZWQuCisKKyAgICAgICAgKiBV
SVByb2Nlc3MvV2ViUGFnZVByb3h5Lmg6CisgICAgICAgIChXZWJQYWdlUHJveHkpOgorICAgICAg
ICBBZGRlZCBwdWJsaWMgZGVjbGFyYXRpb25zIGZvciAnZGlkRmluaXNoQ2hlY2tpbmdUZXh0Jywg
J2RpZENhbmNlbENoZWNraW5nVGV4dCcgYW5kCisgICAgICAgIHByaXZhdGUgZm9yICdyZXF1ZXN0
Q2hlY2tpbmdPZlN0cmluZycuCisKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5Lm1l
c3NhZ2VzLmluOgorICAgICAgICBBIG5ldyBlbnRyeSBmb3IgJ1JlcXVlc3RDaGVja2luZ09mU3Ry
aW5nJy4KKworICAgICAgICAqIFVJUHJvY2Vzcy9lZmwvVGV4dENoZWNrZXJFZmwuY3BwOgorICAg
ICAgICAoV2ViS2l0OjpUZXh0Q2hlY2tlcjo6cmVxdWVzdENoZWNraW5nT2ZTdHJpbmcpOgorICAg
ICAgICAoV2ViS2l0KToKKyAgICAgICAgKiBVSVByb2Nlc3MvZ3RrL1RleHRDaGVja2VyR3RrLmNw
cDoKKyAgICAgICAgKFdlYktpdDo6VGV4dENoZWNrZXI6OnJlcXVlc3RDaGVja2luZ09mU3RyaW5n
KToKKyAgICAgICAgKFdlYktpdCk6CisgICAgICAgICogVUlQcm9jZXNzL21hYy9UZXh0Q2hlY2tl
ck1hYy5tbToKKyAgICAgICAgKFdlYktpdDo6VGV4dENoZWNrZXI6OnJlcXVlc3RDaGVja2luZ09m
U3RyaW5nKToKKyAgICAgICAgKFdlYktpdCk6CisgICAgICAgICogVUlQcm9jZXNzL3F0L1RleHRD
aGVja2VyUXQuY3BwOgorICAgICAgICAoV2ViS2l0OjpUZXh0Q2hlY2tlcjo6cmVxdWVzdENoZWNr
aW5nT2ZTdHJpbmcpOgorICAgICAgICAoV2ViS2l0KToKKyAgICAgICAgQWRkIGR1bW15IGltcGxl
bWVudGF0aW9ucyBmb3IgJ3JlcXVlc3RDaGVja2luZ09mU3RyaW5nJy4KKworICAgICAgICAqIFdl
YlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRWRpdG9yQ2xpZW50LmNwcDoKKyAgICAgICAgKFdl
YktpdDo6Z2VuZXJhdGVUZXh0Q2hlY2tpbmdSZXF1ZXN0SUQpOgorICAgICAgICBIZWxwZXIgZnVu
Y3Rpb24gdG8gZ2VuZXJhdGUgdGhlIHVuaXF1ZSBpZGVudGlmaWVyIGZvciAnVGV4dENoZWNraW5n
UmVxdWVzdCcKKyAgICAgICAgYWJzdHJhY3Qgb2JqZWN0LgorCisgICAgICAgIChXZWJLaXQ6Oldl
YkVkaXRvckNsaWVudDo6cmVxdWVzdENoZWNraW5nT2ZTdHJpbmcpOgorICAgICAgICBBc3NvY2lh
dGUgJ1RleHRDaGVja2luZ1JlcXVlc3QnIHdpdGggdGhlIHVuaXF1ZSBpZGVudGlmaWVyIGFuZCBh
ZGQgdGhlbQorICAgICAgICB0byB0aGUgbWFwIG9iamVjdC4KKyAgICAgICAgQ2FzdCAnVGV4dENo
ZWNraW5nUmVxdWVzdCcgb2JqZWN0IHRvIHRoZSAnVGV4dENoZWNraW5nUmVxdWVzdERhdGEnIGFu
ZCBzZW5kCisgICAgICAgIGl0IHRvIHRoZSBVSVByb2Nlc3MuCisKKyAgICAgICAgKiBXZWJQcm9j
ZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6OmFkZFRl
eHRDaGVja2luZ1JlcXVlc3QpOgorICAgICAgICBBZGQgdGhlIGlkZW50aWZpZXIgYW5kIHRoZSBy
ZXF1ZXN0IHRvIHRoZSBtYXAgb2JqZWN0LgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjpkaWRG
aW5pc2hDaGVja2luZ1RleHQpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjpkaWRDYW5jZWxD
aGVja2luZ1RleHQpOgorICAgICAgICBDYWxsIGRpZFN1Y2NlZWQvZGlkQ2FuY2VsIG9uIHRoZSAn
VGV4dENoZWNraW5nUmVxdWVzdCcgdG8gbm90aWZ5IHRoZSBXZWJDb3JlCisgICAgICAgIGFib3V0
IHNwZWxsY2hla2luZyByZXN1bHRzLgorICAgICAgICBSZW1vdmUgdGhlIHJlcXVlc3QgZnJvbSB0
aGUgbWFwIG9iamVjdC4KKworICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmg6
CisgICAgICAgIChXZWJQYWdlKToKKyAgICAgICAgQWRkIGRlY2xhcmF0aW9ucyBmb3IgJ2FkZFRl
eHRDaGVja2luZ1JlcXVlc3QnLCAnZGlkRmluaXNoQ2hlY2tpbmdUZXh0JyBhbmQKKyAgICAgICAg
J2RpZENhbmNlbENoZWNraW5nVGV4dC4nCisKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2Uv
V2ViUGFnZS5tZXNzYWdlcy5pbjoKKyAgICAgICAgQWRkIGEgbmV3IGVudHJ5IGZvciBEaWRGaW5p
c2hDaGVja2luZ1RleHQsIERpZENhbmNlbENoZWNraW5nVGV4dC4KKwogMjAxMy0wMi0xMyAgR3l1
eW91bmcgS2ltICA8Z3l1eW91bmcua2ltQHNhbXN1bmcuY29tPgogCiAgICAgICAgIFtXSzJdIFJl
bW92ZSB3ZWIgaW50ZW50cyBjYWxsYmFja3MKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0dO
VW1ha2VmaWxlLmxpc3QuYW0gYi9Tb3VyY2UvV2ViS2l0Mi9HTlVtYWtlZmlsZS5saXN0LmFtCmlu
ZGV4IGYzNGU3NTguLjE4OGI5N2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL0dOVW1ha2Vm
aWxlLmxpc3QuYW0KKysrIGIvU291cmNlL1dlYktpdDIvR05VbWFrZWZpbGUubGlzdC5hbQpAQCAt
ODU3LDYgKzg1Nyw4IEBAIHdlYmtpdDJfc291cmNlcyArPSBcCiAJU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL3NvdXAvV2ViU291cFJlcXVlc3RNYW5hZ2VyUHJveHkuY3BwIFwKIAlTb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3Mvc291cC9XZWJTb3VwUmVxdWVzdE1hbmFnZXJQcm94eS5oIFwKIAlTb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvVGV4dENoZWNrZXIuaCBcCisJU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL1RleHRDaGVja2VyQ29tcGxldGlvbi5oIFwKKwlTb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvVGV4dENoZWNrZXJDb21wbGV0aW9uLmNwcCBcCiAJU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L1Zpc2l0ZWRMaW5rUHJvdmlkZXIuY3BwIFwKIAlTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvVmlz
aXRlZExpbmtQcm92aWRlci5oIFwKIAlTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViQXBwbGlj
YXRpb25DYWNoZU1hbmFnZXJQcm94eS5oIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1Nj
cmlwdHMvd2Via2l0Mi9tZXNzYWdlcy5weSBiL1NvdXJjZS9XZWJLaXQyL1NjcmlwdHMvd2Via2l0
Mi9tZXNzYWdlcy5weQppbmRleCBiY2NkNzBlLi5mOWQ5ZTNjIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0Mi9TY3JpcHRzL3dlYmtpdDIvbWVzc2FnZXMucHkKKysrIGIvU291cmNlL1dlYktpdDIv
U2NyaXB0cy93ZWJraXQyL21lc3NhZ2VzLnB5CkBAIC0zODQsNiArMzg0LDcgQEAgZGVmIGhlYWRl
cnNfZm9yX3R5cGUodHlwZSk6CiAgICAgICAgICdXZWJDb3JlOjpLZXlwcmVzc0NvbW1hbmQnOiBb
JzxXZWJDb3JlL0tleWJvYXJkRXZlbnQuaD4nXSwKICAgICAgICAgJ1dlYkNvcmU6OkZpbGVDaG9v
c2VyU2V0dGluZ3MnOiBbJzxXZWJDb3JlL0ZpbGVDaG9vc2VyLmg+J10sCiAgICAgICAgICdXZWJD
b3JlOjpQbHVnaW5JbmZvJzogWyc8V2ViQ29yZS9QbHVnaW5EYXRhLmg+J10sCisgICAgICAgICdX
ZWJDb3JlOjpUZXh0Q2hlY2tpbmdSZXF1ZXN0RGF0YSc6IFsnPFdlYkNvcmUvcGxhdGZvcm0vdGV4
dC9UZXh0Q2hlY2tpbmcuaD4nXSwKICAgICAgICAgJ1dlYkNvcmU6OlRleHRDaGVja2luZ1Jlc3Vs
dCc6IFsnPFdlYkNvcmUvVGV4dENoZWNrZXJDbGllbnQuaD4nXSwKICAgICAgICAgJ1dlYkNvcmU6
OlZpZXdwb3J0QXR0cmlidXRlcyc6IFsnPFdlYkNvcmUvVmlld3BvcnRBcmd1bWVudHMuaD4nXSwK
ICAgICAgICAgJ1dlYktpdDo6SW5qZWN0ZWRCdW5kbGVVc2VyTWVzc2FnZUVuY29kZXInOiBbXSwK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMu
Y3BwIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYkNvcmVBcmd1bWVudENvZGVycy5jcHAKaW5k
ZXggNGY2MGM0NS4uYWVjYzJlNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvU2hhcmVkL1dl
YkNvcmVBcmd1bWVudENvZGVycy5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYkNv
cmVBcmd1bWVudENvZGVycy5jcHAKQEAgLTgyOSw2ICs4MjksMzUgQEAgYm9vbCBBcmd1bWVudENv
ZGVyPEdyYW1tYXJEZXRhaWw+OjpkZWNvZGUoQXJndW1lbnREZWNvZGVyJiBkZWNvZGVyLCBHcmFt
bWFyRGV0YWkKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAordm9pZCBBcmd1bWVudENvZGVyPFRleHRD
aGVja2luZ1JlcXVlc3REYXRhPjo6ZW5jb2RlKEFyZ3VtZW50RW5jb2RlciYgZW5jb2RlciwgY29u
c3QgVGV4dENoZWNraW5nUmVxdWVzdERhdGEmIHJlcXVlc3QpCit7CisgICAgZW5jb2RlciA8PCBy
ZXF1ZXN0LnNlcXVlbmNlKCk7CisgICAgZW5jb2RlciA8PCByZXF1ZXN0LnRleHQoKTsKKyAgICBl
bmNvZGVyIDw8IHJlcXVlc3QubWFzaygpOworICAgIGVuY29kZXIuZW5jb2RlRW51bShyZXF1ZXN0
LnByb2Nlc3NUeXBlKCkpOworfQorCitib29sIEFyZ3VtZW50Q29kZXI8VGV4dENoZWNraW5nUmVx
dWVzdERhdGE+OjpkZWNvZGUoQXJndW1lbnREZWNvZGVyJiBkZWNvZGVyLCBUZXh0Q2hlY2tpbmdS
ZXF1ZXN0RGF0YSYgcmVxdWVzdCkKK3sKKyAgICBpbnQgc2VxdWVuY2U7CisgICAgaWYgKCFkZWNv
ZGVyLmRlY29kZShzZXF1ZW5jZSkpCisgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgIFN0cmlu
ZyB0ZXh0OworICAgIGlmICghZGVjb2Rlci5kZWNvZGUodGV4dCkpCisgICAgICAgIHJldHVybiBm
YWxzZTsKKworICAgIFRleHRDaGVja2luZ1R5cGVNYXNrIG1hc2s7CisgICAgaWYgKCFkZWNvZGVy
LmRlY29kZShtYXNrKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgVGV4dENoZWNraW5n
UHJvY2Vzc1R5cGUgcHJvY2Vzc1R5cGU7CisgICAgaWYgKCFkZWNvZGVyLmRlY29kZUVudW0ocHJv
Y2Vzc1R5cGUpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICByZXF1ZXN0ID0gVGV4dENo
ZWNraW5nUmVxdWVzdERhdGEoc2VxdWVuY2UsIHRleHQsIG1hc2ssIHByb2Nlc3NUeXBlKTsKKyAg
ICByZXR1cm4gdHJ1ZTsKK30KIAogdm9pZCBBcmd1bWVudENvZGVyPFRleHRDaGVja2luZ1Jlc3Vs
dD46OmVuY29kZShBcmd1bWVudEVuY29kZXImIGVuY29kZXIsIGNvbnN0IFRleHRDaGVja2luZ1Jl
c3VsdCYgcmVzdWx0KQogewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYkNv
cmVBcmd1bWVudENvZGVycy5oIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYkNvcmVBcmd1bWVu
dENvZGVycy5oCmluZGV4IDBkOGViNzYuLmU5MTQ3NGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQyL1NoYXJlZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9T
aGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmgKQEAgLTQ5LDYgKzQ5LDcgQEAgbmFtZXNwYWNl
IFdlYkNvcmUgewogICAgIGNsYXNzIFJlc291cmNlRXJyb3I7CiAgICAgY2xhc3MgUmVzb3VyY2VS
ZXF1ZXN0OwogICAgIGNsYXNzIFJlc291cmNlUmVzcG9uc2U7CisgICAgY2xhc3MgVGV4dENoZWNr
aW5nUmVxdWVzdERhdGE7CiAgICAgY2xhc3MgVXNlclN0eWxlU2hlZXQ7CiAgICAgY2xhc3MgVXNl
clNjcmlwdDsKICAgICBzdHJ1Y3QgQ29tcG9zaXRpb25VbmRlcmxpbmU7CkBAIC0yMzMsNiArMjM0
LDExIEBAIHRlbXBsYXRlPD4gc3RydWN0IEFyZ3VtZW50Q29kZXI8V2ViQ29yZTo6R3JhbW1hckRl
dGFpbD4gewogICAgIHN0YXRpYyBib29sIGRlY29kZShBcmd1bWVudERlY29kZXImLCBXZWJDb3Jl
OjpHcmFtbWFyRGV0YWlsJik7CiB9OwogCit0ZW1wbGF0ZTw+IHN0cnVjdCBBcmd1bWVudENvZGVy
PFdlYkNvcmU6OlRleHRDaGVja2luZ1JlcXVlc3REYXRhPiB7CisgICAgc3RhdGljIHZvaWQgZW5j
b2RlKEFyZ3VtZW50RW5jb2RlciYsIGNvbnN0IFdlYkNvcmU6OlRleHRDaGVja2luZ1JlcXVlc3RE
YXRhJik7CisgICAgc3RhdGljIGJvb2wgZGVjb2RlKEFyZ3VtZW50RGVjb2RlciYsIFdlYkNvcmU6
OlRleHRDaGVja2luZ1JlcXVlc3REYXRhJik7Cit9OworCiB0ZW1wbGF0ZTw+IHN0cnVjdCBBcmd1
bWVudENvZGVyPFdlYkNvcmU6OlRleHRDaGVja2luZ1Jlc3VsdD4gewogICAgIHN0YXRpYyB2b2lk
IGVuY29kZShBcmd1bWVudEVuY29kZXImLCBjb25zdCBXZWJDb3JlOjpUZXh0Q2hlY2tpbmdSZXN1
bHQmKTsKICAgICBzdGF0aWMgYm9vbCBkZWNvZGUoQXJndW1lbnREZWNvZGVyJiwgV2ViQ29yZTo6
VGV4dENoZWNraW5nUmVzdWx0Jik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9UYXJnZXQu
cHJpIGIvU291cmNlL1dlYktpdDIvVGFyZ2V0LnByaQppbmRleCBjZTZjMDgxLi43ZTQ2ZmI0IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9UYXJnZXQucHJpCisrKyBiL1NvdXJjZS9XZWJLaXQy
L1RhcmdldC5wcmkKQEAgLTIzMyw2ICsyMzMsNyBAQCBIRUFERVJTICs9IFwKICAgICBVSVByb2Nl
c3MvU3RhdGlzdGljc1JlcXVlc3QuaCBcCiAgICAgVUlQcm9jZXNzL1N0b3JhZ2UvU3RvcmFnZU1h
bmFnZXIuaCBcCiAgICAgVUlQcm9jZXNzL1RleHRDaGVja2VyLmggXAorICAgIFVJUHJvY2Vzcy9U
ZXh0Q2hlY2tlckNvbXBsZXRpb24uaAogICAgIFVJUHJvY2Vzcy9WaXNpdGVkTGlua1Byb3ZpZGVy
LmggXAogICAgIFVJUHJvY2Vzcy9XZWJBcHBsaWNhdGlvbkNhY2hlTWFuYWdlclByb3h5LmggXAog
ICAgIFVJUHJvY2Vzcy9XZWJCYWNrRm9yd2FyZExpc3QuaCBcCkBAIC01NjQsNiArNTY1LDcgQEAg
U09VUkNFUyArPSBcCiAgICAgVUlQcm9jZXNzL0ZpbmRJbmRpY2F0b3IuY3BwIFwKICAgICBVSVBy
b2Nlc3MvR2VvbG9jYXRpb25QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eS5jcHAgXAogICAg
IFVJUHJvY2Vzcy9HZW9sb2NhdGlvblBlcm1pc3Npb25SZXF1ZXN0UHJveHkuY3BwIFwKKyAgICBV
SVByb2Nlc3MvVGV4dENoZWNrZXJDb21wbGV0aW9uLmNwcCBcCiAgICAgVUlQcm9jZXNzL0xhdW5j
aGVyL1Byb2Nlc3NMYXVuY2hlci5jcHAgXAogICAgIFVJUHJvY2Vzcy9MYXVuY2hlci9xdC9Qcm9j
ZXNzTGF1bmNoZXJRdC5jcHAgXAogICAgIFVJUHJvY2Vzcy9Ob3RpZmljYXRpb25zL05vdGlmaWNh
dGlvblBlcm1pc3Npb25SZXF1ZXN0LmNwcCBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvVGV4dENoZWNrZXIuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9UZXh0Q2hl
Y2tlci5oCmluZGV4IDQ5YjVhNDguLmExNmNiMTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9UZXh0Q2hlY2tlci5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9U
ZXh0Q2hlY2tlci5oCkBAIC0yNiw2ICsyNiw3IEBACiAjaWZuZGVmIFRleHRDaGVja2VyX2gKICNk
ZWZpbmUgVGV4dENoZWNrZXJfaAogCisjaW5jbHVkZSAiVGV4dENoZWNrZXJDb21wbGV0aW9uLmgi
CiAjaW5jbHVkZSA8V2ViQ29yZS9FZGl0b3JDbGllbnQuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1Rl
eHRDaGVja2VyQ2xpZW50Lmg+CiAKQEAgLTcyLDYgKzczLDcgQEAgcHVibGljOgogICAgIHN0YXRp
YyB2b2lkIGdldEd1ZXNzZXNGb3JXb3JkKGludDY0X3Qgc3BlbGxEb2N1bWVudFRhZywgY29uc3Qg
U3RyaW5nJiB3b3JkLCBjb25zdCBTdHJpbmcmIGNvbnRleHQsIFZlY3RvcjxTdHJpbmc+JiBndWVz
c2VzKTsKICAgICBzdGF0aWMgdm9pZCBsZWFybldvcmQoaW50NjRfdCBzcGVsbERvY3VtZW50VGFn
LCBjb25zdCBTdHJpbmcmIHdvcmQpOwogICAgIHN0YXRpYyB2b2lkIGlnbm9yZVdvcmQoaW50NjRf
dCBzcGVsbERvY3VtZW50VGFnLCBjb25zdCBTdHJpbmcmIHdvcmQpOworICAgIHN0YXRpYyB2b2lk
IHJlcXVlc3RDaGVja2luZ09mU3RyaW5nKFBhc3NSZWZQdHI8VGV4dENoZWNrZXJDb21wbGV0aW9u
Pik7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9UZXh0Q2hlY2tlckNvbXBsZXRpb24uY3BwIGIvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL1RleHRDaGVja2VyQ29tcGxldGlvbi5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMC4uMTFlMDA4MAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9UZXh0Q2hlY2tlckNvbXBsZXRpb24uY3BwCkBAIC0wLDAgKzEsNjEgQEAKKy8q
CisgKiBDb3B5cmlnaHQgKEMpIDIwMTMgU2Ftc3VuZyBFbGVjdHJvbmljcworICoKKyAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9m
IHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAq
IDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhl
ciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMg
U09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklC
VVRPUlMKKyAqICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywg
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVT
IE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQ
T1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUIEhPTERF
UiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1Qs
IElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFN
QUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBT
VUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBS
T0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFO
WSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJ
QUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HCisgKiBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkg
QVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMKKyAqIFNPRlRXQVJFLCBF
VkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisK
KyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJUZXh0Q2hlY2tlckNvbXBsZXRpb24uaCIK
KworbmFtZXNwYWNlIFdlYktpdCB7CisKK1Bhc3NSZWZQdHI8VGV4dENoZWNrZXJDb21wbGV0aW9u
SW1wbD4gVGV4dENoZWNrZXJDb21wbGV0aW9uSW1wbDo6Y3JlYXRlKHVpbnQ2NF90IHJlcXVlc3RJ
RCwgY29uc3QgV2ViQ29yZTo6VGV4dENoZWNraW5nUmVxdWVzdERhdGEmIHJlcXVlc3REYXRhLCBj
b25zdCBXZWJQYWdlUHJveHkqIHBhZ2UpCit7CisgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBUZXh0
Q2hlY2tlckNvbXBsZXRpb25JbXBsKHJlcXVlc3RJRCwgcmVxdWVzdERhdGEsIHBhZ2UpKTsKK30K
KworVGV4dENoZWNrZXJDb21wbGV0aW9uSW1wbDo6VGV4dENoZWNrZXJDb21wbGV0aW9uSW1wbCh1
aW50NjRfdCByZXF1ZXN0SUQsIGNvbnN0IFdlYkNvcmU6OlRleHRDaGVja2luZ1JlcXVlc3REYXRh
JiByZXF1ZXN0RGF0YSwgY29uc3QgV2ViUGFnZVByb3h5KiBwYWdlKQorICAgIDogbV9yZXF1ZXN0
SUQocmVxdWVzdElEKQorICAgICwgbV9yZXF1ZXN0RGF0YShyZXF1ZXN0RGF0YSkKKyAgICAsIG1f
cGFnZShwYWdlKQoreworfQorCitjb25zdCBXZWJDb3JlOjpUZXh0Q2hlY2tpbmdSZXF1ZXN0RGF0
YSYgVGV4dENoZWNrZXJDb21wbGV0aW9uSW1wbDo6dGV4dENoZWNraW5nUmVxdWVzdERhdGEoKSBj
b25zdAoreworICAgIHJldHVybiBtX3JlcXVlc3REYXRhOworfQorCit2b2lkIFRleHRDaGVja2Vy
Q29tcGxldGlvbkltcGw6OmRpZEZpbmlzaENoZWNraW5nVGV4dChjb25zdCBWZWN0b3I8V2ViQ29y
ZTo6VGV4dENoZWNraW5nUmVzdWx0PiYgcmVzdWx0KSBjb25zdAoreworICAgIGlmIChyZXN1bHQu
aXNFbXB0eSgpKQorICAgICAgICBkaWRDYW5jZWxDaGVja2luZ1RleHQoKTsKKworICAgIG1fcGFn
ZS0+ZGlkRmluaXNoQ2hlY2tpbmdUZXh0KG1fcmVxdWVzdElELCByZXN1bHQpOworfQorCit2b2lk
IFRleHRDaGVja2VyQ29tcGxldGlvbkltcGw6OmRpZENhbmNlbENoZWNraW5nVGV4dCgpIGNvbnN0
Cit7CisgICAgbV9wYWdlLT5kaWRDYW5jZWxDaGVja2luZ1RleHQobV9yZXF1ZXN0SUQpOworfQor
Cit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9UZXh0Q2hlY2tlckNvbXBsZXRpb24uaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9U
ZXh0Q2hlY2tlckNvbXBsZXRpb24uaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
Li4yNDEwMDA1Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1Rl
eHRDaGVja2VyQ29tcGxldGlvbi5oCkBAIC0wLDAgKzEsNjQgQEAKKy8qCisgKiBDb3B5cmlnaHQg
KEMpIDIwMTMgU2Ftc3VuZyBFbGVjdHJvbmljcworICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11
c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0
aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIgaW4gdGhlCisgKiBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJv
dmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJP
VklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTCSBBTkQgQ09OVFJJQlVUT1JTCisgKiAiQVMg
SVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFC
SUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xB
SU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVCBIT0xERVIgT1IKKyAqIENPTlRS
SUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBT
UEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09E
UyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJ
TkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBP
RiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRP
UlQgKElOQ0xVRElORworICogTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5Z
IFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTCisgKiBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVmIFRleHRD
aGVja2VyQ29tcGxldGlvbl9oCisjZGVmaW5lIFRleHRDaGVja2VyQ29tcGxldGlvbl9oCisKKyNp
bmNsdWRlICJXZWJQYWdlUHJveHkuaCIKKyNpbmNsdWRlIDxXZWJDb3JlL1RleHRDaGVja2luZy5o
PgorI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KKworbmFtZXNwYWNlIFdlYktpdCB7CisKK2NsYXNz
IFRleHRDaGVja2VyQ29tcGxldGlvbiA6ICBwdWJsaWMgUmVmQ291bnRlZDxUZXh0Q2hlY2tlckNv
bXBsZXRpb24+IHsKK3B1YmxpYzoKKyAgICB2aXJ0dWFsIH5UZXh0Q2hlY2tlckNvbXBsZXRpb24o
KSB7IH0KKworICAgIHZpcnR1YWwgY29uc3QgV2ViQ29yZTo6VGV4dENoZWNraW5nUmVxdWVzdERh
dGEmIHRleHRDaGVja2luZ1JlcXVlc3REYXRhKCkgY29uc3QgPSAwOworICAgIHZpcnR1YWwgdm9p
ZCBkaWRGaW5pc2hDaGVja2luZ1RleHQoY29uc3QgVmVjdG9yPFdlYkNvcmU6OlRleHRDaGVja2lu
Z1Jlc3VsdD4mKSBjb25zdCA9IDA7CisgICAgdmlydHVhbCB2b2lkIGRpZENhbmNlbENoZWNraW5n
VGV4dCgpIGNvbnN0ID0gMDsKK307CisKKworY2xhc3MgVGV4dENoZWNrZXJDb21wbGV0aW9uSW1w
bCA6IHB1YmxpYyBUZXh0Q2hlY2tlckNvbXBsZXRpb24geworcHVibGljOgorICAgIHN0YXRpYyBQ
YXNzUmVmUHRyPFRleHRDaGVja2VyQ29tcGxldGlvbkltcGw+IGNyZWF0ZSh1aW50NjRfdCByZXF1
ZXN0SUQsIGNvbnN0IFdlYkNvcmU6OlRleHRDaGVja2luZ1JlcXVlc3REYXRhJiwgY29uc3QgV2Vi
UGFnZVByb3h5Kik7CisgICAgdmlydHVhbCB+VGV4dENoZWNrZXJDb21wbGV0aW9uSW1wbCgpIHsg
fQorCisgICAgdmlydHVhbCBjb25zdCBXZWJDb3JlOjpUZXh0Q2hlY2tpbmdSZXF1ZXN0RGF0YSYg
dGV4dENoZWNraW5nUmVxdWVzdERhdGEoKSBjb25zdCBPVkVSUklERTsKKyAgICB2aXJ0dWFsIHZv
aWQgZGlkRmluaXNoQ2hlY2tpbmdUZXh0KGNvbnN0IFZlY3RvcjxXZWJDb3JlOjpUZXh0Q2hlY2tp
bmdSZXN1bHQ+JikgY29uc3QgT1ZFUlJJREU7CisgICAgdmlydHVhbCB2b2lkIGRpZENhbmNlbENo
ZWNraW5nVGV4dCgpIGNvbnN0IE9WRVJSSURFOworCitwcml2YXRlOgorICAgIFRleHRDaGVja2Vy
Q29tcGxldGlvbkltcGwodWludDY0X3QgcmVxdWVzdElELCBjb25zdCBXZWJDb3JlOjpUZXh0Q2hl
Y2tpbmdSZXF1ZXN0RGF0YSYsIGNvbnN0IFdlYlBhZ2VQcm94eSopOworCisgICAgY29uc3QgdWlu
dDY0X3QgbV9yZXF1ZXN0SUQ7CisgICAgY29uc3QgV2ViQ29yZTo6VGV4dENoZWNraW5nUmVxdWVz
dERhdGEgbV9yZXF1ZXN0RGF0YTsKKyAgICBjb25zdCBXZWJQYWdlUHJveHkqIG1fcGFnZTsKK307
CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdAorCisjZW5kaWYgLy8gVGV4dENoZWNrZXJDb21wbGV0
aW9uX2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHku
Y3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKaW5kZXggYzU4
M2U1MS4uYzkyOGRlMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBh
Z2VQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5j
cHAKQEAgLTMyNTIsNiArMzI1MiwyMCBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6aWdub3JlV29yZChj
b25zdCBTdHJpbmcmIHdvcmQpCiAgICAgVGV4dENoZWNrZXI6Omlnbm9yZVdvcmQoc3BlbGxEb2N1
bWVudFRhZygpLCB3b3JkKTsKIH0KIAordm9pZCBXZWJQYWdlUHJveHk6OnJlcXVlc3RDaGVja2lu
Z09mU3RyaW5nKHVpbnQ2NF90IHJlcXVlc3RJRCwgVGV4dENoZWNraW5nUmVxdWVzdERhdGEgcmVx
dWVzdCkgY29uc3QKK3sKKyAgICBUZXh0Q2hlY2tlcjo6cmVxdWVzdENoZWNraW5nT2ZTdHJpbmco
VGV4dENoZWNrZXJDb21wbGV0aW9uSW1wbDo6Y3JlYXRlKHJlcXVlc3RJRCwgcmVxdWVzdCwgdGhp
cykpOworfQorCit2b2lkIFdlYlBhZ2VQcm94eTo6ZGlkRmluaXNoQ2hlY2tpbmdUZXh0KHVpbnQ2
NF90IHJlcXVlc3RJRCwgY29uc3QgVmVjdG9yPFdlYkNvcmU6OlRleHRDaGVja2luZ1Jlc3VsdD4m
IHJlc3VsdCkgY29uc3QKK3sKKyAgICBtX3Byb2Nlc3MtPnNlbmQoTWVzc2FnZXM6OldlYlBhZ2U6
OkRpZEZpbmlzaENoZWNraW5nVGV4dChyZXF1ZXN0SUQsIHJlc3VsdCksIG1fcGFnZUlEKTsKK30K
Kwordm9pZCBXZWJQYWdlUHJveHk6OmRpZENhbmNlbENoZWNraW5nVGV4dCh1aW50NjRfdCByZXF1
ZXN0SUQpIGNvbnN0Cit7CisgICAgbV9wcm9jZXNzLT5zZW5kKE1lc3NhZ2VzOjpXZWJQYWdlOjpE
aWRDYW5jZWxDaGVja2luZ1RleHQocmVxdWVzdElEKSwgbV9wYWdlSUQpOworfQogLy8gT3RoZXIK
IAogdm9pZCBXZWJQYWdlUHJveHk6OnNldEZvY3VzKGJvb2wgZm9jdXNlZCkKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaAppbmRleCAwZjYwZTdkLi45MTQ4MTkxIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKKysrIGIvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCkBAIC03NDQsNiArNzQ0LDkgQEAgcHVi
bGljOgogCiAgICAgdm9pZCBkaWRSZWNlaXZlQXV0aGVudGljYXRpb25DaGFsbGVuZ2VQcm94eSh1
aW50NjRfdCBmcmFtZUlELCBQYXNzUmVmUHRyPEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlUHJveHk+
KTsKIAorICAgIHZvaWQgZGlkRmluaXNoQ2hlY2tpbmdUZXh0KHVpbnQ2NF90IHJlcXVlc3RJRCwg
Y29uc3QgVmVjdG9yPFdlYkNvcmU6OlRleHRDaGVja2luZ1Jlc3VsdD4mKSBjb25zdDsKKyAgICB2
b2lkIGRpZENhbmNlbENoZWNraW5nVGV4dCh1aW50NjRfdCByZXF1ZXN0SUQpIGNvbnN0OworCiBw
cml2YXRlOgogICAgIFdlYlBhZ2VQcm94eShQYWdlQ2xpZW50KiwgUGFzc1JlZlB0cjxXZWJQcm9j
ZXNzUHJveHk+LCBXZWJQYWdlR3JvdXAqLCB1aW50NjRfdCBwYWdlSUQpOwogCkBAIC05NDEsNiAr
OTQ0LDcgQEAgcHJpdmF0ZToKICAgICB2b2lkIGdldEd1ZXNzZXNGb3JXb3JkKGNvbnN0IFN0cmlu
ZyYgd29yZCwgY29uc3QgU3RyaW5nJiBjb250ZXh0LCBWZWN0b3I8U3RyaW5nPiYgZ3Vlc3Nlcyk7
CiAgICAgdm9pZCBsZWFybldvcmQoY29uc3QgU3RyaW5nJiB3b3JkKTsKICAgICB2b2lkIGlnbm9y
ZVdvcmQoY29uc3QgU3RyaW5nJiB3b3JkKTsKKyAgICB2b2lkIHJlcXVlc3RDaGVja2luZ09mU3Ry
aW5nKHVpbnQ2NF90IHJlcXVlc3RJRCwgV2ViQ29yZTo6VGV4dENoZWNraW5nUmVxdWVzdERhdGEp
IGNvbnN0OwogCiAgICAgdm9pZCBzZXRGb2N1cyhib29sIGZvY3VzZWQpOwogICAgIHZvaWQgdGFr
ZUZvY3VzKHVpbnQzMl90IGRpcmVjdGlvbik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvV2ViUGFnZVByb3h5Lm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL1dlYlBhZ2VQcm94eS5tZXNzYWdlcy5pbgppbmRleCAzMzYyMDJhLi5lMWEyZTRmIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5Lm1lc3NhZ2VzLmlu
CisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkubWVzc2FnZXMuaW4K
QEAgLTIzMyw2ICsyMzMsNyBAQCBtZXNzYWdlcyAtPiBXZWJQYWdlUHJveHkgewogICAgIEdldEd1
ZXNzZXNGb3JXb3JkKFdURjo6U3RyaW5nIHdvcmQsIFdURjo6U3RyaW5nIGNvbnRleHQpIC0+IChW
ZWN0b3I8V1RGOjpTdHJpbmc+IGd1ZXNzZXMpCiAgICAgTGVhcm5Xb3JkKFdURjo6U3RyaW5nIHdv
cmQpOwogICAgIElnbm9yZVdvcmQoV1RGOjpTdHJpbmcgd29yZCk7CisgICAgUmVxdWVzdENoZWNr
aW5nT2ZTdHJpbmcodWludDY0X3QgcmVxdWVzdElELCBXZWJDb3JlOjpUZXh0Q2hlY2tpbmdSZXF1
ZXN0RGF0YSByZXF1ZXN0KQogCiAgICAgIyBEcmFnIGFuZCBkcm9wIG1lc3NhZ2VzCiAjaWYgRU5B
QkxFKERSQUdfU1VQUE9SVCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9l
ZmwvVGV4dENoZWNrZXJFZmwuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2VmbC9UZXh0
Q2hlY2tlckVmbC5jcHAKaW5kZXggZDU2NjA2ZS4uZThiZTM1MiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL2VmbC9UZXh0Q2hlY2tlckVmbC5jcHAKKysrIGIvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL2VmbC9UZXh0Q2hlY2tlckVmbC5jcHAKQEAgLTIxOSw0ICsyMTksOCBA
QCB2b2lkIFRleHRDaGVja2VyOjppZ25vcmVXb3JkKGludDY0X3Qgc3BlbGxEb2N1bWVudFRhZywg
Y29uc3QgU3RyaW5nJiB3b3JkKQogI2VuZGlmCiB9CiAKK3ZvaWQgVGV4dENoZWNrZXI6OnJlcXVl
c3RDaGVja2luZ09mU3RyaW5nKFBhc3NSZWZQdHI8VGV4dENoZWNrZXJDb21wbGV0aW9uPikKK3sK
K30KKwogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvZ3RrL1RleHRDaGVja2VyR3RrLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9ndGsvVGV4dENoZWNrZXJHdGsuY3BwCmluZGV4IDQwNWMwZTEuLjdhNzUyZDYgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9ndGsvVGV4dENoZWNrZXJHdGsuY3BwCisrKyBi
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9ndGsvVGV4dENoZWNrZXJHdGsuY3BwCkBAIC0xMzcs
NCArMTM3LDggQEAgdm9pZCBUZXh0Q2hlY2tlcjo6aWdub3JlV29yZChpbnQ2NF90IHNwZWxsRG9j
dW1lbnRUYWcsIGNvbnN0IFN0cmluZyYgd29yZCkKICAgICBXZWJUZXh0Q2hlY2tlcjo6c2hhcmVk
KCktPmNsaWVudCgpLmlnbm9yZVdvcmQoc3BlbGxEb2N1bWVudFRhZywgd29yZCk7CiB9CiAKK3Zv
aWQgVGV4dENoZWNrZXI6OnJlcXVlc3RDaGVja2luZ09mU3RyaW5nKFBhc3NSZWZQdHI8VGV4dENo
ZWNrZXJDb21wbGV0aW9uPikKK3sKK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvbWFjL1RleHRDaGVja2VyTWFjLm1tIGIvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL21hYy9UZXh0Q2hlY2tlck1hYy5tbQppbmRleCBmNWM4Y2Uy
Li43MGJmMmUxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvbWFjL1RleHRD
aGVja2VyTWFjLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9tYWMvVGV4dENoZWNr
ZXJNYWMubW0KQEAgLTM5MSw0ICszOTEsOCBAQCB2b2lkIFRleHRDaGVja2VyOjppZ25vcmVXb3Jk
KGludDY0X3Qgc3BlbGxEb2N1bWVudFRhZywgY29uc3QgU3RyaW5nJiB3b3JkKQogICAgIFtbTlNT
cGVsbENoZWNrZXIgc2hhcmVkU3BlbGxDaGVja2VyXSBpZ25vcmVXb3JkOndvcmQgaW5TcGVsbERv
Y3VtZW50V2l0aFRhZzpzcGVsbERvY3VtZW50VGFnXTsKIH0KIAordm9pZCBUZXh0Q2hlY2tlcjo6
cmVxdWVzdENoZWNraW5nT2ZTdHJpbmcoUGFzc1JlZlB0cjxUZXh0Q2hlY2tlckNvbXBsZXRpb24+
KQoreworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9xdC9UZXh0Q2hlY2tlclF0LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9xdC9UZXh0Q2hlY2tlclF0LmNwcAppbmRleCA0YTMzMTg0Li43ZTM0M2UxIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvcXQvVGV4dENoZWNrZXJRdC5jcHAKKysrIGIv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL3F0L1RleHRDaGVja2VyUXQuY3BwCkBAIC0xMjYsNCAr
MTI2LDkgQEAgdm9pZCBUZXh0Q2hlY2tlcjo6aWdub3JlV29yZChpbnQ2NF90IHNwZWxsRG9jdW1l
bnRUYWcsIGNvbnN0IFN0cmluZyYgd29yZCkKICAgICBub3RJbXBsZW1lbnRlZCgpOwogfQogCit2
b2lkIFRleHRDaGVja2VyOjpyZXF1ZXN0Q2hlY2tpbmdPZlN0cmluZyhQYXNzUmVmUHRyPFRleHRD
aGVja2VyQ29tcGxldGlvbj4pCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKK30KKwogfSAvLyBu
YW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dl
YkNvcmVTdXBwb3J0L1dlYkVkaXRvckNsaWVudC5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9j
ZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkVkaXRvckNsaWVudC5jcHAKaW5kZXggOTNkZmFiMy4uNjcx
OTY2ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9y
dC9XZWJFZGl0b3JDbGllbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2Vi
Q29yZVN1cHBvcnQvV2ViRWRpdG9yQ2xpZW50LmNwcApAQCAtNDQsNiArNDQsNyBAQAogI2luY2x1
ZGUgPFdlYkNvcmUvS2V5Ym9hcmRFdmVudC5oPgogI2luY2x1ZGUgPFdlYkNvcmUvTm90SW1wbGVt
ZW50ZWQuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1BhZ2UuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL1Nw
ZWxsQ2hlY2tlci5oPgogI2luY2x1ZGUgPFdlYkNvcmUvVGV4dEl0ZXJhdG9yLmg+CiAjaW5jbHVk
ZSA8V2ViQ29yZS9VbmRvU3RlcC5oPgogI2luY2x1ZGUgPFdlYkNvcmUvVXNlclR5cGluZ0dlc3R1
cmVJbmRpY2F0b3IuaD4KQEAgLTU5LDYgKzYwLDEyIEBAIHVzaW5nIG5hbWVzcGFjZSBIVE1MTmFt
ZXM7CiAKIG5hbWVzcGFjZSBXZWJLaXQgewogCitzdGF0aWMgdWludDY0X3QgZ2VuZXJhdGVUZXh0
Q2hlY2tpbmdSZXF1ZXN0SUQoKQoreworICAgIHN0YXRpYyB1aW50NjRfdCB1bmlxdWVUZXh0Q2hl
Y2tpbmdSZXF1ZXN0SUQgPSAxOworICAgIHJldHVybiB1bmlxdWVUZXh0Q2hlY2tpbmdSZXF1ZXN0
SUQrKzsKK30KKwogdm9pZCBXZWJFZGl0b3JDbGllbnQ6OnBhZ2VEZXN0cm95ZWQoKQogewogICAg
IGRlbGV0ZSB0aGlzOwpAQCAtNDcxLDYgKzQ3OCwxNiBAQCB2b2lkIFdlYkVkaXRvckNsaWVudDo6
Z2V0R3Vlc3Nlc0ZvcldvcmQoY29uc3QgU3RyaW5nJiB3b3JkLCBjb25zdCBTdHJpbmcmIGNvbnRl
eAogICAgIG1fcGFnZS0+c2VuZFN5bmMoTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6R2V0R3Vlc3Nl
c0ZvcldvcmQod29yZCwgY29udGV4dCksIE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OkdldEd1ZXNz
ZXNGb3JXb3JkOjpSZXBseShndWVzc2VzKSk7CiB9CiAKK3ZvaWQgV2ViRWRpdG9yQ2xpZW50Ojpy
ZXF1ZXN0Q2hlY2tpbmdPZlN0cmluZyhXVEY6OlBhc3NSZWZQdHI8VGV4dENoZWNraW5nUmVxdWVz
dD4gcHJwUmVxdWVzdCkKK3sKKyAgICBSZWZQdHI8VGV4dENoZWNraW5nUmVxdWVzdD4gcmVxdWVz
dCA9IHBycFJlcXVlc3Q7CisKKyAgICB1aW50NjRfdCByZXF1ZXN0SUQgPSBnZW5lcmF0ZVRleHRD
aGVja2luZ1JlcXVlc3RJRCgpOworICAgIG1fcGFnZS0+YWRkVGV4dENoZWNraW5nUmVxdWVzdChy
ZXF1ZXN0SUQsIHJlcXVlc3QpOworCisgICAgbV9wYWdlLT5zZW5kKE1lc3NhZ2VzOjpXZWJQYWdl
UHJveHk6OlJlcXVlc3RDaGVja2luZ09mU3RyaW5nKHJlcXVlc3RJRCwgKnJlcXVlc3QpKTsKK30K
Kwogdm9pZCBXZWJFZGl0b3JDbGllbnQ6OndpbGxTZXRJbnB1dE1ldGhvZFN0YXRlKCkKIHsKICNp
ZiBQTEFURk9STShRVCkKQEAgLTQ4NSwxMSArNTAyLDYgQEAgdm9pZCBXZWJFZGl0b3JDbGllbnQ6
OnNldElucHV0TWV0aG9kU3RhdGUoYm9vbCkKICAgICBub3RJbXBsZW1lbnRlZCgpOwogfQogCi12
b2lkIFdlYkVkaXRvckNsaWVudDo6cmVxdWVzdENoZWNraW5nT2ZTdHJpbmcoV1RGOjpQYXNzUmVm
UHRyPFdlYkNvcmU6OlRleHRDaGVja2luZ1JlcXVlc3Q+KQotewotICAgIG5vdEltcGxlbWVudGVk
KCk7Ci19Ci0KIGJvb2wgV2ViRWRpdG9yQ2xpZW50OjpzdXBwb3J0c0dsb2JhbFNlbGVjdGlvbigp
CiB7CiAjaWYgUExBVEZPUk0oUVQpICYmICFkZWZpbmVkKFFUX05PX0NMSVBCT0FSRCkKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcCBiL1Nv
dXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcAppbmRleCBjNDcwOGM4
Li4zYWNhZGQyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2Uv
V2ViUGFnZS5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBh
Z2UuY3BwCkBAIC0zNzk0LDQgKzM3OTQsMzAgQEAgdm9pZCBXZWJQYWdlOjpzZXRNaW5pbXVtTGF5
b3V0V2lkdGgoZG91YmxlIG1pbmltdW1MYXlvdXRXaWR0aCkKICAgICAgICAgY29yZVBhZ2UoKS0+
bWFpbkZyYW1lKCktPnZpZXcoKS0+ZW5hYmxlQXV0b1NpemVNb2RlKGZhbHNlLCBJbnRTaXplKCks
IEludFNpemUoKSk7CiB9CiAKK3ZvaWQgV2ViUGFnZTo6YWRkVGV4dENoZWNraW5nUmVxdWVzdCh1
aW50NjRfdCByZXF1ZXN0SUQsIFBhc3NSZWZQdHI8V2ViQ29yZTo6VGV4dENoZWNraW5nUmVxdWVz
dD4gcmVxdWVzdCkKK3sKKyAgICBtX3BlbmRpbmdUZXh0Q2hlY2tpbmdSZXF1ZXN0TWFwLmFkZChy
ZXF1ZXN0SUQsIHJlcXVlc3QpOworfQorCit2b2lkIFdlYlBhZ2U6OmRpZEZpbmlzaENoZWNraW5n
VGV4dCh1aW50NjRfdCByZXF1ZXN0SUQsIGNvbnN0IFZlY3RvcjxXZWJDb3JlOjpUZXh0Q2hlY2tp
bmdSZXN1bHQ+JiByZXN1bHQpCit7CisgICAgV2ViQ29yZTo6VGV4dENoZWNraW5nUmVxdWVzdCog
cmVxdWVzdCA9IG1fcGVuZGluZ1RleHRDaGVja2luZ1JlcXVlc3RNYXAuZ2V0KHJlcXVlc3RJRCku
Z2V0KCk7CisgICAgaWYgKCFyZXF1ZXN0KQorICAgICAgICByZXR1cm47CisKKyAgICByZXF1ZXN0
LT5kaWRTdWNjZWVkKHJlc3VsdCk7CisgICAgbV9wZW5kaW5nVGV4dENoZWNraW5nUmVxdWVzdE1h
cC5yZW1vdmUocmVxdWVzdElEKTsKK30KKwordm9pZCBXZWJQYWdlOjpkaWRDYW5jZWxDaGVja2lu
Z1RleHQodWludDY0X3QgcmVxdWVzdElEKQoreworICAgIFdlYkNvcmU6OlRleHRDaGVja2luZ1Jl
cXVlc3QqIHJlcXVlc3QgPSBtX3BlbmRpbmdUZXh0Q2hlY2tpbmdSZXF1ZXN0TWFwLmdldChyZXF1
ZXN0SUQpLmdldCgpOworICAgIGlmICghcmVxdWVzdCkKKyAgICAgICAgcmV0dXJuOworCisgICAg
cmVxdWVzdC0+ZGlkQ2FuY2VsKCk7CisgICAgbV9wZW5kaW5nVGV4dENoZWNraW5nUmVxdWVzdE1h
cC5yZW1vdmUocmVxdWVzdElEKTsKK30KKworCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmggYi9Tb3Vy
Y2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oCmluZGV4IGE2ZTA2MDYuLjg2
ZTg3NjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQ
YWdlLmgKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaApA
QCAtNTksNiArNTksNyBAQAogI2luY2x1ZGUgPFdlYkNvcmUvUGFnZVZpc2liaWxpdHlTdGF0ZS5o
PgogI2luY2x1ZGUgPFdlYkNvcmUvUGxhdGZvcm1TY3JlZW4uaD4KICNpbmNsdWRlIDxXZWJDb3Jl
L1Njcm9sbFR5cGVzLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9UZXh0Q2hlY2tpbmcuaD4KICNpbmNs
dWRlIDxXZWJDb3JlL1dlYkNvcmVLZXlib2FyZFVJTW9kZS5oPgogI2luY2x1ZGUgPHd0Zi9IYXNo
TWFwLmg+CiAjaW5jbHVkZSA8d3RmL093blB0ci5oPgpAQCAtMTE2LDYgKzExNyw4IEBAIG5hbWVz
cGFjZSBXZWJDb3JlIHsKICAgICBjbGFzcyBSZXNvdXJjZVJlc3BvbnNlOwogICAgIGNsYXNzIFJl
c291cmNlUmVxdWVzdDsKICAgICBjbGFzcyBTaGFyZWRCdWZmZXI7CisgICAgY2xhc3MgVGV4dENo
ZWNraW5nUmVxdWVzdDsKKyAgICBjbGFzcyBUZXh0Q2hlY2tpbmdSZXN1bHQ7CiAgICAgY2xhc3Mg
VmlzaWJsZVNlbGVjdGlvbjsKICAgICBzdHJ1Y3QgS2V5cHJlc3NDb21tYW5kOwogfQpAQCAtNjA1
LDYgKzYwOCwxMCBAQCBwdWJsaWM6CiAgICAgdm9pZCBzZXRNaW5pbXVtTGF5b3V0V2lkdGgoZG91
YmxlKTsKICAgICBkb3VibGUgbWluaW11bUxheW91dFdpZHRoKCkgY29uc3QgeyByZXR1cm4gbV9t
aW5pbXVtTGF5b3V0V2lkdGg7IH0KIAorICAgIHZvaWQgYWRkVGV4dENoZWNraW5nUmVxdWVzdCh1
aW50NjRfdCByZXF1ZXN0SUQsIFBhc3NSZWZQdHI8V2ViQ29yZTo6VGV4dENoZWNraW5nUmVxdWVz
dD4pOworICAgIHZvaWQgZGlkRmluaXNoQ2hlY2tpbmdUZXh0KHVpbnQ2NF90IHJlcXVlc3RJRCwg
Y29uc3QgVmVjdG9yPFdlYkNvcmU6OlRleHRDaGVja2luZ1Jlc3VsdD4mKTsKKyAgICB2b2lkIGRp
ZENhbmNlbENoZWNraW5nVGV4dCh1aW50NjRfdCByZXF1ZXN0SUQpOworCiBwcml2YXRlOgogICAg
IFdlYlBhZ2UodWludDY0X3QgcGFnZUlELCBjb25zdCBXZWJQYWdlQ3JlYXRpb25QYXJhbWV0ZXJz
Jik7CiAKQEAgLTc5OCw2ICs4MDUsOCBAQCBwcml2YXRlOgogCiAgICAgSGFzaFNldDxQbHVnaW5W
aWV3Kj4gbV9wbHVnaW5WaWV3czsKIAorICAgIEhhc2hNYXA8dWludDY0X3QsIFJlZlB0cjxXZWJD
b3JlOjpUZXh0Q2hlY2tpbmdSZXF1ZXN0PiA+IG1fcGVuZGluZ1RleHRDaGVja2luZ1JlcXVlc3RN
YXA7CisKICAgICBib29sIG1fdXNlRml4ZWRMYXlvdXQ7CiAKICAgICBib29sIG1fZHJhd3NCYWNr
Z3JvdW5kOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dl
YlBhZ2UubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2Vi
UGFnZS5tZXNzYWdlcy5pbgppbmRleCA2N2JjZTZhLi5lMjUwYjA2IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5tZXNzYWdlcy5pbgorKysgYi9T
b3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5tZXNzYWdlcy5pbgpAQCAt
MTk0LDYgKzE5NCw4IEBAIG1lc3NhZ2VzIC0+IFdlYlBhZ2UgTGVnYWN5UmVjZWl2ZXIgewogICAg
ICMgU3BlbGxpbmcgYW5kIGdyYW1tYXIuCiAgICAgQWR2YW5jZVRvTmV4dE1pc3NwZWxsaW5nKGJv
b2wgc3RhcnRCZWZvcmVTZWxlY3Rpb24pCiAgICAgQ2hhbmdlU3BlbGxpbmdUb1dvcmQoV1RGOjpT
dHJpbmcgd29yZCkKKyAgICBEaWRGaW5pc2hDaGVja2luZ1RleHQodWludDY0X3QgcmVxdWVzdElE
LCBXVEY6OlZlY3RvcjxXZWJDb3JlOjpUZXh0Q2hlY2tpbmdSZXN1bHQ+IHJlc3VsdCkKKyAgICBE
aWRDYW5jZWxDaGVja2luZ1RleHQodWludDY0X3QgcmVxdWVzdElEKQogI2lmIFVTRShBUFBLSVQp
CiAgICAgVXBwZXJjYXNlV29yZCgpCiAgICAgTG93ZXJjYXNlV29yZCgpCg==
</data>
<flag name="commit-queue"
          id="208079"
          type_id="3"
          status="-"
          setter="webkit-ews"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>188873</attachid>
            <date>2013-02-18 06:28:06 -0800</date>
            <delta_ts>2013-02-22 02:36:33 -0800</delta_ts>
            <desc>hopefully makes EWS happier</desc>
            <filename>spelling-asynchronous-spell-checking-WK2.patch</filename>
            <type>text/plain</type>
            <size>37242</size>
            <attacher name="Grzegorz Czajkowski">g.czajkowski</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCA5ZGY1NTk3Li5jZDRmOTQ0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzMg
QEAKKzIwMTMtMDItMTggIEdyemVnb3J6IEN6YWprb3dza2kgIDxnLmN6YWprb3dza2lAc2Ftc3Vu
Zy5jb20+LCBNYXJpdXN6IEdyemVnb3JjenlrIDxtYXJpdXN6LmdAc2Ftc3VuZy5jb20+CisKKyAg
ICAgICAgW1dLMl0gQXN5bmNocm9ub3VzIHNwZWxsIGNoZWNraW5nIGltcGxlbWVudGF0aW9uCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDgxNzIKKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUaGUgY2hhbmdl
cyBpbiBXZWJDb3JlIGFyZSByZXF1aXJlZCB0byBpbXBsZW1lbnQgYXN5bmNocm9ub3VzIHNwZWxs
IGNoZWNraW5nIGluIFdLMi4KKyAgICAgICAgVGhlIGlkZWEgb2YgYXN5bmNocm9ub3VzIHNwZWxs
IGNoZWNraW5nIGluIFdLMSBpcyB0byBwYXNzIHRoZSBwb2ludGVyIHRvIGFic3RyYWN0IG9iamVj
dAorICAgICAgICB0byB0aGUgY2xpZW50IHdobyBpcyBhYmxlIHRvIHZlcmlmeSB0aGUgZ2l2ZW4g
dGV4dCBhbmQgbm90aWZ5IHRoZSBXZWJDb3JlIGFib3V0IHJlc3VsdHMuCisgICAgICAgIFdLMiBl
eHRyYWN0cyB0aGUgcmVxdWVzdCBkYXRhIGFuZCBwYXNzZXMgaXQgKHdpdGggYWRkaXRpb25hbCBp
bmZvcm1hdGlvbikgdG8gdGhlIFVJUHJvY2Vzcy4KKworICAgICAgICBObyBuZXcgdGVzdHMsIGNv
dmVyZWQgYnkgZWRpdGluZy9zcGVsbGluZyB0ZXN0cy4KKworICAgICAgICAqIGVkaXRpbmcvU3Bl
bGxDaGVja2VyLmNwcDoKKyAgICAgICAgTW92ZSAndW5yZXF1ZXN0ZWRTZXF1ZW5jZScgZGVjbGFy
YXRpb24gdG8gdGhlICdUZXh0Q2hlY2tpbmcuaCcgdG8gYmUKKyAgICAgICAgYWNjZXNzaWJsZSBi
eSBkZWZhdWx0IGNvbnN0cnVjdG9yIG9mICdUZXh0Q2hlY2tpbmdSZXF1ZXN0RGF0YScuCisKKyAg
ICAgICAgKiBwbGF0Zm9ybS90ZXh0L1RleHRDaGVja2luZy5oOgorICAgICAgICAoV2ViQ29yZSk6
CisgICAgICAgIChXZWJDb3JlOjpUZXh0Q2hlY2tpbmdSZXF1ZXN0RGF0YTo6VGV4dENoZWNraW5n
UmVxdWVzdERhdGEpOgorICAgICAgICBJbnRyb2R1Y2UgYSBuZXcgJ1RleHRDaGVja2luZ1JlcXVl
c3REYXRhJyBjbGFzcyB0byBleHRyYWN0IHRoZSByZXF1ZXN0IGRhdGEKKyAgICAgICAgZnJvbSB0
aGUgJ1RleHRDaGVja2luZ1JlcXVlc3QnIHRvIGFsbG93IHJldHJpZXZlIGl0IGZyb20gdGhlIGFi
c3RyYWN0IGNsYXNzIGFuZAorICAgICAgICBwYXNzIHRvIFVJUHJvY2Vzcy4KKworICAgICAgICAo
VGV4dENoZWNraW5nUmVxdWVzdCk6CisgICAgICAgIChXZWJDb3JlOjpUZXh0Q2hlY2tpbmdSZXF1
ZXN0OjpUZXh0Q2hlY2tpbmdSZXF1ZXN0KToKKyAgICAgICAgSW5oZXJpdCAnVGV4dENoZWNraW5n
UmVxdWVzdERhdGEnLgorICAgICAgICAoV2ViQ29yZTo6VGV4dENoZWNraW5nUmVxdWVzdDo6flRl
eHRDaGVja2luZ1JlcXVlc3QpOgorCiAyMDEzLTAyLTE4ICBBbGV4YW5kZXIgUGF2bG92ICA8YXBh
dmxvdkBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgV2ViIEluc3BlY3RvcjogW1Jlc291cmNlc10g
T25seSByZW1lbWJlciB0aGUgdHJlZSBlbGVtZW50IHNlbGVjdGlvbiBpZiBleHBsaWNpdGx5IG1h
ZGUgYnkgdXNlcgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9TcGVsbENoZWNr
ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9TcGVsbENoZWNrZXIuY3BwCmluZGV4IDM2
MGZiOWMuLmIzYzFhNGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvU3BlbGxD
aGVja2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1NwZWxsQ2hlY2tlci5jcHAK
QEAgLTQ1LDggKzQ1LDYgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1zdGF0aWMgY29uc3Qg
aW50IHVucmVxdWVzdGVkU2VxdWVuY2UgPSAtMTsKLQogU3BlbGxDaGVja1JlcXVlc3Q6OlNwZWxs
Q2hlY2tSZXF1ZXN0KFBhc3NSZWZQdHI8UmFuZ2U+IGNoZWNraW5nUmFuZ2UsIFBhc3NSZWZQdHI8
UmFuZ2U+IHBhcmFncmFwaFJhbmdlLCBjb25zdCBTdHJpbmcmIHRleHQsIFRleHRDaGVja2luZ1R5
cGVNYXNrIG1hc2ssIFRleHRDaGVja2luZ1Byb2Nlc3NUeXBlIHByb2Nlc3NUeXBlKQogICAgIDog
VGV4dENoZWNraW5nUmVxdWVzdCh1bnJlcXVlc3RlZFNlcXVlbmNlLCB0ZXh0LCBtYXNrLCBwcm9j
ZXNzVHlwZSkKICAgICAsIG1fY2hlY2tlcigwKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vdGV4dC9UZXh0Q2hlY2tpbmcuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3Rl
eHQvVGV4dENoZWNraW5nLmgKaW5kZXggMzk3ZGQ0Ni4uNDMxZTI1OCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vdGV4dC9UZXh0Q2hlY2tpbmcuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS90ZXh0L1RleHRDaGVja2luZy5oCkBAIC01NSw2ICs1NSw3IEBAIG5hbWVz
cGFjZSBXZWJDb3JlIHsKICNlbmRpZiAvLyAjaWYgUExBVEZPUk0oTUFDKSAmJiAoUExBVEZPUk0o
SU9TKSB8fCBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEwNzApCiAKIGVudW0g
VGV4dENoZWNraW5nVHlwZSB7CisgICAgVGV4dENoZWNraW5nVHlwZU5vbmUgICAgICAgID0gMCwK
ICAgICBUZXh0Q2hlY2tpbmdUeXBlU3BlbGxpbmcgICAgPSAxIDw8IDEsCiAgICAgVGV4dENoZWNr
aW5nVHlwZUdyYW1tYXIgICAgID0gMSA8PCAyLAogICAgIFRleHRDaGVja2luZ1R5cGVMaW5rICAg
ICAgICA9IDEgPDwgNSwKQEAgLTg3LDE5ICs4OCwyMiBAQCBzdHJ1Y3QgVGV4dENoZWNraW5nUmVz
dWx0IHsKICAgICBTdHJpbmcgcmVwbGFjZW1lbnQ7CiB9OwogCi1jbGFzcyBUZXh0Q2hlY2tpbmdS
ZXF1ZXN0IDogcHVibGljIFJlZkNvdW50ZWQ8VGV4dENoZWNraW5nUmVxdWVzdD4geworY29uc3Qg
aW50IHVucmVxdWVzdGVkU2VxdWVuY2UgPSAtMTsKKworY2xhc3MgVGV4dENoZWNraW5nUmVxdWVz
dERhdGEgewogcHVibGljOgotICAgIFRleHRDaGVja2luZ1JlcXVlc3QoaW50IHNlcXVlbmNlLCBj
b25zdCBTdHJpbmcmIHRleHQsIFRleHRDaGVja2luZ1R5cGVNYXNrIG1hc2ssIFRleHRDaGVja2lu
Z1Byb2Nlc3NUeXBlIHByb2Nlc3NUeXBlKQorICAgIFRleHRDaGVja2luZ1JlcXVlc3REYXRhKCkK
KyAgICAgICAgOiBtX3NlcXVlbmNlKHVucmVxdWVzdGVkU2VxdWVuY2UpCisgICAgICAgICwgbV9t
YXNrKFRleHRDaGVja2luZ1R5cGVOb25lKQorICAgICAgICAsIG1fcHJvY2Vzc1R5cGUoVGV4dENo
ZWNraW5nUHJvY2Vzc0luY3JlbWVudGFsKQorICAgIHsgfQorICAgIFRleHRDaGVja2luZ1JlcXVl
c3REYXRhKGludCBzZXF1ZW5jZSwgY29uc3QgU3RyaW5nJiB0ZXh0LCBUZXh0Q2hlY2tpbmdUeXBl
TWFzayBtYXNrLCBUZXh0Q2hlY2tpbmdQcm9jZXNzVHlwZSBwcm9jZXNzVHlwZSkKICAgICAgICAg
OiBtX3NlcXVlbmNlKHNlcXVlbmNlKQogICAgICAgICAsIG1fdGV4dCh0ZXh0KQogICAgICAgICAs
IG1fbWFzayhtYXNrKQogICAgICAgICAsIG1fcHJvY2Vzc1R5cGUocHJvY2Vzc1R5cGUpCiAgICAg
eyB9CiAKLSAgICB2aXJ0dWFsIH5UZXh0Q2hlY2tpbmdSZXF1ZXN0KCkgeyB9Ci0gICAgdmlydHVh
bCB2b2lkIGRpZFN1Y2NlZWQoY29uc3QgVmVjdG9yPFRleHRDaGVja2luZ1Jlc3VsdD4mKSA9IDA7
Ci0gICAgdmlydHVhbCB2b2lkIGRpZENhbmNlbCgpID0gMDsKLQogICAgIGludCBzZXF1ZW5jZSgp
IGNvbnN0IHsgcmV0dXJuIG1fc2VxdWVuY2U7IH0KICAgICBTdHJpbmcgdGV4dCgpIGNvbnN0IHsg
cmV0dXJuIG1fdGV4dDsgfQogICAgIFRleHRDaGVja2luZ1R5cGVNYXNrIG1hc2soKSBjb25zdCB7
IHJldHVybiBtX21hc2s7IH0KQEAgLTExMiw2ICsxMTYsMTcgQEAgcHJvdGVjdGVkOgogICAgIFRl
eHRDaGVja2luZ1Byb2Nlc3NUeXBlIG1fcHJvY2Vzc1R5cGU7CiB9OwogCitjbGFzcyBUZXh0Q2hl
Y2tpbmdSZXF1ZXN0IDogcHVibGljIFJlZkNvdW50ZWQ8VGV4dENoZWNraW5nUmVxdWVzdD4sIHB1
YmxpYyBUZXh0Q2hlY2tpbmdSZXF1ZXN0RGF0YSB7CitwdWJsaWM6CisgICAgVGV4dENoZWNraW5n
UmVxdWVzdChpbnQgc2VxdWVuY2UsIGNvbnN0IFN0cmluZyYgdGV4dCwgVGV4dENoZWNraW5nVHlw
ZU1hc2sgbWFzaywgVGV4dENoZWNraW5nUHJvY2Vzc1R5cGUgcHJvY2Vzc1R5cGUpCisgICAgICAg
IDogVGV4dENoZWNraW5nUmVxdWVzdERhdGEoc2VxdWVuY2UsIHRleHQsIG1hc2ssIHByb2Nlc3NU
eXBlKQorICAgIHsgfQorCisgICAgdmlydHVhbCB+VGV4dENoZWNraW5nUmVxdWVzdCgpIHsgfQor
ICAgIHZpcnR1YWwgdm9pZCBkaWRTdWNjZWVkKGNvbnN0IFZlY3RvcjxUZXh0Q2hlY2tpbmdSZXN1
bHQ+JikgPSAwOworICAgIHZpcnR1YWwgdm9pZCBkaWRDYW5jZWwoKSA9IDA7Cit9OworCiB9CiAK
ICNlbmRpZiAvLyBUZXh0Q2hlY2tpbmdfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvQ01h
a2VMaXN0cy50eHQgYi9Tb3VyY2UvV2ViS2l0Mi9DTWFrZUxpc3RzLnR4dAppbmRleCA3YzFjMGZk
Li41OTY4ZTk4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9DTWFrZUxpc3RzLnR4dAorKysg
Yi9Tb3VyY2UvV2ViS2l0Mi9DTWFrZUxpc3RzLnR4dApAQCAtMjQ0LDYgKzI0NCw3IEBAIHNldChX
ZWJLaXQyX1NPVVJDRVMKICAgICBVSVByb2Nlc3MvUGFnZVZpZXdwb3J0Q29udHJvbGxlci5jcHAK
ICAgICBVSVByb2Nlc3MvUmVzcG9uc2l2ZW5lc3NUaW1lci5jcHAKICAgICBVSVByb2Nlc3MvU3Rh
dGlzdGljc1JlcXVlc3QuY3BwCisgICAgVUlQcm9jZXNzL1RleHRDaGVja2VyQ29tcGxldGlvbi5j
cHAKICAgICBVSVByb2Nlc3MvVmlzaXRlZExpbmtQcm92aWRlci5jcHAKICAgICBVSVByb2Nlc3Mv
V2ViQXBwbGljYXRpb25DYWNoZU1hbmFnZXJQcm94eS5jcHAKICAgICBVSVByb2Nlc3MvV2ViQmFj
a0ZvcndhcmRMaXN0LmNwcApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nIGIv
U291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCmluZGV4IGYyNGRmMDkuLjg2ZmU4OWMgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VM
b2cKQEAgLTEsMyArMSwxMzQgQEAKKzIwMTMtMDItMTggIEdyemVnb3J6IEN6YWprb3dza2kgIDxn
LmN6YWprb3dza2lAc2Ftc3VuZy5jb20+LCBNYXJpdXN6IEdyemVnb3JjenlrIDxtYXJpdXN6LmdA
c2Ftc3VuZy5jb20+CisKKyAgICAgICAgW1dLMl0gQXN5bmNocm9ub3VzIHNwZWxsIGNoZWNraW5n
IGltcGxlbWVudGF0aW9uCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0xMDgxNzIKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICBBc3NvY2lhdGUgdGhlIGFic3RyYWN0ICdXZWJDb3JlOjpUZXh0Q2hlY2tpbmdSZXF1
ZXN0JyB3aXRoIHRoZSB1bmlxdWUgaWRlbnRpZmllcgorICAgICAgICBvbiBXZWJQcm9jZXNzIHNp
ZGUuIEV4dHJhY3QgdGhlIHJlcXVlc3QgZGF0YSBmcm9tIHRoZSAnVGV4dENoZWNraW5nUmVxdWVz
dCcgdG8KKyAgICAgICAgcGFzcyBpdCB0byB0aGUgVUlQcm9jZXNzLiBUaGUgY2xpZW50IChUZXh0
Q2hlY2tlcntHdGsvTWFjL0VmbC9RdH0uY3BwKSBnZXRzCisgICAgICAgIGEgbmV3IGRlZmluZWQg
YWJzdHJhY3Qgb2JqZWN0IHdpdGggdGhlIHJlcXVlc3QgZGF0YSBhbmQgcG9zc2liaWxpdHkgdG8g
bm90aWZ5CisgICAgICAgIFdlYkNvcmUgYWJvdXQgdGhlIHNwZWxsaW5nIHJlc3VsdHMuCisgICAg
ICAgIFRoZSBpbXBsZW1lbnRhdGlvbiBzZW5kcyBiYWNrIGEgbWVzc2FnZSB0byBXZWJQcm9jZXNz
LCB0aGUgcmVxdWVzdCAod2l0aCB0aGUgcHJvcGVyCisgICAgICAgIGlkZW50aWZpZXIpIGhhcyBi
ZWVuIGhhbmRsZWQgb3IgY2FuY2VsbGVkLgorICAgICAgICBGaW5hbGx5LCB0aGUgV2ViUGFnZSBv
YmplY3QgY2FsbHMgb24gdGhlIHByb3BlciAnVGV4dENoZWNraW5nUmVxdWVzdCcgb2JqZWN0Cisg
ICAgICAgIGRpZFN1Y2Nlc3MvZGlkQ2FuY2VsIG1ldGhvZC4KKworICAgICAgICAqIENNYWtlTGlz
dHMudHh0OgorICAgICAgICAqIEdOVW1ha2VmaWxlLmxpc3QuYW06CisgICAgICAgIEFkZCAnVGV4
dENoZWNrZXJDb21wbGV0aW9uLntoL2NwcH0nIHRvIHRoZSBXZWJLaXQyIGNtYWtlIGJhc2VkIGFu
ZAorICAgICAgICBXSzItR3RrKyBidWlsZHMuCisKKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdDIv
bWVzc2FnZXMucHk6CisgICAgICAgIChoZWFkZXJzX2Zvcl90eXBlKToKKyAgICAgICAgQWRkIGV4
Y2VwdGlvbiBmb3IgJ1RleHRDaGVja2luZ1JlcXVlc3REYXRhJyBjbGFzcyB0byBwcm9wZXJseSBm
aW5kIGhlYWRlcgorICAgICAgICBmaWxlIGZvciBpdC4KKworICAgICAgICAqIFNoYXJlZC9XZWJD
b3JlQXJndW1lbnRDb2RlcnMuY3BwOgorICAgICAgICAoQ29yZUlQQzo6OjplbmNvZGUpOgorICAg
ICAgICAoQ29yZUlQQzo6OjpkZWNvZGUpOgorICAgICAgICAqIFNoYXJlZC9XZWJDb3JlQXJndW1l
bnRDb2RlcnMuaDoKKyAgICAgICAgTGVhcm4gJ0FyZ3VtZW50Q29kZXInIGhvdyB0byBlbmNvZGUv
ZGVjb2RlIGEgbmV3bHkgaW50cm9kdWNlZAorICAgICAgICAnVGV4dENoZWNraW5nUmVxdWVzdERh
dGEnIHR5cGUuCisKKyAgICAgICAgKiBUYXJnZXQucHJpOgorICAgICAgICBBZGQgJ1RleHRDaGVj
a2VyQ29tcGxldGlvbi57aC9jcHB9JyB0byB0aGUgV0syLVF0IGJ1aWxkLgorCisgICAgICAgICog
VUlQcm9jZXNzL1RleHRDaGVja2VyLmg6CisgICAgICAgIChUZXh0Q2hlY2tlcik6CisgICAgICAg
IEFkZCAncmVxdWVzdENoZWNraW5nT2ZTdHJpbmcnIG1ldGhvZCB0byB0aGUgVGV4dENoZWNrZXIn
cyBpbnRlcmZhY2UuCisKKyAgICAgICAgKiBVSVByb2Nlc3MvVGV4dENoZWNrZXJDb21wbGV0aW9u
LmNwcDogQWRkZWQuCisgICAgICAgIChXZWJLaXQpOgorICAgICAgICAoV2ViS2l0OjpUZXh0Q2hl
Y2tlckNvbXBsZXRpb25JbXBsOjpjcmVhdGUpOgorICAgICAgICBSZXR1cm4gYSBwb2ludGVyIChh
cyBQYXNzUmVmUHRyKSB0byB0aGUgJ1RleHRDaGVja2VyQ29tcGxldGlvbkltcGwnIG9iamVjdAor
ICAgICAgICB0byBlYXN5IGNhc3QgaXQgdG8gdGhlIGJhc2UgY2xhc3MgKCdUZXh0Q2hlY2tlckNv
bXBsZXRpb24nKS4KKworICAgICAgICAoV2ViS2l0OjpUZXh0Q2hlY2tlckNvbXBsZXRpb25JbXBs
OjpUZXh0Q2hlY2tlckNvbXBsZXRpb25JbXBsKToKKyAgICAgICAgRGVmaW5lcyBhIGNvbnN0cnVj
dG9yLgorCisgICAgICAgIChXZWJLaXQ6OlRleHRDaGVja2VyQ29tcGxldGlvbkltcGw6OnRleHRD
aGVja2luZ1JlcXVlc3REYXRhKToKKyAgICAgICAgQWxsb3cgdG8gcmV0cmlldmUgJ1RleHRDaGVj
a2luZ1JlcXVlc3REYXRhJyBvYmplY3QuCisKKyAgICAgICAgKFdlYktpdDo6VGV4dENoZWNrZXJD
b21wbGV0aW9uSW1wbDo6ZGlkRmluaXNoQ2hlY2tpbmdUZXh0KToKKyAgICAgICAgKFdlYktpdDo6
VGV4dENoZWNrZXJDb21wbGV0aW9uSW1wbDo6ZGlkQ2FuY2VsQ2hlY2tpbmdUZXh0KToKKyAgICAg
ICAgTm90aWZ5IHRoZSAnV2ViUGFnZVByb3h5JyBvYmplY3QgdGhhdCB0aGUgdGhlIGdpdmVuIHJl
cXVlc3QgaGFzIGJlZW4KKyAgICAgICAgaGFuZGxlZCBvciBjYW5jZWxsZWQuCisKKyAgICAgICAg
KiBVSVByb2Nlc3MvVGV4dENoZWNrZXJDb21wbGV0aW9uLmg6IEFkZGVkLgorICAgICAgICAoV2Vi
S2l0KToKKyAgICAgICAgKFRleHRDaGVja2VyQ29tcGxldGlvbik6CisgICAgICAgIEludHJvZHVj
ZSBhIHZpcnR1YWwgY2xhc3MsIGl0IGFsbG93cyB0byByZXRyaWV2ZSB0aGUgcmVxdWVzdCBkYXRh
IGFuZCBjYWxsCisgICAgICAgIGRpZEZpbmlzaENoZWNraW5nVGV4dC9kaWRDYW5jZWxDaGVja2lu
Z1RleHQuCisKKyAgICAgICAgKFdlYktpdDo6VGV4dENoZWNrZXJDb21wbGV0aW9uOjp+VGV4dENo
ZWNrZXJDb21wbGV0aW9uKToKKyAgICAgICAgKFRleHRDaGVja2VyQ29tcGxldGlvbkltcGwpOgor
ICAgICAgICAoV2ViS2l0OjpUZXh0Q2hlY2tlckNvbXBsZXRpb25JbXBsOjp+VGV4dENoZWNrZXJD
b21wbGV0aW9uSW1wbCk6CisKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcDoK
KyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5OjpyZXF1ZXN0Q2hlY2tpbmdPZlN0cmluZyk6
CisgICAgICAgIENyZWF0ZSAnVGV4dENoZWNrZXJDb21wbGV0aW9uSW1wbCcgb2JqZWN0IHdpdGgg
YWRkaXRpb25hbCBkYXRhIGFuZCBwYXNzIGl0CisgICAgICAgIGFzIHRoZSBiYXNlIGNsYXNzIHRv
IHRoZSAnVGV4dENoZWNrZXI6OnJlcXVlc3RDaGVja2luZ09mU3RyaW5nJyBtZXRob2QuCisKKyAg
ICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5OjpkaWRGaW5pc2hDaGVja2luZ1RleHQpOgorICAg
ICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OmRpZENhbmNlbENoZWNraW5nVGV4dCk6CisgICAg
ICAgIFNlbmQgdGhlIG1lc3NhZ2VzIHRvIFdlYlByb2Nlc3MgdGhhdCB0aGUgZ2l2ZW4gcmVxdWVz
dCBoYXMgYmVlbgorICAgICAgICBoYW5kbGVkIG9yIGNhbmNlbGxlZC4KKworICAgICAgICAqIFVJ
UHJvY2Vzcy9XZWJQYWdlUHJveHkuaDoKKyAgICAgICAgKFdlYlBhZ2VQcm94eSk6CisgICAgICAg
IEFkZGVkIHB1YmxpYyBkZWNsYXJhdGlvbnMgZm9yICdkaWRGaW5pc2hDaGVja2luZ1RleHQnLCAn
ZGlkQ2FuY2VsQ2hlY2tpbmdUZXh0JyBhbmQKKyAgICAgICAgcHJpdmF0ZSBmb3IgJ3JlcXVlc3RD
aGVja2luZ09mU3RyaW5nJy4KKworICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQYWdlUHJveHkubWVz
c2FnZXMuaW46CisgICAgICAgIEEgbmV3IGVudHJ5IGZvciAnUmVxdWVzdENoZWNraW5nT2ZTdHJp
bmcnLgorCisgICAgICAgICogVUlQcm9jZXNzL2VmbC9UZXh0Q2hlY2tlckVmbC5jcHA6CisgICAg
ICAgIChXZWJLaXQ6OlRleHRDaGVja2VyOjpyZXF1ZXN0Q2hlY2tpbmdPZlN0cmluZyk6CisgICAg
ICAgIChXZWJLaXQpOgorICAgICAgICAqIFVJUHJvY2Vzcy9ndGsvVGV4dENoZWNrZXJHdGsuY3Bw
OgorICAgICAgICAoV2ViS2l0OjpUZXh0Q2hlY2tlcjo6cmVxdWVzdENoZWNraW5nT2ZTdHJpbmcp
OgorICAgICAgICAoV2ViS2l0KToKKyAgICAgICAgKiBVSVByb2Nlc3MvbWFjL1RleHRDaGVja2Vy
TWFjLm1tOgorICAgICAgICAoV2ViS2l0OjpUZXh0Q2hlY2tlcjo6cmVxdWVzdENoZWNraW5nT2ZT
dHJpbmcpOgorICAgICAgICAoV2ViS2l0KToKKyAgICAgICAgKiBVSVByb2Nlc3MvcXQvVGV4dENo
ZWNrZXJRdC5jcHA6CisgICAgICAgIChXZWJLaXQ6OlRleHRDaGVja2VyOjpyZXF1ZXN0Q2hlY2tp
bmdPZlN0cmluZyk6CisgICAgICAgIChXZWJLaXQpOgorICAgICAgICBBZGQgZHVtbXkgaW1wbGVt
ZW50YXRpb25zIGZvciAncmVxdWVzdENoZWNraW5nT2ZTdHJpbmcnLgorCisgICAgICAgICogV2Vi
S2l0Mi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICBBZGQgJ1RleHRDaGVja2Vy
Q29tcGxldGlvbi57aC9jcHB9IHRvIE1hYyBidWlsZC4KKworICAgICAgICAqIFdlYlByb2Nlc3Mv
V2ViQ29yZVN1cHBvcnQvV2ViRWRpdG9yQ2xpZW50LmNwcDoKKyAgICAgICAgKFdlYktpdDo6Z2Vu
ZXJhdGVUZXh0Q2hlY2tpbmdSZXF1ZXN0SUQpOgorICAgICAgICBIZWxwZXIgZnVuY3Rpb24gdG8g
Z2VuZXJhdGUgdGhlIHVuaXF1ZSBpZGVudGlmaWVyIGZvciAnVGV4dENoZWNraW5nUmVxdWVzdCcK
KyAgICAgICAgYWJzdHJhY3Qgb2JqZWN0LgorCisgICAgICAgIChXZWJLaXQ6OldlYkVkaXRvckNs
aWVudDo6cmVxdWVzdENoZWNraW5nT2ZTdHJpbmcpOgorICAgICAgICBBc3NvY2lhdGUgJ1RleHRD
aGVja2luZ1JlcXVlc3QnIHdpdGggdGhlIHVuaXF1ZSBpZGVudGlmaWVyIGFuZCBhZGQgdGhlbQor
ICAgICAgICB0byB0aGUgbWFwIG9iamVjdC4KKyAgICAgICAgQ2FzdCAnVGV4dENoZWNraW5nUmVx
dWVzdCcgb2JqZWN0IHRvIHRoZSAnVGV4dENoZWNraW5nUmVxdWVzdERhdGEnIGFuZCBzZW5kCisg
ICAgICAgIGl0IHRvIHRoZSBVSVByb2Nlc3MuCisKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBh
Z2UvV2ViUGFnZS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6OmFkZFRleHRDaGVja2lu
Z1JlcXVlc3QpOgorICAgICAgICBBZGQgdGhlIGlkZW50aWZpZXIgYW5kIHRoZSByZXF1ZXN0IHRv
IHRoZSBtYXAgb2JqZWN0LgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjpkaWRGaW5pc2hDaGVj
a2luZ1RleHQpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjpkaWRDYW5jZWxDaGVja2luZ1Rl
eHQpOgorICAgICAgICBDYWxsIGRpZFN1Y2NlZWQvZGlkQ2FuY2VsIG9uIHRoZSAnVGV4dENoZWNr
aW5nUmVxdWVzdCcgdG8gbm90aWZ5IHRoZSBXZWJDb3JlCisgICAgICAgIGFib3V0IHNwZWxsY2hl
a2luZyByZXN1bHRzLgorICAgICAgICBSZW1vdmUgdGhlIHJlcXVlc3QgZnJvbSB0aGUgbWFwIG9i
amVjdC4KKworICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmg6CisgICAgICAg
IChXZWJQYWdlKToKKyAgICAgICAgQWRkIGRlY2xhcmF0aW9ucyBmb3IgJ2FkZFRleHRDaGVja2lu
Z1JlcXVlc3QnLCAnZGlkRmluaXNoQ2hlY2tpbmdUZXh0JyBhbmQKKyAgICAgICAgJ2RpZENhbmNl
bENoZWNraW5nVGV4dC4nCisKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5t
ZXNzYWdlcy5pbjoKKyAgICAgICAgQWRkIGEgbmV3IGVudHJ5IGZvciBEaWRGaW5pc2hDaGVja2lu
Z1RleHQsIERpZENhbmNlbENoZWNraW5nVGV4dC4KKwogMjAxMy0wMi0xOCAgQ2hyaXN0b3BoZSBE
dW1leiAgPGNoLmR1bWV6QHNpc2Euc2Ftc3VuZy5jb20+CiAKICAgICAgICAgW0VGTF1bV0syXSBE
aXNhYmxlIGZhaWxpbmcgQVBJIHRlc3RzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9HTlVt
YWtlZmlsZS5saXN0LmFtIGIvU291cmNlL1dlYktpdDIvR05VbWFrZWZpbGUubGlzdC5hbQppbmRl
eCBmMzRlNzU4Li4xODhiOTdlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9HTlVtYWtlZmls
ZS5saXN0LmFtCisrKyBiL1NvdXJjZS9XZWJLaXQyL0dOVW1ha2VmaWxlLmxpc3QuYW0KQEAgLTg1
Nyw2ICs4NTcsOCBAQCB3ZWJraXQyX3NvdXJjZXMgKz0gXAogCVNvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9zb3VwL1dlYlNvdXBSZXF1ZXN0TWFuYWdlclByb3h5LmNwcCBcCiAJU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL3NvdXAvV2ViU291cFJlcXVlc3RNYW5hZ2VyUHJveHkuaCBcCiAJU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL1RleHRDaGVja2VyLmggXAorCVNvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9UZXh0Q2hlY2tlckNvbXBsZXRpb24uaCBcCisJU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L1RleHRDaGVja2VyQ29tcGxldGlvbi5jcHAgXAogCVNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9W
aXNpdGVkTGlua1Byb3ZpZGVyLmNwcCBcCiAJU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1Zpc2l0
ZWRMaW5rUHJvdmlkZXIuaCBcCiAJU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkFwcGxpY2F0
aW9uQ2FjaGVNYW5hZ2VyUHJveHkuaCBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TY3Jp
cHRzL3dlYmtpdDIvbWVzc2FnZXMucHkgYi9Tb3VyY2UvV2ViS2l0Mi9TY3JpcHRzL3dlYmtpdDIv
bWVzc2FnZXMucHkKaW5kZXggYmQ4MDA5Mi4uOWJiNDk5NSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdDIvU2NyaXB0cy93ZWJraXQyL21lc3NhZ2VzLnB5CisrKyBiL1NvdXJjZS9XZWJLaXQyL1Nj
cmlwdHMvd2Via2l0Mi9tZXNzYWdlcy5weQpAQCAtNDAzLDYgKzQwMyw3IEBAIGRlZiBoZWFkZXJz
X2Zvcl90eXBlKHR5cGUpOgogICAgICAgICAnV2ViQ29yZTo6S2V5cHJlc3NDb21tYW5kJzogWyc8
V2ViQ29yZS9LZXlib2FyZEV2ZW50Lmg+J10sCiAgICAgICAgICdXZWJDb3JlOjpGaWxlQ2hvb3Nl
clNldHRpbmdzJzogWyc8V2ViQ29yZS9GaWxlQ2hvb3Nlci5oPiddLAogICAgICAgICAnV2ViQ29y
ZTo6UGx1Z2luSW5mbyc6IFsnPFdlYkNvcmUvUGx1Z2luRGF0YS5oPiddLAorICAgICAgICAnV2Vi
Q29yZTo6VGV4dENoZWNraW5nUmVxdWVzdERhdGEnOiBbJzxXZWJDb3JlL3BsYXRmb3JtL3RleHQv
VGV4dENoZWNraW5nLmg+J10sCiAgICAgICAgICdXZWJDb3JlOjpUZXh0Q2hlY2tpbmdSZXN1bHQn
OiBbJzxXZWJDb3JlL1RleHRDaGVja2VyQ2xpZW50Lmg+J10sCiAgICAgICAgICdXZWJDb3JlOjpW
aWV3cG9ydEF0dHJpYnV0ZXMnOiBbJzxXZWJDb3JlL1ZpZXdwb3J0QXJndW1lbnRzLmg+J10sCiAg
ICAgICAgICdXZWJLaXQ6OkluamVjdGVkQnVuZGxlVXNlck1lc3NhZ2VFbmNvZGVyJzogW10sCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmNw
cCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMuY3BwCmluZGV4
IDRmNjBjNDUuLmFlY2MyZTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJD
b3JlQXJndW1lbnRDb2RlcnMuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJDb3Jl
QXJndW1lbnRDb2RlcnMuY3BwCkBAIC04MjksNiArODI5LDM1IEBAIGJvb2wgQXJndW1lbnRDb2Rl
cjxHcmFtbWFyRGV0YWlsPjo6ZGVjb2RlKEFyZ3VtZW50RGVjb2RlciYgZGVjb2RlciwgR3JhbW1h
ckRldGFpCiAgICAgcmV0dXJuIHRydWU7CiB9CiAKK3ZvaWQgQXJndW1lbnRDb2RlcjxUZXh0Q2hl
Y2tpbmdSZXF1ZXN0RGF0YT46OmVuY29kZShBcmd1bWVudEVuY29kZXImIGVuY29kZXIsIGNvbnN0
IFRleHRDaGVja2luZ1JlcXVlc3REYXRhJiByZXF1ZXN0KQoreworICAgIGVuY29kZXIgPDwgcmVx
dWVzdC5zZXF1ZW5jZSgpOworICAgIGVuY29kZXIgPDwgcmVxdWVzdC50ZXh0KCk7CisgICAgZW5j
b2RlciA8PCByZXF1ZXN0Lm1hc2soKTsKKyAgICBlbmNvZGVyLmVuY29kZUVudW0ocmVxdWVzdC5w
cm9jZXNzVHlwZSgpKTsKK30KKworYm9vbCBBcmd1bWVudENvZGVyPFRleHRDaGVja2luZ1JlcXVl
c3REYXRhPjo6ZGVjb2RlKEFyZ3VtZW50RGVjb2RlciYgZGVjb2RlciwgVGV4dENoZWNraW5nUmVx
dWVzdERhdGEmIHJlcXVlc3QpCit7CisgICAgaW50IHNlcXVlbmNlOworICAgIGlmICghZGVjb2Rl
ci5kZWNvZGUoc2VxdWVuY2UpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICBTdHJpbmcg
dGV4dDsKKyAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHRleHQpKQorICAgICAgICByZXR1cm4gZmFs
c2U7CisKKyAgICBUZXh0Q2hlY2tpbmdUeXBlTWFzayBtYXNrOworICAgIGlmICghZGVjb2Rlci5k
ZWNvZGUobWFzaykpCisgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgIFRleHRDaGVja2luZ1By
b2Nlc3NUeXBlIHByb2Nlc3NUeXBlOworICAgIGlmICghZGVjb2Rlci5kZWNvZGVFbnVtKHByb2Nl
c3NUeXBlKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgcmVxdWVzdCA9IFRleHRDaGVj
a2luZ1JlcXVlc3REYXRhKHNlcXVlbmNlLCB0ZXh0LCBtYXNrLCBwcm9jZXNzVHlwZSk7CisgICAg
cmV0dXJuIHRydWU7Cit9CiAKIHZvaWQgQXJndW1lbnRDb2RlcjxUZXh0Q2hlY2tpbmdSZXN1bHQ+
OjplbmNvZGUoQXJndW1lbnRFbmNvZGVyJiBlbmNvZGVyLCBjb25zdCBUZXh0Q2hlY2tpbmdSZXN1
bHQmIHJlc3VsdCkKIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJDb3Jl
QXJndW1lbnRDb2RlcnMuaCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJDb3JlQXJndW1lbnRD
b2RlcnMuaAppbmRleCAwZDhlYjc2Li5lOTE0NzRkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9TaGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmgKKysrIGIvU291cmNlL1dlYktpdDIvU2hh
cmVkL1dlYkNvcmVBcmd1bWVudENvZGVycy5oCkBAIC00OSw2ICs0OSw3IEBAIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKICAgICBjbGFzcyBSZXNvdXJjZUVycm9yOwogICAgIGNsYXNzIFJlc291cmNlUmVx
dWVzdDsKICAgICBjbGFzcyBSZXNvdXJjZVJlc3BvbnNlOworICAgIGNsYXNzIFRleHRDaGVja2lu
Z1JlcXVlc3REYXRhOwogICAgIGNsYXNzIFVzZXJTdHlsZVNoZWV0OwogICAgIGNsYXNzIFVzZXJT
Y3JpcHQ7CiAgICAgc3RydWN0IENvbXBvc2l0aW9uVW5kZXJsaW5lOwpAQCAtMjMzLDYgKzIzNCwx
MSBAQCB0ZW1wbGF0ZTw+IHN0cnVjdCBBcmd1bWVudENvZGVyPFdlYkNvcmU6OkdyYW1tYXJEZXRh
aWw+IHsKICAgICBzdGF0aWMgYm9vbCBkZWNvZGUoQXJndW1lbnREZWNvZGVyJiwgV2ViQ29yZTo6
R3JhbW1hckRldGFpbCYpOwogfTsKIAordGVtcGxhdGU8PiBzdHJ1Y3QgQXJndW1lbnRDb2RlcjxX
ZWJDb3JlOjpUZXh0Q2hlY2tpbmdSZXF1ZXN0RGF0YT4geworICAgIHN0YXRpYyB2b2lkIGVuY29k
ZShBcmd1bWVudEVuY29kZXImLCBjb25zdCBXZWJDb3JlOjpUZXh0Q2hlY2tpbmdSZXF1ZXN0RGF0
YSYpOworICAgIHN0YXRpYyBib29sIGRlY29kZShBcmd1bWVudERlY29kZXImLCBXZWJDb3JlOjpU
ZXh0Q2hlY2tpbmdSZXF1ZXN0RGF0YSYpOworfTsKKwogdGVtcGxhdGU8PiBzdHJ1Y3QgQXJndW1l
bnRDb2RlcjxXZWJDb3JlOjpUZXh0Q2hlY2tpbmdSZXN1bHQ+IHsKICAgICBzdGF0aWMgdm9pZCBl
bmNvZGUoQXJndW1lbnRFbmNvZGVyJiwgY29uc3QgV2ViQ29yZTo6VGV4dENoZWNraW5nUmVzdWx0
Jik7CiAgICAgc3RhdGljIGJvb2wgZGVjb2RlKEFyZ3VtZW50RGVjb2RlciYsIFdlYkNvcmU6OlRl
eHRDaGVja2luZ1Jlc3VsdCYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVGFyZ2V0LnBy
aSBiL1NvdXJjZS9XZWJLaXQyL1RhcmdldC5wcmkKaW5kZXggY2U2YzA4MS4uYTI1MTQ3OCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVGFyZ2V0LnByaQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9U
YXJnZXQucHJpCkBAIC0yMzMsNiArMjMzLDcgQEAgSEVBREVSUyArPSBcCiAgICAgVUlQcm9jZXNz
L1N0YXRpc3RpY3NSZXF1ZXN0LmggXAogICAgIFVJUHJvY2Vzcy9TdG9yYWdlL1N0b3JhZ2VNYW5h
Z2VyLmggXAogICAgIFVJUHJvY2Vzcy9UZXh0Q2hlY2tlci5oIFwKKyAgICBVSVByb2Nlc3MvVGV4
dENoZWNrZXJDb21wbGV0aW9uLmggXAogICAgIFVJUHJvY2Vzcy9WaXNpdGVkTGlua1Byb3ZpZGVy
LmggXAogICAgIFVJUHJvY2Vzcy9XZWJBcHBsaWNhdGlvbkNhY2hlTWFuYWdlclByb3h5LmggXAog
ICAgIFVJUHJvY2Vzcy9XZWJCYWNrRm9yd2FyZExpc3QuaCBcCkBAIC01NjQsNiArNTY1LDcgQEAg
U09VUkNFUyArPSBcCiAgICAgVUlQcm9jZXNzL0ZpbmRJbmRpY2F0b3IuY3BwIFwKICAgICBVSVBy
b2Nlc3MvR2VvbG9jYXRpb25QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eS5jcHAgXAogICAg
IFVJUHJvY2Vzcy9HZW9sb2NhdGlvblBlcm1pc3Npb25SZXF1ZXN0UHJveHkuY3BwIFwKKyAgICBV
SVByb2Nlc3MvVGV4dENoZWNrZXJDb21wbGV0aW9uLmNwcCBcCiAgICAgVUlQcm9jZXNzL0xhdW5j
aGVyL1Byb2Nlc3NMYXVuY2hlci5jcHAgXAogICAgIFVJUHJvY2Vzcy9MYXVuY2hlci9xdC9Qcm9j
ZXNzTGF1bmNoZXJRdC5jcHAgXAogICAgIFVJUHJvY2Vzcy9Ob3RpZmljYXRpb25zL05vdGlmaWNh
dGlvblBlcm1pc3Npb25SZXF1ZXN0LmNwcCBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvVGV4dENoZWNrZXIuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9UZXh0Q2hl
Y2tlci5oCmluZGV4IDQ5YjVhNDguLmExNmNiMTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9UZXh0Q2hlY2tlci5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9U
ZXh0Q2hlY2tlci5oCkBAIC0yNiw2ICsyNiw3IEBACiAjaWZuZGVmIFRleHRDaGVja2VyX2gKICNk
ZWZpbmUgVGV4dENoZWNrZXJfaAogCisjaW5jbHVkZSAiVGV4dENoZWNrZXJDb21wbGV0aW9uLmgi
CiAjaW5jbHVkZSA8V2ViQ29yZS9FZGl0b3JDbGllbnQuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1Rl
eHRDaGVja2VyQ2xpZW50Lmg+CiAKQEAgLTcyLDYgKzczLDcgQEAgcHVibGljOgogICAgIHN0YXRp
YyB2b2lkIGdldEd1ZXNzZXNGb3JXb3JkKGludDY0X3Qgc3BlbGxEb2N1bWVudFRhZywgY29uc3Qg
U3RyaW5nJiB3b3JkLCBjb25zdCBTdHJpbmcmIGNvbnRleHQsIFZlY3RvcjxTdHJpbmc+JiBndWVz
c2VzKTsKICAgICBzdGF0aWMgdm9pZCBsZWFybldvcmQoaW50NjRfdCBzcGVsbERvY3VtZW50VGFn
LCBjb25zdCBTdHJpbmcmIHdvcmQpOwogICAgIHN0YXRpYyB2b2lkIGlnbm9yZVdvcmQoaW50NjRf
dCBzcGVsbERvY3VtZW50VGFnLCBjb25zdCBTdHJpbmcmIHdvcmQpOworICAgIHN0YXRpYyB2b2lk
IHJlcXVlc3RDaGVja2luZ09mU3RyaW5nKFBhc3NSZWZQdHI8VGV4dENoZWNrZXJDb21wbGV0aW9u
Pik7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9UZXh0Q2hlY2tlckNvbXBsZXRpb24uY3BwIGIvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL1RleHRDaGVja2VyQ29tcGxldGlvbi5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMC4uMTFlMDA4MAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9UZXh0Q2hlY2tlckNvbXBsZXRpb24uY3BwCkBAIC0wLDAgKzEsNjEgQEAKKy8q
CisgKiBDb3B5cmlnaHQgKEMpIDIwMTMgU2Ftc3VuZyBFbGVjdHJvbmljcworICoKKyAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9m
IHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAq
IDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhl
ciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMg
U09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklC
VVRPUlMKKyAqICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywg
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVT
IE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQ
T1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUIEhPTERF
UiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1Qs
IElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFN
QUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBT
VUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBS
T0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFO
WSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJ
QUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HCisgKiBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkg
QVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMKKyAqIFNPRlRXQVJFLCBF
VkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisK
KyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJUZXh0Q2hlY2tlckNvbXBsZXRpb24uaCIK
KworbmFtZXNwYWNlIFdlYktpdCB7CisKK1Bhc3NSZWZQdHI8VGV4dENoZWNrZXJDb21wbGV0aW9u
SW1wbD4gVGV4dENoZWNrZXJDb21wbGV0aW9uSW1wbDo6Y3JlYXRlKHVpbnQ2NF90IHJlcXVlc3RJ
RCwgY29uc3QgV2ViQ29yZTo6VGV4dENoZWNraW5nUmVxdWVzdERhdGEmIHJlcXVlc3REYXRhLCBj
b25zdCBXZWJQYWdlUHJveHkqIHBhZ2UpCit7CisgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBUZXh0
Q2hlY2tlckNvbXBsZXRpb25JbXBsKHJlcXVlc3RJRCwgcmVxdWVzdERhdGEsIHBhZ2UpKTsKK30K
KworVGV4dENoZWNrZXJDb21wbGV0aW9uSW1wbDo6VGV4dENoZWNrZXJDb21wbGV0aW9uSW1wbCh1
aW50NjRfdCByZXF1ZXN0SUQsIGNvbnN0IFdlYkNvcmU6OlRleHRDaGVja2luZ1JlcXVlc3REYXRh
JiByZXF1ZXN0RGF0YSwgY29uc3QgV2ViUGFnZVByb3h5KiBwYWdlKQorICAgIDogbV9yZXF1ZXN0
SUQocmVxdWVzdElEKQorICAgICwgbV9yZXF1ZXN0RGF0YShyZXF1ZXN0RGF0YSkKKyAgICAsIG1f
cGFnZShwYWdlKQoreworfQorCitjb25zdCBXZWJDb3JlOjpUZXh0Q2hlY2tpbmdSZXF1ZXN0RGF0
YSYgVGV4dENoZWNrZXJDb21wbGV0aW9uSW1wbDo6dGV4dENoZWNraW5nUmVxdWVzdERhdGEoKSBj
b25zdAoreworICAgIHJldHVybiBtX3JlcXVlc3REYXRhOworfQorCit2b2lkIFRleHRDaGVja2Vy
Q29tcGxldGlvbkltcGw6OmRpZEZpbmlzaENoZWNraW5nVGV4dChjb25zdCBWZWN0b3I8V2ViQ29y
ZTo6VGV4dENoZWNraW5nUmVzdWx0PiYgcmVzdWx0KSBjb25zdAoreworICAgIGlmIChyZXN1bHQu
aXNFbXB0eSgpKQorICAgICAgICBkaWRDYW5jZWxDaGVja2luZ1RleHQoKTsKKworICAgIG1fcGFn
ZS0+ZGlkRmluaXNoQ2hlY2tpbmdUZXh0KG1fcmVxdWVzdElELCByZXN1bHQpOworfQorCit2b2lk
IFRleHRDaGVja2VyQ29tcGxldGlvbkltcGw6OmRpZENhbmNlbENoZWNraW5nVGV4dCgpIGNvbnN0
Cit7CisgICAgbV9wYWdlLT5kaWRDYW5jZWxDaGVja2luZ1RleHQobV9yZXF1ZXN0SUQpOworfQor
Cit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9UZXh0Q2hlY2tlckNvbXBsZXRpb24uaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9U
ZXh0Q2hlY2tlckNvbXBsZXRpb24uaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
Li4yNDEwMDA1Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1Rl
eHRDaGVja2VyQ29tcGxldGlvbi5oCkBAIC0wLDAgKzEsNjQgQEAKKy8qCisgKiBDb3B5cmlnaHQg
KEMpIDIwMTMgU2Ftc3VuZyBFbGVjdHJvbmljcworICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11
c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0
aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIgaW4gdGhlCisgKiBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJv
dmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJP
VklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTCSBBTkQgQ09OVFJJQlVUT1JTCisgKiAiQVMg
SVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFC
SUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xB
SU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVCBIT0xERVIgT1IKKyAqIENPTlRS
SUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBT
UEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09E
UyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJ
TkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBP
RiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRP
UlQgKElOQ0xVRElORworICogTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5Z
IFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTCisgKiBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVmIFRleHRD
aGVja2VyQ29tcGxldGlvbl9oCisjZGVmaW5lIFRleHRDaGVja2VyQ29tcGxldGlvbl9oCisKKyNp
bmNsdWRlICJXZWJQYWdlUHJveHkuaCIKKyNpbmNsdWRlIDxXZWJDb3JlL1RleHRDaGVja2luZy5o
PgorI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KKworbmFtZXNwYWNlIFdlYktpdCB7CisKK2NsYXNz
IFRleHRDaGVja2VyQ29tcGxldGlvbiA6ICBwdWJsaWMgUmVmQ291bnRlZDxUZXh0Q2hlY2tlckNv
bXBsZXRpb24+IHsKK3B1YmxpYzoKKyAgICB2aXJ0dWFsIH5UZXh0Q2hlY2tlckNvbXBsZXRpb24o
KSB7IH0KKworICAgIHZpcnR1YWwgY29uc3QgV2ViQ29yZTo6VGV4dENoZWNraW5nUmVxdWVzdERh
dGEmIHRleHRDaGVja2luZ1JlcXVlc3REYXRhKCkgY29uc3QgPSAwOworICAgIHZpcnR1YWwgdm9p
ZCBkaWRGaW5pc2hDaGVja2luZ1RleHQoY29uc3QgVmVjdG9yPFdlYkNvcmU6OlRleHRDaGVja2lu
Z1Jlc3VsdD4mKSBjb25zdCA9IDA7CisgICAgdmlydHVhbCB2b2lkIGRpZENhbmNlbENoZWNraW5n
VGV4dCgpIGNvbnN0ID0gMDsKK307CisKKworY2xhc3MgVGV4dENoZWNrZXJDb21wbGV0aW9uSW1w
bCA6IHB1YmxpYyBUZXh0Q2hlY2tlckNvbXBsZXRpb24geworcHVibGljOgorICAgIHN0YXRpYyBQ
YXNzUmVmUHRyPFRleHRDaGVja2VyQ29tcGxldGlvbkltcGw+IGNyZWF0ZSh1aW50NjRfdCByZXF1
ZXN0SUQsIGNvbnN0IFdlYkNvcmU6OlRleHRDaGVja2luZ1JlcXVlc3REYXRhJiwgY29uc3QgV2Vi
UGFnZVByb3h5Kik7CisgICAgdmlydHVhbCB+VGV4dENoZWNrZXJDb21wbGV0aW9uSW1wbCgpIHsg
fQorCisgICAgdmlydHVhbCBjb25zdCBXZWJDb3JlOjpUZXh0Q2hlY2tpbmdSZXF1ZXN0RGF0YSYg
dGV4dENoZWNraW5nUmVxdWVzdERhdGEoKSBjb25zdCBPVkVSUklERTsKKyAgICB2aXJ0dWFsIHZv
aWQgZGlkRmluaXNoQ2hlY2tpbmdUZXh0KGNvbnN0IFZlY3RvcjxXZWJDb3JlOjpUZXh0Q2hlY2tp
bmdSZXN1bHQ+JikgY29uc3QgT1ZFUlJJREU7CisgICAgdmlydHVhbCB2b2lkIGRpZENhbmNlbENo
ZWNraW5nVGV4dCgpIGNvbnN0IE9WRVJSSURFOworCitwcml2YXRlOgorICAgIFRleHRDaGVja2Vy
Q29tcGxldGlvbkltcGwodWludDY0X3QgcmVxdWVzdElELCBjb25zdCBXZWJDb3JlOjpUZXh0Q2hl
Y2tpbmdSZXF1ZXN0RGF0YSYsIGNvbnN0IFdlYlBhZ2VQcm94eSopOworCisgICAgY29uc3QgdWlu
dDY0X3QgbV9yZXF1ZXN0SUQ7CisgICAgY29uc3QgV2ViQ29yZTo6VGV4dENoZWNraW5nUmVxdWVz
dERhdGEgbV9yZXF1ZXN0RGF0YTsKKyAgICBjb25zdCBXZWJQYWdlUHJveHkqIG1fcGFnZTsKK307
CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdAorCisjZW5kaWYgLy8gVGV4dENoZWNrZXJDb21wbGV0
aW9uX2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHku
Y3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKaW5kZXggNmY4
YTkyZC4uZTk0MWEzNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBh
Z2VQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5j
cHAKQEAgLTMyNTEsNiArMzI1MSwyMCBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6aWdub3JlV29yZChj
b25zdCBTdHJpbmcmIHdvcmQpCiAgICAgVGV4dENoZWNrZXI6Omlnbm9yZVdvcmQoc3BlbGxEb2N1
bWVudFRhZygpLCB3b3JkKTsKIH0KIAordm9pZCBXZWJQYWdlUHJveHk6OnJlcXVlc3RDaGVja2lu
Z09mU3RyaW5nKHVpbnQ2NF90IHJlcXVlc3RJRCwgVGV4dENoZWNraW5nUmVxdWVzdERhdGEgcmVx
dWVzdCkgY29uc3QKK3sKKyAgICBUZXh0Q2hlY2tlcjo6cmVxdWVzdENoZWNraW5nT2ZTdHJpbmco
VGV4dENoZWNrZXJDb21wbGV0aW9uSW1wbDo6Y3JlYXRlKHJlcXVlc3RJRCwgcmVxdWVzdCwgdGhp
cykpOworfQorCit2b2lkIFdlYlBhZ2VQcm94eTo6ZGlkRmluaXNoQ2hlY2tpbmdUZXh0KHVpbnQ2
NF90IHJlcXVlc3RJRCwgY29uc3QgVmVjdG9yPFdlYkNvcmU6OlRleHRDaGVja2luZ1Jlc3VsdD4m
IHJlc3VsdCkgY29uc3QKK3sKKyAgICBtX3Byb2Nlc3MtPnNlbmQoTWVzc2FnZXM6OldlYlBhZ2U6
OkRpZEZpbmlzaENoZWNraW5nVGV4dChyZXF1ZXN0SUQsIHJlc3VsdCksIG1fcGFnZUlEKTsKK30K
Kwordm9pZCBXZWJQYWdlUHJveHk6OmRpZENhbmNlbENoZWNraW5nVGV4dCh1aW50NjRfdCByZXF1
ZXN0SUQpIGNvbnN0Cit7CisgICAgbV9wcm9jZXNzLT5zZW5kKE1lc3NhZ2VzOjpXZWJQYWdlOjpE
aWRDYW5jZWxDaGVja2luZ1RleHQocmVxdWVzdElEKSwgbV9wYWdlSUQpOworfQogLy8gT3RoZXIK
IAogdm9pZCBXZWJQYWdlUHJveHk6OnNldEZvY3VzKGJvb2wgZm9jdXNlZCkKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaAppbmRleCA5NWMxM2Y2Li5kMjYyYjczIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKKysrIGIvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCkBAIC03NDQsNiArNzQ0LDkgQEAgcHVi
bGljOgogCiAgICAgdm9pZCBkaWRSZWNlaXZlQXV0aGVudGljYXRpb25DaGFsbGVuZ2VQcm94eSh1
aW50NjRfdCBmcmFtZUlELCBQYXNzUmVmUHRyPEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlUHJveHk+
KTsKIAorICAgIHZvaWQgZGlkRmluaXNoQ2hlY2tpbmdUZXh0KHVpbnQ2NF90IHJlcXVlc3RJRCwg
Y29uc3QgVmVjdG9yPFdlYkNvcmU6OlRleHRDaGVja2luZ1Jlc3VsdD4mKSBjb25zdDsKKyAgICB2
b2lkIGRpZENhbmNlbENoZWNraW5nVGV4dCh1aW50NjRfdCByZXF1ZXN0SUQpIGNvbnN0OworCiBw
cml2YXRlOgogICAgIFdlYlBhZ2VQcm94eShQYWdlQ2xpZW50KiwgUGFzc1JlZlB0cjxXZWJQcm9j
ZXNzUHJveHk+LCBXZWJQYWdlR3JvdXAqLCB1aW50NjRfdCBwYWdlSUQpOwogCkBAIC05NDEsNiAr
OTQ0LDcgQEAgcHJpdmF0ZToKICAgICB2b2lkIGdldEd1ZXNzZXNGb3JXb3JkKGNvbnN0IFN0cmlu
ZyYgd29yZCwgY29uc3QgU3RyaW5nJiBjb250ZXh0LCBWZWN0b3I8U3RyaW5nPiYgZ3Vlc3Nlcyk7
CiAgICAgdm9pZCBsZWFybldvcmQoY29uc3QgU3RyaW5nJiB3b3JkKTsKICAgICB2b2lkIGlnbm9y
ZVdvcmQoY29uc3QgU3RyaW5nJiB3b3JkKTsKKyAgICB2b2lkIHJlcXVlc3RDaGVja2luZ09mU3Ry
aW5nKHVpbnQ2NF90IHJlcXVlc3RJRCwgV2ViQ29yZTo6VGV4dENoZWNraW5nUmVxdWVzdERhdGEp
IGNvbnN0OwogCiAgICAgdm9pZCBzZXRGb2N1cyhib29sIGZvY3VzZWQpOwogICAgIHZvaWQgdGFr
ZUZvY3VzKHVpbnQzMl90IGRpcmVjdGlvbik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvV2ViUGFnZVByb3h5Lm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL1dlYlBhZ2VQcm94eS5tZXNzYWdlcy5pbgppbmRleCBkZjYxZTVkLi4wZjMxYzkwIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5Lm1lc3NhZ2VzLmlu
CisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkubWVzc2FnZXMuaW4K
QEAgLTIzMyw2ICsyMzMsNyBAQCBtZXNzYWdlcyAtPiBXZWJQYWdlUHJveHkgewogICAgIEdldEd1
ZXNzZXNGb3JXb3JkKFdURjo6U3RyaW5nIHdvcmQsIFdURjo6U3RyaW5nIGNvbnRleHQpIC0+IChW
ZWN0b3I8V1RGOjpTdHJpbmc+IGd1ZXNzZXMpCiAgICAgTGVhcm5Xb3JkKFdURjo6U3RyaW5nIHdv
cmQpOwogICAgIElnbm9yZVdvcmQoV1RGOjpTdHJpbmcgd29yZCk7CisgICAgUmVxdWVzdENoZWNr
aW5nT2ZTdHJpbmcodWludDY0X3QgcmVxdWVzdElELCBXZWJDb3JlOjpUZXh0Q2hlY2tpbmdSZXF1
ZXN0RGF0YSByZXF1ZXN0KQogCiAgICAgIyBEcmFnIGFuZCBkcm9wIG1lc3NhZ2VzCiAjaWYgRU5B
QkxFKERSQUdfU1VQUE9SVCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9l
ZmwvVGV4dENoZWNrZXJFZmwuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2VmbC9UZXh0
Q2hlY2tlckVmbC5jcHAKaW5kZXggMjJmZDQ3MS4uZjhkODMzNSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL2VmbC9UZXh0Q2hlY2tlckVmbC5jcHAKKysrIGIvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL2VmbC9UZXh0Q2hlY2tlckVmbC5jcHAKQEAgLTI5LDYgKzI5LDcgQEAK
ICNpbmNsdWRlICJUZXh0Q2hlY2tlci5oIgogCiAjaW5jbHVkZSAiVGV4dENoZWNrZXJTdGF0ZS5o
IgorI2luY2x1ZGUgPFdlYkNvcmUvTm90SW1wbGVtZW50ZWQuaD4KIAogI2lmIEVOQUJMRShTUEVM
TENIRUNLKQogI2luY2x1ZGUgIlRleHRCcmVha0l0ZXJhdG9yLmgiCkBAIC0yOTAsNCArMjkxLDkg
QEAgdm9pZCBUZXh0Q2hlY2tlcjo6aWdub3JlV29yZChpbnQ2NF90IHNwZWxsRG9jdW1lbnRUYWcs
IGNvbnN0IFN0cmluZyYgd29yZCkKICNlbmRpZgogfQogCit2b2lkIFRleHRDaGVja2VyOjpyZXF1
ZXN0Q2hlY2tpbmdPZlN0cmluZyhQYXNzUmVmUHRyPFRleHRDaGVja2VyQ29tcGxldGlvbj4pCit7
CisgICAgbm90SW1wbGVtZW50ZWQoKTsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvZ3RrL1RleHRDaGVja2VyR3RrLmNwcCBi
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9ndGsvVGV4dENoZWNrZXJHdGsuY3BwCmluZGV4IDQw
NWMwZTEuLjZiYzQxOTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9ndGsv
VGV4dENoZWNrZXJHdGsuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9ndGsvVGV4
dENoZWNrZXJHdGsuY3BwCkBAIC0yOSw2ICsyOSw3IEBACiAKICNpbmNsdWRlICJUZXh0Q2hlY2tl
clN0YXRlLmgiCiAjaW5jbHVkZSAiV2ViVGV4dENoZWNrZXIuaCIKKyNpbmNsdWRlIDxXZWJDb3Jl
L05vdEltcGxlbWVudGVkLmg+CiAKIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogIApAQCAtMTM3
LDQgKzEzOCw5IEBAIHZvaWQgVGV4dENoZWNrZXI6Omlnbm9yZVdvcmQoaW50NjRfdCBzcGVsbERv
Y3VtZW50VGFnLCBjb25zdCBTdHJpbmcmIHdvcmQpCiAgICAgV2ViVGV4dENoZWNrZXI6OnNoYXJl
ZCgpLT5jbGllbnQoKS5pZ25vcmVXb3JkKHNwZWxsRG9jdW1lbnRUYWcsIHdvcmQpOwogfQogCit2
b2lkIFRleHRDaGVja2VyOjpyZXF1ZXN0Q2hlY2tpbmdPZlN0cmluZyhQYXNzUmVmUHRyPFRleHRD
aGVja2VyQ29tcGxldGlvbj4pCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKK30KKwogfSAvLyBu
YW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvbWFj
L1RleHRDaGVja2VyTWFjLm1tIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL21hYy9UZXh0Q2hl
Y2tlck1hYy5tbQppbmRleCBmNWM4Y2UyLi40NjE0YWRkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvbWFjL1RleHRDaGVja2VyTWFjLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9tYWMvVGV4dENoZWNrZXJNYWMubW0KQEAgLTM5MSw0ICszOTEsOSBAQCB2b2lk
IFRleHRDaGVja2VyOjppZ25vcmVXb3JkKGludDY0X3Qgc3BlbGxEb2N1bWVudFRhZywgY29uc3Qg
U3RyaW5nJiB3b3JkKQogICAgIFtbTlNTcGVsbENoZWNrZXIgc2hhcmVkU3BlbGxDaGVja2VyXSBp
Z25vcmVXb3JkOndvcmQgaW5TcGVsbERvY3VtZW50V2l0aFRhZzpzcGVsbERvY3VtZW50VGFnXTsK
IH0KIAordm9pZCBUZXh0Q2hlY2tlcjo6cmVxdWVzdENoZWNraW5nT2ZTdHJpbmcoUGFzc1JlZlB0
cjxUZXh0Q2hlY2tlckNvbXBsZXRpb24+KQoreworICAgIG5vdEltcGxlbWVudGVkKCk7Cit9CisK
IH0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL3F0L1RleHRDaGVja2VyUXQuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL3F0L1Rl
eHRDaGVja2VyUXQuY3BwCmluZGV4IDRhMzMxODQuLjdlMzQzZTEgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9xdC9UZXh0Q2hlY2tlclF0LmNwcAorKysgYi9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvcXQvVGV4dENoZWNrZXJRdC5jcHAKQEAgLTEyNiw0ICsxMjYsOSBAQCB2
b2lkIFRleHRDaGVja2VyOjppZ25vcmVXb3JkKGludDY0X3Qgc3BlbGxEb2N1bWVudFRhZywgY29u
c3QgU3RyaW5nJiB3b3JkKQogICAgIG5vdEltcGxlbWVudGVkKCk7CiB9CiAKK3ZvaWQgVGV4dENo
ZWNrZXI6OnJlcXVlc3RDaGVja2luZ09mU3RyaW5nKFBhc3NSZWZQdHI8VGV4dENoZWNrZXJDb21w
bGV0aW9uPikKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworfQorCiB9IC8vIG5hbWVzcGFjZSBX
ZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYktpdDIueGNvZGVwcm9qL3Byb2pl
Y3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJLaXQyL1dlYktpdDIueGNvZGVwcm9qL3Byb2plY3QucGJ4
cHJvagppbmRleCBhMDljNzgwLi5hMThhNDIyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9X
ZWJLaXQyLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYktpdDIvV2Vi
S2l0Mi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0yMDcsNiArMjA3LDggQEAKIAkJMUFB
M0Q3NjIxNjUxQjdEMzAwODcxM0QwIC8qIFJlbW90ZUxheWVyVHJlZUhvc3RNZXNzYWdlcy5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMUFBM0Q3NjAxNjUx
QjdEMzAwODcxM0QwIC8qIFJlbW90ZUxheWVyVHJlZUhvc3RNZXNzYWdlcy5oICovOyB9OwogCQkx
QUE0MTdDQjEyQzAwQ0NBMDAyQkU2N0IgLyogVGV4dENoZWNrZXIuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFBQTQxN0M5MTJDMDBDQ0EwMDJCRTY3QiAv
KiBUZXh0Q2hlY2tlci5oICovOyB9OwogCQkxQUE0MTdFRjEyQzAwRDg3MDAyQkU2N0IgLyogVGV4
dENoZWNrZXJNYWMubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSAxQUE0MTdFRDEyQzAwRDg3MDAyQkU2N0IgLyogVGV4dENoZWNrZXJNYWMubW0gKi87IH07
CisJCTFaWjQxN0VGMTJDMDBEODcwMDJCRTY3QiAvKiBUZXh0Q2hlY2tlckNvbXBsZXRpb24uY3Bw
IGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMUJCNDE3Qzkx
MkMwMENDQTAwMkJFNjdCIC8qIFRleHRDaGVja2VyQ29tcGxldGlvbi5jcHAgKi87IH07CisJCTFR
UTQxN0NCMTJDMDBDQ0EwMDJCRTY3QiAvKiBUZXh0Q2hlY2tlckNvbXBsZXRpb24uaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFDQzQxN0M5MTJDMDBDQ0Ew
MDJCRTY3QiAvKiBUZXh0Q2hlY2tlckNvbXBsZXRpb24uaCAqLzsgfTsKIAkJMUFBNDFBQjUxMkMw
MkVDNDAwMkJFNjdCIC8qIEVkaXRvclN0YXRlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSAxQUE0MUFCNDEyQzAyRUM0MDAyQkU2N0IgLyogRWRpdG9yU3Rh
dGUuaCAqLzsgfTsKIAkJMUFBNDc5MjMxMkE1OUZEOTAwODIzNkMzIC8qIFBsdWdpblByb2Nlc3NN
YWMubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxQUE0
NzkyMjEyQTU5RkQ5MDA4MjM2QzMgLyogUGx1Z2luUHJvY2Vzc01hYy5tbSAqLzsgfTsKIAkJMUFB
NDc5QjAxMkE1QTQzNjAwODIzNkMzIC8qIENhcmJvbi5mcmFtZXdvcmsgaW4gRnJhbWV3b3JrcyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxQUExQ0QwNjEwMEZBMUJBMDA3OERF
QkMgLyogQ2FyYm9uLmZyYW1ld29yayAqLzsgfTsKQEAgLTE0OTAsNiArMTQ5Miw4IEBACiAJCTFB
NTBEQjFFMTEwQTNCREMwMDBEM0ZFNSAvKiBXZWJQcm9jZXNzLmFwcCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBleHBsaWNpdEZpbGVUeXBlID0gd3JhcHBlci5hcHBsaWNhdGlvbjsgaW5j
bHVkZUluSW5kZXggPSAwOyBwYXRoID0gV2ViUHJvY2Vzcy5hcHA7IHNvdXJjZVRyZWUgPSBCVUlM
VF9QUk9EVUNUU19ESVI7IH07CiAJCTFBNTk0QUI4MTEyQTFGQjYwMDlERTdDNyAvKiBXZWJVSUNs
aWVudC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXZWJVSUNsaWVu
dC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTFBNTk0QUI5MTEyQTFGQjYwMDlE
RTdDNyAvKiBXZWJVSUNsaWVudC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBX
ZWJVSUNsaWVudC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkxQkI0MTdDOTEyQzAw
Q0NBMDAyQkU2N0IgLyogVGV4dENoZWNrZXJDb21wbGV0aW9uLmNwcCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFRleHRDaGVja2VyQ29tcGxldGlvbi5jcHA7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CisJCTFDQzQxN0M5MTJDMDBDQ0EwMDJCRTY3QiAvKiBUZXh0Q2hl
Y2tlckNvbXBsZXRpb24uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gVGV4dENo
ZWNrZXJDb21wbGV0aW9uLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTFBNUU0REEz
MTJEM0JEM0QwMDk5QTJCQiAvKiBUZXh0Q2hlY2tlclN0YXRlLmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IFRleHRDaGVja2VyU3RhdGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJMUE2NDIwRTIxMkRDRTJGRjAwQ0FBRTJDIC8qIFNoYXJlYWJsZUJpdG1hcC5jcHAg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBTaGFyZWFibGVCaXRtYXAuY3Bw
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkxQTY0MjBFMzEyRENFMkZGMDBDQUFFMkMg
LyogU2hhcmVhYmxlQml0bWFwLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNo
YXJlYWJsZUJpdG1hcC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMzgyNSw2ICsz
ODI5LDggQEAKIAkJCQk1MUE0RDVBODE2Q0FDNEZGMDAwRTYxNUUgLyogU3RhdGlzdGljc1JlcXVl
c3QuY3BwICovLAogCQkJCTUxNEJERUQyMTZDOThFREQwMEU0RTI1RSAvKiBTdGF0aXN0aWNzUmVx
dWVzdC5oICovLAogCQkJCTFBQTQxN0M5MTJDMDBDQ0EwMDJCRTY3QiAvKiBUZXh0Q2hlY2tlci5o
ICovLAorCQkJCTFCQjQxN0M5MTJDMDBDQ0EwMDJCRTY3QiAvKiBUZXh0Q2hlY2tlckNvbXBsZXRp
b24uY3BwICovLAorCQkJCTFDQzQxN0M5MTJDMDBDQ0EwMDJCRTY3QiAvKiBUZXh0Q2hlY2tlckNv
bXBsZXRpb24uaCAqLywKIAkJCQkxQTBGMjlFMTEyMEI0NDQyMDA1M0QxQjkgLyogVmlzaXRlZExp
bmtQcm92aWRlci5jcHAgKi8sCiAJCQkJMUEwRjI5RTIxMjBCNDQ0MjAwNTNEMUI5IC8qIFZpc2l0
ZWRMaW5rUHJvdmlkZXIuaCAqLywKIAkJCQk1MTJFMzUyMDEzMEI1NTAxMDBBQkQxOUEgLyogV2Vi
QXBwbGljYXRpb25DYWNoZU1hbmFnZXJQcm94eS5jcHAgKi8sCkBAIC01MjQ5LDYgKzUyNTUsNyBA
QAogCQkJCTI5NkJEODVEMTUwMTlCQzMwMDcxRjQyNCAvKiBTdHJpbmdVdGlsaXRpZXMuaCBpbiBI
ZWFkZXJzICovLAogCQkJCTUxODE1QkEwMTZBNjIyMjEwMDU0NTAxRiAvKiBTeW5jTmV0d29ya1Jl
c291cmNlTG9hZGVyLmggaW4gSGVhZGVycyAqLywKIAkJCQkxQUE0MTdDQjEyQzAwQ0NBMDAyQkU2
N0IgLyogVGV4dENoZWNrZXIuaCBpbiBIZWFkZXJzICovLAorCQkJCTFRUTQxN0NCMTJDMDBDQ0Ew
MDJCRTY3QiAvKiBUZXh0Q2hlY2tlckNvbXBsZXRpb24uaCBpbiBIZWFkZXJzICovLAogCQkJCTFB
NUU0REE0MTJEM0JEM0QwMDk5QTJCQiAvKiBUZXh0Q2hlY2tlclN0YXRlLmggaW4gSGVhZGVycyAq
LywKIAkJCQkxQUFGMjYzOTE0Njg3QzM5MDA0QTFFOEEgLyogVGlsZWRDb3JlQW5pbWF0aW9uRHJh
d2luZ0FyZWEuaCBpbiBIZWFkZXJzICovLAogCQkJCTFBRjA1RDg3MTQ2ODgzNDgwMDhCMUU4MSAv
KiBUaWxlZENvcmVBbmltYXRpb25EcmF3aW5nQXJlYVByb3h5LmggaW4gSGVhZGVycyAqLywKQEAg
LTY0NzgsNiArNjQ4NSw3IEBACiAJCQkJMUExM0JFQjMxNjM1QTlDODAwRjE5QzAzIC8qIFN0cmlu
Z1JlZmVyZW5jZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkyOTZCRDg1RTE1MDE5QkMzMDA3MUY0
MjQgLyogU3RyaW5nVXRpbGl0aWVzLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJNTE4MTVCOUYxNkE2
MjIyMTAwNTQ1MDFGIC8qIFN5bmNOZXR3b3JrUmVzb3VyY2VMb2FkZXIuY3BwIGluIFNvdXJjZXMg
Ki8sCisJCQkJMVpaNDE3RUYxMkMwMEQ4NzAwMkJFNjdCIC8qIFRleHRDaGVja2VyQ29tcGxldGlv
bi5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkxQUE0MTdFRjEyQzAwRDg3MDAyQkU2N0IgLyogVGV4
dENoZWNrZXJNYWMubW0gaW4gU291cmNlcyAqLywKIAkJCQkxQUFGMjYzODE0Njg3QzM5MDA0QTFF
OEEgLyogVGlsZWRDb3JlQW5pbWF0aW9uRHJhd2luZ0FyZWEubW0gaW4gU291cmNlcyAqLywKIAkJ
CQkxQUYwNUQ4NjE0Njg4MzQ4MDA4QjFFODEgLyogVGlsZWRDb3JlQW5pbWF0aW9uRHJhd2luZ0Fy
ZWFQcm94eS5tbSBpbiBTb3VyY2VzICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2Vi
UHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJFZGl0b3JDbGllbnQuY3BwIGIvU291cmNlL1dlYktp
dDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJFZGl0b3JDbGllbnQuY3BwCmluZGV4IDkz
ZGZhYjMuLjY3MTk2NmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2Vi
Q29yZVN1cHBvcnQvV2ViRWRpdG9yQ2xpZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQ
cm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkVkaXRvckNsaWVudC5jcHAKQEAgLTQ0LDYgKzQ0LDcg
QEAKICNpbmNsdWRlIDxXZWJDb3JlL0tleWJvYXJkRXZlbnQuaD4KICNpbmNsdWRlIDxXZWJDb3Jl
L05vdEltcGxlbWVudGVkLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9QYWdlLmg+CisjaW5jbHVkZSA8
V2ViQ29yZS9TcGVsbENoZWNrZXIuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1RleHRJdGVyYXRvci5o
PgogI2luY2x1ZGUgPFdlYkNvcmUvVW5kb1N0ZXAuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1VzZXJU
eXBpbmdHZXN0dXJlSW5kaWNhdG9yLmg+CkBAIC01OSw2ICs2MCwxMiBAQCB1c2luZyBuYW1lc3Bh
Y2UgSFRNTE5hbWVzOwogCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAorc3RhdGljIHVpbnQ2NF90IGdl
bmVyYXRlVGV4dENoZWNraW5nUmVxdWVzdElEKCkKK3sKKyAgICBzdGF0aWMgdWludDY0X3QgdW5p
cXVlVGV4dENoZWNraW5nUmVxdWVzdElEID0gMTsKKyAgICByZXR1cm4gdW5pcXVlVGV4dENoZWNr
aW5nUmVxdWVzdElEKys7Cit9CisKIHZvaWQgV2ViRWRpdG9yQ2xpZW50OjpwYWdlRGVzdHJveWVk
KCkKIHsKICAgICBkZWxldGUgdGhpczsKQEAgLTQ3MSw2ICs0NzgsMTYgQEAgdm9pZCBXZWJFZGl0
b3JDbGllbnQ6OmdldEd1ZXNzZXNGb3JXb3JkKGNvbnN0IFN0cmluZyYgd29yZCwgY29uc3QgU3Ry
aW5nJiBjb250ZXgKICAgICBtX3BhZ2UtPnNlbmRTeW5jKE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6
OkdldEd1ZXNzZXNGb3JXb3JkKHdvcmQsIGNvbnRleHQpLCBNZXNzYWdlczo6V2ViUGFnZVByb3h5
OjpHZXRHdWVzc2VzRm9yV29yZDo6UmVwbHkoZ3Vlc3NlcykpOwogfQogCit2b2lkIFdlYkVkaXRv
ckNsaWVudDo6cmVxdWVzdENoZWNraW5nT2ZTdHJpbmcoV1RGOjpQYXNzUmVmUHRyPFRleHRDaGVj
a2luZ1JlcXVlc3Q+IHBycFJlcXVlc3QpCit7CisgICAgUmVmUHRyPFRleHRDaGVja2luZ1JlcXVl
c3Q+IHJlcXVlc3QgPSBwcnBSZXF1ZXN0OworCisgICAgdWludDY0X3QgcmVxdWVzdElEID0gZ2Vu
ZXJhdGVUZXh0Q2hlY2tpbmdSZXF1ZXN0SUQoKTsKKyAgICBtX3BhZ2UtPmFkZFRleHRDaGVja2lu
Z1JlcXVlc3QocmVxdWVzdElELCByZXF1ZXN0KTsKKworICAgIG1fcGFnZS0+c2VuZChNZXNzYWdl
czo6V2ViUGFnZVByb3h5OjpSZXF1ZXN0Q2hlY2tpbmdPZlN0cmluZyhyZXF1ZXN0SUQsICpyZXF1
ZXN0KSk7Cit9CisKIHZvaWQgV2ViRWRpdG9yQ2xpZW50Ojp3aWxsU2V0SW5wdXRNZXRob2RTdGF0
ZSgpCiB7CiAjaWYgUExBVEZPUk0oUVQpCkBAIC00ODUsMTEgKzUwMiw2IEBAIHZvaWQgV2ViRWRp
dG9yQ2xpZW50OjpzZXRJbnB1dE1ldGhvZFN0YXRlKGJvb2wpCiAgICAgbm90SW1wbGVtZW50ZWQo
KTsKIH0KIAotdm9pZCBXZWJFZGl0b3JDbGllbnQ6OnJlcXVlc3RDaGVja2luZ09mU3RyaW5nKFdU
Rjo6UGFzc1JlZlB0cjxXZWJDb3JlOjpUZXh0Q2hlY2tpbmdSZXF1ZXN0PikKLXsKLSAgICBub3RJ
bXBsZW1lbnRlZCgpOwotfQotCiBib29sIFdlYkVkaXRvckNsaWVudDo6c3VwcG9ydHNHbG9iYWxT
ZWxlY3Rpb24oKQogewogI2lmIFBMQVRGT1JNKFFUKSAmJiAhZGVmaW5lZChRVF9OT19DTElQQk9B
UkQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFn
ZS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKaW5k
ZXggNTA3OGFiZC4uY2MyMzZhMTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nl
c3MvV2ViUGFnZS9XZWJQYWdlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dl
YlBhZ2UvV2ViUGFnZS5jcHAKQEAgLTM3OTQsNCArMzc5NCwzMCBAQCB2b2lkIFdlYlBhZ2U6OnNl
dE1pbmltdW1MYXlvdXRXaWR0aChkb3VibGUgbWluaW11bUxheW91dFdpZHRoKQogICAgICAgICBj
b3JlUGFnZSgpLT5tYWluRnJhbWUoKS0+dmlldygpLT5lbmFibGVBdXRvU2l6ZU1vZGUoZmFsc2Us
IEludFNpemUoKSwgSW50U2l6ZSgpKTsKIH0KIAordm9pZCBXZWJQYWdlOjphZGRUZXh0Q2hlY2tp
bmdSZXF1ZXN0KHVpbnQ2NF90IHJlcXVlc3RJRCwgUGFzc1JlZlB0cjxXZWJDb3JlOjpUZXh0Q2hl
Y2tpbmdSZXF1ZXN0PiByZXF1ZXN0KQoreworICAgIG1fcGVuZGluZ1RleHRDaGVja2luZ1JlcXVl
c3RNYXAuYWRkKHJlcXVlc3RJRCwgcmVxdWVzdCk7Cit9CisKK3ZvaWQgV2ViUGFnZTo6ZGlkRmlu
aXNoQ2hlY2tpbmdUZXh0KHVpbnQ2NF90IHJlcXVlc3RJRCwgY29uc3QgVmVjdG9yPFdlYkNvcmU6
OlRleHRDaGVja2luZ1Jlc3VsdD4mIHJlc3VsdCkKK3sKKyAgICBXZWJDb3JlOjpUZXh0Q2hlY2tp
bmdSZXF1ZXN0KiByZXF1ZXN0ID0gbV9wZW5kaW5nVGV4dENoZWNraW5nUmVxdWVzdE1hcC5nZXQo
cmVxdWVzdElEKS5nZXQoKTsKKyAgICBpZiAoIXJlcXVlc3QpCisgICAgICAgIHJldHVybjsKKwor
ICAgIHJlcXVlc3QtPmRpZFN1Y2NlZWQocmVzdWx0KTsKKyAgICBtX3BlbmRpbmdUZXh0Q2hlY2tp
bmdSZXF1ZXN0TWFwLnJlbW92ZShyZXF1ZXN0SUQpOworfQorCit2b2lkIFdlYlBhZ2U6OmRpZENh
bmNlbENoZWNraW5nVGV4dCh1aW50NjRfdCByZXF1ZXN0SUQpCit7CisgICAgV2ViQ29yZTo6VGV4
dENoZWNraW5nUmVxdWVzdCogcmVxdWVzdCA9IG1fcGVuZGluZ1RleHRDaGVja2luZ1JlcXVlc3RN
YXAuZ2V0KHJlcXVlc3RJRCkuZ2V0KCk7CisgICAgaWYgKCFyZXF1ZXN0KQorICAgICAgICByZXR1
cm47CisKKyAgICByZXF1ZXN0LT5kaWRDYW5jZWwoKTsKKyAgICBtX3BlbmRpbmdUZXh0Q2hlY2tp
bmdSZXF1ZXN0TWFwLnJlbW92ZShyZXF1ZXN0SUQpOworfQorCisKIH0gLy8gbmFtZXNwYWNlIFdl
YktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBh
Z2UuaCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmgKaW5kZXgg
YTZlMDYwNi4uNDkzMmI0MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9X
ZWJQYWdlL1dlYlBhZ2UuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2Uv
V2ViUGFnZS5oCkBAIC01OSw2ICs1OSw3IEBACiAjaW5jbHVkZSA8V2ViQ29yZS9QYWdlVmlzaWJp
bGl0eVN0YXRlLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9QbGF0Zm9ybVNjcmVlbi5oPgogI2luY2x1
ZGUgPFdlYkNvcmUvU2Nyb2xsVHlwZXMuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL1RleHRDaGVja2lu
Zy5oPgogI2luY2x1ZGUgPFdlYkNvcmUvV2ViQ29yZUtleWJvYXJkVUlNb2RlLmg+CiAjaW5jbHVk
ZSA8d3RmL0hhc2hNYXAuaD4KICNpbmNsdWRlIDx3dGYvT3duUHRyLmg+CkBAIC0xMTYsOCArMTE3
LDEwIEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICBjbGFzcyBSZXNvdXJjZVJlc3BvbnNlOwog
ICAgIGNsYXNzIFJlc291cmNlUmVxdWVzdDsKICAgICBjbGFzcyBTaGFyZWRCdWZmZXI7CisgICAg
Y2xhc3MgVGV4dENoZWNraW5nUmVxdWVzdDsKICAgICBjbGFzcyBWaXNpYmxlU2VsZWN0aW9uOwog
ICAgIHN0cnVjdCBLZXlwcmVzc0NvbW1hbmQ7CisgICAgc3RydWN0IFRleHRDaGVja2luZ1Jlc3Vs
dDsKIH0KIAogbmFtZXNwYWNlIFdlYktpdCB7CkBAIC02MDUsNiArNjA4LDEwIEBAIHB1YmxpYzoK
ICAgICB2b2lkIHNldE1pbmltdW1MYXlvdXRXaWR0aChkb3VibGUpOwogICAgIGRvdWJsZSBtaW5p
bXVtTGF5b3V0V2lkdGgoKSBjb25zdCB7IHJldHVybiBtX21pbmltdW1MYXlvdXRXaWR0aDsgfQog
CisgICAgdm9pZCBhZGRUZXh0Q2hlY2tpbmdSZXF1ZXN0KHVpbnQ2NF90IHJlcXVlc3RJRCwgUGFz
c1JlZlB0cjxXZWJDb3JlOjpUZXh0Q2hlY2tpbmdSZXF1ZXN0Pik7CisgICAgdm9pZCBkaWRGaW5p
c2hDaGVja2luZ1RleHQodWludDY0X3QgcmVxdWVzdElELCBjb25zdCBWZWN0b3I8V2ViQ29yZTo6
VGV4dENoZWNraW5nUmVzdWx0PiYpOworICAgIHZvaWQgZGlkQ2FuY2VsQ2hlY2tpbmdUZXh0KHVp
bnQ2NF90IHJlcXVlc3RJRCk7CisKIHByaXZhdGU6CiAgICAgV2ViUGFnZSh1aW50NjRfdCBwYWdl
SUQsIGNvbnN0IFdlYlBhZ2VDcmVhdGlvblBhcmFtZXRlcnMmKTsKIApAQCAtNzk4LDYgKzgwNSw4
IEBAIHByaXZhdGU6CiAKICAgICBIYXNoU2V0PFBsdWdpblZpZXcqPiBtX3BsdWdpblZpZXdzOwog
CisgICAgSGFzaE1hcDx1aW50NjRfdCwgUmVmUHRyPFdlYkNvcmU6OlRleHRDaGVja2luZ1JlcXVl
c3Q+ID4gbV9wZW5kaW5nVGV4dENoZWNraW5nUmVxdWVzdE1hcDsKKwogICAgIGJvb2wgbV91c2VG
aXhlZExheW91dDsKIAogICAgIGJvb2wgbV9kcmF3c0JhY2tncm91bmQ7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5tZXNzYWdlcy5pbiBiL1Nv
dXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLm1lc3NhZ2VzLmluCmluZGV4
IDY3YmNlNmEuLmUyNTBiMDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
V2ViUGFnZS9XZWJQYWdlLm1lc3NhZ2VzLmluCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nl
c3MvV2ViUGFnZS9XZWJQYWdlLm1lc3NhZ2VzLmluCkBAIC0xOTQsNiArMTk0LDggQEAgbWVzc2Fn
ZXMgLT4gV2ViUGFnZSBMZWdhY3lSZWNlaXZlciB7CiAgICAgIyBTcGVsbGluZyBhbmQgZ3JhbW1h
ci4KICAgICBBZHZhbmNlVG9OZXh0TWlzc3BlbGxpbmcoYm9vbCBzdGFydEJlZm9yZVNlbGVjdGlv
bikKICAgICBDaGFuZ2VTcGVsbGluZ1RvV29yZChXVEY6OlN0cmluZyB3b3JkKQorICAgIERpZEZp
bmlzaENoZWNraW5nVGV4dCh1aW50NjRfdCByZXF1ZXN0SUQsIFdURjo6VmVjdG9yPFdlYkNvcmU6
OlRleHRDaGVja2luZ1Jlc3VsdD4gcmVzdWx0KQorICAgIERpZENhbmNlbENoZWNraW5nVGV4dCh1
aW50NjRfdCByZXF1ZXN0SUQpCiAjaWYgVVNFKEFQUEtJVCkKICAgICBVcHBlcmNhc2VXb3JkKCkK
ICAgICBMb3dlcmNhc2VXb3JkKCkK
</data>
<flag name="commit-queue"
          id="209126"
          type_id="3"
          status="-"
          setter="buildbot"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>189731</attachid>
            <date>2013-02-22 02:36:33 -0800</date>
            <delta_ts>2013-02-25 04:04:52 -0800</delta_ts>
            <desc>rebased after r143688</desc>
            <filename>spelling-asynchronous-spell-checking-WK2.patch</filename>
            <type>text/plain</type>
            <size>33483</size>
            <attacher name="Grzegorz Czajkowski">g.czajkowski</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NNYWtlTGlzdHMudHh0IGIvU291cmNlL1dlYktp
dDIvQ01ha2VMaXN0cy50eHQKaW5kZXggN2MxYzBmZC4uNTk2OGU5OCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdDIvQ01ha2VMaXN0cy50eHQKKysrIGIvU291cmNlL1dlYktpdDIvQ01ha2VMaXN0
cy50eHQKQEAgLTI0NCw2ICsyNDQsNyBAQCBzZXQoV2ViS2l0Ml9TT1VSQ0VTCiAgICAgVUlQcm9j
ZXNzL1BhZ2VWaWV3cG9ydENvbnRyb2xsZXIuY3BwCiAgICAgVUlQcm9jZXNzL1Jlc3BvbnNpdmVu
ZXNzVGltZXIuY3BwCiAgICAgVUlQcm9jZXNzL1N0YXRpc3RpY3NSZXF1ZXN0LmNwcAorICAgIFVJ
UHJvY2Vzcy9UZXh0Q2hlY2tlckNvbXBsZXRpb24uY3BwCiAgICAgVUlQcm9jZXNzL1Zpc2l0ZWRM
aW5rUHJvdmlkZXIuY3BwCiAgICAgVUlQcm9jZXNzL1dlYkFwcGxpY2F0aW9uQ2FjaGVNYW5hZ2Vy
UHJveHkuY3BwCiAgICAgVUlQcm9jZXNzL1dlYkJhY2tGb3J3YXJkTGlzdC5jcHAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpp
bmRleCBhYTM4YTliLi42NzgwNmNjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VM
b2cKKysrIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTM5IEBACisyMDEz
LTAyLTIyICBHcnplZ29yeiBDemFqa293c2tpICA8Zy5jemFqa293c2tpQHNhbXN1bmcuY29tPiwg
TWFyaXVzeiBHcnplZ29yY3p5ayA8bWFyaXVzei5nQHNhbXN1bmcuY29tPgorCisgICAgICAgIFtX
SzJdIEFzeW5jaHJvbm91cyBzcGVsbCBjaGVja2luZyBpbXBsZW1lbnRhdGlvbgorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTA4MTcyCisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQXNzb2NpYXRlIHRoZSBhYnN0
cmFjdCAnV2ViQ29yZTo6VGV4dENoZWNraW5nUmVxdWVzdCcgb2JqZWN0IHdpdGggdGhlIHVuaXF1
ZSBpZGVudGlmaWVyCisgICAgICAgIG9uIFdlYlByb2Nlc3Mgc2lkZS4gVGhlIHJlcXVlc3QgZGF0
YSBmcm9tIHRoZSAnVGV4dENoZWNraW5nUmVxdWVzdCcgYXJlIHJldHJpZXZlZCBhbmQKKyAgICAg
ICAgcGFzc2VkIHRvIHRoZSBVSVByb2Nlc3MuIFRoZSBjbGllbnQgKFRleHRDaGVja2Vye0d0ay9N
YWMvRWZsL1F0fS5jcHApIGlzIGFibGUgdG8gZ2V0CisgICAgICAgIGEgbmV3IGRlZmluZWQgYWJz
dHJhY3Qgb2JqZWN0ICgnVGV4dENoZWNrZXJDb21wbGV0aW9uJywgc2ltaWxhciB0byBXZWJDb3Jl
OjpUZXh0Q2hlY2tpbmdSZXF1ZXN0KQorICAgICAgICB3aXRoIHRoZSByZXF1ZXN0IGRhdGEgYW5k
IHBvc3NpYmlsaXR5IHRvIG5vdGlmeSB0aGUgV2ViQ29yZSBhYm91dCB0aGUgc3BlbGxpbmcgcmVz
dWx0cy4KKyAgICAgICAgVGhlbiwgYSBtZXNzYWdlIGlzIHNlbnQgYmFjayB0byBXZWJQcm9jZXNz
LCB0aGUgcmVxdWVzdCBoYXMgYmVlbiBoYW5kbGVkIG9yIGNhbmNlbGVkLgorICAgICAgICBGaW5h
bGx5LCB0aGUgV2ViUGFnZSBvYmplY3QgY2FsbHMgb24gdGhlIHByb3BlciAnVGV4dENoZWNraW5n
UmVxdWVzdCcgb2JqZWN0CisgICAgICAgIGRpZFN1Y2Nlc3MvZGlkQ2FuY2VsIG1ldGhvZC4KKwor
ICAgICAgICAqIENNYWtlTGlzdHMudHh0OgorICAgICAgICAqIEdOVW1ha2VmaWxlLmxpc3QuYW06
CisgICAgICAgIEFkZCAnVGV4dENoZWNrZXJDb21wbGV0aW9uLntoL2NwcH0nIHRvIHRoZSBXZWJL
aXQyIGNtYWtlIGJhc2VkIGFuZAorICAgICAgICBXSzItR3RrKyBidWlsZHMuCisKKyAgICAgICAg
KiBTY3JpcHRzL3dlYmtpdDIvbWVzc2FnZXMucHk6CisgICAgICAgIChoZWFkZXJzX2Zvcl90eXBl
KToKKyAgICAgICAgQWRkIGV4Y2VwdGlvbiBmb3IgJ1RleHRDaGVja2luZ1JlcXVlc3REYXRhJyBj
bGFzcyB0byBwcm9wZXJseSBmaW5kIGhlYWRlcgorICAgICAgICBmaWxlIGZvciBpdC4KKworICAg
ICAgICAqIFNoYXJlZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMuY3BwOgorICAgICAgICAoQ29yZUlQ
Qzo6OjplbmNvZGUpOgorICAgICAgICAoQ29yZUlQQzo6OjpkZWNvZGUpOgorICAgICAgICAqIFNo
YXJlZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMuaDoKKyAgICAgICAgVGVhY2ggJ0FyZ3VtZW50Q29k
ZXInIGhvdyB0byBlbmNvZGUvZGVjb2RlICdUZXh0Q2hlY2tpbmdSZXF1ZXN0RGF0YScgY2xhc3Mu
CisKKyAgICAgICAgKiBUYXJnZXQucHJpOgorICAgICAgICBBZGQgJ1RleHRDaGVja2VyQ29tcGxl
dGlvbi57aC9jcHB9JyB0byB0aGUgV0syLVF0IGJ1aWxkLgorCisgICAgICAgICogVUlQcm9jZXNz
L1RleHRDaGVja2VyLmg6CisgICAgICAgIChUZXh0Q2hlY2tlcik6CisgICAgICAgIEFkZCAncmVx
dWVzdENoZWNraW5nT2ZTdHJpbmcnIG1ldGhvZCB0byB0aGUgVGV4dENoZWNrZXIncyBpbnRlcmZh
Y2UuCisKKyAgICAgICAgKiBVSVByb2Nlc3MvVGV4dENoZWNrZXJDb21wbGV0aW9uLmNwcDogQWRk
ZWQuCisgICAgICAgIChXZWJLaXQpOgorICAgICAgICAoV2ViS2l0OjpUZXh0Q2hlY2tlckNvbXBs
ZXRpb25JbXBsOjpjcmVhdGUpOgorICAgICAgICBSZXR1cm4gYSBwb2ludGVyIChhcyBQYXNzUmVm
UHRyKSB0byB0aGUgJ1RleHRDaGVja2VyQ29tcGxldGlvbkltcGwnIG9iamVjdAorICAgICAgICB0
byBlYXN5IGNhc3QgaXQgdG8gdGhlIGJhc2UgY2xhc3MgKCdUZXh0Q2hlY2tlckNvbXBsZXRpb24n
KS4KKworICAgICAgICAoV2ViS2l0OjpUZXh0Q2hlY2tlckNvbXBsZXRpb25JbXBsOjpUZXh0Q2hl
Y2tlckNvbXBsZXRpb25JbXBsKToKKyAgICAgICAgRGVmaW5lIGEgY29uc3RydWN0b3IuCisKKyAg
ICAgICAgKFdlYktpdDo6VGV4dENoZWNrZXJDb21wbGV0aW9uSW1wbDo6c3BlbGxEb2N1bWVudFRh
Zyk6CisgICAgICAgIFJldHVybiB0aGUgV2ViUGFnZVByb3h5J3Mgc3BlbGxEb2N1bWVudFRhZyBh
cyB0aGUgY2xpZW50IG1pZ2h0IGJlCisgICAgICAgIGludGVyZXN0ZWQgaW4gZnJvbSB3aGljaCBw
YWdlIHRoZSByZXF1ZXN0IGNhbWUuCisKKyAgICAgICAgKFdlYktpdDo6VGV4dENoZWNrZXJDb21w
bGV0aW9uSW1wbDo6dGV4dENoZWNraW5nUmVxdWVzdERhdGEpOgorICAgICAgICBBbGxvdyB0byBy
ZXRyaWV2ZSAnVGV4dENoZWNraW5nUmVxdWVzdERhdGEnIG9iamVjdC4KKworICAgICAgICAoV2Vi
S2l0OjpUZXh0Q2hlY2tlckNvbXBsZXRpb25JbXBsOjpkaWRGaW5pc2hDaGVja2luZ1RleHQpOgor
ICAgICAgICAoV2ViS2l0OjpUZXh0Q2hlY2tlckNvbXBsZXRpb25JbXBsOjpkaWRDYW5jZWxDaGVj
a2luZ1RleHQpOgorICAgICAgICBOb3RpZnkgdGhlICdXZWJQYWdlUHJveHknIG9iamVjdCB0aGF0
IHRoZSBnaXZlbiByZXF1ZXN0IGhhcyBiZWVuCisgICAgICAgIGhhbmRsZWQgb3IgY2FuY2VsZWQu
CisKKyAgICAgICAgKiBVSVByb2Nlc3MvVGV4dENoZWNrZXJDb21wbGV0aW9uLmg6IEFkZGVkLgor
ICAgICAgICAoV2ViS2l0KToKKyAgICAgICAgKFRleHRDaGVja2VyQ29tcGxldGlvbik6CisgICAg
ICAgIEludHJvZHVjZSBhIHZpcnR1YWwgY2xhc3MgYW50IGl0cyBpbXBsZW1lbnRhdGlvbi4KKyAg
ICAgICAgSXQgYWxsb3dzIHRvIHJldHJpZXZlIHRoZSByZXF1ZXN0IGRhdGEgYW5kIGNhbGwKKyAg
ICAgICAgZGlkRmluaXNoQ2hlY2tpbmdUZXh0KCkvZGlkQ2FuY2VsQ2hlY2tpbmdUZXh0KCkuCisK
KyAgICAgICAgKFdlYktpdDo6VGV4dENoZWNrZXJDb21wbGV0aW9uOjp+VGV4dENoZWNrZXJDb21w
bGV0aW9uKToKKyAgICAgICAgKFRleHRDaGVja2VyQ29tcGxldGlvbkltcGwpOgorICAgICAgICAo
V2ViS2l0OjpUZXh0Q2hlY2tlckNvbXBsZXRpb25JbXBsOjp+VGV4dENoZWNrZXJDb21wbGV0aW9u
SW1wbCk6CisKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcDoKKyAgICAgICAg
KFdlYktpdDo6V2ViUGFnZVByb3h5OjpyZXF1ZXN0Q2hlY2tpbmdPZlN0cmluZyk6CisgICAgICAg
IENyZWF0ZSAnVGV4dENoZWNrZXJDb21wbGV0aW9uSW1wbCcgb2JqZWN0IGFuZCBwYXNzIGl0IGFz
IHRoZSBiYXNlIGNsYXNzCisgICAgICAgIHRvIHRoZSAnVGV4dENoZWNrZXI6OnJlcXVlc3RDaGVj
a2luZ09mU3RyaW5nJyBtZXRob2QuCisKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5Ojpk
aWRGaW5pc2hDaGVja2luZ1RleHQpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OmRp
ZENhbmNlbENoZWNraW5nVGV4dCk6CisgICAgICAgIFNlbmQgdGhlIG1lc3NhZ2VzIHRvIFdlYlBy
b2Nlc3MgdGhhdCB0aGUgZ2l2ZW4gcmVxdWVzdCBoYXMgYmVlbgorICAgICAgICBoYW5kbGVkIG9y
IGNhbmNlbGVkLgorCisgICAgICAgICogVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oOgorICAgICAg
ICAoV2ViUGFnZVByb3h5KToKKyAgICAgICAgQWRkIHB1YmxpYyBkZWNsYXJhdGlvbnMgZm9yICdk
aWRGaW5pc2hDaGVja2luZ1RleHQnLCAnZGlkQ2FuY2VsQ2hlY2tpbmdUZXh0Jy4KKyAgICAgICAg
VGhlICdyZXF1ZXN0Q2hlY2tpbmdPZlN0cmluZycgaXMgZGVmaW5lZCBhcyBwcml2YXRlIG1lbWJl
ci4KKyAgICAgICAgTW92ZSB0aGUgJ3NwZWxsRG9jdW1lbnRUYWcoKScgbWV0aG9kIHRvIHRvIHRo
ZSBwdWJsaWMgc2VjdGlvbiB0byBiZSBhY2Nlc3NpYmxlIGZyb20KKyAgICAgICAgJ1RleHRDaGVj
a2VyQ29tcGxldGlvbkltcGwnIGNsYXNzLgorCisgICAgICAgICogVUlQcm9jZXNzL1dlYlBhZ2VQ
cm94eS5tZXNzYWdlcy5pbjoKKyAgICAgICAgQSBuZXcgZW50cnkgZm9yICdSZXF1ZXN0Q2hlY2tp
bmdPZlN0cmluZycuCisKKyAgICAgICAgKiBVSVByb2Nlc3MvZWZsL1RleHRDaGVja2VyRWZsLmNw
cDoKKyAgICAgICAgKFdlYktpdDo6VGV4dENoZWNrZXI6OnJlcXVlc3RDaGVja2luZ09mU3RyaW5n
KToKKyAgICAgICAgKFdlYktpdCk6CisgICAgICAgICogVUlQcm9jZXNzL2d0ay9UZXh0Q2hlY2tl
ckd0ay5jcHA6CisgICAgICAgIChXZWJLaXQ6OlRleHRDaGVja2VyOjpyZXF1ZXN0Q2hlY2tpbmdP
ZlN0cmluZyk6CisgICAgICAgIChXZWJLaXQpOgorICAgICAgICAqIFVJUHJvY2Vzcy9tYWMvVGV4
dENoZWNrZXJNYWMubW06CisgICAgICAgIChXZWJLaXQ6OlRleHRDaGVja2VyOjpyZXF1ZXN0Q2hl
Y2tpbmdPZlN0cmluZyk6CisgICAgICAgIChXZWJLaXQpOgorICAgICAgICAqIFVJUHJvY2Vzcy9x
dC9UZXh0Q2hlY2tlclF0LmNwcDoKKyAgICAgICAgKFdlYktpdDo6VGV4dENoZWNrZXI6OnJlcXVl
c3RDaGVja2luZ09mU3RyaW5nKToKKyAgICAgICAgKFdlYktpdCk6CisgICAgICAgIEFkZCBkdW1t
eSBpbXBsZW1lbnRhdGlvbnMgZm9yICdyZXF1ZXN0Q2hlY2tpbmdPZlN0cmluZycuCisKKyAgICAg
ICAgKiBXZWJLaXQyLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgIEFkZCAnVGV4
dENoZWNrZXJDb21wbGV0aW9uLntoL2NwcH0gdG8gTWFjIGJ1aWxkLgorCisgICAgICAgICogV2Vi
UHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJFZGl0b3JDbGllbnQuY3BwOgorICAgICAgICAoV2Vi
S2l0OjpnZW5lcmF0ZVRleHRDaGVja2luZ1JlcXVlc3RJRCk6CisgICAgICAgIEhlbHBlciBmdW5j
dGlvbiB0byBnZW5lcmF0ZSB0aGUgdW5pcXVlIGlkZW50aWZpZXIgZm9yICdUZXh0Q2hlY2tpbmdS
ZXF1ZXN0JworICAgICAgICBhYnN0cmFjdCBvYmplY3QuCisKKyAgICAgICAgKFdlYktpdDo6V2Vi
RWRpdG9yQ2xpZW50OjpyZXF1ZXN0Q2hlY2tpbmdPZlN0cmluZyk6CisgICAgICAgIEFzc29jaWF0
ZSAnVGV4dENoZWNraW5nUmVxdWVzdCcgd2l0aCB0aGUgdW5pcXVlIGlkZW50aWZpZXIgYW5kIGFk
ZCB0aGVtCisgICAgICAgIHRvIHRoZSBtYXAgb2JqZWN0LgorICAgICAgICBDYXN0ICdUZXh0Q2hl
Y2tpbmdSZXF1ZXN0JyBvYmplY3QgdG8gdGhlICdUZXh0Q2hlY2tpbmdSZXF1ZXN0RGF0YScgYW5k
IHNlbmQKKyAgICAgICAgaXQgdG8gdGhlIFVJUHJvY2Vzcy4KKworICAgICAgICAqIFdlYlByb2Nl
c3MvV2ViUGFnZS9XZWJQYWdlLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6YWRkVGV4
dENoZWNraW5nUmVxdWVzdCk6CisgICAgICAgIEFkZCB0aGUgaWRlbnRpZmllciBhbmQgdGhlIHJl
cXVlc3QgdG8gdGhlIG1hcCBvYmplY3QuCisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6OmRpZEZp
bmlzaENoZWNraW5nVGV4dCk6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6OmRpZENhbmNlbENo
ZWNraW5nVGV4dCk6CisgICAgICAgIENhbGwgZGlkU3VjY2VlZC9kaWRDYW5jZWwgb24gdGhlICdU
ZXh0Q2hlY2tpbmdSZXF1ZXN0JyB0byBub3RpZnkgdGhlIFdlYkNvcmUKKyAgICAgICAgYWJvdXQg
c3BlbGxjaGVraW5nIHJlc3VsdHMuCisgICAgICAgIFJlbW92ZSB0aGUgcmVxdWVzdCBmcm9tIHRo
ZSBtYXAgb2JqZWN0LgorCisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaDoK
KyAgICAgICAgKFdlYlBhZ2UpOgorICAgICAgICBBZGQgZGVjbGFyYXRpb25zIGZvciAnYWRkVGV4
dENoZWNraW5nUmVxdWVzdCcsICdkaWRGaW5pc2hDaGVja2luZ1RleHQnIGFuZAorICAgICAgICAn
ZGlkQ2FuY2VsQ2hlY2tpbmdUZXh0LicKKworICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9X
ZWJQYWdlLm1lc3NhZ2VzLmluOgorICAgICAgICBBZGQgYSBuZXcgZW50cnkgZm9yIERpZEZpbmlz
aENoZWNraW5nVGV4dCwgRGlkQ2FuY2VsQ2hlY2tpbmdUZXh0LgorCiAyMDEzLTAyLTIxICBEaW1h
IEdvcmJpayAgPGRnb3JiaWtAYXBwbGUuY29tPgogCiAgICAgICAgIFF1aWNrVGltZSBwbHVnaW4g
ZG9lc24ndCBsb2FkIHdoZW4gYWNjZWxlcmF0ZWQgY29tcG9zaXRpbmcgaXMgZGlzYWJsZWQKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0dOVW1ha2VmaWxlLmxpc3QuYW0gYi9Tb3VyY2UvV2Vi
S2l0Mi9HTlVtYWtlZmlsZS5saXN0LmFtCmluZGV4IDJiMjMxMTMuLjI3ZTQxNzkgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQyL0dOVW1ha2VmaWxlLmxpc3QuYW0KKysrIGIvU291cmNlL1dlYktp
dDIvR05VbWFrZWZpbGUubGlzdC5hbQpAQCAtODU2LDYgKzg1Niw4IEBAIHdlYmtpdDJfc291cmNl
cyArPSBcCiAJU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL3NvdXAvV2ViU291cFJlcXVlc3RNYW5h
Z2VyUHJveHkuY3BwIFwKIAlTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mvc291cC9XZWJTb3VwUmVx
dWVzdE1hbmFnZXJQcm94eS5oIFwKIAlTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvVGV4dENoZWNr
ZXIuaCBcCisJU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1RleHRDaGVja2VyQ29tcGxldGlvbi5o
IFwKKwlTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvVGV4dENoZWNrZXJDb21wbGV0aW9uLmNwcCBc
CiAJU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1Zpc2l0ZWRMaW5rUHJvdmlkZXIuY3BwIFwKIAlT
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvVmlzaXRlZExpbmtQcm92aWRlci5oIFwKIAlTb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvV2ViQXBwbGljYXRpb25DYWNoZU1hbmFnZXJQcm94eS5oIFwKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NjcmlwdHMvd2Via2l0Mi9tZXNzYWdlcy5weSBiL1Nv
dXJjZS9XZWJLaXQyL1NjcmlwdHMvd2Via2l0Mi9tZXNzYWdlcy5weQppbmRleCA0NjdmMzM3Li5i
NjkwYTAxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9TY3JpcHRzL3dlYmtpdDIvbWVzc2Fn
ZXMucHkKKysrIGIvU291cmNlL1dlYktpdDIvU2NyaXB0cy93ZWJraXQyL21lc3NhZ2VzLnB5CkBA
IC00MDUsNiArNDA1LDcgQEAgZGVmIGhlYWRlcnNfZm9yX3R5cGUodHlwZSk6CiAgICAgICAgICdX
ZWJDb3JlOjpLZXlwcmVzc0NvbW1hbmQnOiBbJzxXZWJDb3JlL0tleWJvYXJkRXZlbnQuaD4nXSwK
ICAgICAgICAgJ1dlYkNvcmU6OkZpbGVDaG9vc2VyU2V0dGluZ3MnOiBbJzxXZWJDb3JlL0ZpbGVD
aG9vc2VyLmg+J10sCiAgICAgICAgICdXZWJDb3JlOjpQbHVnaW5JbmZvJzogWyc8V2ViQ29yZS9Q
bHVnaW5EYXRhLmg+J10sCisgICAgICAgICdXZWJDb3JlOjpUZXh0Q2hlY2tpbmdSZXF1ZXN0RGF0
YSc6IFsnPFdlYkNvcmUvVGV4dENoZWNraW5nLmg+J10sCiAgICAgICAgICdXZWJDb3JlOjpUZXh0
Q2hlY2tpbmdSZXN1bHQnOiBbJzxXZWJDb3JlL1RleHRDaGVja2VyQ2xpZW50Lmg+J10sCiAgICAg
ICAgICdXZWJDb3JlOjpWaWV3cG9ydEF0dHJpYnV0ZXMnOiBbJzxXZWJDb3JlL1ZpZXdwb3J0QXJn
dW1lbnRzLmg+J10sCiAgICAgICAgICdXZWJLaXQ6OkluamVjdGVkQnVuZGxlVXNlck1lc3NhZ2VF
bmNvZGVyJzogW10sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViQ29yZUFy
Z3VtZW50Q29kZXJzLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJDb3JlQXJndW1lbnRD
b2RlcnMuY3BwCmluZGV4IDRmNjBjNDUuLmFlY2MyZTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQyL1NoYXJlZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQy
L1NoYXJlZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMuY3BwCkBAIC04MjksNiArODI5LDM1IEBAIGJv
b2wgQXJndW1lbnRDb2RlcjxHcmFtbWFyRGV0YWlsPjo6ZGVjb2RlKEFyZ3VtZW50RGVjb2RlciYg
ZGVjb2RlciwgR3JhbW1hckRldGFpCiAgICAgcmV0dXJuIHRydWU7CiB9CiAKK3ZvaWQgQXJndW1l
bnRDb2RlcjxUZXh0Q2hlY2tpbmdSZXF1ZXN0RGF0YT46OmVuY29kZShBcmd1bWVudEVuY29kZXIm
IGVuY29kZXIsIGNvbnN0IFRleHRDaGVja2luZ1JlcXVlc3REYXRhJiByZXF1ZXN0KQoreworICAg
IGVuY29kZXIgPDwgcmVxdWVzdC5zZXF1ZW5jZSgpOworICAgIGVuY29kZXIgPDwgcmVxdWVzdC50
ZXh0KCk7CisgICAgZW5jb2RlciA8PCByZXF1ZXN0Lm1hc2soKTsKKyAgICBlbmNvZGVyLmVuY29k
ZUVudW0ocmVxdWVzdC5wcm9jZXNzVHlwZSgpKTsKK30KKworYm9vbCBBcmd1bWVudENvZGVyPFRl
eHRDaGVja2luZ1JlcXVlc3REYXRhPjo6ZGVjb2RlKEFyZ3VtZW50RGVjb2RlciYgZGVjb2Rlciwg
VGV4dENoZWNraW5nUmVxdWVzdERhdGEmIHJlcXVlc3QpCit7CisgICAgaW50IHNlcXVlbmNlOwor
ICAgIGlmICghZGVjb2Rlci5kZWNvZGUoc2VxdWVuY2UpKQorICAgICAgICByZXR1cm4gZmFsc2U7
CisKKyAgICBTdHJpbmcgdGV4dDsKKyAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHRleHQpKQorICAg
ICAgICByZXR1cm4gZmFsc2U7CisKKyAgICBUZXh0Q2hlY2tpbmdUeXBlTWFzayBtYXNrOworICAg
IGlmICghZGVjb2Rlci5kZWNvZGUobWFzaykpCisgICAgICAgIHJldHVybiBmYWxzZTsKKworICAg
IFRleHRDaGVja2luZ1Byb2Nlc3NUeXBlIHByb2Nlc3NUeXBlOworICAgIGlmICghZGVjb2Rlci5k
ZWNvZGVFbnVtKHByb2Nlc3NUeXBlKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgcmVx
dWVzdCA9IFRleHRDaGVja2luZ1JlcXVlc3REYXRhKHNlcXVlbmNlLCB0ZXh0LCBtYXNrLCBwcm9j
ZXNzVHlwZSk7CisgICAgcmV0dXJuIHRydWU7Cit9CiAKIHZvaWQgQXJndW1lbnRDb2RlcjxUZXh0
Q2hlY2tpbmdSZXN1bHQ+OjplbmNvZGUoQXJndW1lbnRFbmNvZGVyJiBlbmNvZGVyLCBjb25zdCBU
ZXh0Q2hlY2tpbmdSZXN1bHQmIHJlc3VsdCkKIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQy
L1NoYXJlZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMuaCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9X
ZWJDb3JlQXJndW1lbnRDb2RlcnMuaAppbmRleCAwZDhlYjc2Li5lOTE0NzRkIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmgKKysrIGIvU291
cmNlL1dlYktpdDIvU2hhcmVkL1dlYkNvcmVBcmd1bWVudENvZGVycy5oCkBAIC00OSw2ICs0OSw3
IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICBjbGFzcyBSZXNvdXJjZUVycm9yOwogICAgIGNs
YXNzIFJlc291cmNlUmVxdWVzdDsKICAgICBjbGFzcyBSZXNvdXJjZVJlc3BvbnNlOworICAgIGNs
YXNzIFRleHRDaGVja2luZ1JlcXVlc3REYXRhOwogICAgIGNsYXNzIFVzZXJTdHlsZVNoZWV0Owog
ICAgIGNsYXNzIFVzZXJTY3JpcHQ7CiAgICAgc3RydWN0IENvbXBvc2l0aW9uVW5kZXJsaW5lOwpA
QCAtMjMzLDYgKzIzNCwxMSBAQCB0ZW1wbGF0ZTw+IHN0cnVjdCBBcmd1bWVudENvZGVyPFdlYkNv
cmU6OkdyYW1tYXJEZXRhaWw+IHsKICAgICBzdGF0aWMgYm9vbCBkZWNvZGUoQXJndW1lbnREZWNv
ZGVyJiwgV2ViQ29yZTo6R3JhbW1hckRldGFpbCYpOwogfTsKIAordGVtcGxhdGU8PiBzdHJ1Y3Qg
QXJndW1lbnRDb2RlcjxXZWJDb3JlOjpUZXh0Q2hlY2tpbmdSZXF1ZXN0RGF0YT4geworICAgIHN0
YXRpYyB2b2lkIGVuY29kZShBcmd1bWVudEVuY29kZXImLCBjb25zdCBXZWJDb3JlOjpUZXh0Q2hl
Y2tpbmdSZXF1ZXN0RGF0YSYpOworICAgIHN0YXRpYyBib29sIGRlY29kZShBcmd1bWVudERlY29k
ZXImLCBXZWJDb3JlOjpUZXh0Q2hlY2tpbmdSZXF1ZXN0RGF0YSYpOworfTsKKwogdGVtcGxhdGU8
PiBzdHJ1Y3QgQXJndW1lbnRDb2RlcjxXZWJDb3JlOjpUZXh0Q2hlY2tpbmdSZXN1bHQ+IHsKICAg
ICBzdGF0aWMgdm9pZCBlbmNvZGUoQXJndW1lbnRFbmNvZGVyJiwgY29uc3QgV2ViQ29yZTo6VGV4
dENoZWNraW5nUmVzdWx0Jik7CiAgICAgc3RhdGljIGJvb2wgZGVjb2RlKEFyZ3VtZW50RGVjb2Rl
ciYsIFdlYkNvcmU6OlRleHRDaGVja2luZ1Jlc3VsdCYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdDIvVGFyZ2V0LnByaSBiL1NvdXJjZS9XZWJLaXQyL1RhcmdldC5wcmkKaW5kZXggY2U2YzA4
MS4uYTI1MTQ3OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVGFyZ2V0LnByaQorKysgYi9T
b3VyY2UvV2ViS2l0Mi9UYXJnZXQucHJpCkBAIC0yMzMsNiArMjMzLDcgQEAgSEVBREVSUyArPSBc
CiAgICAgVUlQcm9jZXNzL1N0YXRpc3RpY3NSZXF1ZXN0LmggXAogICAgIFVJUHJvY2Vzcy9TdG9y
YWdlL1N0b3JhZ2VNYW5hZ2VyLmggXAogICAgIFVJUHJvY2Vzcy9UZXh0Q2hlY2tlci5oIFwKKyAg
ICBVSVByb2Nlc3MvVGV4dENoZWNrZXJDb21wbGV0aW9uLmggXAogICAgIFVJUHJvY2Vzcy9WaXNp
dGVkTGlua1Byb3ZpZGVyLmggXAogICAgIFVJUHJvY2Vzcy9XZWJBcHBsaWNhdGlvbkNhY2hlTWFu
YWdlclByb3h5LmggXAogICAgIFVJUHJvY2Vzcy9XZWJCYWNrRm9yd2FyZExpc3QuaCBcCkBAIC01
NjQsNiArNTY1LDcgQEAgU09VUkNFUyArPSBcCiAgICAgVUlQcm9jZXNzL0ZpbmRJbmRpY2F0b3Iu
Y3BwIFwKICAgICBVSVByb2Nlc3MvR2VvbG9jYXRpb25QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQ
cm94eS5jcHAgXAogICAgIFVJUHJvY2Vzcy9HZW9sb2NhdGlvblBlcm1pc3Npb25SZXF1ZXN0UHJv
eHkuY3BwIFwKKyAgICBVSVByb2Nlc3MvVGV4dENoZWNrZXJDb21wbGV0aW9uLmNwcCBcCiAgICAg
VUlQcm9jZXNzL0xhdW5jaGVyL1Byb2Nlc3NMYXVuY2hlci5jcHAgXAogICAgIFVJUHJvY2Vzcy9M
YXVuY2hlci9xdC9Qcm9jZXNzTGF1bmNoZXJRdC5jcHAgXAogICAgIFVJUHJvY2Vzcy9Ob3RpZmlj
YXRpb25zL05vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0LmNwcCBcCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvVGV4dENoZWNrZXIuaCBiL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9UZXh0Q2hlY2tlci5oCmluZGV4IDQ5YjVhNDguLmExNmNiMTggMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9UZXh0Q2hlY2tlci5oCisrKyBiL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9UZXh0Q2hlY2tlci5oCkBAIC0yNiw2ICsyNiw3IEBACiAjaWZuZGVmIFRl
eHRDaGVja2VyX2gKICNkZWZpbmUgVGV4dENoZWNrZXJfaAogCisjaW5jbHVkZSAiVGV4dENoZWNr
ZXJDb21wbGV0aW9uLmgiCiAjaW5jbHVkZSA8V2ViQ29yZS9FZGl0b3JDbGllbnQuaD4KICNpbmNs
dWRlIDxXZWJDb3JlL1RleHRDaGVja2VyQ2xpZW50Lmg+CiAKQEAgLTcyLDYgKzczLDcgQEAgcHVi
bGljOgogICAgIHN0YXRpYyB2b2lkIGdldEd1ZXNzZXNGb3JXb3JkKGludDY0X3Qgc3BlbGxEb2N1
bWVudFRhZywgY29uc3QgU3RyaW5nJiB3b3JkLCBjb25zdCBTdHJpbmcmIGNvbnRleHQsIFZlY3Rv
cjxTdHJpbmc+JiBndWVzc2VzKTsKICAgICBzdGF0aWMgdm9pZCBsZWFybldvcmQoaW50NjRfdCBz
cGVsbERvY3VtZW50VGFnLCBjb25zdCBTdHJpbmcmIHdvcmQpOwogICAgIHN0YXRpYyB2b2lkIGln
bm9yZVdvcmQoaW50NjRfdCBzcGVsbERvY3VtZW50VGFnLCBjb25zdCBTdHJpbmcmIHdvcmQpOwor
ICAgIHN0YXRpYyB2b2lkIHJlcXVlc3RDaGVja2luZ09mU3RyaW5nKFBhc3NSZWZQdHI8VGV4dENo
ZWNrZXJDb21wbGV0aW9uPik7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9UZXh0Q2hlY2tlckNvbXBsZXRpb24uY3BwIGIv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1RleHRDaGVja2VyQ29tcGxldGlvbi5jcHAKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMzA4ZjExOAotLS0gL2Rldi9udWxsCisrKyBi
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9UZXh0Q2hlY2tlckNvbXBsZXRpb24uY3BwCkBAIC0w
LDAgKzEsNjYgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTMgU2Ftc3VuZyBFbGVjdHJvbmlj
cworICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVk
aXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJl
cHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiBkb2N1bWVudGF0
aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9u
LgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xE
RVJTIEFORCBDT05UUklCVVRPUlMKKyAqICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJ
RUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1Q
TElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJU
SUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUg
Q09QWVJJR0hUIEhPTERFUiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJ
UkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENP
TlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQ
Uk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwg
REFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBD
QVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05U
UkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HCisgKiBORUdMSUdFTkNF
IE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMK
KyAqIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gg
REFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJUZXh0Q2hlY2tl
ckNvbXBsZXRpb24uaCIKKworbmFtZXNwYWNlIFdlYktpdCB7CisKK1Bhc3NSZWZQdHI8VGV4dENo
ZWNrZXJDb21wbGV0aW9uSW1wbD4gVGV4dENoZWNrZXJDb21wbGV0aW9uSW1wbDo6Y3JlYXRlKHVp
bnQ2NF90IHJlcXVlc3RJRCwgY29uc3QgV2ViQ29yZTo6VGV4dENoZWNraW5nUmVxdWVzdERhdGEm
IHJlcXVlc3REYXRhLCBXZWJQYWdlUHJveHkqIHBhZ2UpCit7CisgICAgcmV0dXJuIGFkb3B0UmVm
KG5ldyBUZXh0Q2hlY2tlckNvbXBsZXRpb25JbXBsKHJlcXVlc3RJRCwgcmVxdWVzdERhdGEsIHBh
Z2UpKTsKK30KKworVGV4dENoZWNrZXJDb21wbGV0aW9uSW1wbDo6VGV4dENoZWNrZXJDb21wbGV0
aW9uSW1wbCh1aW50NjRfdCByZXF1ZXN0SUQsIGNvbnN0IFdlYkNvcmU6OlRleHRDaGVja2luZ1Jl
cXVlc3REYXRhJiByZXF1ZXN0RGF0YSwgV2ViUGFnZVByb3h5KiBwYWdlKQorICAgIDogbV9yZXF1
ZXN0SUQocmVxdWVzdElEKQorICAgICwgbV9yZXF1ZXN0RGF0YShyZXF1ZXN0RGF0YSkKKyAgICAs
IG1fcGFnZShwYWdlKQoreworfQorCitjb25zdCBXZWJDb3JlOjpUZXh0Q2hlY2tpbmdSZXF1ZXN0
RGF0YSYgVGV4dENoZWNrZXJDb21wbGV0aW9uSW1wbDo6dGV4dENoZWNraW5nUmVxdWVzdERhdGEo
KSBjb25zdAoreworICAgIHJldHVybiBtX3JlcXVlc3REYXRhOworfQorCitpbnQ2NF90IFRleHRD
aGVja2VyQ29tcGxldGlvbkltcGw6OnNwZWxsRG9jdW1lbnRUYWcoKQoreworICAgIHJldHVybiBt
X3BhZ2UtPnNwZWxsRG9jdW1lbnRUYWcoKTsKK30KKwordm9pZCBUZXh0Q2hlY2tlckNvbXBsZXRp
b25JbXBsOjpkaWRGaW5pc2hDaGVja2luZ1RleHQoY29uc3QgVmVjdG9yPFdlYkNvcmU6OlRleHRD
aGVja2luZ1Jlc3VsdD4mIHJlc3VsdCkgY29uc3QKK3sKKyAgICBpZiAocmVzdWx0LmlzRW1wdHko
KSkKKyAgICAgICAgZGlkQ2FuY2VsQ2hlY2tpbmdUZXh0KCk7CisKKyAgICBtX3BhZ2UtPmRpZEZp
bmlzaENoZWNraW5nVGV4dChtX3JlcXVlc3RJRCwgcmVzdWx0KTsKK30KKwordm9pZCBUZXh0Q2hl
Y2tlckNvbXBsZXRpb25JbXBsOjpkaWRDYW5jZWxDaGVja2luZ1RleHQoKSBjb25zdAoreworICAg
IG1fcGFnZS0+ZGlkQ2FuY2VsQ2hlY2tpbmdUZXh0KG1fcmVxdWVzdElEKTsKK30KKworfSAvLyBu
YW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvVGV4
dENoZWNrZXJDb21wbGV0aW9uLmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvVGV4dENoZWNr
ZXJDb21wbGV0aW9uLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNzgyYzM0
ZgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9UZXh0Q2hlY2tl
ckNvbXBsZXRpb24uaApAQCAtMCwwICsxLDY4IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEz
IFNhbXN1bmcgRWxlY3Ryb25pY3MKKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICog
YXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFp
biB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4g
YmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGlu
IHRoZQorICogZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdp
dGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZ
IFRIRSBDT1BZUklHSFQgSE9MREVSUwkgQU5EIENPTlRSSUJVVE9SUworICogIkFTIElTIiBBTkQg
QU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFO
RCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElO
IE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQgSE9MREVSIE9SCisgKiBDT05UUklCVVRPUlMg
QkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwK
KyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VS
VklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5U
RVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklM
SVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNM
VURJTkcKKyAqIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VU
IE9GIFRIRSBVU0UgT0YgVEhJUworICogU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUg
UE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBUZXh0Q2hlY2tlckNv
bXBsZXRpb25faAorI2RlZmluZSBUZXh0Q2hlY2tlckNvbXBsZXRpb25faAorCisjaW5jbHVkZSAi
V2ViUGFnZVByb3h5LmgiCisjaW5jbHVkZSA8V2ViQ29yZS9UZXh0Q2hlY2tpbmcuaD4KKyNpbmNs
dWRlIDx3dGYvVmVjdG9yLmg+CisKK25hbWVzcGFjZSBXZWJLaXQgeworCitjbGFzcyBUZXh0Q2hl
Y2tlckNvbXBsZXRpb24gOiBwdWJsaWMgUmVmQ291bnRlZDxUZXh0Q2hlY2tlckNvbXBsZXRpb24+
IHsKK3B1YmxpYzoKKyAgICB2aXJ0dWFsIH5UZXh0Q2hlY2tlckNvbXBsZXRpb24oKSB7IH0KKwor
ICAgIHZpcnR1YWwgY29uc3QgV2ViQ29yZTo6VGV4dENoZWNraW5nUmVxdWVzdERhdGEmIHRleHRD
aGVja2luZ1JlcXVlc3REYXRhKCkgY29uc3QgPSAwOworICAgIHZpcnR1YWwgaW50NjRfdCBzcGVs
bERvY3VtZW50VGFnKCkgPSAwOworCisgICAgdmlydHVhbCB2b2lkIGRpZEZpbmlzaENoZWNraW5n
VGV4dChjb25zdCBWZWN0b3I8V2ViQ29yZTo6VGV4dENoZWNraW5nUmVzdWx0PiYpIGNvbnN0ID0g
MDsKKyAgICB2aXJ0dWFsIHZvaWQgZGlkQ2FuY2VsQ2hlY2tpbmdUZXh0KCkgY29uc3QgPSAwOwor
fTsKKworCitjbGFzcyBUZXh0Q2hlY2tlckNvbXBsZXRpb25JbXBsIDogcHVibGljIFRleHRDaGVj
a2VyQ29tcGxldGlvbiB7CitwdWJsaWM6CisgICAgc3RhdGljIFBhc3NSZWZQdHI8VGV4dENoZWNr
ZXJDb21wbGV0aW9uSW1wbD4gY3JlYXRlKHVpbnQ2NF90IHJlcXVlc3RJRCwgY29uc3QgV2ViQ29y
ZTo6VGV4dENoZWNraW5nUmVxdWVzdERhdGEmLCBXZWJQYWdlUHJveHkqKTsKKyAgICB2aXJ0dWFs
IH5UZXh0Q2hlY2tlckNvbXBsZXRpb25JbXBsKCkgeyB9CisKKyAgICB2aXJ0dWFsIGNvbnN0IFdl
YkNvcmU6OlRleHRDaGVja2luZ1JlcXVlc3REYXRhJiB0ZXh0Q2hlY2tpbmdSZXF1ZXN0RGF0YSgp
IGNvbnN0IE9WRVJSSURFOworICAgIHZpcnR1YWwgaW50NjRfdCBzcGVsbERvY3VtZW50VGFnKCkg
T1ZFUlJJREU7CisKKyAgICB2aXJ0dWFsIHZvaWQgZGlkRmluaXNoQ2hlY2tpbmdUZXh0KGNvbnN0
IFZlY3RvcjxXZWJDb3JlOjpUZXh0Q2hlY2tpbmdSZXN1bHQ+JikgY29uc3QgT1ZFUlJJREU7Cisg
ICAgdmlydHVhbCB2b2lkIGRpZENhbmNlbENoZWNraW5nVGV4dCgpIGNvbnN0IE9WRVJSSURFOwor
Citwcml2YXRlOgorICAgIFRleHRDaGVja2VyQ29tcGxldGlvbkltcGwodWludDY0X3QgcmVxdWVz
dElELCBjb25zdCBXZWJDb3JlOjpUZXh0Q2hlY2tpbmdSZXF1ZXN0RGF0YSYsIFdlYlBhZ2VQcm94
eSopOworCisgICAgY29uc3QgdWludDY0X3QgbV9yZXF1ZXN0SUQ7CisgICAgY29uc3QgV2ViQ29y
ZTo6VGV4dENoZWNraW5nUmVxdWVzdERhdGEgbV9yZXF1ZXN0RGF0YTsKKyAgICBXZWJQYWdlUHJv
eHkqIG1fcGFnZTsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdAorCisjZW5kaWYgLy8gVGV4
dENoZWNrZXJDb21wbGV0aW9uX2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9XZWJQYWdlUHJveHkuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94
eS5jcHAKaW5kZXggMmMzZWMwZi4uZTU0YzExZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L1dlYlBhZ2VQcm94eS5jcHAKQEAgLTMyOTYsNiArMzI5NiwyMCBAQCB2b2lkIFdlYlBhZ2VQcm94
eTo6aWdub3JlV29yZChjb25zdCBTdHJpbmcmIHdvcmQpCiAgICAgVGV4dENoZWNrZXI6Omlnbm9y
ZVdvcmQoc3BlbGxEb2N1bWVudFRhZygpLCB3b3JkKTsKIH0KIAordm9pZCBXZWJQYWdlUHJveHk6
OnJlcXVlc3RDaGVja2luZ09mU3RyaW5nKHVpbnQ2NF90IHJlcXVlc3RJRCwgVGV4dENoZWNraW5n
UmVxdWVzdERhdGEgcmVxdWVzdCkKK3sKKyAgICBUZXh0Q2hlY2tlcjo6cmVxdWVzdENoZWNraW5n
T2ZTdHJpbmcoVGV4dENoZWNrZXJDb21wbGV0aW9uSW1wbDo6Y3JlYXRlKHJlcXVlc3RJRCwgcmVx
dWVzdCwgdGhpcykpOworfQorCit2b2lkIFdlYlBhZ2VQcm94eTo6ZGlkRmluaXNoQ2hlY2tpbmdU
ZXh0KHVpbnQ2NF90IHJlcXVlc3RJRCwgY29uc3QgVmVjdG9yPFdlYkNvcmU6OlRleHRDaGVja2lu
Z1Jlc3VsdD4mIHJlc3VsdCkgY29uc3QKK3sKKyAgICBtX3Byb2Nlc3MtPnNlbmQoTWVzc2FnZXM6
OldlYlBhZ2U6OkRpZEZpbmlzaENoZWNraW5nVGV4dChyZXF1ZXN0SUQsIHJlc3VsdCksIG1fcGFn
ZUlEKTsKK30KKwordm9pZCBXZWJQYWdlUHJveHk6OmRpZENhbmNlbENoZWNraW5nVGV4dCh1aW50
NjRfdCByZXF1ZXN0SUQpIGNvbnN0Cit7CisgICAgbV9wcm9jZXNzLT5zZW5kKE1lc3NhZ2VzOjpX
ZWJQYWdlOjpEaWRDYW5jZWxDaGVja2luZ1RleHQocmVxdWVzdElEKSwgbV9wYWdlSUQpOworfQog
Ly8gT3RoZXIKIAogdm9pZCBXZWJQYWdlUHJveHk6OnNldEZvY3VzKGJvb2wgZm9jdXNlZCkKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaCBiL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaAppbmRleCA0YTZlMmM0Li4zODQwYTI5
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKKysr
IGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCkBAIC03NTMsNiArNzUz
LDEwIEBAIHB1YmxpYzoKIAogICAgIHZvaWQgZGlkUmVjZWl2ZUF1dGhlbnRpY2F0aW9uQ2hhbGxl
bmdlUHJveHkodWludDY0X3QgZnJhbWVJRCwgUGFzc1JlZlB0cjxBdXRoZW50aWNhdGlvbkNoYWxs
ZW5nZVByb3h5Pik7CiAKKyAgICBpbnQ2NF90IHNwZWxsRG9jdW1lbnRUYWcoKTsKKyAgICB2b2lk
IGRpZEZpbmlzaENoZWNraW5nVGV4dCh1aW50NjRfdCByZXF1ZXN0SUQsIGNvbnN0IFZlY3RvcjxX
ZWJDb3JlOjpUZXh0Q2hlY2tpbmdSZXN1bHQ+JikgY29uc3Q7CisgICAgdm9pZCBkaWRDYW5jZWxD
aGVja2luZ1RleHQodWludDY0X3QgcmVxdWVzdElEKSBjb25zdDsKKwogcHJpdmF0ZToKICAgICBX
ZWJQYWdlUHJveHkoUGFnZUNsaWVudCosIFBhc3NSZWZQdHI8V2ViUHJvY2Vzc1Byb3h5PiwgV2Vi
UGFnZUdyb3VwKiwgdWludDY0X3QgcGFnZUlEKTsKIApAQCAtOTM4LDcgKzk0Miw2IEBAIHByaXZh
dGU6CiAjZW5kaWYKIAogICAgIC8vIFNwZWxsaW5nIGFuZCBncmFtbWFyLgotICAgIGludDY0X3Qg
c3BlbGxEb2N1bWVudFRhZygpOwogI2lmIFVTRShVTklGSUVEX1RFWFRfQ0hFQ0tJTkcpCiAgICAg
dm9pZCBjaGVja1RleHRPZlBhcmFncmFwaChjb25zdCBTdHJpbmcmIHRleHQsIHVpbnQ2NF90IGNo
ZWNraW5nVHlwZXMsIFZlY3RvcjxXZWJDb3JlOjpUZXh0Q2hlY2tpbmdSZXN1bHQ+JiByZXN1bHRz
KTsKICNlbmRpZgpAQCAtOTUwLDYgKzk1Myw3IEBAIHByaXZhdGU6CiAgICAgdm9pZCBnZXRHdWVz
c2VzRm9yV29yZChjb25zdCBTdHJpbmcmIHdvcmQsIGNvbnN0IFN0cmluZyYgY29udGV4dCwgVmVj
dG9yPFN0cmluZz4mIGd1ZXNzZXMpOwogICAgIHZvaWQgbGVhcm5Xb3JkKGNvbnN0IFN0cmluZyYg
d29yZCk7CiAgICAgdm9pZCBpZ25vcmVXb3JkKGNvbnN0IFN0cmluZyYgd29yZCk7CisgICAgdm9p
ZCByZXF1ZXN0Q2hlY2tpbmdPZlN0cmluZyh1aW50NjRfdCByZXF1ZXN0SUQsIFdlYkNvcmU6OlRl
eHRDaGVja2luZ1JlcXVlc3REYXRhKTsKIAogICAgIHZvaWQgc2V0Rm9jdXMoYm9vbCBmb2N1c2Vk
KTsKICAgICB2b2lkIHRha2VGb2N1cyh1aW50MzJfdCBkaXJlY3Rpb24pOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5tZXNzYWdlcy5pbiBiL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkubWVzc2FnZXMuaW4KaW5kZXggZGY2MWU1
ZC4uMGYzMWM5MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQ
cm94eS5tZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVBy
b3h5Lm1lc3NhZ2VzLmluCkBAIC0yMzMsNiArMjMzLDcgQEAgbWVzc2FnZXMgLT4gV2ViUGFnZVBy
b3h5IHsKICAgICBHZXRHdWVzc2VzRm9yV29yZChXVEY6OlN0cmluZyB3b3JkLCBXVEY6OlN0cmlu
ZyBjb250ZXh0KSAtPiAoVmVjdG9yPFdURjo6U3RyaW5nPiBndWVzc2VzKQogICAgIExlYXJuV29y
ZChXVEY6OlN0cmluZyB3b3JkKTsKICAgICBJZ25vcmVXb3JkKFdURjo6U3RyaW5nIHdvcmQpOwor
ICAgIFJlcXVlc3RDaGVja2luZ09mU3RyaW5nKHVpbnQ2NF90IHJlcXVlc3RJRCwgV2ViQ29yZTo6
VGV4dENoZWNraW5nUmVxdWVzdERhdGEgcmVxdWVzdCkKIAogICAgICMgRHJhZyBhbmQgZHJvcCBt
ZXNzYWdlcwogI2lmIEVOQUJMRShEUkFHX1NVUFBPUlQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvZWZsL1RleHRDaGVja2VyRWZsLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9lZmwvVGV4dENoZWNrZXJFZmwuY3BwCmluZGV4IDIyZmQ0NzEuLjUyOWIxYmUgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9lZmwvVGV4dENoZWNrZXJFZmwuY3Bw
CisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9lZmwvVGV4dENoZWNrZXJFZmwuY3BwCkBA
IC0yOCw2ICsyOCw3IEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiVGV4dENoZWNr
ZXIuaCIKIAorI2luY2x1ZGUgIk5vdEltcGxlbWVudGVkLmgiCiAjaW5jbHVkZSAiVGV4dENoZWNr
ZXJTdGF0ZS5oIgogCiAjaWYgRU5BQkxFKFNQRUxMQ0hFQ0spCkBAIC0yOTAsNCArMjkxLDkgQEAg
dm9pZCBUZXh0Q2hlY2tlcjo6aWdub3JlV29yZChpbnQ2NF90IHNwZWxsRG9jdW1lbnRUYWcsIGNv
bnN0IFN0cmluZyYgd29yZCkKICNlbmRpZgogfQogCit2b2lkIFRleHRDaGVja2VyOjpyZXF1ZXN0
Q2hlY2tpbmdPZlN0cmluZyhQYXNzUmVmUHRyPFRleHRDaGVja2VyQ29tcGxldGlvbj4pCit7Cisg
ICAgbm90SW1wbGVtZW50ZWQoKTsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvZ3RrL1RleHRDaGVja2VyR3RrLmNwcCBiL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9ndGsvVGV4dENoZWNrZXJHdGsuY3BwCmluZGV4IDQwNWMw
ZTEuLjZiYzQxOTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9ndGsvVGV4
dENoZWNrZXJHdGsuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9ndGsvVGV4dENo
ZWNrZXJHdGsuY3BwCkBAIC0yOSw2ICsyOSw3IEBACiAKICNpbmNsdWRlICJUZXh0Q2hlY2tlclN0
YXRlLmgiCiAjaW5jbHVkZSAiV2ViVGV4dENoZWNrZXIuaCIKKyNpbmNsdWRlIDxXZWJDb3JlL05v
dEltcGxlbWVudGVkLmg+CiAKIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogIApAQCAtMTM3LDQg
KzEzOCw5IEBAIHZvaWQgVGV4dENoZWNrZXI6Omlnbm9yZVdvcmQoaW50NjRfdCBzcGVsbERvY3Vt
ZW50VGFnLCBjb25zdCBTdHJpbmcmIHdvcmQpCiAgICAgV2ViVGV4dENoZWNrZXI6OnNoYXJlZCgp
LT5jbGllbnQoKS5pZ25vcmVXb3JkKHNwZWxsRG9jdW1lbnRUYWcsIHdvcmQpOwogfQogCit2b2lk
IFRleHRDaGVja2VyOjpyZXF1ZXN0Q2hlY2tpbmdPZlN0cmluZyhQYXNzUmVmUHRyPFRleHRDaGVj
a2VyQ29tcGxldGlvbj4pCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKK30KKwogfSAvLyBuYW1l
c3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvbWFjL1Rl
eHRDaGVja2VyTWFjLm1tIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL21hYy9UZXh0Q2hlY2tl
ck1hYy5tbQppbmRleCBmNWM4Y2UyLi40NjE0YWRkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvbWFjL1RleHRDaGVja2VyTWFjLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9tYWMvVGV4dENoZWNrZXJNYWMubW0KQEAgLTM5MSw0ICszOTEsOSBAQCB2b2lkIFRl
eHRDaGVja2VyOjppZ25vcmVXb3JkKGludDY0X3Qgc3BlbGxEb2N1bWVudFRhZywgY29uc3QgU3Ry
aW5nJiB3b3JkKQogICAgIFtbTlNTcGVsbENoZWNrZXIgc2hhcmVkU3BlbGxDaGVja2VyXSBpZ25v
cmVXb3JkOndvcmQgaW5TcGVsbERvY3VtZW50V2l0aFRhZzpzcGVsbERvY3VtZW50VGFnXTsKIH0K
IAordm9pZCBUZXh0Q2hlY2tlcjo6cmVxdWVzdENoZWNraW5nT2ZTdHJpbmcoUGFzc1JlZlB0cjxU
ZXh0Q2hlY2tlckNvbXBsZXRpb24+KQoreworICAgIG5vdEltcGxlbWVudGVkKCk7Cit9CisKIH0g
Ly8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L3F0L1RleHRDaGVja2VyUXQuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL3F0L1RleHRD
aGVja2VyUXQuY3BwCmluZGV4IDRhMzMxODQuLjdlMzQzZTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9xdC9UZXh0Q2hlY2tlclF0LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvcXQvVGV4dENoZWNrZXJRdC5jcHAKQEAgLTEyNiw0ICsxMjYsOSBAQCB2b2lk
IFRleHRDaGVja2VyOjppZ25vcmVXb3JkKGludDY0X3Qgc3BlbGxEb2N1bWVudFRhZywgY29uc3Qg
U3RyaW5nJiB3b3JkKQogICAgIG5vdEltcGxlbWVudGVkKCk7CiB9CiAKK3ZvaWQgVGV4dENoZWNr
ZXI6OnJlcXVlc3RDaGVja2luZ09mU3RyaW5nKFBhc3NSZWZQdHI8VGV4dENoZWNrZXJDb21wbGV0
aW9uPikKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJL
aXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYktpdDIueGNvZGVwcm9qL3Byb2plY3Qu
cGJ4cHJvaiBiL1NvdXJjZS9XZWJLaXQyL1dlYktpdDIueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
agppbmRleCAwMDY5YTI1Li45NGYxNWMxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJL
aXQyLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYktpdDIvV2ViS2l0
Mi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0yMDcsNiArMjA3LDggQEAKIAkJMUFBM0Q3
NjIxNjUxQjdEMzAwODcxM0QwIC8qIFJlbW90ZUxheWVyVHJlZUhvc3RNZXNzYWdlcy5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMUFBM0Q3NjAxNjUxQjdE
MzAwODcxM0QwIC8qIFJlbW90ZUxheWVyVHJlZUhvc3RNZXNzYWdlcy5oICovOyB9OwogCQkxQUE0
MTdDQjEyQzAwQ0NBMDAyQkU2N0IgLyogVGV4dENoZWNrZXIuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFBQTQxN0M5MTJDMDBDQ0EwMDJCRTY3QiAvKiBU
ZXh0Q2hlY2tlci5oICovOyB9OwogCQkxQUE0MTdFRjEyQzAwRDg3MDAyQkU2N0IgLyogVGV4dENo
ZWNrZXJNYWMubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSAxQUE0MTdFRDEyQzAwRDg3MDAyQkU2N0IgLyogVGV4dENoZWNrZXJNYWMubW0gKi87IH07CisJ
CTFaWjQxN0VGMTJDMDBEODcwMDJCRTY3QiAvKiBUZXh0Q2hlY2tlckNvbXBsZXRpb24uY3BwIGlu
IFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMUJCNDE3QzkxMkMw
MENDQTAwMkJFNjdCIC8qIFRleHRDaGVja2VyQ29tcGxldGlvbi5jcHAgKi87IH07CisJCTFRUTQx
N0NCMTJDMDBDQ0EwMDJCRTY3QiAvKiBUZXh0Q2hlY2tlckNvbXBsZXRpb24uaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFDQzQxN0M5MTJDMDBDQ0EwMDJC
RTY3QiAvKiBUZXh0Q2hlY2tlckNvbXBsZXRpb24uaCAqLzsgfTsKIAkJMUFBNDFBQjUxMkMwMkVD
NDAwMkJFNjdCIC8qIEVkaXRvclN0YXRlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSAxQUE0MUFCNDEyQzAyRUM0MDAyQkU2N0IgLyogRWRpdG9yU3RhdGUu
aCAqLzsgfTsKIAkJMUFBNDc5MjMxMkE1OUZEOTAwODIzNkMzIC8qIFBsdWdpblByb2Nlc3NNYWMu
bW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxQUE0Nzky
MjEyQTU5RkQ5MDA4MjM2QzMgLyogUGx1Z2luUHJvY2Vzc01hYy5tbSAqLzsgfTsKIAkJMUFBNDc5
QjAxMkE1QTQzNjAwODIzNkMzIC8qIENhcmJvbi5mcmFtZXdvcmsgaW4gRnJhbWV3b3JrcyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxQUExQ0QwNjEwMEZBMUJBMDA3OERFQkMg
LyogQ2FyYm9uLmZyYW1ld29yayAqLzsgfTsKQEAgLTE0OTAsNiArMTQ5Miw4IEBACiAJCTFBNTBE
QjFFMTEwQTNCREMwMDBEM0ZFNSAvKiBXZWJQcm9jZXNzLmFwcCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBleHBsaWNpdEZpbGVUeXBlID0gd3JhcHBlci5hcHBsaWNhdGlvbjsgaW5jbHVk
ZUluSW5kZXggPSAwOyBwYXRoID0gV2ViUHJvY2Vzcy5hcHA7IHNvdXJjZVRyZWUgPSBCVUlMVF9Q
Uk9EVUNUU19ESVI7IH07CiAJCTFBNTk0QUI4MTEyQTFGQjYwMDlERTdDNyAvKiBXZWJVSUNsaWVu
dC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXZWJVSUNsaWVudC5j
cHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTFBNTk0QUI5MTEyQTFGQjYwMDlERTdD
NyAvKiBXZWJVSUNsaWVudC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJV
SUNsaWVudC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkxQkI0MTdDOTEyQzAwQ0NB
MDAyQkU2N0IgLyogVGV4dENoZWNrZXJDb21wbGV0aW9uLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLmNwcDsgcGF0aCA9IFRleHRDaGVja2VyQ29tcGxldGlvbi5jcHA7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CisJCTFDQzQxN0M5MTJDMDBDQ0EwMDJCRTY3QiAvKiBUZXh0Q2hlY2tl
ckNvbXBsZXRpb24uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gVGV4dENoZWNr
ZXJDb21wbGV0aW9uLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTFBNUU0REEzMTJE
M0JEM0QwMDk5QTJCQiAvKiBUZXh0Q2hlY2tlclN0YXRlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IFRleHRDaGVja2VyU3RhdGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJMUE2NDIwRTIxMkRDRTJGRjAwQ0FBRTJDIC8qIFNoYXJlYWJsZUJpdG1hcC5jcHAgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBTaGFyZWFibGVCaXRtYXAuY3BwOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkxQTY0MjBFMzEyRENFMkZGMDBDQUFFMkMgLyog
U2hhcmVhYmxlQml0bWFwLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNoYXJl
YWJsZUJpdG1hcC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMzgyMyw2ICszODI3
LDggQEAKIAkJCQk1MUE0RDVBODE2Q0FDNEZGMDAwRTYxNUUgLyogU3RhdGlzdGljc1JlcXVlc3Qu
Y3BwICovLAogCQkJCTUxNEJERUQyMTZDOThFREQwMEU0RTI1RSAvKiBTdGF0aXN0aWNzUmVxdWVz
dC5oICovLAogCQkJCTFBQTQxN0M5MTJDMDBDQ0EwMDJCRTY3QiAvKiBUZXh0Q2hlY2tlci5oICov
LAorCQkJCTFCQjQxN0M5MTJDMDBDQ0EwMDJCRTY3QiAvKiBUZXh0Q2hlY2tlckNvbXBsZXRpb24u
Y3BwICovLAorCQkJCTFDQzQxN0M5MTJDMDBDQ0EwMDJCRTY3QiAvKiBUZXh0Q2hlY2tlckNvbXBs
ZXRpb24uaCAqLywKIAkJCQkxQTBGMjlFMTEyMEI0NDQyMDA1M0QxQjkgLyogVmlzaXRlZExpbmtQ
cm92aWRlci5jcHAgKi8sCiAJCQkJMUEwRjI5RTIxMjBCNDQ0MjAwNTNEMUI5IC8qIFZpc2l0ZWRM
aW5rUHJvdmlkZXIuaCAqLywKIAkJCQk1MTJFMzUyMDEzMEI1NTAxMDBBQkQxOUEgLyogV2ViQXBw
bGljYXRpb25DYWNoZU1hbmFnZXJQcm94eS5jcHAgKi8sCkBAIC01MjQ3LDYgKzUyNTMsNyBAQAog
CQkJCTI5NkJEODVEMTUwMTlCQzMwMDcxRjQyNCAvKiBTdHJpbmdVdGlsaXRpZXMuaCBpbiBIZWFk
ZXJzICovLAogCQkJCTUxODE1QkEwMTZBNjIyMjEwMDU0NTAxRiAvKiBTeW5jTmV0d29ya1Jlc291
cmNlTG9hZGVyLmggaW4gSGVhZGVycyAqLywKIAkJCQkxQUE0MTdDQjEyQzAwQ0NBMDAyQkU2N0Ig
LyogVGV4dENoZWNrZXIuaCBpbiBIZWFkZXJzICovLAorCQkJCTFRUTQxN0NCMTJDMDBDQ0EwMDJC
RTY3QiAvKiBUZXh0Q2hlY2tlckNvbXBsZXRpb24uaCBpbiBIZWFkZXJzICovLAogCQkJCTFBNUU0
REE0MTJEM0JEM0QwMDk5QTJCQiAvKiBUZXh0Q2hlY2tlclN0YXRlLmggaW4gSGVhZGVycyAqLywK
IAkJCQkxQUFGMjYzOTE0Njg3QzM5MDA0QTFFOEEgLyogVGlsZWRDb3JlQW5pbWF0aW9uRHJhd2lu
Z0FyZWEuaCBpbiBIZWFkZXJzICovLAogCQkJCTFBRjA1RDg3MTQ2ODgzNDgwMDhCMUU4MSAvKiBU
aWxlZENvcmVBbmltYXRpb25EcmF3aW5nQXJlYVByb3h5LmggaW4gSGVhZGVycyAqLywKQEAgLTY0
NjAsNiArNjQ2Nyw3IEBACiAJCQkJMUExM0JFQjMxNjM1QTlDODAwRjE5QzAzIC8qIFN0cmluZ1Jl
ZmVyZW5jZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkyOTZCRDg1RTE1MDE5QkMzMDA3MUY0MjQg
LyogU3RyaW5nVXRpbGl0aWVzLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJNTE4MTVCOUYxNkE2MjIy
MTAwNTQ1MDFGIC8qIFN5bmNOZXR3b3JrUmVzb3VyY2VMb2FkZXIuY3BwIGluIFNvdXJjZXMgKi8s
CisJCQkJMVpaNDE3RUYxMkMwMEQ4NzAwMkJFNjdCIC8qIFRleHRDaGVja2VyQ29tcGxldGlvbi5j
cHAgaW4gU291cmNlcyAqLywKIAkJCQkxQUE0MTdFRjEyQzAwRDg3MDAyQkU2N0IgLyogVGV4dENo
ZWNrZXJNYWMubW0gaW4gU291cmNlcyAqLywKIAkJCQkxQUFGMjYzODE0Njg3QzM5MDA0QTFFOEEg
LyogVGlsZWRDb3JlQW5pbWF0aW9uRHJhd2luZ0FyZWEubW0gaW4gU291cmNlcyAqLywKIAkJCQkx
QUYwNUQ4NjE0Njg4MzQ4MDA4QjFFODEgLyogVGlsZWRDb3JlQW5pbWF0aW9uRHJhd2luZ0FyZWFQ
cm94eS5tbSBpbiBTb3VyY2VzICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJv
Y2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJFZGl0b3JDbGllbnQuY3BwIGIvU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJFZGl0b3JDbGllbnQuY3BwCmluZGV4IDkzZGZh
YjMuLmRjNGU5NDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29y
ZVN1cHBvcnQvV2ViRWRpdG9yQ2xpZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9j
ZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkVkaXRvckNsaWVudC5jcHAKQEAgLTQ0LDYgKzQ0LDcgQEAK
ICNpbmNsdWRlIDxXZWJDb3JlL0tleWJvYXJkRXZlbnQuaD4KICNpbmNsdWRlIDxXZWJDb3JlL05v
dEltcGxlbWVudGVkLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9QYWdlLmg+CisjaW5jbHVkZSA8V2Vi
Q29yZS9TcGVsbENoZWNrZXIuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1RleHRJdGVyYXRvci5oPgog
I2luY2x1ZGUgPFdlYkNvcmUvVW5kb1N0ZXAuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1VzZXJUeXBp
bmdHZXN0dXJlSW5kaWNhdG9yLmg+CkBAIC01OSw2ICs2MCwxMiBAQCB1c2luZyBuYW1lc3BhY2Ug
SFRNTE5hbWVzOwogCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAorc3RhdGljIHVpbnQ2NF90IGdlbmVy
YXRlVGV4dENoZWNraW5nUmVxdWVzdElEKCkKK3sKKyAgICBzdGF0aWMgdWludDY0X3QgdW5pcXVl
VGV4dENoZWNraW5nUmVxdWVzdElEID0gMTsKKyAgICByZXR1cm4gdW5pcXVlVGV4dENoZWNraW5n
UmVxdWVzdElEKys7Cit9CisKIHZvaWQgV2ViRWRpdG9yQ2xpZW50OjpwYWdlRGVzdHJveWVkKCkK
IHsKICAgICBkZWxldGUgdGhpczsKQEAgLTQ3MSw2ICs0NzgsMTYgQEAgdm9pZCBXZWJFZGl0b3JD
bGllbnQ6OmdldEd1ZXNzZXNGb3JXb3JkKGNvbnN0IFN0cmluZyYgd29yZCwgY29uc3QgU3RyaW5n
JiBjb250ZXgKICAgICBtX3BhZ2UtPnNlbmRTeW5jKE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6Okdl
dEd1ZXNzZXNGb3JXb3JkKHdvcmQsIGNvbnRleHQpLCBNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpH
ZXRHdWVzc2VzRm9yV29yZDo6UmVwbHkoZ3Vlc3NlcykpOwogfQogCit2b2lkIFdlYkVkaXRvckNs
aWVudDo6cmVxdWVzdENoZWNraW5nT2ZTdHJpbmcoV1RGOjpQYXNzUmVmUHRyPFRleHRDaGVja2lu
Z1JlcXVlc3Q+IHBycFJlcXVlc3QpCit7CisgICAgUmVmUHRyPFRleHRDaGVja2luZ1JlcXVlc3Q+
IHJlcXVlc3QgPSBwcnBSZXF1ZXN0OworCisgICAgdWludDY0X3QgcmVxdWVzdElEID0gZ2VuZXJh
dGVUZXh0Q2hlY2tpbmdSZXF1ZXN0SUQoKTsKKyAgICBtX3BhZ2UtPmFkZFRleHRDaGVja2luZ1Jl
cXVlc3QocmVxdWVzdElELCByZXF1ZXN0KTsKKworICAgIG1fcGFnZS0+c2VuZChNZXNzYWdlczo6
V2ViUGFnZVByb3h5OjpSZXF1ZXN0Q2hlY2tpbmdPZlN0cmluZyhyZXF1ZXN0SUQsIHJlcXVlc3Qt
PmRhdGEoKSkpOworfQorCiB2b2lkIFdlYkVkaXRvckNsaWVudDo6d2lsbFNldElucHV0TWV0aG9k
U3RhdGUoKQogewogI2lmIFBMQVRGT1JNKFFUKQpAQCAtNDg1LDExICs1MDIsNiBAQCB2b2lkIFdl
YkVkaXRvckNsaWVudDo6c2V0SW5wdXRNZXRob2RTdGF0ZShib29sKQogICAgIG5vdEltcGxlbWVu
dGVkKCk7CiB9CiAKLXZvaWQgV2ViRWRpdG9yQ2xpZW50OjpyZXF1ZXN0Q2hlY2tpbmdPZlN0cmlu
ZyhXVEY6OlBhc3NSZWZQdHI8V2ViQ29yZTo6VGV4dENoZWNraW5nUmVxdWVzdD4pCi17Ci0gICAg
bm90SW1wbGVtZW50ZWQoKTsKLX0KLQogYm9vbCBXZWJFZGl0b3JDbGllbnQ6OnN1cHBvcnRzR2xv
YmFsU2VsZWN0aW9uKCkKIHsKICNpZiBQTEFURk9STShRVCkgJiYgIWRlZmluZWQoUVRfTk9fQ0xJ
UEJPQVJEKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dl
YlBhZ2UuY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3Bw
CmluZGV4IGIwMzZlZDUuLjllZjNlZTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlBy
b2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNz
L1dlYlBhZ2UvV2ViUGFnZS5jcHAKQEAgLTM3ODAsNCArMzc4MCwzMCBAQCB2b2lkIFdlYlBhZ2U6
OnNldE1pbmltdW1MYXlvdXRXaWR0aChkb3VibGUgbWluaW11bUxheW91dFdpZHRoKQogICAgICAg
ICBjb3JlUGFnZSgpLT5tYWluRnJhbWUoKS0+dmlldygpLT5lbmFibGVBdXRvU2l6ZU1vZGUoZmFs
c2UsIEludFNpemUoKSwgSW50U2l6ZSgpKTsKIH0KIAordm9pZCBXZWJQYWdlOjphZGRUZXh0Q2hl
Y2tpbmdSZXF1ZXN0KHVpbnQ2NF90IHJlcXVlc3RJRCwgUGFzc1JlZlB0cjxXZWJDb3JlOjpUZXh0
Q2hlY2tpbmdSZXF1ZXN0PiByZXF1ZXN0KQoreworICAgIG1fcGVuZGluZ1RleHRDaGVja2luZ1Jl
cXVlc3RNYXAuYWRkKHJlcXVlc3RJRCwgcmVxdWVzdCk7Cit9CisKK3ZvaWQgV2ViUGFnZTo6ZGlk
RmluaXNoQ2hlY2tpbmdUZXh0KHVpbnQ2NF90IHJlcXVlc3RJRCwgY29uc3QgVmVjdG9yPFdlYkNv
cmU6OlRleHRDaGVja2luZ1Jlc3VsdD4mIHJlc3VsdCkKK3sKKyAgICBXZWJDb3JlOjpUZXh0Q2hl
Y2tpbmdSZXF1ZXN0KiByZXF1ZXN0ID0gbV9wZW5kaW5nVGV4dENoZWNraW5nUmVxdWVzdE1hcC5n
ZXQocmVxdWVzdElEKS5nZXQoKTsKKyAgICBpZiAoIXJlcXVlc3QpCisgICAgICAgIHJldHVybjsK
KworICAgIHJlcXVlc3QtPmRpZFN1Y2NlZWQocmVzdWx0KTsKKyAgICBtX3BlbmRpbmdUZXh0Q2hl
Y2tpbmdSZXF1ZXN0TWFwLnJlbW92ZShyZXF1ZXN0SUQpOworfQorCit2b2lkIFdlYlBhZ2U6OmRp
ZENhbmNlbENoZWNraW5nVGV4dCh1aW50NjRfdCByZXF1ZXN0SUQpCit7CisgICAgV2ViQ29yZTo6
VGV4dENoZWNraW5nUmVxdWVzdCogcmVxdWVzdCA9IG1fcGVuZGluZ1RleHRDaGVja2luZ1JlcXVl
c3RNYXAuZ2V0KHJlcXVlc3RJRCkuZ2V0KCk7CisgICAgaWYgKCFyZXF1ZXN0KQorICAgICAgICBy
ZXR1cm47CisKKyAgICByZXF1ZXN0LT5kaWRDYW5jZWwoKTsKKyAgICBtX3BlbmRpbmdUZXh0Q2hl
Y2tpbmdSZXF1ZXN0TWFwLnJlbW92ZShyZXF1ZXN0SUQpOworfQorCisKIH0gLy8gbmFtZXNwYWNl
IFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dl
YlBhZ2UuaCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmgKaW5k
ZXggOTdmNDZkYi4uY2ZkOGU4MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy9XZWJQYWdlL1dlYlBhZ2UuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBh
Z2UvV2ViUGFnZS5oCkBAIC01OSw2ICs1OSw3IEBACiAjaW5jbHVkZSA8V2ViQ29yZS9QYWdlVmlz
aWJpbGl0eVN0YXRlLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9QbGF0Zm9ybVNjcmVlbi5oPgogI2lu
Y2x1ZGUgPFdlYkNvcmUvU2Nyb2xsVHlwZXMuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL1RleHRDaGVj
a2luZy5oPgogI2luY2x1ZGUgPFdlYkNvcmUvV2ViQ29yZUtleWJvYXJkVUlNb2RlLmg+CiAjaW5j
bHVkZSA8d3RmL0hhc2hNYXAuaD4KICNpbmNsdWRlIDx3dGYvT3duUHRyLmg+CkBAIC0xMTYsOCAr
MTE3LDEwIEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICBjbGFzcyBSZXNvdXJjZVJlc3BvbnNl
OwogICAgIGNsYXNzIFJlc291cmNlUmVxdWVzdDsKICAgICBjbGFzcyBTaGFyZWRCdWZmZXI7Cisg
ICAgY2xhc3MgVGV4dENoZWNraW5nUmVxdWVzdDsKICAgICBjbGFzcyBWaXNpYmxlU2VsZWN0aW9u
OwogICAgIHN0cnVjdCBLZXlwcmVzc0NvbW1hbmQ7CisgICAgc3RydWN0IFRleHRDaGVja2luZ1Jl
c3VsdDsKIH0KIAogbmFtZXNwYWNlIFdlYktpdCB7CkBAIC02MDUsNiArNjA4LDEwIEBAIHB1Ymxp
YzoKICAgICB2b2lkIHNldE1pbmltdW1MYXlvdXRXaWR0aChkb3VibGUpOwogICAgIGRvdWJsZSBt
aW5pbXVtTGF5b3V0V2lkdGgoKSBjb25zdCB7IHJldHVybiBtX21pbmltdW1MYXlvdXRXaWR0aDsg
fQogCisgICAgdm9pZCBhZGRUZXh0Q2hlY2tpbmdSZXF1ZXN0KHVpbnQ2NF90IHJlcXVlc3RJRCwg
UGFzc1JlZlB0cjxXZWJDb3JlOjpUZXh0Q2hlY2tpbmdSZXF1ZXN0Pik7CisgICAgdm9pZCBkaWRG
aW5pc2hDaGVja2luZ1RleHQodWludDY0X3QgcmVxdWVzdElELCBjb25zdCBWZWN0b3I8V2ViQ29y
ZTo6VGV4dENoZWNraW5nUmVzdWx0PiYpOworICAgIHZvaWQgZGlkQ2FuY2VsQ2hlY2tpbmdUZXh0
KHVpbnQ2NF90IHJlcXVlc3RJRCk7CisKIHByaXZhdGU6CiAgICAgV2ViUGFnZSh1aW50NjRfdCBw
YWdlSUQsIGNvbnN0IFdlYlBhZ2VDcmVhdGlvblBhcmFtZXRlcnMmKTsKIApAQCAtNzk4LDYgKzgw
NSw4IEBAIHByaXZhdGU6CiAKICAgICBIYXNoU2V0PFBsdWdpblZpZXcqPiBtX3BsdWdpblZpZXdz
OwogCisgICAgSGFzaE1hcDx1aW50NjRfdCwgUmVmUHRyPFdlYkNvcmU6OlRleHRDaGVja2luZ1Jl
cXVlc3Q+ID4gbV9wZW5kaW5nVGV4dENoZWNraW5nUmVxdWVzdE1hcDsKKwogICAgIGJvb2wgbV91
c2VGaXhlZExheW91dDsKIAogICAgIGJvb2wgbV9kcmF3c0JhY2tncm91bmQ7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5tZXNzYWdlcy5pbiBi
L1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLm1lc3NhZ2VzLmluCmlu
ZGV4IDMzYWUzZGIuLmRjYmM4NmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nl
c3MvV2ViUGFnZS9XZWJQYWdlLm1lc3NhZ2VzLmluCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlBy
b2Nlc3MvV2ViUGFnZS9XZWJQYWdlLm1lc3NhZ2VzLmluCkBAIC0xOTMsNiArMTkzLDggQEAgbWVz
c2FnZXMgLT4gV2ViUGFnZSBMZWdhY3lSZWNlaXZlciB7CiAgICAgIyBTcGVsbGluZyBhbmQgZ3Jh
bW1hci4KICAgICBBZHZhbmNlVG9OZXh0TWlzc3BlbGxpbmcoYm9vbCBzdGFydEJlZm9yZVNlbGVj
dGlvbikKICAgICBDaGFuZ2VTcGVsbGluZ1RvV29yZChXVEY6OlN0cmluZyB3b3JkKQorICAgIERp
ZEZpbmlzaENoZWNraW5nVGV4dCh1aW50NjRfdCByZXF1ZXN0SUQsIFdURjo6VmVjdG9yPFdlYkNv
cmU6OlRleHRDaGVja2luZ1Jlc3VsdD4gcmVzdWx0KQorICAgIERpZENhbmNlbENoZWNraW5nVGV4
dCh1aW50NjRfdCByZXF1ZXN0SUQpCiAjaWYgVVNFKEFQUEtJVCkKICAgICBVcHBlcmNhc2VXb3Jk
KCkKICAgICBMb3dlcmNhc2VXb3JkKCkK
</data>
<flag name="review"
          id="210245"
          type_id="1"
          status="-"
          setter="andersca"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>190027</attachid>
            <date>2013-02-25 04:04:52 -0800</date>
            <delta_ts>2013-03-01 00:35:26 -0800</delta_ts>
            <desc>apply Anders&apos; suggestions</desc>
            <filename>spelling-asynchronous-spell-checking-WK2.patch</filename>
            <type>text/plain</type>
            <size>32290</size>
            <attacher name="Grzegorz Czajkowski">g.czajkowski</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NNYWtlTGlzdHMudHh0IGIvU291cmNlL1dlYktp
dDIvQ01ha2VMaXN0cy50eHQKaW5kZXggN2MxYzBmZC4uNTk2OGU5OCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdDIvQ01ha2VMaXN0cy50eHQKKysrIGIvU291cmNlL1dlYktpdDIvQ01ha2VMaXN0
cy50eHQKQEAgLTI0NCw2ICsyNDQsNyBAQCBzZXQoV2ViS2l0Ml9TT1VSQ0VTCiAgICAgVUlQcm9j
ZXNzL1BhZ2VWaWV3cG9ydENvbnRyb2xsZXIuY3BwCiAgICAgVUlQcm9jZXNzL1Jlc3BvbnNpdmVu
ZXNzVGltZXIuY3BwCiAgICAgVUlQcm9jZXNzL1N0YXRpc3RpY3NSZXF1ZXN0LmNwcAorICAgIFVJ
UHJvY2Vzcy9UZXh0Q2hlY2tlckNvbXBsZXRpb24uY3BwCiAgICAgVUlQcm9jZXNzL1Zpc2l0ZWRM
aW5rUHJvdmlkZXIuY3BwCiAgICAgVUlQcm9jZXNzL1dlYkFwcGxpY2F0aW9uQ2FjaGVNYW5hZ2Vy
UHJveHkuY3BwCiAgICAgVUlQcm9jZXNzL1dlYkJhY2tGb3J3YXJkTGlzdC5jcHAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpp
bmRleCAyOWMwNDdhLi40YmMzMDYxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VM
b2cKKysrIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTI5IEBACisyMDEz
LTAyLTI1ICBHcnplZ29yeiBDemFqa293c2tpICA8Zy5jemFqa293c2tpQHNhbXN1bmcuY29tPiwg
TWFyaXVzeiBHcnplZ29yY3p5ayA8bWFyaXVzei5nQHNhbXN1bmcuY29tPgorCisgICAgICAgIFtX
SzJdIEFzeW5jaHJvbm91cyBzcGVsbCBjaGVja2luZyBpbXBsZW1lbnRhdGlvbgorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTA4MTcyCisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQXNzb2NpYXRlIHRoZSBhYnN0
cmFjdCAnV2ViQ29yZTo6VGV4dENoZWNraW5nUmVxdWVzdCcgb2JqZWN0IHdpdGggdGhlIHVuaXF1
ZSBpZGVudGlmaWVyCisgICAgICAgIG9uIFdlYlByb2Nlc3Mgc2lkZS4gVGhlIHJlcXVlc3QgZGF0
YSBmcm9tIHRoZSAnVGV4dENoZWNraW5nUmVxdWVzdCcgYXJlIHJldHJpZXZlZCBhbmQKKyAgICAg
ICAgcGFzc2VkIHRvIHRoZSBVSVByb2Nlc3MuIFRoZSBXSzIgY2xpZW50IChUZXh0Q2hlY2tlcntH
dGsvTWFjL0VmbC9RdH0uY3BwKSBnZXRzCisgICAgICAgIHRoZSAnVGV4dENoZWNrZXJDb21wbGV0
aW9uJyBvYmplY3Qgd2l0aCB0aGUgcmVxdWVzdCBkYXRhIGFuZCBwb3NzaWJpbGl0eSB0byBub3Rp
ZnkKKyAgICAgICAgdGhlIFdlYlByb2Nlc3MgYWJvdXQgdGhlIHNwZWxsaW5nIHJlc3VsdHMuCisg
ICAgICAgIEZpbmFsbHksIHRoZSBXZWJQYWdlIG9iamVjdCBjYWxscyBvbiB0aGUgcHJvcGVyICdU
ZXh0Q2hlY2tpbmdSZXF1ZXN0JyBvYmplY3QKKyAgICAgICAgZGlkU3VjY2Vzcy9kaWRDYW5jZWwg
bWV0aG9kIHRvIG5vdGlmeSB0aGUgV2ViQ29yZSBhYm91dCB0aGUgc3BlbGxpbmcgcmVzdWx0Lgor
CisgICAgICAgICogQ01ha2VMaXN0cy50eHQ6CisgICAgICAgICogR05VbWFrZWZpbGUubGlzdC5h
bToKKyAgICAgICAgQWRkICdUZXh0Q2hlY2tlckNvbXBsZXRpb24ue2gvY3BwfScgdG8gdGhlIFdl
YktpdDIgY21ha2UgYmFzZWQgYW5kCisgICAgICAgIFdLMi1HdGsrIGJ1aWxkcy4KKworICAgICAg
ICAqIFNjcmlwdHMvd2Via2l0Mi9tZXNzYWdlcy5weToKKyAgICAgICAgKGhlYWRlcnNfZm9yX3R5
cGUpOgorICAgICAgICBBZGQgZXhjZXB0aW9uIGZvciAnVGV4dENoZWNraW5nUmVxdWVzdERhdGEn
IGNsYXNzIHRvIHByb3Blcmx5IGZpbmQgaGVhZGVyCisgICAgICAgIGZpbGUgZm9yIGl0LgorCisg
ICAgICAgICogU2hhcmVkL1dlYkNvcmVBcmd1bWVudENvZGVycy5jcHA6CisgICAgICAgIChDb3Jl
SVBDOjo6OmVuY29kZSk6CisgICAgICAgIChDb3JlSVBDOjo6OmRlY29kZSk6CisgICAgICAgICog
U2hhcmVkL1dlYkNvcmVBcmd1bWVudENvZGVycy5oOgorICAgICAgICBUZWFjaCAnQXJndW1lbnRD
b2RlcicgaG93IHRvIGVuY29kZS9kZWNvZGUgJ1RleHRDaGVja2luZ1JlcXVlc3REYXRhJyBjbGFz
cy4KKworICAgICAgICAqIFRhcmdldC5wcmk6CisgICAgICAgIEFkZCAnVGV4dENoZWNrZXJDb21w
bGV0aW9uLntoL2NwcH0nIHRvIHRoZSBXSzItUXQgYnVpbGQuCisKKyAgICAgICAgKiBVSVByb2Nl
c3MvVGV4dENoZWNrZXIuaDoKKyAgICAgICAgKFRleHRDaGVja2VyKToKKyAgICAgICAgQWRkICdy
ZXF1ZXN0Q2hlY2tpbmdPZlN0cmluZycgbWV0aG9kIHRvIHRoZSBUZXh0Q2hlY2tlcidzIGludGVy
ZmFjZS4KKworICAgICAgICAqIFVJUHJvY2Vzcy9UZXh0Q2hlY2tlckNvbXBsZXRpb24uY3BwOiBB
ZGRlZC4KKyAgICAgICAgKFdlYktpdCk6CisgICAgICAgIChXZWJLaXQ6OlRleHRDaGVja2VyQ29t
cGxldGlvbjo6Y3JlYXRlKToKKyAgICAgICAgKFdlYktpdDo6VGV4dENoZWNrZXJDb21wbGV0aW9u
OjpUZXh0Q2hlY2tlckNvbXBsZXRpb24pOgorCisgICAgICAgIChXZWJLaXQ6OlRleHRDaGVja2Vy
Q29tcGxldGlvbjo6c3BlbGxEb2N1bWVudFRhZyk6CisgICAgICAgIFJldHVybiB0aGUgV2ViUGFn
ZVByb3h5J3Mgc3BlbGxEb2N1bWVudFRhZyBhcyB0aGUgY2xpZW50IG1pZ2h0IGJlCisgICAgICAg
IGludGVyZXN0ZWQgaW4gZnJvbSB3aGljaCBwYWdlIHRoZSByZXF1ZXN0IGNhbWUuCisKKyAgICAg
ICAgKFdlYktpdDo6VGV4dENoZWNrZXJDb21wbGV0aW9uOjp0ZXh0Q2hlY2tpbmdSZXF1ZXN0RGF0
YSk6CisgICAgICAgIEFsbG93IHRvIHJldHJpZXZlICdUZXh0Q2hlY2tpbmdSZXF1ZXN0RGF0YScg
b2JqZWN0LgorCisgICAgICAgIChXZWJLaXQ6OlRleHRDaGVja2VyQ29tcGxldGlvbjo6ZGlkRmlu
aXNoQ2hlY2tpbmdUZXh0KToKKyAgICAgICAgKFdlYktpdDo6VGV4dENoZWNrZXJDb21wbGV0aW9u
OjpkaWRDYW5jZWxDaGVja2luZ1RleHQpOgorICAgICAgICBOb3RpZnkgdGhlICdXZWJQYWdlUHJv
eHknIG9iamVjdCB0aGF0IHRoZSBnaXZlbiByZXF1ZXN0IGhhcyBiZWVuCisgICAgICAgIGhhbmRs
ZWQgb3IgY2FuY2VsZWQuCisKKyAgICAgICAgKiBVSVByb2Nlc3MvVGV4dENoZWNrZXJDb21wbGV0
aW9uLmg6IEFkZGVkLgorICAgICAgICAoV2ViS2l0KToKKyAgICAgICAgKFRleHRDaGVja2VyQ29t
cGxldGlvbik6CisgICAgICAgIEludHJvZHVjZSBhIG5ldyBjbGFzcyBmb3IgV0syIHRvIHJldHJp
ZXZlIHRoZSByZXF1ZXN0IGRhdGEgYW5kCisgICAgICAgIGNhbGwgZGlkRmluaXNoQ2hlY2tpbmdU
ZXh0L2RpZENhbmNlbENoZWNraW5nVGV4dC4KKworICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQYWdl
UHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OnJlcXVlc3RDaGVja2lu
Z09mU3RyaW5nKToKKyAgICAgICAgQ3JlYXRlICdUZXh0Q2hlY2tlckNvbXBsZXRpb24nIG9iamVj
dCBhbmQgcGFzcyBpdAorICAgICAgICB0byB0aGUgJ1RleHRDaGVja2VyOjpyZXF1ZXN0Q2hlY2tp
bmdPZlN0cmluZycgbWV0aG9kLgorCisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6ZGlk
RmluaXNoQ2hlY2tpbmdUZXh0KToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5OjpkaWRD
YW5jZWxDaGVja2luZ1RleHQpOgorICAgICAgICBTZW5kIHRoZSBtZXNzYWdlcyB0byBXZWJQcm9j
ZXNzIHRoYXQgdGhlIGdpdmVuIHJlcXVlc3QgaGFzIGJlZW4KKyAgICAgICAgaGFuZGxlZCBvciBj
YW5jZWxlZC4KKworICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaDoKKyAgICAgICAg
KFdlYlBhZ2VQcm94eSk6CisgICAgICAgIEFkZCBwdWJsaWMgZGVjbGFyYXRpb25zIGZvciAnZGlk
RmluaXNoQ2hlY2tpbmdUZXh0JywgJ2RpZENhbmNlbENoZWNraW5nVGV4dCcuCisgICAgICAgIFRo
ZSAncmVxdWVzdENoZWNraW5nT2ZTdHJpbmcnIHdhcyBjaGFuZ2VkIGFzIHRoZSBwcml2YXRlIG1l
bWJlci4KKyAgICAgICAgTW92ZSB0aGUgJ3NwZWxsRG9jdW1lbnRUYWcoKScgbWV0aG9kIHRvIHRv
IHRoZSBwdWJsaWMgc2VjdGlvbiB0byBiZQorICAgICAgICBhY2Nlc3NpYmxlIGZyb20gJ1RleHRD
aGVja2VyQ29tcGxldGlvbicgY2xhc3MuCisKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUGFnZVBy
b3h5Lm1lc3NhZ2VzLmluOgorICAgICAgICBBIG5ldyBlbnRyeSBmb3IgJ1JlcXVlc3RDaGVja2lu
Z09mU3RyaW5nJy4KKworICAgICAgICAqIFVJUHJvY2Vzcy9lZmwvVGV4dENoZWNrZXJFZmwuY3Bw
OgorICAgICAgICAoV2ViS2l0OjpUZXh0Q2hlY2tlcjo6cmVxdWVzdENoZWNraW5nT2ZTdHJpbmcp
OgorICAgICAgICAoV2ViS2l0KToKKyAgICAgICAgKiBVSVByb2Nlc3MvZ3RrL1RleHRDaGVja2Vy
R3RrLmNwcDoKKyAgICAgICAgKFdlYktpdDo6VGV4dENoZWNrZXI6OnJlcXVlc3RDaGVja2luZ09m
U3RyaW5nKToKKyAgICAgICAgKFdlYktpdCk6CisgICAgICAgICogVUlQcm9jZXNzL21hYy9UZXh0
Q2hlY2tlck1hYy5tbToKKyAgICAgICAgKFdlYktpdDo6VGV4dENoZWNrZXI6OnJlcXVlc3RDaGVj
a2luZ09mU3RyaW5nKToKKyAgICAgICAgKFdlYktpdCk6CisgICAgICAgICogVUlQcm9jZXNzL3F0
L1RleHRDaGVja2VyUXQuY3BwOgorICAgICAgICAoV2ViS2l0OjpUZXh0Q2hlY2tlcjo6cmVxdWVz
dENoZWNraW5nT2ZTdHJpbmcpOgorICAgICAgICAoV2ViS2l0KToKKyAgICAgICAgQWRkIGR1bW15
IGltcGxlbWVudGF0aW9ucyBmb3IgJ3JlcXVlc3RDaGVja2luZ09mU3RyaW5nJy4KKworICAgICAg
ICAqIFdlYktpdDIueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgQWRkICdUZXh0
Q2hlY2tlckNvbXBsZXRpb24ue2gvY3BwfSB0byBNYWMgYnVpbGQuCisKKyAgICAgICAgKiBXZWJQ
cm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkVkaXRvckNsaWVudC5jcHA6CisgICAgICAgIChXZWJL
aXQ6OmdlbmVyYXRlVGV4dENoZWNraW5nUmVxdWVzdElEKToKKyAgICAgICAgSGVscGVyIGZ1bmN0
aW9uIHRvIGdlbmVyYXRlIHRoZSB1bmlxdWUgaWRlbnRpZmllciBmb3IgdGhlIGFic3RyYWN0Cisg
ICAgICAgICdUZXh0Q2hlY2tpbmdSZXF1ZXN0JyBvYmplY3QuCisKKyAgICAgICAgKFdlYktpdDo6
V2ViRWRpdG9yQ2xpZW50OjpyZXF1ZXN0Q2hlY2tpbmdPZlN0cmluZyk6CisgICAgICAgIEFzc29j
aWF0ZSAnVGV4dENoZWNraW5nUmVxdWVzdCcgd2l0aCB0aGUgdW5pcXVlIGlkZW50aWZpZXIgYW5k
IGFkZCB0aGVtCisgICAgICAgIHRvIHRoZSBtYXAgb2JqZWN0LgorICAgICAgICBHZXQgdGhlIHJl
cXVlc3QgZGF0YSBhbmQgc2VuZCBpdCB0byB0aGUgVUlQcm9jZXNzLgorCisgICAgICAgICogV2Vi
UHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjph
ZGRUZXh0Q2hlY2tpbmdSZXF1ZXN0KToKKyAgICAgICAgQWRkIHRoZSBpZGVudGlmaWVyIGFuZCB0
aGUgcmVxdWVzdCB0byB0aGUgbWFwIG9iamVjdC4KKworICAgICAgICAoV2ViS2l0OjpXZWJQYWdl
OjpkaWRGaW5pc2hDaGVja2luZ1RleHQpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjpkaWRD
YW5jZWxDaGVja2luZ1RleHQpOgorICAgICAgICBDYWxsIGRpZFN1Y2NlZWQvZGlkQ2FuY2VsIG9u
IHRoZSAnVGV4dENoZWNraW5nUmVxdWVzdCcgdG8gbm90aWZ5IHRoZSBXZWJDb3JlCisgICAgICAg
IGFib3V0IHNwZWxsY2hla2luZyByZXN1bHRzLgorICAgICAgICBSZW1vdmUgdGhlIHJlcXVlc3Qg
ZnJvbSB0aGUgbWFwIG9iamVjdC4KKworICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJQ
YWdlLmg6CisgICAgICAgIChXZWJQYWdlKToKKyAgICAgICAgQWRkIGRlY2xhcmF0aW9ucyBmb3Ig
J2FkZFRleHRDaGVja2luZ1JlcXVlc3QnLCAnZGlkRmluaXNoQ2hlY2tpbmdUZXh0JyBhbmQKKyAg
ICAgICAgJ2RpZENhbmNlbENoZWNraW5nVGV4dC4nCisKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dl
YlBhZ2UvV2ViUGFnZS5tZXNzYWdlcy5pbjoKKyAgICAgICAgQWRkIGEgbmV3IGVudHJ5IGZvciBE
aWRGaW5pc2hDaGVja2luZ1RleHQsIERpZENhbmNlbENoZWNraW5nVGV4dC4KKwogMjAxMy0wMi0y
NCAgQW5kcmVhcyBLbGluZyAgPGFrbGluZ0BhcHBsZS5jb20+CiAKICAgICAgICAgUmVkdWNlIGlu
Y2x1ZGUgZ3JhcGggb2YgSlNET01CaW5kaW5nLmgKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQy
L0dOVW1ha2VmaWxlLmxpc3QuYW0gYi9Tb3VyY2UvV2ViS2l0Mi9HTlVtYWtlZmlsZS5saXN0LmFt
CmluZGV4IDJiMjMxMTMuLjI3ZTQxNzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL0dOVW1h
a2VmaWxlLmxpc3QuYW0KKysrIGIvU291cmNlL1dlYktpdDIvR05VbWFrZWZpbGUubGlzdC5hbQpA
QCAtODU2LDYgKzg1Niw4IEBAIHdlYmtpdDJfc291cmNlcyArPSBcCiAJU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL3NvdXAvV2ViU291cFJlcXVlc3RNYW5hZ2VyUHJveHkuY3BwIFwKIAlTb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3Mvc291cC9XZWJTb3VwUmVxdWVzdE1hbmFnZXJQcm94eS5oIFwKIAlT
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvVGV4dENoZWNrZXIuaCBcCisJU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL1RleHRDaGVja2VyQ29tcGxldGlvbi5oIFwKKwlTb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvVGV4dENoZWNrZXJDb21wbGV0aW9uLmNwcCBcCiAJU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL1Zpc2l0ZWRMaW5rUHJvdmlkZXIuY3BwIFwKIAlTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
VmlzaXRlZExpbmtQcm92aWRlci5oIFwKIAlTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViQXBw
bGljYXRpb25DYWNoZU1hbmFnZXJQcm94eS5oIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQy
L1NjcmlwdHMvd2Via2l0Mi9tZXNzYWdlcy5weSBiL1NvdXJjZS9XZWJLaXQyL1NjcmlwdHMvd2Vi
a2l0Mi9tZXNzYWdlcy5weQppbmRleCA0NjdmMzM3Li5iNjkwYTAxIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0Mi9TY3JpcHRzL3dlYmtpdDIvbWVzc2FnZXMucHkKKysrIGIvU291cmNlL1dlYktp
dDIvU2NyaXB0cy93ZWJraXQyL21lc3NhZ2VzLnB5CkBAIC00MDUsNiArNDA1LDcgQEAgZGVmIGhl
YWRlcnNfZm9yX3R5cGUodHlwZSk6CiAgICAgICAgICdXZWJDb3JlOjpLZXlwcmVzc0NvbW1hbmQn
OiBbJzxXZWJDb3JlL0tleWJvYXJkRXZlbnQuaD4nXSwKICAgICAgICAgJ1dlYkNvcmU6OkZpbGVD
aG9vc2VyU2V0dGluZ3MnOiBbJzxXZWJDb3JlL0ZpbGVDaG9vc2VyLmg+J10sCiAgICAgICAgICdX
ZWJDb3JlOjpQbHVnaW5JbmZvJzogWyc8V2ViQ29yZS9QbHVnaW5EYXRhLmg+J10sCisgICAgICAg
ICdXZWJDb3JlOjpUZXh0Q2hlY2tpbmdSZXF1ZXN0RGF0YSc6IFsnPFdlYkNvcmUvVGV4dENoZWNr
aW5nLmg+J10sCiAgICAgICAgICdXZWJDb3JlOjpUZXh0Q2hlY2tpbmdSZXN1bHQnOiBbJzxXZWJD
b3JlL1RleHRDaGVja2VyQ2xpZW50Lmg+J10sCiAgICAgICAgICdXZWJDb3JlOjpWaWV3cG9ydEF0
dHJpYnV0ZXMnOiBbJzxXZWJDb3JlL1ZpZXdwb3J0QXJndW1lbnRzLmg+J10sCiAgICAgICAgICdX
ZWJLaXQ6OkluamVjdGVkQnVuZGxlVXNlck1lc3NhZ2VFbmNvZGVyJzogW10sCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmNwcCBiL1NvdXJj
ZS9XZWJLaXQyL1NoYXJlZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMuY3BwCmluZGV4IDRmNjBjNDUu
LmFlY2MyZTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJDb3JlQXJndW1l
bnRDb2RlcnMuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJDb3JlQXJndW1lbnRD
b2RlcnMuY3BwCkBAIC04MjksNiArODI5LDM1IEBAIGJvb2wgQXJndW1lbnRDb2RlcjxHcmFtbWFy
RGV0YWlsPjo6ZGVjb2RlKEFyZ3VtZW50RGVjb2RlciYgZGVjb2RlciwgR3JhbW1hckRldGFpCiAg
ICAgcmV0dXJuIHRydWU7CiB9CiAKK3ZvaWQgQXJndW1lbnRDb2RlcjxUZXh0Q2hlY2tpbmdSZXF1
ZXN0RGF0YT46OmVuY29kZShBcmd1bWVudEVuY29kZXImIGVuY29kZXIsIGNvbnN0IFRleHRDaGVj
a2luZ1JlcXVlc3REYXRhJiByZXF1ZXN0KQoreworICAgIGVuY29kZXIgPDwgcmVxdWVzdC5zZXF1
ZW5jZSgpOworICAgIGVuY29kZXIgPDwgcmVxdWVzdC50ZXh0KCk7CisgICAgZW5jb2RlciA8PCBy
ZXF1ZXN0Lm1hc2soKTsKKyAgICBlbmNvZGVyLmVuY29kZUVudW0ocmVxdWVzdC5wcm9jZXNzVHlw
ZSgpKTsKK30KKworYm9vbCBBcmd1bWVudENvZGVyPFRleHRDaGVja2luZ1JlcXVlc3REYXRhPjo6
ZGVjb2RlKEFyZ3VtZW50RGVjb2RlciYgZGVjb2RlciwgVGV4dENoZWNraW5nUmVxdWVzdERhdGEm
IHJlcXVlc3QpCit7CisgICAgaW50IHNlcXVlbmNlOworICAgIGlmICghZGVjb2Rlci5kZWNvZGUo
c2VxdWVuY2UpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICBTdHJpbmcgdGV4dDsKKyAg
ICBpZiAoIWRlY29kZXIuZGVjb2RlKHRleHQpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAg
ICBUZXh0Q2hlY2tpbmdUeXBlTWFzayBtYXNrOworICAgIGlmICghZGVjb2Rlci5kZWNvZGUobWFz
aykpCisgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgIFRleHRDaGVja2luZ1Byb2Nlc3NUeXBl
IHByb2Nlc3NUeXBlOworICAgIGlmICghZGVjb2Rlci5kZWNvZGVFbnVtKHByb2Nlc3NUeXBlKSkK
KyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgcmVxdWVzdCA9IFRleHRDaGVja2luZ1JlcXVl
c3REYXRhKHNlcXVlbmNlLCB0ZXh0LCBtYXNrLCBwcm9jZXNzVHlwZSk7CisgICAgcmV0dXJuIHRy
dWU7Cit9CiAKIHZvaWQgQXJndW1lbnRDb2RlcjxUZXh0Q2hlY2tpbmdSZXN1bHQ+OjplbmNvZGUo
QXJndW1lbnRFbmNvZGVyJiBlbmNvZGVyLCBjb25zdCBUZXh0Q2hlY2tpbmdSZXN1bHQmIHJlc3Vs
dCkKIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJDb3JlQXJndW1lbnRD
b2RlcnMuaCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMuaApp
bmRleCAwZDhlYjc2Li5lOTE0NzRkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQv
V2ViQ29yZUFyZ3VtZW50Q29kZXJzLmgKKysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYkNv
cmVBcmd1bWVudENvZGVycy5oCkBAIC00OSw2ICs0OSw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsK
ICAgICBjbGFzcyBSZXNvdXJjZUVycm9yOwogICAgIGNsYXNzIFJlc291cmNlUmVxdWVzdDsKICAg
ICBjbGFzcyBSZXNvdXJjZVJlc3BvbnNlOworICAgIGNsYXNzIFRleHRDaGVja2luZ1JlcXVlc3RE
YXRhOwogICAgIGNsYXNzIFVzZXJTdHlsZVNoZWV0OwogICAgIGNsYXNzIFVzZXJTY3JpcHQ7CiAg
ICAgc3RydWN0IENvbXBvc2l0aW9uVW5kZXJsaW5lOwpAQCAtMjMzLDYgKzIzNCwxMSBAQCB0ZW1w
bGF0ZTw+IHN0cnVjdCBBcmd1bWVudENvZGVyPFdlYkNvcmU6OkdyYW1tYXJEZXRhaWw+IHsKICAg
ICBzdGF0aWMgYm9vbCBkZWNvZGUoQXJndW1lbnREZWNvZGVyJiwgV2ViQ29yZTo6R3JhbW1hckRl
dGFpbCYpOwogfTsKIAordGVtcGxhdGU8PiBzdHJ1Y3QgQXJndW1lbnRDb2RlcjxXZWJDb3JlOjpU
ZXh0Q2hlY2tpbmdSZXF1ZXN0RGF0YT4geworICAgIHN0YXRpYyB2b2lkIGVuY29kZShBcmd1bWVu
dEVuY29kZXImLCBjb25zdCBXZWJDb3JlOjpUZXh0Q2hlY2tpbmdSZXF1ZXN0RGF0YSYpOworICAg
IHN0YXRpYyBib29sIGRlY29kZShBcmd1bWVudERlY29kZXImLCBXZWJDb3JlOjpUZXh0Q2hlY2tp
bmdSZXF1ZXN0RGF0YSYpOworfTsKKwogdGVtcGxhdGU8PiBzdHJ1Y3QgQXJndW1lbnRDb2RlcjxX
ZWJDb3JlOjpUZXh0Q2hlY2tpbmdSZXN1bHQ+IHsKICAgICBzdGF0aWMgdm9pZCBlbmNvZGUoQXJn
dW1lbnRFbmNvZGVyJiwgY29uc3QgV2ViQ29yZTo6VGV4dENoZWNraW5nUmVzdWx0Jik7CiAgICAg
c3RhdGljIGJvb2wgZGVjb2RlKEFyZ3VtZW50RGVjb2RlciYsIFdlYkNvcmU6OlRleHRDaGVja2lu
Z1Jlc3VsdCYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVGFyZ2V0LnByaSBiL1NvdXJj
ZS9XZWJLaXQyL1RhcmdldC5wcmkKaW5kZXggY2U2YzA4MS4uYTI1MTQ3OCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdDIvVGFyZ2V0LnByaQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9UYXJnZXQucHJp
CkBAIC0yMzMsNiArMjMzLDcgQEAgSEVBREVSUyArPSBcCiAgICAgVUlQcm9jZXNzL1N0YXRpc3Rp
Y3NSZXF1ZXN0LmggXAogICAgIFVJUHJvY2Vzcy9TdG9yYWdlL1N0b3JhZ2VNYW5hZ2VyLmggXAog
ICAgIFVJUHJvY2Vzcy9UZXh0Q2hlY2tlci5oIFwKKyAgICBVSVByb2Nlc3MvVGV4dENoZWNrZXJD
b21wbGV0aW9uLmggXAogICAgIFVJUHJvY2Vzcy9WaXNpdGVkTGlua1Byb3ZpZGVyLmggXAogICAg
IFVJUHJvY2Vzcy9XZWJBcHBsaWNhdGlvbkNhY2hlTWFuYWdlclByb3h5LmggXAogICAgIFVJUHJv
Y2Vzcy9XZWJCYWNrRm9yd2FyZExpc3QuaCBcCkBAIC01NjQsNiArNTY1LDcgQEAgU09VUkNFUyAr
PSBcCiAgICAgVUlQcm9jZXNzL0ZpbmRJbmRpY2F0b3IuY3BwIFwKICAgICBVSVByb2Nlc3MvR2Vv
bG9jYXRpb25QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eS5jcHAgXAogICAgIFVJUHJvY2Vz
cy9HZW9sb2NhdGlvblBlcm1pc3Npb25SZXF1ZXN0UHJveHkuY3BwIFwKKyAgICBVSVByb2Nlc3Mv
VGV4dENoZWNrZXJDb21wbGV0aW9uLmNwcCBcCiAgICAgVUlQcm9jZXNzL0xhdW5jaGVyL1Byb2Nl
c3NMYXVuY2hlci5jcHAgXAogICAgIFVJUHJvY2Vzcy9MYXVuY2hlci9xdC9Qcm9jZXNzTGF1bmNo
ZXJRdC5jcHAgXAogICAgIFVJUHJvY2Vzcy9Ob3RpZmljYXRpb25zL05vdGlmaWNhdGlvblBlcm1p
c3Npb25SZXF1ZXN0LmNwcCBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
VGV4dENoZWNrZXIuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9UZXh0Q2hlY2tlci5oCmlu
ZGV4IDQ5YjVhNDguLmExNmNiMTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9UZXh0Q2hlY2tlci5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9UZXh0Q2hlY2tl
ci5oCkBAIC0yNiw2ICsyNiw3IEBACiAjaWZuZGVmIFRleHRDaGVja2VyX2gKICNkZWZpbmUgVGV4
dENoZWNrZXJfaAogCisjaW5jbHVkZSAiVGV4dENoZWNrZXJDb21wbGV0aW9uLmgiCiAjaW5jbHVk
ZSA8V2ViQ29yZS9FZGl0b3JDbGllbnQuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1RleHRDaGVja2Vy
Q2xpZW50Lmg+CiAKQEAgLTcyLDYgKzczLDcgQEAgcHVibGljOgogICAgIHN0YXRpYyB2b2lkIGdl
dEd1ZXNzZXNGb3JXb3JkKGludDY0X3Qgc3BlbGxEb2N1bWVudFRhZywgY29uc3QgU3RyaW5nJiB3
b3JkLCBjb25zdCBTdHJpbmcmIGNvbnRleHQsIFZlY3RvcjxTdHJpbmc+JiBndWVzc2VzKTsKICAg
ICBzdGF0aWMgdm9pZCBsZWFybldvcmQoaW50NjRfdCBzcGVsbERvY3VtZW50VGFnLCBjb25zdCBT
dHJpbmcmIHdvcmQpOwogICAgIHN0YXRpYyB2b2lkIGlnbm9yZVdvcmQoaW50NjRfdCBzcGVsbERv
Y3VtZW50VGFnLCBjb25zdCBTdHJpbmcmIHdvcmQpOworICAgIHN0YXRpYyB2b2lkIHJlcXVlc3RD
aGVja2luZ09mU3RyaW5nKFBhc3NSZWZQdHI8VGV4dENoZWNrZXJDb21wbGV0aW9uPik7CiB9Owog
CiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9UZXh0Q2hlY2tlckNvbXBsZXRpb24uY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L1RleHRDaGVja2VyQ29tcGxldGlvbi5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMC4uMWRkNDJkZQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9UZXh0Q2hlY2tlckNvbXBsZXRpb24uY3BwCkBAIC0wLDAgKzEsNjggQEAKKy8qCisgKiBDb3B5
cmlnaHQgKEMpIDIwMTMgU2Ftc3VuZyBFbGVjdHJvbmljcworICoKKyAqIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICog
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBj
b2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlz
dHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIgaW4gdGhlCisgKiBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlh
bHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUg
SVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKKyAq
ICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNI
QU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBE
SVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUIEhPTERFUiBPUgorICog
Q09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5U
QUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRF
IEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9S
IEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkK
KyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwg
T1IgVE9SVCAoSU5DTFVESU5HCisgKiBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJ
TiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMKKyAqIFNPRlRXQVJFLCBFVkVOIElGIEFE
VklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRl
ICJjb25maWcuaCIKKyNpbmNsdWRlICJUZXh0Q2hlY2tlckNvbXBsZXRpb24uaCIKKwordXNpbmcg
bmFtZXNwYWNlIFdlYkNvcmU7CisKK25hbWVzcGFjZSBXZWJLaXQgeworCitQYXNzUmVmUHRyPFRl
eHRDaGVja2VyQ29tcGxldGlvbj4gVGV4dENoZWNrZXJDb21wbGV0aW9uOjpjcmVhdGUodWludDY0
X3QgcmVxdWVzdElELCBjb25zdCBUZXh0Q2hlY2tpbmdSZXF1ZXN0RGF0YSYgcmVxdWVzdERhdGEs
IFdlYlBhZ2VQcm94eSogcGFnZSkKK3sKKyAgICByZXR1cm4gYWRvcHRSZWYobmV3IFRleHRDaGVj
a2VyQ29tcGxldGlvbihyZXF1ZXN0SUQsIHJlcXVlc3REYXRhLCBwYWdlKSk7Cit9CisKK1RleHRD
aGVja2VyQ29tcGxldGlvbjo6VGV4dENoZWNrZXJDb21wbGV0aW9uKHVpbnQ2NF90IHJlcXVlc3RJ
RCwgY29uc3QgVGV4dENoZWNraW5nUmVxdWVzdERhdGEmIHJlcXVlc3REYXRhLCBXZWJQYWdlUHJv
eHkqIHBhZ2UpCisgICAgOiBtX3JlcXVlc3RJRChyZXF1ZXN0SUQpCisgICAgLCBtX3JlcXVlc3RE
YXRhKHJlcXVlc3REYXRhKQorICAgICwgbV9wYWdlKHBhZ2UpCit7Cit9CisKK2NvbnN0IFRleHRD
aGVja2luZ1JlcXVlc3REYXRhJiBUZXh0Q2hlY2tlckNvbXBsZXRpb246OnRleHRDaGVja2luZ1Jl
cXVlc3REYXRhKCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV9yZXF1ZXN0RGF0YTsKK30KKworaW50
NjRfdCBUZXh0Q2hlY2tlckNvbXBsZXRpb246OnNwZWxsRG9jdW1lbnRUYWcoKQoreworICAgIHJl
dHVybiBtX3BhZ2UtPnNwZWxsRG9jdW1lbnRUYWcoKTsKK30KKwordm9pZCBUZXh0Q2hlY2tlckNv
bXBsZXRpb246OmRpZEZpbmlzaENoZWNraW5nVGV4dChjb25zdCBWZWN0b3I8VGV4dENoZWNraW5n
UmVzdWx0PiYgcmVzdWx0KSBjb25zdAoreworICAgIGlmIChyZXN1bHQuaXNFbXB0eSgpKQorICAg
ICAgICBkaWRDYW5jZWxDaGVja2luZ1RleHQoKTsKKworICAgIG1fcGFnZS0+ZGlkRmluaXNoQ2hl
Y2tpbmdUZXh0KG1fcmVxdWVzdElELCByZXN1bHQpOworfQorCit2b2lkIFRleHRDaGVja2VyQ29t
cGxldGlvbjo6ZGlkQ2FuY2VsQ2hlY2tpbmdUZXh0KCkgY29uc3QKK3sKKyAgICBtX3BhZ2UtPmRp
ZENhbmNlbENoZWNraW5nVGV4dChtX3JlcXVlc3RJRCk7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdl
YktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1RleHRDaGVja2VyQ29t
cGxldGlvbi5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1RleHRDaGVja2VyQ29tcGxldGlv
bi5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjlkOWU2YTYKLS0tIC9kZXYv
bnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvVGV4dENoZWNrZXJDb21wbGV0aW9u
LmgKQEAgLTAsMCArMSw1NCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMyBTYW1zdW5nIEVs
ZWN0cm9uaWNzCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6Cisg
KiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3Zl
IGNvcHlyaWdodAorICogbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3Jt
IG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqIGRv
Y3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0
cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJ
R0hUIEhPTERFUlMJIEFORCBDT05UUklCVVRPUlMKKyAqICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNT
IE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisg
KiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBG
T1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBT
SEFMTCBUSEUgQ09QWVJJR0hUIEhPTERFUiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBG
T1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExB
UlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NT
IE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikg
SE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhF
UiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HCisgKiBO
RUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNF
IE9GIFRISVMKKyAqIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZ
IE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5kZWYgVGV4dENoZWNrZXJDb21wbGV0aW9uX2gK
KyNkZWZpbmUgVGV4dENoZWNrZXJDb21wbGV0aW9uX2gKKworI2luY2x1ZGUgIldlYlBhZ2VQcm94
eS5oIgorI2luY2x1ZGUgPFdlYkNvcmUvVGV4dENoZWNraW5nLmg+CisjaW5jbHVkZSA8d3RmL1Zl
Y3Rvci5oPgorCituYW1lc3BhY2UgV2ViS2l0IHsKKworY2xhc3MgVGV4dENoZWNrZXJDb21wbGV0
aW9uIDogcHVibGljIFJlZkNvdW50ZWQ8VGV4dENoZWNrZXJDb21wbGV0aW9uPiB7CitwdWJsaWM6
CisgICAgc3RhdGljIFBhc3NSZWZQdHI8VGV4dENoZWNrZXJDb21wbGV0aW9uPiBjcmVhdGUodWlu
dDY0X3QgcmVxdWVzdElELCBjb25zdCBXZWJDb3JlOjpUZXh0Q2hlY2tpbmdSZXF1ZXN0RGF0YSYs
IFdlYlBhZ2VQcm94eSopOworCisgICAgY29uc3QgV2ViQ29yZTo6VGV4dENoZWNraW5nUmVxdWVz
dERhdGEmIHRleHRDaGVja2luZ1JlcXVlc3REYXRhKCkgY29uc3Q7CisgICAgaW50NjRfdCBzcGVs
bERvY3VtZW50VGFnKCk7CisgICAgdm9pZCBkaWRGaW5pc2hDaGVja2luZ1RleHQoY29uc3QgVmVj
dG9yPFdlYkNvcmU6OlRleHRDaGVja2luZ1Jlc3VsdD4mKSBjb25zdDsKKyAgICB2b2lkIGRpZENh
bmNlbENoZWNraW5nVGV4dCgpIGNvbnN0OworCitwcml2YXRlOgorICAgIFRleHRDaGVja2VyQ29t
cGxldGlvbih1aW50NjRfdCByZXF1ZXN0SUQsIGNvbnN0IFdlYkNvcmU6OlRleHRDaGVja2luZ1Jl
cXVlc3REYXRhJiwgV2ViUGFnZVByb3h5Kik7CisKKyAgICBjb25zdCB1aW50NjRfdCBtX3JlcXVl
c3RJRDsKKyAgICBjb25zdCBXZWJDb3JlOjpUZXh0Q2hlY2tpbmdSZXF1ZXN0RGF0YSBtX3JlcXVl
c3REYXRhOworICAgIFdlYlBhZ2VQcm94eSogbV9wYWdlOworfTsKKworfSAvLyBuYW1lc3BhY2Ug
V2ViS2l0CisKKyNlbmRpZiAvLyBUZXh0Q2hlY2tlckNvbXBsZXRpb25faApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcAppbmRleCAwYTU0NDhiLi40OWMzZjg4IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcAorKysgYi9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcApAQCAtMzMyNyw2ICszMzI3
LDIwIEBAIHZvaWQgV2ViUGFnZVByb3h5OjppZ25vcmVXb3JkKGNvbnN0IFN0cmluZyYgd29yZCkK
ICAgICBUZXh0Q2hlY2tlcjo6aWdub3JlV29yZChzcGVsbERvY3VtZW50VGFnKCksIHdvcmQpOwog
fQogCit2b2lkIFdlYlBhZ2VQcm94eTo6cmVxdWVzdENoZWNraW5nT2ZTdHJpbmcodWludDY0X3Qg
cmVxdWVzdElELCBjb25zdCBUZXh0Q2hlY2tpbmdSZXF1ZXN0RGF0YSYgcmVxdWVzdCkKK3sKKyAg
ICBUZXh0Q2hlY2tlcjo6cmVxdWVzdENoZWNraW5nT2ZTdHJpbmcoVGV4dENoZWNrZXJDb21wbGV0
aW9uOjpjcmVhdGUocmVxdWVzdElELCByZXF1ZXN0LCB0aGlzKSk7Cit9CisKK3ZvaWQgV2ViUGFn
ZVByb3h5OjpkaWRGaW5pc2hDaGVja2luZ1RleHQodWludDY0X3QgcmVxdWVzdElELCBjb25zdCBW
ZWN0b3I8V2ViQ29yZTo6VGV4dENoZWNraW5nUmVzdWx0PiYgcmVzdWx0KSBjb25zdAoreworICAg
IG1fcHJvY2Vzcy0+c2VuZChNZXNzYWdlczo6V2ViUGFnZTo6RGlkRmluaXNoQ2hlY2tpbmdUZXh0
KHJlcXVlc3RJRCwgcmVzdWx0KSwgbV9wYWdlSUQpOworfQorCit2b2lkIFdlYlBhZ2VQcm94eTo6
ZGlkQ2FuY2VsQ2hlY2tpbmdUZXh0KHVpbnQ2NF90IHJlcXVlc3RJRCkgY29uc3QKK3sKKyAgICBt
X3Byb2Nlc3MtPnNlbmQoTWVzc2FnZXM6OldlYlBhZ2U6OkRpZENhbmNlbENoZWNraW5nVGV4dChy
ZXF1ZXN0SUQpLCBtX3BhZ2VJRCk7Cit9CiAvLyBPdGhlcgogCiB2b2lkIFdlYlBhZ2VQcm94eTo6
c2V0Rm9jdXMoYm9vbCBmb2N1c2VkKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL1dlYlBhZ2VQcm94eS5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94
eS5oCmluZGV4IDk4ODEyZWMuLjhkNzNlMGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9XZWJQYWdlUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2Vi
UGFnZVByb3h5LmgKQEAgLTc1Myw2ICs3NTMsMTAgQEAgcHVibGljOgogCiAgICAgdm9pZCBkaWRS
ZWNlaXZlQXV0aGVudGljYXRpb25DaGFsbGVuZ2VQcm94eSh1aW50NjRfdCBmcmFtZUlELCBQYXNz
UmVmUHRyPEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlUHJveHk+KTsKIAorICAgIGludDY0X3Qgc3Bl
bGxEb2N1bWVudFRhZygpOworICAgIHZvaWQgZGlkRmluaXNoQ2hlY2tpbmdUZXh0KHVpbnQ2NF90
IHJlcXVlc3RJRCwgY29uc3QgVmVjdG9yPFdlYkNvcmU6OlRleHRDaGVja2luZ1Jlc3VsdD4mKSBj
b25zdDsKKyAgICB2b2lkIGRpZENhbmNlbENoZWNraW5nVGV4dCh1aW50NjRfdCByZXF1ZXN0SUQp
IGNvbnN0OworCiAgICAgc3RhdGljIFN0cmluZyBwbHVnaW5JbmZvcm1hdGlvbkJ1bmRsZUlkZW50
aWZpZXJLZXkoKTsKICAgICBzdGF0aWMgU3RyaW5nIHBsdWdpbkluZm9ybWF0aW9uQnVuZGxlVmVy
c2lvbktleSgpOwogICAgIHN0YXRpYyBTdHJpbmcgcGx1Z2luSW5mb3JtYXRpb25EaXNwbGF5TmFt
ZUtleSgpOwpAQCAtOTQ1LDcgKzk0OSw2IEBAIHByaXZhdGU6CiAjZW5kaWYKIAogICAgIC8vIFNw
ZWxsaW5nIGFuZCBncmFtbWFyLgotICAgIGludDY0X3Qgc3BlbGxEb2N1bWVudFRhZygpOwogI2lm
IFVTRShVTklGSUVEX1RFWFRfQ0hFQ0tJTkcpCiAgICAgdm9pZCBjaGVja1RleHRPZlBhcmFncmFw
aChjb25zdCBTdHJpbmcmIHRleHQsIHVpbnQ2NF90IGNoZWNraW5nVHlwZXMsIFZlY3RvcjxXZWJD
b3JlOjpUZXh0Q2hlY2tpbmdSZXN1bHQ+JiByZXN1bHRzKTsKICNlbmRpZgpAQCAtOTU3LDYgKzk2
MCw3IEBAIHByaXZhdGU6CiAgICAgdm9pZCBnZXRHdWVzc2VzRm9yV29yZChjb25zdCBTdHJpbmcm
IHdvcmQsIGNvbnN0IFN0cmluZyYgY29udGV4dCwgVmVjdG9yPFN0cmluZz4mIGd1ZXNzZXMpOwog
ICAgIHZvaWQgbGVhcm5Xb3JkKGNvbnN0IFN0cmluZyYgd29yZCk7CiAgICAgdm9pZCBpZ25vcmVX
b3JkKGNvbnN0IFN0cmluZyYgd29yZCk7CisgICAgdm9pZCByZXF1ZXN0Q2hlY2tpbmdPZlN0cmlu
Zyh1aW50NjRfdCByZXF1ZXN0SUQsIGNvbnN0IFdlYkNvcmU6OlRleHRDaGVja2luZ1JlcXVlc3RE
YXRhJik7CiAKICAgICB2b2lkIHNldEZvY3VzKGJvb2wgZm9jdXNlZCk7CiAgICAgdm9pZCB0YWtl
Rm9jdXModWludDMyX3QgZGlyZWN0aW9uKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9XZWJQYWdlUHJveHkubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvV2ViUGFnZVByb3h5Lm1lc3NhZ2VzLmluCmluZGV4IDQ3MWMyMDUuLjBiOWUwN2IgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkubWVzc2FnZXMuaW4K
KysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5tZXNzYWdlcy5pbgpA
QCAtMjMzLDYgKzIzMyw3IEBAIG1lc3NhZ2VzIC0+IFdlYlBhZ2VQcm94eSB7CiAgICAgR2V0R3Vl
c3Nlc0ZvcldvcmQoV1RGOjpTdHJpbmcgd29yZCwgV1RGOjpTdHJpbmcgY29udGV4dCkgLT4gKFZl
Y3RvcjxXVEY6OlN0cmluZz4gZ3Vlc3NlcykKICAgICBMZWFybldvcmQoV1RGOjpTdHJpbmcgd29y
ZCk7CiAgICAgSWdub3JlV29yZChXVEY6OlN0cmluZyB3b3JkKTsKKyAgICBSZXF1ZXN0Q2hlY2tp
bmdPZlN0cmluZyh1aW50NjRfdCByZXF1ZXN0SUQsIFdlYkNvcmU6OlRleHRDaGVja2luZ1JlcXVl
c3REYXRhIHJlcXVlc3QpCiAKICAgICAjIERyYWcgYW5kIGRyb3AgbWVzc2FnZXMKICNpZiBFTkFC
TEUoRFJBR19TVVBQT1JUKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2Vm
bC9UZXh0Q2hlY2tlckVmbC5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvZWZsL1RleHRD
aGVja2VyRWZsLmNwcAppbmRleCAyMmZkNDcxLi41MjliMWJlIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvZWZsL1RleHRDaGVja2VyRWZsLmNwcAorKysgYi9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvZWZsL1RleHRDaGVja2VyRWZsLmNwcApAQCAtMjgsNiArMjgsNyBAQAog
I2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIlRleHRDaGVja2VyLmgiCiAKKyNpbmNsdWRl
ICJOb3RJbXBsZW1lbnRlZC5oIgogI2luY2x1ZGUgIlRleHRDaGVja2VyU3RhdGUuaCIKIAogI2lm
IEVOQUJMRShTUEVMTENIRUNLKQpAQCAtMjkwLDQgKzI5MSw5IEBAIHZvaWQgVGV4dENoZWNrZXI6
Omlnbm9yZVdvcmQoaW50NjRfdCBzcGVsbERvY3VtZW50VGFnLCBjb25zdCBTdHJpbmcmIHdvcmQp
CiAjZW5kaWYKIH0KIAordm9pZCBUZXh0Q2hlY2tlcjo6cmVxdWVzdENoZWNraW5nT2ZTdHJpbmco
UGFzc1JlZlB0cjxUZXh0Q2hlY2tlckNvbXBsZXRpb24+KQoreworICAgIG5vdEltcGxlbWVudGVk
KCk7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL2d0ay9UZXh0Q2hlY2tlckd0ay5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvZ3RrL1RleHRDaGVja2VyR3RrLmNwcAppbmRleCA0MDVjMGUxLi42YmM0MTkwIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvZ3RrL1RleHRDaGVja2VyR3RrLmNwcAor
KysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvZ3RrL1RleHRDaGVja2VyR3RrLmNwcApAQCAt
MjksNiArMjksNyBAQAogCiAjaW5jbHVkZSAiVGV4dENoZWNrZXJTdGF0ZS5oIgogI2luY2x1ZGUg
IldlYlRleHRDaGVja2VyLmgiCisjaW5jbHVkZSA8V2ViQ29yZS9Ob3RJbXBsZW1lbnRlZC5oPgog
CiB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKICAKQEAgLTEzNyw0ICsxMzgsOSBAQCB2b2lkIFRl
eHRDaGVja2VyOjppZ25vcmVXb3JkKGludDY0X3Qgc3BlbGxEb2N1bWVudFRhZywgY29uc3QgU3Ry
aW5nJiB3b3JkKQogICAgIFdlYlRleHRDaGVja2VyOjpzaGFyZWQoKS0+Y2xpZW50KCkuaWdub3Jl
V29yZChzcGVsbERvY3VtZW50VGFnLCB3b3JkKTsKIH0KIAordm9pZCBUZXh0Q2hlY2tlcjo6cmVx
dWVzdENoZWNraW5nT2ZTdHJpbmcoUGFzc1JlZlB0cjxUZXh0Q2hlY2tlckNvbXBsZXRpb24+KQor
eworICAgIG5vdEltcGxlbWVudGVkKCk7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL21hYy9UZXh0Q2hlY2tlck1hYy5tbSBi
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9tYWMvVGV4dENoZWNrZXJNYWMubW0KaW5kZXggZjVj
OGNlMi4uNDYxNGFkZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL21hYy9U
ZXh0Q2hlY2tlck1hYy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvbWFjL1RleHRD
aGVja2VyTWFjLm1tCkBAIC0zOTEsNCArMzkxLDkgQEAgdm9pZCBUZXh0Q2hlY2tlcjo6aWdub3Jl
V29yZChpbnQ2NF90IHNwZWxsRG9jdW1lbnRUYWcsIGNvbnN0IFN0cmluZyYgd29yZCkKICAgICBb
W05TU3BlbGxDaGVja2VyIHNoYXJlZFNwZWxsQ2hlY2tlcl0gaWdub3JlV29yZDp3b3JkIGluU3Bl
bGxEb2N1bWVudFdpdGhUYWc6c3BlbGxEb2N1bWVudFRhZ107CiB9CiAKK3ZvaWQgVGV4dENoZWNr
ZXI6OnJlcXVlc3RDaGVja2luZ09mU3RyaW5nKFBhc3NSZWZQdHI8VGV4dENoZWNrZXJDb21wbGV0
aW9uPikKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJL
aXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9xdC9UZXh0Q2hlY2tlclF0
LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9xdC9UZXh0Q2hlY2tlclF0LmNwcAppbmRl
eCA0YTMzMTg0Li43ZTM0M2UxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
cXQvVGV4dENoZWNrZXJRdC5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL3F0L1Rl
eHRDaGVja2VyUXQuY3BwCkBAIC0xMjYsNCArMTI2LDkgQEAgdm9pZCBUZXh0Q2hlY2tlcjo6aWdu
b3JlV29yZChpbnQ2NF90IHNwZWxsRG9jdW1lbnRUYWcsIGNvbnN0IFN0cmluZyYgd29yZCkKICAg
ICBub3RJbXBsZW1lbnRlZCgpOwogfQogCit2b2lkIFRleHRDaGVja2VyOjpyZXF1ZXN0Q2hlY2tp
bmdPZlN0cmluZyhQYXNzUmVmUHRyPFRleHRDaGVja2VyQ29tcGxldGlvbj4pCit7CisgICAgbm90
SW1wbGVtZW50ZWQoKTsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0Mi9XZWJLaXQyLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2Uv
V2ViS2l0Mi9XZWJLaXQyLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggMDA2OWEyNS4u
OTRmMTVjMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViS2l0Mi54Y29kZXByb2ovcHJv
amVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYktpdDIueGNvZGVwcm9qL3Byb2pl
Y3QucGJ4cHJvagpAQCAtMjA3LDYgKzIwNyw4IEBACiAJCTFBQTNENzYyMTY1MUI3RDMwMDg3MTNE
MCAvKiBSZW1vdGVMYXllclRyZWVIb3N0TWVzc2FnZXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFBQTNENzYwMTY1MUI3RDMwMDg3MTNEMCAvKiBSZW1v
dGVMYXllclRyZWVIb3N0TWVzc2FnZXMuaCAqLzsgfTsKIAkJMUFBNDE3Q0IxMkMwMENDQTAwMkJF
NjdCIC8qIFRleHRDaGVja2VyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSAxQUE0MTdDOTEyQzAwQ0NBMDAyQkU2N0IgLyogVGV4dENoZWNrZXIuaCAqLzsg
fTsKIAkJMUFBNDE3RUYxMkMwMEQ4NzAwMkJFNjdCIC8qIFRleHRDaGVja2VyTWFjLm1tIGluIFNv
dXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMUFBNDE3RUQxMkMwMEQ4
NzAwMkJFNjdCIC8qIFRleHRDaGVja2VyTWFjLm1tICovOyB9OworCQkxWlo0MTdFRjEyQzAwRDg3
MDAyQkU2N0IgLyogVGV4dENoZWNrZXJDb21wbGV0aW9uLmNwcCBpbiBTb3VyY2VzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFCQjQxN0M5MTJDMDBDQ0EwMDJCRTY3QiAvKiBU
ZXh0Q2hlY2tlckNvbXBsZXRpb24uY3BwICovOyB9OworCQkxUVE0MTdDQjEyQzAwQ0NBMDAyQkU2
N0IgLyogVGV4dENoZWNrZXJDb21wbGV0aW9uLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSAxQ0M0MTdDOTEyQzAwQ0NBMDAyQkU2N0IgLyogVGV4dENoZWNr
ZXJDb21wbGV0aW9uLmggKi87IH07CiAJCTFBQTQxQUI1MTJDMDJFQzQwMDJCRTY3QiAvKiBFZGl0
b3JTdGF0ZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
MUFBNDFBQjQxMkMwMkVDNDAwMkJFNjdCIC8qIEVkaXRvclN0YXRlLmggKi87IH07CiAJCTFBQTQ3
OTIzMTJBNTlGRDkwMDgyMzZDMyAvKiBQbHVnaW5Qcm9jZXNzTWFjLm1tIGluIFNvdXJjZXMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMUFBNDc5MjIxMkE1OUZEOTAwODIzNkMz
IC8qIFBsdWdpblByb2Nlc3NNYWMubW0gKi87IH07CiAJCTFBQTQ3OUIwMTJBNUE0MzYwMDgyMzZD
MyAvKiBDYXJib24uZnJhbWV3b3JrIGluIEZyYW1ld29ya3MgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gMUFBMUNEMDYxMDBGQTFCQTAwNzhERUJDIC8qIENhcmJvbi5mcmFtZXdv
cmsgKi87IH07CkBAIC0xNDkwLDYgKzE0OTIsOCBAQAogCQkxQTUwREIxRTExMEEzQkRDMDAwRDNG
RTUgLyogV2ViUHJvY2Vzcy5hcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZXhwbGlj
aXRGaWxlVHlwZSA9IHdyYXBwZXIuYXBwbGljYXRpb247IGluY2x1ZGVJbkluZGV4ID0gMDsgcGF0
aCA9IFdlYlByb2Nlc3MuYXBwOyBzb3VyY2VUcmVlID0gQlVJTFRfUFJPRFVDVFNfRElSOyB9Owog
CQkxQTU5NEFCODExMkExRkI2MDA5REU3QzcgLyogV2ViVUlDbGllbnQuY3BwICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gV2ViVUlDbGllbnQuY3BwOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQkxQTU5NEFCOTExMkExRkI2MDA5REU3QzcgLyogV2ViVUlDbGllbnQu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2ViVUlDbGllbnQuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMUJCNDE3QzkxMkMwMENDQTAwMkJFNjdCIC8qIFRleHRD
aGVja2VyQ29tcGxldGlvbi5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGgg
PSBUZXh0Q2hlY2tlckNvbXBsZXRpb24uY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owor
CQkxQ0M0MTdDOTEyQzAwQ0NBMDAyQkU2N0IgLyogVGV4dENoZWNrZXJDb21wbGV0aW9uLmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFRleHRDaGVja2VyQ29tcGxldGlvbi5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkxQTVFNERBMzEyRDNCRDNEMDA5OUEyQkIgLyog
VGV4dENoZWNrZXJTdGF0ZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBUZXh0
Q2hlY2tlclN0YXRlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTFBNjQyMEUyMTJE
Q0UyRkYwMENBQUUyQyAvKiBTaGFyZWFibGVCaXRtYXAuY3BwICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAuY3BwOyBwYXRoID0gU2hhcmVhYmxlQml0bWFwLmNwcDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJMUE2NDIwRTMxMkRDRTJGRjAwQ0FBRTJDIC8qIFNoYXJlYWJsZUJpdG1hcC5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTaGFyZWFibGVCaXRtYXAuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTM4MjMsNiArMzgyNyw4IEBACiAJCQkJNTFBNEQ1
QTgxNkNBQzRGRjAwMEU2MTVFIC8qIFN0YXRpc3RpY3NSZXF1ZXN0LmNwcCAqLywKIAkJCQk1MTRC
REVEMjE2Qzk4RUREMDBFNEUyNUUgLyogU3RhdGlzdGljc1JlcXVlc3QuaCAqLywKIAkJCQkxQUE0
MTdDOTEyQzAwQ0NBMDAyQkU2N0IgLyogVGV4dENoZWNrZXIuaCAqLywKKwkJCQkxQkI0MTdDOTEy
QzAwQ0NBMDAyQkU2N0IgLyogVGV4dENoZWNrZXJDb21wbGV0aW9uLmNwcCAqLywKKwkJCQkxQ0M0
MTdDOTEyQzAwQ0NBMDAyQkU2N0IgLyogVGV4dENoZWNrZXJDb21wbGV0aW9uLmggKi8sCiAJCQkJ
MUEwRjI5RTExMjBCNDQ0MjAwNTNEMUI5IC8qIFZpc2l0ZWRMaW5rUHJvdmlkZXIuY3BwICovLAog
CQkJCTFBMEYyOUUyMTIwQjQ0NDIwMDUzRDFCOSAvKiBWaXNpdGVkTGlua1Byb3ZpZGVyLmggKi8s
CiAJCQkJNTEyRTM1MjAxMzBCNTUwMTAwQUJEMTlBIC8qIFdlYkFwcGxpY2F0aW9uQ2FjaGVNYW5h
Z2VyUHJveHkuY3BwICovLApAQCAtNTI0Nyw2ICs1MjUzLDcgQEAKIAkJCQkyOTZCRDg1RDE1MDE5
QkMzMDA3MUY0MjQgLyogU3RyaW5nVXRpbGl0aWVzLmggaW4gSGVhZGVycyAqLywKIAkJCQk1MTgx
NUJBMDE2QTYyMjIxMDA1NDUwMUYgLyogU3luY05ldHdvcmtSZXNvdXJjZUxvYWRlci5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJMUFBNDE3Q0IxMkMwMENDQTAwMkJFNjdCIC8qIFRleHRDaGVja2VyLmgg
aW4gSGVhZGVycyAqLywKKwkJCQkxUVE0MTdDQjEyQzAwQ0NBMDAyQkU2N0IgLyogVGV4dENoZWNr
ZXJDb21wbGV0aW9uLmggaW4gSGVhZGVycyAqLywKIAkJCQkxQTVFNERBNDEyRDNCRDNEMDA5OUEy
QkIgLyogVGV4dENoZWNrZXJTdGF0ZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMUFBRjI2MzkxNDY4
N0MzOTAwNEExRThBIC8qIFRpbGVkQ29yZUFuaW1hdGlvbkRyYXdpbmdBcmVhLmggaW4gSGVhZGVy
cyAqLywKIAkJCQkxQUYwNUQ4NzE0Njg4MzQ4MDA4QjFFODEgLyogVGlsZWRDb3JlQW5pbWF0aW9u
RHJhd2luZ0FyZWFQcm94eS5oIGluIEhlYWRlcnMgKi8sCkBAIC02NDYwLDYgKzY0NjcsNyBAQAog
CQkJCTFBMTNCRUIzMTYzNUE5QzgwMEYxOUMwMyAvKiBTdHJpbmdSZWZlcmVuY2UuY3BwIGluIFNv
dXJjZXMgKi8sCiAJCQkJMjk2QkQ4NUUxNTAxOUJDMzAwNzFGNDI0IC8qIFN0cmluZ1V0aWxpdGll
cy5tbSBpbiBTb3VyY2VzICovLAogCQkJCTUxODE1QjlGMTZBNjIyMjEwMDU0NTAxRiAvKiBTeW5j
TmV0d29ya1Jlc291cmNlTG9hZGVyLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTFaWjQxN0VGMTJD
MDBEODcwMDJCRTY3QiAvKiBUZXh0Q2hlY2tlckNvbXBsZXRpb24uY3BwIGluIFNvdXJjZXMgKi8s
CiAJCQkJMUFBNDE3RUYxMkMwMEQ4NzAwMkJFNjdCIC8qIFRleHRDaGVja2VyTWFjLm1tIGluIFNv
dXJjZXMgKi8sCiAJCQkJMUFBRjI2MzgxNDY4N0MzOTAwNEExRThBIC8qIFRpbGVkQ29yZUFuaW1h
dGlvbkRyYXdpbmdBcmVhLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJMUFGMDVEODYxNDY4ODM0ODAw
OEIxRTgxIC8qIFRpbGVkQ29yZUFuaW1hdGlvbkRyYXdpbmdBcmVhUHJveHkubW0gaW4gU291cmNl
cyAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBv
cnQvV2ViRWRpdG9yQ2xpZW50LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29y
ZVN1cHBvcnQvV2ViRWRpdG9yQ2xpZW50LmNwcAppbmRleCA5M2RmYWIzLi5kYzRlOTQyIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkVkaXRv
ckNsaWVudC5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9y
dC9XZWJFZGl0b3JDbGllbnQuY3BwCkBAIC00NCw2ICs0NCw3IEBACiAjaW5jbHVkZSA8V2ViQ29y
ZS9LZXlib2FyZEV2ZW50Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9Ob3RJbXBsZW1lbnRlZC5oPgog
I2luY2x1ZGUgPFdlYkNvcmUvUGFnZS5oPgorI2luY2x1ZGUgPFdlYkNvcmUvU3BlbGxDaGVja2Vy
Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9UZXh0SXRlcmF0b3IuaD4KICNpbmNsdWRlIDxXZWJDb3Jl
L1VuZG9TdGVwLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9Vc2VyVHlwaW5nR2VzdHVyZUluZGljYXRv
ci5oPgpAQCAtNTksNiArNjAsMTIgQEAgdXNpbmcgbmFtZXNwYWNlIEhUTUxOYW1lczsKIAogbmFt
ZXNwYWNlIFdlYktpdCB7CiAKK3N0YXRpYyB1aW50NjRfdCBnZW5lcmF0ZVRleHRDaGVja2luZ1Jl
cXVlc3RJRCgpCit7CisgICAgc3RhdGljIHVpbnQ2NF90IHVuaXF1ZVRleHRDaGVja2luZ1JlcXVl
c3RJRCA9IDE7CisgICAgcmV0dXJuIHVuaXF1ZVRleHRDaGVja2luZ1JlcXVlc3RJRCsrOworfQor
CiB2b2lkIFdlYkVkaXRvckNsaWVudDo6cGFnZURlc3Ryb3llZCgpCiB7CiAgICAgZGVsZXRlIHRo
aXM7CkBAIC00NzEsNiArNDc4LDE2IEBAIHZvaWQgV2ViRWRpdG9yQ2xpZW50OjpnZXRHdWVzc2Vz
Rm9yV29yZChjb25zdCBTdHJpbmcmIHdvcmQsIGNvbnN0IFN0cmluZyYgY29udGV4CiAgICAgbV9w
YWdlLT5zZW5kU3luYyhNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpHZXRHdWVzc2VzRm9yV29yZCh3
b3JkLCBjb250ZXh0KSwgTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6R2V0R3Vlc3Nlc0ZvcldvcmQ6
OlJlcGx5KGd1ZXNzZXMpKTsKIH0KIAordm9pZCBXZWJFZGl0b3JDbGllbnQ6OnJlcXVlc3RDaGVj
a2luZ09mU3RyaW5nKFdURjo6UGFzc1JlZlB0cjxUZXh0Q2hlY2tpbmdSZXF1ZXN0PiBwcnBSZXF1
ZXN0KQoreworICAgIFJlZlB0cjxUZXh0Q2hlY2tpbmdSZXF1ZXN0PiByZXF1ZXN0ID0gcHJwUmVx
dWVzdDsKKworICAgIHVpbnQ2NF90IHJlcXVlc3RJRCA9IGdlbmVyYXRlVGV4dENoZWNraW5nUmVx
dWVzdElEKCk7CisgICAgbV9wYWdlLT5hZGRUZXh0Q2hlY2tpbmdSZXF1ZXN0KHJlcXVlc3RJRCwg
cmVxdWVzdCk7CisKKyAgICBtX3BhZ2UtPnNlbmQoTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6UmVx
dWVzdENoZWNraW5nT2ZTdHJpbmcocmVxdWVzdElELCByZXF1ZXN0LT5kYXRhKCkpKTsKK30KKwog
dm9pZCBXZWJFZGl0b3JDbGllbnQ6OndpbGxTZXRJbnB1dE1ldGhvZFN0YXRlKCkKIHsKICNpZiBQ
TEFURk9STShRVCkKQEAgLTQ4NSwxMSArNTAyLDYgQEAgdm9pZCBXZWJFZGl0b3JDbGllbnQ6OnNl
dElucHV0TWV0aG9kU3RhdGUoYm9vbCkKICAgICBub3RJbXBsZW1lbnRlZCgpOwogfQogCi12b2lk
IFdlYkVkaXRvckNsaWVudDo6cmVxdWVzdENoZWNraW5nT2ZTdHJpbmcoV1RGOjpQYXNzUmVmUHRy
PFdlYkNvcmU6OlRleHRDaGVja2luZ1JlcXVlc3Q+KQotewotICAgIG5vdEltcGxlbWVudGVkKCk7
Ci19Ci0KIGJvb2wgV2ViRWRpdG9yQ2xpZW50OjpzdXBwb3J0c0dsb2JhbFNlbGVjdGlvbigpCiB7
CiAjaWYgUExBVEZPUk0oUVQpICYmICFkZWZpbmVkKFFUX05PX0NMSVBCT0FSRCkKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcCBiL1NvdXJj
ZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcAppbmRleCBmYjkwODMwLi4x
MjZmYWIxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2Vi
UGFnZS5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2Uu
Y3BwCkBAIC0zNzgyLDQgKzM3ODIsMzAgQEAgdm9pZCBXZWJQYWdlOjpzZXRNaW5pbXVtTGF5b3V0
V2lkdGgoZG91YmxlIG1pbmltdW1MYXlvdXRXaWR0aCkKICAgICAgICAgY29yZVBhZ2UoKS0+bWFp
bkZyYW1lKCktPnZpZXcoKS0+ZW5hYmxlQXV0b1NpemVNb2RlKGZhbHNlLCBJbnRTaXplKCksIElu
dFNpemUoKSk7CiB9CiAKK3ZvaWQgV2ViUGFnZTo6YWRkVGV4dENoZWNraW5nUmVxdWVzdCh1aW50
NjRfdCByZXF1ZXN0SUQsIFBhc3NSZWZQdHI8VGV4dENoZWNraW5nUmVxdWVzdD4gcmVxdWVzdCkK
K3sKKyAgICBtX3BlbmRpbmdUZXh0Q2hlY2tpbmdSZXF1ZXN0TWFwLmFkZChyZXF1ZXN0SUQsIHJl
cXVlc3QpOworfQorCit2b2lkIFdlYlBhZ2U6OmRpZEZpbmlzaENoZWNraW5nVGV4dCh1aW50NjRf
dCByZXF1ZXN0SUQsIGNvbnN0IFZlY3RvcjxUZXh0Q2hlY2tpbmdSZXN1bHQ+JiByZXN1bHQpCit7
CisgICAgVGV4dENoZWNraW5nUmVxdWVzdCogcmVxdWVzdCA9IG1fcGVuZGluZ1RleHRDaGVja2lu
Z1JlcXVlc3RNYXAuZ2V0KHJlcXVlc3RJRCkuZ2V0KCk7CisgICAgaWYgKCFyZXF1ZXN0KQorICAg
ICAgICByZXR1cm47CisKKyAgICByZXF1ZXN0LT5kaWRTdWNjZWVkKHJlc3VsdCk7CisgICAgbV9w
ZW5kaW5nVGV4dENoZWNraW5nUmVxdWVzdE1hcC5yZW1vdmUocmVxdWVzdElEKTsKK30KKwordm9p
ZCBXZWJQYWdlOjpkaWRDYW5jZWxDaGVja2luZ1RleHQodWludDY0X3QgcmVxdWVzdElEKQorewor
ICAgIFRleHRDaGVja2luZ1JlcXVlc3QqIHJlcXVlc3QgPSBtX3BlbmRpbmdUZXh0Q2hlY2tpbmdS
ZXF1ZXN0TWFwLmdldChyZXF1ZXN0SUQpLmdldCgpOworICAgIGlmICghcmVxdWVzdCkKKyAgICAg
ICAgcmV0dXJuOworCisgICAgcmVxdWVzdC0+ZGlkQ2FuY2VsKCk7CisgICAgbV9wZW5kaW5nVGV4
dENoZWNraW5nUmVxdWVzdE1hcC5yZW1vdmUocmVxdWVzdElEKTsKK30KKworCiB9IC8vIG5hbWVz
cGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFn
ZS9XZWJQYWdlLmggYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5o
CmluZGV4IDk3ZjQ2ZGIuLmNmZDhlODIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlBy
b2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmgKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9X
ZWJQYWdlL1dlYlBhZ2UuaApAQCAtNTksNiArNTksNyBAQAogI2luY2x1ZGUgPFdlYkNvcmUvUGFn
ZVZpc2liaWxpdHlTdGF0ZS5oPgogI2luY2x1ZGUgPFdlYkNvcmUvUGxhdGZvcm1TY3JlZW4uaD4K
ICNpbmNsdWRlIDxXZWJDb3JlL1Njcm9sbFR5cGVzLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9UZXh0
Q2hlY2tpbmcuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1dlYkNvcmVLZXlib2FyZFVJTW9kZS5oPgog
I2luY2x1ZGUgPHd0Zi9IYXNoTWFwLmg+CiAjaW5jbHVkZSA8d3RmL093blB0ci5oPgpAQCAtMTE2
LDggKzExNywxMCBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgY2xhc3MgUmVzb3VyY2VSZXNw
b25zZTsKICAgICBjbGFzcyBSZXNvdXJjZVJlcXVlc3Q7CiAgICAgY2xhc3MgU2hhcmVkQnVmZmVy
OworICAgIGNsYXNzIFRleHRDaGVja2luZ1JlcXVlc3Q7CiAgICAgY2xhc3MgVmlzaWJsZVNlbGVj
dGlvbjsKICAgICBzdHJ1Y3QgS2V5cHJlc3NDb21tYW5kOworICAgIHN0cnVjdCBUZXh0Q2hlY2tp
bmdSZXN1bHQ7CiB9CiAKIG5hbWVzcGFjZSBXZWJLaXQgewpAQCAtNjA1LDYgKzYwOCwxMCBAQCBw
dWJsaWM6CiAgICAgdm9pZCBzZXRNaW5pbXVtTGF5b3V0V2lkdGgoZG91YmxlKTsKICAgICBkb3Vi
bGUgbWluaW11bUxheW91dFdpZHRoKCkgY29uc3QgeyByZXR1cm4gbV9taW5pbXVtTGF5b3V0V2lk
dGg7IH0KIAorICAgIHZvaWQgYWRkVGV4dENoZWNraW5nUmVxdWVzdCh1aW50NjRfdCByZXF1ZXN0
SUQsIFBhc3NSZWZQdHI8V2ViQ29yZTo6VGV4dENoZWNraW5nUmVxdWVzdD4pOworICAgIHZvaWQg
ZGlkRmluaXNoQ2hlY2tpbmdUZXh0KHVpbnQ2NF90IHJlcXVlc3RJRCwgY29uc3QgVmVjdG9yPFdl
YkNvcmU6OlRleHRDaGVja2luZ1Jlc3VsdD4mKTsKKyAgICB2b2lkIGRpZENhbmNlbENoZWNraW5n
VGV4dCh1aW50NjRfdCByZXF1ZXN0SUQpOworCiBwcml2YXRlOgogICAgIFdlYlBhZ2UodWludDY0
X3QgcGFnZUlELCBjb25zdCBXZWJQYWdlQ3JlYXRpb25QYXJhbWV0ZXJzJik7CiAKQEAgLTc5OCw2
ICs4MDUsOCBAQCBwcml2YXRlOgogCiAgICAgSGFzaFNldDxQbHVnaW5WaWV3Kj4gbV9wbHVnaW5W
aWV3czsKIAorICAgIEhhc2hNYXA8dWludDY0X3QsIFJlZlB0cjxXZWJDb3JlOjpUZXh0Q2hlY2tp
bmdSZXF1ZXN0PiA+IG1fcGVuZGluZ1RleHRDaGVja2luZ1JlcXVlc3RNYXA7CisKICAgICBib29s
IG1fdXNlRml4ZWRMYXlvdXQ7CiAKICAgICBib29sIG1fZHJhd3NCYWNrZ3JvdW5kOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UubWVzc2FnZXMu
aW4gYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5tZXNzYWdlcy5p
bgppbmRleCAzM2FlM2RiLi5kY2JjODZjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQ
cm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5tZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0Mi9X
ZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5tZXNzYWdlcy5pbgpAQCAtMTkzLDYgKzE5Myw4IEBA
IG1lc3NhZ2VzIC0+IFdlYlBhZ2UgTGVnYWN5UmVjZWl2ZXIgewogICAgICMgU3BlbGxpbmcgYW5k
IGdyYW1tYXIuCiAgICAgQWR2YW5jZVRvTmV4dE1pc3NwZWxsaW5nKGJvb2wgc3RhcnRCZWZvcmVT
ZWxlY3Rpb24pCiAgICAgQ2hhbmdlU3BlbGxpbmdUb1dvcmQoV1RGOjpTdHJpbmcgd29yZCkKKyAg
ICBEaWRGaW5pc2hDaGVja2luZ1RleHQodWludDY0X3QgcmVxdWVzdElELCBXVEY6OlZlY3RvcjxX
ZWJDb3JlOjpUZXh0Q2hlY2tpbmdSZXN1bHQ+IHJlc3VsdCkKKyAgICBEaWRDYW5jZWxDaGVja2lu
Z1RleHQodWludDY0X3QgcmVxdWVzdElEKQogI2lmIFVTRShBUFBLSVQpCiAgICAgVXBwZXJjYXNl
V29yZCgpCiAgICAgTG93ZXJjYXNlV29yZCgpCg==
</data>
<flag name="review"
          id="210616"
          type_id="1"
          status="+"
          setter="enrica"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>190900</attachid>
            <date>2013-03-01 00:35:26 -0800</date>
            <delta_ts>2013-03-01 00:49:40 -0800</delta_ts>
            <desc>patch for landing</desc>
            <filename>spelling-asynchronous-spell-checking-WK2.patch</filename>
            <type>text/plain</type>
            <size>31940</size>
            <attacher name="Grzegorz Czajkowski">g.czajkowski</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NNYWtlTGlzdHMudHh0IGIvU291cmNlL1dlYktp
dDIvQ01ha2VMaXN0cy50eHQKaW5kZXggYjg2NGQ3MDMuLjZmMmIxZjYgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQyL0NNYWtlTGlzdHMudHh0CisrKyBiL1NvdXJjZS9XZWJLaXQyL0NNYWtlTGlz
dHMudHh0CkBAIC0yNDQsNiArMjQ0LDcgQEAgc2V0KFdlYktpdDJfU09VUkNFUwogICAgIFVJUHJv
Y2Vzcy9QYWdlVmlld3BvcnRDb250cm9sbGVyLmNwcAogICAgIFVJUHJvY2Vzcy9SZXNwb25zaXZl
bmVzc1RpbWVyLmNwcAogICAgIFVJUHJvY2Vzcy9TdGF0aXN0aWNzUmVxdWVzdC5jcHAKKyAgICBV
SVByb2Nlc3MvVGV4dENoZWNrZXJDb21wbGV0aW9uLmNwcAogICAgIFVJUHJvY2Vzcy9WaXNpdGVk
TGlua1Byb3ZpZGVyLmNwcAogICAgIFVJUHJvY2Vzcy9XZWJBcHBsaWNhdGlvbkNhY2hlTWFuYWdl
clByb3h5LmNwcAogICAgIFVJUHJvY2Vzcy9XZWJCYWNrRm9yd2FyZExpc3QuY3BwCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cK
aW5kZXggNWRlYjNkYi4uNWVhMGI2MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdl
TG9nCisrKyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEyMiBAQAorMjAx
My0wMy0wMSAgR3J6ZWdvcnogQ3phamtvd3NraSAgPGcuY3phamtvd3NraUBzYW1zdW5nLmNvbT4s
IE1hcml1c3ogR3J6ZWdvcmN6eWsgPG1hcml1c3ouZ0BzYW1zdW5nLmNvbT4KKworICAgICAgICBb
V0syXSBBc3luY2hyb25vdXMgc3BlbGwgY2hlY2tpbmcgaW1wbGVtZW50YXRpb24KKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEwOTU3NworCisgICAgICAg
IFJldmlld2VkIGJ5IEVucmljYSBDYXN1Y2NpLgorCisgICAgICAgIEFzc29jaWF0ZSB0aGUgYWJz
dHJhY3QgJ1dlYkNvcmU6OlRleHRDaGVja2luZ1JlcXVlc3QnIG9iamVjdCB3aXRoIHRoZSB1bmlx
dWUgaWRlbnRpZmllcgorICAgICAgICBvbiBXZWJQcm9jZXNzIHNpZGUuIFRoZSByZXF1ZXN0IGRh
dGEgZnJvbSB0aGUgJ1RleHRDaGVja2luZ1JlcXVlc3QnIGFyZSByZXRyaWV2ZWQgYW5kCisgICAg
ICAgIHBhc3NlZCB0byB0aGUgVUlQcm9jZXNzLiBUaGUgV0syIGNsaWVudCAoVGV4dENoZWNrZXJ7
R3RrL01hYy9FZmwvUXR9LmNwcCkgZ2V0cworICAgICAgICB0aGUgJ1RleHRDaGVja2VyQ29tcGxl
dGlvbicgb2JqZWN0IHdpdGggdGhlIHJlcXVlc3QgZGF0YSBhbmQgcG9zc2liaWxpdHkgdG8gbm90
aWZ5CisgICAgICAgIHRoZSBXZWJQcm9jZXNzIGFib3V0IHRoZSBzcGVsbGluZyByZXN1bHRzLgor
ICAgICAgICBGaW5hbGx5LCB0aGUgV2ViUGFnZSBvYmplY3QgY2FsbHMgb24gdGhlIHByb3BlciAn
VGV4dENoZWNraW5nUmVxdWVzdCcgb2JqZWN0CisgICAgICAgIGRpZFN1Y2Nlc3MvZGlkQ2FuY2Vs
IG1ldGhvZCB0byBub3RpZnkgdGhlIFdlYkNvcmUgYWJvdXQgdGhlIHNwZWxsaW5nIHJlc3VsdC4K
KworICAgICAgICAqIENNYWtlTGlzdHMudHh0OgorICAgICAgICAqIEdOVW1ha2VmaWxlLmxpc3Qu
YW06CisgICAgICAgIEFkZCAnVGV4dENoZWNrZXJDb21wbGV0aW9uLntoL2NwcH0nIHRvIHRoZSBX
ZWJLaXQyIGNtYWtlIGJhc2VkIGFuZAorICAgICAgICBXSzItR3RrKyBidWlsZHMuCisKKyAgICAg
ICAgKiBTY3JpcHRzL3dlYmtpdDIvbWVzc2FnZXMucHk6CisgICAgICAgIChoZWFkZXJzX2Zvcl90
eXBlKToKKyAgICAgICAgQWRkIGV4Y2VwdGlvbiBmb3IgJ1RleHRDaGVja2luZ1JlcXVlc3REYXRh
JyBjbGFzcyB0byBwcm9wZXJseSBmaW5kIGhlYWRlcgorICAgICAgICBmaWxlIGZvciBpdC4KKwor
ICAgICAgICAqIFNoYXJlZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMuY3BwOgorICAgICAgICAqIFNo
YXJlZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMuaDoKKyAgICAgICAgVGVhY2ggJ0FyZ3VtZW50Q29k
ZXInIGhvdyB0byBlbmNvZGUvZGVjb2RlICdUZXh0Q2hlY2tpbmdSZXF1ZXN0RGF0YScgY2xhc3Mu
CisKKyAgICAgICAgKiBUYXJnZXQucHJpOgorICAgICAgICBBZGQgJ1RleHRDaGVja2VyQ29tcGxl
dGlvbi57aC9jcHB9JyB0byB0aGUgV0syLVF0IGJ1aWxkLgorCisgICAgICAgICogVUlQcm9jZXNz
L1RleHRDaGVja2VyLmg6CisgICAgICAgIEFkZCAncmVxdWVzdENoZWNraW5nT2ZTdHJpbmcnIG1l
dGhvZCB0byB0aGUgVGV4dENoZWNrZXIncyBpbnRlcmZhY2UuCisKKyAgICAgICAgKiBVSVByb2Nl
c3MvVGV4dENoZWNrZXJDb21wbGV0aW9uLmNwcDogQWRkZWQuCisgICAgICAgIChXZWJLaXQ6OlRl
eHRDaGVja2VyQ29tcGxldGlvbjo6Y3JlYXRlKToKKyAgICAgICAgKFdlYktpdDo6VGV4dENoZWNr
ZXJDb21wbGV0aW9uOjpUZXh0Q2hlY2tlckNvbXBsZXRpb24pOgorCisgICAgICAgIChXZWJLaXQ6
OlRleHRDaGVja2VyQ29tcGxldGlvbjo6c3BlbGxEb2N1bWVudFRhZyk6CisgICAgICAgIFJldHVy
biB0aGUgV2ViUGFnZVByb3h5J3Mgc3BlbGxEb2N1bWVudFRhZyBhcyB0aGUgY2xpZW50IG1pZ2h0
IGJlCisgICAgICAgIGludGVyZXN0ZWQgaW4gZnJvbSB3aGljaCBwYWdlIHRoZSByZXF1ZXN0IGNh
bWUuCisKKyAgICAgICAgKFdlYktpdDo6VGV4dENoZWNrZXJDb21wbGV0aW9uOjp0ZXh0Q2hlY2tp
bmdSZXF1ZXN0RGF0YSk6CisgICAgICAgIEFsbG93IHRvIHJldHJpZXZlICdUZXh0Q2hlY2tpbmdS
ZXF1ZXN0RGF0YScgb2JqZWN0LgorCisgICAgICAgIChXZWJLaXQ6OlRleHRDaGVja2VyQ29tcGxl
dGlvbjo6ZGlkRmluaXNoQ2hlY2tpbmdUZXh0KToKKyAgICAgICAgKFdlYktpdDo6VGV4dENoZWNr
ZXJDb21wbGV0aW9uOjpkaWRDYW5jZWxDaGVja2luZ1RleHQpOgorICAgICAgICBOb3RpZnkgdGhl
ICdXZWJQYWdlUHJveHknIG9iamVjdCB0aGF0IHRoZSBnaXZlbiByZXF1ZXN0IGhhcyBiZWVuCisg
ICAgICAgIGhhbmRsZWQgb3IgY2FuY2VsZWQuCisKKyAgICAgICAgKiBVSVByb2Nlc3MvVGV4dENo
ZWNrZXJDb21wbGV0aW9uLmg6IEFkZGVkLgorICAgICAgICBJbnRyb2R1Y2UgYSBuZXcgY2xhc3Mg
Zm9yIFdLMiB0byByZXRyaWV2ZSB0aGUgcmVxdWVzdCBkYXRhIGFuZAorICAgICAgICBjYWxsIGRp
ZEZpbmlzaENoZWNraW5nVGV4dC9kaWRDYW5jZWxDaGVja2luZ1RleHQuCisKKyAgICAgICAgKiBV
SVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5
OjpyZXF1ZXN0Q2hlY2tpbmdPZlN0cmluZyk6CisgICAgICAgIENyZWF0ZSAnVGV4dENoZWNrZXJD
b21wbGV0aW9uJyBvYmplY3QgYW5kIHBhc3MgaXQKKyAgICAgICAgdG8gdGhlICdUZXh0Q2hlY2tl
cjo6cmVxdWVzdENoZWNraW5nT2ZTdHJpbmcnIG1ldGhvZC4KKworICAgICAgICAoV2ViS2l0OjpX
ZWJQYWdlUHJveHk6OmRpZEZpbmlzaENoZWNraW5nVGV4dCk6CisgICAgICAgIChXZWJLaXQ6Oldl
YlBhZ2VQcm94eTo6ZGlkQ2FuY2VsQ2hlY2tpbmdUZXh0KToKKyAgICAgICAgU2VuZCB0aGUgbWVz
c2FnZXMgdG8gV2ViUHJvY2VzcyB0aGF0IHRoZSBnaXZlbiByZXF1ZXN0IGhhcyBiZWVuCisgICAg
ICAgIGhhbmRsZWQgb3IgY2FuY2VsZWQuCisKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUGFnZVBy
b3h5Lmg6CisgICAgICAgIChXZWJQYWdlUHJveHkpOgorICAgICAgICBBZGQgcHVibGljIGRlY2xh
cmF0aW9ucyBmb3IgJ2RpZEZpbmlzaENoZWNraW5nVGV4dCcsICdkaWRDYW5jZWxDaGVja2luZ1Rl
eHQnLgorICAgICAgICBBZGQgcHJpdmF0ZSBkZWNsYXJhdGlvbnMgZm9yICdyZXF1ZXN0Q2hlY2tp
bmdPZlN0cmluZycuCisgICAgICAgIE1vdmUgdGhlICdzcGVsbERvY3VtZW50VGFnKCknIG1ldGhv
ZCB0byB0byB0aGUgcHVibGljIHNlY3Rpb24gdG8gYmUKKyAgICAgICAgYWNjZXNzaWJsZSBmcm9t
ICdUZXh0Q2hlY2tlckNvbXBsZXRpb24nIGNsYXNzLgorCisgICAgICAgICogVUlQcm9jZXNzL1dl
YlBhZ2VQcm94eS5tZXNzYWdlcy5pbjoKKyAgICAgICAgQSBuZXcgZW50cnkgZm9yICdSZXF1ZXN0
Q2hlY2tpbmdPZlN0cmluZycuCisKKyAgICAgICAgKiBVSVByb2Nlc3MvZWZsL1RleHRDaGVja2Vy
RWZsLmNwcDoKKyAgICAgICAgKFdlYktpdDo6VGV4dENoZWNrZXI6OnJlcXVlc3RDaGVja2luZ09m
U3RyaW5nKToKKyAgICAgICAgKFdlYktpdCk6CisgICAgICAgICogVUlQcm9jZXNzL2d0ay9UZXh0
Q2hlY2tlckd0ay5jcHA6CisgICAgICAgIChXZWJLaXQ6OlRleHRDaGVja2VyOjpyZXF1ZXN0Q2hl
Y2tpbmdPZlN0cmluZyk6CisgICAgICAgIChXZWJLaXQpOgorICAgICAgICAqIFVJUHJvY2Vzcy9t
YWMvVGV4dENoZWNrZXJNYWMubW06CisgICAgICAgIChXZWJLaXQ6OlRleHRDaGVja2VyOjpyZXF1
ZXN0Q2hlY2tpbmdPZlN0cmluZyk6CisgICAgICAgIChXZWJLaXQpOgorICAgICAgICAqIFVJUHJv
Y2Vzcy9xdC9UZXh0Q2hlY2tlclF0LmNwcDoKKyAgICAgICAgKFdlYktpdDo6VGV4dENoZWNrZXI6
OnJlcXVlc3RDaGVja2luZ09mU3RyaW5nKToKKyAgICAgICAgKFdlYktpdCk6CisgICAgICAgIEFk
ZCBkdW1teSBpbXBsZW1lbnRhdGlvbnMgZm9yICdyZXF1ZXN0Q2hlY2tpbmdPZlN0cmluZycuCisK
KyAgICAgICAgKiBXZWJLaXQyLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgIEFk
ZCAnVGV4dENoZWNrZXJDb21wbGV0aW9uLntoL2NwcH0gdG8gTWFjIGJ1aWxkLgorCisgICAgICAg
ICogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJFZGl0b3JDbGllbnQuY3BwOgorICAgICAg
ICAoV2ViS2l0OjpnZW5lcmF0ZVRleHRDaGVja2luZ1JlcXVlc3RJRCk6CisgICAgICAgIEhlbHBl
ciBmdW5jdGlvbiB0byBnZW5lcmF0ZSB0aGUgdW5pcXVlIGlkZW50aWZpZXIgZm9yIHRoZSBhYnN0
cmFjdAorICAgICAgICAnVGV4dENoZWNraW5nUmVxdWVzdCcgb2JqZWN0LgorCisgICAgICAgIChX
ZWJLaXQ6OldlYkVkaXRvckNsaWVudDo6cmVxdWVzdENoZWNraW5nT2ZTdHJpbmcpOgorICAgICAg
ICBBc3NvY2lhdGUgJ1RleHRDaGVja2luZ1JlcXVlc3QnIHdpdGggdGhlIHVuaXF1ZSBpZGVudGlm
aWVyIGFuZCBhZGQgdGhlbQorICAgICAgICB0byB0aGUgbWFwIG9iamVjdC4KKyAgICAgICAgR2V0
IHRoZSByZXF1ZXN0IGRhdGEgYW5kIHNlbmQgaXQgdG8gdGhlIFVJUHJvY2Vzcy4KKworICAgICAg
ICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2Vi
UGFnZTo6YWRkVGV4dENoZWNraW5nUmVxdWVzdCk6CisgICAgICAgIEFkZCB0aGUgaWRlbnRpZmll
ciBhbmQgdGhlIHJlcXVlc3QgdG8gdGhlIG1hcCBvYmplY3QuCisKKyAgICAgICAgKFdlYktpdDo6
V2ViUGFnZTo6ZGlkRmluaXNoQ2hlY2tpbmdUZXh0KToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFn
ZTo6ZGlkQ2FuY2VsQ2hlY2tpbmdUZXh0KToKKyAgICAgICAgQ2FsbCBkaWRTdWNjZWVkL2RpZENh
bmNlbCBvbiB0aGUgJ1RleHRDaGVja2luZ1JlcXVlc3QnIHRvIG5vdGlmeSB0aGUgV2ViQ29yZQor
ICAgICAgICBhYm91dCBzcGVsbGNoZWtpbmcgcmVzdWx0cy4KKyAgICAgICAgUmVtb3ZlIHRoZSBy
ZXF1ZXN0IGZyb20gdGhlIG1hcCBvYmplY3QuCisKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBh
Z2UvV2ViUGFnZS5oOgorICAgICAgICBBZGQgZGVjbGFyYXRpb25zIGZvciAnYWRkVGV4dENoZWNr
aW5nUmVxdWVzdCcsICdkaWRGaW5pc2hDaGVja2luZ1RleHQnIGFuZAorICAgICAgICAnZGlkQ2Fu
Y2VsQ2hlY2tpbmdUZXh0LicKKworICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdl
Lm1lc3NhZ2VzLmluOgorICAgICAgICBBZGQgYSBuZXcgZW50cnkgZm9yIERpZEZpbmlzaENoZWNr
aW5nVGV4dCwgRGlkQ2FuY2VsQ2hlY2tpbmdUZXh0LgorCiAyMDEzLTAyLTI4ICBBbGV4ZXkgUHJv
c2t1cnlha292ICA8YXBAYXBwbGUuY29tPgogCiAgICAgICAgIFJlZHVjZSBhbW91bnQgb2YgcmVi
dWlsZGluZyB3aGVuIHRvdWNoaW5nIG5ldHdvcmtpbmcgaGVhZGVycwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdDIvR05VbWFrZWZpbGUubGlzdC5hbSBiL1NvdXJjZS9XZWJLaXQyL0dOVW1ha2Vm
aWxlLmxpc3QuYW0KaW5kZXggOTUyODExNC4uOTE3Y2U0MiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdDIvR05VbWFrZWZpbGUubGlzdC5hbQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9HTlVtYWtlZmls
ZS5saXN0LmFtCkBAIC04NTgsNiArODU4LDggQEAgd2Via2l0Ml9zb3VyY2VzICs9IFwKIAlTb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3Mvc291cC9XZWJTb3VwUmVxdWVzdE1hbmFnZXJQcm94eS5jcHAg
XAogCVNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9zb3VwL1dlYlNvdXBSZXF1ZXN0TWFuYWdlclBy
b3h5LmggXAogCVNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9UZXh0Q2hlY2tlci5oIFwKKwlTb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvVGV4dENoZWNrZXJDb21wbGV0aW9uLmggXAorCVNvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9UZXh0Q2hlY2tlckNvbXBsZXRpb24uY3BwIFwKIAlTb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvVmlzaXRlZExpbmtQcm92aWRlci5jcHAgXAogCVNvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9WaXNpdGVkTGlua1Byb3ZpZGVyLmggXAogCVNvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9XZWJBcHBsaWNhdGlvbkNhY2hlTWFuYWdlclByb3h5LmggXApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdDIvU2NyaXB0cy93ZWJraXQyL21lc3NhZ2VzLnB5IGIvU291cmNlL1dlYktpdDIv
U2NyaXB0cy93ZWJraXQyL21lc3NhZ2VzLnB5CmluZGV4IDQ2N2YzMzcuLmI2OTBhMDEgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1NjcmlwdHMvd2Via2l0Mi9tZXNzYWdlcy5weQorKysgYi9T
b3VyY2UvV2ViS2l0Mi9TY3JpcHRzL3dlYmtpdDIvbWVzc2FnZXMucHkKQEAgLTQwNSw2ICs0MDUs
NyBAQCBkZWYgaGVhZGVyc19mb3JfdHlwZSh0eXBlKToKICAgICAgICAgJ1dlYkNvcmU6OktleXBy
ZXNzQ29tbWFuZCc6IFsnPFdlYkNvcmUvS2V5Ym9hcmRFdmVudC5oPiddLAogICAgICAgICAnV2Vi
Q29yZTo6RmlsZUNob29zZXJTZXR0aW5ncyc6IFsnPFdlYkNvcmUvRmlsZUNob29zZXIuaD4nXSwK
ICAgICAgICAgJ1dlYkNvcmU6OlBsdWdpbkluZm8nOiBbJzxXZWJDb3JlL1BsdWdpbkRhdGEuaD4n
XSwKKyAgICAgICAgJ1dlYkNvcmU6OlRleHRDaGVja2luZ1JlcXVlc3REYXRhJzogWyc8V2ViQ29y
ZS9UZXh0Q2hlY2tpbmcuaD4nXSwKICAgICAgICAgJ1dlYkNvcmU6OlRleHRDaGVja2luZ1Jlc3Vs
dCc6IFsnPFdlYkNvcmUvVGV4dENoZWNrZXJDbGllbnQuaD4nXSwKICAgICAgICAgJ1dlYkNvcmU6
OlZpZXdwb3J0QXR0cmlidXRlcyc6IFsnPFdlYkNvcmUvVmlld3BvcnRBcmd1bWVudHMuaD4nXSwK
ICAgICAgICAgJ1dlYktpdDo6SW5qZWN0ZWRCdW5kbGVVc2VyTWVzc2FnZUVuY29kZXInOiBbXSwK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMu
Y3BwIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYkNvcmVBcmd1bWVudENvZGVycy5jcHAKaW5k
ZXggNGY2MGM0NS4uYWVjYzJlNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvU2hhcmVkL1dl
YkNvcmVBcmd1bWVudENvZGVycy5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYkNv
cmVBcmd1bWVudENvZGVycy5jcHAKQEAgLTgyOSw2ICs4MjksMzUgQEAgYm9vbCBBcmd1bWVudENv
ZGVyPEdyYW1tYXJEZXRhaWw+OjpkZWNvZGUoQXJndW1lbnREZWNvZGVyJiBkZWNvZGVyLCBHcmFt
bWFyRGV0YWkKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAordm9pZCBBcmd1bWVudENvZGVyPFRleHRD
aGVja2luZ1JlcXVlc3REYXRhPjo6ZW5jb2RlKEFyZ3VtZW50RW5jb2RlciYgZW5jb2RlciwgY29u
c3QgVGV4dENoZWNraW5nUmVxdWVzdERhdGEmIHJlcXVlc3QpCit7CisgICAgZW5jb2RlciA8PCBy
ZXF1ZXN0LnNlcXVlbmNlKCk7CisgICAgZW5jb2RlciA8PCByZXF1ZXN0LnRleHQoKTsKKyAgICBl
bmNvZGVyIDw8IHJlcXVlc3QubWFzaygpOworICAgIGVuY29kZXIuZW5jb2RlRW51bShyZXF1ZXN0
LnByb2Nlc3NUeXBlKCkpOworfQorCitib29sIEFyZ3VtZW50Q29kZXI8VGV4dENoZWNraW5nUmVx
dWVzdERhdGE+OjpkZWNvZGUoQXJndW1lbnREZWNvZGVyJiBkZWNvZGVyLCBUZXh0Q2hlY2tpbmdS
ZXF1ZXN0RGF0YSYgcmVxdWVzdCkKK3sKKyAgICBpbnQgc2VxdWVuY2U7CisgICAgaWYgKCFkZWNv
ZGVyLmRlY29kZShzZXF1ZW5jZSkpCisgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgIFN0cmlu
ZyB0ZXh0OworICAgIGlmICghZGVjb2Rlci5kZWNvZGUodGV4dCkpCisgICAgICAgIHJldHVybiBm
YWxzZTsKKworICAgIFRleHRDaGVja2luZ1R5cGVNYXNrIG1hc2s7CisgICAgaWYgKCFkZWNvZGVy
LmRlY29kZShtYXNrKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgVGV4dENoZWNraW5n
UHJvY2Vzc1R5cGUgcHJvY2Vzc1R5cGU7CisgICAgaWYgKCFkZWNvZGVyLmRlY29kZUVudW0ocHJv
Y2Vzc1R5cGUpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICByZXF1ZXN0ID0gVGV4dENo
ZWNraW5nUmVxdWVzdERhdGEoc2VxdWVuY2UsIHRleHQsIG1hc2ssIHByb2Nlc3NUeXBlKTsKKyAg
ICByZXR1cm4gdHJ1ZTsKK30KIAogdm9pZCBBcmd1bWVudENvZGVyPFRleHRDaGVja2luZ1Jlc3Vs
dD46OmVuY29kZShBcmd1bWVudEVuY29kZXImIGVuY29kZXIsIGNvbnN0IFRleHRDaGVja2luZ1Jl
c3VsdCYgcmVzdWx0KQogewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYkNv
cmVBcmd1bWVudENvZGVycy5oIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYkNvcmVBcmd1bWVu
dENvZGVycy5oCmluZGV4IDBkOGViNzYuLmU5MTQ3NGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQyL1NoYXJlZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9T
aGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmgKQEAgLTQ5LDYgKzQ5LDcgQEAgbmFtZXNwYWNl
IFdlYkNvcmUgewogICAgIGNsYXNzIFJlc291cmNlRXJyb3I7CiAgICAgY2xhc3MgUmVzb3VyY2VS
ZXF1ZXN0OwogICAgIGNsYXNzIFJlc291cmNlUmVzcG9uc2U7CisgICAgY2xhc3MgVGV4dENoZWNr
aW5nUmVxdWVzdERhdGE7CiAgICAgY2xhc3MgVXNlclN0eWxlU2hlZXQ7CiAgICAgY2xhc3MgVXNl
clNjcmlwdDsKICAgICBzdHJ1Y3QgQ29tcG9zaXRpb25VbmRlcmxpbmU7CkBAIC0yMzMsNiArMjM0
LDExIEBAIHRlbXBsYXRlPD4gc3RydWN0IEFyZ3VtZW50Q29kZXI8V2ViQ29yZTo6R3JhbW1hckRl
dGFpbD4gewogICAgIHN0YXRpYyBib29sIGRlY29kZShBcmd1bWVudERlY29kZXImLCBXZWJDb3Jl
OjpHcmFtbWFyRGV0YWlsJik7CiB9OwogCit0ZW1wbGF0ZTw+IHN0cnVjdCBBcmd1bWVudENvZGVy
PFdlYkNvcmU6OlRleHRDaGVja2luZ1JlcXVlc3REYXRhPiB7CisgICAgc3RhdGljIHZvaWQgZW5j
b2RlKEFyZ3VtZW50RW5jb2RlciYsIGNvbnN0IFdlYkNvcmU6OlRleHRDaGVja2luZ1JlcXVlc3RE
YXRhJik7CisgICAgc3RhdGljIGJvb2wgZGVjb2RlKEFyZ3VtZW50RGVjb2RlciYsIFdlYkNvcmU6
OlRleHRDaGVja2luZ1JlcXVlc3REYXRhJik7Cit9OworCiB0ZW1wbGF0ZTw+IHN0cnVjdCBBcmd1
bWVudENvZGVyPFdlYkNvcmU6OlRleHRDaGVja2luZ1Jlc3VsdD4gewogICAgIHN0YXRpYyB2b2lk
IGVuY29kZShBcmd1bWVudEVuY29kZXImLCBjb25zdCBXZWJDb3JlOjpUZXh0Q2hlY2tpbmdSZXN1
bHQmKTsKICAgICBzdGF0aWMgYm9vbCBkZWNvZGUoQXJndW1lbnREZWNvZGVyJiwgV2ViQ29yZTo6
VGV4dENoZWNraW5nUmVzdWx0Jik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9UYXJnZXQu
cHJpIGIvU291cmNlL1dlYktpdDIvVGFyZ2V0LnByaQppbmRleCA5NDQ5MGVjLi5hYzNjMDdlIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9UYXJnZXQucHJpCisrKyBiL1NvdXJjZS9XZWJLaXQy
L1RhcmdldC5wcmkKQEAgLTIzMiw2ICsyMzIsNyBAQCBIRUFERVJTICs9IFwKICAgICBVSVByb2Nl
c3MvU3RhdGlzdGljc1JlcXVlc3QuaCBcCiAgICAgVUlQcm9jZXNzL1N0b3JhZ2UvU3RvcmFnZU1h
bmFnZXIuaCBcCiAgICAgVUlQcm9jZXNzL1RleHRDaGVja2VyLmggXAorICAgIFVJUHJvY2Vzcy9U
ZXh0Q2hlY2tlckNvbXBsZXRpb24uaCBcCiAgICAgVUlQcm9jZXNzL1Zpc2l0ZWRMaW5rUHJvdmlk
ZXIuaCBcCiAgICAgVUlQcm9jZXNzL1dlYkFwcGxpY2F0aW9uQ2FjaGVNYW5hZ2VyUHJveHkuaCBc
CiAgICAgVUlQcm9jZXNzL1dlYkJhY2tGb3J3YXJkTGlzdC5oIFwKQEAgLTU2Myw2ICs1NjQsNyBA
QCBTT1VSQ0VTICs9IFwKICAgICBVSVByb2Nlc3MvRmluZEluZGljYXRvci5jcHAgXAogICAgIFVJ
UHJvY2Vzcy9HZW9sb2NhdGlvblBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5LmNwcCBcCiAg
ICAgVUlQcm9jZXNzL0dlb2xvY2F0aW9uUGVybWlzc2lvblJlcXVlc3RQcm94eS5jcHAgXAorICAg
IFVJUHJvY2Vzcy9UZXh0Q2hlY2tlckNvbXBsZXRpb24uY3BwIFwKICAgICBVSVByb2Nlc3MvTGF1
bmNoZXIvUHJvY2Vzc0xhdW5jaGVyLmNwcCBcCiAgICAgVUlQcm9jZXNzL0xhdW5jaGVyL3F0L1By
b2Nlc3NMYXVuY2hlclF0LmNwcCBcCiAgICAgVUlQcm9jZXNzL05vdGlmaWNhdGlvbnMvTm90aWZp
Y2F0aW9uUGVybWlzc2lvblJlcXVlc3QuY3BwIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9UZXh0Q2hlY2tlci5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1RleHRD
aGVja2VyLmgKaW5kZXggNDliNWE0OC4uYTE2Y2IxOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL1RleHRDaGVja2VyLmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L1RleHRDaGVja2VyLmgKQEAgLTI2LDYgKzI2LDcgQEAKICNpZm5kZWYgVGV4dENoZWNrZXJfaAog
I2RlZmluZSBUZXh0Q2hlY2tlcl9oCiAKKyNpbmNsdWRlICJUZXh0Q2hlY2tlckNvbXBsZXRpb24u
aCIKICNpbmNsdWRlIDxXZWJDb3JlL0VkaXRvckNsaWVudC5oPgogI2luY2x1ZGUgPFdlYkNvcmUv
VGV4dENoZWNrZXJDbGllbnQuaD4KIApAQCAtNzIsNiArNzMsNyBAQCBwdWJsaWM6CiAgICAgc3Rh
dGljIHZvaWQgZ2V0R3Vlc3Nlc0ZvcldvcmQoaW50NjRfdCBzcGVsbERvY3VtZW50VGFnLCBjb25z
dCBTdHJpbmcmIHdvcmQsIGNvbnN0IFN0cmluZyYgY29udGV4dCwgVmVjdG9yPFN0cmluZz4mIGd1
ZXNzZXMpOwogICAgIHN0YXRpYyB2b2lkIGxlYXJuV29yZChpbnQ2NF90IHNwZWxsRG9jdW1lbnRU
YWcsIGNvbnN0IFN0cmluZyYgd29yZCk7CiAgICAgc3RhdGljIHZvaWQgaWdub3JlV29yZChpbnQ2
NF90IHNwZWxsRG9jdW1lbnRUYWcsIGNvbnN0IFN0cmluZyYgd29yZCk7CisgICAgc3RhdGljIHZv
aWQgcmVxdWVzdENoZWNraW5nT2ZTdHJpbmcoUGFzc1JlZlB0cjxUZXh0Q2hlY2tlckNvbXBsZXRp
b24+KTsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL1RleHRDaGVja2VyQ29tcGxldGlvbi5jcHAgYi9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvVGV4dENoZWNrZXJDb21wbGV0aW9uLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwLi4xZGQ0MmRlCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL1RleHRDaGVja2VyQ29tcGxldGlvbi5jcHAKQEAgLTAsMCArMSw2OCBAQAor
LyoKKyAqIENvcHlyaWdodCAoQykgMjAxMyBTYW1zdW5nIEVsZWN0cm9uaWNzCisgKgorICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMg
b2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgor
ICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqIGRvY3VtZW50YXRpb24gYW5kL29yIG90
aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJ
UyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRS
SUJVVE9SUworICogIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVT
LCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJ
RVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBV
UlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQgSE9M
REVSIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVD
VCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBE
QU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9G
IFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICog
UFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04g
QU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1Qg
TElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcKKyAqIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNF
KSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUworICogU09GVFdBUkUs
IEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8K
KworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlRleHRDaGVja2VyQ29tcGxldGlvbi5o
IgorCit1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKKworbmFtZXNwYWNlIFdlYktpdCB7CisKK1Bh
c3NSZWZQdHI8VGV4dENoZWNrZXJDb21wbGV0aW9uPiBUZXh0Q2hlY2tlckNvbXBsZXRpb246OmNy
ZWF0ZSh1aW50NjRfdCByZXF1ZXN0SUQsIGNvbnN0IFRleHRDaGVja2luZ1JlcXVlc3REYXRhJiBy
ZXF1ZXN0RGF0YSwgV2ViUGFnZVByb3h5KiBwYWdlKQoreworICAgIHJldHVybiBhZG9wdFJlZihu
ZXcgVGV4dENoZWNrZXJDb21wbGV0aW9uKHJlcXVlc3RJRCwgcmVxdWVzdERhdGEsIHBhZ2UpKTsK
K30KKworVGV4dENoZWNrZXJDb21wbGV0aW9uOjpUZXh0Q2hlY2tlckNvbXBsZXRpb24odWludDY0
X3QgcmVxdWVzdElELCBjb25zdCBUZXh0Q2hlY2tpbmdSZXF1ZXN0RGF0YSYgcmVxdWVzdERhdGEs
IFdlYlBhZ2VQcm94eSogcGFnZSkKKyAgICA6IG1fcmVxdWVzdElEKHJlcXVlc3RJRCkKKyAgICAs
IG1fcmVxdWVzdERhdGEocmVxdWVzdERhdGEpCisgICAgLCBtX3BhZ2UocGFnZSkKK3sKK30KKwor
Y29uc3QgVGV4dENoZWNraW5nUmVxdWVzdERhdGEmIFRleHRDaGVja2VyQ29tcGxldGlvbjo6dGV4
dENoZWNraW5nUmVxdWVzdERhdGEoKSBjb25zdAoreworICAgIHJldHVybiBtX3JlcXVlc3REYXRh
OworfQorCitpbnQ2NF90IFRleHRDaGVja2VyQ29tcGxldGlvbjo6c3BlbGxEb2N1bWVudFRhZygp
Cit7CisgICAgcmV0dXJuIG1fcGFnZS0+c3BlbGxEb2N1bWVudFRhZygpOworfQorCit2b2lkIFRl
eHRDaGVja2VyQ29tcGxldGlvbjo6ZGlkRmluaXNoQ2hlY2tpbmdUZXh0KGNvbnN0IFZlY3RvcjxU
ZXh0Q2hlY2tpbmdSZXN1bHQ+JiByZXN1bHQpIGNvbnN0Cit7CisgICAgaWYgKHJlc3VsdC5pc0Vt
cHR5KCkpCisgICAgICAgIGRpZENhbmNlbENoZWNraW5nVGV4dCgpOworCisgICAgbV9wYWdlLT5k
aWRGaW5pc2hDaGVja2luZ1RleHQobV9yZXF1ZXN0SUQsIHJlc3VsdCk7Cit9CisKK3ZvaWQgVGV4
dENoZWNrZXJDb21wbGV0aW9uOjpkaWRDYW5jZWxDaGVja2luZ1RleHQoKSBjb25zdAoreworICAg
IG1fcGFnZS0+ZGlkQ2FuY2VsQ2hlY2tpbmdUZXh0KG1fcmVxdWVzdElEKTsKK30KKworfSAvLyBu
YW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvVGV4
dENoZWNrZXJDb21wbGV0aW9uLmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvVGV4dENoZWNr
ZXJDb21wbGV0aW9uLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOWQ5ZTZh
NgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9UZXh0Q2hlY2tl
ckNvbXBsZXRpb24uaApAQCAtMCwwICsxLDU0IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEz
IFNhbXN1bmcgRWxlY3Ryb25pY3MKKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICog
YXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFp
biB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4g
YmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGlu
IHRoZQorICogZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdp
dGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZ
IFRIRSBDT1BZUklHSFQgSE9MREVSUwkgQU5EIENPTlRSSUJVVE9SUworICogIkFTIElTIiBBTkQg
QU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFO
RCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElO
IE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQgSE9MREVSIE9SCisgKiBDT05UUklCVVRPUlMg
QkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwK
KyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VS
VklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5U
RVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklM
SVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNM
VURJTkcKKyAqIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VU
IE9GIFRIRSBVU0UgT0YgVEhJUworICogU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUg
UE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBUZXh0Q2hlY2tlckNv
bXBsZXRpb25faAorI2RlZmluZSBUZXh0Q2hlY2tlckNvbXBsZXRpb25faAorCisjaW5jbHVkZSAi
V2ViUGFnZVByb3h5LmgiCisjaW5jbHVkZSA8V2ViQ29yZS9UZXh0Q2hlY2tpbmcuaD4KKyNpbmNs
dWRlIDx3dGYvVmVjdG9yLmg+CisKK25hbWVzcGFjZSBXZWJLaXQgeworCitjbGFzcyBUZXh0Q2hl
Y2tlckNvbXBsZXRpb24gOiBwdWJsaWMgUmVmQ291bnRlZDxUZXh0Q2hlY2tlckNvbXBsZXRpb24+
IHsKK3B1YmxpYzoKKyAgICBzdGF0aWMgUGFzc1JlZlB0cjxUZXh0Q2hlY2tlckNvbXBsZXRpb24+
IGNyZWF0ZSh1aW50NjRfdCByZXF1ZXN0SUQsIGNvbnN0IFdlYkNvcmU6OlRleHRDaGVja2luZ1Jl
cXVlc3REYXRhJiwgV2ViUGFnZVByb3h5Kik7CisKKyAgICBjb25zdCBXZWJDb3JlOjpUZXh0Q2hl
Y2tpbmdSZXF1ZXN0RGF0YSYgdGV4dENoZWNraW5nUmVxdWVzdERhdGEoKSBjb25zdDsKKyAgICBp
bnQ2NF90IHNwZWxsRG9jdW1lbnRUYWcoKTsKKyAgICB2b2lkIGRpZEZpbmlzaENoZWNraW5nVGV4
dChjb25zdCBWZWN0b3I8V2ViQ29yZTo6VGV4dENoZWNraW5nUmVzdWx0PiYpIGNvbnN0OworICAg
IHZvaWQgZGlkQ2FuY2VsQ2hlY2tpbmdUZXh0KCkgY29uc3Q7CisKK3ByaXZhdGU6CisgICAgVGV4
dENoZWNrZXJDb21wbGV0aW9uKHVpbnQ2NF90IHJlcXVlc3RJRCwgY29uc3QgV2ViQ29yZTo6VGV4
dENoZWNraW5nUmVxdWVzdERhdGEmLCBXZWJQYWdlUHJveHkqKTsKKworICAgIGNvbnN0IHVpbnQ2
NF90IG1fcmVxdWVzdElEOworICAgIGNvbnN0IFdlYkNvcmU6OlRleHRDaGVja2luZ1JlcXVlc3RE
YXRhIG1fcmVxdWVzdERhdGE7CisgICAgV2ViUGFnZVByb3h5KiBtX3BhZ2U7Cit9OworCit9IC8v
IG5hbWVzcGFjZSBXZWJLaXQKKworI2VuZGlmIC8vIFRleHRDaGVja2VyQ29tcGxldGlvbl9oCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcCBiL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCmluZGV4IDJmMjA2ZGQuLjdj
YzAyMWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHku
Y3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCkBAIC0z
NDAxLDYgKzM0MDEsMjAgQEAgdm9pZCBXZWJQYWdlUHJveHk6Omlnbm9yZVdvcmQoY29uc3QgU3Ry
aW5nJiB3b3JkKQogICAgIFRleHRDaGVja2VyOjppZ25vcmVXb3JkKHNwZWxsRG9jdW1lbnRUYWco
KSwgd29yZCk7CiB9CiAKK3ZvaWQgV2ViUGFnZVByb3h5OjpyZXF1ZXN0Q2hlY2tpbmdPZlN0cmlu
Zyh1aW50NjRfdCByZXF1ZXN0SUQsIGNvbnN0IFRleHRDaGVja2luZ1JlcXVlc3REYXRhJiByZXF1
ZXN0KQoreworICAgIFRleHRDaGVja2VyOjpyZXF1ZXN0Q2hlY2tpbmdPZlN0cmluZyhUZXh0Q2hl
Y2tlckNvbXBsZXRpb246OmNyZWF0ZShyZXF1ZXN0SUQsIHJlcXVlc3QsIHRoaXMpKTsKK30KKwor
dm9pZCBXZWJQYWdlUHJveHk6OmRpZEZpbmlzaENoZWNraW5nVGV4dCh1aW50NjRfdCByZXF1ZXN0
SUQsIGNvbnN0IFZlY3RvcjxXZWJDb3JlOjpUZXh0Q2hlY2tpbmdSZXN1bHQ+JiByZXN1bHQpIGNv
bnN0Cit7CisgICAgbV9wcm9jZXNzLT5zZW5kKE1lc3NhZ2VzOjpXZWJQYWdlOjpEaWRGaW5pc2hD
aGVja2luZ1RleHQocmVxdWVzdElELCByZXN1bHQpLCBtX3BhZ2VJRCk7Cit9CisKK3ZvaWQgV2Vi
UGFnZVByb3h5OjpkaWRDYW5jZWxDaGVja2luZ1RleHQodWludDY0X3QgcmVxdWVzdElEKSBjb25z
dAoreworICAgIG1fcHJvY2Vzcy0+c2VuZChNZXNzYWdlczo6V2ViUGFnZTo6RGlkQ2FuY2VsQ2hl
Y2tpbmdUZXh0KHJlcXVlc3RJRCksIG1fcGFnZUlEKTsKK30KIC8vIE90aGVyCiAKIHZvaWQgV2Vi
UGFnZVByb3h5OjpzZXRGb2N1cyhib29sIGZvY3VzZWQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
V2ViUGFnZVByb3h5LmgKaW5kZXggYjhjOGU0NS4uZDg1MzFlMiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9XZWJQYWdlUHJveHkuaApAQCAtNzU2LDYgKzc1NiwxMCBAQCBwdWJsaWM6CiAKICAg
ICB2b2lkIGRpZFJlY2VpdmVBdXRoZW50aWNhdGlvbkNoYWxsZW5nZVByb3h5KHVpbnQ2NF90IGZy
YW1lSUQsIFBhc3NSZWZQdHI8QXV0aGVudGljYXRpb25DaGFsbGVuZ2VQcm94eT4pOwogCisgICAg
aW50NjRfdCBzcGVsbERvY3VtZW50VGFnKCk7CisgICAgdm9pZCBkaWRGaW5pc2hDaGVja2luZ1Rl
eHQodWludDY0X3QgcmVxdWVzdElELCBjb25zdCBWZWN0b3I8V2ViQ29yZTo6VGV4dENoZWNraW5n
UmVzdWx0PiYpIGNvbnN0OworICAgIHZvaWQgZGlkQ2FuY2VsQ2hlY2tpbmdUZXh0KHVpbnQ2NF90
IHJlcXVlc3RJRCkgY29uc3Q7CisKICAgICB2b2lkIGNvbm5lY3Rpb25XaWxsT3BlbihDb3JlSVBD
OjpDb25uZWN0aW9uKik7CiAgICAgdm9pZCBjb25uZWN0aW9uV2lsbENsb3NlKENvcmVJUEM6OkNv
bm5lY3Rpb24qKTsKIApAQCAtOTU0LDcgKzk1OCw2IEBAIHByaXZhdGU6CiAjZW5kaWYKIAogICAg
IC8vIFNwZWxsaW5nIGFuZCBncmFtbWFyLgotICAgIGludDY0X3Qgc3BlbGxEb2N1bWVudFRhZygp
OwogI2lmIFVTRShVTklGSUVEX1RFWFRfQ0hFQ0tJTkcpCiAgICAgdm9pZCBjaGVja1RleHRPZlBh
cmFncmFwaChjb25zdCBTdHJpbmcmIHRleHQsIHVpbnQ2NF90IGNoZWNraW5nVHlwZXMsIFZlY3Rv
cjxXZWJDb3JlOjpUZXh0Q2hlY2tpbmdSZXN1bHQ+JiByZXN1bHRzKTsKICNlbmRpZgpAQCAtOTY2
LDYgKzk2OSw3IEBAIHByaXZhdGU6CiAgICAgdm9pZCBnZXRHdWVzc2VzRm9yV29yZChjb25zdCBT
dHJpbmcmIHdvcmQsIGNvbnN0IFN0cmluZyYgY29udGV4dCwgVmVjdG9yPFN0cmluZz4mIGd1ZXNz
ZXMpOwogICAgIHZvaWQgbGVhcm5Xb3JkKGNvbnN0IFN0cmluZyYgd29yZCk7CiAgICAgdm9pZCBp
Z25vcmVXb3JkKGNvbnN0IFN0cmluZyYgd29yZCk7CisgICAgdm9pZCByZXF1ZXN0Q2hlY2tpbmdP
ZlN0cmluZyh1aW50NjRfdCByZXF1ZXN0SUQsIGNvbnN0IFdlYkNvcmU6OlRleHRDaGVja2luZ1Jl
cXVlc3REYXRhJik7CiAKICAgICB2b2lkIHNldEZvY3VzKGJvb2wgZm9jdXNlZCk7CiAgICAgdm9p
ZCB0YWtlRm9jdXModWludDMyX3QgZGlyZWN0aW9uKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvV2ViUGFnZVByb3h5Lm1lc3NhZ2VzLmluCmluZGV4IDQxOWZkMDUuLjY0YzU3ZWQg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkubWVzc2Fn
ZXMuaW4KKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5tZXNzYWdl
cy5pbgpAQCAtMjMzLDYgKzIzMyw3IEBAIG1lc3NhZ2VzIC0+IFdlYlBhZ2VQcm94eSB7CiAgICAg
R2V0R3Vlc3Nlc0ZvcldvcmQoV1RGOjpTdHJpbmcgd29yZCwgV1RGOjpTdHJpbmcgY29udGV4dCkg
LT4gKFZlY3RvcjxXVEY6OlN0cmluZz4gZ3Vlc3NlcykKICAgICBMZWFybldvcmQoV1RGOjpTdHJp
bmcgd29yZCk7CiAgICAgSWdub3JlV29yZChXVEY6OlN0cmluZyB3b3JkKTsKKyAgICBSZXF1ZXN0
Q2hlY2tpbmdPZlN0cmluZyh1aW50NjRfdCByZXF1ZXN0SUQsIFdlYkNvcmU6OlRleHRDaGVja2lu
Z1JlcXVlc3REYXRhIHJlcXVlc3QpCiAKICAgICAjIERyYWcgYW5kIGRyb3AgbWVzc2FnZXMKICNp
ZiBFTkFCTEUoRFJBR19TVVBQT1JUKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL2VmbC9UZXh0Q2hlY2tlckVmbC5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvZWZs
L1RleHRDaGVja2VyRWZsLmNwcAppbmRleCAyMmZkNDcxLi41MjliMWJlIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvZWZsL1RleHRDaGVja2VyRWZsLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvZWZsL1RleHRDaGVja2VyRWZsLmNwcApAQCAtMjgsNiArMjgs
NyBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIlRleHRDaGVja2VyLmgiCiAKKyNp
bmNsdWRlICJOb3RJbXBsZW1lbnRlZC5oIgogI2luY2x1ZGUgIlRleHRDaGVja2VyU3RhdGUuaCIK
IAogI2lmIEVOQUJMRShTUEVMTENIRUNLKQpAQCAtMjkwLDQgKzI5MSw5IEBAIHZvaWQgVGV4dENo
ZWNrZXI6Omlnbm9yZVdvcmQoaW50NjRfdCBzcGVsbERvY3VtZW50VGFnLCBjb25zdCBTdHJpbmcm
IHdvcmQpCiAjZW5kaWYKIH0KIAordm9pZCBUZXh0Q2hlY2tlcjo6cmVxdWVzdENoZWNraW5nT2ZT
dHJpbmcoUGFzc1JlZlB0cjxUZXh0Q2hlY2tlckNvbXBsZXRpb24+KQoreworICAgIG5vdEltcGxl
bWVudGVkKCk7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL2d0ay9UZXh0Q2hlY2tlckd0ay5jcHAgYi9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvZ3RrL1RleHRDaGVja2VyR3RrLmNwcAppbmRleCA0MDVjMGUxLi42YmM0MTkw
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvZ3RrL1RleHRDaGVja2VyR3Rr
LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvZ3RrL1RleHRDaGVja2VyR3RrLmNw
cApAQCAtMjksNiArMjksNyBAQAogCiAjaW5jbHVkZSAiVGV4dENoZWNrZXJTdGF0ZS5oIgogI2lu
Y2x1ZGUgIldlYlRleHRDaGVja2VyLmgiCisjaW5jbHVkZSA8V2ViQ29yZS9Ob3RJbXBsZW1lbnRl
ZC5oPgogCiB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKICAKQEAgLTEzNyw0ICsxMzgsOSBAQCB2
b2lkIFRleHRDaGVja2VyOjppZ25vcmVXb3JkKGludDY0X3Qgc3BlbGxEb2N1bWVudFRhZywgY29u
c3QgU3RyaW5nJiB3b3JkKQogICAgIFdlYlRleHRDaGVja2VyOjpzaGFyZWQoKS0+Y2xpZW50KCku
aWdub3JlV29yZChzcGVsbERvY3VtZW50VGFnLCB3b3JkKTsKIH0KIAordm9pZCBUZXh0Q2hlY2tl
cjo6cmVxdWVzdENoZWNraW5nT2ZTdHJpbmcoUGFzc1JlZlB0cjxUZXh0Q2hlY2tlckNvbXBsZXRp
b24+KQoreworICAgIG5vdEltcGxlbWVudGVkKCk7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYktp
dApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL21hYy9UZXh0Q2hlY2tlck1h
Yy5tbSBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9tYWMvVGV4dENoZWNrZXJNYWMubW0KaW5k
ZXggZjVjOGNlMi4uNDYxNGFkZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L21hYy9UZXh0Q2hlY2tlck1hYy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvbWFj
L1RleHRDaGVja2VyTWFjLm1tCkBAIC0zOTEsNCArMzkxLDkgQEAgdm9pZCBUZXh0Q2hlY2tlcjo6
aWdub3JlV29yZChpbnQ2NF90IHNwZWxsRG9jdW1lbnRUYWcsIGNvbnN0IFN0cmluZyYgd29yZCkK
ICAgICBbW05TU3BlbGxDaGVja2VyIHNoYXJlZFNwZWxsQ2hlY2tlcl0gaWdub3JlV29yZDp3b3Jk
IGluU3BlbGxEb2N1bWVudFdpdGhUYWc6c3BlbGxEb2N1bWVudFRhZ107CiB9CiAKK3ZvaWQgVGV4
dENoZWNrZXI6OnJlcXVlc3RDaGVja2luZ09mU3RyaW5nKFBhc3NSZWZQdHI8VGV4dENoZWNrZXJD
b21wbGV0aW9uPikKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworfQorCiB9IC8vIG5hbWVzcGFj
ZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9xdC9UZXh0Q2hl
Y2tlclF0LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9xdC9UZXh0Q2hlY2tlclF0LmNw
cAppbmRleCA0YTMzMTg0Li43ZTM0M2UxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvcXQvVGV4dENoZWNrZXJRdC5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L3F0L1RleHRDaGVja2VyUXQuY3BwCkBAIC0xMjYsNCArMTI2LDkgQEAgdm9pZCBUZXh0Q2hlY2tl
cjo6aWdub3JlV29yZChpbnQ2NF90IHNwZWxsRG9jdW1lbnRUYWcsIGNvbnN0IFN0cmluZyYgd29y
ZCkKICAgICBub3RJbXBsZW1lbnRlZCgpOwogfQogCit2b2lkIFRleHRDaGVja2VyOjpyZXF1ZXN0
Q2hlY2tpbmdPZlN0cmluZyhQYXNzUmVmUHRyPFRleHRDaGVja2VyQ29tcGxldGlvbj4pCit7Cisg
ICAgbm90SW1wbGVtZW50ZWQoKTsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJLaXQyLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9T
b3VyY2UvV2ViS2l0Mi9XZWJLaXQyLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggZjg4
YjI4OS4uMTQwZWQ1YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViS2l0Mi54Y29kZXBy
b2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYktpdDIueGNvZGVwcm9q
L3Byb2plY3QucGJ4cHJvagpAQCAtMjA5LDYgKzIwOSw4IEBACiAJCTFBQTNENzYyMTY1MUI3RDMw
MDg3MTNEMCAvKiBSZW1vdGVMYXllclRyZWVIb3N0TWVzc2FnZXMuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFBQTNENzYwMTY1MUI3RDMwMDg3MTNEMCAv
KiBSZW1vdGVMYXllclRyZWVIb3N0TWVzc2FnZXMuaCAqLzsgfTsKIAkJMUFBNDE3Q0IxMkMwMEND
QTAwMkJFNjdCIC8qIFRleHRDaGVja2VyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSAxQUE0MTdDOTEyQzAwQ0NBMDAyQkU2N0IgLyogVGV4dENoZWNrZXIu
aCAqLzsgfTsKIAkJMUFBNDE3RUYxMkMwMEQ4NzAwMkJFNjdCIC8qIFRleHRDaGVja2VyTWFjLm1t
IGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMUFBNDE3RUQx
MkMwMEQ4NzAwMkJFNjdCIC8qIFRleHRDaGVja2VyTWFjLm1tICovOyB9OworCQkxWlo0MTdFRjEy
QzAwRDg3MDAyQkU2N0IgLyogVGV4dENoZWNrZXJDb21wbGV0aW9uLmNwcCBpbiBTb3VyY2VzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFCQjQxN0M5MTJDMDBDQ0EwMDJCRTY3
QiAvKiBUZXh0Q2hlY2tlckNvbXBsZXRpb24uY3BwICovOyB9OworCQkxUVE0MTdDQjEyQzAwQ0NB
MDAyQkU2N0IgLyogVGV4dENoZWNrZXJDb21wbGV0aW9uLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxQ0M0MTdDOTEyQzAwQ0NBMDAyQkU2N0IgLyogVGV4
dENoZWNrZXJDb21wbGV0aW9uLmggKi87IH07CiAJCTFBQTQxQUI1MTJDMDJFQzQwMDJCRTY3QiAv
KiBFZGl0b3JTdGF0ZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gMUFBNDFBQjQxMkMwMkVDNDAwMkJFNjdCIC8qIEVkaXRvclN0YXRlLmggKi87IH07CiAJ
CTFBQTQ3OTIzMTJBNTlGRDkwMDgyMzZDMyAvKiBQbHVnaW5Qcm9jZXNzTWFjLm1tIGluIFNvdXJj
ZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMUFBNDc5MjIxMkE1OUZEOTAw
ODIzNkMzIC8qIFBsdWdpblByb2Nlc3NNYWMubW0gKi87IH07CiAJCTFBQTQ3OUIwMTJBNUE0MzYw
MDgyMzZDMyAvKiBDYXJib24uZnJhbWV3b3JrIGluIEZyYW1ld29ya3MgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gMUFBMUNEMDYxMDBGQTFCQTAwNzhERUJDIC8qIENhcmJvbi5m
cmFtZXdvcmsgKi87IH07CkBAIC0xNDk1LDYgKzE0OTcsOCBAQAogCQkxQTUwREIxRTExMEEzQkRD
MDAwRDNGRTUgLyogV2ViUHJvY2Vzcy5hcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZXhwbGljaXRGaWxlVHlwZSA9IHdyYXBwZXIuYXBwbGljYXRpb247IGluY2x1ZGVJbkluZGV4ID0g
MDsgcGF0aCA9IFdlYlByb2Nlc3MuYXBwOyBzb3VyY2VUcmVlID0gQlVJTFRfUFJPRFVDVFNfRElS
OyB9OwogCQkxQTU5NEFCODExMkExRkI2MDA5REU3QzcgLyogV2ViVUlDbGllbnQuY3BwICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gV2ViVUlDbGllbnQuY3BwOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQkxQTU5NEFCOTExMkExRkI2MDA5REU3QzcgLyogV2ViVUlD
bGllbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2ViVUlDbGllbnQuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMUJCNDE3QzkxMkMwMENDQTAwMkJFNjdCIC8q
IFRleHRDaGVja2VyQ29tcGxldGlvbi5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7
IHBhdGggPSBUZXh0Q2hlY2tlckNvbXBsZXRpb24uY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OworCQkxQ0M0MTdDOTEyQzAwQ0NBMDAyQkU2N0IgLyogVGV4dENoZWNrZXJDb21wbGV0aW9u
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFRleHRDaGVja2VyQ29tcGxldGlv
bi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkxQTVFNERBMzEyRDNCRDNEMDA5OUEy
QkIgLyogVGV4dENoZWNrZXJTdGF0ZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBUZXh0Q2hlY2tlclN0YXRlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTFBNjQy
MEUyMTJEQ0UyRkYwMENBQUUyQyAvKiBTaGFyZWFibGVCaXRtYXAuY3BwICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gU2hhcmVhYmxlQml0bWFwLmNwcDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJMUE2NDIwRTMxMkRDRTJGRjAwQ0FBRTJDIC8qIFNoYXJlYWJsZUJp
dG1hcC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTaGFyZWFibGVCaXRtYXAu
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTM4MjgsNiArMzgzMiw4IEBACiAJCQkJ
NTFBNEQ1QTgxNkNBQzRGRjAwMEU2MTVFIC8qIFN0YXRpc3RpY3NSZXF1ZXN0LmNwcCAqLywKIAkJ
CQk1MTRCREVEMjE2Qzk4RUREMDBFNEUyNUUgLyogU3RhdGlzdGljc1JlcXVlc3QuaCAqLywKIAkJ
CQkxQUE0MTdDOTEyQzAwQ0NBMDAyQkU2N0IgLyogVGV4dENoZWNrZXIuaCAqLywKKwkJCQkxQkI0
MTdDOTEyQzAwQ0NBMDAyQkU2N0IgLyogVGV4dENoZWNrZXJDb21wbGV0aW9uLmNwcCAqLywKKwkJ
CQkxQ0M0MTdDOTEyQzAwQ0NBMDAyQkU2N0IgLyogVGV4dENoZWNrZXJDb21wbGV0aW9uLmggKi8s
CiAJCQkJMUEwRjI5RTExMjBCNDQ0MjAwNTNEMUI5IC8qIFZpc2l0ZWRMaW5rUHJvdmlkZXIuY3Bw
ICovLAogCQkJCTFBMEYyOUUyMTIwQjQ0NDIwMDUzRDFCOSAvKiBWaXNpdGVkTGlua1Byb3ZpZGVy
LmggKi8sCiAJCQkJNTEyRTM1MjAxMzBCNTUwMTAwQUJEMTlBIC8qIFdlYkFwcGxpY2F0aW9uQ2Fj
aGVNYW5hZ2VyUHJveHkuY3BwICovLApAQCAtNTI0Niw2ICs1MjUyLDcgQEAKIAkJCQkyOTZCRDg1
RDE1MDE5QkMzMDA3MUY0MjQgLyogU3RyaW5nVXRpbGl0aWVzLmggaW4gSGVhZGVycyAqLywKIAkJ
CQk1MTgxNUJBMDE2QTYyMjIxMDA1NDUwMUYgLyogU3luY05ldHdvcmtSZXNvdXJjZUxvYWRlci5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJMUFBNDE3Q0IxMkMwMENDQTAwMkJFNjdCIC8qIFRleHRDaGVj
a2VyLmggaW4gSGVhZGVycyAqLywKKwkJCQkxUVE0MTdDQjEyQzAwQ0NBMDAyQkU2N0IgLyogVGV4
dENoZWNrZXJDb21wbGV0aW9uLmggaW4gSGVhZGVycyAqLywKIAkJCQkxQTVFNERBNDEyRDNCRDNE
MDA5OUEyQkIgLyogVGV4dENoZWNrZXJTdGF0ZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMUFBRjI2
MzkxNDY4N0MzOTAwNEExRThBIC8qIFRpbGVkQ29yZUFuaW1hdGlvbkRyYXdpbmdBcmVhLmggaW4g
SGVhZGVycyAqLywKIAkJCQkxQUYwNUQ4NzE0Njg4MzQ4MDA4QjFFODEgLyogVGlsZWRDb3JlQW5p
bWF0aW9uRHJhd2luZ0FyZWFQcm94eS5oIGluIEhlYWRlcnMgKi8sCkBAIC02NDYxLDYgKzY0Njgs
NyBAQAogCQkJCTFBMTNCRUIzMTYzNUE5QzgwMEYxOUMwMyAvKiBTdHJpbmdSZWZlcmVuY2UuY3Bw
IGluIFNvdXJjZXMgKi8sCiAJCQkJMjk2QkQ4NUUxNTAxOUJDMzAwNzFGNDI0IC8qIFN0cmluZ1V0
aWxpdGllcy5tbSBpbiBTb3VyY2VzICovLAogCQkJCTUxODE1QjlGMTZBNjIyMjEwMDU0NTAxRiAv
KiBTeW5jTmV0d29ya1Jlc291cmNlTG9hZGVyLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTFaWjQx
N0VGMTJDMDBEODcwMDJCRTY3QiAvKiBUZXh0Q2hlY2tlckNvbXBsZXRpb24uY3BwIGluIFNvdXJj
ZXMgKi8sCiAJCQkJMUFBNDE3RUYxMkMwMEQ4NzAwMkJFNjdCIC8qIFRleHRDaGVja2VyTWFjLm1t
IGluIFNvdXJjZXMgKi8sCiAJCQkJMUFBRjI2MzgxNDY4N0MzOTAwNEExRThBIC8qIFRpbGVkQ29y
ZUFuaW1hdGlvbkRyYXdpbmdBcmVhLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJMUFGMDVEODYxNDY4
ODM0ODAwOEIxRTgxIC8qIFRpbGVkQ29yZUFuaW1hdGlvbkRyYXdpbmdBcmVhUHJveHkubW0gaW4g
U291cmNlcyAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29y
ZVN1cHBvcnQvV2ViRWRpdG9yQ2xpZW50LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
V2ViQ29yZVN1cHBvcnQvV2ViRWRpdG9yQ2xpZW50LmNwcAppbmRleCA0ZDMzZjkyLi4wYmNiYTZj
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dl
YkVkaXRvckNsaWVudC5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3Jl
U3VwcG9ydC9XZWJFZGl0b3JDbGllbnQuY3BwCkBAIC00Niw2ICs0Niw3IEBACiAjaW5jbHVkZSA8
V2ViQ29yZS9Ob3RJbXBsZW1lbnRlZC5oPgogI2luY2x1ZGUgPFdlYkNvcmUvUGFnZS5oPgogI2lu
Y2x1ZGUgPFdlYkNvcmUvU3R5bGVQcm9wZXJ0eVNldC5oPgorI2luY2x1ZGUgPFdlYkNvcmUvU3Bl
bGxDaGVja2VyLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9UZXh0SXRlcmF0b3IuaD4KICNpbmNsdWRl
IDxXZWJDb3JlL1VuZG9TdGVwLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9Vc2VyVHlwaW5nR2VzdHVy
ZUluZGljYXRvci5oPgpAQCAtNjEsNiArNjIsMTIgQEAgdXNpbmcgbmFtZXNwYWNlIEhUTUxOYW1l
czsKIAogbmFtZXNwYWNlIFdlYktpdCB7CiAKK3N0YXRpYyB1aW50NjRfdCBnZW5lcmF0ZVRleHRD
aGVja2luZ1JlcXVlc3RJRCgpCit7CisgICAgc3RhdGljIHVpbnQ2NF90IHVuaXF1ZVRleHRDaGVj
a2luZ1JlcXVlc3RJRCA9IDE7CisgICAgcmV0dXJuIHVuaXF1ZVRleHRDaGVja2luZ1JlcXVlc3RJ
RCsrOworfQorCiB2b2lkIFdlYkVkaXRvckNsaWVudDo6cGFnZURlc3Ryb3llZCgpCiB7CiAgICAg
ZGVsZXRlIHRoaXM7CkBAIC00NjgsNiArNDc1LDE2IEBAIHZvaWQgV2ViRWRpdG9yQ2xpZW50Ojpn
ZXRHdWVzc2VzRm9yV29yZChjb25zdCBTdHJpbmcmIHdvcmQsIGNvbnN0IFN0cmluZyYgY29udGV4
CiAgICAgbV9wYWdlLT5zZW5kU3luYyhNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpHZXRHdWVzc2Vz
Rm9yV29yZCh3b3JkLCBjb250ZXh0KSwgTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6R2V0R3Vlc3Nl
c0ZvcldvcmQ6OlJlcGx5KGd1ZXNzZXMpKTsKIH0KIAordm9pZCBXZWJFZGl0b3JDbGllbnQ6OnJl
cXVlc3RDaGVja2luZ09mU3RyaW5nKFdURjo6UGFzc1JlZlB0cjxUZXh0Q2hlY2tpbmdSZXF1ZXN0
PiBwcnBSZXF1ZXN0KQoreworICAgIFJlZlB0cjxUZXh0Q2hlY2tpbmdSZXF1ZXN0PiByZXF1ZXN0
ID0gcHJwUmVxdWVzdDsKKworICAgIHVpbnQ2NF90IHJlcXVlc3RJRCA9IGdlbmVyYXRlVGV4dENo
ZWNraW5nUmVxdWVzdElEKCk7CisgICAgbV9wYWdlLT5hZGRUZXh0Q2hlY2tpbmdSZXF1ZXN0KHJl
cXVlc3RJRCwgcmVxdWVzdCk7CisKKyAgICBtX3BhZ2UtPnNlbmQoTWVzc2FnZXM6OldlYlBhZ2VQ
cm94eTo6UmVxdWVzdENoZWNraW5nT2ZTdHJpbmcocmVxdWVzdElELCByZXF1ZXN0LT5kYXRhKCkp
KTsKK30KKwogdm9pZCBXZWJFZGl0b3JDbGllbnQ6OndpbGxTZXRJbnB1dE1ldGhvZFN0YXRlKCkK
IHsKICNpZiBQTEFURk9STShRVCkKQEAgLTQ4MiwxMSArNDk5LDYgQEAgdm9pZCBXZWJFZGl0b3JD
bGllbnQ6OnNldElucHV0TWV0aG9kU3RhdGUoYm9vbCkKICAgICBub3RJbXBsZW1lbnRlZCgpOwog
fQogCi12b2lkIFdlYkVkaXRvckNsaWVudDo6cmVxdWVzdENoZWNraW5nT2ZTdHJpbmcoV1RGOjpQ
YXNzUmVmUHRyPFdlYkNvcmU6OlRleHRDaGVja2luZ1JlcXVlc3Q+KQotewotICAgIG5vdEltcGxl
bWVudGVkKCk7Ci19Ci0KIGJvb2wgV2ViRWRpdG9yQ2xpZW50OjpzdXBwb3J0c0dsb2JhbFNlbGVj
dGlvbigpCiB7CiAjaWYgUExBVEZPUk0oUVQpICYmICFkZWZpbmVkKFFUX05PX0NMSVBCT0FSRCkK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNw
cCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcAppbmRleCBj
NGMxZDQ4Li5mMjMzMmFlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dl
YlBhZ2UvV2ViUGFnZS5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdl
L1dlYlBhZ2UuY3BwCkBAIC0zODA5LDQgKzM4MDksMjkgQEAgYm9vbCBXZWJQYWdlOjpjYW5TaG93
TUlNRVR5cGUoY29uc3QgU3RyaW5nJiBNSU1FVHlwZSkgY29uc3QKICAgICByZXR1cm4gZmFsc2U7
CiB9CiAKK3ZvaWQgV2ViUGFnZTo6YWRkVGV4dENoZWNraW5nUmVxdWVzdCh1aW50NjRfdCByZXF1
ZXN0SUQsIFBhc3NSZWZQdHI8VGV4dENoZWNraW5nUmVxdWVzdD4gcmVxdWVzdCkKK3sKKyAgICBt
X3BlbmRpbmdUZXh0Q2hlY2tpbmdSZXF1ZXN0TWFwLmFkZChyZXF1ZXN0SUQsIHJlcXVlc3QpOwor
fQorCit2b2lkIFdlYlBhZ2U6OmRpZEZpbmlzaENoZWNraW5nVGV4dCh1aW50NjRfdCByZXF1ZXN0
SUQsIGNvbnN0IFZlY3RvcjxUZXh0Q2hlY2tpbmdSZXN1bHQ+JiByZXN1bHQpCit7CisgICAgVGV4
dENoZWNraW5nUmVxdWVzdCogcmVxdWVzdCA9IG1fcGVuZGluZ1RleHRDaGVja2luZ1JlcXVlc3RN
YXAuZ2V0KHJlcXVlc3RJRCkuZ2V0KCk7CisgICAgaWYgKCFyZXF1ZXN0KQorICAgICAgICByZXR1
cm47CisKKyAgICByZXF1ZXN0LT5kaWRTdWNjZWVkKHJlc3VsdCk7CisgICAgbV9wZW5kaW5nVGV4
dENoZWNraW5nUmVxdWVzdE1hcC5yZW1vdmUocmVxdWVzdElEKTsKK30KKwordm9pZCBXZWJQYWdl
OjpkaWRDYW5jZWxDaGVja2luZ1RleHQodWludDY0X3QgcmVxdWVzdElEKQoreworICAgIFRleHRD
aGVja2luZ1JlcXVlc3QqIHJlcXVlc3QgPSBtX3BlbmRpbmdUZXh0Q2hlY2tpbmdSZXF1ZXN0TWFw
LmdldChyZXF1ZXN0SUQpLmdldCgpOworICAgIGlmICghcmVxdWVzdCkKKyAgICAgICAgcmV0dXJu
OworCisgICAgcmVxdWVzdC0+ZGlkQ2FuY2VsKCk7CisgICAgbV9wZW5kaW5nVGV4dENoZWNraW5n
UmVxdWVzdE1hcC5yZW1vdmUocmVxdWVzdElEKTsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViS2l0
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5o
IGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaAppbmRleCA5NmQ1
NjEwLi4zZTE1ZjVmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBh
Z2UvV2ViUGFnZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQ
YWdlLmgKQEAgLTU5LDYgKzU5LDcgQEAKICNpbmNsdWRlIDxXZWJDb3JlL1BhZ2VWaXNpYmlsaXR5
U3RhdGUuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1BsYXRmb3JtU2NyZWVuLmg+CiAjaW5jbHVkZSA8
V2ViQ29yZS9TY3JvbGxUeXBlcy5oPgorI2luY2x1ZGUgPFdlYkNvcmUvVGV4dENoZWNraW5nLmg+
CiAjaW5jbHVkZSA8V2ViQ29yZS9XZWJDb3JlS2V5Ym9hcmRVSU1vZGUuaD4KICNpbmNsdWRlIDx3
dGYvSGFzaE1hcC5oPgogI2luY2x1ZGUgPHd0Zi9Pd25QdHIuaD4KQEAgLTExNiw4ICsxMTcsMTAg
QEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgIGNsYXNzIFJlc291cmNlUmVzcG9uc2U7CiAgICAg
Y2xhc3MgUmVzb3VyY2VSZXF1ZXN0OwogICAgIGNsYXNzIFNoYXJlZEJ1ZmZlcjsKKyAgICBjbGFz
cyBUZXh0Q2hlY2tpbmdSZXF1ZXN0OwogICAgIGNsYXNzIFZpc2libGVTZWxlY3Rpb247CiAgICAg
c3RydWN0IEtleXByZXNzQ29tbWFuZDsKKyAgICBzdHJ1Y3QgVGV4dENoZWNraW5nUmVzdWx0Owog
fQogCiBuYW1lc3BhY2UgV2ViS2l0IHsKQEAgLTYxMiw2ICs2MTUsMTAgQEAgcHVibGljOgogCiAg
ICAgYm9vbCBjYW5TaG93TUlNRVR5cGUoY29uc3QgU3RyaW5nJiBNSU1FVHlwZSkgY29uc3Q7CiAK
KyAgICB2b2lkIGFkZFRleHRDaGVja2luZ1JlcXVlc3QodWludDY0X3QgcmVxdWVzdElELCBQYXNz
UmVmUHRyPFdlYkNvcmU6OlRleHRDaGVja2luZ1JlcXVlc3Q+KTsKKyAgICB2b2lkIGRpZEZpbmlz
aENoZWNraW5nVGV4dCh1aW50NjRfdCByZXF1ZXN0SUQsIGNvbnN0IFZlY3RvcjxXZWJDb3JlOjpU
ZXh0Q2hlY2tpbmdSZXN1bHQ+Jik7CisgICAgdm9pZCBkaWRDYW5jZWxDaGVja2luZ1RleHQodWlu
dDY0X3QgcmVxdWVzdElEKTsKKwogcHJpdmF0ZToKICAgICBXZWJQYWdlKHVpbnQ2NF90IHBhZ2VJ
RCwgY29uc3QgV2ViUGFnZUNyZWF0aW9uUGFyYW1ldGVycyYpOwogCkBAIC04MDEsNiArODA4LDgg
QEAgcHJpdmF0ZToKIAogICAgIEhhc2hTZXQ8UGx1Z2luVmlldyo+IG1fcGx1Z2luVmlld3M7CiAK
KyAgICBIYXNoTWFwPHVpbnQ2NF90LCBSZWZQdHI8V2ViQ29yZTo6VGV4dENoZWNraW5nUmVxdWVz
dD4gPiBtX3BlbmRpbmdUZXh0Q2hlY2tpbmdSZXF1ZXN0TWFwOworCiAgICAgYm9vbCBtX3VzZUZp
eGVkTGF5b3V0OwogCiAgICAgYm9vbCBtX2RyYXdzQmFja2dyb3VuZDsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLm1lc3NhZ2VzLmluIGIvU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UubWVzc2FnZXMuaW4KaW5kZXgg
MTI2MjBiYS4uMDc3NWRlZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9X
ZWJQYWdlL1dlYlBhZ2UubWVzc2FnZXMuaW4KKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy9XZWJQYWdlL1dlYlBhZ2UubWVzc2FnZXMuaW4KQEAgLTE5NSw2ICsxOTUsOCBAQCBtZXNzYWdl
cyAtPiBXZWJQYWdlIExlZ2FjeVJlY2VpdmVyIHsKICAgICAjIFNwZWxsaW5nIGFuZCBncmFtbWFy
LgogICAgIEFkdmFuY2VUb05leHRNaXNzcGVsbGluZyhib29sIHN0YXJ0QmVmb3JlU2VsZWN0aW9u
KQogICAgIENoYW5nZVNwZWxsaW5nVG9Xb3JkKFdURjo6U3RyaW5nIHdvcmQpCisgICAgRGlkRmlu
aXNoQ2hlY2tpbmdUZXh0KHVpbnQ2NF90IHJlcXVlc3RJRCwgV1RGOjpWZWN0b3I8V2ViQ29yZTo6
VGV4dENoZWNraW5nUmVzdWx0PiByZXN1bHQpCisgICAgRGlkQ2FuY2VsQ2hlY2tpbmdUZXh0KHVp
bnQ2NF90IHJlcXVlc3RJRCkKICNpZiBVU0UoQVBQS0lUKQogICAgIFVwcGVyY2FzZVdvcmQoKQog
ICAgIExvd2VyY2FzZVdvcmQoKQo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>190903</attachid>
            <date>2013-03-01 00:49:40 -0800</date>
            <delta_ts>2013-03-01 02:51:20 -0800</delta_ts>
            <desc>fix style after rebase</desc>
            <filename>spelling-asynchronous-spell-checking-WK2.patch</filename>
            <type>text/plain</type>
            <size>31927</size>
            <attacher name="Grzegorz Czajkowski">g.czajkowski</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NNYWtlTGlzdHMudHh0IGIvU291cmNlL1dlYktp
dDIvQ01ha2VMaXN0cy50eHQKaW5kZXggYjg2NGQ3MDMuLjZmMmIxZjYgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQyL0NNYWtlTGlzdHMudHh0CisrKyBiL1NvdXJjZS9XZWJLaXQyL0NNYWtlTGlz
dHMudHh0CkBAIC0yNDQsNiArMjQ0LDcgQEAgc2V0KFdlYktpdDJfU09VUkNFUwogICAgIFVJUHJv
Y2Vzcy9QYWdlVmlld3BvcnRDb250cm9sbGVyLmNwcAogICAgIFVJUHJvY2Vzcy9SZXNwb25zaXZl
bmVzc1RpbWVyLmNwcAogICAgIFVJUHJvY2Vzcy9TdGF0aXN0aWNzUmVxdWVzdC5jcHAKKyAgICBV
SVByb2Nlc3MvVGV4dENoZWNrZXJDb21wbGV0aW9uLmNwcAogICAgIFVJUHJvY2Vzcy9WaXNpdGVk
TGlua1Byb3ZpZGVyLmNwcAogICAgIFVJUHJvY2Vzcy9XZWJBcHBsaWNhdGlvbkNhY2hlTWFuYWdl
clByb3h5LmNwcAogICAgIFVJUHJvY2Vzcy9XZWJCYWNrRm9yd2FyZExpc3QuY3BwCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cK
aW5kZXggNWRlYjNkYi4uNWVhMGI2MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdl
TG9nCisrKyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEyMiBAQAorMjAx
My0wMy0wMSAgR3J6ZWdvcnogQ3phamtvd3NraSAgPGcuY3phamtvd3NraUBzYW1zdW5nLmNvbT4s
IE1hcml1c3ogR3J6ZWdvcmN6eWsgPG1hcml1c3ouZ0BzYW1zdW5nLmNvbT4KKworICAgICAgICBb
V0syXSBBc3luY2hyb25vdXMgc3BlbGwgY2hlY2tpbmcgaW1wbGVtZW50YXRpb24KKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEwOTU3NworCisgICAgICAg
IFJldmlld2VkIGJ5IEVucmljYSBDYXN1Y2NpLgorCisgICAgICAgIEFzc29jaWF0ZSB0aGUgYWJz
dHJhY3QgJ1dlYkNvcmU6OlRleHRDaGVja2luZ1JlcXVlc3QnIG9iamVjdCB3aXRoIHRoZSB1bmlx
dWUgaWRlbnRpZmllcgorICAgICAgICBvbiBXZWJQcm9jZXNzIHNpZGUuIFRoZSByZXF1ZXN0IGRh
dGEgZnJvbSB0aGUgJ1RleHRDaGVja2luZ1JlcXVlc3QnIGFyZSByZXRyaWV2ZWQgYW5kCisgICAg
ICAgIHBhc3NlZCB0byB0aGUgVUlQcm9jZXNzLiBUaGUgV0syIGNsaWVudCAoVGV4dENoZWNrZXJ7
R3RrL01hYy9FZmwvUXR9LmNwcCkgZ2V0cworICAgICAgICB0aGUgJ1RleHRDaGVja2VyQ29tcGxl
dGlvbicgb2JqZWN0IHdpdGggdGhlIHJlcXVlc3QgZGF0YSBhbmQgcG9zc2liaWxpdHkgdG8gbm90
aWZ5CisgICAgICAgIHRoZSBXZWJQcm9jZXNzIGFib3V0IHRoZSBzcGVsbGluZyByZXN1bHRzLgor
ICAgICAgICBGaW5hbGx5LCB0aGUgV2ViUGFnZSBvYmplY3QgY2FsbHMgb24gdGhlIHByb3BlciAn
VGV4dENoZWNraW5nUmVxdWVzdCcgb2JqZWN0CisgICAgICAgIGRpZFN1Y2Nlc3MvZGlkQ2FuY2Vs
IG1ldGhvZCB0byBub3RpZnkgdGhlIFdlYkNvcmUgYWJvdXQgdGhlIHNwZWxsaW5nIHJlc3VsdC4K
KworICAgICAgICAqIENNYWtlTGlzdHMudHh0OgorICAgICAgICAqIEdOVW1ha2VmaWxlLmxpc3Qu
YW06CisgICAgICAgIEFkZCAnVGV4dENoZWNrZXJDb21wbGV0aW9uLntoL2NwcH0nIHRvIHRoZSBX
ZWJLaXQyIGNtYWtlIGJhc2VkIGFuZAorICAgICAgICBXSzItR3RrKyBidWlsZHMuCisKKyAgICAg
ICAgKiBTY3JpcHRzL3dlYmtpdDIvbWVzc2FnZXMucHk6CisgICAgICAgIChoZWFkZXJzX2Zvcl90
eXBlKToKKyAgICAgICAgQWRkIGV4Y2VwdGlvbiBmb3IgJ1RleHRDaGVja2luZ1JlcXVlc3REYXRh
JyBjbGFzcyB0byBwcm9wZXJseSBmaW5kIGhlYWRlcgorICAgICAgICBmaWxlIGZvciBpdC4KKwor
ICAgICAgICAqIFNoYXJlZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMuY3BwOgorICAgICAgICAqIFNo
YXJlZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMuaDoKKyAgICAgICAgVGVhY2ggJ0FyZ3VtZW50Q29k
ZXInIGhvdyB0byBlbmNvZGUvZGVjb2RlICdUZXh0Q2hlY2tpbmdSZXF1ZXN0RGF0YScgY2xhc3Mu
CisKKyAgICAgICAgKiBUYXJnZXQucHJpOgorICAgICAgICBBZGQgJ1RleHRDaGVja2VyQ29tcGxl
dGlvbi57aC9jcHB9JyB0byB0aGUgV0syLVF0IGJ1aWxkLgorCisgICAgICAgICogVUlQcm9jZXNz
L1RleHRDaGVja2VyLmg6CisgICAgICAgIEFkZCAncmVxdWVzdENoZWNraW5nT2ZTdHJpbmcnIG1l
dGhvZCB0byB0aGUgVGV4dENoZWNrZXIncyBpbnRlcmZhY2UuCisKKyAgICAgICAgKiBVSVByb2Nl
c3MvVGV4dENoZWNrZXJDb21wbGV0aW9uLmNwcDogQWRkZWQuCisgICAgICAgIChXZWJLaXQ6OlRl
eHRDaGVja2VyQ29tcGxldGlvbjo6Y3JlYXRlKToKKyAgICAgICAgKFdlYktpdDo6VGV4dENoZWNr
ZXJDb21wbGV0aW9uOjpUZXh0Q2hlY2tlckNvbXBsZXRpb24pOgorCisgICAgICAgIChXZWJLaXQ6
OlRleHRDaGVja2VyQ29tcGxldGlvbjo6c3BlbGxEb2N1bWVudFRhZyk6CisgICAgICAgIFJldHVy
biB0aGUgV2ViUGFnZVByb3h5J3Mgc3BlbGxEb2N1bWVudFRhZyBhcyB0aGUgY2xpZW50IG1pZ2h0
IGJlCisgICAgICAgIGludGVyZXN0ZWQgaW4gZnJvbSB3aGljaCBwYWdlIHRoZSByZXF1ZXN0IGNh
bWUuCisKKyAgICAgICAgKFdlYktpdDo6VGV4dENoZWNrZXJDb21wbGV0aW9uOjp0ZXh0Q2hlY2tp
bmdSZXF1ZXN0RGF0YSk6CisgICAgICAgIEFsbG93IHRvIHJldHJpZXZlICdUZXh0Q2hlY2tpbmdS
ZXF1ZXN0RGF0YScgb2JqZWN0LgorCisgICAgICAgIChXZWJLaXQ6OlRleHRDaGVja2VyQ29tcGxl
dGlvbjo6ZGlkRmluaXNoQ2hlY2tpbmdUZXh0KToKKyAgICAgICAgKFdlYktpdDo6VGV4dENoZWNr
ZXJDb21wbGV0aW9uOjpkaWRDYW5jZWxDaGVja2luZ1RleHQpOgorICAgICAgICBOb3RpZnkgdGhl
ICdXZWJQYWdlUHJveHknIG9iamVjdCB0aGF0IHRoZSBnaXZlbiByZXF1ZXN0IGhhcyBiZWVuCisg
ICAgICAgIGhhbmRsZWQgb3IgY2FuY2VsZWQuCisKKyAgICAgICAgKiBVSVByb2Nlc3MvVGV4dENo
ZWNrZXJDb21wbGV0aW9uLmg6IEFkZGVkLgorICAgICAgICBJbnRyb2R1Y2UgYSBuZXcgY2xhc3Mg
Zm9yIFdLMiB0byByZXRyaWV2ZSB0aGUgcmVxdWVzdCBkYXRhIGFuZAorICAgICAgICBjYWxsIGRp
ZEZpbmlzaENoZWNraW5nVGV4dC9kaWRDYW5jZWxDaGVja2luZ1RleHQuCisKKyAgICAgICAgKiBV
SVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5
OjpyZXF1ZXN0Q2hlY2tpbmdPZlN0cmluZyk6CisgICAgICAgIENyZWF0ZSAnVGV4dENoZWNrZXJD
b21wbGV0aW9uJyBvYmplY3QgYW5kIHBhc3MgaXQKKyAgICAgICAgdG8gdGhlICdUZXh0Q2hlY2tl
cjo6cmVxdWVzdENoZWNraW5nT2ZTdHJpbmcnIG1ldGhvZC4KKworICAgICAgICAoV2ViS2l0OjpX
ZWJQYWdlUHJveHk6OmRpZEZpbmlzaENoZWNraW5nVGV4dCk6CisgICAgICAgIChXZWJLaXQ6Oldl
YlBhZ2VQcm94eTo6ZGlkQ2FuY2VsQ2hlY2tpbmdUZXh0KToKKyAgICAgICAgU2VuZCB0aGUgbWVz
c2FnZXMgdG8gV2ViUHJvY2VzcyB0aGF0IHRoZSBnaXZlbiByZXF1ZXN0IGhhcyBiZWVuCisgICAg
ICAgIGhhbmRsZWQgb3IgY2FuY2VsZWQuCisKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUGFnZVBy
b3h5Lmg6CisgICAgICAgIChXZWJQYWdlUHJveHkpOgorICAgICAgICBBZGQgcHVibGljIGRlY2xh
cmF0aW9ucyBmb3IgJ2RpZEZpbmlzaENoZWNraW5nVGV4dCcsICdkaWRDYW5jZWxDaGVja2luZ1Rl
eHQnLgorICAgICAgICBBZGQgcHJpdmF0ZSBkZWNsYXJhdGlvbnMgZm9yICdyZXF1ZXN0Q2hlY2tp
bmdPZlN0cmluZycuCisgICAgICAgIE1vdmUgdGhlICdzcGVsbERvY3VtZW50VGFnKCknIG1ldGhv
ZCB0byB0byB0aGUgcHVibGljIHNlY3Rpb24gdG8gYmUKKyAgICAgICAgYWNjZXNzaWJsZSBmcm9t
ICdUZXh0Q2hlY2tlckNvbXBsZXRpb24nIGNsYXNzLgorCisgICAgICAgICogVUlQcm9jZXNzL1dl
YlBhZ2VQcm94eS5tZXNzYWdlcy5pbjoKKyAgICAgICAgQSBuZXcgZW50cnkgZm9yICdSZXF1ZXN0
Q2hlY2tpbmdPZlN0cmluZycuCisKKyAgICAgICAgKiBVSVByb2Nlc3MvZWZsL1RleHRDaGVja2Vy
RWZsLmNwcDoKKyAgICAgICAgKFdlYktpdDo6VGV4dENoZWNrZXI6OnJlcXVlc3RDaGVja2luZ09m
U3RyaW5nKToKKyAgICAgICAgKFdlYktpdCk6CisgICAgICAgICogVUlQcm9jZXNzL2d0ay9UZXh0
Q2hlY2tlckd0ay5jcHA6CisgICAgICAgIChXZWJLaXQ6OlRleHRDaGVja2VyOjpyZXF1ZXN0Q2hl
Y2tpbmdPZlN0cmluZyk6CisgICAgICAgIChXZWJLaXQpOgorICAgICAgICAqIFVJUHJvY2Vzcy9t
YWMvVGV4dENoZWNrZXJNYWMubW06CisgICAgICAgIChXZWJLaXQ6OlRleHRDaGVja2VyOjpyZXF1
ZXN0Q2hlY2tpbmdPZlN0cmluZyk6CisgICAgICAgIChXZWJLaXQpOgorICAgICAgICAqIFVJUHJv
Y2Vzcy9xdC9UZXh0Q2hlY2tlclF0LmNwcDoKKyAgICAgICAgKFdlYktpdDo6VGV4dENoZWNrZXI6
OnJlcXVlc3RDaGVja2luZ09mU3RyaW5nKToKKyAgICAgICAgKFdlYktpdCk6CisgICAgICAgIEFk
ZCBkdW1teSBpbXBsZW1lbnRhdGlvbnMgZm9yICdyZXF1ZXN0Q2hlY2tpbmdPZlN0cmluZycuCisK
KyAgICAgICAgKiBXZWJLaXQyLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgIEFk
ZCAnVGV4dENoZWNrZXJDb21wbGV0aW9uLntoL2NwcH0gdG8gTWFjIGJ1aWxkLgorCisgICAgICAg
ICogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJFZGl0b3JDbGllbnQuY3BwOgorICAgICAg
ICAoV2ViS2l0OjpnZW5lcmF0ZVRleHRDaGVja2luZ1JlcXVlc3RJRCk6CisgICAgICAgIEhlbHBl
ciBmdW5jdGlvbiB0byBnZW5lcmF0ZSB0aGUgdW5pcXVlIGlkZW50aWZpZXIgZm9yIHRoZSBhYnN0
cmFjdAorICAgICAgICAnVGV4dENoZWNraW5nUmVxdWVzdCcgb2JqZWN0LgorCisgICAgICAgIChX
ZWJLaXQ6OldlYkVkaXRvckNsaWVudDo6cmVxdWVzdENoZWNraW5nT2ZTdHJpbmcpOgorICAgICAg
ICBBc3NvY2lhdGUgJ1RleHRDaGVja2luZ1JlcXVlc3QnIHdpdGggdGhlIHVuaXF1ZSBpZGVudGlm
aWVyIGFuZCBhZGQgdGhlbQorICAgICAgICB0byB0aGUgbWFwIG9iamVjdC4KKyAgICAgICAgR2V0
IHRoZSByZXF1ZXN0IGRhdGEgYW5kIHNlbmQgaXQgdG8gdGhlIFVJUHJvY2Vzcy4KKworICAgICAg
ICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2Vi
UGFnZTo6YWRkVGV4dENoZWNraW5nUmVxdWVzdCk6CisgICAgICAgIEFkZCB0aGUgaWRlbnRpZmll
ciBhbmQgdGhlIHJlcXVlc3QgdG8gdGhlIG1hcCBvYmplY3QuCisKKyAgICAgICAgKFdlYktpdDo6
V2ViUGFnZTo6ZGlkRmluaXNoQ2hlY2tpbmdUZXh0KToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFn
ZTo6ZGlkQ2FuY2VsQ2hlY2tpbmdUZXh0KToKKyAgICAgICAgQ2FsbCBkaWRTdWNjZWVkL2RpZENh
bmNlbCBvbiB0aGUgJ1RleHRDaGVja2luZ1JlcXVlc3QnIHRvIG5vdGlmeSB0aGUgV2ViQ29yZQor
ICAgICAgICBhYm91dCBzcGVsbGNoZWtpbmcgcmVzdWx0cy4KKyAgICAgICAgUmVtb3ZlIHRoZSBy
ZXF1ZXN0IGZyb20gdGhlIG1hcCBvYmplY3QuCisKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBh
Z2UvV2ViUGFnZS5oOgorICAgICAgICBBZGQgZGVjbGFyYXRpb25zIGZvciAnYWRkVGV4dENoZWNr
aW5nUmVxdWVzdCcsICdkaWRGaW5pc2hDaGVja2luZ1RleHQnIGFuZAorICAgICAgICAnZGlkQ2Fu
Y2VsQ2hlY2tpbmdUZXh0LicKKworICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdl
Lm1lc3NhZ2VzLmluOgorICAgICAgICBBZGQgYSBuZXcgZW50cnkgZm9yIERpZEZpbmlzaENoZWNr
aW5nVGV4dCwgRGlkQ2FuY2VsQ2hlY2tpbmdUZXh0LgorCiAyMDEzLTAyLTI4ICBBbGV4ZXkgUHJv
c2t1cnlha292ICA8YXBAYXBwbGUuY29tPgogCiAgICAgICAgIFJlZHVjZSBhbW91bnQgb2YgcmVi
dWlsZGluZyB3aGVuIHRvdWNoaW5nIG5ldHdvcmtpbmcgaGVhZGVycwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdDIvR05VbWFrZWZpbGUubGlzdC5hbSBiL1NvdXJjZS9XZWJLaXQyL0dOVW1ha2Vm
aWxlLmxpc3QuYW0KaW5kZXggOTUyODExNC4uOTE3Y2U0MiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdDIvR05VbWFrZWZpbGUubGlzdC5hbQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9HTlVtYWtlZmls
ZS5saXN0LmFtCkBAIC04NTgsNiArODU4LDggQEAgd2Via2l0Ml9zb3VyY2VzICs9IFwKIAlTb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3Mvc291cC9XZWJTb3VwUmVxdWVzdE1hbmFnZXJQcm94eS5jcHAg
XAogCVNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9zb3VwL1dlYlNvdXBSZXF1ZXN0TWFuYWdlclBy
b3h5LmggXAogCVNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9UZXh0Q2hlY2tlci5oIFwKKwlTb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvVGV4dENoZWNrZXJDb21wbGV0aW9uLmggXAorCVNvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9UZXh0Q2hlY2tlckNvbXBsZXRpb24uY3BwIFwKIAlTb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvVmlzaXRlZExpbmtQcm92aWRlci5jcHAgXAogCVNvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9WaXNpdGVkTGlua1Byb3ZpZGVyLmggXAogCVNvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9XZWJBcHBsaWNhdGlvbkNhY2hlTWFuYWdlclByb3h5LmggXApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdDIvU2NyaXB0cy93ZWJraXQyL21lc3NhZ2VzLnB5IGIvU291cmNlL1dlYktpdDIv
U2NyaXB0cy93ZWJraXQyL21lc3NhZ2VzLnB5CmluZGV4IDQ2N2YzMzcuLmI2OTBhMDEgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1NjcmlwdHMvd2Via2l0Mi9tZXNzYWdlcy5weQorKysgYi9T
b3VyY2UvV2ViS2l0Mi9TY3JpcHRzL3dlYmtpdDIvbWVzc2FnZXMucHkKQEAgLTQwNSw2ICs0MDUs
NyBAQCBkZWYgaGVhZGVyc19mb3JfdHlwZSh0eXBlKToKICAgICAgICAgJ1dlYkNvcmU6OktleXBy
ZXNzQ29tbWFuZCc6IFsnPFdlYkNvcmUvS2V5Ym9hcmRFdmVudC5oPiddLAogICAgICAgICAnV2Vi
Q29yZTo6RmlsZUNob29zZXJTZXR0aW5ncyc6IFsnPFdlYkNvcmUvRmlsZUNob29zZXIuaD4nXSwK
ICAgICAgICAgJ1dlYkNvcmU6OlBsdWdpbkluZm8nOiBbJzxXZWJDb3JlL1BsdWdpbkRhdGEuaD4n
XSwKKyAgICAgICAgJ1dlYkNvcmU6OlRleHRDaGVja2luZ1JlcXVlc3REYXRhJzogWyc8V2ViQ29y
ZS9UZXh0Q2hlY2tpbmcuaD4nXSwKICAgICAgICAgJ1dlYkNvcmU6OlRleHRDaGVja2luZ1Jlc3Vs
dCc6IFsnPFdlYkNvcmUvVGV4dENoZWNrZXJDbGllbnQuaD4nXSwKICAgICAgICAgJ1dlYkNvcmU6
OlZpZXdwb3J0QXR0cmlidXRlcyc6IFsnPFdlYkNvcmUvVmlld3BvcnRBcmd1bWVudHMuaD4nXSwK
ICAgICAgICAgJ1dlYktpdDo6SW5qZWN0ZWRCdW5kbGVVc2VyTWVzc2FnZUVuY29kZXInOiBbXSwK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMu
Y3BwIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYkNvcmVBcmd1bWVudENvZGVycy5jcHAKaW5k
ZXggNGY2MGM0NS4uYWVjYzJlNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvU2hhcmVkL1dl
YkNvcmVBcmd1bWVudENvZGVycy5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYkNv
cmVBcmd1bWVudENvZGVycy5jcHAKQEAgLTgyOSw2ICs4MjksMzUgQEAgYm9vbCBBcmd1bWVudENv
ZGVyPEdyYW1tYXJEZXRhaWw+OjpkZWNvZGUoQXJndW1lbnREZWNvZGVyJiBkZWNvZGVyLCBHcmFt
bWFyRGV0YWkKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAordm9pZCBBcmd1bWVudENvZGVyPFRleHRD
aGVja2luZ1JlcXVlc3REYXRhPjo6ZW5jb2RlKEFyZ3VtZW50RW5jb2RlciYgZW5jb2RlciwgY29u
c3QgVGV4dENoZWNraW5nUmVxdWVzdERhdGEmIHJlcXVlc3QpCit7CisgICAgZW5jb2RlciA8PCBy
ZXF1ZXN0LnNlcXVlbmNlKCk7CisgICAgZW5jb2RlciA8PCByZXF1ZXN0LnRleHQoKTsKKyAgICBl
bmNvZGVyIDw8IHJlcXVlc3QubWFzaygpOworICAgIGVuY29kZXIuZW5jb2RlRW51bShyZXF1ZXN0
LnByb2Nlc3NUeXBlKCkpOworfQorCitib29sIEFyZ3VtZW50Q29kZXI8VGV4dENoZWNraW5nUmVx
dWVzdERhdGE+OjpkZWNvZGUoQXJndW1lbnREZWNvZGVyJiBkZWNvZGVyLCBUZXh0Q2hlY2tpbmdS
ZXF1ZXN0RGF0YSYgcmVxdWVzdCkKK3sKKyAgICBpbnQgc2VxdWVuY2U7CisgICAgaWYgKCFkZWNv
ZGVyLmRlY29kZShzZXF1ZW5jZSkpCisgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgIFN0cmlu
ZyB0ZXh0OworICAgIGlmICghZGVjb2Rlci5kZWNvZGUodGV4dCkpCisgICAgICAgIHJldHVybiBm
YWxzZTsKKworICAgIFRleHRDaGVja2luZ1R5cGVNYXNrIG1hc2s7CisgICAgaWYgKCFkZWNvZGVy
LmRlY29kZShtYXNrKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgVGV4dENoZWNraW5n
UHJvY2Vzc1R5cGUgcHJvY2Vzc1R5cGU7CisgICAgaWYgKCFkZWNvZGVyLmRlY29kZUVudW0ocHJv
Y2Vzc1R5cGUpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICByZXF1ZXN0ID0gVGV4dENo
ZWNraW5nUmVxdWVzdERhdGEoc2VxdWVuY2UsIHRleHQsIG1hc2ssIHByb2Nlc3NUeXBlKTsKKyAg
ICByZXR1cm4gdHJ1ZTsKK30KIAogdm9pZCBBcmd1bWVudENvZGVyPFRleHRDaGVja2luZ1Jlc3Vs
dD46OmVuY29kZShBcmd1bWVudEVuY29kZXImIGVuY29kZXIsIGNvbnN0IFRleHRDaGVja2luZ1Jl
c3VsdCYgcmVzdWx0KQogewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYkNv
cmVBcmd1bWVudENvZGVycy5oIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYkNvcmVBcmd1bWVu
dENvZGVycy5oCmluZGV4IDBkOGViNzYuLmU5MTQ3NGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQyL1NoYXJlZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9T
aGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmgKQEAgLTQ5LDYgKzQ5LDcgQEAgbmFtZXNwYWNl
IFdlYkNvcmUgewogICAgIGNsYXNzIFJlc291cmNlRXJyb3I7CiAgICAgY2xhc3MgUmVzb3VyY2VS
ZXF1ZXN0OwogICAgIGNsYXNzIFJlc291cmNlUmVzcG9uc2U7CisgICAgY2xhc3MgVGV4dENoZWNr
aW5nUmVxdWVzdERhdGE7CiAgICAgY2xhc3MgVXNlclN0eWxlU2hlZXQ7CiAgICAgY2xhc3MgVXNl
clNjcmlwdDsKICAgICBzdHJ1Y3QgQ29tcG9zaXRpb25VbmRlcmxpbmU7CkBAIC0yMzMsNiArMjM0
LDExIEBAIHRlbXBsYXRlPD4gc3RydWN0IEFyZ3VtZW50Q29kZXI8V2ViQ29yZTo6R3JhbW1hckRl
dGFpbD4gewogICAgIHN0YXRpYyBib29sIGRlY29kZShBcmd1bWVudERlY29kZXImLCBXZWJDb3Jl
OjpHcmFtbWFyRGV0YWlsJik7CiB9OwogCit0ZW1wbGF0ZTw+IHN0cnVjdCBBcmd1bWVudENvZGVy
PFdlYkNvcmU6OlRleHRDaGVja2luZ1JlcXVlc3REYXRhPiB7CisgICAgc3RhdGljIHZvaWQgZW5j
b2RlKEFyZ3VtZW50RW5jb2RlciYsIGNvbnN0IFdlYkNvcmU6OlRleHRDaGVja2luZ1JlcXVlc3RE
YXRhJik7CisgICAgc3RhdGljIGJvb2wgZGVjb2RlKEFyZ3VtZW50RGVjb2RlciYsIFdlYkNvcmU6
OlRleHRDaGVja2luZ1JlcXVlc3REYXRhJik7Cit9OworCiB0ZW1wbGF0ZTw+IHN0cnVjdCBBcmd1
bWVudENvZGVyPFdlYkNvcmU6OlRleHRDaGVja2luZ1Jlc3VsdD4gewogICAgIHN0YXRpYyB2b2lk
IGVuY29kZShBcmd1bWVudEVuY29kZXImLCBjb25zdCBXZWJDb3JlOjpUZXh0Q2hlY2tpbmdSZXN1
bHQmKTsKICAgICBzdGF0aWMgYm9vbCBkZWNvZGUoQXJndW1lbnREZWNvZGVyJiwgV2ViQ29yZTo6
VGV4dENoZWNraW5nUmVzdWx0Jik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9UYXJnZXQu
cHJpIGIvU291cmNlL1dlYktpdDIvVGFyZ2V0LnByaQppbmRleCA5NDQ5MGVjLi5hYzNjMDdlIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9UYXJnZXQucHJpCisrKyBiL1NvdXJjZS9XZWJLaXQy
L1RhcmdldC5wcmkKQEAgLTIzMiw2ICsyMzIsNyBAQCBIRUFERVJTICs9IFwKICAgICBVSVByb2Nl
c3MvU3RhdGlzdGljc1JlcXVlc3QuaCBcCiAgICAgVUlQcm9jZXNzL1N0b3JhZ2UvU3RvcmFnZU1h
bmFnZXIuaCBcCiAgICAgVUlQcm9jZXNzL1RleHRDaGVja2VyLmggXAorICAgIFVJUHJvY2Vzcy9U
ZXh0Q2hlY2tlckNvbXBsZXRpb24uaCBcCiAgICAgVUlQcm9jZXNzL1Zpc2l0ZWRMaW5rUHJvdmlk
ZXIuaCBcCiAgICAgVUlQcm9jZXNzL1dlYkFwcGxpY2F0aW9uQ2FjaGVNYW5hZ2VyUHJveHkuaCBc
CiAgICAgVUlQcm9jZXNzL1dlYkJhY2tGb3J3YXJkTGlzdC5oIFwKQEAgLTU2Myw2ICs1NjQsNyBA
QCBTT1VSQ0VTICs9IFwKICAgICBVSVByb2Nlc3MvRmluZEluZGljYXRvci5jcHAgXAogICAgIFVJ
UHJvY2Vzcy9HZW9sb2NhdGlvblBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5LmNwcCBcCiAg
ICAgVUlQcm9jZXNzL0dlb2xvY2F0aW9uUGVybWlzc2lvblJlcXVlc3RQcm94eS5jcHAgXAorICAg
IFVJUHJvY2Vzcy9UZXh0Q2hlY2tlckNvbXBsZXRpb24uY3BwIFwKICAgICBVSVByb2Nlc3MvTGF1
bmNoZXIvUHJvY2Vzc0xhdW5jaGVyLmNwcCBcCiAgICAgVUlQcm9jZXNzL0xhdW5jaGVyL3F0L1By
b2Nlc3NMYXVuY2hlclF0LmNwcCBcCiAgICAgVUlQcm9jZXNzL05vdGlmaWNhdGlvbnMvTm90aWZp
Y2F0aW9uUGVybWlzc2lvblJlcXVlc3QuY3BwIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9UZXh0Q2hlY2tlci5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1RleHRD
aGVja2VyLmgKaW5kZXggNDliNWE0OC4uYTE2Y2IxOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL1RleHRDaGVja2VyLmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L1RleHRDaGVja2VyLmgKQEAgLTI2LDYgKzI2LDcgQEAKICNpZm5kZWYgVGV4dENoZWNrZXJfaAog
I2RlZmluZSBUZXh0Q2hlY2tlcl9oCiAKKyNpbmNsdWRlICJUZXh0Q2hlY2tlckNvbXBsZXRpb24u
aCIKICNpbmNsdWRlIDxXZWJDb3JlL0VkaXRvckNsaWVudC5oPgogI2luY2x1ZGUgPFdlYkNvcmUv
VGV4dENoZWNrZXJDbGllbnQuaD4KIApAQCAtNzIsNiArNzMsNyBAQCBwdWJsaWM6CiAgICAgc3Rh
dGljIHZvaWQgZ2V0R3Vlc3Nlc0ZvcldvcmQoaW50NjRfdCBzcGVsbERvY3VtZW50VGFnLCBjb25z
dCBTdHJpbmcmIHdvcmQsIGNvbnN0IFN0cmluZyYgY29udGV4dCwgVmVjdG9yPFN0cmluZz4mIGd1
ZXNzZXMpOwogICAgIHN0YXRpYyB2b2lkIGxlYXJuV29yZChpbnQ2NF90IHNwZWxsRG9jdW1lbnRU
YWcsIGNvbnN0IFN0cmluZyYgd29yZCk7CiAgICAgc3RhdGljIHZvaWQgaWdub3JlV29yZChpbnQ2
NF90IHNwZWxsRG9jdW1lbnRUYWcsIGNvbnN0IFN0cmluZyYgd29yZCk7CisgICAgc3RhdGljIHZv
aWQgcmVxdWVzdENoZWNraW5nT2ZTdHJpbmcoUGFzc1JlZlB0cjxUZXh0Q2hlY2tlckNvbXBsZXRp
b24+KTsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL1RleHRDaGVja2VyQ29tcGxldGlvbi5jcHAgYi9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvVGV4dENoZWNrZXJDb21wbGV0aW9uLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwLi4xZGQ0MmRlCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL1RleHRDaGVja2VyQ29tcGxldGlvbi5jcHAKQEAgLTAsMCArMSw2OCBAQAor
LyoKKyAqIENvcHlyaWdodCAoQykgMjAxMyBTYW1zdW5nIEVsZWN0cm9uaWNzCisgKgorICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMg
b2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgor
ICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqIGRvY3VtZW50YXRpb24gYW5kL29yIG90
aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJ
UyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRS
SUJVVE9SUworICogIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVT
LCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJ
RVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBV
UlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQgSE9M
REVSIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVD
VCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBE
QU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9G
IFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICog
UFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04g
QU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1Qg
TElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcKKyAqIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNF
KSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUworICogU09GVFdBUkUs
IEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8K
KworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlRleHRDaGVja2VyQ29tcGxldGlvbi5o
IgorCit1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKKworbmFtZXNwYWNlIFdlYktpdCB7CisKK1Bh
c3NSZWZQdHI8VGV4dENoZWNrZXJDb21wbGV0aW9uPiBUZXh0Q2hlY2tlckNvbXBsZXRpb246OmNy
ZWF0ZSh1aW50NjRfdCByZXF1ZXN0SUQsIGNvbnN0IFRleHRDaGVja2luZ1JlcXVlc3REYXRhJiBy
ZXF1ZXN0RGF0YSwgV2ViUGFnZVByb3h5KiBwYWdlKQoreworICAgIHJldHVybiBhZG9wdFJlZihu
ZXcgVGV4dENoZWNrZXJDb21wbGV0aW9uKHJlcXVlc3RJRCwgcmVxdWVzdERhdGEsIHBhZ2UpKTsK
K30KKworVGV4dENoZWNrZXJDb21wbGV0aW9uOjpUZXh0Q2hlY2tlckNvbXBsZXRpb24odWludDY0
X3QgcmVxdWVzdElELCBjb25zdCBUZXh0Q2hlY2tpbmdSZXF1ZXN0RGF0YSYgcmVxdWVzdERhdGEs
IFdlYlBhZ2VQcm94eSogcGFnZSkKKyAgICA6IG1fcmVxdWVzdElEKHJlcXVlc3RJRCkKKyAgICAs
IG1fcmVxdWVzdERhdGEocmVxdWVzdERhdGEpCisgICAgLCBtX3BhZ2UocGFnZSkKK3sKK30KKwor
Y29uc3QgVGV4dENoZWNraW5nUmVxdWVzdERhdGEmIFRleHRDaGVja2VyQ29tcGxldGlvbjo6dGV4
dENoZWNraW5nUmVxdWVzdERhdGEoKSBjb25zdAoreworICAgIHJldHVybiBtX3JlcXVlc3REYXRh
OworfQorCitpbnQ2NF90IFRleHRDaGVja2VyQ29tcGxldGlvbjo6c3BlbGxEb2N1bWVudFRhZygp
Cit7CisgICAgcmV0dXJuIG1fcGFnZS0+c3BlbGxEb2N1bWVudFRhZygpOworfQorCit2b2lkIFRl
eHRDaGVja2VyQ29tcGxldGlvbjo6ZGlkRmluaXNoQ2hlY2tpbmdUZXh0KGNvbnN0IFZlY3RvcjxU
ZXh0Q2hlY2tpbmdSZXN1bHQ+JiByZXN1bHQpIGNvbnN0Cit7CisgICAgaWYgKHJlc3VsdC5pc0Vt
cHR5KCkpCisgICAgICAgIGRpZENhbmNlbENoZWNraW5nVGV4dCgpOworCisgICAgbV9wYWdlLT5k
aWRGaW5pc2hDaGVja2luZ1RleHQobV9yZXF1ZXN0SUQsIHJlc3VsdCk7Cit9CisKK3ZvaWQgVGV4
dENoZWNrZXJDb21wbGV0aW9uOjpkaWRDYW5jZWxDaGVja2luZ1RleHQoKSBjb25zdAoreworICAg
IG1fcGFnZS0+ZGlkQ2FuY2VsQ2hlY2tpbmdUZXh0KG1fcmVxdWVzdElEKTsKK30KKworfSAvLyBu
YW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvVGV4
dENoZWNrZXJDb21wbGV0aW9uLmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvVGV4dENoZWNr
ZXJDb21wbGV0aW9uLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOWQ5ZTZh
NgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9UZXh0Q2hlY2tl
ckNvbXBsZXRpb24uaApAQCAtMCwwICsxLDU0IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEz
IFNhbXN1bmcgRWxlY3Ryb25pY3MKKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICog
YXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFp
biB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4g
YmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGlu
IHRoZQorICogZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdp
dGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZ
IFRIRSBDT1BZUklHSFQgSE9MREVSUwkgQU5EIENPTlRSSUJVVE9SUworICogIkFTIElTIiBBTkQg
QU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFO
RCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElO
IE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQgSE9MREVSIE9SCisgKiBDT05UUklCVVRPUlMg
QkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwK
KyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VS
VklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5U
RVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklM
SVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNM
VURJTkcKKyAqIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VU
IE9GIFRIRSBVU0UgT0YgVEhJUworICogU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUg
UE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBUZXh0Q2hlY2tlckNv
bXBsZXRpb25faAorI2RlZmluZSBUZXh0Q2hlY2tlckNvbXBsZXRpb25faAorCisjaW5jbHVkZSAi
V2ViUGFnZVByb3h5LmgiCisjaW5jbHVkZSA8V2ViQ29yZS9UZXh0Q2hlY2tpbmcuaD4KKyNpbmNs
dWRlIDx3dGYvVmVjdG9yLmg+CisKK25hbWVzcGFjZSBXZWJLaXQgeworCitjbGFzcyBUZXh0Q2hl
Y2tlckNvbXBsZXRpb24gOiBwdWJsaWMgUmVmQ291bnRlZDxUZXh0Q2hlY2tlckNvbXBsZXRpb24+
IHsKK3B1YmxpYzoKKyAgICBzdGF0aWMgUGFzc1JlZlB0cjxUZXh0Q2hlY2tlckNvbXBsZXRpb24+
IGNyZWF0ZSh1aW50NjRfdCByZXF1ZXN0SUQsIGNvbnN0IFdlYkNvcmU6OlRleHRDaGVja2luZ1Jl
cXVlc3REYXRhJiwgV2ViUGFnZVByb3h5Kik7CisKKyAgICBjb25zdCBXZWJDb3JlOjpUZXh0Q2hl
Y2tpbmdSZXF1ZXN0RGF0YSYgdGV4dENoZWNraW5nUmVxdWVzdERhdGEoKSBjb25zdDsKKyAgICBp
bnQ2NF90IHNwZWxsRG9jdW1lbnRUYWcoKTsKKyAgICB2b2lkIGRpZEZpbmlzaENoZWNraW5nVGV4
dChjb25zdCBWZWN0b3I8V2ViQ29yZTo6VGV4dENoZWNraW5nUmVzdWx0PiYpIGNvbnN0OworICAg
IHZvaWQgZGlkQ2FuY2VsQ2hlY2tpbmdUZXh0KCkgY29uc3Q7CisKK3ByaXZhdGU6CisgICAgVGV4
dENoZWNrZXJDb21wbGV0aW9uKHVpbnQ2NF90IHJlcXVlc3RJRCwgY29uc3QgV2ViQ29yZTo6VGV4
dENoZWNraW5nUmVxdWVzdERhdGEmLCBXZWJQYWdlUHJveHkqKTsKKworICAgIGNvbnN0IHVpbnQ2
NF90IG1fcmVxdWVzdElEOworICAgIGNvbnN0IFdlYkNvcmU6OlRleHRDaGVja2luZ1JlcXVlc3RE
YXRhIG1fcmVxdWVzdERhdGE7CisgICAgV2ViUGFnZVByb3h5KiBtX3BhZ2U7Cit9OworCit9IC8v
IG5hbWVzcGFjZSBXZWJLaXQKKworI2VuZGlmIC8vIFRleHRDaGVja2VyQ29tcGxldGlvbl9oCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcCBiL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCmluZGV4IDJmMjA2ZGQuLjdj
YzAyMWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHku
Y3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCkBAIC0z
NDAxLDYgKzM0MDEsMjAgQEAgdm9pZCBXZWJQYWdlUHJveHk6Omlnbm9yZVdvcmQoY29uc3QgU3Ry
aW5nJiB3b3JkKQogICAgIFRleHRDaGVja2VyOjppZ25vcmVXb3JkKHNwZWxsRG9jdW1lbnRUYWco
KSwgd29yZCk7CiB9CiAKK3ZvaWQgV2ViUGFnZVByb3h5OjpyZXF1ZXN0Q2hlY2tpbmdPZlN0cmlu
Zyh1aW50NjRfdCByZXF1ZXN0SUQsIGNvbnN0IFRleHRDaGVja2luZ1JlcXVlc3REYXRhJiByZXF1
ZXN0KQoreworICAgIFRleHRDaGVja2VyOjpyZXF1ZXN0Q2hlY2tpbmdPZlN0cmluZyhUZXh0Q2hl
Y2tlckNvbXBsZXRpb246OmNyZWF0ZShyZXF1ZXN0SUQsIHJlcXVlc3QsIHRoaXMpKTsKK30KKwor
dm9pZCBXZWJQYWdlUHJveHk6OmRpZEZpbmlzaENoZWNraW5nVGV4dCh1aW50NjRfdCByZXF1ZXN0
SUQsIGNvbnN0IFZlY3RvcjxXZWJDb3JlOjpUZXh0Q2hlY2tpbmdSZXN1bHQ+JiByZXN1bHQpIGNv
bnN0Cit7CisgICAgbV9wcm9jZXNzLT5zZW5kKE1lc3NhZ2VzOjpXZWJQYWdlOjpEaWRGaW5pc2hD
aGVja2luZ1RleHQocmVxdWVzdElELCByZXN1bHQpLCBtX3BhZ2VJRCk7Cit9CisKK3ZvaWQgV2Vi
UGFnZVByb3h5OjpkaWRDYW5jZWxDaGVja2luZ1RleHQodWludDY0X3QgcmVxdWVzdElEKSBjb25z
dAoreworICAgIG1fcHJvY2Vzcy0+c2VuZChNZXNzYWdlczo6V2ViUGFnZTo6RGlkQ2FuY2VsQ2hl
Y2tpbmdUZXh0KHJlcXVlc3RJRCksIG1fcGFnZUlEKTsKK30KIC8vIE90aGVyCiAKIHZvaWQgV2Vi
UGFnZVByb3h5OjpzZXRGb2N1cyhib29sIGZvY3VzZWQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
V2ViUGFnZVByb3h5LmgKaW5kZXggYjhjOGU0NS4uZDg1MzFlMiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9XZWJQYWdlUHJveHkuaApAQCAtNzU2LDYgKzc1NiwxMCBAQCBwdWJsaWM6CiAKICAg
ICB2b2lkIGRpZFJlY2VpdmVBdXRoZW50aWNhdGlvbkNoYWxsZW5nZVByb3h5KHVpbnQ2NF90IGZy
YW1lSUQsIFBhc3NSZWZQdHI8QXV0aGVudGljYXRpb25DaGFsbGVuZ2VQcm94eT4pOwogCisgICAg
aW50NjRfdCBzcGVsbERvY3VtZW50VGFnKCk7CisgICAgdm9pZCBkaWRGaW5pc2hDaGVja2luZ1Rl
eHQodWludDY0X3QgcmVxdWVzdElELCBjb25zdCBWZWN0b3I8V2ViQ29yZTo6VGV4dENoZWNraW5n
UmVzdWx0PiYpIGNvbnN0OworICAgIHZvaWQgZGlkQ2FuY2VsQ2hlY2tpbmdUZXh0KHVpbnQ2NF90
IHJlcXVlc3RJRCkgY29uc3Q7CisKICAgICB2b2lkIGNvbm5lY3Rpb25XaWxsT3BlbihDb3JlSVBD
OjpDb25uZWN0aW9uKik7CiAgICAgdm9pZCBjb25uZWN0aW9uV2lsbENsb3NlKENvcmVJUEM6OkNv
bm5lY3Rpb24qKTsKIApAQCAtOTU0LDcgKzk1OCw2IEBAIHByaXZhdGU6CiAjZW5kaWYKIAogICAg
IC8vIFNwZWxsaW5nIGFuZCBncmFtbWFyLgotICAgIGludDY0X3Qgc3BlbGxEb2N1bWVudFRhZygp
OwogI2lmIFVTRShVTklGSUVEX1RFWFRfQ0hFQ0tJTkcpCiAgICAgdm9pZCBjaGVja1RleHRPZlBh
cmFncmFwaChjb25zdCBTdHJpbmcmIHRleHQsIHVpbnQ2NF90IGNoZWNraW5nVHlwZXMsIFZlY3Rv
cjxXZWJDb3JlOjpUZXh0Q2hlY2tpbmdSZXN1bHQ+JiByZXN1bHRzKTsKICNlbmRpZgpAQCAtOTY2
LDYgKzk2OSw3IEBAIHByaXZhdGU6CiAgICAgdm9pZCBnZXRHdWVzc2VzRm9yV29yZChjb25zdCBT
dHJpbmcmIHdvcmQsIGNvbnN0IFN0cmluZyYgY29udGV4dCwgVmVjdG9yPFN0cmluZz4mIGd1ZXNz
ZXMpOwogICAgIHZvaWQgbGVhcm5Xb3JkKGNvbnN0IFN0cmluZyYgd29yZCk7CiAgICAgdm9pZCBp
Z25vcmVXb3JkKGNvbnN0IFN0cmluZyYgd29yZCk7CisgICAgdm9pZCByZXF1ZXN0Q2hlY2tpbmdP
ZlN0cmluZyh1aW50NjRfdCByZXF1ZXN0SUQsIGNvbnN0IFdlYkNvcmU6OlRleHRDaGVja2luZ1Jl
cXVlc3REYXRhJik7CiAKICAgICB2b2lkIHNldEZvY3VzKGJvb2wgZm9jdXNlZCk7CiAgICAgdm9p
ZCB0YWtlRm9jdXModWludDMyX3QgZGlyZWN0aW9uKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvV2ViUGFnZVByb3h5Lm1lc3NhZ2VzLmluCmluZGV4IDQxOWZkMDUuLjY0YzU3ZWQg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkubWVzc2Fn
ZXMuaW4KKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5tZXNzYWdl
cy5pbgpAQCAtMjMzLDYgKzIzMyw3IEBAIG1lc3NhZ2VzIC0+IFdlYlBhZ2VQcm94eSB7CiAgICAg
R2V0R3Vlc3Nlc0ZvcldvcmQoV1RGOjpTdHJpbmcgd29yZCwgV1RGOjpTdHJpbmcgY29udGV4dCkg
LT4gKFZlY3RvcjxXVEY6OlN0cmluZz4gZ3Vlc3NlcykKICAgICBMZWFybldvcmQoV1RGOjpTdHJp
bmcgd29yZCk7CiAgICAgSWdub3JlV29yZChXVEY6OlN0cmluZyB3b3JkKTsKKyAgICBSZXF1ZXN0
Q2hlY2tpbmdPZlN0cmluZyh1aW50NjRfdCByZXF1ZXN0SUQsIFdlYkNvcmU6OlRleHRDaGVja2lu
Z1JlcXVlc3REYXRhIHJlcXVlc3QpCiAKICAgICAjIERyYWcgYW5kIGRyb3AgbWVzc2FnZXMKICNp
ZiBFTkFCTEUoRFJBR19TVVBQT1JUKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL2VmbC9UZXh0Q2hlY2tlckVmbC5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvZWZs
L1RleHRDaGVja2VyRWZsLmNwcAppbmRleCAyMmZkNDcxLi41MjliMWJlIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvZWZsL1RleHRDaGVja2VyRWZsLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvZWZsL1RleHRDaGVja2VyRWZsLmNwcApAQCAtMjgsNiArMjgs
NyBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIlRleHRDaGVja2VyLmgiCiAKKyNp
bmNsdWRlICJOb3RJbXBsZW1lbnRlZC5oIgogI2luY2x1ZGUgIlRleHRDaGVja2VyU3RhdGUuaCIK
IAogI2lmIEVOQUJMRShTUEVMTENIRUNLKQpAQCAtMjkwLDQgKzI5MSw5IEBAIHZvaWQgVGV4dENo
ZWNrZXI6Omlnbm9yZVdvcmQoaW50NjRfdCBzcGVsbERvY3VtZW50VGFnLCBjb25zdCBTdHJpbmcm
IHdvcmQpCiAjZW5kaWYKIH0KIAordm9pZCBUZXh0Q2hlY2tlcjo6cmVxdWVzdENoZWNraW5nT2ZT
dHJpbmcoUGFzc1JlZlB0cjxUZXh0Q2hlY2tlckNvbXBsZXRpb24+KQoreworICAgIG5vdEltcGxl
bWVudGVkKCk7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL2d0ay9UZXh0Q2hlY2tlckd0ay5jcHAgYi9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvZ3RrL1RleHRDaGVja2VyR3RrLmNwcAppbmRleCA0MDVjMGUxLi42YmM0MTkw
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvZ3RrL1RleHRDaGVja2VyR3Rr
LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvZ3RrL1RleHRDaGVja2VyR3RrLmNw
cApAQCAtMjksNiArMjksNyBAQAogCiAjaW5jbHVkZSAiVGV4dENoZWNrZXJTdGF0ZS5oIgogI2lu
Y2x1ZGUgIldlYlRleHRDaGVja2VyLmgiCisjaW5jbHVkZSA8V2ViQ29yZS9Ob3RJbXBsZW1lbnRl
ZC5oPgogCiB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKICAKQEAgLTEzNyw0ICsxMzgsOSBAQCB2
b2lkIFRleHRDaGVja2VyOjppZ25vcmVXb3JkKGludDY0X3Qgc3BlbGxEb2N1bWVudFRhZywgY29u
c3QgU3RyaW5nJiB3b3JkKQogICAgIFdlYlRleHRDaGVja2VyOjpzaGFyZWQoKS0+Y2xpZW50KCku
aWdub3JlV29yZChzcGVsbERvY3VtZW50VGFnLCB3b3JkKTsKIH0KIAordm9pZCBUZXh0Q2hlY2tl
cjo6cmVxdWVzdENoZWNraW5nT2ZTdHJpbmcoUGFzc1JlZlB0cjxUZXh0Q2hlY2tlckNvbXBsZXRp
b24+KQoreworICAgIG5vdEltcGxlbWVudGVkKCk7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYktp
dApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL21hYy9UZXh0Q2hlY2tlck1h
Yy5tbSBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9tYWMvVGV4dENoZWNrZXJNYWMubW0KaW5k
ZXggZjVjOGNlMi4uNDYxNGFkZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L21hYy9UZXh0Q2hlY2tlck1hYy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvbWFj
L1RleHRDaGVja2VyTWFjLm1tCkBAIC0zOTEsNCArMzkxLDkgQEAgdm9pZCBUZXh0Q2hlY2tlcjo6
aWdub3JlV29yZChpbnQ2NF90IHNwZWxsRG9jdW1lbnRUYWcsIGNvbnN0IFN0cmluZyYgd29yZCkK
ICAgICBbW05TU3BlbGxDaGVja2VyIHNoYXJlZFNwZWxsQ2hlY2tlcl0gaWdub3JlV29yZDp3b3Jk
IGluU3BlbGxEb2N1bWVudFdpdGhUYWc6c3BlbGxEb2N1bWVudFRhZ107CiB9CiAKK3ZvaWQgVGV4
dENoZWNrZXI6OnJlcXVlc3RDaGVja2luZ09mU3RyaW5nKFBhc3NSZWZQdHI8VGV4dENoZWNrZXJD
b21wbGV0aW9uPikKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworfQorCiB9IC8vIG5hbWVzcGFj
ZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9xdC9UZXh0Q2hl
Y2tlclF0LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9xdC9UZXh0Q2hlY2tlclF0LmNw
cAppbmRleCA0YTMzMTg0Li43ZTM0M2UxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvcXQvVGV4dENoZWNrZXJRdC5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L3F0L1RleHRDaGVja2VyUXQuY3BwCkBAIC0xMjYsNCArMTI2LDkgQEAgdm9pZCBUZXh0Q2hlY2tl
cjo6aWdub3JlV29yZChpbnQ2NF90IHNwZWxsRG9jdW1lbnRUYWcsIGNvbnN0IFN0cmluZyYgd29y
ZCkKICAgICBub3RJbXBsZW1lbnRlZCgpOwogfQogCit2b2lkIFRleHRDaGVja2VyOjpyZXF1ZXN0
Q2hlY2tpbmdPZlN0cmluZyhQYXNzUmVmUHRyPFRleHRDaGVja2VyQ29tcGxldGlvbj4pCit7Cisg
ICAgbm90SW1wbGVtZW50ZWQoKTsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJLaXQyLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9T
b3VyY2UvV2ViS2l0Mi9XZWJLaXQyLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggZjg4
YjI4OS4uMTQwZWQ1YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViS2l0Mi54Y29kZXBy
b2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYktpdDIueGNvZGVwcm9q
L3Byb2plY3QucGJ4cHJvagpAQCAtMjA5LDYgKzIwOSw4IEBACiAJCTFBQTNENzYyMTY1MUI3RDMw
MDg3MTNEMCAvKiBSZW1vdGVMYXllclRyZWVIb3N0TWVzc2FnZXMuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFBQTNENzYwMTY1MUI3RDMwMDg3MTNEMCAv
KiBSZW1vdGVMYXllclRyZWVIb3N0TWVzc2FnZXMuaCAqLzsgfTsKIAkJMUFBNDE3Q0IxMkMwMEND
QTAwMkJFNjdCIC8qIFRleHRDaGVja2VyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSAxQUE0MTdDOTEyQzAwQ0NBMDAyQkU2N0IgLyogVGV4dENoZWNrZXIu
aCAqLzsgfTsKIAkJMUFBNDE3RUYxMkMwMEQ4NzAwMkJFNjdCIC8qIFRleHRDaGVja2VyTWFjLm1t
IGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMUFBNDE3RUQx
MkMwMEQ4NzAwMkJFNjdCIC8qIFRleHRDaGVja2VyTWFjLm1tICovOyB9OworCQkxWlo0MTdFRjEy
QzAwRDg3MDAyQkU2N0IgLyogVGV4dENoZWNrZXJDb21wbGV0aW9uLmNwcCBpbiBTb3VyY2VzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFCQjQxN0M5MTJDMDBDQ0EwMDJCRTY3
QiAvKiBUZXh0Q2hlY2tlckNvbXBsZXRpb24uY3BwICovOyB9OworCQkxUVE0MTdDQjEyQzAwQ0NB
MDAyQkU2N0IgLyogVGV4dENoZWNrZXJDb21wbGV0aW9uLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxQ0M0MTdDOTEyQzAwQ0NBMDAyQkU2N0IgLyogVGV4
dENoZWNrZXJDb21wbGV0aW9uLmggKi87IH07CiAJCTFBQTQxQUI1MTJDMDJFQzQwMDJCRTY3QiAv
KiBFZGl0b3JTdGF0ZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gMUFBNDFBQjQxMkMwMkVDNDAwMkJFNjdCIC8qIEVkaXRvclN0YXRlLmggKi87IH07CiAJ
CTFBQTQ3OTIzMTJBNTlGRDkwMDgyMzZDMyAvKiBQbHVnaW5Qcm9jZXNzTWFjLm1tIGluIFNvdXJj
ZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMUFBNDc5MjIxMkE1OUZEOTAw
ODIzNkMzIC8qIFBsdWdpblByb2Nlc3NNYWMubW0gKi87IH07CiAJCTFBQTQ3OUIwMTJBNUE0MzYw
MDgyMzZDMyAvKiBDYXJib24uZnJhbWV3b3JrIGluIEZyYW1ld29ya3MgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gMUFBMUNEMDYxMDBGQTFCQTAwNzhERUJDIC8qIENhcmJvbi5m
cmFtZXdvcmsgKi87IH07CkBAIC0xNDk1LDYgKzE0OTcsOCBAQAogCQkxQTUwREIxRTExMEEzQkRD
MDAwRDNGRTUgLyogV2ViUHJvY2Vzcy5hcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZXhwbGljaXRGaWxlVHlwZSA9IHdyYXBwZXIuYXBwbGljYXRpb247IGluY2x1ZGVJbkluZGV4ID0g
MDsgcGF0aCA9IFdlYlByb2Nlc3MuYXBwOyBzb3VyY2VUcmVlID0gQlVJTFRfUFJPRFVDVFNfRElS
OyB9OwogCQkxQTU5NEFCODExMkExRkI2MDA5REU3QzcgLyogV2ViVUlDbGllbnQuY3BwICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gV2ViVUlDbGllbnQuY3BwOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQkxQTU5NEFCOTExMkExRkI2MDA5REU3QzcgLyogV2ViVUlD
bGllbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2ViVUlDbGllbnQuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMUJCNDE3QzkxMkMwMENDQTAwMkJFNjdCIC8q
IFRleHRDaGVja2VyQ29tcGxldGlvbi5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7
IHBhdGggPSBUZXh0Q2hlY2tlckNvbXBsZXRpb24uY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OworCQkxQ0M0MTdDOTEyQzAwQ0NBMDAyQkU2N0IgLyogVGV4dENoZWNrZXJDb21wbGV0aW9u
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFRleHRDaGVja2VyQ29tcGxldGlv
bi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkxQTVFNERBMzEyRDNCRDNEMDA5OUEy
QkIgLyogVGV4dENoZWNrZXJTdGF0ZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBUZXh0Q2hlY2tlclN0YXRlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTFBNjQy
MEUyMTJEQ0UyRkYwMENBQUUyQyAvKiBTaGFyZWFibGVCaXRtYXAuY3BwICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gU2hhcmVhYmxlQml0bWFwLmNwcDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJMUE2NDIwRTMxMkRDRTJGRjAwQ0FBRTJDIC8qIFNoYXJlYWJsZUJp
dG1hcC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTaGFyZWFibGVCaXRtYXAu
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTM4MjgsNiArMzgzMiw4IEBACiAJCQkJ
NTFBNEQ1QTgxNkNBQzRGRjAwMEU2MTVFIC8qIFN0YXRpc3RpY3NSZXF1ZXN0LmNwcCAqLywKIAkJ
CQk1MTRCREVEMjE2Qzk4RUREMDBFNEUyNUUgLyogU3RhdGlzdGljc1JlcXVlc3QuaCAqLywKIAkJ
CQkxQUE0MTdDOTEyQzAwQ0NBMDAyQkU2N0IgLyogVGV4dENoZWNrZXIuaCAqLywKKwkJCQkxQkI0
MTdDOTEyQzAwQ0NBMDAyQkU2N0IgLyogVGV4dENoZWNrZXJDb21wbGV0aW9uLmNwcCAqLywKKwkJ
CQkxQ0M0MTdDOTEyQzAwQ0NBMDAyQkU2N0IgLyogVGV4dENoZWNrZXJDb21wbGV0aW9uLmggKi8s
CiAJCQkJMUEwRjI5RTExMjBCNDQ0MjAwNTNEMUI5IC8qIFZpc2l0ZWRMaW5rUHJvdmlkZXIuY3Bw
ICovLAogCQkJCTFBMEYyOUUyMTIwQjQ0NDIwMDUzRDFCOSAvKiBWaXNpdGVkTGlua1Byb3ZpZGVy
LmggKi8sCiAJCQkJNTEyRTM1MjAxMzBCNTUwMTAwQUJEMTlBIC8qIFdlYkFwcGxpY2F0aW9uQ2Fj
aGVNYW5hZ2VyUHJveHkuY3BwICovLApAQCAtNTI0Niw2ICs1MjUyLDcgQEAKIAkJCQkyOTZCRDg1
RDE1MDE5QkMzMDA3MUY0MjQgLyogU3RyaW5nVXRpbGl0aWVzLmggaW4gSGVhZGVycyAqLywKIAkJ
CQk1MTgxNUJBMDE2QTYyMjIxMDA1NDUwMUYgLyogU3luY05ldHdvcmtSZXNvdXJjZUxvYWRlci5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJMUFBNDE3Q0IxMkMwMENDQTAwMkJFNjdCIC8qIFRleHRDaGVj
a2VyLmggaW4gSGVhZGVycyAqLywKKwkJCQkxUVE0MTdDQjEyQzAwQ0NBMDAyQkU2N0IgLyogVGV4
dENoZWNrZXJDb21wbGV0aW9uLmggaW4gSGVhZGVycyAqLywKIAkJCQkxQTVFNERBNDEyRDNCRDNE
MDA5OUEyQkIgLyogVGV4dENoZWNrZXJTdGF0ZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMUFBRjI2
MzkxNDY4N0MzOTAwNEExRThBIC8qIFRpbGVkQ29yZUFuaW1hdGlvbkRyYXdpbmdBcmVhLmggaW4g
SGVhZGVycyAqLywKIAkJCQkxQUYwNUQ4NzE0Njg4MzQ4MDA4QjFFODEgLyogVGlsZWRDb3JlQW5p
bWF0aW9uRHJhd2luZ0FyZWFQcm94eS5oIGluIEhlYWRlcnMgKi8sCkBAIC02NDYxLDYgKzY0Njgs
NyBAQAogCQkJCTFBMTNCRUIzMTYzNUE5QzgwMEYxOUMwMyAvKiBTdHJpbmdSZWZlcmVuY2UuY3Bw
IGluIFNvdXJjZXMgKi8sCiAJCQkJMjk2QkQ4NUUxNTAxOUJDMzAwNzFGNDI0IC8qIFN0cmluZ1V0
aWxpdGllcy5tbSBpbiBTb3VyY2VzICovLAogCQkJCTUxODE1QjlGMTZBNjIyMjEwMDU0NTAxRiAv
KiBTeW5jTmV0d29ya1Jlc291cmNlTG9hZGVyLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTFaWjQx
N0VGMTJDMDBEODcwMDJCRTY3QiAvKiBUZXh0Q2hlY2tlckNvbXBsZXRpb24uY3BwIGluIFNvdXJj
ZXMgKi8sCiAJCQkJMUFBNDE3RUYxMkMwMEQ4NzAwMkJFNjdCIC8qIFRleHRDaGVja2VyTWFjLm1t
IGluIFNvdXJjZXMgKi8sCiAJCQkJMUFBRjI2MzgxNDY4N0MzOTAwNEExRThBIC8qIFRpbGVkQ29y
ZUFuaW1hdGlvbkRyYXdpbmdBcmVhLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJMUFGMDVEODYxNDY4
ODM0ODAwOEIxRTgxIC8qIFRpbGVkQ29yZUFuaW1hdGlvbkRyYXdpbmdBcmVhUHJveHkubW0gaW4g
U291cmNlcyAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29y
ZVN1cHBvcnQvV2ViRWRpdG9yQ2xpZW50LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
V2ViQ29yZVN1cHBvcnQvV2ViRWRpdG9yQ2xpZW50LmNwcAppbmRleCA0ZDMzZjkyLi4yNjExYTI3
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dl
YkVkaXRvckNsaWVudC5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3Jl
U3VwcG9ydC9XZWJFZGl0b3JDbGllbnQuY3BwCkBAIC00NSw2ICs0NSw3IEBACiAjaW5jbHVkZSA8
V2ViQ29yZS9LZXlib2FyZEV2ZW50Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9Ob3RJbXBsZW1lbnRl
ZC5oPgogI2luY2x1ZGUgPFdlYkNvcmUvUGFnZS5oPgorI2luY2x1ZGUgPFdlYkNvcmUvU3BlbGxD
aGVja2VyLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9TdHlsZVByb3BlcnR5U2V0Lmg+CiAjaW5jbHVk
ZSA8V2ViQ29yZS9UZXh0SXRlcmF0b3IuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1VuZG9TdGVwLmg+
CkBAIC02MSw2ICs2MiwxMiBAQCB1c2luZyBuYW1lc3BhY2UgSFRNTE5hbWVzOwogCiBuYW1lc3Bh
Y2UgV2ViS2l0IHsKIAorc3RhdGljIHVpbnQ2NF90IGdlbmVyYXRlVGV4dENoZWNraW5nUmVxdWVz
dElEKCkKK3sKKyAgICBzdGF0aWMgdWludDY0X3QgdW5pcXVlVGV4dENoZWNraW5nUmVxdWVzdElE
ID0gMTsKKyAgICByZXR1cm4gdW5pcXVlVGV4dENoZWNraW5nUmVxdWVzdElEKys7Cit9CisKIHZv
aWQgV2ViRWRpdG9yQ2xpZW50OjpwYWdlRGVzdHJveWVkKCkKIHsKICAgICBkZWxldGUgdGhpczsK
QEAgLTQ2OCw2ICs0NzUsMTYgQEAgdm9pZCBXZWJFZGl0b3JDbGllbnQ6OmdldEd1ZXNzZXNGb3JX
b3JkKGNvbnN0IFN0cmluZyYgd29yZCwgY29uc3QgU3RyaW5nJiBjb250ZXgKICAgICBtX3BhZ2Ut
PnNlbmRTeW5jKE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OkdldEd1ZXNzZXNGb3JXb3JkKHdvcmQs
IGNvbnRleHQpLCBNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpHZXRHdWVzc2VzRm9yV29yZDo6UmVw
bHkoZ3Vlc3NlcykpOwogfQogCit2b2lkIFdlYkVkaXRvckNsaWVudDo6cmVxdWVzdENoZWNraW5n
T2ZTdHJpbmcoV1RGOjpQYXNzUmVmUHRyPFRleHRDaGVja2luZ1JlcXVlc3Q+IHBycFJlcXVlc3Qp
Cit7CisgICAgUmVmUHRyPFRleHRDaGVja2luZ1JlcXVlc3Q+IHJlcXVlc3QgPSBwcnBSZXF1ZXN0
OworCisgICAgdWludDY0X3QgcmVxdWVzdElEID0gZ2VuZXJhdGVUZXh0Q2hlY2tpbmdSZXF1ZXN0
SUQoKTsKKyAgICBtX3BhZ2UtPmFkZFRleHRDaGVja2luZ1JlcXVlc3QocmVxdWVzdElELCByZXF1
ZXN0KTsKKworICAgIG1fcGFnZS0+c2VuZChNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpSZXF1ZXN0
Q2hlY2tpbmdPZlN0cmluZyhyZXF1ZXN0SUQsIHJlcXVlc3QtPmRhdGEoKSkpOworfQorCiB2b2lk
IFdlYkVkaXRvckNsaWVudDo6d2lsbFNldElucHV0TWV0aG9kU3RhdGUoKQogewogI2lmIFBMQVRG
T1JNKFFUKQpAQCAtNDgyLDExICs0OTksNiBAQCB2b2lkIFdlYkVkaXRvckNsaWVudDo6c2V0SW5w
dXRNZXRob2RTdGF0ZShib29sKQogICAgIG5vdEltcGxlbWVudGVkKCk7CiB9CiAKLXZvaWQgV2Vi
RWRpdG9yQ2xpZW50OjpyZXF1ZXN0Q2hlY2tpbmdPZlN0cmluZyhXVEY6OlBhc3NSZWZQdHI8V2Vi
Q29yZTo6VGV4dENoZWNraW5nUmVxdWVzdD4pCi17Ci0gICAgbm90SW1wbGVtZW50ZWQoKTsKLX0K
LQogYm9vbCBXZWJFZGl0b3JDbGllbnQ6OnN1cHBvcnRzR2xvYmFsU2VsZWN0aW9uKCkKIHsKICNp
ZiBQTEFURk9STShRVCkgJiYgIWRlZmluZWQoUVRfTk9fQ0xJUEJPQVJEKQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwIGIvU291cmNlL1dl
YktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCmluZGV4IGM0YzFkNDguLmYyMzMy
YWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdl
LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAK
QEAgLTM4MDksNCArMzgwOSwyOSBAQCBib29sIFdlYlBhZ2U6OmNhblNob3dNSU1FVHlwZShjb25z
dCBTdHJpbmcmIE1JTUVUeXBlKSBjb25zdAogICAgIHJldHVybiBmYWxzZTsKIH0KIAordm9pZCBX
ZWJQYWdlOjphZGRUZXh0Q2hlY2tpbmdSZXF1ZXN0KHVpbnQ2NF90IHJlcXVlc3RJRCwgUGFzc1Jl
ZlB0cjxUZXh0Q2hlY2tpbmdSZXF1ZXN0PiByZXF1ZXN0KQoreworICAgIG1fcGVuZGluZ1RleHRD
aGVja2luZ1JlcXVlc3RNYXAuYWRkKHJlcXVlc3RJRCwgcmVxdWVzdCk7Cit9CisKK3ZvaWQgV2Vi
UGFnZTo6ZGlkRmluaXNoQ2hlY2tpbmdUZXh0KHVpbnQ2NF90IHJlcXVlc3RJRCwgY29uc3QgVmVj
dG9yPFRleHRDaGVja2luZ1Jlc3VsdD4mIHJlc3VsdCkKK3sKKyAgICBUZXh0Q2hlY2tpbmdSZXF1
ZXN0KiByZXF1ZXN0ID0gbV9wZW5kaW5nVGV4dENoZWNraW5nUmVxdWVzdE1hcC5nZXQocmVxdWVz
dElEKS5nZXQoKTsKKyAgICBpZiAoIXJlcXVlc3QpCisgICAgICAgIHJldHVybjsKKworICAgIHJl
cXVlc3QtPmRpZFN1Y2NlZWQocmVzdWx0KTsKKyAgICBtX3BlbmRpbmdUZXh0Q2hlY2tpbmdSZXF1
ZXN0TWFwLnJlbW92ZShyZXF1ZXN0SUQpOworfQorCit2b2lkIFdlYlBhZ2U6OmRpZENhbmNlbENo
ZWNraW5nVGV4dCh1aW50NjRfdCByZXF1ZXN0SUQpCit7CisgICAgVGV4dENoZWNraW5nUmVxdWVz
dCogcmVxdWVzdCA9IG1fcGVuZGluZ1RleHRDaGVja2luZ1JlcXVlc3RNYXAuZ2V0KHJlcXVlc3RJ
RCkuZ2V0KCk7CisgICAgaWYgKCFyZXF1ZXN0KQorICAgICAgICByZXR1cm47CisKKyAgICByZXF1
ZXN0LT5kaWRDYW5jZWwoKTsKKyAgICBtX3BlbmRpbmdUZXh0Q2hlY2tpbmdSZXF1ZXN0TWFwLnJl
bW92ZShyZXF1ZXN0SUQpOworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmggYi9Tb3VyY2UvV2Vi
S2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oCmluZGV4IDk2ZDU2MTAuLjNlMTVmNWYg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmgK
KysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaApAQCAtNTks
NiArNTksNyBAQAogI2luY2x1ZGUgPFdlYkNvcmUvUGFnZVZpc2liaWxpdHlTdGF0ZS5oPgogI2lu
Y2x1ZGUgPFdlYkNvcmUvUGxhdGZvcm1TY3JlZW4uaD4KICNpbmNsdWRlIDxXZWJDb3JlL1Njcm9s
bFR5cGVzLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9UZXh0Q2hlY2tpbmcuaD4KICNpbmNsdWRlIDxX
ZWJDb3JlL1dlYkNvcmVLZXlib2FyZFVJTW9kZS5oPgogI2luY2x1ZGUgPHd0Zi9IYXNoTWFwLmg+
CiAjaW5jbHVkZSA8d3RmL093blB0ci5oPgpAQCAtMTE2LDggKzExNywxMCBAQCBuYW1lc3BhY2Ug
V2ViQ29yZSB7CiAgICAgY2xhc3MgUmVzb3VyY2VSZXNwb25zZTsKICAgICBjbGFzcyBSZXNvdXJj
ZVJlcXVlc3Q7CiAgICAgY2xhc3MgU2hhcmVkQnVmZmVyOworICAgIGNsYXNzIFRleHRDaGVja2lu
Z1JlcXVlc3Q7CiAgICAgY2xhc3MgVmlzaWJsZVNlbGVjdGlvbjsKICAgICBzdHJ1Y3QgS2V5cHJl
c3NDb21tYW5kOworICAgIHN0cnVjdCBUZXh0Q2hlY2tpbmdSZXN1bHQ7CiB9CiAKIG5hbWVzcGFj
ZSBXZWJLaXQgewpAQCAtNjEyLDYgKzYxNSwxMCBAQCBwdWJsaWM6CiAKICAgICBib29sIGNhblNo
b3dNSU1FVHlwZShjb25zdCBTdHJpbmcmIE1JTUVUeXBlKSBjb25zdDsKIAorICAgIHZvaWQgYWRk
VGV4dENoZWNraW5nUmVxdWVzdCh1aW50NjRfdCByZXF1ZXN0SUQsIFBhc3NSZWZQdHI8V2ViQ29y
ZTo6VGV4dENoZWNraW5nUmVxdWVzdD4pOworICAgIHZvaWQgZGlkRmluaXNoQ2hlY2tpbmdUZXh0
KHVpbnQ2NF90IHJlcXVlc3RJRCwgY29uc3QgVmVjdG9yPFdlYkNvcmU6OlRleHRDaGVja2luZ1Jl
c3VsdD4mKTsKKyAgICB2b2lkIGRpZENhbmNlbENoZWNraW5nVGV4dCh1aW50NjRfdCByZXF1ZXN0
SUQpOworCiBwcml2YXRlOgogICAgIFdlYlBhZ2UodWludDY0X3QgcGFnZUlELCBjb25zdCBXZWJQ
YWdlQ3JlYXRpb25QYXJhbWV0ZXJzJik7CiAKQEAgLTgwMSw2ICs4MDgsOCBAQCBwcml2YXRlOgog
CiAgICAgSGFzaFNldDxQbHVnaW5WaWV3Kj4gbV9wbHVnaW5WaWV3czsKIAorICAgIEhhc2hNYXA8
dWludDY0X3QsIFJlZlB0cjxXZWJDb3JlOjpUZXh0Q2hlY2tpbmdSZXF1ZXN0PiA+IG1fcGVuZGlu
Z1RleHRDaGVja2luZ1JlcXVlc3RNYXA7CisKICAgICBib29sIG1fdXNlRml4ZWRMYXlvdXQ7CiAK
ICAgICBib29sIG1fZHJhd3NCYWNrZ3JvdW5kOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0Mi9X
ZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5tZXNzYWdlcy5pbgppbmRleCAxMjYyMGJhLi4wNzc1
ZGVkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFn
ZS5tZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2Vi
UGFnZS5tZXNzYWdlcy5pbgpAQCAtMTk1LDYgKzE5NSw4IEBAIG1lc3NhZ2VzIC0+IFdlYlBhZ2Ug
TGVnYWN5UmVjZWl2ZXIgewogICAgICMgU3BlbGxpbmcgYW5kIGdyYW1tYXIuCiAgICAgQWR2YW5j
ZVRvTmV4dE1pc3NwZWxsaW5nKGJvb2wgc3RhcnRCZWZvcmVTZWxlY3Rpb24pCiAgICAgQ2hhbmdl
U3BlbGxpbmdUb1dvcmQoV1RGOjpTdHJpbmcgd29yZCkKKyAgICBEaWRGaW5pc2hDaGVja2luZ1Rl
eHQodWludDY0X3QgcmVxdWVzdElELCBXVEY6OlZlY3RvcjxXZWJDb3JlOjpUZXh0Q2hlY2tpbmdS
ZXN1bHQ+IHJlc3VsdCkKKyAgICBEaWRDYW5jZWxDaGVja2luZ1RleHQodWludDY0X3QgcmVxdWVz
dElEKQogI2lmIFVTRShBUFBLSVQpCiAgICAgVXBwZXJjYXNlV29yZCgpCiAgICAgTG93ZXJjYXNl
V29yZCgpCg==
</data>
<flag name="commit-queue"
          id="211721"
          type_id="3"
          status="-"
          setter="webkit.review.bot"
    />
          </attachment>
      

    </bug>

</bugzilla>