<?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>69635</bug_id>
          
          <creation_ts>2011-10-07 09:13:56 -0700</creation_ts>
          <short_desc>Web Inspector: allow to start WorkerContext paused</short_desc>
          <delta_ts>2011-10-10 02:32:51 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Web Inspector (Deprecated)</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Yury Semikhatsky">yurys</reporter>
          <assigned_to name="Yury Semikhatsky">yurys</assigned_to>
          <cc>abarth</cc>
    
    <cc>apavlov</cc>
    
    <cc>bweinstein</cc>
    
    <cc>dimich</cc>
    
    <cc>dslomov</cc>
    
    <cc>fishd</cc>
    
    <cc>gustavo</cc>
    
    <cc>joepeck</cc>
    
    <cc>keishi</cc>
    
    <cc>levin+threading</cc>
    
    <cc>loislo</cc>
    
    <cc>pfeldman</cc>
    
    <cc>pmuellr</cc>
    
    <cc>rik</cc>
    
    <cc>timothy</cc>
    
    <cc>webkit.review.bot</cc>
    
    <cc>xan.lopez</cc>
    
    <cc>yurys</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>480059</commentid>
    <comment_count>0</comment_count>
    <who name="Yury Semikhatsky">yurys</who>
    <bug_when>2011-10-07 09:13:56 -0700</bug_when>
    <thetext>In order to be able to debug worker context initialization inspector needs to connect to front-end and restore its state before first statement of the worker script is executed. That is why we need an API for pausing worker context execution right after the context was created.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>480066</commentid>
    <comment_count>1</comment_count>
      <attachid>110157</attachid>
    <who name="Yury Semikhatsky">yurys</who>
    <bug_when>2011-10-07 09:26:26 -0700</bug_when>
    <thetext>Created attachment 110157
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>480069</commentid>
    <comment_count>2</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-10-07 09:30:08 -0700</bug_when>
    <thetext>Please wait for approval from fishd@chromium.org before submitting because this patch contains changes to the Chromium public API.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>480077</commentid>
    <comment_count>3</comment_count>
      <attachid>110157</attachid>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2011-10-07 09:42:12 -0700</bug_when>
    <thetext>Comment on attachment 110157
Patch

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

&gt; Source/WebCore/workers/WorkerThread.cpp:68
&gt; +    static PassOwnPtr&lt;WorkerThreadStartupData&gt; create(const KURL&amp; scriptURL, const String&amp; userAgent, const String&amp; sourceCode, bool startPaused)

Please make sure worker folks are fine with this additional param prior to landing. Otherwise looks good.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>480081</commentid>
    <comment_count>4</comment_count>
      <attachid>110157</attachid>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2011-10-07 09:53:11 -0700</bug_when>
    <thetext>Comment on attachment 110157
Patch

Attachment 110157 did not pass qt-ews (qt):
Output: http://queues.webkit.org/results/10009268</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>480115</commentid>
    <comment_count>5</comment_count>
    <who name="Dmitry Lomov">dslomov</who>
    <bug_when>2011-10-07 10:36:41 -0700</bug_when>
    <thetext>Looks good.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>480126</commentid>
    <comment_count>6</comment_count>
      <attachid>110157</attachid>
    <who name="Dmitry Titov">dimich</who>
    <bug_when>2011-10-07 10:47:58 -0700</bug_when>
    <thetext>Comment on attachment 110157
Patch

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

Couple of nits, not on substance:

&gt; Source/WebCore/workers/WorkerMessagingProxy.cpp:271
&gt; +    RefPtr&lt;DedicatedWorkerThread&gt; thread = DedicatedWorkerThread::create(scriptURL, userAgent, sourceCode, *this, *this, false);

If we need to call this method with explicit bool param, WebKit style usually requires an enum instead of the bool. It makes call site more readable.

&gt; Source/WebCore/workers/WorkerThread.cpp:94
&gt; +#if ENABLE(NOTIFICATIONS)

Could you please do it in a separate patch? It&apos;s a good catch, but unrelated.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>480152</commentid>
    <comment_count>7</comment_count>
      <attachid>110157</attachid>
    <who name="Gustavo Noronha (kov)">gustavo</who>
    <bug_when>2011-10-07 11:19:12 -0700</bug_when>
    <thetext>Comment on attachment 110157
Patch

Attachment 110157 did not pass gtk-ews (gtk):
Output: http://queues.webkit.org/results/10005296</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>480880</commentid>
    <comment_count>8</comment_count>
      <attachid>110340</attachid>
    <who name="Yury Semikhatsky">yurys</who>
    <bug_when>2011-10-10 02:16:09 -0700</bug_when>
    <thetext>Created attachment 110340
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>480881</commentid>
    <comment_count>9</comment_count>
    <who name="Yury Semikhatsky">yurys</who>
    <bug_when>2011-10-10 02:16:48 -0700</bug_when>
    <thetext>(In reply to comment #6)
&gt; (From update of attachment 110157 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=110157&amp;action=review
&gt; 
&gt; Couple of nits, not on substance:
&gt; 
&gt; &gt; Source/WebCore/workers/WorkerMessagingProxy.cpp:271
&gt; &gt; +    RefPtr&lt;DedicatedWorkerThread&gt; thread = DedicatedWorkerThread::create(scriptURL, userAgent, sourceCode, *this, *this, false);
&gt; 
&gt; If we need to call this method with explicit bool param, WebKit style usually requires an enum instead of the bool. It makes call site more readable.
&gt; 
Good point. Done.

&gt; &gt; Source/WebCore/workers/WorkerThread.cpp:94
&gt; &gt; +#if ENABLE(NOTIFICATIONS)
&gt; 
&gt; Could you please do it in a separate patch? It&apos;s a good catch, but unrelated.
Done. See https://bugs.webkit.org/show_bug.cgi?id=69741</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>480883</commentid>
    <comment_count>10</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-10-10 02:19:58 -0700</bug_when>
    <thetext>Attachment 110340 did not pass style-queue:

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

Source/WebCore/workers/DedicatedWorkerThread.h:43:  The parameter name &quot;startMode&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
Source/WebCore/workers/DedicatedWorkerThread.h:52:  The parameter name &quot;startMode&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
Source/WebCore/workers/WorkerThread.cpp:78:  The parameter name &quot;startMode&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
Source/WebCore/workers/SharedWorkerThread.h:41:  The parameter name &quot;startMode&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
Source/WebCore/workers/SharedWorkerThread.h:48:  The parameter name &quot;startMode&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
Source/WebCore/workers/WorkerThread.h:70:  The parameter name &quot;startMode&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
Total errors found: 6 in 27 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>480886</commentid>
    <comment_count>11</comment_count>
      <attachid>110341</attachid>
    <who name="Yury Semikhatsky">yurys</who>
    <bug_when>2011-10-10 02:25:34 -0700</bug_when>
    <thetext>Created attachment 110341
Patch for landing

Fixed style failures</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>480887</commentid>
    <comment_count>12</comment_count>
    <who name="Yury Semikhatsky">yurys</who>
    <bug_when>2011-10-10 02:32:51 -0700</bug_when>
    <thetext>Committed r97049: &lt;http://trac.webkit.org/changeset/97049&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>110157</attachid>
            <date>2011-10-07 09:26:26 -0700</date>
            <delta_ts>2011-10-10 02:16:09 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-69635-20111007202624.patch</filename>
            <type>text/plain</type>
            <size>42848</size>
            <attacher name="Yury Semikhatsky">yurys</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogOTY5MzEKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCA3OWM4OWZjMzUwNTQyNWQ5
MWYxNWViOWUyZTY5MzZjYTQ2YTE5MmNlLi5lMWU0YmQ5Y2ZkMDc3OWU2ODBlOTdjYTBhYWI1YmZk
N2RlMTNhYmE4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNTggQEAKKzIwMTEtMTAtMDcgIFl1cnkg
U2VtaWtoYXRza3kgIDx5dXJ5c0BjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgV2ViIEluc3BlY3Rv
cjogYWxsb3cgdG8gc3RhcnQgV29ya2VyQ29udGV4dCBwYXVzZWQKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTY5NjM1CisKKyAgICAgICAgQWxsb3cgdG8g
cGF1c2UgV29ya2VyQ29udGV4dCBvbiBzdGFydC4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICAqIGJpbmRpbmdzL3Y4L1NjcmlwdERlYnVnU2VydmVyLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OlNjcmlwdERlYnVnU2VydmVyOjpzZXRQYXVzZU9uTmV4dFN0
YXRlbWVudCk6CisgICAgICAgICogYmluZGluZ3MvdjgvV29ya2VyU2NyaXB0RGVidWdTZXJ2ZXIu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6V29ya2VyU2NyaXB0RGVidWdTZXJ2ZXI6OnJ1bk1lc3Nh
Z2VMb29wT25QYXVzZSk6CisgICAgICAgICogYmluZGluZ3MvdjgvV29ya2VyU2NyaXB0RGVidWdT
ZXJ2ZXIuaDoKKyAgICAgICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9yQ29udHJvbGxlci5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JDb250cm9sbGVyOjpJbnNwZWN0b3JDb250cm9sbGVy
KToKKyAgICAgICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6Okluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6d2lsbEV2YWx1YXRlV29y
a2VyU2NyaXB0KToKKyAgICAgICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9u
Lmg6CisgICAgICAgICogaW5zcGVjdG9yL0luc3BlY3RvclJ1bnRpbWVBZ2VudC5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpJbnNwZWN0b3JSdW50aW1lQWdlbnQ6Okluc3BlY3RvclJ1bnRpbWVBZ2Vu
dCk6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JSdW50aW1lQWdlbnQ6On5JbnNwZWN0b3JS
dW50aW1lQWdlbnQpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yUnVudGltZUFnZW50Ojpw
YXVzZVdvcmtlckNvbnRleHQpOiB0aGlzIG1ldGhvZCB3aWxsIHN0YXJ0CisgICAgICAgIHJ1bm5p
bmcgd29ya2VyIG1lc3NhZ2UgbG9vcCBpbiAiZGVidWciIG1vZGUsIGkuZS4gaXQgd2lsbCBwcm9j
ZXNzIG9ubHkgaW5zcGVjdG9yCisgICAgICAgIHRhc2tzIHVudGlsIG1ldGhvZCBJbnNwZWN0b3JS
dW50aW1lQWdlbnQ6OnJlc3VtZSBpcyBjYWxsZWQuCisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0
b3JSdW50aW1lQWdlbnQ6OnJlc3VtZSk6CisgICAgICAgICogaW5zcGVjdG9yL0luc3BlY3RvclJ1
bnRpbWVBZ2VudC5oOgorICAgICAgICAqIGluc3BlY3Rvci9Xb3JrZXJEZWJ1Z2dlckFnZW50LmNw
cDoKKyAgICAgICAgKiBpbnNwZWN0b3IvV29ya2VyRGVidWdnZXJBZ2VudC5oOgorICAgICAgICAq
IGluc3BlY3Rvci9Xb3JrZXJJbnNwZWN0b3JDb250cm9sbGVyLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6Oldvcmtlckluc3BlY3RvckNvbnRyb2xsZXI6Oldvcmtlckluc3BlY3RvckNvbnRyb2xsZXIp
OgorICAgICAgICAoV2ViQ29yZTo6V29ya2VySW5zcGVjdG9yQ29udHJvbGxlcjo6cmVzdW1lKTog
bWV0aG9kIHdoaWNoIGlzIGNhbGxlZCBmcm9tIFdlYktpdCBsYXllcgorICAgICAgICB3aGVuIGl0
IGlzIGtub3duIHRoYXQgaW5zcGVjdG9yIHN0YXRlIHdhcyByZXN0b3JlZCBhbmQgaXQgaXMgT0sg
dG8gcmVzdW1lIHdvcmtlciBleGVjdXRpb24uCisgICAgICAgICogaW5zcGVjdG9yL1dvcmtlcklu
c3BlY3RvckNvbnRyb2xsZXIuaDoKKyAgICAgICAgKiB3b3JrZXJzL0RlZGljYXRlZFdvcmtlclRo
cmVhZC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpEZWRpY2F0ZWRXb3JrZXJUaHJlYWQ6OmNyZWF0
ZSk6CisgICAgICAgIChXZWJDb3JlOjpEZWRpY2F0ZWRXb3JrZXJUaHJlYWQ6OkRlZGljYXRlZFdv
cmtlclRocmVhZCk6CisgICAgICAgICogd29ya2Vycy9EZWRpY2F0ZWRXb3JrZXJUaHJlYWQuaDoK
KyAgICAgICAgKiB3b3JrZXJzL1NoYXJlZFdvcmtlclRocmVhZC5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpTaGFyZWRXb3JrZXJUaHJlYWQ6OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpTaGFy
ZWRXb3JrZXJUaHJlYWQ6OlNoYXJlZFdvcmtlclRocmVhZCk6CisgICAgICAgICogd29ya2Vycy9T
aGFyZWRXb3JrZXJUaHJlYWQuaDoKKyAgICAgICAgKiB3b3JrZXJzL1dvcmtlck1lc3NhZ2luZ1By
b3h5LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Oldvcmtlck1lc3NhZ2luZ1Byb3h5OjpzdGFydFdv
cmtlckNvbnRleHQpOgorICAgICAgICAoV2ViQ29yZTo6V29ya2VyTWVzc2FnaW5nUHJveHk6OmRp
c2Nvbm5lY3RGcm9tSW5zcGVjdG9yKToKKyAgICAgICAgKFdlYkNvcmU6Oldvcmtlck1lc3NhZ2lu
Z1Byb3h5OjpzZW5kTWVzc2FnZVRvSW5zcGVjdG9yKToKKyAgICAgICAgKiB3b3JrZXJzL1dvcmtl
clRocmVhZC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpXb3JrZXJUaHJlYWRTdGFydHVwRGF0YTo6
Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OldvcmtlclRocmVhZFN0YXJ0dXBEYXRhOjpXb3Jr
ZXJUaHJlYWRTdGFydHVwRGF0YSk6CisgICAgICAgIChXZWJDb3JlOjpXb3JrZXJUaHJlYWQ6Oldv
cmtlclRocmVhZCk6IFdvcmtlclRocmVhZCBpcyBwYXNzZWQgYSBib29sZWFuZCBmbGFnIGluZGlj
YXRpbmcKKyAgICAgICAgd2hldGhlciB0aGUgY29udGV4dCBzaG91bGQgYmUgcGF1c2VkIGFuZCB3
YWl0IGZvciBleHBsaWNpdCByZXN1bWUgY29tbWFuZCBiZWZvcmUgaXQKKyAgICAgICAgc3RhcnRz
IHJ1bm5pbmcgaXRzIHNjcmlwdC4KKyAgICAgICAgKFdlYkNvcmU6OldvcmtlclRocmVhZDo6d29y
a2VyVGhyZWFkKToKKyAgICAgICAgKiB3b3JrZXJzL1dvcmtlclRocmVhZC5oOgorCiAyMDExLTEw
LTA3ICBTaGVyaWZmIEJvdCAgPHdlYmtpdC5yZXZpZXcuYm90QGdtYWlsLmNvbT4KIAogICAgICAg
ICBVbnJldmlld2VkLCByb2xsaW5nIG91dCByOTY4NzkuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy92OC9TY3JpcHREZWJ1Z1NlcnZlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy92OC9TY3JpcHREZWJ1Z1NlcnZlci5jcHAKaW5kZXggMzc0MzNlZmI0NjMyNWVhN2I1
OTA2MTFhZjNiYTdkMjFjNGZmYjNiMC4uNGQ3NGZkOGM1ZTU1ODM0ZDNjOGY2ZTQ4NzgyOTlmN2Zj
YjA0MDI2NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvU2NyaXB0RGVi
dWdTZXJ2ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1NjcmlwdERlYnVn
U2VydmVyLmNwcApAQCAtMTQ5LDEwICsxNDksMTEgQEAgdm9pZCBTY3JpcHREZWJ1Z1NlcnZlcjo6
c2V0UGF1c2VPbk5leHRTdGF0ZW1lbnQoYm9vbCBwYXVzZSkKIHsKICAgICBpZiAoaXNQYXVzZWQo
KSkKICAgICAgICAgcmV0dXJuOworICAgIHY4OjpJc29sYXRlKiBpc29sYXRlID0gdjg6Oklzb2xh
dGU6OkdldEN1cnJlbnQoKTsKICAgICBpZiAocGF1c2UpCi0gICAgICAgIHY4OjpEZWJ1Zzo6RGVi
dWdCcmVhaygpOworICAgICAgICB2ODo6RGVidWc6OkRlYnVnQnJlYWsoaXNvbGF0ZSk7CiAgICAg
ZWxzZQotICAgICAgICB2ODo6RGVidWc6OkNhbmNlbERlYnVnQnJlYWsoKTsKKyAgICAgICAgdjg6
OkRlYnVnOjpDYW5jZWxEZWJ1Z0JyZWFrKGlzb2xhdGUpOwogfQogCiB2b2lkIFNjcmlwdERlYnVn
U2VydmVyOjpicmVha1Byb2dyYW0oKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3MvdjgvV29ya2VyU2NyaXB0RGVidWdTZXJ2ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3MvdjgvV29ya2VyU2NyaXB0RGVidWdTZXJ2ZXIuY3BwCmluZGV4IGMwYTVkOWUzMGNkNjgzNDhk
NTMxOGU4MTNmOGI0MGU4MTk3MDkzOGIuLmMwZmRmMzIxMTg0YTJiNTllZTBkYjlhNTcxYTA4NGUw
YzE1OTEzMDkgMTAwNzU1Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1dvcmtlclNj
cmlwdERlYnVnU2VydmVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9Xb3Jr
ZXJTY3JpcHREZWJ1Z1NlcnZlci5jcHAKQEAgLTM5LDYgKzM5LDcgQEAKICNpbmNsdWRlICJWOFNo
YXJlZFdvcmtlckNvbnRleHQuaCIKICNpbmNsdWRlICJXb3JrZXJDb250ZXh0LmgiCiAjaW5jbHVk
ZSAiV29ya2VyQ29udGV4dEV4ZWN1dGlvblByb3h5LmgiCisjaW5jbHVkZSAiV29ya2VyRGVidWdn
ZXJBZ2VudC5oIgogI2luY2x1ZGUgIldvcmtlclRocmVhZC5oIgogI2luY2x1ZGUgPHY4Lmg+CiAj
aW5jbHVkZSA8d3RmL01lc3NhZ2VRdWV1ZS5oPgpAQCAtNjUsOCArNjYsNiBAQCBzdGF0aWMgV29y
a2VyQ29udGV4dCogcmV0cmlldmVXb3JrZXJDb250ZXh0KHY4OjpIYW5kbGU8djg6OkNvbnRleHQ+
IGNvbnRleHQpCiAgICAgcmV0dXJuIDA7CiB9CiAKLWNvbnN0IGNoYXIqIFdvcmtlclNjcmlwdERl
YnVnU2VydmVyOjpkZWJ1Z2dlclRhc2tNb2RlID0gImRlYnVnZ2VyIjsKLQogV29ya2VyU2NyaXB0
RGVidWdTZXJ2ZXI6OldvcmtlclNjcmlwdERlYnVnU2VydmVyKCkKICAgICA6IFNjcmlwdERlYnVn
U2VydmVyKCkKICAgICAsIG1fcGF1c2VkV29ya2VyQ29udGV4dCgwKQpAQCAtMTM0LDcgKzEzMyw3
IEBAIHZvaWQgV29ya2VyU2NyaXB0RGVidWdTZXJ2ZXI6OnJ1bk1lc3NhZ2VMb29wT25QYXVzZSh2
ODo6SGFuZGxlPHY4OjpDb250ZXh0PiBjb250CiAKICAgICBNZXNzYWdlUXVldWVXYWl0UmVzdWx0
IHJlc3VsdDsKICAgICBkbyB7Ci0gICAgICAgIHJlc3VsdCA9IHdvcmtlclRocmVhZC0+cnVuTG9v
cCgpLnJ1bkluTW9kZSh3b3JrZXJDb250ZXh0LCBkZWJ1Z2dlclRhc2tNb2RlKTsKKyAgICAgICAg
cmVzdWx0ID0gd29ya2VyVGhyZWFkLT5ydW5Mb29wKCkucnVuSW5Nb2RlKHdvcmtlckNvbnRleHQs
IFdvcmtlckRlYnVnZ2VyQWdlbnQ6OmRlYnVnZ2VyVGFza01vZGUpOwogICAgIC8vIEtlZXAgd2Fp
dGluZyB1bnRpbCBleGVjdXRpb24gaXMgcmVzdW1lZC4KICAgICB9IHdoaWxlIChyZXN1bHQgPT0g
TWVzc2FnZVF1ZXVlTWVzc2FnZVJlY2VpdmVkICYmIGlzUGF1c2VkKCkpOwogICAgIG1fcGF1c2Vk
V29ya2VyQ29udGV4dCA9IDA7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92
OC9Xb3JrZXJTY3JpcHREZWJ1Z1NlcnZlci5oIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvdjgv
V29ya2VyU2NyaXB0RGVidWdTZXJ2ZXIuaAppbmRleCA3OGQ0YWQ3NTQ5ZmVhNDcyMzY0NDc5MDVj
YjlmOTcwYTgzODFhMWZkLi42MjY0YzY4Y2JmMjZmNzM1YzljMjNjYTI5Nzg2YmRkY2Q0ZTA5Mjdh
IDEwMDc1NQotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9Xb3JrZXJTY3JpcHREZWJ1
Z1NlcnZlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1dvcmtlclNjcmlwdERl
YnVnU2VydmVyLmgKQEAgLTQ4LDggKzQ4LDYgQEAgcHVibGljOgogICAgIHZvaWQgYWRkTGlzdGVu
ZXIoU2NyaXB0RGVidWdMaXN0ZW5lciosIFdvcmtlckNvbnRleHQqKTsKICAgICB2b2lkIHJlbW92
ZUxpc3RlbmVyKFNjcmlwdERlYnVnTGlzdGVuZXIqLCBXb3JrZXJDb250ZXh0Kik7CiAKLSAgICBz
dGF0aWMgY29uc3QgY2hhciogZGVidWdnZXJUYXNrTW9kZTsKLQogcHJpdmF0ZToKICAgICB2aXJ0
dWFsIFNjcmlwdERlYnVnTGlzdGVuZXIqIGdldERlYnVnTGlzdGVuZXJGb3JDb250ZXh0KHY4OjpI
YW5kbGU8djg6OkNvbnRleHQ+KTsKICAgICB2aXJ0dWFsIHZvaWQgcnVuTWVzc2FnZUxvb3BPblBh
dXNlKHY4OjpIYW5kbGU8djg6OkNvbnRleHQ+KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2luc3BlY3Rvci9JbnNwZWN0b3JDb250cm9sbGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2luc3Bl
Y3Rvci9JbnNwZWN0b3JDb250cm9sbGVyLmNwcAppbmRleCA0NGFlMmEyNTlkYzM0N2Y0YmU2MzNi
ZWExNzEzOWRkNWZlY2M3ZWZhLi42OTNlYzQyODY5MDlmYWMzZmEyYmY3Mzg0ZGMxOTExNzY4NWFh
NGIzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQ29udHJv
bGxlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckNvbnRyb2xs
ZXIuY3BwCkBAIC03Miw4ICs3Miw4IEBAIG5hbWVzcGFjZSB7CiAKIGNsYXNzIFBhZ2VSdW50aW1l
QWdlbnQgOiBwdWJsaWMgSW5zcGVjdG9yUnVudGltZUFnZW50IHsKIHB1YmxpYzoKLSAgICBQYWdl
UnVudGltZUFnZW50KEluamVjdGVkU2NyaXB0TWFuYWdlciogaW5qZWN0ZWRTY3JpcHRNYW5hZ2Vy
LCBQYWdlKiBwYWdlLCBJbnNwZWN0b3JQYWdlQWdlbnQqIHBhZ2VBZ2VudCkKLSAgICAgICAgOiBJ
bnNwZWN0b3JSdW50aW1lQWdlbnQoaW5qZWN0ZWRTY3JpcHRNYW5hZ2VyKQorICAgIFBhZ2VSdW50
aW1lQWdlbnQoSW5zdHJ1bWVudGluZ0FnZW50cyogaW5zdHJ1bWVudGluZ0FnZW50cywgSW5qZWN0
ZWRTY3JpcHRNYW5hZ2VyKiBpbmplY3RlZFNjcmlwdE1hbmFnZXIsIFBhZ2UqIHBhZ2UsIEluc3Bl
Y3RvclBhZ2VBZ2VudCogcGFnZUFnZW50KQorICAgICAgICA6IEluc3BlY3RvclJ1bnRpbWVBZ2Vu
dChpbnN0cnVtZW50aW5nQWdlbnRzLCBpbmplY3RlZFNjcmlwdE1hbmFnZXIpCiAgICAgICAgICwg
bV9pbnNwZWN0ZWRQYWdlKHBhZ2UpCiAgICAgICAgICwgbV9wYWdlQWdlbnQocGFnZUFnZW50KSB7
IH0KICAgICB2aXJ0dWFsIH5QYWdlUnVudGltZUFnZW50KCkgeyB9CkBAIC0xMTAsNyArMTEwLDcg
QEAgSW5zcGVjdG9yQ29udHJvbGxlcjo6SW5zcGVjdG9yQ29udHJvbGxlcihQYWdlKiBwYWdlLCBJ
bnNwZWN0b3JDbGllbnQqIGluc3BlY3RvckMKICAgICAsIG1fdGltZWxpbmVBZ2VudChJbnNwZWN0
b3JUaW1lbGluZUFnZW50OjpjcmVhdGUobV9pbnN0cnVtZW50aW5nQWdlbnRzLmdldCgpLCBtX3N0
YXRlLmdldCgpKSkKICAgICAsIG1fYXBwbGljYXRpb25DYWNoZUFnZW50KGFkb3B0UHRyKG5ldyBJ
bnNwZWN0b3JBcHBsaWNhdGlvbkNhY2hlQWdlbnQobV9pbnN0cnVtZW50aW5nQWdlbnRzLmdldCgp
LCBwYWdlKSkpCiAgICAgLCBtX3Jlc291cmNlQWdlbnQoSW5zcGVjdG9yUmVzb3VyY2VBZ2VudDo6
Y3JlYXRlKG1faW5zdHJ1bWVudGluZ0FnZW50cy5nZXQoKSwgbV9wYWdlQWdlbnQuZ2V0KCksIGlu
c3BlY3RvckNsaWVudCwgbV9zdGF0ZS5nZXQoKSkpCi0gICAgLCBtX3J1bnRpbWVBZ2VudChhZG9w
dFB0cihuZXcgUGFnZVJ1bnRpbWVBZ2VudChtX2luamVjdGVkU2NyaXB0TWFuYWdlci5nZXQoKSwg
cGFnZSwgbV9wYWdlQWdlbnQuZ2V0KCkpKSkKKyAgICAsIG1fcnVudGltZUFnZW50KGFkb3B0UHRy
KG5ldyBQYWdlUnVudGltZUFnZW50KG1faW5zdHJ1bWVudGluZ0FnZW50cy5nZXQoKSwgbV9pbmpl
Y3RlZFNjcmlwdE1hbmFnZXIuZ2V0KCksIHBhZ2UsIG1fcGFnZUFnZW50LmdldCgpKSkpCiAgICAg
LCBtX2NvbnNvbGVBZ2VudChhZG9wdFB0cihuZXcgSW5zcGVjdG9yQ29uc29sZUFnZW50KG1faW5z
dHJ1bWVudGluZ0FnZW50cy5nZXQoKSwgbV9pbnNwZWN0b3JBZ2VudC5nZXQoKSwgbV9zdGF0ZS5n
ZXQoKSwgbV9pbmplY3RlZFNjcmlwdE1hbmFnZXIuZ2V0KCksIG1fZG9tQWdlbnQuZ2V0KCkpKSkK
ICNpZiBFTkFCTEUoSkFWQVNDUklQVF9ERUJVR0dFUikKICAgICAsIG1fZGVidWdnZXJBZ2VudChQ
YWdlRGVidWdnZXJBZ2VudDo6Y3JlYXRlKG1faW5zdHJ1bWVudGluZ0FnZW50cy5nZXQoKSwgbV9z
dGF0ZS5nZXQoKSwgcGFnZSwgbV9pbmplY3RlZFNjcmlwdE1hbmFnZXIuZ2V0KCkpKQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rvckluc3RydW1lbnRhdGlvbi5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uLmNw
cAppbmRleCBmYzk1M2Q3ODA3YTM4MmFiMmMzOGU3NWNlZDkxMGZmNzI2MDE5OWMwLi40NjI4MGZi
YzFlMTk3YWVlMjU4NzhhMjVkM2ViNDk3M2FiYTY4OWYyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9pbnNwZWN0b3IvSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uLmNwcApAQCAtNTAsMTIg
KzUwLDE0IEBACiAjaW5jbHVkZSAiSW5zcGVjdG9yUGFnZUFnZW50LmgiCiAjaW5jbHVkZSAiSW5z
cGVjdG9yUHJvZmlsZXJBZ2VudC5oIgogI2luY2x1ZGUgIkluc3BlY3RvclJlc291cmNlQWdlbnQu
aCIKKyNpbmNsdWRlICJJbnNwZWN0b3JSdW50aW1lQWdlbnQuaCIKICNpbmNsdWRlICJJbnNwZWN0
b3JUaW1lbGluZUFnZW50LmgiCiAjaW5jbHVkZSAiSW5zcGVjdG9yV29ya2VyQWdlbnQuaCIKICNp
bmNsdWRlICJJbnN0cnVtZW50aW5nQWdlbnRzLmgiCiAjaW5jbHVkZSAiU2NyaXB0QXJndW1lbnRz
LmgiCiAjaW5jbHVkZSAiU2NyaXB0Q2FsbFN0YWNrLmgiCiAjaW5jbHVkZSAiU2NyaXB0UHJvZmls
ZS5oIgorI2luY2x1ZGUgIldvcmtlckNvbnRleHQuaCIKICNpbmNsdWRlICJYTUxIdHRwUmVxdWVz
dC5oIgogI2luY2x1ZGUgPHd0Zi9TdGRMaWJFeHRyYXMuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9D
U3RyaW5nLmg+CkBAIC03OTksNiArODAxLDE3IEBAIHZvaWQgSW5zcGVjdG9ySW5zdHJ1bWVudGF0
aW9uOjpkaWREZXN0cm95V29ya2VySW1wbChJbnN0cnVtZW50aW5nQWdlbnRzKiBpbnN0cnVtCiAg
ICAgICAgIGluc3BlY3RvckFnZW50LT5kaWREZXN0cm95V29ya2VyKGlkKTsKIH0KIAordm9pZCBJ
bnNwZWN0b3JJbnN0cnVtZW50YXRpb246OndpbGxFdmFsdWF0ZVdvcmtlclNjcmlwdChXb3JrZXJD
b250ZXh0KiB3b3JrZXJDb250ZXh0LCBib29sIHN0YXJ0UGF1c2VkKQoreworICAgIGlmICghc3Rh
cnRQYXVzZWQpCisgICAgICAgIHJldHVybjsKKyAgICBJbnN0cnVtZW50aW5nQWdlbnRzKiBpbnN0
cnVtZW50aW5nQWdlbnRzID0gaW5zdHJ1bWVudGF0aW9uRm9yV29ya2VyQ29udGV4dCh3b3JrZXJD
b250ZXh0KTsKKyAgICBpZiAoIWluc3RydW1lbnRpbmdBZ2VudHMpCisgICAgICAgIHJldHVybjsK
KyAgICBpZiAoSW5zcGVjdG9yUnVudGltZUFnZW50KiBydW50aW1lQWdlbnQgPSBpbnN0cnVtZW50
aW5nQWdlbnRzLT5pbnNwZWN0b3JSdW50aW1lQWdlbnQoKSkKKyAgICAgICAgcnVudGltZUFnZW50
LT5wYXVzZVdvcmtlckNvbnRleHQod29ya2VyQ29udGV4dCk7Cit9CisKIHZvaWQgSW5zcGVjdG9y
SW5zdHJ1bWVudGF0aW9uOjp3b3JrZXJDb250ZXh0VGVybWluYXRlZEltcGwoSW5zdHJ1bWVudGlu
Z0FnZW50cyogaW5zdHJ1bWVudGluZ0FnZW50cywgV29ya2VyQ29udGV4dFByb3h5KiBwcm94eSkK
IHsKICAgICBpZiAoSW5zcGVjdG9yV29ya2VyQWdlbnQqIHdvcmtlckFnZW50ID0gaW5zdHJ1bWVu
dGluZ0FnZW50cy0+aW5zcGVjdG9yV29ya2VyQWdlbnQoKSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JJbnN0cnVtZW50YXRpb24uaCBiL1NvdXJjZS9XZWJD
b3JlL2luc3BlY3Rvci9JbnNwZWN0b3JJbnN0cnVtZW50YXRpb24uaAppbmRleCA2YjgzNzI3NDM0
NWJlMWY1ZWFkMzVmNTFhM2ViZDIyZGEyMmE3ZTdkLi5kZjgzYTljMjlkZDdkMGU0MGYzM2UwY2Rk
NzNjZmQ0ZjE3NmM4MjU2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5z
cGVjdG9ySW5zdHJ1bWVudGF0aW9uLmgKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0lu
c3BlY3Rvckluc3RydW1lbnRhdGlvbi5oCkBAIC02MCw2ICs2MCw3IEBAIGNsYXNzIFNjcmlwdENh
bGxTdGFjazsKIGNsYXNzIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQ7CiBjbGFzcyBTY3JpcHRQcm9m
aWxlOwogY2xhc3MgU3RvcmFnZUFyZWE7CitjbGFzcyBXb3JrZXJDb250ZXh0OwogY2xhc3MgV29y
a2VyQ29udGV4dFByb3h5OwogY2xhc3MgWE1MSHR0cFJlcXVlc3Q7CiAKQEAgLTE4MCw2ICsxODEs
NyBAQCBwdWJsaWM6CiAgICAgc3RhdGljIHZvaWQgZGlkQ3JlYXRlV29ya2VyKFNjcmlwdEV4ZWN1
dGlvbkNvbnRleHQqLCBpbnRwdHJfdCBpZCwgY29uc3QgU3RyaW5nJiB1cmwsIGJvb2wgaXNTaGFy
ZWRXb3JrZXIpOwogICAgIHN0YXRpYyB2b2lkIGRpZERlc3Ryb3lXb3JrZXIoU2NyaXB0RXhlY3V0
aW9uQ29udGV4dCosIGludHB0cl90IGlkKTsKICAgICBzdGF0aWMgdm9pZCB3b3JrZXJDb250ZXh0
VGVybWluYXRlZChTY3JpcHRFeGVjdXRpb25Db250ZXh0KiwgV29ya2VyQ29udGV4dFByb3h5Kik7
CisgICAgc3RhdGljIHZvaWQgd2lsbEV2YWx1YXRlV29ya2VyU2NyaXB0KFdvcmtlckNvbnRleHQq
LCBib29sIHN0YXJ0UGF1c2VkKTsKICNlbmRpZgogCiAjaWYgRU5BQkxFKFdFQl9TT0NLRVRTKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclJ1bnRpbWVBZ2Vu
dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yUnVudGltZUFnZW50LmNw
cAppbmRleCBjMjVlODMyN2QzNjYxOWNjY2FhZDRiMjk4ZmU2ODM2ZDk2MjZmODkwLi5jNDIzZjRk
NTNjZTVkNGUwMGM4ZWYyNzk1M2NhZWIxZGY1MTQ4YjYxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yUnVudGltZUFnZW50LmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yUnVudGltZUFnZW50LmNwcApAQCAtMzYsNiArMzYsMTEg
QEAKICNpbmNsdWRlICJJbmplY3RlZFNjcmlwdC5oIgogI2luY2x1ZGUgIkluamVjdGVkU2NyaXB0
TWFuYWdlci5oIgogI2luY2x1ZGUgIkluc3BlY3RvclZhbHVlcy5oIgorI2luY2x1ZGUgIkluc3Ry
dW1lbnRpbmdBZ2VudHMuaCIKKyNpbmNsdWRlICJXb3JrZXJDb250ZXh0LmgiCisjaW5jbHVkZSAi
V29ya2VyRGVidWdnZXJBZ2VudC5oIgorI2luY2x1ZGUgIldvcmtlclJ1bkxvb3AuaCIKKyNpbmNs
dWRlICJXb3JrZXJUaHJlYWQuaCIKICNpbmNsdWRlIDx3dGYvUGFzc1JlZlB0ci5oPgogCiAKQEAg
LTUwLDE2ICs1NSwyMCBAQCBzdGF0aWMgYm9vbCBhc0Jvb2woY29uc3QgYm9vbCogY29uc3QgYikK
ICAgICByZXR1cm4gYiA/ICpiIDogZmFsc2U7CiB9CiAKLUluc3BlY3RvclJ1bnRpbWVBZ2VudDo6
SW5zcGVjdG9yUnVudGltZUFnZW50KEluamVjdGVkU2NyaXB0TWFuYWdlciogaW5qZWN0ZWRTY3Jp
cHRNYW5hZ2VyKQorSW5zcGVjdG9yUnVudGltZUFnZW50OjpJbnNwZWN0b3JSdW50aW1lQWdlbnQo
SW5zdHJ1bWVudGluZ0FnZW50cyogaW5zdHJ1bWVudGluZ0FnZW50cywgSW5qZWN0ZWRTY3JpcHRN
YW5hZ2VyKiBpbmplY3RlZFNjcmlwdE1hbmFnZXIpCiAgICAgOiBtX2luamVjdGVkU2NyaXB0TWFu
YWdlcihpbmplY3RlZFNjcmlwdE1hbmFnZXIpCiAjaWYgRU5BQkxFKEpBVkFTQ1JJUFRfREVCVUdH
RVIpCiAgICAgLCBtX3NjcmlwdERlYnVnU2VydmVyKDApCiAjZW5kaWYKKyAgICAsIG1faW5zdHJ1
bWVudGluZ0FnZW50cyhpbnN0cnVtZW50aW5nQWdlbnRzKQorICAgICwgbV9wYXVzZWQoZmFsc2Up
CiB7CisgICAgbV9pbnN0cnVtZW50aW5nQWdlbnRzLT5zZXRJbnNwZWN0b3JSdW50aW1lQWdlbnQo
dGhpcyk7CiB9CiAKIEluc3BlY3RvclJ1bnRpbWVBZ2VudDo6fkluc3BlY3RvclJ1bnRpbWVBZ2Vu
dCgpCiB7CisgICAgbV9pbnN0cnVtZW50aW5nQWdlbnRzLT5zZXRJbnNwZWN0b3JSdW50aW1lQWdl
bnQoMCk7CiB9CiAKIHZvaWQgSW5zcGVjdG9yUnVudGltZUFnZW50OjpldmFsdWF0ZShFcnJvclN0
cmluZyogZXJyb3JTdHJpbmcsIGNvbnN0IFN0cmluZyYgZXhwcmVzc2lvbiwgY29uc3QgU3RyaW5n
KiBjb25zdCBvYmplY3RHcm91cCwgY29uc3QgYm9vbCogY29uc3QgaW5jbHVkZUNvbW1hbmRMaW5l
QVBJLCBjb25zdCBib29sKiBjb25zdCBkb05vdFBhdXNlT25FeGNlcHRpb25zLCBjb25zdCBTdHJp
bmcqIGNvbnN0IGZyYW1lSWQsIGNvbnN0IGJvb2wqIGNvbnN0IHJldHVybkJ5VmFsdWUsIFJlZlB0
cjxJbnNwZWN0b3JPYmplY3Q+KiByZXN1bHQsIGJvb2wqIHdhc1Rocm93bikKQEAgLTEzOCw2ICsx
NDcsMjMgQEAgdm9pZCBJbnNwZWN0b3JSdW50aW1lQWdlbnQ6OnNldFNjcmlwdERlYnVnU2VydmVy
KFNjcmlwdERlYnVnU2VydmVyKiBzY3JpcHREZWJ1Z1MKIH0KICNlbmRpZgogCisjaWYgRU5BQkxF
KFdPUktFUlMpCit2b2lkIEluc3BlY3RvclJ1bnRpbWVBZ2VudDo6cGF1c2VXb3JrZXJDb250ZXh0
KFdvcmtlckNvbnRleHQqIGNvbnRleHQpCit7CisgICAgbV9wYXVzZWQgPSB0cnVlOworICAgIE1l
c3NhZ2VRdWV1ZVdhaXRSZXN1bHQgcmVzdWx0OworICAgIGRvIHsKKyAgICAgICAgcmVzdWx0ID0g
Y29udGV4dC0+dGhyZWFkKCktPnJ1bkxvb3AoKS5ydW5Jbk1vZGUoY29udGV4dCwgV29ya2VyRGVi
dWdnZXJBZ2VudDo6ZGVidWdnZXJUYXNrTW9kZSk7CisgICAgLy8gS2VlcCB3YWl0aW5nIHVudGls
IGV4ZWN1dGlvbiBpcyByZXN1bWVkLgorICAgIH0gd2hpbGUgKHJlc3VsdCA9PSBNZXNzYWdlUXVl
dWVNZXNzYWdlUmVjZWl2ZWQgJiYgbV9wYXVzZWQpOworfQorCit2b2lkIEluc3BlY3RvclJ1bnRp
bWVBZ2VudDo6cmVzdW1lKCkKK3sKKyAgICBtX3BhdXNlZCA9IGZhbHNlOworfQorI2VuZGlmCisK
IH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAogI2VuZGlmIC8vIEVOQUJMRShJTlNQRUNUT1IpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yUnVudGltZUFnZW50
LmggYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yUnVudGltZUFnZW50LmgKaW5k
ZXggMmEyMWI2N2YyNjU1Mjc3MmUwMTEzYmU5NDQyYmJlZWUzMWY2MmI1OC4uZDcwMmYzMjA3NTA3
NDEzNjE1MmIwZTA3MTc0N2EzM2IzNjExMGIwZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
aW5zcGVjdG9yL0luc3BlY3RvclJ1bnRpbWVBZ2VudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2lu
c3BlY3Rvci9JbnNwZWN0b3JSdW50aW1lQWdlbnQuaApAQCAtNDEsOSArNDEsMTIgQEAgbmFtZXNw
YWNlIFdlYkNvcmUgewogCiBjbGFzcyBJbmplY3RlZFNjcmlwdE1hbmFnZXI7CiBjbGFzcyBJbnNw
ZWN0b3JBcnJheTsKK2NsYXNzIEluc3BlY3RvckZyb250ZW5kOwogY2xhc3MgSW5zcGVjdG9yT2Jq
ZWN0OwogY2xhc3MgSW5zcGVjdG9yVmFsdWU7CitjbGFzcyBJbnN0cnVtZW50aW5nQWdlbnRzOwog
Y2xhc3MgU2NyaXB0RGVidWdTZXJ2ZXI7CitjbGFzcyBXb3JrZXJDb250ZXh0OwogCiB0eXBlZGVm
IFN0cmluZyBFcnJvclN0cmluZzsKIApAQCAtNzYsOSArNzksMTMgQEAgcHVibGljOgogI2lmIEVO
QUJMRShKQVZBU0NSSVBUX0RFQlVHR0VSKQogICAgIHZvaWQgc2V0U2NyaXB0RGVidWdTZXJ2ZXIo
U2NyaXB0RGVidWdTZXJ2ZXIqKTsKICNlbmRpZgorI2lmIEVOQUJMRShXT1JLRVJTKQorICAgIHZv
aWQgcGF1c2VXb3JrZXJDb250ZXh0KFdvcmtlckNvbnRleHQqKTsKKyAgICB2b2lkIHJlc3VtZSgp
OworI2VuZGlmCiAKIHByb3RlY3RlZDoKLSAgICBleHBsaWNpdCBJbnNwZWN0b3JSdW50aW1lQWdl
bnQoSW5qZWN0ZWRTY3JpcHRNYW5hZ2VyKik7CisgICAgSW5zcGVjdG9yUnVudGltZUFnZW50KElu
c3RydW1lbnRpbmdBZ2VudHMqLCBJbmplY3RlZFNjcmlwdE1hbmFnZXIqKTsKICAgICB2aXJ0dWFs
IFNjcmlwdFN0YXRlKiBzY3JpcHRTdGF0ZUZvckZyYW1lSWQoY29uc3QgU3RyaW5nJiBmcmFtZUlk
KSA9IDA7CiAgICAgdmlydHVhbCBTY3JpcHRTdGF0ZSogZ2V0RGVmYXVsdEluc3BlY3RlZFN0YXRl
KCkgPSAwOwogCkBAIC04Nyw2ICs5NCw4IEBAIHByaXZhdGU6CiAjaWYgRU5BQkxFKEpBVkFTQ1JJ
UFRfREVCVUdHRVIpCiAgICAgU2NyaXB0RGVidWdTZXJ2ZXIqIG1fc2NyaXB0RGVidWdTZXJ2ZXI7
CiAjZW5kaWYKKyAgICBJbnN0cnVtZW50aW5nQWdlbnRzKiBtX2luc3RydW1lbnRpbmdBZ2VudHM7
CisgICAgYm9vbCBtX3BhdXNlZDsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9Xb3JrZXJEZWJ1Z2dlckFnZW50LmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9Xb3JrZXJEZWJ1Z2dlckFnZW50LmNwcAppbmRleCAx
NGJkZTM4YWI2NDcyNjYwNzhkZDk0OWVjOTMxNGI5M2YzNGJkOGY2Li4zMWZkZjQ5YmZiZWM0MDUx
MDdlMGY3YjlmM2I0Y2U1OTJmNGJlMWM5IDEwMDc1NQotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNw
ZWN0b3IvV29ya2VyRGVidWdnZXJBZ2VudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVj
dG9yL1dvcmtlckRlYnVnZ2VyQWdlbnQuY3BwCkBAIC0zNyw2ICszNyw4IEBACiAKIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKIAorY29uc3QgY2hhciogV29ya2VyRGVidWdnZXJBZ2VudDo6ZGVidWdnZXJU
YXNrTW9kZSA9ICJkZWJ1Z2dlciI7CisKIFBhc3NPd25QdHI8V29ya2VyRGVidWdnZXJBZ2VudD4g
V29ya2VyRGVidWdnZXJBZ2VudDo6Y3JlYXRlKEluc3RydW1lbnRpbmdBZ2VudHMqIGluc3RydW1l
bnRpbmdBZ2VudHMsIEluc3BlY3RvclN0YXRlKiBpbnNwZWN0b3JTdGF0ZSwgV29ya2VyQ29udGV4
dCogaW5zcGVjdGVkV29ya2VyQ29udGV4dCwgSW5qZWN0ZWRTY3JpcHRNYW5hZ2VyKiBpbmplY3Rl
ZFNjcmlwdE1hbmFnZXIpCiB7CiAgICAgcmV0dXJuIGFkb3B0UHRyKG5ldyBXb3JrZXJEZWJ1Z2dl
ckFnZW50KGluc3RydW1lbnRpbmdBZ2VudHMsIGluc3BlY3RvclN0YXRlLCBpbnNwZWN0ZWRXb3Jr
ZXJDb250ZXh0LCBpbmplY3RlZFNjcmlwdE1hbmFnZXIpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2luc3BlY3Rvci9Xb3JrZXJEZWJ1Z2dlckFnZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9p
bnNwZWN0b3IvV29ya2VyRGVidWdnZXJBZ2VudC5oCmluZGV4IGU4OGZkODkzMGVkNWQwMGExZmI3
MzJmODBjNGVjZTQzNDFhMzkzYmUuLjllMjU4NjdlNjMxNmRlOTk5MmUzNjBkODNjZjc3MGZhNzVm
OGUyZjAgMTAwNzU1Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9Xb3JrZXJEZWJ1Z2dl
ckFnZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL1dvcmtlckRlYnVnZ2VyQWdl
bnQuaApAQCAtNDYsNiArNDYsOCBAQCBwdWJsaWM6CiAgICAgc3RhdGljIFBhc3NPd25QdHI8V29y
a2VyRGVidWdnZXJBZ2VudD4gY3JlYXRlKEluc3RydW1lbnRpbmdBZ2VudHMqLCBJbnNwZWN0b3JT
dGF0ZSosIFdvcmtlckNvbnRleHQqLCBJbmplY3RlZFNjcmlwdE1hbmFnZXIqKTsKICAgICB2aXJ0
dWFsIH5Xb3JrZXJEZWJ1Z2dlckFnZW50KCk7CiAKKyAgICBzdGF0aWMgY29uc3QgY2hhciogZGVi
dWdnZXJUYXNrTW9kZTsKKwogcHJpdmF0ZToKICAgICBXb3JrZXJEZWJ1Z2dlckFnZW50KEluc3Ry
dW1lbnRpbmdBZ2VudHMqLCBJbnNwZWN0b3JTdGF0ZSosIFdvcmtlckNvbnRleHQqLCBJbmplY3Rl
ZFNjcmlwdE1hbmFnZXIqKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9y
L1dvcmtlckluc3BlY3RvckNvbnRyb2xsZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9y
L1dvcmtlckluc3BlY3RvckNvbnRyb2xsZXIuY3BwCmluZGV4IDJiYmUzZjNkMWY2NjBjZGViZWQz
Y2ZiZjI4MjYyZTg5ZTIxNmIyMjYuLjUwMWVjMmIyYjIwMzIyYTJjZTMwMTM0YzRkMzA3Mjg4ZTkz
MGI0ZjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9Xb3JrZXJJbnNwZWN0
b3JDb250cm9sbGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvV29ya2VySW5z
cGVjdG9yQ29udHJvbGxlci5jcHAKQEAgLTU2LDggKzU2LDggQEAgbmFtZXNwYWNlIHsKIAogY2xh
c3MgV29ya2VyUnVudGltZUFnZW50IDogcHVibGljIEluc3BlY3RvclJ1bnRpbWVBZ2VudCB7CiBw
dWJsaWM6Ci0gICAgV29ya2VyUnVudGltZUFnZW50KEluamVjdGVkU2NyaXB0TWFuYWdlciogaW5q
ZWN0ZWRTY3JpcHRNYW5hZ2VyLCBXb3JrZXJDb250ZXh0KiB3b3JrZXJDb250ZXh0KQotICAgICAg
ICA6IEluc3BlY3RvclJ1bnRpbWVBZ2VudChpbmplY3RlZFNjcmlwdE1hbmFnZXIpCisgICAgV29y
a2VyUnVudGltZUFnZW50KEluc3RydW1lbnRpbmdBZ2VudHMqIGluc3RydW1lbnRpbmdBZ2VudHMs
IEluamVjdGVkU2NyaXB0TWFuYWdlciogaW5qZWN0ZWRTY3JpcHRNYW5hZ2VyLCBXb3JrZXJDb250
ZXh0KiB3b3JrZXJDb250ZXh0KQorICAgICAgICA6IEluc3BlY3RvclJ1bnRpbWVBZ2VudChpbnN0
cnVtZW50aW5nQWdlbnRzLCBpbmplY3RlZFNjcmlwdE1hbmFnZXIpCiAgICAgICAgICwgbV93b3Jr
ZXJDb250ZXh0KHdvcmtlckNvbnRleHQpIHsgfQogICAgIHZpcnR1YWwgfldvcmtlclJ1bnRpbWVB
Z2VudCgpIHsgfQogCkBAIC0xMTMsNyArMTEzLDcgQEAgV29ya2VySW5zcGVjdG9yQ29udHJvbGxl
cjo6V29ya2VySW5zcGVjdG9yQ29udHJvbGxlcihXb3JrZXJDb250ZXh0KiB3b3JrZXJDb250ZXgK
ICNpZiBFTkFCTEUoSkFWQVNDUklQVF9ERUJVR0dFUikKICAgICAsIG1fZGVidWdnZXJBZ2VudChX
b3JrZXJEZWJ1Z2dlckFnZW50OjpjcmVhdGUobV9pbnN0cnVtZW50aW5nQWdlbnRzLmdldCgpLCBt
X3N0YXRlLmdldCgpLCB3b3JrZXJDb250ZXh0LCBtX2luamVjdGVkU2NyaXB0TWFuYWdlci5nZXQo
KSkpCiAjZW5kaWYKLSAgICAsIG1fcnVudGltZUFnZW50KGFkb3B0UHRyKG5ldyBXb3JrZXJSdW50
aW1lQWdlbnQobV9pbmplY3RlZFNjcmlwdE1hbmFnZXIuZ2V0KCksIHdvcmtlckNvbnRleHQpKSkK
KyAgICAsIG1fcnVudGltZUFnZW50KGFkb3B0UHRyKG5ldyBXb3JrZXJSdW50aW1lQWdlbnQobV9p
bnN0cnVtZW50aW5nQWdlbnRzLmdldCgpLCBtX2luamVjdGVkU2NyaXB0TWFuYWdlci5nZXQoKSwg
d29ya2VyQ29udGV4dCkpKQogewogICAgIG1faW5qZWN0ZWRTY3JpcHRNYW5hZ2VyLT5pbmplY3Rl
ZFNjcmlwdEhvc3QoKS0+aW5pdCgwCiAgICAgICAgICwgMApAQCAtMjEwLDYgKzIxMCwxMSBAQCB2
b2lkIFdvcmtlckluc3BlY3RvckNvbnRyb2xsZXI6OmRpc3BhdGNoTWVzc2FnZUZyb21Gcm9udGVu
ZChjb25zdCBTdHJpbmcmIG1lc3NhZwogICAgICAgICBtX2JhY2tlbmREaXNwYXRjaGVyLT5kaXNw
YXRjaChtZXNzYWdlKTsKIH0KIAordm9pZCBXb3JrZXJJbnNwZWN0b3JDb250cm9sbGVyOjpyZXN1
bWUoKQoreworICAgIG1fcnVudGltZUFnZW50LT5yZXN1bWUoKTsKK30KKwogfQogCiAjZW5kaWYK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9Xb3JrZXJJbnNwZWN0b3JDb250
cm9sbGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvV29ya2VySW5zcGVjdG9yQ29udHJv
bGxlci5oCmluZGV4IDM5OGQ5MjNhZTJjZTNkNzE1ZjQ0YWE3YmYwNzhhZjgyNmI2ODFlZjEuLmEw
MzEzMGRjYmUwZjhlODA0MDQzODlhMjhlNzEyYTJkN2Q5OWU0YWMgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2luc3BlY3Rvci9Xb3JrZXJJbnNwZWN0b3JDb250cm9sbGVyLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvaW5zcGVjdG9yL1dvcmtlckluc3BlY3RvckNvbnRyb2xsZXIuaApAQCAtNjYs
NiArNjYsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBkaXNjb25uZWN0RnJvbnRlbmQoKTsKICAgICB2
b2lkIHJlc3RvcmVJbnNwZWN0b3JTdGF0ZUZyb21Db29raWUoY29uc3QgU3RyaW5nJiBpbnNwZWN0
b3JDb29raWUpOwogICAgIHZvaWQgZGlzcGF0Y2hNZXNzYWdlRnJvbUZyb250ZW5kKGNvbnN0IFN0
cmluZyYpOworICAgIHZvaWQgcmVzdW1lKCk7CiAKIHByaXZhdGU6CiAgICAgZnJpZW5kIEluc3Ry
dW1lbnRpbmdBZ2VudHMqIGluc3RydW1lbnRhdGlvbkZvcldvcmtlckNvbnRleHQoV29ya2VyQ29u
dGV4dCopOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9EZWRpY2F0ZWRXb3Jr
ZXJUaHJlYWQuY3BwIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9EZWRpY2F0ZWRXb3JrZXJUaHJl
YWQuY3BwCmluZGV4IGQ0Nzg5YTFlN2FkODNmODIxY2RjYzVjODRhNDZiZmQwN2MyY2NjZDYuLjVi
Mzk0NzYxOTI4MzRjYTM2ZmI3ZDQzNzYyNDAxMjRiY2ZkNTZkZTIgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3dvcmtlcnMvRGVkaWNhdGVkV29ya2VyVGhyZWFkLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS93b3JrZXJzL0RlZGljYXRlZFdvcmtlclRocmVhZC5jcHAKQEAgLTM5LDEzICszOSwx
MyBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLVBhc3NSZWZQdHI8RGVkaWNhdGVkV29ya2Vy
VGhyZWFkPiBEZWRpY2F0ZWRXb3JrZXJUaHJlYWQ6OmNyZWF0ZShjb25zdCBLVVJMJiBzY3JpcHRV
UkwsIGNvbnN0IFN0cmluZyYgdXNlckFnZW50LCBjb25zdCBTdHJpbmcmIHNvdXJjZUNvZGUsIFdv
cmtlckxvYWRlclByb3h5JiB3b3JrZXJMb2FkZXJQcm94eSwgV29ya2VyT2JqZWN0UHJveHkmIHdv
cmtlck9iamVjdFByb3h5KQorUGFzc1JlZlB0cjxEZWRpY2F0ZWRXb3JrZXJUaHJlYWQ+IERlZGlj
YXRlZFdvcmtlclRocmVhZDo6Y3JlYXRlKGNvbnN0IEtVUkwmIHNjcmlwdFVSTCwgY29uc3QgU3Ry
aW5nJiB1c2VyQWdlbnQsIGNvbnN0IFN0cmluZyYgc291cmNlQ29kZSwgV29ya2VyTG9hZGVyUHJv
eHkmIHdvcmtlckxvYWRlclByb3h5LCBXb3JrZXJPYmplY3RQcm94eSYgd29ya2VyT2JqZWN0UHJv
eHksIGJvb2wgc3RhcnRQYXVzZWQpCiB7Ci0gICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBEZWRpY2F0
ZWRXb3JrZXJUaHJlYWQoc2NyaXB0VVJMLCB1c2VyQWdlbnQsIHNvdXJjZUNvZGUsIHdvcmtlckxv
YWRlclByb3h5LCB3b3JrZXJPYmplY3RQcm94eSkpOworICAgIHJldHVybiBhZG9wdFJlZihuZXcg
RGVkaWNhdGVkV29ya2VyVGhyZWFkKHNjcmlwdFVSTCwgdXNlckFnZW50LCBzb3VyY2VDb2RlLCB3
b3JrZXJMb2FkZXJQcm94eSwgd29ya2VyT2JqZWN0UHJveHksIHN0YXJ0UGF1c2VkKSk7CiB9CiAK
LURlZGljYXRlZFdvcmtlclRocmVhZDo6RGVkaWNhdGVkV29ya2VyVGhyZWFkKGNvbnN0IEtVUkwm
IHVybCwgY29uc3QgU3RyaW5nJiB1c2VyQWdlbnQsIGNvbnN0IFN0cmluZyYgc291cmNlQ29kZSwg
V29ya2VyTG9hZGVyUHJveHkmIHdvcmtlckxvYWRlclByb3h5LCBXb3JrZXJPYmplY3RQcm94eSYg
d29ya2VyT2JqZWN0UHJveHkpCi0gICAgOiBXb3JrZXJUaHJlYWQodXJsLCB1c2VyQWdlbnQsIHNv
dXJjZUNvZGUsIHdvcmtlckxvYWRlclByb3h5LCB3b3JrZXJPYmplY3RQcm94eSkKK0RlZGljYXRl
ZFdvcmtlclRocmVhZDo6RGVkaWNhdGVkV29ya2VyVGhyZWFkKGNvbnN0IEtVUkwmIHVybCwgY29u
c3QgU3RyaW5nJiB1c2VyQWdlbnQsIGNvbnN0IFN0cmluZyYgc291cmNlQ29kZSwgV29ya2VyTG9h
ZGVyUHJveHkmIHdvcmtlckxvYWRlclByb3h5LCBXb3JrZXJPYmplY3RQcm94eSYgd29ya2VyT2Jq
ZWN0UHJveHksIGJvb2wgc3RhcnRQYXVzZWQpCisgICAgOiBXb3JrZXJUaHJlYWQodXJsLCB1c2Vy
QWdlbnQsIHNvdXJjZUNvZGUsIHdvcmtlckxvYWRlclByb3h5LCB3b3JrZXJPYmplY3RQcm94eSwg
c3RhcnRQYXVzZWQpCiAgICAgLCBtX3dvcmtlck9iamVjdFByb3h5KHdvcmtlck9iamVjdFByb3h5
KQogewogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9EZWRpY2F0ZWRXb3Jr
ZXJUaHJlYWQuaCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvRGVkaWNhdGVkV29ya2VyVGhyZWFk
LmgKaW5kZXggMjI1MjQzYjhlMTZkNmIyYjA5OWU5OWY3NjgyZDk0OGM5ZWQ2ZThjYi4uYjNjNjEz
NDhmM2U5YmIxMGJkYWM0MTI1ZWQxN2VhZWE0ZTM0MmZmMiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvd29ya2Vycy9EZWRpY2F0ZWRXb3JrZXJUaHJlYWQuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS93b3JrZXJzL0RlZGljYXRlZFdvcmtlclRocmVhZC5oCkBAIC00MCw3ICs0MCw3IEBAIG5hbWVz
cGFjZSBXZWJDb3JlIHsKIAogICAgIGNsYXNzIERlZGljYXRlZFdvcmtlclRocmVhZCA6IHB1Ymxp
YyBXb3JrZXJUaHJlYWQgewogICAgIHB1YmxpYzoKLSAgICAgICAgc3RhdGljIFBhc3NSZWZQdHI8
RGVkaWNhdGVkV29ya2VyVGhyZWFkPiBjcmVhdGUoY29uc3QgS1VSTCYgc2NyaXB0VVJMLCBjb25z
dCBTdHJpbmcmIHVzZXJBZ2VudCwgY29uc3QgU3RyaW5nJiBzb3VyY2VDb2RlLCBXb3JrZXJMb2Fk
ZXJQcm94eSYsIFdvcmtlck9iamVjdFByb3h5Jik7CisgICAgICAgIHN0YXRpYyBQYXNzUmVmUHRy
PERlZGljYXRlZFdvcmtlclRocmVhZD4gY3JlYXRlKGNvbnN0IEtVUkwmIHNjcmlwdFVSTCwgY29u
c3QgU3RyaW5nJiB1c2VyQWdlbnQsIGNvbnN0IFN0cmluZyYgc291cmNlQ29kZSwgV29ya2VyTG9h
ZGVyUHJveHkmLCBXb3JrZXJPYmplY3RQcm94eSYsIGJvb2wgc3RhcnRQYXVzZWQpOwogICAgICAg
ICBXb3JrZXJPYmplY3RQcm94eSYgd29ya2VyT2JqZWN0UHJveHkoKSBjb25zdCB7IHJldHVybiBt
X3dvcmtlck9iamVjdFByb3h5OyB9CiAgICAgICAgIH5EZWRpY2F0ZWRXb3JrZXJUaHJlYWQoKTsK
IApAQCAtNDksNyArNDksNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgIHZpcnR1YWwg
dm9pZCBydW5FdmVudExvb3AoKTsKIAogICAgIHByaXZhdGU6Ci0gICAgICAgIERlZGljYXRlZFdv
cmtlclRocmVhZChjb25zdCBLVVJMJiwgY29uc3QgU3RyaW5nJiB1c2VyQWdlbnQsIGNvbnN0IFN0
cmluZyYgc291cmNlQ29kZSwgV29ya2VyTG9hZGVyUHJveHkmLCBXb3JrZXJPYmplY3RQcm94eSYp
OworICAgICAgICBEZWRpY2F0ZWRXb3JrZXJUaHJlYWQoY29uc3QgS1VSTCYsIGNvbnN0IFN0cmlu
ZyYgdXNlckFnZW50LCBjb25zdCBTdHJpbmcmIHNvdXJjZUNvZGUsIFdvcmtlckxvYWRlclByb3h5
JiwgV29ya2VyT2JqZWN0UHJveHkmLCBib29sIHN0YXJ0UGF1c2VkKTsKIAogICAgICAgICBXb3Jr
ZXJPYmplY3RQcm94eSYgbV93b3JrZXJPYmplY3RQcm94eTsKICAgICB9OwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvd29ya2Vycy9TaGFyZWRXb3JrZXJUaHJlYWQuY3BwIGIvU291cmNlL1dl
YkNvcmUvd29ya2Vycy9TaGFyZWRXb3JrZXJUaHJlYWQuY3BwCmluZGV4IGU1OWRmNGZkODUwNzk3
MzZmY2E2MTMyYTA2NGUwYjI2MWY0NDk4ODEuLjcyNGIyODQzYjE4NWY4NDgzYjM2MWNmNTNhM2Ix
MWUwOTM1OTMyODIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvU2hhcmVkV29y
a2VyVGhyZWFkLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1NoYXJlZFdvcmtlclRo
cmVhZC5jcHAKQEAgLTM4LDEzICszOCwxMyBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLVBh
c3NSZWZQdHI8U2hhcmVkV29ya2VyVGhyZWFkPiBTaGFyZWRXb3JrZXJUaHJlYWQ6OmNyZWF0ZShj
b25zdCBTdHJpbmcmIG5hbWUsIGNvbnN0IEtVUkwmIHNjcmlwdFVSTCwgY29uc3QgU3RyaW5nJiB1
c2VyQWdlbnQsIGNvbnN0IFN0cmluZyYgc291cmNlQ29kZSwgV29ya2VyTG9hZGVyUHJveHkmIHdv
cmtlckxvYWRlclByb3h5LCBXb3JrZXJSZXBvcnRpbmdQcm94eSYgd29ya2VyUmVwb3J0aW5nUHJv
eHkpCitQYXNzUmVmUHRyPFNoYXJlZFdvcmtlclRocmVhZD4gU2hhcmVkV29ya2VyVGhyZWFkOjpj
cmVhdGUoY29uc3QgU3RyaW5nJiBuYW1lLCBjb25zdCBLVVJMJiBzY3JpcHRVUkwsIGNvbnN0IFN0
cmluZyYgdXNlckFnZW50LCBjb25zdCBTdHJpbmcmIHNvdXJjZUNvZGUsIFdvcmtlckxvYWRlclBy
b3h5JiB3b3JrZXJMb2FkZXJQcm94eSwgV29ya2VyUmVwb3J0aW5nUHJveHkmIHdvcmtlclJlcG9y
dGluZ1Byb3h5LCBib29sIHN0YXJ0UGF1c2VkKQogewotICAgIHJldHVybiBhZG9wdFJlZihuZXcg
U2hhcmVkV29ya2VyVGhyZWFkKG5hbWUsIHNjcmlwdFVSTCwgdXNlckFnZW50LCBzb3VyY2VDb2Rl
LCB3b3JrZXJMb2FkZXJQcm94eSwgd29ya2VyUmVwb3J0aW5nUHJveHkpKTsKKyAgICByZXR1cm4g
YWRvcHRSZWYobmV3IFNoYXJlZFdvcmtlclRocmVhZChuYW1lLCBzY3JpcHRVUkwsIHVzZXJBZ2Vu
dCwgc291cmNlQ29kZSwgd29ya2VyTG9hZGVyUHJveHksIHdvcmtlclJlcG9ydGluZ1Byb3h5LCBz
dGFydFBhdXNlZCkpOwogfQogCi1TaGFyZWRXb3JrZXJUaHJlYWQ6OlNoYXJlZFdvcmtlclRocmVh
ZChjb25zdCBTdHJpbmcmIG5hbWUsIGNvbnN0IEtVUkwmIHVybCwgY29uc3QgU3RyaW5nJiB1c2Vy
QWdlbnQsIGNvbnN0IFN0cmluZyYgc291cmNlQ29kZSwgV29ya2VyTG9hZGVyUHJveHkmIHdvcmtl
ckxvYWRlclByb3h5LCBXb3JrZXJSZXBvcnRpbmdQcm94eSYgd29ya2VyUmVwb3J0aW5nUHJveHkp
Ci0gICAgOiBXb3JrZXJUaHJlYWQodXJsLCB1c2VyQWdlbnQsIHNvdXJjZUNvZGUsIHdvcmtlckxv
YWRlclByb3h5LCB3b3JrZXJSZXBvcnRpbmdQcm94eSkKK1NoYXJlZFdvcmtlclRocmVhZDo6U2hh
cmVkV29ya2VyVGhyZWFkKGNvbnN0IFN0cmluZyYgbmFtZSwgY29uc3QgS1VSTCYgdXJsLCBjb25z
dCBTdHJpbmcmIHVzZXJBZ2VudCwgY29uc3QgU3RyaW5nJiBzb3VyY2VDb2RlLCBXb3JrZXJMb2Fk
ZXJQcm94eSYgd29ya2VyTG9hZGVyUHJveHksIFdvcmtlclJlcG9ydGluZ1Byb3h5JiB3b3JrZXJS
ZXBvcnRpbmdQcm94eSwgYm9vbCBzdGFydFBhdXNlZCkKKyAgICA6IFdvcmtlclRocmVhZCh1cmws
IHVzZXJBZ2VudCwgc291cmNlQ29kZSwgd29ya2VyTG9hZGVyUHJveHksIHdvcmtlclJlcG9ydGlu
Z1Byb3h5LCBzdGFydFBhdXNlZCkKICAgICAsIG1fbmFtZShuYW1lLmNyb3NzVGhyZWFkU3RyaW5n
KCkpCiB7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1NoYXJlZFdvcmtl
clRocmVhZC5oIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9TaGFyZWRXb3JrZXJUaHJlYWQuaApp
bmRleCBkOTZmZDJhMTkzMmJlZjAwYjdhNmJiMjI3NGFhNDAyNzg4NDVhNjAzLi5iZjhmZTFhN2Jj
MTg4MjVkY2IzNzcxNTM4YjIzMjA5M2ZmYzI0NWY1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS93b3JrZXJzL1NoYXJlZFdvcmtlclRocmVhZC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtl
cnMvU2hhcmVkV29ya2VyVGhyZWFkLmgKQEAgLTM4LDE0ICszOCwxNCBAQCBuYW1lc3BhY2UgV2Vi
Q29yZSB7CiAKICAgICBjbGFzcyBTaGFyZWRXb3JrZXJUaHJlYWQgOiBwdWJsaWMgV29ya2VyVGhy
ZWFkIHsKICAgICBwdWJsaWM6Ci0gICAgICAgIHN0YXRpYyBQYXNzUmVmUHRyPFNoYXJlZFdvcmtl
clRocmVhZD4gY3JlYXRlKGNvbnN0IFN0cmluZyYgbmFtZSwgY29uc3QgS1VSTCYsIGNvbnN0IFN0
cmluZyYgdXNlckFnZW50LCBjb25zdCBTdHJpbmcmIHNvdXJjZUNvZGUsIFdvcmtlckxvYWRlclBy
b3h5JiwgV29ya2VyUmVwb3J0aW5nUHJveHkmKTsKKyAgICAgICAgc3RhdGljIFBhc3NSZWZQdHI8
U2hhcmVkV29ya2VyVGhyZWFkPiBjcmVhdGUoY29uc3QgU3RyaW5nJiBuYW1lLCBjb25zdCBLVVJM
JiwgY29uc3QgU3RyaW5nJiB1c2VyQWdlbnQsIGNvbnN0IFN0cmluZyYgc291cmNlQ29kZSwgV29y
a2VyTG9hZGVyUHJveHkmLCBXb3JrZXJSZXBvcnRpbmdQcm94eSYsIGJvb2wgc3RhcnRQYXVzZWQp
OwogICAgICAgICB+U2hhcmVkV29ya2VyVGhyZWFkKCk7CiAKICAgICBwcm90ZWN0ZWQ6CiAgICAg
ICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxXb3JrZXJDb250ZXh0PiBjcmVhdGVXb3JrZXJDb250ZXh0
KGNvbnN0IEtVUkwmLCBjb25zdCBTdHJpbmcmKTsKIAogICAgIHByaXZhdGU6Ci0gICAgICAgIFNo
YXJlZFdvcmtlclRocmVhZChjb25zdCBTdHJpbmcmIG5hbWUsIGNvbnN0IEtVUkwmLCBjb25zdCBT
dHJpbmcmIHVzZXJBZ2VudCwgY29uc3QgU3RyaW5nJiBzb3VyY2VDb2RlLCBXb3JrZXJMb2FkZXJQ
cm94eSYsIFdvcmtlclJlcG9ydGluZ1Byb3h5Jik7CisgICAgICAgIFNoYXJlZFdvcmtlclRocmVh
ZChjb25zdCBTdHJpbmcmIG5hbWUsIGNvbnN0IEtVUkwmLCBjb25zdCBTdHJpbmcmIHVzZXJBZ2Vu
dCwgY29uc3QgU3RyaW5nJiBzb3VyY2VDb2RlLCBXb3JrZXJMb2FkZXJQcm94eSYsIFdvcmtlclJl
cG9ydGluZ1Byb3h5JiwgYm9vbCBzdGFydFBhdXNlZCk7CiAKICAgICAgICAgU3RyaW5nIG1fbmFt
ZTsKICAgICB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJNZXNz
YWdpbmdQcm94eS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlck1lc3NhZ2luZ1By
b3h5LmNwcAppbmRleCBlOTdlOWMzYjIxMGYyMjg5YjAyYzhiODc3OGQ0M2ZhZWJlNThkNmEzLi42
NjU2Y2ZhZmU4NDI1Njg5ZTNiNmJhYmJjOTNmYTZhYmMwODI1M2VmIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlck1lc3NhZ2luZ1Byb3h5LmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS93b3JrZXJzL1dvcmtlck1lc3NhZ2luZ1Byb3h5LmNwcApAQCAtNDQsOCArNDQsOCBA
QAogI2luY2x1ZGUgIlNjcmlwdENhbGxTdGFjay5oIgogI2luY2x1ZGUgIlNjcmlwdEV4ZWN1dGlv
bkNvbnRleHQuaCIKICNpbmNsdWRlICJXb3JrZXIuaCIKKyNpbmNsdWRlICJXb3JrZXJEZWJ1Z2dl
ckFnZW50LmgiCiAjaW5jbHVkZSAiV29ya2VySW5zcGVjdG9yQ29udHJvbGxlci5oIgotI2luY2x1
ZGUgIldvcmtlclNjcmlwdERlYnVnU2VydmVyLmgiCiAjaW5jbHVkZSA8d3RmL01haW5UaHJlYWQu
aD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewpAQCAtMjY4LDcgKzI2OCw3IEBAIFdvcmtlck1lc3Nh
Z2luZ1Byb3h5Ojp+V29ya2VyTWVzc2FnaW5nUHJveHkoKQogCiB2b2lkIFdvcmtlck1lc3NhZ2lu
Z1Byb3h5OjpzdGFydFdvcmtlckNvbnRleHQoY29uc3QgS1VSTCYgc2NyaXB0VVJMLCBjb25zdCBT
dHJpbmcmIHVzZXJBZ2VudCwgY29uc3QgU3RyaW5nJiBzb3VyY2VDb2RlKQogewotICAgIFJlZlB0
cjxEZWRpY2F0ZWRXb3JrZXJUaHJlYWQ+IHRocmVhZCA9IERlZGljYXRlZFdvcmtlclRocmVhZDo6
Y3JlYXRlKHNjcmlwdFVSTCwgdXNlckFnZW50LCBzb3VyY2VDb2RlLCAqdGhpcywgKnRoaXMpOwor
ICAgIFJlZlB0cjxEZWRpY2F0ZWRXb3JrZXJUaHJlYWQ+IHRocmVhZCA9IERlZGljYXRlZFdvcmtl
clRocmVhZDo6Y3JlYXRlKHNjcmlwdFVSTCwgdXNlckFnZW50LCBzb3VyY2VDb2RlLCAqdGhpcywg
KnRoaXMsIGZhbHNlKTsKICAgICB3b3JrZXJUaHJlYWRDcmVhdGVkKHRocmVhZCk7CiAgICAgdGhy
ZWFkLT5zdGFydCgpOwogfQpAQCAtMzgwLDcgKzM4MCw3IEBAIHZvaWQgV29ya2VyTWVzc2FnaW5n
UHJveHk6OmRpc2Nvbm5lY3RGcm9tSW5zcGVjdG9yKCkKICAgICBtX3BhZ2VJbnNwZWN0b3IgPSAw
OwogICAgIGlmIChtX2Fza2VkVG9UZXJtaW5hdGUpCiAgICAgICAgIHJldHVybjsKLSAgICBtX3dv
cmtlclRocmVhZC0+cnVuTG9vcCgpLnBvc3RUYXNrRm9yTW9kZShjcmVhdGVDYWxsYmFja1Rhc2so
ZGlzY29ubmVjdEZyb21Xb3JrZXJDb250ZXh0SW5zcGVjdG9yVGFzaywgdHJ1ZSksIFdvcmtlclNj
cmlwdERlYnVnU2VydmVyOjpkZWJ1Z2dlclRhc2tNb2RlKTsKKyAgICBtX3dvcmtlclRocmVhZC0+
cnVuTG9vcCgpLnBvc3RUYXNrRm9yTW9kZShjcmVhdGVDYWxsYmFja1Rhc2soZGlzY29ubmVjdEZy
b21Xb3JrZXJDb250ZXh0SW5zcGVjdG9yVGFzaywgdHJ1ZSksIFdvcmtlckRlYnVnZ2VyQWdlbnQ6
OmRlYnVnZ2VyVGFza01vZGUpOwogfQogCiBzdGF0aWMgdm9pZCBkaXNwYXRjaE9uSW5zcGVjdG9y
QmFja2VuZFRhc2soU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29udGV4dCwgY29uc3QgU3RyaW5n
JiBtZXNzYWdlKQpAQCAtMzkzLDcgKzM5Myw3IEBAIHZvaWQgV29ya2VyTWVzc2FnaW5nUHJveHk6
OnNlbmRNZXNzYWdlVG9JbnNwZWN0b3IoY29uc3QgU3RyaW5nJiBtZXNzYWdlKQogewogICAgIGlm
IChtX2Fza2VkVG9UZXJtaW5hdGUpCiAgICAgICAgIHJldHVybjsKLSAgICBtX3dvcmtlclRocmVh
ZC0+cnVuTG9vcCgpLnBvc3RUYXNrRm9yTW9kZShjcmVhdGVDYWxsYmFja1Rhc2soZGlzcGF0Y2hP
bkluc3BlY3RvckJhY2tlbmRUYXNrLCBTdHJpbmcobWVzc2FnZSkpLCBXb3JrZXJTY3JpcHREZWJ1
Z1NlcnZlcjo6ZGVidWdnZXJUYXNrTW9kZSk7CisgICAgbV93b3JrZXJUaHJlYWQtPnJ1bkxvb3Ao
KS5wb3N0VGFza0Zvck1vZGUoY3JlYXRlQ2FsbGJhY2tUYXNrKGRpc3BhdGNoT25JbnNwZWN0b3JC
YWNrZW5kVGFzaywgU3RyaW5nKG1lc3NhZ2UpKSwgV29ya2VyRGVidWdnZXJBZ2VudDo6ZGVidWdn
ZXJUYXNrTW9kZSk7CiB9CiAjZW5kaWYKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd29y
a2Vycy9Xb3JrZXJUaHJlYWQuY3BwIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJUaHJl
YWQuY3BwCmluZGV4IDcwOWFkNjAyYTJmOTg3NmYxMmRjZGRmMDE4OTc1Y2ZkZjJkYjNmNDcuLjYw
ZGNiYzM0YjIwNzY0MGVmNDEyZWE0MjIyZmY1MzZmZDZhMTY2NzggMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyVGhyZWFkLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS93
b3JrZXJzL1dvcmtlclRocmVhZC5jcHAKQEAgLTMxLDYgKzMxLDcgQEAKICNpbmNsdWRlICJXb3Jr
ZXJUaHJlYWQuaCIKIAogI2luY2x1ZGUgIkRlZGljYXRlZFdvcmtlckNvbnRleHQuaCIKKyNpbmNs
dWRlICJJbnNwZWN0b3JJbnN0cnVtZW50YXRpb24uaCIKICNpbmNsdWRlICJLVVJMLmgiCiAjaW5j
bHVkZSAiUGxhdGZvcm1TdHJpbmcuaCIKICNpbmNsdWRlICJTY3JpcHRTb3VyY2VDb2RlLmgiCkBA
IC02NCwzMCArNjUsMzUgQEAgdW5zaWduZWQgV29ya2VyVGhyZWFkOjp3b3JrZXJUaHJlYWRDb3Vu
dCgpCiBzdHJ1Y3QgV29ya2VyVGhyZWFkU3RhcnR1cERhdGEgewogICAgIFdURl9NQUtFX05PTkNP
UFlBQkxFKFdvcmtlclRocmVhZFN0YXJ0dXBEYXRhKTsgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7
CiBwdWJsaWM6Ci0gICAgc3RhdGljIFBhc3NPd25QdHI8V29ya2VyVGhyZWFkU3RhcnR1cERhdGE+
IGNyZWF0ZShjb25zdCBLVVJMJiBzY3JpcHRVUkwsIGNvbnN0IFN0cmluZyYgdXNlckFnZW50LCBj
b25zdCBTdHJpbmcmIHNvdXJjZUNvZGUpCisgICAgc3RhdGljIFBhc3NPd25QdHI8V29ya2VyVGhy
ZWFkU3RhcnR1cERhdGE+IGNyZWF0ZShjb25zdCBLVVJMJiBzY3JpcHRVUkwsIGNvbnN0IFN0cmlu
ZyYgdXNlckFnZW50LCBjb25zdCBTdHJpbmcmIHNvdXJjZUNvZGUsIGJvb2wgc3RhcnRQYXVzZWQp
CiAgICAgewotICAgICAgICByZXR1cm4gYWRvcHRQdHIobmV3IFdvcmtlclRocmVhZFN0YXJ0dXBE
YXRhKHNjcmlwdFVSTCwgdXNlckFnZW50LCBzb3VyY2VDb2RlKSk7CisgICAgICAgIHJldHVybiBh
ZG9wdFB0cihuZXcgV29ya2VyVGhyZWFkU3RhcnR1cERhdGEoc2NyaXB0VVJMLCB1c2VyQWdlbnQs
IHNvdXJjZUNvZGUsIHN0YXJ0UGF1c2VkKSk7CiAgICAgfQogCiAgICAgS1VSTCBtX3NjcmlwdFVS
TDsKICAgICBTdHJpbmcgbV91c2VyQWdlbnQ7CiAgICAgU3RyaW5nIG1fc291cmNlQ29kZTsKKyAg
ICBib29sIG1fc3RhcnRQYXVzZWQ7CiBwcml2YXRlOgotICAgIFdvcmtlclRocmVhZFN0YXJ0dXBE
YXRhKGNvbnN0IEtVUkwmIHNjcmlwdFVSTCwgY29uc3QgU3RyaW5nJiB1c2VyQWdlbnQsIGNvbnN0
IFN0cmluZyYgc291cmNlQ29kZSk7CisgICAgV29ya2VyVGhyZWFkU3RhcnR1cERhdGEoY29uc3Qg
S1VSTCYgc2NyaXB0VVJMLCBjb25zdCBTdHJpbmcmIHVzZXJBZ2VudCwgY29uc3QgU3RyaW5nJiBz
b3VyY2VDb2RlLCBib29sIHN0YXJ0UGF1c2VkKTsKIH07CiAKLVdvcmtlclRocmVhZFN0YXJ0dXBE
YXRhOjpXb3JrZXJUaHJlYWRTdGFydHVwRGF0YShjb25zdCBLVVJMJiBzY3JpcHRVUkwsIGNvbnN0
IFN0cmluZyYgdXNlckFnZW50LCBjb25zdCBTdHJpbmcmIHNvdXJjZUNvZGUpCitXb3JrZXJUaHJl
YWRTdGFydHVwRGF0YTo6V29ya2VyVGhyZWFkU3RhcnR1cERhdGEoY29uc3QgS1VSTCYgc2NyaXB0
VVJMLCBjb25zdCBTdHJpbmcmIHVzZXJBZ2VudCwgY29uc3QgU3RyaW5nJiBzb3VyY2VDb2RlLCBi
b29sIHN0YXJ0UGF1c2VkKQogICAgIDogbV9zY3JpcHRVUkwoc2NyaXB0VVJMLmNvcHkoKSkKICAg
ICAsIG1fdXNlckFnZW50KHVzZXJBZ2VudC5jcm9zc1RocmVhZFN0cmluZygpKQogICAgICwgbV9z
b3VyY2VDb2RlKHNvdXJjZUNvZGUuY3Jvc3NUaHJlYWRTdHJpbmcoKSkKKyAgICAsIG1fc3RhcnRQ
YXVzZWQoc3RhcnRQYXVzZWQpCiB7CiB9CiAKLVdvcmtlclRocmVhZDo6V29ya2VyVGhyZWFkKGNv
bnN0IEtVUkwmIHNjcmlwdFVSTCwgY29uc3QgU3RyaW5nJiB1c2VyQWdlbnQsIGNvbnN0IFN0cmlu
ZyYgc291cmNlQ29kZSwgV29ya2VyTG9hZGVyUHJveHkmIHdvcmtlckxvYWRlclByb3h5LCBXb3Jr
ZXJSZXBvcnRpbmdQcm94eSYgd29ya2VyUmVwb3J0aW5nUHJveHkpCitXb3JrZXJUaHJlYWQ6Oldv
cmtlclRocmVhZChjb25zdCBLVVJMJiBzY3JpcHRVUkwsIGNvbnN0IFN0cmluZyYgdXNlckFnZW50
LCBjb25zdCBTdHJpbmcmIHNvdXJjZUNvZGUsIFdvcmtlckxvYWRlclByb3h5JiB3b3JrZXJMb2Fk
ZXJQcm94eSwgV29ya2VyUmVwb3J0aW5nUHJveHkmIHdvcmtlclJlcG9ydGluZ1Byb3h5LCBib29s
IHN0YXJ0UGF1c2VkKQogICAgIDogbV90aHJlYWRJRCgwKQogICAgICwgbV93b3JrZXJMb2FkZXJQ
cm94eSh3b3JrZXJMb2FkZXJQcm94eSkKICAgICAsIG1fd29ya2VyUmVwb3J0aW5nUHJveHkod29y
a2VyUmVwb3J0aW5nUHJveHkpCi0gICAgLCBtX3N0YXJ0dXBEYXRhKFdvcmtlclRocmVhZFN0YXJ0
dXBEYXRhOjpjcmVhdGUoc2NyaXB0VVJMLCB1c2VyQWdlbnQsIHNvdXJjZUNvZGUpKQorICAgICwg
bV9zdGFydHVwRGF0YShXb3JrZXJUaHJlYWRTdGFydHVwRGF0YTo6Y3JlYXRlKHNjcmlwdFVSTCwg
dXNlckFnZW50LCBzb3VyY2VDb2RlLCBzdGFydFBhdXNlZCkpCisjaWYgRU5BQkxFKE5PVElGSUNB
VElPTlMpCisgICAgLCBtX25vdGlmaWNhdGlvblByZXNlbnRlcigwKQorI2VuZGlmCiB7CiAgICAg
TXV0ZXhMb2NrZXIgbG9jayh0aHJlYWRDb3VudE11dGV4KCkpOwogICAgIG1fdGhyZWFkQ291bnQr
KzsKQEAgLTEzMiw2ICsxMzgsNyBAQCB2b2lkKiBXb3JrZXJUaHJlYWQ6OndvcmtlclRocmVhZCgp
CiAgICAgfQogCiAgICAgV29ya2VyU2NyaXB0Q29udHJvbGxlciogc2NyaXB0ID0gbV93b3JrZXJD
b250ZXh0LT5zY3JpcHQoKTsKKyAgICBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OndpbGxFdmFs
dWF0ZVdvcmtlclNjcmlwdCh3b3JrZXJDb250ZXh0KCksIG1fc3RhcnR1cERhdGEtPm1fc3RhcnRQ
YXVzZWQpOwogICAgIHNjcmlwdC0+ZXZhbHVhdGUoU2NyaXB0U291cmNlQ29kZShtX3N0YXJ0dXBE
YXRhLT5tX3NvdXJjZUNvZGUsIG1fc3RhcnR1cERhdGEtPm1fc2NyaXB0VVJMKSk7CiAgICAgLy8g
RnJlZSB0aGUgc3RhcnR1cCBkYXRhIHRvIGNhdXNlIGl0cyBtZW1iZXIgdmFyaWFibGUgZGVyZWYn
cyBoYXBwZW4gb24gdGhlIHdvcmtlcidzIHRocmVhZCAoc2luY2UKICAgICAvLyBhbGwgcmVmL2Rl
cmVmcyBvZiB0aGVzZSBvYmplY3RzIGFyZSBoYXBwZW5pbmcgb24gdGhlIHRocmVhZCBhdCB0aGlz
IHBvaW50KS4gTm90ZSB0aGF0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dv
cmtlclRocmVhZC5oIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJUaHJlYWQuaAppbmRl
eCBlNDRhZmNlOTlkZTBhYTQ5ZTI0MTIxYjkyMGM5Zjk5NzQxMTU3ZjIxLi40NjE1NDgyNGFjY2Fl
NGRhNjUzZDE4NGYwZDE2ZTY5NDhlNzM3ZWNmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93
b3JrZXJzL1dvcmtlclRocmVhZC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2Vy
VGhyZWFkLmgKQEAgLTY1LDcgKzY1LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogI2VuZGlmCiAK
ICAgICBwcm90ZWN0ZWQ6Ci0gICAgICAgIFdvcmtlclRocmVhZChjb25zdCBLVVJMJiwgY29uc3Qg
U3RyaW5nJiB1c2VyQWdlbnQsIGNvbnN0IFN0cmluZyYgc291cmNlQ29kZSwgV29ya2VyTG9hZGVy
UHJveHkmLCBXb3JrZXJSZXBvcnRpbmdQcm94eSYpOworICAgICAgICBXb3JrZXJUaHJlYWQoY29u
c3QgS1VSTCYsIGNvbnN0IFN0cmluZyYgdXNlckFnZW50LCBjb25zdCBTdHJpbmcmIHNvdXJjZUNv
ZGUsIFdvcmtlckxvYWRlclByb3h5JiwgV29ya2VyUmVwb3J0aW5nUHJveHkmLCBib29sIHN0YXJ0
UGF1c2VkKTsKIAogICAgICAgICAvLyBGYWN0b3J5IG1ldGhvZCBmb3IgY3JlYXRpbmcgYSBuZXcg
d29ya2VyIGNvbnRleHQgZm9yIHRoZSB0aHJlYWQuCiAgICAgICAgIHZpcnR1YWwgUGFzc1JlZlB0
cjxXb3JrZXJDb250ZXh0PiBjcmVhdGVXb3JrZXJDb250ZXh0KGNvbnN0IEtVUkwmIHVybCwgY29u
c3QgU3RyaW5nJiB1c2VyQWdlbnQpID0gMDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hy
b21pdW0vQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKaW5kZXgg
N2RkZTI4ZjYwNTZlM2ZkMmI5YzAzNmY3OTgwMTBlNmFiMTgwNGQxYS4uNTZiZTVlMDI5ZTNlYzkw
ZjFhNzYwMjYzZjgwMjBkYTA5ZDk0NmVlMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJv
bWl1bS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKQEAg
LTEsMyArMSwzOCBAQAorMjAxMS0xMC0wNyAgWXVyeSBTZW1pa2hhdHNreSAgPHl1cnlzQGNocm9t
aXVtLm9yZz4KKworICAgICAgICBXZWIgSW5zcGVjdG9yOiBhbGxvdyB0byBzdGFydCBXb3JrZXJD
b250ZXh0IHBhdXNlZAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9Njk2MzUKKworICAgICAgICBFeHBvc2UgbWV0aG9kcyBmb3IgcGF1c2luZyBzaGFyZWQg
d29ya2VyIG9uIHN0YXJ0LgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgICogcHVibGljL1dlYlNoYXJlZFdvcmtlci5oOgorICAgICAgICAoV2ViS2l0OjpX
ZWJTaGFyZWRXb3JrZXI6OnBhdXNlV29ya2VyQ29udGV4dE9uU3RhcnQpOiBzcGVjaWZpZXMgdGhh
dCB0aGUgd29ya2VyCisgICAgICAgIGNvbnRleHQgc2hvdWxkIGJlIHBhdXNlZCBhbmQgd2VpdCBm
b3IgZXhwbGljaXQgY2FsbCB0byByZXN1bWVXb3JrZXJDb250ZXh0IGJlZm9yZQorICAgICAgICBy
dW5uaW5nIGl0cyBzY3JpcHQuCisgICAgICAgIChXZWJLaXQ6OldlYlNoYXJlZFdvcmtlcjo6cmVz
dW1lV29ya2VyQ29udGV4dCk6CisgICAgICAgICogc3JjL1dlYlNoYXJlZFdvcmtlckltcGwuY3Bw
OgorICAgICAgICAoV2ViS2l0OjpXZWJTaGFyZWRXb3JrZXJJbXBsOjpXZWJTaGFyZWRXb3JrZXJJ
bXBsKToKKyAgICAgICAgKFdlYktpdDo6V2ViU2hhcmVkV29ya2VySW1wbDo6c3RhcnRXb3JrZXJD
b250ZXh0KToKKyAgICAgICAgKFdlYktpdDo6V2ViU2hhcmVkV29ya2VySW1wbDo6cGF1c2VXb3Jr
ZXJDb250ZXh0T25TdGFydCk6CisgICAgICAgIChXZWJLaXQ6OnJlc3VtZVdvcmtlckNvbnRleHRU
YXNrKToKKyAgICAgICAgKFdlYktpdDo6V2ViU2hhcmVkV29ya2VySW1wbDo6cmVzdW1lV29ya2Vy
Q29udGV4dCk6CisgICAgICAgIChXZWJLaXQ6OldlYlNoYXJlZFdvcmtlckltcGw6OmF0dGFjaERl
dlRvb2xzKToKKyAgICAgICAgKFdlYktpdDo6cmVjb25uZWN0VG9Xb3JrZXJDb250ZXh0SW5zcGVj
dG9yVGFzayk6CisgICAgICAgIChXZWJLaXQ6OldlYlNoYXJlZFdvcmtlckltcGw6OnJlYXR0YWNo
RGV2VG9vbHMpOgorICAgICAgICAoV2ViS2l0OjpXZWJTaGFyZWRXb3JrZXJJbXBsOjpkZXRhY2hE
ZXZUb29scyk6CisgICAgICAgIChXZWJLaXQ6OldlYlNoYXJlZFdvcmtlckltcGw6OmRpc3BhdGNo
RGV2VG9vbHNNZXNzYWdlKToKKyAgICAgICAgKiBzcmMvV2ViU2hhcmVkV29ya2VySW1wbC5oOgor
ICAgICAgICAqIHNyYy9XZWJXb3JrZXJDbGllbnRJbXBsLmNwcDoKKyAgICAgICAgKFdlYktpdDo6
V2ViV29ya2VyQ2xpZW50SW1wbDo6c3RhcnRXb3JrZXJDb250ZXh0KToKKyAgICAgICAgKFdlYktp
dDo6V2ViV29ya2VyQ2xpZW50SW1wbDo6dXBkYXRlSW5zcGVjdG9yU3RhdGVDb29raWUpOgorICAg
ICAgICAqIHNyYy9XZWJXb3JrZXJDbGllbnRJbXBsLmg6CisgICAgICAgICogc3JjL1dlYldvcmtl
ckltcGwuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJXb3JrZXJJbXBsOjpzdGFydFdvcmtlckNv
bnRleHQpOgorICAgICAgICAoV2ViS2l0OjpXZWJXb3JrZXJJbXBsOjpkZXRhY2hEZXZUb29scyk6
CisgICAgICAgIChXZWJLaXQ6OldlYldvcmtlckltcGw6OmRpc3BhdGNoRGV2VG9vbHNNZXNzYWdl
KToKKwogMjAxMS0xMC0wNyAgU2hlcmlmZiBCb3QgIDx3ZWJraXQucmV2aWV3LmJvdEBnbWFpbC5j
b20+CiAKICAgICAgICAgVW5yZXZpZXdlZCwgcm9sbGluZyBvdXQgcjk2ODc5LgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViU2hhcmVkV29ya2VyLmggYi9Tb3Vy
Y2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJTaGFyZWRXb3JrZXIuaAppbmRleCBhMzQ3N2Iz
YWMzMzA2N2Q1MGRjOTM5OTc3NGY5ZmQyYzRkZWUzNjMzLi41ZjU1MGFhOWVjNWNkNzNiODNmODgz
OThjYTAyNmMxOTZkNTc0NDgxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1
YmxpYy9XZWJTaGFyZWRXb3JrZXIuaAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1Ymxp
Yy9XZWJTaGFyZWRXb3JrZXIuaApAQCAtNzgsNiArNzgsOCBAQCBwdWJsaWM6CiAgICAgLy8gTm90
aWZpY2F0aW9uIHdoZW4gdGhlIFdlYkNvbW1vbldvcmtlckNsaWVudCBpcyBkZXN0cm95ZWQuCiAg
ICAgdmlydHVhbCB2b2lkIGNsaWVudERlc3Ryb3llZCgpID0gMDsKIAorICAgIHZpcnR1YWwgdm9p
ZCBwYXVzZVdvcmtlckNvbnRleHRPblN0YXJ0KCkgeyB9CisgICAgdmlydHVhbCB2b2lkIHJlc3Vt
ZVdvcmtlckNvbnRleHQoKSB7IH0KICAgICB2aXJ0dWFsIHZvaWQgYXR0YWNoRGV2VG9vbHMoKSB7
IH0KICAgICB2aXJ0dWFsIHZvaWQgcmVhdHRhY2hEZXZUb29scyhjb25zdCBXZWJTdHJpbmcmIHNh
dmVkU3RhdGUpIHsgfQogICAgIHZpcnR1YWwgdm9pZCBkZXRhY2hEZXZUb29scygpIHsgfQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViU2hhcmVkV29ya2VySW1wbC5j
cHAgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJTaGFyZWRXb3JrZXJJbXBsLmNwcApp
bmRleCBhMzliY2ExYTA0YzQ2ZmU5YWRiMTMxYjE1NmFmNWFhNDE0NjZkODcyLi44NGY1Mjg5ZTM5
N2QwOTUxZDFhNjJjZjYzZWEyNTcwNWEyYmVmNjgwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L2Nocm9taXVtL3NyYy9XZWJTaGFyZWRXb3JrZXJJbXBsLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0
L2Nocm9taXVtL3NyYy9XZWJTaGFyZWRXb3JrZXJJbXBsLmNwcApAQCAtMzksOCArMzksOCBAQAog
I2luY2x1ZGUgIlNjcmlwdEV4ZWN1dGlvbkNvbnRleHQuaCIKICNpbmNsdWRlICJTaGFyZWRXb3Jr
ZXJDb250ZXh0LmgiCiAjaW5jbHVkZSAiU2hhcmVkV29ya2VyVGhyZWFkLmgiCisjaW5jbHVkZSAi
V29ya2VyRGVidWdnZXJBZ2VudC5oIgogI2luY2x1ZGUgIldvcmtlckluc3BlY3RvckNvbnRyb2xs
ZXIuaCIKLSNpbmNsdWRlICJXb3JrZXJTY3JpcHREZWJ1Z1NlcnZlci5oIgogCiAjaW5jbHVkZSAi
V2ViTWVzc2FnZVBvcnRDaGFubmVsLmgiCiAjaW5jbHVkZSAiV2ViU3RyaW5nLmgiCkBAIC01NCw2
ICs1NCw3IEBAIG5hbWVzcGFjZSBXZWJLaXQgewogCiBXZWJTaGFyZWRXb3JrZXJJbXBsOjpXZWJT
aGFyZWRXb3JrZXJJbXBsKFdlYkNvbW1vbldvcmtlckNsaWVudCogY2xpZW50KQogICAgIDogbV9j
bGllbnQoY2xpZW50KQorICAgICwgbV9wYXVzZVdvcmtlckNvbnRleHRPblN0YXJ0KGZhbHNlKQog
ewogfQogCkBAIC05Nyw3ICs5OCw3IEBAIHZvaWQgV2ViU2hhcmVkV29ya2VySW1wbDo6Y29ubmVj
dFRhc2soU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29udGV4dCwgUGFzc093blB0CiB2b2lkIFdl
YlNoYXJlZFdvcmtlckltcGw6OnN0YXJ0V29ya2VyQ29udGV4dChjb25zdCBXZWJVUkwmIHVybCwg
Y29uc3QgV2ViU3RyaW5nJiBuYW1lLCBjb25zdCBXZWJTdHJpbmcmIHVzZXJBZ2VudCwgY29uc3Qg
V2ViU3RyaW5nJiBzb3VyY2VDb2RlLCBsb25nIGxvbmcpCiB7CiAgICAgaW5pdGlhbGl6ZUxvYWRl
cih1cmwpOwotICAgIHNldFdvcmtlclRocmVhZChTaGFyZWRXb3JrZXJUaHJlYWQ6OmNyZWF0ZShu
YW1lLCB1cmwsIHVzZXJBZ2VudCwgc291cmNlQ29kZSwgKnRoaXMsICp0aGlzKSk7CisgICAgc2V0
V29ya2VyVGhyZWFkKFNoYXJlZFdvcmtlclRocmVhZDo6Y3JlYXRlKG5hbWUsIHVybCwgdXNlckFn
ZW50LCBzb3VyY2VDb2RlLCAqdGhpcywgKnRoaXMsIG1fcGF1c2VXb3JrZXJDb250ZXh0T25TdGFy
dCkpOwogICAgIHdvcmtlclRocmVhZCgpLT5zdGFydCgpOwogfQogCkBAIC0xMTEsNiArMTEyLDI0
IEBAIHZvaWQgV2ViU2hhcmVkV29ya2VySW1wbDo6Y2xpZW50RGVzdHJveWVkKCkKICAgICBtX2Ns
aWVudCA9IDA7CiB9CiAKK3ZvaWQgV2ViU2hhcmVkV29ya2VySW1wbDo6cGF1c2VXb3JrZXJDb250
ZXh0T25TdGFydCgpCit7CisgICAgbV9wYXVzZVdvcmtlckNvbnRleHRPblN0YXJ0ID0gdHJ1ZTsK
K30KKworc3RhdGljIHZvaWQgcmVzdW1lV29ya2VyQ29udGV4dFRhc2soU2NyaXB0RXhlY3V0aW9u
Q29udGV4dCogY29udGV4dCwgYm9vbCkKK3sKKyAgICBBU1NFUlQoY29udGV4dC0+aXNXb3JrZXJD
b250ZXh0KCkpOworICAgIHN0YXRpY19jYXN0PFdvcmtlckNvbnRleHQqPihjb250ZXh0KS0+d29y
a2VySW5zcGVjdG9yQ29udHJvbGxlcigpLT5yZXN1bWUoKTsKK30KKwordm9pZCBXZWJTaGFyZWRX
b3JrZXJJbXBsOjpyZXN1bWVXb3JrZXJDb250ZXh0KCkKK3sKKyAgICBtX3BhdXNlV29ya2VyQ29u
dGV4dE9uU3RhcnQgPSBmYWxzZTsKKyAgICBpZiAod29ya2VyVGhyZWFkKCkpCisgICAgICAgIHdv
cmtlclRocmVhZCgpLT5ydW5Mb29wKCkucG9zdFRhc2tGb3JNb2RlKGNyZWF0ZUNhbGxiYWNrVGFz
ayhyZXN1bWVXb3JrZXJDb250ZXh0VGFzaywgdHJ1ZSksIFdvcmtlckRlYnVnZ2VyQWdlbnQ6OmRl
YnVnZ2VyVGFza01vZGUpOworfQorCiBzdGF0aWMgdm9pZCBjb25uZWN0VG9Xb3JrZXJDb250ZXh0
SW5zcGVjdG9yVGFzayhTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250ZXh0LCBib29sKQogewog
ICAgIEFTU0VSVChjb250ZXh0LT5pc1dvcmtlckNvbnRleHQoKSk7CkBAIC0xMTksNyArMTM4LDcg
QEAgc3RhdGljIHZvaWQgY29ubmVjdFRvV29ya2VyQ29udGV4dEluc3BlY3RvclRhc2soU2NyaXB0
RXhlY3V0aW9uQ29udGV4dCogY29udGV4dCwKIAogdm9pZCBXZWJTaGFyZWRXb3JrZXJJbXBsOjph
dHRhY2hEZXZUb29scygpCiB7Ci0gICAgd29ya2VyVGhyZWFkKCktPnJ1bkxvb3AoKS5wb3N0VGFz
ayhjcmVhdGVDYWxsYmFja1Rhc2soY29ubmVjdFRvV29ya2VyQ29udGV4dEluc3BlY3RvclRhc2ss
IHRydWUpKTsKKyAgICB3b3JrZXJUaHJlYWQoKS0+cnVuTG9vcCgpLnBvc3RUYXNrRm9yTW9kZShj
cmVhdGVDYWxsYmFja1Rhc2soY29ubmVjdFRvV29ya2VyQ29udGV4dEluc3BlY3RvclRhc2ssIHRy
dWUpLCBXb3JrZXJEZWJ1Z2dlckFnZW50OjpkZWJ1Z2dlclRhc2tNb2RlKTsKIH0KIAogc3RhdGlj
IHZvaWQgcmVjb25uZWN0VG9Xb3JrZXJDb250ZXh0SW5zcGVjdG9yVGFzayhTY3JpcHRFeGVjdXRp
b25Db250ZXh0KiBjb250ZXh0LCBjb25zdCBTdHJpbmcmIHNhdmVkU3RhdGUpCkBAIC0xMjcsMTEg
KzE0NiwxMiBAQCBzdGF0aWMgdm9pZCByZWNvbm5lY3RUb1dvcmtlckNvbnRleHRJbnNwZWN0b3JU
YXNrKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIGNvbnRleAogICAgIEFTU0VSVChjb250ZXh0LT5p
c1dvcmtlckNvbnRleHQoKSk7CiAgICAgV29ya2VySW5zcGVjdG9yQ29udHJvbGxlciogaWMgPSBz
dGF0aWNfY2FzdDxXb3JrZXJDb250ZXh0Kj4oY29udGV4dCktPndvcmtlckluc3BlY3RvckNvbnRy
b2xsZXIoKTsKICAgICBpYy0+cmVzdG9yZUluc3BlY3RvclN0YXRlRnJvbUNvb2tpZShzYXZlZFN0
YXRlKTsKKyAgICBpYy0+cmVzdW1lKCk7CiB9CiAKIHZvaWQgV2ViU2hhcmVkV29ya2VySW1wbDo6
cmVhdHRhY2hEZXZUb29scyhjb25zdCBXZWJTdHJpbmcmIHNhdmVkU3RhdGUpCiB7Ci0gICAgd29y
a2VyVGhyZWFkKCktPnJ1bkxvb3AoKS5wb3N0VGFza0Zvck1vZGUoY3JlYXRlQ2FsbGJhY2tUYXNr
KHJlY29ubmVjdFRvV29ya2VyQ29udGV4dEluc3BlY3RvclRhc2ssIFN0cmluZyhzYXZlZFN0YXRl
KSksIFdvcmtlclNjcmlwdERlYnVnU2VydmVyOjpkZWJ1Z2dlclRhc2tNb2RlKTsKKyAgICB3b3Jr
ZXJUaHJlYWQoKS0+cnVuTG9vcCgpLnBvc3RUYXNrRm9yTW9kZShjcmVhdGVDYWxsYmFja1Rhc2so
cmVjb25uZWN0VG9Xb3JrZXJDb250ZXh0SW5zcGVjdG9yVGFzaywgU3RyaW5nKHNhdmVkU3RhdGUp
KSwgV29ya2VyRGVidWdnZXJBZ2VudDo6ZGVidWdnZXJUYXNrTW9kZSk7CiB9CiAKIHN0YXRpYyB2
b2lkIGRpc2Nvbm5lY3RGcm9tV29ya2VyQ29udGV4dEluc3BlY3RvclRhc2soU2NyaXB0RXhlY3V0
aW9uQ29udGV4dCogY29udGV4dCwgYm9vbCkKQEAgLTE0Miw3ICsxNjIsNyBAQCBzdGF0aWMgdm9p
ZCBkaXNjb25uZWN0RnJvbVdvcmtlckNvbnRleHRJbnNwZWN0b3JUYXNrKFNjcmlwdEV4ZWN1dGlv
bkNvbnRleHQqIGNvbgogCiB2b2lkIFdlYlNoYXJlZFdvcmtlckltcGw6OmRldGFjaERldlRvb2xz
KCkKIHsKLSAgICB3b3JrZXJUaHJlYWQoKS0+cnVuTG9vcCgpLnBvc3RUYXNrRm9yTW9kZShjcmVh
dGVDYWxsYmFja1Rhc2soZGlzY29ubmVjdEZyb21Xb3JrZXJDb250ZXh0SW5zcGVjdG9yVGFzaywg
dHJ1ZSksIFdvcmtlclNjcmlwdERlYnVnU2VydmVyOjpkZWJ1Z2dlclRhc2tNb2RlKTsKKyAgICB3
b3JrZXJUaHJlYWQoKS0+cnVuTG9vcCgpLnBvc3RUYXNrRm9yTW9kZShjcmVhdGVDYWxsYmFja1Rh
c2soZGlzY29ubmVjdEZyb21Xb3JrZXJDb250ZXh0SW5zcGVjdG9yVGFzaywgdHJ1ZSksIFdvcmtl
ckRlYnVnZ2VyQWdlbnQ6OmRlYnVnZ2VyVGFza01vZGUpOwogfQogCiBzdGF0aWMgdm9pZCBkaXNw
YXRjaE9uSW5zcGVjdG9yQmFja2VuZFRhc2soU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29udGV4
dCwgY29uc3QgU3RyaW5nJiBtZXNzYWdlKQpAQCAtMTUzLDcgKzE3Myw3IEBAIHN0YXRpYyB2b2lk
IGRpc3BhdGNoT25JbnNwZWN0b3JCYWNrZW5kVGFzayhTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBj
b250ZXh0LCBjb25zCiAKIHZvaWQgV2ViU2hhcmVkV29ya2VySW1wbDo6ZGlzcGF0Y2hEZXZUb29s
c01lc3NhZ2UoY29uc3QgV2ViU3RyaW5nJiBtZXNzYWdlKQogewotICAgIHdvcmtlclRocmVhZCgp
LT5ydW5Mb29wKCkucG9zdFRhc2tGb3JNb2RlKGNyZWF0ZUNhbGxiYWNrVGFzayhkaXNwYXRjaE9u
SW5zcGVjdG9yQmFja2VuZFRhc2ssIFN0cmluZyhtZXNzYWdlKSksIFdvcmtlclNjcmlwdERlYnVn
U2VydmVyOjpkZWJ1Z2dlclRhc2tNb2RlKTsKKyAgICB3b3JrZXJUaHJlYWQoKS0+cnVuTG9vcCgp
LnBvc3RUYXNrRm9yTW9kZShjcmVhdGVDYWxsYmFja1Rhc2soZGlzcGF0Y2hPbkluc3BlY3RvckJh
Y2tlbmRUYXNrLCBTdHJpbmcobWVzc2FnZSkpLCBXb3JrZXJEZWJ1Z2dlckFnZW50OjpkZWJ1Z2dl
clRhc2tNb2RlKTsKIH0KIAogV2ViV29ya2VyQ2xpZW50KiBXZWJTaGFyZWRXb3JrZXJJbXBsOjpj
bGllbnQoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViU2hhcmVk
V29ya2VySW1wbC5oIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViU2hhcmVkV29ya2Vy
SW1wbC5oCmluZGV4IDA5NTZkOTY4NjkwNGU4YjMzODI0NDAyYzdmZDQ1ZTdiMDlkMDZkYzguLjQz
N2JiMmJjN2ZmYjM2ZGQ2ZWNhMDQzYzhhNzM4MDhjYWRjYjc2NjAgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlNoYXJlZFdvcmtlckltcGwuaAorKysgYi9Tb3VyY2Uv
V2ViS2l0L2Nocm9taXVtL3NyYy9XZWJTaGFyZWRXb3JrZXJJbXBsLmgKQEAgLTU2LDYgKzU2LDgg
QEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCB0ZXJtaW5hdGVXb3JrZXJDb250ZXh0KCk7CiAg
ICAgdmlydHVhbCB2b2lkIGNsaWVudERlc3Ryb3llZCgpOwogCisgICAgdmlydHVhbCB2b2lkIHBh
dXNlV29ya2VyQ29udGV4dE9uU3RhcnQoKTsKKyAgICB2aXJ0dWFsIHZvaWQgcmVzdW1lV29ya2Vy
Q29udGV4dCgpOwogICAgIHZpcnR1YWwgdm9pZCBhdHRhY2hEZXZUb29scygpOwogICAgIHZpcnR1
YWwgdm9pZCByZWF0dGFjaERldlRvb2xzKGNvbnN0IFdlYlN0cmluZyYgc2F2ZWRTdGF0ZSk7CiAg
ICAgdmlydHVhbCB2b2lkIGRldGFjaERldlRvb2xzKCk7CkBAIC03NCw2ICs3Niw3IEBAIHByaXZh
dGU6CiAgICAgc3RhdGljIHZvaWQgY29ubmVjdFRhc2soV2ViQ29yZTo6U2NyaXB0RXhlY3V0aW9u
Q29udGV4dCosIFBhc3NPd25QdHI8V2ViQ29yZTo6TWVzc2FnZVBvcnRDaGFubmVsPik7CiAKICAg
ICBXZWJDb21tb25Xb3JrZXJDbGllbnQqIG1fY2xpZW50OworICAgIGJvb2wgbV9wYXVzZVdvcmtl
ckNvbnRleHRPblN0YXJ0OwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJXb3JrZXJDbGllbnRJbXBsLmNwcCBiL1Nv
dXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYldvcmtlckNsaWVudEltcGwuY3BwCmluZGV4IGZk
MGIzNjUwMGFhOWIxNWI4MzVjMzNhOTNlZjY2OGE1YzE4OTY3MjAuLjY3MTQ3ZmNmNzkwNTNiODgw
NWMzNzIyMDAzYzIwZDRiZjI3Y2E5ZjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21p
dW0vc3JjL1dlYldvcmtlckNsaWVudEltcGwuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21p
dW0vc3JjL1dlYldvcmtlckNsaWVudEltcGwuY3BwCkBAIC04Nyw3ICs4Nyw3IEBAIFdvcmtlckNv
bnRleHRQcm94eSogV2ViV29ya2VyQ2xpZW50SW1wbDo6Y3JlYXRlV29ya2VyQ29udGV4dFByb3h5
KFdvcmtlciogd29ya2VyCiAKIHZvaWQgV2ViV29ya2VyQ2xpZW50SW1wbDo6c3RhcnRXb3JrZXJD
b250ZXh0KGNvbnN0IEtVUkwmIHNjcmlwdFVSTCwgY29uc3QgU3RyaW5nJiB1c2VyQWdlbnQsIGNv
bnN0IFN0cmluZyYgc291cmNlQ29kZSkKIHsKLSAgICBSZWZQdHI8RGVkaWNhdGVkV29ya2VyVGhy
ZWFkPiB0aHJlYWQgPSBEZWRpY2F0ZWRXb3JrZXJUaHJlYWQ6OmNyZWF0ZShzY3JpcHRVUkwsIHVz
ZXJBZ2VudCwgc291cmNlQ29kZSwgKnRoaXMsICp0aGlzKTsKKyAgICBSZWZQdHI8RGVkaWNhdGVk
V29ya2VyVGhyZWFkPiB0aHJlYWQgPSBEZWRpY2F0ZWRXb3JrZXJUaHJlYWQ6OmNyZWF0ZShzY3Jp
cHRVUkwsIHVzZXJBZ2VudCwgc291cmNlQ29kZSwgKnRoaXMsICp0aGlzLCBmYWxzZSk7CiAgICAg
bV9wcm94eS0+d29ya2VyVGhyZWFkQ3JlYXRlZCh0aHJlYWQpOwogICAgIHRocmVhZC0+c3RhcnQo
KTsKIH0KQEAgLTEzOCw4ICsxMzgsOSBAQCB2b2lkIFdlYldvcmtlckNsaWVudEltcGw6OnBvc3RN
ZXNzYWdlVG9QYWdlSW5zcGVjdG9yKGNvbnN0IFN0cmluZyYgbWVzc2FnZSkKICAgICBtX3Byb3h5
LT5wb3N0TWVzc2FnZVRvUGFnZUluc3BlY3RvcihtZXNzYWdlKTsKIH0KIAotdm9pZCBXZWJXb3Jr
ZXJDbGllbnRJbXBsOjp1cGRhdGVJbnNwZWN0b3JTdGF0ZUNvb2tpZShjb25zdCBTdHJpbmcmKQor
dm9pZCBXZWJXb3JrZXJDbGllbnRJbXBsOjp1cGRhdGVJbnNwZWN0b3JTdGF0ZUNvb2tpZShjb25z
dCBTdHJpbmcmIGNvb2tpZSkKIHsKKyAgICBtX3Byb3h5LT51cGRhdGVJbnNwZWN0b3JTdGF0ZUNv
b2tpZShjb29raWUpOwogfQogI2VuZGlmIC8vIEVOQUJMRShJTlNQRUNUT1IpCiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYldvcmtlckNsaWVudEltcGwuaCBiL1Nv
dXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYldvcmtlckNsaWVudEltcGwuaAppbmRleCA2OGEx
OTA0M2U4YjkzZDkwYzIxYTgxMmM0NjNmYjlmNmVkNDU3YTA4Li4zMjQ0NDMyNmFiNzkyZmExMWU3
YjM4MzZjZTRjZDhhNzgxOWU5OGE2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVt
L3NyYy9XZWJXb3JrZXJDbGllbnRJbXBsLmgKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9z
cmMvV2ViV29ya2VyQ2xpZW50SW1wbC5oCkBAIC01MSw3ICs1MSw3IEBAIG5hbWVzcGFjZSBXZWJL
aXQgewogY2xhc3MgV2ViV29ya2VyOwogY2xhc3MgV2ViRnJhbWVJbXBsOwogCi0vLyBUaGlzIGNs
YXNzIHByb3ZpZGVzIGNocm9taXVtIGltcGxlbWVudGF0aW9uIGZvciBXb3JrZXJDb250ZXh0UHJv
eHQsIFdvcmtlck9iamVjdFByb3h5IGFtZCBXb3JrZXJMb2FkZXJQcm94eQorLy8gVGhpcyBjbGFz
cyBwcm92aWRlcyBjaHJvbWl1bSBpbXBsZW1lbnRhdGlvbiBmb3IgV29ya2VyQ29udGV4dFByb3h5
LCBXb3JrZXJPYmplY3RQcm94eSBhbWQgV29ya2VyTG9hZGVyUHJveHkKIC8vIGZvciBpbi1wcm9j
IGRlZGljYXRlZCB3b3JrZXJzLiBJdCBhbHNvIGFjdHMgYXMgYSBicmlkZ2UgZm9yIHdvcmtlcnMg
dG8gY2hyb21pdW0gaW1wbGVtZW50YXRpb24gb2YgZmlsZSBzeXN0ZW1zLAogLy8gZGF0YWJhc2Vz
IGFuZCBvdGhlciByZWxhdGVkIGZ1bmN0aW9uYWxpdHkuCiAvLwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViV29ya2VySW1wbC5jcHAgYi9Tb3VyY2UvV2ViS2l0L2No
cm9taXVtL3NyYy9XZWJXb3JrZXJJbXBsLmNwcAppbmRleCBkYzE2M2E1YWJhZDQ0OGMyYTRlZDNm
NWZhMjExZGQ0YWRiZDBhZDQ2Li4wN2U2MTc0OTI5ZWNiYmUwNDhlNzA2NmU2MTZkZDJlOWFiYzI5
Njc5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJXb3JrZXJJbXBs
LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJXb3JrZXJJbXBsLmNwcApA
QCAtNDIsOCArNDIsOCBAQAogI2luY2x1ZGUgIlNlY3VyaXR5T3JpZ2luLmgiCiAjaW5jbHVkZSAi
U2VyaWFsaXplZFNjcmlwdFZhbHVlLmgiCiAjaW5jbHVkZSAiU3Vic3RpdHV0ZURhdGEuaCIKKyNp
bmNsdWRlICJXb3JrZXJEZWJ1Z2dlckFnZW50LmgiCiAjaW5jbHVkZSAiV29ya2VySW5zcGVjdG9y
Q29udHJvbGxlci5oIgotI2luY2x1ZGUgIldvcmtlclNjcmlwdERlYnVnU2VydmVyLmgiCiAjaW5j
bHVkZSA8d3RmL093blB0ci5oPgogI2luY2x1ZGUgPHd0Zi9UaHJlYWRpbmcuaD4KIApAQCAtMTA5
LDcgKzEwOSw3IEBAIHZvaWQgV2ViV29ya2VySW1wbDo6c3RhcnRXb3JrZXJDb250ZXh0KGNvbnN0
IFdlYlVSTCYgc2NyaXB0VXJsLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgY29uc3QgV2ViU3RyaW5nJiBzb3VyY2VDb2RlKQogewogICAgIGluaXRpYWxpemVMb2FkZXIo
c2NyaXB0VXJsKTsKLSAgICBzZXRXb3JrZXJUaHJlYWQoRGVkaWNhdGVkV29ya2VyVGhyZWFkOjpj
cmVhdGUoc2NyaXB0VXJsLCB1c2VyQWdlbnQsIHNvdXJjZUNvZGUsICp0aGlzLCAqdGhpcykpOwor
ICAgIHNldFdvcmtlclRocmVhZChEZWRpY2F0ZWRXb3JrZXJUaHJlYWQ6OmNyZWF0ZShzY3JpcHRV
cmwsIHVzZXJBZ2VudCwgc291cmNlQ29kZSwgKnRoaXMsICp0aGlzLCBmYWxzZSkpOwogICAgIC8v
IFdvcmtlciBpbml0aWFsaXphdGlvbiBtZWFucyBhIHBlbmRpbmcgYWN0aXZpdHkuCiAgICAgcmVw
b3J0UGVuZGluZ0FjdGl2aXR5KHRydWUpOwogICAgIHdvcmtlclRocmVhZCgpLT5zdGFydCgpOwpA
QCAtMTcyLDcgKzE3Miw3IEBAIHN0YXRpYyB2b2lkIGRpc2Nvbm5lY3RGcm9tV29ya2VyQ29udGV4
dEluc3BlY3RvclRhc2soU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29uCiAKIHZvaWQgV2ViV29y
a2VySW1wbDo6ZGV0YWNoRGV2VG9vbHMoKQogewotICAgIHdvcmtlclRocmVhZCgpLT5ydW5Mb29w
KCkucG9zdFRhc2tGb3JNb2RlKGNyZWF0ZUNhbGxiYWNrVGFzayhkaXNjb25uZWN0RnJvbVdvcmtl
ckNvbnRleHRJbnNwZWN0b3JUYXNrLCB0cnVlKSwgV29ya2VyU2NyaXB0RGVidWdTZXJ2ZXI6OmRl
YnVnZ2VyVGFza01vZGUpOworICAgIHdvcmtlclRocmVhZCgpLT5ydW5Mb29wKCkucG9zdFRhc2tG
b3JNb2RlKGNyZWF0ZUNhbGxiYWNrVGFzayhkaXNjb25uZWN0RnJvbVdvcmtlckNvbnRleHRJbnNw
ZWN0b3JUYXNrLCB0cnVlKSwgV29ya2VyRGVidWdnZXJBZ2VudDo6ZGVidWdnZXJUYXNrTW9kZSk7
CiB9CiAKIHN0YXRpYyB2b2lkIGRpc3BhdGNoT25JbnNwZWN0b3JCYWNrZW5kVGFzayhTY3JpcHRF
eGVjdXRpb25Db250ZXh0KiBjb250ZXh0LCBjb25zdCBTdHJpbmcmIG1lc3NhZ2UpCkBAIC0xODMs
NyArMTgzLDcgQEAgc3RhdGljIHZvaWQgZGlzcGF0Y2hPbkluc3BlY3RvckJhY2tlbmRUYXNrKFNj
cmlwdEV4ZWN1dGlvbkNvbnRleHQqIGNvbnRleHQsIGNvbnMKIAogdm9pZCBXZWJXb3JrZXJJbXBs
OjpkaXNwYXRjaERldlRvb2xzTWVzc2FnZShjb25zdCBXZWJTdHJpbmcmIG1lc3NhZ2UpCiB7Ci0g
ICAgd29ya2VyVGhyZWFkKCktPnJ1bkxvb3AoKS5wb3N0VGFza0Zvck1vZGUoY3JlYXRlQ2FsbGJh
Y2tUYXNrKGRpc3BhdGNoT25JbnNwZWN0b3JCYWNrZW5kVGFzaywgU3RyaW5nKG1lc3NhZ2UpKSwg
V29ya2VyU2NyaXB0RGVidWdTZXJ2ZXI6OmRlYnVnZ2VyVGFza01vZGUpOworICAgIHdvcmtlclRo
cmVhZCgpLT5ydW5Mb29wKCkucG9zdFRhc2tGb3JNb2RlKGNyZWF0ZUNhbGxiYWNrVGFzayhkaXNw
YXRjaE9uSW5zcGVjdG9yQmFja2VuZFRhc2ssIFN0cmluZyhtZXNzYWdlKSksIFdvcmtlckRlYnVn
Z2VyQWdlbnQ6OmRlYnVnZ2VyVGFza01vZGUpOwogfQogCiAjZWxzZQo=
</data>
<flag name="review"
          id="107586"
          type_id="1"
          status="+"
          setter="pfeldman"
    />
    <flag name="commit-queue"
          id="107589"
          type_id="3"
          status="-"
          setter="webkit-ews"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>110340</attachid>
            <date>2011-10-10 02:16:09 -0700</date>
            <delta_ts>2011-10-10 02:25:34 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>auto-attach-to-worker.patch</filename>
            <type>text/plain</type>
            <size>42707</size>
            <attacher name="Yury Semikhatsky">yurys</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCA0NWNiZTRjLi41MTBhNTQyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNTgg
QEAKKzIwMTEtMTAtMDcgIFl1cnkgU2VtaWtoYXRza3kgIDx5dXJ5c0BjaHJvbWl1bS5vcmc+CisK
KyAgICAgICAgV2ViIEluc3BlY3RvcjogYWxsb3cgdG8gc3RhcnQgV29ya2VyQ29udGV4dCBwYXVz
ZWQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTY5NjM1
CisKKyAgICAgICAgQWxsb3cgdG8gcGF1c2UgV29ya2VyQ29udGV4dCBvbiBzdGFydC4KKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIGJpbmRpbmdzL3Y4
L1NjcmlwdERlYnVnU2VydmVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNjcmlwdERlYnVnU2Vy
dmVyOjpzZXRQYXVzZU9uTmV4dFN0YXRlbWVudCk6CisgICAgICAgICogYmluZGluZ3MvdjgvV29y
a2VyU2NyaXB0RGVidWdTZXJ2ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6V29ya2VyU2NyaXB0
RGVidWdTZXJ2ZXI6OnJ1bk1lc3NhZ2VMb29wT25QYXVzZSk6CisgICAgICAgICogYmluZGluZ3Mv
djgvV29ya2VyU2NyaXB0RGVidWdTZXJ2ZXIuaDoKKyAgICAgICAgKiBpbnNwZWN0b3IvSW5zcGVj
dG9yQ29udHJvbGxlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JDb250cm9sbGVy
OjpJbnNwZWN0b3JDb250cm9sbGVyKToKKyAgICAgICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9ySW5z
dHJ1bWVudGF0aW9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3Rvckluc3RydW1lbnRh
dGlvbjo6d2lsbEV2YWx1YXRlV29ya2VyU2NyaXB0KToKKyAgICAgICAgKiBpbnNwZWN0b3IvSW5z
cGVjdG9ySW5zdHJ1bWVudGF0aW9uLmg6CisgICAgICAgICogaW5zcGVjdG9yL0luc3BlY3RvclJ1
bnRpbWVBZ2VudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JSdW50aW1lQWdlbnQ6
Okluc3BlY3RvclJ1bnRpbWVBZ2VudCk6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JSdW50
aW1lQWdlbnQ6On5JbnNwZWN0b3JSdW50aW1lQWdlbnQpOgorICAgICAgICAoV2ViQ29yZTo6SW5z
cGVjdG9yUnVudGltZUFnZW50OjpwYXVzZVdvcmtlckNvbnRleHQpOiB0aGlzIG1ldGhvZCB3aWxs
IHN0YXJ0CisgICAgICAgIHJ1bm5pbmcgd29ya2VyIG1lc3NhZ2UgbG9vcCBpbiAiZGVidWciIG1v
ZGUsIGkuZS4gaXQgd2lsbCBwcm9jZXNzIG9ubHkgaW5zcGVjdG9yCisgICAgICAgIHRhc2tzIHVu
dGlsIG1ldGhvZCBJbnNwZWN0b3JSdW50aW1lQWdlbnQ6OnJlc3VtZSBpcyBjYWxsZWQuCisgICAg
ICAgIChXZWJDb3JlOjpJbnNwZWN0b3JSdW50aW1lQWdlbnQ6OnJlc3VtZSk6CisgICAgICAgICog
aW5zcGVjdG9yL0luc3BlY3RvclJ1bnRpbWVBZ2VudC5oOgorICAgICAgICAqIGluc3BlY3Rvci9X
b3JrZXJEZWJ1Z2dlckFnZW50LmNwcDoKKyAgICAgICAgKiBpbnNwZWN0b3IvV29ya2VyRGVidWdn
ZXJBZ2VudC5oOgorICAgICAgICAqIGluc3BlY3Rvci9Xb3JrZXJJbnNwZWN0b3JDb250cm9sbGVy
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Oldvcmtlckluc3BlY3RvckNvbnRyb2xsZXI6Oldvcmtl
ckluc3BlY3RvckNvbnRyb2xsZXIpOgorICAgICAgICAoV2ViQ29yZTo6V29ya2VySW5zcGVjdG9y
Q29udHJvbGxlcjo6cmVzdW1lKTogbWV0aG9kIHdoaWNoIGlzIGNhbGxlZCBmcm9tIFdlYktpdCBs
YXllcgorICAgICAgICB3aGVuIGl0IGlzIGtub3duIHRoYXQgaW5zcGVjdG9yIHN0YXRlIHdhcyBy
ZXN0b3JlZCBhbmQgaXQgaXMgT0sgdG8gcmVzdW1lIHdvcmtlciBleGVjdXRpb24uCisgICAgICAg
ICogaW5zcGVjdG9yL1dvcmtlckluc3BlY3RvckNvbnRyb2xsZXIuaDoKKyAgICAgICAgKiB3b3Jr
ZXJzL0RlZGljYXRlZFdvcmtlclRocmVhZC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpEZWRpY2F0
ZWRXb3JrZXJUaHJlYWQ6OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpEZWRpY2F0ZWRXb3Jr
ZXJUaHJlYWQ6OkRlZGljYXRlZFdvcmtlclRocmVhZCk6CisgICAgICAgICogd29ya2Vycy9EZWRp
Y2F0ZWRXb3JrZXJUaHJlYWQuaDoKKyAgICAgICAgKiB3b3JrZXJzL1NoYXJlZFdvcmtlclRocmVh
ZC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTaGFyZWRXb3JrZXJUaHJlYWQ6OmNyZWF0ZSk6Cisg
ICAgICAgIChXZWJDb3JlOjpTaGFyZWRXb3JrZXJUaHJlYWQ6OlNoYXJlZFdvcmtlclRocmVhZCk6
CisgICAgICAgICogd29ya2Vycy9TaGFyZWRXb3JrZXJUaHJlYWQuaDoKKyAgICAgICAgKiB3b3Jr
ZXJzL1dvcmtlck1lc3NhZ2luZ1Byb3h5LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Oldvcmtlck1l
c3NhZ2luZ1Byb3h5OjpzdGFydFdvcmtlckNvbnRleHQpOgorICAgICAgICAoV2ViQ29yZTo6V29y
a2VyTWVzc2FnaW5nUHJveHk6OmRpc2Nvbm5lY3RGcm9tSW5zcGVjdG9yKToKKyAgICAgICAgKFdl
YkNvcmU6Oldvcmtlck1lc3NhZ2luZ1Byb3h5OjpzZW5kTWVzc2FnZVRvSW5zcGVjdG9yKToKKyAg
ICAgICAgKiB3b3JrZXJzL1dvcmtlclRocmVhZC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpXb3Jr
ZXJUaHJlYWRTdGFydHVwRGF0YTo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OldvcmtlclRo
cmVhZFN0YXJ0dXBEYXRhOjpXb3JrZXJUaHJlYWRTdGFydHVwRGF0YSk6CisgICAgICAgIChXZWJD
b3JlOjpXb3JrZXJUaHJlYWQ6OldvcmtlclRocmVhZCk6IFdvcmtlclRocmVhZCBpcyBwYXNzZWQg
YSBib29sZWFuZCBmbGFnIGluZGljYXRpbmcKKyAgICAgICAgd2hldGhlciB0aGUgY29udGV4dCBz
aG91bGQgYmUgcGF1c2VkIGFuZCB3YWl0IGZvciBleHBsaWNpdCByZXN1bWUgY29tbWFuZCBiZWZv
cmUgaXQKKyAgICAgICAgc3RhcnRzIHJ1bm5pbmcgaXRzIHNjcmlwdC4KKyAgICAgICAgKFdlYkNv
cmU6OldvcmtlclRocmVhZDo6d29ya2VyVGhyZWFkKToKKyAgICAgICAgKiB3b3JrZXJzL1dvcmtl
clRocmVhZC5oOgorCiAyMDExLTEwLTA5ICBZdXJ5IFNlbWlraGF0c2t5ICA8eXVyeXNAY2hyb21p
dW0ub3JnPgogCiAgICAgICAgIE1pc3NpbmcgbV9ub3RpZmljYXRpb25QcmVzZW50ZXIgaW5pdGlh
bGl6YXRpb24gaW4gV29ya2VyVGhyZWFkIGNvbnN0cnVjdG9yCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy92OC9TY3JpcHREZWJ1Z1NlcnZlci5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy92OC9TY3JpcHREZWJ1Z1NlcnZlci5jcHAKaW5kZXggMzc0MzNlZi4uNGQ3NGZk
OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvU2NyaXB0RGVidWdTZXJ2
ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1NjcmlwdERlYnVnU2VydmVy
LmNwcApAQCAtMTQ5LDEwICsxNDksMTEgQEAgdm9pZCBTY3JpcHREZWJ1Z1NlcnZlcjo6c2V0UGF1
c2VPbk5leHRTdGF0ZW1lbnQoYm9vbCBwYXVzZSkKIHsKICAgICBpZiAoaXNQYXVzZWQoKSkKICAg
ICAgICAgcmV0dXJuOworICAgIHY4OjpJc29sYXRlKiBpc29sYXRlID0gdjg6Oklzb2xhdGU6Okdl
dEN1cnJlbnQoKTsKICAgICBpZiAocGF1c2UpCi0gICAgICAgIHY4OjpEZWJ1Zzo6RGVidWdCcmVh
aygpOworICAgICAgICB2ODo6RGVidWc6OkRlYnVnQnJlYWsoaXNvbGF0ZSk7CiAgICAgZWxzZQot
ICAgICAgICB2ODo6RGVidWc6OkNhbmNlbERlYnVnQnJlYWsoKTsKKyAgICAgICAgdjg6OkRlYnVn
OjpDYW5jZWxEZWJ1Z0JyZWFrKGlzb2xhdGUpOwogfQogCiB2b2lkIFNjcmlwdERlYnVnU2VydmVy
OjpicmVha1Byb2dyYW0oKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvdjgv
V29ya2VyU2NyaXB0RGVidWdTZXJ2ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvdjgv
V29ya2VyU2NyaXB0RGVidWdTZXJ2ZXIuY3BwCmluZGV4IGMwYTVkOWUuLmMwZmRmMzIgMTAwNzU1
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1dvcmtlclNjcmlwdERlYnVnU2VydmVy
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9Xb3JrZXJTY3JpcHREZWJ1Z1Nl
cnZlci5jcHAKQEAgLTM5LDYgKzM5LDcgQEAKICNpbmNsdWRlICJWOFNoYXJlZFdvcmtlckNvbnRl
eHQuaCIKICNpbmNsdWRlICJXb3JrZXJDb250ZXh0LmgiCiAjaW5jbHVkZSAiV29ya2VyQ29udGV4
dEV4ZWN1dGlvblByb3h5LmgiCisjaW5jbHVkZSAiV29ya2VyRGVidWdnZXJBZ2VudC5oIgogI2lu
Y2x1ZGUgIldvcmtlclRocmVhZC5oIgogI2luY2x1ZGUgPHY4Lmg+CiAjaW5jbHVkZSA8d3RmL01l
c3NhZ2VRdWV1ZS5oPgpAQCAtNjUsOCArNjYsNiBAQCBzdGF0aWMgV29ya2VyQ29udGV4dCogcmV0
cmlldmVXb3JrZXJDb250ZXh0KHY4OjpIYW5kbGU8djg6OkNvbnRleHQ+IGNvbnRleHQpCiAgICAg
cmV0dXJuIDA7CiB9CiAKLWNvbnN0IGNoYXIqIFdvcmtlclNjcmlwdERlYnVnU2VydmVyOjpkZWJ1
Z2dlclRhc2tNb2RlID0gImRlYnVnZ2VyIjsKLQogV29ya2VyU2NyaXB0RGVidWdTZXJ2ZXI6Oldv
cmtlclNjcmlwdERlYnVnU2VydmVyKCkKICAgICA6IFNjcmlwdERlYnVnU2VydmVyKCkKICAgICAs
IG1fcGF1c2VkV29ya2VyQ29udGV4dCgwKQpAQCAtMTM0LDcgKzEzMyw3IEBAIHZvaWQgV29ya2Vy
U2NyaXB0RGVidWdTZXJ2ZXI6OnJ1bk1lc3NhZ2VMb29wT25QYXVzZSh2ODo6SGFuZGxlPHY4OjpD
b250ZXh0PiBjb250CiAKICAgICBNZXNzYWdlUXVldWVXYWl0UmVzdWx0IHJlc3VsdDsKICAgICBk
byB7Ci0gICAgICAgIHJlc3VsdCA9IHdvcmtlclRocmVhZC0+cnVuTG9vcCgpLnJ1bkluTW9kZSh3
b3JrZXJDb250ZXh0LCBkZWJ1Z2dlclRhc2tNb2RlKTsKKyAgICAgICAgcmVzdWx0ID0gd29ya2Vy
VGhyZWFkLT5ydW5Mb29wKCkucnVuSW5Nb2RlKHdvcmtlckNvbnRleHQsIFdvcmtlckRlYnVnZ2Vy
QWdlbnQ6OmRlYnVnZ2VyVGFza01vZGUpOwogICAgIC8vIEtlZXAgd2FpdGluZyB1bnRpbCBleGVj
dXRpb24gaXMgcmVzdW1lZC4KICAgICB9IHdoaWxlIChyZXN1bHQgPT0gTWVzc2FnZVF1ZXVlTWVz
c2FnZVJlY2VpdmVkICYmIGlzUGF1c2VkKCkpOwogICAgIG1fcGF1c2VkV29ya2VyQ29udGV4dCA9
IDA7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9Xb3JrZXJTY3JpcHRE
ZWJ1Z1NlcnZlci5oIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvV29ya2VyU2NyaXB0RGVi
dWdTZXJ2ZXIuaAppbmRleCA3OGQ0YWQ3Li42MjY0YzY4IDEwMDc1NQotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy92OC9Xb3JrZXJTY3JpcHREZWJ1Z1NlcnZlci5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL3Y4L1dvcmtlclNjcmlwdERlYnVnU2VydmVyLmgKQEAgLTQ4LDggKzQ4
LDYgQEAgcHVibGljOgogICAgIHZvaWQgYWRkTGlzdGVuZXIoU2NyaXB0RGVidWdMaXN0ZW5lcios
IFdvcmtlckNvbnRleHQqKTsKICAgICB2b2lkIHJlbW92ZUxpc3RlbmVyKFNjcmlwdERlYnVnTGlz
dGVuZXIqLCBXb3JrZXJDb250ZXh0Kik7CiAKLSAgICBzdGF0aWMgY29uc3QgY2hhciogZGVidWdn
ZXJUYXNrTW9kZTsKLQogcHJpdmF0ZToKICAgICB2aXJ0dWFsIFNjcmlwdERlYnVnTGlzdGVuZXIq
IGdldERlYnVnTGlzdGVuZXJGb3JDb250ZXh0KHY4OjpIYW5kbGU8djg6OkNvbnRleHQ+KTsKICAg
ICB2aXJ0dWFsIHZvaWQgcnVuTWVzc2FnZUxvb3BPblBhdXNlKHY4OjpIYW5kbGU8djg6OkNvbnRl
eHQ+KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JDb250
cm9sbGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JDb250cm9sbGVy
LmNwcAppbmRleCA0NGFlMmEyLi42OTNlYzQyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9p
bnNwZWN0b3IvSW5zcGVjdG9yQ29udHJvbGxlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaW5z
cGVjdG9yL0luc3BlY3RvckNvbnRyb2xsZXIuY3BwCkBAIC03Miw4ICs3Miw4IEBAIG5hbWVzcGFj
ZSB7CiAKIGNsYXNzIFBhZ2VSdW50aW1lQWdlbnQgOiBwdWJsaWMgSW5zcGVjdG9yUnVudGltZUFn
ZW50IHsKIHB1YmxpYzoKLSAgICBQYWdlUnVudGltZUFnZW50KEluamVjdGVkU2NyaXB0TWFuYWdl
ciogaW5qZWN0ZWRTY3JpcHRNYW5hZ2VyLCBQYWdlKiBwYWdlLCBJbnNwZWN0b3JQYWdlQWdlbnQq
IHBhZ2VBZ2VudCkKLSAgICAgICAgOiBJbnNwZWN0b3JSdW50aW1lQWdlbnQoaW5qZWN0ZWRTY3Jp
cHRNYW5hZ2VyKQorICAgIFBhZ2VSdW50aW1lQWdlbnQoSW5zdHJ1bWVudGluZ0FnZW50cyogaW5z
dHJ1bWVudGluZ0FnZW50cywgSW5qZWN0ZWRTY3JpcHRNYW5hZ2VyKiBpbmplY3RlZFNjcmlwdE1h
bmFnZXIsIFBhZ2UqIHBhZ2UsIEluc3BlY3RvclBhZ2VBZ2VudCogcGFnZUFnZW50KQorICAgICAg
ICA6IEluc3BlY3RvclJ1bnRpbWVBZ2VudChpbnN0cnVtZW50aW5nQWdlbnRzLCBpbmplY3RlZFNj
cmlwdE1hbmFnZXIpCiAgICAgICAgICwgbV9pbnNwZWN0ZWRQYWdlKHBhZ2UpCiAgICAgICAgICwg
bV9wYWdlQWdlbnQocGFnZUFnZW50KSB7IH0KICAgICB2aXJ0dWFsIH5QYWdlUnVudGltZUFnZW50
KCkgeyB9CkBAIC0xMTAsNyArMTEwLDcgQEAgSW5zcGVjdG9yQ29udHJvbGxlcjo6SW5zcGVjdG9y
Q29udHJvbGxlcihQYWdlKiBwYWdlLCBJbnNwZWN0b3JDbGllbnQqIGluc3BlY3RvckMKICAgICAs
IG1fdGltZWxpbmVBZ2VudChJbnNwZWN0b3JUaW1lbGluZUFnZW50OjpjcmVhdGUobV9pbnN0cnVt
ZW50aW5nQWdlbnRzLmdldCgpLCBtX3N0YXRlLmdldCgpKSkKICAgICAsIG1fYXBwbGljYXRpb25D
YWNoZUFnZW50KGFkb3B0UHRyKG5ldyBJbnNwZWN0b3JBcHBsaWNhdGlvbkNhY2hlQWdlbnQobV9p
bnN0cnVtZW50aW5nQWdlbnRzLmdldCgpLCBwYWdlKSkpCiAgICAgLCBtX3Jlc291cmNlQWdlbnQo
SW5zcGVjdG9yUmVzb3VyY2VBZ2VudDo6Y3JlYXRlKG1faW5zdHJ1bWVudGluZ0FnZW50cy5nZXQo
KSwgbV9wYWdlQWdlbnQuZ2V0KCksIGluc3BlY3RvckNsaWVudCwgbV9zdGF0ZS5nZXQoKSkpCi0g
ICAgLCBtX3J1bnRpbWVBZ2VudChhZG9wdFB0cihuZXcgUGFnZVJ1bnRpbWVBZ2VudChtX2luamVj
dGVkU2NyaXB0TWFuYWdlci5nZXQoKSwgcGFnZSwgbV9wYWdlQWdlbnQuZ2V0KCkpKSkKKyAgICAs
IG1fcnVudGltZUFnZW50KGFkb3B0UHRyKG5ldyBQYWdlUnVudGltZUFnZW50KG1faW5zdHJ1bWVu
dGluZ0FnZW50cy5nZXQoKSwgbV9pbmplY3RlZFNjcmlwdE1hbmFnZXIuZ2V0KCksIHBhZ2UsIG1f
cGFnZUFnZW50LmdldCgpKSkpCiAgICAgLCBtX2NvbnNvbGVBZ2VudChhZG9wdFB0cihuZXcgSW5z
cGVjdG9yQ29uc29sZUFnZW50KG1faW5zdHJ1bWVudGluZ0FnZW50cy5nZXQoKSwgbV9pbnNwZWN0
b3JBZ2VudC5nZXQoKSwgbV9zdGF0ZS5nZXQoKSwgbV9pbmplY3RlZFNjcmlwdE1hbmFnZXIuZ2V0
KCksIG1fZG9tQWdlbnQuZ2V0KCkpKSkKICNpZiBFTkFCTEUoSkFWQVNDUklQVF9ERUJVR0dFUikK
ICAgICAsIG1fZGVidWdnZXJBZ2VudChQYWdlRGVidWdnZXJBZ2VudDo6Y3JlYXRlKG1faW5zdHJ1
bWVudGluZ0FnZW50cy5nZXQoKSwgbV9zdGF0ZS5nZXQoKSwgcGFnZSwgbV9pbmplY3RlZFNjcmlw
dE1hbmFnZXIuZ2V0KCkpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0lu
c3BlY3Rvckluc3RydW1lbnRhdGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5z
cGVjdG9ySW5zdHJ1bWVudGF0aW9uLmNwcAppbmRleCBmYzk1M2Q3Li4wMzQxNDdlIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9u
LmNwcApAQCAtNTAsMTIgKzUwLDE1IEBACiAjaW5jbHVkZSAiSW5zcGVjdG9yUGFnZUFnZW50Lmgi
CiAjaW5jbHVkZSAiSW5zcGVjdG9yUHJvZmlsZXJBZ2VudC5oIgogI2luY2x1ZGUgIkluc3BlY3Rv
clJlc291cmNlQWdlbnQuaCIKKyNpbmNsdWRlICJJbnNwZWN0b3JSdW50aW1lQWdlbnQuaCIKICNp
bmNsdWRlICJJbnNwZWN0b3JUaW1lbGluZUFnZW50LmgiCiAjaW5jbHVkZSAiSW5zcGVjdG9yV29y
a2VyQWdlbnQuaCIKICNpbmNsdWRlICJJbnN0cnVtZW50aW5nQWdlbnRzLmgiCiAjaW5jbHVkZSAi
U2NyaXB0QXJndW1lbnRzLmgiCiAjaW5jbHVkZSAiU2NyaXB0Q2FsbFN0YWNrLmgiCiAjaW5jbHVk
ZSAiU2NyaXB0UHJvZmlsZS5oIgorI2luY2x1ZGUgIldvcmtlckNvbnRleHQuaCIKKyNpbmNsdWRl
ICJXb3JrZXJUaHJlYWQuaCIKICNpbmNsdWRlICJYTUxIdHRwUmVxdWVzdC5oIgogI2luY2x1ZGUg
PHd0Zi9TdGRMaWJFeHRyYXMuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9DU3RyaW5nLmg+CkBAIC03
OTksNiArODAyLDE3IEBAIHZvaWQgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpkaWREZXN0cm95
V29ya2VySW1wbChJbnN0cnVtZW50aW5nQWdlbnRzKiBpbnN0cnVtCiAgICAgICAgIGluc3BlY3Rv
ckFnZW50LT5kaWREZXN0cm95V29ya2VyKGlkKTsKIH0KIAordm9pZCBJbnNwZWN0b3JJbnN0cnVt
ZW50YXRpb246OndpbGxFdmFsdWF0ZVdvcmtlclNjcmlwdChXb3JrZXJDb250ZXh0KiB3b3JrZXJD
b250ZXh0LCBpbnQgd29ya2VyVGhyZWFkU3RhcnRNb2RlKQoreworICAgIGlmICh3b3JrZXJUaHJl
YWRTdGFydE1vZGUgIT0gUGF1c2VXb3JrZXJDb250ZXh0T25TdGFydCkKKyAgICAgICAgcmV0dXJu
OworICAgIEluc3RydW1lbnRpbmdBZ2VudHMqIGluc3RydW1lbnRpbmdBZ2VudHMgPSBpbnN0cnVt
ZW50YXRpb25Gb3JXb3JrZXJDb250ZXh0KHdvcmtlckNvbnRleHQpOworICAgIGlmICghaW5zdHJ1
bWVudGluZ0FnZW50cykKKyAgICAgICAgcmV0dXJuOworICAgIGlmIChJbnNwZWN0b3JSdW50aW1l
QWdlbnQqIHJ1bnRpbWVBZ2VudCA9IGluc3RydW1lbnRpbmdBZ2VudHMtPmluc3BlY3RvclJ1bnRp
bWVBZ2VudCgpKQorICAgICAgICBydW50aW1lQWdlbnQtPnBhdXNlV29ya2VyQ29udGV4dCh3b3Jr
ZXJDb250ZXh0KTsKK30KKwogdm9pZCBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OndvcmtlckNv
bnRleHRUZXJtaW5hdGVkSW1wbChJbnN0cnVtZW50aW5nQWdlbnRzKiBpbnN0cnVtZW50aW5nQWdl
bnRzLCBXb3JrZXJDb250ZXh0UHJveHkqIHByb3h5KQogewogICAgIGlmIChJbnNwZWN0b3JXb3Jr
ZXJBZ2VudCogd29ya2VyQWdlbnQgPSBpbnN0cnVtZW50aW5nQWdlbnRzLT5pbnNwZWN0b3JXb3Jr
ZXJBZ2VudCgpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rv
ckluc3RydW1lbnRhdGlvbi5oIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rvcklu
c3RydW1lbnRhdGlvbi5oCmluZGV4IDZiODM3MjcuLmIzMzg1ODkgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JJbnN0cnVtZW50YXRpb24uaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uLmgKQEAgLTYwLDYg
KzYwLDcgQEAgY2xhc3MgU2NyaXB0Q2FsbFN0YWNrOwogY2xhc3MgU2NyaXB0RXhlY3V0aW9uQ29u
dGV4dDsKIGNsYXNzIFNjcmlwdFByb2ZpbGU7CiBjbGFzcyBTdG9yYWdlQXJlYTsKK2NsYXNzIFdv
cmtlckNvbnRleHQ7CiBjbGFzcyBXb3JrZXJDb250ZXh0UHJveHk7CiBjbGFzcyBYTUxIdHRwUmVx
dWVzdDsKIApAQCAtMTgwLDYgKzE4MSw3IEBAIHB1YmxpYzoKICAgICBzdGF0aWMgdm9pZCBkaWRD
cmVhdGVXb3JrZXIoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCosIGludHB0cl90IGlkLCBjb25zdCBT
dHJpbmcmIHVybCwgYm9vbCBpc1NoYXJlZFdvcmtlcik7CiAgICAgc3RhdGljIHZvaWQgZGlkRGVz
dHJveVdvcmtlcihTY3JpcHRFeGVjdXRpb25Db250ZXh0KiwgaW50cHRyX3QgaWQpOwogICAgIHN0
YXRpYyB2b2lkIHdvcmtlckNvbnRleHRUZXJtaW5hdGVkKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQq
LCBXb3JrZXJDb250ZXh0UHJveHkqKTsKKyAgICBzdGF0aWMgdm9pZCB3aWxsRXZhbHVhdGVXb3Jr
ZXJTY3JpcHQoV29ya2VyQ29udGV4dCosIGludCB3b3JrZXJUaHJlYWRTdGFydE1vZGUpOwogI2Vu
ZGlmCiAKICNpZiBFTkFCTEUoV0VCX1NPQ0tFVFMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9pbnNwZWN0b3IvSW5zcGVjdG9yUnVudGltZUFnZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2lu
c3BlY3Rvci9JbnNwZWN0b3JSdW50aW1lQWdlbnQuY3BwCmluZGV4IGMyNWU4MzIuLmM0MjNmNGQg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JSdW50aW1lQWdl
bnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JSdW50aW1lQWdl
bnQuY3BwCkBAIC0zNiw2ICszNiwxMSBAQAogI2luY2x1ZGUgIkluamVjdGVkU2NyaXB0LmgiCiAj
aW5jbHVkZSAiSW5qZWN0ZWRTY3JpcHRNYW5hZ2VyLmgiCiAjaW5jbHVkZSAiSW5zcGVjdG9yVmFs
dWVzLmgiCisjaW5jbHVkZSAiSW5zdHJ1bWVudGluZ0FnZW50cy5oIgorI2luY2x1ZGUgIldvcmtl
ckNvbnRleHQuaCIKKyNpbmNsdWRlICJXb3JrZXJEZWJ1Z2dlckFnZW50LmgiCisjaW5jbHVkZSAi
V29ya2VyUnVuTG9vcC5oIgorI2luY2x1ZGUgIldvcmtlclRocmVhZC5oIgogI2luY2x1ZGUgPHd0
Zi9QYXNzUmVmUHRyLmg+CiAKIApAQCAtNTAsMTYgKzU1LDIwIEBAIHN0YXRpYyBib29sIGFzQm9v
bChjb25zdCBib29sKiBjb25zdCBiKQogICAgIHJldHVybiBiID8gKmIgOiBmYWxzZTsKIH0KIAot
SW5zcGVjdG9yUnVudGltZUFnZW50OjpJbnNwZWN0b3JSdW50aW1lQWdlbnQoSW5qZWN0ZWRTY3Jp
cHRNYW5hZ2VyKiBpbmplY3RlZFNjcmlwdE1hbmFnZXIpCitJbnNwZWN0b3JSdW50aW1lQWdlbnQ6
Okluc3BlY3RvclJ1bnRpbWVBZ2VudChJbnN0cnVtZW50aW5nQWdlbnRzKiBpbnN0cnVtZW50aW5n
QWdlbnRzLCBJbmplY3RlZFNjcmlwdE1hbmFnZXIqIGluamVjdGVkU2NyaXB0TWFuYWdlcikKICAg
ICA6IG1faW5qZWN0ZWRTY3JpcHRNYW5hZ2VyKGluamVjdGVkU2NyaXB0TWFuYWdlcikKICNpZiBF
TkFCTEUoSkFWQVNDUklQVF9ERUJVR0dFUikKICAgICAsIG1fc2NyaXB0RGVidWdTZXJ2ZXIoMCkK
ICNlbmRpZgorICAgICwgbV9pbnN0cnVtZW50aW5nQWdlbnRzKGluc3RydW1lbnRpbmdBZ2VudHMp
CisgICAgLCBtX3BhdXNlZChmYWxzZSkKIHsKKyAgICBtX2luc3RydW1lbnRpbmdBZ2VudHMtPnNl
dEluc3BlY3RvclJ1bnRpbWVBZ2VudCh0aGlzKTsKIH0KIAogSW5zcGVjdG9yUnVudGltZUFnZW50
Ojp+SW5zcGVjdG9yUnVudGltZUFnZW50KCkKIHsKKyAgICBtX2luc3RydW1lbnRpbmdBZ2VudHMt
PnNldEluc3BlY3RvclJ1bnRpbWVBZ2VudCgwKTsKIH0KIAogdm9pZCBJbnNwZWN0b3JSdW50aW1l
QWdlbnQ6OmV2YWx1YXRlKEVycm9yU3RyaW5nKiBlcnJvclN0cmluZywgY29uc3QgU3RyaW5nJiBl
eHByZXNzaW9uLCBjb25zdCBTdHJpbmcqIGNvbnN0IG9iamVjdEdyb3VwLCBjb25zdCBib29sKiBj
b25zdCBpbmNsdWRlQ29tbWFuZExpbmVBUEksIGNvbnN0IGJvb2wqIGNvbnN0IGRvTm90UGF1c2VP
bkV4Y2VwdGlvbnMsIGNvbnN0IFN0cmluZyogY29uc3QgZnJhbWVJZCwgY29uc3QgYm9vbCogY29u
c3QgcmV0dXJuQnlWYWx1ZSwgUmVmUHRyPEluc3BlY3Rvck9iamVjdD4qIHJlc3VsdCwgYm9vbCog
d2FzVGhyb3duKQpAQCAtMTM4LDYgKzE0NywyMyBAQCB2b2lkIEluc3BlY3RvclJ1bnRpbWVBZ2Vu
dDo6c2V0U2NyaXB0RGVidWdTZXJ2ZXIoU2NyaXB0RGVidWdTZXJ2ZXIqIHNjcmlwdERlYnVnUwog
fQogI2VuZGlmCiAKKyNpZiBFTkFCTEUoV09SS0VSUykKK3ZvaWQgSW5zcGVjdG9yUnVudGltZUFn
ZW50OjpwYXVzZVdvcmtlckNvbnRleHQoV29ya2VyQ29udGV4dCogY29udGV4dCkKK3sKKyAgICBt
X3BhdXNlZCA9IHRydWU7CisgICAgTWVzc2FnZVF1ZXVlV2FpdFJlc3VsdCByZXN1bHQ7CisgICAg
ZG8geworICAgICAgICByZXN1bHQgPSBjb250ZXh0LT50aHJlYWQoKS0+cnVuTG9vcCgpLnJ1bklu
TW9kZShjb250ZXh0LCBXb3JrZXJEZWJ1Z2dlckFnZW50OjpkZWJ1Z2dlclRhc2tNb2RlKTsKKyAg
ICAvLyBLZWVwIHdhaXRpbmcgdW50aWwgZXhlY3V0aW9uIGlzIHJlc3VtZWQuCisgICAgfSB3aGls
ZSAocmVzdWx0ID09IE1lc3NhZ2VRdWV1ZU1lc3NhZ2VSZWNlaXZlZCAmJiBtX3BhdXNlZCk7Cit9
CisKK3ZvaWQgSW5zcGVjdG9yUnVudGltZUFnZW50OjpyZXN1bWUoKQoreworICAgIG1fcGF1c2Vk
ID0gZmFsc2U7Cit9CisjZW5kaWYKKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCiAjZW5kaWYg
Ly8gRU5BQkxFKElOU1BFQ1RPUikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rv
ci9JbnNwZWN0b3JSdW50aW1lQWdlbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNw
ZWN0b3JSdW50aW1lQWdlbnQuaAppbmRleCAyYTIxYjY3Li5kNzAyZjMyIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yUnVudGltZUFnZW50LmgKKysrIGIvU291
cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclJ1bnRpbWVBZ2VudC5oCkBAIC00MSw5ICs0
MSwxMiBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIEluamVjdGVkU2NyaXB0TWFuYWdl
cjsKIGNsYXNzIEluc3BlY3RvckFycmF5OworY2xhc3MgSW5zcGVjdG9yRnJvbnRlbmQ7CiBjbGFz
cyBJbnNwZWN0b3JPYmplY3Q7CiBjbGFzcyBJbnNwZWN0b3JWYWx1ZTsKK2NsYXNzIEluc3RydW1l
bnRpbmdBZ2VudHM7CiBjbGFzcyBTY3JpcHREZWJ1Z1NlcnZlcjsKK2NsYXNzIFdvcmtlckNvbnRl
eHQ7CiAKIHR5cGVkZWYgU3RyaW5nIEVycm9yU3RyaW5nOwogCkBAIC03Niw5ICs3OSwxMyBAQCBw
dWJsaWM6CiAjaWYgRU5BQkxFKEpBVkFTQ1JJUFRfREVCVUdHRVIpCiAgICAgdm9pZCBzZXRTY3Jp
cHREZWJ1Z1NlcnZlcihTY3JpcHREZWJ1Z1NlcnZlciopOwogI2VuZGlmCisjaWYgRU5BQkxFKFdP
UktFUlMpCisgICAgdm9pZCBwYXVzZVdvcmtlckNvbnRleHQoV29ya2VyQ29udGV4dCopOworICAg
IHZvaWQgcmVzdW1lKCk7CisjZW5kaWYKIAogcHJvdGVjdGVkOgotICAgIGV4cGxpY2l0IEluc3Bl
Y3RvclJ1bnRpbWVBZ2VudChJbmplY3RlZFNjcmlwdE1hbmFnZXIqKTsKKyAgICBJbnNwZWN0b3JS
dW50aW1lQWdlbnQoSW5zdHJ1bWVudGluZ0FnZW50cyosIEluamVjdGVkU2NyaXB0TWFuYWdlciop
OwogICAgIHZpcnR1YWwgU2NyaXB0U3RhdGUqIHNjcmlwdFN0YXRlRm9yRnJhbWVJZChjb25zdCBT
dHJpbmcmIGZyYW1lSWQpID0gMDsKICAgICB2aXJ0dWFsIFNjcmlwdFN0YXRlKiBnZXREZWZhdWx0
SW5zcGVjdGVkU3RhdGUoKSA9IDA7CiAKQEAgLTg3LDYgKzk0LDggQEAgcHJpdmF0ZToKICNpZiBF
TkFCTEUoSkFWQVNDUklQVF9ERUJVR0dFUikKICAgICBTY3JpcHREZWJ1Z1NlcnZlciogbV9zY3Jp
cHREZWJ1Z1NlcnZlcjsKICNlbmRpZgorICAgIEluc3RydW1lbnRpbmdBZ2VudHMqIG1faW5zdHJ1
bWVudGluZ0FnZW50czsKKyAgICBib29sIG1fcGF1c2VkOwogfTsKIAogfSAvLyBuYW1lc3BhY2Ug
V2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL1dvcmtlckRlYnVn
Z2VyQWdlbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL1dvcmtlckRlYnVnZ2VyQWdl
bnQuY3BwCmluZGV4IDE0YmRlMzguLjMxZmRmNDkgMTAwNzU1Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2luc3BlY3Rvci9Xb3JrZXJEZWJ1Z2dlckFnZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9p
bnNwZWN0b3IvV29ya2VyRGVidWdnZXJBZ2VudC5jcHAKQEAgLTM3LDYgKzM3LDggQEAKIAogbmFt
ZXNwYWNlIFdlYkNvcmUgewogCitjb25zdCBjaGFyKiBXb3JrZXJEZWJ1Z2dlckFnZW50OjpkZWJ1
Z2dlclRhc2tNb2RlID0gImRlYnVnZ2VyIjsKKwogUGFzc093blB0cjxXb3JrZXJEZWJ1Z2dlckFn
ZW50PiBXb3JrZXJEZWJ1Z2dlckFnZW50OjpjcmVhdGUoSW5zdHJ1bWVudGluZ0FnZW50cyogaW5z
dHJ1bWVudGluZ0FnZW50cywgSW5zcGVjdG9yU3RhdGUqIGluc3BlY3RvclN0YXRlLCBXb3JrZXJD
b250ZXh0KiBpbnNwZWN0ZWRXb3JrZXJDb250ZXh0LCBJbmplY3RlZFNjcmlwdE1hbmFnZXIqIGlu
amVjdGVkU2NyaXB0TWFuYWdlcikKIHsKICAgICByZXR1cm4gYWRvcHRQdHIobmV3IFdvcmtlckRl
YnVnZ2VyQWdlbnQoaW5zdHJ1bWVudGluZ0FnZW50cywgaW5zcGVjdG9yU3RhdGUsIGluc3BlY3Rl
ZFdvcmtlckNvbnRleHQsIGluamVjdGVkU2NyaXB0TWFuYWdlcikpOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvaW5zcGVjdG9yL1dvcmtlckRlYnVnZ2VyQWdlbnQuaCBiL1NvdXJjZS9XZWJD
b3JlL2luc3BlY3Rvci9Xb3JrZXJEZWJ1Z2dlckFnZW50LmgKaW5kZXggZTg4ZmQ4OS4uOWUyNTg2
NyAxMDA3NTUKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL1dvcmtlckRlYnVnZ2VyQWdl
bnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvV29ya2VyRGVidWdnZXJBZ2VudC5o
CkBAIC00Niw2ICs0Niw4IEBAIHB1YmxpYzoKICAgICBzdGF0aWMgUGFzc093blB0cjxXb3JrZXJE
ZWJ1Z2dlckFnZW50PiBjcmVhdGUoSW5zdHJ1bWVudGluZ0FnZW50cyosIEluc3BlY3RvclN0YXRl
KiwgV29ya2VyQ29udGV4dCosIEluamVjdGVkU2NyaXB0TWFuYWdlciopOwogICAgIHZpcnR1YWwg
fldvcmtlckRlYnVnZ2VyQWdlbnQoKTsKIAorICAgIHN0YXRpYyBjb25zdCBjaGFyKiBkZWJ1Z2dl
clRhc2tNb2RlOworCiBwcml2YXRlOgogICAgIFdvcmtlckRlYnVnZ2VyQWdlbnQoSW5zdHJ1bWVu
dGluZ0FnZW50cyosIEluc3BlY3RvclN0YXRlKiwgV29ya2VyQ29udGV4dCosIEluamVjdGVkU2Ny
aXB0TWFuYWdlciopOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvV29y
a2VySW5zcGVjdG9yQ29udHJvbGxlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvV29y
a2VySW5zcGVjdG9yQ29udHJvbGxlci5jcHAKaW5kZXggMmJiZTNmMy4uNTAxZWMyYiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL1dvcmtlckluc3BlY3RvckNvbnRyb2xsZXIu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9Xb3JrZXJJbnNwZWN0b3JDb250cm9s
bGVyLmNwcApAQCAtNTYsOCArNTYsOCBAQCBuYW1lc3BhY2UgewogCiBjbGFzcyBXb3JrZXJSdW50
aW1lQWdlbnQgOiBwdWJsaWMgSW5zcGVjdG9yUnVudGltZUFnZW50IHsKIHB1YmxpYzoKLSAgICBX
b3JrZXJSdW50aW1lQWdlbnQoSW5qZWN0ZWRTY3JpcHRNYW5hZ2VyKiBpbmplY3RlZFNjcmlwdE1h
bmFnZXIsIFdvcmtlckNvbnRleHQqIHdvcmtlckNvbnRleHQpCi0gICAgICAgIDogSW5zcGVjdG9y
UnVudGltZUFnZW50KGluamVjdGVkU2NyaXB0TWFuYWdlcikKKyAgICBXb3JrZXJSdW50aW1lQWdl
bnQoSW5zdHJ1bWVudGluZ0FnZW50cyogaW5zdHJ1bWVudGluZ0FnZW50cywgSW5qZWN0ZWRTY3Jp
cHRNYW5hZ2VyKiBpbmplY3RlZFNjcmlwdE1hbmFnZXIsIFdvcmtlckNvbnRleHQqIHdvcmtlckNv
bnRleHQpCisgICAgICAgIDogSW5zcGVjdG9yUnVudGltZUFnZW50KGluc3RydW1lbnRpbmdBZ2Vu
dHMsIGluamVjdGVkU2NyaXB0TWFuYWdlcikKICAgICAgICAgLCBtX3dvcmtlckNvbnRleHQod29y
a2VyQ29udGV4dCkgeyB9CiAgICAgdmlydHVhbCB+V29ya2VyUnVudGltZUFnZW50KCkgeyB9CiAK
QEAgLTExMyw3ICsxMTMsNyBAQCBXb3JrZXJJbnNwZWN0b3JDb250cm9sbGVyOjpXb3JrZXJJbnNw
ZWN0b3JDb250cm9sbGVyKFdvcmtlckNvbnRleHQqIHdvcmtlckNvbnRleAogI2lmIEVOQUJMRShK
QVZBU0NSSVBUX0RFQlVHR0VSKQogICAgICwgbV9kZWJ1Z2dlckFnZW50KFdvcmtlckRlYnVnZ2Vy
QWdlbnQ6OmNyZWF0ZShtX2luc3RydW1lbnRpbmdBZ2VudHMuZ2V0KCksIG1fc3RhdGUuZ2V0KCks
IHdvcmtlckNvbnRleHQsIG1faW5qZWN0ZWRTY3JpcHRNYW5hZ2VyLmdldCgpKSkKICNlbmRpZgot
ICAgICwgbV9ydW50aW1lQWdlbnQoYWRvcHRQdHIobmV3IFdvcmtlclJ1bnRpbWVBZ2VudChtX2lu
amVjdGVkU2NyaXB0TWFuYWdlci5nZXQoKSwgd29ya2VyQ29udGV4dCkpKQorICAgICwgbV9ydW50
aW1lQWdlbnQoYWRvcHRQdHIobmV3IFdvcmtlclJ1bnRpbWVBZ2VudChtX2luc3RydW1lbnRpbmdB
Z2VudHMuZ2V0KCksIG1faW5qZWN0ZWRTY3JpcHRNYW5hZ2VyLmdldCgpLCB3b3JrZXJDb250ZXh0
KSkpCiB7CiAgICAgbV9pbmplY3RlZFNjcmlwdE1hbmFnZXItPmluamVjdGVkU2NyaXB0SG9zdCgp
LT5pbml0KDAKICAgICAgICAgLCAwCkBAIC0yMTAsNiArMjEwLDExIEBAIHZvaWQgV29ya2VySW5z
cGVjdG9yQ29udHJvbGxlcjo6ZGlzcGF0Y2hNZXNzYWdlRnJvbUZyb250ZW5kKGNvbnN0IFN0cmlu
ZyYgbWVzc2FnCiAgICAgICAgIG1fYmFja2VuZERpc3BhdGNoZXItPmRpc3BhdGNoKG1lc3NhZ2Up
OwogfQogCit2b2lkIFdvcmtlckluc3BlY3RvckNvbnRyb2xsZXI6OnJlc3VtZSgpCit7CisgICAg
bV9ydW50aW1lQWdlbnQtPnJlc3VtZSgpOworfQorCiB9CiAKICNlbmRpZgpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL1dvcmtlckluc3BlY3RvckNvbnRyb2xsZXIuaCBiL1Nv
dXJjZS9XZWJDb3JlL2luc3BlY3Rvci9Xb3JrZXJJbnNwZWN0b3JDb250cm9sbGVyLmgKaW5kZXgg
Mzk4ZDkyMy4uYTAzMTMwZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL1dv
cmtlckluc3BlY3RvckNvbnRyb2xsZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3Iv
V29ya2VySW5zcGVjdG9yQ29udHJvbGxlci5oCkBAIC02Niw2ICs2Niw3IEBAIHB1YmxpYzoKICAg
ICB2b2lkIGRpc2Nvbm5lY3RGcm9udGVuZCgpOwogICAgIHZvaWQgcmVzdG9yZUluc3BlY3RvclN0
YXRlRnJvbUNvb2tpZShjb25zdCBTdHJpbmcmIGluc3BlY3RvckNvb2tpZSk7CiAgICAgdm9pZCBk
aXNwYXRjaE1lc3NhZ2VGcm9tRnJvbnRlbmQoY29uc3QgU3RyaW5nJik7CisgICAgdm9pZCByZXN1
bWUoKTsKIAogcHJpdmF0ZToKICAgICBmcmllbmQgSW5zdHJ1bWVudGluZ0FnZW50cyogaW5zdHJ1
bWVudGF0aW9uRm9yV29ya2VyQ29udGV4dChXb3JrZXJDb250ZXh0Kik7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS93b3JrZXJzL0RlZGljYXRlZFdvcmtlclRocmVhZC5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS93b3JrZXJzL0RlZGljYXRlZFdvcmtlclRocmVhZC5jcHAKaW5kZXggZDQ3ODlhMS4u
YmQ0MDZhMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9EZWRpY2F0ZWRXb3Jr
ZXJUaHJlYWQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvRGVkaWNhdGVkV29ya2Vy
VGhyZWFkLmNwcApAQCAtMzksMTMgKzM5LDEzIEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAot
UGFzc1JlZlB0cjxEZWRpY2F0ZWRXb3JrZXJUaHJlYWQ+IERlZGljYXRlZFdvcmtlclRocmVhZDo6
Y3JlYXRlKGNvbnN0IEtVUkwmIHNjcmlwdFVSTCwgY29uc3QgU3RyaW5nJiB1c2VyQWdlbnQsIGNv
bnN0IFN0cmluZyYgc291cmNlQ29kZSwgV29ya2VyTG9hZGVyUHJveHkmIHdvcmtlckxvYWRlclBy
b3h5LCBXb3JrZXJPYmplY3RQcm94eSYgd29ya2VyT2JqZWN0UHJveHkpCitQYXNzUmVmUHRyPERl
ZGljYXRlZFdvcmtlclRocmVhZD4gRGVkaWNhdGVkV29ya2VyVGhyZWFkOjpjcmVhdGUoY29uc3Qg
S1VSTCYgc2NyaXB0VVJMLCBjb25zdCBTdHJpbmcmIHVzZXJBZ2VudCwgY29uc3QgU3RyaW5nJiBz
b3VyY2VDb2RlLCBXb3JrZXJMb2FkZXJQcm94eSYgd29ya2VyTG9hZGVyUHJveHksIFdvcmtlck9i
amVjdFByb3h5JiB3b3JrZXJPYmplY3RQcm94eSwgV29ya2VyVGhyZWFkU3RhcnRNb2RlIHN0YXJ0
TW9kZSkKIHsKLSAgICByZXR1cm4gYWRvcHRSZWYobmV3IERlZGljYXRlZFdvcmtlclRocmVhZChz
Y3JpcHRVUkwsIHVzZXJBZ2VudCwgc291cmNlQ29kZSwgd29ya2VyTG9hZGVyUHJveHksIHdvcmtl
ck9iamVjdFByb3h5KSk7CisgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBEZWRpY2F0ZWRXb3JrZXJU
aHJlYWQoc2NyaXB0VVJMLCB1c2VyQWdlbnQsIHNvdXJjZUNvZGUsIHdvcmtlckxvYWRlclByb3h5
LCB3b3JrZXJPYmplY3RQcm94eSwgc3RhcnRNb2RlKSk7CiB9CiAKLURlZGljYXRlZFdvcmtlclRo
cmVhZDo6RGVkaWNhdGVkV29ya2VyVGhyZWFkKGNvbnN0IEtVUkwmIHVybCwgY29uc3QgU3RyaW5n
JiB1c2VyQWdlbnQsIGNvbnN0IFN0cmluZyYgc291cmNlQ29kZSwgV29ya2VyTG9hZGVyUHJveHkm
IHdvcmtlckxvYWRlclByb3h5LCBXb3JrZXJPYmplY3RQcm94eSYgd29ya2VyT2JqZWN0UHJveHkp
Ci0gICAgOiBXb3JrZXJUaHJlYWQodXJsLCB1c2VyQWdlbnQsIHNvdXJjZUNvZGUsIHdvcmtlckxv
YWRlclByb3h5LCB3b3JrZXJPYmplY3RQcm94eSkKK0RlZGljYXRlZFdvcmtlclRocmVhZDo6RGVk
aWNhdGVkV29ya2VyVGhyZWFkKGNvbnN0IEtVUkwmIHVybCwgY29uc3QgU3RyaW5nJiB1c2VyQWdl
bnQsIGNvbnN0IFN0cmluZyYgc291cmNlQ29kZSwgV29ya2VyTG9hZGVyUHJveHkmIHdvcmtlckxv
YWRlclByb3h5LCBXb3JrZXJPYmplY3RQcm94eSYgd29ya2VyT2JqZWN0UHJveHksIFdvcmtlclRo
cmVhZFN0YXJ0TW9kZSBzdGFydE1vZGUpCisgICAgOiBXb3JrZXJUaHJlYWQodXJsLCB1c2VyQWdl
bnQsIHNvdXJjZUNvZGUsIHdvcmtlckxvYWRlclByb3h5LCB3b3JrZXJPYmplY3RQcm94eSwgc3Rh
cnRNb2RlKQogICAgICwgbV93b3JrZXJPYmplY3RQcm94eSh3b3JrZXJPYmplY3RQcm94eSkKIHsK
IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvRGVkaWNhdGVkV29ya2VyVGhy
ZWFkLmggYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL0RlZGljYXRlZFdvcmtlclRocmVhZC5oCmlu
ZGV4IDIyNTI0M2IuLmE1YWY1NzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMv
RGVkaWNhdGVkV29ya2VyVGhyZWFkLmgKKysrIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9EZWRp
Y2F0ZWRXb3JrZXJUaHJlYWQuaApAQCAtNDAsNyArNDAsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7
CiAKICAgICBjbGFzcyBEZWRpY2F0ZWRXb3JrZXJUaHJlYWQgOiBwdWJsaWMgV29ya2VyVGhyZWFk
IHsKICAgICBwdWJsaWM6Ci0gICAgICAgIHN0YXRpYyBQYXNzUmVmUHRyPERlZGljYXRlZFdvcmtl
clRocmVhZD4gY3JlYXRlKGNvbnN0IEtVUkwmIHNjcmlwdFVSTCwgY29uc3QgU3RyaW5nJiB1c2Vy
QWdlbnQsIGNvbnN0IFN0cmluZyYgc291cmNlQ29kZSwgV29ya2VyTG9hZGVyUHJveHkmLCBXb3Jr
ZXJPYmplY3RQcm94eSYpOworICAgICAgICBzdGF0aWMgUGFzc1JlZlB0cjxEZWRpY2F0ZWRXb3Jr
ZXJUaHJlYWQ+IGNyZWF0ZShjb25zdCBLVVJMJiBzY3JpcHRVUkwsIGNvbnN0IFN0cmluZyYgdXNl
ckFnZW50LCBjb25zdCBTdHJpbmcmIHNvdXJjZUNvZGUsIFdvcmtlckxvYWRlclByb3h5JiwgV29y
a2VyT2JqZWN0UHJveHkmLCBXb3JrZXJUaHJlYWRTdGFydE1vZGUgc3RhcnRNb2RlKTsKICAgICAg
ICAgV29ya2VyT2JqZWN0UHJveHkmIHdvcmtlck9iamVjdFByb3h5KCkgY29uc3QgeyByZXR1cm4g
bV93b3JrZXJPYmplY3RQcm94eTsgfQogICAgICAgICB+RGVkaWNhdGVkV29ya2VyVGhyZWFkKCk7
CiAKQEAgLTQ5LDcgKzQ5LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICB2aXJ0dWFs
IHZvaWQgcnVuRXZlbnRMb29wKCk7CiAKICAgICBwcml2YXRlOgotICAgICAgICBEZWRpY2F0ZWRX
b3JrZXJUaHJlYWQoY29uc3QgS1VSTCYsIGNvbnN0IFN0cmluZyYgdXNlckFnZW50LCBjb25zdCBT
dHJpbmcmIHNvdXJjZUNvZGUsIFdvcmtlckxvYWRlclByb3h5JiwgV29ya2VyT2JqZWN0UHJveHkm
KTsKKyAgICAgICAgRGVkaWNhdGVkV29ya2VyVGhyZWFkKGNvbnN0IEtVUkwmLCBjb25zdCBTdHJp
bmcmIHVzZXJBZ2VudCwgY29uc3QgU3RyaW5nJiBzb3VyY2VDb2RlLCBXb3JrZXJMb2FkZXJQcm94
eSYsIFdvcmtlck9iamVjdFByb3h5JiwgV29ya2VyVGhyZWFkU3RhcnRNb2RlIHN0YXJ0TW9kZSk7
CiAKICAgICAgICAgV29ya2VyT2JqZWN0UHJveHkmIG1fd29ya2VyT2JqZWN0UHJveHk7CiAgICAg
fTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvRGVmYXVsdFNoYXJlZFdvcmtl
clJlcG9zaXRvcnkuY3BwIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9EZWZhdWx0U2hhcmVkV29y
a2VyUmVwb3NpdG9yeS5jcHAKaW5kZXggY2YyNGY4Zi4uNDdiNTQyOCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvd29ya2Vycy9EZWZhdWx0U2hhcmVkV29ya2VyUmVwb3NpdG9yeS5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9EZWZhdWx0U2hhcmVkV29ya2VyUmVwb3NpdG9yeS5j
cHAKQEAgLTMzOCw3ICszMzgsNyBAQCB2b2lkIERlZmF1bHRTaGFyZWRXb3JrZXJSZXBvc2l0b3J5
Ojp3b3JrZXJTY3JpcHRMb2FkZWQoU2hhcmVkV29ya2VyUHJveHkmIHByb3h5LAogCiAgICAgLy8g
QW5vdGhlciBsb2FkZXIgbWF5IGhhdmUgYWxyZWFkeSBzdGFydGVkIHVwIGEgdGhyZWFkIGZvciB0
aGlzIHByb3h5IC0gaWYgc28sIGp1c3Qgc2VuZCBhIGNvbm5lY3QgdG8gdGhlIHByZS1leGlzdGlu
ZyB0aHJlYWQuCiAgICAgaWYgKCFwcm94eS50aHJlYWQoKSkgewotICAgICAgICBSZWZQdHI8U2hh
cmVkV29ya2VyVGhyZWFkPiB0aHJlYWQgPSBTaGFyZWRXb3JrZXJUaHJlYWQ6OmNyZWF0ZShwcm94
eS5uYW1lKCksIHByb3h5LnVybCgpLCB1c2VyQWdlbnQsIHdvcmtlclNjcmlwdCwgcHJveHksIHBy
b3h5KTsKKyAgICAgICAgUmVmUHRyPFNoYXJlZFdvcmtlclRocmVhZD4gdGhyZWFkID0gU2hhcmVk
V29ya2VyVGhyZWFkOjpjcmVhdGUocHJveHkubmFtZSgpLCBwcm94eS51cmwoKSwgdXNlckFnZW50
LCB3b3JrZXJTY3JpcHQsIHByb3h5LCBwcm94eSwgRG9udFBhdXNlV29ya2VyQ29udGV4dE9uU3Rh
cnQpOwogICAgICAgICBwcm94eS5zZXRUaHJlYWQodGhyZWFkKTsKICAgICAgICAgdGhyZWFkLT5z
dGFydCgpOwogICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvU2hhcmVk
V29ya2VyVGhyZWFkLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvU2hhcmVkV29ya2VyVGhy
ZWFkLmNwcAppbmRleCBlNTlkZjRmLi4xN2I5NTdhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS93b3JrZXJzL1NoYXJlZFdvcmtlclRocmVhZC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvd29y
a2Vycy9TaGFyZWRXb3JrZXJUaHJlYWQuY3BwCkBAIC0zOCwxMyArMzgsMTMgQEAKIAogbmFtZXNw
YWNlIFdlYkNvcmUgewogCi1QYXNzUmVmUHRyPFNoYXJlZFdvcmtlclRocmVhZD4gU2hhcmVkV29y
a2VyVGhyZWFkOjpjcmVhdGUoY29uc3QgU3RyaW5nJiBuYW1lLCBjb25zdCBLVVJMJiBzY3JpcHRV
UkwsIGNvbnN0IFN0cmluZyYgdXNlckFnZW50LCBjb25zdCBTdHJpbmcmIHNvdXJjZUNvZGUsIFdv
cmtlckxvYWRlclByb3h5JiB3b3JrZXJMb2FkZXJQcm94eSwgV29ya2VyUmVwb3J0aW5nUHJveHkm
IHdvcmtlclJlcG9ydGluZ1Byb3h5KQorUGFzc1JlZlB0cjxTaGFyZWRXb3JrZXJUaHJlYWQ+IFNo
YXJlZFdvcmtlclRocmVhZDo6Y3JlYXRlKGNvbnN0IFN0cmluZyYgbmFtZSwgY29uc3QgS1VSTCYg
c2NyaXB0VVJMLCBjb25zdCBTdHJpbmcmIHVzZXJBZ2VudCwgY29uc3QgU3RyaW5nJiBzb3VyY2VD
b2RlLCBXb3JrZXJMb2FkZXJQcm94eSYgd29ya2VyTG9hZGVyUHJveHksIFdvcmtlclJlcG9ydGlu
Z1Byb3h5JiB3b3JrZXJSZXBvcnRpbmdQcm94eSwgV29ya2VyVGhyZWFkU3RhcnRNb2RlIHN0YXJ0
TW9kZSkKIHsKLSAgICByZXR1cm4gYWRvcHRSZWYobmV3IFNoYXJlZFdvcmtlclRocmVhZChuYW1l
LCBzY3JpcHRVUkwsIHVzZXJBZ2VudCwgc291cmNlQ29kZSwgd29ya2VyTG9hZGVyUHJveHksIHdv
cmtlclJlcG9ydGluZ1Byb3h5KSk7CisgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBTaGFyZWRXb3Jr
ZXJUaHJlYWQobmFtZSwgc2NyaXB0VVJMLCB1c2VyQWdlbnQsIHNvdXJjZUNvZGUsIHdvcmtlckxv
YWRlclByb3h5LCB3b3JrZXJSZXBvcnRpbmdQcm94eSwgc3RhcnRNb2RlKSk7CiB9CiAKLVNoYXJl
ZFdvcmtlclRocmVhZDo6U2hhcmVkV29ya2VyVGhyZWFkKGNvbnN0IFN0cmluZyYgbmFtZSwgY29u
c3QgS1VSTCYgdXJsLCBjb25zdCBTdHJpbmcmIHVzZXJBZ2VudCwgY29uc3QgU3RyaW5nJiBzb3Vy
Y2VDb2RlLCBXb3JrZXJMb2FkZXJQcm94eSYgd29ya2VyTG9hZGVyUHJveHksIFdvcmtlclJlcG9y
dGluZ1Byb3h5JiB3b3JrZXJSZXBvcnRpbmdQcm94eSkKLSAgICA6IFdvcmtlclRocmVhZCh1cmws
IHVzZXJBZ2VudCwgc291cmNlQ29kZSwgd29ya2VyTG9hZGVyUHJveHksIHdvcmtlclJlcG9ydGlu
Z1Byb3h5KQorU2hhcmVkV29ya2VyVGhyZWFkOjpTaGFyZWRXb3JrZXJUaHJlYWQoY29uc3QgU3Ry
aW5nJiBuYW1lLCBjb25zdCBLVVJMJiB1cmwsIGNvbnN0IFN0cmluZyYgdXNlckFnZW50LCBjb25z
dCBTdHJpbmcmIHNvdXJjZUNvZGUsIFdvcmtlckxvYWRlclByb3h5JiB3b3JrZXJMb2FkZXJQcm94
eSwgV29ya2VyUmVwb3J0aW5nUHJveHkmIHdvcmtlclJlcG9ydGluZ1Byb3h5LCBXb3JrZXJUaHJl
YWRTdGFydE1vZGUgc3RhcnRNb2RlKQorICAgIDogV29ya2VyVGhyZWFkKHVybCwgdXNlckFnZW50
LCBzb3VyY2VDb2RlLCB3b3JrZXJMb2FkZXJQcm94eSwgd29ya2VyUmVwb3J0aW5nUHJveHksIHN0
YXJ0TW9kZSkKICAgICAsIG1fbmFtZShuYW1lLmNyb3NzVGhyZWFkU3RyaW5nKCkpCiB7CiB9CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1NoYXJlZFdvcmtlclRocmVhZC5oIGIv
U291cmNlL1dlYkNvcmUvd29ya2Vycy9TaGFyZWRXb3JrZXJUaHJlYWQuaAppbmRleCBkOTZmZDJh
Li42ZDUzMWJiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1NoYXJlZFdvcmtl
clRocmVhZC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvU2hhcmVkV29ya2VyVGhyZWFk
LmgKQEAgLTM4LDE0ICszOCwxNCBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKICAgICBjbGFzcyBT
aGFyZWRXb3JrZXJUaHJlYWQgOiBwdWJsaWMgV29ya2VyVGhyZWFkIHsKICAgICBwdWJsaWM6Ci0g
ICAgICAgIHN0YXRpYyBQYXNzUmVmUHRyPFNoYXJlZFdvcmtlclRocmVhZD4gY3JlYXRlKGNvbnN0
IFN0cmluZyYgbmFtZSwgY29uc3QgS1VSTCYsIGNvbnN0IFN0cmluZyYgdXNlckFnZW50LCBjb25z
dCBTdHJpbmcmIHNvdXJjZUNvZGUsIFdvcmtlckxvYWRlclByb3h5JiwgV29ya2VyUmVwb3J0aW5n
UHJveHkmKTsKKyAgICAgICAgc3RhdGljIFBhc3NSZWZQdHI8U2hhcmVkV29ya2VyVGhyZWFkPiBj
cmVhdGUoY29uc3QgU3RyaW5nJiBuYW1lLCBjb25zdCBLVVJMJiwgY29uc3QgU3RyaW5nJiB1c2Vy
QWdlbnQsIGNvbnN0IFN0cmluZyYgc291cmNlQ29kZSwgV29ya2VyTG9hZGVyUHJveHkmLCBXb3Jr
ZXJSZXBvcnRpbmdQcm94eSYsIFdvcmtlclRocmVhZFN0YXJ0TW9kZSBzdGFydE1vZGUpOwogICAg
ICAgICB+U2hhcmVkV29ya2VyVGhyZWFkKCk7CiAKICAgICBwcm90ZWN0ZWQ6CiAgICAgICAgIHZp
cnR1YWwgUGFzc1JlZlB0cjxXb3JrZXJDb250ZXh0PiBjcmVhdGVXb3JrZXJDb250ZXh0KGNvbnN0
IEtVUkwmLCBjb25zdCBTdHJpbmcmKTsKIAogICAgIHByaXZhdGU6Ci0gICAgICAgIFNoYXJlZFdv
cmtlclRocmVhZChjb25zdCBTdHJpbmcmIG5hbWUsIGNvbnN0IEtVUkwmLCBjb25zdCBTdHJpbmcm
IHVzZXJBZ2VudCwgY29uc3QgU3RyaW5nJiBzb3VyY2VDb2RlLCBXb3JrZXJMb2FkZXJQcm94eSYs
IFdvcmtlclJlcG9ydGluZ1Byb3h5Jik7CisgICAgICAgIFNoYXJlZFdvcmtlclRocmVhZChjb25z
dCBTdHJpbmcmIG5hbWUsIGNvbnN0IEtVUkwmLCBjb25zdCBTdHJpbmcmIHVzZXJBZ2VudCwgY29u
c3QgU3RyaW5nJiBzb3VyY2VDb2RlLCBXb3JrZXJMb2FkZXJQcm94eSYsIFdvcmtlclJlcG9ydGlu
Z1Byb3h5JiwgV29ya2VyVGhyZWFkU3RhcnRNb2RlIHN0YXJ0TW9kZSk7CiAKICAgICAgICAgU3Ry
aW5nIG1fbmFtZTsKICAgICB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9X
b3JrZXJNZXNzYWdpbmdQcm94eS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlck1l
c3NhZ2luZ1Byb3h5LmNwcAppbmRleCBlOTdlOWMzLi4wZGQ4ODllIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlck1lc3NhZ2luZ1Byb3h5LmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS93b3JrZXJzL1dvcmtlck1lc3NhZ2luZ1Byb3h5LmNwcApAQCAtNDQsOCArNDQsOCBA
QAogI2luY2x1ZGUgIlNjcmlwdENhbGxTdGFjay5oIgogI2luY2x1ZGUgIlNjcmlwdEV4ZWN1dGlv
bkNvbnRleHQuaCIKICNpbmNsdWRlICJXb3JrZXIuaCIKKyNpbmNsdWRlICJXb3JrZXJEZWJ1Z2dl
ckFnZW50LmgiCiAjaW5jbHVkZSAiV29ya2VySW5zcGVjdG9yQ29udHJvbGxlci5oIgotI2luY2x1
ZGUgIldvcmtlclNjcmlwdERlYnVnU2VydmVyLmgiCiAjaW5jbHVkZSA8d3RmL01haW5UaHJlYWQu
aD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewpAQCAtMjY4LDcgKzI2OCw3IEBAIFdvcmtlck1lc3Nh
Z2luZ1Byb3h5Ojp+V29ya2VyTWVzc2FnaW5nUHJveHkoKQogCiB2b2lkIFdvcmtlck1lc3NhZ2lu
Z1Byb3h5OjpzdGFydFdvcmtlckNvbnRleHQoY29uc3QgS1VSTCYgc2NyaXB0VVJMLCBjb25zdCBT
dHJpbmcmIHVzZXJBZ2VudCwgY29uc3QgU3RyaW5nJiBzb3VyY2VDb2RlKQogewotICAgIFJlZlB0
cjxEZWRpY2F0ZWRXb3JrZXJUaHJlYWQ+IHRocmVhZCA9IERlZGljYXRlZFdvcmtlclRocmVhZDo6
Y3JlYXRlKHNjcmlwdFVSTCwgdXNlckFnZW50LCBzb3VyY2VDb2RlLCAqdGhpcywgKnRoaXMpOwor
ICAgIFJlZlB0cjxEZWRpY2F0ZWRXb3JrZXJUaHJlYWQ+IHRocmVhZCA9IERlZGljYXRlZFdvcmtl
clRocmVhZDo6Y3JlYXRlKHNjcmlwdFVSTCwgdXNlckFnZW50LCBzb3VyY2VDb2RlLCAqdGhpcywg
KnRoaXMsIERvbnRQYXVzZVdvcmtlckNvbnRleHRPblN0YXJ0KTsKICAgICB3b3JrZXJUaHJlYWRD
cmVhdGVkKHRocmVhZCk7CiAgICAgdGhyZWFkLT5zdGFydCgpOwogfQpAQCAtMzgwLDcgKzM4MCw3
IEBAIHZvaWQgV29ya2VyTWVzc2FnaW5nUHJveHk6OmRpc2Nvbm5lY3RGcm9tSW5zcGVjdG9yKCkK
ICAgICBtX3BhZ2VJbnNwZWN0b3IgPSAwOwogICAgIGlmIChtX2Fza2VkVG9UZXJtaW5hdGUpCiAg
ICAgICAgIHJldHVybjsKLSAgICBtX3dvcmtlclRocmVhZC0+cnVuTG9vcCgpLnBvc3RUYXNrRm9y
TW9kZShjcmVhdGVDYWxsYmFja1Rhc2soZGlzY29ubmVjdEZyb21Xb3JrZXJDb250ZXh0SW5zcGVj
dG9yVGFzaywgdHJ1ZSksIFdvcmtlclNjcmlwdERlYnVnU2VydmVyOjpkZWJ1Z2dlclRhc2tNb2Rl
KTsKKyAgICBtX3dvcmtlclRocmVhZC0+cnVuTG9vcCgpLnBvc3RUYXNrRm9yTW9kZShjcmVhdGVD
YWxsYmFja1Rhc2soZGlzY29ubmVjdEZyb21Xb3JrZXJDb250ZXh0SW5zcGVjdG9yVGFzaywgdHJ1
ZSksIFdvcmtlckRlYnVnZ2VyQWdlbnQ6OmRlYnVnZ2VyVGFza01vZGUpOwogfQogCiBzdGF0aWMg
dm9pZCBkaXNwYXRjaE9uSW5zcGVjdG9yQmFja2VuZFRhc2soU2NyaXB0RXhlY3V0aW9uQ29udGV4
dCogY29udGV4dCwgY29uc3QgU3RyaW5nJiBtZXNzYWdlKQpAQCAtMzkzLDcgKzM5Myw3IEBAIHZv
aWQgV29ya2VyTWVzc2FnaW5nUHJveHk6OnNlbmRNZXNzYWdlVG9JbnNwZWN0b3IoY29uc3QgU3Ry
aW5nJiBtZXNzYWdlKQogewogICAgIGlmIChtX2Fza2VkVG9UZXJtaW5hdGUpCiAgICAgICAgIHJl
dHVybjsKLSAgICBtX3dvcmtlclRocmVhZC0+cnVuTG9vcCgpLnBvc3RUYXNrRm9yTW9kZShjcmVh
dGVDYWxsYmFja1Rhc2soZGlzcGF0Y2hPbkluc3BlY3RvckJhY2tlbmRUYXNrLCBTdHJpbmcobWVz
c2FnZSkpLCBXb3JrZXJTY3JpcHREZWJ1Z1NlcnZlcjo6ZGVidWdnZXJUYXNrTW9kZSk7CisgICAg
bV93b3JrZXJUaHJlYWQtPnJ1bkxvb3AoKS5wb3N0VGFza0Zvck1vZGUoY3JlYXRlQ2FsbGJhY2tU
YXNrKGRpc3BhdGNoT25JbnNwZWN0b3JCYWNrZW5kVGFzaywgU3RyaW5nKG1lc3NhZ2UpKSwgV29y
a2VyRGVidWdnZXJBZ2VudDo6ZGVidWdnZXJUYXNrTW9kZSk7CiB9CiAjZW5kaWYKIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJUaHJlYWQuY3BwIGIvU291cmNlL1dl
YkNvcmUvd29ya2Vycy9Xb3JrZXJUaHJlYWQuY3BwCmluZGV4IGI3ZjE4ZWEuLjRmMmEyNjQgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyVGhyZWFkLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlclRocmVhZC5jcHAKQEAgLTMxLDYgKzMxLDcgQEAK
ICNpbmNsdWRlICJXb3JrZXJUaHJlYWQuaCIKIAogI2luY2x1ZGUgIkRlZGljYXRlZFdvcmtlckNv
bnRleHQuaCIKKyNpbmNsdWRlICJJbnNwZWN0b3JJbnN0cnVtZW50YXRpb24uaCIKICNpbmNsdWRl
ICJLVVJMLmgiCiAjaW5jbHVkZSAiUGxhdGZvcm1TdHJpbmcuaCIKICNpbmNsdWRlICJTY3JpcHRT
b3VyY2VDb2RlLmgiCkBAIC02NCwzMCArNjUsMzIgQEAgdW5zaWduZWQgV29ya2VyVGhyZWFkOjp3
b3JrZXJUaHJlYWRDb3VudCgpCiBzdHJ1Y3QgV29ya2VyVGhyZWFkU3RhcnR1cERhdGEgewogICAg
IFdURl9NQUtFX05PTkNPUFlBQkxFKFdvcmtlclRocmVhZFN0YXJ0dXBEYXRhKTsgV1RGX01BS0Vf
RkFTVF9BTExPQ0FURUQ7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFBhc3NPd25QdHI8V29ya2VyVGhy
ZWFkU3RhcnR1cERhdGE+IGNyZWF0ZShjb25zdCBLVVJMJiBzY3JpcHRVUkwsIGNvbnN0IFN0cmlu
ZyYgdXNlckFnZW50LCBjb25zdCBTdHJpbmcmIHNvdXJjZUNvZGUpCisgICAgc3RhdGljIFBhc3NP
d25QdHI8V29ya2VyVGhyZWFkU3RhcnR1cERhdGE+IGNyZWF0ZShjb25zdCBLVVJMJiBzY3JpcHRV
UkwsIGNvbnN0IFN0cmluZyYgdXNlckFnZW50LCBjb25zdCBTdHJpbmcmIHNvdXJjZUNvZGUsIFdv
cmtlclRocmVhZFN0YXJ0TW9kZSBzdGFydE1vZGUpCiAgICAgewotICAgICAgICByZXR1cm4gYWRv
cHRQdHIobmV3IFdvcmtlclRocmVhZFN0YXJ0dXBEYXRhKHNjcmlwdFVSTCwgdXNlckFnZW50LCBz
b3VyY2VDb2RlKSk7CisgICAgICAgIHJldHVybiBhZG9wdFB0cihuZXcgV29ya2VyVGhyZWFkU3Rh
cnR1cERhdGEoc2NyaXB0VVJMLCB1c2VyQWdlbnQsIHNvdXJjZUNvZGUsIHN0YXJ0TW9kZSkpOwog
ICAgIH0KIAogICAgIEtVUkwgbV9zY3JpcHRVUkw7CiAgICAgU3RyaW5nIG1fdXNlckFnZW50Owog
ICAgIFN0cmluZyBtX3NvdXJjZUNvZGU7CisgICAgV29ya2VyVGhyZWFkU3RhcnRNb2RlIG1fc3Rh
cnRNb2RlOwogcHJpdmF0ZToKLSAgICBXb3JrZXJUaHJlYWRTdGFydHVwRGF0YShjb25zdCBLVVJM
JiBzY3JpcHRVUkwsIGNvbnN0IFN0cmluZyYgdXNlckFnZW50LCBjb25zdCBTdHJpbmcmIHNvdXJj
ZUNvZGUpOworICAgIFdvcmtlclRocmVhZFN0YXJ0dXBEYXRhKGNvbnN0IEtVUkwmIHNjcmlwdFVS
TCwgY29uc3QgU3RyaW5nJiB1c2VyQWdlbnQsIGNvbnN0IFN0cmluZyYgc291cmNlQ29kZSwgV29y
a2VyVGhyZWFkU3RhcnRNb2RlIHN0YXJ0TW9kZSk7CiB9OwogCi1Xb3JrZXJUaHJlYWRTdGFydHVw
RGF0YTo6V29ya2VyVGhyZWFkU3RhcnR1cERhdGEoY29uc3QgS1VSTCYgc2NyaXB0VVJMLCBjb25z
dCBTdHJpbmcmIHVzZXJBZ2VudCwgY29uc3QgU3RyaW5nJiBzb3VyY2VDb2RlKQorV29ya2VyVGhy
ZWFkU3RhcnR1cERhdGE6OldvcmtlclRocmVhZFN0YXJ0dXBEYXRhKGNvbnN0IEtVUkwmIHNjcmlw
dFVSTCwgY29uc3QgU3RyaW5nJiB1c2VyQWdlbnQsIGNvbnN0IFN0cmluZyYgc291cmNlQ29kZSwg
V29ya2VyVGhyZWFkU3RhcnRNb2RlIHN0YXJ0TW9kZSkKICAgICA6IG1fc2NyaXB0VVJMKHNjcmlw
dFVSTC5jb3B5KCkpCiAgICAgLCBtX3VzZXJBZ2VudCh1c2VyQWdlbnQuY3Jvc3NUaHJlYWRTdHJp
bmcoKSkKICAgICAsIG1fc291cmNlQ29kZShzb3VyY2VDb2RlLmNyb3NzVGhyZWFkU3RyaW5nKCkp
CisgICAgLCBtX3N0YXJ0TW9kZShzdGFydE1vZGUpCiB7CiB9CiAKLVdvcmtlclRocmVhZDo6V29y
a2VyVGhyZWFkKGNvbnN0IEtVUkwmIHNjcmlwdFVSTCwgY29uc3QgU3RyaW5nJiB1c2VyQWdlbnQs
IGNvbnN0IFN0cmluZyYgc291cmNlQ29kZSwgV29ya2VyTG9hZGVyUHJveHkmIHdvcmtlckxvYWRl
clByb3h5LCBXb3JrZXJSZXBvcnRpbmdQcm94eSYgd29ya2VyUmVwb3J0aW5nUHJveHkpCitXb3Jr
ZXJUaHJlYWQ6OldvcmtlclRocmVhZChjb25zdCBLVVJMJiBzY3JpcHRVUkwsIGNvbnN0IFN0cmlu
ZyYgdXNlckFnZW50LCBjb25zdCBTdHJpbmcmIHNvdXJjZUNvZGUsIFdvcmtlckxvYWRlclByb3h5
JiB3b3JrZXJMb2FkZXJQcm94eSwgV29ya2VyUmVwb3J0aW5nUHJveHkmIHdvcmtlclJlcG9ydGlu
Z1Byb3h5LCBXb3JrZXJUaHJlYWRTdGFydE1vZGUgc3RhcnRNb2RlKQogICAgIDogbV90aHJlYWRJ
RCgwKQogICAgICwgbV93b3JrZXJMb2FkZXJQcm94eSh3b3JrZXJMb2FkZXJQcm94eSkKICAgICAs
IG1fd29ya2VyUmVwb3J0aW5nUHJveHkod29ya2VyUmVwb3J0aW5nUHJveHkpCi0gICAgLCBtX3N0
YXJ0dXBEYXRhKFdvcmtlclRocmVhZFN0YXJ0dXBEYXRhOjpjcmVhdGUoc2NyaXB0VVJMLCB1c2Vy
QWdlbnQsIHNvdXJjZUNvZGUpKQorICAgICwgbV9zdGFydHVwRGF0YShXb3JrZXJUaHJlYWRTdGFy
dHVwRGF0YTo6Y3JlYXRlKHNjcmlwdFVSTCwgdXNlckFnZW50LCBzb3VyY2VDb2RlLCBzdGFydE1v
ZGUpKQogI2lmIEVOQUJMRShOT1RJRklDQVRJT05TKQogICAgICwgbV9ub3RpZmljYXRpb25QcmVz
ZW50ZXIoMCkKICNlbmRpZgpAQCAtMTM1LDYgKzEzOCw3IEBAIHZvaWQqIFdvcmtlclRocmVhZDo6
d29ya2VyVGhyZWFkKCkKICAgICB9CiAKICAgICBXb3JrZXJTY3JpcHRDb250cm9sbGVyKiBzY3Jp
cHQgPSBtX3dvcmtlckNvbnRleHQtPnNjcmlwdCgpOworICAgIEluc3BlY3Rvckluc3RydW1lbnRh
dGlvbjo6d2lsbEV2YWx1YXRlV29ya2VyU2NyaXB0KHdvcmtlckNvbnRleHQoKSwgbV9zdGFydHVw
RGF0YS0+bV9zdGFydE1vZGUpOwogICAgIHNjcmlwdC0+ZXZhbHVhdGUoU2NyaXB0U291cmNlQ29k
ZShtX3N0YXJ0dXBEYXRhLT5tX3NvdXJjZUNvZGUsIG1fc3RhcnR1cERhdGEtPm1fc2NyaXB0VVJM
KSk7CiAgICAgLy8gRnJlZSB0aGUgc3RhcnR1cCBkYXRhIHRvIGNhdXNlIGl0cyBtZW1iZXIgdmFy
aWFibGUgZGVyZWYncyBoYXBwZW4gb24gdGhlIHdvcmtlcidzIHRocmVhZCAoc2luY2UKICAgICAv
LyBhbGwgcmVmL2RlcmVmcyBvZiB0aGVzZSBvYmplY3RzIGFyZSBoYXBwZW5pbmcgb24gdGhlIHRo
cmVhZCBhdCB0aGlzIHBvaW50KS4gTm90ZSB0aGF0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS93b3JrZXJzL1dvcmtlclRocmVhZC5oIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJU
aHJlYWQuaAppbmRleCBlNDRhZmNlLi41MmY1MGE4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS93b3JrZXJzL1dvcmtlclRocmVhZC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29y
a2VyVGhyZWFkLmgKQEAgLTQ0LDYgKzQ0LDggQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgIGNs
YXNzIFdvcmtlclJlcG9ydGluZ1Byb3h5OwogICAgIHN0cnVjdCBXb3JrZXJUaHJlYWRTdGFydHVw
RGF0YTsKIAorICAgIGVudW0gV29ya2VyVGhyZWFkU3RhcnRNb2RlIHsgRG9udFBhdXNlV29ya2Vy
Q29udGV4dE9uU3RhcnQsIFBhdXNlV29ya2VyQ29udGV4dE9uU3RhcnQgfTsKKwogICAgIGNsYXNz
IFdvcmtlclRocmVhZCA6IHB1YmxpYyBSZWZDb3VudGVkPFdvcmtlclRocmVhZD4gewogICAgIHB1
YmxpYzoKICAgICAgICAgdmlydHVhbCB+V29ya2VyVGhyZWFkKCk7CkBAIC02NSw3ICs2Nyw3IEBA
IG5hbWVzcGFjZSBXZWJDb3JlIHsKICNlbmRpZgogCiAgICAgcHJvdGVjdGVkOgotICAgICAgICBX
b3JrZXJUaHJlYWQoY29uc3QgS1VSTCYsIGNvbnN0IFN0cmluZyYgdXNlckFnZW50LCBjb25zdCBT
dHJpbmcmIHNvdXJjZUNvZGUsIFdvcmtlckxvYWRlclByb3h5JiwgV29ya2VyUmVwb3J0aW5nUHJv
eHkmKTsKKyAgICAgICAgV29ya2VyVGhyZWFkKGNvbnN0IEtVUkwmLCBjb25zdCBTdHJpbmcmIHVz
ZXJBZ2VudCwgY29uc3QgU3RyaW5nJiBzb3VyY2VDb2RlLCBXb3JrZXJMb2FkZXJQcm94eSYsIFdv
cmtlclJlcG9ydGluZ1Byb3h5JiwgV29ya2VyVGhyZWFkU3RhcnRNb2RlIHN0YXJ0TW9kZSk7CiAK
ICAgICAgICAgLy8gRmFjdG9yeSBtZXRob2QgZm9yIGNyZWF0aW5nIGEgbmV3IHdvcmtlciBjb250
ZXh0IGZvciB0aGUgdGhyZWFkLgogICAgICAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8V29ya2VyQ29u
dGV4dD4gY3JlYXRlV29ya2VyQ29udGV4dChjb25zdCBLVVJMJiB1cmwsIGNvbnN0IFN0cmluZyYg
dXNlckFnZW50KSA9IDA7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCmluZGV4IGE0MmU1MmEuLjJk
NjFhZWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCisrKyBi
L1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzggQEAKKzIwMTEt
MTAtMDcgIFl1cnkgU2VtaWtoYXRza3kgIDx5dXJ5c0BjaHJvbWl1bS5vcmc+CisKKyAgICAgICAg
V2ViIEluc3BlY3RvcjogYWxsb3cgdG8gc3RhcnQgV29ya2VyQ29udGV4dCBwYXVzZWQKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTY5NjM1CisKKyAgICAg
ICAgRXhwb3NlIG1ldGhvZHMgZm9yIHBhdXNpbmcgc2hhcmVkIHdvcmtlciBvbiBzdGFydC4KKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIHB1YmxpYy9X
ZWJTaGFyZWRXb3JrZXIuaDoKKyAgICAgICAgKFdlYktpdDo6V2ViU2hhcmVkV29ya2VyOjpwYXVz
ZVdvcmtlckNvbnRleHRPblN0YXJ0KTogc3BlY2lmaWVzIHRoYXQgdGhlIHdvcmtlcgorICAgICAg
ICBjb250ZXh0IHNob3VsZCBiZSBwYXVzZWQgYW5kIHdlaXQgZm9yIGV4cGxpY2l0IGNhbGwgdG8g
cmVzdW1lV29ya2VyQ29udGV4dCBiZWZvcmUKKyAgICAgICAgcnVubmluZyBpdHMgc2NyaXB0Lgor
ICAgICAgICAoV2ViS2l0OjpXZWJTaGFyZWRXb3JrZXI6OnJlc3VtZVdvcmtlckNvbnRleHQpOgor
ICAgICAgICAqIHNyYy9XZWJTaGFyZWRXb3JrZXJJbXBsLmNwcDoKKyAgICAgICAgKFdlYktpdDo6
V2ViU2hhcmVkV29ya2VySW1wbDo6V2ViU2hhcmVkV29ya2VySW1wbCk6CisgICAgICAgIChXZWJL
aXQ6OldlYlNoYXJlZFdvcmtlckltcGw6OnN0YXJ0V29ya2VyQ29udGV4dCk6CisgICAgICAgIChX
ZWJLaXQ6OldlYlNoYXJlZFdvcmtlckltcGw6OnBhdXNlV29ya2VyQ29udGV4dE9uU3RhcnQpOgor
ICAgICAgICAoV2ViS2l0OjpyZXN1bWVXb3JrZXJDb250ZXh0VGFzayk6CisgICAgICAgIChXZWJL
aXQ6OldlYlNoYXJlZFdvcmtlckltcGw6OnJlc3VtZVdvcmtlckNvbnRleHQpOgorICAgICAgICAo
V2ViS2l0OjpXZWJTaGFyZWRXb3JrZXJJbXBsOjphdHRhY2hEZXZUb29scyk6CisgICAgICAgIChX
ZWJLaXQ6OnJlY29ubmVjdFRvV29ya2VyQ29udGV4dEluc3BlY3RvclRhc2spOgorICAgICAgICAo
V2ViS2l0OjpXZWJTaGFyZWRXb3JrZXJJbXBsOjpyZWF0dGFjaERldlRvb2xzKToKKyAgICAgICAg
KFdlYktpdDo6V2ViU2hhcmVkV29ya2VySW1wbDo6ZGV0YWNoRGV2VG9vbHMpOgorICAgICAgICAo
V2ViS2l0OjpXZWJTaGFyZWRXb3JrZXJJbXBsOjpkaXNwYXRjaERldlRvb2xzTWVzc2FnZSk6Cisg
ICAgICAgICogc3JjL1dlYlNoYXJlZFdvcmtlckltcGwuaDoKKyAgICAgICAgKiBzcmMvV2ViV29y
a2VyQ2xpZW50SW1wbC5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYldvcmtlckNsaWVudEltcGw6
OnN0YXJ0V29ya2VyQ29udGV4dCk6CisgICAgICAgIChXZWJLaXQ6OldlYldvcmtlckNsaWVudElt
cGw6OnVwZGF0ZUluc3BlY3RvclN0YXRlQ29va2llKToKKyAgICAgICAgKiBzcmMvV2ViV29ya2Vy
Q2xpZW50SW1wbC5oOgorICAgICAgICAqIHNyYy9XZWJXb3JrZXJJbXBsLmNwcDoKKyAgICAgICAg
KFdlYktpdDo6V2ViV29ya2VySW1wbDo6c3RhcnRXb3JrZXJDb250ZXh0KToKKyAgICAgICAgKFdl
YktpdDo6V2ViV29ya2VySW1wbDo6ZGV0YWNoRGV2VG9vbHMpOgorICAgICAgICAoV2ViS2l0OjpX
ZWJXb3JrZXJJbXBsOjpkaXNwYXRjaERldlRvb2xzTWVzc2FnZSk6CisKIDIwMTEtMTAtMDkgIFcu
IEphbWVzIE1hY0xlYW4gIDx3am1hY2xlYW5AY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFtjaHJv
bWl1bV0gWm9vbSBhbmltYXRvciBmcm9udC1lbmQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
Y2hyb21pdW0vcHVibGljL1dlYlNoYXJlZFdvcmtlci5oIGIvU291cmNlL1dlYktpdC9jaHJvbWl1
bS9wdWJsaWMvV2ViU2hhcmVkV29ya2VyLmgKaW5kZXggYTM0NzdiMy4uNWY1NTBhYSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViU2hhcmVkV29ya2VyLmgKKysr
IGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViU2hhcmVkV29ya2VyLmgKQEAgLTc4
LDYgKzc4LDggQEAgcHVibGljOgogICAgIC8vIE5vdGlmaWNhdGlvbiB3aGVuIHRoZSBXZWJDb21t
b25Xb3JrZXJDbGllbnQgaXMgZGVzdHJveWVkLgogICAgIHZpcnR1YWwgdm9pZCBjbGllbnREZXN0
cm95ZWQoKSA9IDA7CiAKKyAgICB2aXJ0dWFsIHZvaWQgcGF1c2VXb3JrZXJDb250ZXh0T25TdGFy
dCgpIHsgfQorICAgIHZpcnR1YWwgdm9pZCByZXN1bWVXb3JrZXJDb250ZXh0KCkgeyB9CiAgICAg
dmlydHVhbCB2b2lkIGF0dGFjaERldlRvb2xzKCkgeyB9CiAgICAgdmlydHVhbCB2b2lkIHJlYXR0
YWNoRGV2VG9vbHMoY29uc3QgV2ViU3RyaW5nJiBzYXZlZFN0YXRlKSB7IH0KICAgICB2aXJ0dWFs
IHZvaWQgZGV0YWNoRGV2VG9vbHMoKSB7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hy
b21pdW0vc3JjL1dlYlNoYXJlZFdvcmtlckltcGwuY3BwIGIvU291cmNlL1dlYktpdC9jaHJvbWl1
bS9zcmMvV2ViU2hhcmVkV29ya2VySW1wbC5jcHAKaW5kZXggYTM5YmNhMS4uNzFmMDE3ZSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViU2hhcmVkV29ya2VySW1wbC5j
cHAKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViU2hhcmVkV29ya2VySW1wbC5j
cHAKQEAgLTM5LDggKzM5LDggQEAKICNpbmNsdWRlICJTY3JpcHRFeGVjdXRpb25Db250ZXh0Lmgi
CiAjaW5jbHVkZSAiU2hhcmVkV29ya2VyQ29udGV4dC5oIgogI2luY2x1ZGUgIlNoYXJlZFdvcmtl
clRocmVhZC5oIgorI2luY2x1ZGUgIldvcmtlckRlYnVnZ2VyQWdlbnQuaCIKICNpbmNsdWRlICJX
b3JrZXJJbnNwZWN0b3JDb250cm9sbGVyLmgiCi0jaW5jbHVkZSAiV29ya2VyU2NyaXB0RGVidWdT
ZXJ2ZXIuaCIKIAogI2luY2x1ZGUgIldlYk1lc3NhZ2VQb3J0Q2hhbm5lbC5oIgogI2luY2x1ZGUg
IldlYlN0cmluZy5oIgpAQCAtNTQsNiArNTQsNyBAQCBuYW1lc3BhY2UgV2ViS2l0IHsKIAogV2Vi
U2hhcmVkV29ya2VySW1wbDo6V2ViU2hhcmVkV29ya2VySW1wbChXZWJDb21tb25Xb3JrZXJDbGll
bnQqIGNsaWVudCkKICAgICA6IG1fY2xpZW50KGNsaWVudCkKKyAgICAsIG1fcGF1c2VXb3JrZXJD
b250ZXh0T25TdGFydChmYWxzZSkKIHsKIH0KIApAQCAtOTcsNyArOTgsOCBAQCB2b2lkIFdlYlNo
YXJlZFdvcmtlckltcGw6OmNvbm5lY3RUYXNrKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIGNvbnRl
eHQsIFBhc3NPd25QdAogdm9pZCBXZWJTaGFyZWRXb3JrZXJJbXBsOjpzdGFydFdvcmtlckNvbnRl
eHQoY29uc3QgV2ViVVJMJiB1cmwsIGNvbnN0IFdlYlN0cmluZyYgbmFtZSwgY29uc3QgV2ViU3Ry
aW5nJiB1c2VyQWdlbnQsIGNvbnN0IFdlYlN0cmluZyYgc291cmNlQ29kZSwgbG9uZyBsb25nKQog
ewogICAgIGluaXRpYWxpemVMb2FkZXIodXJsKTsKLSAgICBzZXRXb3JrZXJUaHJlYWQoU2hhcmVk
V29ya2VyVGhyZWFkOjpjcmVhdGUobmFtZSwgdXJsLCB1c2VyQWdlbnQsIHNvdXJjZUNvZGUsICp0
aGlzLCAqdGhpcykpOworICAgIFdvcmtlclRocmVhZFN0YXJ0TW9kZSBzdGFydE1vZGUgPSBtX3Bh
dXNlV29ya2VyQ29udGV4dE9uU3RhcnQgPyBQYXVzZVdvcmtlckNvbnRleHRPblN0YXJ0IDogRG9u
dFBhdXNlV29ya2VyQ29udGV4dE9uU3RhcnQ7CisgICAgc2V0V29ya2VyVGhyZWFkKFNoYXJlZFdv
cmtlclRocmVhZDo6Y3JlYXRlKG5hbWUsIHVybCwgdXNlckFnZW50LCBzb3VyY2VDb2RlLCAqdGhp
cywgKnRoaXMsIHN0YXJ0TW9kZSkpOwogICAgIHdvcmtlclRocmVhZCgpLT5zdGFydCgpOwogfQog
CkBAIC0xMTEsNiArMTEzLDI0IEBAIHZvaWQgV2ViU2hhcmVkV29ya2VySW1wbDo6Y2xpZW50RGVz
dHJveWVkKCkKICAgICBtX2NsaWVudCA9IDA7CiB9CiAKK3ZvaWQgV2ViU2hhcmVkV29ya2VySW1w
bDo6cGF1c2VXb3JrZXJDb250ZXh0T25TdGFydCgpCit7CisgICAgbV9wYXVzZVdvcmtlckNvbnRl
eHRPblN0YXJ0ID0gdHJ1ZTsKK30KKworc3RhdGljIHZvaWQgcmVzdW1lV29ya2VyQ29udGV4dFRh
c2soU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29udGV4dCwgYm9vbCkKK3sKKyAgICBBU1NFUlQo
Y29udGV4dC0+aXNXb3JrZXJDb250ZXh0KCkpOworICAgIHN0YXRpY19jYXN0PFdvcmtlckNvbnRl
eHQqPihjb250ZXh0KS0+d29ya2VySW5zcGVjdG9yQ29udHJvbGxlcigpLT5yZXN1bWUoKTsKK30K
Kwordm9pZCBXZWJTaGFyZWRXb3JrZXJJbXBsOjpyZXN1bWVXb3JrZXJDb250ZXh0KCkKK3sKKyAg
ICBtX3BhdXNlV29ya2VyQ29udGV4dE9uU3RhcnQgPSBmYWxzZTsKKyAgICBpZiAod29ya2VyVGhy
ZWFkKCkpCisgICAgICAgIHdvcmtlclRocmVhZCgpLT5ydW5Mb29wKCkucG9zdFRhc2tGb3JNb2Rl
KGNyZWF0ZUNhbGxiYWNrVGFzayhyZXN1bWVXb3JrZXJDb250ZXh0VGFzaywgdHJ1ZSksIFdvcmtl
ckRlYnVnZ2VyQWdlbnQ6OmRlYnVnZ2VyVGFza01vZGUpOworfQorCiBzdGF0aWMgdm9pZCBjb25u
ZWN0VG9Xb3JrZXJDb250ZXh0SW5zcGVjdG9yVGFzayhTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBj
b250ZXh0LCBib29sKQogewogICAgIEFTU0VSVChjb250ZXh0LT5pc1dvcmtlckNvbnRleHQoKSk7
CkBAIC0xMTksNyArMTM5LDcgQEAgc3RhdGljIHZvaWQgY29ubmVjdFRvV29ya2VyQ29udGV4dElu
c3BlY3RvclRhc2soU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29udGV4dCwKIAogdm9pZCBXZWJT
aGFyZWRXb3JrZXJJbXBsOjphdHRhY2hEZXZUb29scygpCiB7Ci0gICAgd29ya2VyVGhyZWFkKCkt
PnJ1bkxvb3AoKS5wb3N0VGFzayhjcmVhdGVDYWxsYmFja1Rhc2soY29ubmVjdFRvV29ya2VyQ29u
dGV4dEluc3BlY3RvclRhc2ssIHRydWUpKTsKKyAgICB3b3JrZXJUaHJlYWQoKS0+cnVuTG9vcCgp
LnBvc3RUYXNrRm9yTW9kZShjcmVhdGVDYWxsYmFja1Rhc2soY29ubmVjdFRvV29ya2VyQ29udGV4
dEluc3BlY3RvclRhc2ssIHRydWUpLCBXb3JrZXJEZWJ1Z2dlckFnZW50OjpkZWJ1Z2dlclRhc2tN
b2RlKTsKIH0KIAogc3RhdGljIHZvaWQgcmVjb25uZWN0VG9Xb3JrZXJDb250ZXh0SW5zcGVjdG9y
VGFzayhTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250ZXh0LCBjb25zdCBTdHJpbmcmIHNhdmVk
U3RhdGUpCkBAIC0xMjcsMTEgKzE0NywxMiBAQCBzdGF0aWMgdm9pZCByZWNvbm5lY3RUb1dvcmtl
ckNvbnRleHRJbnNwZWN0b3JUYXNrKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIGNvbnRleAogICAg
IEFTU0VSVChjb250ZXh0LT5pc1dvcmtlckNvbnRleHQoKSk7CiAgICAgV29ya2VySW5zcGVjdG9y
Q29udHJvbGxlciogaWMgPSBzdGF0aWNfY2FzdDxXb3JrZXJDb250ZXh0Kj4oY29udGV4dCktPndv
cmtlckluc3BlY3RvckNvbnRyb2xsZXIoKTsKICAgICBpYy0+cmVzdG9yZUluc3BlY3RvclN0YXRl
RnJvbUNvb2tpZShzYXZlZFN0YXRlKTsKKyAgICBpYy0+cmVzdW1lKCk7CiB9CiAKIHZvaWQgV2Vi
U2hhcmVkV29ya2VySW1wbDo6cmVhdHRhY2hEZXZUb29scyhjb25zdCBXZWJTdHJpbmcmIHNhdmVk
U3RhdGUpCiB7Ci0gICAgd29ya2VyVGhyZWFkKCktPnJ1bkxvb3AoKS5wb3N0VGFza0Zvck1vZGUo
Y3JlYXRlQ2FsbGJhY2tUYXNrKHJlY29ubmVjdFRvV29ya2VyQ29udGV4dEluc3BlY3RvclRhc2ss
IFN0cmluZyhzYXZlZFN0YXRlKSksIFdvcmtlclNjcmlwdERlYnVnU2VydmVyOjpkZWJ1Z2dlclRh
c2tNb2RlKTsKKyAgICB3b3JrZXJUaHJlYWQoKS0+cnVuTG9vcCgpLnBvc3RUYXNrRm9yTW9kZShj
cmVhdGVDYWxsYmFja1Rhc2socmVjb25uZWN0VG9Xb3JrZXJDb250ZXh0SW5zcGVjdG9yVGFzaywg
U3RyaW5nKHNhdmVkU3RhdGUpKSwgV29ya2VyRGVidWdnZXJBZ2VudDo6ZGVidWdnZXJUYXNrTW9k
ZSk7CiB9CiAKIHN0YXRpYyB2b2lkIGRpc2Nvbm5lY3RGcm9tV29ya2VyQ29udGV4dEluc3BlY3Rv
clRhc2soU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29udGV4dCwgYm9vbCkKQEAgLTE0Miw3ICsx
NjMsNyBAQCBzdGF0aWMgdm9pZCBkaXNjb25uZWN0RnJvbVdvcmtlckNvbnRleHRJbnNwZWN0b3JU
YXNrKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIGNvbgogCiB2b2lkIFdlYlNoYXJlZFdvcmtlcklt
cGw6OmRldGFjaERldlRvb2xzKCkKIHsKLSAgICB3b3JrZXJUaHJlYWQoKS0+cnVuTG9vcCgpLnBv
c3RUYXNrRm9yTW9kZShjcmVhdGVDYWxsYmFja1Rhc2soZGlzY29ubmVjdEZyb21Xb3JrZXJDb250
ZXh0SW5zcGVjdG9yVGFzaywgdHJ1ZSksIFdvcmtlclNjcmlwdERlYnVnU2VydmVyOjpkZWJ1Z2dl
clRhc2tNb2RlKTsKKyAgICB3b3JrZXJUaHJlYWQoKS0+cnVuTG9vcCgpLnBvc3RUYXNrRm9yTW9k
ZShjcmVhdGVDYWxsYmFja1Rhc2soZGlzY29ubmVjdEZyb21Xb3JrZXJDb250ZXh0SW5zcGVjdG9y
VGFzaywgdHJ1ZSksIFdvcmtlckRlYnVnZ2VyQWdlbnQ6OmRlYnVnZ2VyVGFza01vZGUpOwogfQog
CiBzdGF0aWMgdm9pZCBkaXNwYXRjaE9uSW5zcGVjdG9yQmFja2VuZFRhc2soU2NyaXB0RXhlY3V0
aW9uQ29udGV4dCogY29udGV4dCwgY29uc3QgU3RyaW5nJiBtZXNzYWdlKQpAQCAtMTUzLDcgKzE3
NCw3IEBAIHN0YXRpYyB2b2lkIGRpc3BhdGNoT25JbnNwZWN0b3JCYWNrZW5kVGFzayhTY3JpcHRF
eGVjdXRpb25Db250ZXh0KiBjb250ZXh0LCBjb25zCiAKIHZvaWQgV2ViU2hhcmVkV29ya2VySW1w
bDo6ZGlzcGF0Y2hEZXZUb29sc01lc3NhZ2UoY29uc3QgV2ViU3RyaW5nJiBtZXNzYWdlKQogewot
ICAgIHdvcmtlclRocmVhZCgpLT5ydW5Mb29wKCkucG9zdFRhc2tGb3JNb2RlKGNyZWF0ZUNhbGxi
YWNrVGFzayhkaXNwYXRjaE9uSW5zcGVjdG9yQmFja2VuZFRhc2ssIFN0cmluZyhtZXNzYWdlKSks
IFdvcmtlclNjcmlwdERlYnVnU2VydmVyOjpkZWJ1Z2dlclRhc2tNb2RlKTsKKyAgICB3b3JrZXJU
aHJlYWQoKS0+cnVuTG9vcCgpLnBvc3RUYXNrRm9yTW9kZShjcmVhdGVDYWxsYmFja1Rhc2soZGlz
cGF0Y2hPbkluc3BlY3RvckJhY2tlbmRUYXNrLCBTdHJpbmcobWVzc2FnZSkpLCBXb3JrZXJEZWJ1
Z2dlckFnZW50OjpkZWJ1Z2dlclRhc2tNb2RlKTsKIH0KIAogV2ViV29ya2VyQ2xpZW50KiBXZWJT
aGFyZWRXb3JrZXJJbXBsOjpjbGllbnQoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJv
bWl1bS9zcmMvV2ViU2hhcmVkV29ya2VySW1wbC5oIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9z
cmMvV2ViU2hhcmVkV29ya2VySW1wbC5oCmluZGV4IDA5NTZkOTYuLjQzN2JiMmIgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlNoYXJlZFdvcmtlckltcGwuaAorKysg
Yi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJTaGFyZWRXb3JrZXJJbXBsLmgKQEAgLTU2
LDYgKzU2LDggQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCB0ZXJtaW5hdGVXb3JrZXJDb250
ZXh0KCk7CiAgICAgdmlydHVhbCB2b2lkIGNsaWVudERlc3Ryb3llZCgpOwogCisgICAgdmlydHVh
bCB2b2lkIHBhdXNlV29ya2VyQ29udGV4dE9uU3RhcnQoKTsKKyAgICB2aXJ0dWFsIHZvaWQgcmVz
dW1lV29ya2VyQ29udGV4dCgpOwogICAgIHZpcnR1YWwgdm9pZCBhdHRhY2hEZXZUb29scygpOwog
ICAgIHZpcnR1YWwgdm9pZCByZWF0dGFjaERldlRvb2xzKGNvbnN0IFdlYlN0cmluZyYgc2F2ZWRT
dGF0ZSk7CiAgICAgdmlydHVhbCB2b2lkIGRldGFjaERldlRvb2xzKCk7CkBAIC03NCw2ICs3Niw3
IEBAIHByaXZhdGU6CiAgICAgc3RhdGljIHZvaWQgY29ubmVjdFRhc2soV2ViQ29yZTo6U2NyaXB0
RXhlY3V0aW9uQ29udGV4dCosIFBhc3NPd25QdHI8V2ViQ29yZTo6TWVzc2FnZVBvcnRDaGFubmVs
Pik7CiAKICAgICBXZWJDb21tb25Xb3JrZXJDbGllbnQqIG1fY2xpZW50OworICAgIGJvb2wgbV9w
YXVzZVdvcmtlckNvbnRleHRPblN0YXJ0OwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJXb3JrZXJDbGllbnRJbXBs
LmNwcCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYldvcmtlckNsaWVudEltcGwuY3Bw
CmluZGV4IGZkMGIzNjUuLjk2ODI5NzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21p
dW0vc3JjL1dlYldvcmtlckNsaWVudEltcGwuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21p
dW0vc3JjL1dlYldvcmtlckNsaWVudEltcGwuY3BwCkBAIC04Nyw3ICs4Nyw3IEBAIFdvcmtlckNv
bnRleHRQcm94eSogV2ViV29ya2VyQ2xpZW50SW1wbDo6Y3JlYXRlV29ya2VyQ29udGV4dFByb3h5
KFdvcmtlciogd29ya2VyCiAKIHZvaWQgV2ViV29ya2VyQ2xpZW50SW1wbDo6c3RhcnRXb3JrZXJD
b250ZXh0KGNvbnN0IEtVUkwmIHNjcmlwdFVSTCwgY29uc3QgU3RyaW5nJiB1c2VyQWdlbnQsIGNv
bnN0IFN0cmluZyYgc291cmNlQ29kZSkKIHsKLSAgICBSZWZQdHI8RGVkaWNhdGVkV29ya2VyVGhy
ZWFkPiB0aHJlYWQgPSBEZWRpY2F0ZWRXb3JrZXJUaHJlYWQ6OmNyZWF0ZShzY3JpcHRVUkwsIHVz
ZXJBZ2VudCwgc291cmNlQ29kZSwgKnRoaXMsICp0aGlzKTsKKyAgICBSZWZQdHI8RGVkaWNhdGVk
V29ya2VyVGhyZWFkPiB0aHJlYWQgPSBEZWRpY2F0ZWRXb3JrZXJUaHJlYWQ6OmNyZWF0ZShzY3Jp
cHRVUkwsIHVzZXJBZ2VudCwgc291cmNlQ29kZSwgKnRoaXMsICp0aGlzLCBEb250UGF1c2VXb3Jr
ZXJDb250ZXh0T25TdGFydCk7CiAgICAgbV9wcm94eS0+d29ya2VyVGhyZWFkQ3JlYXRlZCh0aHJl
YWQpOwogICAgIHRocmVhZC0+c3RhcnQoKTsKIH0KQEAgLTEzOCw4ICsxMzgsOSBAQCB2b2lkIFdl
YldvcmtlckNsaWVudEltcGw6OnBvc3RNZXNzYWdlVG9QYWdlSW5zcGVjdG9yKGNvbnN0IFN0cmlu
ZyYgbWVzc2FnZSkKICAgICBtX3Byb3h5LT5wb3N0TWVzc2FnZVRvUGFnZUluc3BlY3RvcihtZXNz
YWdlKTsKIH0KIAotdm9pZCBXZWJXb3JrZXJDbGllbnRJbXBsOjp1cGRhdGVJbnNwZWN0b3JTdGF0
ZUNvb2tpZShjb25zdCBTdHJpbmcmKQordm9pZCBXZWJXb3JrZXJDbGllbnRJbXBsOjp1cGRhdGVJ
bnNwZWN0b3JTdGF0ZUNvb2tpZShjb25zdCBTdHJpbmcmIGNvb2tpZSkKIHsKKyAgICBtX3Byb3h5
LT51cGRhdGVJbnNwZWN0b3JTdGF0ZUNvb2tpZShjb29raWUpOwogfQogI2VuZGlmIC8vIEVOQUJM
RShJTlNQRUNUT1IpCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dl
YldvcmtlckNsaWVudEltcGwuaCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYldvcmtl
ckNsaWVudEltcGwuaAppbmRleCA2OGExOTA0Li4zMjQ0NDMyIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L2Nocm9taXVtL3NyYy9XZWJXb3JrZXJDbGllbnRJbXBsLmgKKysrIGIvU291cmNlL1dl
YktpdC9jaHJvbWl1bS9zcmMvV2ViV29ya2VyQ2xpZW50SW1wbC5oCkBAIC01MSw3ICs1MSw3IEBA
IG5hbWVzcGFjZSBXZWJLaXQgewogY2xhc3MgV2ViV29ya2VyOwogY2xhc3MgV2ViRnJhbWVJbXBs
OwogCi0vLyBUaGlzIGNsYXNzIHByb3ZpZGVzIGNocm9taXVtIGltcGxlbWVudGF0aW9uIGZvciBX
b3JrZXJDb250ZXh0UHJveHQsIFdvcmtlck9iamVjdFByb3h5IGFtZCBXb3JrZXJMb2FkZXJQcm94
eQorLy8gVGhpcyBjbGFzcyBwcm92aWRlcyBjaHJvbWl1bSBpbXBsZW1lbnRhdGlvbiBmb3IgV29y
a2VyQ29udGV4dFByb3h5LCBXb3JrZXJPYmplY3RQcm94eSBhbWQgV29ya2VyTG9hZGVyUHJveHkK
IC8vIGZvciBpbi1wcm9jIGRlZGljYXRlZCB3b3JrZXJzLiBJdCBhbHNvIGFjdHMgYXMgYSBicmlk
Z2UgZm9yIHdvcmtlcnMgdG8gY2hyb21pdW0gaW1wbGVtZW50YXRpb24gb2YgZmlsZSBzeXN0ZW1z
LAogLy8gZGF0YWJhc2VzIGFuZCBvdGhlciByZWxhdGVkIGZ1bmN0aW9uYWxpdHkuCiAvLwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViV29ya2VySW1wbC5jcHAgYi9T
b3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJXb3JrZXJJbXBsLmNwcAppbmRleCBkYzE2M2E1
Li44MzcyZjMzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJXb3Jr
ZXJJbXBsLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJXb3JrZXJJbXBs
LmNwcApAQCAtNDIsOCArNDIsOCBAQAogI2luY2x1ZGUgIlNlY3VyaXR5T3JpZ2luLmgiCiAjaW5j
bHVkZSAiU2VyaWFsaXplZFNjcmlwdFZhbHVlLmgiCiAjaW5jbHVkZSAiU3Vic3RpdHV0ZURhdGEu
aCIKKyNpbmNsdWRlICJXb3JrZXJEZWJ1Z2dlckFnZW50LmgiCiAjaW5jbHVkZSAiV29ya2VySW5z
cGVjdG9yQ29udHJvbGxlci5oIgotI2luY2x1ZGUgIldvcmtlclNjcmlwdERlYnVnU2VydmVyLmgi
CiAjaW5jbHVkZSA8d3RmL093blB0ci5oPgogI2luY2x1ZGUgPHd0Zi9UaHJlYWRpbmcuaD4KIApA
QCAtMTA5LDcgKzEwOSw3IEBAIHZvaWQgV2ViV29ya2VySW1wbDo6c3RhcnRXb3JrZXJDb250ZXh0
KGNvbnN0IFdlYlVSTCYgc2NyaXB0VXJsLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgY29uc3QgV2ViU3RyaW5nJiBzb3VyY2VDb2RlKQogewogICAgIGluaXRpYWxpemVM
b2FkZXIoc2NyaXB0VXJsKTsKLSAgICBzZXRXb3JrZXJUaHJlYWQoRGVkaWNhdGVkV29ya2VyVGhy
ZWFkOjpjcmVhdGUoc2NyaXB0VXJsLCB1c2VyQWdlbnQsIHNvdXJjZUNvZGUsICp0aGlzLCAqdGhp
cykpOworICAgIHNldFdvcmtlclRocmVhZChEZWRpY2F0ZWRXb3JrZXJUaHJlYWQ6OmNyZWF0ZShz
Y3JpcHRVcmwsIHVzZXJBZ2VudCwgc291cmNlQ29kZSwgKnRoaXMsICp0aGlzLCBEb250UGF1c2VX
b3JrZXJDb250ZXh0T25TdGFydCkpOwogICAgIC8vIFdvcmtlciBpbml0aWFsaXphdGlvbiBtZWFu
cyBhIHBlbmRpbmcgYWN0aXZpdHkuCiAgICAgcmVwb3J0UGVuZGluZ0FjdGl2aXR5KHRydWUpOwog
ICAgIHdvcmtlclRocmVhZCgpLT5zdGFydCgpOwpAQCAtMTcyLDcgKzE3Miw3IEBAIHN0YXRpYyB2
b2lkIGRpc2Nvbm5lY3RGcm9tV29ya2VyQ29udGV4dEluc3BlY3RvclRhc2soU2NyaXB0RXhlY3V0
aW9uQ29udGV4dCogY29uCiAKIHZvaWQgV2ViV29ya2VySW1wbDo6ZGV0YWNoRGV2VG9vbHMoKQog
ewotICAgIHdvcmtlclRocmVhZCgpLT5ydW5Mb29wKCkucG9zdFRhc2tGb3JNb2RlKGNyZWF0ZUNh
bGxiYWNrVGFzayhkaXNjb25uZWN0RnJvbVdvcmtlckNvbnRleHRJbnNwZWN0b3JUYXNrLCB0cnVl
KSwgV29ya2VyU2NyaXB0RGVidWdTZXJ2ZXI6OmRlYnVnZ2VyVGFza01vZGUpOworICAgIHdvcmtl
clRocmVhZCgpLT5ydW5Mb29wKCkucG9zdFRhc2tGb3JNb2RlKGNyZWF0ZUNhbGxiYWNrVGFzayhk
aXNjb25uZWN0RnJvbVdvcmtlckNvbnRleHRJbnNwZWN0b3JUYXNrLCB0cnVlKSwgV29ya2VyRGVi
dWdnZXJBZ2VudDo6ZGVidWdnZXJUYXNrTW9kZSk7CiB9CiAKIHN0YXRpYyB2b2lkIGRpc3BhdGNo
T25JbnNwZWN0b3JCYWNrZW5kVGFzayhTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250ZXh0LCBj
b25zdCBTdHJpbmcmIG1lc3NhZ2UpCkBAIC0xODMsNyArMTgzLDcgQEAgc3RhdGljIHZvaWQgZGlz
cGF0Y2hPbkluc3BlY3RvckJhY2tlbmRUYXNrKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIGNvbnRl
eHQsIGNvbnMKIAogdm9pZCBXZWJXb3JrZXJJbXBsOjpkaXNwYXRjaERldlRvb2xzTWVzc2FnZShj
b25zdCBXZWJTdHJpbmcmIG1lc3NhZ2UpCiB7Ci0gICAgd29ya2VyVGhyZWFkKCktPnJ1bkxvb3Ao
KS5wb3N0VGFza0Zvck1vZGUoY3JlYXRlQ2FsbGJhY2tUYXNrKGRpc3BhdGNoT25JbnNwZWN0b3JC
YWNrZW5kVGFzaywgU3RyaW5nKG1lc3NhZ2UpKSwgV29ya2VyU2NyaXB0RGVidWdTZXJ2ZXI6OmRl
YnVnZ2VyVGFza01vZGUpOworICAgIHdvcmtlclRocmVhZCgpLT5ydW5Mb29wKCkucG9zdFRhc2tG
b3JNb2RlKGNyZWF0ZUNhbGxiYWNrVGFzayhkaXNwYXRjaE9uSW5zcGVjdG9yQmFja2VuZFRhc2ss
IFN0cmluZyhtZXNzYWdlKSksIFdvcmtlckRlYnVnZ2VyQWdlbnQ6OmRlYnVnZ2VyVGFza01vZGUp
OwogfQogCiAjZWxzZQo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>110341</attachid>
            <date>2011-10-10 02:25:34 -0700</date>
            <delta_ts>2011-10-10 02:25:34 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>auto-attach-to-worker.patch</filename>
            <type>text/plain</type>
            <size>42608</size>
            <attacher name="Yury Semikhatsky">yurys</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCBjYjU0MmViLi45M2VkNDZlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNTgg
QEAKKzIwMTEtMTAtMDcgIFl1cnkgU2VtaWtoYXRza3kgIDx5dXJ5c0BjaHJvbWl1bS5vcmc+CisK
KyAgICAgICAgV2ViIEluc3BlY3RvcjogYWxsb3cgdG8gc3RhcnQgV29ya2VyQ29udGV4dCBwYXVz
ZWQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTY5NjM1
CisKKyAgICAgICAgQWxsb3cgdG8gcGF1c2UgV29ya2VyQ29udGV4dCBvbiBzdGFydC4KKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIGJpbmRpbmdzL3Y4
L1NjcmlwdERlYnVnU2VydmVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNjcmlwdERlYnVnU2Vy
dmVyOjpzZXRQYXVzZU9uTmV4dFN0YXRlbWVudCk6CisgICAgICAgICogYmluZGluZ3MvdjgvV29y
a2VyU2NyaXB0RGVidWdTZXJ2ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6V29ya2VyU2NyaXB0
RGVidWdTZXJ2ZXI6OnJ1bk1lc3NhZ2VMb29wT25QYXVzZSk6CisgICAgICAgICogYmluZGluZ3Mv
djgvV29ya2VyU2NyaXB0RGVidWdTZXJ2ZXIuaDoKKyAgICAgICAgKiBpbnNwZWN0b3IvSW5zcGVj
dG9yQ29udHJvbGxlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JDb250cm9sbGVy
OjpJbnNwZWN0b3JDb250cm9sbGVyKToKKyAgICAgICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9ySW5z
dHJ1bWVudGF0aW9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3Rvckluc3RydW1lbnRh
dGlvbjo6d2lsbEV2YWx1YXRlV29ya2VyU2NyaXB0KToKKyAgICAgICAgKiBpbnNwZWN0b3IvSW5z
cGVjdG9ySW5zdHJ1bWVudGF0aW9uLmg6CisgICAgICAgICogaW5zcGVjdG9yL0luc3BlY3RvclJ1
bnRpbWVBZ2VudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JSdW50aW1lQWdlbnQ6
Okluc3BlY3RvclJ1bnRpbWVBZ2VudCk6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JSdW50
aW1lQWdlbnQ6On5JbnNwZWN0b3JSdW50aW1lQWdlbnQpOgorICAgICAgICAoV2ViQ29yZTo6SW5z
cGVjdG9yUnVudGltZUFnZW50OjpwYXVzZVdvcmtlckNvbnRleHQpOiB0aGlzIG1ldGhvZCB3aWxs
IHN0YXJ0CisgICAgICAgIHJ1bm5pbmcgd29ya2VyIG1lc3NhZ2UgbG9vcCBpbiAiZGVidWciIG1v
ZGUsIGkuZS4gaXQgd2lsbCBwcm9jZXNzIG9ubHkgaW5zcGVjdG9yCisgICAgICAgIHRhc2tzIHVu
dGlsIG1ldGhvZCBJbnNwZWN0b3JSdW50aW1lQWdlbnQ6OnJlc3VtZSBpcyBjYWxsZWQuCisgICAg
ICAgIChXZWJDb3JlOjpJbnNwZWN0b3JSdW50aW1lQWdlbnQ6OnJlc3VtZSk6CisgICAgICAgICog
aW5zcGVjdG9yL0luc3BlY3RvclJ1bnRpbWVBZ2VudC5oOgorICAgICAgICAqIGluc3BlY3Rvci9X
b3JrZXJEZWJ1Z2dlckFnZW50LmNwcDoKKyAgICAgICAgKiBpbnNwZWN0b3IvV29ya2VyRGVidWdn
ZXJBZ2VudC5oOgorICAgICAgICAqIGluc3BlY3Rvci9Xb3JrZXJJbnNwZWN0b3JDb250cm9sbGVy
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Oldvcmtlckluc3BlY3RvckNvbnRyb2xsZXI6Oldvcmtl
ckluc3BlY3RvckNvbnRyb2xsZXIpOgorICAgICAgICAoV2ViQ29yZTo6V29ya2VySW5zcGVjdG9y
Q29udHJvbGxlcjo6cmVzdW1lKTogbWV0aG9kIHdoaWNoIGlzIGNhbGxlZCBmcm9tIFdlYktpdCBs
YXllcgorICAgICAgICB3aGVuIGl0IGlzIGtub3duIHRoYXQgaW5zcGVjdG9yIHN0YXRlIHdhcyBy
ZXN0b3JlZCBhbmQgaXQgaXMgT0sgdG8gcmVzdW1lIHdvcmtlciBleGVjdXRpb24uCisgICAgICAg
ICogaW5zcGVjdG9yL1dvcmtlckluc3BlY3RvckNvbnRyb2xsZXIuaDoKKyAgICAgICAgKiB3b3Jr
ZXJzL0RlZGljYXRlZFdvcmtlclRocmVhZC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpEZWRpY2F0
ZWRXb3JrZXJUaHJlYWQ6OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpEZWRpY2F0ZWRXb3Jr
ZXJUaHJlYWQ6OkRlZGljYXRlZFdvcmtlclRocmVhZCk6CisgICAgICAgICogd29ya2Vycy9EZWRp
Y2F0ZWRXb3JrZXJUaHJlYWQuaDoKKyAgICAgICAgKiB3b3JrZXJzL1NoYXJlZFdvcmtlclRocmVh
ZC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTaGFyZWRXb3JrZXJUaHJlYWQ6OmNyZWF0ZSk6Cisg
ICAgICAgIChXZWJDb3JlOjpTaGFyZWRXb3JrZXJUaHJlYWQ6OlNoYXJlZFdvcmtlclRocmVhZCk6
CisgICAgICAgICogd29ya2Vycy9TaGFyZWRXb3JrZXJUaHJlYWQuaDoKKyAgICAgICAgKiB3b3Jr
ZXJzL1dvcmtlck1lc3NhZ2luZ1Byb3h5LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Oldvcmtlck1l
c3NhZ2luZ1Byb3h5OjpzdGFydFdvcmtlckNvbnRleHQpOgorICAgICAgICAoV2ViQ29yZTo6V29y
a2VyTWVzc2FnaW5nUHJveHk6OmRpc2Nvbm5lY3RGcm9tSW5zcGVjdG9yKToKKyAgICAgICAgKFdl
YkNvcmU6Oldvcmtlck1lc3NhZ2luZ1Byb3h5OjpzZW5kTWVzc2FnZVRvSW5zcGVjdG9yKToKKyAg
ICAgICAgKiB3b3JrZXJzL1dvcmtlclRocmVhZC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpXb3Jr
ZXJUaHJlYWRTdGFydHVwRGF0YTo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OldvcmtlclRo
cmVhZFN0YXJ0dXBEYXRhOjpXb3JrZXJUaHJlYWRTdGFydHVwRGF0YSk6CisgICAgICAgIChXZWJD
b3JlOjpXb3JrZXJUaHJlYWQ6OldvcmtlclRocmVhZCk6IFdvcmtlclRocmVhZCBpcyBwYXNzZWQg
YSBib29sZWFuZCBmbGFnIGluZGljYXRpbmcKKyAgICAgICAgd2hldGhlciB0aGUgY29udGV4dCBz
aG91bGQgYmUgcGF1c2VkIGFuZCB3YWl0IGZvciBleHBsaWNpdCByZXN1bWUgY29tbWFuZCBiZWZv
cmUgaXQKKyAgICAgICAgc3RhcnRzIHJ1bm5pbmcgaXRzIHNjcmlwdC4KKyAgICAgICAgKFdlYkNv
cmU6OldvcmtlclRocmVhZDo6d29ya2VyVGhyZWFkKToKKyAgICAgICAgKiB3b3JrZXJzL1dvcmtl
clRocmVhZC5oOgorCiAyMDExLTEwLTEwICBTaGVyaWZmIEJvdCAgPHdlYmtpdC5yZXZpZXcuYm90
QGdtYWlsLmNvbT4KIAogICAgICAgICBVbnJldmlld2VkLCByb2xsaW5nIG91dCByOTcwNDUuCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9TY3JpcHREZWJ1Z1NlcnZlci5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9TY3JpcHREZWJ1Z1NlcnZlci5jcHAKaW5k
ZXggMzc0MzNlZi4uNGQ3NGZkOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
djgvU2NyaXB0RGVidWdTZXJ2ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4
L1NjcmlwdERlYnVnU2VydmVyLmNwcApAQCAtMTQ5LDEwICsxNDksMTEgQEAgdm9pZCBTY3JpcHRE
ZWJ1Z1NlcnZlcjo6c2V0UGF1c2VPbk5leHRTdGF0ZW1lbnQoYm9vbCBwYXVzZSkKIHsKICAgICBp
ZiAoaXNQYXVzZWQoKSkKICAgICAgICAgcmV0dXJuOworICAgIHY4OjpJc29sYXRlKiBpc29sYXRl
ID0gdjg6Oklzb2xhdGU6OkdldEN1cnJlbnQoKTsKICAgICBpZiAocGF1c2UpCi0gICAgICAgIHY4
OjpEZWJ1Zzo6RGVidWdCcmVhaygpOworICAgICAgICB2ODo6RGVidWc6OkRlYnVnQnJlYWsoaXNv
bGF0ZSk7CiAgICAgZWxzZQotICAgICAgICB2ODo6RGVidWc6OkNhbmNlbERlYnVnQnJlYWsoKTsK
KyAgICAgICAgdjg6OkRlYnVnOjpDYW5jZWxEZWJ1Z0JyZWFrKGlzb2xhdGUpOwogfQogCiB2b2lk
IFNjcmlwdERlYnVnU2VydmVyOjpicmVha1Byb2dyYW0oKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvYmluZGluZ3MvdjgvV29ya2VyU2NyaXB0RGVidWdTZXJ2ZXIuY3BwIGIvU291cmNlL1dl
YkNvcmUvYmluZGluZ3MvdjgvV29ya2VyU2NyaXB0RGVidWdTZXJ2ZXIuY3BwCmluZGV4IGMwYTVk
OWUuLmMwZmRmMzIgMTAwNzU1Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1dvcmtl
clNjcmlwdERlYnVnU2VydmVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9X
b3JrZXJTY3JpcHREZWJ1Z1NlcnZlci5jcHAKQEAgLTM5LDYgKzM5LDcgQEAKICNpbmNsdWRlICJW
OFNoYXJlZFdvcmtlckNvbnRleHQuaCIKICNpbmNsdWRlICJXb3JrZXJDb250ZXh0LmgiCiAjaW5j
bHVkZSAiV29ya2VyQ29udGV4dEV4ZWN1dGlvblByb3h5LmgiCisjaW5jbHVkZSAiV29ya2VyRGVi
dWdnZXJBZ2VudC5oIgogI2luY2x1ZGUgIldvcmtlclRocmVhZC5oIgogI2luY2x1ZGUgPHY4Lmg+
CiAjaW5jbHVkZSA8d3RmL01lc3NhZ2VRdWV1ZS5oPgpAQCAtNjUsOCArNjYsNiBAQCBzdGF0aWMg
V29ya2VyQ29udGV4dCogcmV0cmlldmVXb3JrZXJDb250ZXh0KHY4OjpIYW5kbGU8djg6OkNvbnRl
eHQ+IGNvbnRleHQpCiAgICAgcmV0dXJuIDA7CiB9CiAKLWNvbnN0IGNoYXIqIFdvcmtlclNjcmlw
dERlYnVnU2VydmVyOjpkZWJ1Z2dlclRhc2tNb2RlID0gImRlYnVnZ2VyIjsKLQogV29ya2VyU2Ny
aXB0RGVidWdTZXJ2ZXI6OldvcmtlclNjcmlwdERlYnVnU2VydmVyKCkKICAgICA6IFNjcmlwdERl
YnVnU2VydmVyKCkKICAgICAsIG1fcGF1c2VkV29ya2VyQ29udGV4dCgwKQpAQCAtMTM0LDcgKzEz
Myw3IEBAIHZvaWQgV29ya2VyU2NyaXB0RGVidWdTZXJ2ZXI6OnJ1bk1lc3NhZ2VMb29wT25QYXVz
ZSh2ODo6SGFuZGxlPHY4OjpDb250ZXh0PiBjb250CiAKICAgICBNZXNzYWdlUXVldWVXYWl0UmVz
dWx0IHJlc3VsdDsKICAgICBkbyB7Ci0gICAgICAgIHJlc3VsdCA9IHdvcmtlclRocmVhZC0+cnVu
TG9vcCgpLnJ1bkluTW9kZSh3b3JrZXJDb250ZXh0LCBkZWJ1Z2dlclRhc2tNb2RlKTsKKyAgICAg
ICAgcmVzdWx0ID0gd29ya2VyVGhyZWFkLT5ydW5Mb29wKCkucnVuSW5Nb2RlKHdvcmtlckNvbnRl
eHQsIFdvcmtlckRlYnVnZ2VyQWdlbnQ6OmRlYnVnZ2VyVGFza01vZGUpOwogICAgIC8vIEtlZXAg
d2FpdGluZyB1bnRpbCBleGVjdXRpb24gaXMgcmVzdW1lZC4KICAgICB9IHdoaWxlIChyZXN1bHQg
PT0gTWVzc2FnZVF1ZXVlTWVzc2FnZVJlY2VpdmVkICYmIGlzUGF1c2VkKCkpOwogICAgIG1fcGF1
c2VkV29ya2VyQ29udGV4dCA9IDA7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy92OC9Xb3JrZXJTY3JpcHREZWJ1Z1NlcnZlci5oIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
djgvV29ya2VyU2NyaXB0RGVidWdTZXJ2ZXIuaAppbmRleCA3OGQ0YWQ3Li42MjY0YzY4IDEwMDc1
NQotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9Xb3JrZXJTY3JpcHREZWJ1Z1NlcnZl
ci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1dvcmtlclNjcmlwdERlYnVnU2Vy
dmVyLmgKQEAgLTQ4LDggKzQ4LDYgQEAgcHVibGljOgogICAgIHZvaWQgYWRkTGlzdGVuZXIoU2Ny
aXB0RGVidWdMaXN0ZW5lciosIFdvcmtlckNvbnRleHQqKTsKICAgICB2b2lkIHJlbW92ZUxpc3Rl
bmVyKFNjcmlwdERlYnVnTGlzdGVuZXIqLCBXb3JrZXJDb250ZXh0Kik7CiAKLSAgICBzdGF0aWMg
Y29uc3QgY2hhciogZGVidWdnZXJUYXNrTW9kZTsKLQogcHJpdmF0ZToKICAgICB2aXJ0dWFsIFNj
cmlwdERlYnVnTGlzdGVuZXIqIGdldERlYnVnTGlzdGVuZXJGb3JDb250ZXh0KHY4OjpIYW5kbGU8
djg6OkNvbnRleHQ+KTsKICAgICB2aXJ0dWFsIHZvaWQgcnVuTWVzc2FnZUxvb3BPblBhdXNlKHY4
OjpIYW5kbGU8djg6OkNvbnRleHQ+KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3Bl
Y3Rvci9JbnNwZWN0b3JDb250cm9sbGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9J
bnNwZWN0b3JDb250cm9sbGVyLmNwcAppbmRleCA0NGFlMmEyLi42OTNlYzQyIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQ29udHJvbGxlci5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckNvbnRyb2xsZXIuY3BwCkBAIC03Miw4
ICs3Miw4IEBAIG5hbWVzcGFjZSB7CiAKIGNsYXNzIFBhZ2VSdW50aW1lQWdlbnQgOiBwdWJsaWMg
SW5zcGVjdG9yUnVudGltZUFnZW50IHsKIHB1YmxpYzoKLSAgICBQYWdlUnVudGltZUFnZW50KElu
amVjdGVkU2NyaXB0TWFuYWdlciogaW5qZWN0ZWRTY3JpcHRNYW5hZ2VyLCBQYWdlKiBwYWdlLCBJ
bnNwZWN0b3JQYWdlQWdlbnQqIHBhZ2VBZ2VudCkKLSAgICAgICAgOiBJbnNwZWN0b3JSdW50aW1l
QWdlbnQoaW5qZWN0ZWRTY3JpcHRNYW5hZ2VyKQorICAgIFBhZ2VSdW50aW1lQWdlbnQoSW5zdHJ1
bWVudGluZ0FnZW50cyogaW5zdHJ1bWVudGluZ0FnZW50cywgSW5qZWN0ZWRTY3JpcHRNYW5hZ2Vy
KiBpbmplY3RlZFNjcmlwdE1hbmFnZXIsIFBhZ2UqIHBhZ2UsIEluc3BlY3RvclBhZ2VBZ2VudCog
cGFnZUFnZW50KQorICAgICAgICA6IEluc3BlY3RvclJ1bnRpbWVBZ2VudChpbnN0cnVtZW50aW5n
QWdlbnRzLCBpbmplY3RlZFNjcmlwdE1hbmFnZXIpCiAgICAgICAgICwgbV9pbnNwZWN0ZWRQYWdl
KHBhZ2UpCiAgICAgICAgICwgbV9wYWdlQWdlbnQocGFnZUFnZW50KSB7IH0KICAgICB2aXJ0dWFs
IH5QYWdlUnVudGltZUFnZW50KCkgeyB9CkBAIC0xMTAsNyArMTEwLDcgQEAgSW5zcGVjdG9yQ29u
dHJvbGxlcjo6SW5zcGVjdG9yQ29udHJvbGxlcihQYWdlKiBwYWdlLCBJbnNwZWN0b3JDbGllbnQq
IGluc3BlY3RvckMKICAgICAsIG1fdGltZWxpbmVBZ2VudChJbnNwZWN0b3JUaW1lbGluZUFnZW50
OjpjcmVhdGUobV9pbnN0cnVtZW50aW5nQWdlbnRzLmdldCgpLCBtX3N0YXRlLmdldCgpKSkKICAg
ICAsIG1fYXBwbGljYXRpb25DYWNoZUFnZW50KGFkb3B0UHRyKG5ldyBJbnNwZWN0b3JBcHBsaWNh
dGlvbkNhY2hlQWdlbnQobV9pbnN0cnVtZW50aW5nQWdlbnRzLmdldCgpLCBwYWdlKSkpCiAgICAg
LCBtX3Jlc291cmNlQWdlbnQoSW5zcGVjdG9yUmVzb3VyY2VBZ2VudDo6Y3JlYXRlKG1faW5zdHJ1
bWVudGluZ0FnZW50cy5nZXQoKSwgbV9wYWdlQWdlbnQuZ2V0KCksIGluc3BlY3RvckNsaWVudCwg
bV9zdGF0ZS5nZXQoKSkpCi0gICAgLCBtX3J1bnRpbWVBZ2VudChhZG9wdFB0cihuZXcgUGFnZVJ1
bnRpbWVBZ2VudChtX2luamVjdGVkU2NyaXB0TWFuYWdlci5nZXQoKSwgcGFnZSwgbV9wYWdlQWdl
bnQuZ2V0KCkpKSkKKyAgICAsIG1fcnVudGltZUFnZW50KGFkb3B0UHRyKG5ldyBQYWdlUnVudGlt
ZUFnZW50KG1faW5zdHJ1bWVudGluZ0FnZW50cy5nZXQoKSwgbV9pbmplY3RlZFNjcmlwdE1hbmFn
ZXIuZ2V0KCksIHBhZ2UsIG1fcGFnZUFnZW50LmdldCgpKSkpCiAgICAgLCBtX2NvbnNvbGVBZ2Vu
dChhZG9wdFB0cihuZXcgSW5zcGVjdG9yQ29uc29sZUFnZW50KG1faW5zdHJ1bWVudGluZ0FnZW50
cy5nZXQoKSwgbV9pbnNwZWN0b3JBZ2VudC5nZXQoKSwgbV9zdGF0ZS5nZXQoKSwgbV9pbmplY3Rl
ZFNjcmlwdE1hbmFnZXIuZ2V0KCksIG1fZG9tQWdlbnQuZ2V0KCkpKSkKICNpZiBFTkFCTEUoSkFW
QVNDUklQVF9ERUJVR0dFUikKICAgICAsIG1fZGVidWdnZXJBZ2VudChQYWdlRGVidWdnZXJBZ2Vu
dDo6Y3JlYXRlKG1faW5zdHJ1bWVudGluZ0FnZW50cy5nZXQoKSwgbV9zdGF0ZS5nZXQoKSwgcGFn
ZSwgbV9pbmplY3RlZFNjcmlwdE1hbmFnZXIuZ2V0KCkpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rvckluc3RydW1lbnRhdGlvbi5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9pbnNwZWN0b3IvSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uLmNwcAppbmRleCBmYzk1M2Q3
Li4wMzQxNDdlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9y
SW5zdHJ1bWVudGF0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVj
dG9ySW5zdHJ1bWVudGF0aW9uLmNwcApAQCAtNTAsMTIgKzUwLDE1IEBACiAjaW5jbHVkZSAiSW5z
cGVjdG9yUGFnZUFnZW50LmgiCiAjaW5jbHVkZSAiSW5zcGVjdG9yUHJvZmlsZXJBZ2VudC5oIgog
I2luY2x1ZGUgIkluc3BlY3RvclJlc291cmNlQWdlbnQuaCIKKyNpbmNsdWRlICJJbnNwZWN0b3JS
dW50aW1lQWdlbnQuaCIKICNpbmNsdWRlICJJbnNwZWN0b3JUaW1lbGluZUFnZW50LmgiCiAjaW5j
bHVkZSAiSW5zcGVjdG9yV29ya2VyQWdlbnQuaCIKICNpbmNsdWRlICJJbnN0cnVtZW50aW5nQWdl
bnRzLmgiCiAjaW5jbHVkZSAiU2NyaXB0QXJndW1lbnRzLmgiCiAjaW5jbHVkZSAiU2NyaXB0Q2Fs
bFN0YWNrLmgiCiAjaW5jbHVkZSAiU2NyaXB0UHJvZmlsZS5oIgorI2luY2x1ZGUgIldvcmtlckNv
bnRleHQuaCIKKyNpbmNsdWRlICJXb3JrZXJUaHJlYWQuaCIKICNpbmNsdWRlICJYTUxIdHRwUmVx
dWVzdC5oIgogI2luY2x1ZGUgPHd0Zi9TdGRMaWJFeHRyYXMuaD4KICNpbmNsdWRlIDx3dGYvdGV4
dC9DU3RyaW5nLmg+CkBAIC03OTksNiArODAyLDE3IEBAIHZvaWQgSW5zcGVjdG9ySW5zdHJ1bWVu
dGF0aW9uOjpkaWREZXN0cm95V29ya2VySW1wbChJbnN0cnVtZW50aW5nQWdlbnRzKiBpbnN0cnVt
CiAgICAgICAgIGluc3BlY3RvckFnZW50LT5kaWREZXN0cm95V29ya2VyKGlkKTsKIH0KIAordm9p
ZCBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OndpbGxFdmFsdWF0ZVdvcmtlclNjcmlwdChXb3Jr
ZXJDb250ZXh0KiB3b3JrZXJDb250ZXh0LCBpbnQgd29ya2VyVGhyZWFkU3RhcnRNb2RlKQorewor
ICAgIGlmICh3b3JrZXJUaHJlYWRTdGFydE1vZGUgIT0gUGF1c2VXb3JrZXJDb250ZXh0T25TdGFy
dCkKKyAgICAgICAgcmV0dXJuOworICAgIEluc3RydW1lbnRpbmdBZ2VudHMqIGluc3RydW1lbnRp
bmdBZ2VudHMgPSBpbnN0cnVtZW50YXRpb25Gb3JXb3JrZXJDb250ZXh0KHdvcmtlckNvbnRleHQp
OworICAgIGlmICghaW5zdHJ1bWVudGluZ0FnZW50cykKKyAgICAgICAgcmV0dXJuOworICAgIGlm
IChJbnNwZWN0b3JSdW50aW1lQWdlbnQqIHJ1bnRpbWVBZ2VudCA9IGluc3RydW1lbnRpbmdBZ2Vu
dHMtPmluc3BlY3RvclJ1bnRpbWVBZ2VudCgpKQorICAgICAgICBydW50aW1lQWdlbnQtPnBhdXNl
V29ya2VyQ29udGV4dCh3b3JrZXJDb250ZXh0KTsKK30KKwogdm9pZCBJbnNwZWN0b3JJbnN0cnVt
ZW50YXRpb246OndvcmtlckNvbnRleHRUZXJtaW5hdGVkSW1wbChJbnN0cnVtZW50aW5nQWdlbnRz
KiBpbnN0cnVtZW50aW5nQWdlbnRzLCBXb3JrZXJDb250ZXh0UHJveHkqIHByb3h5KQogewogICAg
IGlmIChJbnNwZWN0b3JXb3JrZXJBZ2VudCogd29ya2VyQWdlbnQgPSBpbnN0cnVtZW50aW5nQWdl
bnRzLT5pbnNwZWN0b3JXb3JrZXJBZ2VudCgpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
aW5zcGVjdG9yL0luc3BlY3Rvckluc3RydW1lbnRhdGlvbi5oIGIvU291cmNlL1dlYkNvcmUvaW5z
cGVjdG9yL0luc3BlY3Rvckluc3RydW1lbnRhdGlvbi5oCmluZGV4IDZiODM3MjcuLmIzMzg1ODkg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JJbnN0cnVtZW50
YXRpb24uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9ySW5zdHJ1bWVu
dGF0aW9uLmgKQEAgLTYwLDYgKzYwLDcgQEAgY2xhc3MgU2NyaXB0Q2FsbFN0YWNrOwogY2xhc3Mg
U2NyaXB0RXhlY3V0aW9uQ29udGV4dDsKIGNsYXNzIFNjcmlwdFByb2ZpbGU7CiBjbGFzcyBTdG9y
YWdlQXJlYTsKK2NsYXNzIFdvcmtlckNvbnRleHQ7CiBjbGFzcyBXb3JrZXJDb250ZXh0UHJveHk7
CiBjbGFzcyBYTUxIdHRwUmVxdWVzdDsKIApAQCAtMTgwLDYgKzE4MSw3IEBAIHB1YmxpYzoKICAg
ICBzdGF0aWMgdm9pZCBkaWRDcmVhdGVXb3JrZXIoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCosIGlu
dHB0cl90IGlkLCBjb25zdCBTdHJpbmcmIHVybCwgYm9vbCBpc1NoYXJlZFdvcmtlcik7CiAgICAg
c3RhdGljIHZvaWQgZGlkRGVzdHJveVdvcmtlcihTY3JpcHRFeGVjdXRpb25Db250ZXh0KiwgaW50
cHRyX3QgaWQpOwogICAgIHN0YXRpYyB2b2lkIHdvcmtlckNvbnRleHRUZXJtaW5hdGVkKFNjcmlw
dEV4ZWN1dGlvbkNvbnRleHQqLCBXb3JrZXJDb250ZXh0UHJveHkqKTsKKyAgICBzdGF0aWMgdm9p
ZCB3aWxsRXZhbHVhdGVXb3JrZXJTY3JpcHQoV29ya2VyQ29udGV4dCosIGludCB3b3JrZXJUaHJl
YWRTdGFydE1vZGUpOwogI2VuZGlmCiAKICNpZiBFTkFCTEUoV0VCX1NPQ0tFVFMpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yUnVudGltZUFnZW50LmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JSdW50aW1lQWdlbnQuY3BwCmluZGV4
IGMyNWU4MzIuLmM0MjNmNGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9J
bnNwZWN0b3JSdW50aW1lQWdlbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9J
bnNwZWN0b3JSdW50aW1lQWdlbnQuY3BwCkBAIC0zNiw2ICszNiwxMSBAQAogI2luY2x1ZGUgIklu
amVjdGVkU2NyaXB0LmgiCiAjaW5jbHVkZSAiSW5qZWN0ZWRTY3JpcHRNYW5hZ2VyLmgiCiAjaW5j
bHVkZSAiSW5zcGVjdG9yVmFsdWVzLmgiCisjaW5jbHVkZSAiSW5zdHJ1bWVudGluZ0FnZW50cy5o
IgorI2luY2x1ZGUgIldvcmtlckNvbnRleHQuaCIKKyNpbmNsdWRlICJXb3JrZXJEZWJ1Z2dlckFn
ZW50LmgiCisjaW5jbHVkZSAiV29ya2VyUnVuTG9vcC5oIgorI2luY2x1ZGUgIldvcmtlclRocmVh
ZC5oIgogI2luY2x1ZGUgPHd0Zi9QYXNzUmVmUHRyLmg+CiAKIApAQCAtNTAsMTYgKzU1LDIwIEBA
IHN0YXRpYyBib29sIGFzQm9vbChjb25zdCBib29sKiBjb25zdCBiKQogICAgIHJldHVybiBiID8g
KmIgOiBmYWxzZTsKIH0KIAotSW5zcGVjdG9yUnVudGltZUFnZW50OjpJbnNwZWN0b3JSdW50aW1l
QWdlbnQoSW5qZWN0ZWRTY3JpcHRNYW5hZ2VyKiBpbmplY3RlZFNjcmlwdE1hbmFnZXIpCitJbnNw
ZWN0b3JSdW50aW1lQWdlbnQ6Okluc3BlY3RvclJ1bnRpbWVBZ2VudChJbnN0cnVtZW50aW5nQWdl
bnRzKiBpbnN0cnVtZW50aW5nQWdlbnRzLCBJbmplY3RlZFNjcmlwdE1hbmFnZXIqIGluamVjdGVk
U2NyaXB0TWFuYWdlcikKICAgICA6IG1faW5qZWN0ZWRTY3JpcHRNYW5hZ2VyKGluamVjdGVkU2Ny
aXB0TWFuYWdlcikKICNpZiBFTkFCTEUoSkFWQVNDUklQVF9ERUJVR0dFUikKICAgICAsIG1fc2Ny
aXB0RGVidWdTZXJ2ZXIoMCkKICNlbmRpZgorICAgICwgbV9pbnN0cnVtZW50aW5nQWdlbnRzKGlu
c3RydW1lbnRpbmdBZ2VudHMpCisgICAgLCBtX3BhdXNlZChmYWxzZSkKIHsKKyAgICBtX2luc3Ry
dW1lbnRpbmdBZ2VudHMtPnNldEluc3BlY3RvclJ1bnRpbWVBZ2VudCh0aGlzKTsKIH0KIAogSW5z
cGVjdG9yUnVudGltZUFnZW50Ojp+SW5zcGVjdG9yUnVudGltZUFnZW50KCkKIHsKKyAgICBtX2lu
c3RydW1lbnRpbmdBZ2VudHMtPnNldEluc3BlY3RvclJ1bnRpbWVBZ2VudCgwKTsKIH0KIAogdm9p
ZCBJbnNwZWN0b3JSdW50aW1lQWdlbnQ6OmV2YWx1YXRlKEVycm9yU3RyaW5nKiBlcnJvclN0cmlu
ZywgY29uc3QgU3RyaW5nJiBleHByZXNzaW9uLCBjb25zdCBTdHJpbmcqIGNvbnN0IG9iamVjdEdy
b3VwLCBjb25zdCBib29sKiBjb25zdCBpbmNsdWRlQ29tbWFuZExpbmVBUEksIGNvbnN0IGJvb2wq
IGNvbnN0IGRvTm90UGF1c2VPbkV4Y2VwdGlvbnMsIGNvbnN0IFN0cmluZyogY29uc3QgZnJhbWVJ
ZCwgY29uc3QgYm9vbCogY29uc3QgcmV0dXJuQnlWYWx1ZSwgUmVmUHRyPEluc3BlY3Rvck9iamVj
dD4qIHJlc3VsdCwgYm9vbCogd2FzVGhyb3duKQpAQCAtMTM4LDYgKzE0NywyMyBAQCB2b2lkIElu
c3BlY3RvclJ1bnRpbWVBZ2VudDo6c2V0U2NyaXB0RGVidWdTZXJ2ZXIoU2NyaXB0RGVidWdTZXJ2
ZXIqIHNjcmlwdERlYnVnUwogfQogI2VuZGlmCiAKKyNpZiBFTkFCTEUoV09SS0VSUykKK3ZvaWQg
SW5zcGVjdG9yUnVudGltZUFnZW50OjpwYXVzZVdvcmtlckNvbnRleHQoV29ya2VyQ29udGV4dCog
Y29udGV4dCkKK3sKKyAgICBtX3BhdXNlZCA9IHRydWU7CisgICAgTWVzc2FnZVF1ZXVlV2FpdFJl
c3VsdCByZXN1bHQ7CisgICAgZG8geworICAgICAgICByZXN1bHQgPSBjb250ZXh0LT50aHJlYWQo
KS0+cnVuTG9vcCgpLnJ1bkluTW9kZShjb250ZXh0LCBXb3JrZXJEZWJ1Z2dlckFnZW50OjpkZWJ1
Z2dlclRhc2tNb2RlKTsKKyAgICAvLyBLZWVwIHdhaXRpbmcgdW50aWwgZXhlY3V0aW9uIGlzIHJl
c3VtZWQuCisgICAgfSB3aGlsZSAocmVzdWx0ID09IE1lc3NhZ2VRdWV1ZU1lc3NhZ2VSZWNlaXZl
ZCAmJiBtX3BhdXNlZCk7Cit9CisKK3ZvaWQgSW5zcGVjdG9yUnVudGltZUFnZW50OjpyZXN1bWUo
KQoreworICAgIG1fcGF1c2VkID0gZmFsc2U7Cit9CisjZW5kaWYKKwogfSAvLyBuYW1lc3BhY2Ug
V2ViQ29yZQogCiAjZW5kaWYgLy8gRU5BQkxFKElOU1BFQ1RPUikKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JSdW50aW1lQWdlbnQuaCBiL1NvdXJjZS9XZWJD
b3JlL2luc3BlY3Rvci9JbnNwZWN0b3JSdW50aW1lQWdlbnQuaAppbmRleCAyYTIxYjY3Li5kNzAy
ZjMyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yUnVudGlt
ZUFnZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclJ1bnRpbWVB
Z2VudC5oCkBAIC00MSw5ICs0MSwxMiBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIElu
amVjdGVkU2NyaXB0TWFuYWdlcjsKIGNsYXNzIEluc3BlY3RvckFycmF5OworY2xhc3MgSW5zcGVj
dG9yRnJvbnRlbmQ7CiBjbGFzcyBJbnNwZWN0b3JPYmplY3Q7CiBjbGFzcyBJbnNwZWN0b3JWYWx1
ZTsKK2NsYXNzIEluc3RydW1lbnRpbmdBZ2VudHM7CiBjbGFzcyBTY3JpcHREZWJ1Z1NlcnZlcjsK
K2NsYXNzIFdvcmtlckNvbnRleHQ7CiAKIHR5cGVkZWYgU3RyaW5nIEVycm9yU3RyaW5nOwogCkBA
IC03Niw5ICs3OSwxMyBAQCBwdWJsaWM6CiAjaWYgRU5BQkxFKEpBVkFTQ1JJUFRfREVCVUdHRVIp
CiAgICAgdm9pZCBzZXRTY3JpcHREZWJ1Z1NlcnZlcihTY3JpcHREZWJ1Z1NlcnZlciopOwogI2Vu
ZGlmCisjaWYgRU5BQkxFKFdPUktFUlMpCisgICAgdm9pZCBwYXVzZVdvcmtlckNvbnRleHQoV29y
a2VyQ29udGV4dCopOworICAgIHZvaWQgcmVzdW1lKCk7CisjZW5kaWYKIAogcHJvdGVjdGVkOgot
ICAgIGV4cGxpY2l0IEluc3BlY3RvclJ1bnRpbWVBZ2VudChJbmplY3RlZFNjcmlwdE1hbmFnZXIq
KTsKKyAgICBJbnNwZWN0b3JSdW50aW1lQWdlbnQoSW5zdHJ1bWVudGluZ0FnZW50cyosIEluamVj
dGVkU2NyaXB0TWFuYWdlciopOwogICAgIHZpcnR1YWwgU2NyaXB0U3RhdGUqIHNjcmlwdFN0YXRl
Rm9yRnJhbWVJZChjb25zdCBTdHJpbmcmIGZyYW1lSWQpID0gMDsKICAgICB2aXJ0dWFsIFNjcmlw
dFN0YXRlKiBnZXREZWZhdWx0SW5zcGVjdGVkU3RhdGUoKSA9IDA7CiAKQEAgLTg3LDYgKzk0LDgg
QEAgcHJpdmF0ZToKICNpZiBFTkFCTEUoSkFWQVNDUklQVF9ERUJVR0dFUikKICAgICBTY3JpcHRE
ZWJ1Z1NlcnZlciogbV9zY3JpcHREZWJ1Z1NlcnZlcjsKICNlbmRpZgorICAgIEluc3RydW1lbnRp
bmdBZ2VudHMqIG1faW5zdHJ1bWVudGluZ0FnZW50czsKKyAgICBib29sIG1fcGF1c2VkOwogfTsK
IAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5z
cGVjdG9yL1dvcmtlckRlYnVnZ2VyQWdlbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9y
L1dvcmtlckRlYnVnZ2VyQWdlbnQuY3BwCmluZGV4IDE0YmRlMzguLjMxZmRmNDkgMTAwNzU1Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9Xb3JrZXJEZWJ1Z2dlckFnZW50LmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvV29ya2VyRGVidWdnZXJBZ2VudC5jcHAKQEAgLTM3
LDYgKzM3LDggQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCitjb25zdCBjaGFyKiBXb3JrZXJE
ZWJ1Z2dlckFnZW50OjpkZWJ1Z2dlclRhc2tNb2RlID0gImRlYnVnZ2VyIjsKKwogUGFzc093blB0
cjxXb3JrZXJEZWJ1Z2dlckFnZW50PiBXb3JrZXJEZWJ1Z2dlckFnZW50OjpjcmVhdGUoSW5zdHJ1
bWVudGluZ0FnZW50cyogaW5zdHJ1bWVudGluZ0FnZW50cywgSW5zcGVjdG9yU3RhdGUqIGluc3Bl
Y3RvclN0YXRlLCBXb3JrZXJDb250ZXh0KiBpbnNwZWN0ZWRXb3JrZXJDb250ZXh0LCBJbmplY3Rl
ZFNjcmlwdE1hbmFnZXIqIGluamVjdGVkU2NyaXB0TWFuYWdlcikKIHsKICAgICByZXR1cm4gYWRv
cHRQdHIobmV3IFdvcmtlckRlYnVnZ2VyQWdlbnQoaW5zdHJ1bWVudGluZ0FnZW50cywgaW5zcGVj
dG9yU3RhdGUsIGluc3BlY3RlZFdvcmtlckNvbnRleHQsIGluamVjdGVkU2NyaXB0TWFuYWdlcikp
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL1dvcmtlckRlYnVnZ2VyQWdl
bnQuaCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9Xb3JrZXJEZWJ1Z2dlckFnZW50LmgKaW5k
ZXggZTg4ZmQ4OS4uOWUyNTg2NyAxMDA3NTUKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9y
L1dvcmtlckRlYnVnZ2VyQWdlbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvV29y
a2VyRGVidWdnZXJBZ2VudC5oCkBAIC00Niw2ICs0Niw4IEBAIHB1YmxpYzoKICAgICBzdGF0aWMg
UGFzc093blB0cjxXb3JrZXJEZWJ1Z2dlckFnZW50PiBjcmVhdGUoSW5zdHJ1bWVudGluZ0FnZW50
cyosIEluc3BlY3RvclN0YXRlKiwgV29ya2VyQ29udGV4dCosIEluamVjdGVkU2NyaXB0TWFuYWdl
ciopOwogICAgIHZpcnR1YWwgfldvcmtlckRlYnVnZ2VyQWdlbnQoKTsKIAorICAgIHN0YXRpYyBj
b25zdCBjaGFyKiBkZWJ1Z2dlclRhc2tNb2RlOworCiBwcml2YXRlOgogICAgIFdvcmtlckRlYnVn
Z2VyQWdlbnQoSW5zdHJ1bWVudGluZ0FnZW50cyosIEluc3BlY3RvclN0YXRlKiwgV29ya2VyQ29u
dGV4dCosIEluamVjdGVkU2NyaXB0TWFuYWdlciopOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9pbnNwZWN0b3IvV29ya2VySW5zcGVjdG9yQ29udHJvbGxlci5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9pbnNwZWN0b3IvV29ya2VySW5zcGVjdG9yQ29udHJvbGxlci5jcHAKaW5kZXggMmJiZTNm
My4uNTAxZWMyYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL1dvcmtlcklu
c3BlY3RvckNvbnRyb2xsZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9Xb3Jr
ZXJJbnNwZWN0b3JDb250cm9sbGVyLmNwcApAQCAtNTYsOCArNTYsOCBAQCBuYW1lc3BhY2Ugewog
CiBjbGFzcyBXb3JrZXJSdW50aW1lQWdlbnQgOiBwdWJsaWMgSW5zcGVjdG9yUnVudGltZUFnZW50
IHsKIHB1YmxpYzoKLSAgICBXb3JrZXJSdW50aW1lQWdlbnQoSW5qZWN0ZWRTY3JpcHRNYW5hZ2Vy
KiBpbmplY3RlZFNjcmlwdE1hbmFnZXIsIFdvcmtlckNvbnRleHQqIHdvcmtlckNvbnRleHQpCi0g
ICAgICAgIDogSW5zcGVjdG9yUnVudGltZUFnZW50KGluamVjdGVkU2NyaXB0TWFuYWdlcikKKyAg
ICBXb3JrZXJSdW50aW1lQWdlbnQoSW5zdHJ1bWVudGluZ0FnZW50cyogaW5zdHJ1bWVudGluZ0Fn
ZW50cywgSW5qZWN0ZWRTY3JpcHRNYW5hZ2VyKiBpbmplY3RlZFNjcmlwdE1hbmFnZXIsIFdvcmtl
ckNvbnRleHQqIHdvcmtlckNvbnRleHQpCisgICAgICAgIDogSW5zcGVjdG9yUnVudGltZUFnZW50
KGluc3RydW1lbnRpbmdBZ2VudHMsIGluamVjdGVkU2NyaXB0TWFuYWdlcikKICAgICAgICAgLCBt
X3dvcmtlckNvbnRleHQod29ya2VyQ29udGV4dCkgeyB9CiAgICAgdmlydHVhbCB+V29ya2VyUnVu
dGltZUFnZW50KCkgeyB9CiAKQEAgLTExMyw3ICsxMTMsNyBAQCBXb3JrZXJJbnNwZWN0b3JDb250
cm9sbGVyOjpXb3JrZXJJbnNwZWN0b3JDb250cm9sbGVyKFdvcmtlckNvbnRleHQqIHdvcmtlckNv
bnRleAogI2lmIEVOQUJMRShKQVZBU0NSSVBUX0RFQlVHR0VSKQogICAgICwgbV9kZWJ1Z2dlckFn
ZW50KFdvcmtlckRlYnVnZ2VyQWdlbnQ6OmNyZWF0ZShtX2luc3RydW1lbnRpbmdBZ2VudHMuZ2V0
KCksIG1fc3RhdGUuZ2V0KCksIHdvcmtlckNvbnRleHQsIG1faW5qZWN0ZWRTY3JpcHRNYW5hZ2Vy
LmdldCgpKSkKICNlbmRpZgotICAgICwgbV9ydW50aW1lQWdlbnQoYWRvcHRQdHIobmV3IFdvcmtl
clJ1bnRpbWVBZ2VudChtX2luamVjdGVkU2NyaXB0TWFuYWdlci5nZXQoKSwgd29ya2VyQ29udGV4
dCkpKQorICAgICwgbV9ydW50aW1lQWdlbnQoYWRvcHRQdHIobmV3IFdvcmtlclJ1bnRpbWVBZ2Vu
dChtX2luc3RydW1lbnRpbmdBZ2VudHMuZ2V0KCksIG1faW5qZWN0ZWRTY3JpcHRNYW5hZ2VyLmdl
dCgpLCB3b3JrZXJDb250ZXh0KSkpCiB7CiAgICAgbV9pbmplY3RlZFNjcmlwdE1hbmFnZXItPmlu
amVjdGVkU2NyaXB0SG9zdCgpLT5pbml0KDAKICAgICAgICAgLCAwCkBAIC0yMTAsNiArMjEwLDEx
IEBAIHZvaWQgV29ya2VySW5zcGVjdG9yQ29udHJvbGxlcjo6ZGlzcGF0Y2hNZXNzYWdlRnJvbUZy
b250ZW5kKGNvbnN0IFN0cmluZyYgbWVzc2FnCiAgICAgICAgIG1fYmFja2VuZERpc3BhdGNoZXIt
PmRpc3BhdGNoKG1lc3NhZ2UpOwogfQogCit2b2lkIFdvcmtlckluc3BlY3RvckNvbnRyb2xsZXI6
OnJlc3VtZSgpCit7CisgICAgbV9ydW50aW1lQWdlbnQtPnJlc3VtZSgpOworfQorCiB9CiAKICNl
bmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL1dvcmtlckluc3BlY3Rv
ckNvbnRyb2xsZXIuaCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9Xb3JrZXJJbnNwZWN0b3JD
b250cm9sbGVyLmgKaW5kZXggMzk4ZDkyMy4uYTAzMTMwZCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvaW5zcGVjdG9yL1dvcmtlckluc3BlY3RvckNvbnRyb2xsZXIuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9pbnNwZWN0b3IvV29ya2VySW5zcGVjdG9yQ29udHJvbGxlci5oCkBAIC02Niw2ICs2
Niw3IEBAIHB1YmxpYzoKICAgICB2b2lkIGRpc2Nvbm5lY3RGcm9udGVuZCgpOwogICAgIHZvaWQg
cmVzdG9yZUluc3BlY3RvclN0YXRlRnJvbUNvb2tpZShjb25zdCBTdHJpbmcmIGluc3BlY3RvckNv
b2tpZSk7CiAgICAgdm9pZCBkaXNwYXRjaE1lc3NhZ2VGcm9tRnJvbnRlbmQoY29uc3QgU3RyaW5n
Jik7CisgICAgdm9pZCByZXN1bWUoKTsKIAogcHJpdmF0ZToKICAgICBmcmllbmQgSW5zdHJ1bWVu
dGluZ0FnZW50cyogaW5zdHJ1bWVudGF0aW9uRm9yV29ya2VyQ29udGV4dChXb3JrZXJDb250ZXh0
Kik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL0RlZGljYXRlZFdvcmtlclRo
cmVhZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL0RlZGljYXRlZFdvcmtlclRocmVhZC5j
cHAKaW5kZXggZDQ3ODlhMS4uYmQ0MDZhMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvd29y
a2Vycy9EZWRpY2F0ZWRXb3JrZXJUaHJlYWQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtl
cnMvRGVkaWNhdGVkV29ya2VyVGhyZWFkLmNwcApAQCAtMzksMTMgKzM5LDEzIEBACiAKIG5hbWVz
cGFjZSBXZWJDb3JlIHsKIAotUGFzc1JlZlB0cjxEZWRpY2F0ZWRXb3JrZXJUaHJlYWQ+IERlZGlj
YXRlZFdvcmtlclRocmVhZDo6Y3JlYXRlKGNvbnN0IEtVUkwmIHNjcmlwdFVSTCwgY29uc3QgU3Ry
aW5nJiB1c2VyQWdlbnQsIGNvbnN0IFN0cmluZyYgc291cmNlQ29kZSwgV29ya2VyTG9hZGVyUHJv
eHkmIHdvcmtlckxvYWRlclByb3h5LCBXb3JrZXJPYmplY3RQcm94eSYgd29ya2VyT2JqZWN0UHJv
eHkpCitQYXNzUmVmUHRyPERlZGljYXRlZFdvcmtlclRocmVhZD4gRGVkaWNhdGVkV29ya2VyVGhy
ZWFkOjpjcmVhdGUoY29uc3QgS1VSTCYgc2NyaXB0VVJMLCBjb25zdCBTdHJpbmcmIHVzZXJBZ2Vu
dCwgY29uc3QgU3RyaW5nJiBzb3VyY2VDb2RlLCBXb3JrZXJMb2FkZXJQcm94eSYgd29ya2VyTG9h
ZGVyUHJveHksIFdvcmtlck9iamVjdFByb3h5JiB3b3JrZXJPYmplY3RQcm94eSwgV29ya2VyVGhy
ZWFkU3RhcnRNb2RlIHN0YXJ0TW9kZSkKIHsKLSAgICByZXR1cm4gYWRvcHRSZWYobmV3IERlZGlj
YXRlZFdvcmtlclRocmVhZChzY3JpcHRVUkwsIHVzZXJBZ2VudCwgc291cmNlQ29kZSwgd29ya2Vy
TG9hZGVyUHJveHksIHdvcmtlck9iamVjdFByb3h5KSk7CisgICAgcmV0dXJuIGFkb3B0UmVmKG5l
dyBEZWRpY2F0ZWRXb3JrZXJUaHJlYWQoc2NyaXB0VVJMLCB1c2VyQWdlbnQsIHNvdXJjZUNvZGUs
IHdvcmtlckxvYWRlclByb3h5LCB3b3JrZXJPYmplY3RQcm94eSwgc3RhcnRNb2RlKSk7CiB9CiAK
LURlZGljYXRlZFdvcmtlclRocmVhZDo6RGVkaWNhdGVkV29ya2VyVGhyZWFkKGNvbnN0IEtVUkwm
IHVybCwgY29uc3QgU3RyaW5nJiB1c2VyQWdlbnQsIGNvbnN0IFN0cmluZyYgc291cmNlQ29kZSwg
V29ya2VyTG9hZGVyUHJveHkmIHdvcmtlckxvYWRlclByb3h5LCBXb3JrZXJPYmplY3RQcm94eSYg
d29ya2VyT2JqZWN0UHJveHkpCi0gICAgOiBXb3JrZXJUaHJlYWQodXJsLCB1c2VyQWdlbnQsIHNv
dXJjZUNvZGUsIHdvcmtlckxvYWRlclByb3h5LCB3b3JrZXJPYmplY3RQcm94eSkKK0RlZGljYXRl
ZFdvcmtlclRocmVhZDo6RGVkaWNhdGVkV29ya2VyVGhyZWFkKGNvbnN0IEtVUkwmIHVybCwgY29u
c3QgU3RyaW5nJiB1c2VyQWdlbnQsIGNvbnN0IFN0cmluZyYgc291cmNlQ29kZSwgV29ya2VyTG9h
ZGVyUHJveHkmIHdvcmtlckxvYWRlclByb3h5LCBXb3JrZXJPYmplY3RQcm94eSYgd29ya2VyT2Jq
ZWN0UHJveHksIFdvcmtlclRocmVhZFN0YXJ0TW9kZSBzdGFydE1vZGUpCisgICAgOiBXb3JrZXJU
aHJlYWQodXJsLCB1c2VyQWdlbnQsIHNvdXJjZUNvZGUsIHdvcmtlckxvYWRlclByb3h5LCB3b3Jr
ZXJPYmplY3RQcm94eSwgc3RhcnRNb2RlKQogICAgICwgbV93b3JrZXJPYmplY3RQcm94eSh3b3Jr
ZXJPYmplY3RQcm94eSkKIHsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMv
RGVkaWNhdGVkV29ya2VyVGhyZWFkLmggYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL0RlZGljYXRl
ZFdvcmtlclRocmVhZC5oCmluZGV4IDIyNTI0M2IuLmNhZmZmYzAgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3dvcmtlcnMvRGVkaWNhdGVkV29ya2VyVGhyZWFkLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvd29ya2Vycy9EZWRpY2F0ZWRXb3JrZXJUaHJlYWQuaApAQCAtNDAsNyArNDAsNyBAQCBu
YW1lc3BhY2UgV2ViQ29yZSB7CiAKICAgICBjbGFzcyBEZWRpY2F0ZWRXb3JrZXJUaHJlYWQgOiBw
dWJsaWMgV29ya2VyVGhyZWFkIHsKICAgICBwdWJsaWM6Ci0gICAgICAgIHN0YXRpYyBQYXNzUmVm
UHRyPERlZGljYXRlZFdvcmtlclRocmVhZD4gY3JlYXRlKGNvbnN0IEtVUkwmIHNjcmlwdFVSTCwg
Y29uc3QgU3RyaW5nJiB1c2VyQWdlbnQsIGNvbnN0IFN0cmluZyYgc291cmNlQ29kZSwgV29ya2Vy
TG9hZGVyUHJveHkmLCBXb3JrZXJPYmplY3RQcm94eSYpOworICAgICAgICBzdGF0aWMgUGFzc1Jl
ZlB0cjxEZWRpY2F0ZWRXb3JrZXJUaHJlYWQ+IGNyZWF0ZShjb25zdCBLVVJMJiBzY3JpcHRVUkws
IGNvbnN0IFN0cmluZyYgdXNlckFnZW50LCBjb25zdCBTdHJpbmcmIHNvdXJjZUNvZGUsIFdvcmtl
ckxvYWRlclByb3h5JiwgV29ya2VyT2JqZWN0UHJveHkmLCBXb3JrZXJUaHJlYWRTdGFydE1vZGUp
OwogICAgICAgICBXb3JrZXJPYmplY3RQcm94eSYgd29ya2VyT2JqZWN0UHJveHkoKSBjb25zdCB7
IHJldHVybiBtX3dvcmtlck9iamVjdFByb3h5OyB9CiAgICAgICAgIH5EZWRpY2F0ZWRXb3JrZXJU
aHJlYWQoKTsKIApAQCAtNDksNyArNDksNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAg
IHZpcnR1YWwgdm9pZCBydW5FdmVudExvb3AoKTsKIAogICAgIHByaXZhdGU6Ci0gICAgICAgIERl
ZGljYXRlZFdvcmtlclRocmVhZChjb25zdCBLVVJMJiwgY29uc3QgU3RyaW5nJiB1c2VyQWdlbnQs
IGNvbnN0IFN0cmluZyYgc291cmNlQ29kZSwgV29ya2VyTG9hZGVyUHJveHkmLCBXb3JrZXJPYmpl
Y3RQcm94eSYpOworICAgICAgICBEZWRpY2F0ZWRXb3JrZXJUaHJlYWQoY29uc3QgS1VSTCYsIGNv
bnN0IFN0cmluZyYgdXNlckFnZW50LCBjb25zdCBTdHJpbmcmIHNvdXJjZUNvZGUsIFdvcmtlckxv
YWRlclByb3h5JiwgV29ya2VyT2JqZWN0UHJveHkmLCBXb3JrZXJUaHJlYWRTdGFydE1vZGUpOwog
CiAgICAgICAgIFdvcmtlck9iamVjdFByb3h5JiBtX3dvcmtlck9iamVjdFByb3h5OwogICAgIH07
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL0RlZmF1bHRTaGFyZWRXb3JrZXJS
ZXBvc2l0b3J5LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvRGVmYXVsdFNoYXJlZFdvcmtl
clJlcG9zaXRvcnkuY3BwCmluZGV4IGNmMjRmOGYuLjQ3YjU0MjggMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3dvcmtlcnMvRGVmYXVsdFNoYXJlZFdvcmtlclJlcG9zaXRvcnkuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvRGVmYXVsdFNoYXJlZFdvcmtlclJlcG9zaXRvcnkuY3Bw
CkBAIC0zMzgsNyArMzM4LDcgQEAgdm9pZCBEZWZhdWx0U2hhcmVkV29ya2VyUmVwb3NpdG9yeTo6
d29ya2VyU2NyaXB0TG9hZGVkKFNoYXJlZFdvcmtlclByb3h5JiBwcm94eSwKIAogICAgIC8vIEFu
b3RoZXIgbG9hZGVyIG1heSBoYXZlIGFscmVhZHkgc3RhcnRlZCB1cCBhIHRocmVhZCBmb3IgdGhp
cyBwcm94eSAtIGlmIHNvLCBqdXN0IHNlbmQgYSBjb25uZWN0IHRvIHRoZSBwcmUtZXhpc3Rpbmcg
dGhyZWFkLgogICAgIGlmICghcHJveHkudGhyZWFkKCkpIHsKLSAgICAgICAgUmVmUHRyPFNoYXJl
ZFdvcmtlclRocmVhZD4gdGhyZWFkID0gU2hhcmVkV29ya2VyVGhyZWFkOjpjcmVhdGUocHJveHku
bmFtZSgpLCBwcm94eS51cmwoKSwgdXNlckFnZW50LCB3b3JrZXJTY3JpcHQsIHByb3h5LCBwcm94
eSk7CisgICAgICAgIFJlZlB0cjxTaGFyZWRXb3JrZXJUaHJlYWQ+IHRocmVhZCA9IFNoYXJlZFdv
cmtlclRocmVhZDo6Y3JlYXRlKHByb3h5Lm5hbWUoKSwgcHJveHkudXJsKCksIHVzZXJBZ2VudCwg
d29ya2VyU2NyaXB0LCBwcm94eSwgcHJveHksIERvbnRQYXVzZVdvcmtlckNvbnRleHRPblN0YXJ0
KTsKICAgICAgICAgcHJveHkuc2V0VGhyZWFkKHRocmVhZCk7CiAgICAgICAgIHRocmVhZC0+c3Rh
cnQoKTsKICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1NoYXJlZFdv
cmtlclRocmVhZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1NoYXJlZFdvcmtlclRocmVh
ZC5jcHAKaW5kZXggZTU5ZGY0Zi4uMTdiOTU3YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
d29ya2Vycy9TaGFyZWRXb3JrZXJUaHJlYWQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtl
cnMvU2hhcmVkV29ya2VyVGhyZWFkLmNwcApAQCAtMzgsMTMgKzM4LDEzIEBACiAKIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKIAotUGFzc1JlZlB0cjxTaGFyZWRXb3JrZXJUaHJlYWQ+IFNoYXJlZFdvcmtl
clRocmVhZDo6Y3JlYXRlKGNvbnN0IFN0cmluZyYgbmFtZSwgY29uc3QgS1VSTCYgc2NyaXB0VVJM
LCBjb25zdCBTdHJpbmcmIHVzZXJBZ2VudCwgY29uc3QgU3RyaW5nJiBzb3VyY2VDb2RlLCBXb3Jr
ZXJMb2FkZXJQcm94eSYgd29ya2VyTG9hZGVyUHJveHksIFdvcmtlclJlcG9ydGluZ1Byb3h5JiB3
b3JrZXJSZXBvcnRpbmdQcm94eSkKK1Bhc3NSZWZQdHI8U2hhcmVkV29ya2VyVGhyZWFkPiBTaGFy
ZWRXb3JrZXJUaHJlYWQ6OmNyZWF0ZShjb25zdCBTdHJpbmcmIG5hbWUsIGNvbnN0IEtVUkwmIHNj
cmlwdFVSTCwgY29uc3QgU3RyaW5nJiB1c2VyQWdlbnQsIGNvbnN0IFN0cmluZyYgc291cmNlQ29k
ZSwgV29ya2VyTG9hZGVyUHJveHkmIHdvcmtlckxvYWRlclByb3h5LCBXb3JrZXJSZXBvcnRpbmdQ
cm94eSYgd29ya2VyUmVwb3J0aW5nUHJveHksIFdvcmtlclRocmVhZFN0YXJ0TW9kZSBzdGFydE1v
ZGUpCiB7Ci0gICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBTaGFyZWRXb3JrZXJUaHJlYWQobmFtZSwg
c2NyaXB0VVJMLCB1c2VyQWdlbnQsIHNvdXJjZUNvZGUsIHdvcmtlckxvYWRlclByb3h5LCB3b3Jr
ZXJSZXBvcnRpbmdQcm94eSkpOworICAgIHJldHVybiBhZG9wdFJlZihuZXcgU2hhcmVkV29ya2Vy
VGhyZWFkKG5hbWUsIHNjcmlwdFVSTCwgdXNlckFnZW50LCBzb3VyY2VDb2RlLCB3b3JrZXJMb2Fk
ZXJQcm94eSwgd29ya2VyUmVwb3J0aW5nUHJveHksIHN0YXJ0TW9kZSkpOwogfQogCi1TaGFyZWRX
b3JrZXJUaHJlYWQ6OlNoYXJlZFdvcmtlclRocmVhZChjb25zdCBTdHJpbmcmIG5hbWUsIGNvbnN0
IEtVUkwmIHVybCwgY29uc3QgU3RyaW5nJiB1c2VyQWdlbnQsIGNvbnN0IFN0cmluZyYgc291cmNl
Q29kZSwgV29ya2VyTG9hZGVyUHJveHkmIHdvcmtlckxvYWRlclByb3h5LCBXb3JrZXJSZXBvcnRp
bmdQcm94eSYgd29ya2VyUmVwb3J0aW5nUHJveHkpCi0gICAgOiBXb3JrZXJUaHJlYWQodXJsLCB1
c2VyQWdlbnQsIHNvdXJjZUNvZGUsIHdvcmtlckxvYWRlclByb3h5LCB3b3JrZXJSZXBvcnRpbmdQ
cm94eSkKK1NoYXJlZFdvcmtlclRocmVhZDo6U2hhcmVkV29ya2VyVGhyZWFkKGNvbnN0IFN0cmlu
ZyYgbmFtZSwgY29uc3QgS1VSTCYgdXJsLCBjb25zdCBTdHJpbmcmIHVzZXJBZ2VudCwgY29uc3Qg
U3RyaW5nJiBzb3VyY2VDb2RlLCBXb3JrZXJMb2FkZXJQcm94eSYgd29ya2VyTG9hZGVyUHJveHks
IFdvcmtlclJlcG9ydGluZ1Byb3h5JiB3b3JrZXJSZXBvcnRpbmdQcm94eSwgV29ya2VyVGhyZWFk
U3RhcnRNb2RlIHN0YXJ0TW9kZSkKKyAgICA6IFdvcmtlclRocmVhZCh1cmwsIHVzZXJBZ2VudCwg
c291cmNlQ29kZSwgd29ya2VyTG9hZGVyUHJveHksIHdvcmtlclJlcG9ydGluZ1Byb3h5LCBzdGFy
dE1vZGUpCiAgICAgLCBtX25hbWUobmFtZS5jcm9zc1RocmVhZFN0cmluZygpKQogewogfQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9TaGFyZWRXb3JrZXJUaHJlYWQuaCBiL1Nv
dXJjZS9XZWJDb3JlL3dvcmtlcnMvU2hhcmVkV29ya2VyVGhyZWFkLmgKaW5kZXggZDk2ZmQyYS4u
ZDYwMzc4ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9TaGFyZWRXb3JrZXJU
aHJlYWQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1NoYXJlZFdvcmtlclRocmVhZC5o
CkBAIC0zOCwxNCArMzgsMTQgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiAgICAgY2xhc3MgU2hh
cmVkV29ya2VyVGhyZWFkIDogcHVibGljIFdvcmtlclRocmVhZCB7CiAgICAgcHVibGljOgotICAg
ICAgICBzdGF0aWMgUGFzc1JlZlB0cjxTaGFyZWRXb3JrZXJUaHJlYWQ+IGNyZWF0ZShjb25zdCBT
dHJpbmcmIG5hbWUsIGNvbnN0IEtVUkwmLCBjb25zdCBTdHJpbmcmIHVzZXJBZ2VudCwgY29uc3Qg
U3RyaW5nJiBzb3VyY2VDb2RlLCBXb3JrZXJMb2FkZXJQcm94eSYsIFdvcmtlclJlcG9ydGluZ1By
b3h5Jik7CisgICAgICAgIHN0YXRpYyBQYXNzUmVmUHRyPFNoYXJlZFdvcmtlclRocmVhZD4gY3Jl
YXRlKGNvbnN0IFN0cmluZyYgbmFtZSwgY29uc3QgS1VSTCYsIGNvbnN0IFN0cmluZyYgdXNlckFn
ZW50LCBjb25zdCBTdHJpbmcmIHNvdXJjZUNvZGUsIFdvcmtlckxvYWRlclByb3h5JiwgV29ya2Vy
UmVwb3J0aW5nUHJveHkmLCBXb3JrZXJUaHJlYWRTdGFydE1vZGUpOwogICAgICAgICB+U2hhcmVk
V29ya2VyVGhyZWFkKCk7CiAKICAgICBwcm90ZWN0ZWQ6CiAgICAgICAgIHZpcnR1YWwgUGFzc1Jl
ZlB0cjxXb3JrZXJDb250ZXh0PiBjcmVhdGVXb3JrZXJDb250ZXh0KGNvbnN0IEtVUkwmLCBjb25z
dCBTdHJpbmcmKTsKIAogICAgIHByaXZhdGU6Ci0gICAgICAgIFNoYXJlZFdvcmtlclRocmVhZChj
b25zdCBTdHJpbmcmIG5hbWUsIGNvbnN0IEtVUkwmLCBjb25zdCBTdHJpbmcmIHVzZXJBZ2VudCwg
Y29uc3QgU3RyaW5nJiBzb3VyY2VDb2RlLCBXb3JrZXJMb2FkZXJQcm94eSYsIFdvcmtlclJlcG9y
dGluZ1Byb3h5Jik7CisgICAgICAgIFNoYXJlZFdvcmtlclRocmVhZChjb25zdCBTdHJpbmcmIG5h
bWUsIGNvbnN0IEtVUkwmLCBjb25zdCBTdHJpbmcmIHVzZXJBZ2VudCwgY29uc3QgU3RyaW5nJiBz
b3VyY2VDb2RlLCBXb3JrZXJMb2FkZXJQcm94eSYsIFdvcmtlclJlcG9ydGluZ1Byb3h5JiwgV29y
a2VyVGhyZWFkU3RhcnRNb2RlKTsKIAogICAgICAgICBTdHJpbmcgbV9uYW1lOwogICAgIH07CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlck1lc3NhZ2luZ1Byb3h5LmNw
cCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyTWVzc2FnaW5nUHJveHkuY3BwCmluZGV4
IGU5N2U5YzMuLjBkZDg4OWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29y
a2VyTWVzc2FnaW5nUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2Vy
TWVzc2FnaW5nUHJveHkuY3BwCkBAIC00NCw4ICs0NCw4IEBACiAjaW5jbHVkZSAiU2NyaXB0Q2Fs
bFN0YWNrLmgiCiAjaW5jbHVkZSAiU2NyaXB0RXhlY3V0aW9uQ29udGV4dC5oIgogI2luY2x1ZGUg
Ildvcmtlci5oIgorI2luY2x1ZGUgIldvcmtlckRlYnVnZ2VyQWdlbnQuaCIKICNpbmNsdWRlICJX
b3JrZXJJbnNwZWN0b3JDb250cm9sbGVyLmgiCi0jaW5jbHVkZSAiV29ya2VyU2NyaXB0RGVidWdT
ZXJ2ZXIuaCIKICNpbmNsdWRlIDx3dGYvTWFpblRocmVhZC5oPgogCiBuYW1lc3BhY2UgV2ViQ29y
ZSB7CkBAIC0yNjgsNyArMjY4LDcgQEAgV29ya2VyTWVzc2FnaW5nUHJveHk6On5Xb3JrZXJNZXNz
YWdpbmdQcm94eSgpCiAKIHZvaWQgV29ya2VyTWVzc2FnaW5nUHJveHk6OnN0YXJ0V29ya2VyQ29u
dGV4dChjb25zdCBLVVJMJiBzY3JpcHRVUkwsIGNvbnN0IFN0cmluZyYgdXNlckFnZW50LCBjb25z
dCBTdHJpbmcmIHNvdXJjZUNvZGUpCiB7Ci0gICAgUmVmUHRyPERlZGljYXRlZFdvcmtlclRocmVh
ZD4gdGhyZWFkID0gRGVkaWNhdGVkV29ya2VyVGhyZWFkOjpjcmVhdGUoc2NyaXB0VVJMLCB1c2Vy
QWdlbnQsIHNvdXJjZUNvZGUsICp0aGlzLCAqdGhpcyk7CisgICAgUmVmUHRyPERlZGljYXRlZFdv
cmtlclRocmVhZD4gdGhyZWFkID0gRGVkaWNhdGVkV29ya2VyVGhyZWFkOjpjcmVhdGUoc2NyaXB0
VVJMLCB1c2VyQWdlbnQsIHNvdXJjZUNvZGUsICp0aGlzLCAqdGhpcywgRG9udFBhdXNlV29ya2Vy
Q29udGV4dE9uU3RhcnQpOwogICAgIHdvcmtlclRocmVhZENyZWF0ZWQodGhyZWFkKTsKICAgICB0
aHJlYWQtPnN0YXJ0KCk7CiB9CkBAIC0zODAsNyArMzgwLDcgQEAgdm9pZCBXb3JrZXJNZXNzYWdp
bmdQcm94eTo6ZGlzY29ubmVjdEZyb21JbnNwZWN0b3IoKQogICAgIG1fcGFnZUluc3BlY3RvciA9
IDA7CiAgICAgaWYgKG1fYXNrZWRUb1Rlcm1pbmF0ZSkKICAgICAgICAgcmV0dXJuOwotICAgIG1f
d29ya2VyVGhyZWFkLT5ydW5Mb29wKCkucG9zdFRhc2tGb3JNb2RlKGNyZWF0ZUNhbGxiYWNrVGFz
ayhkaXNjb25uZWN0RnJvbVdvcmtlckNvbnRleHRJbnNwZWN0b3JUYXNrLCB0cnVlKSwgV29ya2Vy
U2NyaXB0RGVidWdTZXJ2ZXI6OmRlYnVnZ2VyVGFza01vZGUpOworICAgIG1fd29ya2VyVGhyZWFk
LT5ydW5Mb29wKCkucG9zdFRhc2tGb3JNb2RlKGNyZWF0ZUNhbGxiYWNrVGFzayhkaXNjb25uZWN0
RnJvbVdvcmtlckNvbnRleHRJbnNwZWN0b3JUYXNrLCB0cnVlKSwgV29ya2VyRGVidWdnZXJBZ2Vu
dDo6ZGVidWdnZXJUYXNrTW9kZSk7CiB9CiAKIHN0YXRpYyB2b2lkIGRpc3BhdGNoT25JbnNwZWN0
b3JCYWNrZW5kVGFzayhTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250ZXh0LCBjb25zdCBTdHJp
bmcmIG1lc3NhZ2UpCkBAIC0zOTMsNyArMzkzLDcgQEAgdm9pZCBXb3JrZXJNZXNzYWdpbmdQcm94
eTo6c2VuZE1lc3NhZ2VUb0luc3BlY3Rvcihjb25zdCBTdHJpbmcmIG1lc3NhZ2UpCiB7CiAgICAg
aWYgKG1fYXNrZWRUb1Rlcm1pbmF0ZSkKICAgICAgICAgcmV0dXJuOwotICAgIG1fd29ya2VyVGhy
ZWFkLT5ydW5Mb29wKCkucG9zdFRhc2tGb3JNb2RlKGNyZWF0ZUNhbGxiYWNrVGFzayhkaXNwYXRj
aE9uSW5zcGVjdG9yQmFja2VuZFRhc2ssIFN0cmluZyhtZXNzYWdlKSksIFdvcmtlclNjcmlwdERl
YnVnU2VydmVyOjpkZWJ1Z2dlclRhc2tNb2RlKTsKKyAgICBtX3dvcmtlclRocmVhZC0+cnVuTG9v
cCgpLnBvc3RUYXNrRm9yTW9kZShjcmVhdGVDYWxsYmFja1Rhc2soZGlzcGF0Y2hPbkluc3BlY3Rv
ckJhY2tlbmRUYXNrLCBTdHJpbmcobWVzc2FnZSkpLCBXb3JrZXJEZWJ1Z2dlckFnZW50OjpkZWJ1
Z2dlclRhc2tNb2RlKTsKIH0KICNlbmRpZgogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93
b3JrZXJzL1dvcmtlclRocmVhZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlclRo
cmVhZC5jcHAKaW5kZXggYjdmMThlYS4uZWMyODBlZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvd29ya2Vycy9Xb3JrZXJUaHJlYWQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMv
V29ya2VyVGhyZWFkLmNwcApAQCAtMzEsNiArMzEsNyBAQAogI2luY2x1ZGUgIldvcmtlclRocmVh
ZC5oIgogCiAjaW5jbHVkZSAiRGVkaWNhdGVkV29ya2VyQ29udGV4dC5oIgorI2luY2x1ZGUgIklu
c3BlY3Rvckluc3RydW1lbnRhdGlvbi5oIgogI2luY2x1ZGUgIktVUkwuaCIKICNpbmNsdWRlICJQ
bGF0Zm9ybVN0cmluZy5oIgogI2luY2x1ZGUgIlNjcmlwdFNvdXJjZUNvZGUuaCIKQEAgLTY0LDMw
ICs2NSwzMiBAQCB1bnNpZ25lZCBXb3JrZXJUaHJlYWQ6OndvcmtlclRocmVhZENvdW50KCkKIHN0
cnVjdCBXb3JrZXJUaHJlYWRTdGFydHVwRGF0YSB7CiAgICAgV1RGX01BS0VfTk9OQ09QWUFCTEUo
V29ya2VyVGhyZWFkU3RhcnR1cERhdGEpOyBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKIHB1Ymxp
YzoKLSAgICBzdGF0aWMgUGFzc093blB0cjxXb3JrZXJUaHJlYWRTdGFydHVwRGF0YT4gY3JlYXRl
KGNvbnN0IEtVUkwmIHNjcmlwdFVSTCwgY29uc3QgU3RyaW5nJiB1c2VyQWdlbnQsIGNvbnN0IFN0
cmluZyYgc291cmNlQ29kZSkKKyAgICBzdGF0aWMgUGFzc093blB0cjxXb3JrZXJUaHJlYWRTdGFy
dHVwRGF0YT4gY3JlYXRlKGNvbnN0IEtVUkwmIHNjcmlwdFVSTCwgY29uc3QgU3RyaW5nJiB1c2Vy
QWdlbnQsIGNvbnN0IFN0cmluZyYgc291cmNlQ29kZSwgV29ya2VyVGhyZWFkU3RhcnRNb2RlIHN0
YXJ0TW9kZSkKICAgICB7Ci0gICAgICAgIHJldHVybiBhZG9wdFB0cihuZXcgV29ya2VyVGhyZWFk
U3RhcnR1cERhdGEoc2NyaXB0VVJMLCB1c2VyQWdlbnQsIHNvdXJjZUNvZGUpKTsKKyAgICAgICAg
cmV0dXJuIGFkb3B0UHRyKG5ldyBXb3JrZXJUaHJlYWRTdGFydHVwRGF0YShzY3JpcHRVUkwsIHVz
ZXJBZ2VudCwgc291cmNlQ29kZSwgc3RhcnRNb2RlKSk7CiAgICAgfQogCiAgICAgS1VSTCBtX3Nj
cmlwdFVSTDsKICAgICBTdHJpbmcgbV91c2VyQWdlbnQ7CiAgICAgU3RyaW5nIG1fc291cmNlQ29k
ZTsKKyAgICBXb3JrZXJUaHJlYWRTdGFydE1vZGUgbV9zdGFydE1vZGU7CiBwcml2YXRlOgotICAg
IFdvcmtlclRocmVhZFN0YXJ0dXBEYXRhKGNvbnN0IEtVUkwmIHNjcmlwdFVSTCwgY29uc3QgU3Ry
aW5nJiB1c2VyQWdlbnQsIGNvbnN0IFN0cmluZyYgc291cmNlQ29kZSk7CisgICAgV29ya2VyVGhy
ZWFkU3RhcnR1cERhdGEoY29uc3QgS1VSTCYgc2NyaXB0VVJMLCBjb25zdCBTdHJpbmcmIHVzZXJB
Z2VudCwgY29uc3QgU3RyaW5nJiBzb3VyY2VDb2RlLCBXb3JrZXJUaHJlYWRTdGFydE1vZGUpOwog
fTsKIAotV29ya2VyVGhyZWFkU3RhcnR1cERhdGE6OldvcmtlclRocmVhZFN0YXJ0dXBEYXRhKGNv
bnN0IEtVUkwmIHNjcmlwdFVSTCwgY29uc3QgU3RyaW5nJiB1c2VyQWdlbnQsIGNvbnN0IFN0cmlu
ZyYgc291cmNlQ29kZSkKK1dvcmtlclRocmVhZFN0YXJ0dXBEYXRhOjpXb3JrZXJUaHJlYWRTdGFy
dHVwRGF0YShjb25zdCBLVVJMJiBzY3JpcHRVUkwsIGNvbnN0IFN0cmluZyYgdXNlckFnZW50LCBj
b25zdCBTdHJpbmcmIHNvdXJjZUNvZGUsIFdvcmtlclRocmVhZFN0YXJ0TW9kZSBzdGFydE1vZGUp
CiAgICAgOiBtX3NjcmlwdFVSTChzY3JpcHRVUkwuY29weSgpKQogICAgICwgbV91c2VyQWdlbnQo
dXNlckFnZW50LmNyb3NzVGhyZWFkU3RyaW5nKCkpCiAgICAgLCBtX3NvdXJjZUNvZGUoc291cmNl
Q29kZS5jcm9zc1RocmVhZFN0cmluZygpKQorICAgICwgbV9zdGFydE1vZGUoc3RhcnRNb2RlKQog
ewogfQogCi1Xb3JrZXJUaHJlYWQ6OldvcmtlclRocmVhZChjb25zdCBLVVJMJiBzY3JpcHRVUkws
IGNvbnN0IFN0cmluZyYgdXNlckFnZW50LCBjb25zdCBTdHJpbmcmIHNvdXJjZUNvZGUsIFdvcmtl
ckxvYWRlclByb3h5JiB3b3JrZXJMb2FkZXJQcm94eSwgV29ya2VyUmVwb3J0aW5nUHJveHkmIHdv
cmtlclJlcG9ydGluZ1Byb3h5KQorV29ya2VyVGhyZWFkOjpXb3JrZXJUaHJlYWQoY29uc3QgS1VS
TCYgc2NyaXB0VVJMLCBjb25zdCBTdHJpbmcmIHVzZXJBZ2VudCwgY29uc3QgU3RyaW5nJiBzb3Vy
Y2VDb2RlLCBXb3JrZXJMb2FkZXJQcm94eSYgd29ya2VyTG9hZGVyUHJveHksIFdvcmtlclJlcG9y
dGluZ1Byb3h5JiB3b3JrZXJSZXBvcnRpbmdQcm94eSwgV29ya2VyVGhyZWFkU3RhcnRNb2RlIHN0
YXJ0TW9kZSkKICAgICA6IG1fdGhyZWFkSUQoMCkKICAgICAsIG1fd29ya2VyTG9hZGVyUHJveHko
d29ya2VyTG9hZGVyUHJveHkpCiAgICAgLCBtX3dvcmtlclJlcG9ydGluZ1Byb3h5KHdvcmtlclJl
cG9ydGluZ1Byb3h5KQotICAgICwgbV9zdGFydHVwRGF0YShXb3JrZXJUaHJlYWRTdGFydHVwRGF0
YTo6Y3JlYXRlKHNjcmlwdFVSTCwgdXNlckFnZW50LCBzb3VyY2VDb2RlKSkKKyAgICAsIG1fc3Rh
cnR1cERhdGEoV29ya2VyVGhyZWFkU3RhcnR1cERhdGE6OmNyZWF0ZShzY3JpcHRVUkwsIHVzZXJB
Z2VudCwgc291cmNlQ29kZSwgc3RhcnRNb2RlKSkKICNpZiBFTkFCTEUoTk9USUZJQ0FUSU9OUykK
ICAgICAsIG1fbm90aWZpY2F0aW9uUHJlc2VudGVyKDApCiAjZW5kaWYKQEAgLTEzNSw2ICsxMzgs
NyBAQCB2b2lkKiBXb3JrZXJUaHJlYWQ6OndvcmtlclRocmVhZCgpCiAgICAgfQogCiAgICAgV29y
a2VyU2NyaXB0Q29udHJvbGxlciogc2NyaXB0ID0gbV93b3JrZXJDb250ZXh0LT5zY3JpcHQoKTsK
KyAgICBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OndpbGxFdmFsdWF0ZVdvcmtlclNjcmlwdCh3
b3JrZXJDb250ZXh0KCksIG1fc3RhcnR1cERhdGEtPm1fc3RhcnRNb2RlKTsKICAgICBzY3JpcHQt
PmV2YWx1YXRlKFNjcmlwdFNvdXJjZUNvZGUobV9zdGFydHVwRGF0YS0+bV9zb3VyY2VDb2RlLCBt
X3N0YXJ0dXBEYXRhLT5tX3NjcmlwdFVSTCkpOwogICAgIC8vIEZyZWUgdGhlIHN0YXJ0dXAgZGF0
YSB0byBjYXVzZSBpdHMgbWVtYmVyIHZhcmlhYmxlIGRlcmVmJ3MgaGFwcGVuIG9uIHRoZSB3b3Jr
ZXIncyB0aHJlYWQgKHNpbmNlCiAgICAgLy8gYWxsIHJlZi9kZXJlZnMgb2YgdGhlc2Ugb2JqZWN0
cyBhcmUgaGFwcGVuaW5nIG9uIHRoZSB0aHJlYWQgYXQgdGhpcyBwb2ludCkuIE5vdGUgdGhhdApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJUaHJlYWQuaCBiL1NvdXJj
ZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyVGhyZWFkLmgKaW5kZXggZTQ0YWZjZS4uNmYzYjIyMiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJUaHJlYWQuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlclRocmVhZC5oCkBAIC00NCw2ICs0NCw4IEBAIG5h
bWVzcGFjZSBXZWJDb3JlIHsKICAgICBjbGFzcyBXb3JrZXJSZXBvcnRpbmdQcm94eTsKICAgICBz
dHJ1Y3QgV29ya2VyVGhyZWFkU3RhcnR1cERhdGE7CiAKKyAgICBlbnVtIFdvcmtlclRocmVhZFN0
YXJ0TW9kZSB7IERvbnRQYXVzZVdvcmtlckNvbnRleHRPblN0YXJ0LCBQYXVzZVdvcmtlckNvbnRl
eHRPblN0YXJ0IH07CisKICAgICBjbGFzcyBXb3JrZXJUaHJlYWQgOiBwdWJsaWMgUmVmQ291bnRl
ZDxXb3JrZXJUaHJlYWQ+IHsKICAgICBwdWJsaWM6CiAgICAgICAgIHZpcnR1YWwgfldvcmtlclRo
cmVhZCgpOwpAQCAtNjUsNyArNjcsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAjZW5kaWYKIAog
ICAgIHByb3RlY3RlZDoKLSAgICAgICAgV29ya2VyVGhyZWFkKGNvbnN0IEtVUkwmLCBjb25zdCBT
dHJpbmcmIHVzZXJBZ2VudCwgY29uc3QgU3RyaW5nJiBzb3VyY2VDb2RlLCBXb3JrZXJMb2FkZXJQ
cm94eSYsIFdvcmtlclJlcG9ydGluZ1Byb3h5Jik7CisgICAgICAgIFdvcmtlclRocmVhZChjb25z
dCBLVVJMJiwgY29uc3QgU3RyaW5nJiB1c2VyQWdlbnQsIGNvbnN0IFN0cmluZyYgc291cmNlQ29k
ZSwgV29ya2VyTG9hZGVyUHJveHkmLCBXb3JrZXJSZXBvcnRpbmdQcm94eSYsIFdvcmtlclRocmVh
ZFN0YXJ0TW9kZSk7CiAKICAgICAgICAgLy8gRmFjdG9yeSBtZXRob2QgZm9yIGNyZWF0aW5nIGEg
bmV3IHdvcmtlciBjb250ZXh0IGZvciB0aGUgdGhyZWFkLgogICAgICAgICB2aXJ0dWFsIFBhc3NS
ZWZQdHI8V29ya2VyQ29udGV4dD4gY3JlYXRlV29ya2VyQ29udGV4dChjb25zdCBLVVJMJiB1cmws
IGNvbnN0IFN0cmluZyYgdXNlckFnZW50KSA9IDA7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L2Nocm9taXVtL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCmlu
ZGV4IGE0MmU1MmEuLjJkNjFhZWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0v
Q2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCkBAIC0xLDMg
KzEsMzggQEAKKzIwMTEtMTAtMDcgIFl1cnkgU2VtaWtoYXRza3kgIDx5dXJ5c0BjaHJvbWl1bS5v
cmc+CisKKyAgICAgICAgV2ViIEluc3BlY3RvcjogYWxsb3cgdG8gc3RhcnQgV29ya2VyQ29udGV4
dCBwYXVzZWQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTY5NjM1CisKKyAgICAgICAgRXhwb3NlIG1ldGhvZHMgZm9yIHBhdXNpbmcgc2hhcmVkIHdvcmtl
ciBvbiBzdGFydC4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICAqIHB1YmxpYy9XZWJTaGFyZWRXb3JrZXIuaDoKKyAgICAgICAgKFdlYktpdDo6V2ViU2hh
cmVkV29ya2VyOjpwYXVzZVdvcmtlckNvbnRleHRPblN0YXJ0KTogc3BlY2lmaWVzIHRoYXQgdGhl
IHdvcmtlcgorICAgICAgICBjb250ZXh0IHNob3VsZCBiZSBwYXVzZWQgYW5kIHdlaXQgZm9yIGV4
cGxpY2l0IGNhbGwgdG8gcmVzdW1lV29ya2VyQ29udGV4dCBiZWZvcmUKKyAgICAgICAgcnVubmlu
ZyBpdHMgc2NyaXB0LgorICAgICAgICAoV2ViS2l0OjpXZWJTaGFyZWRXb3JrZXI6OnJlc3VtZVdv
cmtlckNvbnRleHQpOgorICAgICAgICAqIHNyYy9XZWJTaGFyZWRXb3JrZXJJbXBsLmNwcDoKKyAg
ICAgICAgKFdlYktpdDo6V2ViU2hhcmVkV29ya2VySW1wbDo6V2ViU2hhcmVkV29ya2VySW1wbCk6
CisgICAgICAgIChXZWJLaXQ6OldlYlNoYXJlZFdvcmtlckltcGw6OnN0YXJ0V29ya2VyQ29udGV4
dCk6CisgICAgICAgIChXZWJLaXQ6OldlYlNoYXJlZFdvcmtlckltcGw6OnBhdXNlV29ya2VyQ29u
dGV4dE9uU3RhcnQpOgorICAgICAgICAoV2ViS2l0OjpyZXN1bWVXb3JrZXJDb250ZXh0VGFzayk6
CisgICAgICAgIChXZWJLaXQ6OldlYlNoYXJlZFdvcmtlckltcGw6OnJlc3VtZVdvcmtlckNvbnRl
eHQpOgorICAgICAgICAoV2ViS2l0OjpXZWJTaGFyZWRXb3JrZXJJbXBsOjphdHRhY2hEZXZUb29s
cyk6CisgICAgICAgIChXZWJLaXQ6OnJlY29ubmVjdFRvV29ya2VyQ29udGV4dEluc3BlY3RvclRh
c2spOgorICAgICAgICAoV2ViS2l0OjpXZWJTaGFyZWRXb3JrZXJJbXBsOjpyZWF0dGFjaERldlRv
b2xzKToKKyAgICAgICAgKFdlYktpdDo6V2ViU2hhcmVkV29ya2VySW1wbDo6ZGV0YWNoRGV2VG9v
bHMpOgorICAgICAgICAoV2ViS2l0OjpXZWJTaGFyZWRXb3JrZXJJbXBsOjpkaXNwYXRjaERldlRv
b2xzTWVzc2FnZSk6CisgICAgICAgICogc3JjL1dlYlNoYXJlZFdvcmtlckltcGwuaDoKKyAgICAg
ICAgKiBzcmMvV2ViV29ya2VyQ2xpZW50SW1wbC5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYldv
cmtlckNsaWVudEltcGw6OnN0YXJ0V29ya2VyQ29udGV4dCk6CisgICAgICAgIChXZWJLaXQ6Oldl
YldvcmtlckNsaWVudEltcGw6OnVwZGF0ZUluc3BlY3RvclN0YXRlQ29va2llKToKKyAgICAgICAg
KiBzcmMvV2ViV29ya2VyQ2xpZW50SW1wbC5oOgorICAgICAgICAqIHNyYy9XZWJXb3JrZXJJbXBs
LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViV29ya2VySW1wbDo6c3RhcnRXb3JrZXJDb250ZXh0
KToKKyAgICAgICAgKFdlYktpdDo6V2ViV29ya2VySW1wbDo6ZGV0YWNoRGV2VG9vbHMpOgorICAg
ICAgICAoV2ViS2l0OjpXZWJXb3JrZXJJbXBsOjpkaXNwYXRjaERldlRvb2xzTWVzc2FnZSk6CisK
IDIwMTEtMTAtMDkgIFcuIEphbWVzIE1hY0xlYW4gIDx3am1hY2xlYW5AY2hyb21pdW0ub3JnPgog
CiAgICAgICAgIFtjaHJvbWl1bV0gWm9vbSBhbmltYXRvciBmcm9udC1lbmQKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYlNoYXJlZFdvcmtlci5oIGIvU291cmNl
L1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViU2hhcmVkV29ya2VyLmgKaW5kZXggYTM0NzdiMy4u
NWY1NTBhYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViU2hh
cmVkV29ya2VyLmgKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViU2hhcmVk
V29ya2VyLmgKQEAgLTc4LDYgKzc4LDggQEAgcHVibGljOgogICAgIC8vIE5vdGlmaWNhdGlvbiB3
aGVuIHRoZSBXZWJDb21tb25Xb3JrZXJDbGllbnQgaXMgZGVzdHJveWVkLgogICAgIHZpcnR1YWwg
dm9pZCBjbGllbnREZXN0cm95ZWQoKSA9IDA7CiAKKyAgICB2aXJ0dWFsIHZvaWQgcGF1c2VXb3Jr
ZXJDb250ZXh0T25TdGFydCgpIHsgfQorICAgIHZpcnR1YWwgdm9pZCByZXN1bWVXb3JrZXJDb250
ZXh0KCkgeyB9CiAgICAgdmlydHVhbCB2b2lkIGF0dGFjaERldlRvb2xzKCkgeyB9CiAgICAgdmly
dHVhbCB2b2lkIHJlYXR0YWNoRGV2VG9vbHMoY29uc3QgV2ViU3RyaW5nJiBzYXZlZFN0YXRlKSB7
IH0KICAgICB2aXJ0dWFsIHZvaWQgZGV0YWNoRGV2VG9vbHMoKSB7IH0KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlNoYXJlZFdvcmtlckltcGwuY3BwIGIvU291cmNl
L1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViU2hhcmVkV29ya2VySW1wbC5jcHAKaW5kZXggYTM5YmNh
MS4uNzFmMDE3ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViU2hh
cmVkV29ya2VySW1wbC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViU2hh
cmVkV29ya2VySW1wbC5jcHAKQEAgLTM5LDggKzM5LDggQEAKICNpbmNsdWRlICJTY3JpcHRFeGVj
dXRpb25Db250ZXh0LmgiCiAjaW5jbHVkZSAiU2hhcmVkV29ya2VyQ29udGV4dC5oIgogI2luY2x1
ZGUgIlNoYXJlZFdvcmtlclRocmVhZC5oIgorI2luY2x1ZGUgIldvcmtlckRlYnVnZ2VyQWdlbnQu
aCIKICNpbmNsdWRlICJXb3JrZXJJbnNwZWN0b3JDb250cm9sbGVyLmgiCi0jaW5jbHVkZSAiV29y
a2VyU2NyaXB0RGVidWdTZXJ2ZXIuaCIKIAogI2luY2x1ZGUgIldlYk1lc3NhZ2VQb3J0Q2hhbm5l
bC5oIgogI2luY2x1ZGUgIldlYlN0cmluZy5oIgpAQCAtNTQsNiArNTQsNyBAQCBuYW1lc3BhY2Ug
V2ViS2l0IHsKIAogV2ViU2hhcmVkV29ya2VySW1wbDo6V2ViU2hhcmVkV29ya2VySW1wbChXZWJD
b21tb25Xb3JrZXJDbGllbnQqIGNsaWVudCkKICAgICA6IG1fY2xpZW50KGNsaWVudCkKKyAgICAs
IG1fcGF1c2VXb3JrZXJDb250ZXh0T25TdGFydChmYWxzZSkKIHsKIH0KIApAQCAtOTcsNyArOTgs
OCBAQCB2b2lkIFdlYlNoYXJlZFdvcmtlckltcGw6OmNvbm5lY3RUYXNrKFNjcmlwdEV4ZWN1dGlv
bkNvbnRleHQqIGNvbnRleHQsIFBhc3NPd25QdAogdm9pZCBXZWJTaGFyZWRXb3JrZXJJbXBsOjpz
dGFydFdvcmtlckNvbnRleHQoY29uc3QgV2ViVVJMJiB1cmwsIGNvbnN0IFdlYlN0cmluZyYgbmFt
ZSwgY29uc3QgV2ViU3RyaW5nJiB1c2VyQWdlbnQsIGNvbnN0IFdlYlN0cmluZyYgc291cmNlQ29k
ZSwgbG9uZyBsb25nKQogewogICAgIGluaXRpYWxpemVMb2FkZXIodXJsKTsKLSAgICBzZXRXb3Jr
ZXJUaHJlYWQoU2hhcmVkV29ya2VyVGhyZWFkOjpjcmVhdGUobmFtZSwgdXJsLCB1c2VyQWdlbnQs
IHNvdXJjZUNvZGUsICp0aGlzLCAqdGhpcykpOworICAgIFdvcmtlclRocmVhZFN0YXJ0TW9kZSBz
dGFydE1vZGUgPSBtX3BhdXNlV29ya2VyQ29udGV4dE9uU3RhcnQgPyBQYXVzZVdvcmtlckNvbnRl
eHRPblN0YXJ0IDogRG9udFBhdXNlV29ya2VyQ29udGV4dE9uU3RhcnQ7CisgICAgc2V0V29ya2Vy
VGhyZWFkKFNoYXJlZFdvcmtlclRocmVhZDo6Y3JlYXRlKG5hbWUsIHVybCwgdXNlckFnZW50LCBz
b3VyY2VDb2RlLCAqdGhpcywgKnRoaXMsIHN0YXJ0TW9kZSkpOwogICAgIHdvcmtlclRocmVhZCgp
LT5zdGFydCgpOwogfQogCkBAIC0xMTEsNiArMTEzLDI0IEBAIHZvaWQgV2ViU2hhcmVkV29ya2Vy
SW1wbDo6Y2xpZW50RGVzdHJveWVkKCkKICAgICBtX2NsaWVudCA9IDA7CiB9CiAKK3ZvaWQgV2Vi
U2hhcmVkV29ya2VySW1wbDo6cGF1c2VXb3JrZXJDb250ZXh0T25TdGFydCgpCit7CisgICAgbV9w
YXVzZVdvcmtlckNvbnRleHRPblN0YXJ0ID0gdHJ1ZTsKK30KKworc3RhdGljIHZvaWQgcmVzdW1l
V29ya2VyQ29udGV4dFRhc2soU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29udGV4dCwgYm9vbCkK
K3sKKyAgICBBU1NFUlQoY29udGV4dC0+aXNXb3JrZXJDb250ZXh0KCkpOworICAgIHN0YXRpY19j
YXN0PFdvcmtlckNvbnRleHQqPihjb250ZXh0KS0+d29ya2VySW5zcGVjdG9yQ29udHJvbGxlcigp
LT5yZXN1bWUoKTsKK30KKwordm9pZCBXZWJTaGFyZWRXb3JrZXJJbXBsOjpyZXN1bWVXb3JrZXJD
b250ZXh0KCkKK3sKKyAgICBtX3BhdXNlV29ya2VyQ29udGV4dE9uU3RhcnQgPSBmYWxzZTsKKyAg
ICBpZiAod29ya2VyVGhyZWFkKCkpCisgICAgICAgIHdvcmtlclRocmVhZCgpLT5ydW5Mb29wKCku
cG9zdFRhc2tGb3JNb2RlKGNyZWF0ZUNhbGxiYWNrVGFzayhyZXN1bWVXb3JrZXJDb250ZXh0VGFz
aywgdHJ1ZSksIFdvcmtlckRlYnVnZ2VyQWdlbnQ6OmRlYnVnZ2VyVGFza01vZGUpOworfQorCiBz
dGF0aWMgdm9pZCBjb25uZWN0VG9Xb3JrZXJDb250ZXh0SW5zcGVjdG9yVGFzayhTY3JpcHRFeGVj
dXRpb25Db250ZXh0KiBjb250ZXh0LCBib29sKQogewogICAgIEFTU0VSVChjb250ZXh0LT5pc1dv
cmtlckNvbnRleHQoKSk7CkBAIC0xMTksNyArMTM5LDcgQEAgc3RhdGljIHZvaWQgY29ubmVjdFRv
V29ya2VyQ29udGV4dEluc3BlY3RvclRhc2soU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29udGV4
dCwKIAogdm9pZCBXZWJTaGFyZWRXb3JrZXJJbXBsOjphdHRhY2hEZXZUb29scygpCiB7Ci0gICAg
d29ya2VyVGhyZWFkKCktPnJ1bkxvb3AoKS5wb3N0VGFzayhjcmVhdGVDYWxsYmFja1Rhc2soY29u
bmVjdFRvV29ya2VyQ29udGV4dEluc3BlY3RvclRhc2ssIHRydWUpKTsKKyAgICB3b3JrZXJUaHJl
YWQoKS0+cnVuTG9vcCgpLnBvc3RUYXNrRm9yTW9kZShjcmVhdGVDYWxsYmFja1Rhc2soY29ubmVj
dFRvV29ya2VyQ29udGV4dEluc3BlY3RvclRhc2ssIHRydWUpLCBXb3JrZXJEZWJ1Z2dlckFnZW50
OjpkZWJ1Z2dlclRhc2tNb2RlKTsKIH0KIAogc3RhdGljIHZvaWQgcmVjb25uZWN0VG9Xb3JrZXJD
b250ZXh0SW5zcGVjdG9yVGFzayhTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250ZXh0LCBjb25z
dCBTdHJpbmcmIHNhdmVkU3RhdGUpCkBAIC0xMjcsMTEgKzE0NywxMiBAQCBzdGF0aWMgdm9pZCBy
ZWNvbm5lY3RUb1dvcmtlckNvbnRleHRJbnNwZWN0b3JUYXNrKFNjcmlwdEV4ZWN1dGlvbkNvbnRl
eHQqIGNvbnRleAogICAgIEFTU0VSVChjb250ZXh0LT5pc1dvcmtlckNvbnRleHQoKSk7CiAgICAg
V29ya2VySW5zcGVjdG9yQ29udHJvbGxlciogaWMgPSBzdGF0aWNfY2FzdDxXb3JrZXJDb250ZXh0
Kj4oY29udGV4dCktPndvcmtlckluc3BlY3RvckNvbnRyb2xsZXIoKTsKICAgICBpYy0+cmVzdG9y
ZUluc3BlY3RvclN0YXRlRnJvbUNvb2tpZShzYXZlZFN0YXRlKTsKKyAgICBpYy0+cmVzdW1lKCk7
CiB9CiAKIHZvaWQgV2ViU2hhcmVkV29ya2VySW1wbDo6cmVhdHRhY2hEZXZUb29scyhjb25zdCBX
ZWJTdHJpbmcmIHNhdmVkU3RhdGUpCiB7Ci0gICAgd29ya2VyVGhyZWFkKCktPnJ1bkxvb3AoKS5w
b3N0VGFza0Zvck1vZGUoY3JlYXRlQ2FsbGJhY2tUYXNrKHJlY29ubmVjdFRvV29ya2VyQ29udGV4
dEluc3BlY3RvclRhc2ssIFN0cmluZyhzYXZlZFN0YXRlKSksIFdvcmtlclNjcmlwdERlYnVnU2Vy
dmVyOjpkZWJ1Z2dlclRhc2tNb2RlKTsKKyAgICB3b3JrZXJUaHJlYWQoKS0+cnVuTG9vcCgpLnBv
c3RUYXNrRm9yTW9kZShjcmVhdGVDYWxsYmFja1Rhc2socmVjb25uZWN0VG9Xb3JrZXJDb250ZXh0
SW5zcGVjdG9yVGFzaywgU3RyaW5nKHNhdmVkU3RhdGUpKSwgV29ya2VyRGVidWdnZXJBZ2VudDo6
ZGVidWdnZXJUYXNrTW9kZSk7CiB9CiAKIHN0YXRpYyB2b2lkIGRpc2Nvbm5lY3RGcm9tV29ya2Vy
Q29udGV4dEluc3BlY3RvclRhc2soU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29udGV4dCwgYm9v
bCkKQEAgLTE0Miw3ICsxNjMsNyBAQCBzdGF0aWMgdm9pZCBkaXNjb25uZWN0RnJvbVdvcmtlckNv
bnRleHRJbnNwZWN0b3JUYXNrKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIGNvbgogCiB2b2lkIFdl
YlNoYXJlZFdvcmtlckltcGw6OmRldGFjaERldlRvb2xzKCkKIHsKLSAgICB3b3JrZXJUaHJlYWQo
KS0+cnVuTG9vcCgpLnBvc3RUYXNrRm9yTW9kZShjcmVhdGVDYWxsYmFja1Rhc2soZGlzY29ubmVj
dEZyb21Xb3JrZXJDb250ZXh0SW5zcGVjdG9yVGFzaywgdHJ1ZSksIFdvcmtlclNjcmlwdERlYnVn
U2VydmVyOjpkZWJ1Z2dlclRhc2tNb2RlKTsKKyAgICB3b3JrZXJUaHJlYWQoKS0+cnVuTG9vcCgp
LnBvc3RUYXNrRm9yTW9kZShjcmVhdGVDYWxsYmFja1Rhc2soZGlzY29ubmVjdEZyb21Xb3JrZXJD
b250ZXh0SW5zcGVjdG9yVGFzaywgdHJ1ZSksIFdvcmtlckRlYnVnZ2VyQWdlbnQ6OmRlYnVnZ2Vy
VGFza01vZGUpOwogfQogCiBzdGF0aWMgdm9pZCBkaXNwYXRjaE9uSW5zcGVjdG9yQmFja2VuZFRh
c2soU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29udGV4dCwgY29uc3QgU3RyaW5nJiBtZXNzYWdl
KQpAQCAtMTUzLDcgKzE3NCw3IEBAIHN0YXRpYyB2b2lkIGRpc3BhdGNoT25JbnNwZWN0b3JCYWNr
ZW5kVGFzayhTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250ZXh0LCBjb25zCiAKIHZvaWQgV2Vi
U2hhcmVkV29ya2VySW1wbDo6ZGlzcGF0Y2hEZXZUb29sc01lc3NhZ2UoY29uc3QgV2ViU3RyaW5n
JiBtZXNzYWdlKQogewotICAgIHdvcmtlclRocmVhZCgpLT5ydW5Mb29wKCkucG9zdFRhc2tGb3JN
b2RlKGNyZWF0ZUNhbGxiYWNrVGFzayhkaXNwYXRjaE9uSW5zcGVjdG9yQmFja2VuZFRhc2ssIFN0
cmluZyhtZXNzYWdlKSksIFdvcmtlclNjcmlwdERlYnVnU2VydmVyOjpkZWJ1Z2dlclRhc2tNb2Rl
KTsKKyAgICB3b3JrZXJUaHJlYWQoKS0+cnVuTG9vcCgpLnBvc3RUYXNrRm9yTW9kZShjcmVhdGVD
YWxsYmFja1Rhc2soZGlzcGF0Y2hPbkluc3BlY3RvckJhY2tlbmRUYXNrLCBTdHJpbmcobWVzc2Fn
ZSkpLCBXb3JrZXJEZWJ1Z2dlckFnZW50OjpkZWJ1Z2dlclRhc2tNb2RlKTsKIH0KIAogV2ViV29y
a2VyQ2xpZW50KiBXZWJTaGFyZWRXb3JrZXJJbXBsOjpjbGllbnQoKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViU2hhcmVkV29ya2VySW1wbC5oIGIvU291cmNlL1dl
YktpdC9jaHJvbWl1bS9zcmMvV2ViU2hhcmVkV29ya2VySW1wbC5oCmluZGV4IDA5NTZkOTYuLjQz
N2JiMmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlNoYXJlZFdv
cmtlckltcGwuaAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJTaGFyZWRXb3Jr
ZXJJbXBsLmgKQEAgLTU2LDYgKzU2LDggQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCB0ZXJt
aW5hdGVXb3JrZXJDb250ZXh0KCk7CiAgICAgdmlydHVhbCB2b2lkIGNsaWVudERlc3Ryb3llZCgp
OwogCisgICAgdmlydHVhbCB2b2lkIHBhdXNlV29ya2VyQ29udGV4dE9uU3RhcnQoKTsKKyAgICB2
aXJ0dWFsIHZvaWQgcmVzdW1lV29ya2VyQ29udGV4dCgpOwogICAgIHZpcnR1YWwgdm9pZCBhdHRh
Y2hEZXZUb29scygpOwogICAgIHZpcnR1YWwgdm9pZCByZWF0dGFjaERldlRvb2xzKGNvbnN0IFdl
YlN0cmluZyYgc2F2ZWRTdGF0ZSk7CiAgICAgdmlydHVhbCB2b2lkIGRldGFjaERldlRvb2xzKCk7
CkBAIC03NCw2ICs3Niw3IEBAIHByaXZhdGU6CiAgICAgc3RhdGljIHZvaWQgY29ubmVjdFRhc2so
V2ViQ29yZTo6U2NyaXB0RXhlY3V0aW9uQ29udGV4dCosIFBhc3NPd25QdHI8V2ViQ29yZTo6TWVz
c2FnZVBvcnRDaGFubmVsPik7CiAKICAgICBXZWJDb21tb25Xb3JrZXJDbGllbnQqIG1fY2xpZW50
OworICAgIGJvb2wgbV9wYXVzZVdvcmtlckNvbnRleHRPblN0YXJ0OwogfTsKIAogfSAvLyBuYW1l
c3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJX
b3JrZXJDbGllbnRJbXBsLmNwcCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYldvcmtl
ckNsaWVudEltcGwuY3BwCmluZGV4IGZkMGIzNjUuLjk2ODI5NzMgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYldvcmtlckNsaWVudEltcGwuY3BwCisrKyBiL1NvdXJj
ZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYldvcmtlckNsaWVudEltcGwuY3BwCkBAIC04Nyw3ICs4
Nyw3IEBAIFdvcmtlckNvbnRleHRQcm94eSogV2ViV29ya2VyQ2xpZW50SW1wbDo6Y3JlYXRlV29y
a2VyQ29udGV4dFByb3h5KFdvcmtlciogd29ya2VyCiAKIHZvaWQgV2ViV29ya2VyQ2xpZW50SW1w
bDo6c3RhcnRXb3JrZXJDb250ZXh0KGNvbnN0IEtVUkwmIHNjcmlwdFVSTCwgY29uc3QgU3RyaW5n
JiB1c2VyQWdlbnQsIGNvbnN0IFN0cmluZyYgc291cmNlQ29kZSkKIHsKLSAgICBSZWZQdHI8RGVk
aWNhdGVkV29ya2VyVGhyZWFkPiB0aHJlYWQgPSBEZWRpY2F0ZWRXb3JrZXJUaHJlYWQ6OmNyZWF0
ZShzY3JpcHRVUkwsIHVzZXJBZ2VudCwgc291cmNlQ29kZSwgKnRoaXMsICp0aGlzKTsKKyAgICBS
ZWZQdHI8RGVkaWNhdGVkV29ya2VyVGhyZWFkPiB0aHJlYWQgPSBEZWRpY2F0ZWRXb3JrZXJUaHJl
YWQ6OmNyZWF0ZShzY3JpcHRVUkwsIHVzZXJBZ2VudCwgc291cmNlQ29kZSwgKnRoaXMsICp0aGlz
LCBEb250UGF1c2VXb3JrZXJDb250ZXh0T25TdGFydCk7CiAgICAgbV9wcm94eS0+d29ya2VyVGhy
ZWFkQ3JlYXRlZCh0aHJlYWQpOwogICAgIHRocmVhZC0+c3RhcnQoKTsKIH0KQEAgLTEzOCw4ICsx
MzgsOSBAQCB2b2lkIFdlYldvcmtlckNsaWVudEltcGw6OnBvc3RNZXNzYWdlVG9QYWdlSW5zcGVj
dG9yKGNvbnN0IFN0cmluZyYgbWVzc2FnZSkKICAgICBtX3Byb3h5LT5wb3N0TWVzc2FnZVRvUGFn
ZUluc3BlY3RvcihtZXNzYWdlKTsKIH0KIAotdm9pZCBXZWJXb3JrZXJDbGllbnRJbXBsOjp1cGRh
dGVJbnNwZWN0b3JTdGF0ZUNvb2tpZShjb25zdCBTdHJpbmcmKQordm9pZCBXZWJXb3JrZXJDbGll
bnRJbXBsOjp1cGRhdGVJbnNwZWN0b3JTdGF0ZUNvb2tpZShjb25zdCBTdHJpbmcmIGNvb2tpZSkK
IHsKKyAgICBtX3Byb3h5LT51cGRhdGVJbnNwZWN0b3JTdGF0ZUNvb2tpZShjb29raWUpOwogfQog
I2VuZGlmIC8vIEVOQUJMRShJTlNQRUNUT1IpCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
Y2hyb21pdW0vc3JjL1dlYldvcmtlckNsaWVudEltcGwuaCBiL1NvdXJjZS9XZWJLaXQvY2hyb21p
dW0vc3JjL1dlYldvcmtlckNsaWVudEltcGwuaAppbmRleCA2OGExOTA0Li4zMjQ0NDMyIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJXb3JrZXJDbGllbnRJbXBsLmgK
KysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViV29ya2VyQ2xpZW50SW1wbC5oCkBA
IC01MSw3ICs1MSw3IEBAIG5hbWVzcGFjZSBXZWJLaXQgewogY2xhc3MgV2ViV29ya2VyOwogY2xh
c3MgV2ViRnJhbWVJbXBsOwogCi0vLyBUaGlzIGNsYXNzIHByb3ZpZGVzIGNocm9taXVtIGltcGxl
bWVudGF0aW9uIGZvciBXb3JrZXJDb250ZXh0UHJveHQsIFdvcmtlck9iamVjdFByb3h5IGFtZCBX
b3JrZXJMb2FkZXJQcm94eQorLy8gVGhpcyBjbGFzcyBwcm92aWRlcyBjaHJvbWl1bSBpbXBsZW1l
bnRhdGlvbiBmb3IgV29ya2VyQ29udGV4dFByb3h5LCBXb3JrZXJPYmplY3RQcm94eSBhbWQgV29y
a2VyTG9hZGVyUHJveHkKIC8vIGZvciBpbi1wcm9jIGRlZGljYXRlZCB3b3JrZXJzLiBJdCBhbHNv
IGFjdHMgYXMgYSBicmlkZ2UgZm9yIHdvcmtlcnMgdG8gY2hyb21pdW0gaW1wbGVtZW50YXRpb24g
b2YgZmlsZSBzeXN0ZW1zLAogLy8gZGF0YWJhc2VzIGFuZCBvdGhlciByZWxhdGVkIGZ1bmN0aW9u
YWxpdHkuCiAvLwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViV29y
a2VySW1wbC5jcHAgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJXb3JrZXJJbXBsLmNw
cAppbmRleCBkYzE2M2E1Li44MzcyZjMzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9t
aXVtL3NyYy9XZWJXb3JrZXJJbXBsLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Ny
Yy9XZWJXb3JrZXJJbXBsLmNwcApAQCAtNDIsOCArNDIsOCBAQAogI2luY2x1ZGUgIlNlY3VyaXR5
T3JpZ2luLmgiCiAjaW5jbHVkZSAiU2VyaWFsaXplZFNjcmlwdFZhbHVlLmgiCiAjaW5jbHVkZSAi
U3Vic3RpdHV0ZURhdGEuaCIKKyNpbmNsdWRlICJXb3JrZXJEZWJ1Z2dlckFnZW50LmgiCiAjaW5j
bHVkZSAiV29ya2VySW5zcGVjdG9yQ29udHJvbGxlci5oIgotI2luY2x1ZGUgIldvcmtlclNjcmlw
dERlYnVnU2VydmVyLmgiCiAjaW5jbHVkZSA8d3RmL093blB0ci5oPgogI2luY2x1ZGUgPHd0Zi9U
aHJlYWRpbmcuaD4KIApAQCAtMTA5LDcgKzEwOSw3IEBAIHZvaWQgV2ViV29ya2VySW1wbDo6c3Rh
cnRXb3JrZXJDb250ZXh0KGNvbnN0IFdlYlVSTCYgc2NyaXB0VXJsLAogICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgV2ViU3RyaW5nJiBzb3VyY2VDb2RlKQogewog
ICAgIGluaXRpYWxpemVMb2FkZXIoc2NyaXB0VXJsKTsKLSAgICBzZXRXb3JrZXJUaHJlYWQoRGVk
aWNhdGVkV29ya2VyVGhyZWFkOjpjcmVhdGUoc2NyaXB0VXJsLCB1c2VyQWdlbnQsIHNvdXJjZUNv
ZGUsICp0aGlzLCAqdGhpcykpOworICAgIHNldFdvcmtlclRocmVhZChEZWRpY2F0ZWRXb3JrZXJU
aHJlYWQ6OmNyZWF0ZShzY3JpcHRVcmwsIHVzZXJBZ2VudCwgc291cmNlQ29kZSwgKnRoaXMsICp0
aGlzLCBEb250UGF1c2VXb3JrZXJDb250ZXh0T25TdGFydCkpOwogICAgIC8vIFdvcmtlciBpbml0
aWFsaXphdGlvbiBtZWFucyBhIHBlbmRpbmcgYWN0aXZpdHkuCiAgICAgcmVwb3J0UGVuZGluZ0Fj
dGl2aXR5KHRydWUpOwogICAgIHdvcmtlclRocmVhZCgpLT5zdGFydCgpOwpAQCAtMTcyLDcgKzE3
Miw3IEBAIHN0YXRpYyB2b2lkIGRpc2Nvbm5lY3RGcm9tV29ya2VyQ29udGV4dEluc3BlY3RvclRh
c2soU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29uCiAKIHZvaWQgV2ViV29ya2VySW1wbDo6ZGV0
YWNoRGV2VG9vbHMoKQogewotICAgIHdvcmtlclRocmVhZCgpLT5ydW5Mb29wKCkucG9zdFRhc2tG
b3JNb2RlKGNyZWF0ZUNhbGxiYWNrVGFzayhkaXNjb25uZWN0RnJvbVdvcmtlckNvbnRleHRJbnNw
ZWN0b3JUYXNrLCB0cnVlKSwgV29ya2VyU2NyaXB0RGVidWdTZXJ2ZXI6OmRlYnVnZ2VyVGFza01v
ZGUpOworICAgIHdvcmtlclRocmVhZCgpLT5ydW5Mb29wKCkucG9zdFRhc2tGb3JNb2RlKGNyZWF0
ZUNhbGxiYWNrVGFzayhkaXNjb25uZWN0RnJvbVdvcmtlckNvbnRleHRJbnNwZWN0b3JUYXNrLCB0
cnVlKSwgV29ya2VyRGVidWdnZXJBZ2VudDo6ZGVidWdnZXJUYXNrTW9kZSk7CiB9CiAKIHN0YXRp
YyB2b2lkIGRpc3BhdGNoT25JbnNwZWN0b3JCYWNrZW5kVGFzayhTY3JpcHRFeGVjdXRpb25Db250
ZXh0KiBjb250ZXh0LCBjb25zdCBTdHJpbmcmIG1lc3NhZ2UpCkBAIC0xODMsNyArMTgzLDcgQEAg
c3RhdGljIHZvaWQgZGlzcGF0Y2hPbkluc3BlY3RvckJhY2tlbmRUYXNrKFNjcmlwdEV4ZWN1dGlv
bkNvbnRleHQqIGNvbnRleHQsIGNvbnMKIAogdm9pZCBXZWJXb3JrZXJJbXBsOjpkaXNwYXRjaERl
dlRvb2xzTWVzc2FnZShjb25zdCBXZWJTdHJpbmcmIG1lc3NhZ2UpCiB7Ci0gICAgd29ya2VyVGhy
ZWFkKCktPnJ1bkxvb3AoKS5wb3N0VGFza0Zvck1vZGUoY3JlYXRlQ2FsbGJhY2tUYXNrKGRpc3Bh
dGNoT25JbnNwZWN0b3JCYWNrZW5kVGFzaywgU3RyaW5nKG1lc3NhZ2UpKSwgV29ya2VyU2NyaXB0
RGVidWdTZXJ2ZXI6OmRlYnVnZ2VyVGFza01vZGUpOworICAgIHdvcmtlclRocmVhZCgpLT5ydW5M
b29wKCkucG9zdFRhc2tGb3JNb2RlKGNyZWF0ZUNhbGxiYWNrVGFzayhkaXNwYXRjaE9uSW5zcGVj
dG9yQmFja2VuZFRhc2ssIFN0cmluZyhtZXNzYWdlKSksIFdvcmtlckRlYnVnZ2VyQWdlbnQ6OmRl
YnVnZ2VyVGFza01vZGUpOwogfQogCiAjZWxzZQo=
</data>

          </attachment>
      

    </bug>

</bugzilla>