<?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>205905</bug_id>
          
          <creation_ts>2020-01-07 21:16:40 -0800</creation_ts>
          <short_desc>Reduce binary size by purging C++ type information in Objective-C fields and parameters</short_desc>
          <delta_ts>2020-01-09 19:54:22 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          <see_also>https://bugs.webkit.org/show_bug.cgi?id=205968</see_also>
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Yusuke Suzuki">ysuzuki</reporter>
          <assigned_to name="Yusuke Suzuki">ysuzuki</assigned_to>
          <cc>annulen</cc>
    
    <cc>benjamin</cc>
    
    <cc>cdumez</cc>
    
    <cc>cmarcelo</cc>
    
    <cc>dbates</cc>
    
    <cc>eric.carlson</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>glenn</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>jer.noble</cc>
    
    <cc>keith_miller</cc>
    
    <cc>mark.lam</cc>
    
    <cc>msaboff</cc>
    
    <cc>philipj</cc>
    
    <cc>ryuan.choi</cc>
    
    <cc>saam</cc>
    
    <cc>sam</cc>
    
    <cc>sergio</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>tzagallo</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1603936</commentid>
    <comment_count>0</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2020-01-07 21:16:40 -0800</bug_when>
    <thetext>Reduce binary size by purging C++ type information in Objective-C fields and parameters</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1603939</commentid>
    <comment_count>1</comment_count>
      <attachid>387068</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2020-01-07 21:23:53 -0800</bug_when>
    <thetext>Created attachment 387068
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1603941</commentid>
    <comment_count>2</comment_count>
      <attachid>387070</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2020-01-07 21:31:27 -0800</bug_when>
    <thetext>Created attachment 387070
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1603942</commentid>
    <comment_count>3</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2020-01-07 21:31:59 -0800</bug_when>
    <thetext>&lt;rdar://problem/58398934&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1603944</commentid>
    <comment_count>4</comment_count>
      <attachid>387071</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2020-01-07 21:38:57 -0800</bug_when>
    <thetext>Created attachment 387071
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1603946</commentid>
    <comment_count>5</comment_count>
      <attachid>387071</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2020-01-07 21:43:01 -0800</bug_when>
    <thetext>Comment on attachment 387071
Patch

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

&gt; Source/WTF/ChangeLog:19
&gt; +        This patch introduces NativeRef&lt;T&gt;. This is similar to Ref while it does not have any ownership. So it

Native =&gt; Naked.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1603947</commentid>
    <comment_count>6</comment_count>
      <attachid>387071</attachid>
    <who name="Saam Barati">saam</who>
    <bug_when>2020-01-07 21:44:34 -0800</bug_when>
    <thetext>Comment on attachment 387071
Patch

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

Nice!!

r=me

&gt; Source/WTF/ChangeLog:8
&gt; +        Objective-C has reflection mechanism. This means that fields, methods, and their types

&quot;has reflection&quot; =&gt; &quot;has a reflection&quot;

&gt; Source/WTF/ChangeLog:24
&gt; +            2. T* / T&amp; is in Objective-C fields or paramter types (including a return type).

paramter =&gt; parameter</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1603948</commentid>
    <comment_count>7</comment_count>
      <attachid>387071</attachid>
    <who name="Saam Barati">saam</who>
    <bug_when>2020-01-07 21:47:07 -0800</bug_when>
    <thetext>Comment on attachment 387071
Patch

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

&gt;&gt; Source/WTF/ChangeLog:8
&gt;&gt; +        Objective-C has reflection mechanism. This means that fields, methods, and their types
&gt; 
&gt; &quot;has reflection&quot; =&gt; &quot;has a reflection&quot;

actually, probably this should just be:
&quot;mechanism&quot; =&gt; &quot;mechanisms&quot;

since ObjC has more than one kind of reflection</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1603950</commentid>
    <comment_count>8</comment_count>
      <attachid>387073</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2020-01-07 21:50:33 -0800</bug_when>
    <thetext>Created attachment 387073
Patch

iOS build fix</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1603954</commentid>
    <comment_count>9</comment_count>
      <attachid>387073</attachid>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2020-01-07 22:06:25 -0800</bug_when>
    <thetext>Comment on attachment 387073
Patch

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

&gt; Source/WTF/ChangeLog:36
&gt; +           becomes available in our platforms, we can consider it. But using NakedRef / NakedPtr is not harmless.

Do you mean &quot;is harmless&quot; instead of &quot;is not harmless&quot;, as in there is effectively no cost to using NakedRef / NakedPtr?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1603963</commentid>
    <comment_count>10</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2020-01-07 22:32:34 -0800</bug_when>
    <thetext>I&apos;m now looking WebKitLegacy crash.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1603966</commentid>
    <comment_count>11</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2020-01-07 22:39:44 -0800</bug_when>
    <thetext>(In reply to Yusuke Suzuki from comment #10)
&gt; I&apos;m now looking WebKitLegacy crash.

OK, found the thing. Signature in WebViewInternal.h and WebView.mm were different.
I really think this must be compile error even in Objective-C!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1603968</commentid>
    <comment_count>12</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2020-01-07 22:40:13 -0800</bug_when>
    <thetext>(In reply to Yusuke Suzuki from comment #11)
&gt; (In reply to Yusuke Suzuki from comment #10)
&gt; &gt; I&apos;m now looking WebKitLegacy crash.
&gt; 
&gt; OK, found the thing. Signature in WebViewInternal.h and WebView.mm were
&gt; different.
&gt; I really think this must be compile error even in Objective-C!

I&apos;ll double-check and upload the patch for EWS before landing.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1603979</commentid>
    <comment_count>13</comment_count>
      <attachid>387081</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2020-01-07 23:27:56 -0800</bug_when>
    <thetext>Created attachment 387081
Patch

WebKitLegacy fix</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1604177</commentid>
    <comment_count>14</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2020-01-08 11:28:11 -0800</bug_when>
    <thetext>How do we ensure that people correctly use Naked&lt;&gt; in future? It&apos;s going to be very easy for new code to regress this again, right?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1604224</commentid>
    <comment_count>15</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2020-01-08 12:08:49 -0800</bug_when>
    <thetext>(In reply to Simon Fraser (smfr) from comment #14)
&gt; How do we ensure that people correctly use Naked&lt;&gt; in future? It&apos;s going to
&gt; be very easy for new code to regress this again, right?

I think we should track binary size as we are doing in performance testing.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1604311</commentid>
    <comment_count>16</comment_count>
      <attachid>387147</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2020-01-08 15:14:31 -0800</bug_when>
    <thetext>Created attachment 387147
Patch

Fix</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1604418</commentid>
    <comment_count>17</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2020-01-08 17:40:41 -0800</bug_when>
    <thetext>I&apos;ve ensured that iOS simulator API tests pass locally.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1604419</commentid>
    <comment_count>18</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2020-01-08 17:42:46 -0800</bug_when>
    <thetext>Committed r254241: &lt;https://trac.webkit.org/changeset/254241&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1604964</commentid>
    <comment_count>19</comment_count>
    <who name="Sam Weinig">sam</who>
    <bug_when>2020-01-09 17:56:45 -0800</bug_when>
    <thetext>(In reply to Yusuke Suzuki from comment #15)
&gt; (In reply to Simon Fraser (smfr) from comment #14)
&gt; &gt; How do we ensure that people correctly use Naked&lt;&gt; in future? It&apos;s going to
&gt; &gt; be very easy for new code to regress this again, right?
&gt; 
&gt; I think we should track binary size as we are doing in performance testing.

Is this something we could automate at build time? e.g. could we add a script phase (similar to check-for-weak-vtables-and-externals) that checks for this specific issue,  C++ type information in Objective-C fields and parameters?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1604965</commentid>
    <comment_count>20</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2020-01-09 17:59:54 -0800</bug_when>
    <thetext>(In reply to Sam Weinig from comment #19)
&gt; (In reply to Yusuke Suzuki from comment #15)
&gt; &gt; (In reply to Simon Fraser (smfr) from comment #14)
&gt; &gt; &gt; How do we ensure that people correctly use Naked&lt;&gt; in future? It&apos;s going to
&gt; &gt; &gt; be very easy for new code to regress this again, right?
&gt; &gt; 
&gt; &gt; I think we should track binary size as we are doing in performance testing.
&gt; 
&gt; Is this something we could automate at build time? e.g. could we add a
&gt; script phase (similar to check-for-weak-vtables-and-externals) that checks
&gt; for this specific issue,  C++ type information in Objective-C fields and
&gt; parameters?

PoC of this exists here :) https://bugs.webkit.org/show_bug.cgi?id=205968
Discussed with Simon and we can put this type of script as the same way to Scripts/check-for-exit-time-destructors etc.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1604995</commentid>
    <comment_count>21</comment_count>
    <who name="Sam Weinig">sam</who>
    <bug_when>2020-01-09 19:54:22 -0800</bug_when>
    <thetext>(In reply to Yusuke Suzuki from comment #20)
&gt; (In reply to Sam Weinig from comment #19)
&gt; &gt; (In reply to Yusuke Suzuki from comment #15)
&gt; &gt; &gt; (In reply to Simon Fraser (smfr) from comment #14)
&gt; &gt; &gt; &gt; How do we ensure that people correctly use Naked&lt;&gt; in future? It&apos;s going to
&gt; &gt; &gt; &gt; be very easy for new code to regress this again, right?
&gt; &gt; &gt; 
&gt; &gt; &gt; I think we should track binary size as we are doing in performance testing.
&gt; &gt; 
&gt; &gt; Is this something we could automate at build time? e.g. could we add a
&gt; &gt; script phase (similar to check-for-weak-vtables-and-externals) that checks
&gt; &gt; for this specific issue,  C++ type information in Objective-C fields and
&gt; &gt; parameters?
&gt; 
&gt; PoC of this exists here :) https://bugs.webkit.org/show_bug.cgi?id=205968
&gt; Discussed with Simon and we can put this type of script as the same way to
&gt; Scripts/check-for-exit-time-destructors etc.

Very nice.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>387068</attachid>
            <date>2020-01-07 21:23:53 -0800</date>
            <delta_ts>2020-01-07 21:31:25 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-205905-20200107212352.patch</filename>
            <type>text/plain</type>
            <size>113502</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjU0MTUyCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA4
MmRlZmYyOGUyYjlkNGZmMjA4N2FlNGIwODE2MWJjZGRhYmUzMmMwLi43YTJiNzdiOTU4OWJjZjIx
OWM1YTRlY2IzYWE3OWQ4MmZmNDU0ZDcxIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxMyBAQAorMjAyMC0wMS0wNyAgWXVzdWtlIFN1enVraSAgPHlzdXp1a2lAYXBwbGUuY29t
PgorCisgICAgICAgIFJlZHVjZSBiaW5hcnkgc2l6ZSBieSBwdXJnaW5nIEMrKyB0eXBlIGluZm9y
bWF0aW9uIGluIE9iamVjdGl2ZS1DIGZpZWxkcyBhbmQgcGFyYW1ldGVycworICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjA1OTA1CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBBUEkvSlNXcmFwcGVyTWFwLm1t
OgorICAgICAgICAoLVtKU09iakNDbGFzc0luZm8gZGVhbGxvY10pOgorCiAyMDIwLTAxLTA3ICBZ
dXN1a2UgU3V6dWtpICA8eXN1enVraUBhcHBsZS5jb20+CiAKICAgICAgICAgW0pTQ10gUmVtb3Zl
IHZtIGFjY2Vzc29yIGluIEpTVmlydHVhbE1hY2hpbmUgdG8gcmVkdWNlIGJpbmFyeSBzaXplCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5nZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmlu
ZGV4IDliMzIxMGNmYzUyOGQxMzdiOTI4ZDVhZmJiZmEyMDY3ZTIyNWIyMDQuLmNlMTkzNmNkMTkx
YzJhYjdhMjE4NWI4ZGRlNjI3NGI2MTI3MzQxN2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNDQgQEAKKzIwMjAt
MDEtMDcgIFl1c3VrZSBTdXp1a2kgIDx5c3V6dWtpQGFwcGxlLmNvbT4KKworICAgICAgICBSZWR1
Y2UgYmluYXJ5IHNpemUgYnkgcHVyZ2luZyBDKysgdHlwZSBpbmZvcm1hdGlvbiBpbiBPYmplY3Rp
dmUtQyBmaWVsZHMgYW5kIHBhcmFtZXRlcnMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTIwNTkwNQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgIE9iamVjdGl2ZS1DIGhhcyByZWZsZWN0aW9uIG1lY2hhbmlzbS4g
VGhpcyBtZWFucyB0aGF0IGZpZWxkcywgbWV0aG9kcywgYW5kIHRoZWlyIHR5cGVzCisgICAgICAg
IG5lZWQgdG8gaG9sZCBpdHMgc3RyaW5nIHJlcHJlc2VudGF0aW9ucyBpbiBiaW5hcnkgZXZlbiBp
ZiB3ZSBhcmUgdXNpbmcgcmVsZWFzZSBidWlsZC4KKyAgICAgICAgV2hpbGUgdHlwaWNhbCBPYmpl
Y3RpdmUtQyBjbGFzcyBkb2VzIG5vdCBoYXZlIGxhcmdlIHNpemUgb2YgdHlwZSBuYW1lcywgQysr
IHN0cnVjdCAvIGNsYXNzCisgICAgICAgIGhhcyB2ZXJ5IGxhcmdlIG9uZSwgYW5kIHB1dHRpbmcg
dGhlbSBpbiBPYmplY3RpdmUtQyBtZXRob2QgbmFtZXMsIHBhcmFtZXRlciB0eXBlcywgb3IgZmll
bGRzCisgICAgICAgIG1ha2VzIGJpbmFyeSBzaXplIHZlcnkgbGFyZ2UuCisKKyAgICAgICAgSW50
ZXJlc3RpbmcgdGhpbmcgaXMgdGhhdCB0eXBlIGluZm9ybWF0aW9uIGlzIGdhdGhlcmVkIHdoZW4g
cGFyYW1ldGVyIGlzIGEgQysrIHBvaW50ZXIsIHJlZmVyZW5jZSwKKyAgICAgICAgb3IgdmFsdWUu
IEFuZCBpdCBnYXRoZXJzIG9uZS1sZXZlbCBkZWVwIGluZm9ybWF0aW9uIGZyb20gdGhpcyBwb2lu
dGVyIGV0Yy4gVGhpcyBtZWFucyB0aGF0LCBpZgorICAgICAgICB3ZSB1c2UgUmVmUHRyPFQ+LCBj
b2xsZWN0ZWQgdHlwZSBpbmZvcm1hdGlvbiBpcyB0aGUgb25lIG9mIFJlZlB0ciwgbm90IG9uZSBv
ZiBULiBTbyBpdCBiZWNvbWVzIHNpZ25pZmljYW50bHkKKyAgICAgICAgc21hbGxlci4KKworICAg
ICAgICBUaGlzIHBhdGNoIGludHJvZHVjZXMgTmF0aXZlUmVmPFQ+LiBUaGlzIGlzIHNpbWlsYXIg
dG8gUmVmIHdoaWxlIGl0IGRvZXMgbm90IGhhdmUgYW55IG93bmVyc2hpcC4gU28gaXQKKyAgICAg
ICAgaXMganVzdCBhIHdyYXBwZXIgYXJvdW5kIFQmLiBXZSBhbHJlYWR5IGhhdmUgTmF0aXZlUHRy
PFQ+LiBBbmQgdXNlIE5hdGl2ZVJlZjxUPiAvIE5hdGl2ZVB0cjxUPiBpbnN0ZWFkCisgICAgICAg
IG9mIFQmIGFuZCBUKiBpZiwKKworICAgICAgICAgICAgMS4gVCBpcyBDKysgY2xhc3MuCisgICAg
ICAgICAgICAyLiBUKiAvIFQmIGlzIGluIE9iamVjdGl2ZS1DIGZpZWxkcyBvciBwYXJhbXRlciB0
eXBlcyAoaW5jbHVkaW5nIGEgcmV0dXJuIHR5cGUpLgorCisgICAgICAgIFRoZW4sIHRoZXNlIHR5
cGUgaW5mb3JtYXRpb24gaXMgb25lIG9mIE5hdGl2ZVJlZjxUPiAvIE5hdGl2ZVB0cjxUPiBpbnN0
ZWFkIG9mIFQsIGFuZCB3ZSBjYW4gcmVkdWNlIGJpbmFyeSBzaXplLgorCisgICAgICAgIFRoaXMg
cGF0Y2ggc2F2ZXMgNjAwfktCIGluIGJpbmFyeSBzaXplLgorCisgICAgICAgICogV1RGLnhjb2Rl
cHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogd3RmL0NNYWtlTGlzdHMudHh0OgorICAg
ICAgICAqIHd0Zi9OYWtlZFJlZi5oOiBBZGRlZC4KKyAgICAgICAgKFdURjo6TmFrZWRSZWY6Ok5h
a2VkUmVmKToKKyAgICAgICAgKFdURjo6TmFrZWRSZWY6Om9wZXJhdG9yLT4gY29uc3QpOgorICAg
ICAgICAoV1RGOjpOYWtlZFJlZjo6Z2V0IGNvbnN0KToKKyAgICAgICAgKFdURjo6TmFrZWRSZWY6
Om9wZXJhdG9yIFQmIGNvbnN0KToKKyAgICAgICAgKFdURjo6TmFrZWRSZWY6Om9wZXJhdG9yISBj
b25zdCk6CisgICAgICAgIChXVEY6Oj0pOgorICAgICAgICAoV1RGOjpOYWtlZFJlZjxUPjo6c3dh
cCk6CisgICAgICAgIChXVEY6OnN3YXApOgorCiAyMDIwLTAxLTA3ICBDYXJsb3MgR2FyY2lhIENh
bXBvcyAgPGNnYXJjaWFAaWdhbGlhLmNvbT4KIAogICAgICAgICBbR1RLXVtXUEVdIEFkZCBBUEkg
dG8gc2V0IHB1cnBvc2UgYW5kIGhpbnRzIG9mIGFjdGl2ZSBlZGl0YWJsZSBlbGVtZW50IHRvIGlu
cHV0IG1ldGhvZHMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJj
ZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCBjNWY2Mjk5YTk2YWNjYzUxMWIzOTU5OTBmNjhiNGQx
ZWQ4NDg1MmY0Li4yZDNlNWY4MjllYmVkYjlhYWEyZDIwNTM4ZDE2YjViMDk0NDdhY2Y1IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMjEgQEAKKzIwMjAtMDEtMDcgIFl1c3VrZSBTdXp1a2kgIDx5c3V6
dWtpQGFwcGxlLmNvbT4KKworICAgICAgICBSZWR1Y2UgYmluYXJ5IHNpemUgYnkgcHVyZ2luZyBD
KysgdHlwZSBpbmZvcm1hdGlvbiBpbiBPYmplY3RpdmUtQyBmaWVsZHMgYW5kIHBhcmFtZXRlcnMK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwNTkwNQor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIE5vIGJlaGF2
aW9yIGNoYW5nZS4KKworICAgICAgICAqIHBhZ2UvbWFjL1dlYkNvcmVGcmFtZVZpZXcuaDoKKyAg
ICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9XZWJHTExheWVyLmg6CisgICAgICAgICog
cGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvV2ViR0xMYXllci5tbToKKyAgICAgICAgKC1bV2ViR0xM
YXllciBpbml0V2l0aEdyYXBoaWNzQ29udGV4dEdMOl0pOgorICAgICAgICAqIHBsYXRmb3JtL21h
Yy9TY3JvbGxBbmltYXRvck1hYy5tbToKKyAgICAgICAgKC1bV2ViU2Nyb2xsQW5pbWF0aW9uSGVs
cGVyRGVsZWdhdGUgaW5pdFdpdGhTY3JvbGxBbmltYXRvcjpdKToKKyAgICAgICAgKC1bV2ViU2Ny
b2xsQW5pbWF0aW9uSGVscGVyRGVsZWdhdGUgaW52YWxpZGF0ZV0pOgorICAgICAgICAoLVtXZWJT
Y3JvbGxlckltcERlbGVnYXRlIHNjcm9sbEFuaW1hdG9yXSk6CisKIDIwMjAtMDEtMDcgIFJ5YW4g
SGFkZGFkICA8cnlhbmhhZGRhZEBhcHBsZS5jb20+CiAKICAgICAgICAgVW5yZXZpZXdlZCwgcm9s
bGluZyBvdXQgcjI1NDE0NC4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIv
U291cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5kZXggMzEzZTQwN2YxNTYwZDljOTY1ZGE5ZGQyZTU0
ZTg0ZmJlYTJhNmI3Ny4uYmI1YWM5ZDVkYzk4ZWVkNDk0YTFhODY0MDA1NmMxZTM0YTkyYWZkNiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9D
aGFuZ2VMb2cKQEAgLTEsMyArMSw2NSBAQAorMjAyMC0wMS0wNyAgWXVzdWtlIFN1enVraSAgPHlz
dXp1a2lAYXBwbGUuY29tPgorCisgICAgICAgIFJlZHVjZSBiaW5hcnkgc2l6ZSBieSBwdXJnaW5n
IEMrKyB0eXBlIGluZm9ybWF0aW9uIGluIE9iamVjdGl2ZS1DIGZpZWxkcyBhbmQgcGFyYW1ldGVy
cworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjA1OTA1
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBOZXR3
b3JrUHJvY2Vzcy9jb2NvYS9OZXR3b3JrU2Vzc2lvbkNvY29hLm1tOgorICAgICAgICAoLVtXS05l
dHdvcmtTZXNzaW9uRGVsZWdhdGUgaW5pdFdpdGhOZXR3b3JrU2Vzc2lvbjp3cmFwcGVyOndpdGhD
cmVkZW50aWFsczpdKToKKyAgICAgICAgKiBTaGFyZWQvQVBJL0NvY29hL1dLQnJvd3NpbmdDb250
ZXh0SGFuZGxlLm1tOgorICAgICAgICAoLVtXS0Jyb3dzaW5nQ29udGV4dEhhbmRsZSBfaW5pdFdp
dGhQYWdlUHJveHk6XSk6CisgICAgICAgICgtW1dLQnJvd3NpbmdDb250ZXh0SGFuZGxlIF9pbml0
V2l0aFBhZ2U6XSk6CisgICAgICAgICogU2hhcmVkL0FQSS9Db2NvYS9XS0Jyb3dzaW5nQ29udGV4
dEhhbmRsZUludGVybmFsLmg6CisgICAgICAgICogU2hhcmVkL0FQSS9Db2NvYS9fV0tSZW1vdGVP
YmplY3RSZWdpc3RyeS5tbToKKyAgICAgICAgKC1bX1dLUmVtb3RlT2JqZWN0UmVnaXN0cnkgX2lu
aXRXaXRoV2ViUGFnZTpdKToKKyAgICAgICAgKC1bX1dLUmVtb3RlT2JqZWN0UmVnaXN0cnkgX2lu
aXRXaXRoV2ViUGFnZVByb3h5Ol0pOgorICAgICAgICAqIFNoYXJlZC9BUEkvQ29jb2EvX1dLUmVt
b3RlT2JqZWN0UmVnaXN0cnlJbnRlcm5hbC5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29j
b2EvV0tXZWJWaWV3Lm1tOgorICAgICAgICAoLVtXS1dlYlZpZXcgX3BhZ2VdKToKKyAgICAgICAg
KiBVSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlld0ludGVybmFsLmg6CisgICAgICAgICogVUlQ
cm9jZXNzL0FQSS9Db2NvYS9XS1dlYnNpdGVEYXRhU3RvcmUubW06CisgICAgICAgICgtW1dLV2Vi
c2l0ZURhdGFTdG9yZSBfZ2V0QWxsU3RvcmFnZUFjY2Vzc0VudHJpZXNGb3I6Y29tcGxldGlvbkhh
bmRsZXI6XSk6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tUaHVtYm5haWxWaWV3
Lm1tOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvbWFjL1dLVmlldy5tbToKKyAgICAgICAgKC1b
V0tWaWV3IGluaXRXaXRoRnJhbWU6cHJvY2Vzc1Bvb2w6Y29uZmlndXJhdGlvbjpdKToKKyAgICAg
ICAgKiBVSVByb2Nlc3MvQ29jb2EvV2ViVmlld0ltcGwubW06CisgICAgICAgIChXZWJLaXQ6Oldl
YlZpZXdJbXBsOjpXZWJWaWV3SW1wbCk6CisgICAgICAgIChXZWJLaXQ6OldlYlZpZXdJbXBsOjpz
ZXRMYXlvdXRNb2RlKToKKyAgICAgICAgKFdlYktpdDo6V2ViVmlld0ltcGw6OmZ1bGxTY3JlZW5X
aW5kb3dDb250cm9sbGVyKToKKyAgICAgICAgKFdlYktpdDo6V2ViVmlld0ltcGw6OnJlbW90ZU9i
amVjdFJlZ2lzdHJ5KToKKyAgICAgICAgKiBVSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXcuaDoK
KyAgICAgICAgKiBVSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXcubW06CisgICAgICAgICgtW1dL
Q29udGVudFZpZXcgaW5pdFdpdGhGcmFtZTpwcm9jZXNzUG9vbDpjb25maWd1cmF0aW9uOndlYlZp
ZXc6XSk6CisgICAgICAgICogVUlQcm9jZXNzL21hYy9XS0Z1bGxTY3JlZW5XaW5kb3dDb250cm9s
bGVyLmg6CisgICAgICAgICogVUlQcm9jZXNzL21hYy9XS0Z1bGxTY3JlZW5XaW5kb3dDb250cm9s
bGVyLm1tOgorICAgICAgICAoLVtXS0Z1bGxTY3JlZW5XaW5kb3dDb250cm9sbGVyIGluaXRXaXRo
V2luZG93OndlYlZpZXc6cGFnZTpdKToKKyAgICAgICAgKiBVSVByb2Nlc3MvbWFjL1dLSW1tZWRp
YXRlQWN0aW9uQ29udHJvbGxlci5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9tYWMvV0tJbW1lZGlh
dGVBY3Rpb25Db250cm9sbGVyLm1tOgorICAgICAgICAoLVtXS0ltbWVkaWF0ZUFjdGlvbkNvbnRy
b2xsZXIgaW5pdFdpdGhQYWdlOnZpZXc6dmlld0ltcGw6cmVjb2duaXplcjpdKToKKyAgICAgICAg
KC1bV0tJbW1lZGlhdGVBY3Rpb25Db250cm9sbGVyIF9hbmltYXRpb25Db250cm9sbGVyRm9yRGF0
YURldGVjdGVkVGV4dF0pOgorICAgICAgICAoLVtXS0ltbWVkaWF0ZUFjdGlvbkNvbnRyb2xsZXIg
X2FuaW1hdGlvbkNvbnRyb2xsZXJGb3JEYXRhRGV0ZWN0ZWRMaW5rXSk6CisgICAgICAgICogVUlQ
cm9jZXNzL21hYy9XS0luc3BlY3RvclZpZXdDb250cm9sbGVyLmg6CisgICAgICAgICogVUlQcm9j
ZXNzL21hYy9XS0luc3BlY3RvclZpZXdDb250cm9sbGVyLm1tOgorICAgICAgICAoLVtXS0luc3Bl
Y3RvclZpZXdDb250cm9sbGVyIGluaXRXaXRoSW5zcGVjdGVkUGFnZTpdKToKKyAgICAgICAgKiBV
SVByb2Nlc3MvbWFjL1dLVGV4dEZpbmRlckNsaWVudC5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9t
YWMvV0tUZXh0RmluZGVyQ2xpZW50Lm1tOgorICAgICAgICAoLVtXS1RleHRGaW5kZXJDbGllbnQg
aW5pdFdpdGhQYWdlOnZpZXc6dXNlUGxhdGZvcm1GaW5kVUk6XSk6CisgICAgICAgICogVUlQcm9j
ZXNzL21hYy9XS1ZpZXdMYXlvdXRTdHJhdGVneS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9tYWMv
V0tWaWV3TGF5b3V0U3RyYXRlZ3kubW06CisgICAgICAgICgrW1dLVmlld0xheW91dFN0cmF0ZWd5
IGxheW91dFN0cmF0ZWd5V2l0aFBhZ2U6dmlldzp2aWV3SW1wbDptb2RlOl0pOgorICAgICAgICAo
LVtXS1ZpZXdMYXlvdXRTdHJhdGVneSBpbml0V2l0aFBhZ2U6dmlldzp2aWV3SW1wbDptb2RlOl0p
OgorICAgICAgICAoLVtXS1ZpZXdWaWV3U2l6ZUxheW91dFN0cmF0ZWd5IGluaXRXaXRoUGFnZTp2
aWV3OnZpZXdJbXBsOm1vZGU6XSk6CisgICAgICAgICgtW1dLVmlld0ZpeGVkU2l6ZUxheW91dFN0
cmF0ZWd5IGluaXRXaXRoUGFnZTp2aWV3OnZpZXdJbXBsOm1vZGU6XSk6CisgICAgICAgICgtW1dL
Vmlld0R5bmFtaWNTaXplQ29tcHV0ZWRGcm9tVmlld1NjYWxlTGF5b3V0U3RyYXRlZ3kgaW5pdFdp
dGhQYWdlOnZpZXc6dmlld0ltcGw6bW9kZTpdKToKKyAgICAgICAgKC1bV0tWaWV3RHluYW1pY1Np
emVDb21wdXRlZEZyb21NaW5pbXVtRG9jdW1lbnRTaXplTGF5b3V0U3RyYXRlZ3kgaW5pdFdpdGhQ
YWdlOnZpZXc6dmlld0ltcGw6bW9kZTpdKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL0luamVjdGVk
QnVuZGxlL0FQSS9tYWMvV0tET01Eb2N1bWVudC5tbToKKyAgICAgICAgKC1bV0tET01Eb2N1bWVu
dFBhcnNlcllpZWxkVG9rZW4gaW5pdFdpdGhEb2N1bWVudDpdKToKKyAgICAgICAgKiBXZWJQcm9j
ZXNzL1dlYlBhZ2UvbWFjL1dLQWNjZXNzaWJpbGl0eVdlYlBhZ2VPYmplY3RCYXNlLmg6CisgICAg
ICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9XS0FjY2Vzc2liaWxpdHlXZWJQYWdlT2JqZWN0
QmFzZS5tbToKKyAgICAgICAgKC1bV0tBY2Nlc3NpYmlsaXR5V2ViUGFnZU9iamVjdEJhc2UgYXhP
YmplY3RDYWNoZV0pOgorICAgICAgICAoLVtXS0FjY2Vzc2liaWxpdHlXZWJQYWdlT2JqZWN0QmFz
ZSBzZXRXZWJQYWdlOl0pOgorCiAyMDIwLTAxLTA3ICBSeWFuIEhhZGRhZCAgPHJ5YW5oYWRkYWRA
YXBwbGUuY29tPgogCiAgICAgICAgIFVucmV2aWV3ZWQsIHJvbGxpbmcgb3V0IHIyNTQxNDQuCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2Vi
S2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cKaW5kZXggYzc0ZWZhOWY3NDAzZTk3NjI4ZGUxNGE4Mzlh
ZTMzODI1Y2FkZjNmNS4uNGJmZDMxZTEwMmMxOTg3Y2I0Njk1YmM2YjJhNjk4ZWQ5MGE3YjIxZCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXRMZWdhY3kvbWFjL0NoYW5nZUxvZwpAQCAtMSwzICsxLDExMyBAQAorMjAyMC0wMS0w
NyAgWXVzdWtlIFN1enVraSAgPHlzdXp1a2lAYXBwbGUuY29tPgorCisgICAgICAgIFJlZHVjZSBi
aW5hcnkgc2l6ZSBieSBwdXJnaW5nIEMrKyB0eXBlIGluZm9ybWF0aW9uIGluIE9iamVjdGl2ZS1D
IGZpZWxkcyBhbmQgcGFyYW1ldGVycworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MjA1OTA1CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgKiBQbHVnaW5zL1dlYkJhc2VOZXRzY2FwZVBsdWdpblZpZXcuaDoKKyAg
ICAgICAgKiBQbHVnaW5zL1dlYkJhc2VOZXRzY2FwZVBsdWdpblZpZXcubW06CisgICAgICAgICgt
W1dlYkJhc2VOZXRzY2FwZVBsdWdpblZpZXcgZWxlbWVudF0pOgorICAgICAgICAqIFdlYkNvcmVT
dXBwb3J0L1dlYkVkaXRvckNsaWVudC5tbToKKyAgICAgICAgKF9XZWJDcmVhdGVGcmFnbWVudCk6
CisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQubW06CisgICAg
ICAgIChXZWJGcmFtZUxvYWRlckNsaWVudDo6dHJhbnNpdGlvblRvQ29tbWl0dGVkRm9yTmV3UGFn
ZSk6CisgICAgICAgICgtW1dlYkZyYW1lUG9saWN5TGlzdGVuZXIgaW5pdFdpdGhGcmFtZTppZGVu
dGlmaWVyOnBvbGljeUZ1bmN0aW9uOmRlZmF1bHRQb2xpY3k6XSk6CisgICAgICAgICgtW1dlYkZy
YW1lUG9saWN5TGlzdGVuZXIgaW5pdFdpdGhGcmFtZTppZGVudGlmaWVyOnBvbGljeUZ1bmN0aW9u
OmRlZmF1bHRQb2xpY3k6YXBwTGlua1VSTDpdKToKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9X
ZWJHZW9sb2NhdGlvbkNsaWVudC5tbToKKyAgICAgICAgKC1bV2ViR2VvbG9jYXRpb25Qb2xpY3lM
aXN0ZW5lciBpbml0V2l0aEdlb2xvY2F0aW9uOl0pOgorICAgICAgICAoLVtXZWJHZW9sb2NhdGlv
blBvbGljeUxpc3RlbmVyIGluaXRXaXRoR2VvbG9jYXRpb246Zm9yV2ViVmlldzpdKToKKyAgICAg
ICAgKC1bV2ViR2VvbG9jYXRpb25Qcm92aWRlckluaXRpYWxpemF0aW9uTGlzdGVuZXIgaW5pdFdp
dGhHZW9sb2NhdGlvbjpdKToKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9XZWJJbnNwZWN0b3JD
bGllbnQubW06CisgICAgICAgIChXZWJJbnNwZWN0b3JGcm9udGVuZENsaWVudDo6cmVzZXRTdGF0
ZSk6CisgICAgICAgICgtW1dlYkluc3BlY3RvcldpbmRvd0NvbnRyb2xsZXIgc2V0RnJvbnRlbmRD
bGllbnQ6XSk6CisgICAgICAgICgtW1dlYkluc3BlY3RvcldpbmRvd0NvbnRyb2xsZXIgc2V0SW5z
cGVjdG9yQ2xpZW50Ol0pOgorICAgICAgICAoLVtXZWJJbnNwZWN0b3JXaW5kb3dDb250cm9sbGVy
IGluc3BlY3RvckNsaWVudF0pOgorICAgICAgICAqIFdlYkluc3BlY3Rvci9XZWJJbnNwZWN0b3JG
cm9udGVuZC5oOgorICAgICAgICAqIFdlYkluc3BlY3Rvci9XZWJJbnNwZWN0b3JGcm9udGVuZC5t
bToKKyAgICAgICAgKiBXZWJJbnNwZWN0b3IvV2ViTm9kZUhpZ2hsaWdodC5oOgorICAgICAgICAq
IFdlYkluc3BlY3Rvci9XZWJOb2RlSGlnaGxpZ2h0Lm1tOgorICAgICAgICAoLVtXZWJOb2RlSGln
aGxpZ2h0IGluaXRXaXRoVGFyZ2V0VmlldzppbnNwZWN0b3JDb250cm9sbGVyOl0pOgorICAgICAg
ICAqIFdlYlZpZXcvV2ViQXJjaGl2ZS5tbToKKyAgICAgICAgKC1bV2ViQXJjaGl2ZSBpbml0V2l0
aE1haW5SZXNvdXJjZTpzdWJyZXNvdXJjZXM6c3ViZnJhbWVBcmNoaXZlczpdKToKKyAgICAgICAg
KiBXZWJWaWV3L1dlYkRhdGFTb3VyY2UubW06CisgICAgICAgICgtW1dlYkRhdGFTb3VyY2UgX2Rv
Y3VtZW50TG9hZGVyXSk6CisgICAgICAgICgtW1dlYkRhdGFTb3VyY2UgYWRkU3VicmVzb3VyY2U6
XSk6CisgICAgICAgICogV2ViVmlldy9XZWJEYXRhU291cmNlSW50ZXJuYWwuaDoKKyAgICAgICAg
KiBXZWJWaWV3L1dlYkZyYW1lLm1tOgorICAgICAgICAoZ2V0V2ViVmlldyk6CisgICAgICAgICgt
W1dlYkZyYW1lIF91cGRhdGVCYWNrZ3JvdW5kQW5kVXBkYXRlc1doaWxlT2Zmc2NyZWVuXSk6Cisg
ICAgICAgICgtW1dlYkZyYW1lIF91bm1hcmtBbGxCYWRHcmFtbWFyXSk6CisgICAgICAgICgtW1dl
YkZyYW1lIF91bm1hcmtBbGxNaXNzcGVsbGluZ3NdKToKKyAgICAgICAgKC1bV2ViRnJhbWUgX2hh
c1NlbGVjdGlvbl0pOgorICAgICAgICAoLVtXZWJGcmFtZSBfYXRNb3N0T25lRnJhbWVIYXNTZWxl
Y3Rpb25dKToKKyAgICAgICAgKC1bV2ViRnJhbWUgX2ZpbmRGcmFtZVdpdGhTZWxlY3Rpb25dKToK
KyAgICAgICAgKC1bV2ViRnJhbWUgX3Njcm9sbERPTVJhbmdlVG9WaXNpYmxlOndpdGhJbnNldDpd
KToKKyAgICAgICAgKC1bV2ViRnJhbWUgX2RvY3VtZW50RnJhZ21lbnRXaXRoTWFya3VwU3RyaW5n
OmJhc2VVUkxTdHJpbmc6XSk6CisgICAgICAgICgtW1dlYkZyYW1lIF9kb2N1bWVudEZyYWdtZW50
V2l0aE5vZGVzQXNQYXJhZ3JhcGhzOl0pOgorICAgICAgICAoLVtXZWJGcmFtZSBfY2FuUHJvdmlk
ZURvY3VtZW50U291cmNlXSk6CisgICAgICAgICgtW1dlYkZyYW1lIF9pc0Rlc2NlbmRhbnRPZkZy
YW1lOl0pOgorICAgICAgICAoLVtXZWJGcmFtZSBfcmVjdXJzaXZlX3Jlc3VtZU51bGxFdmVudHNG
b3JBbGxOZXRzY2FwZVBsdWdpbnNdKToKKyAgICAgICAgKC1bV2ViRnJhbWUgX3JlY3Vyc2l2ZV9w
YXVzZU51bGxFdmVudHNGb3JBbGxOZXRzY2FwZVBsdWdpbnNdKToKKyAgICAgICAgKC1bV2ViRnJh
bWUgc2V0VGltZW91dHNQYXVzZWQ6XSk6CisgICAgICAgICgtW1dlYkZyYW1lIHByZXBhcmVGb3JQ
YXVzZV0pOgorICAgICAgICAoLVtXZWJGcmFtZSByZXN1bWVGcm9tUGF1c2VdKToKKyAgICAgICAg
KC1bV2ViRnJhbWUgcmVzZXRUZXh0QXV0b3NpemluZ0JlZm9yZUxheW91dF0pOgorICAgICAgICAo
LVtXZWJGcmFtZSBfZ2xvYmFsQ29udGV4dEZvclNjcmlwdFdvcmxkOl0pOgorICAgICAgICAoLVtX
ZWJGcmFtZSBfbGF5ZXJUcmVlQXNUZXh0XSk6CisgICAgICAgICgtW1dlYkZyYW1lIF9jbGVhck9w
ZW5lcl0pOgorICAgICAgICAoLVtXZWJGcmFtZSBmb2N1c2VkTm9kZUhhc0NvbnRlbnRdKToKKyAg
ICAgICAgKC1bV2ViRnJhbWUgX2Rpc3BhdGNoRGlkUmVjZWl2ZVRpdGxlOl0pOgorICAgICAgICAo
LVtXZWJGcmFtZSBqc1dyYXBwZXJGb3JOb2RlOmluU2NyaXB0V29ybGQ6XSk6CisgICAgICAgICgt
W1dlYkZyYW1lIGVsZW1lbnRBdFBvaW50Ol0pOgorICAgICAgICAoLVtXZWJGcmFtZSBuYW1lXSk6
CisgICAgICAgICgtW1dlYkZyYW1lIERPTURvY3VtZW50XSk6CisgICAgICAgICgtW1dlYkZyYW1l
IGZyYW1lRWxlbWVudF0pOgorICAgICAgICAoLVtXZWJGcmFtZSBwcm92aXNpb25hbERhdGFTb3Vy
Y2VdKToKKyAgICAgICAgKC1bV2ViRnJhbWUgZGF0YVNvdXJjZV0pOgorICAgICAgICAoLVtXZWJG
cmFtZSBsb2FkUmVxdWVzdDpdKToKKyAgICAgICAgKC1bV2ViRnJhbWUgZmluZEZyYW1lTmFtZWQ6
XSk6CisgICAgICAgICgtW1dlYkZyYW1lIHBhcmVudEZyYW1lXSk6CisgICAgICAgICgtW1dlYkZy
YW1lIGNoaWxkRnJhbWVzXSk6CisgICAgICAgICgtW1dlYkZyYW1lIHdpbmRvd09iamVjdF0pOgor
ICAgICAgICAoLVtXZWJGcmFtZSBnbG9iYWxDb250ZXh0XSk6CisgICAgICAgICgtW1dlYkZyYW1l
IGphdmFTY3JpcHRDb250ZXh0XSk6CisgICAgICAgICogV2ViVmlldy9XZWJGcmFtZUludGVybmFs
Lmg6CisgICAgICAgICogV2ViVmlldy9XZWJGcmFtZVZpZXcubW06CisgICAgICAgICgtW1dlYkZy
YW1lVmlldyBfd2ViX2ZyYW1lXSk6CisgICAgICAgICgtW1dlYkZyYW1lVmlldyBfZnJhbWVTaXpl
Q2hhbmdlZF0pOgorICAgICAgICAoLVtXZWJGcmFtZVZpZXcgX2lzVmVydGljYWxEb2N1bWVudF0p
OgorICAgICAgICAoLVtXZWJGcmFtZVZpZXcgX2lzRmxpcHBlZERvY3VtZW50XSk6CisgICAgICAg
ICgtW1dlYkZyYW1lVmlldyBrZXlEb3duOmtleURvd246XSk6CisgICAgICAgICogV2ViVmlldy9X
ZWJGdWxsU2NyZWVuQ29udHJvbGxlci5tbToKKyAgICAgICAgKC1bV2ViRnVsbFNjcmVlbkNvbnRy
b2xsZXIgX2RvY3VtZW50XSk6CisgICAgICAgICogV2ViVmlldy9XZWJIVE1MVmlldy5tbToKKyAg
ICAgICAgKC1bV2ViTWVudVRhcmdldCBtZW51Q29udHJvbGxlcl0pOgorICAgICAgICAoLVtXZWJN
ZW51VGFyZ2V0IHNldE1lbnVDb250cm9sbGVyOl0pOgorICAgICAgICAoLVtXZWJIVE1MVmlldyBu
YW1lc09mUHJvbWlzZWRGaWxlc0Ryb3BwZWRBdERlc3RpbmF0aW9uOl0pOgorICAgICAgICAoLVtX
ZWJIVE1MVmlldyBfaW50ZXJwcmV0S2V5RXZlbnQ6c2F2aW5nQ29tbWFuZHM6XSk6CisgICAgICAg
ICgtW1dlYkhUTUxWaWV3IHNldFByb21pc2VkRHJhZ1RJRkZEYXRhU291cmNlOl0pOgorICAgICAg
ICAqIFdlYlZpZXcvV2ViSFRNTFZpZXdJbnRlcm5hbC5oOgorICAgICAgICAqIFdlYlZpZXcvV2Vi
Tm90aWZpY2F0aW9uLm1tOgorICAgICAgICAoLVtXZWJOb3RpZmljYXRpb24gaW5pdFdpdGhDb3Jl
Tm90aWZpY2F0aW9uOm5vdGlmaWNhdGlvbklEOl0pOgorICAgICAgICAqIFdlYlZpZXcvV2ViTm90
aWZpY2F0aW9uSW50ZXJuYWwuaDoKKyAgICAgICAgKiBXZWJWaWV3L1dlYlJlc291cmNlLm1tOgor
ICAgICAgICAoLVtXZWJSZXNvdXJjZSBfY29yZVJlc291cmNlXSk6CisgICAgICAgICogV2ViVmll
dy9XZWJSZXNvdXJjZUludGVybmFsLmg6CisgICAgICAgICogV2ViVmlldy9XZWJWaWRlb0Z1bGxz
Y3JlZW5Db250cm9sbGVyLmg6CisgICAgICAgICogV2ViVmlldy9XZWJWaWRlb0Z1bGxzY3JlZW5D
b250cm9sbGVyLm1tOgorICAgICAgICAoLVtXZWJWaWRlb0Z1bGxzY3JlZW5Db250cm9sbGVyIHZp
ZGVvRWxlbWVudF0pOgorICAgICAgICAoLVtXZWJWaWRlb0Z1bGxzY3JlZW5Db250cm9sbGVyIHNl
dFZpZGVvRWxlbWVudDpdKToKKyAgICAgICAgKiBXZWJWaWV3L1dlYlZpZGVvRnVsbHNjcmVlbkhV
RFdpbmRvd0NvbnRyb2xsZXIuaDoKKyAgICAgICAgKiBXZWJWaWV3L1dlYlZpZXcubW06CisgICAg
ICAgICgtW1dlYlZpZXcgcGFnZV0pOgorICAgICAgICAoLVtXZWJWaWV3IF9lbnRlclZpZGVvRnVs
bHNjcmVlbkZvclZpZGVvRWxlbWVudDptb2RlOl0pOgorICAgICAgICAoLVtXZWJWaWV3IF9zZXRV
cFBsYXliYWNrQ29udHJvbHNNYW5hZ2VyRm9yTWVkaWFFbGVtZW50Ol0pOgorICAgICAgICAoLVtX
ZWJWaWV3IF9zdXBwb3J0c0Z1bGxTY3JlZW5Gb3JFbGVtZW50OndpdGhLZXlib2FyZDpdKToKKyAg
ICAgICAgKC1bV2ViVmlldyBfZW50ZXJGdWxsU2NyZWVuRm9yRWxlbWVudDpdKToKKyAgICAgICAg
KC1bV2ViVmlldyBfZXhpdEZ1bGxTY3JlZW5Gb3JFbGVtZW50Ol0pOgorICAgICAgICAqIFdlYlZp
ZXcvV2ViVmlld0ludGVybmFsLmg6CisKIDIwMjAtMDEtMDcgIENvbW1pdCBRdWV1ZSAgPGNvbW1p
dC1xdWV1ZUB3ZWJraXQub3JnPgogCiAgICAgICAgIFVucmV2aWV3ZWQsIHJvbGxpbmcgb3V0IHIy
NTQxMzIuCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTV3JhcHBlck1h
cC5tbSBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvSlNXcmFwcGVyTWFwLm1tCmluZGV4IDI4
YzIzM2VhMTg2OTYxMzVlZDExMzFkOTYwYmFmYjY2OWNhMzM4NmMuLjcyMGJiMWJjMzQ3MTU2YmI0
NjNjNmU4NTMzYTc5Zjc0OTFjNTUzMGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9BUEkvSlNXcmFwcGVyTWFwLm1tCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvSlNX
cmFwcGVyTWFwLm1tCkBAIC0zOTAsNyArMzkwLDcgQEAgc3RhdGljIHZvaWQgY29weVByb3RvdHlw
ZVByb3BlcnRpZXMoSlNDb250ZXh0ICpjb250ZXh0LCBDbGFzcyBvYmpjQ2xhc3MsIFByb3RvY28K
IEBpbnRlcmZhY2UgSlNPYmpDQ2xhc3NJbmZvIDogTlNPYmplY3QgewogICAgIENsYXNzIG1fY2xh
c3M7CiAgICAgYm9vbCBtX2Jsb2NrOwotICAgIEpTQ2xhc3NSZWYgbV9jbGFzc1JlZjsKKyAgICBO
YWtlZFB0cjxPcGFxdWVKU0NsYXNzPiBtX2NsYXNzUmVmOwogICAgIEpTQzo6V2VhazxKU0M6OkpT
T2JqZWN0PiBtX3Byb3RvdHlwZTsKICAgICBKU0M6OldlYWs8SlNDOjpKU09iamVjdD4gbV9jb25z
dHJ1Y3RvcjsKICAgICBKU0M6OldlYWs8SlNDOjpTdHJ1Y3R1cmU+IG1fc3RydWN0dXJlOwpAQCAt
NDI0LDcgKzQyNCw3IEBAIC0gKGluc3RhbmNldHlwZSlpbml0Rm9yQ2xhc3M6KENsYXNzKWNscwog
CiAtICh2b2lkKWRlYWxsb2MKIHsKLSAgICBKU0NsYXNzUmVsZWFzZShtX2NsYXNzUmVmKTsKKyAg
ICBKU0NsYXNzUmVsZWFzZShtX2NsYXNzUmVmLmdldCgpKTsKICAgICBbc3VwZXIgZGVhbGxvY107
CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvV1RGLnhjb2RlcHJvai9wcm9qZWN0LnBieHBy
b2ogYi9Tb3VyY2UvV1RGL1dURi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IGQwMDQw
Yzk3M2IzYWUyMTFmZWE0YWNhN2I0MGRmMTJmOTQwZjA0MGYuLmE2M2RiZGNiMzVjMzdlOTliYjQ1
MWJkODYwMDYzZjNmM2Y3OTgxZWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvV1RGLnhjb2RlcHJv
ai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dURi9XVEYueGNvZGVwcm9qL3Byb2plY3Qu
cGJ4cHJvagpAQCAtNjg5LDYgKzY4OSw3IEBACiAJCUUzMTQ5QTNBMjI4QkRDQUIwMEJGQTZDNyAv
KiBDb25jdXJyZW50QnVmZmVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0
aCA9IENvbmN1cnJlbnRCdWZmZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlF
MzFCREUyODIyRTkxM0NDMDAyOUIxMDUgLyogTWFjaFZNU1BJLmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IE1hY2hWTVNQSS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQlFMzIwMEFCNDFFOUE1MzZEMDAzQjU5RDIgLyogUGxhdGZvcm1SZWdpc3RlcnMuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUGxhdGZvcm1SZWdpc3RlcnMuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRTMyQTIwNzMyM0M1OTAyRDAwMzRBMDkyIC8qIE5ha2VkUmVm
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE5ha2VkUmVmLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCUUzM0Q1Rjg3MUZCRUQ2NjcwMEJGNjI1RSAvKiBSZWN1cnNh
YmxlTGFtYmRhLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJlY3Vyc2FibGVM
YW1iZGEuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRTM0Q0QwRDAyMjgxMEEwMjAw
MjBEMjk5IC8qIFBhY2tlZC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBQYWNrZWQuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJRTM2MEM3NjQyMTI3Qjg1QjAwQzkwRjBFIC8qIFVuYWxpZ25lZEFj
Y2Vzcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBVbmFsaWduZWRBY2Nlc3Mu
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTEwODMsNiArMTA4NCw3IEBACiAJCQkJ
MEY2NkIyODIxREM5N0JBQjAwNEExRDNGIC8qIE1vbm90b25pY1RpbWUuY3BwICovLAogCQkJCTBG
NjZCMjgzMURDOTdCQUIwMDRBMUQzRiAvKiBNb25vdG9uaWNUaW1lLmggKi8sCiAJCQkJRkU4MjI1
MzAxQjJBMUU1QjAwQkE2OEZEIC8qIE5ha2VkUHRyLmggKi8sCisJCQkJRTMyQTIwNzMyM0M1OTAy
RDAwMzRBMDkyIC8qIE5ha2VkUmVmLmggKi8sCiAJCQkJMEY1QkYxNjUxRjIzMTc4MzAwMjlEOTFE
IC8qIE5hdHVyYWxMb29wcy5oICovLAogCQkJCTFBM0Y2QkU2MTc0QURBMjEwMEIyRUVBNyAvKiBO
ZXZlckRlc3Ryb3llZC5oICovLAogCQkJCTBGMEQ4NUIzMTcyMzRDQjEwMDMzODIxMCAvKiBOb0xv
Y2suaCAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL0NNYWtlTGlzdHMudHh0IGIvU291
cmNlL1dURi93dGYvQ01ha2VMaXN0cy50eHQKaW5kZXggNmE4MjY4MmFiZDI4ZGNjNmJjYmVmMzYw
ZTk2MzRkNWM0Yzg0MDMzMC4uYWNiYTQwMGY2MGUyMDk2MDNhZmU3MDdhMzZhYjhhNDY3MGFjNTA4
OSAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvQ01ha2VMaXN0cy50eHQKKysrIGIvU291cmNl
L1dURi93dGYvQ01ha2VMaXN0cy50eHQKQEAgLTEzOSw2ICsxMzksNyBAQCBzZXQoV1RGX1BVQkxJ
Q19IRUFERVJTCiAgICAgTWV0YUFsbG9jYXRvclB0ci5oCiAgICAgTW9ub3RvbmljVGltZS5oCiAg
ICAgTmFrZWRQdHIuaAorICAgIE5ha2VkUmVmLmgKICAgICBOYXR1cmFsTG9vcHMuaAogICAgIE5l
dmVyRGVzdHJveWVkLmgKICAgICBOb0xvY2suaApkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYv
TmFrZWRSZWYuaCBiL1NvdXJjZS9XVEYvd3RmL05ha2VkUmVmLmgKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOTUwNTRk
MzRhZDAzZmNjNzcyZTUxNGQ2MjFhZjJmMTMxN2M2OTBkZgotLS0gL2Rldi9udWxsCisrKyBiL1Nv
dXJjZS9XVEYvd3RmL05ha2VkUmVmLmgKQEAgLTAsMCArMSwxMjEgQEAKKy8qCisgKiBDb3B5cmln
aHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9m
IHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4K
KyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFu
ZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoK
KyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5E
IEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1F
RC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBM
SUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICog
RVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNF
UzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJV
UFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFks
IFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNM
VURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0Yg
VEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2luY2x1ZGUg
PHd0Zi9EdW1iUHRyVHJhaXRzLmg+CisjaW5jbHVkZSA8d3RmL0Zhc3RNYWxsb2MuaD4KKworbmFt
ZXNwYWNlIFdURiB7CisKKy8vIFRoZSBwdXJwb3NlIG9mIHRoaXMgY2xhc3MgaXMgdG8gZW5zdXJl
IHRoYXQgdGhlIHdyYXBwZWQgcG9pbnRlciB3aWxsIG5ldmVyIGJlCisvLyB1c2VkIHVuaW5pdGlh
bGl6ZWQuCisKK3RlbXBsYXRlIDx0eXBlbmFtZSBUPiBjbGFzcyBOYWtlZFJlZiB7CisgICAgV1RG
X01BS0VfRkFTVF9BTExPQ0FURUQ7CitwdWJsaWM6CisgICAgQUxXQVlTX0lOTElORSBOYWtlZFJl
ZihUJiByZWYpIDogbV9wdHIoJnJlZikgeyB9CisgICAgQUxXQVlTX0lOTElORSBOYWtlZFJlZihj
b25zdCBOYWtlZFJlZiYpID0gZGVsZXRlOworICAgIHRlbXBsYXRlPHR5cGVuYW1lIFU+IE5ha2Vk
UmVmKGNvbnN0IE5ha2VkUmVmPFU+JikgPSBkZWxldGU7CisKKyAgICBBTFdBWVNfSU5MSU5FIE5h
a2VkUmVmKE5ha2VkUmVmJiYgb3RoZXIpCisgICAgICAgIDogbV9wdHIoJm90aGVyLmxlYWtSZWYo
KSkKKyAgICB7CisgICAgICAgIEFTU0VSVChtX3B0cik7CisgICAgfQorCisgICAgdGVtcGxhdGU8
dHlwZW5hbWUgVT4KKyAgICBOYWtlZFJlZihOYWtlZFJlZjxVPiYmIG90aGVyKQorICAgICAgICA6
IG1fcHRyKCZvdGhlci5sZWFrUmVmKCkpCisgICAgeworICAgICAgICBBU1NFUlQobV9wdHIpOwor
ICAgIH0KKworICAgIEFMV0FZU19JTkxJTkUgVCogb3BlcmF0b3ItPigpIGNvbnN0IHsgQVNTRVJU
KG1fcHRyKTsgcmV0dXJuIG1fcHRyOyB9CisgICAgVCogcHRyKCkgY29uc3QgUkVUVVJOU19OT05O
VUxMIHsgQVNTRVJUKG1fcHRyKTsgcmV0dXJuIG1fcHRyOyB9CisgICAgVCYgZ2V0KCkgY29uc3Qg
eyByZXR1cm4gKm1fcHRyOyB9CisgICAgb3BlcmF0b3IgVCYoKSBjb25zdCB7IEFTU0VSVChtX3B0
cik7IHJldHVybiAqbV9wdHI7IH0KKyAgICBib29sIG9wZXJhdG9yISgpIGNvbnN0IHsgQVNTRVJU
KG1fcHRyKTsgcmV0dXJuICEqbV9wdHI7IH0KKworICAgIE5ha2VkUmVmIGNvcHlSZWYoKSAmJiA9
IGRlbGV0ZTsKKyAgICBOYWtlZFJlZiBjb3B5UmVmKCkgY29uc3QgJiBXQVJOX1VOVVNFRF9SRVRV
Uk4geyByZXR1cm4gTmFrZWRSZWYoKm1fcHRyKTsgfQorCisgICAgTmFrZWRSZWYmIG9wZXJhdG9y
PShUJik7CisgICAgTmFrZWRSZWYmIG9wZXJhdG9yPShOYWtlZFJlZiYmKTsKKyAgICB0ZW1wbGF0
ZTx0eXBlbmFtZSBVPiBOYWtlZFJlZiYgb3BlcmF0b3I9KE5ha2VkUmVmPFU+JiYpOworCisgICAg
Ly8gVXNlIGNvcHlSZWYoKSBhbmQgdGhlIG1vdmUgYXNzaWdubWVudCBvcGVyYXRvcnMgaW5zdGVh
ZC4KKyAgICBOYWtlZFJlZiYgb3BlcmF0b3I9KGNvbnN0IE5ha2VkUmVmJikgPSBkZWxldGU7Cisg
ICAgdGVtcGxhdGU8dHlwZW5hbWUgWD4gTmFrZWRSZWYmIG9wZXJhdG9yPShjb25zdCBOYWtlZFJl
ZjxYPiYpID0gZGVsZXRlOworCisgICAgdGVtcGxhdGU8dHlwZW5hbWUgVT4gdm9pZCBzd2FwKE5h
a2VkUmVmPFU+Jik7CisKKyAgICBUJiBsZWFrUmVmKCkgV0FSTl9VTlVTRURfUkVUVVJOCisgICAg
eworICAgICAgICBBU1NFUlQobV9wdHIpOworICAgICAgICBUJiByZXN1bHQgPSAqRHVtYlB0clRy
YWl0czxUPjo6ZXhjaGFuZ2UobV9wdHIsIG51bGxwdHIpOworICAgICAgICByZXR1cm4gcmVzdWx0
OworICAgIH0KKworcHJpdmF0ZToKKyAgICBUKiBtX3B0cjsKK307CisKK3RlbXBsYXRlPHR5cGVu
YW1lIFQ+IGlubGluZSBOYWtlZFJlZjxUPiYgTmFrZWRSZWY8VD46Om9wZXJhdG9yPShOYWtlZFJl
ZiYmIHJlZmVyZW5jZSkKK3sKKyAgICBOYWtlZFJlZiBtb3ZlZFJlZmVyZW5jZSA9IFdURk1vdmUo
cmVmZXJlbmNlKTsKKyAgICBzd2FwKG1vdmVkUmVmZXJlbmNlKTsKKyAgICByZXR1cm4gKnRoaXM7
Cit9CisKK3RlbXBsYXRlPHR5cGVuYW1lIFQ+IGlubGluZSBOYWtlZFJlZjxUPiYgTmFrZWRSZWY8
VD46Om9wZXJhdG9yPShUJiByZWYpCit7CisgICAgTmFrZWRSZWYgY29waWVkUmVmZXJlbmNlID0g
cmVmOworICAgIHN3YXAoY29waWVkUmVmZXJlbmNlKTsKKyAgICByZXR1cm4gKnRoaXM7Cit9CisK
K3RlbXBsYXRlPHR5cGVuYW1lIFQ+IHRlbXBsYXRlPHR5cGVuYW1lIFU+IGlubGluZSBOYWtlZFJl
ZjxUPiYgTmFrZWRSZWY8VD46Om9wZXJhdG9yPShOYWtlZFJlZjxVPiYmIG90aGVyKQoreworICAg
IE5ha2VkUmVmIHJlZiA9IFdURk1vdmUob3RoZXIpOworICAgIHN3YXAocmVmKTsKKyAgICByZXR1
cm4gKnRoaXM7Cit9CisKK3RlbXBsYXRlPGNsYXNzIFQ+Cit0ZW1wbGF0ZTxjbGFzcyBVPgoraW5s
aW5lIHZvaWQgTmFrZWRSZWY8VD46OnN3YXAoTmFrZWRSZWY8VT4mIG90aGVyKQoreworICAgIHN0
ZDo6c3dhcChtX3B0ciwgb3RoZXIubV9wdHIpOworfQorCit0ZW1wbGF0ZTxjbGFzcyBULCBjbGFz
cyBVPiBpbmxpbmUgdm9pZCBzd2FwKE5ha2VkUmVmPFQ+JiBhLCBOYWtlZFJlZjxVPiYgYikKK3sK
KyAgICBhLnN3YXAoYik7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdURgorCit1c2luZyBXVEY6Ok5h
a2VkUmVmOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9tYWMvV2ViQ29yZUZyYW1l
Vmlldy5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9tYWMvV2ViQ29yZUZyYW1lVmlldy5oCmluZGV4
IDI4NGUyYTVkNmY0ZGU3NDQ1MjdiYTkzOTdhNGZjN2VjMzRlMjdhNGQuLmUwZjlmMTRmNzg0NTY3
ODY4ODI1NTc3YTYzOTBkNTBiMzFkZjg1MzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bh
Z2UvbWFjL1dlYkNvcmVGcmFtZVZpZXcuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL21hYy9X
ZWJDb3JlRnJhbWVWaWV3LmgKQEAgLTI1LDYgKzI1LDcgQEAKIAogI2ltcG9ydCAiU2Nyb2xsVHlw
ZXMuaCIKICNpbXBvcnQgPHd0Zi9QbGF0Zm9ybS5oPgorI2ltcG9ydCA8d3RmL05ha2VkUHRyLmg+
CiAKICNpZiBQTEFURk9STShJT1NfRkFNSUxZKQogI2ltcG9ydCAiV0FLQXBwS2l0U3R1YnMuaCIK
QEAgLTQ0LDUgKzQ1LDUgQEAgY2xhc3MgRnJhbWU7CiBAZW5kCiAKIEBwcm90b2NvbCBXZWJDb3Jl
RnJhbWVWaWV3Ci0tIChXZWJDb3JlOjpGcmFtZSopX3dlYl9mcmFtZTsKKy0gKE5ha2VkUHRyPFdl
YkNvcmU6OkZyYW1lPilfd2ViX2ZyYW1lOwogQGVuZApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvV2ViR0xMYXllci5oIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvV2ViR0xMYXllci5oCmluZGV4IGY3Njc5MDk3NDdmZWZm
NDg3MTRiMWJhZDA5ZjEzMmJkZWI4YmY2NWUuLjhiNTY2NjZhMWJjODUwM2YwMTI2Mzg4MTEwMmRl
NTE3MDFlNTBkMzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2NvY29hL1dlYkdMTGF5ZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9jb2NvYS9XZWJHTExheWVyLmgKQEAgLTI4LDYgKzI4LDcgQEAKICNpbXBvcnQgIklPU3VyZmFj
ZS5oIgogI2ltcG9ydCAiSW50U2l6ZS5oIgogI2ltcG9ydCA8UXVhcnR6Q29yZS9RdWFydHpDb3Jl
Lmg+CisjaW1wb3J0IDx3dGYvTmFrZWRQdHIuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogY2xh
c3MgR3JhcGhpY3NMYXllcjsKQEAgLTQ2LDcgKzQ3LDcgQEAgQUxMT1dfREVQUkVDQVRFRF9ERUNM
QVJBVElPTlNfQkVHSU4KICNlcnJvciBVbnN1cHBvcnRlZCBwbGF0Zm9ybQogI2VuZGlmCiB7Ci0g
ICAgV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0R0xPcGVuR0wqIF9jb250ZXh0OworICAgIE5ha2Vk
UHRyPFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dEdMT3BlbkdMPiBfY29udGV4dDsKICAgICBmbG9h
dCBfZGV2aWNlUGl4ZWxSYXRpbzsKICNpZiBIQVZFKElPU1VSRkFDRSkgJiYgKFVTRShPUEVOR0wp
IHx8IFVTRShBTkdMRSkpCiAgICAgc3RkOjp1bmlxdWVfcHRyPFdlYkNvcmU6OklPU3VyZmFjZT4g
X2NvbnRlbnRzQnVmZmVyOwpAQCAtNjUsOSArNjYsOSBAQCBBTExPV19ERVBSRUNBVEVEX0RFQ0xB
UkFUSU9OU19CRUdJTgogI2VuZGlmCiB9CiAKLUBwcm9wZXJ0eSAobm9uYXRvbWljKSBXZWJDb3Jl
OjpHcmFwaGljc0NvbnRleHRHTE9wZW5HTCogY29udGV4dDsKK0Bwcm9wZXJ0eSAobm9uYXRvbWlj
KSBOYWtlZFB0cjxXZWJDb3JlOjpHcmFwaGljc0NvbnRleHRHTE9wZW5HTD4gY29udGV4dDsKIAot
LSAoaWQpaW5pdFdpdGhHcmFwaGljc0NvbnRleHRHTDooV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0
R0xPcGVuR0wqKWNvbnRleHQ7CistIChpZClpbml0V2l0aEdyYXBoaWNzQ29udGV4dEdMOihOYWtl
ZFB0cjxXZWJDb3JlOjpHcmFwaGljc0NvbnRleHRHTE9wZW5HTD4pY29udGV4dDsKIAogLSAoQ0dJ
bWFnZVJlZiljb3B5SW1hZ2VTbmFwc2hvdFdpdGhDb2xvclNwYWNlOihDR0NvbG9yU3BhY2VSZWYp
Y29sb3JTcGFjZTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvY29jb2EvV2ViR0xMYXllci5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2NvY29hL1dlYkdMTGF5ZXIubW0KaW5kZXggMjkyMDE2YWMxNGVhYzJhYThmZTRkMTVkMjhmOTRi
MDJlMmQ2NzVjYy4uMWVjMDhlNjY3NzUzZTYxNjFmODJlODMwZGVjMjJmMWY4NTE2ZGFmYiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvV2ViR0xMYXll
ci5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9XZWJHTExh
eWVyLm1tCkBAIC02MSw3ICs2MSw3IEBAIEBpbXBsZW1lbnRhdGlvbiBXZWJHTExheWVyCiAKIEBz
eW50aGVzaXplIGNvbnRleHQ9X2NvbnRleHQ7CiAKLS0oaWQpaW5pdFdpdGhHcmFwaGljc0NvbnRl
eHRHTDooV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0R0xPcGVuR0wqKWNvbnRleHQKKy0oaWQpaW5p
dFdpdGhHcmFwaGljc0NvbnRleHRHTDooTmFrZWRQdHI8V2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0
R0xPcGVuR0w+KWNvbnRleHQKIHsKICAgICBfY29udGV4dCA9IGNvbnRleHQ7CiAgICAgc2VsZiA9
IFtzdXBlciBpbml0XTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9T
Y3JvbGxBbmltYXRvck1hYy5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9TY3JvbGxB
bmltYXRvck1hYy5tbQppbmRleCBmNTkxNzY3MmVlZmRmMWY1MjNjZGY2OTI0NmIyMzg2MDQ5NGZi
MmEyLi40MDQyNjFjZmM0YmQ4NDlkZWY0NDcxNDU3MDhlMTg0NWFlMGY0NmRiIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvU2Nyb2xsQW5pbWF0b3JNYWMubW0KKysrIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1Njcm9sbEFuaW1hdG9yTWFjLm1tCkBAIC00MCw2
ICs0MCw3IEBACiAjaW5jbHVkZSAiU2Nyb2xsYmFyVGhlbWVNYWMuaCIKICNpbmNsdWRlIDxwYWwv
c3BpL21hYy9OU1Njcm9sbGVySW1wU1BJLmg+CiAjaW5jbHVkZSA8d3RmL0Jsb2NrT2JqQ0V4Y2Vw
dGlvbnMuaD4KKyNpbmNsdWRlIDx3dGYvTmFrZWRQdHIuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9U
ZXh0U3RyZWFtLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKQEAgLTgxLDkgKzgyLDkgQEAgQGVu
ZAogCiBAaW50ZXJmYWNlIFdlYlNjcm9sbEFuaW1hdGlvbkhlbHBlckRlbGVnYXRlIDogTlNPYmpl
Y3QKIHsKLSAgICBXZWJDb3JlOjpTY3JvbGxBbmltYXRvck1hYyogX2FuaW1hdG9yOworICAgIE5h
a2VkUHRyPFdlYkNvcmU6OlNjcm9sbEFuaW1hdG9yTWFjPiBfYW5pbWF0b3I7CiB9Ci0tIChpZClp
bml0V2l0aFNjcm9sbEFuaW1hdG9yOihXZWJDb3JlOjpTY3JvbGxBbmltYXRvck1hYyopc2Nyb2xs
QW5pbWF0b3I7CistIChpZClpbml0V2l0aFNjcm9sbEFuaW1hdG9yOihOYWtlZFB0cjxXZWJDb3Jl
OjpTY3JvbGxBbmltYXRvck1hYz4pc2Nyb2xsQW5pbWF0b3I7CiBAZW5kCiAKIHN0YXRpYyBOU1Np
emUgYWJzKE5TU2l6ZSBzaXplKQpAQCAtOTgsNyArOTksNyBAQCBzdGF0aWMgTlNTaXplIGFicyhO
U1NpemUgc2l6ZSkKIAogQGltcGxlbWVudGF0aW9uIFdlYlNjcm9sbEFuaW1hdGlvbkhlbHBlckRl
bGVnYXRlCiAKLS0gKGlkKWluaXRXaXRoU2Nyb2xsQW5pbWF0b3I6KFdlYkNvcmU6OlNjcm9sbEFu
aW1hdG9yTWFjKilzY3JvbGxBbmltYXRvcgorLSAoaWQpaW5pdFdpdGhTY3JvbGxBbmltYXRvcjoo
TmFrZWRQdHI8V2ViQ29yZTo6U2Nyb2xsQW5pbWF0b3JNYWM+KXNjcm9sbEFuaW1hdG9yCiB7CiAg
ICAgc2VsZiA9IFtzdXBlciBpbml0XTsKICAgICBpZiAoIXNlbGYpCkBAIC0xMTAsNyArMTExLDcg
QEAgLSAoaWQpaW5pdFdpdGhTY3JvbGxBbmltYXRvcjooV2ViQ29yZTo6U2Nyb2xsQW5pbWF0b3JN
YWMqKXNjcm9sbEFuaW1hdG9yCiAKIC0gKHZvaWQpaW52YWxpZGF0ZQogewotICAgIF9hbmltYXRv
ciA9IDA7CisgICAgX2FuaW1hdG9yID0gbnVsbHB0cjsKIH0KIAogLSAoTlNSZWN0KWJvdW5kcwpA
QCAtNDczLDcgKzQ3NCw3IEBAIC0gKHZvaWQpY2FuY2VsQW5pbWF0aW9ucwogICAgIEVORF9CTE9D
S19PQkpDX0VYQ0VQVElPTlM7CiB9CiAKLS0gKFNjcm9sbEFuaW1hdG9yTWFjKilzY3JvbGxBbmlt
YXRvcgorLSAoTmFrZWRQdHI8U2Nyb2xsQW5pbWF0b3JNYWM+KXNjcm9sbEFuaW1hdG9yCiB7CiAg
ICAgcmV0dXJuICZzdGF0aWNfY2FzdDxTY3JvbGxBbmltYXRvck1hYyY+KF9zY3JvbGxiYXItPnNj
cm9sbGFibGVBcmVhKCkuc2Nyb2xsQW5pbWF0b3IoKSk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L05ldHdvcmtQcm9jZXNzL2NvY29hL05ldHdvcmtTZXNzaW9uQ29jb2EubW0gYi9Tb3Vy
Y2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2NvY29hL05ldHdvcmtTZXNzaW9uQ29jb2EubW0KaW5k
ZXggODJmNzkxYzk1YTUxNmFhMjEwZmI3ZTQ2ZGUwYTM4OWZkZjhlNzU2NC4uOTc3ZGJlZDU4ZTM1
ODZmNmYwZmZjMWFiNTI0YTYxMWVhM2U5ZTNhOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9O
ZXR3b3JrUHJvY2Vzcy9jb2NvYS9OZXR3b3JrU2Vzc2lvbkNvY29hLm1tCisrKyBiL1NvdXJjZS9X
ZWJLaXQvTmV0d29ya1Byb2Nlc3MvY29jb2EvTmV0d29ya1Nlc3Npb25Db2NvYS5tbQpAQCAtNTAs
NiArNTAsNyBAQAogI2ltcG9ydCA8cGFsL3NwaS9jZi9DRk5ldHdvcmtTUEkuaD4KICNpbXBvcnQg
PHd0Zi9CbG9ja1B0ci5oPgogI2ltcG9ydCA8d3RmL01haW5UaHJlYWQuaD4KKyNpbXBvcnQgPHd0
Zi9OYWtlZFJlZi5oPgogI2ltcG9ydCA8d3RmL05ldmVyRGVzdHJveWVkLmg+CiAjaW1wb3J0IDx3
dGYvT2JqQ1J1bnRpbWVFeHRyYXMuaD4KICNpbXBvcnQgPHd0Zi9Qcm9jZXNzUHJpdmlsZWdlLmg+
CkBAIC00MDEsMjAgKzQwMiwyMCBAQCBAaW50ZXJmYWNlIFdLTmV0d29ya1Nlc3Npb25EZWxlZ2F0
ZSA6IE5TT2JqZWN0IDxOU1VSTFNlc3Npb25EYXRhRGVsZWdhdGUKICAgICBib29sIF93aXRoQ3Jl
ZGVudGlhbHM7CiB9CiAKLS0gKGlkKWluaXRXaXRoTmV0d29ya1Nlc3Npb246KFdlYktpdDo6TmV0
d29ya1Nlc3Npb25Db2NvYSYpc2Vzc2lvbiB3cmFwcGVyOihXZWJLaXQ6OlNlc3Npb25XcmFwcGVy
JilzZXNzaW9uV3JhcHBlciB3aXRoQ3JlZGVudGlhbHM6KGJvb2wpd2l0aENyZWRlbnRpYWxzOwor
LSAoaWQpaW5pdFdpdGhOZXR3b3JrU2Vzc2lvbjooTmFrZWRSZWY8V2ViS2l0OjpOZXR3b3JrU2Vz
c2lvbkNvY29hPilzZXNzaW9uIHdyYXBwZXI6KFdlYktpdDo6U2Vzc2lvbldyYXBwZXImKXNlc3Np
b25XcmFwcGVyIHdpdGhDcmVkZW50aWFsczooYm9vbCl3aXRoQ3JlZGVudGlhbHM7CiAtICh2b2lk
KXNlc3Npb25JbnZhbGlkYXRlZDsKIAogQGVuZAogCiBAaW1wbGVtZW50YXRpb24gV0tOZXR3b3Jr
U2Vzc2lvbkRlbGVnYXRlCiAKLS0gKGlkKWluaXRXaXRoTmV0d29ya1Nlc3Npb246KFdlYktpdDo6
TmV0d29ya1Nlc3Npb25Db2NvYSYpc2Vzc2lvbiB3cmFwcGVyOihXZWJLaXQ6OlNlc3Npb25XcmFw
cGVyJilzZXNzaW9uV3JhcHBlciB3aXRoQ3JlZGVudGlhbHM6KGJvb2wpd2l0aENyZWRlbnRpYWxz
CistIChpZClpbml0V2l0aE5ldHdvcmtTZXNzaW9uOihOYWtlZFJlZjxXZWJLaXQ6Ok5ldHdvcmtT
ZXNzaW9uQ29jb2E+KXNlc3Npb24gd3JhcHBlcjooV2ViS2l0OjpTZXNzaW9uV3JhcHBlciYpc2Vz
c2lvbldyYXBwZXIgd2l0aENyZWRlbnRpYWxzOihib29sKXdpdGhDcmVkZW50aWFscwogewogICAg
IHNlbGYgPSBbc3VwZXIgaW5pdF07CiAgICAgaWYgKCFzZWxmKQogICAgICAgICByZXR1cm4gbmls
OwogCi0gICAgX3Nlc3Npb24gPSBtYWtlV2Vha1B0cihzZXNzaW9uKTsKKyAgICBfc2Vzc2lvbiA9
IG1ha2VXZWFrUHRyKHNlc3Npb24uZ2V0KCkpOwogICAgIF9zZXNzaW9uV3JhcHBlciA9IG1ha2VX
ZWFrUHRyKHNlc3Npb25XcmFwcGVyKTsKICAgICBfd2l0aENyZWRlbnRpYWxzID0gd2l0aENyZWRl
bnRpYWxzOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9BUEkvQ29jb2EvV0tC
cm93c2luZ0NvbnRleHRIYW5kbGUubW0gYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9BUEkvQ29jb2Ev
V0tCcm93c2luZ0NvbnRleHRIYW5kbGUubW0KaW5kZXggYWIyZWQ5YmUzMGVhYTc4NTVhMWQzNDQz
ZjBkNGZjOGM4YjIzOGNlOS4uOWQzZWRmMTcwMDNlZjI0NmFmZWI3OGQxNzAzNGQ3Y2E0NGEwM2U4
YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvQVBJL0NvY29hL1dLQnJvd3NpbmdD
b250ZXh0SGFuZGxlLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0FQSS9Db2NvYS9XS0Jy
b3dzaW5nQ29udGV4dEhhbmRsZS5tbQpAQCAtMzIsMTQgKzMyLDE0IEBACiAKIEBpbXBsZW1lbnRh
dGlvbiBXS0Jyb3dzaW5nQ29udGV4dEhhbmRsZQogCi0tIChpZClfaW5pdFdpdGhQYWdlUHJveHk6
KFdlYktpdDo6V2ViUGFnZVByb3h5JilwYWdlCistIChpZClfaW5pdFdpdGhQYWdlUHJveHk6KE5h
a2VkUmVmPFdlYktpdDo6V2ViUGFnZVByb3h5PilwYWdlCiB7Ci0gICAgcmV0dXJuIFtzZWxmIF9p
bml0V2l0aFBhZ2VQcm94eUlEOnBhZ2UuaWRlbnRpZmllcigpIGFuZFdlYlBhZ2VJRDpwYWdlLndl
YlBhZ2VJRCgpXTsKKyAgICByZXR1cm4gW3NlbGYgX2luaXRXaXRoUGFnZVByb3h5SUQ6cGFnZS0+
aWRlbnRpZmllcigpIGFuZFdlYlBhZ2VJRDpwYWdlLT53ZWJQYWdlSUQoKV07CiB9CiAKLS0gKGlk
KV9pbml0V2l0aFBhZ2U6KFdlYktpdDo6V2ViUGFnZSYpcGFnZQorLSAoaWQpX2luaXRXaXRoUGFn
ZTooTmFrZWRSZWY8V2ViS2l0OjpXZWJQYWdlPilwYWdlCiB7Ci0gICAgcmV0dXJuIFtzZWxmIF9p
bml0V2l0aFBhZ2VQcm94eUlEOnBhZ2Uud2ViUGFnZVByb3h5SWRlbnRpZmllcigpIGFuZFdlYlBh
Z2VJRDpwYWdlLmlkZW50aWZpZXIoKV07CisgICAgcmV0dXJuIFtzZWxmIF9pbml0V2l0aFBhZ2VQ
cm94eUlEOnBhZ2UtPndlYlBhZ2VQcm94eUlkZW50aWZpZXIoKSBhbmRXZWJQYWdlSUQ6cGFnZS0+
aWRlbnRpZmllcigpXTsKIH0KIAogLSAoaWQpX2luaXRXaXRoUGFnZVByb3h5SUQ6KFdlYktpdDo6
V2ViUGFnZVByb3h5SWRlbnRpZmllcilwYWdlUHJveHlJRCBhbmRXZWJQYWdlSUQ6KFdlYkNvcmU6
OlBhZ2VJZGVudGlmaWVyKXdlYlBhZ2VJRApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFy
ZWQvQVBJL0NvY29hL1dLQnJvd3NpbmdDb250ZXh0SGFuZGxlSW50ZXJuYWwuaCBiL1NvdXJjZS9X
ZWJLaXQvU2hhcmVkL0FQSS9Db2NvYS9XS0Jyb3dzaW5nQ29udGV4dEhhbmRsZUludGVybmFsLmgK
aW5kZXggOGRlZDU5ZmI1NTUxOGQyODkzYzc3MWI2M2VhOWJlYzQyMDY2NTljZS4uYjk4ODRlMzc1
MGExOGRlNTk2OWJiMzhjZTUzOGVlZDhlNDI2YWM0YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9TaGFyZWQvQVBJL0NvY29hL1dLQnJvd3NpbmdDb250ZXh0SGFuZGxlSW50ZXJuYWwuaAorKysg
Yi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9BUEkvQ29jb2EvV0tCcm93c2luZ0NvbnRleHRIYW5kbGVJ
bnRlcm5hbC5oCkBAIC0yNiw2ICsyNiw3IEBACiAjaW1wb3J0ICJXS0Jyb3dzaW5nQ29udGV4dEhh
bmRsZS5oIgogI2ltcG9ydCAiV2ViUGFnZVByb3h5SWRlbnRpZmllci5oIgogI2ltcG9ydCA8V2Vi
Q29yZS9QYWdlSWRlbnRpZmllci5oPgorI2ltcG9ydCA8d3RmL05ha2VkUmVmLmg+CiAKIG5hbWVz
cGFjZSBXZWJLaXQgewogY2xhc3MgV2ViUGFnZTsKQEAgLTM3LDcgKzM4LDcgQEAgY2xhc3MgV2Vi
UGFnZVByb3h5OwogQHByb3BlcnR5IChub25hdG9taWMsIHJlYWRvbmx5LCBnZXR0ZXI9X3BhZ2VQ
cm94eUlEKSBXZWJLaXQ6OldlYlBhZ2VQcm94eUlkZW50aWZpZXIgcGFnZVByb3h5SUQ7CiBAcHJv
cGVydHkgKG5vbmF0b21pYywgcmVhZG9ubHksIGdldHRlcj1fd2ViUGFnZUlEKSBXZWJDb3JlOjpQ
YWdlSWRlbnRpZmllciB3ZWJQYWdlSUQ7CiAKLS0gKGlkKV9pbml0V2l0aFBhZ2VQcm94eTooV2Vi
S2l0OjpXZWJQYWdlUHJveHkmKXBhZ2U7Ci0tIChpZClfaW5pdFdpdGhQYWdlOihXZWJLaXQ6Oldl
YlBhZ2UmKXBhZ2U7CistIChpZClfaW5pdFdpdGhQYWdlUHJveHk6KE5ha2VkUmVmPFdlYktpdDo6
V2ViUGFnZVByb3h5PilwYWdlOworLSAoaWQpX2luaXRXaXRoUGFnZTooTmFrZWRSZWY8V2ViS2l0
OjpXZWJQYWdlPilwYWdlOwogLSAoaWQpX2luaXRXaXRoUGFnZVByb3h5SUQ6KFdlYktpdDo6V2Vi
UGFnZVByb3h5SWRlbnRpZmllcilwYWdlUHJveHlJRCBhbmRXZWJQYWdlSUQ6KFdlYkNvcmU6OlBh
Z2VJZGVudGlmaWVyKXdlYlBhZ2VJRDsKIEBlbmQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
U2hhcmVkL0FQSS9Db2NvYS9fV0tSZW1vdGVPYmplY3RSZWdpc3RyeS5tbSBiL1NvdXJjZS9XZWJL
aXQvU2hhcmVkL0FQSS9Db2NvYS9fV0tSZW1vdGVPYmplY3RSZWdpc3RyeS5tbQppbmRleCA0NzRh
YjUxNTY3NTExYzYzYjI5NDZmMjdlMGM5NWQ2ZWQ2ZmQ4MDQzLi41NDEwNDdlZGRmMjgwZTQ2YmRk
NzEwOWJmM2EzODE4NWJmNWQ0ZDJlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9B
UEkvQ29jb2EvX1dLUmVtb3RlT2JqZWN0UmVnaXN0cnkubW0KKysrIGIvU291cmNlL1dlYktpdC9T
aGFyZWQvQVBJL0NvY29hL19XS1JlbW90ZU9iamVjdFJlZ2lzdHJ5Lm1tCkBAIC0xMDYsMjIgKzEw
NiwyMiBAQCAtIChpZClyZW1vdGVPYmplY3RQcm94eVdpdGhJbnRlcmZhY2U6KF9XS1JlbW90ZU9i
amVjdEludGVyZmFjZSAqKWludGVyZmFjZQogICAgIHJldHVybiByZW1vdGVPYmplY3QuYXV0b3Jl
bGVhc2UoKTsKIH0KIAotLSAoaWQpX2luaXRXaXRoV2ViUGFnZTooV2ViS2l0OjpXZWJQYWdlJilw
YWdlCistIChpZClfaW5pdFdpdGhXZWJQYWdlOihOYWtlZFJlZjxXZWJLaXQ6OldlYlBhZ2U+KXBh
Z2UKIHsKICAgICBpZiAoIShzZWxmID0gW3N1cGVyIGluaXRdKSkKICAgICAgICAgcmV0dXJuIG5p
bDsKIAotICAgIF9yZW1vdGVPYmplY3RSZWdpc3RyeSA9IG1ha2VVbmlxdWU8V2ViS2l0OjpXZWJS
ZW1vdGVPYmplY3RSZWdpc3RyeT4oc2VsZiwgcGFnZSk7CisgICAgX3JlbW90ZU9iamVjdFJlZ2lz
dHJ5ID0gbWFrZVVuaXF1ZTxXZWJLaXQ6OldlYlJlbW90ZU9iamVjdFJlZ2lzdHJ5PihzZWxmLCBw
YWdlLmdldCgpKTsKIAogICAgIHJldHVybiBzZWxmOwogfQogCi0tIChpZClfaW5pdFdpdGhXZWJQ
YWdlUHJveHk6KFdlYktpdDo6V2ViUGFnZVByb3h5JilwYWdlCistIChpZClfaW5pdFdpdGhXZWJQ
YWdlUHJveHk6KE5ha2VkUmVmPFdlYktpdDo6V2ViUGFnZVByb3h5PilwYWdlCiB7CiAgICAgaWYg
KCEoc2VsZiA9IFtzdXBlciBpbml0XSkpCiAgICAgICAgIHJldHVybiBuaWw7CiAKLSAgICBfcmVt
b3RlT2JqZWN0UmVnaXN0cnkgPSBtYWtlVW5pcXVlPFdlYktpdDo6VUlSZW1vdGVPYmplY3RSZWdp
c3RyeT4oc2VsZiwgcGFnZSk7CisgICAgX3JlbW90ZU9iamVjdFJlZ2lzdHJ5ID0gbWFrZVVuaXF1
ZTxXZWJLaXQ6OlVJUmVtb3RlT2JqZWN0UmVnaXN0cnk+KHNlbGYsIHBhZ2UuZ2V0KCkpOwogCiAg
ICAgcmV0dXJuIHNlbGY7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9BUEkv
Q29jb2EvX1dLUmVtb3RlT2JqZWN0UmVnaXN0cnlJbnRlcm5hbC5oIGIvU291cmNlL1dlYktpdC9T
aGFyZWQvQVBJL0NvY29hL19XS1JlbW90ZU9iamVjdFJlZ2lzdHJ5SW50ZXJuYWwuaAppbmRleCA5
NDllNDM4ZjFkNmZmNmZlNzExMzhkMzJjMDg2OTNmNzQzOWEyZjQ4Li5lYzU5YWQyZDlkOGRlZjcx
MDYzMWZiOThlMGQ2NjViYWQxNmZkMTA0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJl
ZC9BUEkvQ29jb2EvX1dLUmVtb3RlT2JqZWN0UmVnaXN0cnlJbnRlcm5hbC5oCisrKyBiL1NvdXJj
ZS9XZWJLaXQvU2hhcmVkL0FQSS9Db2NvYS9fV0tSZW1vdGVPYmplY3RSZWdpc3RyeUludGVybmFs
LmgKQEAgLTI0LDYgKzI0LDcgQEAKICAqLwogCiAjaW1wb3J0ICJfV0tSZW1vdGVPYmplY3RSZWdp
c3RyeS5oIgorI2ltcG9ydCA8d3RmL05ha2VkUmVmLmg+CiAKIG5hbWVzcGFjZSBJUEMgewogY2xh
c3MgTWVzc2FnZVNlbmRlcjsKQEAgLTQxLDggKzQyLDggQEAgY2xhc3MgV2ViUGFnZVByb3h5Owog
CiBAcHJvcGVydHkgKG5vbmF0b21pYywgcmVhZG9ubHkpIFdlYktpdDo6UmVtb3RlT2JqZWN0UmVn
aXN0cnkmIHJlbW90ZU9iamVjdFJlZ2lzdHJ5OwogCi0tIChpZClfaW5pdFdpdGhXZWJQYWdlOihX
ZWJLaXQ6OldlYlBhZ2UmKW1lc3NhZ2VTZW5kZXI7Ci0tIChpZClfaW5pdFdpdGhXZWJQYWdlUHJv
eHk6KFdlYktpdDo6V2ViUGFnZVByb3h5JiltZXNzYWdlU2VuZGVyOworLSAoaWQpX2luaXRXaXRo
V2ViUGFnZTooTmFrZWRSZWY8V2ViS2l0OjpXZWJQYWdlPiltZXNzYWdlU2VuZGVyOworLSAoaWQp
X2luaXRXaXRoV2ViUGFnZVByb3h5OihOYWtlZFJlZjxXZWJLaXQ6OldlYlBhZ2VQcm94eT4pbWVz
c2FnZVNlbmRlcjsKIC0gKHZvaWQpX2ludmFsaWRhdGU7CiAKIC0gKHZvaWQpX3NlbmRJbnZvY2F0
aW9uOihOU0ludm9jYXRpb24gKilpbnZvY2F0aW9uIGludGVyZmFjZTooX1dLUmVtb3RlT2JqZWN0
SW50ZXJmYWNlICopaW50ZXJmYWNlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvQVBJL0NvY29hL1dLV2ViVmlldy5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9D
b2NvYS9XS1dlYlZpZXcubW0KaW5kZXggMWIwNGRiOGNmZGQxY2NmZDU4ODNhYzQwNTc3M2JjYjA3
MTg0MDkyZi4uMWE0Y2UyYWJlYzIzZDliMGEzZDI4YWU2YTc0NDI3NmFhMTYwMmY0YyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlldy5tbQorKysg
Yi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3Lm1tCkBAIC0xMjk3
LDcgKzEyOTcsNyBAQCAtIChXS1BhZ2VSZWYpX3BhZ2VGb3JUZXN0aW5nCiAgICAgcmV0dXJuIHRv
QVBJKF9wYWdlLmdldCgpKTsKIH0KIAotLSAoV2ViS2l0OjpXZWJQYWdlUHJveHkgKilfcGFnZQor
LSAoTmFrZWRQdHI8V2ViS2l0OjpXZWJQYWdlUHJveHk+KV9wYWdlCiB7CiAgICAgcmV0dXJuIF9w
YWdlLmdldCgpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0Nv
Y29hL1dLV2ViVmlld0ludGVybmFsLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29j
b2EvV0tXZWJWaWV3SW50ZXJuYWwuaAppbmRleCAwZjg5ZmQ2ZjAzOWFkYTJhNjYzZTQwNjcwNTU2
YTA3YWVjYmMxZTQzLi5jYzg4Y2Y0MGNkOWNhNWYzMmY1ZWUzYmM1Nzc5ZTQ5YWUyN2Y1YTBiIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3SW50
ZXJuYWwuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3
SW50ZXJuYWwuaApAQCAtMzEsNiArMzEsNyBAQAogI2ltcG9ydCAiX1dLQXR0YWNobWVudEludGVy
bmFsLmgiCiAjaW1wb3J0ICJfV0tXZWJWaWV3UHJpbnRGb3JtYXR0ZXJJbnRlcm5hbC5oIgogI2lt
cG9ydCA8d3RmL0NvbXBsZXRpb25IYW5kbGVyLmg+CisjaW1wb3J0IDx3dGYvTmFrZWRQdHIuaD4K
ICNpbXBvcnQgPHd0Zi9SZWZQdHIuaD4KICNpbXBvcnQgPHd0Zi9SZXRhaW5QdHIuaD4KICNpbXBv
cnQgPHd0Zi9WYXJpYW50Lmg+CkBAIC0yNTAsNyArMjUxLDcgQEAgY2xhc3MgVmlld0dlc3R1cmVD
b250cm9sbGVyOwogLSAoT3B0aW9uYWw8Qk9PTD4pX3Jlc29sdXRpb25Gb3JTaGFyZVNoZWV0SW1t
ZWRpYXRlQ29tcGxldGlvbkZvclRlc3Rpbmc7CiAKIC0gKFdLUGFnZVJlZilfcGFnZUZvclRlc3Rp
bmc7Ci0tIChXZWJLaXQ6OldlYlBhZ2VQcm94eSopX3BhZ2U7CistIChOYWtlZFB0cjxXZWJLaXQ6
OldlYlBhZ2VQcm94eT4pX3BhZ2U7CiAKIEBlbmQKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2Vic2l0ZURhdGFTdG9yZS5tbSBiL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYnNpdGVEYXRhU3RvcmUubW0KaW5kZXggY2VmNDgy
NzQ3ZGYxOGY4NDg5M2VhZmJkZTk4MWNjMDFlNWZhZjgwZS4uODlhNGNhMmViNmQ2NGJmZWU2OTIy
MDFlY2NjN2ZmZmVjYjgwYzE3NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
QVBJL0NvY29hL1dLV2Vic2l0ZURhdGFTdG9yZS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9BUEkvQ29jb2EvV0tXZWJzaXRlRGF0YVN0b3JlLm1tCkBAIC00MzUsNyArNDM1LDcgQEAg
LSAodm9pZClfZ2V0QWxsU3RvcmFnZUFjY2Vzc0VudHJpZXNGb3I6KFdLV2ViVmlldyAqKXdlYlZp
ZXcgY29tcGxldGlvbkhhbmRsZXI6KHYKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAotICAgIGF1
dG8qIHdlYlBhZ2VQcm94eSA9IFt3ZWJWaWV3IF9wYWdlXTsKKyAgICBhdXRvIHdlYlBhZ2VQcm94
eSA9IFt3ZWJWaWV3IF9wYWdlXTsKICAgICBpZiAoIXdlYlBhZ2VQcm94eSkgewogICAgICAgICBj
b21wbGV0aW9uSGFuZGxlcih7IH0pOwogICAgICAgICByZXR1cm47CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLVGh1bWJuYWlsVmlldy5tbSBiL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tUaHVtYm5haWxWaWV3Lm1tCmluZGV4IDEz
NjA1M2M0N2RhNTFiMDI2OTI5MDRlMjdjNzU4OGFjNWRlYzE4NWMuLjUzMGUwYTg5NjkwZWI1MzJk
Njg2OTkzOTExOWExMmNmYTZmZmI2NzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL0FQSS9Db2NvYS9fV0tUaHVtYm5haWxWaWV3Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL0FQSS9Db2NvYS9fV0tUaHVtYm5haWxWaWV3Lm1tCkBAIC0zNSw2ICszNSw3IEBACiAj
aW1wb3J0ICJXS1dlYlZpZXdJbnRlcm5hbC5oIgogI2ltcG9ydCAiV2ViUGFnZVByb3h5LmgiCiAj
aW1wb3J0IDxwYWwvc3BpL2NnL0NvcmVHcmFwaGljc1NQSS5oPgorI2ltcG9ydCA8d3RmL05ha2Vk
UHRyLmg+CiAKIC8vIEZJWE1FOiBNYWtlIGl0IHBvc3NpYmxlIHRvIGxlYXZlIGEgc25hcHNob3Qg
b2YgdGhlIGNvbnRlbnQgcHJlc2VudGVkIGluIHRoZSBXS1ZpZXcgd2hpbGUgdGhlIHRodW1ibmFp
bCBpcyBsaXZlLgogLy8gRklYTUU6IERvbid0IG1ha2UgbmV3IHNwZWN1bGF0aXZlIHRpbGVzIHdo
aWxlIHRodW1ibmFpbGVkLgpAQCAtNDcsNyArNDgsNyBAQCBAaW1wbGVtZW50YXRpb24gX1dLVGh1
bWJuYWlsVmlldyB7CiAgICAgUmV0YWluUHRyPFdLVmlldz4gX3drVmlldzsKICAgICBBTExPV19E
RVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19FTkQKICAgICBSZXRhaW5QdHI8V0tXZWJWaWV3PiBfd2tX
ZWJWaWV3OwotICAgIFdlYktpdDo6V2ViUGFnZVByb3h5KiBfd2ViUGFnZVByb3h5OworICAgIE5h
a2VkUHRyPFdlYktpdDo6V2ViUGFnZVByb3h5PiBfd2ViUGFnZVByb3h5OwogCiAgICAgQk9PTCBf
b3JpZ2luYWxNYXlTdGFydE1lZGlhV2hlbkluV2luZG93OwogICAgIEJPT0wgX29yaWdpbmFsU291
cmNlVmlld0lzSW5XaW5kb3c7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9B
UEkvbWFjL1dLVmlldy5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9tYWMvV0tWaWV3
Lm1tCmluZGV4IGJiNDFkNmU2OTY1Y2Q0ZmExNjU1MzI4M2ZlOGVkNjQ1MmIyZmIwM2YuLmRkYzZm
ZmZhMzMwYTgzY2I3MmJlMTkzMGZjNzIxMDEzMzQyMGQ4MjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL0FQSS9tYWMvV0tWaWV3Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL0FQSS9tYWMvV0tWaWV3Lm1tCkBAIC00Niw2ICs0Niw3IEBACiAjaW1wb3J0IDxXZWJL
aXQvV0tEcmFnRGVzdGluYXRpb25BY3Rpb24uaD4KICNpbXBvcnQgPHBhbC9zcGkvY29jb2EvQVZL
aXRTUEkuaD4KICNpbXBvcnQgPHd0Zi9CbG9ja1B0ci5oPgorI2ltcG9ydCA8d3RmL05ha2VkUmVm
Lmg+CiAKIEBpbnRlcmZhY2UgV0tWaWV3RGF0YSA6IE5TT2JqZWN0IHsKIEBwdWJsaWMKQEAgLTk1
MCw3ICs5NTEsNyBAQCAtICh2b2lkKW1heWJlSW5zdGFsbEljb25Mb2FkaW5nQ2xpZW50CiAgICAg
ICAgIF9kYXRhLT5faW1wbC0+cGFnZSgpLnNldEljb25Mb2FkaW5nQ2xpZW50KG1ha2VVbmlxdWU8
SWNvbkxvYWRpbmdDbGllbnQ+KHNlbGYpKTsKIH0KIAotLSAoaW5zdGFuY2V0eXBlKWluaXRXaXRo
RnJhbWU6KE5TUmVjdClmcmFtZSBwcm9jZXNzUG9vbDooV2ViS2l0OjpXZWJQcm9jZXNzUG9vbCYp
cHJvY2Vzc1Bvb2wgY29uZmlndXJhdGlvbjooUmVmPEFQSTo6UGFnZUNvbmZpZ3VyYXRpb24+JiYp
Y29uZmlndXJhdGlvbgorLSAoaW5zdGFuY2V0eXBlKWluaXRXaXRoRnJhbWU6KE5TUmVjdClmcmFt
ZSBwcm9jZXNzUG9vbDooTmFrZWRSZWY8V2ViS2l0OjpXZWJQcm9jZXNzUG9vbD4pcHJvY2Vzc1Bv
b2wgY29uZmlndXJhdGlvbjooUmVmPEFQSTo6UGFnZUNvbmZpZ3VyYXRpb24+JiYpY29uZmlndXJh
dGlvbgogewogICAgIHNlbGYgPSBbc3VwZXIgaW5pdFdpdGhGcmFtZTpmcmFtZV07CiAgICAgaWYg
KCFzZWxmKQpAQCAtOTU5LDcgKzk2MCw3IEBAIC0gKGluc3RhbmNldHlwZSlpbml0V2l0aEZyYW1l
OihOU1JlY3QpZnJhbWUgcHJvY2Vzc1Bvb2w6KFdlYktpdDo6V2ViUHJvY2Vzc1Bvb2wmCiAgICAg
V2ViS2l0OjpJbml0aWFsaXplV2ViS2l0MigpOwogCiAgICAgX2RhdGEgPSBbW1dLVmlld0RhdGEg
YWxsb2NdIGluaXRdOwotICAgIF9kYXRhLT5faW1wbCA9IG1ha2VVbmlxdWU8V2ViS2l0OjpXZWJW
aWV3SW1wbD4oc2VsZiwgbnVsbHB0ciwgcHJvY2Vzc1Bvb2wsIFdURk1vdmUoY29uZmlndXJhdGlv
bikpOworICAgIF9kYXRhLT5faW1wbCA9IG1ha2VVbmlxdWU8V2ViS2l0OjpXZWJWaWV3SW1wbD4o
c2VsZiwgbnVsbHB0ciwgcHJvY2Vzc1Bvb2wuZ2V0KCksIFdURk1vdmUoY29uZmlndXJhdGlvbikp
OwogCiAgICAgW3NlbGYgbWF5YmVJbnN0YWxsSWNvbkxvYWRpbmdDbGllbnRdOwogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9XZWJWaWV3SW1wbC5tbSBiL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1dlYlZpZXdJbXBsLm1tCmluZGV4IDcxMzhlZmM5NDE1
ZjhhNjE0ZjIzYWZiYTJhNGM2YTE1NTNlYzNkODguLjUwMTJkYWQxYTU4ZGZiNzU1MWUwMzBjZmJi
MDM5YzhmOGJlYTJkMTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29h
L1dlYlZpZXdJbXBsLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1dlYlZp
ZXdJbXBsLm1tCkBAIC0xMzcwLDcgKzEzNzAsNyBAQCBXZWJWaWV3SW1wbDo6V2ViVmlld0ltcGwo
TlNWaWV3IDxXZWJWaWV3SW1wbERlbGVnYXRlPiAqdmlldywgV0tXZWJWaWV3ICpvdXRlcldlYgog
ICAgICwgbV9wYWdlKHByb2Nlc3NQb29sLmNyZWF0ZVdlYlBhZ2UoKm1fcGFnZUNsaWVudCwgV1RG
TW92ZShjb25maWd1cmF0aW9uKSkpCiAgICAgLCBtX25lZWRzVmlld0ZyYW1lSW5XaW5kb3dDb29y
ZGluYXRlcyhtX3BhZ2UtPnByZWZlcmVuY2VzKCkucGx1Z2luc0VuYWJsZWQoKSkKICAgICAsIG1f
aW50cmluc2ljQ29udGVudFNpemUoQ0dTaXplTWFrZShOU1ZpZXdOb0ludHJpbnNpY01ldHJpYywg
TlNWaWV3Tm9JbnRyaW5zaWNNZXRyaWMpKQotICAgICwgbV9sYXlvdXRTdHJhdGVneShbV0tWaWV3
TGF5b3V0U3RyYXRlZ3kgbGF5b3V0U3RyYXRlZ3lXaXRoUGFnZTptX3BhZ2Ugdmlldzp2aWV3IHZp
ZXdJbXBsOip0aGlzIG1vZGU6a1dLTGF5b3V0TW9kZVZpZXdTaXplXSkKKyAgICAsIG1fbGF5b3V0
U3RyYXRlZ3koW1dLVmlld0xheW91dFN0cmF0ZWd5IGxheW91dFN0cmF0ZWd5V2l0aFBhZ2U6bV9w
YWdlLmdldCgpIHZpZXc6dmlldyB2aWV3SW1wbDoqdGhpcyBtb2RlOmtXS0xheW91dE1vZGVWaWV3
U2l6ZV0pCiAgICAgLCBtX3VuZG9UYXJnZXQoYWRvcHROUyhbW1dLRWRpdG9yVW5kb1RhcmdldCBh
bGxvY10gaW5pdF0pKQogICAgICwgbV93aW5kb3dWaXNpYmlsaXR5T2JzZXJ2ZXIoYWRvcHROUyhb
W1dLV2luZG93VmlzaWJpbGl0eU9ic2VydmVyIGFsbG9jXSBpbml0V2l0aFZpZXc6dmlldyBpbXBs
Oip0aGlzXSkpCiAgICAgLCBtX2FjY2Vzc2liaWxpdHlTZXR0aW5nc09ic2VydmVyKGFkb3B0TlMo
W1tXS0FjY2Vzc2liaWxpdHlTZXR0aW5nc09ic2VydmVyIGFsbG9jXSBpbml0V2l0aEltcGw6KnRo
aXNdKSkKQEAgLTE0MDMsNyArMTQwMyw3IEBAIFdlYlZpZXdJbXBsOjpXZWJWaWV3SW1wbChOU1Zp
ZXcgPFdlYlZpZXdJbXBsRGVsZWdhdGU+ICp2aWV3LCBXS1dlYlZpZXcgKm91dGVyV2ViCiAKICAg
ICBpZiAoQ2xhc3MgZ2VzdHVyZUNsYXNzID0gTlNDbGFzc0Zyb21TdHJpbmcoQCJOU0ltbWVkaWF0
ZUFjdGlvbkdlc3R1cmVSZWNvZ25pemVyIikpIHsKICAgICAgICAgbV9pbW1lZGlhdGVBY3Rpb25H
ZXN0dXJlUmVjb2duaXplciA9IGFkb3B0TlMoWyhOU0ltbWVkaWF0ZUFjdGlvbkdlc3R1cmVSZWNv
Z25pemVyICopW2dlc3R1cmVDbGFzcyBhbGxvY10gaW5pdF0pOwotICAgICAgICBtX2ltbWVkaWF0
ZUFjdGlvbkNvbnRyb2xsZXIgPSBhZG9wdE5TKFtbV0tJbW1lZGlhdGVBY3Rpb25Db250cm9sbGVy
IGFsbG9jXSBpbml0V2l0aFBhZ2U6bV9wYWdlIHZpZXc6dmlldyB2aWV3SW1wbDoqdGhpcyByZWNv
Z25pemVyOm1faW1tZWRpYXRlQWN0aW9uR2VzdHVyZVJlY29nbml6ZXIuZ2V0KCldKTsKKyAgICAg
ICAgbV9pbW1lZGlhdGVBY3Rpb25Db250cm9sbGVyID0gYWRvcHROUyhbW1dLSW1tZWRpYXRlQWN0
aW9uQ29udHJvbGxlciBhbGxvY10gaW5pdFdpdGhQYWdlOm1fcGFnZS5nZXQoKSB2aWV3OnZpZXcg
dmlld0ltcGw6KnRoaXMgcmVjb2duaXplcjptX2ltbWVkaWF0ZUFjdGlvbkdlc3R1cmVSZWNvZ25p
emVyLmdldCgpXSk7CiAgICAgICAgIFttX2ltbWVkaWF0ZUFjdGlvbkdlc3R1cmVSZWNvZ25pemVy
IHNldERlbGVnYXRlOm1faW1tZWRpYXRlQWN0aW9uQ29udHJvbGxlci5nZXQoKV07CiAgICAgICAg
IFttX2ltbWVkaWF0ZUFjdGlvbkdlc3R1cmVSZWNvZ25pemVyIHNldERlbGF5c1ByaW1hcnlNb3Vz
ZUJ1dHRvbkV2ZW50czpOT107CiAgICAgfQpAQCAtMTk4Nyw3ICsxOTg3LDcgQEAgdm9pZCBXZWJW
aWV3SW1wbDo6c2V0TGF5b3V0TW9kZShXS0xheW91dE1vZGUgbGF5b3V0TW9kZSkKICAgICAgICAg
cmV0dXJuOwogCiAgICAgW21fbGF5b3V0U3RyYXRlZ3kgd2lsbENoYW5nZUxheW91dFN0cmF0ZWd5
XTsKLSAgICBtX2xheW91dFN0cmF0ZWd5ID0gW1dLVmlld0xheW91dFN0cmF0ZWd5IGxheW91dFN0
cmF0ZWd5V2l0aFBhZ2U6bV9wYWdlIHZpZXc6bV92aWV3LmdldEF1dG9yZWxlYXNlZCgpIHZpZXdJ
bXBsOip0aGlzIG1vZGU6bGF5b3V0TW9kZV07CisgICAgbV9sYXlvdXRTdHJhdGVneSA9IFtXS1Zp
ZXdMYXlvdXRTdHJhdGVneSBsYXlvdXRTdHJhdGVneVdpdGhQYWdlOm1fcGFnZS5nZXQoKSB2aWV3
Om1fdmlldy5nZXRBdXRvcmVsZWFzZWQoKSB2aWV3SW1wbDoqdGhpcyBtb2RlOmxheW91dE1vZGVd
OwogfQogCiBib29sIFdlYlZpZXdJbXBsOjpzdXBwb3J0c0FyYml0cmFyeUxheW91dE1vZGVzKCkg
Y29uc3QKQEAgLTI2NDAsNyArMjY0MCw3IEBAIGJvb2wgV2ViVmlld0ltcGw6Omhhc0Z1bGxTY3Jl
ZW5XaW5kb3dDb250cm9sbGVyKCkgY29uc3QKIFdLRnVsbFNjcmVlbldpbmRvd0NvbnRyb2xsZXIg
KldlYlZpZXdJbXBsOjpmdWxsU2NyZWVuV2luZG93Q29udHJvbGxlcigpCiB7CiAgICAgaWYgKCFt
X2Z1bGxTY3JlZW5XaW5kb3dDb250cm9sbGVyKQotICAgICAgICBtX2Z1bGxTY3JlZW5XaW5kb3dD
b250cm9sbGVyID0gYWRvcHROUyhbW1dLRnVsbFNjcmVlbldpbmRvd0NvbnRyb2xsZXIgYWxsb2Nd
IGluaXRXaXRoV2luZG93OmZ1bGxTY3JlZW5XaW5kb3coKSB3ZWJWaWV3Om1fdmlldy5nZXRBdXRv
cmVsZWFzZWQoKSBwYWdlOm1fcGFnZV0pOworICAgICAgICBtX2Z1bGxTY3JlZW5XaW5kb3dDb250
cm9sbGVyID0gYWRvcHROUyhbW1dLRnVsbFNjcmVlbldpbmRvd0NvbnRyb2xsZXIgYWxsb2NdIGlu
aXRXaXRoV2luZG93OmZ1bGxTY3JlZW5XaW5kb3coKSB3ZWJWaWV3Om1fdmlldy5nZXRBdXRvcmVs
ZWFzZWQoKSBwYWdlOm1fcGFnZS5nZXQoKV0pOwogCiAgICAgcmV0dXJuIG1fZnVsbFNjcmVlbldp
bmRvd0NvbnRyb2xsZXIuZ2V0KCk7CiB9CkBAIC0zODgzLDcgKzM4ODMsNyBAQCBOU1ZpZXcgKldl
YlZpZXdJbXBsOjppbnNwZWN0b3JBdHRhY2htZW50VmlldygpCiBfV0tSZW1vdGVPYmplY3RSZWdp
c3RyeSAqV2ViVmlld0ltcGw6OnJlbW90ZU9iamVjdFJlZ2lzdHJ5KCkKIHsKICAgICBpZiAoIW1f
cmVtb3RlT2JqZWN0UmVnaXN0cnkpIHsKLSAgICAgICAgbV9yZW1vdGVPYmplY3RSZWdpc3RyeSA9
IGFkb3B0TlMoW1tfV0tSZW1vdGVPYmplY3RSZWdpc3RyeSBhbGxvY10gX2luaXRXaXRoV2ViUGFn
ZVByb3h5Om1fcGFnZV0pOworICAgICAgICBtX3JlbW90ZU9iamVjdFJlZ2lzdHJ5ID0gYWRvcHRO
UyhbW19XS1JlbW90ZU9iamVjdFJlZ2lzdHJ5IGFsbG9jXSBfaW5pdFdpdGhXZWJQYWdlUHJveHk6
bV9wYWdlLmdldCgpXSk7CiAgICAgICAgIG1fcGFnZS0+cHJvY2VzcygpLnByb2Nlc3NQb29sKCku
YWRkTWVzc2FnZVJlY2VpdmVyKE1lc3NhZ2VzOjpSZW1vdGVPYmplY3RSZWdpc3RyeTo6bWVzc2Fn
ZVJlY2VpdmVyTmFtZSgpLCBtX3BhZ2UtPmlkZW50aWZpZXIoKSwgW21fcmVtb3RlT2JqZWN0UmVn
aXN0cnkgcmVtb3RlT2JqZWN0UmVnaXN0cnldKTsKICAgICB9CiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3LmggYi9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlldy5oCmluZGV4IDU3Y2ZiYmY0NGQ4MmQyNjMxNmQ5NzMy
MDM1N2VmNzUzYWNjMTZjY2YuLjY2YWZhNGRjYjg2YTJkZTYwZGZkZmMyNDBkNzkxMzM1ZWZiNzQ1
NjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3
LmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXcuaApAQCAt
MjgsNiArMjgsNyBAQAogI2ltcG9ydCAiV0tCcm93c2luZ0NvbnRleHRDb250cm9sbGVyLmgiCiAj
aW1wb3J0ICJXS0Jyb3dzaW5nQ29udGV4dEdyb3VwLmgiCiAjaW1wb3J0ICJXS1Byb2Nlc3NHcm91
cC5oIgorI2ltcG9ydCA8d3RmL05ha2VkUmVmLmg+CiAjaW1wb3J0IDx3dGYvUmV0YWluUHRyLmg+
CiAjaW1wb3J0IDx3dGYvV2Vha09iakNQdHIuaD4KIApAQCAtNzAsNyArNzEsNyBAQCBjbGFzcyBX
ZWJQcm9jZXNzUG9vbDsKIEBwcm9wZXJ0eSAobm9uYXRvbWljKSBCT09MIHNpemVDaGFuZ2VkU2lu
Y2VMYXN0VmlzaWJsZUNvbnRlbnRSZWN0VXBkYXRlOwogQHByb3BlcnR5IChub25hdG9taWMsIHJl
YWRvbmx5KSBVSUludGVyZmFjZU9yaWVudGF0aW9uIGludGVyZmFjZU9yaWVudGF0aW9uOwogCi0t
IChpbnN0YW5jZXR5cGUpaW5pdFdpdGhGcmFtZTooQ0dSZWN0KWZyYW1lIHByb2Nlc3NQb29sOihX
ZWJLaXQ6OldlYlByb2Nlc3NQb29sJilwcm9jZXNzUG9vbCBjb25maWd1cmF0aW9uOihSZWY8QVBJ
OjpQYWdlQ29uZmlndXJhdGlvbj4mJiljb25maWd1cmF0aW9uIHdlYlZpZXc6KFdLV2ViVmlldyAq
KXdlYlZpZXc7CistIChpbnN0YW5jZXR5cGUpaW5pdFdpdGhGcmFtZTooQ0dSZWN0KWZyYW1lIHBy
b2Nlc3NQb29sOihOYWtlZFJlZjxXZWJLaXQ6OldlYlByb2Nlc3NQb29sPilwcm9jZXNzUG9vbCBj
b25maWd1cmF0aW9uOihSZWY8QVBJOjpQYWdlQ29uZmlndXJhdGlvbj4mJiljb25maWd1cmF0aW9u
IHdlYlZpZXc6KFdLV2ViVmlldyAqKXdlYlZpZXc7CiAKIC0gKHZvaWQpZGlkVXBkYXRlVmlzaWJs
ZVJlY3Q6KENHUmVjdCl2aXNpYmxlUmVjdAogICAgIHVub2JzY3VyZWRSZWN0OihDR1JlY3QpdW5v
YnNjdXJlZFJlY3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0Nv
bnRlbnRWaWV3Lm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXcu
bW0KaW5kZXggMjliYTYwNjU4Mjg0NGRlYTY3ODVkZmYxMmZiYmFiNWU4YzliMzFmZC4uZDIxZTlj
YWU3OWY0MjEzNDI3NDZiMmQ0ZWI0N2NjZWUzYTBjMzE5NCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXcubW0KKysrIGIvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXcubW0KQEAgLTIzOCw3ICsyMzgsNyBAQCAtICh2b2lk
KV9yZW1vdmVWaXNpYmlsaXR5UHJvcGFnYXRpb25WaWV3CiB9CiAjZW5kaWYKIAotLSAoaW5zdGFu
Y2V0eXBlKWluaXRXaXRoRnJhbWU6KENHUmVjdClmcmFtZSBwcm9jZXNzUG9vbDooV2ViS2l0OjpX
ZWJQcm9jZXNzUG9vbCYpcHJvY2Vzc1Bvb2wgY29uZmlndXJhdGlvbjooUmVmPEFQSTo6UGFnZUNv
bmZpZ3VyYXRpb24+JiYpY29uZmlndXJhdGlvbiB3ZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3
CistIChpbnN0YW5jZXR5cGUpaW5pdFdpdGhGcmFtZTooQ0dSZWN0KWZyYW1lIHByb2Nlc3NQb29s
OihOYWtlZFJlZjxXZWJLaXQ6OldlYlByb2Nlc3NQb29sPilwcm9jZXNzUG9vbCBjb25maWd1cmF0
aW9uOihSZWY8QVBJOjpQYWdlQ29uZmlndXJhdGlvbj4mJiljb25maWd1cmF0aW9uIHdlYlZpZXc6
KFdLV2ViVmlldyAqKXdlYlZpZXcKIHsKICAgICBpZiAoIShzZWxmID0gW3N1cGVyIGluaXRXaXRo
RnJhbWU6ZnJhbWUgd2ViVmlldzp3ZWJWaWV3XSkpCiAgICAgICAgIHJldHVybiBuaWw7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9tYWMvV0tGdWxsU2NyZWVuV2luZG93Q29u
dHJvbGxlci5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvbWFjL1dLRnVsbFNjcmVlbldpbmRv
d0NvbnRyb2xsZXIuaAppbmRleCAwMWQ3YTJhYjc1MThlNjM3OThlZmFmMjZkMzljNjk1NTgwMWM3
Y2IzLi5iOTQwN2YxMzA0NGFlODUxODU1Y2I4MTI2ODRiMWNjYmFjMDdmMzEyIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9tYWMvV0tGdWxsU2NyZWVuV2luZG93Q29udHJvbGxl
ci5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL21hYy9XS0Z1bGxTY3JlZW5XaW5kb3dD
b250cm9sbGVyLmgKQEAgLTI3LDYgKzI3LDggQEAKIAogI2ltcG9ydCA8QXBwS2l0L0FwcEtpdC5o
PgogI2ltcG9ydCAiR2VuZXJpY0NhbGxiYWNrLmgiCisjaW1wb3J0IDx3dGYvTmFrZWRQdHIuaD4K
KyNpbXBvcnQgPHd0Zi9OYWtlZFJlZi5oPgogI2ltcG9ydCA8d3RmL1JldGFpblB0ci5oPgogCiBu
YW1lc3BhY2UgV2ViS2l0IHsgCkBAIC00Nyw3ICs0OSw3IEBAIHR5cGVkZWYgZW51bSBGdWxsU2Ny
ZWVuU3RhdGUgOiBOU0ludGVnZXIgRnVsbFNjcmVlblN0YXRlOwogQGludGVyZmFjZSBXS0Z1bGxT
Y3JlZW5XaW5kb3dDb250cm9sbGVyIDogTlNXaW5kb3dDb250cm9sbGVyPE5TV2luZG93RGVsZWdh
dGU+IHsKIEBwcml2YXRlCiAgICAgTlNWaWV3ICpfd2ViVmlldzsgLy8gQ2Fubm90IGJlIHJldGFp
bmVkLCBzZWUgPHJkYXI6Ly9wcm9ibGVtLzE0ODg0NjY2Pi4KLSAgICBXZWJLaXQ6OldlYlBhZ2VQ
cm94eSogX3BhZ2U7CisgICAgTmFrZWRQdHI8V2ViS2l0OjpXZWJQYWdlUHJveHk+IF9wYWdlOwog
ICAgIFJldGFpblB0cjxXZWJDb3JlRnVsbFNjcmVlblBsYWNlaG9sZGVyVmlldz4gX3dlYlZpZXdQ
bGFjZWhvbGRlcjsKICAgICBSZXRhaW5QdHI8TlNWaWV3PiBfZXhpdFBsYWNlaG9sZGVyOwogICAg
IFJldGFpblB0cjxOU1ZpZXc+IF9jbGlwVmlldzsKQEAgLTcwLDcgKzcyLDcgQEAgdHlwZWRlZiBl
bnVtIEZ1bGxTY3JlZW5TdGF0ZSA6IE5TSW50ZWdlciBGdWxsU2NyZWVuU3RhdGU7CiBAcHJvcGVy
dHkgKHJlYWRvbmx5KSBOU1JlY3QgZmluYWxGcmFtZTsKIEBwcm9wZXJ0eSAoYXNzaWduKSBOU0Fy
cmF5ICpzYXZlZENvbnN0cmFpbnRzOwogCi0tIChpZClpbml0V2l0aFdpbmRvdzooTlNXaW5kb3cg
Kil3aW5kb3cgd2ViVmlldzooTlNWaWV3ICopd2ViVmlldyBwYWdlOihXZWJLaXQ6OldlYlBhZ2VQ
cm94eSYpcGFnZTsKKy0gKGlkKWluaXRXaXRoV2luZG93OihOU1dpbmRvdyAqKXdpbmRvdyB3ZWJW
aWV3OihOU1ZpZXcgKil3ZWJWaWV3IHBhZ2U6KE5ha2VkUmVmPFdlYktpdDo6V2ViUGFnZVByb3h5
PilwYWdlOwogCiAtIChXZWJDb3JlRnVsbFNjcmVlblBsYWNlaG9sZGVyVmlldyopd2ViVmlld1Bs
YWNlaG9sZGVyOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9tYWMvV0tG
dWxsU2NyZWVuV2luZG93Q29udHJvbGxlci5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL21h
Yy9XS0Z1bGxTY3JlZW5XaW5kb3dDb250cm9sbGVyLm1tCmluZGV4IDgyNWY4M2FlODg2ZGQ4Y2Rk
MDc1MzA2YTA3ODIxNjIxYzlkOWUxNDQuLjZkZGYwZDZjYWY4ODlmOWNhMGUxOWI1MTY2NGNjMDk0
YTk3MDdlYjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL21hYy9XS0Z1bGxT
Y3JlZW5XaW5kb3dDb250cm9sbGVyLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL21h
Yy9XS0Z1bGxTY3JlZW5XaW5kb3dDb250cm9sbGVyLm1tCkBAIC00OSw2ICs0OSw3IEBACiAjaW1w
b3J0IDxwYWwvc3BpL2NnL0NvcmVHcmFwaGljc1NQSS5oPgogI2ltcG9ydCA8cGFsL3N5c3RlbS9T
bGVlcERpc2FibGVyLmg+CiAjaW1wb3J0IDx3dGYvQmxvY2tPYmpDRXhjZXB0aW9ucy5oPgorI2lt
cG9ydCA8d3RmL05ha2VkUmVmLmg+CiAKIHN0YXRpYyBjb25zdCBOU1RpbWVJbnRlcnZhbCBEZWZh
dWx0V2F0Y2hkb2dUaW1lckludGVydmFsID0gMTsKIApAQCAtMTIxLDcgKzEyMiw3IEBAIEBpbXBs
ZW1lbnRhdGlvbiBXS0Z1bGxTY3JlZW5XaW5kb3dDb250cm9sbGVyCiAKICNwcmFnbWEgbWFyayAt
CiAjcHJhZ21hIG1hcmsgSW5pdGlhbGl6YXRpb24KLS0gKGlkKWluaXRXaXRoV2luZG93OihOU1dp
bmRvdyAqKXdpbmRvdyB3ZWJWaWV3OihOU1ZpZXcgKil3ZWJWaWV3IHBhZ2U6KFdlYktpdDo6V2Vi
UGFnZVByb3h5JilwYWdlCistIChpZClpbml0V2l0aFdpbmRvdzooTlNXaW5kb3cgKil3aW5kb3cg
d2ViVmlldzooTlNWaWV3ICopd2ViVmlldyBwYWdlOihOYWtlZFJlZjxXZWJLaXQ6OldlYlBhZ2VQ
cm94eT4pcGFnZQogewogICAgIHNlbGYgPSBbc3VwZXIgaW5pdFdpdGhXaW5kb3c6d2luZG93XTsK
ICAgICBpZiAoIXNlbGYpCkBAIC0xNTAsNyArMTUxLDcgQEAgLSAoaWQpaW5pdFdpdGhXaW5kb3c6
KE5TV2luZG93ICopd2luZG93IHdlYlZpZXc6KE5TVmlldyAqKXdlYlZpZXcgcGFnZTooV2ViS2l0
OjoKICAgICBbc2VsZiB3aW5kb3dEaWRMb2FkXTsKICAgICBbd2luZG93IGRpc3BsYXlJZk5lZWRl
ZF07CiAgICAgX3dlYlZpZXcgPSB3ZWJWaWV3OwotICAgIF9wYWdlID0gJnBhZ2U7CisgICAgX3Bh
Z2UgPSBwYWdlLnB0cigpOwogCiAgICAgX3ZpZGVvRnVsbHNjcmVlbkNsaWVudCA9IG1ha2VVbmlx
dWU8V2ViS2l0OjpXS0Z1bGxTY3JlZW5XaW5kb3dDb250cm9sbGVyVmlkZW9GdWxsc2NyZWVuTW9k
ZWxDbGllbnQ+KCk7CiAgICAgX3ZpZGVvRnVsbHNjcmVlbkNsaWVudC0+c2V0UGFyZW50KHNlbGYp
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvbWFjL1dLSW1tZWRpYXRlQWN0
aW9uQ29udHJvbGxlci5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvbWFjL1dLSW1tZWRpYXRl
QWN0aW9uQ29udHJvbGxlci5oCmluZGV4IGY2YmY2NWYwNzQyODIyZmY5YjFjMGI2OWVlNzVhNzg3
Y2U0ZjdjM2MuLmYyZDk3ZmUwNzgzMDk4MjdkZGQwYTIzYzIxNWJlMjYwMzYyMmJkMWEgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL21hYy9XS0ltbWVkaWF0ZUFjdGlvbkNvbnRy
b2xsZXIuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9tYWMvV0tJbW1lZGlhdGVBY3Rp
b25Db250cm9sbGVyLmgKQEAgLTMxLDYgKzMxLDggQEAKICNpbXBvcnQgIldLSW1tZWRpYXRlQWN0
aW9uVHlwZXMuaCIKICNpbXBvcnQgIldlYkhpdFRlc3RSZXN1bHREYXRhLmgiCiAjaW1wb3J0IDxw
YWwvc3BpL21hYy9OU0ltbWVkaWF0ZUFjdGlvbkdlc3R1cmVSZWNvZ25pemVyU1BJLmg+CisjaW1w
b3J0IDx3dGYvTmFrZWRQdHIuaD4KKyNpbXBvcnQgPHd0Zi9OYWtlZFJlZi5oPgogI2ltcG9ydCA8
d3RmL1JldGFpblB0ci5oPgogCiBuYW1lc3BhY2UgV2ViS2l0IHsKQEAgLTUwLDkgKzUyLDkgQEAg
ZW51bSBjbGFzcyBJbW1lZGlhdGVBY3Rpb25TdGF0ZSB7CiAKIEBpbnRlcmZhY2UgV0tJbW1lZGlh
dGVBY3Rpb25Db250cm9sbGVyIDogTlNPYmplY3QgPE5TSW1tZWRpYXRlQWN0aW9uR2VzdHVyZVJl
Y29nbml6ZXJEZWxlZ2F0ZT4gewogQHByaXZhdGUKLSAgICBXZWJLaXQ6OldlYlBhZ2VQcm94eSog
X3BhZ2U7CisgICAgTmFrZWRQdHI8V2ViS2l0OjpXZWJQYWdlUHJveHk+IF9wYWdlOwogICAgIE5T
VmlldyAqX3ZpZXc7Ci0gICAgV2ViS2l0OjpXZWJWaWV3SW1wbCogX3ZpZXdJbXBsOworICAgIE5h
a2VkUHRyPFdlYktpdDo6V2ViVmlld0ltcGw+IF92aWV3SW1wbDsKIAogICAgIFdlYktpdDo6SW1t
ZWRpYXRlQWN0aW9uU3RhdGUgX3N0YXRlOwogICAgIFdlYktpdDo6V2ViSGl0VGVzdFJlc3VsdERh
dGEgX2hpdFRlc3RSZXN1bHREYXRhOwpAQCAtNjgsNyArNzAsNyBAQCBlbnVtIGNsYXNzIEltbWVk
aWF0ZUFjdGlvblN0YXRlIHsKICAgICBCT09MIF9oYXNBY3RpdmVJbW1lZGlhdGVBY3Rpb247CiB9
CiAKLS0gKGluc3RhbmNldHlwZSlpbml0V2l0aFBhZ2U6KFdlYktpdDo6V2ViUGFnZVByb3h5Jilw
YWdlIHZpZXc6KE5TVmlldyAqKXZpZXcgdmlld0ltcGw6KFdlYktpdDo6V2ViVmlld0ltcGwmKXZp
ZXdJbXBsIHJlY29nbml6ZXI6KE5TSW1tZWRpYXRlQWN0aW9uR2VzdHVyZVJlY29nbml6ZXIgKilp
bW1lZGlhdGVBY3Rpb25SZWNvZ25pemVyOworLSAoaW5zdGFuY2V0eXBlKWluaXRXaXRoUGFnZToo
TmFrZWRSZWY8V2ViS2l0OjpXZWJQYWdlUHJveHk+KXBhZ2UgdmlldzooTlNWaWV3ICopdmlldyB2
aWV3SW1wbDooTmFrZWRSZWY8V2ViS2l0OjpXZWJWaWV3SW1wbD4pdmlld0ltcGwgcmVjb2duaXpl
cjooTlNJbW1lZGlhdGVBY3Rpb25HZXN0dXJlUmVjb2duaXplciAqKWltbWVkaWF0ZUFjdGlvblJl
Y29nbml6ZXI7CiAtICh2b2lkKXdpbGxEZXN0cm95VmlldzooTlNWaWV3ICopdmlldzsKIC0gKHZv
aWQpZGlkUGVyZm9ybUltbWVkaWF0ZUFjdGlvbkhpdFRlc3Q6KGNvbnN0IFdlYktpdDo6V2ViSGl0
VGVzdFJlc3VsdERhdGEmKWhpdFRlc3RSZXN1bHQgY29udGVudFByZXZlbnRzRGVmYXVsdDooQk9P
TCljb250ZW50UHJldmVudHNEZWZhdWx0IHVzZXJEYXRhOihBUEk6Ok9iamVjdCopdXNlckRhdGE7
CiAtICh2b2lkKWRpc21pc3NDb250ZW50UmVsYXRpdmVDaGlsZFdpbmRvd3M7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9tYWMvV0tJbW1lZGlhdGVBY3Rpb25Db250cm9sbGVy
Lm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvbWFjL1dLSW1tZWRpYXRlQWN0aW9uQ29udHJv
bGxlci5tbQppbmRleCBhZTg3YWE5Y2IwZDNmOTJhZGQwNzEzYzFkMGIwOTMwZjdlMTE4MDY3Li4z
OGRiZjEwNGU3NTVmMzQzNjkyMTFhZGYyOWFlYmQxOTNiMDIyZmQxIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9tYWMvV0tJbW1lZGlhdGVBY3Rpb25Db250cm9sbGVyLm1tCisr
KyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL21hYy9XS0ltbWVkaWF0ZUFjdGlvbkNvbnRyb2xs
ZXIubW0KQEAgLTYwLDE2ICs2MCwxNiBAQCBAZW5kCiAKIEBpbXBsZW1lbnRhdGlvbiBXS0ltbWVk
aWF0ZUFjdGlvbkNvbnRyb2xsZXIKIAotLSAoaW5zdGFuY2V0eXBlKWluaXRXaXRoUGFnZTooV2Vi
S2l0OjpXZWJQYWdlUHJveHkmKXBhZ2UgdmlldzooTlNWaWV3ICopdmlldyB2aWV3SW1wbDooV2Vi
S2l0OjpXZWJWaWV3SW1wbCYpdmlld0ltcGwgcmVjb2duaXplcjooTlNJbW1lZGlhdGVBY3Rpb25H
ZXN0dXJlUmVjb2duaXplciAqKWltbWVkaWF0ZUFjdGlvblJlY29nbml6ZXIKKy0gKGluc3RhbmNl
dHlwZSlpbml0V2l0aFBhZ2U6KE5ha2VkUmVmPFdlYktpdDo6V2ViUGFnZVByb3h5PilwYWdlIHZp
ZXc6KE5TVmlldyAqKXZpZXcgdmlld0ltcGw6KE5ha2VkUmVmPFdlYktpdDo6V2ViVmlld0ltcGw+
KXZpZXdJbXBsIHJlY29nbml6ZXI6KE5TSW1tZWRpYXRlQWN0aW9uR2VzdHVyZVJlY29nbml6ZXIg
KilpbW1lZGlhdGVBY3Rpb25SZWNvZ25pemVyCiB7CiAgICAgc2VsZiA9IFtzdXBlciBpbml0XTsK
IAogICAgIGlmICghc2VsZikKICAgICAgICAgcmV0dXJuIG5pbDsKIAotICAgIF9wYWdlID0gJnBh
Z2U7CisgICAgX3BhZ2UgPSBwYWdlLnB0cigpOwogICAgIF92aWV3ID0gdmlldzsKLSAgICBfdmll
d0ltcGwgPSAmdmlld0ltcGw7CisgICAgX3ZpZXdJbXBsID0gdmlld0ltcGwucHRyKCk7CiAgICAg
X3R5cGUgPSBrV0tJbW1lZGlhdGVBY3Rpb25Ob25lOwogICAgIF9pbW1lZGlhdGVBY3Rpb25SZWNv
Z25pemVyID0gaW1tZWRpYXRlQWN0aW9uUmVjb2duaXplcjsKICAgICBfaGFzQWN0aXZlSW1tZWRp
YXRlQWN0aW9uID0gTk87CkBAIC00MTIsNyArNDEyLDcgQEAgLSAoaWQ8TlNJbW1lZGlhdGVBY3Rp
b25BbmltYXRpb25Db250cm9sbGVyPilfYW5pbWF0aW9uQ29udHJvbGxlckZvckRhdGFEZXRlY3Rl
ZFQKICAgICBpZiAoIVtbZ2V0RERBY3Rpb25zTWFuYWdlckNsYXNzKCkgc2hhcmVkTWFuYWdlcl0g
aGFzQWN0aW9uc0ZvclJlc3VsdDphY3Rpb25Db250ZXh0Lm1haW5SZXN1bHQgYWN0aW9uQ29udGV4
dDphY3Rpb25Db250ZXh0XSkKICAgICAgICAgcmV0dXJuIG5pbDsKIAotICAgIFJlZlB0cjxXZWJL
aXQ6OldlYlBhZ2VQcm94eT4gcGFnZSA9IF9wYWdlOworICAgIFJlZlB0cjxXZWJLaXQ6OldlYlBh
Z2VQcm94eT4gcGFnZSA9IF9wYWdlLmdldCgpOwogICAgIFdlYkNvcmU6OlBhZ2VPdmVybGF5OjpQ
YWdlT3ZlcmxheUlEIG92ZXJsYXlJRCA9IF9oaXRUZXN0UmVzdWx0RGF0YS5kZXRlY3RlZERhdGFP
cmlnaW5hdGluZ1BhZ2VPdmVybGF5OwogICAgIF9jdXJyZW50QWN0aW9uQ29udGV4dCA9IFthY3Rp
b25Db250ZXh0IGNvbnRleHRGb3JWaWV3Ol92aWV3IGFsdE1vZGU6WUVTIGludGVyYWN0aW9uU3Rh
cnRlZEhhbmRsZXI6XigpIHsKICAgICAgICAgcGFnZS0+c2VuZChNZXNzYWdlczo6V2ViUGFnZTo6
RGF0YURldGVjdG9yc0RpZFByZXNlbnRVSShvdmVybGF5SUQpKTsKQEAgLTQ0OCw3ICs0NDgsNyBA
QCAtIChpZDxOU0ltbWVkaWF0ZUFjdGlvbkFuaW1hdGlvbkNvbnRyb2xsZXI+KV9hbmltYXRpb25D
b250cm9sbGVyRm9yRGF0YURldGVjdGVkTAogICAgIFthY3Rpb25Db250ZXh0IHNldEFsdE1vZGU6
WUVTXTsKICAgICBbYWN0aW9uQ29udGV4dCBzZXRJbW1lZGlhdGU6WUVTXTsKIAotICAgIFJlZlB0
cjxXZWJLaXQ6OldlYlBhZ2VQcm94eT4gcGFnZSA9IF9wYWdlOworICAgIFJlZlB0cjxXZWJLaXQ6
OldlYlBhZ2VQcm94eT4gcGFnZSA9IF9wYWdlLmdldCgpOwogICAgIF9jdXJyZW50QWN0aW9uQ29u
dGV4dCA9IFthY3Rpb25Db250ZXh0IGNvbnRleHRGb3JWaWV3Ol92aWV3IGFsdE1vZGU6WUVTIGlu
dGVyYWN0aW9uU3RhcnRlZEhhbmRsZXI6XigpIHsKICAgICB9IGludGVyYWN0aW9uQ2hhbmdlZEhh
bmRsZXI6XigpIHsKICAgICAgICAgaWYgKF9oaXRUZXN0UmVzdWx0RGF0YS5saW5rVGV4dEluZGlj
YXRvcikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL21hYy9XS0luc3BlY3Rv
clZpZXdDb250cm9sbGVyLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9tYWMvV0tJbnNwZWN0
b3JWaWV3Q29udHJvbGxlci5oCmluZGV4IDIwYmIyZTY2MWI1ZmVmZTczNjE5ZDAxYzZjM2MzOGEz
NjYyOGYyOTAuLjA4YmQwOGZmOWQ0ODdjNDBiNWVkZDFiNzFlNzhjMzkzNzlhYTJmNDMgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL21hYy9XS0luc3BlY3RvclZpZXdDb250cm9s
bGVyLmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvbWFjL1dLSW5zcGVjdG9yVmlld0Nv
bnRyb2xsZXIuaApAQCAtMjYsNiArMjYsNyBAQAogI3ByYWdtYSBvbmNlCiAKICNpbXBvcnQgPFdl
YktpdC9XS0ZvdW5kYXRpb24uaD4KKyNpbXBvcnQgPHd0Zi9OYWtlZFB0ci5oPgogCiAjaWYgUExB
VEZPUk0oTUFDKQogCkBAIC00NCw3ICs0NSw3IEBAIE5TX0FTU1VNRV9OT05OVUxMX0JFR0lOCiBA
cHJvcGVydHkgKG5vbmF0b21pYywgcmVhZG9ubHkpIFdLV2ViVmlldyAqd2ViVmlldzsKIEBwcm9w
ZXJ0eSAobm9uYXRvbWljLCB3ZWFrKSBpZCA8V0tJbnNwZWN0b3JWaWV3Q29udHJvbGxlckRlbGVn
YXRlPiBkZWxlZ2F0ZTsKIAotLSAoaW5zdGFuY2V0eXBlKWluaXRXaXRoSW5zcGVjdGVkUGFnZToo
V2ViS2l0OjpXZWJQYWdlUHJveHkqIF9OdWxsYWJsZSlpbnNwZWN0ZWRQYWdlOworLSAoaW5zdGFu
Y2V0eXBlKWluaXRXaXRoSW5zcGVjdGVkUGFnZTooTmFrZWRQdHI8V2ViS2l0OjpXZWJQYWdlUHJv
eHk+KWluc3BlY3RlZFBhZ2U7CiAKICsgKEJPT0wpdmlld0lzSW5zcGVjdG9yV2ViVmlldzooTlNW
aWV3ICopdmlldzsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvbWFjL1dL
SW5zcGVjdG9yVmlld0NvbnRyb2xsZXIubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9tYWMv
V0tJbnNwZWN0b3JWaWV3Q29udHJvbGxlci5tbQppbmRleCAwZjY1NzFiMmJlZjRhYzY5YmFhYzFi
ZWYxMGZkZmY5OWQ3NDJiNmJkLi5kOTI2M2UwZmQ2ZTZhZmE2YmE3YjVhMTk4NTk4OTU0NGY3YWE3
MGU4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9tYWMvV0tJbnNwZWN0b3JW
aWV3Q29udHJvbGxlci5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9tYWMvV0tJbnNw
ZWN0b3JWaWV3Q29udHJvbGxlci5tbQpAQCAtNDksMTIgKzQ5LDEyIEBAIEBpbnRlcmZhY2UgV0tJ
bnNwZWN0b3JWaWV3Q29udHJvbGxlciAoKSA8V0tVSURlbGVnYXRlLCBXS05hdmlnYXRpb25EZWxl
Z2F0ZSwgV0tJCiBAZW5kCiAKIEBpbXBsZW1lbnRhdGlvbiBXS0luc3BlY3RvclZpZXdDb250cm9s
bGVyIHsKLSAgICBXZWJLaXQ6OldlYlBhZ2VQcm94eSogX2luc3BlY3RlZFBhZ2U7CisgICAgTmFr
ZWRQdHI8V2ViS2l0OjpXZWJQYWdlUHJveHk+IF9pbnNwZWN0ZWRQYWdlOwogICAgIFJldGFpblB0
cjxXS0luc3BlY3RvcldLV2ViVmlldz4gX3dlYlZpZXc7CiAgICAgV2Vha09iakNQdHI8aWQgPFdL
SW5zcGVjdG9yVmlld0NvbnRyb2xsZXJEZWxlZ2F0ZT4+IF9kZWxlZ2F0ZTsKIH0KIAotLSAoaW5z
dGFuY2V0eXBlKWluaXRXaXRoSW5zcGVjdGVkUGFnZTooV2ViS2l0OjpXZWJQYWdlUHJveHkqKWlu
c3BlY3RlZFBhZ2UKKy0gKGluc3RhbmNldHlwZSlpbml0V2l0aEluc3BlY3RlZFBhZ2U6KE5ha2Vk
UHRyPFdlYktpdDo6V2ViUGFnZVByb3h5PilpbnNwZWN0ZWRQYWdlCiB7CiAgICAgaWYgKCEoc2Vs
ZiA9IFtzdXBlciBpbml0XSkpCiAgICAgICAgIHJldHVybiBuaWw7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9tYWMvV0tUZXh0RmluZGVyQ2xpZW50LmggYi9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9tYWMvV0tUZXh0RmluZGVyQ2xpZW50LmgKaW5kZXggNzlmZmVjZmZhNWFi
NDkxNzQxZTM1YWMxYWRjZGEyZGJiOTU4MTIzMi4uOWI2MGRiZjY2OTI5ZmZjOTMyZGIzNjcyOTEw
ZDk4MTkzYmI1N2ZlNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvbWFjL1dL
VGV4dEZpbmRlckNsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL21hYy9XS1Rl
eHRGaW5kZXJDbGllbnQuaApAQCAtMjcsNiArMjcsNyBAQAogI2RlZmluZSBXS1RleHRGaW5kZXJD
bGllbnRfaAogCiAjaW1wb3J0IDxXZWJLaXQvV0tGb3VuZGF0aW9uLmg+CisjaW1wb3J0IDx3dGYv
TmFrZWRSZWYuaD4KIAogI2lmIFBMQVRGT1JNKE1BQykKIApAQCAtMzgsNyArMzksNyBAQCBjbGFz
cyBXZWJQYWdlUHJveHk7CiAKIEBpbnRlcmZhY2UgV0tUZXh0RmluZGVyQ2xpZW50IDogTlNPYmpl
Y3QKIAotLSAoaW5zdGFuY2V0eXBlKWluaXRXaXRoUGFnZTooV2ViS2l0OjpXZWJQYWdlUHJveHkm
KXBhZ2UgdmlldzooTlNWaWV3ICopdmlldyB1c2VQbGF0Zm9ybUZpbmRVSTooQk9PTCl1c2VQbGF0
Zm9ybUZpbmRVSTsKKy0gKGluc3RhbmNldHlwZSlpbml0V2l0aFBhZ2U6KE5ha2VkUmVmPFdlYktp
dDo6V2ViUGFnZVByb3h5PilwYWdlIHZpZXc6KE5TVmlldyAqKXZpZXcgdXNlUGxhdGZvcm1GaW5k
VUk6KEJPT0wpdXNlUGxhdGZvcm1GaW5kVUk7CiAtICh2b2lkKXdpbGxEZXN0cm95VmlldzooTlNW
aWV3ICopdmlldzsKIAogQGVuZApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
bWFjL1dLVGV4dEZpbmRlckNsaWVudC5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL21hYy9X
S1RleHRGaW5kZXJDbGllbnQubW0KaW5kZXggNjlkOWQ5ZTJkNDQ0ODQzZDE1MjcwZjUxMTdmNzc0
Y2QyMzdkNWRiOC4uMzk2OGVkYTYzZGVkZTI5MDVlYzJmNzBlNTU5YzFiOGRhOTQ0MDI4ZSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvbWFjL1dLVGV4dEZpbmRlckNsaWVudC5t
bQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9tYWMvV0tUZXh0RmluZGVyQ2xpZW50Lm1t
CkBAIC0zNiw2ICszNiw3IEBACiAjaW1wb3J0IDxwYWwvc3BpL21hYy9OU1RleHRGaW5kZXJTUEku
aD4KICNpbXBvcnQgPHd0Zi9CbG9ja1B0ci5oPgogI2ltcG9ydCA8d3RmL0RlcXVlLmg+CisjaW1w
b3J0IDx3dGYvTmFrZWRQdHIuaD4KIAogLy8gRklYTUU6IEltcGxlbWVudCBzY3JvbGxGaW5kTWF0
Y2hUb1Zpc2libGUuCiAvLyBGSVhNRTogVGhlIE5TVGV4dEZpbmRlciBvdmVybGF5IGRvZXNuJ3Qg
bW92ZSB3aXRoIHNjcm9sbGluZzsgd2Ugc2hvdWxkIGhhdmUgYSBtb2RlIHdoZXJlIHdlIG1hbmFn
ZSB0aGUgb3ZlcmxheS4KQEAgLTE1MSwyMSArMTUyLDIxIEBAIC0gKHVuc2lnbmVkKWluZGV4CiBA
ZW5kCiAKIEBpbXBsZW1lbnRhdGlvbiBXS1RleHRGaW5kZXJDbGllbnQgewotICAgIFdlYktpdDo6
V2ViUGFnZVByb3h5KiBfcGFnZTsKKyAgICBOYWtlZFB0cjxXZWJLaXQ6OldlYlBhZ2VQcm94eT4g
X3BhZ2U7CiAgICAgTlNWaWV3ICpfdmlldzsKICAgICBEZXF1ZTxXVEY6OkZ1bmN0aW9uPHZvaWQo
TlNBcnJheSAqLCBib29sIGRpZFdyYXApPj4gX2ZpbmRSZXBseUNhbGxiYWNrczsKICAgICBEZXF1
ZTxXVEY6OkZ1bmN0aW9uPHZvaWQoTlNJbWFnZSAqKT4+IF9pbWFnZVJlcGx5Q2FsbGJhY2tzOwog
ICAgIEJPT0wgX3VzZVBsYXRmb3JtRmluZFVJOwogfQogCi0tIChpbnN0YW5jZXR5cGUpaW5pdFdp
dGhQYWdlOihXZWJLaXQ6OldlYlBhZ2VQcm94eSYpcGFnZSB2aWV3OihOU1ZpZXcgKil2aWV3IHVz
ZVBsYXRmb3JtRmluZFVJOihCT09MKXVzZVBsYXRmb3JtRmluZFVJCistIChpbnN0YW5jZXR5cGUp
aW5pdFdpdGhQYWdlOihOYWtlZFJlZjxXZWJLaXQ6OldlYlBhZ2VQcm94eT4pcGFnZSB2aWV3OihO
U1ZpZXcgKil2aWV3IHVzZVBsYXRmb3JtRmluZFVJOihCT09MKXVzZVBsYXRmb3JtRmluZFVJCiB7
CiAgICAgc2VsZiA9IFtzdXBlciBpbml0XTsKIAogICAgIGlmICghc2VsZikKICAgICAgICAgcmV0
dXJuIG5pbDsKIAotICAgIF9wYWdlID0gJnBhZ2U7CisgICAgX3BhZ2UgPSBwYWdlLnB0cigpOwog
ICAgIF92aWV3ID0gdmlldzsKICAgICBfdXNlUGxhdGZvcm1GaW5kVUkgPSB1c2VQbGF0Zm9ybUZp
bmRVSTsKICAgICAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL21hYy9XS1Zp
ZXdMYXlvdXRTdHJhdGVneS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvbWFjL1dLVmlld0xh
eW91dFN0cmF0ZWd5LmgKaW5kZXggMmRmN2UwN2RiOWViYmNmN2ExMTExMmU1NjI3MGU0MDY3YzU4
ODk4Ny4uMmZlZWY0Zjg5NzBiOTEwMTZlNjgzZjNmMWQ2YTc1NDdkODczNThmNSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvbWFjL1dLVmlld0xheW91dFN0cmF0ZWd5LmgKKysr
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvbWFjL1dLVmlld0xheW91dFN0cmF0ZWd5LmgKQEAg
LTI5LDYgKzI5LDggQEAKICNpZiBQTEFURk9STShNQUMpCiAKICNpbXBvcnQgIldLTGF5b3V0TW9k
ZS5oIgorI2ltcG9ydCA8d3RmL05ha2VkUHRyLmg+CisjaW1wb3J0IDx3dGYvTmFrZWRSZWYuaD4K
IAogbmFtZXNwYWNlIFdlYktpdCB7CiBjbGFzcyBXZWJQYWdlUHJveHk7CkBAIC0zOSwxNSArNDEs
MTUgQEAgY2xhc3MgV2ViVmlld0ltcGw7CiAKIEBpbnRlcmZhY2UgV0tWaWV3TGF5b3V0U3RyYXRl
Z3kgOiBOU09iamVjdCB7CiBAcGFja2FnZQotICAgIFdlYktpdDo6V2ViUGFnZVByb3h5KiBfcGFn
ZTsKLSAgICBXZWJLaXQ6OldlYlZpZXdJbXBsKiBfd2ViVmlld0ltcGw7CisgICAgTmFrZWRQdHI8
V2ViS2l0OjpXZWJQYWdlUHJveHk+IF9wYWdlOworICAgIE5ha2VkUHRyPFdlYktpdDo6V2ViVmll
d0ltcGw+IF93ZWJWaWV3SW1wbDsKICAgICBOU1ZpZXcgKl92aWV3OwogCiAgICAgV0tMYXlvdXRN
b2RlIF9sYXlvdXRNb2RlOwogICAgIHVuc2lnbmVkIF9mcmFtZVNpemVVcGRhdGVzRGlzYWJsZWRD
b3VudDsKIH0KIAotKyAoaW5zdGFuY2V0eXBlKWxheW91dFN0cmF0ZWd5V2l0aFBhZ2U6KFdlYktp
dDo6V2ViUGFnZVByb3h5JilwYWdlIHZpZXc6KE5TVmlldyAqKXZpZXcgdmlld0ltcGw6KFdlYktp
dDo6V2ViVmlld0ltcGwmKXdlYlZpZXdJbXBsIG1vZGU6KFdLTGF5b3V0TW9kZSltb2RlOworKyAo
aW5zdGFuY2V0eXBlKWxheW91dFN0cmF0ZWd5V2l0aFBhZ2U6KE5ha2VkUmVmPFdlYktpdDo6V2Vi
UGFnZVByb3h5PilwYWdlIHZpZXc6KE5TVmlldyAqKXZpZXcgdmlld0ltcGw6KE5ha2VkUmVmPFdl
YktpdDo6V2ViVmlld0ltcGw+KXdlYlZpZXdJbXBsIG1vZGU6KFdLTGF5b3V0TW9kZSltb2RlOwog
CiAtICh2b2lkKWludmFsaWRhdGU7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL21hYy9XS1ZpZXdMYXlvdXRTdHJhdGVneS5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L21hYy9XS1ZpZXdMYXlvdXRTdHJhdGVneS5tbQppbmRleCA2MzlkNTk5NDU0MjhiMDI1NjI4YzM1
YjUyNWM1NjI2MmQxZDNkZDFiLi5lYjBiYWIzMDExMjlmYTA4M2U5YTE2ZGU2MmNlY2U2MDBkMDEz
ZDg0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9tYWMvV0tWaWV3TGF5b3V0
U3RyYXRlZ3kubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvbWFjL1dLVmlld0xheW91
dFN0cmF0ZWd5Lm1tCkBAIC00NywyMyArNDcsMjMgQEAgQGVuZAogCiBAaW1wbGVtZW50YXRpb24g
V0tWaWV3TGF5b3V0U3RyYXRlZ3kKIAotKyAoaW5zdGFuY2V0eXBlKWxheW91dFN0cmF0ZWd5V2l0
aFBhZ2U6KFdlYktpdDo6V2ViUGFnZVByb3h5JilwYWdlIHZpZXc6KE5TVmlldyAqKXZpZXcgdmll
d0ltcGw6KFdlYktpdDo6V2ViVmlld0ltcGwmKXdlYlZpZXdJbXBsIG1vZGU6KFdLTGF5b3V0TW9k
ZSltb2RlCisrIChpbnN0YW5jZXR5cGUpbGF5b3V0U3RyYXRlZ3lXaXRoUGFnZTooTmFrZWRSZWY8
V2ViS2l0OjpXZWJQYWdlUHJveHk+KXBhZ2UgdmlldzooTlNWaWV3ICopdmlldyB2aWV3SW1wbDoo
TmFrZWRSZWY8V2ViS2l0OjpXZWJWaWV3SW1wbD4pd2ViVmlld0ltcGwgbW9kZTooV0tMYXlvdXRN
b2RlKW1vZGUKIHsKICAgICBXS1ZpZXdMYXlvdXRTdHJhdGVneSAqc3RyYXRlZ3k7CiAKICAgICBz
d2l0Y2ggKG1vZGUpIHsKICAgICBjYXNlIGtXS0xheW91dE1vZGVGaXhlZFNpemU6Ci0gICAgICAg
IHN0cmF0ZWd5ID0gW1tXS1ZpZXdGaXhlZFNpemVMYXlvdXRTdHJhdGVneSBhbGxvY10gaW5pdFdp
dGhQYWdlOnBhZ2Ugdmlldzp2aWV3IHZpZXdJbXBsOndlYlZpZXdJbXBsIG1vZGU6bW9kZV07Cisg
ICAgICAgIHN0cmF0ZWd5ID0gW1tXS1ZpZXdGaXhlZFNpemVMYXlvdXRTdHJhdGVneSBhbGxvY10g
aW5pdFdpdGhQYWdlOnBhZ2UuY29weVJlZigpIHZpZXc6dmlldyB2aWV3SW1wbDp3ZWJWaWV3SW1w
bC5jb3B5UmVmKCkgbW9kZTptb2RlXTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBrV0tMYXlv
dXRNb2RlRHluYW1pY1NpemVDb21wdXRlZEZyb21WaWV3U2NhbGU6Ci0gICAgICAgIHN0cmF0ZWd5
ID0gW1tXS1ZpZXdEeW5hbWljU2l6ZUNvbXB1dGVkRnJvbVZpZXdTY2FsZUxheW91dFN0cmF0ZWd5
IGFsbG9jXSBpbml0V2l0aFBhZ2U6cGFnZSB2aWV3OnZpZXcgdmlld0ltcGw6d2ViVmlld0ltcGwg
bW9kZTptb2RlXTsKKyAgICAgICAgc3RyYXRlZ3kgPSBbW1dLVmlld0R5bmFtaWNTaXplQ29tcHV0
ZWRGcm9tVmlld1NjYWxlTGF5b3V0U3RyYXRlZ3kgYWxsb2NdIGluaXRXaXRoUGFnZTpwYWdlLmNv
cHlSZWYoKSB2aWV3OnZpZXcgdmlld0ltcGw6d2ViVmlld0ltcGwuY29weVJlZigpIG1vZGU6bW9k
ZV07CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2Uga1dLTGF5b3V0TW9kZUR5bmFtaWNTaXplQ29t
cHV0ZWRGcm9tTWluaW11bURvY3VtZW50U2l6ZToKLSAgICAgICAgc3RyYXRlZ3kgPSBbW1dLVmll
d0R5bmFtaWNTaXplQ29tcHV0ZWRGcm9tTWluaW11bURvY3VtZW50U2l6ZUxheW91dFN0cmF0ZWd5
IGFsbG9jXSBpbml0V2l0aFBhZ2U6cGFnZSB2aWV3OnZpZXcgdmlld0ltcGw6d2ViVmlld0ltcGwg
bW9kZTptb2RlXTsKKyAgICAgICAgc3RyYXRlZ3kgPSBbW1dLVmlld0R5bmFtaWNTaXplQ29tcHV0
ZWRGcm9tTWluaW11bURvY3VtZW50U2l6ZUxheW91dFN0cmF0ZWd5IGFsbG9jXSBpbml0V2l0aFBh
Z2U6cGFnZS5jb3B5UmVmKCkgdmlldzp2aWV3IHZpZXdJbXBsOndlYlZpZXdJbXBsLmNvcHlSZWYo
KSBtb2RlOm1vZGVdOwogICAgICAgICBicmVhazsKICAgICBjYXNlIGtXS0xheW91dE1vZGVWaWV3
U2l6ZToKICAgICBkZWZhdWx0OgotICAgICAgICBzdHJhdGVneSA9IFtbV0tWaWV3Vmlld1NpemVM
YXlvdXRTdHJhdGVneSBhbGxvY10gaW5pdFdpdGhQYWdlOnBhZ2Ugdmlldzp2aWV3IHZpZXdJbXBs
OndlYlZpZXdJbXBsIG1vZGU6bW9kZV07CisgICAgICAgIHN0cmF0ZWd5ID0gW1tXS1ZpZXdWaWV3
U2l6ZUxheW91dFN0cmF0ZWd5IGFsbG9jXSBpbml0V2l0aFBhZ2U6cGFnZS5jb3B5UmVmKCkgdmll
dzp2aWV3IHZpZXdJbXBsOndlYlZpZXdJbXBsLmNvcHlSZWYoKSBtb2RlOm1vZGVdOwogICAgICAg
ICBicmVhazsKICAgICB9CiAKQEAgLTcyLDE1ICs3MiwxNSBAQCArIChpbnN0YW5jZXR5cGUpbGF5
b3V0U3RyYXRlZ3lXaXRoUGFnZTooV2ViS2l0OjpXZWJQYWdlUHJveHkmKXBhZ2UgdmlldzooTlNW
aWV3CiAgICAgcmV0dXJuIFtzdHJhdGVneSBhdXRvcmVsZWFzZV07CiB9CiAKLS0gKGluc3RhbmNl
dHlwZSlpbml0V2l0aFBhZ2U6KFdlYktpdDo6V2ViUGFnZVByb3h5JilwYWdlIHZpZXc6KE5TVmll
dyAqKXZpZXcgdmlld0ltcGw6KFdlYktpdDo6V2ViVmlld0ltcGwmKXdlYlZpZXdJbXBsIG1vZGU6
KFdLTGF5b3V0TW9kZSltb2RlCistIChpbnN0YW5jZXR5cGUpaW5pdFdpdGhQYWdlOihOYWtlZFJl
ZjxXZWJLaXQ6OldlYlBhZ2VQcm94eT4pcGFnZSB2aWV3OihOU1ZpZXcgKil2aWV3IHZpZXdJbXBs
OihOYWtlZFJlZjxXZWJLaXQ6OldlYlZpZXdJbXBsPil3ZWJWaWV3SW1wbCBtb2RlOihXS0xheW91
dE1vZGUpbW9kZQogewogICAgIHNlbGYgPSBbc3VwZXIgaW5pdF07CiAKICAgICBpZiAoIXNlbGYp
CiAgICAgICAgIHJldHVybiBuaWw7CiAKLSAgICBfcGFnZSA9ICZwYWdlOwotICAgIF93ZWJWaWV3
SW1wbCA9ICZ3ZWJWaWV3SW1wbDsKKyAgICBfcGFnZSA9IHBhZ2UucHRyKCk7CisgICAgX3dlYlZp
ZXdJbXBsID0gd2ViVmlld0ltcGwucHRyKCk7CiAgICAgX3ZpZXcgPSB2aWV3OwogICAgIF9sYXlv
dXRNb2RlID0gbW9kZTsKIApAQCAtMTUyLDE0ICsxNTIsMTQgQEAgQGVuZAogCiBAaW1wbGVtZW50
YXRpb24gV0tWaWV3Vmlld1NpemVMYXlvdXRTdHJhdGVneQogCi0tIChpbnN0YW5jZXR5cGUpaW5p
dFdpdGhQYWdlOihXZWJLaXQ6OldlYlBhZ2VQcm94eSYpcGFnZSB2aWV3OihOU1ZpZXcgKil2aWV3
IHZpZXdJbXBsOihXZWJLaXQ6OldlYlZpZXdJbXBsJil3ZWJWaWV3SW1wbCBtb2RlOihXS0xheW91
dE1vZGUpbW9kZQorLSAoaW5zdGFuY2V0eXBlKWluaXRXaXRoUGFnZTooTmFrZWRSZWY8V2ViS2l0
OjpXZWJQYWdlUHJveHk+KXBhZ2UgdmlldzooTlNWaWV3ICopdmlldyB2aWV3SW1wbDooTmFrZWRS
ZWY8V2ViS2l0OjpXZWJWaWV3SW1wbD4pd2ViVmlld0ltcGwgbW9kZTooV0tMYXlvdXRNb2RlKW1v
ZGUKIHsKLSAgICBzZWxmID0gW3N1cGVyIGluaXRXaXRoUGFnZTpwYWdlIHZpZXc6dmlldyB2aWV3
SW1wbDp3ZWJWaWV3SW1wbCBtb2RlOm1vZGVdOworICAgIHNlbGYgPSBbc3VwZXIgaW5pdFdpdGhQ
YWdlOnBhZ2UuY29weVJlZigpIHZpZXc6dmlldyB2aWV3SW1wbDp3ZWJWaWV3SW1wbC5jb3B5UmVm
KCkgbW9kZTptb2RlXTsKIAogICAgIGlmICghc2VsZikKICAgICAgICAgcmV0dXJuIG5pbDsKIAot
ICAgIHBhZ2Uuc2V0VXNlRml4ZWRMYXlvdXQoZmFsc2UpOworICAgIHBhZ2UtPnNldFVzZUZpeGVk
TGF5b3V0KGZhbHNlKTsKIAogICAgIHJldHVybiBzZWxmOwogfQpAQCAtMTcyLDE0ICsxNzIsMTQg
QEAgQGVuZAogCiBAaW1wbGVtZW50YXRpb24gV0tWaWV3Rml4ZWRTaXplTGF5b3V0U3RyYXRlZ3kK
IAotLSAoaW5zdGFuY2V0eXBlKWluaXRXaXRoUGFnZTooV2ViS2l0OjpXZWJQYWdlUHJveHkmKXBh
Z2UgdmlldzooTlNWaWV3ICopdmlldyB2aWV3SW1wbDooV2ViS2l0OjpXZWJWaWV3SW1wbCYpd2Vi
Vmlld0ltcGwgbW9kZTooV0tMYXlvdXRNb2RlKW1vZGUKKy0gKGluc3RhbmNldHlwZSlpbml0V2l0
aFBhZ2U6KE5ha2VkUmVmPFdlYktpdDo6V2ViUGFnZVByb3h5PilwYWdlIHZpZXc6KE5TVmlldyAq
KXZpZXcgdmlld0ltcGw6KE5ha2VkUmVmPFdlYktpdDo6V2ViVmlld0ltcGw+KXdlYlZpZXdJbXBs
IG1vZGU6KFdLTGF5b3V0TW9kZSltb2RlCiB7Ci0gICAgc2VsZiA9IFtzdXBlciBpbml0V2l0aFBh
Z2U6cGFnZSB2aWV3OnZpZXcgdmlld0ltcGw6d2ViVmlld0ltcGwgbW9kZTptb2RlXTsKKyAgICBz
ZWxmID0gW3N1cGVyIGluaXRXaXRoUGFnZTpwYWdlLmNvcHlSZWYoKSB2aWV3OnZpZXcgdmlld0lt
cGw6d2ViVmlld0ltcGwuY29weVJlZigpIG1vZGU6bW9kZV07CiAKICAgICBpZiAoIXNlbGYpCiAg
ICAgICAgIHJldHVybiBuaWw7CiAKLSAgICBwYWdlLnNldFVzZUZpeGVkTGF5b3V0KHRydWUpOwor
ICAgIHBhZ2UtPnNldFVzZUZpeGVkTGF5b3V0KHRydWUpOwogCiAgICAgcmV0dXJuIHNlbGY7CiB9
CkBAIC0xOTIsMTQgKzE5MiwxNCBAQCBAZW5kCiAKIEBpbXBsZW1lbnRhdGlvbiBXS1ZpZXdEeW5h
bWljU2l6ZUNvbXB1dGVkRnJvbVZpZXdTY2FsZUxheW91dFN0cmF0ZWd5CiAKLS0gKGluc3RhbmNl
dHlwZSlpbml0V2l0aFBhZ2U6KFdlYktpdDo6V2ViUGFnZVByb3h5JilwYWdlIHZpZXc6KE5TVmll
dyAqKXZpZXcgdmlld0ltcGw6KFdlYktpdDo6V2ViVmlld0ltcGwmKXdlYlZpZXdJbXBsIG1vZGU6
KFdLTGF5b3V0TW9kZSltb2RlCistIChpbnN0YW5jZXR5cGUpaW5pdFdpdGhQYWdlOihOYWtlZFJl
ZjxXZWJLaXQ6OldlYlBhZ2VQcm94eT4pcGFnZSB2aWV3OihOU1ZpZXcgKil2aWV3IHZpZXdJbXBs
OihOYWtlZFJlZjxXZWJLaXQ6OldlYlZpZXdJbXBsPil3ZWJWaWV3SW1wbCBtb2RlOihXS0xheW91
dE1vZGUpbW9kZQogewotICAgIHNlbGYgPSBbc3VwZXIgaW5pdFdpdGhQYWdlOnBhZ2Ugdmlldzp2
aWV3IHZpZXdJbXBsOndlYlZpZXdJbXBsIG1vZGU6bW9kZV07CisgICAgc2VsZiA9IFtzdXBlciBp
bml0V2l0aFBhZ2U6cGFnZS5jb3B5UmVmKCkgdmlldzp2aWV3IHZpZXdJbXBsOndlYlZpZXdJbXBs
LmNvcHlSZWYoKSBtb2RlOm1vZGVdOwogCiAgICAgaWYgKCFzZWxmKQogICAgICAgICByZXR1cm4g
bmlsOwogCi0gICAgcGFnZS5zZXRVc2VGaXhlZExheW91dCh0cnVlKTsKKyAgICBwYWdlLT5zZXRV
c2VGaXhlZExheW91dCh0cnVlKTsKIAogICAgIHJldHVybiBzZWxmOwogfQpAQCAtMjMxLDkgKzIz
MSw5IEBAIEBlbmQKIAogQGltcGxlbWVudGF0aW9uIFdLVmlld0R5bmFtaWNTaXplQ29tcHV0ZWRG
cm9tTWluaW11bURvY3VtZW50U2l6ZUxheW91dFN0cmF0ZWd5CiAKLS0gKGluc3RhbmNldHlwZSlp
bml0V2l0aFBhZ2U6KFdlYktpdDo6V2ViUGFnZVByb3h5JilwYWdlIHZpZXc6KE5TVmlldyAqKXZp
ZXcgdmlld0ltcGw6KFdlYktpdDo6V2ViVmlld0ltcGwmKXdlYlZpZXdJbXBsIG1vZGU6KFdLTGF5
b3V0TW9kZSltb2RlCistIChpbnN0YW5jZXR5cGUpaW5pdFdpdGhQYWdlOihOYWtlZFJlZjxXZWJL
aXQ6OldlYlBhZ2VQcm94eT4pcGFnZSB2aWV3OihOU1ZpZXcgKil2aWV3IHZpZXdJbXBsOihOYWtl
ZFJlZjxXZWJLaXQ6OldlYlZpZXdJbXBsPil3ZWJWaWV3SW1wbCBtb2RlOihXS0xheW91dE1vZGUp
bW9kZQogewotICAgIHNlbGYgPSBbc3VwZXIgaW5pdFdpdGhQYWdlOnBhZ2Ugdmlldzp2aWV3IHZp
ZXdJbXBsOndlYlZpZXdJbXBsIG1vZGU6bW9kZV07CisgICAgc2VsZiA9IFtzdXBlciBpbml0V2l0
aFBhZ2U6cGFnZS5jb3B5UmVmKCkgdmlldzp2aWV3IHZpZXdJbXBsOndlYlZpZXdJbXBsLmNvcHlS
ZWYoKSBtb2RlOm1vZGVdOwogCiAgICAgaWYgKCFzZWxmKQogICAgICAgICByZXR1cm4gbmlsOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9t
YWMvV0tET01Eb2N1bWVudC5tbSBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1
bmRsZS9BUEkvbWFjL1dLRE9NRG9jdW1lbnQubW0KaW5kZXggMGYyNzFlNWRlN2UwYTRkNWE2ODEw
NTJmMDJkZWNjMGUxYTQxNmRmZS4uMTY2ZTc5ZDAzMjIyZWM5ODI0MTE4YTQ3MGMwMjA0OTRhNmI1
OGMwZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxl
L0FQSS9tYWMvV0tET01Eb2N1bWVudC5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
SW5qZWN0ZWRCdW5kbGUvQVBJL21hYy9XS0RPTURvY3VtZW50Lm1tCkBAIC0zMiw2ICszMiw3IEBA
CiAjaW1wb3J0IDxXZWJDb3JlL0hUTUxFbGVtZW50Lmg+CiAjaW1wb3J0IDxXZWJDb3JlL1RleHQu
aD4KICNpbXBvcnQgPFdlYkNvcmUvbWFya3VwLmg+CisjaW1wb3J0IDx3dGYvTmFrZWRSZWYuaD4K
IAogQGludGVyZmFjZSBXS0RPTURvY3VtZW50UGFyc2VyWWllbGRUb2tlbiA6IE5TT2JqZWN0CiAK
QEAgLTQxLDEwICs0MiwxMCBAQCBAaW1wbGVtZW50YXRpb24gV0tET01Eb2N1bWVudFBhcnNlcllp
ZWxkVG9rZW4gewogICAgIHN0ZDo6dW5pcXVlX3B0cjxXZWJDb3JlOjpEb2N1bWVudFBhcnNlcllp
ZWxkVG9rZW4+IF90b2tlbjsKIH0KIAotLSAoaW5zdGFuY2V0eXBlKWluaXRXaXRoRG9jdW1lbnQ6
KFdlYkNvcmU6OkRvY3VtZW50Jilkb2N1bWVudAorLSAoaW5zdGFuY2V0eXBlKWluaXRXaXRoRG9j
dW1lbnQ6KE5ha2VkUmVmPFdlYkNvcmU6OkRvY3VtZW50Pilkb2N1bWVudAogewogICAgIGlmIChz
ZWxmID0gW3N1cGVyIGluaXRdKQotICAgICAgICBfdG9rZW4gPSBkb2N1bWVudC5jcmVhdGVQYXJz
ZXJZaWVsZFRva2VuKCk7CisgICAgICAgIF90b2tlbiA9IGRvY3VtZW50LT5jcmVhdGVQYXJzZXJZ
aWVsZFRva2VuKCk7CiAgICAgcmV0dXJuIHNlbGY7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9XS0FjY2Vzc2liaWxpdHlXZWJQYWdlT2JqZWN0
QmFzZS5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1dLQWNjZXNzaWJp
bGl0eVdlYlBhZ2VPYmplY3RCYXNlLmgKaW5kZXggYWVjZDRhNTA1Yzk5ODIzMDBlMzg0MDczNjdj
OTg3OTAzMzI4MDU5Yi4uYTExNjUyODM1MmIxZjFmNTFlM2Q0OTRkZDg0MzIyYjE3NjI4MThkMiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1dLQWNjZXNz
aWJpbGl0eVdlYlBhZ2VPYmplY3RCYXNlLmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L1dlYlBhZ2UvbWFjL1dLQWNjZXNzaWJpbGl0eVdlYlBhZ2VPYmplY3RCYXNlLmgKQEAgLTI3LDE5
ICsyNywyMCBAQAogI2RlZmluZSBXS0FjY2Vzc2liaWxpdHlXZWJQYWdlT2JqZWN0QmFzZV9oCiAK
ICNpbmNsdWRlIDxXZWJDb3JlL1BhZ2VJZGVudGlmaWVyLmg+CisjaW5jbHVkZSA8d3RmL05ha2Vk
UHRyLmg+CiAKIG5hbWVzcGFjZSBXZWJLaXQgewogY2xhc3MgV2ViUGFnZTsKIH0KIAogQGludGVy
ZmFjZSBXS0FjY2Vzc2liaWxpdHlXZWJQYWdlT2JqZWN0QmFzZSA6IE5TT2JqZWN0IHsKLSAgICBX
ZWJLaXQ6OldlYlBhZ2UqIG1fcGFnZTsKKyAgICBOYWtlZFB0cjxXZWJLaXQ6OldlYlBhZ2U+IG1f
cGFnZTsKICAgICBXZWJDb3JlOjpQYWdlSWRlbnRpZmllciBtX3BhZ2VJRDsKICAgICBpZCBtX3Bh
cmVudDsKICAgICBib29sIG1faGFzTWFpbkZyYW1lUGx1Z2luOwogfQogCi0tICh2b2lkKXNldFdl
YlBhZ2U6KFdlYktpdDo6V2ViUGFnZSopcGFnZTsKKy0gKHZvaWQpc2V0V2ViUGFnZTooTmFrZWRQ
dHI8V2ViS2l0OjpXZWJQYWdlPilwYWdlOwogLSAodm9pZClzZXRSZW1vdGVQYXJlbnQ6KGlkKXBh
cmVudDsKIC0gKHZvaWQpc2V0SGFzTWFpbkZyYW1lUGx1Z2luOihib29sKWhhc1BsdWdpbjsKIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1dLQWNjZXNz
aWJpbGl0eVdlYlBhZ2VPYmplY3RCYXNlLm1tIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dl
YlBhZ2UvbWFjL1dLQWNjZXNzaWJpbGl0eVdlYlBhZ2VPYmplY3RCYXNlLm1tCmluZGV4IGQ4Njgy
YTk4YjFlYjIyOWI4YzU5MzVhNjg5ZTVhNzEzNjc3ODUwMTguLjA4ZmU3ZmQxNGFmMjE0MjM2MjM2
Nzg5OTQyOTY2ZWQ5YzRlYWNhODYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9XZWJQYWdlL21hYy9XS0FjY2Vzc2liaWxpdHlXZWJQYWdlT2JqZWN0QmFzZS5tbQorKysgYi9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9tYWMvV0tBY2Nlc3NpYmlsaXR5V2ViUGFn
ZU9iamVjdEJhc2UubW0KQEAgLTQ1LDcgKzQ1LDcgQEAKIAogQGltcGxlbWVudGF0aW9uIFdLQWNj
ZXNzaWJpbGl0eVdlYlBhZ2VPYmplY3RCYXNlCiAKLS0gKFdlYkNvcmU6OkFYT2JqZWN0Q2FjaGUq
KWF4T2JqZWN0Q2FjaGUKKy0gKE5ha2VkUHRyPFdlYkNvcmU6OkFYT2JqZWN0Q2FjaGU+KWF4T2Jq
ZWN0Q2FjaGUKIHsKICAgICBpZiAoIW1fcGFnZSkKICAgICAgICAgcmV0dXJuIG51bGxwdHI7CkBA
IC05OSw3ICs5OSw3IEBAIC0gKGlkKWFjY2Vzc2liaWxpdHlSb290T2JqZWN0V3JhcHBlcgogICAg
IHJldHVybiBuaWw7CiB9CiAKLS0gKHZvaWQpc2V0V2ViUGFnZTooV2ViS2l0OjpXZWJQYWdlKilw
YWdlCistICh2b2lkKXNldFdlYlBhZ2U6KE5ha2VkUHRyPFdlYktpdDo6V2ViUGFnZT4pcGFnZQog
ewogICAgIG1fcGFnZSA9IHBhZ2U7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kv
bWFjL1BsdWdpbnMvV2ViQmFzZU5ldHNjYXBlUGx1Z2luVmlldy5oIGIvU291cmNlL1dlYktpdExl
Z2FjeS9tYWMvUGx1Z2lucy9XZWJCYXNlTmV0c2NhcGVQbHVnaW5WaWV3LmgKaW5kZXggYzIzN2Nj
ZjkxY2I0YmE2OTEwOTVlNDM0YjU3ZDEzMzk3MGY1ODNlMy4uYzVhOTYxZTM3N2VlOGZlMmQwMzU4
ODJhYzQ1MDE5YzY1OWFkZjZlYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMv
UGx1Z2lucy9XZWJCYXNlTmV0c2NhcGVQbHVnaW5WaWV3LmgKKysrIGIvU291cmNlL1dlYktpdExl
Z2FjeS9tYWMvUGx1Z2lucy9XZWJCYXNlTmV0c2NhcGVQbHVnaW5WaWV3LmgKQEAgLTMxLDYgKzMx
LDcgQEAKIAogI2ltcG9ydCAiV2ViTmV0c2NhcGVQbHVnaW5QYWNrYWdlLmgiCiAjaW1wb3J0IDx3
dGYvRm9yd2FyZC5oPgorI2ltcG9ydCA8d3RmL05ha2VkUHRyLmg+CiAjaW1wb3J0IDx3dGYvUmVm
UHRyLmg+CiAjaW1wb3J0IDx3dGYvUmV0YWluUHRyLmg+CiAKQEAgLTk3LDcgKzk4LDcgQEAgbmFt
ZXNwYWNlIFdlYkNvcmUgewogLSAoV2ViRGF0YVNvdXJjZSAqKWRhdGFTb3VyY2U7CiAtIChXZWJW
aWV3ICopd2ViVmlldzsKIC0gKE5TV2luZG93ICopY3VycmVudFdpbmRvdzsKLS0gKFdlYkNvcmU6
OkhUTUxQbHVnSW5FbGVtZW50KillbGVtZW50OworLSAoTmFrZWRQdHI8V2ViQ29yZTo6SFRNTFBs
dWdJbkVsZW1lbnQ+KWVsZW1lbnQ7CiAKIC0gKHZvaWQpcmVtb3ZlVHJhY2tpbmdSZWN0OwogLSAo
dm9pZClyZXNldFRyYWNraW5nUmVjdDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kv
bWFjL1BsdWdpbnMvV2ViQmFzZU5ldHNjYXBlUGx1Z2luVmlldy5tbSBiL1NvdXJjZS9XZWJLaXRM
ZWdhY3kvbWFjL1BsdWdpbnMvV2ViQmFzZU5ldHNjYXBlUGx1Z2luVmlldy5tbQppbmRleCA0Zjg5
OWVkZTJjNTIyNzY1MjQxYWE5YWNhYWI2OWVlYmRhNmFmNjlkLi45MWE4N2Y3MGQ1ZjE5ODc0MjIy
NjJmMGM1NTY1NjRmNDBlMDA2ZDFhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21h
Yy9QbHVnaW5zL1dlYkJhc2VOZXRzY2FwZVBsdWdpblZpZXcubW0KKysrIGIvU291cmNlL1dlYktp
dExlZ2FjeS9tYWMvUGx1Z2lucy9XZWJCYXNlTmV0c2NhcGVQbHVnaW5WaWV3Lm1tCkBAIC02NjQs
NyArNjY0LDcgQEAgLSAoTlNXaW5kb3cgKiljdXJyZW50V2luZG93CiAgICAgcmV0dXJuIFtzZWxm
IHdpbmRvd10gPyBbc2VsZiB3aW5kb3ddIDogW1tzZWxmIHdlYlZpZXddIGhvc3RXaW5kb3ddOwog
fQogCi0tIChXZWJDb3JlOjpIVE1MUGx1Z0luRWxlbWVudCopZWxlbWVudAorLSAoTmFrZWRQdHI8
V2ViQ29yZTo6SFRNTFBsdWdJbkVsZW1lbnQ+KWVsZW1lbnQKIHsKICAgICByZXR1cm4gX2VsZW1l
bnQuZ2V0KCk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJDb3Jl
U3VwcG9ydC9XZWJFZGl0b3JDbGllbnQubW0gYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJD
b3JlU3VwcG9ydC9XZWJFZGl0b3JDbGllbnQubW0KaW5kZXggMzNiNjg5ZDdiMjdlZmU3NmM4ZmI4
ODA1MTFhMjdlMTMwZjg1N2IzNC4uMjAxMzg0ZjAwMmUzNjU3YzUyN2U1NzM5NWEzMDY1ZmU4YTM2
MDI4MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViQ29yZVN1cHBvcnQv
V2ViRWRpdG9yQ2xpZW50Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYkNvcmVT
dXBwb3J0L1dlYkVkaXRvckNsaWVudC5tbQpAQCAtNDcyLDcgKzQ3Miw3IEBAIHZvaWQgX1dlYkNy
ZWF0ZUZyYWdtZW50KERvY3VtZW50JiBkb2N1bWVudCwgTlNBdHRyaWJ1dGVkU3RyaW5nICpzdHJp
bmcsIEZyYWdtZW50CiAgICAgICAgIGRvY3VtZW50OmtpdCgmZG9jdW1lbnQpIGRvY3VtZW50QXR0
cmlidXRlczpkb2N1bWVudEF0dHJpYnV0ZXMgc3VicmVzb3VyY2VzOiZzdWJyZXNvdXJjZXNdOwog
ICAgIHJlc3VsdC5mcmFnbWVudCA9IGNvcmUoZnJhZ21lbnQpOwogICAgIGZvciAoV2ViUmVzb3Vy
Y2UqIHJlc291cmNlIGluIHN1YnJlc291cmNlcykKLSAgICAgICAgcmVzdWx0LnJlc291cmNlcy5h
cHBlbmQoW3Jlc291cmNlIF9jb3JlUmVzb3VyY2VdKTsKKyAgICAgICAgcmVzdWx0LnJlc291cmNl
cy5hcHBlbmQoW3Jlc291cmNlIF9jb3JlUmVzb3VyY2VdLmdldCgpKTsKIH0KIAogI2VuZGlmCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFt
ZUxvYWRlckNsaWVudC5tbSBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYkNvcmVTdXBwb3J0
L1dlYkZyYW1lTG9hZGVyQ2xpZW50Lm1tCmluZGV4IDI5NjJmZTBjNTE3MjMxZmVkMjc5MDdkNWRj
ZjJkOTNhMTAzYTMzNDMuLmVlZGEzYTcxMjU3MDcyODBlZTUyNjNlZTIyYzg0ZmQyZDFiMjI4NmQg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkZy
YW1lTG9hZGVyQ2xpZW50Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYkNvcmVT
dXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50Lm1tCkBAIC0xMjgsNiArMTI4LDcgQEAKICNpbXBv
cnQgPHBhbC9zcGkvY29jb2EvTlNVUkxGaWxlVHlwZU1hcHBpbmdzU1BJLmg+CiAjaW1wb3J0IDx3
dGYvQmxvY2tPYmpDRXhjZXB0aW9ucy5oPgogI2ltcG9ydCA8d3RmL01haW5UaHJlYWQuaD4KKyNp
bXBvcnQgPHd0Zi9OYWtlZFB0ci5oPgogI2ltcG9ydCA8d3RmL1JlZi5oPgogI2ltcG9ydCA8d3Rm
L1J1bkxvb3AuaD4KICNpbXBvcnQgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgpAQCAtMTg3LDkgKzE4
OCw5IEBAIEBpbnRlcmZhY2UgV2ViRnJhbWVQb2xpY3lMaXN0ZW5lciA6IE5TT2JqZWN0IDxXZWJQ
b2xpY3lEZWNpc2lvbkxpc3RlbmVyLCBXZWJGb3JtCiAgICAgV2ViQ29yZTo6UG9saWN5QWN0aW9u
IF9kZWZhdWx0UG9saWN5OwogfQogCi0tIChpZClpbml0V2l0aEZyYW1lOihXZWJDb3JlOjpGcmFt
ZSopZnJhbWUgaWRlbnRpZmllcjooV2ViQ29yZTo6UG9saWN5Q2hlY2tJZGVudGlmaWVyKWlkZW50
aWZpZXIgcG9saWN5RnVuY3Rpb246KFdlYkNvcmU6OkZyYW1lUG9saWN5RnVuY3Rpb24mJilwb2xp
Y3lGdW5jdGlvbiBkZWZhdWx0UG9saWN5OihXZWJDb3JlOjpQb2xpY3lBY3Rpb24pZGVmYXVsdFBv
bGljeTsKKy0gKGlkKWluaXRXaXRoRnJhbWU6KE5ha2VkUHRyPFdlYkNvcmU6OkZyYW1lPilmcmFt
ZSBpZGVudGlmaWVyOihXZWJDb3JlOjpQb2xpY3lDaGVja0lkZW50aWZpZXIpaWRlbnRpZmllciBw
b2xpY3lGdW5jdGlvbjooV2ViQ29yZTo6RnJhbWVQb2xpY3lGdW5jdGlvbiYmKXBvbGljeUZ1bmN0
aW9uIGRlZmF1bHRQb2xpY3k6KFdlYkNvcmU6OlBvbGljeUFjdGlvbilkZWZhdWx0UG9saWN5Owog
I2lmIEhBVkUoQVBQX0xJTktTKQotLSAoaWQpaW5pdFdpdGhGcmFtZTooV2ViQ29yZTo6RnJhbWUq
KWZyYW1lIGlkZW50aWZpZXI6KFdlYkNvcmU6OlBvbGljeUNoZWNrSWRlbnRpZmllcilpZGVudGlm
aWVyIHBvbGljeUZ1bmN0aW9uOihXZWJDb3JlOjpGcmFtZVBvbGljeUZ1bmN0aW9uJiYpcG9saWN5
RnVuY3Rpb24gZGVmYXVsdFBvbGljeTooV2ViQ29yZTo6UG9saWN5QWN0aW9uKWRlZmF1bHRQb2xp
Y3kgYXBwTGlua1VSTDooTlNVUkwgKil1cmw7CistIChpZClpbml0V2l0aEZyYW1lOihOYWtlZFB0
cjxXZWJDb3JlOjpGcmFtZT4pZnJhbWUgaWRlbnRpZmllcjooV2ViQ29yZTo6UG9saWN5Q2hlY2tJ
ZGVudGlmaWVyKWlkZW50aWZpZXIgcG9saWN5RnVuY3Rpb246KFdlYkNvcmU6OkZyYW1lUG9saWN5
RnVuY3Rpb24mJilwb2xpY3lGdW5jdGlvbiBkZWZhdWx0UG9saWN5OihXZWJDb3JlOjpQb2xpY3lB
Y3Rpb24pZGVmYXVsdFBvbGljeSBhcHBMaW5rVVJMOihOU1VSTCAqKXVybDsKICNlbmRpZgogCiAt
ICh2b2lkKWludmFsaWRhdGU7CkBAIC0xNDg1LDcgKzE0ODYsNyBAQCB2b2lkIFdlYkZyYW1lTG9h
ZGVyQ2xpZW50Ojp0cmFuc2l0aW9uVG9Db21taXR0ZWRGb3JOZXdQYWdlKCkKICAgICAvLyBUaGUg
Zm9sbG93aW5nIGlzIGEgbm8tb3AgZm9yIFdlYkhUTUxSZXByZXNlbnRhdGlvbiwgYnV0IGZvciBj
dXN0b20gZG9jdW1lbnQgdHlwZXMKICAgICAvLyBsaWtlIHRoZSBvbmVzIHRoYXQgU2FmYXJpIHVz
ZXMgZm9yIGJvb2ttYXJrcyBpdCBpcyB0aGUgb25seSB3YXkgdGhlIERvY3VtZW50TG9hZGVyCiAg
ICAgLy8gd2lsbCBnZXQgdGhlIHByb3BlciB0aXRsZS4KLSAgICBpZiAoYXV0byogZG9jdW1lbnRM
b2FkZXIgPSBbZGF0YVNvdXJjZSBfZG9jdW1lbnRMb2FkZXJdKQorICAgIGlmIChhdXRvIGRvY3Vt
ZW50TG9hZGVyID0gW2RhdGFTb3VyY2UgX2RvY3VtZW50TG9hZGVyXSkKICAgICAgICAgZG9jdW1l
bnRMb2FkZXItPnNldFRpdGxlKHsgW2RhdGFTb3VyY2UgcGFnZVRpdGxlXSwgV2ViQ29yZTo6VGV4
dERpcmVjdGlvbjo6TFRSIH0pOwogCiAgICAgaWYgKGF1dG8qIG93bmVyRWxlbWVudCA9IGNvcmVG
cmFtZS0+b3duZXJFbGVtZW50KCkpCkBAIC0yMzU5LDcgKzIzNjAsNyBAQCArICh2b2lkKWluaXRp
YWxpemUKICNlbmRpZgogfQogCi0tIChpZClpbml0V2l0aEZyYW1lOihXZWJDb3JlOjpGcmFtZSop
ZnJhbWUgaWRlbnRpZmllcjooV2ViQ29yZTo6UG9saWN5Q2hlY2tJZGVudGlmaWVyKWlkZW50aWZp
ZXIgcG9saWN5RnVuY3Rpb246KFdlYkNvcmU6OkZyYW1lUG9saWN5RnVuY3Rpb24mJilwb2xpY3lG
dW5jdGlvbiBkZWZhdWx0UG9saWN5OihXZWJDb3JlOjpQb2xpY3lBY3Rpb24pZGVmYXVsdFBvbGlj
eQorLSAoaWQpaW5pdFdpdGhGcmFtZTooTmFrZWRQdHI8V2ViQ29yZTo6RnJhbWU+KWZyYW1lIGlk
ZW50aWZpZXI6KFdlYkNvcmU6OlBvbGljeUNoZWNrSWRlbnRpZmllcilpZGVudGlmaWVyIHBvbGlj
eUZ1bmN0aW9uOihXZWJDb3JlOjpGcmFtZVBvbGljeUZ1bmN0aW9uJiYpcG9saWN5RnVuY3Rpb24g
ZGVmYXVsdFBvbGljeTooV2ViQ29yZTo6UG9saWN5QWN0aW9uKWRlZmF1bHRQb2xpY3kKIHsKICAg
ICBzZWxmID0gW3NlbGYgaW5pdF07CiAgICAgaWYgKCFzZWxmKQpAQCAtMjM3NCw3ICsyMzc1LDcg
QEAgLSAoaWQpaW5pdFdpdGhGcmFtZTooV2ViQ29yZTo6RnJhbWUqKWZyYW1lIGlkZW50aWZpZXI6
KFdlYkNvcmU6OlBvbGljeUNoZWNrSWRlbnQKIH0KIAogI2lmIEhBVkUoQVBQX0xJTktTKQotLSAo
aWQpaW5pdFdpdGhGcmFtZTooV2ViQ29yZTo6RnJhbWUqKWZyYW1lIGlkZW50aWZpZXI6KFdlYkNv
cmU6OlBvbGljeUNoZWNrSWRlbnRpZmllcilpZGVudGlmaWVyIHBvbGljeUZ1bmN0aW9uOihXZWJD
b3JlOjpGcmFtZVBvbGljeUZ1bmN0aW9uJiYpcG9saWN5RnVuY3Rpb24gZGVmYXVsdFBvbGljeToo
V2ViQ29yZTo6UG9saWN5QWN0aW9uKWRlZmF1bHRQb2xpY3kgYXBwTGlua1VSTDooTlNVUkwgKilh
cHBMaW5rVVJMCistIChpZClpbml0V2l0aEZyYW1lOihOYWtlZFB0cjxXZWJDb3JlOjpGcmFtZT4p
ZnJhbWUgaWRlbnRpZmllcjooV2ViQ29yZTo6UG9saWN5Q2hlY2tJZGVudGlmaWVyKWlkZW50aWZp
ZXIgcG9saWN5RnVuY3Rpb246KFdlYkNvcmU6OkZyYW1lUG9saWN5RnVuY3Rpb24mJilwb2xpY3lG
dW5jdGlvbiBkZWZhdWx0UG9saWN5OihXZWJDb3JlOjpQb2xpY3lBY3Rpb24pZGVmYXVsdFBvbGlj
eSBhcHBMaW5rVVJMOihOU1VSTCAqKWFwcExpbmtVUkwKIHsKICAgICBzZWxmID0gW3NlbGYgaW5p
dFdpdGhGcmFtZTpmcmFtZSBpZGVudGlmaWVyOmlkZW50aWZpZXIgcG9saWN5RnVuY3Rpb246V1RG
TW92ZShwb2xpY3lGdW5jdGlvbikgZGVmYXVsdFBvbGljeTpkZWZhdWx0UG9saWN5XTsKICAgICBp
ZiAoIXNlbGYpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJDb3JlU3Vw
cG9ydC9XZWJHZW9sb2NhdGlvbkNsaWVudC5tbSBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dl
YkNvcmVTdXBwb3J0L1dlYkdlb2xvY2F0aW9uQ2xpZW50Lm1tCmluZGV4IDg3ZGE3MzBmZWFhZmRl
ZGQ3NzRlZDdlYTk2YjZmOGQwOTNlYTlhM2QuLmQ1ZmM2NGI4MTA3ZDgyMmRiM2Q5OGNmMWFjNzNm
MjFmZGMwZDE2YTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYkNvcmVT
dXBwb3J0L1dlYkdlb2xvY2F0aW9uQ2xpZW50Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kv
bWFjL1dlYkNvcmVTdXBwb3J0L1dlYkdlb2xvY2F0aW9uQ2xpZW50Lm1tCkBAIC0zNyw2ICszNyw4
IEBACiAjaW1wb3J0IDxXZWJDb3JlL0ZyYW1lLmg+CiAjaW1wb3J0IDxXZWJDb3JlL0dlb2xvY2F0
aW9uLmg+CiAjaW1wb3J0IDx3dGYvQmxvY2tPYmpDRXhjZXB0aW9ucy5oPgorI2ltcG9ydCA8d3Rm
L05ha2VkUHRyLmg+CisjaW1wb3J0IDx3dGYvTmFrZWRSZWYuaD4KIAogI2lmIFBMQVRGT1JNKElP
U19GQU1JTFkpCiAjaW1wb3J0IDxXZWJDb3JlL1dBS1Jlc3BvbmRlci5oPgpAQCAtNTAsNyArNTIs
NyBAQCBAaW50ZXJmYWNlIFdlYkdlb2xvY2F0aW9uUG9saWN5TGlzdGVuZXIgOiBOU09iamVjdCA8
V2ViQWxsb3dEZW55UG9saWN5TGlzdGVuZXI+CiB7CiAgICAgUmVmUHRyPEdlb2xvY2F0aW9uPiBf
Z2VvbG9jYXRpb247CiB9Ci0tIChpZClpbml0V2l0aEdlb2xvY2F0aW9uOihHZW9sb2NhdGlvbiYp
Z2VvbG9jYXRpb247CistIChpZClpbml0V2l0aEdlb2xvY2F0aW9uOihOYWtlZFJlZjxHZW9sb2Nh
dGlvbj4pZ2VvbG9jYXRpb247CiBAZW5kCiAjZWxzZQogQGludGVyZmFjZSBXZWJHZW9sb2NhdGlv
blBvbGljeUxpc3RlbmVyIDogTlNPYmplY3QgPFdlYkFsbG93RGVueVBvbGljeUxpc3RlbmVyPgpA
QCAtNTgsNyArNjAsNyBAQCBAaW50ZXJmYWNlIFdlYkdlb2xvY2F0aW9uUG9saWN5TGlzdGVuZXIg
OiBOU09iamVjdCA8V2ViQWxsb3dEZW55UG9saWN5TGlzdGVuZXI+CiAgICAgUmVmUHRyPEdlb2xv
Y2F0aW9uPiBfZ2VvbG9jYXRpb247CiAgICAgUmV0YWluUHRyPFdlYlZpZXc+IF93ZWJWaWV3Owog
fQotLSAoaWQpaW5pdFdpdGhHZW9sb2NhdGlvbjooR2VvbG9jYXRpb24qKWdlb2xvY2F0aW9uIGZv
cldlYlZpZXc6KFdlYlZpZXcqKXdlYlZpZXc7CistIChpZClpbml0V2l0aEdlb2xvY2F0aW9uOihO
YWtlZFB0cjxHZW9sb2NhdGlvbj4pZ2VvbG9jYXRpb24gZm9yV2ViVmlldzooV2ViVmlldyopd2Vi
VmlldzsKIEBlbmQKICNlbmRpZgogCkBAIC02Nyw3ICs2OSw3IEBAIEBpbnRlcmZhY2UgV2ViR2Vv
bG9jYXRpb25Qcm92aWRlckluaXRpYWxpemF0aW9uTGlzdGVuZXIgOiBOU09iamVjdCA8V2ViR2Vv
bG9jYXRpCiBAcHJpdmF0ZQogICAgIFJlZlB0cjxHZW9sb2NhdGlvbj4gbV9nZW9sb2NhdGlvbjsK
IH0KLS0gKGlkKWluaXRXaXRoR2VvbG9jYXRpb246KEdlb2xvY2F0aW9uJilnZW9sb2NhdGlvbjsK
Ky0gKGlkKWluaXRXaXRoR2VvbG9jYXRpb246KE5ha2VkUmVmPEdlb2xvY2F0aW9uPilnZW9sb2Nh
dGlvbjsKIEBlbmQKICNlbmRpZgogCkBAIC0xNDAsMTEgKzE0MiwxMSBAQCBPcHRpb25hbDxHZW9s
b2NhdGlvblBvc2l0aW9uRGF0YT4gV2ViR2VvbG9jYXRpb25DbGllbnQ6Omxhc3RQb3NpdGlvbigp
CiAjaWYgIVBMQVRGT1JNKElPU19GQU1JTFkpCiBAaW1wbGVtZW50YXRpb24gV2ViR2VvbG9jYXRp
b25Qb2xpY3lMaXN0ZW5lcgogCi0tIChpZClpbml0V2l0aEdlb2xvY2F0aW9uOihHZW9sb2NhdGlv
biYpZ2VvbG9jYXRpb24KKy0gKGlkKWluaXRXaXRoR2VvbG9jYXRpb246KE5ha2VkUmVmPEdlb2xv
Y2F0aW9uPilnZW9sb2NhdGlvbgogewogICAgIGlmICghKHNlbGYgPSBbc3VwZXIgaW5pdF0pKQog
ICAgICAgICByZXR1cm4gbmlsOwotICAgIF9nZW9sb2NhdGlvbiA9ICZnZW9sb2NhdGlvbjsKKyAg
ICBfZ2VvbG9jYXRpb24gPSBnZW9sb2NhdGlvbi5wdHIoKTsKICAgICByZXR1cm4gc2VsZjsKIH0K
IApAQCAtMTYyLDEyICsxNjQsMTIgQEAgQGVuZAogCiAjZWxzZQogQGltcGxlbWVudGF0aW9uIFdl
Ykdlb2xvY2F0aW9uUG9saWN5TGlzdGVuZXIKLS0gKGlkKWluaXRXaXRoR2VvbG9jYXRpb246KEdl
b2xvY2F0aW9uKilnZW9sb2NhdGlvbiBmb3JXZWJWaWV3OihXZWJWaWV3Kil3ZWJWaWV3CistIChp
ZClpbml0V2l0aEdlb2xvY2F0aW9uOihOYWtlZFB0cjxHZW9sb2NhdGlvbj4pZ2VvbG9jYXRpb24g
Zm9yV2ViVmlldzooV2ViVmlldyopd2ViVmlldwogewogICAgIHNlbGYgPSBbc3VwZXIgaW5pdF07
CiAgICAgaWYgKCFzZWxmKQogICAgICAgICByZXR1cm4gbmlsOwotICAgIF9nZW9sb2NhdGlvbiA9
IGdlb2xvY2F0aW9uOworICAgIF9nZW9sb2NhdGlvbiA9IGdlb2xvY2F0aW9uLmdldCgpOwogICAg
IF93ZWJWaWV3ID0gd2ViVmlldzsKICAgICByZXR1cm4gc2VsZjsKIH0KQEAgLTIwNiwxMSArMjA4
LDExIEBAIC0gKEJPT0wpc2hvdWxkQ2xlYXJDYWNoZQogQGVuZAogCiBAaW1wbGVtZW50YXRpb24g
V2ViR2VvbG9jYXRpb25Qcm92aWRlckluaXRpYWxpemF0aW9uTGlzdGVuZXIKLS0gKGlkKWluaXRX
aXRoR2VvbG9jYXRpb246KEdlb2xvY2F0aW9uJilnZW9sb2NhdGlvbgorLSAoaWQpaW5pdFdpdGhH
ZW9sb2NhdGlvbjooTmFrZWRSZWY8R2VvbG9jYXRpb24+KWdlb2xvY2F0aW9uCiB7CiAgICAgc2Vs
ZiA9IFtzdXBlciBpbml0XTsKICAgICBpZiAoc2VsZikKLSAgICAgICAgbV9nZW9sb2NhdGlvbiA9
ICZnZW9sb2NhdGlvbjsKKyAgICAgICAgbV9nZW9sb2NhdGlvbiA9IGdlb2xvY2F0aW9uLnB0cigp
OwogICAgIHJldHVybiBzZWxmOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5
L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJJbnNwZWN0b3JDbGllbnQubW0gYi9Tb3VyY2UvV2ViS2l0
TGVnYWN5L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJJbnNwZWN0b3JDbGllbnQubW0KaW5kZXggYzQ3
NmM3NTViMmU2YWE0OTZlNThiODQyZjIyMmU4ZjY1ZjNmZWM4My4uM2EwYTcyM2NhZThkZDI0NjI4
YzBmNTllNzUzMzY1MmIyYjU0YmE4OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9t
YWMvV2ViQ29yZVN1cHBvcnQvV2ViSW5zcGVjdG9yQ2xpZW50Lm1tCisrKyBiL1NvdXJjZS9XZWJL
aXRMZWdhY3kvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkluc3BlY3RvckNsaWVudC5tbQpAQCAtNTQs
NiArNTQsNyBAQAogI2ltcG9ydCA8V2ViQ29yZS9TZXR0aW5ncy5oPgogI2ltcG9ydCA8V2ViS2l0
TGVnYWN5L0RPTUV4dGVuc2lvbnMuaD4KICNpbXBvcnQgPGFsZ29yaXRobT4KKyNpbXBvcnQgPHd0
Zi9OYWtlZFB0ci5oPgogI2ltcG9ydCA8d3RmL3RleHQvQmFzZTY0Lmg+CiAKIHVzaW5nIG5hbWVz
cGFjZSBXZWJDb3JlOwpAQCAtNjgsNyArNjksNyBAQCBAaW50ZXJmYWNlIFdlYkluc3BlY3Rvcldp
bmRvd0NvbnRyb2xsZXIgOiBOU1dpbmRvd0NvbnRyb2xsZXIgPE5TV2luZG93RGVsZWdhdGUsCiBA
cHJpdmF0ZQogICAgIFJldGFpblB0cjxXZWJWaWV3PiBfaW5zcGVjdGVkV2ViVmlldzsKICAgICBX
ZWJWaWV3KiBfZnJvbnRlbmRXZWJWaWV3OwotICAgIFdlYkluc3BlY3RvckZyb250ZW5kQ2xpZW50
KiBfZnJvbnRlbmRDbGllbnQ7CisgICAgTmFrZWRQdHI8V2ViSW5zcGVjdG9yRnJvbnRlbmRDbGll
bnQ+IF9mcm9udGVuZENsaWVudDsKICAgICBXZWJJbnNwZWN0b3JDbGllbnQqIF9pbnNwZWN0b3JD
bGllbnQ7CiAgICAgQk9PTCBfYXR0YWNoZWRUb0luc3BlY3RlZFdlYlZpZXc7CiAgICAgQk9PTCBf
c2hvdWxkQXR0YWNoOwpAQCAtODIsOSArODMsOSBAQCAtIChXZWJWaWV3ICopZnJvbnRlbmRXZWJW
aWV3OwogLSAodm9pZClhdHRhY2g7CiAtICh2b2lkKWRldGFjaDsKIC0gKEJPT0wpYXR0YWNoZWQ7
Ci0tICh2b2lkKXNldEZyb250ZW5kQ2xpZW50OihXZWJJbnNwZWN0b3JGcm9udGVuZENsaWVudCop
ZnJvbnRlbmRDbGllbnQ7Ci0tICh2b2lkKXNldEluc3BlY3RvckNsaWVudDooV2ViSW5zcGVjdG9y
Q2xpZW50KilpbnNwZWN0b3JDbGllbnQ7Ci0tIChXZWJJbnNwZWN0b3JDbGllbnQqKWluc3BlY3Rv
ckNsaWVudDsKKy0gKHZvaWQpc2V0RnJvbnRlbmRDbGllbnQ6KE5ha2VkUHRyPFdlYkluc3BlY3Rv
ckZyb250ZW5kQ2xpZW50Pilmcm9udGVuZENsaWVudDsKKy0gKHZvaWQpc2V0SW5zcGVjdG9yQ2xp
ZW50OihOYWtlZFB0cjxXZWJJbnNwZWN0b3JDbGllbnQ+KWluc3BlY3RvckNsaWVudDsKKy0gKE5h
a2VkUHRyPFdlYkluc3BlY3RvckNsaWVudD4paW5zcGVjdG9yQ2xpZW50OwogLSAodm9pZClzZXRB
dHRhY2hlZFdpbmRvd0hlaWdodDoodW5zaWduZWQpaGVpZ2h0OwogLSAodm9pZClzZXREb2NraW5n
VW5hdmFpbGFibGU6KEJPT0wpdW5hdmFpbGFibGU7CiAtICh2b2lkKWRlc3Ryb3lJbnNwZWN0b3JW
aWV3OwpAQCAtMjYxLDcgKzI2Miw3IEBAIHZvaWQgV2ViSW5zcGVjdG9yRnJvbnRlbmRDbGllbnQ6
OnJlc2V0U3RhdGUoKQogewogICAgIEluc3BlY3RvckZyb250ZW5kQ2xpZW50TG9jYWw6OnJlc2V0
U3RhdGUoKTsKIAotICAgIGF1dG8qIGluc3BlY3RvckNsaWVudCA9IFttX2Zyb250ZW5kV2luZG93
Q29udHJvbGxlciBpbnNwZWN0b3JDbGllbnRdOworICAgIGF1dG8gaW5zcGVjdG9yQ2xpZW50ID0g
W21fZnJvbnRlbmRXaW5kb3dDb250cm9sbGVyIGluc3BlY3RvckNsaWVudF07CiAgICAgaW5zcGVj
dG9yQ2xpZW50LT5kZWxldGVJbnNwZWN0b3JTdGFydHNBdHRhY2hlZCgpOwogICAgIGluc3BlY3Rv
ckNsaWVudC0+ZGVsZXRlSW5zcGVjdG9yQXR0YWNoRGlzYWJsZWQoKTsKIApAQCAtNjcyLDE3ICs2
NzMsMTcgQEAgLSAoQk9PTClhdHRhY2hlZAogICAgIHJldHVybiBfYXR0YWNoZWRUb0luc3BlY3Rl
ZFdlYlZpZXc7CiB9CiAKLS0gKHZvaWQpc2V0RnJvbnRlbmRDbGllbnQ6KFdlYkluc3BlY3RvckZy
b250ZW5kQ2xpZW50Kilmcm9udGVuZENsaWVudAorLSAodm9pZClzZXRGcm9udGVuZENsaWVudDoo
TmFrZWRQdHI8V2ViSW5zcGVjdG9yRnJvbnRlbmRDbGllbnQ+KWZyb250ZW5kQ2xpZW50CiB7CiAg
ICAgX2Zyb250ZW5kQ2xpZW50ID0gZnJvbnRlbmRDbGllbnQ7CiB9CiAKLS0gKHZvaWQpc2V0SW5z
cGVjdG9yQ2xpZW50OihXZWJJbnNwZWN0b3JDbGllbnQqKWluc3BlY3RvckNsaWVudAorLSAodm9p
ZClzZXRJbnNwZWN0b3JDbGllbnQ6KE5ha2VkUHRyPFdlYkluc3BlY3RvckNsaWVudD4paW5zcGVj
dG9yQ2xpZW50CiB7CiAgICAgX2luc3BlY3RvckNsaWVudCA9IGluc3BlY3RvckNsaWVudDsKIH0K
IAotLSAoV2ViSW5zcGVjdG9yQ2xpZW50KilpbnNwZWN0b3JDbGllbnQKKy0gKE5ha2VkUHRyPFdl
Ykluc3BlY3RvckNsaWVudD4paW5zcGVjdG9yQ2xpZW50CiB7CiAgICAgcmV0dXJuIF9pbnNwZWN0
b3JDbGllbnQ7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJJbnNw
ZWN0b3IvV2ViSW5zcGVjdG9yRnJvbnRlbmQuaCBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dl
Ykluc3BlY3Rvci9XZWJJbnNwZWN0b3JGcm9udGVuZC5oCmluZGV4IDdlOWQ2OGEzMmFiYjE1ZjA5
NmQ3Yzc0M2ZhYmUxOGU3MGJiNGJkN2MuLjhkYTU3NjU3NTQ2MzA1ZDAzZjg5NGZkOGNhYjQ0OGY1
ZjUzYzcxMTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYkluc3BlY3Rv
ci9XZWJJbnNwZWN0b3JGcm9udGVuZC5oCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dl
Ykluc3BlY3Rvci9XZWJJbnNwZWN0b3JGcm9udGVuZC5oCkBAIC0yMywxMyArMjMsMTUgQEAKICAq
IE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuIAogICovCiAKKyNpbXBvcnQgPHd0Zi9OYWtlZFB0ci5oPgorCiBjbGFzcyBX
ZWJJbnNwZWN0b3JGcm9udGVuZENsaWVudDsKIAogQGludGVyZmFjZSBXZWJJbnNwZWN0b3JGcm9u
dGVuZCA6IE5TT2JqZWN0IHsKIEBwcml2YXRlCi0gICAgV2ViSW5zcGVjdG9yRnJvbnRlbmRDbGll
bnQgKm1fZnJvbnRlbmRDbGllbnQ7CisgICAgTmFrZWRQdHI8V2ViSW5zcGVjdG9yRnJvbnRlbmRD
bGllbnQ+IG1fZnJvbnRlbmRDbGllbnQ7CiB9Ci0tIChpZClpbml0V2l0aEZyb250ZW5kQ2xpZW50
OihXZWJJbnNwZWN0b3JGcm9udGVuZENsaWVudCAqKWZyb250ZW5kQ2xpZW50OworLSAoaWQpaW5p
dFdpdGhGcm9udGVuZENsaWVudDooTmFrZWRQdHI8V2ViSW5zcGVjdG9yRnJvbnRlbmRDbGllbnQ+
KWZyb250ZW5kQ2xpZW50OwogLSAodm9pZClhdHRhY2g7CiAtICh2b2lkKWRldGFjaDsKIC0gKHZv
aWQpY2xvc2U7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJJbnNwZWN0
b3IvV2ViSW5zcGVjdG9yRnJvbnRlbmQubW0gYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJJ
bnNwZWN0b3IvV2ViSW5zcGVjdG9yRnJvbnRlbmQubW0KaW5kZXggNTFjZTQ4ZThkNmY4NmQ1MDI5
NjNhNjBmZjgxNTMzMzI1Y2I5Njc4MC4uZTc5ODE5ODM0MWFiYTEwMGFjNDFhY2M0MzhkYTUyNzdi
NDUxZDJlYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViSW5zcGVjdG9y
L1dlYkluc3BlY3RvckZyb250ZW5kLm1tCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dl
Ykluc3BlY3Rvci9XZWJJbnNwZWN0b3JGcm9udGVuZC5tbQpAQCAtMzIsNyArMzIsNyBAQCB1c2lu
ZyBuYW1lc3BhY2UgV2ViQ29yZTsKIAogQGltcGxlbWVudGF0aW9uIFdlYkluc3BlY3RvckZyb250
ZW5kCiAKLS0gKGlkKWluaXRXaXRoRnJvbnRlbmRDbGllbnQ6KFdlYkluc3BlY3RvckZyb250ZW5k
Q2xpZW50ICopZnJvbnRlbmRDbGllbnQKKy0gKGlkKWluaXRXaXRoRnJvbnRlbmRDbGllbnQ6KE5h
a2VkUHRyPFdlYkluc3BlY3RvckZyb250ZW5kQ2xpZW50Pilmcm9udGVuZENsaWVudAogewogICAg
IGlmICghKHNlbGYgPSBbc3VwZXIgaW5pdF0pKQogICAgICAgICByZXR1cm4gbmlsOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViSW5zcGVjdG9yL1dlYk5vZGVIaWdobGln
aHQuaCBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYkluc3BlY3Rvci9XZWJOb2RlSGlnaGxp
Z2h0LmgKaW5kZXggMDA2ZTFkMGI5NjUxYzY3YjU1M2Y1Mzc3ODkyMWRiMTgzNDcyODU5ZC4uNGRh
ZjMzZWI3OWFkMzMzZGRkYWM1OWI3MDM4ZWU1ZTYxMjY1MjdiNSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdExlZ2FjeS9tYWMvV2ViSW5zcGVjdG9yL1dlYk5vZGVIaWdobGlnaHQuaAorKysgYi9T
b3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJJbnNwZWN0b3IvV2ViTm9kZUhpZ2hsaWdodC5oCkBA
IC0zMSw2ICszMSw3IEBACiAjaW1wb3J0IDxXZWJLaXRMZWdhY3kvV0FLQXBwS2l0U3R1YnMuaD4K
ICNpbXBvcnQgPFdlYktpdExlZ2FjeS9XQUtWaWV3Lmg+CiAjZW5kaWYKKyNpbXBvcnQgPHd0Zi9O
YWtlZFB0ci5oPgogCiBAY2xhc3MgV2ViTm9kZUhpZ2hsaWdodFZpZXc7CiAjaWYgUExBVEZPUk0o
SU9TX0ZBTUlMWSkKQEAgLTU4LDEwICs1OSwxMCBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAg
V2ViSGlnaGxpZ2h0TGF5ZXIgKl9oaWdobGlnaHRMYXllcjsKICNlbmRpZgogICAgIFdlYk5vZGVI
aWdobGlnaHRWaWV3ICpfaGlnaGxpZ2h0VmlldzsKLSAgICBXZWJDb3JlOjpJbnNwZWN0b3JDb250
cm9sbGVyKiBfaW5zcGVjdG9yQ29udHJvbGxlcjsKKyAgICBOYWtlZFB0cjxXZWJDb3JlOjpJbnNw
ZWN0b3JDb250cm9sbGVyPiBfaW5zcGVjdG9yQ29udHJvbGxlcjsKICAgICBpZCBfZGVsZWdhdGU7
CiB9Ci0tIChpZClpbml0V2l0aFRhcmdldFZpZXc6KE5TVmlldyAqKXRhcmdldFZpZXcgaW5zcGVj
dG9yQ29udHJvbGxlcjooV2ViQ29yZTo6SW5zcGVjdG9yQ29udHJvbGxlciopaW5zcGVjdG9yQ29u
dHJvbGxlcjsKKy0gKGlkKWluaXRXaXRoVGFyZ2V0VmlldzooTlNWaWV3ICopdGFyZ2V0VmlldyBp
bnNwZWN0b3JDb250cm9sbGVyOihOYWtlZFB0cjxXZWJDb3JlOjpJbnNwZWN0b3JDb250cm9sbGVy
PilpbnNwZWN0b3JDb250cm9sbGVyOwogCiAtICh2b2lkKXNldERlbGVnYXRlOihpZClkZWxlZ2F0
ZTsKIC0gKGlkKWRlbGVnYXRlOwpAQCAtNzIsNyArNzMsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7
CiAtIChOU1ZpZXcgKil0YXJnZXRWaWV3OwogLSAoV2ViTm9kZUhpZ2hsaWdodFZpZXcgKiloaWdo
bGlnaHRWaWV3OwogCi0tIChXZWJDb3JlOjpJbnNwZWN0b3JDb250cm9sbGVyKilpbnNwZWN0b3JD
b250cm9sbGVyOworLSAoTmFrZWRQdHI8V2ViQ29yZTo6SW5zcGVjdG9yQ29udHJvbGxlcj4paW5z
cGVjdG9yQ29udHJvbGxlcjsKIAogI2lmICFQTEFURk9STShJT1NfRkFNSUxZKQogLSAodm9pZClz
ZXROZWVkc1VwZGF0ZUluVGFyZ2V0Vmlld1JlY3Q6KE5TUmVjdClyZWN0OwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViSW5zcGVjdG9yL1dlYk5vZGVIaWdobGlnaHQubW0g
Yi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJJbnNwZWN0b3IvV2ViTm9kZUhpZ2hsaWdodC5t
bQppbmRleCAzZGI0NGQ2ZjU1ODk5ZjA4YWM4ZGQ0MmY4OGFkZmYzZjk5YzU5OTkwLi4wYWY1NjE5
YTcyNmMzNWFmODUxYWEwN2M1YzQzZDMwMjczN2VhMjU2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0TGVnYWN5L21hYy9XZWJJbnNwZWN0b3IvV2ViTm9kZUhpZ2hsaWdodC5tbQorKysgYi9Tb3Vy
Y2UvV2ViS2l0TGVnYWN5L21hYy9XZWJJbnNwZWN0b3IvV2ViTm9kZUhpZ2hsaWdodC5tbQpAQCAt
ODEsNyArODEsNyBAQCBAZW5kCiAKIEBpbXBsZW1lbnRhdGlvbiBXZWJOb2RlSGlnaGxpZ2h0CiAK
LS0gKGlkKWluaXRXaXRoVGFyZ2V0VmlldzooTlNWaWV3ICopdGFyZ2V0VmlldyBpbnNwZWN0b3JD
b250cm9sbGVyOihJbnNwZWN0b3JDb250cm9sbGVyKilpbnNwZWN0b3JDb250cm9sbGVyCistIChp
ZClpbml0V2l0aFRhcmdldFZpZXc6KE5TVmlldyAqKXRhcmdldFZpZXcgaW5zcGVjdG9yQ29udHJv
bGxlcjooTmFrZWRQdHI8SW5zcGVjdG9yQ29udHJvbGxlcj4paW5zcGVjdG9yQ29udHJvbGxlcgog
ewogICAgIHNlbGYgPSBbc3VwZXIgaW5pdF07CiAgICAgaWYgKCFzZWxmKQpAQCAtMjUwLDcgKzI1
MCw3IEBAIC0gKE5TVmlldyAqKXRhcmdldFZpZXcKICAgICByZXR1cm4gX3RhcmdldFZpZXc7CiB9
CiAKLS0gKEluc3BlY3RvckNvbnRyb2xsZXIqKWluc3BlY3RvckNvbnRyb2xsZXIKKy0gKE5ha2Vk
UHRyPEluc3BlY3RvckNvbnRyb2xsZXI+KWluc3BlY3RvckNvbnRyb2xsZXIKIHsKICAgICByZXR1
cm4gX2luc3BlY3RvckNvbnRyb2xsZXI7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVn
YWN5L21hYy9XZWJWaWV3L1dlYkFyY2hpdmUubW0gYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9X
ZWJWaWV3L1dlYkFyY2hpdmUubW0KaW5kZXggMGRhNzBiYmY4NTdkMDI4YzllYzRiYWQ2ZWIzMWY5
ZDgzNzUxNzFjYy4uOGViZmI1M2U5MTRiZmVlZWU3MzM4ZTY2MDM2OTc4ZWZiYTViMmJkMSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJBcmNoaXZlLm1tCisr
KyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViQXJjaGl2ZS5tbQpAQCAtMTc1
LDEzICsxNzUsMTMgQEAgLSAoaW5zdGFuY2V0eXBlKWluaXRXaXRoTWFpblJlc291cmNlOihXZWJS
ZXNvdXJjZSAqKW1haW5SZXNvdXJjZSBzdWJyZXNvdXJjZXM6KE4KIAogICAgIFZlY3RvcjxSZWY8
QXJjaGl2ZVJlc291cmNlPj4gY29yZVJlc291cmNlczsKICAgICBmb3IgKFdlYlJlc291cmNlICpz
dWJyZXNvdXJjZSBpbiBzdWJyZXNvdXJjZXMpCi0gICAgICAgIGNvcmVSZXNvdXJjZXMuYXBwZW5k
KFtzdWJyZXNvdXJjZSBfY29yZVJlc291cmNlXSk7CisgICAgICAgIGNvcmVSZXNvdXJjZXMuYXBw
ZW5kKFtzdWJyZXNvdXJjZSBfY29yZVJlc291cmNlXS5nZXQoKSk7CiAKICAgICBWZWN0b3I8UmVm
PExlZ2FjeVdlYkFyY2hpdmU+PiBjb3JlQXJjaGl2ZXM7CiAgICAgZm9yIChXZWJBcmNoaXZlICpz
dWJmcmFtZUFyY2hpdmUgaW4gc3ViZnJhbWVBcmNoaXZlcykKICAgICAgICAgY29yZUFyY2hpdmVz
LmFwcGVuZCgqW3N1YmZyYW1lQXJjaGl2ZS0+X3ByaXZhdGUgY29yZUFyY2hpdmVdKTsKIAotICAg
IFtfcHJpdmF0ZSBzZXRDb3JlQXJjaGl2ZTpMZWdhY3lXZWJBcmNoaXZlOjpjcmVhdGUoW21haW5S
ZXNvdXJjZSBfY29yZVJlc291cmNlXSwgV1RGTW92ZShjb3JlUmVzb3VyY2VzKSwgV1RGTW92ZShj
b3JlQXJjaGl2ZXMpKV07CisgICAgW19wcml2YXRlIHNldENvcmVBcmNoaXZlOkxlZ2FjeVdlYkFy
Y2hpdmU6OmNyZWF0ZShbbWFpblJlc291cmNlIF9jb3JlUmVzb3VyY2VdLmdldCgpLCBXVEZNb3Zl
KGNvcmVSZXNvdXJjZXMpLCBXVEZNb3ZlKGNvcmVBcmNoaXZlcykpXTsKICAgICByZXR1cm4gc2Vs
ZjsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJE
YXRhU291cmNlLm1tIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJEYXRhU291
cmNlLm1tCmluZGV4IDkxZTk0YmZmMGQyZGJlZjE2N2RjZTU0YThmMTdhNWIzOTRkODI4NGEuLmJi
MDI3NjkzYzI1YTZiYzYzODY0M2QwZWVjMjY0YTQyNTBlNDNiNzkgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViRGF0YVNvdXJjZS5tbQorKysgYi9Tb3VyY2Uv
V2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYkRhdGFTb3VyY2UubW0KQEAgLTYxLDYgKzYxLDcg
QEAKICNpbXBvcnQgPFdlYktpdExlZ2FjeS9ET01Qcml2YXRlLmg+CiAjaW1wb3J0IDx3dGYvQXNz
ZXJ0aW9ucy5oPgogI2ltcG9ydCA8d3RmL01haW5UaHJlYWQuaD4KKyNpbXBvcnQgPHd0Zi9OYWtl
ZFB0ci5oPgogI2ltcG9ydCA8d3RmL1JlZlB0ci5oPgogI2ltcG9ydCA8d3RmL1JldGFpblB0ci5o
PgogI2ltcG9ydCA8d3RmL1J1bkxvb3AuaD4KQEAgLTM5NCw3ICszOTUsNyBAQCAtICh2b2lkKV9t
YWtlUmVwcmVzZW50YXRpb24KICNlbmRpZgogfQogCi0tIChXZWJDb3JlOjpEb2N1bWVudExvYWRl
ciopX2RvY3VtZW50TG9hZGVyCistIChOYWtlZFB0cjxXZWJDb3JlOjpEb2N1bWVudExvYWRlcj4p
X2RvY3VtZW50TG9hZGVyCiB7CiAgICAgcmV0dXJuIHRvUHJpdmF0ZShfcHJpdmF0ZSktPmxvYWRl
ci5wdHIoKTsKIH0KQEAgLTU2NCw3ICs1NjUsNyBAQCAtIChXZWJSZXNvdXJjZSAqKXN1YnJlc291
cmNlRm9yVVJMOihOU1VSTCAqKVVSTAogCiAtICh2b2lkKWFkZFN1YnJlc291cmNlOihXZWJSZXNv
dXJjZSAqKXN1YnJlc291cmNlCiB7ICAgIAotICAgIHRvUHJpdmF0ZShfcHJpdmF0ZSktPmxvYWRl
ci0+YWRkQXJjaGl2ZVJlc291cmNlKFtzdWJyZXNvdXJjZSBfY29yZVJlc291cmNlXSk7CisgICAg
dG9Qcml2YXRlKF9wcml2YXRlKS0+bG9hZGVyLT5hZGRBcmNoaXZlUmVzb3VyY2UoW3N1YnJlc291
cmNlIF9jb3JlUmVzb3VyY2VdLmdldCgpKTsKIH0KIAogQGVuZApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJEYXRhU291cmNlSW50ZXJuYWwuaCBiL1NvdXJj
ZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViRGF0YVNvdXJjZUludGVybmFsLmgKaW5kZXgg
ODBlODExMGY1NGZiMmQyODhhM2I3MTk0ODdlY2I3ZGZkODQwYzJiMi4uYjFkODU0ZDBiZDRlMTE2
MTFhNGQxNWVlNzFiMjY3MWUxM2FhZDNhZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2Fj
eS9tYWMvV2ViVmlldy9XZWJEYXRhU291cmNlSW50ZXJuYWwuaAorKysgYi9Tb3VyY2UvV2ViS2l0
TGVnYWN5L21hYy9XZWJWaWV3L1dlYkRhdGFTb3VyY2VJbnRlcm5hbC5oCkBAIC0yOCw2ICsyOCw3
IEBACiAKICNpbXBvcnQgIldlYkRhdGFTb3VyY2VQcml2YXRlLmgiCiAjaW1wb3J0IDx3dGYvRm9y
d2FyZC5oPgorI2ltcG9ydCA8d3RmL05ha2VkUHRyLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsK
IGNsYXNzIERvY3VtZW50TG9hZGVyOwpAQCAtNTcsNyArNTgsNyBAQCBjbGFzcyBXZWJEb2N1bWVu
dExvYWRlck1hYzsKIC0gKHZvaWQpX3JlY2VpdmVkRGF0YTooTlNEYXRhICopZGF0YTsKIC0gKHZv
aWQpX3JldmVydFRvUHJvdmlzaW9uYWxTdGF0ZTsKIC0gKHZvaWQpX3NldE1haW5Eb2N1bWVudEVy
cm9yOihOU0Vycm9yICopZXJyb3I7Ci0tIChXZWJDb3JlOjpEb2N1bWVudExvYWRlciopX2RvY3Vt
ZW50TG9hZGVyOworLSAoTmFrZWRQdHI8V2ViQ29yZTo6RG9jdW1lbnRMb2FkZXI+KV9kb2N1bWVu
dExvYWRlcjsKICNpZiBVU0UoUVVJQ0tfTE9PSykKIEBwcm9wZXJ0eSAobm9uYXRvbWljLCBjb3B5
LCBzZXR0ZXI9X3NldFF1aWNrTG9va0NvbnRlbnQ6KSBOU0RpY3Rpb25hcnkgKl9xdWlja0xvb2tD
b250ZW50OwogQHByb3BlcnR5IChub25hdG9taWMsIHNldHRlcj1fc2V0UXVpY2tMb29rUHJldmll
d0xvYWRlckNsaWVudDopIFdlYkNvcmU6OkxlZ2FjeVByZXZpZXdMb2FkZXJDbGllbnQqIF9xdWlj
a0xvb2tQcmV2aWV3TG9hZGVyQ2xpZW50OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2Fj
eS9tYWMvV2ViVmlldy9XZWJGcmFtZS5tbSBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZp
ZXcvV2ViRnJhbWUubW0KaW5kZXggMzRmMjgxZDE3MDQ1ZDVkZWQxNDZhMWUzMTlhMmZiNjMwZDBi
MmMzZi4uYmFhODEwYzI2ZjhjZjMyMjBmYmQ5ODdmZmExNTFkZjc4MzY2MDBhNCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJGcmFtZS5tbQorKysgYi9Tb3Vy
Y2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYkZyYW1lLm1tCkBAIC0yOTEsNyArMjkxLDcg
QEAgV2ViVmlldyAqa2l0KFdlYkNvcmU6OlBhZ2UqIHBhZ2UpCiAKIFdlYlZpZXcgKmdldFdlYlZp
ZXcoV2ViRnJhbWUgKndlYkZyYW1lKQogewotICAgIGF1dG8qIGNvcmVGcmFtZSA9IGNvcmUod2Vi
RnJhbWUpOworICAgIGF1dG8gY29yZUZyYW1lID0gY29yZSh3ZWJGcmFtZSk7CiAgICAgaWYgKCFj
b3JlRnJhbWUpCiAgICAgICAgIHJldHVybiBuaWw7CiAgICAgcmV0dXJuIGtpdChjb3JlRnJhbWUt
PnBhZ2UoKSk7CkBAIC00MzEsOCArNDMxLDggQEAgLSAodm9pZClfdXBkYXRlQmFja2dyb3VuZEFu
ZFVwZGF0ZXNXaGlsZU9mZnNjcmVlbgogICAgIENHQ29sb3JSZWYgYmFja2dyb3VuZENvbG9yID0g
W3dlYlZpZXcgYmFja2dyb3VuZENvbG9yXTsKICNlbmRpZgogCi0gICAgYXV0byogY29yZUZyYW1l
ID0gX3ByaXZhdGUtPmNvcmVGcmFtZTsKLSAgICBmb3IgKGF1dG8qIGZyYW1lID0gY29yZUZyYW1l
OyBmcmFtZTsgZnJhbWUgPSBmcmFtZS0+dHJlZSgpLnRyYXZlcnNlTmV4dChjb3JlRnJhbWUpKSB7
CisgICAgYXV0byBjb3JlRnJhbWUgPSBfcHJpdmF0ZS0+Y29yZUZyYW1lOworICAgIGZvciAoYXV0
byBmcmFtZSA9IGNvcmVGcmFtZTsgZnJhbWU7IGZyYW1lID0gZnJhbWUtPnRyZWUoKS50cmF2ZXJz
ZU5leHQoY29yZUZyYW1lKSkgewogICAgICAgICAvLyBEb24ndCBjYWxsIHNldERyYXdzQmFja2dy
b3VuZDpZRVMgaGVyZSBiZWNhdXNlIGl0IG1heSBiZSBOTyBiZWNhdXNlIG9mIGEgbG9hZAogICAg
ICAgICAvLyBpbiBwcm9ncmVzczsgV2ViRnJhbWVMb2FkZXJDbGllbnQga2VlcHMgaXQgc2V0IHRv
IE5PIGR1cmluZyB0aGUgbG9hZCBwcm9jZXNzLgogICAgICAgICBXZWJGcmFtZSAqd2ViRnJhbWUg
PSBraXQoZnJhbWUpOwpAQCAtNDY5LDggKzQ2OSw4IEBAIC0gKGlkKV9pbnRlcm5hbExvYWREZWxl
Z2F0ZQogCiAtICh2b2lkKV91bm1hcmtBbGxCYWRHcmFtbWFyCiB7Ci0gICAgYXV0byogY29yZUZy
YW1lID0gX3ByaXZhdGUtPmNvcmVGcmFtZTsKLSAgICBmb3IgKGF1dG8qIGZyYW1lID0gY29yZUZy
YW1lOyBmcmFtZTsgZnJhbWUgPSBmcmFtZS0+dHJlZSgpLnRyYXZlcnNlTmV4dChjb3JlRnJhbWUp
KSB7CisgICAgYXV0byBjb3JlRnJhbWUgPSBfcHJpdmF0ZS0+Y29yZUZyYW1lOworICAgIGZvciAo
YXV0byBmcmFtZSA9IGNvcmVGcmFtZTsgZnJhbWU7IGZyYW1lID0gZnJhbWUtPnRyZWUoKS50cmF2
ZXJzZU5leHQoY29yZUZyYW1lKSkgewogICAgICAgICBpZiAoYXV0byogZG9jdW1lbnQgPSBmcmFt
ZS0+ZG9jdW1lbnQoKSkKICAgICAgICAgICAgIGRvY3VtZW50LT5tYXJrZXJzKCkucmVtb3ZlTWFy
a2VycyhXZWJDb3JlOjpEb2N1bWVudE1hcmtlcjo6R3JhbW1hcik7CiAgICAgfQpAQCAtNDc5LDgg
KzQ3OSw4IEBAIC0gKHZvaWQpX3VubWFya0FsbEJhZEdyYW1tYXIKIC0gKHZvaWQpX3VubWFya0Fs
bE1pc3NwZWxsaW5ncwogewogI2lmICFQTEFURk9STShJT1NfRkFNSUxZKQotICAgIGF1dG8qIGNv
cmVGcmFtZSA9IF9wcml2YXRlLT5jb3JlRnJhbWU7Ci0gICAgZm9yIChhdXRvKiBmcmFtZSA9IGNv
cmVGcmFtZTsgZnJhbWU7IGZyYW1lID0gZnJhbWUtPnRyZWUoKS50cmF2ZXJzZU5leHQoY29yZUZy
YW1lKSkgeworICAgIGF1dG8gY29yZUZyYW1lID0gX3ByaXZhdGUtPmNvcmVGcmFtZTsKKyAgICBm
b3IgKGF1dG8gZnJhbWUgPSBjb3JlRnJhbWU7IGZyYW1lOyBmcmFtZSA9IGZyYW1lLT50cmVlKCku
dHJhdmVyc2VOZXh0KGNvcmVGcmFtZSkpIHsKICAgICAgICAgaWYgKGF1dG8qIGRvY3VtZW50ID0g
ZnJhbWUtPmRvY3VtZW50KCkpCiAgICAgICAgICAgICBkb2N1bWVudC0+bWFya2VycygpLnJlbW92
ZU1hcmtlcnMoV2ViQ29yZTo6RG9jdW1lbnRNYXJrZXI6OlNwZWxsaW5nKTsKICAgICB9CkBAIC00
OTMsNyArNDkzLDcgQEAgLSAoQk9PTClfaGFzU2VsZWN0aW9uCiAKICAgICAvLyBvcHRpbWl6YXRp
b24gZm9yIGNvbW1vbiBjYXNlIHRvIGF2b2lkIGNyZWF0aW5nIHBvdGVudGlhbGx5IGxhcmdlIHNl
bGVjdGlvbiBzdHJpbmcKICAgICBpZiAoW2RvY3VtZW50VmlldyBpc0tpbmRPZkNsYXNzOltXZWJI
VE1MVmlldyBjbGFzc11dKQotICAgICAgICBpZiAoYXV0byogY29yZUZyYW1lID0gX3ByaXZhdGUt
PmNvcmVGcmFtZSkKKyAgICAgICAgaWYgKGF1dG8gY29yZUZyYW1lID0gX3ByaXZhdGUtPmNvcmVG
cmFtZSkKICAgICAgICAgICAgIHJldHVybiBjb3JlRnJhbWUtPnNlbGVjdGlvbigpLmlzUmFuZ2Uo
KTsKIAogICAgIGlmIChbZG9jdW1lbnRWaWV3IGNvbmZvcm1zVG9Qcm90b2NvbDpAcHJvdG9jb2wo
V2ViRG9jdW1lbnRUZXh0KV0pCkBAIC01MTQsNyArNTE0LDcgQEAgLSAoQk9PTClfYXRNb3N0T25l
RnJhbWVIYXNTZWxlY3Rpb24KIHsKICAgICAvLyBGSVhNRTogNDE4NjA1MCBpcyBvbmUga25vd24g
Y2FzZSB0aGF0IG1ha2VzIHRoaXMgZGVidWcgY2hlY2sgZmFpbC4KICAgICBCT09MIGZvdW5kID0g
Tk87Ci0gICAgYXV0byogY29yZUZyYW1lID0gX3ByaXZhdGUtPmNvcmVGcmFtZTsKKyAgICBhdXRv
IGNvcmVGcmFtZSA9IF9wcml2YXRlLT5jb3JlRnJhbWU7CiAgICAgZm9yIChhdXRvKiBmcmFtZSA9
IGNvcmVGcmFtZTsgZnJhbWU7IGZyYW1lID0gZnJhbWUtPnRyZWUoKS50cmF2ZXJzZU5leHQoY29y
ZUZyYW1lKSkgewogICAgICAgICBpZiAoW2tpdChmcmFtZSkgX2hhc1NlbGVjdGlvbl0pIHsKICAg
ICAgICAgICAgIGlmIChmb3VuZCkKQEAgLTUyOCw4ICs1MjgsOCBAQCAtIChCT09MKV9hdE1vc3RP
bmVGcmFtZUhhc1NlbGVjdGlvbgogCiAtIChXZWJGcmFtZSAqKV9maW5kRnJhbWVXaXRoU2VsZWN0
aW9uCiB7Ci0gICAgYXV0byogY29yZUZyYW1lID0gX3ByaXZhdGUtPmNvcmVGcmFtZTsKLSAgICBm
b3IgKGF1dG8qIGZyYW1lID0gY29yZUZyYW1lOyBmcmFtZTsgZnJhbWUgPSBmcmFtZS0+dHJlZSgp
LnRyYXZlcnNlTmV4dChjb3JlRnJhbWUpKSB7CisgICAgYXV0byBjb3JlRnJhbWUgPSBfcHJpdmF0
ZS0+Y29yZUZyYW1lOworICAgIGZvciAoYXV0byBmcmFtZSA9IGNvcmVGcmFtZTsgZnJhbWU7IGZy
YW1lID0gZnJhbWUtPnRyZWUoKS50cmF2ZXJzZU5leHQoY29yZUZyYW1lKSkgewogICAgICAgICBX
ZWJGcmFtZSAqd2ViRnJhbWUgPSBraXQoZnJhbWUpOwogICAgICAgICBpZiAoW3dlYkZyYW1lIF9o
YXNTZWxlY3Rpb25dKQogICAgICAgICAgICAgcmV0dXJuIHdlYkZyYW1lOwpAQCAtNzY1LDcgKzc2
NSw3IEBAIC0gKHZvaWQpX3Njcm9sbERPTVJhbmdlVG9WaXNpYmxlOihET01SYW5nZSAqKXJhbmdl
IHdpdGhJbnNldDooQ0dGbG9hdClpbnNldAogICAgICAgICAgICAgc3RhcnROb2RlLT5yZW5kZXJl
cigpLT5zY3JvbGxSZWN0VG9WaXNpYmxlKFdlYkNvcmU6OmVuY2xvc2luZ0ludFJlY3QocmFuZ2VS
ZWN0KSwgaW5zaWRlRml4ZWQsIHsgV2ViQ29yZTo6U2VsZWN0aW9uUmV2ZWFsTW9kZTo6UmV2ZWFs
LCBXZWJDb3JlOjpTY3JvbGxBbGlnbm1lbnQ6OmFsaWduVG9FZGdlSWZOZWVkZWQsIFdlYkNvcmU6
OlNjcm9sbEFsaWdubWVudDo6YWxpZ25Ub0VkZ2VJZk5lZWRlZCwgV2ViQ29yZTo6U2hvdWxkQWxs
b3dDcm9zc09yaWdpblNjcm9sbGluZzo6WWVzfSk7CiAgICAgICAgICAgICBsYXllci0+c2V0QWRq
dXN0Rm9ySU9TQ2FyZXRXaGVuU2Nyb2xsaW5nKGZhbHNlKTsKIAotICAgICAgICAgICAgYXV0byog
Y29yZUZyYW1lID0gY29yZShzZWxmKTsKKyAgICAgICAgICAgIGF1dG8gY29yZUZyYW1lID0gY29y
ZShzZWxmKTsKICAgICAgICAgICAgIGlmIChjb3JlRnJhbWUpIHsKICAgICAgICAgICAgICAgICBh
dXRvJiBmcmFtZVNlbGVjdGlvbiA9IGNvcmVGcmFtZS0+c2VsZWN0aW9uKCk7CiAgICAgICAgICAg
ICAgICAgZnJhbWVTZWxlY3Rpb24uc2V0Q2FyZXRSZWN0TmVlZHNVcGRhdGUoKTsKQEAgLTg3MCw3
ICs4NzAsNyBAQCAtIChET01SYW5nZSAqKV9tYXJrRE9NUmFuZ2UKIAogLSAoRE9NRG9jdW1lbnRG
cmFnbWVudCAqKV9kb2N1bWVudEZyYWdtZW50V2l0aE1hcmt1cFN0cmluZzooTlNTdHJpbmcgKilt
YXJrdXBTdHJpbmcgYmFzZVVSTFN0cmluZzooTlNTdHJpbmcgKiliYXNlVVJMU3RyaW5nCiB7Ci0g
ICAgYXV0byogZnJhbWUgPSBfcHJpdmF0ZS0+Y29yZUZyYW1lOworICAgIGF1dG8gZnJhbWUgPSBf
cHJpdmF0ZS0+Y29yZUZyYW1lOwogICAgIGlmICghZnJhbWUpCiAgICAgICAgIHJldHVybiBuaWw7
CiAKQEAgLTg4Myw3ICs4ODMsNyBAQCAtIChET01Eb2N1bWVudEZyYWdtZW50ICopX2RvY3VtZW50
RnJhZ21lbnRXaXRoTWFya3VwU3RyaW5nOihOU1N0cmluZyAqKW1hcmt1cFN0cgogCiAtIChET01E
b2N1bWVudEZyYWdtZW50ICopX2RvY3VtZW50RnJhZ21lbnRXaXRoTm9kZXNBc1BhcmFncmFwaHM6
KE5TQXJyYXkgKilub2RlcwogewotICAgIGF1dG8qIGZyYW1lID0gX3ByaXZhdGUtPmNvcmVGcmFt
ZTsKKyAgICBhdXRvIGZyYW1lID0gX3ByaXZhdGUtPmNvcmVGcmFtZTsKICAgICBpZiAoIWZyYW1l
KQogICAgICAgICByZXR1cm4gbmlsOwogCkBAIC05NzAsNyArOTcwLDcgQEAgLSAodm9pZClfZHJh
Z1NvdXJjZUVuZGVkQXQ6KE5TUG9pbnQpd2luZG93TG9jIG9wZXJhdGlvbjooTlNEcmFnT3BlcmF0
aW9uKW9wZXJhdGkKIAogLSAoQk9PTClfY2FuUHJvdmlkZURvY3VtZW50U291cmNlCiB7Ci0gICAg
YXV0byogZnJhbWUgPSBfcHJpdmF0ZS0+Y29yZUZyYW1lOworICAgIGF1dG8gZnJhbWUgPSBfcHJp
dmF0ZS0+Y29yZUZyYW1lOwogICAgIFN0cmluZyBtaW1lVHlwZSA9IGZyYW1lLT5kb2N1bWVudCgp
LT5sb2FkZXIoKS0+d3JpdGVyKCkubWltZVR5cGUoKTsKICAgICBhdXRvKiBwbHVnaW5EYXRhID0g
ZnJhbWUtPnBhZ2UoKSA/ICZmcmFtZS0+cGFnZSgpLT5wbHVnaW5EYXRhKCkgOiAwOwogCkBAIC0x
MDA2LDcgKzEwMDYsNyBAQCBAaW1wbGVtZW50YXRpb24gV2ViRnJhbWUgKFdlYlByaXZhdGUpCiAv
LyBGSVhNRTogVGhpcyBleGlzdHMgb25seSBhcyBhIGNvbnZlbmllbmNlIGZvciBTYWZhcmksIGNv
bnNpZGVyIG1vdmluZyB0aGVyZS4KIC0gKEJPT0wpX2lzRGVzY2VuZGFudE9mRnJhbWU6KFdlYkZy
YW1lICopYW5jZXN0b3IKIHsKLSAgICBhdXRvKiBjb3JlRnJhbWUgPSBfcHJpdmF0ZS0+Y29yZUZy
YW1lOworICAgIGF1dG8gY29yZUZyYW1lID0gX3ByaXZhdGUtPmNvcmVGcmFtZTsKICAgICByZXR1
cm4gY29yZUZyYW1lICYmIGNvcmVGcmFtZS0+dHJlZSgpLmlzRGVzY2VuZGFudE9mKGNvcmUoYW5j
ZXN0b3IpKTsKIH0KIApAQCAtMTE3MSw3ICsxMTcxLDcgQEAgLSAodW5zaWduZWQpX3BlbmRpbmdG
cmFtZVVubG9hZEV2ZW50Q291bnQKICNpZiBFTkFCTEUoTkVUU0NBUEVfUExVR0lOX0FQSSkKIC0g
KHZvaWQpX3JlY3Vyc2l2ZV9yZXN1bWVOdWxsRXZlbnRzRm9yQWxsTmV0c2NhcGVQbHVnaW5zCiB7
Ci0gICAgYXV0byogY29yZUZyYW1lID0gY29yZShzZWxmKTsKKyAgICBhdXRvIGNvcmVGcmFtZSA9
IGNvcmUoc2VsZik7CiAgICAgZm9yIChhdXRvKiBmcmFtZSA9IGNvcmVGcmFtZTsgZnJhbWU7IGZy
YW1lID0gZnJhbWUtPnRyZWUoKS50cmF2ZXJzZU5leHQoY29yZUZyYW1lKSkgewogICAgICAgICBO
U1ZpZXcgPFdlYkRvY3VtZW50Vmlldz4gKmRvY3VtZW50VmlldyA9IFtba2l0KGZyYW1lKSBmcmFt
ZVZpZXddIGRvY3VtZW50Vmlld107CiAgICAgICAgIGlmIChbZG9jdW1lbnRWaWV3IGlzS2luZE9m
Q2xhc3M6W1dlYkhUTUxWaWV3IGNsYXNzXV0pCkBAIC0xMTgxLDcgKzExODEsNyBAQCAtICh2b2lk
KV9yZWN1cnNpdmVfcmVzdW1lTnVsbEV2ZW50c0ZvckFsbE5ldHNjYXBlUGx1Z2lucwogCiAtICh2
b2lkKV9yZWN1cnNpdmVfcGF1c2VOdWxsRXZlbnRzRm9yQWxsTmV0c2NhcGVQbHVnaW5zCiB7Ci0g
ICAgYXV0byogY29yZUZyYW1lID0gY29yZShzZWxmKTsKKyAgICBhdXRvIGNvcmVGcmFtZSA9IGNv
cmUoc2VsZik7CiAgICAgZm9yIChhdXRvKiBmcmFtZSA9IGNvcmVGcmFtZTsgZnJhbWU7IGZyYW1l
ID0gZnJhbWUtPnRyZWUoKS50cmF2ZXJzZU5leHQoY29yZUZyYW1lKSkgewogICAgICAgICBOU1Zp
ZXcgPFdlYkRvY3VtZW50Vmlldz4gKmRvY3VtZW50VmlldyA9IFtba2l0KGZyYW1lKSBmcmFtZVZp
ZXddIGRvY3VtZW50Vmlld107CiAgICAgICAgIGlmIChbZG9jdW1lbnRWaWV3IGlzS2luZE9mQ2xh
c3M6W1dlYkhUTUxWaWV3IGNsYXNzXV0pCkBAIC0xMjAwLDcgKzEyMDAsNyBAQCAtICh1bnNpZ25l
ZClmb3JtRWxlbWVudHNDaGFyYWN0ZXJDb3VudAogLSAodm9pZClzZXRUaW1lb3V0c1BhdXNlZDoo
Qk9PTClmbGFnCiB7CiAgICAgaWYgKFtzZWxmIF93ZWJIVE1MRG9jdW1lbnRWaWV3XSkgewotICAg
ICAgICBpZiAoYXV0byogY29yZUZyYW1lID0gX3ByaXZhdGUtPmNvcmVGcmFtZSkKKyAgICAgICAg
aWYgKGF1dG8gY29yZUZyYW1lID0gX3ByaXZhdGUtPmNvcmVGcmFtZSkKICAgICAgICAgICAgIGNv
cmVGcmFtZS0+c2V0VGltZXJzUGF1c2VkKGZsYWcpOwogICAgIH0KIH0KQEAgLTEyMjAsNyArMTIy
MCw3IEBAIC0gKHZvaWQpc2V0UGx1Z2luc1BhdXNlZDooQk9PTClmbGFnCiAtICh2b2lkKXByZXBh
cmVGb3JQYXVzZQogewogICAgIGlmIChbc2VsZiBfd2ViSFRNTERvY3VtZW50Vmlld10pIHsKLSAg
ICAgICAgaWYgKGF1dG8qIGNvcmVGcmFtZSA9IF9wcml2YXRlLT5jb3JlRnJhbWUpCisgICAgICAg
IGlmIChhdXRvIGNvcmVGcmFtZSA9IF9wcml2YXRlLT5jb3JlRnJhbWUpCiAgICAgICAgICAgICBj
b3JlRnJhbWUtPmRpc3BhdGNoUGFnZUhpZGVFdmVudEJlZm9yZVBhdXNlKCk7CiAgICAgfQogfQpA
QCAtMTIyOCw3ICsxMjI4LDcgQEAgLSAodm9pZClwcmVwYXJlRm9yUGF1c2UKIC0gKHZvaWQpcmVz
dW1lRnJvbVBhdXNlCiB7CiAgICAgaWYgKFtzZWxmIF93ZWJIVE1MRG9jdW1lbnRWaWV3XSkgewot
ICAgICAgICBpZiAoYXV0byogY29yZUZyYW1lID0gX3ByaXZhdGUtPmNvcmVGcmFtZSkKKyAgICAg
ICAgaWYgKGF1dG8gY29yZUZyYW1lID0gX3ByaXZhdGUtPmNvcmVGcmFtZSkKICAgICAgICAgICAg
IGNvcmVGcmFtZS0+ZGlzcGF0Y2hQYWdlU2hvd0V2ZW50QmVmb3JlUmVzdW1lKCk7CiAgICAgfQog
fQpAQCAtMTkwNyw3ICsxOTA3LDcgQEAgLSAodm9pZClyZXNldFRleHRBdXRvc2l6aW5nQmVmb3Jl
TGF5b3V0CiAgICAgaWYgKCFbc2VsZiBfd2ViSFRNTERvY3VtZW50Vmlld10pCiAgICAgICAgIHJl
dHVybjsKICAgICAKLSAgICBhdXRvKiBjb3JlRnJhbWUgPSBjb3JlKHNlbGYpOworICAgIGF1dG8g
Y29yZUZyYW1lID0gY29yZShzZWxmKTsKICAgICBmb3IgKGF1dG8qIGZyYW1lID0gY29yZUZyYW1l
OyBmcmFtZTsgZnJhbWUgPSBmcmFtZS0+dHJlZSgpLnRyYXZlcnNlTmV4dChjb3JlRnJhbWUpKSB7
CiAgICAgICAgIFdlYkNvcmU6OkRvY3VtZW50KiBkb2MgPSBmcmFtZS0+ZG9jdW1lbnQoKTsKICAg
ICAgICAgaWYgKCFkb2MgfHwgIWRvYy0+cmVuZGVyVmlldygpKQpAQCAtMjExNCw3ICsyMTE0LDcg
QEAgLSAoTlNTdHJpbmcgKilfc3RyaW5nQnlFdmFsdWF0aW5nSmF2YVNjcmlwdEZyb21TdHJpbmc6
KE5TU3RyaW5nICopc3RyaW5nIHdpdGhHbG8KIAogLSAoSlNHbG9iYWxDb250ZXh0UmVmKV9nbG9i
YWxDb250ZXh0Rm9yU2NyaXB0V29ybGQ6KFdlYlNjcmlwdFdvcmxkICopd29ybGQKIHsKLSAgICBh
dXRvKiBjb3JlRnJhbWUgPSBfcHJpdmF0ZS0+Y29yZUZyYW1lOworICAgIGF1dG8gY29yZUZyYW1l
ID0gX3ByaXZhdGUtPmNvcmVGcmFtZTsKICAgICBpZiAoIWNvcmVGcmFtZSkKICAgICAgICAgcmV0
dXJuIDA7CiAgICAgYXV0byogY29yZVdvcmxkID0gY29yZSh3b3JsZCk7CkBAIC0yMTg3LDcgKzIx
ODcsNyBAQCAtICh2b2lkKXNldEVuaGFuY2VkQWNjZXNzaWJpbGl0eTooQk9PTCllbmFibGUKIAog
LSAoTlNTdHJpbmcqKV9sYXllclRyZWVBc1RleHQKIHsKLSAgICBhdXRvKiBjb3JlRnJhbWUgPSBf
cHJpdmF0ZS0+Y29yZUZyYW1lOworICAgIGF1dG8gY29yZUZyYW1lID0gX3ByaXZhdGUtPmNvcmVG
cmFtZTsKICAgICBpZiAoIWNvcmVGcmFtZSkKICAgICAgICAgcmV0dXJuIEAiIjsKIApAQCAtMjIz
MCw3ICsyMjMwLDcgQEAgLSAoaWQpYWNjZXNzaWJpbGl0eVJvb3QKIAogLSAodm9pZClfY2xlYXJP
cGVuZXIKIHsKLSAgICBhdXRvKiBjb3JlRnJhbWUgPSBfcHJpdmF0ZS0+Y29yZUZyYW1lOworICAg
IGF1dG8gY29yZUZyYW1lID0gX3ByaXZhdGUtPmNvcmVGcmFtZTsKICAgICBpZiAoY29yZUZyYW1l
KQogICAgICAgICBjb3JlRnJhbWUtPmxvYWRlcigpLnNldE9wZW5lcigwKTsKIH0KQEAgLTIzMDQs
NyArMjMwNCw3IEBAIC0gKERPTURvY3VtZW50RnJhZ21lbnQgKilfZG9jdW1lbnRGcmFnbWVudEZv
ckltYWdlRGF0YTooTlNEYXRhICopZGF0YSB3aXRoUmVsYXRpCiAKIC0gKEJPT0wpZm9jdXNlZE5v
ZGVIYXNDb250ZW50CiB7Ci0gICAgYXV0byogY29yZUZyYW1lID0gX3ByaXZhdGUtPmNvcmVGcmFt
ZTsKKyAgICBhdXRvIGNvcmVGcmFtZSA9IF9wcml2YXRlLT5jb3JlRnJhbWU7CiAgICAKICAgICBX
ZWJDb3JlOjpFbGVtZW50KiByb290OwogICAgIGNvbnN0IGF1dG8mIHNlbGVjdGlvbiA9IGNvcmVG
cmFtZS0+c2VsZWN0aW9uKCkuc2VsZWN0aW9uKCk7CkBAIC0yMzI2LDcgKzIzMjYsNyBAQCAtIChC
T09MKWZvY3VzZWROb2RlSGFzQ29udGVudAogCiAtICh2b2lkKV9kaXNwYXRjaERpZFJlY2VpdmVU
aXRsZTooTlNTdHJpbmcgKil0aXRsZQogewotICAgIGF1dG8qIGNvcmVGcmFtZSA9IF9wcml2YXRl
LT5jb3JlRnJhbWU7CisgICAgYXV0byBjb3JlRnJhbWUgPSBfcHJpdmF0ZS0+Y29yZUZyYW1lOwog
ICAgIGlmICghY29yZUZyYW1lKQogICAgICAgICByZXR1cm47CiAgICAgY29yZUZyYW1lLT5sb2Fk
ZXIoKS5jbGllbnQoKS5kaXNwYXRjaERpZFJlY2VpdmVUaXRsZSh7IHRpdGxlLCBXZWJDb3JlOjpU
ZXh0RGlyZWN0aW9uOjpMVFIgfSk7CkBAIC0yMzM2LDcgKzIzMzYsNyBAQCAtICh2b2lkKV9kaXNw
YXRjaERpZFJlY2VpdmVUaXRsZTooTlNTdHJpbmcgKil0aXRsZQogCiAtIChKU1ZhbHVlUmVmKWpz
V3JhcHBlckZvck5vZGU6KERPTU5vZGUgKilub2RlIGluU2NyaXB0V29ybGQ6KFdlYlNjcmlwdFdv
cmxkICopd29ybGQKIHsKLSAgICBhdXRvKiBjb3JlRnJhbWUgPSBfcHJpdmF0ZS0+Y29yZUZyYW1l
OworICAgIGF1dG8gY29yZUZyYW1lID0gX3ByaXZhdGUtPmNvcmVGcmFtZTsKICAgICBpZiAoIWNv
cmVGcmFtZSkKICAgICAgICAgcmV0dXJuIDA7CiAKQEAgLTIzNTIsNyArMjM1Miw3IEBAIC0gKEpT
VmFsdWVSZWYpanNXcmFwcGVyRm9yTm9kZTooRE9NTm9kZSAqKW5vZGUgaW5TY3JpcHRXb3JsZDoo
V2ViU2NyaXB0V29ybGQgKil3CiAKIC0gKE5TRGljdGlvbmFyeSAqKWVsZW1lbnRBdFBvaW50OihO
U1BvaW50KXBvaW50CiB7Ci0gICAgYXV0byogY29yZUZyYW1lID0gX3ByaXZhdGUtPmNvcmVGcmFt
ZTsKKyAgICBhdXRvIGNvcmVGcmFtZSA9IF9wcml2YXRlLT5jb3JlRnJhbWU7CiAgICAgaWYgKCFj
b3JlRnJhbWUpCiAgICAgICAgIHJldHVybiBuaWw7CiAgICAgcmV0dXJuIFtbW1dlYkVsZW1lbnRE
aWN0aW9uYXJ5IGFsbG9jXSBpbml0V2l0aEhpdFRlc3RSZXN1bHQ6Y29yZUZyYW1lLT5ldmVudEhh
bmRsZXIoKS5oaXRUZXN0UmVzdWx0QXRQb2ludChXZWJDb3JlOjpJbnRQb2ludChwb2ludCksIFdl
YkNvcmU6OkhpdFRlc3RSZXF1ZXN0OjpSZWFkT25seSB8IFdlYkNvcmU6OkhpdFRlc3RSZXF1ZXN0
OjpBY3RpdmUgfCBXZWJDb3JlOjpIaXRUZXN0UmVxdWVzdDo6SWdub3JlQ2xpcHBpbmcgfCBXZWJD
b3JlOjpIaXRUZXN0UmVxdWVzdDo6RGlzYWxsb3dVc2VyQWdlbnRTaGFkb3dDb250ZW50IHwgV2Vi
Q29yZTo6SGl0VGVzdFJlcXVlc3Q6OkFsbG93Q2hpbGRGcmFtZUNvbnRlbnQpXSBhdXRvcmVsZWFz
ZV07CkBAIC0yMzkwLDcgKzIzOTAsNyBAQCAtICh2b2lkKWRlYWxsb2MKIAogLSAoTlNTdHJpbmcg
KiluYW1lCiB7Ci0gICAgYXV0byogY29yZUZyYW1lID0gX3ByaXZhdGUtPmNvcmVGcmFtZTsKKyAg
ICBhdXRvIGNvcmVGcmFtZSA9IF9wcml2YXRlLT5jb3JlRnJhbWU7CiAgICAgaWYgKCFjb3JlRnJh
bWUpCiAgICAgICAgIHJldHVybiBuaWw7CiAgICAgcmV0dXJuIGNvcmVGcmFtZS0+dHJlZSgpLnVu
aXF1ZU5hbWUoKTsKQEAgLTI0MjEsNyArMjQyMSw3IEBAIC0gKERPTURvY3VtZW50ICopRE9NRG9j
dW1lbnQKICAgICBpZiAobmVlZHNNaWNyb3NvZnRNZXNzZW5nZXJET01Eb2N1bWVudFdvcmthcm91
bmQoKSAmJiAhcHRocmVhZF9tYWluX25wKCkpCiAgICAgICAgIHJldHVybiBuaWw7CiAKLSAgICBh
dXRvKiBjb3JlRnJhbWUgPSBfcHJpdmF0ZS0+Y29yZUZyYW1lOworICAgIGF1dG8gY29yZUZyYW1l
ID0gX3ByaXZhdGUtPmNvcmVGcmFtZTsKICAgICBpZiAoIWNvcmVGcmFtZSkKICAgICAgICAgcmV0
dXJuIG5pbDsKICAgICAKQEAgLTI0NDQsNyArMjQ0NCw3IEBAIC0gKERPTURvY3VtZW50ICopRE9N
RG9jdW1lbnQKIAogLSAoRE9NSFRNTEVsZW1lbnQgKilmcmFtZUVsZW1lbnQKIHsKLSAgICBhdXRv
KiBjb3JlRnJhbWUgPSBfcHJpdmF0ZS0+Y29yZUZyYW1lOworICAgIGF1dG8gY29yZUZyYW1lID0g
X3ByaXZhdGUtPmNvcmVGcmFtZTsKICAgICBpZiAoIWNvcmVGcmFtZSkKICAgICAgICAgcmV0dXJu
IG5pbDsKICAgICByZXR1cm4ga2l0KGNvcmVGcmFtZS0+b3duZXJFbGVtZW50KCkpOwpAQCAtMjQ1
MiwxOSArMjQ1MiwxOSBAQCAtIChET01IVE1MRWxlbWVudCAqKWZyYW1lRWxlbWVudAogCiAtIChX
ZWJEYXRhU291cmNlICopcHJvdmlzaW9uYWxEYXRhU291cmNlCiB7Ci0gICAgYXV0byogY29yZUZy
YW1lID0gX3ByaXZhdGUtPmNvcmVGcmFtZTsKKyAgICBhdXRvIGNvcmVGcmFtZSA9IF9wcml2YXRl
LT5jb3JlRnJhbWU7CiAgICAgcmV0dXJuIGNvcmVGcmFtZSA/IGRhdGFTb3VyY2UoY29yZUZyYW1l
LT5sb2FkZXIoKS5wcm92aXNpb25hbERvY3VtZW50TG9hZGVyKCkpIDogbmlsOwogfQogCiAtIChX
ZWJEYXRhU291cmNlICopZGF0YVNvdXJjZQogewotICAgIGF1dG8qIGNvcmVGcmFtZSA9IF9wcml2
YXRlLT5jb3JlRnJhbWU7CisgICAgYXV0byBjb3JlRnJhbWUgPSBfcHJpdmF0ZS0+Y29yZUZyYW1l
OwogICAgIHJldHVybiBjb3JlRnJhbWUgJiYgY29yZUZyYW1lLT5sb2FkZXIoKS5mcmFtZUhhc0xv
YWRlZCgpID8gW3NlbGYgX2RhdGFTb3VyY2VdIDogbmlsOwogfQogCiAtICh2b2lkKWxvYWRSZXF1
ZXN0OihOU1VSTFJlcXVlc3QgKilyZXF1ZXN0CiB7Ci0gICAgYXV0byogY29yZUZyYW1lID0gX3By
aXZhdGUtPmNvcmVGcmFtZTsKKyAgICBhdXRvIGNvcmVGcmFtZSA9IF9wcml2YXRlLT5jb3JlRnJh
bWU7CiAgICAgaWYgKCFjb3JlRnJhbWUpCiAgICAgICAgIHJldHVybjsKIApAQCAtMjU3OCw3ICsy
NTc4LDcgQEAgLSAodm9pZClyZWxvYWRGcm9tT3JpZ2luCiAKIC0gKFdlYkZyYW1lICopZmluZEZy
YW1lTmFtZWQ6KE5TU3RyaW5nICopbmFtZQogewotICAgIGF1dG8qIGNvcmVGcmFtZSA9IF9wcml2
YXRlLT5jb3JlRnJhbWU7CisgICAgYXV0byBjb3JlRnJhbWUgPSBfcHJpdmF0ZS0+Y29yZUZyYW1l
OwogICAgIGlmICghY29yZUZyYW1lKQogICAgICAgICByZXR1cm4gbmlsOwogICAgIHJldHVybiBr
aXQoY29yZUZyYW1lLT50cmVlKCkuZmluZChuYW1lLCAqY29yZUZyYW1lKSk7CkBAIC0yNTg2LDcg
KzI1ODYsNyBAQCAtIChXZWJGcmFtZSAqKWZpbmRGcmFtZU5hbWVkOihOU1N0cmluZyAqKW5hbWUK
IAogLSAoV2ViRnJhbWUgKilwYXJlbnRGcmFtZQogewotICAgIGF1dG8qIGNvcmVGcmFtZSA9IF9w
cml2YXRlLT5jb3JlRnJhbWU7CisgICAgYXV0byBjb3JlRnJhbWUgPSBfcHJpdmF0ZS0+Y29yZUZy
YW1lOwogICAgIGlmICghY29yZUZyYW1lKQogICAgICAgICByZXR1cm4gbmlsOwogICAgIHJldHVy
biBbW2tpdChjb3JlRnJhbWUtPnRyZWUoKS5wYXJlbnQoKSkgcmV0YWluXSBhdXRvcmVsZWFzZV07
CkBAIC0yNTk0LDcgKzI1OTQsNyBAQCAtIChXZWJGcmFtZSAqKXBhcmVudEZyYW1lCiAKIC0gKE5T
QXJyYXkgKiljaGlsZEZyYW1lcwogewotICAgIGF1dG8qIGNvcmVGcmFtZSA9IF9wcml2YXRlLT5j
b3JlRnJhbWU7CisgICAgYXV0byBjb3JlRnJhbWUgPSBfcHJpdmF0ZS0+Y29yZUZyYW1lOwogICAg
IGlmICghY29yZUZyYW1lKQogICAgICAgICByZXR1cm4gW05TQXJyYXkgYXJyYXldOwogICAgIE5T
TXV0YWJsZUFycmF5ICpjaGlsZHJlbiA9IFtOU011dGFibGVBcnJheSBhcnJheVdpdGhDYXBhY2l0
eTpjb3JlRnJhbWUtPnRyZWUoKS5jaGlsZENvdW50KCldOwpAQCAtMjYwNSw3ICsyNjA1LDcgQEAg
LSAoTlNBcnJheSAqKWNoaWxkRnJhbWVzCiAKIC0gKFdlYlNjcmlwdE9iamVjdCAqKXdpbmRvd09i
amVjdAogewotICAgIGF1dG8qIGNvcmVGcmFtZSA9IF9wcml2YXRlLT5jb3JlRnJhbWU7CisgICAg
YXV0byBjb3JlRnJhbWUgPSBfcHJpdmF0ZS0+Y29yZUZyYW1lOwogICAgIGlmICghY29yZUZyYW1l
KQogICAgICAgICByZXR1cm4gMDsKICAgICByZXR1cm4gY29yZUZyYW1lLT5zY3JpcHQoKS53aW5k
b3dTY3JpcHRPYmplY3QoKTsKQEAgLTI2MTMsNyArMjYxMyw3IEBAIC0gKFdlYlNjcmlwdE9iamVj
dCAqKXdpbmRvd09iamVjdAogCiAtIChKU0dsb2JhbENvbnRleHRSZWYpZ2xvYmFsQ29udGV4dAog
ewotICAgIGF1dG8qIGNvcmVGcmFtZSA9IF9wcml2YXRlLT5jb3JlRnJhbWU7CisgICAgYXV0byBj
b3JlRnJhbWUgPSBfcHJpdmF0ZS0+Y29yZUZyYW1lOwogICAgIGlmICghY29yZUZyYW1lKQogICAg
ICAgICByZXR1cm4gMDsKICAgICByZXR1cm4gdG9HbG9iYWxSZWYoY29yZUZyYW1lLT5zY3JpcHQo
KS5nbG9iYWxPYmplY3QoV2ViQ29yZTo6bWFpblRocmVhZE5vcm1hbFdvcmxkKCkpKTsKQEAgLTI2
MjIsNyArMjYyMiw3IEBAIC0gKEpTR2xvYmFsQ29udGV4dFJlZilnbG9iYWxDb250ZXh0CiAjaWYg
SlNDX09CSkNfQVBJX0VOQUJMRUQKIC0gKEpTQ29udGV4dCAqKWphdmFTY3JpcHRDb250ZXh0CiB7
Ci0gICAgYXV0byogY29yZUZyYW1lID0gX3ByaXZhdGUtPmNvcmVGcmFtZTsKKyAgICBhdXRvIGNv
cmVGcmFtZSA9IF9wcml2YXRlLT5jb3JlRnJhbWU7CiAgICAgaWYgKCFjb3JlRnJhbWUpCiAgICAg
ICAgIHJldHVybiAwOwogICAgIHJldHVybiBjb3JlRnJhbWUtPnNjcmlwdCgpLmphdmFTY3JpcHRD
b250ZXh0KCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dl
YkZyYW1lSW50ZXJuYWwuaCBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViRnJh
bWVJbnRlcm5hbC5oCmluZGV4IDlmNDZhZWNkZGViNzE3YzE4ODgzOGNhYWMwNjJhNzkzMjU2MzUx
ZTAuLjkzNmMzNGYzZGE4ZWJkM2YyYTMzNzFmOTYyMTM4NTNmMzk2MTJmY2YgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViRnJhbWVJbnRlcm5hbC5oCisrKyBi
L1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViRnJhbWVJbnRlcm5hbC5oCkBAIC0z
NSw2ICszNSw3IEBACiAjaW1wb3J0IDxXZWJDb3JlL0ZyYW1lU2VsZWN0aW9uLmg+CiAjaW1wb3J0
IDxXZWJDb3JlL1Bvc2l0aW9uLmg+CiAjaW1wb3J0IDxXZWJDb3JlL1NldHRpbmdzLmg+CisjaW1w
b3J0IDx3dGYvTmFrZWRQdHIuaD4KIAogQGNsYXNzIERPTUNTU1N0eWxlRGVjbGFyYXRpb247CiBA
Y2xhc3MgRE9NRG9jdW1lbnRGcmFnbWVudDsKQEAgLTg1LDcgKzg2LDcgQEAgV2ViVmlldyAqZ2V0
V2ViVmlldyhXZWJGcmFtZSAqd2ViRnJhbWUpOwogCiBAaW50ZXJmYWNlIFdlYkZyYW1lUHJpdmF0
ZSA6IE5TT2JqZWN0IHsKIEBwdWJsaWMKLSAgICBXZWJDb3JlOjpGcmFtZSogY29yZUZyYW1lOwor
ICAgIE5ha2VkUHRyPFdlYkNvcmU6OkZyYW1lPiBjb3JlRnJhbWU7CiAgICAgV2ViRnJhbWVWaWV3
ICp3ZWJGcmFtZVZpZXc7CiAgICAgc3RkOjp1bmlxdWVfcHRyPFdlYlNjcmlwdERlYnVnZ2VyPiBz
Y3JpcHREZWJ1Z2dlcjsKICAgICBpZCBpbnRlcm5hbExvYWREZWxlZ2F0ZTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViRnJhbWVWaWV3Lm1tIGIvU291cmNl
L1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJGcmFtZVZpZXcubW0KaW5kZXggOGQxZTg1ZjQz
NjA2MTgyNDAyNTI0MDRlMTc0OTdjMDc5YzFiMzI3ZS4uNzM2NWQyNTZlZWQ2OWFmMGMxNjQ1ZDI2
NGU5MDNkMmI2MTc5NDhjMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2Vi
Vmlldy9XZWJGcmFtZVZpZXcubW0KKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmll
dy9XZWJGcmFtZVZpZXcubW0KQEAgLTEzMyw3ICsxMzMsNyBAQCAtIChmbG9hdClfdmVydGljYWxL
ZXlib2FyZFNjcm9sbERpc3RhbmNlCiAgICAgcmV0dXJuIFtbc2VsZiBfc2Nyb2xsVmlld10gdmVy
dGljYWxMaW5lU2Nyb2xsXTsKIH0KIAotLSAoV2ViQ29yZTo6RnJhbWUqKV93ZWJfZnJhbWUKKy0g
KE5ha2VkUHRyPFdlYkNvcmU6OkZyYW1lPilfd2ViX2ZyYW1lCiB7CiAgICAgcmV0dXJuIGNvcmUo
X3ByaXZhdGUtPndlYkZyYW1lKTsKIH0KQEAgLTMzMSw3ICszMzEsNyBAQCAtICh2b2lkKV9mcmFt
ZVNpemVDaGFuZ2VkCiAgICAgLy8gU2VlIFdlYkZyYW1lTG9hZGVyQ2xpZW50Ojpwcm92aXNpb25h
bExvYWRTdGFydGVkLgogICAgIGlmIChbW1tzZWxmIHdlYkZyYW1lXSB3ZWJWaWV3XSBkcmF3c0Jh
Y2tncm91bmRdKQogICAgICAgICBbW3NlbGYgX3Njcm9sbFZpZXddIHNldERyYXdzQmFja2dyb3Vu
ZDpZRVNdOwotICAgIGlmIChhdXRvKiBjb3JlRnJhbWUgPSBbc2VsZiBfd2ViX2ZyYW1lXSkgewor
ICAgIGlmIChhdXRvIGNvcmVGcmFtZSA9IFtzZWxmIF93ZWJfZnJhbWVdKSB7CiAgICAgICAgIGlm
IChhdXRvKiBjb3JlRnJhbWVWaWV3ID0gY29yZUZyYW1lLT52aWV3KCkpCiAgICAgICAgICAgICBj
b3JlRnJhbWVWaWV3LT5hdmFpbGFibGVDb250ZW50U2l6ZUNoYW5nZWQoV2ViQ29yZTo6U2Nyb2xs
YWJsZUFyZWE6OkF2YWlsYWJsZVNpemVDaGFuZ2VSZWFzb246OkFyZWFTaXplQ2hhbmdlZCk7CiAg
ICAgfQpAQCAtNjEzLDcgKzYxMyw3IEBAIC0gKEJPT0wpX3Njcm9sbE92ZXJmbG93SW5EaXJlY3Rp
b246KFdlYkNvcmU6OlNjcm9sbERpcmVjdGlvbilkaXJlY3Rpb24gZ3JhbnVsYXJpCiAKIC0gKEJP
T0wpX2lzVmVydGljYWxEb2N1bWVudAogewotICAgIGF1dG8qIGNvcmVGcmFtZSA9IFtzZWxmIF93
ZWJfZnJhbWVdOworICAgIGF1dG8gY29yZUZyYW1lID0gW3NlbGYgX3dlYl9mcmFtZV07CiAgICAg
aWYgKCFjb3JlRnJhbWUpCiAgICAgICAgIHJldHVybiBZRVM7CiAgICAgYXV0byogZG9jdW1lbnQg
PSBjb3JlRnJhbWUtPmRvY3VtZW50KCk7CkBAIC02MjcsNyArNjI3LDcgQEAgLSAoQk9PTClfaXNW
ZXJ0aWNhbERvY3VtZW50CiAKIC0gKEJPT0wpX2lzRmxpcHBlZERvY3VtZW50CiB7Ci0gICAgYXV0
byogY29yZUZyYW1lID0gW3NlbGYgX3dlYl9mcmFtZV07CisgICAgYXV0byBjb3JlRnJhbWUgPSBb
c2VsZiBfd2ViX2ZyYW1lXTsKICAgICBpZiAoIWNvcmVGcmFtZSkKICAgICAgICAgcmV0dXJuIE5P
OwogICAgIGF1dG8qIGRvY3VtZW50ID0gY29yZUZyYW1lLT5kb2N1bWVudCgpOwpAQCAtODk1LDcg
Kzg5NSw3IEBAIC0gKHZvaWQpa2V5RG93bjooV2ViRXZlbnQgKilldmVudAogI2VuZGlmCiAgICAg
aW50IGluZGV4LCBjb3VudDsKICAgICBCT09MIGNhbGxTdXBlciA9IFlFUzsKLSAgICBhdXRvKiBj
b3JlRnJhbWUgPSBbc2VsZiBfd2ViX2ZyYW1lXTsKKyAgICBhdXRvIGNvcmVGcmFtZSA9IFtzZWxm
IF93ZWJfZnJhbWVdOwogICAgIEJPT0wgbWFpbnRhaW5zQmFja0ZvcndhcmRMaXN0ID0gY29yZUZy
YW1lICYmIHN0YXRpY19jYXN0PEJhY2tGb3J3YXJkTGlzdCY+KGNvcmVGcmFtZS0+cGFnZSgpLT5i
YWNrRm9yd2FyZCgpLmNsaWVudCgpKS5lbmFibGVkKCkgPyBZRVMgOiBOTzsKIAogICAgIGNvdW50
ID0gW2NoYXJhY3RlcnMgbGVuZ3RoXTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kv
bWFjL1dlYlZpZXcvV2ViRnVsbFNjcmVlbkNvbnRyb2xsZXIubW0gYi9Tb3VyY2UvV2ViS2l0TGVn
YWN5L21hYy9XZWJWaWV3L1dlYkZ1bGxTY3JlZW5Db250cm9sbGVyLm1tCmluZGV4IDM2ZjdmODJl
NzdmMTAxM2JjODM1Njg3MmNjNzQ3ZTIzYjZlNWZiYTcuLjE3YjQyMmQzYWM4MDM3ZWU1MTllZThk
ODc4OTQ0OTgxYzZkN2Q5YTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dl
YlZpZXcvV2ViRnVsbFNjcmVlbkNvbnRyb2xsZXIubW0KKysrIGIvU291cmNlL1dlYktpdExlZ2Fj
eS9tYWMvV2ViVmlldy9XZWJGdWxsU2NyZWVuQ29udHJvbGxlci5tbQpAQCAtNjMsNyArNjMsNyBA
QCBzdGF0aWMgV2ViQ29yZTo6SW50UmVjdCBzY3JlZW5SZWN0T2ZDb250ZW50cyhXZWJDb3JlOjpF
bGVtZW50KiBlbGVtZW50KQogQGludGVyZmFjZSBXZWJGdWxsU2NyZWVuQ29udHJvbGxlcihQcml2
YXRlKTxOU0FuaW1hdGlvbkRlbGVnYXRlPgogLSAodm9pZClfdXBkYXRlTWVudUFuZERvY2tGb3JG
dWxsU2NyZWVuOwogLSAodm9pZClfc3dhcFZpZXc6KE5TVmlldyopdmlldyB3aXRoOihOU1ZpZXcq
KW90aGVyVmlldzsKLS0gKFdlYkNvcmU6OkRvY3VtZW50KilfZG9jdW1lbnQ7CistIChOYWtlZFB0
cjxXZWJDb3JlOjpEb2N1bWVudD4pX2RvY3VtZW50OwogLSAoV2ViQ29yZTo6RnVsbHNjcmVlbk1h
bmFnZXIqKV9tYW5hZ2VyOwogLSAodm9pZClfc3RhcnRFbnRlckZ1bGxTY3JlZW5BbmltYXRpb25X
aXRoRHVyYXRpb246KE5TVGltZUludGVydmFsKWR1cmF0aW9uOwogLSAodm9pZClfc3RhcnRFeGl0
RnVsbFNjcmVlbkFuaW1hdGlvbldpdGhEdXJhdGlvbjooTlNUaW1lSW50ZXJ2YWwpZHVyYXRpb247
CkBAIC00NTAsNyArNDUwLDcgQEAgLSAodm9pZClfdXBkYXRlTWVudUFuZERvY2tGb3JGdWxsU2Ny
ZWVuCiAjcHJhZ21hIG1hcmsgLQogI3ByYWdtYSBtYXJrIFV0aWxpdHkgRnVuY3Rpb25zCiAKLS0g
KFdlYkNvcmU6OkRvY3VtZW50KilfZG9jdW1lbnQKKy0gKE5ha2VkUHRyPFdlYkNvcmU6OkRvY3Vt
ZW50PilfZG9jdW1lbnQKIHsKICAgICByZXR1cm4gJl9lbGVtZW50LT5kb2N1bWVudCgpOwogfQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJIVE1MVmlldy5t
bSBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViSFRNTFZpZXcubW0KaW5kZXgg
MGZmOWUzMTViMDYzYzFmZmYyNzM5NDYwMThiNjBmNWEwMmI3Mjg3NS4uYjJhMWQwODU5MzhlZjNl
N2QyMjU5ZmVmMTY2ZGRiY2Y1Mzg5N2Y4ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2Fj
eS9tYWMvV2ViVmlldy9XZWJIVE1MVmlldy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21h
Yy9XZWJWaWV3L1dlYkhUTUxWaWV3Lm1tCkBAIC0xNDMsNiArMTQzLDcgQEAKICNpbXBvcnQgPHd0
Zi9CbG9ja09iakNFeGNlcHRpb25zLmg+CiAjaW1wb3J0IDx3dGYvTWFpblRocmVhZC5oPgogI2lt
cG9ydCA8d3RmL01hdGhFeHRyYXMuaD4KKyNpbXBvcnQgPHd0Zi9OYWtlZFB0ci5oPgogI2ltcG9y
dCA8d3RmL09iakNSdW50aW1lRXh0cmFzLmg+CiAjaW1wb3J0IDx3dGYvUnVuTG9vcC5oPgogI2lt
cG9ydCA8d3RmL1N5c3RlbVRyYWNpbmcuaD4KQEAgLTIzNiwxMSArMjM3LDExIEBAIHVzaW5nIFdl
YkV2ZW50ID0gTlNFdmVudDsKIGNvbnN0IGF1dG8gV2ViRXZlbnRNb3VzZURvd24gPSBOU0V2ZW50
VHlwZUxlZnRNb3VzZURvd247CiAKIEBpbnRlcmZhY2UgV2ViTWVudVRhcmdldCA6IE5TT2JqZWN0
IHsKLSAgICBXZWJDb3JlOjpDb250ZXh0TWVudUNvbnRyb2xsZXIqIF9tZW51Q29udHJvbGxlcjsK
KyAgICBOYWtlZFB0cjxXZWJDb3JlOjpDb250ZXh0TWVudUNvbnRyb2xsZXI+IF9tZW51Q29udHJv
bGxlcjsKIH0KICsgKFdlYk1lbnVUYXJnZXQqKXNoYXJlZE1lbnVUYXJnZXQ7Ci0tIChXZWJDb3Jl
OjpDb250ZXh0TWVudUNvbnRyb2xsZXIqKW1lbnVDb250cm9sbGVyOwotLSAodm9pZClzZXRNZW51
Q29udHJvbGxlcjooV2ViQ29yZTo6Q29udGV4dE1lbnVDb250cm9sbGVyKiltZW51Q29udHJvbGxl
cjsKKy0gKE5ha2VkUHRyPFdlYkNvcmU6OkNvbnRleHRNZW51Q29udHJvbGxlcj4pbWVudUNvbnRy
b2xsZXI7CistICh2b2lkKXNldE1lbnVDb250cm9sbGVyOihOYWtlZFB0cjxXZWJDb3JlOjpDb250
ZXh0TWVudUNvbnRyb2xsZXI+KW1lbnVDb250cm9sbGVyOwogLSAodm9pZClmb3J3YXJkQ29udGV4
dE1lbnVBY3Rpb246KGlkKXNlbmRlcjsKIEBlbmQKIApAQCAtNjIyLDEyICs2MjMsMTIgQEAgKyAo
V2ViTWVudVRhcmdldCAqKXNoYXJlZE1lbnVUYXJnZXQKICAgICByZXR1cm4gdGFyZ2V0OwogfQog
Ci0tIChXZWJDb3JlOjpDb250ZXh0TWVudUNvbnRyb2xsZXIqKW1lbnVDb250cm9sbGVyCistIChO
YWtlZFB0cjxXZWJDb3JlOjpDb250ZXh0TWVudUNvbnRyb2xsZXI+KW1lbnVDb250cm9sbGVyCiB7
CiAgICAgcmV0dXJuIF9tZW51Q29udHJvbGxlcjsKIH0KIAotLSAodm9pZClzZXRNZW51Q29udHJv
bGxlcjooV2ViQ29yZTo6Q29udGV4dE1lbnVDb250cm9sbGVyKiltZW51Q29udHJvbGxlcgorLSAo
dm9pZClzZXRNZW51Q29udHJvbGxlcjooTmFrZWRQdHI8V2ViQ29yZTo6Q29udGV4dE1lbnVDb250
cm9sbGVyPiltZW51Q29udHJvbGxlcgogewogICAgIF9tZW51Q29udHJvbGxlciA9IG1lbnVDb250
cm9sbGVyOwogfQpAQCAtOTg3LDcgKzk4OCw3IEBAIEBwdWJsaWMKICAgICBSZXRhaW5QdHI8V2Vi
RGF0YVNvdXJjZT4gZGF0YVNvdXJjZTsKIAogI2lmIFBMQVRGT1JNKE1BQykKLSAgICBXZWJDb3Jl
OjpDYWNoZWRJbWFnZSogcHJvbWlzZWREcmFnVElGRkRhdGFTb3VyY2U7CisgICAgTmFrZWRQdHI8
V2ViQ29yZTo6Q2FjaGVkSW1hZ2U+IHByb21pc2VkRHJhZ1RJRkZEYXRhU291cmNlOwogI2VuZGlm
CiAKICAgICBTRUwgc2VsZWN0b3JGb3JEb0NvbW1hbmRCeVNlbGVjdG9yOwpAQCAtNDM1OCw3ICs0
MzU5LDcgQEAgQUxMT1dfREVQUkVDQVRFRF9JTVBMRU1FTlRBVElPTlNfRU5ECiAgICAgTlNGaWxl
V3JhcHBlciAqd3JhcHBlciA9IG5pbDsKICAgICBOU1VSTCAqZHJhZ2dpbmdFbGVtZW50VVJMID0g
bmlsOwogICAgIAotICAgIGlmIChhdXRvKiB0aWZmUmVzb3VyY2UgPSBfcHJpdmF0ZS0+cHJvbWlz
ZWREcmFnVElGRkRhdGFTb3VyY2UpIHsKKyAgICBpZiAoYXV0byB0aWZmUmVzb3VyY2UgPSBfcHJp
dmF0ZS0+cHJvbWlzZWREcmFnVElGRkRhdGFTb3VyY2UpIHsKICAgICAgICAgaWYgKGF1dG8qIGJ1
ZmZlciA9IHRpZmZSZXNvdXJjZS0+cmVzb3VyY2VCdWZmZXIoKSkgewogICAgICAgICAgICAgTlNV
UkxSZXNwb25zZSAqcmVzcG9uc2UgPSB0aWZmUmVzb3VyY2UtPnJlc3BvbnNlKCkubnNVUkxSZXNw
b25zZSgpOwogICAgICAgICAgICAgZHJhZ2dpbmdFbGVtZW50VVJMID0gW3Jlc3BvbnNlIFVSTF07
CkBAIC01OTgzLDcgKzU5ODQsNyBAQCAtICh2b2lkKV9leGVjdXRlU2F2ZWRLZXlwcmVzc0NvbW1h
bmRzCiAKICNpZiBQTEFURk9STShNQUMpCiAKLS0gKEJPT0wpX2ludGVycHJldEtleUV2ZW50OihX
ZWJDb3JlOjpLZXlib2FyZEV2ZW50KilldmVudCBzYXZpbmdDb21tYW5kczooQk9PTClzYXZpbmdD
b21tYW5kcworLSAoQk9PTClfaW50ZXJwcmV0S2V5RXZlbnQ6KE5ha2VkUHRyPFdlYkNvcmU6Oktl
eWJvYXJkRXZlbnQ+KWV2ZW50IHNhdmluZ0NvbW1hbmRzOihCT09MKXNhdmluZ0NvbW1hbmRzCiB7
CiAgICAgQVNTRVJUKGNvcmUoW3NlbGYgX2ZyYW1lXSkgPT0gZG93bmNhc3Q8V2ViQ29yZTo6Tm9k
ZT4oZXZlbnQtPnRhcmdldCgpKS0+ZG9jdW1lbnQoKS5mcmFtZSgpKTsKICAgICBBU1NFUlQoIXNh
dmluZ0NvbW1hbmRzIHx8IGV2ZW50LT5rZXlwcmVzc0NvbW1hbmRzKCkuaXNFbXB0eSgpKTsgLy8g
U2F2ZSBjb21tYW5kcyBvbmNlIGZvciBlYWNoIGV2ZW50LgpAQCAtNjExMiw3ICs2MTEzLDcgQEAg
LSAoQk9PTClfaGFuZGxlRWRpdGluZ0tleUV2ZW50OihXZWJDb3JlOjpLZXlib2FyZEV2ZW50ICop
d2NFdmVudAogCiAjaWYgUExBVEZPUk0oTUFDKQogCi0tICh2b2lkKXNldFByb21pc2VkRHJhZ1RJ
RkZEYXRhU291cmNlOihXZWJDb3JlOjpDYWNoZWRJbWFnZSopc291cmNlCistICh2b2lkKXNldFBy
b21pc2VkRHJhZ1RJRkZEYXRhU291cmNlOihOYWtlZFB0cjxXZWJDb3JlOjpDYWNoZWRJbWFnZT4p
c291cmNlCiB7CiAgICAgaWYgKHNvdXJjZSkKICAgICAgICAgc291cmNlLT5hZGRDbGllbnQocHJv
bWlzZWREYXRhQ2xpZW50KCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMv
V2ViVmlldy9XZWJIVE1MVmlld0ludGVybmFsLmggYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9X
ZWJWaWV3L1dlYkhUTUxWaWV3SW50ZXJuYWwuaAppbmRleCA5MTZkMzM2OWZiZWJmY2Y4ZmVlNjA5
ZmFkOGMyYjUxYTEwNWFiYmVhLi42ZjVlNTdkM2ZjZTczNGM1NmY2MmNiM2U3MjNjZjk0NWU1MTNi
YzBmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYkhUTUxW
aWV3SW50ZXJuYWwuaAorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYkhU
TUxWaWV3SW50ZXJuYWwuaApAQCAtNjEsMTMgKzYxLDEzIEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsK
IAogI2lmIFBMQVRGT1JNKE1BQykKIC0gKHZvaWQpX2xvb2tVcEluRGljdGlvbmFyeUZyb21NZW51
OihpZClzZW5kZXI7Ci0tIChCT09MKV9pbnRlcnByZXRLZXlFdmVudDooV2ViQ29yZTo6S2V5Ym9h
cmRFdmVudCAqKWV2ZW50IHNhdmluZ0NvbW1hbmRzOihCT09MKXNhdmluZ0NvbW1hbmRzOworLSAo
Qk9PTClfaW50ZXJwcmV0S2V5RXZlbnQ6KE5ha2VkUHRyPFdlYkNvcmU6OktleWJvYXJkRXZlbnQ+
KWV2ZW50IHNhdmluZ0NvbW1hbmRzOihCT09MKXNhdmluZ0NvbW1hbmRzOwogLSAoRE9NRG9jdW1l
bnRGcmFnbWVudCAqKV9kb2N1bWVudEZyYWdtZW50RnJvbVBhc3RlYm9hcmQ6KE5TUGFzdGVib2Fy
ZCAqKXBhc3RlYm9hcmQ7CiAtIChOU0V2ZW50ICopX21vdXNlRG93bkV2ZW50OwogLSAoQk9PTClp
c0dyYW1tYXJDaGVja2luZ0VuYWJsZWQ7CiAtICh2b2lkKXNldEdyYW1tYXJDaGVja2luZ0VuYWJs
ZWQ6KEJPT0wpZmxhZzsKIC0gKHZvaWQpdG9nZ2xlR3JhbW1hckNoZWNraW5nOihpZClzZW5kZXI7
Ci0tICh2b2lkKXNldFByb21pc2VkRHJhZ1RJRkZEYXRhU291cmNlOihXZWJDb3JlOjpDYWNoZWRJ
bWFnZSopc291cmNlOworLSAodm9pZClzZXRQcm9taXNlZERyYWdUSUZGRGF0YVNvdXJjZTooTmFr
ZWRQdHI8V2ViQ29yZTo6Q2FjaGVkSW1hZ2U+KXNvdXJjZTsKICNlbmRpZgogCiAjaWYgUExBVEZP
Uk0oSU9TX0ZBTUlMWSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZp
ZXcvV2ViTm90aWZpY2F0aW9uLm1tIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9X
ZWJOb3RpZmljYXRpb24ubW0KaW5kZXggMTE1NzU2MDNjZTc5YTVlOGE4NGI2M2E0OGQyOGJkNWFh
NzI5NDczYy4uMTZlODljNGJjM2E3N2I1Njg2MDY5NzRjYTQwNjk2ZGMyY2I0N2YwYyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJOb3RpZmljYXRpb24ubW0K
KysrIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJOb3RpZmljYXRpb24ubW0K
QEAgLTYyLDcgKzYyLDcgQEAgTm90aWZpY2F0aW9uKiBjb3JlKFdlYk5vdGlmaWNhdGlvbiAqbm90
aWZpY2F0aW9uKQogICAgIHJldHVybiBub3RpZmljYXRpb24tPl9wcml2YXRlLT5faW50ZXJuYWwu
Z2V0KCk7CiB9CiAKLS0gKGlkKWluaXRXaXRoQ29yZU5vdGlmaWNhdGlvbjooTm90aWZpY2F0aW9u
Kiljb3JlTm90aWZpY2F0aW9uIG5vdGlmaWNhdGlvbklEOih1aW50NjRfdClub3RpZmljYXRpb25J
RAorLSAoaWQpaW5pdFdpdGhDb3JlTm90aWZpY2F0aW9uOihOYWtlZFB0cjxOb3RpZmljYXRpb24+
KWNvcmVOb3RpZmljYXRpb24gbm90aWZpY2F0aW9uSUQ6KHVpbnQ2NF90KW5vdGlmaWNhdGlvbklE
CiB7CiAgICAgaWYgKCEoc2VsZiA9IFtzdXBlciBpbml0XSkpCiAgICAgICAgIHJldHVybiBuaWw7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYk5vdGlmaWNh
dGlvbkludGVybmFsLmggYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYk5vdGlm
aWNhdGlvbkludGVybmFsLmgKaW5kZXggYTc3OWMwNzUzNWJiNGM1OTFkZjcxOTgxNDgyNmM2Yjc4
ZDI4ODI0NS4uNGExN2M3ZGEwZjdkN2I0NzZjZTBiMmMzNWQxN2VkNTQ3ZDFhZTMxOCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJOb3RpZmljYXRpb25JbnRl
cm5hbC5oCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViTm90aWZpY2F0
aW9uSW50ZXJuYWwuaApAQCAtMjcsNiArMjcsNyBAQAogICovCiAKICNpbXBvcnQgIldlYk5vdGlm
aWNhdGlvbi5oIgorI2ltcG9ydCA8d3RmL05ha2VkUHRyLmg+CiAKICNpZiBFTkFCTEUoTk9USUZJ
Q0FUSU9OUykKIApAQCAtMzcsNyArMzgsNyBAQCBjbGFzcyBOb3RpZmljYXRpb247CiBXZWJDb3Jl
OjpOb3RpZmljYXRpb24qIGNvcmUoV2ViTm90aWZpY2F0aW9uICopOwogCiBAaW50ZXJmYWNlIFdl
Yk5vdGlmaWNhdGlvbiAoV2ViTm90aWZpY2F0aW9uSW50ZXJuYWwpCi0tIChpZClpbml0V2l0aENv
cmVOb3RpZmljYXRpb246KFdlYkNvcmU6Ok5vdGlmaWNhdGlvbiopY29yZU5vdGlmaWNhdGlvbiBu
b3RpZmljYXRpb25JRDoodWludDY0X3Qpbm90aWZpY2F0aW9uSUQ7CistIChpZClpbml0V2l0aENv
cmVOb3RpZmljYXRpb246KE5ha2VkUHRyPFdlYkNvcmU6Ok5vdGlmaWNhdGlvbj4pY29yZU5vdGlm
aWNhdGlvbiBub3RpZmljYXRpb25JRDoodWludDY0X3Qpbm90aWZpY2F0aW9uSUQ7CiBAZW5kCiAK
ICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJS
ZXNvdXJjZS5tbSBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViUmVzb3VyY2Uu
bW0KaW5kZXggODI2YTQzODY2NDg3NzZhYmJmM2JkYTgwYWE5MTQyMWJlODQ5ZGJlYS4uNzc3Y2Ew
ZTcxYWY2MWRlYzgzMGE1YjI2MTk3ZThlZjY3ZDdkOWVmMyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJSZXNvdXJjZS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0
TGVnYWN5L21hYy9XZWJWaWV3L1dlYlJlc291cmNlLm1tCkBAIC0yNjEsNyArMjYxLDcgQEAgLSAo
aWQpX2luaXRXaXRoQ29yZVJlc291cmNlOihSZWY8QXJjaGl2ZVJlc291cmNlPiYmKWNvcmVSZXNv
dXJjZQogICAgIHJldHVybiBzZWxmOwogfQogCi0tIChXZWJDb3JlOjpBcmNoaXZlUmVzb3VyY2Um
KV9jb3JlUmVzb3VyY2UKKy0gKE5ha2VkUmVmPFdlYkNvcmU6OkFyY2hpdmVSZXNvdXJjZT4pX2Nv
cmVSZXNvdXJjZQogewogICAgIHJldHVybiAqX3ByaXZhdGUtPmNvcmVSZXNvdXJjZTsKIH0KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViUmVzb3VyY2VJbnRl
cm5hbC5oIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJSZXNvdXJjZUludGVy
bmFsLmgKaW5kZXggODBjOTc2ZWI2YjM2NTRmYzFjNjg4YzJhOTZiODNiZGI3YWY3NzI1MS4uZWFj
YjFhNTI5ZTUwYjI3YzdlZmQxNzQ0MWJjMDY5MTU2ZjliNWQ1YyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJSZXNvdXJjZUludGVybmFsLmgKKysrIGIvU291
cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJSZXNvdXJjZUludGVybmFsLmgKQEAgLTI3
LDYgKzI3LDcgQEAKICAqLwogCiAjaW1wb3J0ICJXZWJSZXNvdXJjZVByaXZhdGUuaCIKKyNpbXBv
cnQgPHd0Zi9OYWtlZFJlZi5oPgogI2ltcG9ydCA8d3RmL1JlZi5oPgogCiBuYW1lc3BhY2UgV2Vi
Q29yZSB7CkBAIC0zNSw1ICszNiw1IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogQGludGVyZmFj
ZSBXZWJSZXNvdXJjZSAoV2ViUmVzb3VyY2VJbnRlcm5hbCkKIC0gKGlkKV9pbml0V2l0aENvcmVS
ZXNvdXJjZTooUmVmPFdlYkNvcmU6OkFyY2hpdmVSZXNvdXJjZT4mJiljb3JlUmVzb3VyY2U7Ci0t
IChXZWJDb3JlOjpBcmNoaXZlUmVzb3VyY2UmKV9jb3JlUmVzb3VyY2U7CistIChOYWtlZFJlZjxX
ZWJDb3JlOjpBcmNoaXZlUmVzb3VyY2U+KV9jb3JlUmVzb3VyY2U7CiBAZW5kCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYlZpZGVvRnVsbHNjcmVlbkNvbnRy
b2xsZXIuaCBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViVmlkZW9GdWxsc2Ny
ZWVuQ29udHJvbGxlci5oCmluZGV4IGY1NzU3OGJmYzAwMjY0ZTRmNDFiNWVlOWY2ODhhMjZjMjhh
ZDQ0YTIuLmU4ZmI1NjI5NTA5NWJmMzdhNGQyODgwNzUwNDZmMzViZGQyZTA4NWEgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViVmlkZW9GdWxsc2NyZWVuQ29u
dHJvbGxlci5oCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViVmlkZW9G
dWxsc2NyZWVuQ29udHJvbGxlci5oCkBAIC0yNiw2ICsyNiw3IEBACiAjaWYgUExBVEZPUk0oTUFD
KSAmJiBFTkFCTEUoVklERU8pCiAKICNpbXBvcnQgPEFwcEtpdC9OU1dpbmRvd0NvbnRyb2xsZXIu
aD4KKyNpbXBvcnQgPHd0Zi9OYWtlZFB0ci5oPgogI2ltcG9ydCA8d3RmL1JlZlB0ci5oPgogCiBu
YW1lc3BhY2UgV2ViQ29yZSB7CkBAIC00Nyw4ICs0OCw4IEBAIGNsYXNzIEhUTUxWaWRlb0VsZW1l
bnQ7CiAgICAgQk9PTCBfZm9yY2VEaXNhYmxlQW5pbWF0aW9uOwogfQogCi0tICh2b2lkKXNldFZp
ZGVvRWxlbWVudDooV2ViQ29yZTo6SFRNTFZpZGVvRWxlbWVudCAqKXZpZGVvRWxlbWVudDsKLS0g
KFdlYkNvcmU6OkhUTUxWaWRlb0VsZW1lbnQgKil2aWRlb0VsZW1lbnQ7CistICh2b2lkKXNldFZp
ZGVvRWxlbWVudDooTmFrZWRQdHI8V2ViQ29yZTo6SFRNTFZpZGVvRWxlbWVudD4pdmlkZW9FbGVt
ZW50OworLSAoTmFrZWRQdHI8V2ViQ29yZTo6SFRNTFZpZGVvRWxlbWVudD4pdmlkZW9FbGVtZW50
OwogCiAtICh2b2lkKWVudGVyRnVsbHNjcmVlbjooTlNTY3JlZW4gKilzY3JlZW47CiAtICh2b2lk
KWV4aXRGdWxsc2NyZWVuOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2Vi
Vmlldy9XZWJWaWRlb0Z1bGxzY3JlZW5Db250cm9sbGVyLm1tIGIvU291cmNlL1dlYktpdExlZ2Fj
eS9tYWMvV2ViVmlldy9XZWJWaWRlb0Z1bGxzY3JlZW5Db250cm9sbGVyLm1tCmluZGV4IDIzYWFj
MzQ0MjZiYTAzYWI5M2I0ZTk2M2YxZTgyZjg1MTQwNGExY2IuLjc2YmI0NzZhYjA0NDAxZDgzODRl
MGE3YzdmMmMxMGU2ZjBjZGI2ZmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFj
L1dlYlZpZXcvV2ViVmlkZW9GdWxsc2NyZWVuQ29udHJvbGxlci5tbQorKysgYi9Tb3VyY2UvV2Vi
S2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYlZpZGVvRnVsbHNjcmVlbkNvbnRyb2xsZXIubW0KQEAg
LTkzLDE0ICs5MywxNCBAQCAtICh2b2lkKXdpbmRvd0RpZExvYWQKICAgICBbW05TTm90aWZpY2F0
aW9uQ2VudGVyIGRlZmF1bHRDZW50ZXJdIGFkZE9ic2VydmVyOnNlbGYgc2VsZWN0b3I6QHNlbGVj
dG9yKGFwcGxpY2F0aW9uRGlkQ2hhbmdlU2NyZWVuUGFyYW1ldGVyczopIG5hbWU6TlNBcHBsaWNh
dGlvbkRpZENoYW5nZVNjcmVlblBhcmFtZXRlcnNOb3RpZmljYXRpb24gb2JqZWN0Ok5TQXBwXTsK
IH0KIAotLSAoV2ViQ29yZTo6SFRNTFZpZGVvRWxlbWVudCAqKXZpZGVvRWxlbWVudAorLSAoTmFr
ZWRQdHI8V2ViQ29yZTo6SFRNTFZpZGVvRWxlbWVudD4pdmlkZW9FbGVtZW50CiB7CiAgICAgcmV0
dXJuIF92aWRlb0VsZW1lbnQuZ2V0KCk7CiB9CiAKIC8vIEZJWE1FOiBUaGlzIG1ldGhvZCBpcyBu
b3QgcmVhbGx5IGEgc2V0dGVyLiBUaGUgY2FsbGVyIHJlbGllcyBvbiBpdHMgc2lkZSBlZmZlY3Rz
LCBhbmQgaXQncwogLy8gY2FsbGVkIG9uY2UgZWFjaCB0aW1lIHdlIGVudGVyIGZ1bGwgc2NyZWVu
LiBTbyBpdCBzaG91bGQgaGF2ZSBhIGRpZmZlcmVudCBuYW1lLgotLSAodm9pZClzZXRWaWRlb0Vs
ZW1lbnQ6KFdlYkNvcmU6OkhUTUxWaWRlb0VsZW1lbnQgKil2aWRlb0VsZW1lbnQKKy0gKHZvaWQp
c2V0VmlkZW9FbGVtZW50OihOYWtlZFB0cjxXZWJDb3JlOjpIVE1MVmlkZW9FbGVtZW50Pil2aWRl
b0VsZW1lbnQKIHsKICAgICBBU1NFUlQodmlkZW9FbGVtZW50KTsKICAgICBfdmlkZW9FbGVtZW50
ID0gdmlkZW9FbGVtZW50OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2Vi
Vmlldy9XZWJWaWRlb0Z1bGxzY3JlZW5IVURXaW5kb3dDb250cm9sbGVyLmggYi9Tb3VyY2UvV2Vi
S2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYlZpZGVvRnVsbHNjcmVlbkhVRFdpbmRvd0NvbnRyb2xs
ZXIuaAppbmRleCBmNjdmZWFlMTM0MmU2YTk3N2M1NmZiMWY1YzUwNDQyMTIwMGRkMjE5Li5mZjE4
NGFkNDEwNmZjMTc4YjY3MjY2NTkyNWZiN2JkZmVhYmM1MmQ1IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYlZpZGVvRnVsbHNjcmVlbkhVRFdpbmRvd0NvbnRy
b2xsZXIuaAorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYlZpZGVvRnVs
bHNjcmVlbkhVRFdpbmRvd0NvbnRyb2xsZXIuaApAQCAtMzEsNiArMzEsNyBAQAogI2ltcG9ydCA8
QXBwS2l0L05TVHJhY2tpbmdBcmVhLmg+CiAjaW1wb3J0IDxBcHBLaXQvTlNXaW5kb3cuaD4KICNp
bXBvcnQgPEFwcEtpdC9OU1dpbmRvd0NvbnRyb2xsZXIuaD4KKyNpbXBvcnQgPHd0Zi9OYWtlZFB0
ci5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiBjbGFzcyBIVE1MVmlkZW9FbGVtZW50OwpAQCAt
NjQsNyArNjUsNyBAQCBjbGFzcyBIVE1MVmlkZW9FbGVtZW50OwogCiBAcHJvdG9jb2wgV2ViVmlk
ZW9GdWxsc2NyZWVuSFVEV2luZG93Q29udHJvbGxlckRlbGVnYXRlIDxOU09iamVjdD4KIC0gKHZv
aWQpcmVxdWVzdEV4aXRGdWxsc2NyZWVuOwotLSAoV2ViQ29yZTo6SFRNTFZpZGVvRWxlbWVudCop
dmlkZW9FbGVtZW50OworLSAoTmFrZWRQdHI8V2ViQ29yZTo6SFRNTFZpZGVvRWxlbWVudD4pdmlk
ZW9FbGVtZW50OwogQGVuZAogCiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdh
Y3kvbWFjL1dlYlZpZXcvV2ViVmlldy5tbSBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZp
ZXcvV2ViVmlldy5tbQppbmRleCA0YzQxODY0ZDg5ZjQwNTY3ZWQ4MWVkMmVmZWZiNTAxZjY3NTNk
Yjg0Li5lYWIwNjg1NDI5MWMzNjRlZDFhYWJiYWM3MzQyOTI1NTE4YzExMjljIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYlZpZXcubW0KKysrIGIvU291cmNl
L1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJWaWV3Lm1tCkBAIC0yNjIxLDcgKzI2MjEsNyBA
QCAtICh2b2lkKV9zZXRIb3N0QXBwbGljYXRpb25Qcm9jZXNzSWRlbnRpZmllcjoocGlkX3QpcGlk
IGF1ZGl0VG9rZW46KGF1ZGl0X3Rva2VuXwogI2VuZGlmIC8vIFBMQVRGT1JNKElPU19GQU1JTFkp
CiAjZW5kaWYgLy8gRU5BQkxFKFJFTU9URV9JTlNQRUNUT1IpCiAKLS0gKFdlYkNvcmU6OlBhZ2Uq
KXBhZ2UKKy0gKE5ha2VkUHRyPFdlYkNvcmU6OlBhZ2U+KXBhZ2UKIHsKICAgICByZXR1cm4gX3By
aXZhdGUtPnBhZ2U7CiB9CkBAIC05MzEyLDcgKzkzMTIsNyBAQCAtICh2b2lkKV9zY2hlZHVsZUxh
eWVyRmx1c2hGb3JQZW5kaW5nVGlsZUNhY2hlUmVwYWludAogI2VuZGlmCiAKICNpZiBFTkFCTEUo
VklERU8pCi0tICh2b2lkKV9lbnRlclZpZGVvRnVsbHNjcmVlbkZvclZpZGVvRWxlbWVudDooV2Vi
Q29yZTo6SFRNTFZpZGVvRWxlbWVudCopdmlkZW9FbGVtZW50IG1vZGU6KFdlYkNvcmU6OkhUTUxN
ZWRpYUVsZW1lbnRFbnVtczo6VmlkZW9GdWxsc2NyZWVuTW9kZSltb2RlCistICh2b2lkKV9lbnRl
clZpZGVvRnVsbHNjcmVlbkZvclZpZGVvRWxlbWVudDooTmFrZWRQdHI8V2ViQ29yZTo6SFRNTFZp
ZGVvRWxlbWVudD4pdmlkZW9FbGVtZW50IG1vZGU6KFdlYkNvcmU6OkhUTUxNZWRpYUVsZW1lbnRF
bnVtczo6VmlkZW9GdWxsc2NyZWVuTW9kZSltb2RlCiB7CiAgICAgaWYgKF9wcml2YXRlLT5mdWxs
c2NyZWVuQ29udHJvbGxlcikgewogICAgICAgICBpZiAoW19wcml2YXRlLT5mdWxsc2NyZWVuQ29u
dHJvbGxlciB2aWRlb0VsZW1lbnRdID09IHZpZGVvRWxlbWVudCkgewpAQCAtOTM2MywxNCArOTM2
MywxNCBAQCAtIChCT09MKV9oYXNBY3RpdmVWaWRlb0ZvckNvbnRyb2xzSW50ZXJmYWNlCiAgICAg
cmV0dXJuIG1lZGlhRWxlbWVudC0+aGFzQXVkaW8oKSB8fCBtZWRpYUVsZW1lbnQtPmhhc1ZpZGVv
KCk7CiB9CiAKLS0gKHZvaWQpX3NldFVwUGxheWJhY2tDb250cm9sc01hbmFnZXJGb3JNZWRpYUVs
ZW1lbnQ6KFdlYkNvcmU6OkhUTUxNZWRpYUVsZW1lbnQmKW1lZGlhRWxlbWVudAorLSAodm9pZClf
c2V0VXBQbGF5YmFja0NvbnRyb2xzTWFuYWdlckZvck1lZGlhRWxlbWVudDooTmFrZWRSZWY8V2Vi
Q29yZTo6SFRNTE1lZGlhRWxlbWVudD4pbWVkaWFFbGVtZW50CiB7Ci0gICAgaWYgKF9wcml2YXRl
LT5wbGF5YmFja1Nlc3Npb25Nb2RlbCAmJiBfcHJpdmF0ZS0+cGxheWJhY2tTZXNzaW9uTW9kZWwt
Pm1lZGlhRWxlbWVudCgpID09ICZtZWRpYUVsZW1lbnQpCisgICAgaWYgKF9wcml2YXRlLT5wbGF5
YmFja1Nlc3Npb25Nb2RlbCAmJiBfcHJpdmF0ZS0+cGxheWJhY2tTZXNzaW9uTW9kZWwtPm1lZGlh
RWxlbWVudCgpID09IG1lZGlhRWxlbWVudC5wdHIoKSkKICAgICAgICAgcmV0dXJuOwogCiAgICAg
aWYgKCFfcHJpdmF0ZS0+cGxheWJhY2tTZXNzaW9uTW9kZWwpCiAgICAgICAgIF9wcml2YXRlLT5w
bGF5YmFja1Nlc3Npb25Nb2RlbCA9IFdlYkNvcmU6OlBsYXliYWNrU2Vzc2lvbk1vZGVsTWVkaWFF
bGVtZW50OjpjcmVhdGUoKTsKLSAgICBfcHJpdmF0ZS0+cGxheWJhY2tTZXNzaW9uTW9kZWwtPnNl
dE1lZGlhRWxlbWVudCgmbWVkaWFFbGVtZW50KTsKKyAgICBfcHJpdmF0ZS0+cGxheWJhY2tTZXNz
aW9uTW9kZWwtPnNldE1lZGlhRWxlbWVudChtZWRpYUVsZW1lbnQucHRyKCkpOwogCiAgICAgaWYg
KCFfcHJpdmF0ZS0+cGxheWJhY2tTZXNzaW9uSW50ZXJmYWNlKQogICAgICAgICBfcHJpdmF0ZS0+
cGxheWJhY2tTZXNzaW9uSW50ZXJmYWNlID0gV2ViQ29yZTo6UGxheWJhY2tTZXNzaW9uSW50ZXJm
YWNlTWFjOjpjcmVhdGUoKl9wcml2YXRlLT5wbGF5YmFja1Nlc3Npb25Nb2RlbCk7CkBAIC05Mzk0
LDcgKzkzOTQsNyBAQCAtICh2b2lkKV9jbGVhclBsYXliYWNrQ29udHJvbHNNYW5hZ2VyCiAjZW5k
aWYgLy8gRU5BQkxFKFZJREVPKQogCiAjaWYgRU5BQkxFKEZVTExTQ1JFRU5fQVBJKSAmJiAhUExB
VEZPUk0oSU9TX0ZBTUlMWSkKLS0gKEJPT0wpX3N1cHBvcnRzRnVsbFNjcmVlbkZvckVsZW1lbnQ6
KGNvbnN0IFdlYkNvcmU6OkVsZW1lbnQqKWVsZW1lbnQgd2l0aEtleWJvYXJkOihCT09MKXdpdGhL
ZXlib2FyZAorLSAoQk9PTClfc3VwcG9ydHNGdWxsU2NyZWVuRm9yRWxlbWVudDooTmFrZWRQdHI8
Y29uc3QgV2ViQ29yZTo6RWxlbWVudD4pZWxlbWVudCB3aXRoS2V5Ym9hcmQ6KEJPT0wpd2l0aEtl
eWJvYXJkCiB7CiAgICAgaWYgKCFbW3NlbGYgcHJlZmVyZW5jZXNdIGZ1bGxTY3JlZW5FbmFibGVk
XSkKICAgICAgICAgcmV0dXJuIE5POwpAQCAtOTQwMiwxNyArOTQwMiwxNyBAQCAtIChCT09MKV9z
dXBwb3J0c0Z1bGxTY3JlZW5Gb3JFbGVtZW50Oihjb25zdCBXZWJDb3JlOjpFbGVtZW50KillbGVt
ZW50IHdpdGhLZXlibwogICAgIHJldHVybiB0cnVlOwogfQogCi0tICh2b2lkKV9lbnRlckZ1bGxT
Y3JlZW5Gb3JFbGVtZW50OihXZWJDb3JlOjpFbGVtZW50KillbGVtZW50CistICh2b2lkKV9lbnRl
ckZ1bGxTY3JlZW5Gb3JFbGVtZW50OihOYWtlZFB0cjxXZWJDb3JlOjpFbGVtZW50PillbGVtZW50
CiB7CiAgICAgaWYgKCFfcHJpdmF0ZS0+bmV3RnVsbHNjcmVlbkNvbnRyb2xsZXIpCiAgICAgICAg
IF9wcml2YXRlLT5uZXdGdWxsc2NyZWVuQ29udHJvbGxlciA9IFtbV2ViRnVsbFNjcmVlbkNvbnRy
b2xsZXIgYWxsb2NdIGluaXRdOwogCi0gICAgW19wcml2YXRlLT5uZXdGdWxsc2NyZWVuQ29udHJv
bGxlciBzZXRFbGVtZW50OmVsZW1lbnRdOworICAgIFtfcHJpdmF0ZS0+bmV3RnVsbHNjcmVlbkNv
bnRyb2xsZXIgc2V0RWxlbWVudDplbGVtZW50LmdldCgpXTsKICAgICBbX3ByaXZhdGUtPm5ld0Z1
bGxzY3JlZW5Db250cm9sbGVyIHNldFdlYlZpZXc6c2VsZl07CiAgICAgW19wcml2YXRlLT5uZXdG
dWxsc2NyZWVuQ29udHJvbGxlciBlbnRlckZ1bGxTY3JlZW46W1tzZWxmIHdpbmRvd10gc2NyZWVu
XV07ICAgICAgICAKIH0KIAotLSAodm9pZClfZXhpdEZ1bGxTY3JlZW5Gb3JFbGVtZW50OihXZWJD
b3JlOjpFbGVtZW50KillbGVtZW50CistICh2b2lkKV9leGl0RnVsbFNjcmVlbkZvckVsZW1lbnQ6
KE5ha2VkUHRyPFdlYkNvcmU6OkVsZW1lbnQ+KWVsZW1lbnQKIHsKICAgICBpZiAoIV9wcml2YXRl
LT5uZXdGdWxsc2NyZWVuQ29udHJvbGxlcikKICAgICAgICAgcmV0dXJuOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJWaWV3SW50ZXJuYWwuaCBiL1NvdXJj
ZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViVmlld0ludGVybmFsLmgKaW5kZXggODVlMjNm
ODU3N2FmNGI2ZGMyNmIwZDFiZDQ3N2VhYzJiYjFlODAwMS4uZjFhMDg2NzdhZDExNDdmOTM3MjMw
ZjM4YmI2NzRjZWNjZWUzZTJlMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMv
V2ViVmlldy9XZWJWaWV3SW50ZXJuYWwuaAorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9X
ZWJWaWV3L1dlYlZpZXdJbnRlcm5hbC5oCkBAIC00NSw2ICs0NSw4IEBACiAjaW1wb3J0IDxXZWJD
b3JlL1dlYkNvcmVLZXlib2FyZFVJTW9kZS5oPgogI2ltcG9ydCA8ZnVuY3Rpb25hbD4KICNpbXBv
cnQgPHd0Zi9Gb3J3YXJkLmg+CisjaW1wb3J0IDx3dGYvTmFrZWRQdHIuaD4KKyNpbXBvcnQgPHd0
Zi9OYWtlZFJlZi5oPgogI2ltcG9ydCA8d3RmL1JldGFpblB0ci5oPgogCiBuYW1lc3BhY2UgV2Vi
Q29yZSB7CkBAIC0yNzEsMTkgKzI3MywxOSBAQCBPQkpDX0NMQVNTIE5TVGV4dEFsdGVybmF0aXZl
czsKIC0gKHZvaWQpX2ludmFsaWRhdGVVc2VyQWdlbnRDYWNoZTsKIAogI2lmIEVOQUJMRShWSURF
TykgJiYgZGVmaW5lZChfX2NwbHVzcGx1cykKLS0gKHZvaWQpX2VudGVyVmlkZW9GdWxsc2NyZWVu
Rm9yVmlkZW9FbGVtZW50OihXZWJDb3JlOjpIVE1MVmlkZW9FbGVtZW50Kil2aWRlb0VsZW1lbnQg
bW9kZTooV2ViQ29yZTo6SFRNTE1lZGlhRWxlbWVudEVudW1zOjpWaWRlb0Z1bGxzY3JlZW5Nb2Rl
KW1vZGU7CistICh2b2lkKV9lbnRlclZpZGVvRnVsbHNjcmVlbkZvclZpZGVvRWxlbWVudDooTmFr
ZWRQdHI8V2ViQ29yZTo6SFRNTFZpZGVvRWxlbWVudD4pdmlkZW9FbGVtZW50IG1vZGU6KFdlYkNv
cmU6OkhUTUxNZWRpYUVsZW1lbnRFbnVtczo6VmlkZW9GdWxsc2NyZWVuTW9kZSltb2RlOwogLSAo
dm9pZClfZXhpdFZpZGVvRnVsbHNjcmVlbjsKICNpZiBQTEFURk9STShNQUMpICYmIEVOQUJMRShW
SURFT19QUkVTRU5UQVRJT05fTU9ERSkKIC0gKEJPT0wpX2hhc0FjdGl2ZVZpZGVvRm9yQ29udHJv
bHNJbnRlcmZhY2U7Ci0tICh2b2lkKV9zZXRVcFBsYXliYWNrQ29udHJvbHNNYW5hZ2VyRm9yTWVk
aWFFbGVtZW50OihXZWJDb3JlOjpIVE1MTWVkaWFFbGVtZW50JiltZWRpYUVsZW1lbnQ7CistICh2
b2lkKV9zZXRVcFBsYXliYWNrQ29udHJvbHNNYW5hZ2VyRm9yTWVkaWFFbGVtZW50OihOYWtlZFJl
ZjxXZWJDb3JlOjpIVE1MTWVkaWFFbGVtZW50PiltZWRpYUVsZW1lbnQ7CiAtICh2b2lkKV9jbGVh
clBsYXliYWNrQ29udHJvbHNNYW5hZ2VyOwogI2VuZGlmCiAjZW5kaWYKIAogI2lmIEVOQUJMRShG
VUxMU0NSRUVOX0FQSSkgJiYgIVBMQVRGT1JNKElPU19GQU1JTFkpICYmIGRlZmluZWQoX19jcGx1
c3BsdXMpCi0tIChCT09MKV9zdXBwb3J0c0Z1bGxTY3JlZW5Gb3JFbGVtZW50OihXZWJDb3JlOjpF
bGVtZW50KillbGVtZW50IHdpdGhLZXlib2FyZDooQk9PTCl3aXRoS2V5Ym9hcmQ7Ci0tICh2b2lk
KV9lbnRlckZ1bGxTY3JlZW5Gb3JFbGVtZW50OihXZWJDb3JlOjpFbGVtZW50KillbGVtZW50Owot
LSAodm9pZClfZXhpdEZ1bGxTY3JlZW5Gb3JFbGVtZW50OihXZWJDb3JlOjpFbGVtZW50KillbGVt
ZW50OworLSAoQk9PTClfc3VwcG9ydHNGdWxsU2NyZWVuRm9yRWxlbWVudDooTmFrZWRQdHI8V2Vi
Q29yZTo6RWxlbWVudD4pZWxlbWVudCB3aXRoS2V5Ym9hcmQ6KEJPT0wpd2l0aEtleWJvYXJkOwor
LSAodm9pZClfZW50ZXJGdWxsU2NyZWVuRm9yRWxlbWVudDooTmFrZWRQdHI8V2ViQ29yZTo6RWxl
bWVudD4pZWxlbWVudDsKKy0gKHZvaWQpX2V4aXRGdWxsU2NyZWVuRm9yRWxlbWVudDooTmFrZWRQ
dHI8V2ViQ29yZTo6RWxlbWVudD4pZWxlbWVudDsKICNlbmRpZgogCiAvLyBDb252ZXJzaW9uIGZ1
bmN0aW9ucyBiZXR3ZWVuIFdlYkNvcmUgcm9vdCB2aWV3IGNvb3JkaW5hdGVzIGFuZCB3ZWIgdmll
dyBjb29yZGluYXRlcy4K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>387070</attachid>
            <date>2020-01-07 21:31:27 -0800</date>
            <delta_ts>2020-01-07 21:38:56 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-205905-20200107213126.patch</filename>
            <type>text/plain</type>
            <size>116851</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjU0MTUyCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA4
MmRlZmYyOGUyYjlkNGZmMjA4N2FlNGIwODE2MWJjZGRhYmUzMmMwLi43YTJiNzdiOTU4OWJjZjIx
OWM1YTRlY2IzYWE3OWQ4MmZmNDU0ZDcxIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxMyBAQAorMjAyMC0wMS0wNyAgWXVzdWtlIFN1enVraSAgPHlzdXp1a2lAYXBwbGUuY29t
PgorCisgICAgICAgIFJlZHVjZSBiaW5hcnkgc2l6ZSBieSBwdXJnaW5nIEMrKyB0eXBlIGluZm9y
bWF0aW9uIGluIE9iamVjdGl2ZS1DIGZpZWxkcyBhbmQgcGFyYW1ldGVycworICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjA1OTA1CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBBUEkvSlNXcmFwcGVyTWFwLm1t
OgorICAgICAgICAoLVtKU09iakNDbGFzc0luZm8gZGVhbGxvY10pOgorCiAyMDIwLTAxLTA3ICBZ
dXN1a2UgU3V6dWtpICA8eXN1enVraUBhcHBsZS5jb20+CiAKICAgICAgICAgW0pTQ10gUmVtb3Zl
IHZtIGFjY2Vzc29yIGluIEpTVmlydHVhbE1hY2hpbmUgdG8gcmVkdWNlIGJpbmFyeSBzaXplCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5nZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmlu
ZGV4IDliMzIxMGNmYzUyOGQxMzdiOTI4ZDVhZmJiZmEyMDY3ZTIyNWIyMDQuLjI3ZjY0ZWEyZWRk
ZmRjZmRmYWNiNjJkMDQ2ZDI4MmVlZGM3NzEwN2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNTQgQEAKKzIwMjAt
MDEtMDcgIFl1c3VrZSBTdXp1a2kgIDx5c3V6dWtpQGFwcGxlLmNvbT4KKworICAgICAgICBSZWR1
Y2UgYmluYXJ5IHNpemUgYnkgcHVyZ2luZyBDKysgdHlwZSBpbmZvcm1hdGlvbiBpbiBPYmplY3Rp
dmUtQyBmaWVsZHMgYW5kIHBhcmFtZXRlcnMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTIwNTkwNQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgIE9iamVjdGl2ZS1DIGhhcyByZWZsZWN0aW9uIG1lY2hhbmlzbS4g
VGhpcyBtZWFucyB0aGF0IGZpZWxkcywgbWV0aG9kcywgYW5kIHRoZWlyIHR5cGVzCisgICAgICAg
IG5lZWQgdG8gaG9sZCBpdHMgc3RyaW5nIHJlcHJlc2VudGF0aW9ucyBpbiBiaW5hcnkgZXZlbiBp
ZiB3ZSBhcmUgdXNpbmcgcmVsZWFzZSBidWlsZC4KKyAgICAgICAgV2hpbGUgdHlwaWNhbCBPYmpl
Y3RpdmUtQyBjbGFzcyBkb2VzIG5vdCBoYXZlIGxhcmdlIHNpemUgb2YgdHlwZSBuYW1lcywgQysr
IHN0cnVjdCAvIGNsYXNzCisgICAgICAgIGhhcyB2ZXJ5IGxhcmdlIG9uZSwgYW5kIHB1dHRpbmcg
dGhlbSBpbiBPYmplY3RpdmUtQyBtZXRob2QgbmFtZXMsIHBhcmFtZXRlciB0eXBlcywgb3IgZmll
bGRzCisgICAgICAgIG1ha2VzIGJpbmFyeSBzaXplIHZlcnkgbGFyZ2UuCisKKyAgICAgICAgSW50
ZXJlc3RpbmcgdGhpbmcgaXMgdGhhdCB0eXBlIGluZm9ybWF0aW9uIGlzIGdhdGhlcmVkIHdoZW4g
cGFyYW1ldGVyIGlzIGEgQysrIHBvaW50ZXIsIHJlZmVyZW5jZSwKKyAgICAgICAgb3IgdmFsdWUu
IEFuZCBpdCBnYXRoZXJzIG9uZS1sZXZlbCBkZWVwIGluZm9ybWF0aW9uIGZyb20gdGhpcyBwb2lu
dGVyIGV0Yy4gVGhpcyBtZWFucyB0aGF0LCBpZgorICAgICAgICB3ZSB1c2UgUmVmUHRyPFQ+LCBj
b2xsZWN0ZWQgdHlwZSBpbmZvcm1hdGlvbiBpcyB0aGUgb25lIG9mIFJlZlB0ciwgbm90IG9uZSBv
ZiBULiBTbyBpdCBiZWNvbWVzIHNpZ25pZmljYW50bHkKKyAgICAgICAgc21hbGxlci4KKworICAg
ICAgICBUaGlzIHBhdGNoIGludHJvZHVjZXMgTmF0aXZlUmVmPFQ+LiBUaGlzIGlzIHNpbWlsYXIg
dG8gUmVmIHdoaWxlIGl0IGRvZXMgbm90IGhhdmUgYW55IG93bmVyc2hpcC4gU28gaXQKKyAgICAg
ICAgaXMganVzdCBhIHdyYXBwZXIgYXJvdW5kIFQmLiBXZSBhbHJlYWR5IGhhdmUgTmF0aXZlUHRy
PFQ+LiBBbmQgdXNlIE5hdGl2ZVJlZjxUPiAvIE5hdGl2ZVB0cjxUPiBpbnN0ZWFkCisgICAgICAg
IG9mIFQmIGFuZCBUKiBpZiwKKworICAgICAgICAgICAgMS4gVCBpcyBDKysgY2xhc3MuCisgICAg
ICAgICAgICAyLiBUKiAvIFQmIGlzIGluIE9iamVjdGl2ZS1DIGZpZWxkcyBvciBwYXJhbXRlciB0
eXBlcyAoaW5jbHVkaW5nIGEgcmV0dXJuIHR5cGUpLgorCisgICAgICAgIFRoZW4sIHRoZXNlIHR5
cGUgaW5mb3JtYXRpb24gaXMgb25lIG9mIE5hdGl2ZVJlZjxUPiAvIE5hdGl2ZVB0cjxUPiBpbnN0
ZWFkIG9mIFQsIGFuZCB3ZSBjYW4gcmVkdWNlIGJpbmFyeSBzaXplLgorCisgICAgICAgIFRoaXMg
cGF0Y2ggc2F2ZXMgNjAwfktCIGluIGJpbmFyeSBzaXplLgorCisgICAgICAgIE5vdGUgdGhlIGZv
bGxvd2luZyB0aGluZ3MuCisKKyAgICAgICAgMS4gSWYgd2UgdXNlIGBfX2F0dHJpYnV0ZV9fKChv
YmpjX2RpcmVjdCkpYCwgYF9fYXR0cmlidXRlX18oKG9iamNfZGlyZWN0X21lbWJlcnMpKWAsIHdl
IGNhbiBjb21wbGV0ZWx5IHJlbW92ZSB0aGVzZQorICAgICAgICAgICBtZXRhZGF0YSB3aXRob3V0
IHVzaW5nIE5hdGl2ZVJlZiAvIE5hdGl2ZVB0clsxXS4gSG93ZXZlciwgdGhpcyBpcyBub3QgYXZh
aWxhYmxlIGZvciBvdXIgc3VwcG9ydGluZyBwbGF0Zm9ybXMgbm93IChpbmNsdWRpbmcKKyAgICAg
ICAgICAgcHJlLUNhdGFsaW5hIE9TZXMpLiBUaGlzIE5hdGl2ZVJlZiAvIE5hdGl2ZVB0ciB0ZWNo
bmlxdWUgY2FuIHJlZHVjZSBiaW5hcnkgd2l0aG91dCB3YWl0aW5nIGZvciBpdC4KKyAgICAgICAg
Mi4gUmV2ZXJ0aW5nIE5hdGl2ZVJlZiAvIE5hdGl2ZVB0ciB0byB1c3VhbCByZWZlcmVuY2UgLyBw
b2ludGVyIGlzIGZhaXJseSBlYXN5IHNpbmNlIGl0IGlzIHdlbGwgdHlwZWQuIE9uY2UgYF9fYXR0
cmlidXRlX18oKG9iamNfZGlyZWN0KSlgCisgICAgICAgICAgIGJlY29tZXMgYXZhaWxhYmxlIGlu
IG91ciBwbGF0Zm9ybXMsIHdlIGNhbiBjb25zaWRlciBpdC4gQnV0IHVzaW5nIE5hdGl2ZVJlZiAv
IE5hdGl2ZVB0ciBpcyBub3QgaGFybWxlc3MuCisKKyAgICAgICAgWzFdOiBodHRwczovL2dpdGh1
Yi5jb20vbGx2bS9sbHZtLXByb2plY3QvY29tbWl0L2Q0ZTFiYTNmYTlkZmVjMjYxM2JkY2M3ZGIw
YjU4ZGVhNDkwYzU2YjEKKworICAgICAgICAqIFdURi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9q
OgorICAgICAgICAqIHd0Zi9DTWFrZUxpc3RzLnR4dDoKKyAgICAgICAgKiB3dGYvTmFrZWRSZWYu
aDogQWRkZWQuCisgICAgICAgIChXVEY6Ok5ha2VkUmVmOjpOYWtlZFJlZik6CisgICAgICAgIChX
VEY6Ok5ha2VkUmVmOjpvcGVyYXRvci0+IGNvbnN0KToKKyAgICAgICAgKFdURjo6TmFrZWRSZWY6
OmdldCBjb25zdCk6CisgICAgICAgIChXVEY6Ok5ha2VkUmVmOjpvcGVyYXRvciBUJiBjb25zdCk6
CisgICAgICAgIChXVEY6Ok5ha2VkUmVmOjpvcGVyYXRvciEgY29uc3QpOgorICAgICAgICAoV1RG
Ojo9KToKKyAgICAgICAgKFdURjo6TmFrZWRSZWY8VD46OnN3YXApOgorICAgICAgICAoV1RGOjpz
d2FwKToKKwogMjAyMC0wMS0wNyAgQ2FybG9zIEdhcmNpYSBDYW1wb3MgIDxjZ2FyY2lhQGlnYWxp
YS5jb20+CiAKICAgICAgICAgW0dUS11bV1BFXSBBZGQgQVBJIHRvIHNldCBwdXJwb3NlIGFuZCBo
aW50cyBvZiBhY3RpdmUgZWRpdGFibGUgZWxlbWVudCB0byBpbnB1dCBtZXRob2RzCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cK
aW5kZXggYzVmNjI5OWE5NmFjY2M1MTFiMzk1OTkwZjY4YjRkMWVkODQ4NTJmNC4uMmQzZTVmODI5
ZWJlZGI5YWFhMmQyMDUzOGQxNmI1YjA5NDQ3YWNmNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIx
IEBACisyMDIwLTAxLTA3ICBZdXN1a2UgU3V6dWtpICA8eXN1enVraUBhcHBsZS5jb20+CisKKyAg
ICAgICAgUmVkdWNlIGJpbmFyeSBzaXplIGJ5IHB1cmdpbmcgQysrIHR5cGUgaW5mb3JtYXRpb24g
aW4gT2JqZWN0aXZlLUMgZmllbGRzIGFuZCBwYXJhbWV0ZXJzCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDU5MDUKKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBObyBiZWhhdmlvciBjaGFuZ2UuCisKKyAgICAg
ICAgKiBwYWdlL21hYy9XZWJDb3JlRnJhbWVWaWV3Lmg6CisgICAgICAgICogcGxhdGZvcm0vZ3Jh
cGhpY3MvY29jb2EvV2ViR0xMYXllci5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Nv
Y29hL1dlYkdMTGF5ZXIubW06CisgICAgICAgICgtW1dlYkdMTGF5ZXIgaW5pdFdpdGhHcmFwaGlj
c0NvbnRleHRHTDpdKToKKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvU2Nyb2xsQW5pbWF0b3JNYWMu
bW06CisgICAgICAgICgtW1dlYlNjcm9sbEFuaW1hdGlvbkhlbHBlckRlbGVnYXRlIGluaXRXaXRo
U2Nyb2xsQW5pbWF0b3I6XSk6CisgICAgICAgICgtW1dlYlNjcm9sbEFuaW1hdGlvbkhlbHBlckRl
bGVnYXRlIGludmFsaWRhdGVdKToKKyAgICAgICAgKC1bV2ViU2Nyb2xsZXJJbXBEZWxlZ2F0ZSBz
Y3JvbGxBbmltYXRvcl0pOgorCiAyMDIwLTAxLTA3ICBSeWFuIEhhZGRhZCAgPHJ5YW5oYWRkYWRA
YXBwbGUuY29tPgogCiAgICAgICAgIFVucmV2aWV3ZWQsIHJvbGxpbmcgb3V0IHIyNTQxNDQuCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdl
TG9nCmluZGV4IDMxM2U0MDdmMTU2MGQ5Yzk2NWRhOWRkMmU1NGU4NGZiZWEyYTZiNzcuLjhmMWYw
MjI4NDNjZmUzYTFhYTNkM2U5NzU3ZjkwYjY2MzlkNjAxMmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEs
NjggQEAKKzIwMjAtMDEtMDcgIFl1c3VrZSBTdXp1a2kgIDx5c3V6dWtpQGFwcGxlLmNvbT4KKwor
ICAgICAgICBSZWR1Y2UgYmluYXJ5IHNpemUgYnkgcHVyZ2luZyBDKysgdHlwZSBpbmZvcm1hdGlv
biBpbiBPYmplY3RpdmUtQyBmaWVsZHMgYW5kIHBhcmFtZXRlcnMKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwNTkwNQorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvY29jb2EvTmV0
d29ya1Nlc3Npb25Db2NvYS5tbToKKyAgICAgICAgKC1bV0tOZXR3b3JrU2Vzc2lvbkRlbGVnYXRl
IGluaXRXaXRoTmV0d29ya1Nlc3Npb246d3JhcHBlcjp3aXRoQ3JlZGVudGlhbHM6XSk6CisgICAg
ICAgICogU2hhcmVkL0FQSS9Db2NvYS9XS0Jyb3dzaW5nQ29udGV4dEhhbmRsZS5tbToKKyAgICAg
ICAgKC1bV0tCcm93c2luZ0NvbnRleHRIYW5kbGUgX2luaXRXaXRoUGFnZVByb3h5Ol0pOgorICAg
ICAgICAoLVtXS0Jyb3dzaW5nQ29udGV4dEhhbmRsZSBfaW5pdFdpdGhQYWdlOl0pOgorICAgICAg
ICAqIFNoYXJlZC9BUEkvQ29jb2EvV0tCcm93c2luZ0NvbnRleHRIYW5kbGVJbnRlcm5hbC5oOgor
ICAgICAgICAqIFNoYXJlZC9BUEkvQ29jb2EvX1dLUmVtb3RlT2JqZWN0UmVnaXN0cnkubW06Cisg
ICAgICAgICgtW19XS1JlbW90ZU9iamVjdFJlZ2lzdHJ5IF9pbml0V2l0aFdlYlBhZ2U6XSk6Cisg
ICAgICAgICgtW19XS1JlbW90ZU9iamVjdFJlZ2lzdHJ5IF9pbml0V2l0aFdlYlBhZ2VQcm94eTpd
KToKKyAgICAgICAgKiBTaGFyZWQvQVBJL0NvY29hL19XS1JlbW90ZU9iamVjdFJlZ2lzdHJ5SW50
ZXJuYWwuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlldy5tbToKKyAg
ICAgICAgKC1bV0tXZWJWaWV3IF9wYWdlXSk6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9Db2Nv
YS9XS1dlYlZpZXdJbnRlcm5hbC5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvV0tX
ZWJzaXRlRGF0YVN0b3JlLm1tOgorICAgICAgICAoLVtXS1dlYnNpdGVEYXRhU3RvcmUgX2dldEFs
bFN0b3JhZ2VBY2Nlc3NFbnRyaWVzRm9yOmNvbXBsZXRpb25IYW5kbGVyOl0pOgorICAgICAgICAq
IFVJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLVGh1bWJuYWlsVmlldy5tbToKKyAgICAgICAgKiBVSVBy
b2Nlc3MvQVBJL21hYy9XS1ZpZXcubW06CisgICAgICAgICgtW1dLVmlldyBpbml0V2l0aEZyYW1l
OnByb2Nlc3NQb29sOmNvbmZpZ3VyYXRpb246XSk6CisgICAgICAgICogVUlQcm9jZXNzL0NvY29h
L1dlYlZpZXdJbXBsLm1tOgorICAgICAgICAoV2ViS2l0OjpXZWJWaWV3SW1wbDo6V2ViVmlld0lt
cGwpOgorICAgICAgICAoV2ViS2l0OjpXZWJWaWV3SW1wbDo6c2V0TGF5b3V0TW9kZSk6CisgICAg
ICAgIChXZWJLaXQ6OldlYlZpZXdJbXBsOjpmdWxsU2NyZWVuV2luZG93Q29udHJvbGxlcik6Cisg
ICAgICAgIChXZWJLaXQ6OldlYlZpZXdJbXBsOjpyZW1vdGVPYmplY3RSZWdpc3RyeSk6CisgICAg
ICAgICogVUlQcm9jZXNzL2lvcy9XS0FwcGxpY2F0aW9uU3RhdGVUcmFja2luZ1ZpZXcubW06Cisg
ICAgICAgICgtW1dLQXBwbGljYXRpb25TdGF0ZVRyYWNraW5nVmlldyB3aWxsTW92ZVRvV2luZG93
Ol0pOgorICAgICAgICAoLVtXS0FwcGxpY2F0aW9uU3RhdGVUcmFja2luZ1ZpZXcgZGlkTW92ZVRv
V2luZG93XSk6CisgICAgICAgICogVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3Lmg6CisgICAg
ICAgICogVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3Lm1tOgorICAgICAgICAoLVtXS0NvbnRl
bnRWaWV3IGluaXRXaXRoRnJhbWU6cHJvY2Vzc1Bvb2w6Y29uZmlndXJhdGlvbjp3ZWJWaWV3Ol0p
OgorICAgICAgICAqIFVJUHJvY2Vzcy9tYWMvV0tGdWxsU2NyZWVuV2luZG93Q29udHJvbGxlci5o
OgorICAgICAgICAqIFVJUHJvY2Vzcy9tYWMvV0tGdWxsU2NyZWVuV2luZG93Q29udHJvbGxlci5t
bToKKyAgICAgICAgKC1bV0tGdWxsU2NyZWVuV2luZG93Q29udHJvbGxlciBpbml0V2l0aFdpbmRv
dzp3ZWJWaWV3OnBhZ2U6XSk6CisgICAgICAgICogVUlQcm9jZXNzL21hYy9XS0ltbWVkaWF0ZUFj
dGlvbkNvbnRyb2xsZXIuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvbWFjL1dLSW1tZWRpYXRlQWN0
aW9uQ29udHJvbGxlci5tbToKKyAgICAgICAgKC1bV0tJbW1lZGlhdGVBY3Rpb25Db250cm9sbGVy
IGluaXRXaXRoUGFnZTp2aWV3OnZpZXdJbXBsOnJlY29nbml6ZXI6XSk6CisgICAgICAgICgtW1dL
SW1tZWRpYXRlQWN0aW9uQ29udHJvbGxlciBfYW5pbWF0aW9uQ29udHJvbGxlckZvckRhdGFEZXRl
Y3RlZFRleHRdKToKKyAgICAgICAgKC1bV0tJbW1lZGlhdGVBY3Rpb25Db250cm9sbGVyIF9hbmlt
YXRpb25Db250cm9sbGVyRm9yRGF0YURldGVjdGVkTGlua10pOgorICAgICAgICAqIFVJUHJvY2Vz
cy9tYWMvV0tJbnNwZWN0b3JWaWV3Q29udHJvbGxlci5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9t
YWMvV0tJbnNwZWN0b3JWaWV3Q29udHJvbGxlci5tbToKKyAgICAgICAgKC1bV0tJbnNwZWN0b3JW
aWV3Q29udHJvbGxlciBpbml0V2l0aEluc3BlY3RlZFBhZ2U6XSk6CisgICAgICAgICogVUlQcm9j
ZXNzL21hYy9XS1RleHRGaW5kZXJDbGllbnQuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvbWFjL1dL
VGV4dEZpbmRlckNsaWVudC5tbToKKyAgICAgICAgKC1bV0tUZXh0RmluZGVyQ2xpZW50IGluaXRX
aXRoUGFnZTp2aWV3OnVzZVBsYXRmb3JtRmluZFVJOl0pOgorICAgICAgICAqIFVJUHJvY2Vzcy9t
YWMvV0tWaWV3TGF5b3V0U3RyYXRlZ3kuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvbWFjL1dLVmll
d0xheW91dFN0cmF0ZWd5Lm1tOgorICAgICAgICAoK1tXS1ZpZXdMYXlvdXRTdHJhdGVneSBsYXlv
dXRTdHJhdGVneVdpdGhQYWdlOnZpZXc6dmlld0ltcGw6bW9kZTpdKToKKyAgICAgICAgKC1bV0tW
aWV3TGF5b3V0U3RyYXRlZ3kgaW5pdFdpdGhQYWdlOnZpZXc6dmlld0ltcGw6bW9kZTpdKToKKyAg
ICAgICAgKC1bV0tWaWV3Vmlld1NpemVMYXlvdXRTdHJhdGVneSBpbml0V2l0aFBhZ2U6dmlldzp2
aWV3SW1wbDptb2RlOl0pOgorICAgICAgICAoLVtXS1ZpZXdGaXhlZFNpemVMYXlvdXRTdHJhdGVn
eSBpbml0V2l0aFBhZ2U6dmlldzp2aWV3SW1wbDptb2RlOl0pOgorICAgICAgICAoLVtXS1ZpZXdE
eW5hbWljU2l6ZUNvbXB1dGVkRnJvbVZpZXdTY2FsZUxheW91dFN0cmF0ZWd5IGluaXRXaXRoUGFn
ZTp2aWV3OnZpZXdJbXBsOm1vZGU6XSk6CisgICAgICAgICgtW1dLVmlld0R5bmFtaWNTaXplQ29t
cHV0ZWRGcm9tTWluaW11bURvY3VtZW50U2l6ZUxheW91dFN0cmF0ZWd5IGluaXRXaXRoUGFnZTp2
aWV3OnZpZXdJbXBsOm1vZGU6XSk6CisgICAgICAgICogV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRs
ZS9BUEkvbWFjL1dLRE9NRG9jdW1lbnQubW06CisgICAgICAgICgtW1dLRE9NRG9jdW1lbnRQYXJz
ZXJZaWVsZFRva2VuIGluaXRXaXRoRG9jdW1lbnQ6XSk6CisgICAgICAgICogV2ViUHJvY2Vzcy9X
ZWJQYWdlL21hYy9XS0FjY2Vzc2liaWxpdHlXZWJQYWdlT2JqZWN0QmFzZS5oOgorICAgICAgICAq
IFdlYlByb2Nlc3MvV2ViUGFnZS9tYWMvV0tBY2Nlc3NpYmlsaXR5V2ViUGFnZU9iamVjdEJhc2Uu
bW06CisgICAgICAgICgtW1dLQWNjZXNzaWJpbGl0eVdlYlBhZ2VPYmplY3RCYXNlIGF4T2JqZWN0
Q2FjaGVdKToKKyAgICAgICAgKC1bV0tBY2Nlc3NpYmlsaXR5V2ViUGFnZU9iamVjdEJhc2Ugc2V0
V2ViUGFnZTpdKToKKwogMjAyMC0wMS0wNyAgUnlhbiBIYWRkYWQgIDxyeWFuaGFkZGFkQGFwcGxl
LmNvbT4KIAogICAgICAgICBVbnJldmlld2VkLCByb2xsaW5nIG91dCByMjU0MTQ0LgpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdExl
Z2FjeS9tYWMvQ2hhbmdlTG9nCmluZGV4IGM3NGVmYTlmNzQwM2U5NzYyOGRlMTRhODM5YWUzMzgy
NWNhZGYzZjUuLjRiZmQzMWUxMDJjMTk4N2NiNDY5NWJjNmIyYTY5OGVkOTBhN2IyMWQgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2Vi
S2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMTMgQEAKKzIwMjAtMDEtMDcgIFl1
c3VrZSBTdXp1a2kgIDx5c3V6dWtpQGFwcGxlLmNvbT4KKworICAgICAgICBSZWR1Y2UgYmluYXJ5
IHNpemUgYnkgcHVyZ2luZyBDKysgdHlwZSBpbmZvcm1hdGlvbiBpbiBPYmplY3RpdmUtQyBmaWVs
ZHMgYW5kIHBhcmFtZXRlcnMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTIwNTkwNQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgICogUGx1Z2lucy9XZWJCYXNlTmV0c2NhcGVQbHVnaW5WaWV3Lmg6CisgICAgICAg
ICogUGx1Z2lucy9XZWJCYXNlTmV0c2NhcGVQbHVnaW5WaWV3Lm1tOgorICAgICAgICAoLVtXZWJC
YXNlTmV0c2NhcGVQbHVnaW5WaWV3IGVsZW1lbnRdKToKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9y
dC9XZWJFZGl0b3JDbGllbnQubW06CisgICAgICAgIChfV2ViQ3JlYXRlRnJhZ21lbnQpOgorICAg
ICAgICAqIFdlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50Lm1tOgorICAgICAgICAo
V2ViRnJhbWVMb2FkZXJDbGllbnQ6OnRyYW5zaXRpb25Ub0NvbW1pdHRlZEZvck5ld1BhZ2UpOgor
ICAgICAgICAoLVtXZWJGcmFtZVBvbGljeUxpc3RlbmVyIGluaXRXaXRoRnJhbWU6aWRlbnRpZmll
cjpwb2xpY3lGdW5jdGlvbjpkZWZhdWx0UG9saWN5Ol0pOgorICAgICAgICAoLVtXZWJGcmFtZVBv
bGljeUxpc3RlbmVyIGluaXRXaXRoRnJhbWU6aWRlbnRpZmllcjpwb2xpY3lGdW5jdGlvbjpkZWZh
dWx0UG9saWN5OmFwcExpbmtVUkw6XSk6CisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvV2ViR2Vv
bG9jYXRpb25DbGllbnQubW06CisgICAgICAgICgtW1dlYkdlb2xvY2F0aW9uUG9saWN5TGlzdGVu
ZXIgaW5pdFdpdGhHZW9sb2NhdGlvbjpdKToKKyAgICAgICAgKC1bV2ViR2VvbG9jYXRpb25Qb2xp
Y3lMaXN0ZW5lciBpbml0V2l0aEdlb2xvY2F0aW9uOmZvcldlYlZpZXc6XSk6CisgICAgICAgICgt
W1dlYkdlb2xvY2F0aW9uUHJvdmlkZXJJbml0aWFsaXphdGlvbkxpc3RlbmVyIGluaXRXaXRoR2Vv
bG9jYXRpb246XSk6CisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvV2ViSW5zcGVjdG9yQ2xpZW50
Lm1tOgorICAgICAgICAoV2ViSW5zcGVjdG9yRnJvbnRlbmRDbGllbnQ6OnJlc2V0U3RhdGUpOgor
ICAgICAgICAoLVtXZWJJbnNwZWN0b3JXaW5kb3dDb250cm9sbGVyIHNldEZyb250ZW5kQ2xpZW50
Ol0pOgorICAgICAgICAoLVtXZWJJbnNwZWN0b3JXaW5kb3dDb250cm9sbGVyIHNldEluc3BlY3Rv
ckNsaWVudDpdKToKKyAgICAgICAgKC1bV2ViSW5zcGVjdG9yV2luZG93Q29udHJvbGxlciBpbnNw
ZWN0b3JDbGllbnRdKToKKyAgICAgICAgKiBXZWJJbnNwZWN0b3IvV2ViSW5zcGVjdG9yRnJvbnRl
bmQuaDoKKyAgICAgICAgKiBXZWJJbnNwZWN0b3IvV2ViSW5zcGVjdG9yRnJvbnRlbmQubW06Cisg
ICAgICAgICogV2ViSW5zcGVjdG9yL1dlYk5vZGVIaWdobGlnaHQuaDoKKyAgICAgICAgKiBXZWJJ
bnNwZWN0b3IvV2ViTm9kZUhpZ2hsaWdodC5tbToKKyAgICAgICAgKC1bV2ViTm9kZUhpZ2hsaWdo
dCBpbml0V2l0aFRhcmdldFZpZXc6aW5zcGVjdG9yQ29udHJvbGxlcjpdKToKKyAgICAgICAgKiBX
ZWJWaWV3L1dlYkFyY2hpdmUubW06CisgICAgICAgICgtW1dlYkFyY2hpdmUgaW5pdFdpdGhNYWlu
UmVzb3VyY2U6c3VicmVzb3VyY2VzOnN1YmZyYW1lQXJjaGl2ZXM6XSk6CisgICAgICAgICogV2Vi
Vmlldy9XZWJEYXRhU291cmNlLm1tOgorICAgICAgICAoLVtXZWJEYXRhU291cmNlIF9kb2N1bWVu
dExvYWRlcl0pOgorICAgICAgICAoLVtXZWJEYXRhU291cmNlIGFkZFN1YnJlc291cmNlOl0pOgor
ICAgICAgICAqIFdlYlZpZXcvV2ViRGF0YVNvdXJjZUludGVybmFsLmg6CisgICAgICAgICogV2Vi
Vmlldy9XZWJGcmFtZS5tbToKKyAgICAgICAgKGdldFdlYlZpZXcpOgorICAgICAgICAoLVtXZWJG
cmFtZSBfdXBkYXRlQmFja2dyb3VuZEFuZFVwZGF0ZXNXaGlsZU9mZnNjcmVlbl0pOgorICAgICAg
ICAoLVtXZWJGcmFtZSBfdW5tYXJrQWxsQmFkR3JhbW1hcl0pOgorICAgICAgICAoLVtXZWJGcmFt
ZSBfdW5tYXJrQWxsTWlzc3BlbGxpbmdzXSk6CisgICAgICAgICgtW1dlYkZyYW1lIF9oYXNTZWxl
Y3Rpb25dKToKKyAgICAgICAgKC1bV2ViRnJhbWUgX2F0TW9zdE9uZUZyYW1lSGFzU2VsZWN0aW9u
XSk6CisgICAgICAgICgtW1dlYkZyYW1lIF9maW5kRnJhbWVXaXRoU2VsZWN0aW9uXSk6CisgICAg
ICAgICgtW1dlYkZyYW1lIF9zY3JvbGxET01SYW5nZVRvVmlzaWJsZTp3aXRoSW5zZXQ6XSk6Cisg
ICAgICAgICgtW1dlYkZyYW1lIF9kb2N1bWVudEZyYWdtZW50V2l0aE1hcmt1cFN0cmluZzpiYXNl
VVJMU3RyaW5nOl0pOgorICAgICAgICAoLVtXZWJGcmFtZSBfZG9jdW1lbnRGcmFnbWVudFdpdGhO
b2Rlc0FzUGFyYWdyYXBoczpdKToKKyAgICAgICAgKC1bV2ViRnJhbWUgX2NhblByb3ZpZGVEb2N1
bWVudFNvdXJjZV0pOgorICAgICAgICAoLVtXZWJGcmFtZSBfaXNEZXNjZW5kYW50T2ZGcmFtZTpd
KToKKyAgICAgICAgKC1bV2ViRnJhbWUgX3JlY3Vyc2l2ZV9yZXN1bWVOdWxsRXZlbnRzRm9yQWxs
TmV0c2NhcGVQbHVnaW5zXSk6CisgICAgICAgICgtW1dlYkZyYW1lIF9yZWN1cnNpdmVfcGF1c2VO
dWxsRXZlbnRzRm9yQWxsTmV0c2NhcGVQbHVnaW5zXSk6CisgICAgICAgICgtW1dlYkZyYW1lIHNl
dFRpbWVvdXRzUGF1c2VkOl0pOgorICAgICAgICAoLVtXZWJGcmFtZSBwcmVwYXJlRm9yUGF1c2Vd
KToKKyAgICAgICAgKC1bV2ViRnJhbWUgcmVzdW1lRnJvbVBhdXNlXSk6CisgICAgICAgICgtW1dl
YkZyYW1lIHJlc2V0VGV4dEF1dG9zaXppbmdCZWZvcmVMYXlvdXRdKToKKyAgICAgICAgKC1bV2Vi
RnJhbWUgX2dsb2JhbENvbnRleHRGb3JTY3JpcHRXb3JsZDpdKToKKyAgICAgICAgKC1bV2ViRnJh
bWUgX2xheWVyVHJlZUFzVGV4dF0pOgorICAgICAgICAoLVtXZWJGcmFtZSBfY2xlYXJPcGVuZXJd
KToKKyAgICAgICAgKC1bV2ViRnJhbWUgZm9jdXNlZE5vZGVIYXNDb250ZW50XSk6CisgICAgICAg
ICgtW1dlYkZyYW1lIF9kaXNwYXRjaERpZFJlY2VpdmVUaXRsZTpdKToKKyAgICAgICAgKC1bV2Vi
RnJhbWUganNXcmFwcGVyRm9yTm9kZTppblNjcmlwdFdvcmxkOl0pOgorICAgICAgICAoLVtXZWJG
cmFtZSBlbGVtZW50QXRQb2ludDpdKToKKyAgICAgICAgKC1bV2ViRnJhbWUgbmFtZV0pOgorICAg
ICAgICAoLVtXZWJGcmFtZSBET01Eb2N1bWVudF0pOgorICAgICAgICAoLVtXZWJGcmFtZSBmcmFt
ZUVsZW1lbnRdKToKKyAgICAgICAgKC1bV2ViRnJhbWUgcHJvdmlzaW9uYWxEYXRhU291cmNlXSk6
CisgICAgICAgICgtW1dlYkZyYW1lIGRhdGFTb3VyY2VdKToKKyAgICAgICAgKC1bV2ViRnJhbWUg
bG9hZFJlcXVlc3Q6XSk6CisgICAgICAgICgtW1dlYkZyYW1lIGZpbmRGcmFtZU5hbWVkOl0pOgor
ICAgICAgICAoLVtXZWJGcmFtZSBwYXJlbnRGcmFtZV0pOgorICAgICAgICAoLVtXZWJGcmFtZSBj
aGlsZEZyYW1lc10pOgorICAgICAgICAoLVtXZWJGcmFtZSB3aW5kb3dPYmplY3RdKToKKyAgICAg
ICAgKC1bV2ViRnJhbWUgZ2xvYmFsQ29udGV4dF0pOgorICAgICAgICAoLVtXZWJGcmFtZSBqYXZh
U2NyaXB0Q29udGV4dF0pOgorICAgICAgICAqIFdlYlZpZXcvV2ViRnJhbWVJbnRlcm5hbC5oOgor
ICAgICAgICAqIFdlYlZpZXcvV2ViRnJhbWVWaWV3Lm1tOgorICAgICAgICAoLVtXZWJGcmFtZVZp
ZXcgX3dlYl9mcmFtZV0pOgorICAgICAgICAoLVtXZWJGcmFtZVZpZXcgX2ZyYW1lU2l6ZUNoYW5n
ZWRdKToKKyAgICAgICAgKC1bV2ViRnJhbWVWaWV3IF9pc1ZlcnRpY2FsRG9jdW1lbnRdKToKKyAg
ICAgICAgKC1bV2ViRnJhbWVWaWV3IF9pc0ZsaXBwZWREb2N1bWVudF0pOgorICAgICAgICAoLVtX
ZWJGcmFtZVZpZXcga2V5RG93bjprZXlEb3duOl0pOgorICAgICAgICAqIFdlYlZpZXcvV2ViRnVs
bFNjcmVlbkNvbnRyb2xsZXIubW06CisgICAgICAgICgtW1dlYkZ1bGxTY3JlZW5Db250cm9sbGVy
IF9kb2N1bWVudF0pOgorICAgICAgICAqIFdlYlZpZXcvV2ViSFRNTFZpZXcubW06CisgICAgICAg
ICgtW1dlYk1lbnVUYXJnZXQgbWVudUNvbnRyb2xsZXJdKToKKyAgICAgICAgKC1bV2ViTWVudVRh
cmdldCBzZXRNZW51Q29udHJvbGxlcjpdKToKKyAgICAgICAgKC1bV2ViSFRNTFZpZXcgbmFtZXNP
ZlByb21pc2VkRmlsZXNEcm9wcGVkQXREZXN0aW5hdGlvbjpdKToKKyAgICAgICAgKC1bV2ViSFRN
TFZpZXcgX2ludGVycHJldEtleUV2ZW50OnNhdmluZ0NvbW1hbmRzOl0pOgorICAgICAgICAoLVtX
ZWJIVE1MVmlldyBzZXRQcm9taXNlZERyYWdUSUZGRGF0YVNvdXJjZTpdKToKKyAgICAgICAgKiBX
ZWJWaWV3L1dlYkhUTUxWaWV3SW50ZXJuYWwuaDoKKyAgICAgICAgKiBXZWJWaWV3L1dlYk5vdGlm
aWNhdGlvbi5tbToKKyAgICAgICAgKC1bV2ViTm90aWZpY2F0aW9uIGluaXRXaXRoQ29yZU5vdGlm
aWNhdGlvbjpub3RpZmljYXRpb25JRDpdKToKKyAgICAgICAgKiBXZWJWaWV3L1dlYk5vdGlmaWNh
dGlvbkludGVybmFsLmg6CisgICAgICAgICogV2ViVmlldy9XZWJSZXNvdXJjZS5tbToKKyAgICAg
ICAgKC1bV2ViUmVzb3VyY2UgX2NvcmVSZXNvdXJjZV0pOgorICAgICAgICAqIFdlYlZpZXcvV2Vi
UmVzb3VyY2VJbnRlcm5hbC5oOgorICAgICAgICAqIFdlYlZpZXcvV2ViVmlkZW9GdWxsc2NyZWVu
Q29udHJvbGxlci5oOgorICAgICAgICAqIFdlYlZpZXcvV2ViVmlkZW9GdWxsc2NyZWVuQ29udHJv
bGxlci5tbToKKyAgICAgICAgKC1bV2ViVmlkZW9GdWxsc2NyZWVuQ29udHJvbGxlciB2aWRlb0Vs
ZW1lbnRdKToKKyAgICAgICAgKC1bV2ViVmlkZW9GdWxsc2NyZWVuQ29udHJvbGxlciBzZXRWaWRl
b0VsZW1lbnQ6XSk6CisgICAgICAgICogV2ViVmlldy9XZWJWaWRlb0Z1bGxzY3JlZW5IVURXaW5k
b3dDb250cm9sbGVyLmg6CisgICAgICAgICogV2ViVmlldy9XZWJWaWV3Lm1tOgorICAgICAgICAo
LVtXZWJWaWV3IHBhZ2VdKToKKyAgICAgICAgKC1bV2ViVmlldyBfZW50ZXJWaWRlb0Z1bGxzY3Jl
ZW5Gb3JWaWRlb0VsZW1lbnQ6bW9kZTpdKToKKyAgICAgICAgKC1bV2ViVmlldyBfc2V0VXBQbGF5
YmFja0NvbnRyb2xzTWFuYWdlckZvck1lZGlhRWxlbWVudDpdKToKKyAgICAgICAgKC1bV2ViVmll
dyBfc3VwcG9ydHNGdWxsU2NyZWVuRm9yRWxlbWVudDp3aXRoS2V5Ym9hcmQ6XSk6CisgICAgICAg
ICgtW1dlYlZpZXcgX2VudGVyRnVsbFNjcmVlbkZvckVsZW1lbnQ6XSk6CisgICAgICAgICgtW1dl
YlZpZXcgX2V4aXRGdWxsU2NyZWVuRm9yRWxlbWVudDpdKToKKyAgICAgICAgKiBXZWJWaWV3L1dl
YlZpZXdJbnRlcm5hbC5oOgorCiAyMDIwLTAxLTA3ICBDb21taXQgUXVldWUgIDxjb21taXQtcXVl
dWVAd2Via2l0Lm9yZz4KIAogICAgICAgICBVbnJldmlld2VkLCByb2xsaW5nIG91dCByMjU0MTMy
LgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU1dyYXBwZXJNYXAubW0g
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTV3JhcHBlck1hcC5tbQppbmRleCAyOGMyMzNl
YTE4Njk2MTM1ZWQxMTMxZDk2MGJhZmI2NjljYTMzODZjLi43MjBiYjFiYzM0NzE1NmJiNDYzYzZl
ODUzM2E3OWY3NDkxYzU1MzBiIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJ
L0pTV3JhcHBlck1hcC5tbQorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTV3JhcHBl
ck1hcC5tbQpAQCAtMzkwLDcgKzM5MCw3IEBAIHN0YXRpYyB2b2lkIGNvcHlQcm90b3R5cGVQcm9w
ZXJ0aWVzKEpTQ29udGV4dCAqY29udGV4dCwgQ2xhc3Mgb2JqY0NsYXNzLCBQcm90b2NvCiBAaW50
ZXJmYWNlIEpTT2JqQ0NsYXNzSW5mbyA6IE5TT2JqZWN0IHsKICAgICBDbGFzcyBtX2NsYXNzOwog
ICAgIGJvb2wgbV9ibG9jazsKLSAgICBKU0NsYXNzUmVmIG1fY2xhc3NSZWY7CisgICAgTmFrZWRQ
dHI8T3BhcXVlSlNDbGFzcz4gbV9jbGFzc1JlZjsKICAgICBKU0M6OldlYWs8SlNDOjpKU09iamVj
dD4gbV9wcm90b3R5cGU7CiAgICAgSlNDOjpXZWFrPEpTQzo6SlNPYmplY3Q+IG1fY29uc3RydWN0
b3I7CiAgICAgSlNDOjpXZWFrPEpTQzo6U3RydWN0dXJlPiBtX3N0cnVjdHVyZTsKQEAgLTQyNCw3
ICs0MjQsNyBAQCAtIChpbnN0YW5jZXR5cGUpaW5pdEZvckNsYXNzOihDbGFzcyljbHMKIAogLSAo
dm9pZClkZWFsbG9jCiB7Ci0gICAgSlNDbGFzc1JlbGVhc2UobV9jbGFzc1JlZik7CisgICAgSlND
bGFzc1JlbGVhc2UobV9jbGFzc1JlZi5nZXQoKSk7CiAgICAgW3N1cGVyIGRlYWxsb2NdOwogfQog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL1dURi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIv
U291cmNlL1dURi9XVEYueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCBkMDA0MGM5NzNi
M2FlMjExZmVhNGFjYTdiNDBkZjEyZjk0MGYwNDBmLi5hNjNkYmRjYjM1YzM3ZTk5YmI0NTFiZDg2
MDA2M2YzZjNmNzk4MWVmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL1dURi54Y29kZXByb2ovcHJv
amVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XVEYvV1RGLnhjb2RlcHJvai9wcm9qZWN0LnBieHBy
b2oKQEAgLTY4OSw2ICs2ODksNyBAQAogCQlFMzE0OUEzQTIyOEJEQ0FCMDBCRkE2QzcgLyogQ29u
Y3VycmVudEJ1ZmZlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBD
b25jdXJyZW50QnVmZmVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRTMxQkRF
MjgyMkU5MTNDQzAwMjlCMTA1IC8qIE1hY2hWTVNQSS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBNYWNoVk1TUEkuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRTMy
MDBBQjQxRTlBNTM2RDAwM0I1OUQyIC8qIFBsYXRmb3JtUmVnaXN0ZXJzLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFBsYXRmb3JtUmVnaXN0ZXJzLmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CisJCUUzMkEyMDczMjNDNTkwMkQwMDM0QTA5MiAvKiBOYWtlZFJlZi5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBOYWtlZFJlZi5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQlFMzNENUY4NzFGQkVENjY3MDBCRjYyNUUgLyogUmVjdXJzYWJsZUxh
bWJkYS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBSZWN1cnNhYmxlTGFtYmRh
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUUzNENEMEQwMjI4MTBBMDIwMDIwRDI5
OSAvKiBQYWNrZWQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUGFja2VkLmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCUUzNjBDNzY0MjEyN0I4NUIwMEM5MEYwRSAvKiBVbmFsaWduZWRBY2Nlc3Mu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gVW5hbGlnbmVkQWNjZXNzLmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xMDgzLDYgKzEwODQsNyBAQAogCQkJCTBGNjZC
MjgyMURDOTdCQUIwMDRBMUQzRiAvKiBNb25vdG9uaWNUaW1lLmNwcCAqLywKIAkJCQkwRjY2QjI4
MzFEQzk3QkFCMDA0QTFEM0YgLyogTW9ub3RvbmljVGltZS5oICovLAogCQkJCUZFODIyNTMwMUIy
QTFFNUIwMEJBNjhGRCAvKiBOYWtlZFB0ci5oICovLAorCQkJCUUzMkEyMDczMjNDNTkwMkQwMDM0
QTA5MiAvKiBOYWtlZFJlZi5oICovLAogCQkJCTBGNUJGMTY1MUYyMzE3ODMwMDI5RDkxRCAvKiBO
YXR1cmFsTG9vcHMuaCAqLywKIAkJCQkxQTNGNkJFNjE3NEFEQTIxMDBCMkVFQTcgLyogTmV2ZXJE
ZXN0cm95ZWQuaCAqLywKIAkJCQkwRjBEODVCMzE3MjM0Q0IxMDAzMzgyMTAgLyogTm9Mb2NrLmgg
Ki8sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9DTWFrZUxpc3RzLnR4dCBiL1NvdXJjZS9X
VEYvd3RmL0NNYWtlTGlzdHMudHh0CmluZGV4IDZhODI2ODJhYmQyOGRjYzZiY2JlZjM2MGU5NjM0
ZDVjNGM4NDAzMzAuLmFjYmE0MDBmNjBlMjA5NjAzYWZlNzA3YTM2YWI4YTQ2NzBhYzUwODkgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL0NNYWtlTGlzdHMudHh0CisrKyBiL1NvdXJjZS9XVEYv
d3RmL0NNYWtlTGlzdHMudHh0CkBAIC0xMzksNiArMTM5LDcgQEAgc2V0KFdURl9QVUJMSUNfSEVB
REVSUwogICAgIE1ldGFBbGxvY2F0b3JQdHIuaAogICAgIE1vbm90b25pY1RpbWUuaAogICAgIE5h
a2VkUHRyLmgKKyAgICBOYWtlZFJlZi5oCiAgICAgTmF0dXJhbExvb3BzLmgKICAgICBOZXZlckRl
c3Ryb3llZC5oCiAgICAgTm9Mb2NrLmgKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL05ha2Vk
UmVmLmggYi9Tb3VyY2UvV1RGL3d0Zi9OYWtlZFJlZi5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjk1MDU0ZDM0YWQw
M2ZjYzc3MmU1MTRkNjIxYWYyZjEzMTdjNjkwZGYKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2Uv
V1RGL3d0Zi9OYWtlZFJlZi5oCkBAIC0wLDAgKzEsMTIxIEBACisvKgorICogQ29weXJpZ2h0IChD
KSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
KyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3Vy
Y2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAy
LiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Ig
b3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBU
SElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkK
KyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFO
RCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJ
TiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxF
IEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1Q
TEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExP
U1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9O
KSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVU
SEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5H
IE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBV
U0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJ
VFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpbmNsdWRlIDx3dGYv
RHVtYlB0clRyYWl0cy5oPgorI2luY2x1ZGUgPHd0Zi9GYXN0TWFsbG9jLmg+CisKK25hbWVzcGFj
ZSBXVEYgeworCisvLyBUaGUgcHVycG9zZSBvZiB0aGlzIGNsYXNzIGlzIHRvIGVuc3VyZSB0aGF0
IHRoZSB3cmFwcGVkIHBvaW50ZXIgd2lsbCBuZXZlciBiZQorLy8gdXNlZCB1bmluaXRpYWxpemVk
LgorCit0ZW1wbGF0ZSA8dHlwZW5hbWUgVD4gY2xhc3MgTmFrZWRSZWYgeworICAgIFdURl9NQUtF
X0ZBU1RfQUxMT0NBVEVEOworcHVibGljOgorICAgIEFMV0FZU19JTkxJTkUgTmFrZWRSZWYoVCYg
cmVmKSA6IG1fcHRyKCZyZWYpIHsgfQorICAgIEFMV0FZU19JTkxJTkUgTmFrZWRSZWYoY29uc3Qg
TmFrZWRSZWYmKSA9IGRlbGV0ZTsKKyAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBVPiBOYWtlZFJlZihj
b25zdCBOYWtlZFJlZjxVPiYpID0gZGVsZXRlOworCisgICAgQUxXQVlTX0lOTElORSBOYWtlZFJl
ZihOYWtlZFJlZiYmIG90aGVyKQorICAgICAgICA6IG1fcHRyKCZvdGhlci5sZWFrUmVmKCkpCisg
ICAgeworICAgICAgICBBU1NFUlQobV9wdHIpOworICAgIH0KKworICAgIHRlbXBsYXRlPHR5cGVu
YW1lIFU+CisgICAgTmFrZWRSZWYoTmFrZWRSZWY8VT4mJiBvdGhlcikKKyAgICAgICAgOiBtX3B0
cigmb3RoZXIubGVha1JlZigpKQorICAgIHsKKyAgICAgICAgQVNTRVJUKG1fcHRyKTsKKyAgICB9
CisKKyAgICBBTFdBWVNfSU5MSU5FIFQqIG9wZXJhdG9yLT4oKSBjb25zdCB7IEFTU0VSVChtX3B0
cik7IHJldHVybiBtX3B0cjsgfQorICAgIFQqIHB0cigpIGNvbnN0IFJFVFVSTlNfTk9OTlVMTCB7
IEFTU0VSVChtX3B0cik7IHJldHVybiBtX3B0cjsgfQorICAgIFQmIGdldCgpIGNvbnN0IHsgcmV0
dXJuICptX3B0cjsgfQorICAgIG9wZXJhdG9yIFQmKCkgY29uc3QgeyBBU1NFUlQobV9wdHIpOyBy
ZXR1cm4gKm1fcHRyOyB9CisgICAgYm9vbCBvcGVyYXRvciEoKSBjb25zdCB7IEFTU0VSVChtX3B0
cik7IHJldHVybiAhKm1fcHRyOyB9CisKKyAgICBOYWtlZFJlZiBjb3B5UmVmKCkgJiYgPSBkZWxl
dGU7CisgICAgTmFrZWRSZWYgY29weVJlZigpIGNvbnN0ICYgV0FSTl9VTlVTRURfUkVUVVJOIHsg
cmV0dXJuIE5ha2VkUmVmKCptX3B0cik7IH0KKworICAgIE5ha2VkUmVmJiBvcGVyYXRvcj0oVCYp
OworICAgIE5ha2VkUmVmJiBvcGVyYXRvcj0oTmFrZWRSZWYmJik7CisgICAgdGVtcGxhdGU8dHlw
ZW5hbWUgVT4gTmFrZWRSZWYmIG9wZXJhdG9yPShOYWtlZFJlZjxVPiYmKTsKKworICAgIC8vIFVz
ZSBjb3B5UmVmKCkgYW5kIHRoZSBtb3ZlIGFzc2lnbm1lbnQgb3BlcmF0b3JzIGluc3RlYWQuCisg
ICAgTmFrZWRSZWYmIG9wZXJhdG9yPShjb25zdCBOYWtlZFJlZiYpID0gZGVsZXRlOworICAgIHRl
bXBsYXRlPHR5cGVuYW1lIFg+IE5ha2VkUmVmJiBvcGVyYXRvcj0oY29uc3QgTmFrZWRSZWY8WD4m
KSA9IGRlbGV0ZTsKKworICAgIHRlbXBsYXRlPHR5cGVuYW1lIFU+IHZvaWQgc3dhcChOYWtlZFJl
ZjxVPiYpOworCisgICAgVCYgbGVha1JlZigpIFdBUk5fVU5VU0VEX1JFVFVSTgorICAgIHsKKyAg
ICAgICAgQVNTRVJUKG1fcHRyKTsKKyAgICAgICAgVCYgcmVzdWx0ID0gKkR1bWJQdHJUcmFpdHM8
VD46OmV4Y2hhbmdlKG1fcHRyLCBudWxscHRyKTsKKyAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAg
ICB9CisKK3ByaXZhdGU6CisgICAgVCogbV9wdHI7Cit9OworCit0ZW1wbGF0ZTx0eXBlbmFtZSBU
PiBpbmxpbmUgTmFrZWRSZWY8VD4mIE5ha2VkUmVmPFQ+OjpvcGVyYXRvcj0oTmFrZWRSZWYmJiBy
ZWZlcmVuY2UpCit7CisgICAgTmFrZWRSZWYgbW92ZWRSZWZlcmVuY2UgPSBXVEZNb3ZlKHJlZmVy
ZW5jZSk7CisgICAgc3dhcChtb3ZlZFJlZmVyZW5jZSk7CisgICAgcmV0dXJuICp0aGlzOworfQor
Cit0ZW1wbGF0ZTx0eXBlbmFtZSBUPiBpbmxpbmUgTmFrZWRSZWY8VD4mIE5ha2VkUmVmPFQ+Ojpv
cGVyYXRvcj0oVCYgcmVmKQoreworICAgIE5ha2VkUmVmIGNvcGllZFJlZmVyZW5jZSA9IHJlZjsK
KyAgICBzd2FwKGNvcGllZFJlZmVyZW5jZSk7CisgICAgcmV0dXJuICp0aGlzOworfQorCit0ZW1w
bGF0ZTx0eXBlbmFtZSBUPiB0ZW1wbGF0ZTx0eXBlbmFtZSBVPiBpbmxpbmUgTmFrZWRSZWY8VD4m
IE5ha2VkUmVmPFQ+OjpvcGVyYXRvcj0oTmFrZWRSZWY8VT4mJiBvdGhlcikKK3sKKyAgICBOYWtl
ZFJlZiByZWYgPSBXVEZNb3ZlKG90aGVyKTsKKyAgICBzd2FwKHJlZik7CisgICAgcmV0dXJuICp0
aGlzOworfQorCit0ZW1wbGF0ZTxjbGFzcyBUPgordGVtcGxhdGU8Y2xhc3MgVT4KK2lubGluZSB2
b2lkIE5ha2VkUmVmPFQ+Ojpzd2FwKE5ha2VkUmVmPFU+JiBvdGhlcikKK3sKKyAgICBzdGQ6OnN3
YXAobV9wdHIsIG90aGVyLm1fcHRyKTsKK30KKwordGVtcGxhdGU8Y2xhc3MgVCwgY2xhc3MgVT4g
aW5saW5lIHZvaWQgc3dhcChOYWtlZFJlZjxUPiYgYSwgTmFrZWRSZWY8VT4mIGIpCit7CisgICAg
YS5zd2FwKGIpOworfQorCit9IC8vIG5hbWVzcGFjZSBXVEYKKwordXNpbmcgV1RGOjpOYWtlZFJl
ZjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvbWFjL1dlYkNvcmVGcmFtZVZpZXcu
aCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvbWFjL1dlYkNvcmVGcmFtZVZpZXcuaAppbmRleCAyODRl
MmE1ZDZmNGRlNzQ0NTI3YmE5Mzk3YTRmYzdlYzM0ZTI3YTRkLi5lMGY5ZjE0Zjc4NDU2Nzg2ODgy
NTU3N2E2MzkwZDUwYjMxZGY4NTM3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL21h
Yy9XZWJDb3JlRnJhbWVWaWV3LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9tYWMvV2ViQ29y
ZUZyYW1lVmlldy5oCkBAIC0yNSw2ICsyNSw3IEBACiAKICNpbXBvcnQgIlNjcm9sbFR5cGVzLmgi
CiAjaW1wb3J0IDx3dGYvUGxhdGZvcm0uaD4KKyNpbXBvcnQgPHd0Zi9OYWtlZFB0ci5oPgogCiAj
aWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKICNpbXBvcnQgIldBS0FwcEtpdFN0dWJzLmgiCkBAIC00
NCw1ICs0NSw1IEBAIGNsYXNzIEZyYW1lOwogQGVuZAogCiBAcHJvdG9jb2wgV2ViQ29yZUZyYW1l
VmlldwotLSAoV2ViQ29yZTo6RnJhbWUqKV93ZWJfZnJhbWU7CistIChOYWtlZFB0cjxXZWJDb3Jl
OjpGcmFtZT4pX3dlYl9mcmFtZTsKIEBlbmQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2NvY29hL1dlYkdMTGF5ZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2NvY29hL1dlYkdMTGF5ZXIuaAppbmRleCBmNzY3OTA5NzQ3ZmVmZjQ4NzE0
YjFiYWQwOWYxMzJiZGViOGJmNjVlLi44YjU2NjY2YTFiYzg1MDNmMDEyNjM4ODExMDJkZTUxNzAx
ZTUwZDM3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2Nv
YS9XZWJHTExheWVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29j
b2EvV2ViR0xMYXllci5oCkBAIC0yOCw2ICsyOCw3IEBACiAjaW1wb3J0ICJJT1N1cmZhY2UuaCIK
ICNpbXBvcnQgIkludFNpemUuaCIKICNpbXBvcnQgPFF1YXJ0ekNvcmUvUXVhcnR6Q29yZS5oPgor
I2ltcG9ydCA8d3RmL05ha2VkUHRyLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIGNsYXNzIEdy
YXBoaWNzTGF5ZXI7CkBAIC00Niw3ICs0Nyw3IEBAIEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJ
T05TX0JFR0lOCiAjZXJyb3IgVW5zdXBwb3J0ZWQgcGxhdGZvcm0KICNlbmRpZgogewotICAgIFdl
YkNvcmU6OkdyYXBoaWNzQ29udGV4dEdMT3BlbkdMKiBfY29udGV4dDsKKyAgICBOYWtlZFB0cjxX
ZWJDb3JlOjpHcmFwaGljc0NvbnRleHRHTE9wZW5HTD4gX2NvbnRleHQ7CiAgICAgZmxvYXQgX2Rl
dmljZVBpeGVsUmF0aW87CiAjaWYgSEFWRShJT1NVUkZBQ0UpICYmIChVU0UoT1BFTkdMKSB8fCBV
U0UoQU5HTEUpKQogICAgIHN0ZDo6dW5pcXVlX3B0cjxXZWJDb3JlOjpJT1N1cmZhY2U+IF9jb250
ZW50c0J1ZmZlcjsKQEAgLTY1LDkgKzY2LDkgQEAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElP
TlNfQkVHSU4KICNlbmRpZgogfQogCi1AcHJvcGVydHkgKG5vbmF0b21pYykgV2ViQ29yZTo6R3Jh
cGhpY3NDb250ZXh0R0xPcGVuR0wqIGNvbnRleHQ7CitAcHJvcGVydHkgKG5vbmF0b21pYykgTmFr
ZWRQdHI8V2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0R0xPcGVuR0w+IGNvbnRleHQ7CiAKLS0gKGlk
KWluaXRXaXRoR3JhcGhpY3NDb250ZXh0R0w6KFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dEdMT3Bl
bkdMKiljb250ZXh0OworLSAoaWQpaW5pdFdpdGhHcmFwaGljc0NvbnRleHRHTDooTmFrZWRQdHI8
V2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0R0xPcGVuR0w+KWNvbnRleHQ7CiAKIC0gKENHSW1hZ2VS
ZWYpY29weUltYWdlU25hcHNob3RXaXRoQ29sb3JTcGFjZTooQ0dDb2xvclNwYWNlUmVmKWNvbG9y
U3BhY2U7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nv
Y29hL1dlYkdMTGF5ZXIubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2Nv
YS9XZWJHTExheWVyLm1tCmluZGV4IDI5MjAxNmFjMTRlYWMyYWE4ZmU0ZDE1ZDI4Zjk0YjAyZTJk
Njc1Y2MuLjFlYzA4ZTY2Nzc1M2U2MTYxZjgyZTgzMGRlYzIyZjFmODUxNmRhZmIgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL1dlYkdMTGF5ZXIubW0K
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvV2ViR0xMYXllci5t
bQpAQCAtNjEsNyArNjEsNyBAQCBAaW1wbGVtZW50YXRpb24gV2ViR0xMYXllcgogCiBAc3ludGhl
c2l6ZSBjb250ZXh0PV9jb250ZXh0OwogCi0tKGlkKWluaXRXaXRoR3JhcGhpY3NDb250ZXh0R0w6
KFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dEdMT3BlbkdMKiljb250ZXh0CistKGlkKWluaXRXaXRo
R3JhcGhpY3NDb250ZXh0R0w6KE5ha2VkUHRyPFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dEdMT3Bl
bkdMPiljb250ZXh0CiB7CiAgICAgX2NvbnRleHQgPSBjb250ZXh0OwogICAgIHNlbGYgPSBbc3Vw
ZXIgaW5pdF07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvU2Nyb2xs
QW5pbWF0b3JNYWMubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvU2Nyb2xsQW5pbWF0
b3JNYWMubW0KaW5kZXggZjU5MTc2NzJlZWZkZjFmNTIzY2RmNjkyNDZiMjM4NjA0OTRmYjJhMi4u
NDA0MjYxY2ZjNGJkODQ5ZGVmNDQ3MTQ1NzA4ZTE4NDVhZTBmNDZkYiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1Njcm9sbEFuaW1hdG9yTWFjLm1tCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9TY3JvbGxBbmltYXRvck1hYy5tbQpAQCAtNDAsNiArNDAs
NyBAQAogI2luY2x1ZGUgIlNjcm9sbGJhclRoZW1lTWFjLmgiCiAjaW5jbHVkZSA8cGFsL3NwaS9t
YWMvTlNTY3JvbGxlckltcFNQSS5oPgogI2luY2x1ZGUgPHd0Zi9CbG9ja09iakNFeGNlcHRpb25z
Lmg+CisjaW5jbHVkZSA8d3RmL05ha2VkUHRyLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvVGV4dFN0
cmVhbS5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CkBAIC04MSw5ICs4Miw5IEBAIEBlbmQKIAog
QGludGVyZmFjZSBXZWJTY3JvbGxBbmltYXRpb25IZWxwZXJEZWxlZ2F0ZSA6IE5TT2JqZWN0CiB7
Ci0gICAgV2ViQ29yZTo6U2Nyb2xsQW5pbWF0b3JNYWMqIF9hbmltYXRvcjsKKyAgICBOYWtlZFB0
cjxXZWJDb3JlOjpTY3JvbGxBbmltYXRvck1hYz4gX2FuaW1hdG9yOwogfQotLSAoaWQpaW5pdFdp
dGhTY3JvbGxBbmltYXRvcjooV2ViQ29yZTo6U2Nyb2xsQW5pbWF0b3JNYWMqKXNjcm9sbEFuaW1h
dG9yOworLSAoaWQpaW5pdFdpdGhTY3JvbGxBbmltYXRvcjooTmFrZWRQdHI8V2ViQ29yZTo6U2Ny
b2xsQW5pbWF0b3JNYWM+KXNjcm9sbEFuaW1hdG9yOwogQGVuZAogCiBzdGF0aWMgTlNTaXplIGFi
cyhOU1NpemUgc2l6ZSkKQEAgLTk4LDcgKzk5LDcgQEAgc3RhdGljIE5TU2l6ZSBhYnMoTlNTaXpl
IHNpemUpCiAKIEBpbXBsZW1lbnRhdGlvbiBXZWJTY3JvbGxBbmltYXRpb25IZWxwZXJEZWxlZ2F0
ZQogCi0tIChpZClpbml0V2l0aFNjcm9sbEFuaW1hdG9yOihXZWJDb3JlOjpTY3JvbGxBbmltYXRv
ck1hYyopc2Nyb2xsQW5pbWF0b3IKKy0gKGlkKWluaXRXaXRoU2Nyb2xsQW5pbWF0b3I6KE5ha2Vk
UHRyPFdlYkNvcmU6OlNjcm9sbEFuaW1hdG9yTWFjPilzY3JvbGxBbmltYXRvcgogewogICAgIHNl
bGYgPSBbc3VwZXIgaW5pdF07CiAgICAgaWYgKCFzZWxmKQpAQCAtMTEwLDcgKzExMSw3IEBAIC0g
KGlkKWluaXRXaXRoU2Nyb2xsQW5pbWF0b3I6KFdlYkNvcmU6OlNjcm9sbEFuaW1hdG9yTWFjKilz
Y3JvbGxBbmltYXRvcgogCiAtICh2b2lkKWludmFsaWRhdGUKIHsKLSAgICBfYW5pbWF0b3IgPSAw
OworICAgIF9hbmltYXRvciA9IG51bGxwdHI7CiB9CiAKIC0gKE5TUmVjdClib3VuZHMKQEAgLTQ3
Myw3ICs0NzQsNyBAQCAtICh2b2lkKWNhbmNlbEFuaW1hdGlvbnMKICAgICBFTkRfQkxPQ0tfT0JK
Q19FWENFUFRJT05TOwogfQogCi0tIChTY3JvbGxBbmltYXRvck1hYyopc2Nyb2xsQW5pbWF0b3IK
Ky0gKE5ha2VkUHRyPFNjcm9sbEFuaW1hdG9yTWFjPilzY3JvbGxBbmltYXRvcgogewogICAgIHJl
dHVybiAmc3RhdGljX2Nhc3Q8U2Nyb2xsQW5pbWF0b3JNYWMmPihfc2Nyb2xsYmFyLT5zY3JvbGxh
YmxlQXJlYSgpLnNjcm9sbEFuaW1hdG9yKCkpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9OZXR3b3JrUHJvY2Vzcy9jb2NvYS9OZXR3b3JrU2Vzc2lvbkNvY29hLm1tIGIvU291cmNlL1dl
YktpdC9OZXR3b3JrUHJvY2Vzcy9jb2NvYS9OZXR3b3JrU2Vzc2lvbkNvY29hLm1tCmluZGV4IDgy
Zjc5MWM5NWE1MTZhYTIxMGZiN2U0NmRlMGEzODlmZGY4ZTc1NjQuLjk3N2RiZWQ1OGUzNTg2ZjZm
MGZmYzFhYjUyNGE2MTFlYTNlOWUzYTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29y
a1Byb2Nlc3MvY29jb2EvTmV0d29ya1Nlc3Npb25Db2NvYS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0
L05ldHdvcmtQcm9jZXNzL2NvY29hL05ldHdvcmtTZXNzaW9uQ29jb2EubW0KQEAgLTUwLDYgKzUw
LDcgQEAKICNpbXBvcnQgPHBhbC9zcGkvY2YvQ0ZOZXR3b3JrU1BJLmg+CiAjaW1wb3J0IDx3dGYv
QmxvY2tQdHIuaD4KICNpbXBvcnQgPHd0Zi9NYWluVGhyZWFkLmg+CisjaW1wb3J0IDx3dGYvTmFr
ZWRSZWYuaD4KICNpbXBvcnQgPHd0Zi9OZXZlckRlc3Ryb3llZC5oPgogI2ltcG9ydCA8d3RmL09i
akNSdW50aW1lRXh0cmFzLmg+CiAjaW1wb3J0IDx3dGYvUHJvY2Vzc1ByaXZpbGVnZS5oPgpAQCAt
NDAxLDIwICs0MDIsMjAgQEAgQGludGVyZmFjZSBXS05ldHdvcmtTZXNzaW9uRGVsZWdhdGUgOiBO
U09iamVjdCA8TlNVUkxTZXNzaW9uRGF0YURlbGVnYXRlCiAgICAgYm9vbCBfd2l0aENyZWRlbnRp
YWxzOwogfQogCi0tIChpZClpbml0V2l0aE5ldHdvcmtTZXNzaW9uOihXZWJLaXQ6Ok5ldHdvcmtT
ZXNzaW9uQ29jb2EmKXNlc3Npb24gd3JhcHBlcjooV2ViS2l0OjpTZXNzaW9uV3JhcHBlciYpc2Vz
c2lvbldyYXBwZXIgd2l0aENyZWRlbnRpYWxzOihib29sKXdpdGhDcmVkZW50aWFsczsKKy0gKGlk
KWluaXRXaXRoTmV0d29ya1Nlc3Npb246KE5ha2VkUmVmPFdlYktpdDo6TmV0d29ya1Nlc3Npb25D
b2NvYT4pc2Vzc2lvbiB3cmFwcGVyOihXZWJLaXQ6OlNlc3Npb25XcmFwcGVyJilzZXNzaW9uV3Jh
cHBlciB3aXRoQ3JlZGVudGlhbHM6KGJvb2wpd2l0aENyZWRlbnRpYWxzOwogLSAodm9pZClzZXNz
aW9uSW52YWxpZGF0ZWQ7CiAKIEBlbmQKIAogQGltcGxlbWVudGF0aW9uIFdLTmV0d29ya1Nlc3Np
b25EZWxlZ2F0ZQogCi0tIChpZClpbml0V2l0aE5ldHdvcmtTZXNzaW9uOihXZWJLaXQ6Ok5ldHdv
cmtTZXNzaW9uQ29jb2EmKXNlc3Npb24gd3JhcHBlcjooV2ViS2l0OjpTZXNzaW9uV3JhcHBlciYp
c2Vzc2lvbldyYXBwZXIgd2l0aENyZWRlbnRpYWxzOihib29sKXdpdGhDcmVkZW50aWFscworLSAo
aWQpaW5pdFdpdGhOZXR3b3JrU2Vzc2lvbjooTmFrZWRSZWY8V2ViS2l0OjpOZXR3b3JrU2Vzc2lv
bkNvY29hPilzZXNzaW9uIHdyYXBwZXI6KFdlYktpdDo6U2Vzc2lvbldyYXBwZXImKXNlc3Npb25X
cmFwcGVyIHdpdGhDcmVkZW50aWFsczooYm9vbCl3aXRoQ3JlZGVudGlhbHMKIHsKICAgICBzZWxm
ID0gW3N1cGVyIGluaXRdOwogICAgIGlmICghc2VsZikKICAgICAgICAgcmV0dXJuIG5pbDsKIAot
ICAgIF9zZXNzaW9uID0gbWFrZVdlYWtQdHIoc2Vzc2lvbik7CisgICAgX3Nlc3Npb24gPSBtYWtl
V2Vha1B0cihzZXNzaW9uLmdldCgpKTsKICAgICBfc2Vzc2lvbldyYXBwZXIgPSBtYWtlV2Vha1B0
cihzZXNzaW9uV3JhcHBlcik7CiAgICAgX3dpdGhDcmVkZW50aWFscyA9IHdpdGhDcmVkZW50aWFs
czsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvQVBJL0NvY29hL1dLQnJvd3Np
bmdDb250ZXh0SGFuZGxlLm1tIGIvU291cmNlL1dlYktpdC9TaGFyZWQvQVBJL0NvY29hL1dLQnJv
d3NpbmdDb250ZXh0SGFuZGxlLm1tCmluZGV4IGFiMmVkOWJlMzBlYWE3ODU1YTFkMzQ0M2YwZDRm
YzhjOGIyMzhjZTkuLjlkM2VkZjE3MDAzZWYyNDZhZmViNzhkMTcwMzRkN2NhNDRhMDNlOGEgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0FQSS9Db2NvYS9XS0Jyb3dzaW5nQ29udGV4
dEhhbmRsZS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9BUEkvQ29jb2EvV0tCcm93c2lu
Z0NvbnRleHRIYW5kbGUubW0KQEAgLTMyLDE0ICszMiwxNCBAQAogCiBAaW1wbGVtZW50YXRpb24g
V0tCcm93c2luZ0NvbnRleHRIYW5kbGUKIAotLSAoaWQpX2luaXRXaXRoUGFnZVByb3h5OihXZWJL
aXQ6OldlYlBhZ2VQcm94eSYpcGFnZQorLSAoaWQpX2luaXRXaXRoUGFnZVByb3h5OihOYWtlZFJl
ZjxXZWJLaXQ6OldlYlBhZ2VQcm94eT4pcGFnZQogewotICAgIHJldHVybiBbc2VsZiBfaW5pdFdp
dGhQYWdlUHJveHlJRDpwYWdlLmlkZW50aWZpZXIoKSBhbmRXZWJQYWdlSUQ6cGFnZS53ZWJQYWdl
SUQoKV07CisgICAgcmV0dXJuIFtzZWxmIF9pbml0V2l0aFBhZ2VQcm94eUlEOnBhZ2UtPmlkZW50
aWZpZXIoKSBhbmRXZWJQYWdlSUQ6cGFnZS0+d2ViUGFnZUlEKCldOwogfQogCi0tIChpZClfaW5p
dFdpdGhQYWdlOihXZWJLaXQ6OldlYlBhZ2UmKXBhZ2UKKy0gKGlkKV9pbml0V2l0aFBhZ2U6KE5h
a2VkUmVmPFdlYktpdDo6V2ViUGFnZT4pcGFnZQogewotICAgIHJldHVybiBbc2VsZiBfaW5pdFdp
dGhQYWdlUHJveHlJRDpwYWdlLndlYlBhZ2VQcm94eUlkZW50aWZpZXIoKSBhbmRXZWJQYWdlSUQ6
cGFnZS5pZGVudGlmaWVyKCldOworICAgIHJldHVybiBbc2VsZiBfaW5pdFdpdGhQYWdlUHJveHlJ
RDpwYWdlLT53ZWJQYWdlUHJveHlJZGVudGlmaWVyKCkgYW5kV2ViUGFnZUlEOnBhZ2UtPmlkZW50
aWZpZXIoKV07CiB9CiAKIC0gKGlkKV9pbml0V2l0aFBhZ2VQcm94eUlEOihXZWJLaXQ6OldlYlBh
Z2VQcm94eUlkZW50aWZpZXIpcGFnZVByb3h5SUQgYW5kV2ViUGFnZUlEOihXZWJDb3JlOjpQYWdl
SWRlbnRpZmllcil3ZWJQYWdlSUQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0FQ
SS9Db2NvYS9XS0Jyb3dzaW5nQ29udGV4dEhhbmRsZUludGVybmFsLmggYi9Tb3VyY2UvV2ViS2l0
L1NoYXJlZC9BUEkvQ29jb2EvV0tCcm93c2luZ0NvbnRleHRIYW5kbGVJbnRlcm5hbC5oCmluZGV4
IDhkZWQ1OWZiNTU1MThkMjg5M2M3NzFiNjNlYTliZWM0MjA2NjU5Y2UuLmI5ODg0ZTM3NTBhMThk
ZTU5NjliYjM4Y2U1MzhlZWQ4ZTQyNmFjNGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hh
cmVkL0FQSS9Db2NvYS9XS0Jyb3dzaW5nQ29udGV4dEhhbmRsZUludGVybmFsLmgKKysrIGIvU291
cmNlL1dlYktpdC9TaGFyZWQvQVBJL0NvY29hL1dLQnJvd3NpbmdDb250ZXh0SGFuZGxlSW50ZXJu
YWwuaApAQCAtMjYsNiArMjYsNyBAQAogI2ltcG9ydCAiV0tCcm93c2luZ0NvbnRleHRIYW5kbGUu
aCIKICNpbXBvcnQgIldlYlBhZ2VQcm94eUlkZW50aWZpZXIuaCIKICNpbXBvcnQgPFdlYkNvcmUv
UGFnZUlkZW50aWZpZXIuaD4KKyNpbXBvcnQgPHd0Zi9OYWtlZFJlZi5oPgogCiBuYW1lc3BhY2Ug
V2ViS2l0IHsKIGNsYXNzIFdlYlBhZ2U7CkBAIC0zNyw3ICszOCw3IEBAIGNsYXNzIFdlYlBhZ2VQ
cm94eTsKIEBwcm9wZXJ0eSAobm9uYXRvbWljLCByZWFkb25seSwgZ2V0dGVyPV9wYWdlUHJveHlJ
RCkgV2ViS2l0OjpXZWJQYWdlUHJveHlJZGVudGlmaWVyIHBhZ2VQcm94eUlEOwogQHByb3BlcnR5
IChub25hdG9taWMsIHJlYWRvbmx5LCBnZXR0ZXI9X3dlYlBhZ2VJRCkgV2ViQ29yZTo6UGFnZUlk
ZW50aWZpZXIgd2ViUGFnZUlEOwogCi0tIChpZClfaW5pdFdpdGhQYWdlUHJveHk6KFdlYktpdDo6
V2ViUGFnZVByb3h5JilwYWdlOwotLSAoaWQpX2luaXRXaXRoUGFnZTooV2ViS2l0OjpXZWJQYWdl
JilwYWdlOworLSAoaWQpX2luaXRXaXRoUGFnZVByb3h5OihOYWtlZFJlZjxXZWJLaXQ6OldlYlBh
Z2VQcm94eT4pcGFnZTsKKy0gKGlkKV9pbml0V2l0aFBhZ2U6KE5ha2VkUmVmPFdlYktpdDo6V2Vi
UGFnZT4pcGFnZTsKIC0gKGlkKV9pbml0V2l0aFBhZ2VQcm94eUlEOihXZWJLaXQ6OldlYlBhZ2VQ
cm94eUlkZW50aWZpZXIpcGFnZVByb3h5SUQgYW5kV2ViUGFnZUlEOihXZWJDb3JlOjpQYWdlSWRl
bnRpZmllcil3ZWJQYWdlSUQ7CiBAZW5kCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJl
ZC9BUEkvQ29jb2EvX1dLUmVtb3RlT2JqZWN0UmVnaXN0cnkubW0gYi9Tb3VyY2UvV2ViS2l0L1No
YXJlZC9BUEkvQ29jb2EvX1dLUmVtb3RlT2JqZWN0UmVnaXN0cnkubW0KaW5kZXggNDc0YWI1MTU2
NzUxMWM2M2IyOTQ2ZjI3ZTBjOTVkNmVkNmZkODA0My4uNTQxMDQ3ZWRkZjI4MGU0NmJkZDcxMDli
ZjNhMzgxODViZjVkNGQyZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvQVBJL0Nv
Y29hL19XS1JlbW90ZU9iamVjdFJlZ2lzdHJ5Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVk
L0FQSS9Db2NvYS9fV0tSZW1vdGVPYmplY3RSZWdpc3RyeS5tbQpAQCAtMTA2LDIyICsxMDYsMjIg
QEAgLSAoaWQpcmVtb3RlT2JqZWN0UHJveHlXaXRoSW50ZXJmYWNlOihfV0tSZW1vdGVPYmplY3RJ
bnRlcmZhY2UgKilpbnRlcmZhY2UKICAgICByZXR1cm4gcmVtb3RlT2JqZWN0LmF1dG9yZWxlYXNl
KCk7CiB9CiAKLS0gKGlkKV9pbml0V2l0aFdlYlBhZ2U6KFdlYktpdDo6V2ViUGFnZSYpcGFnZQor
LSAoaWQpX2luaXRXaXRoV2ViUGFnZTooTmFrZWRSZWY8V2ViS2l0OjpXZWJQYWdlPilwYWdlCiB7
CiAgICAgaWYgKCEoc2VsZiA9IFtzdXBlciBpbml0XSkpCiAgICAgICAgIHJldHVybiBuaWw7CiAK
LSAgICBfcmVtb3RlT2JqZWN0UmVnaXN0cnkgPSBtYWtlVW5pcXVlPFdlYktpdDo6V2ViUmVtb3Rl
T2JqZWN0UmVnaXN0cnk+KHNlbGYsIHBhZ2UpOworICAgIF9yZW1vdGVPYmplY3RSZWdpc3RyeSA9
IG1ha2VVbmlxdWU8V2ViS2l0OjpXZWJSZW1vdGVPYmplY3RSZWdpc3RyeT4oc2VsZiwgcGFnZS5n
ZXQoKSk7CiAKICAgICByZXR1cm4gc2VsZjsKIH0KIAotLSAoaWQpX2luaXRXaXRoV2ViUGFnZVBy
b3h5OihXZWJLaXQ6OldlYlBhZ2VQcm94eSYpcGFnZQorLSAoaWQpX2luaXRXaXRoV2ViUGFnZVBy
b3h5OihOYWtlZFJlZjxXZWJLaXQ6OldlYlBhZ2VQcm94eT4pcGFnZQogewogICAgIGlmICghKHNl
bGYgPSBbc3VwZXIgaW5pdF0pKQogICAgICAgICByZXR1cm4gbmlsOwogCi0gICAgX3JlbW90ZU9i
amVjdFJlZ2lzdHJ5ID0gbWFrZVVuaXF1ZTxXZWJLaXQ6OlVJUmVtb3RlT2JqZWN0UmVnaXN0cnk+
KHNlbGYsIHBhZ2UpOworICAgIF9yZW1vdGVPYmplY3RSZWdpc3RyeSA9IG1ha2VVbmlxdWU8V2Vi
S2l0OjpVSVJlbW90ZU9iamVjdFJlZ2lzdHJ5PihzZWxmLCBwYWdlLmdldCgpKTsKIAogICAgIHJl
dHVybiBzZWxmOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvQVBJL0NvY29h
L19XS1JlbW90ZU9iamVjdFJlZ2lzdHJ5SW50ZXJuYWwuaCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVk
L0FQSS9Db2NvYS9fV0tSZW1vdGVPYmplY3RSZWdpc3RyeUludGVybmFsLmgKaW5kZXggOTQ5ZTQz
OGYxZDZmZjZmZTcxMTM4ZDMyYzA4NjkzZjc0MzlhMmY0OC4uZWM1OWFkMmQ5ZDhkZWY3MTA2MzFm
Yjk4ZTBkNjY1YmFkMTZmZDEwNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvQVBJ
L0NvY29hL19XS1JlbW90ZU9iamVjdFJlZ2lzdHJ5SW50ZXJuYWwuaAorKysgYi9Tb3VyY2UvV2Vi
S2l0L1NoYXJlZC9BUEkvQ29jb2EvX1dLUmVtb3RlT2JqZWN0UmVnaXN0cnlJbnRlcm5hbC5oCkBA
IC0yNCw2ICsyNCw3IEBACiAgKi8KIAogI2ltcG9ydCAiX1dLUmVtb3RlT2JqZWN0UmVnaXN0cnku
aCIKKyNpbXBvcnQgPHd0Zi9OYWtlZFJlZi5oPgogCiBuYW1lc3BhY2UgSVBDIHsKIGNsYXNzIE1l
c3NhZ2VTZW5kZXI7CkBAIC00MSw4ICs0Miw4IEBAIGNsYXNzIFdlYlBhZ2VQcm94eTsKIAogQHBy
b3BlcnR5IChub25hdG9taWMsIHJlYWRvbmx5KSBXZWJLaXQ6OlJlbW90ZU9iamVjdFJlZ2lzdHJ5
JiByZW1vdGVPYmplY3RSZWdpc3RyeTsKIAotLSAoaWQpX2luaXRXaXRoV2ViUGFnZTooV2ViS2l0
OjpXZWJQYWdlJiltZXNzYWdlU2VuZGVyOwotLSAoaWQpX2luaXRXaXRoV2ViUGFnZVByb3h5OihX
ZWJLaXQ6OldlYlBhZ2VQcm94eSYpbWVzc2FnZVNlbmRlcjsKKy0gKGlkKV9pbml0V2l0aFdlYlBh
Z2U6KE5ha2VkUmVmPFdlYktpdDo6V2ViUGFnZT4pbWVzc2FnZVNlbmRlcjsKKy0gKGlkKV9pbml0
V2l0aFdlYlBhZ2VQcm94eTooTmFrZWRSZWY8V2ViS2l0OjpXZWJQYWdlUHJveHk+KW1lc3NhZ2VT
ZW5kZXI7CiAtICh2b2lkKV9pbnZhbGlkYXRlOwogCiAtICh2b2lkKV9zZW5kSW52b2NhdGlvbjoo
TlNJbnZvY2F0aW9uICopaW52b2NhdGlvbiBpbnRlcmZhY2U6KF9XS1JlbW90ZU9iamVjdEludGVy
ZmFjZSAqKWludGVyZmFjZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQ
SS9Db2NvYS9XS1dlYlZpZXcubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2Ev
V0tXZWJWaWV3Lm1tCmluZGV4IDFiMDRkYjhjZmRkMWNjZmQ1ODgzYWM0MDU3NzNiY2IwNzE4NDA5
MmYuLjFhNGNlMmFiZWMyM2Q5YjBhM2QyOGFlNmE3NDQyNzZhYTE2MDJmNGMgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXcubW0KKysrIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlldy5tbQpAQCAtMTI5Nyw3ICsx
Mjk3LDcgQEAgLSAoV0tQYWdlUmVmKV9wYWdlRm9yVGVzdGluZwogICAgIHJldHVybiB0b0FQSShf
cGFnZS5nZXQoKSk7CiB9CiAKLS0gKFdlYktpdDo6V2ViUGFnZVByb3h5ICopX3BhZ2UKKy0gKE5h
a2VkUHRyPFdlYktpdDo6V2ViUGFnZVByb3h5PilfcGFnZQogewogICAgIHJldHVybiBfcGFnZS5n
ZXQoKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9X
S1dlYlZpZXdJbnRlcm5hbC5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dL
V2ViVmlld0ludGVybmFsLmgKaW5kZXggMGY4OWZkNmYwMzlhZGEyYTY2M2U0MDY3MDU1NmEwN2Fl
Y2JjMWU0My4uY2M4OGNmNDBjZDljYTVmMzJmNWVlM2JjNTc3OWU0OWFlMjdmNWEwYiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlld0ludGVybmFs
LmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlld0ludGVy
bmFsLmgKQEAgLTMxLDYgKzMxLDcgQEAKICNpbXBvcnQgIl9XS0F0dGFjaG1lbnRJbnRlcm5hbC5o
IgogI2ltcG9ydCAiX1dLV2ViVmlld1ByaW50Rm9ybWF0dGVySW50ZXJuYWwuaCIKICNpbXBvcnQg
PHd0Zi9Db21wbGV0aW9uSGFuZGxlci5oPgorI2ltcG9ydCA8d3RmL05ha2VkUHRyLmg+CiAjaW1w
b3J0IDx3dGYvUmVmUHRyLmg+CiAjaW1wb3J0IDx3dGYvUmV0YWluUHRyLmg+CiAjaW1wb3J0IDx3
dGYvVmFyaWFudC5oPgpAQCAtMjUwLDcgKzI1MSw3IEBAIGNsYXNzIFZpZXdHZXN0dXJlQ29udHJv
bGxlcjsKIC0gKE9wdGlvbmFsPEJPT0w+KV9yZXNvbHV0aW9uRm9yU2hhcmVTaGVldEltbWVkaWF0
ZUNvbXBsZXRpb25Gb3JUZXN0aW5nOwogCiAtIChXS1BhZ2VSZWYpX3BhZ2VGb3JUZXN0aW5nOwot
LSAoV2ViS2l0OjpXZWJQYWdlUHJveHkqKV9wYWdlOworLSAoTmFrZWRQdHI8V2ViS2l0OjpXZWJQ
YWdlUHJveHk+KV9wYWdlOwogCiBAZW5kCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL0FQSS9Db2NvYS9XS1dlYnNpdGVEYXRhU3RvcmUubW0gYi9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJzaXRlRGF0YVN0b3JlLm1tCmluZGV4IGNlZjQ4Mjc0N2Rm
MThmODQ4OTNlYWZiZGU5ODFjYzAxZTVmYWY4MGUuLjg5YTRjYTJlYjZkNjRiZmVlNjkyMjAxZWNj
YzdmZmZlY2I4MGMxNzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9D
b2NvYS9XS1dlYnNpdGVEYXRhU3RvcmUubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
QVBJL0NvY29hL1dLV2Vic2l0ZURhdGFTdG9yZS5tbQpAQCAtNDM1LDcgKzQzNSw3IEBAIC0gKHZv
aWQpX2dldEFsbFN0b3JhZ2VBY2Nlc3NFbnRyaWVzRm9yOihXS1dlYlZpZXcgKil3ZWJWaWV3IGNv
bXBsZXRpb25IYW5kbGVyOih2CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKLSAgICBhdXRvKiB3
ZWJQYWdlUHJveHkgPSBbd2ViVmlldyBfcGFnZV07CisgICAgYXV0byB3ZWJQYWdlUHJveHkgPSBb
d2ViVmlldyBfcGFnZV07CiAgICAgaWYgKCF3ZWJQYWdlUHJveHkpIHsKICAgICAgICAgY29tcGxl
dGlvbkhhbmRsZXIoeyB9KTsKICAgICAgICAgcmV0dXJuOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL19XS1RodW1ibmFpbFZpZXcubW0gYi9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLVGh1bWJuYWlsVmlldy5tbQppbmRleCAxMzYwNTNj
NDdkYTUxYjAyNjkyOTA0ZTI3Yzc1ODhhYzVkZWMxODVjLi41MzBlMGE4OTY5MGViNTMyZDY4Njk5
MzkxMTlhMTJjZmE2ZmZiNjc4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9B
UEkvQ29jb2EvX1dLVGh1bWJuYWlsVmlldy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9BUEkvQ29jb2EvX1dLVGh1bWJuYWlsVmlldy5tbQpAQCAtMzUsNiArMzUsNyBAQAogI2ltcG9y
dCAiV0tXZWJWaWV3SW50ZXJuYWwuaCIKICNpbXBvcnQgIldlYlBhZ2VQcm94eS5oIgogI2ltcG9y
dCA8cGFsL3NwaS9jZy9Db3JlR3JhcGhpY3NTUEkuaD4KKyNpbXBvcnQgPHd0Zi9OYWtlZFB0ci5o
PgogCiAvLyBGSVhNRTogTWFrZSBpdCBwb3NzaWJsZSB0byBsZWF2ZSBhIHNuYXBzaG90IG9mIHRo
ZSBjb250ZW50IHByZXNlbnRlZCBpbiB0aGUgV0tWaWV3IHdoaWxlIHRoZSB0aHVtYm5haWwgaXMg
bGl2ZS4KIC8vIEZJWE1FOiBEb24ndCBtYWtlIG5ldyBzcGVjdWxhdGl2ZSB0aWxlcyB3aGlsZSB0
aHVtYm5haWxlZC4KQEAgLTQ3LDcgKzQ4LDcgQEAgQGltcGxlbWVudGF0aW9uIF9XS1RodW1ibmFp
bFZpZXcgewogICAgIFJldGFpblB0cjxXS1ZpZXc+IF93a1ZpZXc7CiAgICAgQUxMT1dfREVQUkVD
QVRFRF9ERUNMQVJBVElPTlNfRU5ECiAgICAgUmV0YWluUHRyPFdLV2ViVmlldz4gX3drV2ViVmll
dzsKLSAgICBXZWJLaXQ6OldlYlBhZ2VQcm94eSogX3dlYlBhZ2VQcm94eTsKKyAgICBOYWtlZFB0
cjxXZWJLaXQ6OldlYlBhZ2VQcm94eT4gX3dlYlBhZ2VQcm94eTsKIAogICAgIEJPT0wgX29yaWdp
bmFsTWF5U3RhcnRNZWRpYVdoZW5JbldpbmRvdzsKICAgICBCT09MIF9vcmlnaW5hbFNvdXJjZVZp
ZXdJc0luV2luZG93OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL21h
Yy9XS1ZpZXcubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvbWFjL1dLVmlldy5tbQpp
bmRleCBiYjQxZDZlNjk2NWNkNGZhMTY1NTMyODNmZThlZDY0NTJiMmZiMDNmLi5kZGM2ZmZmYTMz
MGE4M2NiNzJiZTE5MzBmYzcyMTAxMzM0MjBkODI2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9BUEkvbWFjL1dLVmlldy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9BUEkvbWFjL1dLVmlldy5tbQpAQCAtNDYsNiArNDYsNyBAQAogI2ltcG9ydCA8V2ViS2l0L1dL
RHJhZ0Rlc3RpbmF0aW9uQWN0aW9uLmg+CiAjaW1wb3J0IDxwYWwvc3BpL2NvY29hL0FWS2l0U1BJ
Lmg+CiAjaW1wb3J0IDx3dGYvQmxvY2tQdHIuaD4KKyNpbXBvcnQgPHd0Zi9OYWtlZFJlZi5oPgog
CiBAaW50ZXJmYWNlIFdLVmlld0RhdGEgOiBOU09iamVjdCB7CiBAcHVibGljCkBAIC05NTAsNyAr
OTUxLDcgQEAgLSAodm9pZCltYXliZUluc3RhbGxJY29uTG9hZGluZ0NsaWVudAogICAgICAgICBf
ZGF0YS0+X2ltcGwtPnBhZ2UoKS5zZXRJY29uTG9hZGluZ0NsaWVudChtYWtlVW5pcXVlPEljb25M
b2FkaW5nQ2xpZW50PihzZWxmKSk7CiB9CiAKLS0gKGluc3RhbmNldHlwZSlpbml0V2l0aEZyYW1l
OihOU1JlY3QpZnJhbWUgcHJvY2Vzc1Bvb2w6KFdlYktpdDo6V2ViUHJvY2Vzc1Bvb2wmKXByb2Nl
c3NQb29sIGNvbmZpZ3VyYXRpb246KFJlZjxBUEk6OlBhZ2VDb25maWd1cmF0aW9uPiYmKWNvbmZp
Z3VyYXRpb24KKy0gKGluc3RhbmNldHlwZSlpbml0V2l0aEZyYW1lOihOU1JlY3QpZnJhbWUgcHJv
Y2Vzc1Bvb2w6KE5ha2VkUmVmPFdlYktpdDo6V2ViUHJvY2Vzc1Bvb2w+KXByb2Nlc3NQb29sIGNv
bmZpZ3VyYXRpb246KFJlZjxBUEk6OlBhZ2VDb25maWd1cmF0aW9uPiYmKWNvbmZpZ3VyYXRpb24K
IHsKICAgICBzZWxmID0gW3N1cGVyIGluaXRXaXRoRnJhbWU6ZnJhbWVdOwogICAgIGlmICghc2Vs
ZikKQEAgLTk1OSw3ICs5NjAsNyBAQCAtIChpbnN0YW5jZXR5cGUpaW5pdFdpdGhGcmFtZTooTlNS
ZWN0KWZyYW1lIHByb2Nlc3NQb29sOihXZWJLaXQ6OldlYlByb2Nlc3NQb29sJgogICAgIFdlYktp
dDo6SW5pdGlhbGl6ZVdlYktpdDIoKTsKIAogICAgIF9kYXRhID0gW1tXS1ZpZXdEYXRhIGFsbG9j
XSBpbml0XTsKLSAgICBfZGF0YS0+X2ltcGwgPSBtYWtlVW5pcXVlPFdlYktpdDo6V2ViVmlld0lt
cGw+KHNlbGYsIG51bGxwdHIsIHByb2Nlc3NQb29sLCBXVEZNb3ZlKGNvbmZpZ3VyYXRpb24pKTsK
KyAgICBfZGF0YS0+X2ltcGwgPSBtYWtlVW5pcXVlPFdlYktpdDo6V2ViVmlld0ltcGw+KHNlbGYs
IG51bGxwdHIsIHByb2Nlc3NQb29sLmdldCgpLCBXVEZNb3ZlKGNvbmZpZ3VyYXRpb24pKTsKIAog
ICAgIFtzZWxmIG1heWJlSW5zdGFsbEljb25Mb2FkaW5nQ2xpZW50XTsKIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvV2ViVmlld0ltcGwubW0gYi9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9Db2NvYS9XZWJWaWV3SW1wbC5tbQppbmRleCA3MTM4ZWZjOTQxNWY4YTYx
NGYyM2FmYmEyYTRjNmExNTUzZWMzZDg4Li41MDEyZGFkMWE1OGRmYjc1NTFlMDMwY2ZiYjAzOWM4
ZjhiZWEyZDE0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9XZWJW
aWV3SW1wbC5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9XZWJWaWV3SW1w
bC5tbQpAQCAtMTM3MCw3ICsxMzcwLDcgQEAgV2ViVmlld0ltcGw6OldlYlZpZXdJbXBsKE5TVmll
dyA8V2ViVmlld0ltcGxEZWxlZ2F0ZT4gKnZpZXcsIFdLV2ViVmlldyAqb3V0ZXJXZWIKICAgICAs
IG1fcGFnZShwcm9jZXNzUG9vbC5jcmVhdGVXZWJQYWdlKCptX3BhZ2VDbGllbnQsIFdURk1vdmUo
Y29uZmlndXJhdGlvbikpKQogICAgICwgbV9uZWVkc1ZpZXdGcmFtZUluV2luZG93Q29vcmRpbmF0
ZXMobV9wYWdlLT5wcmVmZXJlbmNlcygpLnBsdWdpbnNFbmFibGVkKCkpCiAgICAgLCBtX2ludHJp
bnNpY0NvbnRlbnRTaXplKENHU2l6ZU1ha2UoTlNWaWV3Tm9JbnRyaW5zaWNNZXRyaWMsIE5TVmll
d05vSW50cmluc2ljTWV0cmljKSkKLSAgICAsIG1fbGF5b3V0U3RyYXRlZ3koW1dLVmlld0xheW91
dFN0cmF0ZWd5IGxheW91dFN0cmF0ZWd5V2l0aFBhZ2U6bV9wYWdlIHZpZXc6dmlldyB2aWV3SW1w
bDoqdGhpcyBtb2RlOmtXS0xheW91dE1vZGVWaWV3U2l6ZV0pCisgICAgLCBtX2xheW91dFN0cmF0
ZWd5KFtXS1ZpZXdMYXlvdXRTdHJhdGVneSBsYXlvdXRTdHJhdGVneVdpdGhQYWdlOm1fcGFnZS5n
ZXQoKSB2aWV3OnZpZXcgdmlld0ltcGw6KnRoaXMgbW9kZTprV0tMYXlvdXRNb2RlVmlld1NpemVd
KQogICAgICwgbV91bmRvVGFyZ2V0KGFkb3B0TlMoW1tXS0VkaXRvclVuZG9UYXJnZXQgYWxsb2Nd
IGluaXRdKSkKICAgICAsIG1fd2luZG93VmlzaWJpbGl0eU9ic2VydmVyKGFkb3B0TlMoW1tXS1dp
bmRvd1Zpc2liaWxpdHlPYnNlcnZlciBhbGxvY10gaW5pdFdpdGhWaWV3OnZpZXcgaW1wbDoqdGhp
c10pKQogICAgICwgbV9hY2Nlc3NpYmlsaXR5U2V0dGluZ3NPYnNlcnZlcihhZG9wdE5TKFtbV0tB
Y2Nlc3NpYmlsaXR5U2V0dGluZ3NPYnNlcnZlciBhbGxvY10gaW5pdFdpdGhJbXBsOip0aGlzXSkp
CkBAIC0xNDAzLDcgKzE0MDMsNyBAQCBXZWJWaWV3SW1wbDo6V2ViVmlld0ltcGwoTlNWaWV3IDxX
ZWJWaWV3SW1wbERlbGVnYXRlPiAqdmlldywgV0tXZWJWaWV3ICpvdXRlcldlYgogCiAgICAgaWYg
KENsYXNzIGdlc3R1cmVDbGFzcyA9IE5TQ2xhc3NGcm9tU3RyaW5nKEAiTlNJbW1lZGlhdGVBY3Rp
b25HZXN0dXJlUmVjb2duaXplciIpKSB7CiAgICAgICAgIG1faW1tZWRpYXRlQWN0aW9uR2VzdHVy
ZVJlY29nbml6ZXIgPSBhZG9wdE5TKFsoTlNJbW1lZGlhdGVBY3Rpb25HZXN0dXJlUmVjb2duaXpl
ciAqKVtnZXN0dXJlQ2xhc3MgYWxsb2NdIGluaXRdKTsKLSAgICAgICAgbV9pbW1lZGlhdGVBY3Rp
b25Db250cm9sbGVyID0gYWRvcHROUyhbW1dLSW1tZWRpYXRlQWN0aW9uQ29udHJvbGxlciBhbGxv
Y10gaW5pdFdpdGhQYWdlOm1fcGFnZSB2aWV3OnZpZXcgdmlld0ltcGw6KnRoaXMgcmVjb2duaXpl
cjptX2ltbWVkaWF0ZUFjdGlvbkdlc3R1cmVSZWNvZ25pemVyLmdldCgpXSk7CisgICAgICAgIG1f
aW1tZWRpYXRlQWN0aW9uQ29udHJvbGxlciA9IGFkb3B0TlMoW1tXS0ltbWVkaWF0ZUFjdGlvbkNv
bnRyb2xsZXIgYWxsb2NdIGluaXRXaXRoUGFnZTptX3BhZ2UuZ2V0KCkgdmlldzp2aWV3IHZpZXdJ
bXBsOip0aGlzIHJlY29nbml6ZXI6bV9pbW1lZGlhdGVBY3Rpb25HZXN0dXJlUmVjb2duaXplci5n
ZXQoKV0pOwogICAgICAgICBbbV9pbW1lZGlhdGVBY3Rpb25HZXN0dXJlUmVjb2duaXplciBzZXRE
ZWxlZ2F0ZTptX2ltbWVkaWF0ZUFjdGlvbkNvbnRyb2xsZXIuZ2V0KCldOwogICAgICAgICBbbV9p
bW1lZGlhdGVBY3Rpb25HZXN0dXJlUmVjb2duaXplciBzZXREZWxheXNQcmltYXJ5TW91c2VCdXR0
b25FdmVudHM6Tk9dOwogICAgIH0KQEAgLTE5ODcsNyArMTk4Nyw3IEBAIHZvaWQgV2ViVmlld0lt
cGw6OnNldExheW91dE1vZGUoV0tMYXlvdXRNb2RlIGxheW91dE1vZGUpCiAgICAgICAgIHJldHVy
bjsKIAogICAgIFttX2xheW91dFN0cmF0ZWd5IHdpbGxDaGFuZ2VMYXlvdXRTdHJhdGVneV07Ci0g
ICAgbV9sYXlvdXRTdHJhdGVneSA9IFtXS1ZpZXdMYXlvdXRTdHJhdGVneSBsYXlvdXRTdHJhdGVn
eVdpdGhQYWdlOm1fcGFnZSB2aWV3Om1fdmlldy5nZXRBdXRvcmVsZWFzZWQoKSB2aWV3SW1wbDoq
dGhpcyBtb2RlOmxheW91dE1vZGVdOworICAgIG1fbGF5b3V0U3RyYXRlZ3kgPSBbV0tWaWV3TGF5
b3V0U3RyYXRlZ3kgbGF5b3V0U3RyYXRlZ3lXaXRoUGFnZTptX3BhZ2UuZ2V0KCkgdmlldzptX3Zp
ZXcuZ2V0QXV0b3JlbGVhc2VkKCkgdmlld0ltcGw6KnRoaXMgbW9kZTpsYXlvdXRNb2RlXTsKIH0K
IAogYm9vbCBXZWJWaWV3SW1wbDo6c3VwcG9ydHNBcmJpdHJhcnlMYXlvdXRNb2RlcygpIGNvbnN0
CkBAIC0yNjQwLDcgKzI2NDAsNyBAQCBib29sIFdlYlZpZXdJbXBsOjpoYXNGdWxsU2NyZWVuV2lu
ZG93Q29udHJvbGxlcigpIGNvbnN0CiBXS0Z1bGxTY3JlZW5XaW5kb3dDb250cm9sbGVyICpXZWJW
aWV3SW1wbDo6ZnVsbFNjcmVlbldpbmRvd0NvbnRyb2xsZXIoKQogewogICAgIGlmICghbV9mdWxs
U2NyZWVuV2luZG93Q29udHJvbGxlcikKLSAgICAgICAgbV9mdWxsU2NyZWVuV2luZG93Q29udHJv
bGxlciA9IGFkb3B0TlMoW1tXS0Z1bGxTY3JlZW5XaW5kb3dDb250cm9sbGVyIGFsbG9jXSBpbml0
V2l0aFdpbmRvdzpmdWxsU2NyZWVuV2luZG93KCkgd2ViVmlldzptX3ZpZXcuZ2V0QXV0b3JlbGVh
c2VkKCkgcGFnZTptX3BhZ2VdKTsKKyAgICAgICAgbV9mdWxsU2NyZWVuV2luZG93Q29udHJvbGxl
ciA9IGFkb3B0TlMoW1tXS0Z1bGxTY3JlZW5XaW5kb3dDb250cm9sbGVyIGFsbG9jXSBpbml0V2l0
aFdpbmRvdzpmdWxsU2NyZWVuV2luZG93KCkgd2ViVmlldzptX3ZpZXcuZ2V0QXV0b3JlbGVhc2Vk
KCkgcGFnZTptX3BhZ2UuZ2V0KCldKTsKIAogICAgIHJldHVybiBtX2Z1bGxTY3JlZW5XaW5kb3dD
b250cm9sbGVyLmdldCgpOwogfQpAQCAtMzg4Myw3ICszODgzLDcgQEAgTlNWaWV3ICpXZWJWaWV3
SW1wbDo6aW5zcGVjdG9yQXR0YWNobWVudFZpZXcoKQogX1dLUmVtb3RlT2JqZWN0UmVnaXN0cnkg
KldlYlZpZXdJbXBsOjpyZW1vdGVPYmplY3RSZWdpc3RyeSgpCiB7CiAgICAgaWYgKCFtX3JlbW90
ZU9iamVjdFJlZ2lzdHJ5KSB7Ci0gICAgICAgIG1fcmVtb3RlT2JqZWN0UmVnaXN0cnkgPSBhZG9w
dE5TKFtbX1dLUmVtb3RlT2JqZWN0UmVnaXN0cnkgYWxsb2NdIF9pbml0V2l0aFdlYlBhZ2VQcm94
eTptX3BhZ2VdKTsKKyAgICAgICAgbV9yZW1vdGVPYmplY3RSZWdpc3RyeSA9IGFkb3B0TlMoW1tf
V0tSZW1vdGVPYmplY3RSZWdpc3RyeSBhbGxvY10gX2luaXRXaXRoV2ViUGFnZVByb3h5Om1fcGFn
ZS5nZXQoKV0pOwogICAgICAgICBtX3BhZ2UtPnByb2Nlc3MoKS5wcm9jZXNzUG9vbCgpLmFkZE1l
c3NhZ2VSZWNlaXZlcihNZXNzYWdlczo6UmVtb3RlT2JqZWN0UmVnaXN0cnk6Om1lc3NhZ2VSZWNl
aXZlck5hbWUoKSwgbV9wYWdlLT5pZGVudGlmaWVyKCksIFttX3JlbW90ZU9iamVjdFJlZ2lzdHJ5
IHJlbW90ZU9iamVjdFJlZ2lzdHJ5XSk7CiAgICAgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9pb3MvV0tBcHBsaWNhdGlvblN0YXRlVHJhY2tpbmdWaWV3Lm1tIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLQXBwbGljYXRpb25TdGF0ZVRyYWNraW5nVmlldy5t
bQppbmRleCBiN2Y3MDI2ZGRiZjE5NzI0MzM0OTI1MDBiYmNjYzJmNzJlZjAyOGU5Li41NGFkMDRi
ZDVlNmFjNDEwM2ZmZDdjMTE3MmQ3MWYyOWQ4NTJmMjVhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9pb3MvV0tBcHBsaWNhdGlvblN0YXRlVHJhY2tpbmdWaWV3Lm1tCisrKyBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0FwcGxpY2F0aW9uU3RhdGVUcmFja2luZ1Zp
ZXcubW0KQEAgLTU1LDcgKzU1LDcgQEAgLSAodm9pZCl3aWxsTW92ZVRvV2luZG93OihVSVdpbmRv
dyAqKW5ld1dpbmRvdwogICAgICAgICByZXR1cm47CiAKICAgICBhdXRvIHBhZ2UgPSBbX3dlYlZp
ZXdUb1RyYWNrIF9wYWdlXTsKLSAgICBSRUxFQVNFX0xPRyhWaWV3U3RhdGUsICIlcCAtIFdLQXBw
bGljYXRpb25TdGF0ZVRyYWNraW5nVmlldzogVmlldyB3aXRoIHBhZ2UgWyVwLCBwYWdlUHJveHlJ
RDogJSIgUFJJdTY0ICJdIHdhcyByZW1vdmVkIGZyb20gYSB3aW5kb3csIF9sYXN0T2JzZXJ2ZWRT
dGF0ZVdhc0JhY2tncm91bmQ6ICVkIiwgc2VsZiwgcGFnZSwgcGFnZSA/IHBhZ2UtPmlkZW50aWZp
ZXIoKS50b1VJbnQ2NCgpIDogMCwgcGFnZSA/IHBhZ2UtPmxhc3RPYnNlcnZlZFN0YXRlV2FzQmFj
a2dyb3VuZCgpIDogZmFsc2UpOworICAgIFJFTEVBU0VfTE9HKFZpZXdTdGF0ZSwgIiVwIC0gV0tB
cHBsaWNhdGlvblN0YXRlVHJhY2tpbmdWaWV3OiBWaWV3IHdpdGggcGFnZSBbJXAsIHBhZ2VQcm94
eUlEOiAlIiBQUkl1NjQgIl0gd2FzIHJlbW92ZWQgZnJvbSBhIHdpbmRvdywgX2xhc3RPYnNlcnZl
ZFN0YXRlV2FzQmFja2dyb3VuZDogJWQiLCBzZWxmLCBwYWdlLmdldCgpLCBwYWdlID8gcGFnZS0+
aWRlbnRpZmllcigpLnRvVUludDY0KCkgOiAwLCBwYWdlID8gcGFnZS0+bGFzdE9ic2VydmVkU3Rh
dGVXYXNCYWNrZ3JvdW5kKCkgOiBmYWxzZSk7CiAgICAgQVNTRVJUKF9hcHBsaWNhdGlvblN0YXRl
VHJhY2tlcik7CiAgICAgX2FwcGxpY2F0aW9uU3RhdGVUcmFja2VyID0gbnVsbHB0cjsKIH0KQEAg
LTY5LDcgKzY5LDcgQEAgLSAodm9pZClkaWRNb3ZlVG9XaW5kb3cKICAgICBib29sIGxhc3RPYnNl
cnZlZFN0YXRlV2FzQmFja2dyb3VuZCA9IHBhZ2UgPyBwYWdlLT5sYXN0T2JzZXJ2ZWRTdGF0ZVdh
c0JhY2tncm91bmQoKSA6IGZhbHNlOwogCiAgICAgX2FwcGxpY2F0aW9uU3RhdGVUcmFja2VyID0g
bWFrZVVuaXF1ZTxXZWJLaXQ6OkFwcGxpY2F0aW9uU3RhdGVUcmFja2VyPihzZWxmLCBAc2VsZWN0
b3IoX2FwcGxpY2F0aW9uRGlkRW50ZXJCYWNrZ3JvdW5kKSwgQHNlbGVjdG9yKF9hcHBsaWNhdGlv
bkRpZEZpbmlzaFNuYXBzaG90dGluZ0FmdGVyRW50ZXJpbmdCYWNrZ3JvdW5kKSwgQHNlbGVjdG9y
KF9hcHBsaWNhdGlvbldpbGxFbnRlckZvcmVncm91bmQpKTsKLSAgICBSRUxFQVNFX0xPRyhWaWV3
U3RhdGUsICIlcCAtIFdLQXBwbGljYXRpb25TdGF0ZVRyYWNraW5nVmlldzogVmlldyB3aXRoIHBh
Z2UgWyVwLCBwYWdlUHJveHlJRDogJSIgUFJJdTY0ICJdIHdhcyBhZGRlZCB0byBhIHdpbmRvdywg
X2xhc3RPYnNlcnZlZFN0YXRlV2FzQmFja2dyb3VuZDogJWQsIGlzTm93QmFja2dyb3VuZDogJWQi
LCBzZWxmLCBwYWdlLCBwYWdlID8gcGFnZS0+aWRlbnRpZmllcigpLnRvVUludDY0KCkgOiAwLCBs
YXN0T2JzZXJ2ZWRTdGF0ZVdhc0JhY2tncm91bmQsIFtzZWxmIGlzQmFja2dyb3VuZF0pOworICAg
IFJFTEVBU0VfTE9HKFZpZXdTdGF0ZSwgIiVwIC0gV0tBcHBsaWNhdGlvblN0YXRlVHJhY2tpbmdW
aWV3OiBWaWV3IHdpdGggcGFnZSBbJXAsIHBhZ2VQcm94eUlEOiAlIiBQUkl1NjQgIl0gd2FzIGFk
ZGVkIHRvIGEgd2luZG93LCBfbGFzdE9ic2VydmVkU3RhdGVXYXNCYWNrZ3JvdW5kOiAlZCwgaXNO
b3dCYWNrZ3JvdW5kOiAlZCIsIHNlbGYsIHBhZ2UuZ2V0KCksIHBhZ2UgPyBwYWdlLT5pZGVudGlm
aWVyKCkudG9VSW50NjQoKSA6IDAsIGxhc3RPYnNlcnZlZFN0YXRlV2FzQmFja2dyb3VuZCwgW3Nl
bGYgaXNCYWNrZ3JvdW5kXSk7CiAKICAgICBpZiAobGFzdE9ic2VydmVkU3RhdGVXYXNCYWNrZ3Jv
dW5kICYmICFbc2VsZiBpc0JhY2tncm91bmRdKQogICAgICAgICBbc2VsZiBfYXBwbGljYXRpb25X
aWxsRW50ZXJGb3JlZ3JvdW5kXTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L2lvcy9XS0NvbnRlbnRWaWV3LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tDb250
ZW50Vmlldy5oCmluZGV4IDU3Y2ZiYmY0NGQ4MmQyNjMxNmQ5NzMyMDM1N2VmNzUzYWNjMTZjY2Yu
LjY2YWZhNGRjYjg2YTJkZTYwZGZkZmMyNDBkNzkxMzM1ZWZiNzQ1NjUgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3LmgKKysrIGIvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXcuaApAQCAtMjgsNiArMjgsNyBAQAogI2lt
cG9ydCAiV0tCcm93c2luZ0NvbnRleHRDb250cm9sbGVyLmgiCiAjaW1wb3J0ICJXS0Jyb3dzaW5n
Q29udGV4dEdyb3VwLmgiCiAjaW1wb3J0ICJXS1Byb2Nlc3NHcm91cC5oIgorI2ltcG9ydCA8d3Rm
L05ha2VkUmVmLmg+CiAjaW1wb3J0IDx3dGYvUmV0YWluUHRyLmg+CiAjaW1wb3J0IDx3dGYvV2Vh
a09iakNQdHIuaD4KIApAQCAtNzAsNyArNzEsNyBAQCBjbGFzcyBXZWJQcm9jZXNzUG9vbDsKIEBw
cm9wZXJ0eSAobm9uYXRvbWljKSBCT09MIHNpemVDaGFuZ2VkU2luY2VMYXN0VmlzaWJsZUNvbnRl
bnRSZWN0VXBkYXRlOwogQHByb3BlcnR5IChub25hdG9taWMsIHJlYWRvbmx5KSBVSUludGVyZmFj
ZU9yaWVudGF0aW9uIGludGVyZmFjZU9yaWVudGF0aW9uOwogCi0tIChpbnN0YW5jZXR5cGUpaW5p
dFdpdGhGcmFtZTooQ0dSZWN0KWZyYW1lIHByb2Nlc3NQb29sOihXZWJLaXQ6OldlYlByb2Nlc3NQ
b29sJilwcm9jZXNzUG9vbCBjb25maWd1cmF0aW9uOihSZWY8QVBJOjpQYWdlQ29uZmlndXJhdGlv
bj4mJiljb25maWd1cmF0aW9uIHdlYlZpZXc6KFdLV2ViVmlldyAqKXdlYlZpZXc7CistIChpbnN0
YW5jZXR5cGUpaW5pdFdpdGhGcmFtZTooQ0dSZWN0KWZyYW1lIHByb2Nlc3NQb29sOihOYWtlZFJl
ZjxXZWJLaXQ6OldlYlByb2Nlc3NQb29sPilwcm9jZXNzUG9vbCBjb25maWd1cmF0aW9uOihSZWY8
QVBJOjpQYWdlQ29uZmlndXJhdGlvbj4mJiljb25maWd1cmF0aW9uIHdlYlZpZXc6KFdLV2ViVmll
dyAqKXdlYlZpZXc7CiAKIC0gKHZvaWQpZGlkVXBkYXRlVmlzaWJsZVJlY3Q6KENHUmVjdCl2aXNp
YmxlUmVjdAogICAgIHVub2JzY3VyZWRSZWN0OihDR1JlY3QpdW5vYnNjdXJlZFJlY3QKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3Lm1tIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXcubW0KaW5kZXggMjliYTYwNjU4
Mjg0NGRlYTY3ODVkZmYxMmZiYmFiNWU4YzliMzFmZC4uZDIxZTljYWU3OWY0MjEzNDI3NDZiMmQ0
ZWI0N2NjZWUzYTBjMzE5NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9z
L1dLQ29udGVudFZpZXcubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLQ29u
dGVudFZpZXcubW0KQEAgLTIzOCw3ICsyMzgsNyBAQCAtICh2b2lkKV9yZW1vdmVWaXNpYmlsaXR5
UHJvcGFnYXRpb25WaWV3CiB9CiAjZW5kaWYKIAotLSAoaW5zdGFuY2V0eXBlKWluaXRXaXRoRnJh
bWU6KENHUmVjdClmcmFtZSBwcm9jZXNzUG9vbDooV2ViS2l0OjpXZWJQcm9jZXNzUG9vbCYpcHJv
Y2Vzc1Bvb2wgY29uZmlndXJhdGlvbjooUmVmPEFQSTo6UGFnZUNvbmZpZ3VyYXRpb24+JiYpY29u
ZmlndXJhdGlvbiB3ZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3CistIChpbnN0YW5jZXR5cGUp
aW5pdFdpdGhGcmFtZTooQ0dSZWN0KWZyYW1lIHByb2Nlc3NQb29sOihOYWtlZFJlZjxXZWJLaXQ6
OldlYlByb2Nlc3NQb29sPilwcm9jZXNzUG9vbCBjb25maWd1cmF0aW9uOihSZWY8QVBJOjpQYWdl
Q29uZmlndXJhdGlvbj4mJiljb25maWd1cmF0aW9uIHdlYlZpZXc6KFdLV2ViVmlldyAqKXdlYlZp
ZXcKIHsKICAgICBpZiAoIShzZWxmID0gW3N1cGVyIGluaXRXaXRoRnJhbWU6ZnJhbWUgd2ViVmll
dzp3ZWJWaWV3XSkpCiAgICAgICAgIHJldHVybiBuaWw7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9tYWMvV0tGdWxsU2NyZWVuV2luZG93Q29udHJvbGxlci5oIGIvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvbWFjL1dLRnVsbFNjcmVlbldpbmRvd0NvbnRyb2xsZXIuaAppbmRl
eCAwMWQ3YTJhYjc1MThlNjM3OThlZmFmMjZkMzljNjk1NTgwMWM3Y2IzLi5iOTQwN2YxMzA0NGFl
ODUxODU1Y2I4MTI2ODRiMWNjYmFjMDdmMzEyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9tYWMvV0tGdWxsU2NyZWVuV2luZG93Q29udHJvbGxlci5oCisrKyBiL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL21hYy9XS0Z1bGxTY3JlZW5XaW5kb3dDb250cm9sbGVyLmgKQEAgLTI3
LDYgKzI3LDggQEAKIAogI2ltcG9ydCA8QXBwS2l0L0FwcEtpdC5oPgogI2ltcG9ydCAiR2VuZXJp
Y0NhbGxiYWNrLmgiCisjaW1wb3J0IDx3dGYvTmFrZWRQdHIuaD4KKyNpbXBvcnQgPHd0Zi9OYWtl
ZFJlZi5oPgogI2ltcG9ydCA8d3RmL1JldGFpblB0ci5oPgogCiBuYW1lc3BhY2UgV2ViS2l0IHsg
CkBAIC00Nyw3ICs0OSw3IEBAIHR5cGVkZWYgZW51bSBGdWxsU2NyZWVuU3RhdGUgOiBOU0ludGVn
ZXIgRnVsbFNjcmVlblN0YXRlOwogQGludGVyZmFjZSBXS0Z1bGxTY3JlZW5XaW5kb3dDb250cm9s
bGVyIDogTlNXaW5kb3dDb250cm9sbGVyPE5TV2luZG93RGVsZWdhdGU+IHsKIEBwcml2YXRlCiAg
ICAgTlNWaWV3ICpfd2ViVmlldzsgLy8gQ2Fubm90IGJlIHJldGFpbmVkLCBzZWUgPHJkYXI6Ly9w
cm9ibGVtLzE0ODg0NjY2Pi4KLSAgICBXZWJLaXQ6OldlYlBhZ2VQcm94eSogX3BhZ2U7CisgICAg
TmFrZWRQdHI8V2ViS2l0OjpXZWJQYWdlUHJveHk+IF9wYWdlOwogICAgIFJldGFpblB0cjxXZWJD
b3JlRnVsbFNjcmVlblBsYWNlaG9sZGVyVmlldz4gX3dlYlZpZXdQbGFjZWhvbGRlcjsKICAgICBS
ZXRhaW5QdHI8TlNWaWV3PiBfZXhpdFBsYWNlaG9sZGVyOwogICAgIFJldGFpblB0cjxOU1ZpZXc+
IF9jbGlwVmlldzsKQEAgLTcwLDcgKzcyLDcgQEAgdHlwZWRlZiBlbnVtIEZ1bGxTY3JlZW5TdGF0
ZSA6IE5TSW50ZWdlciBGdWxsU2NyZWVuU3RhdGU7CiBAcHJvcGVydHkgKHJlYWRvbmx5KSBOU1Jl
Y3QgZmluYWxGcmFtZTsKIEBwcm9wZXJ0eSAoYXNzaWduKSBOU0FycmF5ICpzYXZlZENvbnN0cmFp
bnRzOwogCi0tIChpZClpbml0V2l0aFdpbmRvdzooTlNXaW5kb3cgKil3aW5kb3cgd2ViVmlldzoo
TlNWaWV3ICopd2ViVmlldyBwYWdlOihXZWJLaXQ6OldlYlBhZ2VQcm94eSYpcGFnZTsKKy0gKGlk
KWluaXRXaXRoV2luZG93OihOU1dpbmRvdyAqKXdpbmRvdyB3ZWJWaWV3OihOU1ZpZXcgKil3ZWJW
aWV3IHBhZ2U6KE5ha2VkUmVmPFdlYktpdDo6V2ViUGFnZVByb3h5PilwYWdlOwogCiAtIChXZWJD
b3JlRnVsbFNjcmVlblBsYWNlaG9sZGVyVmlldyopd2ViVmlld1BsYWNlaG9sZGVyOwogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9tYWMvV0tGdWxsU2NyZWVuV2luZG93Q29u
dHJvbGxlci5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL21hYy9XS0Z1bGxTY3JlZW5XaW5k
b3dDb250cm9sbGVyLm1tCmluZGV4IDgyNWY4M2FlODg2ZGQ4Y2RkMDc1MzA2YTA3ODIxNjIxYzlk
OWUxNDQuLjZkZGYwZDZjYWY4ODlmOWNhMGUxOWI1MTY2NGNjMDk0YTk3MDdlYjIgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL21hYy9XS0Z1bGxTY3JlZW5XaW5kb3dDb250cm9s
bGVyLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL21hYy9XS0Z1bGxTY3JlZW5XaW5k
b3dDb250cm9sbGVyLm1tCkBAIC00OSw2ICs0OSw3IEBACiAjaW1wb3J0IDxwYWwvc3BpL2NnL0Nv
cmVHcmFwaGljc1NQSS5oPgogI2ltcG9ydCA8cGFsL3N5c3RlbS9TbGVlcERpc2FibGVyLmg+CiAj
aW1wb3J0IDx3dGYvQmxvY2tPYmpDRXhjZXB0aW9ucy5oPgorI2ltcG9ydCA8d3RmL05ha2VkUmVm
Lmg+CiAKIHN0YXRpYyBjb25zdCBOU1RpbWVJbnRlcnZhbCBEZWZhdWx0V2F0Y2hkb2dUaW1lcklu
dGVydmFsID0gMTsKIApAQCAtMTIxLDcgKzEyMiw3IEBAIEBpbXBsZW1lbnRhdGlvbiBXS0Z1bGxT
Y3JlZW5XaW5kb3dDb250cm9sbGVyCiAKICNwcmFnbWEgbWFyayAtCiAjcHJhZ21hIG1hcmsgSW5p
dGlhbGl6YXRpb24KLS0gKGlkKWluaXRXaXRoV2luZG93OihOU1dpbmRvdyAqKXdpbmRvdyB3ZWJW
aWV3OihOU1ZpZXcgKil3ZWJWaWV3IHBhZ2U6KFdlYktpdDo6V2ViUGFnZVByb3h5JilwYWdlCist
IChpZClpbml0V2l0aFdpbmRvdzooTlNXaW5kb3cgKil3aW5kb3cgd2ViVmlldzooTlNWaWV3ICop
d2ViVmlldyBwYWdlOihOYWtlZFJlZjxXZWJLaXQ6OldlYlBhZ2VQcm94eT4pcGFnZQogewogICAg
IHNlbGYgPSBbc3VwZXIgaW5pdFdpdGhXaW5kb3c6d2luZG93XTsKICAgICBpZiAoIXNlbGYpCkBA
IC0xNTAsNyArMTUxLDcgQEAgLSAoaWQpaW5pdFdpdGhXaW5kb3c6KE5TV2luZG93ICopd2luZG93
IHdlYlZpZXc6KE5TVmlldyAqKXdlYlZpZXcgcGFnZTooV2ViS2l0OjoKICAgICBbc2VsZiB3aW5k
b3dEaWRMb2FkXTsKICAgICBbd2luZG93IGRpc3BsYXlJZk5lZWRlZF07CiAgICAgX3dlYlZpZXcg
PSB3ZWJWaWV3OwotICAgIF9wYWdlID0gJnBhZ2U7CisgICAgX3BhZ2UgPSBwYWdlLnB0cigpOwog
CiAgICAgX3ZpZGVvRnVsbHNjcmVlbkNsaWVudCA9IG1ha2VVbmlxdWU8V2ViS2l0OjpXS0Z1bGxT
Y3JlZW5XaW5kb3dDb250cm9sbGVyVmlkZW9GdWxsc2NyZWVuTW9kZWxDbGllbnQ+KCk7CiAgICAg
X3ZpZGVvRnVsbHNjcmVlbkNsaWVudC0+c2V0UGFyZW50KHNlbGYpOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvbWFjL1dLSW1tZWRpYXRlQWN0aW9uQ29udHJvbGxlci5oIGIv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvbWFjL1dLSW1tZWRpYXRlQWN0aW9uQ29udHJvbGxlci5o
CmluZGV4IGY2YmY2NWYwNzQyODIyZmY5YjFjMGI2OWVlNzVhNzg3Y2U0ZjdjM2MuLmYyZDk3ZmUw
NzgzMDk4MjdkZGQwYTIzYzIxNWJlMjYwMzYyMmJkMWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL21hYy9XS0ltbWVkaWF0ZUFjdGlvbkNvbnRyb2xsZXIuaAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9tYWMvV0tJbW1lZGlhdGVBY3Rpb25Db250cm9sbGVyLmgKQEAg
LTMxLDYgKzMxLDggQEAKICNpbXBvcnQgIldLSW1tZWRpYXRlQWN0aW9uVHlwZXMuaCIKICNpbXBv
cnQgIldlYkhpdFRlc3RSZXN1bHREYXRhLmgiCiAjaW1wb3J0IDxwYWwvc3BpL21hYy9OU0ltbWVk
aWF0ZUFjdGlvbkdlc3R1cmVSZWNvZ25pemVyU1BJLmg+CisjaW1wb3J0IDx3dGYvTmFrZWRQdHIu
aD4KKyNpbXBvcnQgPHd0Zi9OYWtlZFJlZi5oPgogI2ltcG9ydCA8d3RmL1JldGFpblB0ci5oPgog
CiBuYW1lc3BhY2UgV2ViS2l0IHsKQEAgLTUwLDkgKzUyLDkgQEAgZW51bSBjbGFzcyBJbW1lZGlh
dGVBY3Rpb25TdGF0ZSB7CiAKIEBpbnRlcmZhY2UgV0tJbW1lZGlhdGVBY3Rpb25Db250cm9sbGVy
IDogTlNPYmplY3QgPE5TSW1tZWRpYXRlQWN0aW9uR2VzdHVyZVJlY29nbml6ZXJEZWxlZ2F0ZT4g
ewogQHByaXZhdGUKLSAgICBXZWJLaXQ6OldlYlBhZ2VQcm94eSogX3BhZ2U7CisgICAgTmFrZWRQ
dHI8V2ViS2l0OjpXZWJQYWdlUHJveHk+IF9wYWdlOwogICAgIE5TVmlldyAqX3ZpZXc7Ci0gICAg
V2ViS2l0OjpXZWJWaWV3SW1wbCogX3ZpZXdJbXBsOworICAgIE5ha2VkUHRyPFdlYktpdDo6V2Vi
Vmlld0ltcGw+IF92aWV3SW1wbDsKIAogICAgIFdlYktpdDo6SW1tZWRpYXRlQWN0aW9uU3RhdGUg
X3N0YXRlOwogICAgIFdlYktpdDo6V2ViSGl0VGVzdFJlc3VsdERhdGEgX2hpdFRlc3RSZXN1bHRE
YXRhOwpAQCAtNjgsNyArNzAsNyBAQCBlbnVtIGNsYXNzIEltbWVkaWF0ZUFjdGlvblN0YXRlIHsK
ICAgICBCT09MIF9oYXNBY3RpdmVJbW1lZGlhdGVBY3Rpb247CiB9CiAKLS0gKGluc3RhbmNldHlw
ZSlpbml0V2l0aFBhZ2U6KFdlYktpdDo6V2ViUGFnZVByb3h5JilwYWdlIHZpZXc6KE5TVmlldyAq
KXZpZXcgdmlld0ltcGw6KFdlYktpdDo6V2ViVmlld0ltcGwmKXZpZXdJbXBsIHJlY29nbml6ZXI6
KE5TSW1tZWRpYXRlQWN0aW9uR2VzdHVyZVJlY29nbml6ZXIgKilpbW1lZGlhdGVBY3Rpb25SZWNv
Z25pemVyOworLSAoaW5zdGFuY2V0eXBlKWluaXRXaXRoUGFnZTooTmFrZWRSZWY8V2ViS2l0OjpX
ZWJQYWdlUHJveHk+KXBhZ2UgdmlldzooTlNWaWV3ICopdmlldyB2aWV3SW1wbDooTmFrZWRSZWY8
V2ViS2l0OjpXZWJWaWV3SW1wbD4pdmlld0ltcGwgcmVjb2duaXplcjooTlNJbW1lZGlhdGVBY3Rp
b25HZXN0dXJlUmVjb2duaXplciAqKWltbWVkaWF0ZUFjdGlvblJlY29nbml6ZXI7CiAtICh2b2lk
KXdpbGxEZXN0cm95VmlldzooTlNWaWV3ICopdmlldzsKIC0gKHZvaWQpZGlkUGVyZm9ybUltbWVk
aWF0ZUFjdGlvbkhpdFRlc3Q6KGNvbnN0IFdlYktpdDo6V2ViSGl0VGVzdFJlc3VsdERhdGEmKWhp
dFRlc3RSZXN1bHQgY29udGVudFByZXZlbnRzRGVmYXVsdDooQk9PTCljb250ZW50UHJldmVudHNE
ZWZhdWx0IHVzZXJEYXRhOihBUEk6Ok9iamVjdCopdXNlckRhdGE7CiAtICh2b2lkKWRpc21pc3ND
b250ZW50UmVsYXRpdmVDaGlsZFdpbmRvd3M7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9tYWMvV0tJbW1lZGlhdGVBY3Rpb25Db250cm9sbGVyLm1tIGIvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvbWFjL1dLSW1tZWRpYXRlQWN0aW9uQ29udHJvbGxlci5tbQppbmRleCBhZTg3
YWE5Y2IwZDNmOTJhZGQwNzEzYzFkMGIwOTMwZjdlMTE4MDY3Li4zOGRiZjEwNGU3NTVmMzQzNjky
MTFhZGYyOWFlYmQxOTNiMDIyZmQxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9tYWMvV0tJbW1lZGlhdGVBY3Rpb25Db250cm9sbGVyLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL21hYy9XS0ltbWVkaWF0ZUFjdGlvbkNvbnRyb2xsZXIubW0KQEAgLTYwLDE2ICs2
MCwxNiBAQCBAZW5kCiAKIEBpbXBsZW1lbnRhdGlvbiBXS0ltbWVkaWF0ZUFjdGlvbkNvbnRyb2xs
ZXIKIAotLSAoaW5zdGFuY2V0eXBlKWluaXRXaXRoUGFnZTooV2ViS2l0OjpXZWJQYWdlUHJveHkm
KXBhZ2UgdmlldzooTlNWaWV3ICopdmlldyB2aWV3SW1wbDooV2ViS2l0OjpXZWJWaWV3SW1wbCYp
dmlld0ltcGwgcmVjb2duaXplcjooTlNJbW1lZGlhdGVBY3Rpb25HZXN0dXJlUmVjb2duaXplciAq
KWltbWVkaWF0ZUFjdGlvblJlY29nbml6ZXIKKy0gKGluc3RhbmNldHlwZSlpbml0V2l0aFBhZ2U6
KE5ha2VkUmVmPFdlYktpdDo6V2ViUGFnZVByb3h5PilwYWdlIHZpZXc6KE5TVmlldyAqKXZpZXcg
dmlld0ltcGw6KE5ha2VkUmVmPFdlYktpdDo6V2ViVmlld0ltcGw+KXZpZXdJbXBsIHJlY29nbml6
ZXI6KE5TSW1tZWRpYXRlQWN0aW9uR2VzdHVyZVJlY29nbml6ZXIgKilpbW1lZGlhdGVBY3Rpb25S
ZWNvZ25pemVyCiB7CiAgICAgc2VsZiA9IFtzdXBlciBpbml0XTsKIAogICAgIGlmICghc2VsZikK
ICAgICAgICAgcmV0dXJuIG5pbDsKIAotICAgIF9wYWdlID0gJnBhZ2U7CisgICAgX3BhZ2UgPSBw
YWdlLnB0cigpOwogICAgIF92aWV3ID0gdmlldzsKLSAgICBfdmlld0ltcGwgPSAmdmlld0ltcGw7
CisgICAgX3ZpZXdJbXBsID0gdmlld0ltcGwucHRyKCk7CiAgICAgX3R5cGUgPSBrV0tJbW1lZGlh
dGVBY3Rpb25Ob25lOwogICAgIF9pbW1lZGlhdGVBY3Rpb25SZWNvZ25pemVyID0gaW1tZWRpYXRl
QWN0aW9uUmVjb2duaXplcjsKICAgICBfaGFzQWN0aXZlSW1tZWRpYXRlQWN0aW9uID0gTk87CkBA
IC00MTIsNyArNDEyLDcgQEAgLSAoaWQ8TlNJbW1lZGlhdGVBY3Rpb25BbmltYXRpb25Db250cm9s
bGVyPilfYW5pbWF0aW9uQ29udHJvbGxlckZvckRhdGFEZXRlY3RlZFQKICAgICBpZiAoIVtbZ2V0
RERBY3Rpb25zTWFuYWdlckNsYXNzKCkgc2hhcmVkTWFuYWdlcl0gaGFzQWN0aW9uc0ZvclJlc3Vs
dDphY3Rpb25Db250ZXh0Lm1haW5SZXN1bHQgYWN0aW9uQ29udGV4dDphY3Rpb25Db250ZXh0XSkK
ICAgICAgICAgcmV0dXJuIG5pbDsKIAotICAgIFJlZlB0cjxXZWJLaXQ6OldlYlBhZ2VQcm94eT4g
cGFnZSA9IF9wYWdlOworICAgIFJlZlB0cjxXZWJLaXQ6OldlYlBhZ2VQcm94eT4gcGFnZSA9IF9w
YWdlLmdldCgpOwogICAgIFdlYkNvcmU6OlBhZ2VPdmVybGF5OjpQYWdlT3ZlcmxheUlEIG92ZXJs
YXlJRCA9IF9oaXRUZXN0UmVzdWx0RGF0YS5kZXRlY3RlZERhdGFPcmlnaW5hdGluZ1BhZ2VPdmVy
bGF5OwogICAgIF9jdXJyZW50QWN0aW9uQ29udGV4dCA9IFthY3Rpb25Db250ZXh0IGNvbnRleHRG
b3JWaWV3Ol92aWV3IGFsdE1vZGU6WUVTIGludGVyYWN0aW9uU3RhcnRlZEhhbmRsZXI6XigpIHsK
ICAgICAgICAgcGFnZS0+c2VuZChNZXNzYWdlczo6V2ViUGFnZTo6RGF0YURldGVjdG9yc0RpZFBy
ZXNlbnRVSShvdmVybGF5SUQpKTsKQEAgLTQ0OCw3ICs0NDgsNyBAQCAtIChpZDxOU0ltbWVkaWF0
ZUFjdGlvbkFuaW1hdGlvbkNvbnRyb2xsZXI+KV9hbmltYXRpb25Db250cm9sbGVyRm9yRGF0YURl
dGVjdGVkTAogICAgIFthY3Rpb25Db250ZXh0IHNldEFsdE1vZGU6WUVTXTsKICAgICBbYWN0aW9u
Q29udGV4dCBzZXRJbW1lZGlhdGU6WUVTXTsKIAotICAgIFJlZlB0cjxXZWJLaXQ6OldlYlBhZ2VQ
cm94eT4gcGFnZSA9IF9wYWdlOworICAgIFJlZlB0cjxXZWJLaXQ6OldlYlBhZ2VQcm94eT4gcGFn
ZSA9IF9wYWdlLmdldCgpOwogICAgIF9jdXJyZW50QWN0aW9uQ29udGV4dCA9IFthY3Rpb25Db250
ZXh0IGNvbnRleHRGb3JWaWV3Ol92aWV3IGFsdE1vZGU6WUVTIGludGVyYWN0aW9uU3RhcnRlZEhh
bmRsZXI6XigpIHsKICAgICB9IGludGVyYWN0aW9uQ2hhbmdlZEhhbmRsZXI6XigpIHsKICAgICAg
ICAgaWYgKF9oaXRUZXN0UmVzdWx0RGF0YS5saW5rVGV4dEluZGljYXRvcikKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL21hYy9XS0luc3BlY3RvclZpZXdDb250cm9sbGVyLmgg
Yi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9tYWMvV0tJbnNwZWN0b3JWaWV3Q29udHJvbGxlci5o
CmluZGV4IDIwYmIyZTY2MWI1ZmVmZTczNjE5ZDAxYzZjM2MzOGEzNjYyOGYyOTAuLjA4YmQwOGZm
OWQ0ODdjNDBiNWVkZDFiNzFlNzhjMzkzNzlhYTJmNDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL21hYy9XS0luc3BlY3RvclZpZXdDb250cm9sbGVyLmgKKysrIGIvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvbWFjL1dLSW5zcGVjdG9yVmlld0NvbnRyb2xsZXIuaApAQCAtMjYs
NiArMjYsNyBAQAogI3ByYWdtYSBvbmNlCiAKICNpbXBvcnQgPFdlYktpdC9XS0ZvdW5kYXRpb24u
aD4KKyNpbXBvcnQgPHd0Zi9OYWtlZFB0ci5oPgogCiAjaWYgUExBVEZPUk0oTUFDKQogCkBAIC00
NCw3ICs0NSw3IEBAIE5TX0FTU1VNRV9OT05OVUxMX0JFR0lOCiBAcHJvcGVydHkgKG5vbmF0b21p
YywgcmVhZG9ubHkpIFdLV2ViVmlldyAqd2ViVmlldzsKIEBwcm9wZXJ0eSAobm9uYXRvbWljLCB3
ZWFrKSBpZCA8V0tJbnNwZWN0b3JWaWV3Q29udHJvbGxlckRlbGVnYXRlPiBkZWxlZ2F0ZTsKIAot
LSAoaW5zdGFuY2V0eXBlKWluaXRXaXRoSW5zcGVjdGVkUGFnZTooV2ViS2l0OjpXZWJQYWdlUHJv
eHkqIF9OdWxsYWJsZSlpbnNwZWN0ZWRQYWdlOworLSAoaW5zdGFuY2V0eXBlKWluaXRXaXRoSW5z
cGVjdGVkUGFnZTooTmFrZWRQdHI8V2ViS2l0OjpXZWJQYWdlUHJveHk+KWluc3BlY3RlZFBhZ2U7
CiAKICsgKEJPT0wpdmlld0lzSW5zcGVjdG9yV2ViVmlldzooTlNWaWV3ICopdmlldzsKIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvbWFjL1dLSW5zcGVjdG9yVmlld0NvbnRy
b2xsZXIubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9tYWMvV0tJbnNwZWN0b3JWaWV3Q29u
dHJvbGxlci5tbQppbmRleCAwZjY1NzFiMmJlZjRhYzY5YmFhYzFiZWYxMGZkZmY5OWQ3NDJiNmJk
Li5kOTI2M2UwZmQ2ZTZhZmE2YmE3YjVhMTk4NTk4OTU0NGY3YWE3MGU4IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9tYWMvV0tJbnNwZWN0b3JWaWV3Q29udHJvbGxlci5tbQor
KysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9tYWMvV0tJbnNwZWN0b3JWaWV3Q29udHJvbGxl
ci5tbQpAQCAtNDksMTIgKzQ5LDEyIEBAIEBpbnRlcmZhY2UgV0tJbnNwZWN0b3JWaWV3Q29udHJv
bGxlciAoKSA8V0tVSURlbGVnYXRlLCBXS05hdmlnYXRpb25EZWxlZ2F0ZSwgV0tJCiBAZW5kCiAK
IEBpbXBsZW1lbnRhdGlvbiBXS0luc3BlY3RvclZpZXdDb250cm9sbGVyIHsKLSAgICBXZWJLaXQ6
OldlYlBhZ2VQcm94eSogX2luc3BlY3RlZFBhZ2U7CisgICAgTmFrZWRQdHI8V2ViS2l0OjpXZWJQ
YWdlUHJveHk+IF9pbnNwZWN0ZWRQYWdlOwogICAgIFJldGFpblB0cjxXS0luc3BlY3RvcldLV2Vi
Vmlldz4gX3dlYlZpZXc7CiAgICAgV2Vha09iakNQdHI8aWQgPFdLSW5zcGVjdG9yVmlld0NvbnRy
b2xsZXJEZWxlZ2F0ZT4+IF9kZWxlZ2F0ZTsKIH0KIAotLSAoaW5zdGFuY2V0eXBlKWluaXRXaXRo
SW5zcGVjdGVkUGFnZTooV2ViS2l0OjpXZWJQYWdlUHJveHkqKWluc3BlY3RlZFBhZ2UKKy0gKGlu
c3RhbmNldHlwZSlpbml0V2l0aEluc3BlY3RlZFBhZ2U6KE5ha2VkUHRyPFdlYktpdDo6V2ViUGFn
ZVByb3h5PilpbnNwZWN0ZWRQYWdlCiB7CiAgICAgaWYgKCEoc2VsZiA9IFtzdXBlciBpbml0XSkp
CiAgICAgICAgIHJldHVybiBuaWw7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9tYWMvV0tUZXh0RmluZGVyQ2xpZW50LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9tYWMv
V0tUZXh0RmluZGVyQ2xpZW50LmgKaW5kZXggNzlmZmVjZmZhNWFiNDkxNzQxZTM1YWMxYWRjZGEy
ZGJiOTU4MTIzMi4uOWI2MGRiZjY2OTI5ZmZjOTMyZGIzNjcyOTEwZDk4MTkzYmI1N2ZlNSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvbWFjL1dLVGV4dEZpbmRlckNsaWVudC5o
CisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL21hYy9XS1RleHRGaW5kZXJDbGllbnQuaApA
QCAtMjcsNiArMjcsNyBAQAogI2RlZmluZSBXS1RleHRGaW5kZXJDbGllbnRfaAogCiAjaW1wb3J0
IDxXZWJLaXQvV0tGb3VuZGF0aW9uLmg+CisjaW1wb3J0IDx3dGYvTmFrZWRSZWYuaD4KIAogI2lm
IFBMQVRGT1JNKE1BQykKIApAQCAtMzgsNyArMzksNyBAQCBjbGFzcyBXZWJQYWdlUHJveHk7CiAK
IEBpbnRlcmZhY2UgV0tUZXh0RmluZGVyQ2xpZW50IDogTlNPYmplY3QKIAotLSAoaW5zdGFuY2V0
eXBlKWluaXRXaXRoUGFnZTooV2ViS2l0OjpXZWJQYWdlUHJveHkmKXBhZ2UgdmlldzooTlNWaWV3
ICopdmlldyB1c2VQbGF0Zm9ybUZpbmRVSTooQk9PTCl1c2VQbGF0Zm9ybUZpbmRVSTsKKy0gKGlu
c3RhbmNldHlwZSlpbml0V2l0aFBhZ2U6KE5ha2VkUmVmPFdlYktpdDo6V2ViUGFnZVByb3h5Pilw
YWdlIHZpZXc6KE5TVmlldyAqKXZpZXcgdXNlUGxhdGZvcm1GaW5kVUk6KEJPT0wpdXNlUGxhdGZv
cm1GaW5kVUk7CiAtICh2b2lkKXdpbGxEZXN0cm95VmlldzooTlNWaWV3ICopdmlldzsKIAogQGVu
ZApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvbWFjL1dLVGV4dEZpbmRlckNs
aWVudC5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL21hYy9XS1RleHRGaW5kZXJDbGllbnQu
bW0KaW5kZXggNjlkOWQ5ZTJkNDQ0ODQzZDE1MjcwZjUxMTdmNzc0Y2QyMzdkNWRiOC4uMzk2OGVk
YTYzZGVkZTI5MDVlYzJmNzBlNTU5YzFiOGRhOTQ0MDI4ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvbWFjL1dLVGV4dEZpbmRlckNsaWVudC5tbQorKysgYi9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9tYWMvV0tUZXh0RmluZGVyQ2xpZW50Lm1tCkBAIC0zNiw2ICszNiw3IEBA
CiAjaW1wb3J0IDxwYWwvc3BpL21hYy9OU1RleHRGaW5kZXJTUEkuaD4KICNpbXBvcnQgPHd0Zi9C
bG9ja1B0ci5oPgogI2ltcG9ydCA8d3RmL0RlcXVlLmg+CisjaW1wb3J0IDx3dGYvTmFrZWRQdHIu
aD4KIAogLy8gRklYTUU6IEltcGxlbWVudCBzY3JvbGxGaW5kTWF0Y2hUb1Zpc2libGUuCiAvLyBG
SVhNRTogVGhlIE5TVGV4dEZpbmRlciBvdmVybGF5IGRvZXNuJ3QgbW92ZSB3aXRoIHNjcm9sbGlu
Zzsgd2Ugc2hvdWxkIGhhdmUgYSBtb2RlIHdoZXJlIHdlIG1hbmFnZSB0aGUgb3ZlcmxheS4KQEAg
LTE1MSwyMSArMTUyLDIxIEBAIC0gKHVuc2lnbmVkKWluZGV4CiBAZW5kCiAKIEBpbXBsZW1lbnRh
dGlvbiBXS1RleHRGaW5kZXJDbGllbnQgewotICAgIFdlYktpdDo6V2ViUGFnZVByb3h5KiBfcGFn
ZTsKKyAgICBOYWtlZFB0cjxXZWJLaXQ6OldlYlBhZ2VQcm94eT4gX3BhZ2U7CiAgICAgTlNWaWV3
ICpfdmlldzsKICAgICBEZXF1ZTxXVEY6OkZ1bmN0aW9uPHZvaWQoTlNBcnJheSAqLCBib29sIGRp
ZFdyYXApPj4gX2ZpbmRSZXBseUNhbGxiYWNrczsKICAgICBEZXF1ZTxXVEY6OkZ1bmN0aW9uPHZv
aWQoTlNJbWFnZSAqKT4+IF9pbWFnZVJlcGx5Q2FsbGJhY2tzOwogICAgIEJPT0wgX3VzZVBsYXRm
b3JtRmluZFVJOwogfQogCi0tIChpbnN0YW5jZXR5cGUpaW5pdFdpdGhQYWdlOihXZWJLaXQ6Oldl
YlBhZ2VQcm94eSYpcGFnZSB2aWV3OihOU1ZpZXcgKil2aWV3IHVzZVBsYXRmb3JtRmluZFVJOihC
T09MKXVzZVBsYXRmb3JtRmluZFVJCistIChpbnN0YW5jZXR5cGUpaW5pdFdpdGhQYWdlOihOYWtl
ZFJlZjxXZWJLaXQ6OldlYlBhZ2VQcm94eT4pcGFnZSB2aWV3OihOU1ZpZXcgKil2aWV3IHVzZVBs
YXRmb3JtRmluZFVJOihCT09MKXVzZVBsYXRmb3JtRmluZFVJCiB7CiAgICAgc2VsZiA9IFtzdXBl
ciBpbml0XTsKIAogICAgIGlmICghc2VsZikKICAgICAgICAgcmV0dXJuIG5pbDsKIAotICAgIF9w
YWdlID0gJnBhZ2U7CisgICAgX3BhZ2UgPSBwYWdlLnB0cigpOwogICAgIF92aWV3ID0gdmlldzsK
ICAgICBfdXNlUGxhdGZvcm1GaW5kVUkgPSB1c2VQbGF0Zm9ybUZpbmRVSTsKICAgICAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL21hYy9XS1ZpZXdMYXlvdXRTdHJhdGVneS5o
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvbWFjL1dLVmlld0xheW91dFN0cmF0ZWd5LmgKaW5k
ZXggMmRmN2UwN2RiOWViYmNmN2ExMTExMmU1NjI3MGU0MDY3YzU4ODk4Ny4uMmZlZWY0Zjg5NzBi
OTEwMTZlNjgzZjNmMWQ2YTc1NDdkODczNThmNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvbWFjL1dLVmlld0xheW91dFN0cmF0ZWd5LmgKKysrIGIvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvbWFjL1dLVmlld0xheW91dFN0cmF0ZWd5LmgKQEAgLTI5LDYgKzI5LDggQEAKICNp
ZiBQTEFURk9STShNQUMpCiAKICNpbXBvcnQgIldLTGF5b3V0TW9kZS5oIgorI2ltcG9ydCA8d3Rm
L05ha2VkUHRyLmg+CisjaW1wb3J0IDx3dGYvTmFrZWRSZWYuaD4KIAogbmFtZXNwYWNlIFdlYktp
dCB7CiBjbGFzcyBXZWJQYWdlUHJveHk7CkBAIC0zOSwxNSArNDEsMTUgQEAgY2xhc3MgV2ViVmll
d0ltcGw7CiAKIEBpbnRlcmZhY2UgV0tWaWV3TGF5b3V0U3RyYXRlZ3kgOiBOU09iamVjdCB7CiBA
cGFja2FnZQotICAgIFdlYktpdDo6V2ViUGFnZVByb3h5KiBfcGFnZTsKLSAgICBXZWJLaXQ6Oldl
YlZpZXdJbXBsKiBfd2ViVmlld0ltcGw7CisgICAgTmFrZWRQdHI8V2ViS2l0OjpXZWJQYWdlUHJv
eHk+IF9wYWdlOworICAgIE5ha2VkUHRyPFdlYktpdDo6V2ViVmlld0ltcGw+IF93ZWJWaWV3SW1w
bDsKICAgICBOU1ZpZXcgKl92aWV3OwogCiAgICAgV0tMYXlvdXRNb2RlIF9sYXlvdXRNb2RlOwog
ICAgIHVuc2lnbmVkIF9mcmFtZVNpemVVcGRhdGVzRGlzYWJsZWRDb3VudDsKIH0KIAotKyAoaW5z
dGFuY2V0eXBlKWxheW91dFN0cmF0ZWd5V2l0aFBhZ2U6KFdlYktpdDo6V2ViUGFnZVByb3h5Jilw
YWdlIHZpZXc6KE5TVmlldyAqKXZpZXcgdmlld0ltcGw6KFdlYktpdDo6V2ViVmlld0ltcGwmKXdl
YlZpZXdJbXBsIG1vZGU6KFdLTGF5b3V0TW9kZSltb2RlOworKyAoaW5zdGFuY2V0eXBlKWxheW91
dFN0cmF0ZWd5V2l0aFBhZ2U6KE5ha2VkUmVmPFdlYktpdDo6V2ViUGFnZVByb3h5PilwYWdlIHZp
ZXc6KE5TVmlldyAqKXZpZXcgdmlld0ltcGw6KE5ha2VkUmVmPFdlYktpdDo6V2ViVmlld0ltcGw+
KXdlYlZpZXdJbXBsIG1vZGU6KFdLTGF5b3V0TW9kZSltb2RlOwogCiAtICh2b2lkKWludmFsaWRh
dGU7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL21hYy9XS1ZpZXdMYXlv
dXRTdHJhdGVneS5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL21hYy9XS1ZpZXdMYXlvdXRT
dHJhdGVneS5tbQppbmRleCA2MzlkNTk5NDU0MjhiMDI1NjI4YzM1YjUyNWM1NjI2MmQxZDNkZDFi
Li5lYjBiYWIzMDExMjlmYTA4M2U5YTE2ZGU2MmNlY2U2MDBkMDEzZDg0IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9tYWMvV0tWaWV3TGF5b3V0U3RyYXRlZ3kubW0KKysrIGIv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvbWFjL1dLVmlld0xheW91dFN0cmF0ZWd5Lm1tCkBAIC00
NywyMyArNDcsMjMgQEAgQGVuZAogCiBAaW1wbGVtZW50YXRpb24gV0tWaWV3TGF5b3V0U3RyYXRl
Z3kKIAotKyAoaW5zdGFuY2V0eXBlKWxheW91dFN0cmF0ZWd5V2l0aFBhZ2U6KFdlYktpdDo6V2Vi
UGFnZVByb3h5JilwYWdlIHZpZXc6KE5TVmlldyAqKXZpZXcgdmlld0ltcGw6KFdlYktpdDo6V2Vi
Vmlld0ltcGwmKXdlYlZpZXdJbXBsIG1vZGU6KFdLTGF5b3V0TW9kZSltb2RlCisrIChpbnN0YW5j
ZXR5cGUpbGF5b3V0U3RyYXRlZ3lXaXRoUGFnZTooTmFrZWRSZWY8V2ViS2l0OjpXZWJQYWdlUHJv
eHk+KXBhZ2UgdmlldzooTlNWaWV3ICopdmlldyB2aWV3SW1wbDooTmFrZWRSZWY8V2ViS2l0OjpX
ZWJWaWV3SW1wbD4pd2ViVmlld0ltcGwgbW9kZTooV0tMYXlvdXRNb2RlKW1vZGUKIHsKICAgICBX
S1ZpZXdMYXlvdXRTdHJhdGVneSAqc3RyYXRlZ3k7CiAKICAgICBzd2l0Y2ggKG1vZGUpIHsKICAg
ICBjYXNlIGtXS0xheW91dE1vZGVGaXhlZFNpemU6Ci0gICAgICAgIHN0cmF0ZWd5ID0gW1tXS1Zp
ZXdGaXhlZFNpemVMYXlvdXRTdHJhdGVneSBhbGxvY10gaW5pdFdpdGhQYWdlOnBhZ2Ugdmlldzp2
aWV3IHZpZXdJbXBsOndlYlZpZXdJbXBsIG1vZGU6bW9kZV07CisgICAgICAgIHN0cmF0ZWd5ID0g
W1tXS1ZpZXdGaXhlZFNpemVMYXlvdXRTdHJhdGVneSBhbGxvY10gaW5pdFdpdGhQYWdlOnBhZ2Uu
Y29weVJlZigpIHZpZXc6dmlldyB2aWV3SW1wbDp3ZWJWaWV3SW1wbC5jb3B5UmVmKCkgbW9kZTpt
b2RlXTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBrV0tMYXlvdXRNb2RlRHluYW1pY1NpemVD
b21wdXRlZEZyb21WaWV3U2NhbGU6Ci0gICAgICAgIHN0cmF0ZWd5ID0gW1tXS1ZpZXdEeW5hbWlj
U2l6ZUNvbXB1dGVkRnJvbVZpZXdTY2FsZUxheW91dFN0cmF0ZWd5IGFsbG9jXSBpbml0V2l0aFBh
Z2U6cGFnZSB2aWV3OnZpZXcgdmlld0ltcGw6d2ViVmlld0ltcGwgbW9kZTptb2RlXTsKKyAgICAg
ICAgc3RyYXRlZ3kgPSBbW1dLVmlld0R5bmFtaWNTaXplQ29tcHV0ZWRGcm9tVmlld1NjYWxlTGF5
b3V0U3RyYXRlZ3kgYWxsb2NdIGluaXRXaXRoUGFnZTpwYWdlLmNvcHlSZWYoKSB2aWV3OnZpZXcg
dmlld0ltcGw6d2ViVmlld0ltcGwuY29weVJlZigpIG1vZGU6bW9kZV07CiAgICAgICAgIGJyZWFr
OwogICAgIGNhc2Uga1dLTGF5b3V0TW9kZUR5bmFtaWNTaXplQ29tcHV0ZWRGcm9tTWluaW11bURv
Y3VtZW50U2l6ZToKLSAgICAgICAgc3RyYXRlZ3kgPSBbW1dLVmlld0R5bmFtaWNTaXplQ29tcHV0
ZWRGcm9tTWluaW11bURvY3VtZW50U2l6ZUxheW91dFN0cmF0ZWd5IGFsbG9jXSBpbml0V2l0aFBh
Z2U6cGFnZSB2aWV3OnZpZXcgdmlld0ltcGw6d2ViVmlld0ltcGwgbW9kZTptb2RlXTsKKyAgICAg
ICAgc3RyYXRlZ3kgPSBbW1dLVmlld0R5bmFtaWNTaXplQ29tcHV0ZWRGcm9tTWluaW11bURvY3Vt
ZW50U2l6ZUxheW91dFN0cmF0ZWd5IGFsbG9jXSBpbml0V2l0aFBhZ2U6cGFnZS5jb3B5UmVmKCkg
dmlldzp2aWV3IHZpZXdJbXBsOndlYlZpZXdJbXBsLmNvcHlSZWYoKSBtb2RlOm1vZGVdOwogICAg
ICAgICBicmVhazsKICAgICBjYXNlIGtXS0xheW91dE1vZGVWaWV3U2l6ZToKICAgICBkZWZhdWx0
OgotICAgICAgICBzdHJhdGVneSA9IFtbV0tWaWV3Vmlld1NpemVMYXlvdXRTdHJhdGVneSBhbGxv
Y10gaW5pdFdpdGhQYWdlOnBhZ2Ugdmlldzp2aWV3IHZpZXdJbXBsOndlYlZpZXdJbXBsIG1vZGU6
bW9kZV07CisgICAgICAgIHN0cmF0ZWd5ID0gW1tXS1ZpZXdWaWV3U2l6ZUxheW91dFN0cmF0ZWd5
IGFsbG9jXSBpbml0V2l0aFBhZ2U6cGFnZS5jb3B5UmVmKCkgdmlldzp2aWV3IHZpZXdJbXBsOndl
YlZpZXdJbXBsLmNvcHlSZWYoKSBtb2RlOm1vZGVdOwogICAgICAgICBicmVhazsKICAgICB9CiAK
QEAgLTcyLDE1ICs3MiwxNSBAQCArIChpbnN0YW5jZXR5cGUpbGF5b3V0U3RyYXRlZ3lXaXRoUGFn
ZTooV2ViS2l0OjpXZWJQYWdlUHJveHkmKXBhZ2UgdmlldzooTlNWaWV3CiAgICAgcmV0dXJuIFtz
dHJhdGVneSBhdXRvcmVsZWFzZV07CiB9CiAKLS0gKGluc3RhbmNldHlwZSlpbml0V2l0aFBhZ2U6
KFdlYktpdDo6V2ViUGFnZVByb3h5JilwYWdlIHZpZXc6KE5TVmlldyAqKXZpZXcgdmlld0ltcGw6
KFdlYktpdDo6V2ViVmlld0ltcGwmKXdlYlZpZXdJbXBsIG1vZGU6KFdLTGF5b3V0TW9kZSltb2Rl
CistIChpbnN0YW5jZXR5cGUpaW5pdFdpdGhQYWdlOihOYWtlZFJlZjxXZWJLaXQ6OldlYlBhZ2VQ
cm94eT4pcGFnZSB2aWV3OihOU1ZpZXcgKil2aWV3IHZpZXdJbXBsOihOYWtlZFJlZjxXZWJLaXQ6
OldlYlZpZXdJbXBsPil3ZWJWaWV3SW1wbCBtb2RlOihXS0xheW91dE1vZGUpbW9kZQogewogICAg
IHNlbGYgPSBbc3VwZXIgaW5pdF07CiAKICAgICBpZiAoIXNlbGYpCiAgICAgICAgIHJldHVybiBu
aWw7CiAKLSAgICBfcGFnZSA9ICZwYWdlOwotICAgIF93ZWJWaWV3SW1wbCA9ICZ3ZWJWaWV3SW1w
bDsKKyAgICBfcGFnZSA9IHBhZ2UucHRyKCk7CisgICAgX3dlYlZpZXdJbXBsID0gd2ViVmlld0lt
cGwucHRyKCk7CiAgICAgX3ZpZXcgPSB2aWV3OwogICAgIF9sYXlvdXRNb2RlID0gbW9kZTsKIApA
QCAtMTUyLDE0ICsxNTIsMTQgQEAgQGVuZAogCiBAaW1wbGVtZW50YXRpb24gV0tWaWV3Vmlld1Np
emVMYXlvdXRTdHJhdGVneQogCi0tIChpbnN0YW5jZXR5cGUpaW5pdFdpdGhQYWdlOihXZWJLaXQ6
OldlYlBhZ2VQcm94eSYpcGFnZSB2aWV3OihOU1ZpZXcgKil2aWV3IHZpZXdJbXBsOihXZWJLaXQ6
OldlYlZpZXdJbXBsJil3ZWJWaWV3SW1wbCBtb2RlOihXS0xheW91dE1vZGUpbW9kZQorLSAoaW5z
dGFuY2V0eXBlKWluaXRXaXRoUGFnZTooTmFrZWRSZWY8V2ViS2l0OjpXZWJQYWdlUHJveHk+KXBh
Z2UgdmlldzooTlNWaWV3ICopdmlldyB2aWV3SW1wbDooTmFrZWRSZWY8V2ViS2l0OjpXZWJWaWV3
SW1wbD4pd2ViVmlld0ltcGwgbW9kZTooV0tMYXlvdXRNb2RlKW1vZGUKIHsKLSAgICBzZWxmID0g
W3N1cGVyIGluaXRXaXRoUGFnZTpwYWdlIHZpZXc6dmlldyB2aWV3SW1wbDp3ZWJWaWV3SW1wbCBt
b2RlOm1vZGVdOworICAgIHNlbGYgPSBbc3VwZXIgaW5pdFdpdGhQYWdlOnBhZ2UuY29weVJlZigp
IHZpZXc6dmlldyB2aWV3SW1wbDp3ZWJWaWV3SW1wbC5jb3B5UmVmKCkgbW9kZTptb2RlXTsKIAog
ICAgIGlmICghc2VsZikKICAgICAgICAgcmV0dXJuIG5pbDsKIAotICAgIHBhZ2Uuc2V0VXNlRml4
ZWRMYXlvdXQoZmFsc2UpOworICAgIHBhZ2UtPnNldFVzZUZpeGVkTGF5b3V0KGZhbHNlKTsKIAog
ICAgIHJldHVybiBzZWxmOwogfQpAQCAtMTcyLDE0ICsxNzIsMTQgQEAgQGVuZAogCiBAaW1wbGVt
ZW50YXRpb24gV0tWaWV3Rml4ZWRTaXplTGF5b3V0U3RyYXRlZ3kKIAotLSAoaW5zdGFuY2V0eXBl
KWluaXRXaXRoUGFnZTooV2ViS2l0OjpXZWJQYWdlUHJveHkmKXBhZ2UgdmlldzooTlNWaWV3ICop
dmlldyB2aWV3SW1wbDooV2ViS2l0OjpXZWJWaWV3SW1wbCYpd2ViVmlld0ltcGwgbW9kZTooV0tM
YXlvdXRNb2RlKW1vZGUKKy0gKGluc3RhbmNldHlwZSlpbml0V2l0aFBhZ2U6KE5ha2VkUmVmPFdl
YktpdDo6V2ViUGFnZVByb3h5PilwYWdlIHZpZXc6KE5TVmlldyAqKXZpZXcgdmlld0ltcGw6KE5h
a2VkUmVmPFdlYktpdDo6V2ViVmlld0ltcGw+KXdlYlZpZXdJbXBsIG1vZGU6KFdLTGF5b3V0TW9k
ZSltb2RlCiB7Ci0gICAgc2VsZiA9IFtzdXBlciBpbml0V2l0aFBhZ2U6cGFnZSB2aWV3OnZpZXcg
dmlld0ltcGw6d2ViVmlld0ltcGwgbW9kZTptb2RlXTsKKyAgICBzZWxmID0gW3N1cGVyIGluaXRX
aXRoUGFnZTpwYWdlLmNvcHlSZWYoKSB2aWV3OnZpZXcgdmlld0ltcGw6d2ViVmlld0ltcGwuY29w
eVJlZigpIG1vZGU6bW9kZV07CiAKICAgICBpZiAoIXNlbGYpCiAgICAgICAgIHJldHVybiBuaWw7
CiAKLSAgICBwYWdlLnNldFVzZUZpeGVkTGF5b3V0KHRydWUpOworICAgIHBhZ2UtPnNldFVzZUZp
eGVkTGF5b3V0KHRydWUpOwogCiAgICAgcmV0dXJuIHNlbGY7CiB9CkBAIC0xOTIsMTQgKzE5Miwx
NCBAQCBAZW5kCiAKIEBpbXBsZW1lbnRhdGlvbiBXS1ZpZXdEeW5hbWljU2l6ZUNvbXB1dGVkRnJv
bVZpZXdTY2FsZUxheW91dFN0cmF0ZWd5CiAKLS0gKGluc3RhbmNldHlwZSlpbml0V2l0aFBhZ2U6
KFdlYktpdDo6V2ViUGFnZVByb3h5JilwYWdlIHZpZXc6KE5TVmlldyAqKXZpZXcgdmlld0ltcGw6
KFdlYktpdDo6V2ViVmlld0ltcGwmKXdlYlZpZXdJbXBsIG1vZGU6KFdLTGF5b3V0TW9kZSltb2Rl
CistIChpbnN0YW5jZXR5cGUpaW5pdFdpdGhQYWdlOihOYWtlZFJlZjxXZWJLaXQ6OldlYlBhZ2VQ
cm94eT4pcGFnZSB2aWV3OihOU1ZpZXcgKil2aWV3IHZpZXdJbXBsOihOYWtlZFJlZjxXZWJLaXQ6
OldlYlZpZXdJbXBsPil3ZWJWaWV3SW1wbCBtb2RlOihXS0xheW91dE1vZGUpbW9kZQogewotICAg
IHNlbGYgPSBbc3VwZXIgaW5pdFdpdGhQYWdlOnBhZ2Ugdmlldzp2aWV3IHZpZXdJbXBsOndlYlZp
ZXdJbXBsIG1vZGU6bW9kZV07CisgICAgc2VsZiA9IFtzdXBlciBpbml0V2l0aFBhZ2U6cGFnZS5j
b3B5UmVmKCkgdmlldzp2aWV3IHZpZXdJbXBsOndlYlZpZXdJbXBsLmNvcHlSZWYoKSBtb2RlOm1v
ZGVdOwogCiAgICAgaWYgKCFzZWxmKQogICAgICAgICByZXR1cm4gbmlsOwogCi0gICAgcGFnZS5z
ZXRVc2VGaXhlZExheW91dCh0cnVlKTsKKyAgICBwYWdlLT5zZXRVc2VGaXhlZExheW91dCh0cnVl
KTsKIAogICAgIHJldHVybiBzZWxmOwogfQpAQCAtMjMxLDkgKzIzMSw5IEBAIEBlbmQKIAogQGlt
cGxlbWVudGF0aW9uIFdLVmlld0R5bmFtaWNTaXplQ29tcHV0ZWRGcm9tTWluaW11bURvY3VtZW50
U2l6ZUxheW91dFN0cmF0ZWd5CiAKLS0gKGluc3RhbmNldHlwZSlpbml0V2l0aFBhZ2U6KFdlYktp
dDo6V2ViUGFnZVByb3h5JilwYWdlIHZpZXc6KE5TVmlldyAqKXZpZXcgdmlld0ltcGw6KFdlYktp
dDo6V2ViVmlld0ltcGwmKXdlYlZpZXdJbXBsIG1vZGU6KFdLTGF5b3V0TW9kZSltb2RlCistIChp
bnN0YW5jZXR5cGUpaW5pdFdpdGhQYWdlOihOYWtlZFJlZjxXZWJLaXQ6OldlYlBhZ2VQcm94eT4p
cGFnZSB2aWV3OihOU1ZpZXcgKil2aWV3IHZpZXdJbXBsOihOYWtlZFJlZjxXZWJLaXQ6OldlYlZp
ZXdJbXBsPil3ZWJWaWV3SW1wbCBtb2RlOihXS0xheW91dE1vZGUpbW9kZQogewotICAgIHNlbGYg
PSBbc3VwZXIgaW5pdFdpdGhQYWdlOnBhZ2Ugdmlldzp2aWV3IHZpZXdJbXBsOndlYlZpZXdJbXBs
IG1vZGU6bW9kZV07CisgICAgc2VsZiA9IFtzdXBlciBpbml0V2l0aFBhZ2U6cGFnZS5jb3B5UmVm
KCkgdmlldzp2aWV3IHZpZXdJbXBsOndlYlZpZXdJbXBsLmNvcHlSZWYoKSBtb2RlOm1vZGVdOwog
CiAgICAgaWYgKCFzZWxmKQogICAgICAgICByZXR1cm4gbmlsOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9tYWMvV0tET01Eb2N1bWVudC5t
bSBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvbWFjL1dLRE9N
RG9jdW1lbnQubW0KaW5kZXggMGYyNzFlNWRlN2UwYTRkNWE2ODEwNTJmMDJkZWNjMGUxYTQxNmRm
ZS4uMTY2ZTc5ZDAzMjIyZWM5ODI0MTE4YTQ3MGMwMjA0OTRhNmI1OGMwZCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9tYWMvV0tET01Eb2N1
bWVudC5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJ
L21hYy9XS0RPTURvY3VtZW50Lm1tCkBAIC0zMiw2ICszMiw3IEBACiAjaW1wb3J0IDxXZWJDb3Jl
L0hUTUxFbGVtZW50Lmg+CiAjaW1wb3J0IDxXZWJDb3JlL1RleHQuaD4KICNpbXBvcnQgPFdlYkNv
cmUvbWFya3VwLmg+CisjaW1wb3J0IDx3dGYvTmFrZWRSZWYuaD4KIAogQGludGVyZmFjZSBXS0RP
TURvY3VtZW50UGFyc2VyWWllbGRUb2tlbiA6IE5TT2JqZWN0CiAKQEAgLTQxLDEwICs0MiwxMCBA
QCBAaW1wbGVtZW50YXRpb24gV0tET01Eb2N1bWVudFBhcnNlcllpZWxkVG9rZW4gewogICAgIHN0
ZDo6dW5pcXVlX3B0cjxXZWJDb3JlOjpEb2N1bWVudFBhcnNlcllpZWxkVG9rZW4+IF90b2tlbjsK
IH0KIAotLSAoaW5zdGFuY2V0eXBlKWluaXRXaXRoRG9jdW1lbnQ6KFdlYkNvcmU6OkRvY3VtZW50
Jilkb2N1bWVudAorLSAoaW5zdGFuY2V0eXBlKWluaXRXaXRoRG9jdW1lbnQ6KE5ha2VkUmVmPFdl
YkNvcmU6OkRvY3VtZW50Pilkb2N1bWVudAogewogICAgIGlmIChzZWxmID0gW3N1cGVyIGluaXRd
KQotICAgICAgICBfdG9rZW4gPSBkb2N1bWVudC5jcmVhdGVQYXJzZXJZaWVsZFRva2VuKCk7Cisg
ICAgICAgIF90b2tlbiA9IGRvY3VtZW50LT5jcmVhdGVQYXJzZXJZaWVsZFRva2VuKCk7CiAgICAg
cmV0dXJuIHNlbGY7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9X
ZWJQYWdlL21hYy9XS0FjY2Vzc2liaWxpdHlXZWJQYWdlT2JqZWN0QmFzZS5oIGIvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1dLQWNjZXNzaWJpbGl0eVdlYlBhZ2VPYmplY3RC
YXNlLmgKaW5kZXggYWVjZDRhNTA1Yzk5ODIzMDBlMzg0MDczNjdjOTg3OTAzMzI4MDU5Yi4uYTEx
NjUyODM1MmIxZjFmNTFlM2Q0OTRkZDg0MzIyYjE3NjI4MThkMiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1dLQWNjZXNzaWJpbGl0eVdlYlBhZ2VPYmpl
Y3RCYXNlLmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1dLQWNj
ZXNzaWJpbGl0eVdlYlBhZ2VPYmplY3RCYXNlLmgKQEAgLTI3LDE5ICsyNywyMCBAQAogI2RlZmlu
ZSBXS0FjY2Vzc2liaWxpdHlXZWJQYWdlT2JqZWN0QmFzZV9oCiAKICNpbmNsdWRlIDxXZWJDb3Jl
L1BhZ2VJZGVudGlmaWVyLmg+CisjaW5jbHVkZSA8d3RmL05ha2VkUHRyLmg+CiAKIG5hbWVzcGFj
ZSBXZWJLaXQgewogY2xhc3MgV2ViUGFnZTsKIH0KIAogQGludGVyZmFjZSBXS0FjY2Vzc2liaWxp
dHlXZWJQYWdlT2JqZWN0QmFzZSA6IE5TT2JqZWN0IHsKLSAgICBXZWJLaXQ6OldlYlBhZ2UqIG1f
cGFnZTsKKyAgICBOYWtlZFB0cjxXZWJLaXQ6OldlYlBhZ2U+IG1fcGFnZTsKICAgICBXZWJDb3Jl
OjpQYWdlSWRlbnRpZmllciBtX3BhZ2VJRDsKICAgICBpZCBtX3BhcmVudDsKICAgICBib29sIG1f
aGFzTWFpbkZyYW1lUGx1Z2luOwogfQogCi0tICh2b2lkKXNldFdlYlBhZ2U6KFdlYktpdDo6V2Vi
UGFnZSopcGFnZTsKKy0gKHZvaWQpc2V0V2ViUGFnZTooTmFrZWRQdHI8V2ViS2l0OjpXZWJQYWdl
PilwYWdlOwogLSAodm9pZClzZXRSZW1vdGVQYXJlbnQ6KGlkKXBhcmVudDsKIC0gKHZvaWQpc2V0
SGFzTWFpbkZyYW1lUGx1Z2luOihib29sKWhhc1BsdWdpbjsKIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1dLQWNjZXNzaWJpbGl0eVdlYlBhZ2VPYmpl
Y3RCYXNlLm1tIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1dLQWNjZXNz
aWJpbGl0eVdlYlBhZ2VPYmplY3RCYXNlLm1tCmluZGV4IGQ4NjgyYTk4YjFlYjIyOWI4YzU5MzVh
Njg5ZTVhNzEzNjc3ODUwMTguLjA4ZmU3ZmQxNGFmMjE0MjM2MjM2Nzg5OTQyOTY2ZWQ5YzRlYWNh
ODYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9XS0Fj
Y2Vzc2liaWxpdHlXZWJQYWdlT2JqZWN0QmFzZS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvV2ViUGFnZS9tYWMvV0tBY2Nlc3NpYmlsaXR5V2ViUGFnZU9iamVjdEJhc2UubW0KQEAg
LTQ1LDcgKzQ1LDcgQEAKIAogQGltcGxlbWVudGF0aW9uIFdLQWNjZXNzaWJpbGl0eVdlYlBhZ2VP
YmplY3RCYXNlCiAKLS0gKFdlYkNvcmU6OkFYT2JqZWN0Q2FjaGUqKWF4T2JqZWN0Q2FjaGUKKy0g
KE5ha2VkUHRyPFdlYkNvcmU6OkFYT2JqZWN0Q2FjaGU+KWF4T2JqZWN0Q2FjaGUKIHsKICAgICBp
ZiAoIW1fcGFnZSkKICAgICAgICAgcmV0dXJuIG51bGxwdHI7CkBAIC05OSw3ICs5OSw3IEBAIC0g
KGlkKWFjY2Vzc2liaWxpdHlSb290T2JqZWN0V3JhcHBlcgogICAgIHJldHVybiBuaWw7CiB9CiAK
LS0gKHZvaWQpc2V0V2ViUGFnZTooV2ViS2l0OjpXZWJQYWdlKilwYWdlCistICh2b2lkKXNldFdl
YlBhZ2U6KE5ha2VkUHRyPFdlYktpdDo6V2ViUGFnZT4pcGFnZQogewogICAgIG1fcGFnZSA9IHBh
Z2U7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1BsdWdpbnMvV2ViQmFz
ZU5ldHNjYXBlUGx1Z2luVmlldy5oIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvUGx1Z2lucy9X
ZWJCYXNlTmV0c2NhcGVQbHVnaW5WaWV3LmgKaW5kZXggYzIzN2NjZjkxY2I0YmE2OTEwOTVlNDM0
YjU3ZDEzMzk3MGY1ODNlMy4uYzVhOTYxZTM3N2VlOGZlMmQwMzU4ODJhYzQ1MDE5YzY1OWFkZjZl
YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvUGx1Z2lucy9XZWJCYXNlTmV0
c2NhcGVQbHVnaW5WaWV3LmgKKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvUGx1Z2lucy9X
ZWJCYXNlTmV0c2NhcGVQbHVnaW5WaWV3LmgKQEAgLTMxLDYgKzMxLDcgQEAKIAogI2ltcG9ydCAi
V2ViTmV0c2NhcGVQbHVnaW5QYWNrYWdlLmgiCiAjaW1wb3J0IDx3dGYvRm9yd2FyZC5oPgorI2lt
cG9ydCA8d3RmL05ha2VkUHRyLmg+CiAjaW1wb3J0IDx3dGYvUmVmUHRyLmg+CiAjaW1wb3J0IDx3
dGYvUmV0YWluUHRyLmg+CiAKQEAgLTk3LDcgKzk4LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewog
LSAoV2ViRGF0YVNvdXJjZSAqKWRhdGFTb3VyY2U7CiAtIChXZWJWaWV3ICopd2ViVmlldzsKIC0g
KE5TV2luZG93ICopY3VycmVudFdpbmRvdzsKLS0gKFdlYkNvcmU6OkhUTUxQbHVnSW5FbGVtZW50
KillbGVtZW50OworLSAoTmFrZWRQdHI8V2ViQ29yZTo6SFRNTFBsdWdJbkVsZW1lbnQ+KWVsZW1l
bnQ7CiAKIC0gKHZvaWQpcmVtb3ZlVHJhY2tpbmdSZWN0OwogLSAodm9pZClyZXNldFRyYWNraW5n
UmVjdDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1BsdWdpbnMvV2ViQmFz
ZU5ldHNjYXBlUGx1Z2luVmlldy5tbSBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1BsdWdpbnMv
V2ViQmFzZU5ldHNjYXBlUGx1Z2luVmlldy5tbQppbmRleCA0Zjg5OWVkZTJjNTIyNzY1MjQxYWE5
YWNhYWI2OWVlYmRhNmFmNjlkLi45MWE4N2Y3MGQ1ZjE5ODc0MjIyNjJmMGM1NTY1NjRmNDBlMDA2
ZDFhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9QbHVnaW5zL1dlYkJhc2VO
ZXRzY2FwZVBsdWdpblZpZXcubW0KKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvUGx1Z2lu
cy9XZWJCYXNlTmV0c2NhcGVQbHVnaW5WaWV3Lm1tCkBAIC02NjQsNyArNjY0LDcgQEAgLSAoTlNX
aW5kb3cgKiljdXJyZW50V2luZG93CiAgICAgcmV0dXJuIFtzZWxmIHdpbmRvd10gPyBbc2VsZiB3
aW5kb3ddIDogW1tzZWxmIHdlYlZpZXddIGhvc3RXaW5kb3ddOwogfQogCi0tIChXZWJDb3JlOjpI
VE1MUGx1Z0luRWxlbWVudCopZWxlbWVudAorLSAoTmFrZWRQdHI8V2ViQ29yZTo6SFRNTFBsdWdJ
bkVsZW1lbnQ+KWVsZW1lbnQKIHsKICAgICByZXR1cm4gX2VsZW1lbnQuZ2V0KCk7CiB9CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJFZGl0b3JD
bGllbnQubW0gYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJFZGl0
b3JDbGllbnQubW0KaW5kZXggMzNiNjg5ZDdiMjdlZmU3NmM4ZmI4ODA1MTFhMjdlMTMwZjg1N2Iz
NC4uMjAxMzg0ZjAwMmUzNjU3YzUyN2U1NzM5NWEzMDY1ZmU4YTM2MDI4MyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViRWRpdG9yQ2xpZW50Lm1t
CisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkVkaXRvckNs
aWVudC5tbQpAQCAtNDcyLDcgKzQ3Miw3IEBAIHZvaWQgX1dlYkNyZWF0ZUZyYWdtZW50KERvY3Vt
ZW50JiBkb2N1bWVudCwgTlNBdHRyaWJ1dGVkU3RyaW5nICpzdHJpbmcsIEZyYWdtZW50CiAgICAg
ICAgIGRvY3VtZW50OmtpdCgmZG9jdW1lbnQpIGRvY3VtZW50QXR0cmlidXRlczpkb2N1bWVudEF0
dHJpYnV0ZXMgc3VicmVzb3VyY2VzOiZzdWJyZXNvdXJjZXNdOwogICAgIHJlc3VsdC5mcmFnbWVu
dCA9IGNvcmUoZnJhZ21lbnQpOwogICAgIGZvciAoV2ViUmVzb3VyY2UqIHJlc291cmNlIGluIHN1
YnJlc291cmNlcykKLSAgICAgICAgcmVzdWx0LnJlc291cmNlcy5hcHBlbmQoW3Jlc291cmNlIF9j
b3JlUmVzb3VyY2VdKTsKKyAgICAgICAgcmVzdWx0LnJlc291cmNlcy5hcHBlbmQoW3Jlc291cmNl
IF9jb3JlUmVzb3VyY2VdLmdldCgpKTsKIH0KIAogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0TGVnYWN5L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5tbSBi
L1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xp
ZW50Lm1tCmluZGV4IDI5NjJmZTBjNTE3MjMxZmVkMjc5MDdkNWRjZjJkOTNhMTAzYTMzNDMuLmVl
ZGEzYTcxMjU3MDcyODBlZTUyNjNlZTIyYzg0ZmQyZDFiMjI4NmQgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXRMZWdhY3kvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50Lm1t
CisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9h
ZGVyQ2xpZW50Lm1tCkBAIC0xMjgsNiArMTI4LDcgQEAKICNpbXBvcnQgPHBhbC9zcGkvY29jb2Ev
TlNVUkxGaWxlVHlwZU1hcHBpbmdzU1BJLmg+CiAjaW1wb3J0IDx3dGYvQmxvY2tPYmpDRXhjZXB0
aW9ucy5oPgogI2ltcG9ydCA8d3RmL01haW5UaHJlYWQuaD4KKyNpbXBvcnQgPHd0Zi9OYWtlZFB0
ci5oPgogI2ltcG9ydCA8d3RmL1JlZi5oPgogI2ltcG9ydCA8d3RmL1J1bkxvb3AuaD4KICNpbXBv
cnQgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgpAQCAtMTg3LDkgKzE4OCw5IEBAIEBpbnRlcmZhY2Ug
V2ViRnJhbWVQb2xpY3lMaXN0ZW5lciA6IE5TT2JqZWN0IDxXZWJQb2xpY3lEZWNpc2lvbkxpc3Rl
bmVyLCBXZWJGb3JtCiAgICAgV2ViQ29yZTo6UG9saWN5QWN0aW9uIF9kZWZhdWx0UG9saWN5Owog
fQogCi0tIChpZClpbml0V2l0aEZyYW1lOihXZWJDb3JlOjpGcmFtZSopZnJhbWUgaWRlbnRpZmll
cjooV2ViQ29yZTo6UG9saWN5Q2hlY2tJZGVudGlmaWVyKWlkZW50aWZpZXIgcG9saWN5RnVuY3Rp
b246KFdlYkNvcmU6OkZyYW1lUG9saWN5RnVuY3Rpb24mJilwb2xpY3lGdW5jdGlvbiBkZWZhdWx0
UG9saWN5OihXZWJDb3JlOjpQb2xpY3lBY3Rpb24pZGVmYXVsdFBvbGljeTsKKy0gKGlkKWluaXRX
aXRoRnJhbWU6KE5ha2VkUHRyPFdlYkNvcmU6OkZyYW1lPilmcmFtZSBpZGVudGlmaWVyOihXZWJD
b3JlOjpQb2xpY3lDaGVja0lkZW50aWZpZXIpaWRlbnRpZmllciBwb2xpY3lGdW5jdGlvbjooV2Vi
Q29yZTo6RnJhbWVQb2xpY3lGdW5jdGlvbiYmKXBvbGljeUZ1bmN0aW9uIGRlZmF1bHRQb2xpY3k6
KFdlYkNvcmU6OlBvbGljeUFjdGlvbilkZWZhdWx0UG9saWN5OwogI2lmIEhBVkUoQVBQX0xJTktT
KQotLSAoaWQpaW5pdFdpdGhGcmFtZTooV2ViQ29yZTo6RnJhbWUqKWZyYW1lIGlkZW50aWZpZXI6
KFdlYkNvcmU6OlBvbGljeUNoZWNrSWRlbnRpZmllcilpZGVudGlmaWVyIHBvbGljeUZ1bmN0aW9u
OihXZWJDb3JlOjpGcmFtZVBvbGljeUZ1bmN0aW9uJiYpcG9saWN5RnVuY3Rpb24gZGVmYXVsdFBv
bGljeTooV2ViQ29yZTo6UG9saWN5QWN0aW9uKWRlZmF1bHRQb2xpY3kgYXBwTGlua1VSTDooTlNV
UkwgKil1cmw7CistIChpZClpbml0V2l0aEZyYW1lOihOYWtlZFB0cjxXZWJDb3JlOjpGcmFtZT4p
ZnJhbWUgaWRlbnRpZmllcjooV2ViQ29yZTo6UG9saWN5Q2hlY2tJZGVudGlmaWVyKWlkZW50aWZp
ZXIgcG9saWN5RnVuY3Rpb246KFdlYkNvcmU6OkZyYW1lUG9saWN5RnVuY3Rpb24mJilwb2xpY3lG
dW5jdGlvbiBkZWZhdWx0UG9saWN5OihXZWJDb3JlOjpQb2xpY3lBY3Rpb24pZGVmYXVsdFBvbGlj
eSBhcHBMaW5rVVJMOihOU1VSTCAqKXVybDsKICNlbmRpZgogCiAtICh2b2lkKWludmFsaWRhdGU7
CkBAIC0xNDg1LDcgKzE0ODYsNyBAQCB2b2lkIFdlYkZyYW1lTG9hZGVyQ2xpZW50Ojp0cmFuc2l0
aW9uVG9Db21taXR0ZWRGb3JOZXdQYWdlKCkKICAgICAvLyBUaGUgZm9sbG93aW5nIGlzIGEgbm8t
b3AgZm9yIFdlYkhUTUxSZXByZXNlbnRhdGlvbiwgYnV0IGZvciBjdXN0b20gZG9jdW1lbnQgdHlw
ZXMKICAgICAvLyBsaWtlIHRoZSBvbmVzIHRoYXQgU2FmYXJpIHVzZXMgZm9yIGJvb2ttYXJrcyBp
dCBpcyB0aGUgb25seSB3YXkgdGhlIERvY3VtZW50TG9hZGVyCiAgICAgLy8gd2lsbCBnZXQgdGhl
IHByb3BlciB0aXRsZS4KLSAgICBpZiAoYXV0byogZG9jdW1lbnRMb2FkZXIgPSBbZGF0YVNvdXJj
ZSBfZG9jdW1lbnRMb2FkZXJdKQorICAgIGlmIChhdXRvIGRvY3VtZW50TG9hZGVyID0gW2RhdGFT
b3VyY2UgX2RvY3VtZW50TG9hZGVyXSkKICAgICAgICAgZG9jdW1lbnRMb2FkZXItPnNldFRpdGxl
KHsgW2RhdGFTb3VyY2UgcGFnZVRpdGxlXSwgV2ViQ29yZTo6VGV4dERpcmVjdGlvbjo6TFRSIH0p
OwogCiAgICAgaWYgKGF1dG8qIG93bmVyRWxlbWVudCA9IGNvcmVGcmFtZS0+b3duZXJFbGVtZW50
KCkpCkBAIC0yMzU5LDcgKzIzNjAsNyBAQCArICh2b2lkKWluaXRpYWxpemUKICNlbmRpZgogfQog
Ci0tIChpZClpbml0V2l0aEZyYW1lOihXZWJDb3JlOjpGcmFtZSopZnJhbWUgaWRlbnRpZmllcjoo
V2ViQ29yZTo6UG9saWN5Q2hlY2tJZGVudGlmaWVyKWlkZW50aWZpZXIgcG9saWN5RnVuY3Rpb246
KFdlYkNvcmU6OkZyYW1lUG9saWN5RnVuY3Rpb24mJilwb2xpY3lGdW5jdGlvbiBkZWZhdWx0UG9s
aWN5OihXZWJDb3JlOjpQb2xpY3lBY3Rpb24pZGVmYXVsdFBvbGljeQorLSAoaWQpaW5pdFdpdGhG
cmFtZTooTmFrZWRQdHI8V2ViQ29yZTo6RnJhbWU+KWZyYW1lIGlkZW50aWZpZXI6KFdlYkNvcmU6
OlBvbGljeUNoZWNrSWRlbnRpZmllcilpZGVudGlmaWVyIHBvbGljeUZ1bmN0aW9uOihXZWJDb3Jl
OjpGcmFtZVBvbGljeUZ1bmN0aW9uJiYpcG9saWN5RnVuY3Rpb24gZGVmYXVsdFBvbGljeTooV2Vi
Q29yZTo6UG9saWN5QWN0aW9uKWRlZmF1bHRQb2xpY3kKIHsKICAgICBzZWxmID0gW3NlbGYgaW5p
dF07CiAgICAgaWYgKCFzZWxmKQpAQCAtMjM3NCw3ICsyMzc1LDcgQEAgLSAoaWQpaW5pdFdpdGhG
cmFtZTooV2ViQ29yZTo6RnJhbWUqKWZyYW1lIGlkZW50aWZpZXI6KFdlYkNvcmU6OlBvbGljeUNo
ZWNrSWRlbnQKIH0KIAogI2lmIEhBVkUoQVBQX0xJTktTKQotLSAoaWQpaW5pdFdpdGhGcmFtZToo
V2ViQ29yZTo6RnJhbWUqKWZyYW1lIGlkZW50aWZpZXI6KFdlYkNvcmU6OlBvbGljeUNoZWNrSWRl
bnRpZmllcilpZGVudGlmaWVyIHBvbGljeUZ1bmN0aW9uOihXZWJDb3JlOjpGcmFtZVBvbGljeUZ1
bmN0aW9uJiYpcG9saWN5RnVuY3Rpb24gZGVmYXVsdFBvbGljeTooV2ViQ29yZTo6UG9saWN5QWN0
aW9uKWRlZmF1bHRQb2xpY3kgYXBwTGlua1VSTDooTlNVUkwgKilhcHBMaW5rVVJMCistIChpZClp
bml0V2l0aEZyYW1lOihOYWtlZFB0cjxXZWJDb3JlOjpGcmFtZT4pZnJhbWUgaWRlbnRpZmllcjoo
V2ViQ29yZTo6UG9saWN5Q2hlY2tJZGVudGlmaWVyKWlkZW50aWZpZXIgcG9saWN5RnVuY3Rpb246
KFdlYkNvcmU6OkZyYW1lUG9saWN5RnVuY3Rpb24mJilwb2xpY3lGdW5jdGlvbiBkZWZhdWx0UG9s
aWN5OihXZWJDb3JlOjpQb2xpY3lBY3Rpb24pZGVmYXVsdFBvbGljeSBhcHBMaW5rVVJMOihOU1VS
TCAqKWFwcExpbmtVUkwKIHsKICAgICBzZWxmID0gW3NlbGYgaW5pdFdpdGhGcmFtZTpmcmFtZSBp
ZGVudGlmaWVyOmlkZW50aWZpZXIgcG9saWN5RnVuY3Rpb246V1RGTW92ZShwb2xpY3lGdW5jdGlv
bikgZGVmYXVsdFBvbGljeTpkZWZhdWx0UG9saWN5XTsKICAgICBpZiAoIXNlbGYpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJHZW9sb2NhdGlv
bkNsaWVudC5tbSBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkdl
b2xvY2F0aW9uQ2xpZW50Lm1tCmluZGV4IDg3ZGE3MzBmZWFhZmRlZGQ3NzRlZDdlYTk2YjZmOGQw
OTNlYTlhM2QuLmQ1ZmM2NGI4MTA3ZDgyMmRiM2Q5OGNmMWFjNzNmMjFmZGMwZDE2YTIgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkdlb2xvY2F0
aW9uQ2xpZW50Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYkNvcmVTdXBwb3J0
L1dlYkdlb2xvY2F0aW9uQ2xpZW50Lm1tCkBAIC0zNyw2ICszNyw4IEBACiAjaW1wb3J0IDxXZWJD
b3JlL0ZyYW1lLmg+CiAjaW1wb3J0IDxXZWJDb3JlL0dlb2xvY2F0aW9uLmg+CiAjaW1wb3J0IDx3
dGYvQmxvY2tPYmpDRXhjZXB0aW9ucy5oPgorI2ltcG9ydCA8d3RmL05ha2VkUHRyLmg+CisjaW1w
b3J0IDx3dGYvTmFrZWRSZWYuaD4KIAogI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCiAjaW1wb3J0
IDxXZWJDb3JlL1dBS1Jlc3BvbmRlci5oPgpAQCAtNTAsNyArNTIsNyBAQCBAaW50ZXJmYWNlIFdl
Ykdlb2xvY2F0aW9uUG9saWN5TGlzdGVuZXIgOiBOU09iamVjdCA8V2ViQWxsb3dEZW55UG9saWN5
TGlzdGVuZXI+CiB7CiAgICAgUmVmUHRyPEdlb2xvY2F0aW9uPiBfZ2VvbG9jYXRpb247CiB9Ci0t
IChpZClpbml0V2l0aEdlb2xvY2F0aW9uOihHZW9sb2NhdGlvbiYpZ2VvbG9jYXRpb247CistIChp
ZClpbml0V2l0aEdlb2xvY2F0aW9uOihOYWtlZFJlZjxHZW9sb2NhdGlvbj4pZ2VvbG9jYXRpb247
CiBAZW5kCiAjZWxzZQogQGludGVyZmFjZSBXZWJHZW9sb2NhdGlvblBvbGljeUxpc3RlbmVyIDog
TlNPYmplY3QgPFdlYkFsbG93RGVueVBvbGljeUxpc3RlbmVyPgpAQCAtNTgsNyArNjAsNyBAQCBA
aW50ZXJmYWNlIFdlYkdlb2xvY2F0aW9uUG9saWN5TGlzdGVuZXIgOiBOU09iamVjdCA8V2ViQWxs
b3dEZW55UG9saWN5TGlzdGVuZXI+CiAgICAgUmVmUHRyPEdlb2xvY2F0aW9uPiBfZ2VvbG9jYXRp
b247CiAgICAgUmV0YWluUHRyPFdlYlZpZXc+IF93ZWJWaWV3OwogfQotLSAoaWQpaW5pdFdpdGhH
ZW9sb2NhdGlvbjooR2VvbG9jYXRpb24qKWdlb2xvY2F0aW9uIGZvcldlYlZpZXc6KFdlYlZpZXcq
KXdlYlZpZXc7CistIChpZClpbml0V2l0aEdlb2xvY2F0aW9uOihOYWtlZFB0cjxHZW9sb2NhdGlv
bj4pZ2VvbG9jYXRpb24gZm9yV2ViVmlldzooV2ViVmlldyopd2ViVmlldzsKIEBlbmQKICNlbmRp
ZgogCkBAIC02Nyw3ICs2OSw3IEBAIEBpbnRlcmZhY2UgV2ViR2VvbG9jYXRpb25Qcm92aWRlcklu
aXRpYWxpemF0aW9uTGlzdGVuZXIgOiBOU09iamVjdCA8V2ViR2VvbG9jYXRpCiBAcHJpdmF0ZQog
ICAgIFJlZlB0cjxHZW9sb2NhdGlvbj4gbV9nZW9sb2NhdGlvbjsKIH0KLS0gKGlkKWluaXRXaXRo
R2VvbG9jYXRpb246KEdlb2xvY2F0aW9uJilnZW9sb2NhdGlvbjsKKy0gKGlkKWluaXRXaXRoR2Vv
bG9jYXRpb246KE5ha2VkUmVmPEdlb2xvY2F0aW9uPilnZW9sb2NhdGlvbjsKIEBlbmQKICNlbmRp
ZgogCkBAIC0xNDAsMTEgKzE0MiwxMSBAQCBPcHRpb25hbDxHZW9sb2NhdGlvblBvc2l0aW9uRGF0
YT4gV2ViR2VvbG9jYXRpb25DbGllbnQ6Omxhc3RQb3NpdGlvbigpCiAjaWYgIVBMQVRGT1JNKElP
U19GQU1JTFkpCiBAaW1wbGVtZW50YXRpb24gV2ViR2VvbG9jYXRpb25Qb2xpY3lMaXN0ZW5lcgog
Ci0tIChpZClpbml0V2l0aEdlb2xvY2F0aW9uOihHZW9sb2NhdGlvbiYpZ2VvbG9jYXRpb24KKy0g
KGlkKWluaXRXaXRoR2VvbG9jYXRpb246KE5ha2VkUmVmPEdlb2xvY2F0aW9uPilnZW9sb2NhdGlv
bgogewogICAgIGlmICghKHNlbGYgPSBbc3VwZXIgaW5pdF0pKQogICAgICAgICByZXR1cm4gbmls
OwotICAgIF9nZW9sb2NhdGlvbiA9ICZnZW9sb2NhdGlvbjsKKyAgICBfZ2VvbG9jYXRpb24gPSBn
ZW9sb2NhdGlvbi5wdHIoKTsKICAgICByZXR1cm4gc2VsZjsKIH0KIApAQCAtMTYyLDEyICsxNjQs
MTIgQEAgQGVuZAogCiAjZWxzZQogQGltcGxlbWVudGF0aW9uIFdlYkdlb2xvY2F0aW9uUG9saWN5
TGlzdGVuZXIKLS0gKGlkKWluaXRXaXRoR2VvbG9jYXRpb246KEdlb2xvY2F0aW9uKilnZW9sb2Nh
dGlvbiBmb3JXZWJWaWV3OihXZWJWaWV3Kil3ZWJWaWV3CistIChpZClpbml0V2l0aEdlb2xvY2F0
aW9uOihOYWtlZFB0cjxHZW9sb2NhdGlvbj4pZ2VvbG9jYXRpb24gZm9yV2ViVmlldzooV2ViVmll
dyopd2ViVmlldwogewogICAgIHNlbGYgPSBbc3VwZXIgaW5pdF07CiAgICAgaWYgKCFzZWxmKQog
ICAgICAgICByZXR1cm4gbmlsOwotICAgIF9nZW9sb2NhdGlvbiA9IGdlb2xvY2F0aW9uOworICAg
IF9nZW9sb2NhdGlvbiA9IGdlb2xvY2F0aW9uLmdldCgpOwogICAgIF93ZWJWaWV3ID0gd2ViVmll
dzsKICAgICByZXR1cm4gc2VsZjsKIH0KQEAgLTIwNiwxMSArMjA4LDExIEBAIC0gKEJPT0wpc2hv
dWxkQ2xlYXJDYWNoZQogQGVuZAogCiBAaW1wbGVtZW50YXRpb24gV2ViR2VvbG9jYXRpb25Qcm92
aWRlckluaXRpYWxpemF0aW9uTGlzdGVuZXIKLS0gKGlkKWluaXRXaXRoR2VvbG9jYXRpb246KEdl
b2xvY2F0aW9uJilnZW9sb2NhdGlvbgorLSAoaWQpaW5pdFdpdGhHZW9sb2NhdGlvbjooTmFrZWRS
ZWY8R2VvbG9jYXRpb24+KWdlb2xvY2F0aW9uCiB7CiAgICAgc2VsZiA9IFtzdXBlciBpbml0XTsK
ICAgICBpZiAoc2VsZikKLSAgICAgICAgbV9nZW9sb2NhdGlvbiA9ICZnZW9sb2NhdGlvbjsKKyAg
ICAgICAgbV9nZW9sb2NhdGlvbiA9IGdlb2xvY2F0aW9uLnB0cigpOwogICAgIHJldHVybiBzZWxm
OwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJDb3JlU3VwcG9y
dC9XZWJJbnNwZWN0b3JDbGllbnQubW0gYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJDb3Jl
U3VwcG9ydC9XZWJJbnNwZWN0b3JDbGllbnQubW0KaW5kZXggYzQ3NmM3NTViMmU2YWE0OTZlNThi
ODQyZjIyMmU4ZjY1ZjNmZWM4My4uM2EwYTcyM2NhZThkZDI0NjI4YzBmNTllNzUzMzY1MmIyYjU0
YmE4OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViQ29yZVN1cHBvcnQv
V2ViSW5zcGVjdG9yQ2xpZW50Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYkNv
cmVTdXBwb3J0L1dlYkluc3BlY3RvckNsaWVudC5tbQpAQCAtNTQsNiArNTQsNyBAQAogI2ltcG9y
dCA8V2ViQ29yZS9TZXR0aW5ncy5oPgogI2ltcG9ydCA8V2ViS2l0TGVnYWN5L0RPTUV4dGVuc2lv
bnMuaD4KICNpbXBvcnQgPGFsZ29yaXRobT4KKyNpbXBvcnQgPHd0Zi9OYWtlZFB0ci5oPgogI2lt
cG9ydCA8d3RmL3RleHQvQmFzZTY0Lmg+CiAKIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwpAQCAt
NjgsNyArNjksNyBAQCBAaW50ZXJmYWNlIFdlYkluc3BlY3RvcldpbmRvd0NvbnRyb2xsZXIgOiBO
U1dpbmRvd0NvbnRyb2xsZXIgPE5TV2luZG93RGVsZWdhdGUsCiBAcHJpdmF0ZQogICAgIFJldGFp
blB0cjxXZWJWaWV3PiBfaW5zcGVjdGVkV2ViVmlldzsKICAgICBXZWJWaWV3KiBfZnJvbnRlbmRX
ZWJWaWV3OwotICAgIFdlYkluc3BlY3RvckZyb250ZW5kQ2xpZW50KiBfZnJvbnRlbmRDbGllbnQ7
CisgICAgTmFrZWRQdHI8V2ViSW5zcGVjdG9yRnJvbnRlbmRDbGllbnQ+IF9mcm9udGVuZENsaWVu
dDsKICAgICBXZWJJbnNwZWN0b3JDbGllbnQqIF9pbnNwZWN0b3JDbGllbnQ7CiAgICAgQk9PTCBf
YXR0YWNoZWRUb0luc3BlY3RlZFdlYlZpZXc7CiAgICAgQk9PTCBfc2hvdWxkQXR0YWNoOwpAQCAt
ODIsOSArODMsOSBAQCAtIChXZWJWaWV3ICopZnJvbnRlbmRXZWJWaWV3OwogLSAodm9pZClhdHRh
Y2g7CiAtICh2b2lkKWRldGFjaDsKIC0gKEJPT0wpYXR0YWNoZWQ7Ci0tICh2b2lkKXNldEZyb250
ZW5kQ2xpZW50OihXZWJJbnNwZWN0b3JGcm9udGVuZENsaWVudCopZnJvbnRlbmRDbGllbnQ7Ci0t
ICh2b2lkKXNldEluc3BlY3RvckNsaWVudDooV2ViSW5zcGVjdG9yQ2xpZW50KilpbnNwZWN0b3JD
bGllbnQ7Ci0tIChXZWJJbnNwZWN0b3JDbGllbnQqKWluc3BlY3RvckNsaWVudDsKKy0gKHZvaWQp
c2V0RnJvbnRlbmRDbGllbnQ6KE5ha2VkUHRyPFdlYkluc3BlY3RvckZyb250ZW5kQ2xpZW50Pilm
cm9udGVuZENsaWVudDsKKy0gKHZvaWQpc2V0SW5zcGVjdG9yQ2xpZW50OihOYWtlZFB0cjxXZWJJ
bnNwZWN0b3JDbGllbnQ+KWluc3BlY3RvckNsaWVudDsKKy0gKE5ha2VkUHRyPFdlYkluc3BlY3Rv
ckNsaWVudD4paW5zcGVjdG9yQ2xpZW50OwogLSAodm9pZClzZXRBdHRhY2hlZFdpbmRvd0hlaWdo
dDoodW5zaWduZWQpaGVpZ2h0OwogLSAodm9pZClzZXREb2NraW5nVW5hdmFpbGFibGU6KEJPT0wp
dW5hdmFpbGFibGU7CiAtICh2b2lkKWRlc3Ryb3lJbnNwZWN0b3JWaWV3OwpAQCAtMjYxLDcgKzI2
Miw3IEBAIHZvaWQgV2ViSW5zcGVjdG9yRnJvbnRlbmRDbGllbnQ6OnJlc2V0U3RhdGUoKQogewog
ICAgIEluc3BlY3RvckZyb250ZW5kQ2xpZW50TG9jYWw6OnJlc2V0U3RhdGUoKTsKIAotICAgIGF1
dG8qIGluc3BlY3RvckNsaWVudCA9IFttX2Zyb250ZW5kV2luZG93Q29udHJvbGxlciBpbnNwZWN0
b3JDbGllbnRdOworICAgIGF1dG8gaW5zcGVjdG9yQ2xpZW50ID0gW21fZnJvbnRlbmRXaW5kb3dD
b250cm9sbGVyIGluc3BlY3RvckNsaWVudF07CiAgICAgaW5zcGVjdG9yQ2xpZW50LT5kZWxldGVJ
bnNwZWN0b3JTdGFydHNBdHRhY2hlZCgpOwogICAgIGluc3BlY3RvckNsaWVudC0+ZGVsZXRlSW5z
cGVjdG9yQXR0YWNoRGlzYWJsZWQoKTsKIApAQCAtNjcyLDE3ICs2NzMsMTcgQEAgLSAoQk9PTClh
dHRhY2hlZAogICAgIHJldHVybiBfYXR0YWNoZWRUb0luc3BlY3RlZFdlYlZpZXc7CiB9CiAKLS0g
KHZvaWQpc2V0RnJvbnRlbmRDbGllbnQ6KFdlYkluc3BlY3RvckZyb250ZW5kQ2xpZW50Kilmcm9u
dGVuZENsaWVudAorLSAodm9pZClzZXRGcm9udGVuZENsaWVudDooTmFrZWRQdHI8V2ViSW5zcGVj
dG9yRnJvbnRlbmRDbGllbnQ+KWZyb250ZW5kQ2xpZW50CiB7CiAgICAgX2Zyb250ZW5kQ2xpZW50
ID0gZnJvbnRlbmRDbGllbnQ7CiB9CiAKLS0gKHZvaWQpc2V0SW5zcGVjdG9yQ2xpZW50OihXZWJJ
bnNwZWN0b3JDbGllbnQqKWluc3BlY3RvckNsaWVudAorLSAodm9pZClzZXRJbnNwZWN0b3JDbGll
bnQ6KE5ha2VkUHRyPFdlYkluc3BlY3RvckNsaWVudD4paW5zcGVjdG9yQ2xpZW50CiB7CiAgICAg
X2luc3BlY3RvckNsaWVudCA9IGluc3BlY3RvckNsaWVudDsKIH0KIAotLSAoV2ViSW5zcGVjdG9y
Q2xpZW50KilpbnNwZWN0b3JDbGllbnQKKy0gKE5ha2VkUHRyPFdlYkluc3BlY3RvckNsaWVudD4p
aW5zcGVjdG9yQ2xpZW50CiB7CiAgICAgcmV0dXJuIF9pbnNwZWN0b3JDbGllbnQ7CiB9CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJJbnNwZWN0b3IvV2ViSW5zcGVjdG9y
RnJvbnRlbmQuaCBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYkluc3BlY3Rvci9XZWJJbnNw
ZWN0b3JGcm9udGVuZC5oCmluZGV4IDdlOWQ2OGEzMmFiYjE1ZjA5NmQ3Yzc0M2ZhYmUxOGU3MGJi
NGJkN2MuLjhkYTU3NjU3NTQ2MzA1ZDAzZjg5NGZkOGNhYjQ0OGY1ZjUzYzcxMTAgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYkluc3BlY3Rvci9XZWJJbnNwZWN0b3JGcm9u
dGVuZC5oCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYkluc3BlY3Rvci9XZWJJbnNw
ZWN0b3JGcm9udGVuZC5oCkBAIC0yMywxMyArMjMsMTUgQEAKICAqIE9GIFRISVMgU09GVFdBUkUs
IEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAogICov
CiAKKyNpbXBvcnQgPHd0Zi9OYWtlZFB0ci5oPgorCiBjbGFzcyBXZWJJbnNwZWN0b3JGcm9udGVu
ZENsaWVudDsKIAogQGludGVyZmFjZSBXZWJJbnNwZWN0b3JGcm9udGVuZCA6IE5TT2JqZWN0IHsK
IEBwcml2YXRlCi0gICAgV2ViSW5zcGVjdG9yRnJvbnRlbmRDbGllbnQgKm1fZnJvbnRlbmRDbGll
bnQ7CisgICAgTmFrZWRQdHI8V2ViSW5zcGVjdG9yRnJvbnRlbmRDbGllbnQ+IG1fZnJvbnRlbmRD
bGllbnQ7CiB9Ci0tIChpZClpbml0V2l0aEZyb250ZW5kQ2xpZW50OihXZWJJbnNwZWN0b3JGcm9u
dGVuZENsaWVudCAqKWZyb250ZW5kQ2xpZW50OworLSAoaWQpaW5pdFdpdGhGcm9udGVuZENsaWVu
dDooTmFrZWRQdHI8V2ViSW5zcGVjdG9yRnJvbnRlbmRDbGllbnQ+KWZyb250ZW5kQ2xpZW50Owog
LSAodm9pZClhdHRhY2g7CiAtICh2b2lkKWRldGFjaDsKIC0gKHZvaWQpY2xvc2U7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJJbnNwZWN0b3IvV2ViSW5zcGVjdG9yRnJv
bnRlbmQubW0gYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJJbnNwZWN0b3IvV2ViSW5zcGVj
dG9yRnJvbnRlbmQubW0KaW5kZXggNTFjZTQ4ZThkNmY4NmQ1MDI5NjNhNjBmZjgxNTMzMzI1Y2I5
Njc4MC4uZTc5ODE5ODM0MWFiYTEwMGFjNDFhY2M0MzhkYTUyNzdiNDUxZDJlYiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViSW5zcGVjdG9yL1dlYkluc3BlY3RvckZyb250
ZW5kLm1tCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYkluc3BlY3Rvci9XZWJJbnNw
ZWN0b3JGcm9udGVuZC5tbQpAQCAtMzIsNyArMzIsNyBAQCB1c2luZyBuYW1lc3BhY2UgV2ViQ29y
ZTsKIAogQGltcGxlbWVudGF0aW9uIFdlYkluc3BlY3RvckZyb250ZW5kCiAKLS0gKGlkKWluaXRX
aXRoRnJvbnRlbmRDbGllbnQ6KFdlYkluc3BlY3RvckZyb250ZW5kQ2xpZW50ICopZnJvbnRlbmRD
bGllbnQKKy0gKGlkKWluaXRXaXRoRnJvbnRlbmRDbGllbnQ6KE5ha2VkUHRyPFdlYkluc3BlY3Rv
ckZyb250ZW5kQ2xpZW50Pilmcm9udGVuZENsaWVudAogewogICAgIGlmICghKHNlbGYgPSBbc3Vw
ZXIgaW5pdF0pKQogICAgICAgICByZXR1cm4gbmlsOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dExlZ2FjeS9tYWMvV2ViSW5zcGVjdG9yL1dlYk5vZGVIaWdobGlnaHQuaCBiL1NvdXJjZS9XZWJL
aXRMZWdhY3kvbWFjL1dlYkluc3BlY3Rvci9XZWJOb2RlSGlnaGxpZ2h0LmgKaW5kZXggMDA2ZTFk
MGI5NjUxYzY3YjU1M2Y1Mzc3ODkyMWRiMTgzNDcyODU5ZC4uNGRhZjMzZWI3OWFkMzMzZGRkYWM1
OWI3MDM4ZWU1ZTYxMjY1MjdiNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMv
V2ViSW5zcGVjdG9yL1dlYk5vZGVIaWdobGlnaHQuaAorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5
L21hYy9XZWJJbnNwZWN0b3IvV2ViTm9kZUhpZ2hsaWdodC5oCkBAIC0zMSw2ICszMSw3IEBACiAj
aW1wb3J0IDxXZWJLaXRMZWdhY3kvV0FLQXBwS2l0U3R1YnMuaD4KICNpbXBvcnQgPFdlYktpdExl
Z2FjeS9XQUtWaWV3Lmg+CiAjZW5kaWYKKyNpbXBvcnQgPHd0Zi9OYWtlZFB0ci5oPgogCiBAY2xh
c3MgV2ViTm9kZUhpZ2hsaWdodFZpZXc7CiAjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKQEAgLTU4
LDEwICs1OSwxMCBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgV2ViSGlnaGxpZ2h0TGF5ZXIg
Kl9oaWdobGlnaHRMYXllcjsKICNlbmRpZgogICAgIFdlYk5vZGVIaWdobGlnaHRWaWV3ICpfaGln
aGxpZ2h0VmlldzsKLSAgICBXZWJDb3JlOjpJbnNwZWN0b3JDb250cm9sbGVyKiBfaW5zcGVjdG9y
Q29udHJvbGxlcjsKKyAgICBOYWtlZFB0cjxXZWJDb3JlOjpJbnNwZWN0b3JDb250cm9sbGVyPiBf
aW5zcGVjdG9yQ29udHJvbGxlcjsKICAgICBpZCBfZGVsZWdhdGU7CiB9Ci0tIChpZClpbml0V2l0
aFRhcmdldFZpZXc6KE5TVmlldyAqKXRhcmdldFZpZXcgaW5zcGVjdG9yQ29udHJvbGxlcjooV2Vi
Q29yZTo6SW5zcGVjdG9yQ29udHJvbGxlciopaW5zcGVjdG9yQ29udHJvbGxlcjsKKy0gKGlkKWlu
aXRXaXRoVGFyZ2V0VmlldzooTlNWaWV3ICopdGFyZ2V0VmlldyBpbnNwZWN0b3JDb250cm9sbGVy
OihOYWtlZFB0cjxXZWJDb3JlOjpJbnNwZWN0b3JDb250cm9sbGVyPilpbnNwZWN0b3JDb250cm9s
bGVyOwogCiAtICh2b2lkKXNldERlbGVnYXRlOihpZClkZWxlZ2F0ZTsKIC0gKGlkKWRlbGVnYXRl
OwpAQCAtNzIsNyArNzMsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAtIChOU1ZpZXcgKil0YXJn
ZXRWaWV3OwogLSAoV2ViTm9kZUhpZ2hsaWdodFZpZXcgKiloaWdobGlnaHRWaWV3OwogCi0tIChX
ZWJDb3JlOjpJbnNwZWN0b3JDb250cm9sbGVyKilpbnNwZWN0b3JDb250cm9sbGVyOworLSAoTmFr
ZWRQdHI8V2ViQ29yZTo6SW5zcGVjdG9yQ29udHJvbGxlcj4paW5zcGVjdG9yQ29udHJvbGxlcjsK
IAogI2lmICFQTEFURk9STShJT1NfRkFNSUxZKQogLSAodm9pZClzZXROZWVkc1VwZGF0ZUluVGFy
Z2V0Vmlld1JlY3Q6KE5TUmVjdClyZWN0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2Fj
eS9tYWMvV2ViSW5zcGVjdG9yL1dlYk5vZGVIaWdobGlnaHQubW0gYi9Tb3VyY2UvV2ViS2l0TGVn
YWN5L21hYy9XZWJJbnNwZWN0b3IvV2ViTm9kZUhpZ2hsaWdodC5tbQppbmRleCAzZGI0NGQ2ZjU1
ODk5ZjA4YWM4ZGQ0MmY4OGFkZmYzZjk5YzU5OTkwLi4wYWY1NjE5YTcyNmMzNWFmODUxYWEwN2M1
YzQzZDMwMjczN2VhMjU2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJJ
bnNwZWN0b3IvV2ViTm9kZUhpZ2hsaWdodC5tbQorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21h
Yy9XZWJJbnNwZWN0b3IvV2ViTm9kZUhpZ2hsaWdodC5tbQpAQCAtODEsNyArODEsNyBAQCBAZW5k
CiAKIEBpbXBsZW1lbnRhdGlvbiBXZWJOb2RlSGlnaGxpZ2h0CiAKLS0gKGlkKWluaXRXaXRoVGFy
Z2V0VmlldzooTlNWaWV3ICopdGFyZ2V0VmlldyBpbnNwZWN0b3JDb250cm9sbGVyOihJbnNwZWN0
b3JDb250cm9sbGVyKilpbnNwZWN0b3JDb250cm9sbGVyCistIChpZClpbml0V2l0aFRhcmdldFZp
ZXc6KE5TVmlldyAqKXRhcmdldFZpZXcgaW5zcGVjdG9yQ29udHJvbGxlcjooTmFrZWRQdHI8SW5z
cGVjdG9yQ29udHJvbGxlcj4paW5zcGVjdG9yQ29udHJvbGxlcgogewogICAgIHNlbGYgPSBbc3Vw
ZXIgaW5pdF07CiAgICAgaWYgKCFzZWxmKQpAQCAtMjUwLDcgKzI1MCw3IEBAIC0gKE5TVmlldyAq
KXRhcmdldFZpZXcKICAgICByZXR1cm4gX3RhcmdldFZpZXc7CiB9CiAKLS0gKEluc3BlY3RvckNv
bnRyb2xsZXIqKWluc3BlY3RvckNvbnRyb2xsZXIKKy0gKE5ha2VkUHRyPEluc3BlY3RvckNvbnRy
b2xsZXI+KWluc3BlY3RvckNvbnRyb2xsZXIKIHsKICAgICByZXR1cm4gX2luc3BlY3RvckNvbnRy
b2xsZXI7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dl
YkFyY2hpdmUubW0gYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYkFyY2hpdmUu
bW0KaW5kZXggMGRhNzBiYmY4NTdkMDI4YzllYzRiYWQ2ZWIzMWY5ZDgzNzUxNzFjYy4uOGViZmI1
M2U5MTRiZmVlZWU3MzM4ZTY2MDM2OTc4ZWZiYTViMmJkMSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJBcmNoaXZlLm1tCisrKyBiL1NvdXJjZS9XZWJLaXRM
ZWdhY3kvbWFjL1dlYlZpZXcvV2ViQXJjaGl2ZS5tbQpAQCAtMTc1LDEzICsxNzUsMTMgQEAgLSAo
aW5zdGFuY2V0eXBlKWluaXRXaXRoTWFpblJlc291cmNlOihXZWJSZXNvdXJjZSAqKW1haW5SZXNv
dXJjZSBzdWJyZXNvdXJjZXM6KE4KIAogICAgIFZlY3RvcjxSZWY8QXJjaGl2ZVJlc291cmNlPj4g
Y29yZVJlc291cmNlczsKICAgICBmb3IgKFdlYlJlc291cmNlICpzdWJyZXNvdXJjZSBpbiBzdWJy
ZXNvdXJjZXMpCi0gICAgICAgIGNvcmVSZXNvdXJjZXMuYXBwZW5kKFtzdWJyZXNvdXJjZSBfY29y
ZVJlc291cmNlXSk7CisgICAgICAgIGNvcmVSZXNvdXJjZXMuYXBwZW5kKFtzdWJyZXNvdXJjZSBf
Y29yZVJlc291cmNlXS5nZXQoKSk7CiAKICAgICBWZWN0b3I8UmVmPExlZ2FjeVdlYkFyY2hpdmU+
PiBjb3JlQXJjaGl2ZXM7CiAgICAgZm9yIChXZWJBcmNoaXZlICpzdWJmcmFtZUFyY2hpdmUgaW4g
c3ViZnJhbWVBcmNoaXZlcykKICAgICAgICAgY29yZUFyY2hpdmVzLmFwcGVuZCgqW3N1YmZyYW1l
QXJjaGl2ZS0+X3ByaXZhdGUgY29yZUFyY2hpdmVdKTsKIAotICAgIFtfcHJpdmF0ZSBzZXRDb3Jl
QXJjaGl2ZTpMZWdhY3lXZWJBcmNoaXZlOjpjcmVhdGUoW21haW5SZXNvdXJjZSBfY29yZVJlc291
cmNlXSwgV1RGTW92ZShjb3JlUmVzb3VyY2VzKSwgV1RGTW92ZShjb3JlQXJjaGl2ZXMpKV07Cisg
ICAgW19wcml2YXRlIHNldENvcmVBcmNoaXZlOkxlZ2FjeVdlYkFyY2hpdmU6OmNyZWF0ZShbbWFp
blJlc291cmNlIF9jb3JlUmVzb3VyY2VdLmdldCgpLCBXVEZNb3ZlKGNvcmVSZXNvdXJjZXMpLCBX
VEZNb3ZlKGNvcmVBcmNoaXZlcykpXTsKICAgICByZXR1cm4gc2VsZjsKIH0KIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJEYXRhU291cmNlLm1tIGIvU291
cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJEYXRhU291cmNlLm1tCmluZGV4IDkxZTk0
YmZmMGQyZGJlZjE2N2RjZTU0YThmMTdhNWIzOTRkODI4NGEuLmJiMDI3NjkzYzI1YTZiYzYzODY0
M2QwZWVjMjY0YTQyNTBlNDNiNzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFj
L1dlYlZpZXcvV2ViRGF0YVNvdXJjZS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9X
ZWJWaWV3L1dlYkRhdGFTb3VyY2UubW0KQEAgLTYxLDYgKzYxLDcgQEAKICNpbXBvcnQgPFdlYktp
dExlZ2FjeS9ET01Qcml2YXRlLmg+CiAjaW1wb3J0IDx3dGYvQXNzZXJ0aW9ucy5oPgogI2ltcG9y
dCA8d3RmL01haW5UaHJlYWQuaD4KKyNpbXBvcnQgPHd0Zi9OYWtlZFB0ci5oPgogI2ltcG9ydCA8
d3RmL1JlZlB0ci5oPgogI2ltcG9ydCA8d3RmL1JldGFpblB0ci5oPgogI2ltcG9ydCA8d3RmL1J1
bkxvb3AuaD4KQEAgLTM5NCw3ICszOTUsNyBAQCAtICh2b2lkKV9tYWtlUmVwcmVzZW50YXRpb24K
ICNlbmRpZgogfQogCi0tIChXZWJDb3JlOjpEb2N1bWVudExvYWRlciopX2RvY3VtZW50TG9hZGVy
CistIChOYWtlZFB0cjxXZWJDb3JlOjpEb2N1bWVudExvYWRlcj4pX2RvY3VtZW50TG9hZGVyCiB7
CiAgICAgcmV0dXJuIHRvUHJpdmF0ZShfcHJpdmF0ZSktPmxvYWRlci5wdHIoKTsKIH0KQEAgLTU2
NCw3ICs1NjUsNyBAQCAtIChXZWJSZXNvdXJjZSAqKXN1YnJlc291cmNlRm9yVVJMOihOU1VSTCAq
KVVSTAogCiAtICh2b2lkKWFkZFN1YnJlc291cmNlOihXZWJSZXNvdXJjZSAqKXN1YnJlc291cmNl
CiB7ICAgIAotICAgIHRvUHJpdmF0ZShfcHJpdmF0ZSktPmxvYWRlci0+YWRkQXJjaGl2ZVJlc291
cmNlKFtzdWJyZXNvdXJjZSBfY29yZVJlc291cmNlXSk7CisgICAgdG9Qcml2YXRlKF9wcml2YXRl
KS0+bG9hZGVyLT5hZGRBcmNoaXZlUmVzb3VyY2UoW3N1YnJlc291cmNlIF9jb3JlUmVzb3VyY2Vd
LmdldCgpKTsKIH0KIAogQGVuZApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMv
V2ViVmlldy9XZWJEYXRhU291cmNlSW50ZXJuYWwuaCBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFj
L1dlYlZpZXcvV2ViRGF0YVNvdXJjZUludGVybmFsLmgKaW5kZXggODBlODExMGY1NGZiMmQyODhh
M2I3MTk0ODdlY2I3ZGZkODQwYzJiMi4uYjFkODU0ZDBiZDRlMTE2MTFhNGQxNWVlNzFiMjY3MWUx
M2FhZDNhZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJE
YXRhU291cmNlSW50ZXJuYWwuaAorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3
L1dlYkRhdGFTb3VyY2VJbnRlcm5hbC5oCkBAIC0yOCw2ICsyOCw3IEBACiAKICNpbXBvcnQgIldl
YkRhdGFTb3VyY2VQcml2YXRlLmgiCiAjaW1wb3J0IDx3dGYvRm9yd2FyZC5oPgorI2ltcG9ydCA8
d3RmL05ha2VkUHRyLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIGNsYXNzIERvY3VtZW50TG9h
ZGVyOwpAQCAtNTcsNyArNTgsNyBAQCBjbGFzcyBXZWJEb2N1bWVudExvYWRlck1hYzsKIC0gKHZv
aWQpX3JlY2VpdmVkRGF0YTooTlNEYXRhICopZGF0YTsKIC0gKHZvaWQpX3JldmVydFRvUHJvdmlz
aW9uYWxTdGF0ZTsKIC0gKHZvaWQpX3NldE1haW5Eb2N1bWVudEVycm9yOihOU0Vycm9yICopZXJy
b3I7Ci0tIChXZWJDb3JlOjpEb2N1bWVudExvYWRlciopX2RvY3VtZW50TG9hZGVyOworLSAoTmFr
ZWRQdHI8V2ViQ29yZTo6RG9jdW1lbnRMb2FkZXI+KV9kb2N1bWVudExvYWRlcjsKICNpZiBVU0Uo
UVVJQ0tfTE9PSykKIEBwcm9wZXJ0eSAobm9uYXRvbWljLCBjb3B5LCBzZXR0ZXI9X3NldFF1aWNr
TG9va0NvbnRlbnQ6KSBOU0RpY3Rpb25hcnkgKl9xdWlja0xvb2tDb250ZW50OwogQHByb3BlcnR5
IChub25hdG9taWMsIHNldHRlcj1fc2V0UXVpY2tMb29rUHJldmlld0xvYWRlckNsaWVudDopIFdl
YkNvcmU6OkxlZ2FjeVByZXZpZXdMb2FkZXJDbGllbnQqIF9xdWlja0xvb2tQcmV2aWV3TG9hZGVy
Q2xpZW50OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJG
cmFtZS5tbSBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViRnJhbWUubW0KaW5k
ZXggMzRmMjgxZDE3MDQ1ZDVkZWQxNDZhMWUzMTlhMmZiNjMwZDBiMmMzZi4uMGNiNmFmNjkyMWE1
NWFmYTYxMGU1OTg0YzM3OTlmM2MxYWVhN2U2NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExl
Z2FjeS9tYWMvV2ViVmlldy9XZWJGcmFtZS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21h
Yy9XZWJWaWV3L1dlYkZyYW1lLm1tCkBAIC0yOTEsNyArMjkxLDcgQEAgV2ViVmlldyAqa2l0KFdl
YkNvcmU6OlBhZ2UqIHBhZ2UpCiAKIFdlYlZpZXcgKmdldFdlYlZpZXcoV2ViRnJhbWUgKndlYkZy
YW1lKQogewotICAgIGF1dG8qIGNvcmVGcmFtZSA9IGNvcmUod2ViRnJhbWUpOworICAgIGF1dG8g
Y29yZUZyYW1lID0gY29yZSh3ZWJGcmFtZSk7CiAgICAgaWYgKCFjb3JlRnJhbWUpCiAgICAgICAg
IHJldHVybiBuaWw7CiAgICAgcmV0dXJuIGtpdChjb3JlRnJhbWUtPnBhZ2UoKSk7CkBAIC00MzEs
OCArNDMxLDggQEAgLSAodm9pZClfdXBkYXRlQmFja2dyb3VuZEFuZFVwZGF0ZXNXaGlsZU9mZnNj
cmVlbgogICAgIENHQ29sb3JSZWYgYmFja2dyb3VuZENvbG9yID0gW3dlYlZpZXcgYmFja2dyb3Vu
ZENvbG9yXTsKICNlbmRpZgogCi0gICAgYXV0byogY29yZUZyYW1lID0gX3ByaXZhdGUtPmNvcmVG
cmFtZTsKLSAgICBmb3IgKGF1dG8qIGZyYW1lID0gY29yZUZyYW1lOyBmcmFtZTsgZnJhbWUgPSBm
cmFtZS0+dHJlZSgpLnRyYXZlcnNlTmV4dChjb3JlRnJhbWUpKSB7CisgICAgYXV0byBjb3JlRnJh
bWUgPSBfcHJpdmF0ZS0+Y29yZUZyYW1lOworICAgIGZvciAoYXV0byBmcmFtZSA9IGNvcmVGcmFt
ZTsgZnJhbWU7IGZyYW1lID0gZnJhbWUtPnRyZWUoKS50cmF2ZXJzZU5leHQoY29yZUZyYW1lKSkg
ewogICAgICAgICAvLyBEb24ndCBjYWxsIHNldERyYXdzQmFja2dyb3VuZDpZRVMgaGVyZSBiZWNh
dXNlIGl0IG1heSBiZSBOTyBiZWNhdXNlIG9mIGEgbG9hZAogICAgICAgICAvLyBpbiBwcm9ncmVz
czsgV2ViRnJhbWVMb2FkZXJDbGllbnQga2VlcHMgaXQgc2V0IHRvIE5PIGR1cmluZyB0aGUgbG9h
ZCBwcm9jZXNzLgogICAgICAgICBXZWJGcmFtZSAqd2ViRnJhbWUgPSBraXQoZnJhbWUpOwpAQCAt
NDY5LDggKzQ2OSw4IEBAIC0gKGlkKV9pbnRlcm5hbExvYWREZWxlZ2F0ZQogCiAtICh2b2lkKV91
bm1hcmtBbGxCYWRHcmFtbWFyCiB7Ci0gICAgYXV0byogY29yZUZyYW1lID0gX3ByaXZhdGUtPmNv
cmVGcmFtZTsKLSAgICBmb3IgKGF1dG8qIGZyYW1lID0gY29yZUZyYW1lOyBmcmFtZTsgZnJhbWUg
PSBmcmFtZS0+dHJlZSgpLnRyYXZlcnNlTmV4dChjb3JlRnJhbWUpKSB7CisgICAgYXV0byBjb3Jl
RnJhbWUgPSBfcHJpdmF0ZS0+Y29yZUZyYW1lOworICAgIGZvciAoYXV0byBmcmFtZSA9IGNvcmVG
cmFtZTsgZnJhbWU7IGZyYW1lID0gZnJhbWUtPnRyZWUoKS50cmF2ZXJzZU5leHQoY29yZUZyYW1l
KSkgewogICAgICAgICBpZiAoYXV0byogZG9jdW1lbnQgPSBmcmFtZS0+ZG9jdW1lbnQoKSkKICAg
ICAgICAgICAgIGRvY3VtZW50LT5tYXJrZXJzKCkucmVtb3ZlTWFya2VycyhXZWJDb3JlOjpEb2N1
bWVudE1hcmtlcjo6R3JhbW1hcik7CiAgICAgfQpAQCAtNDc5LDggKzQ3OSw4IEBAIC0gKHZvaWQp
X3VubWFya0FsbEJhZEdyYW1tYXIKIC0gKHZvaWQpX3VubWFya0FsbE1pc3NwZWxsaW5ncwogewog
I2lmICFQTEFURk9STShJT1NfRkFNSUxZKQotICAgIGF1dG8qIGNvcmVGcmFtZSA9IF9wcml2YXRl
LT5jb3JlRnJhbWU7Ci0gICAgZm9yIChhdXRvKiBmcmFtZSA9IGNvcmVGcmFtZTsgZnJhbWU7IGZy
YW1lID0gZnJhbWUtPnRyZWUoKS50cmF2ZXJzZU5leHQoY29yZUZyYW1lKSkgeworICAgIGF1dG8g
Y29yZUZyYW1lID0gX3ByaXZhdGUtPmNvcmVGcmFtZTsKKyAgICBmb3IgKGF1dG8gZnJhbWUgPSBj
b3JlRnJhbWU7IGZyYW1lOyBmcmFtZSA9IGZyYW1lLT50cmVlKCkudHJhdmVyc2VOZXh0KGNvcmVG
cmFtZSkpIHsKICAgICAgICAgaWYgKGF1dG8qIGRvY3VtZW50ID0gZnJhbWUtPmRvY3VtZW50KCkp
CiAgICAgICAgICAgICBkb2N1bWVudC0+bWFya2VycygpLnJlbW92ZU1hcmtlcnMoV2ViQ29yZTo6
RG9jdW1lbnRNYXJrZXI6OlNwZWxsaW5nKTsKICAgICB9CkBAIC00OTMsNyArNDkzLDcgQEAgLSAo
Qk9PTClfaGFzU2VsZWN0aW9uCiAKICAgICAvLyBvcHRpbWl6YXRpb24gZm9yIGNvbW1vbiBjYXNl
IHRvIGF2b2lkIGNyZWF0aW5nIHBvdGVudGlhbGx5IGxhcmdlIHNlbGVjdGlvbiBzdHJpbmcKICAg
ICBpZiAoW2RvY3VtZW50VmlldyBpc0tpbmRPZkNsYXNzOltXZWJIVE1MVmlldyBjbGFzc11dKQot
ICAgICAgICBpZiAoYXV0byogY29yZUZyYW1lID0gX3ByaXZhdGUtPmNvcmVGcmFtZSkKKyAgICAg
ICAgaWYgKGF1dG8gY29yZUZyYW1lID0gX3ByaXZhdGUtPmNvcmVGcmFtZSkKICAgICAgICAgICAg
IHJldHVybiBjb3JlRnJhbWUtPnNlbGVjdGlvbigpLmlzUmFuZ2UoKTsKIAogICAgIGlmIChbZG9j
dW1lbnRWaWV3IGNvbmZvcm1zVG9Qcm90b2NvbDpAcHJvdG9jb2woV2ViRG9jdW1lbnRUZXh0KV0p
CkBAIC01MTQsOCArNTE0LDggQEAgLSAoQk9PTClfYXRNb3N0T25lRnJhbWVIYXNTZWxlY3Rpb24K
IHsKICAgICAvLyBGSVhNRTogNDE4NjA1MCBpcyBvbmUga25vd24gY2FzZSB0aGF0IG1ha2VzIHRo
aXMgZGVidWcgY2hlY2sgZmFpbC4KICAgICBCT09MIGZvdW5kID0gTk87Ci0gICAgYXV0byogY29y
ZUZyYW1lID0gX3ByaXZhdGUtPmNvcmVGcmFtZTsKLSAgICBmb3IgKGF1dG8qIGZyYW1lID0gY29y
ZUZyYW1lOyBmcmFtZTsgZnJhbWUgPSBmcmFtZS0+dHJlZSgpLnRyYXZlcnNlTmV4dChjb3JlRnJh
bWUpKSB7CisgICAgYXV0byBjb3JlRnJhbWUgPSBfcHJpdmF0ZS0+Y29yZUZyYW1lOworICAgIGZv
ciAoYXV0byBmcmFtZSA9IGNvcmVGcmFtZTsgZnJhbWU7IGZyYW1lID0gZnJhbWUtPnRyZWUoKS50
cmF2ZXJzZU5leHQoY29yZUZyYW1lKSkgewogICAgICAgICBpZiAoW2tpdChmcmFtZSkgX2hhc1Nl
bGVjdGlvbl0pIHsKICAgICAgICAgICAgIGlmIChmb3VuZCkKICAgICAgICAgICAgICAgICByZXR1
cm4gTk87CkBAIC01MjgsOCArNTI4LDggQEAgLSAoQk9PTClfYXRNb3N0T25lRnJhbWVIYXNTZWxl
Y3Rpb24KIAogLSAoV2ViRnJhbWUgKilfZmluZEZyYW1lV2l0aFNlbGVjdGlvbgogewotICAgIGF1
dG8qIGNvcmVGcmFtZSA9IF9wcml2YXRlLT5jb3JlRnJhbWU7Ci0gICAgZm9yIChhdXRvKiBmcmFt
ZSA9IGNvcmVGcmFtZTsgZnJhbWU7IGZyYW1lID0gZnJhbWUtPnRyZWUoKS50cmF2ZXJzZU5leHQo
Y29yZUZyYW1lKSkgeworICAgIGF1dG8gY29yZUZyYW1lID0gX3ByaXZhdGUtPmNvcmVGcmFtZTsK
KyAgICBmb3IgKGF1dG8gZnJhbWUgPSBjb3JlRnJhbWU7IGZyYW1lOyBmcmFtZSA9IGZyYW1lLT50
cmVlKCkudHJhdmVyc2VOZXh0KGNvcmVGcmFtZSkpIHsKICAgICAgICAgV2ViRnJhbWUgKndlYkZy
YW1lID0ga2l0KGZyYW1lKTsKICAgICAgICAgaWYgKFt3ZWJGcmFtZSBfaGFzU2VsZWN0aW9uXSkK
ICAgICAgICAgICAgIHJldHVybiB3ZWJGcmFtZTsKQEAgLTc2NSw3ICs3NjUsNyBAQCAtICh2b2lk
KV9zY3JvbGxET01SYW5nZVRvVmlzaWJsZTooRE9NUmFuZ2UgKilyYW5nZSB3aXRoSW5zZXQ6KENH
RmxvYXQpaW5zZXQKICAgICAgICAgICAgIHN0YXJ0Tm9kZS0+cmVuZGVyZXIoKS0+c2Nyb2xsUmVj
dFRvVmlzaWJsZShXZWJDb3JlOjplbmNsb3NpbmdJbnRSZWN0KHJhbmdlUmVjdCksIGluc2lkZUZp
eGVkLCB7IFdlYkNvcmU6OlNlbGVjdGlvblJldmVhbE1vZGU6OlJldmVhbCwgV2ViQ29yZTo6U2Ny
b2xsQWxpZ25tZW50OjphbGlnblRvRWRnZUlmTmVlZGVkLCBXZWJDb3JlOjpTY3JvbGxBbGlnbm1l
bnQ6OmFsaWduVG9FZGdlSWZOZWVkZWQsIFdlYkNvcmU6OlNob3VsZEFsbG93Q3Jvc3NPcmlnaW5T
Y3JvbGxpbmc6Olllc30pOwogICAgICAgICAgICAgbGF5ZXItPnNldEFkanVzdEZvcklPU0NhcmV0
V2hlblNjcm9sbGluZyhmYWxzZSk7CiAKLSAgICAgICAgICAgIGF1dG8qIGNvcmVGcmFtZSA9IGNv
cmUoc2VsZik7CisgICAgICAgICAgICBhdXRvIGNvcmVGcmFtZSA9IGNvcmUoc2VsZik7CiAgICAg
ICAgICAgICBpZiAoY29yZUZyYW1lKSB7CiAgICAgICAgICAgICAgICAgYXV0byYgZnJhbWVTZWxl
Y3Rpb24gPSBjb3JlRnJhbWUtPnNlbGVjdGlvbigpOwogICAgICAgICAgICAgICAgIGZyYW1lU2Vs
ZWN0aW9uLnNldENhcmV0UmVjdE5lZWRzVXBkYXRlKCk7CkBAIC04NzAsNyArODcwLDcgQEAgLSAo
RE9NUmFuZ2UgKilfbWFya0RPTVJhbmdlCiAKIC0gKERPTURvY3VtZW50RnJhZ21lbnQgKilfZG9j
dW1lbnRGcmFnbWVudFdpdGhNYXJrdXBTdHJpbmc6KE5TU3RyaW5nICopbWFya3VwU3RyaW5nIGJh
c2VVUkxTdHJpbmc6KE5TU3RyaW5nICopYmFzZVVSTFN0cmluZwogewotICAgIGF1dG8qIGZyYW1l
ID0gX3ByaXZhdGUtPmNvcmVGcmFtZTsKKyAgICBhdXRvIGZyYW1lID0gX3ByaXZhdGUtPmNvcmVG
cmFtZTsKICAgICBpZiAoIWZyYW1lKQogICAgICAgICByZXR1cm4gbmlsOwogCkBAIC04ODMsNyAr
ODgzLDcgQEAgLSAoRE9NRG9jdW1lbnRGcmFnbWVudCAqKV9kb2N1bWVudEZyYWdtZW50V2l0aE1h
cmt1cFN0cmluZzooTlNTdHJpbmcgKiltYXJrdXBTdHIKIAogLSAoRE9NRG9jdW1lbnRGcmFnbWVu
dCAqKV9kb2N1bWVudEZyYWdtZW50V2l0aE5vZGVzQXNQYXJhZ3JhcGhzOihOU0FycmF5ICopbm9k
ZXMKIHsKLSAgICBhdXRvKiBmcmFtZSA9IF9wcml2YXRlLT5jb3JlRnJhbWU7CisgICAgYXV0byBm
cmFtZSA9IF9wcml2YXRlLT5jb3JlRnJhbWU7CiAgICAgaWYgKCFmcmFtZSkKICAgICAgICAgcmV0
dXJuIG5pbDsKIApAQCAtOTcwLDcgKzk3MCw3IEBAIC0gKHZvaWQpX2RyYWdTb3VyY2VFbmRlZEF0
OihOU1BvaW50KXdpbmRvd0xvYyBvcGVyYXRpb246KE5TRHJhZ09wZXJhdGlvbilvcGVyYXRpCiAK
IC0gKEJPT0wpX2NhblByb3ZpZGVEb2N1bWVudFNvdXJjZQogewotICAgIGF1dG8qIGZyYW1lID0g
X3ByaXZhdGUtPmNvcmVGcmFtZTsKKyAgICBhdXRvIGZyYW1lID0gX3ByaXZhdGUtPmNvcmVGcmFt
ZTsKICAgICBTdHJpbmcgbWltZVR5cGUgPSBmcmFtZS0+ZG9jdW1lbnQoKS0+bG9hZGVyKCktPndy
aXRlcigpLm1pbWVUeXBlKCk7CiAgICAgYXV0byogcGx1Z2luRGF0YSA9IGZyYW1lLT5wYWdlKCkg
PyAmZnJhbWUtPnBhZ2UoKS0+cGx1Z2luRGF0YSgpIDogMDsKIApAQCAtMTAwNiw3ICsxMDA2LDcg
QEAgQGltcGxlbWVudGF0aW9uIFdlYkZyYW1lIChXZWJQcml2YXRlKQogLy8gRklYTUU6IFRoaXMg
ZXhpc3RzIG9ubHkgYXMgYSBjb252ZW5pZW5jZSBmb3IgU2FmYXJpLCBjb25zaWRlciBtb3Zpbmcg
dGhlcmUuCiAtIChCT09MKV9pc0Rlc2NlbmRhbnRPZkZyYW1lOihXZWJGcmFtZSAqKWFuY2VzdG9y
CiB7Ci0gICAgYXV0byogY29yZUZyYW1lID0gX3ByaXZhdGUtPmNvcmVGcmFtZTsKKyAgICBhdXRv
IGNvcmVGcmFtZSA9IF9wcml2YXRlLT5jb3JlRnJhbWU7CiAgICAgcmV0dXJuIGNvcmVGcmFtZSAm
JiBjb3JlRnJhbWUtPnRyZWUoKS5pc0Rlc2NlbmRhbnRPZihjb3JlKGFuY2VzdG9yKSk7CiB9CiAK
QEAgLTExNzEsNyArMTE3MSw3IEBAIC0gKHVuc2lnbmVkKV9wZW5kaW5nRnJhbWVVbmxvYWRFdmVu
dENvdW50CiAjaWYgRU5BQkxFKE5FVFNDQVBFX1BMVUdJTl9BUEkpCiAtICh2b2lkKV9yZWN1cnNp
dmVfcmVzdW1lTnVsbEV2ZW50c0ZvckFsbE5ldHNjYXBlUGx1Z2lucwogewotICAgIGF1dG8qIGNv
cmVGcmFtZSA9IGNvcmUoc2VsZik7CisgICAgYXV0byBjb3JlRnJhbWUgPSBjb3JlKHNlbGYpOwog
ICAgIGZvciAoYXV0byogZnJhbWUgPSBjb3JlRnJhbWU7IGZyYW1lOyBmcmFtZSA9IGZyYW1lLT50
cmVlKCkudHJhdmVyc2VOZXh0KGNvcmVGcmFtZSkpIHsKICAgICAgICAgTlNWaWV3IDxXZWJEb2N1
bWVudFZpZXc+ICpkb2N1bWVudFZpZXcgPSBbW2tpdChmcmFtZSkgZnJhbWVWaWV3XSBkb2N1bWVu
dFZpZXddOwogICAgICAgICBpZiAoW2RvY3VtZW50VmlldyBpc0tpbmRPZkNsYXNzOltXZWJIVE1M
VmlldyBjbGFzc11dKQpAQCAtMTE4MSw3ICsxMTgxLDcgQEAgLSAodm9pZClfcmVjdXJzaXZlX3Jl
c3VtZU51bGxFdmVudHNGb3JBbGxOZXRzY2FwZVBsdWdpbnMKIAogLSAodm9pZClfcmVjdXJzaXZl
X3BhdXNlTnVsbEV2ZW50c0ZvckFsbE5ldHNjYXBlUGx1Z2lucwogewotICAgIGF1dG8qIGNvcmVG
cmFtZSA9IGNvcmUoc2VsZik7CisgICAgYXV0byBjb3JlRnJhbWUgPSBjb3JlKHNlbGYpOwogICAg
IGZvciAoYXV0byogZnJhbWUgPSBjb3JlRnJhbWU7IGZyYW1lOyBmcmFtZSA9IGZyYW1lLT50cmVl
KCkudHJhdmVyc2VOZXh0KGNvcmVGcmFtZSkpIHsKICAgICAgICAgTlNWaWV3IDxXZWJEb2N1bWVu
dFZpZXc+ICpkb2N1bWVudFZpZXcgPSBbW2tpdChmcmFtZSkgZnJhbWVWaWV3XSBkb2N1bWVudFZp
ZXddOwogICAgICAgICBpZiAoW2RvY3VtZW50VmlldyBpc0tpbmRPZkNsYXNzOltXZWJIVE1MVmll
dyBjbGFzc11dKQpAQCAtMTIwMCw3ICsxMjAwLDcgQEAgLSAodW5zaWduZWQpZm9ybUVsZW1lbnRz
Q2hhcmFjdGVyQ291bnQKIC0gKHZvaWQpc2V0VGltZW91dHNQYXVzZWQ6KEJPT0wpZmxhZwogewog
ICAgIGlmIChbc2VsZiBfd2ViSFRNTERvY3VtZW50Vmlld10pIHsKLSAgICAgICAgaWYgKGF1dG8q
IGNvcmVGcmFtZSA9IF9wcml2YXRlLT5jb3JlRnJhbWUpCisgICAgICAgIGlmIChhdXRvIGNvcmVG
cmFtZSA9IF9wcml2YXRlLT5jb3JlRnJhbWUpCiAgICAgICAgICAgICBjb3JlRnJhbWUtPnNldFRp
bWVyc1BhdXNlZChmbGFnKTsKICAgICB9CiB9CkBAIC0xMjIwLDcgKzEyMjAsNyBAQCAtICh2b2lk
KXNldFBsdWdpbnNQYXVzZWQ6KEJPT0wpZmxhZwogLSAodm9pZClwcmVwYXJlRm9yUGF1c2UKIHsK
ICAgICBpZiAoW3NlbGYgX3dlYkhUTUxEb2N1bWVudFZpZXddKSB7Ci0gICAgICAgIGlmIChhdXRv
KiBjb3JlRnJhbWUgPSBfcHJpdmF0ZS0+Y29yZUZyYW1lKQorICAgICAgICBpZiAoYXV0byBjb3Jl
RnJhbWUgPSBfcHJpdmF0ZS0+Y29yZUZyYW1lKQogICAgICAgICAgICAgY29yZUZyYW1lLT5kaXNw
YXRjaFBhZ2VIaWRlRXZlbnRCZWZvcmVQYXVzZSgpOwogICAgIH0KIH0KQEAgLTEyMjgsNyArMTIy
OCw3IEBAIC0gKHZvaWQpcHJlcGFyZUZvclBhdXNlCiAtICh2b2lkKXJlc3VtZUZyb21QYXVzZQog
ewogICAgIGlmIChbc2VsZiBfd2ViSFRNTERvY3VtZW50Vmlld10pIHsKLSAgICAgICAgaWYgKGF1
dG8qIGNvcmVGcmFtZSA9IF9wcml2YXRlLT5jb3JlRnJhbWUpCisgICAgICAgIGlmIChhdXRvIGNv
cmVGcmFtZSA9IF9wcml2YXRlLT5jb3JlRnJhbWUpCiAgICAgICAgICAgICBjb3JlRnJhbWUtPmRp
c3BhdGNoUGFnZVNob3dFdmVudEJlZm9yZVJlc3VtZSgpOwogICAgIH0KIH0KQEAgLTE5MDcsNyAr
MTkwNyw3IEBAIC0gKHZvaWQpcmVzZXRUZXh0QXV0b3NpemluZ0JlZm9yZUxheW91dAogICAgIGlm
ICghW3NlbGYgX3dlYkhUTUxEb2N1bWVudFZpZXddKQogICAgICAgICByZXR1cm47CiAgICAgCi0g
ICAgYXV0byogY29yZUZyYW1lID0gY29yZShzZWxmKTsKKyAgICBhdXRvIGNvcmVGcmFtZSA9IGNv
cmUoc2VsZik7CiAgICAgZm9yIChhdXRvKiBmcmFtZSA9IGNvcmVGcmFtZTsgZnJhbWU7IGZyYW1l
ID0gZnJhbWUtPnRyZWUoKS50cmF2ZXJzZU5leHQoY29yZUZyYW1lKSkgewogICAgICAgICBXZWJD
b3JlOjpEb2N1bWVudCogZG9jID0gZnJhbWUtPmRvY3VtZW50KCk7CiAgICAgICAgIGlmICghZG9j
IHx8ICFkb2MtPnJlbmRlclZpZXcoKSkKQEAgLTIxMTQsNyArMjExNCw3IEBAIC0gKE5TU3RyaW5n
ICopX3N0cmluZ0J5RXZhbHVhdGluZ0phdmFTY3JpcHRGcm9tU3RyaW5nOihOU1N0cmluZyAqKXN0
cmluZyB3aXRoR2xvCiAKIC0gKEpTR2xvYmFsQ29udGV4dFJlZilfZ2xvYmFsQ29udGV4dEZvclNj
cmlwdFdvcmxkOihXZWJTY3JpcHRXb3JsZCAqKXdvcmxkCiB7Ci0gICAgYXV0byogY29yZUZyYW1l
ID0gX3ByaXZhdGUtPmNvcmVGcmFtZTsKKyAgICBhdXRvIGNvcmVGcmFtZSA9IF9wcml2YXRlLT5j
b3JlRnJhbWU7CiAgICAgaWYgKCFjb3JlRnJhbWUpCiAgICAgICAgIHJldHVybiAwOwogICAgIGF1
dG8qIGNvcmVXb3JsZCA9IGNvcmUod29ybGQpOwpAQCAtMjE4Nyw3ICsyMTg3LDcgQEAgLSAodm9p
ZClzZXRFbmhhbmNlZEFjY2Vzc2liaWxpdHk6KEJPT0wpZW5hYmxlCiAKIC0gKE5TU3RyaW5nKilf
bGF5ZXJUcmVlQXNUZXh0CiB7Ci0gICAgYXV0byogY29yZUZyYW1lID0gX3ByaXZhdGUtPmNvcmVG
cmFtZTsKKyAgICBhdXRvIGNvcmVGcmFtZSA9IF9wcml2YXRlLT5jb3JlRnJhbWU7CiAgICAgaWYg
KCFjb3JlRnJhbWUpCiAgICAgICAgIHJldHVybiBAIiI7CiAKQEAgLTIyMzAsNyArMjIzMCw3IEBA
IC0gKGlkKWFjY2Vzc2liaWxpdHlSb290CiAKIC0gKHZvaWQpX2NsZWFyT3BlbmVyCiB7Ci0gICAg
YXV0byogY29yZUZyYW1lID0gX3ByaXZhdGUtPmNvcmVGcmFtZTsKKyAgICBhdXRvIGNvcmVGcmFt
ZSA9IF9wcml2YXRlLT5jb3JlRnJhbWU7CiAgICAgaWYgKGNvcmVGcmFtZSkKICAgICAgICAgY29y
ZUZyYW1lLT5sb2FkZXIoKS5zZXRPcGVuZXIoMCk7CiB9CkBAIC0yMzA0LDcgKzIzMDQsNyBAQCAt
IChET01Eb2N1bWVudEZyYWdtZW50ICopX2RvY3VtZW50RnJhZ21lbnRGb3JJbWFnZURhdGE6KE5T
RGF0YSAqKWRhdGEgd2l0aFJlbGF0aQogCiAtIChCT09MKWZvY3VzZWROb2RlSGFzQ29udGVudAog
ewotICAgIGF1dG8qIGNvcmVGcmFtZSA9IF9wcml2YXRlLT5jb3JlRnJhbWU7CisgICAgYXV0byBj
b3JlRnJhbWUgPSBfcHJpdmF0ZS0+Y29yZUZyYW1lOwogICAgCiAgICAgV2ViQ29yZTo6RWxlbWVu
dCogcm9vdDsKICAgICBjb25zdCBhdXRvJiBzZWxlY3Rpb24gPSBjb3JlRnJhbWUtPnNlbGVjdGlv
bigpLnNlbGVjdGlvbigpOwpAQCAtMjMyNiw3ICsyMzI2LDcgQEAgLSAoQk9PTClmb2N1c2VkTm9k
ZUhhc0NvbnRlbnQKIAogLSAodm9pZClfZGlzcGF0Y2hEaWRSZWNlaXZlVGl0bGU6KE5TU3RyaW5n
ICopdGl0bGUKIHsKLSAgICBhdXRvKiBjb3JlRnJhbWUgPSBfcHJpdmF0ZS0+Y29yZUZyYW1lOwor
ICAgIGF1dG8gY29yZUZyYW1lID0gX3ByaXZhdGUtPmNvcmVGcmFtZTsKICAgICBpZiAoIWNvcmVG
cmFtZSkKICAgICAgICAgcmV0dXJuOwogICAgIGNvcmVGcmFtZS0+bG9hZGVyKCkuY2xpZW50KCku
ZGlzcGF0Y2hEaWRSZWNlaXZlVGl0bGUoeyB0aXRsZSwgV2ViQ29yZTo6VGV4dERpcmVjdGlvbjo6
TFRSIH0pOwpAQCAtMjMzNiw3ICsyMzM2LDcgQEAgLSAodm9pZClfZGlzcGF0Y2hEaWRSZWNlaXZl
VGl0bGU6KE5TU3RyaW5nICopdGl0bGUKIAogLSAoSlNWYWx1ZVJlZilqc1dyYXBwZXJGb3JOb2Rl
OihET01Ob2RlICopbm9kZSBpblNjcmlwdFdvcmxkOihXZWJTY3JpcHRXb3JsZCAqKXdvcmxkCiB7
Ci0gICAgYXV0byogY29yZUZyYW1lID0gX3ByaXZhdGUtPmNvcmVGcmFtZTsKKyAgICBhdXRvIGNv
cmVGcmFtZSA9IF9wcml2YXRlLT5jb3JlRnJhbWU7CiAgICAgaWYgKCFjb3JlRnJhbWUpCiAgICAg
ICAgIHJldHVybiAwOwogCkBAIC0yMzUyLDcgKzIzNTIsNyBAQCAtIChKU1ZhbHVlUmVmKWpzV3Jh
cHBlckZvck5vZGU6KERPTU5vZGUgKilub2RlIGluU2NyaXB0V29ybGQ6KFdlYlNjcmlwdFdvcmxk
ICopdwogCiAtIChOU0RpY3Rpb25hcnkgKillbGVtZW50QXRQb2ludDooTlNQb2ludClwb2ludAog
ewotICAgIGF1dG8qIGNvcmVGcmFtZSA9IF9wcml2YXRlLT5jb3JlRnJhbWU7CisgICAgYXV0byBj
b3JlRnJhbWUgPSBfcHJpdmF0ZS0+Y29yZUZyYW1lOwogICAgIGlmICghY29yZUZyYW1lKQogICAg
ICAgICByZXR1cm4gbmlsOwogICAgIHJldHVybiBbW1tXZWJFbGVtZW50RGljdGlvbmFyeSBhbGxv
Y10gaW5pdFdpdGhIaXRUZXN0UmVzdWx0OmNvcmVGcmFtZS0+ZXZlbnRIYW5kbGVyKCkuaGl0VGVz
dFJlc3VsdEF0UG9pbnQoV2ViQ29yZTo6SW50UG9pbnQocG9pbnQpLCBXZWJDb3JlOjpIaXRUZXN0
UmVxdWVzdDo6UmVhZE9ubHkgfCBXZWJDb3JlOjpIaXRUZXN0UmVxdWVzdDo6QWN0aXZlIHwgV2Vi
Q29yZTo6SGl0VGVzdFJlcXVlc3Q6Oklnbm9yZUNsaXBwaW5nIHwgV2ViQ29yZTo6SGl0VGVzdFJl
cXVlc3Q6OkRpc2FsbG93VXNlckFnZW50U2hhZG93Q29udGVudCB8IFdlYkNvcmU6OkhpdFRlc3RS
ZXF1ZXN0OjpBbGxvd0NoaWxkRnJhbWVDb250ZW50KV0gYXV0b3JlbGVhc2VdOwpAQCAtMjM5MCw3
ICsyMzkwLDcgQEAgLSAodm9pZClkZWFsbG9jCiAKIC0gKE5TU3RyaW5nICopbmFtZQogewotICAg
IGF1dG8qIGNvcmVGcmFtZSA9IF9wcml2YXRlLT5jb3JlRnJhbWU7CisgICAgYXV0byBjb3JlRnJh
bWUgPSBfcHJpdmF0ZS0+Y29yZUZyYW1lOwogICAgIGlmICghY29yZUZyYW1lKQogICAgICAgICBy
ZXR1cm4gbmlsOwogICAgIHJldHVybiBjb3JlRnJhbWUtPnRyZWUoKS51bmlxdWVOYW1lKCk7CkBA
IC0yNDIxLDcgKzI0MjEsNyBAQCAtIChET01Eb2N1bWVudCAqKURPTURvY3VtZW50CiAgICAgaWYg
KG5lZWRzTWljcm9zb2Z0TWVzc2VuZ2VyRE9NRG9jdW1lbnRXb3JrYXJvdW5kKCkgJiYgIXB0aHJl
YWRfbWFpbl9ucCgpKQogICAgICAgICByZXR1cm4gbmlsOwogCi0gICAgYXV0byogY29yZUZyYW1l
ID0gX3ByaXZhdGUtPmNvcmVGcmFtZTsKKyAgICBhdXRvIGNvcmVGcmFtZSA9IF9wcml2YXRlLT5j
b3JlRnJhbWU7CiAgICAgaWYgKCFjb3JlRnJhbWUpCiAgICAgICAgIHJldHVybiBuaWw7CiAgICAg
CkBAIC0yNDQ0LDcgKzI0NDQsNyBAQCAtIChET01Eb2N1bWVudCAqKURPTURvY3VtZW50CiAKIC0g
KERPTUhUTUxFbGVtZW50ICopZnJhbWVFbGVtZW50CiB7Ci0gICAgYXV0byogY29yZUZyYW1lID0g
X3ByaXZhdGUtPmNvcmVGcmFtZTsKKyAgICBhdXRvIGNvcmVGcmFtZSA9IF9wcml2YXRlLT5jb3Jl
RnJhbWU7CiAgICAgaWYgKCFjb3JlRnJhbWUpCiAgICAgICAgIHJldHVybiBuaWw7CiAgICAgcmV0
dXJuIGtpdChjb3JlRnJhbWUtPm93bmVyRWxlbWVudCgpKTsKQEAgLTI0NTIsMTkgKzI0NTIsMTkg
QEAgLSAoRE9NSFRNTEVsZW1lbnQgKilmcmFtZUVsZW1lbnQKIAogLSAoV2ViRGF0YVNvdXJjZSAq
KXByb3Zpc2lvbmFsRGF0YVNvdXJjZQogewotICAgIGF1dG8qIGNvcmVGcmFtZSA9IF9wcml2YXRl
LT5jb3JlRnJhbWU7CisgICAgYXV0byBjb3JlRnJhbWUgPSBfcHJpdmF0ZS0+Y29yZUZyYW1lOwog
ICAgIHJldHVybiBjb3JlRnJhbWUgPyBkYXRhU291cmNlKGNvcmVGcmFtZS0+bG9hZGVyKCkucHJv
dmlzaW9uYWxEb2N1bWVudExvYWRlcigpKSA6IG5pbDsKIH0KIAogLSAoV2ViRGF0YVNvdXJjZSAq
KWRhdGFTb3VyY2UKIHsKLSAgICBhdXRvKiBjb3JlRnJhbWUgPSBfcHJpdmF0ZS0+Y29yZUZyYW1l
OworICAgIGF1dG8gY29yZUZyYW1lID0gX3ByaXZhdGUtPmNvcmVGcmFtZTsKICAgICByZXR1cm4g
Y29yZUZyYW1lICYmIGNvcmVGcmFtZS0+bG9hZGVyKCkuZnJhbWVIYXNMb2FkZWQoKSA/IFtzZWxm
IF9kYXRhU291cmNlXSA6IG5pbDsKIH0KIAogLSAodm9pZClsb2FkUmVxdWVzdDooTlNVUkxSZXF1
ZXN0ICopcmVxdWVzdAogewotICAgIGF1dG8qIGNvcmVGcmFtZSA9IF9wcml2YXRlLT5jb3JlRnJh
bWU7CisgICAgYXV0byBjb3JlRnJhbWUgPSBfcHJpdmF0ZS0+Y29yZUZyYW1lOwogICAgIGlmICgh
Y29yZUZyYW1lKQogICAgICAgICByZXR1cm47CiAKQEAgLTI1NzgsNyArMjU3OCw3IEBAIC0gKHZv
aWQpcmVsb2FkRnJvbU9yaWdpbgogCiAtIChXZWJGcmFtZSAqKWZpbmRGcmFtZU5hbWVkOihOU1N0
cmluZyAqKW5hbWUKIHsKLSAgICBhdXRvKiBjb3JlRnJhbWUgPSBfcHJpdmF0ZS0+Y29yZUZyYW1l
OworICAgIGF1dG8gY29yZUZyYW1lID0gX3ByaXZhdGUtPmNvcmVGcmFtZTsKICAgICBpZiAoIWNv
cmVGcmFtZSkKICAgICAgICAgcmV0dXJuIG5pbDsKICAgICByZXR1cm4ga2l0KGNvcmVGcmFtZS0+
dHJlZSgpLmZpbmQobmFtZSwgKmNvcmVGcmFtZSkpOwpAQCAtMjU4Niw3ICsyNTg2LDcgQEAgLSAo
V2ViRnJhbWUgKilmaW5kRnJhbWVOYW1lZDooTlNTdHJpbmcgKiluYW1lCiAKIC0gKFdlYkZyYW1l
ICopcGFyZW50RnJhbWUKIHsKLSAgICBhdXRvKiBjb3JlRnJhbWUgPSBfcHJpdmF0ZS0+Y29yZUZy
YW1lOworICAgIGF1dG8gY29yZUZyYW1lID0gX3ByaXZhdGUtPmNvcmVGcmFtZTsKICAgICBpZiAo
IWNvcmVGcmFtZSkKICAgICAgICAgcmV0dXJuIG5pbDsKICAgICByZXR1cm4gW1traXQoY29yZUZy
YW1lLT50cmVlKCkucGFyZW50KCkpIHJldGFpbl0gYXV0b3JlbGVhc2VdOwpAQCAtMjU5NCw3ICsy
NTk0LDcgQEAgLSAoV2ViRnJhbWUgKilwYXJlbnRGcmFtZQogCiAtIChOU0FycmF5ICopY2hpbGRG
cmFtZXMKIHsKLSAgICBhdXRvKiBjb3JlRnJhbWUgPSBfcHJpdmF0ZS0+Y29yZUZyYW1lOworICAg
IGF1dG8gY29yZUZyYW1lID0gX3ByaXZhdGUtPmNvcmVGcmFtZTsKICAgICBpZiAoIWNvcmVGcmFt
ZSkKICAgICAgICAgcmV0dXJuIFtOU0FycmF5IGFycmF5XTsKICAgICBOU011dGFibGVBcnJheSAq
Y2hpbGRyZW4gPSBbTlNNdXRhYmxlQXJyYXkgYXJyYXlXaXRoQ2FwYWNpdHk6Y29yZUZyYW1lLT50
cmVlKCkuY2hpbGRDb3VudCgpXTsKQEAgLTI2MDUsNyArMjYwNSw3IEBAIC0gKE5TQXJyYXkgKilj
aGlsZEZyYW1lcwogCiAtIChXZWJTY3JpcHRPYmplY3QgKil3aW5kb3dPYmplY3QKIHsKLSAgICBh
dXRvKiBjb3JlRnJhbWUgPSBfcHJpdmF0ZS0+Y29yZUZyYW1lOworICAgIGF1dG8gY29yZUZyYW1l
ID0gX3ByaXZhdGUtPmNvcmVGcmFtZTsKICAgICBpZiAoIWNvcmVGcmFtZSkKICAgICAgICAgcmV0
dXJuIDA7CiAgICAgcmV0dXJuIGNvcmVGcmFtZS0+c2NyaXB0KCkud2luZG93U2NyaXB0T2JqZWN0
KCk7CkBAIC0yNjEzLDcgKzI2MTMsNyBAQCAtIChXZWJTY3JpcHRPYmplY3QgKil3aW5kb3dPYmpl
Y3QKIAogLSAoSlNHbG9iYWxDb250ZXh0UmVmKWdsb2JhbENvbnRleHQKIHsKLSAgICBhdXRvKiBj
b3JlRnJhbWUgPSBfcHJpdmF0ZS0+Y29yZUZyYW1lOworICAgIGF1dG8gY29yZUZyYW1lID0gX3By
aXZhdGUtPmNvcmVGcmFtZTsKICAgICBpZiAoIWNvcmVGcmFtZSkKICAgICAgICAgcmV0dXJuIDA7
CiAgICAgcmV0dXJuIHRvR2xvYmFsUmVmKGNvcmVGcmFtZS0+c2NyaXB0KCkuZ2xvYmFsT2JqZWN0
KFdlYkNvcmU6Om1haW5UaHJlYWROb3JtYWxXb3JsZCgpKSk7CkBAIC0yNjIyLDcgKzI2MjIsNyBA
QCAtIChKU0dsb2JhbENvbnRleHRSZWYpZ2xvYmFsQ29udGV4dAogI2lmIEpTQ19PQkpDX0FQSV9F
TkFCTEVECiAtIChKU0NvbnRleHQgKilqYXZhU2NyaXB0Q29udGV4dAogewotICAgIGF1dG8qIGNv
cmVGcmFtZSA9IF9wcml2YXRlLT5jb3JlRnJhbWU7CisgICAgYXV0byBjb3JlRnJhbWUgPSBfcHJp
dmF0ZS0+Y29yZUZyYW1lOwogICAgIGlmICghY29yZUZyYW1lKQogICAgICAgICByZXR1cm4gMDsK
ICAgICByZXR1cm4gY29yZUZyYW1lLT5zY3JpcHQoKS5qYXZhU2NyaXB0Q29udGV4dCgpOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJGcmFtZUludGVybmFs
LmggYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYkZyYW1lSW50ZXJuYWwuaApp
bmRleCA5ZjQ2YWVjZGRlYjcxN2MxODg4MzhjYWFjMDYyYTc5MzI1NjM1MWUwLi45MzZjMzRmM2Rh
OGViZDNmMmEzMzcxZjk2MjEzODUzZjM5NjEyZmNmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
TGVnYWN5L21hYy9XZWJWaWV3L1dlYkZyYW1lSW50ZXJuYWwuaAorKysgYi9Tb3VyY2UvV2ViS2l0
TGVnYWN5L21hYy9XZWJWaWV3L1dlYkZyYW1lSW50ZXJuYWwuaApAQCAtMzUsNiArMzUsNyBAQAog
I2ltcG9ydCA8V2ViQ29yZS9GcmFtZVNlbGVjdGlvbi5oPgogI2ltcG9ydCA8V2ViQ29yZS9Qb3Np
dGlvbi5oPgogI2ltcG9ydCA8V2ViQ29yZS9TZXR0aW5ncy5oPgorI2ltcG9ydCA8d3RmL05ha2Vk
UHRyLmg+CiAKIEBjbGFzcyBET01DU1NTdHlsZURlY2xhcmF0aW9uOwogQGNsYXNzIERPTURvY3Vt
ZW50RnJhZ21lbnQ7CkBAIC04NSw3ICs4Niw3IEBAIFdlYlZpZXcgKmdldFdlYlZpZXcoV2ViRnJh
bWUgKndlYkZyYW1lKTsKIAogQGludGVyZmFjZSBXZWJGcmFtZVByaXZhdGUgOiBOU09iamVjdCB7
CiBAcHVibGljCi0gICAgV2ViQ29yZTo6RnJhbWUqIGNvcmVGcmFtZTsKKyAgICBOYWtlZFB0cjxX
ZWJDb3JlOjpGcmFtZT4gY29yZUZyYW1lOwogICAgIFdlYkZyYW1lVmlldyAqd2ViRnJhbWVWaWV3
OwogICAgIHN0ZDo6dW5pcXVlX3B0cjxXZWJTY3JpcHREZWJ1Z2dlcj4gc2NyaXB0RGVidWdnZXI7
CiAgICAgaWQgaW50ZXJuYWxMb2FkRGVsZWdhdGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
TGVnYWN5L21hYy9XZWJWaWV3L1dlYkZyYW1lVmlldy5tbSBiL1NvdXJjZS9XZWJLaXRMZWdhY3kv
bWFjL1dlYlZpZXcvV2ViRnJhbWVWaWV3Lm1tCmluZGV4IDhkMWU4NWY0MzYwNjE4MjQwMjUyNDA0
ZTE3NDk3YzA3OWMxYjMyN2UuLjczNjVkMjU2ZWVkNjlhZjBjMTY0NWQyNjRlOTAzZDJiNjE3OTQ4
YzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViRnJhbWVW
aWV3Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViRnJhbWVWaWV3
Lm1tCkBAIC0xMzMsNyArMTMzLDcgQEAgLSAoZmxvYXQpX3ZlcnRpY2FsS2V5Ym9hcmRTY3JvbGxE
aXN0YW5jZQogICAgIHJldHVybiBbW3NlbGYgX3Njcm9sbFZpZXddIHZlcnRpY2FsTGluZVNjcm9s
bF07CiB9CiAKLS0gKFdlYkNvcmU6OkZyYW1lKilfd2ViX2ZyYW1lCistIChOYWtlZFB0cjxXZWJD
b3JlOjpGcmFtZT4pX3dlYl9mcmFtZQogewogICAgIHJldHVybiBjb3JlKF9wcml2YXRlLT53ZWJG
cmFtZSk7CiB9CkBAIC0zMzEsNyArMzMxLDcgQEAgLSAodm9pZClfZnJhbWVTaXplQ2hhbmdlZAog
ICAgIC8vIFNlZSBXZWJGcmFtZUxvYWRlckNsaWVudDo6cHJvdmlzaW9uYWxMb2FkU3RhcnRlZC4K
ICAgICBpZiAoW1tbc2VsZiB3ZWJGcmFtZV0gd2ViVmlld10gZHJhd3NCYWNrZ3JvdW5kXSkKICAg
ICAgICAgW1tzZWxmIF9zY3JvbGxWaWV3XSBzZXREcmF3c0JhY2tncm91bmQ6WUVTXTsKLSAgICBp
ZiAoYXV0byogY29yZUZyYW1lID0gW3NlbGYgX3dlYl9mcmFtZV0pIHsKKyAgICBpZiAoYXV0byBj
b3JlRnJhbWUgPSBbc2VsZiBfd2ViX2ZyYW1lXSkgewogICAgICAgICBpZiAoYXV0byogY29yZUZy
YW1lVmlldyA9IGNvcmVGcmFtZS0+dmlldygpKQogICAgICAgICAgICAgY29yZUZyYW1lVmlldy0+
YXZhaWxhYmxlQ29udGVudFNpemVDaGFuZ2VkKFdlYkNvcmU6OlNjcm9sbGFibGVBcmVhOjpBdmFp
bGFibGVTaXplQ2hhbmdlUmVhc29uOjpBcmVhU2l6ZUNoYW5nZWQpOwogICAgIH0KQEAgLTYxMyw3
ICs2MTMsNyBAQCAtIChCT09MKV9zY3JvbGxPdmVyZmxvd0luRGlyZWN0aW9uOihXZWJDb3JlOjpT
Y3JvbGxEaXJlY3Rpb24pZGlyZWN0aW9uIGdyYW51bGFyaQogCiAtIChCT09MKV9pc1ZlcnRpY2Fs
RG9jdW1lbnQKIHsKLSAgICBhdXRvKiBjb3JlRnJhbWUgPSBbc2VsZiBfd2ViX2ZyYW1lXTsKKyAg
ICBhdXRvIGNvcmVGcmFtZSA9IFtzZWxmIF93ZWJfZnJhbWVdOwogICAgIGlmICghY29yZUZyYW1l
KQogICAgICAgICByZXR1cm4gWUVTOwogICAgIGF1dG8qIGRvY3VtZW50ID0gY29yZUZyYW1lLT5k
b2N1bWVudCgpOwpAQCAtNjI3LDcgKzYyNyw3IEBAIC0gKEJPT0wpX2lzVmVydGljYWxEb2N1bWVu
dAogCiAtIChCT09MKV9pc0ZsaXBwZWREb2N1bWVudAogewotICAgIGF1dG8qIGNvcmVGcmFtZSA9
IFtzZWxmIF93ZWJfZnJhbWVdOworICAgIGF1dG8gY29yZUZyYW1lID0gW3NlbGYgX3dlYl9mcmFt
ZV07CiAgICAgaWYgKCFjb3JlRnJhbWUpCiAgICAgICAgIHJldHVybiBOTzsKICAgICBhdXRvKiBk
b2N1bWVudCA9IGNvcmVGcmFtZS0+ZG9jdW1lbnQoKTsKQEAgLTg5NSw3ICs4OTUsNyBAQCAtICh2
b2lkKWtleURvd246KFdlYkV2ZW50ICopZXZlbnQKICNlbmRpZgogICAgIGludCBpbmRleCwgY291
bnQ7CiAgICAgQk9PTCBjYWxsU3VwZXIgPSBZRVM7Ci0gICAgYXV0byogY29yZUZyYW1lID0gW3Nl
bGYgX3dlYl9mcmFtZV07CisgICAgYXV0byBjb3JlRnJhbWUgPSBbc2VsZiBfd2ViX2ZyYW1lXTsK
ICAgICBCT09MIG1haW50YWluc0JhY2tGb3J3YXJkTGlzdCA9IGNvcmVGcmFtZSAmJiBzdGF0aWNf
Y2FzdDxCYWNrRm9yd2FyZExpc3QmPihjb3JlRnJhbWUtPnBhZ2UoKS0+YmFja0ZvcndhcmQoKS5j
bGllbnQoKSkuZW5hYmxlZCgpID8gWUVTIDogTk87CiAKICAgICBjb3VudCA9IFtjaGFyYWN0ZXJz
IGxlbmd0aF07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dl
YkZ1bGxTY3JlZW5Db250cm9sbGVyLm1tIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmll
dy9XZWJGdWxsU2NyZWVuQ29udHJvbGxlci5tbQppbmRleCAzNmY3ZjgyZTc3ZjEwMTNiYzgzNTY4
NzJjYzc0N2UyM2I2ZTVmYmE3Li4xN2I0MjJkM2FjODAzN2VlNTE5ZWU4ZDg3ODk0NDk4MWM2ZDdk
OWEyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYkZ1bGxT
Y3JlZW5Db250cm9sbGVyLm1tCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcv
V2ViRnVsbFNjcmVlbkNvbnRyb2xsZXIubW0KQEAgLTYzLDcgKzYzLDcgQEAgc3RhdGljIFdlYkNv
cmU6OkludFJlY3Qgc2NyZWVuUmVjdE9mQ29udGVudHMoV2ViQ29yZTo6RWxlbWVudCogZWxlbWVu
dCkKIEBpbnRlcmZhY2UgV2ViRnVsbFNjcmVlbkNvbnRyb2xsZXIoUHJpdmF0ZSk8TlNBbmltYXRp
b25EZWxlZ2F0ZT4KIC0gKHZvaWQpX3VwZGF0ZU1lbnVBbmREb2NrRm9yRnVsbFNjcmVlbjsKIC0g
KHZvaWQpX3N3YXBWaWV3OihOU1ZpZXcqKXZpZXcgd2l0aDooTlNWaWV3KilvdGhlclZpZXc7Ci0t
IChXZWJDb3JlOjpEb2N1bWVudCopX2RvY3VtZW50OworLSAoTmFrZWRQdHI8V2ViQ29yZTo6RG9j
dW1lbnQ+KV9kb2N1bWVudDsKIC0gKFdlYkNvcmU6OkZ1bGxzY3JlZW5NYW5hZ2VyKilfbWFuYWdl
cjsKIC0gKHZvaWQpX3N0YXJ0RW50ZXJGdWxsU2NyZWVuQW5pbWF0aW9uV2l0aER1cmF0aW9uOihO
U1RpbWVJbnRlcnZhbClkdXJhdGlvbjsKIC0gKHZvaWQpX3N0YXJ0RXhpdEZ1bGxTY3JlZW5Bbmlt
YXRpb25XaXRoRHVyYXRpb246KE5TVGltZUludGVydmFsKWR1cmF0aW9uOwpAQCAtNDUwLDcgKzQ1
MCw3IEBAIC0gKHZvaWQpX3VwZGF0ZU1lbnVBbmREb2NrRm9yRnVsbFNjcmVlbgogI3ByYWdtYSBt
YXJrIC0KICNwcmFnbWEgbWFyayBVdGlsaXR5IEZ1bmN0aW9ucwogCi0tIChXZWJDb3JlOjpEb2N1
bWVudCopX2RvY3VtZW50CistIChOYWtlZFB0cjxXZWJDb3JlOjpEb2N1bWVudD4pX2RvY3VtZW50
CiB7CiAgICAgcmV0dXJuICZfZWxlbWVudC0+ZG9jdW1lbnQoKTsKIH0KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViSFRNTFZpZXcubW0gYi9Tb3VyY2UvV2Vi
S2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYkhUTUxWaWV3Lm1tCmluZGV4IDBmZjllMzE1YjA2M2Mx
ZmZmMjczOTQ2MDE4YjYwZjVhMDJiNzI4NzUuLmIyYTFkMDg1OTM4ZWYzZTdkMjI1OWZlZjE2NmRk
YmNmNTM4OTdmOGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcv
V2ViSFRNTFZpZXcubW0KKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJI
VE1MVmlldy5tbQpAQCAtMTQzLDYgKzE0Myw3IEBACiAjaW1wb3J0IDx3dGYvQmxvY2tPYmpDRXhj
ZXB0aW9ucy5oPgogI2ltcG9ydCA8d3RmL01haW5UaHJlYWQuaD4KICNpbXBvcnQgPHd0Zi9NYXRo
RXh0cmFzLmg+CisjaW1wb3J0IDx3dGYvTmFrZWRQdHIuaD4KICNpbXBvcnQgPHd0Zi9PYmpDUnVu
dGltZUV4dHJhcy5oPgogI2ltcG9ydCA8d3RmL1J1bkxvb3AuaD4KICNpbXBvcnQgPHd0Zi9TeXN0
ZW1UcmFjaW5nLmg+CkBAIC0yMzYsMTEgKzIzNywxMSBAQCB1c2luZyBXZWJFdmVudCA9IE5TRXZl
bnQ7CiBjb25zdCBhdXRvIFdlYkV2ZW50TW91c2VEb3duID0gTlNFdmVudFR5cGVMZWZ0TW91c2VE
b3duOwogCiBAaW50ZXJmYWNlIFdlYk1lbnVUYXJnZXQgOiBOU09iamVjdCB7Ci0gICAgV2ViQ29y
ZTo6Q29udGV4dE1lbnVDb250cm9sbGVyKiBfbWVudUNvbnRyb2xsZXI7CisgICAgTmFrZWRQdHI8
V2ViQ29yZTo6Q29udGV4dE1lbnVDb250cm9sbGVyPiBfbWVudUNvbnRyb2xsZXI7CiB9CiArIChX
ZWJNZW51VGFyZ2V0KilzaGFyZWRNZW51VGFyZ2V0OwotLSAoV2ViQ29yZTo6Q29udGV4dE1lbnVD
b250cm9sbGVyKiltZW51Q29udHJvbGxlcjsKLS0gKHZvaWQpc2V0TWVudUNvbnRyb2xsZXI6KFdl
YkNvcmU6OkNvbnRleHRNZW51Q29udHJvbGxlciopbWVudUNvbnRyb2xsZXI7CistIChOYWtlZFB0
cjxXZWJDb3JlOjpDb250ZXh0TWVudUNvbnRyb2xsZXI+KW1lbnVDb250cm9sbGVyOworLSAodm9p
ZClzZXRNZW51Q29udHJvbGxlcjooTmFrZWRQdHI8V2ViQ29yZTo6Q29udGV4dE1lbnVDb250cm9s
bGVyPiltZW51Q29udHJvbGxlcjsKIC0gKHZvaWQpZm9yd2FyZENvbnRleHRNZW51QWN0aW9uOihp
ZClzZW5kZXI7CiBAZW5kCiAKQEAgLTYyMiwxMiArNjIzLDEyIEBAICsgKFdlYk1lbnVUYXJnZXQg
KilzaGFyZWRNZW51VGFyZ2V0CiAgICAgcmV0dXJuIHRhcmdldDsKIH0KIAotLSAoV2ViQ29yZTo6
Q29udGV4dE1lbnVDb250cm9sbGVyKiltZW51Q29udHJvbGxlcgorLSAoTmFrZWRQdHI8V2ViQ29y
ZTo6Q29udGV4dE1lbnVDb250cm9sbGVyPiltZW51Q29udHJvbGxlcgogewogICAgIHJldHVybiBf
bWVudUNvbnRyb2xsZXI7CiB9CiAKLS0gKHZvaWQpc2V0TWVudUNvbnRyb2xsZXI6KFdlYkNvcmU6
OkNvbnRleHRNZW51Q29udHJvbGxlciopbWVudUNvbnRyb2xsZXIKKy0gKHZvaWQpc2V0TWVudUNv
bnRyb2xsZXI6KE5ha2VkUHRyPFdlYkNvcmU6OkNvbnRleHRNZW51Q29udHJvbGxlcj4pbWVudUNv
bnRyb2xsZXIKIHsKICAgICBfbWVudUNvbnRyb2xsZXIgPSBtZW51Q29udHJvbGxlcjsKIH0KQEAg
LTk4Nyw3ICs5ODgsNyBAQCBAcHVibGljCiAgICAgUmV0YWluUHRyPFdlYkRhdGFTb3VyY2U+IGRh
dGFTb3VyY2U7CiAKICNpZiBQTEFURk9STShNQUMpCi0gICAgV2ViQ29yZTo6Q2FjaGVkSW1hZ2Uq
IHByb21pc2VkRHJhZ1RJRkZEYXRhU291cmNlOworICAgIE5ha2VkUHRyPFdlYkNvcmU6OkNhY2hl
ZEltYWdlPiBwcm9taXNlZERyYWdUSUZGRGF0YVNvdXJjZTsKICNlbmRpZgogCiAgICAgU0VMIHNl
bGVjdG9yRm9yRG9Db21tYW5kQnlTZWxlY3RvcjsKQEAgLTQzNTgsNyArNDM1OSw3IEBAIEFMTE9X
X0RFUFJFQ0FURURfSU1QTEVNRU5UQVRJT05TX0VORAogICAgIE5TRmlsZVdyYXBwZXIgKndyYXBw
ZXIgPSBuaWw7CiAgICAgTlNVUkwgKmRyYWdnaW5nRWxlbWVudFVSTCA9IG5pbDsKICAgICAKLSAg
ICBpZiAoYXV0byogdGlmZlJlc291cmNlID0gX3ByaXZhdGUtPnByb21pc2VkRHJhZ1RJRkZEYXRh
U291cmNlKSB7CisgICAgaWYgKGF1dG8gdGlmZlJlc291cmNlID0gX3ByaXZhdGUtPnByb21pc2Vk
RHJhZ1RJRkZEYXRhU291cmNlKSB7CiAgICAgICAgIGlmIChhdXRvKiBidWZmZXIgPSB0aWZmUmVz
b3VyY2UtPnJlc291cmNlQnVmZmVyKCkpIHsKICAgICAgICAgICAgIE5TVVJMUmVzcG9uc2UgKnJl
c3BvbnNlID0gdGlmZlJlc291cmNlLT5yZXNwb25zZSgpLm5zVVJMUmVzcG9uc2UoKTsKICAgICAg
ICAgICAgIGRyYWdnaW5nRWxlbWVudFVSTCA9IFtyZXNwb25zZSBVUkxdOwpAQCAtNTk4Myw3ICs1
OTg0LDcgQEAgLSAodm9pZClfZXhlY3V0ZVNhdmVkS2V5cHJlc3NDb21tYW5kcwogCiAjaWYgUExB
VEZPUk0oTUFDKQogCi0tIChCT09MKV9pbnRlcnByZXRLZXlFdmVudDooV2ViQ29yZTo6S2V5Ym9h
cmRFdmVudCopZXZlbnQgc2F2aW5nQ29tbWFuZHM6KEJPT0wpc2F2aW5nQ29tbWFuZHMKKy0gKEJP
T0wpX2ludGVycHJldEtleUV2ZW50OihOYWtlZFB0cjxXZWJDb3JlOjpLZXlib2FyZEV2ZW50Pill
dmVudCBzYXZpbmdDb21tYW5kczooQk9PTClzYXZpbmdDb21tYW5kcwogewogICAgIEFTU0VSVChj
b3JlKFtzZWxmIF9mcmFtZV0pID09IGRvd25jYXN0PFdlYkNvcmU6Ok5vZGU+KGV2ZW50LT50YXJn
ZXQoKSktPmRvY3VtZW50KCkuZnJhbWUoKSk7CiAgICAgQVNTRVJUKCFzYXZpbmdDb21tYW5kcyB8
fCBldmVudC0+a2V5cHJlc3NDb21tYW5kcygpLmlzRW1wdHkoKSk7IC8vIFNhdmUgY29tbWFuZHMg
b25jZSBmb3IgZWFjaCBldmVudC4KQEAgLTYxMTIsNyArNjExMyw3IEBAIC0gKEJPT0wpX2hhbmRs
ZUVkaXRpbmdLZXlFdmVudDooV2ViQ29yZTo6S2V5Ym9hcmRFdmVudCAqKXdjRXZlbnQKIAogI2lm
IFBMQVRGT1JNKE1BQykKIAotLSAodm9pZClzZXRQcm9taXNlZERyYWdUSUZGRGF0YVNvdXJjZToo
V2ViQ29yZTo6Q2FjaGVkSW1hZ2UqKXNvdXJjZQorLSAodm9pZClzZXRQcm9taXNlZERyYWdUSUZG
RGF0YVNvdXJjZTooTmFrZWRQdHI8V2ViQ29yZTo6Q2FjaGVkSW1hZ2U+KXNvdXJjZQogewogICAg
IGlmIChzb3VyY2UpCiAgICAgICAgIHNvdXJjZS0+YWRkQ2xpZW50KHByb21pc2VkRGF0YUNsaWVu
dCgpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViSFRN
TFZpZXdJbnRlcm5hbC5oIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJIVE1M
Vmlld0ludGVybmFsLmgKaW5kZXggOTE2ZDMzNjlmYmViZmNmOGZlZTYwOWZhZDhjMmI1MWExMDVh
YmJlYS4uNmY1ZTU3ZDNmY2U3MzRjNTZmNjJjYjNlNzIzY2Y5NDVlNTEzYmMwZiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJIVE1MVmlld0ludGVybmFsLmgK
KysrIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJIVE1MVmlld0ludGVybmFs
LmgKQEAgLTYxLDEzICs2MSwxMyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKICNpZiBQTEFURk9S
TShNQUMpCiAtICh2b2lkKV9sb29rVXBJbkRpY3Rpb25hcnlGcm9tTWVudTooaWQpc2VuZGVyOwot
LSAoQk9PTClfaW50ZXJwcmV0S2V5RXZlbnQ6KFdlYkNvcmU6OktleWJvYXJkRXZlbnQgKilldmVu
dCBzYXZpbmdDb21tYW5kczooQk9PTClzYXZpbmdDb21tYW5kczsKKy0gKEJPT0wpX2ludGVycHJl
dEtleUV2ZW50OihOYWtlZFB0cjxXZWJDb3JlOjpLZXlib2FyZEV2ZW50PilldmVudCBzYXZpbmdD
b21tYW5kczooQk9PTClzYXZpbmdDb21tYW5kczsKIC0gKERPTURvY3VtZW50RnJhZ21lbnQgKilf
ZG9jdW1lbnRGcmFnbWVudEZyb21QYXN0ZWJvYXJkOihOU1Bhc3RlYm9hcmQgKilwYXN0ZWJvYXJk
OwogLSAoTlNFdmVudCAqKV9tb3VzZURvd25FdmVudDsKIC0gKEJPT0wpaXNHcmFtbWFyQ2hlY2tp
bmdFbmFibGVkOwogLSAodm9pZClzZXRHcmFtbWFyQ2hlY2tpbmdFbmFibGVkOihCT09MKWZsYWc7
CiAtICh2b2lkKXRvZ2dsZUdyYW1tYXJDaGVja2luZzooaWQpc2VuZGVyOwotLSAodm9pZClzZXRQ
cm9taXNlZERyYWdUSUZGRGF0YVNvdXJjZTooV2ViQ29yZTo6Q2FjaGVkSW1hZ2UqKXNvdXJjZTsK
Ky0gKHZvaWQpc2V0UHJvbWlzZWREcmFnVElGRkRhdGFTb3VyY2U6KE5ha2VkUHRyPFdlYkNvcmU6
OkNhY2hlZEltYWdlPilzb3VyY2U7CiAjZW5kaWYKIAogI2lmIFBMQVRGT1JNKElPU19GQU1JTFkp
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYk5vdGlmaWNh
dGlvbi5tbSBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViTm90aWZpY2F0aW9u
Lm1tCmluZGV4IDExNTc1NjAzY2U3OWE1ZThhODRiNjNhNDhkMjhiZDVhYTcyOTQ3M2MuLjE2ZTg5
YzRiYzNhNzdiNTY4NjA2OTc0Y2E0MDY5NmRjMmNiNDdmMGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViTm90aWZpY2F0aW9uLm1tCisrKyBiL1NvdXJjZS9X
ZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViTm90aWZpY2F0aW9uLm1tCkBAIC02Miw3ICs2Miw3
IEBAIE5vdGlmaWNhdGlvbiogY29yZShXZWJOb3RpZmljYXRpb24gKm5vdGlmaWNhdGlvbikKICAg
ICByZXR1cm4gbm90aWZpY2F0aW9uLT5fcHJpdmF0ZS0+X2ludGVybmFsLmdldCgpOwogfQogCi0t
IChpZClpbml0V2l0aENvcmVOb3RpZmljYXRpb246KE5vdGlmaWNhdGlvbiopY29yZU5vdGlmaWNh
dGlvbiBub3RpZmljYXRpb25JRDoodWludDY0X3Qpbm90aWZpY2F0aW9uSUQKKy0gKGlkKWluaXRX
aXRoQ29yZU5vdGlmaWNhdGlvbjooTmFrZWRQdHI8Tm90aWZpY2F0aW9uPiljb3JlTm90aWZpY2F0
aW9uIG5vdGlmaWNhdGlvbklEOih1aW50NjRfdClub3RpZmljYXRpb25JRAogewogICAgIGlmICgh
KHNlbGYgPSBbc3VwZXIgaW5pdF0pKQogICAgICAgICByZXR1cm4gbmlsOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJOb3RpZmljYXRpb25JbnRlcm5hbC5o
IGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJOb3RpZmljYXRpb25JbnRlcm5h
bC5oCmluZGV4IGE3NzljMDc1MzViYjRjNTkxZGY3MTk4MTQ4MjZjNmI3OGQyODgyNDUuLjRhMTdj
N2RhMGY3ZDdiNDc2Y2UwYjJjMzVkMTdlZDU0N2QxYWUzMTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViTm90aWZpY2F0aW9uSW50ZXJuYWwuaAorKysgYi9T
b3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYk5vdGlmaWNhdGlvbkludGVybmFsLmgK
QEAgLTI3LDYgKzI3LDcgQEAKICAqLwogCiAjaW1wb3J0ICJXZWJOb3RpZmljYXRpb24uaCIKKyNp
bXBvcnQgPHd0Zi9OYWtlZFB0ci5oPgogCiAjaWYgRU5BQkxFKE5PVElGSUNBVElPTlMpCiAKQEAg
LTM3LDcgKzM4LDcgQEAgY2xhc3MgTm90aWZpY2F0aW9uOwogV2ViQ29yZTo6Tm90aWZpY2F0aW9u
KiBjb3JlKFdlYk5vdGlmaWNhdGlvbiAqKTsKIAogQGludGVyZmFjZSBXZWJOb3RpZmljYXRpb24g
KFdlYk5vdGlmaWNhdGlvbkludGVybmFsKQotLSAoaWQpaW5pdFdpdGhDb3JlTm90aWZpY2F0aW9u
OihXZWJDb3JlOjpOb3RpZmljYXRpb24qKWNvcmVOb3RpZmljYXRpb24gbm90aWZpY2F0aW9uSUQ6
KHVpbnQ2NF90KW5vdGlmaWNhdGlvbklEOworLSAoaWQpaW5pdFdpdGhDb3JlTm90aWZpY2F0aW9u
OihOYWtlZFB0cjxXZWJDb3JlOjpOb3RpZmljYXRpb24+KWNvcmVOb3RpZmljYXRpb24gbm90aWZp
Y2F0aW9uSUQ6KHVpbnQ2NF90KW5vdGlmaWNhdGlvbklEOwogQGVuZAogCiAjZW5kaWYKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViUmVzb3VyY2UubW0gYi9T
b3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYlJlc291cmNlLm1tCmluZGV4IDgyNmE0
Mzg2NjQ4Nzc2YWJiZjNiZGE4MGFhOTE0MjFiZTg0OWRiZWEuLjc3N2NhMGU3MWFmNjFkZWM4MzBh
NWIyNjE5N2U4ZWY2N2Q3ZDllZjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFj
L1dlYlZpZXcvV2ViUmVzb3VyY2UubW0KKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2Vi
Vmlldy9XZWJSZXNvdXJjZS5tbQpAQCAtMjYxLDcgKzI2MSw3IEBAIC0gKGlkKV9pbml0V2l0aENv
cmVSZXNvdXJjZTooUmVmPEFyY2hpdmVSZXNvdXJjZT4mJiljb3JlUmVzb3VyY2UKICAgICByZXR1
cm4gc2VsZjsKIH0KIAotLSAoV2ViQ29yZTo6QXJjaGl2ZVJlc291cmNlJilfY29yZVJlc291cmNl
CistIChOYWtlZFJlZjxXZWJDb3JlOjpBcmNoaXZlUmVzb3VyY2U+KV9jb3JlUmVzb3VyY2UKIHsK
ICAgICByZXR1cm4gKl9wcml2YXRlLT5jb3JlUmVzb3VyY2U7CiB9CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYlJlc291cmNlSW50ZXJuYWwuaCBiL1NvdXJj
ZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViUmVzb3VyY2VJbnRlcm5hbC5oCmluZGV4IDgw
Yzk3NmViNmIzNjU0ZmMxYzY4OGMyYTk2YjgzYmRiN2FmNzcyNTEuLmVhY2IxYTUyOWU1MGIyN2M3
ZWZkMTc0NDFiYzA2OTE1NmY5YjVkNWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kv
bWFjL1dlYlZpZXcvV2ViUmVzb3VyY2VJbnRlcm5hbC5oCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdh
Y3kvbWFjL1dlYlZpZXcvV2ViUmVzb3VyY2VJbnRlcm5hbC5oCkBAIC0yNyw2ICsyNyw3IEBACiAg
Ki8KIAogI2ltcG9ydCAiV2ViUmVzb3VyY2VQcml2YXRlLmgiCisjaW1wb3J0IDx3dGYvTmFrZWRS
ZWYuaD4KICNpbXBvcnQgPHd0Zi9SZWYuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewpAQCAtMzUs
NSArMzYsNSBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIEBpbnRlcmZhY2UgV2ViUmVzb3VyY2Ug
KFdlYlJlc291cmNlSW50ZXJuYWwpCiAtIChpZClfaW5pdFdpdGhDb3JlUmVzb3VyY2U6KFJlZjxX
ZWJDb3JlOjpBcmNoaXZlUmVzb3VyY2U+JiYpY29yZVJlc291cmNlOwotLSAoV2ViQ29yZTo6QXJj
aGl2ZVJlc291cmNlJilfY29yZVJlc291cmNlOworLSAoTmFrZWRSZWY8V2ViQ29yZTo6QXJjaGl2
ZVJlc291cmNlPilfY29yZVJlc291cmNlOwogQGVuZApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dExlZ2FjeS9tYWMvV2ViVmlldy9XZWJWaWRlb0Z1bGxzY3JlZW5Db250cm9sbGVyLmggYi9Tb3Vy
Y2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYlZpZGVvRnVsbHNjcmVlbkNvbnRyb2xsZXIu
aAppbmRleCBmNTc1NzhiZmMwMDI2NGU0ZjQxYjVlZTlmNjg4YTI2YzI4YWQ0NGEyLi5lOGZiNTYy
OTUwOTViZjM3YTRkMjg4MDc1MDQ2ZjM1YmRkMmUwODVhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYlZpZGVvRnVsbHNjcmVlbkNvbnRyb2xsZXIuaAorKysg
Yi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYlZpZGVvRnVsbHNjcmVlbkNvbnRy
b2xsZXIuaApAQCAtMjYsNiArMjYsNyBAQAogI2lmIFBMQVRGT1JNKE1BQykgJiYgRU5BQkxFKFZJ
REVPKQogCiAjaW1wb3J0IDxBcHBLaXQvTlNXaW5kb3dDb250cm9sbGVyLmg+CisjaW1wb3J0IDx3
dGYvTmFrZWRQdHIuaD4KICNpbXBvcnQgPHd0Zi9SZWZQdHIuaD4KIAogbmFtZXNwYWNlIFdlYkNv
cmUgewpAQCAtNDcsOCArNDgsOCBAQCBjbGFzcyBIVE1MVmlkZW9FbGVtZW50OwogICAgIEJPT0wg
X2ZvcmNlRGlzYWJsZUFuaW1hdGlvbjsKIH0KIAotLSAodm9pZClzZXRWaWRlb0VsZW1lbnQ6KFdl
YkNvcmU6OkhUTUxWaWRlb0VsZW1lbnQgKil2aWRlb0VsZW1lbnQ7Ci0tIChXZWJDb3JlOjpIVE1M
VmlkZW9FbGVtZW50ICopdmlkZW9FbGVtZW50OworLSAodm9pZClzZXRWaWRlb0VsZW1lbnQ6KE5h
a2VkUHRyPFdlYkNvcmU6OkhUTUxWaWRlb0VsZW1lbnQ+KXZpZGVvRWxlbWVudDsKKy0gKE5ha2Vk
UHRyPFdlYkNvcmU6OkhUTUxWaWRlb0VsZW1lbnQ+KXZpZGVvRWxlbWVudDsKIAogLSAodm9pZCll
bnRlckZ1bGxzY3JlZW46KE5TU2NyZWVuICopc2NyZWVuOwogLSAodm9pZClleGl0RnVsbHNjcmVl
bjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViVmlkZW9G
dWxsc2NyZWVuQ29udHJvbGxlci5tbSBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcv
V2ViVmlkZW9GdWxsc2NyZWVuQ29udHJvbGxlci5tbQppbmRleCAyM2FhYzM0NDI2YmEwM2FiOTNi
NGU5NjNmMWU4MmY4NTE0MDRhMWNiLi43NmJiNDc2YWIwNDQwMWQ4Mzg0ZTBhN2M3ZjJjMTBlNmYw
Y2RiNmZiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYlZp
ZGVvRnVsbHNjcmVlbkNvbnRyb2xsZXIubW0KKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMv
V2ViVmlldy9XZWJWaWRlb0Z1bGxzY3JlZW5Db250cm9sbGVyLm1tCkBAIC05MywxNCArOTMsMTQg
QEAgLSAodm9pZCl3aW5kb3dEaWRMb2FkCiAgICAgW1tOU05vdGlmaWNhdGlvbkNlbnRlciBkZWZh
dWx0Q2VudGVyXSBhZGRPYnNlcnZlcjpzZWxmIHNlbGVjdG9yOkBzZWxlY3RvcihhcHBsaWNhdGlv
bkRpZENoYW5nZVNjcmVlblBhcmFtZXRlcnM6KSBuYW1lOk5TQXBwbGljYXRpb25EaWRDaGFuZ2VT
Y3JlZW5QYXJhbWV0ZXJzTm90aWZpY2F0aW9uIG9iamVjdDpOU0FwcF07CiB9CiAKLS0gKFdlYkNv
cmU6OkhUTUxWaWRlb0VsZW1lbnQgKil2aWRlb0VsZW1lbnQKKy0gKE5ha2VkUHRyPFdlYkNvcmU6
OkhUTUxWaWRlb0VsZW1lbnQ+KXZpZGVvRWxlbWVudAogewogICAgIHJldHVybiBfdmlkZW9FbGVt
ZW50LmdldCgpOwogfQogCiAvLyBGSVhNRTogVGhpcyBtZXRob2QgaXMgbm90IHJlYWxseSBhIHNl
dHRlci4gVGhlIGNhbGxlciByZWxpZXMgb24gaXRzIHNpZGUgZWZmZWN0cywgYW5kIGl0J3MKIC8v
IGNhbGxlZCBvbmNlIGVhY2ggdGltZSB3ZSBlbnRlciBmdWxsIHNjcmVlbi4gU28gaXQgc2hvdWxk
IGhhdmUgYSBkaWZmZXJlbnQgbmFtZS4KLS0gKHZvaWQpc2V0VmlkZW9FbGVtZW50OihXZWJDb3Jl
OjpIVE1MVmlkZW9FbGVtZW50ICopdmlkZW9FbGVtZW50CistICh2b2lkKXNldFZpZGVvRWxlbWVu
dDooTmFrZWRQdHI8V2ViQ29yZTo6SFRNTFZpZGVvRWxlbWVudD4pdmlkZW9FbGVtZW50CiB7CiAg
ICAgQVNTRVJUKHZpZGVvRWxlbWVudCk7CiAgICAgX3ZpZGVvRWxlbWVudCA9IHZpZGVvRWxlbWVu
dDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViVmlkZW9G
dWxsc2NyZWVuSFVEV2luZG93Q29udHJvbGxlci5oIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMv
V2ViVmlldy9XZWJWaWRlb0Z1bGxzY3JlZW5IVURXaW5kb3dDb250cm9sbGVyLmgKaW5kZXggZjY3
ZmVhZTEzNDJlNmE5NzdjNTZmYjFmNWM1MDQ0MjEyMDBkZDIxOS4uZmYxODRhZDQxMDZmYzE3OGI2
NzI2NjU5MjVmYjdiZGZlYWJjNTJkNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9t
YWMvV2ViVmlldy9XZWJWaWRlb0Z1bGxzY3JlZW5IVURXaW5kb3dDb250cm9sbGVyLmgKKysrIGIv
U291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJWaWRlb0Z1bGxzY3JlZW5IVURXaW5k
b3dDb250cm9sbGVyLmgKQEAgLTMxLDYgKzMxLDcgQEAKICNpbXBvcnQgPEFwcEtpdC9OU1RyYWNr
aW5nQXJlYS5oPgogI2ltcG9ydCA8QXBwS2l0L05TV2luZG93Lmg+CiAjaW1wb3J0IDxBcHBLaXQv
TlNXaW5kb3dDb250cm9sbGVyLmg+CisjaW1wb3J0IDx3dGYvTmFrZWRQdHIuaD4KIAogbmFtZXNw
YWNlIFdlYkNvcmUgewogY2xhc3MgSFRNTFZpZGVvRWxlbWVudDsKQEAgLTY0LDcgKzY1LDcgQEAg
Y2xhc3MgSFRNTFZpZGVvRWxlbWVudDsKIAogQHByb3RvY29sIFdlYlZpZGVvRnVsbHNjcmVlbkhV
RFdpbmRvd0NvbnRyb2xsZXJEZWxlZ2F0ZSA8TlNPYmplY3Q+CiAtICh2b2lkKXJlcXVlc3RFeGl0
RnVsbHNjcmVlbjsKLS0gKFdlYkNvcmU6OkhUTUxWaWRlb0VsZW1lbnQqKXZpZGVvRWxlbWVudDsK
Ky0gKE5ha2VkUHRyPFdlYkNvcmU6OkhUTUxWaWRlb0VsZW1lbnQ+KXZpZGVvRWxlbWVudDsKIEBl
bmQKIAogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3
L1dlYlZpZXcubW0gYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYlZpZXcubW0K
aW5kZXggNGM0MTg2NGQ4OWY0MDU2N2VkODFlZDJlZmVmYjUwMWY2NzUzZGI4NC4uZWFiMDY4NTQy
OTFjMzY0ZWQxYWFiYmFjNzM0MjkyNTUxOGMxMTI5YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dExlZ2FjeS9tYWMvV2ViVmlldy9XZWJWaWV3Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kv
bWFjL1dlYlZpZXcvV2ViVmlldy5tbQpAQCAtMjYyMSw3ICsyNjIxLDcgQEAgLSAodm9pZClfc2V0
SG9zdEFwcGxpY2F0aW9uUHJvY2Vzc0lkZW50aWZpZXI6KHBpZF90KXBpZCBhdWRpdFRva2VuOihh
dWRpdF90b2tlbl8KICNlbmRpZiAvLyBQTEFURk9STShJT1NfRkFNSUxZKQogI2VuZGlmIC8vIEVO
QUJMRShSRU1PVEVfSU5TUEVDVE9SKQogCi0tIChXZWJDb3JlOjpQYWdlKilwYWdlCistIChOYWtl
ZFB0cjxXZWJDb3JlOjpQYWdlPilwYWdlCiB7CiAgICAgcmV0dXJuIF9wcml2YXRlLT5wYWdlOwog
fQpAQCAtOTMxMiw3ICs5MzEyLDcgQEAgLSAodm9pZClfc2NoZWR1bGVMYXllckZsdXNoRm9yUGVu
ZGluZ1RpbGVDYWNoZVJlcGFpbnQKICNlbmRpZgogCiAjaWYgRU5BQkxFKFZJREVPKQotLSAodm9p
ZClfZW50ZXJWaWRlb0Z1bGxzY3JlZW5Gb3JWaWRlb0VsZW1lbnQ6KFdlYkNvcmU6OkhUTUxWaWRl
b0VsZW1lbnQqKXZpZGVvRWxlbWVudCBtb2RlOihXZWJDb3JlOjpIVE1MTWVkaWFFbGVtZW50RW51
bXM6OlZpZGVvRnVsbHNjcmVlbk1vZGUpbW9kZQorLSAodm9pZClfZW50ZXJWaWRlb0Z1bGxzY3Jl
ZW5Gb3JWaWRlb0VsZW1lbnQ6KE5ha2VkUHRyPFdlYkNvcmU6OkhUTUxWaWRlb0VsZW1lbnQ+KXZp
ZGVvRWxlbWVudCBtb2RlOihXZWJDb3JlOjpIVE1MTWVkaWFFbGVtZW50RW51bXM6OlZpZGVvRnVs
bHNjcmVlbk1vZGUpbW9kZQogewogICAgIGlmIChfcHJpdmF0ZS0+ZnVsbHNjcmVlbkNvbnRyb2xs
ZXIpIHsKICAgICAgICAgaWYgKFtfcHJpdmF0ZS0+ZnVsbHNjcmVlbkNvbnRyb2xsZXIgdmlkZW9F
bGVtZW50XSA9PSB2aWRlb0VsZW1lbnQpIHsKQEAgLTkzNjMsMTQgKzkzNjMsMTQgQEAgLSAoQk9P
TClfaGFzQWN0aXZlVmlkZW9Gb3JDb250cm9sc0ludGVyZmFjZQogICAgIHJldHVybiBtZWRpYUVs
ZW1lbnQtPmhhc0F1ZGlvKCkgfHwgbWVkaWFFbGVtZW50LT5oYXNWaWRlbygpOwogfQogCi0tICh2
b2lkKV9zZXRVcFBsYXliYWNrQ29udHJvbHNNYW5hZ2VyRm9yTWVkaWFFbGVtZW50OihXZWJDb3Jl
OjpIVE1MTWVkaWFFbGVtZW50JiltZWRpYUVsZW1lbnQKKy0gKHZvaWQpX3NldFVwUGxheWJhY2tD
b250cm9sc01hbmFnZXJGb3JNZWRpYUVsZW1lbnQ6KE5ha2VkUmVmPFdlYkNvcmU6OkhUTUxNZWRp
YUVsZW1lbnQ+KW1lZGlhRWxlbWVudAogewotICAgIGlmIChfcHJpdmF0ZS0+cGxheWJhY2tTZXNz
aW9uTW9kZWwgJiYgX3ByaXZhdGUtPnBsYXliYWNrU2Vzc2lvbk1vZGVsLT5tZWRpYUVsZW1lbnQo
KSA9PSAmbWVkaWFFbGVtZW50KQorICAgIGlmIChfcHJpdmF0ZS0+cGxheWJhY2tTZXNzaW9uTW9k
ZWwgJiYgX3ByaXZhdGUtPnBsYXliYWNrU2Vzc2lvbk1vZGVsLT5tZWRpYUVsZW1lbnQoKSA9PSBt
ZWRpYUVsZW1lbnQucHRyKCkpCiAgICAgICAgIHJldHVybjsKIAogICAgIGlmICghX3ByaXZhdGUt
PnBsYXliYWNrU2Vzc2lvbk1vZGVsKQogICAgICAgICBfcHJpdmF0ZS0+cGxheWJhY2tTZXNzaW9u
TW9kZWwgPSBXZWJDb3JlOjpQbGF5YmFja1Nlc3Npb25Nb2RlbE1lZGlhRWxlbWVudDo6Y3JlYXRl
KCk7Ci0gICAgX3ByaXZhdGUtPnBsYXliYWNrU2Vzc2lvbk1vZGVsLT5zZXRNZWRpYUVsZW1lbnQo
Jm1lZGlhRWxlbWVudCk7CisgICAgX3ByaXZhdGUtPnBsYXliYWNrU2Vzc2lvbk1vZGVsLT5zZXRN
ZWRpYUVsZW1lbnQobWVkaWFFbGVtZW50LnB0cigpKTsKIAogICAgIGlmICghX3ByaXZhdGUtPnBs
YXliYWNrU2Vzc2lvbkludGVyZmFjZSkKICAgICAgICAgX3ByaXZhdGUtPnBsYXliYWNrU2Vzc2lv
bkludGVyZmFjZSA9IFdlYkNvcmU6OlBsYXliYWNrU2Vzc2lvbkludGVyZmFjZU1hYzo6Y3JlYXRl
KCpfcHJpdmF0ZS0+cGxheWJhY2tTZXNzaW9uTW9kZWwpOwpAQCAtOTM5NCw3ICs5Mzk0LDcgQEAg
LSAodm9pZClfY2xlYXJQbGF5YmFja0NvbnRyb2xzTWFuYWdlcgogI2VuZGlmIC8vIEVOQUJMRShW
SURFTykKIAogI2lmIEVOQUJMRShGVUxMU0NSRUVOX0FQSSkgJiYgIVBMQVRGT1JNKElPU19GQU1J
TFkpCi0tIChCT09MKV9zdXBwb3J0c0Z1bGxTY3JlZW5Gb3JFbGVtZW50Oihjb25zdCBXZWJDb3Jl
OjpFbGVtZW50KillbGVtZW50IHdpdGhLZXlib2FyZDooQk9PTCl3aXRoS2V5Ym9hcmQKKy0gKEJP
T0wpX3N1cHBvcnRzRnVsbFNjcmVlbkZvckVsZW1lbnQ6KE5ha2VkUHRyPGNvbnN0IFdlYkNvcmU6
OkVsZW1lbnQ+KWVsZW1lbnQgd2l0aEtleWJvYXJkOihCT09MKXdpdGhLZXlib2FyZAogewogICAg
IGlmICghW1tzZWxmIHByZWZlcmVuY2VzXSBmdWxsU2NyZWVuRW5hYmxlZF0pCiAgICAgICAgIHJl
dHVybiBOTzsKQEAgLTk0MDIsMTcgKzk0MDIsMTcgQEAgLSAoQk9PTClfc3VwcG9ydHNGdWxsU2Ny
ZWVuRm9yRWxlbWVudDooY29uc3QgV2ViQ29yZTo6RWxlbWVudCopZWxlbWVudCB3aXRoS2V5Ym8K
ICAgICByZXR1cm4gdHJ1ZTsKIH0KIAotLSAodm9pZClfZW50ZXJGdWxsU2NyZWVuRm9yRWxlbWVu
dDooV2ViQ29yZTo6RWxlbWVudCopZWxlbWVudAorLSAodm9pZClfZW50ZXJGdWxsU2NyZWVuRm9y
RWxlbWVudDooTmFrZWRQdHI8V2ViQ29yZTo6RWxlbWVudD4pZWxlbWVudAogewogICAgIGlmICgh
X3ByaXZhdGUtPm5ld0Z1bGxzY3JlZW5Db250cm9sbGVyKQogICAgICAgICBfcHJpdmF0ZS0+bmV3
RnVsbHNjcmVlbkNvbnRyb2xsZXIgPSBbW1dlYkZ1bGxTY3JlZW5Db250cm9sbGVyIGFsbG9jXSBp
bml0XTsKIAotICAgIFtfcHJpdmF0ZS0+bmV3RnVsbHNjcmVlbkNvbnRyb2xsZXIgc2V0RWxlbWVu
dDplbGVtZW50XTsKKyAgICBbX3ByaXZhdGUtPm5ld0Z1bGxzY3JlZW5Db250cm9sbGVyIHNldEVs
ZW1lbnQ6ZWxlbWVudC5nZXQoKV07CiAgICAgW19wcml2YXRlLT5uZXdGdWxsc2NyZWVuQ29udHJv
bGxlciBzZXRXZWJWaWV3OnNlbGZdOwogICAgIFtfcHJpdmF0ZS0+bmV3RnVsbHNjcmVlbkNvbnRy
b2xsZXIgZW50ZXJGdWxsU2NyZWVuOltbc2VsZiB3aW5kb3ddIHNjcmVlbl1dOyAgICAgICAgCiB9
CiAKLS0gKHZvaWQpX2V4aXRGdWxsU2NyZWVuRm9yRWxlbWVudDooV2ViQ29yZTo6RWxlbWVudCop
ZWxlbWVudAorLSAodm9pZClfZXhpdEZ1bGxTY3JlZW5Gb3JFbGVtZW50OihOYWtlZFB0cjxXZWJD
b3JlOjpFbGVtZW50PillbGVtZW50CiB7CiAgICAgaWYgKCFfcHJpdmF0ZS0+bmV3RnVsbHNjcmVl
bkNvbnRyb2xsZXIpCiAgICAgICAgIHJldHVybjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRM
ZWdhY3kvbWFjL1dlYlZpZXcvV2ViVmlld0ludGVybmFsLmggYi9Tb3VyY2UvV2ViS2l0TGVnYWN5
L21hYy9XZWJWaWV3L1dlYlZpZXdJbnRlcm5hbC5oCmluZGV4IDg1ZTIzZjg1NzdhZjRiNmRjMjZi
MGQxYmQ0NzdlYWMyYmIxZTgwMDEuLmYxYTA4Njc3YWQxMTQ3ZjkzNzIzMGYzOGJiNjc0Y2VjY2Vl
M2UyZTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViVmll
d0ludGVybmFsLmgKKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJWaWV3
SW50ZXJuYWwuaApAQCAtNDUsNiArNDUsOCBAQAogI2ltcG9ydCA8V2ViQ29yZS9XZWJDb3JlS2V5
Ym9hcmRVSU1vZGUuaD4KICNpbXBvcnQgPGZ1bmN0aW9uYWw+CiAjaW1wb3J0IDx3dGYvRm9yd2Fy
ZC5oPgorI2ltcG9ydCA8d3RmL05ha2VkUHRyLmg+CisjaW1wb3J0IDx3dGYvTmFrZWRSZWYuaD4K
ICNpbXBvcnQgPHd0Zi9SZXRhaW5QdHIuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewpAQCAtMjcx
LDE5ICsyNzMsMTkgQEAgT0JKQ19DTEFTUyBOU1RleHRBbHRlcm5hdGl2ZXM7CiAtICh2b2lkKV9p
bnZhbGlkYXRlVXNlckFnZW50Q2FjaGU7CiAKICNpZiBFTkFCTEUoVklERU8pICYmIGRlZmluZWQo
X19jcGx1c3BsdXMpCi0tICh2b2lkKV9lbnRlclZpZGVvRnVsbHNjcmVlbkZvclZpZGVvRWxlbWVu
dDooV2ViQ29yZTo6SFRNTFZpZGVvRWxlbWVudCopdmlkZW9FbGVtZW50IG1vZGU6KFdlYkNvcmU6
OkhUTUxNZWRpYUVsZW1lbnRFbnVtczo6VmlkZW9GdWxsc2NyZWVuTW9kZSltb2RlOworLSAodm9p
ZClfZW50ZXJWaWRlb0Z1bGxzY3JlZW5Gb3JWaWRlb0VsZW1lbnQ6KE5ha2VkUHRyPFdlYkNvcmU6
OkhUTUxWaWRlb0VsZW1lbnQ+KXZpZGVvRWxlbWVudCBtb2RlOihXZWJDb3JlOjpIVE1MTWVkaWFF
bGVtZW50RW51bXM6OlZpZGVvRnVsbHNjcmVlbk1vZGUpbW9kZTsKIC0gKHZvaWQpX2V4aXRWaWRl
b0Z1bGxzY3JlZW47CiAjaWYgUExBVEZPUk0oTUFDKSAmJiBFTkFCTEUoVklERU9fUFJFU0VOVEFU
SU9OX01PREUpCiAtIChCT09MKV9oYXNBY3RpdmVWaWRlb0ZvckNvbnRyb2xzSW50ZXJmYWNlOwot
LSAodm9pZClfc2V0VXBQbGF5YmFja0NvbnRyb2xzTWFuYWdlckZvck1lZGlhRWxlbWVudDooV2Vi
Q29yZTo6SFRNTE1lZGlhRWxlbWVudCYpbWVkaWFFbGVtZW50OworLSAodm9pZClfc2V0VXBQbGF5
YmFja0NvbnRyb2xzTWFuYWdlckZvck1lZGlhRWxlbWVudDooTmFrZWRSZWY8V2ViQ29yZTo6SFRN
TE1lZGlhRWxlbWVudD4pbWVkaWFFbGVtZW50OwogLSAodm9pZClfY2xlYXJQbGF5YmFja0NvbnRy
b2xzTWFuYWdlcjsKICNlbmRpZgogI2VuZGlmCiAKICNpZiBFTkFCTEUoRlVMTFNDUkVFTl9BUEkp
ICYmICFQTEFURk9STShJT1NfRkFNSUxZKSAmJiBkZWZpbmVkKF9fY3BsdXNwbHVzKQotLSAoQk9P
TClfc3VwcG9ydHNGdWxsU2NyZWVuRm9yRWxlbWVudDooV2ViQ29yZTo6RWxlbWVudCopZWxlbWVu
dCB3aXRoS2V5Ym9hcmQ6KEJPT0wpd2l0aEtleWJvYXJkOwotLSAodm9pZClfZW50ZXJGdWxsU2Ny
ZWVuRm9yRWxlbWVudDooV2ViQ29yZTo6RWxlbWVudCopZWxlbWVudDsKLS0gKHZvaWQpX2V4aXRG
dWxsU2NyZWVuRm9yRWxlbWVudDooV2ViQ29yZTo6RWxlbWVudCopZWxlbWVudDsKKy0gKEJPT0wp
X3N1cHBvcnRzRnVsbFNjcmVlbkZvckVsZW1lbnQ6KE5ha2VkUHRyPFdlYkNvcmU6OkVsZW1lbnQ+
KWVsZW1lbnQgd2l0aEtleWJvYXJkOihCT09MKXdpdGhLZXlib2FyZDsKKy0gKHZvaWQpX2VudGVy
RnVsbFNjcmVlbkZvckVsZW1lbnQ6KE5ha2VkUHRyPFdlYkNvcmU6OkVsZW1lbnQ+KWVsZW1lbnQ7
CistICh2b2lkKV9leGl0RnVsbFNjcmVlbkZvckVsZW1lbnQ6KE5ha2VkUHRyPFdlYkNvcmU6OkVs
ZW1lbnQ+KWVsZW1lbnQ7CiAjZW5kaWYKIAogLy8gQ29udmVyc2lvbiBmdW5jdGlvbnMgYmV0d2Vl
biBXZWJDb3JlIHJvb3QgdmlldyBjb29yZGluYXRlcyBhbmQgd2ViIHZpZXcgY29vcmRpbmF0ZXMu
Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>387071</attachid>
            <date>2020-01-07 21:38:57 -0800</date>
            <delta_ts>2020-01-07 21:44:34 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-205905-20200107213856.patch</filename>
            <type>text/plain</type>
            <size>120347</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjU0MTUyCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA4
MmRlZmYyOGUyYjlkNGZmMjA4N2FlNGIwODE2MWJjZGRhYmUzMmMwLi43YTJiNzdiOTU4OWJjZjIx
OWM1YTRlY2IzYWE3OWQ4MmZmNDU0ZDcxIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxMyBAQAorMjAyMC0wMS0wNyAgWXVzdWtlIFN1enVraSAgPHlzdXp1a2lAYXBwbGUuY29t
PgorCisgICAgICAgIFJlZHVjZSBiaW5hcnkgc2l6ZSBieSBwdXJnaW5nIEMrKyB0eXBlIGluZm9y
bWF0aW9uIGluIE9iamVjdGl2ZS1DIGZpZWxkcyBhbmQgcGFyYW1ldGVycworICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjA1OTA1CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBBUEkvSlNXcmFwcGVyTWFwLm1t
OgorICAgICAgICAoLVtKU09iakNDbGFzc0luZm8gZGVhbGxvY10pOgorCiAyMDIwLTAxLTA3ICBZ
dXN1a2UgU3V6dWtpICA8eXN1enVraUBhcHBsZS5jb20+CiAKICAgICAgICAgW0pTQ10gUmVtb3Zl
IHZtIGFjY2Vzc29yIGluIEpTVmlydHVhbE1hY2hpbmUgdG8gcmVkdWNlIGJpbmFyeSBzaXplCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5nZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmlu
ZGV4IDliMzIxMGNmYzUyOGQxMzdiOTI4ZDVhZmJiZmEyMDY3ZTIyNWIyMDQuLjI3ZjY0ZWEyZWRk
ZmRjZmRmYWNiNjJkMDQ2ZDI4MmVlZGM3NzEwN2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNTQgQEAKKzIwMjAt
MDEtMDcgIFl1c3VrZSBTdXp1a2kgIDx5c3V6dWtpQGFwcGxlLmNvbT4KKworICAgICAgICBSZWR1
Y2UgYmluYXJ5IHNpemUgYnkgcHVyZ2luZyBDKysgdHlwZSBpbmZvcm1hdGlvbiBpbiBPYmplY3Rp
dmUtQyBmaWVsZHMgYW5kIHBhcmFtZXRlcnMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTIwNTkwNQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgIE9iamVjdGl2ZS1DIGhhcyByZWZsZWN0aW9uIG1lY2hhbmlzbS4g
VGhpcyBtZWFucyB0aGF0IGZpZWxkcywgbWV0aG9kcywgYW5kIHRoZWlyIHR5cGVzCisgICAgICAg
IG5lZWQgdG8gaG9sZCBpdHMgc3RyaW5nIHJlcHJlc2VudGF0aW9ucyBpbiBiaW5hcnkgZXZlbiBp
ZiB3ZSBhcmUgdXNpbmcgcmVsZWFzZSBidWlsZC4KKyAgICAgICAgV2hpbGUgdHlwaWNhbCBPYmpl
Y3RpdmUtQyBjbGFzcyBkb2VzIG5vdCBoYXZlIGxhcmdlIHNpemUgb2YgdHlwZSBuYW1lcywgQysr
IHN0cnVjdCAvIGNsYXNzCisgICAgICAgIGhhcyB2ZXJ5IGxhcmdlIG9uZSwgYW5kIHB1dHRpbmcg
dGhlbSBpbiBPYmplY3RpdmUtQyBtZXRob2QgbmFtZXMsIHBhcmFtZXRlciB0eXBlcywgb3IgZmll
bGRzCisgICAgICAgIG1ha2VzIGJpbmFyeSBzaXplIHZlcnkgbGFyZ2UuCisKKyAgICAgICAgSW50
ZXJlc3RpbmcgdGhpbmcgaXMgdGhhdCB0eXBlIGluZm9ybWF0aW9uIGlzIGdhdGhlcmVkIHdoZW4g
cGFyYW1ldGVyIGlzIGEgQysrIHBvaW50ZXIsIHJlZmVyZW5jZSwKKyAgICAgICAgb3IgdmFsdWUu
IEFuZCBpdCBnYXRoZXJzIG9uZS1sZXZlbCBkZWVwIGluZm9ybWF0aW9uIGZyb20gdGhpcyBwb2lu
dGVyIGV0Yy4gVGhpcyBtZWFucyB0aGF0LCBpZgorICAgICAgICB3ZSB1c2UgUmVmUHRyPFQ+LCBj
b2xsZWN0ZWQgdHlwZSBpbmZvcm1hdGlvbiBpcyB0aGUgb25lIG9mIFJlZlB0ciwgbm90IG9uZSBv
ZiBULiBTbyBpdCBiZWNvbWVzIHNpZ25pZmljYW50bHkKKyAgICAgICAgc21hbGxlci4KKworICAg
ICAgICBUaGlzIHBhdGNoIGludHJvZHVjZXMgTmF0aXZlUmVmPFQ+LiBUaGlzIGlzIHNpbWlsYXIg
dG8gUmVmIHdoaWxlIGl0IGRvZXMgbm90IGhhdmUgYW55IG93bmVyc2hpcC4gU28gaXQKKyAgICAg
ICAgaXMganVzdCBhIHdyYXBwZXIgYXJvdW5kIFQmLiBXZSBhbHJlYWR5IGhhdmUgTmF0aXZlUHRy
PFQ+LiBBbmQgdXNlIE5hdGl2ZVJlZjxUPiAvIE5hdGl2ZVB0cjxUPiBpbnN0ZWFkCisgICAgICAg
IG9mIFQmIGFuZCBUKiBpZiwKKworICAgICAgICAgICAgMS4gVCBpcyBDKysgY2xhc3MuCisgICAg
ICAgICAgICAyLiBUKiAvIFQmIGlzIGluIE9iamVjdGl2ZS1DIGZpZWxkcyBvciBwYXJhbXRlciB0
eXBlcyAoaW5jbHVkaW5nIGEgcmV0dXJuIHR5cGUpLgorCisgICAgICAgIFRoZW4sIHRoZXNlIHR5
cGUgaW5mb3JtYXRpb24gaXMgb25lIG9mIE5hdGl2ZVJlZjxUPiAvIE5hdGl2ZVB0cjxUPiBpbnN0
ZWFkIG9mIFQsIGFuZCB3ZSBjYW4gcmVkdWNlIGJpbmFyeSBzaXplLgorCisgICAgICAgIFRoaXMg
cGF0Y2ggc2F2ZXMgNjAwfktCIGluIGJpbmFyeSBzaXplLgorCisgICAgICAgIE5vdGUgdGhlIGZv
bGxvd2luZyB0aGluZ3MuCisKKyAgICAgICAgMS4gSWYgd2UgdXNlIGBfX2F0dHJpYnV0ZV9fKChv
YmpjX2RpcmVjdCkpYCwgYF9fYXR0cmlidXRlX18oKG9iamNfZGlyZWN0X21lbWJlcnMpKWAsIHdl
IGNhbiBjb21wbGV0ZWx5IHJlbW92ZSB0aGVzZQorICAgICAgICAgICBtZXRhZGF0YSB3aXRob3V0
IHVzaW5nIE5hdGl2ZVJlZiAvIE5hdGl2ZVB0clsxXS4gSG93ZXZlciwgdGhpcyBpcyBub3QgYXZh
aWxhYmxlIGZvciBvdXIgc3VwcG9ydGluZyBwbGF0Zm9ybXMgbm93IChpbmNsdWRpbmcKKyAgICAg
ICAgICAgcHJlLUNhdGFsaW5hIE9TZXMpLiBUaGlzIE5hdGl2ZVJlZiAvIE5hdGl2ZVB0ciB0ZWNo
bmlxdWUgY2FuIHJlZHVjZSBiaW5hcnkgd2l0aG91dCB3YWl0aW5nIGZvciBpdC4KKyAgICAgICAg
Mi4gUmV2ZXJ0aW5nIE5hdGl2ZVJlZiAvIE5hdGl2ZVB0ciB0byB1c3VhbCByZWZlcmVuY2UgLyBw
b2ludGVyIGlzIGZhaXJseSBlYXN5IHNpbmNlIGl0IGlzIHdlbGwgdHlwZWQuIE9uY2UgYF9fYXR0
cmlidXRlX18oKG9iamNfZGlyZWN0KSlgCisgICAgICAgICAgIGJlY29tZXMgYXZhaWxhYmxlIGlu
IG91ciBwbGF0Zm9ybXMsIHdlIGNhbiBjb25zaWRlciBpdC4gQnV0IHVzaW5nIE5hdGl2ZVJlZiAv
IE5hdGl2ZVB0ciBpcyBub3QgaGFybWxlc3MuCisKKyAgICAgICAgWzFdOiBodHRwczovL2dpdGh1
Yi5jb20vbGx2bS9sbHZtLXByb2plY3QvY29tbWl0L2Q0ZTFiYTNmYTlkZmVjMjYxM2JkY2M3ZGIw
YjU4ZGVhNDkwYzU2YjEKKworICAgICAgICAqIFdURi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9q
OgorICAgICAgICAqIHd0Zi9DTWFrZUxpc3RzLnR4dDoKKyAgICAgICAgKiB3dGYvTmFrZWRSZWYu
aDogQWRkZWQuCisgICAgICAgIChXVEY6Ok5ha2VkUmVmOjpOYWtlZFJlZik6CisgICAgICAgIChX
VEY6Ok5ha2VkUmVmOjpvcGVyYXRvci0+IGNvbnN0KToKKyAgICAgICAgKFdURjo6TmFrZWRSZWY6
OmdldCBjb25zdCk6CisgICAgICAgIChXVEY6Ok5ha2VkUmVmOjpvcGVyYXRvciBUJiBjb25zdCk6
CisgICAgICAgIChXVEY6Ok5ha2VkUmVmOjpvcGVyYXRvciEgY29uc3QpOgorICAgICAgICAoV1RG
Ojo9KToKKyAgICAgICAgKFdURjo6TmFrZWRSZWY8VD46OnN3YXApOgorICAgICAgICAoV1RGOjpz
d2FwKToKKwogMjAyMC0wMS0wNyAgQ2FybG9zIEdhcmNpYSBDYW1wb3MgIDxjZ2FyY2lhQGlnYWxp
YS5jb20+CiAKICAgICAgICAgW0dUS11bV1BFXSBBZGQgQVBJIHRvIHNldCBwdXJwb3NlIGFuZCBo
aW50cyBvZiBhY3RpdmUgZWRpdGFibGUgZWxlbWVudCB0byBpbnB1dCBtZXRob2RzCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cK
aW5kZXggYzVmNjI5OWE5NmFjY2M1MTFiMzk1OTkwZjY4YjRkMWVkODQ4NTJmNC4uMmQzZTVmODI5
ZWJlZGI5YWFhMmQyMDUzOGQxNmI1YjA5NDQ3YWNmNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIx
IEBACisyMDIwLTAxLTA3ICBZdXN1a2UgU3V6dWtpICA8eXN1enVraUBhcHBsZS5jb20+CisKKyAg
ICAgICAgUmVkdWNlIGJpbmFyeSBzaXplIGJ5IHB1cmdpbmcgQysrIHR5cGUgaW5mb3JtYXRpb24g
aW4gT2JqZWN0aXZlLUMgZmllbGRzIGFuZCBwYXJhbWV0ZXJzCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDU5MDUKKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBObyBiZWhhdmlvciBjaGFuZ2UuCisKKyAgICAg
ICAgKiBwYWdlL21hYy9XZWJDb3JlRnJhbWVWaWV3Lmg6CisgICAgICAgICogcGxhdGZvcm0vZ3Jh
cGhpY3MvY29jb2EvV2ViR0xMYXllci5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Nv
Y29hL1dlYkdMTGF5ZXIubW06CisgICAgICAgICgtW1dlYkdMTGF5ZXIgaW5pdFdpdGhHcmFwaGlj
c0NvbnRleHRHTDpdKToKKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvU2Nyb2xsQW5pbWF0b3JNYWMu
bW06CisgICAgICAgICgtW1dlYlNjcm9sbEFuaW1hdGlvbkhlbHBlckRlbGVnYXRlIGluaXRXaXRo
U2Nyb2xsQW5pbWF0b3I6XSk6CisgICAgICAgICgtW1dlYlNjcm9sbEFuaW1hdGlvbkhlbHBlckRl
bGVnYXRlIGludmFsaWRhdGVdKToKKyAgICAgICAgKC1bV2ViU2Nyb2xsZXJJbXBEZWxlZ2F0ZSBz
Y3JvbGxBbmltYXRvcl0pOgorCiAyMDIwLTAxLTA3ICBSeWFuIEhhZGRhZCAgPHJ5YW5oYWRkYWRA
YXBwbGUuY29tPgogCiAgICAgICAgIFVucmV2aWV3ZWQsIHJvbGxpbmcgb3V0IHIyNTQxNDQuCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdl
TG9nCmluZGV4IDMxM2U0MDdmMTU2MGQ5Yzk2NWRhOWRkMmU1NGU4NGZiZWEyYTZiNzcuLjIzMmNi
MTM2MTJmNDdkNmExNDU1NmZlNTU2MTFkMjhlYWI5NmExYjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEs
NzMgQEAKKzIwMjAtMDEtMDcgIFl1c3VrZSBTdXp1a2kgIDx5c3V6dWtpQGFwcGxlLmNvbT4KKwor
ICAgICAgICBSZWR1Y2UgYmluYXJ5IHNpemUgYnkgcHVyZ2luZyBDKysgdHlwZSBpbmZvcm1hdGlv
biBpbiBPYmplY3RpdmUtQyBmaWVsZHMgYW5kIHBhcmFtZXRlcnMKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwNTkwNQorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvY29jb2EvTmV0
d29ya1Nlc3Npb25Db2NvYS5tbToKKyAgICAgICAgKC1bV0tOZXR3b3JrU2Vzc2lvbkRlbGVnYXRl
IGluaXRXaXRoTmV0d29ya1Nlc3Npb246d3JhcHBlcjp3aXRoQ3JlZGVudGlhbHM6XSk6CisgICAg
ICAgICogU2hhcmVkL0FQSS9Db2NvYS9XS0Jyb3dzaW5nQ29udGV4dEhhbmRsZS5tbToKKyAgICAg
ICAgKC1bV0tCcm93c2luZ0NvbnRleHRIYW5kbGUgX2luaXRXaXRoUGFnZVByb3h5Ol0pOgorICAg
ICAgICAoLVtXS0Jyb3dzaW5nQ29udGV4dEhhbmRsZSBfaW5pdFdpdGhQYWdlOl0pOgorICAgICAg
ICAqIFNoYXJlZC9BUEkvQ29jb2EvV0tCcm93c2luZ0NvbnRleHRIYW5kbGVJbnRlcm5hbC5oOgor
ICAgICAgICAqIFNoYXJlZC9BUEkvQ29jb2EvX1dLUmVtb3RlT2JqZWN0UmVnaXN0cnkubW06Cisg
ICAgICAgICgtW19XS1JlbW90ZU9iamVjdFJlZ2lzdHJ5IF9pbml0V2l0aFdlYlBhZ2U6XSk6Cisg
ICAgICAgICgtW19XS1JlbW90ZU9iamVjdFJlZ2lzdHJ5IF9pbml0V2l0aFdlYlBhZ2VQcm94eTpd
KToKKyAgICAgICAgKiBTaGFyZWQvQVBJL0NvY29hL19XS1JlbW90ZU9iamVjdFJlZ2lzdHJ5SW50
ZXJuYWwuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlldy5tbToKKyAg
ICAgICAgKC1bV0tXZWJWaWV3IF9wYWdlXSk6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9Db2Nv
YS9XS1dlYlZpZXdJbnRlcm5hbC5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvV0tX
ZWJzaXRlRGF0YVN0b3JlLm1tOgorICAgICAgICAoLVtXS1dlYnNpdGVEYXRhU3RvcmUgX2dldEFs
bFN0b3JhZ2VBY2Nlc3NFbnRyaWVzRm9yOmNvbXBsZXRpb25IYW5kbGVyOl0pOgorICAgICAgICAq
IFVJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLVGh1bWJuYWlsVmlldy5tbToKKyAgICAgICAgKiBVSVBy
b2Nlc3MvQVBJL21hYy9XS1ZpZXcubW06CisgICAgICAgICgtW1dLVmlldyBpbml0V2l0aEZyYW1l
OnByb2Nlc3NQb29sOmNvbmZpZ3VyYXRpb246XSk6CisgICAgICAgICogVUlQcm9jZXNzL0NvY29h
L1dlYlZpZXdJbXBsLm1tOgorICAgICAgICAoV2ViS2l0OjpXZWJWaWV3SW1wbDo6V2ViVmlld0lt
cGwpOgorICAgICAgICAoV2ViS2l0OjpXZWJWaWV3SW1wbDo6c2V0TGF5b3V0TW9kZSk6CisgICAg
ICAgIChXZWJLaXQ6OldlYlZpZXdJbXBsOjpmdWxsU2NyZWVuV2luZG93Q29udHJvbGxlcik6Cisg
ICAgICAgIChXZWJLaXQ6OldlYlZpZXdJbXBsOjpyZW1vdGVPYmplY3RSZWdpc3RyeSk6CisgICAg
ICAgICogVUlQcm9jZXNzL2lvcy9XS0FwcGxpY2F0aW9uU3RhdGVUcmFja2luZ1ZpZXcubW06Cisg
ICAgICAgICgtW1dLQXBwbGljYXRpb25TdGF0ZVRyYWNraW5nVmlldyB3aWxsTW92ZVRvV2luZG93
Ol0pOgorICAgICAgICAoLVtXS0FwcGxpY2F0aW9uU3RhdGVUcmFja2luZ1ZpZXcgZGlkTW92ZVRv
V2luZG93XSk6CisgICAgICAgICogVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3Lmg6CisgICAg
ICAgICogVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3Lm1tOgorICAgICAgICAoLVtXS0NvbnRl
bnRWaWV3IGluaXRXaXRoRnJhbWU6cHJvY2Vzc1Bvb2w6Y29uZmlndXJhdGlvbjp3ZWJWaWV3Ol0p
OgorICAgICAgICAqIFVJUHJvY2Vzcy9pb3MvZnVsbHNjcmVlbi9XS0Z1bGxTY3JlZW5WaWV3Q29u
dHJvbGxlci5tbToKKyAgICAgICAgKC1bV0tGdWxsU2NyZWVuVmlld0NvbnRyb2xsZXIgdmlkZW9D
b250cm9sc01hbmFnZXJEaWRDaGFuZ2VdKToKKyAgICAgICAgKC1bV0tGdWxsU2NyZWVuVmlld0Nv
bnRyb2xsZXIgX21hbmFnZXJdKToKKyAgICAgICAgKC1bV0tGdWxsU2NyZWVuVmlld0NvbnRyb2xs
ZXIgX3RvZ2dsZVBpUEFjdGlvbjpdKToKKyAgICAgICAgKC1bV0tGdWxsU2NyZWVuVmlld0NvbnRy
b2xsZXIgX3Nob3dQaGlzaGluZ0FsZXJ0XSk6CisgICAgICAgICogVUlQcm9jZXNzL21hYy9XS0Z1
bGxTY3JlZW5XaW5kb3dDb250cm9sbGVyLmg6CisgICAgICAgICogVUlQcm9jZXNzL21hYy9XS0Z1
bGxTY3JlZW5XaW5kb3dDb250cm9sbGVyLm1tOgorICAgICAgICAoLVtXS0Z1bGxTY3JlZW5XaW5k
b3dDb250cm9sbGVyIGluaXRXaXRoV2luZG93OndlYlZpZXc6cGFnZTpdKToKKyAgICAgICAgKiBV
SVByb2Nlc3MvbWFjL1dLSW1tZWRpYXRlQWN0aW9uQ29udHJvbGxlci5oOgorICAgICAgICAqIFVJ
UHJvY2Vzcy9tYWMvV0tJbW1lZGlhdGVBY3Rpb25Db250cm9sbGVyLm1tOgorICAgICAgICAoLVtX
S0ltbWVkaWF0ZUFjdGlvbkNvbnRyb2xsZXIgaW5pdFdpdGhQYWdlOnZpZXc6dmlld0ltcGw6cmVj
b2duaXplcjpdKToKKyAgICAgICAgKC1bV0tJbW1lZGlhdGVBY3Rpb25Db250cm9sbGVyIF9hbmlt
YXRpb25Db250cm9sbGVyRm9yRGF0YURldGVjdGVkVGV4dF0pOgorICAgICAgICAoLVtXS0ltbWVk
aWF0ZUFjdGlvbkNvbnRyb2xsZXIgX2FuaW1hdGlvbkNvbnRyb2xsZXJGb3JEYXRhRGV0ZWN0ZWRM
aW5rXSk6CisgICAgICAgICogVUlQcm9jZXNzL21hYy9XS0luc3BlY3RvclZpZXdDb250cm9sbGVy
Lmg6CisgICAgICAgICogVUlQcm9jZXNzL21hYy9XS0luc3BlY3RvclZpZXdDb250cm9sbGVyLm1t
OgorICAgICAgICAoLVtXS0luc3BlY3RvclZpZXdDb250cm9sbGVyIGluaXRXaXRoSW5zcGVjdGVk
UGFnZTpdKToKKyAgICAgICAgKiBVSVByb2Nlc3MvbWFjL1dLVGV4dEZpbmRlckNsaWVudC5oOgor
ICAgICAgICAqIFVJUHJvY2Vzcy9tYWMvV0tUZXh0RmluZGVyQ2xpZW50Lm1tOgorICAgICAgICAo
LVtXS1RleHRGaW5kZXJDbGllbnQgaW5pdFdpdGhQYWdlOnZpZXc6dXNlUGxhdGZvcm1GaW5kVUk6
XSk6CisgICAgICAgICogVUlQcm9jZXNzL21hYy9XS1ZpZXdMYXlvdXRTdHJhdGVneS5oOgorICAg
ICAgICAqIFVJUHJvY2Vzcy9tYWMvV0tWaWV3TGF5b3V0U3RyYXRlZ3kubW06CisgICAgICAgICgr
W1dLVmlld0xheW91dFN0cmF0ZWd5IGxheW91dFN0cmF0ZWd5V2l0aFBhZ2U6dmlldzp2aWV3SW1w
bDptb2RlOl0pOgorICAgICAgICAoLVtXS1ZpZXdMYXlvdXRTdHJhdGVneSBpbml0V2l0aFBhZ2U6
dmlldzp2aWV3SW1wbDptb2RlOl0pOgorICAgICAgICAoLVtXS1ZpZXdWaWV3U2l6ZUxheW91dFN0
cmF0ZWd5IGluaXRXaXRoUGFnZTp2aWV3OnZpZXdJbXBsOm1vZGU6XSk6CisgICAgICAgICgtW1dL
Vmlld0ZpeGVkU2l6ZUxheW91dFN0cmF0ZWd5IGluaXRXaXRoUGFnZTp2aWV3OnZpZXdJbXBsOm1v
ZGU6XSk6CisgICAgICAgICgtW1dLVmlld0R5bmFtaWNTaXplQ29tcHV0ZWRGcm9tVmlld1NjYWxl
TGF5b3V0U3RyYXRlZ3kgaW5pdFdpdGhQYWdlOnZpZXc6dmlld0ltcGw6bW9kZTpdKToKKyAgICAg
ICAgKC1bV0tWaWV3RHluYW1pY1NpemVDb21wdXRlZEZyb21NaW5pbXVtRG9jdW1lbnRTaXplTGF5
b3V0U3RyYXRlZ3kgaW5pdFdpdGhQYWdlOnZpZXc6dmlld0ltcGw6bW9kZTpdKToKKyAgICAgICAg
KiBXZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9tYWMvV0tET01Eb2N1bWVudC5tbToKKyAg
ICAgICAgKC1bV0tET01Eb2N1bWVudFBhcnNlcllpZWxkVG9rZW4gaW5pdFdpdGhEb2N1bWVudDpd
KToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1dLQWNjZXNzaWJpbGl0eVdlYlBh
Z2VPYmplY3RCYXNlLmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9XS0FjY2Vz
c2liaWxpdHlXZWJQYWdlT2JqZWN0QmFzZS5tbToKKyAgICAgICAgKC1bV0tBY2Nlc3NpYmlsaXR5
V2ViUGFnZU9iamVjdEJhc2UgYXhPYmplY3RDYWNoZV0pOgorICAgICAgICAoLVtXS0FjY2Vzc2li
aWxpdHlXZWJQYWdlT2JqZWN0QmFzZSBzZXRXZWJQYWdlOl0pOgorCiAyMDIwLTAxLTA3ICBSeWFu
IEhhZGRhZCAgPHJ5YW5oYWRkYWRAYXBwbGUuY29tPgogCiAgICAgICAgIFVucmV2aWV3ZWQsIHJv
bGxpbmcgb3V0IHIyNTQxNDQuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cKaW5kZXggYzc0ZWZh
OWY3NDAzZTk3NjI4ZGUxNGE4MzlhZTMzODI1Y2FkZjNmNS4uNGJmZDMxZTEwMmMxOTg3Y2I0Njk1
YmM2YjJhNjk4ZWQ5MGE3YjIxZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMv
Q2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0NoYW5nZUxvZwpAQCAtMSwz
ICsxLDExMyBAQAorMjAyMC0wMS0wNyAgWXVzdWtlIFN1enVraSAgPHlzdXp1a2lAYXBwbGUuY29t
PgorCisgICAgICAgIFJlZHVjZSBiaW5hcnkgc2l6ZSBieSBwdXJnaW5nIEMrKyB0eXBlIGluZm9y
bWF0aW9uIGluIE9iamVjdGl2ZS1DIGZpZWxkcyBhbmQgcGFyYW1ldGVycworICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjA1OTA1CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBQbHVnaW5zL1dlYkJhc2VOZXRz
Y2FwZVBsdWdpblZpZXcuaDoKKyAgICAgICAgKiBQbHVnaW5zL1dlYkJhc2VOZXRzY2FwZVBsdWdp
blZpZXcubW06CisgICAgICAgICgtW1dlYkJhc2VOZXRzY2FwZVBsdWdpblZpZXcgZWxlbWVudF0p
OgorICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L1dlYkVkaXRvckNsaWVudC5tbToKKyAgICAgICAg
KF9XZWJDcmVhdGVGcmFnbWVudCk6CisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVM
b2FkZXJDbGllbnQubW06CisgICAgICAgIChXZWJGcmFtZUxvYWRlckNsaWVudDo6dHJhbnNpdGlv
blRvQ29tbWl0dGVkRm9yTmV3UGFnZSk6CisgICAgICAgICgtW1dlYkZyYW1lUG9saWN5TGlzdGVu
ZXIgaW5pdFdpdGhGcmFtZTppZGVudGlmaWVyOnBvbGljeUZ1bmN0aW9uOmRlZmF1bHRQb2xpY3k6
XSk6CisgICAgICAgICgtW1dlYkZyYW1lUG9saWN5TGlzdGVuZXIgaW5pdFdpdGhGcmFtZTppZGVu
dGlmaWVyOnBvbGljeUZ1bmN0aW9uOmRlZmF1bHRQb2xpY3k6YXBwTGlua1VSTDpdKToKKyAgICAg
ICAgKiBXZWJDb3JlU3VwcG9ydC9XZWJHZW9sb2NhdGlvbkNsaWVudC5tbToKKyAgICAgICAgKC1b
V2ViR2VvbG9jYXRpb25Qb2xpY3lMaXN0ZW5lciBpbml0V2l0aEdlb2xvY2F0aW9uOl0pOgorICAg
ICAgICAoLVtXZWJHZW9sb2NhdGlvblBvbGljeUxpc3RlbmVyIGluaXRXaXRoR2VvbG9jYXRpb246
Zm9yV2ViVmlldzpdKToKKyAgICAgICAgKC1bV2ViR2VvbG9jYXRpb25Qcm92aWRlckluaXRpYWxp
emF0aW9uTGlzdGVuZXIgaW5pdFdpdGhHZW9sb2NhdGlvbjpdKToKKyAgICAgICAgKiBXZWJDb3Jl
U3VwcG9ydC9XZWJJbnNwZWN0b3JDbGllbnQubW06CisgICAgICAgIChXZWJJbnNwZWN0b3JGcm9u
dGVuZENsaWVudDo6cmVzZXRTdGF0ZSk6CisgICAgICAgICgtW1dlYkluc3BlY3RvcldpbmRvd0Nv
bnRyb2xsZXIgc2V0RnJvbnRlbmRDbGllbnQ6XSk6CisgICAgICAgICgtW1dlYkluc3BlY3Rvcldp
bmRvd0NvbnRyb2xsZXIgc2V0SW5zcGVjdG9yQ2xpZW50Ol0pOgorICAgICAgICAoLVtXZWJJbnNw
ZWN0b3JXaW5kb3dDb250cm9sbGVyIGluc3BlY3RvckNsaWVudF0pOgorICAgICAgICAqIFdlYklu
c3BlY3Rvci9XZWJJbnNwZWN0b3JGcm9udGVuZC5oOgorICAgICAgICAqIFdlYkluc3BlY3Rvci9X
ZWJJbnNwZWN0b3JGcm9udGVuZC5tbToKKyAgICAgICAgKiBXZWJJbnNwZWN0b3IvV2ViTm9kZUhp
Z2hsaWdodC5oOgorICAgICAgICAqIFdlYkluc3BlY3Rvci9XZWJOb2RlSGlnaGxpZ2h0Lm1tOgor
ICAgICAgICAoLVtXZWJOb2RlSGlnaGxpZ2h0IGluaXRXaXRoVGFyZ2V0VmlldzppbnNwZWN0b3JD
b250cm9sbGVyOl0pOgorICAgICAgICAqIFdlYlZpZXcvV2ViQXJjaGl2ZS5tbToKKyAgICAgICAg
KC1bV2ViQXJjaGl2ZSBpbml0V2l0aE1haW5SZXNvdXJjZTpzdWJyZXNvdXJjZXM6c3ViZnJhbWVB
cmNoaXZlczpdKToKKyAgICAgICAgKiBXZWJWaWV3L1dlYkRhdGFTb3VyY2UubW06CisgICAgICAg
ICgtW1dlYkRhdGFTb3VyY2UgX2RvY3VtZW50TG9hZGVyXSk6CisgICAgICAgICgtW1dlYkRhdGFT
b3VyY2UgYWRkU3VicmVzb3VyY2U6XSk6CisgICAgICAgICogV2ViVmlldy9XZWJEYXRhU291cmNl
SW50ZXJuYWwuaDoKKyAgICAgICAgKiBXZWJWaWV3L1dlYkZyYW1lLm1tOgorICAgICAgICAoZ2V0
V2ViVmlldyk6CisgICAgICAgICgtW1dlYkZyYW1lIF91cGRhdGVCYWNrZ3JvdW5kQW5kVXBkYXRl
c1doaWxlT2Zmc2NyZWVuXSk6CisgICAgICAgICgtW1dlYkZyYW1lIF91bm1hcmtBbGxCYWRHcmFt
bWFyXSk6CisgICAgICAgICgtW1dlYkZyYW1lIF91bm1hcmtBbGxNaXNzcGVsbGluZ3NdKToKKyAg
ICAgICAgKC1bV2ViRnJhbWUgX2hhc1NlbGVjdGlvbl0pOgorICAgICAgICAoLVtXZWJGcmFtZSBf
YXRNb3N0T25lRnJhbWVIYXNTZWxlY3Rpb25dKToKKyAgICAgICAgKC1bV2ViRnJhbWUgX2ZpbmRG
cmFtZVdpdGhTZWxlY3Rpb25dKToKKyAgICAgICAgKC1bV2ViRnJhbWUgX3Njcm9sbERPTVJhbmdl
VG9WaXNpYmxlOndpdGhJbnNldDpdKToKKyAgICAgICAgKC1bV2ViRnJhbWUgX2RvY3VtZW50RnJh
Z21lbnRXaXRoTWFya3VwU3RyaW5nOmJhc2VVUkxTdHJpbmc6XSk6CisgICAgICAgICgtW1dlYkZy
YW1lIF9kb2N1bWVudEZyYWdtZW50V2l0aE5vZGVzQXNQYXJhZ3JhcGhzOl0pOgorICAgICAgICAo
LVtXZWJGcmFtZSBfY2FuUHJvdmlkZURvY3VtZW50U291cmNlXSk6CisgICAgICAgICgtW1dlYkZy
YW1lIF9pc0Rlc2NlbmRhbnRPZkZyYW1lOl0pOgorICAgICAgICAoLVtXZWJGcmFtZSBfcmVjdXJz
aXZlX3Jlc3VtZU51bGxFdmVudHNGb3JBbGxOZXRzY2FwZVBsdWdpbnNdKToKKyAgICAgICAgKC1b
V2ViRnJhbWUgX3JlY3Vyc2l2ZV9wYXVzZU51bGxFdmVudHNGb3JBbGxOZXRzY2FwZVBsdWdpbnNd
KToKKyAgICAgICAgKC1bV2ViRnJhbWUgc2V0VGltZW91dHNQYXVzZWQ6XSk6CisgICAgICAgICgt
W1dlYkZyYW1lIHByZXBhcmVGb3JQYXVzZV0pOgorICAgICAgICAoLVtXZWJGcmFtZSByZXN1bWVG
cm9tUGF1c2VdKToKKyAgICAgICAgKC1bV2ViRnJhbWUgcmVzZXRUZXh0QXV0b3NpemluZ0JlZm9y
ZUxheW91dF0pOgorICAgICAgICAoLVtXZWJGcmFtZSBfZ2xvYmFsQ29udGV4dEZvclNjcmlwdFdv
cmxkOl0pOgorICAgICAgICAoLVtXZWJGcmFtZSBfbGF5ZXJUcmVlQXNUZXh0XSk6CisgICAgICAg
ICgtW1dlYkZyYW1lIF9jbGVhck9wZW5lcl0pOgorICAgICAgICAoLVtXZWJGcmFtZSBmb2N1c2Vk
Tm9kZUhhc0NvbnRlbnRdKToKKyAgICAgICAgKC1bV2ViRnJhbWUgX2Rpc3BhdGNoRGlkUmVjZWl2
ZVRpdGxlOl0pOgorICAgICAgICAoLVtXZWJGcmFtZSBqc1dyYXBwZXJGb3JOb2RlOmluU2NyaXB0
V29ybGQ6XSk6CisgICAgICAgICgtW1dlYkZyYW1lIGVsZW1lbnRBdFBvaW50Ol0pOgorICAgICAg
ICAoLVtXZWJGcmFtZSBuYW1lXSk6CisgICAgICAgICgtW1dlYkZyYW1lIERPTURvY3VtZW50XSk6
CisgICAgICAgICgtW1dlYkZyYW1lIGZyYW1lRWxlbWVudF0pOgorICAgICAgICAoLVtXZWJGcmFt
ZSBwcm92aXNpb25hbERhdGFTb3VyY2VdKToKKyAgICAgICAgKC1bV2ViRnJhbWUgZGF0YVNvdXJj
ZV0pOgorICAgICAgICAoLVtXZWJGcmFtZSBsb2FkUmVxdWVzdDpdKToKKyAgICAgICAgKC1bV2Vi
RnJhbWUgZmluZEZyYW1lTmFtZWQ6XSk6CisgICAgICAgICgtW1dlYkZyYW1lIHBhcmVudEZyYW1l
XSk6CisgICAgICAgICgtW1dlYkZyYW1lIGNoaWxkRnJhbWVzXSk6CisgICAgICAgICgtW1dlYkZy
YW1lIHdpbmRvd09iamVjdF0pOgorICAgICAgICAoLVtXZWJGcmFtZSBnbG9iYWxDb250ZXh0XSk6
CisgICAgICAgICgtW1dlYkZyYW1lIGphdmFTY3JpcHRDb250ZXh0XSk6CisgICAgICAgICogV2Vi
Vmlldy9XZWJGcmFtZUludGVybmFsLmg6CisgICAgICAgICogV2ViVmlldy9XZWJGcmFtZVZpZXcu
bW06CisgICAgICAgICgtW1dlYkZyYW1lVmlldyBfd2ViX2ZyYW1lXSk6CisgICAgICAgICgtW1dl
YkZyYW1lVmlldyBfZnJhbWVTaXplQ2hhbmdlZF0pOgorICAgICAgICAoLVtXZWJGcmFtZVZpZXcg
X2lzVmVydGljYWxEb2N1bWVudF0pOgorICAgICAgICAoLVtXZWJGcmFtZVZpZXcgX2lzRmxpcHBl
ZERvY3VtZW50XSk6CisgICAgICAgICgtW1dlYkZyYW1lVmlldyBrZXlEb3duOmtleURvd246XSk6
CisgICAgICAgICogV2ViVmlldy9XZWJGdWxsU2NyZWVuQ29udHJvbGxlci5tbToKKyAgICAgICAg
KC1bV2ViRnVsbFNjcmVlbkNvbnRyb2xsZXIgX2RvY3VtZW50XSk6CisgICAgICAgICogV2ViVmll
dy9XZWJIVE1MVmlldy5tbToKKyAgICAgICAgKC1bV2ViTWVudVRhcmdldCBtZW51Q29udHJvbGxl
cl0pOgorICAgICAgICAoLVtXZWJNZW51VGFyZ2V0IHNldE1lbnVDb250cm9sbGVyOl0pOgorICAg
ICAgICAoLVtXZWJIVE1MVmlldyBuYW1lc09mUHJvbWlzZWRGaWxlc0Ryb3BwZWRBdERlc3RpbmF0
aW9uOl0pOgorICAgICAgICAoLVtXZWJIVE1MVmlldyBfaW50ZXJwcmV0S2V5RXZlbnQ6c2F2aW5n
Q29tbWFuZHM6XSk6CisgICAgICAgICgtW1dlYkhUTUxWaWV3IHNldFByb21pc2VkRHJhZ1RJRkZE
YXRhU291cmNlOl0pOgorICAgICAgICAqIFdlYlZpZXcvV2ViSFRNTFZpZXdJbnRlcm5hbC5oOgor
ICAgICAgICAqIFdlYlZpZXcvV2ViTm90aWZpY2F0aW9uLm1tOgorICAgICAgICAoLVtXZWJOb3Rp
ZmljYXRpb24gaW5pdFdpdGhDb3JlTm90aWZpY2F0aW9uOm5vdGlmaWNhdGlvbklEOl0pOgorICAg
ICAgICAqIFdlYlZpZXcvV2ViTm90aWZpY2F0aW9uSW50ZXJuYWwuaDoKKyAgICAgICAgKiBXZWJW
aWV3L1dlYlJlc291cmNlLm1tOgorICAgICAgICAoLVtXZWJSZXNvdXJjZSBfY29yZVJlc291cmNl
XSk6CisgICAgICAgICogV2ViVmlldy9XZWJSZXNvdXJjZUludGVybmFsLmg6CisgICAgICAgICog
V2ViVmlldy9XZWJWaWRlb0Z1bGxzY3JlZW5Db250cm9sbGVyLmg6CisgICAgICAgICogV2ViVmll
dy9XZWJWaWRlb0Z1bGxzY3JlZW5Db250cm9sbGVyLm1tOgorICAgICAgICAoLVtXZWJWaWRlb0Z1
bGxzY3JlZW5Db250cm9sbGVyIHZpZGVvRWxlbWVudF0pOgorICAgICAgICAoLVtXZWJWaWRlb0Z1
bGxzY3JlZW5Db250cm9sbGVyIHNldFZpZGVvRWxlbWVudDpdKToKKyAgICAgICAgKiBXZWJWaWV3
L1dlYlZpZGVvRnVsbHNjcmVlbkhVRFdpbmRvd0NvbnRyb2xsZXIuaDoKKyAgICAgICAgKiBXZWJW
aWV3L1dlYlZpZXcubW06CisgICAgICAgICgtW1dlYlZpZXcgcGFnZV0pOgorICAgICAgICAoLVtX
ZWJWaWV3IF9lbnRlclZpZGVvRnVsbHNjcmVlbkZvclZpZGVvRWxlbWVudDptb2RlOl0pOgorICAg
ICAgICAoLVtXZWJWaWV3IF9zZXRVcFBsYXliYWNrQ29udHJvbHNNYW5hZ2VyRm9yTWVkaWFFbGVt
ZW50Ol0pOgorICAgICAgICAoLVtXZWJWaWV3IF9zdXBwb3J0c0Z1bGxTY3JlZW5Gb3JFbGVtZW50
OndpdGhLZXlib2FyZDpdKToKKyAgICAgICAgKC1bV2ViVmlldyBfZW50ZXJGdWxsU2NyZWVuRm9y
RWxlbWVudDpdKToKKyAgICAgICAgKC1bV2ViVmlldyBfZXhpdEZ1bGxTY3JlZW5Gb3JFbGVtZW50
Ol0pOgorICAgICAgICAqIFdlYlZpZXcvV2ViVmlld0ludGVybmFsLmg6CisKIDIwMjAtMDEtMDcg
IENvbW1pdCBRdWV1ZSAgPGNvbW1pdC1xdWV1ZUB3ZWJraXQub3JnPgogCiAgICAgICAgIFVucmV2
aWV3ZWQsIHJvbGxpbmcgb3V0IHIyNTQxMzIuCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQVBJL0pTV3JhcHBlck1hcC5tbSBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvSlNX
cmFwcGVyTWFwLm1tCmluZGV4IDI4YzIzM2VhMTg2OTYxMzVlZDExMzFkOTYwYmFmYjY2OWNhMzM4
NmMuLjcyMGJiMWJjMzQ3MTU2YmI0NjNjNmU4NTMzYTc5Zjc0OTFjNTUzMGIgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvSlNXcmFwcGVyTWFwLm1tCisrKyBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9BUEkvSlNXcmFwcGVyTWFwLm1tCkBAIC0zOTAsNyArMzkwLDcgQEAgc3Rh
dGljIHZvaWQgY29weVByb3RvdHlwZVByb3BlcnRpZXMoSlNDb250ZXh0ICpjb250ZXh0LCBDbGFz
cyBvYmpjQ2xhc3MsIFByb3RvY28KIEBpbnRlcmZhY2UgSlNPYmpDQ2xhc3NJbmZvIDogTlNPYmpl
Y3QgewogICAgIENsYXNzIG1fY2xhc3M7CiAgICAgYm9vbCBtX2Jsb2NrOwotICAgIEpTQ2xhc3NS
ZWYgbV9jbGFzc1JlZjsKKyAgICBOYWtlZFB0cjxPcGFxdWVKU0NsYXNzPiBtX2NsYXNzUmVmOwog
ICAgIEpTQzo6V2VhazxKU0M6OkpTT2JqZWN0PiBtX3Byb3RvdHlwZTsKICAgICBKU0M6OldlYWs8
SlNDOjpKU09iamVjdD4gbV9jb25zdHJ1Y3RvcjsKICAgICBKU0M6OldlYWs8SlNDOjpTdHJ1Y3R1
cmU+IG1fc3RydWN0dXJlOwpAQCAtNDI0LDcgKzQyNCw3IEBAIC0gKGluc3RhbmNldHlwZSlpbml0
Rm9yQ2xhc3M6KENsYXNzKWNscwogCiAtICh2b2lkKWRlYWxsb2MKIHsKLSAgICBKU0NsYXNzUmVs
ZWFzZShtX2NsYXNzUmVmKTsKKyAgICBKU0NsYXNzUmVsZWFzZShtX2NsYXNzUmVmLmdldCgpKTsK
ICAgICBbc3VwZXIgZGVhbGxvY107CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvV1RGLnhj
b2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV1RGL1dURi54Y29kZXByb2ovcHJvamVj
dC5wYnhwcm9qCmluZGV4IGQwMDQwYzk3M2IzYWUyMTFmZWE0YWNhN2I0MGRmMTJmOTQwZjA0MGYu
LmE2M2RiZGNiMzVjMzdlOTliYjQ1MWJkODYwMDYzZjNmM2Y3OTgxZWYgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XVEYvV1RGLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dURi9X
VEYueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtNjg5LDYgKzY4OSw3IEBACiAJCUUzMTQ5
QTNBMjI4QkRDQUIwMEJGQTZDNyAvKiBDb25jdXJyZW50QnVmZmVyLmNwcCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IENvbmN1cnJlbnRCdWZmZXIuY3BwOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQlFMzFCREUyODIyRTkxM0NDMDAyOUIxMDUgLyogTWFjaFZNU1BJ
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE1hY2hWTVNQSS5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQlFMzIwMEFCNDFFOUE1MzZEMDAzQjU5RDIgLyogUGxhdGZv
cm1SZWdpc3RlcnMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUGxhdGZvcm1S
ZWdpc3RlcnMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRTMyQTIwNzMyM0M1OTAy
RDAwMzRBMDkyIC8qIE5ha2VkUmVmLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IE5ha2VkUmVmLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUUzM0Q1Rjg3MUZCRUQ2
NjcwMEJGNjI1RSAvKiBSZWN1cnNhYmxlTGFtYmRhLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IFJlY3Vyc2FibGVMYW1iZGEuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJRTM0Q0QwRDAyMjgxMEEwMjAwMjBEMjk5IC8qIFBhY2tlZC5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBQ
YWNrZWQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRTM2MEM3NjQyMTI3Qjg1QjAw
QzkwRjBFIC8qIFVuYWxpZ25lZEFjY2Vzcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBVbmFsaWduZWRBY2Nlc3MuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTEw
ODMsNiArMTA4NCw3IEBACiAJCQkJMEY2NkIyODIxREM5N0JBQjAwNEExRDNGIC8qIE1vbm90b25p
Y1RpbWUuY3BwICovLAogCQkJCTBGNjZCMjgzMURDOTdCQUIwMDRBMUQzRiAvKiBNb25vdG9uaWNU
aW1lLmggKi8sCiAJCQkJRkU4MjI1MzAxQjJBMUU1QjAwQkE2OEZEIC8qIE5ha2VkUHRyLmggKi8s
CisJCQkJRTMyQTIwNzMyM0M1OTAyRDAwMzRBMDkyIC8qIE5ha2VkUmVmLmggKi8sCiAJCQkJMEY1
QkYxNjUxRjIzMTc4MzAwMjlEOTFEIC8qIE5hdHVyYWxMb29wcy5oICovLAogCQkJCTFBM0Y2QkU2
MTc0QURBMjEwMEIyRUVBNyAvKiBOZXZlckRlc3Ryb3llZC5oICovLAogCQkJCTBGMEQ4NUIzMTcy
MzRDQjEwMDMzODIxMCAvKiBOb0xvY2suaCAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3Rm
L0NNYWtlTGlzdHMudHh0IGIvU291cmNlL1dURi93dGYvQ01ha2VMaXN0cy50eHQKaW5kZXggNmE4
MjY4MmFiZDI4ZGNjNmJjYmVmMzYwZTk2MzRkNWM0Yzg0MDMzMC4uYWNiYTQwMGY2MGUyMDk2MDNh
ZmU3MDdhMzZhYjhhNDY3MGFjNTA4OSAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvQ01ha2VM
aXN0cy50eHQKKysrIGIvU291cmNlL1dURi93dGYvQ01ha2VMaXN0cy50eHQKQEAgLTEzOSw2ICsx
MzksNyBAQCBzZXQoV1RGX1BVQkxJQ19IRUFERVJTCiAgICAgTWV0YUFsbG9jYXRvclB0ci5oCiAg
ICAgTW9ub3RvbmljVGltZS5oCiAgICAgTmFrZWRQdHIuaAorICAgIE5ha2VkUmVmLmgKICAgICBO
YXR1cmFsTG9vcHMuaAogICAgIE5ldmVyRGVzdHJveWVkLmgKICAgICBOb0xvY2suaApkaWZmIC0t
Z2l0IGEvU291cmNlL1dURi93dGYvTmFrZWRSZWYuaCBiL1NvdXJjZS9XVEYvd3RmL05ha2VkUmVm
LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uOTUwNTRkMzRhZDAzZmNjNzcyZTUxNGQ2MjFhZjJmMTMxN2M2OTBkZgot
LS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XVEYvd3RmL05ha2VkUmVmLmgKQEAgLTAsMCArMSwx
MjEgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICog
MS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9y
bSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisg
KiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0
aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQ
TEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJ
RVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFO
VElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICog
UFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IK
KyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJ
REVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMg
KElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJ
VFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRT
OyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhF
T1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJ
VFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJ
TkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJ
RiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJh
Z21hIG9uY2UKKworI2luY2x1ZGUgPHd0Zi9EdW1iUHRyVHJhaXRzLmg+CisjaW5jbHVkZSA8d3Rm
L0Zhc3RNYWxsb2MuaD4KKworbmFtZXNwYWNlIFdURiB7CisKKy8vIFRoZSBwdXJwb3NlIG9mIHRo
aXMgY2xhc3MgaXMgdG8gZW5zdXJlIHRoYXQgdGhlIHdyYXBwZWQgcG9pbnRlciB3aWxsIG5ldmVy
IGJlCisvLyB1c2VkIHVuaW5pdGlhbGl6ZWQuCisKK3RlbXBsYXRlIDx0eXBlbmFtZSBUPiBjbGFz
cyBOYWtlZFJlZiB7CisgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CitwdWJsaWM6CisgICAg
QUxXQVlTX0lOTElORSBOYWtlZFJlZihUJiByZWYpIDogbV9wdHIoJnJlZikgeyB9CisgICAgQUxX
QVlTX0lOTElORSBOYWtlZFJlZihjb25zdCBOYWtlZFJlZiYpID0gZGVsZXRlOworICAgIHRlbXBs
YXRlPHR5cGVuYW1lIFU+IE5ha2VkUmVmKGNvbnN0IE5ha2VkUmVmPFU+JikgPSBkZWxldGU7CisK
KyAgICBBTFdBWVNfSU5MSU5FIE5ha2VkUmVmKE5ha2VkUmVmJiYgb3RoZXIpCisgICAgICAgIDog
bV9wdHIoJm90aGVyLmxlYWtSZWYoKSkKKyAgICB7CisgICAgICAgIEFTU0VSVChtX3B0cik7Cisg
ICAgfQorCisgICAgdGVtcGxhdGU8dHlwZW5hbWUgVT4KKyAgICBOYWtlZFJlZihOYWtlZFJlZjxV
PiYmIG90aGVyKQorICAgICAgICA6IG1fcHRyKCZvdGhlci5sZWFrUmVmKCkpCisgICAgeworICAg
ICAgICBBU1NFUlQobV9wdHIpOworICAgIH0KKworICAgIEFMV0FZU19JTkxJTkUgVCogb3BlcmF0
b3ItPigpIGNvbnN0IHsgQVNTRVJUKG1fcHRyKTsgcmV0dXJuIG1fcHRyOyB9CisgICAgVCogcHRy
KCkgY29uc3QgUkVUVVJOU19OT05OVUxMIHsgQVNTRVJUKG1fcHRyKTsgcmV0dXJuIG1fcHRyOyB9
CisgICAgVCYgZ2V0KCkgY29uc3QgeyByZXR1cm4gKm1fcHRyOyB9CisgICAgb3BlcmF0b3IgVCYo
KSBjb25zdCB7IEFTU0VSVChtX3B0cik7IHJldHVybiAqbV9wdHI7IH0KKyAgICBib29sIG9wZXJh
dG9yISgpIGNvbnN0IHsgQVNTRVJUKG1fcHRyKTsgcmV0dXJuICEqbV9wdHI7IH0KKworICAgIE5h
a2VkUmVmIGNvcHlSZWYoKSAmJiA9IGRlbGV0ZTsKKyAgICBOYWtlZFJlZiBjb3B5UmVmKCkgY29u
c3QgJiBXQVJOX1VOVVNFRF9SRVRVUk4geyByZXR1cm4gTmFrZWRSZWYoKm1fcHRyKTsgfQorCisg
ICAgTmFrZWRSZWYmIG9wZXJhdG9yPShUJik7CisgICAgTmFrZWRSZWYmIG9wZXJhdG9yPShOYWtl
ZFJlZiYmKTsKKyAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBVPiBOYWtlZFJlZiYgb3BlcmF0b3I9KE5h
a2VkUmVmPFU+JiYpOworCisgICAgLy8gVXNlIGNvcHlSZWYoKSBhbmQgdGhlIG1vdmUgYXNzaWdu
bWVudCBvcGVyYXRvcnMgaW5zdGVhZC4KKyAgICBOYWtlZFJlZiYgb3BlcmF0b3I9KGNvbnN0IE5h
a2VkUmVmJikgPSBkZWxldGU7CisgICAgdGVtcGxhdGU8dHlwZW5hbWUgWD4gTmFrZWRSZWYmIG9w
ZXJhdG9yPShjb25zdCBOYWtlZFJlZjxYPiYpID0gZGVsZXRlOworCisgICAgdGVtcGxhdGU8dHlw
ZW5hbWUgVT4gdm9pZCBzd2FwKE5ha2VkUmVmPFU+Jik7CisKKyAgICBUJiBsZWFrUmVmKCkgV0FS
Tl9VTlVTRURfUkVUVVJOCisgICAgeworICAgICAgICBBU1NFUlQobV9wdHIpOworICAgICAgICBU
JiByZXN1bHQgPSAqRHVtYlB0clRyYWl0czxUPjo6ZXhjaGFuZ2UobV9wdHIsIG51bGxwdHIpOwor
ICAgICAgICByZXR1cm4gcmVzdWx0OworICAgIH0KKworcHJpdmF0ZToKKyAgICBUKiBtX3B0cjsK
K307CisKK3RlbXBsYXRlPHR5cGVuYW1lIFQ+IGlubGluZSBOYWtlZFJlZjxUPiYgTmFrZWRSZWY8
VD46Om9wZXJhdG9yPShOYWtlZFJlZiYmIHJlZmVyZW5jZSkKK3sKKyAgICBOYWtlZFJlZiBtb3Zl
ZFJlZmVyZW5jZSA9IFdURk1vdmUocmVmZXJlbmNlKTsKKyAgICBzd2FwKG1vdmVkUmVmZXJlbmNl
KTsKKyAgICByZXR1cm4gKnRoaXM7Cit9CisKK3RlbXBsYXRlPHR5cGVuYW1lIFQ+IGlubGluZSBO
YWtlZFJlZjxUPiYgTmFrZWRSZWY8VD46Om9wZXJhdG9yPShUJiByZWYpCit7CisgICAgTmFrZWRS
ZWYgY29waWVkUmVmZXJlbmNlID0gcmVmOworICAgIHN3YXAoY29waWVkUmVmZXJlbmNlKTsKKyAg
ICByZXR1cm4gKnRoaXM7Cit9CisKK3RlbXBsYXRlPHR5cGVuYW1lIFQ+IHRlbXBsYXRlPHR5cGVu
YW1lIFU+IGlubGluZSBOYWtlZFJlZjxUPiYgTmFrZWRSZWY8VD46Om9wZXJhdG9yPShOYWtlZFJl
ZjxVPiYmIG90aGVyKQoreworICAgIE5ha2VkUmVmIHJlZiA9IFdURk1vdmUob3RoZXIpOworICAg
IHN3YXAocmVmKTsKKyAgICByZXR1cm4gKnRoaXM7Cit9CisKK3RlbXBsYXRlPGNsYXNzIFQ+Cit0
ZW1wbGF0ZTxjbGFzcyBVPgoraW5saW5lIHZvaWQgTmFrZWRSZWY8VD46OnN3YXAoTmFrZWRSZWY8
VT4mIG90aGVyKQoreworICAgIHN0ZDo6c3dhcChtX3B0ciwgb3RoZXIubV9wdHIpOworfQorCit0
ZW1wbGF0ZTxjbGFzcyBULCBjbGFzcyBVPiBpbmxpbmUgdm9pZCBzd2FwKE5ha2VkUmVmPFQ+JiBh
LCBOYWtlZFJlZjxVPiYgYikKK3sKKyAgICBhLnN3YXAoYik7Cit9CisKK30gLy8gbmFtZXNwYWNl
IFdURgorCit1c2luZyBXVEY6Ok5ha2VkUmVmOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGFnZS9tYWMvV2ViQ29yZUZyYW1lVmlldy5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9tYWMvV2Vi
Q29yZUZyYW1lVmlldy5oCmluZGV4IDI4NGUyYTVkNmY0ZGU3NDQ1MjdiYTkzOTdhNGZjN2VjMzRl
MjdhNGQuLmUwZjlmMTRmNzg0NTY3ODY4ODI1NTc3YTYzOTBkNTBiMzFkZjg1MzcgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvbWFjL1dlYkNvcmVGcmFtZVZpZXcuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL21hYy9XZWJDb3JlRnJhbWVWaWV3LmgKQEAgLTI1LDYgKzI1LDcgQEAK
IAogI2ltcG9ydCAiU2Nyb2xsVHlwZXMuaCIKICNpbXBvcnQgPHd0Zi9QbGF0Zm9ybS5oPgorI2lt
cG9ydCA8d3RmL05ha2VkUHRyLmg+CiAKICNpZiBQTEFURk9STShJT1NfRkFNSUxZKQogI2ltcG9y
dCAiV0FLQXBwS2l0U3R1YnMuaCIKQEAgLTQ0LDUgKzQ1LDUgQEAgY2xhc3MgRnJhbWU7CiBAZW5k
CiAKIEBwcm90b2NvbCBXZWJDb3JlRnJhbWVWaWV3Ci0tIChXZWJDb3JlOjpGcmFtZSopX3dlYl9m
cmFtZTsKKy0gKE5ha2VkUHRyPFdlYkNvcmU6OkZyYW1lPilfd2ViX2ZyYW1lOwogQGVuZApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvV2ViR0xMYXll
ci5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvV2ViR0xMYXllci5o
CmluZGV4IGY3Njc5MDk3NDdmZWZmNDg3MTRiMWJhZDA5ZjEzMmJkZWI4YmY2NWUuLjhiNTY2NjZh
MWJjODUwM2YwMTI2Mzg4MTEwMmRlNTE3MDFlNTBkMzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL1dlYkdMTGF5ZXIuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9XZWJHTExheWVyLmgKQEAgLTI4LDYgKzI4LDcg
QEAKICNpbXBvcnQgIklPU3VyZmFjZS5oIgogI2ltcG9ydCAiSW50U2l6ZS5oIgogI2ltcG9ydCA8
UXVhcnR6Q29yZS9RdWFydHpDb3JlLmg+CisjaW1wb3J0IDx3dGYvTmFrZWRQdHIuaD4KIAogbmFt
ZXNwYWNlIFdlYkNvcmUgewogY2xhc3MgR3JhcGhpY3NMYXllcjsKQEAgLTQ2LDcgKzQ3LDcgQEAg
QUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfQkVHSU4KICNlcnJvciBVbnN1cHBvcnRlZCBw
bGF0Zm9ybQogI2VuZGlmCiB7Ci0gICAgV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0R0xPcGVuR0wq
IF9jb250ZXh0OworICAgIE5ha2VkUHRyPFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dEdMT3BlbkdM
PiBfY29udGV4dDsKICAgICBmbG9hdCBfZGV2aWNlUGl4ZWxSYXRpbzsKICNpZiBIQVZFKElPU1VS
RkFDRSkgJiYgKFVTRShPUEVOR0wpIHx8IFVTRShBTkdMRSkpCiAgICAgc3RkOjp1bmlxdWVfcHRy
PFdlYkNvcmU6OklPU3VyZmFjZT4gX2NvbnRlbnRzQnVmZmVyOwpAQCAtNjUsOSArNjYsOSBAQCBB
TExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19CRUdJTgogI2VuZGlmCiB9CiAKLUBwcm9wZXJ0
eSAobm9uYXRvbWljKSBXZWJDb3JlOjpHcmFwaGljc0NvbnRleHRHTE9wZW5HTCogY29udGV4dDsK
K0Bwcm9wZXJ0eSAobm9uYXRvbWljKSBOYWtlZFB0cjxXZWJDb3JlOjpHcmFwaGljc0NvbnRleHRH
TE9wZW5HTD4gY29udGV4dDsKIAotLSAoaWQpaW5pdFdpdGhHcmFwaGljc0NvbnRleHRHTDooV2Vi
Q29yZTo6R3JhcGhpY3NDb250ZXh0R0xPcGVuR0wqKWNvbnRleHQ7CistIChpZClpbml0V2l0aEdy
YXBoaWNzQ29udGV4dEdMOihOYWtlZFB0cjxXZWJDb3JlOjpHcmFwaGljc0NvbnRleHRHTE9wZW5H
TD4pY29udGV4dDsKIAogLSAoQ0dJbWFnZVJlZiljb3B5SW1hZ2VTbmFwc2hvdFdpdGhDb2xvclNw
YWNlOihDR0NvbG9yU3BhY2VSZWYpY29sb3JTcGFjZTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvV2ViR0xMYXllci5tbSBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL1dlYkdMTGF5ZXIubW0KaW5kZXggMjkyMDE2YWMx
NGVhYzJhYThmZTRkMTVkMjhmOTRiMDJlMmQ2NzVjYy4uMWVjMDhlNjY3NzUzZTYxNjFmODJlODMw
ZGVjMjJmMWY4NTE2ZGFmYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvY29jb2EvV2ViR0xMYXllci5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9jb2NvYS9XZWJHTExheWVyLm1tCkBAIC02MSw3ICs2MSw3IEBAIEBpbXBsZW1lbnRh
dGlvbiBXZWJHTExheWVyCiAKIEBzeW50aGVzaXplIGNvbnRleHQ9X2NvbnRleHQ7CiAKLS0oaWQp
aW5pdFdpdGhHcmFwaGljc0NvbnRleHRHTDooV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0R0xPcGVu
R0wqKWNvbnRleHQKKy0oaWQpaW5pdFdpdGhHcmFwaGljc0NvbnRleHRHTDooTmFrZWRQdHI8V2Vi
Q29yZTo6R3JhcGhpY3NDb250ZXh0R0xPcGVuR0w+KWNvbnRleHQKIHsKICAgICBfY29udGV4dCA9
IGNvbnRleHQ7CiAgICAgc2VsZiA9IFtzdXBlciBpbml0XTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL21hYy9TY3JvbGxBbmltYXRvck1hYy5tbSBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL21hYy9TY3JvbGxBbmltYXRvck1hYy5tbQppbmRleCBmNTkxNzY3MmVlZmRmMWY1
MjNjZGY2OTI0NmIyMzg2MDQ5NGZiMmEyLi40MDQyNjFjZmM0YmQ4NDlkZWY0NDcxNDU3MDhlMTg0
NWFlMGY0NmRiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvU2Nyb2xs
QW5pbWF0b3JNYWMubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1Njcm9sbEFu
aW1hdG9yTWFjLm1tCkBAIC00MCw2ICs0MCw3IEBACiAjaW5jbHVkZSAiU2Nyb2xsYmFyVGhlbWVN
YWMuaCIKICNpbmNsdWRlIDxwYWwvc3BpL21hYy9OU1Njcm9sbGVySW1wU1BJLmg+CiAjaW5jbHVk
ZSA8d3RmL0Jsb2NrT2JqQ0V4Y2VwdGlvbnMuaD4KKyNpbmNsdWRlIDx3dGYvTmFrZWRQdHIuaD4K
ICNpbmNsdWRlIDx3dGYvdGV4dC9UZXh0U3RyZWFtLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsK
QEAgLTgxLDkgKzgyLDkgQEAgQGVuZAogCiBAaW50ZXJmYWNlIFdlYlNjcm9sbEFuaW1hdGlvbkhl
bHBlckRlbGVnYXRlIDogTlNPYmplY3QKIHsKLSAgICBXZWJDb3JlOjpTY3JvbGxBbmltYXRvck1h
YyogX2FuaW1hdG9yOworICAgIE5ha2VkUHRyPFdlYkNvcmU6OlNjcm9sbEFuaW1hdG9yTWFjPiBf
YW5pbWF0b3I7CiB9Ci0tIChpZClpbml0V2l0aFNjcm9sbEFuaW1hdG9yOihXZWJDb3JlOjpTY3Jv
bGxBbmltYXRvck1hYyopc2Nyb2xsQW5pbWF0b3I7CistIChpZClpbml0V2l0aFNjcm9sbEFuaW1h
dG9yOihOYWtlZFB0cjxXZWJDb3JlOjpTY3JvbGxBbmltYXRvck1hYz4pc2Nyb2xsQW5pbWF0b3I7
CiBAZW5kCiAKIHN0YXRpYyBOU1NpemUgYWJzKE5TU2l6ZSBzaXplKQpAQCAtOTgsNyArOTksNyBA
QCBzdGF0aWMgTlNTaXplIGFicyhOU1NpemUgc2l6ZSkKIAogQGltcGxlbWVudGF0aW9uIFdlYlNj
cm9sbEFuaW1hdGlvbkhlbHBlckRlbGVnYXRlCiAKLS0gKGlkKWluaXRXaXRoU2Nyb2xsQW5pbWF0
b3I6KFdlYkNvcmU6OlNjcm9sbEFuaW1hdG9yTWFjKilzY3JvbGxBbmltYXRvcgorLSAoaWQpaW5p
dFdpdGhTY3JvbGxBbmltYXRvcjooTmFrZWRQdHI8V2ViQ29yZTo6U2Nyb2xsQW5pbWF0b3JNYWM+
KXNjcm9sbEFuaW1hdG9yCiB7CiAgICAgc2VsZiA9IFtzdXBlciBpbml0XTsKICAgICBpZiAoIXNl
bGYpCkBAIC0xMTAsNyArMTExLDcgQEAgLSAoaWQpaW5pdFdpdGhTY3JvbGxBbmltYXRvcjooV2Vi
Q29yZTo6U2Nyb2xsQW5pbWF0b3JNYWMqKXNjcm9sbEFuaW1hdG9yCiAKIC0gKHZvaWQpaW52YWxp
ZGF0ZQogewotICAgIF9hbmltYXRvciA9IDA7CisgICAgX2FuaW1hdG9yID0gbnVsbHB0cjsKIH0K
IAogLSAoTlNSZWN0KWJvdW5kcwpAQCAtNDczLDcgKzQ3NCw3IEBAIC0gKHZvaWQpY2FuY2VsQW5p
bWF0aW9ucwogICAgIEVORF9CTE9DS19PQkpDX0VYQ0VQVElPTlM7CiB9CiAKLS0gKFNjcm9sbEFu
aW1hdG9yTWFjKilzY3JvbGxBbmltYXRvcgorLSAoTmFrZWRQdHI8U2Nyb2xsQW5pbWF0b3JNYWM+
KXNjcm9sbEFuaW1hdG9yCiB7CiAgICAgcmV0dXJuICZzdGF0aWNfY2FzdDxTY3JvbGxBbmltYXRv
ck1hYyY+KF9zY3JvbGxiYXItPnNjcm9sbGFibGVBcmVhKCkuc2Nyb2xsQW5pbWF0b3IoKSk7CiB9
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2NvY29hL05ldHdvcmtT
ZXNzaW9uQ29jb2EubW0gYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2NvY29hL05ldHdv
cmtTZXNzaW9uQ29jb2EubW0KaW5kZXggODJmNzkxYzk1YTUxNmFhMjEwZmI3ZTQ2ZGUwYTM4OWZk
ZjhlNzU2NC4uOTc3ZGJlZDU4ZTM1ODZmNmYwZmZjMWFiNTI0YTYxMWVhM2U5ZTNhOSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9jb2NvYS9OZXR3b3JrU2Vzc2lvbkNv
Y29hLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY29jb2EvTmV0d29ya1Nl
c3Npb25Db2NvYS5tbQpAQCAtNTAsNiArNTAsNyBAQAogI2ltcG9ydCA8cGFsL3NwaS9jZi9DRk5l
dHdvcmtTUEkuaD4KICNpbXBvcnQgPHd0Zi9CbG9ja1B0ci5oPgogI2ltcG9ydCA8d3RmL01haW5U
aHJlYWQuaD4KKyNpbXBvcnQgPHd0Zi9OYWtlZFJlZi5oPgogI2ltcG9ydCA8d3RmL05ldmVyRGVz
dHJveWVkLmg+CiAjaW1wb3J0IDx3dGYvT2JqQ1J1bnRpbWVFeHRyYXMuaD4KICNpbXBvcnQgPHd0
Zi9Qcm9jZXNzUHJpdmlsZWdlLmg+CkBAIC00MDEsMjAgKzQwMiwyMCBAQCBAaW50ZXJmYWNlIFdL
TmV0d29ya1Nlc3Npb25EZWxlZ2F0ZSA6IE5TT2JqZWN0IDxOU1VSTFNlc3Npb25EYXRhRGVsZWdh
dGUKICAgICBib29sIF93aXRoQ3JlZGVudGlhbHM7CiB9CiAKLS0gKGlkKWluaXRXaXRoTmV0d29y
a1Nlc3Npb246KFdlYktpdDo6TmV0d29ya1Nlc3Npb25Db2NvYSYpc2Vzc2lvbiB3cmFwcGVyOihX
ZWJLaXQ6OlNlc3Npb25XcmFwcGVyJilzZXNzaW9uV3JhcHBlciB3aXRoQ3JlZGVudGlhbHM6KGJv
b2wpd2l0aENyZWRlbnRpYWxzOworLSAoaWQpaW5pdFdpdGhOZXR3b3JrU2Vzc2lvbjooTmFrZWRS
ZWY8V2ViS2l0OjpOZXR3b3JrU2Vzc2lvbkNvY29hPilzZXNzaW9uIHdyYXBwZXI6KFdlYktpdDo6
U2Vzc2lvbldyYXBwZXImKXNlc3Npb25XcmFwcGVyIHdpdGhDcmVkZW50aWFsczooYm9vbCl3aXRo
Q3JlZGVudGlhbHM7CiAtICh2b2lkKXNlc3Npb25JbnZhbGlkYXRlZDsKIAogQGVuZAogCiBAaW1w
bGVtZW50YXRpb24gV0tOZXR3b3JrU2Vzc2lvbkRlbGVnYXRlCiAKLS0gKGlkKWluaXRXaXRoTmV0
d29ya1Nlc3Npb246KFdlYktpdDo6TmV0d29ya1Nlc3Npb25Db2NvYSYpc2Vzc2lvbiB3cmFwcGVy
OihXZWJLaXQ6OlNlc3Npb25XcmFwcGVyJilzZXNzaW9uV3JhcHBlciB3aXRoQ3JlZGVudGlhbHM6
KGJvb2wpd2l0aENyZWRlbnRpYWxzCistIChpZClpbml0V2l0aE5ldHdvcmtTZXNzaW9uOihOYWtl
ZFJlZjxXZWJLaXQ6Ok5ldHdvcmtTZXNzaW9uQ29jb2E+KXNlc3Npb24gd3JhcHBlcjooV2ViS2l0
OjpTZXNzaW9uV3JhcHBlciYpc2Vzc2lvbldyYXBwZXIgd2l0aENyZWRlbnRpYWxzOihib29sKXdp
dGhDcmVkZW50aWFscwogewogICAgIHNlbGYgPSBbc3VwZXIgaW5pdF07CiAgICAgaWYgKCFzZWxm
KQogICAgICAgICByZXR1cm4gbmlsOwogCi0gICAgX3Nlc3Npb24gPSBtYWtlV2Vha1B0cihzZXNz
aW9uKTsKKyAgICBfc2Vzc2lvbiA9IG1ha2VXZWFrUHRyKHNlc3Npb24uZ2V0KCkpOwogICAgIF9z
ZXNzaW9uV3JhcHBlciA9IG1ha2VXZWFrUHRyKHNlc3Npb25XcmFwcGVyKTsKICAgICBfd2l0aENy
ZWRlbnRpYWxzID0gd2l0aENyZWRlbnRpYWxzOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L1NoYXJlZC9BUEkvQ29jb2EvV0tCcm93c2luZ0NvbnRleHRIYW5kbGUubW0gYi9Tb3VyY2UvV2Vi
S2l0L1NoYXJlZC9BUEkvQ29jb2EvV0tCcm93c2luZ0NvbnRleHRIYW5kbGUubW0KaW5kZXggYWIy
ZWQ5YmUzMGVhYTc4NTVhMWQzNDQzZjBkNGZjOGM4YjIzOGNlOS4uOWQzZWRmMTcwMDNlZjI0NmFm
ZWI3OGQxNzAzNGQ3Y2E0NGEwM2U4YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQv
QVBJL0NvY29hL1dLQnJvd3NpbmdDb250ZXh0SGFuZGxlLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQv
U2hhcmVkL0FQSS9Db2NvYS9XS0Jyb3dzaW5nQ29udGV4dEhhbmRsZS5tbQpAQCAtMzIsMTQgKzMy
LDE0IEBACiAKIEBpbXBsZW1lbnRhdGlvbiBXS0Jyb3dzaW5nQ29udGV4dEhhbmRsZQogCi0tIChp
ZClfaW5pdFdpdGhQYWdlUHJveHk6KFdlYktpdDo6V2ViUGFnZVByb3h5JilwYWdlCistIChpZClf
aW5pdFdpdGhQYWdlUHJveHk6KE5ha2VkUmVmPFdlYktpdDo6V2ViUGFnZVByb3h5PilwYWdlCiB7
Ci0gICAgcmV0dXJuIFtzZWxmIF9pbml0V2l0aFBhZ2VQcm94eUlEOnBhZ2UuaWRlbnRpZmllcigp
IGFuZFdlYlBhZ2VJRDpwYWdlLndlYlBhZ2VJRCgpXTsKKyAgICByZXR1cm4gW3NlbGYgX2luaXRX
aXRoUGFnZVByb3h5SUQ6cGFnZS0+aWRlbnRpZmllcigpIGFuZFdlYlBhZ2VJRDpwYWdlLT53ZWJQ
YWdlSUQoKV07CiB9CiAKLS0gKGlkKV9pbml0V2l0aFBhZ2U6KFdlYktpdDo6V2ViUGFnZSYpcGFn
ZQorLSAoaWQpX2luaXRXaXRoUGFnZTooTmFrZWRSZWY8V2ViS2l0OjpXZWJQYWdlPilwYWdlCiB7
Ci0gICAgcmV0dXJuIFtzZWxmIF9pbml0V2l0aFBhZ2VQcm94eUlEOnBhZ2Uud2ViUGFnZVByb3h5
SWRlbnRpZmllcigpIGFuZFdlYlBhZ2VJRDpwYWdlLmlkZW50aWZpZXIoKV07CisgICAgcmV0dXJu
IFtzZWxmIF9pbml0V2l0aFBhZ2VQcm94eUlEOnBhZ2UtPndlYlBhZ2VQcm94eUlkZW50aWZpZXIo
KSBhbmRXZWJQYWdlSUQ6cGFnZS0+aWRlbnRpZmllcigpXTsKIH0KIAogLSAoaWQpX2luaXRXaXRo
UGFnZVByb3h5SUQ6KFdlYktpdDo6V2ViUGFnZVByb3h5SWRlbnRpZmllcilwYWdlUHJveHlJRCBh
bmRXZWJQYWdlSUQ6KFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyKXdlYlBhZ2VJRApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9TaGFyZWQvQVBJL0NvY29hL1dLQnJvd3NpbmdDb250ZXh0SGFuZGxl
SW50ZXJuYWwuaCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0FQSS9Db2NvYS9XS0Jyb3dzaW5nQ29u
dGV4dEhhbmRsZUludGVybmFsLmgKaW5kZXggOGRlZDU5ZmI1NTUxOGQyODkzYzc3MWI2M2VhOWJl
YzQyMDY2NTljZS4uYjk4ODRlMzc1MGExOGRlNTk2OWJiMzhjZTUzOGVlZDhlNDI2YWM0YSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvQVBJL0NvY29hL1dLQnJvd3NpbmdDb250ZXh0
SGFuZGxlSW50ZXJuYWwuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9BUEkvQ29jb2EvV0tC
cm93c2luZ0NvbnRleHRIYW5kbGVJbnRlcm5hbC5oCkBAIC0yNiw2ICsyNiw3IEBACiAjaW1wb3J0
ICJXS0Jyb3dzaW5nQ29udGV4dEhhbmRsZS5oIgogI2ltcG9ydCAiV2ViUGFnZVByb3h5SWRlbnRp
Zmllci5oIgogI2ltcG9ydCA8V2ViQ29yZS9QYWdlSWRlbnRpZmllci5oPgorI2ltcG9ydCA8d3Rm
L05ha2VkUmVmLmg+CiAKIG5hbWVzcGFjZSBXZWJLaXQgewogY2xhc3MgV2ViUGFnZTsKQEAgLTM3
LDcgKzM4LDcgQEAgY2xhc3MgV2ViUGFnZVByb3h5OwogQHByb3BlcnR5IChub25hdG9taWMsIHJl
YWRvbmx5LCBnZXR0ZXI9X3BhZ2VQcm94eUlEKSBXZWJLaXQ6OldlYlBhZ2VQcm94eUlkZW50aWZp
ZXIgcGFnZVByb3h5SUQ7CiBAcHJvcGVydHkgKG5vbmF0b21pYywgcmVhZG9ubHksIGdldHRlcj1f
d2ViUGFnZUlEKSBXZWJDb3JlOjpQYWdlSWRlbnRpZmllciB3ZWJQYWdlSUQ7CiAKLS0gKGlkKV9p
bml0V2l0aFBhZ2VQcm94eTooV2ViS2l0OjpXZWJQYWdlUHJveHkmKXBhZ2U7Ci0tIChpZClfaW5p
dFdpdGhQYWdlOihXZWJLaXQ6OldlYlBhZ2UmKXBhZ2U7CistIChpZClfaW5pdFdpdGhQYWdlUHJv
eHk6KE5ha2VkUmVmPFdlYktpdDo6V2ViUGFnZVByb3h5PilwYWdlOworLSAoaWQpX2luaXRXaXRo
UGFnZTooTmFrZWRSZWY8V2ViS2l0OjpXZWJQYWdlPilwYWdlOwogLSAoaWQpX2luaXRXaXRoUGFn
ZVByb3h5SUQ6KFdlYktpdDo6V2ViUGFnZVByb3h5SWRlbnRpZmllcilwYWdlUHJveHlJRCBhbmRX
ZWJQYWdlSUQ6KFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyKXdlYlBhZ2VJRDsKIEBlbmQKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0FQSS9Db2NvYS9fV0tSZW1vdGVPYmplY3RSZWdp
c3RyeS5tbSBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0FQSS9Db2NvYS9fV0tSZW1vdGVPYmplY3RS
ZWdpc3RyeS5tbQppbmRleCA0NzRhYjUxNTY3NTExYzYzYjI5NDZmMjdlMGM5NWQ2ZWQ2ZmQ4MDQz
Li41NDEwNDdlZGRmMjgwZTQ2YmRkNzEwOWJmM2EzODE4NWJmNWQ0ZDJlIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1NoYXJlZC9BUEkvQ29jb2EvX1dLUmVtb3RlT2JqZWN0UmVnaXN0cnkubW0K
KysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvQVBJL0NvY29hL19XS1JlbW90ZU9iamVjdFJlZ2lz
dHJ5Lm1tCkBAIC0xMDYsMjIgKzEwNiwyMiBAQCAtIChpZClyZW1vdGVPYmplY3RQcm94eVdpdGhJ
bnRlcmZhY2U6KF9XS1JlbW90ZU9iamVjdEludGVyZmFjZSAqKWludGVyZmFjZQogICAgIHJldHVy
biByZW1vdGVPYmplY3QuYXV0b3JlbGVhc2UoKTsKIH0KIAotLSAoaWQpX2luaXRXaXRoV2ViUGFn
ZTooV2ViS2l0OjpXZWJQYWdlJilwYWdlCistIChpZClfaW5pdFdpdGhXZWJQYWdlOihOYWtlZFJl
ZjxXZWJLaXQ6OldlYlBhZ2U+KXBhZ2UKIHsKICAgICBpZiAoIShzZWxmID0gW3N1cGVyIGluaXRd
KSkKICAgICAgICAgcmV0dXJuIG5pbDsKIAotICAgIF9yZW1vdGVPYmplY3RSZWdpc3RyeSA9IG1h
a2VVbmlxdWU8V2ViS2l0OjpXZWJSZW1vdGVPYmplY3RSZWdpc3RyeT4oc2VsZiwgcGFnZSk7Cisg
ICAgX3JlbW90ZU9iamVjdFJlZ2lzdHJ5ID0gbWFrZVVuaXF1ZTxXZWJLaXQ6OldlYlJlbW90ZU9i
amVjdFJlZ2lzdHJ5PihzZWxmLCBwYWdlLmdldCgpKTsKIAogICAgIHJldHVybiBzZWxmOwogfQog
Ci0tIChpZClfaW5pdFdpdGhXZWJQYWdlUHJveHk6KFdlYktpdDo6V2ViUGFnZVByb3h5JilwYWdl
CistIChpZClfaW5pdFdpdGhXZWJQYWdlUHJveHk6KE5ha2VkUmVmPFdlYktpdDo6V2ViUGFnZVBy
b3h5PilwYWdlCiB7CiAgICAgaWYgKCEoc2VsZiA9IFtzdXBlciBpbml0XSkpCiAgICAgICAgIHJl
dHVybiBuaWw7CiAKLSAgICBfcmVtb3RlT2JqZWN0UmVnaXN0cnkgPSBtYWtlVW5pcXVlPFdlYktp
dDo6VUlSZW1vdGVPYmplY3RSZWdpc3RyeT4oc2VsZiwgcGFnZSk7CisgICAgX3JlbW90ZU9iamVj
dFJlZ2lzdHJ5ID0gbWFrZVVuaXF1ZTxXZWJLaXQ6OlVJUmVtb3RlT2JqZWN0UmVnaXN0cnk+KHNl
bGYsIHBhZ2UuZ2V0KCkpOwogCiAgICAgcmV0dXJuIHNlbGY7CiB9CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L1NoYXJlZC9BUEkvQ29jb2EvX1dLUmVtb3RlT2JqZWN0UmVnaXN0cnlJbnRlcm5h
bC5oIGIvU291cmNlL1dlYktpdC9TaGFyZWQvQVBJL0NvY29hL19XS1JlbW90ZU9iamVjdFJlZ2lz
dHJ5SW50ZXJuYWwuaAppbmRleCA5NDllNDM4ZjFkNmZmNmZlNzExMzhkMzJjMDg2OTNmNzQzOWEy
ZjQ4Li5lYzU5YWQyZDlkOGRlZjcxMDYzMWZiOThlMGQ2NjViYWQxNmZkMTA0IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9BUEkvQ29jb2EvX1dLUmVtb3RlT2JqZWN0UmVnaXN0cnlJ
bnRlcm5hbC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0FQSS9Db2NvYS9fV0tSZW1vdGVP
YmplY3RSZWdpc3RyeUludGVybmFsLmgKQEAgLTI0LDYgKzI0LDcgQEAKICAqLwogCiAjaW1wb3J0
ICJfV0tSZW1vdGVPYmplY3RSZWdpc3RyeS5oIgorI2ltcG9ydCA8d3RmL05ha2VkUmVmLmg+CiAK
IG5hbWVzcGFjZSBJUEMgewogY2xhc3MgTWVzc2FnZVNlbmRlcjsKQEAgLTQxLDggKzQyLDggQEAg
Y2xhc3MgV2ViUGFnZVByb3h5OwogCiBAcHJvcGVydHkgKG5vbmF0b21pYywgcmVhZG9ubHkpIFdl
YktpdDo6UmVtb3RlT2JqZWN0UmVnaXN0cnkmIHJlbW90ZU9iamVjdFJlZ2lzdHJ5OwogCi0tIChp
ZClfaW5pdFdpdGhXZWJQYWdlOihXZWJLaXQ6OldlYlBhZ2UmKW1lc3NhZ2VTZW5kZXI7Ci0tIChp
ZClfaW5pdFdpdGhXZWJQYWdlUHJveHk6KFdlYktpdDo6V2ViUGFnZVByb3h5JiltZXNzYWdlU2Vu
ZGVyOworLSAoaWQpX2luaXRXaXRoV2ViUGFnZTooTmFrZWRSZWY8V2ViS2l0OjpXZWJQYWdlPilt
ZXNzYWdlU2VuZGVyOworLSAoaWQpX2luaXRXaXRoV2ViUGFnZVByb3h5OihOYWtlZFJlZjxXZWJL
aXQ6OldlYlBhZ2VQcm94eT4pbWVzc2FnZVNlbmRlcjsKIC0gKHZvaWQpX2ludmFsaWRhdGU7CiAK
IC0gKHZvaWQpX3NlbmRJbnZvY2F0aW9uOihOU0ludm9jYXRpb24gKilpbnZvY2F0aW9uIGludGVy
ZmFjZTooX1dLUmVtb3RlT2JqZWN0SW50ZXJmYWNlICopaW50ZXJmYWNlOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlldy5tbSBiL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXcubW0KaW5kZXggMWIwNGRiOGNmZGQx
Y2NmZDU4ODNhYzQwNTc3M2JjYjA3MTg0MDkyZi4uMWE0Y2UyYWJlYzIzZDliMGEzZDI4YWU2YTc0
NDI3NmFhMTYwMmY0YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0Nv
Y29hL1dLV2ViVmlldy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2Ev
V0tXZWJWaWV3Lm1tCkBAIC0xMjk3LDcgKzEyOTcsNyBAQCAtIChXS1BhZ2VSZWYpX3BhZ2VGb3JU
ZXN0aW5nCiAgICAgcmV0dXJuIHRvQVBJKF9wYWdlLmdldCgpKTsKIH0KIAotLSAoV2ViS2l0OjpX
ZWJQYWdlUHJveHkgKilfcGFnZQorLSAoTmFrZWRQdHI8V2ViS2l0OjpXZWJQYWdlUHJveHk+KV9w
YWdlCiB7CiAgICAgcmV0dXJuIF9wYWdlLmdldCgpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlld0ludGVybmFsLmggYi9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3SW50ZXJuYWwuaAppbmRleCAwZjg5ZmQ2
ZjAzOWFkYTJhNjYzZTQwNjcwNTU2YTA3YWVjYmMxZTQzLi5jYzg4Y2Y0MGNkOWNhNWYzMmY1ZWUz
YmM1Nzc5ZTQ5YWUyN2Y1YTBiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9B
UEkvQ29jb2EvV0tXZWJWaWV3SW50ZXJuYWwuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9BUEkvQ29jb2EvV0tXZWJWaWV3SW50ZXJuYWwuaApAQCAtMzEsNiArMzEsNyBAQAogI2ltcG9y
dCAiX1dLQXR0YWNobWVudEludGVybmFsLmgiCiAjaW1wb3J0ICJfV0tXZWJWaWV3UHJpbnRGb3Jt
YXR0ZXJJbnRlcm5hbC5oIgogI2ltcG9ydCA8d3RmL0NvbXBsZXRpb25IYW5kbGVyLmg+CisjaW1w
b3J0IDx3dGYvTmFrZWRQdHIuaD4KICNpbXBvcnQgPHd0Zi9SZWZQdHIuaD4KICNpbXBvcnQgPHd0
Zi9SZXRhaW5QdHIuaD4KICNpbXBvcnQgPHd0Zi9WYXJpYW50Lmg+CkBAIC0yNTAsNyArMjUxLDcg
QEAgY2xhc3MgVmlld0dlc3R1cmVDb250cm9sbGVyOwogLSAoT3B0aW9uYWw8Qk9PTD4pX3Jlc29s
dXRpb25Gb3JTaGFyZVNoZWV0SW1tZWRpYXRlQ29tcGxldGlvbkZvclRlc3Rpbmc7CiAKIC0gKFdL
UGFnZVJlZilfcGFnZUZvclRlc3Rpbmc7Ci0tIChXZWJLaXQ6OldlYlBhZ2VQcm94eSopX3BhZ2U7
CistIChOYWtlZFB0cjxXZWJLaXQ6OldlYlBhZ2VQcm94eT4pX3BhZ2U7CiAKIEBlbmQKIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2Vic2l0ZURhdGFT
dG9yZS5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYnNpdGVEYXRh
U3RvcmUubW0KaW5kZXggY2VmNDgyNzQ3ZGYxOGY4NDg5M2VhZmJkZTk4MWNjMDFlNWZhZjgwZS4u
ODlhNGNhMmViNmQ2NGJmZWU2OTIyMDFlY2NjN2ZmZmVjYjgwYzE3NSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2Vic2l0ZURhdGFTdG9yZS5tbQorKysg
Yi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJzaXRlRGF0YVN0b3JlLm1t
CkBAIC00MzUsNyArNDM1LDcgQEAgLSAodm9pZClfZ2V0QWxsU3RvcmFnZUFjY2Vzc0VudHJpZXNG
b3I6KFdLV2ViVmlldyAqKXdlYlZpZXcgY29tcGxldGlvbkhhbmRsZXI6KHYKICAgICAgICAgcmV0
dXJuOwogICAgIH0KIAotICAgIGF1dG8qIHdlYlBhZ2VQcm94eSA9IFt3ZWJWaWV3IF9wYWdlXTsK
KyAgICBhdXRvIHdlYlBhZ2VQcm94eSA9IFt3ZWJWaWV3IF9wYWdlXTsKICAgICBpZiAoIXdlYlBh
Z2VQcm94eSkgewogICAgICAgICBjb21wbGV0aW9uSGFuZGxlcih7IH0pOwogICAgICAgICByZXR1
cm47CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLVGh1
bWJuYWlsVmlldy5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tUaHVt
Ym5haWxWaWV3Lm1tCmluZGV4IDEzNjA1M2M0N2RhNTFiMDI2OTI5MDRlMjdjNzU4OGFjNWRlYzE4
NWMuLjUzMGUwYTg5NjkwZWI1MzJkNjg2OTkzOTExOWExMmNmYTZmZmI2NzggMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tUaHVtYm5haWxWaWV3Lm1tCisr
KyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tUaHVtYm5haWxWaWV3Lm1t
CkBAIC0zNSw2ICszNSw3IEBACiAjaW1wb3J0ICJXS1dlYlZpZXdJbnRlcm5hbC5oIgogI2ltcG9y
dCAiV2ViUGFnZVByb3h5LmgiCiAjaW1wb3J0IDxwYWwvc3BpL2NnL0NvcmVHcmFwaGljc1NQSS5o
PgorI2ltcG9ydCA8d3RmL05ha2VkUHRyLmg+CiAKIC8vIEZJWE1FOiBNYWtlIGl0IHBvc3NpYmxl
IHRvIGxlYXZlIGEgc25hcHNob3Qgb2YgdGhlIGNvbnRlbnQgcHJlc2VudGVkIGluIHRoZSBXS1Zp
ZXcgd2hpbGUgdGhlIHRodW1ibmFpbCBpcyBsaXZlLgogLy8gRklYTUU6IERvbid0IG1ha2UgbmV3
IHNwZWN1bGF0aXZlIHRpbGVzIHdoaWxlIHRodW1ibmFpbGVkLgpAQCAtNDcsNyArNDgsNyBAQCBA
aW1wbGVtZW50YXRpb24gX1dLVGh1bWJuYWlsVmlldyB7CiAgICAgUmV0YWluUHRyPFdLVmlldz4g
X3drVmlldzsKICAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19FTkQKICAgICBSZXRh
aW5QdHI8V0tXZWJWaWV3PiBfd2tXZWJWaWV3OwotICAgIFdlYktpdDo6V2ViUGFnZVByb3h5KiBf
d2ViUGFnZVByb3h5OworICAgIE5ha2VkUHRyPFdlYktpdDo6V2ViUGFnZVByb3h5PiBfd2ViUGFn
ZVByb3h5OwogCiAgICAgQk9PTCBfb3JpZ2luYWxNYXlTdGFydE1lZGlhV2hlbkluV2luZG93Owog
ICAgIEJPT0wgX29yaWdpbmFsU291cmNlVmlld0lzSW5XaW5kb3c7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvbWFjL1dLVmlldy5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL0FQSS9tYWMvV0tWaWV3Lm1tCmluZGV4IGJiNDFkNmU2OTY1Y2Q0ZmExNjU1MzI4M2Zl
OGVkNjQ1MmIyZmIwM2YuLmRkYzZmZmZhMzMwYTgzY2I3MmJlMTkzMGZjNzIxMDEzMzQyMGQ4MjYg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9tYWMvV0tWaWV3Lm1tCisr
KyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9tYWMvV0tWaWV3Lm1tCkBAIC00Niw2ICs0
Niw3IEBACiAjaW1wb3J0IDxXZWJLaXQvV0tEcmFnRGVzdGluYXRpb25BY3Rpb24uaD4KICNpbXBv
cnQgPHBhbC9zcGkvY29jb2EvQVZLaXRTUEkuaD4KICNpbXBvcnQgPHd0Zi9CbG9ja1B0ci5oPgor
I2ltcG9ydCA8d3RmL05ha2VkUmVmLmg+CiAKIEBpbnRlcmZhY2UgV0tWaWV3RGF0YSA6IE5TT2Jq
ZWN0IHsKIEBwdWJsaWMKQEAgLTk1MCw3ICs5NTEsNyBAQCAtICh2b2lkKW1heWJlSW5zdGFsbElj
b25Mb2FkaW5nQ2xpZW50CiAgICAgICAgIF9kYXRhLT5faW1wbC0+cGFnZSgpLnNldEljb25Mb2Fk
aW5nQ2xpZW50KG1ha2VVbmlxdWU8SWNvbkxvYWRpbmdDbGllbnQ+KHNlbGYpKTsKIH0KIAotLSAo
aW5zdGFuY2V0eXBlKWluaXRXaXRoRnJhbWU6KE5TUmVjdClmcmFtZSBwcm9jZXNzUG9vbDooV2Vi
S2l0OjpXZWJQcm9jZXNzUG9vbCYpcHJvY2Vzc1Bvb2wgY29uZmlndXJhdGlvbjooUmVmPEFQSTo6
UGFnZUNvbmZpZ3VyYXRpb24+JiYpY29uZmlndXJhdGlvbgorLSAoaW5zdGFuY2V0eXBlKWluaXRX
aXRoRnJhbWU6KE5TUmVjdClmcmFtZSBwcm9jZXNzUG9vbDooTmFrZWRSZWY8V2ViS2l0OjpXZWJQ
cm9jZXNzUG9vbD4pcHJvY2Vzc1Bvb2wgY29uZmlndXJhdGlvbjooUmVmPEFQSTo6UGFnZUNvbmZp
Z3VyYXRpb24+JiYpY29uZmlndXJhdGlvbgogewogICAgIHNlbGYgPSBbc3VwZXIgaW5pdFdpdGhG
cmFtZTpmcmFtZV07CiAgICAgaWYgKCFzZWxmKQpAQCAtOTU5LDcgKzk2MCw3IEBAIC0gKGluc3Rh
bmNldHlwZSlpbml0V2l0aEZyYW1lOihOU1JlY3QpZnJhbWUgcHJvY2Vzc1Bvb2w6KFdlYktpdDo6
V2ViUHJvY2Vzc1Bvb2wmCiAgICAgV2ViS2l0OjpJbml0aWFsaXplV2ViS2l0MigpOwogCiAgICAg
X2RhdGEgPSBbW1dLVmlld0RhdGEgYWxsb2NdIGluaXRdOwotICAgIF9kYXRhLT5faW1wbCA9IG1h
a2VVbmlxdWU8V2ViS2l0OjpXZWJWaWV3SW1wbD4oc2VsZiwgbnVsbHB0ciwgcHJvY2Vzc1Bvb2ws
IFdURk1vdmUoY29uZmlndXJhdGlvbikpOworICAgIF9kYXRhLT5faW1wbCA9IG1ha2VVbmlxdWU8
V2ViS2l0OjpXZWJWaWV3SW1wbD4oc2VsZiwgbnVsbHB0ciwgcHJvY2Vzc1Bvb2wuZ2V0KCksIFdU
Rk1vdmUoY29uZmlndXJhdGlvbikpOwogCiAgICAgW3NlbGYgbWF5YmVJbnN0YWxsSWNvbkxvYWRp
bmdDbGllbnRdOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9X
ZWJWaWV3SW1wbC5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1dlYlZpZXdJbXBs
Lm1tCmluZGV4IDcxMzhlZmM5NDE1ZjhhNjE0ZjIzYWZiYTJhNGM2YTE1NTNlYzNkODguLjUwMTJk
YWQxYTU4ZGZiNzU1MWUwMzBjZmJiMDM5YzhmOGJlYTJkMTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL0NvY29hL1dlYlZpZXdJbXBsLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL0NvY29hL1dlYlZpZXdJbXBsLm1tCkBAIC0xMzcwLDcgKzEzNzAsNyBAQCBXZWJW
aWV3SW1wbDo6V2ViVmlld0ltcGwoTlNWaWV3IDxXZWJWaWV3SW1wbERlbGVnYXRlPiAqdmlldywg
V0tXZWJWaWV3ICpvdXRlcldlYgogICAgICwgbV9wYWdlKHByb2Nlc3NQb29sLmNyZWF0ZVdlYlBh
Z2UoKm1fcGFnZUNsaWVudCwgV1RGTW92ZShjb25maWd1cmF0aW9uKSkpCiAgICAgLCBtX25lZWRz
Vmlld0ZyYW1lSW5XaW5kb3dDb29yZGluYXRlcyhtX3BhZ2UtPnByZWZlcmVuY2VzKCkucGx1Z2lu
c0VuYWJsZWQoKSkKICAgICAsIG1faW50cmluc2ljQ29udGVudFNpemUoQ0dTaXplTWFrZShOU1Zp
ZXdOb0ludHJpbnNpY01ldHJpYywgTlNWaWV3Tm9JbnRyaW5zaWNNZXRyaWMpKQotICAgICwgbV9s
YXlvdXRTdHJhdGVneShbV0tWaWV3TGF5b3V0U3RyYXRlZ3kgbGF5b3V0U3RyYXRlZ3lXaXRoUGFn
ZTptX3BhZ2Ugdmlldzp2aWV3IHZpZXdJbXBsOip0aGlzIG1vZGU6a1dLTGF5b3V0TW9kZVZpZXdT
aXplXSkKKyAgICAsIG1fbGF5b3V0U3RyYXRlZ3koW1dLVmlld0xheW91dFN0cmF0ZWd5IGxheW91
dFN0cmF0ZWd5V2l0aFBhZ2U6bV9wYWdlLmdldCgpIHZpZXc6dmlldyB2aWV3SW1wbDoqdGhpcyBt
b2RlOmtXS0xheW91dE1vZGVWaWV3U2l6ZV0pCiAgICAgLCBtX3VuZG9UYXJnZXQoYWRvcHROUyhb
W1dLRWRpdG9yVW5kb1RhcmdldCBhbGxvY10gaW5pdF0pKQogICAgICwgbV93aW5kb3dWaXNpYmls
aXR5T2JzZXJ2ZXIoYWRvcHROUyhbW1dLV2luZG93VmlzaWJpbGl0eU9ic2VydmVyIGFsbG9jXSBp
bml0V2l0aFZpZXc6dmlldyBpbXBsOip0aGlzXSkpCiAgICAgLCBtX2FjY2Vzc2liaWxpdHlTZXR0
aW5nc09ic2VydmVyKGFkb3B0TlMoW1tXS0FjY2Vzc2liaWxpdHlTZXR0aW5nc09ic2VydmVyIGFs
bG9jXSBpbml0V2l0aEltcGw6KnRoaXNdKSkKQEAgLTE0MDMsNyArMTQwMyw3IEBAIFdlYlZpZXdJ
bXBsOjpXZWJWaWV3SW1wbChOU1ZpZXcgPFdlYlZpZXdJbXBsRGVsZWdhdGU+ICp2aWV3LCBXS1dl
YlZpZXcgKm91dGVyV2ViCiAKICAgICBpZiAoQ2xhc3MgZ2VzdHVyZUNsYXNzID0gTlNDbGFzc0Zy
b21TdHJpbmcoQCJOU0ltbWVkaWF0ZUFjdGlvbkdlc3R1cmVSZWNvZ25pemVyIikpIHsKICAgICAg
ICAgbV9pbW1lZGlhdGVBY3Rpb25HZXN0dXJlUmVjb2duaXplciA9IGFkb3B0TlMoWyhOU0ltbWVk
aWF0ZUFjdGlvbkdlc3R1cmVSZWNvZ25pemVyICopW2dlc3R1cmVDbGFzcyBhbGxvY10gaW5pdF0p
OwotICAgICAgICBtX2ltbWVkaWF0ZUFjdGlvbkNvbnRyb2xsZXIgPSBhZG9wdE5TKFtbV0tJbW1l
ZGlhdGVBY3Rpb25Db250cm9sbGVyIGFsbG9jXSBpbml0V2l0aFBhZ2U6bV9wYWdlIHZpZXc6dmll
dyB2aWV3SW1wbDoqdGhpcyByZWNvZ25pemVyOm1faW1tZWRpYXRlQWN0aW9uR2VzdHVyZVJlY29n
bml6ZXIuZ2V0KCldKTsKKyAgICAgICAgbV9pbW1lZGlhdGVBY3Rpb25Db250cm9sbGVyID0gYWRv
cHROUyhbW1dLSW1tZWRpYXRlQWN0aW9uQ29udHJvbGxlciBhbGxvY10gaW5pdFdpdGhQYWdlOm1f
cGFnZS5nZXQoKSB2aWV3OnZpZXcgdmlld0ltcGw6KnRoaXMgcmVjb2duaXplcjptX2ltbWVkaWF0
ZUFjdGlvbkdlc3R1cmVSZWNvZ25pemVyLmdldCgpXSk7CiAgICAgICAgIFttX2ltbWVkaWF0ZUFj
dGlvbkdlc3R1cmVSZWNvZ25pemVyIHNldERlbGVnYXRlOm1faW1tZWRpYXRlQWN0aW9uQ29udHJv
bGxlci5nZXQoKV07CiAgICAgICAgIFttX2ltbWVkaWF0ZUFjdGlvbkdlc3R1cmVSZWNvZ25pemVy
IHNldERlbGF5c1ByaW1hcnlNb3VzZUJ1dHRvbkV2ZW50czpOT107CiAgICAgfQpAQCAtMTk4Nyw3
ICsxOTg3LDcgQEAgdm9pZCBXZWJWaWV3SW1wbDo6c2V0TGF5b3V0TW9kZShXS0xheW91dE1vZGUg
bGF5b3V0TW9kZSkKICAgICAgICAgcmV0dXJuOwogCiAgICAgW21fbGF5b3V0U3RyYXRlZ3kgd2ls
bENoYW5nZUxheW91dFN0cmF0ZWd5XTsKLSAgICBtX2xheW91dFN0cmF0ZWd5ID0gW1dLVmlld0xh
eW91dFN0cmF0ZWd5IGxheW91dFN0cmF0ZWd5V2l0aFBhZ2U6bV9wYWdlIHZpZXc6bV92aWV3Lmdl
dEF1dG9yZWxlYXNlZCgpIHZpZXdJbXBsOip0aGlzIG1vZGU6bGF5b3V0TW9kZV07CisgICAgbV9s
YXlvdXRTdHJhdGVneSA9IFtXS1ZpZXdMYXlvdXRTdHJhdGVneSBsYXlvdXRTdHJhdGVneVdpdGhQ
YWdlOm1fcGFnZS5nZXQoKSB2aWV3Om1fdmlldy5nZXRBdXRvcmVsZWFzZWQoKSB2aWV3SW1wbDoq
dGhpcyBtb2RlOmxheW91dE1vZGVdOwogfQogCiBib29sIFdlYlZpZXdJbXBsOjpzdXBwb3J0c0Fy
Yml0cmFyeUxheW91dE1vZGVzKCkgY29uc3QKQEAgLTI2NDAsNyArMjY0MCw3IEBAIGJvb2wgV2Vi
Vmlld0ltcGw6Omhhc0Z1bGxTY3JlZW5XaW5kb3dDb250cm9sbGVyKCkgY29uc3QKIFdLRnVsbFNj
cmVlbldpbmRvd0NvbnRyb2xsZXIgKldlYlZpZXdJbXBsOjpmdWxsU2NyZWVuV2luZG93Q29udHJv
bGxlcigpCiB7CiAgICAgaWYgKCFtX2Z1bGxTY3JlZW5XaW5kb3dDb250cm9sbGVyKQotICAgICAg
ICBtX2Z1bGxTY3JlZW5XaW5kb3dDb250cm9sbGVyID0gYWRvcHROUyhbW1dLRnVsbFNjcmVlbldp
bmRvd0NvbnRyb2xsZXIgYWxsb2NdIGluaXRXaXRoV2luZG93OmZ1bGxTY3JlZW5XaW5kb3coKSB3
ZWJWaWV3Om1fdmlldy5nZXRBdXRvcmVsZWFzZWQoKSBwYWdlOm1fcGFnZV0pOworICAgICAgICBt
X2Z1bGxTY3JlZW5XaW5kb3dDb250cm9sbGVyID0gYWRvcHROUyhbW1dLRnVsbFNjcmVlbldpbmRv
d0NvbnRyb2xsZXIgYWxsb2NdIGluaXRXaXRoV2luZG93OmZ1bGxTY3JlZW5XaW5kb3coKSB3ZWJW
aWV3Om1fdmlldy5nZXRBdXRvcmVsZWFzZWQoKSBwYWdlOm1fcGFnZS5nZXQoKV0pOwogCiAgICAg
cmV0dXJuIG1fZnVsbFNjcmVlbldpbmRvd0NvbnRyb2xsZXIuZ2V0KCk7CiB9CkBAIC0zODgzLDcg
KzM4ODMsNyBAQCBOU1ZpZXcgKldlYlZpZXdJbXBsOjppbnNwZWN0b3JBdHRhY2htZW50Vmlldygp
CiBfV0tSZW1vdGVPYmplY3RSZWdpc3RyeSAqV2ViVmlld0ltcGw6OnJlbW90ZU9iamVjdFJlZ2lz
dHJ5KCkKIHsKICAgICBpZiAoIW1fcmVtb3RlT2JqZWN0UmVnaXN0cnkpIHsKLSAgICAgICAgbV9y
ZW1vdGVPYmplY3RSZWdpc3RyeSA9IGFkb3B0TlMoW1tfV0tSZW1vdGVPYmplY3RSZWdpc3RyeSBh
bGxvY10gX2luaXRXaXRoV2ViUGFnZVByb3h5Om1fcGFnZV0pOworICAgICAgICBtX3JlbW90ZU9i
amVjdFJlZ2lzdHJ5ID0gYWRvcHROUyhbW19XS1JlbW90ZU9iamVjdFJlZ2lzdHJ5IGFsbG9jXSBf
aW5pdFdpdGhXZWJQYWdlUHJveHk6bV9wYWdlLmdldCgpXSk7CiAgICAgICAgIG1fcGFnZS0+cHJv
Y2VzcygpLnByb2Nlc3NQb29sKCkuYWRkTWVzc2FnZVJlY2VpdmVyKE1lc3NhZ2VzOjpSZW1vdGVP
YmplY3RSZWdpc3RyeTo6bWVzc2FnZVJlY2VpdmVyTmFtZSgpLCBtX3BhZ2UtPmlkZW50aWZpZXIo
KSwgW21fcmVtb3RlT2JqZWN0UmVnaXN0cnkgcmVtb3RlT2JqZWN0UmVnaXN0cnldKTsKICAgICB9
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0FwcGxpY2F0aW9u
U3RhdGVUcmFja2luZ1ZpZXcubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tBcHBs
aWNhdGlvblN0YXRlVHJhY2tpbmdWaWV3Lm1tCmluZGV4IGI3ZjcwMjZkZGJmMTk3MjQzMzQ5MjUw
MGJiY2NjMmY3MmVmMDI4ZTkuLjU0YWQwNGJkNWU2YWM0MTAzZmZkN2MxMTcyZDcxZjI5ZDg1MmYy
NWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0FwcGxpY2F0aW9u
U3RhdGVUcmFja2luZ1ZpZXcubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dL
QXBwbGljYXRpb25TdGF0ZVRyYWNraW5nVmlldy5tbQpAQCAtNTUsNyArNTUsNyBAQCAtICh2b2lk
KXdpbGxNb3ZlVG9XaW5kb3c6KFVJV2luZG93ICopbmV3V2luZG93CiAgICAgICAgIHJldHVybjsK
IAogICAgIGF1dG8gcGFnZSA9IFtfd2ViVmlld1RvVHJhY2sgX3BhZ2VdOwotICAgIFJFTEVBU0Vf
TE9HKFZpZXdTdGF0ZSwgIiVwIC0gV0tBcHBsaWNhdGlvblN0YXRlVHJhY2tpbmdWaWV3OiBWaWV3
IHdpdGggcGFnZSBbJXAsIHBhZ2VQcm94eUlEOiAlIiBQUkl1NjQgIl0gd2FzIHJlbW92ZWQgZnJv
bSBhIHdpbmRvdywgX2xhc3RPYnNlcnZlZFN0YXRlV2FzQmFja2dyb3VuZDogJWQiLCBzZWxmLCBw
YWdlLCBwYWdlID8gcGFnZS0+aWRlbnRpZmllcigpLnRvVUludDY0KCkgOiAwLCBwYWdlID8gcGFn
ZS0+bGFzdE9ic2VydmVkU3RhdGVXYXNCYWNrZ3JvdW5kKCkgOiBmYWxzZSk7CisgICAgUkVMRUFT
RV9MT0coVmlld1N0YXRlLCAiJXAgLSBXS0FwcGxpY2F0aW9uU3RhdGVUcmFja2luZ1ZpZXc6IFZp
ZXcgd2l0aCBwYWdlIFslcCwgcGFnZVByb3h5SUQ6ICUiIFBSSXU2NCAiXSB3YXMgcmVtb3ZlZCBm
cm9tIGEgd2luZG93LCBfbGFzdE9ic2VydmVkU3RhdGVXYXNCYWNrZ3JvdW5kOiAlZCIsIHNlbGYs
IHBhZ2UuZ2V0KCksIHBhZ2UgPyBwYWdlLT5pZGVudGlmaWVyKCkudG9VSW50NjQoKSA6IDAsIHBh
Z2UgPyBwYWdlLT5sYXN0T2JzZXJ2ZWRTdGF0ZVdhc0JhY2tncm91bmQoKSA6IGZhbHNlKTsKICAg
ICBBU1NFUlQoX2FwcGxpY2F0aW9uU3RhdGVUcmFja2VyKTsKICAgICBfYXBwbGljYXRpb25TdGF0
ZVRyYWNrZXIgPSBudWxscHRyOwogfQpAQCAtNjksNyArNjksNyBAQCAtICh2b2lkKWRpZE1vdmVU
b1dpbmRvdwogICAgIGJvb2wgbGFzdE9ic2VydmVkU3RhdGVXYXNCYWNrZ3JvdW5kID0gcGFnZSA/
IHBhZ2UtPmxhc3RPYnNlcnZlZFN0YXRlV2FzQmFja2dyb3VuZCgpIDogZmFsc2U7CiAKICAgICBf
YXBwbGljYXRpb25TdGF0ZVRyYWNrZXIgPSBtYWtlVW5pcXVlPFdlYktpdDo6QXBwbGljYXRpb25T
dGF0ZVRyYWNrZXI+KHNlbGYsIEBzZWxlY3RvcihfYXBwbGljYXRpb25EaWRFbnRlckJhY2tncm91
bmQpLCBAc2VsZWN0b3IoX2FwcGxpY2F0aW9uRGlkRmluaXNoU25hcHNob3R0aW5nQWZ0ZXJFbnRl
cmluZ0JhY2tncm91bmQpLCBAc2VsZWN0b3IoX2FwcGxpY2F0aW9uV2lsbEVudGVyRm9yZWdyb3Vu
ZCkpOwotICAgIFJFTEVBU0VfTE9HKFZpZXdTdGF0ZSwgIiVwIC0gV0tBcHBsaWNhdGlvblN0YXRl
VHJhY2tpbmdWaWV3OiBWaWV3IHdpdGggcGFnZSBbJXAsIHBhZ2VQcm94eUlEOiAlIiBQUkl1NjQg
Il0gd2FzIGFkZGVkIHRvIGEgd2luZG93LCBfbGFzdE9ic2VydmVkU3RhdGVXYXNCYWNrZ3JvdW5k
OiAlZCwgaXNOb3dCYWNrZ3JvdW5kOiAlZCIsIHNlbGYsIHBhZ2UsIHBhZ2UgPyBwYWdlLT5pZGVu
dGlmaWVyKCkudG9VSW50NjQoKSA6IDAsIGxhc3RPYnNlcnZlZFN0YXRlV2FzQmFja2dyb3VuZCwg
W3NlbGYgaXNCYWNrZ3JvdW5kXSk7CisgICAgUkVMRUFTRV9MT0coVmlld1N0YXRlLCAiJXAgLSBX
S0FwcGxpY2F0aW9uU3RhdGVUcmFja2luZ1ZpZXc6IFZpZXcgd2l0aCBwYWdlIFslcCwgcGFnZVBy
b3h5SUQ6ICUiIFBSSXU2NCAiXSB3YXMgYWRkZWQgdG8gYSB3aW5kb3csIF9sYXN0T2JzZXJ2ZWRT
dGF0ZVdhc0JhY2tncm91bmQ6ICVkLCBpc05vd0JhY2tncm91bmQ6ICVkIiwgc2VsZiwgcGFnZS5n
ZXQoKSwgcGFnZSA/IHBhZ2UtPmlkZW50aWZpZXIoKS50b1VJbnQ2NCgpIDogMCwgbGFzdE9ic2Vy
dmVkU3RhdGVXYXNCYWNrZ3JvdW5kLCBbc2VsZiBpc0JhY2tncm91bmRdKTsKIAogICAgIGlmIChs
YXN0T2JzZXJ2ZWRTdGF0ZVdhc0JhY2tncm91bmQgJiYgIVtzZWxmIGlzQmFja2dyb3VuZF0pCiAg
ICAgICAgIFtzZWxmIF9hcHBsaWNhdGlvbldpbGxFbnRlckZvcmVncm91bmRdOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXcuaCBiL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3LmgKaW5kZXggNTdjZmJiZjQ0ZDgyZDI2
MzE2ZDk3MzIwMzU3ZWY3NTNhY2MxNmNjZi4uNjZhZmE0ZGNiODZhMmRlNjBkZmRmYzI0MGQ3OTEz
MzVlZmI3NDU2NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLQ29u
dGVudFZpZXcuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmll
dy5oCkBAIC0yOCw2ICsyOCw3IEBACiAjaW1wb3J0ICJXS0Jyb3dzaW5nQ29udGV4dENvbnRyb2xs
ZXIuaCIKICNpbXBvcnQgIldLQnJvd3NpbmdDb250ZXh0R3JvdXAuaCIKICNpbXBvcnQgIldLUHJv
Y2Vzc0dyb3VwLmgiCisjaW1wb3J0IDx3dGYvTmFrZWRSZWYuaD4KICNpbXBvcnQgPHd0Zi9SZXRh
aW5QdHIuaD4KICNpbXBvcnQgPHd0Zi9XZWFrT2JqQ1B0ci5oPgogCkBAIC03MCw3ICs3MSw3IEBA
IGNsYXNzIFdlYlByb2Nlc3NQb29sOwogQHByb3BlcnR5IChub25hdG9taWMpIEJPT0wgc2l6ZUNo
YW5nZWRTaW5jZUxhc3RWaXNpYmxlQ29udGVudFJlY3RVcGRhdGU7CiBAcHJvcGVydHkgKG5vbmF0
b21pYywgcmVhZG9ubHkpIFVJSW50ZXJmYWNlT3JpZW50YXRpb24gaW50ZXJmYWNlT3JpZW50YXRp
b247CiAKLS0gKGluc3RhbmNldHlwZSlpbml0V2l0aEZyYW1lOihDR1JlY3QpZnJhbWUgcHJvY2Vz
c1Bvb2w6KFdlYktpdDo6V2ViUHJvY2Vzc1Bvb2wmKXByb2Nlc3NQb29sIGNvbmZpZ3VyYXRpb246
KFJlZjxBUEk6OlBhZ2VDb25maWd1cmF0aW9uPiYmKWNvbmZpZ3VyYXRpb24gd2ViVmlldzooV0tX
ZWJWaWV3ICopd2ViVmlldzsKKy0gKGluc3RhbmNldHlwZSlpbml0V2l0aEZyYW1lOihDR1JlY3Qp
ZnJhbWUgcHJvY2Vzc1Bvb2w6KE5ha2VkUmVmPFdlYktpdDo6V2ViUHJvY2Vzc1Bvb2w+KXByb2Nl
c3NQb29sIGNvbmZpZ3VyYXRpb246KFJlZjxBUEk6OlBhZ2VDb25maWd1cmF0aW9uPiYmKWNvbmZp
Z3VyYXRpb24gd2ViVmlldzooV0tXZWJWaWV3ICopd2ViVmlldzsKIAogLSAodm9pZClkaWRVcGRh
dGVWaXNpYmxlUmVjdDooQ0dSZWN0KXZpc2libGVSZWN0CiAgICAgdW5vYnNjdXJlZFJlY3Q6KENH
UmVjdCl1bm9ic2N1cmVkUmVjdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
aW9zL1dLQ29udGVudFZpZXcubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tDb250
ZW50Vmlldy5tbQppbmRleCAyOWJhNjA2NTgyODQ0ZGVhNjc4NWRmZjEyZmJiYWI1ZThjOWIzMWZk
Li5kMjFlOWNhZTc5ZjQyMTM0Mjc0NmIyZDRlYjQ3Y2NlZTNhMGMzMTk0IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlldy5tbQorKysgYi9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlldy5tbQpAQCAtMjM4LDcgKzIzOCw3IEBA
IC0gKHZvaWQpX3JlbW92ZVZpc2liaWxpdHlQcm9wYWdhdGlvblZpZXcKIH0KICNlbmRpZgogCi0t
IChpbnN0YW5jZXR5cGUpaW5pdFdpdGhGcmFtZTooQ0dSZWN0KWZyYW1lIHByb2Nlc3NQb29sOihX
ZWJLaXQ6OldlYlByb2Nlc3NQb29sJilwcm9jZXNzUG9vbCBjb25maWd1cmF0aW9uOihSZWY8QVBJ
OjpQYWdlQ29uZmlndXJhdGlvbj4mJiljb25maWd1cmF0aW9uIHdlYlZpZXc6KFdLV2ViVmlldyAq
KXdlYlZpZXcKKy0gKGluc3RhbmNldHlwZSlpbml0V2l0aEZyYW1lOihDR1JlY3QpZnJhbWUgcHJv
Y2Vzc1Bvb2w6KE5ha2VkUmVmPFdlYktpdDo6V2ViUHJvY2Vzc1Bvb2w+KXByb2Nlc3NQb29sIGNv
bmZpZ3VyYXRpb246KFJlZjxBUEk6OlBhZ2VDb25maWd1cmF0aW9uPiYmKWNvbmZpZ3VyYXRpb24g
d2ViVmlldzooV0tXZWJWaWV3ICopd2ViVmlldwogewogICAgIGlmICghKHNlbGYgPSBbc3VwZXIg
aW5pdFdpdGhGcmFtZTpmcmFtZSB3ZWJWaWV3OndlYlZpZXddKSkKICAgICAgICAgcmV0dXJuIG5p
bDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9mdWxsc2NyZWVuL1dL
RnVsbFNjcmVlblZpZXdDb250cm9sbGVyLm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9z
L2Z1bGxzY3JlZW4vV0tGdWxsU2NyZWVuVmlld0NvbnRyb2xsZXIubW0KaW5kZXggOGZmOGEwYmY0
NzViM2Y3YjIzNjIyOWY0MTJlM2YzMjY2Y2Y5NTk2Ni4uMjlmMGNkYzU1MTAzODM0MWQ3OWQxNDcw
YWY4MmQ1OWE1YTlhZmIyNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9z
L2Z1bGxzY3JlZW4vV0tGdWxsU2NyZWVuVmlld0NvbnRyb2xsZXIubW0KKysrIGIvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvaW9zL2Z1bGxzY3JlZW4vV0tGdWxsU2NyZWVuVmlld0NvbnRyb2xsZXIu
bW0KQEAgLTI1NSw3ICsyNTUsNyBAQCAtICh2b2lkKWhpZGVVSQogCiAtICh2b2lkKXZpZGVvQ29u
dHJvbHNNYW5hZ2VyRGlkQ2hhbmdlCiB7Ci0gICAgV2ViS2l0OjpXZWJQYWdlUHJveHkqIHBhZ2Ug
PSBbc2VsZi5fd2ViVmlldyBfcGFnZV07CisgICAgYXV0byBwYWdlID0gW3NlbGYuX3dlYlZpZXcg
X3BhZ2VdOwogICAgIGF1dG8qIHZpZGVvRnVsbHNjcmVlbk1hbmFnZXIgPSBwYWdlID8gcGFnZS0+
dmlkZW9GdWxsc2NyZWVuTWFuYWdlcigpIDogbnVsbHB0cjsKICAgICBhdXRvKiB2aWRlb0Z1bGxz
Y3JlZW5JbnRlcmZhY2UgPSB2aWRlb0Z1bGxzY3JlZW5NYW5hZ2VyID8gdmlkZW9GdWxsc2NyZWVu
TWFuYWdlci0+Y29udHJvbHNNYW5hZ2VySW50ZXJmYWNlKCkgOiBudWxscHRyOwogICAgIGF1dG8q
IHBsYXliYWNrU2Vzc2lvbkludGVyZmFjZSA9IHZpZGVvRnVsbHNjcmVlbkludGVyZmFjZSA/ICZ2
aWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2UtPnBsYXliYWNrU2Vzc2lvbkludGVyZmFjZSgpIDogbnVs
bHB0cjsKQEAgLTQ4MCw3ICs0ODAsNyBAQCAtIChCT09MKWdlc3R1cmVSZWNvZ25pemVyOihVSUdl
c3R1cmVSZWNvZ25pemVyICopZ2VzdHVyZVJlY29nbml6ZXIgc2hvdWxkUmVjZWl2ZQogQGR5bmFt
aWMgX21hbmFnZXI7CiAtIChXZWJLaXQ6OldlYkZ1bGxTY3JlZW5NYW5hZ2VyUHJveHkqKV9tYW5h
Z2VyCiB7Ci0gICAgaWYgKGF1dG8qIHBhZ2UgPSBbc2VsZi5fd2ViVmlldyBfcGFnZV0pCisgICAg
aWYgKGF1dG8gcGFnZSA9IFtzZWxmLl93ZWJWaWV3IF9wYWdlXSkKICAgICAgICAgcmV0dXJuIHBh
Z2UtPmZ1bGxTY3JlZW5NYW5hZ2VyKCk7CiAgICAgcmV0dXJuIG51bGxwdHI7CiB9CkBAIC01MDQs
NyArNTA0LDcgQEAgLSAodm9pZClfY2FuY2VsQWN0aW9uOihpZClzZW5kZXIKIAogLSAodm9pZClf
dG9nZ2xlUGlQQWN0aW9uOihpZClzZW5kZXIKIHsKLSAgICBXZWJLaXQ6OldlYlBhZ2VQcm94eSog
cGFnZSA9IFtzZWxmLl93ZWJWaWV3IF9wYWdlXTsKKyAgICBhdXRvIHBhZ2UgPSBbc2VsZi5fd2Vi
VmlldyBfcGFnZV07CiAgICAgaWYgKCFwYWdlKQogICAgICAgICByZXR1cm47CiAKQEAgLTU1OCwy
MSArNTU4LDIxIEBAIC0gKHZvaWQpX3Nob3dQaGlzaGluZ0FsZXJ0CiAgICAgTlNTdHJpbmcgKmFs
ZXJ0TWVzc2FnZSA9IFtOU1N0cmluZyBzdHJpbmdXaXRoRm9ybWF0OldFQl9VSV9TVFJJTkcoIlR5
cGluZyBpcyBub3QgYWxsb3dlZCBpbiBmdWxsIHNjcmVlbiB3ZWJzaXRlcy4g4oCcJUDigJ0gbWF5
IGJlIHNob3dpbmcgYSBmYWtlIGtleWJvYXJkIHRvIHRyaWNrIHlvdSBpbnRvIGRpc2Nsb3Npbmcg
cGVyc29uYWwgb3IgZmluYW5jaWFsIGluZm9ybWF0aW9uLiIsICJGdWxsIFNjcmVlbiBEZWNlcHRp
dmUgV2Vic2l0ZSBXYXJuaW5nIFNoZWV0IENvbnRlbnQgVGV4dCIpLCAoTlNTdHJpbmcgKilzZWxm
LmxvY2F0aW9uXTsKICAgICBVSUFsZXJ0Q29udHJvbGxlciogYWxlcnQgPSBbVUlBbGVydENvbnRy
b2xsZXIgYWxlcnRDb250cm9sbGVyV2l0aFRpdGxlOmFsZXJ0VGl0bGUgbWVzc2FnZTphbGVydE1l
c3NhZ2UgcHJlZmVycmVkU3R5bGU6VUlBbGVydENvbnRyb2xsZXJTdHlsZUFsZXJ0XTsKIAotICAg
IGlmIChhdXRvKiBwYWdlID0gW3NlbGYuX3dlYlZpZXcgX3BhZ2VdKSB7CisgICAgaWYgKGF1dG8g
cGFnZSA9IFtzZWxmLl93ZWJWaWV3IF9wYWdlXSkgewogICAgICAgICBwYWdlLT5zdXNwZW5kQWxs
TWVkaWFQbGF5YmFjaygpOwogICAgICAgICBwYWdlLT5zdXNwZW5kQWN0aXZlRE9NT2JqZWN0c0Fu
ZEFuaW1hdGlvbnMoKTsKICAgICB9CiAKICAgICBVSUFsZXJ0QWN0aW9uKiBleGl0QWN0aW9uID0g
W1VJQWxlcnRBY3Rpb24gYWN0aW9uV2l0aFRpdGxlOldFQl9VSV9TVFJJTkdfS0VZKCJFeGl0IEZ1
bGwgU2NyZWVuIiwgIkV4aXQgRnVsbCBTY3JlZW4gKEVsZW1lbnQgRnVsbCBTY3JlZW4pIiwgIkZ1
bGwgU2NyZWVuIERlY2VwdGl2ZSBXZWJzaXRlIEV4aXQgQWN0aW9uIikgc3R5bGU6VUlBbGVydEFj
dGlvblN0eWxlQ2FuY2VsIGhhbmRsZXI6XihVSUFsZXJ0QWN0aW9uICogYWN0aW9uKSB7CiAgICAg
ICAgIFtzZWxmIF9jYW5jZWxBY3Rpb246YWN0aW9uXTsKLSAgICAgICAgaWYgKGF1dG8qIHBhZ2Ug
PSBbc2VsZi5fd2ViVmlldyBfcGFnZV0pIHsKKyAgICAgICAgaWYgKGF1dG8gcGFnZSA9IFtzZWxm
Ll93ZWJWaWV3IF9wYWdlXSkgewogICAgICAgICAgICAgcGFnZS0+cmVzdW1lQWN0aXZlRE9NT2Jq
ZWN0c0FuZEFuaW1hdGlvbnMoKTsKICAgICAgICAgICAgIHBhZ2UtPnJlc3VtZUFsbE1lZGlhUGxh
eWJhY2soKTsKICAgICAgICAgfQogICAgIH1dOwogCiAgICAgVUlBbGVydEFjdGlvbiogc3RheUFj
dGlvbiA9IFtVSUFsZXJ0QWN0aW9uIGFjdGlvbldpdGhUaXRsZTpXRUJfVUlfU1RSSU5HX0tFWSgi
U3RheSBpbiBGdWxsIFNjcmVlbiIsICJTdGF5IGluIEZ1bGwgU2NyZWVuIChFbGVtZW50IEZ1bGwg
U2NyZWVuKSIsICJGdWxsIFNjcmVlbiBEZWNlcHRpdmUgV2Vic2l0ZSBTdGF5IEFjdGlvbiIpIHN0
eWxlOlVJQWxlcnRBY3Rpb25TdHlsZURlZmF1bHQgaGFuZGxlcjpeKFVJQWxlcnRBY3Rpb24gKiBh
Y3Rpb24pIHsKLSAgICAgICAgaWYgKGF1dG8qIHBhZ2UgPSBbc2VsZi5fd2ViVmlldyBfcGFnZV0p
IHsKKyAgICAgICAgaWYgKGF1dG8gcGFnZSA9IFtzZWxmLl93ZWJWaWV3IF9wYWdlXSkgewogICAg
ICAgICAgICAgcGFnZS0+cmVzdW1lQWN0aXZlRE9NT2JqZWN0c0FuZEFuaW1hdGlvbnMoKTsKICAg
ICAgICAgICAgIHBhZ2UtPnJlc3VtZUFsbE1lZGlhUGxheWJhY2soKTsKICAgICAgICAgfQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvbWFjL1dLRnVsbFNjcmVlbldpbmRvd0Nv
bnRyb2xsZXIuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL21hYy9XS0Z1bGxTY3JlZW5XaW5k
b3dDb250cm9sbGVyLmgKaW5kZXggMDFkN2EyYWI3NTE4ZTYzNzk4ZWZhZjI2ZDM5YzY5NTU4MDFj
N2NiMy4uYjk0MDdmMTMwNDRhZTg1MTg1NWNiODEyNjg0YjFjY2JhYzA3ZjMxMiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvbWFjL1dLRnVsbFNjcmVlbldpbmRvd0NvbnRyb2xs
ZXIuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9tYWMvV0tGdWxsU2NyZWVuV2luZG93
Q29udHJvbGxlci5oCkBAIC0yNyw2ICsyNyw4IEBACiAKICNpbXBvcnQgPEFwcEtpdC9BcHBLaXQu
aD4KICNpbXBvcnQgIkdlbmVyaWNDYWxsYmFjay5oIgorI2ltcG9ydCA8d3RmL05ha2VkUHRyLmg+
CisjaW1wb3J0IDx3dGYvTmFrZWRSZWYuaD4KICNpbXBvcnQgPHd0Zi9SZXRhaW5QdHIuaD4KIAog
bmFtZXNwYWNlIFdlYktpdCB7IApAQCAtNDcsNyArNDksNyBAQCB0eXBlZGVmIGVudW0gRnVsbFNj
cmVlblN0YXRlIDogTlNJbnRlZ2VyIEZ1bGxTY3JlZW5TdGF0ZTsKIEBpbnRlcmZhY2UgV0tGdWxs
U2NyZWVuV2luZG93Q29udHJvbGxlciA6IE5TV2luZG93Q29udHJvbGxlcjxOU1dpbmRvd0RlbGVn
YXRlPiB7CiBAcHJpdmF0ZQogICAgIE5TVmlldyAqX3dlYlZpZXc7IC8vIENhbm5vdCBiZSByZXRh
aW5lZCwgc2VlIDxyZGFyOi8vcHJvYmxlbS8xNDg4NDY2Nj4uCi0gICAgV2ViS2l0OjpXZWJQYWdl
UHJveHkqIF9wYWdlOworICAgIE5ha2VkUHRyPFdlYktpdDo6V2ViUGFnZVByb3h5PiBfcGFnZTsK
ICAgICBSZXRhaW5QdHI8V2ViQ29yZUZ1bGxTY3JlZW5QbGFjZWhvbGRlclZpZXc+IF93ZWJWaWV3
UGxhY2Vob2xkZXI7CiAgICAgUmV0YWluUHRyPE5TVmlldz4gX2V4aXRQbGFjZWhvbGRlcjsKICAg
ICBSZXRhaW5QdHI8TlNWaWV3PiBfY2xpcFZpZXc7CkBAIC03MCw3ICs3Miw3IEBAIHR5cGVkZWYg
ZW51bSBGdWxsU2NyZWVuU3RhdGUgOiBOU0ludGVnZXIgRnVsbFNjcmVlblN0YXRlOwogQHByb3Bl
cnR5IChyZWFkb25seSkgTlNSZWN0IGZpbmFsRnJhbWU7CiBAcHJvcGVydHkgKGFzc2lnbikgTlNB
cnJheSAqc2F2ZWRDb25zdHJhaW50czsKIAotLSAoaWQpaW5pdFdpdGhXaW5kb3c6KE5TV2luZG93
ICopd2luZG93IHdlYlZpZXc6KE5TVmlldyAqKXdlYlZpZXcgcGFnZTooV2ViS2l0OjpXZWJQYWdl
UHJveHkmKXBhZ2U7CistIChpZClpbml0V2l0aFdpbmRvdzooTlNXaW5kb3cgKil3aW5kb3cgd2Vi
VmlldzooTlNWaWV3ICopd2ViVmlldyBwYWdlOihOYWtlZFJlZjxXZWJLaXQ6OldlYlBhZ2VQcm94
eT4pcGFnZTsKIAogLSAoV2ViQ29yZUZ1bGxTY3JlZW5QbGFjZWhvbGRlclZpZXcqKXdlYlZpZXdQ
bGFjZWhvbGRlcjsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvbWFjL1dL
RnVsbFNjcmVlbldpbmRvd0NvbnRyb2xsZXIubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9t
YWMvV0tGdWxsU2NyZWVuV2luZG93Q29udHJvbGxlci5tbQppbmRleCA4MjVmODNhZTg4NmRkOGNk
ZDA3NTMwNmEwNzgyMTYyMWM5ZDllMTQ0Li42ZGRmMGQ2Y2FmODg5ZjljYTBlMTliNTE2NjRjYzA5
NGE5NzA3ZWIyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9tYWMvV0tGdWxs
U2NyZWVuV2luZG93Q29udHJvbGxlci5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9t
YWMvV0tGdWxsU2NyZWVuV2luZG93Q29udHJvbGxlci5tbQpAQCAtNDksNiArNDksNyBAQAogI2lt
cG9ydCA8cGFsL3NwaS9jZy9Db3JlR3JhcGhpY3NTUEkuaD4KICNpbXBvcnQgPHBhbC9zeXN0ZW0v
U2xlZXBEaXNhYmxlci5oPgogI2ltcG9ydCA8d3RmL0Jsb2NrT2JqQ0V4Y2VwdGlvbnMuaD4KKyNp
bXBvcnQgPHd0Zi9OYWtlZFJlZi5oPgogCiBzdGF0aWMgY29uc3QgTlNUaW1lSW50ZXJ2YWwgRGVm
YXVsdFdhdGNoZG9nVGltZXJJbnRlcnZhbCA9IDE7CiAKQEAgLTEyMSw3ICsxMjIsNyBAQCBAaW1w
bGVtZW50YXRpb24gV0tGdWxsU2NyZWVuV2luZG93Q29udHJvbGxlcgogCiAjcHJhZ21hIG1hcmsg
LQogI3ByYWdtYSBtYXJrIEluaXRpYWxpemF0aW9uCi0tIChpZClpbml0V2l0aFdpbmRvdzooTlNX
aW5kb3cgKil3aW5kb3cgd2ViVmlldzooTlNWaWV3ICopd2ViVmlldyBwYWdlOihXZWJLaXQ6Oldl
YlBhZ2VQcm94eSYpcGFnZQorLSAoaWQpaW5pdFdpdGhXaW5kb3c6KE5TV2luZG93ICopd2luZG93
IHdlYlZpZXc6KE5TVmlldyAqKXdlYlZpZXcgcGFnZTooTmFrZWRSZWY8V2ViS2l0OjpXZWJQYWdl
UHJveHk+KXBhZ2UKIHsKICAgICBzZWxmID0gW3N1cGVyIGluaXRXaXRoV2luZG93OndpbmRvd107
CiAgICAgaWYgKCFzZWxmKQpAQCAtMTUwLDcgKzE1MSw3IEBAIC0gKGlkKWluaXRXaXRoV2luZG93
OihOU1dpbmRvdyAqKXdpbmRvdyB3ZWJWaWV3OihOU1ZpZXcgKil3ZWJWaWV3IHBhZ2U6KFdlYktp
dDo6CiAgICAgW3NlbGYgd2luZG93RGlkTG9hZF07CiAgICAgW3dpbmRvdyBkaXNwbGF5SWZOZWVk
ZWRdOwogICAgIF93ZWJWaWV3ID0gd2ViVmlldzsKLSAgICBfcGFnZSA9ICZwYWdlOworICAgIF9w
YWdlID0gcGFnZS5wdHIoKTsKIAogICAgIF92aWRlb0Z1bGxzY3JlZW5DbGllbnQgPSBtYWtlVW5p
cXVlPFdlYktpdDo6V0tGdWxsU2NyZWVuV2luZG93Q29udHJvbGxlclZpZGVvRnVsbHNjcmVlbk1v
ZGVsQ2xpZW50PigpOwogICAgIF92aWRlb0Z1bGxzY3JlZW5DbGllbnQtPnNldFBhcmVudChzZWxm
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL21hYy9XS0ltbWVkaWF0ZUFj
dGlvbkNvbnRyb2xsZXIuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL21hYy9XS0ltbWVkaWF0
ZUFjdGlvbkNvbnRyb2xsZXIuaAppbmRleCBmNmJmNjVmMDc0MjgyMmZmOWIxYzBiNjllZTc1YTc4
N2NlNGY3YzNjLi5mMmQ5N2ZlMDc4MzA5ODI3ZGRkMGEyM2MyMTViZTI2MDM2MjJiZDFhIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9tYWMvV0tJbW1lZGlhdGVBY3Rpb25Db250
cm9sbGVyLmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvbWFjL1dLSW1tZWRpYXRlQWN0
aW9uQ29udHJvbGxlci5oCkBAIC0zMSw2ICszMSw4IEBACiAjaW1wb3J0ICJXS0ltbWVkaWF0ZUFj
dGlvblR5cGVzLmgiCiAjaW1wb3J0ICJXZWJIaXRUZXN0UmVzdWx0RGF0YS5oIgogI2ltcG9ydCA8
cGFsL3NwaS9tYWMvTlNJbW1lZGlhdGVBY3Rpb25HZXN0dXJlUmVjb2duaXplclNQSS5oPgorI2lt
cG9ydCA8d3RmL05ha2VkUHRyLmg+CisjaW1wb3J0IDx3dGYvTmFrZWRSZWYuaD4KICNpbXBvcnQg
PHd0Zi9SZXRhaW5QdHIuaD4KIAogbmFtZXNwYWNlIFdlYktpdCB7CkBAIC01MCw5ICs1Miw5IEBA
IGVudW0gY2xhc3MgSW1tZWRpYXRlQWN0aW9uU3RhdGUgewogCiBAaW50ZXJmYWNlIFdLSW1tZWRp
YXRlQWN0aW9uQ29udHJvbGxlciA6IE5TT2JqZWN0IDxOU0ltbWVkaWF0ZUFjdGlvbkdlc3R1cmVS
ZWNvZ25pemVyRGVsZWdhdGU+IHsKIEBwcml2YXRlCi0gICAgV2ViS2l0OjpXZWJQYWdlUHJveHkq
IF9wYWdlOworICAgIE5ha2VkUHRyPFdlYktpdDo6V2ViUGFnZVByb3h5PiBfcGFnZTsKICAgICBO
U1ZpZXcgKl92aWV3OwotICAgIFdlYktpdDo6V2ViVmlld0ltcGwqIF92aWV3SW1wbDsKKyAgICBO
YWtlZFB0cjxXZWJLaXQ6OldlYlZpZXdJbXBsPiBfdmlld0ltcGw7CiAKICAgICBXZWJLaXQ6Oklt
bWVkaWF0ZUFjdGlvblN0YXRlIF9zdGF0ZTsKICAgICBXZWJLaXQ6OldlYkhpdFRlc3RSZXN1bHRE
YXRhIF9oaXRUZXN0UmVzdWx0RGF0YTsKQEAgLTY4LDcgKzcwLDcgQEAgZW51bSBjbGFzcyBJbW1l
ZGlhdGVBY3Rpb25TdGF0ZSB7CiAgICAgQk9PTCBfaGFzQWN0aXZlSW1tZWRpYXRlQWN0aW9uOwog
fQogCi0tIChpbnN0YW5jZXR5cGUpaW5pdFdpdGhQYWdlOihXZWJLaXQ6OldlYlBhZ2VQcm94eSYp
cGFnZSB2aWV3OihOU1ZpZXcgKil2aWV3IHZpZXdJbXBsOihXZWJLaXQ6OldlYlZpZXdJbXBsJil2
aWV3SW1wbCByZWNvZ25pemVyOihOU0ltbWVkaWF0ZUFjdGlvbkdlc3R1cmVSZWNvZ25pemVyICop
aW1tZWRpYXRlQWN0aW9uUmVjb2duaXplcjsKKy0gKGluc3RhbmNldHlwZSlpbml0V2l0aFBhZ2U6
KE5ha2VkUmVmPFdlYktpdDo6V2ViUGFnZVByb3h5PilwYWdlIHZpZXc6KE5TVmlldyAqKXZpZXcg
dmlld0ltcGw6KE5ha2VkUmVmPFdlYktpdDo6V2ViVmlld0ltcGw+KXZpZXdJbXBsIHJlY29nbml6
ZXI6KE5TSW1tZWRpYXRlQWN0aW9uR2VzdHVyZVJlY29nbml6ZXIgKilpbW1lZGlhdGVBY3Rpb25S
ZWNvZ25pemVyOwogLSAodm9pZCl3aWxsRGVzdHJveVZpZXc6KE5TVmlldyAqKXZpZXc7CiAtICh2
b2lkKWRpZFBlcmZvcm1JbW1lZGlhdGVBY3Rpb25IaXRUZXN0Oihjb25zdCBXZWJLaXQ6OldlYkhp
dFRlc3RSZXN1bHREYXRhJiloaXRUZXN0UmVzdWx0IGNvbnRlbnRQcmV2ZW50c0RlZmF1bHQ6KEJP
T0wpY29udGVudFByZXZlbnRzRGVmYXVsdCB1c2VyRGF0YTooQVBJOjpPYmplY3QqKXVzZXJEYXRh
OwogLSAodm9pZClkaXNtaXNzQ29udGVudFJlbGF0aXZlQ2hpbGRXaW5kb3dzOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvbWFjL1dLSW1tZWRpYXRlQWN0aW9uQ29udHJvbGxl
ci5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL21hYy9XS0ltbWVkaWF0ZUFjdGlvbkNvbnRy
b2xsZXIubW0KaW5kZXggYWU4N2FhOWNiMGQzZjkyYWRkMDcxM2MxZDBiMDkzMGY3ZTExODA2Ny4u
MzhkYmYxMDRlNzU1ZjM0MzY5MjExYWRmMjlhZWJkMTkzYjAyMmZkMSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvbWFjL1dLSW1tZWRpYXRlQWN0aW9uQ29udHJvbGxlci5tbQor
KysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9tYWMvV0tJbW1lZGlhdGVBY3Rpb25Db250cm9s
bGVyLm1tCkBAIC02MCwxNiArNjAsMTYgQEAgQGVuZAogCiBAaW1wbGVtZW50YXRpb24gV0tJbW1l
ZGlhdGVBY3Rpb25Db250cm9sbGVyCiAKLS0gKGluc3RhbmNldHlwZSlpbml0V2l0aFBhZ2U6KFdl
YktpdDo6V2ViUGFnZVByb3h5JilwYWdlIHZpZXc6KE5TVmlldyAqKXZpZXcgdmlld0ltcGw6KFdl
YktpdDo6V2ViVmlld0ltcGwmKXZpZXdJbXBsIHJlY29nbml6ZXI6KE5TSW1tZWRpYXRlQWN0aW9u
R2VzdHVyZVJlY29nbml6ZXIgKilpbW1lZGlhdGVBY3Rpb25SZWNvZ25pemVyCistIChpbnN0YW5j
ZXR5cGUpaW5pdFdpdGhQYWdlOihOYWtlZFJlZjxXZWJLaXQ6OldlYlBhZ2VQcm94eT4pcGFnZSB2
aWV3OihOU1ZpZXcgKil2aWV3IHZpZXdJbXBsOihOYWtlZFJlZjxXZWJLaXQ6OldlYlZpZXdJbXBs
Pil2aWV3SW1wbCByZWNvZ25pemVyOihOU0ltbWVkaWF0ZUFjdGlvbkdlc3R1cmVSZWNvZ25pemVy
ICopaW1tZWRpYXRlQWN0aW9uUmVjb2duaXplcgogewogICAgIHNlbGYgPSBbc3VwZXIgaW5pdF07
CiAKICAgICBpZiAoIXNlbGYpCiAgICAgICAgIHJldHVybiBuaWw7CiAKLSAgICBfcGFnZSA9ICZw
YWdlOworICAgIF9wYWdlID0gcGFnZS5wdHIoKTsKICAgICBfdmlldyA9IHZpZXc7Ci0gICAgX3Zp
ZXdJbXBsID0gJnZpZXdJbXBsOworICAgIF92aWV3SW1wbCA9IHZpZXdJbXBsLnB0cigpOwogICAg
IF90eXBlID0ga1dLSW1tZWRpYXRlQWN0aW9uTm9uZTsKICAgICBfaW1tZWRpYXRlQWN0aW9uUmVj
b2duaXplciA9IGltbWVkaWF0ZUFjdGlvblJlY29nbml6ZXI7CiAgICAgX2hhc0FjdGl2ZUltbWVk
aWF0ZUFjdGlvbiA9IE5POwpAQCAtNDEyLDcgKzQxMiw3IEBAIC0gKGlkPE5TSW1tZWRpYXRlQWN0
aW9uQW5pbWF0aW9uQ29udHJvbGxlcj4pX2FuaW1hdGlvbkNvbnRyb2xsZXJGb3JEYXRhRGV0ZWN0
ZWRUCiAgICAgaWYgKCFbW2dldEREQWN0aW9uc01hbmFnZXJDbGFzcygpIHNoYXJlZE1hbmFnZXJd
IGhhc0FjdGlvbnNGb3JSZXN1bHQ6YWN0aW9uQ29udGV4dC5tYWluUmVzdWx0IGFjdGlvbkNvbnRl
eHQ6YWN0aW9uQ29udGV4dF0pCiAgICAgICAgIHJldHVybiBuaWw7CiAKLSAgICBSZWZQdHI8V2Vi
S2l0OjpXZWJQYWdlUHJveHk+IHBhZ2UgPSBfcGFnZTsKKyAgICBSZWZQdHI8V2ViS2l0OjpXZWJQ
YWdlUHJveHk+IHBhZ2UgPSBfcGFnZS5nZXQoKTsKICAgICBXZWJDb3JlOjpQYWdlT3ZlcmxheTo6
UGFnZU92ZXJsYXlJRCBvdmVybGF5SUQgPSBfaGl0VGVzdFJlc3VsdERhdGEuZGV0ZWN0ZWREYXRh
T3JpZ2luYXRpbmdQYWdlT3ZlcmxheTsKICAgICBfY3VycmVudEFjdGlvbkNvbnRleHQgPSBbYWN0
aW9uQ29udGV4dCBjb250ZXh0Rm9yVmlldzpfdmlldyBhbHRNb2RlOllFUyBpbnRlcmFjdGlvblN0
YXJ0ZWRIYW5kbGVyOl4oKSB7CiAgICAgICAgIHBhZ2UtPnNlbmQoTWVzc2FnZXM6OldlYlBhZ2U6
OkRhdGFEZXRlY3RvcnNEaWRQcmVzZW50VUkob3ZlcmxheUlEKSk7CkBAIC00NDgsNyArNDQ4LDcg
QEAgLSAoaWQ8TlNJbW1lZGlhdGVBY3Rpb25BbmltYXRpb25Db250cm9sbGVyPilfYW5pbWF0aW9u
Q29udHJvbGxlckZvckRhdGFEZXRlY3RlZEwKICAgICBbYWN0aW9uQ29udGV4dCBzZXRBbHRNb2Rl
OllFU107CiAgICAgW2FjdGlvbkNvbnRleHQgc2V0SW1tZWRpYXRlOllFU107CiAKLSAgICBSZWZQ
dHI8V2ViS2l0OjpXZWJQYWdlUHJveHk+IHBhZ2UgPSBfcGFnZTsKKyAgICBSZWZQdHI8V2ViS2l0
OjpXZWJQYWdlUHJveHk+IHBhZ2UgPSBfcGFnZS5nZXQoKTsKICAgICBfY3VycmVudEFjdGlvbkNv
bnRleHQgPSBbYWN0aW9uQ29udGV4dCBjb250ZXh0Rm9yVmlldzpfdmlldyBhbHRNb2RlOllFUyBp
bnRlcmFjdGlvblN0YXJ0ZWRIYW5kbGVyOl4oKSB7CiAgICAgfSBpbnRlcmFjdGlvbkNoYW5nZWRI
YW5kbGVyOl4oKSB7CiAgICAgICAgIGlmIChfaGl0VGVzdFJlc3VsdERhdGEubGlua1RleHRJbmRp
Y2F0b3IpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9tYWMvV0tJbnNwZWN0
b3JWaWV3Q29udHJvbGxlci5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvbWFjL1dLSW5zcGVj
dG9yVmlld0NvbnRyb2xsZXIuaAppbmRleCAyMGJiMmU2NjFiNWZlZmU3MzYxOWQwMWM2YzNjMzhh
MzY2MjhmMjkwLi4wOGJkMDhmZjlkNDg3YzQwYjVlZGQxYjcxZTc4YzM5Mzc5YWEyZjQzIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9tYWMvV0tJbnNwZWN0b3JWaWV3Q29udHJv
bGxlci5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL21hYy9XS0luc3BlY3RvclZpZXdD
b250cm9sbGVyLmgKQEAgLTI2LDYgKzI2LDcgQEAKICNwcmFnbWEgb25jZQogCiAjaW1wb3J0IDxX
ZWJLaXQvV0tGb3VuZGF0aW9uLmg+CisjaW1wb3J0IDx3dGYvTmFrZWRQdHIuaD4KIAogI2lmIFBM
QVRGT1JNKE1BQykKIApAQCAtNDQsNyArNDUsNyBAQCBOU19BU1NVTUVfTk9OTlVMTF9CRUdJTgog
QHByb3BlcnR5IChub25hdG9taWMsIHJlYWRvbmx5KSBXS1dlYlZpZXcgKndlYlZpZXc7CiBAcHJv
cGVydHkgKG5vbmF0b21pYywgd2VhaykgaWQgPFdLSW5zcGVjdG9yVmlld0NvbnRyb2xsZXJEZWxl
Z2F0ZT4gZGVsZWdhdGU7CiAKLS0gKGluc3RhbmNldHlwZSlpbml0V2l0aEluc3BlY3RlZFBhZ2U6
KFdlYktpdDo6V2ViUGFnZVByb3h5KiBfTnVsbGFibGUpaW5zcGVjdGVkUGFnZTsKKy0gKGluc3Rh
bmNldHlwZSlpbml0V2l0aEluc3BlY3RlZFBhZ2U6KE5ha2VkUHRyPFdlYktpdDo6V2ViUGFnZVBy
b3h5PilpbnNwZWN0ZWRQYWdlOwogCiArIChCT09MKXZpZXdJc0luc3BlY3RvcldlYlZpZXc6KE5T
VmlldyAqKXZpZXc7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL21hYy9X
S0luc3BlY3RvclZpZXdDb250cm9sbGVyLm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvbWFj
L1dLSW5zcGVjdG9yVmlld0NvbnRyb2xsZXIubW0KaW5kZXggMGY2NTcxYjJiZWY0YWM2OWJhYWMx
YmVmMTBmZGZmOTlkNzQyYjZiZC4uZDkyNjNlMGZkNmU2YWZhNmJhN2I1YTE5ODU5ODk1NDRmN2Fh
NzBlOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvbWFjL1dLSW5zcGVjdG9y
Vmlld0NvbnRyb2xsZXIubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvbWFjL1dLSW5z
cGVjdG9yVmlld0NvbnRyb2xsZXIubW0KQEAgLTQ5LDEyICs0OSwxMiBAQCBAaW50ZXJmYWNlIFdL
SW5zcGVjdG9yVmlld0NvbnRyb2xsZXIgKCkgPFdLVUlEZWxlZ2F0ZSwgV0tOYXZpZ2F0aW9uRGVs
ZWdhdGUsIFdLSQogQGVuZAogCiBAaW1wbGVtZW50YXRpb24gV0tJbnNwZWN0b3JWaWV3Q29udHJv
bGxlciB7Ci0gICAgV2ViS2l0OjpXZWJQYWdlUHJveHkqIF9pbnNwZWN0ZWRQYWdlOworICAgIE5h
a2VkUHRyPFdlYktpdDo6V2ViUGFnZVByb3h5PiBfaW5zcGVjdGVkUGFnZTsKICAgICBSZXRhaW5Q
dHI8V0tJbnNwZWN0b3JXS1dlYlZpZXc+IF93ZWJWaWV3OwogICAgIFdlYWtPYmpDUHRyPGlkIDxX
S0luc3BlY3RvclZpZXdDb250cm9sbGVyRGVsZWdhdGU+PiBfZGVsZWdhdGU7CiB9CiAKLS0gKGlu
c3RhbmNldHlwZSlpbml0V2l0aEluc3BlY3RlZFBhZ2U6KFdlYktpdDo6V2ViUGFnZVByb3h5Kilp
bnNwZWN0ZWRQYWdlCistIChpbnN0YW5jZXR5cGUpaW5pdFdpdGhJbnNwZWN0ZWRQYWdlOihOYWtl
ZFB0cjxXZWJLaXQ6OldlYlBhZ2VQcm94eT4paW5zcGVjdGVkUGFnZQogewogICAgIGlmICghKHNl
bGYgPSBbc3VwZXIgaW5pdF0pKQogICAgICAgICByZXR1cm4gbmlsOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvbWFjL1dLVGV4dEZpbmRlckNsaWVudC5oIGIvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvbWFjL1dLVGV4dEZpbmRlckNsaWVudC5oCmluZGV4IDc5ZmZlY2ZmYTVh
YjQ5MTc0MWUzNWFjMWFkY2RhMmRiYjk1ODEyMzIuLjliNjBkYmY2NjkyOWZmYzkzMmRiMzY3Mjkx
MGQ5ODE5M2JiNTdmZTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL21hYy9X
S1RleHRGaW5kZXJDbGllbnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9tYWMvV0tU
ZXh0RmluZGVyQ2xpZW50LmgKQEAgLTI3LDYgKzI3LDcgQEAKICNkZWZpbmUgV0tUZXh0RmluZGVy
Q2xpZW50X2gKIAogI2ltcG9ydCA8V2ViS2l0L1dLRm91bmRhdGlvbi5oPgorI2ltcG9ydCA8d3Rm
L05ha2VkUmVmLmg+CiAKICNpZiBQTEFURk9STShNQUMpCiAKQEAgLTM4LDcgKzM5LDcgQEAgY2xh
c3MgV2ViUGFnZVByb3h5OwogCiBAaW50ZXJmYWNlIFdLVGV4dEZpbmRlckNsaWVudCA6IE5TT2Jq
ZWN0CiAKLS0gKGluc3RhbmNldHlwZSlpbml0V2l0aFBhZ2U6KFdlYktpdDo6V2ViUGFnZVByb3h5
JilwYWdlIHZpZXc6KE5TVmlldyAqKXZpZXcgdXNlUGxhdGZvcm1GaW5kVUk6KEJPT0wpdXNlUGxh
dGZvcm1GaW5kVUk7CistIChpbnN0YW5jZXR5cGUpaW5pdFdpdGhQYWdlOihOYWtlZFJlZjxXZWJL
aXQ6OldlYlBhZ2VQcm94eT4pcGFnZSB2aWV3OihOU1ZpZXcgKil2aWV3IHVzZVBsYXRmb3JtRmlu
ZFVJOihCT09MKXVzZVBsYXRmb3JtRmluZFVJOwogLSAodm9pZCl3aWxsRGVzdHJveVZpZXc6KE5T
VmlldyAqKXZpZXc7CiAKIEBlbmQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L21hYy9XS1RleHRGaW5kZXJDbGllbnQubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9tYWMv
V0tUZXh0RmluZGVyQ2xpZW50Lm1tCmluZGV4IDY5ZDlkOWUyZDQ0NDg0M2QxNTI3MGY1MTE3Zjc3
NGNkMjM3ZDVkYjguLjM5NjhlZGE2M2RlZGUyOTA1ZWMyZjcwZTU1OWMxYjhkYTk0NDAyOGUgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL21hYy9XS1RleHRGaW5kZXJDbGllbnQu
bW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvbWFjL1dLVGV4dEZpbmRlckNsaWVudC5t
bQpAQCAtMzYsNiArMzYsNyBAQAogI2ltcG9ydCA8cGFsL3NwaS9tYWMvTlNUZXh0RmluZGVyU1BJ
Lmg+CiAjaW1wb3J0IDx3dGYvQmxvY2tQdHIuaD4KICNpbXBvcnQgPHd0Zi9EZXF1ZS5oPgorI2lt
cG9ydCA8d3RmL05ha2VkUHRyLmg+CiAKIC8vIEZJWE1FOiBJbXBsZW1lbnQgc2Nyb2xsRmluZE1h
dGNoVG9WaXNpYmxlLgogLy8gRklYTUU6IFRoZSBOU1RleHRGaW5kZXIgb3ZlcmxheSBkb2Vzbid0
IG1vdmUgd2l0aCBzY3JvbGxpbmc7IHdlIHNob3VsZCBoYXZlIGEgbW9kZSB3aGVyZSB3ZSBtYW5h
Z2UgdGhlIG92ZXJsYXkuCkBAIC0xNTEsMjEgKzE1MiwyMSBAQCAtICh1bnNpZ25lZClpbmRleAog
QGVuZAogCiBAaW1wbGVtZW50YXRpb24gV0tUZXh0RmluZGVyQ2xpZW50IHsKLSAgICBXZWJLaXQ6
OldlYlBhZ2VQcm94eSogX3BhZ2U7CisgICAgTmFrZWRQdHI8V2ViS2l0OjpXZWJQYWdlUHJveHk+
IF9wYWdlOwogICAgIE5TVmlldyAqX3ZpZXc7CiAgICAgRGVxdWU8V1RGOjpGdW5jdGlvbjx2b2lk
KE5TQXJyYXkgKiwgYm9vbCBkaWRXcmFwKT4+IF9maW5kUmVwbHlDYWxsYmFja3M7CiAgICAgRGVx
dWU8V1RGOjpGdW5jdGlvbjx2b2lkKE5TSW1hZ2UgKik+PiBfaW1hZ2VSZXBseUNhbGxiYWNrczsK
ICAgICBCT09MIF91c2VQbGF0Zm9ybUZpbmRVSTsKIH0KIAotLSAoaW5zdGFuY2V0eXBlKWluaXRX
aXRoUGFnZTooV2ViS2l0OjpXZWJQYWdlUHJveHkmKXBhZ2UgdmlldzooTlNWaWV3ICopdmlldyB1
c2VQbGF0Zm9ybUZpbmRVSTooQk9PTCl1c2VQbGF0Zm9ybUZpbmRVSQorLSAoaW5zdGFuY2V0eXBl
KWluaXRXaXRoUGFnZTooTmFrZWRSZWY8V2ViS2l0OjpXZWJQYWdlUHJveHk+KXBhZ2Ugdmlldzoo
TlNWaWV3ICopdmlldyB1c2VQbGF0Zm9ybUZpbmRVSTooQk9PTCl1c2VQbGF0Zm9ybUZpbmRVSQog
ewogICAgIHNlbGYgPSBbc3VwZXIgaW5pdF07CiAKICAgICBpZiAoIXNlbGYpCiAgICAgICAgIHJl
dHVybiBuaWw7CiAKLSAgICBfcGFnZSA9ICZwYWdlOworICAgIF9wYWdlID0gcGFnZS5wdHIoKTsK
ICAgICBfdmlldyA9IHZpZXc7CiAgICAgX3VzZVBsYXRmb3JtRmluZFVJID0gdXNlUGxhdGZvcm1G
aW5kVUk7CiAgICAgCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9tYWMvV0tW
aWV3TGF5b3V0U3RyYXRlZ3kuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL21hYy9XS1ZpZXdM
YXlvdXRTdHJhdGVneS5oCmluZGV4IDJkZjdlMDdkYjllYmJjZjdhMTExMTJlNTYyNzBlNDA2N2M1
ODg5ODcuLjJmZWVmNGY4OTcwYjkxMDE2ZTY4M2YzZjFkNmE3NTQ3ZDg3MzU4ZjUgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL21hYy9XS1ZpZXdMYXlvdXRTdHJhdGVneS5oCisr
KyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL21hYy9XS1ZpZXdMYXlvdXRTdHJhdGVneS5oCkBA
IC0yOSw2ICsyOSw4IEBACiAjaWYgUExBVEZPUk0oTUFDKQogCiAjaW1wb3J0ICJXS0xheW91dE1v
ZGUuaCIKKyNpbXBvcnQgPHd0Zi9OYWtlZFB0ci5oPgorI2ltcG9ydCA8d3RmL05ha2VkUmVmLmg+
CiAKIG5hbWVzcGFjZSBXZWJLaXQgewogY2xhc3MgV2ViUGFnZVByb3h5OwpAQCAtMzksMTUgKzQx
LDE1IEBAIGNsYXNzIFdlYlZpZXdJbXBsOwogCiBAaW50ZXJmYWNlIFdLVmlld0xheW91dFN0cmF0
ZWd5IDogTlNPYmplY3QgewogQHBhY2thZ2UKLSAgICBXZWJLaXQ6OldlYlBhZ2VQcm94eSogX3Bh
Z2U7Ci0gICAgV2ViS2l0OjpXZWJWaWV3SW1wbCogX3dlYlZpZXdJbXBsOworICAgIE5ha2VkUHRy
PFdlYktpdDo6V2ViUGFnZVByb3h5PiBfcGFnZTsKKyAgICBOYWtlZFB0cjxXZWJLaXQ6OldlYlZp
ZXdJbXBsPiBfd2ViVmlld0ltcGw7CiAgICAgTlNWaWV3ICpfdmlldzsKIAogICAgIFdLTGF5b3V0
TW9kZSBfbGF5b3V0TW9kZTsKICAgICB1bnNpZ25lZCBfZnJhbWVTaXplVXBkYXRlc0Rpc2FibGVk
Q291bnQ7CiB9CiAKLSsgKGluc3RhbmNldHlwZSlsYXlvdXRTdHJhdGVneVdpdGhQYWdlOihXZWJL
aXQ6OldlYlBhZ2VQcm94eSYpcGFnZSB2aWV3OihOU1ZpZXcgKil2aWV3IHZpZXdJbXBsOihXZWJL
aXQ6OldlYlZpZXdJbXBsJil3ZWJWaWV3SW1wbCBtb2RlOihXS0xheW91dE1vZGUpbW9kZTsKKysg
KGluc3RhbmNldHlwZSlsYXlvdXRTdHJhdGVneVdpdGhQYWdlOihOYWtlZFJlZjxXZWJLaXQ6Oldl
YlBhZ2VQcm94eT4pcGFnZSB2aWV3OihOU1ZpZXcgKil2aWV3IHZpZXdJbXBsOihOYWtlZFJlZjxX
ZWJLaXQ6OldlYlZpZXdJbXBsPil3ZWJWaWV3SW1wbCBtb2RlOihXS0xheW91dE1vZGUpbW9kZTsK
IAogLSAodm9pZClpbnZhbGlkYXRlOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9tYWMvV0tWaWV3TGF5b3V0U3RyYXRlZ3kubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9tYWMvV0tWaWV3TGF5b3V0U3RyYXRlZ3kubW0KaW5kZXggNjM5ZDU5OTQ1NDI4YjAyNTYyOGMz
NWI1MjVjNTYyNjJkMWQzZGQxYi4uZWIwYmFiMzAxMTI5ZmEwODNlOWExNmRlNjJjZWNlNjAwZDAx
M2Q4NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvbWFjL1dLVmlld0xheW91
dFN0cmF0ZWd5Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL21hYy9XS1ZpZXdMYXlv
dXRTdHJhdGVneS5tbQpAQCAtNDcsMjMgKzQ3LDIzIEBAIEBlbmQKIAogQGltcGxlbWVudGF0aW9u
IFdLVmlld0xheW91dFN0cmF0ZWd5CiAKLSsgKGluc3RhbmNldHlwZSlsYXlvdXRTdHJhdGVneVdp
dGhQYWdlOihXZWJLaXQ6OldlYlBhZ2VQcm94eSYpcGFnZSB2aWV3OihOU1ZpZXcgKil2aWV3IHZp
ZXdJbXBsOihXZWJLaXQ6OldlYlZpZXdJbXBsJil3ZWJWaWV3SW1wbCBtb2RlOihXS0xheW91dE1v
ZGUpbW9kZQorKyAoaW5zdGFuY2V0eXBlKWxheW91dFN0cmF0ZWd5V2l0aFBhZ2U6KE5ha2VkUmVm
PFdlYktpdDo6V2ViUGFnZVByb3h5PilwYWdlIHZpZXc6KE5TVmlldyAqKXZpZXcgdmlld0ltcGw6
KE5ha2VkUmVmPFdlYktpdDo6V2ViVmlld0ltcGw+KXdlYlZpZXdJbXBsIG1vZGU6KFdLTGF5b3V0
TW9kZSltb2RlCiB7CiAgICAgV0tWaWV3TGF5b3V0U3RyYXRlZ3kgKnN0cmF0ZWd5OwogCiAgICAg
c3dpdGNoIChtb2RlKSB7CiAgICAgY2FzZSBrV0tMYXlvdXRNb2RlRml4ZWRTaXplOgotICAgICAg
ICBzdHJhdGVneSA9IFtbV0tWaWV3Rml4ZWRTaXplTGF5b3V0U3RyYXRlZ3kgYWxsb2NdIGluaXRX
aXRoUGFnZTpwYWdlIHZpZXc6dmlldyB2aWV3SW1wbDp3ZWJWaWV3SW1wbCBtb2RlOm1vZGVdOwor
ICAgICAgICBzdHJhdGVneSA9IFtbV0tWaWV3Rml4ZWRTaXplTGF5b3V0U3RyYXRlZ3kgYWxsb2Nd
IGluaXRXaXRoUGFnZTpwYWdlLmNvcHlSZWYoKSB2aWV3OnZpZXcgdmlld0ltcGw6d2ViVmlld0lt
cGwuY29weVJlZigpIG1vZGU6bW9kZV07CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2Uga1dLTGF5
b3V0TW9kZUR5bmFtaWNTaXplQ29tcHV0ZWRGcm9tVmlld1NjYWxlOgotICAgICAgICBzdHJhdGVn
eSA9IFtbV0tWaWV3RHluYW1pY1NpemVDb21wdXRlZEZyb21WaWV3U2NhbGVMYXlvdXRTdHJhdGVn
eSBhbGxvY10gaW5pdFdpdGhQYWdlOnBhZ2Ugdmlldzp2aWV3IHZpZXdJbXBsOndlYlZpZXdJbXBs
IG1vZGU6bW9kZV07CisgICAgICAgIHN0cmF0ZWd5ID0gW1tXS1ZpZXdEeW5hbWljU2l6ZUNvbXB1
dGVkRnJvbVZpZXdTY2FsZUxheW91dFN0cmF0ZWd5IGFsbG9jXSBpbml0V2l0aFBhZ2U6cGFnZS5j
b3B5UmVmKCkgdmlldzp2aWV3IHZpZXdJbXBsOndlYlZpZXdJbXBsLmNvcHlSZWYoKSBtb2RlOm1v
ZGVdOwogICAgICAgICBicmVhazsKICAgICBjYXNlIGtXS0xheW91dE1vZGVEeW5hbWljU2l6ZUNv
bXB1dGVkRnJvbU1pbmltdW1Eb2N1bWVudFNpemU6Ci0gICAgICAgIHN0cmF0ZWd5ID0gW1tXS1Zp
ZXdEeW5hbWljU2l6ZUNvbXB1dGVkRnJvbU1pbmltdW1Eb2N1bWVudFNpemVMYXlvdXRTdHJhdGVn
eSBhbGxvY10gaW5pdFdpdGhQYWdlOnBhZ2Ugdmlldzp2aWV3IHZpZXdJbXBsOndlYlZpZXdJbXBs
IG1vZGU6bW9kZV07CisgICAgICAgIHN0cmF0ZWd5ID0gW1tXS1ZpZXdEeW5hbWljU2l6ZUNvbXB1
dGVkRnJvbU1pbmltdW1Eb2N1bWVudFNpemVMYXlvdXRTdHJhdGVneSBhbGxvY10gaW5pdFdpdGhQ
YWdlOnBhZ2UuY29weVJlZigpIHZpZXc6dmlldyB2aWV3SW1wbDp3ZWJWaWV3SW1wbC5jb3B5UmVm
KCkgbW9kZTptb2RlXTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBrV0tMYXlvdXRNb2RlVmll
d1NpemU6CiAgICAgZGVmYXVsdDoKLSAgICAgICAgc3RyYXRlZ3kgPSBbW1dLVmlld1ZpZXdTaXpl
TGF5b3V0U3RyYXRlZ3kgYWxsb2NdIGluaXRXaXRoUGFnZTpwYWdlIHZpZXc6dmlldyB2aWV3SW1w
bDp3ZWJWaWV3SW1wbCBtb2RlOm1vZGVdOworICAgICAgICBzdHJhdGVneSA9IFtbV0tWaWV3Vmll
d1NpemVMYXlvdXRTdHJhdGVneSBhbGxvY10gaW5pdFdpdGhQYWdlOnBhZ2UuY29weVJlZigpIHZp
ZXc6dmlldyB2aWV3SW1wbDp3ZWJWaWV3SW1wbC5jb3B5UmVmKCkgbW9kZTptb2RlXTsKICAgICAg
ICAgYnJlYWs7CiAgICAgfQogCkBAIC03MiwxNSArNzIsMTUgQEAgKyAoaW5zdGFuY2V0eXBlKWxh
eW91dFN0cmF0ZWd5V2l0aFBhZ2U6KFdlYktpdDo6V2ViUGFnZVByb3h5JilwYWdlIHZpZXc6KE5T
VmlldwogICAgIHJldHVybiBbc3RyYXRlZ3kgYXV0b3JlbGVhc2VdOwogfQogCi0tIChpbnN0YW5j
ZXR5cGUpaW5pdFdpdGhQYWdlOihXZWJLaXQ6OldlYlBhZ2VQcm94eSYpcGFnZSB2aWV3OihOU1Zp
ZXcgKil2aWV3IHZpZXdJbXBsOihXZWJLaXQ6OldlYlZpZXdJbXBsJil3ZWJWaWV3SW1wbCBtb2Rl
OihXS0xheW91dE1vZGUpbW9kZQorLSAoaW5zdGFuY2V0eXBlKWluaXRXaXRoUGFnZTooTmFrZWRS
ZWY8V2ViS2l0OjpXZWJQYWdlUHJveHk+KXBhZ2UgdmlldzooTlNWaWV3ICopdmlldyB2aWV3SW1w
bDooTmFrZWRSZWY8V2ViS2l0OjpXZWJWaWV3SW1wbD4pd2ViVmlld0ltcGwgbW9kZTooV0tMYXlv
dXRNb2RlKW1vZGUKIHsKICAgICBzZWxmID0gW3N1cGVyIGluaXRdOwogCiAgICAgaWYgKCFzZWxm
KQogICAgICAgICByZXR1cm4gbmlsOwogCi0gICAgX3BhZ2UgPSAmcGFnZTsKLSAgICBfd2ViVmll
d0ltcGwgPSAmd2ViVmlld0ltcGw7CisgICAgX3BhZ2UgPSBwYWdlLnB0cigpOworICAgIF93ZWJW
aWV3SW1wbCA9IHdlYlZpZXdJbXBsLnB0cigpOwogICAgIF92aWV3ID0gdmlldzsKICAgICBfbGF5
b3V0TW9kZSA9IG1vZGU7CiAKQEAgLTE1MiwxNCArMTUyLDE0IEBAIEBlbmQKIAogQGltcGxlbWVu
dGF0aW9uIFdLVmlld1ZpZXdTaXplTGF5b3V0U3RyYXRlZ3kKIAotLSAoaW5zdGFuY2V0eXBlKWlu
aXRXaXRoUGFnZTooV2ViS2l0OjpXZWJQYWdlUHJveHkmKXBhZ2UgdmlldzooTlNWaWV3ICopdmll
dyB2aWV3SW1wbDooV2ViS2l0OjpXZWJWaWV3SW1wbCYpd2ViVmlld0ltcGwgbW9kZTooV0tMYXlv
dXRNb2RlKW1vZGUKKy0gKGluc3RhbmNldHlwZSlpbml0V2l0aFBhZ2U6KE5ha2VkUmVmPFdlYktp
dDo6V2ViUGFnZVByb3h5PilwYWdlIHZpZXc6KE5TVmlldyAqKXZpZXcgdmlld0ltcGw6KE5ha2Vk
UmVmPFdlYktpdDo6V2ViVmlld0ltcGw+KXdlYlZpZXdJbXBsIG1vZGU6KFdLTGF5b3V0TW9kZSlt
b2RlCiB7Ci0gICAgc2VsZiA9IFtzdXBlciBpbml0V2l0aFBhZ2U6cGFnZSB2aWV3OnZpZXcgdmll
d0ltcGw6d2ViVmlld0ltcGwgbW9kZTptb2RlXTsKKyAgICBzZWxmID0gW3N1cGVyIGluaXRXaXRo
UGFnZTpwYWdlLmNvcHlSZWYoKSB2aWV3OnZpZXcgdmlld0ltcGw6d2ViVmlld0ltcGwuY29weVJl
ZigpIG1vZGU6bW9kZV07CiAKICAgICBpZiAoIXNlbGYpCiAgICAgICAgIHJldHVybiBuaWw7CiAK
LSAgICBwYWdlLnNldFVzZUZpeGVkTGF5b3V0KGZhbHNlKTsKKyAgICBwYWdlLT5zZXRVc2VGaXhl
ZExheW91dChmYWxzZSk7CiAKICAgICByZXR1cm4gc2VsZjsKIH0KQEAgLTE3MiwxNCArMTcyLDE0
IEBAIEBlbmQKIAogQGltcGxlbWVudGF0aW9uIFdLVmlld0ZpeGVkU2l6ZUxheW91dFN0cmF0ZWd5
CiAKLS0gKGluc3RhbmNldHlwZSlpbml0V2l0aFBhZ2U6KFdlYktpdDo6V2ViUGFnZVByb3h5Jilw
YWdlIHZpZXc6KE5TVmlldyAqKXZpZXcgdmlld0ltcGw6KFdlYktpdDo6V2ViVmlld0ltcGwmKXdl
YlZpZXdJbXBsIG1vZGU6KFdLTGF5b3V0TW9kZSltb2RlCistIChpbnN0YW5jZXR5cGUpaW5pdFdp
dGhQYWdlOihOYWtlZFJlZjxXZWJLaXQ6OldlYlBhZ2VQcm94eT4pcGFnZSB2aWV3OihOU1ZpZXcg
Kil2aWV3IHZpZXdJbXBsOihOYWtlZFJlZjxXZWJLaXQ6OldlYlZpZXdJbXBsPil3ZWJWaWV3SW1w
bCBtb2RlOihXS0xheW91dE1vZGUpbW9kZQogewotICAgIHNlbGYgPSBbc3VwZXIgaW5pdFdpdGhQ
YWdlOnBhZ2Ugdmlldzp2aWV3IHZpZXdJbXBsOndlYlZpZXdJbXBsIG1vZGU6bW9kZV07CisgICAg
c2VsZiA9IFtzdXBlciBpbml0V2l0aFBhZ2U6cGFnZS5jb3B5UmVmKCkgdmlldzp2aWV3IHZpZXdJ
bXBsOndlYlZpZXdJbXBsLmNvcHlSZWYoKSBtb2RlOm1vZGVdOwogCiAgICAgaWYgKCFzZWxmKQog
ICAgICAgICByZXR1cm4gbmlsOwogCi0gICAgcGFnZS5zZXRVc2VGaXhlZExheW91dCh0cnVlKTsK
KyAgICBwYWdlLT5zZXRVc2VGaXhlZExheW91dCh0cnVlKTsKIAogICAgIHJldHVybiBzZWxmOwog
fQpAQCAtMTkyLDE0ICsxOTIsMTQgQEAgQGVuZAogCiBAaW1wbGVtZW50YXRpb24gV0tWaWV3RHlu
YW1pY1NpemVDb21wdXRlZEZyb21WaWV3U2NhbGVMYXlvdXRTdHJhdGVneQogCi0tIChpbnN0YW5j
ZXR5cGUpaW5pdFdpdGhQYWdlOihXZWJLaXQ6OldlYlBhZ2VQcm94eSYpcGFnZSB2aWV3OihOU1Zp
ZXcgKil2aWV3IHZpZXdJbXBsOihXZWJLaXQ6OldlYlZpZXdJbXBsJil3ZWJWaWV3SW1wbCBtb2Rl
OihXS0xheW91dE1vZGUpbW9kZQorLSAoaW5zdGFuY2V0eXBlKWluaXRXaXRoUGFnZTooTmFrZWRS
ZWY8V2ViS2l0OjpXZWJQYWdlUHJveHk+KXBhZ2UgdmlldzooTlNWaWV3ICopdmlldyB2aWV3SW1w
bDooTmFrZWRSZWY8V2ViS2l0OjpXZWJWaWV3SW1wbD4pd2ViVmlld0ltcGwgbW9kZTooV0tMYXlv
dXRNb2RlKW1vZGUKIHsKLSAgICBzZWxmID0gW3N1cGVyIGluaXRXaXRoUGFnZTpwYWdlIHZpZXc6
dmlldyB2aWV3SW1wbDp3ZWJWaWV3SW1wbCBtb2RlOm1vZGVdOworICAgIHNlbGYgPSBbc3VwZXIg
aW5pdFdpdGhQYWdlOnBhZ2UuY29weVJlZigpIHZpZXc6dmlldyB2aWV3SW1wbDp3ZWJWaWV3SW1w
bC5jb3B5UmVmKCkgbW9kZTptb2RlXTsKIAogICAgIGlmICghc2VsZikKICAgICAgICAgcmV0dXJu
IG5pbDsKIAotICAgIHBhZ2Uuc2V0VXNlRml4ZWRMYXlvdXQodHJ1ZSk7CisgICAgcGFnZS0+c2V0
VXNlRml4ZWRMYXlvdXQodHJ1ZSk7CiAKICAgICByZXR1cm4gc2VsZjsKIH0KQEAgLTIzMSw5ICsy
MzEsOSBAQCBAZW5kCiAKIEBpbXBsZW1lbnRhdGlvbiBXS1ZpZXdEeW5hbWljU2l6ZUNvbXB1dGVk
RnJvbU1pbmltdW1Eb2N1bWVudFNpemVMYXlvdXRTdHJhdGVneQogCi0tIChpbnN0YW5jZXR5cGUp
aW5pdFdpdGhQYWdlOihXZWJLaXQ6OldlYlBhZ2VQcm94eSYpcGFnZSB2aWV3OihOU1ZpZXcgKil2
aWV3IHZpZXdJbXBsOihXZWJLaXQ6OldlYlZpZXdJbXBsJil3ZWJWaWV3SW1wbCBtb2RlOihXS0xh
eW91dE1vZGUpbW9kZQorLSAoaW5zdGFuY2V0eXBlKWluaXRXaXRoUGFnZTooTmFrZWRSZWY8V2Vi
S2l0OjpXZWJQYWdlUHJveHk+KXBhZ2UgdmlldzooTlNWaWV3ICopdmlldyB2aWV3SW1wbDooTmFr
ZWRSZWY8V2ViS2l0OjpXZWJWaWV3SW1wbD4pd2ViVmlld0ltcGwgbW9kZTooV0tMYXlvdXRNb2Rl
KW1vZGUKIHsKLSAgICBzZWxmID0gW3N1cGVyIGluaXRXaXRoUGFnZTpwYWdlIHZpZXc6dmlldyB2
aWV3SW1wbDp3ZWJWaWV3SW1wbCBtb2RlOm1vZGVdOworICAgIHNlbGYgPSBbc3VwZXIgaW5pdFdp
dGhQYWdlOnBhZ2UuY29weVJlZigpIHZpZXc6dmlldyB2aWV3SW1wbDp3ZWJWaWV3SW1wbC5jb3B5
UmVmKCkgbW9kZTptb2RlXTsKIAogICAgIGlmICghc2VsZikKICAgICAgICAgcmV0dXJuIG5pbDsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkv
bWFjL1dLRE9NRG9jdW1lbnQubW0gYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRC
dW5kbGUvQVBJL21hYy9XS0RPTURvY3VtZW50Lm1tCmluZGV4IDBmMjcxZTVkZTdlMGE0ZDVhNjgx
MDUyZjAyZGVjYzBlMWE0MTZkZmUuLjE2NmU3OWQwMzIyMmVjOTgyNDExOGE0NzBjMDIwNDk0YTZi
NThjMGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRs
ZS9BUEkvbWFjL1dLRE9NRG9jdW1lbnQubW0KKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L0luamVjdGVkQnVuZGxlL0FQSS9tYWMvV0tET01Eb2N1bWVudC5tbQpAQCAtMzIsNiArMzIsNyBA
QAogI2ltcG9ydCA8V2ViQ29yZS9IVE1MRWxlbWVudC5oPgogI2ltcG9ydCA8V2ViQ29yZS9UZXh0
Lmg+CiAjaW1wb3J0IDxXZWJDb3JlL21hcmt1cC5oPgorI2ltcG9ydCA8d3RmL05ha2VkUmVmLmg+
CiAKIEBpbnRlcmZhY2UgV0tET01Eb2N1bWVudFBhcnNlcllpZWxkVG9rZW4gOiBOU09iamVjdAog
CkBAIC00MSwxMCArNDIsMTAgQEAgQGltcGxlbWVudGF0aW9uIFdLRE9NRG9jdW1lbnRQYXJzZXJZ
aWVsZFRva2VuIHsKICAgICBzdGQ6OnVuaXF1ZV9wdHI8V2ViQ29yZTo6RG9jdW1lbnRQYXJzZXJZ
aWVsZFRva2VuPiBfdG9rZW47CiB9CiAKLS0gKGluc3RhbmNldHlwZSlpbml0V2l0aERvY3VtZW50
OihXZWJDb3JlOjpEb2N1bWVudCYpZG9jdW1lbnQKKy0gKGluc3RhbmNldHlwZSlpbml0V2l0aERv
Y3VtZW50OihOYWtlZFJlZjxXZWJDb3JlOjpEb2N1bWVudD4pZG9jdW1lbnQKIHsKICAgICBpZiAo
c2VsZiA9IFtzdXBlciBpbml0XSkKLSAgICAgICAgX3Rva2VuID0gZG9jdW1lbnQuY3JlYXRlUGFy
c2VyWWllbGRUb2tlbigpOworICAgICAgICBfdG9rZW4gPSBkb2N1bWVudC0+Y3JlYXRlUGFyc2Vy
WWllbGRUb2tlbigpOwogICAgIHJldHVybiBzZWxmOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9tYWMvV0tBY2Nlc3NpYmlsaXR5V2ViUGFnZU9iamVj
dEJhc2UuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9XS0FjY2Vzc2li
aWxpdHlXZWJQYWdlT2JqZWN0QmFzZS5oCmluZGV4IGFlY2Q0YTUwNWM5OTgyMzAwZTM4NDA3MzY3
Yzk4NzkwMzMyODA1OWIuLmExMTY1MjgzNTJiMWYxZjUxZTNkNDk0ZGQ4NDMyMmIxNzYyODE4ZDIg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9XS0FjY2Vz
c2liaWxpdHlXZWJQYWdlT2JqZWN0QmFzZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9XZWJQYWdlL21hYy9XS0FjY2Vzc2liaWxpdHlXZWJQYWdlT2JqZWN0QmFzZS5oCkBAIC0yNywx
OSArMjcsMjAgQEAKICNkZWZpbmUgV0tBY2Nlc3NpYmlsaXR5V2ViUGFnZU9iamVjdEJhc2VfaAog
CiAjaW5jbHVkZSA8V2ViQ29yZS9QYWdlSWRlbnRpZmllci5oPgorI2luY2x1ZGUgPHd0Zi9OYWtl
ZFB0ci5oPgogCiBuYW1lc3BhY2UgV2ViS2l0IHsKIGNsYXNzIFdlYlBhZ2U7CiB9CiAKIEBpbnRl
cmZhY2UgV0tBY2Nlc3NpYmlsaXR5V2ViUGFnZU9iamVjdEJhc2UgOiBOU09iamVjdCB7Ci0gICAg
V2ViS2l0OjpXZWJQYWdlKiBtX3BhZ2U7CisgICAgTmFrZWRQdHI8V2ViS2l0OjpXZWJQYWdlPiBt
X3BhZ2U7CiAgICAgV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIgbV9wYWdlSUQ7CiAgICAgaWQgbV9w
YXJlbnQ7CiAgICAgYm9vbCBtX2hhc01haW5GcmFtZVBsdWdpbjsKIH0KIAotLSAodm9pZClzZXRX
ZWJQYWdlOihXZWJLaXQ6OldlYlBhZ2UqKXBhZ2U7CistICh2b2lkKXNldFdlYlBhZ2U6KE5ha2Vk
UHRyPFdlYktpdDo6V2ViUGFnZT4pcGFnZTsKIC0gKHZvaWQpc2V0UmVtb3RlUGFyZW50OihpZClw
YXJlbnQ7CiAtICh2b2lkKXNldEhhc01haW5GcmFtZVBsdWdpbjooYm9vbCloYXNQbHVnaW47CiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9XS0FjY2Vz
c2liaWxpdHlXZWJQYWdlT2JqZWN0QmFzZS5tbSBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9X
ZWJQYWdlL21hYy9XS0FjY2Vzc2liaWxpdHlXZWJQYWdlT2JqZWN0QmFzZS5tbQppbmRleCBkODY4
MmE5OGIxZWIyMjliOGM1OTM1YTY4OWU1YTcxMzY3Nzg1MDE4Li4wOGZlN2ZkMTRhZjIxNDIzNjIz
Njc4OTk0Mjk2NmVkOWM0ZWFjYTg2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvV2ViUGFnZS9tYWMvV0tBY2Nlc3NpYmlsaXR5V2ViUGFnZU9iamVjdEJhc2UubW0KKysrIGIv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1dLQWNjZXNzaWJpbGl0eVdlYlBh
Z2VPYmplY3RCYXNlLm1tCkBAIC00NSw3ICs0NSw3IEBACiAKIEBpbXBsZW1lbnRhdGlvbiBXS0Fj
Y2Vzc2liaWxpdHlXZWJQYWdlT2JqZWN0QmFzZQogCi0tIChXZWJDb3JlOjpBWE9iamVjdENhY2hl
KilheE9iamVjdENhY2hlCistIChOYWtlZFB0cjxXZWJDb3JlOjpBWE9iamVjdENhY2hlPilheE9i
amVjdENhY2hlCiB7CiAgICAgaWYgKCFtX3BhZ2UpCiAgICAgICAgIHJldHVybiBudWxscHRyOwpA
QCAtOTksNyArOTksNyBAQCAtIChpZClhY2Nlc3NpYmlsaXR5Um9vdE9iamVjdFdyYXBwZXIKICAg
ICByZXR1cm4gbmlsOwogfQogCi0tICh2b2lkKXNldFdlYlBhZ2U6KFdlYktpdDo6V2ViUGFnZSop
cGFnZQorLSAodm9pZClzZXRXZWJQYWdlOihOYWtlZFB0cjxXZWJLaXQ6OldlYlBhZ2U+KXBhZ2UK
IHsKICAgICBtX3BhZ2UgPSBwYWdlOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5
L21hYy9QbHVnaW5zL1dlYkJhc2VOZXRzY2FwZVBsdWdpblZpZXcuaCBiL1NvdXJjZS9XZWJLaXRM
ZWdhY3kvbWFjL1BsdWdpbnMvV2ViQmFzZU5ldHNjYXBlUGx1Z2luVmlldy5oCmluZGV4IGMyMzdj
Y2Y5MWNiNGJhNjkxMDk1ZTQzNGI1N2QxMzM5NzBmNTgzZTMuLmM1YTk2MWUzNzdlZThmZTJkMDM1
ODgyYWM0NTAxOWM2NTlhZGY2ZWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFj
L1BsdWdpbnMvV2ViQmFzZU5ldHNjYXBlUGx1Z2luVmlldy5oCisrKyBiL1NvdXJjZS9XZWJLaXRM
ZWdhY3kvbWFjL1BsdWdpbnMvV2ViQmFzZU5ldHNjYXBlUGx1Z2luVmlldy5oCkBAIC0zMSw2ICsz
MSw3IEBACiAKICNpbXBvcnQgIldlYk5ldHNjYXBlUGx1Z2luUGFja2FnZS5oIgogI2ltcG9ydCA8
d3RmL0ZvcndhcmQuaD4KKyNpbXBvcnQgPHd0Zi9OYWtlZFB0ci5oPgogI2ltcG9ydCA8d3RmL1Jl
ZlB0ci5oPgogI2ltcG9ydCA8d3RmL1JldGFpblB0ci5oPgogCkBAIC05Nyw3ICs5OCw3IEBAIG5h
bWVzcGFjZSBXZWJDb3JlIHsKIC0gKFdlYkRhdGFTb3VyY2UgKilkYXRhU291cmNlOwogLSAoV2Vi
VmlldyAqKXdlYlZpZXc7CiAtIChOU1dpbmRvdyAqKWN1cnJlbnRXaW5kb3c7Ci0tIChXZWJDb3Jl
OjpIVE1MUGx1Z0luRWxlbWVudCopZWxlbWVudDsKKy0gKE5ha2VkUHRyPFdlYkNvcmU6OkhUTUxQ
bHVnSW5FbGVtZW50PillbGVtZW50OwogCiAtICh2b2lkKXJlbW92ZVRyYWNraW5nUmVjdDsKIC0g
KHZvaWQpcmVzZXRUcmFja2luZ1JlY3Q7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5
L21hYy9QbHVnaW5zL1dlYkJhc2VOZXRzY2FwZVBsdWdpblZpZXcubW0gYi9Tb3VyY2UvV2ViS2l0
TGVnYWN5L21hYy9QbHVnaW5zL1dlYkJhc2VOZXRzY2FwZVBsdWdpblZpZXcubW0KaW5kZXggNGY4
OTllZGUyYzUyMjc2NTI0MWFhOWFjYWFiNjllZWJkYTZhZjY5ZC4uOTFhODdmNzBkNWYxOTg3NDIy
MjYyZjBjNTU2NTY0ZjQwZTAwNmQxYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9t
YWMvUGx1Z2lucy9XZWJCYXNlTmV0c2NhcGVQbHVnaW5WaWV3Lm1tCisrKyBiL1NvdXJjZS9XZWJL
aXRMZWdhY3kvbWFjL1BsdWdpbnMvV2ViQmFzZU5ldHNjYXBlUGx1Z2luVmlldy5tbQpAQCAtNjY0
LDcgKzY2NCw3IEBAIC0gKE5TV2luZG93ICopY3VycmVudFdpbmRvdwogICAgIHJldHVybiBbc2Vs
ZiB3aW5kb3ddID8gW3NlbGYgd2luZG93XSA6IFtbc2VsZiB3ZWJWaWV3XSBob3N0V2luZG93XTsK
IH0KIAotLSAoV2ViQ29yZTo6SFRNTFBsdWdJbkVsZW1lbnQqKWVsZW1lbnQKKy0gKE5ha2VkUHRy
PFdlYkNvcmU6OkhUTUxQbHVnSW5FbGVtZW50PillbGVtZW50CiB7CiAgICAgcmV0dXJuIF9lbGVt
ZW50LmdldCgpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViQ29y
ZVN1cHBvcnQvV2ViRWRpdG9yQ2xpZW50Lm1tIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2Vi
Q29yZVN1cHBvcnQvV2ViRWRpdG9yQ2xpZW50Lm1tCmluZGV4IDMzYjY4OWQ3YjI3ZWZlNzZjOGZi
ODgwNTExYTI3ZTEzMGY4NTdiMzQuLjIwMTM4NGYwMDJlMzY1N2M1MjdlNTczOTVhMzA2NWZlOGEz
NjAyODMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYkNvcmVTdXBwb3J0
L1dlYkVkaXRvckNsaWVudC5tbQorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJDb3Jl
U3VwcG9ydC9XZWJFZGl0b3JDbGllbnQubW0KQEAgLTQ3Miw3ICs0NzIsNyBAQCB2b2lkIF9XZWJD
cmVhdGVGcmFnbWVudChEb2N1bWVudCYgZG9jdW1lbnQsIE5TQXR0cmlidXRlZFN0cmluZyAqc3Ry
aW5nLCBGcmFnbWVudAogICAgICAgICBkb2N1bWVudDpraXQoJmRvY3VtZW50KSBkb2N1bWVudEF0
dHJpYnV0ZXM6ZG9jdW1lbnRBdHRyaWJ1dGVzIHN1YnJlc291cmNlczomc3VicmVzb3VyY2VzXTsK
ICAgICByZXN1bHQuZnJhZ21lbnQgPSBjb3JlKGZyYWdtZW50KTsKICAgICBmb3IgKFdlYlJlc291
cmNlKiByZXNvdXJjZSBpbiBzdWJyZXNvdXJjZXMpCi0gICAgICAgIHJlc3VsdC5yZXNvdXJjZXMu
YXBwZW5kKFtyZXNvdXJjZSBfY29yZVJlc291cmNlXSk7CisgICAgICAgIHJlc3VsdC5yZXNvdXJj
ZXMuYXBwZW5kKFtyZXNvdXJjZSBfY29yZVJlc291cmNlXS5nZXQoKSk7CiB9CiAKICNlbmRpZgpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViRnJh
bWVMb2FkZXJDbGllbnQubW0gYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJDb3JlU3VwcG9y
dC9XZWJGcmFtZUxvYWRlckNsaWVudC5tbQppbmRleCAyOTYyZmUwYzUxNzIzMWZlZDI3OTA3ZDVk
Y2YyZDkzYTEwM2EzMzQzLi5lZWRhM2E3MTI1NzA3MjgwZWU1MjYzZWUyMmM4NGZkMmQxYjIyODZk
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJG
cmFtZUxvYWRlckNsaWVudC5tbQorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJDb3Jl
U3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5tbQpAQCAtMTI4LDYgKzEyOCw3IEBACiAjaW1w
b3J0IDxwYWwvc3BpL2NvY29hL05TVVJMRmlsZVR5cGVNYXBwaW5nc1NQSS5oPgogI2ltcG9ydCA8
d3RmL0Jsb2NrT2JqQ0V4Y2VwdGlvbnMuaD4KICNpbXBvcnQgPHd0Zi9NYWluVGhyZWFkLmg+Cisj
aW1wb3J0IDx3dGYvTmFrZWRQdHIuaD4KICNpbXBvcnQgPHd0Zi9SZWYuaD4KICNpbXBvcnQgPHd0
Zi9SdW5Mb29wLmg+CiAjaW1wb3J0IDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KQEAgLTE4Nyw5ICsx
ODgsOSBAQCBAaW50ZXJmYWNlIFdlYkZyYW1lUG9saWN5TGlzdGVuZXIgOiBOU09iamVjdCA8V2Vi
UG9saWN5RGVjaXNpb25MaXN0ZW5lciwgV2ViRm9ybQogICAgIFdlYkNvcmU6OlBvbGljeUFjdGlv
biBfZGVmYXVsdFBvbGljeTsKIH0KIAotLSAoaWQpaW5pdFdpdGhGcmFtZTooV2ViQ29yZTo6RnJh
bWUqKWZyYW1lIGlkZW50aWZpZXI6KFdlYkNvcmU6OlBvbGljeUNoZWNrSWRlbnRpZmllcilpZGVu
dGlmaWVyIHBvbGljeUZ1bmN0aW9uOihXZWJDb3JlOjpGcmFtZVBvbGljeUZ1bmN0aW9uJiYpcG9s
aWN5RnVuY3Rpb24gZGVmYXVsdFBvbGljeTooV2ViQ29yZTo6UG9saWN5QWN0aW9uKWRlZmF1bHRQ
b2xpY3k7CistIChpZClpbml0V2l0aEZyYW1lOihOYWtlZFB0cjxXZWJDb3JlOjpGcmFtZT4pZnJh
bWUgaWRlbnRpZmllcjooV2ViQ29yZTo6UG9saWN5Q2hlY2tJZGVudGlmaWVyKWlkZW50aWZpZXIg
cG9saWN5RnVuY3Rpb246KFdlYkNvcmU6OkZyYW1lUG9saWN5RnVuY3Rpb24mJilwb2xpY3lGdW5j
dGlvbiBkZWZhdWx0UG9saWN5OihXZWJDb3JlOjpQb2xpY3lBY3Rpb24pZGVmYXVsdFBvbGljeTsK
ICNpZiBIQVZFKEFQUF9MSU5LUykKLS0gKGlkKWluaXRXaXRoRnJhbWU6KFdlYkNvcmU6OkZyYW1l
KilmcmFtZSBpZGVudGlmaWVyOihXZWJDb3JlOjpQb2xpY3lDaGVja0lkZW50aWZpZXIpaWRlbnRp
ZmllciBwb2xpY3lGdW5jdGlvbjooV2ViQ29yZTo6RnJhbWVQb2xpY3lGdW5jdGlvbiYmKXBvbGlj
eUZ1bmN0aW9uIGRlZmF1bHRQb2xpY3k6KFdlYkNvcmU6OlBvbGljeUFjdGlvbilkZWZhdWx0UG9s
aWN5IGFwcExpbmtVUkw6KE5TVVJMICopdXJsOworLSAoaWQpaW5pdFdpdGhGcmFtZTooTmFrZWRQ
dHI8V2ViQ29yZTo6RnJhbWU+KWZyYW1lIGlkZW50aWZpZXI6KFdlYkNvcmU6OlBvbGljeUNoZWNr
SWRlbnRpZmllcilpZGVudGlmaWVyIHBvbGljeUZ1bmN0aW9uOihXZWJDb3JlOjpGcmFtZVBvbGlj
eUZ1bmN0aW9uJiYpcG9saWN5RnVuY3Rpb24gZGVmYXVsdFBvbGljeTooV2ViQ29yZTo6UG9saWN5
QWN0aW9uKWRlZmF1bHRQb2xpY3kgYXBwTGlua1VSTDooTlNVUkwgKil1cmw7CiAjZW5kaWYKIAog
LSAodm9pZClpbnZhbGlkYXRlOwpAQCAtMTQ4NSw3ICsxNDg2LDcgQEAgdm9pZCBXZWJGcmFtZUxv
YWRlckNsaWVudDo6dHJhbnNpdGlvblRvQ29tbWl0dGVkRm9yTmV3UGFnZSgpCiAgICAgLy8gVGhl
IGZvbGxvd2luZyBpcyBhIG5vLW9wIGZvciBXZWJIVE1MUmVwcmVzZW50YXRpb24sIGJ1dCBmb3Ig
Y3VzdG9tIGRvY3VtZW50IHR5cGVzCiAgICAgLy8gbGlrZSB0aGUgb25lcyB0aGF0IFNhZmFyaSB1
c2VzIGZvciBib29rbWFya3MgaXQgaXMgdGhlIG9ubHkgd2F5IHRoZSBEb2N1bWVudExvYWRlcgog
ICAgIC8vIHdpbGwgZ2V0IHRoZSBwcm9wZXIgdGl0bGUuCi0gICAgaWYgKGF1dG8qIGRvY3VtZW50
TG9hZGVyID0gW2RhdGFTb3VyY2UgX2RvY3VtZW50TG9hZGVyXSkKKyAgICBpZiAoYXV0byBkb2N1
bWVudExvYWRlciA9IFtkYXRhU291cmNlIF9kb2N1bWVudExvYWRlcl0pCiAgICAgICAgIGRvY3Vt
ZW50TG9hZGVyLT5zZXRUaXRsZSh7IFtkYXRhU291cmNlIHBhZ2VUaXRsZV0sIFdlYkNvcmU6OlRl
eHREaXJlY3Rpb246OkxUUiB9KTsKIAogICAgIGlmIChhdXRvKiBvd25lckVsZW1lbnQgPSBjb3Jl
RnJhbWUtPm93bmVyRWxlbWVudCgpKQpAQCAtMjM1OSw3ICsyMzYwLDcgQEAgKyAodm9pZClpbml0
aWFsaXplCiAjZW5kaWYKIH0KIAotLSAoaWQpaW5pdFdpdGhGcmFtZTooV2ViQ29yZTo6RnJhbWUq
KWZyYW1lIGlkZW50aWZpZXI6KFdlYkNvcmU6OlBvbGljeUNoZWNrSWRlbnRpZmllcilpZGVudGlm
aWVyIHBvbGljeUZ1bmN0aW9uOihXZWJDb3JlOjpGcmFtZVBvbGljeUZ1bmN0aW9uJiYpcG9saWN5
RnVuY3Rpb24gZGVmYXVsdFBvbGljeTooV2ViQ29yZTo6UG9saWN5QWN0aW9uKWRlZmF1bHRQb2xp
Y3kKKy0gKGlkKWluaXRXaXRoRnJhbWU6KE5ha2VkUHRyPFdlYkNvcmU6OkZyYW1lPilmcmFtZSBp
ZGVudGlmaWVyOihXZWJDb3JlOjpQb2xpY3lDaGVja0lkZW50aWZpZXIpaWRlbnRpZmllciBwb2xp
Y3lGdW5jdGlvbjooV2ViQ29yZTo6RnJhbWVQb2xpY3lGdW5jdGlvbiYmKXBvbGljeUZ1bmN0aW9u
IGRlZmF1bHRQb2xpY3k6KFdlYkNvcmU6OlBvbGljeUFjdGlvbilkZWZhdWx0UG9saWN5CiB7CiAg
ICAgc2VsZiA9IFtzZWxmIGluaXRdOwogICAgIGlmICghc2VsZikKQEAgLTIzNzQsNyArMjM3NSw3
IEBAIC0gKGlkKWluaXRXaXRoRnJhbWU6KFdlYkNvcmU6OkZyYW1lKilmcmFtZSBpZGVudGlmaWVy
OihXZWJDb3JlOjpQb2xpY3lDaGVja0lkZW50CiB9CiAKICNpZiBIQVZFKEFQUF9MSU5LUykKLS0g
KGlkKWluaXRXaXRoRnJhbWU6KFdlYkNvcmU6OkZyYW1lKilmcmFtZSBpZGVudGlmaWVyOihXZWJD
b3JlOjpQb2xpY3lDaGVja0lkZW50aWZpZXIpaWRlbnRpZmllciBwb2xpY3lGdW5jdGlvbjooV2Vi
Q29yZTo6RnJhbWVQb2xpY3lGdW5jdGlvbiYmKXBvbGljeUZ1bmN0aW9uIGRlZmF1bHRQb2xpY3k6
KFdlYkNvcmU6OlBvbGljeUFjdGlvbilkZWZhdWx0UG9saWN5IGFwcExpbmtVUkw6KE5TVVJMICop
YXBwTGlua1VSTAorLSAoaWQpaW5pdFdpdGhGcmFtZTooTmFrZWRQdHI8V2ViQ29yZTo6RnJhbWU+
KWZyYW1lIGlkZW50aWZpZXI6KFdlYkNvcmU6OlBvbGljeUNoZWNrSWRlbnRpZmllcilpZGVudGlm
aWVyIHBvbGljeUZ1bmN0aW9uOihXZWJDb3JlOjpGcmFtZVBvbGljeUZ1bmN0aW9uJiYpcG9saWN5
RnVuY3Rpb24gZGVmYXVsdFBvbGljeTooV2ViQ29yZTo6UG9saWN5QWN0aW9uKWRlZmF1bHRQb2xp
Y3kgYXBwTGlua1VSTDooTlNVUkwgKilhcHBMaW5rVVJMCiB7CiAgICAgc2VsZiA9IFtzZWxmIGlu
aXRXaXRoRnJhbWU6ZnJhbWUgaWRlbnRpZmllcjppZGVudGlmaWVyIHBvbGljeUZ1bmN0aW9uOldU
Rk1vdmUocG9saWN5RnVuY3Rpb24pIGRlZmF1bHRQb2xpY3k6ZGVmYXVsdFBvbGljeV07CiAgICAg
aWYgKCFzZWxmKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViQ29yZVN1
cHBvcnQvV2ViR2VvbG9jYXRpb25DbGllbnQubW0gYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9X
ZWJDb3JlU3VwcG9ydC9XZWJHZW9sb2NhdGlvbkNsaWVudC5tbQppbmRleCA4N2RhNzMwZmVhYWZk
ZWRkNzc0ZWQ3ZWE5NmI2ZjhkMDkzZWE5YTNkLi5kNWZjNjRiODEwN2Q4MjJkYjNkOThjZjFhYzcz
ZjIxZmRjMGQxNmEyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJDb3Jl
U3VwcG9ydC9XZWJHZW9sb2NhdGlvbkNsaWVudC5tbQorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5
L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJHZW9sb2NhdGlvbkNsaWVudC5tbQpAQCAtMzcsNiArMzcs
OCBAQAogI2ltcG9ydCA8V2ViQ29yZS9GcmFtZS5oPgogI2ltcG9ydCA8V2ViQ29yZS9HZW9sb2Nh
dGlvbi5oPgogI2ltcG9ydCA8d3RmL0Jsb2NrT2JqQ0V4Y2VwdGlvbnMuaD4KKyNpbXBvcnQgPHd0
Zi9OYWtlZFB0ci5oPgorI2ltcG9ydCA8d3RmL05ha2VkUmVmLmg+CiAKICNpZiBQTEFURk9STShJ
T1NfRkFNSUxZKQogI2ltcG9ydCA8V2ViQ29yZS9XQUtSZXNwb25kZXIuaD4KQEAgLTUwLDcgKzUy
LDcgQEAgQGludGVyZmFjZSBXZWJHZW9sb2NhdGlvblBvbGljeUxpc3RlbmVyIDogTlNPYmplY3Qg
PFdlYkFsbG93RGVueVBvbGljeUxpc3RlbmVyPgogewogICAgIFJlZlB0cjxHZW9sb2NhdGlvbj4g
X2dlb2xvY2F0aW9uOwogfQotLSAoaWQpaW5pdFdpdGhHZW9sb2NhdGlvbjooR2VvbG9jYXRpb24m
KWdlb2xvY2F0aW9uOworLSAoaWQpaW5pdFdpdGhHZW9sb2NhdGlvbjooTmFrZWRSZWY8R2VvbG9j
YXRpb24+KWdlb2xvY2F0aW9uOwogQGVuZAogI2Vsc2UKIEBpbnRlcmZhY2UgV2ViR2VvbG9jYXRp
b25Qb2xpY3lMaXN0ZW5lciA6IE5TT2JqZWN0IDxXZWJBbGxvd0RlbnlQb2xpY3lMaXN0ZW5lcj4K
QEAgLTU4LDcgKzYwLDcgQEAgQGludGVyZmFjZSBXZWJHZW9sb2NhdGlvblBvbGljeUxpc3RlbmVy
IDogTlNPYmplY3QgPFdlYkFsbG93RGVueVBvbGljeUxpc3RlbmVyPgogICAgIFJlZlB0cjxHZW9s
b2NhdGlvbj4gX2dlb2xvY2F0aW9uOwogICAgIFJldGFpblB0cjxXZWJWaWV3PiBfd2ViVmlldzsK
IH0KLS0gKGlkKWluaXRXaXRoR2VvbG9jYXRpb246KEdlb2xvY2F0aW9uKilnZW9sb2NhdGlvbiBm
b3JXZWJWaWV3OihXZWJWaWV3Kil3ZWJWaWV3OworLSAoaWQpaW5pdFdpdGhHZW9sb2NhdGlvbjoo
TmFrZWRQdHI8R2VvbG9jYXRpb24+KWdlb2xvY2F0aW9uIGZvcldlYlZpZXc6KFdlYlZpZXcqKXdl
YlZpZXc7CiBAZW5kCiAjZW5kaWYKIApAQCAtNjcsNyArNjksNyBAQCBAaW50ZXJmYWNlIFdlYkdl
b2xvY2F0aW9uUHJvdmlkZXJJbml0aWFsaXphdGlvbkxpc3RlbmVyIDogTlNPYmplY3QgPFdlYkdl
b2xvY2F0aQogQHByaXZhdGUKICAgICBSZWZQdHI8R2VvbG9jYXRpb24+IG1fZ2VvbG9jYXRpb247
CiB9Ci0tIChpZClpbml0V2l0aEdlb2xvY2F0aW9uOihHZW9sb2NhdGlvbiYpZ2VvbG9jYXRpb247
CistIChpZClpbml0V2l0aEdlb2xvY2F0aW9uOihOYWtlZFJlZjxHZW9sb2NhdGlvbj4pZ2VvbG9j
YXRpb247CiBAZW5kCiAjZW5kaWYKIApAQCAtMTQwLDExICsxNDIsMTEgQEAgT3B0aW9uYWw8R2Vv
bG9jYXRpb25Qb3NpdGlvbkRhdGE+IFdlYkdlb2xvY2F0aW9uQ2xpZW50OjpsYXN0UG9zaXRpb24o
KQogI2lmICFQTEFURk9STShJT1NfRkFNSUxZKQogQGltcGxlbWVudGF0aW9uIFdlYkdlb2xvY2F0
aW9uUG9saWN5TGlzdGVuZXIKIAotLSAoaWQpaW5pdFdpdGhHZW9sb2NhdGlvbjooR2VvbG9jYXRp
b24mKWdlb2xvY2F0aW9uCistIChpZClpbml0V2l0aEdlb2xvY2F0aW9uOihOYWtlZFJlZjxHZW9s
b2NhdGlvbj4pZ2VvbG9jYXRpb24KIHsKICAgICBpZiAoIShzZWxmID0gW3N1cGVyIGluaXRdKSkK
ICAgICAgICAgcmV0dXJuIG5pbDsKLSAgICBfZ2VvbG9jYXRpb24gPSAmZ2VvbG9jYXRpb247Cisg
ICAgX2dlb2xvY2F0aW9uID0gZ2VvbG9jYXRpb24ucHRyKCk7CiAgICAgcmV0dXJuIHNlbGY7CiB9
CiAKQEAgLTE2MiwxMiArMTY0LDEyIEBAIEBlbmQKIAogI2Vsc2UKIEBpbXBsZW1lbnRhdGlvbiBX
ZWJHZW9sb2NhdGlvblBvbGljeUxpc3RlbmVyCi0tIChpZClpbml0V2l0aEdlb2xvY2F0aW9uOihH
ZW9sb2NhdGlvbiopZ2VvbG9jYXRpb24gZm9yV2ViVmlldzooV2ViVmlldyopd2ViVmlldworLSAo
aWQpaW5pdFdpdGhHZW9sb2NhdGlvbjooTmFrZWRQdHI8R2VvbG9jYXRpb24+KWdlb2xvY2F0aW9u
IGZvcldlYlZpZXc6KFdlYlZpZXcqKXdlYlZpZXcKIHsKICAgICBzZWxmID0gW3N1cGVyIGluaXRd
OwogICAgIGlmICghc2VsZikKICAgICAgICAgcmV0dXJuIG5pbDsKLSAgICBfZ2VvbG9jYXRpb24g
PSBnZW9sb2NhdGlvbjsKKyAgICBfZ2VvbG9jYXRpb24gPSBnZW9sb2NhdGlvbi5nZXQoKTsKICAg
ICBfd2ViVmlldyA9IHdlYlZpZXc7CiAgICAgcmV0dXJuIHNlbGY7CiB9CkBAIC0yMDYsMTEgKzIw
OCwxMSBAQCAtIChCT09MKXNob3VsZENsZWFyQ2FjaGUKIEBlbmQKIAogQGltcGxlbWVudGF0aW9u
IFdlYkdlb2xvY2F0aW9uUHJvdmlkZXJJbml0aWFsaXphdGlvbkxpc3RlbmVyCi0tIChpZClpbml0
V2l0aEdlb2xvY2F0aW9uOihHZW9sb2NhdGlvbiYpZ2VvbG9jYXRpb24KKy0gKGlkKWluaXRXaXRo
R2VvbG9jYXRpb246KE5ha2VkUmVmPEdlb2xvY2F0aW9uPilnZW9sb2NhdGlvbgogewogICAgIHNl
bGYgPSBbc3VwZXIgaW5pdF07CiAgICAgaWYgKHNlbGYpCi0gICAgICAgIG1fZ2VvbG9jYXRpb24g
PSAmZ2VvbG9jYXRpb247CisgICAgICAgIG1fZ2VvbG9jYXRpb24gPSBnZW9sb2NhdGlvbi5wdHIo
KTsKICAgICByZXR1cm4gc2VsZjsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2Fj
eS9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViSW5zcGVjdG9yQ2xpZW50Lm1tIGIvU291cmNlL1dlYktp
dExlZ2FjeS9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViSW5zcGVjdG9yQ2xpZW50Lm1tCmluZGV4IGM0
NzZjNzU1YjJlNmFhNDk2ZTU4Yjg0MmYyMjJlOGY2NWYzZmVjODMuLjNhMGE3MjNjYWU4ZGQyNDYy
OGMwZjU5ZTc1MzM2NTJiMmI1NGJhODkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kv
bWFjL1dlYkNvcmVTdXBwb3J0L1dlYkluc3BlY3RvckNsaWVudC5tbQorKysgYi9Tb3VyY2UvV2Vi
S2l0TGVnYWN5L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJJbnNwZWN0b3JDbGllbnQubW0KQEAgLTU0
LDYgKzU0LDcgQEAKICNpbXBvcnQgPFdlYkNvcmUvU2V0dGluZ3MuaD4KICNpbXBvcnQgPFdlYktp
dExlZ2FjeS9ET01FeHRlbnNpb25zLmg+CiAjaW1wb3J0IDxhbGdvcml0aG0+CisjaW1wb3J0IDx3
dGYvTmFrZWRQdHIuaD4KICNpbXBvcnQgPHd0Zi90ZXh0L0Jhc2U2NC5oPgogCiB1c2luZyBuYW1l
c3BhY2UgV2ViQ29yZTsKQEAgLTY4LDcgKzY5LDcgQEAgQGludGVyZmFjZSBXZWJJbnNwZWN0b3JX
aW5kb3dDb250cm9sbGVyIDogTlNXaW5kb3dDb250cm9sbGVyIDxOU1dpbmRvd0RlbGVnYXRlLAog
QHByaXZhdGUKICAgICBSZXRhaW5QdHI8V2ViVmlldz4gX2luc3BlY3RlZFdlYlZpZXc7CiAgICAg
V2ViVmlldyogX2Zyb250ZW5kV2ViVmlldzsKLSAgICBXZWJJbnNwZWN0b3JGcm9udGVuZENsaWVu
dCogX2Zyb250ZW5kQ2xpZW50OworICAgIE5ha2VkUHRyPFdlYkluc3BlY3RvckZyb250ZW5kQ2xp
ZW50PiBfZnJvbnRlbmRDbGllbnQ7CiAgICAgV2ViSW5zcGVjdG9yQ2xpZW50KiBfaW5zcGVjdG9y
Q2xpZW50OwogICAgIEJPT0wgX2F0dGFjaGVkVG9JbnNwZWN0ZWRXZWJWaWV3OwogICAgIEJPT0wg
X3Nob3VsZEF0dGFjaDsKQEAgLTgyLDkgKzgzLDkgQEAgLSAoV2ViVmlldyAqKWZyb250ZW5kV2Vi
VmlldzsKIC0gKHZvaWQpYXR0YWNoOwogLSAodm9pZClkZXRhY2g7CiAtIChCT09MKWF0dGFjaGVk
OwotLSAodm9pZClzZXRGcm9udGVuZENsaWVudDooV2ViSW5zcGVjdG9yRnJvbnRlbmRDbGllbnQq
KWZyb250ZW5kQ2xpZW50OwotLSAodm9pZClzZXRJbnNwZWN0b3JDbGllbnQ6KFdlYkluc3BlY3Rv
ckNsaWVudCopaW5zcGVjdG9yQ2xpZW50OwotLSAoV2ViSW5zcGVjdG9yQ2xpZW50KilpbnNwZWN0
b3JDbGllbnQ7CistICh2b2lkKXNldEZyb250ZW5kQ2xpZW50OihOYWtlZFB0cjxXZWJJbnNwZWN0
b3JGcm9udGVuZENsaWVudD4pZnJvbnRlbmRDbGllbnQ7CistICh2b2lkKXNldEluc3BlY3RvckNs
aWVudDooTmFrZWRQdHI8V2ViSW5zcGVjdG9yQ2xpZW50PilpbnNwZWN0b3JDbGllbnQ7CistIChO
YWtlZFB0cjxXZWJJbnNwZWN0b3JDbGllbnQ+KWluc3BlY3RvckNsaWVudDsKIC0gKHZvaWQpc2V0
QXR0YWNoZWRXaW5kb3dIZWlnaHQ6KHVuc2lnbmVkKWhlaWdodDsKIC0gKHZvaWQpc2V0RG9ja2lu
Z1VuYXZhaWxhYmxlOihCT09MKXVuYXZhaWxhYmxlOwogLSAodm9pZClkZXN0cm95SW5zcGVjdG9y
VmlldzsKQEAgLTI2MSw3ICsyNjIsNyBAQCB2b2lkIFdlYkluc3BlY3RvckZyb250ZW5kQ2xpZW50
OjpyZXNldFN0YXRlKCkKIHsKICAgICBJbnNwZWN0b3JGcm9udGVuZENsaWVudExvY2FsOjpyZXNl
dFN0YXRlKCk7CiAKLSAgICBhdXRvKiBpbnNwZWN0b3JDbGllbnQgPSBbbV9mcm9udGVuZFdpbmRv
d0NvbnRyb2xsZXIgaW5zcGVjdG9yQ2xpZW50XTsKKyAgICBhdXRvIGluc3BlY3RvckNsaWVudCA9
IFttX2Zyb250ZW5kV2luZG93Q29udHJvbGxlciBpbnNwZWN0b3JDbGllbnRdOwogICAgIGluc3Bl
Y3RvckNsaWVudC0+ZGVsZXRlSW5zcGVjdG9yU3RhcnRzQXR0YWNoZWQoKTsKICAgICBpbnNwZWN0
b3JDbGllbnQtPmRlbGV0ZUluc3BlY3RvckF0dGFjaERpc2FibGVkKCk7CiAKQEAgLTY3MiwxNyAr
NjczLDE3IEBAIC0gKEJPT0wpYXR0YWNoZWQKICAgICByZXR1cm4gX2F0dGFjaGVkVG9JbnNwZWN0
ZWRXZWJWaWV3OwogfQogCi0tICh2b2lkKXNldEZyb250ZW5kQ2xpZW50OihXZWJJbnNwZWN0b3JG
cm9udGVuZENsaWVudCopZnJvbnRlbmRDbGllbnQKKy0gKHZvaWQpc2V0RnJvbnRlbmRDbGllbnQ6
KE5ha2VkUHRyPFdlYkluc3BlY3RvckZyb250ZW5kQ2xpZW50Pilmcm9udGVuZENsaWVudAogewog
ICAgIF9mcm9udGVuZENsaWVudCA9IGZyb250ZW5kQ2xpZW50OwogfQogCi0tICh2b2lkKXNldElu
c3BlY3RvckNsaWVudDooV2ViSW5zcGVjdG9yQ2xpZW50KilpbnNwZWN0b3JDbGllbnQKKy0gKHZv
aWQpc2V0SW5zcGVjdG9yQ2xpZW50OihOYWtlZFB0cjxXZWJJbnNwZWN0b3JDbGllbnQ+KWluc3Bl
Y3RvckNsaWVudAogewogICAgIF9pbnNwZWN0b3JDbGllbnQgPSBpbnNwZWN0b3JDbGllbnQ7CiB9
CiAKLS0gKFdlYkluc3BlY3RvckNsaWVudCopaW5zcGVjdG9yQ2xpZW50CistIChOYWtlZFB0cjxX
ZWJJbnNwZWN0b3JDbGllbnQ+KWluc3BlY3RvckNsaWVudAogewogICAgIHJldHVybiBfaW5zcGVj
dG9yQ2xpZW50OwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViSW5z
cGVjdG9yL1dlYkluc3BlY3RvckZyb250ZW5kLmggYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9X
ZWJJbnNwZWN0b3IvV2ViSW5zcGVjdG9yRnJvbnRlbmQuaAppbmRleCA3ZTlkNjhhMzJhYmIxNWYw
OTZkN2M3NDNmYWJlMThlNzBiYjRiZDdjLi44ZGE1NzY1NzU0NjMwNWQwM2Y4OTRmZDhjYWI0NDhm
NWY1M2M3MTEwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJJbnNwZWN0
b3IvV2ViSW5zcGVjdG9yRnJvbnRlbmQuaAorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9X
ZWJJbnNwZWN0b3IvV2ViSW5zcGVjdG9yRnJvbnRlbmQuaApAQCAtMjMsMTMgKzIzLDE1IEBACiAg
KiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLiAKICAqLwogCisjaW1wb3J0IDx3dGYvTmFrZWRQdHIuaD4KKwogY2xhc3Mg
V2ViSW5zcGVjdG9yRnJvbnRlbmRDbGllbnQ7CiAKIEBpbnRlcmZhY2UgV2ViSW5zcGVjdG9yRnJv
bnRlbmQgOiBOU09iamVjdCB7CiBAcHJpdmF0ZQotICAgIFdlYkluc3BlY3RvckZyb250ZW5kQ2xp
ZW50ICptX2Zyb250ZW5kQ2xpZW50OworICAgIE5ha2VkUHRyPFdlYkluc3BlY3RvckZyb250ZW5k
Q2xpZW50PiBtX2Zyb250ZW5kQ2xpZW50OwogfQotLSAoaWQpaW5pdFdpdGhGcm9udGVuZENsaWVu
dDooV2ViSW5zcGVjdG9yRnJvbnRlbmRDbGllbnQgKilmcm9udGVuZENsaWVudDsKKy0gKGlkKWlu
aXRXaXRoRnJvbnRlbmRDbGllbnQ6KE5ha2VkUHRyPFdlYkluc3BlY3RvckZyb250ZW5kQ2xpZW50
Pilmcm9udGVuZENsaWVudDsKIC0gKHZvaWQpYXR0YWNoOwogLSAodm9pZClkZXRhY2g7CiAtICh2
b2lkKWNsb3NlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViSW5zcGVj
dG9yL1dlYkluc3BlY3RvckZyb250ZW5kLm1tIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2Vi
SW5zcGVjdG9yL1dlYkluc3BlY3RvckZyb250ZW5kLm1tCmluZGV4IDUxY2U0OGU4ZDZmODZkNTAy
OTYzYTYwZmY4MTUzMzMyNWNiOTY3ODAuLmU3OTgxOTgzNDFhYmExMDBhYzQxYWNjNDM4ZGE1Mjc3
YjQ1MWQyZWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYkluc3BlY3Rv
ci9XZWJJbnNwZWN0b3JGcm9udGVuZC5tbQorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9X
ZWJJbnNwZWN0b3IvV2ViSW5zcGVjdG9yRnJvbnRlbmQubW0KQEAgLTMyLDcgKzMyLDcgQEAgdXNp
bmcgbmFtZXNwYWNlIFdlYkNvcmU7CiAKIEBpbXBsZW1lbnRhdGlvbiBXZWJJbnNwZWN0b3JGcm9u
dGVuZAogCi0tIChpZClpbml0V2l0aEZyb250ZW5kQ2xpZW50OihXZWJJbnNwZWN0b3JGcm9udGVu
ZENsaWVudCAqKWZyb250ZW5kQ2xpZW50CistIChpZClpbml0V2l0aEZyb250ZW5kQ2xpZW50OihO
YWtlZFB0cjxXZWJJbnNwZWN0b3JGcm9udGVuZENsaWVudD4pZnJvbnRlbmRDbGllbnQKIHsKICAg
ICBpZiAoIShzZWxmID0gW3N1cGVyIGluaXRdKSkKICAgICAgICAgcmV0dXJuIG5pbDsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYkluc3BlY3Rvci9XZWJOb2RlSGlnaGxp
Z2h0LmggYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJJbnNwZWN0b3IvV2ViTm9kZUhpZ2hs
aWdodC5oCmluZGV4IDAwNmUxZDBiOTY1MWM2N2I1NTNmNTM3Nzg5MjFkYjE4MzQ3Mjg1OWQuLjRk
YWYzM2ViNzlhZDMzM2RkZGFjNTliNzAzOGVlNWU2MTI2NTI3YjUgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXRMZWdhY3kvbWFjL1dlYkluc3BlY3Rvci9XZWJOb2RlSGlnaGxpZ2h0LmgKKysrIGIv
U291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViSW5zcGVjdG9yL1dlYk5vZGVIaWdobGlnaHQuaApA
QCAtMzEsNiArMzEsNyBAQAogI2ltcG9ydCA8V2ViS2l0TGVnYWN5L1dBS0FwcEtpdFN0dWJzLmg+
CiAjaW1wb3J0IDxXZWJLaXRMZWdhY3kvV0FLVmlldy5oPgogI2VuZGlmCisjaW1wb3J0IDx3dGYv
TmFrZWRQdHIuaD4KIAogQGNsYXNzIFdlYk5vZGVIaWdobGlnaHRWaWV3OwogI2lmIFBMQVRGT1JN
KElPU19GQU1JTFkpCkBAIC01OCwxMCArNTksMTAgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAg
IFdlYkhpZ2hsaWdodExheWVyICpfaGlnaGxpZ2h0TGF5ZXI7CiAjZW5kaWYKICAgICBXZWJOb2Rl
SGlnaGxpZ2h0VmlldyAqX2hpZ2hsaWdodFZpZXc7Ci0gICAgV2ViQ29yZTo6SW5zcGVjdG9yQ29u
dHJvbGxlciogX2luc3BlY3RvckNvbnRyb2xsZXI7CisgICAgTmFrZWRQdHI8V2ViQ29yZTo6SW5z
cGVjdG9yQ29udHJvbGxlcj4gX2luc3BlY3RvckNvbnRyb2xsZXI7CiAgICAgaWQgX2RlbGVnYXRl
OwogfQotLSAoaWQpaW5pdFdpdGhUYXJnZXRWaWV3OihOU1ZpZXcgKil0YXJnZXRWaWV3IGluc3Bl
Y3RvckNvbnRyb2xsZXI6KFdlYkNvcmU6Okluc3BlY3RvckNvbnRyb2xsZXIqKWluc3BlY3RvckNv
bnRyb2xsZXI7CistIChpZClpbml0V2l0aFRhcmdldFZpZXc6KE5TVmlldyAqKXRhcmdldFZpZXcg
aW5zcGVjdG9yQ29udHJvbGxlcjooTmFrZWRQdHI8V2ViQ29yZTo6SW5zcGVjdG9yQ29udHJvbGxl
cj4paW5zcGVjdG9yQ29udHJvbGxlcjsKIAogLSAodm9pZClzZXREZWxlZ2F0ZTooaWQpZGVsZWdh
dGU7CiAtIChpZClkZWxlZ2F0ZTsKQEAgLTcyLDcgKzczLDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUg
ewogLSAoTlNWaWV3ICopdGFyZ2V0VmlldzsKIC0gKFdlYk5vZGVIaWdobGlnaHRWaWV3ICopaGln
aGxpZ2h0VmlldzsKIAotLSAoV2ViQ29yZTo6SW5zcGVjdG9yQ29udHJvbGxlciopaW5zcGVjdG9y
Q29udHJvbGxlcjsKKy0gKE5ha2VkUHRyPFdlYkNvcmU6Okluc3BlY3RvckNvbnRyb2xsZXI+KWlu
c3BlY3RvckNvbnRyb2xsZXI7CiAKICNpZiAhUExBVEZPUk0oSU9TX0ZBTUlMWSkKIC0gKHZvaWQp
c2V0TmVlZHNVcGRhdGVJblRhcmdldFZpZXdSZWN0OihOU1JlY3QpcmVjdDsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYkluc3BlY3Rvci9XZWJOb2RlSGlnaGxpZ2h0Lm1t
IGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViSW5zcGVjdG9yL1dlYk5vZGVIaWdobGlnaHQu
bW0KaW5kZXggM2RiNDRkNmY1NTg5OWYwOGFjOGRkNDJmODhhZGZmM2Y5OWM1OTk5MC4uMGFmNTYx
OWE3MjZjMzVhZjg1MWFhMDdjNWM0M2QzMDI3MzdlYTI1NiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdExlZ2FjeS9tYWMvV2ViSW5zcGVjdG9yL1dlYk5vZGVIaWdobGlnaHQubW0KKysrIGIvU291
cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViSW5zcGVjdG9yL1dlYk5vZGVIaWdobGlnaHQubW0KQEAg
LTgxLDcgKzgxLDcgQEAgQGVuZAogCiBAaW1wbGVtZW50YXRpb24gV2ViTm9kZUhpZ2hsaWdodAog
Ci0tIChpZClpbml0V2l0aFRhcmdldFZpZXc6KE5TVmlldyAqKXRhcmdldFZpZXcgaW5zcGVjdG9y
Q29udHJvbGxlcjooSW5zcGVjdG9yQ29udHJvbGxlciopaW5zcGVjdG9yQ29udHJvbGxlcgorLSAo
aWQpaW5pdFdpdGhUYXJnZXRWaWV3OihOU1ZpZXcgKil0YXJnZXRWaWV3IGluc3BlY3RvckNvbnRy
b2xsZXI6KE5ha2VkUHRyPEluc3BlY3RvckNvbnRyb2xsZXI+KWluc3BlY3RvckNvbnRyb2xsZXIK
IHsKICAgICBzZWxmID0gW3N1cGVyIGluaXRdOwogICAgIGlmICghc2VsZikKQEAgLTI1MCw3ICsy
NTAsNyBAQCAtIChOU1ZpZXcgKil0YXJnZXRWaWV3CiAgICAgcmV0dXJuIF90YXJnZXRWaWV3Owog
fQogCi0tIChJbnNwZWN0b3JDb250cm9sbGVyKilpbnNwZWN0b3JDb250cm9sbGVyCistIChOYWtl
ZFB0cjxJbnNwZWN0b3JDb250cm9sbGVyPilpbnNwZWN0b3JDb250cm9sbGVyCiB7CiAgICAgcmV0
dXJuIF9pbnNwZWN0b3JDb250cm9sbGVyOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExl
Z2FjeS9tYWMvV2ViVmlldy9XZWJBcmNoaXZlLm1tIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMv
V2ViVmlldy9XZWJBcmNoaXZlLm1tCmluZGV4IDBkYTcwYmJmODU3ZDAyOGM5ZWM0YmFkNmViMzFm
OWQ4Mzc1MTcxY2MuLjhlYmZiNTNlOTE0YmZlZWVlNzMzOGU2NjAzNjk3OGVmYmE1YjJiZDEgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViQXJjaGl2ZS5tbQor
KysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYkFyY2hpdmUubW0KQEAgLTE3
NSwxMyArMTc1LDEzIEBAIC0gKGluc3RhbmNldHlwZSlpbml0V2l0aE1haW5SZXNvdXJjZTooV2Vi
UmVzb3VyY2UgKiltYWluUmVzb3VyY2Ugc3VicmVzb3VyY2VzOihOCiAKICAgICBWZWN0b3I8UmVm
PEFyY2hpdmVSZXNvdXJjZT4+IGNvcmVSZXNvdXJjZXM7CiAgICAgZm9yIChXZWJSZXNvdXJjZSAq
c3VicmVzb3VyY2UgaW4gc3VicmVzb3VyY2VzKQotICAgICAgICBjb3JlUmVzb3VyY2VzLmFwcGVu
ZChbc3VicmVzb3VyY2UgX2NvcmVSZXNvdXJjZV0pOworICAgICAgICBjb3JlUmVzb3VyY2VzLmFw
cGVuZChbc3VicmVzb3VyY2UgX2NvcmVSZXNvdXJjZV0uZ2V0KCkpOwogCiAgICAgVmVjdG9yPFJl
ZjxMZWdhY3lXZWJBcmNoaXZlPj4gY29yZUFyY2hpdmVzOwogICAgIGZvciAoV2ViQXJjaGl2ZSAq
c3ViZnJhbWVBcmNoaXZlIGluIHN1YmZyYW1lQXJjaGl2ZXMpCiAgICAgICAgIGNvcmVBcmNoaXZl
cy5hcHBlbmQoKltzdWJmcmFtZUFyY2hpdmUtPl9wcml2YXRlIGNvcmVBcmNoaXZlXSk7CiAKLSAg
ICBbX3ByaXZhdGUgc2V0Q29yZUFyY2hpdmU6TGVnYWN5V2ViQXJjaGl2ZTo6Y3JlYXRlKFttYWlu
UmVzb3VyY2UgX2NvcmVSZXNvdXJjZV0sIFdURk1vdmUoY29yZVJlc291cmNlcyksIFdURk1vdmUo
Y29yZUFyY2hpdmVzKSldOworICAgIFtfcHJpdmF0ZSBzZXRDb3JlQXJjaGl2ZTpMZWdhY3lXZWJB
cmNoaXZlOjpjcmVhdGUoW21haW5SZXNvdXJjZSBfY29yZVJlc291cmNlXS5nZXQoKSwgV1RGTW92
ZShjb3JlUmVzb3VyY2VzKSwgV1RGTW92ZShjb3JlQXJjaGl2ZXMpKV07CiAgICAgcmV0dXJuIHNl
bGY7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2Vi
RGF0YVNvdXJjZS5tbSBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViRGF0YVNv
dXJjZS5tbQppbmRleCA5MWU5NGJmZjBkMmRiZWYxNjdkY2U1NGE4ZjE3YTViMzk0ZDgyODRhLi5i
YjAyNzY5M2MyNWE2YmM2Mzg2NDNkMGVlYzI2NGE0MjUwZTQzYjc5IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYkRhdGFTb3VyY2UubW0KKysrIGIvU291cmNl
L1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJEYXRhU291cmNlLm1tCkBAIC02MSw2ICs2MSw3
IEBACiAjaW1wb3J0IDxXZWJLaXRMZWdhY3kvRE9NUHJpdmF0ZS5oPgogI2ltcG9ydCA8d3RmL0Fz
c2VydGlvbnMuaD4KICNpbXBvcnQgPHd0Zi9NYWluVGhyZWFkLmg+CisjaW1wb3J0IDx3dGYvTmFr
ZWRQdHIuaD4KICNpbXBvcnQgPHd0Zi9SZWZQdHIuaD4KICNpbXBvcnQgPHd0Zi9SZXRhaW5QdHIu
aD4KICNpbXBvcnQgPHd0Zi9SdW5Mb29wLmg+CkBAIC0zOTQsNyArMzk1LDcgQEAgLSAodm9pZClf
bWFrZVJlcHJlc2VudGF0aW9uCiAjZW5kaWYKIH0KIAotLSAoV2ViQ29yZTo6RG9jdW1lbnRMb2Fk
ZXIqKV9kb2N1bWVudExvYWRlcgorLSAoTmFrZWRQdHI8V2ViQ29yZTo6RG9jdW1lbnRMb2FkZXI+
KV9kb2N1bWVudExvYWRlcgogewogICAgIHJldHVybiB0b1ByaXZhdGUoX3ByaXZhdGUpLT5sb2Fk
ZXIucHRyKCk7CiB9CkBAIC01NjQsNyArNTY1LDcgQEAgLSAoV2ViUmVzb3VyY2UgKilzdWJyZXNv
dXJjZUZvclVSTDooTlNVUkwgKilVUkwKIAogLSAodm9pZClhZGRTdWJyZXNvdXJjZTooV2ViUmVz
b3VyY2UgKilzdWJyZXNvdXJjZQogeyAgICAKLSAgICB0b1ByaXZhdGUoX3ByaXZhdGUpLT5sb2Fk
ZXItPmFkZEFyY2hpdmVSZXNvdXJjZShbc3VicmVzb3VyY2UgX2NvcmVSZXNvdXJjZV0pOworICAg
IHRvUHJpdmF0ZShfcHJpdmF0ZSktPmxvYWRlci0+YWRkQXJjaGl2ZVJlc291cmNlKFtzdWJyZXNv
dXJjZSBfY29yZVJlc291cmNlXS5nZXQoKSk7CiB9CiAKIEBlbmQKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViRGF0YVNvdXJjZUludGVybmFsLmggYi9Tb3Vy
Y2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYkRhdGFTb3VyY2VJbnRlcm5hbC5oCmluZGV4
IDgwZTgxMTBmNTRmYjJkMjg4YTNiNzE5NDg3ZWNiN2RmZDg0MGMyYjIuLmIxZDg1NGQwYmQ0ZTEx
NjExYTRkMTVlZTcxYjI2NzFlMTNhYWQzYWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdh
Y3kvbWFjL1dlYlZpZXcvV2ViRGF0YVNvdXJjZUludGVybmFsLmgKKysrIGIvU291cmNlL1dlYktp
dExlZ2FjeS9tYWMvV2ViVmlldy9XZWJEYXRhU291cmNlSW50ZXJuYWwuaApAQCAtMjgsNiArMjgs
NyBAQAogCiAjaW1wb3J0ICJXZWJEYXRhU291cmNlUHJpdmF0ZS5oIgogI2ltcG9ydCA8d3RmL0Zv
cndhcmQuaD4KKyNpbXBvcnQgPHd0Zi9OYWtlZFB0ci5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7
CiBjbGFzcyBEb2N1bWVudExvYWRlcjsKQEAgLTU3LDcgKzU4LDcgQEAgY2xhc3MgV2ViRG9jdW1l
bnRMb2FkZXJNYWM7CiAtICh2b2lkKV9yZWNlaXZlZERhdGE6KE5TRGF0YSAqKWRhdGE7CiAtICh2
b2lkKV9yZXZlcnRUb1Byb3Zpc2lvbmFsU3RhdGU7CiAtICh2b2lkKV9zZXRNYWluRG9jdW1lbnRF
cnJvcjooTlNFcnJvciAqKWVycm9yOwotLSAoV2ViQ29yZTo6RG9jdW1lbnRMb2FkZXIqKV9kb2N1
bWVudExvYWRlcjsKKy0gKE5ha2VkUHRyPFdlYkNvcmU6OkRvY3VtZW50TG9hZGVyPilfZG9jdW1l
bnRMb2FkZXI7CiAjaWYgVVNFKFFVSUNLX0xPT0spCiBAcHJvcGVydHkgKG5vbmF0b21pYywgY29w
eSwgc2V0dGVyPV9zZXRRdWlja0xvb2tDb250ZW50OikgTlNEaWN0aW9uYXJ5ICpfcXVpY2tMb29r
Q29udGVudDsKIEBwcm9wZXJ0eSAobm9uYXRvbWljLCBzZXR0ZXI9X3NldFF1aWNrTG9va1ByZXZp
ZXdMb2FkZXJDbGllbnQ6KSBXZWJDb3JlOjpMZWdhY3lQcmV2aWV3TG9hZGVyQ2xpZW50KiBfcXVp
Y2tMb29rUHJldmlld0xvYWRlckNsaWVudDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdh
Y3kvbWFjL1dlYlZpZXcvV2ViRnJhbWUubW0gYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJW
aWV3L1dlYkZyYW1lLm1tCmluZGV4IDM0ZjI4MWQxNzA0NWQ1ZGVkMTQ2YTFlMzE5YTJmYjYzMGQw
YjJjM2YuLjBjYjZhZjY5MjFhNTVhZmE2MTBlNTk4NGMzNzk5ZjNjMWFlYTdlNjQgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViRnJhbWUubW0KKysrIGIvU291
cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJGcmFtZS5tbQpAQCAtMjkxLDcgKzI5MSw3
IEBAIFdlYlZpZXcgKmtpdChXZWJDb3JlOjpQYWdlKiBwYWdlKQogCiBXZWJWaWV3ICpnZXRXZWJW
aWV3KFdlYkZyYW1lICp3ZWJGcmFtZSkKIHsKLSAgICBhdXRvKiBjb3JlRnJhbWUgPSBjb3JlKHdl
YkZyYW1lKTsKKyAgICBhdXRvIGNvcmVGcmFtZSA9IGNvcmUod2ViRnJhbWUpOwogICAgIGlmICgh
Y29yZUZyYW1lKQogICAgICAgICByZXR1cm4gbmlsOwogICAgIHJldHVybiBraXQoY29yZUZyYW1l
LT5wYWdlKCkpOwpAQCAtNDMxLDggKzQzMSw4IEBAIC0gKHZvaWQpX3VwZGF0ZUJhY2tncm91bmRB
bmRVcGRhdGVzV2hpbGVPZmZzY3JlZW4KICAgICBDR0NvbG9yUmVmIGJhY2tncm91bmRDb2xvciA9
IFt3ZWJWaWV3IGJhY2tncm91bmRDb2xvcl07CiAjZW5kaWYKIAotICAgIGF1dG8qIGNvcmVGcmFt
ZSA9IF9wcml2YXRlLT5jb3JlRnJhbWU7Ci0gICAgZm9yIChhdXRvKiBmcmFtZSA9IGNvcmVGcmFt
ZTsgZnJhbWU7IGZyYW1lID0gZnJhbWUtPnRyZWUoKS50cmF2ZXJzZU5leHQoY29yZUZyYW1lKSkg
eworICAgIGF1dG8gY29yZUZyYW1lID0gX3ByaXZhdGUtPmNvcmVGcmFtZTsKKyAgICBmb3IgKGF1
dG8gZnJhbWUgPSBjb3JlRnJhbWU7IGZyYW1lOyBmcmFtZSA9IGZyYW1lLT50cmVlKCkudHJhdmVy
c2VOZXh0KGNvcmVGcmFtZSkpIHsKICAgICAgICAgLy8gRG9uJ3QgY2FsbCBzZXREcmF3c0JhY2tn
cm91bmQ6WUVTIGhlcmUgYmVjYXVzZSBpdCBtYXkgYmUgTk8gYmVjYXVzZSBvZiBhIGxvYWQKICAg
ICAgICAgLy8gaW4gcHJvZ3Jlc3M7IFdlYkZyYW1lTG9hZGVyQ2xpZW50IGtlZXBzIGl0IHNldCB0
byBOTyBkdXJpbmcgdGhlIGxvYWQgcHJvY2Vzcy4KICAgICAgICAgV2ViRnJhbWUgKndlYkZyYW1l
ID0ga2l0KGZyYW1lKTsKQEAgLTQ2OSw4ICs0NjksOCBAQCAtIChpZClfaW50ZXJuYWxMb2FkRGVs
ZWdhdGUKIAogLSAodm9pZClfdW5tYXJrQWxsQmFkR3JhbW1hcgogewotICAgIGF1dG8qIGNvcmVG
cmFtZSA9IF9wcml2YXRlLT5jb3JlRnJhbWU7Ci0gICAgZm9yIChhdXRvKiBmcmFtZSA9IGNvcmVG
cmFtZTsgZnJhbWU7IGZyYW1lID0gZnJhbWUtPnRyZWUoKS50cmF2ZXJzZU5leHQoY29yZUZyYW1l
KSkgeworICAgIGF1dG8gY29yZUZyYW1lID0gX3ByaXZhdGUtPmNvcmVGcmFtZTsKKyAgICBmb3Ig
KGF1dG8gZnJhbWUgPSBjb3JlRnJhbWU7IGZyYW1lOyBmcmFtZSA9IGZyYW1lLT50cmVlKCkudHJh
dmVyc2VOZXh0KGNvcmVGcmFtZSkpIHsKICAgICAgICAgaWYgKGF1dG8qIGRvY3VtZW50ID0gZnJh
bWUtPmRvY3VtZW50KCkpCiAgICAgICAgICAgICBkb2N1bWVudC0+bWFya2VycygpLnJlbW92ZU1h
cmtlcnMoV2ViQ29yZTo6RG9jdW1lbnRNYXJrZXI6OkdyYW1tYXIpOwogICAgIH0KQEAgLTQ3OSw4
ICs0NzksOCBAQCAtICh2b2lkKV91bm1hcmtBbGxCYWRHcmFtbWFyCiAtICh2b2lkKV91bm1hcmtB
bGxNaXNzcGVsbGluZ3MKIHsKICNpZiAhUExBVEZPUk0oSU9TX0ZBTUlMWSkKLSAgICBhdXRvKiBj
b3JlRnJhbWUgPSBfcHJpdmF0ZS0+Y29yZUZyYW1lOwotICAgIGZvciAoYXV0byogZnJhbWUgPSBj
b3JlRnJhbWU7IGZyYW1lOyBmcmFtZSA9IGZyYW1lLT50cmVlKCkudHJhdmVyc2VOZXh0KGNvcmVG
cmFtZSkpIHsKKyAgICBhdXRvIGNvcmVGcmFtZSA9IF9wcml2YXRlLT5jb3JlRnJhbWU7CisgICAg
Zm9yIChhdXRvIGZyYW1lID0gY29yZUZyYW1lOyBmcmFtZTsgZnJhbWUgPSBmcmFtZS0+dHJlZSgp
LnRyYXZlcnNlTmV4dChjb3JlRnJhbWUpKSB7CiAgICAgICAgIGlmIChhdXRvKiBkb2N1bWVudCA9
IGZyYW1lLT5kb2N1bWVudCgpKQogICAgICAgICAgICAgZG9jdW1lbnQtPm1hcmtlcnMoKS5yZW1v
dmVNYXJrZXJzKFdlYkNvcmU6OkRvY3VtZW50TWFya2VyOjpTcGVsbGluZyk7CiAgICAgfQpAQCAt
NDkzLDcgKzQ5Myw3IEBAIC0gKEJPT0wpX2hhc1NlbGVjdGlvbgogCiAgICAgLy8gb3B0aW1pemF0
aW9uIGZvciBjb21tb24gY2FzZSB0byBhdm9pZCBjcmVhdGluZyBwb3RlbnRpYWxseSBsYXJnZSBz
ZWxlY3Rpb24gc3RyaW5nCiAgICAgaWYgKFtkb2N1bWVudFZpZXcgaXNLaW5kT2ZDbGFzczpbV2Vi
SFRNTFZpZXcgY2xhc3NdXSkKLSAgICAgICAgaWYgKGF1dG8qIGNvcmVGcmFtZSA9IF9wcml2YXRl
LT5jb3JlRnJhbWUpCisgICAgICAgIGlmIChhdXRvIGNvcmVGcmFtZSA9IF9wcml2YXRlLT5jb3Jl
RnJhbWUpCiAgICAgICAgICAgICByZXR1cm4gY29yZUZyYW1lLT5zZWxlY3Rpb24oKS5pc1Jhbmdl
KCk7CiAKICAgICBpZiAoW2RvY3VtZW50VmlldyBjb25mb3Jtc1RvUHJvdG9jb2w6QHByb3RvY29s
KFdlYkRvY3VtZW50VGV4dCldKQpAQCAtNTE0LDggKzUxNCw4IEBAIC0gKEJPT0wpX2F0TW9zdE9u
ZUZyYW1lSGFzU2VsZWN0aW9uCiB7CiAgICAgLy8gRklYTUU6IDQxODYwNTAgaXMgb25lIGtub3du
IGNhc2UgdGhhdCBtYWtlcyB0aGlzIGRlYnVnIGNoZWNrIGZhaWwuCiAgICAgQk9PTCBmb3VuZCA9
IE5POwotICAgIGF1dG8qIGNvcmVGcmFtZSA9IF9wcml2YXRlLT5jb3JlRnJhbWU7Ci0gICAgZm9y
IChhdXRvKiBmcmFtZSA9IGNvcmVGcmFtZTsgZnJhbWU7IGZyYW1lID0gZnJhbWUtPnRyZWUoKS50
cmF2ZXJzZU5leHQoY29yZUZyYW1lKSkgeworICAgIGF1dG8gY29yZUZyYW1lID0gX3ByaXZhdGUt
PmNvcmVGcmFtZTsKKyAgICBmb3IgKGF1dG8gZnJhbWUgPSBjb3JlRnJhbWU7IGZyYW1lOyBmcmFt
ZSA9IGZyYW1lLT50cmVlKCkudHJhdmVyc2VOZXh0KGNvcmVGcmFtZSkpIHsKICAgICAgICAgaWYg
KFtraXQoZnJhbWUpIF9oYXNTZWxlY3Rpb25dKSB7CiAgICAgICAgICAgICBpZiAoZm91bmQpCiAg
ICAgICAgICAgICAgICAgcmV0dXJuIE5POwpAQCAtNTI4LDggKzUyOCw4IEBAIC0gKEJPT0wpX2F0
TW9zdE9uZUZyYW1lSGFzU2VsZWN0aW9uCiAKIC0gKFdlYkZyYW1lICopX2ZpbmRGcmFtZVdpdGhT
ZWxlY3Rpb24KIHsKLSAgICBhdXRvKiBjb3JlRnJhbWUgPSBfcHJpdmF0ZS0+Y29yZUZyYW1lOwot
ICAgIGZvciAoYXV0byogZnJhbWUgPSBjb3JlRnJhbWU7IGZyYW1lOyBmcmFtZSA9IGZyYW1lLT50
cmVlKCkudHJhdmVyc2VOZXh0KGNvcmVGcmFtZSkpIHsKKyAgICBhdXRvIGNvcmVGcmFtZSA9IF9w
cml2YXRlLT5jb3JlRnJhbWU7CisgICAgZm9yIChhdXRvIGZyYW1lID0gY29yZUZyYW1lOyBmcmFt
ZTsgZnJhbWUgPSBmcmFtZS0+dHJlZSgpLnRyYXZlcnNlTmV4dChjb3JlRnJhbWUpKSB7CiAgICAg
ICAgIFdlYkZyYW1lICp3ZWJGcmFtZSA9IGtpdChmcmFtZSk7CiAgICAgICAgIGlmIChbd2ViRnJh
bWUgX2hhc1NlbGVjdGlvbl0pCiAgICAgICAgICAgICByZXR1cm4gd2ViRnJhbWU7CkBAIC03NjUs
NyArNzY1LDcgQEAgLSAodm9pZClfc2Nyb2xsRE9NUmFuZ2VUb1Zpc2libGU6KERPTVJhbmdlICop
cmFuZ2Ugd2l0aEluc2V0OihDR0Zsb2F0KWluc2V0CiAgICAgICAgICAgICBzdGFydE5vZGUtPnJl
bmRlcmVyKCktPnNjcm9sbFJlY3RUb1Zpc2libGUoV2ViQ29yZTo6ZW5jbG9zaW5nSW50UmVjdChy
YW5nZVJlY3QpLCBpbnNpZGVGaXhlZCwgeyBXZWJDb3JlOjpTZWxlY3Rpb25SZXZlYWxNb2RlOjpS
ZXZlYWwsIFdlYkNvcmU6OlNjcm9sbEFsaWdubWVudDo6YWxpZ25Ub0VkZ2VJZk5lZWRlZCwgV2Vi
Q29yZTo6U2Nyb2xsQWxpZ25tZW50OjphbGlnblRvRWRnZUlmTmVlZGVkLCBXZWJDb3JlOjpTaG91
bGRBbGxvd0Nyb3NzT3JpZ2luU2Nyb2xsaW5nOjpZZXN9KTsKICAgICAgICAgICAgIGxheWVyLT5z
ZXRBZGp1c3RGb3JJT1NDYXJldFdoZW5TY3JvbGxpbmcoZmFsc2UpOwogCi0gICAgICAgICAgICBh
dXRvKiBjb3JlRnJhbWUgPSBjb3JlKHNlbGYpOworICAgICAgICAgICAgYXV0byBjb3JlRnJhbWUg
PSBjb3JlKHNlbGYpOwogICAgICAgICAgICAgaWYgKGNvcmVGcmFtZSkgewogICAgICAgICAgICAg
ICAgIGF1dG8mIGZyYW1lU2VsZWN0aW9uID0gY29yZUZyYW1lLT5zZWxlY3Rpb24oKTsKICAgICAg
ICAgICAgICAgICBmcmFtZVNlbGVjdGlvbi5zZXRDYXJldFJlY3ROZWVkc1VwZGF0ZSgpOwpAQCAt
ODcwLDcgKzg3MCw3IEBAIC0gKERPTVJhbmdlICopX21hcmtET01SYW5nZQogCiAtIChET01Eb2N1
bWVudEZyYWdtZW50ICopX2RvY3VtZW50RnJhZ21lbnRXaXRoTWFya3VwU3RyaW5nOihOU1N0cmlu
ZyAqKW1hcmt1cFN0cmluZyBiYXNlVVJMU3RyaW5nOihOU1N0cmluZyAqKWJhc2VVUkxTdHJpbmcK
IHsKLSAgICBhdXRvKiBmcmFtZSA9IF9wcml2YXRlLT5jb3JlRnJhbWU7CisgICAgYXV0byBmcmFt
ZSA9IF9wcml2YXRlLT5jb3JlRnJhbWU7CiAgICAgaWYgKCFmcmFtZSkKICAgICAgICAgcmV0dXJu
IG5pbDsKIApAQCAtODgzLDcgKzg4Myw3IEBAIC0gKERPTURvY3VtZW50RnJhZ21lbnQgKilfZG9j
dW1lbnRGcmFnbWVudFdpdGhNYXJrdXBTdHJpbmc6KE5TU3RyaW5nICopbWFya3VwU3RyCiAKIC0g
KERPTURvY3VtZW50RnJhZ21lbnQgKilfZG9jdW1lbnRGcmFnbWVudFdpdGhOb2Rlc0FzUGFyYWdy
YXBoczooTlNBcnJheSAqKW5vZGVzCiB7Ci0gICAgYXV0byogZnJhbWUgPSBfcHJpdmF0ZS0+Y29y
ZUZyYW1lOworICAgIGF1dG8gZnJhbWUgPSBfcHJpdmF0ZS0+Y29yZUZyYW1lOwogICAgIGlmICgh
ZnJhbWUpCiAgICAgICAgIHJldHVybiBuaWw7CiAKQEAgLTk3MCw3ICs5NzAsNyBAQCAtICh2b2lk
KV9kcmFnU291cmNlRW5kZWRBdDooTlNQb2ludCl3aW5kb3dMb2Mgb3BlcmF0aW9uOihOU0RyYWdP
cGVyYXRpb24pb3BlcmF0aQogCiAtIChCT09MKV9jYW5Qcm92aWRlRG9jdW1lbnRTb3VyY2UKIHsK
LSAgICBhdXRvKiBmcmFtZSA9IF9wcml2YXRlLT5jb3JlRnJhbWU7CisgICAgYXV0byBmcmFtZSA9
IF9wcml2YXRlLT5jb3JlRnJhbWU7CiAgICAgU3RyaW5nIG1pbWVUeXBlID0gZnJhbWUtPmRvY3Vt
ZW50KCktPmxvYWRlcigpLT53cml0ZXIoKS5taW1lVHlwZSgpOwogICAgIGF1dG8qIHBsdWdpbkRh
dGEgPSBmcmFtZS0+cGFnZSgpID8gJmZyYW1lLT5wYWdlKCktPnBsdWdpbkRhdGEoKSA6IDA7CiAK
QEAgLTEwMDYsNyArMTAwNiw3IEBAIEBpbXBsZW1lbnRhdGlvbiBXZWJGcmFtZSAoV2ViUHJpdmF0
ZSkKIC8vIEZJWE1FOiBUaGlzIGV4aXN0cyBvbmx5IGFzIGEgY29udmVuaWVuY2UgZm9yIFNhZmFy
aSwgY29uc2lkZXIgbW92aW5nIHRoZXJlLgogLSAoQk9PTClfaXNEZXNjZW5kYW50T2ZGcmFtZToo
V2ViRnJhbWUgKilhbmNlc3RvcgogewotICAgIGF1dG8qIGNvcmVGcmFtZSA9IF9wcml2YXRlLT5j
b3JlRnJhbWU7CisgICAgYXV0byBjb3JlRnJhbWUgPSBfcHJpdmF0ZS0+Y29yZUZyYW1lOwogICAg
IHJldHVybiBjb3JlRnJhbWUgJiYgY29yZUZyYW1lLT50cmVlKCkuaXNEZXNjZW5kYW50T2YoY29y
ZShhbmNlc3RvcikpOwogfQogCkBAIC0xMTcxLDcgKzExNzEsNyBAQCAtICh1bnNpZ25lZClfcGVu
ZGluZ0ZyYW1lVW5sb2FkRXZlbnRDb3VudAogI2lmIEVOQUJMRShORVRTQ0FQRV9QTFVHSU5fQVBJ
KQogLSAodm9pZClfcmVjdXJzaXZlX3Jlc3VtZU51bGxFdmVudHNGb3JBbGxOZXRzY2FwZVBsdWdp
bnMKIHsKLSAgICBhdXRvKiBjb3JlRnJhbWUgPSBjb3JlKHNlbGYpOworICAgIGF1dG8gY29yZUZy
YW1lID0gY29yZShzZWxmKTsKICAgICBmb3IgKGF1dG8qIGZyYW1lID0gY29yZUZyYW1lOyBmcmFt
ZTsgZnJhbWUgPSBmcmFtZS0+dHJlZSgpLnRyYXZlcnNlTmV4dChjb3JlRnJhbWUpKSB7CiAgICAg
ICAgIE5TVmlldyA8V2ViRG9jdW1lbnRWaWV3PiAqZG9jdW1lbnRWaWV3ID0gW1traXQoZnJhbWUp
IGZyYW1lVmlld10gZG9jdW1lbnRWaWV3XTsKICAgICAgICAgaWYgKFtkb2N1bWVudFZpZXcgaXNL
aW5kT2ZDbGFzczpbV2ViSFRNTFZpZXcgY2xhc3NdXSkKQEAgLTExODEsNyArMTE4MSw3IEBAIC0g
KHZvaWQpX3JlY3Vyc2l2ZV9yZXN1bWVOdWxsRXZlbnRzRm9yQWxsTmV0c2NhcGVQbHVnaW5zCiAK
IC0gKHZvaWQpX3JlY3Vyc2l2ZV9wYXVzZU51bGxFdmVudHNGb3JBbGxOZXRzY2FwZVBsdWdpbnMK
IHsKLSAgICBhdXRvKiBjb3JlRnJhbWUgPSBjb3JlKHNlbGYpOworICAgIGF1dG8gY29yZUZyYW1l
ID0gY29yZShzZWxmKTsKICAgICBmb3IgKGF1dG8qIGZyYW1lID0gY29yZUZyYW1lOyBmcmFtZTsg
ZnJhbWUgPSBmcmFtZS0+dHJlZSgpLnRyYXZlcnNlTmV4dChjb3JlRnJhbWUpKSB7CiAgICAgICAg
IE5TVmlldyA8V2ViRG9jdW1lbnRWaWV3PiAqZG9jdW1lbnRWaWV3ID0gW1traXQoZnJhbWUpIGZy
YW1lVmlld10gZG9jdW1lbnRWaWV3XTsKICAgICAgICAgaWYgKFtkb2N1bWVudFZpZXcgaXNLaW5k
T2ZDbGFzczpbV2ViSFRNTFZpZXcgY2xhc3NdXSkKQEAgLTEyMDAsNyArMTIwMCw3IEBAIC0gKHVu
c2lnbmVkKWZvcm1FbGVtZW50c0NoYXJhY3RlckNvdW50CiAtICh2b2lkKXNldFRpbWVvdXRzUGF1
c2VkOihCT09MKWZsYWcKIHsKICAgICBpZiAoW3NlbGYgX3dlYkhUTUxEb2N1bWVudFZpZXddKSB7
Ci0gICAgICAgIGlmIChhdXRvKiBjb3JlRnJhbWUgPSBfcHJpdmF0ZS0+Y29yZUZyYW1lKQorICAg
ICAgICBpZiAoYXV0byBjb3JlRnJhbWUgPSBfcHJpdmF0ZS0+Y29yZUZyYW1lKQogICAgICAgICAg
ICAgY29yZUZyYW1lLT5zZXRUaW1lcnNQYXVzZWQoZmxhZyk7CiAgICAgfQogfQpAQCAtMTIyMCw3
ICsxMjIwLDcgQEAgLSAodm9pZClzZXRQbHVnaW5zUGF1c2VkOihCT09MKWZsYWcKIC0gKHZvaWQp
cHJlcGFyZUZvclBhdXNlCiB7CiAgICAgaWYgKFtzZWxmIF93ZWJIVE1MRG9jdW1lbnRWaWV3XSkg
ewotICAgICAgICBpZiAoYXV0byogY29yZUZyYW1lID0gX3ByaXZhdGUtPmNvcmVGcmFtZSkKKyAg
ICAgICAgaWYgKGF1dG8gY29yZUZyYW1lID0gX3ByaXZhdGUtPmNvcmVGcmFtZSkKICAgICAgICAg
ICAgIGNvcmVGcmFtZS0+ZGlzcGF0Y2hQYWdlSGlkZUV2ZW50QmVmb3JlUGF1c2UoKTsKICAgICB9
CiB9CkBAIC0xMjI4LDcgKzEyMjgsNyBAQCAtICh2b2lkKXByZXBhcmVGb3JQYXVzZQogLSAodm9p
ZClyZXN1bWVGcm9tUGF1c2UKIHsKICAgICBpZiAoW3NlbGYgX3dlYkhUTUxEb2N1bWVudFZpZXdd
KSB7Ci0gICAgICAgIGlmIChhdXRvKiBjb3JlRnJhbWUgPSBfcHJpdmF0ZS0+Y29yZUZyYW1lKQor
ICAgICAgICBpZiAoYXV0byBjb3JlRnJhbWUgPSBfcHJpdmF0ZS0+Y29yZUZyYW1lKQogICAgICAg
ICAgICAgY29yZUZyYW1lLT5kaXNwYXRjaFBhZ2VTaG93RXZlbnRCZWZvcmVSZXN1bWUoKTsKICAg
ICB9CiB9CkBAIC0xOTA3LDcgKzE5MDcsNyBAQCAtICh2b2lkKXJlc2V0VGV4dEF1dG9zaXppbmdC
ZWZvcmVMYXlvdXQKICAgICBpZiAoIVtzZWxmIF93ZWJIVE1MRG9jdW1lbnRWaWV3XSkKICAgICAg
ICAgcmV0dXJuOwogICAgIAotICAgIGF1dG8qIGNvcmVGcmFtZSA9IGNvcmUoc2VsZik7CisgICAg
YXV0byBjb3JlRnJhbWUgPSBjb3JlKHNlbGYpOwogICAgIGZvciAoYXV0byogZnJhbWUgPSBjb3Jl
RnJhbWU7IGZyYW1lOyBmcmFtZSA9IGZyYW1lLT50cmVlKCkudHJhdmVyc2VOZXh0KGNvcmVGcmFt
ZSkpIHsKICAgICAgICAgV2ViQ29yZTo6RG9jdW1lbnQqIGRvYyA9IGZyYW1lLT5kb2N1bWVudCgp
OwogICAgICAgICBpZiAoIWRvYyB8fCAhZG9jLT5yZW5kZXJWaWV3KCkpCkBAIC0yMTE0LDcgKzIx
MTQsNyBAQCAtIChOU1N0cmluZyAqKV9zdHJpbmdCeUV2YWx1YXRpbmdKYXZhU2NyaXB0RnJvbVN0
cmluZzooTlNTdHJpbmcgKilzdHJpbmcgd2l0aEdsbwogCiAtIChKU0dsb2JhbENvbnRleHRSZWYp
X2dsb2JhbENvbnRleHRGb3JTY3JpcHRXb3JsZDooV2ViU2NyaXB0V29ybGQgKil3b3JsZAogewot
ICAgIGF1dG8qIGNvcmVGcmFtZSA9IF9wcml2YXRlLT5jb3JlRnJhbWU7CisgICAgYXV0byBjb3Jl
RnJhbWUgPSBfcHJpdmF0ZS0+Y29yZUZyYW1lOwogICAgIGlmICghY29yZUZyYW1lKQogICAgICAg
ICByZXR1cm4gMDsKICAgICBhdXRvKiBjb3JlV29ybGQgPSBjb3JlKHdvcmxkKTsKQEAgLTIxODcs
NyArMjE4Nyw3IEBAIC0gKHZvaWQpc2V0RW5oYW5jZWRBY2Nlc3NpYmlsaXR5OihCT09MKWVuYWJs
ZQogCiAtIChOU1N0cmluZyopX2xheWVyVHJlZUFzVGV4dAogewotICAgIGF1dG8qIGNvcmVGcmFt
ZSA9IF9wcml2YXRlLT5jb3JlRnJhbWU7CisgICAgYXV0byBjb3JlRnJhbWUgPSBfcHJpdmF0ZS0+
Y29yZUZyYW1lOwogICAgIGlmICghY29yZUZyYW1lKQogICAgICAgICByZXR1cm4gQCIiOwogCkBA
IC0yMjMwLDcgKzIyMzAsNyBAQCAtIChpZClhY2Nlc3NpYmlsaXR5Um9vdAogCiAtICh2b2lkKV9j
bGVhck9wZW5lcgogewotICAgIGF1dG8qIGNvcmVGcmFtZSA9IF9wcml2YXRlLT5jb3JlRnJhbWU7
CisgICAgYXV0byBjb3JlRnJhbWUgPSBfcHJpdmF0ZS0+Y29yZUZyYW1lOwogICAgIGlmIChjb3Jl
RnJhbWUpCiAgICAgICAgIGNvcmVGcmFtZS0+bG9hZGVyKCkuc2V0T3BlbmVyKDApOwogfQpAQCAt
MjMwNCw3ICsyMzA0LDcgQEAgLSAoRE9NRG9jdW1lbnRGcmFnbWVudCAqKV9kb2N1bWVudEZyYWdt
ZW50Rm9ySW1hZ2VEYXRhOihOU0RhdGEgKilkYXRhIHdpdGhSZWxhdGkKIAogLSAoQk9PTClmb2N1
c2VkTm9kZUhhc0NvbnRlbnQKIHsKLSAgICBhdXRvKiBjb3JlRnJhbWUgPSBfcHJpdmF0ZS0+Y29y
ZUZyYW1lOworICAgIGF1dG8gY29yZUZyYW1lID0gX3ByaXZhdGUtPmNvcmVGcmFtZTsKICAgIAog
ICAgIFdlYkNvcmU6OkVsZW1lbnQqIHJvb3Q7CiAgICAgY29uc3QgYXV0byYgc2VsZWN0aW9uID0g
Y29yZUZyYW1lLT5zZWxlY3Rpb24oKS5zZWxlY3Rpb24oKTsKQEAgLTIzMjYsNyArMjMyNiw3IEBA
IC0gKEJPT0wpZm9jdXNlZE5vZGVIYXNDb250ZW50CiAKIC0gKHZvaWQpX2Rpc3BhdGNoRGlkUmVj
ZWl2ZVRpdGxlOihOU1N0cmluZyAqKXRpdGxlCiB7Ci0gICAgYXV0byogY29yZUZyYW1lID0gX3By
aXZhdGUtPmNvcmVGcmFtZTsKKyAgICBhdXRvIGNvcmVGcmFtZSA9IF9wcml2YXRlLT5jb3JlRnJh
bWU7CiAgICAgaWYgKCFjb3JlRnJhbWUpCiAgICAgICAgIHJldHVybjsKICAgICBjb3JlRnJhbWUt
PmxvYWRlcigpLmNsaWVudCgpLmRpc3BhdGNoRGlkUmVjZWl2ZVRpdGxlKHsgdGl0bGUsIFdlYkNv
cmU6OlRleHREaXJlY3Rpb246OkxUUiB9KTsKQEAgLTIzMzYsNyArMjMzNiw3IEBAIC0gKHZvaWQp
X2Rpc3BhdGNoRGlkUmVjZWl2ZVRpdGxlOihOU1N0cmluZyAqKXRpdGxlCiAKIC0gKEpTVmFsdWVS
ZWYpanNXcmFwcGVyRm9yTm9kZTooRE9NTm9kZSAqKW5vZGUgaW5TY3JpcHRXb3JsZDooV2ViU2Ny
aXB0V29ybGQgKil3b3JsZAogewotICAgIGF1dG8qIGNvcmVGcmFtZSA9IF9wcml2YXRlLT5jb3Jl
RnJhbWU7CisgICAgYXV0byBjb3JlRnJhbWUgPSBfcHJpdmF0ZS0+Y29yZUZyYW1lOwogICAgIGlm
ICghY29yZUZyYW1lKQogICAgICAgICByZXR1cm4gMDsKIApAQCAtMjM1Miw3ICsyMzUyLDcgQEAg
LSAoSlNWYWx1ZVJlZilqc1dyYXBwZXJGb3JOb2RlOihET01Ob2RlICopbm9kZSBpblNjcmlwdFdv
cmxkOihXZWJTY3JpcHRXb3JsZCAqKXcKIAogLSAoTlNEaWN0aW9uYXJ5ICopZWxlbWVudEF0UG9p
bnQ6KE5TUG9pbnQpcG9pbnQKIHsKLSAgICBhdXRvKiBjb3JlRnJhbWUgPSBfcHJpdmF0ZS0+Y29y
ZUZyYW1lOworICAgIGF1dG8gY29yZUZyYW1lID0gX3ByaXZhdGUtPmNvcmVGcmFtZTsKICAgICBp
ZiAoIWNvcmVGcmFtZSkKICAgICAgICAgcmV0dXJuIG5pbDsKICAgICByZXR1cm4gW1tbV2ViRWxl
bWVudERpY3Rpb25hcnkgYWxsb2NdIGluaXRXaXRoSGl0VGVzdFJlc3VsdDpjb3JlRnJhbWUtPmV2
ZW50SGFuZGxlcigpLmhpdFRlc3RSZXN1bHRBdFBvaW50KFdlYkNvcmU6OkludFBvaW50KHBvaW50
KSwgV2ViQ29yZTo6SGl0VGVzdFJlcXVlc3Q6OlJlYWRPbmx5IHwgV2ViQ29yZTo6SGl0VGVzdFJl
cXVlc3Q6OkFjdGl2ZSB8IFdlYkNvcmU6OkhpdFRlc3RSZXF1ZXN0OjpJZ25vcmVDbGlwcGluZyB8
IFdlYkNvcmU6OkhpdFRlc3RSZXF1ZXN0OjpEaXNhbGxvd1VzZXJBZ2VudFNoYWRvd0NvbnRlbnQg
fCBXZWJDb3JlOjpIaXRUZXN0UmVxdWVzdDo6QWxsb3dDaGlsZEZyYW1lQ29udGVudCldIGF1dG9y
ZWxlYXNlXTsKQEAgLTIzOTAsNyArMjM5MCw3IEBAIC0gKHZvaWQpZGVhbGxvYwogCiAtIChOU1N0
cmluZyAqKW5hbWUKIHsKLSAgICBhdXRvKiBjb3JlRnJhbWUgPSBfcHJpdmF0ZS0+Y29yZUZyYW1l
OworICAgIGF1dG8gY29yZUZyYW1lID0gX3ByaXZhdGUtPmNvcmVGcmFtZTsKICAgICBpZiAoIWNv
cmVGcmFtZSkKICAgICAgICAgcmV0dXJuIG5pbDsKICAgICByZXR1cm4gY29yZUZyYW1lLT50cmVl
KCkudW5pcXVlTmFtZSgpOwpAQCAtMjQyMSw3ICsyNDIxLDcgQEAgLSAoRE9NRG9jdW1lbnQgKilE
T01Eb2N1bWVudAogICAgIGlmIChuZWVkc01pY3Jvc29mdE1lc3NlbmdlckRPTURvY3VtZW50V29y
a2Fyb3VuZCgpICYmICFwdGhyZWFkX21haW5fbnAoKSkKICAgICAgICAgcmV0dXJuIG5pbDsKIAot
ICAgIGF1dG8qIGNvcmVGcmFtZSA9IF9wcml2YXRlLT5jb3JlRnJhbWU7CisgICAgYXV0byBjb3Jl
RnJhbWUgPSBfcHJpdmF0ZS0+Y29yZUZyYW1lOwogICAgIGlmICghY29yZUZyYW1lKQogICAgICAg
ICByZXR1cm4gbmlsOwogICAgIApAQCAtMjQ0NCw3ICsyNDQ0LDcgQEAgLSAoRE9NRG9jdW1lbnQg
KilET01Eb2N1bWVudAogCiAtIChET01IVE1MRWxlbWVudCAqKWZyYW1lRWxlbWVudAogewotICAg
IGF1dG8qIGNvcmVGcmFtZSA9IF9wcml2YXRlLT5jb3JlRnJhbWU7CisgICAgYXV0byBjb3JlRnJh
bWUgPSBfcHJpdmF0ZS0+Y29yZUZyYW1lOwogICAgIGlmICghY29yZUZyYW1lKQogICAgICAgICBy
ZXR1cm4gbmlsOwogICAgIHJldHVybiBraXQoY29yZUZyYW1lLT5vd25lckVsZW1lbnQoKSk7CkBA
IC0yNDUyLDE5ICsyNDUyLDE5IEBAIC0gKERPTUhUTUxFbGVtZW50ICopZnJhbWVFbGVtZW50CiAK
IC0gKFdlYkRhdGFTb3VyY2UgKilwcm92aXNpb25hbERhdGFTb3VyY2UKIHsKLSAgICBhdXRvKiBj
b3JlRnJhbWUgPSBfcHJpdmF0ZS0+Y29yZUZyYW1lOworICAgIGF1dG8gY29yZUZyYW1lID0gX3By
aXZhdGUtPmNvcmVGcmFtZTsKICAgICByZXR1cm4gY29yZUZyYW1lID8gZGF0YVNvdXJjZShjb3Jl
RnJhbWUtPmxvYWRlcigpLnByb3Zpc2lvbmFsRG9jdW1lbnRMb2FkZXIoKSkgOiBuaWw7CiB9CiAK
IC0gKFdlYkRhdGFTb3VyY2UgKilkYXRhU291cmNlCiB7Ci0gICAgYXV0byogY29yZUZyYW1lID0g
X3ByaXZhdGUtPmNvcmVGcmFtZTsKKyAgICBhdXRvIGNvcmVGcmFtZSA9IF9wcml2YXRlLT5jb3Jl
RnJhbWU7CiAgICAgcmV0dXJuIGNvcmVGcmFtZSAmJiBjb3JlRnJhbWUtPmxvYWRlcigpLmZyYW1l
SGFzTG9hZGVkKCkgPyBbc2VsZiBfZGF0YVNvdXJjZV0gOiBuaWw7CiB9CiAKIC0gKHZvaWQpbG9h
ZFJlcXVlc3Q6KE5TVVJMUmVxdWVzdCAqKXJlcXVlc3QKIHsKLSAgICBhdXRvKiBjb3JlRnJhbWUg
PSBfcHJpdmF0ZS0+Y29yZUZyYW1lOworICAgIGF1dG8gY29yZUZyYW1lID0gX3ByaXZhdGUtPmNv
cmVGcmFtZTsKICAgICBpZiAoIWNvcmVGcmFtZSkKICAgICAgICAgcmV0dXJuOwogCkBAIC0yNTc4
LDcgKzI1NzgsNyBAQCAtICh2b2lkKXJlbG9hZEZyb21PcmlnaW4KIAogLSAoV2ViRnJhbWUgKilm
aW5kRnJhbWVOYW1lZDooTlNTdHJpbmcgKiluYW1lCiB7Ci0gICAgYXV0byogY29yZUZyYW1lID0g
X3ByaXZhdGUtPmNvcmVGcmFtZTsKKyAgICBhdXRvIGNvcmVGcmFtZSA9IF9wcml2YXRlLT5jb3Jl
RnJhbWU7CiAgICAgaWYgKCFjb3JlRnJhbWUpCiAgICAgICAgIHJldHVybiBuaWw7CiAgICAgcmV0
dXJuIGtpdChjb3JlRnJhbWUtPnRyZWUoKS5maW5kKG5hbWUsICpjb3JlRnJhbWUpKTsKQEAgLTI1
ODYsNyArMjU4Niw3IEBAIC0gKFdlYkZyYW1lICopZmluZEZyYW1lTmFtZWQ6KE5TU3RyaW5nICop
bmFtZQogCiAtIChXZWJGcmFtZSAqKXBhcmVudEZyYW1lCiB7Ci0gICAgYXV0byogY29yZUZyYW1l
ID0gX3ByaXZhdGUtPmNvcmVGcmFtZTsKKyAgICBhdXRvIGNvcmVGcmFtZSA9IF9wcml2YXRlLT5j
b3JlRnJhbWU7CiAgICAgaWYgKCFjb3JlRnJhbWUpCiAgICAgICAgIHJldHVybiBuaWw7CiAgICAg
cmV0dXJuIFtba2l0KGNvcmVGcmFtZS0+dHJlZSgpLnBhcmVudCgpKSByZXRhaW5dIGF1dG9yZWxl
YXNlXTsKQEAgLTI1OTQsNyArMjU5NCw3IEBAIC0gKFdlYkZyYW1lICopcGFyZW50RnJhbWUKIAog
LSAoTlNBcnJheSAqKWNoaWxkRnJhbWVzCiB7Ci0gICAgYXV0byogY29yZUZyYW1lID0gX3ByaXZh
dGUtPmNvcmVGcmFtZTsKKyAgICBhdXRvIGNvcmVGcmFtZSA9IF9wcml2YXRlLT5jb3JlRnJhbWU7
CiAgICAgaWYgKCFjb3JlRnJhbWUpCiAgICAgICAgIHJldHVybiBbTlNBcnJheSBhcnJheV07CiAg
ICAgTlNNdXRhYmxlQXJyYXkgKmNoaWxkcmVuID0gW05TTXV0YWJsZUFycmF5IGFycmF5V2l0aENh
cGFjaXR5OmNvcmVGcmFtZS0+dHJlZSgpLmNoaWxkQ291bnQoKV07CkBAIC0yNjA1LDcgKzI2MDUs
NyBAQCAtIChOU0FycmF5ICopY2hpbGRGcmFtZXMKIAogLSAoV2ViU2NyaXB0T2JqZWN0ICopd2lu
ZG93T2JqZWN0CiB7Ci0gICAgYXV0byogY29yZUZyYW1lID0gX3ByaXZhdGUtPmNvcmVGcmFtZTsK
KyAgICBhdXRvIGNvcmVGcmFtZSA9IF9wcml2YXRlLT5jb3JlRnJhbWU7CiAgICAgaWYgKCFjb3Jl
RnJhbWUpCiAgICAgICAgIHJldHVybiAwOwogICAgIHJldHVybiBjb3JlRnJhbWUtPnNjcmlwdCgp
LndpbmRvd1NjcmlwdE9iamVjdCgpOwpAQCAtMjYxMyw3ICsyNjEzLDcgQEAgLSAoV2ViU2NyaXB0
T2JqZWN0ICopd2luZG93T2JqZWN0CiAKIC0gKEpTR2xvYmFsQ29udGV4dFJlZilnbG9iYWxDb250
ZXh0CiB7Ci0gICAgYXV0byogY29yZUZyYW1lID0gX3ByaXZhdGUtPmNvcmVGcmFtZTsKKyAgICBh
dXRvIGNvcmVGcmFtZSA9IF9wcml2YXRlLT5jb3JlRnJhbWU7CiAgICAgaWYgKCFjb3JlRnJhbWUp
CiAgICAgICAgIHJldHVybiAwOwogICAgIHJldHVybiB0b0dsb2JhbFJlZihjb3JlRnJhbWUtPnNj
cmlwdCgpLmdsb2JhbE9iamVjdChXZWJDb3JlOjptYWluVGhyZWFkTm9ybWFsV29ybGQoKSkpOwpA
QCAtMjYyMiw3ICsyNjIyLDcgQEAgLSAoSlNHbG9iYWxDb250ZXh0UmVmKWdsb2JhbENvbnRleHQK
ICNpZiBKU0NfT0JKQ19BUElfRU5BQkxFRAogLSAoSlNDb250ZXh0ICopamF2YVNjcmlwdENvbnRl
eHQKIHsKLSAgICBhdXRvKiBjb3JlRnJhbWUgPSBfcHJpdmF0ZS0+Y29yZUZyYW1lOworICAgIGF1
dG8gY29yZUZyYW1lID0gX3ByaXZhdGUtPmNvcmVGcmFtZTsKICAgICBpZiAoIWNvcmVGcmFtZSkK
ICAgICAgICAgcmV0dXJuIDA7CiAgICAgcmV0dXJuIGNvcmVGcmFtZS0+c2NyaXB0KCkuamF2YVNj
cmlwdENvbnRleHQoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZp
ZXcvV2ViRnJhbWVJbnRlcm5hbC5oIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9X
ZWJGcmFtZUludGVybmFsLmgKaW5kZXggOWY0NmFlY2RkZWI3MTdjMTg4ODM4Y2FhYzA2MmE3OTMy
NTYzNTFlMC4uOTM2YzM0ZjNkYThlYmQzZjJhMzM3MWY5NjIxMzg1M2YzOTYxMmZjZiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJGcmFtZUludGVybmFsLmgK
KysrIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJGcmFtZUludGVybmFsLmgK
QEAgLTM1LDYgKzM1LDcgQEAKICNpbXBvcnQgPFdlYkNvcmUvRnJhbWVTZWxlY3Rpb24uaD4KICNp
bXBvcnQgPFdlYkNvcmUvUG9zaXRpb24uaD4KICNpbXBvcnQgPFdlYkNvcmUvU2V0dGluZ3MuaD4K
KyNpbXBvcnQgPHd0Zi9OYWtlZFB0ci5oPgogCiBAY2xhc3MgRE9NQ1NTU3R5bGVEZWNsYXJhdGlv
bjsKIEBjbGFzcyBET01Eb2N1bWVudEZyYWdtZW50OwpAQCAtODUsNyArODYsNyBAQCBXZWJWaWV3
ICpnZXRXZWJWaWV3KFdlYkZyYW1lICp3ZWJGcmFtZSk7CiAKIEBpbnRlcmZhY2UgV2ViRnJhbWVQ
cml2YXRlIDogTlNPYmplY3QgewogQHB1YmxpYwotICAgIFdlYkNvcmU6OkZyYW1lKiBjb3JlRnJh
bWU7CisgICAgTmFrZWRQdHI8V2ViQ29yZTo6RnJhbWU+IGNvcmVGcmFtZTsKICAgICBXZWJGcmFt
ZVZpZXcgKndlYkZyYW1lVmlldzsKICAgICBzdGQ6OnVuaXF1ZV9wdHI8V2ViU2NyaXB0RGVidWdn
ZXI+IHNjcmlwdERlYnVnZ2VyOwogICAgIGlkIGludGVybmFsTG9hZERlbGVnYXRlOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJGcmFtZVZpZXcubW0gYi9T
b3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYkZyYW1lVmlldy5tbQppbmRleCA4ZDFl
ODVmNDM2MDYxODI0MDI1MjQwNGUxNzQ5N2MwNzljMWIzMjdlLi43MzY1ZDI1NmVlZDY5YWYwYzE2
NDVkMjY0ZTkwM2QyYjYxNzk0OGMxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21h
Yy9XZWJWaWV3L1dlYkZyYW1lVmlldy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9X
ZWJWaWV3L1dlYkZyYW1lVmlldy5tbQpAQCAtMTMzLDcgKzEzMyw3IEBAIC0gKGZsb2F0KV92ZXJ0
aWNhbEtleWJvYXJkU2Nyb2xsRGlzdGFuY2UKICAgICByZXR1cm4gW1tzZWxmIF9zY3JvbGxWaWV3
XSB2ZXJ0aWNhbExpbmVTY3JvbGxdOwogfQogCi0tIChXZWJDb3JlOjpGcmFtZSopX3dlYl9mcmFt
ZQorLSAoTmFrZWRQdHI8V2ViQ29yZTo6RnJhbWU+KV93ZWJfZnJhbWUKIHsKICAgICByZXR1cm4g
Y29yZShfcHJpdmF0ZS0+d2ViRnJhbWUpOwogfQpAQCAtMzMxLDcgKzMzMSw3IEBAIC0gKHZvaWQp
X2ZyYW1lU2l6ZUNoYW5nZWQKICAgICAvLyBTZWUgV2ViRnJhbWVMb2FkZXJDbGllbnQ6OnByb3Zp
c2lvbmFsTG9hZFN0YXJ0ZWQuCiAgICAgaWYgKFtbW3NlbGYgd2ViRnJhbWVdIHdlYlZpZXddIGRy
YXdzQmFja2dyb3VuZF0pCiAgICAgICAgIFtbc2VsZiBfc2Nyb2xsVmlld10gc2V0RHJhd3NCYWNr
Z3JvdW5kOllFU107Ci0gICAgaWYgKGF1dG8qIGNvcmVGcmFtZSA9IFtzZWxmIF93ZWJfZnJhbWVd
KSB7CisgICAgaWYgKGF1dG8gY29yZUZyYW1lID0gW3NlbGYgX3dlYl9mcmFtZV0pIHsKICAgICAg
ICAgaWYgKGF1dG8qIGNvcmVGcmFtZVZpZXcgPSBjb3JlRnJhbWUtPnZpZXcoKSkKICAgICAgICAg
ICAgIGNvcmVGcmFtZVZpZXctPmF2YWlsYWJsZUNvbnRlbnRTaXplQ2hhbmdlZChXZWJDb3JlOjpT
Y3JvbGxhYmxlQXJlYTo6QXZhaWxhYmxlU2l6ZUNoYW5nZVJlYXNvbjo6QXJlYVNpemVDaGFuZ2Vk
KTsKICAgICB9CkBAIC02MTMsNyArNjEzLDcgQEAgLSAoQk9PTClfc2Nyb2xsT3ZlcmZsb3dJbkRp
cmVjdGlvbjooV2ViQ29yZTo6U2Nyb2xsRGlyZWN0aW9uKWRpcmVjdGlvbiBncmFudWxhcmkKIAog
LSAoQk9PTClfaXNWZXJ0aWNhbERvY3VtZW50CiB7Ci0gICAgYXV0byogY29yZUZyYW1lID0gW3Nl
bGYgX3dlYl9mcmFtZV07CisgICAgYXV0byBjb3JlRnJhbWUgPSBbc2VsZiBfd2ViX2ZyYW1lXTsK
ICAgICBpZiAoIWNvcmVGcmFtZSkKICAgICAgICAgcmV0dXJuIFlFUzsKICAgICBhdXRvKiBkb2N1
bWVudCA9IGNvcmVGcmFtZS0+ZG9jdW1lbnQoKTsKQEAgLTYyNyw3ICs2MjcsNyBAQCAtIChCT09M
KV9pc1ZlcnRpY2FsRG9jdW1lbnQKIAogLSAoQk9PTClfaXNGbGlwcGVkRG9jdW1lbnQKIHsKLSAg
ICBhdXRvKiBjb3JlRnJhbWUgPSBbc2VsZiBfd2ViX2ZyYW1lXTsKKyAgICBhdXRvIGNvcmVGcmFt
ZSA9IFtzZWxmIF93ZWJfZnJhbWVdOwogICAgIGlmICghY29yZUZyYW1lKQogICAgICAgICByZXR1
cm4gTk87CiAgICAgYXV0byogZG9jdW1lbnQgPSBjb3JlRnJhbWUtPmRvY3VtZW50KCk7CkBAIC04
OTUsNyArODk1LDcgQEAgLSAodm9pZClrZXlEb3duOihXZWJFdmVudCAqKWV2ZW50CiAjZW5kaWYK
ICAgICBpbnQgaW5kZXgsIGNvdW50OwogICAgIEJPT0wgY2FsbFN1cGVyID0gWUVTOwotICAgIGF1
dG8qIGNvcmVGcmFtZSA9IFtzZWxmIF93ZWJfZnJhbWVdOworICAgIGF1dG8gY29yZUZyYW1lID0g
W3NlbGYgX3dlYl9mcmFtZV07CiAgICAgQk9PTCBtYWludGFpbnNCYWNrRm9yd2FyZExpc3QgPSBj
b3JlRnJhbWUgJiYgc3RhdGljX2Nhc3Q8QmFja0ZvcndhcmRMaXN0Jj4oY29yZUZyYW1lLT5wYWdl
KCktPmJhY2tGb3J3YXJkKCkuY2xpZW50KCkpLmVuYWJsZWQoKSA/IFlFUyA6IE5POwogCiAgICAg
Y291bnQgPSBbY2hhcmFjdGVycyBsZW5ndGhdOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExl
Z2FjeS9tYWMvV2ViVmlldy9XZWJGdWxsU2NyZWVuQ29udHJvbGxlci5tbSBiL1NvdXJjZS9XZWJL
aXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViRnVsbFNjcmVlbkNvbnRyb2xsZXIubW0KaW5kZXggMzZm
N2Y4MmU3N2YxMDEzYmM4MzU2ODcyY2M3NDdlMjNiNmU1ZmJhNy4uMTdiNDIyZDNhYzgwMzdlZTUx
OWVlOGQ4Nzg5NDQ5ODFjNmQ3ZDlhMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9t
YWMvV2ViVmlldy9XZWJGdWxsU2NyZWVuQ29udHJvbGxlci5tbQorKysgYi9Tb3VyY2UvV2ViS2l0
TGVnYWN5L21hYy9XZWJWaWV3L1dlYkZ1bGxTY3JlZW5Db250cm9sbGVyLm1tCkBAIC02Myw3ICs2
Myw3IEBAIHN0YXRpYyBXZWJDb3JlOjpJbnRSZWN0IHNjcmVlblJlY3RPZkNvbnRlbnRzKFdlYkNv
cmU6OkVsZW1lbnQqIGVsZW1lbnQpCiBAaW50ZXJmYWNlIFdlYkZ1bGxTY3JlZW5Db250cm9sbGVy
KFByaXZhdGUpPE5TQW5pbWF0aW9uRGVsZWdhdGU+CiAtICh2b2lkKV91cGRhdGVNZW51QW5kRG9j
a0ZvckZ1bGxTY3JlZW47CiAtICh2b2lkKV9zd2FwVmlldzooTlNWaWV3Kil2aWV3IHdpdGg6KE5T
Vmlldyopb3RoZXJWaWV3OwotLSAoV2ViQ29yZTo6RG9jdW1lbnQqKV9kb2N1bWVudDsKKy0gKE5h
a2VkUHRyPFdlYkNvcmU6OkRvY3VtZW50PilfZG9jdW1lbnQ7CiAtIChXZWJDb3JlOjpGdWxsc2Ny
ZWVuTWFuYWdlciopX21hbmFnZXI7CiAtICh2b2lkKV9zdGFydEVudGVyRnVsbFNjcmVlbkFuaW1h
dGlvbldpdGhEdXJhdGlvbjooTlNUaW1lSW50ZXJ2YWwpZHVyYXRpb247CiAtICh2b2lkKV9zdGFy
dEV4aXRGdWxsU2NyZWVuQW5pbWF0aW9uV2l0aER1cmF0aW9uOihOU1RpbWVJbnRlcnZhbClkdXJh
dGlvbjsKQEAgLTQ1MCw3ICs0NTAsNyBAQCAtICh2b2lkKV91cGRhdGVNZW51QW5kRG9ja0ZvckZ1
bGxTY3JlZW4KICNwcmFnbWEgbWFyayAtCiAjcHJhZ21hIG1hcmsgVXRpbGl0eSBGdW5jdGlvbnMK
IAotLSAoV2ViQ29yZTo6RG9jdW1lbnQqKV9kb2N1bWVudAorLSAoTmFrZWRQdHI8V2ViQ29yZTo6
RG9jdW1lbnQ+KV9kb2N1bWVudAogewogICAgIHJldHVybiAmX2VsZW1lbnQtPmRvY3VtZW50KCk7
CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYkhUTUxW
aWV3Lm1tIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJIVE1MVmlldy5tbQpp
bmRleCAwZmY5ZTMxNWIwNjNjMWZmZjI3Mzk0NjAxOGI2MGY1YTAyYjcyODc1Li5iMmExZDA4NTkz
OGVmM2U3ZDIyNTlmZWYxNjZkZGJjZjUzODk3ZjhkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
TGVnYWN5L21hYy9XZWJWaWV3L1dlYkhUTUxWaWV3Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdh
Y3kvbWFjL1dlYlZpZXcvV2ViSFRNTFZpZXcubW0KQEAgLTE0Myw2ICsxNDMsNyBAQAogI2ltcG9y
dCA8d3RmL0Jsb2NrT2JqQ0V4Y2VwdGlvbnMuaD4KICNpbXBvcnQgPHd0Zi9NYWluVGhyZWFkLmg+
CiAjaW1wb3J0IDx3dGYvTWF0aEV4dHJhcy5oPgorI2ltcG9ydCA8d3RmL05ha2VkUHRyLmg+CiAj
aW1wb3J0IDx3dGYvT2JqQ1J1bnRpbWVFeHRyYXMuaD4KICNpbXBvcnQgPHd0Zi9SdW5Mb29wLmg+
CiAjaW1wb3J0IDx3dGYvU3lzdGVtVHJhY2luZy5oPgpAQCAtMjM2LDExICsyMzcsMTEgQEAgdXNp
bmcgV2ViRXZlbnQgPSBOU0V2ZW50OwogY29uc3QgYXV0byBXZWJFdmVudE1vdXNlRG93biA9IE5T
RXZlbnRUeXBlTGVmdE1vdXNlRG93bjsKIAogQGludGVyZmFjZSBXZWJNZW51VGFyZ2V0IDogTlNP
YmplY3QgewotICAgIFdlYkNvcmU6OkNvbnRleHRNZW51Q29udHJvbGxlciogX21lbnVDb250cm9s
bGVyOworICAgIE5ha2VkUHRyPFdlYkNvcmU6OkNvbnRleHRNZW51Q29udHJvbGxlcj4gX21lbnVD
b250cm9sbGVyOwogfQogKyAoV2ViTWVudVRhcmdldCopc2hhcmVkTWVudVRhcmdldDsKLS0gKFdl
YkNvcmU6OkNvbnRleHRNZW51Q29udHJvbGxlciopbWVudUNvbnRyb2xsZXI7Ci0tICh2b2lkKXNl
dE1lbnVDb250cm9sbGVyOihXZWJDb3JlOjpDb250ZXh0TWVudUNvbnRyb2xsZXIqKW1lbnVDb250
cm9sbGVyOworLSAoTmFrZWRQdHI8V2ViQ29yZTo6Q29udGV4dE1lbnVDb250cm9sbGVyPiltZW51
Q29udHJvbGxlcjsKKy0gKHZvaWQpc2V0TWVudUNvbnRyb2xsZXI6KE5ha2VkUHRyPFdlYkNvcmU6
OkNvbnRleHRNZW51Q29udHJvbGxlcj4pbWVudUNvbnRyb2xsZXI7CiAtICh2b2lkKWZvcndhcmRD
b250ZXh0TWVudUFjdGlvbjooaWQpc2VuZGVyOwogQGVuZAogCkBAIC02MjIsMTIgKzYyMywxMiBA
QCArIChXZWJNZW51VGFyZ2V0ICopc2hhcmVkTWVudVRhcmdldAogICAgIHJldHVybiB0YXJnZXQ7
CiB9CiAKLS0gKFdlYkNvcmU6OkNvbnRleHRNZW51Q29udHJvbGxlciopbWVudUNvbnRyb2xsZXIK
Ky0gKE5ha2VkUHRyPFdlYkNvcmU6OkNvbnRleHRNZW51Q29udHJvbGxlcj4pbWVudUNvbnRyb2xs
ZXIKIHsKICAgICByZXR1cm4gX21lbnVDb250cm9sbGVyOwogfQogCi0tICh2b2lkKXNldE1lbnVD
b250cm9sbGVyOihXZWJDb3JlOjpDb250ZXh0TWVudUNvbnRyb2xsZXIqKW1lbnVDb250cm9sbGVy
CistICh2b2lkKXNldE1lbnVDb250cm9sbGVyOihOYWtlZFB0cjxXZWJDb3JlOjpDb250ZXh0TWVu
dUNvbnRyb2xsZXI+KW1lbnVDb250cm9sbGVyCiB7CiAgICAgX21lbnVDb250cm9sbGVyID0gbWVu
dUNvbnRyb2xsZXI7CiB9CkBAIC05ODcsNyArOTg4LDcgQEAgQHB1YmxpYwogICAgIFJldGFpblB0
cjxXZWJEYXRhU291cmNlPiBkYXRhU291cmNlOwogCiAjaWYgUExBVEZPUk0oTUFDKQotICAgIFdl
YkNvcmU6OkNhY2hlZEltYWdlKiBwcm9taXNlZERyYWdUSUZGRGF0YVNvdXJjZTsKKyAgICBOYWtl
ZFB0cjxXZWJDb3JlOjpDYWNoZWRJbWFnZT4gcHJvbWlzZWREcmFnVElGRkRhdGFTb3VyY2U7CiAj
ZW5kaWYKIAogICAgIFNFTCBzZWxlY3RvckZvckRvQ29tbWFuZEJ5U2VsZWN0b3I7CkBAIC00MzU4
LDcgKzQzNTksNyBAQCBBTExPV19ERVBSRUNBVEVEX0lNUExFTUVOVEFUSU9OU19FTkQKICAgICBO
U0ZpbGVXcmFwcGVyICp3cmFwcGVyID0gbmlsOwogICAgIE5TVVJMICpkcmFnZ2luZ0VsZW1lbnRV
UkwgPSBuaWw7CiAgICAgCi0gICAgaWYgKGF1dG8qIHRpZmZSZXNvdXJjZSA9IF9wcml2YXRlLT5w
cm9taXNlZERyYWdUSUZGRGF0YVNvdXJjZSkgeworICAgIGlmIChhdXRvIHRpZmZSZXNvdXJjZSA9
IF9wcml2YXRlLT5wcm9taXNlZERyYWdUSUZGRGF0YVNvdXJjZSkgewogICAgICAgICBpZiAoYXV0
byogYnVmZmVyID0gdGlmZlJlc291cmNlLT5yZXNvdXJjZUJ1ZmZlcigpKSB7CiAgICAgICAgICAg
ICBOU1VSTFJlc3BvbnNlICpyZXNwb25zZSA9IHRpZmZSZXNvdXJjZS0+cmVzcG9uc2UoKS5uc1VS
TFJlc3BvbnNlKCk7CiAgICAgICAgICAgICBkcmFnZ2luZ0VsZW1lbnRVUkwgPSBbcmVzcG9uc2Ug
VVJMXTsKQEAgLTU5ODMsNyArNTk4NCw3IEBAIC0gKHZvaWQpX2V4ZWN1dGVTYXZlZEtleXByZXNz
Q29tbWFuZHMKIAogI2lmIFBMQVRGT1JNKE1BQykKIAotLSAoQk9PTClfaW50ZXJwcmV0S2V5RXZl
bnQ6KFdlYkNvcmU6OktleWJvYXJkRXZlbnQqKWV2ZW50IHNhdmluZ0NvbW1hbmRzOihCT09MKXNh
dmluZ0NvbW1hbmRzCistIChCT09MKV9pbnRlcnByZXRLZXlFdmVudDooTmFrZWRQdHI8V2ViQ29y
ZTo6S2V5Ym9hcmRFdmVudD4pZXZlbnQgc2F2aW5nQ29tbWFuZHM6KEJPT0wpc2F2aW5nQ29tbWFu
ZHMKIHsKICAgICBBU1NFUlQoY29yZShbc2VsZiBfZnJhbWVdKSA9PSBkb3duY2FzdDxXZWJDb3Jl
OjpOb2RlPihldmVudC0+dGFyZ2V0KCkpLT5kb2N1bWVudCgpLmZyYW1lKCkpOwogICAgIEFTU0VS
VCghc2F2aW5nQ29tbWFuZHMgfHwgZXZlbnQtPmtleXByZXNzQ29tbWFuZHMoKS5pc0VtcHR5KCkp
OyAvLyBTYXZlIGNvbW1hbmRzIG9uY2UgZm9yIGVhY2ggZXZlbnQuCkBAIC02MTEyLDcgKzYxMTMs
NyBAQCAtIChCT09MKV9oYW5kbGVFZGl0aW5nS2V5RXZlbnQ6KFdlYkNvcmU6OktleWJvYXJkRXZl
bnQgKil3Y0V2ZW50CiAKICNpZiBQTEFURk9STShNQUMpCiAKLS0gKHZvaWQpc2V0UHJvbWlzZWRE
cmFnVElGRkRhdGFTb3VyY2U6KFdlYkNvcmU6OkNhY2hlZEltYWdlKilzb3VyY2UKKy0gKHZvaWQp
c2V0UHJvbWlzZWREcmFnVElGRkRhdGFTb3VyY2U6KE5ha2VkUHRyPFdlYkNvcmU6OkNhY2hlZElt
YWdlPilzb3VyY2UKIHsKICAgICBpZiAoc291cmNlKQogICAgICAgICBzb3VyY2UtPmFkZENsaWVu
dChwcm9taXNlZERhdGFDbGllbnQoKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5
L21hYy9XZWJWaWV3L1dlYkhUTUxWaWV3SW50ZXJuYWwuaCBiL1NvdXJjZS9XZWJLaXRMZWdhY3kv
bWFjL1dlYlZpZXcvV2ViSFRNTFZpZXdJbnRlcm5hbC5oCmluZGV4IDkxNmQzMzY5ZmJlYmZjZjhm
ZWU2MDlmYWQ4YzJiNTFhMTA1YWJiZWEuLjZmNWU1N2QzZmNlNzM0YzU2ZjYyY2IzZTcyM2NmOTQ1
ZTUxM2JjMGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2Vi
SFRNTFZpZXdJbnRlcm5hbC5oCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcv
V2ViSFRNTFZpZXdJbnRlcm5hbC5oCkBAIC02MSwxMyArNjEsMTMgQEAgbmFtZXNwYWNlIFdlYkNv
cmUgewogCiAjaWYgUExBVEZPUk0oTUFDKQogLSAodm9pZClfbG9va1VwSW5EaWN0aW9uYXJ5RnJv
bU1lbnU6KGlkKXNlbmRlcjsKLS0gKEJPT0wpX2ludGVycHJldEtleUV2ZW50OihXZWJDb3JlOjpL
ZXlib2FyZEV2ZW50ICopZXZlbnQgc2F2aW5nQ29tbWFuZHM6KEJPT0wpc2F2aW5nQ29tbWFuZHM7
CistIChCT09MKV9pbnRlcnByZXRLZXlFdmVudDooTmFrZWRQdHI8V2ViQ29yZTo6S2V5Ym9hcmRF
dmVudD4pZXZlbnQgc2F2aW5nQ29tbWFuZHM6KEJPT0wpc2F2aW5nQ29tbWFuZHM7CiAtIChET01E
b2N1bWVudEZyYWdtZW50ICopX2RvY3VtZW50RnJhZ21lbnRGcm9tUGFzdGVib2FyZDooTlNQYXN0
ZWJvYXJkICopcGFzdGVib2FyZDsKIC0gKE5TRXZlbnQgKilfbW91c2VEb3duRXZlbnQ7CiAtIChC
T09MKWlzR3JhbW1hckNoZWNraW5nRW5hYmxlZDsKIC0gKHZvaWQpc2V0R3JhbW1hckNoZWNraW5n
RW5hYmxlZDooQk9PTClmbGFnOwogLSAodm9pZCl0b2dnbGVHcmFtbWFyQ2hlY2tpbmc6KGlkKXNl
bmRlcjsKLS0gKHZvaWQpc2V0UHJvbWlzZWREcmFnVElGRkRhdGFTb3VyY2U6KFdlYkNvcmU6OkNh
Y2hlZEltYWdlKilzb3VyY2U7CistICh2b2lkKXNldFByb21pc2VkRHJhZ1RJRkZEYXRhU291cmNl
OihOYWtlZFB0cjxXZWJDb3JlOjpDYWNoZWRJbWFnZT4pc291cmNlOwogI2VuZGlmCiAKICNpZiBQ
TEFURk9STShJT1NfRkFNSUxZKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMv
V2ViVmlldy9XZWJOb3RpZmljYXRpb24ubW0gYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJW
aWV3L1dlYk5vdGlmaWNhdGlvbi5tbQppbmRleCAxMTU3NTYwM2NlNzlhNWU4YTg0YjYzYTQ4ZDI4
YmQ1YWE3Mjk0NzNjLi4xNmU4OWM0YmMzYTc3YjU2ODYwNjk3NGNhNDA2OTZkYzJjYjQ3ZjBjIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYk5vdGlmaWNhdGlv
bi5tbQorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYk5vdGlmaWNhdGlv
bi5tbQpAQCAtNjIsNyArNjIsNyBAQCBOb3RpZmljYXRpb24qIGNvcmUoV2ViTm90aWZpY2F0aW9u
ICpub3RpZmljYXRpb24pCiAgICAgcmV0dXJuIG5vdGlmaWNhdGlvbi0+X3ByaXZhdGUtPl9pbnRl
cm5hbC5nZXQoKTsKIH0KIAotLSAoaWQpaW5pdFdpdGhDb3JlTm90aWZpY2F0aW9uOihOb3RpZmlj
YXRpb24qKWNvcmVOb3RpZmljYXRpb24gbm90aWZpY2F0aW9uSUQ6KHVpbnQ2NF90KW5vdGlmaWNh
dGlvbklECistIChpZClpbml0V2l0aENvcmVOb3RpZmljYXRpb246KE5ha2VkUHRyPE5vdGlmaWNh
dGlvbj4pY29yZU5vdGlmaWNhdGlvbiBub3RpZmljYXRpb25JRDoodWludDY0X3Qpbm90aWZpY2F0
aW9uSUQKIHsKICAgICBpZiAoIShzZWxmID0gW3N1cGVyIGluaXRdKSkKICAgICAgICAgcmV0dXJu
IG5pbDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViTm90
aWZpY2F0aW9uSW50ZXJuYWwuaCBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2Vi
Tm90aWZpY2F0aW9uSW50ZXJuYWwuaAppbmRleCBhNzc5YzA3NTM1YmI0YzU5MWRmNzE5ODE0ODI2
YzZiNzhkMjg4MjQ1Li40YTE3YzdkYTBmN2Q3YjQ3NmNlMGIyYzM1ZDE3ZWQ1NDdkMWFlMzE4IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYk5vdGlmaWNhdGlv
bkludGVybmFsLmgKKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJOb3Rp
ZmljYXRpb25JbnRlcm5hbC5oCkBAIC0yNyw2ICsyNyw3IEBACiAgKi8KIAogI2ltcG9ydCAiV2Vi
Tm90aWZpY2F0aW9uLmgiCisjaW1wb3J0IDx3dGYvTmFrZWRQdHIuaD4KIAogI2lmIEVOQUJMRShO
T1RJRklDQVRJT05TKQogCkBAIC0zNyw3ICszOCw3IEBAIGNsYXNzIE5vdGlmaWNhdGlvbjsKIFdl
YkNvcmU6Ok5vdGlmaWNhdGlvbiogY29yZShXZWJOb3RpZmljYXRpb24gKik7CiAKIEBpbnRlcmZh
Y2UgV2ViTm90aWZpY2F0aW9uIChXZWJOb3RpZmljYXRpb25JbnRlcm5hbCkKLS0gKGlkKWluaXRX
aXRoQ29yZU5vdGlmaWNhdGlvbjooV2ViQ29yZTo6Tm90aWZpY2F0aW9uKiljb3JlTm90aWZpY2F0
aW9uIG5vdGlmaWNhdGlvbklEOih1aW50NjRfdClub3RpZmljYXRpb25JRDsKKy0gKGlkKWluaXRX
aXRoQ29yZU5vdGlmaWNhdGlvbjooTmFrZWRQdHI8V2ViQ29yZTo6Tm90aWZpY2F0aW9uPiljb3Jl
Tm90aWZpY2F0aW9uIG5vdGlmaWNhdGlvbklEOih1aW50NjRfdClub3RpZmljYXRpb25JRDsKIEBl
bmQKIAogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3
L1dlYlJlc291cmNlLm1tIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJSZXNv
dXJjZS5tbQppbmRleCA4MjZhNDM4NjY0ODc3NmFiYmYzYmRhODBhYTkxNDIxYmU4NDlkYmVhLi43
NzdjYTBlNzFhZjYxZGVjODMwYTViMjYxOTdlOGVmNjdkN2Q5ZWYzIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYlJlc291cmNlLm1tCisrKyBiL1NvdXJjZS9X
ZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViUmVzb3VyY2UubW0KQEAgLTI2MSw3ICsyNjEsNyBA
QCAtIChpZClfaW5pdFdpdGhDb3JlUmVzb3VyY2U6KFJlZjxBcmNoaXZlUmVzb3VyY2U+JiYpY29y
ZVJlc291cmNlCiAgICAgcmV0dXJuIHNlbGY7CiB9CiAKLS0gKFdlYkNvcmU6OkFyY2hpdmVSZXNv
dXJjZSYpX2NvcmVSZXNvdXJjZQorLSAoTmFrZWRSZWY8V2ViQ29yZTo6QXJjaGl2ZVJlc291cmNl
PilfY29yZVJlc291cmNlCiB7CiAgICAgcmV0dXJuICpfcHJpdmF0ZS0+Y29yZVJlc291cmNlOwog
fQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJSZXNvdXJj
ZUludGVybmFsLmggYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYlJlc291cmNl
SW50ZXJuYWwuaAppbmRleCA4MGM5NzZlYjZiMzY1NGZjMWM2ODhjMmE5NmI4M2JkYjdhZjc3MjUx
Li5lYWNiMWE1MjllNTBiMjdjN2VmZDE3NDQxYmMwNjkxNTZmOWI1ZDVjIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYlJlc291cmNlSW50ZXJuYWwuaAorKysg
Yi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYlJlc291cmNlSW50ZXJuYWwuaApA
QCAtMjcsNiArMjcsNyBAQAogICovCiAKICNpbXBvcnQgIldlYlJlc291cmNlUHJpdmF0ZS5oIgor
I2ltcG9ydCA8d3RmL05ha2VkUmVmLmg+CiAjaW1wb3J0IDx3dGYvUmVmLmg+CiAKIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKQEAgLTM1LDUgKzM2LDUgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiBAaW50
ZXJmYWNlIFdlYlJlc291cmNlIChXZWJSZXNvdXJjZUludGVybmFsKQogLSAoaWQpX2luaXRXaXRo
Q29yZVJlc291cmNlOihSZWY8V2ViQ29yZTo6QXJjaGl2ZVJlc291cmNlPiYmKWNvcmVSZXNvdXJj
ZTsKLS0gKFdlYkNvcmU6OkFyY2hpdmVSZXNvdXJjZSYpX2NvcmVSZXNvdXJjZTsKKy0gKE5ha2Vk
UmVmPFdlYkNvcmU6OkFyY2hpdmVSZXNvdXJjZT4pX2NvcmVSZXNvdXJjZTsKIEBlbmQKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViVmlkZW9GdWxsc2NyZWVu
Q29udHJvbGxlci5oIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJWaWRlb0Z1
bGxzY3JlZW5Db250cm9sbGVyLmgKaW5kZXggZjU3NTc4YmZjMDAyNjRlNGY0MWI1ZWU5ZjY4OGEy
NmMyOGFkNDRhMi4uZThmYjU2Mjk1MDk1YmYzN2E0ZDI4ODA3NTA0NmYzNWJkZDJlMDg1YSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJWaWRlb0Z1bGxzY3Jl
ZW5Db250cm9sbGVyLmgKKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJW
aWRlb0Z1bGxzY3JlZW5Db250cm9sbGVyLmgKQEAgLTI2LDYgKzI2LDcgQEAKICNpZiBQTEFURk9S
TShNQUMpICYmIEVOQUJMRShWSURFTykKIAogI2ltcG9ydCA8QXBwS2l0L05TV2luZG93Q29udHJv
bGxlci5oPgorI2ltcG9ydCA8d3RmL05ha2VkUHRyLmg+CiAjaW1wb3J0IDx3dGYvUmVmUHRyLmg+
CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKQEAgLTQ3LDggKzQ4LDggQEAgY2xhc3MgSFRNTFZpZGVv
RWxlbWVudDsKICAgICBCT09MIF9mb3JjZURpc2FibGVBbmltYXRpb247CiB9CiAKLS0gKHZvaWQp
c2V0VmlkZW9FbGVtZW50OihXZWJDb3JlOjpIVE1MVmlkZW9FbGVtZW50ICopdmlkZW9FbGVtZW50
OwotLSAoV2ViQ29yZTo6SFRNTFZpZGVvRWxlbWVudCAqKXZpZGVvRWxlbWVudDsKKy0gKHZvaWQp
c2V0VmlkZW9FbGVtZW50OihOYWtlZFB0cjxXZWJDb3JlOjpIVE1MVmlkZW9FbGVtZW50Pil2aWRl
b0VsZW1lbnQ7CistIChOYWtlZFB0cjxXZWJDb3JlOjpIVE1MVmlkZW9FbGVtZW50Pil2aWRlb0Vs
ZW1lbnQ7CiAKIC0gKHZvaWQpZW50ZXJGdWxsc2NyZWVuOihOU1NjcmVlbiAqKXNjcmVlbjsKIC0g
KHZvaWQpZXhpdEZ1bGxzY3JlZW47CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21h
Yy9XZWJWaWV3L1dlYlZpZGVvRnVsbHNjcmVlbkNvbnRyb2xsZXIubW0gYi9Tb3VyY2UvV2ViS2l0
TGVnYWN5L21hYy9XZWJWaWV3L1dlYlZpZGVvRnVsbHNjcmVlbkNvbnRyb2xsZXIubW0KaW5kZXgg
MjNhYWMzNDQyNmJhMDNhYjkzYjRlOTYzZjFlODJmODUxNDA0YTFjYi4uNzZiYjQ3NmFiMDQ0MDFk
ODM4NGUwYTdjN2YyYzEwZTZmMGNkYjZmYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2Fj
eS9tYWMvV2ViVmlldy9XZWJWaWRlb0Z1bGxzY3JlZW5Db250cm9sbGVyLm1tCisrKyBiL1NvdXJj
ZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViVmlkZW9GdWxsc2NyZWVuQ29udHJvbGxlci5t
bQpAQCAtOTMsMTQgKzkzLDE0IEBAIC0gKHZvaWQpd2luZG93RGlkTG9hZAogICAgIFtbTlNOb3Rp
ZmljYXRpb25DZW50ZXIgZGVmYXVsdENlbnRlcl0gYWRkT2JzZXJ2ZXI6c2VsZiBzZWxlY3RvcjpA
c2VsZWN0b3IoYXBwbGljYXRpb25EaWRDaGFuZ2VTY3JlZW5QYXJhbWV0ZXJzOikgbmFtZTpOU0Fw
cGxpY2F0aW9uRGlkQ2hhbmdlU2NyZWVuUGFyYW1ldGVyc05vdGlmaWNhdGlvbiBvYmplY3Q6TlNB
cHBdOwogfQogCi0tIChXZWJDb3JlOjpIVE1MVmlkZW9FbGVtZW50ICopdmlkZW9FbGVtZW50Cist
IChOYWtlZFB0cjxXZWJDb3JlOjpIVE1MVmlkZW9FbGVtZW50Pil2aWRlb0VsZW1lbnQKIHsKICAg
ICByZXR1cm4gX3ZpZGVvRWxlbWVudC5nZXQoKTsKIH0KIAogLy8gRklYTUU6IFRoaXMgbWV0aG9k
IGlzIG5vdCByZWFsbHkgYSBzZXR0ZXIuIFRoZSBjYWxsZXIgcmVsaWVzIG9uIGl0cyBzaWRlIGVm
ZmVjdHMsIGFuZCBpdCdzCiAvLyBjYWxsZWQgb25jZSBlYWNoIHRpbWUgd2UgZW50ZXIgZnVsbCBz
Y3JlZW4uIFNvIGl0IHNob3VsZCBoYXZlIGEgZGlmZmVyZW50IG5hbWUuCi0tICh2b2lkKXNldFZp
ZGVvRWxlbWVudDooV2ViQ29yZTo6SFRNTFZpZGVvRWxlbWVudCAqKXZpZGVvRWxlbWVudAorLSAo
dm9pZClzZXRWaWRlb0VsZW1lbnQ6KE5ha2VkUHRyPFdlYkNvcmU6OkhUTUxWaWRlb0VsZW1lbnQ+
KXZpZGVvRWxlbWVudAogewogICAgIEFTU0VSVCh2aWRlb0VsZW1lbnQpOwogICAgIF92aWRlb0Vs
ZW1lbnQgPSB2aWRlb0VsZW1lbnQ7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21h
Yy9XZWJWaWV3L1dlYlZpZGVvRnVsbHNjcmVlbkhVRFdpbmRvd0NvbnRyb2xsZXIuaCBiL1NvdXJj
ZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViVmlkZW9GdWxsc2NyZWVuSFVEV2luZG93Q29u
dHJvbGxlci5oCmluZGV4IGY2N2ZlYWUxMzQyZTZhOTc3YzU2ZmIxZjVjNTA0NDIxMjAwZGQyMTku
LmZmMTg0YWQ0MTA2ZmMxNzhiNjcyNjY1OTI1ZmI3YmRmZWFiYzUyZDUgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViVmlkZW9GdWxsc2NyZWVuSFVEV2luZG93
Q29udHJvbGxlci5oCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViVmlk
ZW9GdWxsc2NyZWVuSFVEV2luZG93Q29udHJvbGxlci5oCkBAIC0zMSw2ICszMSw3IEBACiAjaW1w
b3J0IDxBcHBLaXQvTlNUcmFja2luZ0FyZWEuaD4KICNpbXBvcnQgPEFwcEtpdC9OU1dpbmRvdy5o
PgogI2ltcG9ydCA8QXBwS2l0L05TV2luZG93Q29udHJvbGxlci5oPgorI2ltcG9ydCA8d3RmL05h
a2VkUHRyLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIGNsYXNzIEhUTUxWaWRlb0VsZW1lbnQ7
CkBAIC02NCw3ICs2NSw3IEBAIGNsYXNzIEhUTUxWaWRlb0VsZW1lbnQ7CiAKIEBwcm90b2NvbCBX
ZWJWaWRlb0Z1bGxzY3JlZW5IVURXaW5kb3dDb250cm9sbGVyRGVsZWdhdGUgPE5TT2JqZWN0Pgog
LSAodm9pZClyZXF1ZXN0RXhpdEZ1bGxzY3JlZW47Ci0tIChXZWJDb3JlOjpIVE1MVmlkZW9FbGVt
ZW50Kil2aWRlb0VsZW1lbnQ7CistIChOYWtlZFB0cjxXZWJDb3JlOjpIVE1MVmlkZW9FbGVtZW50
Pil2aWRlb0VsZW1lbnQ7CiBAZW5kCiAKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dExlZ2FjeS9tYWMvV2ViVmlldy9XZWJWaWV3Lm1tIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMv
V2ViVmlldy9XZWJWaWV3Lm1tCmluZGV4IDRjNDE4NjRkODlmNDA1NjdlZDgxZWQyZWZlZmI1MDFm
Njc1M2RiODQuLmVhYjA2ODU0MjkxYzM2NGVkMWFhYmJhYzczNDI5MjU1MThjMTEyOWMgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViVmlldy5tbQorKysgYi9T
b3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYlZpZXcubW0KQEAgLTI2MjEsNyArMjYy
MSw3IEBAIC0gKHZvaWQpX3NldEhvc3RBcHBsaWNhdGlvblByb2Nlc3NJZGVudGlmaWVyOihwaWRf
dClwaWQgYXVkaXRUb2tlbjooYXVkaXRfdG9rZW5fCiAjZW5kaWYgLy8gUExBVEZPUk0oSU9TX0ZB
TUlMWSkKICNlbmRpZiAvLyBFTkFCTEUoUkVNT1RFX0lOU1BFQ1RPUikKIAotLSAoV2ViQ29yZTo6
UGFnZSopcGFnZQorLSAoTmFrZWRQdHI8V2ViQ29yZTo6UGFnZT4pcGFnZQogewogICAgIHJldHVy
biBfcHJpdmF0ZS0+cGFnZTsKIH0KQEAgLTkzMTIsNyArOTMxMiw3IEBAIC0gKHZvaWQpX3NjaGVk
dWxlTGF5ZXJGbHVzaEZvclBlbmRpbmdUaWxlQ2FjaGVSZXBhaW50CiAjZW5kaWYKIAogI2lmIEVO
QUJMRShWSURFTykKLS0gKHZvaWQpX2VudGVyVmlkZW9GdWxsc2NyZWVuRm9yVmlkZW9FbGVtZW50
OihXZWJDb3JlOjpIVE1MVmlkZW9FbGVtZW50Kil2aWRlb0VsZW1lbnQgbW9kZTooV2ViQ29yZTo6
SFRNTE1lZGlhRWxlbWVudEVudW1zOjpWaWRlb0Z1bGxzY3JlZW5Nb2RlKW1vZGUKKy0gKHZvaWQp
X2VudGVyVmlkZW9GdWxsc2NyZWVuRm9yVmlkZW9FbGVtZW50OihOYWtlZFB0cjxXZWJDb3JlOjpI
VE1MVmlkZW9FbGVtZW50Pil2aWRlb0VsZW1lbnQgbW9kZTooV2ViQ29yZTo6SFRNTE1lZGlhRWxl
bWVudEVudW1zOjpWaWRlb0Z1bGxzY3JlZW5Nb2RlKW1vZGUKIHsKICAgICBpZiAoX3ByaXZhdGUt
PmZ1bGxzY3JlZW5Db250cm9sbGVyKSB7CiAgICAgICAgIGlmIChbX3ByaXZhdGUtPmZ1bGxzY3Jl
ZW5Db250cm9sbGVyIHZpZGVvRWxlbWVudF0gPT0gdmlkZW9FbGVtZW50KSB7CkBAIC05MzYzLDE0
ICs5MzYzLDE0IEBAIC0gKEJPT0wpX2hhc0FjdGl2ZVZpZGVvRm9yQ29udHJvbHNJbnRlcmZhY2UK
ICAgICByZXR1cm4gbWVkaWFFbGVtZW50LT5oYXNBdWRpbygpIHx8IG1lZGlhRWxlbWVudC0+aGFz
VmlkZW8oKTsKIH0KIAotLSAodm9pZClfc2V0VXBQbGF5YmFja0NvbnRyb2xzTWFuYWdlckZvck1l
ZGlhRWxlbWVudDooV2ViQ29yZTo6SFRNTE1lZGlhRWxlbWVudCYpbWVkaWFFbGVtZW50CistICh2
b2lkKV9zZXRVcFBsYXliYWNrQ29udHJvbHNNYW5hZ2VyRm9yTWVkaWFFbGVtZW50OihOYWtlZFJl
ZjxXZWJDb3JlOjpIVE1MTWVkaWFFbGVtZW50PiltZWRpYUVsZW1lbnQKIHsKLSAgICBpZiAoX3By
aXZhdGUtPnBsYXliYWNrU2Vzc2lvbk1vZGVsICYmIF9wcml2YXRlLT5wbGF5YmFja1Nlc3Npb25N
b2RlbC0+bWVkaWFFbGVtZW50KCkgPT0gJm1lZGlhRWxlbWVudCkKKyAgICBpZiAoX3ByaXZhdGUt
PnBsYXliYWNrU2Vzc2lvbk1vZGVsICYmIF9wcml2YXRlLT5wbGF5YmFja1Nlc3Npb25Nb2RlbC0+
bWVkaWFFbGVtZW50KCkgPT0gbWVkaWFFbGVtZW50LnB0cigpKQogICAgICAgICByZXR1cm47CiAK
ICAgICBpZiAoIV9wcml2YXRlLT5wbGF5YmFja1Nlc3Npb25Nb2RlbCkKICAgICAgICAgX3ByaXZh
dGUtPnBsYXliYWNrU2Vzc2lvbk1vZGVsID0gV2ViQ29yZTo6UGxheWJhY2tTZXNzaW9uTW9kZWxN
ZWRpYUVsZW1lbnQ6OmNyZWF0ZSgpOwotICAgIF9wcml2YXRlLT5wbGF5YmFja1Nlc3Npb25Nb2Rl
bC0+c2V0TWVkaWFFbGVtZW50KCZtZWRpYUVsZW1lbnQpOworICAgIF9wcml2YXRlLT5wbGF5YmFj
a1Nlc3Npb25Nb2RlbC0+c2V0TWVkaWFFbGVtZW50KG1lZGlhRWxlbWVudC5wdHIoKSk7CiAKICAg
ICBpZiAoIV9wcml2YXRlLT5wbGF5YmFja1Nlc3Npb25JbnRlcmZhY2UpCiAgICAgICAgIF9wcml2
YXRlLT5wbGF5YmFja1Nlc3Npb25JbnRlcmZhY2UgPSBXZWJDb3JlOjpQbGF5YmFja1Nlc3Npb25J
bnRlcmZhY2VNYWM6OmNyZWF0ZSgqX3ByaXZhdGUtPnBsYXliYWNrU2Vzc2lvbk1vZGVsKTsKQEAg
LTkzOTQsNyArOTM5NCw3IEBAIC0gKHZvaWQpX2NsZWFyUGxheWJhY2tDb250cm9sc01hbmFnZXIK
ICNlbmRpZiAvLyBFTkFCTEUoVklERU8pCiAKICNpZiBFTkFCTEUoRlVMTFNDUkVFTl9BUEkpICYm
ICFQTEFURk9STShJT1NfRkFNSUxZKQotLSAoQk9PTClfc3VwcG9ydHNGdWxsU2NyZWVuRm9yRWxl
bWVudDooY29uc3QgV2ViQ29yZTo6RWxlbWVudCopZWxlbWVudCB3aXRoS2V5Ym9hcmQ6KEJPT0wp
d2l0aEtleWJvYXJkCistIChCT09MKV9zdXBwb3J0c0Z1bGxTY3JlZW5Gb3JFbGVtZW50OihOYWtl
ZFB0cjxjb25zdCBXZWJDb3JlOjpFbGVtZW50PillbGVtZW50IHdpdGhLZXlib2FyZDooQk9PTCl3
aXRoS2V5Ym9hcmQKIHsKICAgICBpZiAoIVtbc2VsZiBwcmVmZXJlbmNlc10gZnVsbFNjcmVlbkVu
YWJsZWRdKQogICAgICAgICByZXR1cm4gTk87CkBAIC05NDAyLDE3ICs5NDAyLDE3IEBAIC0gKEJP
T0wpX3N1cHBvcnRzRnVsbFNjcmVlbkZvckVsZW1lbnQ6KGNvbnN0IFdlYkNvcmU6OkVsZW1lbnQq
KWVsZW1lbnQgd2l0aEtleWJvCiAgICAgcmV0dXJuIHRydWU7CiB9CiAKLS0gKHZvaWQpX2VudGVy
RnVsbFNjcmVlbkZvckVsZW1lbnQ6KFdlYkNvcmU6OkVsZW1lbnQqKWVsZW1lbnQKKy0gKHZvaWQp
X2VudGVyRnVsbFNjcmVlbkZvckVsZW1lbnQ6KE5ha2VkUHRyPFdlYkNvcmU6OkVsZW1lbnQ+KWVs
ZW1lbnQKIHsKICAgICBpZiAoIV9wcml2YXRlLT5uZXdGdWxsc2NyZWVuQ29udHJvbGxlcikKICAg
ICAgICAgX3ByaXZhdGUtPm5ld0Z1bGxzY3JlZW5Db250cm9sbGVyID0gW1tXZWJGdWxsU2NyZWVu
Q29udHJvbGxlciBhbGxvY10gaW5pdF07CiAKLSAgICBbX3ByaXZhdGUtPm5ld0Z1bGxzY3JlZW5D
b250cm9sbGVyIHNldEVsZW1lbnQ6ZWxlbWVudF07CisgICAgW19wcml2YXRlLT5uZXdGdWxsc2Ny
ZWVuQ29udHJvbGxlciBzZXRFbGVtZW50OmVsZW1lbnQuZ2V0KCldOwogICAgIFtfcHJpdmF0ZS0+
bmV3RnVsbHNjcmVlbkNvbnRyb2xsZXIgc2V0V2ViVmlldzpzZWxmXTsKICAgICBbX3ByaXZhdGUt
Pm5ld0Z1bGxzY3JlZW5Db250cm9sbGVyIGVudGVyRnVsbFNjcmVlbjpbW3NlbGYgd2luZG93XSBz
Y3JlZW5dXTsgICAgICAgIAogfQogCi0tICh2b2lkKV9leGl0RnVsbFNjcmVlbkZvckVsZW1lbnQ6
KFdlYkNvcmU6OkVsZW1lbnQqKWVsZW1lbnQKKy0gKHZvaWQpX2V4aXRGdWxsU2NyZWVuRm9yRWxl
bWVudDooTmFrZWRQdHI8V2ViQ29yZTo6RWxlbWVudD4pZWxlbWVudAogewogICAgIGlmICghX3By
aXZhdGUtPm5ld0Z1bGxzY3JlZW5Db250cm9sbGVyKQogICAgICAgICByZXR1cm47CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYlZpZXdJbnRlcm5hbC5oIGIv
U291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJWaWV3SW50ZXJuYWwuaAppbmRleCA4
NWUyM2Y4NTc3YWY0YjZkYzI2YjBkMWJkNDc3ZWFjMmJiMWU4MDAxLi5mMWEwODY3N2FkMTE0N2Y5
MzcyMzBmMzhiYjY3NGNlY2NlZTNlMmUzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5
L21hYy9XZWJWaWV3L1dlYlZpZXdJbnRlcm5hbC5oCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kv
bWFjL1dlYlZpZXcvV2ViVmlld0ludGVybmFsLmgKQEAgLTQ1LDYgKzQ1LDggQEAKICNpbXBvcnQg
PFdlYkNvcmUvV2ViQ29yZUtleWJvYXJkVUlNb2RlLmg+CiAjaW1wb3J0IDxmdW5jdGlvbmFsPgog
I2ltcG9ydCA8d3RmL0ZvcndhcmQuaD4KKyNpbXBvcnQgPHd0Zi9OYWtlZFB0ci5oPgorI2ltcG9y
dCA8d3RmL05ha2VkUmVmLmg+CiAjaW1wb3J0IDx3dGYvUmV0YWluUHRyLmg+CiAKIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKQEAgLTI3MSwxOSArMjczLDE5IEBAIE9CSkNfQ0xBU1MgTlNUZXh0QWx0ZXJu
YXRpdmVzOwogLSAodm9pZClfaW52YWxpZGF0ZVVzZXJBZ2VudENhY2hlOwogCiAjaWYgRU5BQkxF
KFZJREVPKSAmJiBkZWZpbmVkKF9fY3BsdXNwbHVzKQotLSAodm9pZClfZW50ZXJWaWRlb0Z1bGxz
Y3JlZW5Gb3JWaWRlb0VsZW1lbnQ6KFdlYkNvcmU6OkhUTUxWaWRlb0VsZW1lbnQqKXZpZGVvRWxl
bWVudCBtb2RlOihXZWJDb3JlOjpIVE1MTWVkaWFFbGVtZW50RW51bXM6OlZpZGVvRnVsbHNjcmVl
bk1vZGUpbW9kZTsKKy0gKHZvaWQpX2VudGVyVmlkZW9GdWxsc2NyZWVuRm9yVmlkZW9FbGVtZW50
OihOYWtlZFB0cjxXZWJDb3JlOjpIVE1MVmlkZW9FbGVtZW50Pil2aWRlb0VsZW1lbnQgbW9kZToo
V2ViQ29yZTo6SFRNTE1lZGlhRWxlbWVudEVudW1zOjpWaWRlb0Z1bGxzY3JlZW5Nb2RlKW1vZGU7
CiAtICh2b2lkKV9leGl0VmlkZW9GdWxsc2NyZWVuOwogI2lmIFBMQVRGT1JNKE1BQykgJiYgRU5B
QkxFKFZJREVPX1BSRVNFTlRBVElPTl9NT0RFKQogLSAoQk9PTClfaGFzQWN0aXZlVmlkZW9Gb3JD
b250cm9sc0ludGVyZmFjZTsKLS0gKHZvaWQpX3NldFVwUGxheWJhY2tDb250cm9sc01hbmFnZXJG
b3JNZWRpYUVsZW1lbnQ6KFdlYkNvcmU6OkhUTUxNZWRpYUVsZW1lbnQmKW1lZGlhRWxlbWVudDsK
Ky0gKHZvaWQpX3NldFVwUGxheWJhY2tDb250cm9sc01hbmFnZXJGb3JNZWRpYUVsZW1lbnQ6KE5h
a2VkUmVmPFdlYkNvcmU6OkhUTUxNZWRpYUVsZW1lbnQ+KW1lZGlhRWxlbWVudDsKIC0gKHZvaWQp
X2NsZWFyUGxheWJhY2tDb250cm9sc01hbmFnZXI7CiAjZW5kaWYKICNlbmRpZgogCiAjaWYgRU5B
QkxFKEZVTExTQ1JFRU5fQVBJKSAmJiAhUExBVEZPUk0oSU9TX0ZBTUlMWSkgJiYgZGVmaW5lZChf
X2NwbHVzcGx1cykKLS0gKEJPT0wpX3N1cHBvcnRzRnVsbFNjcmVlbkZvckVsZW1lbnQ6KFdlYkNv
cmU6OkVsZW1lbnQqKWVsZW1lbnQgd2l0aEtleWJvYXJkOihCT09MKXdpdGhLZXlib2FyZDsKLS0g
KHZvaWQpX2VudGVyRnVsbFNjcmVlbkZvckVsZW1lbnQ6KFdlYkNvcmU6OkVsZW1lbnQqKWVsZW1l
bnQ7Ci0tICh2b2lkKV9leGl0RnVsbFNjcmVlbkZvckVsZW1lbnQ6KFdlYkNvcmU6OkVsZW1lbnQq
KWVsZW1lbnQ7CistIChCT09MKV9zdXBwb3J0c0Z1bGxTY3JlZW5Gb3JFbGVtZW50OihOYWtlZFB0
cjxXZWJDb3JlOjpFbGVtZW50PillbGVtZW50IHdpdGhLZXlib2FyZDooQk9PTCl3aXRoS2V5Ym9h
cmQ7CistICh2b2lkKV9lbnRlckZ1bGxTY3JlZW5Gb3JFbGVtZW50OihOYWtlZFB0cjxXZWJDb3Jl
OjpFbGVtZW50PillbGVtZW50OworLSAodm9pZClfZXhpdEZ1bGxTY3JlZW5Gb3JFbGVtZW50OihO
YWtlZFB0cjxXZWJDb3JlOjpFbGVtZW50PillbGVtZW50OwogI2VuZGlmCiAKIC8vIENvbnZlcnNp
b24gZnVuY3Rpb25zIGJldHdlZW4gV2ViQ29yZSByb290IHZpZXcgY29vcmRpbmF0ZXMgYW5kIHdl
YiB2aWV3IGNvb3JkaW5hdGVzLgo=
</data>
<flag name="review"
          id="402833"
          type_id="1"
          status="+"
          setter="saam"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>387073</attachid>
            <date>2020-01-07 21:50:33 -0800</date>
            <delta_ts>2020-01-07 21:50:33 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-205905-20200107215032.patch</filename>
            <type>text/plain</type>
            <size>125261</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjU0MTUyCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA4
MmRlZmYyOGUyYjlkNGZmMjA4N2FlNGIwODE2MWJjZGRhYmUzMmMwLi43YTJiNzdiOTU4OWJjZjIx
OWM1YTRlY2IzYWE3OWQ4MmZmNDU0ZDcxIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxMyBAQAorMjAyMC0wMS0wNyAgWXVzdWtlIFN1enVraSAgPHlzdXp1a2lAYXBwbGUuY29t
PgorCisgICAgICAgIFJlZHVjZSBiaW5hcnkgc2l6ZSBieSBwdXJnaW5nIEMrKyB0eXBlIGluZm9y
bWF0aW9uIGluIE9iamVjdGl2ZS1DIGZpZWxkcyBhbmQgcGFyYW1ldGVycworICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjA1OTA1CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBBUEkvSlNXcmFwcGVyTWFwLm1t
OgorICAgICAgICAoLVtKU09iakNDbGFzc0luZm8gZGVhbGxvY10pOgorCiAyMDIwLTAxLTA3ICBZ
dXN1a2UgU3V6dWtpICA8eXN1enVraUBhcHBsZS5jb20+CiAKICAgICAgICAgW0pTQ10gUmVtb3Zl
IHZtIGFjY2Vzc29yIGluIEpTVmlydHVhbE1hY2hpbmUgdG8gcmVkdWNlIGJpbmFyeSBzaXplCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5nZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmlu
ZGV4IDliMzIxMGNmYzUyOGQxMzdiOTI4ZDVhZmJiZmEyMDY3ZTIyNWIyMDQuLjY5YTA4MTczZjdh
ZmZhMGUzM2U0MTVkYWNjNjZhNGUxMTQzMGYxMzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNTQgQEAKKzIwMjAt
MDEtMDcgIFl1c3VrZSBTdXp1a2kgIDx5c3V6dWtpQGFwcGxlLmNvbT4KKworICAgICAgICBSZWR1
Y2UgYmluYXJ5IHNpemUgYnkgcHVyZ2luZyBDKysgdHlwZSBpbmZvcm1hdGlvbiBpbiBPYmplY3Rp
dmUtQyBmaWVsZHMgYW5kIHBhcmFtZXRlcnMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTIwNTkwNQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgIE9iamVjdGl2ZS1DIGhhcyByZWZsZWN0aW9uIG1lY2hhbmlzbS4g
VGhpcyBtZWFucyB0aGF0IGZpZWxkcywgbWV0aG9kcywgYW5kIHRoZWlyIHR5cGVzCisgICAgICAg
IG5lZWQgdG8gaG9sZCBpdHMgc3RyaW5nIHJlcHJlc2VudGF0aW9ucyBpbiBiaW5hcnkgZXZlbiBp
ZiB3ZSBhcmUgdXNpbmcgcmVsZWFzZSBidWlsZC4KKyAgICAgICAgV2hpbGUgdHlwaWNhbCBPYmpl
Y3RpdmUtQyBjbGFzcyBkb2VzIG5vdCBoYXZlIGxhcmdlIHNpemUgb2YgdHlwZSBuYW1lcywgQysr
IHN0cnVjdCAvIGNsYXNzCisgICAgICAgIGhhcyB2ZXJ5IGxhcmdlIG9uZSwgYW5kIHB1dHRpbmcg
dGhlbSBpbiBPYmplY3RpdmUtQyBtZXRob2QgbmFtZXMsIHBhcmFtZXRlciB0eXBlcywgb3IgZmll
bGRzCisgICAgICAgIG1ha2VzIGJpbmFyeSBzaXplIHZlcnkgbGFyZ2UuCisKKyAgICAgICAgSW50
ZXJlc3RpbmcgdGhpbmcgaXMgdGhhdCB0eXBlIGluZm9ybWF0aW9uIGlzIGdhdGhlcmVkIHdoZW4g
cGFyYW1ldGVyIGlzIGEgQysrIHBvaW50ZXIsIHJlZmVyZW5jZSwKKyAgICAgICAgb3IgdmFsdWUu
IEFuZCBpdCBnYXRoZXJzIG9uZS1sZXZlbCBkZWVwIGluZm9ybWF0aW9uIGZyb20gdGhpcyBwb2lu
dGVyIGV0Yy4gVGhpcyBtZWFucyB0aGF0LCBpZgorICAgICAgICB3ZSB1c2UgUmVmUHRyPFQ+LCBj
b2xsZWN0ZWQgdHlwZSBpbmZvcm1hdGlvbiBpcyB0aGUgb25lIG9mIFJlZlB0ciwgbm90IG9uZSBv
ZiBULiBTbyBpdCBiZWNvbWVzIHNpZ25pZmljYW50bHkKKyAgICAgICAgc21hbGxlci4KKworICAg
ICAgICBUaGlzIHBhdGNoIGludHJvZHVjZXMgTmFrZWRSZWY8VD4uIFRoaXMgaXMgc2ltaWxhciB0
byBSZWYgd2hpbGUgaXQgZG9lcyBub3QgaGF2ZSBhbnkgb3duZXJzaGlwLiBTbyBpdAorICAgICAg
ICBpcyBqdXN0IGEgd3JhcHBlciBhcm91bmQgVCYuIFdlIGFscmVhZHkgaGF2ZSBOYWtlZFB0cjxU
Pi4gQW5kIHVzZSBOYWtlZFJlZjxUPiAvIE5ha2VkUHRyPFQ+IGluc3RlYWQKKyAgICAgICAgb2Yg
VCYgYW5kIFQqIGlmLAorCisgICAgICAgICAgICAxLiBUIGlzIEMrKyBjbGFzcy4KKyAgICAgICAg
ICAgIDIuIFQqIC8gVCYgaXMgaW4gT2JqZWN0aXZlLUMgZmllbGRzIG9yIHBhcmFtdGVyIHR5cGVz
IChpbmNsdWRpbmcgYSByZXR1cm4gdHlwZSkuCisKKyAgICAgICAgVGhlbiwgdGhlc2UgdHlwZSBp
bmZvcm1hdGlvbiBpcyBvbmUgb2YgTmFrZWRSZWY8VD4gLyBOYWtlZFB0cjxUPiBpbnN0ZWFkIG9m
IFQsIGFuZCB3ZSBjYW4gcmVkdWNlIGJpbmFyeSBzaXplLgorCisgICAgICAgIFRoaXMgcGF0Y2gg
c2F2ZXMgNjAwfktCIGluIGJpbmFyeSBzaXplLgorCisgICAgICAgIE5vdGUgdGhlIGZvbGxvd2lu
ZyB0aGluZ3MuCisKKyAgICAgICAgMS4gSWYgd2UgdXNlIGBfX2F0dHJpYnV0ZV9fKChvYmpjX2Rp
cmVjdCkpYCwgYF9fYXR0cmlidXRlX18oKG9iamNfZGlyZWN0X21lbWJlcnMpKWAsIHBvc3NpYmx5
LCB3ZSBjYW4gY29tcGxldGVseSByZW1vdmUgdGhlc2UKKyAgICAgICAgICAgbWV0YWRhdGEgd2l0
aG91dCB1c2luZyBOYWtlZFJlZiAvIE5ha2VkUHRyWzFdLiBIb3dldmVyLCB0aGlzIGlzIG5vdCBh
dmFpbGFibGUgZm9yIG91ciBzdXBwb3J0aW5nIHBsYXRmb3JtcyBub3cgKGluY2x1ZGluZworICAg
ICAgICAgICBwcmUtQ2F0YWxpbmEgT1NlcykuIFRoaXMgTmFrZWRSZWYgLyBOYWtlZFB0ciB0ZWNo
bmlxdWUgY2FuIHJlZHVjZSBiaW5hcnkgd2l0aG91dCB3YWl0aW5nIGZvciBpdC4KKyAgICAgICAg
Mi4gUmV2ZXJ0aW5nIE5ha2VkUmVmIC8gTmFrZWRQdHIgdG8gdXN1YWwgcmVmZXJlbmNlIC8gcG9p
bnRlciBpcyBmYWlybHkgZWFzeSBzaW5jZSBpdCBpcyB3ZWxsIHR5cGVkLiBPbmNlIGBfX2F0dHJp
YnV0ZV9fKChvYmpjX2RpcmVjdCkpYAorICAgICAgICAgICBiZWNvbWVzIGF2YWlsYWJsZSBpbiBv
dXIgcGxhdGZvcm1zLCB3ZSBjYW4gY29uc2lkZXIgaXQuIEJ1dCB1c2luZyBOYWtlZFJlZiAvIE5h
a2VkUHRyIGlzIG5vdCBoYXJtbGVzcy4KKworICAgICAgICBbMV06IGh0dHBzOi8vZ2l0aHViLmNv
bS9sbHZtL2xsdm0tcHJvamVjdC9jb21taXQvZDRlMWJhM2ZhOWRmZWMyNjEzYmRjYzdkYjBiNThk
ZWE0OTBjNTZiMQorCisgICAgICAgICogV1RGLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6Cisg
ICAgICAgICogd3RmL0NNYWtlTGlzdHMudHh0OgorICAgICAgICAqIHd0Zi9OYWtlZFJlZi5oOiBB
ZGRlZC4KKyAgICAgICAgKFdURjo6TmFrZWRSZWY6Ok5ha2VkUmVmKToKKyAgICAgICAgKFdURjo6
TmFrZWRSZWY6Om9wZXJhdG9yLT4gY29uc3QpOgorICAgICAgICAoV1RGOjpOYWtlZFJlZjo6Z2V0
IGNvbnN0KToKKyAgICAgICAgKFdURjo6TmFrZWRSZWY6Om9wZXJhdG9yIFQmIGNvbnN0KToKKyAg
ICAgICAgKFdURjo6TmFrZWRSZWY6Om9wZXJhdG9yISBjb25zdCk6CisgICAgICAgIChXVEY6Oj0p
OgorICAgICAgICAoV1RGOjpOYWtlZFJlZjxUPjo6c3dhcCk6CisgICAgICAgIChXVEY6OnN3YXAp
OgorCiAyMDIwLTAxLTA3ICBDYXJsb3MgR2FyY2lhIENhbXBvcyAgPGNnYXJjaWFAaWdhbGlhLmNv
bT4KIAogICAgICAgICBbR1RLXVtXUEVdIEFkZCBBUEkgdG8gc2V0IHB1cnBvc2UgYW5kIGhpbnRz
IG9mIGFjdGl2ZSBlZGl0YWJsZSBlbGVtZW50IHRvIGlucHV0IG1ldGhvZHMKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRl
eCBjNWY2Mjk5YTk2YWNjYzUxMWIzOTU5OTBmNjhiNGQxZWQ4NDg1MmY0Li4yZDNlNWY4MjllYmVk
YjlhYWEyZDIwNTM4ZDE2YjViMDk0NDdhY2Y1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjEgQEAK
KzIwMjAtMDEtMDcgIFl1c3VrZSBTdXp1a2kgIDx5c3V6dWtpQGFwcGxlLmNvbT4KKworICAgICAg
ICBSZWR1Y2UgYmluYXJ5IHNpemUgYnkgcHVyZ2luZyBDKysgdHlwZSBpbmZvcm1hdGlvbiBpbiBP
YmplY3RpdmUtQyBmaWVsZHMgYW5kIHBhcmFtZXRlcnMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwNTkwNQorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgIE5vIGJlaGF2aW9yIGNoYW5nZS4KKworICAgICAgICAq
IHBhZ2UvbWFjL1dlYkNvcmVGcmFtZVZpZXcuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGlj
cy9jb2NvYS9XZWJHTExheWVyLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2Ev
V2ViR0xMYXllci5tbToKKyAgICAgICAgKC1bV2ViR0xMYXllciBpbml0V2l0aEdyYXBoaWNzQ29u
dGV4dEdMOl0pOgorICAgICAgICAqIHBsYXRmb3JtL21hYy9TY3JvbGxBbmltYXRvck1hYy5tbToK
KyAgICAgICAgKC1bV2ViU2Nyb2xsQW5pbWF0aW9uSGVscGVyRGVsZWdhdGUgaW5pdFdpdGhTY3Jv
bGxBbmltYXRvcjpdKToKKyAgICAgICAgKC1bV2ViU2Nyb2xsQW5pbWF0aW9uSGVscGVyRGVsZWdh
dGUgaW52YWxpZGF0ZV0pOgorICAgICAgICAoLVtXZWJTY3JvbGxlckltcERlbGVnYXRlIHNjcm9s
bEFuaW1hdG9yXSk6CisKIDIwMjAtMDEtMDcgIFJ5YW4gSGFkZGFkICA8cnlhbmhhZGRhZEBhcHBs
ZS5jb20+CiAKICAgICAgICAgVW5yZXZpZXdlZCwgcm9sbGluZyBvdXQgcjI1NDE0NC4KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cK
aW5kZXggMzEzZTQwN2YxNTYwZDljOTY1ZGE5ZGQyZTU0ZTg0ZmJlYTJhNmI3Ny4uNzIzN2RiNTc2
YTA0MjYxMGM2Njc2N2IwNTQ3ZmM4ZDE1NWNmYmQwMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSw4MiBA
QAorMjAyMC0wMS0wNyAgWXVzdWtlIFN1enVraSAgPHlzdXp1a2lAYXBwbGUuY29tPgorCisgICAg
ICAgIFJlZHVjZSBiaW5hcnkgc2l6ZSBieSBwdXJnaW5nIEMrKyB0eXBlIGluZm9ybWF0aW9uIGlu
IE9iamVjdGl2ZS1DIGZpZWxkcyBhbmQgcGFyYW1ldGVycworICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjA1OTA1CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9jb2NvYS9OZXR3b3Jr
U2Vzc2lvbkNvY29hLm1tOgorICAgICAgICAoLVtXS05ldHdvcmtTZXNzaW9uRGVsZWdhdGUgaW5p
dFdpdGhOZXR3b3JrU2Vzc2lvbjp3cmFwcGVyOndpdGhDcmVkZW50aWFsczpdKToKKyAgICAgICAg
KiBTaGFyZWQvQVBJL0NvY29hL1dLQnJvd3NpbmdDb250ZXh0SGFuZGxlLm1tOgorICAgICAgICAo
LVtXS0Jyb3dzaW5nQ29udGV4dEhhbmRsZSBfaW5pdFdpdGhQYWdlUHJveHk6XSk6CisgICAgICAg
ICgtW1dLQnJvd3NpbmdDb250ZXh0SGFuZGxlIF9pbml0V2l0aFBhZ2U6XSk6CisgICAgICAgICog
U2hhcmVkL0FQSS9Db2NvYS9XS0Jyb3dzaW5nQ29udGV4dEhhbmRsZUludGVybmFsLmg6CisgICAg
ICAgICogU2hhcmVkL0FQSS9Db2NvYS9fV0tSZW1vdGVPYmplY3RSZWdpc3RyeS5tbToKKyAgICAg
ICAgKC1bX1dLUmVtb3RlT2JqZWN0UmVnaXN0cnkgX2luaXRXaXRoV2ViUGFnZTpdKToKKyAgICAg
ICAgKC1bX1dLUmVtb3RlT2JqZWN0UmVnaXN0cnkgX2luaXRXaXRoV2ViUGFnZVByb3h5Ol0pOgor
ICAgICAgICAqIFNoYXJlZC9BUEkvQ29jb2EvX1dLUmVtb3RlT2JqZWN0UmVnaXN0cnlJbnRlcm5h
bC5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3Lm1tOgorICAgICAg
ICAoLVtXS1dlYlZpZXcgX3BhZ2VdKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL1dL
V2ViVmlld0ludGVybmFsLmg6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYnNp
dGVEYXRhU3RvcmUubW06CisgICAgICAgICgtW1dLV2Vic2l0ZURhdGFTdG9yZSBfZ2V0QWxsU3Rv
cmFnZUFjY2Vzc0VudHJpZXNGb3I6Y29tcGxldGlvbkhhbmRsZXI6XSk6CisgICAgICAgICogVUlQ
cm9jZXNzL0FQSS9Db2NvYS9fV0tUaHVtYm5haWxWaWV3Lm1tOgorICAgICAgICAqIFVJUHJvY2Vz
cy9BUEkvbWFjL1dLVmlldy5tbToKKyAgICAgICAgKC1bV0tWaWV3IGluaXRXaXRoRnJhbWU6cHJv
Y2Vzc1Bvb2w6Y29uZmlndXJhdGlvbjpdKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQ29jb2EvV2Vi
Vmlld0ltcGwubW06CisgICAgICAgIChXZWJLaXQ6OldlYlZpZXdJbXBsOjpXZWJWaWV3SW1wbCk6
CisgICAgICAgIChXZWJLaXQ6OldlYlZpZXdJbXBsOjpzZXRMYXlvdXRNb2RlKToKKyAgICAgICAg
KFdlYktpdDo6V2ViVmlld0ltcGw6OmZ1bGxTY3JlZW5XaW5kb3dDb250cm9sbGVyKToKKyAgICAg
ICAgKFdlYktpdDo6V2ViVmlld0ltcGw6OnJlbW90ZU9iamVjdFJlZ2lzdHJ5KToKKyAgICAgICAg
KiBVSVByb2Nlc3MvaW9zL1dLQXBwbGljYXRpb25TdGF0ZVRyYWNraW5nVmlldy5tbToKKyAgICAg
ICAgKC1bV0tBcHBsaWNhdGlvblN0YXRlVHJhY2tpbmdWaWV3IHdpbGxNb3ZlVG9XaW5kb3c6XSk6
CisgICAgICAgICgtW1dLQXBwbGljYXRpb25TdGF0ZVRyYWNraW5nVmlldyBkaWRNb3ZlVG9XaW5k
b3ddKToKKyAgICAgICAgKiBVSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXcuaDoKKyAgICAgICAg
KiBVSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXcubW06CisgICAgICAgICgtW1dLQ29udGVudFZp
ZXcgaW5pdFdpdGhGcmFtZTpwcm9jZXNzUG9vbDpjb25maWd1cmF0aW9uOndlYlZpZXc6XSk6Cisg
ICAgICAgICogVUlQcm9jZXNzL2lvcy9mdWxsc2NyZWVuL1dLRnVsbFNjcmVlblZpZXdDb250cm9s
bGVyLm1tOgorICAgICAgICAoLVtXS0Z1bGxTY3JlZW5WaWV3Q29udHJvbGxlciB2aWRlb0NvbnRy
b2xzTWFuYWdlckRpZENoYW5nZV0pOgorICAgICAgICAoLVtXS0Z1bGxTY3JlZW5WaWV3Q29udHJv
bGxlciBfbWFuYWdlcl0pOgorICAgICAgICAoLVtXS0Z1bGxTY3JlZW5WaWV3Q29udHJvbGxlciBf
dG9nZ2xlUGlQQWN0aW9uOl0pOgorICAgICAgICAoLVtXS0Z1bGxTY3JlZW5WaWV3Q29udHJvbGxl
ciBfc2hvd1BoaXNoaW5nQWxlcnRdKToKKyAgICAgICAgKiBVSVByb2Nlc3MvaW9zL2Z1bGxzY3Jl
ZW4vV0tGdWxsU2NyZWVuV2luZG93Q29udHJvbGxlcklPUy5tbToKKyAgICAgICAgKFdlYktpdDo6
V0tXZWJWaWV3U3RhdGU6OmFwcGx5VG8pOgorICAgICAgICAoV2ViS2l0OjpXS1dlYlZpZXdTdGF0
ZTo6c3RvcmUpOgorICAgICAgICAoLVtXS0Z1bGxTY3JlZW5XaW5kb3dDb250cm9sbGVyIGVudGVy
RnVsbFNjcmVlbl0pOgorICAgICAgICAoLVtXS0Z1bGxTY3JlZW5XaW5kb3dDb250cm9sbGVyIGJl
Z2FuRW50ZXJGdWxsU2NyZWVuV2l0aEluaXRpYWxGcmFtZTpmaW5hbEZyYW1lOl0pOgorICAgICAg
ICAoLVtXS0Z1bGxTY3JlZW5XaW5kb3dDb250cm9sbGVyIGJlZ2FuRXhpdEZ1bGxTY3JlZW5XaXRo
SW5pdGlhbEZyYW1lOmZpbmFsRnJhbWU6XSk6CisgICAgICAgICgtW1dLRnVsbFNjcmVlbldpbmRv
d0NvbnRyb2xsZXIgX2NvbXBsZXRlZEV4aXRGdWxsU2NyZWVuXSk6CisgICAgICAgICgtW1dLRnVs
bFNjcmVlbldpbmRvd0NvbnRyb2xsZXIgX2V4aXRGdWxsc2NyZWVuSW1tZWRpYXRlbHldKToKKyAg
ICAgICAgKC1bV0tGdWxsU2NyZWVuV2luZG93Q29udHJvbGxlciBfbWFuYWdlcl0pOgorICAgICAg
ICAqIFVJUHJvY2Vzcy9tYWMvV0tGdWxsU2NyZWVuV2luZG93Q29udHJvbGxlci5oOgorICAgICAg
ICAqIFVJUHJvY2Vzcy9tYWMvV0tGdWxsU2NyZWVuV2luZG93Q29udHJvbGxlci5tbToKKyAgICAg
ICAgKC1bV0tGdWxsU2NyZWVuV2luZG93Q29udHJvbGxlciBpbml0V2l0aFdpbmRvdzp3ZWJWaWV3
OnBhZ2U6XSk6CisgICAgICAgICogVUlQcm9jZXNzL21hYy9XS0ltbWVkaWF0ZUFjdGlvbkNvbnRy
b2xsZXIuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvbWFjL1dLSW1tZWRpYXRlQWN0aW9uQ29udHJv
bGxlci5tbToKKyAgICAgICAgKC1bV0tJbW1lZGlhdGVBY3Rpb25Db250cm9sbGVyIGluaXRXaXRo
UGFnZTp2aWV3OnZpZXdJbXBsOnJlY29nbml6ZXI6XSk6CisgICAgICAgICgtW1dLSW1tZWRpYXRl
QWN0aW9uQ29udHJvbGxlciBfYW5pbWF0aW9uQ29udHJvbGxlckZvckRhdGFEZXRlY3RlZFRleHRd
KToKKyAgICAgICAgKC1bV0tJbW1lZGlhdGVBY3Rpb25Db250cm9sbGVyIF9hbmltYXRpb25Db250
cm9sbGVyRm9yRGF0YURldGVjdGVkTGlua10pOgorICAgICAgICAqIFVJUHJvY2Vzcy9tYWMvV0tJ
bnNwZWN0b3JWaWV3Q29udHJvbGxlci5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9tYWMvV0tJbnNw
ZWN0b3JWaWV3Q29udHJvbGxlci5tbToKKyAgICAgICAgKC1bV0tJbnNwZWN0b3JWaWV3Q29udHJv
bGxlciBpbml0V2l0aEluc3BlY3RlZFBhZ2U6XSk6CisgICAgICAgICogVUlQcm9jZXNzL21hYy9X
S1RleHRGaW5kZXJDbGllbnQuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvbWFjL1dLVGV4dEZpbmRl
ckNsaWVudC5tbToKKyAgICAgICAgKC1bV0tUZXh0RmluZGVyQ2xpZW50IGluaXRXaXRoUGFnZTp2
aWV3OnVzZVBsYXRmb3JtRmluZFVJOl0pOgorICAgICAgICAqIFVJUHJvY2Vzcy9tYWMvV0tWaWV3
TGF5b3V0U3RyYXRlZ3kuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvbWFjL1dLVmlld0xheW91dFN0
cmF0ZWd5Lm1tOgorICAgICAgICAoK1tXS1ZpZXdMYXlvdXRTdHJhdGVneSBsYXlvdXRTdHJhdGVn
eVdpdGhQYWdlOnZpZXc6dmlld0ltcGw6bW9kZTpdKToKKyAgICAgICAgKC1bV0tWaWV3TGF5b3V0
U3RyYXRlZ3kgaW5pdFdpdGhQYWdlOnZpZXc6dmlld0ltcGw6bW9kZTpdKToKKyAgICAgICAgKC1b
V0tWaWV3Vmlld1NpemVMYXlvdXRTdHJhdGVneSBpbml0V2l0aFBhZ2U6dmlldzp2aWV3SW1wbDpt
b2RlOl0pOgorICAgICAgICAoLVtXS1ZpZXdGaXhlZFNpemVMYXlvdXRTdHJhdGVneSBpbml0V2l0
aFBhZ2U6dmlldzp2aWV3SW1wbDptb2RlOl0pOgorICAgICAgICAoLVtXS1ZpZXdEeW5hbWljU2l6
ZUNvbXB1dGVkRnJvbVZpZXdTY2FsZUxheW91dFN0cmF0ZWd5IGluaXRXaXRoUGFnZTp2aWV3OnZp
ZXdJbXBsOm1vZGU6XSk6CisgICAgICAgICgtW1dLVmlld0R5bmFtaWNTaXplQ29tcHV0ZWRGcm9t
TWluaW11bURvY3VtZW50U2l6ZUxheW91dFN0cmF0ZWd5IGluaXRXaXRoUGFnZTp2aWV3OnZpZXdJ
bXBsOm1vZGU6XSk6CisgICAgICAgICogV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvbWFj
L1dLRE9NRG9jdW1lbnQubW06CisgICAgICAgICgtW1dLRE9NRG9jdW1lbnRQYXJzZXJZaWVsZFRv
a2VuIGluaXRXaXRoRG9jdW1lbnQ6XSk6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL21h
Yy9XS0FjY2Vzc2liaWxpdHlXZWJQYWdlT2JqZWN0QmFzZS5oOgorICAgICAgICAqIFdlYlByb2Nl
c3MvV2ViUGFnZS9tYWMvV0tBY2Nlc3NpYmlsaXR5V2ViUGFnZU9iamVjdEJhc2UubW06CisgICAg
ICAgICgtW1dLQWNjZXNzaWJpbGl0eVdlYlBhZ2VPYmplY3RCYXNlIGF4T2JqZWN0Q2FjaGVdKToK
KyAgICAgICAgKC1bV0tBY2Nlc3NpYmlsaXR5V2ViUGFnZU9iamVjdEJhc2Ugc2V0V2ViUGFnZTpd
KToKKwogMjAyMC0wMS0wNyAgUnlhbiBIYWRkYWQgIDxyeWFuaGFkZGFkQGFwcGxlLmNvbT4KIAog
ICAgICAgICBVbnJldmlld2VkLCByb2xsaW5nIG91dCByMjU0MTQ0LgpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdExlZ2FjeS9tYWMvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMv
Q2hhbmdlTG9nCmluZGV4IGM3NGVmYTlmNzQwM2U5NzYyOGRlMTRhODM5YWUzMzgyNWNhZGYzZjUu
LjRiZmQzMWUxMDJjMTk4N2NiNDY5NWJjNmIyYTY5OGVkOTBhN2IyMWQgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXRMZWdhY3kvbWFjL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5
L21hYy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMTMgQEAKKzIwMjAtMDEtMDcgIFl1c3VrZSBTdXp1
a2kgIDx5c3V6dWtpQGFwcGxlLmNvbT4KKworICAgICAgICBSZWR1Y2UgYmluYXJ5IHNpemUgYnkg
cHVyZ2luZyBDKysgdHlwZSBpbmZvcm1hdGlvbiBpbiBPYmplY3RpdmUtQyBmaWVsZHMgYW5kIHBh
cmFtZXRlcnMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTIwNTkwNQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
ICogUGx1Z2lucy9XZWJCYXNlTmV0c2NhcGVQbHVnaW5WaWV3Lmg6CisgICAgICAgICogUGx1Z2lu
cy9XZWJCYXNlTmV0c2NhcGVQbHVnaW5WaWV3Lm1tOgorICAgICAgICAoLVtXZWJCYXNlTmV0c2Nh
cGVQbHVnaW5WaWV3IGVsZW1lbnRdKToKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9XZWJFZGl0
b3JDbGllbnQubW06CisgICAgICAgIChfV2ViQ3JlYXRlRnJhZ21lbnQpOgorICAgICAgICAqIFdl
YkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50Lm1tOgorICAgICAgICAoV2ViRnJhbWVM
b2FkZXJDbGllbnQ6OnRyYW5zaXRpb25Ub0NvbW1pdHRlZEZvck5ld1BhZ2UpOgorICAgICAgICAo
LVtXZWJGcmFtZVBvbGljeUxpc3RlbmVyIGluaXRXaXRoRnJhbWU6aWRlbnRpZmllcjpwb2xpY3lG
dW5jdGlvbjpkZWZhdWx0UG9saWN5Ol0pOgorICAgICAgICAoLVtXZWJGcmFtZVBvbGljeUxpc3Rl
bmVyIGluaXRXaXRoRnJhbWU6aWRlbnRpZmllcjpwb2xpY3lGdW5jdGlvbjpkZWZhdWx0UG9saWN5
OmFwcExpbmtVUkw6XSk6CisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvV2ViR2VvbG9jYXRpb25D
bGllbnQubW06CisgICAgICAgICgtW1dlYkdlb2xvY2F0aW9uUG9saWN5TGlzdGVuZXIgaW5pdFdp
dGhHZW9sb2NhdGlvbjpdKToKKyAgICAgICAgKC1bV2ViR2VvbG9jYXRpb25Qb2xpY3lMaXN0ZW5l
ciBpbml0V2l0aEdlb2xvY2F0aW9uOmZvcldlYlZpZXc6XSk6CisgICAgICAgICgtW1dlYkdlb2xv
Y2F0aW9uUHJvdmlkZXJJbml0aWFsaXphdGlvbkxpc3RlbmVyIGluaXRXaXRoR2VvbG9jYXRpb246
XSk6CisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvV2ViSW5zcGVjdG9yQ2xpZW50Lm1tOgorICAg
ICAgICAoV2ViSW5zcGVjdG9yRnJvbnRlbmRDbGllbnQ6OnJlc2V0U3RhdGUpOgorICAgICAgICAo
LVtXZWJJbnNwZWN0b3JXaW5kb3dDb250cm9sbGVyIHNldEZyb250ZW5kQ2xpZW50Ol0pOgorICAg
ICAgICAoLVtXZWJJbnNwZWN0b3JXaW5kb3dDb250cm9sbGVyIHNldEluc3BlY3RvckNsaWVudDpd
KToKKyAgICAgICAgKC1bV2ViSW5zcGVjdG9yV2luZG93Q29udHJvbGxlciBpbnNwZWN0b3JDbGll
bnRdKToKKyAgICAgICAgKiBXZWJJbnNwZWN0b3IvV2ViSW5zcGVjdG9yRnJvbnRlbmQuaDoKKyAg
ICAgICAgKiBXZWJJbnNwZWN0b3IvV2ViSW5zcGVjdG9yRnJvbnRlbmQubW06CisgICAgICAgICog
V2ViSW5zcGVjdG9yL1dlYk5vZGVIaWdobGlnaHQuaDoKKyAgICAgICAgKiBXZWJJbnNwZWN0b3Iv
V2ViTm9kZUhpZ2hsaWdodC5tbToKKyAgICAgICAgKC1bV2ViTm9kZUhpZ2hsaWdodCBpbml0V2l0
aFRhcmdldFZpZXc6aW5zcGVjdG9yQ29udHJvbGxlcjpdKToKKyAgICAgICAgKiBXZWJWaWV3L1dl
YkFyY2hpdmUubW06CisgICAgICAgICgtW1dlYkFyY2hpdmUgaW5pdFdpdGhNYWluUmVzb3VyY2U6
c3VicmVzb3VyY2VzOnN1YmZyYW1lQXJjaGl2ZXM6XSk6CisgICAgICAgICogV2ViVmlldy9XZWJE
YXRhU291cmNlLm1tOgorICAgICAgICAoLVtXZWJEYXRhU291cmNlIF9kb2N1bWVudExvYWRlcl0p
OgorICAgICAgICAoLVtXZWJEYXRhU291cmNlIGFkZFN1YnJlc291cmNlOl0pOgorICAgICAgICAq
IFdlYlZpZXcvV2ViRGF0YVNvdXJjZUludGVybmFsLmg6CisgICAgICAgICogV2ViVmlldy9XZWJG
cmFtZS5tbToKKyAgICAgICAgKGdldFdlYlZpZXcpOgorICAgICAgICAoLVtXZWJGcmFtZSBfdXBk
YXRlQmFja2dyb3VuZEFuZFVwZGF0ZXNXaGlsZU9mZnNjcmVlbl0pOgorICAgICAgICAoLVtXZWJG
cmFtZSBfdW5tYXJrQWxsQmFkR3JhbW1hcl0pOgorICAgICAgICAoLVtXZWJGcmFtZSBfdW5tYXJr
QWxsTWlzc3BlbGxpbmdzXSk6CisgICAgICAgICgtW1dlYkZyYW1lIF9oYXNTZWxlY3Rpb25dKToK
KyAgICAgICAgKC1bV2ViRnJhbWUgX2F0TW9zdE9uZUZyYW1lSGFzU2VsZWN0aW9uXSk6CisgICAg
ICAgICgtW1dlYkZyYW1lIF9maW5kRnJhbWVXaXRoU2VsZWN0aW9uXSk6CisgICAgICAgICgtW1dl
YkZyYW1lIF9zY3JvbGxET01SYW5nZVRvVmlzaWJsZTp3aXRoSW5zZXQ6XSk6CisgICAgICAgICgt
W1dlYkZyYW1lIF9kb2N1bWVudEZyYWdtZW50V2l0aE1hcmt1cFN0cmluZzpiYXNlVVJMU3RyaW5n
Ol0pOgorICAgICAgICAoLVtXZWJGcmFtZSBfZG9jdW1lbnRGcmFnbWVudFdpdGhOb2Rlc0FzUGFy
YWdyYXBoczpdKToKKyAgICAgICAgKC1bV2ViRnJhbWUgX2NhblByb3ZpZGVEb2N1bWVudFNvdXJj
ZV0pOgorICAgICAgICAoLVtXZWJGcmFtZSBfaXNEZXNjZW5kYW50T2ZGcmFtZTpdKToKKyAgICAg
ICAgKC1bV2ViRnJhbWUgX3JlY3Vyc2l2ZV9yZXN1bWVOdWxsRXZlbnRzRm9yQWxsTmV0c2NhcGVQ
bHVnaW5zXSk6CisgICAgICAgICgtW1dlYkZyYW1lIF9yZWN1cnNpdmVfcGF1c2VOdWxsRXZlbnRz
Rm9yQWxsTmV0c2NhcGVQbHVnaW5zXSk6CisgICAgICAgICgtW1dlYkZyYW1lIHNldFRpbWVvdXRz
UGF1c2VkOl0pOgorICAgICAgICAoLVtXZWJGcmFtZSBwcmVwYXJlRm9yUGF1c2VdKToKKyAgICAg
ICAgKC1bV2ViRnJhbWUgcmVzdW1lRnJvbVBhdXNlXSk6CisgICAgICAgICgtW1dlYkZyYW1lIHJl
c2V0VGV4dEF1dG9zaXppbmdCZWZvcmVMYXlvdXRdKToKKyAgICAgICAgKC1bV2ViRnJhbWUgX2ds
b2JhbENvbnRleHRGb3JTY3JpcHRXb3JsZDpdKToKKyAgICAgICAgKC1bV2ViRnJhbWUgX2xheWVy
VHJlZUFzVGV4dF0pOgorICAgICAgICAoLVtXZWJGcmFtZSBfY2xlYXJPcGVuZXJdKToKKyAgICAg
ICAgKC1bV2ViRnJhbWUgZm9jdXNlZE5vZGVIYXNDb250ZW50XSk6CisgICAgICAgICgtW1dlYkZy
YW1lIF9kaXNwYXRjaERpZFJlY2VpdmVUaXRsZTpdKToKKyAgICAgICAgKC1bV2ViRnJhbWUganNX
cmFwcGVyRm9yTm9kZTppblNjcmlwdFdvcmxkOl0pOgorICAgICAgICAoLVtXZWJGcmFtZSBlbGVt
ZW50QXRQb2ludDpdKToKKyAgICAgICAgKC1bV2ViRnJhbWUgbmFtZV0pOgorICAgICAgICAoLVtX
ZWJGcmFtZSBET01Eb2N1bWVudF0pOgorICAgICAgICAoLVtXZWJGcmFtZSBmcmFtZUVsZW1lbnRd
KToKKyAgICAgICAgKC1bV2ViRnJhbWUgcHJvdmlzaW9uYWxEYXRhU291cmNlXSk6CisgICAgICAg
ICgtW1dlYkZyYW1lIGRhdGFTb3VyY2VdKToKKyAgICAgICAgKC1bV2ViRnJhbWUgbG9hZFJlcXVl
c3Q6XSk6CisgICAgICAgICgtW1dlYkZyYW1lIGZpbmRGcmFtZU5hbWVkOl0pOgorICAgICAgICAo
LVtXZWJGcmFtZSBwYXJlbnRGcmFtZV0pOgorICAgICAgICAoLVtXZWJGcmFtZSBjaGlsZEZyYW1l
c10pOgorICAgICAgICAoLVtXZWJGcmFtZSB3aW5kb3dPYmplY3RdKToKKyAgICAgICAgKC1bV2Vi
RnJhbWUgZ2xvYmFsQ29udGV4dF0pOgorICAgICAgICAoLVtXZWJGcmFtZSBqYXZhU2NyaXB0Q29u
dGV4dF0pOgorICAgICAgICAqIFdlYlZpZXcvV2ViRnJhbWVJbnRlcm5hbC5oOgorICAgICAgICAq
IFdlYlZpZXcvV2ViRnJhbWVWaWV3Lm1tOgorICAgICAgICAoLVtXZWJGcmFtZVZpZXcgX3dlYl9m
cmFtZV0pOgorICAgICAgICAoLVtXZWJGcmFtZVZpZXcgX2ZyYW1lU2l6ZUNoYW5nZWRdKToKKyAg
ICAgICAgKC1bV2ViRnJhbWVWaWV3IF9pc1ZlcnRpY2FsRG9jdW1lbnRdKToKKyAgICAgICAgKC1b
V2ViRnJhbWVWaWV3IF9pc0ZsaXBwZWREb2N1bWVudF0pOgorICAgICAgICAoLVtXZWJGcmFtZVZp
ZXcga2V5RG93bjprZXlEb3duOl0pOgorICAgICAgICAqIFdlYlZpZXcvV2ViRnVsbFNjcmVlbkNv
bnRyb2xsZXIubW06CisgICAgICAgICgtW1dlYkZ1bGxTY3JlZW5Db250cm9sbGVyIF9kb2N1bWVu
dF0pOgorICAgICAgICAqIFdlYlZpZXcvV2ViSFRNTFZpZXcubW06CisgICAgICAgICgtW1dlYk1l
bnVUYXJnZXQgbWVudUNvbnRyb2xsZXJdKToKKyAgICAgICAgKC1bV2ViTWVudVRhcmdldCBzZXRN
ZW51Q29udHJvbGxlcjpdKToKKyAgICAgICAgKC1bV2ViSFRNTFZpZXcgbmFtZXNPZlByb21pc2Vk
RmlsZXNEcm9wcGVkQXREZXN0aW5hdGlvbjpdKToKKyAgICAgICAgKC1bV2ViSFRNTFZpZXcgX2lu
dGVycHJldEtleUV2ZW50OnNhdmluZ0NvbW1hbmRzOl0pOgorICAgICAgICAoLVtXZWJIVE1MVmll
dyBzZXRQcm9taXNlZERyYWdUSUZGRGF0YVNvdXJjZTpdKToKKyAgICAgICAgKiBXZWJWaWV3L1dl
YkhUTUxWaWV3SW50ZXJuYWwuaDoKKyAgICAgICAgKiBXZWJWaWV3L1dlYk5vdGlmaWNhdGlvbi5t
bToKKyAgICAgICAgKC1bV2ViTm90aWZpY2F0aW9uIGluaXRXaXRoQ29yZU5vdGlmaWNhdGlvbjpu
b3RpZmljYXRpb25JRDpdKToKKyAgICAgICAgKiBXZWJWaWV3L1dlYk5vdGlmaWNhdGlvbkludGVy
bmFsLmg6CisgICAgICAgICogV2ViVmlldy9XZWJSZXNvdXJjZS5tbToKKyAgICAgICAgKC1bV2Vi
UmVzb3VyY2UgX2NvcmVSZXNvdXJjZV0pOgorICAgICAgICAqIFdlYlZpZXcvV2ViUmVzb3VyY2VJ
bnRlcm5hbC5oOgorICAgICAgICAqIFdlYlZpZXcvV2ViVmlkZW9GdWxsc2NyZWVuQ29udHJvbGxl
ci5oOgorICAgICAgICAqIFdlYlZpZXcvV2ViVmlkZW9GdWxsc2NyZWVuQ29udHJvbGxlci5tbToK
KyAgICAgICAgKC1bV2ViVmlkZW9GdWxsc2NyZWVuQ29udHJvbGxlciB2aWRlb0VsZW1lbnRdKToK
KyAgICAgICAgKC1bV2ViVmlkZW9GdWxsc2NyZWVuQ29udHJvbGxlciBzZXRWaWRlb0VsZW1lbnQ6
XSk6CisgICAgICAgICogV2ViVmlldy9XZWJWaWRlb0Z1bGxzY3JlZW5IVURXaW5kb3dDb250cm9s
bGVyLmg6CisgICAgICAgICogV2ViVmlldy9XZWJWaWV3Lm1tOgorICAgICAgICAoLVtXZWJWaWV3
IHBhZ2VdKToKKyAgICAgICAgKC1bV2ViVmlldyBfZW50ZXJWaWRlb0Z1bGxzY3JlZW5Gb3JWaWRl
b0VsZW1lbnQ6bW9kZTpdKToKKyAgICAgICAgKC1bV2ViVmlldyBfc2V0VXBQbGF5YmFja0NvbnRy
b2xzTWFuYWdlckZvck1lZGlhRWxlbWVudDpdKToKKyAgICAgICAgKC1bV2ViVmlldyBfc3VwcG9y
dHNGdWxsU2NyZWVuRm9yRWxlbWVudDp3aXRoS2V5Ym9hcmQ6XSk6CisgICAgICAgICgtW1dlYlZp
ZXcgX2VudGVyRnVsbFNjcmVlbkZvckVsZW1lbnQ6XSk6CisgICAgICAgICgtW1dlYlZpZXcgX2V4
aXRGdWxsU2NyZWVuRm9yRWxlbWVudDpdKToKKyAgICAgICAgKiBXZWJWaWV3L1dlYlZpZXdJbnRl
cm5hbC5oOgorCiAyMDIwLTAxLTA3ICBDb21taXQgUXVldWUgIDxjb21taXQtcXVldWVAd2Via2l0
Lm9yZz4KIAogICAgICAgICBVbnJldmlld2VkLCByb2xsaW5nIG91dCByMjU0MTMyLgpkaWZmIC0t
Z2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU1dyYXBwZXJNYXAubW0gYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvQVBJL0pTV3JhcHBlck1hcC5tbQppbmRleCAyOGMyMzNlYTE4Njk2MTM1
ZWQxMTMxZDk2MGJhZmI2NjljYTMzODZjLi43MjBiYjFiYzM0NzE1NmJiNDYzYzZlODUzM2E3OWY3
NDkxYzU1MzBiIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTV3JhcHBl
ck1hcC5tbQorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTV3JhcHBlck1hcC5tbQpA
QCAtMzkwLDcgKzM5MCw3IEBAIHN0YXRpYyB2b2lkIGNvcHlQcm90b3R5cGVQcm9wZXJ0aWVzKEpT
Q29udGV4dCAqY29udGV4dCwgQ2xhc3Mgb2JqY0NsYXNzLCBQcm90b2NvCiBAaW50ZXJmYWNlIEpT
T2JqQ0NsYXNzSW5mbyA6IE5TT2JqZWN0IHsKICAgICBDbGFzcyBtX2NsYXNzOwogICAgIGJvb2wg
bV9ibG9jazsKLSAgICBKU0NsYXNzUmVmIG1fY2xhc3NSZWY7CisgICAgTmFrZWRQdHI8T3BhcXVl
SlNDbGFzcz4gbV9jbGFzc1JlZjsKICAgICBKU0M6OldlYWs8SlNDOjpKU09iamVjdD4gbV9wcm90
b3R5cGU7CiAgICAgSlNDOjpXZWFrPEpTQzo6SlNPYmplY3Q+IG1fY29uc3RydWN0b3I7CiAgICAg
SlNDOjpXZWFrPEpTQzo6U3RydWN0dXJlPiBtX3N0cnVjdHVyZTsKQEAgLTQyNCw3ICs0MjQsNyBA
QCAtIChpbnN0YW5jZXR5cGUpaW5pdEZvckNsYXNzOihDbGFzcyljbHMKIAogLSAodm9pZClkZWFs
bG9jCiB7Ci0gICAgSlNDbGFzc1JlbGVhc2UobV9jbGFzc1JlZik7CisgICAgSlNDbGFzc1JlbGVh
c2UobV9jbGFzc1JlZi5nZXQoKSk7CiAgICAgW3N1cGVyIGRlYWxsb2NdOwogfQogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV1RGL1dURi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dU
Ri9XVEYueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCBkMDA0MGM5NzNiM2FlMjExZmVh
NGFjYTdiNDBkZjEyZjk0MGYwNDBmLi5hNjNkYmRjYjM1YzM3ZTk5YmI0NTFiZDg2MDA2M2YzZjNm
Nzk4MWVmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL1dURi54Y29kZXByb2ovcHJvamVjdC5wYnhw
cm9qCisrKyBiL1NvdXJjZS9XVEYvV1RGLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTY4
OSw2ICs2ODksNyBAQAogCQlFMzE0OUEzQTIyOEJEQ0FCMDBCRkE2QzcgLyogQ29uY3VycmVudEJ1
ZmZlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBDb25jdXJyZW50
QnVmZmVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRTMxQkRFMjgyMkU5MTND
QzAwMjlCMTA1IC8qIE1hY2hWTVNQSS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBNYWNoVk1TUEkuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRTMyMDBBQjQxRTlB
NTM2RDAwM0I1OUQyIC8qIFBsYXRmb3JtUmVnaXN0ZXJzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IFBsYXRmb3JtUmVnaXN0ZXJzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CisJCUUzMkEyMDczMjNDNTkwMkQwMDM0QTA5MiAvKiBOYWtlZFJlZi5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBOYWtlZFJlZi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQlFMzNENUY4NzFGQkVENjY3MDBCRjYyNUUgLyogUmVjdXJzYWJsZUxhbWJkYS5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBSZWN1cnNhYmxlTGFtYmRhLmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUUzNENEMEQwMjI4MTBBMDIwMDIwRDI5OSAvKiBQYWNr
ZWQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gUGFja2VkLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCUUzNjBDNzY0MjEyN0I4NUIwMEM5MEYwRSAvKiBVbmFsaWduZWRBY2Nlc3MuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gVW5hbGlnbmVkQWNjZXNzLmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CkBAIC0xMDgzLDYgKzEwODQsNyBAQAogCQkJCTBGNjZCMjgyMURDOTdC
QUIwMDRBMUQzRiAvKiBNb25vdG9uaWNUaW1lLmNwcCAqLywKIAkJCQkwRjY2QjI4MzFEQzk3QkFC
MDA0QTFEM0YgLyogTW9ub3RvbmljVGltZS5oICovLAogCQkJCUZFODIyNTMwMUIyQTFFNUIwMEJB
NjhGRCAvKiBOYWtlZFB0ci5oICovLAorCQkJCUUzMkEyMDczMjNDNTkwMkQwMDM0QTA5MiAvKiBO
YWtlZFJlZi5oICovLAogCQkJCTBGNUJGMTY1MUYyMzE3ODMwMDI5RDkxRCAvKiBOYXR1cmFsTG9v
cHMuaCAqLywKIAkJCQkxQTNGNkJFNjE3NEFEQTIxMDBCMkVFQTcgLyogTmV2ZXJEZXN0cm95ZWQu
aCAqLywKIAkJCQkwRjBEODVCMzE3MjM0Q0IxMDAzMzgyMTAgLyogTm9Mb2NrLmggKi8sCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9DTWFrZUxpc3RzLnR4dCBiL1NvdXJjZS9XVEYvd3RmL0NN
YWtlTGlzdHMudHh0CmluZGV4IDZhODI2ODJhYmQyOGRjYzZiY2JlZjM2MGU5NjM0ZDVjNGM4NDAz
MzAuLmFjYmE0MDBmNjBlMjA5NjAzYWZlNzA3YTM2YWI4YTQ2NzBhYzUwODkgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XVEYvd3RmL0NNYWtlTGlzdHMudHh0CisrKyBiL1NvdXJjZS9XVEYvd3RmL0NNYWtl
TGlzdHMudHh0CkBAIC0xMzksNiArMTM5LDcgQEAgc2V0KFdURl9QVUJMSUNfSEVBREVSUwogICAg
IE1ldGFBbGxvY2F0b3JQdHIuaAogICAgIE1vbm90b25pY1RpbWUuaAogICAgIE5ha2VkUHRyLmgK
KyAgICBOYWtlZFJlZi5oCiAgICAgTmF0dXJhbExvb3BzLmgKICAgICBOZXZlckRlc3Ryb3llZC5o
CiAgICAgTm9Mb2NrLmgKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL05ha2VkUmVmLmggYi9T
b3VyY2UvV1RGL3d0Zi9OYWtlZFJlZi5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjk1MDU0ZDM0YWQwM2ZjYzc3MmU1
MTRkNjIxYWYyZjEzMTdjNjkwZGYKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9O
YWtlZFJlZi5oCkBAIC0wLDAgKzEsMTIxIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFw
cGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBt
dXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3Ry
aWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0
ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRX
QVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJF
U1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywg
VEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVO
VCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkg
RElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1Ig
Q09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAq
IFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNF
LCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVS
IENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENP
TlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VD
SCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpbmNsdWRlIDx3dGYvRHVtYlB0clRy
YWl0cy5oPgorI2luY2x1ZGUgPHd0Zi9GYXN0TWFsbG9jLmg+CisKK25hbWVzcGFjZSBXVEYgewor
CisvLyBUaGUgcHVycG9zZSBvZiB0aGlzIGNsYXNzIGlzIHRvIGVuc3VyZSB0aGF0IHRoZSB3cmFw
cGVkIHBvaW50ZXIgd2lsbCBuZXZlciBiZQorLy8gdXNlZCB1bmluaXRpYWxpemVkLgorCit0ZW1w
bGF0ZSA8dHlwZW5hbWUgVD4gY2xhc3MgTmFrZWRSZWYgeworICAgIFdURl9NQUtFX0ZBU1RfQUxM
T0NBVEVEOworcHVibGljOgorICAgIEFMV0FZU19JTkxJTkUgTmFrZWRSZWYoVCYgcmVmKSA6IG1f
cHRyKCZyZWYpIHsgfQorICAgIEFMV0FZU19JTkxJTkUgTmFrZWRSZWYoY29uc3QgTmFrZWRSZWYm
KSA9IGRlbGV0ZTsKKyAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBVPiBOYWtlZFJlZihjb25zdCBOYWtl
ZFJlZjxVPiYpID0gZGVsZXRlOworCisgICAgQUxXQVlTX0lOTElORSBOYWtlZFJlZihOYWtlZFJl
ZiYmIG90aGVyKQorICAgICAgICA6IG1fcHRyKCZvdGhlci5sZWFrUmVmKCkpCisgICAgeworICAg
ICAgICBBU1NFUlQobV9wdHIpOworICAgIH0KKworICAgIHRlbXBsYXRlPHR5cGVuYW1lIFU+Cisg
ICAgTmFrZWRSZWYoTmFrZWRSZWY8VT4mJiBvdGhlcikKKyAgICAgICAgOiBtX3B0cigmb3RoZXIu
bGVha1JlZigpKQorICAgIHsKKyAgICAgICAgQVNTRVJUKG1fcHRyKTsKKyAgICB9CisKKyAgICBB
TFdBWVNfSU5MSU5FIFQqIG9wZXJhdG9yLT4oKSBjb25zdCB7IEFTU0VSVChtX3B0cik7IHJldHVy
biBtX3B0cjsgfQorICAgIFQqIHB0cigpIGNvbnN0IFJFVFVSTlNfTk9OTlVMTCB7IEFTU0VSVCht
X3B0cik7IHJldHVybiBtX3B0cjsgfQorICAgIFQmIGdldCgpIGNvbnN0IHsgcmV0dXJuICptX3B0
cjsgfQorICAgIG9wZXJhdG9yIFQmKCkgY29uc3QgeyBBU1NFUlQobV9wdHIpOyByZXR1cm4gKm1f
cHRyOyB9CisgICAgYm9vbCBvcGVyYXRvciEoKSBjb25zdCB7IEFTU0VSVChtX3B0cik7IHJldHVy
biAhKm1fcHRyOyB9CisKKyAgICBOYWtlZFJlZiBjb3B5UmVmKCkgJiYgPSBkZWxldGU7CisgICAg
TmFrZWRSZWYgY29weVJlZigpIGNvbnN0ICYgV0FSTl9VTlVTRURfUkVUVVJOIHsgcmV0dXJuIE5h
a2VkUmVmKCptX3B0cik7IH0KKworICAgIE5ha2VkUmVmJiBvcGVyYXRvcj0oVCYpOworICAgIE5h
a2VkUmVmJiBvcGVyYXRvcj0oTmFrZWRSZWYmJik7CisgICAgdGVtcGxhdGU8dHlwZW5hbWUgVT4g
TmFrZWRSZWYmIG9wZXJhdG9yPShOYWtlZFJlZjxVPiYmKTsKKworICAgIC8vIFVzZSBjb3B5UmVm
KCkgYW5kIHRoZSBtb3ZlIGFzc2lnbm1lbnQgb3BlcmF0b3JzIGluc3RlYWQuCisgICAgTmFrZWRS
ZWYmIG9wZXJhdG9yPShjb25zdCBOYWtlZFJlZiYpID0gZGVsZXRlOworICAgIHRlbXBsYXRlPHR5
cGVuYW1lIFg+IE5ha2VkUmVmJiBvcGVyYXRvcj0oY29uc3QgTmFrZWRSZWY8WD4mKSA9IGRlbGV0
ZTsKKworICAgIHRlbXBsYXRlPHR5cGVuYW1lIFU+IHZvaWQgc3dhcChOYWtlZFJlZjxVPiYpOwor
CisgICAgVCYgbGVha1JlZigpIFdBUk5fVU5VU0VEX1JFVFVSTgorICAgIHsKKyAgICAgICAgQVNT
RVJUKG1fcHRyKTsKKyAgICAgICAgVCYgcmVzdWx0ID0gKkR1bWJQdHJUcmFpdHM8VD46OmV4Y2hh
bmdlKG1fcHRyLCBudWxscHRyKTsKKyAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICB9CisKK3By
aXZhdGU6CisgICAgVCogbV9wdHI7Cit9OworCit0ZW1wbGF0ZTx0eXBlbmFtZSBUPiBpbmxpbmUg
TmFrZWRSZWY8VD4mIE5ha2VkUmVmPFQ+OjpvcGVyYXRvcj0oTmFrZWRSZWYmJiByZWZlcmVuY2Up
Cit7CisgICAgTmFrZWRSZWYgbW92ZWRSZWZlcmVuY2UgPSBXVEZNb3ZlKHJlZmVyZW5jZSk7Cisg
ICAgc3dhcChtb3ZlZFJlZmVyZW5jZSk7CisgICAgcmV0dXJuICp0aGlzOworfQorCit0ZW1wbGF0
ZTx0eXBlbmFtZSBUPiBpbmxpbmUgTmFrZWRSZWY8VD4mIE5ha2VkUmVmPFQ+OjpvcGVyYXRvcj0o
VCYgcmVmKQoreworICAgIE5ha2VkUmVmIGNvcGllZFJlZmVyZW5jZSA9IHJlZjsKKyAgICBzd2Fw
KGNvcGllZFJlZmVyZW5jZSk7CisgICAgcmV0dXJuICp0aGlzOworfQorCit0ZW1wbGF0ZTx0eXBl
bmFtZSBUPiB0ZW1wbGF0ZTx0eXBlbmFtZSBVPiBpbmxpbmUgTmFrZWRSZWY8VD4mIE5ha2VkUmVm
PFQ+OjpvcGVyYXRvcj0oTmFrZWRSZWY8VT4mJiBvdGhlcikKK3sKKyAgICBOYWtlZFJlZiByZWYg
PSBXVEZNb3ZlKG90aGVyKTsKKyAgICBzd2FwKHJlZik7CisgICAgcmV0dXJuICp0aGlzOworfQor
Cit0ZW1wbGF0ZTxjbGFzcyBUPgordGVtcGxhdGU8Y2xhc3MgVT4KK2lubGluZSB2b2lkIE5ha2Vk
UmVmPFQ+Ojpzd2FwKE5ha2VkUmVmPFU+JiBvdGhlcikKK3sKKyAgICBzdGQ6OnN3YXAobV9wdHIs
IG90aGVyLm1fcHRyKTsKK30KKwordGVtcGxhdGU8Y2xhc3MgVCwgY2xhc3MgVT4gaW5saW5lIHZv
aWQgc3dhcChOYWtlZFJlZjxUPiYgYSwgTmFrZWRSZWY8VT4mIGIpCit7CisgICAgYS5zd2FwKGIp
OworfQorCit9IC8vIG5hbWVzcGFjZSBXVEYKKwordXNpbmcgV1RGOjpOYWtlZFJlZjsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvbWFjL1dlYkNvcmVGcmFtZVZpZXcuaCBiL1NvdXJj
ZS9XZWJDb3JlL3BhZ2UvbWFjL1dlYkNvcmVGcmFtZVZpZXcuaAppbmRleCAyODRlMmE1ZDZmNGRl
NzQ0NTI3YmE5Mzk3YTRmYzdlYzM0ZTI3YTRkLi5lMGY5ZjE0Zjc4NDU2Nzg2ODgyNTU3N2E2Mzkw
ZDUwYjMxZGY4NTM3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL21hYy9XZWJDb3Jl
RnJhbWVWaWV3LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9tYWMvV2ViQ29yZUZyYW1lVmll
dy5oCkBAIC0yNSw2ICsyNSw3IEBACiAKICNpbXBvcnQgIlNjcm9sbFR5cGVzLmgiCiAjaW1wb3J0
IDx3dGYvUGxhdGZvcm0uaD4KKyNpbXBvcnQgPHd0Zi9OYWtlZFB0ci5oPgogCiAjaWYgUExBVEZP
Uk0oSU9TX0ZBTUlMWSkKICNpbXBvcnQgIldBS0FwcEtpdFN0dWJzLmgiCkBAIC00NCw1ICs0NSw1
IEBAIGNsYXNzIEZyYW1lOwogQGVuZAogCiBAcHJvdG9jb2wgV2ViQ29yZUZyYW1lVmlldwotLSAo
V2ViQ29yZTo6RnJhbWUqKV93ZWJfZnJhbWU7CistIChOYWtlZFB0cjxXZWJDb3JlOjpGcmFtZT4p
X3dlYl9mcmFtZTsKIEBlbmQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2NvY29hL1dlYkdMTGF5ZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2NvY29hL1dlYkdMTGF5ZXIuaAppbmRleCBmNzY3OTA5NzQ3ZmVmZjQ4NzE0YjFiYWQwOWYx
MzJiZGViOGJmNjVlLi44YjU2NjY2YTFiYzg1MDNmMDEyNjM4ODExMDJkZTUxNzAxZTUwZDM3IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9XZWJHTExh
eWVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvV2ViR0xM
YXllci5oCkBAIC0yOCw2ICsyOCw3IEBACiAjaW1wb3J0ICJJT1N1cmZhY2UuaCIKICNpbXBvcnQg
IkludFNpemUuaCIKICNpbXBvcnQgPFF1YXJ0ekNvcmUvUXVhcnR6Q29yZS5oPgorI2ltcG9ydCA8
d3RmL05ha2VkUHRyLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIGNsYXNzIEdyYXBoaWNzTGF5
ZXI7CkBAIC00Niw3ICs0Nyw3IEBAIEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0JFR0lO
CiAjZXJyb3IgVW5zdXBwb3J0ZWQgcGxhdGZvcm0KICNlbmRpZgogewotICAgIFdlYkNvcmU6Okdy
YXBoaWNzQ29udGV4dEdMT3BlbkdMKiBfY29udGV4dDsKKyAgICBOYWtlZFB0cjxXZWJDb3JlOjpH
cmFwaGljc0NvbnRleHRHTE9wZW5HTD4gX2NvbnRleHQ7CiAgICAgZmxvYXQgX2RldmljZVBpeGVs
UmF0aW87CiAjaWYgSEFWRShJT1NVUkZBQ0UpICYmIChVU0UoT1BFTkdMKSB8fCBVU0UoQU5HTEUp
KQogICAgIHN0ZDo6dW5pcXVlX3B0cjxXZWJDb3JlOjpJT1N1cmZhY2U+IF9jb250ZW50c0J1ZmZl
cjsKQEAgLTY1LDkgKzY2LDkgQEAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfQkVHSU4K
ICNlbmRpZgogfQogCi1AcHJvcGVydHkgKG5vbmF0b21pYykgV2ViQ29yZTo6R3JhcGhpY3NDb250
ZXh0R0xPcGVuR0wqIGNvbnRleHQ7CitAcHJvcGVydHkgKG5vbmF0b21pYykgTmFrZWRQdHI8V2Vi
Q29yZTo6R3JhcGhpY3NDb250ZXh0R0xPcGVuR0w+IGNvbnRleHQ7CiAKLS0gKGlkKWluaXRXaXRo
R3JhcGhpY3NDb250ZXh0R0w6KFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dEdMT3BlbkdMKiljb250
ZXh0OworLSAoaWQpaW5pdFdpdGhHcmFwaGljc0NvbnRleHRHTDooTmFrZWRQdHI8V2ViQ29yZTo6
R3JhcGhpY3NDb250ZXh0R0xPcGVuR0w+KWNvbnRleHQ7CiAKIC0gKENHSW1hZ2VSZWYpY29weUlt
YWdlU25hcHNob3RXaXRoQ29sb3JTcGFjZTooQ0dDb2xvclNwYWNlUmVmKWNvbG9yU3BhY2U7CiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL1dlYkdM
TGF5ZXIubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9XZWJHTExh
eWVyLm1tCmluZGV4IDI5MjAxNmFjMTRlYWMyYWE4ZmU0ZDE1ZDI4Zjk0YjAyZTJkNjc1Y2MuLjFl
YzA4ZTY2Nzc1M2U2MTYxZjgyZTgzMGRlYzIyZjFmODUxNmRhZmIgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL1dlYkdMTGF5ZXIubW0KKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvV2ViR0xMYXllci5tbQpAQCAtNjEs
NyArNjEsNyBAQCBAaW1wbGVtZW50YXRpb24gV2ViR0xMYXllcgogCiBAc3ludGhlc2l6ZSBjb250
ZXh0PV9jb250ZXh0OwogCi0tKGlkKWluaXRXaXRoR3JhcGhpY3NDb250ZXh0R0w6KFdlYkNvcmU6
OkdyYXBoaWNzQ29udGV4dEdMT3BlbkdMKiljb250ZXh0CistKGlkKWluaXRXaXRoR3JhcGhpY3ND
b250ZXh0R0w6KE5ha2VkUHRyPFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dEdMT3BlbkdMPiljb250
ZXh0CiB7CiAgICAgX2NvbnRleHQgPSBjb250ZXh0OwogICAgIHNlbGYgPSBbc3VwZXIgaW5pdF07
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvU2Nyb2xsQW5pbWF0b3JN
YWMubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvU2Nyb2xsQW5pbWF0b3JNYWMubW0K
aW5kZXggZjU5MTc2NzJlZWZkZjFmNTIzY2RmNjkyNDZiMjM4NjA0OTRmYjJhMi4uNDA0MjYxY2Zj
NGJkODQ5ZGVmNDQ3MTQ1NzA4ZTE4NDVhZTBmNDZkYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbWFjL1Njcm9sbEFuaW1hdG9yTWFjLm1tCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL21hYy9TY3JvbGxBbmltYXRvck1hYy5tbQpAQCAtNDAsNiArNDAsNyBAQAogI2lu
Y2x1ZGUgIlNjcm9sbGJhclRoZW1lTWFjLmgiCiAjaW5jbHVkZSA8cGFsL3NwaS9tYWMvTlNTY3Jv
bGxlckltcFNQSS5oPgogI2luY2x1ZGUgPHd0Zi9CbG9ja09iakNFeGNlcHRpb25zLmg+CisjaW5j
bHVkZSA8d3RmL05ha2VkUHRyLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvVGV4dFN0cmVhbS5oPgog
CiBuYW1lc3BhY2UgV2ViQ29yZSB7CkBAIC04MSw5ICs4Miw5IEBAIEBlbmQKIAogQGludGVyZmFj
ZSBXZWJTY3JvbGxBbmltYXRpb25IZWxwZXJEZWxlZ2F0ZSA6IE5TT2JqZWN0CiB7Ci0gICAgV2Vi
Q29yZTo6U2Nyb2xsQW5pbWF0b3JNYWMqIF9hbmltYXRvcjsKKyAgICBOYWtlZFB0cjxXZWJDb3Jl
OjpTY3JvbGxBbmltYXRvck1hYz4gX2FuaW1hdG9yOwogfQotLSAoaWQpaW5pdFdpdGhTY3JvbGxB
bmltYXRvcjooV2ViQ29yZTo6U2Nyb2xsQW5pbWF0b3JNYWMqKXNjcm9sbEFuaW1hdG9yOworLSAo
aWQpaW5pdFdpdGhTY3JvbGxBbmltYXRvcjooTmFrZWRQdHI8V2ViQ29yZTo6U2Nyb2xsQW5pbWF0
b3JNYWM+KXNjcm9sbEFuaW1hdG9yOwogQGVuZAogCiBzdGF0aWMgTlNTaXplIGFicyhOU1NpemUg
c2l6ZSkKQEAgLTk4LDcgKzk5LDcgQEAgc3RhdGljIE5TU2l6ZSBhYnMoTlNTaXplIHNpemUpCiAK
IEBpbXBsZW1lbnRhdGlvbiBXZWJTY3JvbGxBbmltYXRpb25IZWxwZXJEZWxlZ2F0ZQogCi0tIChp
ZClpbml0V2l0aFNjcm9sbEFuaW1hdG9yOihXZWJDb3JlOjpTY3JvbGxBbmltYXRvck1hYyopc2Ny
b2xsQW5pbWF0b3IKKy0gKGlkKWluaXRXaXRoU2Nyb2xsQW5pbWF0b3I6KE5ha2VkUHRyPFdlYkNv
cmU6OlNjcm9sbEFuaW1hdG9yTWFjPilzY3JvbGxBbmltYXRvcgogewogICAgIHNlbGYgPSBbc3Vw
ZXIgaW5pdF07CiAgICAgaWYgKCFzZWxmKQpAQCAtMTEwLDcgKzExMSw3IEBAIC0gKGlkKWluaXRX
aXRoU2Nyb2xsQW5pbWF0b3I6KFdlYkNvcmU6OlNjcm9sbEFuaW1hdG9yTWFjKilzY3JvbGxBbmlt
YXRvcgogCiAtICh2b2lkKWludmFsaWRhdGUKIHsKLSAgICBfYW5pbWF0b3IgPSAwOworICAgIF9h
bmltYXRvciA9IG51bGxwdHI7CiB9CiAKIC0gKE5TUmVjdClib3VuZHMKQEAgLTQ3Myw3ICs0NzQs
NyBAQCAtICh2b2lkKWNhbmNlbEFuaW1hdGlvbnMKICAgICBFTkRfQkxPQ0tfT0JKQ19FWENFUFRJ
T05TOwogfQogCi0tIChTY3JvbGxBbmltYXRvck1hYyopc2Nyb2xsQW5pbWF0b3IKKy0gKE5ha2Vk
UHRyPFNjcm9sbEFuaW1hdG9yTWFjPilzY3JvbGxBbmltYXRvcgogewogICAgIHJldHVybiAmc3Rh
dGljX2Nhc3Q8U2Nyb2xsQW5pbWF0b3JNYWMmPihfc2Nyb2xsYmFyLT5zY3JvbGxhYmxlQXJlYSgp
LnNjcm9sbEFuaW1hdG9yKCkpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3Jr
UHJvY2Vzcy9jb2NvYS9OZXR3b3JrU2Vzc2lvbkNvY29hLm1tIGIvU291cmNlL1dlYktpdC9OZXR3
b3JrUHJvY2Vzcy9jb2NvYS9OZXR3b3JrU2Vzc2lvbkNvY29hLm1tCmluZGV4IDgyZjc5MWM5NWE1
MTZhYTIxMGZiN2U0NmRlMGEzODlmZGY4ZTc1NjQuLjk3N2RiZWQ1OGUzNTg2ZjZmMGZmYzFhYjUy
NGE2MTFlYTNlOWUzYTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mv
Y29jb2EvTmV0d29ya1Nlc3Npb25Db2NvYS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQ
cm9jZXNzL2NvY29hL05ldHdvcmtTZXNzaW9uQ29jb2EubW0KQEAgLTUwLDYgKzUwLDcgQEAKICNp
bXBvcnQgPHBhbC9zcGkvY2YvQ0ZOZXR3b3JrU1BJLmg+CiAjaW1wb3J0IDx3dGYvQmxvY2tQdHIu
aD4KICNpbXBvcnQgPHd0Zi9NYWluVGhyZWFkLmg+CisjaW1wb3J0IDx3dGYvTmFrZWRSZWYuaD4K
ICNpbXBvcnQgPHd0Zi9OZXZlckRlc3Ryb3llZC5oPgogI2ltcG9ydCA8d3RmL09iakNSdW50aW1l
RXh0cmFzLmg+CiAjaW1wb3J0IDx3dGYvUHJvY2Vzc1ByaXZpbGVnZS5oPgpAQCAtNDAxLDIwICs0
MDIsMjAgQEAgQGludGVyZmFjZSBXS05ldHdvcmtTZXNzaW9uRGVsZWdhdGUgOiBOU09iamVjdCA8
TlNVUkxTZXNzaW9uRGF0YURlbGVnYXRlCiAgICAgYm9vbCBfd2l0aENyZWRlbnRpYWxzOwogfQog
Ci0tIChpZClpbml0V2l0aE5ldHdvcmtTZXNzaW9uOihXZWJLaXQ6Ok5ldHdvcmtTZXNzaW9uQ29j
b2EmKXNlc3Npb24gd3JhcHBlcjooV2ViS2l0OjpTZXNzaW9uV3JhcHBlciYpc2Vzc2lvbldyYXBw
ZXIgd2l0aENyZWRlbnRpYWxzOihib29sKXdpdGhDcmVkZW50aWFsczsKKy0gKGlkKWluaXRXaXRo
TmV0d29ya1Nlc3Npb246KE5ha2VkUmVmPFdlYktpdDo6TmV0d29ya1Nlc3Npb25Db2NvYT4pc2Vz
c2lvbiB3cmFwcGVyOihXZWJLaXQ6OlNlc3Npb25XcmFwcGVyJilzZXNzaW9uV3JhcHBlciB3aXRo
Q3JlZGVudGlhbHM6KGJvb2wpd2l0aENyZWRlbnRpYWxzOwogLSAodm9pZClzZXNzaW9uSW52YWxp
ZGF0ZWQ7CiAKIEBlbmQKIAogQGltcGxlbWVudGF0aW9uIFdLTmV0d29ya1Nlc3Npb25EZWxlZ2F0
ZQogCi0tIChpZClpbml0V2l0aE5ldHdvcmtTZXNzaW9uOihXZWJLaXQ6Ok5ldHdvcmtTZXNzaW9u
Q29jb2EmKXNlc3Npb24gd3JhcHBlcjooV2ViS2l0OjpTZXNzaW9uV3JhcHBlciYpc2Vzc2lvbldy
YXBwZXIgd2l0aENyZWRlbnRpYWxzOihib29sKXdpdGhDcmVkZW50aWFscworLSAoaWQpaW5pdFdp
dGhOZXR3b3JrU2Vzc2lvbjooTmFrZWRSZWY8V2ViS2l0OjpOZXR3b3JrU2Vzc2lvbkNvY29hPilz
ZXNzaW9uIHdyYXBwZXI6KFdlYktpdDo6U2Vzc2lvbldyYXBwZXImKXNlc3Npb25XcmFwcGVyIHdp
dGhDcmVkZW50aWFsczooYm9vbCl3aXRoQ3JlZGVudGlhbHMKIHsKICAgICBzZWxmID0gW3N1cGVy
IGluaXRdOwogICAgIGlmICghc2VsZikKICAgICAgICAgcmV0dXJuIG5pbDsKIAotICAgIF9zZXNz
aW9uID0gbWFrZVdlYWtQdHIoc2Vzc2lvbik7CisgICAgX3Nlc3Npb24gPSBtYWtlV2Vha1B0cihz
ZXNzaW9uLmdldCgpKTsKICAgICBfc2Vzc2lvbldyYXBwZXIgPSBtYWtlV2Vha1B0cihzZXNzaW9u
V3JhcHBlcik7CiAgICAgX3dpdGhDcmVkZW50aWFscyA9IHdpdGhDcmVkZW50aWFsczsKIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvQVBJL0NvY29hL1dLQnJvd3NpbmdDb250ZXh0
SGFuZGxlLm1tIGIvU291cmNlL1dlYktpdC9TaGFyZWQvQVBJL0NvY29hL1dLQnJvd3NpbmdDb250
ZXh0SGFuZGxlLm1tCmluZGV4IGFiMmVkOWJlMzBlYWE3ODU1YTFkMzQ0M2YwZDRmYzhjOGIyMzhj
ZTkuLjlkM2VkZjE3MDAzZWYyNDZhZmViNzhkMTcwMzRkN2NhNDRhMDNlOGEgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvU2hhcmVkL0FQSS9Db2NvYS9XS0Jyb3dzaW5nQ29udGV4dEhhbmRsZS5t
bQorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9BUEkvQ29jb2EvV0tCcm93c2luZ0NvbnRleHRI
YW5kbGUubW0KQEAgLTMyLDE0ICszMiwxNCBAQAogCiBAaW1wbGVtZW50YXRpb24gV0tCcm93c2lu
Z0NvbnRleHRIYW5kbGUKIAotLSAoaWQpX2luaXRXaXRoUGFnZVByb3h5OihXZWJLaXQ6OldlYlBh
Z2VQcm94eSYpcGFnZQorLSAoaWQpX2luaXRXaXRoUGFnZVByb3h5OihOYWtlZFJlZjxXZWJLaXQ6
OldlYlBhZ2VQcm94eT4pcGFnZQogewotICAgIHJldHVybiBbc2VsZiBfaW5pdFdpdGhQYWdlUHJv
eHlJRDpwYWdlLmlkZW50aWZpZXIoKSBhbmRXZWJQYWdlSUQ6cGFnZS53ZWJQYWdlSUQoKV07Cisg
ICAgcmV0dXJuIFtzZWxmIF9pbml0V2l0aFBhZ2VQcm94eUlEOnBhZ2UtPmlkZW50aWZpZXIoKSBh
bmRXZWJQYWdlSUQ6cGFnZS0+d2ViUGFnZUlEKCldOwogfQogCi0tIChpZClfaW5pdFdpdGhQYWdl
OihXZWJLaXQ6OldlYlBhZ2UmKXBhZ2UKKy0gKGlkKV9pbml0V2l0aFBhZ2U6KE5ha2VkUmVmPFdl
YktpdDo6V2ViUGFnZT4pcGFnZQogewotICAgIHJldHVybiBbc2VsZiBfaW5pdFdpdGhQYWdlUHJv
eHlJRDpwYWdlLndlYlBhZ2VQcm94eUlkZW50aWZpZXIoKSBhbmRXZWJQYWdlSUQ6cGFnZS5pZGVu
dGlmaWVyKCldOworICAgIHJldHVybiBbc2VsZiBfaW5pdFdpdGhQYWdlUHJveHlJRDpwYWdlLT53
ZWJQYWdlUHJveHlJZGVudGlmaWVyKCkgYW5kV2ViUGFnZUlEOnBhZ2UtPmlkZW50aWZpZXIoKV07
CiB9CiAKIC0gKGlkKV9pbml0V2l0aFBhZ2VQcm94eUlEOihXZWJLaXQ6OldlYlBhZ2VQcm94eUlk
ZW50aWZpZXIpcGFnZVByb3h5SUQgYW5kV2ViUGFnZUlEOihXZWJDb3JlOjpQYWdlSWRlbnRpZmll
cil3ZWJQYWdlSUQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0FQSS9Db2NvYS9X
S0Jyb3dzaW5nQ29udGV4dEhhbmRsZUludGVybmFsLmggYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9B
UEkvQ29jb2EvV0tCcm93c2luZ0NvbnRleHRIYW5kbGVJbnRlcm5hbC5oCmluZGV4IDhkZWQ1OWZi
NTU1MThkMjg5M2M3NzFiNjNlYTliZWM0MjA2NjU5Y2UuLmI5ODg0ZTM3NTBhMThkZTU5NjliYjM4
Y2U1MzhlZWQ4ZTQyNmFjNGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0FQSS9D
b2NvYS9XS0Jyb3dzaW5nQ29udGV4dEhhbmRsZUludGVybmFsLmgKKysrIGIvU291cmNlL1dlYktp
dC9TaGFyZWQvQVBJL0NvY29hL1dLQnJvd3NpbmdDb250ZXh0SGFuZGxlSW50ZXJuYWwuaApAQCAt
MjYsNiArMjYsNyBAQAogI2ltcG9ydCAiV0tCcm93c2luZ0NvbnRleHRIYW5kbGUuaCIKICNpbXBv
cnQgIldlYlBhZ2VQcm94eUlkZW50aWZpZXIuaCIKICNpbXBvcnQgPFdlYkNvcmUvUGFnZUlkZW50
aWZpZXIuaD4KKyNpbXBvcnQgPHd0Zi9OYWtlZFJlZi5oPgogCiBuYW1lc3BhY2UgV2ViS2l0IHsK
IGNsYXNzIFdlYlBhZ2U7CkBAIC0zNyw3ICszOCw3IEBAIGNsYXNzIFdlYlBhZ2VQcm94eTsKIEBw
cm9wZXJ0eSAobm9uYXRvbWljLCByZWFkb25seSwgZ2V0dGVyPV9wYWdlUHJveHlJRCkgV2ViS2l0
OjpXZWJQYWdlUHJveHlJZGVudGlmaWVyIHBhZ2VQcm94eUlEOwogQHByb3BlcnR5IChub25hdG9t
aWMsIHJlYWRvbmx5LCBnZXR0ZXI9X3dlYlBhZ2VJRCkgV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIg
d2ViUGFnZUlEOwogCi0tIChpZClfaW5pdFdpdGhQYWdlUHJveHk6KFdlYktpdDo6V2ViUGFnZVBy
b3h5JilwYWdlOwotLSAoaWQpX2luaXRXaXRoUGFnZTooV2ViS2l0OjpXZWJQYWdlJilwYWdlOwor
LSAoaWQpX2luaXRXaXRoUGFnZVByb3h5OihOYWtlZFJlZjxXZWJLaXQ6OldlYlBhZ2VQcm94eT4p
cGFnZTsKKy0gKGlkKV9pbml0V2l0aFBhZ2U6KE5ha2VkUmVmPFdlYktpdDo6V2ViUGFnZT4pcGFn
ZTsKIC0gKGlkKV9pbml0V2l0aFBhZ2VQcm94eUlEOihXZWJLaXQ6OldlYlBhZ2VQcm94eUlkZW50
aWZpZXIpcGFnZVByb3h5SUQgYW5kV2ViUGFnZUlEOihXZWJDb3JlOjpQYWdlSWRlbnRpZmllcil3
ZWJQYWdlSUQ7CiBAZW5kCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9BUEkvQ29j
b2EvX1dLUmVtb3RlT2JqZWN0UmVnaXN0cnkubW0gYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9BUEkv
Q29jb2EvX1dLUmVtb3RlT2JqZWN0UmVnaXN0cnkubW0KaW5kZXggNDc0YWI1MTU2NzUxMWM2M2Iy
OTQ2ZjI3ZTBjOTVkNmVkNmZkODA0My4uNTQxMDQ3ZWRkZjI4MGU0NmJkZDcxMDliZjNhMzgxODVi
ZjVkNGQyZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvQVBJL0NvY29hL19XS1Jl
bW90ZU9iamVjdFJlZ2lzdHJ5Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0FQSS9Db2Nv
YS9fV0tSZW1vdGVPYmplY3RSZWdpc3RyeS5tbQpAQCAtMTA2LDIyICsxMDYsMjIgQEAgLSAoaWQp
cmVtb3RlT2JqZWN0UHJveHlXaXRoSW50ZXJmYWNlOihfV0tSZW1vdGVPYmplY3RJbnRlcmZhY2Ug
KilpbnRlcmZhY2UKICAgICByZXR1cm4gcmVtb3RlT2JqZWN0LmF1dG9yZWxlYXNlKCk7CiB9CiAK
LS0gKGlkKV9pbml0V2l0aFdlYlBhZ2U6KFdlYktpdDo6V2ViUGFnZSYpcGFnZQorLSAoaWQpX2lu
aXRXaXRoV2ViUGFnZTooTmFrZWRSZWY8V2ViS2l0OjpXZWJQYWdlPilwYWdlCiB7CiAgICAgaWYg
KCEoc2VsZiA9IFtzdXBlciBpbml0XSkpCiAgICAgICAgIHJldHVybiBuaWw7CiAKLSAgICBfcmVt
b3RlT2JqZWN0UmVnaXN0cnkgPSBtYWtlVW5pcXVlPFdlYktpdDo6V2ViUmVtb3RlT2JqZWN0UmVn
aXN0cnk+KHNlbGYsIHBhZ2UpOworICAgIF9yZW1vdGVPYmplY3RSZWdpc3RyeSA9IG1ha2VVbmlx
dWU8V2ViS2l0OjpXZWJSZW1vdGVPYmplY3RSZWdpc3RyeT4oc2VsZiwgcGFnZS5nZXQoKSk7CiAK
ICAgICByZXR1cm4gc2VsZjsKIH0KIAotLSAoaWQpX2luaXRXaXRoV2ViUGFnZVByb3h5OihXZWJL
aXQ6OldlYlBhZ2VQcm94eSYpcGFnZQorLSAoaWQpX2luaXRXaXRoV2ViUGFnZVByb3h5OihOYWtl
ZFJlZjxXZWJLaXQ6OldlYlBhZ2VQcm94eT4pcGFnZQogewogICAgIGlmICghKHNlbGYgPSBbc3Vw
ZXIgaW5pdF0pKQogICAgICAgICByZXR1cm4gbmlsOwogCi0gICAgX3JlbW90ZU9iamVjdFJlZ2lz
dHJ5ID0gbWFrZVVuaXF1ZTxXZWJLaXQ6OlVJUmVtb3RlT2JqZWN0UmVnaXN0cnk+KHNlbGYsIHBh
Z2UpOworICAgIF9yZW1vdGVPYmplY3RSZWdpc3RyeSA9IG1ha2VVbmlxdWU8V2ViS2l0OjpVSVJl
bW90ZU9iamVjdFJlZ2lzdHJ5PihzZWxmLCBwYWdlLmdldCgpKTsKIAogICAgIHJldHVybiBzZWxm
OwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvQVBJL0NvY29hL19XS1JlbW90
ZU9iamVjdFJlZ2lzdHJ5SW50ZXJuYWwuaCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0FQSS9Db2Nv
YS9fV0tSZW1vdGVPYmplY3RSZWdpc3RyeUludGVybmFsLmgKaW5kZXggOTQ5ZTQzOGYxZDZmZjZm
ZTcxMTM4ZDMyYzA4NjkzZjc0MzlhMmY0OC4uZWM1OWFkMmQ5ZDhkZWY3MTA2MzFmYjk4ZTBkNjY1
YmFkMTZmZDEwNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvQVBJL0NvY29hL19X
S1JlbW90ZU9iamVjdFJlZ2lzdHJ5SW50ZXJuYWwuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJl
ZC9BUEkvQ29jb2EvX1dLUmVtb3RlT2JqZWN0UmVnaXN0cnlJbnRlcm5hbC5oCkBAIC0yNCw2ICsy
NCw3IEBACiAgKi8KIAogI2ltcG9ydCAiX1dLUmVtb3RlT2JqZWN0UmVnaXN0cnkuaCIKKyNpbXBv
cnQgPHd0Zi9OYWtlZFJlZi5oPgogCiBuYW1lc3BhY2UgSVBDIHsKIGNsYXNzIE1lc3NhZ2VTZW5k
ZXI7CkBAIC00MSw4ICs0Miw4IEBAIGNsYXNzIFdlYlBhZ2VQcm94eTsKIAogQHByb3BlcnR5IChu
b25hdG9taWMsIHJlYWRvbmx5KSBXZWJLaXQ6OlJlbW90ZU9iamVjdFJlZ2lzdHJ5JiByZW1vdGVP
YmplY3RSZWdpc3RyeTsKIAotLSAoaWQpX2luaXRXaXRoV2ViUGFnZTooV2ViS2l0OjpXZWJQYWdl
JiltZXNzYWdlU2VuZGVyOwotLSAoaWQpX2luaXRXaXRoV2ViUGFnZVByb3h5OihXZWJLaXQ6Oldl
YlBhZ2VQcm94eSYpbWVzc2FnZVNlbmRlcjsKKy0gKGlkKV9pbml0V2l0aFdlYlBhZ2U6KE5ha2Vk
UmVmPFdlYktpdDo6V2ViUGFnZT4pbWVzc2FnZVNlbmRlcjsKKy0gKGlkKV9pbml0V2l0aFdlYlBh
Z2VQcm94eTooTmFrZWRSZWY8V2ViS2l0OjpXZWJQYWdlUHJveHk+KW1lc3NhZ2VTZW5kZXI7CiAt
ICh2b2lkKV9pbnZhbGlkYXRlOwogCiAtICh2b2lkKV9zZW5kSW52b2NhdGlvbjooTlNJbnZvY2F0
aW9uICopaW52b2NhdGlvbiBpbnRlcmZhY2U6KF9XS1JlbW90ZU9iamVjdEludGVyZmFjZSAqKWlu
dGVyZmFjZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9X
S1dlYlZpZXcubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3
Lm1tCmluZGV4IDFiMDRkYjhjZmRkMWNjZmQ1ODgzYWM0MDU3NzNiY2IwNzE4NDA5MmYuLjFhNGNl
MmFiZWMyM2Q5YjBhM2QyOGFlNmE3NDQyNzZhYTE2MDJmNGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXcubW0KKysrIGIvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlldy5tbQpAQCAtMTI5Nyw3ICsxMjk3LDcgQEAg
LSAoV0tQYWdlUmVmKV9wYWdlRm9yVGVzdGluZwogICAgIHJldHVybiB0b0FQSShfcGFnZS5nZXQo
KSk7CiB9CiAKLS0gKFdlYktpdDo6V2ViUGFnZVByb3h5ICopX3BhZ2UKKy0gKE5ha2VkUHRyPFdl
YktpdDo6V2ViUGFnZVByb3h5PilfcGFnZQogewogICAgIHJldHVybiBfcGFnZS5nZXQoKTsKIH0K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXdJ
bnRlcm5hbC5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlld0lu
dGVybmFsLmgKaW5kZXggMGY4OWZkNmYwMzlhZGEyYTY2M2U0MDY3MDU1NmEwN2FlY2JjMWU0My4u
Y2M4OGNmNDBjZDljYTVmMzJmNWVlM2JjNTc3OWU0OWFlMjdmNWEwYiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlld0ludGVybmFsLmgKKysrIGIv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlld0ludGVybmFsLmgKQEAg
LTMxLDYgKzMxLDcgQEAKICNpbXBvcnQgIl9XS0F0dGFjaG1lbnRJbnRlcm5hbC5oIgogI2ltcG9y
dCAiX1dLV2ViVmlld1ByaW50Rm9ybWF0dGVySW50ZXJuYWwuaCIKICNpbXBvcnQgPHd0Zi9Db21w
bGV0aW9uSGFuZGxlci5oPgorI2ltcG9ydCA8d3RmL05ha2VkUHRyLmg+CiAjaW1wb3J0IDx3dGYv
UmVmUHRyLmg+CiAjaW1wb3J0IDx3dGYvUmV0YWluUHRyLmg+CiAjaW1wb3J0IDx3dGYvVmFyaWFu
dC5oPgpAQCAtMjUwLDcgKzI1MSw3IEBAIGNsYXNzIFZpZXdHZXN0dXJlQ29udHJvbGxlcjsKIC0g
KE9wdGlvbmFsPEJPT0w+KV9yZXNvbHV0aW9uRm9yU2hhcmVTaGVldEltbWVkaWF0ZUNvbXBsZXRp
b25Gb3JUZXN0aW5nOwogCiAtIChXS1BhZ2VSZWYpX3BhZ2VGb3JUZXN0aW5nOwotLSAoV2ViS2l0
OjpXZWJQYWdlUHJveHkqKV9wYWdlOworLSAoTmFrZWRQdHI8V2ViS2l0OjpXZWJQYWdlUHJveHk+
KV9wYWdlOwogCiBAZW5kCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQ
SS9Db2NvYS9XS1dlYnNpdGVEYXRhU3RvcmUubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9B
UEkvQ29jb2EvV0tXZWJzaXRlRGF0YVN0b3JlLm1tCmluZGV4IGNlZjQ4Mjc0N2RmMThmODQ4OTNl
YWZiZGU5ODFjYzAxZTVmYWY4MGUuLjg5YTRjYTJlYjZkNjRiZmVlNjkyMjAxZWNjYzdmZmZlY2I4
MGMxNzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dl
YnNpdGVEYXRhU3RvcmUubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29h
L1dLV2Vic2l0ZURhdGFTdG9yZS5tbQpAQCAtNDM1LDcgKzQzNSw3IEBAIC0gKHZvaWQpX2dldEFs
bFN0b3JhZ2VBY2Nlc3NFbnRyaWVzRm9yOihXS1dlYlZpZXcgKil3ZWJWaWV3IGNvbXBsZXRpb25I
YW5kbGVyOih2CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKLSAgICBhdXRvKiB3ZWJQYWdlUHJv
eHkgPSBbd2ViVmlldyBfcGFnZV07CisgICAgYXV0byB3ZWJQYWdlUHJveHkgPSBbd2ViVmlldyBf
cGFnZV07CiAgICAgaWYgKCF3ZWJQYWdlUHJveHkpIHsKICAgICAgICAgY29tcGxldGlvbkhhbmRs
ZXIoeyB9KTsKICAgICAgICAgcmV0dXJuOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvQVBJL0NvY29hL19XS1RodW1ibmFpbFZpZXcubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9BUEkvQ29jb2EvX1dLVGh1bWJuYWlsVmlldy5tbQppbmRleCAxMzYwNTNjNDdkYTUxYjAy
NjkyOTA0ZTI3Yzc1ODhhYzVkZWMxODVjLi41MzBlMGE4OTY5MGViNTMyZDY4Njk5MzkxMTlhMTJj
ZmE2ZmZiNjc4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2Ev
X1dLVGh1bWJuYWlsVmlldy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29j
b2EvX1dLVGh1bWJuYWlsVmlldy5tbQpAQCAtMzUsNiArMzUsNyBAQAogI2ltcG9ydCAiV0tXZWJW
aWV3SW50ZXJuYWwuaCIKICNpbXBvcnQgIldlYlBhZ2VQcm94eS5oIgogI2ltcG9ydCA8cGFsL3Nw
aS9jZy9Db3JlR3JhcGhpY3NTUEkuaD4KKyNpbXBvcnQgPHd0Zi9OYWtlZFB0ci5oPgogCiAvLyBG
SVhNRTogTWFrZSBpdCBwb3NzaWJsZSB0byBsZWF2ZSBhIHNuYXBzaG90IG9mIHRoZSBjb250ZW50
IHByZXNlbnRlZCBpbiB0aGUgV0tWaWV3IHdoaWxlIHRoZSB0aHVtYm5haWwgaXMgbGl2ZS4KIC8v
IEZJWE1FOiBEb24ndCBtYWtlIG5ldyBzcGVjdWxhdGl2ZSB0aWxlcyB3aGlsZSB0aHVtYm5haWxl
ZC4KQEAgLTQ3LDcgKzQ4LDcgQEAgQGltcGxlbWVudGF0aW9uIF9XS1RodW1ibmFpbFZpZXcgewog
ICAgIFJldGFpblB0cjxXS1ZpZXc+IF93a1ZpZXc7CiAgICAgQUxMT1dfREVQUkVDQVRFRF9ERUNM
QVJBVElPTlNfRU5ECiAgICAgUmV0YWluUHRyPFdLV2ViVmlldz4gX3drV2ViVmlldzsKLSAgICBX
ZWJLaXQ6OldlYlBhZ2VQcm94eSogX3dlYlBhZ2VQcm94eTsKKyAgICBOYWtlZFB0cjxXZWJLaXQ6
OldlYlBhZ2VQcm94eT4gX3dlYlBhZ2VQcm94eTsKIAogICAgIEJPT0wgX29yaWdpbmFsTWF5U3Rh
cnRNZWRpYVdoZW5JbldpbmRvdzsKICAgICBCT09MIF9vcmlnaW5hbFNvdXJjZVZpZXdJc0luV2lu
ZG93OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL21hYy9XS1ZpZXcu
bW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvbWFjL1dLVmlldy5tbQppbmRleCBiYjQx
ZDZlNjk2NWNkNGZhMTY1NTMyODNmZThlZDY0NTJiMmZiMDNmLi5kZGM2ZmZmYTMzMGE4M2NiNzJi
ZTE5MzBmYzcyMTAxMzM0MjBkODI2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9BUEkvbWFjL1dLVmlldy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvbWFj
L1dLVmlldy5tbQpAQCAtNDYsNiArNDYsNyBAQAogI2ltcG9ydCA8V2ViS2l0L1dLRHJhZ0Rlc3Rp
bmF0aW9uQWN0aW9uLmg+CiAjaW1wb3J0IDxwYWwvc3BpL2NvY29hL0FWS2l0U1BJLmg+CiAjaW1w
b3J0IDx3dGYvQmxvY2tQdHIuaD4KKyNpbXBvcnQgPHd0Zi9OYWtlZFJlZi5oPgogCiBAaW50ZXJm
YWNlIFdLVmlld0RhdGEgOiBOU09iamVjdCB7CiBAcHVibGljCkBAIC05NTAsNyArOTUxLDcgQEAg
LSAodm9pZCltYXliZUluc3RhbGxJY29uTG9hZGluZ0NsaWVudAogICAgICAgICBfZGF0YS0+X2lt
cGwtPnBhZ2UoKS5zZXRJY29uTG9hZGluZ0NsaWVudChtYWtlVW5pcXVlPEljb25Mb2FkaW5nQ2xp
ZW50PihzZWxmKSk7CiB9CiAKLS0gKGluc3RhbmNldHlwZSlpbml0V2l0aEZyYW1lOihOU1JlY3Qp
ZnJhbWUgcHJvY2Vzc1Bvb2w6KFdlYktpdDo6V2ViUHJvY2Vzc1Bvb2wmKXByb2Nlc3NQb29sIGNv
bmZpZ3VyYXRpb246KFJlZjxBUEk6OlBhZ2VDb25maWd1cmF0aW9uPiYmKWNvbmZpZ3VyYXRpb24K
Ky0gKGluc3RhbmNldHlwZSlpbml0V2l0aEZyYW1lOihOU1JlY3QpZnJhbWUgcHJvY2Vzc1Bvb2w6
KE5ha2VkUmVmPFdlYktpdDo6V2ViUHJvY2Vzc1Bvb2w+KXByb2Nlc3NQb29sIGNvbmZpZ3VyYXRp
b246KFJlZjxBUEk6OlBhZ2VDb25maWd1cmF0aW9uPiYmKWNvbmZpZ3VyYXRpb24KIHsKICAgICBz
ZWxmID0gW3N1cGVyIGluaXRXaXRoRnJhbWU6ZnJhbWVdOwogICAgIGlmICghc2VsZikKQEAgLTk1
OSw3ICs5NjAsNyBAQCAtIChpbnN0YW5jZXR5cGUpaW5pdFdpdGhGcmFtZTooTlNSZWN0KWZyYW1l
IHByb2Nlc3NQb29sOihXZWJLaXQ6OldlYlByb2Nlc3NQb29sJgogICAgIFdlYktpdDo6SW5pdGlh
bGl6ZVdlYktpdDIoKTsKIAogICAgIF9kYXRhID0gW1tXS1ZpZXdEYXRhIGFsbG9jXSBpbml0XTsK
LSAgICBfZGF0YS0+X2ltcGwgPSBtYWtlVW5pcXVlPFdlYktpdDo6V2ViVmlld0ltcGw+KHNlbGYs
IG51bGxwdHIsIHByb2Nlc3NQb29sLCBXVEZNb3ZlKGNvbmZpZ3VyYXRpb24pKTsKKyAgICBfZGF0
YS0+X2ltcGwgPSBtYWtlVW5pcXVlPFdlYktpdDo6V2ViVmlld0ltcGw+KHNlbGYsIG51bGxwdHIs
IHByb2Nlc3NQb29sLmdldCgpLCBXVEZNb3ZlKGNvbmZpZ3VyYXRpb24pKTsKIAogICAgIFtzZWxm
IG1heWJlSW5zdGFsbEljb25Mb2FkaW5nQ2xpZW50XTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvQ29jb2EvV2ViVmlld0ltcGwubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9Db2NvYS9XZWJWaWV3SW1wbC5tbQppbmRleCA3MTM4ZWZjOTQxNWY4YTYxNGYyM2FmYmEy
YTRjNmExNTUzZWMzZDg4Li41MDEyZGFkMWE1OGRmYjc1NTFlMDMwY2ZiYjAzOWM4ZjhiZWEyZDE0
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9XZWJWaWV3SW1wbC5t
bQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9XZWJWaWV3SW1wbC5tbQpAQCAt
MTM3MCw3ICsxMzcwLDcgQEAgV2ViVmlld0ltcGw6OldlYlZpZXdJbXBsKE5TVmlldyA8V2ViVmll
d0ltcGxEZWxlZ2F0ZT4gKnZpZXcsIFdLV2ViVmlldyAqb3V0ZXJXZWIKICAgICAsIG1fcGFnZShw
cm9jZXNzUG9vbC5jcmVhdGVXZWJQYWdlKCptX3BhZ2VDbGllbnQsIFdURk1vdmUoY29uZmlndXJh
dGlvbikpKQogICAgICwgbV9uZWVkc1ZpZXdGcmFtZUluV2luZG93Q29vcmRpbmF0ZXMobV9wYWdl
LT5wcmVmZXJlbmNlcygpLnBsdWdpbnNFbmFibGVkKCkpCiAgICAgLCBtX2ludHJpbnNpY0NvbnRl
bnRTaXplKENHU2l6ZU1ha2UoTlNWaWV3Tm9JbnRyaW5zaWNNZXRyaWMsIE5TVmlld05vSW50cmlu
c2ljTWV0cmljKSkKLSAgICAsIG1fbGF5b3V0U3RyYXRlZ3koW1dLVmlld0xheW91dFN0cmF0ZWd5
IGxheW91dFN0cmF0ZWd5V2l0aFBhZ2U6bV9wYWdlIHZpZXc6dmlldyB2aWV3SW1wbDoqdGhpcyBt
b2RlOmtXS0xheW91dE1vZGVWaWV3U2l6ZV0pCisgICAgLCBtX2xheW91dFN0cmF0ZWd5KFtXS1Zp
ZXdMYXlvdXRTdHJhdGVneSBsYXlvdXRTdHJhdGVneVdpdGhQYWdlOm1fcGFnZS5nZXQoKSB2aWV3
OnZpZXcgdmlld0ltcGw6KnRoaXMgbW9kZTprV0tMYXlvdXRNb2RlVmlld1NpemVdKQogICAgICwg
bV91bmRvVGFyZ2V0KGFkb3B0TlMoW1tXS0VkaXRvclVuZG9UYXJnZXQgYWxsb2NdIGluaXRdKSkK
ICAgICAsIG1fd2luZG93VmlzaWJpbGl0eU9ic2VydmVyKGFkb3B0TlMoW1tXS1dpbmRvd1Zpc2li
aWxpdHlPYnNlcnZlciBhbGxvY10gaW5pdFdpdGhWaWV3OnZpZXcgaW1wbDoqdGhpc10pKQogICAg
ICwgbV9hY2Nlc3NpYmlsaXR5U2V0dGluZ3NPYnNlcnZlcihhZG9wdE5TKFtbV0tBY2Nlc3NpYmls
aXR5U2V0dGluZ3NPYnNlcnZlciBhbGxvY10gaW5pdFdpdGhJbXBsOip0aGlzXSkpCkBAIC0xNDAz
LDcgKzE0MDMsNyBAQCBXZWJWaWV3SW1wbDo6V2ViVmlld0ltcGwoTlNWaWV3IDxXZWJWaWV3SW1w
bERlbGVnYXRlPiAqdmlldywgV0tXZWJWaWV3ICpvdXRlcldlYgogCiAgICAgaWYgKENsYXNzIGdl
c3R1cmVDbGFzcyA9IE5TQ2xhc3NGcm9tU3RyaW5nKEAiTlNJbW1lZGlhdGVBY3Rpb25HZXN0dXJl
UmVjb2duaXplciIpKSB7CiAgICAgICAgIG1faW1tZWRpYXRlQWN0aW9uR2VzdHVyZVJlY29nbml6
ZXIgPSBhZG9wdE5TKFsoTlNJbW1lZGlhdGVBY3Rpb25HZXN0dXJlUmVjb2duaXplciAqKVtnZXN0
dXJlQ2xhc3MgYWxsb2NdIGluaXRdKTsKLSAgICAgICAgbV9pbW1lZGlhdGVBY3Rpb25Db250cm9s
bGVyID0gYWRvcHROUyhbW1dLSW1tZWRpYXRlQWN0aW9uQ29udHJvbGxlciBhbGxvY10gaW5pdFdp
dGhQYWdlOm1fcGFnZSB2aWV3OnZpZXcgdmlld0ltcGw6KnRoaXMgcmVjb2duaXplcjptX2ltbWVk
aWF0ZUFjdGlvbkdlc3R1cmVSZWNvZ25pemVyLmdldCgpXSk7CisgICAgICAgIG1faW1tZWRpYXRl
QWN0aW9uQ29udHJvbGxlciA9IGFkb3B0TlMoW1tXS0ltbWVkaWF0ZUFjdGlvbkNvbnRyb2xsZXIg
YWxsb2NdIGluaXRXaXRoUGFnZTptX3BhZ2UuZ2V0KCkgdmlldzp2aWV3IHZpZXdJbXBsOip0aGlz
IHJlY29nbml6ZXI6bV9pbW1lZGlhdGVBY3Rpb25HZXN0dXJlUmVjb2duaXplci5nZXQoKV0pOwog
ICAgICAgICBbbV9pbW1lZGlhdGVBY3Rpb25HZXN0dXJlUmVjb2duaXplciBzZXREZWxlZ2F0ZTpt
X2ltbWVkaWF0ZUFjdGlvbkNvbnRyb2xsZXIuZ2V0KCldOwogICAgICAgICBbbV9pbW1lZGlhdGVB
Y3Rpb25HZXN0dXJlUmVjb2duaXplciBzZXREZWxheXNQcmltYXJ5TW91c2VCdXR0b25FdmVudHM6
Tk9dOwogICAgIH0KQEAgLTE5ODcsNyArMTk4Nyw3IEBAIHZvaWQgV2ViVmlld0ltcGw6OnNldExh
eW91dE1vZGUoV0tMYXlvdXRNb2RlIGxheW91dE1vZGUpCiAgICAgICAgIHJldHVybjsKIAogICAg
IFttX2xheW91dFN0cmF0ZWd5IHdpbGxDaGFuZ2VMYXlvdXRTdHJhdGVneV07Ci0gICAgbV9sYXlv
dXRTdHJhdGVneSA9IFtXS1ZpZXdMYXlvdXRTdHJhdGVneSBsYXlvdXRTdHJhdGVneVdpdGhQYWdl
Om1fcGFnZSB2aWV3Om1fdmlldy5nZXRBdXRvcmVsZWFzZWQoKSB2aWV3SW1wbDoqdGhpcyBtb2Rl
OmxheW91dE1vZGVdOworICAgIG1fbGF5b3V0U3RyYXRlZ3kgPSBbV0tWaWV3TGF5b3V0U3RyYXRl
Z3kgbGF5b3V0U3RyYXRlZ3lXaXRoUGFnZTptX3BhZ2UuZ2V0KCkgdmlldzptX3ZpZXcuZ2V0QXV0
b3JlbGVhc2VkKCkgdmlld0ltcGw6KnRoaXMgbW9kZTpsYXlvdXRNb2RlXTsKIH0KIAogYm9vbCBX
ZWJWaWV3SW1wbDo6c3VwcG9ydHNBcmJpdHJhcnlMYXlvdXRNb2RlcygpIGNvbnN0CkBAIC0yNjQw
LDcgKzI2NDAsNyBAQCBib29sIFdlYlZpZXdJbXBsOjpoYXNGdWxsU2NyZWVuV2luZG93Q29udHJv
bGxlcigpIGNvbnN0CiBXS0Z1bGxTY3JlZW5XaW5kb3dDb250cm9sbGVyICpXZWJWaWV3SW1wbDo6
ZnVsbFNjcmVlbldpbmRvd0NvbnRyb2xsZXIoKQogewogICAgIGlmICghbV9mdWxsU2NyZWVuV2lu
ZG93Q29udHJvbGxlcikKLSAgICAgICAgbV9mdWxsU2NyZWVuV2luZG93Q29udHJvbGxlciA9IGFk
b3B0TlMoW1tXS0Z1bGxTY3JlZW5XaW5kb3dDb250cm9sbGVyIGFsbG9jXSBpbml0V2l0aFdpbmRv
dzpmdWxsU2NyZWVuV2luZG93KCkgd2ViVmlldzptX3ZpZXcuZ2V0QXV0b3JlbGVhc2VkKCkgcGFn
ZTptX3BhZ2VdKTsKKyAgICAgICAgbV9mdWxsU2NyZWVuV2luZG93Q29udHJvbGxlciA9IGFkb3B0
TlMoW1tXS0Z1bGxTY3JlZW5XaW5kb3dDb250cm9sbGVyIGFsbG9jXSBpbml0V2l0aFdpbmRvdzpm
dWxsU2NyZWVuV2luZG93KCkgd2ViVmlldzptX3ZpZXcuZ2V0QXV0b3JlbGVhc2VkKCkgcGFnZTpt
X3BhZ2UuZ2V0KCldKTsKIAogICAgIHJldHVybiBtX2Z1bGxTY3JlZW5XaW5kb3dDb250cm9sbGVy
LmdldCgpOwogfQpAQCAtMzg4Myw3ICszODgzLDcgQEAgTlNWaWV3ICpXZWJWaWV3SW1wbDo6aW5z
cGVjdG9yQXR0YWNobWVudFZpZXcoKQogX1dLUmVtb3RlT2JqZWN0UmVnaXN0cnkgKldlYlZpZXdJ
bXBsOjpyZW1vdGVPYmplY3RSZWdpc3RyeSgpCiB7CiAgICAgaWYgKCFtX3JlbW90ZU9iamVjdFJl
Z2lzdHJ5KSB7Ci0gICAgICAgIG1fcmVtb3RlT2JqZWN0UmVnaXN0cnkgPSBhZG9wdE5TKFtbX1dL
UmVtb3RlT2JqZWN0UmVnaXN0cnkgYWxsb2NdIF9pbml0V2l0aFdlYlBhZ2VQcm94eTptX3BhZ2Vd
KTsKKyAgICAgICAgbV9yZW1vdGVPYmplY3RSZWdpc3RyeSA9IGFkb3B0TlMoW1tfV0tSZW1vdGVP
YmplY3RSZWdpc3RyeSBhbGxvY10gX2luaXRXaXRoV2ViUGFnZVByb3h5Om1fcGFnZS5nZXQoKV0p
OwogICAgICAgICBtX3BhZ2UtPnByb2Nlc3MoKS5wcm9jZXNzUG9vbCgpLmFkZE1lc3NhZ2VSZWNl
aXZlcihNZXNzYWdlczo6UmVtb3RlT2JqZWN0UmVnaXN0cnk6Om1lc3NhZ2VSZWNlaXZlck5hbWUo
KSwgbV9wYWdlLT5pZGVudGlmaWVyKCksIFttX3JlbW90ZU9iamVjdFJlZ2lzdHJ5IHJlbW90ZU9i
amVjdFJlZ2lzdHJ5XSk7CiAgICAgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9pb3MvV0tBcHBsaWNhdGlvblN0YXRlVHJhY2tpbmdWaWV3Lm1tIGIvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvaW9zL1dLQXBwbGljYXRpb25TdGF0ZVRyYWNraW5nVmlldy5tbQppbmRleCBi
N2Y3MDI2ZGRiZjE5NzI0MzM0OTI1MDBiYmNjYzJmNzJlZjAyOGU5Li41NGFkMDRiZDVlNmFjNDEw
M2ZmZDdjMTE3MmQ3MWYyOWQ4NTJmMjVhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9pb3MvV0tBcHBsaWNhdGlvblN0YXRlVHJhY2tpbmdWaWV3Lm1tCisrKyBiL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0FwcGxpY2F0aW9uU3RhdGVUcmFja2luZ1ZpZXcubW0KQEAg
LTU1LDcgKzU1LDcgQEAgLSAodm9pZCl3aWxsTW92ZVRvV2luZG93OihVSVdpbmRvdyAqKW5ld1dp
bmRvdwogICAgICAgICByZXR1cm47CiAKICAgICBhdXRvIHBhZ2UgPSBbX3dlYlZpZXdUb1RyYWNr
IF9wYWdlXTsKLSAgICBSRUxFQVNFX0xPRyhWaWV3U3RhdGUsICIlcCAtIFdLQXBwbGljYXRpb25T
dGF0ZVRyYWNraW5nVmlldzogVmlldyB3aXRoIHBhZ2UgWyVwLCBwYWdlUHJveHlJRDogJSIgUFJJ
dTY0ICJdIHdhcyByZW1vdmVkIGZyb20gYSB3aW5kb3csIF9sYXN0T2JzZXJ2ZWRTdGF0ZVdhc0Jh
Y2tncm91bmQ6ICVkIiwgc2VsZiwgcGFnZSwgcGFnZSA/IHBhZ2UtPmlkZW50aWZpZXIoKS50b1VJ
bnQ2NCgpIDogMCwgcGFnZSA/IHBhZ2UtPmxhc3RPYnNlcnZlZFN0YXRlV2FzQmFja2dyb3VuZCgp
IDogZmFsc2UpOworICAgIFJFTEVBU0VfTE9HKFZpZXdTdGF0ZSwgIiVwIC0gV0tBcHBsaWNhdGlv
blN0YXRlVHJhY2tpbmdWaWV3OiBWaWV3IHdpdGggcGFnZSBbJXAsIHBhZ2VQcm94eUlEOiAlIiBQ
Ukl1NjQgIl0gd2FzIHJlbW92ZWQgZnJvbSBhIHdpbmRvdywgX2xhc3RPYnNlcnZlZFN0YXRlV2Fz
QmFja2dyb3VuZDogJWQiLCBzZWxmLCBwYWdlLmdldCgpLCBwYWdlID8gcGFnZS0+aWRlbnRpZmll
cigpLnRvVUludDY0KCkgOiAwLCBwYWdlID8gcGFnZS0+bGFzdE9ic2VydmVkU3RhdGVXYXNCYWNr
Z3JvdW5kKCkgOiBmYWxzZSk7CiAgICAgQVNTRVJUKF9hcHBsaWNhdGlvblN0YXRlVHJhY2tlcik7
CiAgICAgX2FwcGxpY2F0aW9uU3RhdGVUcmFja2VyID0gbnVsbHB0cjsKIH0KQEAgLTY5LDcgKzY5
LDcgQEAgLSAodm9pZClkaWRNb3ZlVG9XaW5kb3cKICAgICBib29sIGxhc3RPYnNlcnZlZFN0YXRl
V2FzQmFja2dyb3VuZCA9IHBhZ2UgPyBwYWdlLT5sYXN0T2JzZXJ2ZWRTdGF0ZVdhc0JhY2tncm91
bmQoKSA6IGZhbHNlOwogCiAgICAgX2FwcGxpY2F0aW9uU3RhdGVUcmFja2VyID0gbWFrZVVuaXF1
ZTxXZWJLaXQ6OkFwcGxpY2F0aW9uU3RhdGVUcmFja2VyPihzZWxmLCBAc2VsZWN0b3IoX2FwcGxp
Y2F0aW9uRGlkRW50ZXJCYWNrZ3JvdW5kKSwgQHNlbGVjdG9yKF9hcHBsaWNhdGlvbkRpZEZpbmlz
aFNuYXBzaG90dGluZ0FmdGVyRW50ZXJpbmdCYWNrZ3JvdW5kKSwgQHNlbGVjdG9yKF9hcHBsaWNh
dGlvbldpbGxFbnRlckZvcmVncm91bmQpKTsKLSAgICBSRUxFQVNFX0xPRyhWaWV3U3RhdGUsICIl
cCAtIFdLQXBwbGljYXRpb25TdGF0ZVRyYWNraW5nVmlldzogVmlldyB3aXRoIHBhZ2UgWyVwLCBw
YWdlUHJveHlJRDogJSIgUFJJdTY0ICJdIHdhcyBhZGRlZCB0byBhIHdpbmRvdywgX2xhc3RPYnNl
cnZlZFN0YXRlV2FzQmFja2dyb3VuZDogJWQsIGlzTm93QmFja2dyb3VuZDogJWQiLCBzZWxmLCBw
YWdlLCBwYWdlID8gcGFnZS0+aWRlbnRpZmllcigpLnRvVUludDY0KCkgOiAwLCBsYXN0T2JzZXJ2
ZWRTdGF0ZVdhc0JhY2tncm91bmQsIFtzZWxmIGlzQmFja2dyb3VuZF0pOworICAgIFJFTEVBU0Vf
TE9HKFZpZXdTdGF0ZSwgIiVwIC0gV0tBcHBsaWNhdGlvblN0YXRlVHJhY2tpbmdWaWV3OiBWaWV3
IHdpdGggcGFnZSBbJXAsIHBhZ2VQcm94eUlEOiAlIiBQUkl1NjQgIl0gd2FzIGFkZGVkIHRvIGEg
d2luZG93LCBfbGFzdE9ic2VydmVkU3RhdGVXYXNCYWNrZ3JvdW5kOiAlZCwgaXNOb3dCYWNrZ3Jv
dW5kOiAlZCIsIHNlbGYsIHBhZ2UuZ2V0KCksIHBhZ2UgPyBwYWdlLT5pZGVudGlmaWVyKCkudG9V
SW50NjQoKSA6IDAsIGxhc3RPYnNlcnZlZFN0YXRlV2FzQmFja2dyb3VuZCwgW3NlbGYgaXNCYWNr
Z3JvdW5kXSk7CiAKICAgICBpZiAobGFzdE9ic2VydmVkU3RhdGVXYXNCYWNrZ3JvdW5kICYmICFb
c2VsZiBpc0JhY2tncm91bmRdKQogICAgICAgICBbc2VsZiBfYXBwbGljYXRpb25XaWxsRW50ZXJG
b3JlZ3JvdW5kXTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0Nv
bnRlbnRWaWV3LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlldy5o
CmluZGV4IDU3Y2ZiYmY0NGQ4MmQyNjMxNmQ5NzMyMDM1N2VmNzUzYWNjMTZjY2YuLjY2YWZhNGRj
Yjg2YTJkZTYwZGZkZmMyNDBkNzkxMzM1ZWZiNzQ1NjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3LmgKKysrIGIvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvaW9zL1dLQ29udGVudFZpZXcuaApAQCAtMjgsNiArMjgsNyBAQAogI2ltcG9ydCAiV0tC
cm93c2luZ0NvbnRleHRDb250cm9sbGVyLmgiCiAjaW1wb3J0ICJXS0Jyb3dzaW5nQ29udGV4dEdy
b3VwLmgiCiAjaW1wb3J0ICJXS1Byb2Nlc3NHcm91cC5oIgorI2ltcG9ydCA8d3RmL05ha2VkUmVm
Lmg+CiAjaW1wb3J0IDx3dGYvUmV0YWluUHRyLmg+CiAjaW1wb3J0IDx3dGYvV2Vha09iakNQdHIu
aD4KIApAQCAtNzAsNyArNzEsNyBAQCBjbGFzcyBXZWJQcm9jZXNzUG9vbDsKIEBwcm9wZXJ0eSAo
bm9uYXRvbWljKSBCT09MIHNpemVDaGFuZ2VkU2luY2VMYXN0VmlzaWJsZUNvbnRlbnRSZWN0VXBk
YXRlOwogQHByb3BlcnR5IChub25hdG9taWMsIHJlYWRvbmx5KSBVSUludGVyZmFjZU9yaWVudGF0
aW9uIGludGVyZmFjZU9yaWVudGF0aW9uOwogCi0tIChpbnN0YW5jZXR5cGUpaW5pdFdpdGhGcmFt
ZTooQ0dSZWN0KWZyYW1lIHByb2Nlc3NQb29sOihXZWJLaXQ6OldlYlByb2Nlc3NQb29sJilwcm9j
ZXNzUG9vbCBjb25maWd1cmF0aW9uOihSZWY8QVBJOjpQYWdlQ29uZmlndXJhdGlvbj4mJiljb25m
aWd1cmF0aW9uIHdlYlZpZXc6KFdLV2ViVmlldyAqKXdlYlZpZXc7CistIChpbnN0YW5jZXR5cGUp
aW5pdFdpdGhGcmFtZTooQ0dSZWN0KWZyYW1lIHByb2Nlc3NQb29sOihOYWtlZFJlZjxXZWJLaXQ6
OldlYlByb2Nlc3NQb29sPilwcm9jZXNzUG9vbCBjb25maWd1cmF0aW9uOihSZWY8QVBJOjpQYWdl
Q29uZmlndXJhdGlvbj4mJiljb25maWd1cmF0aW9uIHdlYlZpZXc6KFdLV2ViVmlldyAqKXdlYlZp
ZXc7CiAKIC0gKHZvaWQpZGlkVXBkYXRlVmlzaWJsZVJlY3Q6KENHUmVjdCl2aXNpYmxlUmVjdAog
ICAgIHVub2JzY3VyZWRSZWN0OihDR1JlY3QpdW5vYnNjdXJlZFJlY3QKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3Lm1tIGIvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXcubW0KaW5kZXggMjliYTYwNjU4Mjg0NGRlYTY3
ODVkZmYxMmZiYmFiNWU4YzliMzFmZC4uZDIxZTljYWU3OWY0MjEzNDI3NDZiMmQ0ZWI0N2NjZWUz
YTBjMzE5NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLQ29udGVu
dFZpZXcubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXcu
bW0KQEAgLTIzOCw3ICsyMzgsNyBAQCAtICh2b2lkKV9yZW1vdmVWaXNpYmlsaXR5UHJvcGFnYXRp
b25WaWV3CiB9CiAjZW5kaWYKIAotLSAoaW5zdGFuY2V0eXBlKWluaXRXaXRoRnJhbWU6KENHUmVj
dClmcmFtZSBwcm9jZXNzUG9vbDooV2ViS2l0OjpXZWJQcm9jZXNzUG9vbCYpcHJvY2Vzc1Bvb2wg
Y29uZmlndXJhdGlvbjooUmVmPEFQSTo6UGFnZUNvbmZpZ3VyYXRpb24+JiYpY29uZmlndXJhdGlv
biB3ZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3CistIChpbnN0YW5jZXR5cGUpaW5pdFdpdGhG
cmFtZTooQ0dSZWN0KWZyYW1lIHByb2Nlc3NQb29sOihOYWtlZFJlZjxXZWJLaXQ6OldlYlByb2Nl
c3NQb29sPilwcm9jZXNzUG9vbCBjb25maWd1cmF0aW9uOihSZWY8QVBJOjpQYWdlQ29uZmlndXJh
dGlvbj4mJiljb25maWd1cmF0aW9uIHdlYlZpZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcKIHsKICAg
ICBpZiAoIShzZWxmID0gW3N1cGVyIGluaXRXaXRoRnJhbWU6ZnJhbWUgd2ViVmlldzp3ZWJWaWV3
XSkpCiAgICAgICAgIHJldHVybiBuaWw7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9pb3MvZnVsbHNjcmVlbi9XS0Z1bGxTY3JlZW5WaWV3Q29udHJvbGxlci5tbSBiL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9mdWxsc2NyZWVuL1dLRnVsbFNjcmVlblZpZXdDb250cm9s
bGVyLm1tCmluZGV4IDhmZjhhMGJmNDc1YjNmN2IyMzYyMjlmNDEyZTNmMzI2NmNmOTU5NjYuLjI5
ZjBjZGM1NTEwMzgzNDFkNzlkMTQ3MGFmODJkNTlhNWE5YWZiMjYgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9mdWxsc2NyZWVuL1dLRnVsbFNjcmVlblZpZXdDb250cm9s
bGVyLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9mdWxsc2NyZWVuL1dLRnVs
bFNjcmVlblZpZXdDb250cm9sbGVyLm1tCkBAIC0yNTUsNyArMjU1LDcgQEAgLSAodm9pZCloaWRl
VUkKIAogLSAodm9pZCl2aWRlb0NvbnRyb2xzTWFuYWdlckRpZENoYW5nZQogewotICAgIFdlYktp
dDo6V2ViUGFnZVByb3h5KiBwYWdlID0gW3NlbGYuX3dlYlZpZXcgX3BhZ2VdOworICAgIGF1dG8g
cGFnZSA9IFtzZWxmLl93ZWJWaWV3IF9wYWdlXTsKICAgICBhdXRvKiB2aWRlb0Z1bGxzY3JlZW5N
YW5hZ2VyID0gcGFnZSA/IHBhZ2UtPnZpZGVvRnVsbHNjcmVlbk1hbmFnZXIoKSA6IG51bGxwdHI7
CiAgICAgYXV0byogdmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlID0gdmlkZW9GdWxsc2NyZWVuTWFu
YWdlciA/IHZpZGVvRnVsbHNjcmVlbk1hbmFnZXItPmNvbnRyb2xzTWFuYWdlckludGVyZmFjZSgp
IDogbnVsbHB0cjsKICAgICBhdXRvKiBwbGF5YmFja1Nlc3Npb25JbnRlcmZhY2UgPSB2aWRlb0Z1
bGxzY3JlZW5JbnRlcmZhY2UgPyAmdmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlLT5wbGF5YmFja1Nl
c3Npb25JbnRlcmZhY2UoKSA6IG51bGxwdHI7CkBAIC00ODAsNyArNDgwLDcgQEAgLSAoQk9PTCln
ZXN0dXJlUmVjb2duaXplcjooVUlHZXN0dXJlUmVjb2duaXplciAqKWdlc3R1cmVSZWNvZ25pemVy
IHNob3VsZFJlY2VpdmUKIEBkeW5hbWljIF9tYW5hZ2VyOwogLSAoV2ViS2l0OjpXZWJGdWxsU2Ny
ZWVuTWFuYWdlclByb3h5KilfbWFuYWdlcgogewotICAgIGlmIChhdXRvKiBwYWdlID0gW3NlbGYu
X3dlYlZpZXcgX3BhZ2VdKQorICAgIGlmIChhdXRvIHBhZ2UgPSBbc2VsZi5fd2ViVmlldyBfcGFn
ZV0pCiAgICAgICAgIHJldHVybiBwYWdlLT5mdWxsU2NyZWVuTWFuYWdlcigpOwogICAgIHJldHVy
biBudWxscHRyOwogfQpAQCAtNTA0LDcgKzUwNCw3IEBAIC0gKHZvaWQpX2NhbmNlbEFjdGlvbjoo
aWQpc2VuZGVyCiAKIC0gKHZvaWQpX3RvZ2dsZVBpUEFjdGlvbjooaWQpc2VuZGVyCiB7Ci0gICAg
V2ViS2l0OjpXZWJQYWdlUHJveHkqIHBhZ2UgPSBbc2VsZi5fd2ViVmlldyBfcGFnZV07CisgICAg
YXV0byBwYWdlID0gW3NlbGYuX3dlYlZpZXcgX3BhZ2VdOwogICAgIGlmICghcGFnZSkKICAgICAg
ICAgcmV0dXJuOwogCkBAIC01NTgsMjEgKzU1OCwyMSBAQCAtICh2b2lkKV9zaG93UGhpc2hpbmdB
bGVydAogICAgIE5TU3RyaW5nICphbGVydE1lc3NhZ2UgPSBbTlNTdHJpbmcgc3RyaW5nV2l0aEZv
cm1hdDpXRUJfVUlfU1RSSU5HKCJUeXBpbmcgaXMgbm90IGFsbG93ZWQgaW4gZnVsbCBzY3JlZW4g
d2Vic2l0ZXMuIOKAnCVA4oCdIG1heSBiZSBzaG93aW5nIGEgZmFrZSBrZXlib2FyZCB0byB0cmlj
ayB5b3UgaW50byBkaXNjbG9zaW5nIHBlcnNvbmFsIG9yIGZpbmFuY2lhbCBpbmZvcm1hdGlvbi4i
LCAiRnVsbCBTY3JlZW4gRGVjZXB0aXZlIFdlYnNpdGUgV2FybmluZyBTaGVldCBDb250ZW50IFRl
eHQiKSwgKE5TU3RyaW5nICopc2VsZi5sb2NhdGlvbl07CiAgICAgVUlBbGVydENvbnRyb2xsZXIq
IGFsZXJ0ID0gW1VJQWxlcnRDb250cm9sbGVyIGFsZXJ0Q29udHJvbGxlcldpdGhUaXRsZTphbGVy
dFRpdGxlIG1lc3NhZ2U6YWxlcnRNZXNzYWdlIHByZWZlcnJlZFN0eWxlOlVJQWxlcnRDb250cm9s
bGVyU3R5bGVBbGVydF07CiAKLSAgICBpZiAoYXV0byogcGFnZSA9IFtzZWxmLl93ZWJWaWV3IF9w
YWdlXSkgeworICAgIGlmIChhdXRvIHBhZ2UgPSBbc2VsZi5fd2ViVmlldyBfcGFnZV0pIHsKICAg
ICAgICAgcGFnZS0+c3VzcGVuZEFsbE1lZGlhUGxheWJhY2soKTsKICAgICAgICAgcGFnZS0+c3Vz
cGVuZEFjdGl2ZURPTU9iamVjdHNBbmRBbmltYXRpb25zKCk7CiAgICAgfQogCiAgICAgVUlBbGVy
dEFjdGlvbiogZXhpdEFjdGlvbiA9IFtVSUFsZXJ0QWN0aW9uIGFjdGlvbldpdGhUaXRsZTpXRUJf
VUlfU1RSSU5HX0tFWSgiRXhpdCBGdWxsIFNjcmVlbiIsICJFeGl0IEZ1bGwgU2NyZWVuIChFbGVt
ZW50IEZ1bGwgU2NyZWVuKSIsICJGdWxsIFNjcmVlbiBEZWNlcHRpdmUgV2Vic2l0ZSBFeGl0IEFj
dGlvbiIpIHN0eWxlOlVJQWxlcnRBY3Rpb25TdHlsZUNhbmNlbCBoYW5kbGVyOl4oVUlBbGVydEFj
dGlvbiAqIGFjdGlvbikgewogICAgICAgICBbc2VsZiBfY2FuY2VsQWN0aW9uOmFjdGlvbl07Ci0g
ICAgICAgIGlmIChhdXRvKiBwYWdlID0gW3NlbGYuX3dlYlZpZXcgX3BhZ2VdKSB7CisgICAgICAg
IGlmIChhdXRvIHBhZ2UgPSBbc2VsZi5fd2ViVmlldyBfcGFnZV0pIHsKICAgICAgICAgICAgIHBh
Z2UtPnJlc3VtZUFjdGl2ZURPTU9iamVjdHNBbmRBbmltYXRpb25zKCk7CiAgICAgICAgICAgICBw
YWdlLT5yZXN1bWVBbGxNZWRpYVBsYXliYWNrKCk7CiAgICAgICAgIH0KICAgICB9XTsKIAogICAg
IFVJQWxlcnRBY3Rpb24qIHN0YXlBY3Rpb24gPSBbVUlBbGVydEFjdGlvbiBhY3Rpb25XaXRoVGl0
bGU6V0VCX1VJX1NUUklOR19LRVkoIlN0YXkgaW4gRnVsbCBTY3JlZW4iLCAiU3RheSBpbiBGdWxs
IFNjcmVlbiAoRWxlbWVudCBGdWxsIFNjcmVlbikiLCAiRnVsbCBTY3JlZW4gRGVjZXB0aXZlIFdl
YnNpdGUgU3RheSBBY3Rpb24iKSBzdHlsZTpVSUFsZXJ0QWN0aW9uU3R5bGVEZWZhdWx0IGhhbmRs
ZXI6XihVSUFsZXJ0QWN0aW9uICogYWN0aW9uKSB7Ci0gICAgICAgIGlmIChhdXRvKiBwYWdlID0g
W3NlbGYuX3dlYlZpZXcgX3BhZ2VdKSB7CisgICAgICAgIGlmIChhdXRvIHBhZ2UgPSBbc2VsZi5f
d2ViVmlldyBfcGFnZV0pIHsKICAgICAgICAgICAgIHBhZ2UtPnJlc3VtZUFjdGl2ZURPTU9iamVj
dHNBbmRBbmltYXRpb25zKCk7CiAgICAgICAgICAgICBwYWdlLT5yZXN1bWVBbGxNZWRpYVBsYXli
YWNrKCk7CiAgICAgICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lv
cy9mdWxsc2NyZWVuL1dLRnVsbFNjcmVlbldpbmRvd0NvbnRyb2xsZXJJT1MubW0gYi9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9pb3MvZnVsbHNjcmVlbi9XS0Z1bGxTY3JlZW5XaW5kb3dDb250cm9s
bGVySU9TLm1tCmluZGV4IDg1ZWE4MjA2YTNlZDY2YTE4MjYwOTJlNDVmODZlMDcxNjNiYzJkNTYu
LjVmNDRhOGU5ZjA5MjJiZmM3YTc3ZjJlZTk4NzczNTMxNTFiMGZhM2MgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9mdWxsc2NyZWVuL1dLRnVsbFNjcmVlbldpbmRvd0Nv
bnRyb2xsZXJJT1MubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL2Z1bGxzY3Jl
ZW4vV0tGdWxsU2NyZWVuV2luZG93Q29udHJvbGxlcklPUy5tbQpAQCAtMTE1LDcgKzExNSw3IEBA
IHN0cnVjdCBXS1dlYlZpZXdTdGF0ZSB7CiAgICAgICAgIFtbd2ViVmlldyBzY3JvbGxWaWV3XSBz
ZXRDb250ZW50SW5zZXQ6X3NhdmVkRWRnZUluc2V0XTsKICAgICAgICAgW1t3ZWJWaWV3IHNjcm9s
bFZpZXddIHNldENvbnRlbnRPZmZzZXQ6X3NhdmVkQ29udGVudE9mZnNldF07CiAgICAgICAgIFtb
d2ViVmlldyBzY3JvbGxWaWV3XSBzZXRTY3JvbGxJbmRpY2F0b3JJbnNldHM6X3NhdmVkU2Nyb2xs
SW5kaWNhdG9ySW5zZXRzXTsKLSAgICAgICAgaWYgKGF1dG8qIHBhZ2UgPSB3ZWJWaWV3Ll9wYWdl
KSB7CisgICAgICAgIGlmIChhdXRvIHBhZ2UgPSB3ZWJWaWV3Ll9wYWdlKSB7CiAgICAgICAgICAg
ICBwYWdlLT5zZXRUb3BDb250ZW50SW5zZXQoX3NhdmVkVG9wQ29udGVudEluc2V0KTsKICAgICAg
ICAgICAgIHBhZ2UtPnNldEZvcmNlQWx3YXlzVXNlclNjYWxhYmxlKF9zYXZlZEZvcmNlQWx3YXlz
VXNlclNjYWxhYmxlKTsKICAgICAgICAgfQpAQCAtMTM1LDcgKzEzNSw3IEBAIHN0cnVjdCBXS1dl
YlZpZXdTdGF0ZSB7CiBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19CRUdJTgogICAgICAg
ICBfc2F2ZWRTY3JvbGxJbmRpY2F0b3JJbnNldHMgPSBbW3dlYlZpZXcgc2Nyb2xsVmlld10gc2Ny
b2xsSW5kaWNhdG9ySW5zZXRzXTsKIEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0VORAot
ICAgICAgICBpZiAoYXV0byogcGFnZSA9IHdlYlZpZXcuX3BhZ2UpIHsKKyAgICAgICAgaWYgKGF1
dG8gcGFnZSA9IHdlYlZpZXcuX3BhZ2UpIHsKICAgICAgICAgICAgIF9zYXZlZFRvcENvbnRlbnRJ
bnNldCA9IHBhZ2UtPnRvcENvbnRlbnRJbnNldCgpOwogICAgICAgICAgICAgX3NhdmVkRm9yY2VB
bHdheXNVc2VyU2NhbGFibGUgPSBwYWdlLT5mb3JjZUFsd2F5c1VzZXJTY2FsYWJsZSgpOwogICAg
ICAgICB9CkBAIC01MDUsNyArNTA1LDcgQEAgLSAodm9pZCllbnRlckZ1bGxTY3JlZW4KICAgICAg
ICAgcmV0dXJuOwogCiAgICAgUmV0YWluUHRyPFdLV2ViVmlldz4gd2ViVmlldyA9IHNlbGYuX3dl
YlZpZXc7Ci0gICAgYXV0byogcGFnZSA9IFt3ZWJWaWV3IF9wYWdlXTsKKyAgICBhdXRvIHBhZ2Ug
PSBbd2ViVmlldyBfcGFnZV07CiAgICAgYXV0byogbWFuYWdlciA9IHNlbGYuX21hbmFnZXI7CiAg
ICAgaWYgKCFwYWdlIHx8ICFtYW5hZ2VyKQogICAgICAgICByZXR1cm47CkBAIC01NjcsNyArNTY3
LDcgQEAgLSAodm9pZCllbnRlckZ1bGxTY3JlZW4KICAgICBXS1NuYXBzaG90Q29uZmlndXJhdGlv
biogY29uZmlnID0gbmlsOwogICAgIFt3ZWJWaWV3IHRha2VTbmFwc2hvdFdpdGhDb25maWd1cmF0
aW9uOmNvbmZpZyBjb21wbGV0aW9uSGFuZGxlcjpeKFVJSW1hZ2UgKiBzbmFwc2hvdEltYWdlLCBO
U0Vycm9yICogZXJyb3IpIHsKICAgICAgICAgUmV0YWluUHRyPFdLV2ViVmlldz4gd2ViVmlldyA9
IHNlbGYuX3dlYlZpZXc7Ci0gICAgICAgIGF1dG8qIHBhZ2UgPSBbc2VsZi5fd2ViVmlldyBfcGFn
ZV07CisgICAgICAgIGF1dG8gcGFnZSA9IFtzZWxmLl93ZWJWaWV3IF9wYWdlXTsKICAgICAgICAg
aWYgKCFwYWdlKQogICAgICAgICAgICAgcmV0dXJuOwogCkBAIC02NTQsNyArNjU0LDcgQEAgLSAo
dm9pZCliZWdhbkVudGVyRnVsbFNjcmVlbldpdGhJbml0aWFsRnJhbWU6KENHUmVjdClpbml0aWFs
RnJhbWUgZmluYWxGcmFtZTooQ0cKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgfQogCi0g
ICAgICAgIGF1dG8qIHBhZ2UgPSBbc2VsZi5fd2ViVmlldyBfcGFnZV07CisgICAgICAgIGF1dG8g
cGFnZSA9IFtzZWxmLl93ZWJWaWV3IF9wYWdlXTsKICAgICAgICAgYXV0byogbWFuYWdlciA9IHNl
bGYuX21hbmFnZXI7CiAgICAgICAgIGlmIChwYWdlICYmIG1hbmFnZXIpIHsKICAgICAgICAgICAg
IFtzZWxmLl93ZWJWaWV3IGJlY29tZUZpcnN0UmVzcG9uZGVyXTsKQEAgLTcxNiw3ICs3MTYsNyBA
QCAtICh2b2lkKWJlZ2FuRXhpdEZ1bGxTY3JlZW5XaXRoSW5pdGlhbEZyYW1lOihDR1JlY3QpaW5p
dGlhbEZyYW1lIGZpbmFsRnJhbWU6KENHUgogICAgIF9maW5hbEZyYW1lLnNpemUgPSBXZWJLaXQ6
OnNpemVFeHBhbmRlZFRvU2l6ZShfZmluYWxGcmFtZS5zaXplLCBDR1NpemVNYWtlKDEsIDEpKTsK
ICAgICBfZmluYWxGcmFtZSA9IFdlYktpdDo6c2FmZUlubGluZVJlY3QoX2ZpbmFsRnJhbWUsIFtf
cm9vdFZpZXdDb250cm9sbGVyIHZpZXddLmZyYW1lLnNpemUpOwogCi0gICAgaWYgKGF1dG8qIHBh
Z2UgPSBbc2VsZi5fd2ViVmlldyBfcGFnZV0pCisgICAgaWYgKGF1dG8gcGFnZSA9IFtzZWxmLl93
ZWJWaWV3IF9wYWdlXSkKICAgICAgICAgcGFnZS0+c2V0U3VwcHJlc3NWaXNpYmlsaXR5VXBkYXRl
cyh0cnVlKTsKIAogICAgIFtfZnVsbHNjcmVlblZpZXdDb250cm9sbGVyIHNldFByZWZlcnNTdGF0
dXNCYXJIaWRkZW46Tk9dOwpAQCAtNzQ4LDcgKzc0OCw3IEBAIC0gKHZvaWQpX2NvbXBsZXRlZEV4
aXRGdWxsU2NyZWVuCiAgICAgW3dlYlZpZXcgYmVjb21lRmlyc3RSZXNwb25kZXJdOwogCiAgICAg
X3ZpZXdTdGF0ZS5hcHBseVRvKHdlYlZpZXcuZ2V0KCkpOwotICAgIGlmIChhdXRvKiBwYWdlID0g
W3dlYlZpZXcgX3BhZ2VdKQorICAgIGlmIChhdXRvIHBhZ2UgPSBbd2ViVmlldyBfcGFnZV0pCiAg
ICAgICAgIHBhZ2UtPnNldE92ZXJyaWRlVmlld3BvcnRBcmd1bWVudHMoV1RGOjpudWxsb3B0KTsK
IAogICAgIFt3ZWJWaWV3IHNldE5lZWRzTGF5b3V0XTsKQEAgLTc3NSwxMSArNzc1LDExIEBAIC0g
KHZvaWQpX2NvbXBsZXRlZEV4aXRGdWxsU2NyZWVuCiAgICAgICAgIF93ZWJWaWV3UGxhY2Vob2xk
ZXIuZ2V0KCkucGFyZW50ID0gbmlsOwogICAgICAgICBbX3dlYlZpZXdQbGFjZWhvbGRlciByZW1v
dmVGcm9tU3VwZXJ2aWV3XTsKIAotICAgICAgICBpZiAoYXV0byogcGFnZSA9IFtzZWxmLl93ZWJW
aWV3IF9wYWdlXSkKKyAgICAgICAgaWYgKGF1dG8gcGFnZSA9IFtzZWxmLl93ZWJWaWV3IF9wYWdl
XSkKICAgICAgICAgICAgIHBhZ2UtPnNldFN1cHByZXNzVmlzaWJpbGl0eVVwZGF0ZXMoZmFsc2Up
OwogICAgIH0pOwogCi0gICAgaWYgKGF1dG8qIHBhZ2UgPSBbc2VsZi5fd2ViVmlldyBfcGFnZV0p
CisgICAgaWYgKGF1dG8gcGFnZSA9IFtzZWxmLl93ZWJWaWV3IF9wYWdlXSkKICAgICAgICAgcGFn
ZS0+Zm9yY2VSZXBhaW50KF9yZXBhaW50Q2FsbGJhY2suY29weVJlZigpKTsKICAgICBlbHNlCiAg
ICAgICAgIF9yZXBhaW50Q2FsbGJhY2stPnBlcmZvcm1DYWxsYmFjaygpOwpAQCAtODkzLDcgKzg5
Myw3IEBAIC0gKHZvaWQpX2V4aXRGdWxsc2NyZWVuSW1tZWRpYXRlbHkKICAgICBSZXRhaW5QdHI8
V0tXZWJWaWV3PiB3ZWJWaWV3ID0gc2VsZi5fd2ViVmlldzsKICAgICBfd2ViVmlld1BsYWNlaG9s
ZGVyLmdldCgpLnBhcmVudCA9IG5pbDsKICAgICBXZWJLaXQ6OnJlcGxhY2VWaWV3V2l0aFZpZXco
X3dlYlZpZXdQbGFjZWhvbGRlci5nZXQoKSwgd2ViVmlldy5nZXQoKSk7Ci0gICAgaWYgKGF1dG8q
IHBhZ2UgPSBbd2ViVmlldyBfcGFnZV0pCisgICAgaWYgKGF1dG8gcGFnZSA9IFt3ZWJWaWV3IF9w
YWdlXSkKICAgICAgICAgcGFnZS0+c2V0U3VwcHJlc3NWaXNpYmlsaXR5VXBkYXRlcyhmYWxzZSk7
CiAgICAgX3dlYlZpZXdQbGFjZWhvbGRlciA9IG5pbDsKIH0KQEAgLTk5Miw3ICs5OTIsNyBAQCAt
ICh2b2lkKV91cGRhdGVMb2NhdGlvbkluZm8KIAogLSAoV2ViS2l0OjpXZWJGdWxsU2NyZWVuTWFu
YWdlclByb3h5KilfbWFuYWdlcgogewotICAgIGlmIChhdXRvKiBwYWdlID0gW3NlbGYuX3dlYlZp
ZXcgX3BhZ2VdKQorICAgIGlmIChhdXRvIHBhZ2UgPSBbc2VsZi5fd2ViVmlldyBfcGFnZV0pCiAg
ICAgICAgIHJldHVybiBwYWdlLT5mdWxsU2NyZWVuTWFuYWdlcigpOwogICAgIHJldHVybiBudWxs
cHRyOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvbWFjL1dLRnVsbFNj
cmVlbldpbmRvd0NvbnRyb2xsZXIuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL21hYy9XS0Z1
bGxTY3JlZW5XaW5kb3dDb250cm9sbGVyLmgKaW5kZXggMDFkN2EyYWI3NTE4ZTYzNzk4ZWZhZjI2
ZDM5YzY5NTU4MDFjN2NiMy4uYjk0MDdmMTMwNDRhZTg1MTg1NWNiODEyNjg0YjFjY2JhYzA3ZjMx
MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvbWFjL1dLRnVsbFNjcmVlbldp
bmRvd0NvbnRyb2xsZXIuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9tYWMvV0tGdWxs
U2NyZWVuV2luZG93Q29udHJvbGxlci5oCkBAIC0yNyw2ICsyNyw4IEBACiAKICNpbXBvcnQgPEFw
cEtpdC9BcHBLaXQuaD4KICNpbXBvcnQgIkdlbmVyaWNDYWxsYmFjay5oIgorI2ltcG9ydCA8d3Rm
L05ha2VkUHRyLmg+CisjaW1wb3J0IDx3dGYvTmFrZWRSZWYuaD4KICNpbXBvcnQgPHd0Zi9SZXRh
aW5QdHIuaD4KIAogbmFtZXNwYWNlIFdlYktpdCB7IApAQCAtNDcsNyArNDksNyBAQCB0eXBlZGVm
IGVudW0gRnVsbFNjcmVlblN0YXRlIDogTlNJbnRlZ2VyIEZ1bGxTY3JlZW5TdGF0ZTsKIEBpbnRl
cmZhY2UgV0tGdWxsU2NyZWVuV2luZG93Q29udHJvbGxlciA6IE5TV2luZG93Q29udHJvbGxlcjxO
U1dpbmRvd0RlbGVnYXRlPiB7CiBAcHJpdmF0ZQogICAgIE5TVmlldyAqX3dlYlZpZXc7IC8vIENh
bm5vdCBiZSByZXRhaW5lZCwgc2VlIDxyZGFyOi8vcHJvYmxlbS8xNDg4NDY2Nj4uCi0gICAgV2Vi
S2l0OjpXZWJQYWdlUHJveHkqIF9wYWdlOworICAgIE5ha2VkUHRyPFdlYktpdDo6V2ViUGFnZVBy
b3h5PiBfcGFnZTsKICAgICBSZXRhaW5QdHI8V2ViQ29yZUZ1bGxTY3JlZW5QbGFjZWhvbGRlclZp
ZXc+IF93ZWJWaWV3UGxhY2Vob2xkZXI7CiAgICAgUmV0YWluUHRyPE5TVmlldz4gX2V4aXRQbGFj
ZWhvbGRlcjsKICAgICBSZXRhaW5QdHI8TlNWaWV3PiBfY2xpcFZpZXc7CkBAIC03MCw3ICs3Miw3
IEBAIHR5cGVkZWYgZW51bSBGdWxsU2NyZWVuU3RhdGUgOiBOU0ludGVnZXIgRnVsbFNjcmVlblN0
YXRlOwogQHByb3BlcnR5IChyZWFkb25seSkgTlNSZWN0IGZpbmFsRnJhbWU7CiBAcHJvcGVydHkg
KGFzc2lnbikgTlNBcnJheSAqc2F2ZWRDb25zdHJhaW50czsKIAotLSAoaWQpaW5pdFdpdGhXaW5k
b3c6KE5TV2luZG93ICopd2luZG93IHdlYlZpZXc6KE5TVmlldyAqKXdlYlZpZXcgcGFnZTooV2Vi
S2l0OjpXZWJQYWdlUHJveHkmKXBhZ2U7CistIChpZClpbml0V2l0aFdpbmRvdzooTlNXaW5kb3cg
Kil3aW5kb3cgd2ViVmlldzooTlNWaWV3ICopd2ViVmlldyBwYWdlOihOYWtlZFJlZjxXZWJLaXQ6
OldlYlBhZ2VQcm94eT4pcGFnZTsKIAogLSAoV2ViQ29yZUZ1bGxTY3JlZW5QbGFjZWhvbGRlclZp
ZXcqKXdlYlZpZXdQbGFjZWhvbGRlcjsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvbWFjL1dLRnVsbFNjcmVlbldpbmRvd0NvbnRyb2xsZXIubW0gYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9tYWMvV0tGdWxsU2NyZWVuV2luZG93Q29udHJvbGxlci5tbQppbmRleCA4MjVm
ODNhZTg4NmRkOGNkZDA3NTMwNmEwNzgyMTYyMWM5ZDllMTQ0Li42ZGRmMGQ2Y2FmODg5ZjljYTBl
MTliNTE2NjRjYzA5NGE5NzA3ZWIyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9tYWMvV0tGdWxsU2NyZWVuV2luZG93Q29udHJvbGxlci5tbQorKysgYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9tYWMvV0tGdWxsU2NyZWVuV2luZG93Q29udHJvbGxlci5tbQpAQCAtNDksNiAr
NDksNyBAQAogI2ltcG9ydCA8cGFsL3NwaS9jZy9Db3JlR3JhcGhpY3NTUEkuaD4KICNpbXBvcnQg
PHBhbC9zeXN0ZW0vU2xlZXBEaXNhYmxlci5oPgogI2ltcG9ydCA8d3RmL0Jsb2NrT2JqQ0V4Y2Vw
dGlvbnMuaD4KKyNpbXBvcnQgPHd0Zi9OYWtlZFJlZi5oPgogCiBzdGF0aWMgY29uc3QgTlNUaW1l
SW50ZXJ2YWwgRGVmYXVsdFdhdGNoZG9nVGltZXJJbnRlcnZhbCA9IDE7CiAKQEAgLTEyMSw3ICsx
MjIsNyBAQCBAaW1wbGVtZW50YXRpb24gV0tGdWxsU2NyZWVuV2luZG93Q29udHJvbGxlcgogCiAj
cHJhZ21hIG1hcmsgLQogI3ByYWdtYSBtYXJrIEluaXRpYWxpemF0aW9uCi0tIChpZClpbml0V2l0
aFdpbmRvdzooTlNXaW5kb3cgKil3aW5kb3cgd2ViVmlldzooTlNWaWV3ICopd2ViVmlldyBwYWdl
OihXZWJLaXQ6OldlYlBhZ2VQcm94eSYpcGFnZQorLSAoaWQpaW5pdFdpdGhXaW5kb3c6KE5TV2lu
ZG93ICopd2luZG93IHdlYlZpZXc6KE5TVmlldyAqKXdlYlZpZXcgcGFnZTooTmFrZWRSZWY8V2Vi
S2l0OjpXZWJQYWdlUHJveHk+KXBhZ2UKIHsKICAgICBzZWxmID0gW3N1cGVyIGluaXRXaXRoV2lu
ZG93OndpbmRvd107CiAgICAgaWYgKCFzZWxmKQpAQCAtMTUwLDcgKzE1MSw3IEBAIC0gKGlkKWlu
aXRXaXRoV2luZG93OihOU1dpbmRvdyAqKXdpbmRvdyB3ZWJWaWV3OihOU1ZpZXcgKil3ZWJWaWV3
IHBhZ2U6KFdlYktpdDo6CiAgICAgW3NlbGYgd2luZG93RGlkTG9hZF07CiAgICAgW3dpbmRvdyBk
aXNwbGF5SWZOZWVkZWRdOwogICAgIF93ZWJWaWV3ID0gd2ViVmlldzsKLSAgICBfcGFnZSA9ICZw
YWdlOworICAgIF9wYWdlID0gcGFnZS5wdHIoKTsKIAogICAgIF92aWRlb0Z1bGxzY3JlZW5DbGll
bnQgPSBtYWtlVW5pcXVlPFdlYktpdDo6V0tGdWxsU2NyZWVuV2luZG93Q29udHJvbGxlclZpZGVv
RnVsbHNjcmVlbk1vZGVsQ2xpZW50PigpOwogICAgIF92aWRlb0Z1bGxzY3JlZW5DbGllbnQtPnNl
dFBhcmVudChzZWxmKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL21hYy9X
S0ltbWVkaWF0ZUFjdGlvbkNvbnRyb2xsZXIuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL21h
Yy9XS0ltbWVkaWF0ZUFjdGlvbkNvbnRyb2xsZXIuaAppbmRleCBmNmJmNjVmMDc0MjgyMmZmOWIx
YzBiNjllZTc1YTc4N2NlNGY3YzNjLi5mMmQ5N2ZlMDc4MzA5ODI3ZGRkMGEyM2MyMTViZTI2MDM2
MjJiZDFhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9tYWMvV0tJbW1lZGlh
dGVBY3Rpb25Db250cm9sbGVyLmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvbWFjL1dL
SW1tZWRpYXRlQWN0aW9uQ29udHJvbGxlci5oCkBAIC0zMSw2ICszMSw4IEBACiAjaW1wb3J0ICJX
S0ltbWVkaWF0ZUFjdGlvblR5cGVzLmgiCiAjaW1wb3J0ICJXZWJIaXRUZXN0UmVzdWx0RGF0YS5o
IgogI2ltcG9ydCA8cGFsL3NwaS9tYWMvTlNJbW1lZGlhdGVBY3Rpb25HZXN0dXJlUmVjb2duaXpl
clNQSS5oPgorI2ltcG9ydCA8d3RmL05ha2VkUHRyLmg+CisjaW1wb3J0IDx3dGYvTmFrZWRSZWYu
aD4KICNpbXBvcnQgPHd0Zi9SZXRhaW5QdHIuaD4KIAogbmFtZXNwYWNlIFdlYktpdCB7CkBAIC01
MCw5ICs1Miw5IEBAIGVudW0gY2xhc3MgSW1tZWRpYXRlQWN0aW9uU3RhdGUgewogCiBAaW50ZXJm
YWNlIFdLSW1tZWRpYXRlQWN0aW9uQ29udHJvbGxlciA6IE5TT2JqZWN0IDxOU0ltbWVkaWF0ZUFj
dGlvbkdlc3R1cmVSZWNvZ25pemVyRGVsZWdhdGU+IHsKIEBwcml2YXRlCi0gICAgV2ViS2l0OjpX
ZWJQYWdlUHJveHkqIF9wYWdlOworICAgIE5ha2VkUHRyPFdlYktpdDo6V2ViUGFnZVByb3h5PiBf
cGFnZTsKICAgICBOU1ZpZXcgKl92aWV3OwotICAgIFdlYktpdDo6V2ViVmlld0ltcGwqIF92aWV3
SW1wbDsKKyAgICBOYWtlZFB0cjxXZWJLaXQ6OldlYlZpZXdJbXBsPiBfdmlld0ltcGw7CiAKICAg
ICBXZWJLaXQ6OkltbWVkaWF0ZUFjdGlvblN0YXRlIF9zdGF0ZTsKICAgICBXZWJLaXQ6OldlYkhp
dFRlc3RSZXN1bHREYXRhIF9oaXRUZXN0UmVzdWx0RGF0YTsKQEAgLTY4LDcgKzcwLDcgQEAgZW51
bSBjbGFzcyBJbW1lZGlhdGVBY3Rpb25TdGF0ZSB7CiAgICAgQk9PTCBfaGFzQWN0aXZlSW1tZWRp
YXRlQWN0aW9uOwogfQogCi0tIChpbnN0YW5jZXR5cGUpaW5pdFdpdGhQYWdlOihXZWJLaXQ6Oldl
YlBhZ2VQcm94eSYpcGFnZSB2aWV3OihOU1ZpZXcgKil2aWV3IHZpZXdJbXBsOihXZWJLaXQ6Oldl
YlZpZXdJbXBsJil2aWV3SW1wbCByZWNvZ25pemVyOihOU0ltbWVkaWF0ZUFjdGlvbkdlc3R1cmVS
ZWNvZ25pemVyICopaW1tZWRpYXRlQWN0aW9uUmVjb2duaXplcjsKKy0gKGluc3RhbmNldHlwZSlp
bml0V2l0aFBhZ2U6KE5ha2VkUmVmPFdlYktpdDo6V2ViUGFnZVByb3h5PilwYWdlIHZpZXc6KE5T
VmlldyAqKXZpZXcgdmlld0ltcGw6KE5ha2VkUmVmPFdlYktpdDo6V2ViVmlld0ltcGw+KXZpZXdJ
bXBsIHJlY29nbml6ZXI6KE5TSW1tZWRpYXRlQWN0aW9uR2VzdHVyZVJlY29nbml6ZXIgKilpbW1l
ZGlhdGVBY3Rpb25SZWNvZ25pemVyOwogLSAodm9pZCl3aWxsRGVzdHJveVZpZXc6KE5TVmlldyAq
KXZpZXc7CiAtICh2b2lkKWRpZFBlcmZvcm1JbW1lZGlhdGVBY3Rpb25IaXRUZXN0Oihjb25zdCBX
ZWJLaXQ6OldlYkhpdFRlc3RSZXN1bHREYXRhJiloaXRUZXN0UmVzdWx0IGNvbnRlbnRQcmV2ZW50
c0RlZmF1bHQ6KEJPT0wpY29udGVudFByZXZlbnRzRGVmYXVsdCB1c2VyRGF0YTooQVBJOjpPYmpl
Y3QqKXVzZXJEYXRhOwogLSAodm9pZClkaXNtaXNzQ29udGVudFJlbGF0aXZlQ2hpbGRXaW5kb3dz
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvbWFjL1dLSW1tZWRpYXRlQWN0
aW9uQ29udHJvbGxlci5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL21hYy9XS0ltbWVkaWF0
ZUFjdGlvbkNvbnRyb2xsZXIubW0KaW5kZXggYWU4N2FhOWNiMGQzZjkyYWRkMDcxM2MxZDBiMDkz
MGY3ZTExODA2Ny4uMzhkYmYxMDRlNzU1ZjM0MzY5MjExYWRmMjlhZWJkMTkzYjAyMmZkMSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvbWFjL1dLSW1tZWRpYXRlQWN0aW9uQ29u
dHJvbGxlci5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9tYWMvV0tJbW1lZGlhdGVB
Y3Rpb25Db250cm9sbGVyLm1tCkBAIC02MCwxNiArNjAsMTYgQEAgQGVuZAogCiBAaW1wbGVtZW50
YXRpb24gV0tJbW1lZGlhdGVBY3Rpb25Db250cm9sbGVyCiAKLS0gKGluc3RhbmNldHlwZSlpbml0
V2l0aFBhZ2U6KFdlYktpdDo6V2ViUGFnZVByb3h5JilwYWdlIHZpZXc6KE5TVmlldyAqKXZpZXcg
dmlld0ltcGw6KFdlYktpdDo6V2ViVmlld0ltcGwmKXZpZXdJbXBsIHJlY29nbml6ZXI6KE5TSW1t
ZWRpYXRlQWN0aW9uR2VzdHVyZVJlY29nbml6ZXIgKilpbW1lZGlhdGVBY3Rpb25SZWNvZ25pemVy
CistIChpbnN0YW5jZXR5cGUpaW5pdFdpdGhQYWdlOihOYWtlZFJlZjxXZWJLaXQ6OldlYlBhZ2VQ
cm94eT4pcGFnZSB2aWV3OihOU1ZpZXcgKil2aWV3IHZpZXdJbXBsOihOYWtlZFJlZjxXZWJLaXQ6
OldlYlZpZXdJbXBsPil2aWV3SW1wbCByZWNvZ25pemVyOihOU0ltbWVkaWF0ZUFjdGlvbkdlc3R1
cmVSZWNvZ25pemVyICopaW1tZWRpYXRlQWN0aW9uUmVjb2duaXplcgogewogICAgIHNlbGYgPSBb
c3VwZXIgaW5pdF07CiAKICAgICBpZiAoIXNlbGYpCiAgICAgICAgIHJldHVybiBuaWw7CiAKLSAg
ICBfcGFnZSA9ICZwYWdlOworICAgIF9wYWdlID0gcGFnZS5wdHIoKTsKICAgICBfdmlldyA9IHZp
ZXc7Ci0gICAgX3ZpZXdJbXBsID0gJnZpZXdJbXBsOworICAgIF92aWV3SW1wbCA9IHZpZXdJbXBs
LnB0cigpOwogICAgIF90eXBlID0ga1dLSW1tZWRpYXRlQWN0aW9uTm9uZTsKICAgICBfaW1tZWRp
YXRlQWN0aW9uUmVjb2duaXplciA9IGltbWVkaWF0ZUFjdGlvblJlY29nbml6ZXI7CiAgICAgX2hh
c0FjdGl2ZUltbWVkaWF0ZUFjdGlvbiA9IE5POwpAQCAtNDEyLDcgKzQxMiw3IEBAIC0gKGlkPE5T
SW1tZWRpYXRlQWN0aW9uQW5pbWF0aW9uQ29udHJvbGxlcj4pX2FuaW1hdGlvbkNvbnRyb2xsZXJG
b3JEYXRhRGV0ZWN0ZWRUCiAgICAgaWYgKCFbW2dldEREQWN0aW9uc01hbmFnZXJDbGFzcygpIHNo
YXJlZE1hbmFnZXJdIGhhc0FjdGlvbnNGb3JSZXN1bHQ6YWN0aW9uQ29udGV4dC5tYWluUmVzdWx0
IGFjdGlvbkNvbnRleHQ6YWN0aW9uQ29udGV4dF0pCiAgICAgICAgIHJldHVybiBuaWw7CiAKLSAg
ICBSZWZQdHI8V2ViS2l0OjpXZWJQYWdlUHJveHk+IHBhZ2UgPSBfcGFnZTsKKyAgICBSZWZQdHI8
V2ViS2l0OjpXZWJQYWdlUHJveHk+IHBhZ2UgPSBfcGFnZS5nZXQoKTsKICAgICBXZWJDb3JlOjpQ
YWdlT3ZlcmxheTo6UGFnZU92ZXJsYXlJRCBvdmVybGF5SUQgPSBfaGl0VGVzdFJlc3VsdERhdGEu
ZGV0ZWN0ZWREYXRhT3JpZ2luYXRpbmdQYWdlT3ZlcmxheTsKICAgICBfY3VycmVudEFjdGlvbkNv
bnRleHQgPSBbYWN0aW9uQ29udGV4dCBjb250ZXh0Rm9yVmlldzpfdmlldyBhbHRNb2RlOllFUyBp
bnRlcmFjdGlvblN0YXJ0ZWRIYW5kbGVyOl4oKSB7CiAgICAgICAgIHBhZ2UtPnNlbmQoTWVzc2Fn
ZXM6OldlYlBhZ2U6OkRhdGFEZXRlY3RvcnNEaWRQcmVzZW50VUkob3ZlcmxheUlEKSk7CkBAIC00
NDgsNyArNDQ4LDcgQEAgLSAoaWQ8TlNJbW1lZGlhdGVBY3Rpb25BbmltYXRpb25Db250cm9sbGVy
PilfYW5pbWF0aW9uQ29udHJvbGxlckZvckRhdGFEZXRlY3RlZEwKICAgICBbYWN0aW9uQ29udGV4
dCBzZXRBbHRNb2RlOllFU107CiAgICAgW2FjdGlvbkNvbnRleHQgc2V0SW1tZWRpYXRlOllFU107
CiAKLSAgICBSZWZQdHI8V2ViS2l0OjpXZWJQYWdlUHJveHk+IHBhZ2UgPSBfcGFnZTsKKyAgICBS
ZWZQdHI8V2ViS2l0OjpXZWJQYWdlUHJveHk+IHBhZ2UgPSBfcGFnZS5nZXQoKTsKICAgICBfY3Vy
cmVudEFjdGlvbkNvbnRleHQgPSBbYWN0aW9uQ29udGV4dCBjb250ZXh0Rm9yVmlldzpfdmlldyBh
bHRNb2RlOllFUyBpbnRlcmFjdGlvblN0YXJ0ZWRIYW5kbGVyOl4oKSB7CiAgICAgfSBpbnRlcmFj
dGlvbkNoYW5nZWRIYW5kbGVyOl4oKSB7CiAgICAgICAgIGlmIChfaGl0VGVzdFJlc3VsdERhdGEu
bGlua1RleHRJbmRpY2F0b3IpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9t
YWMvV0tJbnNwZWN0b3JWaWV3Q29udHJvbGxlci5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
bWFjL1dLSW5zcGVjdG9yVmlld0NvbnRyb2xsZXIuaAppbmRleCAyMGJiMmU2NjFiNWZlZmU3MzYx
OWQwMWM2YzNjMzhhMzY2MjhmMjkwLi4wOGJkMDhmZjlkNDg3YzQwYjVlZGQxYjcxZTc4YzM5Mzc5
YWEyZjQzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9tYWMvV0tJbnNwZWN0
b3JWaWV3Q29udHJvbGxlci5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL21hYy9XS0lu
c3BlY3RvclZpZXdDb250cm9sbGVyLmgKQEAgLTI2LDYgKzI2LDcgQEAKICNwcmFnbWEgb25jZQog
CiAjaW1wb3J0IDxXZWJLaXQvV0tGb3VuZGF0aW9uLmg+CisjaW1wb3J0IDx3dGYvTmFrZWRQdHIu
aD4KIAogI2lmIFBMQVRGT1JNKE1BQykKIApAQCAtNDQsNyArNDUsNyBAQCBOU19BU1NVTUVfTk9O
TlVMTF9CRUdJTgogQHByb3BlcnR5IChub25hdG9taWMsIHJlYWRvbmx5KSBXS1dlYlZpZXcgKndl
YlZpZXc7CiBAcHJvcGVydHkgKG5vbmF0b21pYywgd2VhaykgaWQgPFdLSW5zcGVjdG9yVmlld0Nv
bnRyb2xsZXJEZWxlZ2F0ZT4gZGVsZWdhdGU7CiAKLS0gKGluc3RhbmNldHlwZSlpbml0V2l0aElu
c3BlY3RlZFBhZ2U6KFdlYktpdDo6V2ViUGFnZVByb3h5KiBfTnVsbGFibGUpaW5zcGVjdGVkUGFn
ZTsKKy0gKGluc3RhbmNldHlwZSlpbml0V2l0aEluc3BlY3RlZFBhZ2U6KE5ha2VkUHRyPFdlYktp
dDo6V2ViUGFnZVByb3h5PilpbnNwZWN0ZWRQYWdlOwogCiArIChCT09MKXZpZXdJc0luc3BlY3Rv
cldlYlZpZXc6KE5TVmlldyAqKXZpZXc7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL21hYy9XS0luc3BlY3RvclZpZXdDb250cm9sbGVyLm1tIGIvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvbWFjL1dLSW5zcGVjdG9yVmlld0NvbnRyb2xsZXIubW0KaW5kZXggMGY2NTcxYjJi
ZWY0YWM2OWJhYWMxYmVmMTBmZGZmOTlkNzQyYjZiZC4uZDkyNjNlMGZkNmU2YWZhNmJhN2I1YTE5
ODU5ODk1NDRmN2FhNzBlOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvbWFj
L1dLSW5zcGVjdG9yVmlld0NvbnRyb2xsZXIubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvbWFjL1dLSW5zcGVjdG9yVmlld0NvbnRyb2xsZXIubW0KQEAgLTQ5LDEyICs0OSwxMiBAQCBA
aW50ZXJmYWNlIFdLSW5zcGVjdG9yVmlld0NvbnRyb2xsZXIgKCkgPFdLVUlEZWxlZ2F0ZSwgV0tO
YXZpZ2F0aW9uRGVsZWdhdGUsIFdLSQogQGVuZAogCiBAaW1wbGVtZW50YXRpb24gV0tJbnNwZWN0
b3JWaWV3Q29udHJvbGxlciB7Ci0gICAgV2ViS2l0OjpXZWJQYWdlUHJveHkqIF9pbnNwZWN0ZWRQ
YWdlOworICAgIE5ha2VkUHRyPFdlYktpdDo6V2ViUGFnZVByb3h5PiBfaW5zcGVjdGVkUGFnZTsK
ICAgICBSZXRhaW5QdHI8V0tJbnNwZWN0b3JXS1dlYlZpZXc+IF93ZWJWaWV3OwogICAgIFdlYWtP
YmpDUHRyPGlkIDxXS0luc3BlY3RvclZpZXdDb250cm9sbGVyRGVsZWdhdGU+PiBfZGVsZWdhdGU7
CiB9CiAKLS0gKGluc3RhbmNldHlwZSlpbml0V2l0aEluc3BlY3RlZFBhZ2U6KFdlYktpdDo6V2Vi
UGFnZVByb3h5KilpbnNwZWN0ZWRQYWdlCistIChpbnN0YW5jZXR5cGUpaW5pdFdpdGhJbnNwZWN0
ZWRQYWdlOihOYWtlZFB0cjxXZWJLaXQ6OldlYlBhZ2VQcm94eT4paW5zcGVjdGVkUGFnZQogewog
ICAgIGlmICghKHNlbGYgPSBbc3VwZXIgaW5pdF0pKQogICAgICAgICByZXR1cm4gbmlsOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvbWFjL1dLVGV4dEZpbmRlckNsaWVudC5o
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvbWFjL1dLVGV4dEZpbmRlckNsaWVudC5oCmluZGV4
IDc5ZmZlY2ZmYTVhYjQ5MTc0MWUzNWFjMWFkY2RhMmRiYjk1ODEyMzIuLjliNjBkYmY2NjkyOWZm
YzkzMmRiMzY3MjkxMGQ5ODE5M2JiNTdmZTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL21hYy9XS1RleHRGaW5kZXJDbGllbnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9tYWMvV0tUZXh0RmluZGVyQ2xpZW50LmgKQEAgLTI3LDYgKzI3LDcgQEAKICNkZWZpbmUg
V0tUZXh0RmluZGVyQ2xpZW50X2gKIAogI2ltcG9ydCA8V2ViS2l0L1dLRm91bmRhdGlvbi5oPgor
I2ltcG9ydCA8d3RmL05ha2VkUmVmLmg+CiAKICNpZiBQTEFURk9STShNQUMpCiAKQEAgLTM4LDcg
KzM5LDcgQEAgY2xhc3MgV2ViUGFnZVByb3h5OwogCiBAaW50ZXJmYWNlIFdLVGV4dEZpbmRlckNs
aWVudCA6IE5TT2JqZWN0CiAKLS0gKGluc3RhbmNldHlwZSlpbml0V2l0aFBhZ2U6KFdlYktpdDo6
V2ViUGFnZVByb3h5JilwYWdlIHZpZXc6KE5TVmlldyAqKXZpZXcgdXNlUGxhdGZvcm1GaW5kVUk6
KEJPT0wpdXNlUGxhdGZvcm1GaW5kVUk7CistIChpbnN0YW5jZXR5cGUpaW5pdFdpdGhQYWdlOihO
YWtlZFJlZjxXZWJLaXQ6OldlYlBhZ2VQcm94eT4pcGFnZSB2aWV3OihOU1ZpZXcgKil2aWV3IHVz
ZVBsYXRmb3JtRmluZFVJOihCT09MKXVzZVBsYXRmb3JtRmluZFVJOwogLSAodm9pZCl3aWxsRGVz
dHJveVZpZXc6KE5TVmlldyAqKXZpZXc7CiAKIEBlbmQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL21hYy9XS1RleHRGaW5kZXJDbGllbnQubW0gYi9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9tYWMvV0tUZXh0RmluZGVyQ2xpZW50Lm1tCmluZGV4IDY5ZDlkOWUyZDQ0NDg0M2Qx
NTI3MGY1MTE3Zjc3NGNkMjM3ZDVkYjguLjM5NjhlZGE2M2RlZGUyOTA1ZWMyZjcwZTU1OWMxYjhk
YTk0NDAyOGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL21hYy9XS1RleHRG
aW5kZXJDbGllbnQubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvbWFjL1dLVGV4dEZp
bmRlckNsaWVudC5tbQpAQCAtMzYsNiArMzYsNyBAQAogI2ltcG9ydCA8cGFsL3NwaS9tYWMvTlNU
ZXh0RmluZGVyU1BJLmg+CiAjaW1wb3J0IDx3dGYvQmxvY2tQdHIuaD4KICNpbXBvcnQgPHd0Zi9E
ZXF1ZS5oPgorI2ltcG9ydCA8d3RmL05ha2VkUHRyLmg+CiAKIC8vIEZJWE1FOiBJbXBsZW1lbnQg
c2Nyb2xsRmluZE1hdGNoVG9WaXNpYmxlLgogLy8gRklYTUU6IFRoZSBOU1RleHRGaW5kZXIgb3Zl
cmxheSBkb2Vzbid0IG1vdmUgd2l0aCBzY3JvbGxpbmc7IHdlIHNob3VsZCBoYXZlIGEgbW9kZSB3
aGVyZSB3ZSBtYW5hZ2UgdGhlIG92ZXJsYXkuCkBAIC0xNTEsMjEgKzE1MiwyMSBAQCAtICh1bnNp
Z25lZClpbmRleAogQGVuZAogCiBAaW1wbGVtZW50YXRpb24gV0tUZXh0RmluZGVyQ2xpZW50IHsK
LSAgICBXZWJLaXQ6OldlYlBhZ2VQcm94eSogX3BhZ2U7CisgICAgTmFrZWRQdHI8V2ViS2l0OjpX
ZWJQYWdlUHJveHk+IF9wYWdlOwogICAgIE5TVmlldyAqX3ZpZXc7CiAgICAgRGVxdWU8V1RGOjpG
dW5jdGlvbjx2b2lkKE5TQXJyYXkgKiwgYm9vbCBkaWRXcmFwKT4+IF9maW5kUmVwbHlDYWxsYmFj
a3M7CiAgICAgRGVxdWU8V1RGOjpGdW5jdGlvbjx2b2lkKE5TSW1hZ2UgKik+PiBfaW1hZ2VSZXBs
eUNhbGxiYWNrczsKICAgICBCT09MIF91c2VQbGF0Zm9ybUZpbmRVSTsKIH0KIAotLSAoaW5zdGFu
Y2V0eXBlKWluaXRXaXRoUGFnZTooV2ViS2l0OjpXZWJQYWdlUHJveHkmKXBhZ2UgdmlldzooTlNW
aWV3ICopdmlldyB1c2VQbGF0Zm9ybUZpbmRVSTooQk9PTCl1c2VQbGF0Zm9ybUZpbmRVSQorLSAo
aW5zdGFuY2V0eXBlKWluaXRXaXRoUGFnZTooTmFrZWRSZWY8V2ViS2l0OjpXZWJQYWdlUHJveHk+
KXBhZ2UgdmlldzooTlNWaWV3ICopdmlldyB1c2VQbGF0Zm9ybUZpbmRVSTooQk9PTCl1c2VQbGF0
Zm9ybUZpbmRVSQogewogICAgIHNlbGYgPSBbc3VwZXIgaW5pdF07CiAKICAgICBpZiAoIXNlbGYp
CiAgICAgICAgIHJldHVybiBuaWw7CiAKLSAgICBfcGFnZSA9ICZwYWdlOworICAgIF9wYWdlID0g
cGFnZS5wdHIoKTsKICAgICBfdmlldyA9IHZpZXc7CiAgICAgX3VzZVBsYXRmb3JtRmluZFVJID0g
dXNlUGxhdGZvcm1GaW5kVUk7CiAgICAgCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9tYWMvV0tWaWV3TGF5b3V0U3RyYXRlZ3kuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L21hYy9XS1ZpZXdMYXlvdXRTdHJhdGVneS5oCmluZGV4IDJkZjdlMDdkYjllYmJjZjdhMTExMTJl
NTYyNzBlNDA2N2M1ODg5ODcuLjJmZWVmNGY4OTcwYjkxMDE2ZTY4M2YzZjFkNmE3NTQ3ZDg3MzU4
ZjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL21hYy9XS1ZpZXdMYXlvdXRT
dHJhdGVneS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL21hYy9XS1ZpZXdMYXlvdXRT
dHJhdGVneS5oCkBAIC0yOSw2ICsyOSw4IEBACiAjaWYgUExBVEZPUk0oTUFDKQogCiAjaW1wb3J0
ICJXS0xheW91dE1vZGUuaCIKKyNpbXBvcnQgPHd0Zi9OYWtlZFB0ci5oPgorI2ltcG9ydCA8d3Rm
L05ha2VkUmVmLmg+CiAKIG5hbWVzcGFjZSBXZWJLaXQgewogY2xhc3MgV2ViUGFnZVByb3h5OwpA
QCAtMzksMTUgKzQxLDE1IEBAIGNsYXNzIFdlYlZpZXdJbXBsOwogCiBAaW50ZXJmYWNlIFdLVmll
d0xheW91dFN0cmF0ZWd5IDogTlNPYmplY3QgewogQHBhY2thZ2UKLSAgICBXZWJLaXQ6OldlYlBh
Z2VQcm94eSogX3BhZ2U7Ci0gICAgV2ViS2l0OjpXZWJWaWV3SW1wbCogX3dlYlZpZXdJbXBsOwor
ICAgIE5ha2VkUHRyPFdlYktpdDo6V2ViUGFnZVByb3h5PiBfcGFnZTsKKyAgICBOYWtlZFB0cjxX
ZWJLaXQ6OldlYlZpZXdJbXBsPiBfd2ViVmlld0ltcGw7CiAgICAgTlNWaWV3ICpfdmlldzsKIAog
ICAgIFdLTGF5b3V0TW9kZSBfbGF5b3V0TW9kZTsKICAgICB1bnNpZ25lZCBfZnJhbWVTaXplVXBk
YXRlc0Rpc2FibGVkQ291bnQ7CiB9CiAKLSsgKGluc3RhbmNldHlwZSlsYXlvdXRTdHJhdGVneVdp
dGhQYWdlOihXZWJLaXQ6OldlYlBhZ2VQcm94eSYpcGFnZSB2aWV3OihOU1ZpZXcgKil2aWV3IHZp
ZXdJbXBsOihXZWJLaXQ6OldlYlZpZXdJbXBsJil3ZWJWaWV3SW1wbCBtb2RlOihXS0xheW91dE1v
ZGUpbW9kZTsKKysgKGluc3RhbmNldHlwZSlsYXlvdXRTdHJhdGVneVdpdGhQYWdlOihOYWtlZFJl
ZjxXZWJLaXQ6OldlYlBhZ2VQcm94eT4pcGFnZSB2aWV3OihOU1ZpZXcgKil2aWV3IHZpZXdJbXBs
OihOYWtlZFJlZjxXZWJLaXQ6OldlYlZpZXdJbXBsPil3ZWJWaWV3SW1wbCBtb2RlOihXS0xheW91
dE1vZGUpbW9kZTsKIAogLSAodm9pZClpbnZhbGlkYXRlOwogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9tYWMvV0tWaWV3TGF5b3V0U3RyYXRlZ3kubW0gYi9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9tYWMvV0tWaWV3TGF5b3V0U3RyYXRlZ3kubW0KaW5kZXggNjM5ZDU5OTQ1
NDI4YjAyNTYyOGMzNWI1MjVjNTYyNjJkMWQzZGQxYi4uZWIwYmFiMzAxMTI5ZmEwODNlOWExNmRl
NjJjZWNlNjAwZDAxM2Q4NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvbWFj
L1dLVmlld0xheW91dFN0cmF0ZWd5Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL21h
Yy9XS1ZpZXdMYXlvdXRTdHJhdGVneS5tbQpAQCAtNDcsMjMgKzQ3LDIzIEBAIEBlbmQKIAogQGlt
cGxlbWVudGF0aW9uIFdLVmlld0xheW91dFN0cmF0ZWd5CiAKLSsgKGluc3RhbmNldHlwZSlsYXlv
dXRTdHJhdGVneVdpdGhQYWdlOihXZWJLaXQ6OldlYlBhZ2VQcm94eSYpcGFnZSB2aWV3OihOU1Zp
ZXcgKil2aWV3IHZpZXdJbXBsOihXZWJLaXQ6OldlYlZpZXdJbXBsJil3ZWJWaWV3SW1wbCBtb2Rl
OihXS0xheW91dE1vZGUpbW9kZQorKyAoaW5zdGFuY2V0eXBlKWxheW91dFN0cmF0ZWd5V2l0aFBh
Z2U6KE5ha2VkUmVmPFdlYktpdDo6V2ViUGFnZVByb3h5PilwYWdlIHZpZXc6KE5TVmlldyAqKXZp
ZXcgdmlld0ltcGw6KE5ha2VkUmVmPFdlYktpdDo6V2ViVmlld0ltcGw+KXdlYlZpZXdJbXBsIG1v
ZGU6KFdLTGF5b3V0TW9kZSltb2RlCiB7CiAgICAgV0tWaWV3TGF5b3V0U3RyYXRlZ3kgKnN0cmF0
ZWd5OwogCiAgICAgc3dpdGNoIChtb2RlKSB7CiAgICAgY2FzZSBrV0tMYXlvdXRNb2RlRml4ZWRT
aXplOgotICAgICAgICBzdHJhdGVneSA9IFtbV0tWaWV3Rml4ZWRTaXplTGF5b3V0U3RyYXRlZ3kg
YWxsb2NdIGluaXRXaXRoUGFnZTpwYWdlIHZpZXc6dmlldyB2aWV3SW1wbDp3ZWJWaWV3SW1wbCBt
b2RlOm1vZGVdOworICAgICAgICBzdHJhdGVneSA9IFtbV0tWaWV3Rml4ZWRTaXplTGF5b3V0U3Ry
YXRlZ3kgYWxsb2NdIGluaXRXaXRoUGFnZTpwYWdlLmNvcHlSZWYoKSB2aWV3OnZpZXcgdmlld0lt
cGw6d2ViVmlld0ltcGwuY29weVJlZigpIG1vZGU6bW9kZV07CiAgICAgICAgIGJyZWFrOwogICAg
IGNhc2Uga1dLTGF5b3V0TW9kZUR5bmFtaWNTaXplQ29tcHV0ZWRGcm9tVmlld1NjYWxlOgotICAg
ICAgICBzdHJhdGVneSA9IFtbV0tWaWV3RHluYW1pY1NpemVDb21wdXRlZEZyb21WaWV3U2NhbGVM
YXlvdXRTdHJhdGVneSBhbGxvY10gaW5pdFdpdGhQYWdlOnBhZ2Ugdmlldzp2aWV3IHZpZXdJbXBs
OndlYlZpZXdJbXBsIG1vZGU6bW9kZV07CisgICAgICAgIHN0cmF0ZWd5ID0gW1tXS1ZpZXdEeW5h
bWljU2l6ZUNvbXB1dGVkRnJvbVZpZXdTY2FsZUxheW91dFN0cmF0ZWd5IGFsbG9jXSBpbml0V2l0
aFBhZ2U6cGFnZS5jb3B5UmVmKCkgdmlldzp2aWV3IHZpZXdJbXBsOndlYlZpZXdJbXBsLmNvcHlS
ZWYoKSBtb2RlOm1vZGVdOwogICAgICAgICBicmVhazsKICAgICBjYXNlIGtXS0xheW91dE1vZGVE
eW5hbWljU2l6ZUNvbXB1dGVkRnJvbU1pbmltdW1Eb2N1bWVudFNpemU6Ci0gICAgICAgIHN0cmF0
ZWd5ID0gW1tXS1ZpZXdEeW5hbWljU2l6ZUNvbXB1dGVkRnJvbU1pbmltdW1Eb2N1bWVudFNpemVM
YXlvdXRTdHJhdGVneSBhbGxvY10gaW5pdFdpdGhQYWdlOnBhZ2Ugdmlldzp2aWV3IHZpZXdJbXBs
OndlYlZpZXdJbXBsIG1vZGU6bW9kZV07CisgICAgICAgIHN0cmF0ZWd5ID0gW1tXS1ZpZXdEeW5h
bWljU2l6ZUNvbXB1dGVkRnJvbU1pbmltdW1Eb2N1bWVudFNpemVMYXlvdXRTdHJhdGVneSBhbGxv
Y10gaW5pdFdpdGhQYWdlOnBhZ2UuY29weVJlZigpIHZpZXc6dmlldyB2aWV3SW1wbDp3ZWJWaWV3
SW1wbC5jb3B5UmVmKCkgbW9kZTptb2RlXTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBrV0tM
YXlvdXRNb2RlVmlld1NpemU6CiAgICAgZGVmYXVsdDoKLSAgICAgICAgc3RyYXRlZ3kgPSBbW1dL
Vmlld1ZpZXdTaXplTGF5b3V0U3RyYXRlZ3kgYWxsb2NdIGluaXRXaXRoUGFnZTpwYWdlIHZpZXc6
dmlldyB2aWV3SW1wbDp3ZWJWaWV3SW1wbCBtb2RlOm1vZGVdOworICAgICAgICBzdHJhdGVneSA9
IFtbV0tWaWV3Vmlld1NpemVMYXlvdXRTdHJhdGVneSBhbGxvY10gaW5pdFdpdGhQYWdlOnBhZ2Uu
Y29weVJlZigpIHZpZXc6dmlldyB2aWV3SW1wbDp3ZWJWaWV3SW1wbC5jb3B5UmVmKCkgbW9kZTpt
b2RlXTsKICAgICAgICAgYnJlYWs7CiAgICAgfQogCkBAIC03MiwxNSArNzIsMTUgQEAgKyAoaW5z
dGFuY2V0eXBlKWxheW91dFN0cmF0ZWd5V2l0aFBhZ2U6KFdlYktpdDo6V2ViUGFnZVByb3h5Jilw
YWdlIHZpZXc6KE5TVmlldwogICAgIHJldHVybiBbc3RyYXRlZ3kgYXV0b3JlbGVhc2VdOwogfQog
Ci0tIChpbnN0YW5jZXR5cGUpaW5pdFdpdGhQYWdlOihXZWJLaXQ6OldlYlBhZ2VQcm94eSYpcGFn
ZSB2aWV3OihOU1ZpZXcgKil2aWV3IHZpZXdJbXBsOihXZWJLaXQ6OldlYlZpZXdJbXBsJil3ZWJW
aWV3SW1wbCBtb2RlOihXS0xheW91dE1vZGUpbW9kZQorLSAoaW5zdGFuY2V0eXBlKWluaXRXaXRo
UGFnZTooTmFrZWRSZWY8V2ViS2l0OjpXZWJQYWdlUHJveHk+KXBhZ2UgdmlldzooTlNWaWV3ICop
dmlldyB2aWV3SW1wbDooTmFrZWRSZWY8V2ViS2l0OjpXZWJWaWV3SW1wbD4pd2ViVmlld0ltcGwg
bW9kZTooV0tMYXlvdXRNb2RlKW1vZGUKIHsKICAgICBzZWxmID0gW3N1cGVyIGluaXRdOwogCiAg
ICAgaWYgKCFzZWxmKQogICAgICAgICByZXR1cm4gbmlsOwogCi0gICAgX3BhZ2UgPSAmcGFnZTsK
LSAgICBfd2ViVmlld0ltcGwgPSAmd2ViVmlld0ltcGw7CisgICAgX3BhZ2UgPSBwYWdlLnB0cigp
OworICAgIF93ZWJWaWV3SW1wbCA9IHdlYlZpZXdJbXBsLnB0cigpOwogICAgIF92aWV3ID0gdmll
dzsKICAgICBfbGF5b3V0TW9kZSA9IG1vZGU7CiAKQEAgLTE1MiwxNCArMTUyLDE0IEBAIEBlbmQK
IAogQGltcGxlbWVudGF0aW9uIFdLVmlld1ZpZXdTaXplTGF5b3V0U3RyYXRlZ3kKIAotLSAoaW5z
dGFuY2V0eXBlKWluaXRXaXRoUGFnZTooV2ViS2l0OjpXZWJQYWdlUHJveHkmKXBhZ2Ugdmlldzoo
TlNWaWV3ICopdmlldyB2aWV3SW1wbDooV2ViS2l0OjpXZWJWaWV3SW1wbCYpd2ViVmlld0ltcGwg
bW9kZTooV0tMYXlvdXRNb2RlKW1vZGUKKy0gKGluc3RhbmNldHlwZSlpbml0V2l0aFBhZ2U6KE5h
a2VkUmVmPFdlYktpdDo6V2ViUGFnZVByb3h5PilwYWdlIHZpZXc6KE5TVmlldyAqKXZpZXcgdmll
d0ltcGw6KE5ha2VkUmVmPFdlYktpdDo6V2ViVmlld0ltcGw+KXdlYlZpZXdJbXBsIG1vZGU6KFdL
TGF5b3V0TW9kZSltb2RlCiB7Ci0gICAgc2VsZiA9IFtzdXBlciBpbml0V2l0aFBhZ2U6cGFnZSB2
aWV3OnZpZXcgdmlld0ltcGw6d2ViVmlld0ltcGwgbW9kZTptb2RlXTsKKyAgICBzZWxmID0gW3N1
cGVyIGluaXRXaXRoUGFnZTpwYWdlLmNvcHlSZWYoKSB2aWV3OnZpZXcgdmlld0ltcGw6d2ViVmll
d0ltcGwuY29weVJlZigpIG1vZGU6bW9kZV07CiAKICAgICBpZiAoIXNlbGYpCiAgICAgICAgIHJl
dHVybiBuaWw7CiAKLSAgICBwYWdlLnNldFVzZUZpeGVkTGF5b3V0KGZhbHNlKTsKKyAgICBwYWdl
LT5zZXRVc2VGaXhlZExheW91dChmYWxzZSk7CiAKICAgICByZXR1cm4gc2VsZjsKIH0KQEAgLTE3
MiwxNCArMTcyLDE0IEBAIEBlbmQKIAogQGltcGxlbWVudGF0aW9uIFdLVmlld0ZpeGVkU2l6ZUxh
eW91dFN0cmF0ZWd5CiAKLS0gKGluc3RhbmNldHlwZSlpbml0V2l0aFBhZ2U6KFdlYktpdDo6V2Vi
UGFnZVByb3h5JilwYWdlIHZpZXc6KE5TVmlldyAqKXZpZXcgdmlld0ltcGw6KFdlYktpdDo6V2Vi
Vmlld0ltcGwmKXdlYlZpZXdJbXBsIG1vZGU6KFdLTGF5b3V0TW9kZSltb2RlCistIChpbnN0YW5j
ZXR5cGUpaW5pdFdpdGhQYWdlOihOYWtlZFJlZjxXZWJLaXQ6OldlYlBhZ2VQcm94eT4pcGFnZSB2
aWV3OihOU1ZpZXcgKil2aWV3IHZpZXdJbXBsOihOYWtlZFJlZjxXZWJLaXQ6OldlYlZpZXdJbXBs
Pil3ZWJWaWV3SW1wbCBtb2RlOihXS0xheW91dE1vZGUpbW9kZQogewotICAgIHNlbGYgPSBbc3Vw
ZXIgaW5pdFdpdGhQYWdlOnBhZ2Ugdmlldzp2aWV3IHZpZXdJbXBsOndlYlZpZXdJbXBsIG1vZGU6
bW9kZV07CisgICAgc2VsZiA9IFtzdXBlciBpbml0V2l0aFBhZ2U6cGFnZS5jb3B5UmVmKCkgdmll
dzp2aWV3IHZpZXdJbXBsOndlYlZpZXdJbXBsLmNvcHlSZWYoKSBtb2RlOm1vZGVdOwogCiAgICAg
aWYgKCFzZWxmKQogICAgICAgICByZXR1cm4gbmlsOwogCi0gICAgcGFnZS5zZXRVc2VGaXhlZExh
eW91dCh0cnVlKTsKKyAgICBwYWdlLT5zZXRVc2VGaXhlZExheW91dCh0cnVlKTsKIAogICAgIHJl
dHVybiBzZWxmOwogfQpAQCAtMTkyLDE0ICsxOTIsMTQgQEAgQGVuZAogCiBAaW1wbGVtZW50YXRp
b24gV0tWaWV3RHluYW1pY1NpemVDb21wdXRlZEZyb21WaWV3U2NhbGVMYXlvdXRTdHJhdGVneQog
Ci0tIChpbnN0YW5jZXR5cGUpaW5pdFdpdGhQYWdlOihXZWJLaXQ6OldlYlBhZ2VQcm94eSYpcGFn
ZSB2aWV3OihOU1ZpZXcgKil2aWV3IHZpZXdJbXBsOihXZWJLaXQ6OldlYlZpZXdJbXBsJil3ZWJW
aWV3SW1wbCBtb2RlOihXS0xheW91dE1vZGUpbW9kZQorLSAoaW5zdGFuY2V0eXBlKWluaXRXaXRo
UGFnZTooTmFrZWRSZWY8V2ViS2l0OjpXZWJQYWdlUHJveHk+KXBhZ2UgdmlldzooTlNWaWV3ICop
dmlldyB2aWV3SW1wbDooTmFrZWRSZWY8V2ViS2l0OjpXZWJWaWV3SW1wbD4pd2ViVmlld0ltcGwg
bW9kZTooV0tMYXlvdXRNb2RlKW1vZGUKIHsKLSAgICBzZWxmID0gW3N1cGVyIGluaXRXaXRoUGFn
ZTpwYWdlIHZpZXc6dmlldyB2aWV3SW1wbDp3ZWJWaWV3SW1wbCBtb2RlOm1vZGVdOworICAgIHNl
bGYgPSBbc3VwZXIgaW5pdFdpdGhQYWdlOnBhZ2UuY29weVJlZigpIHZpZXc6dmlldyB2aWV3SW1w
bDp3ZWJWaWV3SW1wbC5jb3B5UmVmKCkgbW9kZTptb2RlXTsKIAogICAgIGlmICghc2VsZikKICAg
ICAgICAgcmV0dXJuIG5pbDsKIAotICAgIHBhZ2Uuc2V0VXNlRml4ZWRMYXlvdXQodHJ1ZSk7Cisg
ICAgcGFnZS0+c2V0VXNlRml4ZWRMYXlvdXQodHJ1ZSk7CiAKICAgICByZXR1cm4gc2VsZjsKIH0K
QEAgLTIzMSw5ICsyMzEsOSBAQCBAZW5kCiAKIEBpbXBsZW1lbnRhdGlvbiBXS1ZpZXdEeW5hbWlj
U2l6ZUNvbXB1dGVkRnJvbU1pbmltdW1Eb2N1bWVudFNpemVMYXlvdXRTdHJhdGVneQogCi0tIChp
bnN0YW5jZXR5cGUpaW5pdFdpdGhQYWdlOihXZWJLaXQ6OldlYlBhZ2VQcm94eSYpcGFnZSB2aWV3
OihOU1ZpZXcgKil2aWV3IHZpZXdJbXBsOihXZWJLaXQ6OldlYlZpZXdJbXBsJil3ZWJWaWV3SW1w
bCBtb2RlOihXS0xheW91dE1vZGUpbW9kZQorLSAoaW5zdGFuY2V0eXBlKWluaXRXaXRoUGFnZToo
TmFrZWRSZWY8V2ViS2l0OjpXZWJQYWdlUHJveHk+KXBhZ2UgdmlldzooTlNWaWV3ICopdmlldyB2
aWV3SW1wbDooTmFrZWRSZWY8V2ViS2l0OjpXZWJWaWV3SW1wbD4pd2ViVmlld0ltcGwgbW9kZToo
V0tMYXlvdXRNb2RlKW1vZGUKIHsKLSAgICBzZWxmID0gW3N1cGVyIGluaXRXaXRoUGFnZTpwYWdl
IHZpZXc6dmlldyB2aWV3SW1wbDp3ZWJWaWV3SW1wbCBtb2RlOm1vZGVdOworICAgIHNlbGYgPSBb
c3VwZXIgaW5pdFdpdGhQYWdlOnBhZ2UuY29weVJlZigpIHZpZXc6dmlldyB2aWV3SW1wbDp3ZWJW
aWV3SW1wbC5jb3B5UmVmKCkgbW9kZTptb2RlXTsKIAogICAgIGlmICghc2VsZikKICAgICAgICAg
cmV0dXJuIG5pbDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3Rl
ZEJ1bmRsZS9BUEkvbWFjL1dLRE9NRG9jdW1lbnQubW0gYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvSW5qZWN0ZWRCdW5kbGUvQVBJL21hYy9XS0RPTURvY3VtZW50Lm1tCmluZGV4IDBmMjcxZTVk
ZTdlMGE0ZDVhNjgxMDUyZjAyZGVjYzBlMWE0MTZkZmUuLjE2NmU3OWQwMzIyMmVjOTgyNDExOGE0
NzBjMDIwNDk0YTZiNThjMGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9J
bmplY3RlZEJ1bmRsZS9BUEkvbWFjL1dLRE9NRG9jdW1lbnQubW0KKysrIGIvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9tYWMvV0tET01Eb2N1bWVudC5tbQpAQCAt
MzIsNiArMzIsNyBAQAogI2ltcG9ydCA8V2ViQ29yZS9IVE1MRWxlbWVudC5oPgogI2ltcG9ydCA8
V2ViQ29yZS9UZXh0Lmg+CiAjaW1wb3J0IDxXZWJDb3JlL21hcmt1cC5oPgorI2ltcG9ydCA8d3Rm
L05ha2VkUmVmLmg+CiAKIEBpbnRlcmZhY2UgV0tET01Eb2N1bWVudFBhcnNlcllpZWxkVG9rZW4g
OiBOU09iamVjdAogCkBAIC00MSwxMCArNDIsMTAgQEAgQGltcGxlbWVudGF0aW9uIFdLRE9NRG9j
dW1lbnRQYXJzZXJZaWVsZFRva2VuIHsKICAgICBzdGQ6OnVuaXF1ZV9wdHI8V2ViQ29yZTo6RG9j
dW1lbnRQYXJzZXJZaWVsZFRva2VuPiBfdG9rZW47CiB9CiAKLS0gKGluc3RhbmNldHlwZSlpbml0
V2l0aERvY3VtZW50OihXZWJDb3JlOjpEb2N1bWVudCYpZG9jdW1lbnQKKy0gKGluc3RhbmNldHlw
ZSlpbml0V2l0aERvY3VtZW50OihOYWtlZFJlZjxXZWJDb3JlOjpEb2N1bWVudD4pZG9jdW1lbnQK
IHsKICAgICBpZiAoc2VsZiA9IFtzdXBlciBpbml0XSkKLSAgICAgICAgX3Rva2VuID0gZG9jdW1l
bnQuY3JlYXRlUGFyc2VyWWllbGRUb2tlbigpOworICAgICAgICBfdG9rZW4gPSBkb2N1bWVudC0+
Y3JlYXRlUGFyc2VyWWllbGRUb2tlbigpOwogICAgIHJldHVybiBzZWxmOwogfQogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9tYWMvV0tBY2Nlc3NpYmlsaXR5
V2ViUGFnZU9iamVjdEJhc2UuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL21h
Yy9XS0FjY2Vzc2liaWxpdHlXZWJQYWdlT2JqZWN0QmFzZS5oCmluZGV4IGFlY2Q0YTUwNWM5OTgy
MzAwZTM4NDA3MzY3Yzk4NzkwMzMyODA1OWIuLmExMTY1MjgzNTJiMWYxZjUxZTNkNDk0ZGQ4NDMy
MmIxNzYyODE4ZDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdl
L21hYy9XS0FjY2Vzc2liaWxpdHlXZWJQYWdlT2JqZWN0QmFzZS5oCisrKyBiL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9XS0FjY2Vzc2liaWxpdHlXZWJQYWdlT2JqZWN0QmFz
ZS5oCkBAIC0yNywxOSArMjcsMjAgQEAKICNkZWZpbmUgV0tBY2Nlc3NpYmlsaXR5V2ViUGFnZU9i
amVjdEJhc2VfaAogCiAjaW5jbHVkZSA8V2ViQ29yZS9QYWdlSWRlbnRpZmllci5oPgorI2luY2x1
ZGUgPHd0Zi9OYWtlZFB0ci5oPgogCiBuYW1lc3BhY2UgV2ViS2l0IHsKIGNsYXNzIFdlYlBhZ2U7
CiB9CiAKIEBpbnRlcmZhY2UgV0tBY2Nlc3NpYmlsaXR5V2ViUGFnZU9iamVjdEJhc2UgOiBOU09i
amVjdCB7Ci0gICAgV2ViS2l0OjpXZWJQYWdlKiBtX3BhZ2U7CisgICAgTmFrZWRQdHI8V2ViS2l0
OjpXZWJQYWdlPiBtX3BhZ2U7CiAgICAgV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIgbV9wYWdlSUQ7
CiAgICAgaWQgbV9wYXJlbnQ7CiAgICAgYm9vbCBtX2hhc01haW5GcmFtZVBsdWdpbjsKIH0KIAot
LSAodm9pZClzZXRXZWJQYWdlOihXZWJLaXQ6OldlYlBhZ2UqKXBhZ2U7CistICh2b2lkKXNldFdl
YlBhZ2U6KE5ha2VkUHRyPFdlYktpdDo6V2ViUGFnZT4pcGFnZTsKIC0gKHZvaWQpc2V0UmVtb3Rl
UGFyZW50OihpZClwYXJlbnQ7CiAtICh2b2lkKXNldEhhc01haW5GcmFtZVBsdWdpbjooYm9vbClo
YXNQbHVnaW47CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdl
L21hYy9XS0FjY2Vzc2liaWxpdHlXZWJQYWdlT2JqZWN0QmFzZS5tbSBiL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9XS0FjY2Vzc2liaWxpdHlXZWJQYWdlT2JqZWN0QmFzZS5t
bQppbmRleCBkODY4MmE5OGIxZWIyMjliOGM1OTM1YTY4OWU1YTcxMzY3Nzg1MDE4Li4wOGZlN2Zk
MTRhZjIxNDIzNjIzNjc4OTk0Mjk2NmVkOWM0ZWFjYTg2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9tYWMvV0tBY2Nlc3NpYmlsaXR5V2ViUGFnZU9iamVjdEJh
c2UubW0KKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1dLQWNjZXNz
aWJpbGl0eVdlYlBhZ2VPYmplY3RCYXNlLm1tCkBAIC00NSw3ICs0NSw3IEBACiAKIEBpbXBsZW1l
bnRhdGlvbiBXS0FjY2Vzc2liaWxpdHlXZWJQYWdlT2JqZWN0QmFzZQogCi0tIChXZWJDb3JlOjpB
WE9iamVjdENhY2hlKilheE9iamVjdENhY2hlCistIChOYWtlZFB0cjxXZWJDb3JlOjpBWE9iamVj
dENhY2hlPilheE9iamVjdENhY2hlCiB7CiAgICAgaWYgKCFtX3BhZ2UpCiAgICAgICAgIHJldHVy
biBudWxscHRyOwpAQCAtOTksNyArOTksNyBAQCAtIChpZClhY2Nlc3NpYmlsaXR5Um9vdE9iamVj
dFdyYXBwZXIKICAgICByZXR1cm4gbmlsOwogfQogCi0tICh2b2lkKXNldFdlYlBhZ2U6KFdlYktp
dDo6V2ViUGFnZSopcGFnZQorLSAodm9pZClzZXRXZWJQYWdlOihOYWtlZFB0cjxXZWJLaXQ6Oldl
YlBhZ2U+KXBhZ2UKIHsKICAgICBtX3BhZ2UgPSBwYWdlOwogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0TGVnYWN5L21hYy9QbHVnaW5zL1dlYkJhc2VOZXRzY2FwZVBsdWdpblZpZXcuaCBiL1Nv
dXJjZS9XZWJLaXRMZWdhY3kvbWFjL1BsdWdpbnMvV2ViQmFzZU5ldHNjYXBlUGx1Z2luVmlldy5o
CmluZGV4IGMyMzdjY2Y5MWNiNGJhNjkxMDk1ZTQzNGI1N2QxMzM5NzBmNTgzZTMuLmM1YTk2MWUz
NzdlZThmZTJkMDM1ODgyYWM0NTAxOWM2NTlhZGY2ZWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXRMZWdhY3kvbWFjL1BsdWdpbnMvV2ViQmFzZU5ldHNjYXBlUGx1Z2luVmlldy5oCisrKyBiL1Nv
dXJjZS9XZWJLaXRMZWdhY3kvbWFjL1BsdWdpbnMvV2ViQmFzZU5ldHNjYXBlUGx1Z2luVmlldy5o
CkBAIC0zMSw2ICszMSw3IEBACiAKICNpbXBvcnQgIldlYk5ldHNjYXBlUGx1Z2luUGFja2FnZS5o
IgogI2ltcG9ydCA8d3RmL0ZvcndhcmQuaD4KKyNpbXBvcnQgPHd0Zi9OYWtlZFB0ci5oPgogI2lt
cG9ydCA8d3RmL1JlZlB0ci5oPgogI2ltcG9ydCA8d3RmL1JldGFpblB0ci5oPgogCkBAIC05Nyw3
ICs5OCw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIC0gKFdlYkRhdGFTb3VyY2UgKilkYXRhU291
cmNlOwogLSAoV2ViVmlldyAqKXdlYlZpZXc7CiAtIChOU1dpbmRvdyAqKWN1cnJlbnRXaW5kb3c7
Ci0tIChXZWJDb3JlOjpIVE1MUGx1Z0luRWxlbWVudCopZWxlbWVudDsKKy0gKE5ha2VkUHRyPFdl
YkNvcmU6OkhUTUxQbHVnSW5FbGVtZW50PillbGVtZW50OwogCiAtICh2b2lkKXJlbW92ZVRyYWNr
aW5nUmVjdDsKIC0gKHZvaWQpcmVzZXRUcmFja2luZ1JlY3Q7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0TGVnYWN5L21hYy9QbHVnaW5zL1dlYkJhc2VOZXRzY2FwZVBsdWdpblZpZXcubW0gYi9T
b3VyY2UvV2ViS2l0TGVnYWN5L21hYy9QbHVnaW5zL1dlYkJhc2VOZXRzY2FwZVBsdWdpblZpZXcu
bW0KaW5kZXggNGY4OTllZGUyYzUyMjc2NTI0MWFhOWFjYWFiNjllZWJkYTZhZjY5ZC4uOTFhODdm
NzBkNWYxOTg3NDIyMjYyZjBjNTU2NTY0ZjQwZTAwNmQxYSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdExlZ2FjeS9tYWMvUGx1Z2lucy9XZWJCYXNlTmV0c2NhcGVQbHVnaW5WaWV3Lm1tCisrKyBi
L1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1BsdWdpbnMvV2ViQmFzZU5ldHNjYXBlUGx1Z2luVmll
dy5tbQpAQCAtNjY0LDcgKzY2NCw3IEBAIC0gKE5TV2luZG93ICopY3VycmVudFdpbmRvdwogICAg
IHJldHVybiBbc2VsZiB3aW5kb3ddID8gW3NlbGYgd2luZG93XSA6IFtbc2VsZiB3ZWJWaWV3XSBo
b3N0V2luZG93XTsKIH0KIAotLSAoV2ViQ29yZTo6SFRNTFBsdWdJbkVsZW1lbnQqKWVsZW1lbnQK
Ky0gKE5ha2VkUHRyPFdlYkNvcmU6OkhUTUxQbHVnSW5FbGVtZW50PillbGVtZW50CiB7CiAgICAg
cmV0dXJuIF9lbGVtZW50LmdldCgpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2Fj
eS9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViRWRpdG9yQ2xpZW50Lm1tIGIvU291cmNlL1dlYktpdExl
Z2FjeS9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViRWRpdG9yQ2xpZW50Lm1tCmluZGV4IDMzYjY4OWQ3
YjI3ZWZlNzZjOGZiODgwNTExYTI3ZTEzMGY4NTdiMzQuLjIwMTM4NGYwMDJlMzY1N2M1MjdlNTcz
OTVhMzA2NWZlOGEzNjAyODMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dl
YkNvcmVTdXBwb3J0L1dlYkVkaXRvckNsaWVudC5tbQorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5
L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJFZGl0b3JDbGllbnQubW0KQEAgLTQ3Miw3ICs0NzIsNyBA
QCB2b2lkIF9XZWJDcmVhdGVGcmFnbWVudChEb2N1bWVudCYgZG9jdW1lbnQsIE5TQXR0cmlidXRl
ZFN0cmluZyAqc3RyaW5nLCBGcmFnbWVudAogICAgICAgICBkb2N1bWVudDpraXQoJmRvY3VtZW50
KSBkb2N1bWVudEF0dHJpYnV0ZXM6ZG9jdW1lbnRBdHRyaWJ1dGVzIHN1YnJlc291cmNlczomc3Vi
cmVzb3VyY2VzXTsKICAgICByZXN1bHQuZnJhZ21lbnQgPSBjb3JlKGZyYWdtZW50KTsKICAgICBm
b3IgKFdlYlJlc291cmNlKiByZXNvdXJjZSBpbiBzdWJyZXNvdXJjZXMpCi0gICAgICAgIHJlc3Vs
dC5yZXNvdXJjZXMuYXBwZW5kKFtyZXNvdXJjZSBfY29yZVJlc291cmNlXSk7CisgICAgICAgIHJl
c3VsdC5yZXNvdXJjZXMuYXBwZW5kKFtyZXNvdXJjZSBfY29yZVJlc291cmNlXS5nZXQoKSk7CiB9
CiAKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViQ29yZVN1
cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQubW0gYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9X
ZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5tbQppbmRleCAyOTYyZmUwYzUxNzIz
MWZlZDI3OTA3ZDVkY2YyZDkzYTEwM2EzMzQzLi5lZWRhM2E3MTI1NzA3MjgwZWU1MjYzZWUyMmM4
NGZkMmQxYjIyODZkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJDb3Jl
U3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5tbQorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5
L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5tbQpAQCAtMTI4LDYgKzEy
OCw3IEBACiAjaW1wb3J0IDxwYWwvc3BpL2NvY29hL05TVVJMRmlsZVR5cGVNYXBwaW5nc1NQSS5o
PgogI2ltcG9ydCA8d3RmL0Jsb2NrT2JqQ0V4Y2VwdGlvbnMuaD4KICNpbXBvcnQgPHd0Zi9NYWlu
VGhyZWFkLmg+CisjaW1wb3J0IDx3dGYvTmFrZWRQdHIuaD4KICNpbXBvcnQgPHd0Zi9SZWYuaD4K
ICNpbXBvcnQgPHd0Zi9SdW5Mb29wLmg+CiAjaW1wb3J0IDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4K
QEAgLTE4Nyw5ICsxODgsOSBAQCBAaW50ZXJmYWNlIFdlYkZyYW1lUG9saWN5TGlzdGVuZXIgOiBO
U09iamVjdCA8V2ViUG9saWN5RGVjaXNpb25MaXN0ZW5lciwgV2ViRm9ybQogICAgIFdlYkNvcmU6
OlBvbGljeUFjdGlvbiBfZGVmYXVsdFBvbGljeTsKIH0KIAotLSAoaWQpaW5pdFdpdGhGcmFtZToo
V2ViQ29yZTo6RnJhbWUqKWZyYW1lIGlkZW50aWZpZXI6KFdlYkNvcmU6OlBvbGljeUNoZWNrSWRl
bnRpZmllcilpZGVudGlmaWVyIHBvbGljeUZ1bmN0aW9uOihXZWJDb3JlOjpGcmFtZVBvbGljeUZ1
bmN0aW9uJiYpcG9saWN5RnVuY3Rpb24gZGVmYXVsdFBvbGljeTooV2ViQ29yZTo6UG9saWN5QWN0
aW9uKWRlZmF1bHRQb2xpY3k7CistIChpZClpbml0V2l0aEZyYW1lOihOYWtlZFB0cjxXZWJDb3Jl
OjpGcmFtZT4pZnJhbWUgaWRlbnRpZmllcjooV2ViQ29yZTo6UG9saWN5Q2hlY2tJZGVudGlmaWVy
KWlkZW50aWZpZXIgcG9saWN5RnVuY3Rpb246KFdlYkNvcmU6OkZyYW1lUG9saWN5RnVuY3Rpb24m
Jilwb2xpY3lGdW5jdGlvbiBkZWZhdWx0UG9saWN5OihXZWJDb3JlOjpQb2xpY3lBY3Rpb24pZGVm
YXVsdFBvbGljeTsKICNpZiBIQVZFKEFQUF9MSU5LUykKLS0gKGlkKWluaXRXaXRoRnJhbWU6KFdl
YkNvcmU6OkZyYW1lKilmcmFtZSBpZGVudGlmaWVyOihXZWJDb3JlOjpQb2xpY3lDaGVja0lkZW50
aWZpZXIpaWRlbnRpZmllciBwb2xpY3lGdW5jdGlvbjooV2ViQ29yZTo6RnJhbWVQb2xpY3lGdW5j
dGlvbiYmKXBvbGljeUZ1bmN0aW9uIGRlZmF1bHRQb2xpY3k6KFdlYkNvcmU6OlBvbGljeUFjdGlv
bilkZWZhdWx0UG9saWN5IGFwcExpbmtVUkw6KE5TVVJMICopdXJsOworLSAoaWQpaW5pdFdpdGhG
cmFtZTooTmFrZWRQdHI8V2ViQ29yZTo6RnJhbWU+KWZyYW1lIGlkZW50aWZpZXI6KFdlYkNvcmU6
OlBvbGljeUNoZWNrSWRlbnRpZmllcilpZGVudGlmaWVyIHBvbGljeUZ1bmN0aW9uOihXZWJDb3Jl
OjpGcmFtZVBvbGljeUZ1bmN0aW9uJiYpcG9saWN5RnVuY3Rpb24gZGVmYXVsdFBvbGljeTooV2Vi
Q29yZTo6UG9saWN5QWN0aW9uKWRlZmF1bHRQb2xpY3kgYXBwTGlua1VSTDooTlNVUkwgKil1cmw7
CiAjZW5kaWYKIAogLSAodm9pZClpbnZhbGlkYXRlOwpAQCAtMTQ4NSw3ICsxNDg2LDcgQEAgdm9p
ZCBXZWJGcmFtZUxvYWRlckNsaWVudDo6dHJhbnNpdGlvblRvQ29tbWl0dGVkRm9yTmV3UGFnZSgp
CiAgICAgLy8gVGhlIGZvbGxvd2luZyBpcyBhIG5vLW9wIGZvciBXZWJIVE1MUmVwcmVzZW50YXRp
b24sIGJ1dCBmb3IgY3VzdG9tIGRvY3VtZW50IHR5cGVzCiAgICAgLy8gbGlrZSB0aGUgb25lcyB0
aGF0IFNhZmFyaSB1c2VzIGZvciBib29rbWFya3MgaXQgaXMgdGhlIG9ubHkgd2F5IHRoZSBEb2N1
bWVudExvYWRlcgogICAgIC8vIHdpbGwgZ2V0IHRoZSBwcm9wZXIgdGl0bGUuCi0gICAgaWYgKGF1
dG8qIGRvY3VtZW50TG9hZGVyID0gW2RhdGFTb3VyY2UgX2RvY3VtZW50TG9hZGVyXSkKKyAgICBp
ZiAoYXV0byBkb2N1bWVudExvYWRlciA9IFtkYXRhU291cmNlIF9kb2N1bWVudExvYWRlcl0pCiAg
ICAgICAgIGRvY3VtZW50TG9hZGVyLT5zZXRUaXRsZSh7IFtkYXRhU291cmNlIHBhZ2VUaXRsZV0s
IFdlYkNvcmU6OlRleHREaXJlY3Rpb246OkxUUiB9KTsKIAogICAgIGlmIChhdXRvKiBvd25lckVs
ZW1lbnQgPSBjb3JlRnJhbWUtPm93bmVyRWxlbWVudCgpKQpAQCAtMjM1OSw3ICsyMzYwLDcgQEAg
KyAodm9pZClpbml0aWFsaXplCiAjZW5kaWYKIH0KIAotLSAoaWQpaW5pdFdpdGhGcmFtZTooV2Vi
Q29yZTo6RnJhbWUqKWZyYW1lIGlkZW50aWZpZXI6KFdlYkNvcmU6OlBvbGljeUNoZWNrSWRlbnRp
ZmllcilpZGVudGlmaWVyIHBvbGljeUZ1bmN0aW9uOihXZWJDb3JlOjpGcmFtZVBvbGljeUZ1bmN0
aW9uJiYpcG9saWN5RnVuY3Rpb24gZGVmYXVsdFBvbGljeTooV2ViQ29yZTo6UG9saWN5QWN0aW9u
KWRlZmF1bHRQb2xpY3kKKy0gKGlkKWluaXRXaXRoRnJhbWU6KE5ha2VkUHRyPFdlYkNvcmU6OkZy
YW1lPilmcmFtZSBpZGVudGlmaWVyOihXZWJDb3JlOjpQb2xpY3lDaGVja0lkZW50aWZpZXIpaWRl
bnRpZmllciBwb2xpY3lGdW5jdGlvbjooV2ViQ29yZTo6RnJhbWVQb2xpY3lGdW5jdGlvbiYmKXBv
bGljeUZ1bmN0aW9uIGRlZmF1bHRQb2xpY3k6KFdlYkNvcmU6OlBvbGljeUFjdGlvbilkZWZhdWx0
UG9saWN5CiB7CiAgICAgc2VsZiA9IFtzZWxmIGluaXRdOwogICAgIGlmICghc2VsZikKQEAgLTIz
NzQsNyArMjM3NSw3IEBAIC0gKGlkKWluaXRXaXRoRnJhbWU6KFdlYkNvcmU6OkZyYW1lKilmcmFt
ZSBpZGVudGlmaWVyOihXZWJDb3JlOjpQb2xpY3lDaGVja0lkZW50CiB9CiAKICNpZiBIQVZFKEFQ
UF9MSU5LUykKLS0gKGlkKWluaXRXaXRoRnJhbWU6KFdlYkNvcmU6OkZyYW1lKilmcmFtZSBpZGVu
dGlmaWVyOihXZWJDb3JlOjpQb2xpY3lDaGVja0lkZW50aWZpZXIpaWRlbnRpZmllciBwb2xpY3lG
dW5jdGlvbjooV2ViQ29yZTo6RnJhbWVQb2xpY3lGdW5jdGlvbiYmKXBvbGljeUZ1bmN0aW9uIGRl
ZmF1bHRQb2xpY3k6KFdlYkNvcmU6OlBvbGljeUFjdGlvbilkZWZhdWx0UG9saWN5IGFwcExpbmtV
Ukw6KE5TVVJMICopYXBwTGlua1VSTAorLSAoaWQpaW5pdFdpdGhGcmFtZTooTmFrZWRQdHI8V2Vi
Q29yZTo6RnJhbWU+KWZyYW1lIGlkZW50aWZpZXI6KFdlYkNvcmU6OlBvbGljeUNoZWNrSWRlbnRp
ZmllcilpZGVudGlmaWVyIHBvbGljeUZ1bmN0aW9uOihXZWJDb3JlOjpGcmFtZVBvbGljeUZ1bmN0
aW9uJiYpcG9saWN5RnVuY3Rpb24gZGVmYXVsdFBvbGljeTooV2ViQ29yZTo6UG9saWN5QWN0aW9u
KWRlZmF1bHRQb2xpY3kgYXBwTGlua1VSTDooTlNVUkwgKilhcHBMaW5rVVJMCiB7CiAgICAgc2Vs
ZiA9IFtzZWxmIGluaXRXaXRoRnJhbWU6ZnJhbWUgaWRlbnRpZmllcjppZGVudGlmaWVyIHBvbGlj
eUZ1bmN0aW9uOldURk1vdmUocG9saWN5RnVuY3Rpb24pIGRlZmF1bHRQb2xpY3k6ZGVmYXVsdFBv
bGljeV07CiAgICAgaWYgKCFzZWxmKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS9t
YWMvV2ViQ29yZVN1cHBvcnQvV2ViR2VvbG9jYXRpb25DbGllbnQubW0gYi9Tb3VyY2UvV2ViS2l0
TGVnYWN5L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJHZW9sb2NhdGlvbkNsaWVudC5tbQppbmRleCA4
N2RhNzMwZmVhYWZkZWRkNzc0ZWQ3ZWE5NmI2ZjhkMDkzZWE5YTNkLi5kNWZjNjRiODEwN2Q4MjJk
YjNkOThjZjFhYzczZjIxZmRjMGQxNmEyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5
L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJHZW9sb2NhdGlvbkNsaWVudC5tbQorKysgYi9Tb3VyY2Uv
V2ViS2l0TGVnYWN5L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJHZW9sb2NhdGlvbkNsaWVudC5tbQpA
QCAtMzcsNiArMzcsOCBAQAogI2ltcG9ydCA8V2ViQ29yZS9GcmFtZS5oPgogI2ltcG9ydCA8V2Vi
Q29yZS9HZW9sb2NhdGlvbi5oPgogI2ltcG9ydCA8d3RmL0Jsb2NrT2JqQ0V4Y2VwdGlvbnMuaD4K
KyNpbXBvcnQgPHd0Zi9OYWtlZFB0ci5oPgorI2ltcG9ydCA8d3RmL05ha2VkUmVmLmg+CiAKICNp
ZiBQTEFURk9STShJT1NfRkFNSUxZKQogI2ltcG9ydCA8V2ViQ29yZS9XQUtSZXNwb25kZXIuaD4K
QEAgLTUwLDcgKzUyLDcgQEAgQGludGVyZmFjZSBXZWJHZW9sb2NhdGlvblBvbGljeUxpc3RlbmVy
IDogTlNPYmplY3QgPFdlYkFsbG93RGVueVBvbGljeUxpc3RlbmVyPgogewogICAgIFJlZlB0cjxH
ZW9sb2NhdGlvbj4gX2dlb2xvY2F0aW9uOwogfQotLSAoaWQpaW5pdFdpdGhHZW9sb2NhdGlvbjoo
R2VvbG9jYXRpb24mKWdlb2xvY2F0aW9uOworLSAoaWQpaW5pdFdpdGhHZW9sb2NhdGlvbjooTmFr
ZWRSZWY8R2VvbG9jYXRpb24+KWdlb2xvY2F0aW9uOwogQGVuZAogI2Vsc2UKIEBpbnRlcmZhY2Ug
V2ViR2VvbG9jYXRpb25Qb2xpY3lMaXN0ZW5lciA6IE5TT2JqZWN0IDxXZWJBbGxvd0RlbnlQb2xp
Y3lMaXN0ZW5lcj4KQEAgLTU4LDcgKzYwLDcgQEAgQGludGVyZmFjZSBXZWJHZW9sb2NhdGlvblBv
bGljeUxpc3RlbmVyIDogTlNPYmplY3QgPFdlYkFsbG93RGVueVBvbGljeUxpc3RlbmVyPgogICAg
IFJlZlB0cjxHZW9sb2NhdGlvbj4gX2dlb2xvY2F0aW9uOwogICAgIFJldGFpblB0cjxXZWJWaWV3
PiBfd2ViVmlldzsKIH0KLS0gKGlkKWluaXRXaXRoR2VvbG9jYXRpb246KEdlb2xvY2F0aW9uKiln
ZW9sb2NhdGlvbiBmb3JXZWJWaWV3OihXZWJWaWV3Kil3ZWJWaWV3OworLSAoaWQpaW5pdFdpdGhH
ZW9sb2NhdGlvbjooTmFrZWRQdHI8R2VvbG9jYXRpb24+KWdlb2xvY2F0aW9uIGZvcldlYlZpZXc6
KFdlYlZpZXcqKXdlYlZpZXc7CiBAZW5kCiAjZW5kaWYKIApAQCAtNjcsNyArNjksNyBAQCBAaW50
ZXJmYWNlIFdlYkdlb2xvY2F0aW9uUHJvdmlkZXJJbml0aWFsaXphdGlvbkxpc3RlbmVyIDogTlNP
YmplY3QgPFdlYkdlb2xvY2F0aQogQHByaXZhdGUKICAgICBSZWZQdHI8R2VvbG9jYXRpb24+IG1f
Z2VvbG9jYXRpb247CiB9Ci0tIChpZClpbml0V2l0aEdlb2xvY2F0aW9uOihHZW9sb2NhdGlvbiYp
Z2VvbG9jYXRpb247CistIChpZClpbml0V2l0aEdlb2xvY2F0aW9uOihOYWtlZFJlZjxHZW9sb2Nh
dGlvbj4pZ2VvbG9jYXRpb247CiBAZW5kCiAjZW5kaWYKIApAQCAtMTQwLDExICsxNDIsMTEgQEAg
T3B0aW9uYWw8R2VvbG9jYXRpb25Qb3NpdGlvbkRhdGE+IFdlYkdlb2xvY2F0aW9uQ2xpZW50Ojps
YXN0UG9zaXRpb24oKQogI2lmICFQTEFURk9STShJT1NfRkFNSUxZKQogQGltcGxlbWVudGF0aW9u
IFdlYkdlb2xvY2F0aW9uUG9saWN5TGlzdGVuZXIKIAotLSAoaWQpaW5pdFdpdGhHZW9sb2NhdGlv
bjooR2VvbG9jYXRpb24mKWdlb2xvY2F0aW9uCistIChpZClpbml0V2l0aEdlb2xvY2F0aW9uOihO
YWtlZFJlZjxHZW9sb2NhdGlvbj4pZ2VvbG9jYXRpb24KIHsKICAgICBpZiAoIShzZWxmID0gW3N1
cGVyIGluaXRdKSkKICAgICAgICAgcmV0dXJuIG5pbDsKLSAgICBfZ2VvbG9jYXRpb24gPSAmZ2Vv
bG9jYXRpb247CisgICAgX2dlb2xvY2F0aW9uID0gZ2VvbG9jYXRpb24ucHRyKCk7CiAgICAgcmV0
dXJuIHNlbGY7CiB9CiAKQEAgLTE2MiwxMiArMTY0LDEyIEBAIEBlbmQKIAogI2Vsc2UKIEBpbXBs
ZW1lbnRhdGlvbiBXZWJHZW9sb2NhdGlvblBvbGljeUxpc3RlbmVyCi0tIChpZClpbml0V2l0aEdl
b2xvY2F0aW9uOihHZW9sb2NhdGlvbiopZ2VvbG9jYXRpb24gZm9yV2ViVmlldzooV2ViVmlldyop
d2ViVmlldworLSAoaWQpaW5pdFdpdGhHZW9sb2NhdGlvbjooTmFrZWRQdHI8R2VvbG9jYXRpb24+
KWdlb2xvY2F0aW9uIGZvcldlYlZpZXc6KFdlYlZpZXcqKXdlYlZpZXcKIHsKICAgICBzZWxmID0g
W3N1cGVyIGluaXRdOwogICAgIGlmICghc2VsZikKICAgICAgICAgcmV0dXJuIG5pbDsKLSAgICBf
Z2VvbG9jYXRpb24gPSBnZW9sb2NhdGlvbjsKKyAgICBfZ2VvbG9jYXRpb24gPSBnZW9sb2NhdGlv
bi5nZXQoKTsKICAgICBfd2ViVmlldyA9IHdlYlZpZXc7CiAgICAgcmV0dXJuIHNlbGY7CiB9CkBA
IC0yMDYsMTEgKzIwOCwxMSBAQCAtIChCT09MKXNob3VsZENsZWFyQ2FjaGUKIEBlbmQKIAogQGlt
cGxlbWVudGF0aW9uIFdlYkdlb2xvY2F0aW9uUHJvdmlkZXJJbml0aWFsaXphdGlvbkxpc3RlbmVy
Ci0tIChpZClpbml0V2l0aEdlb2xvY2F0aW9uOihHZW9sb2NhdGlvbiYpZ2VvbG9jYXRpb24KKy0g
KGlkKWluaXRXaXRoR2VvbG9jYXRpb246KE5ha2VkUmVmPEdlb2xvY2F0aW9uPilnZW9sb2NhdGlv
bgogewogICAgIHNlbGYgPSBbc3VwZXIgaW5pdF07CiAgICAgaWYgKHNlbGYpCi0gICAgICAgIG1f
Z2VvbG9jYXRpb24gPSAmZ2VvbG9jYXRpb247CisgICAgICAgIG1fZ2VvbG9jYXRpb24gPSBnZW9s
b2NhdGlvbi5wdHIoKTsKICAgICByZXR1cm4gc2VsZjsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdExlZ2FjeS9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViSW5zcGVjdG9yQ2xpZW50Lm1tIGIv
U291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViSW5zcGVjdG9yQ2xpZW50
Lm1tCmluZGV4IGM0NzZjNzU1YjJlNmFhNDk2ZTU4Yjg0MmYyMjJlOGY2NWYzZmVjODMuLjNhMGE3
MjNjYWU4ZGQyNDYyOGMwZjU5ZTc1MzM2NTJiMmI1NGJhODkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXRMZWdhY3kvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkluc3BlY3RvckNsaWVudC5tbQorKysg
Yi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJJbnNwZWN0b3JDbGll
bnQubW0KQEAgLTU0LDYgKzU0LDcgQEAKICNpbXBvcnQgPFdlYkNvcmUvU2V0dGluZ3MuaD4KICNp
bXBvcnQgPFdlYktpdExlZ2FjeS9ET01FeHRlbnNpb25zLmg+CiAjaW1wb3J0IDxhbGdvcml0aG0+
CisjaW1wb3J0IDx3dGYvTmFrZWRQdHIuaD4KICNpbXBvcnQgPHd0Zi90ZXh0L0Jhc2U2NC5oPgog
CiB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKQEAgLTY4LDcgKzY5LDcgQEAgQGludGVyZmFjZSBX
ZWJJbnNwZWN0b3JXaW5kb3dDb250cm9sbGVyIDogTlNXaW5kb3dDb250cm9sbGVyIDxOU1dpbmRv
d0RlbGVnYXRlLAogQHByaXZhdGUKICAgICBSZXRhaW5QdHI8V2ViVmlldz4gX2luc3BlY3RlZFdl
YlZpZXc7CiAgICAgV2ViVmlldyogX2Zyb250ZW5kV2ViVmlldzsKLSAgICBXZWJJbnNwZWN0b3JG
cm9udGVuZENsaWVudCogX2Zyb250ZW5kQ2xpZW50OworICAgIE5ha2VkUHRyPFdlYkluc3BlY3Rv
ckZyb250ZW5kQ2xpZW50PiBfZnJvbnRlbmRDbGllbnQ7CiAgICAgV2ViSW5zcGVjdG9yQ2xpZW50
KiBfaW5zcGVjdG9yQ2xpZW50OwogICAgIEJPT0wgX2F0dGFjaGVkVG9JbnNwZWN0ZWRXZWJWaWV3
OwogICAgIEJPT0wgX3Nob3VsZEF0dGFjaDsKQEAgLTgyLDkgKzgzLDkgQEAgLSAoV2ViVmlldyAq
KWZyb250ZW5kV2ViVmlldzsKIC0gKHZvaWQpYXR0YWNoOwogLSAodm9pZClkZXRhY2g7CiAtIChC
T09MKWF0dGFjaGVkOwotLSAodm9pZClzZXRGcm9udGVuZENsaWVudDooV2ViSW5zcGVjdG9yRnJv
bnRlbmRDbGllbnQqKWZyb250ZW5kQ2xpZW50OwotLSAodm9pZClzZXRJbnNwZWN0b3JDbGllbnQ6
KFdlYkluc3BlY3RvckNsaWVudCopaW5zcGVjdG9yQ2xpZW50OwotLSAoV2ViSW5zcGVjdG9yQ2xp
ZW50KilpbnNwZWN0b3JDbGllbnQ7CistICh2b2lkKXNldEZyb250ZW5kQ2xpZW50OihOYWtlZFB0
cjxXZWJJbnNwZWN0b3JGcm9udGVuZENsaWVudD4pZnJvbnRlbmRDbGllbnQ7CistICh2b2lkKXNl
dEluc3BlY3RvckNsaWVudDooTmFrZWRQdHI8V2ViSW5zcGVjdG9yQ2xpZW50PilpbnNwZWN0b3JD
bGllbnQ7CistIChOYWtlZFB0cjxXZWJJbnNwZWN0b3JDbGllbnQ+KWluc3BlY3RvckNsaWVudDsK
IC0gKHZvaWQpc2V0QXR0YWNoZWRXaW5kb3dIZWlnaHQ6KHVuc2lnbmVkKWhlaWdodDsKIC0gKHZv
aWQpc2V0RG9ja2luZ1VuYXZhaWxhYmxlOihCT09MKXVuYXZhaWxhYmxlOwogLSAodm9pZClkZXN0
cm95SW5zcGVjdG9yVmlldzsKQEAgLTI2MSw3ICsyNjIsNyBAQCB2b2lkIFdlYkluc3BlY3RvckZy
b250ZW5kQ2xpZW50OjpyZXNldFN0YXRlKCkKIHsKICAgICBJbnNwZWN0b3JGcm9udGVuZENsaWVu
dExvY2FsOjpyZXNldFN0YXRlKCk7CiAKLSAgICBhdXRvKiBpbnNwZWN0b3JDbGllbnQgPSBbbV9m
cm9udGVuZFdpbmRvd0NvbnRyb2xsZXIgaW5zcGVjdG9yQ2xpZW50XTsKKyAgICBhdXRvIGluc3Bl
Y3RvckNsaWVudCA9IFttX2Zyb250ZW5kV2luZG93Q29udHJvbGxlciBpbnNwZWN0b3JDbGllbnRd
OwogICAgIGluc3BlY3RvckNsaWVudC0+ZGVsZXRlSW5zcGVjdG9yU3RhcnRzQXR0YWNoZWQoKTsK
ICAgICBpbnNwZWN0b3JDbGllbnQtPmRlbGV0ZUluc3BlY3RvckF0dGFjaERpc2FibGVkKCk7CiAK
QEAgLTY3MiwxNyArNjczLDE3IEBAIC0gKEJPT0wpYXR0YWNoZWQKICAgICByZXR1cm4gX2F0dGFj
aGVkVG9JbnNwZWN0ZWRXZWJWaWV3OwogfQogCi0tICh2b2lkKXNldEZyb250ZW5kQ2xpZW50OihX
ZWJJbnNwZWN0b3JGcm9udGVuZENsaWVudCopZnJvbnRlbmRDbGllbnQKKy0gKHZvaWQpc2V0RnJv
bnRlbmRDbGllbnQ6KE5ha2VkUHRyPFdlYkluc3BlY3RvckZyb250ZW5kQ2xpZW50Pilmcm9udGVu
ZENsaWVudAogewogICAgIF9mcm9udGVuZENsaWVudCA9IGZyb250ZW5kQ2xpZW50OwogfQogCi0t
ICh2b2lkKXNldEluc3BlY3RvckNsaWVudDooV2ViSW5zcGVjdG9yQ2xpZW50KilpbnNwZWN0b3JD
bGllbnQKKy0gKHZvaWQpc2V0SW5zcGVjdG9yQ2xpZW50OihOYWtlZFB0cjxXZWJJbnNwZWN0b3JD
bGllbnQ+KWluc3BlY3RvckNsaWVudAogewogICAgIF9pbnNwZWN0b3JDbGllbnQgPSBpbnNwZWN0
b3JDbGllbnQ7CiB9CiAKLS0gKFdlYkluc3BlY3RvckNsaWVudCopaW5zcGVjdG9yQ2xpZW50Cist
IChOYWtlZFB0cjxXZWJJbnNwZWN0b3JDbGllbnQ+KWluc3BlY3RvckNsaWVudAogewogICAgIHJl
dHVybiBfaW5zcGVjdG9yQ2xpZW50OwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2Fj
eS9tYWMvV2ViSW5zcGVjdG9yL1dlYkluc3BlY3RvckZyb250ZW5kLmggYi9Tb3VyY2UvV2ViS2l0
TGVnYWN5L21hYy9XZWJJbnNwZWN0b3IvV2ViSW5zcGVjdG9yRnJvbnRlbmQuaAppbmRleCA3ZTlk
NjhhMzJhYmIxNWYwOTZkN2M3NDNmYWJlMThlNzBiYjRiZDdjLi44ZGE1NzY1NzU0NjMwNWQwM2Y4
OTRmZDhjYWI0NDhmNWY1M2M3MTEwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21h
Yy9XZWJJbnNwZWN0b3IvV2ViSW5zcGVjdG9yRnJvbnRlbmQuaAorKysgYi9Tb3VyY2UvV2ViS2l0
TGVnYWN5L21hYy9XZWJJbnNwZWN0b3IvV2ViSW5zcGVjdG9yRnJvbnRlbmQuaApAQCAtMjMsMTMg
KzIzLDE1IEBACiAgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBP
U1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKICAqLwogCisjaW1wb3J0IDx3dGYvTmFrZWRQdHIu
aD4KKwogY2xhc3MgV2ViSW5zcGVjdG9yRnJvbnRlbmRDbGllbnQ7CiAKIEBpbnRlcmZhY2UgV2Vi
SW5zcGVjdG9yRnJvbnRlbmQgOiBOU09iamVjdCB7CiBAcHJpdmF0ZQotICAgIFdlYkluc3BlY3Rv
ckZyb250ZW5kQ2xpZW50ICptX2Zyb250ZW5kQ2xpZW50OworICAgIE5ha2VkUHRyPFdlYkluc3Bl
Y3RvckZyb250ZW5kQ2xpZW50PiBtX2Zyb250ZW5kQ2xpZW50OwogfQotLSAoaWQpaW5pdFdpdGhG
cm9udGVuZENsaWVudDooV2ViSW5zcGVjdG9yRnJvbnRlbmRDbGllbnQgKilmcm9udGVuZENsaWVu
dDsKKy0gKGlkKWluaXRXaXRoRnJvbnRlbmRDbGllbnQ6KE5ha2VkUHRyPFdlYkluc3BlY3RvckZy
b250ZW5kQ2xpZW50Pilmcm9udGVuZENsaWVudDsKIC0gKHZvaWQpYXR0YWNoOwogLSAodm9pZClk
ZXRhY2g7CiAtICh2b2lkKWNsb3NlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS9t
YWMvV2ViSW5zcGVjdG9yL1dlYkluc3BlY3RvckZyb250ZW5kLm1tIGIvU291cmNlL1dlYktpdExl
Z2FjeS9tYWMvV2ViSW5zcGVjdG9yL1dlYkluc3BlY3RvckZyb250ZW5kLm1tCmluZGV4IDUxY2U0
OGU4ZDZmODZkNTAyOTYzYTYwZmY4MTUzMzMyNWNiOTY3ODAuLmU3OTgxOTgzNDFhYmExMDBhYzQx
YWNjNDM4ZGE1Mjc3YjQ1MWQyZWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFj
L1dlYkluc3BlY3Rvci9XZWJJbnNwZWN0b3JGcm9udGVuZC5tbQorKysgYi9Tb3VyY2UvV2ViS2l0
TGVnYWN5L21hYy9XZWJJbnNwZWN0b3IvV2ViSW5zcGVjdG9yRnJvbnRlbmQubW0KQEAgLTMyLDcg
KzMyLDcgQEAgdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiAKIEBpbXBsZW1lbnRhdGlvbiBXZWJJ
bnNwZWN0b3JGcm9udGVuZAogCi0tIChpZClpbml0V2l0aEZyb250ZW5kQ2xpZW50OihXZWJJbnNw
ZWN0b3JGcm9udGVuZENsaWVudCAqKWZyb250ZW5kQ2xpZW50CistIChpZClpbml0V2l0aEZyb250
ZW5kQ2xpZW50OihOYWtlZFB0cjxXZWJJbnNwZWN0b3JGcm9udGVuZENsaWVudD4pZnJvbnRlbmRD
bGllbnQKIHsKICAgICBpZiAoIShzZWxmID0gW3N1cGVyIGluaXRdKSkKICAgICAgICAgcmV0dXJu
IG5pbDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYkluc3BlY3Rvci9X
ZWJOb2RlSGlnaGxpZ2h0LmggYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJJbnNwZWN0b3Iv
V2ViTm9kZUhpZ2hsaWdodC5oCmluZGV4IDAwNmUxZDBiOTY1MWM2N2I1NTNmNTM3Nzg5MjFkYjE4
MzQ3Mjg1OWQuLjRkYWYzM2ViNzlhZDMzM2RkZGFjNTliNzAzOGVlNWU2MTI2NTI3YjUgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYkluc3BlY3Rvci9XZWJOb2RlSGlnaGxp
Z2h0LmgKKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViSW5zcGVjdG9yL1dlYk5vZGVI
aWdobGlnaHQuaApAQCAtMzEsNiArMzEsNyBAQAogI2ltcG9ydCA8V2ViS2l0TGVnYWN5L1dBS0Fw
cEtpdFN0dWJzLmg+CiAjaW1wb3J0IDxXZWJLaXRMZWdhY3kvV0FLVmlldy5oPgogI2VuZGlmCisj
aW1wb3J0IDx3dGYvTmFrZWRQdHIuaD4KIAogQGNsYXNzIFdlYk5vZGVIaWdobGlnaHRWaWV3Owog
I2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCkBAIC01OCwxMCArNTksMTAgQEAgbmFtZXNwYWNlIFdl
YkNvcmUgewogICAgIFdlYkhpZ2hsaWdodExheWVyICpfaGlnaGxpZ2h0TGF5ZXI7CiAjZW5kaWYK
ICAgICBXZWJOb2RlSGlnaGxpZ2h0VmlldyAqX2hpZ2hsaWdodFZpZXc7Ci0gICAgV2ViQ29yZTo6
SW5zcGVjdG9yQ29udHJvbGxlciogX2luc3BlY3RvckNvbnRyb2xsZXI7CisgICAgTmFrZWRQdHI8
V2ViQ29yZTo6SW5zcGVjdG9yQ29udHJvbGxlcj4gX2luc3BlY3RvckNvbnRyb2xsZXI7CiAgICAg
aWQgX2RlbGVnYXRlOwogfQotLSAoaWQpaW5pdFdpdGhUYXJnZXRWaWV3OihOU1ZpZXcgKil0YXJn
ZXRWaWV3IGluc3BlY3RvckNvbnRyb2xsZXI6KFdlYkNvcmU6Okluc3BlY3RvckNvbnRyb2xsZXIq
KWluc3BlY3RvckNvbnRyb2xsZXI7CistIChpZClpbml0V2l0aFRhcmdldFZpZXc6KE5TVmlldyAq
KXRhcmdldFZpZXcgaW5zcGVjdG9yQ29udHJvbGxlcjooTmFrZWRQdHI8V2ViQ29yZTo6SW5zcGVj
dG9yQ29udHJvbGxlcj4paW5zcGVjdG9yQ29udHJvbGxlcjsKIAogLSAodm9pZClzZXREZWxlZ2F0
ZTooaWQpZGVsZWdhdGU7CiAtIChpZClkZWxlZ2F0ZTsKQEAgLTcyLDcgKzczLDcgQEAgbmFtZXNw
YWNlIFdlYkNvcmUgewogLSAoTlNWaWV3ICopdGFyZ2V0VmlldzsKIC0gKFdlYk5vZGVIaWdobGln
aHRWaWV3ICopaGlnaGxpZ2h0VmlldzsKIAotLSAoV2ViQ29yZTo6SW5zcGVjdG9yQ29udHJvbGxl
ciopaW5zcGVjdG9yQ29udHJvbGxlcjsKKy0gKE5ha2VkUHRyPFdlYkNvcmU6Okluc3BlY3RvckNv
bnRyb2xsZXI+KWluc3BlY3RvckNvbnRyb2xsZXI7CiAKICNpZiAhUExBVEZPUk0oSU9TX0ZBTUlM
WSkKIC0gKHZvaWQpc2V0TmVlZHNVcGRhdGVJblRhcmdldFZpZXdSZWN0OihOU1JlY3QpcmVjdDsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYkluc3BlY3Rvci9XZWJOb2Rl
SGlnaGxpZ2h0Lm1tIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViSW5zcGVjdG9yL1dlYk5v
ZGVIaWdobGlnaHQubW0KaW5kZXggM2RiNDRkNmY1NTg5OWYwOGFjOGRkNDJmODhhZGZmM2Y5OWM1
OTk5MC4uMGFmNTYxOWE3MjZjMzVhZjg1MWFhMDdjNWM0M2QzMDI3MzdlYTI1NiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViSW5zcGVjdG9yL1dlYk5vZGVIaWdobGlnaHQu
bW0KKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViSW5zcGVjdG9yL1dlYk5vZGVIaWdo
bGlnaHQubW0KQEAgLTgxLDcgKzgxLDcgQEAgQGVuZAogCiBAaW1wbGVtZW50YXRpb24gV2ViTm9k
ZUhpZ2hsaWdodAogCi0tIChpZClpbml0V2l0aFRhcmdldFZpZXc6KE5TVmlldyAqKXRhcmdldFZp
ZXcgaW5zcGVjdG9yQ29udHJvbGxlcjooSW5zcGVjdG9yQ29udHJvbGxlciopaW5zcGVjdG9yQ29u
dHJvbGxlcgorLSAoaWQpaW5pdFdpdGhUYXJnZXRWaWV3OihOU1ZpZXcgKil0YXJnZXRWaWV3IGlu
c3BlY3RvckNvbnRyb2xsZXI6KE5ha2VkUHRyPEluc3BlY3RvckNvbnRyb2xsZXI+KWluc3BlY3Rv
ckNvbnRyb2xsZXIKIHsKICAgICBzZWxmID0gW3N1cGVyIGluaXRdOwogICAgIGlmICghc2VsZikK
QEAgLTI1MCw3ICsyNTAsNyBAQCAtIChOU1ZpZXcgKil0YXJnZXRWaWV3CiAgICAgcmV0dXJuIF90
YXJnZXRWaWV3OwogfQogCi0tIChJbnNwZWN0b3JDb250cm9sbGVyKilpbnNwZWN0b3JDb250cm9s
bGVyCistIChOYWtlZFB0cjxJbnNwZWN0b3JDb250cm9sbGVyPilpbnNwZWN0b3JDb250cm9sbGVy
CiB7CiAgICAgcmV0dXJuIF9pbnNwZWN0b3JDb250cm9sbGVyOwogfQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJBcmNoaXZlLm1tIGIvU291cmNlL1dlYktp
dExlZ2FjeS9tYWMvV2ViVmlldy9XZWJBcmNoaXZlLm1tCmluZGV4IDBkYTcwYmJmODU3ZDAyOGM5
ZWM0YmFkNmViMzFmOWQ4Mzc1MTcxY2MuLjhlYmZiNTNlOTE0YmZlZWVlNzMzOGU2NjAzNjk3OGVm
YmE1YjJiZDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2Vi
QXJjaGl2ZS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYkFyY2hp
dmUubW0KQEAgLTE3NSwxMyArMTc1LDEzIEBAIC0gKGluc3RhbmNldHlwZSlpbml0V2l0aE1haW5S
ZXNvdXJjZTooV2ViUmVzb3VyY2UgKiltYWluUmVzb3VyY2Ugc3VicmVzb3VyY2VzOihOCiAKICAg
ICBWZWN0b3I8UmVmPEFyY2hpdmVSZXNvdXJjZT4+IGNvcmVSZXNvdXJjZXM7CiAgICAgZm9yIChX
ZWJSZXNvdXJjZSAqc3VicmVzb3VyY2UgaW4gc3VicmVzb3VyY2VzKQotICAgICAgICBjb3JlUmVz
b3VyY2VzLmFwcGVuZChbc3VicmVzb3VyY2UgX2NvcmVSZXNvdXJjZV0pOworICAgICAgICBjb3Jl
UmVzb3VyY2VzLmFwcGVuZChbc3VicmVzb3VyY2UgX2NvcmVSZXNvdXJjZV0uZ2V0KCkpOwogCiAg
ICAgVmVjdG9yPFJlZjxMZWdhY3lXZWJBcmNoaXZlPj4gY29yZUFyY2hpdmVzOwogICAgIGZvciAo
V2ViQXJjaGl2ZSAqc3ViZnJhbWVBcmNoaXZlIGluIHN1YmZyYW1lQXJjaGl2ZXMpCiAgICAgICAg
IGNvcmVBcmNoaXZlcy5hcHBlbmQoKltzdWJmcmFtZUFyY2hpdmUtPl9wcml2YXRlIGNvcmVBcmNo
aXZlXSk7CiAKLSAgICBbX3ByaXZhdGUgc2V0Q29yZUFyY2hpdmU6TGVnYWN5V2ViQXJjaGl2ZTo6
Y3JlYXRlKFttYWluUmVzb3VyY2UgX2NvcmVSZXNvdXJjZV0sIFdURk1vdmUoY29yZVJlc291cmNl
cyksIFdURk1vdmUoY29yZUFyY2hpdmVzKSldOworICAgIFtfcHJpdmF0ZSBzZXRDb3JlQXJjaGl2
ZTpMZWdhY3lXZWJBcmNoaXZlOjpjcmVhdGUoW21haW5SZXNvdXJjZSBfY29yZVJlc291cmNlXS5n
ZXQoKSwgV1RGTW92ZShjb3JlUmVzb3VyY2VzKSwgV1RGTW92ZShjb3JlQXJjaGl2ZXMpKV07CiAg
ICAgcmV0dXJuIHNlbGY7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFj
L1dlYlZpZXcvV2ViRGF0YVNvdXJjZS5tbSBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZp
ZXcvV2ViRGF0YVNvdXJjZS5tbQppbmRleCA5MWU5NGJmZjBkMmRiZWYxNjdkY2U1NGE4ZjE3YTVi
Mzk0ZDgyODRhLi5iYjAyNzY5M2MyNWE2YmM2Mzg2NDNkMGVlYzI2NGE0MjUwZTQzYjc5IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYkRhdGFTb3VyY2UubW0K
KysrIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJEYXRhU291cmNlLm1tCkBA
IC02MSw2ICs2MSw3IEBACiAjaW1wb3J0IDxXZWJLaXRMZWdhY3kvRE9NUHJpdmF0ZS5oPgogI2lt
cG9ydCA8d3RmL0Fzc2VydGlvbnMuaD4KICNpbXBvcnQgPHd0Zi9NYWluVGhyZWFkLmg+CisjaW1w
b3J0IDx3dGYvTmFrZWRQdHIuaD4KICNpbXBvcnQgPHd0Zi9SZWZQdHIuaD4KICNpbXBvcnQgPHd0
Zi9SZXRhaW5QdHIuaD4KICNpbXBvcnQgPHd0Zi9SdW5Mb29wLmg+CkBAIC0zOTQsNyArMzk1LDcg
QEAgLSAodm9pZClfbWFrZVJlcHJlc2VudGF0aW9uCiAjZW5kaWYKIH0KIAotLSAoV2ViQ29yZTo6
RG9jdW1lbnRMb2FkZXIqKV9kb2N1bWVudExvYWRlcgorLSAoTmFrZWRQdHI8V2ViQ29yZTo6RG9j
dW1lbnRMb2FkZXI+KV9kb2N1bWVudExvYWRlcgogewogICAgIHJldHVybiB0b1ByaXZhdGUoX3By
aXZhdGUpLT5sb2FkZXIucHRyKCk7CiB9CkBAIC01NjQsNyArNTY1LDcgQEAgLSAoV2ViUmVzb3Vy
Y2UgKilzdWJyZXNvdXJjZUZvclVSTDooTlNVUkwgKilVUkwKIAogLSAodm9pZClhZGRTdWJyZXNv
dXJjZTooV2ViUmVzb3VyY2UgKilzdWJyZXNvdXJjZQogeyAgICAKLSAgICB0b1ByaXZhdGUoX3By
aXZhdGUpLT5sb2FkZXItPmFkZEFyY2hpdmVSZXNvdXJjZShbc3VicmVzb3VyY2UgX2NvcmVSZXNv
dXJjZV0pOworICAgIHRvUHJpdmF0ZShfcHJpdmF0ZSktPmxvYWRlci0+YWRkQXJjaGl2ZVJlc291
cmNlKFtzdWJyZXNvdXJjZSBfY29yZVJlc291cmNlXS5nZXQoKSk7CiB9CiAKIEBlbmQKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViRGF0YVNvdXJjZUludGVy
bmFsLmggYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYkRhdGFTb3VyY2VJbnRl
cm5hbC5oCmluZGV4IDgwZTgxMTBmNTRmYjJkMjg4YTNiNzE5NDg3ZWNiN2RmZDg0MGMyYjIuLmIx
ZDg1NGQwYmQ0ZTExNjExYTRkMTVlZTcxYjI2NzFlMTNhYWQzYWYgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViRGF0YVNvdXJjZUludGVybmFsLmgKKysrIGIv
U291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJEYXRhU291cmNlSW50ZXJuYWwuaApA
QCAtMjgsNiArMjgsNyBAQAogCiAjaW1wb3J0ICJXZWJEYXRhU291cmNlUHJpdmF0ZS5oIgogI2lt
cG9ydCA8d3RmL0ZvcndhcmQuaD4KKyNpbXBvcnQgPHd0Zi9OYWtlZFB0ci5oPgogCiBuYW1lc3Bh
Y2UgV2ViQ29yZSB7CiBjbGFzcyBEb2N1bWVudExvYWRlcjsKQEAgLTU3LDcgKzU4LDcgQEAgY2xh
c3MgV2ViRG9jdW1lbnRMb2FkZXJNYWM7CiAtICh2b2lkKV9yZWNlaXZlZERhdGE6KE5TRGF0YSAq
KWRhdGE7CiAtICh2b2lkKV9yZXZlcnRUb1Byb3Zpc2lvbmFsU3RhdGU7CiAtICh2b2lkKV9zZXRN
YWluRG9jdW1lbnRFcnJvcjooTlNFcnJvciAqKWVycm9yOwotLSAoV2ViQ29yZTo6RG9jdW1lbnRM
b2FkZXIqKV9kb2N1bWVudExvYWRlcjsKKy0gKE5ha2VkUHRyPFdlYkNvcmU6OkRvY3VtZW50TG9h
ZGVyPilfZG9jdW1lbnRMb2FkZXI7CiAjaWYgVVNFKFFVSUNLX0xPT0spCiBAcHJvcGVydHkgKG5v
bmF0b21pYywgY29weSwgc2V0dGVyPV9zZXRRdWlja0xvb2tDb250ZW50OikgTlNEaWN0aW9uYXJ5
ICpfcXVpY2tMb29rQ29udGVudDsKIEBwcm9wZXJ0eSAobm9uYXRvbWljLCBzZXR0ZXI9X3NldFF1
aWNrTG9va1ByZXZpZXdMb2FkZXJDbGllbnQ6KSBXZWJDb3JlOjpMZWdhY3lQcmV2aWV3TG9hZGVy
Q2xpZW50KiBfcXVpY2tMb29rUHJldmlld0xvYWRlckNsaWVudDsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViRnJhbWUubW0gYi9Tb3VyY2UvV2ViS2l0TGVn
YWN5L21hYy9XZWJWaWV3L1dlYkZyYW1lLm1tCmluZGV4IDM0ZjI4MWQxNzA0NWQ1ZGVkMTQ2YTFl
MzE5YTJmYjYzMGQwYjJjM2YuLjBjYjZhZjY5MjFhNTVhZmE2MTBlNTk4NGMzNzk5ZjNjMWFlYTdl
NjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViRnJhbWUu
bW0KKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJGcmFtZS5tbQpAQCAt
MjkxLDcgKzI5MSw3IEBAIFdlYlZpZXcgKmtpdChXZWJDb3JlOjpQYWdlKiBwYWdlKQogCiBXZWJW
aWV3ICpnZXRXZWJWaWV3KFdlYkZyYW1lICp3ZWJGcmFtZSkKIHsKLSAgICBhdXRvKiBjb3JlRnJh
bWUgPSBjb3JlKHdlYkZyYW1lKTsKKyAgICBhdXRvIGNvcmVGcmFtZSA9IGNvcmUod2ViRnJhbWUp
OwogICAgIGlmICghY29yZUZyYW1lKQogICAgICAgICByZXR1cm4gbmlsOwogICAgIHJldHVybiBr
aXQoY29yZUZyYW1lLT5wYWdlKCkpOwpAQCAtNDMxLDggKzQzMSw4IEBAIC0gKHZvaWQpX3VwZGF0
ZUJhY2tncm91bmRBbmRVcGRhdGVzV2hpbGVPZmZzY3JlZW4KICAgICBDR0NvbG9yUmVmIGJhY2tn
cm91bmRDb2xvciA9IFt3ZWJWaWV3IGJhY2tncm91bmRDb2xvcl07CiAjZW5kaWYKIAotICAgIGF1
dG8qIGNvcmVGcmFtZSA9IF9wcml2YXRlLT5jb3JlRnJhbWU7Ci0gICAgZm9yIChhdXRvKiBmcmFt
ZSA9IGNvcmVGcmFtZTsgZnJhbWU7IGZyYW1lID0gZnJhbWUtPnRyZWUoKS50cmF2ZXJzZU5leHQo
Y29yZUZyYW1lKSkgeworICAgIGF1dG8gY29yZUZyYW1lID0gX3ByaXZhdGUtPmNvcmVGcmFtZTsK
KyAgICBmb3IgKGF1dG8gZnJhbWUgPSBjb3JlRnJhbWU7IGZyYW1lOyBmcmFtZSA9IGZyYW1lLT50
cmVlKCkudHJhdmVyc2VOZXh0KGNvcmVGcmFtZSkpIHsKICAgICAgICAgLy8gRG9uJ3QgY2FsbCBz
ZXREcmF3c0JhY2tncm91bmQ6WUVTIGhlcmUgYmVjYXVzZSBpdCBtYXkgYmUgTk8gYmVjYXVzZSBv
ZiBhIGxvYWQKICAgICAgICAgLy8gaW4gcHJvZ3Jlc3M7IFdlYkZyYW1lTG9hZGVyQ2xpZW50IGtl
ZXBzIGl0IHNldCB0byBOTyBkdXJpbmcgdGhlIGxvYWQgcHJvY2Vzcy4KICAgICAgICAgV2ViRnJh
bWUgKndlYkZyYW1lID0ga2l0KGZyYW1lKTsKQEAgLTQ2OSw4ICs0NjksOCBAQCAtIChpZClfaW50
ZXJuYWxMb2FkRGVsZWdhdGUKIAogLSAodm9pZClfdW5tYXJrQWxsQmFkR3JhbW1hcgogewotICAg
IGF1dG8qIGNvcmVGcmFtZSA9IF9wcml2YXRlLT5jb3JlRnJhbWU7Ci0gICAgZm9yIChhdXRvKiBm
cmFtZSA9IGNvcmVGcmFtZTsgZnJhbWU7IGZyYW1lID0gZnJhbWUtPnRyZWUoKS50cmF2ZXJzZU5l
eHQoY29yZUZyYW1lKSkgeworICAgIGF1dG8gY29yZUZyYW1lID0gX3ByaXZhdGUtPmNvcmVGcmFt
ZTsKKyAgICBmb3IgKGF1dG8gZnJhbWUgPSBjb3JlRnJhbWU7IGZyYW1lOyBmcmFtZSA9IGZyYW1l
LT50cmVlKCkudHJhdmVyc2VOZXh0KGNvcmVGcmFtZSkpIHsKICAgICAgICAgaWYgKGF1dG8qIGRv
Y3VtZW50ID0gZnJhbWUtPmRvY3VtZW50KCkpCiAgICAgICAgICAgICBkb2N1bWVudC0+bWFya2Vy
cygpLnJlbW92ZU1hcmtlcnMoV2ViQ29yZTo6RG9jdW1lbnRNYXJrZXI6OkdyYW1tYXIpOwogICAg
IH0KQEAgLTQ3OSw4ICs0NzksOCBAQCAtICh2b2lkKV91bm1hcmtBbGxCYWRHcmFtbWFyCiAtICh2
b2lkKV91bm1hcmtBbGxNaXNzcGVsbGluZ3MKIHsKICNpZiAhUExBVEZPUk0oSU9TX0ZBTUlMWSkK
LSAgICBhdXRvKiBjb3JlRnJhbWUgPSBfcHJpdmF0ZS0+Y29yZUZyYW1lOwotICAgIGZvciAoYXV0
byogZnJhbWUgPSBjb3JlRnJhbWU7IGZyYW1lOyBmcmFtZSA9IGZyYW1lLT50cmVlKCkudHJhdmVy
c2VOZXh0KGNvcmVGcmFtZSkpIHsKKyAgICBhdXRvIGNvcmVGcmFtZSA9IF9wcml2YXRlLT5jb3Jl
RnJhbWU7CisgICAgZm9yIChhdXRvIGZyYW1lID0gY29yZUZyYW1lOyBmcmFtZTsgZnJhbWUgPSBm
cmFtZS0+dHJlZSgpLnRyYXZlcnNlTmV4dChjb3JlRnJhbWUpKSB7CiAgICAgICAgIGlmIChhdXRv
KiBkb2N1bWVudCA9IGZyYW1lLT5kb2N1bWVudCgpKQogICAgICAgICAgICAgZG9jdW1lbnQtPm1h
cmtlcnMoKS5yZW1vdmVNYXJrZXJzKFdlYkNvcmU6OkRvY3VtZW50TWFya2VyOjpTcGVsbGluZyk7
CiAgICAgfQpAQCAtNDkzLDcgKzQ5Myw3IEBAIC0gKEJPT0wpX2hhc1NlbGVjdGlvbgogCiAgICAg
Ly8gb3B0aW1pemF0aW9uIGZvciBjb21tb24gY2FzZSB0byBhdm9pZCBjcmVhdGluZyBwb3RlbnRp
YWxseSBsYXJnZSBzZWxlY3Rpb24gc3RyaW5nCiAgICAgaWYgKFtkb2N1bWVudFZpZXcgaXNLaW5k
T2ZDbGFzczpbV2ViSFRNTFZpZXcgY2xhc3NdXSkKLSAgICAgICAgaWYgKGF1dG8qIGNvcmVGcmFt
ZSA9IF9wcml2YXRlLT5jb3JlRnJhbWUpCisgICAgICAgIGlmIChhdXRvIGNvcmVGcmFtZSA9IF9w
cml2YXRlLT5jb3JlRnJhbWUpCiAgICAgICAgICAgICByZXR1cm4gY29yZUZyYW1lLT5zZWxlY3Rp
b24oKS5pc1JhbmdlKCk7CiAKICAgICBpZiAoW2RvY3VtZW50VmlldyBjb25mb3Jtc1RvUHJvdG9j
b2w6QHByb3RvY29sKFdlYkRvY3VtZW50VGV4dCldKQpAQCAtNTE0LDggKzUxNCw4IEBAIC0gKEJP
T0wpX2F0TW9zdE9uZUZyYW1lSGFzU2VsZWN0aW9uCiB7CiAgICAgLy8gRklYTUU6IDQxODYwNTAg
aXMgb25lIGtub3duIGNhc2UgdGhhdCBtYWtlcyB0aGlzIGRlYnVnIGNoZWNrIGZhaWwuCiAgICAg
Qk9PTCBmb3VuZCA9IE5POwotICAgIGF1dG8qIGNvcmVGcmFtZSA9IF9wcml2YXRlLT5jb3JlRnJh
bWU7Ci0gICAgZm9yIChhdXRvKiBmcmFtZSA9IGNvcmVGcmFtZTsgZnJhbWU7IGZyYW1lID0gZnJh
bWUtPnRyZWUoKS50cmF2ZXJzZU5leHQoY29yZUZyYW1lKSkgeworICAgIGF1dG8gY29yZUZyYW1l
ID0gX3ByaXZhdGUtPmNvcmVGcmFtZTsKKyAgICBmb3IgKGF1dG8gZnJhbWUgPSBjb3JlRnJhbWU7
IGZyYW1lOyBmcmFtZSA9IGZyYW1lLT50cmVlKCkudHJhdmVyc2VOZXh0KGNvcmVGcmFtZSkpIHsK
ICAgICAgICAgaWYgKFtraXQoZnJhbWUpIF9oYXNTZWxlY3Rpb25dKSB7CiAgICAgICAgICAgICBp
ZiAoZm91bmQpCiAgICAgICAgICAgICAgICAgcmV0dXJuIE5POwpAQCAtNTI4LDggKzUyOCw4IEBA
IC0gKEJPT0wpX2F0TW9zdE9uZUZyYW1lSGFzU2VsZWN0aW9uCiAKIC0gKFdlYkZyYW1lICopX2Zp
bmRGcmFtZVdpdGhTZWxlY3Rpb24KIHsKLSAgICBhdXRvKiBjb3JlRnJhbWUgPSBfcHJpdmF0ZS0+
Y29yZUZyYW1lOwotICAgIGZvciAoYXV0byogZnJhbWUgPSBjb3JlRnJhbWU7IGZyYW1lOyBmcmFt
ZSA9IGZyYW1lLT50cmVlKCkudHJhdmVyc2VOZXh0KGNvcmVGcmFtZSkpIHsKKyAgICBhdXRvIGNv
cmVGcmFtZSA9IF9wcml2YXRlLT5jb3JlRnJhbWU7CisgICAgZm9yIChhdXRvIGZyYW1lID0gY29y
ZUZyYW1lOyBmcmFtZTsgZnJhbWUgPSBmcmFtZS0+dHJlZSgpLnRyYXZlcnNlTmV4dChjb3JlRnJh
bWUpKSB7CiAgICAgICAgIFdlYkZyYW1lICp3ZWJGcmFtZSA9IGtpdChmcmFtZSk7CiAgICAgICAg
IGlmIChbd2ViRnJhbWUgX2hhc1NlbGVjdGlvbl0pCiAgICAgICAgICAgICByZXR1cm4gd2ViRnJh
bWU7CkBAIC03NjUsNyArNzY1LDcgQEAgLSAodm9pZClfc2Nyb2xsRE9NUmFuZ2VUb1Zpc2libGU6
KERPTVJhbmdlICopcmFuZ2Ugd2l0aEluc2V0OihDR0Zsb2F0KWluc2V0CiAgICAgICAgICAgICBz
dGFydE5vZGUtPnJlbmRlcmVyKCktPnNjcm9sbFJlY3RUb1Zpc2libGUoV2ViQ29yZTo6ZW5jbG9z
aW5nSW50UmVjdChyYW5nZVJlY3QpLCBpbnNpZGVGaXhlZCwgeyBXZWJDb3JlOjpTZWxlY3Rpb25S
ZXZlYWxNb2RlOjpSZXZlYWwsIFdlYkNvcmU6OlNjcm9sbEFsaWdubWVudDo6YWxpZ25Ub0VkZ2VJ
Zk5lZWRlZCwgV2ViQ29yZTo6U2Nyb2xsQWxpZ25tZW50OjphbGlnblRvRWRnZUlmTmVlZGVkLCBX
ZWJDb3JlOjpTaG91bGRBbGxvd0Nyb3NzT3JpZ2luU2Nyb2xsaW5nOjpZZXN9KTsKICAgICAgICAg
ICAgIGxheWVyLT5zZXRBZGp1c3RGb3JJT1NDYXJldFdoZW5TY3JvbGxpbmcoZmFsc2UpOwogCi0g
ICAgICAgICAgICBhdXRvKiBjb3JlRnJhbWUgPSBjb3JlKHNlbGYpOworICAgICAgICAgICAgYXV0
byBjb3JlRnJhbWUgPSBjb3JlKHNlbGYpOwogICAgICAgICAgICAgaWYgKGNvcmVGcmFtZSkgewog
ICAgICAgICAgICAgICAgIGF1dG8mIGZyYW1lU2VsZWN0aW9uID0gY29yZUZyYW1lLT5zZWxlY3Rp
b24oKTsKICAgICAgICAgICAgICAgICBmcmFtZVNlbGVjdGlvbi5zZXRDYXJldFJlY3ROZWVkc1Vw
ZGF0ZSgpOwpAQCAtODcwLDcgKzg3MCw3IEBAIC0gKERPTVJhbmdlICopX21hcmtET01SYW5nZQog
CiAtIChET01Eb2N1bWVudEZyYWdtZW50ICopX2RvY3VtZW50RnJhZ21lbnRXaXRoTWFya3VwU3Ry
aW5nOihOU1N0cmluZyAqKW1hcmt1cFN0cmluZyBiYXNlVVJMU3RyaW5nOihOU1N0cmluZyAqKWJh
c2VVUkxTdHJpbmcKIHsKLSAgICBhdXRvKiBmcmFtZSA9IF9wcml2YXRlLT5jb3JlRnJhbWU7Cisg
ICAgYXV0byBmcmFtZSA9IF9wcml2YXRlLT5jb3JlRnJhbWU7CiAgICAgaWYgKCFmcmFtZSkKICAg
ICAgICAgcmV0dXJuIG5pbDsKIApAQCAtODgzLDcgKzg4Myw3IEBAIC0gKERPTURvY3VtZW50RnJh
Z21lbnQgKilfZG9jdW1lbnRGcmFnbWVudFdpdGhNYXJrdXBTdHJpbmc6KE5TU3RyaW5nICopbWFy
a3VwU3RyCiAKIC0gKERPTURvY3VtZW50RnJhZ21lbnQgKilfZG9jdW1lbnRGcmFnbWVudFdpdGhO
b2Rlc0FzUGFyYWdyYXBoczooTlNBcnJheSAqKW5vZGVzCiB7Ci0gICAgYXV0byogZnJhbWUgPSBf
cHJpdmF0ZS0+Y29yZUZyYW1lOworICAgIGF1dG8gZnJhbWUgPSBfcHJpdmF0ZS0+Y29yZUZyYW1l
OwogICAgIGlmICghZnJhbWUpCiAgICAgICAgIHJldHVybiBuaWw7CiAKQEAgLTk3MCw3ICs5NzAs
NyBAQCAtICh2b2lkKV9kcmFnU291cmNlRW5kZWRBdDooTlNQb2ludCl3aW5kb3dMb2Mgb3BlcmF0
aW9uOihOU0RyYWdPcGVyYXRpb24pb3BlcmF0aQogCiAtIChCT09MKV9jYW5Qcm92aWRlRG9jdW1l
bnRTb3VyY2UKIHsKLSAgICBhdXRvKiBmcmFtZSA9IF9wcml2YXRlLT5jb3JlRnJhbWU7CisgICAg
YXV0byBmcmFtZSA9IF9wcml2YXRlLT5jb3JlRnJhbWU7CiAgICAgU3RyaW5nIG1pbWVUeXBlID0g
ZnJhbWUtPmRvY3VtZW50KCktPmxvYWRlcigpLT53cml0ZXIoKS5taW1lVHlwZSgpOwogICAgIGF1
dG8qIHBsdWdpbkRhdGEgPSBmcmFtZS0+cGFnZSgpID8gJmZyYW1lLT5wYWdlKCktPnBsdWdpbkRh
dGEoKSA6IDA7CiAKQEAgLTEwMDYsNyArMTAwNiw3IEBAIEBpbXBsZW1lbnRhdGlvbiBXZWJGcmFt
ZSAoV2ViUHJpdmF0ZSkKIC8vIEZJWE1FOiBUaGlzIGV4aXN0cyBvbmx5IGFzIGEgY29udmVuaWVu
Y2UgZm9yIFNhZmFyaSwgY29uc2lkZXIgbW92aW5nIHRoZXJlLgogLSAoQk9PTClfaXNEZXNjZW5k
YW50T2ZGcmFtZTooV2ViRnJhbWUgKilhbmNlc3RvcgogewotICAgIGF1dG8qIGNvcmVGcmFtZSA9
IF9wcml2YXRlLT5jb3JlRnJhbWU7CisgICAgYXV0byBjb3JlRnJhbWUgPSBfcHJpdmF0ZS0+Y29y
ZUZyYW1lOwogICAgIHJldHVybiBjb3JlRnJhbWUgJiYgY29yZUZyYW1lLT50cmVlKCkuaXNEZXNj
ZW5kYW50T2YoY29yZShhbmNlc3RvcikpOwogfQogCkBAIC0xMTcxLDcgKzExNzEsNyBAQCAtICh1
bnNpZ25lZClfcGVuZGluZ0ZyYW1lVW5sb2FkRXZlbnRDb3VudAogI2lmIEVOQUJMRShORVRTQ0FQ
RV9QTFVHSU5fQVBJKQogLSAodm9pZClfcmVjdXJzaXZlX3Jlc3VtZU51bGxFdmVudHNGb3JBbGxO
ZXRzY2FwZVBsdWdpbnMKIHsKLSAgICBhdXRvKiBjb3JlRnJhbWUgPSBjb3JlKHNlbGYpOworICAg
IGF1dG8gY29yZUZyYW1lID0gY29yZShzZWxmKTsKICAgICBmb3IgKGF1dG8qIGZyYW1lID0gY29y
ZUZyYW1lOyBmcmFtZTsgZnJhbWUgPSBmcmFtZS0+dHJlZSgpLnRyYXZlcnNlTmV4dChjb3JlRnJh
bWUpKSB7CiAgICAgICAgIE5TVmlldyA8V2ViRG9jdW1lbnRWaWV3PiAqZG9jdW1lbnRWaWV3ID0g
W1traXQoZnJhbWUpIGZyYW1lVmlld10gZG9jdW1lbnRWaWV3XTsKICAgICAgICAgaWYgKFtkb2N1
bWVudFZpZXcgaXNLaW5kT2ZDbGFzczpbV2ViSFRNTFZpZXcgY2xhc3NdXSkKQEAgLTExODEsNyAr
MTE4MSw3IEBAIC0gKHZvaWQpX3JlY3Vyc2l2ZV9yZXN1bWVOdWxsRXZlbnRzRm9yQWxsTmV0c2Nh
cGVQbHVnaW5zCiAKIC0gKHZvaWQpX3JlY3Vyc2l2ZV9wYXVzZU51bGxFdmVudHNGb3JBbGxOZXRz
Y2FwZVBsdWdpbnMKIHsKLSAgICBhdXRvKiBjb3JlRnJhbWUgPSBjb3JlKHNlbGYpOworICAgIGF1
dG8gY29yZUZyYW1lID0gY29yZShzZWxmKTsKICAgICBmb3IgKGF1dG8qIGZyYW1lID0gY29yZUZy
YW1lOyBmcmFtZTsgZnJhbWUgPSBmcmFtZS0+dHJlZSgpLnRyYXZlcnNlTmV4dChjb3JlRnJhbWUp
KSB7CiAgICAgICAgIE5TVmlldyA8V2ViRG9jdW1lbnRWaWV3PiAqZG9jdW1lbnRWaWV3ID0gW1tr
aXQoZnJhbWUpIGZyYW1lVmlld10gZG9jdW1lbnRWaWV3XTsKICAgICAgICAgaWYgKFtkb2N1bWVu
dFZpZXcgaXNLaW5kT2ZDbGFzczpbV2ViSFRNTFZpZXcgY2xhc3NdXSkKQEAgLTEyMDAsNyArMTIw
MCw3IEBAIC0gKHVuc2lnbmVkKWZvcm1FbGVtZW50c0NoYXJhY3RlckNvdW50CiAtICh2b2lkKXNl
dFRpbWVvdXRzUGF1c2VkOihCT09MKWZsYWcKIHsKICAgICBpZiAoW3NlbGYgX3dlYkhUTUxEb2N1
bWVudFZpZXddKSB7Ci0gICAgICAgIGlmIChhdXRvKiBjb3JlRnJhbWUgPSBfcHJpdmF0ZS0+Y29y
ZUZyYW1lKQorICAgICAgICBpZiAoYXV0byBjb3JlRnJhbWUgPSBfcHJpdmF0ZS0+Y29yZUZyYW1l
KQogICAgICAgICAgICAgY29yZUZyYW1lLT5zZXRUaW1lcnNQYXVzZWQoZmxhZyk7CiAgICAgfQog
fQpAQCAtMTIyMCw3ICsxMjIwLDcgQEAgLSAodm9pZClzZXRQbHVnaW5zUGF1c2VkOihCT09MKWZs
YWcKIC0gKHZvaWQpcHJlcGFyZUZvclBhdXNlCiB7CiAgICAgaWYgKFtzZWxmIF93ZWJIVE1MRG9j
dW1lbnRWaWV3XSkgewotICAgICAgICBpZiAoYXV0byogY29yZUZyYW1lID0gX3ByaXZhdGUtPmNv
cmVGcmFtZSkKKyAgICAgICAgaWYgKGF1dG8gY29yZUZyYW1lID0gX3ByaXZhdGUtPmNvcmVGcmFt
ZSkKICAgICAgICAgICAgIGNvcmVGcmFtZS0+ZGlzcGF0Y2hQYWdlSGlkZUV2ZW50QmVmb3JlUGF1
c2UoKTsKICAgICB9CiB9CkBAIC0xMjI4LDcgKzEyMjgsNyBAQCAtICh2b2lkKXByZXBhcmVGb3JQ
YXVzZQogLSAodm9pZClyZXN1bWVGcm9tUGF1c2UKIHsKICAgICBpZiAoW3NlbGYgX3dlYkhUTUxE
b2N1bWVudFZpZXddKSB7Ci0gICAgICAgIGlmIChhdXRvKiBjb3JlRnJhbWUgPSBfcHJpdmF0ZS0+
Y29yZUZyYW1lKQorICAgICAgICBpZiAoYXV0byBjb3JlRnJhbWUgPSBfcHJpdmF0ZS0+Y29yZUZy
YW1lKQogICAgICAgICAgICAgY29yZUZyYW1lLT5kaXNwYXRjaFBhZ2VTaG93RXZlbnRCZWZvcmVS
ZXN1bWUoKTsKICAgICB9CiB9CkBAIC0xOTA3LDcgKzE5MDcsNyBAQCAtICh2b2lkKXJlc2V0VGV4
dEF1dG9zaXppbmdCZWZvcmVMYXlvdXQKICAgICBpZiAoIVtzZWxmIF93ZWJIVE1MRG9jdW1lbnRW
aWV3XSkKICAgICAgICAgcmV0dXJuOwogICAgIAotICAgIGF1dG8qIGNvcmVGcmFtZSA9IGNvcmUo
c2VsZik7CisgICAgYXV0byBjb3JlRnJhbWUgPSBjb3JlKHNlbGYpOwogICAgIGZvciAoYXV0byog
ZnJhbWUgPSBjb3JlRnJhbWU7IGZyYW1lOyBmcmFtZSA9IGZyYW1lLT50cmVlKCkudHJhdmVyc2VO
ZXh0KGNvcmVGcmFtZSkpIHsKICAgICAgICAgV2ViQ29yZTo6RG9jdW1lbnQqIGRvYyA9IGZyYW1l
LT5kb2N1bWVudCgpOwogICAgICAgICBpZiAoIWRvYyB8fCAhZG9jLT5yZW5kZXJWaWV3KCkpCkBA
IC0yMTE0LDcgKzIxMTQsNyBAQCAtIChOU1N0cmluZyAqKV9zdHJpbmdCeUV2YWx1YXRpbmdKYXZh
U2NyaXB0RnJvbVN0cmluZzooTlNTdHJpbmcgKilzdHJpbmcgd2l0aEdsbwogCiAtIChKU0dsb2Jh
bENvbnRleHRSZWYpX2dsb2JhbENvbnRleHRGb3JTY3JpcHRXb3JsZDooV2ViU2NyaXB0V29ybGQg
Kil3b3JsZAogewotICAgIGF1dG8qIGNvcmVGcmFtZSA9IF9wcml2YXRlLT5jb3JlRnJhbWU7Cisg
ICAgYXV0byBjb3JlRnJhbWUgPSBfcHJpdmF0ZS0+Y29yZUZyYW1lOwogICAgIGlmICghY29yZUZy
YW1lKQogICAgICAgICByZXR1cm4gMDsKICAgICBhdXRvKiBjb3JlV29ybGQgPSBjb3JlKHdvcmxk
KTsKQEAgLTIxODcsNyArMjE4Nyw3IEBAIC0gKHZvaWQpc2V0RW5oYW5jZWRBY2Nlc3NpYmlsaXR5
OihCT09MKWVuYWJsZQogCiAtIChOU1N0cmluZyopX2xheWVyVHJlZUFzVGV4dAogewotICAgIGF1
dG8qIGNvcmVGcmFtZSA9IF9wcml2YXRlLT5jb3JlRnJhbWU7CisgICAgYXV0byBjb3JlRnJhbWUg
PSBfcHJpdmF0ZS0+Y29yZUZyYW1lOwogICAgIGlmICghY29yZUZyYW1lKQogICAgICAgICByZXR1
cm4gQCIiOwogCkBAIC0yMjMwLDcgKzIyMzAsNyBAQCAtIChpZClhY2Nlc3NpYmlsaXR5Um9vdAog
CiAtICh2b2lkKV9jbGVhck9wZW5lcgogewotICAgIGF1dG8qIGNvcmVGcmFtZSA9IF9wcml2YXRl
LT5jb3JlRnJhbWU7CisgICAgYXV0byBjb3JlRnJhbWUgPSBfcHJpdmF0ZS0+Y29yZUZyYW1lOwog
ICAgIGlmIChjb3JlRnJhbWUpCiAgICAgICAgIGNvcmVGcmFtZS0+bG9hZGVyKCkuc2V0T3BlbmVy
KDApOwogfQpAQCAtMjMwNCw3ICsyMzA0LDcgQEAgLSAoRE9NRG9jdW1lbnRGcmFnbWVudCAqKV9k
b2N1bWVudEZyYWdtZW50Rm9ySW1hZ2VEYXRhOihOU0RhdGEgKilkYXRhIHdpdGhSZWxhdGkKIAog
LSAoQk9PTClmb2N1c2VkTm9kZUhhc0NvbnRlbnQKIHsKLSAgICBhdXRvKiBjb3JlRnJhbWUgPSBf
cHJpdmF0ZS0+Y29yZUZyYW1lOworICAgIGF1dG8gY29yZUZyYW1lID0gX3ByaXZhdGUtPmNvcmVG
cmFtZTsKICAgIAogICAgIFdlYkNvcmU6OkVsZW1lbnQqIHJvb3Q7CiAgICAgY29uc3QgYXV0byYg
c2VsZWN0aW9uID0gY29yZUZyYW1lLT5zZWxlY3Rpb24oKS5zZWxlY3Rpb24oKTsKQEAgLTIzMjYs
NyArMjMyNiw3IEBAIC0gKEJPT0wpZm9jdXNlZE5vZGVIYXNDb250ZW50CiAKIC0gKHZvaWQpX2Rp
c3BhdGNoRGlkUmVjZWl2ZVRpdGxlOihOU1N0cmluZyAqKXRpdGxlCiB7Ci0gICAgYXV0byogY29y
ZUZyYW1lID0gX3ByaXZhdGUtPmNvcmVGcmFtZTsKKyAgICBhdXRvIGNvcmVGcmFtZSA9IF9wcml2
YXRlLT5jb3JlRnJhbWU7CiAgICAgaWYgKCFjb3JlRnJhbWUpCiAgICAgICAgIHJldHVybjsKICAg
ICBjb3JlRnJhbWUtPmxvYWRlcigpLmNsaWVudCgpLmRpc3BhdGNoRGlkUmVjZWl2ZVRpdGxlKHsg
dGl0bGUsIFdlYkNvcmU6OlRleHREaXJlY3Rpb246OkxUUiB9KTsKQEAgLTIzMzYsNyArMjMzNiw3
IEBAIC0gKHZvaWQpX2Rpc3BhdGNoRGlkUmVjZWl2ZVRpdGxlOihOU1N0cmluZyAqKXRpdGxlCiAK
IC0gKEpTVmFsdWVSZWYpanNXcmFwcGVyRm9yTm9kZTooRE9NTm9kZSAqKW5vZGUgaW5TY3JpcHRX
b3JsZDooV2ViU2NyaXB0V29ybGQgKil3b3JsZAogewotICAgIGF1dG8qIGNvcmVGcmFtZSA9IF9w
cml2YXRlLT5jb3JlRnJhbWU7CisgICAgYXV0byBjb3JlRnJhbWUgPSBfcHJpdmF0ZS0+Y29yZUZy
YW1lOwogICAgIGlmICghY29yZUZyYW1lKQogICAgICAgICByZXR1cm4gMDsKIApAQCAtMjM1Miw3
ICsyMzUyLDcgQEAgLSAoSlNWYWx1ZVJlZilqc1dyYXBwZXJGb3JOb2RlOihET01Ob2RlICopbm9k
ZSBpblNjcmlwdFdvcmxkOihXZWJTY3JpcHRXb3JsZCAqKXcKIAogLSAoTlNEaWN0aW9uYXJ5ICop
ZWxlbWVudEF0UG9pbnQ6KE5TUG9pbnQpcG9pbnQKIHsKLSAgICBhdXRvKiBjb3JlRnJhbWUgPSBf
cHJpdmF0ZS0+Y29yZUZyYW1lOworICAgIGF1dG8gY29yZUZyYW1lID0gX3ByaXZhdGUtPmNvcmVG
cmFtZTsKICAgICBpZiAoIWNvcmVGcmFtZSkKICAgICAgICAgcmV0dXJuIG5pbDsKICAgICByZXR1
cm4gW1tbV2ViRWxlbWVudERpY3Rpb25hcnkgYWxsb2NdIGluaXRXaXRoSGl0VGVzdFJlc3VsdDpj
b3JlRnJhbWUtPmV2ZW50SGFuZGxlcigpLmhpdFRlc3RSZXN1bHRBdFBvaW50KFdlYkNvcmU6Oklu
dFBvaW50KHBvaW50KSwgV2ViQ29yZTo6SGl0VGVzdFJlcXVlc3Q6OlJlYWRPbmx5IHwgV2ViQ29y
ZTo6SGl0VGVzdFJlcXVlc3Q6OkFjdGl2ZSB8IFdlYkNvcmU6OkhpdFRlc3RSZXF1ZXN0OjpJZ25v
cmVDbGlwcGluZyB8IFdlYkNvcmU6OkhpdFRlc3RSZXF1ZXN0OjpEaXNhbGxvd1VzZXJBZ2VudFNo
YWRvd0NvbnRlbnQgfCBXZWJDb3JlOjpIaXRUZXN0UmVxdWVzdDo6QWxsb3dDaGlsZEZyYW1lQ29u
dGVudCldIGF1dG9yZWxlYXNlXTsKQEAgLTIzOTAsNyArMjM5MCw3IEBAIC0gKHZvaWQpZGVhbGxv
YwogCiAtIChOU1N0cmluZyAqKW5hbWUKIHsKLSAgICBhdXRvKiBjb3JlRnJhbWUgPSBfcHJpdmF0
ZS0+Y29yZUZyYW1lOworICAgIGF1dG8gY29yZUZyYW1lID0gX3ByaXZhdGUtPmNvcmVGcmFtZTsK
ICAgICBpZiAoIWNvcmVGcmFtZSkKICAgICAgICAgcmV0dXJuIG5pbDsKICAgICByZXR1cm4gY29y
ZUZyYW1lLT50cmVlKCkudW5pcXVlTmFtZSgpOwpAQCAtMjQyMSw3ICsyNDIxLDcgQEAgLSAoRE9N
RG9jdW1lbnQgKilET01Eb2N1bWVudAogICAgIGlmIChuZWVkc01pY3Jvc29mdE1lc3NlbmdlckRP
TURvY3VtZW50V29ya2Fyb3VuZCgpICYmICFwdGhyZWFkX21haW5fbnAoKSkKICAgICAgICAgcmV0
dXJuIG5pbDsKIAotICAgIGF1dG8qIGNvcmVGcmFtZSA9IF9wcml2YXRlLT5jb3JlRnJhbWU7Cisg
ICAgYXV0byBjb3JlRnJhbWUgPSBfcHJpdmF0ZS0+Y29yZUZyYW1lOwogICAgIGlmICghY29yZUZy
YW1lKQogICAgICAgICByZXR1cm4gbmlsOwogICAgIApAQCAtMjQ0NCw3ICsyNDQ0LDcgQEAgLSAo
RE9NRG9jdW1lbnQgKilET01Eb2N1bWVudAogCiAtIChET01IVE1MRWxlbWVudCAqKWZyYW1lRWxl
bWVudAogewotICAgIGF1dG8qIGNvcmVGcmFtZSA9IF9wcml2YXRlLT5jb3JlRnJhbWU7CisgICAg
YXV0byBjb3JlRnJhbWUgPSBfcHJpdmF0ZS0+Y29yZUZyYW1lOwogICAgIGlmICghY29yZUZyYW1l
KQogICAgICAgICByZXR1cm4gbmlsOwogICAgIHJldHVybiBraXQoY29yZUZyYW1lLT5vd25lckVs
ZW1lbnQoKSk7CkBAIC0yNDUyLDE5ICsyNDUyLDE5IEBAIC0gKERPTUhUTUxFbGVtZW50ICopZnJh
bWVFbGVtZW50CiAKIC0gKFdlYkRhdGFTb3VyY2UgKilwcm92aXNpb25hbERhdGFTb3VyY2UKIHsK
LSAgICBhdXRvKiBjb3JlRnJhbWUgPSBfcHJpdmF0ZS0+Y29yZUZyYW1lOworICAgIGF1dG8gY29y
ZUZyYW1lID0gX3ByaXZhdGUtPmNvcmVGcmFtZTsKICAgICByZXR1cm4gY29yZUZyYW1lID8gZGF0
YVNvdXJjZShjb3JlRnJhbWUtPmxvYWRlcigpLnByb3Zpc2lvbmFsRG9jdW1lbnRMb2FkZXIoKSkg
OiBuaWw7CiB9CiAKIC0gKFdlYkRhdGFTb3VyY2UgKilkYXRhU291cmNlCiB7Ci0gICAgYXV0byog
Y29yZUZyYW1lID0gX3ByaXZhdGUtPmNvcmVGcmFtZTsKKyAgICBhdXRvIGNvcmVGcmFtZSA9IF9w
cml2YXRlLT5jb3JlRnJhbWU7CiAgICAgcmV0dXJuIGNvcmVGcmFtZSAmJiBjb3JlRnJhbWUtPmxv
YWRlcigpLmZyYW1lSGFzTG9hZGVkKCkgPyBbc2VsZiBfZGF0YVNvdXJjZV0gOiBuaWw7CiB9CiAK
IC0gKHZvaWQpbG9hZFJlcXVlc3Q6KE5TVVJMUmVxdWVzdCAqKXJlcXVlc3QKIHsKLSAgICBhdXRv
KiBjb3JlRnJhbWUgPSBfcHJpdmF0ZS0+Y29yZUZyYW1lOworICAgIGF1dG8gY29yZUZyYW1lID0g
X3ByaXZhdGUtPmNvcmVGcmFtZTsKICAgICBpZiAoIWNvcmVGcmFtZSkKICAgICAgICAgcmV0dXJu
OwogCkBAIC0yNTc4LDcgKzI1NzgsNyBAQCAtICh2b2lkKXJlbG9hZEZyb21PcmlnaW4KIAogLSAo
V2ViRnJhbWUgKilmaW5kRnJhbWVOYW1lZDooTlNTdHJpbmcgKiluYW1lCiB7Ci0gICAgYXV0byog
Y29yZUZyYW1lID0gX3ByaXZhdGUtPmNvcmVGcmFtZTsKKyAgICBhdXRvIGNvcmVGcmFtZSA9IF9w
cml2YXRlLT5jb3JlRnJhbWU7CiAgICAgaWYgKCFjb3JlRnJhbWUpCiAgICAgICAgIHJldHVybiBu
aWw7CiAgICAgcmV0dXJuIGtpdChjb3JlRnJhbWUtPnRyZWUoKS5maW5kKG5hbWUsICpjb3JlRnJh
bWUpKTsKQEAgLTI1ODYsNyArMjU4Niw3IEBAIC0gKFdlYkZyYW1lICopZmluZEZyYW1lTmFtZWQ6
KE5TU3RyaW5nICopbmFtZQogCiAtIChXZWJGcmFtZSAqKXBhcmVudEZyYW1lCiB7Ci0gICAgYXV0
byogY29yZUZyYW1lID0gX3ByaXZhdGUtPmNvcmVGcmFtZTsKKyAgICBhdXRvIGNvcmVGcmFtZSA9
IF9wcml2YXRlLT5jb3JlRnJhbWU7CiAgICAgaWYgKCFjb3JlRnJhbWUpCiAgICAgICAgIHJldHVy
biBuaWw7CiAgICAgcmV0dXJuIFtba2l0KGNvcmVGcmFtZS0+dHJlZSgpLnBhcmVudCgpKSByZXRh
aW5dIGF1dG9yZWxlYXNlXTsKQEAgLTI1OTQsNyArMjU5NCw3IEBAIC0gKFdlYkZyYW1lICopcGFy
ZW50RnJhbWUKIAogLSAoTlNBcnJheSAqKWNoaWxkRnJhbWVzCiB7Ci0gICAgYXV0byogY29yZUZy
YW1lID0gX3ByaXZhdGUtPmNvcmVGcmFtZTsKKyAgICBhdXRvIGNvcmVGcmFtZSA9IF9wcml2YXRl
LT5jb3JlRnJhbWU7CiAgICAgaWYgKCFjb3JlRnJhbWUpCiAgICAgICAgIHJldHVybiBbTlNBcnJh
eSBhcnJheV07CiAgICAgTlNNdXRhYmxlQXJyYXkgKmNoaWxkcmVuID0gW05TTXV0YWJsZUFycmF5
IGFycmF5V2l0aENhcGFjaXR5OmNvcmVGcmFtZS0+dHJlZSgpLmNoaWxkQ291bnQoKV07CkBAIC0y
NjA1LDcgKzI2MDUsNyBAQCAtIChOU0FycmF5ICopY2hpbGRGcmFtZXMKIAogLSAoV2ViU2NyaXB0
T2JqZWN0ICopd2luZG93T2JqZWN0CiB7Ci0gICAgYXV0byogY29yZUZyYW1lID0gX3ByaXZhdGUt
PmNvcmVGcmFtZTsKKyAgICBhdXRvIGNvcmVGcmFtZSA9IF9wcml2YXRlLT5jb3JlRnJhbWU7CiAg
ICAgaWYgKCFjb3JlRnJhbWUpCiAgICAgICAgIHJldHVybiAwOwogICAgIHJldHVybiBjb3JlRnJh
bWUtPnNjcmlwdCgpLndpbmRvd1NjcmlwdE9iamVjdCgpOwpAQCAtMjYxMyw3ICsyNjEzLDcgQEAg
LSAoV2ViU2NyaXB0T2JqZWN0ICopd2luZG93T2JqZWN0CiAKIC0gKEpTR2xvYmFsQ29udGV4dFJl
ZilnbG9iYWxDb250ZXh0CiB7Ci0gICAgYXV0byogY29yZUZyYW1lID0gX3ByaXZhdGUtPmNvcmVG
cmFtZTsKKyAgICBhdXRvIGNvcmVGcmFtZSA9IF9wcml2YXRlLT5jb3JlRnJhbWU7CiAgICAgaWYg
KCFjb3JlRnJhbWUpCiAgICAgICAgIHJldHVybiAwOwogICAgIHJldHVybiB0b0dsb2JhbFJlZihj
b3JlRnJhbWUtPnNjcmlwdCgpLmdsb2JhbE9iamVjdChXZWJDb3JlOjptYWluVGhyZWFkTm9ybWFs
V29ybGQoKSkpOwpAQCAtMjYyMiw3ICsyNjIyLDcgQEAgLSAoSlNHbG9iYWxDb250ZXh0UmVmKWds
b2JhbENvbnRleHQKICNpZiBKU0NfT0JKQ19BUElfRU5BQkxFRAogLSAoSlNDb250ZXh0ICopamF2
YVNjcmlwdENvbnRleHQKIHsKLSAgICBhdXRvKiBjb3JlRnJhbWUgPSBfcHJpdmF0ZS0+Y29yZUZy
YW1lOworICAgIGF1dG8gY29yZUZyYW1lID0gX3ByaXZhdGUtPmNvcmVGcmFtZTsKICAgICBpZiAo
IWNvcmVGcmFtZSkKICAgICAgICAgcmV0dXJuIDA7CiAgICAgcmV0dXJuIGNvcmVGcmFtZS0+c2Ny
aXB0KCkuamF2YVNjcmlwdENvbnRleHQoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdh
Y3kvbWFjL1dlYlZpZXcvV2ViRnJhbWVJbnRlcm5hbC5oIGIvU291cmNlL1dlYktpdExlZ2FjeS9t
YWMvV2ViVmlldy9XZWJGcmFtZUludGVybmFsLmgKaW5kZXggOWY0NmFlY2RkZWI3MTdjMTg4ODM4
Y2FhYzA2MmE3OTMyNTYzNTFlMC4uOTM2YzM0ZjNkYThlYmQzZjJhMzM3MWY5NjIxMzg1M2YzOTYx
MmZjZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJGcmFt
ZUludGVybmFsLmgKKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJGcmFt
ZUludGVybmFsLmgKQEAgLTM1LDYgKzM1LDcgQEAKICNpbXBvcnQgPFdlYkNvcmUvRnJhbWVTZWxl
Y3Rpb24uaD4KICNpbXBvcnQgPFdlYkNvcmUvUG9zaXRpb24uaD4KICNpbXBvcnQgPFdlYkNvcmUv
U2V0dGluZ3MuaD4KKyNpbXBvcnQgPHd0Zi9OYWtlZFB0ci5oPgogCiBAY2xhc3MgRE9NQ1NTU3R5
bGVEZWNsYXJhdGlvbjsKIEBjbGFzcyBET01Eb2N1bWVudEZyYWdtZW50OwpAQCAtODUsNyArODYs
NyBAQCBXZWJWaWV3ICpnZXRXZWJWaWV3KFdlYkZyYW1lICp3ZWJGcmFtZSk7CiAKIEBpbnRlcmZh
Y2UgV2ViRnJhbWVQcml2YXRlIDogTlNPYmplY3QgewogQHB1YmxpYwotICAgIFdlYkNvcmU6OkZy
YW1lKiBjb3JlRnJhbWU7CisgICAgTmFrZWRQdHI8V2ViQ29yZTo6RnJhbWU+IGNvcmVGcmFtZTsK
ICAgICBXZWJGcmFtZVZpZXcgKndlYkZyYW1lVmlldzsKICAgICBzdGQ6OnVuaXF1ZV9wdHI8V2Vi
U2NyaXB0RGVidWdnZXI+IHNjcmlwdERlYnVnZ2VyOwogICAgIGlkIGludGVybmFsTG9hZERlbGVn
YXRlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJGcmFt
ZVZpZXcubW0gYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYkZyYW1lVmlldy5t
bQppbmRleCA4ZDFlODVmNDM2MDYxODI0MDI1MjQwNGUxNzQ5N2MwNzljMWIzMjdlLi43MzY1ZDI1
NmVlZDY5YWYwYzE2NDVkMjY0ZTkwM2QyYjYxNzk0OGMxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYkZyYW1lVmlldy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0
TGVnYWN5L21hYy9XZWJWaWV3L1dlYkZyYW1lVmlldy5tbQpAQCAtMTMzLDcgKzEzMyw3IEBAIC0g
KGZsb2F0KV92ZXJ0aWNhbEtleWJvYXJkU2Nyb2xsRGlzdGFuY2UKICAgICByZXR1cm4gW1tzZWxm
IF9zY3JvbGxWaWV3XSB2ZXJ0aWNhbExpbmVTY3JvbGxdOwogfQogCi0tIChXZWJDb3JlOjpGcmFt
ZSopX3dlYl9mcmFtZQorLSAoTmFrZWRQdHI8V2ViQ29yZTo6RnJhbWU+KV93ZWJfZnJhbWUKIHsK
ICAgICByZXR1cm4gY29yZShfcHJpdmF0ZS0+d2ViRnJhbWUpOwogfQpAQCAtMzMxLDcgKzMzMSw3
IEBAIC0gKHZvaWQpX2ZyYW1lU2l6ZUNoYW5nZWQKICAgICAvLyBTZWUgV2ViRnJhbWVMb2FkZXJD
bGllbnQ6OnByb3Zpc2lvbmFsTG9hZFN0YXJ0ZWQuCiAgICAgaWYgKFtbW3NlbGYgd2ViRnJhbWVd
IHdlYlZpZXddIGRyYXdzQmFja2dyb3VuZF0pCiAgICAgICAgIFtbc2VsZiBfc2Nyb2xsVmlld10g
c2V0RHJhd3NCYWNrZ3JvdW5kOllFU107Ci0gICAgaWYgKGF1dG8qIGNvcmVGcmFtZSA9IFtzZWxm
IF93ZWJfZnJhbWVdKSB7CisgICAgaWYgKGF1dG8gY29yZUZyYW1lID0gW3NlbGYgX3dlYl9mcmFt
ZV0pIHsKICAgICAgICAgaWYgKGF1dG8qIGNvcmVGcmFtZVZpZXcgPSBjb3JlRnJhbWUtPnZpZXco
KSkKICAgICAgICAgICAgIGNvcmVGcmFtZVZpZXctPmF2YWlsYWJsZUNvbnRlbnRTaXplQ2hhbmdl
ZChXZWJDb3JlOjpTY3JvbGxhYmxlQXJlYTo6QXZhaWxhYmxlU2l6ZUNoYW5nZVJlYXNvbjo6QXJl
YVNpemVDaGFuZ2VkKTsKICAgICB9CkBAIC02MTMsNyArNjEzLDcgQEAgLSAoQk9PTClfc2Nyb2xs
T3ZlcmZsb3dJbkRpcmVjdGlvbjooV2ViQ29yZTo6U2Nyb2xsRGlyZWN0aW9uKWRpcmVjdGlvbiBn
cmFudWxhcmkKIAogLSAoQk9PTClfaXNWZXJ0aWNhbERvY3VtZW50CiB7Ci0gICAgYXV0byogY29y
ZUZyYW1lID0gW3NlbGYgX3dlYl9mcmFtZV07CisgICAgYXV0byBjb3JlRnJhbWUgPSBbc2VsZiBf
d2ViX2ZyYW1lXTsKICAgICBpZiAoIWNvcmVGcmFtZSkKICAgICAgICAgcmV0dXJuIFlFUzsKICAg
ICBhdXRvKiBkb2N1bWVudCA9IGNvcmVGcmFtZS0+ZG9jdW1lbnQoKTsKQEAgLTYyNyw3ICs2Mjcs
NyBAQCAtIChCT09MKV9pc1ZlcnRpY2FsRG9jdW1lbnQKIAogLSAoQk9PTClfaXNGbGlwcGVkRG9j
dW1lbnQKIHsKLSAgICBhdXRvKiBjb3JlRnJhbWUgPSBbc2VsZiBfd2ViX2ZyYW1lXTsKKyAgICBh
dXRvIGNvcmVGcmFtZSA9IFtzZWxmIF93ZWJfZnJhbWVdOwogICAgIGlmICghY29yZUZyYW1lKQog
ICAgICAgICByZXR1cm4gTk87CiAgICAgYXV0byogZG9jdW1lbnQgPSBjb3JlRnJhbWUtPmRvY3Vt
ZW50KCk7CkBAIC04OTUsNyArODk1LDcgQEAgLSAodm9pZClrZXlEb3duOihXZWJFdmVudCAqKWV2
ZW50CiAjZW5kaWYKICAgICBpbnQgaW5kZXgsIGNvdW50OwogICAgIEJPT0wgY2FsbFN1cGVyID0g
WUVTOwotICAgIGF1dG8qIGNvcmVGcmFtZSA9IFtzZWxmIF93ZWJfZnJhbWVdOworICAgIGF1dG8g
Y29yZUZyYW1lID0gW3NlbGYgX3dlYl9mcmFtZV07CiAgICAgQk9PTCBtYWludGFpbnNCYWNrRm9y
d2FyZExpc3QgPSBjb3JlRnJhbWUgJiYgc3RhdGljX2Nhc3Q8QmFja0ZvcndhcmRMaXN0Jj4oY29y
ZUZyYW1lLT5wYWdlKCktPmJhY2tGb3J3YXJkKCkuY2xpZW50KCkpLmVuYWJsZWQoKSA/IFlFUyA6
IE5POwogCiAgICAgY291bnQgPSBbY2hhcmFjdGVycyBsZW5ndGhdOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJGdWxsU2NyZWVuQ29udHJvbGxlci5tbSBi
L1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViRnVsbFNjcmVlbkNvbnRyb2xsZXIu
bW0KaW5kZXggMzZmN2Y4MmU3N2YxMDEzYmM4MzU2ODcyY2M3NDdlMjNiNmU1ZmJhNy4uMTdiNDIy
ZDNhYzgwMzdlZTUxOWVlOGQ4Nzg5NDQ5ODFjNmQ3ZDlhMiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJGdWxsU2NyZWVuQ29udHJvbGxlci5tbQorKysgYi9T
b3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYkZ1bGxTY3JlZW5Db250cm9sbGVyLm1t
CkBAIC02Myw3ICs2Myw3IEBAIHN0YXRpYyBXZWJDb3JlOjpJbnRSZWN0IHNjcmVlblJlY3RPZkNv
bnRlbnRzKFdlYkNvcmU6OkVsZW1lbnQqIGVsZW1lbnQpCiBAaW50ZXJmYWNlIFdlYkZ1bGxTY3Jl
ZW5Db250cm9sbGVyKFByaXZhdGUpPE5TQW5pbWF0aW9uRGVsZWdhdGU+CiAtICh2b2lkKV91cGRh
dGVNZW51QW5kRG9ja0ZvckZ1bGxTY3JlZW47CiAtICh2b2lkKV9zd2FwVmlldzooTlNWaWV3Kil2
aWV3IHdpdGg6KE5TVmlldyopb3RoZXJWaWV3OwotLSAoV2ViQ29yZTo6RG9jdW1lbnQqKV9kb2N1
bWVudDsKKy0gKE5ha2VkUHRyPFdlYkNvcmU6OkRvY3VtZW50PilfZG9jdW1lbnQ7CiAtIChXZWJD
b3JlOjpGdWxsc2NyZWVuTWFuYWdlciopX21hbmFnZXI7CiAtICh2b2lkKV9zdGFydEVudGVyRnVs
bFNjcmVlbkFuaW1hdGlvbldpdGhEdXJhdGlvbjooTlNUaW1lSW50ZXJ2YWwpZHVyYXRpb247CiAt
ICh2b2lkKV9zdGFydEV4aXRGdWxsU2NyZWVuQW5pbWF0aW9uV2l0aER1cmF0aW9uOihOU1RpbWVJ
bnRlcnZhbClkdXJhdGlvbjsKQEAgLTQ1MCw3ICs0NTAsNyBAQCAtICh2b2lkKV91cGRhdGVNZW51
QW5kRG9ja0ZvckZ1bGxTY3JlZW4KICNwcmFnbWEgbWFyayAtCiAjcHJhZ21hIG1hcmsgVXRpbGl0
eSBGdW5jdGlvbnMKIAotLSAoV2ViQ29yZTo6RG9jdW1lbnQqKV9kb2N1bWVudAorLSAoTmFrZWRQ
dHI8V2ViQ29yZTo6RG9jdW1lbnQ+KV9kb2N1bWVudAogewogICAgIHJldHVybiAmX2VsZW1lbnQt
PmRvY3VtZW50KCk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJW
aWV3L1dlYkhUTUxWaWV3Lm1tIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJI
VE1MVmlldy5tbQppbmRleCAwZmY5ZTMxNWIwNjNjMWZmZjI3Mzk0NjAxOGI2MGY1YTAyYjcyODc1
Li5iMmExZDA4NTkzOGVmM2U3ZDIyNTlmZWYxNjZkZGJjZjUzODk3ZjhkIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYkhUTUxWaWV3Lm1tCisrKyBiL1NvdXJj
ZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViSFRNTFZpZXcubW0KQEAgLTE0Myw2ICsxNDMs
NyBAQAogI2ltcG9ydCA8d3RmL0Jsb2NrT2JqQ0V4Y2VwdGlvbnMuaD4KICNpbXBvcnQgPHd0Zi9N
YWluVGhyZWFkLmg+CiAjaW1wb3J0IDx3dGYvTWF0aEV4dHJhcy5oPgorI2ltcG9ydCA8d3RmL05h
a2VkUHRyLmg+CiAjaW1wb3J0IDx3dGYvT2JqQ1J1bnRpbWVFeHRyYXMuaD4KICNpbXBvcnQgPHd0
Zi9SdW5Mb29wLmg+CiAjaW1wb3J0IDx3dGYvU3lzdGVtVHJhY2luZy5oPgpAQCAtMjM2LDExICsy
MzcsMTEgQEAgdXNpbmcgV2ViRXZlbnQgPSBOU0V2ZW50OwogY29uc3QgYXV0byBXZWJFdmVudE1v
dXNlRG93biA9IE5TRXZlbnRUeXBlTGVmdE1vdXNlRG93bjsKIAogQGludGVyZmFjZSBXZWJNZW51
VGFyZ2V0IDogTlNPYmplY3QgewotICAgIFdlYkNvcmU6OkNvbnRleHRNZW51Q29udHJvbGxlciog
X21lbnVDb250cm9sbGVyOworICAgIE5ha2VkUHRyPFdlYkNvcmU6OkNvbnRleHRNZW51Q29udHJv
bGxlcj4gX21lbnVDb250cm9sbGVyOwogfQogKyAoV2ViTWVudVRhcmdldCopc2hhcmVkTWVudVRh
cmdldDsKLS0gKFdlYkNvcmU6OkNvbnRleHRNZW51Q29udHJvbGxlciopbWVudUNvbnRyb2xsZXI7
Ci0tICh2b2lkKXNldE1lbnVDb250cm9sbGVyOihXZWJDb3JlOjpDb250ZXh0TWVudUNvbnRyb2xs
ZXIqKW1lbnVDb250cm9sbGVyOworLSAoTmFrZWRQdHI8V2ViQ29yZTo6Q29udGV4dE1lbnVDb250
cm9sbGVyPiltZW51Q29udHJvbGxlcjsKKy0gKHZvaWQpc2V0TWVudUNvbnRyb2xsZXI6KE5ha2Vk
UHRyPFdlYkNvcmU6OkNvbnRleHRNZW51Q29udHJvbGxlcj4pbWVudUNvbnRyb2xsZXI7CiAtICh2
b2lkKWZvcndhcmRDb250ZXh0TWVudUFjdGlvbjooaWQpc2VuZGVyOwogQGVuZAogCkBAIC02MjIs
MTIgKzYyMywxMiBAQCArIChXZWJNZW51VGFyZ2V0ICopc2hhcmVkTWVudVRhcmdldAogICAgIHJl
dHVybiB0YXJnZXQ7CiB9CiAKLS0gKFdlYkNvcmU6OkNvbnRleHRNZW51Q29udHJvbGxlciopbWVu
dUNvbnRyb2xsZXIKKy0gKE5ha2VkUHRyPFdlYkNvcmU6OkNvbnRleHRNZW51Q29udHJvbGxlcj4p
bWVudUNvbnRyb2xsZXIKIHsKICAgICByZXR1cm4gX21lbnVDb250cm9sbGVyOwogfQogCi0tICh2
b2lkKXNldE1lbnVDb250cm9sbGVyOihXZWJDb3JlOjpDb250ZXh0TWVudUNvbnRyb2xsZXIqKW1l
bnVDb250cm9sbGVyCistICh2b2lkKXNldE1lbnVDb250cm9sbGVyOihOYWtlZFB0cjxXZWJDb3Jl
OjpDb250ZXh0TWVudUNvbnRyb2xsZXI+KW1lbnVDb250cm9sbGVyCiB7CiAgICAgX21lbnVDb250
cm9sbGVyID0gbWVudUNvbnRyb2xsZXI7CiB9CkBAIC05ODcsNyArOTg4LDcgQEAgQHB1YmxpYwog
ICAgIFJldGFpblB0cjxXZWJEYXRhU291cmNlPiBkYXRhU291cmNlOwogCiAjaWYgUExBVEZPUk0o
TUFDKQotICAgIFdlYkNvcmU6OkNhY2hlZEltYWdlKiBwcm9taXNlZERyYWdUSUZGRGF0YVNvdXJj
ZTsKKyAgICBOYWtlZFB0cjxXZWJDb3JlOjpDYWNoZWRJbWFnZT4gcHJvbWlzZWREcmFnVElGRkRh
dGFTb3VyY2U7CiAjZW5kaWYKIAogICAgIFNFTCBzZWxlY3RvckZvckRvQ29tbWFuZEJ5U2VsZWN0
b3I7CkBAIC00MzU4LDcgKzQzNTksNyBAQCBBTExPV19ERVBSRUNBVEVEX0lNUExFTUVOVEFUSU9O
U19FTkQKICAgICBOU0ZpbGVXcmFwcGVyICp3cmFwcGVyID0gbmlsOwogICAgIE5TVVJMICpkcmFn
Z2luZ0VsZW1lbnRVUkwgPSBuaWw7CiAgICAgCi0gICAgaWYgKGF1dG8qIHRpZmZSZXNvdXJjZSA9
IF9wcml2YXRlLT5wcm9taXNlZERyYWdUSUZGRGF0YVNvdXJjZSkgeworICAgIGlmIChhdXRvIHRp
ZmZSZXNvdXJjZSA9IF9wcml2YXRlLT5wcm9taXNlZERyYWdUSUZGRGF0YVNvdXJjZSkgewogICAg
ICAgICBpZiAoYXV0byogYnVmZmVyID0gdGlmZlJlc291cmNlLT5yZXNvdXJjZUJ1ZmZlcigpKSB7
CiAgICAgICAgICAgICBOU1VSTFJlc3BvbnNlICpyZXNwb25zZSA9IHRpZmZSZXNvdXJjZS0+cmVz
cG9uc2UoKS5uc1VSTFJlc3BvbnNlKCk7CiAgICAgICAgICAgICBkcmFnZ2luZ0VsZW1lbnRVUkwg
PSBbcmVzcG9uc2UgVVJMXTsKQEAgLTU5ODMsNyArNTk4NCw3IEBAIC0gKHZvaWQpX2V4ZWN1dGVT
YXZlZEtleXByZXNzQ29tbWFuZHMKIAogI2lmIFBMQVRGT1JNKE1BQykKIAotLSAoQk9PTClfaW50
ZXJwcmV0S2V5RXZlbnQ6KFdlYkNvcmU6OktleWJvYXJkRXZlbnQqKWV2ZW50IHNhdmluZ0NvbW1h
bmRzOihCT09MKXNhdmluZ0NvbW1hbmRzCistIChCT09MKV9pbnRlcnByZXRLZXlFdmVudDooTmFr
ZWRQdHI8V2ViQ29yZTo6S2V5Ym9hcmRFdmVudD4pZXZlbnQgc2F2aW5nQ29tbWFuZHM6KEJPT0wp
c2F2aW5nQ29tbWFuZHMKIHsKICAgICBBU1NFUlQoY29yZShbc2VsZiBfZnJhbWVdKSA9PSBkb3du
Y2FzdDxXZWJDb3JlOjpOb2RlPihldmVudC0+dGFyZ2V0KCkpLT5kb2N1bWVudCgpLmZyYW1lKCkp
OwogICAgIEFTU0VSVCghc2F2aW5nQ29tbWFuZHMgfHwgZXZlbnQtPmtleXByZXNzQ29tbWFuZHMo
KS5pc0VtcHR5KCkpOyAvLyBTYXZlIGNvbW1hbmRzIG9uY2UgZm9yIGVhY2ggZXZlbnQuCkBAIC02
MTEyLDcgKzYxMTMsNyBAQCAtIChCT09MKV9oYW5kbGVFZGl0aW5nS2V5RXZlbnQ6KFdlYkNvcmU6
OktleWJvYXJkRXZlbnQgKil3Y0V2ZW50CiAKICNpZiBQTEFURk9STShNQUMpCiAKLS0gKHZvaWQp
c2V0UHJvbWlzZWREcmFnVElGRkRhdGFTb3VyY2U6KFdlYkNvcmU6OkNhY2hlZEltYWdlKilzb3Vy
Y2UKKy0gKHZvaWQpc2V0UHJvbWlzZWREcmFnVElGRkRhdGFTb3VyY2U6KE5ha2VkUHRyPFdlYkNv
cmU6OkNhY2hlZEltYWdlPilzb3VyY2UKIHsKICAgICBpZiAoc291cmNlKQogICAgICAgICBzb3Vy
Y2UtPmFkZENsaWVudChwcm9taXNlZERhdGFDbGllbnQoKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYkhUTUxWaWV3SW50ZXJuYWwuaCBiL1NvdXJjZS9X
ZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViSFRNTFZpZXdJbnRlcm5hbC5oCmluZGV4IDkxNmQz
MzY5ZmJlYmZjZjhmZWU2MDlmYWQ4YzJiNTFhMTA1YWJiZWEuLjZmNWU1N2QzZmNlNzM0YzU2ZjYy
Y2IzZTcyM2NmOTQ1ZTUxM2JjMGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFj
L1dlYlZpZXcvV2ViSFRNTFZpZXdJbnRlcm5hbC5oCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kv
bWFjL1dlYlZpZXcvV2ViSFRNTFZpZXdJbnRlcm5hbC5oCkBAIC02MSwxMyArNjEsMTMgQEAgbmFt
ZXNwYWNlIFdlYkNvcmUgewogCiAjaWYgUExBVEZPUk0oTUFDKQogLSAodm9pZClfbG9va1VwSW5E
aWN0aW9uYXJ5RnJvbU1lbnU6KGlkKXNlbmRlcjsKLS0gKEJPT0wpX2ludGVycHJldEtleUV2ZW50
OihXZWJDb3JlOjpLZXlib2FyZEV2ZW50ICopZXZlbnQgc2F2aW5nQ29tbWFuZHM6KEJPT0wpc2F2
aW5nQ29tbWFuZHM7CistIChCT09MKV9pbnRlcnByZXRLZXlFdmVudDooTmFrZWRQdHI8V2ViQ29y
ZTo6S2V5Ym9hcmRFdmVudD4pZXZlbnQgc2F2aW5nQ29tbWFuZHM6KEJPT0wpc2F2aW5nQ29tbWFu
ZHM7CiAtIChET01Eb2N1bWVudEZyYWdtZW50ICopX2RvY3VtZW50RnJhZ21lbnRGcm9tUGFzdGVi
b2FyZDooTlNQYXN0ZWJvYXJkICopcGFzdGVib2FyZDsKIC0gKE5TRXZlbnQgKilfbW91c2VEb3du
RXZlbnQ7CiAtIChCT09MKWlzR3JhbW1hckNoZWNraW5nRW5hYmxlZDsKIC0gKHZvaWQpc2V0R3Jh
bW1hckNoZWNraW5nRW5hYmxlZDooQk9PTClmbGFnOwogLSAodm9pZCl0b2dnbGVHcmFtbWFyQ2hl
Y2tpbmc6KGlkKXNlbmRlcjsKLS0gKHZvaWQpc2V0UHJvbWlzZWREcmFnVElGRkRhdGFTb3VyY2U6
KFdlYkNvcmU6OkNhY2hlZEltYWdlKilzb3VyY2U7CistICh2b2lkKXNldFByb21pc2VkRHJhZ1RJ
RkZEYXRhU291cmNlOihOYWtlZFB0cjxXZWJDb3JlOjpDYWNoZWRJbWFnZT4pc291cmNlOwogI2Vu
ZGlmCiAKICNpZiBQTEFURk9STShJT1NfRkFNSUxZKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dExlZ2FjeS9tYWMvV2ViVmlldy9XZWJOb3RpZmljYXRpb24ubW0gYi9Tb3VyY2UvV2ViS2l0TGVn
YWN5L21hYy9XZWJWaWV3L1dlYk5vdGlmaWNhdGlvbi5tbQppbmRleCAxMTU3NTYwM2NlNzlhNWU4
YTg0YjYzYTQ4ZDI4YmQ1YWE3Mjk0NzNjLi4xNmU4OWM0YmMzYTc3YjU2ODYwNjk3NGNhNDA2OTZk
YzJjYjQ3ZjBjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dl
Yk5vdGlmaWNhdGlvbi5tbQorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dl
Yk5vdGlmaWNhdGlvbi5tbQpAQCAtNjIsNyArNjIsNyBAQCBOb3RpZmljYXRpb24qIGNvcmUoV2Vi
Tm90aWZpY2F0aW9uICpub3RpZmljYXRpb24pCiAgICAgcmV0dXJuIG5vdGlmaWNhdGlvbi0+X3By
aXZhdGUtPl9pbnRlcm5hbC5nZXQoKTsKIH0KIAotLSAoaWQpaW5pdFdpdGhDb3JlTm90aWZpY2F0
aW9uOihOb3RpZmljYXRpb24qKWNvcmVOb3RpZmljYXRpb24gbm90aWZpY2F0aW9uSUQ6KHVpbnQ2
NF90KW5vdGlmaWNhdGlvbklECistIChpZClpbml0V2l0aENvcmVOb3RpZmljYXRpb246KE5ha2Vk
UHRyPE5vdGlmaWNhdGlvbj4pY29yZU5vdGlmaWNhdGlvbiBub3RpZmljYXRpb25JRDoodWludDY0
X3Qpbm90aWZpY2F0aW9uSUQKIHsKICAgICBpZiAoIShzZWxmID0gW3N1cGVyIGluaXRdKSkKICAg
ICAgICAgcmV0dXJuIG5pbDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dl
YlZpZXcvV2ViTm90aWZpY2F0aW9uSW50ZXJuYWwuaCBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFj
L1dlYlZpZXcvV2ViTm90aWZpY2F0aW9uSW50ZXJuYWwuaAppbmRleCBhNzc5YzA3NTM1YmI0YzU5
MWRmNzE5ODE0ODI2YzZiNzhkMjg4MjQ1Li40YTE3YzdkYTBmN2Q3YjQ3NmNlMGIyYzM1ZDE3ZWQ1
NDdkMWFlMzE4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dl
Yk5vdGlmaWNhdGlvbkludGVybmFsLmgKKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2Vi
Vmlldy9XZWJOb3RpZmljYXRpb25JbnRlcm5hbC5oCkBAIC0yNyw2ICsyNyw3IEBACiAgKi8KIAog
I2ltcG9ydCAiV2ViTm90aWZpY2F0aW9uLmgiCisjaW1wb3J0IDx3dGYvTmFrZWRQdHIuaD4KIAog
I2lmIEVOQUJMRShOT1RJRklDQVRJT05TKQogCkBAIC0zNyw3ICszOCw3IEBAIGNsYXNzIE5vdGlm
aWNhdGlvbjsKIFdlYkNvcmU6Ok5vdGlmaWNhdGlvbiogY29yZShXZWJOb3RpZmljYXRpb24gKik7
CiAKIEBpbnRlcmZhY2UgV2ViTm90aWZpY2F0aW9uIChXZWJOb3RpZmljYXRpb25JbnRlcm5hbCkK
LS0gKGlkKWluaXRXaXRoQ29yZU5vdGlmaWNhdGlvbjooV2ViQ29yZTo6Tm90aWZpY2F0aW9uKilj
b3JlTm90aWZpY2F0aW9uIG5vdGlmaWNhdGlvbklEOih1aW50NjRfdClub3RpZmljYXRpb25JRDsK
Ky0gKGlkKWluaXRXaXRoQ29yZU5vdGlmaWNhdGlvbjooTmFrZWRQdHI8V2ViQ29yZTo6Tm90aWZp
Y2F0aW9uPiljb3JlTm90aWZpY2F0aW9uIG5vdGlmaWNhdGlvbklEOih1aW50NjRfdClub3RpZmlj
YXRpb25JRDsKIEBlbmQKIAogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5
L21hYy9XZWJWaWV3L1dlYlJlc291cmNlLm1tIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2Vi
Vmlldy9XZWJSZXNvdXJjZS5tbQppbmRleCA4MjZhNDM4NjY0ODc3NmFiYmYzYmRhODBhYTkxNDIx
YmU4NDlkYmVhLi43NzdjYTBlNzFhZjYxZGVjODMwYTViMjYxOTdlOGVmNjdkN2Q5ZWYzIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYlJlc291cmNlLm1tCisr
KyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViUmVzb3VyY2UubW0KQEAgLTI2
MSw3ICsyNjEsNyBAQCAtIChpZClfaW5pdFdpdGhDb3JlUmVzb3VyY2U6KFJlZjxBcmNoaXZlUmVz
b3VyY2U+JiYpY29yZVJlc291cmNlCiAgICAgcmV0dXJuIHNlbGY7CiB9CiAKLS0gKFdlYkNvcmU6
OkFyY2hpdmVSZXNvdXJjZSYpX2NvcmVSZXNvdXJjZQorLSAoTmFrZWRSZWY8V2ViQ29yZTo6QXJj
aGl2ZVJlc291cmNlPilfY29yZVJlc291cmNlCiB7CiAgICAgcmV0dXJuICpfcHJpdmF0ZS0+Y29y
ZVJlc291cmNlOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmll
dy9XZWJSZXNvdXJjZUludGVybmFsLmggYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3
L1dlYlJlc291cmNlSW50ZXJuYWwuaAppbmRleCA4MGM5NzZlYjZiMzY1NGZjMWM2ODhjMmE5NmI4
M2JkYjdhZjc3MjUxLi5lYWNiMWE1MjllNTBiMjdjN2VmZDE3NDQxYmMwNjkxNTZmOWI1ZDVjIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYlJlc291cmNlSW50
ZXJuYWwuaAorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYlJlc291cmNl
SW50ZXJuYWwuaApAQCAtMjcsNiArMjcsNyBAQAogICovCiAKICNpbXBvcnQgIldlYlJlc291cmNl
UHJpdmF0ZS5oIgorI2ltcG9ydCA8d3RmL05ha2VkUmVmLmg+CiAjaW1wb3J0IDx3dGYvUmVmLmg+
CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKQEAgLTM1LDUgKzM2LDUgQEAgbmFtZXNwYWNlIFdlYkNv
cmUgewogCiBAaW50ZXJmYWNlIFdlYlJlc291cmNlIChXZWJSZXNvdXJjZUludGVybmFsKQogLSAo
aWQpX2luaXRXaXRoQ29yZVJlc291cmNlOihSZWY8V2ViQ29yZTo6QXJjaGl2ZVJlc291cmNlPiYm
KWNvcmVSZXNvdXJjZTsKLS0gKFdlYkNvcmU6OkFyY2hpdmVSZXNvdXJjZSYpX2NvcmVSZXNvdXJj
ZTsKKy0gKE5ha2VkUmVmPFdlYkNvcmU6OkFyY2hpdmVSZXNvdXJjZT4pX2NvcmVSZXNvdXJjZTsK
IEBlbmQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViVmlk
ZW9GdWxsc2NyZWVuQ29udHJvbGxlci5oIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmll
dy9XZWJWaWRlb0Z1bGxzY3JlZW5Db250cm9sbGVyLmgKaW5kZXggZjU3NTc4YmZjMDAyNjRlNGY0
MWI1ZWU5ZjY4OGEyNmMyOGFkNDRhMi4uZThmYjU2Mjk1MDk1YmYzN2E0ZDI4ODA3NTA0NmYzNWJk
ZDJlMDg1YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJW
aWRlb0Z1bGxzY3JlZW5Db250cm9sbGVyLmgKKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMv
V2ViVmlldy9XZWJWaWRlb0Z1bGxzY3JlZW5Db250cm9sbGVyLmgKQEAgLTI2LDYgKzI2LDcgQEAK
ICNpZiBQTEFURk9STShNQUMpICYmIEVOQUJMRShWSURFTykKIAogI2ltcG9ydCA8QXBwS2l0L05T
V2luZG93Q29udHJvbGxlci5oPgorI2ltcG9ydCA8d3RmL05ha2VkUHRyLmg+CiAjaW1wb3J0IDx3
dGYvUmVmUHRyLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKQEAgLTQ3LDggKzQ4LDggQEAgY2xh
c3MgSFRNTFZpZGVvRWxlbWVudDsKICAgICBCT09MIF9mb3JjZURpc2FibGVBbmltYXRpb247CiB9
CiAKLS0gKHZvaWQpc2V0VmlkZW9FbGVtZW50OihXZWJDb3JlOjpIVE1MVmlkZW9FbGVtZW50ICop
dmlkZW9FbGVtZW50OwotLSAoV2ViQ29yZTo6SFRNTFZpZGVvRWxlbWVudCAqKXZpZGVvRWxlbWVu
dDsKKy0gKHZvaWQpc2V0VmlkZW9FbGVtZW50OihOYWtlZFB0cjxXZWJDb3JlOjpIVE1MVmlkZW9F
bGVtZW50Pil2aWRlb0VsZW1lbnQ7CistIChOYWtlZFB0cjxXZWJDb3JlOjpIVE1MVmlkZW9FbGVt
ZW50Pil2aWRlb0VsZW1lbnQ7CiAKIC0gKHZvaWQpZW50ZXJGdWxsc2NyZWVuOihOU1NjcmVlbiAq
KXNjcmVlbjsKIC0gKHZvaWQpZXhpdEZ1bGxzY3JlZW47CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYlZpZGVvRnVsbHNjcmVlbkNvbnRyb2xsZXIubW0gYi9T
b3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYlZpZGVvRnVsbHNjcmVlbkNvbnRyb2xs
ZXIubW0KaW5kZXggMjNhYWMzNDQyNmJhMDNhYjkzYjRlOTYzZjFlODJmODUxNDA0YTFjYi4uNzZi
YjQ3NmFiMDQ0MDFkODM4NGUwYTdjN2YyYzEwZTZmMGNkYjZmYiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJWaWRlb0Z1bGxzY3JlZW5Db250cm9sbGVyLm1t
CisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViVmlkZW9GdWxsc2NyZWVu
Q29udHJvbGxlci5tbQpAQCAtOTMsMTQgKzkzLDE0IEBAIC0gKHZvaWQpd2luZG93RGlkTG9hZAog
ICAgIFtbTlNOb3RpZmljYXRpb25DZW50ZXIgZGVmYXVsdENlbnRlcl0gYWRkT2JzZXJ2ZXI6c2Vs
ZiBzZWxlY3RvcjpAc2VsZWN0b3IoYXBwbGljYXRpb25EaWRDaGFuZ2VTY3JlZW5QYXJhbWV0ZXJz
OikgbmFtZTpOU0FwcGxpY2F0aW9uRGlkQ2hhbmdlU2NyZWVuUGFyYW1ldGVyc05vdGlmaWNhdGlv
biBvYmplY3Q6TlNBcHBdOwogfQogCi0tIChXZWJDb3JlOjpIVE1MVmlkZW9FbGVtZW50ICopdmlk
ZW9FbGVtZW50CistIChOYWtlZFB0cjxXZWJDb3JlOjpIVE1MVmlkZW9FbGVtZW50Pil2aWRlb0Vs
ZW1lbnQKIHsKICAgICByZXR1cm4gX3ZpZGVvRWxlbWVudC5nZXQoKTsKIH0KIAogLy8gRklYTUU6
IFRoaXMgbWV0aG9kIGlzIG5vdCByZWFsbHkgYSBzZXR0ZXIuIFRoZSBjYWxsZXIgcmVsaWVzIG9u
IGl0cyBzaWRlIGVmZmVjdHMsIGFuZCBpdCdzCiAvLyBjYWxsZWQgb25jZSBlYWNoIHRpbWUgd2Ug
ZW50ZXIgZnVsbCBzY3JlZW4uIFNvIGl0IHNob3VsZCBoYXZlIGEgZGlmZmVyZW50IG5hbWUuCi0t
ICh2b2lkKXNldFZpZGVvRWxlbWVudDooV2ViQ29yZTo6SFRNTFZpZGVvRWxlbWVudCAqKXZpZGVv
RWxlbWVudAorLSAodm9pZClzZXRWaWRlb0VsZW1lbnQ6KE5ha2VkUHRyPFdlYkNvcmU6OkhUTUxW
aWRlb0VsZW1lbnQ+KXZpZGVvRWxlbWVudAogewogICAgIEFTU0VSVCh2aWRlb0VsZW1lbnQpOwog
ICAgIF92aWRlb0VsZW1lbnQgPSB2aWRlb0VsZW1lbnQ7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYlZpZGVvRnVsbHNjcmVlbkhVRFdpbmRvd0NvbnRyb2xs
ZXIuaCBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViVmlkZW9GdWxsc2NyZWVu
SFVEV2luZG93Q29udHJvbGxlci5oCmluZGV4IGY2N2ZlYWUxMzQyZTZhOTc3YzU2ZmIxZjVjNTA0
NDIxMjAwZGQyMTkuLmZmMTg0YWQ0MTA2ZmMxNzhiNjcyNjY1OTI1ZmI3YmRmZWFiYzUyZDUgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViVmlkZW9GdWxsc2Ny
ZWVuSFVEV2luZG93Q29udHJvbGxlci5oCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dl
YlZpZXcvV2ViVmlkZW9GdWxsc2NyZWVuSFVEV2luZG93Q29udHJvbGxlci5oCkBAIC0zMSw2ICsz
MSw3IEBACiAjaW1wb3J0IDxBcHBLaXQvTlNUcmFja2luZ0FyZWEuaD4KICNpbXBvcnQgPEFwcEtp
dC9OU1dpbmRvdy5oPgogI2ltcG9ydCA8QXBwS2l0L05TV2luZG93Q29udHJvbGxlci5oPgorI2lt
cG9ydCA8d3RmL05ha2VkUHRyLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIGNsYXNzIEhUTUxW
aWRlb0VsZW1lbnQ7CkBAIC02NCw3ICs2NSw3IEBAIGNsYXNzIEhUTUxWaWRlb0VsZW1lbnQ7CiAK
IEBwcm90b2NvbCBXZWJWaWRlb0Z1bGxzY3JlZW5IVURXaW5kb3dDb250cm9sbGVyRGVsZWdhdGUg
PE5TT2JqZWN0PgogLSAodm9pZClyZXF1ZXN0RXhpdEZ1bGxzY3JlZW47Ci0tIChXZWJDb3JlOjpI
VE1MVmlkZW9FbGVtZW50Kil2aWRlb0VsZW1lbnQ7CistIChOYWtlZFB0cjxXZWJDb3JlOjpIVE1M
VmlkZW9FbGVtZW50Pil2aWRlb0VsZW1lbnQ7CiBAZW5kCiAKICNlbmRpZgpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJWaWV3Lm1tIGIvU291cmNlL1dlYktp
dExlZ2FjeS9tYWMvV2ViVmlldy9XZWJWaWV3Lm1tCmluZGV4IDRjNDE4NjRkODlmNDA1NjdlZDgx
ZWQyZWZlZmI1MDFmNjc1M2RiODQuLmVhYjA2ODU0MjkxYzM2NGVkMWFhYmJhYzczNDI5MjU1MThj
MTEyOWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViVmll
dy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYlZpZXcubW0KQEAg
LTI2MjEsNyArMjYyMSw3IEBAIC0gKHZvaWQpX3NldEhvc3RBcHBsaWNhdGlvblByb2Nlc3NJZGVu
dGlmaWVyOihwaWRfdClwaWQgYXVkaXRUb2tlbjooYXVkaXRfdG9rZW5fCiAjZW5kaWYgLy8gUExB
VEZPUk0oSU9TX0ZBTUlMWSkKICNlbmRpZiAvLyBFTkFCTEUoUkVNT1RFX0lOU1BFQ1RPUikKIAot
LSAoV2ViQ29yZTo6UGFnZSopcGFnZQorLSAoTmFrZWRQdHI8V2ViQ29yZTo6UGFnZT4pcGFnZQog
ewogICAgIHJldHVybiBfcHJpdmF0ZS0+cGFnZTsKIH0KQEAgLTkzMTIsNyArOTMxMiw3IEBAIC0g
KHZvaWQpX3NjaGVkdWxlTGF5ZXJGbHVzaEZvclBlbmRpbmdUaWxlQ2FjaGVSZXBhaW50CiAjZW5k
aWYKIAogI2lmIEVOQUJMRShWSURFTykKLS0gKHZvaWQpX2VudGVyVmlkZW9GdWxsc2NyZWVuRm9y
VmlkZW9FbGVtZW50OihXZWJDb3JlOjpIVE1MVmlkZW9FbGVtZW50Kil2aWRlb0VsZW1lbnQgbW9k
ZTooV2ViQ29yZTo6SFRNTE1lZGlhRWxlbWVudEVudW1zOjpWaWRlb0Z1bGxzY3JlZW5Nb2RlKW1v
ZGUKKy0gKHZvaWQpX2VudGVyVmlkZW9GdWxsc2NyZWVuRm9yVmlkZW9FbGVtZW50OihOYWtlZFB0
cjxXZWJDb3JlOjpIVE1MVmlkZW9FbGVtZW50Pil2aWRlb0VsZW1lbnQgbW9kZTooV2ViQ29yZTo6
SFRNTE1lZGlhRWxlbWVudEVudW1zOjpWaWRlb0Z1bGxzY3JlZW5Nb2RlKW1vZGUKIHsKICAgICBp
ZiAoX3ByaXZhdGUtPmZ1bGxzY3JlZW5Db250cm9sbGVyKSB7CiAgICAgICAgIGlmIChbX3ByaXZh
dGUtPmZ1bGxzY3JlZW5Db250cm9sbGVyIHZpZGVvRWxlbWVudF0gPT0gdmlkZW9FbGVtZW50KSB7
CkBAIC05MzYzLDE0ICs5MzYzLDE0IEBAIC0gKEJPT0wpX2hhc0FjdGl2ZVZpZGVvRm9yQ29udHJv
bHNJbnRlcmZhY2UKICAgICByZXR1cm4gbWVkaWFFbGVtZW50LT5oYXNBdWRpbygpIHx8IG1lZGlh
RWxlbWVudC0+aGFzVmlkZW8oKTsKIH0KIAotLSAodm9pZClfc2V0VXBQbGF5YmFja0NvbnRyb2xz
TWFuYWdlckZvck1lZGlhRWxlbWVudDooV2ViQ29yZTo6SFRNTE1lZGlhRWxlbWVudCYpbWVkaWFF
bGVtZW50CistICh2b2lkKV9zZXRVcFBsYXliYWNrQ29udHJvbHNNYW5hZ2VyRm9yTWVkaWFFbGVt
ZW50OihOYWtlZFJlZjxXZWJDb3JlOjpIVE1MTWVkaWFFbGVtZW50PiltZWRpYUVsZW1lbnQKIHsK
LSAgICBpZiAoX3ByaXZhdGUtPnBsYXliYWNrU2Vzc2lvbk1vZGVsICYmIF9wcml2YXRlLT5wbGF5
YmFja1Nlc3Npb25Nb2RlbC0+bWVkaWFFbGVtZW50KCkgPT0gJm1lZGlhRWxlbWVudCkKKyAgICBp
ZiAoX3ByaXZhdGUtPnBsYXliYWNrU2Vzc2lvbk1vZGVsICYmIF9wcml2YXRlLT5wbGF5YmFja1Nl
c3Npb25Nb2RlbC0+bWVkaWFFbGVtZW50KCkgPT0gbWVkaWFFbGVtZW50LnB0cigpKQogICAgICAg
ICByZXR1cm47CiAKICAgICBpZiAoIV9wcml2YXRlLT5wbGF5YmFja1Nlc3Npb25Nb2RlbCkKICAg
ICAgICAgX3ByaXZhdGUtPnBsYXliYWNrU2Vzc2lvbk1vZGVsID0gV2ViQ29yZTo6UGxheWJhY2tT
ZXNzaW9uTW9kZWxNZWRpYUVsZW1lbnQ6OmNyZWF0ZSgpOwotICAgIF9wcml2YXRlLT5wbGF5YmFj
a1Nlc3Npb25Nb2RlbC0+c2V0TWVkaWFFbGVtZW50KCZtZWRpYUVsZW1lbnQpOworICAgIF9wcml2
YXRlLT5wbGF5YmFja1Nlc3Npb25Nb2RlbC0+c2V0TWVkaWFFbGVtZW50KG1lZGlhRWxlbWVudC5w
dHIoKSk7CiAKICAgICBpZiAoIV9wcml2YXRlLT5wbGF5YmFja1Nlc3Npb25JbnRlcmZhY2UpCiAg
ICAgICAgIF9wcml2YXRlLT5wbGF5YmFja1Nlc3Npb25JbnRlcmZhY2UgPSBXZWJDb3JlOjpQbGF5
YmFja1Nlc3Npb25JbnRlcmZhY2VNYWM6OmNyZWF0ZSgqX3ByaXZhdGUtPnBsYXliYWNrU2Vzc2lv
bk1vZGVsKTsKQEAgLTkzOTQsNyArOTM5NCw3IEBAIC0gKHZvaWQpX2NsZWFyUGxheWJhY2tDb250
cm9sc01hbmFnZXIKICNlbmRpZiAvLyBFTkFCTEUoVklERU8pCiAKICNpZiBFTkFCTEUoRlVMTFND
UkVFTl9BUEkpICYmICFQTEFURk9STShJT1NfRkFNSUxZKQotLSAoQk9PTClfc3VwcG9ydHNGdWxs
U2NyZWVuRm9yRWxlbWVudDooY29uc3QgV2ViQ29yZTo6RWxlbWVudCopZWxlbWVudCB3aXRoS2V5
Ym9hcmQ6KEJPT0wpd2l0aEtleWJvYXJkCistIChCT09MKV9zdXBwb3J0c0Z1bGxTY3JlZW5Gb3JF
bGVtZW50OihOYWtlZFB0cjxjb25zdCBXZWJDb3JlOjpFbGVtZW50PillbGVtZW50IHdpdGhLZXli
b2FyZDooQk9PTCl3aXRoS2V5Ym9hcmQKIHsKICAgICBpZiAoIVtbc2VsZiBwcmVmZXJlbmNlc10g
ZnVsbFNjcmVlbkVuYWJsZWRdKQogICAgICAgICByZXR1cm4gTk87CkBAIC05NDAyLDE3ICs5NDAy
LDE3IEBAIC0gKEJPT0wpX3N1cHBvcnRzRnVsbFNjcmVlbkZvckVsZW1lbnQ6KGNvbnN0IFdlYkNv
cmU6OkVsZW1lbnQqKWVsZW1lbnQgd2l0aEtleWJvCiAgICAgcmV0dXJuIHRydWU7CiB9CiAKLS0g
KHZvaWQpX2VudGVyRnVsbFNjcmVlbkZvckVsZW1lbnQ6KFdlYkNvcmU6OkVsZW1lbnQqKWVsZW1l
bnQKKy0gKHZvaWQpX2VudGVyRnVsbFNjcmVlbkZvckVsZW1lbnQ6KE5ha2VkUHRyPFdlYkNvcmU6
OkVsZW1lbnQ+KWVsZW1lbnQKIHsKICAgICBpZiAoIV9wcml2YXRlLT5uZXdGdWxsc2NyZWVuQ29u
dHJvbGxlcikKICAgICAgICAgX3ByaXZhdGUtPm5ld0Z1bGxzY3JlZW5Db250cm9sbGVyID0gW1tX
ZWJGdWxsU2NyZWVuQ29udHJvbGxlciBhbGxvY10gaW5pdF07CiAKLSAgICBbX3ByaXZhdGUtPm5l
d0Z1bGxzY3JlZW5Db250cm9sbGVyIHNldEVsZW1lbnQ6ZWxlbWVudF07CisgICAgW19wcml2YXRl
LT5uZXdGdWxsc2NyZWVuQ29udHJvbGxlciBzZXRFbGVtZW50OmVsZW1lbnQuZ2V0KCldOwogICAg
IFtfcHJpdmF0ZS0+bmV3RnVsbHNjcmVlbkNvbnRyb2xsZXIgc2V0V2ViVmlldzpzZWxmXTsKICAg
ICBbX3ByaXZhdGUtPm5ld0Z1bGxzY3JlZW5Db250cm9sbGVyIGVudGVyRnVsbFNjcmVlbjpbW3Nl
bGYgd2luZG93XSBzY3JlZW5dXTsgICAgICAgIAogfQogCi0tICh2b2lkKV9leGl0RnVsbFNjcmVl
bkZvckVsZW1lbnQ6KFdlYkNvcmU6OkVsZW1lbnQqKWVsZW1lbnQKKy0gKHZvaWQpX2V4aXRGdWxs
U2NyZWVuRm9yRWxlbWVudDooTmFrZWRQdHI8V2ViQ29yZTo6RWxlbWVudD4pZWxlbWVudAogewog
ICAgIGlmICghX3ByaXZhdGUtPm5ld0Z1bGxzY3JlZW5Db250cm9sbGVyKQogICAgICAgICByZXR1
cm47CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYlZpZXdJ
bnRlcm5hbC5oIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJWaWV3SW50ZXJu
YWwuaAppbmRleCA4NWUyM2Y4NTc3YWY0YjZkYzI2YjBkMWJkNDc3ZWFjMmJiMWU4MDAxLi5mMWEw
ODY3N2FkMTE0N2Y5MzcyMzBmMzhiYjY3NGNlY2NlZTNlMmUzIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYlZpZXdJbnRlcm5hbC5oCisrKyBiL1NvdXJjZS9X
ZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViVmlld0ludGVybmFsLmgKQEAgLTQ1LDYgKzQ1LDgg
QEAKICNpbXBvcnQgPFdlYkNvcmUvV2ViQ29yZUtleWJvYXJkVUlNb2RlLmg+CiAjaW1wb3J0IDxm
dW5jdGlvbmFsPgogI2ltcG9ydCA8d3RmL0ZvcndhcmQuaD4KKyNpbXBvcnQgPHd0Zi9OYWtlZFB0
ci5oPgorI2ltcG9ydCA8d3RmL05ha2VkUmVmLmg+CiAjaW1wb3J0IDx3dGYvUmV0YWluUHRyLmg+
CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKQEAgLTI3MSwxOSArMjczLDE5IEBAIE9CSkNfQ0xBU1Mg
TlNUZXh0QWx0ZXJuYXRpdmVzOwogLSAodm9pZClfaW52YWxpZGF0ZVVzZXJBZ2VudENhY2hlOwog
CiAjaWYgRU5BQkxFKFZJREVPKSAmJiBkZWZpbmVkKF9fY3BsdXNwbHVzKQotLSAodm9pZClfZW50
ZXJWaWRlb0Z1bGxzY3JlZW5Gb3JWaWRlb0VsZW1lbnQ6KFdlYkNvcmU6OkhUTUxWaWRlb0VsZW1l
bnQqKXZpZGVvRWxlbWVudCBtb2RlOihXZWJDb3JlOjpIVE1MTWVkaWFFbGVtZW50RW51bXM6OlZp
ZGVvRnVsbHNjcmVlbk1vZGUpbW9kZTsKKy0gKHZvaWQpX2VudGVyVmlkZW9GdWxsc2NyZWVuRm9y
VmlkZW9FbGVtZW50OihOYWtlZFB0cjxXZWJDb3JlOjpIVE1MVmlkZW9FbGVtZW50Pil2aWRlb0Vs
ZW1lbnQgbW9kZTooV2ViQ29yZTo6SFRNTE1lZGlhRWxlbWVudEVudW1zOjpWaWRlb0Z1bGxzY3Jl
ZW5Nb2RlKW1vZGU7CiAtICh2b2lkKV9leGl0VmlkZW9GdWxsc2NyZWVuOwogI2lmIFBMQVRGT1JN
KE1BQykgJiYgRU5BQkxFKFZJREVPX1BSRVNFTlRBVElPTl9NT0RFKQogLSAoQk9PTClfaGFzQWN0
aXZlVmlkZW9Gb3JDb250cm9sc0ludGVyZmFjZTsKLS0gKHZvaWQpX3NldFVwUGxheWJhY2tDb250
cm9sc01hbmFnZXJGb3JNZWRpYUVsZW1lbnQ6KFdlYkNvcmU6OkhUTUxNZWRpYUVsZW1lbnQmKW1l
ZGlhRWxlbWVudDsKKy0gKHZvaWQpX3NldFVwUGxheWJhY2tDb250cm9sc01hbmFnZXJGb3JNZWRp
YUVsZW1lbnQ6KE5ha2VkUmVmPFdlYkNvcmU6OkhUTUxNZWRpYUVsZW1lbnQ+KW1lZGlhRWxlbWVu
dDsKIC0gKHZvaWQpX2NsZWFyUGxheWJhY2tDb250cm9sc01hbmFnZXI7CiAjZW5kaWYKICNlbmRp
ZgogCiAjaWYgRU5BQkxFKEZVTExTQ1JFRU5fQVBJKSAmJiAhUExBVEZPUk0oSU9TX0ZBTUlMWSkg
JiYgZGVmaW5lZChfX2NwbHVzcGx1cykKLS0gKEJPT0wpX3N1cHBvcnRzRnVsbFNjcmVlbkZvckVs
ZW1lbnQ6KFdlYkNvcmU6OkVsZW1lbnQqKWVsZW1lbnQgd2l0aEtleWJvYXJkOihCT09MKXdpdGhL
ZXlib2FyZDsKLS0gKHZvaWQpX2VudGVyRnVsbFNjcmVlbkZvckVsZW1lbnQ6KFdlYkNvcmU6OkVs
ZW1lbnQqKWVsZW1lbnQ7Ci0tICh2b2lkKV9leGl0RnVsbFNjcmVlbkZvckVsZW1lbnQ6KFdlYkNv
cmU6OkVsZW1lbnQqKWVsZW1lbnQ7CistIChCT09MKV9zdXBwb3J0c0Z1bGxTY3JlZW5Gb3JFbGVt
ZW50OihOYWtlZFB0cjxXZWJDb3JlOjpFbGVtZW50PillbGVtZW50IHdpdGhLZXlib2FyZDooQk9P
TCl3aXRoS2V5Ym9hcmQ7CistICh2b2lkKV9lbnRlckZ1bGxTY3JlZW5Gb3JFbGVtZW50OihOYWtl
ZFB0cjxXZWJDb3JlOjpFbGVtZW50PillbGVtZW50OworLSAodm9pZClfZXhpdEZ1bGxTY3JlZW5G
b3JFbGVtZW50OihOYWtlZFB0cjxXZWJDb3JlOjpFbGVtZW50PillbGVtZW50OwogI2VuZGlmCiAK
IC8vIENvbnZlcnNpb24gZnVuY3Rpb25zIGJldHdlZW4gV2ViQ29yZSByb290IHZpZXcgY29vcmRp
bmF0ZXMgYW5kIHdlYiB2aWV3IGNvb3JkaW5hdGVzLgo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>387081</attachid>
            <date>2020-01-07 23:27:56 -0800</date>
            <delta_ts>2020-01-07 23:27:56 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-205905-20200107232755.patch</filename>
            <type>text/plain</type>
            <size>127903</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjU0MTUyCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA4
MmRlZmYyOGUyYjlkNGZmMjA4N2FlNGIwODE2MWJjZGRhYmUzMmMwLi43YTJiNzdiOTU4OWJjZjIx
OWM1YTRlY2IzYWE3OWQ4MmZmNDU0ZDcxIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxMyBAQAorMjAyMC0wMS0wNyAgWXVzdWtlIFN1enVraSAgPHlzdXp1a2lAYXBwbGUuY29t
PgorCisgICAgICAgIFJlZHVjZSBiaW5hcnkgc2l6ZSBieSBwdXJnaW5nIEMrKyB0eXBlIGluZm9y
bWF0aW9uIGluIE9iamVjdGl2ZS1DIGZpZWxkcyBhbmQgcGFyYW1ldGVycworICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjA1OTA1CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBBUEkvSlNXcmFwcGVyTWFwLm1t
OgorICAgICAgICAoLVtKU09iakNDbGFzc0luZm8gZGVhbGxvY10pOgorCiAyMDIwLTAxLTA3ICBZ
dXN1a2UgU3V6dWtpICA8eXN1enVraUBhcHBsZS5jb20+CiAKICAgICAgICAgW0pTQ10gUmVtb3Zl
IHZtIGFjY2Vzc29yIGluIEpTVmlydHVhbE1hY2hpbmUgdG8gcmVkdWNlIGJpbmFyeSBzaXplCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5nZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmlu
ZGV4IDliMzIxMGNmYzUyOGQxMzdiOTI4ZDVhZmJiZmEyMDY3ZTIyNWIyMDQuLjY5YTA4MTczZjdh
ZmZhMGUzM2U0MTVkYWNjNjZhNGUxMTQzMGYxMzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNTQgQEAKKzIwMjAt
MDEtMDcgIFl1c3VrZSBTdXp1a2kgIDx5c3V6dWtpQGFwcGxlLmNvbT4KKworICAgICAgICBSZWR1
Y2UgYmluYXJ5IHNpemUgYnkgcHVyZ2luZyBDKysgdHlwZSBpbmZvcm1hdGlvbiBpbiBPYmplY3Rp
dmUtQyBmaWVsZHMgYW5kIHBhcmFtZXRlcnMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTIwNTkwNQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgIE9iamVjdGl2ZS1DIGhhcyByZWZsZWN0aW9uIG1lY2hhbmlzbS4g
VGhpcyBtZWFucyB0aGF0IGZpZWxkcywgbWV0aG9kcywgYW5kIHRoZWlyIHR5cGVzCisgICAgICAg
IG5lZWQgdG8gaG9sZCBpdHMgc3RyaW5nIHJlcHJlc2VudGF0aW9ucyBpbiBiaW5hcnkgZXZlbiBp
ZiB3ZSBhcmUgdXNpbmcgcmVsZWFzZSBidWlsZC4KKyAgICAgICAgV2hpbGUgdHlwaWNhbCBPYmpl
Y3RpdmUtQyBjbGFzcyBkb2VzIG5vdCBoYXZlIGxhcmdlIHNpemUgb2YgdHlwZSBuYW1lcywgQysr
IHN0cnVjdCAvIGNsYXNzCisgICAgICAgIGhhcyB2ZXJ5IGxhcmdlIG9uZSwgYW5kIHB1dHRpbmcg
dGhlbSBpbiBPYmplY3RpdmUtQyBtZXRob2QgbmFtZXMsIHBhcmFtZXRlciB0eXBlcywgb3IgZmll
bGRzCisgICAgICAgIG1ha2VzIGJpbmFyeSBzaXplIHZlcnkgbGFyZ2UuCisKKyAgICAgICAgSW50
ZXJlc3RpbmcgdGhpbmcgaXMgdGhhdCB0eXBlIGluZm9ybWF0aW9uIGlzIGdhdGhlcmVkIHdoZW4g
cGFyYW1ldGVyIGlzIGEgQysrIHBvaW50ZXIsIHJlZmVyZW5jZSwKKyAgICAgICAgb3IgdmFsdWUu
IEFuZCBpdCBnYXRoZXJzIG9uZS1sZXZlbCBkZWVwIGluZm9ybWF0aW9uIGZyb20gdGhpcyBwb2lu
dGVyIGV0Yy4gVGhpcyBtZWFucyB0aGF0LCBpZgorICAgICAgICB3ZSB1c2UgUmVmUHRyPFQ+LCBj
b2xsZWN0ZWQgdHlwZSBpbmZvcm1hdGlvbiBpcyB0aGUgb25lIG9mIFJlZlB0ciwgbm90IG9uZSBv
ZiBULiBTbyBpdCBiZWNvbWVzIHNpZ25pZmljYW50bHkKKyAgICAgICAgc21hbGxlci4KKworICAg
ICAgICBUaGlzIHBhdGNoIGludHJvZHVjZXMgTmFrZWRSZWY8VD4uIFRoaXMgaXMgc2ltaWxhciB0
byBSZWYgd2hpbGUgaXQgZG9lcyBub3QgaGF2ZSBhbnkgb3duZXJzaGlwLiBTbyBpdAorICAgICAg
ICBpcyBqdXN0IGEgd3JhcHBlciBhcm91bmQgVCYuIFdlIGFscmVhZHkgaGF2ZSBOYWtlZFB0cjxU
Pi4gQW5kIHVzZSBOYWtlZFJlZjxUPiAvIE5ha2VkUHRyPFQ+IGluc3RlYWQKKyAgICAgICAgb2Yg
VCYgYW5kIFQqIGlmLAorCisgICAgICAgICAgICAxLiBUIGlzIEMrKyBjbGFzcy4KKyAgICAgICAg
ICAgIDIuIFQqIC8gVCYgaXMgaW4gT2JqZWN0aXZlLUMgZmllbGRzIG9yIHBhcmFtdGVyIHR5cGVz
IChpbmNsdWRpbmcgYSByZXR1cm4gdHlwZSkuCisKKyAgICAgICAgVGhlbiwgdGhlc2UgdHlwZSBp
bmZvcm1hdGlvbiBpcyBvbmUgb2YgTmFrZWRSZWY8VD4gLyBOYWtlZFB0cjxUPiBpbnN0ZWFkIG9m
IFQsIGFuZCB3ZSBjYW4gcmVkdWNlIGJpbmFyeSBzaXplLgorCisgICAgICAgIFRoaXMgcGF0Y2gg
c2F2ZXMgNjAwfktCIGluIGJpbmFyeSBzaXplLgorCisgICAgICAgIE5vdGUgdGhlIGZvbGxvd2lu
ZyB0aGluZ3MuCisKKyAgICAgICAgMS4gSWYgd2UgdXNlIGBfX2F0dHJpYnV0ZV9fKChvYmpjX2Rp
cmVjdCkpYCwgYF9fYXR0cmlidXRlX18oKG9iamNfZGlyZWN0X21lbWJlcnMpKWAsIHBvc3NpYmx5
LCB3ZSBjYW4gY29tcGxldGVseSByZW1vdmUgdGhlc2UKKyAgICAgICAgICAgbWV0YWRhdGEgd2l0
aG91dCB1c2luZyBOYWtlZFJlZiAvIE5ha2VkUHRyWzFdLiBIb3dldmVyLCB0aGlzIGlzIG5vdCBh
dmFpbGFibGUgZm9yIG91ciBzdXBwb3J0aW5nIHBsYXRmb3JtcyBub3cgKGluY2x1ZGluZworICAg
ICAgICAgICBwcmUtQ2F0YWxpbmEgT1NlcykuIFRoaXMgTmFrZWRSZWYgLyBOYWtlZFB0ciB0ZWNo
bmlxdWUgY2FuIHJlZHVjZSBiaW5hcnkgd2l0aG91dCB3YWl0aW5nIGZvciBpdC4KKyAgICAgICAg
Mi4gUmV2ZXJ0aW5nIE5ha2VkUmVmIC8gTmFrZWRQdHIgdG8gdXN1YWwgcmVmZXJlbmNlIC8gcG9p
bnRlciBpcyBmYWlybHkgZWFzeSBzaW5jZSBpdCBpcyB3ZWxsIHR5cGVkLiBPbmNlIGBfX2F0dHJp
YnV0ZV9fKChvYmpjX2RpcmVjdCkpYAorICAgICAgICAgICBiZWNvbWVzIGF2YWlsYWJsZSBpbiBv
dXIgcGxhdGZvcm1zLCB3ZSBjYW4gY29uc2lkZXIgaXQuIEJ1dCB1c2luZyBOYWtlZFJlZiAvIE5h
a2VkUHRyIGlzIG5vdCBoYXJtbGVzcy4KKworICAgICAgICBbMV06IGh0dHBzOi8vZ2l0aHViLmNv
bS9sbHZtL2xsdm0tcHJvamVjdC9jb21taXQvZDRlMWJhM2ZhOWRmZWMyNjEzYmRjYzdkYjBiNThk
ZWE0OTBjNTZiMQorCisgICAgICAgICogV1RGLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6Cisg
ICAgICAgICogd3RmL0NNYWtlTGlzdHMudHh0OgorICAgICAgICAqIHd0Zi9OYWtlZFJlZi5oOiBB
ZGRlZC4KKyAgICAgICAgKFdURjo6TmFrZWRSZWY6Ok5ha2VkUmVmKToKKyAgICAgICAgKFdURjo6
TmFrZWRSZWY6Om9wZXJhdG9yLT4gY29uc3QpOgorICAgICAgICAoV1RGOjpOYWtlZFJlZjo6Z2V0
IGNvbnN0KToKKyAgICAgICAgKFdURjo6TmFrZWRSZWY6Om9wZXJhdG9yIFQmIGNvbnN0KToKKyAg
ICAgICAgKFdURjo6TmFrZWRSZWY6Om9wZXJhdG9yISBjb25zdCk6CisgICAgICAgIChXVEY6Oj0p
OgorICAgICAgICAoV1RGOjpOYWtlZFJlZjxUPjo6c3dhcCk6CisgICAgICAgIChXVEY6OnN3YXAp
OgorCiAyMDIwLTAxLTA3ICBDYXJsb3MgR2FyY2lhIENhbXBvcyAgPGNnYXJjaWFAaWdhbGlhLmNv
bT4KIAogICAgICAgICBbR1RLXVtXUEVdIEFkZCBBUEkgdG8gc2V0IHB1cnBvc2UgYW5kIGhpbnRz
IG9mIGFjdGl2ZSBlZGl0YWJsZSBlbGVtZW50IHRvIGlucHV0IG1ldGhvZHMKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRl
eCBjNWY2Mjk5YTk2YWNjYzUxMWIzOTU5OTBmNjhiNGQxZWQ4NDg1MmY0Li5mODY2ZmNkZGRmMWE1
NTY2ZjdlNDQyZDJiMDI1ZmU3NWI4MTY2YzJjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjUgQEAK
KzIwMjAtMDEtMDcgIFl1c3VrZSBTdXp1a2kgIDx5c3V6dWtpQGFwcGxlLmNvbT4KKworICAgICAg
ICBSZWR1Y2UgYmluYXJ5IHNpemUgYnkgcHVyZ2luZyBDKysgdHlwZSBpbmZvcm1hdGlvbiBpbiBP
YmplY3RpdmUtQyBmaWVsZHMgYW5kIHBhcmFtZXRlcnMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwNTkwNQorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgIE5vIGJlaGF2aW9yIGNoYW5nZS4KKworICAgICAgICAq
IHBhZ2UvbWFjL1dlYkNvcmVGcmFtZVZpZXcuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGlj
cy9jb2NvYS9XZWJHTExheWVyLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2Ev
V2ViR0xMYXllci5tbToKKyAgICAgICAgKC1bV2ViR0xMYXllciBpbml0V2l0aEdyYXBoaWNzQ29u
dGV4dEdMOl0pOgorICAgICAgICAqIHBsYXRmb3JtL2lvcy9XZWJWaWRlb0Z1bGxzY3JlZW5Db250
cm9sbGVyQVZLaXQuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9pb3MvV2ViVmlkZW9GdWxsc2NyZWVu
Q29udHJvbGxlckFWS2l0Lm1tOgorICAgICAgICAoLVtXZWJWaWRlb0Z1bGxzY3JlZW5Db250cm9s
bGVyIHZpZGVvRWxlbWVudF0pOgorICAgICAgICAoLVtXZWJWaWRlb0Z1bGxzY3JlZW5Db250cm9s
bGVyIHNldFZpZGVvRWxlbWVudDpdKToKKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvU2Nyb2xsQW5p
bWF0b3JNYWMubW06CisgICAgICAgICgtW1dlYlNjcm9sbEFuaW1hdGlvbkhlbHBlckRlbGVnYXRl
IGluaXRXaXRoU2Nyb2xsQW5pbWF0b3I6XSk6CisgICAgICAgICgtW1dlYlNjcm9sbEFuaW1hdGlv
bkhlbHBlckRlbGVnYXRlIGludmFsaWRhdGVdKToKKyAgICAgICAgKC1bV2ViU2Nyb2xsZXJJbXBE
ZWxlZ2F0ZSBzY3JvbGxBbmltYXRvcl0pOgorCiAyMDIwLTAxLTA3ICBSeWFuIEhhZGRhZCAgPHJ5
YW5oYWRkYWRAYXBwbGUuY29tPgogCiAgICAgICAgIFVucmV2aWV3ZWQsIHJvbGxpbmcgb3V0IHIy
NTQxNDQuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJL
aXQvQ2hhbmdlTG9nCmluZGV4IDMxM2U0MDdmMTU2MGQ5Yzk2NWRhOWRkMmU1NGU4NGZiZWEyYTZi
NzcuLjcyMzdkYjU3NmEwNDI2MTBjNjY3NjdiMDU0N2ZjOGQxNTVjZmJkMDMgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBA
IC0xLDMgKzEsODIgQEAKKzIwMjAtMDEtMDcgIFl1c3VrZSBTdXp1a2kgIDx5c3V6dWtpQGFwcGxl
LmNvbT4KKworICAgICAgICBSZWR1Y2UgYmluYXJ5IHNpemUgYnkgcHVyZ2luZyBDKysgdHlwZSBp
bmZvcm1hdGlvbiBpbiBPYmplY3RpdmUtQyBmaWVsZHMgYW5kIHBhcmFtZXRlcnMKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwNTkwNQorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogTmV0d29ya1Byb2Nlc3Mv
Y29jb2EvTmV0d29ya1Nlc3Npb25Db2NvYS5tbToKKyAgICAgICAgKC1bV0tOZXR3b3JrU2Vzc2lv
bkRlbGVnYXRlIGluaXRXaXRoTmV0d29ya1Nlc3Npb246d3JhcHBlcjp3aXRoQ3JlZGVudGlhbHM6
XSk6CisgICAgICAgICogU2hhcmVkL0FQSS9Db2NvYS9XS0Jyb3dzaW5nQ29udGV4dEhhbmRsZS5t
bToKKyAgICAgICAgKC1bV0tCcm93c2luZ0NvbnRleHRIYW5kbGUgX2luaXRXaXRoUGFnZVByb3h5
Ol0pOgorICAgICAgICAoLVtXS0Jyb3dzaW5nQ29udGV4dEhhbmRsZSBfaW5pdFdpdGhQYWdlOl0p
OgorICAgICAgICAqIFNoYXJlZC9BUEkvQ29jb2EvV0tCcm93c2luZ0NvbnRleHRIYW5kbGVJbnRl
cm5hbC5oOgorICAgICAgICAqIFNoYXJlZC9BUEkvQ29jb2EvX1dLUmVtb3RlT2JqZWN0UmVnaXN0
cnkubW06CisgICAgICAgICgtW19XS1JlbW90ZU9iamVjdFJlZ2lzdHJ5IF9pbml0V2l0aFdlYlBh
Z2U6XSk6CisgICAgICAgICgtW19XS1JlbW90ZU9iamVjdFJlZ2lzdHJ5IF9pbml0V2l0aFdlYlBh
Z2VQcm94eTpdKToKKyAgICAgICAgKiBTaGFyZWQvQVBJL0NvY29hL19XS1JlbW90ZU9iamVjdFJl
Z2lzdHJ5SW50ZXJuYWwuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmll
dy5tbToKKyAgICAgICAgKC1bV0tXZWJWaWV3IF9wYWdlXSk6CisgICAgICAgICogVUlQcm9jZXNz
L0FQSS9Db2NvYS9XS1dlYlZpZXdJbnRlcm5hbC5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkv
Q29jb2EvV0tXZWJzaXRlRGF0YVN0b3JlLm1tOgorICAgICAgICAoLVtXS1dlYnNpdGVEYXRhU3Rv
cmUgX2dldEFsbFN0b3JhZ2VBY2Nlc3NFbnRyaWVzRm9yOmNvbXBsZXRpb25IYW5kbGVyOl0pOgor
ICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLVGh1bWJuYWlsVmlldy5tbToKKyAgICAg
ICAgKiBVSVByb2Nlc3MvQVBJL21hYy9XS1ZpZXcubW06CisgICAgICAgICgtW1dLVmlldyBpbml0
V2l0aEZyYW1lOnByb2Nlc3NQb29sOmNvbmZpZ3VyYXRpb246XSk6CisgICAgICAgICogVUlQcm9j
ZXNzL0NvY29hL1dlYlZpZXdJbXBsLm1tOgorICAgICAgICAoV2ViS2l0OjpXZWJWaWV3SW1wbDo6
V2ViVmlld0ltcGwpOgorICAgICAgICAoV2ViS2l0OjpXZWJWaWV3SW1wbDo6c2V0TGF5b3V0TW9k
ZSk6CisgICAgICAgIChXZWJLaXQ6OldlYlZpZXdJbXBsOjpmdWxsU2NyZWVuV2luZG93Q29udHJv
bGxlcik6CisgICAgICAgIChXZWJLaXQ6OldlYlZpZXdJbXBsOjpyZW1vdGVPYmplY3RSZWdpc3Ry
eSk6CisgICAgICAgICogVUlQcm9jZXNzL2lvcy9XS0FwcGxpY2F0aW9uU3RhdGVUcmFja2luZ1Zp
ZXcubW06CisgICAgICAgICgtW1dLQXBwbGljYXRpb25TdGF0ZVRyYWNraW5nVmlldyB3aWxsTW92
ZVRvV2luZG93Ol0pOgorICAgICAgICAoLVtXS0FwcGxpY2F0aW9uU3RhdGVUcmFja2luZ1ZpZXcg
ZGlkTW92ZVRvV2luZG93XSk6CisgICAgICAgICogVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3
Lmg6CisgICAgICAgICogVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3Lm1tOgorICAgICAgICAo
LVtXS0NvbnRlbnRWaWV3IGluaXRXaXRoRnJhbWU6cHJvY2Vzc1Bvb2w6Y29uZmlndXJhdGlvbjp3
ZWJWaWV3Ol0pOgorICAgICAgICAqIFVJUHJvY2Vzcy9pb3MvZnVsbHNjcmVlbi9XS0Z1bGxTY3Jl
ZW5WaWV3Q29udHJvbGxlci5tbToKKyAgICAgICAgKC1bV0tGdWxsU2NyZWVuVmlld0NvbnRyb2xs
ZXIgdmlkZW9Db250cm9sc01hbmFnZXJEaWRDaGFuZ2VdKToKKyAgICAgICAgKC1bV0tGdWxsU2Ny
ZWVuVmlld0NvbnRyb2xsZXIgX21hbmFnZXJdKToKKyAgICAgICAgKC1bV0tGdWxsU2NyZWVuVmll
d0NvbnRyb2xsZXIgX3RvZ2dsZVBpUEFjdGlvbjpdKToKKyAgICAgICAgKC1bV0tGdWxsU2NyZWVu
Vmlld0NvbnRyb2xsZXIgX3Nob3dQaGlzaGluZ0FsZXJ0XSk6CisgICAgICAgICogVUlQcm9jZXNz
L2lvcy9mdWxsc2NyZWVuL1dLRnVsbFNjcmVlbldpbmRvd0NvbnRyb2xsZXJJT1MubW06CisgICAg
ICAgIChXZWJLaXQ6OldLV2ViVmlld1N0YXRlOjphcHBseVRvKToKKyAgICAgICAgKFdlYktpdDo6
V0tXZWJWaWV3U3RhdGU6OnN0b3JlKToKKyAgICAgICAgKC1bV0tGdWxsU2NyZWVuV2luZG93Q29u
dHJvbGxlciBlbnRlckZ1bGxTY3JlZW5dKToKKyAgICAgICAgKC1bV0tGdWxsU2NyZWVuV2luZG93
Q29udHJvbGxlciBiZWdhbkVudGVyRnVsbFNjcmVlbldpdGhJbml0aWFsRnJhbWU6ZmluYWxGcmFt
ZTpdKToKKyAgICAgICAgKC1bV0tGdWxsU2NyZWVuV2luZG93Q29udHJvbGxlciBiZWdhbkV4aXRG
dWxsU2NyZWVuV2l0aEluaXRpYWxGcmFtZTpmaW5hbEZyYW1lOl0pOgorICAgICAgICAoLVtXS0Z1
bGxTY3JlZW5XaW5kb3dDb250cm9sbGVyIF9jb21wbGV0ZWRFeGl0RnVsbFNjcmVlbl0pOgorICAg
ICAgICAoLVtXS0Z1bGxTY3JlZW5XaW5kb3dDb250cm9sbGVyIF9leGl0RnVsbHNjcmVlbkltbWVk
aWF0ZWx5XSk6CisgICAgICAgICgtW1dLRnVsbFNjcmVlbldpbmRvd0NvbnRyb2xsZXIgX21hbmFn
ZXJdKToKKyAgICAgICAgKiBVSVByb2Nlc3MvbWFjL1dLRnVsbFNjcmVlbldpbmRvd0NvbnRyb2xs
ZXIuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvbWFjL1dLRnVsbFNjcmVlbldpbmRvd0NvbnRyb2xs
ZXIubW06CisgICAgICAgICgtW1dLRnVsbFNjcmVlbldpbmRvd0NvbnRyb2xsZXIgaW5pdFdpdGhX
aW5kb3c6d2ViVmlldzpwYWdlOl0pOgorICAgICAgICAqIFVJUHJvY2Vzcy9tYWMvV0tJbW1lZGlh
dGVBY3Rpb25Db250cm9sbGVyLmg6CisgICAgICAgICogVUlQcm9jZXNzL21hYy9XS0ltbWVkaWF0
ZUFjdGlvbkNvbnRyb2xsZXIubW06CisgICAgICAgICgtW1dLSW1tZWRpYXRlQWN0aW9uQ29udHJv
bGxlciBpbml0V2l0aFBhZ2U6dmlldzp2aWV3SW1wbDpyZWNvZ25pemVyOl0pOgorICAgICAgICAo
LVtXS0ltbWVkaWF0ZUFjdGlvbkNvbnRyb2xsZXIgX2FuaW1hdGlvbkNvbnRyb2xsZXJGb3JEYXRh
RGV0ZWN0ZWRUZXh0XSk6CisgICAgICAgICgtW1dLSW1tZWRpYXRlQWN0aW9uQ29udHJvbGxlciBf
YW5pbWF0aW9uQ29udHJvbGxlckZvckRhdGFEZXRlY3RlZExpbmtdKToKKyAgICAgICAgKiBVSVBy
b2Nlc3MvbWFjL1dLSW5zcGVjdG9yVmlld0NvbnRyb2xsZXIuaDoKKyAgICAgICAgKiBVSVByb2Nl
c3MvbWFjL1dLSW5zcGVjdG9yVmlld0NvbnRyb2xsZXIubW06CisgICAgICAgICgtW1dLSW5zcGVj
dG9yVmlld0NvbnRyb2xsZXIgaW5pdFdpdGhJbnNwZWN0ZWRQYWdlOl0pOgorICAgICAgICAqIFVJ
UHJvY2Vzcy9tYWMvV0tUZXh0RmluZGVyQ2xpZW50Lmg6CisgICAgICAgICogVUlQcm9jZXNzL21h
Yy9XS1RleHRGaW5kZXJDbGllbnQubW06CisgICAgICAgICgtW1dLVGV4dEZpbmRlckNsaWVudCBp
bml0V2l0aFBhZ2U6dmlldzp1c2VQbGF0Zm9ybUZpbmRVSTpdKToKKyAgICAgICAgKiBVSVByb2Nl
c3MvbWFjL1dLVmlld0xheW91dFN0cmF0ZWd5Lmg6CisgICAgICAgICogVUlQcm9jZXNzL21hYy9X
S1ZpZXdMYXlvdXRTdHJhdGVneS5tbToKKyAgICAgICAgKCtbV0tWaWV3TGF5b3V0U3RyYXRlZ3kg
bGF5b3V0U3RyYXRlZ3lXaXRoUGFnZTp2aWV3OnZpZXdJbXBsOm1vZGU6XSk6CisgICAgICAgICgt
W1dLVmlld0xheW91dFN0cmF0ZWd5IGluaXRXaXRoUGFnZTp2aWV3OnZpZXdJbXBsOm1vZGU6XSk6
CisgICAgICAgICgtW1dLVmlld1ZpZXdTaXplTGF5b3V0U3RyYXRlZ3kgaW5pdFdpdGhQYWdlOnZp
ZXc6dmlld0ltcGw6bW9kZTpdKToKKyAgICAgICAgKC1bV0tWaWV3Rml4ZWRTaXplTGF5b3V0U3Ry
YXRlZ3kgaW5pdFdpdGhQYWdlOnZpZXc6dmlld0ltcGw6bW9kZTpdKToKKyAgICAgICAgKC1bV0tW
aWV3RHluYW1pY1NpemVDb21wdXRlZEZyb21WaWV3U2NhbGVMYXlvdXRTdHJhdGVneSBpbml0V2l0
aFBhZ2U6dmlldzp2aWV3SW1wbDptb2RlOl0pOgorICAgICAgICAoLVtXS1ZpZXdEeW5hbWljU2l6
ZUNvbXB1dGVkRnJvbU1pbmltdW1Eb2N1bWVudFNpemVMYXlvdXRTdHJhdGVneSBpbml0V2l0aFBh
Z2U6dmlldzp2aWV3SW1wbDptb2RlOl0pOgorICAgICAgICAqIFdlYlByb2Nlc3MvSW5qZWN0ZWRC
dW5kbGUvQVBJL21hYy9XS0RPTURvY3VtZW50Lm1tOgorICAgICAgICAoLVtXS0RPTURvY3VtZW50
UGFyc2VyWWllbGRUb2tlbiBpbml0V2l0aERvY3VtZW50Ol0pOgorICAgICAgICAqIFdlYlByb2Nl
c3MvV2ViUGFnZS9tYWMvV0tBY2Nlc3NpYmlsaXR5V2ViUGFnZU9iamVjdEJhc2UuaDoKKyAgICAg
ICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1dLQWNjZXNzaWJpbGl0eVdlYlBhZ2VPYmplY3RC
YXNlLm1tOgorICAgICAgICAoLVtXS0FjY2Vzc2liaWxpdHlXZWJQYWdlT2JqZWN0QmFzZSBheE9i
amVjdENhY2hlXSk6CisgICAgICAgICgtW1dLQWNjZXNzaWJpbGl0eVdlYlBhZ2VPYmplY3RCYXNl
IHNldFdlYlBhZ2U6XSk6CisKIDIwMjAtMDEtMDcgIFJ5YW4gSGFkZGFkICA8cnlhbmhhZGRhZEBh
cHBsZS5jb20+CiAKICAgICAgICAgVW5yZXZpZXdlZCwgcm9sbGluZyBvdXQgcjI1NDE0NC4KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJL
aXRMZWdhY3kvbWFjL0NoYW5nZUxvZwppbmRleCBjNzRlZmE5Zjc0MDNlOTc2MjhkZTE0YTgzOWFl
MzM4MjVjYWRmM2Y1Li40YmZkMzFlMTAyYzE5ODdjYjQ2OTViYzZiMmE2OThlZDkwYTdiMjFkIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cKKysrIGIvU291cmNl
L1dlYktpdExlZ2FjeS9tYWMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTEzIEBACisyMDIwLTAxLTA3
ICBZdXN1a2UgU3V6dWtpICA8eXN1enVraUBhcHBsZS5jb20+CisKKyAgICAgICAgUmVkdWNlIGJp
bmFyeSBzaXplIGJ5IHB1cmdpbmcgQysrIHR5cGUgaW5mb3JtYXRpb24gaW4gT2JqZWN0aXZlLUMg
ZmllbGRzIGFuZCBwYXJhbWV0ZXJzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0yMDU5MDUKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICAqIFBsdWdpbnMvV2ViQmFzZU5ldHNjYXBlUGx1Z2luVmlldy5oOgorICAg
ICAgICAqIFBsdWdpbnMvV2ViQmFzZU5ldHNjYXBlUGx1Z2luVmlldy5tbToKKyAgICAgICAgKC1b
V2ViQmFzZU5ldHNjYXBlUGx1Z2luVmlldyBlbGVtZW50XSk6CisgICAgICAgICogV2ViQ29yZVN1
cHBvcnQvV2ViRWRpdG9yQ2xpZW50Lm1tOgorICAgICAgICAoX1dlYkNyZWF0ZUZyYWdtZW50KToK
KyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5tbToKKyAgICAg
ICAgKFdlYkZyYW1lTG9hZGVyQ2xpZW50Ojp0cmFuc2l0aW9uVG9Db21taXR0ZWRGb3JOZXdQYWdl
KToKKyAgICAgICAgKC1bV2ViRnJhbWVQb2xpY3lMaXN0ZW5lciBpbml0V2l0aEZyYW1lOmlkZW50
aWZpZXI6cG9saWN5RnVuY3Rpb246ZGVmYXVsdFBvbGljeTpdKToKKyAgICAgICAgKC1bV2ViRnJh
bWVQb2xpY3lMaXN0ZW5lciBpbml0V2l0aEZyYW1lOmlkZW50aWZpZXI6cG9saWN5RnVuY3Rpb246
ZGVmYXVsdFBvbGljeTphcHBMaW5rVVJMOl0pOgorICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L1dl
Ykdlb2xvY2F0aW9uQ2xpZW50Lm1tOgorICAgICAgICAoLVtXZWJHZW9sb2NhdGlvblBvbGljeUxp
c3RlbmVyIGluaXRXaXRoR2VvbG9jYXRpb246XSk6CisgICAgICAgICgtW1dlYkdlb2xvY2F0aW9u
UG9saWN5TGlzdGVuZXIgaW5pdFdpdGhHZW9sb2NhdGlvbjpmb3JXZWJWaWV3Ol0pOgorICAgICAg
ICAoLVtXZWJHZW9sb2NhdGlvblByb3ZpZGVySW5pdGlhbGl6YXRpb25MaXN0ZW5lciBpbml0V2l0
aEdlb2xvY2F0aW9uOl0pOgorICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L1dlYkluc3BlY3RvckNs
aWVudC5tbToKKyAgICAgICAgKFdlYkluc3BlY3RvckZyb250ZW5kQ2xpZW50OjpyZXNldFN0YXRl
KToKKyAgICAgICAgKC1bV2ViSW5zcGVjdG9yV2luZG93Q29udHJvbGxlciBzZXRGcm9udGVuZENs
aWVudDpdKToKKyAgICAgICAgKC1bV2ViSW5zcGVjdG9yV2luZG93Q29udHJvbGxlciBzZXRJbnNw
ZWN0b3JDbGllbnQ6XSk6CisgICAgICAgICgtW1dlYkluc3BlY3RvcldpbmRvd0NvbnRyb2xsZXIg
aW5zcGVjdG9yQ2xpZW50XSk6CisgICAgICAgICogV2ViSW5zcGVjdG9yL1dlYkluc3BlY3RvckZy
b250ZW5kLmg6CisgICAgICAgICogV2ViSW5zcGVjdG9yL1dlYkluc3BlY3RvckZyb250ZW5kLm1t
OgorICAgICAgICAqIFdlYkluc3BlY3Rvci9XZWJOb2RlSGlnaGxpZ2h0Lmg6CisgICAgICAgICog
V2ViSW5zcGVjdG9yL1dlYk5vZGVIaWdobGlnaHQubW06CisgICAgICAgICgtW1dlYk5vZGVIaWdo
bGlnaHQgaW5pdFdpdGhUYXJnZXRWaWV3Omluc3BlY3RvckNvbnRyb2xsZXI6XSk6CisgICAgICAg
ICogV2ViVmlldy9XZWJBcmNoaXZlLm1tOgorICAgICAgICAoLVtXZWJBcmNoaXZlIGluaXRXaXRo
TWFpblJlc291cmNlOnN1YnJlc291cmNlczpzdWJmcmFtZUFyY2hpdmVzOl0pOgorICAgICAgICAq
IFdlYlZpZXcvV2ViRGF0YVNvdXJjZS5tbToKKyAgICAgICAgKC1bV2ViRGF0YVNvdXJjZSBfZG9j
dW1lbnRMb2FkZXJdKToKKyAgICAgICAgKC1bV2ViRGF0YVNvdXJjZSBhZGRTdWJyZXNvdXJjZTpd
KToKKyAgICAgICAgKiBXZWJWaWV3L1dlYkRhdGFTb3VyY2VJbnRlcm5hbC5oOgorICAgICAgICAq
IFdlYlZpZXcvV2ViRnJhbWUubW06CisgICAgICAgIChnZXRXZWJWaWV3KToKKyAgICAgICAgKC1b
V2ViRnJhbWUgX3VwZGF0ZUJhY2tncm91bmRBbmRVcGRhdGVzV2hpbGVPZmZzY3JlZW5dKToKKyAg
ICAgICAgKC1bV2ViRnJhbWUgX3VubWFya0FsbEJhZEdyYW1tYXJdKToKKyAgICAgICAgKC1bV2Vi
RnJhbWUgX3VubWFya0FsbE1pc3NwZWxsaW5nc10pOgorICAgICAgICAoLVtXZWJGcmFtZSBfaGFz
U2VsZWN0aW9uXSk6CisgICAgICAgICgtW1dlYkZyYW1lIF9hdE1vc3RPbmVGcmFtZUhhc1NlbGVj
dGlvbl0pOgorICAgICAgICAoLVtXZWJGcmFtZSBfZmluZEZyYW1lV2l0aFNlbGVjdGlvbl0pOgor
ICAgICAgICAoLVtXZWJGcmFtZSBfc2Nyb2xsRE9NUmFuZ2VUb1Zpc2libGU6d2l0aEluc2V0Ol0p
OgorICAgICAgICAoLVtXZWJGcmFtZSBfZG9jdW1lbnRGcmFnbWVudFdpdGhNYXJrdXBTdHJpbmc6
YmFzZVVSTFN0cmluZzpdKToKKyAgICAgICAgKC1bV2ViRnJhbWUgX2RvY3VtZW50RnJhZ21lbnRX
aXRoTm9kZXNBc1BhcmFncmFwaHM6XSk6CisgICAgICAgICgtW1dlYkZyYW1lIF9jYW5Qcm92aWRl
RG9jdW1lbnRTb3VyY2VdKToKKyAgICAgICAgKC1bV2ViRnJhbWUgX2lzRGVzY2VuZGFudE9mRnJh
bWU6XSk6CisgICAgICAgICgtW1dlYkZyYW1lIF9yZWN1cnNpdmVfcmVzdW1lTnVsbEV2ZW50c0Zv
ckFsbE5ldHNjYXBlUGx1Z2luc10pOgorICAgICAgICAoLVtXZWJGcmFtZSBfcmVjdXJzaXZlX3Bh
dXNlTnVsbEV2ZW50c0ZvckFsbE5ldHNjYXBlUGx1Z2luc10pOgorICAgICAgICAoLVtXZWJGcmFt
ZSBzZXRUaW1lb3V0c1BhdXNlZDpdKToKKyAgICAgICAgKC1bV2ViRnJhbWUgcHJlcGFyZUZvclBh
dXNlXSk6CisgICAgICAgICgtW1dlYkZyYW1lIHJlc3VtZUZyb21QYXVzZV0pOgorICAgICAgICAo
LVtXZWJGcmFtZSByZXNldFRleHRBdXRvc2l6aW5nQmVmb3JlTGF5b3V0XSk6CisgICAgICAgICgt
W1dlYkZyYW1lIF9nbG9iYWxDb250ZXh0Rm9yU2NyaXB0V29ybGQ6XSk6CisgICAgICAgICgtW1dl
YkZyYW1lIF9sYXllclRyZWVBc1RleHRdKToKKyAgICAgICAgKC1bV2ViRnJhbWUgX2NsZWFyT3Bl
bmVyXSk6CisgICAgICAgICgtW1dlYkZyYW1lIGZvY3VzZWROb2RlSGFzQ29udGVudF0pOgorICAg
ICAgICAoLVtXZWJGcmFtZSBfZGlzcGF0Y2hEaWRSZWNlaXZlVGl0bGU6XSk6CisgICAgICAgICgt
W1dlYkZyYW1lIGpzV3JhcHBlckZvck5vZGU6aW5TY3JpcHRXb3JsZDpdKToKKyAgICAgICAgKC1b
V2ViRnJhbWUgZWxlbWVudEF0UG9pbnQ6XSk6CisgICAgICAgICgtW1dlYkZyYW1lIG5hbWVdKToK
KyAgICAgICAgKC1bV2ViRnJhbWUgRE9NRG9jdW1lbnRdKToKKyAgICAgICAgKC1bV2ViRnJhbWUg
ZnJhbWVFbGVtZW50XSk6CisgICAgICAgICgtW1dlYkZyYW1lIHByb3Zpc2lvbmFsRGF0YVNvdXJj
ZV0pOgorICAgICAgICAoLVtXZWJGcmFtZSBkYXRhU291cmNlXSk6CisgICAgICAgICgtW1dlYkZy
YW1lIGxvYWRSZXF1ZXN0Ol0pOgorICAgICAgICAoLVtXZWJGcmFtZSBmaW5kRnJhbWVOYW1lZDpd
KToKKyAgICAgICAgKC1bV2ViRnJhbWUgcGFyZW50RnJhbWVdKToKKyAgICAgICAgKC1bV2ViRnJh
bWUgY2hpbGRGcmFtZXNdKToKKyAgICAgICAgKC1bV2ViRnJhbWUgd2luZG93T2JqZWN0XSk6Cisg
ICAgICAgICgtW1dlYkZyYW1lIGdsb2JhbENvbnRleHRdKToKKyAgICAgICAgKC1bV2ViRnJhbWUg
amF2YVNjcmlwdENvbnRleHRdKToKKyAgICAgICAgKiBXZWJWaWV3L1dlYkZyYW1lSW50ZXJuYWwu
aDoKKyAgICAgICAgKiBXZWJWaWV3L1dlYkZyYW1lVmlldy5tbToKKyAgICAgICAgKC1bV2ViRnJh
bWVWaWV3IF93ZWJfZnJhbWVdKToKKyAgICAgICAgKC1bV2ViRnJhbWVWaWV3IF9mcmFtZVNpemVD
aGFuZ2VkXSk6CisgICAgICAgICgtW1dlYkZyYW1lVmlldyBfaXNWZXJ0aWNhbERvY3VtZW50XSk6
CisgICAgICAgICgtW1dlYkZyYW1lVmlldyBfaXNGbGlwcGVkRG9jdW1lbnRdKToKKyAgICAgICAg
KC1bV2ViRnJhbWVWaWV3IGtleURvd246a2V5RG93bjpdKToKKyAgICAgICAgKiBXZWJWaWV3L1dl
YkZ1bGxTY3JlZW5Db250cm9sbGVyLm1tOgorICAgICAgICAoLVtXZWJGdWxsU2NyZWVuQ29udHJv
bGxlciBfZG9jdW1lbnRdKToKKyAgICAgICAgKiBXZWJWaWV3L1dlYkhUTUxWaWV3Lm1tOgorICAg
ICAgICAoLVtXZWJNZW51VGFyZ2V0IG1lbnVDb250cm9sbGVyXSk6CisgICAgICAgICgtW1dlYk1l
bnVUYXJnZXQgc2V0TWVudUNvbnRyb2xsZXI6XSk6CisgICAgICAgICgtW1dlYkhUTUxWaWV3IG5h
bWVzT2ZQcm9taXNlZEZpbGVzRHJvcHBlZEF0RGVzdGluYXRpb246XSk6CisgICAgICAgICgtW1dl
YkhUTUxWaWV3IF9pbnRlcnByZXRLZXlFdmVudDpzYXZpbmdDb21tYW5kczpdKToKKyAgICAgICAg
KC1bV2ViSFRNTFZpZXcgc2V0UHJvbWlzZWREcmFnVElGRkRhdGFTb3VyY2U6XSk6CisgICAgICAg
ICogV2ViVmlldy9XZWJIVE1MVmlld0ludGVybmFsLmg6CisgICAgICAgICogV2ViVmlldy9XZWJO
b3RpZmljYXRpb24ubW06CisgICAgICAgICgtW1dlYk5vdGlmaWNhdGlvbiBpbml0V2l0aENvcmVO
b3RpZmljYXRpb246bm90aWZpY2F0aW9uSUQ6XSk6CisgICAgICAgICogV2ViVmlldy9XZWJOb3Rp
ZmljYXRpb25JbnRlcm5hbC5oOgorICAgICAgICAqIFdlYlZpZXcvV2ViUmVzb3VyY2UubW06Cisg
ICAgICAgICgtW1dlYlJlc291cmNlIF9jb3JlUmVzb3VyY2VdKToKKyAgICAgICAgKiBXZWJWaWV3
L1dlYlJlc291cmNlSW50ZXJuYWwuaDoKKyAgICAgICAgKiBXZWJWaWV3L1dlYlZpZGVvRnVsbHNj
cmVlbkNvbnRyb2xsZXIuaDoKKyAgICAgICAgKiBXZWJWaWV3L1dlYlZpZGVvRnVsbHNjcmVlbkNv
bnRyb2xsZXIubW06CisgICAgICAgICgtW1dlYlZpZGVvRnVsbHNjcmVlbkNvbnRyb2xsZXIgdmlk
ZW9FbGVtZW50XSk6CisgICAgICAgICgtW1dlYlZpZGVvRnVsbHNjcmVlbkNvbnRyb2xsZXIgc2V0
VmlkZW9FbGVtZW50Ol0pOgorICAgICAgICAqIFdlYlZpZXcvV2ViVmlkZW9GdWxsc2NyZWVuSFVE
V2luZG93Q29udHJvbGxlci5oOgorICAgICAgICAqIFdlYlZpZXcvV2ViVmlldy5tbToKKyAgICAg
ICAgKC1bV2ViVmlldyBwYWdlXSk6CisgICAgICAgICgtW1dlYlZpZXcgX2VudGVyVmlkZW9GdWxs
c2NyZWVuRm9yVmlkZW9FbGVtZW50Om1vZGU6XSk6CisgICAgICAgICgtW1dlYlZpZXcgX3NldFVw
UGxheWJhY2tDb250cm9sc01hbmFnZXJGb3JNZWRpYUVsZW1lbnQ6XSk6CisgICAgICAgICgtW1dl
YlZpZXcgX3N1cHBvcnRzRnVsbFNjcmVlbkZvckVsZW1lbnQ6d2l0aEtleWJvYXJkOl0pOgorICAg
ICAgICAoLVtXZWJWaWV3IF9lbnRlckZ1bGxTY3JlZW5Gb3JFbGVtZW50Ol0pOgorICAgICAgICAo
LVtXZWJWaWV3IF9leGl0RnVsbFNjcmVlbkZvckVsZW1lbnQ6XSk6CisgICAgICAgICogV2ViVmll
dy9XZWJWaWV3SW50ZXJuYWwuaDoKKwogMjAyMC0wMS0wNyAgQ29tbWl0IFF1ZXVlICA8Y29tbWl0
LXF1ZXVlQHdlYmtpdC5vcmc+CiAKICAgICAgICAgVW5yZXZpZXdlZCwgcm9sbGluZyBvdXQgcjI1
NDEzMi4KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvSlNXcmFwcGVyTWFw
Lm1tIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU1dyYXBwZXJNYXAubW0KaW5kZXggMjhj
MjMzZWExODY5NjEzNWVkMTEzMWQ5NjBiYWZiNjY5Y2EzMzg2Yy4uNzIwYmIxYmMzNDcxNTZiYjQ2
M2M2ZTg1MzNhNzlmNzQ5MWM1NTMwYiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L0FQSS9KU1dyYXBwZXJNYXAubW0KKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU1dy
YXBwZXJNYXAubW0KQEAgLTM5MCw3ICszOTAsNyBAQCBzdGF0aWMgdm9pZCBjb3B5UHJvdG90eXBl
UHJvcGVydGllcyhKU0NvbnRleHQgKmNvbnRleHQsIENsYXNzIG9iamNDbGFzcywgUHJvdG9jbwog
QGludGVyZmFjZSBKU09iakNDbGFzc0luZm8gOiBOU09iamVjdCB7CiAgICAgQ2xhc3MgbV9jbGFz
czsKICAgICBib29sIG1fYmxvY2s7Ci0gICAgSlNDbGFzc1JlZiBtX2NsYXNzUmVmOworICAgIE5h
a2VkUHRyPE9wYXF1ZUpTQ2xhc3M+IG1fY2xhc3NSZWY7CiAgICAgSlNDOjpXZWFrPEpTQzo6SlNP
YmplY3Q+IG1fcHJvdG90eXBlOwogICAgIEpTQzo6V2VhazxKU0M6OkpTT2JqZWN0PiBtX2NvbnN0
cnVjdG9yOwogICAgIEpTQzo6V2VhazxKU0M6OlN0cnVjdHVyZT4gbV9zdHJ1Y3R1cmU7CkBAIC00
MjQsNyArNDI0LDcgQEAgLSAoaW5zdGFuY2V0eXBlKWluaXRGb3JDbGFzczooQ2xhc3MpY2xzCiAK
IC0gKHZvaWQpZGVhbGxvYwogewotICAgIEpTQ2xhc3NSZWxlYXNlKG1fY2xhc3NSZWYpOworICAg
IEpTQ2xhc3NSZWxlYXNlKG1fY2xhc3NSZWYuZ2V0KCkpOwogICAgIFtzdXBlciBkZWFsbG9jXTsK
IH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dURi9XVEYueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
aiBiL1NvdXJjZS9XVEYvV1RGLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggZDAwNDBj
OTczYjNhZTIxMWZlYTRhY2E3YjQwZGYxMmY5NDBmMDQwZi4uYTYzZGJkY2IzNWMzN2U5OWJiNDUx
YmQ4NjAwNjNmM2YzZjc5ODFlZiAxMDA2NDQKLS0tIGEvU291cmNlL1dURi9XVEYueGNvZGVwcm9q
L3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV1RGL1dURi54Y29kZXByb2ovcHJvamVjdC5w
Ynhwcm9qCkBAIC02ODksNiArNjg5LDcgQEAKIAkJRTMxNDlBM0EyMjhCRENBQjAwQkZBNkM3IC8q
IENvbmN1cnJlbnRCdWZmZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRo
ID0gQ29uY3VycmVudEJ1ZmZlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUUz
MUJERTI4MjJFOTEzQ0MwMDI5QjEwNSAvKiBNYWNoVk1TUEkuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gTWFjaFZNU1BJLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CUUzMjAwQUI0MUU5QTUzNkQwMDNCNTlEMiAvKiBQbGF0Zm9ybVJlZ2lzdGVycy5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBQbGF0Zm9ybVJlZ2lzdGVycy5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OworCQlFMzJBMjA3MzIzQzU5MDJEMDAzNEEwOTIgLyogTmFrZWRSZWYu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTmFrZWRSZWYuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRTMzRDVGODcxRkJFRDY2NzAwQkY2MjVFIC8qIFJlY3Vyc2Fi
bGVMYW1iZGEuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUmVjdXJzYWJsZUxh
bWJkYS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlFMzRDRDBEMDIyODEwQTAyMDAy
MEQyOTkgLyogUGFja2VkLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFBhY2tlZC5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQlFMzYwQzc2NDIxMjdCODVCMDBDOTBGMEUgLyogVW5hbGlnbmVkQWNj
ZXNzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFVuYWxpZ25lZEFjY2Vzcy5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTA4Myw2ICsxMDg0LDcgQEAKIAkJCQkw
RjY2QjI4MjFEQzk3QkFCMDA0QTFEM0YgLyogTW9ub3RvbmljVGltZS5jcHAgKi8sCiAJCQkJMEY2
NkIyODMxREM5N0JBQjAwNEExRDNGIC8qIE1vbm90b25pY1RpbWUuaCAqLywKIAkJCQlGRTgyMjUz
MDFCMkExRTVCMDBCQTY4RkQgLyogTmFrZWRQdHIuaCAqLywKKwkJCQlFMzJBMjA3MzIzQzU5MDJE
MDAzNEEwOTIgLyogTmFrZWRSZWYuaCAqLywKIAkJCQkwRjVCRjE2NTFGMjMxNzgzMDAyOUQ5MUQg
LyogTmF0dXJhbExvb3BzLmggKi8sCiAJCQkJMUEzRjZCRTYxNzRBREEyMTAwQjJFRUE3IC8qIE5l
dmVyRGVzdHJveWVkLmggKi8sCiAJCQkJMEYwRDg1QjMxNzIzNENCMTAwMzM4MjEwIC8qIE5vTG9j
ay5oICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvQ01ha2VMaXN0cy50eHQgYi9Tb3Vy
Y2UvV1RGL3d0Zi9DTWFrZUxpc3RzLnR4dAppbmRleCA2YTgyNjgyYWJkMjhkY2M2YmNiZWYzNjBl
OTYzNGQ1YzRjODQwMzMwLi5hY2JhNDAwZjYwZTIwOTYwM2FmZTcwN2EzNmFiOGE0NjcwYWM1MDg5
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9DTWFrZUxpc3RzLnR4dAorKysgYi9Tb3VyY2Uv
V1RGL3d0Zi9DTWFrZUxpc3RzLnR4dApAQCAtMTM5LDYgKzEzOSw3IEBAIHNldChXVEZfUFVCTElD
X0hFQURFUlMKICAgICBNZXRhQWxsb2NhdG9yUHRyLmgKICAgICBNb25vdG9uaWNUaW1lLmgKICAg
ICBOYWtlZFB0ci5oCisgICAgTmFrZWRSZWYuaAogICAgIE5hdHVyYWxMb29wcy5oCiAgICAgTmV2
ZXJEZXN0cm95ZWQuaAogICAgIE5vTG9jay5oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9O
YWtlZFJlZi5oIGIvU291cmNlL1dURi93dGYvTmFrZWRSZWYuaApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45NTA1NGQz
NGFkMDNmY2M3NzJlNTE0ZDYyMWFmMmYxMzE3YzY5MGRmCi0tLSAvZGV2L251bGwKKysrIGIvU291
cmNlL1dURi93dGYvTmFrZWRSZWYuaApAQCAtMCwwICsxLDEyMSBAQAorLyoKKyAqIENvcHlyaWdo
dCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Yg
c291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgor
ICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5k
L29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgor
ICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQg
QU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElU
WSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVE
LiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJ
QUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBF
WEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VT
OyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQ
VElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBU
SEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaW5jbHVkZSA8
d3RmL0R1bWJQdHJUcmFpdHMuaD4KKyNpbmNsdWRlIDx3dGYvRmFzdE1hbGxvYy5oPgorCituYW1l
c3BhY2UgV1RGIHsKKworLy8gVGhlIHB1cnBvc2Ugb2YgdGhpcyBjbGFzcyBpcyB0byBlbnN1cmUg
dGhhdCB0aGUgd3JhcHBlZCBwb2ludGVyIHdpbGwgbmV2ZXIgYmUKKy8vIHVzZWQgdW5pbml0aWFs
aXplZC4KKwordGVtcGxhdGUgPHR5cGVuYW1lIFQ+IGNsYXNzIE5ha2VkUmVmIHsKKyAgICBXVEZf
TUFLRV9GQVNUX0FMTE9DQVRFRDsKK3B1YmxpYzoKKyAgICBBTFdBWVNfSU5MSU5FIE5ha2VkUmVm
KFQmIHJlZikgOiBtX3B0cigmcmVmKSB7IH0KKyAgICBBTFdBWVNfSU5MSU5FIE5ha2VkUmVmKGNv
bnN0IE5ha2VkUmVmJikgPSBkZWxldGU7CisgICAgdGVtcGxhdGU8dHlwZW5hbWUgVT4gTmFrZWRS
ZWYoY29uc3QgTmFrZWRSZWY8VT4mKSA9IGRlbGV0ZTsKKworICAgIEFMV0FZU19JTkxJTkUgTmFr
ZWRSZWYoTmFrZWRSZWYmJiBvdGhlcikKKyAgICAgICAgOiBtX3B0cigmb3RoZXIubGVha1JlZigp
KQorICAgIHsKKyAgICAgICAgQVNTRVJUKG1fcHRyKTsKKyAgICB9CisKKyAgICB0ZW1wbGF0ZTx0
eXBlbmFtZSBVPgorICAgIE5ha2VkUmVmKE5ha2VkUmVmPFU+JiYgb3RoZXIpCisgICAgICAgIDog
bV9wdHIoJm90aGVyLmxlYWtSZWYoKSkKKyAgICB7CisgICAgICAgIEFTU0VSVChtX3B0cik7Cisg
ICAgfQorCisgICAgQUxXQVlTX0lOTElORSBUKiBvcGVyYXRvci0+KCkgY29uc3QgeyBBU1NFUlQo
bV9wdHIpOyByZXR1cm4gbV9wdHI7IH0KKyAgICBUKiBwdHIoKSBjb25zdCBSRVRVUk5TX05PTk5V
TEwgeyBBU1NFUlQobV9wdHIpOyByZXR1cm4gbV9wdHI7IH0KKyAgICBUJiBnZXQoKSBjb25zdCB7
IHJldHVybiAqbV9wdHI7IH0KKyAgICBvcGVyYXRvciBUJigpIGNvbnN0IHsgQVNTRVJUKG1fcHRy
KTsgcmV0dXJuICptX3B0cjsgfQorICAgIGJvb2wgb3BlcmF0b3IhKCkgY29uc3QgeyBBU1NFUlQo
bV9wdHIpOyByZXR1cm4gISptX3B0cjsgfQorCisgICAgTmFrZWRSZWYgY29weVJlZigpICYmID0g
ZGVsZXRlOworICAgIE5ha2VkUmVmIGNvcHlSZWYoKSBjb25zdCAmIFdBUk5fVU5VU0VEX1JFVFVS
TiB7IHJldHVybiBOYWtlZFJlZigqbV9wdHIpOyB9CisKKyAgICBOYWtlZFJlZiYgb3BlcmF0b3I9
KFQmKTsKKyAgICBOYWtlZFJlZiYgb3BlcmF0b3I9KE5ha2VkUmVmJiYpOworICAgIHRlbXBsYXRl
PHR5cGVuYW1lIFU+IE5ha2VkUmVmJiBvcGVyYXRvcj0oTmFrZWRSZWY8VT4mJik7CisKKyAgICAv
LyBVc2UgY29weVJlZigpIGFuZCB0aGUgbW92ZSBhc3NpZ25tZW50IG9wZXJhdG9ycyBpbnN0ZWFk
LgorICAgIE5ha2VkUmVmJiBvcGVyYXRvcj0oY29uc3QgTmFrZWRSZWYmKSA9IGRlbGV0ZTsKKyAg
ICB0ZW1wbGF0ZTx0eXBlbmFtZSBYPiBOYWtlZFJlZiYgb3BlcmF0b3I9KGNvbnN0IE5ha2VkUmVm
PFg+JikgPSBkZWxldGU7CisKKyAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBVPiB2b2lkIHN3YXAoTmFr
ZWRSZWY8VT4mKTsKKworICAgIFQmIGxlYWtSZWYoKSBXQVJOX1VOVVNFRF9SRVRVUk4KKyAgICB7
CisgICAgICAgIEFTU0VSVChtX3B0cik7CisgICAgICAgIFQmIHJlc3VsdCA9ICpEdW1iUHRyVHJh
aXRzPFQ+OjpleGNoYW5nZShtX3B0ciwgbnVsbHB0cik7CisgICAgICAgIHJldHVybiByZXN1bHQ7
CisgICAgfQorCitwcml2YXRlOgorICAgIFQqIG1fcHRyOworfTsKKwordGVtcGxhdGU8dHlwZW5h
bWUgVD4gaW5saW5lIE5ha2VkUmVmPFQ+JiBOYWtlZFJlZjxUPjo6b3BlcmF0b3I9KE5ha2VkUmVm
JiYgcmVmZXJlbmNlKQoreworICAgIE5ha2VkUmVmIG1vdmVkUmVmZXJlbmNlID0gV1RGTW92ZShy
ZWZlcmVuY2UpOworICAgIHN3YXAobW92ZWRSZWZlcmVuY2UpOworICAgIHJldHVybiAqdGhpczsK
K30KKwordGVtcGxhdGU8dHlwZW5hbWUgVD4gaW5saW5lIE5ha2VkUmVmPFQ+JiBOYWtlZFJlZjxU
Pjo6b3BlcmF0b3I9KFQmIHJlZikKK3sKKyAgICBOYWtlZFJlZiBjb3BpZWRSZWZlcmVuY2UgPSBy
ZWY7CisgICAgc3dhcChjb3BpZWRSZWZlcmVuY2UpOworICAgIHJldHVybiAqdGhpczsKK30KKwor
dGVtcGxhdGU8dHlwZW5hbWUgVD4gdGVtcGxhdGU8dHlwZW5hbWUgVT4gaW5saW5lIE5ha2VkUmVm
PFQ+JiBOYWtlZFJlZjxUPjo6b3BlcmF0b3I9KE5ha2VkUmVmPFU+JiYgb3RoZXIpCit7CisgICAg
TmFrZWRSZWYgcmVmID0gV1RGTW92ZShvdGhlcik7CisgICAgc3dhcChyZWYpOworICAgIHJldHVy
biAqdGhpczsKK30KKwordGVtcGxhdGU8Y2xhc3MgVD4KK3RlbXBsYXRlPGNsYXNzIFU+Citpbmxp
bmUgdm9pZCBOYWtlZFJlZjxUPjo6c3dhcChOYWtlZFJlZjxVPiYgb3RoZXIpCit7CisgICAgc3Rk
Ojpzd2FwKG1fcHRyLCBvdGhlci5tX3B0cik7Cit9CisKK3RlbXBsYXRlPGNsYXNzIFQsIGNsYXNz
IFU+IGlubGluZSB2b2lkIHN3YXAoTmFrZWRSZWY8VD4mIGEsIE5ha2VkUmVmPFU+JiBiKQorewor
ICAgIGEuc3dhcChiKTsKK30KKworfSAvLyBuYW1lc3BhY2UgV1RGCisKK3VzaW5nIFdURjo6TmFr
ZWRSZWY7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL21hYy9XZWJDb3JlRnJhbWVW
aWV3LmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL21hYy9XZWJDb3JlRnJhbWVWaWV3LmgKaW5kZXgg
Mjg0ZTJhNWQ2ZjRkZTc0NDUyN2JhOTM5N2E0ZmM3ZWMzNGUyN2E0ZC4uZTBmOWYxNGY3ODQ1Njc4
Njg4MjU1NzdhNjM5MGQ1MGIzMWRmODUzNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFn
ZS9tYWMvV2ViQ29yZUZyYW1lVmlldy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvbWFjL1dl
YkNvcmVGcmFtZVZpZXcuaApAQCAtMjUsNiArMjUsNyBAQAogCiAjaW1wb3J0ICJTY3JvbGxUeXBl
cy5oIgogI2ltcG9ydCA8d3RmL1BsYXRmb3JtLmg+CisjaW1wb3J0IDx3dGYvTmFrZWRQdHIuaD4K
IAogI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCiAjaW1wb3J0ICJXQUtBcHBLaXRTdHVicy5oIgpA
QCAtNDQsNSArNDUsNSBAQCBjbGFzcyBGcmFtZTsKIEBlbmQKIAogQHByb3RvY29sIFdlYkNvcmVG
cmFtZVZpZXcKLS0gKFdlYkNvcmU6OkZyYW1lKilfd2ViX2ZyYW1lOworLSAoTmFrZWRQdHI8V2Vi
Q29yZTo6RnJhbWU+KV93ZWJfZnJhbWU7CiBAZW5kCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9XZWJHTExheWVyLmggYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9XZWJHTExheWVyLmgKaW5kZXggZjc2NzkwOTc0N2ZlZmY0
ODcxNGIxYmFkMDlmMTMyYmRlYjhiZjY1ZS4uOGI1NjY2NmExYmM4NTAzZjAxMjYzODgxMTAyZGU1
MTcwMWU1MGQzNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Y29jb2EvV2ViR0xMYXllci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2NvY29hL1dlYkdMTGF5ZXIuaApAQCAtMjgsNiArMjgsNyBAQAogI2ltcG9ydCAiSU9TdXJmYWNl
LmgiCiAjaW1wb3J0ICJJbnRTaXplLmgiCiAjaW1wb3J0IDxRdWFydHpDb3JlL1F1YXJ0ekNvcmUu
aD4KKyNpbXBvcnQgPHd0Zi9OYWtlZFB0ci5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiBjbGFz
cyBHcmFwaGljc0xheWVyOwpAQCAtNDYsNyArNDcsNyBAQCBBTExPV19ERVBSRUNBVEVEX0RFQ0xB
UkFUSU9OU19CRUdJTgogI2Vycm9yIFVuc3VwcG9ydGVkIHBsYXRmb3JtCiAjZW5kaWYKIHsKLSAg
ICBXZWJDb3JlOjpHcmFwaGljc0NvbnRleHRHTE9wZW5HTCogX2NvbnRleHQ7CisgICAgTmFrZWRQ
dHI8V2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0R0xPcGVuR0w+IF9jb250ZXh0OwogICAgIGZsb2F0
IF9kZXZpY2VQaXhlbFJhdGlvOwogI2lmIEhBVkUoSU9TVVJGQUNFKSAmJiAoVVNFKE9QRU5HTCkg
fHwgVVNFKEFOR0xFKSkKICAgICBzdGQ6OnVuaXF1ZV9wdHI8V2ViQ29yZTo6SU9TdXJmYWNlPiBf
Y29udGVudHNCdWZmZXI7CkBAIC02NSw5ICs2Niw5IEBAIEFMTE9XX0RFUFJFQ0FURURfREVDTEFS
QVRJT05TX0JFR0lOCiAjZW5kaWYKIH0KIAotQHByb3BlcnR5IChub25hdG9taWMpIFdlYkNvcmU6
OkdyYXBoaWNzQ29udGV4dEdMT3BlbkdMKiBjb250ZXh0OworQHByb3BlcnR5IChub25hdG9taWMp
IE5ha2VkUHRyPFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dEdMT3BlbkdMPiBjb250ZXh0OwogCi0t
IChpZClpbml0V2l0aEdyYXBoaWNzQ29udGV4dEdMOihXZWJDb3JlOjpHcmFwaGljc0NvbnRleHRH
TE9wZW5HTCopY29udGV4dDsKKy0gKGlkKWluaXRXaXRoR3JhcGhpY3NDb250ZXh0R0w6KE5ha2Vk
UHRyPFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dEdMT3BlbkdMPiljb250ZXh0OwogCiAtIChDR0lt
YWdlUmVmKWNvcHlJbWFnZVNuYXBzaG90V2l0aENvbG9yU3BhY2U6KENHQ29sb3JTcGFjZVJlZilj
b2xvclNwYWNlOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9jb2NvYS9XZWJHTExheWVyLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Y29jb2EvV2ViR0xMYXllci5tbQppbmRleCAyOTIwMTZhYzE0ZWFjMmFhOGZlNGQxNWQyOGY5NGIw
MmUyZDY3NWNjLi4xZWMwOGU2Njc3NTNlNjE2MWY4MmU4MzBkZWMyMmYxZjg1MTZkYWZiIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9XZWJHTExheWVy
Lm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL1dlYkdMTGF5
ZXIubW0KQEAgLTYxLDcgKzYxLDcgQEAgQGltcGxlbWVudGF0aW9uIFdlYkdMTGF5ZXIKIAogQHN5
bnRoZXNpemUgY29udGV4dD1fY29udGV4dDsKIAotLShpZClpbml0V2l0aEdyYXBoaWNzQ29udGV4
dEdMOihXZWJDb3JlOjpHcmFwaGljc0NvbnRleHRHTE9wZW5HTCopY29udGV4dAorLShpZClpbml0
V2l0aEdyYXBoaWNzQ29udGV4dEdMOihOYWtlZFB0cjxXZWJDb3JlOjpHcmFwaGljc0NvbnRleHRH
TE9wZW5HTD4pY29udGV4dAogewogICAgIF9jb250ZXh0ID0gY29udGV4dDsKICAgICBzZWxmID0g
W3N1cGVyIGluaXRdOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL1dl
YlZpZGVvRnVsbHNjcmVlbkNvbnRyb2xsZXJBVktpdC5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vaW9zL1dlYlZpZGVvRnVsbHNjcmVlbkNvbnRyb2xsZXJBVktpdC5oCmluZGV4IDU0MDlkNTAy
MDNlMDAyYjExMGQ4ZmM1ZDlkYWE0ZDM5YjZjNGJiZWMuLmEwN2VkMWQ2MjA2M2U4NjI5ZTNiMDVk
MTBkOTFjZGM3ZjUyZmE3NWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lv
cy9XZWJWaWRlb0Z1bGxzY3JlZW5Db250cm9sbGVyQVZLaXQuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9pb3MvV2ViVmlkZW9GdWxsc2NyZWVuQ29udHJvbGxlckFWS2l0LmgKQEAgLTI5
LDYgKzI5LDcgQEAKICNpZiBQTEFURk9STShJT1NfRkFNSUxZKQogCiAjaW1wb3J0IDxXZWJDb3Jl
L0hUTUxNZWRpYUVsZW1lbnRFbnVtcy5oPgorI2ltcG9ydCA8d3RmL05ha2VkUHRyLmg+CiAKIE9C
SkNfQ0xBU1MgVUlWaWV3OwogCkBAIC0zNyw4ICszOCw4IEBAIGNsYXNzIEhUTUxWaWRlb0VsZW1l
bnQ7CiB9CiAKIFdFQkNPUkVfRVhQT1JUIEBpbnRlcmZhY2UgV2ViVmlkZW9GdWxsc2NyZWVuQ29u
dHJvbGxlciA6IE5TT2JqZWN0Ci0tICh2b2lkKXNldFZpZGVvRWxlbWVudDooV2ViQ29yZTo6SFRN
TFZpZGVvRWxlbWVudCopdmlkZW9FbGVtZW50OwotLSAoV2ViQ29yZTo6SFRNTFZpZGVvRWxlbWVu
dCopdmlkZW9FbGVtZW50OworLSAodm9pZClzZXRWaWRlb0VsZW1lbnQ6KE5ha2VkUHRyPFdlYkNv
cmU6OkhUTUxWaWRlb0VsZW1lbnQ+KXZpZGVvRWxlbWVudDsKKy0gKE5ha2VkUHRyPFdlYkNvcmU6
OkhUTUxWaWRlb0VsZW1lbnQ+KXZpZGVvRWxlbWVudDsKIC0gKHZvaWQpZW50ZXJGdWxsc2NyZWVu
OihVSVZpZXcgKil2aWV3IG1vZGU6KFdlYkNvcmU6OkhUTUxNZWRpYUVsZW1lbnRFbnVtczo6Vmlk
ZW9GdWxsc2NyZWVuTW9kZSltb2RlOwogLSAodm9pZClleGl0RnVsbHNjcmVlbjsKIC0gKHZvaWQp
cmVxdWVzdEhpZGVBbmRFeGl0RnVsbHNjcmVlbjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2lvcy9XZWJWaWRlb0Z1bGxzY3JlZW5Db250cm9sbGVyQVZLaXQubW0gYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3MvV2ViVmlkZW9GdWxsc2NyZWVuQ29udHJvbGxlckFWS2l0
Lm1tCmluZGV4IGY4YTM0NzQ2MDYxM2UxYjY2YTBhNzIzODRhYmYyZmE0MjcyNzdiNmQuLmUzZTlk
OWFhYWEzOTEyMGM5NmE1NDY2OGY3NGJkYzVmNjE4YjMzMmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2lvcy9XZWJWaWRlb0Z1bGxzY3JlZW5Db250cm9sbGVyQVZLaXQubW0K
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL1dlYlZpZGVvRnVsbHNjcmVlbkNvbnRy
b2xsZXJBVktpdC5tbQpAQCAtNTEsMTIgKzUxLDEyIEBAIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3Jl
OwogI2lmICFIQVZFKEFWS0lUKQogCiBAaW1wbGVtZW50YXRpb24gV2ViVmlkZW9GdWxsc2NyZWVu
Q29udHJvbGxlcgotLSAodm9pZClzZXRWaWRlb0VsZW1lbnQ6KFdlYkNvcmU6OkhUTUxWaWRlb0Vs
ZW1lbnQqKXZpZGVvRWxlbWVudAorLSAodm9pZClzZXRWaWRlb0VsZW1lbnQ6KE5ha2VkUHRyPFdl
YkNvcmU6OkhUTUxWaWRlb0VsZW1lbnQ+KXZpZGVvRWxlbWVudAogewogICAgIFVOVVNFRF9QQVJB
TSh2aWRlb0VsZW1lbnQpOwogfQogCi0tIChXZWJDb3JlOjpIVE1MVmlkZW9FbGVtZW50Kil2aWRl
b0VsZW1lbnQKKy0gKE5ha2VkUHRyPFdlYkNvcmU6OkhUTUxWaWRlb0VsZW1lbnQ+KXZpZGVvRWxl
bWVudAogewogICAgIHJldHVybiBudWxscHRyOwogfQpAQCAtMTAyMywxMiArMTAyMywxMiBAQCAt
IChpbnN0YW5jZXR5cGUpaW5pdAogICAgIHJldHVybiBzZWxmOwogfQogCi0tICh2b2lkKXNldFZp
ZGVvRWxlbWVudDooSFRNTFZpZGVvRWxlbWVudCopdmlkZW9FbGVtZW50CistICh2b2lkKXNldFZp
ZGVvRWxlbWVudDooTmFrZWRQdHI8SFRNTFZpZGVvRWxlbWVudD4pdmlkZW9FbGVtZW50CiB7CiAg
ICAgX3ZpZGVvRWxlbWVudCA9IHZpZGVvRWxlbWVudDsKIH0KIAotLSAoSFRNTFZpZGVvRWxlbWVu
dCopdmlkZW9FbGVtZW50CistIChOYWtlZFB0cjxIVE1MVmlkZW9FbGVtZW50Pil2aWRlb0VsZW1l
bnQKIHsKICAgICByZXR1cm4gX3ZpZGVvRWxlbWVudC5nZXQoKTsKIH0KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9TY3JvbGxBbmltYXRvck1hYy5tbSBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL21hYy9TY3JvbGxBbmltYXRvck1hYy5tbQppbmRleCBmNTkxNzY3MmVl
ZmRmMWY1MjNjZGY2OTI0NmIyMzg2MDQ5NGZiMmEyLi40MDQyNjFjZmM0YmQ4NDlkZWY0NDcxNDU3
MDhlMTg0NWFlMGY0NmRiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMv
U2Nyb2xsQW5pbWF0b3JNYWMubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1Nj
cm9sbEFuaW1hdG9yTWFjLm1tCkBAIC00MCw2ICs0MCw3IEBACiAjaW5jbHVkZSAiU2Nyb2xsYmFy
VGhlbWVNYWMuaCIKICNpbmNsdWRlIDxwYWwvc3BpL21hYy9OU1Njcm9sbGVySW1wU1BJLmg+CiAj
aW5jbHVkZSA8d3RmL0Jsb2NrT2JqQ0V4Y2VwdGlvbnMuaD4KKyNpbmNsdWRlIDx3dGYvTmFrZWRQ
dHIuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9UZXh0U3RyZWFtLmg+CiAKIG5hbWVzcGFjZSBXZWJD
b3JlIHsKQEAgLTgxLDkgKzgyLDkgQEAgQGVuZAogCiBAaW50ZXJmYWNlIFdlYlNjcm9sbEFuaW1h
dGlvbkhlbHBlckRlbGVnYXRlIDogTlNPYmplY3QKIHsKLSAgICBXZWJDb3JlOjpTY3JvbGxBbmlt
YXRvck1hYyogX2FuaW1hdG9yOworICAgIE5ha2VkUHRyPFdlYkNvcmU6OlNjcm9sbEFuaW1hdG9y
TWFjPiBfYW5pbWF0b3I7CiB9Ci0tIChpZClpbml0V2l0aFNjcm9sbEFuaW1hdG9yOihXZWJDb3Jl
OjpTY3JvbGxBbmltYXRvck1hYyopc2Nyb2xsQW5pbWF0b3I7CistIChpZClpbml0V2l0aFNjcm9s
bEFuaW1hdG9yOihOYWtlZFB0cjxXZWJDb3JlOjpTY3JvbGxBbmltYXRvck1hYz4pc2Nyb2xsQW5p
bWF0b3I7CiBAZW5kCiAKIHN0YXRpYyBOU1NpemUgYWJzKE5TU2l6ZSBzaXplKQpAQCAtOTgsNyAr
OTksNyBAQCBzdGF0aWMgTlNTaXplIGFicyhOU1NpemUgc2l6ZSkKIAogQGltcGxlbWVudGF0aW9u
IFdlYlNjcm9sbEFuaW1hdGlvbkhlbHBlckRlbGVnYXRlCiAKLS0gKGlkKWluaXRXaXRoU2Nyb2xs
QW5pbWF0b3I6KFdlYkNvcmU6OlNjcm9sbEFuaW1hdG9yTWFjKilzY3JvbGxBbmltYXRvcgorLSAo
aWQpaW5pdFdpdGhTY3JvbGxBbmltYXRvcjooTmFrZWRQdHI8V2ViQ29yZTo6U2Nyb2xsQW5pbWF0
b3JNYWM+KXNjcm9sbEFuaW1hdG9yCiB7CiAgICAgc2VsZiA9IFtzdXBlciBpbml0XTsKICAgICBp
ZiAoIXNlbGYpCkBAIC0xMTAsNyArMTExLDcgQEAgLSAoaWQpaW5pdFdpdGhTY3JvbGxBbmltYXRv
cjooV2ViQ29yZTo6U2Nyb2xsQW5pbWF0b3JNYWMqKXNjcm9sbEFuaW1hdG9yCiAKIC0gKHZvaWQp
aW52YWxpZGF0ZQogewotICAgIF9hbmltYXRvciA9IDA7CisgICAgX2FuaW1hdG9yID0gbnVsbHB0
cjsKIH0KIAogLSAoTlNSZWN0KWJvdW5kcwpAQCAtNDczLDcgKzQ3NCw3IEBAIC0gKHZvaWQpY2Fu
Y2VsQW5pbWF0aW9ucwogICAgIEVORF9CTE9DS19PQkpDX0VYQ0VQVElPTlM7CiB9CiAKLS0gKFNj
cm9sbEFuaW1hdG9yTWFjKilzY3JvbGxBbmltYXRvcgorLSAoTmFrZWRQdHI8U2Nyb2xsQW5pbWF0
b3JNYWM+KXNjcm9sbEFuaW1hdG9yCiB7CiAgICAgcmV0dXJuICZzdGF0aWNfY2FzdDxTY3JvbGxB
bmltYXRvck1hYyY+KF9zY3JvbGxiYXItPnNjcm9sbGFibGVBcmVhKCkuc2Nyb2xsQW5pbWF0b3Io
KSk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2NvY29hL05l
dHdvcmtTZXNzaW9uQ29jb2EubW0gYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2NvY29h
L05ldHdvcmtTZXNzaW9uQ29jb2EubW0KaW5kZXggODJmNzkxYzk1YTUxNmFhMjEwZmI3ZTQ2ZGUw
YTM4OWZkZjhlNzU2NC4uOTc3ZGJlZDU4ZTM1ODZmNmYwZmZjMWFiNTI0YTYxMWVhM2U5ZTNhOSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9jb2NvYS9OZXR3b3JrU2Vz
c2lvbkNvY29hLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY29jb2EvTmV0
d29ya1Nlc3Npb25Db2NvYS5tbQpAQCAtNTAsNiArNTAsNyBAQAogI2ltcG9ydCA8cGFsL3NwaS9j
Zi9DRk5ldHdvcmtTUEkuaD4KICNpbXBvcnQgPHd0Zi9CbG9ja1B0ci5oPgogI2ltcG9ydCA8d3Rm
L01haW5UaHJlYWQuaD4KKyNpbXBvcnQgPHd0Zi9OYWtlZFJlZi5oPgogI2ltcG9ydCA8d3RmL05l
dmVyRGVzdHJveWVkLmg+CiAjaW1wb3J0IDx3dGYvT2JqQ1J1bnRpbWVFeHRyYXMuaD4KICNpbXBv
cnQgPHd0Zi9Qcm9jZXNzUHJpdmlsZWdlLmg+CkBAIC00MDEsMjAgKzQwMiwyMCBAQCBAaW50ZXJm
YWNlIFdLTmV0d29ya1Nlc3Npb25EZWxlZ2F0ZSA6IE5TT2JqZWN0IDxOU1VSTFNlc3Npb25EYXRh
RGVsZWdhdGUKICAgICBib29sIF93aXRoQ3JlZGVudGlhbHM7CiB9CiAKLS0gKGlkKWluaXRXaXRo
TmV0d29ya1Nlc3Npb246KFdlYktpdDo6TmV0d29ya1Nlc3Npb25Db2NvYSYpc2Vzc2lvbiB3cmFw
cGVyOihXZWJLaXQ6OlNlc3Npb25XcmFwcGVyJilzZXNzaW9uV3JhcHBlciB3aXRoQ3JlZGVudGlh
bHM6KGJvb2wpd2l0aENyZWRlbnRpYWxzOworLSAoaWQpaW5pdFdpdGhOZXR3b3JrU2Vzc2lvbjoo
TmFrZWRSZWY8V2ViS2l0OjpOZXR3b3JrU2Vzc2lvbkNvY29hPilzZXNzaW9uIHdyYXBwZXI6KFdl
YktpdDo6U2Vzc2lvbldyYXBwZXImKXNlc3Npb25XcmFwcGVyIHdpdGhDcmVkZW50aWFsczooYm9v
bCl3aXRoQ3JlZGVudGlhbHM7CiAtICh2b2lkKXNlc3Npb25JbnZhbGlkYXRlZDsKIAogQGVuZAog
CiBAaW1wbGVtZW50YXRpb24gV0tOZXR3b3JrU2Vzc2lvbkRlbGVnYXRlCiAKLS0gKGlkKWluaXRX
aXRoTmV0d29ya1Nlc3Npb246KFdlYktpdDo6TmV0d29ya1Nlc3Npb25Db2NvYSYpc2Vzc2lvbiB3
cmFwcGVyOihXZWJLaXQ6OlNlc3Npb25XcmFwcGVyJilzZXNzaW9uV3JhcHBlciB3aXRoQ3JlZGVu
dGlhbHM6KGJvb2wpd2l0aENyZWRlbnRpYWxzCistIChpZClpbml0V2l0aE5ldHdvcmtTZXNzaW9u
OihOYWtlZFJlZjxXZWJLaXQ6Ok5ldHdvcmtTZXNzaW9uQ29jb2E+KXNlc3Npb24gd3JhcHBlcjoo
V2ViS2l0OjpTZXNzaW9uV3JhcHBlciYpc2Vzc2lvbldyYXBwZXIgd2l0aENyZWRlbnRpYWxzOihi
b29sKXdpdGhDcmVkZW50aWFscwogewogICAgIHNlbGYgPSBbc3VwZXIgaW5pdF07CiAgICAgaWYg
KCFzZWxmKQogICAgICAgICByZXR1cm4gbmlsOwogCi0gICAgX3Nlc3Npb24gPSBtYWtlV2Vha1B0
cihzZXNzaW9uKTsKKyAgICBfc2Vzc2lvbiA9IG1ha2VXZWFrUHRyKHNlc3Npb24uZ2V0KCkpOwog
ICAgIF9zZXNzaW9uV3JhcHBlciA9IG1ha2VXZWFrUHRyKHNlc3Npb25XcmFwcGVyKTsKICAgICBf
d2l0aENyZWRlbnRpYWxzID0gd2l0aENyZWRlbnRpYWxzOwogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1NoYXJlZC9BUEkvQ29jb2EvV0tCcm93c2luZ0NvbnRleHRIYW5kbGUubW0gYi9Tb3Vy
Y2UvV2ViS2l0L1NoYXJlZC9BUEkvQ29jb2EvV0tCcm93c2luZ0NvbnRleHRIYW5kbGUubW0KaW5k
ZXggYWIyZWQ5YmUzMGVhYTc4NTVhMWQzNDQzZjBkNGZjOGM4YjIzOGNlOS4uOWQzZWRmMTcwMDNl
ZjI0NmFmZWI3OGQxNzAzNGQ3Y2E0NGEwM2U4YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9T
aGFyZWQvQVBJL0NvY29hL1dLQnJvd3NpbmdDb250ZXh0SGFuZGxlLm1tCisrKyBiL1NvdXJjZS9X
ZWJLaXQvU2hhcmVkL0FQSS9Db2NvYS9XS0Jyb3dzaW5nQ29udGV4dEhhbmRsZS5tbQpAQCAtMzIs
MTQgKzMyLDE0IEBACiAKIEBpbXBsZW1lbnRhdGlvbiBXS0Jyb3dzaW5nQ29udGV4dEhhbmRsZQog
Ci0tIChpZClfaW5pdFdpdGhQYWdlUHJveHk6KFdlYktpdDo6V2ViUGFnZVByb3h5JilwYWdlCist
IChpZClfaW5pdFdpdGhQYWdlUHJveHk6KE5ha2VkUmVmPFdlYktpdDo6V2ViUGFnZVByb3h5Pilw
YWdlCiB7Ci0gICAgcmV0dXJuIFtzZWxmIF9pbml0V2l0aFBhZ2VQcm94eUlEOnBhZ2UuaWRlbnRp
ZmllcigpIGFuZFdlYlBhZ2VJRDpwYWdlLndlYlBhZ2VJRCgpXTsKKyAgICByZXR1cm4gW3NlbGYg
X2luaXRXaXRoUGFnZVByb3h5SUQ6cGFnZS0+aWRlbnRpZmllcigpIGFuZFdlYlBhZ2VJRDpwYWdl
LT53ZWJQYWdlSUQoKV07CiB9CiAKLS0gKGlkKV9pbml0V2l0aFBhZ2U6KFdlYktpdDo6V2ViUGFn
ZSYpcGFnZQorLSAoaWQpX2luaXRXaXRoUGFnZTooTmFrZWRSZWY8V2ViS2l0OjpXZWJQYWdlPilw
YWdlCiB7Ci0gICAgcmV0dXJuIFtzZWxmIF9pbml0V2l0aFBhZ2VQcm94eUlEOnBhZ2Uud2ViUGFn
ZVByb3h5SWRlbnRpZmllcigpIGFuZFdlYlBhZ2VJRDpwYWdlLmlkZW50aWZpZXIoKV07CisgICAg
cmV0dXJuIFtzZWxmIF9pbml0V2l0aFBhZ2VQcm94eUlEOnBhZ2UtPndlYlBhZ2VQcm94eUlkZW50
aWZpZXIoKSBhbmRXZWJQYWdlSUQ6cGFnZS0+aWRlbnRpZmllcigpXTsKIH0KIAogLSAoaWQpX2lu
aXRXaXRoUGFnZVByb3h5SUQ6KFdlYktpdDo6V2ViUGFnZVByb3h5SWRlbnRpZmllcilwYWdlUHJv
eHlJRCBhbmRXZWJQYWdlSUQ6KFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyKXdlYlBhZ2VJRApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvQVBJL0NvY29hL1dLQnJvd3NpbmdDb250ZXh0
SGFuZGxlSW50ZXJuYWwuaCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0FQSS9Db2NvYS9XS0Jyb3dz
aW5nQ29udGV4dEhhbmRsZUludGVybmFsLmgKaW5kZXggOGRlZDU5ZmI1NTUxOGQyODkzYzc3MWI2
M2VhOWJlYzQyMDY2NTljZS4uYjk4ODRlMzc1MGExOGRlNTk2OWJiMzhjZTUzOGVlZDhlNDI2YWM0
YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvQVBJL0NvY29hL1dLQnJvd3NpbmdD
b250ZXh0SGFuZGxlSW50ZXJuYWwuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9BUEkvQ29j
b2EvV0tCcm93c2luZ0NvbnRleHRIYW5kbGVJbnRlcm5hbC5oCkBAIC0yNiw2ICsyNiw3IEBACiAj
aW1wb3J0ICJXS0Jyb3dzaW5nQ29udGV4dEhhbmRsZS5oIgogI2ltcG9ydCAiV2ViUGFnZVByb3h5
SWRlbnRpZmllci5oIgogI2ltcG9ydCA8V2ViQ29yZS9QYWdlSWRlbnRpZmllci5oPgorI2ltcG9y
dCA8d3RmL05ha2VkUmVmLmg+CiAKIG5hbWVzcGFjZSBXZWJLaXQgewogY2xhc3MgV2ViUGFnZTsK
QEAgLTM3LDcgKzM4LDcgQEAgY2xhc3MgV2ViUGFnZVByb3h5OwogQHByb3BlcnR5IChub25hdG9t
aWMsIHJlYWRvbmx5LCBnZXR0ZXI9X3BhZ2VQcm94eUlEKSBXZWJLaXQ6OldlYlBhZ2VQcm94eUlk
ZW50aWZpZXIgcGFnZVByb3h5SUQ7CiBAcHJvcGVydHkgKG5vbmF0b21pYywgcmVhZG9ubHksIGdl
dHRlcj1fd2ViUGFnZUlEKSBXZWJDb3JlOjpQYWdlSWRlbnRpZmllciB3ZWJQYWdlSUQ7CiAKLS0g
KGlkKV9pbml0V2l0aFBhZ2VQcm94eTooV2ViS2l0OjpXZWJQYWdlUHJveHkmKXBhZ2U7Ci0tIChp
ZClfaW5pdFdpdGhQYWdlOihXZWJLaXQ6OldlYlBhZ2UmKXBhZ2U7CistIChpZClfaW5pdFdpdGhQ
YWdlUHJveHk6KE5ha2VkUmVmPFdlYktpdDo6V2ViUGFnZVByb3h5PilwYWdlOworLSAoaWQpX2lu
aXRXaXRoUGFnZTooTmFrZWRSZWY8V2ViS2l0OjpXZWJQYWdlPilwYWdlOwogLSAoaWQpX2luaXRX
aXRoUGFnZVByb3h5SUQ6KFdlYktpdDo6V2ViUGFnZVByb3h5SWRlbnRpZmllcilwYWdlUHJveHlJ
RCBhbmRXZWJQYWdlSUQ6KFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyKXdlYlBhZ2VJRDsKIEBlbmQK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0FQSS9Db2NvYS9fV0tSZW1vdGVPYmpl
Y3RSZWdpc3RyeS5tbSBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0FQSS9Db2NvYS9fV0tSZW1vdGVP
YmplY3RSZWdpc3RyeS5tbQppbmRleCA0NzRhYjUxNTY3NTExYzYzYjI5NDZmMjdlMGM5NWQ2ZWQ2
ZmQ4MDQzLi41NDEwNDdlZGRmMjgwZTQ2YmRkNzEwOWJmM2EzODE4NWJmNWQ0ZDJlIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9BUEkvQ29jb2EvX1dLUmVtb3RlT2JqZWN0UmVnaXN0
cnkubW0KKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvQVBJL0NvY29hL19XS1JlbW90ZU9iamVj
dFJlZ2lzdHJ5Lm1tCkBAIC0xMDYsMjIgKzEwNiwyMiBAQCAtIChpZClyZW1vdGVPYmplY3RQcm94
eVdpdGhJbnRlcmZhY2U6KF9XS1JlbW90ZU9iamVjdEludGVyZmFjZSAqKWludGVyZmFjZQogICAg
IHJldHVybiByZW1vdGVPYmplY3QuYXV0b3JlbGVhc2UoKTsKIH0KIAotLSAoaWQpX2luaXRXaXRo
V2ViUGFnZTooV2ViS2l0OjpXZWJQYWdlJilwYWdlCistIChpZClfaW5pdFdpdGhXZWJQYWdlOihO
YWtlZFJlZjxXZWJLaXQ6OldlYlBhZ2U+KXBhZ2UKIHsKICAgICBpZiAoIShzZWxmID0gW3N1cGVy
IGluaXRdKSkKICAgICAgICAgcmV0dXJuIG5pbDsKIAotICAgIF9yZW1vdGVPYmplY3RSZWdpc3Ry
eSA9IG1ha2VVbmlxdWU8V2ViS2l0OjpXZWJSZW1vdGVPYmplY3RSZWdpc3RyeT4oc2VsZiwgcGFn
ZSk7CisgICAgX3JlbW90ZU9iamVjdFJlZ2lzdHJ5ID0gbWFrZVVuaXF1ZTxXZWJLaXQ6OldlYlJl
bW90ZU9iamVjdFJlZ2lzdHJ5PihzZWxmLCBwYWdlLmdldCgpKTsKIAogICAgIHJldHVybiBzZWxm
OwogfQogCi0tIChpZClfaW5pdFdpdGhXZWJQYWdlUHJveHk6KFdlYktpdDo6V2ViUGFnZVByb3h5
JilwYWdlCistIChpZClfaW5pdFdpdGhXZWJQYWdlUHJveHk6KE5ha2VkUmVmPFdlYktpdDo6V2Vi
UGFnZVByb3h5PilwYWdlCiB7CiAgICAgaWYgKCEoc2VsZiA9IFtzdXBlciBpbml0XSkpCiAgICAg
ICAgIHJldHVybiBuaWw7CiAKLSAgICBfcmVtb3RlT2JqZWN0UmVnaXN0cnkgPSBtYWtlVW5pcXVl
PFdlYktpdDo6VUlSZW1vdGVPYmplY3RSZWdpc3RyeT4oc2VsZiwgcGFnZSk7CisgICAgX3JlbW90
ZU9iamVjdFJlZ2lzdHJ5ID0gbWFrZVVuaXF1ZTxXZWJLaXQ6OlVJUmVtb3RlT2JqZWN0UmVnaXN0
cnk+KHNlbGYsIHBhZ2UuZ2V0KCkpOwogCiAgICAgcmV0dXJuIHNlbGY7CiB9CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9BUEkvQ29jb2EvX1dLUmVtb3RlT2JqZWN0UmVnaXN0cnlJ
bnRlcm5hbC5oIGIvU291cmNlL1dlYktpdC9TaGFyZWQvQVBJL0NvY29hL19XS1JlbW90ZU9iamVj
dFJlZ2lzdHJ5SW50ZXJuYWwuaAppbmRleCA5NDllNDM4ZjFkNmZmNmZlNzExMzhkMzJjMDg2OTNm
NzQzOWEyZjQ4Li5lYzU5YWQyZDlkOGRlZjcxMDYzMWZiOThlMGQ2NjViYWQxNmZkMTA0IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9BUEkvQ29jb2EvX1dLUmVtb3RlT2JqZWN0UmVn
aXN0cnlJbnRlcm5hbC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0FQSS9Db2NvYS9fV0tS
ZW1vdGVPYmplY3RSZWdpc3RyeUludGVybmFsLmgKQEAgLTI0LDYgKzI0LDcgQEAKICAqLwogCiAj
aW1wb3J0ICJfV0tSZW1vdGVPYmplY3RSZWdpc3RyeS5oIgorI2ltcG9ydCA8d3RmL05ha2VkUmVm
Lmg+CiAKIG5hbWVzcGFjZSBJUEMgewogY2xhc3MgTWVzc2FnZVNlbmRlcjsKQEAgLTQxLDggKzQy
LDggQEAgY2xhc3MgV2ViUGFnZVByb3h5OwogCiBAcHJvcGVydHkgKG5vbmF0b21pYywgcmVhZG9u
bHkpIFdlYktpdDo6UmVtb3RlT2JqZWN0UmVnaXN0cnkmIHJlbW90ZU9iamVjdFJlZ2lzdHJ5Owog
Ci0tIChpZClfaW5pdFdpdGhXZWJQYWdlOihXZWJLaXQ6OldlYlBhZ2UmKW1lc3NhZ2VTZW5kZXI7
Ci0tIChpZClfaW5pdFdpdGhXZWJQYWdlUHJveHk6KFdlYktpdDo6V2ViUGFnZVByb3h5JiltZXNz
YWdlU2VuZGVyOworLSAoaWQpX2luaXRXaXRoV2ViUGFnZTooTmFrZWRSZWY8V2ViS2l0OjpXZWJQ
YWdlPiltZXNzYWdlU2VuZGVyOworLSAoaWQpX2luaXRXaXRoV2ViUGFnZVByb3h5OihOYWtlZFJl
ZjxXZWJLaXQ6OldlYlBhZ2VQcm94eT4pbWVzc2FnZVNlbmRlcjsKIC0gKHZvaWQpX2ludmFsaWRh
dGU7CiAKIC0gKHZvaWQpX3NlbmRJbnZvY2F0aW9uOihOU0ludm9jYXRpb24gKilpbnZvY2F0aW9u
IGludGVyZmFjZTooX1dLUmVtb3RlT2JqZWN0SW50ZXJmYWNlICopaW50ZXJmYWNlOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlldy5tbSBiL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXcubW0KaW5kZXggMWIwNGRi
OGNmZGQxY2NmZDU4ODNhYzQwNTc3M2JjYjA3MTg0MDkyZi4uMWE0Y2UyYWJlYzIzZDliMGEzZDI4
YWU2YTc0NDI3NmFhMTYwMmY0YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
QVBJL0NvY29hL1dLV2ViVmlldy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkv
Q29jb2EvV0tXZWJWaWV3Lm1tCkBAIC0xMjk3LDcgKzEyOTcsNyBAQCAtIChXS1BhZ2VSZWYpX3Bh
Z2VGb3JUZXN0aW5nCiAgICAgcmV0dXJuIHRvQVBJKF9wYWdlLmdldCgpKTsKIH0KIAotLSAoV2Vi
S2l0OjpXZWJQYWdlUHJveHkgKilfcGFnZQorLSAoTmFrZWRQdHI8V2ViS2l0OjpXZWJQYWdlUHJv
eHk+KV9wYWdlCiB7CiAgICAgcmV0dXJuIF9wYWdlLmdldCgpOwogfQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlld0ludGVybmFsLmggYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3SW50ZXJuYWwuaAppbmRleCAw
Zjg5ZmQ2ZjAzOWFkYTJhNjYzZTQwNjcwNTU2YTA3YWVjYmMxZTQzLi5jYzg4Y2Y0MGNkOWNhNWYz
MmY1ZWUzYmM1Nzc5ZTQ5YWUyN2Y1YTBiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3SW50ZXJuYWwuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3SW50ZXJuYWwuaApAQCAtMzEsNiArMzEsNyBAQAog
I2ltcG9ydCAiX1dLQXR0YWNobWVudEludGVybmFsLmgiCiAjaW1wb3J0ICJfV0tXZWJWaWV3UHJp
bnRGb3JtYXR0ZXJJbnRlcm5hbC5oIgogI2ltcG9ydCA8d3RmL0NvbXBsZXRpb25IYW5kbGVyLmg+
CisjaW1wb3J0IDx3dGYvTmFrZWRQdHIuaD4KICNpbXBvcnQgPHd0Zi9SZWZQdHIuaD4KICNpbXBv
cnQgPHd0Zi9SZXRhaW5QdHIuaD4KICNpbXBvcnQgPHd0Zi9WYXJpYW50Lmg+CkBAIC0yNTAsNyAr
MjUxLDcgQEAgY2xhc3MgVmlld0dlc3R1cmVDb250cm9sbGVyOwogLSAoT3B0aW9uYWw8Qk9PTD4p
X3Jlc29sdXRpb25Gb3JTaGFyZVNoZWV0SW1tZWRpYXRlQ29tcGxldGlvbkZvclRlc3Rpbmc7CiAK
IC0gKFdLUGFnZVJlZilfcGFnZUZvclRlc3Rpbmc7Ci0tIChXZWJLaXQ6OldlYlBhZ2VQcm94eSop
X3BhZ2U7CistIChOYWtlZFB0cjxXZWJLaXQ6OldlYlBhZ2VQcm94eT4pX3BhZ2U7CiAKIEBlbmQK
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2Vic2l0
ZURhdGFTdG9yZS5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYnNp
dGVEYXRhU3RvcmUubW0KaW5kZXggY2VmNDgyNzQ3ZGYxOGY4NDg5M2VhZmJkZTk4MWNjMDFlNWZh
ZjgwZS4uODlhNGNhMmViNmQ2NGJmZWU2OTIyMDFlY2NjN2ZmZmVjYjgwYzE3NSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2Vic2l0ZURhdGFTdG9yZS5t
bQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJzaXRlRGF0YVN0
b3JlLm1tCkBAIC00MzUsNyArNDM1LDcgQEAgLSAodm9pZClfZ2V0QWxsU3RvcmFnZUFjY2Vzc0Vu
dHJpZXNGb3I6KFdLV2ViVmlldyAqKXdlYlZpZXcgY29tcGxldGlvbkhhbmRsZXI6KHYKICAgICAg
ICAgcmV0dXJuOwogICAgIH0KIAotICAgIGF1dG8qIHdlYlBhZ2VQcm94eSA9IFt3ZWJWaWV3IF9w
YWdlXTsKKyAgICBhdXRvIHdlYlBhZ2VQcm94eSA9IFt3ZWJWaWV3IF9wYWdlXTsKICAgICBpZiAo
IXdlYlBhZ2VQcm94eSkgewogICAgICAgICBjb21wbGV0aW9uSGFuZGxlcih7IH0pOwogICAgICAg
ICByZXR1cm47CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2Ev
X1dLVGh1bWJuYWlsVmlldy5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9f
V0tUaHVtYm5haWxWaWV3Lm1tCmluZGV4IDEzNjA1M2M0N2RhNTFiMDI2OTI5MDRlMjdjNzU4OGFj
NWRlYzE4NWMuLjUzMGUwYTg5NjkwZWI1MzJkNjg2OTkzOTExOWExMmNmYTZmZmI2NzggMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tUaHVtYm5haWxWaWV3
Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tUaHVtYm5haWxW
aWV3Lm1tCkBAIC0zNSw2ICszNSw3IEBACiAjaW1wb3J0ICJXS1dlYlZpZXdJbnRlcm5hbC5oIgog
I2ltcG9ydCAiV2ViUGFnZVByb3h5LmgiCiAjaW1wb3J0IDxwYWwvc3BpL2NnL0NvcmVHcmFwaGlj
c1NQSS5oPgorI2ltcG9ydCA8d3RmL05ha2VkUHRyLmg+CiAKIC8vIEZJWE1FOiBNYWtlIGl0IHBv
c3NpYmxlIHRvIGxlYXZlIGEgc25hcHNob3Qgb2YgdGhlIGNvbnRlbnQgcHJlc2VudGVkIGluIHRo
ZSBXS1ZpZXcgd2hpbGUgdGhlIHRodW1ibmFpbCBpcyBsaXZlLgogLy8gRklYTUU6IERvbid0IG1h
a2UgbmV3IHNwZWN1bGF0aXZlIHRpbGVzIHdoaWxlIHRodW1ibmFpbGVkLgpAQCAtNDcsNyArNDgs
NyBAQCBAaW1wbGVtZW50YXRpb24gX1dLVGh1bWJuYWlsVmlldyB7CiAgICAgUmV0YWluUHRyPFdL
Vmlldz4gX3drVmlldzsKICAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19FTkQKICAg
ICBSZXRhaW5QdHI8V0tXZWJWaWV3PiBfd2tXZWJWaWV3OwotICAgIFdlYktpdDo6V2ViUGFnZVBy
b3h5KiBfd2ViUGFnZVByb3h5OworICAgIE5ha2VkUHRyPFdlYktpdDo6V2ViUGFnZVByb3h5PiBf
d2ViUGFnZVByb3h5OwogCiAgICAgQk9PTCBfb3JpZ2luYWxNYXlTdGFydE1lZGlhV2hlbkluV2lu
ZG93OwogICAgIEJPT0wgX29yaWdpbmFsU291cmNlVmlld0lzSW5XaW5kb3c7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvbWFjL1dLVmlldy5tbSBiL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL0FQSS9tYWMvV0tWaWV3Lm1tCmluZGV4IGJiNDFkNmU2OTY1Y2Q0ZmExNjU1
MzI4M2ZlOGVkNjQ1MmIyZmIwM2YuLmRkYzZmZmZhMzMwYTgzY2I3MmJlMTkzMGZjNzIxMDEzMzQy
MGQ4MjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9tYWMvV0tWaWV3
Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9tYWMvV0tWaWV3Lm1tCkBAIC00
Niw2ICs0Niw3IEBACiAjaW1wb3J0IDxXZWJLaXQvV0tEcmFnRGVzdGluYXRpb25BY3Rpb24uaD4K
ICNpbXBvcnQgPHBhbC9zcGkvY29jb2EvQVZLaXRTUEkuaD4KICNpbXBvcnQgPHd0Zi9CbG9ja1B0
ci5oPgorI2ltcG9ydCA8d3RmL05ha2VkUmVmLmg+CiAKIEBpbnRlcmZhY2UgV0tWaWV3RGF0YSA6
IE5TT2JqZWN0IHsKIEBwdWJsaWMKQEAgLTk1MCw3ICs5NTEsNyBAQCAtICh2b2lkKW1heWJlSW5z
dGFsbEljb25Mb2FkaW5nQ2xpZW50CiAgICAgICAgIF9kYXRhLT5faW1wbC0+cGFnZSgpLnNldElj
b25Mb2FkaW5nQ2xpZW50KG1ha2VVbmlxdWU8SWNvbkxvYWRpbmdDbGllbnQ+KHNlbGYpKTsKIH0K
IAotLSAoaW5zdGFuY2V0eXBlKWluaXRXaXRoRnJhbWU6KE5TUmVjdClmcmFtZSBwcm9jZXNzUG9v
bDooV2ViS2l0OjpXZWJQcm9jZXNzUG9vbCYpcHJvY2Vzc1Bvb2wgY29uZmlndXJhdGlvbjooUmVm
PEFQSTo6UGFnZUNvbmZpZ3VyYXRpb24+JiYpY29uZmlndXJhdGlvbgorLSAoaW5zdGFuY2V0eXBl
KWluaXRXaXRoRnJhbWU6KE5TUmVjdClmcmFtZSBwcm9jZXNzUG9vbDooTmFrZWRSZWY8V2ViS2l0
OjpXZWJQcm9jZXNzUG9vbD4pcHJvY2Vzc1Bvb2wgY29uZmlndXJhdGlvbjooUmVmPEFQSTo6UGFn
ZUNvbmZpZ3VyYXRpb24+JiYpY29uZmlndXJhdGlvbgogewogICAgIHNlbGYgPSBbc3VwZXIgaW5p
dFdpdGhGcmFtZTpmcmFtZV07CiAgICAgaWYgKCFzZWxmKQpAQCAtOTU5LDcgKzk2MCw3IEBAIC0g
KGluc3RhbmNldHlwZSlpbml0V2l0aEZyYW1lOihOU1JlY3QpZnJhbWUgcHJvY2Vzc1Bvb2w6KFdl
YktpdDo6V2ViUHJvY2Vzc1Bvb2wmCiAgICAgV2ViS2l0OjpJbml0aWFsaXplV2ViS2l0MigpOwog
CiAgICAgX2RhdGEgPSBbW1dLVmlld0RhdGEgYWxsb2NdIGluaXRdOwotICAgIF9kYXRhLT5faW1w
bCA9IG1ha2VVbmlxdWU8V2ViS2l0OjpXZWJWaWV3SW1wbD4oc2VsZiwgbnVsbHB0ciwgcHJvY2Vz
c1Bvb2wsIFdURk1vdmUoY29uZmlndXJhdGlvbikpOworICAgIF9kYXRhLT5faW1wbCA9IG1ha2VV
bmlxdWU8V2ViS2l0OjpXZWJWaWV3SW1wbD4oc2VsZiwgbnVsbHB0ciwgcHJvY2Vzc1Bvb2wuZ2V0
KCksIFdURk1vdmUoY29uZmlndXJhdGlvbikpOwogCiAgICAgW3NlbGYgbWF5YmVJbnN0YWxsSWNv
bkxvYWRpbmdDbGllbnRdOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9D
b2NvYS9XZWJWaWV3SW1wbC5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1dlYlZp
ZXdJbXBsLm1tCmluZGV4IDcxMzhlZmM5NDE1ZjhhNjE0ZjIzYWZiYTJhNGM2YTE1NTNlYzNkODgu
LjUwMTJkYWQxYTU4ZGZiNzU1MWUwMzBjZmJiMDM5YzhmOGJlYTJkMTQgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1dlYlZpZXdJbXBsLm1tCisrKyBiL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL0NvY29hL1dlYlZpZXdJbXBsLm1tCkBAIC0xMzcwLDcgKzEzNzAsNyBA
QCBXZWJWaWV3SW1wbDo6V2ViVmlld0ltcGwoTlNWaWV3IDxXZWJWaWV3SW1wbERlbGVnYXRlPiAq
dmlldywgV0tXZWJWaWV3ICpvdXRlcldlYgogICAgICwgbV9wYWdlKHByb2Nlc3NQb29sLmNyZWF0
ZVdlYlBhZ2UoKm1fcGFnZUNsaWVudCwgV1RGTW92ZShjb25maWd1cmF0aW9uKSkpCiAgICAgLCBt
X25lZWRzVmlld0ZyYW1lSW5XaW5kb3dDb29yZGluYXRlcyhtX3BhZ2UtPnByZWZlcmVuY2VzKCku
cGx1Z2luc0VuYWJsZWQoKSkKICAgICAsIG1faW50cmluc2ljQ29udGVudFNpemUoQ0dTaXplTWFr
ZShOU1ZpZXdOb0ludHJpbnNpY01ldHJpYywgTlNWaWV3Tm9JbnRyaW5zaWNNZXRyaWMpKQotICAg
ICwgbV9sYXlvdXRTdHJhdGVneShbV0tWaWV3TGF5b3V0U3RyYXRlZ3kgbGF5b3V0U3RyYXRlZ3lX
aXRoUGFnZTptX3BhZ2Ugdmlldzp2aWV3IHZpZXdJbXBsOip0aGlzIG1vZGU6a1dLTGF5b3V0TW9k
ZVZpZXdTaXplXSkKKyAgICAsIG1fbGF5b3V0U3RyYXRlZ3koW1dLVmlld0xheW91dFN0cmF0ZWd5
IGxheW91dFN0cmF0ZWd5V2l0aFBhZ2U6bV9wYWdlLmdldCgpIHZpZXc6dmlldyB2aWV3SW1wbDoq
dGhpcyBtb2RlOmtXS0xheW91dE1vZGVWaWV3U2l6ZV0pCiAgICAgLCBtX3VuZG9UYXJnZXQoYWRv
cHROUyhbW1dLRWRpdG9yVW5kb1RhcmdldCBhbGxvY10gaW5pdF0pKQogICAgICwgbV93aW5kb3dW
aXNpYmlsaXR5T2JzZXJ2ZXIoYWRvcHROUyhbW1dLV2luZG93VmlzaWJpbGl0eU9ic2VydmVyIGFs
bG9jXSBpbml0V2l0aFZpZXc6dmlldyBpbXBsOip0aGlzXSkpCiAgICAgLCBtX2FjY2Vzc2liaWxp
dHlTZXR0aW5nc09ic2VydmVyKGFkb3B0TlMoW1tXS0FjY2Vzc2liaWxpdHlTZXR0aW5nc09ic2Vy
dmVyIGFsbG9jXSBpbml0V2l0aEltcGw6KnRoaXNdKSkKQEAgLTE0MDMsNyArMTQwMyw3IEBAIFdl
YlZpZXdJbXBsOjpXZWJWaWV3SW1wbChOU1ZpZXcgPFdlYlZpZXdJbXBsRGVsZWdhdGU+ICp2aWV3
LCBXS1dlYlZpZXcgKm91dGVyV2ViCiAKICAgICBpZiAoQ2xhc3MgZ2VzdHVyZUNsYXNzID0gTlND
bGFzc0Zyb21TdHJpbmcoQCJOU0ltbWVkaWF0ZUFjdGlvbkdlc3R1cmVSZWNvZ25pemVyIikpIHsK
ICAgICAgICAgbV9pbW1lZGlhdGVBY3Rpb25HZXN0dXJlUmVjb2duaXplciA9IGFkb3B0TlMoWyhO
U0ltbWVkaWF0ZUFjdGlvbkdlc3R1cmVSZWNvZ25pemVyICopW2dlc3R1cmVDbGFzcyBhbGxvY10g
aW5pdF0pOwotICAgICAgICBtX2ltbWVkaWF0ZUFjdGlvbkNvbnRyb2xsZXIgPSBhZG9wdE5TKFtb
V0tJbW1lZGlhdGVBY3Rpb25Db250cm9sbGVyIGFsbG9jXSBpbml0V2l0aFBhZ2U6bV9wYWdlIHZp
ZXc6dmlldyB2aWV3SW1wbDoqdGhpcyByZWNvZ25pemVyOm1faW1tZWRpYXRlQWN0aW9uR2VzdHVy
ZVJlY29nbml6ZXIuZ2V0KCldKTsKKyAgICAgICAgbV9pbW1lZGlhdGVBY3Rpb25Db250cm9sbGVy
ID0gYWRvcHROUyhbW1dLSW1tZWRpYXRlQWN0aW9uQ29udHJvbGxlciBhbGxvY10gaW5pdFdpdGhQ
YWdlOm1fcGFnZS5nZXQoKSB2aWV3OnZpZXcgdmlld0ltcGw6KnRoaXMgcmVjb2duaXplcjptX2lt
bWVkaWF0ZUFjdGlvbkdlc3R1cmVSZWNvZ25pemVyLmdldCgpXSk7CiAgICAgICAgIFttX2ltbWVk
aWF0ZUFjdGlvbkdlc3R1cmVSZWNvZ25pemVyIHNldERlbGVnYXRlOm1faW1tZWRpYXRlQWN0aW9u
Q29udHJvbGxlci5nZXQoKV07CiAgICAgICAgIFttX2ltbWVkaWF0ZUFjdGlvbkdlc3R1cmVSZWNv
Z25pemVyIHNldERlbGF5c1ByaW1hcnlNb3VzZUJ1dHRvbkV2ZW50czpOT107CiAgICAgfQpAQCAt
MTk4Nyw3ICsxOTg3LDcgQEAgdm9pZCBXZWJWaWV3SW1wbDo6c2V0TGF5b3V0TW9kZShXS0xheW91
dE1vZGUgbGF5b3V0TW9kZSkKICAgICAgICAgcmV0dXJuOwogCiAgICAgW21fbGF5b3V0U3RyYXRl
Z3kgd2lsbENoYW5nZUxheW91dFN0cmF0ZWd5XTsKLSAgICBtX2xheW91dFN0cmF0ZWd5ID0gW1dL
Vmlld0xheW91dFN0cmF0ZWd5IGxheW91dFN0cmF0ZWd5V2l0aFBhZ2U6bV9wYWdlIHZpZXc6bV92
aWV3LmdldEF1dG9yZWxlYXNlZCgpIHZpZXdJbXBsOip0aGlzIG1vZGU6bGF5b3V0TW9kZV07Cisg
ICAgbV9sYXlvdXRTdHJhdGVneSA9IFtXS1ZpZXdMYXlvdXRTdHJhdGVneSBsYXlvdXRTdHJhdGVn
eVdpdGhQYWdlOm1fcGFnZS5nZXQoKSB2aWV3Om1fdmlldy5nZXRBdXRvcmVsZWFzZWQoKSB2aWV3
SW1wbDoqdGhpcyBtb2RlOmxheW91dE1vZGVdOwogfQogCiBib29sIFdlYlZpZXdJbXBsOjpzdXBw
b3J0c0FyYml0cmFyeUxheW91dE1vZGVzKCkgY29uc3QKQEAgLTI2NDAsNyArMjY0MCw3IEBAIGJv
b2wgV2ViVmlld0ltcGw6Omhhc0Z1bGxTY3JlZW5XaW5kb3dDb250cm9sbGVyKCkgY29uc3QKIFdL
RnVsbFNjcmVlbldpbmRvd0NvbnRyb2xsZXIgKldlYlZpZXdJbXBsOjpmdWxsU2NyZWVuV2luZG93
Q29udHJvbGxlcigpCiB7CiAgICAgaWYgKCFtX2Z1bGxTY3JlZW5XaW5kb3dDb250cm9sbGVyKQot
ICAgICAgICBtX2Z1bGxTY3JlZW5XaW5kb3dDb250cm9sbGVyID0gYWRvcHROUyhbW1dLRnVsbFNj
cmVlbldpbmRvd0NvbnRyb2xsZXIgYWxsb2NdIGluaXRXaXRoV2luZG93OmZ1bGxTY3JlZW5XaW5k
b3coKSB3ZWJWaWV3Om1fdmlldy5nZXRBdXRvcmVsZWFzZWQoKSBwYWdlOm1fcGFnZV0pOworICAg
ICAgICBtX2Z1bGxTY3JlZW5XaW5kb3dDb250cm9sbGVyID0gYWRvcHROUyhbW1dLRnVsbFNjcmVl
bldpbmRvd0NvbnRyb2xsZXIgYWxsb2NdIGluaXRXaXRoV2luZG93OmZ1bGxTY3JlZW5XaW5kb3co
KSB3ZWJWaWV3Om1fdmlldy5nZXRBdXRvcmVsZWFzZWQoKSBwYWdlOm1fcGFnZS5nZXQoKV0pOwog
CiAgICAgcmV0dXJuIG1fZnVsbFNjcmVlbldpbmRvd0NvbnRyb2xsZXIuZ2V0KCk7CiB9CkBAIC0z
ODgzLDcgKzM4ODMsNyBAQCBOU1ZpZXcgKldlYlZpZXdJbXBsOjppbnNwZWN0b3JBdHRhY2htZW50
VmlldygpCiBfV0tSZW1vdGVPYmplY3RSZWdpc3RyeSAqV2ViVmlld0ltcGw6OnJlbW90ZU9iamVj
dFJlZ2lzdHJ5KCkKIHsKICAgICBpZiAoIW1fcmVtb3RlT2JqZWN0UmVnaXN0cnkpIHsKLSAgICAg
ICAgbV9yZW1vdGVPYmplY3RSZWdpc3RyeSA9IGFkb3B0TlMoW1tfV0tSZW1vdGVPYmplY3RSZWdp
c3RyeSBhbGxvY10gX2luaXRXaXRoV2ViUGFnZVByb3h5Om1fcGFnZV0pOworICAgICAgICBtX3Jl
bW90ZU9iamVjdFJlZ2lzdHJ5ID0gYWRvcHROUyhbW19XS1JlbW90ZU9iamVjdFJlZ2lzdHJ5IGFs
bG9jXSBfaW5pdFdpdGhXZWJQYWdlUHJveHk6bV9wYWdlLmdldCgpXSk7CiAgICAgICAgIG1fcGFn
ZS0+cHJvY2VzcygpLnByb2Nlc3NQb29sKCkuYWRkTWVzc2FnZVJlY2VpdmVyKE1lc3NhZ2VzOjpS
ZW1vdGVPYmplY3RSZWdpc3RyeTo6bWVzc2FnZVJlY2VpdmVyTmFtZSgpLCBtX3BhZ2UtPmlkZW50
aWZpZXIoKSwgW21fcmVtb3RlT2JqZWN0UmVnaXN0cnkgcmVtb3RlT2JqZWN0UmVnaXN0cnldKTsK
ICAgICB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0FwcGxp
Y2F0aW9uU3RhdGVUcmFja2luZ1ZpZXcubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3Mv
V0tBcHBsaWNhdGlvblN0YXRlVHJhY2tpbmdWaWV3Lm1tCmluZGV4IGI3ZjcwMjZkZGJmMTk3MjQz
MzQ5MjUwMGJiY2NjMmY3MmVmMDI4ZTkuLjU0YWQwNGJkNWU2YWM0MTAzZmZkN2MxMTcyZDcxZjI5
ZDg1MmYyNWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0FwcGxp
Y2F0aW9uU3RhdGVUcmFja2luZ1ZpZXcubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
aW9zL1dLQXBwbGljYXRpb25TdGF0ZVRyYWNraW5nVmlldy5tbQpAQCAtNTUsNyArNTUsNyBAQCAt
ICh2b2lkKXdpbGxNb3ZlVG9XaW5kb3c6KFVJV2luZG93ICopbmV3V2luZG93CiAgICAgICAgIHJl
dHVybjsKIAogICAgIGF1dG8gcGFnZSA9IFtfd2ViVmlld1RvVHJhY2sgX3BhZ2VdOwotICAgIFJF
TEVBU0VfTE9HKFZpZXdTdGF0ZSwgIiVwIC0gV0tBcHBsaWNhdGlvblN0YXRlVHJhY2tpbmdWaWV3
OiBWaWV3IHdpdGggcGFnZSBbJXAsIHBhZ2VQcm94eUlEOiAlIiBQUkl1NjQgIl0gd2FzIHJlbW92
ZWQgZnJvbSBhIHdpbmRvdywgX2xhc3RPYnNlcnZlZFN0YXRlV2FzQmFja2dyb3VuZDogJWQiLCBz
ZWxmLCBwYWdlLCBwYWdlID8gcGFnZS0+aWRlbnRpZmllcigpLnRvVUludDY0KCkgOiAwLCBwYWdl
ID8gcGFnZS0+bGFzdE9ic2VydmVkU3RhdGVXYXNCYWNrZ3JvdW5kKCkgOiBmYWxzZSk7CisgICAg
UkVMRUFTRV9MT0coVmlld1N0YXRlLCAiJXAgLSBXS0FwcGxpY2F0aW9uU3RhdGVUcmFja2luZ1Zp
ZXc6IFZpZXcgd2l0aCBwYWdlIFslcCwgcGFnZVByb3h5SUQ6ICUiIFBSSXU2NCAiXSB3YXMgcmVt
b3ZlZCBmcm9tIGEgd2luZG93LCBfbGFzdE9ic2VydmVkU3RhdGVXYXNCYWNrZ3JvdW5kOiAlZCIs
IHNlbGYsIHBhZ2UuZ2V0KCksIHBhZ2UgPyBwYWdlLT5pZGVudGlmaWVyKCkudG9VSW50NjQoKSA6
IDAsIHBhZ2UgPyBwYWdlLT5sYXN0T2JzZXJ2ZWRTdGF0ZVdhc0JhY2tncm91bmQoKSA6IGZhbHNl
KTsKICAgICBBU1NFUlQoX2FwcGxpY2F0aW9uU3RhdGVUcmFja2VyKTsKICAgICBfYXBwbGljYXRp
b25TdGF0ZVRyYWNrZXIgPSBudWxscHRyOwogfQpAQCAtNjksNyArNjksNyBAQCAtICh2b2lkKWRp
ZE1vdmVUb1dpbmRvdwogICAgIGJvb2wgbGFzdE9ic2VydmVkU3RhdGVXYXNCYWNrZ3JvdW5kID0g
cGFnZSA/IHBhZ2UtPmxhc3RPYnNlcnZlZFN0YXRlV2FzQmFja2dyb3VuZCgpIDogZmFsc2U7CiAK
ICAgICBfYXBwbGljYXRpb25TdGF0ZVRyYWNrZXIgPSBtYWtlVW5pcXVlPFdlYktpdDo6QXBwbGlj
YXRpb25TdGF0ZVRyYWNrZXI+KHNlbGYsIEBzZWxlY3RvcihfYXBwbGljYXRpb25EaWRFbnRlckJh
Y2tncm91bmQpLCBAc2VsZWN0b3IoX2FwcGxpY2F0aW9uRGlkRmluaXNoU25hcHNob3R0aW5nQWZ0
ZXJFbnRlcmluZ0JhY2tncm91bmQpLCBAc2VsZWN0b3IoX2FwcGxpY2F0aW9uV2lsbEVudGVyRm9y
ZWdyb3VuZCkpOwotICAgIFJFTEVBU0VfTE9HKFZpZXdTdGF0ZSwgIiVwIC0gV0tBcHBsaWNhdGlv
blN0YXRlVHJhY2tpbmdWaWV3OiBWaWV3IHdpdGggcGFnZSBbJXAsIHBhZ2VQcm94eUlEOiAlIiBQ
Ukl1NjQgIl0gd2FzIGFkZGVkIHRvIGEgd2luZG93LCBfbGFzdE9ic2VydmVkU3RhdGVXYXNCYWNr
Z3JvdW5kOiAlZCwgaXNOb3dCYWNrZ3JvdW5kOiAlZCIsIHNlbGYsIHBhZ2UsIHBhZ2UgPyBwYWdl
LT5pZGVudGlmaWVyKCkudG9VSW50NjQoKSA6IDAsIGxhc3RPYnNlcnZlZFN0YXRlV2FzQmFja2dy
b3VuZCwgW3NlbGYgaXNCYWNrZ3JvdW5kXSk7CisgICAgUkVMRUFTRV9MT0coVmlld1N0YXRlLCAi
JXAgLSBXS0FwcGxpY2F0aW9uU3RhdGVUcmFja2luZ1ZpZXc6IFZpZXcgd2l0aCBwYWdlIFslcCwg
cGFnZVByb3h5SUQ6ICUiIFBSSXU2NCAiXSB3YXMgYWRkZWQgdG8gYSB3aW5kb3csIF9sYXN0T2Jz
ZXJ2ZWRTdGF0ZVdhc0JhY2tncm91bmQ6ICVkLCBpc05vd0JhY2tncm91bmQ6ICVkIiwgc2VsZiwg
cGFnZS5nZXQoKSwgcGFnZSA/IHBhZ2UtPmlkZW50aWZpZXIoKS50b1VJbnQ2NCgpIDogMCwgbGFz
dE9ic2VydmVkU3RhdGVXYXNCYWNrZ3JvdW5kLCBbc2VsZiBpc0JhY2tncm91bmRdKTsKIAogICAg
IGlmIChsYXN0T2JzZXJ2ZWRTdGF0ZVdhc0JhY2tncm91bmQgJiYgIVtzZWxmIGlzQmFja2dyb3Vu
ZF0pCiAgICAgICAgIFtzZWxmIF9hcHBsaWNhdGlvbldpbGxFbnRlckZvcmVncm91bmRdOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXcuaCBiL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3LmgKaW5kZXggNTdjZmJiZjQ0
ZDgyZDI2MzE2ZDk3MzIwMzU3ZWY3NTNhY2MxNmNjZi4uNjZhZmE0ZGNiODZhMmRlNjBkZmRmYzI0
MGQ3OTEzMzVlZmI3NDU2NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9z
L1dLQ29udGVudFZpZXcuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tDb250
ZW50Vmlldy5oCkBAIC0yOCw2ICsyOCw3IEBACiAjaW1wb3J0ICJXS0Jyb3dzaW5nQ29udGV4dENv
bnRyb2xsZXIuaCIKICNpbXBvcnQgIldLQnJvd3NpbmdDb250ZXh0R3JvdXAuaCIKICNpbXBvcnQg
IldLUHJvY2Vzc0dyb3VwLmgiCisjaW1wb3J0IDx3dGYvTmFrZWRSZWYuaD4KICNpbXBvcnQgPHd0
Zi9SZXRhaW5QdHIuaD4KICNpbXBvcnQgPHd0Zi9XZWFrT2JqQ1B0ci5oPgogCkBAIC03MCw3ICs3
MSw3IEBAIGNsYXNzIFdlYlByb2Nlc3NQb29sOwogQHByb3BlcnR5IChub25hdG9taWMpIEJPT0wg
c2l6ZUNoYW5nZWRTaW5jZUxhc3RWaXNpYmxlQ29udGVudFJlY3RVcGRhdGU7CiBAcHJvcGVydHkg
KG5vbmF0b21pYywgcmVhZG9ubHkpIFVJSW50ZXJmYWNlT3JpZW50YXRpb24gaW50ZXJmYWNlT3Jp
ZW50YXRpb247CiAKLS0gKGluc3RhbmNldHlwZSlpbml0V2l0aEZyYW1lOihDR1JlY3QpZnJhbWUg
cHJvY2Vzc1Bvb2w6KFdlYktpdDo6V2ViUHJvY2Vzc1Bvb2wmKXByb2Nlc3NQb29sIGNvbmZpZ3Vy
YXRpb246KFJlZjxBUEk6OlBhZ2VDb25maWd1cmF0aW9uPiYmKWNvbmZpZ3VyYXRpb24gd2ViVmll
dzooV0tXZWJWaWV3ICopd2ViVmlldzsKKy0gKGluc3RhbmNldHlwZSlpbml0V2l0aEZyYW1lOihD
R1JlY3QpZnJhbWUgcHJvY2Vzc1Bvb2w6KE5ha2VkUmVmPFdlYktpdDo6V2ViUHJvY2Vzc1Bvb2w+
KXByb2Nlc3NQb29sIGNvbmZpZ3VyYXRpb246KFJlZjxBUEk6OlBhZ2VDb25maWd1cmF0aW9uPiYm
KWNvbmZpZ3VyYXRpb24gd2ViVmlldzooV0tXZWJWaWV3ICopd2ViVmlldzsKIAogLSAodm9pZClk
aWRVcGRhdGVWaXNpYmxlUmVjdDooQ0dSZWN0KXZpc2libGVSZWN0CiAgICAgdW5vYnNjdXJlZFJl
Y3Q6KENHUmVjdCl1bm9ic2N1cmVkUmVjdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvaW9zL1dLQ29udGVudFZpZXcubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3Mv
V0tDb250ZW50Vmlldy5tbQppbmRleCAyOWJhNjA2NTgyODQ0ZGVhNjc4NWRmZjEyZmJiYWI1ZThj
OWIzMWZkLi5kMjFlOWNhZTc5ZjQyMTM0Mjc0NmIyZDRlYjQ3Y2NlZTNhMGMzMTk0IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlldy5tbQorKysgYi9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlldy5tbQpAQCAtMjM4LDcgKzIz
OCw3IEBAIC0gKHZvaWQpX3JlbW92ZVZpc2liaWxpdHlQcm9wYWdhdGlvblZpZXcKIH0KICNlbmRp
ZgogCi0tIChpbnN0YW5jZXR5cGUpaW5pdFdpdGhGcmFtZTooQ0dSZWN0KWZyYW1lIHByb2Nlc3NQ
b29sOihXZWJLaXQ6OldlYlByb2Nlc3NQb29sJilwcm9jZXNzUG9vbCBjb25maWd1cmF0aW9uOihS
ZWY8QVBJOjpQYWdlQ29uZmlndXJhdGlvbj4mJiljb25maWd1cmF0aW9uIHdlYlZpZXc6KFdLV2Vi
VmlldyAqKXdlYlZpZXcKKy0gKGluc3RhbmNldHlwZSlpbml0V2l0aEZyYW1lOihDR1JlY3QpZnJh
bWUgcHJvY2Vzc1Bvb2w6KE5ha2VkUmVmPFdlYktpdDo6V2ViUHJvY2Vzc1Bvb2w+KXByb2Nlc3NQ
b29sIGNvbmZpZ3VyYXRpb246KFJlZjxBUEk6OlBhZ2VDb25maWd1cmF0aW9uPiYmKWNvbmZpZ3Vy
YXRpb24gd2ViVmlldzooV0tXZWJWaWV3ICopd2ViVmlldwogewogICAgIGlmICghKHNlbGYgPSBb
c3VwZXIgaW5pdFdpdGhGcmFtZTpmcmFtZSB3ZWJWaWV3OndlYlZpZXddKSkKICAgICAgICAgcmV0
dXJuIG5pbDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9mdWxsc2Ny
ZWVuL1dLRnVsbFNjcmVlblZpZXdDb250cm9sbGVyLm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvaW9zL2Z1bGxzY3JlZW4vV0tGdWxsU2NyZWVuVmlld0NvbnRyb2xsZXIubW0KaW5kZXggOGZm
OGEwYmY0NzViM2Y3YjIzNjIyOWY0MTJlM2YzMjY2Y2Y5NTk2Ni4uMjlmMGNkYzU1MTAzODM0MWQ3
OWQxNDcwYWY4MmQ1OWE1YTlhZmIyNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvaW9zL2Z1bGxzY3JlZW4vV0tGdWxsU2NyZWVuVmlld0NvbnRyb2xsZXIubW0KKysrIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL2Z1bGxzY3JlZW4vV0tGdWxsU2NyZWVuVmlld0NvbnRy
b2xsZXIubW0KQEAgLTI1NSw3ICsyNTUsNyBAQCAtICh2b2lkKWhpZGVVSQogCiAtICh2b2lkKXZp
ZGVvQ29udHJvbHNNYW5hZ2VyRGlkQ2hhbmdlCiB7Ci0gICAgV2ViS2l0OjpXZWJQYWdlUHJveHkq
IHBhZ2UgPSBbc2VsZi5fd2ViVmlldyBfcGFnZV07CisgICAgYXV0byBwYWdlID0gW3NlbGYuX3dl
YlZpZXcgX3BhZ2VdOwogICAgIGF1dG8qIHZpZGVvRnVsbHNjcmVlbk1hbmFnZXIgPSBwYWdlID8g
cGFnZS0+dmlkZW9GdWxsc2NyZWVuTWFuYWdlcigpIDogbnVsbHB0cjsKICAgICBhdXRvKiB2aWRl
b0Z1bGxzY3JlZW5JbnRlcmZhY2UgPSB2aWRlb0Z1bGxzY3JlZW5NYW5hZ2VyID8gdmlkZW9GdWxs
c2NyZWVuTWFuYWdlci0+Y29udHJvbHNNYW5hZ2VySW50ZXJmYWNlKCkgOiBudWxscHRyOwogICAg
IGF1dG8qIHBsYXliYWNrU2Vzc2lvbkludGVyZmFjZSA9IHZpZGVvRnVsbHNjcmVlbkludGVyZmFj
ZSA/ICZ2aWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2UtPnBsYXliYWNrU2Vzc2lvbkludGVyZmFjZSgp
IDogbnVsbHB0cjsKQEAgLTQ4MCw3ICs0ODAsNyBAQCAtIChCT09MKWdlc3R1cmVSZWNvZ25pemVy
OihVSUdlc3R1cmVSZWNvZ25pemVyICopZ2VzdHVyZVJlY29nbml6ZXIgc2hvdWxkUmVjZWl2ZQog
QGR5bmFtaWMgX21hbmFnZXI7CiAtIChXZWJLaXQ6OldlYkZ1bGxTY3JlZW5NYW5hZ2VyUHJveHkq
KV9tYW5hZ2VyCiB7Ci0gICAgaWYgKGF1dG8qIHBhZ2UgPSBbc2VsZi5fd2ViVmlldyBfcGFnZV0p
CisgICAgaWYgKGF1dG8gcGFnZSA9IFtzZWxmLl93ZWJWaWV3IF9wYWdlXSkKICAgICAgICAgcmV0
dXJuIHBhZ2UtPmZ1bGxTY3JlZW5NYW5hZ2VyKCk7CiAgICAgcmV0dXJuIG51bGxwdHI7CiB9CkBA
IC01MDQsNyArNTA0LDcgQEAgLSAodm9pZClfY2FuY2VsQWN0aW9uOihpZClzZW5kZXIKIAogLSAo
dm9pZClfdG9nZ2xlUGlQQWN0aW9uOihpZClzZW5kZXIKIHsKLSAgICBXZWJLaXQ6OldlYlBhZ2VQ
cm94eSogcGFnZSA9IFtzZWxmLl93ZWJWaWV3IF9wYWdlXTsKKyAgICBhdXRvIHBhZ2UgPSBbc2Vs
Zi5fd2ViVmlldyBfcGFnZV07CiAgICAgaWYgKCFwYWdlKQogICAgICAgICByZXR1cm47CiAKQEAg
LTU1OCwyMSArNTU4LDIxIEBAIC0gKHZvaWQpX3Nob3dQaGlzaGluZ0FsZXJ0CiAgICAgTlNTdHJp
bmcgKmFsZXJ0TWVzc2FnZSA9IFtOU1N0cmluZyBzdHJpbmdXaXRoRm9ybWF0OldFQl9VSV9TVFJJ
TkcoIlR5cGluZyBpcyBub3QgYWxsb3dlZCBpbiBmdWxsIHNjcmVlbiB3ZWJzaXRlcy4g4oCcJUDi
gJ0gbWF5IGJlIHNob3dpbmcgYSBmYWtlIGtleWJvYXJkIHRvIHRyaWNrIHlvdSBpbnRvIGRpc2Ns
b3NpbmcgcGVyc29uYWwgb3IgZmluYW5jaWFsIGluZm9ybWF0aW9uLiIsICJGdWxsIFNjcmVlbiBE
ZWNlcHRpdmUgV2Vic2l0ZSBXYXJuaW5nIFNoZWV0IENvbnRlbnQgVGV4dCIpLCAoTlNTdHJpbmcg
KilzZWxmLmxvY2F0aW9uXTsKICAgICBVSUFsZXJ0Q29udHJvbGxlciogYWxlcnQgPSBbVUlBbGVy
dENvbnRyb2xsZXIgYWxlcnRDb250cm9sbGVyV2l0aFRpdGxlOmFsZXJ0VGl0bGUgbWVzc2FnZTph
bGVydE1lc3NhZ2UgcHJlZmVycmVkU3R5bGU6VUlBbGVydENvbnRyb2xsZXJTdHlsZUFsZXJ0XTsK
IAotICAgIGlmIChhdXRvKiBwYWdlID0gW3NlbGYuX3dlYlZpZXcgX3BhZ2VdKSB7CisgICAgaWYg
KGF1dG8gcGFnZSA9IFtzZWxmLl93ZWJWaWV3IF9wYWdlXSkgewogICAgICAgICBwYWdlLT5zdXNw
ZW5kQWxsTWVkaWFQbGF5YmFjaygpOwogICAgICAgICBwYWdlLT5zdXNwZW5kQWN0aXZlRE9NT2Jq
ZWN0c0FuZEFuaW1hdGlvbnMoKTsKICAgICB9CiAKICAgICBVSUFsZXJ0QWN0aW9uKiBleGl0QWN0
aW9uID0gW1VJQWxlcnRBY3Rpb24gYWN0aW9uV2l0aFRpdGxlOldFQl9VSV9TVFJJTkdfS0VZKCJF
eGl0IEZ1bGwgU2NyZWVuIiwgIkV4aXQgRnVsbCBTY3JlZW4gKEVsZW1lbnQgRnVsbCBTY3JlZW4p
IiwgIkZ1bGwgU2NyZWVuIERlY2VwdGl2ZSBXZWJzaXRlIEV4aXQgQWN0aW9uIikgc3R5bGU6VUlB
bGVydEFjdGlvblN0eWxlQ2FuY2VsIGhhbmRsZXI6XihVSUFsZXJ0QWN0aW9uICogYWN0aW9uKSB7
CiAgICAgICAgIFtzZWxmIF9jYW5jZWxBY3Rpb246YWN0aW9uXTsKLSAgICAgICAgaWYgKGF1dG8q
IHBhZ2UgPSBbc2VsZi5fd2ViVmlldyBfcGFnZV0pIHsKKyAgICAgICAgaWYgKGF1dG8gcGFnZSA9
IFtzZWxmLl93ZWJWaWV3IF9wYWdlXSkgewogICAgICAgICAgICAgcGFnZS0+cmVzdW1lQWN0aXZl
RE9NT2JqZWN0c0FuZEFuaW1hdGlvbnMoKTsKICAgICAgICAgICAgIHBhZ2UtPnJlc3VtZUFsbE1l
ZGlhUGxheWJhY2soKTsKICAgICAgICAgfQogICAgIH1dOwogCiAgICAgVUlBbGVydEFjdGlvbiog
c3RheUFjdGlvbiA9IFtVSUFsZXJ0QWN0aW9uIGFjdGlvbldpdGhUaXRsZTpXRUJfVUlfU1RSSU5H
X0tFWSgiU3RheSBpbiBGdWxsIFNjcmVlbiIsICJTdGF5IGluIEZ1bGwgU2NyZWVuIChFbGVtZW50
IEZ1bGwgU2NyZWVuKSIsICJGdWxsIFNjcmVlbiBEZWNlcHRpdmUgV2Vic2l0ZSBTdGF5IEFjdGlv
biIpIHN0eWxlOlVJQWxlcnRBY3Rpb25TdHlsZURlZmF1bHQgaGFuZGxlcjpeKFVJQWxlcnRBY3Rp
b24gKiBhY3Rpb24pIHsKLSAgICAgICAgaWYgKGF1dG8qIHBhZ2UgPSBbc2VsZi5fd2ViVmlldyBf
cGFnZV0pIHsKKyAgICAgICAgaWYgKGF1dG8gcGFnZSA9IFtzZWxmLl93ZWJWaWV3IF9wYWdlXSkg
ewogICAgICAgICAgICAgcGFnZS0+cmVzdW1lQWN0aXZlRE9NT2JqZWN0c0FuZEFuaW1hdGlvbnMo
KTsKICAgICAgICAgICAgIHBhZ2UtPnJlc3VtZUFsbE1lZGlhUGxheWJhY2soKTsKICAgICAgICAg
fQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL2Z1bGxzY3JlZW4vV0tG
dWxsU2NyZWVuV2luZG93Q29udHJvbGxlcklPUy5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L2lvcy9mdWxsc2NyZWVuL1dLRnVsbFNjcmVlbldpbmRvd0NvbnRyb2xsZXJJT1MubW0KaW5kZXgg
ODVlYTgyMDZhM2VkNjZhMTgyNjA5MmU0NWY4NmUwNzE2M2JjMmQ1Ni4uNWY0NGE4ZTlmMDkyMmJm
YzdhNzdmMmVlOTg3NzM1MzE1MWIwZmEzYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvaW9zL2Z1bGxzY3JlZW4vV0tGdWxsU2NyZWVuV2luZG93Q29udHJvbGxlcklPUy5tbQor
KysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvZnVsbHNjcmVlbi9XS0Z1bGxTY3JlZW5X
aW5kb3dDb250cm9sbGVySU9TLm1tCkBAIC0xMTUsNyArMTE1LDcgQEAgc3RydWN0IFdLV2ViVmll
d1N0YXRlIHsKICAgICAgICAgW1t3ZWJWaWV3IHNjcm9sbFZpZXddIHNldENvbnRlbnRJbnNldDpf
c2F2ZWRFZGdlSW5zZXRdOwogICAgICAgICBbW3dlYlZpZXcgc2Nyb2xsVmlld10gc2V0Q29udGVu
dE9mZnNldDpfc2F2ZWRDb250ZW50T2Zmc2V0XTsKICAgICAgICAgW1t3ZWJWaWV3IHNjcm9sbFZp
ZXddIHNldFNjcm9sbEluZGljYXRvckluc2V0czpfc2F2ZWRTY3JvbGxJbmRpY2F0b3JJbnNldHNd
OwotICAgICAgICBpZiAoYXV0byogcGFnZSA9IHdlYlZpZXcuX3BhZ2UpIHsKKyAgICAgICAgaWYg
KGF1dG8gcGFnZSA9IHdlYlZpZXcuX3BhZ2UpIHsKICAgICAgICAgICAgIHBhZ2UtPnNldFRvcENv
bnRlbnRJbnNldChfc2F2ZWRUb3BDb250ZW50SW5zZXQpOwogICAgICAgICAgICAgcGFnZS0+c2V0
Rm9yY2VBbHdheXNVc2VyU2NhbGFibGUoX3NhdmVkRm9yY2VBbHdheXNVc2VyU2NhbGFibGUpOwog
ICAgICAgICB9CkBAIC0xMzUsNyArMTM1LDcgQEAgc3RydWN0IFdLV2ViVmlld1N0YXRlIHsKIEFM
TE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0JFR0lOCiAgICAgICAgIF9zYXZlZFNjcm9sbElu
ZGljYXRvckluc2V0cyA9IFtbd2ViVmlldyBzY3JvbGxWaWV3XSBzY3JvbGxJbmRpY2F0b3JJbnNl
dHNdOwogQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfRU5ECi0gICAgICAgIGlmIChhdXRv
KiBwYWdlID0gd2ViVmlldy5fcGFnZSkgeworICAgICAgICBpZiAoYXV0byBwYWdlID0gd2ViVmll
dy5fcGFnZSkgewogICAgICAgICAgICAgX3NhdmVkVG9wQ29udGVudEluc2V0ID0gcGFnZS0+dG9w
Q29udGVudEluc2V0KCk7CiAgICAgICAgICAgICBfc2F2ZWRGb3JjZUFsd2F5c1VzZXJTY2FsYWJs
ZSA9IHBhZ2UtPmZvcmNlQWx3YXlzVXNlclNjYWxhYmxlKCk7CiAgICAgICAgIH0KQEAgLTUwNSw3
ICs1MDUsNyBAQCAtICh2b2lkKWVudGVyRnVsbFNjcmVlbgogICAgICAgICByZXR1cm47CiAKICAg
ICBSZXRhaW5QdHI8V0tXZWJWaWV3PiB3ZWJWaWV3ID0gc2VsZi5fd2ViVmlldzsKLSAgICBhdXRv
KiBwYWdlID0gW3dlYlZpZXcgX3BhZ2VdOworICAgIGF1dG8gcGFnZSA9IFt3ZWJWaWV3IF9wYWdl
XTsKICAgICBhdXRvKiBtYW5hZ2VyID0gc2VsZi5fbWFuYWdlcjsKICAgICBpZiAoIXBhZ2UgfHwg
IW1hbmFnZXIpCiAgICAgICAgIHJldHVybjsKQEAgLTU2Nyw3ICs1NjcsNyBAQCAtICh2b2lkKWVu
dGVyRnVsbFNjcmVlbgogICAgIFdLU25hcHNob3RDb25maWd1cmF0aW9uKiBjb25maWcgPSBuaWw7
CiAgICAgW3dlYlZpZXcgdGFrZVNuYXBzaG90V2l0aENvbmZpZ3VyYXRpb246Y29uZmlnIGNvbXBs
ZXRpb25IYW5kbGVyOl4oVUlJbWFnZSAqIHNuYXBzaG90SW1hZ2UsIE5TRXJyb3IgKiBlcnJvcikg
ewogICAgICAgICBSZXRhaW5QdHI8V0tXZWJWaWV3PiB3ZWJWaWV3ID0gc2VsZi5fd2ViVmlldzsK
LSAgICAgICAgYXV0byogcGFnZSA9IFtzZWxmLl93ZWJWaWV3IF9wYWdlXTsKKyAgICAgICAgYXV0
byBwYWdlID0gW3NlbGYuX3dlYlZpZXcgX3BhZ2VdOwogICAgICAgICBpZiAoIXBhZ2UpCiAgICAg
ICAgICAgICByZXR1cm47CiAKQEAgLTY1NCw3ICs2NTQsNyBAQCAtICh2b2lkKWJlZ2FuRW50ZXJG
dWxsU2NyZWVuV2l0aEluaXRpYWxGcmFtZTooQ0dSZWN0KWluaXRpYWxGcmFtZSBmaW5hbEZyYW1l
OihDRwogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9CiAKLSAgICAgICAgYXV0byogcGFn
ZSA9IFtzZWxmLl93ZWJWaWV3IF9wYWdlXTsKKyAgICAgICAgYXV0byBwYWdlID0gW3NlbGYuX3dl
YlZpZXcgX3BhZ2VdOwogICAgICAgICBhdXRvKiBtYW5hZ2VyID0gc2VsZi5fbWFuYWdlcjsKICAg
ICAgICAgaWYgKHBhZ2UgJiYgbWFuYWdlcikgewogICAgICAgICAgICAgW3NlbGYuX3dlYlZpZXcg
YmVjb21lRmlyc3RSZXNwb25kZXJdOwpAQCAtNzE2LDcgKzcxNiw3IEBAIC0gKHZvaWQpYmVnYW5F
eGl0RnVsbFNjcmVlbldpdGhJbml0aWFsRnJhbWU6KENHUmVjdClpbml0aWFsRnJhbWUgZmluYWxG
cmFtZTooQ0dSCiAgICAgX2ZpbmFsRnJhbWUuc2l6ZSA9IFdlYktpdDo6c2l6ZUV4cGFuZGVkVG9T
aXplKF9maW5hbEZyYW1lLnNpemUsIENHU2l6ZU1ha2UoMSwgMSkpOwogICAgIF9maW5hbEZyYW1l
ID0gV2ViS2l0OjpzYWZlSW5saW5lUmVjdChfZmluYWxGcmFtZSwgW19yb290Vmlld0NvbnRyb2xs
ZXIgdmlld10uZnJhbWUuc2l6ZSk7CiAKLSAgICBpZiAoYXV0byogcGFnZSA9IFtzZWxmLl93ZWJW
aWV3IF9wYWdlXSkKKyAgICBpZiAoYXV0byBwYWdlID0gW3NlbGYuX3dlYlZpZXcgX3BhZ2VdKQog
ICAgICAgICBwYWdlLT5zZXRTdXBwcmVzc1Zpc2liaWxpdHlVcGRhdGVzKHRydWUpOwogCiAgICAg
W19mdWxsc2NyZWVuVmlld0NvbnRyb2xsZXIgc2V0UHJlZmVyc1N0YXR1c0JhckhpZGRlbjpOT107
CkBAIC03NDgsNyArNzQ4LDcgQEAgLSAodm9pZClfY29tcGxldGVkRXhpdEZ1bGxTY3JlZW4KICAg
ICBbd2ViVmlldyBiZWNvbWVGaXJzdFJlc3BvbmRlcl07CiAKICAgICBfdmlld1N0YXRlLmFwcGx5
VG8od2ViVmlldy5nZXQoKSk7Ci0gICAgaWYgKGF1dG8qIHBhZ2UgPSBbd2ViVmlldyBfcGFnZV0p
CisgICAgaWYgKGF1dG8gcGFnZSA9IFt3ZWJWaWV3IF9wYWdlXSkKICAgICAgICAgcGFnZS0+c2V0
T3ZlcnJpZGVWaWV3cG9ydEFyZ3VtZW50cyhXVEY6Om51bGxvcHQpOwogCiAgICAgW3dlYlZpZXcg
c2V0TmVlZHNMYXlvdXRdOwpAQCAtNzc1LDExICs3NzUsMTEgQEAgLSAodm9pZClfY29tcGxldGVk
RXhpdEZ1bGxTY3JlZW4KICAgICAgICAgX3dlYlZpZXdQbGFjZWhvbGRlci5nZXQoKS5wYXJlbnQg
PSBuaWw7CiAgICAgICAgIFtfd2ViVmlld1BsYWNlaG9sZGVyIHJlbW92ZUZyb21TdXBlcnZpZXdd
OwogCi0gICAgICAgIGlmIChhdXRvKiBwYWdlID0gW3NlbGYuX3dlYlZpZXcgX3BhZ2VdKQorICAg
ICAgICBpZiAoYXV0byBwYWdlID0gW3NlbGYuX3dlYlZpZXcgX3BhZ2VdKQogICAgICAgICAgICAg
cGFnZS0+c2V0U3VwcHJlc3NWaXNpYmlsaXR5VXBkYXRlcyhmYWxzZSk7CiAgICAgfSk7CiAKLSAg
ICBpZiAoYXV0byogcGFnZSA9IFtzZWxmLl93ZWJWaWV3IF9wYWdlXSkKKyAgICBpZiAoYXV0byBw
YWdlID0gW3NlbGYuX3dlYlZpZXcgX3BhZ2VdKQogICAgICAgICBwYWdlLT5mb3JjZVJlcGFpbnQo
X3JlcGFpbnRDYWxsYmFjay5jb3B5UmVmKCkpOwogICAgIGVsc2UKICAgICAgICAgX3JlcGFpbnRD
YWxsYmFjay0+cGVyZm9ybUNhbGxiYWNrKCk7CkBAIC04OTMsNyArODkzLDcgQEAgLSAodm9pZClf
ZXhpdEZ1bGxzY3JlZW5JbW1lZGlhdGVseQogICAgIFJldGFpblB0cjxXS1dlYlZpZXc+IHdlYlZp
ZXcgPSBzZWxmLl93ZWJWaWV3OwogICAgIF93ZWJWaWV3UGxhY2Vob2xkZXIuZ2V0KCkucGFyZW50
ID0gbmlsOwogICAgIFdlYktpdDo6cmVwbGFjZVZpZXdXaXRoVmlldyhfd2ViVmlld1BsYWNlaG9s
ZGVyLmdldCgpLCB3ZWJWaWV3LmdldCgpKTsKLSAgICBpZiAoYXV0byogcGFnZSA9IFt3ZWJWaWV3
IF9wYWdlXSkKKyAgICBpZiAoYXV0byBwYWdlID0gW3dlYlZpZXcgX3BhZ2VdKQogICAgICAgICBw
YWdlLT5zZXRTdXBwcmVzc1Zpc2liaWxpdHlVcGRhdGVzKGZhbHNlKTsKICAgICBfd2ViVmlld1Bs
YWNlaG9sZGVyID0gbmlsOwogfQpAQCAtOTkyLDcgKzk5Miw3IEBAIC0gKHZvaWQpX3VwZGF0ZUxv
Y2F0aW9uSW5mbwogCiAtIChXZWJLaXQ6OldlYkZ1bGxTY3JlZW5NYW5hZ2VyUHJveHkqKV9tYW5h
Z2VyCiB7Ci0gICAgaWYgKGF1dG8qIHBhZ2UgPSBbc2VsZi5fd2ViVmlldyBfcGFnZV0pCisgICAg
aWYgKGF1dG8gcGFnZSA9IFtzZWxmLl93ZWJWaWV3IF9wYWdlXSkKICAgICAgICAgcmV0dXJuIHBh
Z2UtPmZ1bGxTY3JlZW5NYW5hZ2VyKCk7CiAgICAgcmV0dXJuIG51bGxwdHI7CiB9CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9tYWMvV0tGdWxsU2NyZWVuV2luZG93Q29udHJv
bGxlci5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvbWFjL1dLRnVsbFNjcmVlbldpbmRvd0Nv
bnRyb2xsZXIuaAppbmRleCAwMWQ3YTJhYjc1MThlNjM3OThlZmFmMjZkMzljNjk1NTgwMWM3Y2Iz
Li5iOTQwN2YxMzA0NGFlODUxODU1Y2I4MTI2ODRiMWNjYmFjMDdmMzEyIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9tYWMvV0tGdWxsU2NyZWVuV2luZG93Q29udHJvbGxlci5o
CisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL21hYy9XS0Z1bGxTY3JlZW5XaW5kb3dDb250
cm9sbGVyLmgKQEAgLTI3LDYgKzI3LDggQEAKIAogI2ltcG9ydCA8QXBwS2l0L0FwcEtpdC5oPgog
I2ltcG9ydCAiR2VuZXJpY0NhbGxiYWNrLmgiCisjaW1wb3J0IDx3dGYvTmFrZWRQdHIuaD4KKyNp
bXBvcnQgPHd0Zi9OYWtlZFJlZi5oPgogI2ltcG9ydCA8d3RmL1JldGFpblB0ci5oPgogCiBuYW1l
c3BhY2UgV2ViS2l0IHsgCkBAIC00Nyw3ICs0OSw3IEBAIHR5cGVkZWYgZW51bSBGdWxsU2NyZWVu
U3RhdGUgOiBOU0ludGVnZXIgRnVsbFNjcmVlblN0YXRlOwogQGludGVyZmFjZSBXS0Z1bGxTY3Jl
ZW5XaW5kb3dDb250cm9sbGVyIDogTlNXaW5kb3dDb250cm9sbGVyPE5TV2luZG93RGVsZWdhdGU+
IHsKIEBwcml2YXRlCiAgICAgTlNWaWV3ICpfd2ViVmlldzsgLy8gQ2Fubm90IGJlIHJldGFpbmVk
LCBzZWUgPHJkYXI6Ly9wcm9ibGVtLzE0ODg0NjY2Pi4KLSAgICBXZWJLaXQ6OldlYlBhZ2VQcm94
eSogX3BhZ2U7CisgICAgTmFrZWRQdHI8V2ViS2l0OjpXZWJQYWdlUHJveHk+IF9wYWdlOwogICAg
IFJldGFpblB0cjxXZWJDb3JlRnVsbFNjcmVlblBsYWNlaG9sZGVyVmlldz4gX3dlYlZpZXdQbGFj
ZWhvbGRlcjsKICAgICBSZXRhaW5QdHI8TlNWaWV3PiBfZXhpdFBsYWNlaG9sZGVyOwogICAgIFJl
dGFpblB0cjxOU1ZpZXc+IF9jbGlwVmlldzsKQEAgLTcwLDcgKzcyLDcgQEAgdHlwZWRlZiBlbnVt
IEZ1bGxTY3JlZW5TdGF0ZSA6IE5TSW50ZWdlciBGdWxsU2NyZWVuU3RhdGU7CiBAcHJvcGVydHkg
KHJlYWRvbmx5KSBOU1JlY3QgZmluYWxGcmFtZTsKIEBwcm9wZXJ0eSAoYXNzaWduKSBOU0FycmF5
ICpzYXZlZENvbnN0cmFpbnRzOwogCi0tIChpZClpbml0V2l0aFdpbmRvdzooTlNXaW5kb3cgKil3
aW5kb3cgd2ViVmlldzooTlNWaWV3ICopd2ViVmlldyBwYWdlOihXZWJLaXQ6OldlYlBhZ2VQcm94
eSYpcGFnZTsKKy0gKGlkKWluaXRXaXRoV2luZG93OihOU1dpbmRvdyAqKXdpbmRvdyB3ZWJWaWV3
OihOU1ZpZXcgKil3ZWJWaWV3IHBhZ2U6KE5ha2VkUmVmPFdlYktpdDo6V2ViUGFnZVByb3h5Pilw
YWdlOwogCiAtIChXZWJDb3JlRnVsbFNjcmVlblBsYWNlaG9sZGVyVmlldyopd2ViVmlld1BsYWNl
aG9sZGVyOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9tYWMvV0tGdWxs
U2NyZWVuV2luZG93Q29udHJvbGxlci5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL21hYy9X
S0Z1bGxTY3JlZW5XaW5kb3dDb250cm9sbGVyLm1tCmluZGV4IDgyNWY4M2FlODg2ZGQ4Y2RkMDc1
MzA2YTA3ODIxNjIxYzlkOWUxNDQuLjZkZGYwZDZjYWY4ODlmOWNhMGUxOWI1MTY2NGNjMDk0YTk3
MDdlYjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL21hYy9XS0Z1bGxTY3Jl
ZW5XaW5kb3dDb250cm9sbGVyLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL21hYy9X
S0Z1bGxTY3JlZW5XaW5kb3dDb250cm9sbGVyLm1tCkBAIC00OSw2ICs0OSw3IEBACiAjaW1wb3J0
IDxwYWwvc3BpL2NnL0NvcmVHcmFwaGljc1NQSS5oPgogI2ltcG9ydCA8cGFsL3N5c3RlbS9TbGVl
cERpc2FibGVyLmg+CiAjaW1wb3J0IDx3dGYvQmxvY2tPYmpDRXhjZXB0aW9ucy5oPgorI2ltcG9y
dCA8d3RmL05ha2VkUmVmLmg+CiAKIHN0YXRpYyBjb25zdCBOU1RpbWVJbnRlcnZhbCBEZWZhdWx0
V2F0Y2hkb2dUaW1lckludGVydmFsID0gMTsKIApAQCAtMTIxLDcgKzEyMiw3IEBAIEBpbXBsZW1l
bnRhdGlvbiBXS0Z1bGxTY3JlZW5XaW5kb3dDb250cm9sbGVyCiAKICNwcmFnbWEgbWFyayAtCiAj
cHJhZ21hIG1hcmsgSW5pdGlhbGl6YXRpb24KLS0gKGlkKWluaXRXaXRoV2luZG93OihOU1dpbmRv
dyAqKXdpbmRvdyB3ZWJWaWV3OihOU1ZpZXcgKil3ZWJWaWV3IHBhZ2U6KFdlYktpdDo6V2ViUGFn
ZVByb3h5JilwYWdlCistIChpZClpbml0V2l0aFdpbmRvdzooTlNXaW5kb3cgKil3aW5kb3cgd2Vi
VmlldzooTlNWaWV3ICopd2ViVmlldyBwYWdlOihOYWtlZFJlZjxXZWJLaXQ6OldlYlBhZ2VQcm94
eT4pcGFnZQogewogICAgIHNlbGYgPSBbc3VwZXIgaW5pdFdpdGhXaW5kb3c6d2luZG93XTsKICAg
ICBpZiAoIXNlbGYpCkBAIC0xNTAsNyArMTUxLDcgQEAgLSAoaWQpaW5pdFdpdGhXaW5kb3c6KE5T
V2luZG93ICopd2luZG93IHdlYlZpZXc6KE5TVmlldyAqKXdlYlZpZXcgcGFnZTooV2ViS2l0OjoK
ICAgICBbc2VsZiB3aW5kb3dEaWRMb2FkXTsKICAgICBbd2luZG93IGRpc3BsYXlJZk5lZWRlZF07
CiAgICAgX3dlYlZpZXcgPSB3ZWJWaWV3OwotICAgIF9wYWdlID0gJnBhZ2U7CisgICAgX3BhZ2Ug
PSBwYWdlLnB0cigpOwogCiAgICAgX3ZpZGVvRnVsbHNjcmVlbkNsaWVudCA9IG1ha2VVbmlxdWU8
V2ViS2l0OjpXS0Z1bGxTY3JlZW5XaW5kb3dDb250cm9sbGVyVmlkZW9GdWxsc2NyZWVuTW9kZWxD
bGllbnQ+KCk7CiAgICAgX3ZpZGVvRnVsbHNjcmVlbkNsaWVudC0+c2V0UGFyZW50KHNlbGYpOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvbWFjL1dLSW1tZWRpYXRlQWN0aW9u
Q29udHJvbGxlci5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvbWFjL1dLSW1tZWRpYXRlQWN0
aW9uQ29udHJvbGxlci5oCmluZGV4IGY2YmY2NWYwNzQyODIyZmY5YjFjMGI2OWVlNzVhNzg3Y2U0
ZjdjM2MuLmYyZDk3ZmUwNzgzMDk4MjdkZGQwYTIzYzIxNWJlMjYwMzYyMmJkMWEgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL21hYy9XS0ltbWVkaWF0ZUFjdGlvbkNvbnRyb2xs
ZXIuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9tYWMvV0tJbW1lZGlhdGVBY3Rpb25D
b250cm9sbGVyLmgKQEAgLTMxLDYgKzMxLDggQEAKICNpbXBvcnQgIldLSW1tZWRpYXRlQWN0aW9u
VHlwZXMuaCIKICNpbXBvcnQgIldlYkhpdFRlc3RSZXN1bHREYXRhLmgiCiAjaW1wb3J0IDxwYWwv
c3BpL21hYy9OU0ltbWVkaWF0ZUFjdGlvbkdlc3R1cmVSZWNvZ25pemVyU1BJLmg+CisjaW1wb3J0
IDx3dGYvTmFrZWRQdHIuaD4KKyNpbXBvcnQgPHd0Zi9OYWtlZFJlZi5oPgogI2ltcG9ydCA8d3Rm
L1JldGFpblB0ci5oPgogCiBuYW1lc3BhY2UgV2ViS2l0IHsKQEAgLTUwLDkgKzUyLDkgQEAgZW51
bSBjbGFzcyBJbW1lZGlhdGVBY3Rpb25TdGF0ZSB7CiAKIEBpbnRlcmZhY2UgV0tJbW1lZGlhdGVB
Y3Rpb25Db250cm9sbGVyIDogTlNPYmplY3QgPE5TSW1tZWRpYXRlQWN0aW9uR2VzdHVyZVJlY29n
bml6ZXJEZWxlZ2F0ZT4gewogQHByaXZhdGUKLSAgICBXZWJLaXQ6OldlYlBhZ2VQcm94eSogX3Bh
Z2U7CisgICAgTmFrZWRQdHI8V2ViS2l0OjpXZWJQYWdlUHJveHk+IF9wYWdlOwogICAgIE5TVmll
dyAqX3ZpZXc7Ci0gICAgV2ViS2l0OjpXZWJWaWV3SW1wbCogX3ZpZXdJbXBsOworICAgIE5ha2Vk
UHRyPFdlYktpdDo6V2ViVmlld0ltcGw+IF92aWV3SW1wbDsKIAogICAgIFdlYktpdDo6SW1tZWRp
YXRlQWN0aW9uU3RhdGUgX3N0YXRlOwogICAgIFdlYktpdDo6V2ViSGl0VGVzdFJlc3VsdERhdGEg
X2hpdFRlc3RSZXN1bHREYXRhOwpAQCAtNjgsNyArNzAsNyBAQCBlbnVtIGNsYXNzIEltbWVkaWF0
ZUFjdGlvblN0YXRlIHsKICAgICBCT09MIF9oYXNBY3RpdmVJbW1lZGlhdGVBY3Rpb247CiB9CiAK
LS0gKGluc3RhbmNldHlwZSlpbml0V2l0aFBhZ2U6KFdlYktpdDo6V2ViUGFnZVByb3h5JilwYWdl
IHZpZXc6KE5TVmlldyAqKXZpZXcgdmlld0ltcGw6KFdlYktpdDo6V2ViVmlld0ltcGwmKXZpZXdJ
bXBsIHJlY29nbml6ZXI6KE5TSW1tZWRpYXRlQWN0aW9uR2VzdHVyZVJlY29nbml6ZXIgKilpbW1l
ZGlhdGVBY3Rpb25SZWNvZ25pemVyOworLSAoaW5zdGFuY2V0eXBlKWluaXRXaXRoUGFnZTooTmFr
ZWRSZWY8V2ViS2l0OjpXZWJQYWdlUHJveHk+KXBhZ2UgdmlldzooTlNWaWV3ICopdmlldyB2aWV3
SW1wbDooTmFrZWRSZWY8V2ViS2l0OjpXZWJWaWV3SW1wbD4pdmlld0ltcGwgcmVjb2duaXplcjoo
TlNJbW1lZGlhdGVBY3Rpb25HZXN0dXJlUmVjb2duaXplciAqKWltbWVkaWF0ZUFjdGlvblJlY29n
bml6ZXI7CiAtICh2b2lkKXdpbGxEZXN0cm95VmlldzooTlNWaWV3ICopdmlldzsKIC0gKHZvaWQp
ZGlkUGVyZm9ybUltbWVkaWF0ZUFjdGlvbkhpdFRlc3Q6KGNvbnN0IFdlYktpdDo6V2ViSGl0VGVz
dFJlc3VsdERhdGEmKWhpdFRlc3RSZXN1bHQgY29udGVudFByZXZlbnRzRGVmYXVsdDooQk9PTClj
b250ZW50UHJldmVudHNEZWZhdWx0IHVzZXJEYXRhOihBUEk6Ok9iamVjdCopdXNlckRhdGE7CiAt
ICh2b2lkKWRpc21pc3NDb250ZW50UmVsYXRpdmVDaGlsZFdpbmRvd3M7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9tYWMvV0tJbW1lZGlhdGVBY3Rpb25Db250cm9sbGVyLm1t
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvbWFjL1dLSW1tZWRpYXRlQWN0aW9uQ29udHJvbGxl
ci5tbQppbmRleCBhZTg3YWE5Y2IwZDNmOTJhZGQwNzEzYzFkMGIwOTMwZjdlMTE4MDY3Li4zOGRi
ZjEwNGU3NTVmMzQzNjkyMTFhZGYyOWFlYmQxOTNiMDIyZmQxIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9tYWMvV0tJbW1lZGlhdGVBY3Rpb25Db250cm9sbGVyLm1tCisrKyBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL21hYy9XS0ltbWVkaWF0ZUFjdGlvbkNvbnRyb2xsZXIu
bW0KQEAgLTYwLDE2ICs2MCwxNiBAQCBAZW5kCiAKIEBpbXBsZW1lbnRhdGlvbiBXS0ltbWVkaWF0
ZUFjdGlvbkNvbnRyb2xsZXIKIAotLSAoaW5zdGFuY2V0eXBlKWluaXRXaXRoUGFnZTooV2ViS2l0
OjpXZWJQYWdlUHJveHkmKXBhZ2UgdmlldzooTlNWaWV3ICopdmlldyB2aWV3SW1wbDooV2ViS2l0
OjpXZWJWaWV3SW1wbCYpdmlld0ltcGwgcmVjb2duaXplcjooTlNJbW1lZGlhdGVBY3Rpb25HZXN0
dXJlUmVjb2duaXplciAqKWltbWVkaWF0ZUFjdGlvblJlY29nbml6ZXIKKy0gKGluc3RhbmNldHlw
ZSlpbml0V2l0aFBhZ2U6KE5ha2VkUmVmPFdlYktpdDo6V2ViUGFnZVByb3h5PilwYWdlIHZpZXc6
KE5TVmlldyAqKXZpZXcgdmlld0ltcGw6KE5ha2VkUmVmPFdlYktpdDo6V2ViVmlld0ltcGw+KXZp
ZXdJbXBsIHJlY29nbml6ZXI6KE5TSW1tZWRpYXRlQWN0aW9uR2VzdHVyZVJlY29nbml6ZXIgKilp
bW1lZGlhdGVBY3Rpb25SZWNvZ25pemVyCiB7CiAgICAgc2VsZiA9IFtzdXBlciBpbml0XTsKIAog
ICAgIGlmICghc2VsZikKICAgICAgICAgcmV0dXJuIG5pbDsKIAotICAgIF9wYWdlID0gJnBhZ2U7
CisgICAgX3BhZ2UgPSBwYWdlLnB0cigpOwogICAgIF92aWV3ID0gdmlldzsKLSAgICBfdmlld0lt
cGwgPSAmdmlld0ltcGw7CisgICAgX3ZpZXdJbXBsID0gdmlld0ltcGwucHRyKCk7CiAgICAgX3R5
cGUgPSBrV0tJbW1lZGlhdGVBY3Rpb25Ob25lOwogICAgIF9pbW1lZGlhdGVBY3Rpb25SZWNvZ25p
emVyID0gaW1tZWRpYXRlQWN0aW9uUmVjb2duaXplcjsKICAgICBfaGFzQWN0aXZlSW1tZWRpYXRl
QWN0aW9uID0gTk87CkBAIC00MTIsNyArNDEyLDcgQEAgLSAoaWQ8TlNJbW1lZGlhdGVBY3Rpb25B
bmltYXRpb25Db250cm9sbGVyPilfYW5pbWF0aW9uQ29udHJvbGxlckZvckRhdGFEZXRlY3RlZFQK
ICAgICBpZiAoIVtbZ2V0RERBY3Rpb25zTWFuYWdlckNsYXNzKCkgc2hhcmVkTWFuYWdlcl0gaGFz
QWN0aW9uc0ZvclJlc3VsdDphY3Rpb25Db250ZXh0Lm1haW5SZXN1bHQgYWN0aW9uQ29udGV4dDph
Y3Rpb25Db250ZXh0XSkKICAgICAgICAgcmV0dXJuIG5pbDsKIAotICAgIFJlZlB0cjxXZWJLaXQ6
OldlYlBhZ2VQcm94eT4gcGFnZSA9IF9wYWdlOworICAgIFJlZlB0cjxXZWJLaXQ6OldlYlBhZ2VQ
cm94eT4gcGFnZSA9IF9wYWdlLmdldCgpOwogICAgIFdlYkNvcmU6OlBhZ2VPdmVybGF5OjpQYWdl
T3ZlcmxheUlEIG92ZXJsYXlJRCA9IF9oaXRUZXN0UmVzdWx0RGF0YS5kZXRlY3RlZERhdGFPcmln
aW5hdGluZ1BhZ2VPdmVybGF5OwogICAgIF9jdXJyZW50QWN0aW9uQ29udGV4dCA9IFthY3Rpb25D
b250ZXh0IGNvbnRleHRGb3JWaWV3Ol92aWV3IGFsdE1vZGU6WUVTIGludGVyYWN0aW9uU3RhcnRl
ZEhhbmRsZXI6XigpIHsKICAgICAgICAgcGFnZS0+c2VuZChNZXNzYWdlczo6V2ViUGFnZTo6RGF0
YURldGVjdG9yc0RpZFByZXNlbnRVSShvdmVybGF5SUQpKTsKQEAgLTQ0OCw3ICs0NDgsNyBAQCAt
IChpZDxOU0ltbWVkaWF0ZUFjdGlvbkFuaW1hdGlvbkNvbnRyb2xsZXI+KV9hbmltYXRpb25Db250
cm9sbGVyRm9yRGF0YURldGVjdGVkTAogICAgIFthY3Rpb25Db250ZXh0IHNldEFsdE1vZGU6WUVT
XTsKICAgICBbYWN0aW9uQ29udGV4dCBzZXRJbW1lZGlhdGU6WUVTXTsKIAotICAgIFJlZlB0cjxX
ZWJLaXQ6OldlYlBhZ2VQcm94eT4gcGFnZSA9IF9wYWdlOworICAgIFJlZlB0cjxXZWJLaXQ6Oldl
YlBhZ2VQcm94eT4gcGFnZSA9IF9wYWdlLmdldCgpOwogICAgIF9jdXJyZW50QWN0aW9uQ29udGV4
dCA9IFthY3Rpb25Db250ZXh0IGNvbnRleHRGb3JWaWV3Ol92aWV3IGFsdE1vZGU6WUVTIGludGVy
YWN0aW9uU3RhcnRlZEhhbmRsZXI6XigpIHsKICAgICB9IGludGVyYWN0aW9uQ2hhbmdlZEhhbmRs
ZXI6XigpIHsKICAgICAgICAgaWYgKF9oaXRUZXN0UmVzdWx0RGF0YS5saW5rVGV4dEluZGljYXRv
cikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL21hYy9XS0luc3BlY3RvclZp
ZXdDb250cm9sbGVyLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9tYWMvV0tJbnNwZWN0b3JW
aWV3Q29udHJvbGxlci5oCmluZGV4IDIwYmIyZTY2MWI1ZmVmZTczNjE5ZDAxYzZjM2MzOGEzNjYy
OGYyOTAuLjA4YmQwOGZmOWQ0ODdjNDBiNWVkZDFiNzFlNzhjMzkzNzlhYTJmNDMgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL21hYy9XS0luc3BlY3RvclZpZXdDb250cm9sbGVy
LmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvbWFjL1dLSW5zcGVjdG9yVmlld0NvbnRy
b2xsZXIuaApAQCAtMjYsNiArMjYsNyBAQAogI3ByYWdtYSBvbmNlCiAKICNpbXBvcnQgPFdlYktp
dC9XS0ZvdW5kYXRpb24uaD4KKyNpbXBvcnQgPHd0Zi9OYWtlZFB0ci5oPgogCiAjaWYgUExBVEZP
Uk0oTUFDKQogCkBAIC00NCw3ICs0NSw3IEBAIE5TX0FTU1VNRV9OT05OVUxMX0JFR0lOCiBAcHJv
cGVydHkgKG5vbmF0b21pYywgcmVhZG9ubHkpIFdLV2ViVmlldyAqd2ViVmlldzsKIEBwcm9wZXJ0
eSAobm9uYXRvbWljLCB3ZWFrKSBpZCA8V0tJbnNwZWN0b3JWaWV3Q29udHJvbGxlckRlbGVnYXRl
PiBkZWxlZ2F0ZTsKIAotLSAoaW5zdGFuY2V0eXBlKWluaXRXaXRoSW5zcGVjdGVkUGFnZTooV2Vi
S2l0OjpXZWJQYWdlUHJveHkqIF9OdWxsYWJsZSlpbnNwZWN0ZWRQYWdlOworLSAoaW5zdGFuY2V0
eXBlKWluaXRXaXRoSW5zcGVjdGVkUGFnZTooTmFrZWRQdHI8V2ViS2l0OjpXZWJQYWdlUHJveHk+
KWluc3BlY3RlZFBhZ2U7CiAKICsgKEJPT0wpdmlld0lzSW5zcGVjdG9yV2ViVmlldzooTlNWaWV3
ICopdmlldzsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvbWFjL1dLSW5z
cGVjdG9yVmlld0NvbnRyb2xsZXIubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9tYWMvV0tJ
bnNwZWN0b3JWaWV3Q29udHJvbGxlci5tbQppbmRleCAwZjY1NzFiMmJlZjRhYzY5YmFhYzFiZWYx
MGZkZmY5OWQ3NDJiNmJkLi5kOTI2M2UwZmQ2ZTZhZmE2YmE3YjVhMTk4NTk4OTU0NGY3YWE3MGU4
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9tYWMvV0tJbnNwZWN0b3JWaWV3
Q29udHJvbGxlci5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9tYWMvV0tJbnNwZWN0
b3JWaWV3Q29udHJvbGxlci5tbQpAQCAtNDksMTIgKzQ5LDEyIEBAIEBpbnRlcmZhY2UgV0tJbnNw
ZWN0b3JWaWV3Q29udHJvbGxlciAoKSA8V0tVSURlbGVnYXRlLCBXS05hdmlnYXRpb25EZWxlZ2F0
ZSwgV0tJCiBAZW5kCiAKIEBpbXBsZW1lbnRhdGlvbiBXS0luc3BlY3RvclZpZXdDb250cm9sbGVy
IHsKLSAgICBXZWJLaXQ6OldlYlBhZ2VQcm94eSogX2luc3BlY3RlZFBhZ2U7CisgICAgTmFrZWRQ
dHI8V2ViS2l0OjpXZWJQYWdlUHJveHk+IF9pbnNwZWN0ZWRQYWdlOwogICAgIFJldGFpblB0cjxX
S0luc3BlY3RvcldLV2ViVmlldz4gX3dlYlZpZXc7CiAgICAgV2Vha09iakNQdHI8aWQgPFdLSW5z
cGVjdG9yVmlld0NvbnRyb2xsZXJEZWxlZ2F0ZT4+IF9kZWxlZ2F0ZTsKIH0KIAotLSAoaW5zdGFu
Y2V0eXBlKWluaXRXaXRoSW5zcGVjdGVkUGFnZTooV2ViS2l0OjpXZWJQYWdlUHJveHkqKWluc3Bl
Y3RlZFBhZ2UKKy0gKGluc3RhbmNldHlwZSlpbml0V2l0aEluc3BlY3RlZFBhZ2U6KE5ha2VkUHRy
PFdlYktpdDo6V2ViUGFnZVByb3h5PilpbnNwZWN0ZWRQYWdlCiB7CiAgICAgaWYgKCEoc2VsZiA9
IFtzdXBlciBpbml0XSkpCiAgICAgICAgIHJldHVybiBuaWw7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9tYWMvV0tUZXh0RmluZGVyQ2xpZW50LmggYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9tYWMvV0tUZXh0RmluZGVyQ2xpZW50LmgKaW5kZXggNzlmZmVjZmZhNWFiNDkx
NzQxZTM1YWMxYWRjZGEyZGJiOTU4MTIzMi4uOWI2MGRiZjY2OTI5ZmZjOTMyZGIzNjcyOTEwZDk4
MTkzYmI1N2ZlNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvbWFjL1dLVGV4
dEZpbmRlckNsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL21hYy9XS1RleHRG
aW5kZXJDbGllbnQuaApAQCAtMjcsNiArMjcsNyBAQAogI2RlZmluZSBXS1RleHRGaW5kZXJDbGll
bnRfaAogCiAjaW1wb3J0IDxXZWJLaXQvV0tGb3VuZGF0aW9uLmg+CisjaW1wb3J0IDx3dGYvTmFr
ZWRSZWYuaD4KIAogI2lmIFBMQVRGT1JNKE1BQykKIApAQCAtMzgsNyArMzksNyBAQCBjbGFzcyBX
ZWJQYWdlUHJveHk7CiAKIEBpbnRlcmZhY2UgV0tUZXh0RmluZGVyQ2xpZW50IDogTlNPYmplY3QK
IAotLSAoaW5zdGFuY2V0eXBlKWluaXRXaXRoUGFnZTooV2ViS2l0OjpXZWJQYWdlUHJveHkmKXBh
Z2UgdmlldzooTlNWaWV3ICopdmlldyB1c2VQbGF0Zm9ybUZpbmRVSTooQk9PTCl1c2VQbGF0Zm9y
bUZpbmRVSTsKKy0gKGluc3RhbmNldHlwZSlpbml0V2l0aFBhZ2U6KE5ha2VkUmVmPFdlYktpdDo6
V2ViUGFnZVByb3h5PilwYWdlIHZpZXc6KE5TVmlldyAqKXZpZXcgdXNlUGxhdGZvcm1GaW5kVUk6
KEJPT0wpdXNlUGxhdGZvcm1GaW5kVUk7CiAtICh2b2lkKXdpbGxEZXN0cm95VmlldzooTlNWaWV3
ICopdmlldzsKIAogQGVuZApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvbWFj
L1dLVGV4dEZpbmRlckNsaWVudC5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL21hYy9XS1Rl
eHRGaW5kZXJDbGllbnQubW0KaW5kZXggNjlkOWQ5ZTJkNDQ0ODQzZDE1MjcwZjUxMTdmNzc0Y2Qy
MzdkNWRiOC4uMzk2OGVkYTYzZGVkZTI5MDVlYzJmNzBlNTU5YzFiOGRhOTQ0MDI4ZSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvbWFjL1dLVGV4dEZpbmRlckNsaWVudC5tbQor
KysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9tYWMvV0tUZXh0RmluZGVyQ2xpZW50Lm1tCkBA
IC0zNiw2ICszNiw3IEBACiAjaW1wb3J0IDxwYWwvc3BpL21hYy9OU1RleHRGaW5kZXJTUEkuaD4K
ICNpbXBvcnQgPHd0Zi9CbG9ja1B0ci5oPgogI2ltcG9ydCA8d3RmL0RlcXVlLmg+CisjaW1wb3J0
IDx3dGYvTmFrZWRQdHIuaD4KIAogLy8gRklYTUU6IEltcGxlbWVudCBzY3JvbGxGaW5kTWF0Y2hU
b1Zpc2libGUuCiAvLyBGSVhNRTogVGhlIE5TVGV4dEZpbmRlciBvdmVybGF5IGRvZXNuJ3QgbW92
ZSB3aXRoIHNjcm9sbGluZzsgd2Ugc2hvdWxkIGhhdmUgYSBtb2RlIHdoZXJlIHdlIG1hbmFnZSB0
aGUgb3ZlcmxheS4KQEAgLTE1MSwyMSArMTUyLDIxIEBAIC0gKHVuc2lnbmVkKWluZGV4CiBAZW5k
CiAKIEBpbXBsZW1lbnRhdGlvbiBXS1RleHRGaW5kZXJDbGllbnQgewotICAgIFdlYktpdDo6V2Vi
UGFnZVByb3h5KiBfcGFnZTsKKyAgICBOYWtlZFB0cjxXZWJLaXQ6OldlYlBhZ2VQcm94eT4gX3Bh
Z2U7CiAgICAgTlNWaWV3ICpfdmlldzsKICAgICBEZXF1ZTxXVEY6OkZ1bmN0aW9uPHZvaWQoTlNB
cnJheSAqLCBib29sIGRpZFdyYXApPj4gX2ZpbmRSZXBseUNhbGxiYWNrczsKICAgICBEZXF1ZTxX
VEY6OkZ1bmN0aW9uPHZvaWQoTlNJbWFnZSAqKT4+IF9pbWFnZVJlcGx5Q2FsbGJhY2tzOwogICAg
IEJPT0wgX3VzZVBsYXRmb3JtRmluZFVJOwogfQogCi0tIChpbnN0YW5jZXR5cGUpaW5pdFdpdGhQ
YWdlOihXZWJLaXQ6OldlYlBhZ2VQcm94eSYpcGFnZSB2aWV3OihOU1ZpZXcgKil2aWV3IHVzZVBs
YXRmb3JtRmluZFVJOihCT09MKXVzZVBsYXRmb3JtRmluZFVJCistIChpbnN0YW5jZXR5cGUpaW5p
dFdpdGhQYWdlOihOYWtlZFJlZjxXZWJLaXQ6OldlYlBhZ2VQcm94eT4pcGFnZSB2aWV3OihOU1Zp
ZXcgKil2aWV3IHVzZVBsYXRmb3JtRmluZFVJOihCT09MKXVzZVBsYXRmb3JtRmluZFVJCiB7CiAg
ICAgc2VsZiA9IFtzdXBlciBpbml0XTsKIAogICAgIGlmICghc2VsZikKICAgICAgICAgcmV0dXJu
IG5pbDsKIAotICAgIF9wYWdlID0gJnBhZ2U7CisgICAgX3BhZ2UgPSBwYWdlLnB0cigpOwogICAg
IF92aWV3ID0gdmlldzsKICAgICBfdXNlUGxhdGZvcm1GaW5kVUkgPSB1c2VQbGF0Zm9ybUZpbmRV
STsKICAgICAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL21hYy9XS1ZpZXdM
YXlvdXRTdHJhdGVneS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvbWFjL1dLVmlld0xheW91
dFN0cmF0ZWd5LmgKaW5kZXggMmRmN2UwN2RiOWViYmNmN2ExMTExMmU1NjI3MGU0MDY3YzU4ODk4
Ny4uMmZlZWY0Zjg5NzBiOTEwMTZlNjgzZjNmMWQ2YTc1NDdkODczNThmNSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvbWFjL1dLVmlld0xheW91dFN0cmF0ZWd5LmgKKysrIGIv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvbWFjL1dLVmlld0xheW91dFN0cmF0ZWd5LmgKQEAgLTI5
LDYgKzI5LDggQEAKICNpZiBQTEFURk9STShNQUMpCiAKICNpbXBvcnQgIldLTGF5b3V0TW9kZS5o
IgorI2ltcG9ydCA8d3RmL05ha2VkUHRyLmg+CisjaW1wb3J0IDx3dGYvTmFrZWRSZWYuaD4KIAog
bmFtZXNwYWNlIFdlYktpdCB7CiBjbGFzcyBXZWJQYWdlUHJveHk7CkBAIC0zOSwxNSArNDEsMTUg
QEAgY2xhc3MgV2ViVmlld0ltcGw7CiAKIEBpbnRlcmZhY2UgV0tWaWV3TGF5b3V0U3RyYXRlZ3kg
OiBOU09iamVjdCB7CiBAcGFja2FnZQotICAgIFdlYktpdDo6V2ViUGFnZVByb3h5KiBfcGFnZTsK
LSAgICBXZWJLaXQ6OldlYlZpZXdJbXBsKiBfd2ViVmlld0ltcGw7CisgICAgTmFrZWRQdHI8V2Vi
S2l0OjpXZWJQYWdlUHJveHk+IF9wYWdlOworICAgIE5ha2VkUHRyPFdlYktpdDo6V2ViVmlld0lt
cGw+IF93ZWJWaWV3SW1wbDsKICAgICBOU1ZpZXcgKl92aWV3OwogCiAgICAgV0tMYXlvdXRNb2Rl
IF9sYXlvdXRNb2RlOwogICAgIHVuc2lnbmVkIF9mcmFtZVNpemVVcGRhdGVzRGlzYWJsZWRDb3Vu
dDsKIH0KIAotKyAoaW5zdGFuY2V0eXBlKWxheW91dFN0cmF0ZWd5V2l0aFBhZ2U6KFdlYktpdDo6
V2ViUGFnZVByb3h5JilwYWdlIHZpZXc6KE5TVmlldyAqKXZpZXcgdmlld0ltcGw6KFdlYktpdDo6
V2ViVmlld0ltcGwmKXdlYlZpZXdJbXBsIG1vZGU6KFdLTGF5b3V0TW9kZSltb2RlOworKyAoaW5z
dGFuY2V0eXBlKWxheW91dFN0cmF0ZWd5V2l0aFBhZ2U6KE5ha2VkUmVmPFdlYktpdDo6V2ViUGFn
ZVByb3h5PilwYWdlIHZpZXc6KE5TVmlldyAqKXZpZXcgdmlld0ltcGw6KE5ha2VkUmVmPFdlYktp
dDo6V2ViVmlld0ltcGw+KXdlYlZpZXdJbXBsIG1vZGU6KFdLTGF5b3V0TW9kZSltb2RlOwogCiAt
ICh2b2lkKWludmFsaWRhdGU7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L21hYy9XS1ZpZXdMYXlvdXRTdHJhdGVneS5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL21h
Yy9XS1ZpZXdMYXlvdXRTdHJhdGVneS5tbQppbmRleCA2MzlkNTk5NDU0MjhiMDI1NjI4YzM1YjUy
NWM1NjI2MmQxZDNkZDFiLi5lYjBiYWIzMDExMjlmYTA4M2U5YTE2ZGU2MmNlY2U2MDBkMDEzZDg0
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9tYWMvV0tWaWV3TGF5b3V0U3Ry
YXRlZ3kubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvbWFjL1dLVmlld0xheW91dFN0
cmF0ZWd5Lm1tCkBAIC00NywyMyArNDcsMjMgQEAgQGVuZAogCiBAaW1wbGVtZW50YXRpb24gV0tW
aWV3TGF5b3V0U3RyYXRlZ3kKIAotKyAoaW5zdGFuY2V0eXBlKWxheW91dFN0cmF0ZWd5V2l0aFBh
Z2U6KFdlYktpdDo6V2ViUGFnZVByb3h5JilwYWdlIHZpZXc6KE5TVmlldyAqKXZpZXcgdmlld0lt
cGw6KFdlYktpdDo6V2ViVmlld0ltcGwmKXdlYlZpZXdJbXBsIG1vZGU6KFdLTGF5b3V0TW9kZSlt
b2RlCisrIChpbnN0YW5jZXR5cGUpbGF5b3V0U3RyYXRlZ3lXaXRoUGFnZTooTmFrZWRSZWY8V2Vi
S2l0OjpXZWJQYWdlUHJveHk+KXBhZ2UgdmlldzooTlNWaWV3ICopdmlldyB2aWV3SW1wbDooTmFr
ZWRSZWY8V2ViS2l0OjpXZWJWaWV3SW1wbD4pd2ViVmlld0ltcGwgbW9kZTooV0tMYXlvdXRNb2Rl
KW1vZGUKIHsKICAgICBXS1ZpZXdMYXlvdXRTdHJhdGVneSAqc3RyYXRlZ3k7CiAKICAgICBzd2l0
Y2ggKG1vZGUpIHsKICAgICBjYXNlIGtXS0xheW91dE1vZGVGaXhlZFNpemU6Ci0gICAgICAgIHN0
cmF0ZWd5ID0gW1tXS1ZpZXdGaXhlZFNpemVMYXlvdXRTdHJhdGVneSBhbGxvY10gaW5pdFdpdGhQ
YWdlOnBhZ2Ugdmlldzp2aWV3IHZpZXdJbXBsOndlYlZpZXdJbXBsIG1vZGU6bW9kZV07CisgICAg
ICAgIHN0cmF0ZWd5ID0gW1tXS1ZpZXdGaXhlZFNpemVMYXlvdXRTdHJhdGVneSBhbGxvY10gaW5p
dFdpdGhQYWdlOnBhZ2UuY29weVJlZigpIHZpZXc6dmlldyB2aWV3SW1wbDp3ZWJWaWV3SW1wbC5j
b3B5UmVmKCkgbW9kZTptb2RlXTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBrV0tMYXlvdXRN
b2RlRHluYW1pY1NpemVDb21wdXRlZEZyb21WaWV3U2NhbGU6Ci0gICAgICAgIHN0cmF0ZWd5ID0g
W1tXS1ZpZXdEeW5hbWljU2l6ZUNvbXB1dGVkRnJvbVZpZXdTY2FsZUxheW91dFN0cmF0ZWd5IGFs
bG9jXSBpbml0V2l0aFBhZ2U6cGFnZSB2aWV3OnZpZXcgdmlld0ltcGw6d2ViVmlld0ltcGwgbW9k
ZTptb2RlXTsKKyAgICAgICAgc3RyYXRlZ3kgPSBbW1dLVmlld0R5bmFtaWNTaXplQ29tcHV0ZWRG
cm9tVmlld1NjYWxlTGF5b3V0U3RyYXRlZ3kgYWxsb2NdIGluaXRXaXRoUGFnZTpwYWdlLmNvcHlS
ZWYoKSB2aWV3OnZpZXcgdmlld0ltcGw6d2ViVmlld0ltcGwuY29weVJlZigpIG1vZGU6bW9kZV07
CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2Uga1dLTGF5b3V0TW9kZUR5bmFtaWNTaXplQ29tcHV0
ZWRGcm9tTWluaW11bURvY3VtZW50U2l6ZToKLSAgICAgICAgc3RyYXRlZ3kgPSBbW1dLVmlld0R5
bmFtaWNTaXplQ29tcHV0ZWRGcm9tTWluaW11bURvY3VtZW50U2l6ZUxheW91dFN0cmF0ZWd5IGFs
bG9jXSBpbml0V2l0aFBhZ2U6cGFnZSB2aWV3OnZpZXcgdmlld0ltcGw6d2ViVmlld0ltcGwgbW9k
ZTptb2RlXTsKKyAgICAgICAgc3RyYXRlZ3kgPSBbW1dLVmlld0R5bmFtaWNTaXplQ29tcHV0ZWRG
cm9tTWluaW11bURvY3VtZW50U2l6ZUxheW91dFN0cmF0ZWd5IGFsbG9jXSBpbml0V2l0aFBhZ2U6
cGFnZS5jb3B5UmVmKCkgdmlldzp2aWV3IHZpZXdJbXBsOndlYlZpZXdJbXBsLmNvcHlSZWYoKSBt
b2RlOm1vZGVdOwogICAgICAgICBicmVhazsKICAgICBjYXNlIGtXS0xheW91dE1vZGVWaWV3U2l6
ZToKICAgICBkZWZhdWx0OgotICAgICAgICBzdHJhdGVneSA9IFtbV0tWaWV3Vmlld1NpemVMYXlv
dXRTdHJhdGVneSBhbGxvY10gaW5pdFdpdGhQYWdlOnBhZ2Ugdmlldzp2aWV3IHZpZXdJbXBsOndl
YlZpZXdJbXBsIG1vZGU6bW9kZV07CisgICAgICAgIHN0cmF0ZWd5ID0gW1tXS1ZpZXdWaWV3U2l6
ZUxheW91dFN0cmF0ZWd5IGFsbG9jXSBpbml0V2l0aFBhZ2U6cGFnZS5jb3B5UmVmKCkgdmlldzp2
aWV3IHZpZXdJbXBsOndlYlZpZXdJbXBsLmNvcHlSZWYoKSBtb2RlOm1vZGVdOwogICAgICAgICBi
cmVhazsKICAgICB9CiAKQEAgLTcyLDE1ICs3MiwxNSBAQCArIChpbnN0YW5jZXR5cGUpbGF5b3V0
U3RyYXRlZ3lXaXRoUGFnZTooV2ViS2l0OjpXZWJQYWdlUHJveHkmKXBhZ2UgdmlldzooTlNWaWV3
CiAgICAgcmV0dXJuIFtzdHJhdGVneSBhdXRvcmVsZWFzZV07CiB9CiAKLS0gKGluc3RhbmNldHlw
ZSlpbml0V2l0aFBhZ2U6KFdlYktpdDo6V2ViUGFnZVByb3h5JilwYWdlIHZpZXc6KE5TVmlldyAq
KXZpZXcgdmlld0ltcGw6KFdlYktpdDo6V2ViVmlld0ltcGwmKXdlYlZpZXdJbXBsIG1vZGU6KFdL
TGF5b3V0TW9kZSltb2RlCistIChpbnN0YW5jZXR5cGUpaW5pdFdpdGhQYWdlOihOYWtlZFJlZjxX
ZWJLaXQ6OldlYlBhZ2VQcm94eT4pcGFnZSB2aWV3OihOU1ZpZXcgKil2aWV3IHZpZXdJbXBsOihO
YWtlZFJlZjxXZWJLaXQ6OldlYlZpZXdJbXBsPil3ZWJWaWV3SW1wbCBtb2RlOihXS0xheW91dE1v
ZGUpbW9kZQogewogICAgIHNlbGYgPSBbc3VwZXIgaW5pdF07CiAKICAgICBpZiAoIXNlbGYpCiAg
ICAgICAgIHJldHVybiBuaWw7CiAKLSAgICBfcGFnZSA9ICZwYWdlOwotICAgIF93ZWJWaWV3SW1w
bCA9ICZ3ZWJWaWV3SW1wbDsKKyAgICBfcGFnZSA9IHBhZ2UucHRyKCk7CisgICAgX3dlYlZpZXdJ
bXBsID0gd2ViVmlld0ltcGwucHRyKCk7CiAgICAgX3ZpZXcgPSB2aWV3OwogICAgIF9sYXlvdXRN
b2RlID0gbW9kZTsKIApAQCAtMTUyLDE0ICsxNTIsMTQgQEAgQGVuZAogCiBAaW1wbGVtZW50YXRp
b24gV0tWaWV3Vmlld1NpemVMYXlvdXRTdHJhdGVneQogCi0tIChpbnN0YW5jZXR5cGUpaW5pdFdp
dGhQYWdlOihXZWJLaXQ6OldlYlBhZ2VQcm94eSYpcGFnZSB2aWV3OihOU1ZpZXcgKil2aWV3IHZp
ZXdJbXBsOihXZWJLaXQ6OldlYlZpZXdJbXBsJil3ZWJWaWV3SW1wbCBtb2RlOihXS0xheW91dE1v
ZGUpbW9kZQorLSAoaW5zdGFuY2V0eXBlKWluaXRXaXRoUGFnZTooTmFrZWRSZWY8V2ViS2l0OjpX
ZWJQYWdlUHJveHk+KXBhZ2UgdmlldzooTlNWaWV3ICopdmlldyB2aWV3SW1wbDooTmFrZWRSZWY8
V2ViS2l0OjpXZWJWaWV3SW1wbD4pd2ViVmlld0ltcGwgbW9kZTooV0tMYXlvdXRNb2RlKW1vZGUK
IHsKLSAgICBzZWxmID0gW3N1cGVyIGluaXRXaXRoUGFnZTpwYWdlIHZpZXc6dmlldyB2aWV3SW1w
bDp3ZWJWaWV3SW1wbCBtb2RlOm1vZGVdOworICAgIHNlbGYgPSBbc3VwZXIgaW5pdFdpdGhQYWdl
OnBhZ2UuY29weVJlZigpIHZpZXc6dmlldyB2aWV3SW1wbDp3ZWJWaWV3SW1wbC5jb3B5UmVmKCkg
bW9kZTptb2RlXTsKIAogICAgIGlmICghc2VsZikKICAgICAgICAgcmV0dXJuIG5pbDsKIAotICAg
IHBhZ2Uuc2V0VXNlRml4ZWRMYXlvdXQoZmFsc2UpOworICAgIHBhZ2UtPnNldFVzZUZpeGVkTGF5
b3V0KGZhbHNlKTsKIAogICAgIHJldHVybiBzZWxmOwogfQpAQCAtMTcyLDE0ICsxNzIsMTQgQEAg
QGVuZAogCiBAaW1wbGVtZW50YXRpb24gV0tWaWV3Rml4ZWRTaXplTGF5b3V0U3RyYXRlZ3kKIAot
LSAoaW5zdGFuY2V0eXBlKWluaXRXaXRoUGFnZTooV2ViS2l0OjpXZWJQYWdlUHJveHkmKXBhZ2Ug
dmlldzooTlNWaWV3ICopdmlldyB2aWV3SW1wbDooV2ViS2l0OjpXZWJWaWV3SW1wbCYpd2ViVmll
d0ltcGwgbW9kZTooV0tMYXlvdXRNb2RlKW1vZGUKKy0gKGluc3RhbmNldHlwZSlpbml0V2l0aFBh
Z2U6KE5ha2VkUmVmPFdlYktpdDo6V2ViUGFnZVByb3h5PilwYWdlIHZpZXc6KE5TVmlldyAqKXZp
ZXcgdmlld0ltcGw6KE5ha2VkUmVmPFdlYktpdDo6V2ViVmlld0ltcGw+KXdlYlZpZXdJbXBsIG1v
ZGU6KFdLTGF5b3V0TW9kZSltb2RlCiB7Ci0gICAgc2VsZiA9IFtzdXBlciBpbml0V2l0aFBhZ2U6
cGFnZSB2aWV3OnZpZXcgdmlld0ltcGw6d2ViVmlld0ltcGwgbW9kZTptb2RlXTsKKyAgICBzZWxm
ID0gW3N1cGVyIGluaXRXaXRoUGFnZTpwYWdlLmNvcHlSZWYoKSB2aWV3OnZpZXcgdmlld0ltcGw6
d2ViVmlld0ltcGwuY29weVJlZigpIG1vZGU6bW9kZV07CiAKICAgICBpZiAoIXNlbGYpCiAgICAg
ICAgIHJldHVybiBuaWw7CiAKLSAgICBwYWdlLnNldFVzZUZpeGVkTGF5b3V0KHRydWUpOworICAg
IHBhZ2UtPnNldFVzZUZpeGVkTGF5b3V0KHRydWUpOwogCiAgICAgcmV0dXJuIHNlbGY7CiB9CkBA
IC0xOTIsMTQgKzE5MiwxNCBAQCBAZW5kCiAKIEBpbXBsZW1lbnRhdGlvbiBXS1ZpZXdEeW5hbWlj
U2l6ZUNvbXB1dGVkRnJvbVZpZXdTY2FsZUxheW91dFN0cmF0ZWd5CiAKLS0gKGluc3RhbmNldHlw
ZSlpbml0V2l0aFBhZ2U6KFdlYktpdDo6V2ViUGFnZVByb3h5JilwYWdlIHZpZXc6KE5TVmlldyAq
KXZpZXcgdmlld0ltcGw6KFdlYktpdDo6V2ViVmlld0ltcGwmKXdlYlZpZXdJbXBsIG1vZGU6KFdL
TGF5b3V0TW9kZSltb2RlCistIChpbnN0YW5jZXR5cGUpaW5pdFdpdGhQYWdlOihOYWtlZFJlZjxX
ZWJLaXQ6OldlYlBhZ2VQcm94eT4pcGFnZSB2aWV3OihOU1ZpZXcgKil2aWV3IHZpZXdJbXBsOihO
YWtlZFJlZjxXZWJLaXQ6OldlYlZpZXdJbXBsPil3ZWJWaWV3SW1wbCBtb2RlOihXS0xheW91dE1v
ZGUpbW9kZQogewotICAgIHNlbGYgPSBbc3VwZXIgaW5pdFdpdGhQYWdlOnBhZ2Ugdmlldzp2aWV3
IHZpZXdJbXBsOndlYlZpZXdJbXBsIG1vZGU6bW9kZV07CisgICAgc2VsZiA9IFtzdXBlciBpbml0
V2l0aFBhZ2U6cGFnZS5jb3B5UmVmKCkgdmlldzp2aWV3IHZpZXdJbXBsOndlYlZpZXdJbXBsLmNv
cHlSZWYoKSBtb2RlOm1vZGVdOwogCiAgICAgaWYgKCFzZWxmKQogICAgICAgICByZXR1cm4gbmls
OwogCi0gICAgcGFnZS5zZXRVc2VGaXhlZExheW91dCh0cnVlKTsKKyAgICBwYWdlLT5zZXRVc2VG
aXhlZExheW91dCh0cnVlKTsKIAogICAgIHJldHVybiBzZWxmOwogfQpAQCAtMjMxLDkgKzIzMSw5
IEBAIEBlbmQKIAogQGltcGxlbWVudGF0aW9uIFdLVmlld0R5bmFtaWNTaXplQ29tcHV0ZWRGcm9t
TWluaW11bURvY3VtZW50U2l6ZUxheW91dFN0cmF0ZWd5CiAKLS0gKGluc3RhbmNldHlwZSlpbml0
V2l0aFBhZ2U6KFdlYktpdDo6V2ViUGFnZVByb3h5JilwYWdlIHZpZXc6KE5TVmlldyAqKXZpZXcg
dmlld0ltcGw6KFdlYktpdDo6V2ViVmlld0ltcGwmKXdlYlZpZXdJbXBsIG1vZGU6KFdLTGF5b3V0
TW9kZSltb2RlCistIChpbnN0YW5jZXR5cGUpaW5pdFdpdGhQYWdlOihOYWtlZFJlZjxXZWJLaXQ6
OldlYlBhZ2VQcm94eT4pcGFnZSB2aWV3OihOU1ZpZXcgKil2aWV3IHZpZXdJbXBsOihOYWtlZFJl
ZjxXZWJLaXQ6OldlYlZpZXdJbXBsPil3ZWJWaWV3SW1wbCBtb2RlOihXS0xheW91dE1vZGUpbW9k
ZQogewotICAgIHNlbGYgPSBbc3VwZXIgaW5pdFdpdGhQYWdlOnBhZ2Ugdmlldzp2aWV3IHZpZXdJ
bXBsOndlYlZpZXdJbXBsIG1vZGU6bW9kZV07CisgICAgc2VsZiA9IFtzdXBlciBpbml0V2l0aFBh
Z2U6cGFnZS5jb3B5UmVmKCkgdmlldzp2aWV3IHZpZXdJbXBsOndlYlZpZXdJbXBsLmNvcHlSZWYo
KSBtb2RlOm1vZGVdOwogCiAgICAgaWYgKCFzZWxmKQogICAgICAgICByZXR1cm4gbmlsOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9tYWMv
V0tET01Eb2N1bWVudC5tbSBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRs
ZS9BUEkvbWFjL1dLRE9NRG9jdW1lbnQubW0KaW5kZXggMGYyNzFlNWRlN2UwYTRkNWE2ODEwNTJm
MDJkZWNjMGUxYTQxNmRmZS4uMTY2ZTc5ZDAzMjIyZWM5ODI0MTE4YTQ3MGMwMjA0OTRhNmI1OGMw
ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQ
SS9tYWMvV0tET01Eb2N1bWVudC5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5q
ZWN0ZWRCdW5kbGUvQVBJL21hYy9XS0RPTURvY3VtZW50Lm1tCkBAIC0zMiw2ICszMiw3IEBACiAj
aW1wb3J0IDxXZWJDb3JlL0hUTUxFbGVtZW50Lmg+CiAjaW1wb3J0IDxXZWJDb3JlL1RleHQuaD4K
ICNpbXBvcnQgPFdlYkNvcmUvbWFya3VwLmg+CisjaW1wb3J0IDx3dGYvTmFrZWRSZWYuaD4KIAog
QGludGVyZmFjZSBXS0RPTURvY3VtZW50UGFyc2VyWWllbGRUb2tlbiA6IE5TT2JqZWN0CiAKQEAg
LTQxLDEwICs0MiwxMCBAQCBAaW1wbGVtZW50YXRpb24gV0tET01Eb2N1bWVudFBhcnNlcllpZWxk
VG9rZW4gewogICAgIHN0ZDo6dW5pcXVlX3B0cjxXZWJDb3JlOjpEb2N1bWVudFBhcnNlcllpZWxk
VG9rZW4+IF90b2tlbjsKIH0KIAotLSAoaW5zdGFuY2V0eXBlKWluaXRXaXRoRG9jdW1lbnQ6KFdl
YkNvcmU6OkRvY3VtZW50Jilkb2N1bWVudAorLSAoaW5zdGFuY2V0eXBlKWluaXRXaXRoRG9jdW1l
bnQ6KE5ha2VkUmVmPFdlYkNvcmU6OkRvY3VtZW50Pilkb2N1bWVudAogewogICAgIGlmIChzZWxm
ID0gW3N1cGVyIGluaXRdKQotICAgICAgICBfdG9rZW4gPSBkb2N1bWVudC5jcmVhdGVQYXJzZXJZ
aWVsZFRva2VuKCk7CisgICAgICAgIF90b2tlbiA9IGRvY3VtZW50LT5jcmVhdGVQYXJzZXJZaWVs
ZFRva2VuKCk7CiAgICAgcmV0dXJuIHNlbGY7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9XS0FjY2Vzc2liaWxpdHlXZWJQYWdlT2JqZWN0QmFz
ZS5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1dLQWNjZXNzaWJpbGl0
eVdlYlBhZ2VPYmplY3RCYXNlLmgKaW5kZXggYWVjZDRhNTA1Yzk5ODIzMDBlMzg0MDczNjdjOTg3
OTAzMzI4MDU5Yi4uYTExNjUyODM1MmIxZjFmNTFlM2Q0OTRkZDg0MzIyYjE3NjI4MThkMiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1dLQWNjZXNzaWJp
bGl0eVdlYlBhZ2VPYmplY3RCYXNlLmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dl
YlBhZ2UvbWFjL1dLQWNjZXNzaWJpbGl0eVdlYlBhZ2VPYmplY3RCYXNlLmgKQEAgLTI3LDE5ICsy
NywyMCBAQAogI2RlZmluZSBXS0FjY2Vzc2liaWxpdHlXZWJQYWdlT2JqZWN0QmFzZV9oCiAKICNp
bmNsdWRlIDxXZWJDb3JlL1BhZ2VJZGVudGlmaWVyLmg+CisjaW5jbHVkZSA8d3RmL05ha2VkUHRy
Lmg+CiAKIG5hbWVzcGFjZSBXZWJLaXQgewogY2xhc3MgV2ViUGFnZTsKIH0KIAogQGludGVyZmFj
ZSBXS0FjY2Vzc2liaWxpdHlXZWJQYWdlT2JqZWN0QmFzZSA6IE5TT2JqZWN0IHsKLSAgICBXZWJL
aXQ6OldlYlBhZ2UqIG1fcGFnZTsKKyAgICBOYWtlZFB0cjxXZWJLaXQ6OldlYlBhZ2U+IG1fcGFn
ZTsKICAgICBXZWJDb3JlOjpQYWdlSWRlbnRpZmllciBtX3BhZ2VJRDsKICAgICBpZCBtX3BhcmVu
dDsKICAgICBib29sIG1faGFzTWFpbkZyYW1lUGx1Z2luOwogfQogCi0tICh2b2lkKXNldFdlYlBh
Z2U6KFdlYktpdDo6V2ViUGFnZSopcGFnZTsKKy0gKHZvaWQpc2V0V2ViUGFnZTooTmFrZWRQdHI8
V2ViS2l0OjpXZWJQYWdlPilwYWdlOwogLSAodm9pZClzZXRSZW1vdGVQYXJlbnQ6KGlkKXBhcmVu
dDsKIC0gKHZvaWQpc2V0SGFzTWFpbkZyYW1lUGx1Z2luOihib29sKWhhc1BsdWdpbjsKIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1dLQWNjZXNzaWJp
bGl0eVdlYlBhZ2VPYmplY3RCYXNlLm1tIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBh
Z2UvbWFjL1dLQWNjZXNzaWJpbGl0eVdlYlBhZ2VPYmplY3RCYXNlLm1tCmluZGV4IGQ4NjgyYTk4
YjFlYjIyOWI4YzU5MzVhNjg5ZTVhNzEzNjc3ODUwMTguLjA4ZmU3ZmQxNGFmMjE0MjM2MjM2Nzg5
OTQyOTY2ZWQ5YzRlYWNhODYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9X
ZWJQYWdlL21hYy9XS0FjY2Vzc2liaWxpdHlXZWJQYWdlT2JqZWN0QmFzZS5tbQorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9tYWMvV0tBY2Nlc3NpYmlsaXR5V2ViUGFnZU9i
amVjdEJhc2UubW0KQEAgLTQ1LDcgKzQ1LDcgQEAKIAogQGltcGxlbWVudGF0aW9uIFdLQWNjZXNz
aWJpbGl0eVdlYlBhZ2VPYmplY3RCYXNlCiAKLS0gKFdlYkNvcmU6OkFYT2JqZWN0Q2FjaGUqKWF4
T2JqZWN0Q2FjaGUKKy0gKE5ha2VkUHRyPFdlYkNvcmU6OkFYT2JqZWN0Q2FjaGU+KWF4T2JqZWN0
Q2FjaGUKIHsKICAgICBpZiAoIW1fcGFnZSkKICAgICAgICAgcmV0dXJuIG51bGxwdHI7CkBAIC05
OSw3ICs5OSw3IEBAIC0gKGlkKWFjY2Vzc2liaWxpdHlSb290T2JqZWN0V3JhcHBlcgogICAgIHJl
dHVybiBuaWw7CiB9CiAKLS0gKHZvaWQpc2V0V2ViUGFnZTooV2ViS2l0OjpXZWJQYWdlKilwYWdl
CistICh2b2lkKXNldFdlYlBhZ2U6KE5ha2VkUHRyPFdlYktpdDo6V2ViUGFnZT4pcGFnZQogewog
ICAgIG1fcGFnZSA9IHBhZ2U7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFj
L1BsdWdpbnMvV2ViQmFzZU5ldHNjYXBlUGx1Z2luVmlldy5oIGIvU291cmNlL1dlYktpdExlZ2Fj
eS9tYWMvUGx1Z2lucy9XZWJCYXNlTmV0c2NhcGVQbHVnaW5WaWV3LmgKaW5kZXggYzIzN2NjZjkx
Y2I0YmE2OTEwOTVlNDM0YjU3ZDEzMzk3MGY1ODNlMy4uYzVhOTYxZTM3N2VlOGZlMmQwMzU4ODJh
YzQ1MDE5YzY1OWFkZjZlYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvUGx1
Z2lucy9XZWJCYXNlTmV0c2NhcGVQbHVnaW5WaWV3LmgKKysrIGIvU291cmNlL1dlYktpdExlZ2Fj
eS9tYWMvUGx1Z2lucy9XZWJCYXNlTmV0c2NhcGVQbHVnaW5WaWV3LmgKQEAgLTMxLDYgKzMxLDcg
QEAKIAogI2ltcG9ydCAiV2ViTmV0c2NhcGVQbHVnaW5QYWNrYWdlLmgiCiAjaW1wb3J0IDx3dGYv
Rm9yd2FyZC5oPgorI2ltcG9ydCA8d3RmL05ha2VkUHRyLmg+CiAjaW1wb3J0IDx3dGYvUmVmUHRy
Lmg+CiAjaW1wb3J0IDx3dGYvUmV0YWluUHRyLmg+CiAKQEAgLTk3LDcgKzk4LDcgQEAgbmFtZXNw
YWNlIFdlYkNvcmUgewogLSAoV2ViRGF0YVNvdXJjZSAqKWRhdGFTb3VyY2U7CiAtIChXZWJWaWV3
ICopd2ViVmlldzsKIC0gKE5TV2luZG93ICopY3VycmVudFdpbmRvdzsKLS0gKFdlYkNvcmU6OkhU
TUxQbHVnSW5FbGVtZW50KillbGVtZW50OworLSAoTmFrZWRQdHI8V2ViQ29yZTo6SFRNTFBsdWdJ
bkVsZW1lbnQ+KWVsZW1lbnQ7CiAKIC0gKHZvaWQpcmVtb3ZlVHJhY2tpbmdSZWN0OwogLSAodm9p
ZClyZXNldFRyYWNraW5nUmVjdDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFj
L1BsdWdpbnMvV2ViQmFzZU5ldHNjYXBlUGx1Z2luVmlldy5tbSBiL1NvdXJjZS9XZWJLaXRMZWdh
Y3kvbWFjL1BsdWdpbnMvV2ViQmFzZU5ldHNjYXBlUGx1Z2luVmlldy5tbQppbmRleCA0Zjg5OWVk
ZTJjNTIyNzY1MjQxYWE5YWNhYWI2OWVlYmRhNmFmNjlkLi45MWE4N2Y3MGQ1ZjE5ODc0MjIyNjJm
MGM1NTY1NjRmNDBlMDA2ZDFhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9Q
bHVnaW5zL1dlYkJhc2VOZXRzY2FwZVBsdWdpblZpZXcubW0KKysrIGIvU291cmNlL1dlYktpdExl
Z2FjeS9tYWMvUGx1Z2lucy9XZWJCYXNlTmV0c2NhcGVQbHVnaW5WaWV3Lm1tCkBAIC02NjQsNyAr
NjY0LDcgQEAgLSAoTlNXaW5kb3cgKiljdXJyZW50V2luZG93CiAgICAgcmV0dXJuIFtzZWxmIHdp
bmRvd10gPyBbc2VsZiB3aW5kb3ddIDogW1tzZWxmIHdlYlZpZXddIGhvc3RXaW5kb3ddOwogfQog
Ci0tIChXZWJDb3JlOjpIVE1MUGx1Z0luRWxlbWVudCopZWxlbWVudAorLSAoTmFrZWRQdHI8V2Vi
Q29yZTo6SFRNTFBsdWdJbkVsZW1lbnQ+KWVsZW1lbnQKIHsKICAgICByZXR1cm4gX2VsZW1lbnQu
Z2V0KCk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJDb3JlU3Vw
cG9ydC9XZWJFZGl0b3JDbGllbnQubW0gYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJDb3Jl
U3VwcG9ydC9XZWJFZGl0b3JDbGllbnQubW0KaW5kZXggMzNiNjg5ZDdiMjdlZmU3NmM4ZmI4ODA1
MTFhMjdlMTMwZjg1N2IzNC4uMjAxMzg0ZjAwMmUzNjU3YzUyN2U1NzM5NWEzMDY1ZmU4YTM2MDI4
MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViQ29yZVN1cHBvcnQvV2Vi
RWRpdG9yQ2xpZW50Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYkNvcmVTdXBw
b3J0L1dlYkVkaXRvckNsaWVudC5tbQpAQCAtNDcyLDcgKzQ3Miw3IEBAIHZvaWQgX1dlYkNyZWF0
ZUZyYWdtZW50KERvY3VtZW50JiBkb2N1bWVudCwgTlNBdHRyaWJ1dGVkU3RyaW5nICpzdHJpbmcs
IEZyYWdtZW50CiAgICAgICAgIGRvY3VtZW50OmtpdCgmZG9jdW1lbnQpIGRvY3VtZW50QXR0cmli
dXRlczpkb2N1bWVudEF0dHJpYnV0ZXMgc3VicmVzb3VyY2VzOiZzdWJyZXNvdXJjZXNdOwogICAg
IHJlc3VsdC5mcmFnbWVudCA9IGNvcmUoZnJhZ21lbnQpOwogICAgIGZvciAoV2ViUmVzb3VyY2Uq
IHJlc291cmNlIGluIHN1YnJlc291cmNlcykKLSAgICAgICAgcmVzdWx0LnJlc291cmNlcy5hcHBl
bmQoW3Jlc291cmNlIF9jb3JlUmVzb3VyY2VdKTsKKyAgICAgICAgcmVzdWx0LnJlc291cmNlcy5h
cHBlbmQoW3Jlc291cmNlIF9jb3JlUmVzb3VyY2VdLmdldCgpKTsKIH0KIAogI2VuZGlmCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxv
YWRlckNsaWVudC5tbSBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYkNvcmVTdXBwb3J0L1dl
YkZyYW1lTG9hZGVyQ2xpZW50Lm1tCmluZGV4IDI5NjJmZTBjNTE3MjMxZmVkMjc5MDdkNWRjZjJk
OTNhMTAzYTMzNDMuLmVlZGEzYTcxMjU3MDcyODBlZTUyNjNlZTIyYzg0ZmQyZDFiMjI4NmQgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1l
TG9hZGVyQ2xpZW50Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYkNvcmVTdXBw
b3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50Lm1tCkBAIC0xMjgsNiArMTI4LDcgQEAKICNpbXBvcnQg
PHBhbC9zcGkvY29jb2EvTlNVUkxGaWxlVHlwZU1hcHBpbmdzU1BJLmg+CiAjaW1wb3J0IDx3dGYv
QmxvY2tPYmpDRXhjZXB0aW9ucy5oPgogI2ltcG9ydCA8d3RmL01haW5UaHJlYWQuaD4KKyNpbXBv
cnQgPHd0Zi9OYWtlZFB0ci5oPgogI2ltcG9ydCA8d3RmL1JlZi5oPgogI2ltcG9ydCA8d3RmL1J1
bkxvb3AuaD4KICNpbXBvcnQgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgpAQCAtMTg3LDkgKzE4OCw5
IEBAIEBpbnRlcmZhY2UgV2ViRnJhbWVQb2xpY3lMaXN0ZW5lciA6IE5TT2JqZWN0IDxXZWJQb2xp
Y3lEZWNpc2lvbkxpc3RlbmVyLCBXZWJGb3JtCiAgICAgV2ViQ29yZTo6UG9saWN5QWN0aW9uIF9k
ZWZhdWx0UG9saWN5OwogfQogCi0tIChpZClpbml0V2l0aEZyYW1lOihXZWJDb3JlOjpGcmFtZSop
ZnJhbWUgaWRlbnRpZmllcjooV2ViQ29yZTo6UG9saWN5Q2hlY2tJZGVudGlmaWVyKWlkZW50aWZp
ZXIgcG9saWN5RnVuY3Rpb246KFdlYkNvcmU6OkZyYW1lUG9saWN5RnVuY3Rpb24mJilwb2xpY3lG
dW5jdGlvbiBkZWZhdWx0UG9saWN5OihXZWJDb3JlOjpQb2xpY3lBY3Rpb24pZGVmYXVsdFBvbGlj
eTsKKy0gKGlkKWluaXRXaXRoRnJhbWU6KE5ha2VkUHRyPFdlYkNvcmU6OkZyYW1lPilmcmFtZSBp
ZGVudGlmaWVyOihXZWJDb3JlOjpQb2xpY3lDaGVja0lkZW50aWZpZXIpaWRlbnRpZmllciBwb2xp
Y3lGdW5jdGlvbjooV2ViQ29yZTo6RnJhbWVQb2xpY3lGdW5jdGlvbiYmKXBvbGljeUZ1bmN0aW9u
IGRlZmF1bHRQb2xpY3k6KFdlYkNvcmU6OlBvbGljeUFjdGlvbilkZWZhdWx0UG9saWN5OwogI2lm
IEhBVkUoQVBQX0xJTktTKQotLSAoaWQpaW5pdFdpdGhGcmFtZTooV2ViQ29yZTo6RnJhbWUqKWZy
YW1lIGlkZW50aWZpZXI6KFdlYkNvcmU6OlBvbGljeUNoZWNrSWRlbnRpZmllcilpZGVudGlmaWVy
IHBvbGljeUZ1bmN0aW9uOihXZWJDb3JlOjpGcmFtZVBvbGljeUZ1bmN0aW9uJiYpcG9saWN5RnVu
Y3Rpb24gZGVmYXVsdFBvbGljeTooV2ViQ29yZTo6UG9saWN5QWN0aW9uKWRlZmF1bHRQb2xpY3kg
YXBwTGlua1VSTDooTlNVUkwgKil1cmw7CistIChpZClpbml0V2l0aEZyYW1lOihOYWtlZFB0cjxX
ZWJDb3JlOjpGcmFtZT4pZnJhbWUgaWRlbnRpZmllcjooV2ViQ29yZTo6UG9saWN5Q2hlY2tJZGVu
dGlmaWVyKWlkZW50aWZpZXIgcG9saWN5RnVuY3Rpb246KFdlYkNvcmU6OkZyYW1lUG9saWN5RnVu
Y3Rpb24mJilwb2xpY3lGdW5jdGlvbiBkZWZhdWx0UG9saWN5OihXZWJDb3JlOjpQb2xpY3lBY3Rp
b24pZGVmYXVsdFBvbGljeSBhcHBMaW5rVVJMOihOU1VSTCAqKXVybDsKICNlbmRpZgogCiAtICh2
b2lkKWludmFsaWRhdGU7CkBAIC0xNDg1LDcgKzE0ODYsNyBAQCB2b2lkIFdlYkZyYW1lTG9hZGVy
Q2xpZW50Ojp0cmFuc2l0aW9uVG9Db21taXR0ZWRGb3JOZXdQYWdlKCkKICAgICAvLyBUaGUgZm9s
bG93aW5nIGlzIGEgbm8tb3AgZm9yIFdlYkhUTUxSZXByZXNlbnRhdGlvbiwgYnV0IGZvciBjdXN0
b20gZG9jdW1lbnQgdHlwZXMKICAgICAvLyBsaWtlIHRoZSBvbmVzIHRoYXQgU2FmYXJpIHVzZXMg
Zm9yIGJvb2ttYXJrcyBpdCBpcyB0aGUgb25seSB3YXkgdGhlIERvY3VtZW50TG9hZGVyCiAgICAg
Ly8gd2lsbCBnZXQgdGhlIHByb3BlciB0aXRsZS4KLSAgICBpZiAoYXV0byogZG9jdW1lbnRMb2Fk
ZXIgPSBbZGF0YVNvdXJjZSBfZG9jdW1lbnRMb2FkZXJdKQorICAgIGlmIChhdXRvIGRvY3VtZW50
TG9hZGVyID0gW2RhdGFTb3VyY2UgX2RvY3VtZW50TG9hZGVyXSkKICAgICAgICAgZG9jdW1lbnRM
b2FkZXItPnNldFRpdGxlKHsgW2RhdGFTb3VyY2UgcGFnZVRpdGxlXSwgV2ViQ29yZTo6VGV4dERp
cmVjdGlvbjo6TFRSIH0pOwogCiAgICAgaWYgKGF1dG8qIG93bmVyRWxlbWVudCA9IGNvcmVGcmFt
ZS0+b3duZXJFbGVtZW50KCkpCkBAIC0yMzU5LDcgKzIzNjAsNyBAQCArICh2b2lkKWluaXRpYWxp
emUKICNlbmRpZgogfQogCi0tIChpZClpbml0V2l0aEZyYW1lOihXZWJDb3JlOjpGcmFtZSopZnJh
bWUgaWRlbnRpZmllcjooV2ViQ29yZTo6UG9saWN5Q2hlY2tJZGVudGlmaWVyKWlkZW50aWZpZXIg
cG9saWN5RnVuY3Rpb246KFdlYkNvcmU6OkZyYW1lUG9saWN5RnVuY3Rpb24mJilwb2xpY3lGdW5j
dGlvbiBkZWZhdWx0UG9saWN5OihXZWJDb3JlOjpQb2xpY3lBY3Rpb24pZGVmYXVsdFBvbGljeQor
LSAoaWQpaW5pdFdpdGhGcmFtZTooTmFrZWRQdHI8V2ViQ29yZTo6RnJhbWU+KWZyYW1lIGlkZW50
aWZpZXI6KFdlYkNvcmU6OlBvbGljeUNoZWNrSWRlbnRpZmllcilpZGVudGlmaWVyIHBvbGljeUZ1
bmN0aW9uOihXZWJDb3JlOjpGcmFtZVBvbGljeUZ1bmN0aW9uJiYpcG9saWN5RnVuY3Rpb24gZGVm
YXVsdFBvbGljeTooV2ViQ29yZTo6UG9saWN5QWN0aW9uKWRlZmF1bHRQb2xpY3kKIHsKICAgICBz
ZWxmID0gW3NlbGYgaW5pdF07CiAgICAgaWYgKCFzZWxmKQpAQCAtMjM3NCw3ICsyMzc1LDcgQEAg
LSAoaWQpaW5pdFdpdGhGcmFtZTooV2ViQ29yZTo6RnJhbWUqKWZyYW1lIGlkZW50aWZpZXI6KFdl
YkNvcmU6OlBvbGljeUNoZWNrSWRlbnQKIH0KIAogI2lmIEhBVkUoQVBQX0xJTktTKQotLSAoaWQp
aW5pdFdpdGhGcmFtZTooV2ViQ29yZTo6RnJhbWUqKWZyYW1lIGlkZW50aWZpZXI6KFdlYkNvcmU6
OlBvbGljeUNoZWNrSWRlbnRpZmllcilpZGVudGlmaWVyIHBvbGljeUZ1bmN0aW9uOihXZWJDb3Jl
OjpGcmFtZVBvbGljeUZ1bmN0aW9uJiYpcG9saWN5RnVuY3Rpb24gZGVmYXVsdFBvbGljeTooV2Vi
Q29yZTo6UG9saWN5QWN0aW9uKWRlZmF1bHRQb2xpY3kgYXBwTGlua1VSTDooTlNVUkwgKilhcHBM
aW5rVVJMCistIChpZClpbml0V2l0aEZyYW1lOihOYWtlZFB0cjxXZWJDb3JlOjpGcmFtZT4pZnJh
bWUgaWRlbnRpZmllcjooV2ViQ29yZTo6UG9saWN5Q2hlY2tJZGVudGlmaWVyKWlkZW50aWZpZXIg
cG9saWN5RnVuY3Rpb246KFdlYkNvcmU6OkZyYW1lUG9saWN5RnVuY3Rpb24mJilwb2xpY3lGdW5j
dGlvbiBkZWZhdWx0UG9saWN5OihXZWJDb3JlOjpQb2xpY3lBY3Rpb24pZGVmYXVsdFBvbGljeSBh
cHBMaW5rVVJMOihOU1VSTCAqKWFwcExpbmtVUkwKIHsKICAgICBzZWxmID0gW3NlbGYgaW5pdFdp
dGhGcmFtZTpmcmFtZSBpZGVudGlmaWVyOmlkZW50aWZpZXIgcG9saWN5RnVuY3Rpb246V1RGTW92
ZShwb2xpY3lGdW5jdGlvbikgZGVmYXVsdFBvbGljeTpkZWZhdWx0UG9saWN5XTsKICAgICBpZiAo
IXNlbGYpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJDb3JlU3VwcG9y
dC9XZWJHZW9sb2NhdGlvbkNsaWVudC5tbSBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYkNv
cmVTdXBwb3J0L1dlYkdlb2xvY2F0aW9uQ2xpZW50Lm1tCmluZGV4IDg3ZGE3MzBmZWFhZmRlZGQ3
NzRlZDdlYTk2YjZmOGQwOTNlYTlhM2QuLmQ1ZmM2NGI4MTA3ZDgyMmRiM2Q5OGNmMWFjNzNmMjFm
ZGMwZDE2YTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYkNvcmVTdXBw
b3J0L1dlYkdlb2xvY2F0aW9uQ2xpZW50Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFj
L1dlYkNvcmVTdXBwb3J0L1dlYkdlb2xvY2F0aW9uQ2xpZW50Lm1tCkBAIC0zNyw2ICszNyw4IEBA
CiAjaW1wb3J0IDxXZWJDb3JlL0ZyYW1lLmg+CiAjaW1wb3J0IDxXZWJDb3JlL0dlb2xvY2F0aW9u
Lmg+CiAjaW1wb3J0IDx3dGYvQmxvY2tPYmpDRXhjZXB0aW9ucy5oPgorI2ltcG9ydCA8d3RmL05h
a2VkUHRyLmg+CisjaW1wb3J0IDx3dGYvTmFrZWRSZWYuaD4KIAogI2lmIFBMQVRGT1JNKElPU19G
QU1JTFkpCiAjaW1wb3J0IDxXZWJDb3JlL1dBS1Jlc3BvbmRlci5oPgpAQCAtNTAsNyArNTIsNyBA
QCBAaW50ZXJmYWNlIFdlYkdlb2xvY2F0aW9uUG9saWN5TGlzdGVuZXIgOiBOU09iamVjdCA8V2Vi
QWxsb3dEZW55UG9saWN5TGlzdGVuZXI+CiB7CiAgICAgUmVmUHRyPEdlb2xvY2F0aW9uPiBfZ2Vv
bG9jYXRpb247CiB9Ci0tIChpZClpbml0V2l0aEdlb2xvY2F0aW9uOihHZW9sb2NhdGlvbiYpZ2Vv
bG9jYXRpb247CistIChpZClpbml0V2l0aEdlb2xvY2F0aW9uOihOYWtlZFJlZjxHZW9sb2NhdGlv
bj4pZ2VvbG9jYXRpb247CiBAZW5kCiAjZWxzZQogQGludGVyZmFjZSBXZWJHZW9sb2NhdGlvblBv
bGljeUxpc3RlbmVyIDogTlNPYmplY3QgPFdlYkFsbG93RGVueVBvbGljeUxpc3RlbmVyPgpAQCAt
NTgsNyArNjAsNyBAQCBAaW50ZXJmYWNlIFdlYkdlb2xvY2F0aW9uUG9saWN5TGlzdGVuZXIgOiBO
U09iamVjdCA8V2ViQWxsb3dEZW55UG9saWN5TGlzdGVuZXI+CiAgICAgUmVmUHRyPEdlb2xvY2F0
aW9uPiBfZ2VvbG9jYXRpb247CiAgICAgUmV0YWluUHRyPFdlYlZpZXc+IF93ZWJWaWV3OwogfQot
LSAoaWQpaW5pdFdpdGhHZW9sb2NhdGlvbjooR2VvbG9jYXRpb24qKWdlb2xvY2F0aW9uIGZvcldl
YlZpZXc6KFdlYlZpZXcqKXdlYlZpZXc7CistIChpZClpbml0V2l0aEdlb2xvY2F0aW9uOihOYWtl
ZFB0cjxHZW9sb2NhdGlvbj4pZ2VvbG9jYXRpb24gZm9yV2ViVmlldzooV2ViVmlldyopd2ViVmll
dzsKIEBlbmQKICNlbmRpZgogCkBAIC02Nyw3ICs2OSw3IEBAIEBpbnRlcmZhY2UgV2ViR2VvbG9j
YXRpb25Qcm92aWRlckluaXRpYWxpemF0aW9uTGlzdGVuZXIgOiBOU09iamVjdCA8V2ViR2VvbG9j
YXRpCiBAcHJpdmF0ZQogICAgIFJlZlB0cjxHZW9sb2NhdGlvbj4gbV9nZW9sb2NhdGlvbjsKIH0K
LS0gKGlkKWluaXRXaXRoR2VvbG9jYXRpb246KEdlb2xvY2F0aW9uJilnZW9sb2NhdGlvbjsKKy0g
KGlkKWluaXRXaXRoR2VvbG9jYXRpb246KE5ha2VkUmVmPEdlb2xvY2F0aW9uPilnZW9sb2NhdGlv
bjsKIEBlbmQKICNlbmRpZgogCkBAIC0xNDAsMTEgKzE0MiwxMSBAQCBPcHRpb25hbDxHZW9sb2Nh
dGlvblBvc2l0aW9uRGF0YT4gV2ViR2VvbG9jYXRpb25DbGllbnQ6Omxhc3RQb3NpdGlvbigpCiAj
aWYgIVBMQVRGT1JNKElPU19GQU1JTFkpCiBAaW1wbGVtZW50YXRpb24gV2ViR2VvbG9jYXRpb25Q
b2xpY3lMaXN0ZW5lcgogCi0tIChpZClpbml0V2l0aEdlb2xvY2F0aW9uOihHZW9sb2NhdGlvbiYp
Z2VvbG9jYXRpb24KKy0gKGlkKWluaXRXaXRoR2VvbG9jYXRpb246KE5ha2VkUmVmPEdlb2xvY2F0
aW9uPilnZW9sb2NhdGlvbgogewogICAgIGlmICghKHNlbGYgPSBbc3VwZXIgaW5pdF0pKQogICAg
ICAgICByZXR1cm4gbmlsOwotICAgIF9nZW9sb2NhdGlvbiA9ICZnZW9sb2NhdGlvbjsKKyAgICBf
Z2VvbG9jYXRpb24gPSBnZW9sb2NhdGlvbi5wdHIoKTsKICAgICByZXR1cm4gc2VsZjsKIH0KIApA
QCAtMTYyLDEyICsxNjQsMTIgQEAgQGVuZAogCiAjZWxzZQogQGltcGxlbWVudGF0aW9uIFdlYkdl
b2xvY2F0aW9uUG9saWN5TGlzdGVuZXIKLS0gKGlkKWluaXRXaXRoR2VvbG9jYXRpb246KEdlb2xv
Y2F0aW9uKilnZW9sb2NhdGlvbiBmb3JXZWJWaWV3OihXZWJWaWV3Kil3ZWJWaWV3CistIChpZClp
bml0V2l0aEdlb2xvY2F0aW9uOihOYWtlZFB0cjxHZW9sb2NhdGlvbj4pZ2VvbG9jYXRpb24gZm9y
V2ViVmlldzooV2ViVmlldyopd2ViVmlldwogewogICAgIHNlbGYgPSBbc3VwZXIgaW5pdF07CiAg
ICAgaWYgKCFzZWxmKQogICAgICAgICByZXR1cm4gbmlsOwotICAgIF9nZW9sb2NhdGlvbiA9IGdl
b2xvY2F0aW9uOworICAgIF9nZW9sb2NhdGlvbiA9IGdlb2xvY2F0aW9uLmdldCgpOwogICAgIF93
ZWJWaWV3ID0gd2ViVmlldzsKICAgICByZXR1cm4gc2VsZjsKIH0KQEAgLTIwNiwxMSArMjA4LDEx
IEBAIC0gKEJPT0wpc2hvdWxkQ2xlYXJDYWNoZQogQGVuZAogCiBAaW1wbGVtZW50YXRpb24gV2Vi
R2VvbG9jYXRpb25Qcm92aWRlckluaXRpYWxpemF0aW9uTGlzdGVuZXIKLS0gKGlkKWluaXRXaXRo
R2VvbG9jYXRpb246KEdlb2xvY2F0aW9uJilnZW9sb2NhdGlvbgorLSAoaWQpaW5pdFdpdGhHZW9s
b2NhdGlvbjooTmFrZWRSZWY8R2VvbG9jYXRpb24+KWdlb2xvY2F0aW9uCiB7CiAgICAgc2VsZiA9
IFtzdXBlciBpbml0XTsKICAgICBpZiAoc2VsZikKLSAgICAgICAgbV9nZW9sb2NhdGlvbiA9ICZn
ZW9sb2NhdGlvbjsKKyAgICAgICAgbV9nZW9sb2NhdGlvbiA9IGdlb2xvY2F0aW9uLnB0cigpOwog
ICAgIHJldHVybiBzZWxmOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21h
Yy9XZWJDb3JlU3VwcG9ydC9XZWJJbnNwZWN0b3JDbGllbnQubW0gYi9Tb3VyY2UvV2ViS2l0TGVn
YWN5L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJJbnNwZWN0b3JDbGllbnQubW0KaW5kZXggYzQ3NmM3
NTViMmU2YWE0OTZlNThiODQyZjIyMmU4ZjY1ZjNmZWM4My4uM2EwYTcyM2NhZThkZDI0NjI4YzBm
NTllNzUzMzY1MmIyYjU0YmE4OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMv
V2ViQ29yZVN1cHBvcnQvV2ViSW5zcGVjdG9yQ2xpZW50Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXRM
ZWdhY3kvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkluc3BlY3RvckNsaWVudC5tbQpAQCAtNTQsNiAr
NTQsNyBAQAogI2ltcG9ydCA8V2ViQ29yZS9TZXR0aW5ncy5oPgogI2ltcG9ydCA8V2ViS2l0TGVn
YWN5L0RPTUV4dGVuc2lvbnMuaD4KICNpbXBvcnQgPGFsZ29yaXRobT4KKyNpbXBvcnQgPHd0Zi9O
YWtlZFB0ci5oPgogI2ltcG9ydCA8d3RmL3RleHQvQmFzZTY0Lmg+CiAKIHVzaW5nIG5hbWVzcGFj
ZSBXZWJDb3JlOwpAQCAtNjgsNyArNjksNyBAQCBAaW50ZXJmYWNlIFdlYkluc3BlY3RvcldpbmRv
d0NvbnRyb2xsZXIgOiBOU1dpbmRvd0NvbnRyb2xsZXIgPE5TV2luZG93RGVsZWdhdGUsCiBAcHJp
dmF0ZQogICAgIFJldGFpblB0cjxXZWJWaWV3PiBfaW5zcGVjdGVkV2ViVmlldzsKICAgICBXZWJW
aWV3KiBfZnJvbnRlbmRXZWJWaWV3OwotICAgIFdlYkluc3BlY3RvckZyb250ZW5kQ2xpZW50KiBf
ZnJvbnRlbmRDbGllbnQ7CisgICAgTmFrZWRQdHI8V2ViSW5zcGVjdG9yRnJvbnRlbmRDbGllbnQ+
IF9mcm9udGVuZENsaWVudDsKICAgICBXZWJJbnNwZWN0b3JDbGllbnQqIF9pbnNwZWN0b3JDbGll
bnQ7CiAgICAgQk9PTCBfYXR0YWNoZWRUb0luc3BlY3RlZFdlYlZpZXc7CiAgICAgQk9PTCBfc2hv
dWxkQXR0YWNoOwpAQCAtODIsOSArODMsOSBAQCAtIChXZWJWaWV3ICopZnJvbnRlbmRXZWJWaWV3
OwogLSAodm9pZClhdHRhY2g7CiAtICh2b2lkKWRldGFjaDsKIC0gKEJPT0wpYXR0YWNoZWQ7Ci0t
ICh2b2lkKXNldEZyb250ZW5kQ2xpZW50OihXZWJJbnNwZWN0b3JGcm9udGVuZENsaWVudCopZnJv
bnRlbmRDbGllbnQ7Ci0tICh2b2lkKXNldEluc3BlY3RvckNsaWVudDooV2ViSW5zcGVjdG9yQ2xp
ZW50KilpbnNwZWN0b3JDbGllbnQ7Ci0tIChXZWJJbnNwZWN0b3JDbGllbnQqKWluc3BlY3RvckNs
aWVudDsKKy0gKHZvaWQpc2V0RnJvbnRlbmRDbGllbnQ6KE5ha2VkUHRyPFdlYkluc3BlY3RvckZy
b250ZW5kQ2xpZW50Pilmcm9udGVuZENsaWVudDsKKy0gKHZvaWQpc2V0SW5zcGVjdG9yQ2xpZW50
OihOYWtlZFB0cjxXZWJJbnNwZWN0b3JDbGllbnQ+KWluc3BlY3RvckNsaWVudDsKKy0gKE5ha2Vk
UHRyPFdlYkluc3BlY3RvckNsaWVudD4paW5zcGVjdG9yQ2xpZW50OwogLSAodm9pZClzZXRBdHRh
Y2hlZFdpbmRvd0hlaWdodDoodW5zaWduZWQpaGVpZ2h0OwogLSAodm9pZClzZXREb2NraW5nVW5h
dmFpbGFibGU6KEJPT0wpdW5hdmFpbGFibGU7CiAtICh2b2lkKWRlc3Ryb3lJbnNwZWN0b3JWaWV3
OwpAQCAtMjYxLDcgKzI2Miw3IEBAIHZvaWQgV2ViSW5zcGVjdG9yRnJvbnRlbmRDbGllbnQ6OnJl
c2V0U3RhdGUoKQogewogICAgIEluc3BlY3RvckZyb250ZW5kQ2xpZW50TG9jYWw6OnJlc2V0U3Rh
dGUoKTsKIAotICAgIGF1dG8qIGluc3BlY3RvckNsaWVudCA9IFttX2Zyb250ZW5kV2luZG93Q29u
dHJvbGxlciBpbnNwZWN0b3JDbGllbnRdOworICAgIGF1dG8gaW5zcGVjdG9yQ2xpZW50ID0gW21f
ZnJvbnRlbmRXaW5kb3dDb250cm9sbGVyIGluc3BlY3RvckNsaWVudF07CiAgICAgaW5zcGVjdG9y
Q2xpZW50LT5kZWxldGVJbnNwZWN0b3JTdGFydHNBdHRhY2hlZCgpOwogICAgIGluc3BlY3RvckNs
aWVudC0+ZGVsZXRlSW5zcGVjdG9yQXR0YWNoRGlzYWJsZWQoKTsKIApAQCAtNjcyLDE3ICs2NzMs
MTcgQEAgLSAoQk9PTClhdHRhY2hlZAogICAgIHJldHVybiBfYXR0YWNoZWRUb0luc3BlY3RlZFdl
YlZpZXc7CiB9CiAKLS0gKHZvaWQpc2V0RnJvbnRlbmRDbGllbnQ6KFdlYkluc3BlY3RvckZyb250
ZW5kQ2xpZW50Kilmcm9udGVuZENsaWVudAorLSAodm9pZClzZXRGcm9udGVuZENsaWVudDooTmFr
ZWRQdHI8V2ViSW5zcGVjdG9yRnJvbnRlbmRDbGllbnQ+KWZyb250ZW5kQ2xpZW50CiB7CiAgICAg
X2Zyb250ZW5kQ2xpZW50ID0gZnJvbnRlbmRDbGllbnQ7CiB9CiAKLS0gKHZvaWQpc2V0SW5zcGVj
dG9yQ2xpZW50OihXZWJJbnNwZWN0b3JDbGllbnQqKWluc3BlY3RvckNsaWVudAorLSAodm9pZClz
ZXRJbnNwZWN0b3JDbGllbnQ6KE5ha2VkUHRyPFdlYkluc3BlY3RvckNsaWVudD4paW5zcGVjdG9y
Q2xpZW50CiB7CiAgICAgX2luc3BlY3RvckNsaWVudCA9IGluc3BlY3RvckNsaWVudDsKIH0KIAot
LSAoV2ViSW5zcGVjdG9yQ2xpZW50KilpbnNwZWN0b3JDbGllbnQKKy0gKE5ha2VkUHRyPFdlYklu
c3BlY3RvckNsaWVudD4paW5zcGVjdG9yQ2xpZW50CiB7CiAgICAgcmV0dXJuIF9pbnNwZWN0b3JD
bGllbnQ7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJJbnNwZWN0
b3IvV2ViSW5zcGVjdG9yRnJvbnRlbmQuaCBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYklu
c3BlY3Rvci9XZWJJbnNwZWN0b3JGcm9udGVuZC5oCmluZGV4IDdlOWQ2OGEzMmFiYjE1ZjA5NmQ3
Yzc0M2ZhYmUxOGU3MGJiNGJkN2MuLjhkYTU3NjU3NTQ2MzA1ZDAzZjg5NGZkOGNhYjQ0OGY1ZjUz
YzcxMTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYkluc3BlY3Rvci9X
ZWJJbnNwZWN0b3JGcm9udGVuZC5oCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYklu
c3BlY3Rvci9XZWJJbnNwZWN0b3JGcm9udGVuZC5oCkBAIC0yMywxMyArMjMsMTUgQEAKICAqIE9G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VD
SCBEQU1BR0UuIAogICovCiAKKyNpbXBvcnQgPHd0Zi9OYWtlZFB0ci5oPgorCiBjbGFzcyBXZWJJ
bnNwZWN0b3JGcm9udGVuZENsaWVudDsKIAogQGludGVyZmFjZSBXZWJJbnNwZWN0b3JGcm9udGVu
ZCA6IE5TT2JqZWN0IHsKIEBwcml2YXRlCi0gICAgV2ViSW5zcGVjdG9yRnJvbnRlbmRDbGllbnQg
Km1fZnJvbnRlbmRDbGllbnQ7CisgICAgTmFrZWRQdHI8V2ViSW5zcGVjdG9yRnJvbnRlbmRDbGll
bnQ+IG1fZnJvbnRlbmRDbGllbnQ7CiB9Ci0tIChpZClpbml0V2l0aEZyb250ZW5kQ2xpZW50OihX
ZWJJbnNwZWN0b3JGcm9udGVuZENsaWVudCAqKWZyb250ZW5kQ2xpZW50OworLSAoaWQpaW5pdFdp
dGhGcm9udGVuZENsaWVudDooTmFrZWRQdHI8V2ViSW5zcGVjdG9yRnJvbnRlbmRDbGllbnQ+KWZy
b250ZW5kQ2xpZW50OwogLSAodm9pZClhdHRhY2g7CiAtICh2b2lkKWRldGFjaDsKIC0gKHZvaWQp
Y2xvc2U7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJJbnNwZWN0b3Iv
V2ViSW5zcGVjdG9yRnJvbnRlbmQubW0gYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJJbnNw
ZWN0b3IvV2ViSW5zcGVjdG9yRnJvbnRlbmQubW0KaW5kZXggNTFjZTQ4ZThkNmY4NmQ1MDI5NjNh
NjBmZjgxNTMzMzI1Y2I5Njc4MC4uZTc5ODE5ODM0MWFiYTEwMGFjNDFhY2M0MzhkYTUyNzdiNDUx
ZDJlYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViSW5zcGVjdG9yL1dl
Ykluc3BlY3RvckZyb250ZW5kLm1tCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYklu
c3BlY3Rvci9XZWJJbnNwZWN0b3JGcm9udGVuZC5tbQpAQCAtMzIsNyArMzIsNyBAQCB1c2luZyBu
YW1lc3BhY2UgV2ViQ29yZTsKIAogQGltcGxlbWVudGF0aW9uIFdlYkluc3BlY3RvckZyb250ZW5k
CiAKLS0gKGlkKWluaXRXaXRoRnJvbnRlbmRDbGllbnQ6KFdlYkluc3BlY3RvckZyb250ZW5kQ2xp
ZW50ICopZnJvbnRlbmRDbGllbnQKKy0gKGlkKWluaXRXaXRoRnJvbnRlbmRDbGllbnQ6KE5ha2Vk
UHRyPFdlYkluc3BlY3RvckZyb250ZW5kQ2xpZW50Pilmcm9udGVuZENsaWVudAogewogICAgIGlm
ICghKHNlbGYgPSBbc3VwZXIgaW5pdF0pKQogICAgICAgICByZXR1cm4gbmlsOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViSW5zcGVjdG9yL1dlYk5vZGVIaWdobGlnaHQu
aCBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYkluc3BlY3Rvci9XZWJOb2RlSGlnaGxpZ2h0
LmgKaW5kZXggMDA2ZTFkMGI5NjUxYzY3YjU1M2Y1Mzc3ODkyMWRiMTgzNDcyODU5ZC4uNGRhZjMz
ZWI3OWFkMzMzZGRkYWM1OWI3MDM4ZWU1ZTYxMjY1MjdiNSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdExlZ2FjeS9tYWMvV2ViSW5zcGVjdG9yL1dlYk5vZGVIaWdobGlnaHQuaAorKysgYi9Tb3Vy
Y2UvV2ViS2l0TGVnYWN5L21hYy9XZWJJbnNwZWN0b3IvV2ViTm9kZUhpZ2hsaWdodC5oCkBAIC0z
MSw2ICszMSw3IEBACiAjaW1wb3J0IDxXZWJLaXRMZWdhY3kvV0FLQXBwS2l0U3R1YnMuaD4KICNp
bXBvcnQgPFdlYktpdExlZ2FjeS9XQUtWaWV3Lmg+CiAjZW5kaWYKKyNpbXBvcnQgPHd0Zi9OYWtl
ZFB0ci5oPgogCiBAY2xhc3MgV2ViTm9kZUhpZ2hsaWdodFZpZXc7CiAjaWYgUExBVEZPUk0oSU9T
X0ZBTUlMWSkKQEAgLTU4LDEwICs1OSwxMCBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgV2Vi
SGlnaGxpZ2h0TGF5ZXIgKl9oaWdobGlnaHRMYXllcjsKICNlbmRpZgogICAgIFdlYk5vZGVIaWdo
bGlnaHRWaWV3ICpfaGlnaGxpZ2h0VmlldzsKLSAgICBXZWJDb3JlOjpJbnNwZWN0b3JDb250cm9s
bGVyKiBfaW5zcGVjdG9yQ29udHJvbGxlcjsKKyAgICBOYWtlZFB0cjxXZWJDb3JlOjpJbnNwZWN0
b3JDb250cm9sbGVyPiBfaW5zcGVjdG9yQ29udHJvbGxlcjsKICAgICBpZCBfZGVsZWdhdGU7CiB9
Ci0tIChpZClpbml0V2l0aFRhcmdldFZpZXc6KE5TVmlldyAqKXRhcmdldFZpZXcgaW5zcGVjdG9y
Q29udHJvbGxlcjooV2ViQ29yZTo6SW5zcGVjdG9yQ29udHJvbGxlciopaW5zcGVjdG9yQ29udHJv
bGxlcjsKKy0gKGlkKWluaXRXaXRoVGFyZ2V0VmlldzooTlNWaWV3ICopdGFyZ2V0VmlldyBpbnNw
ZWN0b3JDb250cm9sbGVyOihOYWtlZFB0cjxXZWJDb3JlOjpJbnNwZWN0b3JDb250cm9sbGVyPilp
bnNwZWN0b3JDb250cm9sbGVyOwogCiAtICh2b2lkKXNldERlbGVnYXRlOihpZClkZWxlZ2F0ZTsK
IC0gKGlkKWRlbGVnYXRlOwpAQCAtNzIsNyArNzMsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAt
IChOU1ZpZXcgKil0YXJnZXRWaWV3OwogLSAoV2ViTm9kZUhpZ2hsaWdodFZpZXcgKiloaWdobGln
aHRWaWV3OwogCi0tIChXZWJDb3JlOjpJbnNwZWN0b3JDb250cm9sbGVyKilpbnNwZWN0b3JDb250
cm9sbGVyOworLSAoTmFrZWRQdHI8V2ViQ29yZTo6SW5zcGVjdG9yQ29udHJvbGxlcj4paW5zcGVj
dG9yQ29udHJvbGxlcjsKIAogI2lmICFQTEFURk9STShJT1NfRkFNSUxZKQogLSAodm9pZClzZXRO
ZWVkc1VwZGF0ZUluVGFyZ2V0Vmlld1JlY3Q6KE5TUmVjdClyZWN0OwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViSW5zcGVjdG9yL1dlYk5vZGVIaWdobGlnaHQubW0gYi9T
b3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJJbnNwZWN0b3IvV2ViTm9kZUhpZ2hsaWdodC5tbQpp
bmRleCAzZGI0NGQ2ZjU1ODk5ZjA4YWM4ZGQ0MmY4OGFkZmYzZjk5YzU5OTkwLi4wYWY1NjE5YTcy
NmMzNWFmODUxYWEwN2M1YzQzZDMwMjczN2VhMjU2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
TGVnYWN5L21hYy9XZWJJbnNwZWN0b3IvV2ViTm9kZUhpZ2hsaWdodC5tbQorKysgYi9Tb3VyY2Uv
V2ViS2l0TGVnYWN5L21hYy9XZWJJbnNwZWN0b3IvV2ViTm9kZUhpZ2hsaWdodC5tbQpAQCAtODEs
NyArODEsNyBAQCBAZW5kCiAKIEBpbXBsZW1lbnRhdGlvbiBXZWJOb2RlSGlnaGxpZ2h0CiAKLS0g
KGlkKWluaXRXaXRoVGFyZ2V0VmlldzooTlNWaWV3ICopdGFyZ2V0VmlldyBpbnNwZWN0b3JDb250
cm9sbGVyOihJbnNwZWN0b3JDb250cm9sbGVyKilpbnNwZWN0b3JDb250cm9sbGVyCistIChpZClp
bml0V2l0aFRhcmdldFZpZXc6KE5TVmlldyAqKXRhcmdldFZpZXcgaW5zcGVjdG9yQ29udHJvbGxl
cjooTmFrZWRQdHI8SW5zcGVjdG9yQ29udHJvbGxlcj4paW5zcGVjdG9yQ29udHJvbGxlcgogewog
ICAgIHNlbGYgPSBbc3VwZXIgaW5pdF07CiAgICAgaWYgKCFzZWxmKQpAQCAtMjUwLDcgKzI1MCw3
IEBAIC0gKE5TVmlldyAqKXRhcmdldFZpZXcKICAgICByZXR1cm4gX3RhcmdldFZpZXc7CiB9CiAK
LS0gKEluc3BlY3RvckNvbnRyb2xsZXIqKWluc3BlY3RvckNvbnRyb2xsZXIKKy0gKE5ha2VkUHRy
PEluc3BlY3RvckNvbnRyb2xsZXI+KWluc3BlY3RvckNvbnRyb2xsZXIKIHsKICAgICByZXR1cm4g
X2luc3BlY3RvckNvbnRyb2xsZXI7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5
L21hYy9XZWJWaWV3L1dlYkFyY2hpdmUubW0gYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJW
aWV3L1dlYkFyY2hpdmUubW0KaW5kZXggMGRhNzBiYmY4NTdkMDI4YzllYzRiYWQ2ZWIzMWY5ZDgz
NzUxNzFjYy4uOGViZmI1M2U5MTRiZmVlZWU3MzM4ZTY2MDM2OTc4ZWZiYTViMmJkMSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJBcmNoaXZlLm1tCisrKyBi
L1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViQXJjaGl2ZS5tbQpAQCAtMTc1LDEz
ICsxNzUsMTMgQEAgLSAoaW5zdGFuY2V0eXBlKWluaXRXaXRoTWFpblJlc291cmNlOihXZWJSZXNv
dXJjZSAqKW1haW5SZXNvdXJjZSBzdWJyZXNvdXJjZXM6KE4KIAogICAgIFZlY3RvcjxSZWY8QXJj
aGl2ZVJlc291cmNlPj4gY29yZVJlc291cmNlczsKICAgICBmb3IgKFdlYlJlc291cmNlICpzdWJy
ZXNvdXJjZSBpbiBzdWJyZXNvdXJjZXMpCi0gICAgICAgIGNvcmVSZXNvdXJjZXMuYXBwZW5kKFtz
dWJyZXNvdXJjZSBfY29yZVJlc291cmNlXSk7CisgICAgICAgIGNvcmVSZXNvdXJjZXMuYXBwZW5k
KFtzdWJyZXNvdXJjZSBfY29yZVJlc291cmNlXS5nZXQoKSk7CiAKICAgICBWZWN0b3I8UmVmPExl
Z2FjeVdlYkFyY2hpdmU+PiBjb3JlQXJjaGl2ZXM7CiAgICAgZm9yIChXZWJBcmNoaXZlICpzdWJm
cmFtZUFyY2hpdmUgaW4gc3ViZnJhbWVBcmNoaXZlcykKICAgICAgICAgY29yZUFyY2hpdmVzLmFw
cGVuZCgqW3N1YmZyYW1lQXJjaGl2ZS0+X3ByaXZhdGUgY29yZUFyY2hpdmVdKTsKIAotICAgIFtf
cHJpdmF0ZSBzZXRDb3JlQXJjaGl2ZTpMZWdhY3lXZWJBcmNoaXZlOjpjcmVhdGUoW21haW5SZXNv
dXJjZSBfY29yZVJlc291cmNlXSwgV1RGTW92ZShjb3JlUmVzb3VyY2VzKSwgV1RGTW92ZShjb3Jl
QXJjaGl2ZXMpKV07CisgICAgW19wcml2YXRlIHNldENvcmVBcmNoaXZlOkxlZ2FjeVdlYkFyY2hp
dmU6OmNyZWF0ZShbbWFpblJlc291cmNlIF9jb3JlUmVzb3VyY2VdLmdldCgpLCBXVEZNb3ZlKGNv
cmVSZXNvdXJjZXMpLCBXVEZNb3ZlKGNvcmVBcmNoaXZlcykpXTsKICAgICByZXR1cm4gc2VsZjsK
IH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJEYXRh
U291cmNlLm1tIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJEYXRhU291cmNl
Lm1tCmluZGV4IDkxZTk0YmZmMGQyZGJlZjE2N2RjZTU0YThmMTdhNWIzOTRkODI4NGEuLmJiMDI3
NjkzYzI1YTZiYzYzODY0M2QwZWVjMjY0YTQyNTBlNDNiNzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViRGF0YVNvdXJjZS5tbQorKysgYi9Tb3VyY2UvV2Vi
S2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYkRhdGFTb3VyY2UubW0KQEAgLTYxLDYgKzYxLDcgQEAK
ICNpbXBvcnQgPFdlYktpdExlZ2FjeS9ET01Qcml2YXRlLmg+CiAjaW1wb3J0IDx3dGYvQXNzZXJ0
aW9ucy5oPgogI2ltcG9ydCA8d3RmL01haW5UaHJlYWQuaD4KKyNpbXBvcnQgPHd0Zi9OYWtlZFB0
ci5oPgogI2ltcG9ydCA8d3RmL1JlZlB0ci5oPgogI2ltcG9ydCA8d3RmL1JldGFpblB0ci5oPgog
I2ltcG9ydCA8d3RmL1J1bkxvb3AuaD4KQEAgLTM5NCw3ICszOTUsNyBAQCAtICh2b2lkKV9tYWtl
UmVwcmVzZW50YXRpb24KICNlbmRpZgogfQogCi0tIChXZWJDb3JlOjpEb2N1bWVudExvYWRlciop
X2RvY3VtZW50TG9hZGVyCistIChOYWtlZFB0cjxXZWJDb3JlOjpEb2N1bWVudExvYWRlcj4pX2Rv
Y3VtZW50TG9hZGVyCiB7CiAgICAgcmV0dXJuIHRvUHJpdmF0ZShfcHJpdmF0ZSktPmxvYWRlci5w
dHIoKTsKIH0KQEAgLTU2NCw3ICs1NjUsNyBAQCAtIChXZWJSZXNvdXJjZSAqKXN1YnJlc291cmNl
Rm9yVVJMOihOU1VSTCAqKVVSTAogCiAtICh2b2lkKWFkZFN1YnJlc291cmNlOihXZWJSZXNvdXJj
ZSAqKXN1YnJlc291cmNlCiB7ICAgIAotICAgIHRvUHJpdmF0ZShfcHJpdmF0ZSktPmxvYWRlci0+
YWRkQXJjaGl2ZVJlc291cmNlKFtzdWJyZXNvdXJjZSBfY29yZVJlc291cmNlXSk7CisgICAgdG9Q
cml2YXRlKF9wcml2YXRlKS0+bG9hZGVyLT5hZGRBcmNoaXZlUmVzb3VyY2UoW3N1YnJlc291cmNl
IF9jb3JlUmVzb3VyY2VdLmdldCgpKTsKIH0KIAogQGVuZApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJEYXRhU291cmNlSW50ZXJuYWwuaCBiL1NvdXJjZS9X
ZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViRGF0YVNvdXJjZUludGVybmFsLmgKaW5kZXggODBl
ODExMGY1NGZiMmQyODhhM2I3MTk0ODdlY2I3ZGZkODQwYzJiMi4uYjFkODU0ZDBiZDRlMTE2MTFh
NGQxNWVlNzFiMjY3MWUxM2FhZDNhZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9t
YWMvV2ViVmlldy9XZWJEYXRhU291cmNlSW50ZXJuYWwuaAorKysgYi9Tb3VyY2UvV2ViS2l0TGVn
YWN5L21hYy9XZWJWaWV3L1dlYkRhdGFTb3VyY2VJbnRlcm5hbC5oCkBAIC0yOCw2ICsyOCw3IEBA
CiAKICNpbXBvcnQgIldlYkRhdGFTb3VyY2VQcml2YXRlLmgiCiAjaW1wb3J0IDx3dGYvRm9yd2Fy
ZC5oPgorI2ltcG9ydCA8d3RmL05ha2VkUHRyLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIGNs
YXNzIERvY3VtZW50TG9hZGVyOwpAQCAtNTcsNyArNTgsNyBAQCBjbGFzcyBXZWJEb2N1bWVudExv
YWRlck1hYzsKIC0gKHZvaWQpX3JlY2VpdmVkRGF0YTooTlNEYXRhICopZGF0YTsKIC0gKHZvaWQp
X3JldmVydFRvUHJvdmlzaW9uYWxTdGF0ZTsKIC0gKHZvaWQpX3NldE1haW5Eb2N1bWVudEVycm9y
OihOU0Vycm9yICopZXJyb3I7Ci0tIChXZWJDb3JlOjpEb2N1bWVudExvYWRlciopX2RvY3VtZW50
TG9hZGVyOworLSAoTmFrZWRQdHI8V2ViQ29yZTo6RG9jdW1lbnRMb2FkZXI+KV9kb2N1bWVudExv
YWRlcjsKICNpZiBVU0UoUVVJQ0tfTE9PSykKIEBwcm9wZXJ0eSAobm9uYXRvbWljLCBjb3B5LCBz
ZXR0ZXI9X3NldFF1aWNrTG9va0NvbnRlbnQ6KSBOU0RpY3Rpb25hcnkgKl9xdWlja0xvb2tDb250
ZW50OwogQHByb3BlcnR5IChub25hdG9taWMsIHNldHRlcj1fc2V0UXVpY2tMb29rUHJldmlld0xv
YWRlckNsaWVudDopIFdlYkNvcmU6OkxlZ2FjeVByZXZpZXdMb2FkZXJDbGllbnQqIF9xdWlja0xv
b2tQcmV2aWV3TG9hZGVyQ2xpZW50OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS9t
YWMvV2ViVmlldy9XZWJGcmFtZS5tbSBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcv
V2ViRnJhbWUubW0KaW5kZXggMzRmMjgxZDE3MDQ1ZDVkZWQxNDZhMWUzMTlhMmZiNjMwZDBiMmMz
Zi4uMGNiNmFmNjkyMWE1NWFmYTYxMGU1OTg0YzM3OTlmM2MxYWVhN2U2NCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJGcmFtZS5tbQorKysgYi9Tb3VyY2Uv
V2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYkZyYW1lLm1tCkBAIC0yOTEsNyArMjkxLDcgQEAg
V2ViVmlldyAqa2l0KFdlYkNvcmU6OlBhZ2UqIHBhZ2UpCiAKIFdlYlZpZXcgKmdldFdlYlZpZXco
V2ViRnJhbWUgKndlYkZyYW1lKQogewotICAgIGF1dG8qIGNvcmVGcmFtZSA9IGNvcmUod2ViRnJh
bWUpOworICAgIGF1dG8gY29yZUZyYW1lID0gY29yZSh3ZWJGcmFtZSk7CiAgICAgaWYgKCFjb3Jl
RnJhbWUpCiAgICAgICAgIHJldHVybiBuaWw7CiAgICAgcmV0dXJuIGtpdChjb3JlRnJhbWUtPnBh
Z2UoKSk7CkBAIC00MzEsOCArNDMxLDggQEAgLSAodm9pZClfdXBkYXRlQmFja2dyb3VuZEFuZFVw
ZGF0ZXNXaGlsZU9mZnNjcmVlbgogICAgIENHQ29sb3JSZWYgYmFja2dyb3VuZENvbG9yID0gW3dl
YlZpZXcgYmFja2dyb3VuZENvbG9yXTsKICNlbmRpZgogCi0gICAgYXV0byogY29yZUZyYW1lID0g
X3ByaXZhdGUtPmNvcmVGcmFtZTsKLSAgICBmb3IgKGF1dG8qIGZyYW1lID0gY29yZUZyYW1lOyBm
cmFtZTsgZnJhbWUgPSBmcmFtZS0+dHJlZSgpLnRyYXZlcnNlTmV4dChjb3JlRnJhbWUpKSB7Cisg
ICAgYXV0byBjb3JlRnJhbWUgPSBfcHJpdmF0ZS0+Y29yZUZyYW1lOworICAgIGZvciAoYXV0byBm
cmFtZSA9IGNvcmVGcmFtZTsgZnJhbWU7IGZyYW1lID0gZnJhbWUtPnRyZWUoKS50cmF2ZXJzZU5l
eHQoY29yZUZyYW1lKSkgewogICAgICAgICAvLyBEb24ndCBjYWxsIHNldERyYXdzQmFja2dyb3Vu
ZDpZRVMgaGVyZSBiZWNhdXNlIGl0IG1heSBiZSBOTyBiZWNhdXNlIG9mIGEgbG9hZAogICAgICAg
ICAvLyBpbiBwcm9ncmVzczsgV2ViRnJhbWVMb2FkZXJDbGllbnQga2VlcHMgaXQgc2V0IHRvIE5P
IGR1cmluZyB0aGUgbG9hZCBwcm9jZXNzLgogICAgICAgICBXZWJGcmFtZSAqd2ViRnJhbWUgPSBr
aXQoZnJhbWUpOwpAQCAtNDY5LDggKzQ2OSw4IEBAIC0gKGlkKV9pbnRlcm5hbExvYWREZWxlZ2F0
ZQogCiAtICh2b2lkKV91bm1hcmtBbGxCYWRHcmFtbWFyCiB7Ci0gICAgYXV0byogY29yZUZyYW1l
ID0gX3ByaXZhdGUtPmNvcmVGcmFtZTsKLSAgICBmb3IgKGF1dG8qIGZyYW1lID0gY29yZUZyYW1l
OyBmcmFtZTsgZnJhbWUgPSBmcmFtZS0+dHJlZSgpLnRyYXZlcnNlTmV4dChjb3JlRnJhbWUpKSB7
CisgICAgYXV0byBjb3JlRnJhbWUgPSBfcHJpdmF0ZS0+Y29yZUZyYW1lOworICAgIGZvciAoYXV0
byBmcmFtZSA9IGNvcmVGcmFtZTsgZnJhbWU7IGZyYW1lID0gZnJhbWUtPnRyZWUoKS50cmF2ZXJz
ZU5leHQoY29yZUZyYW1lKSkgewogICAgICAgICBpZiAoYXV0byogZG9jdW1lbnQgPSBmcmFtZS0+
ZG9jdW1lbnQoKSkKICAgICAgICAgICAgIGRvY3VtZW50LT5tYXJrZXJzKCkucmVtb3ZlTWFya2Vy
cyhXZWJDb3JlOjpEb2N1bWVudE1hcmtlcjo6R3JhbW1hcik7CiAgICAgfQpAQCAtNDc5LDggKzQ3
OSw4IEBAIC0gKHZvaWQpX3VubWFya0FsbEJhZEdyYW1tYXIKIC0gKHZvaWQpX3VubWFya0FsbE1p
c3NwZWxsaW5ncwogewogI2lmICFQTEFURk9STShJT1NfRkFNSUxZKQotICAgIGF1dG8qIGNvcmVG
cmFtZSA9IF9wcml2YXRlLT5jb3JlRnJhbWU7Ci0gICAgZm9yIChhdXRvKiBmcmFtZSA9IGNvcmVG
cmFtZTsgZnJhbWU7IGZyYW1lID0gZnJhbWUtPnRyZWUoKS50cmF2ZXJzZU5leHQoY29yZUZyYW1l
KSkgeworICAgIGF1dG8gY29yZUZyYW1lID0gX3ByaXZhdGUtPmNvcmVGcmFtZTsKKyAgICBmb3Ig
KGF1dG8gZnJhbWUgPSBjb3JlRnJhbWU7IGZyYW1lOyBmcmFtZSA9IGZyYW1lLT50cmVlKCkudHJh
dmVyc2VOZXh0KGNvcmVGcmFtZSkpIHsKICAgICAgICAgaWYgKGF1dG8qIGRvY3VtZW50ID0gZnJh
bWUtPmRvY3VtZW50KCkpCiAgICAgICAgICAgICBkb2N1bWVudC0+bWFya2VycygpLnJlbW92ZU1h
cmtlcnMoV2ViQ29yZTo6RG9jdW1lbnRNYXJrZXI6OlNwZWxsaW5nKTsKICAgICB9CkBAIC00OTMs
NyArNDkzLDcgQEAgLSAoQk9PTClfaGFzU2VsZWN0aW9uCiAKICAgICAvLyBvcHRpbWl6YXRpb24g
Zm9yIGNvbW1vbiBjYXNlIHRvIGF2b2lkIGNyZWF0aW5nIHBvdGVudGlhbGx5IGxhcmdlIHNlbGVj
dGlvbiBzdHJpbmcKICAgICBpZiAoW2RvY3VtZW50VmlldyBpc0tpbmRPZkNsYXNzOltXZWJIVE1M
VmlldyBjbGFzc11dKQotICAgICAgICBpZiAoYXV0byogY29yZUZyYW1lID0gX3ByaXZhdGUtPmNv
cmVGcmFtZSkKKyAgICAgICAgaWYgKGF1dG8gY29yZUZyYW1lID0gX3ByaXZhdGUtPmNvcmVGcmFt
ZSkKICAgICAgICAgICAgIHJldHVybiBjb3JlRnJhbWUtPnNlbGVjdGlvbigpLmlzUmFuZ2UoKTsK
IAogICAgIGlmIChbZG9jdW1lbnRWaWV3IGNvbmZvcm1zVG9Qcm90b2NvbDpAcHJvdG9jb2woV2Vi
RG9jdW1lbnRUZXh0KV0pCkBAIC01MTQsOCArNTE0LDggQEAgLSAoQk9PTClfYXRNb3N0T25lRnJh
bWVIYXNTZWxlY3Rpb24KIHsKICAgICAvLyBGSVhNRTogNDE4NjA1MCBpcyBvbmUga25vd24gY2Fz
ZSB0aGF0IG1ha2VzIHRoaXMgZGVidWcgY2hlY2sgZmFpbC4KICAgICBCT09MIGZvdW5kID0gTk87
Ci0gICAgYXV0byogY29yZUZyYW1lID0gX3ByaXZhdGUtPmNvcmVGcmFtZTsKLSAgICBmb3IgKGF1
dG8qIGZyYW1lID0gY29yZUZyYW1lOyBmcmFtZTsgZnJhbWUgPSBmcmFtZS0+dHJlZSgpLnRyYXZl
cnNlTmV4dChjb3JlRnJhbWUpKSB7CisgICAgYXV0byBjb3JlRnJhbWUgPSBfcHJpdmF0ZS0+Y29y
ZUZyYW1lOworICAgIGZvciAoYXV0byBmcmFtZSA9IGNvcmVGcmFtZTsgZnJhbWU7IGZyYW1lID0g
ZnJhbWUtPnRyZWUoKS50cmF2ZXJzZU5leHQoY29yZUZyYW1lKSkgewogICAgICAgICBpZiAoW2tp
dChmcmFtZSkgX2hhc1NlbGVjdGlvbl0pIHsKICAgICAgICAgICAgIGlmIChmb3VuZCkKICAgICAg
ICAgICAgICAgICByZXR1cm4gTk87CkBAIC01MjgsOCArNTI4LDggQEAgLSAoQk9PTClfYXRNb3N0
T25lRnJhbWVIYXNTZWxlY3Rpb24KIAogLSAoV2ViRnJhbWUgKilfZmluZEZyYW1lV2l0aFNlbGVj
dGlvbgogewotICAgIGF1dG8qIGNvcmVGcmFtZSA9IF9wcml2YXRlLT5jb3JlRnJhbWU7Ci0gICAg
Zm9yIChhdXRvKiBmcmFtZSA9IGNvcmVGcmFtZTsgZnJhbWU7IGZyYW1lID0gZnJhbWUtPnRyZWUo
KS50cmF2ZXJzZU5leHQoY29yZUZyYW1lKSkgeworICAgIGF1dG8gY29yZUZyYW1lID0gX3ByaXZh
dGUtPmNvcmVGcmFtZTsKKyAgICBmb3IgKGF1dG8gZnJhbWUgPSBjb3JlRnJhbWU7IGZyYW1lOyBm
cmFtZSA9IGZyYW1lLT50cmVlKCkudHJhdmVyc2VOZXh0KGNvcmVGcmFtZSkpIHsKICAgICAgICAg
V2ViRnJhbWUgKndlYkZyYW1lID0ga2l0KGZyYW1lKTsKICAgICAgICAgaWYgKFt3ZWJGcmFtZSBf
aGFzU2VsZWN0aW9uXSkKICAgICAgICAgICAgIHJldHVybiB3ZWJGcmFtZTsKQEAgLTc2NSw3ICs3
NjUsNyBAQCAtICh2b2lkKV9zY3JvbGxET01SYW5nZVRvVmlzaWJsZTooRE9NUmFuZ2UgKilyYW5n
ZSB3aXRoSW5zZXQ6KENHRmxvYXQpaW5zZXQKICAgICAgICAgICAgIHN0YXJ0Tm9kZS0+cmVuZGVy
ZXIoKS0+c2Nyb2xsUmVjdFRvVmlzaWJsZShXZWJDb3JlOjplbmNsb3NpbmdJbnRSZWN0KHJhbmdl
UmVjdCksIGluc2lkZUZpeGVkLCB7IFdlYkNvcmU6OlNlbGVjdGlvblJldmVhbE1vZGU6OlJldmVh
bCwgV2ViQ29yZTo6U2Nyb2xsQWxpZ25tZW50OjphbGlnblRvRWRnZUlmTmVlZGVkLCBXZWJDb3Jl
OjpTY3JvbGxBbGlnbm1lbnQ6OmFsaWduVG9FZGdlSWZOZWVkZWQsIFdlYkNvcmU6OlNob3VsZEFs
bG93Q3Jvc3NPcmlnaW5TY3JvbGxpbmc6Olllc30pOwogICAgICAgICAgICAgbGF5ZXItPnNldEFk
anVzdEZvcklPU0NhcmV0V2hlblNjcm9sbGluZyhmYWxzZSk7CiAKLSAgICAgICAgICAgIGF1dG8q
IGNvcmVGcmFtZSA9IGNvcmUoc2VsZik7CisgICAgICAgICAgICBhdXRvIGNvcmVGcmFtZSA9IGNv
cmUoc2VsZik7CiAgICAgICAgICAgICBpZiAoY29yZUZyYW1lKSB7CiAgICAgICAgICAgICAgICAg
YXV0byYgZnJhbWVTZWxlY3Rpb24gPSBjb3JlRnJhbWUtPnNlbGVjdGlvbigpOwogICAgICAgICAg
ICAgICAgIGZyYW1lU2VsZWN0aW9uLnNldENhcmV0UmVjdE5lZWRzVXBkYXRlKCk7CkBAIC04NzAs
NyArODcwLDcgQEAgLSAoRE9NUmFuZ2UgKilfbWFya0RPTVJhbmdlCiAKIC0gKERPTURvY3VtZW50
RnJhZ21lbnQgKilfZG9jdW1lbnRGcmFnbWVudFdpdGhNYXJrdXBTdHJpbmc6KE5TU3RyaW5nICop
bWFya3VwU3RyaW5nIGJhc2VVUkxTdHJpbmc6KE5TU3RyaW5nICopYmFzZVVSTFN0cmluZwogewot
ICAgIGF1dG8qIGZyYW1lID0gX3ByaXZhdGUtPmNvcmVGcmFtZTsKKyAgICBhdXRvIGZyYW1lID0g
X3ByaXZhdGUtPmNvcmVGcmFtZTsKICAgICBpZiAoIWZyYW1lKQogICAgICAgICByZXR1cm4gbmls
OwogCkBAIC04ODMsNyArODgzLDcgQEAgLSAoRE9NRG9jdW1lbnRGcmFnbWVudCAqKV9kb2N1bWVu
dEZyYWdtZW50V2l0aE1hcmt1cFN0cmluZzooTlNTdHJpbmcgKiltYXJrdXBTdHIKIAogLSAoRE9N
RG9jdW1lbnRGcmFnbWVudCAqKV9kb2N1bWVudEZyYWdtZW50V2l0aE5vZGVzQXNQYXJhZ3JhcGhz
OihOU0FycmF5ICopbm9kZXMKIHsKLSAgICBhdXRvKiBmcmFtZSA9IF9wcml2YXRlLT5jb3JlRnJh
bWU7CisgICAgYXV0byBmcmFtZSA9IF9wcml2YXRlLT5jb3JlRnJhbWU7CiAgICAgaWYgKCFmcmFt
ZSkKICAgICAgICAgcmV0dXJuIG5pbDsKIApAQCAtOTcwLDcgKzk3MCw3IEBAIC0gKHZvaWQpX2Ry
YWdTb3VyY2VFbmRlZEF0OihOU1BvaW50KXdpbmRvd0xvYyBvcGVyYXRpb246KE5TRHJhZ09wZXJh
dGlvbilvcGVyYXRpCiAKIC0gKEJPT0wpX2NhblByb3ZpZGVEb2N1bWVudFNvdXJjZQogewotICAg
IGF1dG8qIGZyYW1lID0gX3ByaXZhdGUtPmNvcmVGcmFtZTsKKyAgICBhdXRvIGZyYW1lID0gX3By
aXZhdGUtPmNvcmVGcmFtZTsKICAgICBTdHJpbmcgbWltZVR5cGUgPSBmcmFtZS0+ZG9jdW1lbnQo
KS0+bG9hZGVyKCktPndyaXRlcigpLm1pbWVUeXBlKCk7CiAgICAgYXV0byogcGx1Z2luRGF0YSA9
IGZyYW1lLT5wYWdlKCkgPyAmZnJhbWUtPnBhZ2UoKS0+cGx1Z2luRGF0YSgpIDogMDsKIApAQCAt
MTAwNiw3ICsxMDA2LDcgQEAgQGltcGxlbWVudGF0aW9uIFdlYkZyYW1lIChXZWJQcml2YXRlKQog
Ly8gRklYTUU6IFRoaXMgZXhpc3RzIG9ubHkgYXMgYSBjb252ZW5pZW5jZSBmb3IgU2FmYXJpLCBj
b25zaWRlciBtb3ZpbmcgdGhlcmUuCiAtIChCT09MKV9pc0Rlc2NlbmRhbnRPZkZyYW1lOihXZWJG
cmFtZSAqKWFuY2VzdG9yCiB7Ci0gICAgYXV0byogY29yZUZyYW1lID0gX3ByaXZhdGUtPmNvcmVG
cmFtZTsKKyAgICBhdXRvIGNvcmVGcmFtZSA9IF9wcml2YXRlLT5jb3JlRnJhbWU7CiAgICAgcmV0
dXJuIGNvcmVGcmFtZSAmJiBjb3JlRnJhbWUtPnRyZWUoKS5pc0Rlc2NlbmRhbnRPZihjb3JlKGFu
Y2VzdG9yKSk7CiB9CiAKQEAgLTExNzEsNyArMTE3MSw3IEBAIC0gKHVuc2lnbmVkKV9wZW5kaW5n
RnJhbWVVbmxvYWRFdmVudENvdW50CiAjaWYgRU5BQkxFKE5FVFNDQVBFX1BMVUdJTl9BUEkpCiAt
ICh2b2lkKV9yZWN1cnNpdmVfcmVzdW1lTnVsbEV2ZW50c0ZvckFsbE5ldHNjYXBlUGx1Z2lucwog
ewotICAgIGF1dG8qIGNvcmVGcmFtZSA9IGNvcmUoc2VsZik7CisgICAgYXV0byBjb3JlRnJhbWUg
PSBjb3JlKHNlbGYpOwogICAgIGZvciAoYXV0byogZnJhbWUgPSBjb3JlRnJhbWU7IGZyYW1lOyBm
cmFtZSA9IGZyYW1lLT50cmVlKCkudHJhdmVyc2VOZXh0KGNvcmVGcmFtZSkpIHsKICAgICAgICAg
TlNWaWV3IDxXZWJEb2N1bWVudFZpZXc+ICpkb2N1bWVudFZpZXcgPSBbW2tpdChmcmFtZSkgZnJh
bWVWaWV3XSBkb2N1bWVudFZpZXddOwogICAgICAgICBpZiAoW2RvY3VtZW50VmlldyBpc0tpbmRP
ZkNsYXNzOltXZWJIVE1MVmlldyBjbGFzc11dKQpAQCAtMTE4MSw3ICsxMTgxLDcgQEAgLSAodm9p
ZClfcmVjdXJzaXZlX3Jlc3VtZU51bGxFdmVudHNGb3JBbGxOZXRzY2FwZVBsdWdpbnMKIAogLSAo
dm9pZClfcmVjdXJzaXZlX3BhdXNlTnVsbEV2ZW50c0ZvckFsbE5ldHNjYXBlUGx1Z2lucwogewot
ICAgIGF1dG8qIGNvcmVGcmFtZSA9IGNvcmUoc2VsZik7CisgICAgYXV0byBjb3JlRnJhbWUgPSBj
b3JlKHNlbGYpOwogICAgIGZvciAoYXV0byogZnJhbWUgPSBjb3JlRnJhbWU7IGZyYW1lOyBmcmFt
ZSA9IGZyYW1lLT50cmVlKCkudHJhdmVyc2VOZXh0KGNvcmVGcmFtZSkpIHsKICAgICAgICAgTlNW
aWV3IDxXZWJEb2N1bWVudFZpZXc+ICpkb2N1bWVudFZpZXcgPSBbW2tpdChmcmFtZSkgZnJhbWVW
aWV3XSBkb2N1bWVudFZpZXddOwogICAgICAgICBpZiAoW2RvY3VtZW50VmlldyBpc0tpbmRPZkNs
YXNzOltXZWJIVE1MVmlldyBjbGFzc11dKQpAQCAtMTIwMCw3ICsxMjAwLDcgQEAgLSAodW5zaWdu
ZWQpZm9ybUVsZW1lbnRzQ2hhcmFjdGVyQ291bnQKIC0gKHZvaWQpc2V0VGltZW91dHNQYXVzZWQ6
KEJPT0wpZmxhZwogewogICAgIGlmIChbc2VsZiBfd2ViSFRNTERvY3VtZW50Vmlld10pIHsKLSAg
ICAgICAgaWYgKGF1dG8qIGNvcmVGcmFtZSA9IF9wcml2YXRlLT5jb3JlRnJhbWUpCisgICAgICAg
IGlmIChhdXRvIGNvcmVGcmFtZSA9IF9wcml2YXRlLT5jb3JlRnJhbWUpCiAgICAgICAgICAgICBj
b3JlRnJhbWUtPnNldFRpbWVyc1BhdXNlZChmbGFnKTsKICAgICB9CiB9CkBAIC0xMjIwLDcgKzEy
MjAsNyBAQCAtICh2b2lkKXNldFBsdWdpbnNQYXVzZWQ6KEJPT0wpZmxhZwogLSAodm9pZClwcmVw
YXJlRm9yUGF1c2UKIHsKICAgICBpZiAoW3NlbGYgX3dlYkhUTUxEb2N1bWVudFZpZXddKSB7Ci0g
ICAgICAgIGlmIChhdXRvKiBjb3JlRnJhbWUgPSBfcHJpdmF0ZS0+Y29yZUZyYW1lKQorICAgICAg
ICBpZiAoYXV0byBjb3JlRnJhbWUgPSBfcHJpdmF0ZS0+Y29yZUZyYW1lKQogICAgICAgICAgICAg
Y29yZUZyYW1lLT5kaXNwYXRjaFBhZ2VIaWRlRXZlbnRCZWZvcmVQYXVzZSgpOwogICAgIH0KIH0K
QEAgLTEyMjgsNyArMTIyOCw3IEBAIC0gKHZvaWQpcHJlcGFyZUZvclBhdXNlCiAtICh2b2lkKXJl
c3VtZUZyb21QYXVzZQogewogICAgIGlmIChbc2VsZiBfd2ViSFRNTERvY3VtZW50Vmlld10pIHsK
LSAgICAgICAgaWYgKGF1dG8qIGNvcmVGcmFtZSA9IF9wcml2YXRlLT5jb3JlRnJhbWUpCisgICAg
ICAgIGlmIChhdXRvIGNvcmVGcmFtZSA9IF9wcml2YXRlLT5jb3JlRnJhbWUpCiAgICAgICAgICAg
ICBjb3JlRnJhbWUtPmRpc3BhdGNoUGFnZVNob3dFdmVudEJlZm9yZVJlc3VtZSgpOwogICAgIH0K
IH0KQEAgLTE5MDcsNyArMTkwNyw3IEBAIC0gKHZvaWQpcmVzZXRUZXh0QXV0b3NpemluZ0JlZm9y
ZUxheW91dAogICAgIGlmICghW3NlbGYgX3dlYkhUTUxEb2N1bWVudFZpZXddKQogICAgICAgICBy
ZXR1cm47CiAgICAgCi0gICAgYXV0byogY29yZUZyYW1lID0gY29yZShzZWxmKTsKKyAgICBhdXRv
IGNvcmVGcmFtZSA9IGNvcmUoc2VsZik7CiAgICAgZm9yIChhdXRvKiBmcmFtZSA9IGNvcmVGcmFt
ZTsgZnJhbWU7IGZyYW1lID0gZnJhbWUtPnRyZWUoKS50cmF2ZXJzZU5leHQoY29yZUZyYW1lKSkg
ewogICAgICAgICBXZWJDb3JlOjpEb2N1bWVudCogZG9jID0gZnJhbWUtPmRvY3VtZW50KCk7CiAg
ICAgICAgIGlmICghZG9jIHx8ICFkb2MtPnJlbmRlclZpZXcoKSkKQEAgLTIxMTQsNyArMjExNCw3
IEBAIC0gKE5TU3RyaW5nICopX3N0cmluZ0J5RXZhbHVhdGluZ0phdmFTY3JpcHRGcm9tU3RyaW5n
OihOU1N0cmluZyAqKXN0cmluZyB3aXRoR2xvCiAKIC0gKEpTR2xvYmFsQ29udGV4dFJlZilfZ2xv
YmFsQ29udGV4dEZvclNjcmlwdFdvcmxkOihXZWJTY3JpcHRXb3JsZCAqKXdvcmxkCiB7Ci0gICAg
YXV0byogY29yZUZyYW1lID0gX3ByaXZhdGUtPmNvcmVGcmFtZTsKKyAgICBhdXRvIGNvcmVGcmFt
ZSA9IF9wcml2YXRlLT5jb3JlRnJhbWU7CiAgICAgaWYgKCFjb3JlRnJhbWUpCiAgICAgICAgIHJl
dHVybiAwOwogICAgIGF1dG8qIGNvcmVXb3JsZCA9IGNvcmUod29ybGQpOwpAQCAtMjE4Nyw3ICsy
MTg3LDcgQEAgLSAodm9pZClzZXRFbmhhbmNlZEFjY2Vzc2liaWxpdHk6KEJPT0wpZW5hYmxlCiAK
IC0gKE5TU3RyaW5nKilfbGF5ZXJUcmVlQXNUZXh0CiB7Ci0gICAgYXV0byogY29yZUZyYW1lID0g
X3ByaXZhdGUtPmNvcmVGcmFtZTsKKyAgICBhdXRvIGNvcmVGcmFtZSA9IF9wcml2YXRlLT5jb3Jl
RnJhbWU7CiAgICAgaWYgKCFjb3JlRnJhbWUpCiAgICAgICAgIHJldHVybiBAIiI7CiAKQEAgLTIy
MzAsNyArMjIzMCw3IEBAIC0gKGlkKWFjY2Vzc2liaWxpdHlSb290CiAKIC0gKHZvaWQpX2NsZWFy
T3BlbmVyCiB7Ci0gICAgYXV0byogY29yZUZyYW1lID0gX3ByaXZhdGUtPmNvcmVGcmFtZTsKKyAg
ICBhdXRvIGNvcmVGcmFtZSA9IF9wcml2YXRlLT5jb3JlRnJhbWU7CiAgICAgaWYgKGNvcmVGcmFt
ZSkKICAgICAgICAgY29yZUZyYW1lLT5sb2FkZXIoKS5zZXRPcGVuZXIoMCk7CiB9CkBAIC0yMzA0
LDcgKzIzMDQsNyBAQCAtIChET01Eb2N1bWVudEZyYWdtZW50ICopX2RvY3VtZW50RnJhZ21lbnRG
b3JJbWFnZURhdGE6KE5TRGF0YSAqKWRhdGEgd2l0aFJlbGF0aQogCiAtIChCT09MKWZvY3VzZWRO
b2RlSGFzQ29udGVudAogewotICAgIGF1dG8qIGNvcmVGcmFtZSA9IF9wcml2YXRlLT5jb3JlRnJh
bWU7CisgICAgYXV0byBjb3JlRnJhbWUgPSBfcHJpdmF0ZS0+Y29yZUZyYW1lOwogICAgCiAgICAg
V2ViQ29yZTo6RWxlbWVudCogcm9vdDsKICAgICBjb25zdCBhdXRvJiBzZWxlY3Rpb24gPSBjb3Jl
RnJhbWUtPnNlbGVjdGlvbigpLnNlbGVjdGlvbigpOwpAQCAtMjMyNiw3ICsyMzI2LDcgQEAgLSAo
Qk9PTClmb2N1c2VkTm9kZUhhc0NvbnRlbnQKIAogLSAodm9pZClfZGlzcGF0Y2hEaWRSZWNlaXZl
VGl0bGU6KE5TU3RyaW5nICopdGl0bGUKIHsKLSAgICBhdXRvKiBjb3JlRnJhbWUgPSBfcHJpdmF0
ZS0+Y29yZUZyYW1lOworICAgIGF1dG8gY29yZUZyYW1lID0gX3ByaXZhdGUtPmNvcmVGcmFtZTsK
ICAgICBpZiAoIWNvcmVGcmFtZSkKICAgICAgICAgcmV0dXJuOwogICAgIGNvcmVGcmFtZS0+bG9h
ZGVyKCkuY2xpZW50KCkuZGlzcGF0Y2hEaWRSZWNlaXZlVGl0bGUoeyB0aXRsZSwgV2ViQ29yZTo6
VGV4dERpcmVjdGlvbjo6TFRSIH0pOwpAQCAtMjMzNiw3ICsyMzM2LDcgQEAgLSAodm9pZClfZGlz
cGF0Y2hEaWRSZWNlaXZlVGl0bGU6KE5TU3RyaW5nICopdGl0bGUKIAogLSAoSlNWYWx1ZVJlZilq
c1dyYXBwZXJGb3JOb2RlOihET01Ob2RlICopbm9kZSBpblNjcmlwdFdvcmxkOihXZWJTY3JpcHRX
b3JsZCAqKXdvcmxkCiB7Ci0gICAgYXV0byogY29yZUZyYW1lID0gX3ByaXZhdGUtPmNvcmVGcmFt
ZTsKKyAgICBhdXRvIGNvcmVGcmFtZSA9IF9wcml2YXRlLT5jb3JlRnJhbWU7CiAgICAgaWYgKCFj
b3JlRnJhbWUpCiAgICAgICAgIHJldHVybiAwOwogCkBAIC0yMzUyLDcgKzIzNTIsNyBAQCAtIChK
U1ZhbHVlUmVmKWpzV3JhcHBlckZvck5vZGU6KERPTU5vZGUgKilub2RlIGluU2NyaXB0V29ybGQ6
KFdlYlNjcmlwdFdvcmxkICopdwogCiAtIChOU0RpY3Rpb25hcnkgKillbGVtZW50QXRQb2ludDoo
TlNQb2ludClwb2ludAogewotICAgIGF1dG8qIGNvcmVGcmFtZSA9IF9wcml2YXRlLT5jb3JlRnJh
bWU7CisgICAgYXV0byBjb3JlRnJhbWUgPSBfcHJpdmF0ZS0+Y29yZUZyYW1lOwogICAgIGlmICgh
Y29yZUZyYW1lKQogICAgICAgICByZXR1cm4gbmlsOwogICAgIHJldHVybiBbW1tXZWJFbGVtZW50
RGljdGlvbmFyeSBhbGxvY10gaW5pdFdpdGhIaXRUZXN0UmVzdWx0OmNvcmVGcmFtZS0+ZXZlbnRI
YW5kbGVyKCkuaGl0VGVzdFJlc3VsdEF0UG9pbnQoV2ViQ29yZTo6SW50UG9pbnQocG9pbnQpLCBX
ZWJDb3JlOjpIaXRUZXN0UmVxdWVzdDo6UmVhZE9ubHkgfCBXZWJDb3JlOjpIaXRUZXN0UmVxdWVz
dDo6QWN0aXZlIHwgV2ViQ29yZTo6SGl0VGVzdFJlcXVlc3Q6Oklnbm9yZUNsaXBwaW5nIHwgV2Vi
Q29yZTo6SGl0VGVzdFJlcXVlc3Q6OkRpc2FsbG93VXNlckFnZW50U2hhZG93Q29udGVudCB8IFdl
YkNvcmU6OkhpdFRlc3RSZXF1ZXN0OjpBbGxvd0NoaWxkRnJhbWVDb250ZW50KV0gYXV0b3JlbGVh
c2VdOwpAQCAtMjM5MCw3ICsyMzkwLDcgQEAgLSAodm9pZClkZWFsbG9jCiAKIC0gKE5TU3RyaW5n
ICopbmFtZQogewotICAgIGF1dG8qIGNvcmVGcmFtZSA9IF9wcml2YXRlLT5jb3JlRnJhbWU7Cisg
ICAgYXV0byBjb3JlRnJhbWUgPSBfcHJpdmF0ZS0+Y29yZUZyYW1lOwogICAgIGlmICghY29yZUZy
YW1lKQogICAgICAgICByZXR1cm4gbmlsOwogICAgIHJldHVybiBjb3JlRnJhbWUtPnRyZWUoKS51
bmlxdWVOYW1lKCk7CkBAIC0yNDIxLDcgKzI0MjEsNyBAQCAtIChET01Eb2N1bWVudCAqKURPTURv
Y3VtZW50CiAgICAgaWYgKG5lZWRzTWljcm9zb2Z0TWVzc2VuZ2VyRE9NRG9jdW1lbnRXb3JrYXJv
dW5kKCkgJiYgIXB0aHJlYWRfbWFpbl9ucCgpKQogICAgICAgICByZXR1cm4gbmlsOwogCi0gICAg
YXV0byogY29yZUZyYW1lID0gX3ByaXZhdGUtPmNvcmVGcmFtZTsKKyAgICBhdXRvIGNvcmVGcmFt
ZSA9IF9wcml2YXRlLT5jb3JlRnJhbWU7CiAgICAgaWYgKCFjb3JlRnJhbWUpCiAgICAgICAgIHJl
dHVybiBuaWw7CiAgICAgCkBAIC0yNDQ0LDcgKzI0NDQsNyBAQCAtIChET01Eb2N1bWVudCAqKURP
TURvY3VtZW50CiAKIC0gKERPTUhUTUxFbGVtZW50ICopZnJhbWVFbGVtZW50CiB7Ci0gICAgYXV0
byogY29yZUZyYW1lID0gX3ByaXZhdGUtPmNvcmVGcmFtZTsKKyAgICBhdXRvIGNvcmVGcmFtZSA9
IF9wcml2YXRlLT5jb3JlRnJhbWU7CiAgICAgaWYgKCFjb3JlRnJhbWUpCiAgICAgICAgIHJldHVy
biBuaWw7CiAgICAgcmV0dXJuIGtpdChjb3JlRnJhbWUtPm93bmVyRWxlbWVudCgpKTsKQEAgLTI0
NTIsMTkgKzI0NTIsMTkgQEAgLSAoRE9NSFRNTEVsZW1lbnQgKilmcmFtZUVsZW1lbnQKIAogLSAo
V2ViRGF0YVNvdXJjZSAqKXByb3Zpc2lvbmFsRGF0YVNvdXJjZQogewotICAgIGF1dG8qIGNvcmVG
cmFtZSA9IF9wcml2YXRlLT5jb3JlRnJhbWU7CisgICAgYXV0byBjb3JlRnJhbWUgPSBfcHJpdmF0
ZS0+Y29yZUZyYW1lOwogICAgIHJldHVybiBjb3JlRnJhbWUgPyBkYXRhU291cmNlKGNvcmVGcmFt
ZS0+bG9hZGVyKCkucHJvdmlzaW9uYWxEb2N1bWVudExvYWRlcigpKSA6IG5pbDsKIH0KIAogLSAo
V2ViRGF0YVNvdXJjZSAqKWRhdGFTb3VyY2UKIHsKLSAgICBhdXRvKiBjb3JlRnJhbWUgPSBfcHJp
dmF0ZS0+Y29yZUZyYW1lOworICAgIGF1dG8gY29yZUZyYW1lID0gX3ByaXZhdGUtPmNvcmVGcmFt
ZTsKICAgICByZXR1cm4gY29yZUZyYW1lICYmIGNvcmVGcmFtZS0+bG9hZGVyKCkuZnJhbWVIYXNM
b2FkZWQoKSA/IFtzZWxmIF9kYXRhU291cmNlXSA6IG5pbDsKIH0KIAogLSAodm9pZClsb2FkUmVx
dWVzdDooTlNVUkxSZXF1ZXN0ICopcmVxdWVzdAogewotICAgIGF1dG8qIGNvcmVGcmFtZSA9IF9w
cml2YXRlLT5jb3JlRnJhbWU7CisgICAgYXV0byBjb3JlRnJhbWUgPSBfcHJpdmF0ZS0+Y29yZUZy
YW1lOwogICAgIGlmICghY29yZUZyYW1lKQogICAgICAgICByZXR1cm47CiAKQEAgLTI1NzgsNyAr
MjU3OCw3IEBAIC0gKHZvaWQpcmVsb2FkRnJvbU9yaWdpbgogCiAtIChXZWJGcmFtZSAqKWZpbmRG
cmFtZU5hbWVkOihOU1N0cmluZyAqKW5hbWUKIHsKLSAgICBhdXRvKiBjb3JlRnJhbWUgPSBfcHJp
dmF0ZS0+Y29yZUZyYW1lOworICAgIGF1dG8gY29yZUZyYW1lID0gX3ByaXZhdGUtPmNvcmVGcmFt
ZTsKICAgICBpZiAoIWNvcmVGcmFtZSkKICAgICAgICAgcmV0dXJuIG5pbDsKICAgICByZXR1cm4g
a2l0KGNvcmVGcmFtZS0+dHJlZSgpLmZpbmQobmFtZSwgKmNvcmVGcmFtZSkpOwpAQCAtMjU4Niw3
ICsyNTg2LDcgQEAgLSAoV2ViRnJhbWUgKilmaW5kRnJhbWVOYW1lZDooTlNTdHJpbmcgKiluYW1l
CiAKIC0gKFdlYkZyYW1lICopcGFyZW50RnJhbWUKIHsKLSAgICBhdXRvKiBjb3JlRnJhbWUgPSBf
cHJpdmF0ZS0+Y29yZUZyYW1lOworICAgIGF1dG8gY29yZUZyYW1lID0gX3ByaXZhdGUtPmNvcmVG
cmFtZTsKICAgICBpZiAoIWNvcmVGcmFtZSkKICAgICAgICAgcmV0dXJuIG5pbDsKICAgICByZXR1
cm4gW1traXQoY29yZUZyYW1lLT50cmVlKCkucGFyZW50KCkpIHJldGFpbl0gYXV0b3JlbGVhc2Vd
OwpAQCAtMjU5NCw3ICsyNTk0LDcgQEAgLSAoV2ViRnJhbWUgKilwYXJlbnRGcmFtZQogCiAtIChO
U0FycmF5ICopY2hpbGRGcmFtZXMKIHsKLSAgICBhdXRvKiBjb3JlRnJhbWUgPSBfcHJpdmF0ZS0+
Y29yZUZyYW1lOworICAgIGF1dG8gY29yZUZyYW1lID0gX3ByaXZhdGUtPmNvcmVGcmFtZTsKICAg
ICBpZiAoIWNvcmVGcmFtZSkKICAgICAgICAgcmV0dXJuIFtOU0FycmF5IGFycmF5XTsKICAgICBO
U011dGFibGVBcnJheSAqY2hpbGRyZW4gPSBbTlNNdXRhYmxlQXJyYXkgYXJyYXlXaXRoQ2FwYWNp
dHk6Y29yZUZyYW1lLT50cmVlKCkuY2hpbGRDb3VudCgpXTsKQEAgLTI2MDUsNyArMjYwNSw3IEBA
IC0gKE5TQXJyYXkgKiljaGlsZEZyYW1lcwogCiAtIChXZWJTY3JpcHRPYmplY3QgKil3aW5kb3dP
YmplY3QKIHsKLSAgICBhdXRvKiBjb3JlRnJhbWUgPSBfcHJpdmF0ZS0+Y29yZUZyYW1lOworICAg
IGF1dG8gY29yZUZyYW1lID0gX3ByaXZhdGUtPmNvcmVGcmFtZTsKICAgICBpZiAoIWNvcmVGcmFt
ZSkKICAgICAgICAgcmV0dXJuIDA7CiAgICAgcmV0dXJuIGNvcmVGcmFtZS0+c2NyaXB0KCkud2lu
ZG93U2NyaXB0T2JqZWN0KCk7CkBAIC0yNjEzLDcgKzI2MTMsNyBAQCAtIChXZWJTY3JpcHRPYmpl
Y3QgKil3aW5kb3dPYmplY3QKIAogLSAoSlNHbG9iYWxDb250ZXh0UmVmKWdsb2JhbENvbnRleHQK
IHsKLSAgICBhdXRvKiBjb3JlRnJhbWUgPSBfcHJpdmF0ZS0+Y29yZUZyYW1lOworICAgIGF1dG8g
Y29yZUZyYW1lID0gX3ByaXZhdGUtPmNvcmVGcmFtZTsKICAgICBpZiAoIWNvcmVGcmFtZSkKICAg
ICAgICAgcmV0dXJuIDA7CiAgICAgcmV0dXJuIHRvR2xvYmFsUmVmKGNvcmVGcmFtZS0+c2NyaXB0
KCkuZ2xvYmFsT2JqZWN0KFdlYkNvcmU6Om1haW5UaHJlYWROb3JtYWxXb3JsZCgpKSk7CkBAIC0y
NjIyLDcgKzI2MjIsNyBAQCAtIChKU0dsb2JhbENvbnRleHRSZWYpZ2xvYmFsQ29udGV4dAogI2lm
IEpTQ19PQkpDX0FQSV9FTkFCTEVECiAtIChKU0NvbnRleHQgKilqYXZhU2NyaXB0Q29udGV4dAog
ewotICAgIGF1dG8qIGNvcmVGcmFtZSA9IF9wcml2YXRlLT5jb3JlRnJhbWU7CisgICAgYXV0byBj
b3JlRnJhbWUgPSBfcHJpdmF0ZS0+Y29yZUZyYW1lOwogICAgIGlmICghY29yZUZyYW1lKQogICAg
ICAgICByZXR1cm4gMDsKICAgICByZXR1cm4gY29yZUZyYW1lLT5zY3JpcHQoKS5qYXZhU2NyaXB0
Q29udGV4dCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9X
ZWJGcmFtZUludGVybmFsLmggYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYkZy
YW1lSW50ZXJuYWwuaAppbmRleCA5ZjQ2YWVjZGRlYjcxN2MxODg4MzhjYWFjMDYyYTc5MzI1NjM1
MWUwLi45MzZjMzRmM2RhOGViZDNmMmEzMzcxZjk2MjEzODUzZjM5NjEyZmNmIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYkZyYW1lSW50ZXJuYWwuaAorKysg
Yi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYkZyYW1lSW50ZXJuYWwuaApAQCAt
MzUsNiArMzUsNyBAQAogI2ltcG9ydCA8V2ViQ29yZS9GcmFtZVNlbGVjdGlvbi5oPgogI2ltcG9y
dCA8V2ViQ29yZS9Qb3NpdGlvbi5oPgogI2ltcG9ydCA8V2ViQ29yZS9TZXR0aW5ncy5oPgorI2lt
cG9ydCA8d3RmL05ha2VkUHRyLmg+CiAKIEBjbGFzcyBET01DU1NTdHlsZURlY2xhcmF0aW9uOwog
QGNsYXNzIERPTURvY3VtZW50RnJhZ21lbnQ7CkBAIC04NSw3ICs4Niw3IEBAIFdlYlZpZXcgKmdl
dFdlYlZpZXcoV2ViRnJhbWUgKndlYkZyYW1lKTsKIAogQGludGVyZmFjZSBXZWJGcmFtZVByaXZh
dGUgOiBOU09iamVjdCB7CiBAcHVibGljCi0gICAgV2ViQ29yZTo6RnJhbWUqIGNvcmVGcmFtZTsK
KyAgICBOYWtlZFB0cjxXZWJDb3JlOjpGcmFtZT4gY29yZUZyYW1lOwogICAgIFdlYkZyYW1lVmll
dyAqd2ViRnJhbWVWaWV3OwogICAgIHN0ZDo6dW5pcXVlX3B0cjxXZWJTY3JpcHREZWJ1Z2dlcj4g
c2NyaXB0RGVidWdnZXI7CiAgICAgaWQgaW50ZXJuYWxMb2FkRGVsZWdhdGU7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYkZyYW1lVmlldy5tbSBiL1NvdXJj
ZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViRnJhbWVWaWV3Lm1tCmluZGV4IDhkMWU4NWY0
MzYwNjE4MjQwMjUyNDA0ZTE3NDk3YzA3OWMxYjMyN2UuLjczNjVkMjU2ZWVkNjlhZjBjMTY0NWQy
NjRlOTAzZDJiNjE3OTQ4YzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dl
YlZpZXcvV2ViRnJhbWVWaWV3Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZp
ZXcvV2ViRnJhbWVWaWV3Lm1tCkBAIC0xMzMsNyArMTMzLDcgQEAgLSAoZmxvYXQpX3ZlcnRpY2Fs
S2V5Ym9hcmRTY3JvbGxEaXN0YW5jZQogICAgIHJldHVybiBbW3NlbGYgX3Njcm9sbFZpZXddIHZl
cnRpY2FsTGluZVNjcm9sbF07CiB9CiAKLS0gKFdlYkNvcmU6OkZyYW1lKilfd2ViX2ZyYW1lCist
IChOYWtlZFB0cjxXZWJDb3JlOjpGcmFtZT4pX3dlYl9mcmFtZQogewogICAgIHJldHVybiBjb3Jl
KF9wcml2YXRlLT53ZWJGcmFtZSk7CiB9CkBAIC0zMzEsNyArMzMxLDcgQEAgLSAodm9pZClfZnJh
bWVTaXplQ2hhbmdlZAogICAgIC8vIFNlZSBXZWJGcmFtZUxvYWRlckNsaWVudDo6cHJvdmlzaW9u
YWxMb2FkU3RhcnRlZC4KICAgICBpZiAoW1tbc2VsZiB3ZWJGcmFtZV0gd2ViVmlld10gZHJhd3NC
YWNrZ3JvdW5kXSkKICAgICAgICAgW1tzZWxmIF9zY3JvbGxWaWV3XSBzZXREcmF3c0JhY2tncm91
bmQ6WUVTXTsKLSAgICBpZiAoYXV0byogY29yZUZyYW1lID0gW3NlbGYgX3dlYl9mcmFtZV0pIHsK
KyAgICBpZiAoYXV0byBjb3JlRnJhbWUgPSBbc2VsZiBfd2ViX2ZyYW1lXSkgewogICAgICAgICBp
ZiAoYXV0byogY29yZUZyYW1lVmlldyA9IGNvcmVGcmFtZS0+dmlldygpKQogICAgICAgICAgICAg
Y29yZUZyYW1lVmlldy0+YXZhaWxhYmxlQ29udGVudFNpemVDaGFuZ2VkKFdlYkNvcmU6OlNjcm9s
bGFibGVBcmVhOjpBdmFpbGFibGVTaXplQ2hhbmdlUmVhc29uOjpBcmVhU2l6ZUNoYW5nZWQpOwog
ICAgIH0KQEAgLTYxMyw3ICs2MTMsNyBAQCAtIChCT09MKV9zY3JvbGxPdmVyZmxvd0luRGlyZWN0
aW9uOihXZWJDb3JlOjpTY3JvbGxEaXJlY3Rpb24pZGlyZWN0aW9uIGdyYW51bGFyaQogCiAtIChC
T09MKV9pc1ZlcnRpY2FsRG9jdW1lbnQKIHsKLSAgICBhdXRvKiBjb3JlRnJhbWUgPSBbc2VsZiBf
d2ViX2ZyYW1lXTsKKyAgICBhdXRvIGNvcmVGcmFtZSA9IFtzZWxmIF93ZWJfZnJhbWVdOwogICAg
IGlmICghY29yZUZyYW1lKQogICAgICAgICByZXR1cm4gWUVTOwogICAgIGF1dG8qIGRvY3VtZW50
ID0gY29yZUZyYW1lLT5kb2N1bWVudCgpOwpAQCAtNjI3LDcgKzYyNyw3IEBAIC0gKEJPT0wpX2lz
VmVydGljYWxEb2N1bWVudAogCiAtIChCT09MKV9pc0ZsaXBwZWREb2N1bWVudAogewotICAgIGF1
dG8qIGNvcmVGcmFtZSA9IFtzZWxmIF93ZWJfZnJhbWVdOworICAgIGF1dG8gY29yZUZyYW1lID0g
W3NlbGYgX3dlYl9mcmFtZV07CiAgICAgaWYgKCFjb3JlRnJhbWUpCiAgICAgICAgIHJldHVybiBO
TzsKICAgICBhdXRvKiBkb2N1bWVudCA9IGNvcmVGcmFtZS0+ZG9jdW1lbnQoKTsKQEAgLTg5NSw3
ICs4OTUsNyBAQCAtICh2b2lkKWtleURvd246KFdlYkV2ZW50ICopZXZlbnQKICNlbmRpZgogICAg
IGludCBpbmRleCwgY291bnQ7CiAgICAgQk9PTCBjYWxsU3VwZXIgPSBZRVM7Ci0gICAgYXV0byog
Y29yZUZyYW1lID0gW3NlbGYgX3dlYl9mcmFtZV07CisgICAgYXV0byBjb3JlRnJhbWUgPSBbc2Vs
ZiBfd2ViX2ZyYW1lXTsKICAgICBCT09MIG1haW50YWluc0JhY2tGb3J3YXJkTGlzdCA9IGNvcmVG
cmFtZSAmJiBzdGF0aWNfY2FzdDxCYWNrRm9yd2FyZExpc3QmPihjb3JlRnJhbWUtPnBhZ2UoKS0+
YmFja0ZvcndhcmQoKS5jbGllbnQoKSkuZW5hYmxlZCgpID8gWUVTIDogTk87CiAKICAgICBjb3Vu
dCA9IFtjaGFyYWN0ZXJzIGxlbmd0aF07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5
L21hYy9XZWJWaWV3L1dlYkZ1bGxTY3JlZW5Db250cm9sbGVyLm1tIGIvU291cmNlL1dlYktpdExl
Z2FjeS9tYWMvV2ViVmlldy9XZWJGdWxsU2NyZWVuQ29udHJvbGxlci5tbQppbmRleCAzNmY3Zjgy
ZTc3ZjEwMTNiYzgzNTY4NzJjYzc0N2UyM2I2ZTVmYmE3Li4xN2I0MjJkM2FjODAzN2VlNTE5ZWU4
ZDg3ODk0NDk4MWM2ZDdkOWEyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9X
ZWJWaWV3L1dlYkZ1bGxTY3JlZW5Db250cm9sbGVyLm1tCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdh
Y3kvbWFjL1dlYlZpZXcvV2ViRnVsbFNjcmVlbkNvbnRyb2xsZXIubW0KQEAgLTYzLDcgKzYzLDcg
QEAgc3RhdGljIFdlYkNvcmU6OkludFJlY3Qgc2NyZWVuUmVjdE9mQ29udGVudHMoV2ViQ29yZTo6
RWxlbWVudCogZWxlbWVudCkKIEBpbnRlcmZhY2UgV2ViRnVsbFNjcmVlbkNvbnRyb2xsZXIoUHJp
dmF0ZSk8TlNBbmltYXRpb25EZWxlZ2F0ZT4KIC0gKHZvaWQpX3VwZGF0ZU1lbnVBbmREb2NrRm9y
RnVsbFNjcmVlbjsKIC0gKHZvaWQpX3N3YXBWaWV3OihOU1ZpZXcqKXZpZXcgd2l0aDooTlNWaWV3
KilvdGhlclZpZXc7Ci0tIChXZWJDb3JlOjpEb2N1bWVudCopX2RvY3VtZW50OworLSAoTmFrZWRQ
dHI8V2ViQ29yZTo6RG9jdW1lbnQ+KV9kb2N1bWVudDsKIC0gKFdlYkNvcmU6OkZ1bGxzY3JlZW5N
YW5hZ2VyKilfbWFuYWdlcjsKIC0gKHZvaWQpX3N0YXJ0RW50ZXJGdWxsU2NyZWVuQW5pbWF0aW9u
V2l0aER1cmF0aW9uOihOU1RpbWVJbnRlcnZhbClkdXJhdGlvbjsKIC0gKHZvaWQpX3N0YXJ0RXhp
dEZ1bGxTY3JlZW5BbmltYXRpb25XaXRoRHVyYXRpb246KE5TVGltZUludGVydmFsKWR1cmF0aW9u
OwpAQCAtNDUwLDcgKzQ1MCw3IEBAIC0gKHZvaWQpX3VwZGF0ZU1lbnVBbmREb2NrRm9yRnVsbFNj
cmVlbgogI3ByYWdtYSBtYXJrIC0KICNwcmFnbWEgbWFyayBVdGlsaXR5IEZ1bmN0aW9ucwogCi0t
IChXZWJDb3JlOjpEb2N1bWVudCopX2RvY3VtZW50CistIChOYWtlZFB0cjxXZWJDb3JlOjpEb2N1
bWVudD4pX2RvY3VtZW50CiB7CiAgICAgcmV0dXJuICZfZWxlbWVudC0+ZG9jdW1lbnQoKTsKIH0K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViSFRNTFZpZXcu
bW0gYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYkhUTUxWaWV3Lm1tCmluZGV4
IDBmZjllMzE1YjA2M2MxZmZmMjczOTQ2MDE4YjYwZjVhMDJiNzI4NzUuLmIyYTFkMDg1OTM4ZWYz
ZTdkMjI1OWZlZjE2NmRkYmNmNTM4OTdmOGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdh
Y3kvbWFjL1dlYlZpZXcvV2ViSFRNTFZpZXcubW0KKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS9t
YWMvV2ViVmlldy9XZWJIVE1MVmlldy5tbQpAQCAtMTQzLDYgKzE0Myw3IEBACiAjaW1wb3J0IDx3
dGYvQmxvY2tPYmpDRXhjZXB0aW9ucy5oPgogI2ltcG9ydCA8d3RmL01haW5UaHJlYWQuaD4KICNp
bXBvcnQgPHd0Zi9NYXRoRXh0cmFzLmg+CisjaW1wb3J0IDx3dGYvTmFrZWRQdHIuaD4KICNpbXBv
cnQgPHd0Zi9PYmpDUnVudGltZUV4dHJhcy5oPgogI2ltcG9ydCA8d3RmL1J1bkxvb3AuaD4KICNp
bXBvcnQgPHd0Zi9TeXN0ZW1UcmFjaW5nLmg+CkBAIC0yMzYsMTEgKzIzNywxMSBAQCB1c2luZyBX
ZWJFdmVudCA9IE5TRXZlbnQ7CiBjb25zdCBhdXRvIFdlYkV2ZW50TW91c2VEb3duID0gTlNFdmVu
dFR5cGVMZWZ0TW91c2VEb3duOwogCiBAaW50ZXJmYWNlIFdlYk1lbnVUYXJnZXQgOiBOU09iamVj
dCB7Ci0gICAgV2ViQ29yZTo6Q29udGV4dE1lbnVDb250cm9sbGVyKiBfbWVudUNvbnRyb2xsZXI7
CisgICAgTmFrZWRQdHI8V2ViQ29yZTo6Q29udGV4dE1lbnVDb250cm9sbGVyPiBfbWVudUNvbnRy
b2xsZXI7CiB9CiArIChXZWJNZW51VGFyZ2V0KilzaGFyZWRNZW51VGFyZ2V0OwotLSAoV2ViQ29y
ZTo6Q29udGV4dE1lbnVDb250cm9sbGVyKiltZW51Q29udHJvbGxlcjsKLS0gKHZvaWQpc2V0TWVu
dUNvbnRyb2xsZXI6KFdlYkNvcmU6OkNvbnRleHRNZW51Q29udHJvbGxlciopbWVudUNvbnRyb2xs
ZXI7CistIChOYWtlZFB0cjxXZWJDb3JlOjpDb250ZXh0TWVudUNvbnRyb2xsZXI+KW1lbnVDb250
cm9sbGVyOworLSAodm9pZClzZXRNZW51Q29udHJvbGxlcjooTmFrZWRQdHI8V2ViQ29yZTo6Q29u
dGV4dE1lbnVDb250cm9sbGVyPiltZW51Q29udHJvbGxlcjsKIC0gKHZvaWQpZm9yd2FyZENvbnRl
eHRNZW51QWN0aW9uOihpZClzZW5kZXI7CiBAZW5kCiAKQEAgLTYyMiwxMiArNjIzLDEyIEBAICsg
KFdlYk1lbnVUYXJnZXQgKilzaGFyZWRNZW51VGFyZ2V0CiAgICAgcmV0dXJuIHRhcmdldDsKIH0K
IAotLSAoV2ViQ29yZTo6Q29udGV4dE1lbnVDb250cm9sbGVyKiltZW51Q29udHJvbGxlcgorLSAo
TmFrZWRQdHI8V2ViQ29yZTo6Q29udGV4dE1lbnVDb250cm9sbGVyPiltZW51Q29udHJvbGxlcgog
ewogICAgIHJldHVybiBfbWVudUNvbnRyb2xsZXI7CiB9CiAKLS0gKHZvaWQpc2V0TWVudUNvbnRy
b2xsZXI6KFdlYkNvcmU6OkNvbnRleHRNZW51Q29udHJvbGxlciopbWVudUNvbnRyb2xsZXIKKy0g
KHZvaWQpc2V0TWVudUNvbnRyb2xsZXI6KE5ha2VkUHRyPFdlYkNvcmU6OkNvbnRleHRNZW51Q29u
dHJvbGxlcj4pbWVudUNvbnRyb2xsZXIKIHsKICAgICBfbWVudUNvbnRyb2xsZXIgPSBtZW51Q29u
dHJvbGxlcjsKIH0KQEAgLTk4Nyw3ICs5ODgsNyBAQCBAcHVibGljCiAgICAgUmV0YWluUHRyPFdl
YkRhdGFTb3VyY2U+IGRhdGFTb3VyY2U7CiAKICNpZiBQTEFURk9STShNQUMpCi0gICAgV2ViQ29y
ZTo6Q2FjaGVkSW1hZ2UqIHByb21pc2VkRHJhZ1RJRkZEYXRhU291cmNlOworICAgIE5ha2VkUHRy
PFdlYkNvcmU6OkNhY2hlZEltYWdlPiBwcm9taXNlZERyYWdUSUZGRGF0YVNvdXJjZTsKICNlbmRp
ZgogCiAgICAgU0VMIHNlbGVjdG9yRm9yRG9Db21tYW5kQnlTZWxlY3RvcjsKQEAgLTQzNTgsNyAr
NDM1OSw3IEBAIEFMTE9XX0RFUFJFQ0FURURfSU1QTEVNRU5UQVRJT05TX0VORAogICAgIE5TRmls
ZVdyYXBwZXIgKndyYXBwZXIgPSBuaWw7CiAgICAgTlNVUkwgKmRyYWdnaW5nRWxlbWVudFVSTCA9
IG5pbDsKICAgICAKLSAgICBpZiAoYXV0byogdGlmZlJlc291cmNlID0gX3ByaXZhdGUtPnByb21p
c2VkRHJhZ1RJRkZEYXRhU291cmNlKSB7CisgICAgaWYgKGF1dG8gdGlmZlJlc291cmNlID0gX3By
aXZhdGUtPnByb21pc2VkRHJhZ1RJRkZEYXRhU291cmNlKSB7CiAgICAgICAgIGlmIChhdXRvKiBi
dWZmZXIgPSB0aWZmUmVzb3VyY2UtPnJlc291cmNlQnVmZmVyKCkpIHsKICAgICAgICAgICAgIE5T
VVJMUmVzcG9uc2UgKnJlc3BvbnNlID0gdGlmZlJlc291cmNlLT5yZXNwb25zZSgpLm5zVVJMUmVz
cG9uc2UoKTsKICAgICAgICAgICAgIGRyYWdnaW5nRWxlbWVudFVSTCA9IFtyZXNwb25zZSBVUkxd
OwpAQCAtNTk4Myw3ICs1OTg0LDcgQEAgLSAodm9pZClfZXhlY3V0ZVNhdmVkS2V5cHJlc3NDb21t
YW5kcwogCiAjaWYgUExBVEZPUk0oTUFDKQogCi0tIChCT09MKV9pbnRlcnByZXRLZXlFdmVudDoo
V2ViQ29yZTo6S2V5Ym9hcmRFdmVudCopZXZlbnQgc2F2aW5nQ29tbWFuZHM6KEJPT0wpc2F2aW5n
Q29tbWFuZHMKKy0gKEJPT0wpX2ludGVycHJldEtleUV2ZW50OihOYWtlZFB0cjxXZWJDb3JlOjpL
ZXlib2FyZEV2ZW50PilldmVudCBzYXZpbmdDb21tYW5kczooQk9PTClzYXZpbmdDb21tYW5kcwog
ewogICAgIEFTU0VSVChjb3JlKFtzZWxmIF9mcmFtZV0pID09IGRvd25jYXN0PFdlYkNvcmU6Ok5v
ZGU+KGV2ZW50LT50YXJnZXQoKSktPmRvY3VtZW50KCkuZnJhbWUoKSk7CiAgICAgQVNTRVJUKCFz
YXZpbmdDb21tYW5kcyB8fCBldmVudC0+a2V5cHJlc3NDb21tYW5kcygpLmlzRW1wdHkoKSk7IC8v
IFNhdmUgY29tbWFuZHMgb25jZSBmb3IgZWFjaCBldmVudC4KQEAgLTYxMTIsNyArNjExMyw3IEBA
IC0gKEJPT0wpX2hhbmRsZUVkaXRpbmdLZXlFdmVudDooV2ViQ29yZTo6S2V5Ym9hcmRFdmVudCAq
KXdjRXZlbnQKIAogI2lmIFBMQVRGT1JNKE1BQykKIAotLSAodm9pZClzZXRQcm9taXNlZERyYWdU
SUZGRGF0YVNvdXJjZTooV2ViQ29yZTo6Q2FjaGVkSW1hZ2UqKXNvdXJjZQorLSAodm9pZClzZXRQ
cm9taXNlZERyYWdUSUZGRGF0YVNvdXJjZTooTmFrZWRQdHI8V2ViQ29yZTo6Q2FjaGVkSW1hZ2U+
KXNvdXJjZQogewogICAgIGlmIChzb3VyY2UpCiAgICAgICAgIHNvdXJjZS0+YWRkQ2xpZW50KHBy
b21pc2VkRGF0YUNsaWVudCgpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFj
L1dlYlZpZXcvV2ViSFRNTFZpZXdJbnRlcm5hbC5oIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMv
V2ViVmlldy9XZWJIVE1MVmlld0ludGVybmFsLmgKaW5kZXggOTE2ZDMzNjlmYmViZmNmOGZlZTYw
OWZhZDhjMmI1MWExMDVhYmJlYS4uNmY1ZTU3ZDNmY2U3MzRjNTZmNjJjYjNlNzIzY2Y5NDVlNTEz
YmMwZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJIVE1M
Vmlld0ludGVybmFsLmgKKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJI
VE1MVmlld0ludGVybmFsLmgKQEAgLTYxLDEzICs2MSwxMyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7
CiAKICNpZiBQTEFURk9STShNQUMpCiAtICh2b2lkKV9sb29rVXBJbkRpY3Rpb25hcnlGcm9tTWVu
dTooaWQpc2VuZGVyOwotLSAoQk9PTClfaW50ZXJwcmV0S2V5RXZlbnQ6KFdlYkNvcmU6OktleWJv
YXJkRXZlbnQgKilldmVudCBzYXZpbmdDb21tYW5kczooQk9PTClzYXZpbmdDb21tYW5kczsKKy0g
KEJPT0wpX2ludGVycHJldEtleUV2ZW50OihOYWtlZFB0cjxXZWJDb3JlOjpLZXlib2FyZEV2ZW50
PilldmVudCBzYXZpbmdDb21tYW5kczooQk9PTClzYXZpbmdDb21tYW5kczsKIC0gKERPTURvY3Vt
ZW50RnJhZ21lbnQgKilfZG9jdW1lbnRGcmFnbWVudEZyb21QYXN0ZWJvYXJkOihOU1Bhc3RlYm9h
cmQgKilwYXN0ZWJvYXJkOwogLSAoTlNFdmVudCAqKV9tb3VzZURvd25FdmVudDsKIC0gKEJPT0wp
aXNHcmFtbWFyQ2hlY2tpbmdFbmFibGVkOwogLSAodm9pZClzZXRHcmFtbWFyQ2hlY2tpbmdFbmFi
bGVkOihCT09MKWZsYWc7CiAtICh2b2lkKXRvZ2dsZUdyYW1tYXJDaGVja2luZzooaWQpc2VuZGVy
OwotLSAodm9pZClzZXRQcm9taXNlZERyYWdUSUZGRGF0YVNvdXJjZTooV2ViQ29yZTo6Q2FjaGVk
SW1hZ2UqKXNvdXJjZTsKKy0gKHZvaWQpc2V0UHJvbWlzZWREcmFnVElGRkRhdGFTb3VyY2U6KE5h
a2VkUHRyPFdlYkNvcmU6OkNhY2hlZEltYWdlPilzb3VyY2U7CiAjZW5kaWYKIAogI2lmIFBMQVRG
T1JNKElPU19GQU1JTFkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJW
aWV3L1dlYk5vdGlmaWNhdGlvbi5tbSBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcv
V2ViTm90aWZpY2F0aW9uLm1tCmluZGV4IDExNTc1NjAzY2U3OWE1ZThhODRiNjNhNDhkMjhiZDVh
YTcyOTQ3M2MuLjE2ZTg5YzRiYzNhNzdiNTY4NjA2OTc0Y2E0MDY5NmRjMmNiNDdmMGMgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViTm90aWZpY2F0aW9uLm1t
CisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViTm90aWZpY2F0aW9uLm1t
CkBAIC02Miw3ICs2Miw3IEBAIE5vdGlmaWNhdGlvbiogY29yZShXZWJOb3RpZmljYXRpb24gKm5v
dGlmaWNhdGlvbikKICAgICByZXR1cm4gbm90aWZpY2F0aW9uLT5fcHJpdmF0ZS0+X2ludGVybmFs
LmdldCgpOwogfQogCi0tIChpZClpbml0V2l0aENvcmVOb3RpZmljYXRpb246KE5vdGlmaWNhdGlv
biopY29yZU5vdGlmaWNhdGlvbiBub3RpZmljYXRpb25JRDoodWludDY0X3Qpbm90aWZpY2F0aW9u
SUQKKy0gKGlkKWluaXRXaXRoQ29yZU5vdGlmaWNhdGlvbjooTmFrZWRQdHI8Tm90aWZpY2F0aW9u
Piljb3JlTm90aWZpY2F0aW9uIG5vdGlmaWNhdGlvbklEOih1aW50NjRfdClub3RpZmljYXRpb25J
RAogewogICAgIGlmICghKHNlbGYgPSBbc3VwZXIgaW5pdF0pKQogICAgICAgICByZXR1cm4gbmls
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJOb3RpZmlj
YXRpb25JbnRlcm5hbC5oIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJOb3Rp
ZmljYXRpb25JbnRlcm5hbC5oCmluZGV4IGE3NzljMDc1MzViYjRjNTkxZGY3MTk4MTQ4MjZjNmI3
OGQyODgyNDUuLjRhMTdjN2RhMGY3ZDdiNDc2Y2UwYjJjMzVkMTdlZDU0N2QxYWUzMTggMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViTm90aWZpY2F0aW9uSW50
ZXJuYWwuaAorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYk5vdGlmaWNh
dGlvbkludGVybmFsLmgKQEAgLTI3LDYgKzI3LDcgQEAKICAqLwogCiAjaW1wb3J0ICJXZWJOb3Rp
ZmljYXRpb24uaCIKKyNpbXBvcnQgPHd0Zi9OYWtlZFB0ci5oPgogCiAjaWYgRU5BQkxFKE5PVElG
SUNBVElPTlMpCiAKQEAgLTM3LDcgKzM4LDcgQEAgY2xhc3MgTm90aWZpY2F0aW9uOwogV2ViQ29y
ZTo6Tm90aWZpY2F0aW9uKiBjb3JlKFdlYk5vdGlmaWNhdGlvbiAqKTsKIAogQGludGVyZmFjZSBX
ZWJOb3RpZmljYXRpb24gKFdlYk5vdGlmaWNhdGlvbkludGVybmFsKQotLSAoaWQpaW5pdFdpdGhD
b3JlTm90aWZpY2F0aW9uOihXZWJDb3JlOjpOb3RpZmljYXRpb24qKWNvcmVOb3RpZmljYXRpb24g
bm90aWZpY2F0aW9uSUQ6KHVpbnQ2NF90KW5vdGlmaWNhdGlvbklEOworLSAoaWQpaW5pdFdpdGhD
b3JlTm90aWZpY2F0aW9uOihOYWtlZFB0cjxXZWJDb3JlOjpOb3RpZmljYXRpb24+KWNvcmVOb3Rp
ZmljYXRpb24gbm90aWZpY2F0aW9uSUQ6KHVpbnQ2NF90KW5vdGlmaWNhdGlvbklEOwogQGVuZAog
CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2Vi
UmVzb3VyY2UubW0gYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYlJlc291cmNl
Lm1tCmluZGV4IDgyNmE0Mzg2NjQ4Nzc2YWJiZjNiZGE4MGFhOTE0MjFiZTg0OWRiZWEuLjc3N2Nh
MGU3MWFmNjFkZWM4MzBhNWIyNjE5N2U4ZWY2N2Q3ZDllZjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViUmVzb3VyY2UubW0KKysrIGIvU291cmNlL1dlYktp
dExlZ2FjeS9tYWMvV2ViVmlldy9XZWJSZXNvdXJjZS5tbQpAQCAtMjYxLDcgKzI2MSw3IEBAIC0g
KGlkKV9pbml0V2l0aENvcmVSZXNvdXJjZTooUmVmPEFyY2hpdmVSZXNvdXJjZT4mJiljb3JlUmVz
b3VyY2UKICAgICByZXR1cm4gc2VsZjsKIH0KIAotLSAoV2ViQ29yZTo6QXJjaGl2ZVJlc291cmNl
JilfY29yZVJlc291cmNlCistIChOYWtlZFJlZjxXZWJDb3JlOjpBcmNoaXZlUmVzb3VyY2U+KV9j
b3JlUmVzb3VyY2UKIHsKICAgICByZXR1cm4gKl9wcml2YXRlLT5jb3JlUmVzb3VyY2U7CiB9CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYlJlc291cmNlSW50
ZXJuYWwuaCBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViUmVzb3VyY2VJbnRl
cm5hbC5oCmluZGV4IDgwYzk3NmViNmIzNjU0ZmMxYzY4OGMyYTk2YjgzYmRiN2FmNzcyNTEuLmVh
Y2IxYTUyOWU1MGIyN2M3ZWZkMTc0NDFiYzA2OTE1NmY5YjVkNWMgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViUmVzb3VyY2VJbnRlcm5hbC5oCisrKyBiL1Nv
dXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViUmVzb3VyY2VJbnRlcm5hbC5oCkBAIC0y
Nyw2ICsyNyw3IEBACiAgKi8KIAogI2ltcG9ydCAiV2ViUmVzb3VyY2VQcml2YXRlLmgiCisjaW1w
b3J0IDx3dGYvTmFrZWRSZWYuaD4KICNpbXBvcnQgPHd0Zi9SZWYuaD4KIAogbmFtZXNwYWNlIFdl
YkNvcmUgewpAQCAtMzUsNSArMzYsNSBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIEBpbnRlcmZh
Y2UgV2ViUmVzb3VyY2UgKFdlYlJlc291cmNlSW50ZXJuYWwpCiAtIChpZClfaW5pdFdpdGhDb3Jl
UmVzb3VyY2U6KFJlZjxXZWJDb3JlOjpBcmNoaXZlUmVzb3VyY2U+JiYpY29yZVJlc291cmNlOwot
LSAoV2ViQ29yZTo6QXJjaGl2ZVJlc291cmNlJilfY29yZVJlc291cmNlOworLSAoTmFrZWRSZWY8
V2ViQ29yZTo6QXJjaGl2ZVJlc291cmNlPilfY29yZVJlc291cmNlOwogQGVuZApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJWaWRlb0Z1bGxzY3JlZW5Db250
cm9sbGVyLmggYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYlZpZGVvRnVsbHNj
cmVlbkNvbnRyb2xsZXIuaAppbmRleCBmNTc1NzhiZmMwMDI2NGU0ZjQxYjVlZTlmNjg4YTI2YzI4
YWQ0NGEyLi5lOGZiNTYyOTUwOTViZjM3YTRkMjg4MDc1MDQ2ZjM1YmRkMmUwODVhIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYlZpZGVvRnVsbHNjcmVlbkNv
bnRyb2xsZXIuaAorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYlZpZGVv
RnVsbHNjcmVlbkNvbnRyb2xsZXIuaApAQCAtMjYsNiArMjYsNyBAQAogI2lmIFBMQVRGT1JNKE1B
QykgJiYgRU5BQkxFKFZJREVPKQogCiAjaW1wb3J0IDxBcHBLaXQvTlNXaW5kb3dDb250cm9sbGVy
Lmg+CisjaW1wb3J0IDx3dGYvTmFrZWRQdHIuaD4KICNpbXBvcnQgPHd0Zi9SZWZQdHIuaD4KIAog
bmFtZXNwYWNlIFdlYkNvcmUgewpAQCAtNDcsOCArNDgsOCBAQCBjbGFzcyBIVE1MVmlkZW9FbGVt
ZW50OwogICAgIEJPT0wgX2ZvcmNlRGlzYWJsZUFuaW1hdGlvbjsKIH0KIAotLSAodm9pZClzZXRW
aWRlb0VsZW1lbnQ6KFdlYkNvcmU6OkhUTUxWaWRlb0VsZW1lbnQgKil2aWRlb0VsZW1lbnQ7Ci0t
IChXZWJDb3JlOjpIVE1MVmlkZW9FbGVtZW50ICopdmlkZW9FbGVtZW50OworLSAodm9pZClzZXRW
aWRlb0VsZW1lbnQ6KE5ha2VkUHRyPFdlYkNvcmU6OkhUTUxWaWRlb0VsZW1lbnQ+KXZpZGVvRWxl
bWVudDsKKy0gKE5ha2VkUHRyPFdlYkNvcmU6OkhUTUxWaWRlb0VsZW1lbnQ+KXZpZGVvRWxlbWVu
dDsKIAogLSAodm9pZCllbnRlckZ1bGxzY3JlZW46KE5TU2NyZWVuICopc2NyZWVuOwogLSAodm9p
ZClleGl0RnVsbHNjcmVlbjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dl
YlZpZXcvV2ViVmlkZW9GdWxsc2NyZWVuQ29udHJvbGxlci5tbSBiL1NvdXJjZS9XZWJLaXRMZWdh
Y3kvbWFjL1dlYlZpZXcvV2ViVmlkZW9GdWxsc2NyZWVuQ29udHJvbGxlci5tbQppbmRleCAyM2Fh
YzM0NDI2YmEwM2FiOTNiNGU5NjNmMWU4MmY4NTE0MDRhMWNiLi43NmJiNDc2YWIwNDQwMWQ4Mzg0
ZTBhN2M3ZjJjMTBlNmYwY2RiNmZiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21h
Yy9XZWJWaWV3L1dlYlZpZGVvRnVsbHNjcmVlbkNvbnRyb2xsZXIubW0KKysrIGIvU291cmNlL1dl
YktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJWaWRlb0Z1bGxzY3JlZW5Db250cm9sbGVyLm1tCkBA
IC05MywxNCArOTMsMTQgQEAgLSAodm9pZCl3aW5kb3dEaWRMb2FkCiAgICAgW1tOU05vdGlmaWNh
dGlvbkNlbnRlciBkZWZhdWx0Q2VudGVyXSBhZGRPYnNlcnZlcjpzZWxmIHNlbGVjdG9yOkBzZWxl
Y3RvcihhcHBsaWNhdGlvbkRpZENoYW5nZVNjcmVlblBhcmFtZXRlcnM6KSBuYW1lOk5TQXBwbGlj
YXRpb25EaWRDaGFuZ2VTY3JlZW5QYXJhbWV0ZXJzTm90aWZpY2F0aW9uIG9iamVjdDpOU0FwcF07
CiB9CiAKLS0gKFdlYkNvcmU6OkhUTUxWaWRlb0VsZW1lbnQgKil2aWRlb0VsZW1lbnQKKy0gKE5h
a2VkUHRyPFdlYkNvcmU6OkhUTUxWaWRlb0VsZW1lbnQ+KXZpZGVvRWxlbWVudAogewogICAgIHJl
dHVybiBfdmlkZW9FbGVtZW50LmdldCgpOwogfQogCiAvLyBGSVhNRTogVGhpcyBtZXRob2QgaXMg
bm90IHJlYWxseSBhIHNldHRlci4gVGhlIGNhbGxlciByZWxpZXMgb24gaXRzIHNpZGUgZWZmZWN0
cywgYW5kIGl0J3MKIC8vIGNhbGxlZCBvbmNlIGVhY2ggdGltZSB3ZSBlbnRlciBmdWxsIHNjcmVl
bi4gU28gaXQgc2hvdWxkIGhhdmUgYSBkaWZmZXJlbnQgbmFtZS4KLS0gKHZvaWQpc2V0VmlkZW9F
bGVtZW50OihXZWJDb3JlOjpIVE1MVmlkZW9FbGVtZW50ICopdmlkZW9FbGVtZW50CistICh2b2lk
KXNldFZpZGVvRWxlbWVudDooTmFrZWRQdHI8V2ViQ29yZTo6SFRNTFZpZGVvRWxlbWVudD4pdmlk
ZW9FbGVtZW50CiB7CiAgICAgQVNTRVJUKHZpZGVvRWxlbWVudCk7CiAgICAgX3ZpZGVvRWxlbWVu
dCA9IHZpZGVvRWxlbWVudDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dl
YlZpZXcvV2ViVmlkZW9GdWxsc2NyZWVuSFVEV2luZG93Q29udHJvbGxlci5oIGIvU291cmNlL1dl
YktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJWaWRlb0Z1bGxzY3JlZW5IVURXaW5kb3dDb250cm9s
bGVyLmgKaW5kZXggZjY3ZmVhZTEzNDJlNmE5NzdjNTZmYjFmNWM1MDQ0MjEyMDBkZDIxOS4uZmYx
ODRhZDQxMDZmYzE3OGI2NzI2NjU5MjVmYjdiZGZlYWJjNTJkNSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJWaWRlb0Z1bGxzY3JlZW5IVURXaW5kb3dDb250
cm9sbGVyLmgKKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJWaWRlb0Z1
bGxzY3JlZW5IVURXaW5kb3dDb250cm9sbGVyLmgKQEAgLTMxLDYgKzMxLDcgQEAKICNpbXBvcnQg
PEFwcEtpdC9OU1RyYWNraW5nQXJlYS5oPgogI2ltcG9ydCA8QXBwS2l0L05TV2luZG93Lmg+CiAj
aW1wb3J0IDxBcHBLaXQvTlNXaW5kb3dDb250cm9sbGVyLmg+CisjaW1wb3J0IDx3dGYvTmFrZWRQ
dHIuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogY2xhc3MgSFRNTFZpZGVvRWxlbWVudDsKQEAg
LTY0LDcgKzY1LDcgQEAgY2xhc3MgSFRNTFZpZGVvRWxlbWVudDsKIAogQHByb3RvY29sIFdlYlZp
ZGVvRnVsbHNjcmVlbkhVRFdpbmRvd0NvbnRyb2xsZXJEZWxlZ2F0ZSA8TlNPYmplY3Q+CiAtICh2
b2lkKXJlcXVlc3RFeGl0RnVsbHNjcmVlbjsKLS0gKFdlYkNvcmU6OkhUTUxWaWRlb0VsZW1lbnQq
KXZpZGVvRWxlbWVudDsKKy0gKE5ha2VkUHRyPFdlYkNvcmU6OkhUTUxWaWRlb0VsZW1lbnQ+KXZp
ZGVvRWxlbWVudDsKIEBlbmQKIAogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVn
YWN5L21hYy9XZWJWaWV3L1dlYlZpZXcubW0gYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJW
aWV3L1dlYlZpZXcubW0KaW5kZXggNGM0MTg2NGQ4OWY0MDU2N2VkODFlZDJlZmVmYjUwMWY2NzUz
ZGI4NC4uZWFiMDY4NTQyOTFjMzY0ZWQxYWFiYmFjNzM0MjkyNTUxOGMxMTI5YyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJWaWV3Lm1tCisrKyBiL1NvdXJj
ZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViVmlldy5tbQpAQCAtMjYyMSw3ICsyNjIxLDcg
QEAgLSAodm9pZClfc2V0SG9zdEFwcGxpY2F0aW9uUHJvY2Vzc0lkZW50aWZpZXI6KHBpZF90KXBp
ZCBhdWRpdFRva2VuOihhdWRpdF90b2tlbl8KICNlbmRpZiAvLyBQTEFURk9STShJT1NfRkFNSUxZ
KQogI2VuZGlmIC8vIEVOQUJMRShSRU1PVEVfSU5TUEVDVE9SKQogCi0tIChXZWJDb3JlOjpQYWdl
KilwYWdlCistIChOYWtlZFB0cjxXZWJDb3JlOjpQYWdlPilwYWdlCiB7CiAgICAgcmV0dXJuIF9w
cml2YXRlLT5wYWdlOwogfQpAQCAtOTMxMiw3ICs5MzEyLDcgQEAgLSAodm9pZClfc2NoZWR1bGVM
YXllckZsdXNoRm9yUGVuZGluZ1RpbGVDYWNoZVJlcGFpbnQKICNlbmRpZgogCiAjaWYgRU5BQkxF
KFZJREVPKQotLSAodm9pZClfZW50ZXJWaWRlb0Z1bGxzY3JlZW5Gb3JWaWRlb0VsZW1lbnQ6KFdl
YkNvcmU6OkhUTUxWaWRlb0VsZW1lbnQqKXZpZGVvRWxlbWVudCBtb2RlOihXZWJDb3JlOjpIVE1M
TWVkaWFFbGVtZW50RW51bXM6OlZpZGVvRnVsbHNjcmVlbk1vZGUpbW9kZQorLSAodm9pZClfZW50
ZXJWaWRlb0Z1bGxzY3JlZW5Gb3JWaWRlb0VsZW1lbnQ6KE5ha2VkUHRyPFdlYkNvcmU6OkhUTUxW
aWRlb0VsZW1lbnQ+KXZpZGVvRWxlbWVudCBtb2RlOihXZWJDb3JlOjpIVE1MTWVkaWFFbGVtZW50
RW51bXM6OlZpZGVvRnVsbHNjcmVlbk1vZGUpbW9kZQogewogICAgIGlmIChfcHJpdmF0ZS0+ZnVs
bHNjcmVlbkNvbnRyb2xsZXIpIHsKICAgICAgICAgaWYgKFtfcHJpdmF0ZS0+ZnVsbHNjcmVlbkNv
bnRyb2xsZXIgdmlkZW9FbGVtZW50XSA9PSB2aWRlb0VsZW1lbnQpIHsKQEAgLTkzNjMsMTQgKzkz
NjMsMTQgQEAgLSAoQk9PTClfaGFzQWN0aXZlVmlkZW9Gb3JDb250cm9sc0ludGVyZmFjZQogICAg
IHJldHVybiBtZWRpYUVsZW1lbnQtPmhhc0F1ZGlvKCkgfHwgbWVkaWFFbGVtZW50LT5oYXNWaWRl
bygpOwogfQogCi0tICh2b2lkKV9zZXRVcFBsYXliYWNrQ29udHJvbHNNYW5hZ2VyRm9yTWVkaWFF
bGVtZW50OihXZWJDb3JlOjpIVE1MTWVkaWFFbGVtZW50JiltZWRpYUVsZW1lbnQKKy0gKHZvaWQp
X3NldFVwUGxheWJhY2tDb250cm9sc01hbmFnZXJGb3JNZWRpYUVsZW1lbnQ6KE5ha2VkUmVmPFdl
YkNvcmU6OkhUTUxNZWRpYUVsZW1lbnQ+KW1lZGlhRWxlbWVudAogewotICAgIGlmIChfcHJpdmF0
ZS0+cGxheWJhY2tTZXNzaW9uTW9kZWwgJiYgX3ByaXZhdGUtPnBsYXliYWNrU2Vzc2lvbk1vZGVs
LT5tZWRpYUVsZW1lbnQoKSA9PSAmbWVkaWFFbGVtZW50KQorICAgIGlmIChfcHJpdmF0ZS0+cGxh
eWJhY2tTZXNzaW9uTW9kZWwgJiYgX3ByaXZhdGUtPnBsYXliYWNrU2Vzc2lvbk1vZGVsLT5tZWRp
YUVsZW1lbnQoKSA9PSBtZWRpYUVsZW1lbnQucHRyKCkpCiAgICAgICAgIHJldHVybjsKIAogICAg
IGlmICghX3ByaXZhdGUtPnBsYXliYWNrU2Vzc2lvbk1vZGVsKQogICAgICAgICBfcHJpdmF0ZS0+
cGxheWJhY2tTZXNzaW9uTW9kZWwgPSBXZWJDb3JlOjpQbGF5YmFja1Nlc3Npb25Nb2RlbE1lZGlh
RWxlbWVudDo6Y3JlYXRlKCk7Ci0gICAgX3ByaXZhdGUtPnBsYXliYWNrU2Vzc2lvbk1vZGVsLT5z
ZXRNZWRpYUVsZW1lbnQoJm1lZGlhRWxlbWVudCk7CisgICAgX3ByaXZhdGUtPnBsYXliYWNrU2Vz
c2lvbk1vZGVsLT5zZXRNZWRpYUVsZW1lbnQobWVkaWFFbGVtZW50LnB0cigpKTsKIAogICAgIGlm
ICghX3ByaXZhdGUtPnBsYXliYWNrU2Vzc2lvbkludGVyZmFjZSkKICAgICAgICAgX3ByaXZhdGUt
PnBsYXliYWNrU2Vzc2lvbkludGVyZmFjZSA9IFdlYkNvcmU6OlBsYXliYWNrU2Vzc2lvbkludGVy
ZmFjZU1hYzo6Y3JlYXRlKCpfcHJpdmF0ZS0+cGxheWJhY2tTZXNzaW9uTW9kZWwpOwpAQCAtOTM5
NCw3ICs5Mzk0LDcgQEAgLSAodm9pZClfY2xlYXJQbGF5YmFja0NvbnRyb2xzTWFuYWdlcgogI2Vu
ZGlmIC8vIEVOQUJMRShWSURFTykKIAogI2lmIEVOQUJMRShGVUxMU0NSRUVOX0FQSSkgJiYgIVBM
QVRGT1JNKElPU19GQU1JTFkpCi0tIChCT09MKV9zdXBwb3J0c0Z1bGxTY3JlZW5Gb3JFbGVtZW50
Oihjb25zdCBXZWJDb3JlOjpFbGVtZW50KillbGVtZW50IHdpdGhLZXlib2FyZDooQk9PTCl3aXRo
S2V5Ym9hcmQKKy0gKEJPT0wpX3N1cHBvcnRzRnVsbFNjcmVlbkZvckVsZW1lbnQ6KE5ha2VkUHRy
PGNvbnN0IFdlYkNvcmU6OkVsZW1lbnQ+KWVsZW1lbnQgd2l0aEtleWJvYXJkOihCT09MKXdpdGhL
ZXlib2FyZAogewogICAgIGlmICghW1tzZWxmIHByZWZlcmVuY2VzXSBmdWxsU2NyZWVuRW5hYmxl
ZF0pCiAgICAgICAgIHJldHVybiBOTzsKQEAgLTk0MDIsMTcgKzk0MDIsMTcgQEAgLSAoQk9PTClf
c3VwcG9ydHNGdWxsU2NyZWVuRm9yRWxlbWVudDooY29uc3QgV2ViQ29yZTo6RWxlbWVudCopZWxl
bWVudCB3aXRoS2V5Ym8KICAgICByZXR1cm4gdHJ1ZTsKIH0KIAotLSAodm9pZClfZW50ZXJGdWxs
U2NyZWVuRm9yRWxlbWVudDooV2ViQ29yZTo6RWxlbWVudCopZWxlbWVudAorLSAodm9pZClfZW50
ZXJGdWxsU2NyZWVuRm9yRWxlbWVudDooTmFrZWRQdHI8V2ViQ29yZTo6RWxlbWVudD4pZWxlbWVu
dAogewogICAgIGlmICghX3ByaXZhdGUtPm5ld0Z1bGxzY3JlZW5Db250cm9sbGVyKQogICAgICAg
ICBfcHJpdmF0ZS0+bmV3RnVsbHNjcmVlbkNvbnRyb2xsZXIgPSBbW1dlYkZ1bGxTY3JlZW5Db250
cm9sbGVyIGFsbG9jXSBpbml0XTsKIAotICAgIFtfcHJpdmF0ZS0+bmV3RnVsbHNjcmVlbkNvbnRy
b2xsZXIgc2V0RWxlbWVudDplbGVtZW50XTsKKyAgICBbX3ByaXZhdGUtPm5ld0Z1bGxzY3JlZW5D
b250cm9sbGVyIHNldEVsZW1lbnQ6ZWxlbWVudC5nZXQoKV07CiAgICAgW19wcml2YXRlLT5uZXdG
dWxsc2NyZWVuQ29udHJvbGxlciBzZXRXZWJWaWV3OnNlbGZdOwogICAgIFtfcHJpdmF0ZS0+bmV3
RnVsbHNjcmVlbkNvbnRyb2xsZXIgZW50ZXJGdWxsU2NyZWVuOltbc2VsZiB3aW5kb3ddIHNjcmVl
bl1dOyAgICAgICAgCiB9CiAKLS0gKHZvaWQpX2V4aXRGdWxsU2NyZWVuRm9yRWxlbWVudDooV2Vi
Q29yZTo6RWxlbWVudCopZWxlbWVudAorLSAodm9pZClfZXhpdEZ1bGxTY3JlZW5Gb3JFbGVtZW50
OihOYWtlZFB0cjxXZWJDb3JlOjpFbGVtZW50PillbGVtZW50CiB7CiAgICAgaWYgKCFfcHJpdmF0
ZS0+bmV3RnVsbHNjcmVlbkNvbnRyb2xsZXIpCiAgICAgICAgIHJldHVybjsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViVmlld0ludGVybmFsLmggYi9Tb3Vy
Y2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYlZpZXdJbnRlcm5hbC5oCmluZGV4IDg1ZTIz
Zjg1NzdhZjRiNmRjMjZiMGQxYmQ0NzdlYWMyYmIxZTgwMDEuLjhlYzc5OTk5ZTM5YWJlN2Y4MWJm
MzU0ZmYxOTM3ODFiNjkyZTllODYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFj
L1dlYlZpZXcvV2ViVmlld0ludGVybmFsLmgKKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMv
V2ViVmlldy9XZWJWaWV3SW50ZXJuYWwuaApAQCAtNDUsNiArNDUsOCBAQAogI2ltcG9ydCA8V2Vi
Q29yZS9XZWJDb3JlS2V5Ym9hcmRVSU1vZGUuaD4KICNpbXBvcnQgPGZ1bmN0aW9uYWw+CiAjaW1w
b3J0IDx3dGYvRm9yd2FyZC5oPgorI2ltcG9ydCA8d3RmL05ha2VkUHRyLmg+CisjaW1wb3J0IDx3
dGYvTmFrZWRSZWYuaD4KICNpbXBvcnQgPHd0Zi9SZXRhaW5QdHIuaD4KIAogbmFtZXNwYWNlIFdl
YkNvcmUgewpAQCAtMTY1LDcgKzE2Nyw3IEBAIE9CSkNfQ0xBU1MgTlNUZXh0QWx0ZXJuYXRpdmVz
OwogKyAoV2ViQ2FjaGVNb2RlbClfY2FjaGVNb2RlbDsKIAogI2lmZGVmIF9fY3BsdXNwbHVzCi0t
IChXZWJDb3JlOjpQYWdlKilwYWdlOworLSAoTmFrZWRQdHI8V2ViQ29yZTo6UGFnZT4pcGFnZTsK
IC0gKFdURjo6U3RyaW5nKV91c2VyQWdlbnRTdHJpbmc7CiAjZW5kaWYKIApAQCAtMjcxLDE5ICsy
NzMsMTkgQEAgT0JKQ19DTEFTUyBOU1RleHRBbHRlcm5hdGl2ZXM7CiAtICh2b2lkKV9pbnZhbGlk
YXRlVXNlckFnZW50Q2FjaGU7CiAKICNpZiBFTkFCTEUoVklERU8pICYmIGRlZmluZWQoX19jcGx1
c3BsdXMpCi0tICh2b2lkKV9lbnRlclZpZGVvRnVsbHNjcmVlbkZvclZpZGVvRWxlbWVudDooV2Vi
Q29yZTo6SFRNTFZpZGVvRWxlbWVudCopdmlkZW9FbGVtZW50IG1vZGU6KFdlYkNvcmU6OkhUTUxN
ZWRpYUVsZW1lbnRFbnVtczo6VmlkZW9GdWxsc2NyZWVuTW9kZSltb2RlOworLSAodm9pZClfZW50
ZXJWaWRlb0Z1bGxzY3JlZW5Gb3JWaWRlb0VsZW1lbnQ6KE5ha2VkUHRyPFdlYkNvcmU6OkhUTUxW
aWRlb0VsZW1lbnQ+KXZpZGVvRWxlbWVudCBtb2RlOihXZWJDb3JlOjpIVE1MTWVkaWFFbGVtZW50
RW51bXM6OlZpZGVvRnVsbHNjcmVlbk1vZGUpbW9kZTsKIC0gKHZvaWQpX2V4aXRWaWRlb0Z1bGxz
Y3JlZW47CiAjaWYgUExBVEZPUk0oTUFDKSAmJiBFTkFCTEUoVklERU9fUFJFU0VOVEFUSU9OX01P
REUpCiAtIChCT09MKV9oYXNBY3RpdmVWaWRlb0ZvckNvbnRyb2xzSW50ZXJmYWNlOwotLSAodm9p
ZClfc2V0VXBQbGF5YmFja0NvbnRyb2xzTWFuYWdlckZvck1lZGlhRWxlbWVudDooV2ViQ29yZTo6
SFRNTE1lZGlhRWxlbWVudCYpbWVkaWFFbGVtZW50OworLSAodm9pZClfc2V0VXBQbGF5YmFja0Nv
bnRyb2xzTWFuYWdlckZvck1lZGlhRWxlbWVudDooTmFrZWRSZWY8V2ViQ29yZTo6SFRNTE1lZGlh
RWxlbWVudD4pbWVkaWFFbGVtZW50OwogLSAodm9pZClfY2xlYXJQbGF5YmFja0NvbnRyb2xzTWFu
YWdlcjsKICNlbmRpZgogI2VuZGlmCiAKICNpZiBFTkFCTEUoRlVMTFNDUkVFTl9BUEkpICYmICFQ
TEFURk9STShJT1NfRkFNSUxZKSAmJiBkZWZpbmVkKF9fY3BsdXNwbHVzKQotLSAoQk9PTClfc3Vw
cG9ydHNGdWxsU2NyZWVuRm9yRWxlbWVudDooV2ViQ29yZTo6RWxlbWVudCopZWxlbWVudCB3aXRo
S2V5Ym9hcmQ6KEJPT0wpd2l0aEtleWJvYXJkOwotLSAodm9pZClfZW50ZXJGdWxsU2NyZWVuRm9y
RWxlbWVudDooV2ViQ29yZTo6RWxlbWVudCopZWxlbWVudDsKLS0gKHZvaWQpX2V4aXRGdWxsU2Ny
ZWVuRm9yRWxlbWVudDooV2ViQ29yZTo6RWxlbWVudCopZWxlbWVudDsKKy0gKEJPT0wpX3N1cHBv
cnRzRnVsbFNjcmVlbkZvckVsZW1lbnQ6KE5ha2VkUHRyPFdlYkNvcmU6OkVsZW1lbnQ+KWVsZW1l
bnQgd2l0aEtleWJvYXJkOihCT09MKXdpdGhLZXlib2FyZDsKKy0gKHZvaWQpX2VudGVyRnVsbFNj
cmVlbkZvckVsZW1lbnQ6KE5ha2VkUHRyPFdlYkNvcmU6OkVsZW1lbnQ+KWVsZW1lbnQ7CistICh2
b2lkKV9leGl0RnVsbFNjcmVlbkZvckVsZW1lbnQ6KE5ha2VkUHRyPFdlYkNvcmU6OkVsZW1lbnQ+
KWVsZW1lbnQ7CiAjZW5kaWYKIAogLy8gQ29udmVyc2lvbiBmdW5jdGlvbnMgYmV0d2VlbiBXZWJD
b3JlIHJvb3QgdmlldyBjb29yZGluYXRlcyBhbmQgd2ViIHZpZXcgY29vcmRpbmF0ZXMuCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>387147</attachid>
            <date>2020-01-08 15:14:31 -0800</date>
            <delta_ts>2020-01-08 15:14:31 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-205905-20200108151430.patch</filename>
            <type>text/plain</type>
            <size>127904</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjU0MjI4CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA2
N2ExMzBjZjU1MzNmNDY3NjBmNDU1OTJlYzIxMGVhODFkYWQzNDkzLi41NzFjNDk0ZGI5MDFmYmU1
YjY1NmFlZGQyYTYxZTdhZTMzYjM2ODBlIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxMyBAQAorMjAyMC0wMS0wOCAgWXVzdWtlIFN1enVraSAgPHlzdXp1a2lAYXBwbGUuY29t
PgorCisgICAgICAgIFJlZHVjZSBiaW5hcnkgc2l6ZSBieSBwdXJnaW5nIEMrKyB0eXBlIGluZm9y
bWF0aW9uIGluIE9iamVjdGl2ZS1DIGZpZWxkcyBhbmQgcGFyYW1ldGVycworICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjA1OTA1CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBBUEkvSlNXcmFwcGVyTWFwLm1t
OgorICAgICAgICAoLVtKU09iakNDbGFzc0luZm8gZGVhbGxvY10pOgorCiAyMDIwLTAxLTA4ICBN
aWNoYWVsIFNhYm9mZiAgPG1zYWJvZmZAYXBwbGUuY29tPgogCiAgICAgICAgIFR5cGVQcm9maWxl
ci5oOiBNdWx0aXBsaWNhdGlvbiByZXN1bHQgY29udmVydGVkIHRvIGxhcmdlciB0eXBlCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5nZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4
IGQyMmIzYjY0ZDhhNzUwM2Y1OTRmYjQ2Y2Y5MDEzYzFkMGYzM2M3OWEuLjFmNzU2ODFkNjMyNTE1
NzNmZGZiNzgzMjM4MTc3MmZmODEyYTVkZjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdl
TG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNTQgQEAKKzIwMjAtMDEt
MDggIFl1c3VrZSBTdXp1a2kgIDx5c3V6dWtpQGFwcGxlLmNvbT4KKworICAgICAgICBSZWR1Y2Ug
YmluYXJ5IHNpemUgYnkgcHVyZ2luZyBDKysgdHlwZSBpbmZvcm1hdGlvbiBpbiBPYmplY3RpdmUt
QyBmaWVsZHMgYW5kIHBhcmFtZXRlcnMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTIwNTkwNQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgIE9iamVjdGl2ZS1DIGhhcyByZWZsZWN0aW9uIG1lY2hhbmlzbXMuIFRo
aXMgbWVhbnMgdGhhdCBmaWVsZHMsIG1ldGhvZHMsIGFuZCB0aGVpciB0eXBlcworICAgICAgICBu
ZWVkIHRvIGhvbGQgaXRzIHN0cmluZyByZXByZXNlbnRhdGlvbnMgaW4gYmluYXJ5IGV2ZW4gaWYg
d2UgYXJlIHVzaW5nIHJlbGVhc2UgYnVpbGQuCisgICAgICAgIFdoaWxlIHR5cGljYWwgT2JqZWN0
aXZlLUMgY2xhc3MgZG9lcyBub3QgaGF2ZSBsYXJnZSBzaXplIG9mIHR5cGUgbmFtZXMsIEMrKyBz
dHJ1Y3QgLyBjbGFzcworICAgICAgICBoYXMgdmVyeSBsYXJnZSBvbmUsIGFuZCBwdXR0aW5nIHRo
ZW0gaW4gT2JqZWN0aXZlLUMgbWV0aG9kIG5hbWVzLCBwYXJhbWV0ZXIgdHlwZXMsIG9yIGZpZWxk
cworICAgICAgICBtYWtlcyBiaW5hcnkgc2l6ZSB2ZXJ5IGxhcmdlLgorCisgICAgICAgIEludGVy
ZXN0aW5nIHRoaW5nIGlzIHRoYXQgdHlwZSBpbmZvcm1hdGlvbiBpcyBnYXRoZXJlZCB3aGVuIHBh
cmFtZXRlciBpcyBhIEMrKyBwb2ludGVyLCByZWZlcmVuY2UsCisgICAgICAgIG9yIHZhbHVlLiBB
bmQgaXQgZ2F0aGVycyBvbmUtbGV2ZWwgZGVlcCBpbmZvcm1hdGlvbiBmcm9tIHRoaXMgcG9pbnRl
ciBldGMuIFRoaXMgbWVhbnMgdGhhdCwgaWYKKyAgICAgICAgd2UgdXNlIFJlZlB0cjxUPiwgY29s
bGVjdGVkIHR5cGUgaW5mb3JtYXRpb24gaXMgdGhlIG9uZSBvZiBSZWZQdHIsIG5vdCBvbmUgb2Yg
VC4gU28gaXQgYmVjb21lcyBzaWduaWZpY2FudGx5CisgICAgICAgIHNtYWxsZXIuCisKKyAgICAg
ICAgVGhpcyBwYXRjaCBpbnRyb2R1Y2VzIE5ha2VkUmVmPFQ+LiBUaGlzIGlzIHNpbWlsYXIgdG8g
UmVmIHdoaWxlIGl0IGRvZXMgbm90IGhhdmUgYW55IG93bmVyc2hpcC4gU28gaXQKKyAgICAgICAg
aXMganVzdCBhIHdyYXBwZXIgYXJvdW5kIFQmLiBXZSBhbHJlYWR5IGhhdmUgTmFrZWRQdHI8VD4u
IEFuZCB1c2UgTmFrZWRSZWY8VD4gLyBOYWtlZFB0cjxUPiBpbnN0ZWFkCisgICAgICAgIG9mIFQm
IGFuZCBUKiBpZiwKKworICAgICAgICAgICAgMS4gVCBpcyBDKysgY2xhc3MuCisgICAgICAgICAg
ICAyLiBUKiAvIFQmIGlzIGluIE9iamVjdGl2ZS1DIGZpZWxkcyBvciBwYXJhbWV0ZXIgdHlwZXMg
KGluY2x1ZGluZyBhIHJldHVybiB0eXBlKS4KKworICAgICAgICBUaGVuLCB0aGVzZSB0eXBlIGlu
Zm9ybWF0aW9uIGlzIG9uZSBvZiBOYWtlZFJlZjxUPiAvIE5ha2VkUHRyPFQ+IGluc3RlYWQgb2Yg
VCwgYW5kIHdlIGNhbiByZWR1Y2UgYmluYXJ5IHNpemUuCisKKyAgICAgICAgVGhpcyBwYXRjaCBz
YXZlcyA2MDB+S0IgaW4gYmluYXJ5IHNpemUuCisKKyAgICAgICAgTm90ZSB0aGUgZm9sbG93aW5n
IHRoaW5ncy4KKworICAgICAgICAxLiBJZiB3ZSB1c2UgYF9fYXR0cmlidXRlX18oKG9iamNfZGly
ZWN0KSlgLCBgX19hdHRyaWJ1dGVfXygob2JqY19kaXJlY3RfbWVtYmVycykpYCwgcG9zc2libHks
IHdlIGNhbiBjb21wbGV0ZWx5IHJlbW92ZSB0aGVzZQorICAgICAgICAgICBtZXRhZGF0YSB3aXRo
b3V0IHVzaW5nIE5ha2VkUmVmIC8gTmFrZWRQdHJbMV0uIEhvd2V2ZXIsIHRoaXMgaXMgbm90IGF2
YWlsYWJsZSBmb3Igb3VyIHN1cHBvcnRpbmcgcGxhdGZvcm1zIG5vdyAoaW5jbHVkaW5nCisgICAg
ICAgICAgIHByZS1DYXRhbGluYSBPU2VzKS4gVGhpcyBOYWtlZFJlZiAvIE5ha2VkUHRyIHRlY2hu
aXF1ZSBjYW4gcmVkdWNlIGJpbmFyeSB3aXRob3V0IHdhaXRpbmcgZm9yIGl0LgorICAgICAgICAy
LiBSZXZlcnRpbmcgTmFrZWRSZWYgLyBOYWtlZFB0ciB0byB1c3VhbCByZWZlcmVuY2UgLyBwb2lu
dGVyIGlzIGZhaXJseSBlYXN5IHNpbmNlIGl0IGlzIHdlbGwgdHlwZWQuIE9uY2UgYF9fYXR0cmli
dXRlX18oKG9iamNfZGlyZWN0KSlgCisgICAgICAgICAgIGJlY29tZXMgYXZhaWxhYmxlIGluIG91
ciBwbGF0Zm9ybXMsIHdlIGNhbiBjb25zaWRlciBpdC4gQnV0IHVzaW5nIE5ha2VkUmVmIC8gTmFr
ZWRQdHIgaXMgaGFybWxlc3MuCisKKyAgICAgICAgWzFdOiBodHRwczovL2dpdGh1Yi5jb20vbGx2
bS9sbHZtLXByb2plY3QvY29tbWl0L2Q0ZTFiYTNmYTlkZmVjMjYxM2JkY2M3ZGIwYjU4ZGVhNDkw
YzU2YjEKKworICAgICAgICAqIFdURi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAg
ICAqIHd0Zi9DTWFrZUxpc3RzLnR4dDoKKyAgICAgICAgKiB3dGYvTmFrZWRSZWYuaDogQWRkZWQu
CisgICAgICAgIChXVEY6Ok5ha2VkUmVmOjpOYWtlZFJlZik6CisgICAgICAgIChXVEY6Ok5ha2Vk
UmVmOjpvcGVyYXRvci0+IGNvbnN0KToKKyAgICAgICAgKFdURjo6TmFrZWRSZWY6OmdldCBjb25z
dCk6CisgICAgICAgIChXVEY6Ok5ha2VkUmVmOjpvcGVyYXRvciBUJiBjb25zdCk6CisgICAgICAg
IChXVEY6Ok5ha2VkUmVmOjpvcGVyYXRvciEgY29uc3QpOgorICAgICAgICAoV1RGOjo9KToKKyAg
ICAgICAgKFdURjo6TmFrZWRSZWY8VD46OnN3YXApOgorICAgICAgICAoV1RGOjpzd2FwKToKKwog
MjAyMC0wMS0wOCAgQWxpY2lhIEJveWEgR2FyY8OtYSAgPGFib3lhQGlnYWxpYS5jb20+CiAKICAg
ICAgICAgW1dURl0gQWxsb3cgTWVkaWFUaW1lIHN0YXRpYyBjb25zdGFudHMKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRl
eCAxYWRlYmQ0MTVkMjllMjgzNzE1MWVmMDM4NGE2YmU1NWI1NDI0OTFiLi5iNDNhNzFjNzBlODdi
MDU4MDU3YjAzYzBjNDMzZGYzNWU3OGY5N2ZlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjUgQEAK
KzIwMjAtMDEtMDggIFl1c3VrZSBTdXp1a2kgIDx5c3V6dWtpQGFwcGxlLmNvbT4KKworICAgICAg
ICBSZWR1Y2UgYmluYXJ5IHNpemUgYnkgcHVyZ2luZyBDKysgdHlwZSBpbmZvcm1hdGlvbiBpbiBP
YmplY3RpdmUtQyBmaWVsZHMgYW5kIHBhcmFtZXRlcnMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwNTkwNQorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgIE5vIGJlaGF2aW9yIGNoYW5nZS4KKworICAgICAgICAq
IHBhZ2UvbWFjL1dlYkNvcmVGcmFtZVZpZXcuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGlj
cy9jb2NvYS9XZWJHTExheWVyLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2Ev
V2ViR0xMYXllci5tbToKKyAgICAgICAgKC1bV2ViR0xMYXllciBpbml0V2l0aEdyYXBoaWNzQ29u
dGV4dEdMOl0pOgorICAgICAgICAqIHBsYXRmb3JtL2lvcy9XZWJWaWRlb0Z1bGxzY3JlZW5Db250
cm9sbGVyQVZLaXQuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9pb3MvV2ViVmlkZW9GdWxsc2NyZWVu
Q29udHJvbGxlckFWS2l0Lm1tOgorICAgICAgICAoLVtXZWJWaWRlb0Z1bGxzY3JlZW5Db250cm9s
bGVyIHZpZGVvRWxlbWVudF0pOgorICAgICAgICAoLVtXZWJWaWRlb0Z1bGxzY3JlZW5Db250cm9s
bGVyIHNldFZpZGVvRWxlbWVudDpdKToKKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvU2Nyb2xsQW5p
bWF0b3JNYWMubW06CisgICAgICAgICgtW1dlYlNjcm9sbEFuaW1hdGlvbkhlbHBlckRlbGVnYXRl
IGluaXRXaXRoU2Nyb2xsQW5pbWF0b3I6XSk6CisgICAgICAgICgtW1dlYlNjcm9sbEFuaW1hdGlv
bkhlbHBlckRlbGVnYXRlIGludmFsaWRhdGVdKToKKyAgICAgICAgKC1bV2ViU2Nyb2xsZXJJbXBE
ZWxlZ2F0ZSBzY3JvbGxBbmltYXRvcl0pOgorCiAyMDIwLTAxLTA4ICBEZXZpbiBSb3Vzc28gIDxk
cm91c3NvQGFwcGxlLmNvbT4KIAogICAgICAgICBSRUdSRVNTSU9OOiAocjI1NDE4NikgWyBNYWMg
XSBpbnNwZWN0b3IvY3NzL2FkZC1ydWxlLmh0bWwgaXMgZmFpbGluZwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwppbmRleCBjY2Zh
ZTNmODI1MzYyZDFiN2FkZTdmNWFkMTMxMzYwOTU0YjdmNzExLi5mZDNiZTUwM2IyZjI3YTI3MDA3
Mzc1NjM3ZWFmMmM0YjQ1Y2M4N2UxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxv
ZworKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDgyIEBACisyMDIwLTAx
LTA4ICBZdXN1a2UgU3V6dWtpICA8eXN1enVraUBhcHBsZS5jb20+CisKKyAgICAgICAgUmVkdWNl
IGJpbmFyeSBzaXplIGJ5IHB1cmdpbmcgQysrIHR5cGUgaW5mb3JtYXRpb24gaW4gT2JqZWN0aXZl
LUMgZmllbGRzIGFuZCBwYXJhbWV0ZXJzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0yMDU5MDUKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL2NvY29hL05ldHdvcmtTZXNzaW9uQ29j
b2EubW06CisgICAgICAgICgtW1dLTmV0d29ya1Nlc3Npb25EZWxlZ2F0ZSBpbml0V2l0aE5ldHdv
cmtTZXNzaW9uOndyYXBwZXI6d2l0aENyZWRlbnRpYWxzOl0pOgorICAgICAgICAqIFNoYXJlZC9B
UEkvQ29jb2EvV0tCcm93c2luZ0NvbnRleHRIYW5kbGUubW06CisgICAgICAgICgtW1dLQnJvd3Np
bmdDb250ZXh0SGFuZGxlIF9pbml0V2l0aFBhZ2VQcm94eTpdKToKKyAgICAgICAgKC1bV0tCcm93
c2luZ0NvbnRleHRIYW5kbGUgX2luaXRXaXRoUGFnZTpdKToKKyAgICAgICAgKiBTaGFyZWQvQVBJ
L0NvY29hL1dLQnJvd3NpbmdDb250ZXh0SGFuZGxlSW50ZXJuYWwuaDoKKyAgICAgICAgKiBTaGFy
ZWQvQVBJL0NvY29hL19XS1JlbW90ZU9iamVjdFJlZ2lzdHJ5Lm1tOgorICAgICAgICAoLVtfV0tS
ZW1vdGVPYmplY3RSZWdpc3RyeSBfaW5pdFdpdGhXZWJQYWdlOl0pOgorICAgICAgICAoLVtfV0tS
ZW1vdGVPYmplY3RSZWdpc3RyeSBfaW5pdFdpdGhXZWJQYWdlUHJveHk6XSk6CisgICAgICAgICog
U2hhcmVkL0FQSS9Db2NvYS9fV0tSZW1vdGVPYmplY3RSZWdpc3RyeUludGVybmFsLmg6CisgICAg
ICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXcubW06CisgICAgICAgICgtW1dLV2Vi
VmlldyBfcGFnZV0pOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3SW50
ZXJuYWwuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL1dLV2Vic2l0ZURhdGFTdG9y
ZS5tbToKKyAgICAgICAgKC1bV0tXZWJzaXRlRGF0YVN0b3JlIF9nZXRBbGxTdG9yYWdlQWNjZXNz
RW50cmllc0Zvcjpjb21wbGV0aW9uSGFuZGxlcjpdKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJ
L0NvY29hL19XS1RodW1ibmFpbFZpZXcubW06CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9tYWMv
V0tWaWV3Lm1tOgorICAgICAgICAoLVtXS1ZpZXcgaW5pdFdpdGhGcmFtZTpwcm9jZXNzUG9vbDpj
b25maWd1cmF0aW9uOl0pOgorICAgICAgICAqIFVJUHJvY2Vzcy9Db2NvYS9XZWJWaWV3SW1wbC5t
bToKKyAgICAgICAgKFdlYktpdDo6V2ViVmlld0ltcGw6OldlYlZpZXdJbXBsKToKKyAgICAgICAg
KFdlYktpdDo6V2ViVmlld0ltcGw6OnNldExheW91dE1vZGUpOgorICAgICAgICAoV2ViS2l0OjpX
ZWJWaWV3SW1wbDo6ZnVsbFNjcmVlbldpbmRvd0NvbnRyb2xsZXIpOgorICAgICAgICAoV2ViS2l0
OjpXZWJWaWV3SW1wbDo6cmVtb3RlT2JqZWN0UmVnaXN0cnkpOgorICAgICAgICAqIFVJUHJvY2Vz
cy9pb3MvV0tBcHBsaWNhdGlvblN0YXRlVHJhY2tpbmdWaWV3Lm1tOgorICAgICAgICAoLVtXS0Fw
cGxpY2F0aW9uU3RhdGVUcmFja2luZ1ZpZXcgd2lsbE1vdmVUb1dpbmRvdzpdKToKKyAgICAgICAg
KC1bV0tBcHBsaWNhdGlvblN0YXRlVHJhY2tpbmdWaWV3IGRpZE1vdmVUb1dpbmRvd10pOgorICAg
ICAgICAqIFVJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlldy5oOgorICAgICAgICAqIFVJUHJvY2Vz
cy9pb3MvV0tDb250ZW50Vmlldy5tbToKKyAgICAgICAgKC1bV0tDb250ZW50VmlldyBpbml0V2l0
aEZyYW1lOnByb2Nlc3NQb29sOmNvbmZpZ3VyYXRpb246d2ViVmlldzpdKToKKyAgICAgICAgKiBV
SVByb2Nlc3MvaW9zL2Z1bGxzY3JlZW4vV0tGdWxsU2NyZWVuVmlld0NvbnRyb2xsZXIubW06Cisg
ICAgICAgICgtW1dLRnVsbFNjcmVlblZpZXdDb250cm9sbGVyIHZpZGVvQ29udHJvbHNNYW5hZ2Vy
RGlkQ2hhbmdlXSk6CisgICAgICAgICgtW1dLRnVsbFNjcmVlblZpZXdDb250cm9sbGVyIF9tYW5h
Z2VyXSk6CisgICAgICAgICgtW1dLRnVsbFNjcmVlblZpZXdDb250cm9sbGVyIF90b2dnbGVQaVBB
Y3Rpb246XSk6CisgICAgICAgICgtW1dLRnVsbFNjcmVlblZpZXdDb250cm9sbGVyIF9zaG93UGhp
c2hpbmdBbGVydF0pOgorICAgICAgICAqIFVJUHJvY2Vzcy9pb3MvZnVsbHNjcmVlbi9XS0Z1bGxT
Y3JlZW5XaW5kb3dDb250cm9sbGVySU9TLm1tOgorICAgICAgICAoV2ViS2l0OjpXS1dlYlZpZXdT
dGF0ZTo6YXBwbHlUbyk6CisgICAgICAgIChXZWJLaXQ6OldLV2ViVmlld1N0YXRlOjpzdG9yZSk6
CisgICAgICAgICgtW1dLRnVsbFNjcmVlbldpbmRvd0NvbnRyb2xsZXIgZW50ZXJGdWxsU2NyZWVu
XSk6CisgICAgICAgICgtW1dLRnVsbFNjcmVlbldpbmRvd0NvbnRyb2xsZXIgYmVnYW5FbnRlckZ1
bGxTY3JlZW5XaXRoSW5pdGlhbEZyYW1lOmZpbmFsRnJhbWU6XSk6CisgICAgICAgICgtW1dLRnVs
bFNjcmVlbldpbmRvd0NvbnRyb2xsZXIgYmVnYW5FeGl0RnVsbFNjcmVlbldpdGhJbml0aWFsRnJh
bWU6ZmluYWxGcmFtZTpdKToKKyAgICAgICAgKC1bV0tGdWxsU2NyZWVuV2luZG93Q29udHJvbGxl
ciBfY29tcGxldGVkRXhpdEZ1bGxTY3JlZW5dKToKKyAgICAgICAgKC1bV0tGdWxsU2NyZWVuV2lu
ZG93Q29udHJvbGxlciBfZXhpdEZ1bGxzY3JlZW5JbW1lZGlhdGVseV0pOgorICAgICAgICAoLVtX
S0Z1bGxTY3JlZW5XaW5kb3dDb250cm9sbGVyIF9tYW5hZ2VyXSk6CisgICAgICAgICogVUlQcm9j
ZXNzL21hYy9XS0Z1bGxTY3JlZW5XaW5kb3dDb250cm9sbGVyLmg6CisgICAgICAgICogVUlQcm9j
ZXNzL21hYy9XS0Z1bGxTY3JlZW5XaW5kb3dDb250cm9sbGVyLm1tOgorICAgICAgICAoLVtXS0Z1
bGxTY3JlZW5XaW5kb3dDb250cm9sbGVyIGluaXRXaXRoV2luZG93OndlYlZpZXc6cGFnZTpdKToK
KyAgICAgICAgKiBVSVByb2Nlc3MvbWFjL1dLSW1tZWRpYXRlQWN0aW9uQ29udHJvbGxlci5oOgor
ICAgICAgICAqIFVJUHJvY2Vzcy9tYWMvV0tJbW1lZGlhdGVBY3Rpb25Db250cm9sbGVyLm1tOgor
ICAgICAgICAoLVtXS0ltbWVkaWF0ZUFjdGlvbkNvbnRyb2xsZXIgaW5pdFdpdGhQYWdlOnZpZXc6
dmlld0ltcGw6cmVjb2duaXplcjpdKToKKyAgICAgICAgKC1bV0tJbW1lZGlhdGVBY3Rpb25Db250
cm9sbGVyIF9hbmltYXRpb25Db250cm9sbGVyRm9yRGF0YURldGVjdGVkVGV4dF0pOgorICAgICAg
ICAoLVtXS0ltbWVkaWF0ZUFjdGlvbkNvbnRyb2xsZXIgX2FuaW1hdGlvbkNvbnRyb2xsZXJGb3JE
YXRhRGV0ZWN0ZWRMaW5rXSk6CisgICAgICAgICogVUlQcm9jZXNzL21hYy9XS0luc3BlY3RvclZp
ZXdDb250cm9sbGVyLmg6CisgICAgICAgICogVUlQcm9jZXNzL21hYy9XS0luc3BlY3RvclZpZXdD
b250cm9sbGVyLm1tOgorICAgICAgICAoLVtXS0luc3BlY3RvclZpZXdDb250cm9sbGVyIGluaXRX
aXRoSW5zcGVjdGVkUGFnZTpdKToKKyAgICAgICAgKiBVSVByb2Nlc3MvbWFjL1dLVGV4dEZpbmRl
ckNsaWVudC5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9tYWMvV0tUZXh0RmluZGVyQ2xpZW50Lm1t
OgorICAgICAgICAoLVtXS1RleHRGaW5kZXJDbGllbnQgaW5pdFdpdGhQYWdlOnZpZXc6dXNlUGxh
dGZvcm1GaW5kVUk6XSk6CisgICAgICAgICogVUlQcm9jZXNzL21hYy9XS1ZpZXdMYXlvdXRTdHJh
dGVneS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9tYWMvV0tWaWV3TGF5b3V0U3RyYXRlZ3kubW06
CisgICAgICAgICgrW1dLVmlld0xheW91dFN0cmF0ZWd5IGxheW91dFN0cmF0ZWd5V2l0aFBhZ2U6
dmlldzp2aWV3SW1wbDptb2RlOl0pOgorICAgICAgICAoLVtXS1ZpZXdMYXlvdXRTdHJhdGVneSBp
bml0V2l0aFBhZ2U6dmlldzp2aWV3SW1wbDptb2RlOl0pOgorICAgICAgICAoLVtXS1ZpZXdWaWV3
U2l6ZUxheW91dFN0cmF0ZWd5IGluaXRXaXRoUGFnZTp2aWV3OnZpZXdJbXBsOm1vZGU6XSk6Cisg
ICAgICAgICgtW1dLVmlld0ZpeGVkU2l6ZUxheW91dFN0cmF0ZWd5IGluaXRXaXRoUGFnZTp2aWV3
OnZpZXdJbXBsOm1vZGU6XSk6CisgICAgICAgICgtW1dLVmlld0R5bmFtaWNTaXplQ29tcHV0ZWRG
cm9tVmlld1NjYWxlTGF5b3V0U3RyYXRlZ3kgaW5pdFdpdGhQYWdlOnZpZXc6dmlld0ltcGw6bW9k
ZTpdKToKKyAgICAgICAgKC1bV0tWaWV3RHluYW1pY1NpemVDb21wdXRlZEZyb21NaW5pbXVtRG9j
dW1lbnRTaXplTGF5b3V0U3RyYXRlZ3kgaW5pdFdpdGhQYWdlOnZpZXc6dmlld0ltcGw6bW9kZTpd
KToKKyAgICAgICAgKiBXZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9tYWMvV0tET01Eb2N1
bWVudC5tbToKKyAgICAgICAgKC1bV0tET01Eb2N1bWVudFBhcnNlcllpZWxkVG9rZW4gaW5pdFdp
dGhEb2N1bWVudDpdKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1dLQWNjZXNz
aWJpbGl0eVdlYlBhZ2VPYmplY3RCYXNlLmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdl
L21hYy9XS0FjY2Vzc2liaWxpdHlXZWJQYWdlT2JqZWN0QmFzZS5tbToKKyAgICAgICAgKC1bV0tB
Y2Nlc3NpYmlsaXR5V2ViUGFnZU9iamVjdEJhc2UgYXhPYmplY3RDYWNoZV0pOgorICAgICAgICAo
LVtXS0FjY2Vzc2liaWxpdHlXZWJQYWdlT2JqZWN0QmFzZSBzZXRXZWJQYWdlOl0pOgorCiAyMDIw
LTAxLTA4ICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CiAKICAgICAgICAgVW5yZXZp
ZXdlZCwgZml4IHNvbWUgSU9TX0ZBTUlMWSBidWlsZHMgYWZ0ZXIgcjI1NDIxMC4KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXRMZWdh
Y3kvbWFjL0NoYW5nZUxvZwppbmRleCA5YTYyNzBhNDgwZDEwMmVlZWExMGMyMGYyMTNjNGVkOWM1
N2E0YTk1Li44Y2FiMmMwYTkxODhmYmQ3YmRmNTAxODdhNzg5MzA0MmE3YjFlMmRhIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktp
dExlZ2FjeS9tYWMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTEzIEBACisyMDIwLTAxLTA4ICBZdXN1
a2UgU3V6dWtpICA8eXN1enVraUBhcHBsZS5jb20+CisKKyAgICAgICAgUmVkdWNlIGJpbmFyeSBz
aXplIGJ5IHB1cmdpbmcgQysrIHR5cGUgaW5mb3JtYXRpb24gaW4gT2JqZWN0aXZlLUMgZmllbGRz
IGFuZCBwYXJhbWV0ZXJzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0yMDU5MDUKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICAqIFBsdWdpbnMvV2ViQmFzZU5ldHNjYXBlUGx1Z2luVmlldy5oOgorICAgICAgICAq
IFBsdWdpbnMvV2ViQmFzZU5ldHNjYXBlUGx1Z2luVmlldy5tbToKKyAgICAgICAgKC1bV2ViQmFz
ZU5ldHNjYXBlUGx1Z2luVmlldyBlbGVtZW50XSk6CisgICAgICAgICogV2ViQ29yZVN1cHBvcnQv
V2ViRWRpdG9yQ2xpZW50Lm1tOgorICAgICAgICAoX1dlYkNyZWF0ZUZyYWdtZW50KToKKyAgICAg
ICAgKiBXZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5tbToKKyAgICAgICAgKFdl
YkZyYW1lTG9hZGVyQ2xpZW50Ojp0cmFuc2l0aW9uVG9Db21taXR0ZWRGb3JOZXdQYWdlKToKKyAg
ICAgICAgKC1bV2ViRnJhbWVQb2xpY3lMaXN0ZW5lciBpbml0V2l0aEZyYW1lOmlkZW50aWZpZXI6
cG9saWN5RnVuY3Rpb246ZGVmYXVsdFBvbGljeTpdKToKKyAgICAgICAgKC1bV2ViRnJhbWVQb2xp
Y3lMaXN0ZW5lciBpbml0V2l0aEZyYW1lOmlkZW50aWZpZXI6cG9saWN5RnVuY3Rpb246ZGVmYXVs
dFBvbGljeTphcHBMaW5rVVJMOl0pOgorICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L1dlYkdlb2xv
Y2F0aW9uQ2xpZW50Lm1tOgorICAgICAgICAoLVtXZWJHZW9sb2NhdGlvblBvbGljeUxpc3RlbmVy
IGluaXRXaXRoR2VvbG9jYXRpb246XSk6CisgICAgICAgICgtW1dlYkdlb2xvY2F0aW9uUG9saWN5
TGlzdGVuZXIgaW5pdFdpdGhHZW9sb2NhdGlvbjpmb3JXZWJWaWV3Ol0pOgorICAgICAgICAoLVtX
ZWJHZW9sb2NhdGlvblByb3ZpZGVySW5pdGlhbGl6YXRpb25MaXN0ZW5lciBpbml0V2l0aEdlb2xv
Y2F0aW9uOl0pOgorICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L1dlYkluc3BlY3RvckNsaWVudC5t
bToKKyAgICAgICAgKFdlYkluc3BlY3RvckZyb250ZW5kQ2xpZW50OjpyZXNldFN0YXRlKToKKyAg
ICAgICAgKC1bV2ViSW5zcGVjdG9yV2luZG93Q29udHJvbGxlciBzZXRGcm9udGVuZENsaWVudDpd
KToKKyAgICAgICAgKC1bV2ViSW5zcGVjdG9yV2luZG93Q29udHJvbGxlciBzZXRJbnNwZWN0b3JD
bGllbnQ6XSk6CisgICAgICAgICgtW1dlYkluc3BlY3RvcldpbmRvd0NvbnRyb2xsZXIgaW5zcGVj
dG9yQ2xpZW50XSk6CisgICAgICAgICogV2ViSW5zcGVjdG9yL1dlYkluc3BlY3RvckZyb250ZW5k
Lmg6CisgICAgICAgICogV2ViSW5zcGVjdG9yL1dlYkluc3BlY3RvckZyb250ZW5kLm1tOgorICAg
ICAgICAqIFdlYkluc3BlY3Rvci9XZWJOb2RlSGlnaGxpZ2h0Lmg6CisgICAgICAgICogV2ViSW5z
cGVjdG9yL1dlYk5vZGVIaWdobGlnaHQubW06CisgICAgICAgICgtW1dlYk5vZGVIaWdobGlnaHQg
aW5pdFdpdGhUYXJnZXRWaWV3Omluc3BlY3RvckNvbnRyb2xsZXI6XSk6CisgICAgICAgICogV2Vi
Vmlldy9XZWJBcmNoaXZlLm1tOgorICAgICAgICAoLVtXZWJBcmNoaXZlIGluaXRXaXRoTWFpblJl
c291cmNlOnN1YnJlc291cmNlczpzdWJmcmFtZUFyY2hpdmVzOl0pOgorICAgICAgICAqIFdlYlZp
ZXcvV2ViRGF0YVNvdXJjZS5tbToKKyAgICAgICAgKC1bV2ViRGF0YVNvdXJjZSBfZG9jdW1lbnRM
b2FkZXJdKToKKyAgICAgICAgKC1bV2ViRGF0YVNvdXJjZSBhZGRTdWJyZXNvdXJjZTpdKToKKyAg
ICAgICAgKiBXZWJWaWV3L1dlYkRhdGFTb3VyY2VJbnRlcm5hbC5oOgorICAgICAgICAqIFdlYlZp
ZXcvV2ViRnJhbWUubW06CisgICAgICAgIChnZXRXZWJWaWV3KToKKyAgICAgICAgKC1bV2ViRnJh
bWUgX3VwZGF0ZUJhY2tncm91bmRBbmRVcGRhdGVzV2hpbGVPZmZzY3JlZW5dKToKKyAgICAgICAg
KC1bV2ViRnJhbWUgX3VubWFya0FsbEJhZEdyYW1tYXJdKToKKyAgICAgICAgKC1bV2ViRnJhbWUg
X3VubWFya0FsbE1pc3NwZWxsaW5nc10pOgorICAgICAgICAoLVtXZWJGcmFtZSBfaGFzU2VsZWN0
aW9uXSk6CisgICAgICAgICgtW1dlYkZyYW1lIF9hdE1vc3RPbmVGcmFtZUhhc1NlbGVjdGlvbl0p
OgorICAgICAgICAoLVtXZWJGcmFtZSBfZmluZEZyYW1lV2l0aFNlbGVjdGlvbl0pOgorICAgICAg
ICAoLVtXZWJGcmFtZSBfc2Nyb2xsRE9NUmFuZ2VUb1Zpc2libGU6d2l0aEluc2V0Ol0pOgorICAg
ICAgICAoLVtXZWJGcmFtZSBfZG9jdW1lbnRGcmFnbWVudFdpdGhNYXJrdXBTdHJpbmc6YmFzZVVS
TFN0cmluZzpdKToKKyAgICAgICAgKC1bV2ViRnJhbWUgX2RvY3VtZW50RnJhZ21lbnRXaXRoTm9k
ZXNBc1BhcmFncmFwaHM6XSk6CisgICAgICAgICgtW1dlYkZyYW1lIF9jYW5Qcm92aWRlRG9jdW1l
bnRTb3VyY2VdKToKKyAgICAgICAgKC1bV2ViRnJhbWUgX2lzRGVzY2VuZGFudE9mRnJhbWU6XSk6
CisgICAgICAgICgtW1dlYkZyYW1lIF9yZWN1cnNpdmVfcmVzdW1lTnVsbEV2ZW50c0ZvckFsbE5l
dHNjYXBlUGx1Z2luc10pOgorICAgICAgICAoLVtXZWJGcmFtZSBfcmVjdXJzaXZlX3BhdXNlTnVs
bEV2ZW50c0ZvckFsbE5ldHNjYXBlUGx1Z2luc10pOgorICAgICAgICAoLVtXZWJGcmFtZSBzZXRU
aW1lb3V0c1BhdXNlZDpdKToKKyAgICAgICAgKC1bV2ViRnJhbWUgcHJlcGFyZUZvclBhdXNlXSk6
CisgICAgICAgICgtW1dlYkZyYW1lIHJlc3VtZUZyb21QYXVzZV0pOgorICAgICAgICAoLVtXZWJG
cmFtZSByZXNldFRleHRBdXRvc2l6aW5nQmVmb3JlTGF5b3V0XSk6CisgICAgICAgICgtW1dlYkZy
YW1lIF9nbG9iYWxDb250ZXh0Rm9yU2NyaXB0V29ybGQ6XSk6CisgICAgICAgICgtW1dlYkZyYW1l
IF9sYXllclRyZWVBc1RleHRdKToKKyAgICAgICAgKC1bV2ViRnJhbWUgX2NsZWFyT3BlbmVyXSk6
CisgICAgICAgICgtW1dlYkZyYW1lIGZvY3VzZWROb2RlSGFzQ29udGVudF0pOgorICAgICAgICAo
LVtXZWJGcmFtZSBfZGlzcGF0Y2hEaWRSZWNlaXZlVGl0bGU6XSk6CisgICAgICAgICgtW1dlYkZy
YW1lIGpzV3JhcHBlckZvck5vZGU6aW5TY3JpcHRXb3JsZDpdKToKKyAgICAgICAgKC1bV2ViRnJh
bWUgZWxlbWVudEF0UG9pbnQ6XSk6CisgICAgICAgICgtW1dlYkZyYW1lIG5hbWVdKToKKyAgICAg
ICAgKC1bV2ViRnJhbWUgRE9NRG9jdW1lbnRdKToKKyAgICAgICAgKC1bV2ViRnJhbWUgZnJhbWVF
bGVtZW50XSk6CisgICAgICAgICgtW1dlYkZyYW1lIHByb3Zpc2lvbmFsRGF0YVNvdXJjZV0pOgor
ICAgICAgICAoLVtXZWJGcmFtZSBkYXRhU291cmNlXSk6CisgICAgICAgICgtW1dlYkZyYW1lIGxv
YWRSZXF1ZXN0Ol0pOgorICAgICAgICAoLVtXZWJGcmFtZSBmaW5kRnJhbWVOYW1lZDpdKToKKyAg
ICAgICAgKC1bV2ViRnJhbWUgcGFyZW50RnJhbWVdKToKKyAgICAgICAgKC1bV2ViRnJhbWUgY2hp
bGRGcmFtZXNdKToKKyAgICAgICAgKC1bV2ViRnJhbWUgd2luZG93T2JqZWN0XSk6CisgICAgICAg
ICgtW1dlYkZyYW1lIGdsb2JhbENvbnRleHRdKToKKyAgICAgICAgKC1bV2ViRnJhbWUgamF2YVNj
cmlwdENvbnRleHRdKToKKyAgICAgICAgKiBXZWJWaWV3L1dlYkZyYW1lSW50ZXJuYWwuaDoKKyAg
ICAgICAgKiBXZWJWaWV3L1dlYkZyYW1lVmlldy5tbToKKyAgICAgICAgKC1bV2ViRnJhbWVWaWV3
IF93ZWJfZnJhbWVdKToKKyAgICAgICAgKC1bV2ViRnJhbWVWaWV3IF9mcmFtZVNpemVDaGFuZ2Vk
XSk6CisgICAgICAgICgtW1dlYkZyYW1lVmlldyBfaXNWZXJ0aWNhbERvY3VtZW50XSk6CisgICAg
ICAgICgtW1dlYkZyYW1lVmlldyBfaXNGbGlwcGVkRG9jdW1lbnRdKToKKyAgICAgICAgKC1bV2Vi
RnJhbWVWaWV3IGtleURvd246a2V5RG93bjpdKToKKyAgICAgICAgKiBXZWJWaWV3L1dlYkZ1bGxT
Y3JlZW5Db250cm9sbGVyLm1tOgorICAgICAgICAoLVtXZWJGdWxsU2NyZWVuQ29udHJvbGxlciBf
ZG9jdW1lbnRdKToKKyAgICAgICAgKiBXZWJWaWV3L1dlYkhUTUxWaWV3Lm1tOgorICAgICAgICAo
LVtXZWJNZW51VGFyZ2V0IG1lbnVDb250cm9sbGVyXSk6CisgICAgICAgICgtW1dlYk1lbnVUYXJn
ZXQgc2V0TWVudUNvbnRyb2xsZXI6XSk6CisgICAgICAgICgtW1dlYkhUTUxWaWV3IG5hbWVzT2ZQ
cm9taXNlZEZpbGVzRHJvcHBlZEF0RGVzdGluYXRpb246XSk6CisgICAgICAgICgtW1dlYkhUTUxW
aWV3IF9pbnRlcnByZXRLZXlFdmVudDpzYXZpbmdDb21tYW5kczpdKToKKyAgICAgICAgKC1bV2Vi
SFRNTFZpZXcgc2V0UHJvbWlzZWREcmFnVElGRkRhdGFTb3VyY2U6XSk6CisgICAgICAgICogV2Vi
Vmlldy9XZWJIVE1MVmlld0ludGVybmFsLmg6CisgICAgICAgICogV2ViVmlldy9XZWJOb3RpZmlj
YXRpb24ubW06CisgICAgICAgICgtW1dlYk5vdGlmaWNhdGlvbiBpbml0V2l0aENvcmVOb3RpZmlj
YXRpb246bm90aWZpY2F0aW9uSUQ6XSk6CisgICAgICAgICogV2ViVmlldy9XZWJOb3RpZmljYXRp
b25JbnRlcm5hbC5oOgorICAgICAgICAqIFdlYlZpZXcvV2ViUmVzb3VyY2UubW06CisgICAgICAg
ICgtW1dlYlJlc291cmNlIF9jb3JlUmVzb3VyY2VdKToKKyAgICAgICAgKiBXZWJWaWV3L1dlYlJl
c291cmNlSW50ZXJuYWwuaDoKKyAgICAgICAgKiBXZWJWaWV3L1dlYlZpZGVvRnVsbHNjcmVlbkNv
bnRyb2xsZXIuaDoKKyAgICAgICAgKiBXZWJWaWV3L1dlYlZpZGVvRnVsbHNjcmVlbkNvbnRyb2xs
ZXIubW06CisgICAgICAgICgtW1dlYlZpZGVvRnVsbHNjcmVlbkNvbnRyb2xsZXIgdmlkZW9FbGVt
ZW50XSk6CisgICAgICAgICgtW1dlYlZpZGVvRnVsbHNjcmVlbkNvbnRyb2xsZXIgc2V0VmlkZW9F
bGVtZW50Ol0pOgorICAgICAgICAqIFdlYlZpZXcvV2ViVmlkZW9GdWxsc2NyZWVuSFVEV2luZG93
Q29udHJvbGxlci5oOgorICAgICAgICAqIFdlYlZpZXcvV2ViVmlldy5tbToKKyAgICAgICAgKC1b
V2ViVmlldyBwYWdlXSk6CisgICAgICAgICgtW1dlYlZpZXcgX2VudGVyVmlkZW9GdWxsc2NyZWVu
Rm9yVmlkZW9FbGVtZW50Om1vZGU6XSk6CisgICAgICAgICgtW1dlYlZpZXcgX3NldFVwUGxheWJh
Y2tDb250cm9sc01hbmFnZXJGb3JNZWRpYUVsZW1lbnQ6XSk6CisgICAgICAgICgtW1dlYlZpZXcg
X3N1cHBvcnRzRnVsbFNjcmVlbkZvckVsZW1lbnQ6d2l0aEtleWJvYXJkOl0pOgorICAgICAgICAo
LVtXZWJWaWV3IF9lbnRlckZ1bGxTY3JlZW5Gb3JFbGVtZW50Ol0pOgorICAgICAgICAoLVtXZWJW
aWV3IF9leGl0RnVsbFNjcmVlbkZvckVsZW1lbnQ6XSk6CisgICAgICAgICogV2ViVmlldy9XZWJW
aWV3SW50ZXJuYWwuaDoKKwogMjAyMC0wMS0wOCAgeW91ZW5uIGZhYmxldCAgPHlvdWVubkBhcHBs
ZS5jb20+CiAKICAgICAgICAgSW1wbGVtZW50IE1lZGlhUmVjb3JkZXIgYmFja2VuZCBpbiBHUFVQ
cm9jZXNzCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTV3JhcHBlck1h
cC5tbSBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvSlNXcmFwcGVyTWFwLm1tCmluZGV4IDI4
YzIzM2VhMTg2OTYxMzVlZDExMzFkOTYwYmFmYjY2OWNhMzM4NmMuLjcyMGJiMWJjMzQ3MTU2YmI0
NjNjNmU4NTMzYTc5Zjc0OTFjNTUzMGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9BUEkvSlNXcmFwcGVyTWFwLm1tCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvSlNX
cmFwcGVyTWFwLm1tCkBAIC0zOTAsNyArMzkwLDcgQEAgc3RhdGljIHZvaWQgY29weVByb3RvdHlw
ZVByb3BlcnRpZXMoSlNDb250ZXh0ICpjb250ZXh0LCBDbGFzcyBvYmpjQ2xhc3MsIFByb3RvY28K
IEBpbnRlcmZhY2UgSlNPYmpDQ2xhc3NJbmZvIDogTlNPYmplY3QgewogICAgIENsYXNzIG1fY2xh
c3M7CiAgICAgYm9vbCBtX2Jsb2NrOwotICAgIEpTQ2xhc3NSZWYgbV9jbGFzc1JlZjsKKyAgICBO
YWtlZFB0cjxPcGFxdWVKU0NsYXNzPiBtX2NsYXNzUmVmOwogICAgIEpTQzo6V2VhazxKU0M6OkpT
T2JqZWN0PiBtX3Byb3RvdHlwZTsKICAgICBKU0M6OldlYWs8SlNDOjpKU09iamVjdD4gbV9jb25z
dHJ1Y3RvcjsKICAgICBKU0M6OldlYWs8SlNDOjpTdHJ1Y3R1cmU+IG1fc3RydWN0dXJlOwpAQCAt
NDI0LDcgKzQyNCw3IEBAIC0gKGluc3RhbmNldHlwZSlpbml0Rm9yQ2xhc3M6KENsYXNzKWNscwog
CiAtICh2b2lkKWRlYWxsb2MKIHsKLSAgICBKU0NsYXNzUmVsZWFzZShtX2NsYXNzUmVmKTsKKyAg
ICBKU0NsYXNzUmVsZWFzZShtX2NsYXNzUmVmLmdldCgpKTsKICAgICBbc3VwZXIgZGVhbGxvY107
CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvV1RGLnhjb2RlcHJvai9wcm9qZWN0LnBieHBy
b2ogYi9Tb3VyY2UvV1RGL1dURi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IGQwMDQw
Yzk3M2IzYWUyMTFmZWE0YWNhN2I0MGRmMTJmOTQwZjA0MGYuLmE2M2RiZGNiMzVjMzdlOTliYjQ1
MWJkODYwMDYzZjNmM2Y3OTgxZWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvV1RGLnhjb2RlcHJv
ai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dURi9XVEYueGNvZGVwcm9qL3Byb2plY3Qu
cGJ4cHJvagpAQCAtNjg5LDYgKzY4OSw3IEBACiAJCUUzMTQ5QTNBMjI4QkRDQUIwMEJGQTZDNyAv
KiBDb25jdXJyZW50QnVmZmVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0
aCA9IENvbmN1cnJlbnRCdWZmZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlF
MzFCREUyODIyRTkxM0NDMDAyOUIxMDUgLyogTWFjaFZNU1BJLmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IE1hY2hWTVNQSS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQlFMzIwMEFCNDFFOUE1MzZEMDAzQjU5RDIgLyogUGxhdGZvcm1SZWdpc3RlcnMuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUGxhdGZvcm1SZWdpc3RlcnMuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRTMyQTIwNzMyM0M1OTAyRDAwMzRBMDkyIC8qIE5ha2VkUmVm
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE5ha2VkUmVmLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCUUzM0Q1Rjg3MUZCRUQ2NjcwMEJGNjI1RSAvKiBSZWN1cnNh
YmxlTGFtYmRhLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJlY3Vyc2FibGVM
YW1iZGEuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRTM0Q0QwRDAyMjgxMEEwMjAw
MjBEMjk5IC8qIFBhY2tlZC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBQYWNrZWQuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJRTM2MEM3NjQyMTI3Qjg1QjAwQzkwRjBFIC8qIFVuYWxpZ25lZEFj
Y2Vzcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBVbmFsaWduZWRBY2Nlc3Mu
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTEwODMsNiArMTA4NCw3IEBACiAJCQkJ
MEY2NkIyODIxREM5N0JBQjAwNEExRDNGIC8qIE1vbm90b25pY1RpbWUuY3BwICovLAogCQkJCTBG
NjZCMjgzMURDOTdCQUIwMDRBMUQzRiAvKiBNb25vdG9uaWNUaW1lLmggKi8sCiAJCQkJRkU4MjI1
MzAxQjJBMUU1QjAwQkE2OEZEIC8qIE5ha2VkUHRyLmggKi8sCisJCQkJRTMyQTIwNzMyM0M1OTAy
RDAwMzRBMDkyIC8qIE5ha2VkUmVmLmggKi8sCiAJCQkJMEY1QkYxNjUxRjIzMTc4MzAwMjlEOTFE
IC8qIE5hdHVyYWxMb29wcy5oICovLAogCQkJCTFBM0Y2QkU2MTc0QURBMjEwMEIyRUVBNyAvKiBO
ZXZlckRlc3Ryb3llZC5oICovLAogCQkJCTBGMEQ4NUIzMTcyMzRDQjEwMDMzODIxMCAvKiBOb0xv
Y2suaCAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL0NNYWtlTGlzdHMudHh0IGIvU291
cmNlL1dURi93dGYvQ01ha2VMaXN0cy50eHQKaW5kZXggNmE4MjY4MmFiZDI4ZGNjNmJjYmVmMzYw
ZTk2MzRkNWM0Yzg0MDMzMC4uYWNiYTQwMGY2MGUyMDk2MDNhZmU3MDdhMzZhYjhhNDY3MGFjNTA4
OSAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvQ01ha2VMaXN0cy50eHQKKysrIGIvU291cmNl
L1dURi93dGYvQ01ha2VMaXN0cy50eHQKQEAgLTEzOSw2ICsxMzksNyBAQCBzZXQoV1RGX1BVQkxJ
Q19IRUFERVJTCiAgICAgTWV0YUFsbG9jYXRvclB0ci5oCiAgICAgTW9ub3RvbmljVGltZS5oCiAg
ICAgTmFrZWRQdHIuaAorICAgIE5ha2VkUmVmLmgKICAgICBOYXR1cmFsTG9vcHMuaAogICAgIE5l
dmVyRGVzdHJveWVkLmgKICAgICBOb0xvY2suaApkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYv
TmFrZWRSZWYuaCBiL1NvdXJjZS9XVEYvd3RmL05ha2VkUmVmLmgKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOTUwNTRk
MzRhZDAzZmNjNzcyZTUxNGQ2MjFhZjJmMTMxN2M2OTBkZgotLS0gL2Rldi9udWxsCisrKyBiL1Nv
dXJjZS9XVEYvd3RmL05ha2VkUmVmLmgKQEAgLTAsMCArMSwxMjEgQEAKKy8qCisgKiBDb3B5cmln
aHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9m
IHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4K
KyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFu
ZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoK
KyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5E
IEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1F
RC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBM
SUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICog
RVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNF
UzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJV
UFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFks
IFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNM
VURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0Yg
VEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2luY2x1ZGUg
PHd0Zi9EdW1iUHRyVHJhaXRzLmg+CisjaW5jbHVkZSA8d3RmL0Zhc3RNYWxsb2MuaD4KKworbmFt
ZXNwYWNlIFdURiB7CisKKy8vIFRoZSBwdXJwb3NlIG9mIHRoaXMgY2xhc3MgaXMgdG8gZW5zdXJl
IHRoYXQgdGhlIHdyYXBwZWQgcG9pbnRlciB3aWxsIG5ldmVyIGJlCisvLyB1c2VkIHVuaW5pdGlh
bGl6ZWQuCisKK3RlbXBsYXRlIDx0eXBlbmFtZSBUPiBjbGFzcyBOYWtlZFJlZiB7CisgICAgV1RG
X01BS0VfRkFTVF9BTExPQ0FURUQ7CitwdWJsaWM6CisgICAgQUxXQVlTX0lOTElORSBOYWtlZFJl
ZihUJiByZWYpIDogbV9wdHIoJnJlZikgeyB9CisgICAgQUxXQVlTX0lOTElORSBOYWtlZFJlZihj
b25zdCBOYWtlZFJlZiYpID0gZGVsZXRlOworICAgIHRlbXBsYXRlPHR5cGVuYW1lIFU+IE5ha2Vk
UmVmKGNvbnN0IE5ha2VkUmVmPFU+JikgPSBkZWxldGU7CisKKyAgICBBTFdBWVNfSU5MSU5FIE5h
a2VkUmVmKE5ha2VkUmVmJiYgb3RoZXIpCisgICAgICAgIDogbV9wdHIoJm90aGVyLmxlYWtSZWYo
KSkKKyAgICB7CisgICAgICAgIEFTU0VSVChtX3B0cik7CisgICAgfQorCisgICAgdGVtcGxhdGU8
dHlwZW5hbWUgVT4KKyAgICBOYWtlZFJlZihOYWtlZFJlZjxVPiYmIG90aGVyKQorICAgICAgICA6
IG1fcHRyKCZvdGhlci5sZWFrUmVmKCkpCisgICAgeworICAgICAgICBBU1NFUlQobV9wdHIpOwor
ICAgIH0KKworICAgIEFMV0FZU19JTkxJTkUgVCogb3BlcmF0b3ItPigpIGNvbnN0IHsgQVNTRVJU
KG1fcHRyKTsgcmV0dXJuIG1fcHRyOyB9CisgICAgVCogcHRyKCkgY29uc3QgUkVUVVJOU19OT05O
VUxMIHsgQVNTRVJUKG1fcHRyKTsgcmV0dXJuIG1fcHRyOyB9CisgICAgVCYgZ2V0KCkgY29uc3Qg
eyByZXR1cm4gKm1fcHRyOyB9CisgICAgb3BlcmF0b3IgVCYoKSBjb25zdCB7IEFTU0VSVChtX3B0
cik7IHJldHVybiAqbV9wdHI7IH0KKyAgICBib29sIG9wZXJhdG9yISgpIGNvbnN0IHsgQVNTRVJU
KG1fcHRyKTsgcmV0dXJuICEqbV9wdHI7IH0KKworICAgIE5ha2VkUmVmIGNvcHlSZWYoKSAmJiA9
IGRlbGV0ZTsKKyAgICBOYWtlZFJlZiBjb3B5UmVmKCkgY29uc3QgJiBXQVJOX1VOVVNFRF9SRVRV
Uk4geyByZXR1cm4gTmFrZWRSZWYoKm1fcHRyKTsgfQorCisgICAgTmFrZWRSZWYmIG9wZXJhdG9y
PShUJik7CisgICAgTmFrZWRSZWYmIG9wZXJhdG9yPShOYWtlZFJlZiYmKTsKKyAgICB0ZW1wbGF0
ZTx0eXBlbmFtZSBVPiBOYWtlZFJlZiYgb3BlcmF0b3I9KE5ha2VkUmVmPFU+JiYpOworCisgICAg
Ly8gVXNlIGNvcHlSZWYoKSBhbmQgdGhlIG1vdmUgYXNzaWdubWVudCBvcGVyYXRvcnMgaW5zdGVh
ZC4KKyAgICBOYWtlZFJlZiYgb3BlcmF0b3I9KGNvbnN0IE5ha2VkUmVmJikgPSBkZWxldGU7Cisg
ICAgdGVtcGxhdGU8dHlwZW5hbWUgWD4gTmFrZWRSZWYmIG9wZXJhdG9yPShjb25zdCBOYWtlZFJl
ZjxYPiYpID0gZGVsZXRlOworCisgICAgdGVtcGxhdGU8dHlwZW5hbWUgVT4gdm9pZCBzd2FwKE5h
a2VkUmVmPFU+Jik7CisKKyAgICBUJiBsZWFrUmVmKCkgV0FSTl9VTlVTRURfUkVUVVJOCisgICAg
eworICAgICAgICBBU1NFUlQobV9wdHIpOworICAgICAgICBUJiByZXN1bHQgPSAqRHVtYlB0clRy
YWl0czxUPjo6ZXhjaGFuZ2UobV9wdHIsIG51bGxwdHIpOworICAgICAgICByZXR1cm4gcmVzdWx0
OworICAgIH0KKworcHJpdmF0ZToKKyAgICBUKiBtX3B0cjsKK307CisKK3RlbXBsYXRlPHR5cGVu
YW1lIFQ+IGlubGluZSBOYWtlZFJlZjxUPiYgTmFrZWRSZWY8VD46Om9wZXJhdG9yPShOYWtlZFJl
ZiYmIHJlZmVyZW5jZSkKK3sKKyAgICBOYWtlZFJlZiBtb3ZlZFJlZmVyZW5jZSA9IFdURk1vdmUo
cmVmZXJlbmNlKTsKKyAgICBzd2FwKG1vdmVkUmVmZXJlbmNlKTsKKyAgICByZXR1cm4gKnRoaXM7
Cit9CisKK3RlbXBsYXRlPHR5cGVuYW1lIFQ+IGlubGluZSBOYWtlZFJlZjxUPiYgTmFrZWRSZWY8
VD46Om9wZXJhdG9yPShUJiByZWYpCit7CisgICAgTmFrZWRSZWYgY29waWVkUmVmZXJlbmNlID0g
cmVmOworICAgIHN3YXAoY29waWVkUmVmZXJlbmNlKTsKKyAgICByZXR1cm4gKnRoaXM7Cit9CisK
K3RlbXBsYXRlPHR5cGVuYW1lIFQ+IHRlbXBsYXRlPHR5cGVuYW1lIFU+IGlubGluZSBOYWtlZFJl
ZjxUPiYgTmFrZWRSZWY8VD46Om9wZXJhdG9yPShOYWtlZFJlZjxVPiYmIG90aGVyKQoreworICAg
IE5ha2VkUmVmIHJlZiA9IFdURk1vdmUob3RoZXIpOworICAgIHN3YXAocmVmKTsKKyAgICByZXR1
cm4gKnRoaXM7Cit9CisKK3RlbXBsYXRlPGNsYXNzIFQ+Cit0ZW1wbGF0ZTxjbGFzcyBVPgoraW5s
aW5lIHZvaWQgTmFrZWRSZWY8VD46OnN3YXAoTmFrZWRSZWY8VT4mIG90aGVyKQoreworICAgIHN0
ZDo6c3dhcChtX3B0ciwgb3RoZXIubV9wdHIpOworfQorCit0ZW1wbGF0ZTxjbGFzcyBULCBjbGFz
cyBVPiBpbmxpbmUgdm9pZCBzd2FwKE5ha2VkUmVmPFQ+JiBhLCBOYWtlZFJlZjxVPiYgYikKK3sK
KyAgICBhLnN3YXAoYik7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdURgorCit1c2luZyBXVEY6Ok5h
a2VkUmVmOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9tYWMvV2ViQ29yZUZyYW1l
Vmlldy5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9tYWMvV2ViQ29yZUZyYW1lVmlldy5oCmluZGV4
IDI4NGUyYTVkNmY0ZGU3NDQ1MjdiYTkzOTdhNGZjN2VjMzRlMjdhNGQuLmUwZjlmMTRmNzg0NTY3
ODY4ODI1NTc3YTYzOTBkNTBiMzFkZjg1MzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bh
Z2UvbWFjL1dlYkNvcmVGcmFtZVZpZXcuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL21hYy9X
ZWJDb3JlRnJhbWVWaWV3LmgKQEAgLTI1LDYgKzI1LDcgQEAKIAogI2ltcG9ydCAiU2Nyb2xsVHlw
ZXMuaCIKICNpbXBvcnQgPHd0Zi9QbGF0Zm9ybS5oPgorI2ltcG9ydCA8d3RmL05ha2VkUHRyLmg+
CiAKICNpZiBQTEFURk9STShJT1NfRkFNSUxZKQogI2ltcG9ydCAiV0FLQXBwS2l0U3R1YnMuaCIK
QEAgLTQ0LDUgKzQ1LDUgQEAgY2xhc3MgRnJhbWU7CiBAZW5kCiAKIEBwcm90b2NvbCBXZWJDb3Jl
RnJhbWVWaWV3Ci0tIChXZWJDb3JlOjpGcmFtZSopX3dlYl9mcmFtZTsKKy0gKE5ha2VkUHRyPFdl
YkNvcmU6OkZyYW1lPilfd2ViX2ZyYW1lOwogQGVuZApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvV2ViR0xMYXllci5oIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvV2ViR0xMYXllci5oCmluZGV4IGY3Njc5MDk3NDdmZWZm
NDg3MTRiMWJhZDA5ZjEzMmJkZWI4YmY2NWUuLjhiNTY2NjZhMWJjODUwM2YwMTI2Mzg4MTEwMmRl
NTE3MDFlNTBkMzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2NvY29hL1dlYkdMTGF5ZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9jb2NvYS9XZWJHTExheWVyLmgKQEAgLTI4LDYgKzI4LDcgQEAKICNpbXBvcnQgIklPU3VyZmFj
ZS5oIgogI2ltcG9ydCAiSW50U2l6ZS5oIgogI2ltcG9ydCA8UXVhcnR6Q29yZS9RdWFydHpDb3Jl
Lmg+CisjaW1wb3J0IDx3dGYvTmFrZWRQdHIuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogY2xh
c3MgR3JhcGhpY3NMYXllcjsKQEAgLTQ2LDcgKzQ3LDcgQEAgQUxMT1dfREVQUkVDQVRFRF9ERUNM
QVJBVElPTlNfQkVHSU4KICNlcnJvciBVbnN1cHBvcnRlZCBwbGF0Zm9ybQogI2VuZGlmCiB7Ci0g
ICAgV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0R0xPcGVuR0wqIF9jb250ZXh0OworICAgIE5ha2Vk
UHRyPFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dEdMT3BlbkdMPiBfY29udGV4dDsKICAgICBmbG9h
dCBfZGV2aWNlUGl4ZWxSYXRpbzsKICNpZiBIQVZFKElPU1VSRkFDRSkgJiYgKFVTRShPUEVOR0wp
IHx8IFVTRShBTkdMRSkpCiAgICAgc3RkOjp1bmlxdWVfcHRyPFdlYkNvcmU6OklPU3VyZmFjZT4g
X2NvbnRlbnRzQnVmZmVyOwpAQCAtNjUsOSArNjYsOSBAQCBBTExPV19ERVBSRUNBVEVEX0RFQ0xB
UkFUSU9OU19CRUdJTgogI2VuZGlmCiB9CiAKLUBwcm9wZXJ0eSAobm9uYXRvbWljKSBXZWJDb3Jl
OjpHcmFwaGljc0NvbnRleHRHTE9wZW5HTCogY29udGV4dDsKK0Bwcm9wZXJ0eSAobm9uYXRvbWlj
KSBOYWtlZFB0cjxXZWJDb3JlOjpHcmFwaGljc0NvbnRleHRHTE9wZW5HTD4gY29udGV4dDsKIAot
LSAoaWQpaW5pdFdpdGhHcmFwaGljc0NvbnRleHRHTDooV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0
R0xPcGVuR0wqKWNvbnRleHQ7CistIChpZClpbml0V2l0aEdyYXBoaWNzQ29udGV4dEdMOihOYWtl
ZFB0cjxXZWJDb3JlOjpHcmFwaGljc0NvbnRleHRHTE9wZW5HTD4pY29udGV4dDsKIAogLSAoQ0dJ
bWFnZVJlZiljb3B5SW1hZ2VTbmFwc2hvdFdpdGhDb2xvclNwYWNlOihDR0NvbG9yU3BhY2VSZWYp
Y29sb3JTcGFjZTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvY29jb2EvV2ViR0xMYXllci5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2NvY29hL1dlYkdMTGF5ZXIubW0KaW5kZXggMTQ5OGRmMDgyODdkMmEzYjAwMjk5ZmU4ZjA4OTkz
ZWU1M2E3NGZiMy4uNjhiNTI1ODAyMGI1MDRiYWU2NmJmYTE4MTQ1NjJlMzBhZjg0ZDAzNSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvV2ViR0xMYXll
ci5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9XZWJHTExh
eWVyLm1tCkBAIC02MSw3ICs2MSw3IEBAIEBpbXBsZW1lbnRhdGlvbiBXZWJHTExheWVyCiAKIEBz
eW50aGVzaXplIGNvbnRleHQ9X2NvbnRleHQ7CiAKLS0oaWQpaW5pdFdpdGhHcmFwaGljc0NvbnRl
eHRHTDooV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0R0xPcGVuR0wqKWNvbnRleHQKKy0oaWQpaW5p
dFdpdGhHcmFwaGljc0NvbnRleHRHTDooTmFrZWRQdHI8V2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0
R0xPcGVuR0w+KWNvbnRleHQKIHsKICAgICBfY29udGV4dCA9IGNvbnRleHQ7CiAgICAgc2VsZiA9
IFtzdXBlciBpbml0XTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9X
ZWJWaWRlb0Z1bGxzY3JlZW5Db250cm9sbGVyQVZLaXQuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2lvcy9XZWJWaWRlb0Z1bGxzY3JlZW5Db250cm9sbGVyQVZLaXQuaAppbmRleCA1NDA5ZDUw
MjAzZTAwMmIxMTBkOGZjNWQ5ZGFhNGQzOWI2YzRiYmVjLi5hMDdlZDFkNjIwNjNlODYyOWUzYjA1
ZDEwZDkxY2RjN2Y1MmZhNzVkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9p
b3MvV2ViVmlkZW9GdWxsc2NyZWVuQ29udHJvbGxlckFWS2l0LmgKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vaW9zL1dlYlZpZGVvRnVsbHNjcmVlbkNvbnRyb2xsZXJBVktpdC5oCkBAIC0y
OSw2ICsyOSw3IEBACiAjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKIAogI2ltcG9ydCA8V2ViQ29y
ZS9IVE1MTWVkaWFFbGVtZW50RW51bXMuaD4KKyNpbXBvcnQgPHd0Zi9OYWtlZFB0ci5oPgogCiBP
QkpDX0NMQVNTIFVJVmlldzsKIApAQCAtMzcsOCArMzgsOCBAQCBjbGFzcyBIVE1MVmlkZW9FbGVt
ZW50OwogfQogCiBXRUJDT1JFX0VYUE9SVCBAaW50ZXJmYWNlIFdlYlZpZGVvRnVsbHNjcmVlbkNv
bnRyb2xsZXIgOiBOU09iamVjdAotLSAodm9pZClzZXRWaWRlb0VsZW1lbnQ6KFdlYkNvcmU6OkhU
TUxWaWRlb0VsZW1lbnQqKXZpZGVvRWxlbWVudDsKLS0gKFdlYkNvcmU6OkhUTUxWaWRlb0VsZW1l
bnQqKXZpZGVvRWxlbWVudDsKKy0gKHZvaWQpc2V0VmlkZW9FbGVtZW50OihOYWtlZFB0cjxXZWJD
b3JlOjpIVE1MVmlkZW9FbGVtZW50Pil2aWRlb0VsZW1lbnQ7CistIChOYWtlZFB0cjxXZWJDb3Jl
OjpIVE1MVmlkZW9FbGVtZW50Pil2aWRlb0VsZW1lbnQ7CiAtICh2b2lkKWVudGVyRnVsbHNjcmVl
bjooVUlWaWV3ICopdmlldyBtb2RlOihXZWJDb3JlOjpIVE1MTWVkaWFFbGVtZW50RW51bXM6OlZp
ZGVvRnVsbHNjcmVlbk1vZGUpbW9kZTsKIC0gKHZvaWQpZXhpdEZ1bGxzY3JlZW47CiAtICh2b2lk
KXJlcXVlc3RIaWRlQW5kRXhpdEZ1bGxzY3JlZW47CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9pb3MvV2ViVmlkZW9GdWxsc2NyZWVuQ29udHJvbGxlckFWS2l0Lm1tIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL1dlYlZpZGVvRnVsbHNjcmVlbkNvbnRyb2xsZXJBVktp
dC5tbQppbmRleCBmOGEzNDc0NjA2MTNlMWI2NmEwYTcyMzg0YWJmMmZhNDI3Mjc3YjZkLi5lM2U5
ZDlhYWFhMzkxMjBjOTZhNTQ2NjhmNzRiZGM1ZjYxOGIzMzJlIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9pb3MvV2ViVmlkZW9GdWxsc2NyZWVuQ29udHJvbGxlckFWS2l0Lm1t
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9XZWJWaWRlb0Z1bGxzY3JlZW5Db250
cm9sbGVyQVZLaXQubW0KQEAgLTUxLDEyICs1MSwxMiBAQCB1c2luZyBuYW1lc3BhY2UgV2ViQ29y
ZTsKICNpZiAhSEFWRShBVktJVCkKIAogQGltcGxlbWVudGF0aW9uIFdlYlZpZGVvRnVsbHNjcmVl
bkNvbnRyb2xsZXIKLS0gKHZvaWQpc2V0VmlkZW9FbGVtZW50OihXZWJDb3JlOjpIVE1MVmlkZW9F
bGVtZW50Kil2aWRlb0VsZW1lbnQKKy0gKHZvaWQpc2V0VmlkZW9FbGVtZW50OihOYWtlZFB0cjxX
ZWJDb3JlOjpIVE1MVmlkZW9FbGVtZW50Pil2aWRlb0VsZW1lbnQKIHsKICAgICBVTlVTRURfUEFS
QU0odmlkZW9FbGVtZW50KTsKIH0KIAotLSAoV2ViQ29yZTo6SFRNTFZpZGVvRWxlbWVudCopdmlk
ZW9FbGVtZW50CistIChOYWtlZFB0cjxXZWJDb3JlOjpIVE1MVmlkZW9FbGVtZW50Pil2aWRlb0Vs
ZW1lbnQKIHsKICAgICByZXR1cm4gbnVsbHB0cjsKIH0KQEAgLTEwMjMsMTIgKzEwMjMsMTIgQEAg
LSAoaW5zdGFuY2V0eXBlKWluaXQKICAgICByZXR1cm4gc2VsZjsKIH0KIAotLSAodm9pZClzZXRW
aWRlb0VsZW1lbnQ6KEhUTUxWaWRlb0VsZW1lbnQqKXZpZGVvRWxlbWVudAorLSAodm9pZClzZXRW
aWRlb0VsZW1lbnQ6KE5ha2VkUHRyPEhUTUxWaWRlb0VsZW1lbnQ+KXZpZGVvRWxlbWVudAogewog
ICAgIF92aWRlb0VsZW1lbnQgPSB2aWRlb0VsZW1lbnQ7CiB9CiAKLS0gKEhUTUxWaWRlb0VsZW1l
bnQqKXZpZGVvRWxlbWVudAorLSAoTmFrZWRQdHI8SFRNTFZpZGVvRWxlbWVudD4pdmlkZW9FbGVt
ZW50CiB7CiAgICAgcmV0dXJuIF92aWRlb0VsZW1lbnQuZ2V0KCk7CiB9CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvU2Nyb2xsQW5pbWF0b3JNYWMubW0gYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9tYWMvU2Nyb2xsQW5pbWF0b3JNYWMubW0KaW5kZXggZjU5MTc2NzJl
ZWZkZjFmNTIzY2RmNjkyNDZiMjM4NjA0OTRmYjJhMi4uNDA0MjYxY2ZjNGJkODQ5ZGVmNDQ3MTQ1
NzA4ZTE4NDVhZTBmNDZkYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFj
L1Njcm9sbEFuaW1hdG9yTWFjLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9T
Y3JvbGxBbmltYXRvck1hYy5tbQpAQCAtNDAsNiArNDAsNyBAQAogI2luY2x1ZGUgIlNjcm9sbGJh
clRoZW1lTWFjLmgiCiAjaW5jbHVkZSA8cGFsL3NwaS9tYWMvTlNTY3JvbGxlckltcFNQSS5oPgog
I2luY2x1ZGUgPHd0Zi9CbG9ja09iakNFeGNlcHRpb25zLmg+CisjaW5jbHVkZSA8d3RmL05ha2Vk
UHRyLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvVGV4dFN0cmVhbS5oPgogCiBuYW1lc3BhY2UgV2Vi
Q29yZSB7CkBAIC04MSw5ICs4Miw5IEBAIEBlbmQKIAogQGludGVyZmFjZSBXZWJTY3JvbGxBbmlt
YXRpb25IZWxwZXJEZWxlZ2F0ZSA6IE5TT2JqZWN0CiB7Ci0gICAgV2ViQ29yZTo6U2Nyb2xsQW5p
bWF0b3JNYWMqIF9hbmltYXRvcjsKKyAgICBOYWtlZFB0cjxXZWJDb3JlOjpTY3JvbGxBbmltYXRv
ck1hYz4gX2FuaW1hdG9yOwogfQotLSAoaWQpaW5pdFdpdGhTY3JvbGxBbmltYXRvcjooV2ViQ29y
ZTo6U2Nyb2xsQW5pbWF0b3JNYWMqKXNjcm9sbEFuaW1hdG9yOworLSAoaWQpaW5pdFdpdGhTY3Jv
bGxBbmltYXRvcjooTmFrZWRQdHI8V2ViQ29yZTo6U2Nyb2xsQW5pbWF0b3JNYWM+KXNjcm9sbEFu
aW1hdG9yOwogQGVuZAogCiBzdGF0aWMgTlNTaXplIGFicyhOU1NpemUgc2l6ZSkKQEAgLTk4LDcg
Kzk5LDcgQEAgc3RhdGljIE5TU2l6ZSBhYnMoTlNTaXplIHNpemUpCiAKIEBpbXBsZW1lbnRhdGlv
biBXZWJTY3JvbGxBbmltYXRpb25IZWxwZXJEZWxlZ2F0ZQogCi0tIChpZClpbml0V2l0aFNjcm9s
bEFuaW1hdG9yOihXZWJDb3JlOjpTY3JvbGxBbmltYXRvck1hYyopc2Nyb2xsQW5pbWF0b3IKKy0g
KGlkKWluaXRXaXRoU2Nyb2xsQW5pbWF0b3I6KE5ha2VkUHRyPFdlYkNvcmU6OlNjcm9sbEFuaW1h
dG9yTWFjPilzY3JvbGxBbmltYXRvcgogewogICAgIHNlbGYgPSBbc3VwZXIgaW5pdF07CiAgICAg
aWYgKCFzZWxmKQpAQCAtMTEwLDcgKzExMSw3IEBAIC0gKGlkKWluaXRXaXRoU2Nyb2xsQW5pbWF0
b3I6KFdlYkNvcmU6OlNjcm9sbEFuaW1hdG9yTWFjKilzY3JvbGxBbmltYXRvcgogCiAtICh2b2lk
KWludmFsaWRhdGUKIHsKLSAgICBfYW5pbWF0b3IgPSAwOworICAgIF9hbmltYXRvciA9IG51bGxw
dHI7CiB9CiAKIC0gKE5TUmVjdClib3VuZHMKQEAgLTQ3Myw3ICs0NzQsNyBAQCAtICh2b2lkKWNh
bmNlbEFuaW1hdGlvbnMKICAgICBFTkRfQkxPQ0tfT0JKQ19FWENFUFRJT05TOwogfQogCi0tIChT
Y3JvbGxBbmltYXRvck1hYyopc2Nyb2xsQW5pbWF0b3IKKy0gKE5ha2VkUHRyPFNjcm9sbEFuaW1h
dG9yTWFjPilzY3JvbGxBbmltYXRvcgogewogICAgIHJldHVybiAmc3RhdGljX2Nhc3Q8U2Nyb2xs
QW5pbWF0b3JNYWMmPihfc2Nyb2xsYmFyLT5zY3JvbGxhYmxlQXJlYSgpLnNjcm9sbEFuaW1hdG9y
KCkpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9jb2NvYS9O
ZXR3b3JrU2Vzc2lvbkNvY29hLm1tIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9jb2Nv
YS9OZXR3b3JrU2Vzc2lvbkNvY29hLm1tCmluZGV4IDgyZjc5MWM5NWE1MTZhYTIxMGZiN2U0NmRl
MGEzODlmZGY4ZTc1NjQuLjk3N2RiZWQ1OGUzNTg2ZjZmMGZmYzFhYjUyNGE2MTFlYTNlOWUzYTkg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY29jb2EvTmV0d29ya1Nl
c3Npb25Db2NvYS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2NvY29hL05l
dHdvcmtTZXNzaW9uQ29jb2EubW0KQEAgLTUwLDYgKzUwLDcgQEAKICNpbXBvcnQgPHBhbC9zcGkv
Y2YvQ0ZOZXR3b3JrU1BJLmg+CiAjaW1wb3J0IDx3dGYvQmxvY2tQdHIuaD4KICNpbXBvcnQgPHd0
Zi9NYWluVGhyZWFkLmg+CisjaW1wb3J0IDx3dGYvTmFrZWRSZWYuaD4KICNpbXBvcnQgPHd0Zi9O
ZXZlckRlc3Ryb3llZC5oPgogI2ltcG9ydCA8d3RmL09iakNSdW50aW1lRXh0cmFzLmg+CiAjaW1w
b3J0IDx3dGYvUHJvY2Vzc1ByaXZpbGVnZS5oPgpAQCAtNDAxLDIwICs0MDIsMjAgQEAgQGludGVy
ZmFjZSBXS05ldHdvcmtTZXNzaW9uRGVsZWdhdGUgOiBOU09iamVjdCA8TlNVUkxTZXNzaW9uRGF0
YURlbGVnYXRlCiAgICAgYm9vbCBfd2l0aENyZWRlbnRpYWxzOwogfQogCi0tIChpZClpbml0V2l0
aE5ldHdvcmtTZXNzaW9uOihXZWJLaXQ6Ok5ldHdvcmtTZXNzaW9uQ29jb2EmKXNlc3Npb24gd3Jh
cHBlcjooV2ViS2l0OjpTZXNzaW9uV3JhcHBlciYpc2Vzc2lvbldyYXBwZXIgd2l0aENyZWRlbnRp
YWxzOihib29sKXdpdGhDcmVkZW50aWFsczsKKy0gKGlkKWluaXRXaXRoTmV0d29ya1Nlc3Npb246
KE5ha2VkUmVmPFdlYktpdDo6TmV0d29ya1Nlc3Npb25Db2NvYT4pc2Vzc2lvbiB3cmFwcGVyOihX
ZWJLaXQ6OlNlc3Npb25XcmFwcGVyJilzZXNzaW9uV3JhcHBlciB3aXRoQ3JlZGVudGlhbHM6KGJv
b2wpd2l0aENyZWRlbnRpYWxzOwogLSAodm9pZClzZXNzaW9uSW52YWxpZGF0ZWQ7CiAKIEBlbmQK
IAogQGltcGxlbWVudGF0aW9uIFdLTmV0d29ya1Nlc3Npb25EZWxlZ2F0ZQogCi0tIChpZClpbml0
V2l0aE5ldHdvcmtTZXNzaW9uOihXZWJLaXQ6Ok5ldHdvcmtTZXNzaW9uQ29jb2EmKXNlc3Npb24g
d3JhcHBlcjooV2ViS2l0OjpTZXNzaW9uV3JhcHBlciYpc2Vzc2lvbldyYXBwZXIgd2l0aENyZWRl
bnRpYWxzOihib29sKXdpdGhDcmVkZW50aWFscworLSAoaWQpaW5pdFdpdGhOZXR3b3JrU2Vzc2lv
bjooTmFrZWRSZWY8V2ViS2l0OjpOZXR3b3JrU2Vzc2lvbkNvY29hPilzZXNzaW9uIHdyYXBwZXI6
KFdlYktpdDo6U2Vzc2lvbldyYXBwZXImKXNlc3Npb25XcmFwcGVyIHdpdGhDcmVkZW50aWFsczoo
Ym9vbCl3aXRoQ3JlZGVudGlhbHMKIHsKICAgICBzZWxmID0gW3N1cGVyIGluaXRdOwogICAgIGlm
ICghc2VsZikKICAgICAgICAgcmV0dXJuIG5pbDsKIAotICAgIF9zZXNzaW9uID0gbWFrZVdlYWtQ
dHIoc2Vzc2lvbik7CisgICAgX3Nlc3Npb24gPSBtYWtlV2Vha1B0cihzZXNzaW9uLmdldCgpKTsK
ICAgICBfc2Vzc2lvbldyYXBwZXIgPSBtYWtlV2Vha1B0cihzZXNzaW9uV3JhcHBlcik7CiAgICAg
X3dpdGhDcmVkZW50aWFscyA9IHdpdGhDcmVkZW50aWFsczsKIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9TaGFyZWQvQVBJL0NvY29hL1dLQnJvd3NpbmdDb250ZXh0SGFuZGxlLm1tIGIvU291
cmNlL1dlYktpdC9TaGFyZWQvQVBJL0NvY29hL1dLQnJvd3NpbmdDb250ZXh0SGFuZGxlLm1tCmlu
ZGV4IGFiMmVkOWJlMzBlYWE3ODU1YTFkMzQ0M2YwZDRmYzhjOGIyMzhjZTkuLjlkM2VkZjE3MDAz
ZWYyNDZhZmViNzhkMTcwMzRkN2NhNDRhMDNlOGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
U2hhcmVkL0FQSS9Db2NvYS9XS0Jyb3dzaW5nQ29udGV4dEhhbmRsZS5tbQorKysgYi9Tb3VyY2Uv
V2ViS2l0L1NoYXJlZC9BUEkvQ29jb2EvV0tCcm93c2luZ0NvbnRleHRIYW5kbGUubW0KQEAgLTMy
LDE0ICszMiwxNCBAQAogCiBAaW1wbGVtZW50YXRpb24gV0tCcm93c2luZ0NvbnRleHRIYW5kbGUK
IAotLSAoaWQpX2luaXRXaXRoUGFnZVByb3h5OihXZWJLaXQ6OldlYlBhZ2VQcm94eSYpcGFnZQor
LSAoaWQpX2luaXRXaXRoUGFnZVByb3h5OihOYWtlZFJlZjxXZWJLaXQ6OldlYlBhZ2VQcm94eT4p
cGFnZQogewotICAgIHJldHVybiBbc2VsZiBfaW5pdFdpdGhQYWdlUHJveHlJRDpwYWdlLmlkZW50
aWZpZXIoKSBhbmRXZWJQYWdlSUQ6cGFnZS53ZWJQYWdlSUQoKV07CisgICAgcmV0dXJuIFtzZWxm
IF9pbml0V2l0aFBhZ2VQcm94eUlEOnBhZ2UtPmlkZW50aWZpZXIoKSBhbmRXZWJQYWdlSUQ6cGFn
ZS0+d2ViUGFnZUlEKCldOwogfQogCi0tIChpZClfaW5pdFdpdGhQYWdlOihXZWJLaXQ6OldlYlBh
Z2UmKXBhZ2UKKy0gKGlkKV9pbml0V2l0aFBhZ2U6KE5ha2VkUmVmPFdlYktpdDo6V2ViUGFnZT4p
cGFnZQogewotICAgIHJldHVybiBbc2VsZiBfaW5pdFdpdGhQYWdlUHJveHlJRDpwYWdlLndlYlBh
Z2VQcm94eUlkZW50aWZpZXIoKSBhbmRXZWJQYWdlSUQ6cGFnZS5pZGVudGlmaWVyKCldOworICAg
IHJldHVybiBbc2VsZiBfaW5pdFdpdGhQYWdlUHJveHlJRDpwYWdlLT53ZWJQYWdlUHJveHlJZGVu
dGlmaWVyKCkgYW5kV2ViUGFnZUlEOnBhZ2UtPmlkZW50aWZpZXIoKV07CiB9CiAKIC0gKGlkKV9p
bml0V2l0aFBhZ2VQcm94eUlEOihXZWJLaXQ6OldlYlBhZ2VQcm94eUlkZW50aWZpZXIpcGFnZVBy
b3h5SUQgYW5kV2ViUGFnZUlEOihXZWJDb3JlOjpQYWdlSWRlbnRpZmllcil3ZWJQYWdlSUQKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0FQSS9Db2NvYS9XS0Jyb3dzaW5nQ29udGV4
dEhhbmRsZUludGVybmFsLmggYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9BUEkvQ29jb2EvV0tCcm93
c2luZ0NvbnRleHRIYW5kbGVJbnRlcm5hbC5oCmluZGV4IDhkZWQ1OWZiNTU1MThkMjg5M2M3NzFi
NjNlYTliZWM0MjA2NjU5Y2UuLmI5ODg0ZTM3NTBhMThkZTU5NjliYjM4Y2U1MzhlZWQ4ZTQyNmFj
NGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0FQSS9Db2NvYS9XS0Jyb3dzaW5n
Q29udGV4dEhhbmRsZUludGVybmFsLmgKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvQVBJL0Nv
Y29hL1dLQnJvd3NpbmdDb250ZXh0SGFuZGxlSW50ZXJuYWwuaApAQCAtMjYsNiArMjYsNyBAQAog
I2ltcG9ydCAiV0tCcm93c2luZ0NvbnRleHRIYW5kbGUuaCIKICNpbXBvcnQgIldlYlBhZ2VQcm94
eUlkZW50aWZpZXIuaCIKICNpbXBvcnQgPFdlYkNvcmUvUGFnZUlkZW50aWZpZXIuaD4KKyNpbXBv
cnQgPHd0Zi9OYWtlZFJlZi5oPgogCiBuYW1lc3BhY2UgV2ViS2l0IHsKIGNsYXNzIFdlYlBhZ2U7
CkBAIC0zNyw3ICszOCw3IEBAIGNsYXNzIFdlYlBhZ2VQcm94eTsKIEBwcm9wZXJ0eSAobm9uYXRv
bWljLCByZWFkb25seSwgZ2V0dGVyPV9wYWdlUHJveHlJRCkgV2ViS2l0OjpXZWJQYWdlUHJveHlJ
ZGVudGlmaWVyIHBhZ2VQcm94eUlEOwogQHByb3BlcnR5IChub25hdG9taWMsIHJlYWRvbmx5LCBn
ZXR0ZXI9X3dlYlBhZ2VJRCkgV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIgd2ViUGFnZUlEOwogCi0t
IChpZClfaW5pdFdpdGhQYWdlUHJveHk6KFdlYktpdDo6V2ViUGFnZVByb3h5JilwYWdlOwotLSAo
aWQpX2luaXRXaXRoUGFnZTooV2ViS2l0OjpXZWJQYWdlJilwYWdlOworLSAoaWQpX2luaXRXaXRo
UGFnZVByb3h5OihOYWtlZFJlZjxXZWJLaXQ6OldlYlBhZ2VQcm94eT4pcGFnZTsKKy0gKGlkKV9p
bml0V2l0aFBhZ2U6KE5ha2VkUmVmPFdlYktpdDo6V2ViUGFnZT4pcGFnZTsKIC0gKGlkKV9pbml0
V2l0aFBhZ2VQcm94eUlEOihXZWJLaXQ6OldlYlBhZ2VQcm94eUlkZW50aWZpZXIpcGFnZVByb3h5
SUQgYW5kV2ViUGFnZUlEOihXZWJDb3JlOjpQYWdlSWRlbnRpZmllcil3ZWJQYWdlSUQ7CiBAZW5k
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9BUEkvQ29jb2EvX1dLUmVtb3RlT2Jq
ZWN0UmVnaXN0cnkubW0gYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9BUEkvQ29jb2EvX1dLUmVtb3Rl
T2JqZWN0UmVnaXN0cnkubW0KaW5kZXggNDc0YWI1MTU2NzUxMWM2M2IyOTQ2ZjI3ZTBjOTVkNmVk
NmZkODA0My4uNTQxMDQ3ZWRkZjI4MGU0NmJkZDcxMDliZjNhMzgxODViZjVkNGQyZSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvQVBJL0NvY29hL19XS1JlbW90ZU9iamVjdFJlZ2lz
dHJ5Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0FQSS9Db2NvYS9fV0tSZW1vdGVPYmpl
Y3RSZWdpc3RyeS5tbQpAQCAtMTA2LDIyICsxMDYsMjIgQEAgLSAoaWQpcmVtb3RlT2JqZWN0UHJv
eHlXaXRoSW50ZXJmYWNlOihfV0tSZW1vdGVPYmplY3RJbnRlcmZhY2UgKilpbnRlcmZhY2UKICAg
ICByZXR1cm4gcmVtb3RlT2JqZWN0LmF1dG9yZWxlYXNlKCk7CiB9CiAKLS0gKGlkKV9pbml0V2l0
aFdlYlBhZ2U6KFdlYktpdDo6V2ViUGFnZSYpcGFnZQorLSAoaWQpX2luaXRXaXRoV2ViUGFnZToo
TmFrZWRSZWY8V2ViS2l0OjpXZWJQYWdlPilwYWdlCiB7CiAgICAgaWYgKCEoc2VsZiA9IFtzdXBl
ciBpbml0XSkpCiAgICAgICAgIHJldHVybiBuaWw7CiAKLSAgICBfcmVtb3RlT2JqZWN0UmVnaXN0
cnkgPSBtYWtlVW5pcXVlPFdlYktpdDo6V2ViUmVtb3RlT2JqZWN0UmVnaXN0cnk+KHNlbGYsIHBh
Z2UpOworICAgIF9yZW1vdGVPYmplY3RSZWdpc3RyeSA9IG1ha2VVbmlxdWU8V2ViS2l0OjpXZWJS
ZW1vdGVPYmplY3RSZWdpc3RyeT4oc2VsZiwgcGFnZS5nZXQoKSk7CiAKICAgICByZXR1cm4gc2Vs
ZjsKIH0KIAotLSAoaWQpX2luaXRXaXRoV2ViUGFnZVByb3h5OihXZWJLaXQ6OldlYlBhZ2VQcm94
eSYpcGFnZQorLSAoaWQpX2luaXRXaXRoV2ViUGFnZVByb3h5OihOYWtlZFJlZjxXZWJLaXQ6Oldl
YlBhZ2VQcm94eT4pcGFnZQogewogICAgIGlmICghKHNlbGYgPSBbc3VwZXIgaW5pdF0pKQogICAg
ICAgICByZXR1cm4gbmlsOwogCi0gICAgX3JlbW90ZU9iamVjdFJlZ2lzdHJ5ID0gbWFrZVVuaXF1
ZTxXZWJLaXQ6OlVJUmVtb3RlT2JqZWN0UmVnaXN0cnk+KHNlbGYsIHBhZ2UpOworICAgIF9yZW1v
dGVPYmplY3RSZWdpc3RyeSA9IG1ha2VVbmlxdWU8V2ViS2l0OjpVSVJlbW90ZU9iamVjdFJlZ2lz
dHJ5PihzZWxmLCBwYWdlLmdldCgpKTsKIAogICAgIHJldHVybiBzZWxmOwogfQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9TaGFyZWQvQVBJL0NvY29hL19XS1JlbW90ZU9iamVjdFJlZ2lzdHJ5
SW50ZXJuYWwuaCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0FQSS9Db2NvYS9fV0tSZW1vdGVPYmpl
Y3RSZWdpc3RyeUludGVybmFsLmgKaW5kZXggOTQ5ZTQzOGYxZDZmZjZmZTcxMTM4ZDMyYzA4Njkz
Zjc0MzlhMmY0OC4uZWM1OWFkMmQ5ZDhkZWY3MTA2MzFmYjk4ZTBkNjY1YmFkMTZmZDEwNCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvQVBJL0NvY29hL19XS1JlbW90ZU9iamVjdFJl
Z2lzdHJ5SW50ZXJuYWwuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9BUEkvQ29jb2EvX1dL
UmVtb3RlT2JqZWN0UmVnaXN0cnlJbnRlcm5hbC5oCkBAIC0yNCw2ICsyNCw3IEBACiAgKi8KIAog
I2ltcG9ydCAiX1dLUmVtb3RlT2JqZWN0UmVnaXN0cnkuaCIKKyNpbXBvcnQgPHd0Zi9OYWtlZFJl
Zi5oPgogCiBuYW1lc3BhY2UgSVBDIHsKIGNsYXNzIE1lc3NhZ2VTZW5kZXI7CkBAIC00MSw4ICs0
Miw4IEBAIGNsYXNzIFdlYlBhZ2VQcm94eTsKIAogQHByb3BlcnR5IChub25hdG9taWMsIHJlYWRv
bmx5KSBXZWJLaXQ6OlJlbW90ZU9iamVjdFJlZ2lzdHJ5JiByZW1vdGVPYmplY3RSZWdpc3RyeTsK
IAotLSAoaWQpX2luaXRXaXRoV2ViUGFnZTooV2ViS2l0OjpXZWJQYWdlJiltZXNzYWdlU2VuZGVy
OwotLSAoaWQpX2luaXRXaXRoV2ViUGFnZVByb3h5OihXZWJLaXQ6OldlYlBhZ2VQcm94eSYpbWVz
c2FnZVNlbmRlcjsKKy0gKGlkKV9pbml0V2l0aFdlYlBhZ2U6KE5ha2VkUmVmPFdlYktpdDo6V2Vi
UGFnZT4pbWVzc2FnZVNlbmRlcjsKKy0gKGlkKV9pbml0V2l0aFdlYlBhZ2VQcm94eTooTmFrZWRS
ZWY8V2ViS2l0OjpXZWJQYWdlUHJveHk+KW1lc3NhZ2VTZW5kZXI7CiAtICh2b2lkKV9pbnZhbGlk
YXRlOwogCiAtICh2b2lkKV9zZW5kSW52b2NhdGlvbjooTlNJbnZvY2F0aW9uICopaW52b2NhdGlv
biBpbnRlcmZhY2U6KF9XS1JlbW90ZU9iamVjdEludGVyZmFjZSAqKWludGVyZmFjZTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXcubW0gYi9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3Lm1tCmluZGV4IDA2YmJm
NDYwZTAxZjI5NzQ3ZTE0YThmYTYxZTEwMWU3ZDJmNDBmMzAuLmQzMjlkMWU2Y2U0ZTA4ZTA0NDIz
NjdkY2M1MDk5NDdjN2JiZWJmOWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L0FQSS9Db2NvYS9XS1dlYlZpZXcubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJ
L0NvY29hL1dLV2ViVmlldy5tbQpAQCAtMTMxMCw3ICsxMzEwLDcgQEAgLSAoV0tQYWdlUmVmKV9w
YWdlRm9yVGVzdGluZwogICAgIHJldHVybiB0b0FQSShfcGFnZS5nZXQoKSk7CiB9CiAKLS0gKFdl
YktpdDo6V2ViUGFnZVByb3h5ICopX3BhZ2UKKy0gKE5ha2VkUHRyPFdlYktpdDo6V2ViUGFnZVBy
b3h5PilfcGFnZQogewogICAgIHJldHVybiBfcGFnZS5nZXQoKTsKIH0KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXdJbnRlcm5hbC5oIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlld0ludGVybmFsLmgKaW5kZXgg
N2ZlZjU2OGQ1OGMyNThkYmJhZjExNGY5NTJlMzNkZjE4MDY5ZjU2OS4uZDZkMjE5NDgxMWNkMzBi
OThmZWU2ZTU3NTFlOGI4MzdkM2IxZmQ3NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlld0ludGVybmFsLmgKKysrIGIvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlld0ludGVybmFsLmgKQEAgLTMxLDYgKzMxLDcgQEAK
ICNpbXBvcnQgIl9XS0F0dGFjaG1lbnRJbnRlcm5hbC5oIgogI2ltcG9ydCAiX1dLV2ViVmlld1By
aW50Rm9ybWF0dGVySW50ZXJuYWwuaCIKICNpbXBvcnQgPHd0Zi9Db21wbGV0aW9uSGFuZGxlci5o
PgorI2ltcG9ydCA8d3RmL05ha2VkUHRyLmg+CiAjaW1wb3J0IDx3dGYvUmVmUHRyLmg+CiAjaW1w
b3J0IDx3dGYvUmV0YWluUHRyLmg+CiAjaW1wb3J0IDx3dGYvVmFyaWFudC5oPgpAQCAtMjUyLDcg
KzI1Myw3IEBAIGNsYXNzIFZpZXdHZXN0dXJlQ29udHJvbGxlcjsKIC0gKE9wdGlvbmFsPEJPT0w+
KV9yZXNvbHV0aW9uRm9yU2hhcmVTaGVldEltbWVkaWF0ZUNvbXBsZXRpb25Gb3JUZXN0aW5nOwog
CiAtIChXS1BhZ2VSZWYpX3BhZ2VGb3JUZXN0aW5nOwotLSAoV2ViS2l0OjpXZWJQYWdlUHJveHkq
KV9wYWdlOworLSAoTmFrZWRQdHI8V2ViS2l0OjpXZWJQYWdlUHJveHk+KV9wYWdlOwogCiBAZW5k
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYnNp
dGVEYXRhU3RvcmUubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJz
aXRlRGF0YVN0b3JlLm1tCmluZGV4IGNlZjQ4Mjc0N2RmMThmODQ4OTNlYWZiZGU5ODFjYzAxZTVm
YWY4MGUuLjg5YTRjYTJlYjZkNjRiZmVlNjkyMjAxZWNjYzdmZmZlY2I4MGMxNzUgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYnNpdGVEYXRhU3RvcmUu
bW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2Vic2l0ZURhdGFT
dG9yZS5tbQpAQCAtNDM1LDcgKzQzNSw3IEBAIC0gKHZvaWQpX2dldEFsbFN0b3JhZ2VBY2Nlc3NF
bnRyaWVzRm9yOihXS1dlYlZpZXcgKil3ZWJWaWV3IGNvbXBsZXRpb25IYW5kbGVyOih2CiAgICAg
ICAgIHJldHVybjsKICAgICB9CiAKLSAgICBhdXRvKiB3ZWJQYWdlUHJveHkgPSBbd2ViVmlldyBf
cGFnZV07CisgICAgYXV0byB3ZWJQYWdlUHJveHkgPSBbd2ViVmlldyBfcGFnZV07CiAgICAgaWYg
KCF3ZWJQYWdlUHJveHkpIHsKICAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoeyB9KTsKICAgICAg
ICAgcmV0dXJuOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29h
L19XS1RodW1ibmFpbFZpZXcubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2Ev
X1dLVGh1bWJuYWlsVmlldy5tbQppbmRleCAxMzYwNTNjNDdkYTUxYjAyNjkyOTA0ZTI3Yzc1ODhh
YzVkZWMxODVjLi41MzBlMGE4OTY5MGViNTMyZDY4Njk5MzkxMTlhMTJjZmE2ZmZiNjc4IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLVGh1bWJuYWlsVmll
dy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLVGh1bWJuYWls
Vmlldy5tbQpAQCAtMzUsNiArMzUsNyBAQAogI2ltcG9ydCAiV0tXZWJWaWV3SW50ZXJuYWwuaCIK
ICNpbXBvcnQgIldlYlBhZ2VQcm94eS5oIgogI2ltcG9ydCA8cGFsL3NwaS9jZy9Db3JlR3JhcGhp
Y3NTUEkuaD4KKyNpbXBvcnQgPHd0Zi9OYWtlZFB0ci5oPgogCiAvLyBGSVhNRTogTWFrZSBpdCBw
b3NzaWJsZSB0byBsZWF2ZSBhIHNuYXBzaG90IG9mIHRoZSBjb250ZW50IHByZXNlbnRlZCBpbiB0
aGUgV0tWaWV3IHdoaWxlIHRoZSB0aHVtYm5haWwgaXMgbGl2ZS4KIC8vIEZJWE1FOiBEb24ndCBt
YWtlIG5ldyBzcGVjdWxhdGl2ZSB0aWxlcyB3aGlsZSB0aHVtYm5haWxlZC4KQEAgLTQ3LDcgKzQ4
LDcgQEAgQGltcGxlbWVudGF0aW9uIF9XS1RodW1ibmFpbFZpZXcgewogICAgIFJldGFpblB0cjxX
S1ZpZXc+IF93a1ZpZXc7CiAgICAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfRU5ECiAg
ICAgUmV0YWluUHRyPFdLV2ViVmlldz4gX3drV2ViVmlldzsKLSAgICBXZWJLaXQ6OldlYlBhZ2VQ
cm94eSogX3dlYlBhZ2VQcm94eTsKKyAgICBOYWtlZFB0cjxXZWJLaXQ6OldlYlBhZ2VQcm94eT4g
X3dlYlBhZ2VQcm94eTsKIAogICAgIEJPT0wgX29yaWdpbmFsTWF5U3RhcnRNZWRpYVdoZW5Jbldp
bmRvdzsKICAgICBCT09MIF9vcmlnaW5hbFNvdXJjZVZpZXdJc0luV2luZG93OwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL21hYy9XS1ZpZXcubW0gYi9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9BUEkvbWFjL1dLVmlldy5tbQppbmRleCBiYjQxZDZlNjk2NWNkNGZhMTY1
NTMyODNmZThlZDY0NTJiMmZiMDNmLi5kZGM2ZmZmYTMzMGE4M2NiNzJiZTE5MzBmYzcyMTAxMzM0
MjBkODI2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvbWFjL1dLVmll
dy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvbWFjL1dLVmlldy5tbQpAQCAt
NDYsNiArNDYsNyBAQAogI2ltcG9ydCA8V2ViS2l0L1dLRHJhZ0Rlc3RpbmF0aW9uQWN0aW9uLmg+
CiAjaW1wb3J0IDxwYWwvc3BpL2NvY29hL0FWS2l0U1BJLmg+CiAjaW1wb3J0IDx3dGYvQmxvY2tQ
dHIuaD4KKyNpbXBvcnQgPHd0Zi9OYWtlZFJlZi5oPgogCiBAaW50ZXJmYWNlIFdLVmlld0RhdGEg
OiBOU09iamVjdCB7CiBAcHVibGljCkBAIC05NTAsNyArOTUxLDcgQEAgLSAodm9pZCltYXliZUlu
c3RhbGxJY29uTG9hZGluZ0NsaWVudAogICAgICAgICBfZGF0YS0+X2ltcGwtPnBhZ2UoKS5zZXRJ
Y29uTG9hZGluZ0NsaWVudChtYWtlVW5pcXVlPEljb25Mb2FkaW5nQ2xpZW50PihzZWxmKSk7CiB9
CiAKLS0gKGluc3RhbmNldHlwZSlpbml0V2l0aEZyYW1lOihOU1JlY3QpZnJhbWUgcHJvY2Vzc1Bv
b2w6KFdlYktpdDo6V2ViUHJvY2Vzc1Bvb2wmKXByb2Nlc3NQb29sIGNvbmZpZ3VyYXRpb246KFJl
ZjxBUEk6OlBhZ2VDb25maWd1cmF0aW9uPiYmKWNvbmZpZ3VyYXRpb24KKy0gKGluc3RhbmNldHlw
ZSlpbml0V2l0aEZyYW1lOihOU1JlY3QpZnJhbWUgcHJvY2Vzc1Bvb2w6KE5ha2VkUmVmPFdlYktp
dDo6V2ViUHJvY2Vzc1Bvb2w+KXByb2Nlc3NQb29sIGNvbmZpZ3VyYXRpb246KFJlZjxBUEk6OlBh
Z2VDb25maWd1cmF0aW9uPiYmKWNvbmZpZ3VyYXRpb24KIHsKICAgICBzZWxmID0gW3N1cGVyIGlu
aXRXaXRoRnJhbWU6ZnJhbWVdOwogICAgIGlmICghc2VsZikKQEAgLTk1OSw3ICs5NjAsNyBAQCAt
IChpbnN0YW5jZXR5cGUpaW5pdFdpdGhGcmFtZTooTlNSZWN0KWZyYW1lIHByb2Nlc3NQb29sOihX
ZWJLaXQ6OldlYlByb2Nlc3NQb29sJgogICAgIFdlYktpdDo6SW5pdGlhbGl6ZVdlYktpdDIoKTsK
IAogICAgIF9kYXRhID0gW1tXS1ZpZXdEYXRhIGFsbG9jXSBpbml0XTsKLSAgICBfZGF0YS0+X2lt
cGwgPSBtYWtlVW5pcXVlPFdlYktpdDo6V2ViVmlld0ltcGw+KHNlbGYsIG51bGxwdHIsIHByb2Nl
c3NQb29sLCBXVEZNb3ZlKGNvbmZpZ3VyYXRpb24pKTsKKyAgICBfZGF0YS0+X2ltcGwgPSBtYWtl
VW5pcXVlPFdlYktpdDo6V2ViVmlld0ltcGw+KHNlbGYsIG51bGxwdHIsIHByb2Nlc3NQb29sLmdl
dCgpLCBXVEZNb3ZlKGNvbmZpZ3VyYXRpb24pKTsKIAogICAgIFtzZWxmIG1heWJlSW5zdGFsbElj
b25Mb2FkaW5nQ2xpZW50XTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
Q29jb2EvV2ViVmlld0ltcGwubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9XZWJW
aWV3SW1wbC5tbQppbmRleCBlNjQ1NmNmYWJlNmZiYzhhZWZhYTdhOThjZDczNWYwMDUyZmQ1ZDQ0
Li43N2VjZWM1OTVjZmY3YWE1ZTRlMTE3YTYxZmExODEzNGM4NzIzMGJmIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9XZWJWaWV3SW1wbC5tbQorKysgYi9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9XZWJWaWV3SW1wbC5tbQpAQCAtMTM3MCw3ICsxMzcwLDcg
QEAgV2ViVmlld0ltcGw6OldlYlZpZXdJbXBsKE5TVmlldyA8V2ViVmlld0ltcGxEZWxlZ2F0ZT4g
KnZpZXcsIFdLV2ViVmlldyAqb3V0ZXJXZWIKICAgICAsIG1fcGFnZShwcm9jZXNzUG9vbC5jcmVh
dGVXZWJQYWdlKCptX3BhZ2VDbGllbnQsIFdURk1vdmUoY29uZmlndXJhdGlvbikpKQogICAgICwg
bV9uZWVkc1ZpZXdGcmFtZUluV2luZG93Q29vcmRpbmF0ZXMobV9wYWdlLT5wcmVmZXJlbmNlcygp
LnBsdWdpbnNFbmFibGVkKCkpCiAgICAgLCBtX2ludHJpbnNpY0NvbnRlbnRTaXplKENHU2l6ZU1h
a2UoTlNWaWV3Tm9JbnRyaW5zaWNNZXRyaWMsIE5TVmlld05vSW50cmluc2ljTWV0cmljKSkKLSAg
ICAsIG1fbGF5b3V0U3RyYXRlZ3koW1dLVmlld0xheW91dFN0cmF0ZWd5IGxheW91dFN0cmF0ZWd5
V2l0aFBhZ2U6bV9wYWdlIHZpZXc6dmlldyB2aWV3SW1wbDoqdGhpcyBtb2RlOmtXS0xheW91dE1v
ZGVWaWV3U2l6ZV0pCisgICAgLCBtX2xheW91dFN0cmF0ZWd5KFtXS1ZpZXdMYXlvdXRTdHJhdGVn
eSBsYXlvdXRTdHJhdGVneVdpdGhQYWdlOm1fcGFnZS5nZXQoKSB2aWV3OnZpZXcgdmlld0ltcGw6
KnRoaXMgbW9kZTprV0tMYXlvdXRNb2RlVmlld1NpemVdKQogICAgICwgbV91bmRvVGFyZ2V0KGFk
b3B0TlMoW1tXS0VkaXRvclVuZG9UYXJnZXQgYWxsb2NdIGluaXRdKSkKICAgICAsIG1fd2luZG93
VmlzaWJpbGl0eU9ic2VydmVyKGFkb3B0TlMoW1tXS1dpbmRvd1Zpc2liaWxpdHlPYnNlcnZlciBh
bGxvY10gaW5pdFdpdGhWaWV3OnZpZXcgaW1wbDoqdGhpc10pKQogICAgICwgbV9hY2Nlc3NpYmls
aXR5U2V0dGluZ3NPYnNlcnZlcihhZG9wdE5TKFtbV0tBY2Nlc3NpYmlsaXR5U2V0dGluZ3NPYnNl
cnZlciBhbGxvY10gaW5pdFdpdGhJbXBsOip0aGlzXSkpCkBAIC0xNDAzLDcgKzE0MDMsNyBAQCBX
ZWJWaWV3SW1wbDo6V2ViVmlld0ltcGwoTlNWaWV3IDxXZWJWaWV3SW1wbERlbGVnYXRlPiAqdmll
dywgV0tXZWJWaWV3ICpvdXRlcldlYgogCiAgICAgaWYgKENsYXNzIGdlc3R1cmVDbGFzcyA9IE5T
Q2xhc3NGcm9tU3RyaW5nKEAiTlNJbW1lZGlhdGVBY3Rpb25HZXN0dXJlUmVjb2duaXplciIpKSB7
CiAgICAgICAgIG1faW1tZWRpYXRlQWN0aW9uR2VzdHVyZVJlY29nbml6ZXIgPSBhZG9wdE5TKFso
TlNJbW1lZGlhdGVBY3Rpb25HZXN0dXJlUmVjb2duaXplciAqKVtnZXN0dXJlQ2xhc3MgYWxsb2Nd
IGluaXRdKTsKLSAgICAgICAgbV9pbW1lZGlhdGVBY3Rpb25Db250cm9sbGVyID0gYWRvcHROUyhb
W1dLSW1tZWRpYXRlQWN0aW9uQ29udHJvbGxlciBhbGxvY10gaW5pdFdpdGhQYWdlOm1fcGFnZSB2
aWV3OnZpZXcgdmlld0ltcGw6KnRoaXMgcmVjb2duaXplcjptX2ltbWVkaWF0ZUFjdGlvbkdlc3R1
cmVSZWNvZ25pemVyLmdldCgpXSk7CisgICAgICAgIG1faW1tZWRpYXRlQWN0aW9uQ29udHJvbGxl
ciA9IGFkb3B0TlMoW1tXS0ltbWVkaWF0ZUFjdGlvbkNvbnRyb2xsZXIgYWxsb2NdIGluaXRXaXRo
UGFnZTptX3BhZ2UuZ2V0KCkgdmlldzp2aWV3IHZpZXdJbXBsOip0aGlzIHJlY29nbml6ZXI6bV9p
bW1lZGlhdGVBY3Rpb25HZXN0dXJlUmVjb2duaXplci5nZXQoKV0pOwogICAgICAgICBbbV9pbW1l
ZGlhdGVBY3Rpb25HZXN0dXJlUmVjb2duaXplciBzZXREZWxlZ2F0ZTptX2ltbWVkaWF0ZUFjdGlv
bkNvbnRyb2xsZXIuZ2V0KCldOwogICAgICAgICBbbV9pbW1lZGlhdGVBY3Rpb25HZXN0dXJlUmVj
b2duaXplciBzZXREZWxheXNQcmltYXJ5TW91c2VCdXR0b25FdmVudHM6Tk9dOwogICAgIH0KQEAg
LTE5ODcsNyArMTk4Nyw3IEBAIHZvaWQgV2ViVmlld0ltcGw6OnNldExheW91dE1vZGUoV0tMYXlv
dXRNb2RlIGxheW91dE1vZGUpCiAgICAgICAgIHJldHVybjsKIAogICAgIFttX2xheW91dFN0cmF0
ZWd5IHdpbGxDaGFuZ2VMYXlvdXRTdHJhdGVneV07Ci0gICAgbV9sYXlvdXRTdHJhdGVneSA9IFtX
S1ZpZXdMYXlvdXRTdHJhdGVneSBsYXlvdXRTdHJhdGVneVdpdGhQYWdlOm1fcGFnZSB2aWV3Om1f
dmlldy5nZXRBdXRvcmVsZWFzZWQoKSB2aWV3SW1wbDoqdGhpcyBtb2RlOmxheW91dE1vZGVdOwor
ICAgIG1fbGF5b3V0U3RyYXRlZ3kgPSBbV0tWaWV3TGF5b3V0U3RyYXRlZ3kgbGF5b3V0U3RyYXRl
Z3lXaXRoUGFnZTptX3BhZ2UuZ2V0KCkgdmlldzptX3ZpZXcuZ2V0QXV0b3JlbGVhc2VkKCkgdmll
d0ltcGw6KnRoaXMgbW9kZTpsYXlvdXRNb2RlXTsKIH0KIAogYm9vbCBXZWJWaWV3SW1wbDo6c3Vw
cG9ydHNBcmJpdHJhcnlMYXlvdXRNb2RlcygpIGNvbnN0CkBAIC0yNjQwLDcgKzI2NDAsNyBAQCBi
b29sIFdlYlZpZXdJbXBsOjpoYXNGdWxsU2NyZWVuV2luZG93Q29udHJvbGxlcigpIGNvbnN0CiBX
S0Z1bGxTY3JlZW5XaW5kb3dDb250cm9sbGVyICpXZWJWaWV3SW1wbDo6ZnVsbFNjcmVlbldpbmRv
d0NvbnRyb2xsZXIoKQogewogICAgIGlmICghbV9mdWxsU2NyZWVuV2luZG93Q29udHJvbGxlcikK
LSAgICAgICAgbV9mdWxsU2NyZWVuV2luZG93Q29udHJvbGxlciA9IGFkb3B0TlMoW1tXS0Z1bGxT
Y3JlZW5XaW5kb3dDb250cm9sbGVyIGFsbG9jXSBpbml0V2l0aFdpbmRvdzpmdWxsU2NyZWVuV2lu
ZG93KCkgd2ViVmlldzptX3ZpZXcuZ2V0QXV0b3JlbGVhc2VkKCkgcGFnZTptX3BhZ2VdKTsKKyAg
ICAgICAgbV9mdWxsU2NyZWVuV2luZG93Q29udHJvbGxlciA9IGFkb3B0TlMoW1tXS0Z1bGxTY3Jl
ZW5XaW5kb3dDb250cm9sbGVyIGFsbG9jXSBpbml0V2l0aFdpbmRvdzpmdWxsU2NyZWVuV2luZG93
KCkgd2ViVmlldzptX3ZpZXcuZ2V0QXV0b3JlbGVhc2VkKCkgcGFnZTptX3BhZ2UuZ2V0KCldKTsK
IAogICAgIHJldHVybiBtX2Z1bGxTY3JlZW5XaW5kb3dDb250cm9sbGVyLmdldCgpOwogfQpAQCAt
Mzg4Myw3ICszODgzLDcgQEAgTlNWaWV3ICpXZWJWaWV3SW1wbDo6aW5zcGVjdG9yQXR0YWNobWVu
dFZpZXcoKQogX1dLUmVtb3RlT2JqZWN0UmVnaXN0cnkgKldlYlZpZXdJbXBsOjpyZW1vdGVPYmpl
Y3RSZWdpc3RyeSgpCiB7CiAgICAgaWYgKCFtX3JlbW90ZU9iamVjdFJlZ2lzdHJ5KSB7Ci0gICAg
ICAgIG1fcmVtb3RlT2JqZWN0UmVnaXN0cnkgPSBhZG9wdE5TKFtbX1dLUmVtb3RlT2JqZWN0UmVn
aXN0cnkgYWxsb2NdIF9pbml0V2l0aFdlYlBhZ2VQcm94eTptX3BhZ2VdKTsKKyAgICAgICAgbV9y
ZW1vdGVPYmplY3RSZWdpc3RyeSA9IGFkb3B0TlMoW1tfV0tSZW1vdGVPYmplY3RSZWdpc3RyeSBh
bGxvY10gX2luaXRXaXRoV2ViUGFnZVByb3h5Om1fcGFnZS5nZXQoKV0pOwogICAgICAgICBtX3Bh
Z2UtPnByb2Nlc3MoKS5wcm9jZXNzUG9vbCgpLmFkZE1lc3NhZ2VSZWNlaXZlcihNZXNzYWdlczo6
UmVtb3RlT2JqZWN0UmVnaXN0cnk6Om1lc3NhZ2VSZWNlaXZlck5hbWUoKSwgbV9wYWdlLT5pZGVu
dGlmaWVyKCksIFttX3JlbW90ZU9iamVjdFJlZ2lzdHJ5IHJlbW90ZU9iamVjdFJlZ2lzdHJ5XSk7
CiAgICAgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tBcHBs
aWNhdGlvblN0YXRlVHJhY2tpbmdWaWV3Lm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9z
L1dLQXBwbGljYXRpb25TdGF0ZVRyYWNraW5nVmlldy5tbQppbmRleCBiN2Y3MDI2ZGRiZjE5NzI0
MzM0OTI1MDBiYmNjYzJmNzJlZjAyOGU5Li41NGFkMDRiZDVlNmFjNDEwM2ZmZDdjMTE3MmQ3MWYy
OWQ4NTJmMjVhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tBcHBs
aWNhdGlvblN0YXRlVHJhY2tpbmdWaWV3Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L2lvcy9XS0FwcGxpY2F0aW9uU3RhdGVUcmFja2luZ1ZpZXcubW0KQEAgLTU1LDcgKzU1LDcgQEAg
LSAodm9pZCl3aWxsTW92ZVRvV2luZG93OihVSVdpbmRvdyAqKW5ld1dpbmRvdwogICAgICAgICBy
ZXR1cm47CiAKICAgICBhdXRvIHBhZ2UgPSBbX3dlYlZpZXdUb1RyYWNrIF9wYWdlXTsKLSAgICBS
RUxFQVNFX0xPRyhWaWV3U3RhdGUsICIlcCAtIFdLQXBwbGljYXRpb25TdGF0ZVRyYWNraW5nVmll
dzogVmlldyB3aXRoIHBhZ2UgWyVwLCBwYWdlUHJveHlJRDogJSIgUFJJdTY0ICJdIHdhcyByZW1v
dmVkIGZyb20gYSB3aW5kb3csIF9sYXN0T2JzZXJ2ZWRTdGF0ZVdhc0JhY2tncm91bmQ6ICVkIiwg
c2VsZiwgcGFnZSwgcGFnZSA/IHBhZ2UtPmlkZW50aWZpZXIoKS50b1VJbnQ2NCgpIDogMCwgcGFn
ZSA/IHBhZ2UtPmxhc3RPYnNlcnZlZFN0YXRlV2FzQmFja2dyb3VuZCgpIDogZmFsc2UpOworICAg
IFJFTEVBU0VfTE9HKFZpZXdTdGF0ZSwgIiVwIC0gV0tBcHBsaWNhdGlvblN0YXRlVHJhY2tpbmdW
aWV3OiBWaWV3IHdpdGggcGFnZSBbJXAsIHBhZ2VQcm94eUlEOiAlIiBQUkl1NjQgIl0gd2FzIHJl
bW92ZWQgZnJvbSBhIHdpbmRvdywgX2xhc3RPYnNlcnZlZFN0YXRlV2FzQmFja2dyb3VuZDogJWQi
LCBzZWxmLCBwYWdlLmdldCgpLCBwYWdlID8gcGFnZS0+aWRlbnRpZmllcigpLnRvVUludDY0KCkg
OiAwLCBwYWdlID8gcGFnZS0+bGFzdE9ic2VydmVkU3RhdGVXYXNCYWNrZ3JvdW5kKCkgOiBmYWxz
ZSk7CiAgICAgQVNTRVJUKF9hcHBsaWNhdGlvblN0YXRlVHJhY2tlcik7CiAgICAgX2FwcGxpY2F0
aW9uU3RhdGVUcmFja2VyID0gbnVsbHB0cjsKIH0KQEAgLTY5LDcgKzY5LDcgQEAgLSAodm9pZClk
aWRNb3ZlVG9XaW5kb3cKICAgICBib29sIGxhc3RPYnNlcnZlZFN0YXRlV2FzQmFja2dyb3VuZCA9
IHBhZ2UgPyBwYWdlLT5sYXN0T2JzZXJ2ZWRTdGF0ZVdhc0JhY2tncm91bmQoKSA6IGZhbHNlOwog
CiAgICAgX2FwcGxpY2F0aW9uU3RhdGVUcmFja2VyID0gbWFrZVVuaXF1ZTxXZWJLaXQ6OkFwcGxp
Y2F0aW9uU3RhdGVUcmFja2VyPihzZWxmLCBAc2VsZWN0b3IoX2FwcGxpY2F0aW9uRGlkRW50ZXJC
YWNrZ3JvdW5kKSwgQHNlbGVjdG9yKF9hcHBsaWNhdGlvbkRpZEZpbmlzaFNuYXBzaG90dGluZ0Fm
dGVyRW50ZXJpbmdCYWNrZ3JvdW5kKSwgQHNlbGVjdG9yKF9hcHBsaWNhdGlvbldpbGxFbnRlckZv
cmVncm91bmQpKTsKLSAgICBSRUxFQVNFX0xPRyhWaWV3U3RhdGUsICIlcCAtIFdLQXBwbGljYXRp
b25TdGF0ZVRyYWNraW5nVmlldzogVmlldyB3aXRoIHBhZ2UgWyVwLCBwYWdlUHJveHlJRDogJSIg
UFJJdTY0ICJdIHdhcyBhZGRlZCB0byBhIHdpbmRvdywgX2xhc3RPYnNlcnZlZFN0YXRlV2FzQmFj
a2dyb3VuZDogJWQsIGlzTm93QmFja2dyb3VuZDogJWQiLCBzZWxmLCBwYWdlLCBwYWdlID8gcGFn
ZS0+aWRlbnRpZmllcigpLnRvVUludDY0KCkgOiAwLCBsYXN0T2JzZXJ2ZWRTdGF0ZVdhc0JhY2tn
cm91bmQsIFtzZWxmIGlzQmFja2dyb3VuZF0pOworICAgIFJFTEVBU0VfTE9HKFZpZXdTdGF0ZSwg
IiVwIC0gV0tBcHBsaWNhdGlvblN0YXRlVHJhY2tpbmdWaWV3OiBWaWV3IHdpdGggcGFnZSBbJXAs
IHBhZ2VQcm94eUlEOiAlIiBQUkl1NjQgIl0gd2FzIGFkZGVkIHRvIGEgd2luZG93LCBfbGFzdE9i
c2VydmVkU3RhdGVXYXNCYWNrZ3JvdW5kOiAlZCwgaXNOb3dCYWNrZ3JvdW5kOiAlZCIsIHNlbGYs
IHBhZ2UuZ2V0KCksIHBhZ2UgPyBwYWdlLT5pZGVudGlmaWVyKCkudG9VSW50NjQoKSA6IDAsIGxh
c3RPYnNlcnZlZFN0YXRlV2FzQmFja2dyb3VuZCwgW3NlbGYgaXNCYWNrZ3JvdW5kXSk7CiAKICAg
ICBpZiAobGFzdE9ic2VydmVkU3RhdGVXYXNCYWNrZ3JvdW5kICYmICFbc2VsZiBpc0JhY2tncm91
bmRdKQogICAgICAgICBbc2VsZiBfYXBwbGljYXRpb25XaWxsRW50ZXJGb3JlZ3JvdW5kXTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3LmggYi9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlldy5oCmluZGV4IDU3Y2ZiYmY0
NGQ4MmQyNjMxNmQ5NzMyMDM1N2VmNzUzYWNjMTZjY2YuLjY2YWZhNGRjYjg2YTJkZTYwZGZkZmMy
NDBkNzkxMzM1ZWZiNzQ1NjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lv
cy9XS0NvbnRlbnRWaWV3LmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLQ29u
dGVudFZpZXcuaApAQCAtMjgsNiArMjgsNyBAQAogI2ltcG9ydCAiV0tCcm93c2luZ0NvbnRleHRD
b250cm9sbGVyLmgiCiAjaW1wb3J0ICJXS0Jyb3dzaW5nQ29udGV4dEdyb3VwLmgiCiAjaW1wb3J0
ICJXS1Byb2Nlc3NHcm91cC5oIgorI2ltcG9ydCA8d3RmL05ha2VkUmVmLmg+CiAjaW1wb3J0IDx3
dGYvUmV0YWluUHRyLmg+CiAjaW1wb3J0IDx3dGYvV2Vha09iakNQdHIuaD4KIApAQCAtNzAsNyAr
NzEsNyBAQCBjbGFzcyBXZWJQcm9jZXNzUG9vbDsKIEBwcm9wZXJ0eSAobm9uYXRvbWljKSBCT09M
IHNpemVDaGFuZ2VkU2luY2VMYXN0VmlzaWJsZUNvbnRlbnRSZWN0VXBkYXRlOwogQHByb3BlcnR5
IChub25hdG9taWMsIHJlYWRvbmx5KSBVSUludGVyZmFjZU9yaWVudGF0aW9uIGludGVyZmFjZU9y
aWVudGF0aW9uOwogCi0tIChpbnN0YW5jZXR5cGUpaW5pdFdpdGhGcmFtZTooQ0dSZWN0KWZyYW1l
IHByb2Nlc3NQb29sOihXZWJLaXQ6OldlYlByb2Nlc3NQb29sJilwcm9jZXNzUG9vbCBjb25maWd1
cmF0aW9uOihSZWY8QVBJOjpQYWdlQ29uZmlndXJhdGlvbj4mJiljb25maWd1cmF0aW9uIHdlYlZp
ZXc6KFdLV2ViVmlldyAqKXdlYlZpZXc7CistIChpbnN0YW5jZXR5cGUpaW5pdFdpdGhGcmFtZToo
Q0dSZWN0KWZyYW1lIHByb2Nlc3NQb29sOihOYWtlZFJlZjxXZWJLaXQ6OldlYlByb2Nlc3NQb29s
Pilwcm9jZXNzUG9vbCBjb25maWd1cmF0aW9uOihSZWY8QVBJOjpQYWdlQ29uZmlndXJhdGlvbj4m
Jiljb25maWd1cmF0aW9uIHdlYlZpZXc6KFdLV2ViVmlldyAqKXdlYlZpZXc7CiAKIC0gKHZvaWQp
ZGlkVXBkYXRlVmlzaWJsZVJlY3Q6KENHUmVjdCl2aXNpYmxlUmVjdAogICAgIHVub2JzY3VyZWRS
ZWN0OihDR1JlY3QpdW5vYnNjdXJlZFJlY3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3Lm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9z
L1dLQ29udGVudFZpZXcubW0KaW5kZXggMjliYTYwNjU4Mjg0NGRlYTY3ODVkZmYxMmZiYmFiNWU4
YzliMzFmZC4uZDIxZTljYWU3OWY0MjEzNDI3NDZiMmQ0ZWI0N2NjZWUzYTBjMzE5NCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXcubW0KKysrIGIv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXcubW0KQEAgLTIzOCw3ICsy
MzgsNyBAQCAtICh2b2lkKV9yZW1vdmVWaXNpYmlsaXR5UHJvcGFnYXRpb25WaWV3CiB9CiAjZW5k
aWYKIAotLSAoaW5zdGFuY2V0eXBlKWluaXRXaXRoRnJhbWU6KENHUmVjdClmcmFtZSBwcm9jZXNz
UG9vbDooV2ViS2l0OjpXZWJQcm9jZXNzUG9vbCYpcHJvY2Vzc1Bvb2wgY29uZmlndXJhdGlvbjoo
UmVmPEFQSTo6UGFnZUNvbmZpZ3VyYXRpb24+JiYpY29uZmlndXJhdGlvbiB3ZWJWaWV3OihXS1dl
YlZpZXcgKil3ZWJWaWV3CistIChpbnN0YW5jZXR5cGUpaW5pdFdpdGhGcmFtZTooQ0dSZWN0KWZy
YW1lIHByb2Nlc3NQb29sOihOYWtlZFJlZjxXZWJLaXQ6OldlYlByb2Nlc3NQb29sPilwcm9jZXNz
UG9vbCBjb25maWd1cmF0aW9uOihSZWY8QVBJOjpQYWdlQ29uZmlndXJhdGlvbj4mJiljb25maWd1
cmF0aW9uIHdlYlZpZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcKIHsKICAgICBpZiAoIShzZWxmID0g
W3N1cGVyIGluaXRXaXRoRnJhbWU6ZnJhbWUgd2ViVmlldzp3ZWJWaWV3XSkpCiAgICAgICAgIHJl
dHVybiBuaWw7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvZnVsbHNj
cmVlbi9XS0Z1bGxTY3JlZW5WaWV3Q29udHJvbGxlci5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL2lvcy9mdWxsc2NyZWVuL1dLRnVsbFNjcmVlblZpZXdDb250cm9sbGVyLm1tCmluZGV4IDhm
ZjhhMGJmNDc1YjNmN2IyMzYyMjlmNDEyZTNmMzI2NmNmOTU5NjYuLjI5ZjBjZGM1NTEwMzgzNDFk
NzlkMTQ3MGFmODJkNTlhNWE5YWZiMjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL2lvcy9mdWxsc2NyZWVuL1dLRnVsbFNjcmVlblZpZXdDb250cm9sbGVyLm1tCisrKyBiL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9mdWxsc2NyZWVuL1dLRnVsbFNjcmVlblZpZXdDb250
cm9sbGVyLm1tCkBAIC0yNTUsNyArMjU1LDcgQEAgLSAodm9pZCloaWRlVUkKIAogLSAodm9pZCl2
aWRlb0NvbnRyb2xzTWFuYWdlckRpZENoYW5nZQogewotICAgIFdlYktpdDo6V2ViUGFnZVByb3h5
KiBwYWdlID0gW3NlbGYuX3dlYlZpZXcgX3BhZ2VdOworICAgIGF1dG8gcGFnZSA9IFtzZWxmLl93
ZWJWaWV3IF9wYWdlXTsKICAgICBhdXRvKiB2aWRlb0Z1bGxzY3JlZW5NYW5hZ2VyID0gcGFnZSA/
IHBhZ2UtPnZpZGVvRnVsbHNjcmVlbk1hbmFnZXIoKSA6IG51bGxwdHI7CiAgICAgYXV0byogdmlk
ZW9GdWxsc2NyZWVuSW50ZXJmYWNlID0gdmlkZW9GdWxsc2NyZWVuTWFuYWdlciA/IHZpZGVvRnVs
bHNjcmVlbk1hbmFnZXItPmNvbnRyb2xzTWFuYWdlckludGVyZmFjZSgpIDogbnVsbHB0cjsKICAg
ICBhdXRvKiBwbGF5YmFja1Nlc3Npb25JbnRlcmZhY2UgPSB2aWRlb0Z1bGxzY3JlZW5JbnRlcmZh
Y2UgPyAmdmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlLT5wbGF5YmFja1Nlc3Npb25JbnRlcmZhY2Uo
KSA6IG51bGxwdHI7CkBAIC00ODAsNyArNDgwLDcgQEAgLSAoQk9PTClnZXN0dXJlUmVjb2duaXpl
cjooVUlHZXN0dXJlUmVjb2duaXplciAqKWdlc3R1cmVSZWNvZ25pemVyIHNob3VsZFJlY2VpdmUK
IEBkeW5hbWljIF9tYW5hZ2VyOwogLSAoV2ViS2l0OjpXZWJGdWxsU2NyZWVuTWFuYWdlclByb3h5
KilfbWFuYWdlcgogewotICAgIGlmIChhdXRvKiBwYWdlID0gW3NlbGYuX3dlYlZpZXcgX3BhZ2Vd
KQorICAgIGlmIChhdXRvIHBhZ2UgPSBbc2VsZi5fd2ViVmlldyBfcGFnZV0pCiAgICAgICAgIHJl
dHVybiBwYWdlLT5mdWxsU2NyZWVuTWFuYWdlcigpOwogICAgIHJldHVybiBudWxscHRyOwogfQpA
QCAtNTA0LDcgKzUwNCw3IEBAIC0gKHZvaWQpX2NhbmNlbEFjdGlvbjooaWQpc2VuZGVyCiAKIC0g
KHZvaWQpX3RvZ2dsZVBpUEFjdGlvbjooaWQpc2VuZGVyCiB7Ci0gICAgV2ViS2l0OjpXZWJQYWdl
UHJveHkqIHBhZ2UgPSBbc2VsZi5fd2ViVmlldyBfcGFnZV07CisgICAgYXV0byBwYWdlID0gW3Nl
bGYuX3dlYlZpZXcgX3BhZ2VdOwogICAgIGlmICghcGFnZSkKICAgICAgICAgcmV0dXJuOwogCkBA
IC01NTgsMjEgKzU1OCwyMSBAQCAtICh2b2lkKV9zaG93UGhpc2hpbmdBbGVydAogICAgIE5TU3Ry
aW5nICphbGVydE1lc3NhZ2UgPSBbTlNTdHJpbmcgc3RyaW5nV2l0aEZvcm1hdDpXRUJfVUlfU1RS
SU5HKCJUeXBpbmcgaXMgbm90IGFsbG93ZWQgaW4gZnVsbCBzY3JlZW4gd2Vic2l0ZXMuIOKAnCVA
4oCdIG1heSBiZSBzaG93aW5nIGEgZmFrZSBrZXlib2FyZCB0byB0cmljayB5b3UgaW50byBkaXNj
bG9zaW5nIHBlcnNvbmFsIG9yIGZpbmFuY2lhbCBpbmZvcm1hdGlvbi4iLCAiRnVsbCBTY3JlZW4g
RGVjZXB0aXZlIFdlYnNpdGUgV2FybmluZyBTaGVldCBDb250ZW50IFRleHQiKSwgKE5TU3RyaW5n
ICopc2VsZi5sb2NhdGlvbl07CiAgICAgVUlBbGVydENvbnRyb2xsZXIqIGFsZXJ0ID0gW1VJQWxl
cnRDb250cm9sbGVyIGFsZXJ0Q29udHJvbGxlcldpdGhUaXRsZTphbGVydFRpdGxlIG1lc3NhZ2U6
YWxlcnRNZXNzYWdlIHByZWZlcnJlZFN0eWxlOlVJQWxlcnRDb250cm9sbGVyU3R5bGVBbGVydF07
CiAKLSAgICBpZiAoYXV0byogcGFnZSA9IFtzZWxmLl93ZWJWaWV3IF9wYWdlXSkgeworICAgIGlm
IChhdXRvIHBhZ2UgPSBbc2VsZi5fd2ViVmlldyBfcGFnZV0pIHsKICAgICAgICAgcGFnZS0+c3Vz
cGVuZEFsbE1lZGlhUGxheWJhY2soKTsKICAgICAgICAgcGFnZS0+c3VzcGVuZEFjdGl2ZURPTU9i
amVjdHNBbmRBbmltYXRpb25zKCk7CiAgICAgfQogCiAgICAgVUlBbGVydEFjdGlvbiogZXhpdEFj
dGlvbiA9IFtVSUFsZXJ0QWN0aW9uIGFjdGlvbldpdGhUaXRsZTpXRUJfVUlfU1RSSU5HX0tFWSgi
RXhpdCBGdWxsIFNjcmVlbiIsICJFeGl0IEZ1bGwgU2NyZWVuIChFbGVtZW50IEZ1bGwgU2NyZWVu
KSIsICJGdWxsIFNjcmVlbiBEZWNlcHRpdmUgV2Vic2l0ZSBFeGl0IEFjdGlvbiIpIHN0eWxlOlVJ
QWxlcnRBY3Rpb25TdHlsZUNhbmNlbCBoYW5kbGVyOl4oVUlBbGVydEFjdGlvbiAqIGFjdGlvbikg
ewogICAgICAgICBbc2VsZiBfY2FuY2VsQWN0aW9uOmFjdGlvbl07Ci0gICAgICAgIGlmIChhdXRv
KiBwYWdlID0gW3NlbGYuX3dlYlZpZXcgX3BhZ2VdKSB7CisgICAgICAgIGlmIChhdXRvIHBhZ2Ug
PSBbc2VsZi5fd2ViVmlldyBfcGFnZV0pIHsKICAgICAgICAgICAgIHBhZ2UtPnJlc3VtZUFjdGl2
ZURPTU9iamVjdHNBbmRBbmltYXRpb25zKCk7CiAgICAgICAgICAgICBwYWdlLT5yZXN1bWVBbGxN
ZWRpYVBsYXliYWNrKCk7CiAgICAgICAgIH0KICAgICB9XTsKIAogICAgIFVJQWxlcnRBY3Rpb24q
IHN0YXlBY3Rpb24gPSBbVUlBbGVydEFjdGlvbiBhY3Rpb25XaXRoVGl0bGU6V0VCX1VJX1NUUklO
R19LRVkoIlN0YXkgaW4gRnVsbCBTY3JlZW4iLCAiU3RheSBpbiBGdWxsIFNjcmVlbiAoRWxlbWVu
dCBGdWxsIFNjcmVlbikiLCAiRnVsbCBTY3JlZW4gRGVjZXB0aXZlIFdlYnNpdGUgU3RheSBBY3Rp
b24iKSBzdHlsZTpVSUFsZXJ0QWN0aW9uU3R5bGVEZWZhdWx0IGhhbmRsZXI6XihVSUFsZXJ0QWN0
aW9uICogYWN0aW9uKSB7Ci0gICAgICAgIGlmIChhdXRvKiBwYWdlID0gW3NlbGYuX3dlYlZpZXcg
X3BhZ2VdKSB7CisgICAgICAgIGlmIChhdXRvIHBhZ2UgPSBbc2VsZi5fd2ViVmlldyBfcGFnZV0p
IHsKICAgICAgICAgICAgIHBhZ2UtPnJlc3VtZUFjdGl2ZURPTU9iamVjdHNBbmRBbmltYXRpb25z
KCk7CiAgICAgICAgICAgICBwYWdlLT5yZXN1bWVBbGxNZWRpYVBsYXliYWNrKCk7CiAgICAgICAg
IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9mdWxsc2NyZWVuL1dL
RnVsbFNjcmVlbldpbmRvd0NvbnRyb2xsZXJJT1MubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9pb3MvZnVsbHNjcmVlbi9XS0Z1bGxTY3JlZW5XaW5kb3dDb250cm9sbGVySU9TLm1tCmluZGV4
IDg1ZWE4MjA2YTNlZDY2YTE4MjYwOTJlNDVmODZlMDcxNjNiYzJkNTYuLjVmNDRhOGU5ZjA5MjJi
ZmM3YTc3ZjJlZTk4NzczNTMxNTFiMGZhM2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL2lvcy9mdWxsc2NyZWVuL1dLRnVsbFNjcmVlbldpbmRvd0NvbnRyb2xsZXJJT1MubW0K
KysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL2Z1bGxzY3JlZW4vV0tGdWxsU2NyZWVu
V2luZG93Q29udHJvbGxlcklPUy5tbQpAQCAtMTE1LDcgKzExNSw3IEBAIHN0cnVjdCBXS1dlYlZp
ZXdTdGF0ZSB7CiAgICAgICAgIFtbd2ViVmlldyBzY3JvbGxWaWV3XSBzZXRDb250ZW50SW5zZXQ6
X3NhdmVkRWRnZUluc2V0XTsKICAgICAgICAgW1t3ZWJWaWV3IHNjcm9sbFZpZXddIHNldENvbnRl
bnRPZmZzZXQ6X3NhdmVkQ29udGVudE9mZnNldF07CiAgICAgICAgIFtbd2ViVmlldyBzY3JvbGxW
aWV3XSBzZXRTY3JvbGxJbmRpY2F0b3JJbnNldHM6X3NhdmVkU2Nyb2xsSW5kaWNhdG9ySW5zZXRz
XTsKLSAgICAgICAgaWYgKGF1dG8qIHBhZ2UgPSB3ZWJWaWV3Ll9wYWdlKSB7CisgICAgICAgIGlm
IChhdXRvIHBhZ2UgPSB3ZWJWaWV3Ll9wYWdlKSB7CiAgICAgICAgICAgICBwYWdlLT5zZXRUb3BD
b250ZW50SW5zZXQoX3NhdmVkVG9wQ29udGVudEluc2V0KTsKICAgICAgICAgICAgIHBhZ2UtPnNl
dEZvcmNlQWx3YXlzVXNlclNjYWxhYmxlKF9zYXZlZEZvcmNlQWx3YXlzVXNlclNjYWxhYmxlKTsK
ICAgICAgICAgfQpAQCAtMTM1LDcgKzEzNSw3IEBAIHN0cnVjdCBXS1dlYlZpZXdTdGF0ZSB7CiBB
TExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19CRUdJTgogICAgICAgICBfc2F2ZWRTY3JvbGxJ
bmRpY2F0b3JJbnNldHMgPSBbW3dlYlZpZXcgc2Nyb2xsVmlld10gc2Nyb2xsSW5kaWNhdG9ySW5z
ZXRzXTsKIEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0VORAotICAgICAgICBpZiAoYXV0
byogcGFnZSA9IHdlYlZpZXcuX3BhZ2UpIHsKKyAgICAgICAgaWYgKGF1dG8gcGFnZSA9IHdlYlZp
ZXcuX3BhZ2UpIHsKICAgICAgICAgICAgIF9zYXZlZFRvcENvbnRlbnRJbnNldCA9IHBhZ2UtPnRv
cENvbnRlbnRJbnNldCgpOwogICAgICAgICAgICAgX3NhdmVkRm9yY2VBbHdheXNVc2VyU2NhbGFi
bGUgPSBwYWdlLT5mb3JjZUFsd2F5c1VzZXJTY2FsYWJsZSgpOwogICAgICAgICB9CkBAIC01MDUs
NyArNTA1LDcgQEAgLSAodm9pZCllbnRlckZ1bGxTY3JlZW4KICAgICAgICAgcmV0dXJuOwogCiAg
ICAgUmV0YWluUHRyPFdLV2ViVmlldz4gd2ViVmlldyA9IHNlbGYuX3dlYlZpZXc7Ci0gICAgYXV0
byogcGFnZSA9IFt3ZWJWaWV3IF9wYWdlXTsKKyAgICBhdXRvIHBhZ2UgPSBbd2ViVmlldyBfcGFn
ZV07CiAgICAgYXV0byogbWFuYWdlciA9IHNlbGYuX21hbmFnZXI7CiAgICAgaWYgKCFwYWdlIHx8
ICFtYW5hZ2VyKQogICAgICAgICByZXR1cm47CkBAIC01NjcsNyArNTY3LDcgQEAgLSAodm9pZCll
bnRlckZ1bGxTY3JlZW4KICAgICBXS1NuYXBzaG90Q29uZmlndXJhdGlvbiogY29uZmlnID0gbmls
OwogICAgIFt3ZWJWaWV3IHRha2VTbmFwc2hvdFdpdGhDb25maWd1cmF0aW9uOmNvbmZpZyBjb21w
bGV0aW9uSGFuZGxlcjpeKFVJSW1hZ2UgKiBzbmFwc2hvdEltYWdlLCBOU0Vycm9yICogZXJyb3Ip
IHsKICAgICAgICAgUmV0YWluUHRyPFdLV2ViVmlldz4gd2ViVmlldyA9IHNlbGYuX3dlYlZpZXc7
Ci0gICAgICAgIGF1dG8qIHBhZ2UgPSBbc2VsZi5fd2ViVmlldyBfcGFnZV07CisgICAgICAgIGF1
dG8gcGFnZSA9IFtzZWxmLl93ZWJWaWV3IF9wYWdlXTsKICAgICAgICAgaWYgKCFwYWdlKQogICAg
ICAgICAgICAgcmV0dXJuOwogCkBAIC02NTQsNyArNjU0LDcgQEAgLSAodm9pZCliZWdhbkVudGVy
RnVsbFNjcmVlbldpdGhJbml0aWFsRnJhbWU6KENHUmVjdClpbml0aWFsRnJhbWUgZmluYWxGcmFt
ZTooQ0cKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgfQogCi0gICAgICAgIGF1dG8qIHBh
Z2UgPSBbc2VsZi5fd2ViVmlldyBfcGFnZV07CisgICAgICAgIGF1dG8gcGFnZSA9IFtzZWxmLl93
ZWJWaWV3IF9wYWdlXTsKICAgICAgICAgYXV0byogbWFuYWdlciA9IHNlbGYuX21hbmFnZXI7CiAg
ICAgICAgIGlmIChwYWdlICYmIG1hbmFnZXIpIHsKICAgICAgICAgICAgIFtzZWxmLl93ZWJWaWV3
IGJlY29tZUZpcnN0UmVzcG9uZGVyXTsKQEAgLTcxNiw3ICs3MTYsNyBAQCAtICh2b2lkKWJlZ2Fu
RXhpdEZ1bGxTY3JlZW5XaXRoSW5pdGlhbEZyYW1lOihDR1JlY3QpaW5pdGlhbEZyYW1lIGZpbmFs
RnJhbWU6KENHUgogICAgIF9maW5hbEZyYW1lLnNpemUgPSBXZWJLaXQ6OnNpemVFeHBhbmRlZFRv
U2l6ZShfZmluYWxGcmFtZS5zaXplLCBDR1NpemVNYWtlKDEsIDEpKTsKICAgICBfZmluYWxGcmFt
ZSA9IFdlYktpdDo6c2FmZUlubGluZVJlY3QoX2ZpbmFsRnJhbWUsIFtfcm9vdFZpZXdDb250cm9s
bGVyIHZpZXddLmZyYW1lLnNpemUpOwogCi0gICAgaWYgKGF1dG8qIHBhZ2UgPSBbc2VsZi5fd2Vi
VmlldyBfcGFnZV0pCisgICAgaWYgKGF1dG8gcGFnZSA9IFtzZWxmLl93ZWJWaWV3IF9wYWdlXSkK
ICAgICAgICAgcGFnZS0+c2V0U3VwcHJlc3NWaXNpYmlsaXR5VXBkYXRlcyh0cnVlKTsKIAogICAg
IFtfZnVsbHNjcmVlblZpZXdDb250cm9sbGVyIHNldFByZWZlcnNTdGF0dXNCYXJIaWRkZW46Tk9d
OwpAQCAtNzQ4LDcgKzc0OCw3IEBAIC0gKHZvaWQpX2NvbXBsZXRlZEV4aXRGdWxsU2NyZWVuCiAg
ICAgW3dlYlZpZXcgYmVjb21lRmlyc3RSZXNwb25kZXJdOwogCiAgICAgX3ZpZXdTdGF0ZS5hcHBs
eVRvKHdlYlZpZXcuZ2V0KCkpOwotICAgIGlmIChhdXRvKiBwYWdlID0gW3dlYlZpZXcgX3BhZ2Vd
KQorICAgIGlmIChhdXRvIHBhZ2UgPSBbd2ViVmlldyBfcGFnZV0pCiAgICAgICAgIHBhZ2UtPnNl
dE92ZXJyaWRlVmlld3BvcnRBcmd1bWVudHMoV1RGOjpudWxsb3B0KTsKIAogICAgIFt3ZWJWaWV3
IHNldE5lZWRzTGF5b3V0XTsKQEAgLTc3NSwxMSArNzc1LDExIEBAIC0gKHZvaWQpX2NvbXBsZXRl
ZEV4aXRGdWxsU2NyZWVuCiAgICAgICAgIF93ZWJWaWV3UGxhY2Vob2xkZXIuZ2V0KCkucGFyZW50
ID0gbmlsOwogICAgICAgICBbX3dlYlZpZXdQbGFjZWhvbGRlciByZW1vdmVGcm9tU3VwZXJ2aWV3
XTsKIAotICAgICAgICBpZiAoYXV0byogcGFnZSA9IFtzZWxmLl93ZWJWaWV3IF9wYWdlXSkKKyAg
ICAgICAgaWYgKGF1dG8gcGFnZSA9IFtzZWxmLl93ZWJWaWV3IF9wYWdlXSkKICAgICAgICAgICAg
IHBhZ2UtPnNldFN1cHByZXNzVmlzaWJpbGl0eVVwZGF0ZXMoZmFsc2UpOwogICAgIH0pOwogCi0g
ICAgaWYgKGF1dG8qIHBhZ2UgPSBbc2VsZi5fd2ViVmlldyBfcGFnZV0pCisgICAgaWYgKGF1dG8g
cGFnZSA9IFtzZWxmLl93ZWJWaWV3IF9wYWdlXSkKICAgICAgICAgcGFnZS0+Zm9yY2VSZXBhaW50
KF9yZXBhaW50Q2FsbGJhY2suY29weVJlZigpKTsKICAgICBlbHNlCiAgICAgICAgIF9yZXBhaW50
Q2FsbGJhY2stPnBlcmZvcm1DYWxsYmFjaygpOwpAQCAtODkzLDcgKzg5Myw3IEBAIC0gKHZvaWQp
X2V4aXRGdWxsc2NyZWVuSW1tZWRpYXRlbHkKICAgICBSZXRhaW5QdHI8V0tXZWJWaWV3PiB3ZWJW
aWV3ID0gc2VsZi5fd2ViVmlldzsKICAgICBfd2ViVmlld1BsYWNlaG9sZGVyLmdldCgpLnBhcmVu
dCA9IG5pbDsKICAgICBXZWJLaXQ6OnJlcGxhY2VWaWV3V2l0aFZpZXcoX3dlYlZpZXdQbGFjZWhv
bGRlci5nZXQoKSwgd2ViVmlldy5nZXQoKSk7Ci0gICAgaWYgKGF1dG8qIHBhZ2UgPSBbd2ViVmll
dyBfcGFnZV0pCisgICAgaWYgKGF1dG8gcGFnZSA9IFt3ZWJWaWV3IF9wYWdlXSkKICAgICAgICAg
cGFnZS0+c2V0U3VwcHJlc3NWaXNpYmlsaXR5VXBkYXRlcyhmYWxzZSk7CiAgICAgX3dlYlZpZXdQ
bGFjZWhvbGRlciA9IG5pbDsKIH0KQEAgLTk5Miw3ICs5OTIsNyBAQCAtICh2b2lkKV91cGRhdGVM
b2NhdGlvbkluZm8KIAogLSAoV2ViS2l0OjpXZWJGdWxsU2NyZWVuTWFuYWdlclByb3h5KilfbWFu
YWdlcgogewotICAgIGlmIChhdXRvKiBwYWdlID0gW3NlbGYuX3dlYlZpZXcgX3BhZ2VdKQorICAg
IGlmIChhdXRvIHBhZ2UgPSBbc2VsZi5fd2ViVmlldyBfcGFnZV0pCiAgICAgICAgIHJldHVybiBw
YWdlLT5mdWxsU2NyZWVuTWFuYWdlcigpOwogICAgIHJldHVybiBudWxscHRyOwogfQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvbWFjL1dLRnVsbFNjcmVlbldpbmRvd0NvbnRy
b2xsZXIuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL21hYy9XS0Z1bGxTY3JlZW5XaW5kb3dD
b250cm9sbGVyLmgKaW5kZXggMDFkN2EyYWI3NTE4ZTYzNzk4ZWZhZjI2ZDM5YzY5NTU4MDFjN2Ni
My4uYjk0MDdmMTMwNDRhZTg1MTg1NWNiODEyNjg0YjFjY2JhYzA3ZjMxMiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvbWFjL1dLRnVsbFNjcmVlbldpbmRvd0NvbnRyb2xsZXIu
aAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9tYWMvV0tGdWxsU2NyZWVuV2luZG93Q29u
dHJvbGxlci5oCkBAIC0yNyw2ICsyNyw4IEBACiAKICNpbXBvcnQgPEFwcEtpdC9BcHBLaXQuaD4K
ICNpbXBvcnQgIkdlbmVyaWNDYWxsYmFjay5oIgorI2ltcG9ydCA8d3RmL05ha2VkUHRyLmg+Cisj
aW1wb3J0IDx3dGYvTmFrZWRSZWYuaD4KICNpbXBvcnQgPHd0Zi9SZXRhaW5QdHIuaD4KIAogbmFt
ZXNwYWNlIFdlYktpdCB7IApAQCAtNDcsNyArNDksNyBAQCB0eXBlZGVmIGVudW0gRnVsbFNjcmVl
blN0YXRlIDogTlNJbnRlZ2VyIEZ1bGxTY3JlZW5TdGF0ZTsKIEBpbnRlcmZhY2UgV0tGdWxsU2Ny
ZWVuV2luZG93Q29udHJvbGxlciA6IE5TV2luZG93Q29udHJvbGxlcjxOU1dpbmRvd0RlbGVnYXRl
PiB7CiBAcHJpdmF0ZQogICAgIE5TVmlldyAqX3dlYlZpZXc7IC8vIENhbm5vdCBiZSByZXRhaW5l
ZCwgc2VlIDxyZGFyOi8vcHJvYmxlbS8xNDg4NDY2Nj4uCi0gICAgV2ViS2l0OjpXZWJQYWdlUHJv
eHkqIF9wYWdlOworICAgIE5ha2VkUHRyPFdlYktpdDo6V2ViUGFnZVByb3h5PiBfcGFnZTsKICAg
ICBSZXRhaW5QdHI8V2ViQ29yZUZ1bGxTY3JlZW5QbGFjZWhvbGRlclZpZXc+IF93ZWJWaWV3UGxh
Y2Vob2xkZXI7CiAgICAgUmV0YWluUHRyPE5TVmlldz4gX2V4aXRQbGFjZWhvbGRlcjsKICAgICBS
ZXRhaW5QdHI8TlNWaWV3PiBfY2xpcFZpZXc7CkBAIC03MCw3ICs3Miw3IEBAIHR5cGVkZWYgZW51
bSBGdWxsU2NyZWVuU3RhdGUgOiBOU0ludGVnZXIgRnVsbFNjcmVlblN0YXRlOwogQHByb3BlcnR5
IChyZWFkb25seSkgTlNSZWN0IGZpbmFsRnJhbWU7CiBAcHJvcGVydHkgKGFzc2lnbikgTlNBcnJh
eSAqc2F2ZWRDb25zdHJhaW50czsKIAotLSAoaWQpaW5pdFdpdGhXaW5kb3c6KE5TV2luZG93ICop
d2luZG93IHdlYlZpZXc6KE5TVmlldyAqKXdlYlZpZXcgcGFnZTooV2ViS2l0OjpXZWJQYWdlUHJv
eHkmKXBhZ2U7CistIChpZClpbml0V2l0aFdpbmRvdzooTlNXaW5kb3cgKil3aW5kb3cgd2ViVmll
dzooTlNWaWV3ICopd2ViVmlldyBwYWdlOihOYWtlZFJlZjxXZWJLaXQ6OldlYlBhZ2VQcm94eT4p
cGFnZTsKIAogLSAoV2ViQ29yZUZ1bGxTY3JlZW5QbGFjZWhvbGRlclZpZXcqKXdlYlZpZXdQbGFj
ZWhvbGRlcjsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvbWFjL1dLRnVs
bFNjcmVlbldpbmRvd0NvbnRyb2xsZXIubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9tYWMv
V0tGdWxsU2NyZWVuV2luZG93Q29udHJvbGxlci5tbQppbmRleCA4MjVmODNhZTg4NmRkOGNkZDA3
NTMwNmEwNzgyMTYyMWM5ZDllMTQ0Li42ZGRmMGQ2Y2FmODg5ZjljYTBlMTliNTE2NjRjYzA5NGE5
NzA3ZWIyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9tYWMvV0tGdWxsU2Ny
ZWVuV2luZG93Q29udHJvbGxlci5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9tYWMv
V0tGdWxsU2NyZWVuV2luZG93Q29udHJvbGxlci5tbQpAQCAtNDksNiArNDksNyBAQAogI2ltcG9y
dCA8cGFsL3NwaS9jZy9Db3JlR3JhcGhpY3NTUEkuaD4KICNpbXBvcnQgPHBhbC9zeXN0ZW0vU2xl
ZXBEaXNhYmxlci5oPgogI2ltcG9ydCA8d3RmL0Jsb2NrT2JqQ0V4Y2VwdGlvbnMuaD4KKyNpbXBv
cnQgPHd0Zi9OYWtlZFJlZi5oPgogCiBzdGF0aWMgY29uc3QgTlNUaW1lSW50ZXJ2YWwgRGVmYXVs
dFdhdGNoZG9nVGltZXJJbnRlcnZhbCA9IDE7CiAKQEAgLTEyMSw3ICsxMjIsNyBAQCBAaW1wbGVt
ZW50YXRpb24gV0tGdWxsU2NyZWVuV2luZG93Q29udHJvbGxlcgogCiAjcHJhZ21hIG1hcmsgLQog
I3ByYWdtYSBtYXJrIEluaXRpYWxpemF0aW9uCi0tIChpZClpbml0V2l0aFdpbmRvdzooTlNXaW5k
b3cgKil3aW5kb3cgd2ViVmlldzooTlNWaWV3ICopd2ViVmlldyBwYWdlOihXZWJLaXQ6OldlYlBh
Z2VQcm94eSYpcGFnZQorLSAoaWQpaW5pdFdpdGhXaW5kb3c6KE5TV2luZG93ICopd2luZG93IHdl
YlZpZXc6KE5TVmlldyAqKXdlYlZpZXcgcGFnZTooTmFrZWRSZWY8V2ViS2l0OjpXZWJQYWdlUHJv
eHk+KXBhZ2UKIHsKICAgICBzZWxmID0gW3N1cGVyIGluaXRXaXRoV2luZG93OndpbmRvd107CiAg
ICAgaWYgKCFzZWxmKQpAQCAtMTUwLDcgKzE1MSw3IEBAIC0gKGlkKWluaXRXaXRoV2luZG93OihO
U1dpbmRvdyAqKXdpbmRvdyB3ZWJWaWV3OihOU1ZpZXcgKil3ZWJWaWV3IHBhZ2U6KFdlYktpdDo6
CiAgICAgW3NlbGYgd2luZG93RGlkTG9hZF07CiAgICAgW3dpbmRvdyBkaXNwbGF5SWZOZWVkZWRd
OwogICAgIF93ZWJWaWV3ID0gd2ViVmlldzsKLSAgICBfcGFnZSA9ICZwYWdlOworICAgIF9wYWdl
ID0gcGFnZS5wdHIoKTsKIAogICAgIF92aWRlb0Z1bGxzY3JlZW5DbGllbnQgPSBtYWtlVW5pcXVl
PFdlYktpdDo6V0tGdWxsU2NyZWVuV2luZG93Q29udHJvbGxlclZpZGVvRnVsbHNjcmVlbk1vZGVs
Q2xpZW50PigpOwogICAgIF92aWRlb0Z1bGxzY3JlZW5DbGllbnQtPnNldFBhcmVudChzZWxmKTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL21hYy9XS0ltbWVkaWF0ZUFjdGlv
bkNvbnRyb2xsZXIuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL21hYy9XS0ltbWVkaWF0ZUFj
dGlvbkNvbnRyb2xsZXIuaAppbmRleCBmNmJmNjVmMDc0MjgyMmZmOWIxYzBiNjllZTc1YTc4N2Nl
NGY3YzNjLi5mMmQ5N2ZlMDc4MzA5ODI3ZGRkMGEyM2MyMTViZTI2MDM2MjJiZDFhIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9tYWMvV0tJbW1lZGlhdGVBY3Rpb25Db250cm9s
bGVyLmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvbWFjL1dLSW1tZWRpYXRlQWN0aW9u
Q29udHJvbGxlci5oCkBAIC0zMSw2ICszMSw4IEBACiAjaW1wb3J0ICJXS0ltbWVkaWF0ZUFjdGlv
blR5cGVzLmgiCiAjaW1wb3J0ICJXZWJIaXRUZXN0UmVzdWx0RGF0YS5oIgogI2ltcG9ydCA8cGFs
L3NwaS9tYWMvTlNJbW1lZGlhdGVBY3Rpb25HZXN0dXJlUmVjb2duaXplclNQSS5oPgorI2ltcG9y
dCA8d3RmL05ha2VkUHRyLmg+CisjaW1wb3J0IDx3dGYvTmFrZWRSZWYuaD4KICNpbXBvcnQgPHd0
Zi9SZXRhaW5QdHIuaD4KIAogbmFtZXNwYWNlIFdlYktpdCB7CkBAIC01MCw5ICs1Miw5IEBAIGVu
dW0gY2xhc3MgSW1tZWRpYXRlQWN0aW9uU3RhdGUgewogCiBAaW50ZXJmYWNlIFdLSW1tZWRpYXRl
QWN0aW9uQ29udHJvbGxlciA6IE5TT2JqZWN0IDxOU0ltbWVkaWF0ZUFjdGlvbkdlc3R1cmVSZWNv
Z25pemVyRGVsZWdhdGU+IHsKIEBwcml2YXRlCi0gICAgV2ViS2l0OjpXZWJQYWdlUHJveHkqIF9w
YWdlOworICAgIE5ha2VkUHRyPFdlYktpdDo6V2ViUGFnZVByb3h5PiBfcGFnZTsKICAgICBOU1Zp
ZXcgKl92aWV3OwotICAgIFdlYktpdDo6V2ViVmlld0ltcGwqIF92aWV3SW1wbDsKKyAgICBOYWtl
ZFB0cjxXZWJLaXQ6OldlYlZpZXdJbXBsPiBfdmlld0ltcGw7CiAKICAgICBXZWJLaXQ6OkltbWVk
aWF0ZUFjdGlvblN0YXRlIF9zdGF0ZTsKICAgICBXZWJLaXQ6OldlYkhpdFRlc3RSZXN1bHREYXRh
IF9oaXRUZXN0UmVzdWx0RGF0YTsKQEAgLTY4LDcgKzcwLDcgQEAgZW51bSBjbGFzcyBJbW1lZGlh
dGVBY3Rpb25TdGF0ZSB7CiAgICAgQk9PTCBfaGFzQWN0aXZlSW1tZWRpYXRlQWN0aW9uOwogfQog
Ci0tIChpbnN0YW5jZXR5cGUpaW5pdFdpdGhQYWdlOihXZWJLaXQ6OldlYlBhZ2VQcm94eSYpcGFn
ZSB2aWV3OihOU1ZpZXcgKil2aWV3IHZpZXdJbXBsOihXZWJLaXQ6OldlYlZpZXdJbXBsJil2aWV3
SW1wbCByZWNvZ25pemVyOihOU0ltbWVkaWF0ZUFjdGlvbkdlc3R1cmVSZWNvZ25pemVyICopaW1t
ZWRpYXRlQWN0aW9uUmVjb2duaXplcjsKKy0gKGluc3RhbmNldHlwZSlpbml0V2l0aFBhZ2U6KE5h
a2VkUmVmPFdlYktpdDo6V2ViUGFnZVByb3h5PilwYWdlIHZpZXc6KE5TVmlldyAqKXZpZXcgdmll
d0ltcGw6KE5ha2VkUmVmPFdlYktpdDo6V2ViVmlld0ltcGw+KXZpZXdJbXBsIHJlY29nbml6ZXI6
KE5TSW1tZWRpYXRlQWN0aW9uR2VzdHVyZVJlY29nbml6ZXIgKilpbW1lZGlhdGVBY3Rpb25SZWNv
Z25pemVyOwogLSAodm9pZCl3aWxsRGVzdHJveVZpZXc6KE5TVmlldyAqKXZpZXc7CiAtICh2b2lk
KWRpZFBlcmZvcm1JbW1lZGlhdGVBY3Rpb25IaXRUZXN0Oihjb25zdCBXZWJLaXQ6OldlYkhpdFRl
c3RSZXN1bHREYXRhJiloaXRUZXN0UmVzdWx0IGNvbnRlbnRQcmV2ZW50c0RlZmF1bHQ6KEJPT0wp
Y29udGVudFByZXZlbnRzRGVmYXVsdCB1c2VyRGF0YTooQVBJOjpPYmplY3QqKXVzZXJEYXRhOwog
LSAodm9pZClkaXNtaXNzQ29udGVudFJlbGF0aXZlQ2hpbGRXaW5kb3dzOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvbWFjL1dLSW1tZWRpYXRlQWN0aW9uQ29udHJvbGxlci5t
bSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL21hYy9XS0ltbWVkaWF0ZUFjdGlvbkNvbnRyb2xs
ZXIubW0KaW5kZXggYWU4N2FhOWNiMGQzZjkyYWRkMDcxM2MxZDBiMDkzMGY3ZTExODA2Ny4uMzhk
YmYxMDRlNzU1ZjM0MzY5MjExYWRmMjlhZWJkMTkzYjAyMmZkMSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvbWFjL1dLSW1tZWRpYXRlQWN0aW9uQ29udHJvbGxlci5tbQorKysg
Yi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9tYWMvV0tJbW1lZGlhdGVBY3Rpb25Db250cm9sbGVy
Lm1tCkBAIC02MCwxNiArNjAsMTYgQEAgQGVuZAogCiBAaW1wbGVtZW50YXRpb24gV0tJbW1lZGlh
dGVBY3Rpb25Db250cm9sbGVyCiAKLS0gKGluc3RhbmNldHlwZSlpbml0V2l0aFBhZ2U6KFdlYktp
dDo6V2ViUGFnZVByb3h5JilwYWdlIHZpZXc6KE5TVmlldyAqKXZpZXcgdmlld0ltcGw6KFdlYktp
dDo6V2ViVmlld0ltcGwmKXZpZXdJbXBsIHJlY29nbml6ZXI6KE5TSW1tZWRpYXRlQWN0aW9uR2Vz
dHVyZVJlY29nbml6ZXIgKilpbW1lZGlhdGVBY3Rpb25SZWNvZ25pemVyCistIChpbnN0YW5jZXR5
cGUpaW5pdFdpdGhQYWdlOihOYWtlZFJlZjxXZWJLaXQ6OldlYlBhZ2VQcm94eT4pcGFnZSB2aWV3
OihOU1ZpZXcgKil2aWV3IHZpZXdJbXBsOihOYWtlZFJlZjxXZWJLaXQ6OldlYlZpZXdJbXBsPil2
aWV3SW1wbCByZWNvZ25pemVyOihOU0ltbWVkaWF0ZUFjdGlvbkdlc3R1cmVSZWNvZ25pemVyICop
aW1tZWRpYXRlQWN0aW9uUmVjb2duaXplcgogewogICAgIHNlbGYgPSBbc3VwZXIgaW5pdF07CiAK
ICAgICBpZiAoIXNlbGYpCiAgICAgICAgIHJldHVybiBuaWw7CiAKLSAgICBfcGFnZSA9ICZwYWdl
OworICAgIF9wYWdlID0gcGFnZS5wdHIoKTsKICAgICBfdmlldyA9IHZpZXc7Ci0gICAgX3ZpZXdJ
bXBsID0gJnZpZXdJbXBsOworICAgIF92aWV3SW1wbCA9IHZpZXdJbXBsLnB0cigpOwogICAgIF90
eXBlID0ga1dLSW1tZWRpYXRlQWN0aW9uTm9uZTsKICAgICBfaW1tZWRpYXRlQWN0aW9uUmVjb2du
aXplciA9IGltbWVkaWF0ZUFjdGlvblJlY29nbml6ZXI7CiAgICAgX2hhc0FjdGl2ZUltbWVkaWF0
ZUFjdGlvbiA9IE5POwpAQCAtNDEyLDcgKzQxMiw3IEBAIC0gKGlkPE5TSW1tZWRpYXRlQWN0aW9u
QW5pbWF0aW9uQ29udHJvbGxlcj4pX2FuaW1hdGlvbkNvbnRyb2xsZXJGb3JEYXRhRGV0ZWN0ZWRU
CiAgICAgaWYgKCFbW2dldEREQWN0aW9uc01hbmFnZXJDbGFzcygpIHNoYXJlZE1hbmFnZXJdIGhh
c0FjdGlvbnNGb3JSZXN1bHQ6YWN0aW9uQ29udGV4dC5tYWluUmVzdWx0IGFjdGlvbkNvbnRleHQ6
YWN0aW9uQ29udGV4dF0pCiAgICAgICAgIHJldHVybiBuaWw7CiAKLSAgICBSZWZQdHI8V2ViS2l0
OjpXZWJQYWdlUHJveHk+IHBhZ2UgPSBfcGFnZTsKKyAgICBSZWZQdHI8V2ViS2l0OjpXZWJQYWdl
UHJveHk+IHBhZ2UgPSBfcGFnZS5nZXQoKTsKICAgICBXZWJDb3JlOjpQYWdlT3ZlcmxheTo6UGFn
ZU92ZXJsYXlJRCBvdmVybGF5SUQgPSBfaGl0VGVzdFJlc3VsdERhdGEuZGV0ZWN0ZWREYXRhT3Jp
Z2luYXRpbmdQYWdlT3ZlcmxheTsKICAgICBfY3VycmVudEFjdGlvbkNvbnRleHQgPSBbYWN0aW9u
Q29udGV4dCBjb250ZXh0Rm9yVmlldzpfdmlldyBhbHRNb2RlOllFUyBpbnRlcmFjdGlvblN0YXJ0
ZWRIYW5kbGVyOl4oKSB7CiAgICAgICAgIHBhZ2UtPnNlbmQoTWVzc2FnZXM6OldlYlBhZ2U6OkRh
dGFEZXRlY3RvcnNEaWRQcmVzZW50VUkob3ZlcmxheUlEKSk7CkBAIC00NDgsNyArNDQ4LDcgQEAg
LSAoaWQ8TlNJbW1lZGlhdGVBY3Rpb25BbmltYXRpb25Db250cm9sbGVyPilfYW5pbWF0aW9uQ29u
dHJvbGxlckZvckRhdGFEZXRlY3RlZEwKICAgICBbYWN0aW9uQ29udGV4dCBzZXRBbHRNb2RlOllF
U107CiAgICAgW2FjdGlvbkNvbnRleHQgc2V0SW1tZWRpYXRlOllFU107CiAKLSAgICBSZWZQdHI8
V2ViS2l0OjpXZWJQYWdlUHJveHk+IHBhZ2UgPSBfcGFnZTsKKyAgICBSZWZQdHI8V2ViS2l0OjpX
ZWJQYWdlUHJveHk+IHBhZ2UgPSBfcGFnZS5nZXQoKTsKICAgICBfY3VycmVudEFjdGlvbkNvbnRl
eHQgPSBbYWN0aW9uQ29udGV4dCBjb250ZXh0Rm9yVmlldzpfdmlldyBhbHRNb2RlOllFUyBpbnRl
cmFjdGlvblN0YXJ0ZWRIYW5kbGVyOl4oKSB7CiAgICAgfSBpbnRlcmFjdGlvbkNoYW5nZWRIYW5k
bGVyOl4oKSB7CiAgICAgICAgIGlmIChfaGl0VGVzdFJlc3VsdERhdGEubGlua1RleHRJbmRpY2F0
b3IpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9tYWMvV0tJbnNwZWN0b3JW
aWV3Q29udHJvbGxlci5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvbWFjL1dLSW5zcGVjdG9y
Vmlld0NvbnRyb2xsZXIuaAppbmRleCAyMGJiMmU2NjFiNWZlZmU3MzYxOWQwMWM2YzNjMzhhMzY2
MjhmMjkwLi4wOGJkMDhmZjlkNDg3YzQwYjVlZGQxYjcxZTc4YzM5Mzc5YWEyZjQzIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9tYWMvV0tJbnNwZWN0b3JWaWV3Q29udHJvbGxl
ci5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL21hYy9XS0luc3BlY3RvclZpZXdDb250
cm9sbGVyLmgKQEAgLTI2LDYgKzI2LDcgQEAKICNwcmFnbWEgb25jZQogCiAjaW1wb3J0IDxXZWJL
aXQvV0tGb3VuZGF0aW9uLmg+CisjaW1wb3J0IDx3dGYvTmFrZWRQdHIuaD4KIAogI2lmIFBMQVRG
T1JNKE1BQykKIApAQCAtNDQsNyArNDUsNyBAQCBOU19BU1NVTUVfTk9OTlVMTF9CRUdJTgogQHBy
b3BlcnR5IChub25hdG9taWMsIHJlYWRvbmx5KSBXS1dlYlZpZXcgKndlYlZpZXc7CiBAcHJvcGVy
dHkgKG5vbmF0b21pYywgd2VhaykgaWQgPFdLSW5zcGVjdG9yVmlld0NvbnRyb2xsZXJEZWxlZ2F0
ZT4gZGVsZWdhdGU7CiAKLS0gKGluc3RhbmNldHlwZSlpbml0V2l0aEluc3BlY3RlZFBhZ2U6KFdl
YktpdDo6V2ViUGFnZVByb3h5KiBfTnVsbGFibGUpaW5zcGVjdGVkUGFnZTsKKy0gKGluc3RhbmNl
dHlwZSlpbml0V2l0aEluc3BlY3RlZFBhZ2U6KE5ha2VkUHRyPFdlYktpdDo6V2ViUGFnZVByb3h5
PilpbnNwZWN0ZWRQYWdlOwogCiArIChCT09MKXZpZXdJc0luc3BlY3RvcldlYlZpZXc6KE5TVmll
dyAqKXZpZXc7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL21hYy9XS0lu
c3BlY3RvclZpZXdDb250cm9sbGVyLm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvbWFjL1dL
SW5zcGVjdG9yVmlld0NvbnRyb2xsZXIubW0KaW5kZXggMGY2NTcxYjJiZWY0YWM2OWJhYWMxYmVm
MTBmZGZmOTlkNzQyYjZiZC4uZDkyNjNlMGZkNmU2YWZhNmJhN2I1YTE5ODU5ODk1NDRmN2FhNzBl
OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvbWFjL1dLSW5zcGVjdG9yVmll
d0NvbnRyb2xsZXIubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvbWFjL1dLSW5zcGVj
dG9yVmlld0NvbnRyb2xsZXIubW0KQEAgLTQ5LDEyICs0OSwxMiBAQCBAaW50ZXJmYWNlIFdLSW5z
cGVjdG9yVmlld0NvbnRyb2xsZXIgKCkgPFdLVUlEZWxlZ2F0ZSwgV0tOYXZpZ2F0aW9uRGVsZWdh
dGUsIFdLSQogQGVuZAogCiBAaW1wbGVtZW50YXRpb24gV0tJbnNwZWN0b3JWaWV3Q29udHJvbGxl
ciB7Ci0gICAgV2ViS2l0OjpXZWJQYWdlUHJveHkqIF9pbnNwZWN0ZWRQYWdlOworICAgIE5ha2Vk
UHRyPFdlYktpdDo6V2ViUGFnZVByb3h5PiBfaW5zcGVjdGVkUGFnZTsKICAgICBSZXRhaW5QdHI8
V0tJbnNwZWN0b3JXS1dlYlZpZXc+IF93ZWJWaWV3OwogICAgIFdlYWtPYmpDUHRyPGlkIDxXS0lu
c3BlY3RvclZpZXdDb250cm9sbGVyRGVsZWdhdGU+PiBfZGVsZWdhdGU7CiB9CiAKLS0gKGluc3Rh
bmNldHlwZSlpbml0V2l0aEluc3BlY3RlZFBhZ2U6KFdlYktpdDo6V2ViUGFnZVByb3h5KilpbnNw
ZWN0ZWRQYWdlCistIChpbnN0YW5jZXR5cGUpaW5pdFdpdGhJbnNwZWN0ZWRQYWdlOihOYWtlZFB0
cjxXZWJLaXQ6OldlYlBhZ2VQcm94eT4paW5zcGVjdGVkUGFnZQogewogICAgIGlmICghKHNlbGYg
PSBbc3VwZXIgaW5pdF0pKQogICAgICAgICByZXR1cm4gbmlsOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvbWFjL1dLVGV4dEZpbmRlckNsaWVudC5oIGIvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvbWFjL1dLVGV4dEZpbmRlckNsaWVudC5oCmluZGV4IDc5ZmZlY2ZmYTVhYjQ5
MTc0MWUzNWFjMWFkY2RhMmRiYjk1ODEyMzIuLjliNjBkYmY2NjkyOWZmYzkzMmRiMzY3MjkxMGQ5
ODE5M2JiNTdmZTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL21hYy9XS1Rl
eHRGaW5kZXJDbGllbnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9tYWMvV0tUZXh0
RmluZGVyQ2xpZW50LmgKQEAgLTI3LDYgKzI3LDcgQEAKICNkZWZpbmUgV0tUZXh0RmluZGVyQ2xp
ZW50X2gKIAogI2ltcG9ydCA8V2ViS2l0L1dLRm91bmRhdGlvbi5oPgorI2ltcG9ydCA8d3RmL05h
a2VkUmVmLmg+CiAKICNpZiBQTEFURk9STShNQUMpCiAKQEAgLTM4LDcgKzM5LDcgQEAgY2xhc3Mg
V2ViUGFnZVByb3h5OwogCiBAaW50ZXJmYWNlIFdLVGV4dEZpbmRlckNsaWVudCA6IE5TT2JqZWN0
CiAKLS0gKGluc3RhbmNldHlwZSlpbml0V2l0aFBhZ2U6KFdlYktpdDo6V2ViUGFnZVByb3h5Jilw
YWdlIHZpZXc6KE5TVmlldyAqKXZpZXcgdXNlUGxhdGZvcm1GaW5kVUk6KEJPT0wpdXNlUGxhdGZv
cm1GaW5kVUk7CistIChpbnN0YW5jZXR5cGUpaW5pdFdpdGhQYWdlOihOYWtlZFJlZjxXZWJLaXQ6
OldlYlBhZ2VQcm94eT4pcGFnZSB2aWV3OihOU1ZpZXcgKil2aWV3IHVzZVBsYXRmb3JtRmluZFVJ
OihCT09MKXVzZVBsYXRmb3JtRmluZFVJOwogLSAodm9pZCl3aWxsRGVzdHJveVZpZXc6KE5TVmll
dyAqKXZpZXc7CiAKIEBlbmQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL21h
Yy9XS1RleHRGaW5kZXJDbGllbnQubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9tYWMvV0tU
ZXh0RmluZGVyQ2xpZW50Lm1tCmluZGV4IDY5ZDlkOWUyZDQ0NDg0M2QxNTI3MGY1MTE3Zjc3NGNk
MjM3ZDVkYjguLjM5NjhlZGE2M2RlZGUyOTA1ZWMyZjcwZTU1OWMxYjhkYTk0NDAyOGUgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL21hYy9XS1RleHRGaW5kZXJDbGllbnQubW0K
KysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvbWFjL1dLVGV4dEZpbmRlckNsaWVudC5tbQpA
QCAtMzYsNiArMzYsNyBAQAogI2ltcG9ydCA8cGFsL3NwaS9tYWMvTlNUZXh0RmluZGVyU1BJLmg+
CiAjaW1wb3J0IDx3dGYvQmxvY2tQdHIuaD4KICNpbXBvcnQgPHd0Zi9EZXF1ZS5oPgorI2ltcG9y
dCA8d3RmL05ha2VkUHRyLmg+CiAKIC8vIEZJWE1FOiBJbXBsZW1lbnQgc2Nyb2xsRmluZE1hdGNo
VG9WaXNpYmxlLgogLy8gRklYTUU6IFRoZSBOU1RleHRGaW5kZXIgb3ZlcmxheSBkb2Vzbid0IG1v
dmUgd2l0aCBzY3JvbGxpbmc7IHdlIHNob3VsZCBoYXZlIGEgbW9kZSB3aGVyZSB3ZSBtYW5hZ2Ug
dGhlIG92ZXJsYXkuCkBAIC0xNTEsMjEgKzE1MiwyMSBAQCAtICh1bnNpZ25lZClpbmRleAogQGVu
ZAogCiBAaW1wbGVtZW50YXRpb24gV0tUZXh0RmluZGVyQ2xpZW50IHsKLSAgICBXZWJLaXQ6Oldl
YlBhZ2VQcm94eSogX3BhZ2U7CisgICAgTmFrZWRQdHI8V2ViS2l0OjpXZWJQYWdlUHJveHk+IF9w
YWdlOwogICAgIE5TVmlldyAqX3ZpZXc7CiAgICAgRGVxdWU8V1RGOjpGdW5jdGlvbjx2b2lkKE5T
QXJyYXkgKiwgYm9vbCBkaWRXcmFwKT4+IF9maW5kUmVwbHlDYWxsYmFja3M7CiAgICAgRGVxdWU8
V1RGOjpGdW5jdGlvbjx2b2lkKE5TSW1hZ2UgKik+PiBfaW1hZ2VSZXBseUNhbGxiYWNrczsKICAg
ICBCT09MIF91c2VQbGF0Zm9ybUZpbmRVSTsKIH0KIAotLSAoaW5zdGFuY2V0eXBlKWluaXRXaXRo
UGFnZTooV2ViS2l0OjpXZWJQYWdlUHJveHkmKXBhZ2UgdmlldzooTlNWaWV3ICopdmlldyB1c2VQ
bGF0Zm9ybUZpbmRVSTooQk9PTCl1c2VQbGF0Zm9ybUZpbmRVSQorLSAoaW5zdGFuY2V0eXBlKWlu
aXRXaXRoUGFnZTooTmFrZWRSZWY8V2ViS2l0OjpXZWJQYWdlUHJveHk+KXBhZ2UgdmlldzooTlNW
aWV3ICopdmlldyB1c2VQbGF0Zm9ybUZpbmRVSTooQk9PTCl1c2VQbGF0Zm9ybUZpbmRVSQogewog
ICAgIHNlbGYgPSBbc3VwZXIgaW5pdF07CiAKICAgICBpZiAoIXNlbGYpCiAgICAgICAgIHJldHVy
biBuaWw7CiAKLSAgICBfcGFnZSA9ICZwYWdlOworICAgIF9wYWdlID0gcGFnZS5wdHIoKTsKICAg
ICBfdmlldyA9IHZpZXc7CiAgICAgX3VzZVBsYXRmb3JtRmluZFVJID0gdXNlUGxhdGZvcm1GaW5k
VUk7CiAgICAgCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9tYWMvV0tWaWV3
TGF5b3V0U3RyYXRlZ3kuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL21hYy9XS1ZpZXdMYXlv
dXRTdHJhdGVneS5oCmluZGV4IDJkZjdlMDdkYjllYmJjZjdhMTExMTJlNTYyNzBlNDA2N2M1ODg5
ODcuLjJmZWVmNGY4OTcwYjkxMDE2ZTY4M2YzZjFkNmE3NTQ3ZDg3MzU4ZjUgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL21hYy9XS1ZpZXdMYXlvdXRTdHJhdGVneS5oCisrKyBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL21hYy9XS1ZpZXdMYXlvdXRTdHJhdGVneS5oCkBAIC0y
OSw2ICsyOSw4IEBACiAjaWYgUExBVEZPUk0oTUFDKQogCiAjaW1wb3J0ICJXS0xheW91dE1vZGUu
aCIKKyNpbXBvcnQgPHd0Zi9OYWtlZFB0ci5oPgorI2ltcG9ydCA8d3RmL05ha2VkUmVmLmg+CiAK
IG5hbWVzcGFjZSBXZWJLaXQgewogY2xhc3MgV2ViUGFnZVByb3h5OwpAQCAtMzksMTUgKzQxLDE1
IEBAIGNsYXNzIFdlYlZpZXdJbXBsOwogCiBAaW50ZXJmYWNlIFdLVmlld0xheW91dFN0cmF0ZWd5
IDogTlNPYmplY3QgewogQHBhY2thZ2UKLSAgICBXZWJLaXQ6OldlYlBhZ2VQcm94eSogX3BhZ2U7
Ci0gICAgV2ViS2l0OjpXZWJWaWV3SW1wbCogX3dlYlZpZXdJbXBsOworICAgIE5ha2VkUHRyPFdl
YktpdDo6V2ViUGFnZVByb3h5PiBfcGFnZTsKKyAgICBOYWtlZFB0cjxXZWJLaXQ6OldlYlZpZXdJ
bXBsPiBfd2ViVmlld0ltcGw7CiAgICAgTlNWaWV3ICpfdmlldzsKIAogICAgIFdLTGF5b3V0TW9k
ZSBfbGF5b3V0TW9kZTsKICAgICB1bnNpZ25lZCBfZnJhbWVTaXplVXBkYXRlc0Rpc2FibGVkQ291
bnQ7CiB9CiAKLSsgKGluc3RhbmNldHlwZSlsYXlvdXRTdHJhdGVneVdpdGhQYWdlOihXZWJLaXQ6
OldlYlBhZ2VQcm94eSYpcGFnZSB2aWV3OihOU1ZpZXcgKil2aWV3IHZpZXdJbXBsOihXZWJLaXQ6
OldlYlZpZXdJbXBsJil3ZWJWaWV3SW1wbCBtb2RlOihXS0xheW91dE1vZGUpbW9kZTsKKysgKGlu
c3RhbmNldHlwZSlsYXlvdXRTdHJhdGVneVdpdGhQYWdlOihOYWtlZFJlZjxXZWJLaXQ6OldlYlBh
Z2VQcm94eT4pcGFnZSB2aWV3OihOU1ZpZXcgKil2aWV3IHZpZXdJbXBsOihOYWtlZFJlZjxXZWJL
aXQ6OldlYlZpZXdJbXBsPil3ZWJWaWV3SW1wbCBtb2RlOihXS0xheW91dE1vZGUpbW9kZTsKIAog
LSAodm9pZClpbnZhbGlkYXRlOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9tYWMvV0tWaWV3TGF5b3V0U3RyYXRlZ3kubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9t
YWMvV0tWaWV3TGF5b3V0U3RyYXRlZ3kubW0KaW5kZXggNjM5ZDU5OTQ1NDI4YjAyNTYyOGMzNWI1
MjVjNTYyNjJkMWQzZGQxYi4uZWIwYmFiMzAxMTI5ZmEwODNlOWExNmRlNjJjZWNlNjAwZDAxM2Q4
NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvbWFjL1dLVmlld0xheW91dFN0
cmF0ZWd5Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL21hYy9XS1ZpZXdMYXlvdXRT
dHJhdGVneS5tbQpAQCAtNDcsMjMgKzQ3LDIzIEBAIEBlbmQKIAogQGltcGxlbWVudGF0aW9uIFdL
Vmlld0xheW91dFN0cmF0ZWd5CiAKLSsgKGluc3RhbmNldHlwZSlsYXlvdXRTdHJhdGVneVdpdGhQ
YWdlOihXZWJLaXQ6OldlYlBhZ2VQcm94eSYpcGFnZSB2aWV3OihOU1ZpZXcgKil2aWV3IHZpZXdJ
bXBsOihXZWJLaXQ6OldlYlZpZXdJbXBsJil3ZWJWaWV3SW1wbCBtb2RlOihXS0xheW91dE1vZGUp
bW9kZQorKyAoaW5zdGFuY2V0eXBlKWxheW91dFN0cmF0ZWd5V2l0aFBhZ2U6KE5ha2VkUmVmPFdl
YktpdDo6V2ViUGFnZVByb3h5PilwYWdlIHZpZXc6KE5TVmlldyAqKXZpZXcgdmlld0ltcGw6KE5h
a2VkUmVmPFdlYktpdDo6V2ViVmlld0ltcGw+KXdlYlZpZXdJbXBsIG1vZGU6KFdLTGF5b3V0TW9k
ZSltb2RlCiB7CiAgICAgV0tWaWV3TGF5b3V0U3RyYXRlZ3kgKnN0cmF0ZWd5OwogCiAgICAgc3dp
dGNoIChtb2RlKSB7CiAgICAgY2FzZSBrV0tMYXlvdXRNb2RlRml4ZWRTaXplOgotICAgICAgICBz
dHJhdGVneSA9IFtbV0tWaWV3Rml4ZWRTaXplTGF5b3V0U3RyYXRlZ3kgYWxsb2NdIGluaXRXaXRo
UGFnZTpwYWdlIHZpZXc6dmlldyB2aWV3SW1wbDp3ZWJWaWV3SW1wbCBtb2RlOm1vZGVdOworICAg
ICAgICBzdHJhdGVneSA9IFtbV0tWaWV3Rml4ZWRTaXplTGF5b3V0U3RyYXRlZ3kgYWxsb2NdIGlu
aXRXaXRoUGFnZTpwYWdlLmNvcHlSZWYoKSB2aWV3OnZpZXcgdmlld0ltcGw6d2ViVmlld0ltcGwu
Y29weVJlZigpIG1vZGU6bW9kZV07CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2Uga1dLTGF5b3V0
TW9kZUR5bmFtaWNTaXplQ29tcHV0ZWRGcm9tVmlld1NjYWxlOgotICAgICAgICBzdHJhdGVneSA9
IFtbV0tWaWV3RHluYW1pY1NpemVDb21wdXRlZEZyb21WaWV3U2NhbGVMYXlvdXRTdHJhdGVneSBh
bGxvY10gaW5pdFdpdGhQYWdlOnBhZ2Ugdmlldzp2aWV3IHZpZXdJbXBsOndlYlZpZXdJbXBsIG1v
ZGU6bW9kZV07CisgICAgICAgIHN0cmF0ZWd5ID0gW1tXS1ZpZXdEeW5hbWljU2l6ZUNvbXB1dGVk
RnJvbVZpZXdTY2FsZUxheW91dFN0cmF0ZWd5IGFsbG9jXSBpbml0V2l0aFBhZ2U6cGFnZS5jb3B5
UmVmKCkgdmlldzp2aWV3IHZpZXdJbXBsOndlYlZpZXdJbXBsLmNvcHlSZWYoKSBtb2RlOm1vZGVd
OwogICAgICAgICBicmVhazsKICAgICBjYXNlIGtXS0xheW91dE1vZGVEeW5hbWljU2l6ZUNvbXB1
dGVkRnJvbU1pbmltdW1Eb2N1bWVudFNpemU6Ci0gICAgICAgIHN0cmF0ZWd5ID0gW1tXS1ZpZXdE
eW5hbWljU2l6ZUNvbXB1dGVkRnJvbU1pbmltdW1Eb2N1bWVudFNpemVMYXlvdXRTdHJhdGVneSBh
bGxvY10gaW5pdFdpdGhQYWdlOnBhZ2Ugdmlldzp2aWV3IHZpZXdJbXBsOndlYlZpZXdJbXBsIG1v
ZGU6bW9kZV07CisgICAgICAgIHN0cmF0ZWd5ID0gW1tXS1ZpZXdEeW5hbWljU2l6ZUNvbXB1dGVk
RnJvbU1pbmltdW1Eb2N1bWVudFNpemVMYXlvdXRTdHJhdGVneSBhbGxvY10gaW5pdFdpdGhQYWdl
OnBhZ2UuY29weVJlZigpIHZpZXc6dmlldyB2aWV3SW1wbDp3ZWJWaWV3SW1wbC5jb3B5UmVmKCkg
bW9kZTptb2RlXTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBrV0tMYXlvdXRNb2RlVmlld1Np
emU6CiAgICAgZGVmYXVsdDoKLSAgICAgICAgc3RyYXRlZ3kgPSBbW1dLVmlld1ZpZXdTaXplTGF5
b3V0U3RyYXRlZ3kgYWxsb2NdIGluaXRXaXRoUGFnZTpwYWdlIHZpZXc6dmlldyB2aWV3SW1wbDp3
ZWJWaWV3SW1wbCBtb2RlOm1vZGVdOworICAgICAgICBzdHJhdGVneSA9IFtbV0tWaWV3Vmlld1Np
emVMYXlvdXRTdHJhdGVneSBhbGxvY10gaW5pdFdpdGhQYWdlOnBhZ2UuY29weVJlZigpIHZpZXc6
dmlldyB2aWV3SW1wbDp3ZWJWaWV3SW1wbC5jb3B5UmVmKCkgbW9kZTptb2RlXTsKICAgICAgICAg
YnJlYWs7CiAgICAgfQogCkBAIC03MiwxNSArNzIsMTUgQEAgKyAoaW5zdGFuY2V0eXBlKWxheW91
dFN0cmF0ZWd5V2l0aFBhZ2U6KFdlYktpdDo6V2ViUGFnZVByb3h5JilwYWdlIHZpZXc6KE5TVmll
dwogICAgIHJldHVybiBbc3RyYXRlZ3kgYXV0b3JlbGVhc2VdOwogfQogCi0tIChpbnN0YW5jZXR5
cGUpaW5pdFdpdGhQYWdlOihXZWJLaXQ6OldlYlBhZ2VQcm94eSYpcGFnZSB2aWV3OihOU1ZpZXcg
Kil2aWV3IHZpZXdJbXBsOihXZWJLaXQ6OldlYlZpZXdJbXBsJil3ZWJWaWV3SW1wbCBtb2RlOihX
S0xheW91dE1vZGUpbW9kZQorLSAoaW5zdGFuY2V0eXBlKWluaXRXaXRoUGFnZTooTmFrZWRSZWY8
V2ViS2l0OjpXZWJQYWdlUHJveHk+KXBhZ2UgdmlldzooTlNWaWV3ICopdmlldyB2aWV3SW1wbDoo
TmFrZWRSZWY8V2ViS2l0OjpXZWJWaWV3SW1wbD4pd2ViVmlld0ltcGwgbW9kZTooV0tMYXlvdXRN
b2RlKW1vZGUKIHsKICAgICBzZWxmID0gW3N1cGVyIGluaXRdOwogCiAgICAgaWYgKCFzZWxmKQog
ICAgICAgICByZXR1cm4gbmlsOwogCi0gICAgX3BhZ2UgPSAmcGFnZTsKLSAgICBfd2ViVmlld0lt
cGwgPSAmd2ViVmlld0ltcGw7CisgICAgX3BhZ2UgPSBwYWdlLnB0cigpOworICAgIF93ZWJWaWV3
SW1wbCA9IHdlYlZpZXdJbXBsLnB0cigpOwogICAgIF92aWV3ID0gdmlldzsKICAgICBfbGF5b3V0
TW9kZSA9IG1vZGU7CiAKQEAgLTE1MiwxNCArMTUyLDE0IEBAIEBlbmQKIAogQGltcGxlbWVudGF0
aW9uIFdLVmlld1ZpZXdTaXplTGF5b3V0U3RyYXRlZ3kKIAotLSAoaW5zdGFuY2V0eXBlKWluaXRX
aXRoUGFnZTooV2ViS2l0OjpXZWJQYWdlUHJveHkmKXBhZ2UgdmlldzooTlNWaWV3ICopdmlldyB2
aWV3SW1wbDooV2ViS2l0OjpXZWJWaWV3SW1wbCYpd2ViVmlld0ltcGwgbW9kZTooV0tMYXlvdXRN
b2RlKW1vZGUKKy0gKGluc3RhbmNldHlwZSlpbml0V2l0aFBhZ2U6KE5ha2VkUmVmPFdlYktpdDo6
V2ViUGFnZVByb3h5PilwYWdlIHZpZXc6KE5TVmlldyAqKXZpZXcgdmlld0ltcGw6KE5ha2VkUmVm
PFdlYktpdDo6V2ViVmlld0ltcGw+KXdlYlZpZXdJbXBsIG1vZGU6KFdLTGF5b3V0TW9kZSltb2Rl
CiB7Ci0gICAgc2VsZiA9IFtzdXBlciBpbml0V2l0aFBhZ2U6cGFnZSB2aWV3OnZpZXcgdmlld0lt
cGw6d2ViVmlld0ltcGwgbW9kZTptb2RlXTsKKyAgICBzZWxmID0gW3N1cGVyIGluaXRXaXRoUGFn
ZTpwYWdlLmNvcHlSZWYoKSB2aWV3OnZpZXcgdmlld0ltcGw6d2ViVmlld0ltcGwuY29weVJlZigp
IG1vZGU6bW9kZV07CiAKICAgICBpZiAoIXNlbGYpCiAgICAgICAgIHJldHVybiBuaWw7CiAKLSAg
ICBwYWdlLnNldFVzZUZpeGVkTGF5b3V0KGZhbHNlKTsKKyAgICBwYWdlLT5zZXRVc2VGaXhlZExh
eW91dChmYWxzZSk7CiAKICAgICByZXR1cm4gc2VsZjsKIH0KQEAgLTE3MiwxNCArMTcyLDE0IEBA
IEBlbmQKIAogQGltcGxlbWVudGF0aW9uIFdLVmlld0ZpeGVkU2l6ZUxheW91dFN0cmF0ZWd5CiAK
LS0gKGluc3RhbmNldHlwZSlpbml0V2l0aFBhZ2U6KFdlYktpdDo6V2ViUGFnZVByb3h5JilwYWdl
IHZpZXc6KE5TVmlldyAqKXZpZXcgdmlld0ltcGw6KFdlYktpdDo6V2ViVmlld0ltcGwmKXdlYlZp
ZXdJbXBsIG1vZGU6KFdLTGF5b3V0TW9kZSltb2RlCistIChpbnN0YW5jZXR5cGUpaW5pdFdpdGhQ
YWdlOihOYWtlZFJlZjxXZWJLaXQ6OldlYlBhZ2VQcm94eT4pcGFnZSB2aWV3OihOU1ZpZXcgKil2
aWV3IHZpZXdJbXBsOihOYWtlZFJlZjxXZWJLaXQ6OldlYlZpZXdJbXBsPil3ZWJWaWV3SW1wbCBt
b2RlOihXS0xheW91dE1vZGUpbW9kZQogewotICAgIHNlbGYgPSBbc3VwZXIgaW5pdFdpdGhQYWdl
OnBhZ2Ugdmlldzp2aWV3IHZpZXdJbXBsOndlYlZpZXdJbXBsIG1vZGU6bW9kZV07CisgICAgc2Vs
ZiA9IFtzdXBlciBpbml0V2l0aFBhZ2U6cGFnZS5jb3B5UmVmKCkgdmlldzp2aWV3IHZpZXdJbXBs
OndlYlZpZXdJbXBsLmNvcHlSZWYoKSBtb2RlOm1vZGVdOwogCiAgICAgaWYgKCFzZWxmKQogICAg
ICAgICByZXR1cm4gbmlsOwogCi0gICAgcGFnZS5zZXRVc2VGaXhlZExheW91dCh0cnVlKTsKKyAg
ICBwYWdlLT5zZXRVc2VGaXhlZExheW91dCh0cnVlKTsKIAogICAgIHJldHVybiBzZWxmOwogfQpA
QCAtMTkyLDE0ICsxOTIsMTQgQEAgQGVuZAogCiBAaW1wbGVtZW50YXRpb24gV0tWaWV3RHluYW1p
Y1NpemVDb21wdXRlZEZyb21WaWV3U2NhbGVMYXlvdXRTdHJhdGVneQogCi0tIChpbnN0YW5jZXR5
cGUpaW5pdFdpdGhQYWdlOihXZWJLaXQ6OldlYlBhZ2VQcm94eSYpcGFnZSB2aWV3OihOU1ZpZXcg
Kil2aWV3IHZpZXdJbXBsOihXZWJLaXQ6OldlYlZpZXdJbXBsJil3ZWJWaWV3SW1wbCBtb2RlOihX
S0xheW91dE1vZGUpbW9kZQorLSAoaW5zdGFuY2V0eXBlKWluaXRXaXRoUGFnZTooTmFrZWRSZWY8
V2ViS2l0OjpXZWJQYWdlUHJveHk+KXBhZ2UgdmlldzooTlNWaWV3ICopdmlldyB2aWV3SW1wbDoo
TmFrZWRSZWY8V2ViS2l0OjpXZWJWaWV3SW1wbD4pd2ViVmlld0ltcGwgbW9kZTooV0tMYXlvdXRN
b2RlKW1vZGUKIHsKLSAgICBzZWxmID0gW3N1cGVyIGluaXRXaXRoUGFnZTpwYWdlIHZpZXc6dmll
dyB2aWV3SW1wbDp3ZWJWaWV3SW1wbCBtb2RlOm1vZGVdOworICAgIHNlbGYgPSBbc3VwZXIgaW5p
dFdpdGhQYWdlOnBhZ2UuY29weVJlZigpIHZpZXc6dmlldyB2aWV3SW1wbDp3ZWJWaWV3SW1wbC5j
b3B5UmVmKCkgbW9kZTptb2RlXTsKIAogICAgIGlmICghc2VsZikKICAgICAgICAgcmV0dXJuIG5p
bDsKIAotICAgIHBhZ2Uuc2V0VXNlRml4ZWRMYXlvdXQodHJ1ZSk7CisgICAgcGFnZS0+c2V0VXNl
Rml4ZWRMYXlvdXQodHJ1ZSk7CiAKICAgICByZXR1cm4gc2VsZjsKIH0KQEAgLTIzMSw5ICsyMzEs
OSBAQCBAZW5kCiAKIEBpbXBsZW1lbnRhdGlvbiBXS1ZpZXdEeW5hbWljU2l6ZUNvbXB1dGVkRnJv
bU1pbmltdW1Eb2N1bWVudFNpemVMYXlvdXRTdHJhdGVneQogCi0tIChpbnN0YW5jZXR5cGUpaW5p
dFdpdGhQYWdlOihXZWJLaXQ6OldlYlBhZ2VQcm94eSYpcGFnZSB2aWV3OihOU1ZpZXcgKil2aWV3
IHZpZXdJbXBsOihXZWJLaXQ6OldlYlZpZXdJbXBsJil3ZWJWaWV3SW1wbCBtb2RlOihXS0xheW91
dE1vZGUpbW9kZQorLSAoaW5zdGFuY2V0eXBlKWluaXRXaXRoUGFnZTooTmFrZWRSZWY8V2ViS2l0
OjpXZWJQYWdlUHJveHk+KXBhZ2UgdmlldzooTlNWaWV3ICopdmlldyB2aWV3SW1wbDooTmFrZWRS
ZWY8V2ViS2l0OjpXZWJWaWV3SW1wbD4pd2ViVmlld0ltcGwgbW9kZTooV0tMYXlvdXRNb2RlKW1v
ZGUKIHsKLSAgICBzZWxmID0gW3N1cGVyIGluaXRXaXRoUGFnZTpwYWdlIHZpZXc6dmlldyB2aWV3
SW1wbDp3ZWJWaWV3SW1wbCBtb2RlOm1vZGVdOworICAgIHNlbGYgPSBbc3VwZXIgaW5pdFdpdGhQ
YWdlOnBhZ2UuY29weVJlZigpIHZpZXc6dmlldyB2aWV3SW1wbDp3ZWJWaWV3SW1wbC5jb3B5UmVm
KCkgbW9kZTptb2RlXTsKIAogICAgIGlmICghc2VsZikKICAgICAgICAgcmV0dXJuIG5pbDsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvbWFj
L1dLRE9NRG9jdW1lbnQubW0gYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5k
bGUvQVBJL21hYy9XS0RPTURvY3VtZW50Lm1tCmluZGV4IDBmMjcxZTVkZTdlMGE0ZDVhNjgxMDUy
ZjAyZGVjYzBlMWE0MTZkZmUuLjE2NmU3OWQwMzIyMmVjOTgyNDExOGE0NzBjMDIwNDk0YTZiNThj
MGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9B
UEkvbWFjL1dLRE9NRG9jdW1lbnQubW0KKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0lu
amVjdGVkQnVuZGxlL0FQSS9tYWMvV0tET01Eb2N1bWVudC5tbQpAQCAtMzIsNiArMzIsNyBAQAog
I2ltcG9ydCA8V2ViQ29yZS9IVE1MRWxlbWVudC5oPgogI2ltcG9ydCA8V2ViQ29yZS9UZXh0Lmg+
CiAjaW1wb3J0IDxXZWJDb3JlL21hcmt1cC5oPgorI2ltcG9ydCA8d3RmL05ha2VkUmVmLmg+CiAK
IEBpbnRlcmZhY2UgV0tET01Eb2N1bWVudFBhcnNlcllpZWxkVG9rZW4gOiBOU09iamVjdAogCkBA
IC00MSwxMCArNDIsMTAgQEAgQGltcGxlbWVudGF0aW9uIFdLRE9NRG9jdW1lbnRQYXJzZXJZaWVs
ZFRva2VuIHsKICAgICBzdGQ6OnVuaXF1ZV9wdHI8V2ViQ29yZTo6RG9jdW1lbnRQYXJzZXJZaWVs
ZFRva2VuPiBfdG9rZW47CiB9CiAKLS0gKGluc3RhbmNldHlwZSlpbml0V2l0aERvY3VtZW50OihX
ZWJDb3JlOjpEb2N1bWVudCYpZG9jdW1lbnQKKy0gKGluc3RhbmNldHlwZSlpbml0V2l0aERvY3Vt
ZW50OihOYWtlZFJlZjxXZWJDb3JlOjpEb2N1bWVudD4pZG9jdW1lbnQKIHsKICAgICBpZiAoc2Vs
ZiA9IFtzdXBlciBpbml0XSkKLSAgICAgICAgX3Rva2VuID0gZG9jdW1lbnQuY3JlYXRlUGFyc2Vy
WWllbGRUb2tlbigpOworICAgICAgICBfdG9rZW4gPSBkb2N1bWVudC0+Y3JlYXRlUGFyc2VyWWll
bGRUb2tlbigpOwogICAgIHJldHVybiBzZWxmOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9tYWMvV0tBY2Nlc3NpYmlsaXR5V2ViUGFnZU9iamVjdEJh
c2UuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9XS0FjY2Vzc2liaWxp
dHlXZWJQYWdlT2JqZWN0QmFzZS5oCmluZGV4IGFlY2Q0YTUwNWM5OTgyMzAwZTM4NDA3MzY3Yzk4
NzkwMzMyODA1OWIuLmExMTY1MjgzNTJiMWYxZjUxZTNkNDk0ZGQ4NDMyMmIxNzYyODE4ZDIgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9XS0FjY2Vzc2li
aWxpdHlXZWJQYWdlT2JqZWN0QmFzZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9X
ZWJQYWdlL21hYy9XS0FjY2Vzc2liaWxpdHlXZWJQYWdlT2JqZWN0QmFzZS5oCkBAIC0yNywxOSAr
MjcsMjAgQEAKICNkZWZpbmUgV0tBY2Nlc3NpYmlsaXR5V2ViUGFnZU9iamVjdEJhc2VfaAogCiAj
aW5jbHVkZSA8V2ViQ29yZS9QYWdlSWRlbnRpZmllci5oPgorI2luY2x1ZGUgPHd0Zi9OYWtlZFB0
ci5oPgogCiBuYW1lc3BhY2UgV2ViS2l0IHsKIGNsYXNzIFdlYlBhZ2U7CiB9CiAKIEBpbnRlcmZh
Y2UgV0tBY2Nlc3NpYmlsaXR5V2ViUGFnZU9iamVjdEJhc2UgOiBOU09iamVjdCB7Ci0gICAgV2Vi
S2l0OjpXZWJQYWdlKiBtX3BhZ2U7CisgICAgTmFrZWRQdHI8V2ViS2l0OjpXZWJQYWdlPiBtX3Bh
Z2U7CiAgICAgV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIgbV9wYWdlSUQ7CiAgICAgaWQgbV9wYXJl
bnQ7CiAgICAgYm9vbCBtX2hhc01haW5GcmFtZVBsdWdpbjsKIH0KIAotLSAodm9pZClzZXRXZWJQ
YWdlOihXZWJLaXQ6OldlYlBhZ2UqKXBhZ2U7CistICh2b2lkKXNldFdlYlBhZ2U6KE5ha2VkUHRy
PFdlYktpdDo6V2ViUGFnZT4pcGFnZTsKIC0gKHZvaWQpc2V0UmVtb3RlUGFyZW50OihpZClwYXJl
bnQ7CiAtICh2b2lkKXNldEhhc01haW5GcmFtZVBsdWdpbjooYm9vbCloYXNQbHVnaW47CiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9XS0FjY2Vzc2li
aWxpdHlXZWJQYWdlT2JqZWN0QmFzZS5tbSBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQ
YWdlL21hYy9XS0FjY2Vzc2liaWxpdHlXZWJQYWdlT2JqZWN0QmFzZS5tbQppbmRleCBkODY4MmE5
OGIxZWIyMjliOGM1OTM1YTY4OWU1YTcxMzY3Nzg1MDE4Li4wOGZlN2ZkMTRhZjIxNDIzNjIzNjc4
OTk0Mjk2NmVkOWM0ZWFjYTg2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
V2ViUGFnZS9tYWMvV0tBY2Nlc3NpYmlsaXR5V2ViUGFnZU9iamVjdEJhc2UubW0KKysrIGIvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1dLQWNjZXNzaWJpbGl0eVdlYlBhZ2VP
YmplY3RCYXNlLm1tCkBAIC00NSw3ICs0NSw3IEBACiAKIEBpbXBsZW1lbnRhdGlvbiBXS0FjY2Vz
c2liaWxpdHlXZWJQYWdlT2JqZWN0QmFzZQogCi0tIChXZWJDb3JlOjpBWE9iamVjdENhY2hlKilh
eE9iamVjdENhY2hlCistIChOYWtlZFB0cjxXZWJDb3JlOjpBWE9iamVjdENhY2hlPilheE9iamVj
dENhY2hlCiB7CiAgICAgaWYgKCFtX3BhZ2UpCiAgICAgICAgIHJldHVybiBudWxscHRyOwpAQCAt
OTksNyArOTksNyBAQCAtIChpZClhY2Nlc3NpYmlsaXR5Um9vdE9iamVjdFdyYXBwZXIKICAgICBy
ZXR1cm4gbmlsOwogfQogCi0tICh2b2lkKXNldFdlYlBhZ2U6KFdlYktpdDo6V2ViUGFnZSopcGFn
ZQorLSAodm9pZClzZXRXZWJQYWdlOihOYWtlZFB0cjxXZWJLaXQ6OldlYlBhZ2U+KXBhZ2UKIHsK
ICAgICBtX3BhZ2UgPSBwYWdlOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21h
Yy9QbHVnaW5zL1dlYkJhc2VOZXRzY2FwZVBsdWdpblZpZXcuaCBiL1NvdXJjZS9XZWJLaXRMZWdh
Y3kvbWFjL1BsdWdpbnMvV2ViQmFzZU5ldHNjYXBlUGx1Z2luVmlldy5oCmluZGV4IGMyMzdjY2Y5
MWNiNGJhNjkxMDk1ZTQzNGI1N2QxMzM5NzBmNTgzZTMuLmM1YTk2MWUzNzdlZThmZTJkMDM1ODgy
YWM0NTAxOWM2NTlhZGY2ZWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1Bs
dWdpbnMvV2ViQmFzZU5ldHNjYXBlUGx1Z2luVmlldy5oCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdh
Y3kvbWFjL1BsdWdpbnMvV2ViQmFzZU5ldHNjYXBlUGx1Z2luVmlldy5oCkBAIC0zMSw2ICszMSw3
IEBACiAKICNpbXBvcnQgIldlYk5ldHNjYXBlUGx1Z2luUGFja2FnZS5oIgogI2ltcG9ydCA8d3Rm
L0ZvcndhcmQuaD4KKyNpbXBvcnQgPHd0Zi9OYWtlZFB0ci5oPgogI2ltcG9ydCA8d3RmL1JlZlB0
ci5oPgogI2ltcG9ydCA8d3RmL1JldGFpblB0ci5oPgogCkBAIC05Nyw3ICs5OCw3IEBAIG5hbWVz
cGFjZSBXZWJDb3JlIHsKIC0gKFdlYkRhdGFTb3VyY2UgKilkYXRhU291cmNlOwogLSAoV2ViVmll
dyAqKXdlYlZpZXc7CiAtIChOU1dpbmRvdyAqKWN1cnJlbnRXaW5kb3c7Ci0tIChXZWJDb3JlOjpI
VE1MUGx1Z0luRWxlbWVudCopZWxlbWVudDsKKy0gKE5ha2VkUHRyPFdlYkNvcmU6OkhUTUxQbHVn
SW5FbGVtZW50PillbGVtZW50OwogCiAtICh2b2lkKXJlbW92ZVRyYWNraW5nUmVjdDsKIC0gKHZv
aWQpcmVzZXRUcmFja2luZ1JlY3Q7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21h
Yy9QbHVnaW5zL1dlYkJhc2VOZXRzY2FwZVBsdWdpblZpZXcubW0gYi9Tb3VyY2UvV2ViS2l0TGVn
YWN5L21hYy9QbHVnaW5zL1dlYkJhc2VOZXRzY2FwZVBsdWdpblZpZXcubW0KaW5kZXggNGY4OTll
ZGUyYzUyMjc2NTI0MWFhOWFjYWFiNjllZWJkYTZhZjY5ZC4uOTFhODdmNzBkNWYxOTg3NDIyMjYy
ZjBjNTU2NTY0ZjQwZTAwNmQxYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMv
UGx1Z2lucy9XZWJCYXNlTmV0c2NhcGVQbHVnaW5WaWV3Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXRM
ZWdhY3kvbWFjL1BsdWdpbnMvV2ViQmFzZU5ldHNjYXBlUGx1Z2luVmlldy5tbQpAQCAtNjY0LDcg
KzY2NCw3IEBAIC0gKE5TV2luZG93ICopY3VycmVudFdpbmRvdwogICAgIHJldHVybiBbc2VsZiB3
aW5kb3ddID8gW3NlbGYgd2luZG93XSA6IFtbc2VsZiB3ZWJWaWV3XSBob3N0V2luZG93XTsKIH0K
IAotLSAoV2ViQ29yZTo6SFRNTFBsdWdJbkVsZW1lbnQqKWVsZW1lbnQKKy0gKE5ha2VkUHRyPFdl
YkNvcmU6OkhUTUxQbHVnSW5FbGVtZW50PillbGVtZW50CiB7CiAgICAgcmV0dXJuIF9lbGVtZW50
LmdldCgpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViQ29yZVN1
cHBvcnQvV2ViRWRpdG9yQ2xpZW50Lm1tIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViQ29y
ZVN1cHBvcnQvV2ViRWRpdG9yQ2xpZW50Lm1tCmluZGV4IDMzYjY4OWQ3YjI3ZWZlNzZjOGZiODgw
NTExYTI3ZTEzMGY4NTdiMzQuLjIwMTM4NGYwMDJlMzY1N2M1MjdlNTczOTVhMzA2NWZlOGEzNjAy
ODMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYkNvcmVTdXBwb3J0L1dl
YkVkaXRvckNsaWVudC5tbQorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJDb3JlU3Vw
cG9ydC9XZWJFZGl0b3JDbGllbnQubW0KQEAgLTQ3Miw3ICs0NzIsNyBAQCB2b2lkIF9XZWJDcmVh
dGVGcmFnbWVudChEb2N1bWVudCYgZG9jdW1lbnQsIE5TQXR0cmlidXRlZFN0cmluZyAqc3RyaW5n
LCBGcmFnbWVudAogICAgICAgICBkb2N1bWVudDpraXQoJmRvY3VtZW50KSBkb2N1bWVudEF0dHJp
YnV0ZXM6ZG9jdW1lbnRBdHRyaWJ1dGVzIHN1YnJlc291cmNlczomc3VicmVzb3VyY2VzXTsKICAg
ICByZXN1bHQuZnJhZ21lbnQgPSBjb3JlKGZyYWdtZW50KTsKICAgICBmb3IgKFdlYlJlc291cmNl
KiByZXNvdXJjZSBpbiBzdWJyZXNvdXJjZXMpCi0gICAgICAgIHJlc3VsdC5yZXNvdXJjZXMuYXBw
ZW5kKFtyZXNvdXJjZSBfY29yZVJlc291cmNlXSk7CisgICAgICAgIHJlc3VsdC5yZXNvdXJjZXMu
YXBwZW5kKFtyZXNvdXJjZSBfY29yZVJlc291cmNlXS5nZXQoKSk7CiB9CiAKICNlbmRpZgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVM
b2FkZXJDbGllbnQubW0gYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJDb3JlU3VwcG9ydC9X
ZWJGcmFtZUxvYWRlckNsaWVudC5tbQppbmRleCAyOTYyZmUwYzUxNzIzMWZlZDI3OTA3ZDVkY2Yy
ZDkzYTEwM2EzMzQzLi5lZWRhM2E3MTI1NzA3MjgwZWU1MjYzZWUyMmM4NGZkMmQxYjIyODZkIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFt
ZUxvYWRlckNsaWVudC5tbQorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJDb3JlU3Vw
cG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5tbQpAQCAtMTI4LDYgKzEyOCw3IEBACiAjaW1wb3J0
IDxwYWwvc3BpL2NvY29hL05TVVJMRmlsZVR5cGVNYXBwaW5nc1NQSS5oPgogI2ltcG9ydCA8d3Rm
L0Jsb2NrT2JqQ0V4Y2VwdGlvbnMuaD4KICNpbXBvcnQgPHd0Zi9NYWluVGhyZWFkLmg+CisjaW1w
b3J0IDx3dGYvTmFrZWRQdHIuaD4KICNpbXBvcnQgPHd0Zi9SZWYuaD4KICNpbXBvcnQgPHd0Zi9S
dW5Mb29wLmg+CiAjaW1wb3J0IDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KQEAgLTE4Nyw5ICsxODgs
OSBAQCBAaW50ZXJmYWNlIFdlYkZyYW1lUG9saWN5TGlzdGVuZXIgOiBOU09iamVjdCA8V2ViUG9s
aWN5RGVjaXNpb25MaXN0ZW5lciwgV2ViRm9ybQogICAgIFdlYkNvcmU6OlBvbGljeUFjdGlvbiBf
ZGVmYXVsdFBvbGljeTsKIH0KIAotLSAoaWQpaW5pdFdpdGhGcmFtZTooV2ViQ29yZTo6RnJhbWUq
KWZyYW1lIGlkZW50aWZpZXI6KFdlYkNvcmU6OlBvbGljeUNoZWNrSWRlbnRpZmllcilpZGVudGlm
aWVyIHBvbGljeUZ1bmN0aW9uOihXZWJDb3JlOjpGcmFtZVBvbGljeUZ1bmN0aW9uJiYpcG9saWN5
RnVuY3Rpb24gZGVmYXVsdFBvbGljeTooV2ViQ29yZTo6UG9saWN5QWN0aW9uKWRlZmF1bHRQb2xp
Y3k7CistIChpZClpbml0V2l0aEZyYW1lOihOYWtlZFB0cjxXZWJDb3JlOjpGcmFtZT4pZnJhbWUg
aWRlbnRpZmllcjooV2ViQ29yZTo6UG9saWN5Q2hlY2tJZGVudGlmaWVyKWlkZW50aWZpZXIgcG9s
aWN5RnVuY3Rpb246KFdlYkNvcmU6OkZyYW1lUG9saWN5RnVuY3Rpb24mJilwb2xpY3lGdW5jdGlv
biBkZWZhdWx0UG9saWN5OihXZWJDb3JlOjpQb2xpY3lBY3Rpb24pZGVmYXVsdFBvbGljeTsKICNp
ZiBIQVZFKEFQUF9MSU5LUykKLS0gKGlkKWluaXRXaXRoRnJhbWU6KFdlYkNvcmU6OkZyYW1lKilm
cmFtZSBpZGVudGlmaWVyOihXZWJDb3JlOjpQb2xpY3lDaGVja0lkZW50aWZpZXIpaWRlbnRpZmll
ciBwb2xpY3lGdW5jdGlvbjooV2ViQ29yZTo6RnJhbWVQb2xpY3lGdW5jdGlvbiYmKXBvbGljeUZ1
bmN0aW9uIGRlZmF1bHRQb2xpY3k6KFdlYkNvcmU6OlBvbGljeUFjdGlvbilkZWZhdWx0UG9saWN5
IGFwcExpbmtVUkw6KE5TVVJMICopdXJsOworLSAoaWQpaW5pdFdpdGhGcmFtZTooTmFrZWRQdHI8
V2ViQ29yZTo6RnJhbWU+KWZyYW1lIGlkZW50aWZpZXI6KFdlYkNvcmU6OlBvbGljeUNoZWNrSWRl
bnRpZmllcilpZGVudGlmaWVyIHBvbGljeUZ1bmN0aW9uOihXZWJDb3JlOjpGcmFtZVBvbGljeUZ1
bmN0aW9uJiYpcG9saWN5RnVuY3Rpb24gZGVmYXVsdFBvbGljeTooV2ViQ29yZTo6UG9saWN5QWN0
aW9uKWRlZmF1bHRQb2xpY3kgYXBwTGlua1VSTDooTlNVUkwgKil1cmw7CiAjZW5kaWYKIAogLSAo
dm9pZClpbnZhbGlkYXRlOwpAQCAtMTQ4NSw3ICsxNDg2LDcgQEAgdm9pZCBXZWJGcmFtZUxvYWRl
ckNsaWVudDo6dHJhbnNpdGlvblRvQ29tbWl0dGVkRm9yTmV3UGFnZSgpCiAgICAgLy8gVGhlIGZv
bGxvd2luZyBpcyBhIG5vLW9wIGZvciBXZWJIVE1MUmVwcmVzZW50YXRpb24sIGJ1dCBmb3IgY3Vz
dG9tIGRvY3VtZW50IHR5cGVzCiAgICAgLy8gbGlrZSB0aGUgb25lcyB0aGF0IFNhZmFyaSB1c2Vz
IGZvciBib29rbWFya3MgaXQgaXMgdGhlIG9ubHkgd2F5IHRoZSBEb2N1bWVudExvYWRlcgogICAg
IC8vIHdpbGwgZ2V0IHRoZSBwcm9wZXIgdGl0bGUuCi0gICAgaWYgKGF1dG8qIGRvY3VtZW50TG9h
ZGVyID0gW2RhdGFTb3VyY2UgX2RvY3VtZW50TG9hZGVyXSkKKyAgICBpZiAoYXV0byBkb2N1bWVu
dExvYWRlciA9IFtkYXRhU291cmNlIF9kb2N1bWVudExvYWRlcl0pCiAgICAgICAgIGRvY3VtZW50
TG9hZGVyLT5zZXRUaXRsZSh7IFtkYXRhU291cmNlIHBhZ2VUaXRsZV0sIFdlYkNvcmU6OlRleHRE
aXJlY3Rpb246OkxUUiB9KTsKIAogICAgIGlmIChhdXRvKiBvd25lckVsZW1lbnQgPSBjb3JlRnJh
bWUtPm93bmVyRWxlbWVudCgpKQpAQCAtMjM1OSw3ICsyMzYwLDcgQEAgKyAodm9pZClpbml0aWFs
aXplCiAjZW5kaWYKIH0KIAotLSAoaWQpaW5pdFdpdGhGcmFtZTooV2ViQ29yZTo6RnJhbWUqKWZy
YW1lIGlkZW50aWZpZXI6KFdlYkNvcmU6OlBvbGljeUNoZWNrSWRlbnRpZmllcilpZGVudGlmaWVy
IHBvbGljeUZ1bmN0aW9uOihXZWJDb3JlOjpGcmFtZVBvbGljeUZ1bmN0aW9uJiYpcG9saWN5RnVu
Y3Rpb24gZGVmYXVsdFBvbGljeTooV2ViQ29yZTo6UG9saWN5QWN0aW9uKWRlZmF1bHRQb2xpY3kK
Ky0gKGlkKWluaXRXaXRoRnJhbWU6KE5ha2VkUHRyPFdlYkNvcmU6OkZyYW1lPilmcmFtZSBpZGVu
dGlmaWVyOihXZWJDb3JlOjpQb2xpY3lDaGVja0lkZW50aWZpZXIpaWRlbnRpZmllciBwb2xpY3lG
dW5jdGlvbjooV2ViQ29yZTo6RnJhbWVQb2xpY3lGdW5jdGlvbiYmKXBvbGljeUZ1bmN0aW9uIGRl
ZmF1bHRQb2xpY3k6KFdlYkNvcmU6OlBvbGljeUFjdGlvbilkZWZhdWx0UG9saWN5CiB7CiAgICAg
c2VsZiA9IFtzZWxmIGluaXRdOwogICAgIGlmICghc2VsZikKQEAgLTIzNzQsNyArMjM3NSw3IEBA
IC0gKGlkKWluaXRXaXRoRnJhbWU6KFdlYkNvcmU6OkZyYW1lKilmcmFtZSBpZGVudGlmaWVyOihX
ZWJDb3JlOjpQb2xpY3lDaGVja0lkZW50CiB9CiAKICNpZiBIQVZFKEFQUF9MSU5LUykKLS0gKGlk
KWluaXRXaXRoRnJhbWU6KFdlYkNvcmU6OkZyYW1lKilmcmFtZSBpZGVudGlmaWVyOihXZWJDb3Jl
OjpQb2xpY3lDaGVja0lkZW50aWZpZXIpaWRlbnRpZmllciBwb2xpY3lGdW5jdGlvbjooV2ViQ29y
ZTo6RnJhbWVQb2xpY3lGdW5jdGlvbiYmKXBvbGljeUZ1bmN0aW9uIGRlZmF1bHRQb2xpY3k6KFdl
YkNvcmU6OlBvbGljeUFjdGlvbilkZWZhdWx0UG9saWN5IGFwcExpbmtVUkw6KE5TVVJMICopYXBw
TGlua1VSTAorLSAoaWQpaW5pdFdpdGhGcmFtZTooTmFrZWRQdHI8V2ViQ29yZTo6RnJhbWU+KWZy
YW1lIGlkZW50aWZpZXI6KFdlYkNvcmU6OlBvbGljeUNoZWNrSWRlbnRpZmllcilpZGVudGlmaWVy
IHBvbGljeUZ1bmN0aW9uOihXZWJDb3JlOjpGcmFtZVBvbGljeUZ1bmN0aW9uJiYpcG9saWN5RnVu
Y3Rpb24gZGVmYXVsdFBvbGljeTooV2ViQ29yZTo6UG9saWN5QWN0aW9uKWRlZmF1bHRQb2xpY3kg
YXBwTGlua1VSTDooTlNVUkwgKilhcHBMaW5rVVJMCiB7CiAgICAgc2VsZiA9IFtzZWxmIGluaXRX
aXRoRnJhbWU6ZnJhbWUgaWRlbnRpZmllcjppZGVudGlmaWVyIHBvbGljeUZ1bmN0aW9uOldURk1v
dmUocG9saWN5RnVuY3Rpb24pIGRlZmF1bHRQb2xpY3k6ZGVmYXVsdFBvbGljeV07CiAgICAgaWYg
KCFzZWxmKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViQ29yZVN1cHBv
cnQvV2ViR2VvbG9jYXRpb25DbGllbnQubW0gYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJD
b3JlU3VwcG9ydC9XZWJHZW9sb2NhdGlvbkNsaWVudC5tbQppbmRleCA4N2RhNzMwZmVhYWZkZWRk
Nzc0ZWQ3ZWE5NmI2ZjhkMDkzZWE5YTNkLi5kNWZjNjRiODEwN2Q4MjJkYjNkOThjZjFhYzczZjIx
ZmRjMGQxNmEyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJDb3JlU3Vw
cG9ydC9XZWJHZW9sb2NhdGlvbkNsaWVudC5tbQorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21h
Yy9XZWJDb3JlU3VwcG9ydC9XZWJHZW9sb2NhdGlvbkNsaWVudC5tbQpAQCAtMzcsNiArMzcsOCBA
QAogI2ltcG9ydCA8V2ViQ29yZS9GcmFtZS5oPgogI2ltcG9ydCA8V2ViQ29yZS9HZW9sb2NhdGlv
bi5oPgogI2ltcG9ydCA8d3RmL0Jsb2NrT2JqQ0V4Y2VwdGlvbnMuaD4KKyNpbXBvcnQgPHd0Zi9O
YWtlZFB0ci5oPgorI2ltcG9ydCA8d3RmL05ha2VkUmVmLmg+CiAKICNpZiBQTEFURk9STShJT1Nf
RkFNSUxZKQogI2ltcG9ydCA8V2ViQ29yZS9XQUtSZXNwb25kZXIuaD4KQEAgLTUwLDcgKzUyLDcg
QEAgQGludGVyZmFjZSBXZWJHZW9sb2NhdGlvblBvbGljeUxpc3RlbmVyIDogTlNPYmplY3QgPFdl
YkFsbG93RGVueVBvbGljeUxpc3RlbmVyPgogewogICAgIFJlZlB0cjxHZW9sb2NhdGlvbj4gX2dl
b2xvY2F0aW9uOwogfQotLSAoaWQpaW5pdFdpdGhHZW9sb2NhdGlvbjooR2VvbG9jYXRpb24mKWdl
b2xvY2F0aW9uOworLSAoaWQpaW5pdFdpdGhHZW9sb2NhdGlvbjooTmFrZWRSZWY8R2VvbG9jYXRp
b24+KWdlb2xvY2F0aW9uOwogQGVuZAogI2Vsc2UKIEBpbnRlcmZhY2UgV2ViR2VvbG9jYXRpb25Q
b2xpY3lMaXN0ZW5lciA6IE5TT2JqZWN0IDxXZWJBbGxvd0RlbnlQb2xpY3lMaXN0ZW5lcj4KQEAg
LTU4LDcgKzYwLDcgQEAgQGludGVyZmFjZSBXZWJHZW9sb2NhdGlvblBvbGljeUxpc3RlbmVyIDog
TlNPYmplY3QgPFdlYkFsbG93RGVueVBvbGljeUxpc3RlbmVyPgogICAgIFJlZlB0cjxHZW9sb2Nh
dGlvbj4gX2dlb2xvY2F0aW9uOwogICAgIFJldGFpblB0cjxXZWJWaWV3PiBfd2ViVmlldzsKIH0K
LS0gKGlkKWluaXRXaXRoR2VvbG9jYXRpb246KEdlb2xvY2F0aW9uKilnZW9sb2NhdGlvbiBmb3JX
ZWJWaWV3OihXZWJWaWV3Kil3ZWJWaWV3OworLSAoaWQpaW5pdFdpdGhHZW9sb2NhdGlvbjooTmFr
ZWRQdHI8R2VvbG9jYXRpb24+KWdlb2xvY2F0aW9uIGZvcldlYlZpZXc6KFdlYlZpZXcqKXdlYlZp
ZXc7CiBAZW5kCiAjZW5kaWYKIApAQCAtNjcsNyArNjksNyBAQCBAaW50ZXJmYWNlIFdlYkdlb2xv
Y2F0aW9uUHJvdmlkZXJJbml0aWFsaXphdGlvbkxpc3RlbmVyIDogTlNPYmplY3QgPFdlYkdlb2xv
Y2F0aQogQHByaXZhdGUKICAgICBSZWZQdHI8R2VvbG9jYXRpb24+IG1fZ2VvbG9jYXRpb247CiB9
Ci0tIChpZClpbml0V2l0aEdlb2xvY2F0aW9uOihHZW9sb2NhdGlvbiYpZ2VvbG9jYXRpb247Cist
IChpZClpbml0V2l0aEdlb2xvY2F0aW9uOihOYWtlZFJlZjxHZW9sb2NhdGlvbj4pZ2VvbG9jYXRp
b247CiBAZW5kCiAjZW5kaWYKIApAQCAtMTQwLDExICsxNDIsMTEgQEAgT3B0aW9uYWw8R2VvbG9j
YXRpb25Qb3NpdGlvbkRhdGE+IFdlYkdlb2xvY2F0aW9uQ2xpZW50OjpsYXN0UG9zaXRpb24oKQog
I2lmICFQTEFURk9STShJT1NfRkFNSUxZKQogQGltcGxlbWVudGF0aW9uIFdlYkdlb2xvY2F0aW9u
UG9saWN5TGlzdGVuZXIKIAotLSAoaWQpaW5pdFdpdGhHZW9sb2NhdGlvbjooR2VvbG9jYXRpb24m
KWdlb2xvY2F0aW9uCistIChpZClpbml0V2l0aEdlb2xvY2F0aW9uOihOYWtlZFJlZjxHZW9sb2Nh
dGlvbj4pZ2VvbG9jYXRpb24KIHsKICAgICBpZiAoIShzZWxmID0gW3N1cGVyIGluaXRdKSkKICAg
ICAgICAgcmV0dXJuIG5pbDsKLSAgICBfZ2VvbG9jYXRpb24gPSAmZ2VvbG9jYXRpb247CisgICAg
X2dlb2xvY2F0aW9uID0gZ2VvbG9jYXRpb24ucHRyKCk7CiAgICAgcmV0dXJuIHNlbGY7CiB9CiAK
QEAgLTE2MiwxMiArMTY0LDEyIEBAIEBlbmQKIAogI2Vsc2UKIEBpbXBsZW1lbnRhdGlvbiBXZWJH
ZW9sb2NhdGlvblBvbGljeUxpc3RlbmVyCi0tIChpZClpbml0V2l0aEdlb2xvY2F0aW9uOihHZW9s
b2NhdGlvbiopZ2VvbG9jYXRpb24gZm9yV2ViVmlldzooV2ViVmlldyopd2ViVmlldworLSAoaWQp
aW5pdFdpdGhHZW9sb2NhdGlvbjooTmFrZWRQdHI8R2VvbG9jYXRpb24+KWdlb2xvY2F0aW9uIGZv
cldlYlZpZXc6KFdlYlZpZXcqKXdlYlZpZXcKIHsKICAgICBzZWxmID0gW3N1cGVyIGluaXRdOwog
ICAgIGlmICghc2VsZikKICAgICAgICAgcmV0dXJuIG5pbDsKLSAgICBfZ2VvbG9jYXRpb24gPSBn
ZW9sb2NhdGlvbjsKKyAgICBfZ2VvbG9jYXRpb24gPSBnZW9sb2NhdGlvbi5nZXQoKTsKICAgICBf
d2ViVmlldyA9IHdlYlZpZXc7CiAgICAgcmV0dXJuIHNlbGY7CiB9CkBAIC0yMDYsMTEgKzIwOCwx
MSBAQCAtIChCT09MKXNob3VsZENsZWFyQ2FjaGUKIEBlbmQKIAogQGltcGxlbWVudGF0aW9uIFdl
Ykdlb2xvY2F0aW9uUHJvdmlkZXJJbml0aWFsaXphdGlvbkxpc3RlbmVyCi0tIChpZClpbml0V2l0
aEdlb2xvY2F0aW9uOihHZW9sb2NhdGlvbiYpZ2VvbG9jYXRpb24KKy0gKGlkKWluaXRXaXRoR2Vv
bG9jYXRpb246KE5ha2VkUmVmPEdlb2xvY2F0aW9uPilnZW9sb2NhdGlvbgogewogICAgIHNlbGYg
PSBbc3VwZXIgaW5pdF07CiAgICAgaWYgKHNlbGYpCi0gICAgICAgIG1fZ2VvbG9jYXRpb24gPSAm
Z2VvbG9jYXRpb247CisgICAgICAgIG1fZ2VvbG9jYXRpb24gPSBnZW9sb2NhdGlvbi5wdHIoKTsK
ICAgICByZXR1cm4gc2VsZjsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS9t
YWMvV2ViQ29yZVN1cHBvcnQvV2ViSW5zcGVjdG9yQ2xpZW50Lm1tIGIvU291cmNlL1dlYktpdExl
Z2FjeS9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViSW5zcGVjdG9yQ2xpZW50Lm1tCmluZGV4IGM0NzZj
NzU1YjJlNmFhNDk2ZTU4Yjg0MmYyMjJlOGY2NWYzZmVjODMuLjNhMGE3MjNjYWU4ZGQyNDYyOGMw
ZjU5ZTc1MzM2NTJiMmI1NGJhODkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFj
L1dlYkNvcmVTdXBwb3J0L1dlYkluc3BlY3RvckNsaWVudC5tbQorKysgYi9Tb3VyY2UvV2ViS2l0
TGVnYWN5L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJJbnNwZWN0b3JDbGllbnQubW0KQEAgLTU0LDYg
KzU0LDcgQEAKICNpbXBvcnQgPFdlYkNvcmUvU2V0dGluZ3MuaD4KICNpbXBvcnQgPFdlYktpdExl
Z2FjeS9ET01FeHRlbnNpb25zLmg+CiAjaW1wb3J0IDxhbGdvcml0aG0+CisjaW1wb3J0IDx3dGYv
TmFrZWRQdHIuaD4KICNpbXBvcnQgPHd0Zi90ZXh0L0Jhc2U2NC5oPgogCiB1c2luZyBuYW1lc3Bh
Y2UgV2ViQ29yZTsKQEAgLTY4LDcgKzY5LDcgQEAgQGludGVyZmFjZSBXZWJJbnNwZWN0b3JXaW5k
b3dDb250cm9sbGVyIDogTlNXaW5kb3dDb250cm9sbGVyIDxOU1dpbmRvd0RlbGVnYXRlLAogQHBy
aXZhdGUKICAgICBSZXRhaW5QdHI8V2ViVmlldz4gX2luc3BlY3RlZFdlYlZpZXc7CiAgICAgV2Vi
VmlldyogX2Zyb250ZW5kV2ViVmlldzsKLSAgICBXZWJJbnNwZWN0b3JGcm9udGVuZENsaWVudCog
X2Zyb250ZW5kQ2xpZW50OworICAgIE5ha2VkUHRyPFdlYkluc3BlY3RvckZyb250ZW5kQ2xpZW50
PiBfZnJvbnRlbmRDbGllbnQ7CiAgICAgV2ViSW5zcGVjdG9yQ2xpZW50KiBfaW5zcGVjdG9yQ2xp
ZW50OwogICAgIEJPT0wgX2F0dGFjaGVkVG9JbnNwZWN0ZWRXZWJWaWV3OwogICAgIEJPT0wgX3No
b3VsZEF0dGFjaDsKQEAgLTgyLDkgKzgzLDkgQEAgLSAoV2ViVmlldyAqKWZyb250ZW5kV2ViVmll
dzsKIC0gKHZvaWQpYXR0YWNoOwogLSAodm9pZClkZXRhY2g7CiAtIChCT09MKWF0dGFjaGVkOwot
LSAodm9pZClzZXRGcm9udGVuZENsaWVudDooV2ViSW5zcGVjdG9yRnJvbnRlbmRDbGllbnQqKWZy
b250ZW5kQ2xpZW50OwotLSAodm9pZClzZXRJbnNwZWN0b3JDbGllbnQ6KFdlYkluc3BlY3RvckNs
aWVudCopaW5zcGVjdG9yQ2xpZW50OwotLSAoV2ViSW5zcGVjdG9yQ2xpZW50KilpbnNwZWN0b3JD
bGllbnQ7CistICh2b2lkKXNldEZyb250ZW5kQ2xpZW50OihOYWtlZFB0cjxXZWJJbnNwZWN0b3JG
cm9udGVuZENsaWVudD4pZnJvbnRlbmRDbGllbnQ7CistICh2b2lkKXNldEluc3BlY3RvckNsaWVu
dDooTmFrZWRQdHI8V2ViSW5zcGVjdG9yQ2xpZW50PilpbnNwZWN0b3JDbGllbnQ7CistIChOYWtl
ZFB0cjxXZWJJbnNwZWN0b3JDbGllbnQ+KWluc3BlY3RvckNsaWVudDsKIC0gKHZvaWQpc2V0QXR0
YWNoZWRXaW5kb3dIZWlnaHQ6KHVuc2lnbmVkKWhlaWdodDsKIC0gKHZvaWQpc2V0RG9ja2luZ1Vu
YXZhaWxhYmxlOihCT09MKXVuYXZhaWxhYmxlOwogLSAodm9pZClkZXN0cm95SW5zcGVjdG9yVmll
dzsKQEAgLTI2MSw3ICsyNjIsNyBAQCB2b2lkIFdlYkluc3BlY3RvckZyb250ZW5kQ2xpZW50Ojpy
ZXNldFN0YXRlKCkKIHsKICAgICBJbnNwZWN0b3JGcm9udGVuZENsaWVudExvY2FsOjpyZXNldFN0
YXRlKCk7CiAKLSAgICBhdXRvKiBpbnNwZWN0b3JDbGllbnQgPSBbbV9mcm9udGVuZFdpbmRvd0Nv
bnRyb2xsZXIgaW5zcGVjdG9yQ2xpZW50XTsKKyAgICBhdXRvIGluc3BlY3RvckNsaWVudCA9IFtt
X2Zyb250ZW5kV2luZG93Q29udHJvbGxlciBpbnNwZWN0b3JDbGllbnRdOwogICAgIGluc3BlY3Rv
ckNsaWVudC0+ZGVsZXRlSW5zcGVjdG9yU3RhcnRzQXR0YWNoZWQoKTsKICAgICBpbnNwZWN0b3JD
bGllbnQtPmRlbGV0ZUluc3BlY3RvckF0dGFjaERpc2FibGVkKCk7CiAKQEAgLTY3MiwxNyArNjcz
LDE3IEBAIC0gKEJPT0wpYXR0YWNoZWQKICAgICByZXR1cm4gX2F0dGFjaGVkVG9JbnNwZWN0ZWRX
ZWJWaWV3OwogfQogCi0tICh2b2lkKXNldEZyb250ZW5kQ2xpZW50OihXZWJJbnNwZWN0b3JGcm9u
dGVuZENsaWVudCopZnJvbnRlbmRDbGllbnQKKy0gKHZvaWQpc2V0RnJvbnRlbmRDbGllbnQ6KE5h
a2VkUHRyPFdlYkluc3BlY3RvckZyb250ZW5kQ2xpZW50Pilmcm9udGVuZENsaWVudAogewogICAg
IF9mcm9udGVuZENsaWVudCA9IGZyb250ZW5kQ2xpZW50OwogfQogCi0tICh2b2lkKXNldEluc3Bl
Y3RvckNsaWVudDooV2ViSW5zcGVjdG9yQ2xpZW50KilpbnNwZWN0b3JDbGllbnQKKy0gKHZvaWQp
c2V0SW5zcGVjdG9yQ2xpZW50OihOYWtlZFB0cjxXZWJJbnNwZWN0b3JDbGllbnQ+KWluc3BlY3Rv
ckNsaWVudAogewogICAgIF9pbnNwZWN0b3JDbGllbnQgPSBpbnNwZWN0b3JDbGllbnQ7CiB9CiAK
LS0gKFdlYkluc3BlY3RvckNsaWVudCopaW5zcGVjdG9yQ2xpZW50CistIChOYWtlZFB0cjxXZWJJ
bnNwZWN0b3JDbGllbnQ+KWluc3BlY3RvckNsaWVudAogewogICAgIHJldHVybiBfaW5zcGVjdG9y
Q2xpZW50OwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViSW5zcGVj
dG9yL1dlYkluc3BlY3RvckZyb250ZW5kLmggYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJJ
bnNwZWN0b3IvV2ViSW5zcGVjdG9yRnJvbnRlbmQuaAppbmRleCA3ZTlkNjhhMzJhYmIxNWYwOTZk
N2M3NDNmYWJlMThlNzBiYjRiZDdjLi44ZGE1NzY1NzU0NjMwNWQwM2Y4OTRmZDhjYWI0NDhmNWY1
M2M3MTEwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJJbnNwZWN0b3Iv
V2ViSW5zcGVjdG9yRnJvbnRlbmQuaAorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJJ
bnNwZWN0b3IvV2ViSW5zcGVjdG9yRnJvbnRlbmQuaApAQCAtMjMsMTMgKzIzLDE1IEBACiAgKiBP
RiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNV
Q0ggREFNQUdFLiAKICAqLwogCisjaW1wb3J0IDx3dGYvTmFrZWRQdHIuaD4KKwogY2xhc3MgV2Vi
SW5zcGVjdG9yRnJvbnRlbmRDbGllbnQ7CiAKIEBpbnRlcmZhY2UgV2ViSW5zcGVjdG9yRnJvbnRl
bmQgOiBOU09iamVjdCB7CiBAcHJpdmF0ZQotICAgIFdlYkluc3BlY3RvckZyb250ZW5kQ2xpZW50
ICptX2Zyb250ZW5kQ2xpZW50OworICAgIE5ha2VkUHRyPFdlYkluc3BlY3RvckZyb250ZW5kQ2xp
ZW50PiBtX2Zyb250ZW5kQ2xpZW50OwogfQotLSAoaWQpaW5pdFdpdGhGcm9udGVuZENsaWVudDoo
V2ViSW5zcGVjdG9yRnJvbnRlbmRDbGllbnQgKilmcm9udGVuZENsaWVudDsKKy0gKGlkKWluaXRX
aXRoRnJvbnRlbmRDbGllbnQ6KE5ha2VkUHRyPFdlYkluc3BlY3RvckZyb250ZW5kQ2xpZW50Pilm
cm9udGVuZENsaWVudDsKIC0gKHZvaWQpYXR0YWNoOwogLSAodm9pZClkZXRhY2g7CiAtICh2b2lk
KWNsb3NlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViSW5zcGVjdG9y
L1dlYkluc3BlY3RvckZyb250ZW5kLm1tIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViSW5z
cGVjdG9yL1dlYkluc3BlY3RvckZyb250ZW5kLm1tCmluZGV4IDUxY2U0OGU4ZDZmODZkNTAyOTYz
YTYwZmY4MTUzMzMyNWNiOTY3ODAuLmU3OTgxOTgzNDFhYmExMDBhYzQxYWNjNDM4ZGE1Mjc3YjQ1
MWQyZWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYkluc3BlY3Rvci9X
ZWJJbnNwZWN0b3JGcm9udGVuZC5tbQorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJJ
bnNwZWN0b3IvV2ViSW5zcGVjdG9yRnJvbnRlbmQubW0KQEAgLTMyLDcgKzMyLDcgQEAgdXNpbmcg
bmFtZXNwYWNlIFdlYkNvcmU7CiAKIEBpbXBsZW1lbnRhdGlvbiBXZWJJbnNwZWN0b3JGcm9udGVu
ZAogCi0tIChpZClpbml0V2l0aEZyb250ZW5kQ2xpZW50OihXZWJJbnNwZWN0b3JGcm9udGVuZENs
aWVudCAqKWZyb250ZW5kQ2xpZW50CistIChpZClpbml0V2l0aEZyb250ZW5kQ2xpZW50OihOYWtl
ZFB0cjxXZWJJbnNwZWN0b3JGcm9udGVuZENsaWVudD4pZnJvbnRlbmRDbGllbnQKIHsKICAgICBp
ZiAoIShzZWxmID0gW3N1cGVyIGluaXRdKSkKICAgICAgICAgcmV0dXJuIG5pbDsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYkluc3BlY3Rvci9XZWJOb2RlSGlnaGxpZ2h0
LmggYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJJbnNwZWN0b3IvV2ViTm9kZUhpZ2hsaWdo
dC5oCmluZGV4IDAwNmUxZDBiOTY1MWM2N2I1NTNmNTM3Nzg5MjFkYjE4MzQ3Mjg1OWQuLjRkYWYz
M2ViNzlhZDMzM2RkZGFjNTliNzAzOGVlNWU2MTI2NTI3YjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXRMZWdhY3kvbWFjL1dlYkluc3BlY3Rvci9XZWJOb2RlSGlnaGxpZ2h0LmgKKysrIGIvU291
cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViSW5zcGVjdG9yL1dlYk5vZGVIaWdobGlnaHQuaApAQCAt
MzEsNiArMzEsNyBAQAogI2ltcG9ydCA8V2ViS2l0TGVnYWN5L1dBS0FwcEtpdFN0dWJzLmg+CiAj
aW1wb3J0IDxXZWJLaXRMZWdhY3kvV0FLVmlldy5oPgogI2VuZGlmCisjaW1wb3J0IDx3dGYvTmFr
ZWRQdHIuaD4KIAogQGNsYXNzIFdlYk5vZGVIaWdobGlnaHRWaWV3OwogI2lmIFBMQVRGT1JNKElP
U19GQU1JTFkpCkBAIC01OCwxMCArNTksMTAgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgIFdl
YkhpZ2hsaWdodExheWVyICpfaGlnaGxpZ2h0TGF5ZXI7CiAjZW5kaWYKICAgICBXZWJOb2RlSGln
aGxpZ2h0VmlldyAqX2hpZ2hsaWdodFZpZXc7Ci0gICAgV2ViQ29yZTo6SW5zcGVjdG9yQ29udHJv
bGxlciogX2luc3BlY3RvckNvbnRyb2xsZXI7CisgICAgTmFrZWRQdHI8V2ViQ29yZTo6SW5zcGVj
dG9yQ29udHJvbGxlcj4gX2luc3BlY3RvckNvbnRyb2xsZXI7CiAgICAgaWQgX2RlbGVnYXRlOwog
fQotLSAoaWQpaW5pdFdpdGhUYXJnZXRWaWV3OihOU1ZpZXcgKil0YXJnZXRWaWV3IGluc3BlY3Rv
ckNvbnRyb2xsZXI6KFdlYkNvcmU6Okluc3BlY3RvckNvbnRyb2xsZXIqKWluc3BlY3RvckNvbnRy
b2xsZXI7CistIChpZClpbml0V2l0aFRhcmdldFZpZXc6KE5TVmlldyAqKXRhcmdldFZpZXcgaW5z
cGVjdG9yQ29udHJvbGxlcjooTmFrZWRQdHI8V2ViQ29yZTo6SW5zcGVjdG9yQ29udHJvbGxlcj4p
aW5zcGVjdG9yQ29udHJvbGxlcjsKIAogLSAodm9pZClzZXREZWxlZ2F0ZTooaWQpZGVsZWdhdGU7
CiAtIChpZClkZWxlZ2F0ZTsKQEAgLTcyLDcgKzczLDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewog
LSAoTlNWaWV3ICopdGFyZ2V0VmlldzsKIC0gKFdlYk5vZGVIaWdobGlnaHRWaWV3ICopaGlnaGxp
Z2h0VmlldzsKIAotLSAoV2ViQ29yZTo6SW5zcGVjdG9yQ29udHJvbGxlciopaW5zcGVjdG9yQ29u
dHJvbGxlcjsKKy0gKE5ha2VkUHRyPFdlYkNvcmU6Okluc3BlY3RvckNvbnRyb2xsZXI+KWluc3Bl
Y3RvckNvbnRyb2xsZXI7CiAKICNpZiAhUExBVEZPUk0oSU9TX0ZBTUlMWSkKIC0gKHZvaWQpc2V0
TmVlZHNVcGRhdGVJblRhcmdldFZpZXdSZWN0OihOU1JlY3QpcmVjdDsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYkluc3BlY3Rvci9XZWJOb2RlSGlnaGxpZ2h0Lm1tIGIv
U291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViSW5zcGVjdG9yL1dlYk5vZGVIaWdobGlnaHQubW0K
aW5kZXggM2RiNDRkNmY1NTg5OWYwOGFjOGRkNDJmODhhZGZmM2Y5OWM1OTk5MC4uMGFmNTYxOWE3
MjZjMzVhZjg1MWFhMDdjNWM0M2QzMDI3MzdlYTI1NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dExlZ2FjeS9tYWMvV2ViSW5zcGVjdG9yL1dlYk5vZGVIaWdobGlnaHQubW0KKysrIGIvU291cmNl
L1dlYktpdExlZ2FjeS9tYWMvV2ViSW5zcGVjdG9yL1dlYk5vZGVIaWdobGlnaHQubW0KQEAgLTgx
LDcgKzgxLDcgQEAgQGVuZAogCiBAaW1wbGVtZW50YXRpb24gV2ViTm9kZUhpZ2hsaWdodAogCi0t
IChpZClpbml0V2l0aFRhcmdldFZpZXc6KE5TVmlldyAqKXRhcmdldFZpZXcgaW5zcGVjdG9yQ29u
dHJvbGxlcjooSW5zcGVjdG9yQ29udHJvbGxlciopaW5zcGVjdG9yQ29udHJvbGxlcgorLSAoaWQp
aW5pdFdpdGhUYXJnZXRWaWV3OihOU1ZpZXcgKil0YXJnZXRWaWV3IGluc3BlY3RvckNvbnRyb2xs
ZXI6KE5ha2VkUHRyPEluc3BlY3RvckNvbnRyb2xsZXI+KWluc3BlY3RvckNvbnRyb2xsZXIKIHsK
ICAgICBzZWxmID0gW3N1cGVyIGluaXRdOwogICAgIGlmICghc2VsZikKQEAgLTI1MCw3ICsyNTAs
NyBAQCAtIChOU1ZpZXcgKil0YXJnZXRWaWV3CiAgICAgcmV0dXJuIF90YXJnZXRWaWV3OwogfQog
Ci0tIChJbnNwZWN0b3JDb250cm9sbGVyKilpbnNwZWN0b3JDb250cm9sbGVyCistIChOYWtlZFB0
cjxJbnNwZWN0b3JDb250cm9sbGVyPilpbnNwZWN0b3JDb250cm9sbGVyCiB7CiAgICAgcmV0dXJu
IF9pbnNwZWN0b3JDb250cm9sbGVyOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2Fj
eS9tYWMvV2ViVmlldy9XZWJBcmNoaXZlLm1tIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2Vi
Vmlldy9XZWJBcmNoaXZlLm1tCmluZGV4IDBkYTcwYmJmODU3ZDAyOGM5ZWM0YmFkNmViMzFmOWQ4
Mzc1MTcxY2MuLjhlYmZiNTNlOTE0YmZlZWVlNzMzOGU2NjAzNjk3OGVmYmE1YjJiZDEgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViQXJjaGl2ZS5tbQorKysg
Yi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYkFyY2hpdmUubW0KQEAgLTE3NSwx
MyArMTc1LDEzIEBAIC0gKGluc3RhbmNldHlwZSlpbml0V2l0aE1haW5SZXNvdXJjZTooV2ViUmVz
b3VyY2UgKiltYWluUmVzb3VyY2Ugc3VicmVzb3VyY2VzOihOCiAKICAgICBWZWN0b3I8UmVmPEFy
Y2hpdmVSZXNvdXJjZT4+IGNvcmVSZXNvdXJjZXM7CiAgICAgZm9yIChXZWJSZXNvdXJjZSAqc3Vi
cmVzb3VyY2UgaW4gc3VicmVzb3VyY2VzKQotICAgICAgICBjb3JlUmVzb3VyY2VzLmFwcGVuZChb
c3VicmVzb3VyY2UgX2NvcmVSZXNvdXJjZV0pOworICAgICAgICBjb3JlUmVzb3VyY2VzLmFwcGVu
ZChbc3VicmVzb3VyY2UgX2NvcmVSZXNvdXJjZV0uZ2V0KCkpOwogCiAgICAgVmVjdG9yPFJlZjxM
ZWdhY3lXZWJBcmNoaXZlPj4gY29yZUFyY2hpdmVzOwogICAgIGZvciAoV2ViQXJjaGl2ZSAqc3Vi
ZnJhbWVBcmNoaXZlIGluIHN1YmZyYW1lQXJjaGl2ZXMpCiAgICAgICAgIGNvcmVBcmNoaXZlcy5h
cHBlbmQoKltzdWJmcmFtZUFyY2hpdmUtPl9wcml2YXRlIGNvcmVBcmNoaXZlXSk7CiAKLSAgICBb
X3ByaXZhdGUgc2V0Q29yZUFyY2hpdmU6TGVnYWN5V2ViQXJjaGl2ZTo6Y3JlYXRlKFttYWluUmVz
b3VyY2UgX2NvcmVSZXNvdXJjZV0sIFdURk1vdmUoY29yZVJlc291cmNlcyksIFdURk1vdmUoY29y
ZUFyY2hpdmVzKSldOworICAgIFtfcHJpdmF0ZSBzZXRDb3JlQXJjaGl2ZTpMZWdhY3lXZWJBcmNo
aXZlOjpjcmVhdGUoW21haW5SZXNvdXJjZSBfY29yZVJlc291cmNlXS5nZXQoKSwgV1RGTW92ZShj
b3JlUmVzb3VyY2VzKSwgV1RGTW92ZShjb3JlQXJjaGl2ZXMpKV07CiAgICAgcmV0dXJuIHNlbGY7
CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViRGF0
YVNvdXJjZS5tbSBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViRGF0YVNvdXJj
ZS5tbQppbmRleCA5MWU5NGJmZjBkMmRiZWYxNjdkY2U1NGE4ZjE3YTViMzk0ZDgyODRhLi5iYjAy
NzY5M2MyNWE2YmM2Mzg2NDNkMGVlYzI2NGE0MjUwZTQzYjc5IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYkRhdGFTb3VyY2UubW0KKysrIGIvU291cmNlL1dl
YktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJEYXRhU291cmNlLm1tCkBAIC02MSw2ICs2MSw3IEBA
CiAjaW1wb3J0IDxXZWJLaXRMZWdhY3kvRE9NUHJpdmF0ZS5oPgogI2ltcG9ydCA8d3RmL0Fzc2Vy
dGlvbnMuaD4KICNpbXBvcnQgPHd0Zi9NYWluVGhyZWFkLmg+CisjaW1wb3J0IDx3dGYvTmFrZWRQ
dHIuaD4KICNpbXBvcnQgPHd0Zi9SZWZQdHIuaD4KICNpbXBvcnQgPHd0Zi9SZXRhaW5QdHIuaD4K
ICNpbXBvcnQgPHd0Zi9SdW5Mb29wLmg+CkBAIC0zOTQsNyArMzk1LDcgQEAgLSAodm9pZClfbWFr
ZVJlcHJlc2VudGF0aW9uCiAjZW5kaWYKIH0KIAotLSAoV2ViQ29yZTo6RG9jdW1lbnRMb2FkZXIq
KV9kb2N1bWVudExvYWRlcgorLSAoTmFrZWRQdHI8V2ViQ29yZTo6RG9jdW1lbnRMb2FkZXI+KV9k
b2N1bWVudExvYWRlcgogewogICAgIHJldHVybiB0b1ByaXZhdGUoX3ByaXZhdGUpLT5sb2FkZXIu
cHRyKCk7CiB9CkBAIC01NjQsNyArNTY1LDcgQEAgLSAoV2ViUmVzb3VyY2UgKilzdWJyZXNvdXJj
ZUZvclVSTDooTlNVUkwgKilVUkwKIAogLSAodm9pZClhZGRTdWJyZXNvdXJjZTooV2ViUmVzb3Vy
Y2UgKilzdWJyZXNvdXJjZQogeyAgICAKLSAgICB0b1ByaXZhdGUoX3ByaXZhdGUpLT5sb2FkZXIt
PmFkZEFyY2hpdmVSZXNvdXJjZShbc3VicmVzb3VyY2UgX2NvcmVSZXNvdXJjZV0pOworICAgIHRv
UHJpdmF0ZShfcHJpdmF0ZSktPmxvYWRlci0+YWRkQXJjaGl2ZVJlc291cmNlKFtzdWJyZXNvdXJj
ZSBfY29yZVJlc291cmNlXS5nZXQoKSk7CiB9CiAKIEBlbmQKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViRGF0YVNvdXJjZUludGVybmFsLmggYi9Tb3VyY2Uv
V2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYkRhdGFTb3VyY2VJbnRlcm5hbC5oCmluZGV4IDgw
ZTgxMTBmNTRmYjJkMjg4YTNiNzE5NDg3ZWNiN2RmZDg0MGMyYjIuLmIxZDg1NGQwYmQ0ZTExNjEx
YTRkMTVlZTcxYjI2NzFlMTNhYWQzYWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kv
bWFjL1dlYlZpZXcvV2ViRGF0YVNvdXJjZUludGVybmFsLmgKKysrIGIvU291cmNlL1dlYktpdExl
Z2FjeS9tYWMvV2ViVmlldy9XZWJEYXRhU291cmNlSW50ZXJuYWwuaApAQCAtMjgsNiArMjgsNyBA
QAogCiAjaW1wb3J0ICJXZWJEYXRhU291cmNlUHJpdmF0ZS5oIgogI2ltcG9ydCA8d3RmL0Zvcndh
cmQuaD4KKyNpbXBvcnQgPHd0Zi9OYWtlZFB0ci5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiBj
bGFzcyBEb2N1bWVudExvYWRlcjsKQEAgLTU3LDcgKzU4LDcgQEAgY2xhc3MgV2ViRG9jdW1lbnRM
b2FkZXJNYWM7CiAtICh2b2lkKV9yZWNlaXZlZERhdGE6KE5TRGF0YSAqKWRhdGE7CiAtICh2b2lk
KV9yZXZlcnRUb1Byb3Zpc2lvbmFsU3RhdGU7CiAtICh2b2lkKV9zZXRNYWluRG9jdW1lbnRFcnJv
cjooTlNFcnJvciAqKWVycm9yOwotLSAoV2ViQ29yZTo6RG9jdW1lbnRMb2FkZXIqKV9kb2N1bWVu
dExvYWRlcjsKKy0gKE5ha2VkUHRyPFdlYkNvcmU6OkRvY3VtZW50TG9hZGVyPilfZG9jdW1lbnRM
b2FkZXI7CiAjaWYgVVNFKFFVSUNLX0xPT0spCiBAcHJvcGVydHkgKG5vbmF0b21pYywgY29weSwg
c2V0dGVyPV9zZXRRdWlja0xvb2tDb250ZW50OikgTlNEaWN0aW9uYXJ5ICpfcXVpY2tMb29rQ29u
dGVudDsKIEBwcm9wZXJ0eSAobm9uYXRvbWljLCBzZXR0ZXI9X3NldFF1aWNrTG9va1ByZXZpZXdM
b2FkZXJDbGllbnQ6KSBXZWJDb3JlOjpMZWdhY3lQcmV2aWV3TG9hZGVyQ2xpZW50KiBfcXVpY2tM
b29rUHJldmlld0xvYWRlckNsaWVudDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kv
bWFjL1dlYlZpZXcvV2ViRnJhbWUubW0gYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3
L1dlYkZyYW1lLm1tCmluZGV4IDM0ZjI4MWQxNzA0NWQ1ZGVkMTQ2YTFlMzE5YTJmYjYzMGQwYjJj
M2YuLjBjYjZhZjY5MjFhNTVhZmE2MTBlNTk4NGMzNzk5ZjNjMWFlYTdlNjQgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViRnJhbWUubW0KKysrIGIvU291cmNl
L1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJGcmFtZS5tbQpAQCAtMjkxLDcgKzI5MSw3IEBA
IFdlYlZpZXcgKmtpdChXZWJDb3JlOjpQYWdlKiBwYWdlKQogCiBXZWJWaWV3ICpnZXRXZWJWaWV3
KFdlYkZyYW1lICp3ZWJGcmFtZSkKIHsKLSAgICBhdXRvKiBjb3JlRnJhbWUgPSBjb3JlKHdlYkZy
YW1lKTsKKyAgICBhdXRvIGNvcmVGcmFtZSA9IGNvcmUod2ViRnJhbWUpOwogICAgIGlmICghY29y
ZUZyYW1lKQogICAgICAgICByZXR1cm4gbmlsOwogICAgIHJldHVybiBraXQoY29yZUZyYW1lLT5w
YWdlKCkpOwpAQCAtNDMxLDggKzQzMSw4IEBAIC0gKHZvaWQpX3VwZGF0ZUJhY2tncm91bmRBbmRV
cGRhdGVzV2hpbGVPZmZzY3JlZW4KICAgICBDR0NvbG9yUmVmIGJhY2tncm91bmRDb2xvciA9IFt3
ZWJWaWV3IGJhY2tncm91bmRDb2xvcl07CiAjZW5kaWYKIAotICAgIGF1dG8qIGNvcmVGcmFtZSA9
IF9wcml2YXRlLT5jb3JlRnJhbWU7Ci0gICAgZm9yIChhdXRvKiBmcmFtZSA9IGNvcmVGcmFtZTsg
ZnJhbWU7IGZyYW1lID0gZnJhbWUtPnRyZWUoKS50cmF2ZXJzZU5leHQoY29yZUZyYW1lKSkgewor
ICAgIGF1dG8gY29yZUZyYW1lID0gX3ByaXZhdGUtPmNvcmVGcmFtZTsKKyAgICBmb3IgKGF1dG8g
ZnJhbWUgPSBjb3JlRnJhbWU7IGZyYW1lOyBmcmFtZSA9IGZyYW1lLT50cmVlKCkudHJhdmVyc2VO
ZXh0KGNvcmVGcmFtZSkpIHsKICAgICAgICAgLy8gRG9uJ3QgY2FsbCBzZXREcmF3c0JhY2tncm91
bmQ6WUVTIGhlcmUgYmVjYXVzZSBpdCBtYXkgYmUgTk8gYmVjYXVzZSBvZiBhIGxvYWQKICAgICAg
ICAgLy8gaW4gcHJvZ3Jlc3M7IFdlYkZyYW1lTG9hZGVyQ2xpZW50IGtlZXBzIGl0IHNldCB0byBO
TyBkdXJpbmcgdGhlIGxvYWQgcHJvY2Vzcy4KICAgICAgICAgV2ViRnJhbWUgKndlYkZyYW1lID0g
a2l0KGZyYW1lKTsKQEAgLTQ2OSw4ICs0NjksOCBAQCAtIChpZClfaW50ZXJuYWxMb2FkRGVsZWdh
dGUKIAogLSAodm9pZClfdW5tYXJrQWxsQmFkR3JhbW1hcgogewotICAgIGF1dG8qIGNvcmVGcmFt
ZSA9IF9wcml2YXRlLT5jb3JlRnJhbWU7Ci0gICAgZm9yIChhdXRvKiBmcmFtZSA9IGNvcmVGcmFt
ZTsgZnJhbWU7IGZyYW1lID0gZnJhbWUtPnRyZWUoKS50cmF2ZXJzZU5leHQoY29yZUZyYW1lKSkg
eworICAgIGF1dG8gY29yZUZyYW1lID0gX3ByaXZhdGUtPmNvcmVGcmFtZTsKKyAgICBmb3IgKGF1
dG8gZnJhbWUgPSBjb3JlRnJhbWU7IGZyYW1lOyBmcmFtZSA9IGZyYW1lLT50cmVlKCkudHJhdmVy
c2VOZXh0KGNvcmVGcmFtZSkpIHsKICAgICAgICAgaWYgKGF1dG8qIGRvY3VtZW50ID0gZnJhbWUt
PmRvY3VtZW50KCkpCiAgICAgICAgICAgICBkb2N1bWVudC0+bWFya2VycygpLnJlbW92ZU1hcmtl
cnMoV2ViQ29yZTo6RG9jdW1lbnRNYXJrZXI6OkdyYW1tYXIpOwogICAgIH0KQEAgLTQ3OSw4ICs0
NzksOCBAQCAtICh2b2lkKV91bm1hcmtBbGxCYWRHcmFtbWFyCiAtICh2b2lkKV91bm1hcmtBbGxN
aXNzcGVsbGluZ3MKIHsKICNpZiAhUExBVEZPUk0oSU9TX0ZBTUlMWSkKLSAgICBhdXRvKiBjb3Jl
RnJhbWUgPSBfcHJpdmF0ZS0+Y29yZUZyYW1lOwotICAgIGZvciAoYXV0byogZnJhbWUgPSBjb3Jl
RnJhbWU7IGZyYW1lOyBmcmFtZSA9IGZyYW1lLT50cmVlKCkudHJhdmVyc2VOZXh0KGNvcmVGcmFt
ZSkpIHsKKyAgICBhdXRvIGNvcmVGcmFtZSA9IF9wcml2YXRlLT5jb3JlRnJhbWU7CisgICAgZm9y
IChhdXRvIGZyYW1lID0gY29yZUZyYW1lOyBmcmFtZTsgZnJhbWUgPSBmcmFtZS0+dHJlZSgpLnRy
YXZlcnNlTmV4dChjb3JlRnJhbWUpKSB7CiAgICAgICAgIGlmIChhdXRvKiBkb2N1bWVudCA9IGZy
YW1lLT5kb2N1bWVudCgpKQogICAgICAgICAgICAgZG9jdW1lbnQtPm1hcmtlcnMoKS5yZW1vdmVN
YXJrZXJzKFdlYkNvcmU6OkRvY3VtZW50TWFya2VyOjpTcGVsbGluZyk7CiAgICAgfQpAQCAtNDkz
LDcgKzQ5Myw3IEBAIC0gKEJPT0wpX2hhc1NlbGVjdGlvbgogCiAgICAgLy8gb3B0aW1pemF0aW9u
IGZvciBjb21tb24gY2FzZSB0byBhdm9pZCBjcmVhdGluZyBwb3RlbnRpYWxseSBsYXJnZSBzZWxl
Y3Rpb24gc3RyaW5nCiAgICAgaWYgKFtkb2N1bWVudFZpZXcgaXNLaW5kT2ZDbGFzczpbV2ViSFRN
TFZpZXcgY2xhc3NdXSkKLSAgICAgICAgaWYgKGF1dG8qIGNvcmVGcmFtZSA9IF9wcml2YXRlLT5j
b3JlRnJhbWUpCisgICAgICAgIGlmIChhdXRvIGNvcmVGcmFtZSA9IF9wcml2YXRlLT5jb3JlRnJh
bWUpCiAgICAgICAgICAgICByZXR1cm4gY29yZUZyYW1lLT5zZWxlY3Rpb24oKS5pc1JhbmdlKCk7
CiAKICAgICBpZiAoW2RvY3VtZW50VmlldyBjb25mb3Jtc1RvUHJvdG9jb2w6QHByb3RvY29sKFdl
YkRvY3VtZW50VGV4dCldKQpAQCAtNTE0LDggKzUxNCw4IEBAIC0gKEJPT0wpX2F0TW9zdE9uZUZy
YW1lSGFzU2VsZWN0aW9uCiB7CiAgICAgLy8gRklYTUU6IDQxODYwNTAgaXMgb25lIGtub3duIGNh
c2UgdGhhdCBtYWtlcyB0aGlzIGRlYnVnIGNoZWNrIGZhaWwuCiAgICAgQk9PTCBmb3VuZCA9IE5P
OwotICAgIGF1dG8qIGNvcmVGcmFtZSA9IF9wcml2YXRlLT5jb3JlRnJhbWU7Ci0gICAgZm9yIChh
dXRvKiBmcmFtZSA9IGNvcmVGcmFtZTsgZnJhbWU7IGZyYW1lID0gZnJhbWUtPnRyZWUoKS50cmF2
ZXJzZU5leHQoY29yZUZyYW1lKSkgeworICAgIGF1dG8gY29yZUZyYW1lID0gX3ByaXZhdGUtPmNv
cmVGcmFtZTsKKyAgICBmb3IgKGF1dG8gZnJhbWUgPSBjb3JlRnJhbWU7IGZyYW1lOyBmcmFtZSA9
IGZyYW1lLT50cmVlKCkudHJhdmVyc2VOZXh0KGNvcmVGcmFtZSkpIHsKICAgICAgICAgaWYgKFtr
aXQoZnJhbWUpIF9oYXNTZWxlY3Rpb25dKSB7CiAgICAgICAgICAgICBpZiAoZm91bmQpCiAgICAg
ICAgICAgICAgICAgcmV0dXJuIE5POwpAQCAtNTI4LDggKzUyOCw4IEBAIC0gKEJPT0wpX2F0TW9z
dE9uZUZyYW1lSGFzU2VsZWN0aW9uCiAKIC0gKFdlYkZyYW1lICopX2ZpbmRGcmFtZVdpdGhTZWxl
Y3Rpb24KIHsKLSAgICBhdXRvKiBjb3JlRnJhbWUgPSBfcHJpdmF0ZS0+Y29yZUZyYW1lOwotICAg
IGZvciAoYXV0byogZnJhbWUgPSBjb3JlRnJhbWU7IGZyYW1lOyBmcmFtZSA9IGZyYW1lLT50cmVl
KCkudHJhdmVyc2VOZXh0KGNvcmVGcmFtZSkpIHsKKyAgICBhdXRvIGNvcmVGcmFtZSA9IF9wcml2
YXRlLT5jb3JlRnJhbWU7CisgICAgZm9yIChhdXRvIGZyYW1lID0gY29yZUZyYW1lOyBmcmFtZTsg
ZnJhbWUgPSBmcmFtZS0+dHJlZSgpLnRyYXZlcnNlTmV4dChjb3JlRnJhbWUpKSB7CiAgICAgICAg
IFdlYkZyYW1lICp3ZWJGcmFtZSA9IGtpdChmcmFtZSk7CiAgICAgICAgIGlmIChbd2ViRnJhbWUg
X2hhc1NlbGVjdGlvbl0pCiAgICAgICAgICAgICByZXR1cm4gd2ViRnJhbWU7CkBAIC03NjUsNyAr
NzY1LDcgQEAgLSAodm9pZClfc2Nyb2xsRE9NUmFuZ2VUb1Zpc2libGU6KERPTVJhbmdlICopcmFu
Z2Ugd2l0aEluc2V0OihDR0Zsb2F0KWluc2V0CiAgICAgICAgICAgICBzdGFydE5vZGUtPnJlbmRl
cmVyKCktPnNjcm9sbFJlY3RUb1Zpc2libGUoV2ViQ29yZTo6ZW5jbG9zaW5nSW50UmVjdChyYW5n
ZVJlY3QpLCBpbnNpZGVGaXhlZCwgeyBXZWJDb3JlOjpTZWxlY3Rpb25SZXZlYWxNb2RlOjpSZXZl
YWwsIFdlYkNvcmU6OlNjcm9sbEFsaWdubWVudDo6YWxpZ25Ub0VkZ2VJZk5lZWRlZCwgV2ViQ29y
ZTo6U2Nyb2xsQWxpZ25tZW50OjphbGlnblRvRWRnZUlmTmVlZGVkLCBXZWJDb3JlOjpTaG91bGRB
bGxvd0Nyb3NzT3JpZ2luU2Nyb2xsaW5nOjpZZXN9KTsKICAgICAgICAgICAgIGxheWVyLT5zZXRB
ZGp1c3RGb3JJT1NDYXJldFdoZW5TY3JvbGxpbmcoZmFsc2UpOwogCi0gICAgICAgICAgICBhdXRv
KiBjb3JlRnJhbWUgPSBjb3JlKHNlbGYpOworICAgICAgICAgICAgYXV0byBjb3JlRnJhbWUgPSBj
b3JlKHNlbGYpOwogICAgICAgICAgICAgaWYgKGNvcmVGcmFtZSkgewogICAgICAgICAgICAgICAg
IGF1dG8mIGZyYW1lU2VsZWN0aW9uID0gY29yZUZyYW1lLT5zZWxlY3Rpb24oKTsKICAgICAgICAg
ICAgICAgICBmcmFtZVNlbGVjdGlvbi5zZXRDYXJldFJlY3ROZWVkc1VwZGF0ZSgpOwpAQCAtODcw
LDcgKzg3MCw3IEBAIC0gKERPTVJhbmdlICopX21hcmtET01SYW5nZQogCiAtIChET01Eb2N1bWVu
dEZyYWdtZW50ICopX2RvY3VtZW50RnJhZ21lbnRXaXRoTWFya3VwU3RyaW5nOihOU1N0cmluZyAq
KW1hcmt1cFN0cmluZyBiYXNlVVJMU3RyaW5nOihOU1N0cmluZyAqKWJhc2VVUkxTdHJpbmcKIHsK
LSAgICBhdXRvKiBmcmFtZSA9IF9wcml2YXRlLT5jb3JlRnJhbWU7CisgICAgYXV0byBmcmFtZSA9
IF9wcml2YXRlLT5jb3JlRnJhbWU7CiAgICAgaWYgKCFmcmFtZSkKICAgICAgICAgcmV0dXJuIG5p
bDsKIApAQCAtODgzLDcgKzg4Myw3IEBAIC0gKERPTURvY3VtZW50RnJhZ21lbnQgKilfZG9jdW1l
bnRGcmFnbWVudFdpdGhNYXJrdXBTdHJpbmc6KE5TU3RyaW5nICopbWFya3VwU3RyCiAKIC0gKERP
TURvY3VtZW50RnJhZ21lbnQgKilfZG9jdW1lbnRGcmFnbWVudFdpdGhOb2Rlc0FzUGFyYWdyYXBo
czooTlNBcnJheSAqKW5vZGVzCiB7Ci0gICAgYXV0byogZnJhbWUgPSBfcHJpdmF0ZS0+Y29yZUZy
YW1lOworICAgIGF1dG8gZnJhbWUgPSBfcHJpdmF0ZS0+Y29yZUZyYW1lOwogICAgIGlmICghZnJh
bWUpCiAgICAgICAgIHJldHVybiBuaWw7CiAKQEAgLTk3MCw3ICs5NzAsNyBAQCAtICh2b2lkKV9k
cmFnU291cmNlRW5kZWRBdDooTlNQb2ludCl3aW5kb3dMb2Mgb3BlcmF0aW9uOihOU0RyYWdPcGVy
YXRpb24pb3BlcmF0aQogCiAtIChCT09MKV9jYW5Qcm92aWRlRG9jdW1lbnRTb3VyY2UKIHsKLSAg
ICBhdXRvKiBmcmFtZSA9IF9wcml2YXRlLT5jb3JlRnJhbWU7CisgICAgYXV0byBmcmFtZSA9IF9w
cml2YXRlLT5jb3JlRnJhbWU7CiAgICAgU3RyaW5nIG1pbWVUeXBlID0gZnJhbWUtPmRvY3VtZW50
KCktPmxvYWRlcigpLT53cml0ZXIoKS5taW1lVHlwZSgpOwogICAgIGF1dG8qIHBsdWdpbkRhdGEg
PSBmcmFtZS0+cGFnZSgpID8gJmZyYW1lLT5wYWdlKCktPnBsdWdpbkRhdGEoKSA6IDA7CiAKQEAg
LTEwMDYsNyArMTAwNiw3IEBAIEBpbXBsZW1lbnRhdGlvbiBXZWJGcmFtZSAoV2ViUHJpdmF0ZSkK
IC8vIEZJWE1FOiBUaGlzIGV4aXN0cyBvbmx5IGFzIGEgY29udmVuaWVuY2UgZm9yIFNhZmFyaSwg
Y29uc2lkZXIgbW92aW5nIHRoZXJlLgogLSAoQk9PTClfaXNEZXNjZW5kYW50T2ZGcmFtZTooV2Vi
RnJhbWUgKilhbmNlc3RvcgogewotICAgIGF1dG8qIGNvcmVGcmFtZSA9IF9wcml2YXRlLT5jb3Jl
RnJhbWU7CisgICAgYXV0byBjb3JlRnJhbWUgPSBfcHJpdmF0ZS0+Y29yZUZyYW1lOwogICAgIHJl
dHVybiBjb3JlRnJhbWUgJiYgY29yZUZyYW1lLT50cmVlKCkuaXNEZXNjZW5kYW50T2YoY29yZShh
bmNlc3RvcikpOwogfQogCkBAIC0xMTcxLDcgKzExNzEsNyBAQCAtICh1bnNpZ25lZClfcGVuZGlu
Z0ZyYW1lVW5sb2FkRXZlbnRDb3VudAogI2lmIEVOQUJMRShORVRTQ0FQRV9QTFVHSU5fQVBJKQog
LSAodm9pZClfcmVjdXJzaXZlX3Jlc3VtZU51bGxFdmVudHNGb3JBbGxOZXRzY2FwZVBsdWdpbnMK
IHsKLSAgICBhdXRvKiBjb3JlRnJhbWUgPSBjb3JlKHNlbGYpOworICAgIGF1dG8gY29yZUZyYW1l
ID0gY29yZShzZWxmKTsKICAgICBmb3IgKGF1dG8qIGZyYW1lID0gY29yZUZyYW1lOyBmcmFtZTsg
ZnJhbWUgPSBmcmFtZS0+dHJlZSgpLnRyYXZlcnNlTmV4dChjb3JlRnJhbWUpKSB7CiAgICAgICAg
IE5TVmlldyA8V2ViRG9jdW1lbnRWaWV3PiAqZG9jdW1lbnRWaWV3ID0gW1traXQoZnJhbWUpIGZy
YW1lVmlld10gZG9jdW1lbnRWaWV3XTsKICAgICAgICAgaWYgKFtkb2N1bWVudFZpZXcgaXNLaW5k
T2ZDbGFzczpbV2ViSFRNTFZpZXcgY2xhc3NdXSkKQEAgLTExODEsNyArMTE4MSw3IEBAIC0gKHZv
aWQpX3JlY3Vyc2l2ZV9yZXN1bWVOdWxsRXZlbnRzRm9yQWxsTmV0c2NhcGVQbHVnaW5zCiAKIC0g
KHZvaWQpX3JlY3Vyc2l2ZV9wYXVzZU51bGxFdmVudHNGb3JBbGxOZXRzY2FwZVBsdWdpbnMKIHsK
LSAgICBhdXRvKiBjb3JlRnJhbWUgPSBjb3JlKHNlbGYpOworICAgIGF1dG8gY29yZUZyYW1lID0g
Y29yZShzZWxmKTsKICAgICBmb3IgKGF1dG8qIGZyYW1lID0gY29yZUZyYW1lOyBmcmFtZTsgZnJh
bWUgPSBmcmFtZS0+dHJlZSgpLnRyYXZlcnNlTmV4dChjb3JlRnJhbWUpKSB7CiAgICAgICAgIE5T
VmlldyA8V2ViRG9jdW1lbnRWaWV3PiAqZG9jdW1lbnRWaWV3ID0gW1traXQoZnJhbWUpIGZyYW1l
Vmlld10gZG9jdW1lbnRWaWV3XTsKICAgICAgICAgaWYgKFtkb2N1bWVudFZpZXcgaXNLaW5kT2ZD
bGFzczpbV2ViSFRNTFZpZXcgY2xhc3NdXSkKQEAgLTEyMDAsNyArMTIwMCw3IEBAIC0gKHVuc2ln
bmVkKWZvcm1FbGVtZW50c0NoYXJhY3RlckNvdW50CiAtICh2b2lkKXNldFRpbWVvdXRzUGF1c2Vk
OihCT09MKWZsYWcKIHsKICAgICBpZiAoW3NlbGYgX3dlYkhUTUxEb2N1bWVudFZpZXddKSB7Ci0g
ICAgICAgIGlmIChhdXRvKiBjb3JlRnJhbWUgPSBfcHJpdmF0ZS0+Y29yZUZyYW1lKQorICAgICAg
ICBpZiAoYXV0byBjb3JlRnJhbWUgPSBfcHJpdmF0ZS0+Y29yZUZyYW1lKQogICAgICAgICAgICAg
Y29yZUZyYW1lLT5zZXRUaW1lcnNQYXVzZWQoZmxhZyk7CiAgICAgfQogfQpAQCAtMTIyMCw3ICsx
MjIwLDcgQEAgLSAodm9pZClzZXRQbHVnaW5zUGF1c2VkOihCT09MKWZsYWcKIC0gKHZvaWQpcHJl
cGFyZUZvclBhdXNlCiB7CiAgICAgaWYgKFtzZWxmIF93ZWJIVE1MRG9jdW1lbnRWaWV3XSkgewot
ICAgICAgICBpZiAoYXV0byogY29yZUZyYW1lID0gX3ByaXZhdGUtPmNvcmVGcmFtZSkKKyAgICAg
ICAgaWYgKGF1dG8gY29yZUZyYW1lID0gX3ByaXZhdGUtPmNvcmVGcmFtZSkKICAgICAgICAgICAg
IGNvcmVGcmFtZS0+ZGlzcGF0Y2hQYWdlSGlkZUV2ZW50QmVmb3JlUGF1c2UoKTsKICAgICB9CiB9
CkBAIC0xMjI4LDcgKzEyMjgsNyBAQCAtICh2b2lkKXByZXBhcmVGb3JQYXVzZQogLSAodm9pZCly
ZXN1bWVGcm9tUGF1c2UKIHsKICAgICBpZiAoW3NlbGYgX3dlYkhUTUxEb2N1bWVudFZpZXddKSB7
Ci0gICAgICAgIGlmIChhdXRvKiBjb3JlRnJhbWUgPSBfcHJpdmF0ZS0+Y29yZUZyYW1lKQorICAg
ICAgICBpZiAoYXV0byBjb3JlRnJhbWUgPSBfcHJpdmF0ZS0+Y29yZUZyYW1lKQogICAgICAgICAg
ICAgY29yZUZyYW1lLT5kaXNwYXRjaFBhZ2VTaG93RXZlbnRCZWZvcmVSZXN1bWUoKTsKICAgICB9
CiB9CkBAIC0xOTA3LDcgKzE5MDcsNyBAQCAtICh2b2lkKXJlc2V0VGV4dEF1dG9zaXppbmdCZWZv
cmVMYXlvdXQKICAgICBpZiAoIVtzZWxmIF93ZWJIVE1MRG9jdW1lbnRWaWV3XSkKICAgICAgICAg
cmV0dXJuOwogICAgIAotICAgIGF1dG8qIGNvcmVGcmFtZSA9IGNvcmUoc2VsZik7CisgICAgYXV0
byBjb3JlRnJhbWUgPSBjb3JlKHNlbGYpOwogICAgIGZvciAoYXV0byogZnJhbWUgPSBjb3JlRnJh
bWU7IGZyYW1lOyBmcmFtZSA9IGZyYW1lLT50cmVlKCkudHJhdmVyc2VOZXh0KGNvcmVGcmFtZSkp
IHsKICAgICAgICAgV2ViQ29yZTo6RG9jdW1lbnQqIGRvYyA9IGZyYW1lLT5kb2N1bWVudCgpOwog
ICAgICAgICBpZiAoIWRvYyB8fCAhZG9jLT5yZW5kZXJWaWV3KCkpCkBAIC0yMTE0LDcgKzIxMTQs
NyBAQCAtIChOU1N0cmluZyAqKV9zdHJpbmdCeUV2YWx1YXRpbmdKYXZhU2NyaXB0RnJvbVN0cmlu
ZzooTlNTdHJpbmcgKilzdHJpbmcgd2l0aEdsbwogCiAtIChKU0dsb2JhbENvbnRleHRSZWYpX2ds
b2JhbENvbnRleHRGb3JTY3JpcHRXb3JsZDooV2ViU2NyaXB0V29ybGQgKil3b3JsZAogewotICAg
IGF1dG8qIGNvcmVGcmFtZSA9IF9wcml2YXRlLT5jb3JlRnJhbWU7CisgICAgYXV0byBjb3JlRnJh
bWUgPSBfcHJpdmF0ZS0+Y29yZUZyYW1lOwogICAgIGlmICghY29yZUZyYW1lKQogICAgICAgICBy
ZXR1cm4gMDsKICAgICBhdXRvKiBjb3JlV29ybGQgPSBjb3JlKHdvcmxkKTsKQEAgLTIxODcsNyAr
MjE4Nyw3IEBAIC0gKHZvaWQpc2V0RW5oYW5jZWRBY2Nlc3NpYmlsaXR5OihCT09MKWVuYWJsZQog
CiAtIChOU1N0cmluZyopX2xheWVyVHJlZUFzVGV4dAogewotICAgIGF1dG8qIGNvcmVGcmFtZSA9
IF9wcml2YXRlLT5jb3JlRnJhbWU7CisgICAgYXV0byBjb3JlRnJhbWUgPSBfcHJpdmF0ZS0+Y29y
ZUZyYW1lOwogICAgIGlmICghY29yZUZyYW1lKQogICAgICAgICByZXR1cm4gQCIiOwogCkBAIC0y
MjMwLDcgKzIyMzAsNyBAQCAtIChpZClhY2Nlc3NpYmlsaXR5Um9vdAogCiAtICh2b2lkKV9jbGVh
ck9wZW5lcgogewotICAgIGF1dG8qIGNvcmVGcmFtZSA9IF9wcml2YXRlLT5jb3JlRnJhbWU7Cisg
ICAgYXV0byBjb3JlRnJhbWUgPSBfcHJpdmF0ZS0+Y29yZUZyYW1lOwogICAgIGlmIChjb3JlRnJh
bWUpCiAgICAgICAgIGNvcmVGcmFtZS0+bG9hZGVyKCkuc2V0T3BlbmVyKDApOwogfQpAQCAtMjMw
NCw3ICsyMzA0LDcgQEAgLSAoRE9NRG9jdW1lbnRGcmFnbWVudCAqKV9kb2N1bWVudEZyYWdtZW50
Rm9ySW1hZ2VEYXRhOihOU0RhdGEgKilkYXRhIHdpdGhSZWxhdGkKIAogLSAoQk9PTClmb2N1c2Vk
Tm9kZUhhc0NvbnRlbnQKIHsKLSAgICBhdXRvKiBjb3JlRnJhbWUgPSBfcHJpdmF0ZS0+Y29yZUZy
YW1lOworICAgIGF1dG8gY29yZUZyYW1lID0gX3ByaXZhdGUtPmNvcmVGcmFtZTsKICAgIAogICAg
IFdlYkNvcmU6OkVsZW1lbnQqIHJvb3Q7CiAgICAgY29uc3QgYXV0byYgc2VsZWN0aW9uID0gY29y
ZUZyYW1lLT5zZWxlY3Rpb24oKS5zZWxlY3Rpb24oKTsKQEAgLTIzMjYsNyArMjMyNiw3IEBAIC0g
KEJPT0wpZm9jdXNlZE5vZGVIYXNDb250ZW50CiAKIC0gKHZvaWQpX2Rpc3BhdGNoRGlkUmVjZWl2
ZVRpdGxlOihOU1N0cmluZyAqKXRpdGxlCiB7Ci0gICAgYXV0byogY29yZUZyYW1lID0gX3ByaXZh
dGUtPmNvcmVGcmFtZTsKKyAgICBhdXRvIGNvcmVGcmFtZSA9IF9wcml2YXRlLT5jb3JlRnJhbWU7
CiAgICAgaWYgKCFjb3JlRnJhbWUpCiAgICAgICAgIHJldHVybjsKICAgICBjb3JlRnJhbWUtPmxv
YWRlcigpLmNsaWVudCgpLmRpc3BhdGNoRGlkUmVjZWl2ZVRpdGxlKHsgdGl0bGUsIFdlYkNvcmU6
OlRleHREaXJlY3Rpb246OkxUUiB9KTsKQEAgLTIzMzYsNyArMjMzNiw3IEBAIC0gKHZvaWQpX2Rp
c3BhdGNoRGlkUmVjZWl2ZVRpdGxlOihOU1N0cmluZyAqKXRpdGxlCiAKIC0gKEpTVmFsdWVSZWYp
anNXcmFwcGVyRm9yTm9kZTooRE9NTm9kZSAqKW5vZGUgaW5TY3JpcHRXb3JsZDooV2ViU2NyaXB0
V29ybGQgKil3b3JsZAogewotICAgIGF1dG8qIGNvcmVGcmFtZSA9IF9wcml2YXRlLT5jb3JlRnJh
bWU7CisgICAgYXV0byBjb3JlRnJhbWUgPSBfcHJpdmF0ZS0+Y29yZUZyYW1lOwogICAgIGlmICgh
Y29yZUZyYW1lKQogICAgICAgICByZXR1cm4gMDsKIApAQCAtMjM1Miw3ICsyMzUyLDcgQEAgLSAo
SlNWYWx1ZVJlZilqc1dyYXBwZXJGb3JOb2RlOihET01Ob2RlICopbm9kZSBpblNjcmlwdFdvcmxk
OihXZWJTY3JpcHRXb3JsZCAqKXcKIAogLSAoTlNEaWN0aW9uYXJ5ICopZWxlbWVudEF0UG9pbnQ6
KE5TUG9pbnQpcG9pbnQKIHsKLSAgICBhdXRvKiBjb3JlRnJhbWUgPSBfcHJpdmF0ZS0+Y29yZUZy
YW1lOworICAgIGF1dG8gY29yZUZyYW1lID0gX3ByaXZhdGUtPmNvcmVGcmFtZTsKICAgICBpZiAo
IWNvcmVGcmFtZSkKICAgICAgICAgcmV0dXJuIG5pbDsKICAgICByZXR1cm4gW1tbV2ViRWxlbWVu
dERpY3Rpb25hcnkgYWxsb2NdIGluaXRXaXRoSGl0VGVzdFJlc3VsdDpjb3JlRnJhbWUtPmV2ZW50
SGFuZGxlcigpLmhpdFRlc3RSZXN1bHRBdFBvaW50KFdlYkNvcmU6OkludFBvaW50KHBvaW50KSwg
V2ViQ29yZTo6SGl0VGVzdFJlcXVlc3Q6OlJlYWRPbmx5IHwgV2ViQ29yZTo6SGl0VGVzdFJlcXVl
c3Q6OkFjdGl2ZSB8IFdlYkNvcmU6OkhpdFRlc3RSZXF1ZXN0OjpJZ25vcmVDbGlwcGluZyB8IFdl
YkNvcmU6OkhpdFRlc3RSZXF1ZXN0OjpEaXNhbGxvd1VzZXJBZ2VudFNoYWRvd0NvbnRlbnQgfCBX
ZWJDb3JlOjpIaXRUZXN0UmVxdWVzdDo6QWxsb3dDaGlsZEZyYW1lQ29udGVudCldIGF1dG9yZWxl
YXNlXTsKQEAgLTIzOTAsNyArMjM5MCw3IEBAIC0gKHZvaWQpZGVhbGxvYwogCiAtIChOU1N0cmlu
ZyAqKW5hbWUKIHsKLSAgICBhdXRvKiBjb3JlRnJhbWUgPSBfcHJpdmF0ZS0+Y29yZUZyYW1lOwor
ICAgIGF1dG8gY29yZUZyYW1lID0gX3ByaXZhdGUtPmNvcmVGcmFtZTsKICAgICBpZiAoIWNvcmVG
cmFtZSkKICAgICAgICAgcmV0dXJuIG5pbDsKICAgICByZXR1cm4gY29yZUZyYW1lLT50cmVlKCku
dW5pcXVlTmFtZSgpOwpAQCAtMjQyMSw3ICsyNDIxLDcgQEAgLSAoRE9NRG9jdW1lbnQgKilET01E
b2N1bWVudAogICAgIGlmIChuZWVkc01pY3Jvc29mdE1lc3NlbmdlckRPTURvY3VtZW50V29ya2Fy
b3VuZCgpICYmICFwdGhyZWFkX21haW5fbnAoKSkKICAgICAgICAgcmV0dXJuIG5pbDsKIAotICAg
IGF1dG8qIGNvcmVGcmFtZSA9IF9wcml2YXRlLT5jb3JlRnJhbWU7CisgICAgYXV0byBjb3JlRnJh
bWUgPSBfcHJpdmF0ZS0+Y29yZUZyYW1lOwogICAgIGlmICghY29yZUZyYW1lKQogICAgICAgICBy
ZXR1cm4gbmlsOwogICAgIApAQCAtMjQ0NCw3ICsyNDQ0LDcgQEAgLSAoRE9NRG9jdW1lbnQgKilE
T01Eb2N1bWVudAogCiAtIChET01IVE1MRWxlbWVudCAqKWZyYW1lRWxlbWVudAogewotICAgIGF1
dG8qIGNvcmVGcmFtZSA9IF9wcml2YXRlLT5jb3JlRnJhbWU7CisgICAgYXV0byBjb3JlRnJhbWUg
PSBfcHJpdmF0ZS0+Y29yZUZyYW1lOwogICAgIGlmICghY29yZUZyYW1lKQogICAgICAgICByZXR1
cm4gbmlsOwogICAgIHJldHVybiBraXQoY29yZUZyYW1lLT5vd25lckVsZW1lbnQoKSk7CkBAIC0y
NDUyLDE5ICsyNDUyLDE5IEBAIC0gKERPTUhUTUxFbGVtZW50ICopZnJhbWVFbGVtZW50CiAKIC0g
KFdlYkRhdGFTb3VyY2UgKilwcm92aXNpb25hbERhdGFTb3VyY2UKIHsKLSAgICBhdXRvKiBjb3Jl
RnJhbWUgPSBfcHJpdmF0ZS0+Y29yZUZyYW1lOworICAgIGF1dG8gY29yZUZyYW1lID0gX3ByaXZh
dGUtPmNvcmVGcmFtZTsKICAgICByZXR1cm4gY29yZUZyYW1lID8gZGF0YVNvdXJjZShjb3JlRnJh
bWUtPmxvYWRlcigpLnByb3Zpc2lvbmFsRG9jdW1lbnRMb2FkZXIoKSkgOiBuaWw7CiB9CiAKIC0g
KFdlYkRhdGFTb3VyY2UgKilkYXRhU291cmNlCiB7Ci0gICAgYXV0byogY29yZUZyYW1lID0gX3By
aXZhdGUtPmNvcmVGcmFtZTsKKyAgICBhdXRvIGNvcmVGcmFtZSA9IF9wcml2YXRlLT5jb3JlRnJh
bWU7CiAgICAgcmV0dXJuIGNvcmVGcmFtZSAmJiBjb3JlRnJhbWUtPmxvYWRlcigpLmZyYW1lSGFz
TG9hZGVkKCkgPyBbc2VsZiBfZGF0YVNvdXJjZV0gOiBuaWw7CiB9CiAKIC0gKHZvaWQpbG9hZFJl
cXVlc3Q6KE5TVVJMUmVxdWVzdCAqKXJlcXVlc3QKIHsKLSAgICBhdXRvKiBjb3JlRnJhbWUgPSBf
cHJpdmF0ZS0+Y29yZUZyYW1lOworICAgIGF1dG8gY29yZUZyYW1lID0gX3ByaXZhdGUtPmNvcmVG
cmFtZTsKICAgICBpZiAoIWNvcmVGcmFtZSkKICAgICAgICAgcmV0dXJuOwogCkBAIC0yNTc4LDcg
KzI1NzgsNyBAQCAtICh2b2lkKXJlbG9hZEZyb21PcmlnaW4KIAogLSAoV2ViRnJhbWUgKilmaW5k
RnJhbWVOYW1lZDooTlNTdHJpbmcgKiluYW1lCiB7Ci0gICAgYXV0byogY29yZUZyYW1lID0gX3By
aXZhdGUtPmNvcmVGcmFtZTsKKyAgICBhdXRvIGNvcmVGcmFtZSA9IF9wcml2YXRlLT5jb3JlRnJh
bWU7CiAgICAgaWYgKCFjb3JlRnJhbWUpCiAgICAgICAgIHJldHVybiBuaWw7CiAgICAgcmV0dXJu
IGtpdChjb3JlRnJhbWUtPnRyZWUoKS5maW5kKG5hbWUsICpjb3JlRnJhbWUpKTsKQEAgLTI1ODYs
NyArMjU4Niw3IEBAIC0gKFdlYkZyYW1lICopZmluZEZyYW1lTmFtZWQ6KE5TU3RyaW5nICopbmFt
ZQogCiAtIChXZWJGcmFtZSAqKXBhcmVudEZyYW1lCiB7Ci0gICAgYXV0byogY29yZUZyYW1lID0g
X3ByaXZhdGUtPmNvcmVGcmFtZTsKKyAgICBhdXRvIGNvcmVGcmFtZSA9IF9wcml2YXRlLT5jb3Jl
RnJhbWU7CiAgICAgaWYgKCFjb3JlRnJhbWUpCiAgICAgICAgIHJldHVybiBuaWw7CiAgICAgcmV0
dXJuIFtba2l0KGNvcmVGcmFtZS0+dHJlZSgpLnBhcmVudCgpKSByZXRhaW5dIGF1dG9yZWxlYXNl
XTsKQEAgLTI1OTQsNyArMjU5NCw3IEBAIC0gKFdlYkZyYW1lICopcGFyZW50RnJhbWUKIAogLSAo
TlNBcnJheSAqKWNoaWxkRnJhbWVzCiB7Ci0gICAgYXV0byogY29yZUZyYW1lID0gX3ByaXZhdGUt
PmNvcmVGcmFtZTsKKyAgICBhdXRvIGNvcmVGcmFtZSA9IF9wcml2YXRlLT5jb3JlRnJhbWU7CiAg
ICAgaWYgKCFjb3JlRnJhbWUpCiAgICAgICAgIHJldHVybiBbTlNBcnJheSBhcnJheV07CiAgICAg
TlNNdXRhYmxlQXJyYXkgKmNoaWxkcmVuID0gW05TTXV0YWJsZUFycmF5IGFycmF5V2l0aENhcGFj
aXR5OmNvcmVGcmFtZS0+dHJlZSgpLmNoaWxkQ291bnQoKV07CkBAIC0yNjA1LDcgKzI2MDUsNyBA
QCAtIChOU0FycmF5ICopY2hpbGRGcmFtZXMKIAogLSAoV2ViU2NyaXB0T2JqZWN0ICopd2luZG93
T2JqZWN0CiB7Ci0gICAgYXV0byogY29yZUZyYW1lID0gX3ByaXZhdGUtPmNvcmVGcmFtZTsKKyAg
ICBhdXRvIGNvcmVGcmFtZSA9IF9wcml2YXRlLT5jb3JlRnJhbWU7CiAgICAgaWYgKCFjb3JlRnJh
bWUpCiAgICAgICAgIHJldHVybiAwOwogICAgIHJldHVybiBjb3JlRnJhbWUtPnNjcmlwdCgpLndp
bmRvd1NjcmlwdE9iamVjdCgpOwpAQCAtMjYxMyw3ICsyNjEzLDcgQEAgLSAoV2ViU2NyaXB0T2Jq
ZWN0ICopd2luZG93T2JqZWN0CiAKIC0gKEpTR2xvYmFsQ29udGV4dFJlZilnbG9iYWxDb250ZXh0
CiB7Ci0gICAgYXV0byogY29yZUZyYW1lID0gX3ByaXZhdGUtPmNvcmVGcmFtZTsKKyAgICBhdXRv
IGNvcmVGcmFtZSA9IF9wcml2YXRlLT5jb3JlRnJhbWU7CiAgICAgaWYgKCFjb3JlRnJhbWUpCiAg
ICAgICAgIHJldHVybiAwOwogICAgIHJldHVybiB0b0dsb2JhbFJlZihjb3JlRnJhbWUtPnNjcmlw
dCgpLmdsb2JhbE9iamVjdChXZWJDb3JlOjptYWluVGhyZWFkTm9ybWFsV29ybGQoKSkpOwpAQCAt
MjYyMiw3ICsyNjIyLDcgQEAgLSAoSlNHbG9iYWxDb250ZXh0UmVmKWdsb2JhbENvbnRleHQKICNp
ZiBKU0NfT0JKQ19BUElfRU5BQkxFRAogLSAoSlNDb250ZXh0ICopamF2YVNjcmlwdENvbnRleHQK
IHsKLSAgICBhdXRvKiBjb3JlRnJhbWUgPSBfcHJpdmF0ZS0+Y29yZUZyYW1lOworICAgIGF1dG8g
Y29yZUZyYW1lID0gX3ByaXZhdGUtPmNvcmVGcmFtZTsKICAgICBpZiAoIWNvcmVGcmFtZSkKICAg
ICAgICAgcmV0dXJuIDA7CiAgICAgcmV0dXJuIGNvcmVGcmFtZS0+c2NyaXB0KCkuamF2YVNjcmlw
dENvbnRleHQoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcv
V2ViRnJhbWVJbnRlcm5hbC5oIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJG
cmFtZUludGVybmFsLmgKaW5kZXggOWY0NmFlY2RkZWI3MTdjMTg4ODM4Y2FhYzA2MmE3OTMyNTYz
NTFlMC4uOTM2YzM0ZjNkYThlYmQzZjJhMzM3MWY5NjIxMzg1M2YzOTYxMmZjZiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJGcmFtZUludGVybmFsLmgKKysr
IGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJGcmFtZUludGVybmFsLmgKQEAg
LTM1LDYgKzM1LDcgQEAKICNpbXBvcnQgPFdlYkNvcmUvRnJhbWVTZWxlY3Rpb24uaD4KICNpbXBv
cnQgPFdlYkNvcmUvUG9zaXRpb24uaD4KICNpbXBvcnQgPFdlYkNvcmUvU2V0dGluZ3MuaD4KKyNp
bXBvcnQgPHd0Zi9OYWtlZFB0ci5oPgogCiBAY2xhc3MgRE9NQ1NTU3R5bGVEZWNsYXJhdGlvbjsK
IEBjbGFzcyBET01Eb2N1bWVudEZyYWdtZW50OwpAQCAtODUsNyArODYsNyBAQCBXZWJWaWV3ICpn
ZXRXZWJWaWV3KFdlYkZyYW1lICp3ZWJGcmFtZSk7CiAKIEBpbnRlcmZhY2UgV2ViRnJhbWVQcml2
YXRlIDogTlNPYmplY3QgewogQHB1YmxpYwotICAgIFdlYkNvcmU6OkZyYW1lKiBjb3JlRnJhbWU7
CisgICAgTmFrZWRQdHI8V2ViQ29yZTo6RnJhbWU+IGNvcmVGcmFtZTsKICAgICBXZWJGcmFtZVZp
ZXcgKndlYkZyYW1lVmlldzsKICAgICBzdGQ6OnVuaXF1ZV9wdHI8V2ViU2NyaXB0RGVidWdnZXI+
IHNjcmlwdERlYnVnZ2VyOwogICAgIGlkIGludGVybmFsTG9hZERlbGVnYXRlOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJGcmFtZVZpZXcubW0gYi9Tb3Vy
Y2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYkZyYW1lVmlldy5tbQppbmRleCA4ZDFlODVm
NDM2MDYxODI0MDI1MjQwNGUxNzQ5N2MwNzljMWIzMjdlLi43MzY1ZDI1NmVlZDY5YWYwYzE2NDVk
MjY0ZTkwM2QyYjYxNzk0OGMxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9X
ZWJWaWV3L1dlYkZyYW1lVmlldy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJW
aWV3L1dlYkZyYW1lVmlldy5tbQpAQCAtMTMzLDcgKzEzMyw3IEBAIC0gKGZsb2F0KV92ZXJ0aWNh
bEtleWJvYXJkU2Nyb2xsRGlzdGFuY2UKICAgICByZXR1cm4gW1tzZWxmIF9zY3JvbGxWaWV3XSB2
ZXJ0aWNhbExpbmVTY3JvbGxdOwogfQogCi0tIChXZWJDb3JlOjpGcmFtZSopX3dlYl9mcmFtZQor
LSAoTmFrZWRQdHI8V2ViQ29yZTo6RnJhbWU+KV93ZWJfZnJhbWUKIHsKICAgICByZXR1cm4gY29y
ZShfcHJpdmF0ZS0+d2ViRnJhbWUpOwogfQpAQCAtMzMxLDcgKzMzMSw3IEBAIC0gKHZvaWQpX2Zy
YW1lU2l6ZUNoYW5nZWQKICAgICAvLyBTZWUgV2ViRnJhbWVMb2FkZXJDbGllbnQ6OnByb3Zpc2lv
bmFsTG9hZFN0YXJ0ZWQuCiAgICAgaWYgKFtbW3NlbGYgd2ViRnJhbWVdIHdlYlZpZXddIGRyYXdz
QmFja2dyb3VuZF0pCiAgICAgICAgIFtbc2VsZiBfc2Nyb2xsVmlld10gc2V0RHJhd3NCYWNrZ3Jv
dW5kOllFU107Ci0gICAgaWYgKGF1dG8qIGNvcmVGcmFtZSA9IFtzZWxmIF93ZWJfZnJhbWVdKSB7
CisgICAgaWYgKGF1dG8gY29yZUZyYW1lID0gW3NlbGYgX3dlYl9mcmFtZV0pIHsKICAgICAgICAg
aWYgKGF1dG8qIGNvcmVGcmFtZVZpZXcgPSBjb3JlRnJhbWUtPnZpZXcoKSkKICAgICAgICAgICAg
IGNvcmVGcmFtZVZpZXctPmF2YWlsYWJsZUNvbnRlbnRTaXplQ2hhbmdlZChXZWJDb3JlOjpTY3Jv
bGxhYmxlQXJlYTo6QXZhaWxhYmxlU2l6ZUNoYW5nZVJlYXNvbjo6QXJlYVNpemVDaGFuZ2VkKTsK
ICAgICB9CkBAIC02MTMsNyArNjEzLDcgQEAgLSAoQk9PTClfc2Nyb2xsT3ZlcmZsb3dJbkRpcmVj
dGlvbjooV2ViQ29yZTo6U2Nyb2xsRGlyZWN0aW9uKWRpcmVjdGlvbiBncmFudWxhcmkKIAogLSAo
Qk9PTClfaXNWZXJ0aWNhbERvY3VtZW50CiB7Ci0gICAgYXV0byogY29yZUZyYW1lID0gW3NlbGYg
X3dlYl9mcmFtZV07CisgICAgYXV0byBjb3JlRnJhbWUgPSBbc2VsZiBfd2ViX2ZyYW1lXTsKICAg
ICBpZiAoIWNvcmVGcmFtZSkKICAgICAgICAgcmV0dXJuIFlFUzsKICAgICBhdXRvKiBkb2N1bWVu
dCA9IGNvcmVGcmFtZS0+ZG9jdW1lbnQoKTsKQEAgLTYyNyw3ICs2MjcsNyBAQCAtIChCT09MKV9p
c1ZlcnRpY2FsRG9jdW1lbnQKIAogLSAoQk9PTClfaXNGbGlwcGVkRG9jdW1lbnQKIHsKLSAgICBh
dXRvKiBjb3JlRnJhbWUgPSBbc2VsZiBfd2ViX2ZyYW1lXTsKKyAgICBhdXRvIGNvcmVGcmFtZSA9
IFtzZWxmIF93ZWJfZnJhbWVdOwogICAgIGlmICghY29yZUZyYW1lKQogICAgICAgICByZXR1cm4g
Tk87CiAgICAgYXV0byogZG9jdW1lbnQgPSBjb3JlRnJhbWUtPmRvY3VtZW50KCk7CkBAIC04OTUs
NyArODk1LDcgQEAgLSAodm9pZClrZXlEb3duOihXZWJFdmVudCAqKWV2ZW50CiAjZW5kaWYKICAg
ICBpbnQgaW5kZXgsIGNvdW50OwogICAgIEJPT0wgY2FsbFN1cGVyID0gWUVTOwotICAgIGF1dG8q
IGNvcmVGcmFtZSA9IFtzZWxmIF93ZWJfZnJhbWVdOworICAgIGF1dG8gY29yZUZyYW1lID0gW3Nl
bGYgX3dlYl9mcmFtZV07CiAgICAgQk9PTCBtYWludGFpbnNCYWNrRm9yd2FyZExpc3QgPSBjb3Jl
RnJhbWUgJiYgc3RhdGljX2Nhc3Q8QmFja0ZvcndhcmRMaXN0Jj4oY29yZUZyYW1lLT5wYWdlKCkt
PmJhY2tGb3J3YXJkKCkuY2xpZW50KCkpLmVuYWJsZWQoKSA/IFlFUyA6IE5POwogCiAgICAgY291
bnQgPSBbY2hhcmFjdGVycyBsZW5ndGhdOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2Fj
eS9tYWMvV2ViVmlldy9XZWJGdWxsU2NyZWVuQ29udHJvbGxlci5tbSBiL1NvdXJjZS9XZWJLaXRM
ZWdhY3kvbWFjL1dlYlZpZXcvV2ViRnVsbFNjcmVlbkNvbnRyb2xsZXIubW0KaW5kZXggMzZmN2Y4
MmU3N2YxMDEzYmM4MzU2ODcyY2M3NDdlMjNiNmU1ZmJhNy4uMTdiNDIyZDNhYzgwMzdlZTUxOWVl
OGQ4Nzg5NDQ5ODFjNmQ3ZDlhMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMv
V2ViVmlldy9XZWJGdWxsU2NyZWVuQ29udHJvbGxlci5tbQorKysgYi9Tb3VyY2UvV2ViS2l0TGVn
YWN5L21hYy9XZWJWaWV3L1dlYkZ1bGxTY3JlZW5Db250cm9sbGVyLm1tCkBAIC02Myw3ICs2Myw3
IEBAIHN0YXRpYyBXZWJDb3JlOjpJbnRSZWN0IHNjcmVlblJlY3RPZkNvbnRlbnRzKFdlYkNvcmU6
OkVsZW1lbnQqIGVsZW1lbnQpCiBAaW50ZXJmYWNlIFdlYkZ1bGxTY3JlZW5Db250cm9sbGVyKFBy
aXZhdGUpPE5TQW5pbWF0aW9uRGVsZWdhdGU+CiAtICh2b2lkKV91cGRhdGVNZW51QW5kRG9ja0Zv
ckZ1bGxTY3JlZW47CiAtICh2b2lkKV9zd2FwVmlldzooTlNWaWV3Kil2aWV3IHdpdGg6KE5TVmll
dyopb3RoZXJWaWV3OwotLSAoV2ViQ29yZTo6RG9jdW1lbnQqKV9kb2N1bWVudDsKKy0gKE5ha2Vk
UHRyPFdlYkNvcmU6OkRvY3VtZW50PilfZG9jdW1lbnQ7CiAtIChXZWJDb3JlOjpGdWxsc2NyZWVu
TWFuYWdlciopX21hbmFnZXI7CiAtICh2b2lkKV9zdGFydEVudGVyRnVsbFNjcmVlbkFuaW1hdGlv
bldpdGhEdXJhdGlvbjooTlNUaW1lSW50ZXJ2YWwpZHVyYXRpb247CiAtICh2b2lkKV9zdGFydEV4
aXRGdWxsU2NyZWVuQW5pbWF0aW9uV2l0aER1cmF0aW9uOihOU1RpbWVJbnRlcnZhbClkdXJhdGlv
bjsKQEAgLTQ1MCw3ICs0NTAsNyBAQCAtICh2b2lkKV91cGRhdGVNZW51QW5kRG9ja0ZvckZ1bGxT
Y3JlZW4KICNwcmFnbWEgbWFyayAtCiAjcHJhZ21hIG1hcmsgVXRpbGl0eSBGdW5jdGlvbnMKIAot
LSAoV2ViQ29yZTo6RG9jdW1lbnQqKV9kb2N1bWVudAorLSAoTmFrZWRQdHI8V2ViQ29yZTo6RG9j
dW1lbnQ+KV9kb2N1bWVudAogewogICAgIHJldHVybiAmX2VsZW1lbnQtPmRvY3VtZW50KCk7CiB9
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYkhUTUxWaWV3
Lm1tIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJIVE1MVmlldy5tbQppbmRl
eCAwZmY5ZTMxNWIwNjNjMWZmZjI3Mzk0NjAxOGI2MGY1YTAyYjcyODc1Li5iMmExZDA4NTkzOGVm
M2U3ZDIyNTlmZWYxNjZkZGJjZjUzODk3ZjhkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVn
YWN5L21hYy9XZWJWaWV3L1dlYkhUTUxWaWV3Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kv
bWFjL1dlYlZpZXcvV2ViSFRNTFZpZXcubW0KQEAgLTE0Myw2ICsxNDMsNyBAQAogI2ltcG9ydCA8
d3RmL0Jsb2NrT2JqQ0V4Y2VwdGlvbnMuaD4KICNpbXBvcnQgPHd0Zi9NYWluVGhyZWFkLmg+CiAj
aW1wb3J0IDx3dGYvTWF0aEV4dHJhcy5oPgorI2ltcG9ydCA8d3RmL05ha2VkUHRyLmg+CiAjaW1w
b3J0IDx3dGYvT2JqQ1J1bnRpbWVFeHRyYXMuaD4KICNpbXBvcnQgPHd0Zi9SdW5Mb29wLmg+CiAj
aW1wb3J0IDx3dGYvU3lzdGVtVHJhY2luZy5oPgpAQCAtMjM2LDExICsyMzcsMTEgQEAgdXNpbmcg
V2ViRXZlbnQgPSBOU0V2ZW50OwogY29uc3QgYXV0byBXZWJFdmVudE1vdXNlRG93biA9IE5TRXZl
bnRUeXBlTGVmdE1vdXNlRG93bjsKIAogQGludGVyZmFjZSBXZWJNZW51VGFyZ2V0IDogTlNPYmpl
Y3QgewotICAgIFdlYkNvcmU6OkNvbnRleHRNZW51Q29udHJvbGxlciogX21lbnVDb250cm9sbGVy
OworICAgIE5ha2VkUHRyPFdlYkNvcmU6OkNvbnRleHRNZW51Q29udHJvbGxlcj4gX21lbnVDb250
cm9sbGVyOwogfQogKyAoV2ViTWVudVRhcmdldCopc2hhcmVkTWVudVRhcmdldDsKLS0gKFdlYkNv
cmU6OkNvbnRleHRNZW51Q29udHJvbGxlciopbWVudUNvbnRyb2xsZXI7Ci0tICh2b2lkKXNldE1l
bnVDb250cm9sbGVyOihXZWJDb3JlOjpDb250ZXh0TWVudUNvbnRyb2xsZXIqKW1lbnVDb250cm9s
bGVyOworLSAoTmFrZWRQdHI8V2ViQ29yZTo6Q29udGV4dE1lbnVDb250cm9sbGVyPiltZW51Q29u
dHJvbGxlcjsKKy0gKHZvaWQpc2V0TWVudUNvbnRyb2xsZXI6KE5ha2VkUHRyPFdlYkNvcmU6OkNv
bnRleHRNZW51Q29udHJvbGxlcj4pbWVudUNvbnRyb2xsZXI7CiAtICh2b2lkKWZvcndhcmRDb250
ZXh0TWVudUFjdGlvbjooaWQpc2VuZGVyOwogQGVuZAogCkBAIC02MjIsMTIgKzYyMywxMiBAQCAr
IChXZWJNZW51VGFyZ2V0ICopc2hhcmVkTWVudVRhcmdldAogICAgIHJldHVybiB0YXJnZXQ7CiB9
CiAKLS0gKFdlYkNvcmU6OkNvbnRleHRNZW51Q29udHJvbGxlciopbWVudUNvbnRyb2xsZXIKKy0g
KE5ha2VkUHRyPFdlYkNvcmU6OkNvbnRleHRNZW51Q29udHJvbGxlcj4pbWVudUNvbnRyb2xsZXIK
IHsKICAgICByZXR1cm4gX21lbnVDb250cm9sbGVyOwogfQogCi0tICh2b2lkKXNldE1lbnVDb250
cm9sbGVyOihXZWJDb3JlOjpDb250ZXh0TWVudUNvbnRyb2xsZXIqKW1lbnVDb250cm9sbGVyCist
ICh2b2lkKXNldE1lbnVDb250cm9sbGVyOihOYWtlZFB0cjxXZWJDb3JlOjpDb250ZXh0TWVudUNv
bnRyb2xsZXI+KW1lbnVDb250cm9sbGVyCiB7CiAgICAgX21lbnVDb250cm9sbGVyID0gbWVudUNv
bnRyb2xsZXI7CiB9CkBAIC05ODcsNyArOTg4LDcgQEAgQHB1YmxpYwogICAgIFJldGFpblB0cjxX
ZWJEYXRhU291cmNlPiBkYXRhU291cmNlOwogCiAjaWYgUExBVEZPUk0oTUFDKQotICAgIFdlYkNv
cmU6OkNhY2hlZEltYWdlKiBwcm9taXNlZERyYWdUSUZGRGF0YVNvdXJjZTsKKyAgICBOYWtlZFB0
cjxXZWJDb3JlOjpDYWNoZWRJbWFnZT4gcHJvbWlzZWREcmFnVElGRkRhdGFTb3VyY2U7CiAjZW5k
aWYKIAogICAgIFNFTCBzZWxlY3RvckZvckRvQ29tbWFuZEJ5U2VsZWN0b3I7CkBAIC00MzU4LDcg
KzQzNTksNyBAQCBBTExPV19ERVBSRUNBVEVEX0lNUExFTUVOVEFUSU9OU19FTkQKICAgICBOU0Zp
bGVXcmFwcGVyICp3cmFwcGVyID0gbmlsOwogICAgIE5TVVJMICpkcmFnZ2luZ0VsZW1lbnRVUkwg
PSBuaWw7CiAgICAgCi0gICAgaWYgKGF1dG8qIHRpZmZSZXNvdXJjZSA9IF9wcml2YXRlLT5wcm9t
aXNlZERyYWdUSUZGRGF0YVNvdXJjZSkgeworICAgIGlmIChhdXRvIHRpZmZSZXNvdXJjZSA9IF9w
cml2YXRlLT5wcm9taXNlZERyYWdUSUZGRGF0YVNvdXJjZSkgewogICAgICAgICBpZiAoYXV0byog
YnVmZmVyID0gdGlmZlJlc291cmNlLT5yZXNvdXJjZUJ1ZmZlcigpKSB7CiAgICAgICAgICAgICBO
U1VSTFJlc3BvbnNlICpyZXNwb25zZSA9IHRpZmZSZXNvdXJjZS0+cmVzcG9uc2UoKS5uc1VSTFJl
c3BvbnNlKCk7CiAgICAgICAgICAgICBkcmFnZ2luZ0VsZW1lbnRVUkwgPSBbcmVzcG9uc2UgVVJM
XTsKQEAgLTU5ODMsNyArNTk4NCw3IEBAIC0gKHZvaWQpX2V4ZWN1dGVTYXZlZEtleXByZXNzQ29t
bWFuZHMKIAogI2lmIFBMQVRGT1JNKE1BQykKIAotLSAoQk9PTClfaW50ZXJwcmV0S2V5RXZlbnQ6
KFdlYkNvcmU6OktleWJvYXJkRXZlbnQqKWV2ZW50IHNhdmluZ0NvbW1hbmRzOihCT09MKXNhdmlu
Z0NvbW1hbmRzCistIChCT09MKV9pbnRlcnByZXRLZXlFdmVudDooTmFrZWRQdHI8V2ViQ29yZTo6
S2V5Ym9hcmRFdmVudD4pZXZlbnQgc2F2aW5nQ29tbWFuZHM6KEJPT0wpc2F2aW5nQ29tbWFuZHMK
IHsKICAgICBBU1NFUlQoY29yZShbc2VsZiBfZnJhbWVdKSA9PSBkb3duY2FzdDxXZWJDb3JlOjpO
b2RlPihldmVudC0+dGFyZ2V0KCkpLT5kb2N1bWVudCgpLmZyYW1lKCkpOwogICAgIEFTU0VSVCgh
c2F2aW5nQ29tbWFuZHMgfHwgZXZlbnQtPmtleXByZXNzQ29tbWFuZHMoKS5pc0VtcHR5KCkpOyAv
LyBTYXZlIGNvbW1hbmRzIG9uY2UgZm9yIGVhY2ggZXZlbnQuCkBAIC02MTEyLDcgKzYxMTMsNyBA
QCAtIChCT09MKV9oYW5kbGVFZGl0aW5nS2V5RXZlbnQ6KFdlYkNvcmU6OktleWJvYXJkRXZlbnQg
Kil3Y0V2ZW50CiAKICNpZiBQTEFURk9STShNQUMpCiAKLS0gKHZvaWQpc2V0UHJvbWlzZWREcmFn
VElGRkRhdGFTb3VyY2U6KFdlYkNvcmU6OkNhY2hlZEltYWdlKilzb3VyY2UKKy0gKHZvaWQpc2V0
UHJvbWlzZWREcmFnVElGRkRhdGFTb3VyY2U6KE5ha2VkUHRyPFdlYkNvcmU6OkNhY2hlZEltYWdl
Pilzb3VyY2UKIHsKICAgICBpZiAoc291cmNlKQogICAgICAgICBzb3VyY2UtPmFkZENsaWVudChw
cm9taXNlZERhdGFDbGllbnQoKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21h
Yy9XZWJWaWV3L1dlYkhUTUxWaWV3SW50ZXJuYWwuaCBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFj
L1dlYlZpZXcvV2ViSFRNTFZpZXdJbnRlcm5hbC5oCmluZGV4IDkxNmQzMzY5ZmJlYmZjZjhmZWU2
MDlmYWQ4YzJiNTFhMTA1YWJiZWEuLjZmNWU1N2QzZmNlNzM0YzU2ZjYyY2IzZTcyM2NmOTQ1ZTUx
M2JjMGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViSFRN
TFZpZXdJbnRlcm5hbC5oCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2Vi
SFRNTFZpZXdJbnRlcm5hbC5oCkBAIC02MSwxMyArNjEsMTMgQEAgbmFtZXNwYWNlIFdlYkNvcmUg
ewogCiAjaWYgUExBVEZPUk0oTUFDKQogLSAodm9pZClfbG9va1VwSW5EaWN0aW9uYXJ5RnJvbU1l
bnU6KGlkKXNlbmRlcjsKLS0gKEJPT0wpX2ludGVycHJldEtleUV2ZW50OihXZWJDb3JlOjpLZXli
b2FyZEV2ZW50ICopZXZlbnQgc2F2aW5nQ29tbWFuZHM6KEJPT0wpc2F2aW5nQ29tbWFuZHM7Cist
IChCT09MKV9pbnRlcnByZXRLZXlFdmVudDooTmFrZWRQdHI8V2ViQ29yZTo6S2V5Ym9hcmRFdmVu
dD4pZXZlbnQgc2F2aW5nQ29tbWFuZHM6KEJPT0wpc2F2aW5nQ29tbWFuZHM7CiAtIChET01Eb2N1
bWVudEZyYWdtZW50ICopX2RvY3VtZW50RnJhZ21lbnRGcm9tUGFzdGVib2FyZDooTlNQYXN0ZWJv
YXJkICopcGFzdGVib2FyZDsKIC0gKE5TRXZlbnQgKilfbW91c2VEb3duRXZlbnQ7CiAtIChCT09M
KWlzR3JhbW1hckNoZWNraW5nRW5hYmxlZDsKIC0gKHZvaWQpc2V0R3JhbW1hckNoZWNraW5nRW5h
YmxlZDooQk9PTClmbGFnOwogLSAodm9pZCl0b2dnbGVHcmFtbWFyQ2hlY2tpbmc6KGlkKXNlbmRl
cjsKLS0gKHZvaWQpc2V0UHJvbWlzZWREcmFnVElGRkRhdGFTb3VyY2U6KFdlYkNvcmU6OkNhY2hl
ZEltYWdlKilzb3VyY2U7CistICh2b2lkKXNldFByb21pc2VkRHJhZ1RJRkZEYXRhU291cmNlOihO
YWtlZFB0cjxXZWJDb3JlOjpDYWNoZWRJbWFnZT4pc291cmNlOwogI2VuZGlmCiAKICNpZiBQTEFU
Rk9STShJT1NfRkFNSUxZKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2Vi
Vmlldy9XZWJOb3RpZmljYXRpb24ubW0gYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3
L1dlYk5vdGlmaWNhdGlvbi5tbQppbmRleCAxMTU3NTYwM2NlNzlhNWU4YTg0YjYzYTQ4ZDI4YmQ1
YWE3Mjk0NzNjLi4xNmU4OWM0YmMzYTc3YjU2ODYwNjk3NGNhNDA2OTZkYzJjYjQ3ZjBjIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYk5vdGlmaWNhdGlvbi5t
bQorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYk5vdGlmaWNhdGlvbi5t
bQpAQCAtNjIsNyArNjIsNyBAQCBOb3RpZmljYXRpb24qIGNvcmUoV2ViTm90aWZpY2F0aW9uICpu
b3RpZmljYXRpb24pCiAgICAgcmV0dXJuIG5vdGlmaWNhdGlvbi0+X3ByaXZhdGUtPl9pbnRlcm5h
bC5nZXQoKTsKIH0KIAotLSAoaWQpaW5pdFdpdGhDb3JlTm90aWZpY2F0aW9uOihOb3RpZmljYXRp
b24qKWNvcmVOb3RpZmljYXRpb24gbm90aWZpY2F0aW9uSUQ6KHVpbnQ2NF90KW5vdGlmaWNhdGlv
bklECistIChpZClpbml0V2l0aENvcmVOb3RpZmljYXRpb246KE5ha2VkUHRyPE5vdGlmaWNhdGlv
bj4pY29yZU5vdGlmaWNhdGlvbiBub3RpZmljYXRpb25JRDoodWludDY0X3Qpbm90aWZpY2F0aW9u
SUQKIHsKICAgICBpZiAoIShzZWxmID0gW3N1cGVyIGluaXRdKSkKICAgICAgICAgcmV0dXJuIG5p
bDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViTm90aWZp
Y2F0aW9uSW50ZXJuYWwuaCBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViTm90
aWZpY2F0aW9uSW50ZXJuYWwuaAppbmRleCBhNzc5YzA3NTM1YmI0YzU5MWRmNzE5ODE0ODI2YzZi
NzhkMjg4MjQ1Li40YTE3YzdkYTBmN2Q3YjQ3NmNlMGIyYzM1ZDE3ZWQ1NDdkMWFlMzE4IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYk5vdGlmaWNhdGlvbklu
dGVybmFsLmgKKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJOb3RpZmlj
YXRpb25JbnRlcm5hbC5oCkBAIC0yNyw2ICsyNyw3IEBACiAgKi8KIAogI2ltcG9ydCAiV2ViTm90
aWZpY2F0aW9uLmgiCisjaW1wb3J0IDx3dGYvTmFrZWRQdHIuaD4KIAogI2lmIEVOQUJMRShOT1RJ
RklDQVRJT05TKQogCkBAIC0zNyw3ICszOCw3IEBAIGNsYXNzIE5vdGlmaWNhdGlvbjsKIFdlYkNv
cmU6Ok5vdGlmaWNhdGlvbiogY29yZShXZWJOb3RpZmljYXRpb24gKik7CiAKIEBpbnRlcmZhY2Ug
V2ViTm90aWZpY2F0aW9uIChXZWJOb3RpZmljYXRpb25JbnRlcm5hbCkKLS0gKGlkKWluaXRXaXRo
Q29yZU5vdGlmaWNhdGlvbjooV2ViQ29yZTo6Tm90aWZpY2F0aW9uKiljb3JlTm90aWZpY2F0aW9u
IG5vdGlmaWNhdGlvbklEOih1aW50NjRfdClub3RpZmljYXRpb25JRDsKKy0gKGlkKWluaXRXaXRo
Q29yZU5vdGlmaWNhdGlvbjooTmFrZWRQdHI8V2ViQ29yZTo6Tm90aWZpY2F0aW9uPiljb3JlTm90
aWZpY2F0aW9uIG5vdGlmaWNhdGlvbklEOih1aW50NjRfdClub3RpZmljYXRpb25JRDsKIEBlbmQK
IAogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dl
YlJlc291cmNlLm1tIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJSZXNvdXJj
ZS5tbQppbmRleCA4MjZhNDM4NjY0ODc3NmFiYmYzYmRhODBhYTkxNDIxYmU4NDlkYmVhLi43Nzdj
YTBlNzFhZjYxZGVjODMwYTViMjYxOTdlOGVmNjdkN2Q5ZWYzIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYlJlc291cmNlLm1tCisrKyBiL1NvdXJjZS9XZWJL
aXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViUmVzb3VyY2UubW0KQEAgLTI2MSw3ICsyNjEsNyBAQCAt
IChpZClfaW5pdFdpdGhDb3JlUmVzb3VyY2U6KFJlZjxBcmNoaXZlUmVzb3VyY2U+JiYpY29yZVJl
c291cmNlCiAgICAgcmV0dXJuIHNlbGY7CiB9CiAKLS0gKFdlYkNvcmU6OkFyY2hpdmVSZXNvdXJj
ZSYpX2NvcmVSZXNvdXJjZQorLSAoTmFrZWRSZWY8V2ViQ29yZTo6QXJjaGl2ZVJlc291cmNlPilf
Y29yZVJlc291cmNlCiB7CiAgICAgcmV0dXJuICpfcHJpdmF0ZS0+Y29yZVJlc291cmNlOwogfQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJSZXNvdXJjZUlu
dGVybmFsLmggYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYlJlc291cmNlSW50
ZXJuYWwuaAppbmRleCA4MGM5NzZlYjZiMzY1NGZjMWM2ODhjMmE5NmI4M2JkYjdhZjc3MjUxLi5l
YWNiMWE1MjllNTBiMjdjN2VmZDE3NDQxYmMwNjkxNTZmOWI1ZDVjIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYlJlc291cmNlSW50ZXJuYWwuaAorKysgYi9T
b3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYlJlc291cmNlSW50ZXJuYWwuaApAQCAt
MjcsNiArMjcsNyBAQAogICovCiAKICNpbXBvcnQgIldlYlJlc291cmNlUHJpdmF0ZS5oIgorI2lt
cG9ydCA8d3RmL05ha2VkUmVmLmg+CiAjaW1wb3J0IDx3dGYvUmVmLmg+CiAKIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKQEAgLTM1LDUgKzM2LDUgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiBAaW50ZXJm
YWNlIFdlYlJlc291cmNlIChXZWJSZXNvdXJjZUludGVybmFsKQogLSAoaWQpX2luaXRXaXRoQ29y
ZVJlc291cmNlOihSZWY8V2ViQ29yZTo6QXJjaGl2ZVJlc291cmNlPiYmKWNvcmVSZXNvdXJjZTsK
LS0gKFdlYkNvcmU6OkFyY2hpdmVSZXNvdXJjZSYpX2NvcmVSZXNvdXJjZTsKKy0gKE5ha2VkUmVm
PFdlYkNvcmU6OkFyY2hpdmVSZXNvdXJjZT4pX2NvcmVSZXNvdXJjZTsKIEBlbmQKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViVmlkZW9GdWxsc2NyZWVuQ29u
dHJvbGxlci5oIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJWaWRlb0Z1bGxz
Y3JlZW5Db250cm9sbGVyLmgKaW5kZXggZjU3NTc4YmZjMDAyNjRlNGY0MWI1ZWU5ZjY4OGEyNmMy
OGFkNDRhMi4uZThmYjU2Mjk1MDk1YmYzN2E0ZDI4ODA3NTA0NmYzNWJkZDJlMDg1YSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJWaWRlb0Z1bGxzY3JlZW5D
b250cm9sbGVyLmgKKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJWaWRl
b0Z1bGxzY3JlZW5Db250cm9sbGVyLmgKQEAgLTI2LDYgKzI2LDcgQEAKICNpZiBQTEFURk9STShN
QUMpICYmIEVOQUJMRShWSURFTykKIAogI2ltcG9ydCA8QXBwS2l0L05TV2luZG93Q29udHJvbGxl
ci5oPgorI2ltcG9ydCA8d3RmL05ha2VkUHRyLmg+CiAjaW1wb3J0IDx3dGYvUmVmUHRyLmg+CiAK
IG5hbWVzcGFjZSBXZWJDb3JlIHsKQEAgLTQ3LDggKzQ4LDggQEAgY2xhc3MgSFRNTFZpZGVvRWxl
bWVudDsKICAgICBCT09MIF9mb3JjZURpc2FibGVBbmltYXRpb247CiB9CiAKLS0gKHZvaWQpc2V0
VmlkZW9FbGVtZW50OihXZWJDb3JlOjpIVE1MVmlkZW9FbGVtZW50ICopdmlkZW9FbGVtZW50Owot
LSAoV2ViQ29yZTo6SFRNTFZpZGVvRWxlbWVudCAqKXZpZGVvRWxlbWVudDsKKy0gKHZvaWQpc2V0
VmlkZW9FbGVtZW50OihOYWtlZFB0cjxXZWJDb3JlOjpIVE1MVmlkZW9FbGVtZW50Pil2aWRlb0Vs
ZW1lbnQ7CistIChOYWtlZFB0cjxXZWJDb3JlOjpIVE1MVmlkZW9FbGVtZW50Pil2aWRlb0VsZW1l
bnQ7CiAKIC0gKHZvaWQpZW50ZXJGdWxsc2NyZWVuOihOU1NjcmVlbiAqKXNjcmVlbjsKIC0gKHZv
aWQpZXhpdEZ1bGxzY3JlZW47CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9X
ZWJWaWV3L1dlYlZpZGVvRnVsbHNjcmVlbkNvbnRyb2xsZXIubW0gYi9Tb3VyY2UvV2ViS2l0TGVn
YWN5L21hYy9XZWJWaWV3L1dlYlZpZGVvRnVsbHNjcmVlbkNvbnRyb2xsZXIubW0KaW5kZXggMjNh
YWMzNDQyNmJhMDNhYjkzYjRlOTYzZjFlODJmODUxNDA0YTFjYi4uNzZiYjQ3NmFiMDQ0MDFkODM4
NGUwYTdjN2YyYzEwZTZmMGNkYjZmYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9t
YWMvV2ViVmlldy9XZWJWaWRlb0Z1bGxzY3JlZW5Db250cm9sbGVyLm1tCisrKyBiL1NvdXJjZS9X
ZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViVmlkZW9GdWxsc2NyZWVuQ29udHJvbGxlci5tbQpA
QCAtOTMsMTQgKzkzLDE0IEBAIC0gKHZvaWQpd2luZG93RGlkTG9hZAogICAgIFtbTlNOb3RpZmlj
YXRpb25DZW50ZXIgZGVmYXVsdENlbnRlcl0gYWRkT2JzZXJ2ZXI6c2VsZiBzZWxlY3RvcjpAc2Vs
ZWN0b3IoYXBwbGljYXRpb25EaWRDaGFuZ2VTY3JlZW5QYXJhbWV0ZXJzOikgbmFtZTpOU0FwcGxp
Y2F0aW9uRGlkQ2hhbmdlU2NyZWVuUGFyYW1ldGVyc05vdGlmaWNhdGlvbiBvYmplY3Q6TlNBcHBd
OwogfQogCi0tIChXZWJDb3JlOjpIVE1MVmlkZW9FbGVtZW50ICopdmlkZW9FbGVtZW50CistIChO
YWtlZFB0cjxXZWJDb3JlOjpIVE1MVmlkZW9FbGVtZW50Pil2aWRlb0VsZW1lbnQKIHsKICAgICBy
ZXR1cm4gX3ZpZGVvRWxlbWVudC5nZXQoKTsKIH0KIAogLy8gRklYTUU6IFRoaXMgbWV0aG9kIGlz
IG5vdCByZWFsbHkgYSBzZXR0ZXIuIFRoZSBjYWxsZXIgcmVsaWVzIG9uIGl0cyBzaWRlIGVmZmVj
dHMsIGFuZCBpdCdzCiAvLyBjYWxsZWQgb25jZSBlYWNoIHRpbWUgd2UgZW50ZXIgZnVsbCBzY3Jl
ZW4uIFNvIGl0IHNob3VsZCBoYXZlIGEgZGlmZmVyZW50IG5hbWUuCi0tICh2b2lkKXNldFZpZGVv
RWxlbWVudDooV2ViQ29yZTo6SFRNTFZpZGVvRWxlbWVudCAqKXZpZGVvRWxlbWVudAorLSAodm9p
ZClzZXRWaWRlb0VsZW1lbnQ6KE5ha2VkUHRyPFdlYkNvcmU6OkhUTUxWaWRlb0VsZW1lbnQ+KXZp
ZGVvRWxlbWVudAogewogICAgIEFTU0VSVCh2aWRlb0VsZW1lbnQpOwogICAgIF92aWRlb0VsZW1l
bnQgPSB2aWRlb0VsZW1lbnQ7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9X
ZWJWaWV3L1dlYlZpZGVvRnVsbHNjcmVlbkhVRFdpbmRvd0NvbnRyb2xsZXIuaCBiL1NvdXJjZS9X
ZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViVmlkZW9GdWxsc2NyZWVuSFVEV2luZG93Q29udHJv
bGxlci5oCmluZGV4IGY2N2ZlYWUxMzQyZTZhOTc3YzU2ZmIxZjVjNTA0NDIxMjAwZGQyMTkuLmZm
MTg0YWQ0MTA2ZmMxNzhiNjcyNjY1OTI1ZmI3YmRmZWFiYzUyZDUgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViVmlkZW9GdWxsc2NyZWVuSFVEV2luZG93Q29u
dHJvbGxlci5oCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViVmlkZW9G
dWxsc2NyZWVuSFVEV2luZG93Q29udHJvbGxlci5oCkBAIC0zMSw2ICszMSw3IEBACiAjaW1wb3J0
IDxBcHBLaXQvTlNUcmFja2luZ0FyZWEuaD4KICNpbXBvcnQgPEFwcEtpdC9OU1dpbmRvdy5oPgog
I2ltcG9ydCA8QXBwS2l0L05TV2luZG93Q29udHJvbGxlci5oPgorI2ltcG9ydCA8d3RmL05ha2Vk
UHRyLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIGNsYXNzIEhUTUxWaWRlb0VsZW1lbnQ7CkBA
IC02NCw3ICs2NSw3IEBAIGNsYXNzIEhUTUxWaWRlb0VsZW1lbnQ7CiAKIEBwcm90b2NvbCBXZWJW
aWRlb0Z1bGxzY3JlZW5IVURXaW5kb3dDb250cm9sbGVyRGVsZWdhdGUgPE5TT2JqZWN0PgogLSAo
dm9pZClyZXF1ZXN0RXhpdEZ1bGxzY3JlZW47Ci0tIChXZWJDb3JlOjpIVE1MVmlkZW9FbGVtZW50
Kil2aWRlb0VsZW1lbnQ7CistIChOYWtlZFB0cjxXZWJDb3JlOjpIVE1MVmlkZW9FbGVtZW50Pil2
aWRlb0VsZW1lbnQ7CiBAZW5kCiAKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExl
Z2FjeS9tYWMvV2ViVmlldy9XZWJWaWV3Lm1tIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2Vi
Vmlldy9XZWJWaWV3Lm1tCmluZGV4IDE5YjIyMWNiMjI3ODNjNWI2NGMzNTNkMDI4NWE0NDhmNDUz
ZDBiNjcuLjg1NDc0YThjNjliNmMyMDI3YzA2M2VhMTM3MWQ2MTZmYTk1ODFhZGIgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViVmlldy5tbQorKysgYi9Tb3Vy
Y2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYlZpZXcubW0KQEAgLTI2MjQsNyArMjYyNCw3
IEBAIC0gKHZvaWQpX3NldEhvc3RBcHBsaWNhdGlvblByb2Nlc3NJZGVudGlmaWVyOihwaWRfdClw
aWQgYXVkaXRUb2tlbjooYXVkaXRfdG9rZW5fCiAjZW5kaWYgLy8gUExBVEZPUk0oSU9TX0ZBTUlM
WSkKICNlbmRpZiAvLyBFTkFCTEUoUkVNT1RFX0lOU1BFQ1RPUikKIAotLSAoV2ViQ29yZTo6UGFn
ZSopcGFnZQorLSAoTmFrZWRQdHI8V2ViQ29yZTo6UGFnZT4pcGFnZQogewogICAgIHJldHVybiBf
cHJpdmF0ZS0+cGFnZTsKIH0KQEAgLTkzMTUsNyArOTMxNSw3IEBAIC0gKHZvaWQpX3NjaGVkdWxl
TGF5ZXJGbHVzaEZvclBlbmRpbmdUaWxlQ2FjaGVSZXBhaW50CiAjZW5kaWYKIAogI2lmIEVOQUJM
RShWSURFTykKLS0gKHZvaWQpX2VudGVyVmlkZW9GdWxsc2NyZWVuRm9yVmlkZW9FbGVtZW50OihX
ZWJDb3JlOjpIVE1MVmlkZW9FbGVtZW50Kil2aWRlb0VsZW1lbnQgbW9kZTooV2ViQ29yZTo6SFRN
TE1lZGlhRWxlbWVudEVudW1zOjpWaWRlb0Z1bGxzY3JlZW5Nb2RlKW1vZGUKKy0gKHZvaWQpX2Vu
dGVyVmlkZW9GdWxsc2NyZWVuRm9yVmlkZW9FbGVtZW50OihOYWtlZFB0cjxXZWJDb3JlOjpIVE1M
VmlkZW9FbGVtZW50Pil2aWRlb0VsZW1lbnQgbW9kZTooV2ViQ29yZTo6SFRNTE1lZGlhRWxlbWVu
dEVudW1zOjpWaWRlb0Z1bGxzY3JlZW5Nb2RlKW1vZGUKIHsKICAgICBpZiAoX3ByaXZhdGUtPmZ1
bGxzY3JlZW5Db250cm9sbGVyKSB7CiAgICAgICAgIGlmIChbX3ByaXZhdGUtPmZ1bGxzY3JlZW5D
b250cm9sbGVyIHZpZGVvRWxlbWVudF0gPT0gdmlkZW9FbGVtZW50KSB7CkBAIC05MzY2LDE0ICs5
MzY2LDE0IEBAIC0gKEJPT0wpX2hhc0FjdGl2ZVZpZGVvRm9yQ29udHJvbHNJbnRlcmZhY2UKICAg
ICByZXR1cm4gbWVkaWFFbGVtZW50LT5oYXNBdWRpbygpIHx8IG1lZGlhRWxlbWVudC0+aGFzVmlk
ZW8oKTsKIH0KIAotLSAodm9pZClfc2V0VXBQbGF5YmFja0NvbnRyb2xzTWFuYWdlckZvck1lZGlh
RWxlbWVudDooV2ViQ29yZTo6SFRNTE1lZGlhRWxlbWVudCYpbWVkaWFFbGVtZW50CistICh2b2lk
KV9zZXRVcFBsYXliYWNrQ29udHJvbHNNYW5hZ2VyRm9yTWVkaWFFbGVtZW50OihOYWtlZFJlZjxX
ZWJDb3JlOjpIVE1MTWVkaWFFbGVtZW50PiltZWRpYUVsZW1lbnQKIHsKLSAgICBpZiAoX3ByaXZh
dGUtPnBsYXliYWNrU2Vzc2lvbk1vZGVsICYmIF9wcml2YXRlLT5wbGF5YmFja1Nlc3Npb25Nb2Rl
bC0+bWVkaWFFbGVtZW50KCkgPT0gJm1lZGlhRWxlbWVudCkKKyAgICBpZiAoX3ByaXZhdGUtPnBs
YXliYWNrU2Vzc2lvbk1vZGVsICYmIF9wcml2YXRlLT5wbGF5YmFja1Nlc3Npb25Nb2RlbC0+bWVk
aWFFbGVtZW50KCkgPT0gbWVkaWFFbGVtZW50LnB0cigpKQogICAgICAgICByZXR1cm47CiAKICAg
ICBpZiAoIV9wcml2YXRlLT5wbGF5YmFja1Nlc3Npb25Nb2RlbCkKICAgICAgICAgX3ByaXZhdGUt
PnBsYXliYWNrU2Vzc2lvbk1vZGVsID0gV2ViQ29yZTo6UGxheWJhY2tTZXNzaW9uTW9kZWxNZWRp
YUVsZW1lbnQ6OmNyZWF0ZSgpOwotICAgIF9wcml2YXRlLT5wbGF5YmFja1Nlc3Npb25Nb2RlbC0+
c2V0TWVkaWFFbGVtZW50KCZtZWRpYUVsZW1lbnQpOworICAgIF9wcml2YXRlLT5wbGF5YmFja1Nl
c3Npb25Nb2RlbC0+c2V0TWVkaWFFbGVtZW50KG1lZGlhRWxlbWVudC5wdHIoKSk7CiAKICAgICBp
ZiAoIV9wcml2YXRlLT5wbGF5YmFja1Nlc3Npb25JbnRlcmZhY2UpCiAgICAgICAgIF9wcml2YXRl
LT5wbGF5YmFja1Nlc3Npb25JbnRlcmZhY2UgPSBXZWJDb3JlOjpQbGF5YmFja1Nlc3Npb25JbnRl
cmZhY2VNYWM6OmNyZWF0ZSgqX3ByaXZhdGUtPnBsYXliYWNrU2Vzc2lvbk1vZGVsKTsKQEAgLTkz
OTcsNyArOTM5Nyw3IEBAIC0gKHZvaWQpX2NsZWFyUGxheWJhY2tDb250cm9sc01hbmFnZXIKICNl
bmRpZiAvLyBFTkFCTEUoVklERU8pCiAKICNpZiBFTkFCTEUoRlVMTFNDUkVFTl9BUEkpICYmICFQ
TEFURk9STShJT1NfRkFNSUxZKQotLSAoQk9PTClfc3VwcG9ydHNGdWxsU2NyZWVuRm9yRWxlbWVu
dDooY29uc3QgV2ViQ29yZTo6RWxlbWVudCopZWxlbWVudCB3aXRoS2V5Ym9hcmQ6KEJPT0wpd2l0
aEtleWJvYXJkCistIChCT09MKV9zdXBwb3J0c0Z1bGxTY3JlZW5Gb3JFbGVtZW50OihOYWtlZFB0
cjxjb25zdCBXZWJDb3JlOjpFbGVtZW50PillbGVtZW50IHdpdGhLZXlib2FyZDooQk9PTCl3aXRo
S2V5Ym9hcmQKIHsKICAgICBpZiAoIVtbc2VsZiBwcmVmZXJlbmNlc10gZnVsbFNjcmVlbkVuYWJs
ZWRdKQogICAgICAgICByZXR1cm4gTk87CkBAIC05NDA1LDE3ICs5NDA1LDE3IEBAIC0gKEJPT0wp
X3N1cHBvcnRzRnVsbFNjcmVlbkZvckVsZW1lbnQ6KGNvbnN0IFdlYkNvcmU6OkVsZW1lbnQqKWVs
ZW1lbnQgd2l0aEtleWJvCiAgICAgcmV0dXJuIHRydWU7CiB9CiAKLS0gKHZvaWQpX2VudGVyRnVs
bFNjcmVlbkZvckVsZW1lbnQ6KFdlYkNvcmU6OkVsZW1lbnQqKWVsZW1lbnQKKy0gKHZvaWQpX2Vu
dGVyRnVsbFNjcmVlbkZvckVsZW1lbnQ6KE5ha2VkUHRyPFdlYkNvcmU6OkVsZW1lbnQ+KWVsZW1l
bnQKIHsKICAgICBpZiAoIV9wcml2YXRlLT5uZXdGdWxsc2NyZWVuQ29udHJvbGxlcikKICAgICAg
ICAgX3ByaXZhdGUtPm5ld0Z1bGxzY3JlZW5Db250cm9sbGVyID0gW1tXZWJGdWxsU2NyZWVuQ29u
dHJvbGxlciBhbGxvY10gaW5pdF07CiAKLSAgICBbX3ByaXZhdGUtPm5ld0Z1bGxzY3JlZW5Db250
cm9sbGVyIHNldEVsZW1lbnQ6ZWxlbWVudF07CisgICAgW19wcml2YXRlLT5uZXdGdWxsc2NyZWVu
Q29udHJvbGxlciBzZXRFbGVtZW50OmVsZW1lbnQuZ2V0KCldOwogICAgIFtfcHJpdmF0ZS0+bmV3
RnVsbHNjcmVlbkNvbnRyb2xsZXIgc2V0V2ViVmlldzpzZWxmXTsKICAgICBbX3ByaXZhdGUtPm5l
d0Z1bGxzY3JlZW5Db250cm9sbGVyIGVudGVyRnVsbFNjcmVlbjpbW3NlbGYgd2luZG93XSBzY3Jl
ZW5dXTsgICAgICAgIAogfQogCi0tICh2b2lkKV9leGl0RnVsbFNjcmVlbkZvckVsZW1lbnQ6KFdl
YkNvcmU6OkVsZW1lbnQqKWVsZW1lbnQKKy0gKHZvaWQpX2V4aXRGdWxsU2NyZWVuRm9yRWxlbWVu
dDooTmFrZWRQdHI8V2ViQ29yZTo6RWxlbWVudD4pZWxlbWVudAogewogICAgIGlmICghX3ByaXZh
dGUtPm5ld0Z1bGxzY3JlZW5Db250cm9sbGVyKQogICAgICAgICByZXR1cm47CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYlZpZXdJbnRlcm5hbC5oIGIvU291
cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJWaWV3SW50ZXJuYWwuaAppbmRleCA4NWUy
M2Y4NTc3YWY0YjZkYzI2YjBkMWJkNDc3ZWFjMmJiMWU4MDAxLi44ZWM3OTk5OWUzOWFiZTdmODFi
ZjM1NGZmMTkzNzgxYjY5MmU5ZTg2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21h
Yy9XZWJWaWV3L1dlYlZpZXdJbnRlcm5hbC5oCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFj
L1dlYlZpZXcvV2ViVmlld0ludGVybmFsLmgKQEAgLTQ1LDYgKzQ1LDggQEAKICNpbXBvcnQgPFdl
YkNvcmUvV2ViQ29yZUtleWJvYXJkVUlNb2RlLmg+CiAjaW1wb3J0IDxmdW5jdGlvbmFsPgogI2lt
cG9ydCA8d3RmL0ZvcndhcmQuaD4KKyNpbXBvcnQgPHd0Zi9OYWtlZFB0ci5oPgorI2ltcG9ydCA8
d3RmL05ha2VkUmVmLmg+CiAjaW1wb3J0IDx3dGYvUmV0YWluUHRyLmg+CiAKIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKQEAgLTE2NSw3ICsxNjcsNyBAQCBPQkpDX0NMQVNTIE5TVGV4dEFsdGVybmF0aXZl
czsKICsgKFdlYkNhY2hlTW9kZWwpX2NhY2hlTW9kZWw7CiAKICNpZmRlZiBfX2NwbHVzcGx1cwot
LSAoV2ViQ29yZTo6UGFnZSopcGFnZTsKKy0gKE5ha2VkUHRyPFdlYkNvcmU6OlBhZ2U+KXBhZ2U7
CiAtIChXVEY6OlN0cmluZylfdXNlckFnZW50U3RyaW5nOwogI2VuZGlmCiAKQEAgLTI3MSwxOSAr
MjczLDE5IEBAIE9CSkNfQ0xBU1MgTlNUZXh0QWx0ZXJuYXRpdmVzOwogLSAodm9pZClfaW52YWxp
ZGF0ZVVzZXJBZ2VudENhY2hlOwogCiAjaWYgRU5BQkxFKFZJREVPKSAmJiBkZWZpbmVkKF9fY3Bs
dXNwbHVzKQotLSAodm9pZClfZW50ZXJWaWRlb0Z1bGxzY3JlZW5Gb3JWaWRlb0VsZW1lbnQ6KFdl
YkNvcmU6OkhUTUxWaWRlb0VsZW1lbnQqKXZpZGVvRWxlbWVudCBtb2RlOihXZWJDb3JlOjpIVE1M
TWVkaWFFbGVtZW50RW51bXM6OlZpZGVvRnVsbHNjcmVlbk1vZGUpbW9kZTsKKy0gKHZvaWQpX2Vu
dGVyVmlkZW9GdWxsc2NyZWVuRm9yVmlkZW9FbGVtZW50OihOYWtlZFB0cjxXZWJDb3JlOjpIVE1M
VmlkZW9FbGVtZW50Pil2aWRlb0VsZW1lbnQgbW9kZTooV2ViQ29yZTo6SFRNTE1lZGlhRWxlbWVu
dEVudW1zOjpWaWRlb0Z1bGxzY3JlZW5Nb2RlKW1vZGU7CiAtICh2b2lkKV9leGl0VmlkZW9GdWxs
c2NyZWVuOwogI2lmIFBMQVRGT1JNKE1BQykgJiYgRU5BQkxFKFZJREVPX1BSRVNFTlRBVElPTl9N
T0RFKQogLSAoQk9PTClfaGFzQWN0aXZlVmlkZW9Gb3JDb250cm9sc0ludGVyZmFjZTsKLS0gKHZv
aWQpX3NldFVwUGxheWJhY2tDb250cm9sc01hbmFnZXJGb3JNZWRpYUVsZW1lbnQ6KFdlYkNvcmU6
OkhUTUxNZWRpYUVsZW1lbnQmKW1lZGlhRWxlbWVudDsKKy0gKHZvaWQpX3NldFVwUGxheWJhY2tD
b250cm9sc01hbmFnZXJGb3JNZWRpYUVsZW1lbnQ6KE5ha2VkUmVmPFdlYkNvcmU6OkhUTUxNZWRp
YUVsZW1lbnQ+KW1lZGlhRWxlbWVudDsKIC0gKHZvaWQpX2NsZWFyUGxheWJhY2tDb250cm9sc01h
bmFnZXI7CiAjZW5kaWYKICNlbmRpZgogCiAjaWYgRU5BQkxFKEZVTExTQ1JFRU5fQVBJKSAmJiAh
UExBVEZPUk0oSU9TX0ZBTUlMWSkgJiYgZGVmaW5lZChfX2NwbHVzcGx1cykKLS0gKEJPT0wpX3N1
cHBvcnRzRnVsbFNjcmVlbkZvckVsZW1lbnQ6KFdlYkNvcmU6OkVsZW1lbnQqKWVsZW1lbnQgd2l0
aEtleWJvYXJkOihCT09MKXdpdGhLZXlib2FyZDsKLS0gKHZvaWQpX2VudGVyRnVsbFNjcmVlbkZv
ckVsZW1lbnQ6KFdlYkNvcmU6OkVsZW1lbnQqKWVsZW1lbnQ7Ci0tICh2b2lkKV9leGl0RnVsbFNj
cmVlbkZvckVsZW1lbnQ6KFdlYkNvcmU6OkVsZW1lbnQqKWVsZW1lbnQ7CistIChCT09MKV9zdXBw
b3J0c0Z1bGxTY3JlZW5Gb3JFbGVtZW50OihOYWtlZFB0cjxXZWJDb3JlOjpFbGVtZW50PillbGVt
ZW50IHdpdGhLZXlib2FyZDooQk9PTCl3aXRoS2V5Ym9hcmQ7CistICh2b2lkKV9lbnRlckZ1bGxT
Y3JlZW5Gb3JFbGVtZW50OihOYWtlZFB0cjxXZWJDb3JlOjpFbGVtZW50PillbGVtZW50OworLSAo
dm9pZClfZXhpdEZ1bGxTY3JlZW5Gb3JFbGVtZW50OihOYWtlZFB0cjxXZWJDb3JlOjpFbGVtZW50
PillbGVtZW50OwogI2VuZGlmCiAKIC8vIENvbnZlcnNpb24gZnVuY3Rpb25zIGJldHdlZW4gV2Vi
Q29yZSByb290IHZpZXcgY29vcmRpbmF0ZXMgYW5kIHdlYiB2aWV3IGNvb3JkaW5hdGVzLgo=
</data>

          </attachment>
      

    </bug>

</bugzilla>