<?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>151386</bug_id>
          
          <creation_ts>2015-11-18 05:23:07 -0800</creation_ts>
          <short_desc>WKWebView does not render PDF pages in AirPrint</short_desc>
          <delta_ts>2016-06-09 15:03:39 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebKit2</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>iPhone / iPad</rep_platform>
          <op_sys>iOS 9.0</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <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>stkhapugin</reporter>
          <assigned_to name="Andy Estes">aestes</assigned_to>
          <cc>aestes</cc>
    
    <cc>ap</cc>
    
    <cc>bburg</cc>
    
    <cc>cdumez</cc>
    
    <cc>commit-queue</cc>
    
    <cc>darin</cc>
    
    <cc>eugenebut</cc>
    
    <cc>rniwa</cc>
    
    <cc>thorton</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1142818</commentid>
    <comment_count>0</comment_count>
      <attachid>265744</attachid>
    <who name="">stkhapugin</who>
    <bug_when>2015-11-18 05:23:07 -0800</bug_when>
    <thetext>Created attachment 265744
Reproduction case.

Summary:
When one attempts to AirPrint a PDF open in WKWebView using [WKWebView viewPrintFormatter], the previews and the printed output are blank. 
Note that Safari on iOS prints normally. This is reproducible both with iOS 9.1 SDK&apos;s WebKit and a nightly checkout. 

Is there a workaround Safari uses?

Steps to Reproduce:
Unzip attached project, build &amp; run. A pdf document will be loaded, and once it&apos;s loaded, the print dialog will open.
Note that the repro is linked with iOS SDK&apos;s WebKit. You may want to relink it to your own WebKit.framework.

Expected Results:
Preview in print dialog shows a small PDF preview. PDF prints normally.

Actual Results:
Previews in print dialog shows a blank page. Printed page is blank.

Version:
iOS 9.1; tot.

Notes:
You can debug printing by downloading Hardware IO Tools for Xcode 7 on Apple Developer Portal and running an AirPrint simulator.
Also filed rdar://23556241.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1143158</commentid>
    <comment_count>1</comment_count>
    <who name="Andy Estes">aestes</who>
    <bug_when>2015-11-18 19:55:16 -0800</bug_when>
    <thetext>One workaround is to set UIPrintInteractionController&apos;s printingItem to an NSData containing the PDF. Unfortunately this probably requires you to load the PDF a second time.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1143164</commentid>
    <comment_count>2</comment_count>
    <who name="Eugene But">eugenebut</who>
    <bug_when>2015-11-18 20:15:58 -0800</bug_when>
    <thetext>Thank you for providing a workaround. Downloading PDF may not always work, because WKWebView does not provide reliable API to get cookie (NSHTTPCookieStorage is not always up to date). However being broken only in cases when auth is required is better than being always broken.

Please let us know if you see any alternative workarounds. Thanks!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1157867</commentid>
    <comment_count>3</comment_count>
    <who name="Andy Estes">aestes</who>
    <bug_when>2016-01-22 15:18:12 -0800</bug_when>
    <thetext>rdar://problem/22499157</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1158017</commentid>
    <comment_count>4</comment_count>
    <who name="Andy Estes">aestes</who>
    <bug_when>2016-01-23 01:18:47 -0800</bug_when>
    <thetext>The issue here is that _WKWebViewPrintFormatter&apos;s _totalScaleFactor is 0 for PDFs. Setting it to 1 instead fixes the attached test case. We probably need to compute a per-page scale factor for PDFs.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1200933</commentid>
    <comment_count>5</comment_count>
      <attachid>280935</attachid>
    <who name="Andy Estes">aestes</who>
    <bug_when>2016-06-09 13:04:34 -0700</bug_when>
    <thetext>Created attachment 280935
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1200936</commentid>
    <comment_count>6</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-06-09 13:06:02 -0700</bug_when>
    <thetext>Attachment 280935 did not pass style-queue:


ERROR: Source/WebKit2/UIProcess/ios/WKContentView.mm:632:  The parameter name &quot;handle&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
Total errors found: 1 in 17 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1200944</commentid>
    <comment_count>7</comment_count>
      <attachid>280935</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2016-06-09 13:14:48 -0700</bug_when>
    <thetext>Comment on attachment 280935
Patch

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

&gt; Source/WebKit2/UIProcess/WebPageProxy.h:260
&gt; +using DrawToPDFCallback = GenericCallback&lt;const IPC::DataReference&amp;&gt;;

Interesting! Why using instead of typedef like the others? Should we change the others?

&gt; Source/WebKit2/UIProcess/WebPageProxy.h:910
&gt; +        uint32_t computePagesForPrintingAndDrawToPDF(uint64_t frameID, const PrintInfo&amp;, DrawToPDFCallback::CallbackFunction&amp;&amp;);

indentation is weird.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1200946</commentid>
    <comment_count>8</comment_count>
    <who name="Andy Estes">aestes</who>
    <bug_when>2016-06-09 13:18:34 -0700</bug_when>
    <thetext>(In reply to comment #7)
&gt; Comment on attachment 280935 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=280935&amp;action=review
&gt; 
&gt; &gt; Source/WebKit2/UIProcess/WebPageProxy.h:260
&gt; &gt; +using DrawToPDFCallback = GenericCallback&lt;const IPC::DataReference&amp;&gt;;
&gt; 
&gt; Interesting! Why using instead of typedef like the others? Should we change
&gt; the others?

using doesn&apos;t make me think about which order things go in like typedef does, and it&apos;s more C++11y, but I don&apos;t know if we should change the others!

&gt; 
&gt; &gt; Source/WebKit2/UIProcess/WebPageProxy.h:910
&gt; &gt; +        uint32_t computePagesForPrintingAndDrawToPDF(uint64_t frameID, const PrintInfo&amp;, DrawToPDFCallback::CallbackFunction&amp;&amp;);
&gt; 
&gt; indentation is weird.

Oops. Will fix.

Thank you for the review!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1200948</commentid>
    <comment_count>9</comment_count>
      <attachid>280939</attachid>
    <who name="Andy Estes">aestes</who>
    <bug_when>2016-06-09 13:22:16 -0700</bug_when>
    <thetext>Created attachment 280939
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1200949</commentid>
    <comment_count>10</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-06-09 13:24:59 -0700</bug_when>
    <thetext>Attachment 280939 did not pass style-queue:


ERROR: Source/WebKit2/UIProcess/ios/WKContentView.mm:632:  The parameter name &quot;handle&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
Total errors found: 1 in 17 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1200956</commentid>
    <comment_count>11</comment_count>
      <attachid>280939</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-06-09 13:45:30 -0700</bug_when>
    <thetext>Comment on attachment 280939
Patch

Rejecting attachment 280939 from commit-queue.

Failed to run &quot;[&apos;/Volumes/Data/EWS/WebKit/Tools/Scripts/webkit-patch&apos;, &apos;--status-host=webkit-queues.webkit.org&apos;, &apos;--bot-id=webkit-cq-02&apos;, &apos;build&apos;, &apos;--no-clean&apos;, &apos;--no-update&apos;, &apos;--build-style=release&apos;, &apos;--port=mac&apos;]&quot; exit_code: 2 cwd: /Volumes/Data/EWS/WebKit

Last 500 characters of output:
CompileC /Volumes/Data/EWS/WebKit/WebKitBuild/WebKit2.build/Release/WebKit.build/Objects-normal/x86_64/_WKWebViewPrintFormatter.o UIProcess/_WKWebViewPrintFormatter.mm normal x86_64 objective-c++ com.apple.compilers.llvm.clang.1_0.compiler
(1 failure)

Failed to run &quot;[&apos;Tools/Scripts/build-webkit&apos;, &apos;--release&apos;]&quot; exit_code: 65
d/Objects-normal/x86_64/_WKWebViewPrintFormatter.o UIProcess/_WKWebViewPrintFormatter.mm normal x86_64 objective-c++ com.apple.compilers.llvm.clang.1_0.compiler
(1 failure)

Full output: http://webkit-queues.webkit.org/results/1474107</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1200988</commentid>
    <comment_count>12</comment_count>
      <attachid>280951</attachid>
    <who name="Andy Estes">aestes</who>
    <bug_when>2016-06-09 14:33:02 -0700</bug_when>
    <thetext>Created attachment 280951
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1200998</commentid>
    <comment_count>13</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-06-09 14:43:23 -0700</bug_when>
    <thetext>Attachment 280951 did not pass style-queue:


ERROR: Source/WebKit2/UIProcess/ios/WKContentView.mm:632:  The parameter name &quot;handle&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
Total errors found: 1 in 17 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1201003</commentid>
    <comment_count>14</comment_count>
      <attachid>280951</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-06-09 15:03:34 -0700</bug_when>
    <thetext>Comment on attachment 280951
Patch

Clearing flags on attachment: 280951

Committed r201888: &lt;http://trac.webkit.org/changeset/201888&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1201004</commentid>
    <comment_count>15</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-06-09 15:03:39 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>265744</attachid>
            <date>2015-11-18 05:23:07 -0800</date>
            <delta_ts>2015-11-18 05:23:07 -0800</delta_ts>
            <desc>Reproduction case.</desc>
            <filename>TestPrint.zip</filename>
            <type>application/zip</type>
            <size>53268</size>
            <attacher>stkhapugin</attacher>
            
              <data encoding="base64">UEsDBAoAAAAAAISDcEcAAAAAAAAAAAAAAAAKABAAVGVzdFByaW50L1VYDAAA9klWB/ZJVlrkiBNQ
SwMEFAAIAAgAhINwRwAAAAAAAAAAAAAAABMAEABUZXN0UHJpbnQvLkRTX1N0b3JlVVgMAAf2SVYH
9klWWuSIE+2YT0rEMBTGv1e7KLgJuHGZvSDMDcJQ98J4AKEV/+CYojPgRugVvIIn8QyeyGbeN1ro
CKMLp+j7QfiVpl/62kWTFIBMl/UEcAAKqCUdbKBgG5DReQqvxjjFPa5xhwWON481OlLtBzjDBR66
qvv1P6JCRN31NN3ZiJvby8msivNGg0/P2yfnsSzr5aIC3uLL0Sq+dbL+YbK56lf7+usv1jAMwxgt
oir2d1uGYRgjJH0fPB3oVi3sz+i8l3G0pwPdqoXXZXROF7SjPR3oVs2PlnDzIbzzevMijvZ0+NYj
G8a/YU/l0vx/8vX+3zCMP4zk5ayc4mNDMCDNtb5r5+sAOJtjuAjI9GfhIT77PR3oVm0LAcPYFe9Q
SwcIUdrgpRUBAAAEGAAAUEsDBAoAAAAAAISDcEcAAAAAAAAAAAAAAAAJABAAX19NQUNPU1gvVVgM
AAj2SVYI9klWWuSIE1BLAwQKAAAAAACEg3BHAAAAAAAAAAAAAAAAEwAQAF9fTUFDT1NYL1Rlc3RQ
cmludC9VWAwACPZJVgj2SVZa5IgTUEsDBBQACAAIAISDcEcAAAAAAAAAAAAAAAAeABAAX19NQUNP
U1gvVGVzdFByaW50Ly5fLkRTX1N0b3JlVVgMAAf2SVYH9klWWuSIE2NgFWNnYGJg8E1MVvAPVohQ
gAKQGAMnEBsBsRsQg/gVQMwAVyHAgAM4hoQEQZkVMF3oAABQSwcI9BnXvDQAAAB4AAAAUEsDBAoA
AAAAAICDcEcAAAAAAAAAAAAAAAAPABAAVGVzdFByaW50Ly5naXQvVVgMAGbvSVYA9klWWuSIE1BL
AwQUAAgACAB6f3BHAAAAAAAAAAAAAAAAHQAQAFRlc3RQcmludC8uZ2l0L0NPTU1JVF9FRElUTVNH
VVgMAGfvSVZn70lWWuSIE/PMyyzJTMxRcM7Pzc0s4QIAUEsHCH7jhBwRAAAADwAAAFBLAwQUAAgA
CAB5f3BHAAAAAAAAAAAAAAAAFQAQAFRlc3RQcmludC8uZ2l0L2NvbmZpZ1VYDAAA9klWZu9JVlrk
iBNNzMENwzAMA8C3PUVG6AKdpOhDdehAgGwZkh0g21d9FO2T5IGPooZnTi8ybPetkjhyMgx1nmpX
VWs0T5iz9gC3nCoLmu4fPm2F5qPHSSH/VSOytjjB6lz+sehBIoa6xk4T/h3eUEsHCL9gZBlkAAAA
iQAAAFBLAwQUAAgACAB5f3BHAAAAAAAAAAAAAAAAGgAQAFRlc3RQcmludC8uZ2l0L2Rlc2NyaXB0
aW9uVVgMAGbvSVZm70lWWuSIEwvNy0vMTU1RKEotyC/OLMkvqrRWSE3JLFEoycgsVkjLzElVUE9J
LU4uyiwoyczPU1coyVcA6QDKpyJp0uMCAFBLBwg3iwcfPwAAAEkAAABQSwMEFAAIAAgAeX9wRwAA
AAAAAAAAAAAAABMAEABUZXN0UHJpbnQvLmdpdC9IRUFEVVgMAAD2SVZm70lWWuSIEytKTbNSKEpN
K9bPSE1MKdbPTSwuSS3iAgBQSwcIK2lzpxkAAAAXAAAAUEsDBAoAAAAAAHl/cEcAAAAAAAAAAAAA
AAAVABAAVGVzdFByaW50Ly5naXQvaG9va3MvVVgMAGbvSVZm70lWWuSIE1BLAwQUAAgACAB5f3BH
AAAAAAAAAAAAAAAAIgAQAFRlc3RQcmludC8uZ2l0L2hvb2tzL1JFQURNRS5zYW1wbGVVWAwAZu9J
VmbvSVZa5IgTHYxBDoMwDATvvGIr7vCVSv0AJriNRYgj21Tt7xt63NndGW/zKnX2PIzDiHuhxKDW
TJsJBZcvKh28gT+czqC1MLLqDk8mLRxSQxFZHJsYp1D7dk9nvWBL3AJvMtHTQSlEq/c1BV4SCNrZ
J+DBjOUCmUv7633BU62LDjXuqh4Out7T8ANQSwcIiOHN0IMAAACxAAAAUEsDBBQACAAIAHt/cEcA
AAAAAAAAAAAAAAAUABAAVGVzdFByaW50Ly5naXQvaW5kZXhVWAwAAPZJVmrvSVZa5IgTc/EMcmZg
YGACYt4wz/epQJoBRoMA46JGEwaGxiUMLE+iGBiEOxgYdP1bVaTK2IN21c+rKK/nO/Xw3UtGhXYG
5ZDU4pKAosy8Er2K5PyU1IKi/Cx9EJGaXKJXkFQBYkLNxGGPBao9DLM2XRQ8ucEmfvWnP8uL9ped
+Bbz/qwdgwM+eyqSy/OLsosLEpNT9ZPz80pS80qKkQVTEksSwfamQ+1PR7I/F9V+nv93396I/K4y
5zdn7xyLvrgdC7caLTBiCMJmf0VyaXFqEch0/eKS7IzEgtL0zDw9hGgKUEVxckZqbmqxPrJ+iBgD
IlzSkGmou3xR3cX4cFv1Wh5Lp/hlPPtKtezjGvI+xBRJMERQ6i4YKzcxLzEdSAMNKsjJLC7BGV8a
aO6SYZyz84nCp+MLrooUOkv+tIqyVLU5ySAOd5e+Y0GBS2pOanpiSapeBu50oIlqLvsTE1G5qi8X
k7hiY5idVorbPix7Hd+Ey9xc3OYaoJrLYmp26QRvx2Tx3jp5zRSOaHXLyP13NBiskMwtLk4Fp59E
MANkjycwVeklFhRkAmmgmL4zLJFlFefnIcUjNvsNUe1na9ArkpMw/mC94eHOpBUuE68/sbN/P4dB
B2G/U2Jxql4OOCJ9EkvzkjOCk4tSU/P0ikvyiyqT8hOLUvDap4tmn/rXXH3rrXktJVcmT2bofu4y
I/uKjA2DClb7fBMzibbHGNUe1usOxxRjJ6SbXd+0xPJgzc937GURLCUMIgh7PPPS8mFpC4+5Wmjl
wb1arpfCXNmnVXgkS5VmqOT6O1u7KTFIIcwNy0wtB0VIUX5OTmoROInhM18bLf2+TbhdLfDaqO/l
4fgaQ/eZbJmO9SVT8ZifS8B8dTTz/RVWxetsOx/u3ztdOnqFvWIlh/mkKQwCCPNzQYEONDUkyNUV
qL6OwdBYwYhr4Z/wmjm+SlUTzs5M/7C18u0OiZ+IMpDBEqiCQ0PNpE98t/ZTr8cJswNqHjOy+Csh
4pLBSMGAK6T70XSmGRmOlhO3P9Bkatp8T37RXbTkzWCoYMh1257nYfIJZivxWPV7WX7TVt0RDFPF
TPZApQZcG5xTOObfSfln3bjnikjS3dC32xcwYimDGEyALswQ85Jx6Vxj9odZ5fKSTLuY2z32bohS
COhCQ67V90TmzF2l+OJ49NPfETkme6ecLXbAXmaBlR9SOXB3r+F1iRyu1b2+pctqxD683gcvy8Be
zuR43vkt8oXXK8M/UrO/6ictmV5/Gks9AfZL6IRug4v/smdYv6p23Peeo+etSd3mzPONp949S1SR
OvQlS+2Q5a95fQm1AFBLBwgaMpZz3AMAAC4HAABQSwMECgAAAAAAeX9wRwAAAAAAAAAAAAAAABQA
EABUZXN0UHJpbnQvLmdpdC9pbmZvL1VYDABm70lWZu9JVlrkiBNQSwMEFAAIAAgAeX9wRwAAAAAA
AAAAAAAAABsAEABUZXN0UHJpbnQvLmdpdC9pbmZvL2V4Y2x1ZGVVWAwAAPZJVmbvSVZa5IgT03MJ
jg8uyS9K5QotTi3yzCtJLUpLTE4NLkksSdWrSC4FChaD2ABQSwcI4/v6hCYAAAAoAAAAUEsDBAoA
AAAAAISDcEcAAAAAAAAAAAAAAAAYABAAX19NQUNPU1gvVGVzdFByaW50Ly5naXQvVVgMAAj2SVYI
9klWWuSIE1BLAwQKAAAAAACEg3BHAAAAAAAAAAAAAAAAHQAQAF9fTUFDT1NYL1Rlc3RQcmludC8u
Z2l0L2luZm8vVVgMAAj2SVYI9klWWuSIE1BLAwQUAAgACAB5f3BHAAAAAAAAAAAAAAAAJgAQAF9f
TUFDT1NYL1Rlc3RQcmludC8uZ2l0L2luZm8vLl9leGNsdWRlVVgMAAD2SVZm70lWWuSIE2NgFWNn
YGJg8E1MVvAPVohQgAKQGAMnEBsBcSUQg/irGYgCjiEhQVAmSMccIOZHU8KIEBdPzs/VSywoyEnV
C0mtKHHNS85PycxLB0qWlqTpWlgbGpsYGZpbWpgAAFBLBwhwGo3AXQAAAKsAAABQSwMECgAAAAAA
en9wRwAAAAAAAAAAAAAAABQAEABUZXN0UHJpbnQvLmdpdC9sb2dzL1VYDABn70lWZ+9JVlrkiBNQ
SwMEFAAIAAgAen9wRwAAAAAAAAAAAAAAABgAEABUZXN0UHJpbnQvLmdpdC9sb2dzL0hFQURVWAwA
Z+9JVmfvSVZa5IgTjclLCsIwFIXhsa7iDhWx3KQxTUREcCQOXcFNE2OweVDj/i0qOPWMPs6P+N+g
45Kjcrq1JIXQ2BvDlSLbWsUNWuksus5cFVyqK5TgfKPy9CHB7lHvXx9+XEfqy5jbZswUmz6PpfE5
+8FNjntgQnRSbbRmsEKGOJveGCosQgo10LDcwukjOL7L/AVQSwcIKjzUz4kAAADJAAAAUEsDBAoA
AAAAAHp/cEcAAAAAAAAAAAAAAAAZABAAVGVzdFByaW50Ly5naXQvbG9ncy9yZWZzL1VYDABn70lW
Z+9JVlrkiBNQSwMECgAAAAAAen9wRwAAAAAAAAAAAAAAAB8AEABUZXN0UHJpbnQvLmdpdC9sb2dz
L3JlZnMvaGVhZHMvVVgMAGfvSVZn70lWWuSIE1BLAwQUAAgACAB6f3BHAAAAAAAAAAAAAAAAJQAQ
AFRlc3RQcmludC8uZ2l0L2xvZ3MvcmVmcy9oZWFkcy9tYXN0ZXJVWAwAZ+9JVmfvSVZa5IgTjclL
CsIwFIXhsa7iDhWx3KQxTUREcCQOXcFNE2OweVDj/i0qOPWMPs6P+N+g45Kjcrq1JIXQ2BvDlSLb
WsUNWuksus5cFVyqK5TgfKPy9CHB7lHvXx9+XEfqy5jbZswUmz6PpfE5+8FNjntgQnRSbbRmsEKG
OJveGCosQgo10LDcwukjOL7L/AVQSwcIKjzUz4kAAADJAAAAUEsDBAoAAAAAAHp/cEcAAAAAAAAA
AAAAAAAXABAAVGVzdFByaW50Ly5naXQvb2JqZWN0cy9VWAwAZu9JVmfvSVZa5IgTUEsDBAoAAAAA
AHp/cEcAAAAAAAAAAAAAAAAaABAAVGVzdFByaW50Ly5naXQvb2JqZWN0cy8wMS9VWAwAZ+9JVmfv
SVZa5IgTUEsDBBQACAAIAHp/cEcAAAAAAAAAAAAAAABAABAAVGVzdFByaW50Ly5naXQvb2JqZWN0
cy8wMS85Y2I5ZTQyMGYyYzdhMGQ1MTQ3MTQzMTlmOTNhNWEzOTI1M2NjOVVYDABn70lWZ+9JVlrk
iBMB4wAc/3gBTY/BSsRADIY9z1MEvKgsHWdxRVYRFwUpexF18Txt43RgNhnS6NJH8jV8MqcVwUtC
8ucL/98kbmB5dXFkrbEWYJPzAyYMXrHq580rDvokkbRM8+JesKgdNCO8KGZPsO19/giRgAmcs+7S
ulX1e8t5lBh6he8vWJ67FTwyh4RQU1vBJiWY1QEEB5RP7CbMmOO4zywKN7t6G9XOtepvjbkrPlDe
fYv/ncIadvUzDpmpQ5moEiPF1mtk+osz0Vk4o+gIJ4MKU1gAMXnlfWxPy4u3SB0f4Oww92tTCKTO
mB/Gp11nUEsHCF8rIVnoAAAA4wAAAFBLAwQKAAAAAAB6f3BHAAAAAAAAAAAAAAAAGgAQAFRlc3RQ
cmludC8uZ2l0L29iamVjdHMvMDgvVVgMAGfvSVZn70lWWuSIE1BLAwQUAAgACAB6f3BHAAAAAAAA
AAAAAAAAQAAQAFRlc3RQcmludC8uZ2l0L29iamVjdHMvMDgvMjgyNjM0OGUxN2JiMmJlNTRhZTM2
MDliNTA3Y2UzMDEwNDRmMjJVWAwA9fVJVmfvSVZa5IgTARwB4/54ASspSk1VMDYyZDA0MDAzMVFw
LChwSc1JTU8sSdXLYGCcs/OJwqfjC66KFDpL/rSKslS1OYlFYS6Diahc1ZeLSVyxMcxOK8VtH5a9
jm8yMQACBcfi4tSSYr2K5EQwg+G2Pc/D5BPMVuKx6vey/KatuiMYpgpR6ZRYnKqXU1CUn8UQ0v1o
OtOMDEfLidsfaDI1bb4nv+gu1F7PvLR8vYKczOISBodjirET0s2ub1piebDm5zv2sgiWEqiqsMzU
cuf8vJKi/Jyc1CKgT2q5XgpzZZ9W4ZEsVZqhkuvvbO2mhF1tLkPC7WqB10Z9Lw/H1xi6z2TLdKwv
mQpVm5uYmaeXy6CwKl5n2/lw/97p0tEr7BUrOcwnTQEAbQp3OVBLBwjNWInFIQEAABwBAABQSwME
CgAAAAAAen9wRwAAAAAAAAAAAAAAABoAEABUZXN0UHJpbnQvLmdpdC9vYmplY3RzLzIwL1VYDABn
70lWZ+9JVlrkiBNQSwMEFAAIAAgAen9wRwAAAAAAAAAAAAAAAEAAEABUZXN0UHJpbnQvLmdpdC9v
YmplY3RzLzIwL2FhNWYyY2I2Y2Y1NzRmOGQ5NzFiNWJhODNmMjE3OTA4Mzc5Mjk0VVgMAGfvSVZn
70lWWuSIEwEHAfj+eAFNUEFqwzAQ7FmvGNKLXYxVN6SXltKQ0mJCS8HNKeQgO0IWyJKQ5EAoeVC/
0ZdVViB0D8vu7M7ssK0yLebzxRWlhFJgYFKXQyq/uA+fTuoQuwSsHGeB79Ee0QRumca6Z3YUUsNo
VBWt7mm1KM+7xh6dFH3A7w/ubqsF3owRiqPWXYmlUkhTD8c9dwe+n2iEXMvBGhfwuKnXMtCUy/7p
gs+W1r5wxUU0UvYzQqK95DmbCuZEV6DrmcPN1By2uxzfBHhmYzAu8pjn1hiVQMRwPIxOY1NHXSU7
FqTR7/EF2Vlq0iigpSrw0TQhPkO8OjOsFPM+2/7zgm6Cdnn+EK+dyIn8AeUObMpQSwcIeBVWLgwB
AAAHAQAAUEsDBAoAAAAAAHp/cEcAAAAAAAAAAAAAAAAaABAAVGVzdFByaW50Ly5naXQvb2JqZWN0
cy8yZS9VWAwAZ+9JVmfvSVZa5IgTUEsDBBQACAAIAHp/cEcAAAAAAAAAAAAAAABAABAAVGVzdFBy
aW50Ly5naXQvb2JqZWN0cy8yZS83MjFlMTgzM2YwM2JiMGUxYjk2MmE4NDQ5MWQ3ZTQzZTNmZWY5
Y1VYDAD19UlWZ+9JVlrkiBMB8QIO/XgBhVVbe9MwDOV5v8L43e3a0rGHdHzb2CDQfgNaxuXNcdTW
zLGC7Wzrfj2K00s6NshD48iyjnSso2YGM9Y7Onr1InlzXxh2C85rtCPe6xxyBlZhru1ixL/OLsUx
Zz5Im0uDFkbcIn9zcpDkqKoCbGBhVZJVYdGRZWmgk9oAbi4VnFXa5OAGnXNUKGdYqWVnGtCtMpQu
73xPz/gOd1DjBkTjrzepHPeGZPMrH6DYGnvD0/7hqwX5SreA8KWyQReEr6+mLRzOSocluLA6VQq8
P0cbHJo6eQucVR5Oq4BGrrAKI/7jYsqZkZVVy6lyAERDNJHbzEkdztEYUIH48esdbXXQ0lxruFuH
NuBG/LD3QZhS4PWEnxwwepIcSrA58anBN6ZoLk21SC3TtBP0XNdnnyewk57tGPxEJ7VtEXfc6/d5
dw3X/Rsv8QrsHvhLIerE2S5zIVq5RX8Wf9O3I37xfi7Sb+K0f7GuqS6gfhLMfhErrbIaO+3c7vFC
Ze5R08SeQJGBqxH2vR+hbGM2l/WuIs6egNy67QcbxxuOh9Z9GrDkMaGxKYQZi1RlG/Y2MdrvR6X8
HS/DELBoQt5nAyGvxGe8eS5k0v1/GRGS3cCqYYYzRc1LfTLBnPrcK2lghpfamAb0JwzFUSb6YfAM
c3U5iaObamLOnSxIAvd0JbXkCCW+73QeliN+dEi2JejFknRRf6w7q83JZp1I0pADrx9oVEykv2kA
Hls5i7Gn+kFmhiqI0mog9mz/RLK6kFGA//JSaNA1SWRS3SwcVjYn8aKjHJY6EHiPM2nKpYyr6D8t
aVSR/Cof77F5x0ObHWl05mSA/Fsd4zlGkm7dejsdbVmK9p3WnvAoDaWwxHpYstY6bU2H9OxSOx++
gC+R5gkVVItK//glPv4WF5LKomHlxjIDGnLRlbV8o5h3gpvvh3pEadJ9UthJiZqmfexLJe2t9GNU
8U5iMw0HsZcGr4dtgpJuhN5Mp/hB6k26m3+Pk4M/aPrtCFBLBwjgUIez9gIAAPECAABQSwMECgAA
AAAAen9wRwAAAAAAAAAAAAAAABoAEABUZXN0UHJpbnQvLmdpdC9vYmplY3RzLzM0L1VYDABn70lW
Z+9JVlrkiBNQSwMEFAAIAAgAen9wRwAAAAAAAAAAAAAAAEAAEABUZXN0UHJpbnQvLmdpdC9vYmpl
Y3RzLzM0LzE1MWU3YWY0ZDE2MjBhNWQ1YzAzNDJhOTE3M2RlMTc2ZWI1ZjgyVVgMAGfvSVZn70lW
WuSIEwGUA2v8eAGVVU1vGzcU7Hl/xUN6kQt3FQVwD/alduwYRtwqqBwYPVK7T0siXJLlhxyl6A/q
38gv65ArCatEDtKLsFo+kjPzZt4utV3Sq5evXv4wnVbTKdGlc9esuROR6768eeAQ33llIv6VF689
Y7Wl5YYWkZ0w9FYKlzplyBqazaazX6azs3qotW7jVScjff4X98zO6NbaTjPdmaamS62prAbyHNiv
uc3bqupH1TvrI70Yw5EvqupX4GC/Eg2PkdLkBEts2lzQO809myiiApzRAVVV/UyTq/n8/kQ4p1VT
Ks4n7+9QtPtLP40XqVXtG2VUkPcimUYq0z2qKOcunx3OJ78vrlWTn4XfYKcuRdtV+rsigqTzNXuv
WiZnAZ5W1lOTQrS9+jRAFCtQohEkGs6psd9zTN7QnzeLi+qfgn9tVTuG+Ki0/oOD6swlkKz523y2
mBbQh54kG4qSD65WgcTSpkjRUm/XTCtvexLl6PxOme1zgMBc04PEjgYesE2T/MCOfRQwQ9w4DmRX
FDl3M0tUuufTIB9NQmokCdxosNJAEdORk9YwToQ1oNTitwX1HILo+CT/32NOsAv9lVQMX1EQpiUV
aclw5LAavTBBFT+AQqa8FM2HztuE0oHI0Kv3gbEMRj1HadtM2AlcBWN36F5HUYQP4RS2CGIJF0fV
s8f/fGWU3saIl619MjR3bG7v6WYBAUXP5KFWqOkWz4GCtEm3lA8+eltG2KGyfqbn16q9yTm42rP4
rq4fYeeRdQEYQQqPSCOFNvmGQSkINB8IPbUiilM0aC20wvMhaxjZM7GxqUMrRzkqsmIX/N4PPoeY
OL/Ub3DLQXV2FloJC/lszd1m+ADg0Ey0BHxhkDJ5NH59jgfidbeir04LyeXxEcZt5o/cpGyB0wPN
i3u1BneYJbJos2FHPHK8HnY3nx/z33NNyjtLl95AocFr39Wl17A+4CAWTmAE5vzADiMLl0R+YeKt
rQ/TeUGS0RzIUxIKsyPTwmx2ZzZSmA527AWmE2YllGcMerj8ICHPEYQLrxip5f8xeDCpYmaVUZQs
4S6BUZRxlqS1NEHMjY204eIDj0/NCXRXOW7ANeoNPUGkHeU6O+FYgfO8VjYFncfPF9ROyZZZBMk3
MOcK/pSlpBh//615ToFDc3zzQ7IdvNvm7sfYmA2suB+9e7PXtMhBzBkkVZzprfMKAcAKQw4d7FiT
I6OhoC9fx/8Al07MsVBLBwgGp1HFmQMAAJQDAABQSwMECgAAAAAAen9wRwAAAAAAAAAAAAAAABoA
EABUZXN0UHJpbnQvLmdpdC9vYmplY3RzLzM2L1VYDABn70lWZ+9JVlrkiBNQSwMEFAAIAAgAen9w
RwAAAAAAAAAAAAAAAEAAEABUZXN0UHJpbnQvLmdpdC9vYmplY3RzLzM2L2QyYzgwZDg4OTMxNzhk
N2UxZjI5NjQwODViMjczOTU5YmZkYzI4VVgMAGfvSVZn70lWWuSIEwHJADb/eAGtk8EOgjAMhj3z
FE3PHgaSLfgqxsOAKU2AGVCzaHh3GSjhsoiT3dZuf760+dJSpxAyITbPAACpkmfVIuzh0F8BbNEe
pJx0ZetIl0LXCrefTksPNTSixETJrJ7J8t0wODzuxj+rZO78M2NmYrYypzPzD07ODF+b05m5hFPm
s6l93Xq4YEO/JUa+ic7teDM6E70ZBTeCz+Y72ePN6EycGHsrj9ZJpPqkrcOjmnhXTUu6tpVwdBbl
7VroZvDcZDpX1ugu6F6M5OxyUEsHCJV5l1TOAAAAyQAAAFBLAwQKAAAAAAB6f3BHAAAAAAAAAAAA
AAAAGgAQAFRlc3RQcmludC8uZ2l0L29iamVjdHMvNDAvVVgMAGfvSVZn70lWWuSIE1BLAwQUAAgA
CAB6f3BHAAAAAAAAAAAAAAAAQAAQAFRlc3RQcmludC8uZ2l0L29iamVjdHMvNDAvYzYyMTVkOTA2
NzM2ZDdiMmE0MzljMTdjZjllZTA3NzY1ODA0NzRVWAwA9fVJVmfvSVZa5IgTARcC6P14AcVUTY/a
MBTstfyKNOqhPYAXqdsvZUGQBMlSFiISV+1pZeIHWBts13FgufS31+GrNJCVtpfmFDkz8+a9N/Es
lzOn++HL7Suv/7TKnTXogktx53Y7N64DIpOMi8WdS9JR+7Pb77W8N8HET3/EoaNyXhgnJsMI+47b
RmigVA4IBWngxBFOUsdqIBSOXcddGqO+IrTZbDq0QnUyuaqABYq1VKDNNrJibUvoMMNcW2av/pcd
e8p4Znqt194jbHv+aFgKlkMAa8ilWoEwU1hY8x6qPltUYbQ13wN7cnitUcMnyEpDZznUOW/fhd9D
n6SDYRQ+jAf34fsmDcxsYT7noC814ukkIH76MCTjwOrgIByneITDabOamMvANmnboHr7bb+NuvDH
zk2TmzFdXenl6OPZRmKaPdIFpFt1oTCI46ipYrKU2hyMJruB1+3arTaS+UJQU+qLin37NJEaptKt
46NkCj9LrqHA8VIKmCQnZ0aXgI5BIjiipciWiZF6O5NUs2tTPGAyDZd5IviecvGHP+KXiaoQdYcE
HxwyG2KegU8VnfGcGw7FySvVmlZxPuWZ6tX607kUOkJ2/wXBSamUXQowLAzoOc1gorlNKa1i9Yww
wdcIsZXSlJuziicr1xkRFazIqIII5v9Cm/LF8pznvazBX1xR1jy+655f3uWRQVTBGQRyc77e/zUh
D+2vSA/tLtBe6zfdYwJiUEsHCPRAu5gcAgAAFwIAAFBLAwQKAAAAAAB6f3BHAAAAAAAAAAAAAAAA
GgAQAFRlc3RQcmludC8uZ2l0L29iamVjdHMvNTQvVVgMAGfvSVZn70lWWuSIE1BLAwQUAAgACAB6
f3BHAAAAAAAAAAAAAAAAQAAQAFRlc3RQcmludC8uZ2l0L29iamVjdHMvNTQvOGJlMjk3MDI5ODY4
NDEzOTkxYjdlMDI5MDI4MmIzZGUxZmEyZGRVWAwA9fVJVmfvSVZa5IgTAV8AoP94ASspSk1VsDRh
MDQwMDMxUfBJLM1LzghOBorm6RWX5BdVJuUnFqUw6BXJSRh/sN7wcGfSCpeJ15/Y2b+fA9Xim5iJ
ovRrrr711ryWkiuTJzN0P3eZkX1FxgYAbAkn8FBLBwgi9eB7ZAAAAF8AAABQSwMECgAAAAAAen9w
RwAAAAAAAAAAAAAAABoAEABUZXN0UHJpbnQvLmdpdC9vYmplY3RzLzU1L1VYDABn70lWZ+9JVlrk
iBNQSwMEFAAIAAgAen9wRwAAAAAAAAAAAAAAAEAAEABUZXN0UHJpbnQvLmdpdC9vYmplY3RzLzU1
LzkwOGIzMGQxZmU2Yjk4M2JlYTdiNDFiZWVmMDg4Y2VkMzQ3ZWIzVVgMAPX1SVZn70lWWuSIEwFF
ALr/eAErKUpNVTA1YjA0MDAzMVFIzs8rSc0rKdarSC7PL8ouLkhMTk1JLElk2HRR8OQGm/jVn/4s
L9pfduJbzPuzdgCNyBoKUEsHCGCA3RlKAAAARQAAAFBLAwQKAAAAAAB6f3BHAAAAAAAAAAAAAAAA
GgAQAFRlc3RQcmludC8uZ2l0L29iamVjdHMvNjAvVVgMAGfvSVZn70lWWuSIE1BLAwQUAAgACAB6
f3BHAAAAAAAAAAAAAAAAQAAQAFRlc3RQcmludC8uZ2l0L29iamVjdHMvNjAvZGI3YjEwZWIzMjhl
ZTljMzVmN2MzMTQ3OTkwNjY5NDE3Zjc0OTVVWAwA9fVJVmfvSVZa5IgTAT4Bwf54AXWRwUrEMBCG
PecpftbLLmhr1RXEi7ILIiqIih7EQ9pM20CaCWm2UsQH8jV8MtMu6LrgMf/M/PPln9xwjuPTo500
FWkKPGl6W7ANno0hnzSj+EhtuPPahvgahYUnGUgh7/EQyEmL61q6VaUt2CLL0uwkzebJupdd73VV
B3x94vAgm+OSuTKEK1skuDAGY7WFp5Z8R2oYE2JXN459wGSLqJ4IcR5RyJeyoC1eTGexSlYNPY0z
1JANMugI9ddGiH1MO9Zq1sUPL7W6YanwLoCXduXIY0N+PYtyzGbJkLaHVEoPjtKgpbBykGWEgYkG
2lYINY3Dewi904U0pkfpuYGE1XkiPn5XK63uqSDd0S017Ptn6e1gsYHxT8sPkm4dtwQuR7SYIK98
QW2kkAFFvEtOMddifa5x+ZjON2D1poBQSwcIquNQH0MBAAA+AQAAUEsDBAoAAAAAAHp/cEcAAAAA
AAAAAAAAAAAaABAAVGVzdFByaW50Ly5naXQvb2JqZWN0cy82OC9VWAwAZ+9JVmfvSVZa5IgTUEsD
BBQACAAIAHp/cEcAAAAAAAAAAAAAAABAABAAVGVzdFByaW50Ly5naXQvb2JqZWN0cy82OC8xNjRh
MWM0NDg5YWMzNmZjMDMyNGQzYTQ2OTNlNWNkYjhjM2Y0NlVYDAD19UlWZ+9JVlrkiBMBgwB8/3gB
KylKTVUwNDJjMDQwMDMxUSgoys9KTS7RK0iqADEZWlWkytiDdtXPqyiv5zv18N1LRoV2EwMggKus
SC7PL8ouLkhMTmUIndBtcPFf9gzrV9WO+95z9Lw1qdsMUV2RXFqcWpSSWJLIsPqeyJy5qxRfHI9+
+jsix2TvlLPFDgBYITdXUEsHCCSBZ8SIAAAAgwAAAFBLAwQKAAAAAAB6f3BHAAAAAAAAAAAAAAAA
GgAQAFRlc3RQcmludC8uZ2l0L29iamVjdHMvNjkvVVgMAGfvSVZn70lWWuSIE1BLAwQUAAgACAB6
f3BHAAAAAAAAAAAAAAAAQAAQAFRlc3RQcmludC8uZ2l0L29iamVjdHMvNjkvMDhlNzg5ZjY1OWU4
NGFlYTMxZmMxYTliZjUyZjYyYTQ5NzdmY2JVWAwA9fVJVmfvSVZa5IgTAWcAmP94ASspSk1VsLRg
MDQwMDMxUQhJLS4JKMrMK9GrSC5OzkjNTWW4+/ZG5HeVOb85e+dY9MXtWLjVaIERVDVMTW5iXmI6
UC1QW0FOZnEJw7bqtTyWTvHLePaVatnHNeR9iCmSAABWuikbUEsHCPKeqyNsAAAAZwAAAFBLAwQK
AAAAAAB6f3BHAAAAAAAAAAAAAAAAGgAQAFRlc3RQcmludC8uZ2l0L29iamVjdHMvNzIvVVgMAGfv
SVZn70lWWuSIE1BLAwQUAAgACAB6f3BHAAAAAAAAAAAAAAAAQAAQAFRlc3RQcmludC8uZ2l0L29i
amVjdHMvNzIvNjIwOGU5M2RhNjQ0OTBjYmIyODhhZDNkODJiMGQ2ZWQwZTdiZjhVWAwAAPZJVmfv
SVZa5IgTAasAVP94AY2OvQrCMBRGnfMU2SUhNzZNL4gITuLoE9ym6Q82TYjp+1tEcBO3wzec87kY
wlS4NrAr2XtO0DtjrUNXdVpbQuU6xNr2qjUWfdc20PRYKUZrGWPm9+ITLfw2UlqHaeHHZ3l8+NyN
LgmwWkAttDYCGpSJsnQxJznEOMx+43DiUFW2bgwi8L0Cpdi2bq+K/+3/pkQgl3I8yBwp/OFn12Uq
E8388g6xF3FuU3NQSwcINaMqvbAAAACrAAAAUEsDBAoAAAAAAHp/cEcAAAAAAAAAAAAAAAAaABAA
VGVzdFByaW50Ly5naXQvb2JqZWN0cy83ZC9VWAwAZ+9JVmfvSVZa5IgTUEsDBBQACAAIAHp/cEcA
AAAAAAAAAAAAAABAABAAVGVzdFByaW50Ly5naXQvb2JqZWN0cy83ZC8wYWU5MTMwYTZiY2IyNDBj
MTk3NTIyOTgyNDZkNGY0MzNiNDYyMlVYDABn70lWZ+9JVlrkiBMBsQBO/3gBXY67CsIwGIWd8xQH
3BtTqIOIKB2kdBG07r38NoGYlL9R6SP5Gj6ZtU66HDg3+CrrK8RxPJNSSAmcDT1S7wJ7a4kjPYUn
6sOBjQujm4KUqQzUoBpwDNSVDrkuu1trHLyDUlItpUqi79Z3A5tWB7yeiBcqwd771hIyV0fYWYup
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
7+gGzCVwKxr349NrVbSfl4DjhbkENhPyjpPHFOrNZDUTupaYjpN8MqkNBIuu8zUnvhCKT/gY9Jsv
xwASjnP8uZ6xLYWFlBzn5Om7nXB9MLePZtVmGAt0623CjNlYTWdBGkDSgQGUw/Ok8k8j7H0U/nv1
r0+v5sTvQibjxD2Z/VwnQhSX0cq4eysGcbwnMAk3yF83w8nzwTfX9GKqXX6vuTz48+D/ttCSQlBL
BwhibXfRYgoAAF0KAABQSwMECgAAAAAAen9wRwAAAAAAAAAAAAAAABoAEABUZXN0UHJpbnQvLmdp
dC9vYmplY3RzL2ExL1VYDABn70lWZ+9JVlrkiBNQSwMEFAAIAAgAen9wRwAAAAAAAAAAAAAAAEAA
EABUZXN0UHJpbnQvLmdpdC9vYmplY3RzL2ExL2ZjNTc3YzljNGQyMjdhOTBjZDk5NjdmMGI1Nzll
ZGI4MThmOTQwVVgMAAD2SVZn70lWWuSIEwFVAKr/eAErKUpNVbAwYjAxAAKFkNTikoCizLwSvYrk
/JTUgqL8LIYMMS8Zl841Zn+YVS4vybSLud1j74ammoFDQ82kT3y39lOvxwmzA2oeM7L4KwEAWekf
HFBLBwhC2zvIWgAAAFUAAABQSwMECgAAAAAAen9wRwAAAAAAAAAAAAAAABoAEABUZXN0UHJpbnQv
LmdpdC9vYmplY3RzL2FiL1VYDABn70lWZ+9JVlrkiBNQSwMEFAAIAAgAen9wRwAAAAAAAAAAAAAA
AEAAEABUZXN0UHJpbnQvLmdpdC9vYmplY3RzL2FiL2RlMTQ5YzlkYWEyMWU4Yzc1YmU1ZmI1ODZj
MzRiZDk0Y2Q3MzQwVVgMAPX1SVZn70lWWuSIEwFAAL//eAErKUpNVTCxZDAxAAKF4pLsjMSC0vTM
PL2K5NLi1KKUxJLEFIZDKgfu7jW8LpHDtbrXt3RZjdiH1/sAP3YW91BLBwh3plrKRQAAAEAAAABQ
SwMECgAAAAAAen9wRwAAAAAAAAAAAAAAABoAEABUZXN0UHJpbnQvLmdpdC9vYmplY3RzL2IwL1VY
DABn70lWZ+9JVlrkiBNQSwMEFAAIAAgAen9wRwAAAAAAAAAAAAAAAEAAEABUZXN0UHJpbnQvLmdp
dC9vYmplY3RzL2IwLzQzNjQwODlmZGM2NGZlM2I4MWJjZDQxNDYyZGQ1NWVkYjdhMDAxVVgMAPX1
SVZn70lWWuSIEwE5AMb/eAErKUpNVTAxZDA0MDAzMVFwzs8rSc0rKdbLKs7PYzC7dIK3Y7J4b528
ZgpHtLpl5P47GgB9bRBgUEsHCDKxT/A+AAAAOQAAAFBLAwQKAAAAAAB6f3BHAAAAAAAAAAAAAAAA
GgAQAFRlc3RQcmludC8uZ2l0L29iamVjdHMvYjIvVVgMAGfvSVZn70lWWuSIE1BLAwQUAAgACAB6
f3BHAAAAAAAAAAAAAAAAQAAQAFRlc3RQcmludC8uZ2l0L29iamVjdHMvYjIvZDExMWM5YjAzYzVm
YWJmMmZjYTc3MmJmNzZjOGY2NWNlZmNkM2VVWAwAZ+9JVmfvSVZa5IgTAYcAeP94AUvKyU9SMDQ1
YbCxr8jNUShLLSrOzM+zVTLUM1BSSM1Lzk/JzEu3VQoNcdO1ULK347IJzy/KLi5ITE7lUlCAKVew
VQBrsAOJ2bhl5qQGpaaB2ECQk5+cWAI0EqSmODUnzSoktbgkoCgzr0SvAmh6akFRfpYSRKM+VCfQ
Fn24NXZcAINIMRZQSwcI89Cfx4wAAACHAAAAUEsDBAoAAAAAAHp/cEcAAAAAAAAAAAAAAAAaABAA
VGVzdFByaW50Ly5naXQvb2JqZWN0cy9iNi9VWAwAZ+9JVmfvSVZa5IgTUEsDBBQACAAIAHp/cEcA
AAAAAAAAAAAAAABAABAAVGVzdFByaW50Ly5naXQvb2JqZWN0cy9iNi83YmFkMGMzOTQyNWZhNjBj
YmU3NTJhM2Y1ZTgwNmVmMDVjNzIxOFVYDABn70lWZ+9JVlrkiBMBMQHO/ngBZZBdb4IwFIZ3C7+i
670c1H3oUjEikJmYjUS82CXCiTYD2rRl6r9f1eHidnfa85y3T8+mEhvyMOrfsemhrsgXKs1FM6F9
z6cEm0KUvNlO6DpLeiM6DVx2H73Ps480JrLi2pB0HS4Xc0J7ADMpKwSIsoiky8UqIzYDIH6jhO6M
kS8A+/3ey0+UV4j6BGpIlZCozHFpw3p2wCtNSe0zl/QbHXtb8sIErsM+8Risih3WuNaoViY3yOB0
aXs/zAXKUJtU8cZ4h0KfBzruF7yQQpWoXi15BRxmT7hFFfgMutJ1HAadxrU4+7RSKtQ6bHlV5psK
Z60RhcLc2IV2obd2j+NB4j8Pw36YzAZP8aPvD0dRnIw7+q+jVLzO1fHadphRLYL99X+pzpLBeZWB
+w1cwZOiUEsHCHy8IZg2AQAAMQEAAFBLAwQKAAAAAAB6f3BHAAAAAAAAAAAAAAAAGgAQAFRlc3RQ
cmludC8uZ2l0L29iamVjdHMvYzIvVVgMAGfvSVZn70lWWuSIE1BLAwQUAAgACAB6f3BHAAAAAAAA
AAAAAAAAQAAQAFRlc3RQcmludC8uZ2l0L29iamVjdHMvYzIvMjRjMGRkYmQzMWQ3MTg2YzBhYWI4
ZDRkNzVhNjdjMTZmMGViYmVVWAwA9fVJVmfvSVZa5IgTATMAzP94ASspSk1VMDZjMDEAAoWK5OLk
jNTc1GKGTI7nnd8iX3i9MvwjNfurftKS6fWnAVa9EkpQSwcIZaPb8jgAAAAzAAAAUEsDBAoAAAAA
AHp/cEcAAAAAAAAAAAAAAAAaABAAVGVzdFByaW50Ly5naXQvb2JqZWN0cy9kYi9VWAwAZ+9JVmfv
SVZa5IgTUEsDBBQACAAIAHp/cEcAAAAAAAAAAAAAAABAABAAVGVzdFByaW50Ly5naXQvb2JqZWN0
cy9kYi8zZjBjZTE2M2M4MDMzYTE3NWQyN2RlNmE0ZTk2YWFkYzExNTYyNVVYDAD19UlWZ+9JVlrk
iBMBOwDE/3gBKylKTVUwMWUwMQACBceCAs/k/Dy9xIKCTCBdnFrCsME5hWP+nZR/1o17rogk3Q19
u30BIwDfQBTRUEsHCJlPMCVAAAAAOwAAAFBLAwQKAAAAAAB6f3BHAAAAAAAAAAAAAAAAGgAQAFRl
c3RQcmludC8uZ2l0L29iamVjdHMvZGQvVVgMAGfvSVZn70lWWuSIE1BLAwQUAAgACAB6f3BHAAAA
AAAAAAAAAAAAQAAQAFRlc3RQcmludC8uZ2l0L29iamVjdHMvZGQvZWRkODU5ZjcyNDljZmIwOThk
OWMzODhlNWViOGExYjUzMmEwMzJVWAwAZ+9JVmfvSVZa5IgTAUYDufx4Ae1X32/aMBDec/+KiPfx
o6hrO6WtoIBUiZaqtPvxaJKDejN25CQM+tfvzo4NIbSgTXuZygMI3+ez7+777pKJUJOg3T4+/RBe
LeciWIBOuZIXtVa9WQtARirmcnZRe3ocfDyrXV0ehePoGeZwFATBkKXZUzLTLIYvdltwEdSap61m
jcyFK1pr1du1S1oLuzkXcSfK8Az6j5+EaSYECP4CxsgmAlLa9L0/Nn4QM6FdN/NE8IhnPUhAxng1
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
AAAAAAAaABAAVGVzdFByaW50Ly5naXQvcmVmcy9oZWFkcy9VWAwAW/RJVmfvSVZa5IgTUEsDBBQA
CAAIAHp/cEcAAAAAAAAAAAAAAAAgABAAVGVzdFByaW50Ly5naXQvcmVmcy9oZWFkcy9tYXN0ZXJV
WAwAAPZJVmfvSVZa5IgTBcHBEQAwBATAf6oxGE455KT/ErKbGirYMna4l9wZBZpG6AhjKZvzcD5Q
SwcIrlknXikAAAApAAAAUEsDBAoAAAAAAHl/cEcAAAAAAAAAAAAAAAAZABAAVGVzdFByaW50Ly5n
aXQvcmVmcy90YWdzL1VYDABb9ElWZu9JVlrkiBNQSwMECgAAAAAAfINwRwAAAAAAAAAAAAAAABQA
EABUZXN0UHJpbnQvVGVzdFByaW50L1VYDAAA9klW/PVJVlrkiBNQSwMEFAAIAAgAfINwRwAAAAAA
AAAAAAAAAB0AEABUZXN0UHJpbnQvVGVzdFByaW50Ly5EU19TdG9yZVVYDAD89UlW/PVJVlrkiBPt
mDEKwkAQRf/EFEGbLS33BII3WIKewAsoKIIEFUXrVJ7Lo5mwXwxoCkGI6H8wvCIzm6TZ2VkAlp+W
Y8AByBCNC16SMZ5IaItRrTFCgT0O2GHzeq0n6to+cixwxKpZf54dtsVuu2aOEEIIIT4D+2o26PYz
hBBfSL0/eDrQZbTxeUKnjRpHezrQZbQxL6FTOqMd7elAl9HctIzDh/HNxgnFHO3p8NYvC/E39KJc
3f+naJ3/hRA/jKWT2SRH+0Vb3Wt9FXPmXO+FLQeBJF4YDvHI83Sgy2gdBoToghtQSwcImPBpGdsA
AAAEGAAAUEsDBAoAAAAAAISDcEcAAAAAAAAAAAAAAAAdABAAX19NQUNPU1gvVGVzdFByaW50L1Rl
c3RQcmludC9VWAwACPZJVgj2SVZa5IgTUEsDBBQACAAIAHyDcEcAAAAAAAAAAAAAAAAoABAAX19N
QUNPU1gvVGVzdFByaW50L1Rlc3RQcmludC8uXy5EU19TdG9yZVVYDAD89UlW/PVJVlrkiBNjYBVj
Z2BiYPBNTFbwD1aIUIACkBgDJxAbAbEbEIP4FUDMAFchwIADOIaEBEGZFTBd6AAAUEsHCPQZ17w0
AAAAeAAAAFBLAwQUAAgACAB5f3BHAAAAAAAAAAAAAAAAIQAQAFRlc3RQcmludC9UZXN0UHJpbnQv
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
AFRlc3RQcmludC9UZXN0UHJpbnQvQXNzZXRzLnhjYXNzZXRzL0FwcEljb24uYXBwaWNvbnNldC9D
b250ZW50cy5qc29uVVgMAP31SVZl70lWWuSIE62T0QrCIBSG7/cUcq69cGs41qtEFzKtCU1jVkjD
d2+6ii4mrM2bA56f8/HJ0SFDCGTHzsIA2qPDeERoCNUHXOrO90FeW60E4E9i5FOEoKhtUf/0G3Z5
BxZC0+F0zN16ZklsSRJ7RpkbPCmxNLVnlLnEk/F/NpQnJy659ywxup3Vjpve0CyxoraiSR2jxK/j
WI84fHt10j6a4PAQvZFa+U4+zQO731rdh3HbaC48wWXuBVBLBwj6Rim1sQAAADUEAABQSwMECgAA
AAAAhINwRwAAAAAAAAAAAAAAAC0AEABfX01BQ09TWC9UZXN0UHJpbnQvVGVzdFByaW50L0Fzc2V0
cy54Y2Fzc2V0cy9VWAwACPZJVgj2SVZa5IgTUEsDBAoAAAAAAISDcEcAAAAAAAAAAAAAAABAABAA
X19NQUNPU1gvVGVzdFByaW50L1Rlc3RQcmludC9Bc3NldHMueGNhc3NldHMvQXBwSWNvbi5hcHBp
Y29uc2V0L1VYDAAI9klWCPZJVlrkiBNQSwMEFAAIAAgAeX9wRwAAAAAAAAAAAAAAAE8AEABfX01B
Q09TWC9UZXN0UHJpbnQvVGVzdFByaW50L0Fzc2V0cy54Y2Fzc2V0cy9BcHBJY29uLmFwcGljb25z
ZXQvLl9Db250ZW50cy5qc29uVVgMAP31SVZl70lWWuSIE2NgFWNnYGJg8E1MVvAPVohQgAKQGAMn
EBsBcSUQg/irGYgCjiEhQVAmSMccIOZHU8KIEBdPzs/VSywoyEnVC0mtKHHNS85PycxLB0qWlqTp
WlgbGpsYGZpbWpgAAFBLBwhwGo3AXQAAAKsAAABQSwMECgAAAAAAz4FwRwAAAAAAAAAAAAAAAB8A
EABUZXN0UHJpbnQvVGVzdFByaW50L0Jhc2UubHByb2ovVVgMAAD2SVbW8klWWuSIE1BLAwQUAAgA
CADPgXBHAAAAAAAAAAAAAAAANgAQAFRlc3RQcmludC9UZXN0UHJpbnQvQmFzZS5scHJvai9MYXVu
Y2hTY3JlZW4uc3Rvcnlib2FyZFVYDAD69UlW1vJJVlrkiBOVVV1X2jAYvvdXdLkPHyJunAN6hOHW
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
Y3QueGN3b3Jrc3BhY2UvVVgMAAj2SVZl70lWWuSIE1BLAwQUAAgACAB5f3BHAAAAAAAAAAAAAAAA
SgAQAFRlc3RQcmludC9UZXN0UHJpbnQueGNvZGVwcm9qL3Byb2plY3QueGN3b3Jrc3BhY2UvY29u
dGVudHMueGN3b3Jrc3BhY2VkYXRhVVgMAGfvSVZl70lWWuSIE7Oxr8jNUShLLSrOzM+zVTLUM1BS
SM1Lzk/JzEu3VQoNcdO1ULK347IJzy/KLi5ITE7lUlCAKVewVQBrsAOJ2bhl5qQGpaaB2ECQk5+c
WAJVU5yak2YVklpcElCUmVeiVwE0PbWgKD8LqlEfqhNoiz7cGjsuAFBLBwjgbR/HdQAAAJoAAABQ
SwMECgAAAAAAeX9wRwAAAAAAAAAAAAAAAD0AEABUZXN0UHJpbnQvVGVzdFByaW50Lnhjb2RlcHJv
ai9wcm9qZWN0Lnhjd29ya3NwYWNlL3hjdXNlcmRhdGEvVVgMAAD2SVZl70lWWuSIE1BLAwQKAAAA
AAB8g3BHAAAAAAAAAAAAAAAAVAAQAFRlc3RQcmludC9UZXN0UHJpbnQueGNvZGVwcm9qL3Byb2pl
Y3QueGN3b3Jrc3BhY2UveGN1c2VyZGF0YS9zdGtoYXB1Z2luLnhjdXNlcmRhdGFkL1VYDAAA9klW
+/VJVlrkiBNQSwMEFAAIAAgAfINwRwAAAAAAAAAAAAAAAHIAEABUZXN0UHJpbnQvVGVzdFByaW50
Lnhjb2RlcHJvai9wcm9qZWN0Lnhjd29ya3NwYWNlL3hjdXNlcmRhdGEvc3RraGFwdWdpbi54Y3Vz
ZXJkYXRhZC9Vc2VySW50ZXJmYWNlU3RhdGUueGN1c2Vyc3RhdGVVWAwA+/VJVvv1SVZa5IgT1Xp3
fFPV+/8ZtzMtpEmbNtA2STOajqxOigh0QqGLLsosaXvbxqZJSdKy5VzEPXF8EBWhLdsBKihDEGQ4
UZZbnIiIoggu9KN+z81NOgD18/n+/vn+5GV67znPec5znvOM93nObeiw29wes/kEgAABDBgQAAKZ
n5lf6jRdrMttczrqNM6G69hGj3uKxupqbLXR5mqNx9khAfCm1ZsjYBcIAsFACiJBFEgEepAEkkEK
SAUGYAQmcA0YBa4Fo8EYUAgmghJQCaaDGWAmqAeNoAm0ADtwAhfoAnPAArAQEHATuA3cDpaDB8EK
8BB4GHSDHrAebAZbwFPgafAM2AZ2gz3gBfAmOAKOgmPgODgB3gLvgZPgI/AZOA3Ogq/Bd+Bn8Au4
BDFkYAAMhEEwGIZBMYyCMqiDyTAFmqAZZsBMmANHwtFwDMyHBbACToKVsApWwxpYCyfDRtgEWdgM
XdANPbATcnAJvAHeDe+By+C98FG4Cq6G3XA9fAw+DnfCXfB5uBvugS/AF+F+eAC+Cl+Dr8N34Xvw
ffgB/BCehB/Bz+Dn8Et4Dn4Lv0MYMSgABaIgFIxCUCgSoTAUjoagoUiMhqHhKBbFIS0yITOyoDSU
jjJQJhqDxqJclIdKUCkqQ+VoCpqKZqIG5EJu5EGdqAvNQQvQ9WgxImgpugfdj9ah9WgD2og2ocfQ
4+gJ9CQ6hF5CL6NX0KvoNfQ6OozeQG+iI+goegd9iE6hL9A59C36BV1Cv6LfsAiH4XA8BA/FYhyB
JTgWx+F4rMBqrMFarMNZOBuPwDl4JL4G5+I8PB4X40m4Etfh6XgGbsQ27MSduAsvxEvwbfh2fB++
Hz+CV+K1eB1ejzfgPfgFvBfvwy/i/fgAPogP4ZfwYfwGPoHfwh/jT/Cn+DN8Gv+CL+Ff8W/43/h3
/Af+kwFMGBPODGGGMnJmGKNkdEwio2dSGTOTwWQyOcxIZjSTx+Qz45iJTAlTx0xhpjLTmOlMK2Nj
rmPaGDvjYtzMPOZ65ibmZuZu5h7mfuYhZhWzntnAbGSeYp5mnmF2MQeZ15ijzFvMe8xJ5iPmM+ZL
5mvmO+ZijcbRabcfByEgFIhAGBgKJJPLqoxt7Dz3VPrX5ym1mka71e3uAeFgCEEE9wAxiCAMeZ1k
1osjiwsKJztdbe4OayNb4GzsbGcdnnqxJtOcljsiLy3LkJabmWXIKMwrMuRlpGcZzAUFWUUZOXn5
WRkZ/ollIB7o1oNoEAPkYBgYDmJBHAkggSSIBJMQEkpE64ECKIEKJAA10AAtCSPh5F9kBVlPXiGv
Eg0VI8/FWts6nDaHx53b6LF1WT1sU714WAHbbO20ewqbbB6nq8pDW91FTldNZYl7upeMrWpsZdtZ
ykB4rex0FLBuj81h9dBgUS82l1jdnnxne4edpQwr+Bji9tAVCsPyrG62yTvQ5plXyXY4XXTpQ/1a
mGxzNDnnuOvFMZVsI30XhPD38jKE+DVgBplAtwZYQBpIBxlkCBlKxCRiDcgC2WAEyCESoiU1ZBG/
0sS6RmcTa6Rqn2jzGAfzNFbw4U9oqxdnC5Te3/QKl5PfzKrODl7Ky8cNoqkX6/5ujipnp6uRzacE
fVP4CIsdHtbVTO0gr9Nmb2JdV4ykL/ManFZXk3/dY0Ee0HWDXCLtBvlERjTHQRFtHgfGg2IwgbfF
BqriafSvi7Vb+Q0igESRSDpzs83OjjSZTDVuuikmt6et1drR2WJzmKrp/lW4qCEMeCp2NDuN3txw
DJSCMlAOKqYKVu2wtrN1wiPrrimrotvSQ7sn1ZVVlXvN3y9qFZgMdL2gGtSAWhJNYoi8F9SBKWAq
GUbiiJrfmniqh/qKkuKq6vrCguLq8sr6qsKSwvzq4vKy+omFU65GUFhXkVtW1UegvIKgtriqOK+k
sJKy4UmOeWWZBRq6gZUMJ7H1Ynl+UV6no8nOFrBdrN3ZwWu6km2h1isslQXNVI+5Lpd1Xg99mSRw
aAVtPcAGriPxREkShLZ24FhNFMKoDjB7ZllVaafH2mBnvYN7aVvfcDdwdAMPURFFvVhGuXd0VLus
DjdvWlVsY6eLuoPAZy6YN72PTxXr6aUt88Ekqmj6Qr1uwQJzqtK8KFW5YMQI+pSdlrFokTByEbi+
XiztG1tga+Q90uqigiwCi8Ekyra/zb9JHLiBt6clhP4sJfrB9nSr13YS/0vbMc7lTbyDuobJP8sd
YBnvrXeCu8Dd4B6SRJJJCkldA+4F94H7wQPEQHLIOFLNm4R+kGcJ/mB0ez2ohFqj0U2N0tNlY+fU
i1OuQlovtHn9qaKVuoLb79ypV6GuYu30mW3yO1yJs9EbxtxXJ69wsV02Z6e72upqYX1t+bwj+Nf5
CHiU1+ZKYuwGq4iJX09EQW11FS9zLZW52MO2uwWD6AWOHrAGrCVmkkUUfgYbwGNA0gM2gk3EQtJ6
wOPgCZJOMkjmDMqmuImKaGu2sXQ1YvrOcyy1tjhsnk4+tKj6tTRowv5h6rHsWMD/JxjMYrC1hzcM
/+TPgh2DJt8JdpFsMoJkVqjH3qT3DvST7gUvAd06sA+8CPaDA+AgOERGkmvIKHItGU3GrAMvg1fA
q+A18Do4TMaSXJJPCkghKeIVEpOZk1Zkzk7PteQV5aZlFWaazekjCgqLcvo29IrNK7C5G+1OmjnK
aOxxT2TnpRnN/YxGXMnI35Xz1115V3bp2v5i/qpGl9Nur+BzJZ3cr4O3wTtAt3o10Qgb+j5o6wYf
kDySQLNoic3Rpsyz8Z6mnGzztCpLbA0uq8vG9pnKx+ATYbS/4XNwanDDl+CM0FAruLwwzTd8JDtH
xpPYE+A8+B5coG0XwQ/gR/DTFLfXnKn9TvHYqKI81vaOaU392ZNMJBNIMan63/uzOnfXr0lG8ceP
+GX8FfzBx/jfwL/B76SElJKyXvAnBBCSclJBJlHZBQ3WCi5D4/VfqHiA50X/BcmUPom8moAhVBMw
lFSSWJ80MBwO8e8ItW8YASX14rhBfny5o/dCKYwEk/6JjMZV6m9Xtv6VqH6BoiHFaetgDJTDYXA4
jIVxpJbUkalkOplJZq2DCqiEKpgA1VBDGsh1xEFcpJPMGxSFYZI3Ck+uFz/j3zWaPew2n75MAqCw
dnSY8p0OHmm5Tb7ExrpMFRQDNDtd7W6TraLV6WCrbO2dtImG1A5fzwDiqoKJV9K5m9pMVfMohGs3
CTY8z1Tkom44h4ewpslsA49jmv0tpvGstYk3KV9H68CFGL0LoUl73/9PC5lYZu2ytXhlLKD+RZ/Y
wctK9y5rWr345f97y6opvvqqaoq9juTFn1ZvyOCF46McBaGDVjfCu7oZ9eLX/u+trtTZQGXKd7oo
UHJ12RpZ91WWehWiQQu81rvA+nrxtf8VQOaz6wCdtQ9kmedlaa0Xp/9XLNutNgfPSIgdhXACxUyw
CI6D42ExaSRNhCXNa+BEWAJLaVptIa3E5kupdHw71Y0/QFX7oz89Vl7WVWtz2yg4zG+18vvOuiqt
jhZ2xnhbE5trtxe73Z0sjcDaywb5YdLgUXwy0F+747h0Cp+f0izZWYuC/cLXwRlXFX4mrIel0Era
iJ0K30403owC2T8rpi9Iy8hKT1Wmp2VkLpq2IDPLnJmqtJjTFvlZtkD7VVm2Qwdl2UGcpIOynC2w
THmuLH62Vy6LJSdt0ZQFOZnZqcqc7D5uXXDBVbkthIu82nUTj6Bdr4Cj3z2YXuddZXpmH4ul8Nar
srgN3k4FupN0kTmUxVyBhWHBmFaZIFC6VyBL+oh0Pqv7ud0HH7wqtxXwIcrtETKfLKDcFgrckm87
8Ot1XoHS0zMW1S2gvwN59cA1FIbCXnJ9N1xLyOB0sslrnIvrxeX/lXHyJ3ej3YsCSqydjsZWCopY
1mF0X35EhU/AZ4BuLXwSboZb4FPwacKRJeQGspTcuBZuhdvgs/A5uJ3cRG4mt5BbyR28Acv9FlbK
tjewrn7ESo1RzqdUfw/1uGZbS6fLl38jqvyIhybuLmrEFBmri/P6j81VHldno6fTxQ52V3oGK87L
tzq6rO7BHQKy2AsaVpPYyU1CKYSm+eK88k6P3ea4jI1/xQfhS7y+D5HbuuHL5HbvivgyyESHc45j
wMjJtiZPq3psxycDsTQ8DI/xO/8GfBMegUfJneQucje5Zw08Dk/At+DbZBm5l9xHHiCaqVOdzvYi
6oBO17R8lg/dXkhK5RNUVO3sKOHDqU+JBVR5GuFIXlxQ7ewTSFh3hdNt4xVXau1QjznvFQhMXZDO
e11GukUAm/BjHmJ9Qu4nsVPNlgkGe4fBWVvql/sU/GIQYIVn4Fkg6YZfkeXd8GvyID200MM5D9np
LtgcLf34zT/gPLwEJBvg9/ACvAh/gD/Cn+DP8BfyEHmYPEJWkkfJKrKadG+AvwIF9YHf4R/wTwSA
gvSQMOoLvWQNWUvW0efMKR4vvKQpZKrNXWi3tfAxjm6y0ExzDA37xe7JNhc1FzdVS+TAjn44JxGa
c/kyt4f12k1fo0BbZG232efVi6MGNpbSFGgXyjuXzUhNhXqJh+di6+Azm9uf2XKMlnrx6KYuT5OX
1HBZ98i8zDxzYVFaoWGE2ZJjyMjKzDTkZmdlGUaMyM/OTsvMy8wwW2rnjsiqz8qoFZLmFOHPiNQ0
n3pRBIqi4BxJkBRFkg1kI9nUi2QoGgLyGHmZwnNqpma6Q4PLcb7SHdVHVWc7nwSEzatiW/hMwNfm
rhhS3uFD7rIruqptHjvrtSUUDxxrkQIpkQolIDV5nDxDniO7yAt9h1+kQ8m8vIlIj5LIE+RJsrkX
paBUZCBbyFPkaV5e3RUzDBKPWpeTL6XQo+TfE+ZZG9uq2A6azry1gaS/pxZeaq32TlY9NljwlUag
1CKgvMKoURYaecUqrkGj0LVkK9lGnqUBXDiDAzBJWeM9OfhH5qNxV4wcj4rRBLKd7CA7+ZFiYWTl
yKtMXIGqLx8Oj6NaNJlGkOfJbqLxiXwMTaPU09EMvlrYZPVYyyOQtcF/DwQRZgICrxn1n93/PBEU
PFQ8bHisRptiycj2VcdDQkVh4UPqyqp8ehOKhdPLqnI9tKGh08O6CaJui6dUdTY2smwT23Q8QhIq
lcmvUkvviYwiDAnoiY4hgSSEiGrLqopoAKaU+U6703UiLl4RqlQlqGl7lW0+S2dtLrJbW9z0nQ89
6rE6QWUR4WK+Ok6N1MgDWFZAlTXFPLM8p73pmC5Rn3S1Eqdvwh59cn+FM9UQajSZqQyT+UAx3SdL
FV/RzzMDMSahlF1aul/InrRk+p6ZNagC15PJN47IobFhgGaaBJ31jEy+anu9eGhZ1UR2HtuU69uL
o9eOrnY5nR4CQTCIAMOAGhhAGsj23rdVgmmgATjBbOAGnWAxuAncBVZ4q1SrQS9YC9aDjWAL2A72
gZfBUfAu+BScAqfBGQhhID09D6NnUw00wAw4ChZT1FkGK2ANnAFnQRa6YCecD++G98L1cAd8Hu4T
tIygz7bHgEH/wf1kj/dQjurRrBn9NUpqfb20yQomUTXzb35jbkTX0ZMzNWYWNaMk1Ips1KT3kn1k
M3mR7F9H44IdtSMH/bXT6HCAHCQv0d8DfIxI+Htnrp7Xwf4jERWFEiX+M1GVZ579nyl5QO6lFMNj
aC5d3jw0n7d1vkzjhasnjIaXyCFBQwvRIkEZbA9ayNcmxNXOJus8pdWjzBiZZlZWlIrPCiGV44vK
Qwjma9D8+43AsRHG0n2LA7mwFw5Hd0A5jCEzyVQyi0jJ9WQ6eY3UkVo+5PZXeX/0AsJiv+YfQCuB
bj36F1qOHkQr0EPoYfQIOUzeIG+SI+QoOUaOr0ePolVoNRiClvOJmZwgb3Gwk4rxhjcva2byN1ze
qxzvWY3muYFXXtXWhgFALDcto9CSnptryE/PKzJk5BaOMOTmpmUbsnNy09NpR2ZRNvUQFWVQ7qLw
jm26Oh++YDtwEmH6/v4ah212JzuwgKrw7xj7F5KJ5X3LqHY67Q1WV7Hbd3oSkqCvz9qQN6hr2IIF
aWlZ9LRhyUzny/SWDDPF6TmZIxb58TnajHYC3Sa0BT2FnkbPoK1oG3oWPYe2ox3kbfIOeZe8R94n
H5APyUnyEfl4E7IDBdqN9qAX0F60jz7vR7yph5FPyKfkSw4O5WA0CePgMA4O5x1AluvmL92s/gs0
d4l1nrOT4kQxlbqq1TnHV9GgMJI20AWUWBtYe73Y8JfbVOOx2all57pYa19pWWDXx4rvu2wTBrEo
oOCmxTGIw3T+p4Bt6Gxp8Za0fdIJk9lY90xBuiJ6TKmwelp5NCksSJhLfOURXFDvMXTCX4VHb5HP
fAVa9C5w9KD30Pvkc/JFP+g4iT4ZXPRGn5Fscopkqscu/WUgTken0VeXUX5NKU/zlE7lIMrv0EU+
E59H36ML5Az5ipztRT+gC+gn8jU5S37j9yh20D1gnxaNXnX0HWz4irevx186vXJI3xnHP/2/MeZj
5+/oD/QnBhhiRL4h58i35Dtynny/DjM4AAfCUhxMffcCuUguUaf9lXdcwa6rPBQc8TDQRbEyzVVe
3MMfggoKvdJ5L65sXljE3w7TnoK8cX3i+MpApV44HOPb0nKHfV5lp8NBI2Ke3dnY5t1an8dUei9Q
4wZQeqtS3jvlFh83MfKtDUtxNFUtjsRRWEZ+ID+Sn3pxDFDgYeRn6hC/8GuI8gtaOLfD6qDgwnvr
Ui+20Pbx1i622EGty2q3z/P351fUCFbIT9hKAZmLdXjXJsT1wrlsYyeftAsdXTaX08EH9NymJl47
QpCn+dhrYVgJ2ropuq4gCTPNc7ObR2Q1WBqy03KyzGIw6OYuLTMnVTkiK70vIuBEbKRbhvU4CSfj
FLplBvJv8jv5g/xJznMQrMMmul8W+n86zuAgJDYOBvE/IRwM9d7me+UcsNxqejgX4qZwle4v5VBn
osqlQhc6+ATcJLhs3+4N4pHHNjtdbN8IgWUsv1H5pbx+Ot1XchvKd/tslx/gX+AoPJqeDfG1HETd
eAwHMf8pBE/stS53rnsgcT4upA6MCzjIdOMiDgYQzRVwF0/ApUDXgydCwMFAUkGf8ET6xL9oKvxE
Vbimf9paDgaTTH/XFDxVOL7+w9bMxLP6WVg5KOpn0YSb++Vs4WBY31kYX4ftfEmAGkM3budgeH9P
B3bxg2ZzcEi3V2J6sO+/bfdTzcHz/DEMz+eg2BfE8CLg6MXX48WYcDCCg1IORvXFMnwDvmlghEJb
8S3kfQ5K+BDVMXZgiMJ34LsHke7Ay8jHHIzkSW8ng0gfwA8OJMUr8C0clHnZCkG7L2Dzcdk/6lHc
zW/PKryagzEclPcABT25h9F/VOHDeVd3877uCwJ8KBewNXVURV/vgEgwiCLrf1ujFWTbiJ8Buo14
E34MP46fwE/izXgLfgo/zcFYDsZxMJ6DCg4qOajiYAIH1RzUbKS+t43GmUD6bwfeiXfh53n/4z+s
uUQucbCUg/UcnMXBVn59Yn4F/swmZCtZX/byhkbqP44mq6tphi/u+W+pI2uFU5fv4rGzoZ1STx0w
UCz1hjdvZco7g8Be6Wvq/+CGwlCqOvrgv1eL8AvUl4Cn2r3AYKDrvYxf5a3zFQ7S39c4mMgvR+u7
oxNgxF9N4WfxJj7KszjCQX03PsbBJKKpLrXa+vrfxu8DSS9+B7+L3+NgMgdTOJjaiz+gmj3JQQOv
zYm8aSUNmtUbkKtonKKgmn/sO0jZ+BQUNZjWF4Aubx/HOttZj8sXrT8HDd34FAeNfReI+Ev8HcW+
+Az+Cp/FX+Nv8Dn8LQdNHDRz0MLBNA6mc5AG4Mz1+Dz+Hl/AF/EPIB3/xMEsDmZz8BoOFnNwDBFz
cALRTOeRC3+o4Y8c0wZ8UUUTo3B8s3rz30Al0m0SgjHt4YNwmRdAy/3h+yp9w/19hXPpnvC20w9z
pw34dopy6ehssNsafSdrinwNjQbhmwHf+hnIBALJlUVoJoihWIEJ5eAIDubwdj+Sxgmhqv2i5GpV
7bcYMRNBGUoYKRPJRDEyJhoH8l8tXHaFOrNfVh7ieSn4a5CBSF1eTDPS3PJm/9j+Pg4WcpAG5vEc
HEUu1YtNfQhpkJ4ElsY+XNoHmLx2wAwHDb1MLBPHULcfzcE8DuZTi2BUTAK1iB8YDaOd2j9ljVcY
usccHMvB3KugUDH2HuOYJCZZyJb9Wy3ABS+HCqvN1cOk8Me7v6XxyQEBZhgtRRYX6KS+NsaCAxkt
Bwt4j8kdmCD5bwK+Z7KYbEA1Q/PnOAL+X6+3hDVdw4y6+lV4D3Mtv5SrdQkjxzBj68X6y3fmr7yg
h8nl2f3H9BQ/GuawDbzQI5tsTUU2h83d2n9vO3LAcZfJ4o+7VC3C5o+nQYChPlvCfxl2+cdVOWnm
PhzAlDKVQLeGKWPKmQpmEgfLOFjOwQoOTlrDVDHVyM5QfFHJwcnkAAenEE1dCdvsjbJTKm0trUK8
FeKQEMd5mNoXifsiuX+2GUwDP9tMpp6ZxVDUUcXBag7WcLB2Dc1EgXArTaY2mnpu8iXUWhoIeb14
7zO8+bPSOkfAVvRIOrjXFx2rGp18JUQ5qNNL4HTR1OJudNk6+NMjzV1XcudDml/WdsZJAz7j4GBd
Nw6kQvGfPVHjcTvtPvTIr9hP7WG6/MiGmcPBqT5kw8ynxzNmAbOQg9M4OKMP1DCLmSUD4QfdgKVe
5U/nocqCQVCFuYW5fRBtOXOnd5dmemk7BtEuY+4ddH3BPMAs7xPsQQ5a/YI9zAv2CLOSgw0cZPsF
W830DppsDbOWg40cbCKZU/qSvXosGQS8mE3ME4NGPcls5mAzB1v8gHggbFCPnSLUz04wW5ltzLN0
/HNgPLOD2VkvlvBVv5K+BF7mNaroFtZh6/R9heI9PM31CD0xHcKd7hVdHJxNKISmQd3zNvM8s5vO
sYd5gdlL53mO2Y+6mANYU9foOxbVdljpr2dao3AuE2ppSv83Rn/lntOcLpv/mZ+LYl83B68bmCQO
MS8JSYKDHRxs88d0YQde5yP0YeYN5k0O2jlI8bTjsgjdF5D/Ll6+L8RL538SLwepgvmcKmM/1oDx
WMNBF78ENwGCbGf4ALKD6o/ECpHuG+accG68eh1k8I71MN/yge4/JRdmOM98z19z/vOQHuYCz/0/
IRUW8wNdDFpO3uCD4RWFZuYS82uNF794a81ykABSQCYYCcZgE87EefREVoOnYytuxCx//sEOeta5
maLrXfhV/Dp+Ax/Bx/AJCv/epTjrKwqvzuHvKIi6iH/EPzNDmBRmBPXXJcz9zGZmC7ObWsTLzKvM
63TX32HeYz5gTjIfM58GiAIKAxwBGwK2BWwP2BmwO+CFgH0BbwS8HfBZwKmA0wFnAhMCUwKzAscE
FgZOCKwKnBXYEmgLbAtsD/QEdgXODZwfuDBwZeCewE8DzwaeC/wu8Pug8CBZUHyQOig1yBKUHpQZ
lB00Nig3KD+oJGhaUENQW5AjqCPIFXR70P1B3UEbgp4MOhj0RtCpoK+DfgkOCA4ODg0ODx4aHBEc
H6wMTgjWBM8Mbgv2BHcFzw2eH7ww+Mbgm4NvDb49+M7gu4N3Bp8JiQ4pCqkKqQ2pC5kWMiOkPsQd
sjCEC7kh5MaQm0PuD1kR8nDIypCekDUh60I2hDwb8krIuZCfQv4MZUIjQmWhMaHDQhWhqlB1qDZU
F2oKHRVaHDoxtDS0PHRSaFVoTWhDaFNoc2hr6HWh9lBHaEfo7aE7Qk+EficKFaWLxopyRXmiAlGp
qEJUKaoWzRZdL1osIqIlortF94iWie4TrRZ1i3pEa0SPibaKnhPtEO0SvS56W/SJ6BvRt6Lzogui
H8KMYdlhBWETw0rDysMmhdWFTQ2bHjYzbFZYS5gjbFnYY2HbwvaE7QvbH3Yw7FjY8bATYW+HfRz2
Z3hguC58VHhteGN4R7gr3BPeFT43fH74wvBbw28PvzP87vBl4feFPxC+PHxN+LrwDeGbhswa0j7E
OWT2EPfQ7KEFQ4uGjh86QRwlThBrxDqxXvxTBI4IiAiKCIkojqiNqIuYGjE94t6IVREbIjZFPB7x
ZMSWiB0RuyJ2R7wQsS9if8RHkgCJVHKNpEBSJimXTJewkhaJTdImaZd0SeZK5ksWSq6XEMmtkn9J
eiSbJdslOyXPS/ZI9kpekbwmOSx5U3JUclzyoeS05Lzkd2mgNFgaKg2TDpFGS+XS4dI4qUKqkiZL
06VjpcXSidJSabl0knSqdLp0pnSWtEHaJG2XzpFy0ruky6UrpA9LV0pXSTdIN0kflz4p3SJ9WrpL
ekB6WPq+9KT0Y+ln0lPS09KL0h+lP0svRU6MrItsjGQjWyJtkW2R7ZFzI+dHLoy8PpJELolcGrk6
8vnII5E/RQ2NiomSRw2PUkddGzUhqjSqPKoyqjqqNsoVtSDqlqhlUfdFPRC1PGpFVE/Umqh1URui
NkU9HvVc1P6okzJGFi6LkalkGplOppely8bKcmV5sgLZJFm1rFY2RTZNNkPWJuuULZHdJ3tAtly2
QvawbKVslaxb1ivbKntWtl22U/a8bI9sr+xF2QHZIdkR2QeyH6JF0crozOjS6OboBdHPR++PfjX6
RPSn0Weiz0Z/E/1t9I/RP0dfiv4t+vcYc8zEmKaY9pi5MfNjFsZcH0NilsQsjVkW82DMQzGPxDwa
szZmfczGmMdinoh5W87IzfIc+Vj5BPlk+Uz5LHmDvEneJm+XO+Wz5W75Qvn18qXyZfIH5Q/JH5E/
Kl8rXy/fKH9M/oT8WfkO+X75Efk78vfkH8hPyk/JT8vPyM/Kv5FflP97GBNri22L9cQuib019p7Y
lbGbYh+PfTJ2S+zTsVtjn43dH3sw9qXYV2Jfiz0c+2bs0dif4obHFcY542bHzY9bEnd73J1x/4pb
GdcTty3uubi9cfvjDsa9FHck7vO4L+K+jPsq7uu4c3HfxX0fdzHux7if45n4wPjg+ND46HhdvD4+
OT413hhvjk+Lz4jPjy+MHxc/Ib4kviy+Ir4yvjq+MX5N/MvxPyvkikxFhaJdMV9xt2KZ4j7FA4rl
ihWKhxUrFasU3YpexXbFTsXzij2KvYoXFQcVLyteVRxWHFEcU3yt+EMZqhypLFUuVN6qfET5mHKH
8nXle8oPlR8pP1V+rvxC+a3yovJH5c/KS6pAlUgVrhqqilTJVDGqYSq1yqzKVGWrclSjVWNVeaoC
ValqqsqqalSxqhaVQ9Whcqk8qi7VA6qNqtdV76lOq86ozqq+UX2rOq+6oPozASbghICEoISQBFFC
eII+IS9hesKchJsS1iVsSNiW8HzCnoS9CS8mvJLwWsLhhDcTjiZ8pY5Tj1NXqKvUNerJ6mZ1q3qx
+g71CvXD6pXqVepuda96nfoZ9bPq7epd6t3qver96oPqDzVAY9KUaWZp2jUdGremSzNPs0Bzp+Yh
zUrNak2vZp1mg+ZpzQuaA5qXNK9o3tAc1ZzQvK15R3NK86XmrOac5rzmguZPLdBCLdYO0yZqk7UG
rVmbrs3U5mkLteO1E7Vl2grtDO0sbYOW1bZqr9PO0c7XLtIS7Q3aG7X3aFdqV2t7tGu1G7SbtM9o
d2p3a/dq92sPao9p39G+p/1A+4n2M+0X2i+157W/65CO0QXqRLpwnVgn0Q3X6XUGnUln0WXpcnSj
dKN1k3QzdY26Zp1N59B16Fw6j+5e3VbdOd2vieGJ4kRpoixRnhibqEhMSNQm6hOvSbw2cWxiXmJB
YlFicWJJYnliZWJ1YksiSbwrcW3ilsRDiV8l/q4P1kfpY/TD9fF6lV6tn6iv00/Tz9Rb9U36Zn2b
fq5+sX6J/kb9Lfq79ffq79cv16/QH9Sf1P+o/yMJJjFJgUnSpIQkbZI+KSXJmGRJykjKTipKKk4q
SSpPqkyqSZqcNDVpepItqTPpnqQ1SXuTPko6mxyYLE2OTY5PViYnJGuSDcnm5PTkzOQRySOT85NL
kycn25MXJ9+V3J28O3lv8v7kQ8mvJL+W/HtKYEp4ijhFmiJLiUnRpphTslJyUkaljEmpTKlOmZGy
MIVLWZ3yRMrmlKdStqbsSzmQcijllZTjKZ+kfJ5yOuVMqj7VkjoutSS1IbUt9V+pD6ceSj2dejH1
x9SfU381YEOgIcQgMiQYTIYRhmsMow25hgJDqaHCUGWoMdQZphoaDe2GuYZ7DCsN6wwbDY8bNhue
Nuwy7Da8YNhn2G84aPjcCIxq4yhjsbHEWG6sNFYba43XGecY5xsXGhcblxiXGu803mt8wPig8SHj
euPjxieNW4zbjNuNu4y7jYeMx43vGt83fmj81HjK+KXxK+MF458mYIImbBKbpKYoU4xpuCnOpDOl
mIwmiyndNNZUaBpnKjaVmSaZqk21plkmm6nLtMC0yLTYtNR0s+k20x2mR03rTdtNh01fmpE5wBxk
DjWHm3VmkznLnGdmzbPNbnOXeZ55oXmZ+X7zcvND5pXmVeYN5s3mp83bzNvNO80vmV81HzYfMZ80
f2z+1HzK/L35B/NP5ksWbBFbpBaZJcZisWRYsiw5lmssBZZxlgmWEkuNZbFlqeVJy3OWk5bP0oLT
ItIi02RpMWnJaaa0TN8dPxL+Mr8NvuNPy/4fUEsHCMOeioDbJAAATTwAAFBLAwQKAAAAAAB5f3BH
AAAAAAAAAAAAAAAAKQAQAFRlc3RQcmludC9UZXN0UHJpbnQueGNvZGVwcm9qL3hjdXNlcmRhdGEv
VVgMAAD2SVZm70lWWuSIE1BLAwQKAAAAAACjgXBHAAAAAAAAAAAAAAAAQAAQAFRlc3RQcmludC9U
ZXN0UHJpbnQueGNvZGVwcm9qL3hjdXNlcmRhdGEvc3RraGFwdWdpbi54Y3VzZXJkYXRhZC9VWAwA
APZJVoLySVZa5IgTUEsDBAoAAAAAAO6BcEcAAAAAAAAAAAAAAABLABAAVGVzdFByaW50L1Rlc3RQ
cmludC54Y29kZXByb2oveGN1c2VyZGF0YS9zdGtoYXB1Z2luLnhjdXNlcmRhdGFkL3hjZGVidWdn
ZXIvVVgMAAD2SVYP80lWWuSIE1BLAwQUAAgACADugXBHAAAAAAAAAAAAAAAAZAAQAFRlc3RQcmlu
dC9UZXN0UHJpbnQueGNvZGVwcm9qL3hjdXNlcmRhdGEvc3RraGFwdWdpbi54Y3VzZXJkYXRhZC94
Y2RlYnVnZ2VyL0JyZWFrcG9pbnRzX3YyLnhjYmtwdGxpc3RVWAwAD/NJVg/zSVZa5IgTs7GvyM1R
KEstKs7Mz7NVMtQzUFJIzUvOT8nMS7dVCg1x07VQsrfjsnEqTc5OLeFSUFAoqSxIVbBVUDJUAvGg
OkECRkC9QJX6EKV2XABQSwcI/wvgRk0AAABbAAAAUEsDBAoAAAAAAHp/cEcAAAAAAAAAAAAAAABK
ABAAVGVzdFByaW50L1Rlc3RQcmludC54Y29kZXByb2oveGN1c2VyZGF0YS9zdGtoYXB1Z2luLnhj
dXNlcmRhdGFkL3hjc2NoZW1lcy9VWAwAAPZJVmfvSVZa5IgTUEsDBBQACAAIAHp/cEcAAAAAAAAA
AAAAAABcABAAVGVzdFByaW50L1Rlc3RQcmludC54Y29kZXByb2oveGN1c2VyZGF0YS9zdGtoYXB1
Z2luLnhjdXNlcmRhdGFkL3hjc2NoZW1lcy9UZXN0UHJpbnQueGNzY2hlbWVVWAwAau9JVmfvSVZa
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
DAAAAAAAAAAAQKSBBgQAAFRlc3RQcmludC8uZ2l0L2Rlc2NyaXB0aW9uVVgIAGbvSVZm70lWUEsB
AhUDFAAIAAgAeX9wRytpc6cZAAAAFwAAABMADAAAAAAAAAAAQKSBnQQAAFRlc3RQcmludC8uZ2l0
L0hFQURVWAgAAPZJVmbvSVZQSwECFQMKAAAAAAB5f3BHAAAAAAAAAAAAAAAAFQAMAAAAAAAAAABA
7UEHBQAAVGVzdFByaW50Ly5naXQvaG9va3MvVVgIAGbvSVZm70lWUEsBAhUDFAAIAAgAeX9wR4jh
zdCDAAAAsQAAACIADAAAAAAAAAAAQO2BSgUAAFRlc3RQcmludC8uZ2l0L2hvb2tzL1JFQURNRS5z
YW1wbGVVWAgAZu9JVmbvSVZQSwECFQMUAAgACAB7f3BHGjKWc9wDAAAuBwAAFAAMAAAAAAAAAABA
pIEtBgAAVGVzdFByaW50Ly5naXQvaW5kZXhVWAgAAPZJVmrvSVZQSwECFQMKAAAAAAB5f3BHAAAA
AAAAAAAAAAAAFAAMAAAAAAAAAABA7UFbCgAAVGVzdFByaW50Ly5naXQvaW5mby9VWAgAZu9JVmbv
SVZQSwECFQMUAAgACAB5f3BH4/v6hCYAAAAoAAAAGwAMAAAAAAAAAABApIGdCgAAVGVzdFByaW50
Ly5naXQvaW5mby9leGNsdWRlVVgIAAD2SVZm70lWUEsBAhUDCgAAAAAAhINwRwAAAAAAAAAAAAAA
ABgADAAAAAAAAAAAQP1BHAsAAF9fTUFDT1NYL1Rlc3RQcmludC8uZ2l0L1VYCAAI9klWCPZJVlBL
AQIVAwoAAAAAAISDcEcAAAAAAAAAAAAAAAAdAAwAAAAAAAAAAED9QWILAABfX01BQ09TWC9UZXN0
UHJpbnQvLmdpdC9pbmZvL1VYCAAI9klWCPZJVlBLAQIVAxQACAAIAHl/cEdwGo3AXQAAAKsAAAAm
AAwAAAAAAAAAAECkga0LAABfX01BQ09TWC9UZXN0UHJpbnQvLmdpdC9pbmZvLy5fZXhjbHVkZVVY
CAAA9klWZu9JVlBLAQIVAwoAAAAAAHp/cEcAAAAAAAAAAAAAAAAUAAwAAAAAAAAAAEDtQW4MAABU
ZXN0UHJpbnQvLmdpdC9sb2dzL1VYCABn70lWZ+9JVlBLAQIVAxQACAAIAHp/cEcqPNTPiQAAAMkA
AAAYAAwAAAAAAAAAAECkgbAMAABUZXN0UHJpbnQvLmdpdC9sb2dzL0hFQURVWAgAZ+9JVmfvSVZQ
SwECFQMKAAAAAAB6f3BHAAAAAAAAAAAAAAAAGQAMAAAAAAAAAABA7UGPDQAAVGVzdFByaW50Ly5n
aXQvbG9ncy9yZWZzL1VYCABn70lWZ+9JVlBLAQIVAwoAAAAAAHp/cEcAAAAAAAAAAAAAAAAfAAwA
AAAAAAAAAEDtQdYNAABUZXN0UHJpbnQvLmdpdC9sb2dzL3JlZnMvaGVhZHMvVVgIAGfvSVZn70lW
UEsBAhUDFAAIAAgAen9wRyo81M+JAAAAyQAAACUADAAAAAAAAAAAQKSBIw4AAFRlc3RQcmludC8u
Z2l0L2xvZ3MvcmVmcy9oZWFkcy9tYXN0ZXJVWAgAZ+9JVmfvSVZQSwECFQMKAAAAAAB6f3BHAAAA
AAAAAAAAAAAAFwAMAAAAAAAAAABA7UEPDwAAVGVzdFByaW50Ly5naXQvb2JqZWN0cy9VWAgAZu9J
VmfvSVZQSwECFQMKAAAAAAB6f3BHAAAAAAAAAAAAAAAAGgAMAAAAAAAAAABA7UFUDwAAVGVzdFBy
aW50Ly5naXQvb2JqZWN0cy8wMS9VWAgAZ+9JVmfvSVZQSwECFQMUAAgACAB6f3BHXyshWegAAADj
AAAAQAAMAAAAAAAAAABAJIGcDwAAVGVzdFByaW50Ly5naXQvb2JqZWN0cy8wMS85Y2I5ZTQyMGYy
YzdhMGQ1MTQ3MTQzMTlmOTNhNWEzOTI1M2NjOVVYCABn70lWZ+9JVlBLAQIVAwoAAAAAAHp/cEcA
AAAAAAAAAAAAAAAaAAwAAAAAAAAAAEDtQQIRAABUZXN0UHJpbnQvLmdpdC9vYmplY3RzLzA4L1VY
CABn70lWZ+9JVlBLAQIVAxQACAAIAHp/cEfNWInFIQEAABwBAABAAAwAAAAAAAAAAEAkgUoRAABU
ZXN0UHJpbnQvLmdpdC9vYmplY3RzLzA4LzI4MjYzNDhlMTdiYjJiZTU0YWUzNjA5YjUwN2NlMzAx
MDQ0ZjIyVVgIAPX1SVZn70lWUEsBAhUDCgAAAAAAen9wRwAAAAAAAAAAAAAAABoADAAAAAAAAAAA
QO1B6RIAAFRlc3RQcmludC8uZ2l0L29iamVjdHMvMjAvVVgIAGfvSVZn70lWUEsBAhUDFAAIAAgA
en9wR3gVVi4MAQAABwEAAEAADAAAAAAAAAAAQCSBMRMAAFRlc3RQcmludC8uZ2l0L29iamVjdHMv
MjAvYWE1ZjJjYjZjZjU3NGY4ZDk3MWI1YmE4M2YyMTc5MDgzNzkyOTRVWAgAZ+9JVmfvSVZQSwEC
FQMKAAAAAAB6f3BHAAAAAAAAAAAAAAAAGgAMAAAAAAAAAABA7UG7FAAAVGVzdFByaW50Ly5naXQv
b2JqZWN0cy8yZS9VWAgAZ+9JVmfvSVZQSwECFQMUAAgACAB6f3BH4FCHs/YCAADxAgAAQAAMAAAA
AAAAAABAJIEDFQAAVGVzdFByaW50Ly5naXQvb2JqZWN0cy8yZS83MjFlMTgzM2YwM2JiMGUxYjk2
MmE4NDQ5MWQ3ZTQzZTNmZWY5Y1VYCAD19UlWZ+9JVlBLAQIVAwoAAAAAAHp/cEcAAAAAAAAAAAAA
AAAaAAwAAAAAAAAAAEDtQXcYAABUZXN0UHJpbnQvLmdpdC9vYmplY3RzLzM0L1VYCABn70lWZ+9J
VlBLAQIVAxQACAAIAHp/cEcGp1HFmQMAAJQDAABAAAwAAAAAAAAAAEAkgb8YAABUZXN0UHJpbnQv
LmdpdC9vYmplY3RzLzM0LzE1MWU3YWY0ZDE2MjBhNWQ1YzAzNDJhOTE3M2RlMTc2ZWI1ZjgyVVgI
AGfvSVZn70lWUEsBAhUDCgAAAAAAen9wRwAAAAAAAAAAAAAAABoADAAAAAAAAAAAQO1B1hwAAFRl
c3RQcmludC8uZ2l0L29iamVjdHMvMzYvVVgIAGfvSVZn70lWUEsBAhUDFAAIAAgAen9wR5V5l1TO
AAAAyQAAAEAADAAAAAAAAAAAQCSBHh0AAFRlc3RQcmludC8uZ2l0L29iamVjdHMvMzYvZDJjODBk
ODg5MzE3OGQ3ZTFmMjk2NDA4NWIyNzM5NTliZmRjMjhVWAgAZ+9JVmfvSVZQSwECFQMKAAAAAAB6
f3BHAAAAAAAAAAAAAAAAGgAMAAAAAAAAAABA7UFqHgAAVGVzdFByaW50Ly5naXQvb2JqZWN0cy80
MC9VWAgAZ+9JVmfvSVZQSwECFQMUAAgACAB6f3BH9EC7mBwCAAAXAgAAQAAMAAAAAAAAAABAJIGy
HgAAVGVzdFByaW50Ly5naXQvb2JqZWN0cy80MC9jNjIxNWQ5MDY3MzZkN2IyYTQzOWMxN2NmOWVl
MDc3NjU4MDQ3NFVYCAD19UlWZ+9JVlBLAQIVAwoAAAAAAHp/cEcAAAAAAAAAAAAAAAAaAAwAAAAA
AAAAAEDtQUwhAABUZXN0UHJpbnQvLmdpdC9vYmplY3RzLzU0L1VYCABn70lWZ+9JVlBLAQIVAxQA
CAAIAHp/cEci9eB7ZAAAAF8AAABAAAwAAAAAAAAAAEAkgZQhAABUZXN0UHJpbnQvLmdpdC9vYmpl
Y3RzLzU0LzhiZTI5NzAyOTg2ODQxMzk5MWI3ZTAyOTAyODJiM2RlMWZhMmRkVVgIAPX1SVZn70lW
UEsBAhUDCgAAAAAAen9wRwAAAAAAAAAAAAAAABoADAAAAAAAAAAAQO1BdiIAAFRlc3RQcmludC8u
Z2l0L29iamVjdHMvNTUvVVgIAGfvSVZn70lWUEsBAhUDFAAIAAgAen9wR2CA3RlKAAAARQAAAEAA
DAAAAAAAAAAAQCSBviIAAFRlc3RQcmludC8uZ2l0L29iamVjdHMvNTUvOTA4YjMwZDFmZTZiOTgz
YmVhN2I0MWJlZWYwODhjZWQzNDdlYjNVWAgA9fVJVmfvSVZQSwECFQMKAAAAAAB6f3BHAAAAAAAA
AAAAAAAAGgAMAAAAAAAAAABA7UGGIwAAVGVzdFByaW50Ly5naXQvb2JqZWN0cy82MC9VWAgAZ+9J
VmfvSVZQSwECFQMUAAgACAB6f3BHquNQH0MBAAA+AQAAQAAMAAAAAAAAAABAJIHOIwAAVGVzdFBy
aW50Ly5naXQvb2JqZWN0cy82MC9kYjdiMTBlYjMyOGVlOWMzNWY3YzMxNDc5OTA2Njk0MTdmNzQ5
NVVYCAD19UlWZ+9JVlBLAQIVAwoAAAAAAHp/cEcAAAAAAAAAAAAAAAAaAAwAAAAAAAAAAEDtQY8l
AABUZXN0UHJpbnQvLmdpdC9vYmplY3RzLzY4L1VYCABn70lWZ+9JVlBLAQIVAxQACAAIAHp/cEck
gWfEiAAAAIMAAABAAAwAAAAAAAAAAEAkgdclAABUZXN0UHJpbnQvLmdpdC9vYmplY3RzLzY4LzE2
NGExYzQ0ODlhYzM2ZmMwMzI0ZDNhNDY5M2U1Y2RiOGMzZjQ2VVgIAPX1SVZn70lWUEsBAhUDCgAA
AAAAen9wRwAAAAAAAAAAAAAAABoADAAAAAAAAAAAQO1B3SYAAFRlc3RQcmludC8uZ2l0L29iamVj
dHMvNjkvVVgIAGfvSVZn70lWUEsBAhUDFAAIAAgAen9wR/KeqyNsAAAAZwAAAEAADAAAAAAAAAAA
QCSBJScAAFRlc3RQcmludC8uZ2l0L29iamVjdHMvNjkvMDhlNzg5ZjY1OWU4NGFlYTMxZmMxYTli
ZjUyZjYyYTQ5NzdmY2JVWAgA9fVJVmfvSVZQSwECFQMKAAAAAAB6f3BHAAAAAAAAAAAAAAAAGgAM
AAAAAAAAAABA7UEPKAAAVGVzdFByaW50Ly5naXQvb2JqZWN0cy83Mi9VWAgAZ+9JVmfvSVZQSwEC
FQMUAAgACAB6f3BHNaMqvbAAAACrAAAAQAAMAAAAAAAAAABAJIFXKAAAVGVzdFByaW50Ly5naXQv
b2JqZWN0cy83Mi82MjA4ZTkzZGE2NDQ5MGNiYjI4OGFkM2Q4MmIwZDZlZDBlN2JmOFVYCAAA9klW
Z+9JVlBLAQIVAwoAAAAAAHp/cEcAAAAAAAAAAAAAAAAaAAwAAAAAAAAAAEDtQYUpAABUZXN0UHJp
bnQvLmdpdC9vYmplY3RzLzdkL1VYCABn70lWZ+9JVlBLAQIVAxQACAAIAHp/cEfV0/yntgAAALEA
AABAAAwAAAAAAAAAAEAkgc0pAABUZXN0UHJpbnQvLmdpdC9vYmplY3RzLzdkLzBhZTkxMzBhNmJj
YjI0MGMxOTc1MjI5ODI0NmQ0ZjQzM2I0NjIyVVgIAGfvSVZn70lWUEsBAhUDCgAAAAAAen9wRwAA
AAAAAAAAAAAAABoADAAAAAAAAAAAQO1BASsAAFRlc3RQcmludC8uZ2l0L29iamVjdHMvODUvVVgI
AGfvSVZn70lWUEsBAhUDFAAIAAgAen9wR2Jtd9FiCgAAXQoAAEAADAAAAAAAAAAAQCSBSSsAAFRl
c3RQcmludC8uZ2l0L29iamVjdHMvODUvMjQxYTc2MDc1MmJhN2Y5ZTc4Nzc3ZjBlY2FlMWVlZTkw
MTIwODdVWAgA9fVJVmfvSVZQSwECFQMKAAAAAAB6f3BHAAAAAAAAAAAAAAAAGgAMAAAAAAAAAABA
7UEpNgAAVGVzdFByaW50Ly5naXQvb2JqZWN0cy9hMS9VWAgAZ+9JVmfvSVZQSwECFQMUAAgACAB6
f3BHQts7yFoAAABVAAAAQAAMAAAAAAAAAABAJIFxNgAAVGVzdFByaW50Ly5naXQvb2JqZWN0cy9h
MS9mYzU3N2M5YzRkMjI3YTkwY2Q5OTY3ZjBiNTc5ZWRiODE4Zjk0MFVYCAAA9klWZ+9JVlBLAQIV
AwoAAAAAAHp/cEcAAAAAAAAAAAAAAAAaAAwAAAAAAAAAAEDtQUk3AABUZXN0UHJpbnQvLmdpdC9v
YmplY3RzL2FiL1VYCABn70lWZ+9JVlBLAQIVAxQACAAIAHp/cEd3plrKRQAAAEAAAABAAAwAAAAA
AAAAAEAkgZE3AABUZXN0UHJpbnQvLmdpdC9vYmplY3RzL2FiL2RlMTQ5YzlkYWEyMWU4Yzc1YmU1
ZmI1ODZjMzRiZDk0Y2Q3MzQwVVgIAPX1SVZn70lWUEsBAhUDCgAAAAAAen9wRwAAAAAAAAAAAAAA
ABoADAAAAAAAAAAAQO1BVDgAAFRlc3RQcmludC8uZ2l0L29iamVjdHMvYjAvVVgIAGfvSVZn70lW
UEsBAhUDFAAIAAgAen9wRzKxT/A+AAAAOQAAAEAADAAAAAAAAAAAQCSBnDgAAFRlc3RQcmludC8u
Z2l0L29iamVjdHMvYjAvNDM2NDA4OWZkYzY0ZmUzYjgxYmNkNDE0NjJkZDU1ZWRiN2EwMDFVWAgA
9fVJVmfvSVZQSwECFQMKAAAAAAB6f3BHAAAAAAAAAAAAAAAAGgAMAAAAAAAAAABA7UFYOQAAVGVz
dFByaW50Ly5naXQvb2JqZWN0cy9iMi9VWAgAZ+9JVmfvSVZQSwECFQMUAAgACAB6f3BH89Cfx4wA
AACHAAAAQAAMAAAAAAAAAABAJIGgOQAAVGVzdFByaW50Ly5naXQvb2JqZWN0cy9iMi9kMTExYzli
MDNjNWZhYmYyZmNhNzcyYmY3NmM4ZjY1Y2VmY2QzZVVYCABn70lWZ+9JVlBLAQIVAwoAAAAAAHp/
cEcAAAAAAAAAAAAAAAAaAAwAAAAAAAAAAEDtQao6AABUZXN0UHJpbnQvLmdpdC9vYmplY3RzL2I2
L1VYCABn70lWZ+9JVlBLAQIVAxQACAAIAHp/cEd8vCGYNgEAADEBAABAAAwAAAAAAAAAAEAkgfI6
AABUZXN0UHJpbnQvLmdpdC9vYmplY3RzL2I2LzdiYWQwYzM5NDI1ZmE2MGNiZTc1MmEzZjVlODA2
ZWYwNWM3MjE4VVgIAGfvSVZn70lWUEsBAhUDCgAAAAAAen9wRwAAAAAAAAAAAAAAABoADAAAAAAA
AAAAQO1BpjwAAFRlc3RQcmludC8uZ2l0L29iamVjdHMvYzIvVVgIAGfvSVZn70lWUEsBAhUDFAAI
AAgAen9wR2Wj2/I4AAAAMwAAAEAADAAAAAAAAAAAQCSB7jwAAFRlc3RQcmludC8uZ2l0L29iamVj
dHMvYzIvMjRjMGRkYmQzMWQ3MTg2YzBhYWI4ZDRkNzVhNjdjMTZmMGViYmVVWAgA9fVJVmfvSVZQ
SwECFQMKAAAAAAB6f3BHAAAAAAAAAAAAAAAAGgAMAAAAAAAAAABA7UGkPQAAVGVzdFByaW50Ly5n
aXQvb2JqZWN0cy9kYi9VWAgAZ+9JVmfvSVZQSwECFQMUAAgACAB6f3BHmU8wJUAAAAA7AAAAQAAM
AAAAAAAAAABAJIHsPQAAVGVzdFByaW50Ly5naXQvb2JqZWN0cy9kYi8zZjBjZTE2M2M4MDMzYTE3
NWQyN2RlNmE0ZTk2YWFkYzExNTYyNVVYCAD19UlWZ+9JVlBLAQIVAwoAAAAAAHp/cEcAAAAAAAAA
AAAAAAAaAAwAAAAAAAAAAEDtQao+AABUZXN0UHJpbnQvLmdpdC9vYmplY3RzL2RkL1VYCABn70lW
Z+9JVlBLAQIVAxQACAAIAHp/cEf/Lg1vSwMAAEYDAABAAAwAAAAAAAAAAEAkgfI+AABUZXN0UHJp
bnQvLmdpdC9vYmplY3RzL2RkL2VkZDg1OWY3MjQ5Y2ZiMDk4ZDljMzg4ZTVlYjhhMWI1MzJhMDMy
VVgIAGfvSVZn70lWUEsBAhUDCgAAAAAAen9wRwAAAAAAAAAAAAAAABoADAAAAAAAAAAAQO1Bu0IA
AFRlc3RQcmludC8uZ2l0L29iamVjdHMvZjUvVVgIAGfvSVZn70lWUEsBAhUDFAAIAAgAen9wRziL
h5vUAgAAzwIAAEAADAAAAAAAAAAAQCSBA0MAAFRlc3RQcmludC8uZ2l0L29iamVjdHMvZjUvNmQy
ZjNiYjU2ZTg0NzRkNDkzOTMwMDhiZTc0NDk4NmJkNDFjM2NVWAgAZ+9JVmfvSVZQSwECFQMKAAAA
AAB5f3BHAAAAAAAAAAAAAAAAHAAMAAAAAAAAAABA7UFVRgAAVGVzdFByaW50Ly5naXQvb2JqZWN0
cy9pbmZvL1VYCABm70lWZu9JVlBLAQIVAwoAAAAAAHl/cEcAAAAAAAAAAAAAAAAcAAwAAAAAAAAA
AEDtQZ9GAABUZXN0UHJpbnQvLmdpdC9vYmplY3RzL3BhY2svVVgIAAD2SVZm70lWUEsBAhUDCgAA
AAAAeX9wRwAAAAAAAAAAAAAAABQADAAAAAAAAAAAQO1B6UYAAFRlc3RQcmludC8uZ2l0L3JlZnMv
VVgIAAD2SVZm70lWUEsBAhUDCgAAAAAAen9wRwAAAAAAAAAAAAAAABoADAAAAAAAAAAAQO1BK0cA
AFRlc3RQcmludC8uZ2l0L3JlZnMvaGVhZHMvVVgIAFv0SVZn70lWUEsBAhUDFAAIAAgAen9wR65Z
J14pAAAAKQAAACAADAAAAAAAAAAAQKSBc0cAAFRlc3RQcmludC8uZ2l0L3JlZnMvaGVhZHMvbWFz
dGVyVVgIAAD2SVZn70lWUEsBAhUDCgAAAAAAeX9wRwAAAAAAAAAAAAAAABkADAAAAAAAAAAAQO1B
+kcAAFRlc3RQcmludC8uZ2l0L3JlZnMvdGFncy9VWAgAW/RJVmbvSVZQSwECFQMKAAAAAAB8g3BH
AAAAAAAAAAAAAAAAFAAMAAAAAAAAAABA7UFBSAAAVGVzdFByaW50L1Rlc3RQcmludC9VWAgAAPZJ
Vvz1SVZQSwECFQMUAAgACAB8g3BHmPBpGdsAAAAEGAAAHQAMAAAAAAAAAABApIGDSAAAVGVzdFBy
aW50L1Rlc3RQcmludC8uRFNfU3RvcmVVWAgA/PVJVvz1SVZQSwECFQMKAAAAAACEg3BHAAAAAAAA
AAAAAAAAHQAMAAAAAAAAAABA/UG5SQAAX19NQUNPU1gvVGVzdFByaW50L1Rlc3RQcmludC9VWAgA
CPZJVgj2SVZQSwECFQMUAAgACAB8g3BH9BnXvDQAAAB4AAAAKAAMAAAAAAAAAABApIEESgAAX19N
QUNPU1gvVGVzdFByaW50L1Rlc3RQcmludC8uXy5EU19TdG9yZVVYCAD89UlW/PVJVlBLAQIVAxQA
CAAIAHl/cEdfbelZ1AAAABwBAAAhAAwAAAAAAAAAAECkgZ5KAABUZXN0UHJpbnQvVGVzdFByaW50
L0FwcERlbGVnYXRlLmhVWAgAAvNJVmXvSVZQSwECFQMUAAgACAB5f3BHcBqNwF0AAACrAAAALAAM
AAAAAAAAAABApIHRSwAAX19NQUNPU1gvVGVzdFByaW50L1Rlc3RQcmludC8uX0FwcERlbGVnYXRl
LmhVWAgAAvNJVmXvSVZQSwECFQMUAAgACAB5f3BHv7NJG14DAADkBwAAIQAMAAAAAAAAAABApIGY
TAAAVGVzdFByaW50L1Rlc3RQcmludC9BcHBEZWxlZ2F0ZS5tVVgIAJ7ySVZl70lWUEsBAhUDFAAI
AAgAeX9wR3AajcBdAAAAqwAAACwADAAAAAAAAAAAQKSBVVAAAF9fTUFDT1NYL1Rlc3RQcmludC9U
ZXN0UHJpbnQvLl9BcHBEZWxlZ2F0ZS5tVVgIAJ7ySVZl70lWUEsBAhUDCgAAAAAAeX9wRwAAAAAA
AAAAAAAAACQADAAAAAAAAAAAQO1BHFEAAFRlc3RQcmludC9UZXN0UHJpbnQvQXNzZXRzLnhjYXNz
ZXRzL1VYCAAA9klWZe9JVlBLAQIVAwoAAAAAAHl/cEcAAAAAAAAAAAAAAAA3AAwAAAAAAAAAAEDt
QW5RAABUZXN0UHJpbnQvVGVzdFByaW50L0Fzc2V0cy54Y2Fzc2V0cy9BcHBJY29uLmFwcGljb25z
ZXQvVVgIAAD2SVZl70lWUEsBAhUDFAAIAAgAeX9wR/pGKbWxAAAANQQAAEQADAAAAAAAAAAAQKSB
01EAAFRlc3RQcmludC9UZXN0UHJpbnQvQXNzZXRzLnhjYXNzZXRzL0FwcEljb24uYXBwaWNvbnNl
dC9Db250ZW50cy5qc29uVVgIAP31SVZl70lWUEsBAhUDCgAAAAAAhINwRwAAAAAAAAAAAAAAAC0A
DAAAAAAAAAAAQP1BBlMAAF9fTUFDT1NYL1Rlc3RQcmludC9UZXN0UHJpbnQvQXNzZXRzLnhjYXNz
ZXRzL1VYCAAI9klWCPZJVlBLAQIVAwoAAAAAAISDcEcAAAAAAAAAAAAAAABAAAwAAAAAAAAAAED9
QWFTAABfX01BQ09TWC9UZXN0UHJpbnQvVGVzdFByaW50L0Fzc2V0cy54Y2Fzc2V0cy9BcHBJY29u
LmFwcGljb25zZXQvVVgIAAj2SVYI9klWUEsBAhUDFAAIAAgAeX9wR3AajcBdAAAAqwAAAE8ADAAA
AAAAAAAAQKSBz1MAAF9fTUFDT1NYL1Rlc3RQcmludC9UZXN0UHJpbnQvQXNzZXRzLnhjYXNzZXRz
L0FwcEljb24uYXBwaWNvbnNldC8uX0NvbnRlbnRzLmpzb25VWAgA/fVJVmXvSVZQSwECFQMKAAAA
AADPgXBHAAAAAAAAAAAAAAAAHwAMAAAAAAAAAABA7UG5VAAAVGVzdFByaW50L1Rlc3RQcmludC9C
YXNlLmxwcm9qL1VYCAAA9klW1vJJVlBLAQIVAxQACAAIAM+BcEcMfDNwxgIAAKUGAAA2AAwAAAAA
AAAAAECkgQZVAABUZXN0UHJpbnQvVGVzdFByaW50L0Jhc2UubHByb2ovTGF1bmNoU2NyZWVuLnN0
b3J5Ym9hcmRVWAgA+vVJVtbySVZQSwECFQMUAAgACAB5f3BHLt9Ra50CAAAnBgAALgAMAAAAAAAA
AABApIFAWAAAVGVzdFByaW50L1Rlc3RQcmludC9CYXNlLmxwcm9qL01haW4uc3Rvcnlib2FyZFVY
CAAI9klWZe9JVlBLAQIVAwoAAAAAAISDcEcAAAAAAAAAAAAAAAAoAAwAAAAAAAAAAED9QUlbAABf
X01BQ09TWC9UZXN0UHJpbnQvVGVzdFByaW50L0Jhc2UubHByb2ovVVgIAAj2SVYI9klWUEsBAhUD
FAAIAAgAeX9wR3AajcBdAAAAqwAAADkADAAAAAAAAAAAQKSBn1sAAF9fTUFDT1NYL1Rlc3RQcmlu
dC9UZXN0UHJpbnQvQmFzZS5scHJvai8uX01haW4uc3Rvcnlib2FyZFVYCAAI9klWZe9JVlBLAQIV
AxQACAAIAM+BcEdZRnf3IwIAADkGAAAeAAwAAAAAAAAAAECkgXNcAABUZXN0UHJpbnQvVGVzdFBy
aW50L0luZm8ucGxpc3RVWAgA/fVJVtbySVZQSwECFQMUAAgACADPgXBHZmGaWnMAAADVAAAAKQAM
AAAAAAAAAABApIHyXgAAX19NQUNPU1gvVGVzdFByaW50L1Rlc3RQcmludC8uX0luZm8ucGxpc3RV
WAgA/fVJVtbySVZQSwECFQMUAAgACAB5f3BHoeR4PfcAAABPAQAAGgAMAAAAAAAAAABApIHMXwAA
VGVzdFByaW50L1Rlc3RQcmludC9tYWluLm1VWAgACvNJVmXvSVZQSwECFQMUAAgACAB5f3BHcBqN
wF0AAACrAAAAJQAMAAAAAAAAAABApIEbYQAAX19NQUNPU1gvVGVzdFByaW50L1Rlc3RQcmludC8u
X21haW4ubVVYCAAK80lWZe9JVlBLAQIVAxQACAAIAHl/cEfnqZ7EpAAAAN4AAAAkAAwAAAAAAAAA
AECkgdthAABUZXN0UHJpbnQvVGVzdFByaW50L1ZpZXdDb250cm9sbGVyLmhVWAgAVPRJVmXvSVZQ
SwECFQMUAAgACAB5f3BHcBqNwF0AAACrAAAALwAMAAAAAAAAAABApIHhYgAAX19NQUNPU1gvVGVz
dFByaW50L1Rlc3RQcmludC8uX1ZpZXdDb250cm9sbGVyLmhVWAgAVPRJVmXvSVZQSwECFQMUAAgA
CACagnBHnpKyhZsCAABxBQAAJAAMAAAAAAAAAABApIGrYwAAVGVzdFByaW50L1Rlc3RQcmludC9W
aWV3Q29udHJvbGxlci5tVVgIAPr1SVZU9ElWUEsBAhUDFAAIAAgAmoJwR3AajcBdAAAAqwAAAC8A
DAAAAAAAAAAAQKSBqGYAAF9fTUFDT1NYL1Rlc3RQcmludC9UZXN0UHJpbnQvLl9WaWV3Q29udHJv
bGxlci5tVVgIAPr1SVZU9ElWUEsBAhUDCgAAAAAAMIFwRwAAAAAAAAAAAAAAAB4ADAAAAAAAAAAA
QO1BcmcAAFRlc3RQcmludC9UZXN0UHJpbnQueGNvZGVwcm9qL1VYCAAI9klWq/FJVlBLAQIVAxQA
CAAIADCBcEfH+InVlgkAAG8xAAAtAAwAAAAAAAAAAECkgb5nAABUZXN0UHJpbnQvVGVzdFByaW50
Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2pVWAgA9fVJVqvxSVZQSwECFQMKAAAAAAB5f3BHAAAA
AAAAAAAAAAAAMgAMAAAAAAAAAABA7UG/cQAAVGVzdFByaW50L1Rlc3RQcmludC54Y29kZXByb2ov
cHJvamVjdC54Y3dvcmtzcGFjZS9VWAgACPZJVmXvSVZQSwECFQMUAAgACAB5f3BH4G0fx3UAAACa
AAAASgAMAAAAAAAAAABApIEfcgAAVGVzdFByaW50L1Rlc3RQcmludC54Y29kZXByb2ovcHJvamVj
dC54Y3dvcmtzcGFjZS9jb250ZW50cy54Y3dvcmtzcGFjZWRhdGFVWAgAZ+9JVmXvSVZQSwECFQMK
AAAAAAB5f3BHAAAAAAAAAAAAAAAAPQAMAAAAAAAAAABA7UEccwAAVGVzdFByaW50L1Rlc3RQcmlu
dC54Y29kZXByb2ovcHJvamVjdC54Y3dvcmtzcGFjZS94Y3VzZXJkYXRhL1VYCAAA9klWZe9JVlBL
AQIVAwoAAAAAAHyDcEcAAAAAAAAAAAAAAABUAAwAAAAAAAAAAEDtQYdzAABUZXN0UHJpbnQvVGVz
dFByaW50Lnhjb2RlcHJvai9wcm9qZWN0Lnhjd29ya3NwYWNlL3hjdXNlcmRhdGEvc3RraGFwdWdp
bi54Y3VzZXJkYXRhZC9VWAgAAPZJVvv1SVZQSwECFQMUAAgACAB8g3BHw56KgNskAABNPAAAcgAM
AAAAAAAAAABApIEJdAAAVGVzdFByaW50L1Rlc3RQcmludC54Y29kZXByb2ovcHJvamVjdC54Y3dv
cmtzcGFjZS94Y3VzZXJkYXRhL3N0a2hhcHVnaW4ueGN1c2VyZGF0YWQvVXNlckludGVyZmFjZVN0
YXRlLnhjdXNlcnN0YXRlVVgIAPv1SVb79UlWUEsBAhUDCgAAAAAAeX9wRwAAAAAAAAAAAAAAACkA
DAAAAAAAAAAAQO1BlJkAAFRlc3RQcmludC9UZXN0UHJpbnQueGNvZGVwcm9qL3hjdXNlcmRhdGEv
VVgIAAD2SVZm70lWUEsBAhUDCgAAAAAAo4FwRwAAAAAAAAAAAAAAAEAADAAAAAAAAAAAQO1B65kA
AFRlc3RQcmludC9UZXN0UHJpbnQueGNvZGVwcm9qL3hjdXNlcmRhdGEvc3RraGFwdWdpbi54Y3Vz
ZXJkYXRhZC9VWAgAAPZJVoLySVZQSwECFQMKAAAAAADugXBHAAAAAAAAAAAAAAAASwAMAAAAAAAA
AABA7UFZmgAAVGVzdFByaW50L1Rlc3RQcmludC54Y29kZXByb2oveGN1c2VyZGF0YS9zdGtoYXB1
Z2luLnhjdXNlcmRhdGFkL3hjZGVidWdnZXIvVVgIAAD2SVYP80lWUEsBAhUDFAAIAAgA7oFwR/8L
4EZNAAAAWwAAAGQADAAAAAAAAAAAQKSB0poAAFRlc3RQcmludC9UZXN0UHJpbnQueGNvZGVwcm9q
L3hjdXNlcmRhdGEvc3RraGFwdWdpbi54Y3VzZXJkYXRhZC94Y2RlYnVnZ2VyL0JyZWFrcG9pbnRz
X3YyLnhjYmtwdGxpc3RVWAgAD/NJVg/zSVZQSwECFQMKAAAAAAB6f3BHAAAAAAAAAAAAAAAASgAM
AAAAAAAAAABA7UHBmwAAVGVzdFByaW50L1Rlc3RQcmludC54Y29kZXByb2oveGN1c2VyZGF0YS9z
dGtoYXB1Z2luLnhjdXNlcmRhdGFkL3hjc2NoZW1lcy9VWAgAAPZJVmfvSVZQSwECFQMUAAgACAB6
f3BHI/tsDc0CAAD/DAAAXAAMAAAAAAAAAABApIE5nAAAVGVzdFByaW50L1Rlc3RQcmludC54Y29k
ZXByb2oveGN1c2VyZGF0YS9zdGtoYXB1Z2luLnhjdXNlcmRhdGFkL3hjc2NoZW1lcy9UZXN0UHJp
bnQueGNzY2hlbWVVWAgAau9JVmfvSVZQSwECFQMUAAgACAB5f3BHSyZImhoBAADhAQAAYgAMAAAA
AAAAAABApIGgnwAAVGVzdFByaW50L1Rlc3RQcmludC54Y29kZXByb2oveGN1c2VyZGF0YS9zdGto
YXB1Z2luLnhjdXNlcmRhdGFkL3hjc2NoZW1lcy94Y3NjaGVtZW1hbmFnZW1lbnQucGxpc3RVWAgA
Z+9JVmbvSVZQSwUGAAAAAHcAdwCkLgAAWqEAAAAA
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>280935</attachid>
            <date>2016-06-09 13:04:34 -0700</date>
            <delta_ts>2016-06-09 13:22:13 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-151386-20160609130603.patch</filename>
            <type>text/plain</type>
            <size>41438</size>
            <attacher name="Andy Estes">aestes</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjAxODc4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggMDA2ZTQ1OTRiNDgwOTA1
ODA2ZjM4YTA2MWViMDc1MzNmZmQ0OGFkOC4uNDAyMjVhMWM4NzAxNTYzNDdjNWIxMjQxODRkNzhm
NTczM2ZiMTY4YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEwMyBAQAorMjAxNi0wNi0wOSAgQW5k
eSBFc3RlcyAgPGFlc3Rlc0BhcHBsZS5jb20+CisKKyAgICAgICAgV0tXZWJWaWV3IGRvZXMgbm90
IHJlbmRlciBQREYgcGFnZXMgaW4gQWlyUHJpbnQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTE1MTM4NgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIF9XS1dlYlZpZXdQcmludEZvcm1hdHRlciBvcmlnaW5hbGx5
IGF0dGVtcHRlZCB0byBoYW5kbGUgUERGcywgYnV0IHRoZSBjb2RlIHBhdGggd2FzIG5ldmVyCisg
ICAgICAgIHByb3Blcmx5IHRlc3RlZCBzaW5jZSBTYWZhcmkgcHJpbnRzIFBERnMgYnkgc2V0dGlu
ZyBhIHByaW50aW5nSXRlbSBvbiB0aGUKKyAgICAgICAgVUlQcmludEludGVyYWN0aW9uQ29udHJv
bGxlciBpbnN0ZWFkIG9mIGdvaW5nIHRocm91Z2ggYSBwcmludCBmb3JtYXR0ZXIuIFRoZSBleGlz
dGluZyBjb2RlCisgICAgICAgIGFsbW9zdCB3b3JrZWQsIGlmIGl0IHdlcmVuJ3QgZm9yIENHQ29u
dGV4dFNjYWxlQ1RNKCkgc2NhbGluZyBlYWNoIHBhZ2UgaW50byBvYmxpdmlvbiBkdWUgdG8KKyAg
ICAgICAgX3RvdGFsU2NhbGVGYWN0b3IgZXF1YWxpbmcgMC4KKworICAgICAgICBUaGlzIHBhdGNo
IHByb3Blcmx5IGltcGxlbWVudHMgLVtfV0tXZWJWaWV3UHJpbnRGb3JtYXR0ZXIgZHJhd0luUmVj
dDpmb3JQYWdlQXRJbmRleDpdIHRvCisgICAgICAgIGhhbmRsZSBkcmF3aW5nIGJvdGggUERGcyBn
ZW5lcmF0ZWQgYnkgV2ViS2l0IGFuZCBQREZzIGxvYWRlZCBpbiB0aGUgbWFpbiBmcmFtZS4gSXQg
YWxzbworICAgICAgICB0YWtlcyB0aGUgb3Bwb3J0dW5pdHkgdG8gY2xlYW4gdXAgYSBudW1iZXIg
b2YgaXNzdWVzIGluIHRoZSBleGlzdGluZyBjb2RlOgorCisgICAgICAgIC0gSGFuZGxpbmcgb2Yg
LVtfV0tXZWJWaWV3UHJpbnRGb3JtYXR0ZXIgc3RhcnRQYWdlXSBpcyBub3cgY29ycmVjdC4gSSBo
YWQgcHJldmlvdXNseSBhc3N1bWVkCisgICAgICAgICAgdGhpcyBwcm9wZXJ0eSByZXByZXNlbnRl
ZCB0aGUgZmlyc3QgcGFnZSBvZiBvdXRwdXQgdG8gcHJpbnQsIGJ1dCBpdCBhY3R1YWxseSByZXBy
ZXNlbnRzCisgICAgICAgICAgdGhlIGZpcnN0IHBhZ2UgaW4gdGhlIG92ZXJhbGwgcHJpbnQgam9i
IHRoYXQgdGhlIHByaW50IGZvcm1hdHRlciByZW5kZXJzLiBJbiBvdGhlciB3b3JkcywKKyAgICAg
ICAgICByZWdhcmRsZXNzIG9mIC1zdGFydFBhZ2UsIHRoZSBwcmludCBmb3JtYXR0ZXIgc2hvdWxk
IGFsd2F5cyBwcmludCBhbGwgaXRzIHBhZ2VzLgorICAgICAgICAtIENvZGUgc3BlY2lmaWMgdG8g
d2VicGFnZSBhbmQgUERGIHByaW50aW5nIHdhcyBmYWN0b3JlZCBvdXQgaW50byBXS0NvbnRlbnRW
aWV3IGFuZAorICAgICAgICAgIFdLUERGVmlldywgcmVzcGVjdGl2ZWx5LiBFYWNoIGNvbmZvcm1z
IHRvIEBwcm90b2NvbChfV0tXZWJWaWV3UHJpbnRQcm92aWRlciksIGFuZAorICAgICAgICAgIF9X
S1dlYlZpZXdQcmludEZvcm1hdHRlciBhY2Nlc3NlcyB0aGUgcHJvdmlkZXIgdmlhIC1bV0tXZWJW
aWV3IF9wcmludFByb3ZpZGVyXS4KKyAgICAgICAgLSBJbnN0ZWFkIG9mIHBpcGluZyB0aGUgcHJp
bnRlZCBQREYgZGF0YSBmcm9tIFdlYlBhZ2VQcm94eSB0byBXS1dlYlZpZXcgdmlhIFBhZ2VDbGll
bnQsIHVzZQorICAgICAgICAgIHRoZSBHZW5lcmljQ2FsbGJhY2sgbWVjaGFuaXNtIHRvIGhhdmUg
V2ViUGFnZVByb3h5IGNhbGwgYSBsYW1iZGEgc3BlY2lmaWVkIGJ5CisgICAgICAgICAgV0tDb250
ZW50VmlldyB3aGVuIHRoZSBwcmludGVkIFBERiBpcyBhdmFpbGFibGUuCisgICAgICAgIC0gUmVt
b3ZlZCBfdG90YWxTY2FsZUZhY3RvciBhbmQgdXNlZCBDR1BERlBhZ2VHZXREcmF3aW5nVHJhbnNm
b3JtKCkgdG8gdHJhbnNmb3JtIGJvdGgKKyAgICAgICAgICB3ZWJwYWdlcyBhbmQgUERGcy4gRm9y
IHdlYnBhZ2VzLCBfdG90YWxTY2FsZUZhY3RvciB3aWxsIGFsd2F5cyBlcXVhbCB0aGUgcmF0aW8g
b2YgdGhlCisgICAgICAgICAgcGFwZXIgd2lkdGggdG8gdGhlIFBERiBwYWdlIHdpZHRoLCBzbyBD
R1BERlBhZ2VHZXREcmF3aW5nVHJhbnNmb3JtKCkgd2lsbCBhcHBseSB0aGUgc2FtZQorICAgICAg
ICAgIHNjYWxpbmcgYXMgQ0dDb250ZXh0U2NhbGVDVE0oX3RvdGFsU2NhbGVGYWN0b3IsIF90b3Rh
bFNjYWxlRmFjdG9yKSB3b3VsZC4KKworICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvV0tX
ZWJWaWV3Lm1tOgorICAgICAgICAoLVtXS1dlYlZpZXcgX3ByaW50UHJvdmlkZXJdKTogQWRkZWQu
IFJldHVybnMgX2N1cnJlbnRDb250ZW50VmlldyBpZiBpdCBjb25mb3JtcyB0bworICAgICAgICBA
cHJvdG9jb2woX1dLV2ViVmlld1ByaW50UHJvdmlkZXIpLgorICAgICAgICAoLVtXS1dlYlZpZXcg
X2NvbXB1dGVQYWdlQ291bnRBbmRTdGFydERyYXdpbmdUb1BERkZvckZyYW1lOnByaW50SW5mbzpm
aXJzdFBhZ2U6Y29tcHV0ZWRUb3RhbFNjYWxlRmFjdG9yOl0pOgorICAgICAgICBNb3ZlZCBjb2Rl
IHRvIF93a19wYWdlQ291bnRGb3JQcmludEZvcm1hdHRlciBpbiBXS0NvbnRlbnRWaWV3IGFuZCBX
S1BERlZpZXcuCisgICAgICAgICgtW1dLV2ViVmlldyBfZW5kUHJpbnRpbmddKTogRGVsZXRlZC4K
KyAgICAgICAgKC1bV0tXZWJWaWV3IF9wcmludGVkRG9jdW1lbnRdKTogRGVsZXRlZC4KKyAgICAg
ICAgKC1bV0tXZWJWaWV3IF9zZXRQcmludGVkRG9jdW1lbnQ6XSk6IERlbGV0ZWQuCisgICAgICAg
ICogVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXdJbnRlcm5hbC5oOiBEZWNsYXJlZCB0aGUg
X3ByaW50UHJvdmlkZXIgcHJvcGVydHkuCisgICAgICAgICogVUlQcm9jZXNzL1BhZ2VDbGllbnQu
aDogUmVtb3ZlZCBkaWRGaW5pc2hEcmF3aW5nUGFnZXNUb1BERigpLgorICAgICAgICAqIFVJUHJv
Y2Vzcy9XZWJQYWdlUHJveHkuaDogRGVjbGFyZWQgY29tcHV0ZVBhZ2VzRm9yUHJpbnRpbmdBbmRE
cmF3VG9QREYoKSBhbmQKKyAgICAgICAgZHJhd1RvUERGQ2FsbGJhY2soKS4KKyAgICAgICAgKiBV
SVByb2Nlc3MvV2ViUGFnZVByb3h5Lm1lc3NhZ2VzLmluOiBSZW5hbWVkIERpZEZpbmlzaERyYXdp
bmdQYWdlc1RvUERGIHRvCisgICAgICAgIERyYXdUb1BERkNhbGxiYWNrLgorICAgICAgICAqIFVJ
UHJvY2Vzcy9fV0tXZWJWaWV3UHJpbnRGb3JtYXR0ZXIubW06IEJhY2tlZCB0aGUgZnJhbWVUb1By
aW50IHByb3BlcnR5IHdpdGggYSBSZXRhaW5QdHIKKyAgICAgICAgaXZhciBzbyB0aGF0IGl0IGRv
ZXNuJ3QgbmVlZCB0byBiZSByZWxlYXNlZCBtYW51YWxseSBpbiAtZGVhbGxvYzsgcmVtb3ZlZCBf
dG90YWxTY2FsZUZhY3RvcgorICAgICAgICBhbmQgX3ByaW50SW5mbyBpdmFycyBhbmQgYWRkZWQg
YSBfcHJpbnRlZERvY3VtZW50IGl2YXI7IHJlbW92ZWQgdGhlIHByb3BlcnR5IGRlY2xhcmF0aW9u
IGZvcgorICAgICAgICB3ZWJWaWV3LgorICAgICAgICAoLVtfV0tXZWJWaWV3UHJpbnRGb3JtYXR0
ZXIgZnJhbWVUb1ByaW50XSk6IEFkZGVkIGEgY3VzdG9tIGdldHRlciBmb3IgdGhlIGZyYW1lVG9Q
cmludAorICAgICAgICBwcm9wZXJ0eS4KKyAgICAgICAgKC1bX1dLV2ViVmlld1ByaW50Rm9ybWF0
dGVyIHNldEZyYW1lVG9QcmludDpdKTogQWRkZWQgYSBjdXN0b20gc2V0dGVyIGZvciB0aGUgZnJh
bWVUb1ByaW50CisgICAgICAgIHByb3BlcnR5LgorICAgICAgICAoLVtfV0tXZWJWaWV3UHJpbnRG
b3JtYXR0ZXIgX3dlYlZpZXddKTogUmVuYW1lZCBmcm9tIHdlYlZpZXc7IGFkZGVkIGFuIHVuZGVy
c2NvcmUgc2luY2UgdGhpcworICAgICAgICBpcyBhIHByaXZhdGUgbWV0aG9kLgorICAgICAgICAo
LVtfV0tXZWJWaWV3UHJpbnRGb3JtYXR0ZXIgX3JlY2FsY1BhZ2VDb3VudF0pOiBSZXRyaWV2ZWQg
dGhlIHBhZ2UgY291bnQgZnJvbSB0aGUgcHJpbnQKKyAgICAgICAgcHJvdmlkZXIgYW5kIGNsYW1w
ZWQgaXRzIHZhbHVlIHRvIE5TSW50ZWdlck1heC4KKyAgICAgICAgKC1bX1dLV2ViVmlld1ByaW50
Rm9ybWF0dGVyIGRyYXdJblJlY3Q6Zm9yUGFnZUF0SW5kZXg6XSk6IFJldHJpZXZlZCB0aGUgcHJp
bnRlZCBkb2N1bWVudAorICAgICAgICBmcm9tIHRoZSBwcmludCBwcm92aWRlciBpZiBuZWVkZWQ7
IG1vZGlmaWVkIHRoZSBDVE0gdHJhbnNmb3JtYXRpb25zIHRvIHdvcmsgZm9yIGJvdGgKKyAgICAg
ICAgd2VicGFnZXMgYW5kIFBERnMuCisgICAgICAgICgtW19XS1dlYlZpZXdQcmludEZvcm1hdHRl
ciBkZWFsbG9jXSk6IERlbGV0ZWQuCisgICAgICAgICgtW19XS1dlYlZpZXdQcmludEZvcm1hdHRl
ciB3ZWJWaWV3XSk6IFJlbmFtZWQgdG8gX3dlYlZpZXcuCisgICAgICAgICgtW19XS1dlYlZpZXdQ
cmludEZvcm1hdHRlciByZWN0Rm9yUGFnZUF0SW5kZXg6XSk6IERlbGV0ZWQuCisgICAgICAgICog
VUlQcm9jZXNzL19XS1dlYlZpZXdQcmludEZvcm1hdHRlckludGVybmFsLmg6IEFkZGVkLiBNb3Zl
ZCBhIFVJUHJpbnRGb3JtYXR0ZXIgaW50ZXJuYWwKKyAgICAgICAgbWV0aG9kIGRlY2xhcmF0aW9u
IHRvIGhlcmUgYW5kIGRlZmluZWQgdGhlIF9XS1dlYlZpZXdQcmludFByb3ZpZGVyIHByb3RvY29s
LgorICAgICAgICAqIFVJUHJvY2Vzcy9pb3MvUGFnZUNsaWVudEltcGxJT1MuaDogUmVtb3ZlZCBk
aWRGaW5pc2hEcmF3aW5nUGFnZXNUb1BERigpLgorICAgICAgICAqIFVJUHJvY2Vzcy9pb3MvUGFn
ZUNsaWVudEltcGxJT1MubW06IERpdHRvLgorICAgICAgICAoV2ViS2l0OjpQYWdlQ2xpZW50SW1w
bDo6ZGlkRmluaXNoRHJhd2luZ1BhZ2VzVG9QREYpOiBEZWxldGVkLgorICAgICAgICAqIFVJUHJv
Y2Vzcy9pb3MvV0tDb250ZW50Vmlldy5tbTogQ29uZm9ybWVkIHRvIEBwcm90b2NvbChfV0tXZWJW
aWV3UHJpbnRQcm92aWRlcikuCisgICAgICAgICgtW1dLQ29udGVudFZpZXcgX3drX3BhZ2VDb3Vu
dEZvclByaW50Rm9ybWF0dGVyOl0pOiBNb3ZlZCB0aGUgY29kZSB0byBjb21wdXRlIHBhZ2UgY291
bnQKKyAgICAgICAgZnJvbSBXS1dlYlZpZXcgdG8gaGVyZS4KKyAgICAgICAgKC1bV0tDb250ZW50
VmlldyBfd2tfcHJpbnRlZERvY3VtZW50XSk6IE1vdmVkIHRoZSBjb2RlIHRvIGdldCB0aGUgcHJp
bnRlZCBkb2N1bWVudCBmcm9tCisgICAgICAgIFdLV2ViVmlldyB0byBoZXJlLgorICAgICAgICAq
IFVJUHJvY2Vzcy9pb3MvV0tQREZWaWV3Lm1tOgorICAgICAgICAoLVtXS1BERlZpZXcgX3drX3Bh
Z2VDb3VudEZvclByaW50Rm9ybWF0dGVyOl0pOiBNb3ZlZCB0aGUgY29kZSB0byBjb21wdXRlIHRo
ZSBwYWdlIGNvdW50CisgICAgICAgIGZyb20gV0tXZWJWaWV3IHRvIGhlcmU7IGFkZGVkIGEgY2Fs
bCB0byBDR1BERkRvY3VtZW50QWxsb3dzUHJpbnRpbmcoKSwgcmV0dXJuaW5nIDAgaWYKKyAgICAg
ICAgcHJpbnRpbmcgaXMgbm90IGFsbG93ZWQuCisgICAgICAgICgtW1dLUERGVmlldyBfd2tfcHJp
bnRlZERvY3VtZW50XSk6IE1vdmVkIHRoZSBjb2RlIHRvIGdldCB0aGUgcHJpbnRlZCBkb2N1bWVu
dCBmcm9tCisgICAgICAgIFdLV2ViVmlldyB0byBoZXJlLgorICAgICAgICAqIFVJUHJvY2Vzcy9p
b3MvV2ViUGFnZVByb3h5SU9TLm1tOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OmNv
bXB1dGVQYWdlc0ZvclByaW50aW5nQW5kRHJhd1RvUERGKTogUmVnaXN0ZXJlZCB0aGUgY2FsbGJh
Y2sgd2l0aAorICAgICAgICBtX2NhbGxiYWNrcyBhbmQgc2VudCBNZXNzYWdlczo6V2ViUGFnZTo6
Q29tcHV0ZVBhZ2VzRm9yUHJpbnRpbmdBbmREcmF3VG9QREY7IHJldHVybmVkIHRoZQorICAgICAg
ICBzeW5jaHJvbm91c2x5LXJldHVybmVkIHBhZ2UgY291bnQuCisgICAgICAgIChXZWJLaXQ6Oldl
YlBhZ2VQcm94eTo6ZHJhd1RvUERGQ2FsbGJhY2spOiBBZGRlZCB0byBwZXJmb3JtIHRoZSBjYWxs
YmFjayB3aGVuIGRyYXdpbmcgdG8gUERGCisgICAgICAgIGlzIGNvbXBsZXRlLgorICAgICAgICAo
V2ViS2l0OjpXZWJQYWdlUHJveHk6OmRpZEZpbmlzaERyYXdpbmdQYWdlc1RvUERGKTogRGVsZXRl
ZC4KKyAgICAgICAgKiBXZWJLaXQyLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6IEFkZGVkIF9X
S1dlYlZpZXdQcmludEZvcm1hdHRlckludGVybmFsLmguCisgICAgICAgICogV2ViUHJvY2Vzcy9X
ZWJQYWdlL1dlYlBhZ2UuaDogUmVuYW1lZCBjb21wdXRlUGFnZXNGb3JQcmludGluZ0FuZFN0YXJ0
RHJhd2luZ1RvUERGKCkgdG8KKyAgICAgICAgY29tcHV0ZVBhZ2VzRm9yUHJpbnRpbmdBbmREcmF3
VG9QREYoKS4KKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5tZXNzYWdlcy5p
bjogUmVuYW1lZAorICAgICAgICBDb21wdXRlUGFnZXNGb3JQcmludGluZ0FuZFN0YXJ0RHJhd2lu
Z1RvUERGIHRvIENvbXB1dGVQYWdlc0ZvclByaW50aW5nQW5kRHJhd1RvUERGLiBSZW1vdmVkCisg
ICAgICAgIHRoZSBzdGFydFBhZ2UgcGFyYW1ldGVyIGFuZCBhZGRlZCBhIGNhbGxiYWNrSUQuCisg
ICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL2lvcy9XZWJQYWdlSU9TLm1tOgorICAgICAgICAo
V2ViS2l0OjpXZWJQYWdlOjpjb21wdXRlUGFnZXNGb3JQcmludGluZ0FuZERyYXdUb1BERik6IFJl
bmFtZWQgZnJvbQorICAgICAgICBjb21wdXRlUGFnZXNGb3JQcmludGluZ0FuZFN0YXJ0RHJhd2lu
Z1RvUERGKCkuIEFkZGVkIGEgY2FsbCB0byBlbmRQcmludGluZygpIGFmdGVyIHNlbmRpbmcKKyAg
ICAgICAgTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6RHJhd1RvUERGQ2FsbGJhY2suCisgICAgICAg
IChXZWJLaXQ6OldlYlBhZ2U6OmNvbXB1dGVQYWdlc0ZvclByaW50aW5nQW5kU3RhcnREcmF3aW5n
VG9QREYpOiBSZW5hbWVkIHRvCisgICAgICAgIGNvbXB1dGVQYWdlc0ZvclByaW50aW5nQW5kRHJh
d1RvUERGLgorCiAyMDE2LTA2LTA5ICBEYXZpZCBLaWx6ZXIgIDxkZGtpbHplckBhcHBsZS5jb20+
CiAKICAgICAgICAgVXBkYXRlIHByb3BlcnRpZXMgZm9yIFVJV0tUZXh0SW50ZXJhY3Rpb25Bc3Np
c3RhbnQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tX
ZWJWaWV3Lm1tIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXcu
bW0KaW5kZXggNmNlMmZlNGQzNmQ0YTg2NzBlNDdmZTg1ZjEwMGU0ZDZkNmQ2OTkyYS4uZTE3NTRm
NDJiNmZhZjFhZTViMDMxNDI5YTBhZDRjMDg1NzY2YjgxMCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXcubW0KKysrIGIvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXcubW0KQEAgLTk5LDcgKzk5LDYgQEAKIAog
I2lmIFBMQVRGT1JNKElPUykKICNpbXBvcnQgIl9XS1dlYlZpZXdQcmludEZvcm1hdHRlci5oIgot
I2ltcG9ydCAiUHJpbnRJbmZvLmgiCiAjaW1wb3J0ICJQcm9jZXNzVGhyb3R0bGVyLmgiCiAjaW1w
b3J0ICJSZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYVByb3h5LmgiCiAjaW1wb3J0ICJSZW1vdGVT
Y3JvbGxpbmdDb29yZGluYXRvclByb3h5LmgiCkBAIC0xMDgsNyArMTA3LDYgQEAKICNpbXBvcnQg
IldLUERGVmlldy5oIgogI2ltcG9ydCAiV0tTY3JvbGxWaWV3LmgiCiAjaW1wb3J0ICJXS1dlYlZp
ZXdDb250ZW50UHJvdmlkZXJSZWdpc3RyeS5oIgotI2ltcG9ydCAiV2ViUGFnZU1lc3NhZ2VzLmgi
CiAjaW1wb3J0ICJXZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHkuaCIKICNpbXBvcnQgPFVJ
S2l0L1VJQXBwbGljYXRpb24uaD4KICNpbXBvcnQgPFdlYkNvcmUvQ29yZUdyYXBoaWNzU1BJLmg+
CkBAIC0yNjAsOCArMjU4LDYgQEAgQGltcGxlbWVudGF0aW9uIFdLV2ViVmlldyB7CiAgICAgQk9P
TCBfZGVsYXlVcGRhdGVWaXNpYmxlQ29udGVudFJlY3RzOwogICAgIEJPT0wgX2hhZERlbGF5ZWRV
cGRhdGVWaXNpYmxlQ29udGVudFJlY3RzOwogCi0gICAgQk9PTCBfcGFnZUlzUHJpbnRpbmdUb1BE
RjsKLSAgICBSZXRhaW5QdHI8Q0dQREZEb2N1bWVudFJlZj4gX3ByaW50ZWREb2N1bWVudDsKICAg
ICBWZWN0b3I8c3RkOjpmdW5jdGlvbjx2b2lkICgpPj4gX3NuYXBzaG90c0RlZmVycmVkRHVyaW5n
UmVzaXplOwogI2VuZGlmCiAjaWYgUExBVEZPUk0oTUFDKQpAQCAtNDUzMyw1MCArNDUyOSwxMiBA
QCAtIChDbGFzcylfcHJpbnRGb3JtYXR0ZXJDbGFzcwogICAgIHJldHVybiBbX1dLV2ViVmlld1By
aW50Rm9ybWF0dGVyIGNsYXNzXTsKIH0KIAotLSAoTlNJbnRlZ2VyKV9jb21wdXRlUGFnZUNvdW50
QW5kU3RhcnREcmF3aW5nVG9QREZGb3JGcmFtZTooX1dLRnJhbWVIYW5kbGUgKilmcmFtZSBwcmlu
dEluZm86KGNvbnN0IFdlYktpdDo6UHJpbnRJbmZvJilwcmludEluZm8gZmlyc3RQYWdlOih1aW50
MzJfdClmaXJzdFBhZ2UgY29tcHV0ZWRUb3RhbFNjYWxlRmFjdG9yOihkb3VibGUmKXRvdGFsU2Nh
bGVGYWN0b3IKKy0gKGlkIDxfV0tXZWJWaWV3UHJpbnRQcm92aWRlcj4pX3ByaW50UHJvdmlkZXIK
IHsKLSAgICBpZiAoW3NlbGYgX2lzRGlzcGxheWluZ1BERl0pCi0gICAgICAgIHJldHVybiBDR1BE
RkRvY3VtZW50R2V0TnVtYmVyT2ZQYWdlcyhbKFdLUERGVmlldyAqKV9jdXN0b21Db250ZW50Vmll
dyBwZGZEb2N1bWVudF0pOwotCi0gICAgX3BhZ2VJc1ByaW50aW5nVG9QREYgPSBZRVM7Ci0gICAg
VmVjdG9yPFdlYkNvcmU6OkludFJlY3Q+IHBhZ2VSZWN0czsKLSAgICB1aW50NjRfdCBmcmFtZUlE
ID0gZnJhbWUgPyBmcmFtZS5fZnJhbWVJRCA6IF9wYWdlLT5tYWluRnJhbWUoKS0+ZnJhbWVJRCgp
OwotICAgIGlmICghX3BhZ2UtPnNlbmRTeW5jKE1lc3NhZ2VzOjpXZWJQYWdlOjpDb21wdXRlUGFn
ZXNGb3JQcmludGluZ0FuZFN0YXJ0RHJhd2luZ1RvUERGKGZyYW1lSUQsIHByaW50SW5mbywgZmly
c3RQYWdlKSwgTWVzc2FnZXM6OldlYlBhZ2U6OkNvbXB1dGVQYWdlc0ZvclByaW50aW5nQW5kU3Rh
cnREcmF3aW5nVG9QREY6OlJlcGx5KHBhZ2VSZWN0cywgdG90YWxTY2FsZUZhY3RvcikpKQotICAg
ICAgICByZXR1cm4gMDsKLSAgICByZXR1cm4gcGFnZVJlY3RzLnNpemUoKTsKLX0KLQotLSAodm9p
ZClfZW5kUHJpbnRpbmcKLXsKLSAgICBfcGFnZUlzUHJpbnRpbmdUb1BERiA9IE5POwotICAgIF9w
cmludGVkRG9jdW1lbnQgPSBudWxscHRyOwotICAgIF9wYWdlLT5zZW5kKE1lc3NhZ2VzOjpXZWJQ
YWdlOjpFbmRQcmludGluZygpKTsKLX0KLQotLSAoQ0dQREZEb2N1bWVudFJlZilfcHJpbnRlZERv
Y3VtZW50Ci17Ci0gICAgaWYgKFtzZWxmIF9pc0Rpc3BsYXlpbmdQREZdKSB7Ci0gICAgICAgIEFT
U0VSVCghX3BhZ2VJc1ByaW50aW5nVG9QREYpOwotICAgICAgICByZXR1cm4gWyhXS1BERlZpZXcg
KilfY3VzdG9tQ29udGVudFZpZXcgcGRmRG9jdW1lbnRdOwotICAgIH0KLQotICAgIGlmIChfcGFn
ZUlzUHJpbnRpbmdUb1BERikgewotICAgICAgICBpZiAoIV9wYWdlLT5wcm9jZXNzKCkuY29ubmVj
dGlvbigpLT53YWl0Rm9yQW5kRGlzcGF0Y2hJbW1lZGlhdGVseTxNZXNzYWdlczo6V2ViUGFnZVBy
b3h5OjpEaWRGaW5pc2hEcmF3aW5nUGFnZXNUb1BERj4oX3BhZ2UtPnBhZ2VJRCgpLCBzdGQ6OmNo
cm9ubzo6bWlsbGlzZWNvbmRzOjptYXgoKSkpIHsKLSAgICAgICAgICAgIEFTU0VSVF9OT1RfUkVB
Q0hFRCgpOwotICAgICAgICAgICAgcmV0dXJuIG51bGxwdHI7Ci0gICAgICAgIH0KLSAgICAgICAg
QVNTRVJUKCFfcGFnZUlzUHJpbnRpbmdUb1BERik7Ci0gICAgfQotICAgIHJldHVybiBfcHJpbnRl
ZERvY3VtZW50LmdldCgpOwotfQotCi0tICh2b2lkKV9zZXRQcmludGVkRG9jdW1lbnQ6KENHUERG
RG9jdW1lbnRSZWYpcHJpbnRlZERvY3VtZW50Ci17Ci0gICAgaWYgKCFfcGFnZUlzUHJpbnRpbmdU
b1BERikKLSAgICAgICAgcmV0dXJuOwotICAgIEFTU0VSVCghW3NlbGYgX2lzRGlzcGxheWluZ1BE
Rl0pOwotICAgIF9wcmludGVkRG9jdW1lbnQgPSBwcmludGVkRG9jdW1lbnQ7Ci0gICAgX3BhZ2VJ
c1ByaW50aW5nVG9QREYgPSBOTzsKKyAgICBpZCBjb250ZW50VmlldyA9IHNlbGYuX2N1cnJlbnRD
b250ZW50VmlldzsKKyAgICBpZiAoW2NvbnRlbnRWaWV3IGNvbmZvcm1zVG9Qcm90b2NvbDpAcHJv
dG9jb2woX1dLV2ViVmlld1ByaW50UHJvdmlkZXIpXSkKKyAgICAgICAgcmV0dXJuIGNvbnRlbnRW
aWV3OworICAgIHJldHVybiBuaWw7CiB9CiAKIEBlbmQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3SW50ZXJuYWwuaCBiL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3SW50ZXJuYWwuaAppbmRleCA2ZTlkNDM1
YmUxN2M4ODdkMjZjZGNkNzExMDcxYzI3ZGFkM2Q4ZmUyLi4zZmQzZjEyY2U5YmYzZDc0NjAwZWZl
ZTMzZDY0ZThjNjdmMmNmNWFjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
QVBJL0NvY29hL1dLV2ViVmlld0ludGVybmFsLmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXdJbnRlcm5hbC5oCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAq
IENvcHlyaWdodCAoQykgMjAxNCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBD
b3B5cmlnaHQgKEMpIDIwMTQtMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAg
KgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTU3LDYgKzU3LDcgQEAgc3RydWN0IFBy
aW50SW5mbzsKIAogQGNsYXNzIFdLV2ViVmlld0NvbnRlbnRQcm92aWRlclJlZ2lzdHJ5OwogQGNs
YXNzIF9XS0ZyYW1lSGFuZGxlOworQHByb3RvY29sIF9XS1dlYlZpZXdQcmludFByb3ZpZGVyOwog
CiBAaW50ZXJmYWNlIFdLV2ViVmlldyAoKSBXS19XRUJfVklFV19QUk9UT0NPTFMgewogCkBAIC0x
MzQsOSArMTM1LDcgQEAgV0tXZWJWaWV3KiBmcm9tV2ViUGFnZVByb3h5KFdlYktpdDo6V2ViUGFn
ZVByb3h5Jik7CiAKICNpZiBQTEFURk9STShJT1MpCiBAaW50ZXJmYWNlIFdLV2ViVmlldyAoX1dL
V2ViVmlld1ByaW50Rm9ybWF0dGVyKQotLSAoTlNJbnRlZ2VyKV9jb21wdXRlUGFnZUNvdW50QW5k
U3RhcnREcmF3aW5nVG9QREZGb3JGcmFtZTooX1dLRnJhbWVIYW5kbGUgKilmcmFtZSBwcmludElu
Zm86KGNvbnN0IFdlYktpdDo6UHJpbnRJbmZvJilwcmludEluZm8gZmlyc3RQYWdlOih1aW50MzJf
dClmaXJzdFBhZ2UgY29tcHV0ZWRUb3RhbFNjYWxlRmFjdG9yOihkb3VibGUmKXRvdGFsU2NhbGVG
YWN0b3I7Ci0tICh2b2lkKV9lbmRQcmludGluZzsKLUBwcm9wZXJ0eSAobm9uYXRvbWljLCBzZXR0
ZXI9X3NldFByaW50ZWREb2N1bWVudDopIENHUERGRG9jdW1lbnRSZWYgX3ByaW50ZWREb2N1bWVu
dDsKK0Bwcm9wZXJ0eSAobm9uYXRvbWljLCByZWFkb25seSkgaWQgPF9XS1dlYlZpZXdQcmludFBy
b3ZpZGVyPiBfcHJpbnRQcm92aWRlcjsKIEBlbmQKICNlbmRpZgogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvUGFnZUNsaWVudC5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL1BhZ2VDbGllbnQuaAppbmRleCAzYzdhYjc0MDg2MDRlODQ3MjJlYzJlYmVhODk3MTRkNTZi
Y2UxOWYyLi4wZjJkOGFlNzEzYzJkOGIxZmIzZGEwNzRjODc0ODk0NDFjNzM1OGExIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvUGFnZUNsaWVudC5oCisrKyBiL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9QYWdlQ2xpZW50LmgKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29w
eXJpZ2h0IChDKSAyMDEwLCAyMDExLCAyMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KKyAqIENvcHlyaWdodCAoQykgMjAxMC0yMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMzA1LDcgKzMwNSw2IEBA
IHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgb3ZlcmZsb3dTY3JvbGxWaWV3RGlkU2Nyb2xsKCkg
PSAwOwogICAgIHZpcnR1YWwgdm9pZCBvdmVyZmxvd1Njcm9sbFdpbGxTdGFydFNjcm9sbCgpID0g
MDsKICAgICB2aXJ0dWFsIHZvaWQgb3ZlcmZsb3dTY3JvbGxEaWRFbmRTY3JvbGwoKSA9IDA7Ci0g
ICAgdmlydHVhbCB2b2lkIGRpZEZpbmlzaERyYXdpbmdQYWdlc1RvUERGKGNvbnN0IElQQzo6RGF0
YVJlZmVyZW5jZSYpID0gMDsKICAgICB2aXJ0dWFsIFZlY3RvcjxTdHJpbmc+IG1pbWVUeXBlc1dp
dGhDdXN0b21Db250ZW50UHJvdmlkZXJzKCkgPSAwOwogCiAgICAgdmlydHVhbCB2b2lkIHNob3dJ
bnNwZWN0b3JIaWdobGlnaHQoY29uc3QgV2ViQ29yZTo6SGlnaGxpZ2h0JikgPSAwOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oIGIvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCmluZGV4IGIzZjhkZjliZTdkNmNhMjliZGUw
MzRhYzQyNWZlZWQ0N2I3MjAyZWIuLmIzNTUyMjRlZTE2MDBjNzJmMDY5OTA4ZGNkOTkyNTczOGRj
NGI1MGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHku
aAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKQEAgLTEsNSAr
MSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDEwLCAyMDExLCAyMDE0LTIwMTUgQXBwbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDEwLTIwMTYgQXBw
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zCkBAIC0yNTYsNiArMjU2LDggQEAgc3RydWN0IE5vZGVBc3Npc3RhbmNlQXJndW1lbnRzIHsK
ICAgICBib29sIG1fYmx1clByZXZpb3VzTm9kZTsKICAgICBSZWZQdHI8QVBJOjpPYmplY3Q+IG1f
dXNlckRhdGE7CiB9OworCit1c2luZyBEcmF3VG9QREZDYWxsYmFjayA9IEdlbmVyaWNDYWxsYmFj
azxjb25zdCBJUEM6OkRhdGFSZWZlcmVuY2UmPjsKICNlbmRpZgogCiAjaWYgUExBVEZPUk0oQ09D
T0EpCkBAIC01MTUsNyArNTE3LDYgQEAgcHVibGljOgogICAgIHZvaWQgY29tbWl0UG90ZW50aWFs
VGFwRmFpbGVkKCk7CiAgICAgdm9pZCBkaWROb3RIYW5kbGVUYXBBc0NsaWNrKGNvbnN0IFdlYkNv
cmU6OkludFBvaW50Jik7CiAgICAgdm9pZCBkaXNhYmxlRG91YmxlVGFwR2VzdHVyZXNEdXJpbmdU
YXBJZk5lY2Vzc2FyeSh1aW50NjRfdCByZXF1ZXN0SUQpOwotICAgIHZvaWQgZGlkRmluaXNoRHJh
d2luZ1BhZ2VzVG9QREYoY29uc3QgSVBDOjpEYXRhUmVmZXJlbmNlJik7CiAgICAgdm9pZCBjb250
ZW50U2l6ZUNhdGVnb3J5RGlkQ2hhbmdlKGNvbnN0IFN0cmluZyYgY29udGVudFNpemVDYXRlZ29y
eSk7CiAgICAgdm9pZCBnZXRTZWxlY3Rpb25Db250ZXh0KHN0ZDo6ZnVuY3Rpb248dm9pZChjb25z
dCBTdHJpbmcmLCBjb25zdCBTdHJpbmcmLCBjb25zdCBTdHJpbmcmLCBDYWxsYmFja0Jhc2U6OkVy
cm9yKT4pOwogICAgIHZvaWQgaGFuZGxlVHdvRmluZ2VyVGFwQXRQb2ludChjb25zdCBXZWJDb3Jl
OjpJbnRQb2ludCYsIHN0ZDo6ZnVuY3Rpb248dm9pZChjb25zdCBTdHJpbmcmLCBDYWxsYmFja0Jh
c2U6OkVycm9yKT4pOwpAQCAtOTA1LDYgKzkwNiwxMCBAQCBwdWJsaWM6CiAjaWYgUExBVEZPUk0o
Q09DT0EpCiAgICAgdm9pZCBkcmF3UmVjdFRvSW1hZ2UoV2ViRnJhbWVQcm94eSosIGNvbnN0IFBy
aW50SW5mbyYsIGNvbnN0IFdlYkNvcmU6OkludFJlY3QmLCBjb25zdCBXZWJDb3JlOjpJbnRTaXpl
JiwgUGFzc1JlZlB0cjxJbWFnZUNhbGxiYWNrPik7CiAgICAgdm9pZCBkcmF3UGFnZXNUb1BERihX
ZWJGcmFtZVByb3h5KiwgY29uc3QgUHJpbnRJbmZvJiwgdWludDMyX3QgZmlyc3QsIHVpbnQzMl90
IGNvdW50LCBQYXNzUmVmUHRyPERhdGFDYWxsYmFjaz4pOworI2lmIFBMQVRGT1JNKElPUykKKyAg
ICAgICAgdWludDMyX3QgY29tcHV0ZVBhZ2VzRm9yUHJpbnRpbmdBbmREcmF3VG9QREYodWludDY0
X3QgZnJhbWVJRCwgY29uc3QgUHJpbnRJbmZvJiwgRHJhd1RvUERGQ2FsbGJhY2s6OkNhbGxiYWNr
RnVuY3Rpb24mJik7CisgICAgICAgIHZvaWQgZHJhd1RvUERGQ2FsbGJhY2soY29uc3QgSVBDOjpE
YXRhUmVmZXJlbmNlJiBwZGZEYXRhLCB1aW50NjRfdCBjYWxsYmFja0lEKTsKKyNlbmRpZgogI2Vs
aWYgUExBVEZPUk0oR1RLKQogICAgIHZvaWQgZHJhd1BhZ2VzRm9yUHJpbnRpbmcoV2ViRnJhbWVQ
cm94eSosIGNvbnN0IFByaW50SW5mbyYsIFBhc3NSZWZQdHI8UHJpbnRGaW5pc2hlZENhbGxiYWNr
Pik7CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdl
UHJveHkubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5
Lm1lc3NhZ2VzLmluCmluZGV4IDk2Y2I5ZTg2MTUxYmQ3NjIzODM1ODgwYWI5YjAwZjNmMWU0MDcz
ZTYuLmE5NDcxZWNiY2MxYWRmODc2ZWNiMzJlMWE5OWM5YTc2NGQyYWRlMWQgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkubWVzc2FnZXMuaW4KKysrIGIv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5tZXNzYWdlcy5pbgpAQCAtMSw0
ICsxLDQgQEAKLSMgQ29weXJpZ2h0IChDKSAyMDEwLCAyMDExIEFwcGxlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KKyMgQ29weXJpZ2h0IChDKSAyMDEwLTIwMTYgQXBwbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgogIwogIyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICMgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0xODYsNyArMTg2
LDcgQEAgbWVzc2FnZXMgLT4gV2ViUGFnZVByb3h5IHsKICAgICBDb21taXRQb3RlbnRpYWxUYXBG
YWlsZWQoKQogICAgIERpZE5vdEhhbmRsZVRhcEFzQ2xpY2soV2ViQ29yZTo6SW50UG9pbnQgcG9p
bnQpCiAgICAgRGlzYWJsZURvdWJsZVRhcEdlc3R1cmVzRHVyaW5nVGFwSWZOZWNlc3NhcnkodWlu
dDY0X3QgcmVxdWVzdElEKQotICAgIERpZEZpbmlzaERyYXdpbmdQYWdlc1RvUERGKElQQzo6RGF0
YVJlZmVyZW5jZSBwZGZEYXRhKQorICAgIERyYXdUb1BERkNhbGxiYWNrKElQQzo6RGF0YVJlZmVy
ZW5jZSBwZGZEYXRhLCB1aW50NjRfdCBjYWxsYmFja0lEKQogI2VuZGlmCiAjaWYgRU5BQkxFKERB
VEFfREVURUNUSU9OKQogICAgIFNldERhdGFEZXRlY3Rpb25SZXN1bHQoc3RydWN0IFdlYktpdDo6
RGF0YURldGVjdGlvblJlc3VsdCBkYXRhRGV0ZWN0aW9uUmVzdWx0KQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL19XS1dlYlZpZXdQcmludEZvcm1hdHRlci5tbSBiL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9fV0tXZWJWaWV3UHJpbnRGb3JtYXR0ZXIubW0KaW5kZXggN2Ji
YzU4NzNhOWE0Zjc2YjI2ZjE3OTUyMGI5OWIwMDZkMTBjMzBiMy4uZGFhYjZjYWRkNDQ3ZDhhYjM0
YjQ1Njg0MWE0NTAyY2Y3NGVhZTExZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL19XS1dlYlZpZXdQcmludEZvcm1hdHRlci5tbQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvX1dLV2ViVmlld1ByaW50Rm9ybWF0dGVyLm1tCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAq
IENvcHlyaWdodCAoQykgMjAxNCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBD
b3B5cmlnaHQgKEMpIDIwMTQtMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAg
KgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTI0LDgxICsyNCw2OSBAQAogICovCiAK
ICNpbXBvcnQgImNvbmZpZy5oIgotI2ltcG9ydCAiX1dLV2ViVmlld1ByaW50Rm9ybWF0dGVyLmgi
CisjaW1wb3J0ICJfV0tXZWJWaWV3UHJpbnRGb3JtYXR0ZXJJbnRlcm5hbC5oIgogCiAjaWYgUExB
VEZPUk0oSU9TKQogCi0jaW1wb3J0ICJQcmludEluZm8uaCIKICNpbXBvcnQgIldLV2ViVmlld0lu
dGVybmFsLmgiCisjaW1wb3J0ICJfV0tGcmFtZUhhbmRsZS5oIgogI2ltcG9ydCA8d3RmL1JldGFp
blB0ci5oPgogCi1AaW50ZXJmYWNlIFVJUHJpbnRGb3JtYXR0ZXIgKCkKLS0gKENHUmVjdClfcGFn
ZUNvbnRlbnRSZWN0OihCT09MKWZpcnN0UGFnZTsKLS0gKHZvaWQpX3JlY2FsY0lmTmVjZXNzYXJ5
OwotQGVuZAotCi1AaW50ZXJmYWNlIF9XS1dlYlZpZXdQcmludEZvcm1hdHRlciAoKQotQHByb3Bl
cnR5IChub25hdG9taWMsIHJlYWRvbmx5KSBXS1dlYlZpZXcgKndlYlZpZXc7Ci1AZW5kCi0KIEBp
bXBsZW1lbnRhdGlvbiBfV0tXZWJWaWV3UHJpbnRGb3JtYXR0ZXIgewotICAgIGRvdWJsZSBfdG90
YWxTY2FsZUZhY3RvcjsKLSAgICBXZWJLaXQ6OlByaW50SW5mbyBfcHJpbnRJbmZvOworICAgIFJl
dGFpblB0cjxfV0tGcmFtZUhhbmRsZT4gX2ZyYW1lVG9QcmludDsKKyAgICBSZXRhaW5QdHI8Q0dQ
REZEb2N1bWVudFJlZj4gX3ByaW50ZWREb2N1bWVudDsKIH0KIAotLSAodm9pZClkZWFsbG9jCist
IChfV0tGcmFtZUhhbmRsZSAqKWZyYW1lVG9QcmludAogewotICAgIFtzZWxmLndlYlZpZXcgX2Vu
ZFByaW50aW5nXTsKLSAgICBbX2ZyYW1lVG9QcmludCByZWxlYXNlXTsKLSAgICBbc3VwZXIgZGVh
bGxvY107CisgICAgcmV0dXJuIF9mcmFtZVRvUHJpbnQuZ2V0KCk7CiB9CiAKLS0gKFdLV2ViVmll
dyAqKXdlYlZpZXcKKy0gKHZvaWQpc2V0RnJhbWVUb1ByaW50OihfV0tGcmFtZUhhbmRsZSAqKWZy
YW1lVG9QcmludAogewotICAgIEFTU0VSVChbc2VsZi52aWV3IGlzS2luZE9mQ2xhc3M6W1dLV2Vi
VmlldyBjbGFzc11dKTsKLSAgICByZXR1cm4gc3RhdGljX2Nhc3Q8V0tXZWJWaWV3ICo+KHNlbGYu
dmlldyk7CisgICAgX2ZyYW1lVG9QcmludCA9IGZyYW1lVG9QcmludDsKK30KKworLSAoV0tXZWJW
aWV3ICopX3dlYlZpZXcKK3sKKyAgICBVSVZpZXcgKnZpZXcgPSBzZWxmLnZpZXc7CisgICAgQVNT
RVJUKFt2aWV3IGlzS2luZE9mQ2xhc3M6W1dLV2ViVmlldyBjbGFzc11dKTsKKyAgICByZXR1cm4g
c3RhdGljX2Nhc3Q8V0tXZWJWaWV3ICo+KHZpZXcpOwogfQogCiAtIChOU0ludGVnZXIpX3JlY2Fs
Y1BhZ2VDb3VudAogewotICAgIEFTU0VSVChbc2VsZiByZXNwb25kc1RvU2VsZWN0b3I6QHNlbGVj
dG9yKF9wYWdlQ29udGVudFJlY3Q6KV0pOwotCi0gICAgQ0dSZWN0IGZpcnN0UmVjdCA9IFtzZWxm
IF9wYWdlQ29udGVudFJlY3Q6WUVTXTsKLSAgICBDR1JlY3QgbmV4dFJlY3QgPSBbc2VsZiBfcGFn
ZUNvbnRlbnRSZWN0Ok5PXTsKLSAgICBpZiAoQ0dSZWN0SXNFbXB0eShmaXJzdFJlY3QpIHx8IENH
UmVjdElzRW1wdHkobmV4dFJlY3QpKQotICAgICAgICByZXR1cm4gMDsKLQotICAgIC8vIFRoZSBm
aXJzdCBwYWdlIGNhbiBoYXZlIGEgc21hbGxlciBjb250ZW50IHJlY3QgdGhhbiBzdWJzZXF1ZW50
IHBhZ2VzIGlmIGEgdG9wIGNvbnRlbnQgaW5zZXQgaXMgc3BlY2lmaWVkLiBTaW5jZQotICAgIC8v
IFdlYktpdCByZXF1aXJlcyBhIHVuaWZvcm0gY29udGVudCByZWN0IGZvciBlYWNoIHBhZ2UgZHVy
aW5nIGxheW91dCwgdXNlIHRoZSBmaXJzdCBwYWdlIHJlY3QgZm9yIGFsbCBwYWdlcyBpZiBpdCdz
Ci0gICAgLy8gc21hbGxlci4gVGhpcyBpcyB3aGF0IFVJV2ViVmlldydzIHByaW50IGZvcm1hdHRl
ciBkb2VzLgotICAgIEFTU0VSVChmaXJzdFJlY3Quc2l6ZS53aWR0aCA9PSBuZXh0UmVjdC5zaXpl
LndpZHRoKTsKLSAgICBBU1NFUlQoZmlyc3RSZWN0Lm9yaWdpbi55ID49IG5leHRSZWN0Lm9yaWdp
bi55KTsKLSAgICBfcHJpbnRJbmZvLnBhZ2VTZXR1cFNjYWxlRmFjdG9yID0gMTsKLSAgICBfcHJp
bnRJbmZvLmF2YWlsYWJsZVBhcGVyV2lkdGggPSBuZXh0UmVjdC5zaXplLndpZHRoOwotICAgIF9w
cmludEluZm8uYXZhaWxhYmxlUGFwZXJIZWlnaHQgPSBuZXh0UmVjdC5zaXplLmhlaWdodCAtIChm
aXJzdFJlY3Qub3JpZ2luLnkgLSBuZXh0UmVjdC5vcmlnaW4ueSk7Ci0KLSAgICByZXR1cm4gW3Nl
bGYud2ViVmlldyBfY29tcHV0ZVBhZ2VDb3VudEFuZFN0YXJ0RHJhd2luZ1RvUERGRm9yRnJhbWU6
X2ZyYW1lVG9QcmludCBwcmludEluZm86X3ByaW50SW5mbyBmaXJzdFBhZ2U6c2VsZi5zdGFydFBh
Z2UgY29tcHV0ZWRUb3RhbFNjYWxlRmFjdG9yOl90b3RhbFNjYWxlRmFjdG9yXTsKKyAgICBfcHJp
bnRlZERvY3VtZW50ID0gbnVsbHB0cjsKKyAgICBOU1VJbnRlZ2VyIHBhZ2VDb3VudCA9IFtzZWxm
Ll93ZWJWaWV3Ll9wcmludFByb3ZpZGVyIF93a19wYWdlQ291bnRGb3JQcmludEZvcm1hdHRlcjpz
ZWxmXTsKKyAgICByZXR1cm4gc3RkOjptaW48TlNVSW50ZWdlcj4ocGFnZUNvdW50LCBOU0ludGVn
ZXJNYXgpOwogfQogCiAtIChDR1JlY3QpcmVjdEZvclBhZ2VBdEluZGV4OihOU0ludGVnZXIpcGFn
ZUluZGV4CiB7Ci0gICAgQVNTRVJUKFtzZWxmIHJlc3BvbmRzVG9TZWxlY3RvcjpAc2VsZWN0b3Io
X3JlY2FsY0lmTmVjZXNzYXJ5KV0pOwotICAgIFtzZWxmIF9yZWNhbGNJZk5lY2Vzc2FyeV07CiAg
ICAgcmV0dXJuIFtzZWxmIF9wYWdlQ29udGVudFJlY3Q6cGFnZUluZGV4ID09IHNlbGYuc3RhcnRQ
YWdlXTsKIH0KIAogLSAodm9pZClkcmF3SW5SZWN0OihDR1JlY3QpcmVjdCBmb3JQYWdlQXRJbmRl
eDooTlNJbnRlZ2VyKXBhZ2VJbmRleAogewotICAgIC8vIENHUERGRG9jdW1lbnRzIHVzZSAxLWJh
c2VkIHBhZ2UgaW5kZXhpbmcuCi0gICAgQ0dQREZQYWdlUmVmIHBkZlBhZ2UgPSBDR1BERkRvY3Vt
ZW50R2V0UGFnZShzZWxmLndlYlZpZXcuX3ByaW50ZWREb2N1bWVudCwgcGFnZUluZGV4IC0gc2Vs
Zi5zdGFydFBhZ2UgKyAxKTsKKyAgICBpZiAoIV9wcmludGVkRG9jdW1lbnQpCisgICAgICAgIF9w
cmludGVkRG9jdW1lbnQgPSBzZWxmLl93ZWJWaWV3Ll9wcmludFByb3ZpZGVyLl93a19wcmludGVk
RG9jdW1lbnQ7CisKKyAgICBOU0ludGVnZXIgb2Zmc2V0RnJvbVN0YXJ0UGFnZSA9IHBhZ2VJbmRl
eCAtIHNlbGYuc3RhcnRQYWdlOworICAgIGlmIChvZmZzZXRGcm9tU3RhcnRQYWdlIDwgMCkKKyAg
ICAgICAgcmV0dXJuOworCisgICAgQ0dQREZQYWdlUmVmIHBhZ2UgPSBDR1BERkRvY3VtZW50R2V0
UGFnZShfcHJpbnRlZERvY3VtZW50LmdldCgpLCBvZmZzZXRGcm9tU3RhcnRQYWdlICsgMSk7Cisg
ICAgaWYgKCFwYWdlKQorICAgICAgICByZXR1cm47CiAKICAgICBDR0NvbnRleHRSZWYgY29udGV4
dCA9IFVJR3JhcGhpY3NHZXRDdXJyZW50Q29udGV4dCgpOwogICAgIENHQ29udGV4dFNhdmVHU3Rh
dGUoY29udGV4dCk7CiAKLSAgICBDR0NvbnRleHRUcmFuc2xhdGVDVE0oY29udGV4dCwgcmVjdC5v
cmlnaW4ueCwgcmVjdC5vcmlnaW4ueSk7Ci0gICAgQ0dDb250ZXh0U2NhbGVDVE0oY29udGV4dCwg
X3RvdGFsU2NhbGVGYWN0b3IsIC1fdG90YWxTY2FsZUZhY3Rvcik7Ci0gICAgQ0dDb250ZXh0VHJh
bnNsYXRlQ1RNKGNvbnRleHQsIDAsIC1DR1BERlBhZ2VHZXRCb3hSZWN0KHBkZlBhZ2UsIGtDR1BE
Rk1lZGlhQm94KS5zaXplLmhlaWdodCk7Ci0gICAgQ0dDb250ZXh0RHJhd1BERlBhZ2UoY29udGV4
dCwgcGRmUGFnZSk7CisgICAgQ0dDb250ZXh0VHJhbnNsYXRlQ1RNKGNvbnRleHQsIENHUmVjdEdl
dE1pblgocmVjdCksIENHUmVjdEdldE1heFkocmVjdCkpOworICAgIENHQ29udGV4dFNjYWxlQ1RN
KGNvbnRleHQsIDEsIC0xKTsKKyAgICBDR0NvbnRleHRDb25jYXRDVE0oY29udGV4dCwgQ0dQREZQ
YWdlR2V0RHJhd2luZ1RyYW5zZm9ybShwYWdlLCBrQ0dQREZDcm9wQm94LCBDR1JlY3RNYWtlKDAs
IDAsIENHUmVjdEdldFdpZHRoKHJlY3QpLCBDR1JlY3RHZXRIZWlnaHQocmVjdCkpLCAwLCB0cnVl
KSk7CisgICAgQ0dDb250ZXh0Q2xpcFRvUmVjdChjb250ZXh0LCBDR1BERlBhZ2VHZXRCb3hSZWN0
KHBhZ2UsIGtDR1BERkNyb3BCb3gpKTsKKyAgICBDR0NvbnRleHREcmF3UERGUGFnZShjb250ZXh0
LCBwYWdlKTsKIAogICAgIENHQ29udGV4dFJlc3RvcmVHU3RhdGUoY29udGV4dCk7CiB9CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvX1dLV2ViVmlld1ByaW50Rm9ybWF0dGVy
SW50ZXJuYWwuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9fV0tXZWJWaWV3UHJpbnRGb3Jt
YXR0ZXJJbnRlcm5hbC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmY0YjNhZDkzMDdjNTA3NjQ4MmU2Y2I0NzNlYzM0
OTIxOWViYzcxMTAKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
X1dLV2ViVmlld1ByaW50Rm9ybWF0dGVySW50ZXJuYWwuaApAQCAtMCwwICsxLDM1IEBACisvKgor
ICogQ29weXJpZ2h0IChDKSAyMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAq
CisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJp
YnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXBy
b2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1l
bnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1
dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5E
IElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElF
RCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBM
SUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJ
Q1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExF
IElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJ
TkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVO
VElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQg
T0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBP
UiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBB
TkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBT
VFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJ
U0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FS
RSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0Uu
CisgKi8KKworI2ltcG9ydCAiX1dLV2ViVmlld1ByaW50Rm9ybWF0dGVyLmgiCisKK0BpbnRlcmZh
Y2UgVUlQcmludEZvcm1hdHRlciAoKQorLSAoQ0dSZWN0KV9wYWdlQ29udGVudFJlY3Q6KEJPT0wp
Zmlyc3RQYWdlOworQGVuZAorCitAcHJvdG9jb2wgX1dLV2ViVmlld1ByaW50UHJvdmlkZXIgPE5T
T2JqZWN0PgorLSAoTlNVSW50ZWdlcilfd2tfcGFnZUNvdW50Rm9yUHJpbnRGb3JtYXR0ZXI6KF9X
S1dlYlZpZXdQcmludEZvcm1hdHRlciAqKXByaW50Rm9ybWF0dGVyOworQHByb3BlcnR5IChub25h
dG9taWMsIHJlYWRvbmx5KSBDR1BERkRvY3VtZW50UmVmIF93a19wcmludGVkRG9jdW1lbnQ7CitA
ZW5kCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvaW9zL1BhZ2VDbGllbnRJ
bXBsSU9TLmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvaW9zL1BhZ2VDbGllbnRJbXBsSU9T
LmgKaW5kZXggNjM3MGQzZDcwY2NhMWZjMmMyZTBhMjhjZGVmMjZiM2QyODRlNDk2Yi4uNjhjN2Rl
ZmE0MzE1ZTYxMWIzYjExMjE0NGU2YjdmZGJmNWUxODEwNCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL2lvcy9QYWdlQ2xpZW50SW1wbElPUy5oCisrKyBiL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9pb3MvUGFnZUNsaWVudEltcGxJT1MuaApAQCAtMSw1ICsxLDUgQEAKIC8q
Ci0gKiBDb3B5cmlnaHQgKEMpIDIwMTIsIDIwMTMgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgorICogQ29weXJpZ2h0IChDKSAyMDEyLTIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0xNTIsOCArMTUyLDYg
QEAgcHJpdmF0ZToKICAgICB2b2lkIG92ZXJmbG93U2Nyb2xsV2lsbFN0YXJ0U2Nyb2xsKCkgb3Zl
cnJpZGU7CiAgICAgdm9pZCBvdmVyZmxvd1Njcm9sbERpZEVuZFNjcm9sbCgpIG92ZXJyaWRlOwog
Ci0gICAgdm9pZCBkaWRGaW5pc2hEcmF3aW5nUGFnZXNUb1BERihjb25zdCBJUEM6OkRhdGFSZWZl
cmVuY2UmKSBvdmVycmlkZTsKLQogICAgIC8vIEF1eGlsaWFyeSBDbGllbnQgQ3JlYXRpb24KICNp
ZiBFTkFCTEUoRlVMTFNDUkVFTl9BUEkpCiAgICAgdmlydWFsIFdlYkZ1bGxTY3JlZW5NYW5hZ2Vy
UHJveHlDbGllbnQmIGZ1bGxTY3JlZW5NYW5hZ2VyUHJveHlDbGllbnQoKSBvdmVycmlkZTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9pb3MvUGFnZUNsaWVudEltcGxJT1Mu
bW0gYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvaW9zL1BhZ2VDbGllbnRJbXBsSU9TLm1tCmlu
ZGV4IGQyMjI3MTI2M2RiZTY1NmQwZTMxODkzZWIyOGUzZGU2OGU4MGFmMzguLjZlOGUxMGZlNjZi
ZDQ2MjQ1YjdiYWU0NzRhMGE0NGEzZWY3YmQ2MjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9pb3MvUGFnZUNsaWVudEltcGxJT1MubW0KKysrIGIvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL2lvcy9QYWdlQ2xpZW50SW1wbElPUy5tbQpAQCAtMSw1ICsxLDUgQEAKIC8qCi0g
KiBDb3B5cmlnaHQgKEMpIDIwMTIsIDIwMTMgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgorICogQ29weXJpZ2h0IChDKSAyMDEyLTIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC02NjMsMTMgKzY2Myw2IEBA
IHZvaWQgUGFnZUNsaWVudEltcGw6Om92ZXJmbG93U2Nyb2xsRGlkRW5kU2Nyb2xsKCkKICAgICBb
bV9jb250ZW50VmlldyBfb3ZlcmZsb3dTY3JvbGxpbmdEaWRFbmRdOwogfQogCi12b2lkIFBhZ2VD
bGllbnRJbXBsOjpkaWRGaW5pc2hEcmF3aW5nUGFnZXNUb1BERihjb25zdCBJUEM6OkRhdGFSZWZl
cmVuY2UmIHBkZkRhdGEpCi17Ci0gICAgUmV0YWluUHRyPENGRGF0YVJlZj4gZGF0YSA9IGFkb3B0
Q0YoQ0ZEYXRhQ3JlYXRlKGtDRkFsbG9jYXRvckRlZmF1bHQsIHBkZkRhdGEuZGF0YSgpLCBwZGZE
YXRhLnNpemUoKSkpOwotICAgIFJldGFpblB0cjxDR0RhdGFQcm92aWRlclJlZj4gZGF0YVByb3Zp
ZGVyID0gYWRvcHRDRihDR0RhdGFQcm92aWRlckNyZWF0ZVdpdGhDRkRhdGEoZGF0YS5nZXQoKSkp
OwotICAgIG1fd2ViVmlldy5fcHJpbnRlZERvY3VtZW50ID0gYWRvcHRDRihDR1BERkRvY3VtZW50
Q3JlYXRlV2l0aFByb3ZpZGVyKGRhdGFQcm92aWRlci5nZXQoKSkpLmdldCgpOwotfQotCiBWZWN0
b3I8U3RyaW5nPiBQYWdlQ2xpZW50SW1wbDo6bWltZVR5cGVzV2l0aEN1c3RvbUNvbnRlbnRQcm92
aWRlcnMoKQogewogICAgIHJldHVybiBtX3dlYlZpZXcuX2NvbnRlbnRQcm92aWRlclJlZ2lzdHJ5
Ll9taW1lVHlwZXNXaXRoQ3VzdG9tQ29udGVudFByb3ZpZGVyczsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlldy5tbSBiL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlldy5tbQppbmRleCBjMWFkMTFhNmExYmMzMzhhMzRi
YWVmMmNjOTY1ZGEzYmY2NmZkM2QzLi4xZjdmZDdlOGE4NTA0ZDNkNjU3ZTk2ODRkNzhjYTQ5ZDY4
MzRjMjkyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvaW9zL1dLQ29udGVu
dFZpZXcubW0KKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3
Lm1tCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMywgMjAxNCBBcHBs
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTMtMjAxNiBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKQEAgLTMyLDYgKzMyLDcgQEAKICNpbXBvcnQgIkFjY2Vzc2liaWxpdHlJT1MuaCIKICNp
bXBvcnQgIkFwcGxpY2F0aW9uU3RhdGVUcmFja2VyLmgiCiAjaW1wb3J0ICJQYWdlQ2xpZW50SW1w
bElPUy5oIgorI2ltcG9ydCAiUHJpbnRJbmZvLmgiCiAjaW1wb3J0ICJSZW1vdGVMYXllclRyZWVE
cmF3aW5nQXJlYVByb3h5LmgiCiAjaW1wb3J0ICJSZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvclBy
b3h5LmgiCiAjaW1wb3J0ICJTbWFydE1hZ25pZmljYXRpb25Db250cm9sbGVyLmgiCkBAIC00OCw2
ICs0OSw4IEBACiAjaW1wb3J0ICJXZWJQYWdlR3JvdXAuaCIKICNpbXBvcnQgIldlYlByb2Nlc3NQ
b29sLmgiCiAjaW1wb3J0ICJXZWJTeXN0ZW1JbnRlcmZhY2UuaCIKKyNpbXBvcnQgIl9XS0ZyYW1l
SGFuZGxlSW50ZXJuYWwuaCIKKyNpbXBvcnQgIl9XS1dlYlZpZXdQcmludEZvcm1hdHRlckludGVy
bmFsLmgiCiAjaW1wb3J0IDxDb3JlR3JhcGhpY3MvQ29yZUdyYXBoaWNzLmg+CiAjaW1wb3J0IDxX
ZWJDb3JlL0Zsb2F0UXVhZC5oPgogI2ltcG9ydCA8V2ViQ29yZS9GcmFtZVZpZXcuaD4KQEAgLTE4
MSw2ICsxODQsOSBAQCBAaW1wbGVtZW50YXRpb24gV0tDb250ZW50VmlldyB7CiAgICAgUmV0YWlu
UHRyPE5TVW5kb01hbmFnZXI+IF91bmRvTWFuYWdlcjsKIAogICAgIHN0ZDo6dW5pcXVlX3B0cjxB
cHBsaWNhdGlvblN0YXRlVHJhY2tlcj4gX2FwcGxpY2F0aW9uU3RhdGVUcmFja2VyOworCisgICAg
Qk9PTCBfaXNQcmludGluZ1RvUERGOworICAgIFJldGFpblB0cjxDR1BERkRvY3VtZW50UmVmPiBf
cHJpbnRlZERvY3VtZW50OwogfQogCiAtIChpbnN0YW5jZXR5cGUpX2NvbW1vbkluaXRpYWxpemF0
aW9uV2l0aFByb2Nlc3NQb29sOihXZWJLaXQ6OldlYlByb2Nlc3NQb29sJilwcm9jZXNzUG9vbCBj
b25maWd1cmF0aW9uOihSZWY8QVBJOjpQYWdlQ29uZmlndXJhdGlvbj4mJiljb25maWd1cmF0aW9u
CkBAIC02MTAsNCArNjE2LDY1IEBAIC0gKHZvaWQpX2FwcGxpY2F0aW9uRGlkQmVjb21lQWN0aXZl
OihOU05vdGlmaWNhdGlvbiopbm90aWZpY2F0aW9uCiAKIEBlbmQKIAorI3ByYWdtYSBtYXJrIFBy
aW50aW5nCisKK0BpbnRlcmZhY2UgV0tDb250ZW50VmlldyAoX1dLV2ViVmlld1ByaW50Rm9ybWF0
dGVyKSA8X1dLV2ViVmlld1ByaW50UHJvdmlkZXI+CitAZW5kCisKK0BpbXBsZW1lbnRhdGlvbiBX
S0NvbnRlbnRWaWV3IChfV0tXZWJWaWV3UHJpbnRGb3JtYXR0ZXIpCisKKy0gKE5TVUludGVnZXIp
X3drX3BhZ2VDb3VudEZvclByaW50Rm9ybWF0dGVyOihfV0tXZWJWaWV3UHJpbnRGb3JtYXR0ZXIg
KilwcmludEZvcm1hdHRlcgoreworICAgIGlmIChfaXNQcmludGluZ1RvUERGKQorICAgICAgICBy
ZXR1cm4gMDsKKworICAgIHVpbnQ2NF90IGZyYW1lSUQ7CisgICAgaWYgKF9XS0ZyYW1lSGFuZGxl
ICpoYW5kbGUgPSBwcmludEZvcm1hdHRlci5mcmFtZVRvUHJpbnQpCisgICAgICAgIGZyYW1lSUQg
PSBoYW5kbGUuX2ZyYW1lSUQ7CisgICAgZWxzZSBpZiAoYXV0byBtYWluRnJhbWUgPSBfcGFnZS0+
bWFpbkZyYW1lKCkpCisgICAgICAgIGZyYW1lSUQgPSBtYWluRnJhbWUtPmZyYW1lSUQoKTsKKyAg
ICBlbHNlCisgICAgICAgIHJldHVybiAwOworCisgICAgLy8gVGhlIGZpcnN0IHBhZ2UgY2FuIGhh
dmUgYSBzbWFsbGVyIGNvbnRlbnQgcmVjdCB0aGFuIHN1YnNlcXVlbnQgcGFnZXMgaWYgYSB0b3Ag
Y29udGVudCBpbnNldAorICAgIC8vIGlzIHNwZWNpZmllZC4gU2luY2UgV2ViS2l0IHJlcXVpcmVz
IGEgdW5pZm9ybSBjb250ZW50IHJlY3QgZm9yIGVhY2ggcGFnZSBkdXJpbmcgbGF5b3V0LCB1c2UK
KyAgICAvLyB0aGUgaW50ZXJzZWN0aW9uIG9mIHRoZSBmaXJzdCBhbmQgbm9uLWZpcnN0IHBhZ2Ug
cmVjdHMuCisgICAgLy8gRklYTUU6IFRlYWNoIFdlYkNvcmU6OlByaW50Q29udGV4dCB0byBhY2Nl
cHQgYW4gaW5pdGlhbCBjb250ZW50IG9mZnNldCB3aGVuIHBhZ2luYXRpbmcuCisgICAgQ0dSZWN0
IHByaW50aW5nUmVjdCA9IENHUmVjdEludGVyc2VjdGlvbihbcHJpbnRGb3JtYXR0ZXIgX3BhZ2VD
b250ZW50UmVjdDpZRVNdLCBbcHJpbnRGb3JtYXR0ZXIgX3BhZ2VDb250ZW50UmVjdDpOT10pOwor
ICAgIGlmIChDR1JlY3RJc0VtcHR5KHByaW50aW5nUmVjdCkpCisgICAgICAgIHJldHVybiAwOwor
CisgICAgUHJpbnRJbmZvIHByaW50SW5mbzsKKyAgICBwcmludEluZm8ucGFnZVNldHVwU2NhbGVG
YWN0b3IgPSAxOworICAgIHByaW50SW5mby5hdmFpbGFibGVQYXBlcldpZHRoID0gQ0dSZWN0R2V0
V2lkdGgocHJpbnRpbmdSZWN0KTsKKyAgICBwcmludEluZm8uYXZhaWxhYmxlUGFwZXJIZWlnaHQg
PSBDR1JlY3RHZXRIZWlnaHQocHJpbnRpbmdSZWN0KTsKKworICAgIF9pc1ByaW50aW5nVG9QREYg
PSBZRVM7CisgICAgYXV0byByZXRhaW5lZFNlbGYgPSByZXRhaW5QdHIoc2VsZik7CisgICAgcmV0
dXJuIF9wYWdlLT5jb21wdXRlUGFnZXNGb3JQcmludGluZ0FuZERyYXdUb1BERihmcmFtZUlELCBw
cmludEluZm8sIFtyZXRhaW5lZFNlbGZdKGNvbnN0IElQQzo6RGF0YVJlZmVyZW5jZSYgcGRmRGF0
YSwgQ2FsbGJhY2tCYXNlOjpFcnJvciBlcnJvcikgeworICAgICAgICByZXRhaW5lZFNlbGYtPl9p
c1ByaW50aW5nVG9QREYgPSBOTzsKKyAgICAgICAgaWYgKGVycm9yICE9IENhbGxiYWNrQmFzZTo6
RXJyb3I6Ok5vbmUpCisgICAgICAgICAgICByZXR1cm47CisKKyAgICAgICAgYXV0byBkYXRhID0g
YWRvcHRDRihDRkRhdGFDcmVhdGUoa0NGQWxsb2NhdG9yRGVmYXVsdCwgcGRmRGF0YS5kYXRhKCks
IHBkZkRhdGEuc2l6ZSgpKSk7CisgICAgICAgIGF1dG8gZGF0YVByb3ZpZGVyID0gYWRvcHRDRihD
R0RhdGFQcm92aWRlckNyZWF0ZVdpdGhDRkRhdGEoZGF0YS5nZXQoKSkpOworICAgICAgICByZXRh
aW5lZFNlbGYtPl9wcmludGVkRG9jdW1lbnQgPSBhZG9wdENGKENHUERGRG9jdW1lbnRDcmVhdGVX
aXRoUHJvdmlkZXIoZGF0YVByb3ZpZGVyLmdldCgpKSk7CisgICAgfSk7Cit9CisKKy0gKENHUERG
RG9jdW1lbnRSZWYpX3drX3ByaW50ZWREb2N1bWVudAoreworICAgIGlmIChfaXNQcmludGluZ1Rv
UERGKSB7CisgICAgICAgIGlmICghX3BhZ2UtPnByb2Nlc3MoKS5jb25uZWN0aW9uKCktPndhaXRG
b3JBbmREaXNwYXRjaEltbWVkaWF0ZWx5PE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OkRyYXdUb1BE
RkNhbGxiYWNrPihfcGFnZS0+cGFnZUlEKCksIHN0ZDo6Y2hyb25vOjptaWxsaXNlY29uZHM6Om1h
eCgpKSkgeworICAgICAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgICAgICAgICBy
ZXR1cm4gbnVsbHB0cjsKKyAgICAgICAgfQorICAgICAgICBBU1NFUlQoIV9pc1ByaW50aW5nVG9Q
REYpOworICAgIH0KKworICAgIHJldHVybiBfcHJpbnRlZERvY3VtZW50LmF1dG9yZWxlYXNlKCk7
Cit9CisKK0BlbmQKKwogI2VuZGlmIC8vIFBMQVRGT1JNKElPUykKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9pb3MvV0tQREZWaWV3Lm1tIGIvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL2lvcy9XS1BERlZpZXcubW0KaW5kZXggMjY4ODM2OGNiYWJhMDMwYjc3MGUwOTIxMmEz
ODgzZjI2ZGNjNTM4My4uNzkzNzY0NjkzZmY1Mjg5NTg2MjAyMGY0NzliM2NlMTBjYzYzZTllNiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2lvcy9XS1BERlZpZXcubW0KKysr
IGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2lvcy9XS1BERlZpZXcubW0KQEAgLTEsNSArMSw1
IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDE0IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxNC0yMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMzksNiArMzksNyBA
QAogI2ltcG9ydCAiV2Vha09iakNQdHIuaCIKICNpbXBvcnQgIldlYlBhZ2VQcm94eS5oIgogI2lt
cG9ydCAiX1dLRmluZERlbGVnYXRlLmgiCisjaW1wb3J0ICJfV0tXZWJWaWV3UHJpbnRGb3JtYXR0
ZXJJbnRlcm5hbC5oIgogI2ltcG9ydCA8TW9iaWxlQ29yZVNlcnZpY2VzL1VUQ29yZVR5cGVzLmg+
CiAjaW1wb3J0IDxXZWJDb3JlL0Zsb2F0UmVjdC5oPgogI2ltcG9ydCA8V2ViQ29yZS9Mb2NhbGl6
ZWRTdHJpbmdzLmg+CkBAIC04OTAsNCArODkxLDI2IEBAIC0gKHZvaWQpX2FwcGxpY2F0aW9uV2ls
bEVudGVyRm9yZWdyb3VuZAogCiBAZW5kCiAKKyNwcmFnbWEgbWFyayBQcmludGluZworCitAaW50
ZXJmYWNlIFdLUERGVmlldyAoX1dLV2ViVmlld1ByaW50Rm9ybWF0dGVyKSA8X1dLV2ViVmlld1By
aW50UHJvdmlkZXI+CitAZW5kCisKK0BpbXBsZW1lbnRhdGlvbiBXS1BERlZpZXcgKF9XS1dlYlZp
ZXdQcmludEZvcm1hdHRlcikKKworLSAoTlNVSW50ZWdlcilfd2tfcGFnZUNvdW50Rm9yUHJpbnRG
b3JtYXR0ZXI6KF9XS1dlYlZpZXdQcmludEZvcm1hdHRlciAqKXByaW50Rm9ybWF0dGVyCit7Cisg
ICAgQ0dQREZEb2N1bWVudFJlZiBkb2N1bWVudCA9IF9jZ1BERkRvY3VtZW50LmdldCgpOworICAg
IGlmIChDR1BERkRvY3VtZW50QWxsb3dzUHJpbnRpbmcoZG9jdW1lbnQpKQorICAgICAgICByZXR1
cm4gQ0dQREZEb2N1bWVudEdldE51bWJlck9mUGFnZXMoZG9jdW1lbnQpOworICAgIHJldHVybiAw
OworfQorCistIChDR1BERkRvY3VtZW50UmVmKV93a19wcmludGVkRG9jdW1lbnQKK3sKKyAgICBy
ZXR1cm4gX2NnUERGRG9jdW1lbnQuZ2V0KCk7Cit9CisKK0BlbmQKKwogI2VuZGlmIC8qIFBMQVRG
T1JNKElPUykgKi8KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9pb3MvV2Vi
UGFnZVByb3h5SU9TLm1tIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2lvcy9XZWJQYWdlUHJv
eHlJT1MubW0KaW5kZXggNTdlYmZlZjBhMGRhMzE3ZWQ4ZDEzNGU3MmMzYjhkNzRhMGMwNTMyNC4u
MjE2ZWE3NzQ1NDRlYzI1YjYxNTVlY2ZiMjVkMjQyMTk1ODVlNjU1MyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL2lvcy9XZWJQYWdlUHJveHlJT1MubW0KKysrIGIvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL2lvcy9XZWJQYWdlUHJveHlJT1MubW0KQEAgLTEsNSArMSw1IEBA
CiAvKgotICogQ29weXJpZ2h0IChDKSAyMDEyIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KKyAqIENvcHlyaWdodCAoQykgMjAxMi0yMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMzQsNiArMzQsNyBAQAog
I2ltcG9ydCAiSW50ZXJhY3Rpb25JbmZvcm1hdGlvbkF0UG9zaXRpb24uaCIKICNpbXBvcnQgIk5h
dGl2ZVdlYktleWJvYXJkRXZlbnQuaCIKICNpbXBvcnQgIlBhZ2VDbGllbnQuaCIKKyNpbXBvcnQg
IlByaW50SW5mby5oIgogI2ltcG9ydCAiUmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWFQcm94eS5o
IgogI2ltcG9ydCAiUmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWFQcm94eU1lc3NhZ2VzLmgiCiAj
aW1wb3J0ICJSZW1vdGVMYXllclRyZWVUcmFuc2FjdGlvbi5oIgpAQCAtOTYyLDkgKzk2MywyNSBA
QCB2b2lkIFdlYlBhZ2VQcm94eTo6ZGlzYWJsZURvdWJsZVRhcEdlc3R1cmVzRHVyaW5nVGFwSWZO
ZWNlc3NhcnkodWludDY0X3QgcmVxdWVzdAogICAgIG1fcGFnZUNsaWVudC5kaXNhYmxlRG91Ymxl
VGFwR2VzdHVyZXNEdXJpbmdUYXBJZk5lY2Vzc2FyeShyZXF1ZXN0SUQpOwogfQogCi12b2lkIFdl
YlBhZ2VQcm94eTo6ZGlkRmluaXNoRHJhd2luZ1BhZ2VzVG9QREYoY29uc3QgSVBDOjpEYXRhUmVm
ZXJlbmNlJiBwZGZEYXRhKQordWludDMyX3QgV2ViUGFnZVByb3h5Ojpjb21wdXRlUGFnZXNGb3JQ
cmludGluZ0FuZERyYXdUb1BERih1aW50NjRfdCBmcmFtZUlELCBjb25zdCBQcmludEluZm8mIHBy
aW50SW5mbywgRHJhd1RvUERGQ2FsbGJhY2s6OkNhbGxiYWNrRnVuY3Rpb24mJiBjYWxsYmFjaykK
IHsKLSAgICBtX3BhZ2VDbGllbnQuZGlkRmluaXNoRHJhd2luZ1BhZ2VzVG9QREYocGRmRGF0YSk7
CisgICAgaWYgKCFpc1ZhbGlkKCkpIHsKKyAgICAgICAgY2FsbGJhY2soSVBDOjpEYXRhUmVmZXJl
bmNlKCksIENhbGxiYWNrQmFzZTo6RXJyb3I6Ok93bmVyV2FzSW52YWxpZGF0ZWQpOworICAgICAg
ICByZXR1cm4gMDsKKyAgICB9CisKKyAgICB1aW50MzJfdCBwYWdlQ291bnQgPSAwOworICAgIHVp
bnQ2NF90IGNhbGxiYWNrSUQgPSBtX2NhbGxiYWNrcy5wdXQoV1RGTW92ZShjYWxsYmFjayksIG1f
cHJvY2Vzcy0+dGhyb3R0bGVyKCkuYmFja2dyb3VuZEFjdGl2aXR5VG9rZW4oKSk7CisgICAgdXNp
bmcgTWVzc2FnZSA9IE1lc3NhZ2VzOjpXZWJQYWdlOjpDb21wdXRlUGFnZXNGb3JQcmludGluZ0Fu
ZERyYXdUb1BERjsKKyAgICBwcm9jZXNzKCkuc2VuZFN5bmMoTWVzc2FnZShmcmFtZUlELCBwcmlu
dEluZm8sIGNhbGxiYWNrSUQpLCBNZXNzYWdlOjpSZXBseShwYWdlQ291bnQpLCBtX3BhZ2VJRCk7
CisgICAgcmV0dXJuIHBhZ2VDb3VudDsKK30KKwordm9pZCBXZWJQYWdlUHJveHk6OmRyYXdUb1BE
RkNhbGxiYWNrKGNvbnN0IElQQzo6RGF0YVJlZmVyZW5jZSYgcGRmRGF0YSwgdWludDY0X3QgY2Fs
bGJhY2tJRCkKK3sKKyAgICBhdXRvIGNhbGxiYWNrID0gbV9jYWxsYmFja3MudGFrZTxEcmF3VG9Q
REZDYWxsYmFjaz4oY2FsbGJhY2tJRCk7CisgICAgUkVMRUFTRV9BU1NFUlQoY2FsbGJhY2spOwor
ICAgIGNhbGxiYWNrLT5wZXJmb3JtQ2FsbGJhY2tXaXRoUmV0dXJuVmFsdWUocGRmRGF0YSk7CiB9
CiAKIHZvaWQgV2ViUGFnZVByb3h5Ojpjb250ZW50U2l6ZUNhdGVnb3J5RGlkQ2hhbmdlKGNvbnN0
IFN0cmluZyYgY29udGVudFNpemVDYXRlZ29yeSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQy
L1dlYktpdDIueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJLaXQyL1dlYktp
dDIueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCAyOWU4N2MyZTUzYWRiMzhlYzlmMDM0
YTgwM2Q0NWFmNjhkOWNiYzAzLi45M2ZkYjdkNGI4OTkwNWU3ZDk1YWY4NGZiNmRlOThhNDdjOGRm
YTQwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJLaXQyLnhjb2RlcHJvai9wcm9qZWN0
LnBieHByb2oKKysrIGIvU291cmNlL1dlYktpdDIvV2ViS2l0Mi54Y29kZXByb2ovcHJvamVjdC5w
Ynhwcm9qCkBAIC0xMjYxLDYgKzEyNjEsNyBAQAogCQlBMTE4QTlGMzE5MDhCOEVBMDBGN0M5MkIg
LyogX1dLTlNGaWxlTWFuYWdlckV4dHJhcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gQTExOEE5RjExOTA4QjhFQTAwRjdDOTJCIC8qIF9XS05TRmlsZU1h
bmFnZXJFeHRyYXMuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9
OyB9OwogCQlBMTgyRDVCNDFCRTZCRDI1MDA4N0E3Q0MgLyogQWNjZXNzaWJpbGl0eUlPUy5tbSBp
biBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEExODJENUIyMUJF
NkJEMjUwMDg3QTdDQyAvKiBBY2Nlc3NpYmlsaXR5SU9TLm1tICovOyB9OwogCQlBMTgyRDVCNTFC
RTZCRDI1MDA4N0E3Q0MgLyogQWNjZXNzaWJpbGl0eUlPUy5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTE4MkQ1QjMxQkU2QkQyNTAwODdBN0NDIC8qIEFj
Y2Vzc2liaWxpdHlJT1MuaCAqLzsgfTsKKwkJQTE5REQzQzAxRDA3RDE2ODAwQUM4MjNCIC8qIF9X
S1dlYlZpZXdQcmludEZvcm1hdHRlckludGVybmFsLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBMTlERDNCRjFEMDdEMTY4MDBBQzgyM0IgLyogX1dLV2Vi
Vmlld1ByaW50Rm9ybWF0dGVySW50ZXJuYWwuaCAqLzsgfTsKIAkJQTFBNEZFNUExOERDRTlGQTAw
QjVFQThBIC8qIF9XS0Rvd25sb2FkLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSBBMUE0RkU1NzE4RENFOUZBMDBCNUVBOEEgLyogX1dLRG93bmxvYWQuaCAq
Lzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlBMUE0RkU1
QjE4RENFOUZBMDBCNUVBOEEgLyogX1dLRG93bmxvYWQubW0gaW4gU291cmNlcyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBMUE0RkU1ODE4RENFOUZBMDBCNUVBOEEgLyogX1dL
RG93bmxvYWQubW0gKi87IH07CiAJCUExQTRGRTVDMThEQ0U5RkEwMEI1RUE4QSAvKiBfV0tEb3du
bG9hZEludGVybmFsLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSBBMUE0RkU1OTE4RENFOUZBMDBCNUVBOEEgLyogX1dLRG93bmxvYWRJbnRlcm5hbC5oICov
OyB9OwpAQCAtMzMxMiw2ICszMzEzLDcgQEAKIAkJQTExOEE5RjExOTA4QjhFQTAwRjdDOTJCIC8q
IF9XS05TRmlsZU1hbmFnZXJFeHRyYXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gX1dLTlNGaWxlTWFuYWdlckV4dHJhcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQlBMTgyRDVCMjFCRTZCRDI1MDA4N0E3Q0MgLyogQWNjZXNzaWJpbGl0eUlPUy5tbSAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IEFjY2Vzc2liaWxpdHlJT1MubW07IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUExODJENUIzMUJFNkJEMjUwMDg3QTdDQyAvKiBB
Y2Nlc3NpYmlsaXR5SU9TLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEFjY2Vz
c2liaWxpdHlJT1MuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQTE5REQzQkYxRDA3
RDE2ODAwQUM4MjNCIC8qIF9XS1dlYlZpZXdQcmludEZvcm1hdHRlckludGVybmFsLmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IF9XS1dlYlZpZXdQcmludEZvcm1hdHRlckludGVy
bmFsLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUExQTRGRTU3MThEQ0U5RkEwMEI1
RUE4QSAvKiBfV0tEb3dubG9hZC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBf
V0tEb3dubG9hZC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlBMUE0RkU1ODE4RENF
OUZBMDBCNUVBOEEgLyogX1dLRG93bmxvYWQubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5v
YmpjcHA7IHBhdGggPSBfV0tEb3dubG9hZC5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJQTFBNEZFNTkxOERDRTlGQTAwQjVFQThBIC8qIF9XS0Rvd25sb2FkSW50ZXJuYWwuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gX1dLRG93bmxvYWRJbnRlcm5hbC5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtNDg2NCw2ICs0ODY2LDcgQEAKIAkJCWNoaWxkcmVu
ID0gKAogCQkJCUM1NDI1NkFFMThCRUMxNjEwMERFNDE3OSAvKiBmb3JtcyAqLywKIAkJCQlBMTE1
REM2RTE5MUQ4MkFCMDBEQTgwNzIgLyogX1dLV2ViVmlld1ByaW50Rm9ybWF0dGVyLmggKi8sCisJ
CQkJQTE5REQzQkYxRDA3RDE2ODAwQUM4MjNCIC8qIF9XS1dlYlZpZXdQcmludEZvcm1hdHRlcklu
dGVybmFsLmggKi8sCiAJCQkJQTExNURDNkQxOTFEODJBQjAwREE4MDcyIC8qIF9XS1dlYlZpZXdQ
cmludEZvcm1hdHRlci5tbSAqLywKIAkJCQkxQUQ0QzE5MTFCMzlGMzMyMDBBQkMyOEUgLyogQXBw
bGljYXRpb25TdGF0ZVRyYWNrZXIuaCAqLywKIAkJCQkxQUQ0QzE5MDFCMzlGMzMyMDBBQkMyOEUg
LyogQXBwbGljYXRpb25TdGF0ZVRyYWNrZXIubW0gKi8sCkBAIC04MDY4LDYgKzgwNzEsNyBAQAog
CQkJCTM3OTQ4NDA5MTUwQzRCOTcwMEU1MkNFOSAvKiBXS1JlbmRlckxheWVyLmggaW4gSGVhZGVy
cyAqLywKIAkJCQkzNzYwODgyMzE1MDQxNEY3MDBGQzgyQzcgLyogV0tSZW5kZXJPYmplY3QuaCBp
biBIZWFkZXJzICovLAogCQkJCTMzMzY3NjNCMTMwQzk5REMwMDZDOURFMiAvKiBXS1Jlc291cmNl
Q2FjaGVNYW5hZ2VyLmggaW4gSGVhZGVycyAqLywKKwkJCQlBMTlERDNDMDFEMDdEMTY4MDBBQzgy
M0IgLyogX1dLV2ViVmlld1ByaW50Rm9ybWF0dGVySW50ZXJuYWwuaCBpbiBIZWFkZXJzICovLAog
CQkJCUJDOEE1MDE1MTE3NjVGNTYwMDc1NzU3MyAvKiBXS1JldGFpblB0ci5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJMUE3RTM3NzkxOEU0QTRGRTAwM0QwRkZGIC8qIFdLU2NyaXB0TWVzc2FnZS5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJMUE3RTM3NzUxOEU0QTMzQTAwM0QwRkZGIC8qIFdLU2NyaXB0TWVz
c2FnZUhhbmRsZXIuaCBpbiBIZWFkZXJzICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
V2ViUGFnZS9XZWJQYWdlLmgKaW5kZXggNmI5ZWQ5NzNhNWZiOGRlZTU1NzRhZWY5Y2Y0NjkyZDI0
MzczNTJjNS4uYjFkYWExMjA2NjM3ZjY4ZmRjZWExNzRkZWZlYTk2OTA0YTk2NmQ3YiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaAorKysgYi9T
b3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oCkBAIC0xLDUgKzEsNSBA
QAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMCwgMjAxMSwgMjAxMyBBcHBsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAtMjAxNiBBcHBsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTc0
Myw3ICs3NDMsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBkcmF3UGFnZXNUb1BERih1aW50NjRfdCBm
cmFtZUlELCBjb25zdCBQcmludEluZm8mLCB1aW50MzJfdCBmaXJzdCwgdWludDMyX3QgY291bnQs
IHVpbnQ2NF90IGNhbGxiYWNrSUQpOwogICAgIHZvaWQgZHJhd1BhZ2VzVG9QREZJbXBsKHVpbnQ2
NF90IGZyYW1lSUQsIGNvbnN0IFByaW50SW5mbyYsIHVpbnQzMl90IGZpcnN0LCB1aW50MzJfdCBj
b3VudCwgUmV0YWluUHRyPENGTXV0YWJsZURhdGFSZWY+JiBwZGZQYWdlRGF0YSk7CiAjaWYgUExB
VEZPUk0oSU9TKQotICAgIHZvaWQgY29tcHV0ZVBhZ2VzRm9yUHJpbnRpbmdBbmRTdGFydERyYXdp
bmdUb1BERih1aW50NjRfdCBmcmFtZUlELCBjb25zdCBQcmludEluZm8mLCB1aW50MzJfdCBmaXJz
dFBhZ2UsIFBhc3NSZWZQdHI8TWVzc2FnZXM6OldlYlBhZ2U6OkNvbXB1dGVQYWdlc0ZvclByaW50
aW5nQW5kU3RhcnREcmF3aW5nVG9QREY6OkRlbGF5ZWRSZXBseT4pOworICAgIHZvaWQgY29tcHV0
ZVBhZ2VzRm9yUHJpbnRpbmdBbmREcmF3VG9QREYodWludDY0X3QgZnJhbWVJRCwgY29uc3QgUHJp
bnRJbmZvJiwgdWludDY0X3QgY2FsbGJhY2tJRCwgUGFzc1JlZlB0cjxNZXNzYWdlczo6V2ViUGFn
ZTo6Q29tcHV0ZVBhZ2VzRm9yUHJpbnRpbmdBbmREcmF3VG9QREY6OkRlbGF5ZWRSZXBseT4pOwog
I2VuZGlmCiAjZWxpZiBQTEFURk9STShHVEspCiAgICAgdm9pZCBkcmF3UGFnZXNGb3JQcmludGlu
Zyh1aW50NjRfdCBmcmFtZUlELCBjb25zdCBQcmludEluZm8mLCB1aW50NjRfdCBjYWxsYmFja0lE
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdl
Lm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2Uu
bWVzc2FnZXMuaW4KaW5kZXggNzVlMDQzNzQ3ZjY0MmRhZTU4NjlhYTM5YTE4NDg4Yjc1MDJiZDVh
Ny4uMDExN2E3MTAzNzlhZWUyNmRlN2Q2MTE2MTYwZDc0MTQ1NTM4MDRmNyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UubWVzc2FnZXMuaW4KKysr
IGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UubWVzc2FnZXMuaW4K
QEAgLTEsNCArMSw0IEBACi0jIENvcHlyaWdodCAoQykgMjAxMCwgMjAxMSBBcHBsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCisjIENvcHlyaWdodCAoQykgMjAxMC0yMDE2IEFwcGxlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KICMKICMgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAjIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMzAx
LDcgKzMwMSw3IEBAIG1lc3NhZ2VzIC0+IFdlYlBhZ2UgTGVnYWN5UmVjZWl2ZXIgewogICAgIERy
YXdSZWN0VG9JbWFnZSh1aW50NjRfdCBmcmFtZUlELCBzdHJ1Y3QgV2ViS2l0OjpQcmludEluZm8g
cHJpbnRJbmZvLCBXZWJDb3JlOjpJbnRSZWN0IHJlY3QsIFdlYkNvcmU6OkludFNpemUgaW1hZ2VT
aXplLCB1aW50NjRfdCBjYWxsYmFja0lEKQogICAgIERyYXdQYWdlc1RvUERGKHVpbnQ2NF90IGZy
YW1lSUQsIHN0cnVjdCBXZWJLaXQ6OlByaW50SW5mbyBwcmludEluZm8sIHVpbnQzMl90IGZpcnN0
LCB1aW50MzJfdCBjb3VudCwgdWludDY0X3QgY2FsbGJhY2tJRCkKICNpZiBQTEFURk9STShJT1Mp
Ci0gICAgQ29tcHV0ZVBhZ2VzRm9yUHJpbnRpbmdBbmRTdGFydERyYXdpbmdUb1BERih1aW50NjRf
dCBmcmFtZUlELCBzdHJ1Y3QgV2ViS2l0OjpQcmludEluZm8gcHJpbnRJbmZvLCB1aW50MzJfdCBm
aXJzdFBhZ2UpIC0+IChWZWN0b3I8V2ViQ29yZTo6SW50UmVjdD4gcGFnZVJlY3RzLCBkb3VibGUg
dG90YWxTY2FsZUZhY3RvcikgRGVsYXllZAorICAgIENvbXB1dGVQYWdlc0ZvclByaW50aW5nQW5k
RHJhd1RvUERGKHVpbnQ2NF90IGZyYW1lSUQsIHN0cnVjdCBXZWJLaXQ6OlByaW50SW5mbyBwcmlu
dEluZm8sIHVpbnQ2NF90IGNhbGxiYWNrSUQpIC0+ICh1aW50MzJfdCBwYWdlQ291bnQpIERlbGF5
ZWQKICNlbmRpZgogI2VuZGlmCiAjaWYgUExBVEZPUk0oR1RLKQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL2lvcy9XZWJQYWdlSU9TLm1tIGIvU291cmNlL1dl
YktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL2lvcy9XZWJQYWdlSU9TLm1tCmluZGV4IDc2Yjg2MzJi
MzAyNDk0YjI3NWI0Y2JmNzFkZjRhMDNkOGZlMjA0ODQuLmJiY2FiMTVhZDAyMDVjOTI1YzNjMDJk
NzlmZmVkMzQ2YTQ5NDJkODggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
V2ViUGFnZS9pb3MvV2ViUGFnZUlPUy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNz
L1dlYlBhZ2UvaW9zL1dlYlBhZ2VJT1MubW0KQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJp
Z2h0IChDKSAyMDEyLTIwMTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29w
eXJpZ2h0IChDKSAyMDEyLTIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoK
ICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0zMTI4LDE3ICszMTI4LDIxIEBAIHZvaWQg
V2ViUGFnZTo6ZGlzcGF0Y2hBc3luY2hyb25vdXNUb3VjaEV2ZW50cyhjb25zdCBWZWN0b3I8V2Vi
VG91Y2hFdmVudCwgMT4mIHF1CiB9CiAjZW5kaWYKIAotdm9pZCBXZWJQYWdlOjpjb21wdXRlUGFn
ZXNGb3JQcmludGluZ0FuZFN0YXJ0RHJhd2luZ1RvUERGKHVpbnQ2NF90IGZyYW1lSUQsIGNvbnN0
IFByaW50SW5mbyYgcHJpbnRJbmZvLCB1aW50MzJfdCBmaXJzdFBhZ2UsIFBhc3NSZWZQdHI8TWVz
c2FnZXM6OldlYlBhZ2U6OkNvbXB1dGVQYWdlc0ZvclByaW50aW5nQW5kU3RhcnREcmF3aW5nVG9Q
REY6OkRlbGF5ZWRSZXBseT4gcmVwbHkpCit2b2lkIFdlYlBhZ2U6OmNvbXB1dGVQYWdlc0ZvclBy
aW50aW5nQW5kRHJhd1RvUERGKHVpbnQ2NF90IGZyYW1lSUQsIGNvbnN0IFByaW50SW5mbyYgcHJp
bnRJbmZvLCB1aW50NjRfdCBjYWxsYmFja0lELCBQYXNzUmVmUHRyPE1lc3NhZ2VzOjpXZWJQYWdl
OjpDb21wdXRlUGFnZXNGb3JQcmludGluZ0FuZERyYXdUb1BERjo6RGVsYXllZFJlcGx5PiByZXBs
eSkKIHsKICAgICBWZWN0b3I8V2ViQ29yZTo6SW50UmVjdD4gcGFnZVJlY3RzOwotICAgIGRvdWJs
ZSB0b3RhbFNjYWxlRmFjdG9yID0gMTsKKyAgICBkb3VibGUgdG90YWxTY2FsZUZhY3RvcjsKICAg
ICBjb21wdXRlUGFnZXNGb3JQcmludGluZ0ltcGwoZnJhbWVJRCwgcHJpbnRJbmZvLCBwYWdlUmVj
dHMsIHRvdGFsU2NhbGVGYWN0b3IpOworCiAgICAgc3RkOjpzaXplX3QgcGFnZUNvdW50ID0gcGFn
ZVJlY3RzLnNpemUoKTsKLSAgICByZXBseS0+c2VuZChXVEZNb3ZlKHBhZ2VSZWN0cyksIHRvdGFs
U2NhbGVGYWN0b3IpOworICAgIEFTU0VSVChwYWdlQ291bnQgPD0gc3RkOjpudW1lcmljX2xpbWl0
czx1aW50MzJfdD46Om1heCgpKTsKKyAgICByZXBseS0+c2VuZChwYWdlQ291bnQpOwogCiAgICAg
UmV0YWluUHRyPENGTXV0YWJsZURhdGFSZWY+IHBkZlBhZ2VEYXRhOwotICAgIGRyYXdQYWdlc1Rv
UERGSW1wbChmcmFtZUlELCBwcmludEluZm8sIGZpcnN0UGFnZSwgcGFnZUNvdW50IC0gZmlyc3RQ
YWdlLCBwZGZQYWdlRGF0YSk7Ci0gICAgc2VuZChNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpEaWRG
aW5pc2hEcmF3aW5nUGFnZXNUb1BERihJUEM6OkRhdGFSZWZlcmVuY2UoQ0ZEYXRhR2V0Qnl0ZVB0
cihwZGZQYWdlRGF0YS5nZXQoKSksIENGRGF0YUdldExlbmd0aChwZGZQYWdlRGF0YS5nZXQoKSkp
KSk7CisgICAgZHJhd1BhZ2VzVG9QREZJbXBsKGZyYW1lSUQsIHByaW50SW5mbywgMCwgcGFnZUNv
dW50LCBwZGZQYWdlRGF0YSk7CisgICAgc2VuZChNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpEcmF3
VG9QREZDYWxsYmFjayhJUEM6OkRhdGFSZWZlcmVuY2UoQ0ZEYXRhR2V0Qnl0ZVB0cihwZGZQYWdl
RGF0YS5nZXQoKSksIENGRGF0YUdldExlbmd0aChwZGZQYWdlRGF0YS5nZXQoKSkpLCBjYWxsYmFj
a0lEKSk7CisKKyAgICBlbmRQcmludGluZygpOwogfQogCiB2b2lkIFdlYlBhZ2U6OmNvbnRlbnRT
aXplQ2F0ZWdvcnlEaWRDaGFuZ2UoY29uc3QgU3RyaW5nJiBjb250ZW50U2l6ZUNhdGVnb3J5KQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>280939</attachid>
            <date>2016-06-09 13:22:16 -0700</date>
            <delta_ts>2016-06-09 14:32:58 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-151386-20160609132345.patch</filename>
            <type>text/plain</type>
            <size>41426</size>
            <attacher name="Andy Estes">aestes</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjAxODc4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggMDA2ZTQ1OTRiNDgwOTA1
ODA2ZjM4YTA2MWViMDc1MzNmZmQ0OGFkOC4uOTgxMzk5NTU2ODMxNDhjZjM2ZGY1MGE0NDE5MTlh
YmM4MmJjYjM5YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEwMyBAQAorMjAxNi0wNi0wOSAgQW5k
eSBFc3RlcyAgPGFlc3Rlc0BhcHBsZS5jb20+CisKKyAgICAgICAgV0tXZWJWaWV3IGRvZXMgbm90
IHJlbmRlciBQREYgcGFnZXMgaW4gQWlyUHJpbnQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTE1MTM4NgorCisgICAgICAgIFJldmlld2VkIGJ5IFRpbSBI
b3J0b24uCisKKyAgICAgICAgX1dLV2ViVmlld1ByaW50Rm9ybWF0dGVyIG9yaWdpbmFsbHkgYXR0
ZW1wdGVkIHRvIGhhbmRsZSBQREZzLCBidXQgdGhlIGNvZGUgcGF0aCB3YXMgbmV2ZXIKKyAgICAg
ICAgcHJvcGVybHkgdGVzdGVkIHNpbmNlIFNhZmFyaSBwcmludHMgUERGcyBieSBzZXR0aW5nIGEg
cHJpbnRpbmdJdGVtIG9uIHRoZQorICAgICAgICBVSVByaW50SW50ZXJhY3Rpb25Db250cm9sbGVy
IGluc3RlYWQgb2YgZ29pbmcgdGhyb3VnaCBhIHByaW50IGZvcm1hdHRlci4gVGhlIGV4aXN0aW5n
IGNvZGUKKyAgICAgICAgYWxtb3N0IHdvcmtlZCwgaWYgaXQgd2VyZW4ndCBmb3IgQ0dDb250ZXh0
U2NhbGVDVE0oKSBzY2FsaW5nIGVhY2ggcGFnZSBpbnRvIG9ibGl2aW9uIGR1ZSB0bworICAgICAg
ICBfdG90YWxTY2FsZUZhY3RvciBlcXVhbGluZyAwLgorCisgICAgICAgIFRoaXMgcGF0Y2ggcHJv
cGVybHkgaW1wbGVtZW50cyAtW19XS1dlYlZpZXdQcmludEZvcm1hdHRlciBkcmF3SW5SZWN0OmZv
clBhZ2VBdEluZGV4Ol0gdG8KKyAgICAgICAgaGFuZGxlIGRyYXdpbmcgYm90aCBQREZzIGdlbmVy
YXRlZCBieSBXZWJLaXQgYW5kIFBERnMgbG9hZGVkIGluIHRoZSBtYWluIGZyYW1lLiBJdCBhbHNv
CisgICAgICAgIHRha2VzIHRoZSBvcHBvcnR1bml0eSB0byBjbGVhbiB1cCBhIG51bWJlciBvZiBp
c3N1ZXMgaW4gdGhlIGV4aXN0aW5nIGNvZGU6CisKKyAgICAgICAgLSBIYW5kbGluZyBvZiAtW19X
S1dlYlZpZXdQcmludEZvcm1hdHRlciBzdGFydFBhZ2VdIGlzIG5vdyBjb3JyZWN0LiBJIGhhZCBw
cmV2aW91c2x5IGFzc3VtZWQKKyAgICAgICAgICB0aGlzIHByb3BlcnR5IHJlcHJlc2VudGVkIHRo
ZSBmaXJzdCBwYWdlIG9mIG91dHB1dCB0byBwcmludCwgYnV0IGl0IGFjdHVhbGx5IHJlcHJlc2Vu
dHMKKyAgICAgICAgICB0aGUgZmlyc3QgcGFnZSBpbiB0aGUgb3ZlcmFsbCBwcmludCBqb2IgdGhh
dCB0aGUgcHJpbnQgZm9ybWF0dGVyIHJlbmRlcnMuIEluIG90aGVyIHdvcmRzLAorICAgICAgICAg
IHJlZ2FyZGxlc3Mgb2YgLXN0YXJ0UGFnZSwgdGhlIHByaW50IGZvcm1hdHRlciBzaG91bGQgYWx3
YXlzIHByaW50IGFsbCBpdHMgcGFnZXMuCisgICAgICAgIC0gQ29kZSBzcGVjaWZpYyB0byB3ZWJw
YWdlIGFuZCBQREYgcHJpbnRpbmcgd2FzIGZhY3RvcmVkIG91dCBpbnRvIFdLQ29udGVudFZpZXcg
YW5kCisgICAgICAgICAgV0tQREZWaWV3LCByZXNwZWN0aXZlbHkuIEVhY2ggY29uZm9ybXMgdG8g
QHByb3RvY29sKF9XS1dlYlZpZXdQcmludFByb3ZpZGVyKSwgYW5kCisgICAgICAgICAgX1dLV2Vi
Vmlld1ByaW50Rm9ybWF0dGVyIGFjY2Vzc2VzIHRoZSBwcm92aWRlciB2aWEgLVtXS1dlYlZpZXcg
X3ByaW50UHJvdmlkZXJdLgorICAgICAgICAtIEluc3RlYWQgb2YgcGlwaW5nIHRoZSBwcmludGVk
IFBERiBkYXRhIGZyb20gV2ViUGFnZVByb3h5IHRvIFdLV2ViVmlldyB2aWEgUGFnZUNsaWVudCwg
dXNlCisgICAgICAgICAgdGhlIEdlbmVyaWNDYWxsYmFjayBtZWNoYW5pc20gdG8gaGF2ZSBXZWJQ
YWdlUHJveHkgY2FsbCBhIGxhbWJkYSBzcGVjaWZpZWQgYnkKKyAgICAgICAgICBXS0NvbnRlbnRW
aWV3IHdoZW4gdGhlIHByaW50ZWQgUERGIGlzIGF2YWlsYWJsZS4KKyAgICAgICAgLSBSZW1vdmVk
IF90b3RhbFNjYWxlRmFjdG9yIGFuZCB1c2VkIENHUERGUGFnZUdldERyYXdpbmdUcmFuc2Zvcm0o
KSB0byB0cmFuc2Zvcm0gYm90aAorICAgICAgICAgIHdlYnBhZ2VzIGFuZCBQREZzLiBGb3Igd2Vi
cGFnZXMsIF90b3RhbFNjYWxlRmFjdG9yIHdpbGwgYWx3YXlzIGVxdWFsIHRoZSByYXRpbyBvZiB0
aGUKKyAgICAgICAgICBwYXBlciB3aWR0aCB0byB0aGUgUERGIHBhZ2Ugd2lkdGgsIHNvIENHUERG
UGFnZUdldERyYXdpbmdUcmFuc2Zvcm0oKSB3aWxsIGFwcGx5IHRoZSBzYW1lCisgICAgICAgICAg
c2NhbGluZyBhcyBDR0NvbnRleHRTY2FsZUNUTShfdG90YWxTY2FsZUZhY3RvciwgX3RvdGFsU2Nh
bGVGYWN0b3IpIHdvdWxkLgorCisgICAgICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZp
ZXcubW06CisgICAgICAgICgtW1dLV2ViVmlldyBfcHJpbnRQcm92aWRlcl0pOiBBZGRlZC4gUmV0
dXJucyBfY3VycmVudENvbnRlbnRWaWV3IGlmIGl0IGNvbmZvcm1zIHRvCisgICAgICAgIEBwcm90
b2NvbChfV0tXZWJWaWV3UHJpbnRQcm92aWRlcikuCisgICAgICAgICgtW1dLV2ViVmlldyBfY29t
cHV0ZVBhZ2VDb3VudEFuZFN0YXJ0RHJhd2luZ1RvUERGRm9yRnJhbWU6cHJpbnRJbmZvOmZpcnN0
UGFnZTpjb21wdXRlZFRvdGFsU2NhbGVGYWN0b3I6XSk6CisgICAgICAgIE1vdmVkIGNvZGUgdG8g
X3drX3BhZ2VDb3VudEZvclByaW50Rm9ybWF0dGVyIGluIFdLQ29udGVudFZpZXcgYW5kIFdLUERG
Vmlldy4KKyAgICAgICAgKC1bV0tXZWJWaWV3IF9lbmRQcmludGluZ10pOiBEZWxldGVkLgorICAg
ICAgICAoLVtXS1dlYlZpZXcgX3ByaW50ZWREb2N1bWVudF0pOiBEZWxldGVkLgorICAgICAgICAo
LVtXS1dlYlZpZXcgX3NldFByaW50ZWREb2N1bWVudDpdKTogRGVsZXRlZC4KKyAgICAgICAgKiBV
SVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlld0ludGVybmFsLmg6IERlY2xhcmVkIHRoZSBfcHJp
bnRQcm92aWRlciBwcm9wZXJ0eS4KKyAgICAgICAgKiBVSVByb2Nlc3MvUGFnZUNsaWVudC5oOiBS
ZW1vdmVkIGRpZEZpbmlzaERyYXdpbmdQYWdlc1RvUERGKCkuCisgICAgICAgICogVUlQcm9jZXNz
L1dlYlBhZ2VQcm94eS5oOiBEZWNsYXJlZCBjb21wdXRlUGFnZXNGb3JQcmludGluZ0FuZERyYXdU
b1BERigpIGFuZAorICAgICAgICBkcmF3VG9QREZDYWxsYmFjaygpLgorICAgICAgICAqIFVJUHJv
Y2Vzcy9XZWJQYWdlUHJveHkubWVzc2FnZXMuaW46IFJlbmFtZWQgRGlkRmluaXNoRHJhd2luZ1Bh
Z2VzVG9QREYgdG8KKyAgICAgICAgRHJhd1RvUERGQ2FsbGJhY2suCisgICAgICAgICogVUlQcm9j
ZXNzL19XS1dlYlZpZXdQcmludEZvcm1hdHRlci5tbTogQmFja2VkIHRoZSBmcmFtZVRvUHJpbnQg
cHJvcGVydHkgd2l0aCBhIFJldGFpblB0cgorICAgICAgICBpdmFyIHNvIHRoYXQgaXQgZG9lc24n
dCBuZWVkIHRvIGJlIHJlbGVhc2VkIG1hbnVhbGx5IGluIC1kZWFsbG9jOyByZW1vdmVkIF90b3Rh
bFNjYWxlRmFjdG9yCisgICAgICAgIGFuZCBfcHJpbnRJbmZvIGl2YXJzIGFuZCBhZGRlZCBhIF9w
cmludGVkRG9jdW1lbnQgaXZhcjsgcmVtb3ZlZCB0aGUgcHJvcGVydHkgZGVjbGFyYXRpb24gZm9y
CisgICAgICAgIHdlYlZpZXcuCisgICAgICAgICgtW19XS1dlYlZpZXdQcmludEZvcm1hdHRlciBm
cmFtZVRvUHJpbnRdKTogQWRkZWQgYSBjdXN0b20gZ2V0dGVyIGZvciB0aGUgZnJhbWVUb1ByaW50
CisgICAgICAgIHByb3BlcnR5LgorICAgICAgICAoLVtfV0tXZWJWaWV3UHJpbnRGb3JtYXR0ZXIg
c2V0RnJhbWVUb1ByaW50Ol0pOiBBZGRlZCBhIGN1c3RvbSBzZXR0ZXIgZm9yIHRoZSBmcmFtZVRv
UHJpbnQKKyAgICAgICAgcHJvcGVydHkuCisgICAgICAgICgtW19XS1dlYlZpZXdQcmludEZvcm1h
dHRlciBfd2ViVmlld10pOiBSZW5hbWVkIGZyb20gd2ViVmlldzsgYWRkZWQgYW4gdW5kZXJzY29y
ZSBzaW5jZSB0aGlzCisgICAgICAgIGlzIGEgcHJpdmF0ZSBtZXRob2QuCisgICAgICAgICgtW19X
S1dlYlZpZXdQcmludEZvcm1hdHRlciBfcmVjYWxjUGFnZUNvdW50XSk6IFJldHJpZXZlZCB0aGUg
cGFnZSBjb3VudCBmcm9tIHRoZSBwcmludAorICAgICAgICBwcm92aWRlciBhbmQgY2xhbXBlZCBp
dHMgdmFsdWUgdG8gTlNJbnRlZ2VyTWF4LgorICAgICAgICAoLVtfV0tXZWJWaWV3UHJpbnRGb3Jt
YXR0ZXIgZHJhd0luUmVjdDpmb3JQYWdlQXRJbmRleDpdKTogUmV0cmlldmVkIHRoZSBwcmludGVk
IGRvY3VtZW50CisgICAgICAgIGZyb20gdGhlIHByaW50IHByb3ZpZGVyIGlmIG5lZWRlZDsgbW9k
aWZpZWQgdGhlIENUTSB0cmFuc2Zvcm1hdGlvbnMgdG8gd29yayBmb3IgYm90aAorICAgICAgICB3
ZWJwYWdlcyBhbmQgUERGcy4KKyAgICAgICAgKC1bX1dLV2ViVmlld1ByaW50Rm9ybWF0dGVyIGRl
YWxsb2NdKTogRGVsZXRlZC4KKyAgICAgICAgKC1bX1dLV2ViVmlld1ByaW50Rm9ybWF0dGVyIHdl
YlZpZXddKTogUmVuYW1lZCB0byBfd2ViVmlldy4KKyAgICAgICAgKC1bX1dLV2ViVmlld1ByaW50
Rm9ybWF0dGVyIHJlY3RGb3JQYWdlQXRJbmRleDpdKTogRGVsZXRlZC4KKyAgICAgICAgKiBVSVBy
b2Nlc3MvX1dLV2ViVmlld1ByaW50Rm9ybWF0dGVySW50ZXJuYWwuaDogQWRkZWQuIE1vdmVkIGEg
VUlQcmludEZvcm1hdHRlciBpbnRlcm5hbAorICAgICAgICBtZXRob2QgZGVjbGFyYXRpb24gdG8g
aGVyZSBhbmQgZGVmaW5lZCB0aGUgX1dLV2ViVmlld1ByaW50UHJvdmlkZXIgcHJvdG9jb2wuCisg
ICAgICAgICogVUlQcm9jZXNzL2lvcy9QYWdlQ2xpZW50SW1wbElPUy5oOiBSZW1vdmVkIGRpZEZp
bmlzaERyYXdpbmdQYWdlc1RvUERGKCkuCisgICAgICAgICogVUlQcm9jZXNzL2lvcy9QYWdlQ2xp
ZW50SW1wbElPUy5tbTogRGl0dG8uCisgICAgICAgIChXZWJLaXQ6OlBhZ2VDbGllbnRJbXBsOjpk
aWRGaW5pc2hEcmF3aW5nUGFnZXNUb1BERik6IERlbGV0ZWQuCisgICAgICAgICogVUlQcm9jZXNz
L2lvcy9XS0NvbnRlbnRWaWV3Lm1tOiBDb25mb3JtZWQgdG8gQHByb3RvY29sKF9XS1dlYlZpZXdQ
cmludFByb3ZpZGVyKS4KKyAgICAgICAgKC1bV0tDb250ZW50VmlldyBfd2tfcGFnZUNvdW50Rm9y
UHJpbnRGb3JtYXR0ZXI6XSk6IE1vdmVkIHRoZSBjb2RlIHRvIGNvbXB1dGUgcGFnZSBjb3VudAor
ICAgICAgICBmcm9tIFdLV2ViVmlldyB0byBoZXJlLgorICAgICAgICAoLVtXS0NvbnRlbnRWaWV3
IF93a19wcmludGVkRG9jdW1lbnRdKTogTW92ZWQgdGhlIGNvZGUgdG8gZ2V0IHRoZSBwcmludGVk
IGRvY3VtZW50IGZyb20KKyAgICAgICAgV0tXZWJWaWV3IHRvIGhlcmUuCisgICAgICAgICogVUlQ
cm9jZXNzL2lvcy9XS1BERlZpZXcubW06CisgICAgICAgICgtW1dLUERGVmlldyBfd2tfcGFnZUNv
dW50Rm9yUHJpbnRGb3JtYXR0ZXI6XSk6IE1vdmVkIHRoZSBjb2RlIHRvIGNvbXB1dGUgdGhlIHBh
Z2UgY291bnQKKyAgICAgICAgZnJvbSBXS1dlYlZpZXcgdG8gaGVyZTsgYWRkZWQgYSBjYWxsIHRv
IENHUERGRG9jdW1lbnRBbGxvd3NQcmludGluZygpLCByZXR1cm5pbmcgMCBpZgorICAgICAgICBw
cmludGluZyBpcyBub3QgYWxsb3dlZC4KKyAgICAgICAgKC1bV0tQREZWaWV3IF93a19wcmludGVk
RG9jdW1lbnRdKTogTW92ZWQgdGhlIGNvZGUgdG8gZ2V0IHRoZSBwcmludGVkIGRvY3VtZW50IGZy
b20KKyAgICAgICAgV0tXZWJWaWV3IHRvIGhlcmUuCisgICAgICAgICogVUlQcm9jZXNzL2lvcy9X
ZWJQYWdlUHJveHlJT1MubW06CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6Y29tcHV0
ZVBhZ2VzRm9yUHJpbnRpbmdBbmREcmF3VG9QREYpOiBSZWdpc3RlcmVkIHRoZSBjYWxsYmFjayB3
aXRoCisgICAgICAgIG1fY2FsbGJhY2tzIGFuZCBzZW50IE1lc3NhZ2VzOjpXZWJQYWdlOjpDb21w
dXRlUGFnZXNGb3JQcmludGluZ0FuZERyYXdUb1BERjsgcmV0dXJuZWQgdGhlCisgICAgICAgIHN5
bmNocm9ub3VzbHktcmV0dXJuZWQgcGFnZSBjb3VudC4KKyAgICAgICAgKFdlYktpdDo6V2ViUGFn
ZVByb3h5OjpkcmF3VG9QREZDYWxsYmFjayk6IEFkZGVkIHRvIHBlcmZvcm0gdGhlIGNhbGxiYWNr
IHdoZW4gZHJhd2luZyB0byBQREYKKyAgICAgICAgaXMgY29tcGxldGUuCisgICAgICAgIChXZWJL
aXQ6OldlYlBhZ2VQcm94eTo6ZGlkRmluaXNoRHJhd2luZ1BhZ2VzVG9QREYpOiBEZWxldGVkLgor
ICAgICAgICAqIFdlYktpdDIueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajogQWRkZWQgX1dLV2Vi
Vmlld1ByaW50Rm9ybWF0dGVySW50ZXJuYWwuaC4KKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBh
Z2UvV2ViUGFnZS5oOiBSZW5hbWVkIGNvbXB1dGVQYWdlc0ZvclByaW50aW5nQW5kU3RhcnREcmF3
aW5nVG9QREYoKSB0bworICAgICAgICBjb21wdXRlUGFnZXNGb3JQcmludGluZ0FuZERyYXdUb1BE
RigpLgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLm1lc3NhZ2VzLmluOiBS
ZW5hbWVkCisgICAgICAgIENvbXB1dGVQYWdlc0ZvclByaW50aW5nQW5kU3RhcnREcmF3aW5nVG9Q
REYgdG8gQ29tcHV0ZVBhZ2VzRm9yUHJpbnRpbmdBbmREcmF3VG9QREYuIFJlbW92ZWQKKyAgICAg
ICAgdGhlIHN0YXJ0UGFnZSBwYXJhbWV0ZXIgYW5kIGFkZGVkIGEgY2FsbGJhY2tJRC4KKyAgICAg
ICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvaW9zL1dlYlBhZ2VJT1MubW06CisgICAgICAgIChXZWJL
aXQ6OldlYlBhZ2U6OmNvbXB1dGVQYWdlc0ZvclByaW50aW5nQW5kRHJhd1RvUERGKTogUmVuYW1l
ZCBmcm9tCisgICAgICAgIGNvbXB1dGVQYWdlc0ZvclByaW50aW5nQW5kU3RhcnREcmF3aW5nVG9Q
REYoKS4gQWRkZWQgYSBjYWxsIHRvIGVuZFByaW50aW5nKCkgYWZ0ZXIgc2VuZGluZworICAgICAg
ICBNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpEcmF3VG9QREZDYWxsYmFjay4KKyAgICAgICAgKFdl
YktpdDo6V2ViUGFnZTo6Y29tcHV0ZVBhZ2VzRm9yUHJpbnRpbmdBbmRTdGFydERyYXdpbmdUb1BE
Rik6IFJlbmFtZWQgdG8KKyAgICAgICAgY29tcHV0ZVBhZ2VzRm9yUHJpbnRpbmdBbmREcmF3VG9Q
REYuCisKIDIwMTYtMDYtMDkgIERhdmlkIEtpbHplciAgPGRka2lsemVyQGFwcGxlLmNvbT4KIAog
ICAgICAgICBVcGRhdGUgcHJvcGVydGllcyBmb3IgVUlXS1RleHRJbnRlcmFjdGlvbkFzc2lzdGFu
dApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZp
ZXcubW0gYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlldy5tbQpp
bmRleCA2Y2UyZmU0ZDM2ZDRhODY3MGU0N2ZlODVmMTAwZTRkNmQ2ZDY5OTJhLi5lMTc1NGY0MmI2
ZmFmMWFlNWIwMzE0MjlhMGFkNGMwODU3NjZiODEwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlldy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlldy5tbQpAQCAtOTksNyArOTksNiBAQAogCiAjaWYg
UExBVEZPUk0oSU9TKQogI2ltcG9ydCAiX1dLV2ViVmlld1ByaW50Rm9ybWF0dGVyLmgiCi0jaW1w
b3J0ICJQcmludEluZm8uaCIKICNpbXBvcnQgIlByb2Nlc3NUaHJvdHRsZXIuaCIKICNpbXBvcnQg
IlJlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVhUHJveHkuaCIKICNpbXBvcnQgIlJlbW90ZVNjcm9s
bGluZ0Nvb3JkaW5hdG9yUHJveHkuaCIKQEAgLTEwOCw3ICsxMDcsNiBAQAogI2ltcG9ydCAiV0tQ
REZWaWV3LmgiCiAjaW1wb3J0ICJXS1Njcm9sbFZpZXcuaCIKICNpbXBvcnQgIldLV2ViVmlld0Nv
bnRlbnRQcm92aWRlclJlZ2lzdHJ5LmgiCi0jaW1wb3J0ICJXZWJQYWdlTWVzc2FnZXMuaCIKICNp
bXBvcnQgIldlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eS5oIgogI2ltcG9ydCA8VUlLaXQv
VUlBcHBsaWNhdGlvbi5oPgogI2ltcG9ydCA8V2ViQ29yZS9Db3JlR3JhcGhpY3NTUEkuaD4KQEAg
LTI2MCw4ICsyNTgsNiBAQCBAaW1wbGVtZW50YXRpb24gV0tXZWJWaWV3IHsKICAgICBCT09MIF9k
ZWxheVVwZGF0ZVZpc2libGVDb250ZW50UmVjdHM7CiAgICAgQk9PTCBfaGFkRGVsYXllZFVwZGF0
ZVZpc2libGVDb250ZW50UmVjdHM7CiAKLSAgICBCT09MIF9wYWdlSXNQcmludGluZ1RvUERGOwot
ICAgIFJldGFpblB0cjxDR1BERkRvY3VtZW50UmVmPiBfcHJpbnRlZERvY3VtZW50OwogICAgIFZl
Y3RvcjxzdGQ6OmZ1bmN0aW9uPHZvaWQgKCk+PiBfc25hcHNob3RzRGVmZXJyZWREdXJpbmdSZXNp
emU7CiAjZW5kaWYKICNpZiBQTEFURk9STShNQUMpCkBAIC00NTMzLDUwICs0NTI5LDEyIEBAIC0g
KENsYXNzKV9wcmludEZvcm1hdHRlckNsYXNzCiAgICAgcmV0dXJuIFtfV0tXZWJWaWV3UHJpbnRG
b3JtYXR0ZXIgY2xhc3NdOwogfQogCi0tIChOU0ludGVnZXIpX2NvbXB1dGVQYWdlQ291bnRBbmRT
dGFydERyYXdpbmdUb1BERkZvckZyYW1lOihfV0tGcmFtZUhhbmRsZSAqKWZyYW1lIHByaW50SW5m
bzooY29uc3QgV2ViS2l0OjpQcmludEluZm8mKXByaW50SW5mbyBmaXJzdFBhZ2U6KHVpbnQzMl90
KWZpcnN0UGFnZSBjb21wdXRlZFRvdGFsU2NhbGVGYWN0b3I6KGRvdWJsZSYpdG90YWxTY2FsZUZh
Y3RvcgorLSAoaWQgPF9XS1dlYlZpZXdQcmludFByb3ZpZGVyPilfcHJpbnRQcm92aWRlcgogewot
ICAgIGlmIChbc2VsZiBfaXNEaXNwbGF5aW5nUERGXSkKLSAgICAgICAgcmV0dXJuIENHUERGRG9j
dW1lbnRHZXROdW1iZXJPZlBhZ2VzKFsoV0tQREZWaWV3ICopX2N1c3RvbUNvbnRlbnRWaWV3IHBk
ZkRvY3VtZW50XSk7Ci0KLSAgICBfcGFnZUlzUHJpbnRpbmdUb1BERiA9IFlFUzsKLSAgICBWZWN0
b3I8V2ViQ29yZTo6SW50UmVjdD4gcGFnZVJlY3RzOwotICAgIHVpbnQ2NF90IGZyYW1lSUQgPSBm
cmFtZSA/IGZyYW1lLl9mcmFtZUlEIDogX3BhZ2UtPm1haW5GcmFtZSgpLT5mcmFtZUlEKCk7Ci0g
ICAgaWYgKCFfcGFnZS0+c2VuZFN5bmMoTWVzc2FnZXM6OldlYlBhZ2U6OkNvbXB1dGVQYWdlc0Zv
clByaW50aW5nQW5kU3RhcnREcmF3aW5nVG9QREYoZnJhbWVJRCwgcHJpbnRJbmZvLCBmaXJzdFBh
Z2UpLCBNZXNzYWdlczo6V2ViUGFnZTo6Q29tcHV0ZVBhZ2VzRm9yUHJpbnRpbmdBbmRTdGFydERy
YXdpbmdUb1BERjo6UmVwbHkocGFnZVJlY3RzLCB0b3RhbFNjYWxlRmFjdG9yKSkpCi0gICAgICAg
IHJldHVybiAwOwotICAgIHJldHVybiBwYWdlUmVjdHMuc2l6ZSgpOwotfQotCi0tICh2b2lkKV9l
bmRQcmludGluZwotewotICAgIF9wYWdlSXNQcmludGluZ1RvUERGID0gTk87Ci0gICAgX3ByaW50
ZWREb2N1bWVudCA9IG51bGxwdHI7Ci0gICAgX3BhZ2UtPnNlbmQoTWVzc2FnZXM6OldlYlBhZ2U6
OkVuZFByaW50aW5nKCkpOwotfQotCi0tIChDR1BERkRvY3VtZW50UmVmKV9wcmludGVkRG9jdW1l
bnQKLXsKLSAgICBpZiAoW3NlbGYgX2lzRGlzcGxheWluZ1BERl0pIHsKLSAgICAgICAgQVNTRVJU
KCFfcGFnZUlzUHJpbnRpbmdUb1BERik7Ci0gICAgICAgIHJldHVybiBbKFdLUERGVmlldyAqKV9j
dXN0b21Db250ZW50VmlldyBwZGZEb2N1bWVudF07Ci0gICAgfQotCi0gICAgaWYgKF9wYWdlSXNQ
cmludGluZ1RvUERGKSB7Ci0gICAgICAgIGlmICghX3BhZ2UtPnByb2Nlc3MoKS5jb25uZWN0aW9u
KCktPndhaXRGb3JBbmREaXNwYXRjaEltbWVkaWF0ZWx5PE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6
OkRpZEZpbmlzaERyYXdpbmdQYWdlc1RvUERGPihfcGFnZS0+cGFnZUlEKCksIHN0ZDo6Y2hyb25v
OjptaWxsaXNlY29uZHM6Om1heCgpKSkgewotICAgICAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVE
KCk7Ci0gICAgICAgICAgICByZXR1cm4gbnVsbHB0cjsKLSAgICAgICAgfQotICAgICAgICBBU1NF
UlQoIV9wYWdlSXNQcmludGluZ1RvUERGKTsKLSAgICB9Ci0gICAgcmV0dXJuIF9wcmludGVkRG9j
dW1lbnQuZ2V0KCk7Ci19Ci0KLS0gKHZvaWQpX3NldFByaW50ZWREb2N1bWVudDooQ0dQREZEb2N1
bWVudFJlZilwcmludGVkRG9jdW1lbnQKLXsKLSAgICBpZiAoIV9wYWdlSXNQcmludGluZ1RvUERG
KQotICAgICAgICByZXR1cm47Ci0gICAgQVNTRVJUKCFbc2VsZiBfaXNEaXNwbGF5aW5nUERGXSk7
Ci0gICAgX3ByaW50ZWREb2N1bWVudCA9IHByaW50ZWREb2N1bWVudDsKLSAgICBfcGFnZUlzUHJp
bnRpbmdUb1BERiA9IE5POworICAgIGlkIGNvbnRlbnRWaWV3ID0gc2VsZi5fY3VycmVudENvbnRl
bnRWaWV3OworICAgIGlmIChbY29udGVudFZpZXcgY29uZm9ybXNUb1Byb3RvY29sOkBwcm90b2Nv
bChfV0tXZWJWaWV3UHJpbnRQcm92aWRlcildKQorICAgICAgICByZXR1cm4gY29udGVudFZpZXc7
CisgICAgcmV0dXJuIG5pbDsKIH0KIAogQGVuZApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXdJbnRlcm5hbC5oIGIvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXdJbnRlcm5hbC5oCmluZGV4IDZlOWQ0MzViZTE3
Yzg4N2QyNmNkY2Q3MTEwNzFjMjdkYWQzZDhmZTIuLjNmZDNmMTJjZTliZjNkNzQ2MDBlZmVlMzNk
NjRlOGM2N2YyY2Y1YWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkv
Q29jb2EvV0tXZWJWaWV3SW50ZXJuYWwuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
QVBJL0NvY29hL1dLV2ViVmlld0ludGVybmFsLmgKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29w
eXJpZ2h0IChDKSAyMDE0IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHly
aWdodCAoQykgMjAxNC0yMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAg
KiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtNTcsNiArNTcsNyBAQCBzdHJ1Y3QgUHJpbnRJ
bmZvOwogCiBAY2xhc3MgV0tXZWJWaWV3Q29udGVudFByb3ZpZGVyUmVnaXN0cnk7CiBAY2xhc3Mg
X1dLRnJhbWVIYW5kbGU7CitAcHJvdG9jb2wgX1dLV2ViVmlld1ByaW50UHJvdmlkZXI7CiAKIEBp
bnRlcmZhY2UgV0tXZWJWaWV3ICgpIFdLX1dFQl9WSUVXX1BST1RPQ09MUyB7CiAKQEAgLTEzNCw5
ICsxMzUsNyBAQCBXS1dlYlZpZXcqIGZyb21XZWJQYWdlUHJveHkoV2ViS2l0OjpXZWJQYWdlUHJv
eHkmKTsKIAogI2lmIFBMQVRGT1JNKElPUykKIEBpbnRlcmZhY2UgV0tXZWJWaWV3IChfV0tXZWJW
aWV3UHJpbnRGb3JtYXR0ZXIpCi0tIChOU0ludGVnZXIpX2NvbXB1dGVQYWdlQ291bnRBbmRTdGFy
dERyYXdpbmdUb1BERkZvckZyYW1lOihfV0tGcmFtZUhhbmRsZSAqKWZyYW1lIHByaW50SW5mbzoo
Y29uc3QgV2ViS2l0OjpQcmludEluZm8mKXByaW50SW5mbyBmaXJzdFBhZ2U6KHVpbnQzMl90KWZp
cnN0UGFnZSBjb21wdXRlZFRvdGFsU2NhbGVGYWN0b3I6KGRvdWJsZSYpdG90YWxTY2FsZUZhY3Rv
cjsKLS0gKHZvaWQpX2VuZFByaW50aW5nOwotQHByb3BlcnR5IChub25hdG9taWMsIHNldHRlcj1f
c2V0UHJpbnRlZERvY3VtZW50OikgQ0dQREZEb2N1bWVudFJlZiBfcHJpbnRlZERvY3VtZW50Owor
QHByb3BlcnR5IChub25hdG9taWMsIHJlYWRvbmx5KSBpZCA8X1dLV2ViVmlld1ByaW50UHJvdmlk
ZXI+IF9wcmludFByb3ZpZGVyOwogQGVuZAogI2VuZGlmCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9QYWdlQ2xpZW50LmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
UGFnZUNsaWVudC5oCmluZGV4IDNjN2FiNzQwODYwNGU4NDcyMmVjMmViZWE4OTcxNGQ1NmJjZTE5
ZjIuLjBmMmQ4YWU3MTNjMmQ4YjFmYjNkYTA3NGM4NzQ4OTQ0MWM3MzU4YTEgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9QYWdlQ2xpZW50LmgKKysrIGIvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL1BhZ2VDbGllbnQuaApAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmln
aHQgKEMpIDIwMTAsIDIwMTEsIDIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgor
ICogQ29weXJpZ2h0IChDKSAyMDEwLTIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0zMDUsNyArMzA1LDYgQEAgcHVi
bGljOgogICAgIHZpcnR1YWwgdm9pZCBvdmVyZmxvd1Njcm9sbFZpZXdEaWRTY3JvbGwoKSA9IDA7
CiAgICAgdmlydHVhbCB2b2lkIG92ZXJmbG93U2Nyb2xsV2lsbFN0YXJ0U2Nyb2xsKCkgPSAwOwog
ICAgIHZpcnR1YWwgdm9pZCBvdmVyZmxvd1Njcm9sbERpZEVuZFNjcm9sbCgpID0gMDsKLSAgICB2
aXJ0dWFsIHZvaWQgZGlkRmluaXNoRHJhd2luZ1BhZ2VzVG9QREYoY29uc3QgSVBDOjpEYXRhUmVm
ZXJlbmNlJikgPSAwOwogICAgIHZpcnR1YWwgVmVjdG9yPFN0cmluZz4gbWltZVR5cGVzV2l0aEN1
c3RvbUNvbnRlbnRQcm92aWRlcnMoKSA9IDA7CiAKICAgICB2aXJ0dWFsIHZvaWQgc2hvd0luc3Bl
Y3RvckhpZ2hsaWdodChjb25zdCBXZWJDb3JlOjpIaWdobGlnaHQmKSA9IDA7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmggYi9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKaW5kZXggYjNmOGRmOWJlN2Q2Y2EyOWJkZTAzNGFj
NDI1ZmVlZDQ3YjcyMDJlYi4uMDhjNmJkMDM0NDdjOTIzZGIxMzY2Y2U4N2UxMTA2OTJhMTExNWQ5
NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCisr
KyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaApAQCAtMSw1ICsxLDUg
QEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTAsIDIwMTEsIDIwMTQtMjAxNSBBcHBsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAtMjAxNiBBcHBsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMK
QEAgLTI1Niw2ICsyNTYsOCBAQCBzdHJ1Y3QgTm9kZUFzc2lzdGFuY2VBcmd1bWVudHMgewogICAg
IGJvb2wgbV9ibHVyUHJldmlvdXNOb2RlOwogICAgIFJlZlB0cjxBUEk6Ok9iamVjdD4gbV91c2Vy
RGF0YTsKIH07CisKK3VzaW5nIERyYXdUb1BERkNhbGxiYWNrID0gR2VuZXJpY0NhbGxiYWNrPGNv
bnN0IElQQzo6RGF0YVJlZmVyZW5jZSY+OwogI2VuZGlmCiAKICNpZiBQTEFURk9STShDT0NPQSkK
QEAgLTUxNSw3ICs1MTcsNiBAQCBwdWJsaWM6CiAgICAgdm9pZCBjb21taXRQb3RlbnRpYWxUYXBG
YWlsZWQoKTsKICAgICB2b2lkIGRpZE5vdEhhbmRsZVRhcEFzQ2xpY2soY29uc3QgV2ViQ29yZTo6
SW50UG9pbnQmKTsKICAgICB2b2lkIGRpc2FibGVEb3VibGVUYXBHZXN0dXJlc0R1cmluZ1RhcElm
TmVjZXNzYXJ5KHVpbnQ2NF90IHJlcXVlc3RJRCk7Ci0gICAgdm9pZCBkaWRGaW5pc2hEcmF3aW5n
UGFnZXNUb1BERihjb25zdCBJUEM6OkRhdGFSZWZlcmVuY2UmKTsKICAgICB2b2lkIGNvbnRlbnRT
aXplQ2F0ZWdvcnlEaWRDaGFuZ2UoY29uc3QgU3RyaW5nJiBjb250ZW50U2l6ZUNhdGVnb3J5KTsK
ICAgICB2b2lkIGdldFNlbGVjdGlvbkNvbnRleHQoc3RkOjpmdW5jdGlvbjx2b2lkKGNvbnN0IFN0
cmluZyYsIGNvbnN0IFN0cmluZyYsIGNvbnN0IFN0cmluZyYsIENhbGxiYWNrQmFzZTo6RXJyb3Ip
Pik7CiAgICAgdm9pZCBoYW5kbGVUd29GaW5nZXJUYXBBdFBvaW50KGNvbnN0IFdlYkNvcmU6Oklu
dFBvaW50Jiwgc3RkOjpmdW5jdGlvbjx2b2lkKGNvbnN0IFN0cmluZyYsIENhbGxiYWNrQmFzZTo6
RXJyb3IpPik7CkBAIC05MDUsNiArOTA2LDEwIEBAIHB1YmxpYzoKICNpZiBQTEFURk9STShDT0NP
QSkKICAgICB2b2lkIGRyYXdSZWN0VG9JbWFnZShXZWJGcmFtZVByb3h5KiwgY29uc3QgUHJpbnRJ
bmZvJiwgY29uc3QgV2ViQ29yZTo6SW50UmVjdCYsIGNvbnN0IFdlYkNvcmU6OkludFNpemUmLCBQ
YXNzUmVmUHRyPEltYWdlQ2FsbGJhY2s+KTsKICAgICB2b2lkIGRyYXdQYWdlc1RvUERGKFdlYkZy
YW1lUHJveHkqLCBjb25zdCBQcmludEluZm8mLCB1aW50MzJfdCBmaXJzdCwgdWludDMyX3QgY291
bnQsIFBhc3NSZWZQdHI8RGF0YUNhbGxiYWNrPik7CisjaWYgUExBVEZPUk0oSU9TKQorICAgIHVp
bnQzMl90IGNvbXB1dGVQYWdlc0ZvclByaW50aW5nQW5kRHJhd1RvUERGKHVpbnQ2NF90IGZyYW1l
SUQsIGNvbnN0IFByaW50SW5mbyYsIERyYXdUb1BERkNhbGxiYWNrOjpDYWxsYmFja0Z1bmN0aW9u
JiYpOworICAgIHZvaWQgZHJhd1RvUERGQ2FsbGJhY2soY29uc3QgSVBDOjpEYXRhUmVmZXJlbmNl
JiBwZGZEYXRhLCB1aW50NjRfdCBjYWxsYmFja0lEKTsKKyNlbmRpZgogI2VsaWYgUExBVEZPUk0o
R1RLKQogICAgIHZvaWQgZHJhd1BhZ2VzRm9yUHJpbnRpbmcoV2ViRnJhbWVQcm94eSosIGNvbnN0
IFByaW50SW5mbyYsIFBhc3NSZWZQdHI8UHJpbnRGaW5pc2hlZENhbGxiYWNrPik7CiAjZW5kaWYK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkubWVzc2Fn
ZXMuaW4gYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5Lm1lc3NhZ2VzLmlu
CmluZGV4IDk2Y2I5ZTg2MTUxYmQ3NjIzODM1ODgwYWI5YjAwZjNmMWU0MDczZTYuLmE5NDcxZWNi
Y2MxYWRmODc2ZWNiMzJlMWE5OWM5YTc2NGQyYWRlMWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkubWVzc2FnZXMuaW4KKysrIGIvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5tZXNzYWdlcy5pbgpAQCAtMSw0ICsxLDQgQEAKLSMg
Q29weXJpZ2h0IChDKSAyMDEwLCAyMDExIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
KyMgQ29weXJpZ2h0IChDKSAyMDEwLTIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgogIwogIyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKICMgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0xODYsNyArMTg2LDcgQEAgbWVzc2Fn
ZXMgLT4gV2ViUGFnZVByb3h5IHsKICAgICBDb21taXRQb3RlbnRpYWxUYXBGYWlsZWQoKQogICAg
IERpZE5vdEhhbmRsZVRhcEFzQ2xpY2soV2ViQ29yZTo6SW50UG9pbnQgcG9pbnQpCiAgICAgRGlz
YWJsZURvdWJsZVRhcEdlc3R1cmVzRHVyaW5nVGFwSWZOZWNlc3NhcnkodWludDY0X3QgcmVxdWVz
dElEKQotICAgIERpZEZpbmlzaERyYXdpbmdQYWdlc1RvUERGKElQQzo6RGF0YVJlZmVyZW5jZSBw
ZGZEYXRhKQorICAgIERyYXdUb1BERkNhbGxiYWNrKElQQzo6RGF0YVJlZmVyZW5jZSBwZGZEYXRh
LCB1aW50NjRfdCBjYWxsYmFja0lEKQogI2VuZGlmCiAjaWYgRU5BQkxFKERBVEFfREVURUNUSU9O
KQogICAgIFNldERhdGFEZXRlY3Rpb25SZXN1bHQoc3RydWN0IFdlYktpdDo6RGF0YURldGVjdGlv
blJlc3VsdCBkYXRhRGV0ZWN0aW9uUmVzdWx0KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL19XS1dlYlZpZXdQcmludEZvcm1hdHRlci5tbSBiL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9fV0tXZWJWaWV3UHJpbnRGb3JtYXR0ZXIubW0KaW5kZXggN2JiYzU4NzNhOWE0Zjc2
YjI2ZjE3OTUyMGI5OWIwMDZkMTBjMzBiMy4uZGFhYjZjYWRkNDQ3ZDhhYjM0YjQ1Njg0MWE0NTAy
Y2Y3NGVhZTExZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL19XS1dlYlZp
ZXdQcmludEZvcm1hdHRlci5tbQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvX1dLV2Vi
Vmlld1ByaW50Rm9ybWF0dGVyLm1tCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAo
QykgMjAxNCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMp
IDIwMTQtMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMKQEAgLTI0LDgxICsyNCw2OSBAQAogICovCiAKICNpbXBvcnQgImNv
bmZpZy5oIgotI2ltcG9ydCAiX1dLV2ViVmlld1ByaW50Rm9ybWF0dGVyLmgiCisjaW1wb3J0ICJf
V0tXZWJWaWV3UHJpbnRGb3JtYXR0ZXJJbnRlcm5hbC5oIgogCiAjaWYgUExBVEZPUk0oSU9TKQog
Ci0jaW1wb3J0ICJQcmludEluZm8uaCIKICNpbXBvcnQgIldLV2ViVmlld0ludGVybmFsLmgiCisj
aW1wb3J0ICJfV0tGcmFtZUhhbmRsZS5oIgogI2ltcG9ydCA8d3RmL1JldGFpblB0ci5oPgogCi1A
aW50ZXJmYWNlIFVJUHJpbnRGb3JtYXR0ZXIgKCkKLS0gKENHUmVjdClfcGFnZUNvbnRlbnRSZWN0
OihCT09MKWZpcnN0UGFnZTsKLS0gKHZvaWQpX3JlY2FsY0lmTmVjZXNzYXJ5OwotQGVuZAotCi1A
aW50ZXJmYWNlIF9XS1dlYlZpZXdQcmludEZvcm1hdHRlciAoKQotQHByb3BlcnR5IChub25hdG9t
aWMsIHJlYWRvbmx5KSBXS1dlYlZpZXcgKndlYlZpZXc7Ci1AZW5kCi0KIEBpbXBsZW1lbnRhdGlv
biBfV0tXZWJWaWV3UHJpbnRGb3JtYXR0ZXIgewotICAgIGRvdWJsZSBfdG90YWxTY2FsZUZhY3Rv
cjsKLSAgICBXZWJLaXQ6OlByaW50SW5mbyBfcHJpbnRJbmZvOworICAgIFJldGFpblB0cjxfV0tG
cmFtZUhhbmRsZT4gX2ZyYW1lVG9QcmludDsKKyAgICBSZXRhaW5QdHI8Q0dQREZEb2N1bWVudFJl
Zj4gX3ByaW50ZWREb2N1bWVudDsKIH0KIAotLSAodm9pZClkZWFsbG9jCistIChfV0tGcmFtZUhh
bmRsZSAqKWZyYW1lVG9QcmludAogewotICAgIFtzZWxmLndlYlZpZXcgX2VuZFByaW50aW5nXTsK
LSAgICBbX2ZyYW1lVG9QcmludCByZWxlYXNlXTsKLSAgICBbc3VwZXIgZGVhbGxvY107CisgICAg
cmV0dXJuIF9mcmFtZVRvUHJpbnQuZ2V0KCk7CiB9CiAKLS0gKFdLV2ViVmlldyAqKXdlYlZpZXcK
Ky0gKHZvaWQpc2V0RnJhbWVUb1ByaW50OihfV0tGcmFtZUhhbmRsZSAqKWZyYW1lVG9QcmludAog
ewotICAgIEFTU0VSVChbc2VsZi52aWV3IGlzS2luZE9mQ2xhc3M6W1dLV2ViVmlldyBjbGFzc11d
KTsKLSAgICByZXR1cm4gc3RhdGljX2Nhc3Q8V0tXZWJWaWV3ICo+KHNlbGYudmlldyk7CisgICAg
X2ZyYW1lVG9QcmludCA9IGZyYW1lVG9QcmludDsKK30KKworLSAoV0tXZWJWaWV3ICopX3dlYlZp
ZXcKK3sKKyAgICBVSVZpZXcgKnZpZXcgPSBzZWxmLnZpZXc7CisgICAgQVNTRVJUKFt2aWV3IGlz
S2luZE9mQ2xhc3M6W1dLV2ViVmlldyBjbGFzc11dKTsKKyAgICByZXR1cm4gc3RhdGljX2Nhc3Q8
V0tXZWJWaWV3ICo+KHZpZXcpOwogfQogCiAtIChOU0ludGVnZXIpX3JlY2FsY1BhZ2VDb3VudAog
ewotICAgIEFTU0VSVChbc2VsZiByZXNwb25kc1RvU2VsZWN0b3I6QHNlbGVjdG9yKF9wYWdlQ29u
dGVudFJlY3Q6KV0pOwotCi0gICAgQ0dSZWN0IGZpcnN0UmVjdCA9IFtzZWxmIF9wYWdlQ29udGVu
dFJlY3Q6WUVTXTsKLSAgICBDR1JlY3QgbmV4dFJlY3QgPSBbc2VsZiBfcGFnZUNvbnRlbnRSZWN0
Ok5PXTsKLSAgICBpZiAoQ0dSZWN0SXNFbXB0eShmaXJzdFJlY3QpIHx8IENHUmVjdElzRW1wdHko
bmV4dFJlY3QpKQotICAgICAgICByZXR1cm4gMDsKLQotICAgIC8vIFRoZSBmaXJzdCBwYWdlIGNh
biBoYXZlIGEgc21hbGxlciBjb250ZW50IHJlY3QgdGhhbiBzdWJzZXF1ZW50IHBhZ2VzIGlmIGEg
dG9wIGNvbnRlbnQgaW5zZXQgaXMgc3BlY2lmaWVkLiBTaW5jZQotICAgIC8vIFdlYktpdCByZXF1
aXJlcyBhIHVuaWZvcm0gY29udGVudCByZWN0IGZvciBlYWNoIHBhZ2UgZHVyaW5nIGxheW91dCwg
dXNlIHRoZSBmaXJzdCBwYWdlIHJlY3QgZm9yIGFsbCBwYWdlcyBpZiBpdCdzCi0gICAgLy8gc21h
bGxlci4gVGhpcyBpcyB3aGF0IFVJV2ViVmlldydzIHByaW50IGZvcm1hdHRlciBkb2VzLgotICAg
IEFTU0VSVChmaXJzdFJlY3Quc2l6ZS53aWR0aCA9PSBuZXh0UmVjdC5zaXplLndpZHRoKTsKLSAg
ICBBU1NFUlQoZmlyc3RSZWN0Lm9yaWdpbi55ID49IG5leHRSZWN0Lm9yaWdpbi55KTsKLSAgICBf
cHJpbnRJbmZvLnBhZ2VTZXR1cFNjYWxlRmFjdG9yID0gMTsKLSAgICBfcHJpbnRJbmZvLmF2YWls
YWJsZVBhcGVyV2lkdGggPSBuZXh0UmVjdC5zaXplLndpZHRoOwotICAgIF9wcmludEluZm8uYXZh
aWxhYmxlUGFwZXJIZWlnaHQgPSBuZXh0UmVjdC5zaXplLmhlaWdodCAtIChmaXJzdFJlY3Qub3Jp
Z2luLnkgLSBuZXh0UmVjdC5vcmlnaW4ueSk7Ci0KLSAgICByZXR1cm4gW3NlbGYud2ViVmlldyBf
Y29tcHV0ZVBhZ2VDb3VudEFuZFN0YXJ0RHJhd2luZ1RvUERGRm9yRnJhbWU6X2ZyYW1lVG9Qcmlu
dCBwcmludEluZm86X3ByaW50SW5mbyBmaXJzdFBhZ2U6c2VsZi5zdGFydFBhZ2UgY29tcHV0ZWRU
b3RhbFNjYWxlRmFjdG9yOl90b3RhbFNjYWxlRmFjdG9yXTsKKyAgICBfcHJpbnRlZERvY3VtZW50
ID0gbnVsbHB0cjsKKyAgICBOU1VJbnRlZ2VyIHBhZ2VDb3VudCA9IFtzZWxmLl93ZWJWaWV3Ll9w
cmludFByb3ZpZGVyIF93a19wYWdlQ291bnRGb3JQcmludEZvcm1hdHRlcjpzZWxmXTsKKyAgICBy
ZXR1cm4gc3RkOjptaW48TlNVSW50ZWdlcj4ocGFnZUNvdW50LCBOU0ludGVnZXJNYXgpOwogfQog
CiAtIChDR1JlY3QpcmVjdEZvclBhZ2VBdEluZGV4OihOU0ludGVnZXIpcGFnZUluZGV4CiB7Ci0g
ICAgQVNTRVJUKFtzZWxmIHJlc3BvbmRzVG9TZWxlY3RvcjpAc2VsZWN0b3IoX3JlY2FsY0lmTmVj
ZXNzYXJ5KV0pOwotICAgIFtzZWxmIF9yZWNhbGNJZk5lY2Vzc2FyeV07CiAgICAgcmV0dXJuIFtz
ZWxmIF9wYWdlQ29udGVudFJlY3Q6cGFnZUluZGV4ID09IHNlbGYuc3RhcnRQYWdlXTsKIH0KIAog
LSAodm9pZClkcmF3SW5SZWN0OihDR1JlY3QpcmVjdCBmb3JQYWdlQXRJbmRleDooTlNJbnRlZ2Vy
KXBhZ2VJbmRleAogewotICAgIC8vIENHUERGRG9jdW1lbnRzIHVzZSAxLWJhc2VkIHBhZ2UgaW5k
ZXhpbmcuCi0gICAgQ0dQREZQYWdlUmVmIHBkZlBhZ2UgPSBDR1BERkRvY3VtZW50R2V0UGFnZShz
ZWxmLndlYlZpZXcuX3ByaW50ZWREb2N1bWVudCwgcGFnZUluZGV4IC0gc2VsZi5zdGFydFBhZ2Ug
KyAxKTsKKyAgICBpZiAoIV9wcmludGVkRG9jdW1lbnQpCisgICAgICAgIF9wcmludGVkRG9jdW1l
bnQgPSBzZWxmLl93ZWJWaWV3Ll9wcmludFByb3ZpZGVyLl93a19wcmludGVkRG9jdW1lbnQ7CisK
KyAgICBOU0ludGVnZXIgb2Zmc2V0RnJvbVN0YXJ0UGFnZSA9IHBhZ2VJbmRleCAtIHNlbGYuc3Rh
cnRQYWdlOworICAgIGlmIChvZmZzZXRGcm9tU3RhcnRQYWdlIDwgMCkKKyAgICAgICAgcmV0dXJu
OworCisgICAgQ0dQREZQYWdlUmVmIHBhZ2UgPSBDR1BERkRvY3VtZW50R2V0UGFnZShfcHJpbnRl
ZERvY3VtZW50LmdldCgpLCBvZmZzZXRGcm9tU3RhcnRQYWdlICsgMSk7CisgICAgaWYgKCFwYWdl
KQorICAgICAgICByZXR1cm47CiAKICAgICBDR0NvbnRleHRSZWYgY29udGV4dCA9IFVJR3JhcGhp
Y3NHZXRDdXJyZW50Q29udGV4dCgpOwogICAgIENHQ29udGV4dFNhdmVHU3RhdGUoY29udGV4dCk7
CiAKLSAgICBDR0NvbnRleHRUcmFuc2xhdGVDVE0oY29udGV4dCwgcmVjdC5vcmlnaW4ueCwgcmVj
dC5vcmlnaW4ueSk7Ci0gICAgQ0dDb250ZXh0U2NhbGVDVE0oY29udGV4dCwgX3RvdGFsU2NhbGVG
YWN0b3IsIC1fdG90YWxTY2FsZUZhY3Rvcik7Ci0gICAgQ0dDb250ZXh0VHJhbnNsYXRlQ1RNKGNv
bnRleHQsIDAsIC1DR1BERlBhZ2VHZXRCb3hSZWN0KHBkZlBhZ2UsIGtDR1BERk1lZGlhQm94KS5z
aXplLmhlaWdodCk7Ci0gICAgQ0dDb250ZXh0RHJhd1BERlBhZ2UoY29udGV4dCwgcGRmUGFnZSk7
CisgICAgQ0dDb250ZXh0VHJhbnNsYXRlQ1RNKGNvbnRleHQsIENHUmVjdEdldE1pblgocmVjdCks
IENHUmVjdEdldE1heFkocmVjdCkpOworICAgIENHQ29udGV4dFNjYWxlQ1RNKGNvbnRleHQsIDEs
IC0xKTsKKyAgICBDR0NvbnRleHRDb25jYXRDVE0oY29udGV4dCwgQ0dQREZQYWdlR2V0RHJhd2lu
Z1RyYW5zZm9ybShwYWdlLCBrQ0dQREZDcm9wQm94LCBDR1JlY3RNYWtlKDAsIDAsIENHUmVjdEdl
dFdpZHRoKHJlY3QpLCBDR1JlY3RHZXRIZWlnaHQocmVjdCkpLCAwLCB0cnVlKSk7CisgICAgQ0dD
b250ZXh0Q2xpcFRvUmVjdChjb250ZXh0LCBDR1BERlBhZ2VHZXRCb3hSZWN0KHBhZ2UsIGtDR1BE
RkNyb3BCb3gpKTsKKyAgICBDR0NvbnRleHREcmF3UERGUGFnZShjb250ZXh0LCBwYWdlKTsKIAog
ICAgIENHQ29udGV4dFJlc3RvcmVHU3RhdGUoY29udGV4dCk7CiB9CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvX1dLV2ViVmlld1ByaW50Rm9ybWF0dGVySW50ZXJuYWwuaCBi
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9fV0tXZWJWaWV3UHJpbnRGb3JtYXR0ZXJJbnRlcm5h
bC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLmY0YjNhZDkzMDdjNTA3NjQ4MmU2Y2I0NzNlYzM0OTIxOWViYzcxMTAK
LS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvX1dLV2ViVmlld1By
aW50Rm9ybWF0dGVySW50ZXJuYWwuaApAQCAtMCwwICsxLDM1IEBACisvKgorICogQ29weXJpZ2h0
IChDKSAyMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBz
b3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisg
KiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQv
b3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisg
KiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklC
VVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVT
LCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJ
RVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBV
UlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRT
IENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5D
SURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VT
IChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNU
SVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBP
UiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRI
RU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklM
SVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklT
SU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBB
RFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lt
cG9ydCAiX1dLV2ViVmlld1ByaW50Rm9ybWF0dGVyLmgiCisKK0BpbnRlcmZhY2UgVUlQcmludEZv
cm1hdHRlciAoKQorLSAoQ0dSZWN0KV9wYWdlQ29udGVudFJlY3Q6KEJPT0wpZmlyc3RQYWdlOwor
QGVuZAorCitAcHJvdG9jb2wgX1dLV2ViVmlld1ByaW50UHJvdmlkZXIgPE5TT2JqZWN0PgorLSAo
TlNVSW50ZWdlcilfd2tfcGFnZUNvdW50Rm9yUHJpbnRGb3JtYXR0ZXI6KF9XS1dlYlZpZXdQcmlu
dEZvcm1hdHRlciAqKXByaW50Rm9ybWF0dGVyOworQHByb3BlcnR5IChub25hdG9taWMsIHJlYWRv
bmx5KSBDR1BERkRvY3VtZW50UmVmIF93a19wcmludGVkRG9jdW1lbnQ7CitAZW5kCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvaW9zL1BhZ2VDbGllbnRJbXBsSU9TLmggYi9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvaW9zL1BhZ2VDbGllbnRJbXBsSU9TLmgKaW5kZXggNjM3
MGQzZDcwY2NhMWZjMmMyZTBhMjhjZGVmMjZiM2QyODRlNDk2Yi4uNjhjN2RlZmE0MzE1ZTYxMWIz
YjExMjE0NGU2YjdmZGJmNWUxODEwNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL2lvcy9QYWdlQ2xpZW50SW1wbElPUy5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9pb3MvUGFnZUNsaWVudEltcGxJT1MuaApAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmln
aHQgKEMpIDIwMTIsIDIwMTMgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29w
eXJpZ2h0IChDKSAyMDEyLTIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoK
ICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0xNTIsOCArMTUyLDYgQEAgcHJpdmF0ZToK
ICAgICB2b2lkIG92ZXJmbG93U2Nyb2xsV2lsbFN0YXJ0U2Nyb2xsKCkgb3ZlcnJpZGU7CiAgICAg
dm9pZCBvdmVyZmxvd1Njcm9sbERpZEVuZFNjcm9sbCgpIG92ZXJyaWRlOwogCi0gICAgdm9pZCBk
aWRGaW5pc2hEcmF3aW5nUGFnZXNUb1BERihjb25zdCBJUEM6OkRhdGFSZWZlcmVuY2UmKSBvdmVy
cmlkZTsKLQogICAgIC8vIEF1eGlsaWFyeSBDbGllbnQgQ3JlYXRpb24KICNpZiBFTkFCTEUoRlVM
TFNDUkVFTl9BUEkpCiAgICAgdmlydWFsIFdlYkZ1bGxTY3JlZW5NYW5hZ2VyUHJveHlDbGllbnQm
IGZ1bGxTY3JlZW5NYW5hZ2VyUHJveHlDbGllbnQoKSBvdmVycmlkZTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9pb3MvUGFnZUNsaWVudEltcGxJT1MubW0gYi9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvaW9zL1BhZ2VDbGllbnRJbXBsSU9TLm1tCmluZGV4IGQyMjI3MTI2
M2RiZTY1NmQwZTMxODkzZWIyOGUzZGU2OGU4MGFmMzguLjZlOGUxMGZlNjZiZDQ2MjQ1YjdiYWU0
NzRhMGE0NGEzZWY3YmQ2MjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9p
b3MvUGFnZUNsaWVudEltcGxJT1MubW0KKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2lv
cy9QYWdlQ2xpZW50SW1wbElPUy5tbQpAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQg
KEMpIDIwMTIsIDIwMTMgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJp
Z2h0IChDKSAyMDEyLTIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAq
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC02NjMsMTMgKzY2Myw2IEBAIHZvaWQgUGFnZUNs
aWVudEltcGw6Om92ZXJmbG93U2Nyb2xsRGlkRW5kU2Nyb2xsKCkKICAgICBbbV9jb250ZW50Vmll
dyBfb3ZlcmZsb3dTY3JvbGxpbmdEaWRFbmRdOwogfQogCi12b2lkIFBhZ2VDbGllbnRJbXBsOjpk
aWRGaW5pc2hEcmF3aW5nUGFnZXNUb1BERihjb25zdCBJUEM6OkRhdGFSZWZlcmVuY2UmIHBkZkRh
dGEpCi17Ci0gICAgUmV0YWluUHRyPENGRGF0YVJlZj4gZGF0YSA9IGFkb3B0Q0YoQ0ZEYXRhQ3Jl
YXRlKGtDRkFsbG9jYXRvckRlZmF1bHQsIHBkZkRhdGEuZGF0YSgpLCBwZGZEYXRhLnNpemUoKSkp
OwotICAgIFJldGFpblB0cjxDR0RhdGFQcm92aWRlclJlZj4gZGF0YVByb3ZpZGVyID0gYWRvcHRD
RihDR0RhdGFQcm92aWRlckNyZWF0ZVdpdGhDRkRhdGEoZGF0YS5nZXQoKSkpOwotICAgIG1fd2Vi
Vmlldy5fcHJpbnRlZERvY3VtZW50ID0gYWRvcHRDRihDR1BERkRvY3VtZW50Q3JlYXRlV2l0aFBy
b3ZpZGVyKGRhdGFQcm92aWRlci5nZXQoKSkpLmdldCgpOwotfQotCiBWZWN0b3I8U3RyaW5nPiBQ
YWdlQ2xpZW50SW1wbDo6bWltZVR5cGVzV2l0aEN1c3RvbUNvbnRlbnRQcm92aWRlcnMoKQogewog
ICAgIHJldHVybiBtX3dlYlZpZXcuX2NvbnRlbnRQcm92aWRlclJlZ2lzdHJ5Ll9taW1lVHlwZXNX
aXRoQ3VzdG9tQ29udGVudFByb3ZpZGVyczsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlldy5tbSBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9p
b3MvV0tDb250ZW50Vmlldy5tbQppbmRleCBjMWFkMTFhNmExYmMzMzhhMzRiYWVmMmNjOTY1ZGEz
YmY2NmZkM2QzLi4xZjdmZDdlOGE4NTA0ZDNkNjU3ZTk2ODRkNzhjYTQ5ZDY4MzRjMjkyIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXcubW0KKysr
IGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3Lm1tCkBAIC0xLDUg
KzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMywgMjAxNCBBcHBsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTMtMjAxNiBBcHBsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTMy
LDYgKzMyLDcgQEAKICNpbXBvcnQgIkFjY2Vzc2liaWxpdHlJT1MuaCIKICNpbXBvcnQgIkFwcGxp
Y2F0aW9uU3RhdGVUcmFja2VyLmgiCiAjaW1wb3J0ICJQYWdlQ2xpZW50SW1wbElPUy5oIgorI2lt
cG9ydCAiUHJpbnRJbmZvLmgiCiAjaW1wb3J0ICJSZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYVBy
b3h5LmgiCiAjaW1wb3J0ICJSZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvclByb3h5LmgiCiAjaW1w
b3J0ICJTbWFydE1hZ25pZmljYXRpb25Db250cm9sbGVyLmgiCkBAIC00OCw2ICs0OSw4IEBACiAj
aW1wb3J0ICJXZWJQYWdlR3JvdXAuaCIKICNpbXBvcnQgIldlYlByb2Nlc3NQb29sLmgiCiAjaW1w
b3J0ICJXZWJTeXN0ZW1JbnRlcmZhY2UuaCIKKyNpbXBvcnQgIl9XS0ZyYW1lSGFuZGxlSW50ZXJu
YWwuaCIKKyNpbXBvcnQgIl9XS1dlYlZpZXdQcmludEZvcm1hdHRlckludGVybmFsLmgiCiAjaW1w
b3J0IDxDb3JlR3JhcGhpY3MvQ29yZUdyYXBoaWNzLmg+CiAjaW1wb3J0IDxXZWJDb3JlL0Zsb2F0
UXVhZC5oPgogI2ltcG9ydCA8V2ViQ29yZS9GcmFtZVZpZXcuaD4KQEAgLTE4MSw2ICsxODQsOSBA
QCBAaW1wbGVtZW50YXRpb24gV0tDb250ZW50VmlldyB7CiAgICAgUmV0YWluUHRyPE5TVW5kb01h
bmFnZXI+IF91bmRvTWFuYWdlcjsKIAogICAgIHN0ZDo6dW5pcXVlX3B0cjxBcHBsaWNhdGlvblN0
YXRlVHJhY2tlcj4gX2FwcGxpY2F0aW9uU3RhdGVUcmFja2VyOworCisgICAgQk9PTCBfaXNQcmlu
dGluZ1RvUERGOworICAgIFJldGFpblB0cjxDR1BERkRvY3VtZW50UmVmPiBfcHJpbnRlZERvY3Vt
ZW50OwogfQogCiAtIChpbnN0YW5jZXR5cGUpX2NvbW1vbkluaXRpYWxpemF0aW9uV2l0aFByb2Nl
c3NQb29sOihXZWJLaXQ6OldlYlByb2Nlc3NQb29sJilwcm9jZXNzUG9vbCBjb25maWd1cmF0aW9u
OihSZWY8QVBJOjpQYWdlQ29uZmlndXJhdGlvbj4mJiljb25maWd1cmF0aW9uCkBAIC02MTAsNCAr
NjE2LDY1IEBAIC0gKHZvaWQpX2FwcGxpY2F0aW9uRGlkQmVjb21lQWN0aXZlOihOU05vdGlmaWNh
dGlvbiopbm90aWZpY2F0aW9uCiAKIEBlbmQKIAorI3ByYWdtYSBtYXJrIFByaW50aW5nCisKK0Bp
bnRlcmZhY2UgV0tDb250ZW50VmlldyAoX1dLV2ViVmlld1ByaW50Rm9ybWF0dGVyKSA8X1dLV2Vi
Vmlld1ByaW50UHJvdmlkZXI+CitAZW5kCisKK0BpbXBsZW1lbnRhdGlvbiBXS0NvbnRlbnRWaWV3
IChfV0tXZWJWaWV3UHJpbnRGb3JtYXR0ZXIpCisKKy0gKE5TVUludGVnZXIpX3drX3BhZ2VDb3Vu
dEZvclByaW50Rm9ybWF0dGVyOihfV0tXZWJWaWV3UHJpbnRGb3JtYXR0ZXIgKilwcmludEZvcm1h
dHRlcgoreworICAgIGlmIChfaXNQcmludGluZ1RvUERGKQorICAgICAgICByZXR1cm4gMDsKKwor
ICAgIHVpbnQ2NF90IGZyYW1lSUQ7CisgICAgaWYgKF9XS0ZyYW1lSGFuZGxlICpoYW5kbGUgPSBw
cmludEZvcm1hdHRlci5mcmFtZVRvUHJpbnQpCisgICAgICAgIGZyYW1lSUQgPSBoYW5kbGUuX2Zy
YW1lSUQ7CisgICAgZWxzZSBpZiAoYXV0byBtYWluRnJhbWUgPSBfcGFnZS0+bWFpbkZyYW1lKCkp
CisgICAgICAgIGZyYW1lSUQgPSBtYWluRnJhbWUtPmZyYW1lSUQoKTsKKyAgICBlbHNlCisgICAg
ICAgIHJldHVybiAwOworCisgICAgLy8gVGhlIGZpcnN0IHBhZ2UgY2FuIGhhdmUgYSBzbWFsbGVy
IGNvbnRlbnQgcmVjdCB0aGFuIHN1YnNlcXVlbnQgcGFnZXMgaWYgYSB0b3AgY29udGVudCBpbnNl
dAorICAgIC8vIGlzIHNwZWNpZmllZC4gU2luY2UgV2ViS2l0IHJlcXVpcmVzIGEgdW5pZm9ybSBj
b250ZW50IHJlY3QgZm9yIGVhY2ggcGFnZSBkdXJpbmcgbGF5b3V0LCB1c2UKKyAgICAvLyB0aGUg
aW50ZXJzZWN0aW9uIG9mIHRoZSBmaXJzdCBhbmQgbm9uLWZpcnN0IHBhZ2UgcmVjdHMuCisgICAg
Ly8gRklYTUU6IFRlYWNoIFdlYkNvcmU6OlByaW50Q29udGV4dCB0byBhY2NlcHQgYW4gaW5pdGlh
bCBjb250ZW50IG9mZnNldCB3aGVuIHBhZ2luYXRpbmcuCisgICAgQ0dSZWN0IHByaW50aW5nUmVj
dCA9IENHUmVjdEludGVyc2VjdGlvbihbcHJpbnRGb3JtYXR0ZXIgX3BhZ2VDb250ZW50UmVjdDpZ
RVNdLCBbcHJpbnRGb3JtYXR0ZXIgX3BhZ2VDb250ZW50UmVjdDpOT10pOworICAgIGlmIChDR1Jl
Y3RJc0VtcHR5KHByaW50aW5nUmVjdCkpCisgICAgICAgIHJldHVybiAwOworCisgICAgUHJpbnRJ
bmZvIHByaW50SW5mbzsKKyAgICBwcmludEluZm8ucGFnZVNldHVwU2NhbGVGYWN0b3IgPSAxOwor
ICAgIHByaW50SW5mby5hdmFpbGFibGVQYXBlcldpZHRoID0gQ0dSZWN0R2V0V2lkdGgocHJpbnRp
bmdSZWN0KTsKKyAgICBwcmludEluZm8uYXZhaWxhYmxlUGFwZXJIZWlnaHQgPSBDR1JlY3RHZXRI
ZWlnaHQocHJpbnRpbmdSZWN0KTsKKworICAgIF9pc1ByaW50aW5nVG9QREYgPSBZRVM7CisgICAg
YXV0byByZXRhaW5lZFNlbGYgPSByZXRhaW5QdHIoc2VsZik7CisgICAgcmV0dXJuIF9wYWdlLT5j
b21wdXRlUGFnZXNGb3JQcmludGluZ0FuZERyYXdUb1BERihmcmFtZUlELCBwcmludEluZm8sIFty
ZXRhaW5lZFNlbGZdKGNvbnN0IElQQzo6RGF0YVJlZmVyZW5jZSYgcGRmRGF0YSwgQ2FsbGJhY2tC
YXNlOjpFcnJvciBlcnJvcikgeworICAgICAgICByZXRhaW5lZFNlbGYtPl9pc1ByaW50aW5nVG9Q
REYgPSBOTzsKKyAgICAgICAgaWYgKGVycm9yICE9IENhbGxiYWNrQmFzZTo6RXJyb3I6Ok5vbmUp
CisgICAgICAgICAgICByZXR1cm47CisKKyAgICAgICAgYXV0byBkYXRhID0gYWRvcHRDRihDRkRh
dGFDcmVhdGUoa0NGQWxsb2NhdG9yRGVmYXVsdCwgcGRmRGF0YS5kYXRhKCksIHBkZkRhdGEuc2l6
ZSgpKSk7CisgICAgICAgIGF1dG8gZGF0YVByb3ZpZGVyID0gYWRvcHRDRihDR0RhdGFQcm92aWRl
ckNyZWF0ZVdpdGhDRkRhdGEoZGF0YS5nZXQoKSkpOworICAgICAgICByZXRhaW5lZFNlbGYtPl9w
cmludGVkRG9jdW1lbnQgPSBhZG9wdENGKENHUERGRG9jdW1lbnRDcmVhdGVXaXRoUHJvdmlkZXIo
ZGF0YVByb3ZpZGVyLmdldCgpKSk7CisgICAgfSk7Cit9CisKKy0gKENHUERGRG9jdW1lbnRSZWYp
X3drX3ByaW50ZWREb2N1bWVudAoreworICAgIGlmIChfaXNQcmludGluZ1RvUERGKSB7CisgICAg
ICAgIGlmICghX3BhZ2UtPnByb2Nlc3MoKS5jb25uZWN0aW9uKCktPndhaXRGb3JBbmREaXNwYXRj
aEltbWVkaWF0ZWx5PE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OkRyYXdUb1BERkNhbGxiYWNrPihf
cGFnZS0+cGFnZUlEKCksIHN0ZDo6Y2hyb25vOjptaWxsaXNlY29uZHM6Om1heCgpKSkgeworICAg
ICAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgICAgICAgICByZXR1cm4gbnVsbHB0
cjsKKyAgICAgICAgfQorICAgICAgICBBU1NFUlQoIV9pc1ByaW50aW5nVG9QREYpOworICAgIH0K
KworICAgIHJldHVybiBfcHJpbnRlZERvY3VtZW50LmF1dG9yZWxlYXNlKCk7Cit9CisKK0BlbmQK
KwogI2VuZGlmIC8vIFBMQVRGT1JNKElPUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9pb3MvV0tQREZWaWV3Lm1tIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2lvcy9X
S1BERlZpZXcubW0KaW5kZXggMjY4ODM2OGNiYWJhMDMwYjc3MGUwOTIxMmEzODgzZjI2ZGNjNTM4
My4uNzkzNzY0NjkzZmY1Mjg5NTg2MjAyMGY0NzliM2NlMTBjYzYzZTllNiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2lvcy9XS1BERlZpZXcubW0KKysrIGIvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL2lvcy9XS1BERlZpZXcubW0KQEAgLTEsNSArMSw1IEBACiAvKgotICog
Q29weXJpZ2h0IChDKSAyMDE0IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENv
cHlyaWdodCAoQykgMjAxNC0yMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAq
CiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMzksNiArMzksNyBAQAogI2ltcG9ydCAi
V2Vha09iakNQdHIuaCIKICNpbXBvcnQgIldlYlBhZ2VQcm94eS5oIgogI2ltcG9ydCAiX1dLRmlu
ZERlbGVnYXRlLmgiCisjaW1wb3J0ICJfV0tXZWJWaWV3UHJpbnRGb3JtYXR0ZXJJbnRlcm5hbC5o
IgogI2ltcG9ydCA8TW9iaWxlQ29yZVNlcnZpY2VzL1VUQ29yZVR5cGVzLmg+CiAjaW1wb3J0IDxX
ZWJDb3JlL0Zsb2F0UmVjdC5oPgogI2ltcG9ydCA8V2ViQ29yZS9Mb2NhbGl6ZWRTdHJpbmdzLmg+
CkBAIC04OTAsNCArODkxLDI2IEBAIC0gKHZvaWQpX2FwcGxpY2F0aW9uV2lsbEVudGVyRm9yZWdy
b3VuZAogCiBAZW5kCiAKKyNwcmFnbWEgbWFyayBQcmludGluZworCitAaW50ZXJmYWNlIFdLUERG
VmlldyAoX1dLV2ViVmlld1ByaW50Rm9ybWF0dGVyKSA8X1dLV2ViVmlld1ByaW50UHJvdmlkZXI+
CitAZW5kCisKK0BpbXBsZW1lbnRhdGlvbiBXS1BERlZpZXcgKF9XS1dlYlZpZXdQcmludEZvcm1h
dHRlcikKKworLSAoTlNVSW50ZWdlcilfd2tfcGFnZUNvdW50Rm9yUHJpbnRGb3JtYXR0ZXI6KF9X
S1dlYlZpZXdQcmludEZvcm1hdHRlciAqKXByaW50Rm9ybWF0dGVyCit7CisgICAgQ0dQREZEb2N1
bWVudFJlZiBkb2N1bWVudCA9IF9jZ1BERkRvY3VtZW50LmdldCgpOworICAgIGlmIChDR1BERkRv
Y3VtZW50QWxsb3dzUHJpbnRpbmcoZG9jdW1lbnQpKQorICAgICAgICByZXR1cm4gQ0dQREZEb2N1
bWVudEdldE51bWJlck9mUGFnZXMoZG9jdW1lbnQpOworICAgIHJldHVybiAwOworfQorCistIChD
R1BERkRvY3VtZW50UmVmKV93a19wcmludGVkRG9jdW1lbnQKK3sKKyAgICByZXR1cm4gX2NnUERG
RG9jdW1lbnQuZ2V0KCk7Cit9CisKK0BlbmQKKwogI2VuZGlmIC8qIFBMQVRGT1JNKElPUykgKi8K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9pb3MvV2ViUGFnZVByb3h5SU9T
Lm1tIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2lvcy9XZWJQYWdlUHJveHlJT1MubW0KaW5k
ZXggNTdlYmZlZjBhMGRhMzE3ZWQ4ZDEzNGU3MmMzYjhkNzRhMGMwNTMyNC4uMjE2ZWE3NzQ1NDRl
YzI1YjYxNTVlY2ZiMjVkMjQyMTk1ODVlNjU1MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL2lvcy9XZWJQYWdlUHJveHlJT1MubW0KKysrIGIvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL2lvcy9XZWJQYWdlUHJveHlJT1MubW0KQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29w
eXJpZ2h0IChDKSAyMDEyIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHly
aWdodCAoQykgMjAxMi0yMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAg
KiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMzQsNiArMzQsNyBAQAogI2ltcG9ydCAiSW50
ZXJhY3Rpb25JbmZvcm1hdGlvbkF0UG9zaXRpb24uaCIKICNpbXBvcnQgIk5hdGl2ZVdlYktleWJv
YXJkRXZlbnQuaCIKICNpbXBvcnQgIlBhZ2VDbGllbnQuaCIKKyNpbXBvcnQgIlByaW50SW5mby5o
IgogI2ltcG9ydCAiUmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWFQcm94eS5oIgogI2ltcG9ydCAi
UmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWFQcm94eU1lc3NhZ2VzLmgiCiAjaW1wb3J0ICJSZW1v
dGVMYXllclRyZWVUcmFuc2FjdGlvbi5oIgpAQCAtOTYyLDkgKzk2MywyNSBAQCB2b2lkIFdlYlBh
Z2VQcm94eTo6ZGlzYWJsZURvdWJsZVRhcEdlc3R1cmVzRHVyaW5nVGFwSWZOZWNlc3NhcnkodWlu
dDY0X3QgcmVxdWVzdAogICAgIG1fcGFnZUNsaWVudC5kaXNhYmxlRG91YmxlVGFwR2VzdHVyZXNE
dXJpbmdUYXBJZk5lY2Vzc2FyeShyZXF1ZXN0SUQpOwogfQogCi12b2lkIFdlYlBhZ2VQcm94eTo6
ZGlkRmluaXNoRHJhd2luZ1BhZ2VzVG9QREYoY29uc3QgSVBDOjpEYXRhUmVmZXJlbmNlJiBwZGZE
YXRhKQordWludDMyX3QgV2ViUGFnZVByb3h5Ojpjb21wdXRlUGFnZXNGb3JQcmludGluZ0FuZERy
YXdUb1BERih1aW50NjRfdCBmcmFtZUlELCBjb25zdCBQcmludEluZm8mIHByaW50SW5mbywgRHJh
d1RvUERGQ2FsbGJhY2s6OkNhbGxiYWNrRnVuY3Rpb24mJiBjYWxsYmFjaykKIHsKLSAgICBtX3Bh
Z2VDbGllbnQuZGlkRmluaXNoRHJhd2luZ1BhZ2VzVG9QREYocGRmRGF0YSk7CisgICAgaWYgKCFp
c1ZhbGlkKCkpIHsKKyAgICAgICAgY2FsbGJhY2soSVBDOjpEYXRhUmVmZXJlbmNlKCksIENhbGxi
YWNrQmFzZTo6RXJyb3I6Ok93bmVyV2FzSW52YWxpZGF0ZWQpOworICAgICAgICByZXR1cm4gMDsK
KyAgICB9CisKKyAgICB1aW50MzJfdCBwYWdlQ291bnQgPSAwOworICAgIHVpbnQ2NF90IGNhbGxi
YWNrSUQgPSBtX2NhbGxiYWNrcy5wdXQoV1RGTW92ZShjYWxsYmFjayksIG1fcHJvY2Vzcy0+dGhy
b3R0bGVyKCkuYmFja2dyb3VuZEFjdGl2aXR5VG9rZW4oKSk7CisgICAgdXNpbmcgTWVzc2FnZSA9
IE1lc3NhZ2VzOjpXZWJQYWdlOjpDb21wdXRlUGFnZXNGb3JQcmludGluZ0FuZERyYXdUb1BERjsK
KyAgICBwcm9jZXNzKCkuc2VuZFN5bmMoTWVzc2FnZShmcmFtZUlELCBwcmludEluZm8sIGNhbGxi
YWNrSUQpLCBNZXNzYWdlOjpSZXBseShwYWdlQ291bnQpLCBtX3BhZ2VJRCk7CisgICAgcmV0dXJu
IHBhZ2VDb3VudDsKK30KKwordm9pZCBXZWJQYWdlUHJveHk6OmRyYXdUb1BERkNhbGxiYWNrKGNv
bnN0IElQQzo6RGF0YVJlZmVyZW5jZSYgcGRmRGF0YSwgdWludDY0X3QgY2FsbGJhY2tJRCkKK3sK
KyAgICBhdXRvIGNhbGxiYWNrID0gbV9jYWxsYmFja3MudGFrZTxEcmF3VG9QREZDYWxsYmFjaz4o
Y2FsbGJhY2tJRCk7CisgICAgUkVMRUFTRV9BU1NFUlQoY2FsbGJhY2spOworICAgIGNhbGxiYWNr
LT5wZXJmb3JtQ2FsbGJhY2tXaXRoUmV0dXJuVmFsdWUocGRmRGF0YSk7CiB9CiAKIHZvaWQgV2Vi
UGFnZVByb3h5Ojpjb250ZW50U2l6ZUNhdGVnb3J5RGlkQ2hhbmdlKGNvbnN0IFN0cmluZyYgY29u
dGVudFNpemVDYXRlZ29yeSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYktpdDIueGNv
ZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJLaXQyL1dlYktpdDIueGNvZGVwcm9q
L3Byb2plY3QucGJ4cHJvagppbmRleCAyOWU4N2MyZTUzYWRiMzhlYzlmMDM0YTgwM2Q0NWFmNjhk
OWNiYzAzLi45M2ZkYjdkNGI4OTkwNWU3ZDk1YWY4NGZiNmRlOThhNDdjOGRmYTQwIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJLaXQyLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysr
IGIvU291cmNlL1dlYktpdDIvV2ViS2l0Mi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0x
MjYxLDYgKzEyNjEsNyBAQAogCQlBMTE4QTlGMzE5MDhCOEVBMDBGN0M5MkIgLyogX1dLTlNGaWxl
TWFuYWdlckV4dHJhcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gQTExOEE5RjExOTA4QjhFQTAwRjdDOTJCIC8qIF9XS05TRmlsZU1hbmFnZXJFeHRyYXMu
aCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlBMTgy
RDVCNDFCRTZCRDI1MDA4N0E3Q0MgLyogQWNjZXNzaWJpbGl0eUlPUy5tbSBpbiBTb3VyY2VzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEExODJENUIyMUJFNkJEMjUwMDg3QTdD
QyAvKiBBY2Nlc3NpYmlsaXR5SU9TLm1tICovOyB9OwogCQlBMTgyRDVCNTFCRTZCRDI1MDA4N0E3
Q0MgLyogQWNjZXNzaWJpbGl0eUlPUy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gQTE4MkQ1QjMxQkU2QkQyNTAwODdBN0NDIC8qIEFjY2Vzc2liaWxpdHlJ
T1MuaCAqLzsgfTsKKwkJQTE5REQzQzAxRDA3RDE2ODAwQUM4MjNCIC8qIF9XS1dlYlZpZXdQcmlu
dEZvcm1hdHRlckludGVybmFsLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSBBMTlERDNCRjFEMDdEMTY4MDBBQzgyM0IgLyogX1dLV2ViVmlld1ByaW50Rm9y
bWF0dGVySW50ZXJuYWwuaCAqLzsgfTsKIAkJQTFBNEZFNUExOERDRTlGQTAwQjVFQThBIC8qIF9X
S0Rvd25sb2FkLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSBBMUE0RkU1NzE4RENFOUZBMDBCNUVBOEEgLyogX1dLRG93bmxvYWQuaCAqLzsgc2V0dGluZ3Mg
PSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlBMUE0RkU1QjE4RENFOUZBMDBC
NUVBOEEgLyogX1dLRG93bmxvYWQubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSBBMUE0RkU1ODE4RENFOUZBMDBCNUVBOEEgLyogX1dLRG93bmxvYWQubW0g
Ki87IH07CiAJCUExQTRGRTVDMThEQ0U5RkEwMEI1RUE4QSAvKiBfV0tEb3dubG9hZEludGVybmFs
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBMUE0RkU1
OTE4RENFOUZBMDBCNUVBOEEgLyogX1dLRG93bmxvYWRJbnRlcm5hbC5oICovOyB9OwpAQCAtMzMx
Miw2ICszMzEzLDcgQEAKIAkJQTExOEE5RjExOTA4QjhFQTAwRjdDOTJCIC8qIF9XS05TRmlsZU1h
bmFnZXJFeHRyYXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gX1dLTlNGaWxl
TWFuYWdlckV4dHJhcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlBMTgyRDVCMjFC
RTZCRDI1MDA4N0E3Q0MgLyogQWNjZXNzaWJpbGl0eUlPUy5tbSAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLm9iamNwcDsgcGF0aCA9IEFjY2Vzc2liaWxpdHlJT1MubW07IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCUExODJENUIzMUJFNkJEMjUwMDg3QTdDQyAvKiBBY2Nlc3NpYmlsaXR5
SU9TLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEFjY2Vzc2liaWxpdHlJT1Mu
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQTE5REQzQkYxRDA3RDE2ODAwQUM4MjNC
IC8qIF9XS1dlYlZpZXdQcmludEZvcm1hdHRlckludGVybmFsLmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IF9XS1dlYlZpZXdQcmludEZvcm1hdHRlckludGVybmFsLmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUExQTRGRTU3MThEQ0U5RkEwMEI1RUE4QSAvKiBfV0tE
b3dubG9hZC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBfV0tEb3dubG9hZC5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlBMUE0RkU1ODE4RENFOUZBMDBCNUVBOEEg
LyogX1dLRG93bmxvYWQubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGgg
PSBfV0tEb3dubG9hZC5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQTFBNEZFNTkx
OERDRTlGQTAwQjVFQThBIC8qIF9XS0Rvd25sb2FkSW50ZXJuYWwuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gX1dLRG93bmxvYWRJbnRlcm5hbC5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwpAQCAtNDg2NCw2ICs0ODY2LDcgQEAKIAkJCWNoaWxkcmVuID0gKAogCQkJCUM1
NDI1NkFFMThCRUMxNjEwMERFNDE3OSAvKiBmb3JtcyAqLywKIAkJCQlBMTE1REM2RTE5MUQ4MkFC
MDBEQTgwNzIgLyogX1dLV2ViVmlld1ByaW50Rm9ybWF0dGVyLmggKi8sCisJCQkJQTE5REQzQkYx
RDA3RDE2ODAwQUM4MjNCIC8qIF9XS1dlYlZpZXdQcmludEZvcm1hdHRlckludGVybmFsLmggKi8s
CiAJCQkJQTExNURDNkQxOTFEODJBQjAwREE4MDcyIC8qIF9XS1dlYlZpZXdQcmludEZvcm1hdHRl
ci5tbSAqLywKIAkJCQkxQUQ0QzE5MTFCMzlGMzMyMDBBQkMyOEUgLyogQXBwbGljYXRpb25TdGF0
ZVRyYWNrZXIuaCAqLywKIAkJCQkxQUQ0QzE5MDFCMzlGMzMyMDBBQkMyOEUgLyogQXBwbGljYXRp
b25TdGF0ZVRyYWNrZXIubW0gKi8sCkBAIC04MDY4LDYgKzgwNzEsNyBAQAogCQkJCTM3OTQ4NDA5
MTUwQzRCOTcwMEU1MkNFOSAvKiBXS1JlbmRlckxheWVyLmggaW4gSGVhZGVycyAqLywKIAkJCQkz
NzYwODgyMzE1MDQxNEY3MDBGQzgyQzcgLyogV0tSZW5kZXJPYmplY3QuaCBpbiBIZWFkZXJzICov
LAogCQkJCTMzMzY3NjNCMTMwQzk5REMwMDZDOURFMiAvKiBXS1Jlc291cmNlQ2FjaGVNYW5hZ2Vy
LmggaW4gSGVhZGVycyAqLywKKwkJCQlBMTlERDNDMDFEMDdEMTY4MDBBQzgyM0IgLyogX1dLV2Vi
Vmlld1ByaW50Rm9ybWF0dGVySW50ZXJuYWwuaCBpbiBIZWFkZXJzICovLAogCQkJCUJDOEE1MDE1
MTE3NjVGNTYwMDc1NzU3MyAvKiBXS1JldGFpblB0ci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMUE3
RTM3NzkxOEU0QTRGRTAwM0QwRkZGIC8qIFdLU2NyaXB0TWVzc2FnZS5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJMUE3RTM3NzUxOEU0QTMzQTAwM0QwRkZGIC8qIFdLU2NyaXB0TWVzc2FnZUhhbmRsZXIu
aCBpbiBIZWFkZXJzICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9X
ZWJQYWdlL1dlYlBhZ2UuaCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQ
YWdlLmgKaW5kZXggNmI5ZWQ5NzNhNWZiOGRlZTU1NzRhZWY5Y2Y0NjkyZDI0MzczNTJjNS4uYjFk
YWExMjA2NjM3ZjY4ZmRjZWExNzRkZWZlYTk2OTA0YTk2NmQ3YiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaAorKysgYi9Tb3VyY2UvV2ViS2l0
Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENv
cHlyaWdodCAoQykgMjAxMCwgMjAxMSwgMjAxMyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAtMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTc0Myw3ICs3NDMsNyBA
QCBwdWJsaWM6CiAgICAgdm9pZCBkcmF3UGFnZXNUb1BERih1aW50NjRfdCBmcmFtZUlELCBjb25z
dCBQcmludEluZm8mLCB1aW50MzJfdCBmaXJzdCwgdWludDMyX3QgY291bnQsIHVpbnQ2NF90IGNh
bGxiYWNrSUQpOwogICAgIHZvaWQgZHJhd1BhZ2VzVG9QREZJbXBsKHVpbnQ2NF90IGZyYW1lSUQs
IGNvbnN0IFByaW50SW5mbyYsIHVpbnQzMl90IGZpcnN0LCB1aW50MzJfdCBjb3VudCwgUmV0YWlu
UHRyPENGTXV0YWJsZURhdGFSZWY+JiBwZGZQYWdlRGF0YSk7CiAjaWYgUExBVEZPUk0oSU9TKQot
ICAgIHZvaWQgY29tcHV0ZVBhZ2VzRm9yUHJpbnRpbmdBbmRTdGFydERyYXdpbmdUb1BERih1aW50
NjRfdCBmcmFtZUlELCBjb25zdCBQcmludEluZm8mLCB1aW50MzJfdCBmaXJzdFBhZ2UsIFBhc3NS
ZWZQdHI8TWVzc2FnZXM6OldlYlBhZ2U6OkNvbXB1dGVQYWdlc0ZvclByaW50aW5nQW5kU3RhcnRE
cmF3aW5nVG9QREY6OkRlbGF5ZWRSZXBseT4pOworICAgIHZvaWQgY29tcHV0ZVBhZ2VzRm9yUHJp
bnRpbmdBbmREcmF3VG9QREYodWludDY0X3QgZnJhbWVJRCwgY29uc3QgUHJpbnRJbmZvJiwgdWlu
dDY0X3QgY2FsbGJhY2tJRCwgUGFzc1JlZlB0cjxNZXNzYWdlczo6V2ViUGFnZTo6Q29tcHV0ZVBh
Z2VzRm9yUHJpbnRpbmdBbmREcmF3VG9QREY6OkRlbGF5ZWRSZXBseT4pOwogI2VuZGlmCiAjZWxp
ZiBQTEFURk9STShHVEspCiAgICAgdm9pZCBkcmF3UGFnZXNGb3JQcmludGluZyh1aW50NjRfdCBm
cmFtZUlELCBjb25zdCBQcmludEluZm8mLCB1aW50NjRfdCBjYWxsYmFja0lEKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLm1lc3NhZ2VzLmlu
IGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UubWVzc2FnZXMuaW4K
aW5kZXggNzVlMDQzNzQ3ZjY0MmRhZTU4NjlhYTM5YTE4NDg4Yjc1MDJiZDVhNy4uMDExN2E3MTAz
NzlhZWUyNmRlN2Q2MTE2MTYwZDc0MTQ1NTM4MDRmNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UubWVzc2FnZXMuaW4KKysrIGIvU291cmNlL1dl
YktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UubWVzc2FnZXMuaW4KQEAgLTEsNCArMSw0
IEBACi0jIENvcHlyaWdodCAoQykgMjAxMCwgMjAxMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCisjIENvcHlyaWdodCAoQykgMjAxMC0yMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KICMKICMgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAjIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMzAxLDcgKzMwMSw3IEBA
IG1lc3NhZ2VzIC0+IFdlYlBhZ2UgTGVnYWN5UmVjZWl2ZXIgewogICAgIERyYXdSZWN0VG9JbWFn
ZSh1aW50NjRfdCBmcmFtZUlELCBzdHJ1Y3QgV2ViS2l0OjpQcmludEluZm8gcHJpbnRJbmZvLCBX
ZWJDb3JlOjpJbnRSZWN0IHJlY3QsIFdlYkNvcmU6OkludFNpemUgaW1hZ2VTaXplLCB1aW50NjRf
dCBjYWxsYmFja0lEKQogICAgIERyYXdQYWdlc1RvUERGKHVpbnQ2NF90IGZyYW1lSUQsIHN0cnVj
dCBXZWJLaXQ6OlByaW50SW5mbyBwcmludEluZm8sIHVpbnQzMl90IGZpcnN0LCB1aW50MzJfdCBj
b3VudCwgdWludDY0X3QgY2FsbGJhY2tJRCkKICNpZiBQTEFURk9STShJT1MpCi0gICAgQ29tcHV0
ZVBhZ2VzRm9yUHJpbnRpbmdBbmRTdGFydERyYXdpbmdUb1BERih1aW50NjRfdCBmcmFtZUlELCBz
dHJ1Y3QgV2ViS2l0OjpQcmludEluZm8gcHJpbnRJbmZvLCB1aW50MzJfdCBmaXJzdFBhZ2UpIC0+
IChWZWN0b3I8V2ViQ29yZTo6SW50UmVjdD4gcGFnZVJlY3RzLCBkb3VibGUgdG90YWxTY2FsZUZh
Y3RvcikgRGVsYXllZAorICAgIENvbXB1dGVQYWdlc0ZvclByaW50aW5nQW5kRHJhd1RvUERGKHVp
bnQ2NF90IGZyYW1lSUQsIHN0cnVjdCBXZWJLaXQ6OlByaW50SW5mbyBwcmludEluZm8sIHVpbnQ2
NF90IGNhbGxiYWNrSUQpIC0+ICh1aW50MzJfdCBwYWdlQ291bnQpIERlbGF5ZWQKICNlbmRpZgog
I2VuZGlmCiAjaWYgUExBVEZPUk0oR1RLKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2Vi
UHJvY2Vzcy9XZWJQYWdlL2lvcy9XZWJQYWdlSU9TLm1tIGIvU291cmNlL1dlYktpdDIvV2ViUHJv
Y2Vzcy9XZWJQYWdlL2lvcy9XZWJQYWdlSU9TLm1tCmluZGV4IDc2Yjg2MzJiMzAyNDk0YjI3NWI0
Y2JmNzFkZjRhMDNkOGZlMjA0ODQuLmJiY2FiMTVhZDAyMDVjOTI1YzNjMDJkNzlmZmVkMzQ2YTQ5
NDJkODggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9pb3Mv
V2ViUGFnZUlPUy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvaW9z
L1dlYlBhZ2VJT1MubW0KQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDEy
LTIwMTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAy
MDEyLTIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zCkBAIC0zMTI4LDE3ICszMTI4LDIxIEBAIHZvaWQgV2ViUGFnZTo6ZGlz
cGF0Y2hBc3luY2hyb25vdXNUb3VjaEV2ZW50cyhjb25zdCBWZWN0b3I8V2ViVG91Y2hFdmVudCwg
MT4mIHF1CiB9CiAjZW5kaWYKIAotdm9pZCBXZWJQYWdlOjpjb21wdXRlUGFnZXNGb3JQcmludGlu
Z0FuZFN0YXJ0RHJhd2luZ1RvUERGKHVpbnQ2NF90IGZyYW1lSUQsIGNvbnN0IFByaW50SW5mbyYg
cHJpbnRJbmZvLCB1aW50MzJfdCBmaXJzdFBhZ2UsIFBhc3NSZWZQdHI8TWVzc2FnZXM6OldlYlBh
Z2U6OkNvbXB1dGVQYWdlc0ZvclByaW50aW5nQW5kU3RhcnREcmF3aW5nVG9QREY6OkRlbGF5ZWRS
ZXBseT4gcmVwbHkpCit2b2lkIFdlYlBhZ2U6OmNvbXB1dGVQYWdlc0ZvclByaW50aW5nQW5kRHJh
d1RvUERGKHVpbnQ2NF90IGZyYW1lSUQsIGNvbnN0IFByaW50SW5mbyYgcHJpbnRJbmZvLCB1aW50
NjRfdCBjYWxsYmFja0lELCBQYXNzUmVmUHRyPE1lc3NhZ2VzOjpXZWJQYWdlOjpDb21wdXRlUGFn
ZXNGb3JQcmludGluZ0FuZERyYXdUb1BERjo6RGVsYXllZFJlcGx5PiByZXBseSkKIHsKICAgICBW
ZWN0b3I8V2ViQ29yZTo6SW50UmVjdD4gcGFnZVJlY3RzOwotICAgIGRvdWJsZSB0b3RhbFNjYWxl
RmFjdG9yID0gMTsKKyAgICBkb3VibGUgdG90YWxTY2FsZUZhY3RvcjsKICAgICBjb21wdXRlUGFn
ZXNGb3JQcmludGluZ0ltcGwoZnJhbWVJRCwgcHJpbnRJbmZvLCBwYWdlUmVjdHMsIHRvdGFsU2Nh
bGVGYWN0b3IpOworCiAgICAgc3RkOjpzaXplX3QgcGFnZUNvdW50ID0gcGFnZVJlY3RzLnNpemUo
KTsKLSAgICByZXBseS0+c2VuZChXVEZNb3ZlKHBhZ2VSZWN0cyksIHRvdGFsU2NhbGVGYWN0b3Ip
OworICAgIEFTU0VSVChwYWdlQ291bnQgPD0gc3RkOjpudW1lcmljX2xpbWl0czx1aW50MzJfdD46
Om1heCgpKTsKKyAgICByZXBseS0+c2VuZChwYWdlQ291bnQpOwogCiAgICAgUmV0YWluUHRyPENG
TXV0YWJsZURhdGFSZWY+IHBkZlBhZ2VEYXRhOwotICAgIGRyYXdQYWdlc1RvUERGSW1wbChmcmFt
ZUlELCBwcmludEluZm8sIGZpcnN0UGFnZSwgcGFnZUNvdW50IC0gZmlyc3RQYWdlLCBwZGZQYWdl
RGF0YSk7Ci0gICAgc2VuZChNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpEaWRGaW5pc2hEcmF3aW5n
UGFnZXNUb1BERihJUEM6OkRhdGFSZWZlcmVuY2UoQ0ZEYXRhR2V0Qnl0ZVB0cihwZGZQYWdlRGF0
YS5nZXQoKSksIENGRGF0YUdldExlbmd0aChwZGZQYWdlRGF0YS5nZXQoKSkpKSk7CisgICAgZHJh
d1BhZ2VzVG9QREZJbXBsKGZyYW1lSUQsIHByaW50SW5mbywgMCwgcGFnZUNvdW50LCBwZGZQYWdl
RGF0YSk7CisgICAgc2VuZChNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpEcmF3VG9QREZDYWxsYmFj
ayhJUEM6OkRhdGFSZWZlcmVuY2UoQ0ZEYXRhR2V0Qnl0ZVB0cihwZGZQYWdlRGF0YS5nZXQoKSks
IENGRGF0YUdldExlbmd0aChwZGZQYWdlRGF0YS5nZXQoKSkpLCBjYWxsYmFja0lEKSk7CisKKyAg
ICBlbmRQcmludGluZygpOwogfQogCiB2b2lkIFdlYlBhZ2U6OmNvbnRlbnRTaXplQ2F0ZWdvcnlE
aWRDaGFuZ2UoY29uc3QgU3RyaW5nJiBjb250ZW50U2l6ZUNhdGVnb3J5KQo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>280951</attachid>
            <date>2016-06-09 14:33:02 -0700</date>
            <delta_ts>2016-06-09 15:03:34 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-151386-20160609143431.patch</filename>
            <type>text/plain</type>
            <size>41489</size>
            <attacher name="Andy Estes">aestes</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjAxODgyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggYjMxMDQ2NjdhYTNhY2Y5
NDU2ZTRkY2VjOGY4YjZhZDdiNmM1ZGY1MS4uMDEzNWRkMjMzYWNkNWFiMjhlMDA2NmMyM2NhZWVi
MzJmMjJjODY0MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEwNCBAQAorMjAxNi0wNi0wOSAgQW5k
eSBFc3RlcyAgPGFlc3Rlc0BhcHBsZS5jb20+CisKKyAgICAgICAgV0tXZWJWaWV3IGRvZXMgbm90
IHJlbmRlciBQREYgcGFnZXMgaW4gQWlyUHJpbnQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTE1MTM4NgorICAgICAgICByZGFyOi8vcHJvYmxlbS8yMjQ5
OTE1NworCisgICAgICAgIFJldmlld2VkIGJ5IFRpbSBIb3J0b24uCisKKyAgICAgICAgX1dLV2Vi
Vmlld1ByaW50Rm9ybWF0dGVyIG9yaWdpbmFsbHkgYXR0ZW1wdGVkIHRvIGhhbmRsZSBQREZzLCBi
dXQgdGhlIGNvZGUgcGF0aCB3YXMgbmV2ZXIKKyAgICAgICAgcHJvcGVybHkgdGVzdGVkIHNpbmNl
IFNhZmFyaSBwcmludHMgUERGcyBieSBzZXR0aW5nIGEgcHJpbnRpbmdJdGVtIG9uIHRoZQorICAg
ICAgICBVSVByaW50SW50ZXJhY3Rpb25Db250cm9sbGVyIGluc3RlYWQgb2YgZ29pbmcgdGhyb3Vn
aCBhIHByaW50IGZvcm1hdHRlci4gVGhlIGV4aXN0aW5nIGNvZGUKKyAgICAgICAgYWxtb3N0IHdv
cmtlZCwgaWYgaXQgd2VyZW4ndCBmb3IgQ0dDb250ZXh0U2NhbGVDVE0oKSBzY2FsaW5nIGVhY2gg
cGFnZSBpbnRvIG9ibGl2aW9uIGR1ZSB0bworICAgICAgICBfdG90YWxTY2FsZUZhY3RvciBlcXVh
bGluZyAwLgorCisgICAgICAgIFRoaXMgcGF0Y2ggcHJvcGVybHkgaW1wbGVtZW50cyAtW19XS1dl
YlZpZXdQcmludEZvcm1hdHRlciBkcmF3SW5SZWN0OmZvclBhZ2VBdEluZGV4Ol0gdG8KKyAgICAg
ICAgaGFuZGxlIGRyYXdpbmcgYm90aCBQREZzIGdlbmVyYXRlZCBieSBXZWJLaXQgYW5kIFBERnMg
bG9hZGVkIGluIHRoZSBtYWluIGZyYW1lLiBJdCBhbHNvCisgICAgICAgIHRha2VzIHRoZSBvcHBv
cnR1bml0eSB0byBjbGVhbiB1cCBhIG51bWJlciBvZiBpc3N1ZXMgaW4gdGhlIGV4aXN0aW5nIGNv
ZGU6CisKKyAgICAgICAgLSBIYW5kbGluZyBvZiAtW19XS1dlYlZpZXdQcmludEZvcm1hdHRlciBz
dGFydFBhZ2VdIGlzIG5vdyBjb3JyZWN0LiBJIGhhZCBwcmV2aW91c2x5IGFzc3VtZWQKKyAgICAg
ICAgICB0aGlzIHByb3BlcnR5IHJlcHJlc2VudGVkIHRoZSBmaXJzdCBwYWdlIG9mIG91dHB1dCB0
byBwcmludCwgYnV0IGl0IGFjdHVhbGx5IHJlcHJlc2VudHMKKyAgICAgICAgICB0aGUgZmlyc3Qg
cGFnZSBpbiB0aGUgb3ZlcmFsbCBwcmludCBqb2IgdGhhdCB0aGUgcHJpbnQgZm9ybWF0dGVyIHJl
bmRlcnMuIEluIG90aGVyIHdvcmRzLAorICAgICAgICAgIHJlZ2FyZGxlc3Mgb2YgLXN0YXJ0UGFn
ZSwgdGhlIHByaW50IGZvcm1hdHRlciBzaG91bGQgYWx3YXlzIHByaW50IGFsbCBpdHMgcGFnZXMu
CisgICAgICAgIC0gQ29kZSBzcGVjaWZpYyB0byB3ZWJwYWdlIGFuZCBQREYgcHJpbnRpbmcgd2Fz
IGZhY3RvcmVkIG91dCBpbnRvIFdLQ29udGVudFZpZXcgYW5kCisgICAgICAgICAgV0tQREZWaWV3
LCByZXNwZWN0aXZlbHkuIEVhY2ggY29uZm9ybXMgdG8gQHByb3RvY29sKF9XS1dlYlZpZXdQcmlu
dFByb3ZpZGVyKSwgYW5kCisgICAgICAgICAgX1dLV2ViVmlld1ByaW50Rm9ybWF0dGVyIGFjY2Vz
c2VzIHRoZSBwcm92aWRlciB2aWEgLVtXS1dlYlZpZXcgX3ByaW50UHJvdmlkZXJdLgorICAgICAg
ICAtIEluc3RlYWQgb2YgcGlwaW5nIHRoZSBwcmludGVkIFBERiBkYXRhIGZyb20gV2ViUGFnZVBy
b3h5IHRvIFdLV2ViVmlldyB2aWEgUGFnZUNsaWVudCwgdXNlCisgICAgICAgICAgdGhlIEdlbmVy
aWNDYWxsYmFjayBtZWNoYW5pc20gdG8gaGF2ZSBXZWJQYWdlUHJveHkgY2FsbCBhIGxhbWJkYSBz
cGVjaWZpZWQgYnkKKyAgICAgICAgICBXS0NvbnRlbnRWaWV3IHdoZW4gdGhlIHByaW50ZWQgUERG
IGlzIGF2YWlsYWJsZS4KKyAgICAgICAgLSBSZW1vdmVkIF90b3RhbFNjYWxlRmFjdG9yIGFuZCB1
c2VkIENHUERGUGFnZUdldERyYXdpbmdUcmFuc2Zvcm0oKSB0byB0cmFuc2Zvcm0gYm90aAorICAg
ICAgICAgIHdlYnBhZ2VzIGFuZCBQREZzLiBGb3Igd2VicGFnZXMsIF90b3RhbFNjYWxlRmFjdG9y
IHdpbGwgYWx3YXlzIGVxdWFsIHRoZSByYXRpbyBvZiB0aGUKKyAgICAgICAgICBwYXBlciB3aWR0
aCB0byB0aGUgUERGIHBhZ2Ugd2lkdGgsIHNvIENHUERGUGFnZUdldERyYXdpbmdUcmFuc2Zvcm0o
KSB3aWxsIGFwcGx5IHRoZSBzYW1lCisgICAgICAgICAgc2NhbGluZyBhcyBDR0NvbnRleHRTY2Fs
ZUNUTShfdG90YWxTY2FsZUZhY3RvciwgX3RvdGFsU2NhbGVGYWN0b3IpIHdvdWxkLgorCisgICAg
ICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXcubW06CisgICAgICAgICgtW1dLV2Vi
VmlldyBfcHJpbnRQcm92aWRlcl0pOiBBZGRlZC4gUmV0dXJucyBfY3VycmVudENvbnRlbnRWaWV3
IGlmIGl0IGNvbmZvcm1zIHRvCisgICAgICAgIEBwcm90b2NvbChfV0tXZWJWaWV3UHJpbnRQcm92
aWRlcikuCisgICAgICAgICgtW1dLV2ViVmlldyBfY29tcHV0ZVBhZ2VDb3VudEFuZFN0YXJ0RHJh
d2luZ1RvUERGRm9yRnJhbWU6cHJpbnRJbmZvOmZpcnN0UGFnZTpjb21wdXRlZFRvdGFsU2NhbGVG
YWN0b3I6XSk6CisgICAgICAgIE1vdmVkIGNvZGUgdG8gX3drX3BhZ2VDb3VudEZvclByaW50Rm9y
bWF0dGVyIGluIFdLQ29udGVudFZpZXcgYW5kIFdLUERGVmlldy4KKyAgICAgICAgKC1bV0tXZWJW
aWV3IF9lbmRQcmludGluZ10pOiBEZWxldGVkLgorICAgICAgICAoLVtXS1dlYlZpZXcgX3ByaW50
ZWREb2N1bWVudF0pOiBEZWxldGVkLgorICAgICAgICAoLVtXS1dlYlZpZXcgX3NldFByaW50ZWRE
b2N1bWVudDpdKTogRGVsZXRlZC4KKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL1dLV2Vi
Vmlld0ludGVybmFsLmg6IERlY2xhcmVkIHRoZSBfcHJpbnRQcm92aWRlciBwcm9wZXJ0eS4KKyAg
ICAgICAgKiBVSVByb2Nlc3MvUGFnZUNsaWVudC5oOiBSZW1vdmVkIGRpZEZpbmlzaERyYXdpbmdQ
YWdlc1RvUERGKCkuCisgICAgICAgICogVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oOiBEZWNsYXJl
ZCBjb21wdXRlUGFnZXNGb3JQcmludGluZ0FuZERyYXdUb1BERigpIGFuZAorICAgICAgICBkcmF3
VG9QREZDYWxsYmFjaygpLgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQYWdlUHJveHkubWVzc2Fn
ZXMuaW46IFJlbmFtZWQgRGlkRmluaXNoRHJhd2luZ1BhZ2VzVG9QREYgdG8KKyAgICAgICAgRHJh
d1RvUERGQ2FsbGJhY2suCisgICAgICAgICogVUlQcm9jZXNzL19XS1dlYlZpZXdQcmludEZvcm1h
dHRlci5tbTogQmFja2VkIHRoZSBmcmFtZVRvUHJpbnQgcHJvcGVydHkgd2l0aCBhIFJldGFpblB0
cgorICAgICAgICBpdmFyIHNvIHRoYXQgaXQgZG9lc24ndCBuZWVkIHRvIGJlIHJlbGVhc2VkIG1h
bnVhbGx5IGluIC1kZWFsbG9jOyByZW1vdmVkIF90b3RhbFNjYWxlRmFjdG9yCisgICAgICAgIGFu
ZCBfcHJpbnRJbmZvIGl2YXJzIGFuZCBhZGRlZCBhIF9wcmludGVkRG9jdW1lbnQgaXZhcjsgcmVt
b3ZlZCB0aGUgcHJvcGVydHkgZGVjbGFyYXRpb24gZm9yCisgICAgICAgIHdlYlZpZXcuCisgICAg
ICAgICgtW19XS1dlYlZpZXdQcmludEZvcm1hdHRlciBmcmFtZVRvUHJpbnRdKTogQWRkZWQgYSBj
dXN0b20gZ2V0dGVyIGZvciB0aGUgZnJhbWVUb1ByaW50CisgICAgICAgIHByb3BlcnR5LgorICAg
ICAgICAoLVtfV0tXZWJWaWV3UHJpbnRGb3JtYXR0ZXIgc2V0RnJhbWVUb1ByaW50Ol0pOiBBZGRl
ZCBhIGN1c3RvbSBzZXR0ZXIgZm9yIHRoZSBmcmFtZVRvUHJpbnQKKyAgICAgICAgcHJvcGVydHku
CisgICAgICAgICgtW19XS1dlYlZpZXdQcmludEZvcm1hdHRlciBfd2ViVmlld10pOiBSZW5hbWVk
IGZyb20gd2ViVmlldzsgYWRkZWQgYW4gdW5kZXJzY29yZSBzaW5jZSB0aGlzCisgICAgICAgIGlz
IGEgcHJpdmF0ZSBtZXRob2QuCisgICAgICAgICgtW19XS1dlYlZpZXdQcmludEZvcm1hdHRlciBf
cmVjYWxjUGFnZUNvdW50XSk6IFJldHJpZXZlZCB0aGUgcGFnZSBjb3VudCBmcm9tIHRoZSBwcmlu
dAorICAgICAgICBwcm92aWRlciBhbmQgY2xhbXBlZCBpdHMgdmFsdWUgdG8gTlNJbnRlZ2VyTWF4
LgorICAgICAgICAoLVtfV0tXZWJWaWV3UHJpbnRGb3JtYXR0ZXIgZHJhd0luUmVjdDpmb3JQYWdl
QXRJbmRleDpdKTogUmV0cmlldmVkIHRoZSBwcmludGVkIGRvY3VtZW50CisgICAgICAgIGZyb20g
dGhlIHByaW50IHByb3ZpZGVyIGlmIG5lZWRlZDsgbW9kaWZpZWQgdGhlIENUTSB0cmFuc2Zvcm1h
dGlvbnMgdG8gd29yayBmb3IgYm90aAorICAgICAgICB3ZWJwYWdlcyBhbmQgUERGcy4KKyAgICAg
ICAgKC1bX1dLV2ViVmlld1ByaW50Rm9ybWF0dGVyIGRlYWxsb2NdKTogRGVsZXRlZC4KKyAgICAg
ICAgKC1bX1dLV2ViVmlld1ByaW50Rm9ybWF0dGVyIHdlYlZpZXddKTogUmVuYW1lZCB0byBfd2Vi
Vmlldy4KKyAgICAgICAgKC1bX1dLV2ViVmlld1ByaW50Rm9ybWF0dGVyIHJlY3RGb3JQYWdlQXRJ
bmRleDpdKTogRGVsZXRlZC4KKyAgICAgICAgKiBVSVByb2Nlc3MvX1dLV2ViVmlld1ByaW50Rm9y
bWF0dGVySW50ZXJuYWwuaDogQWRkZWQuIE1vdmVkIGEgVUlQcmludEZvcm1hdHRlciBpbnRlcm5h
bAorICAgICAgICBtZXRob2QgZGVjbGFyYXRpb24gdG8gaGVyZSBhbmQgZGVmaW5lZCB0aGUgX1dL
V2ViVmlld1ByaW50UHJvdmlkZXIgcHJvdG9jb2wuCisgICAgICAgICogVUlQcm9jZXNzL2lvcy9Q
YWdlQ2xpZW50SW1wbElPUy5oOiBSZW1vdmVkIGRpZEZpbmlzaERyYXdpbmdQYWdlc1RvUERGKCku
CisgICAgICAgICogVUlQcm9jZXNzL2lvcy9QYWdlQ2xpZW50SW1wbElPUy5tbTogRGl0dG8uCisg
ICAgICAgIChXZWJLaXQ6OlBhZ2VDbGllbnRJbXBsOjpkaWRGaW5pc2hEcmF3aW5nUGFnZXNUb1BE
Rik6IERlbGV0ZWQuCisgICAgICAgICogVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3Lm1tOiBD
b25mb3JtZWQgdG8gQHByb3RvY29sKF9XS1dlYlZpZXdQcmludFByb3ZpZGVyKS4KKyAgICAgICAg
KC1bV0tDb250ZW50VmlldyBfd2tfcGFnZUNvdW50Rm9yUHJpbnRGb3JtYXR0ZXI6XSk6IE1vdmVk
IHRoZSBjb2RlIHRvIGNvbXB1dGUgcGFnZSBjb3VudAorICAgICAgICBmcm9tIFdLV2ViVmlldyB0
byBoZXJlLgorICAgICAgICAoLVtXS0NvbnRlbnRWaWV3IF93a19wcmludGVkRG9jdW1lbnRdKTog
TW92ZWQgdGhlIGNvZGUgdG8gZ2V0IHRoZSBwcmludGVkIGRvY3VtZW50IGZyb20KKyAgICAgICAg
V0tXZWJWaWV3IHRvIGhlcmUuCisgICAgICAgICogVUlQcm9jZXNzL2lvcy9XS1BERlZpZXcubW06
CisgICAgICAgICgtW1dLUERGVmlldyBfd2tfcGFnZUNvdW50Rm9yUHJpbnRGb3JtYXR0ZXI6XSk6
IE1vdmVkIHRoZSBjb2RlIHRvIGNvbXB1dGUgdGhlIHBhZ2UgY291bnQKKyAgICAgICAgZnJvbSBX
S1dlYlZpZXcgdG8gaGVyZTsgYWRkZWQgYSBjYWxsIHRvIENHUERGRG9jdW1lbnRBbGxvd3NQcmlu
dGluZygpLCByZXR1cm5pbmcgMCBpZgorICAgICAgICBwcmludGluZyBpcyBub3QgYWxsb3dlZC4K
KyAgICAgICAgKC1bV0tQREZWaWV3IF93a19wcmludGVkRG9jdW1lbnRdKTogTW92ZWQgdGhlIGNv
ZGUgdG8gZ2V0IHRoZSBwcmludGVkIGRvY3VtZW50IGZyb20KKyAgICAgICAgV0tXZWJWaWV3IHRv
IGhlcmUuCisgICAgICAgICogVUlQcm9jZXNzL2lvcy9XZWJQYWdlUHJveHlJT1MubW06CisgICAg
ICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6Y29tcHV0ZVBhZ2VzRm9yUHJpbnRpbmdBbmREcmF3
VG9QREYpOiBSZWdpc3RlcmVkIHRoZSBjYWxsYmFjayB3aXRoCisgICAgICAgIG1fY2FsbGJhY2tz
IGFuZCBzZW50IE1lc3NhZ2VzOjpXZWJQYWdlOjpDb21wdXRlUGFnZXNGb3JQcmludGluZ0FuZERy
YXdUb1BERjsgcmV0dXJuZWQgdGhlCisgICAgICAgIHN5bmNocm9ub3VzbHktcmV0dXJuZWQgcGFn
ZSBjb3VudC4KKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5OjpkcmF3VG9QREZDYWxsYmFj
ayk6IEFkZGVkIHRvIHBlcmZvcm0gdGhlIGNhbGxiYWNrIHdoZW4gZHJhd2luZyB0byBQREYKKyAg
ICAgICAgaXMgY29tcGxldGUuCisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6ZGlkRmlu
aXNoRHJhd2luZ1BhZ2VzVG9QREYpOiBEZWxldGVkLgorICAgICAgICAqIFdlYktpdDIueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvajogQWRkZWQgX1dLV2ViVmlld1ByaW50Rm9ybWF0dGVySW50ZXJu
YWwuaC4KKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oOiBSZW5hbWVkIGNv
bXB1dGVQYWdlc0ZvclByaW50aW5nQW5kU3RhcnREcmF3aW5nVG9QREYoKSB0bworICAgICAgICBj
b21wdXRlUGFnZXNGb3JQcmludGluZ0FuZERyYXdUb1BERigpLgorICAgICAgICAqIFdlYlByb2Nl
c3MvV2ViUGFnZS9XZWJQYWdlLm1lc3NhZ2VzLmluOiBSZW5hbWVkCisgICAgICAgIENvbXB1dGVQ
YWdlc0ZvclByaW50aW5nQW5kU3RhcnREcmF3aW5nVG9QREYgdG8gQ29tcHV0ZVBhZ2VzRm9yUHJp
bnRpbmdBbmREcmF3VG9QREYuIFJlbW92ZWQKKyAgICAgICAgdGhlIHN0YXJ0UGFnZSBwYXJhbWV0
ZXIgYW5kIGFkZGVkIGEgY2FsbGJhY2tJRC4KKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2Uv
aW9zL1dlYlBhZ2VJT1MubW06CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6OmNvbXB1dGVQYWdl
c0ZvclByaW50aW5nQW5kRHJhd1RvUERGKTogUmVuYW1lZCBmcm9tCisgICAgICAgIGNvbXB1dGVQ
YWdlc0ZvclByaW50aW5nQW5kU3RhcnREcmF3aW5nVG9QREYoKS4gQWRkZWQgYSBjYWxsIHRvIGVu
ZFByaW50aW5nKCkgYWZ0ZXIgc2VuZGluZworICAgICAgICBNZXNzYWdlczo6V2ViUGFnZVByb3h5
OjpEcmF3VG9QREZDYWxsYmFjay4KKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6Y29tcHV0ZVBh
Z2VzRm9yUHJpbnRpbmdBbmRTdGFydERyYXdpbmdUb1BERik6IFJlbmFtZWQgdG8KKyAgICAgICAg
Y29tcHV0ZVBhZ2VzRm9yUHJpbnRpbmdBbmREcmF3VG9QREYuCisKIDIwMTYtMDYtMDkgIEFsZXgg
Q2hyaXN0ZW5zZW4gIDxhY2hyaXN0ZW5zZW5Ad2Via2l0Lm9yZz4KIAogICAgICAgICBDbGVhbiB1
cCBXZWJTb2NrZXQgY29kZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQ
SS9Db2NvYS9XS1dlYlZpZXcubW0gYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29h
L1dLV2ViVmlldy5tbQppbmRleCA2Y2UyZmU0ZDM2ZDRhODY3MGU0N2ZlODVmMTAwZTRkNmQ2ZDY5
OTJhLi5lMTc1NGY0MmI2ZmFmMWFlNWIwMzE0MjlhMGFkNGMwODU3NjZiODEwIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlldy5tbQorKysgYi9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlldy5tbQpAQCAtOTksNyAr
OTksNiBAQAogCiAjaWYgUExBVEZPUk0oSU9TKQogI2ltcG9ydCAiX1dLV2ViVmlld1ByaW50Rm9y
bWF0dGVyLmgiCi0jaW1wb3J0ICJQcmludEluZm8uaCIKICNpbXBvcnQgIlByb2Nlc3NUaHJvdHRs
ZXIuaCIKICNpbXBvcnQgIlJlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVhUHJveHkuaCIKICNpbXBv
cnQgIlJlbW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yUHJveHkuaCIKQEAgLTEwOCw3ICsxMDcsNiBA
QAogI2ltcG9ydCAiV0tQREZWaWV3LmgiCiAjaW1wb3J0ICJXS1Njcm9sbFZpZXcuaCIKICNpbXBv
cnQgIldLV2ViVmlld0NvbnRlbnRQcm92aWRlclJlZ2lzdHJ5LmgiCi0jaW1wb3J0ICJXZWJQYWdl
TWVzc2FnZXMuaCIKICNpbXBvcnQgIldlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eS5oIgog
I2ltcG9ydCA8VUlLaXQvVUlBcHBsaWNhdGlvbi5oPgogI2ltcG9ydCA8V2ViQ29yZS9Db3JlR3Jh
cGhpY3NTUEkuaD4KQEAgLTI2MCw4ICsyNTgsNiBAQCBAaW1wbGVtZW50YXRpb24gV0tXZWJWaWV3
IHsKICAgICBCT09MIF9kZWxheVVwZGF0ZVZpc2libGVDb250ZW50UmVjdHM7CiAgICAgQk9PTCBf
aGFkRGVsYXllZFVwZGF0ZVZpc2libGVDb250ZW50UmVjdHM7CiAKLSAgICBCT09MIF9wYWdlSXNQ
cmludGluZ1RvUERGOwotICAgIFJldGFpblB0cjxDR1BERkRvY3VtZW50UmVmPiBfcHJpbnRlZERv
Y3VtZW50OwogICAgIFZlY3RvcjxzdGQ6OmZ1bmN0aW9uPHZvaWQgKCk+PiBfc25hcHNob3RzRGVm
ZXJyZWREdXJpbmdSZXNpemU7CiAjZW5kaWYKICNpZiBQTEFURk9STShNQUMpCkBAIC00NTMzLDUw
ICs0NTI5LDEyIEBAIC0gKENsYXNzKV9wcmludEZvcm1hdHRlckNsYXNzCiAgICAgcmV0dXJuIFtf
V0tXZWJWaWV3UHJpbnRGb3JtYXR0ZXIgY2xhc3NdOwogfQogCi0tIChOU0ludGVnZXIpX2NvbXB1
dGVQYWdlQ291bnRBbmRTdGFydERyYXdpbmdUb1BERkZvckZyYW1lOihfV0tGcmFtZUhhbmRsZSAq
KWZyYW1lIHByaW50SW5mbzooY29uc3QgV2ViS2l0OjpQcmludEluZm8mKXByaW50SW5mbyBmaXJz
dFBhZ2U6KHVpbnQzMl90KWZpcnN0UGFnZSBjb21wdXRlZFRvdGFsU2NhbGVGYWN0b3I6KGRvdWJs
ZSYpdG90YWxTY2FsZUZhY3RvcgorLSAoaWQgPF9XS1dlYlZpZXdQcmludFByb3ZpZGVyPilfcHJp
bnRQcm92aWRlcgogewotICAgIGlmIChbc2VsZiBfaXNEaXNwbGF5aW5nUERGXSkKLSAgICAgICAg
cmV0dXJuIENHUERGRG9jdW1lbnRHZXROdW1iZXJPZlBhZ2VzKFsoV0tQREZWaWV3ICopX2N1c3Rv
bUNvbnRlbnRWaWV3IHBkZkRvY3VtZW50XSk7Ci0KLSAgICBfcGFnZUlzUHJpbnRpbmdUb1BERiA9
IFlFUzsKLSAgICBWZWN0b3I8V2ViQ29yZTo6SW50UmVjdD4gcGFnZVJlY3RzOwotICAgIHVpbnQ2
NF90IGZyYW1lSUQgPSBmcmFtZSA/IGZyYW1lLl9mcmFtZUlEIDogX3BhZ2UtPm1haW5GcmFtZSgp
LT5mcmFtZUlEKCk7Ci0gICAgaWYgKCFfcGFnZS0+c2VuZFN5bmMoTWVzc2FnZXM6OldlYlBhZ2U6
OkNvbXB1dGVQYWdlc0ZvclByaW50aW5nQW5kU3RhcnREcmF3aW5nVG9QREYoZnJhbWVJRCwgcHJp
bnRJbmZvLCBmaXJzdFBhZ2UpLCBNZXNzYWdlczo6V2ViUGFnZTo6Q29tcHV0ZVBhZ2VzRm9yUHJp
bnRpbmdBbmRTdGFydERyYXdpbmdUb1BERjo6UmVwbHkocGFnZVJlY3RzLCB0b3RhbFNjYWxlRmFj
dG9yKSkpCi0gICAgICAgIHJldHVybiAwOwotICAgIHJldHVybiBwYWdlUmVjdHMuc2l6ZSgpOwot
fQotCi0tICh2b2lkKV9lbmRQcmludGluZwotewotICAgIF9wYWdlSXNQcmludGluZ1RvUERGID0g
Tk87Ci0gICAgX3ByaW50ZWREb2N1bWVudCA9IG51bGxwdHI7Ci0gICAgX3BhZ2UtPnNlbmQoTWVz
c2FnZXM6OldlYlBhZ2U6OkVuZFByaW50aW5nKCkpOwotfQotCi0tIChDR1BERkRvY3VtZW50UmVm
KV9wcmludGVkRG9jdW1lbnQKLXsKLSAgICBpZiAoW3NlbGYgX2lzRGlzcGxheWluZ1BERl0pIHsK
LSAgICAgICAgQVNTRVJUKCFfcGFnZUlzUHJpbnRpbmdUb1BERik7Ci0gICAgICAgIHJldHVybiBb
KFdLUERGVmlldyAqKV9jdXN0b21Db250ZW50VmlldyBwZGZEb2N1bWVudF07Ci0gICAgfQotCi0g
ICAgaWYgKF9wYWdlSXNQcmludGluZ1RvUERGKSB7Ci0gICAgICAgIGlmICghX3BhZ2UtPnByb2Nl
c3MoKS5jb25uZWN0aW9uKCktPndhaXRGb3JBbmREaXNwYXRjaEltbWVkaWF0ZWx5PE1lc3NhZ2Vz
OjpXZWJQYWdlUHJveHk6OkRpZEZpbmlzaERyYXdpbmdQYWdlc1RvUERGPihfcGFnZS0+cGFnZUlE
KCksIHN0ZDo6Y2hyb25vOjptaWxsaXNlY29uZHM6Om1heCgpKSkgewotICAgICAgICAgICAgQVNT
RVJUX05PVF9SRUFDSEVEKCk7Ci0gICAgICAgICAgICByZXR1cm4gbnVsbHB0cjsKLSAgICAgICAg
fQotICAgICAgICBBU1NFUlQoIV9wYWdlSXNQcmludGluZ1RvUERGKTsKLSAgICB9Ci0gICAgcmV0
dXJuIF9wcmludGVkRG9jdW1lbnQuZ2V0KCk7Ci19Ci0KLS0gKHZvaWQpX3NldFByaW50ZWREb2N1
bWVudDooQ0dQREZEb2N1bWVudFJlZilwcmludGVkRG9jdW1lbnQKLXsKLSAgICBpZiAoIV9wYWdl
SXNQcmludGluZ1RvUERGKQotICAgICAgICByZXR1cm47Ci0gICAgQVNTRVJUKCFbc2VsZiBfaXNE
aXNwbGF5aW5nUERGXSk7Ci0gICAgX3ByaW50ZWREb2N1bWVudCA9IHByaW50ZWREb2N1bWVudDsK
LSAgICBfcGFnZUlzUHJpbnRpbmdUb1BERiA9IE5POworICAgIGlkIGNvbnRlbnRWaWV3ID0gc2Vs
Zi5fY3VycmVudENvbnRlbnRWaWV3OworICAgIGlmIChbY29udGVudFZpZXcgY29uZm9ybXNUb1By
b3RvY29sOkBwcm90b2NvbChfV0tXZWJWaWV3UHJpbnRQcm92aWRlcildKQorICAgICAgICByZXR1
cm4gY29udGVudFZpZXc7CisgICAgcmV0dXJuIG5pbDsKIH0KIAogQGVuZApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXdJbnRlcm5hbC5oIGIv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXdJbnRlcm5hbC5oCmlu
ZGV4IDZlOWQ0MzViZTE3Yzg4N2QyNmNkY2Q3MTEwNzFjMjdkYWQzZDhmZTIuLjNmZDNmMTJjZTli
ZjNkNzQ2MDBlZmVlMzNkNjRlOGM2N2YyY2Y1YWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3SW50ZXJuYWwuaAorKysgYi9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlld0ludGVybmFsLmgKQEAgLTEsNSArMSw1
IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDE0IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxNC0yMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtNTcsNiArNTcsNyBA
QCBzdHJ1Y3QgUHJpbnRJbmZvOwogCiBAY2xhc3MgV0tXZWJWaWV3Q29udGVudFByb3ZpZGVyUmVn
aXN0cnk7CiBAY2xhc3MgX1dLRnJhbWVIYW5kbGU7CitAcHJvdG9jb2wgX1dLV2ViVmlld1ByaW50
UHJvdmlkZXI7CiAKIEBpbnRlcmZhY2UgV0tXZWJWaWV3ICgpIFdLX1dFQl9WSUVXX1BST1RPQ09M
UyB7CiAKQEAgLTEzNCw5ICsxMzUsNyBAQCBXS1dlYlZpZXcqIGZyb21XZWJQYWdlUHJveHkoV2Vi
S2l0OjpXZWJQYWdlUHJveHkmKTsKIAogI2lmIFBMQVRGT1JNKElPUykKIEBpbnRlcmZhY2UgV0tX
ZWJWaWV3IChfV0tXZWJWaWV3UHJpbnRGb3JtYXR0ZXIpCi0tIChOU0ludGVnZXIpX2NvbXB1dGVQ
YWdlQ291bnRBbmRTdGFydERyYXdpbmdUb1BERkZvckZyYW1lOihfV0tGcmFtZUhhbmRsZSAqKWZy
YW1lIHByaW50SW5mbzooY29uc3QgV2ViS2l0OjpQcmludEluZm8mKXByaW50SW5mbyBmaXJzdFBh
Z2U6KHVpbnQzMl90KWZpcnN0UGFnZSBjb21wdXRlZFRvdGFsU2NhbGVGYWN0b3I6KGRvdWJsZSYp
dG90YWxTY2FsZUZhY3RvcjsKLS0gKHZvaWQpX2VuZFByaW50aW5nOwotQHByb3BlcnR5IChub25h
dG9taWMsIHNldHRlcj1fc2V0UHJpbnRlZERvY3VtZW50OikgQ0dQREZEb2N1bWVudFJlZiBfcHJp
bnRlZERvY3VtZW50OworQHByb3BlcnR5IChub25hdG9taWMsIHJlYWRvbmx5KSBpZCA8X1dLV2Vi
Vmlld1ByaW50UHJvdmlkZXI+IF9wcmludFByb3ZpZGVyOwogQGVuZAogI2VuZGlmCiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9QYWdlQ2xpZW50LmggYi9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvUGFnZUNsaWVudC5oCmluZGV4IDNjN2FiNzQwODYwNGU4NDcyMmVjMmVi
ZWE4OTcxNGQ1NmJjZTE5ZjIuLjBmMmQ4YWU3MTNjMmQ4YjFmYjNkYTA3NGM4NzQ4OTQ0MWM3MzU4
YTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9QYWdlQ2xpZW50LmgKKysr
IGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1BhZ2VDbGllbnQuaApAQCAtMSw1ICsxLDUgQEAK
IC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTAsIDIwMTEsIDIwMTYgQXBwbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDEwLTIwMTYgQXBwbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0zMDUs
NyArMzA1LDYgQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBvdmVyZmxvd1Njcm9sbFZpZXdE
aWRTY3JvbGwoKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIG92ZXJmbG93U2Nyb2xsV2lsbFN0YXJ0
U2Nyb2xsKCkgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBvdmVyZmxvd1Njcm9sbERpZEVuZFNjcm9s
bCgpID0gMDsKLSAgICB2aXJ0dWFsIHZvaWQgZGlkRmluaXNoRHJhd2luZ1BhZ2VzVG9QREYoY29u
c3QgSVBDOjpEYXRhUmVmZXJlbmNlJikgPSAwOwogICAgIHZpcnR1YWwgVmVjdG9yPFN0cmluZz4g
bWltZVR5cGVzV2l0aEN1c3RvbUNvbnRlbnRQcm92aWRlcnMoKSA9IDA7CiAKICAgICB2aXJ0dWFs
IHZvaWQgc2hvd0luc3BlY3RvckhpZ2hsaWdodChjb25zdCBXZWJDb3JlOjpIaWdobGlnaHQmKSA9
IDA7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5Lmgg
Yi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKaW5kZXggYjNmOGRmOWJl
N2Q2Y2EyOWJkZTAzNGFjNDI1ZmVlZDQ3YjcyMDJlYi4uMDhjNmJkMDM0NDdjOTIzZGIxMzY2Y2U4
N2UxMTA2OTJhMTExNWQ5NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dl
YlBhZ2VQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHku
aApAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTAsIDIwMTEsIDIwMTQt
MjAxNSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIw
MTAtMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMKQEAgLTI1Niw2ICsyNTYsOCBAQCBzdHJ1Y3QgTm9kZUFzc2lzdGFuY2VB
cmd1bWVudHMgewogICAgIGJvb2wgbV9ibHVyUHJldmlvdXNOb2RlOwogICAgIFJlZlB0cjxBUEk6
Ok9iamVjdD4gbV91c2VyRGF0YTsKIH07CisKK3VzaW5nIERyYXdUb1BERkNhbGxiYWNrID0gR2Vu
ZXJpY0NhbGxiYWNrPGNvbnN0IElQQzo6RGF0YVJlZmVyZW5jZSY+OwogI2VuZGlmCiAKICNpZiBQ
TEFURk9STShDT0NPQSkKQEAgLTUxNSw3ICs1MTcsNiBAQCBwdWJsaWM6CiAgICAgdm9pZCBjb21t
aXRQb3RlbnRpYWxUYXBGYWlsZWQoKTsKICAgICB2b2lkIGRpZE5vdEhhbmRsZVRhcEFzQ2xpY2so
Y29uc3QgV2ViQ29yZTo6SW50UG9pbnQmKTsKICAgICB2b2lkIGRpc2FibGVEb3VibGVUYXBHZXN0
dXJlc0R1cmluZ1RhcElmTmVjZXNzYXJ5KHVpbnQ2NF90IHJlcXVlc3RJRCk7Ci0gICAgdm9pZCBk
aWRGaW5pc2hEcmF3aW5nUGFnZXNUb1BERihjb25zdCBJUEM6OkRhdGFSZWZlcmVuY2UmKTsKICAg
ICB2b2lkIGNvbnRlbnRTaXplQ2F0ZWdvcnlEaWRDaGFuZ2UoY29uc3QgU3RyaW5nJiBjb250ZW50
U2l6ZUNhdGVnb3J5KTsKICAgICB2b2lkIGdldFNlbGVjdGlvbkNvbnRleHQoc3RkOjpmdW5jdGlv
bjx2b2lkKGNvbnN0IFN0cmluZyYsIGNvbnN0IFN0cmluZyYsIGNvbnN0IFN0cmluZyYsIENhbGxi
YWNrQmFzZTo6RXJyb3IpPik7CiAgICAgdm9pZCBoYW5kbGVUd29GaW5nZXJUYXBBdFBvaW50KGNv
bnN0IFdlYkNvcmU6OkludFBvaW50Jiwgc3RkOjpmdW5jdGlvbjx2b2lkKGNvbnN0IFN0cmluZyYs
IENhbGxiYWNrQmFzZTo6RXJyb3IpPik7CkBAIC05MDUsNiArOTA2LDEwIEBAIHB1YmxpYzoKICNp
ZiBQTEFURk9STShDT0NPQSkKICAgICB2b2lkIGRyYXdSZWN0VG9JbWFnZShXZWJGcmFtZVByb3h5
KiwgY29uc3QgUHJpbnRJbmZvJiwgY29uc3QgV2ViQ29yZTo6SW50UmVjdCYsIGNvbnN0IFdlYkNv
cmU6OkludFNpemUmLCBQYXNzUmVmUHRyPEltYWdlQ2FsbGJhY2s+KTsKICAgICB2b2lkIGRyYXdQ
YWdlc1RvUERGKFdlYkZyYW1lUHJveHkqLCBjb25zdCBQcmludEluZm8mLCB1aW50MzJfdCBmaXJz
dCwgdWludDMyX3QgY291bnQsIFBhc3NSZWZQdHI8RGF0YUNhbGxiYWNrPik7CisjaWYgUExBVEZP
Uk0oSU9TKQorICAgIHVpbnQzMl90IGNvbXB1dGVQYWdlc0ZvclByaW50aW5nQW5kRHJhd1RvUERG
KHVpbnQ2NF90IGZyYW1lSUQsIGNvbnN0IFByaW50SW5mbyYsIERyYXdUb1BERkNhbGxiYWNrOjpD
YWxsYmFja0Z1bmN0aW9uJiYpOworICAgIHZvaWQgZHJhd1RvUERGQ2FsbGJhY2soY29uc3QgSVBD
OjpEYXRhUmVmZXJlbmNlJiBwZGZEYXRhLCB1aW50NjRfdCBjYWxsYmFja0lEKTsKKyNlbmRpZgog
I2VsaWYgUExBVEZPUk0oR1RLKQogICAgIHZvaWQgZHJhd1BhZ2VzRm9yUHJpbnRpbmcoV2ViRnJh
bWVQcm94eSosIGNvbnN0IFByaW50SW5mbyYsIFBhc3NSZWZQdHI8UHJpbnRGaW5pc2hlZENhbGxi
YWNrPik7CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQ
YWdlUHJveHkubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVBy
b3h5Lm1lc3NhZ2VzLmluCmluZGV4IDk2Y2I5ZTg2MTUxYmQ3NjIzODM1ODgwYWI5YjAwZjNmMWU0
MDczZTYuLmE5NDcxZWNiY2MxYWRmODc2ZWNiMzJlMWE5OWM5YTc2NGQyYWRlMWQgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkubWVzc2FnZXMuaW4KKysr
IGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5tZXNzYWdlcy5pbgpAQCAt
MSw0ICsxLDQgQEAKLSMgQ29weXJpZ2h0IChDKSAyMDEwLCAyMDExIEFwcGxlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KKyMgQ29weXJpZ2h0IChDKSAyMDEwLTIwMTYgQXBwbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgogIwogIyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh
bmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICMgbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0xODYsNyAr
MTg2LDcgQEAgbWVzc2FnZXMgLT4gV2ViUGFnZVByb3h5IHsKICAgICBDb21taXRQb3RlbnRpYWxU
YXBGYWlsZWQoKQogICAgIERpZE5vdEhhbmRsZVRhcEFzQ2xpY2soV2ViQ29yZTo6SW50UG9pbnQg
cG9pbnQpCiAgICAgRGlzYWJsZURvdWJsZVRhcEdlc3R1cmVzRHVyaW5nVGFwSWZOZWNlc3Nhcnko
dWludDY0X3QgcmVxdWVzdElEKQotICAgIERpZEZpbmlzaERyYXdpbmdQYWdlc1RvUERGKElQQzo6
RGF0YVJlZmVyZW5jZSBwZGZEYXRhKQorICAgIERyYXdUb1BERkNhbGxiYWNrKElQQzo6RGF0YVJl
ZmVyZW5jZSBwZGZEYXRhLCB1aW50NjRfdCBjYWxsYmFja0lEKQogI2VuZGlmCiAjaWYgRU5BQkxF
KERBVEFfREVURUNUSU9OKQogICAgIFNldERhdGFEZXRlY3Rpb25SZXN1bHQoc3RydWN0IFdlYktp
dDo6RGF0YURldGVjdGlvblJlc3VsdCBkYXRhRGV0ZWN0aW9uUmVzdWx0KQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL19XS1dlYlZpZXdQcmludEZvcm1hdHRlci5tbSBiL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9fV0tXZWJWaWV3UHJpbnRGb3JtYXR0ZXIubW0KaW5kZXgg
N2JiYzU4NzNhOWE0Zjc2YjI2ZjE3OTUyMGI5OWIwMDZkMTBjMzBiMy4uZGFhYjZjYWRkNDQ3ZDhh
YjM0YjQ1Njg0MWE0NTAyY2Y3NGVhZTExZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL19XS1dlYlZpZXdQcmludEZvcm1hdHRlci5tbQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvX1dLV2ViVmlld1ByaW50Rm9ybWF0dGVyLm1tCkBAIC0xLDUgKzEsNSBAQAogLyoK
LSAqIENvcHlyaWdodCAoQykgMjAxNCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisg
KiBDb3B5cmlnaHQgKEMpIDIwMTQtMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTI0LDgxICsyNCw2OSBAQAogICov
CiAKICNpbXBvcnQgImNvbmZpZy5oIgotI2ltcG9ydCAiX1dLV2ViVmlld1ByaW50Rm9ybWF0dGVy
LmgiCisjaW1wb3J0ICJfV0tXZWJWaWV3UHJpbnRGb3JtYXR0ZXJJbnRlcm5hbC5oIgogCiAjaWYg
UExBVEZPUk0oSU9TKQogCi0jaW1wb3J0ICJQcmludEluZm8uaCIKICNpbXBvcnQgIldLV2ViVmll
d0ludGVybmFsLmgiCisjaW1wb3J0ICJfV0tGcmFtZUhhbmRsZS5oIgogI2ltcG9ydCA8d3RmL1Jl
dGFpblB0ci5oPgogCi1AaW50ZXJmYWNlIFVJUHJpbnRGb3JtYXR0ZXIgKCkKLS0gKENHUmVjdClf
cGFnZUNvbnRlbnRSZWN0OihCT09MKWZpcnN0UGFnZTsKLS0gKHZvaWQpX3JlY2FsY0lmTmVjZXNz
YXJ5OwotQGVuZAotCi1AaW50ZXJmYWNlIF9XS1dlYlZpZXdQcmludEZvcm1hdHRlciAoKQotQHBy
b3BlcnR5IChub25hdG9taWMsIHJlYWRvbmx5KSBXS1dlYlZpZXcgKndlYlZpZXc7Ci1AZW5kCi0K
IEBpbXBsZW1lbnRhdGlvbiBfV0tXZWJWaWV3UHJpbnRGb3JtYXR0ZXIgewotICAgIGRvdWJsZSBf
dG90YWxTY2FsZUZhY3RvcjsKLSAgICBXZWJLaXQ6OlByaW50SW5mbyBfcHJpbnRJbmZvOworICAg
IFJldGFpblB0cjxfV0tGcmFtZUhhbmRsZT4gX2ZyYW1lVG9QcmludDsKKyAgICBSZXRhaW5QdHI8
Q0dQREZEb2N1bWVudFJlZj4gX3ByaW50ZWREb2N1bWVudDsKIH0KIAotLSAodm9pZClkZWFsbG9j
CistIChfV0tGcmFtZUhhbmRsZSAqKWZyYW1lVG9QcmludAogewotICAgIFtzZWxmLndlYlZpZXcg
X2VuZFByaW50aW5nXTsKLSAgICBbX2ZyYW1lVG9QcmludCByZWxlYXNlXTsKLSAgICBbc3VwZXIg
ZGVhbGxvY107CisgICAgcmV0dXJuIF9mcmFtZVRvUHJpbnQuZ2V0KCk7CiB9CiAKLS0gKFdLV2Vi
VmlldyAqKXdlYlZpZXcKKy0gKHZvaWQpc2V0RnJhbWVUb1ByaW50OihfV0tGcmFtZUhhbmRsZSAq
KWZyYW1lVG9QcmludAogewotICAgIEFTU0VSVChbc2VsZi52aWV3IGlzS2luZE9mQ2xhc3M6W1dL
V2ViVmlldyBjbGFzc11dKTsKLSAgICByZXR1cm4gc3RhdGljX2Nhc3Q8V0tXZWJWaWV3ICo+KHNl
bGYudmlldyk7CisgICAgX2ZyYW1lVG9QcmludCA9IGZyYW1lVG9QcmludDsKK30KKworLSAoV0tX
ZWJWaWV3ICopX3dlYlZpZXcKK3sKKyAgICBVSVZpZXcgKnZpZXcgPSBzZWxmLnZpZXc7CisgICAg
QVNTRVJUKFt2aWV3IGlzS2luZE9mQ2xhc3M6W1dLV2ViVmlldyBjbGFzc11dKTsKKyAgICByZXR1
cm4gc3RhdGljX2Nhc3Q8V0tXZWJWaWV3ICo+KHZpZXcpOwogfQogCiAtIChOU0ludGVnZXIpX3Jl
Y2FsY1BhZ2VDb3VudAogewotICAgIEFTU0VSVChbc2VsZiByZXNwb25kc1RvU2VsZWN0b3I6QHNl
bGVjdG9yKF9wYWdlQ29udGVudFJlY3Q6KV0pOwotCi0gICAgQ0dSZWN0IGZpcnN0UmVjdCA9IFtz
ZWxmIF9wYWdlQ29udGVudFJlY3Q6WUVTXTsKLSAgICBDR1JlY3QgbmV4dFJlY3QgPSBbc2VsZiBf
cGFnZUNvbnRlbnRSZWN0Ok5PXTsKLSAgICBpZiAoQ0dSZWN0SXNFbXB0eShmaXJzdFJlY3QpIHx8
IENHUmVjdElzRW1wdHkobmV4dFJlY3QpKQotICAgICAgICByZXR1cm4gMDsKLQotICAgIC8vIFRo
ZSBmaXJzdCBwYWdlIGNhbiBoYXZlIGEgc21hbGxlciBjb250ZW50IHJlY3QgdGhhbiBzdWJzZXF1
ZW50IHBhZ2VzIGlmIGEgdG9wIGNvbnRlbnQgaW5zZXQgaXMgc3BlY2lmaWVkLiBTaW5jZQotICAg
IC8vIFdlYktpdCByZXF1aXJlcyBhIHVuaWZvcm0gY29udGVudCByZWN0IGZvciBlYWNoIHBhZ2Ug
ZHVyaW5nIGxheW91dCwgdXNlIHRoZSBmaXJzdCBwYWdlIHJlY3QgZm9yIGFsbCBwYWdlcyBpZiBp
dCdzCi0gICAgLy8gc21hbGxlci4gVGhpcyBpcyB3aGF0IFVJV2ViVmlldydzIHByaW50IGZvcm1h
dHRlciBkb2VzLgotICAgIEFTU0VSVChmaXJzdFJlY3Quc2l6ZS53aWR0aCA9PSBuZXh0UmVjdC5z
aXplLndpZHRoKTsKLSAgICBBU1NFUlQoZmlyc3RSZWN0Lm9yaWdpbi55ID49IG5leHRSZWN0Lm9y
aWdpbi55KTsKLSAgICBfcHJpbnRJbmZvLnBhZ2VTZXR1cFNjYWxlRmFjdG9yID0gMTsKLSAgICBf
cHJpbnRJbmZvLmF2YWlsYWJsZVBhcGVyV2lkdGggPSBuZXh0UmVjdC5zaXplLndpZHRoOwotICAg
IF9wcmludEluZm8uYXZhaWxhYmxlUGFwZXJIZWlnaHQgPSBuZXh0UmVjdC5zaXplLmhlaWdodCAt
IChmaXJzdFJlY3Qub3JpZ2luLnkgLSBuZXh0UmVjdC5vcmlnaW4ueSk7Ci0KLSAgICByZXR1cm4g
W3NlbGYud2ViVmlldyBfY29tcHV0ZVBhZ2VDb3VudEFuZFN0YXJ0RHJhd2luZ1RvUERGRm9yRnJh
bWU6X2ZyYW1lVG9QcmludCBwcmludEluZm86X3ByaW50SW5mbyBmaXJzdFBhZ2U6c2VsZi5zdGFy
dFBhZ2UgY29tcHV0ZWRUb3RhbFNjYWxlRmFjdG9yOl90b3RhbFNjYWxlRmFjdG9yXTsKKyAgICBf
cHJpbnRlZERvY3VtZW50ID0gbnVsbHB0cjsKKyAgICBOU1VJbnRlZ2VyIHBhZ2VDb3VudCA9IFtz
ZWxmLl93ZWJWaWV3Ll9wcmludFByb3ZpZGVyIF93a19wYWdlQ291bnRGb3JQcmludEZvcm1hdHRl
cjpzZWxmXTsKKyAgICByZXR1cm4gc3RkOjptaW48TlNVSW50ZWdlcj4ocGFnZUNvdW50LCBOU0lu
dGVnZXJNYXgpOwogfQogCiAtIChDR1JlY3QpcmVjdEZvclBhZ2VBdEluZGV4OihOU0ludGVnZXIp
cGFnZUluZGV4CiB7Ci0gICAgQVNTRVJUKFtzZWxmIHJlc3BvbmRzVG9TZWxlY3RvcjpAc2VsZWN0
b3IoX3JlY2FsY0lmTmVjZXNzYXJ5KV0pOwotICAgIFtzZWxmIF9yZWNhbGNJZk5lY2Vzc2FyeV07
CiAgICAgcmV0dXJuIFtzZWxmIF9wYWdlQ29udGVudFJlY3Q6cGFnZUluZGV4ID09IHNlbGYuc3Rh
cnRQYWdlXTsKIH0KIAogLSAodm9pZClkcmF3SW5SZWN0OihDR1JlY3QpcmVjdCBmb3JQYWdlQXRJ
bmRleDooTlNJbnRlZ2VyKXBhZ2VJbmRleAogewotICAgIC8vIENHUERGRG9jdW1lbnRzIHVzZSAx
LWJhc2VkIHBhZ2UgaW5kZXhpbmcuCi0gICAgQ0dQREZQYWdlUmVmIHBkZlBhZ2UgPSBDR1BERkRv
Y3VtZW50R2V0UGFnZShzZWxmLndlYlZpZXcuX3ByaW50ZWREb2N1bWVudCwgcGFnZUluZGV4IC0g
c2VsZi5zdGFydFBhZ2UgKyAxKTsKKyAgICBpZiAoIV9wcmludGVkRG9jdW1lbnQpCisgICAgICAg
IF9wcmludGVkRG9jdW1lbnQgPSBzZWxmLl93ZWJWaWV3Ll9wcmludFByb3ZpZGVyLl93a19wcmlu
dGVkRG9jdW1lbnQ7CisKKyAgICBOU0ludGVnZXIgb2Zmc2V0RnJvbVN0YXJ0UGFnZSA9IHBhZ2VJ
bmRleCAtIHNlbGYuc3RhcnRQYWdlOworICAgIGlmIChvZmZzZXRGcm9tU3RhcnRQYWdlIDwgMCkK
KyAgICAgICAgcmV0dXJuOworCisgICAgQ0dQREZQYWdlUmVmIHBhZ2UgPSBDR1BERkRvY3VtZW50
R2V0UGFnZShfcHJpbnRlZERvY3VtZW50LmdldCgpLCBvZmZzZXRGcm9tU3RhcnRQYWdlICsgMSk7
CisgICAgaWYgKCFwYWdlKQorICAgICAgICByZXR1cm47CiAKICAgICBDR0NvbnRleHRSZWYgY29u
dGV4dCA9IFVJR3JhcGhpY3NHZXRDdXJyZW50Q29udGV4dCgpOwogICAgIENHQ29udGV4dFNhdmVH
U3RhdGUoY29udGV4dCk7CiAKLSAgICBDR0NvbnRleHRUcmFuc2xhdGVDVE0oY29udGV4dCwgcmVj
dC5vcmlnaW4ueCwgcmVjdC5vcmlnaW4ueSk7Ci0gICAgQ0dDb250ZXh0U2NhbGVDVE0oY29udGV4
dCwgX3RvdGFsU2NhbGVGYWN0b3IsIC1fdG90YWxTY2FsZUZhY3Rvcik7Ci0gICAgQ0dDb250ZXh0
VHJhbnNsYXRlQ1RNKGNvbnRleHQsIDAsIC1DR1BERlBhZ2VHZXRCb3hSZWN0KHBkZlBhZ2UsIGtD
R1BERk1lZGlhQm94KS5zaXplLmhlaWdodCk7Ci0gICAgQ0dDb250ZXh0RHJhd1BERlBhZ2UoY29u
dGV4dCwgcGRmUGFnZSk7CisgICAgQ0dDb250ZXh0VHJhbnNsYXRlQ1RNKGNvbnRleHQsIENHUmVj
dEdldE1pblgocmVjdCksIENHUmVjdEdldE1heFkocmVjdCkpOworICAgIENHQ29udGV4dFNjYWxl
Q1RNKGNvbnRleHQsIDEsIC0xKTsKKyAgICBDR0NvbnRleHRDb25jYXRDVE0oY29udGV4dCwgQ0dQ
REZQYWdlR2V0RHJhd2luZ1RyYW5zZm9ybShwYWdlLCBrQ0dQREZDcm9wQm94LCBDR1JlY3RNYWtl
KDAsIDAsIENHUmVjdEdldFdpZHRoKHJlY3QpLCBDR1JlY3RHZXRIZWlnaHQocmVjdCkpLCAwLCB0
cnVlKSk7CisgICAgQ0dDb250ZXh0Q2xpcFRvUmVjdChjb250ZXh0LCBDR1BERlBhZ2VHZXRCb3hS
ZWN0KHBhZ2UsIGtDR1BERkNyb3BCb3gpKTsKKyAgICBDR0NvbnRleHREcmF3UERGUGFnZShjb250
ZXh0LCBwYWdlKTsKIAogICAgIENHQ29udGV4dFJlc3RvcmVHU3RhdGUoY29udGV4dCk7CiB9CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvX1dLV2ViVmlld1ByaW50Rm9ybWF0
dGVySW50ZXJuYWwuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9fV0tXZWJWaWV3UHJpbnRG
b3JtYXR0ZXJJbnRlcm5hbC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjQ1MWEwZDUwNDc0NTI4NDhlODFlMmQ4YjRi
ODdkZjAwZDgyNjE4YWYKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvX1dLV2ViVmlld1ByaW50Rm9ybWF0dGVySW50ZXJuYWwuaApAQCAtMCwwICsxLDM5IEBACisv
KgorICogQ29weXJpZ2h0IChDKSAyMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
KyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlz
dHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCBy
ZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9j
dW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3Ry
aWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4g
QU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1Q
TElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJ
TVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBB
UlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQ
UExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNU
LCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VR
VUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1F
TlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRB
LCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNF
RCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNU
LCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhF
UldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZU
V0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1B
R0UuCisgKi8KKworI2ltcG9ydCAiX1dLV2ViVmlld1ByaW50Rm9ybWF0dGVyLmgiCisKKyNpZiBQ
TEFURk9STShJT1MpCisKK0BpbnRlcmZhY2UgVUlQcmludEZvcm1hdHRlciAoKQorLSAoQ0dSZWN0
KV9wYWdlQ29udGVudFJlY3Q6KEJPT0wpZmlyc3RQYWdlOworQGVuZAorCitAcHJvdG9jb2wgX1dL
V2ViVmlld1ByaW50UHJvdmlkZXIgPE5TT2JqZWN0PgorLSAoTlNVSW50ZWdlcilfd2tfcGFnZUNv
dW50Rm9yUHJpbnRGb3JtYXR0ZXI6KF9XS1dlYlZpZXdQcmludEZvcm1hdHRlciAqKXByaW50Rm9y
bWF0dGVyOworQHByb3BlcnR5IChub25hdG9taWMsIHJlYWRvbmx5KSBDR1BERkRvY3VtZW50UmVm
IF93a19wcmludGVkRG9jdW1lbnQ7CitAZW5kCisKKyNlbmRpZiAvLyBQTEFURk9STShJT1MpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvaW9zL1BhZ2VDbGllbnRJbXBsSU9T
LmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvaW9zL1BhZ2VDbGllbnRJbXBsSU9TLmgKaW5k
ZXggNjM3MGQzZDcwY2NhMWZjMmMyZTBhMjhjZGVmMjZiM2QyODRlNDk2Yi4uNjhjN2RlZmE0MzE1
ZTYxMWIzYjExMjE0NGU2YjdmZGJmNWUxODEwNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL2lvcy9QYWdlQ2xpZW50SW1wbElPUy5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9pb3MvUGFnZUNsaWVudEltcGxJT1MuaApAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBD
b3B5cmlnaHQgKEMpIDIwMTIsIDIwMTMgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgor
ICogQ29weXJpZ2h0IChDKSAyMDEyLTIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0xNTIsOCArMTUyLDYgQEAgcHJp
dmF0ZToKICAgICB2b2lkIG92ZXJmbG93U2Nyb2xsV2lsbFN0YXJ0U2Nyb2xsKCkgb3ZlcnJpZGU7
CiAgICAgdm9pZCBvdmVyZmxvd1Njcm9sbERpZEVuZFNjcm9sbCgpIG92ZXJyaWRlOwogCi0gICAg
dm9pZCBkaWRGaW5pc2hEcmF3aW5nUGFnZXNUb1BERihjb25zdCBJUEM6OkRhdGFSZWZlcmVuY2Um
KSBvdmVycmlkZTsKLQogICAgIC8vIEF1eGlsaWFyeSBDbGllbnQgQ3JlYXRpb24KICNpZiBFTkFC
TEUoRlVMTFNDUkVFTl9BUEkpCiAgICAgdmlydWFsIFdlYkZ1bGxTY3JlZW5NYW5hZ2VyUHJveHlD
bGllbnQmIGZ1bGxTY3JlZW5NYW5hZ2VyUHJveHlDbGllbnQoKSBvdmVycmlkZTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9pb3MvUGFnZUNsaWVudEltcGxJT1MubW0gYi9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvaW9zL1BhZ2VDbGllbnRJbXBsSU9TLm1tCmluZGV4IGQy
MjI3MTI2M2RiZTY1NmQwZTMxODkzZWIyOGUzZGU2OGU4MGFmMzguLjZlOGUxMGZlNjZiZDQ2MjQ1
YjdiYWU0NzRhMGE0NGEzZWY3YmQ2MjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9pb3MvUGFnZUNsaWVudEltcGxJT1MubW0KKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL2lvcy9QYWdlQ2xpZW50SW1wbElPUy5tbQpAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5
cmlnaHQgKEMpIDIwMTIsIDIwMTMgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICog
Q29weXJpZ2h0IChDKSAyMDEyLTIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgog
ICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC02NjMsMTMgKzY2Myw2IEBAIHZvaWQg
UGFnZUNsaWVudEltcGw6Om92ZXJmbG93U2Nyb2xsRGlkRW5kU2Nyb2xsKCkKICAgICBbbV9jb250
ZW50VmlldyBfb3ZlcmZsb3dTY3JvbGxpbmdEaWRFbmRdOwogfQogCi12b2lkIFBhZ2VDbGllbnRJ
bXBsOjpkaWRGaW5pc2hEcmF3aW5nUGFnZXNUb1BERihjb25zdCBJUEM6OkRhdGFSZWZlcmVuY2Um
IHBkZkRhdGEpCi17Ci0gICAgUmV0YWluUHRyPENGRGF0YVJlZj4gZGF0YSA9IGFkb3B0Q0YoQ0ZE
YXRhQ3JlYXRlKGtDRkFsbG9jYXRvckRlZmF1bHQsIHBkZkRhdGEuZGF0YSgpLCBwZGZEYXRhLnNp
emUoKSkpOwotICAgIFJldGFpblB0cjxDR0RhdGFQcm92aWRlclJlZj4gZGF0YVByb3ZpZGVyID0g
YWRvcHRDRihDR0RhdGFQcm92aWRlckNyZWF0ZVdpdGhDRkRhdGEoZGF0YS5nZXQoKSkpOwotICAg
IG1fd2ViVmlldy5fcHJpbnRlZERvY3VtZW50ID0gYWRvcHRDRihDR1BERkRvY3VtZW50Q3JlYXRl
V2l0aFByb3ZpZGVyKGRhdGFQcm92aWRlci5nZXQoKSkpLmdldCgpOwotfQotCiBWZWN0b3I8U3Ry
aW5nPiBQYWdlQ2xpZW50SW1wbDo6bWltZVR5cGVzV2l0aEN1c3RvbUNvbnRlbnRQcm92aWRlcnMo
KQogewogICAgIHJldHVybiBtX3dlYlZpZXcuX2NvbnRlbnRQcm92aWRlclJlZ2lzdHJ5Ll9taW1l
VHlwZXNXaXRoQ3VzdG9tQ29udGVudFByb3ZpZGVyczsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlldy5tbSBiL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9pb3MvV0tDb250ZW50Vmlldy5tbQppbmRleCBjMWFkMTFhNmExYmMzMzhhMzRiYWVmMmNj
OTY1ZGEzYmY2NmZkM2QzLi4xZjdmZDdlOGE4NTA0ZDNkNjU3ZTk2ODRkNzhjYTQ5ZDY4MzRjMjky
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXcu
bW0KKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3Lm1tCkBA
IC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMywgMjAxNCBBcHBsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTMtMjAxNiBBcHBsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMK
QEAgLTMyLDYgKzMyLDcgQEAKICNpbXBvcnQgIkFjY2Vzc2liaWxpdHlJT1MuaCIKICNpbXBvcnQg
IkFwcGxpY2F0aW9uU3RhdGVUcmFja2VyLmgiCiAjaW1wb3J0ICJQYWdlQ2xpZW50SW1wbElPUy5o
IgorI2ltcG9ydCAiUHJpbnRJbmZvLmgiCiAjaW1wb3J0ICJSZW1vdGVMYXllclRyZWVEcmF3aW5n
QXJlYVByb3h5LmgiCiAjaW1wb3J0ICJSZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvclByb3h5Lmgi
CiAjaW1wb3J0ICJTbWFydE1hZ25pZmljYXRpb25Db250cm9sbGVyLmgiCkBAIC00OCw2ICs0OSw4
IEBACiAjaW1wb3J0ICJXZWJQYWdlR3JvdXAuaCIKICNpbXBvcnQgIldlYlByb2Nlc3NQb29sLmgi
CiAjaW1wb3J0ICJXZWJTeXN0ZW1JbnRlcmZhY2UuaCIKKyNpbXBvcnQgIl9XS0ZyYW1lSGFuZGxl
SW50ZXJuYWwuaCIKKyNpbXBvcnQgIl9XS1dlYlZpZXdQcmludEZvcm1hdHRlckludGVybmFsLmgi
CiAjaW1wb3J0IDxDb3JlR3JhcGhpY3MvQ29yZUdyYXBoaWNzLmg+CiAjaW1wb3J0IDxXZWJDb3Jl
L0Zsb2F0UXVhZC5oPgogI2ltcG9ydCA8V2ViQ29yZS9GcmFtZVZpZXcuaD4KQEAgLTE4MSw2ICsx
ODQsOSBAQCBAaW1wbGVtZW50YXRpb24gV0tDb250ZW50VmlldyB7CiAgICAgUmV0YWluUHRyPE5T
VW5kb01hbmFnZXI+IF91bmRvTWFuYWdlcjsKIAogICAgIHN0ZDo6dW5pcXVlX3B0cjxBcHBsaWNh
dGlvblN0YXRlVHJhY2tlcj4gX2FwcGxpY2F0aW9uU3RhdGVUcmFja2VyOworCisgICAgQk9PTCBf
aXNQcmludGluZ1RvUERGOworICAgIFJldGFpblB0cjxDR1BERkRvY3VtZW50UmVmPiBfcHJpbnRl
ZERvY3VtZW50OwogfQogCiAtIChpbnN0YW5jZXR5cGUpX2NvbW1vbkluaXRpYWxpemF0aW9uV2l0
aFByb2Nlc3NQb29sOihXZWJLaXQ6OldlYlByb2Nlc3NQb29sJilwcm9jZXNzUG9vbCBjb25maWd1
cmF0aW9uOihSZWY8QVBJOjpQYWdlQ29uZmlndXJhdGlvbj4mJiljb25maWd1cmF0aW9uCkBAIC02
MTAsNCArNjE2LDY1IEBAIC0gKHZvaWQpX2FwcGxpY2F0aW9uRGlkQmVjb21lQWN0aXZlOihOU05v
dGlmaWNhdGlvbiopbm90aWZpY2F0aW9uCiAKIEBlbmQKIAorI3ByYWdtYSBtYXJrIFByaW50aW5n
CisKK0BpbnRlcmZhY2UgV0tDb250ZW50VmlldyAoX1dLV2ViVmlld1ByaW50Rm9ybWF0dGVyKSA8
X1dLV2ViVmlld1ByaW50UHJvdmlkZXI+CitAZW5kCisKK0BpbXBsZW1lbnRhdGlvbiBXS0NvbnRl
bnRWaWV3IChfV0tXZWJWaWV3UHJpbnRGb3JtYXR0ZXIpCisKKy0gKE5TVUludGVnZXIpX3drX3Bh
Z2VDb3VudEZvclByaW50Rm9ybWF0dGVyOihfV0tXZWJWaWV3UHJpbnRGb3JtYXR0ZXIgKilwcmlu
dEZvcm1hdHRlcgoreworICAgIGlmIChfaXNQcmludGluZ1RvUERGKQorICAgICAgICByZXR1cm4g
MDsKKworICAgIHVpbnQ2NF90IGZyYW1lSUQ7CisgICAgaWYgKF9XS0ZyYW1lSGFuZGxlICpoYW5k
bGUgPSBwcmludEZvcm1hdHRlci5mcmFtZVRvUHJpbnQpCisgICAgICAgIGZyYW1lSUQgPSBoYW5k
bGUuX2ZyYW1lSUQ7CisgICAgZWxzZSBpZiAoYXV0byBtYWluRnJhbWUgPSBfcGFnZS0+bWFpbkZy
YW1lKCkpCisgICAgICAgIGZyYW1lSUQgPSBtYWluRnJhbWUtPmZyYW1lSUQoKTsKKyAgICBlbHNl
CisgICAgICAgIHJldHVybiAwOworCisgICAgLy8gVGhlIGZpcnN0IHBhZ2UgY2FuIGhhdmUgYSBz
bWFsbGVyIGNvbnRlbnQgcmVjdCB0aGFuIHN1YnNlcXVlbnQgcGFnZXMgaWYgYSB0b3AgY29udGVu
dCBpbnNldAorICAgIC8vIGlzIHNwZWNpZmllZC4gU2luY2UgV2ViS2l0IHJlcXVpcmVzIGEgdW5p
Zm9ybSBjb250ZW50IHJlY3QgZm9yIGVhY2ggcGFnZSBkdXJpbmcgbGF5b3V0LCB1c2UKKyAgICAv
LyB0aGUgaW50ZXJzZWN0aW9uIG9mIHRoZSBmaXJzdCBhbmQgbm9uLWZpcnN0IHBhZ2UgcmVjdHMu
CisgICAgLy8gRklYTUU6IFRlYWNoIFdlYkNvcmU6OlByaW50Q29udGV4dCB0byBhY2NlcHQgYW4g
aW5pdGlhbCBjb250ZW50IG9mZnNldCB3aGVuIHBhZ2luYXRpbmcuCisgICAgQ0dSZWN0IHByaW50
aW5nUmVjdCA9IENHUmVjdEludGVyc2VjdGlvbihbcHJpbnRGb3JtYXR0ZXIgX3BhZ2VDb250ZW50
UmVjdDpZRVNdLCBbcHJpbnRGb3JtYXR0ZXIgX3BhZ2VDb250ZW50UmVjdDpOT10pOworICAgIGlm
IChDR1JlY3RJc0VtcHR5KHByaW50aW5nUmVjdCkpCisgICAgICAgIHJldHVybiAwOworCisgICAg
UHJpbnRJbmZvIHByaW50SW5mbzsKKyAgICBwcmludEluZm8ucGFnZVNldHVwU2NhbGVGYWN0b3Ig
PSAxOworICAgIHByaW50SW5mby5hdmFpbGFibGVQYXBlcldpZHRoID0gQ0dSZWN0R2V0V2lkdGgo
cHJpbnRpbmdSZWN0KTsKKyAgICBwcmludEluZm8uYXZhaWxhYmxlUGFwZXJIZWlnaHQgPSBDR1Jl
Y3RHZXRIZWlnaHQocHJpbnRpbmdSZWN0KTsKKworICAgIF9pc1ByaW50aW5nVG9QREYgPSBZRVM7
CisgICAgYXV0byByZXRhaW5lZFNlbGYgPSByZXRhaW5QdHIoc2VsZik7CisgICAgcmV0dXJuIF9w
YWdlLT5jb21wdXRlUGFnZXNGb3JQcmludGluZ0FuZERyYXdUb1BERihmcmFtZUlELCBwcmludElu
Zm8sIFtyZXRhaW5lZFNlbGZdKGNvbnN0IElQQzo6RGF0YVJlZmVyZW5jZSYgcGRmRGF0YSwgQ2Fs
bGJhY2tCYXNlOjpFcnJvciBlcnJvcikgeworICAgICAgICByZXRhaW5lZFNlbGYtPl9pc1ByaW50
aW5nVG9QREYgPSBOTzsKKyAgICAgICAgaWYgKGVycm9yICE9IENhbGxiYWNrQmFzZTo6RXJyb3I6
Ok5vbmUpCisgICAgICAgICAgICByZXR1cm47CisKKyAgICAgICAgYXV0byBkYXRhID0gYWRvcHRD
RihDRkRhdGFDcmVhdGUoa0NGQWxsb2NhdG9yRGVmYXVsdCwgcGRmRGF0YS5kYXRhKCksIHBkZkRh
dGEuc2l6ZSgpKSk7CisgICAgICAgIGF1dG8gZGF0YVByb3ZpZGVyID0gYWRvcHRDRihDR0RhdGFQ
cm92aWRlckNyZWF0ZVdpdGhDRkRhdGEoZGF0YS5nZXQoKSkpOworICAgICAgICByZXRhaW5lZFNl
bGYtPl9wcmludGVkRG9jdW1lbnQgPSBhZG9wdENGKENHUERGRG9jdW1lbnRDcmVhdGVXaXRoUHJv
dmlkZXIoZGF0YVByb3ZpZGVyLmdldCgpKSk7CisgICAgfSk7Cit9CisKKy0gKENHUERGRG9jdW1l
bnRSZWYpX3drX3ByaW50ZWREb2N1bWVudAoreworICAgIGlmIChfaXNQcmludGluZ1RvUERGKSB7
CisgICAgICAgIGlmICghX3BhZ2UtPnByb2Nlc3MoKS5jb25uZWN0aW9uKCktPndhaXRGb3JBbmRE
aXNwYXRjaEltbWVkaWF0ZWx5PE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OkRyYXdUb1BERkNhbGxi
YWNrPihfcGFnZS0+cGFnZUlEKCksIHN0ZDo6Y2hyb25vOjptaWxsaXNlY29uZHM6Om1heCgpKSkg
eworICAgICAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgICAgICAgICByZXR1cm4g
bnVsbHB0cjsKKyAgICAgICAgfQorICAgICAgICBBU1NFUlQoIV9pc1ByaW50aW5nVG9QREYpOwor
ICAgIH0KKworICAgIHJldHVybiBfcHJpbnRlZERvY3VtZW50LmF1dG9yZWxlYXNlKCk7Cit9CisK
K0BlbmQKKwogI2VuZGlmIC8vIFBMQVRGT1JNKElPUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9pb3MvV0tQREZWaWV3Lm1tIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L2lvcy9XS1BERlZpZXcubW0KaW5kZXggMjY4ODM2OGNiYWJhMDMwYjc3MGUwOTIxMmEzODgzZjI2
ZGNjNTM4My4uNzkzNzY0NjkzZmY1Mjg5NTg2MjAyMGY0NzliM2NlMTBjYzYzZTllNiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2lvcy9XS1BERlZpZXcubW0KKysrIGIvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL2lvcy9XS1BERlZpZXcubW0KQEAgLTEsNSArMSw1IEBACiAv
KgotICogQ29weXJpZ2h0IChDKSAyMDE0IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
KyAqIENvcHlyaWdodCAoQykgMjAxNC0yMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMzksNiArMzksNyBAQAogI2lt
cG9ydCAiV2Vha09iakNQdHIuaCIKICNpbXBvcnQgIldlYlBhZ2VQcm94eS5oIgogI2ltcG9ydCAi
X1dLRmluZERlbGVnYXRlLmgiCisjaW1wb3J0ICJfV0tXZWJWaWV3UHJpbnRGb3JtYXR0ZXJJbnRl
cm5hbC5oIgogI2ltcG9ydCA8TW9iaWxlQ29yZVNlcnZpY2VzL1VUQ29yZVR5cGVzLmg+CiAjaW1w
b3J0IDxXZWJDb3JlL0Zsb2F0UmVjdC5oPgogI2ltcG9ydCA8V2ViQ29yZS9Mb2NhbGl6ZWRTdHJp
bmdzLmg+CkBAIC04OTAsNCArODkxLDI2IEBAIC0gKHZvaWQpX2FwcGxpY2F0aW9uV2lsbEVudGVy
Rm9yZWdyb3VuZAogCiBAZW5kCiAKKyNwcmFnbWEgbWFyayBQcmludGluZworCitAaW50ZXJmYWNl
IFdLUERGVmlldyAoX1dLV2ViVmlld1ByaW50Rm9ybWF0dGVyKSA8X1dLV2ViVmlld1ByaW50UHJv
dmlkZXI+CitAZW5kCisKK0BpbXBsZW1lbnRhdGlvbiBXS1BERlZpZXcgKF9XS1dlYlZpZXdQcmlu
dEZvcm1hdHRlcikKKworLSAoTlNVSW50ZWdlcilfd2tfcGFnZUNvdW50Rm9yUHJpbnRGb3JtYXR0
ZXI6KF9XS1dlYlZpZXdQcmludEZvcm1hdHRlciAqKXByaW50Rm9ybWF0dGVyCit7CisgICAgQ0dQ
REZEb2N1bWVudFJlZiBkb2N1bWVudCA9IF9jZ1BERkRvY3VtZW50LmdldCgpOworICAgIGlmIChD
R1BERkRvY3VtZW50QWxsb3dzUHJpbnRpbmcoZG9jdW1lbnQpKQorICAgICAgICByZXR1cm4gQ0dQ
REZEb2N1bWVudEdldE51bWJlck9mUGFnZXMoZG9jdW1lbnQpOworICAgIHJldHVybiAwOworfQor
CistIChDR1BERkRvY3VtZW50UmVmKV93a19wcmludGVkRG9jdW1lbnQKK3sKKyAgICByZXR1cm4g
X2NnUERGRG9jdW1lbnQuZ2V0KCk7Cit9CisKK0BlbmQKKwogI2VuZGlmIC8qIFBMQVRGT1JNKElP
UykgKi8KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9pb3MvV2ViUGFnZVBy
b3h5SU9TLm1tIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2lvcy9XZWJQYWdlUHJveHlJT1Mu
bW0KaW5kZXggNTdlYmZlZjBhMGRhMzE3ZWQ4ZDEzNGU3MmMzYjhkNzRhMGMwNTMyNC4uMjE2ZWE3
NzQ1NDRlYzI1YjYxNTVlY2ZiMjVkMjQyMTk1ODVlNjU1MyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL2lvcy9XZWJQYWdlUHJveHlJT1MubW0KKysrIGIvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL2lvcy9XZWJQYWdlUHJveHlJT1MubW0KQEAgLTEsNSArMSw1IEBACiAvKgot
ICogQ29weXJpZ2h0IChDKSAyMDEyIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAq
IENvcHlyaWdodCAoQykgMjAxMi0yMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
ICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMzQsNiArMzQsNyBAQAogI2ltcG9y
dCAiSW50ZXJhY3Rpb25JbmZvcm1hdGlvbkF0UG9zaXRpb24uaCIKICNpbXBvcnQgIk5hdGl2ZVdl
YktleWJvYXJkRXZlbnQuaCIKICNpbXBvcnQgIlBhZ2VDbGllbnQuaCIKKyNpbXBvcnQgIlByaW50
SW5mby5oIgogI2ltcG9ydCAiUmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWFQcm94eS5oIgogI2lt
cG9ydCAiUmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWFQcm94eU1lc3NhZ2VzLmgiCiAjaW1wb3J0
ICJSZW1vdGVMYXllclRyZWVUcmFuc2FjdGlvbi5oIgpAQCAtOTYyLDkgKzk2MywyNSBAQCB2b2lk
IFdlYlBhZ2VQcm94eTo6ZGlzYWJsZURvdWJsZVRhcEdlc3R1cmVzRHVyaW5nVGFwSWZOZWNlc3Nh
cnkodWludDY0X3QgcmVxdWVzdAogICAgIG1fcGFnZUNsaWVudC5kaXNhYmxlRG91YmxlVGFwR2Vz
dHVyZXNEdXJpbmdUYXBJZk5lY2Vzc2FyeShyZXF1ZXN0SUQpOwogfQogCi12b2lkIFdlYlBhZ2VQ
cm94eTo6ZGlkRmluaXNoRHJhd2luZ1BhZ2VzVG9QREYoY29uc3QgSVBDOjpEYXRhUmVmZXJlbmNl
JiBwZGZEYXRhKQordWludDMyX3QgV2ViUGFnZVByb3h5Ojpjb21wdXRlUGFnZXNGb3JQcmludGlu
Z0FuZERyYXdUb1BERih1aW50NjRfdCBmcmFtZUlELCBjb25zdCBQcmludEluZm8mIHByaW50SW5m
bywgRHJhd1RvUERGQ2FsbGJhY2s6OkNhbGxiYWNrRnVuY3Rpb24mJiBjYWxsYmFjaykKIHsKLSAg
ICBtX3BhZ2VDbGllbnQuZGlkRmluaXNoRHJhd2luZ1BhZ2VzVG9QREYocGRmRGF0YSk7CisgICAg
aWYgKCFpc1ZhbGlkKCkpIHsKKyAgICAgICAgY2FsbGJhY2soSVBDOjpEYXRhUmVmZXJlbmNlKCks
IENhbGxiYWNrQmFzZTo6RXJyb3I6Ok93bmVyV2FzSW52YWxpZGF0ZWQpOworICAgICAgICByZXR1
cm4gMDsKKyAgICB9CisKKyAgICB1aW50MzJfdCBwYWdlQ291bnQgPSAwOworICAgIHVpbnQ2NF90
IGNhbGxiYWNrSUQgPSBtX2NhbGxiYWNrcy5wdXQoV1RGTW92ZShjYWxsYmFjayksIG1fcHJvY2Vz
cy0+dGhyb3R0bGVyKCkuYmFja2dyb3VuZEFjdGl2aXR5VG9rZW4oKSk7CisgICAgdXNpbmcgTWVz
c2FnZSA9IE1lc3NhZ2VzOjpXZWJQYWdlOjpDb21wdXRlUGFnZXNGb3JQcmludGluZ0FuZERyYXdU
b1BERjsKKyAgICBwcm9jZXNzKCkuc2VuZFN5bmMoTWVzc2FnZShmcmFtZUlELCBwcmludEluZm8s
IGNhbGxiYWNrSUQpLCBNZXNzYWdlOjpSZXBseShwYWdlQ291bnQpLCBtX3BhZ2VJRCk7CisgICAg
cmV0dXJuIHBhZ2VDb3VudDsKK30KKwordm9pZCBXZWJQYWdlUHJveHk6OmRyYXdUb1BERkNhbGxi
YWNrKGNvbnN0IElQQzo6RGF0YVJlZmVyZW5jZSYgcGRmRGF0YSwgdWludDY0X3QgY2FsbGJhY2tJ
RCkKK3sKKyAgICBhdXRvIGNhbGxiYWNrID0gbV9jYWxsYmFja3MudGFrZTxEcmF3VG9QREZDYWxs
YmFjaz4oY2FsbGJhY2tJRCk7CisgICAgUkVMRUFTRV9BU1NFUlQoY2FsbGJhY2spOworICAgIGNh
bGxiYWNrLT5wZXJmb3JtQ2FsbGJhY2tXaXRoUmV0dXJuVmFsdWUocGRmRGF0YSk7CiB9CiAKIHZv
aWQgV2ViUGFnZVByb3h5Ojpjb250ZW50U2l6ZUNhdGVnb3J5RGlkQ2hhbmdlKGNvbnN0IFN0cmlu
ZyYgY29udGVudFNpemVDYXRlZ29yeSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYktp
dDIueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJLaXQyL1dlYktpdDIueGNv
ZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCAyOWU4N2MyZTUzYWRiMzhlYzlmMDM0YTgwM2Q0
NWFmNjhkOWNiYzAzLi45M2ZkYjdkNGI4OTkwNWU3ZDk1YWY4NGZiNmRlOThhNDdjOGRmYTQwIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJLaXQyLnhjb2RlcHJvai9wcm9qZWN0LnBieHBy
b2oKKysrIGIvU291cmNlL1dlYktpdDIvV2ViS2l0Mi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9q
CkBAIC0xMjYxLDYgKzEyNjEsNyBAQAogCQlBMTE4QTlGMzE5MDhCOEVBMDBGN0M5MkIgLyogX1dL
TlNGaWxlTWFuYWdlckV4dHJhcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gQTExOEE5RjExOTA4QjhFQTAwRjdDOTJCIC8qIF9XS05TRmlsZU1hbmFnZXJF
eHRyYXMuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9Owog
CQlBMTgyRDVCNDFCRTZCRDI1MDA4N0E3Q0MgLyogQWNjZXNzaWJpbGl0eUlPUy5tbSBpbiBTb3Vy
Y2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEExODJENUIyMUJFNkJEMjUw
MDg3QTdDQyAvKiBBY2Nlc3NpYmlsaXR5SU9TLm1tICovOyB9OwogCQlBMTgyRDVCNTFCRTZCRDI1
MDA4N0E3Q0MgLyogQWNjZXNzaWJpbGl0eUlPUy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gQTE4MkQ1QjMxQkU2QkQyNTAwODdBN0NDIC8qIEFjY2Vzc2li
aWxpdHlJT1MuaCAqLzsgfTsKKwkJQTE5REQzQzAxRDA3RDE2ODAwQUM4MjNCIC8qIF9XS1dlYlZp
ZXdQcmludEZvcm1hdHRlckludGVybmFsLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSBBMTlERDNCRjFEMDdEMTY4MDBBQzgyM0IgLyogX1dLV2ViVmlld1By
aW50Rm9ybWF0dGVySW50ZXJuYWwuaCAqLzsgfTsKIAkJQTFBNEZFNUExOERDRTlGQTAwQjVFQThB
IC8qIF9XS0Rvd25sb2FkLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSBBMUE0RkU1NzE4RENFOUZBMDBCNUVBOEEgLyogX1dLRG93bmxvYWQuaCAqLzsgc2V0
dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlBMUE0RkU1QjE4RENF
OUZBMDBCNUVBOEEgLyogX1dLRG93bmxvYWQubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSBBMUE0RkU1ODE4RENFOUZBMDBCNUVBOEEgLyogX1dLRG93bmxv
YWQubW0gKi87IH07CiAJCUExQTRGRTVDMThEQ0U5RkEwMEI1RUE4QSAvKiBfV0tEb3dubG9hZElu
dGVybmFsLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBB
MUE0RkU1OTE4RENFOUZBMDBCNUVBOEEgLyogX1dLRG93bmxvYWRJbnRlcm5hbC5oICovOyB9OwpA
QCAtMzMxMiw2ICszMzEzLDcgQEAKIAkJQTExOEE5RjExOTA4QjhFQTAwRjdDOTJCIC8qIF9XS05T
RmlsZU1hbmFnZXJFeHRyYXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gX1dL
TlNGaWxlTWFuYWdlckV4dHJhcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlBMTgy
RDVCMjFCRTZCRDI1MDA4N0E3Q0MgLyogQWNjZXNzaWJpbGl0eUlPUy5tbSAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IEFjY2Vzc2liaWxpdHlJT1MubW07IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCUExODJENUIzMUJFNkJEMjUwMDg3QTdDQyAvKiBBY2Nlc3Np
YmlsaXR5SU9TLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEFjY2Vzc2liaWxp
dHlJT1MuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQTE5REQzQkYxRDA3RDE2ODAw
QUM4MjNCIC8qIF9XS1dlYlZpZXdQcmludEZvcm1hdHRlckludGVybmFsLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IF9XS1dlYlZpZXdQcmludEZvcm1hdHRlckludGVybmFsLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUExQTRGRTU3MThEQ0U5RkEwMEI1RUE4QSAv
KiBfV0tEb3dubG9hZC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBfV0tEb3du
bG9hZC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlBMUE0RkU1ODE4RENFOUZBMDBC
NUVBOEEgLyogX1dLRG93bmxvYWQubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7
IHBhdGggPSBfV0tEb3dubG9hZC5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQTFB
NEZFNTkxOERDRTlGQTAwQjVFQThBIC8qIF9XS0Rvd25sb2FkSW50ZXJuYWwuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gX1dLRG93bmxvYWRJbnRlcm5hbC5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwpAQCAtNDg2NCw2ICs0ODY2LDcgQEAKIAkJCWNoaWxkcmVuID0gKAog
CQkJCUM1NDI1NkFFMThCRUMxNjEwMERFNDE3OSAvKiBmb3JtcyAqLywKIAkJCQlBMTE1REM2RTE5
MUQ4MkFCMDBEQTgwNzIgLyogX1dLV2ViVmlld1ByaW50Rm9ybWF0dGVyLmggKi8sCisJCQkJQTE5
REQzQkYxRDA3RDE2ODAwQUM4MjNCIC8qIF9XS1dlYlZpZXdQcmludEZvcm1hdHRlckludGVybmFs
LmggKi8sCiAJCQkJQTExNURDNkQxOTFEODJBQjAwREE4MDcyIC8qIF9XS1dlYlZpZXdQcmludEZv
cm1hdHRlci5tbSAqLywKIAkJCQkxQUQ0QzE5MTFCMzlGMzMyMDBBQkMyOEUgLyogQXBwbGljYXRp
b25TdGF0ZVRyYWNrZXIuaCAqLywKIAkJCQkxQUQ0QzE5MDFCMzlGMzMyMDBBQkMyOEUgLyogQXBw
bGljYXRpb25TdGF0ZVRyYWNrZXIubW0gKi8sCkBAIC04MDY4LDYgKzgwNzEsNyBAQAogCQkJCTM3
OTQ4NDA5MTUwQzRCOTcwMEU1MkNFOSAvKiBXS1JlbmRlckxheWVyLmggaW4gSGVhZGVycyAqLywK
IAkJCQkzNzYwODgyMzE1MDQxNEY3MDBGQzgyQzcgLyogV0tSZW5kZXJPYmplY3QuaCBpbiBIZWFk
ZXJzICovLAogCQkJCTMzMzY3NjNCMTMwQzk5REMwMDZDOURFMiAvKiBXS1Jlc291cmNlQ2FjaGVN
YW5hZ2VyLmggaW4gSGVhZGVycyAqLywKKwkJCQlBMTlERDNDMDFEMDdEMTY4MDBBQzgyM0IgLyog
X1dLV2ViVmlld1ByaW50Rm9ybWF0dGVySW50ZXJuYWwuaCBpbiBIZWFkZXJzICovLAogCQkJCUJD
OEE1MDE1MTE3NjVGNTYwMDc1NzU3MyAvKiBXS1JldGFpblB0ci5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJMUE3RTM3NzkxOEU0QTRGRTAwM0QwRkZGIC8qIFdLU2NyaXB0TWVzc2FnZS5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJMUE3RTM3NzUxOEU0QTMzQTAwM0QwRkZGIC8qIFdLU2NyaXB0TWVzc2FnZUhh
bmRsZXIuaCBpbiBIZWFkZXJzICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJv
Y2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFn
ZS9XZWJQYWdlLmgKaW5kZXggNmI5ZWQ5NzNhNWZiOGRlZTU1NzRhZWY5Y2Y0NjkyZDI0MzczNTJj
NS4uYjFkYWExMjA2NjM3ZjY4ZmRjZWExNzRkZWZlYTk2OTA0YTk2NmQ3YiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaAorKysgYi9Tb3VyY2Uv
V2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oCkBAIC0xLDUgKzEsNSBAQAogLyoK
LSAqIENvcHlyaWdodCAoQykgMjAxMCwgMjAxMSwgMjAxMyBBcHBsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAtMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTc0Myw3ICs3
NDMsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBkcmF3UGFnZXNUb1BERih1aW50NjRfdCBmcmFtZUlE
LCBjb25zdCBQcmludEluZm8mLCB1aW50MzJfdCBmaXJzdCwgdWludDMyX3QgY291bnQsIHVpbnQ2
NF90IGNhbGxiYWNrSUQpOwogICAgIHZvaWQgZHJhd1BhZ2VzVG9QREZJbXBsKHVpbnQ2NF90IGZy
YW1lSUQsIGNvbnN0IFByaW50SW5mbyYsIHVpbnQzMl90IGZpcnN0LCB1aW50MzJfdCBjb3VudCwg
UmV0YWluUHRyPENGTXV0YWJsZURhdGFSZWY+JiBwZGZQYWdlRGF0YSk7CiAjaWYgUExBVEZPUk0o
SU9TKQotICAgIHZvaWQgY29tcHV0ZVBhZ2VzRm9yUHJpbnRpbmdBbmRTdGFydERyYXdpbmdUb1BE
Rih1aW50NjRfdCBmcmFtZUlELCBjb25zdCBQcmludEluZm8mLCB1aW50MzJfdCBmaXJzdFBhZ2Us
IFBhc3NSZWZQdHI8TWVzc2FnZXM6OldlYlBhZ2U6OkNvbXB1dGVQYWdlc0ZvclByaW50aW5nQW5k
U3RhcnREcmF3aW5nVG9QREY6OkRlbGF5ZWRSZXBseT4pOworICAgIHZvaWQgY29tcHV0ZVBhZ2Vz
Rm9yUHJpbnRpbmdBbmREcmF3VG9QREYodWludDY0X3QgZnJhbWVJRCwgY29uc3QgUHJpbnRJbmZv
JiwgdWludDY0X3QgY2FsbGJhY2tJRCwgUGFzc1JlZlB0cjxNZXNzYWdlczo6V2ViUGFnZTo6Q29t
cHV0ZVBhZ2VzRm9yUHJpbnRpbmdBbmREcmF3VG9QREY6OkRlbGF5ZWRSZXBseT4pOwogI2VuZGlm
CiAjZWxpZiBQTEFURk9STShHVEspCiAgICAgdm9pZCBkcmF3UGFnZXNGb3JQcmludGluZyh1aW50
NjRfdCBmcmFtZUlELCBjb25zdCBQcmludEluZm8mLCB1aW50NjRfdCBjYWxsYmFja0lEKTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLm1lc3Nh
Z2VzLmluIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UubWVzc2Fn
ZXMuaW4KaW5kZXggNzVlMDQzNzQ3ZjY0MmRhZTU4NjlhYTM5YTE4NDg4Yjc1MDJiZDVhNy4uMDEx
N2E3MTAzNzlhZWUyNmRlN2Q2MTE2MTYwZDc0MTQ1NTM4MDRmNyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UubWVzc2FnZXMuaW4KKysrIGIvU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UubWVzc2FnZXMuaW4KQEAgLTEs
NCArMSw0IEBACi0jIENvcHlyaWdodCAoQykgMjAxMCwgMjAxMSBBcHBsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCisjIENvcHlyaWdodCAoQykgMjAxMC0yMDE2IEFwcGxlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KICMKICMgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAjIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMzAxLDcgKzMw
MSw3IEBAIG1lc3NhZ2VzIC0+IFdlYlBhZ2UgTGVnYWN5UmVjZWl2ZXIgewogICAgIERyYXdSZWN0
VG9JbWFnZSh1aW50NjRfdCBmcmFtZUlELCBzdHJ1Y3QgV2ViS2l0OjpQcmludEluZm8gcHJpbnRJ
bmZvLCBXZWJDb3JlOjpJbnRSZWN0IHJlY3QsIFdlYkNvcmU6OkludFNpemUgaW1hZ2VTaXplLCB1
aW50NjRfdCBjYWxsYmFja0lEKQogICAgIERyYXdQYWdlc1RvUERGKHVpbnQ2NF90IGZyYW1lSUQs
IHN0cnVjdCBXZWJLaXQ6OlByaW50SW5mbyBwcmludEluZm8sIHVpbnQzMl90IGZpcnN0LCB1aW50
MzJfdCBjb3VudCwgdWludDY0X3QgY2FsbGJhY2tJRCkKICNpZiBQTEFURk9STShJT1MpCi0gICAg
Q29tcHV0ZVBhZ2VzRm9yUHJpbnRpbmdBbmRTdGFydERyYXdpbmdUb1BERih1aW50NjRfdCBmcmFt
ZUlELCBzdHJ1Y3QgV2ViS2l0OjpQcmludEluZm8gcHJpbnRJbmZvLCB1aW50MzJfdCBmaXJzdFBh
Z2UpIC0+IChWZWN0b3I8V2ViQ29yZTo6SW50UmVjdD4gcGFnZVJlY3RzLCBkb3VibGUgdG90YWxT
Y2FsZUZhY3RvcikgRGVsYXllZAorICAgIENvbXB1dGVQYWdlc0ZvclByaW50aW5nQW5kRHJhd1Rv
UERGKHVpbnQ2NF90IGZyYW1lSUQsIHN0cnVjdCBXZWJLaXQ6OlByaW50SW5mbyBwcmludEluZm8s
IHVpbnQ2NF90IGNhbGxiYWNrSUQpIC0+ICh1aW50MzJfdCBwYWdlQ291bnQpIERlbGF5ZWQKICNl
bmRpZgogI2VuZGlmCiAjaWYgUExBVEZPUk0oR1RLKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dDIvV2ViUHJvY2Vzcy9XZWJQYWdlL2lvcy9XZWJQYWdlSU9TLm1tIGIvU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9XZWJQYWdlL2lvcy9XZWJQYWdlSU9TLm1tCmluZGV4IDc2Yjg2MzJiMzAyNDk0
YjI3NWI0Y2JmNzFkZjRhMDNkOGZlMjA0ODQuLmJiY2FiMTVhZDAyMDVjOTI1YzNjMDJkNzlmZmVk
MzQ2YTQ5NDJkODggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFn
ZS9pb3MvV2ViUGFnZUlPUy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBh
Z2UvaW9zL1dlYlBhZ2VJT1MubW0KQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChD
KSAyMDEyLTIwMTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0
IChDKSAyMDEyLTIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0zMTI4LDE3ICszMTI4LDIxIEBAIHZvaWQgV2ViUGFn
ZTo6ZGlzcGF0Y2hBc3luY2hyb25vdXNUb3VjaEV2ZW50cyhjb25zdCBWZWN0b3I8V2ViVG91Y2hF
dmVudCwgMT4mIHF1CiB9CiAjZW5kaWYKIAotdm9pZCBXZWJQYWdlOjpjb21wdXRlUGFnZXNGb3JQ
cmludGluZ0FuZFN0YXJ0RHJhd2luZ1RvUERGKHVpbnQ2NF90IGZyYW1lSUQsIGNvbnN0IFByaW50
SW5mbyYgcHJpbnRJbmZvLCB1aW50MzJfdCBmaXJzdFBhZ2UsIFBhc3NSZWZQdHI8TWVzc2FnZXM6
OldlYlBhZ2U6OkNvbXB1dGVQYWdlc0ZvclByaW50aW5nQW5kU3RhcnREcmF3aW5nVG9QREY6OkRl
bGF5ZWRSZXBseT4gcmVwbHkpCit2b2lkIFdlYlBhZ2U6OmNvbXB1dGVQYWdlc0ZvclByaW50aW5n
QW5kRHJhd1RvUERGKHVpbnQ2NF90IGZyYW1lSUQsIGNvbnN0IFByaW50SW5mbyYgcHJpbnRJbmZv
LCB1aW50NjRfdCBjYWxsYmFja0lELCBQYXNzUmVmUHRyPE1lc3NhZ2VzOjpXZWJQYWdlOjpDb21w
dXRlUGFnZXNGb3JQcmludGluZ0FuZERyYXdUb1BERjo6RGVsYXllZFJlcGx5PiByZXBseSkKIHsK
ICAgICBWZWN0b3I8V2ViQ29yZTo6SW50UmVjdD4gcGFnZVJlY3RzOwotICAgIGRvdWJsZSB0b3Rh
bFNjYWxlRmFjdG9yID0gMTsKKyAgICBkb3VibGUgdG90YWxTY2FsZUZhY3RvcjsKICAgICBjb21w
dXRlUGFnZXNGb3JQcmludGluZ0ltcGwoZnJhbWVJRCwgcHJpbnRJbmZvLCBwYWdlUmVjdHMsIHRv
dGFsU2NhbGVGYWN0b3IpOworCiAgICAgc3RkOjpzaXplX3QgcGFnZUNvdW50ID0gcGFnZVJlY3Rz
LnNpemUoKTsKLSAgICByZXBseS0+c2VuZChXVEZNb3ZlKHBhZ2VSZWN0cyksIHRvdGFsU2NhbGVG
YWN0b3IpOworICAgIEFTU0VSVChwYWdlQ291bnQgPD0gc3RkOjpudW1lcmljX2xpbWl0czx1aW50
MzJfdD46Om1heCgpKTsKKyAgICByZXBseS0+c2VuZChwYWdlQ291bnQpOwogCiAgICAgUmV0YWlu
UHRyPENGTXV0YWJsZURhdGFSZWY+IHBkZlBhZ2VEYXRhOwotICAgIGRyYXdQYWdlc1RvUERGSW1w
bChmcmFtZUlELCBwcmludEluZm8sIGZpcnN0UGFnZSwgcGFnZUNvdW50IC0gZmlyc3RQYWdlLCBw
ZGZQYWdlRGF0YSk7Ci0gICAgc2VuZChNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpEaWRGaW5pc2hE
cmF3aW5nUGFnZXNUb1BERihJUEM6OkRhdGFSZWZlcmVuY2UoQ0ZEYXRhR2V0Qnl0ZVB0cihwZGZQ
YWdlRGF0YS5nZXQoKSksIENGRGF0YUdldExlbmd0aChwZGZQYWdlRGF0YS5nZXQoKSkpKSk7Cisg
ICAgZHJhd1BhZ2VzVG9QREZJbXBsKGZyYW1lSUQsIHByaW50SW5mbywgMCwgcGFnZUNvdW50LCBw
ZGZQYWdlRGF0YSk7CisgICAgc2VuZChNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpEcmF3VG9QREZD
YWxsYmFjayhJUEM6OkRhdGFSZWZlcmVuY2UoQ0ZEYXRhR2V0Qnl0ZVB0cihwZGZQYWdlRGF0YS5n
ZXQoKSksIENGRGF0YUdldExlbmd0aChwZGZQYWdlRGF0YS5nZXQoKSkpLCBjYWxsYmFja0lEKSk7
CisKKyAgICBlbmRQcmludGluZygpOwogfQogCiB2b2lkIFdlYlBhZ2U6OmNvbnRlbnRTaXplQ2F0
ZWdvcnlEaWRDaGFuZ2UoY29uc3QgU3RyaW5nJiBjb250ZW50U2l6ZUNhdGVnb3J5KQo=
</data>

          </attachment>
      

    </bug>

</bugzilla>