<?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>51947</bug_id>
          
          <creation_ts>2011-01-05 13:11:14 -0800</creation_ts>
          <short_desc>Define GC3D types to match GL types and use them in WebGraphicsContext3D</short_desc>
          <delta_ts>2011-01-27 17:29:38 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebGL</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>PC</rep_platform>
          <op_sys>OS X 10.5</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>45557</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Zhenyao Mo">zmo</reporter>
          <assigned_to name="Zhenyao Mo">zmo</assigned_to>
          <cc>dglazkov</cc>
    
    <cc>enne</cc>
    
    <cc>evan</cc>
    
    <cc>kbr</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>329741</commentid>
    <comment_count>0</comment_count>
    <who name="Zhenyao Mo">zmo</who>
    <bug_when>2011-01-05 13:11:14 -0800</bug_when>
    <thetext>We need to re-define GC3D types again in WebGraphicsContext3D, same as in GraphicsContext3D.

Landing this will take some extra effort because it needs to be synced in webkit and chromium.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>329899</commentid>
    <comment_count>1</comment_count>
    <who name="Zhenyao Mo">zmo</who>
    <bug_when>2011-01-05 17:10:35 -0800</bug_when>
    <thetext>*** Bug 51964 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>339276</commentid>
    <comment_count>2</comment_count>
    <who name="Zhenyao Mo">zmo</who>
    <bug_when>2011-01-24 14:32:07 -0800</bug_when>
    <thetext>Also, remove sizeInBytes().</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>340075</commentid>
    <comment_count>3</comment_count>
      <attachid>80157</attachid>
    <who name="Zhenyao Mo">zmo</who>
    <bug_when>2011-01-25 18:16:47 -0800</bug_when>
    <thetext>Created attachment 80157
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>340076</commentid>
    <comment_count>4</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-01-25 18:18:34 -0800</bug_when>
    <thetext>Attachment 80157 did not pass style-queue:

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

Source/WebKit/chromium/public/WebGraphicsContext3D.h:149:  The parameter name &quot;size&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
Source/WebKit/chromium/public/WebGraphicsContext3D.h:177:  The parameter name &quot;size&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
Source/WebKit/chromium/public/WebGraphicsContext3D.h:178:  The parameter name &quot;size&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
Source/WebKit/chromium/public/WebGraphicsContext3D.h:287:  The parameter name &quot;w&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
Source/WebKit/chromium/public/WebGraphicsContext3D.h:289:  The parameter name &quot;w&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
Source/WebKit/chromium/public/WebGraphicsContext3D.h:304:  The parameter name &quot;w&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
Total errors found: 6 in 2 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>340509</commentid>
    <comment_count>5</comment_count>
      <attachid>80157</attachid>
    <who name="Kenneth Russell">kbr</who>
    <bug_when>2011-01-26 15:15:35 -0800</bug_when>
    <thetext>Comment on attachment 80157
Patch

Could you merge this with https://bugs.webkit.org/show_bug.cgi?id=53154 which just landed?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>340556</commentid>
    <comment_count>6</comment_count>
      <attachid>80258</attachid>
    <who name="Zhenyao Mo">zmo</who>
    <bug_when>2011-01-26 16:19:10 -0800</bug_when>
    <thetext>Created attachment 80258
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>340559</commentid>
    <comment_count>7</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-01-26 16:21:48 -0800</bug_when>
    <thetext>Attachment 80258 did not pass style-queue:

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

Source/WebKit/chromium/public/WebGraphicsContext3D.h:147:  The parameter name &quot;size&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
Source/WebKit/chromium/public/WebGraphicsContext3D.h:179:  The parameter name &quot;size&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
Source/WebKit/chromium/public/WebGraphicsContext3D.h:180:  The parameter name &quot;size&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
Source/WebKit/chromium/public/WebGraphicsContext3D.h:289:  The parameter name &quot;w&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
Source/WebKit/chromium/public/WebGraphicsContext3D.h:291:  The parameter name &quot;w&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
Source/WebKit/chromium/public/WebGraphicsContext3D.h:306:  The parameter name &quot;w&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
Total errors found: 6 in 2 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>340564</commentid>
    <comment_count>8</comment_count>
      <attachid>80259</attachid>
    <who name="Zhenyao Mo">zmo</who>
    <bug_when>2011-01-26 16:25:09 -0800</bug_when>
    <thetext>Created attachment 80259
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>340566</commentid>
    <comment_count>9</comment_count>
    <who name="Zhenyao Mo">zmo</who>
    <bug_when>2011-01-26 16:25:55 -0800</bug_when>
    <thetext>I&apos;ll compile one more time before landing to make sure it works fine.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>340567</commentid>
    <comment_count>10</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-01-26 16:26:36 -0800</bug_when>
    <thetext>Attachment 80259 did not pass style-queue:

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

Source/WebKit/chromium/public/WebGraphicsContext3D.h:149:  The parameter name &quot;size&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
Source/WebKit/chromium/public/WebGraphicsContext3D.h:181:  The parameter name &quot;size&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
Source/WebKit/chromium/public/WebGraphicsContext3D.h:182:  The parameter name &quot;size&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
Source/WebKit/chromium/public/WebGraphicsContext3D.h:291:  The parameter name &quot;w&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
Source/WebKit/chromium/public/WebGraphicsContext3D.h:293:  The parameter name &quot;w&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
Source/WebKit/chromium/public/WebGraphicsContext3D.h:308:  The parameter name &quot;w&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
Total errors found: 6 in 2 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>340570</commentid>
    <comment_count>11</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-01-26 16:32:08 -0800</bug_when>
    <thetext>Attachment 80258 did not build on chromium:
Build output: http://queues.webkit.org/results/7525361</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>340573</commentid>
    <comment_count>12</comment_count>
      <attachid>80259</attachid>
    <who name="Kenneth Russell">kbr</who>
    <bug_when>2011-01-26 16:35:06 -0800</bug_when>
    <thetext>Comment on attachment 80259
Patch

r=me. Please let this pass through the EWS bots before landing it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>340950</commentid>
    <comment_count>13</comment_count>
      <attachid>80350</attachid>
    <who name="Zhenyao Mo">zmo</who>
    <bug_when>2011-01-27 11:06:27 -0800</bug_when>
    <thetext>Created attachment 80350
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>340956</commentid>
    <comment_count>14</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-01-27 11:08:18 -0800</bug_when>
    <thetext>Attachment 80350 did not pass style-queue:

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

Source/WebKit/chromium/public/WebGraphicsContext3D.h:149:  The parameter name &quot;size&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
Source/WebKit/chromium/public/WebGraphicsContext3D.h:181:  The parameter name &quot;size&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
Source/WebKit/chromium/public/WebGraphicsContext3D.h:182:  The parameter name &quot;size&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
Source/WebKit/chromium/public/WebGraphicsContext3D.h:291:  The parameter name &quot;w&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
Source/WebKit/chromium/public/WebGraphicsContext3D.h:293:  The parameter name &quot;w&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
Source/WebKit/chromium/public/WebGraphicsContext3D.h:308:  The parameter name &quot;w&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
Total errors found: 6 in 2 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>340957</commentid>
    <comment_count>15</comment_count>
    <who name="Zhenyao Mo">zmo</who>
    <bug_when>2011-01-27 11:09:11 -0800</bug_when>
    <thetext>Just realized that because I duplicated the code in chromium side, I don&apos;t need to have two copies of the code here:  I only need to define USE_WGC3D_TYPES (so the chromium side could switch to use WGC3D types) and directly change the types in each function.

This patch only removes the duplicated copy that uses the generic types (as comparing with the previous r+&apos;d patch).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>340960</commentid>
    <comment_count>16</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-01-27 11:12:02 -0800</bug_when>
    <thetext>Attachment 80350 did not build on chromium:
Build output: http://queues.webkit.org/results/7550365</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>340964</commentid>
    <comment_count>17</comment_count>
    <who name="Zhenyao Mo">zmo</who>
    <bug_when>2011-01-27 11:14:47 -0800</bug_when>
    <thetext>Please ignore the chromium bots build failure: it hasn&apos;t picked up my chromium side CL yet.

Will only land this patch when chromium rev is rolled over.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>340986</commentid>
    <comment_count>18</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-01-27 12:05:12 -0800</bug_when>
    <thetext>Attachment 80350 did not build on chromium:
Build output: http://queues.webkit.org/results/7576376</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>341021</commentid>
    <comment_count>19</comment_count>
      <attachid>80350</attachid>
    <who name="Kenneth Russell">kbr</who>
    <bug_when>2011-01-27 13:47:08 -0800</bug_when>
    <thetext>Comment on attachment 80350
Patch

The Chromium build failures are real. You&apos;ll need to land the Chromium side patch first and update chromium_rev in Source/WebKit/chromium/DEPS to prevent this patch from breaking the build.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>341025</commentid>
    <comment_count>20</comment_count>
    <who name="Zhenyao Mo">zmo</who>
    <bug_when>2011-01-27 13:52:22 -0800</bug_when>
    <thetext>I know that.  That&apos;s why I said I will wait until chromium rev roll over my chromium side cl (or I will do it myself if no one does that).

Please review again.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>341036</commentid>
    <comment_count>21</comment_count>
    <who name="Kenneth Russell">kbr</who>
    <bug_when>2011-01-27 14:02:27 -0800</bug_when>
    <thetext>(In reply to comment #20)
&gt; I know that.  That&apos;s why I said I will wait until chromium rev roll over my chromium side cl (or I will do it myself if no one does that).
&gt; 
&gt; Please review again.

I need to stress again that this patch will need to contain an update to Source/WebKit/chromium/DEPS. There&apos;s no point in reviewing it again until the Chromium side lands, at which point you can put up a new patch that contains the DEPS roll and which will build successfully on the EWS bots.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>341039</commentid>
    <comment_count>22</comment_count>
    <who name="Zhenyao Mo">zmo</who>
    <bug_when>2011-01-27 14:06:52 -0800</bug_when>
    <thetext>Chromium side already landed.  I prefer to roll webkit chromium rev independently so if some test failure happens, it will be clear it&apos;s from the roll or it&apos;s from my patch.

If no one did by the end of the day, then I&apos;ll do it.

As for testing this patch, I build it locally so it should be safe.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>341056</commentid>
    <comment_count>23</comment_count>
    <who name="Kenneth Russell">kbr</who>
    <bug_when>2011-01-27 14:29:06 -0800</bug_when>
    <thetext>(In reply to comment #22)
&gt; Chromium side already landed.  I prefer to roll webkit chromium rev independently so if some test failure happens, it will be clear it&apos;s from the roll or it&apos;s from my patch.
&gt; 
&gt; If no one did by the end of the day, then I&apos;ll do it.

Rolling forward the Chromium version in DEPS is usually pretty safe. I think you should feel free to either submit another patch doing it so you can get this all landed faster, or do it in the same patch. In the recent revision history, people have been rolling forward DEPS simultaneously with WebKit changes requiring a roll.

&gt; As for testing this patch, I build it locally so it should be safe.

Understood, but the EWS bots are there for a reason.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>341090</commentid>
    <comment_count>24</comment_count>
    <who name="Zhenyao Mo">zmo</who>
    <bug_when>2011-01-27 15:54:37 -0800</bug_when>
    <thetext>Just my lucky day.  Tried two revision, both failed compiling.  Keep trying...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>341135</commentid>
    <comment_count>25</comment_count>
      <attachid>80379</attachid>
    <who name="Zhenyao Mo">zmo</who>
    <bug_when>2011-01-27 17:02:28 -0800</bug_when>
    <thetext>Created attachment 80379
Patch

same patch, trigger the trybots after chromium rev roll</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>341138</commentid>
    <comment_count>26</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-01-27 17:04:40 -0800</bug_when>
    <thetext>Attachment 80379 did not pass style-queue:

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

Source/WebKit/chromium/public/WebGraphicsContext3D.h:154:  The parameter name &quot;size&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
Source/WebKit/chromium/public/WebGraphicsContext3D.h:186:  The parameter name &quot;size&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
Source/WebKit/chromium/public/WebGraphicsContext3D.h:187:  The parameter name &quot;size&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
Source/WebKit/chromium/public/WebGraphicsContext3D.h:296:  The parameter name &quot;w&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
Source/WebKit/chromium/public/WebGraphicsContext3D.h:298:  The parameter name &quot;w&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
Source/WebKit/chromium/public/WebGraphicsContext3D.h:313:  The parameter name &quot;w&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
Total errors found: 6 in 2 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>341157</commentid>
    <comment_count>27</comment_count>
    <who name="Zhenyao Mo">zmo</who>
    <bug_when>2011-01-27 17:20:07 -0800</bug_when>
    <thetext>Please review.  The chromium linux bot is green, since this patch has no platform specific code, so it should be safe to land now.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>341161</commentid>
    <comment_count>28</comment_count>
      <attachid>80379</attachid>
    <who name="Kenneth Russell">kbr</who>
    <bug_when>2011-01-27 17:22:37 -0800</bug_when>
    <thetext>Comment on attachment 80379
Patch

Thanks for persisting with this patch. Looks good.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>341172</commentid>
    <comment_count>29</comment_count>
    <who name="Zhenyao Mo">zmo</who>
    <bug_when>2011-01-27 17:29:38 -0800</bug_when>
    <thetext>Committed r76876: &lt;http://trac.webkit.org/changeset/76876&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>80157</attachid>
            <date>2011-01-25 18:16:47 -0800</date>
            <delta_ts>2011-01-26 16:19:08 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-51947-20110125181645.patch</filename>
            <type>text/plain</type>
            <size>17549</size>
            <attacher name="Zhenyao Mo">zmo</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCShyZXZpc2lvbiA3NjY1OCkKKysrIFNvdXJj
ZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTQg
QEAKKzIwMTEtMDEtMjUgIFpoZW55YW8gTW8gIDx6bW9AZ29vZ2xlLmNvbT4KKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBEZWZpbmUgR0MzRCB0eXBlcyB0
byBtYXRjaCBHTCB0eXBlcyBhbmQgdXNlIHRoZW0gaW4gV2ViR3JhcGhpY3NDb250ZXh0M0QKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTUxOTQ3CisKKyAg
ICAgICAgKiBwdWJsaWMvV2ViR3JhcGhpY3NDb250ZXh0M0QuaDoKKyAgICAgICAgKFdlYktpdDo6
V2ViR3JhcGhpY3NDb250ZXh0M0Q6OkF0dHJpYnV0ZXM6OkF0dHJpYnV0ZXMpOgorICAgICAgICAo
V2ViS2l0OjpXZWJHcmFwaGljc0NvbnRleHQzRDo6fldlYkdyYXBoaWNzQ29udGV4dDNEKToKKwog
MjAxMS0wMS0yNSAgSGFucyBXZW5uYm9yZyAgPGhhbnNAY2hyb21pdW0ub3JnPgogCiAgICAgICAg
IFJldmlld2VkIGJ5IEplcmVteSBPcmxvdy4KSW5kZXg6IFNvdXJjZS9XZWJLaXQvY2hyb21pdW0v
cHVibGljL1dlYkdyYXBoaWNzQ29udGV4dDNELmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktp
dC9jaHJvbWl1bS9wdWJsaWMvV2ViR3JhcGhpY3NDb250ZXh0M0QuaAkocmV2aXNpb24gNzY1Nzgp
CisrKyBTb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJHcmFwaGljc0NvbnRleHQzRC5o
CSh3b3JraW5nIGNvcHkpCkBAIC0zNyw4ICszNywyNiBAQAogCiBuYW1lc3BhY2UgV2ViS2l0IHsK
IAorLy8gV0dDM0QgdHlwZXMgbWF0Y2ggdGhlIGNvcnJlc3BvbmRpbmcgR0wgdHlwZXMgYXMgZGVm
aW5lZCBpbiBPcGVuR0wgRVMgMi4wCisvLyBoZWFkZXIgZmlsZSBnbDIuaCBmcm9tIGtocm9ub3Mu
b3JnLgordHlwZWRlZiBjaGFyIFdHQzNEY2hhcjsKK3R5cGVkZWYgdW5zaWduZWQgaW50IFdHQzNE
ZW51bTsKK3R5cGVkZWYgdW5zaWduZWQgY2hhciBXR0MzRGJvb2xlYW47Cit0eXBlZGVmIHVuc2ln
bmVkIGludCBXR0MzRGJpdGZpZWxkOwordHlwZWRlZiBzaWduZWQgY2hhciBXR0MzRGJ5dGU7Cit0
eXBlZGVmIHVuc2lnbmVkIGNoYXIgV0dDM0R1Ynl0ZTsKK3R5cGVkZWYgc2hvcnQgV0dDM0RzaG9y
dDsKK3R5cGVkZWYgdW5zaWduZWQgc2hvcnQgV0dDM0R1c2hvcnQ7Cit0eXBlZGVmIGludCBXR0Mz
RGludDsKK3R5cGVkZWYgaW50IFdHQzNEc2l6ZWk7Cit0eXBlZGVmIHVuc2lnbmVkIGludCBXR0Mz
RHVpbnQ7Cit0eXBlZGVmIGZsb2F0IFdHQzNEZmxvYXQ7Cit0eXBlZGVmIGZsb2F0IFdHQzNEY2xh
bXBmOwordHlwZWRlZiBzaWduZWQgbG9uZyBpbnQgV0dDM0RpbnRwdHI7Cit0eXBlZGVmIHNpZ25l
ZCBsb25nIGludCBXR0MzRHNpemVpcHRyOworCiAvLyBUeXBlZGVmIGZvciBzZXJ2ZXItc2lkZSBv
YmplY3RzIGxpa2UgT3BlbkdMIHRleHR1cmVzIGFuZCBwcm9ncmFtIG9iamVjdHMuCi10eXBlZGVm
IHVuc2lnbmVkIGludCBXZWJHTElkOwordHlwZWRlZiBXR0MzRHVpbnQgV2ViR0xJZDsKIAogY2xh
c3MgV2ViVmlldzsKIApAQCAtNDcsNiArNjUsMjY3IEBAIGNsYXNzIFdlYlZpZXc7CiAvLyBtZXRo
b2RzIGV4cG9zZWQgb24gdGhpcyBpbnRlcmZhY2UgbWFwIGRpcmVjdGx5IHRvIGVudHJ5IHBvaW50
cyBpbgogLy8gdGhlIE9wZW5HTCBFUyAyLjAgQVBJLgogCisjaWYgZGVmaW5lZChVU0VfV0dDM0Rf
VFlQRVMpCisKK2NsYXNzIFdlYkdyYXBoaWNzQ29udGV4dDNEIDogcHVibGljIFdlYk5vbkNvcHlh
YmxlIHsKK3B1YmxpYzoKKyAgICAvLyBSZXR1cm4gdmFsdWUgZnJvbSBnZXRBY3RpdmVVbmlmb3Jt
IGFuZCBnZXRBY3RpdmVBdHRyaWIuCisgICAgc3RydWN0IEFjdGl2ZUluZm8geworICAgICAgICBX
ZWJTdHJpbmcgbmFtZTsKKyAgICAgICAgV0dDM0RlbnVtIHR5cGU7CisgICAgICAgIFdHQzNEaW50
IHNpemU7CisgICAgfTsKKworICAgIC8vIENvbnRleHQgY3JlYXRpb24gYXR0cmlidXRlcy4KKyAg
ICBzdHJ1Y3QgQXR0cmlidXRlcyB7CisgICAgICAgIEF0dHJpYnV0ZXMoKQorICAgICAgICAgICAg
OiBhbHBoYSh0cnVlKQorICAgICAgICAgICAgLCBkZXB0aCh0cnVlKQorICAgICAgICAgICAgLCBz
dGVuY2lsKHRydWUpCisgICAgICAgICAgICAsIGFudGlhbGlhcyh0cnVlKQorICAgICAgICAgICAg
LCBwcmVtdWx0aXBsaWVkQWxwaGEodHJ1ZSkKKyAgICAgICAgICAgICwgY2FuUmVjb3ZlckZyb21D
b250ZXh0TG9zcyh0cnVlKQorICAgICAgICB7CisgICAgICAgIH0KKworICAgICAgICBib29sIGFs
cGhhOworICAgICAgICBib29sIGRlcHRoOworICAgICAgICBib29sIHN0ZW5jaWw7CisgICAgICAg
IGJvb2wgYW50aWFsaWFzOworICAgICAgICBib29sIHByZW11bHRpcGxpZWRBbHBoYTsKKyAgICAg
ICAgYm9vbCBjYW5SZWNvdmVyRnJvbUNvbnRleHRMb3NzOworICAgIH07CisKKyAgICAvLyBUaGlz
IGRlc3RydWN0b3IgbmVlZHMgdG8gYmUgcHVibGljIHNvIHRoYXQgdXNpbmcgY2xhc3NlcyBjYW4g
ZGVzdHJveSBpbnN0YW5jZXMgaWYgaW5pdGlhbGl6YXRpb24gZmFpbHMuCisgICAgdmlydHVhbCB+
V2ViR3JhcGhpY3NDb250ZXh0M0QoKSB7fQorCisgICAgLy8gSW5pdGlhbGl6ZXMgdGhlIGdyYXBo
aWNzIGNvbnRleHQ7IHNob3VsZCBiZSB0aGUgZmlyc3Qgb3BlcmF0aW9uIHBlcmZvcm1lZAorICAg
IC8vIG9uIG5ld2x5LWNvbnN0cnVjdGVkIGluc3RhbmNlcy4gUmV0dXJucyB0cnVlIG9uIHN1Y2Nl
c3MuCisgICAgdmlydHVhbCBib29sIGluaXRpYWxpemUoQXR0cmlidXRlcywgV2ViVmlldyosIGJv
b2wgcmVuZGVyRGlyZWN0bHlUb1dlYlZpZXcpID0gMDsKKworICAgIC8vIE1ha2VzIHRoZSBPcGVu
R0wgY29udGV4dCBjdXJyZW50IG9uIHRoZSBjdXJyZW50IHRocmVhZC4gUmV0dXJucyB0cnVlIG9u
CisgICAgLy8gc3VjY2Vzcy4KKyAgICB2aXJ0dWFsIGJvb2wgbWFrZUNvbnRleHRDdXJyZW50KCkg
PSAwOworCisgICAgLy8gVGhlIHNpemUgb2YgdGhlIHJlZ2lvbiBpbnRvIHdoaWNoIHRoaXMgV2Vi
R3JhcGhpY3NDb250ZXh0M0QgaXMgcmVuZGVyaW5nLgorICAgIC8vIFJldHVybnMgdGhlIGxhc3Qg
dmFsdWVzIHBhc3NlZCB0byByZXNoYXBlKCkuCisgICAgdmlydHVhbCBpbnQgd2lkdGgoKSA9IDA7
CisgICAgdmlydHVhbCBpbnQgaGVpZ2h0KCkgPSAwOworCisgICAgLy8gUmVzaXplcyB0aGUgcmVn
aW9uIGludG8gd2hpY2ggdGhpcyBXZWJHcmFwaGljc0NvbnRleHQzRCBpcyBkcmF3aW5nLgorICAg
IHZpcnR1YWwgdm9pZCByZXNoYXBlKGludCB3aWR0aCwgaW50IGhlaWdodCkgPSAwOworCisgICAg
Ly8gUXVlcnkgd2hldGhlciBpdCBpcyBidWlsdCBvbiB0b3Agb2YgY29tcGxpYW50IEdMRVMyIGlt
cGxlbWVudGF0aW9uLgorICAgIHZpcnR1YWwgYm9vbCBpc0dMRVMyQ29tcGxpYW50KCkgPSAwOwor
CisgICAgLy8gSGVscGVyIGZvciBzb2Z0d2FyZSBjb21wb3NpdGluZyBwYXRoLiBSZWFkcyBiYWNr
IHRoZSBmcmFtZSBidWZmZXIgaW50bworICAgIC8vIHRoZSBtZW1vcnkgcmVnaW9uIHBvaW50ZWQg
dG8gYnkgInBpeGVscyIgd2l0aCBzaXplICJidWZmZXJTaXplIi4gSXQgaXMKKyAgICAvLyBleHBl
Y3RlZCB0aGF0IHRoZSBzdG9yYWdlIGZvciAicGl4ZWxzIiBjb3ZlcnMgKDQgKiB3aWR0aCAqIGhl
aWdodCkgYnl0ZXMuCisgICAgLy8gUmV0dXJucyB0cnVlIG9uIHN1Y2Nlc3MuCisgICAgdmlydHVh
bCBib29sIHJlYWRCYWNrRnJhbWVidWZmZXIodW5zaWduZWQgY2hhciogcGl4ZWxzLCBzaXplX3Qg
YnVmZmVyU2l6ZSkgPSAwOworCisgICAgLy8gUmV0dXJucyB0aGUgaWQgb2YgdGhlIHRleHR1cmUg
d2hpY2ggaXMgdXNlZCBmb3Igc3RvcmluZyB0aGUgY29udGVudHMgb2YKKyAgICAvLyB0aGUgZnJh
bWVidWZmZXIgYXNzb2NpYXRlZCB3aXRoIHRoaXMgY29udGV4dC4gVGhpcyB0ZXh0dXJlIGlzIGFj
Y2Vzc2libGUKKyAgICAvLyBieSB0aGUgZ3B1LWJhc2VkIHBhZ2UgY29tcG9zaXRvci4KKyAgICB2
aXJ0dWFsIFdlYkdMSWQgZ2V0UGxhdGZvcm1UZXh0dXJlSWQoKSA9IDA7CisKKyAgICAvLyBDb3Bp
ZXMgdGhlIGNvbnRlbnRzIG9mIHRoZSBvZmYtc2NyZWVuIHJlbmRlciB0YXJnZXQgdXNlZCBieSB0
aGUgV2ViR0wKKyAgICAvLyBjb250ZXh0IHRvIHRoZSBjb3JyZXNwb25kaW5nIHRleHR1cmUgdXNl
ZCBieSB0aGUgY29tcG9zaXRvci4KKyAgICB2aXJ0dWFsIHZvaWQgcHJlcGFyZVRleHR1cmUoKSA9
IDA7CisKKyAgICAvLyBTeW50aGVzaXplcyBhbiBPcGVuR0wgZXJyb3Igd2hpY2ggd2lsbCBiZSBy
ZXR1cm5lZCBmcm9tIGEKKyAgICAvLyBsYXRlciBjYWxsIHRvIGdldEVycm9yLiBUaGlzIGlzIHVz
ZWQgdG8gZW11bGF0ZSBPcGVuR0wgRVMKKyAgICAvLyAyLjAgYmVoYXZpb3Igb24gdGhlIGRlc2t0
b3AgYW5kIHRvIGVuZm9yY2UgYWRkaXRpb25hbCBlcnJvcgorICAgIC8vIGNoZWNraW5nIG1hbmRh
dGVkIGJ5IFdlYkdMLgorICAgIC8vCisgICAgLy8gUGVyIHRoZSBiZWhhdmlvciBvZiBnbEdldEVy
cm9yLCB0aGlzIHN0b3JlcyBhdCBtb3N0IG9uZQorICAgIC8vIGluc3RhbmNlIG9mIGFueSBnaXZl
biBlcnJvciwgYW5kIHJldHVybnMgdGhlbSBmcm9tIGNhbGxzIHRvCisgICAgLy8gZ2V0RXJyb3Ig
aW4gdGhlIG9yZGVyIHRoZXkgd2VyZSBhZGRlZC4KKyAgICB2aXJ0dWFsIHZvaWQgc3ludGhlc2l6
ZUdMRXJyb3IoV0dDM0RlbnVtKSA9IDA7CisKKyAgICB2aXJ0dWFsIGJvb2wgaXNDb250ZXh0TG9z
dCgpID0gMDsKKworICAgIC8vIEdMX0NIUk9NSVVNX21hcF9zdWIKKyAgICB2aXJ0dWFsIHZvaWQq
IG1hcEJ1ZmZlclN1YkRhdGFDSFJPTUlVTShXR0MzRGVudW0gdGFyZ2V0LCBXR0MzRGludHB0ciBv
ZmZzZXQsIFdHQzNEc2l6ZWlwdHIgc2l6ZSwgV0dDM0RlbnVtIGFjY2VzcykgPSAwOworICAgIHZp
cnR1YWwgdm9pZCB1bm1hcEJ1ZmZlclN1YkRhdGFDSFJPTUlVTShjb25zdCB2b2lkKikgPSAwOwor
ICAgIHZpcnR1YWwgdm9pZCogbWFwVGV4U3ViSW1hZ2UyRENIUk9NSVVNKFdHQzNEZW51bSB0YXJn
ZXQsIFdHQzNEaW50IGxldmVsLCBXR0MzRGludCB4b2Zmc2V0LCBXR0MzRGludCB5b2Zmc2V0LCBX
R0MzRHNpemVpIHdpZHRoLCBXR0MzRHNpemVpIGhlaWdodCwgV0dDM0RlbnVtIGZvcm1hdCwgV0dD
M0RlbnVtIHR5cGUsIFdHQzNEZW51bSBhY2Nlc3MpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgdW5t
YXBUZXhTdWJJbWFnZTJEQ0hST01JVU0oY29uc3Qgdm9pZCopID0gMDsKKworICAgIC8vIEdMX0NI
Uk9NSVVNX2NvcHlfdGV4dHVyZV90b19wYXJlbnRfdGV4dHVyZQorICAgIHZpcnR1YWwgdm9pZCBj
b3B5VGV4dHVyZVRvUGFyZW50VGV4dHVyZUNIUk9NSVVNKFdlYkdMSWQgdGV4dHVyZSwgV2ViR0xJ
ZCBwYXJlbnRUZXh0dXJlKSA9IDA7CisKKyAgICAvLyBHTF9DSFJPTUlVTV9yZXF1ZXN0X2V4dGVu
c2lvbgorICAgIHZpcnR1YWwgV2ViU3RyaW5nIGdldFJlcXVlc3RhYmxlRXh0ZW5zaW9uc0NIUk9N
SVVNKCkgPSAwOworICAgIHZpcnR1YWwgdm9pZCByZXF1ZXN0RXh0ZW5zaW9uQ0hST01JVU0oY29u
c3QgY2hhciopID0gMDsKKworICAgIC8vIFRoZSBlbnRyeSBwb2ludHMgYmVsb3cgbWFwIGRpcmVj
dGx5IHRvIHRoZSBPcGVuR0wgRVMgMi4wIEFQSS4KKyAgICAvLyBTZWU6IGh0dHA6Ly93d3cua2hy
b25vcy5vcmcvcmVnaXN0cnkvZ2xlcy8KKyAgICAvLyBhbmQ6IGh0dHA6Ly93d3cua2hyb25vcy5v
cmcvb3BlbmdsZXMvc2RrL2RvY3MvbWFuLworICAgIHZpcnR1YWwgdm9pZCBhY3RpdmVUZXh0dXJl
KFdHQzNEZW51bSB0ZXh0dXJlKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIGF0dGFjaFNoYWRlcihX
ZWJHTElkIHByb2dyYW0sIFdlYkdMSWQgc2hhZGVyKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIGJp
bmRBdHRyaWJMb2NhdGlvbihXZWJHTElkIHByb2dyYW0sIFdHQzNEdWludCBpbmRleCwgY29uc3Qg
V0dDM0RjaGFyKiBuYW1lKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIGJpbmRCdWZmZXIoV0dDM0Rl
bnVtIHRhcmdldCwgV2ViR0xJZCBidWZmZXIpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgYmluZEZy
YW1lYnVmZmVyKFdHQzNEZW51bSB0YXJnZXQsIFdlYkdMSWQgZnJhbWVidWZmZXIpID0gMDsKKyAg
ICB2aXJ0dWFsIHZvaWQgYmluZFJlbmRlcmJ1ZmZlcihXR0MzRGVudW0gdGFyZ2V0LCBXZWJHTElk
IHJlbmRlcmJ1ZmZlcikgPSAwOworICAgIHZpcnR1YWwgdm9pZCBiaW5kVGV4dHVyZShXR0MzRGVu
dW0gdGFyZ2V0LCBXZWJHTElkIHRleHR1cmUpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgYmxlbmRD
b2xvcihXR0MzRGNsYW1wZiByZWQsIFdHQzNEY2xhbXBmIGdyZWVuLCBXR0MzRGNsYW1wZiBibHVl
LCBXR0MzRGNsYW1wZiBhbHBoYSkgPSAwOworICAgIHZpcnR1YWwgdm9pZCBibGVuZEVxdWF0aW9u
KFdHQzNEZW51bSBtb2RlKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIGJsZW5kRXF1YXRpb25TZXBh
cmF0ZShXR0MzRGVudW0gbW9kZVJHQiwgV0dDM0RlbnVtIG1vZGVBbHBoYSkgPSAwOworICAgIHZp
cnR1YWwgdm9pZCBibGVuZEZ1bmMoV0dDM0RlbnVtIHNmYWN0b3IsIFdHQzNEZW51bSBkZmFjdG9y
KSA9IDA7CisgICAgdmlydHVhbCB2b2lkIGJsZW5kRnVuY1NlcGFyYXRlKFdHQzNEZW51bSBzcmNS
R0IsIFdHQzNEZW51bSBkc3RSR0IsIFdHQzNEZW51bSBzcmNBbHBoYSwgV0dDM0RlbnVtIGRzdEFs
cGhhKSA9IDA7CisKKyAgICB2aXJ0dWFsIHZvaWQgYnVmZmVyRGF0YShXR0MzRGVudW0gdGFyZ2V0
LCBXR0MzRHNpemVpcHRyIHNpemUsIGNvbnN0IHZvaWQqIGRhdGEsIFdHQzNEZW51bSB1c2FnZSkg
PSAwOworICAgIHZpcnR1YWwgdm9pZCBidWZmZXJTdWJEYXRhKFdHQzNEZW51bSB0YXJnZXQsIFdH
QzNEaW50cHRyIG9mZnNldCwgV0dDM0RzaXplaXB0ciBzaXplLCBjb25zdCB2b2lkKiBkYXRhKSA9
IDA7CisKKyAgICB2aXJ0dWFsIFdHQzNEZW51bSBjaGVja0ZyYW1lYnVmZmVyU3RhdHVzKFdHQzNE
ZW51bSB0YXJnZXQpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgY2xlYXIoV0dDM0RiaXRmaWVsZCBt
YXNrKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIGNsZWFyQ29sb3IoV0dDM0RjbGFtcGYgcmVkLCBX
R0MzRGNsYW1wZiBncmVlbiwgV0dDM0RjbGFtcGYgYmx1ZSwgV0dDM0RjbGFtcGYgYWxwaGEpID0g
MDsKKyAgICB2aXJ0dWFsIHZvaWQgY2xlYXJEZXB0aChXR0MzRGNsYW1wZiBkZXB0aCkgPSAwOwor
ICAgIHZpcnR1YWwgdm9pZCBjbGVhclN0ZW5jaWwoV0dDM0RpbnQgcykgPSAwOworICAgIHZpcnR1
YWwgdm9pZCBjb2xvck1hc2soV0dDM0Rib29sZWFuIHJlZCwgV0dDM0Rib29sZWFuIGdyZWVuLCBX
R0MzRGJvb2xlYW4gYmx1ZSwgV0dDM0Rib29sZWFuIGFscGhhKSA9IDA7CisgICAgdmlydHVhbCB2
b2lkIGNvbXBpbGVTaGFkZXIoV2ViR0xJZCBzaGFkZXIpID0gMDsKKworICAgIHZpcnR1YWwgdm9p
ZCBjb3B5VGV4SW1hZ2UyRChXR0MzRGVudW0gdGFyZ2V0LCBXR0MzRGludCBsZXZlbCwgV0dDM0Rl
bnVtIGludGVybmFsZm9ybWF0LCBXR0MzRGludCB4LCBXR0MzRGludCB5LCBXR0MzRHNpemVpIHdp
ZHRoLCBXR0MzRHNpemVpIGhlaWdodCwgV0dDM0RpbnQgYm9yZGVyKSA9IDA7CisgICAgdmlydHVh
bCB2b2lkIGNvcHlUZXhTdWJJbWFnZTJEKFdHQzNEZW51bSB0YXJnZXQsIFdHQzNEaW50IGxldmVs
LCBXR0MzRGludCB4b2Zmc2V0LCBXR0MzRGludCB5b2Zmc2V0LCBXR0MzRGludCB4LCBXR0MzRGlu
dCB5LCBXR0MzRHNpemVpIHdpZHRoLCBXR0MzRHNpemVpIGhlaWdodCkgPSAwOworICAgIHZpcnR1
YWwgdm9pZCBjdWxsRmFjZShXR0MzRGVudW0gbW9kZSkgPSAwOworICAgIHZpcnR1YWwgdm9pZCBk
ZXB0aEZ1bmMoV0dDM0RlbnVtIGZ1bmMpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgZGVwdGhNYXNr
KFdHQzNEYm9vbGVhbiBmbGFnKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIGRlcHRoUmFuZ2UoV0dD
M0RjbGFtcGYgek5lYXIsIFdHQzNEY2xhbXBmIHpGYXIpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQg
ZGV0YWNoU2hhZGVyKFdlYkdMSWQgcHJvZ3JhbSwgV2ViR0xJZCBzaGFkZXIpID0gMDsKKyAgICB2
aXJ0dWFsIHZvaWQgZGlzYWJsZShXR0MzRGVudW0gY2FwKSA9IDA7CisgICAgdmlydHVhbCB2b2lk
IGRpc2FibGVWZXJ0ZXhBdHRyaWJBcnJheShXR0MzRHVpbnQgaW5kZXgpID0gMDsKKyAgICB2aXJ0
dWFsIHZvaWQgZHJhd0FycmF5cyhXR0MzRGVudW0gbW9kZSwgV0dDM0RpbnQgZmlyc3QsIFdHQzNE
c2l6ZWkgY291bnQpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgZHJhd0VsZW1lbnRzKFdHQzNEZW51
bSBtb2RlLCBXR0MzRHNpemVpIGNvdW50LCBXR0MzRGVudW0gdHlwZSwgV0dDM0RpbnRwdHIgb2Zm
c2V0KSA9IDA7CisKKyAgICB2aXJ0dWFsIHZvaWQgZW5hYmxlKFdHQzNEZW51bSBjYXApID0gMDsK
KyAgICB2aXJ0dWFsIHZvaWQgZW5hYmxlVmVydGV4QXR0cmliQXJyYXkoV0dDM0R1aW50IGluZGV4
KSA9IDA7CisgICAgdmlydHVhbCB2b2lkIGZpbmlzaCgpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQg
Zmx1c2goKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIGZyYW1lYnVmZmVyUmVuZGVyYnVmZmVyKFdH
QzNEZW51bSB0YXJnZXQsIFdHQzNEZW51bSBhdHRhY2htZW50LCBXR0MzRGVudW0gcmVuZGVyYnVm
ZmVydGFyZ2V0LCBXZWJHTElkIHJlbmRlcmJ1ZmZlcikgPSAwOworICAgIHZpcnR1YWwgdm9pZCBm
cmFtZWJ1ZmZlclRleHR1cmUyRChXR0MzRGVudW0gdGFyZ2V0LCBXR0MzRGVudW0gYXR0YWNobWVu
dCwgV0dDM0RlbnVtIHRleHRhcmdldCwgV2ViR0xJZCB0ZXh0dXJlLCBXR0MzRGludCBsZXZlbCkg
PSAwOworICAgIHZpcnR1YWwgdm9pZCBmcm9udEZhY2UoV0dDM0RlbnVtIG1vZGUpID0gMDsKKyAg
ICB2aXJ0dWFsIHZvaWQgZ2VuZXJhdGVNaXBtYXAoV0dDM0RlbnVtIHRhcmdldCkgPSAwOworCisg
ICAgdmlydHVhbCBib29sIGdldEFjdGl2ZUF0dHJpYihXZWJHTElkIHByb2dyYW0sIFdHQzNEdWlu
dCBpbmRleCwgQWN0aXZlSW5mbyYpID0gMDsKKyAgICB2aXJ0dWFsIGJvb2wgZ2V0QWN0aXZlVW5p
Zm9ybShXZWJHTElkIHByb2dyYW0sIFdHQzNEdWludCBpbmRleCwgQWN0aXZlSW5mbyYpID0gMDsK
KyAgICB2aXJ0dWFsIHZvaWQgZ2V0QXR0YWNoZWRTaGFkZXJzKFdlYkdMSWQgcHJvZ3JhbSwgV0dD
M0RzaXplaSBtYXhDb3VudCwgV0dDM0RzaXplaSogY291bnQsIFdlYkdMSWQqIHNoYWRlcnMpID0g
MDsKKyAgICB2aXJ0dWFsIFdHQzNEaW50IGdldEF0dHJpYkxvY2F0aW9uKFdlYkdMSWQgcHJvZ3Jh
bSwgY29uc3QgV0dDM0RjaGFyKiBuYW1lKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIGdldEJvb2xl
YW52KFdHQzNEZW51bSBwbmFtZSwgV0dDM0Rib29sZWFuKiB2YWx1ZSkgPSAwOworICAgIHZpcnR1
YWwgdm9pZCBnZXRCdWZmZXJQYXJhbWV0ZXJpdihXR0MzRGVudW0gdGFyZ2V0LCBXR0MzRGVudW0g
cG5hbWUsIFdHQzNEaW50KiB2YWx1ZSkgPSAwOworICAgIHZpcnR1YWwgQXR0cmlidXRlcyBnZXRD
b250ZXh0QXR0cmlidXRlcygpID0gMDsKKyAgICB2aXJ0dWFsIFdHQzNEZW51bSBnZXRFcnJvcigp
ID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgZ2V0RmxvYXR2KFdHQzNEZW51bSBwbmFtZSwgV0dDM0Rm
bG9hdCogdmFsdWUpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgZ2V0RnJhbWVidWZmZXJBdHRhY2ht
ZW50UGFyYW1ldGVyaXYoV0dDM0RlbnVtIHRhcmdldCwgV0dDM0RlbnVtIGF0dGFjaG1lbnQsIFdH
QzNEZW51bSBwbmFtZSwgV0dDM0RpbnQqIHZhbHVlKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIGdl
dEludGVnZXJ2KFdHQzNEZW51bSBwbmFtZSwgV0dDM0RpbnQqIHZhbHVlKSA9IDA7CisgICAgdmly
dHVhbCB2b2lkIGdldFByb2dyYW1pdihXZWJHTElkIHByb2dyYW0sIFdHQzNEZW51bSBwbmFtZSwg
V0dDM0RpbnQqIHZhbHVlKSA9IDA7CisgICAgdmlydHVhbCBXZWJTdHJpbmcgZ2V0UHJvZ3JhbUlu
Zm9Mb2coV2ViR0xJZCBwcm9ncmFtKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIGdldFJlbmRlcmJ1
ZmZlclBhcmFtZXRlcml2KFdHQzNEZW51bSB0YXJnZXQsIFdHQzNEZW51bSBwbmFtZSwgV0dDM0Rp
bnQqIHZhbHVlKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIGdldFNoYWRlcml2KFdlYkdMSWQgc2hh
ZGVyLCBXR0MzRGVudW0gcG5hbWUsIFdHQzNEaW50KiB2YWx1ZSkgPSAwOworICAgIHZpcnR1YWwg
V2ViU3RyaW5nIGdldFNoYWRlckluZm9Mb2coV2ViR0xJZCBzaGFkZXIpID0gMDsKKworICAgIC8v
IFRCRAorICAgIC8vIHZvaWQgZ2xHZXRTaGFkZXJQcmVjaXNpb25Gb3JtYXQgKEdMZW51bSBzaGFk
ZXJ0eXBlLCBHTGVudW0gcHJlY2lzaW9udHlwZSwgR0xpbnQqIHJhbmdlLCBHTGludCogcHJlY2lz
aW9uKTsKKworICAgIHZpcnR1YWwgV2ViU3RyaW5nIGdldFNoYWRlclNvdXJjZShXZWJHTElkIHNo
YWRlcikgPSAwOworICAgIHZpcnR1YWwgV2ViU3RyaW5nIGdldFN0cmluZyhXR0MzRGVudW0gbmFt
ZSkgPSAwOworICAgIHZpcnR1YWwgdm9pZCBnZXRUZXhQYXJhbWV0ZXJmdihXR0MzRGVudW0gdGFy
Z2V0LCBXR0MzRGVudW0gcG5hbWUsIFdHQzNEZmxvYXQqIHZhbHVlKSA9IDA7CisgICAgdmlydHVh
bCB2b2lkIGdldFRleFBhcmFtZXRlcml2KFdHQzNEZW51bSB0YXJnZXQsIFdHQzNEZW51bSBwbmFt
ZSwgV0dDM0RpbnQqIHZhbHVlKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIGdldFVuaWZvcm1mdihX
ZWJHTElkIHByb2dyYW0sIFdHQzNEaW50IGxvY2F0aW9uLCBXR0MzRGZsb2F0KiB2YWx1ZSkgPSAw
OworICAgIHZpcnR1YWwgdm9pZCBnZXRVbmlmb3JtaXYoV2ViR0xJZCBwcm9ncmFtLCBXR0MzRGlu
dCBsb2NhdGlvbiwgV0dDM0RpbnQqIHZhbHVlKSA9IDA7CisgICAgdmlydHVhbCBXR0MzRGludCBn
ZXRVbmlmb3JtTG9jYXRpb24oV2ViR0xJZCBwcm9ncmFtLCBjb25zdCBXR0MzRGNoYXIqIG5hbWUp
ID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgZ2V0VmVydGV4QXR0cmliZnYoV0dDM0R1aW50IGluZGV4
LCBXR0MzRGVudW0gcG5hbWUsIFdHQzNEZmxvYXQqIHZhbHVlKSA9IDA7CisgICAgdmlydHVhbCB2
b2lkIGdldFZlcnRleEF0dHJpYml2KFdHQzNEdWludCBpbmRleCwgV0dDM0RlbnVtIHBuYW1lLCBX
R0MzRGludCogdmFsdWUpID0gMDsKKyAgICB2aXJ0dWFsIFdHQzNEc2l6ZWlwdHIgZ2V0VmVydGV4
QXR0cmliT2Zmc2V0KFdHQzNEdWludCBpbmRleCwgV0dDM0RlbnVtIHBuYW1lKSA9IDA7CisKKyAg
ICB2aXJ0dWFsIHZvaWQgaGludChXR0MzRGVudW0gdGFyZ2V0LCBXR0MzRGVudW0gbW9kZSkgPSAw
OworICAgIHZpcnR1YWwgV0dDM0Rib29sZWFuIGlzQnVmZmVyKFdlYkdMSWQgYnVmZmVyKSA9IDA7
CisgICAgdmlydHVhbCBXR0MzRGJvb2xlYW4gaXNFbmFibGVkKFdHQzNEZW51bSBjYXApID0gMDsK
KyAgICB2aXJ0dWFsIFdHQzNEYm9vbGVhbiBpc0ZyYW1lYnVmZmVyKFdlYkdMSWQgZnJhbWVidWZm
ZXIpID0gMDsKKyAgICB2aXJ0dWFsIFdHQzNEYm9vbGVhbiBpc1Byb2dyYW0oV2ViR0xJZCBwcm9n
cmFtKSA9IDA7CisgICAgdmlydHVhbCBXR0MzRGJvb2xlYW4gaXNSZW5kZXJidWZmZXIoV2ViR0xJ
ZCByZW5kZXJidWZmZXIpID0gMDsKKyAgICB2aXJ0dWFsIFdHQzNEYm9vbGVhbiBpc1NoYWRlcihX
ZWJHTElkIHNoYWRlcikgPSAwOworICAgIHZpcnR1YWwgV0dDM0Rib29sZWFuIGlzVGV4dHVyZShX
ZWJHTElkIHRleHR1cmUpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgbGluZVdpZHRoKFdHQzNEZmxv
YXQpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgbGlua1Byb2dyYW0oV2ViR0xJZCBwcm9ncmFtKSA9
IDA7CisgICAgdmlydHVhbCB2b2lkIHBpeGVsU3RvcmVpKFdHQzNEZW51bSBwbmFtZSwgV0dDM0Rp
bnQgcGFyYW0pID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgcG9seWdvbk9mZnNldChXR0MzRGZsb2F0
IGZhY3RvciwgV0dDM0RmbG9hdCB1bml0cykgPSAwOworCisgICAgdmlydHVhbCB2b2lkIHJlYWRQ
aXhlbHMoV0dDM0RpbnQgeCwgV0dDM0RpbnQgeSwgV0dDM0RzaXplaSB3aWR0aCwgV0dDM0RzaXpl
aSBoZWlnaHQsIFdHQzNEZW51bSBmb3JtYXQsIFdHQzNEZW51bSB0eXBlLCB2b2lkKiBwaXhlbHMp
ID0gMDsKKworICAgIHZpcnR1YWwgdm9pZCByZWxlYXNlU2hhZGVyQ29tcGlsZXIoKSA9IDA7CisK
KyAgICB2aXJ0dWFsIHZvaWQgcmVuZGVyYnVmZmVyU3RvcmFnZShXR0MzRGVudW0gdGFyZ2V0LCBX
R0MzRGVudW0gaW50ZXJuYWxmb3JtYXQsIFdHQzNEc2l6ZWkgd2lkdGgsIFdHQzNEc2l6ZWkgaGVp
Z2h0KSA9IDA7CisgICAgdmlydHVhbCB2b2lkIHNhbXBsZUNvdmVyYWdlKFdHQzNEY2xhbXBmIHZh
bHVlLCBXR0MzRGJvb2xlYW4gaW52ZXJ0KSA9IDA7CisgICAgdmlydHVhbCB2b2lkIHNjaXNzb3Io
V0dDM0RpbnQgeCwgV0dDM0RpbnQgeSwgV0dDM0RzaXplaSB3aWR0aCwgV0dDM0RzaXplaSBoZWln
aHQpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgc2hhZGVyU291cmNlKFdlYkdMSWQgc2hhZGVyLCBj
b25zdCBXR0MzRGNoYXIqIHN0cmluZykgPSAwOworICAgIHZpcnR1YWwgdm9pZCBzdGVuY2lsRnVu
YyhXR0MzRGVudW0gZnVuYywgV0dDM0RpbnQgcmVmLCBXR0MzRHVpbnQgbWFzaykgPSAwOworICAg
IHZpcnR1YWwgdm9pZCBzdGVuY2lsRnVuY1NlcGFyYXRlKFdHQzNEZW51bSBmYWNlLCBXR0MzRGVu
dW0gZnVuYywgV0dDM0RpbnQgcmVmLCBXR0MzRHVpbnQgbWFzaykgPSAwOworICAgIHZpcnR1YWwg
dm9pZCBzdGVuY2lsTWFzayhXR0MzRHVpbnQgbWFzaykgPSAwOworICAgIHZpcnR1YWwgdm9pZCBz
dGVuY2lsTWFza1NlcGFyYXRlKFdHQzNEZW51bSBmYWNlLCBXR0MzRHVpbnQgbWFzaykgPSAwOwor
ICAgIHZpcnR1YWwgdm9pZCBzdGVuY2lsT3AoV0dDM0RlbnVtIGZhaWwsIFdHQzNEZW51bSB6ZmFp
bCwgV0dDM0RlbnVtIHpwYXNzKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIHN0ZW5jaWxPcFNlcGFy
YXRlKFdHQzNEZW51bSBmYWNlLCBXR0MzRGVudW0gZmFpbCwgV0dDM0RlbnVtIHpmYWlsLCBXR0Mz
RGVudW0genBhc3MpID0gMDsKKworICAgIHZpcnR1YWwgdm9pZCB0ZXhJbWFnZTJEKFdHQzNEZW51
bSB0YXJnZXQsIFdHQzNEaW50IGxldmVsLCBXR0MzRGVudW0gaW50ZXJuYWxmb3JtYXQsIFdHQzNE
c2l6ZWkgd2lkdGgsIFdHQzNEc2l6ZWkgaGVpZ2h0LCBXR0MzRGludCBib3JkZXIsIFdHQzNEZW51
bSBmb3JtYXQsIFdHQzNEZW51bSB0eXBlLCBjb25zdCB2b2lkKiBwaXhlbHMpID0gMDsKKworICAg
IHZpcnR1YWwgdm9pZCB0ZXhQYXJhbWV0ZXJmKFdHQzNEZW51bSB0YXJnZXQsIFdHQzNEZW51bSBw
bmFtZSwgV0dDM0RmbG9hdCBwYXJhbSkgPSAwOworICAgIHZpcnR1YWwgdm9pZCB0ZXhQYXJhbWV0
ZXJpKFdHQzNEZW51bSB0YXJnZXQsIFdHQzNEZW51bSBwbmFtZSwgV0dDM0RpbnQgcGFyYW0pID0g
MDsKKworICAgIHZpcnR1YWwgdm9pZCB0ZXhTdWJJbWFnZTJEKFdHQzNEZW51bSB0YXJnZXQsIFdH
QzNEaW50IGxldmVsLCBXR0MzRGludCB4b2Zmc2V0LCBXR0MzRGludCB5b2Zmc2V0LCBXR0MzRHNp
emVpIHdpZHRoLCBXR0MzRHNpemVpIGhlaWdodCwgV0dDM0RlbnVtIGZvcm1hdCwgV0dDM0RlbnVt
IHR5cGUsIGNvbnN0IHZvaWQqIHBpeGVscykgPSAwOworCisgICAgdmlydHVhbCB2b2lkIHVuaWZv
cm0xZihXR0MzRGludCBsb2NhdGlvbiwgV0dDM0RmbG9hdCB4KSA9IDA7CisgICAgdmlydHVhbCB2
b2lkIHVuaWZvcm0xZnYoV0dDM0RpbnQgbG9jYXRpb24sIFdHQzNEc2l6ZWkgY291bnQsIGNvbnN0
IFdHQzNEZmxvYXQqIHYpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgdW5pZm9ybTFpKFdHQzNEaW50
IGxvY2F0aW9uLCBXR0MzRGludCB4KSA9IDA7CisgICAgdmlydHVhbCB2b2lkIHVuaWZvcm0xaXYo
V0dDM0RpbnQgbG9jYXRpb24sIFdHQzNEc2l6ZWkgY291bnQsIGNvbnN0IFdHQzNEaW50KiB2KSA9
IDA7CisgICAgdmlydHVhbCB2b2lkIHVuaWZvcm0yZihXR0MzRGludCBsb2NhdGlvbiwgV0dDM0Rm
bG9hdCB4LCBXR0MzRGZsb2F0IHkpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgdW5pZm9ybTJmdihX
R0MzRGludCBsb2NhdGlvbiwgV0dDM0RzaXplaSBjb3VudCwgY29uc3QgV0dDM0RmbG9hdCogdikg
PSAwOworICAgIHZpcnR1YWwgdm9pZCB1bmlmb3JtMmkoV0dDM0RpbnQgbG9jYXRpb24sIFdHQzNE
aW50IHgsIFdHQzNEaW50IHkpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgdW5pZm9ybTJpdihXR0Mz
RGludCBsb2NhdGlvbiwgV0dDM0RzaXplaSBjb3VudCwgY29uc3QgV0dDM0RpbnQqIHYpID0gMDsK
KyAgICB2aXJ0dWFsIHZvaWQgdW5pZm9ybTNmKFdHQzNEaW50IGxvY2F0aW9uLCBXR0MzRGZsb2F0
IHgsIFdHQzNEZmxvYXQgeSwgV0dDM0RmbG9hdCB6KSA9IDA7CisgICAgdmlydHVhbCB2b2lkIHVu
aWZvcm0zZnYoV0dDM0RpbnQgbG9jYXRpb24sIFdHQzNEc2l6ZWkgY291bnQsIGNvbnN0IFdHQzNE
ZmxvYXQqIHYpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgdW5pZm9ybTNpKFdHQzNEaW50IGxvY2F0
aW9uLCBXR0MzRGludCB4LCBXR0MzRGludCB5LCBXR0MzRGludCB6KSA9IDA7CisgICAgdmlydHVh
bCB2b2lkIHVuaWZvcm0zaXYoV0dDM0RpbnQgbG9jYXRpb24sIFdHQzNEc2l6ZWkgY291bnQsIGNv
bnN0IFdHQzNEaW50KiB2KSA9IDA7CisgICAgdmlydHVhbCB2b2lkIHVuaWZvcm00ZihXR0MzRGlu
dCBsb2NhdGlvbiwgV0dDM0RmbG9hdCB4LCBXR0MzRGZsb2F0IHksIFdHQzNEZmxvYXQgeiwgV0dD
M0RmbG9hdCB3KSA9IDA7CisgICAgdmlydHVhbCB2b2lkIHVuaWZvcm00ZnYoV0dDM0RpbnQgbG9j
YXRpb24sIFdHQzNEc2l6ZWkgY291bnQsIGNvbnN0IFdHQzNEZmxvYXQqIHYpID0gMDsKKyAgICB2
aXJ0dWFsIHZvaWQgdW5pZm9ybTRpKFdHQzNEaW50IGxvY2F0aW9uLCBXR0MzRGludCB4LCBXR0Mz
RGludCB5LCBXR0MzRGludCB6LCBXR0MzRGludCB3KSA9IDA7CisgICAgdmlydHVhbCB2b2lkIHVu
aWZvcm00aXYoV0dDM0RpbnQgbG9jYXRpb24sIFdHQzNEc2l6ZWkgY291bnQsIGNvbnN0IFdHQzNE
aW50KiB2KSA9IDA7CisgICAgdmlydHVhbCB2b2lkIHVuaWZvcm1NYXRyaXgyZnYoV0dDM0RpbnQg
bG9jYXRpb24sIFdHQzNEc2l6ZWkgY291bnQsIFdHQzNEYm9vbGVhbiB0cmFuc3Bvc2UsIGNvbnN0
IFdHQzNEZmxvYXQqIHZhbHVlKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIHVuaWZvcm1NYXRyaXgz
ZnYoV0dDM0RpbnQgbG9jYXRpb24sIFdHQzNEc2l6ZWkgY291bnQsIFdHQzNEYm9vbGVhbiB0cmFu
c3Bvc2UsIGNvbnN0IFdHQzNEZmxvYXQqIHZhbHVlKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIHVu
aWZvcm1NYXRyaXg0ZnYoV0dDM0RpbnQgbG9jYXRpb24sIFdHQzNEc2l6ZWkgY291bnQsIFdHQzNE
Ym9vbGVhbiB0cmFuc3Bvc2UsIGNvbnN0IFdHQzNEZmxvYXQqIHZhbHVlKSA9IDA7CisKKyAgICB2
aXJ0dWFsIHZvaWQgdXNlUHJvZ3JhbShXZWJHTElkIHByb2dyYW0pID0gMDsKKyAgICB2aXJ0dWFs
IHZvaWQgdmFsaWRhdGVQcm9ncmFtKFdlYkdMSWQgcHJvZ3JhbSkgPSAwOworCisgICAgdmlydHVh
bCB2b2lkIHZlcnRleEF0dHJpYjFmKFdHQzNEdWludCBpbmRleCwgV0dDM0RmbG9hdCB4KSA9IDA7
CisgICAgdmlydHVhbCB2b2lkIHZlcnRleEF0dHJpYjFmdihXR0MzRHVpbnQgaW5kZXgsIGNvbnN0
IFdHQzNEZmxvYXQqIHZhbHVlcykgPSAwOworICAgIHZpcnR1YWwgdm9pZCB2ZXJ0ZXhBdHRyaWIy
ZihXR0MzRHVpbnQgaW5kZXgsIFdHQzNEZmxvYXQgeCwgV0dDM0RmbG9hdCB5KSA9IDA7CisgICAg
dmlydHVhbCB2b2lkIHZlcnRleEF0dHJpYjJmdihXR0MzRHVpbnQgaW5kZXgsIGNvbnN0IFdHQzNE
ZmxvYXQqIHZhbHVlcykgPSAwOworICAgIHZpcnR1YWwgdm9pZCB2ZXJ0ZXhBdHRyaWIzZihXR0Mz
RHVpbnQgaW5kZXgsIFdHQzNEZmxvYXQgeCwgV0dDM0RmbG9hdCB5LCBXR0MzRGZsb2F0IHopID0g
MDsKKyAgICB2aXJ0dWFsIHZvaWQgdmVydGV4QXR0cmliM2Z2KFdHQzNEdWludCBpbmRleCwgY29u
c3QgV0dDM0RmbG9hdCogdmFsdWVzKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIHZlcnRleEF0dHJp
YjRmKFdHQzNEdWludCBpbmRleCwgV0dDM0RmbG9hdCB4LCBXR0MzRGZsb2F0IHksIFdHQzNEZmxv
YXQgeiwgV0dDM0RmbG9hdCB3KSA9IDA7CisgICAgdmlydHVhbCB2b2lkIHZlcnRleEF0dHJpYjRm
dihXR0MzRHVpbnQgaW5kZXgsIGNvbnN0IFdHQzNEZmxvYXQqIHZhbHVlcykgPSAwOworICAgIHZp
cnR1YWwgdm9pZCB2ZXJ0ZXhBdHRyaWJQb2ludGVyKFdHQzNEdWludCBpbmRleCwgV0dDM0RpbnQg
c2l6ZSwgV0dDM0RlbnVtIHR5cGUsIFdHQzNEYm9vbGVhbiBub3JtYWxpemVkLAorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFdHQzNEc2l6ZWkgc3RyaWRlLCBXR0MzRGludHB0
ciBvZmZzZXQpID0gMDsKKworICAgIHZpcnR1YWwgdm9pZCB2aWV3cG9ydChXR0MzRGludCB4LCBX
R0MzRGludCB5LCBXR0MzRHNpemVpIHdpZHRoLCBXR0MzRHNpemVpIGhlaWdodCkgPSAwOworCisg
ICAgLy8gU3VwcG9ydCBmb3IgYnVmZmVyIGNyZWF0aW9uIGFuZCBkZWxldGlvbi4KKyAgICB2aXJ0
dWFsIFdlYkdMSWQgY3JlYXRlQnVmZmVyKCkgPSAwOworICAgIHZpcnR1YWwgV2ViR0xJZCBjcmVh
dGVGcmFtZWJ1ZmZlcigpID0gMDsKKyAgICB2aXJ0dWFsIFdlYkdMSWQgY3JlYXRlUHJvZ3JhbSgp
ID0gMDsKKyAgICB2aXJ0dWFsIFdlYkdMSWQgY3JlYXRlUmVuZGVyYnVmZmVyKCkgPSAwOworICAg
IHZpcnR1YWwgV2ViR0xJZCBjcmVhdGVTaGFkZXIoV0dDM0RlbnVtKSA9IDA7CisgICAgdmlydHVh
bCBXZWJHTElkIGNyZWF0ZVRleHR1cmUoKSA9IDA7CisKKyAgICB2aXJ0dWFsIHZvaWQgZGVsZXRl
QnVmZmVyKFdlYkdMSWQpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgZGVsZXRlRnJhbWVidWZmZXIo
V2ViR0xJZCkgPSAwOworICAgIHZpcnR1YWwgdm9pZCBkZWxldGVQcm9ncmFtKFdlYkdMSWQpID0g
MDsKKyAgICB2aXJ0dWFsIHZvaWQgZGVsZXRlUmVuZGVyYnVmZmVyKFdlYkdMSWQpID0gMDsKKyAg
ICB2aXJ0dWFsIHZvaWQgZGVsZXRlU2hhZGVyKFdlYkdMSWQpID0gMDsKKyAgICB2aXJ0dWFsIHZv
aWQgZGVsZXRlVGV4dHVyZShXZWJHTElkKSA9IDA7Cit9OworCisjZWxzZSAvLyBVU0VfV0dDM0Rf
VFlQRVMKKwogY2xhc3MgV2ViR3JhcGhpY3NDb250ZXh0M0QgOiBwdWJsaWMgV2ViTm9uQ29weWFi
bGUgewogcHVibGljOgogICAgIC8vIFJldHVybiB2YWx1ZSBmcm9tIGdldEFjdGl2ZVVuaWZvcm0g
YW5kIGdldEFjdGl2ZUF0dHJpYi4KQEAgLTMyNiw2ICs2MDUsOCBAQCBwdWJsaWM6CiAgICAgdmly
dHVhbCB2b2lkIGRlbGV0ZVRleHR1cmUodW5zaWduZWQpID0gMDsKIH07CiAKKyNlbmRpZiAvLyBV
U0VfV0dDM0RfVFlQRVMKKwogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CiAKICNlbmRpZgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>80258</attachid>
            <date>2011-01-26 16:19:10 -0800</date>
            <delta_ts>2011-01-26 16:25:06 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-51947-20110126161909.patch</filename>
            <type>text/plain</type>
            <size>17872</size>
            <attacher name="Zhenyao Mo">zmo</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCShyZXZpc2lvbiA3NjcyOSkKKysrIFNvdXJj
ZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTQg
QEAKKzIwMTEtMDEtMjYgIFpoZW55YW8gTW8gIDx6bW9AZ29vZ2xlLmNvbT4KKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBEZWZpbmUgR0MzRCB0eXBlcyB0
byBtYXRjaCBHTCB0eXBlcyBhbmQgdXNlIHRoZW0gaW4gV2ViR3JhcGhpY3NDb250ZXh0M0QKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTUxOTQ3CisKKyAg
ICAgICAgKiBwdWJsaWMvV2ViR3JhcGhpY3NDb250ZXh0M0QuaDoKKyAgICAgICAgKFdlYktpdDo6
V2ViR3JhcGhpY3NDb250ZXh0M0Q6OkF0dHJpYnV0ZXM6OkF0dHJpYnV0ZXMpOgorICAgICAgICAo
V2ViS2l0OjpXZWJHcmFwaGljc0NvbnRleHQzRDo6fldlYkdyYXBoaWNzQ29udGV4dDNEKToKKwog
MjAxMS0wMS0yNiAgS2VubmV0aCBSdXNzZWxsICA8a2JyQGdvb2dsZS5jb20+CiAKICAgICAgICAg
UmV2aWV3ZWQgYnkgSmFtZXMgUm9iaW5zb24uCkluZGV4OiBTb3VyY2UvV2ViS2l0L2Nocm9taXVt
L3B1YmxpYy9XZWJHcmFwaGljc0NvbnRleHQzRC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJL
aXQvY2hyb21pdW0vcHVibGljL1dlYkdyYXBoaWNzQ29udGV4dDNELmgJKHJldmlzaW9uIDc2NzI5
KQorKysgU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViR3JhcGhpY3NDb250ZXh0M0Qu
aAkod29ya2luZyBjb3B5KQpAQCAtMzcsOCArMzcsMjYgQEAKIAogbmFtZXNwYWNlIFdlYktpdCB7
CiAKKy8vIFdHQzNEIHR5cGVzIG1hdGNoIHRoZSBjb3JyZXNwb25kaW5nIEdMIHR5cGVzIGFzIGRl
ZmluZWQgaW4gT3BlbkdMIEVTIDIuMAorLy8gaGVhZGVyIGZpbGUgZ2wyLmggZnJvbSBraHJvbm9z
Lm9yZy4KK3R5cGVkZWYgY2hhciBXR0MzRGNoYXI7Cit0eXBlZGVmIHVuc2lnbmVkIGludCBXR0Mz
RGVudW07Cit0eXBlZGVmIHVuc2lnbmVkIGNoYXIgV0dDM0Rib29sZWFuOwordHlwZWRlZiB1bnNp
Z25lZCBpbnQgV0dDM0RiaXRmaWVsZDsKK3R5cGVkZWYgc2lnbmVkIGNoYXIgV0dDM0RieXRlOwor
dHlwZWRlZiB1bnNpZ25lZCBjaGFyIFdHQzNEdWJ5dGU7Cit0eXBlZGVmIHNob3J0IFdHQzNEc2hv
cnQ7Cit0eXBlZGVmIHVuc2lnbmVkIHNob3J0IFdHQzNEdXNob3J0OwordHlwZWRlZiBpbnQgV0dD
M0RpbnQ7Cit0eXBlZGVmIGludCBXR0MzRHNpemVpOwordHlwZWRlZiB1bnNpZ25lZCBpbnQgV0dD
M0R1aW50OwordHlwZWRlZiBmbG9hdCBXR0MzRGZsb2F0OwordHlwZWRlZiBmbG9hdCBXR0MzRGNs
YW1wZjsKK3R5cGVkZWYgc2lnbmVkIGxvbmcgaW50IFdHQzNEaW50cHRyOwordHlwZWRlZiBzaWdu
ZWQgbG9uZyBpbnQgV0dDM0RzaXplaXB0cjsKKwogLy8gVHlwZWRlZiBmb3Igc2VydmVyLXNpZGUg
b2JqZWN0cyBsaWtlIE9wZW5HTCB0ZXh0dXJlcyBhbmQgcHJvZ3JhbSBvYmplY3RzLgotdHlwZWRl
ZiB1bnNpZ25lZCBpbnQgV2ViR0xJZDsKK3R5cGVkZWYgV0dDM0R1aW50IFdlYkdMSWQ7CiAKIGNs
YXNzIFdlYlZpZXc7CiAKQEAgLTUyLDYgKzcwLDI2OSBAQCBwdWJsaWM6CiAgICAgLy8gUmV0dXJu
IHZhbHVlIGZyb20gZ2V0QWN0aXZlVW5pZm9ybSBhbmQgZ2V0QWN0aXZlQXR0cmliLgogICAgIHN0
cnVjdCBBY3RpdmVJbmZvIHsKICAgICAgICAgV2ViU3RyaW5nIG5hbWU7CisgICAgICAgIFdHQzNE
ZW51bSB0eXBlOworICAgICAgICBXR0MzRGludCBzaXplOworICAgIH07CisKKyAgICAvLyBDb250
ZXh0IGNyZWF0aW9uIGF0dHJpYnV0ZXMuCisgICAgc3RydWN0IEF0dHJpYnV0ZXMgeworICAgICAg
ICBBdHRyaWJ1dGVzKCkKKyAgICAgICAgICAgIDogYWxwaGEodHJ1ZSkKKyAgICAgICAgICAgICwg
ZGVwdGgodHJ1ZSkKKyAgICAgICAgICAgICwgc3RlbmNpbCh0cnVlKQorICAgICAgICAgICAgLCBh
bnRpYWxpYXModHJ1ZSkKKyAgICAgICAgICAgICwgcHJlbXVsdGlwbGllZEFscGhhKHRydWUpCisg
ICAgICAgICAgICAsIGNhblJlY292ZXJGcm9tQ29udGV4dExvc3ModHJ1ZSkKKyAgICAgICAgewor
ICAgICAgICB9CisKKyAgICAgICAgYm9vbCBhbHBoYTsKKyAgICAgICAgYm9vbCBkZXB0aDsKKyAg
ICAgICAgYm9vbCBzdGVuY2lsOworICAgICAgICBib29sIGFudGlhbGlhczsKKyAgICAgICAgYm9v
bCBwcmVtdWx0aXBsaWVkQWxwaGE7CisgICAgICAgIGJvb2wgY2FuUmVjb3ZlckZyb21Db250ZXh0
TG9zczsKKyAgICB9OworCisgICAgLy8gVGhpcyBkZXN0cnVjdG9yIG5lZWRzIHRvIGJlIHB1Ymxp
YyBzbyB0aGF0IHVzaW5nIGNsYXNzZXMgY2FuIGRlc3Ryb3kgaW5zdGFuY2VzIGlmIGluaXRpYWxp
emF0aW9uIGZhaWxzLgorICAgIHZpcnR1YWwgfldlYkdyYXBoaWNzQ29udGV4dDNEKCkge30KKwor
ICAgIC8vIEluaXRpYWxpemVzIHRoZSBncmFwaGljcyBjb250ZXh0OyBzaG91bGQgYmUgdGhlIGZp
cnN0IG9wZXJhdGlvbiBwZXJmb3JtZWQKKyAgICAvLyBvbiBuZXdseS1jb25zdHJ1Y3RlZCBpbnN0
YW5jZXMuIFJldHVybnMgdHJ1ZSBvbiBzdWNjZXNzLgorICAgIHZpcnR1YWwgYm9vbCBpbml0aWFs
aXplKEF0dHJpYnV0ZXMsIFdlYlZpZXcqLCBib29sIHJlbmRlckRpcmVjdGx5VG9XZWJWaWV3KSA9
IDA7CisKKyAgICAvLyBNYWtlcyB0aGUgT3BlbkdMIGNvbnRleHQgY3VycmVudCBvbiB0aGUgY3Vy
cmVudCB0aHJlYWQuIFJldHVybnMgdHJ1ZSBvbgorICAgIC8vIHN1Y2Nlc3MuCisgICAgdmlydHVh
bCBib29sIG1ha2VDb250ZXh0Q3VycmVudCgpID0gMDsKKworICAgIC8vIFRoZSBzaXplIG9mIHRo
ZSByZWdpb24gaW50byB3aGljaCB0aGlzIFdlYkdyYXBoaWNzQ29udGV4dDNEIGlzIHJlbmRlcmlu
Zy4KKyAgICAvLyBSZXR1cm5zIHRoZSBsYXN0IHZhbHVlcyBwYXNzZWQgdG8gcmVzaGFwZSgpLgor
ICAgIHZpcnR1YWwgaW50IHdpZHRoKCkgPSAwOworICAgIHZpcnR1YWwgaW50IGhlaWdodCgpID0g
MDsKKworICAgIC8vIFJlc2l6ZXMgdGhlIHJlZ2lvbiBpbnRvIHdoaWNoIHRoaXMgV2ViR3JhcGhp
Y3NDb250ZXh0M0QgaXMgZHJhd2luZy4KKyAgICB2aXJ0dWFsIHZvaWQgcmVzaGFwZShpbnQgd2lk
dGgsIGludCBoZWlnaHQpID0gMDsKKworICAgIC8vIFF1ZXJ5IHdoZXRoZXIgaXQgaXMgYnVpbHQg
b24gdG9wIG9mIGNvbXBsaWFudCBHTEVTMiBpbXBsZW1lbnRhdGlvbi4KKyAgICB2aXJ0dWFsIGJv
b2wgaXNHTEVTMkNvbXBsaWFudCgpID0gMDsKKworICAgIC8vIEhlbHBlciBmb3Igc29mdHdhcmUg
Y29tcG9zaXRpbmcgcGF0aC4gUmVhZHMgYmFjayB0aGUgZnJhbWUgYnVmZmVyIGludG8KKyAgICAv
LyB0aGUgbWVtb3J5IHJlZ2lvbiBwb2ludGVkIHRvIGJ5ICJwaXhlbHMiIHdpdGggc2l6ZSAiYnVm
ZmVyU2l6ZSIuIEl0IGlzCisgICAgLy8gZXhwZWN0ZWQgdGhhdCB0aGUgc3RvcmFnZSBmb3IgInBp
eGVscyIgY292ZXJzICg0ICogd2lkdGggKiBoZWlnaHQpIGJ5dGVzLgorICAgIC8vIFJldHVybnMg
dHJ1ZSBvbiBzdWNjZXNzLgorICAgIHZpcnR1YWwgYm9vbCByZWFkQmFja0ZyYW1lYnVmZmVyKHVu
c2lnbmVkIGNoYXIqIHBpeGVscywgc2l6ZV90IGJ1ZmZlclNpemUpID0gMDsKKworICAgIC8vIFJl
dHVybnMgdGhlIGlkIG9mIHRoZSB0ZXh0dXJlIHdoaWNoIGlzIHVzZWQgZm9yIHN0b3JpbmcgdGhl
IGNvbnRlbnRzIG9mCisgICAgLy8gdGhlIGZyYW1lYnVmZmVyIGFzc29jaWF0ZWQgd2l0aCB0aGlz
IGNvbnRleHQuIFRoaXMgdGV4dHVyZSBpcyBhY2Nlc3NpYmxlCisgICAgLy8gYnkgdGhlIGdwdS1i
YXNlZCBwYWdlIGNvbXBvc2l0b3IuCisgICAgdmlydHVhbCBXZWJHTElkIGdldFBsYXRmb3JtVGV4
dHVyZUlkKCkgPSAwOworCisgICAgLy8gQ29waWVzIHRoZSBjb250ZW50cyBvZiB0aGUgb2ZmLXNj
cmVlbiByZW5kZXIgdGFyZ2V0IHVzZWQgYnkgdGhlIFdlYkdMCisgICAgLy8gY29udGV4dCB0byB0
aGUgY29ycmVzcG9uZGluZyB0ZXh0dXJlIHVzZWQgYnkgdGhlIGNvbXBvc2l0b3IuCisgICAgdmly
dHVhbCB2b2lkIHByZXBhcmVUZXh0dXJlKCkgPSAwOworCisgICAgLy8gU3ludGhlc2l6ZXMgYW4g
T3BlbkdMIGVycm9yIHdoaWNoIHdpbGwgYmUgcmV0dXJuZWQgZnJvbSBhCisgICAgLy8gbGF0ZXIg
Y2FsbCB0byBnZXRFcnJvci4gVGhpcyBpcyB1c2VkIHRvIGVtdWxhdGUgT3BlbkdMIEVTCisgICAg
Ly8gMi4wIGJlaGF2aW9yIG9uIHRoZSBkZXNrdG9wIGFuZCB0byBlbmZvcmNlIGFkZGl0aW9uYWwg
ZXJyb3IKKyAgICAvLyBjaGVja2luZyBtYW5kYXRlZCBieSBXZWJHTC4KKyAgICAvLworICAgIC8v
IFBlciB0aGUgYmVoYXZpb3Igb2YgZ2xHZXRFcnJvciwgdGhpcyBzdG9yZXMgYXQgbW9zdCBvbmUK
KyAgICAvLyBpbnN0YW5jZSBvZiBhbnkgZ2l2ZW4gZXJyb3IsIGFuZCByZXR1cm5zIHRoZW0gZnJv
bSBjYWxscyB0bworICAgIC8vIGdldEVycm9yIGluIHRoZSBvcmRlciB0aGV5IHdlcmUgYWRkZWQu
CisgICAgdmlydHVhbCB2b2lkIHN5bnRoZXNpemVHTEVycm9yKFdHQzNEZW51bSkgPSAwOworCisg
ICAgdmlydHVhbCBib29sIGlzQ29udGV4dExvc3QoKSA9IDA7CisKKyAgICAvLyBHTF9DSFJPTUlV
TV9tYXBfc3ViCisgICAgdmlydHVhbCB2b2lkKiBtYXBCdWZmZXJTdWJEYXRhQ0hST01JVU0oV0dD
M0RlbnVtIHRhcmdldCwgV0dDM0RpbnRwdHIgb2Zmc2V0LCBXR0MzRHNpemVpcHRyIHNpemUsIFdH
QzNEZW51bSBhY2Nlc3MpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgdW5tYXBCdWZmZXJTdWJEYXRh
Q0hST01JVU0oY29uc3Qgdm9pZCopID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQqIG1hcFRleFN1Yklt
YWdlMkRDSFJPTUlVTShXR0MzRGVudW0gdGFyZ2V0LCBXR0MzRGludCBsZXZlbCwgV0dDM0RpbnQg
eG9mZnNldCwgV0dDM0RpbnQgeW9mZnNldCwgV0dDM0RzaXplaSB3aWR0aCwgV0dDM0RzaXplaSBo
ZWlnaHQsIFdHQzNEZW51bSBmb3JtYXQsIFdHQzNEZW51bSB0eXBlLCBXR0MzRGVudW0gYWNjZXNz
KSA9IDA7CisgICAgdmlydHVhbCB2b2lkIHVubWFwVGV4U3ViSW1hZ2UyRENIUk9NSVVNKGNvbnN0
IHZvaWQqKSA9IDA7CisKKyAgICAvLyBHTF9DSFJPTUlVTV9jb3B5X3RleHR1cmVfdG9fcGFyZW50
X3RleHR1cmUKKyAgICB2aXJ0dWFsIHZvaWQgY29weVRleHR1cmVUb1BhcmVudFRleHR1cmVDSFJP
TUlVTShXZWJHTElkIHRleHR1cmUsIFdlYkdMSWQgcGFyZW50VGV4dHVyZSkgPSAwOworCisgICAg
Ly8gR0xfQ0hST01JVU1fcmVxdWVzdF9leHRlbnNpb24KKyAgICB2aXJ0dWFsIFdlYlN0cmluZyBn
ZXRSZXF1ZXN0YWJsZUV4dGVuc2lvbnNDSFJPTUlVTSgpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQg
cmVxdWVzdEV4dGVuc2lvbkNIUk9NSVVNKGNvbnN0IGNoYXIqKSA9IDA7CisKKyAgICAvLyBHTF9D
SFJPTUlVTV9mcmFtZWJ1ZmZlcl9tdWx0aXNhbXBsZQorICAgIHZpcnR1YWwgdm9pZCBibGl0RnJh
bWVidWZmZXJDSFJPTUlVTShXR0MzRGludCBzcmNYMCwgV0dDM0RpbnQgc3JjWTAsIFdHQzNEaW50
IHNyY1gxLCBXR0MzRGludCBzcmNZMSwgV0dDM0RpbnQgZHN0WDAsIFdHQzNEaW50IGRzdFkwLCBX
R0MzRGludCBkc3RYMSwgV0dDM0RpbnQgZHN0WTEsIFdHQzNEYml0ZmllbGQgbWFzaywgV0dDM0Rl
bnVtIGZpbHRlcikgPSAwOworICAgIHZpcnR1YWwgdm9pZCByZW5kZXJidWZmZXJTdG9yYWdlTXVs
dGlzYW1wbGVDSFJPTUlVTShXR0MzRGVudW0gdGFyZ2V0LCBXR0MzRHNpemVpIHNhbXBsZXMsIFdH
QzNEZW51bSBpbnRlcm5hbGZvcm1hdCwgV0dDM0RzaXplaSB3aWR0aCwgV0dDM0RzaXplaSBoZWln
aHQpID0gMDsKKworICAgIC8vIFRoZSBlbnRyeSBwb2ludHMgYmVsb3cgbWFwIGRpcmVjdGx5IHRv
IHRoZSBPcGVuR0wgRVMgMi4wIEFQSS4KKyAgICAvLyBTZWU6IGh0dHA6Ly93d3cua2hyb25vcy5v
cmcvcmVnaXN0cnkvZ2xlcy8KKyAgICAvLyBhbmQ6IGh0dHA6Ly93d3cua2hyb25vcy5vcmcvb3Bl
bmdsZXMvc2RrL2RvY3MvbWFuLworICAgIHZpcnR1YWwgdm9pZCBhY3RpdmVUZXh0dXJlKFdHQzNE
ZW51bSB0ZXh0dXJlKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIGF0dGFjaFNoYWRlcihXZWJHTElk
IHByb2dyYW0sIFdlYkdMSWQgc2hhZGVyKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIGJpbmRBdHRy
aWJMb2NhdGlvbihXZWJHTElkIHByb2dyYW0sIFdHQzNEdWludCBpbmRleCwgY29uc3QgV0dDM0Rj
aGFyKiBuYW1lKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIGJpbmRCdWZmZXIoV0dDM0RlbnVtIHRh
cmdldCwgV2ViR0xJZCBidWZmZXIpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgYmluZEZyYW1lYnVm
ZmVyKFdHQzNEZW51bSB0YXJnZXQsIFdlYkdMSWQgZnJhbWVidWZmZXIpID0gMDsKKyAgICB2aXJ0
dWFsIHZvaWQgYmluZFJlbmRlcmJ1ZmZlcihXR0MzRGVudW0gdGFyZ2V0LCBXZWJHTElkIHJlbmRl
cmJ1ZmZlcikgPSAwOworICAgIHZpcnR1YWwgdm9pZCBiaW5kVGV4dHVyZShXR0MzRGVudW0gdGFy
Z2V0LCBXZWJHTElkIHRleHR1cmUpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgYmxlbmRDb2xvcihX
R0MzRGNsYW1wZiByZWQsIFdHQzNEY2xhbXBmIGdyZWVuLCBXR0MzRGNsYW1wZiBibHVlLCBXR0Mz
RGNsYW1wZiBhbHBoYSkgPSAwOworICAgIHZpcnR1YWwgdm9pZCBibGVuZEVxdWF0aW9uKFdHQzNE
ZW51bSBtb2RlKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIGJsZW5kRXF1YXRpb25TZXBhcmF0ZShX
R0MzRGVudW0gbW9kZVJHQiwgV0dDM0RlbnVtIG1vZGVBbHBoYSkgPSAwOworICAgIHZpcnR1YWwg
dm9pZCBibGVuZEZ1bmMoV0dDM0RlbnVtIHNmYWN0b3IsIFdHQzNEZW51bSBkZmFjdG9yKSA9IDA7
CisgICAgdmlydHVhbCB2b2lkIGJsZW5kRnVuY1NlcGFyYXRlKFdHQzNEZW51bSBzcmNSR0IsIFdH
QzNEZW51bSBkc3RSR0IsIFdHQzNEZW51bSBzcmNBbHBoYSwgV0dDM0RlbnVtIGRzdEFscGhhKSA9
IDA7CisKKyAgICB2aXJ0dWFsIHZvaWQgYnVmZmVyRGF0YShXR0MzRGVudW0gdGFyZ2V0LCBXR0Mz
RHNpemVpcHRyIHNpemUsIGNvbnN0IHZvaWQqIGRhdGEsIFdHQzNEZW51bSB1c2FnZSkgPSAwOwor
ICAgIHZpcnR1YWwgdm9pZCBidWZmZXJTdWJEYXRhKFdHQzNEZW51bSB0YXJnZXQsIFdHQzNEaW50
cHRyIG9mZnNldCwgV0dDM0RzaXplaXB0ciBzaXplLCBjb25zdCB2b2lkKiBkYXRhKSA9IDA7CisK
KyAgICB2aXJ0dWFsIFdHQzNEZW51bSBjaGVja0ZyYW1lYnVmZmVyU3RhdHVzKFdHQzNEZW51bSB0
YXJnZXQpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgY2xlYXIoV0dDM0RiaXRmaWVsZCBtYXNrKSA9
IDA7CisgICAgdmlydHVhbCB2b2lkIGNsZWFyQ29sb3IoV0dDM0RjbGFtcGYgcmVkLCBXR0MzRGNs
YW1wZiBncmVlbiwgV0dDM0RjbGFtcGYgYmx1ZSwgV0dDM0RjbGFtcGYgYWxwaGEpID0gMDsKKyAg
ICB2aXJ0dWFsIHZvaWQgY2xlYXJEZXB0aChXR0MzRGNsYW1wZiBkZXB0aCkgPSAwOworICAgIHZp
cnR1YWwgdm9pZCBjbGVhclN0ZW5jaWwoV0dDM0RpbnQgcykgPSAwOworICAgIHZpcnR1YWwgdm9p
ZCBjb2xvck1hc2soV0dDM0Rib29sZWFuIHJlZCwgV0dDM0Rib29sZWFuIGdyZWVuLCBXR0MzRGJv
b2xlYW4gYmx1ZSwgV0dDM0Rib29sZWFuIGFscGhhKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIGNv
bXBpbGVTaGFkZXIoV2ViR0xJZCBzaGFkZXIpID0gMDsKKworICAgIHZpcnR1YWwgdm9pZCBjb3B5
VGV4SW1hZ2UyRChXR0MzRGVudW0gdGFyZ2V0LCBXR0MzRGludCBsZXZlbCwgV0dDM0RlbnVtIGlu
dGVybmFsZm9ybWF0LCBXR0MzRGludCB4LCBXR0MzRGludCB5LCBXR0MzRHNpemVpIHdpZHRoLCBX
R0MzRHNpemVpIGhlaWdodCwgV0dDM0RpbnQgYm9yZGVyKSA9IDA7CisgICAgdmlydHVhbCB2b2lk
IGNvcHlUZXhTdWJJbWFnZTJEKFdHQzNEZW51bSB0YXJnZXQsIFdHQzNEaW50IGxldmVsLCBXR0Mz
RGludCB4b2Zmc2V0LCBXR0MzRGludCB5b2Zmc2V0LCBXR0MzRGludCB4LCBXR0MzRGludCB5LCBX
R0MzRHNpemVpIHdpZHRoLCBXR0MzRHNpemVpIGhlaWdodCkgPSAwOworICAgIHZpcnR1YWwgdm9p
ZCBjdWxsRmFjZShXR0MzRGVudW0gbW9kZSkgPSAwOworICAgIHZpcnR1YWwgdm9pZCBkZXB0aEZ1
bmMoV0dDM0RlbnVtIGZ1bmMpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgZGVwdGhNYXNrKFdHQzNE
Ym9vbGVhbiBmbGFnKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIGRlcHRoUmFuZ2UoV0dDM0RjbGFt
cGYgek5lYXIsIFdHQzNEY2xhbXBmIHpGYXIpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgZGV0YWNo
U2hhZGVyKFdlYkdMSWQgcHJvZ3JhbSwgV2ViR0xJZCBzaGFkZXIpID0gMDsKKyAgICB2aXJ0dWFs
IHZvaWQgZGlzYWJsZShXR0MzRGVudW0gY2FwKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIGRpc2Fi
bGVWZXJ0ZXhBdHRyaWJBcnJheShXR0MzRHVpbnQgaW5kZXgpID0gMDsKKyAgICB2aXJ0dWFsIHZv
aWQgZHJhd0FycmF5cyhXR0MzRGVudW0gbW9kZSwgV0dDM0RpbnQgZmlyc3QsIFdHQzNEc2l6ZWkg
Y291bnQpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgZHJhd0VsZW1lbnRzKFdHQzNEZW51bSBtb2Rl
LCBXR0MzRHNpemVpIGNvdW50LCBXR0MzRGVudW0gdHlwZSwgV0dDM0RpbnRwdHIgb2Zmc2V0KSA9
IDA7CisKKyAgICB2aXJ0dWFsIHZvaWQgZW5hYmxlKFdHQzNEZW51bSBjYXApID0gMDsKKyAgICB2
aXJ0dWFsIHZvaWQgZW5hYmxlVmVydGV4QXR0cmliQXJyYXkoV0dDM0R1aW50IGluZGV4KSA9IDA7
CisgICAgdmlydHVhbCB2b2lkIGZpbmlzaCgpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgZmx1c2go
KSA9IDA7CisgICAgdmlydHVhbCB2b2lkIGZyYW1lYnVmZmVyUmVuZGVyYnVmZmVyKFdHQzNEZW51
bSB0YXJnZXQsIFdHQzNEZW51bSBhdHRhY2htZW50LCBXR0MzRGVudW0gcmVuZGVyYnVmZmVydGFy
Z2V0LCBXZWJHTElkIHJlbmRlcmJ1ZmZlcikgPSAwOworICAgIHZpcnR1YWwgdm9pZCBmcmFtZWJ1
ZmZlclRleHR1cmUyRChXR0MzRGVudW0gdGFyZ2V0LCBXR0MzRGVudW0gYXR0YWNobWVudCwgV0dD
M0RlbnVtIHRleHRhcmdldCwgV2ViR0xJZCB0ZXh0dXJlLCBXR0MzRGludCBsZXZlbCkgPSAwOwor
ICAgIHZpcnR1YWwgdm9pZCBmcm9udEZhY2UoV0dDM0RlbnVtIG1vZGUpID0gMDsKKyAgICB2aXJ0
dWFsIHZvaWQgZ2VuZXJhdGVNaXBtYXAoV0dDM0RlbnVtIHRhcmdldCkgPSAwOworCisgICAgdmly
dHVhbCBib29sIGdldEFjdGl2ZUF0dHJpYihXZWJHTElkIHByb2dyYW0sIFdHQzNEdWludCBpbmRl
eCwgQWN0aXZlSW5mbyYpID0gMDsKKyAgICB2aXJ0dWFsIGJvb2wgZ2V0QWN0aXZlVW5pZm9ybShX
ZWJHTElkIHByb2dyYW0sIFdHQzNEdWludCBpbmRleCwgQWN0aXZlSW5mbyYpID0gMDsKKyAgICB2
aXJ0dWFsIHZvaWQgZ2V0QXR0YWNoZWRTaGFkZXJzKFdlYkdMSWQgcHJvZ3JhbSwgV0dDM0RzaXpl
aSBtYXhDb3VudCwgV0dDM0RzaXplaSogY291bnQsIFdlYkdMSWQqIHNoYWRlcnMpID0gMDsKKyAg
ICB2aXJ0dWFsIFdHQzNEaW50IGdldEF0dHJpYkxvY2F0aW9uKFdlYkdMSWQgcHJvZ3JhbSwgY29u
c3QgV0dDM0RjaGFyKiBuYW1lKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIGdldEJvb2xlYW52KFdH
QzNEZW51bSBwbmFtZSwgV0dDM0Rib29sZWFuKiB2YWx1ZSkgPSAwOworICAgIHZpcnR1YWwgdm9p
ZCBnZXRCdWZmZXJQYXJhbWV0ZXJpdihXR0MzRGVudW0gdGFyZ2V0LCBXR0MzRGVudW0gcG5hbWUs
IFdHQzNEaW50KiB2YWx1ZSkgPSAwOworICAgIHZpcnR1YWwgQXR0cmlidXRlcyBnZXRDb250ZXh0
QXR0cmlidXRlcygpID0gMDsKKyAgICB2aXJ0dWFsIFdHQzNEZW51bSBnZXRFcnJvcigpID0gMDsK
KyAgICB2aXJ0dWFsIHZvaWQgZ2V0RmxvYXR2KFdHQzNEZW51bSBwbmFtZSwgV0dDM0RmbG9hdCog
dmFsdWUpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgZ2V0RnJhbWVidWZmZXJBdHRhY2htZW50UGFy
YW1ldGVyaXYoV0dDM0RlbnVtIHRhcmdldCwgV0dDM0RlbnVtIGF0dGFjaG1lbnQsIFdHQzNEZW51
bSBwbmFtZSwgV0dDM0RpbnQqIHZhbHVlKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIGdldEludGVn
ZXJ2KFdHQzNEZW51bSBwbmFtZSwgV0dDM0RpbnQqIHZhbHVlKSA9IDA7CisgICAgdmlydHVhbCB2
b2lkIGdldFByb2dyYW1pdihXZWJHTElkIHByb2dyYW0sIFdHQzNEZW51bSBwbmFtZSwgV0dDM0Rp
bnQqIHZhbHVlKSA9IDA7CisgICAgdmlydHVhbCBXZWJTdHJpbmcgZ2V0UHJvZ3JhbUluZm9Mb2co
V2ViR0xJZCBwcm9ncmFtKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIGdldFJlbmRlcmJ1ZmZlclBh
cmFtZXRlcml2KFdHQzNEZW51bSB0YXJnZXQsIFdHQzNEZW51bSBwbmFtZSwgV0dDM0RpbnQqIHZh
bHVlKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIGdldFNoYWRlcml2KFdlYkdMSWQgc2hhZGVyLCBX
R0MzRGVudW0gcG5hbWUsIFdHQzNEaW50KiB2YWx1ZSkgPSAwOworICAgIHZpcnR1YWwgV2ViU3Ry
aW5nIGdldFNoYWRlckluZm9Mb2coV2ViR0xJZCBzaGFkZXIpID0gMDsKKworICAgIC8vIFRCRAor
ICAgIC8vIHZvaWQgZ2xHZXRTaGFkZXJQcmVjaXNpb25Gb3JtYXQgKEdMZW51bSBzaGFkZXJ0eXBl
LCBHTGVudW0gcHJlY2lzaW9udHlwZSwgR0xpbnQqIHJhbmdlLCBHTGludCogcHJlY2lzaW9uKTsK
KworICAgIHZpcnR1YWwgV2ViU3RyaW5nIGdldFNoYWRlclNvdXJjZShXZWJHTElkIHNoYWRlcikg
PSAwOworICAgIHZpcnR1YWwgV2ViU3RyaW5nIGdldFN0cmluZyhXR0MzRGVudW0gbmFtZSkgPSAw
OworICAgIHZpcnR1YWwgdm9pZCBnZXRUZXhQYXJhbWV0ZXJmdihXR0MzRGVudW0gdGFyZ2V0LCBX
R0MzRGVudW0gcG5hbWUsIFdHQzNEZmxvYXQqIHZhbHVlKSA9IDA7CisgICAgdmlydHVhbCB2b2lk
IGdldFRleFBhcmFtZXRlcml2KFdHQzNEZW51bSB0YXJnZXQsIFdHQzNEZW51bSBwbmFtZSwgV0dD
M0RpbnQqIHZhbHVlKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIGdldFVuaWZvcm1mdihXZWJHTElk
IHByb2dyYW0sIFdHQzNEaW50IGxvY2F0aW9uLCBXR0MzRGZsb2F0KiB2YWx1ZSkgPSAwOworICAg
IHZpcnR1YWwgdm9pZCBnZXRVbmlmb3JtaXYoV2ViR0xJZCBwcm9ncmFtLCBXR0MzRGludCBsb2Nh
dGlvbiwgV0dDM0RpbnQqIHZhbHVlKSA9IDA7CisgICAgdmlydHVhbCBXR0MzRGludCBnZXRVbmlm
b3JtTG9jYXRpb24oV2ViR0xJZCBwcm9ncmFtLCBjb25zdCBXR0MzRGNoYXIqIG5hbWUpID0gMDsK
KyAgICB2aXJ0dWFsIHZvaWQgZ2V0VmVydGV4QXR0cmliZnYoV0dDM0R1aW50IGluZGV4LCBXR0Mz
RGVudW0gcG5hbWUsIFdHQzNEZmxvYXQqIHZhbHVlKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIGdl
dFZlcnRleEF0dHJpYml2KFdHQzNEdWludCBpbmRleCwgV0dDM0RlbnVtIHBuYW1lLCBXR0MzRGlu
dCogdmFsdWUpID0gMDsKKyAgICB2aXJ0dWFsIFdHQzNEc2l6ZWlwdHIgZ2V0VmVydGV4QXR0cmli
T2Zmc2V0KFdHQzNEdWludCBpbmRleCwgV0dDM0RlbnVtIHBuYW1lKSA9IDA7CisKKyAgICB2aXJ0
dWFsIHZvaWQgaGludChXR0MzRGVudW0gdGFyZ2V0LCBXR0MzRGVudW0gbW9kZSkgPSAwOworICAg
IHZpcnR1YWwgV0dDM0Rib29sZWFuIGlzQnVmZmVyKFdlYkdMSWQgYnVmZmVyKSA9IDA7CisgICAg
dmlydHVhbCBXR0MzRGJvb2xlYW4gaXNFbmFibGVkKFdHQzNEZW51bSBjYXApID0gMDsKKyAgICB2
aXJ0dWFsIFdHQzNEYm9vbGVhbiBpc0ZyYW1lYnVmZmVyKFdlYkdMSWQgZnJhbWVidWZmZXIpID0g
MDsKKyAgICB2aXJ0dWFsIFdHQzNEYm9vbGVhbiBpc1Byb2dyYW0oV2ViR0xJZCBwcm9ncmFtKSA9
IDA7CisgICAgdmlydHVhbCBXR0MzRGJvb2xlYW4gaXNSZW5kZXJidWZmZXIoV2ViR0xJZCByZW5k
ZXJidWZmZXIpID0gMDsKKyAgICB2aXJ0dWFsIFdHQzNEYm9vbGVhbiBpc1NoYWRlcihXZWJHTElk
IHNoYWRlcikgPSAwOworICAgIHZpcnR1YWwgV0dDM0Rib29sZWFuIGlzVGV4dHVyZShXZWJHTElk
IHRleHR1cmUpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgbGluZVdpZHRoKFdHQzNEZmxvYXQpID0g
MDsKKyAgICB2aXJ0dWFsIHZvaWQgbGlua1Byb2dyYW0oV2ViR0xJZCBwcm9ncmFtKSA9IDA7Cisg
ICAgdmlydHVhbCB2b2lkIHBpeGVsU3RvcmVpKFdHQzNEZW51bSBwbmFtZSwgV0dDM0RpbnQgcGFy
YW0pID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgcG9seWdvbk9mZnNldChXR0MzRGZsb2F0IGZhY3Rv
ciwgV0dDM0RmbG9hdCB1bml0cykgPSAwOworCisgICAgdmlydHVhbCB2b2lkIHJlYWRQaXhlbHMo
V0dDM0RpbnQgeCwgV0dDM0RpbnQgeSwgV0dDM0RzaXplaSB3aWR0aCwgV0dDM0RzaXplaSBoZWln
aHQsIFdHQzNEZW51bSBmb3JtYXQsIFdHQzNEZW51bSB0eXBlLCB2b2lkKiBwaXhlbHMpID0gMDsK
KworICAgIHZpcnR1YWwgdm9pZCByZWxlYXNlU2hhZGVyQ29tcGlsZXIoKSA9IDA7CisKKyAgICB2
aXJ0dWFsIHZvaWQgcmVuZGVyYnVmZmVyU3RvcmFnZShXR0MzRGVudW0gdGFyZ2V0LCBXR0MzRGVu
dW0gaW50ZXJuYWxmb3JtYXQsIFdHQzNEc2l6ZWkgd2lkdGgsIFdHQzNEc2l6ZWkgaGVpZ2h0KSA9
IDA7CisgICAgdmlydHVhbCB2b2lkIHNhbXBsZUNvdmVyYWdlKFdHQzNEY2xhbXBmIHZhbHVlLCBX
R0MzRGJvb2xlYW4gaW52ZXJ0KSA9IDA7CisgICAgdmlydHVhbCB2b2lkIHNjaXNzb3IoV0dDM0Rp
bnQgeCwgV0dDM0RpbnQgeSwgV0dDM0RzaXplaSB3aWR0aCwgV0dDM0RzaXplaSBoZWlnaHQpID0g
MDsKKyAgICB2aXJ0dWFsIHZvaWQgc2hhZGVyU291cmNlKFdlYkdMSWQgc2hhZGVyLCBjb25zdCBX
R0MzRGNoYXIqIHN0cmluZykgPSAwOworICAgIHZpcnR1YWwgdm9pZCBzdGVuY2lsRnVuYyhXR0Mz
RGVudW0gZnVuYywgV0dDM0RpbnQgcmVmLCBXR0MzRHVpbnQgbWFzaykgPSAwOworICAgIHZpcnR1
YWwgdm9pZCBzdGVuY2lsRnVuY1NlcGFyYXRlKFdHQzNEZW51bSBmYWNlLCBXR0MzRGVudW0gZnVu
YywgV0dDM0RpbnQgcmVmLCBXR0MzRHVpbnQgbWFzaykgPSAwOworICAgIHZpcnR1YWwgdm9pZCBz
dGVuY2lsTWFzayhXR0MzRHVpbnQgbWFzaykgPSAwOworICAgIHZpcnR1YWwgdm9pZCBzdGVuY2ls
TWFza1NlcGFyYXRlKFdHQzNEZW51bSBmYWNlLCBXR0MzRHVpbnQgbWFzaykgPSAwOworICAgIHZp
cnR1YWwgdm9pZCBzdGVuY2lsT3AoV0dDM0RlbnVtIGZhaWwsIFdHQzNEZW51bSB6ZmFpbCwgV0dD
M0RlbnVtIHpwYXNzKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIHN0ZW5jaWxPcFNlcGFyYXRlKFdH
QzNEZW51bSBmYWNlLCBXR0MzRGVudW0gZmFpbCwgV0dDM0RlbnVtIHpmYWlsLCBXR0MzRGVudW0g
enBhc3MpID0gMDsKKworICAgIHZpcnR1YWwgdm9pZCB0ZXhJbWFnZTJEKFdHQzNEZW51bSB0YXJn
ZXQsIFdHQzNEaW50IGxldmVsLCBXR0MzRGVudW0gaW50ZXJuYWxmb3JtYXQsIFdHQzNEc2l6ZWkg
d2lkdGgsIFdHQzNEc2l6ZWkgaGVpZ2h0LCBXR0MzRGludCBib3JkZXIsIFdHQzNEZW51bSBmb3Jt
YXQsIFdHQzNEZW51bSB0eXBlLCBjb25zdCB2b2lkKiBwaXhlbHMpID0gMDsKKworICAgIHZpcnR1
YWwgdm9pZCB0ZXhQYXJhbWV0ZXJmKFdHQzNEZW51bSB0YXJnZXQsIFdHQzNEZW51bSBwbmFtZSwg
V0dDM0RmbG9hdCBwYXJhbSkgPSAwOworICAgIHZpcnR1YWwgdm9pZCB0ZXhQYXJhbWV0ZXJpKFdH
QzNEZW51bSB0YXJnZXQsIFdHQzNEZW51bSBwbmFtZSwgV0dDM0RpbnQgcGFyYW0pID0gMDsKKwor
ICAgIHZpcnR1YWwgdm9pZCB0ZXhTdWJJbWFnZTJEKFdHQzNEZW51bSB0YXJnZXQsIFdHQzNEaW50
IGxldmVsLCBXR0MzRGludCB4b2Zmc2V0LCBXR0MzRGludCB5b2Zmc2V0LCBXR0MzRHNpemVpIHdp
ZHRoLCBXR0MzRHNpemVpIGhlaWdodCwgV0dDM0RlbnVtIGZvcm1hdCwgV0dDM0RlbnVtIHR5cGUs
IGNvbnN0IHZvaWQqIHBpeGVscykgPSAwOworCisgICAgdmlydHVhbCB2b2lkIHVuaWZvcm0xZihX
R0MzRGludCBsb2NhdGlvbiwgV0dDM0RmbG9hdCB4KSA9IDA7CisgICAgdmlydHVhbCB2b2lkIHVu
aWZvcm0xZnYoV0dDM0RpbnQgbG9jYXRpb24sIFdHQzNEc2l6ZWkgY291bnQsIGNvbnN0IFdHQzNE
ZmxvYXQqIHYpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgdW5pZm9ybTFpKFdHQzNEaW50IGxvY2F0
aW9uLCBXR0MzRGludCB4KSA9IDA7CisgICAgdmlydHVhbCB2b2lkIHVuaWZvcm0xaXYoV0dDM0Rp
bnQgbG9jYXRpb24sIFdHQzNEc2l6ZWkgY291bnQsIGNvbnN0IFdHQzNEaW50KiB2KSA9IDA7Cisg
ICAgdmlydHVhbCB2b2lkIHVuaWZvcm0yZihXR0MzRGludCBsb2NhdGlvbiwgV0dDM0RmbG9hdCB4
LCBXR0MzRGZsb2F0IHkpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgdW5pZm9ybTJmdihXR0MzRGlu
dCBsb2NhdGlvbiwgV0dDM0RzaXplaSBjb3VudCwgY29uc3QgV0dDM0RmbG9hdCogdikgPSAwOwor
ICAgIHZpcnR1YWwgdm9pZCB1bmlmb3JtMmkoV0dDM0RpbnQgbG9jYXRpb24sIFdHQzNEaW50IHgs
IFdHQzNEaW50IHkpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgdW5pZm9ybTJpdihXR0MzRGludCBs
b2NhdGlvbiwgV0dDM0RzaXplaSBjb3VudCwgY29uc3QgV0dDM0RpbnQqIHYpID0gMDsKKyAgICB2
aXJ0dWFsIHZvaWQgdW5pZm9ybTNmKFdHQzNEaW50IGxvY2F0aW9uLCBXR0MzRGZsb2F0IHgsIFdH
QzNEZmxvYXQgeSwgV0dDM0RmbG9hdCB6KSA9IDA7CisgICAgdmlydHVhbCB2b2lkIHVuaWZvcm0z
ZnYoV0dDM0RpbnQgbG9jYXRpb24sIFdHQzNEc2l6ZWkgY291bnQsIGNvbnN0IFdHQzNEZmxvYXQq
IHYpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgdW5pZm9ybTNpKFdHQzNEaW50IGxvY2F0aW9uLCBX
R0MzRGludCB4LCBXR0MzRGludCB5LCBXR0MzRGludCB6KSA9IDA7CisgICAgdmlydHVhbCB2b2lk
IHVuaWZvcm0zaXYoV0dDM0RpbnQgbG9jYXRpb24sIFdHQzNEc2l6ZWkgY291bnQsIGNvbnN0IFdH
QzNEaW50KiB2KSA9IDA7CisgICAgdmlydHVhbCB2b2lkIHVuaWZvcm00ZihXR0MzRGludCBsb2Nh
dGlvbiwgV0dDM0RmbG9hdCB4LCBXR0MzRGZsb2F0IHksIFdHQzNEZmxvYXQgeiwgV0dDM0RmbG9h
dCB3KSA9IDA7CisgICAgdmlydHVhbCB2b2lkIHVuaWZvcm00ZnYoV0dDM0RpbnQgbG9jYXRpb24s
IFdHQzNEc2l6ZWkgY291bnQsIGNvbnN0IFdHQzNEZmxvYXQqIHYpID0gMDsKKyAgICB2aXJ0dWFs
IHZvaWQgdW5pZm9ybTRpKFdHQzNEaW50IGxvY2F0aW9uLCBXR0MzRGludCB4LCBXR0MzRGludCB5
LCBXR0MzRGludCB6LCBXR0MzRGludCB3KSA9IDA7CisgICAgdmlydHVhbCB2b2lkIHVuaWZvcm00
aXYoV0dDM0RpbnQgbG9jYXRpb24sIFdHQzNEc2l6ZWkgY291bnQsIGNvbnN0IFdHQzNEaW50KiB2
KSA9IDA7CisgICAgdmlydHVhbCB2b2lkIHVuaWZvcm1NYXRyaXgyZnYoV0dDM0RpbnQgbG9jYXRp
b24sIFdHQzNEc2l6ZWkgY291bnQsIFdHQzNEYm9vbGVhbiB0cmFuc3Bvc2UsIGNvbnN0IFdHQzNE
ZmxvYXQqIHZhbHVlKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIHVuaWZvcm1NYXRyaXgzZnYoV0dD
M0RpbnQgbG9jYXRpb24sIFdHQzNEc2l6ZWkgY291bnQsIFdHQzNEYm9vbGVhbiB0cmFuc3Bvc2Us
IGNvbnN0IFdHQzNEZmxvYXQqIHZhbHVlKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIHVuaWZvcm1N
YXRyaXg0ZnYoV0dDM0RpbnQgbG9jYXRpb24sIFdHQzNEc2l6ZWkgY291bnQsIFdHQzNEYm9vbGVh
biB0cmFuc3Bvc2UsIGNvbnN0IFdHQzNEZmxvYXQqIHZhbHVlKSA9IDA7CisKKyAgICB2aXJ0dWFs
IHZvaWQgdXNlUHJvZ3JhbShXZWJHTElkIHByb2dyYW0pID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQg
dmFsaWRhdGVQcm9ncmFtKFdlYkdMSWQgcHJvZ3JhbSkgPSAwOworCisgICAgdmlydHVhbCB2b2lk
IHZlcnRleEF0dHJpYjFmKFdHQzNEdWludCBpbmRleCwgV0dDM0RmbG9hdCB4KSA9IDA7CisgICAg
dmlydHVhbCB2b2lkIHZlcnRleEF0dHJpYjFmdihXR0MzRHVpbnQgaW5kZXgsIGNvbnN0IFdHQzNE
ZmxvYXQqIHZhbHVlcykgPSAwOworICAgIHZpcnR1YWwgdm9pZCB2ZXJ0ZXhBdHRyaWIyZihXR0Mz
RHVpbnQgaW5kZXgsIFdHQzNEZmxvYXQgeCwgV0dDM0RmbG9hdCB5KSA9IDA7CisgICAgdmlydHVh
bCB2b2lkIHZlcnRleEF0dHJpYjJmdihXR0MzRHVpbnQgaW5kZXgsIGNvbnN0IFdHQzNEZmxvYXQq
IHZhbHVlcykgPSAwOworICAgIHZpcnR1YWwgdm9pZCB2ZXJ0ZXhBdHRyaWIzZihXR0MzRHVpbnQg
aW5kZXgsIFdHQzNEZmxvYXQgeCwgV0dDM0RmbG9hdCB5LCBXR0MzRGZsb2F0IHopID0gMDsKKyAg
ICB2aXJ0dWFsIHZvaWQgdmVydGV4QXR0cmliM2Z2KFdHQzNEdWludCBpbmRleCwgY29uc3QgV0dD
M0RmbG9hdCogdmFsdWVzKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIHZlcnRleEF0dHJpYjRmKFdH
QzNEdWludCBpbmRleCwgV0dDM0RmbG9hdCB4LCBXR0MzRGZsb2F0IHksIFdHQzNEZmxvYXQgeiwg
V0dDM0RmbG9hdCB3KSA9IDA7CisgICAgdmlydHVhbCB2b2lkIHZlcnRleEF0dHJpYjRmdihXR0Mz
RHVpbnQgaW5kZXgsIGNvbnN0IFdHQzNEZmxvYXQqIHZhbHVlcykgPSAwOworICAgIHZpcnR1YWwg
dm9pZCB2ZXJ0ZXhBdHRyaWJQb2ludGVyKFdHQzNEdWludCBpbmRleCwgV0dDM0RpbnQgc2l6ZSwg
V0dDM0RlbnVtIHR5cGUsIFdHQzNEYm9vbGVhbiBub3JtYWxpemVkLAorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIFdHQzNEc2l6ZWkgc3RyaWRlLCBXR0MzRGludHB0ciBvZmZz
ZXQpID0gMDsKKworICAgIHZpcnR1YWwgdm9pZCB2aWV3cG9ydChXR0MzRGludCB4LCBXR0MzRGlu
dCB5LCBXR0MzRHNpemVpIHdpZHRoLCBXR0MzRHNpemVpIGhlaWdodCkgPSAwOworCisgICAgLy8g
U3VwcG9ydCBmb3IgYnVmZmVyIGNyZWF0aW9uIGFuZCBkZWxldGlvbi4KKyAgICB2aXJ0dWFsIFdl
YkdMSWQgY3JlYXRlQnVmZmVyKCkgPSAwOworICAgIHZpcnR1YWwgV2ViR0xJZCBjcmVhdGVGcmFt
ZWJ1ZmZlcigpID0gMDsKKyAgICB2aXJ0dWFsIFdlYkdMSWQgY3JlYXRlUHJvZ3JhbSgpID0gMDsK
KyAgICB2aXJ0dWFsIFdlYkdMSWQgY3JlYXRlUmVuZGVyYnVmZmVyKCkgPSAwOworICAgIHZpcnR1
YWwgV2ViR0xJZCBjcmVhdGVTaGFkZXIoV0dDM0RlbnVtKSA9IDA7CisgICAgdmlydHVhbCBXZWJH
TElkIGNyZWF0ZVRleHR1cmUoKSA9IDA7CisKKyAgICB2aXJ0dWFsIHZvaWQgZGVsZXRlQnVmZmVy
KFdlYkdMSWQpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgZGVsZXRlRnJhbWVidWZmZXIoV2ViR0xJ
ZCkgPSAwOworICAgIHZpcnR1YWwgdm9pZCBkZWxldGVQcm9ncmFtKFdlYkdMSWQpID0gMDsKKyAg
ICB2aXJ0dWFsIHZvaWQgZGVsZXRlUmVuZGVyYnVmZmVyKFdlYkdMSWQpID0gMDsKKyAgICB2aXJ0
dWFsIHZvaWQgZGVsZXRlU2hhZGVyKFdlYkdMSWQpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgZGVs
ZXRlVGV4dHVyZShXZWJHTElkKSA9IDA7Cit9OworCisjZWxzZSAvLyBVU0VfV0dDM0RfVFlQRVMK
KworY2xhc3MgV2ViR3JhcGhpY3NDb250ZXh0M0QgOiBwdWJsaWMgV2ViTm9uQ29weWFibGUgewor
cHVibGljOgorICAgIC8vIFJldHVybiB2YWx1ZSBmcm9tIGdldEFjdGl2ZVVuaWZvcm0gYW5kIGdl
dEFjdGl2ZUF0dHJpYi4KKyAgICBzdHJ1Y3QgQWN0aXZlSW5mbyB7CisgICAgICAgIFdlYlN0cmlu
ZyBuYW1lOwogICAgICAgICB1bnNpZ25lZCB0eXBlOwogICAgICAgICBpbnQgc2l6ZTsKICAgICB9
OwpAQCAtMzMwLDYgKzYxMSw4IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgZGVsZXRlVGV4
dHVyZSh1bnNpZ25lZCkgPSAwOwogfTsKIAorI2VuZGlmIC8vIFVTRV9XR0MzRF9UWVBFUworCiB9
IC8vIG5hbWVzcGFjZSBXZWJLaXQKIAogI2VuZGlmCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>80259</attachid>
            <date>2011-01-26 16:25:09 -0800</date>
            <delta_ts>2011-01-27 11:06:24 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-51947-20110126162508.patch</filename>
            <type>text/plain</type>
            <size>17972</size>
            <attacher name="Zhenyao Mo">zmo</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCShyZXZpc2lvbiA3NjcyOSkKKysrIFNvdXJj
ZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTQg
QEAKKzIwMTEtMDEtMjYgIFpoZW55YW8gTW8gIDx6bW9AZ29vZ2xlLmNvbT4KKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBEZWZpbmUgR0MzRCB0eXBlcyB0
byBtYXRjaCBHTCB0eXBlcyBhbmQgdXNlIHRoZW0gaW4gV2ViR3JhcGhpY3NDb250ZXh0M0QKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTUxOTQ3CisKKyAg
ICAgICAgKiBwdWJsaWMvV2ViR3JhcGhpY3NDb250ZXh0M0QuaDoKKyAgICAgICAgKFdlYktpdDo6
V2ViR3JhcGhpY3NDb250ZXh0M0Q6OkF0dHJpYnV0ZXM6OkF0dHJpYnV0ZXMpOgorICAgICAgICAo
V2ViS2l0OjpXZWJHcmFwaGljc0NvbnRleHQzRDo6fldlYkdyYXBoaWNzQ29udGV4dDNEKToKKwog
MjAxMS0wMS0yNiAgS2VubmV0aCBSdXNzZWxsICA8a2JyQGdvb2dsZS5jb20+CiAKICAgICAgICAg
UmV2aWV3ZWQgYnkgSmFtZXMgUm9iaW5zb24uCkluZGV4OiBTb3VyY2UvV2ViS2l0L2Nocm9taXVt
L3B1YmxpYy9XZWJHcmFwaGljc0NvbnRleHQzRC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJL
aXQvY2hyb21pdW0vcHVibGljL1dlYkdyYXBoaWNzQ29udGV4dDNELmgJKHJldmlzaW9uIDc2NzI5
KQorKysgU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViR3JhcGhpY3NDb250ZXh0M0Qu
aAkod29ya2luZyBjb3B5KQpAQCAtMzcsOCArMzcsMjYgQEAKIAogbmFtZXNwYWNlIFdlYktpdCB7
CiAKKy8vIFdHQzNEIHR5cGVzIG1hdGNoIHRoZSBjb3JyZXNwb25kaW5nIEdMIHR5cGVzIGFzIGRl
ZmluZWQgaW4gT3BlbkdMIEVTIDIuMAorLy8gaGVhZGVyIGZpbGUgZ2wyLmggZnJvbSBraHJvbm9z
Lm9yZy4KK3R5cGVkZWYgY2hhciBXR0MzRGNoYXI7Cit0eXBlZGVmIHVuc2lnbmVkIGludCBXR0Mz
RGVudW07Cit0eXBlZGVmIHVuc2lnbmVkIGNoYXIgV0dDM0Rib29sZWFuOwordHlwZWRlZiB1bnNp
Z25lZCBpbnQgV0dDM0RiaXRmaWVsZDsKK3R5cGVkZWYgc2lnbmVkIGNoYXIgV0dDM0RieXRlOwor
dHlwZWRlZiB1bnNpZ25lZCBjaGFyIFdHQzNEdWJ5dGU7Cit0eXBlZGVmIHNob3J0IFdHQzNEc2hv
cnQ7Cit0eXBlZGVmIHVuc2lnbmVkIHNob3J0IFdHQzNEdXNob3J0OwordHlwZWRlZiBpbnQgV0dD
M0RpbnQ7Cit0eXBlZGVmIGludCBXR0MzRHNpemVpOwordHlwZWRlZiB1bnNpZ25lZCBpbnQgV0dD
M0R1aW50OwordHlwZWRlZiBmbG9hdCBXR0MzRGZsb2F0OwordHlwZWRlZiBmbG9hdCBXR0MzRGNs
YW1wZjsKK3R5cGVkZWYgc2lnbmVkIGxvbmcgaW50IFdHQzNEaW50cHRyOwordHlwZWRlZiBzaWdu
ZWQgbG9uZyBpbnQgV0dDM0RzaXplaXB0cjsKKwogLy8gVHlwZWRlZiBmb3Igc2VydmVyLXNpZGUg
b2JqZWN0cyBsaWtlIE9wZW5HTCB0ZXh0dXJlcyBhbmQgcHJvZ3JhbSBvYmplY3RzLgotdHlwZWRl
ZiB1bnNpZ25lZCBpbnQgV2ViR0xJZDsKK3R5cGVkZWYgV0dDM0R1aW50IFdlYkdMSWQ7CiAKIGNs
YXNzIFdlYlZpZXc7CiAKQEAgLTQ3LDYgKzY1LDI3MSBAQCBjbGFzcyBXZWJWaWV3OwogLy8gbWV0
aG9kcyBleHBvc2VkIG9uIHRoaXMgaW50ZXJmYWNlIG1hcCBkaXJlY3RseSB0byBlbnRyeSBwb2lu
dHMgaW4KIC8vIHRoZSBPcGVuR0wgRVMgMi4wIEFQSS4KIAorI2lmIGRlZmluZWQoVVNFX1dHQzNE
X1RZUEVTKQorCitjbGFzcyBXZWJHcmFwaGljc0NvbnRleHQzRCA6IHB1YmxpYyBXZWJOb25Db3B5
YWJsZSB7CitwdWJsaWM6CisgICAgLy8gUmV0dXJuIHZhbHVlIGZyb20gZ2V0QWN0aXZlVW5pZm9y
bSBhbmQgZ2V0QWN0aXZlQXR0cmliLgorICAgIHN0cnVjdCBBY3RpdmVJbmZvIHsKKyAgICAgICAg
V2ViU3RyaW5nIG5hbWU7CisgICAgICAgIFdHQzNEZW51bSB0eXBlOworICAgICAgICBXR0MzRGlu
dCBzaXplOworICAgIH07CisKKyAgICAvLyBDb250ZXh0IGNyZWF0aW9uIGF0dHJpYnV0ZXMuCisg
ICAgc3RydWN0IEF0dHJpYnV0ZXMgeworICAgICAgICBBdHRyaWJ1dGVzKCkKKyAgICAgICAgICAg
IDogYWxwaGEodHJ1ZSkKKyAgICAgICAgICAgICwgZGVwdGgodHJ1ZSkKKyAgICAgICAgICAgICwg
c3RlbmNpbCh0cnVlKQorICAgICAgICAgICAgLCBhbnRpYWxpYXModHJ1ZSkKKyAgICAgICAgICAg
ICwgcHJlbXVsdGlwbGllZEFscGhhKHRydWUpCisgICAgICAgICAgICAsIGNhblJlY292ZXJGcm9t
Q29udGV4dExvc3ModHJ1ZSkKKyAgICAgICAgeworICAgICAgICB9CisKKyAgICAgICAgYm9vbCBh
bHBoYTsKKyAgICAgICAgYm9vbCBkZXB0aDsKKyAgICAgICAgYm9vbCBzdGVuY2lsOworICAgICAg
ICBib29sIGFudGlhbGlhczsKKyAgICAgICAgYm9vbCBwcmVtdWx0aXBsaWVkQWxwaGE7CisgICAg
ICAgIGJvb2wgY2FuUmVjb3ZlckZyb21Db250ZXh0TG9zczsKKyAgICB9OworCisgICAgLy8gVGhp
cyBkZXN0cnVjdG9yIG5lZWRzIHRvIGJlIHB1YmxpYyBzbyB0aGF0IHVzaW5nIGNsYXNzZXMgY2Fu
IGRlc3Ryb3kgaW5zdGFuY2VzIGlmIGluaXRpYWxpemF0aW9uIGZhaWxzLgorICAgIHZpcnR1YWwg
fldlYkdyYXBoaWNzQ29udGV4dDNEKCkge30KKworICAgIC8vIEluaXRpYWxpemVzIHRoZSBncmFw
aGljcyBjb250ZXh0OyBzaG91bGQgYmUgdGhlIGZpcnN0IG9wZXJhdGlvbiBwZXJmb3JtZWQKKyAg
ICAvLyBvbiBuZXdseS1jb25zdHJ1Y3RlZCBpbnN0YW5jZXMuIFJldHVybnMgdHJ1ZSBvbiBzdWNj
ZXNzLgorICAgIHZpcnR1YWwgYm9vbCBpbml0aWFsaXplKEF0dHJpYnV0ZXMsIFdlYlZpZXcqLCBi
b29sIHJlbmRlckRpcmVjdGx5VG9XZWJWaWV3KSA9IDA7CisKKyAgICAvLyBNYWtlcyB0aGUgT3Bl
bkdMIGNvbnRleHQgY3VycmVudCBvbiB0aGUgY3VycmVudCB0aHJlYWQuIFJldHVybnMgdHJ1ZSBv
bgorICAgIC8vIHN1Y2Nlc3MuCisgICAgdmlydHVhbCBib29sIG1ha2VDb250ZXh0Q3VycmVudCgp
ID0gMDsKKworICAgIC8vIFRoZSBzaXplIG9mIHRoZSByZWdpb24gaW50byB3aGljaCB0aGlzIFdl
YkdyYXBoaWNzQ29udGV4dDNEIGlzIHJlbmRlcmluZy4KKyAgICAvLyBSZXR1cm5zIHRoZSBsYXN0
IHZhbHVlcyBwYXNzZWQgdG8gcmVzaGFwZSgpLgorICAgIHZpcnR1YWwgaW50IHdpZHRoKCkgPSAw
OworICAgIHZpcnR1YWwgaW50IGhlaWdodCgpID0gMDsKKworICAgIC8vIFJlc2l6ZXMgdGhlIHJl
Z2lvbiBpbnRvIHdoaWNoIHRoaXMgV2ViR3JhcGhpY3NDb250ZXh0M0QgaXMgZHJhd2luZy4KKyAg
ICB2aXJ0dWFsIHZvaWQgcmVzaGFwZShpbnQgd2lkdGgsIGludCBoZWlnaHQpID0gMDsKKworICAg
IC8vIFF1ZXJ5IHdoZXRoZXIgaXQgaXMgYnVpbHQgb24gdG9wIG9mIGNvbXBsaWFudCBHTEVTMiBp
bXBsZW1lbnRhdGlvbi4KKyAgICB2aXJ0dWFsIGJvb2wgaXNHTEVTMkNvbXBsaWFudCgpID0gMDsK
KworICAgIC8vIEhlbHBlciBmb3Igc29mdHdhcmUgY29tcG9zaXRpbmcgcGF0aC4gUmVhZHMgYmFj
ayB0aGUgZnJhbWUgYnVmZmVyIGludG8KKyAgICAvLyB0aGUgbWVtb3J5IHJlZ2lvbiBwb2ludGVk
IHRvIGJ5ICJwaXhlbHMiIHdpdGggc2l6ZSAiYnVmZmVyU2l6ZSIuIEl0IGlzCisgICAgLy8gZXhw
ZWN0ZWQgdGhhdCB0aGUgc3RvcmFnZSBmb3IgInBpeGVscyIgY292ZXJzICg0ICogd2lkdGggKiBo
ZWlnaHQpIGJ5dGVzLgorICAgIC8vIFJldHVybnMgdHJ1ZSBvbiBzdWNjZXNzLgorICAgIHZpcnR1
YWwgYm9vbCByZWFkQmFja0ZyYW1lYnVmZmVyKHVuc2lnbmVkIGNoYXIqIHBpeGVscywgc2l6ZV90
IGJ1ZmZlclNpemUpID0gMDsKKworICAgIC8vIFJldHVybnMgdGhlIGlkIG9mIHRoZSB0ZXh0dXJl
IHdoaWNoIGlzIHVzZWQgZm9yIHN0b3JpbmcgdGhlIGNvbnRlbnRzIG9mCisgICAgLy8gdGhlIGZy
YW1lYnVmZmVyIGFzc29jaWF0ZWQgd2l0aCB0aGlzIGNvbnRleHQuIFRoaXMgdGV4dHVyZSBpcyBh
Y2Nlc3NpYmxlCisgICAgLy8gYnkgdGhlIGdwdS1iYXNlZCBwYWdlIGNvbXBvc2l0b3IuCisgICAg
dmlydHVhbCBXZWJHTElkIGdldFBsYXRmb3JtVGV4dHVyZUlkKCkgPSAwOworCisgICAgLy8gQ29w
aWVzIHRoZSBjb250ZW50cyBvZiB0aGUgb2ZmLXNjcmVlbiByZW5kZXIgdGFyZ2V0IHVzZWQgYnkg
dGhlIFdlYkdMCisgICAgLy8gY29udGV4dCB0byB0aGUgY29ycmVzcG9uZGluZyB0ZXh0dXJlIHVz
ZWQgYnkgdGhlIGNvbXBvc2l0b3IuCisgICAgdmlydHVhbCB2b2lkIHByZXBhcmVUZXh0dXJlKCkg
PSAwOworCisgICAgLy8gU3ludGhlc2l6ZXMgYW4gT3BlbkdMIGVycm9yIHdoaWNoIHdpbGwgYmUg
cmV0dXJuZWQgZnJvbSBhCisgICAgLy8gbGF0ZXIgY2FsbCB0byBnZXRFcnJvci4gVGhpcyBpcyB1
c2VkIHRvIGVtdWxhdGUgT3BlbkdMIEVTCisgICAgLy8gMi4wIGJlaGF2aW9yIG9uIHRoZSBkZXNr
dG9wIGFuZCB0byBlbmZvcmNlIGFkZGl0aW9uYWwgZXJyb3IKKyAgICAvLyBjaGVja2luZyBtYW5k
YXRlZCBieSBXZWJHTC4KKyAgICAvLworICAgIC8vIFBlciB0aGUgYmVoYXZpb3Igb2YgZ2xHZXRF
cnJvciwgdGhpcyBzdG9yZXMgYXQgbW9zdCBvbmUKKyAgICAvLyBpbnN0YW5jZSBvZiBhbnkgZ2l2
ZW4gZXJyb3IsIGFuZCByZXR1cm5zIHRoZW0gZnJvbSBjYWxscyB0bworICAgIC8vIGdldEVycm9y
IGluIHRoZSBvcmRlciB0aGV5IHdlcmUgYWRkZWQuCisgICAgdmlydHVhbCB2b2lkIHN5bnRoZXNp
emVHTEVycm9yKFdHQzNEZW51bSkgPSAwOworCisgICAgdmlydHVhbCBib29sIGlzQ29udGV4dExv
c3QoKSA9IDA7CisKKyAgICAvLyBHTF9DSFJPTUlVTV9tYXBfc3ViCisgICAgdmlydHVhbCB2b2lk
KiBtYXBCdWZmZXJTdWJEYXRhQ0hST01JVU0oV0dDM0RlbnVtIHRhcmdldCwgV0dDM0RpbnRwdHIg
b2Zmc2V0LCBXR0MzRHNpemVpcHRyIHNpemUsIFdHQzNEZW51bSBhY2Nlc3MpID0gMDsKKyAgICB2
aXJ0dWFsIHZvaWQgdW5tYXBCdWZmZXJTdWJEYXRhQ0hST01JVU0oY29uc3Qgdm9pZCopID0gMDsK
KyAgICB2aXJ0dWFsIHZvaWQqIG1hcFRleFN1YkltYWdlMkRDSFJPTUlVTShXR0MzRGVudW0gdGFy
Z2V0LCBXR0MzRGludCBsZXZlbCwgV0dDM0RpbnQgeG9mZnNldCwgV0dDM0RpbnQgeW9mZnNldCwg
V0dDM0RzaXplaSB3aWR0aCwgV0dDM0RzaXplaSBoZWlnaHQsIFdHQzNEZW51bSBmb3JtYXQsIFdH
QzNEZW51bSB0eXBlLCBXR0MzRGVudW0gYWNjZXNzKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIHVu
bWFwVGV4U3ViSW1hZ2UyRENIUk9NSVVNKGNvbnN0IHZvaWQqKSA9IDA7CisKKyAgICAvLyBHTF9D
SFJPTUlVTV9jb3B5X3RleHR1cmVfdG9fcGFyZW50X3RleHR1cmUKKyAgICB2aXJ0dWFsIHZvaWQg
Y29weVRleHR1cmVUb1BhcmVudFRleHR1cmVDSFJPTUlVTShXZWJHTElkIHRleHR1cmUsIFdlYkdM
SWQgcGFyZW50VGV4dHVyZSkgPSAwOworCisgICAgLy8gR0xfQ0hST01JVU1fcmVxdWVzdF9leHRl
bnNpb24KKyAgICB2aXJ0dWFsIFdlYlN0cmluZyBnZXRSZXF1ZXN0YWJsZUV4dGVuc2lvbnNDSFJP
TUlVTSgpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgcmVxdWVzdEV4dGVuc2lvbkNIUk9NSVVNKGNv
bnN0IGNoYXIqKSA9IDA7CisKKyAgICAvLyBHTF9DSFJPTUlVTV9mcmFtZWJ1ZmZlcl9tdWx0aXNh
bXBsZQorICAgIHZpcnR1YWwgdm9pZCBibGl0RnJhbWVidWZmZXJDSFJPTUlVTShXR0MzRGludCBz
cmNYMCwgV0dDM0RpbnQgc3JjWTAsIFdHQzNEaW50IHNyY1gxLCBXR0MzRGludCBzcmNZMSwgV0dD
M0RpbnQgZHN0WDAsIFdHQzNEaW50IGRzdFkwLCBXR0MzRGludCBkc3RYMSwgV0dDM0RpbnQgZHN0
WTEsIFdHQzNEYml0ZmllbGQgbWFzaywgV0dDM0RlbnVtIGZpbHRlcikgPSAwOworICAgIHZpcnR1
YWwgdm9pZCByZW5kZXJidWZmZXJTdG9yYWdlTXVsdGlzYW1wbGVDSFJPTUlVTShXR0MzRGVudW0g
dGFyZ2V0LCBXR0MzRHNpemVpIHNhbXBsZXMsIFdHQzNEZW51bSBpbnRlcm5hbGZvcm1hdCwgV0dD
M0RzaXplaSB3aWR0aCwgV0dDM0RzaXplaSBoZWlnaHQpID0gMDsKKworICAgIC8vIFRoZSBlbnRy
eSBwb2ludHMgYmVsb3cgbWFwIGRpcmVjdGx5IHRvIHRoZSBPcGVuR0wgRVMgMi4wIEFQSS4KKyAg
ICAvLyBTZWU6IGh0dHA6Ly93d3cua2hyb25vcy5vcmcvcmVnaXN0cnkvZ2xlcy8KKyAgICAvLyBh
bmQ6IGh0dHA6Ly93d3cua2hyb25vcy5vcmcvb3BlbmdsZXMvc2RrL2RvY3MvbWFuLworICAgIHZp
cnR1YWwgdm9pZCBhY3RpdmVUZXh0dXJlKFdHQzNEZW51bSB0ZXh0dXJlKSA9IDA7CisgICAgdmly
dHVhbCB2b2lkIGF0dGFjaFNoYWRlcihXZWJHTElkIHByb2dyYW0sIFdlYkdMSWQgc2hhZGVyKSA9
IDA7CisgICAgdmlydHVhbCB2b2lkIGJpbmRBdHRyaWJMb2NhdGlvbihXZWJHTElkIHByb2dyYW0s
IFdHQzNEdWludCBpbmRleCwgY29uc3QgV0dDM0RjaGFyKiBuYW1lKSA9IDA7CisgICAgdmlydHVh
bCB2b2lkIGJpbmRCdWZmZXIoV0dDM0RlbnVtIHRhcmdldCwgV2ViR0xJZCBidWZmZXIpID0gMDsK
KyAgICB2aXJ0dWFsIHZvaWQgYmluZEZyYW1lYnVmZmVyKFdHQzNEZW51bSB0YXJnZXQsIFdlYkdM
SWQgZnJhbWVidWZmZXIpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgYmluZFJlbmRlcmJ1ZmZlcihX
R0MzRGVudW0gdGFyZ2V0LCBXZWJHTElkIHJlbmRlcmJ1ZmZlcikgPSAwOworICAgIHZpcnR1YWwg
dm9pZCBiaW5kVGV4dHVyZShXR0MzRGVudW0gdGFyZ2V0LCBXZWJHTElkIHRleHR1cmUpID0gMDsK
KyAgICB2aXJ0dWFsIHZvaWQgYmxlbmRDb2xvcihXR0MzRGNsYW1wZiByZWQsIFdHQzNEY2xhbXBm
IGdyZWVuLCBXR0MzRGNsYW1wZiBibHVlLCBXR0MzRGNsYW1wZiBhbHBoYSkgPSAwOworICAgIHZp
cnR1YWwgdm9pZCBibGVuZEVxdWF0aW9uKFdHQzNEZW51bSBtb2RlKSA9IDA7CisgICAgdmlydHVh
bCB2b2lkIGJsZW5kRXF1YXRpb25TZXBhcmF0ZShXR0MzRGVudW0gbW9kZVJHQiwgV0dDM0RlbnVt
IG1vZGVBbHBoYSkgPSAwOworICAgIHZpcnR1YWwgdm9pZCBibGVuZEZ1bmMoV0dDM0RlbnVtIHNm
YWN0b3IsIFdHQzNEZW51bSBkZmFjdG9yKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIGJsZW5kRnVu
Y1NlcGFyYXRlKFdHQzNEZW51bSBzcmNSR0IsIFdHQzNEZW51bSBkc3RSR0IsIFdHQzNEZW51bSBz
cmNBbHBoYSwgV0dDM0RlbnVtIGRzdEFscGhhKSA9IDA7CisKKyAgICB2aXJ0dWFsIHZvaWQgYnVm
ZmVyRGF0YShXR0MzRGVudW0gdGFyZ2V0LCBXR0MzRHNpemVpcHRyIHNpemUsIGNvbnN0IHZvaWQq
IGRhdGEsIFdHQzNEZW51bSB1c2FnZSkgPSAwOworICAgIHZpcnR1YWwgdm9pZCBidWZmZXJTdWJE
YXRhKFdHQzNEZW51bSB0YXJnZXQsIFdHQzNEaW50cHRyIG9mZnNldCwgV0dDM0RzaXplaXB0ciBz
aXplLCBjb25zdCB2b2lkKiBkYXRhKSA9IDA7CisKKyAgICB2aXJ0dWFsIFdHQzNEZW51bSBjaGVj
a0ZyYW1lYnVmZmVyU3RhdHVzKFdHQzNEZW51bSB0YXJnZXQpID0gMDsKKyAgICB2aXJ0dWFsIHZv
aWQgY2xlYXIoV0dDM0RiaXRmaWVsZCBtYXNrKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIGNsZWFy
Q29sb3IoV0dDM0RjbGFtcGYgcmVkLCBXR0MzRGNsYW1wZiBncmVlbiwgV0dDM0RjbGFtcGYgYmx1
ZSwgV0dDM0RjbGFtcGYgYWxwaGEpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgY2xlYXJEZXB0aChX
R0MzRGNsYW1wZiBkZXB0aCkgPSAwOworICAgIHZpcnR1YWwgdm9pZCBjbGVhclN0ZW5jaWwoV0dD
M0RpbnQgcykgPSAwOworICAgIHZpcnR1YWwgdm9pZCBjb2xvck1hc2soV0dDM0Rib29sZWFuIHJl
ZCwgV0dDM0Rib29sZWFuIGdyZWVuLCBXR0MzRGJvb2xlYW4gYmx1ZSwgV0dDM0Rib29sZWFuIGFs
cGhhKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIGNvbXBpbGVTaGFkZXIoV2ViR0xJZCBzaGFkZXIp
ID0gMDsKKworICAgIHZpcnR1YWwgdm9pZCBjb3B5VGV4SW1hZ2UyRChXR0MzRGVudW0gdGFyZ2V0
LCBXR0MzRGludCBsZXZlbCwgV0dDM0RlbnVtIGludGVybmFsZm9ybWF0LCBXR0MzRGludCB4LCBX
R0MzRGludCB5LCBXR0MzRHNpemVpIHdpZHRoLCBXR0MzRHNpemVpIGhlaWdodCwgV0dDM0RpbnQg
Ym9yZGVyKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIGNvcHlUZXhTdWJJbWFnZTJEKFdHQzNEZW51
bSB0YXJnZXQsIFdHQzNEaW50IGxldmVsLCBXR0MzRGludCB4b2Zmc2V0LCBXR0MzRGludCB5b2Zm
c2V0LCBXR0MzRGludCB4LCBXR0MzRGludCB5LCBXR0MzRHNpemVpIHdpZHRoLCBXR0MzRHNpemVp
IGhlaWdodCkgPSAwOworICAgIHZpcnR1YWwgdm9pZCBjdWxsRmFjZShXR0MzRGVudW0gbW9kZSkg
PSAwOworICAgIHZpcnR1YWwgdm9pZCBkZXB0aEZ1bmMoV0dDM0RlbnVtIGZ1bmMpID0gMDsKKyAg
ICB2aXJ0dWFsIHZvaWQgZGVwdGhNYXNrKFdHQzNEYm9vbGVhbiBmbGFnKSA9IDA7CisgICAgdmly
dHVhbCB2b2lkIGRlcHRoUmFuZ2UoV0dDM0RjbGFtcGYgek5lYXIsIFdHQzNEY2xhbXBmIHpGYXIp
ID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgZGV0YWNoU2hhZGVyKFdlYkdMSWQgcHJvZ3JhbSwgV2Vi
R0xJZCBzaGFkZXIpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgZGlzYWJsZShXR0MzRGVudW0gY2Fw
KSA9IDA7CisgICAgdmlydHVhbCB2b2lkIGRpc2FibGVWZXJ0ZXhBdHRyaWJBcnJheShXR0MzRHVp
bnQgaW5kZXgpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgZHJhd0FycmF5cyhXR0MzRGVudW0gbW9k
ZSwgV0dDM0RpbnQgZmlyc3QsIFdHQzNEc2l6ZWkgY291bnQpID0gMDsKKyAgICB2aXJ0dWFsIHZv
aWQgZHJhd0VsZW1lbnRzKFdHQzNEZW51bSBtb2RlLCBXR0MzRHNpemVpIGNvdW50LCBXR0MzRGVu
dW0gdHlwZSwgV0dDM0RpbnRwdHIgb2Zmc2V0KSA9IDA7CisKKyAgICB2aXJ0dWFsIHZvaWQgZW5h
YmxlKFdHQzNEZW51bSBjYXApID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgZW5hYmxlVmVydGV4QXR0
cmliQXJyYXkoV0dDM0R1aW50IGluZGV4KSA9IDA7CisgICAgdmlydHVhbCB2b2lkIGZpbmlzaCgp
ID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgZmx1c2goKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIGZy
YW1lYnVmZmVyUmVuZGVyYnVmZmVyKFdHQzNEZW51bSB0YXJnZXQsIFdHQzNEZW51bSBhdHRhY2ht
ZW50LCBXR0MzRGVudW0gcmVuZGVyYnVmZmVydGFyZ2V0LCBXZWJHTElkIHJlbmRlcmJ1ZmZlcikg
PSAwOworICAgIHZpcnR1YWwgdm9pZCBmcmFtZWJ1ZmZlclRleHR1cmUyRChXR0MzRGVudW0gdGFy
Z2V0LCBXR0MzRGVudW0gYXR0YWNobWVudCwgV0dDM0RlbnVtIHRleHRhcmdldCwgV2ViR0xJZCB0
ZXh0dXJlLCBXR0MzRGludCBsZXZlbCkgPSAwOworICAgIHZpcnR1YWwgdm9pZCBmcm9udEZhY2Uo
V0dDM0RlbnVtIG1vZGUpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgZ2VuZXJhdGVNaXBtYXAoV0dD
M0RlbnVtIHRhcmdldCkgPSAwOworCisgICAgdmlydHVhbCBib29sIGdldEFjdGl2ZUF0dHJpYihX
ZWJHTElkIHByb2dyYW0sIFdHQzNEdWludCBpbmRleCwgQWN0aXZlSW5mbyYpID0gMDsKKyAgICB2
aXJ0dWFsIGJvb2wgZ2V0QWN0aXZlVW5pZm9ybShXZWJHTElkIHByb2dyYW0sIFdHQzNEdWludCBp
bmRleCwgQWN0aXZlSW5mbyYpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgZ2V0QXR0YWNoZWRTaGFk
ZXJzKFdlYkdMSWQgcHJvZ3JhbSwgV0dDM0RzaXplaSBtYXhDb3VudCwgV0dDM0RzaXplaSogY291
bnQsIFdlYkdMSWQqIHNoYWRlcnMpID0gMDsKKyAgICB2aXJ0dWFsIFdHQzNEaW50IGdldEF0dHJp
YkxvY2F0aW9uKFdlYkdMSWQgcHJvZ3JhbSwgY29uc3QgV0dDM0RjaGFyKiBuYW1lKSA9IDA7Cisg
ICAgdmlydHVhbCB2b2lkIGdldEJvb2xlYW52KFdHQzNEZW51bSBwbmFtZSwgV0dDM0Rib29sZWFu
KiB2YWx1ZSkgPSAwOworICAgIHZpcnR1YWwgdm9pZCBnZXRCdWZmZXJQYXJhbWV0ZXJpdihXR0Mz
RGVudW0gdGFyZ2V0LCBXR0MzRGVudW0gcG5hbWUsIFdHQzNEaW50KiB2YWx1ZSkgPSAwOworICAg
IHZpcnR1YWwgQXR0cmlidXRlcyBnZXRDb250ZXh0QXR0cmlidXRlcygpID0gMDsKKyAgICB2aXJ0
dWFsIFdHQzNEZW51bSBnZXRFcnJvcigpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgZ2V0RmxvYXR2
KFdHQzNEZW51bSBwbmFtZSwgV0dDM0RmbG9hdCogdmFsdWUpID0gMDsKKyAgICB2aXJ0dWFsIHZv
aWQgZ2V0RnJhbWVidWZmZXJBdHRhY2htZW50UGFyYW1ldGVyaXYoV0dDM0RlbnVtIHRhcmdldCwg
V0dDM0RlbnVtIGF0dGFjaG1lbnQsIFdHQzNEZW51bSBwbmFtZSwgV0dDM0RpbnQqIHZhbHVlKSA9
IDA7CisgICAgdmlydHVhbCB2b2lkIGdldEludGVnZXJ2KFdHQzNEZW51bSBwbmFtZSwgV0dDM0Rp
bnQqIHZhbHVlKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIGdldFByb2dyYW1pdihXZWJHTElkIHBy
b2dyYW0sIFdHQzNEZW51bSBwbmFtZSwgV0dDM0RpbnQqIHZhbHVlKSA9IDA7CisgICAgdmlydHVh
bCBXZWJTdHJpbmcgZ2V0UHJvZ3JhbUluZm9Mb2coV2ViR0xJZCBwcm9ncmFtKSA9IDA7CisgICAg
dmlydHVhbCB2b2lkIGdldFJlbmRlcmJ1ZmZlclBhcmFtZXRlcml2KFdHQzNEZW51bSB0YXJnZXQs
IFdHQzNEZW51bSBwbmFtZSwgV0dDM0RpbnQqIHZhbHVlKSA9IDA7CisgICAgdmlydHVhbCB2b2lk
IGdldFNoYWRlcml2KFdlYkdMSWQgc2hhZGVyLCBXR0MzRGVudW0gcG5hbWUsIFdHQzNEaW50KiB2
YWx1ZSkgPSAwOworICAgIHZpcnR1YWwgV2ViU3RyaW5nIGdldFNoYWRlckluZm9Mb2coV2ViR0xJ
ZCBzaGFkZXIpID0gMDsKKworICAgIC8vIFRCRAorICAgIC8vIHZvaWQgZ2xHZXRTaGFkZXJQcmVj
aXNpb25Gb3JtYXQgKEdMZW51bSBzaGFkZXJ0eXBlLCBHTGVudW0gcHJlY2lzaW9udHlwZSwgR0xp
bnQqIHJhbmdlLCBHTGludCogcHJlY2lzaW9uKTsKKworICAgIHZpcnR1YWwgV2ViU3RyaW5nIGdl
dFNoYWRlclNvdXJjZShXZWJHTElkIHNoYWRlcikgPSAwOworICAgIHZpcnR1YWwgV2ViU3RyaW5n
IGdldFN0cmluZyhXR0MzRGVudW0gbmFtZSkgPSAwOworICAgIHZpcnR1YWwgdm9pZCBnZXRUZXhQ
YXJhbWV0ZXJmdihXR0MzRGVudW0gdGFyZ2V0LCBXR0MzRGVudW0gcG5hbWUsIFdHQzNEZmxvYXQq
IHZhbHVlKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIGdldFRleFBhcmFtZXRlcml2KFdHQzNEZW51
bSB0YXJnZXQsIFdHQzNEZW51bSBwbmFtZSwgV0dDM0RpbnQqIHZhbHVlKSA9IDA7CisgICAgdmly
dHVhbCB2b2lkIGdldFVuaWZvcm1mdihXZWJHTElkIHByb2dyYW0sIFdHQzNEaW50IGxvY2F0aW9u
LCBXR0MzRGZsb2F0KiB2YWx1ZSkgPSAwOworICAgIHZpcnR1YWwgdm9pZCBnZXRVbmlmb3JtaXYo
V2ViR0xJZCBwcm9ncmFtLCBXR0MzRGludCBsb2NhdGlvbiwgV0dDM0RpbnQqIHZhbHVlKSA9IDA7
CisgICAgdmlydHVhbCBXR0MzRGludCBnZXRVbmlmb3JtTG9jYXRpb24oV2ViR0xJZCBwcm9ncmFt
LCBjb25zdCBXR0MzRGNoYXIqIG5hbWUpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgZ2V0VmVydGV4
QXR0cmliZnYoV0dDM0R1aW50IGluZGV4LCBXR0MzRGVudW0gcG5hbWUsIFdHQzNEZmxvYXQqIHZh
bHVlKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIGdldFZlcnRleEF0dHJpYml2KFdHQzNEdWludCBp
bmRleCwgV0dDM0RlbnVtIHBuYW1lLCBXR0MzRGludCogdmFsdWUpID0gMDsKKyAgICB2aXJ0dWFs
IFdHQzNEc2l6ZWlwdHIgZ2V0VmVydGV4QXR0cmliT2Zmc2V0KFdHQzNEdWludCBpbmRleCwgV0dD
M0RlbnVtIHBuYW1lKSA9IDA7CisKKyAgICB2aXJ0dWFsIHZvaWQgaGludChXR0MzRGVudW0gdGFy
Z2V0LCBXR0MzRGVudW0gbW9kZSkgPSAwOworICAgIHZpcnR1YWwgV0dDM0Rib29sZWFuIGlzQnVm
ZmVyKFdlYkdMSWQgYnVmZmVyKSA9IDA7CisgICAgdmlydHVhbCBXR0MzRGJvb2xlYW4gaXNFbmFi
bGVkKFdHQzNEZW51bSBjYXApID0gMDsKKyAgICB2aXJ0dWFsIFdHQzNEYm9vbGVhbiBpc0ZyYW1l
YnVmZmVyKFdlYkdMSWQgZnJhbWVidWZmZXIpID0gMDsKKyAgICB2aXJ0dWFsIFdHQzNEYm9vbGVh
biBpc1Byb2dyYW0oV2ViR0xJZCBwcm9ncmFtKSA9IDA7CisgICAgdmlydHVhbCBXR0MzRGJvb2xl
YW4gaXNSZW5kZXJidWZmZXIoV2ViR0xJZCByZW5kZXJidWZmZXIpID0gMDsKKyAgICB2aXJ0dWFs
IFdHQzNEYm9vbGVhbiBpc1NoYWRlcihXZWJHTElkIHNoYWRlcikgPSAwOworICAgIHZpcnR1YWwg
V0dDM0Rib29sZWFuIGlzVGV4dHVyZShXZWJHTElkIHRleHR1cmUpID0gMDsKKyAgICB2aXJ0dWFs
IHZvaWQgbGluZVdpZHRoKFdHQzNEZmxvYXQpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgbGlua1By
b2dyYW0oV2ViR0xJZCBwcm9ncmFtKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIHBpeGVsU3RvcmVp
KFdHQzNEZW51bSBwbmFtZSwgV0dDM0RpbnQgcGFyYW0pID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQg
cG9seWdvbk9mZnNldChXR0MzRGZsb2F0IGZhY3RvciwgV0dDM0RmbG9hdCB1bml0cykgPSAwOwor
CisgICAgdmlydHVhbCB2b2lkIHJlYWRQaXhlbHMoV0dDM0RpbnQgeCwgV0dDM0RpbnQgeSwgV0dD
M0RzaXplaSB3aWR0aCwgV0dDM0RzaXplaSBoZWlnaHQsIFdHQzNEZW51bSBmb3JtYXQsIFdHQzNE
ZW51bSB0eXBlLCB2b2lkKiBwaXhlbHMpID0gMDsKKworICAgIHZpcnR1YWwgdm9pZCByZWxlYXNl
U2hhZGVyQ29tcGlsZXIoKSA9IDA7CisKKyAgICB2aXJ0dWFsIHZvaWQgcmVuZGVyYnVmZmVyU3Rv
cmFnZShXR0MzRGVudW0gdGFyZ2V0LCBXR0MzRGVudW0gaW50ZXJuYWxmb3JtYXQsIFdHQzNEc2l6
ZWkgd2lkdGgsIFdHQzNEc2l6ZWkgaGVpZ2h0KSA9IDA7CisgICAgdmlydHVhbCB2b2lkIHNhbXBs
ZUNvdmVyYWdlKFdHQzNEY2xhbXBmIHZhbHVlLCBXR0MzRGJvb2xlYW4gaW52ZXJ0KSA9IDA7Cisg
ICAgdmlydHVhbCB2b2lkIHNjaXNzb3IoV0dDM0RpbnQgeCwgV0dDM0RpbnQgeSwgV0dDM0RzaXpl
aSB3aWR0aCwgV0dDM0RzaXplaSBoZWlnaHQpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgc2hhZGVy
U291cmNlKFdlYkdMSWQgc2hhZGVyLCBjb25zdCBXR0MzRGNoYXIqIHN0cmluZykgPSAwOworICAg
IHZpcnR1YWwgdm9pZCBzdGVuY2lsRnVuYyhXR0MzRGVudW0gZnVuYywgV0dDM0RpbnQgcmVmLCBX
R0MzRHVpbnQgbWFzaykgPSAwOworICAgIHZpcnR1YWwgdm9pZCBzdGVuY2lsRnVuY1NlcGFyYXRl
KFdHQzNEZW51bSBmYWNlLCBXR0MzRGVudW0gZnVuYywgV0dDM0RpbnQgcmVmLCBXR0MzRHVpbnQg
bWFzaykgPSAwOworICAgIHZpcnR1YWwgdm9pZCBzdGVuY2lsTWFzayhXR0MzRHVpbnQgbWFzaykg
PSAwOworICAgIHZpcnR1YWwgdm9pZCBzdGVuY2lsTWFza1NlcGFyYXRlKFdHQzNEZW51bSBmYWNl
LCBXR0MzRHVpbnQgbWFzaykgPSAwOworICAgIHZpcnR1YWwgdm9pZCBzdGVuY2lsT3AoV0dDM0Rl
bnVtIGZhaWwsIFdHQzNEZW51bSB6ZmFpbCwgV0dDM0RlbnVtIHpwYXNzKSA9IDA7CisgICAgdmly
dHVhbCB2b2lkIHN0ZW5jaWxPcFNlcGFyYXRlKFdHQzNEZW51bSBmYWNlLCBXR0MzRGVudW0gZmFp
bCwgV0dDM0RlbnVtIHpmYWlsLCBXR0MzRGVudW0genBhc3MpID0gMDsKKworICAgIHZpcnR1YWwg
dm9pZCB0ZXhJbWFnZTJEKFdHQzNEZW51bSB0YXJnZXQsIFdHQzNEaW50IGxldmVsLCBXR0MzRGVu
dW0gaW50ZXJuYWxmb3JtYXQsIFdHQzNEc2l6ZWkgd2lkdGgsIFdHQzNEc2l6ZWkgaGVpZ2h0LCBX
R0MzRGludCBib3JkZXIsIFdHQzNEZW51bSBmb3JtYXQsIFdHQzNEZW51bSB0eXBlLCBjb25zdCB2
b2lkKiBwaXhlbHMpID0gMDsKKworICAgIHZpcnR1YWwgdm9pZCB0ZXhQYXJhbWV0ZXJmKFdHQzNE
ZW51bSB0YXJnZXQsIFdHQzNEZW51bSBwbmFtZSwgV0dDM0RmbG9hdCBwYXJhbSkgPSAwOworICAg
IHZpcnR1YWwgdm9pZCB0ZXhQYXJhbWV0ZXJpKFdHQzNEZW51bSB0YXJnZXQsIFdHQzNEZW51bSBw
bmFtZSwgV0dDM0RpbnQgcGFyYW0pID0gMDsKKworICAgIHZpcnR1YWwgdm9pZCB0ZXhTdWJJbWFn
ZTJEKFdHQzNEZW51bSB0YXJnZXQsIFdHQzNEaW50IGxldmVsLCBXR0MzRGludCB4b2Zmc2V0LCBX
R0MzRGludCB5b2Zmc2V0LCBXR0MzRHNpemVpIHdpZHRoLCBXR0MzRHNpemVpIGhlaWdodCwgV0dD
M0RlbnVtIGZvcm1hdCwgV0dDM0RlbnVtIHR5cGUsIGNvbnN0IHZvaWQqIHBpeGVscykgPSAwOwor
CisgICAgdmlydHVhbCB2b2lkIHVuaWZvcm0xZihXR0MzRGludCBsb2NhdGlvbiwgV0dDM0RmbG9h
dCB4KSA9IDA7CisgICAgdmlydHVhbCB2b2lkIHVuaWZvcm0xZnYoV0dDM0RpbnQgbG9jYXRpb24s
IFdHQzNEc2l6ZWkgY291bnQsIGNvbnN0IFdHQzNEZmxvYXQqIHYpID0gMDsKKyAgICB2aXJ0dWFs
IHZvaWQgdW5pZm9ybTFpKFdHQzNEaW50IGxvY2F0aW9uLCBXR0MzRGludCB4KSA9IDA7CisgICAg
dmlydHVhbCB2b2lkIHVuaWZvcm0xaXYoV0dDM0RpbnQgbG9jYXRpb24sIFdHQzNEc2l6ZWkgY291
bnQsIGNvbnN0IFdHQzNEaW50KiB2KSA9IDA7CisgICAgdmlydHVhbCB2b2lkIHVuaWZvcm0yZihX
R0MzRGludCBsb2NhdGlvbiwgV0dDM0RmbG9hdCB4LCBXR0MzRGZsb2F0IHkpID0gMDsKKyAgICB2
aXJ0dWFsIHZvaWQgdW5pZm9ybTJmdihXR0MzRGludCBsb2NhdGlvbiwgV0dDM0RzaXplaSBjb3Vu
dCwgY29uc3QgV0dDM0RmbG9hdCogdikgPSAwOworICAgIHZpcnR1YWwgdm9pZCB1bmlmb3JtMmko
V0dDM0RpbnQgbG9jYXRpb24sIFdHQzNEaW50IHgsIFdHQzNEaW50IHkpID0gMDsKKyAgICB2aXJ0
dWFsIHZvaWQgdW5pZm9ybTJpdihXR0MzRGludCBsb2NhdGlvbiwgV0dDM0RzaXplaSBjb3VudCwg
Y29uc3QgV0dDM0RpbnQqIHYpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgdW5pZm9ybTNmKFdHQzNE
aW50IGxvY2F0aW9uLCBXR0MzRGZsb2F0IHgsIFdHQzNEZmxvYXQgeSwgV0dDM0RmbG9hdCB6KSA9
IDA7CisgICAgdmlydHVhbCB2b2lkIHVuaWZvcm0zZnYoV0dDM0RpbnQgbG9jYXRpb24sIFdHQzNE
c2l6ZWkgY291bnQsIGNvbnN0IFdHQzNEZmxvYXQqIHYpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQg
dW5pZm9ybTNpKFdHQzNEaW50IGxvY2F0aW9uLCBXR0MzRGludCB4LCBXR0MzRGludCB5LCBXR0Mz
RGludCB6KSA9IDA7CisgICAgdmlydHVhbCB2b2lkIHVuaWZvcm0zaXYoV0dDM0RpbnQgbG9jYXRp
b24sIFdHQzNEc2l6ZWkgY291bnQsIGNvbnN0IFdHQzNEaW50KiB2KSA9IDA7CisgICAgdmlydHVh
bCB2b2lkIHVuaWZvcm00ZihXR0MzRGludCBsb2NhdGlvbiwgV0dDM0RmbG9hdCB4LCBXR0MzRGZs
b2F0IHksIFdHQzNEZmxvYXQgeiwgV0dDM0RmbG9hdCB3KSA9IDA7CisgICAgdmlydHVhbCB2b2lk
IHVuaWZvcm00ZnYoV0dDM0RpbnQgbG9jYXRpb24sIFdHQzNEc2l6ZWkgY291bnQsIGNvbnN0IFdH
QzNEZmxvYXQqIHYpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgdW5pZm9ybTRpKFdHQzNEaW50IGxv
Y2F0aW9uLCBXR0MzRGludCB4LCBXR0MzRGludCB5LCBXR0MzRGludCB6LCBXR0MzRGludCB3KSA9
IDA7CisgICAgdmlydHVhbCB2b2lkIHVuaWZvcm00aXYoV0dDM0RpbnQgbG9jYXRpb24sIFdHQzNE
c2l6ZWkgY291bnQsIGNvbnN0IFdHQzNEaW50KiB2KSA9IDA7CisgICAgdmlydHVhbCB2b2lkIHVu
aWZvcm1NYXRyaXgyZnYoV0dDM0RpbnQgbG9jYXRpb24sIFdHQzNEc2l6ZWkgY291bnQsIFdHQzNE
Ym9vbGVhbiB0cmFuc3Bvc2UsIGNvbnN0IFdHQzNEZmxvYXQqIHZhbHVlKSA9IDA7CisgICAgdmly
dHVhbCB2b2lkIHVuaWZvcm1NYXRyaXgzZnYoV0dDM0RpbnQgbG9jYXRpb24sIFdHQzNEc2l6ZWkg
Y291bnQsIFdHQzNEYm9vbGVhbiB0cmFuc3Bvc2UsIGNvbnN0IFdHQzNEZmxvYXQqIHZhbHVlKSA9
IDA7CisgICAgdmlydHVhbCB2b2lkIHVuaWZvcm1NYXRyaXg0ZnYoV0dDM0RpbnQgbG9jYXRpb24s
IFdHQzNEc2l6ZWkgY291bnQsIFdHQzNEYm9vbGVhbiB0cmFuc3Bvc2UsIGNvbnN0IFdHQzNEZmxv
YXQqIHZhbHVlKSA9IDA7CisKKyAgICB2aXJ0dWFsIHZvaWQgdXNlUHJvZ3JhbShXZWJHTElkIHBy
b2dyYW0pID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgdmFsaWRhdGVQcm9ncmFtKFdlYkdMSWQgcHJv
Z3JhbSkgPSAwOworCisgICAgdmlydHVhbCB2b2lkIHZlcnRleEF0dHJpYjFmKFdHQzNEdWludCBp
bmRleCwgV0dDM0RmbG9hdCB4KSA9IDA7CisgICAgdmlydHVhbCB2b2lkIHZlcnRleEF0dHJpYjFm
dihXR0MzRHVpbnQgaW5kZXgsIGNvbnN0IFdHQzNEZmxvYXQqIHZhbHVlcykgPSAwOworICAgIHZp
cnR1YWwgdm9pZCB2ZXJ0ZXhBdHRyaWIyZihXR0MzRHVpbnQgaW5kZXgsIFdHQzNEZmxvYXQgeCwg
V0dDM0RmbG9hdCB5KSA9IDA7CisgICAgdmlydHVhbCB2b2lkIHZlcnRleEF0dHJpYjJmdihXR0Mz
RHVpbnQgaW5kZXgsIGNvbnN0IFdHQzNEZmxvYXQqIHZhbHVlcykgPSAwOworICAgIHZpcnR1YWwg
dm9pZCB2ZXJ0ZXhBdHRyaWIzZihXR0MzRHVpbnQgaW5kZXgsIFdHQzNEZmxvYXQgeCwgV0dDM0Rm
bG9hdCB5LCBXR0MzRGZsb2F0IHopID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgdmVydGV4QXR0cmli
M2Z2KFdHQzNEdWludCBpbmRleCwgY29uc3QgV0dDM0RmbG9hdCogdmFsdWVzKSA9IDA7CisgICAg
dmlydHVhbCB2b2lkIHZlcnRleEF0dHJpYjRmKFdHQzNEdWludCBpbmRleCwgV0dDM0RmbG9hdCB4
LCBXR0MzRGZsb2F0IHksIFdHQzNEZmxvYXQgeiwgV0dDM0RmbG9hdCB3KSA9IDA7CisgICAgdmly
dHVhbCB2b2lkIHZlcnRleEF0dHJpYjRmdihXR0MzRHVpbnQgaW5kZXgsIGNvbnN0IFdHQzNEZmxv
YXQqIHZhbHVlcykgPSAwOworICAgIHZpcnR1YWwgdm9pZCB2ZXJ0ZXhBdHRyaWJQb2ludGVyKFdH
QzNEdWludCBpbmRleCwgV0dDM0RpbnQgc2l6ZSwgV0dDM0RlbnVtIHR5cGUsIFdHQzNEYm9vbGVh
biBub3JtYWxpemVkLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFdHQzNE
c2l6ZWkgc3RyaWRlLCBXR0MzRGludHB0ciBvZmZzZXQpID0gMDsKKworICAgIHZpcnR1YWwgdm9p
ZCB2aWV3cG9ydChXR0MzRGludCB4LCBXR0MzRGludCB5LCBXR0MzRHNpemVpIHdpZHRoLCBXR0Mz
RHNpemVpIGhlaWdodCkgPSAwOworCisgICAgLy8gU3VwcG9ydCBmb3IgYnVmZmVyIGNyZWF0aW9u
IGFuZCBkZWxldGlvbi4KKyAgICB2aXJ0dWFsIFdlYkdMSWQgY3JlYXRlQnVmZmVyKCkgPSAwOwor
ICAgIHZpcnR1YWwgV2ViR0xJZCBjcmVhdGVGcmFtZWJ1ZmZlcigpID0gMDsKKyAgICB2aXJ0dWFs
IFdlYkdMSWQgY3JlYXRlUHJvZ3JhbSgpID0gMDsKKyAgICB2aXJ0dWFsIFdlYkdMSWQgY3JlYXRl
UmVuZGVyYnVmZmVyKCkgPSAwOworICAgIHZpcnR1YWwgV2ViR0xJZCBjcmVhdGVTaGFkZXIoV0dD
M0RlbnVtKSA9IDA7CisgICAgdmlydHVhbCBXZWJHTElkIGNyZWF0ZVRleHR1cmUoKSA9IDA7CisK
KyAgICB2aXJ0dWFsIHZvaWQgZGVsZXRlQnVmZmVyKFdlYkdMSWQpID0gMDsKKyAgICB2aXJ0dWFs
IHZvaWQgZGVsZXRlRnJhbWVidWZmZXIoV2ViR0xJZCkgPSAwOworICAgIHZpcnR1YWwgdm9pZCBk
ZWxldGVQcm9ncmFtKFdlYkdMSWQpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgZGVsZXRlUmVuZGVy
YnVmZmVyKFdlYkdMSWQpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgZGVsZXRlU2hhZGVyKFdlYkdM
SWQpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgZGVsZXRlVGV4dHVyZShXZWJHTElkKSA9IDA7Cit9
OworCisjZWxzZSAvLyBVU0VfV0dDM0RfVFlQRVMKKwogY2xhc3MgV2ViR3JhcGhpY3NDb250ZXh0
M0QgOiBwdWJsaWMgV2ViTm9uQ29weWFibGUgewogcHVibGljOgogICAgIC8vIFJldHVybiB2YWx1
ZSBmcm9tIGdldEFjdGl2ZVVuaWZvcm0gYW5kIGdldEFjdGl2ZUF0dHJpYi4KQEAgLTMzMCw2ICs2
MTMsOCBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIGRlbGV0ZVRleHR1cmUodW5zaWduZWQp
ID0gMDsKIH07CiAKKyNlbmRpZiAvLyBVU0VfV0dDM0RfVFlQRVMKKwogfSAvLyBuYW1lc3BhY2Ug
V2ViS2l0CiAKICNlbmRpZgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>80350</attachid>
            <date>2011-01-27 11:06:27 -0800</date>
            <delta_ts>2011-01-27 17:02:25 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-51947-20110127110626.patch</filename>
            <type>text/plain</type>
            <size>26658</size>
            <attacher name="Zhenyao Mo">zmo</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCShyZXZpc2lvbiA3NjgxNCkKKysrIFNvdXJj
ZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTIg
QEAKKzIwMTEtMDEtMjcgIFpoZW55YW8gTW8gIDx6bW9AZ29vZ2xlLmNvbT4KKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBEZWZpbmUgR0MzRCB0eXBlcyB0
byBtYXRjaCBHTCB0eXBlcyBhbmQgdXNlIHRoZW0gaW4gV2ViR3JhcGhpY3NDb250ZXh0M0QKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTUxOTQ3CisKKyAg
ICAgICAgKiBwdWJsaWMvV2ViR3JhcGhpY3NDb250ZXh0M0QuaDoKKwogMjAxMS0wMS0yNyAgSGFu
cyBXZW5uYm9yZyAgPGhhbnNAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFJldmlld2VkIGJ5IEpl
cmVteSBPcmxvdy4KSW5kZXg6IFNvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYkdyYXBo
aWNzQ29udGV4dDNELmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJs
aWMvV2ViR3JhcGhpY3NDb250ZXh0M0QuaAkocmV2aXNpb24gNzY3MTgpCisrKyBTb3VyY2UvV2Vi
S2l0L2Nocm9taXVtL3B1YmxpYy9XZWJHcmFwaGljc0NvbnRleHQzRC5oCSh3b3JraW5nIGNvcHkp
CkBAIC0zNSwxMCArMzUsMzAgQEAKICNpbmNsdWRlICJXZWJOb25Db3B5YWJsZS5oIgogI2luY2x1
ZGUgIldlYlN0cmluZy5oIgogCisjZGVmaW5lIFVTRV9XR0MzRF9UWVBFUworCiBuYW1lc3BhY2Ug
V2ViS2l0IHsKIAorLy8gV0dDM0QgdHlwZXMgbWF0Y2ggdGhlIGNvcnJlc3BvbmRpbmcgR0wgdHlw
ZXMgYXMgZGVmaW5lZCBpbiBPcGVuR0wgRVMgMi4wCisvLyBoZWFkZXIgZmlsZSBnbDIuaCBmcm9t
IGtocm9ub3Mub3JnLgordHlwZWRlZiBjaGFyIFdHQzNEY2hhcjsKK3R5cGVkZWYgdW5zaWduZWQg
aW50IFdHQzNEZW51bTsKK3R5cGVkZWYgdW5zaWduZWQgY2hhciBXR0MzRGJvb2xlYW47Cit0eXBl
ZGVmIHVuc2lnbmVkIGludCBXR0MzRGJpdGZpZWxkOwordHlwZWRlZiBzaWduZWQgY2hhciBXR0Mz
RGJ5dGU7Cit0eXBlZGVmIHVuc2lnbmVkIGNoYXIgV0dDM0R1Ynl0ZTsKK3R5cGVkZWYgc2hvcnQg
V0dDM0RzaG9ydDsKK3R5cGVkZWYgdW5zaWduZWQgc2hvcnQgV0dDM0R1c2hvcnQ7Cit0eXBlZGVm
IGludCBXR0MzRGludDsKK3R5cGVkZWYgaW50IFdHQzNEc2l6ZWk7Cit0eXBlZGVmIHVuc2lnbmVk
IGludCBXR0MzRHVpbnQ7Cit0eXBlZGVmIGZsb2F0IFdHQzNEZmxvYXQ7Cit0eXBlZGVmIGZsb2F0
IFdHQzNEY2xhbXBmOwordHlwZWRlZiBzaWduZWQgbG9uZyBpbnQgV0dDM0RpbnRwdHI7Cit0eXBl
ZGVmIHNpZ25lZCBsb25nIGludCBXR0MzRHNpemVpcHRyOworCiAvLyBUeXBlZGVmIGZvciBzZXJ2
ZXItc2lkZSBvYmplY3RzIGxpa2UgT3BlbkdMIHRleHR1cmVzIGFuZCBwcm9ncmFtIG9iamVjdHMu
Ci10eXBlZGVmIHVuc2lnbmVkIGludCBXZWJHTElkOwordHlwZWRlZiBXR0MzRHVpbnQgV2ViR0xJ
ZDsKIAogY2xhc3MgV2ViVmlldzsKIApAQCAtNTIsOCArNzIsOCBAQCBwdWJsaWM6CiAgICAgLy8g
UmV0dXJuIHZhbHVlIGZyb20gZ2V0QWN0aXZlVW5pZm9ybSBhbmQgZ2V0QWN0aXZlQXR0cmliLgog
ICAgIHN0cnVjdCBBY3RpdmVJbmZvIHsKICAgICAgICAgV2ViU3RyaW5nIG5hbWU7Ci0gICAgICAg
IHVuc2lnbmVkIHR5cGU7Ci0gICAgICAgIGludCBzaXplOworICAgICAgICBXR0MzRGVudW0gdHlw
ZTsKKyAgICAgICAgV0dDM0RpbnQgc2l6ZTsKICAgICB9OwogCiAgICAgLy8gQ29udGV4dCBjcmVh
dGlvbiBhdHRyaWJ1dGVzLgpAQCAtOTIsMTAgKzExMiw2IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFs
IGludCB3aWR0aCgpID0gMDsKICAgICB2aXJ0dWFsIGludCBoZWlnaHQoKSA9IDA7CiAKLSAgICAv
LyBIZWxwZXIgdG8gcmV0dXJuIHRoZSBzaXplIGluIGJ5dGVzIG9mIE9wZW5HTCBkYXRhIHR5cGVz
Ci0gICAgLy8gbGlrZSBHTF9GTE9BVCwgR0xfSU5ULCBldGMuCi0gICAgdmlydHVhbCBpbnQgc2l6
ZUluQnl0ZXMoaW50IHR5cGUpID0gMDsKLQogICAgIC8vIFJlc2l6ZXMgdGhlIHJlZ2lvbiBpbnRv
IHdoaWNoIHRoaXMgV2ViR3JhcGhpY3NDb250ZXh0M0QgaXMgZHJhd2luZy4KICAgICB2aXJ0dWFs
IHZvaWQgcmVzaGFwZShpbnQgd2lkdGgsIGludCBoZWlnaHQpID0gMDsKIApAQCAtMTExLDcgKzEy
Nyw3IEBAIHB1YmxpYzoKICAgICAvLyBSZXR1cm5zIHRoZSBpZCBvZiB0aGUgdGV4dHVyZSB3aGlj
aCBpcyB1c2VkIGZvciBzdG9yaW5nIHRoZSBjb250ZW50cyBvZgogICAgIC8vIHRoZSBmcmFtZWJ1
ZmZlciBhc3NvY2lhdGVkIHdpdGggdGhpcyBjb250ZXh0LiBUaGlzIHRleHR1cmUgaXMgYWNjZXNz
aWJsZQogICAgIC8vIGJ5IHRoZSBncHUtYmFzZWQgcGFnZSBjb21wb3NpdG9yLgotICAgIHZpcnR1
YWwgdW5zaWduZWQgZ2V0UGxhdGZvcm1UZXh0dXJlSWQoKSA9IDA7CisgICAgdmlydHVhbCBXZWJH
TElkIGdldFBsYXRmb3JtVGV4dHVyZUlkKCkgPSAwOwogCiAgICAgLy8gQ29waWVzIHRoZSBjb250
ZW50cyBvZiB0aGUgb2ZmLXNjcmVlbiByZW5kZXIgdGFyZ2V0IHVzZWQgYnkgdGhlIFdlYkdMCiAg
ICAgLy8gY29udGV4dCB0byB0aGUgY29ycmVzcG9uZGluZyB0ZXh0dXJlIHVzZWQgYnkgdGhlIGNv
bXBvc2l0b3IuCkBAIC0xMjUsMjA5ICsxNDEsMTkxIEBAIHB1YmxpYzoKICAgICAvLyBQZXIgdGhl
IGJlaGF2aW9yIG9mIGdsR2V0RXJyb3IsIHRoaXMgc3RvcmVzIGF0IG1vc3Qgb25lCiAgICAgLy8g
aW5zdGFuY2Ugb2YgYW55IGdpdmVuIGVycm9yLCBhbmQgcmV0dXJucyB0aGVtIGZyb20gY2FsbHMg
dG8KICAgICAvLyBnZXRFcnJvciBpbiB0aGUgb3JkZXIgdGhleSB3ZXJlIGFkZGVkLgotICAgIHZp
cnR1YWwgdm9pZCBzeW50aGVzaXplR0xFcnJvcih1bnNpZ25lZCBsb25nIGVycm9yKSA9IDA7Cisg
ICAgdmlydHVhbCB2b2lkIHN5bnRoZXNpemVHTEVycm9yKFdHQzNEZW51bSkgPSAwOworCisgICAg
dmlydHVhbCBib29sIGlzQ29udGV4dExvc3QoKSA9IDA7CiAKICAgICAvLyBHTF9DSFJPTUlVTV9t
YXBfc3ViCi0gICAgdmlydHVhbCB2b2lkKiBtYXBCdWZmZXJTdWJEYXRhQ0hST01JVU0odW5zaWdu
ZWQgdGFyZ2V0LCBpbnQgb2Zmc2V0LCBpbnQgc2l6ZSwgdW5zaWduZWQgYWNjZXNzKSA9IDA7Cisg
ICAgdmlydHVhbCB2b2lkKiBtYXBCdWZmZXJTdWJEYXRhQ0hST01JVU0oV0dDM0RlbnVtIHRhcmdl
dCwgV0dDM0RpbnRwdHIgb2Zmc2V0LCBXR0MzRHNpemVpcHRyIHNpemUsIFdHQzNEZW51bSBhY2Nl
c3MpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgdW5tYXBCdWZmZXJTdWJEYXRhQ0hST01JVU0oY29u
c3Qgdm9pZCopID0gMDsKLSAgICB2aXJ0dWFsIHZvaWQqIG1hcFRleFN1YkltYWdlMkRDSFJPTUlV
TSh1bnNpZ25lZCB0YXJnZXQsIGludCBsZXZlbCwgaW50IHhvZmZzZXQsIGludCB5b2Zmc2V0LCBp
bnQgd2lkdGgsIGludCBoZWlnaHQsIHVuc2lnbmVkIGZvcm1hdCwgdW5zaWduZWQgdHlwZSwgdW5z
aWduZWQgYWNjZXNzKSA9IDA7CisgICAgdmlydHVhbCB2b2lkKiBtYXBUZXhTdWJJbWFnZTJEQ0hS
T01JVU0oV0dDM0RlbnVtIHRhcmdldCwgV0dDM0RpbnQgbGV2ZWwsIFdHQzNEaW50IHhvZmZzZXQs
IFdHQzNEaW50IHlvZmZzZXQsIFdHQzNEc2l6ZWkgd2lkdGgsIFdHQzNEc2l6ZWkgaGVpZ2h0LCBX
R0MzRGVudW0gZm9ybWF0LCBXR0MzRGVudW0gdHlwZSwgV0dDM0RlbnVtIGFjY2VzcykgPSAwOwog
ICAgIHZpcnR1YWwgdm9pZCB1bm1hcFRleFN1YkltYWdlMkRDSFJPTUlVTShjb25zdCB2b2lkKikg
PSAwOwogCiAgICAgLy8gR0xfQ0hST01JVU1fY29weV90ZXh0dXJlX3RvX3BhcmVudF90ZXh0dXJl
Ci0gICAgdmlydHVhbCB2b2lkIGNvcHlUZXh0dXJlVG9QYXJlbnRUZXh0dXJlQ0hST01JVU0odW5z
aWduZWQgdGV4dHVyZSwgdW5zaWduZWQgcGFyZW50VGV4dHVyZSkgPSAwOworICAgIHZpcnR1YWwg
dm9pZCBjb3B5VGV4dHVyZVRvUGFyZW50VGV4dHVyZUNIUk9NSVVNKFdlYkdMSWQgdGV4dHVyZSwg
V2ViR0xJZCBwYXJlbnRUZXh0dXJlKSA9IDA7CiAKICAgICAvLyBHTF9DSFJPTUlVTV9yZXF1ZXN0
X2V4dGVuc2lvbgogICAgIHZpcnR1YWwgV2ViU3RyaW5nIGdldFJlcXVlc3RhYmxlRXh0ZW5zaW9u
c0NIUk9NSVVNKCkgPSAwOwogICAgIHZpcnR1YWwgdm9pZCByZXF1ZXN0RXh0ZW5zaW9uQ0hST01J
VU0oY29uc3QgY2hhciopID0gMDsKIAogICAgIC8vIEdMX0NIUk9NSVVNX2ZyYW1lYnVmZmVyX211
bHRpc2FtcGxlCi0gICAgdmlydHVhbCB2b2lkIGJsaXRGcmFtZWJ1ZmZlckNIUk9NSVVNKGludCBz
cmNYMCwgaW50IHNyY1kwLCBpbnQgc3JjWDEsIGludCBzcmNZMSwgaW50IGRzdFgwLCBpbnQgZHN0
WTAsIGludCBkc3RYMSwgaW50IGRzdFkxLCB1bnNpZ25lZCBtYXNrLCB1bnNpZ25lZCBmaWx0ZXIp
ID0gMDsKLSAgICB2aXJ0dWFsIHZvaWQgcmVuZGVyYnVmZmVyU3RvcmFnZU11bHRpc2FtcGxlQ0hS
T01JVU0odW5zaWduZWQgbG9uZyB0YXJnZXQsIGludCBzYW1wbGVzLCB1bnNpZ25lZCBpbnRlcm5h
bGZvcm1hdCwgdW5zaWduZWQgd2lkdGgsIHVuc2lnbmVkIGhlaWdodCkgPSAwOworICAgIHZpcnR1
YWwgdm9pZCBibGl0RnJhbWVidWZmZXJDSFJPTUlVTShXR0MzRGludCBzcmNYMCwgV0dDM0RpbnQg
c3JjWTAsIFdHQzNEaW50IHNyY1gxLCBXR0MzRGludCBzcmNZMSwgV0dDM0RpbnQgZHN0WDAsIFdH
QzNEaW50IGRzdFkwLCBXR0MzRGludCBkc3RYMSwgV0dDM0RpbnQgZHN0WTEsIFdHQzNEYml0Zmll
bGQgbWFzaywgV0dDM0RlbnVtIGZpbHRlcikgPSAwOworICAgIHZpcnR1YWwgdm9pZCByZW5kZXJi
dWZmZXJTdG9yYWdlTXVsdGlzYW1wbGVDSFJPTUlVTShXR0MzRGVudW0gdGFyZ2V0LCBXR0MzRHNp
emVpIHNhbXBsZXMsIFdHQzNEZW51bSBpbnRlcm5hbGZvcm1hdCwgV0dDM0RzaXplaSB3aWR0aCwg
V0dDM0RzaXplaSBoZWlnaHQpID0gMDsKIAogICAgIC8vIFRoZSBlbnRyeSBwb2ludHMgYmVsb3cg
bWFwIGRpcmVjdGx5IHRvIHRoZSBPcGVuR0wgRVMgMi4wIEFQSS4KICAgICAvLyBTZWU6IGh0dHA6
Ly93d3cua2hyb25vcy5vcmcvcmVnaXN0cnkvZ2xlcy8KICAgICAvLyBhbmQ6IGh0dHA6Ly93d3cu
a2hyb25vcy5vcmcvb3BlbmdsZXMvc2RrL2RvY3MvbWFuLwotICAgIHZpcnR1YWwgdm9pZCBhY3Rp
dmVUZXh0dXJlKHVuc2lnbmVkIGxvbmcgdGV4dHVyZSkgPSAwOworICAgIHZpcnR1YWwgdm9pZCBh
Y3RpdmVUZXh0dXJlKFdHQzNEZW51bSB0ZXh0dXJlKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIGF0
dGFjaFNoYWRlcihXZWJHTElkIHByb2dyYW0sIFdlYkdMSWQgc2hhZGVyKSA9IDA7Ci0gICAgdmly
dHVhbCB2b2lkIGJpbmRBdHRyaWJMb2NhdGlvbihXZWJHTElkIHByb2dyYW0sIHVuc2lnbmVkIGxv
bmcgaW5kZXgsIGNvbnN0IGNoYXIqIG5hbWUpID0gMDsKLSAgICB2aXJ0dWFsIHZvaWQgYmluZEJ1
ZmZlcih1bnNpZ25lZCBsb25nIHRhcmdldCwgV2ViR0xJZCBidWZmZXIpID0gMDsKLSAgICB2aXJ0
dWFsIHZvaWQgYmluZEZyYW1lYnVmZmVyKHVuc2lnbmVkIGxvbmcgdGFyZ2V0LCBXZWJHTElkIGZy
YW1lYnVmZmVyKSA9IDA7Ci0gICAgdmlydHVhbCB2b2lkIGJpbmRSZW5kZXJidWZmZXIodW5zaWdu
ZWQgbG9uZyB0YXJnZXQsIFdlYkdMSWQgcmVuZGVyYnVmZmVyKSA9IDA7Ci0gICAgdmlydHVhbCB2
b2lkIGJpbmRUZXh0dXJlKHVuc2lnbmVkIGxvbmcgdGFyZ2V0LCBXZWJHTElkIHRleHR1cmUpID0g
MDsKLSAgICB2aXJ0dWFsIHZvaWQgYmxlbmRDb2xvcihkb3VibGUgcmVkLCBkb3VibGUgZ3JlZW4s
IGRvdWJsZSBibHVlLCBkb3VibGUgYWxwaGEpID0gMDsKLSAgICB2aXJ0dWFsIHZvaWQgYmxlbmRF
cXVhdGlvbih1bnNpZ25lZCBsb25nIG1vZGUpID0gMDsKLSAgICB2aXJ0dWFsIHZvaWQgYmxlbmRF
cXVhdGlvblNlcGFyYXRlKHVuc2lnbmVkIGxvbmcgbW9kZVJHQiwgdW5zaWduZWQgbG9uZyBtb2Rl
QWxwaGEpID0gMDsKLSAgICB2aXJ0dWFsIHZvaWQgYmxlbmRGdW5jKHVuc2lnbmVkIGxvbmcgc2Zh
Y3RvciwgdW5zaWduZWQgbG9uZyBkZmFjdG9yKSA9IDA7Ci0gICAgdmlydHVhbCB2b2lkIGJsZW5k
RnVuY1NlcGFyYXRlKHVuc2lnbmVkIGxvbmcgc3JjUkdCLCB1bnNpZ25lZCBsb25nIGRzdFJHQiwg
dW5zaWduZWQgbG9uZyBzcmNBbHBoYSwgdW5zaWduZWQgbG9uZyBkc3RBbHBoYSkgPSAwOwotCi0g
ICAgdmlydHVhbCB2b2lkIGJ1ZmZlckRhdGEodW5zaWduZWQgbG9uZyB0YXJnZXQsIGludCBzaXpl
LCBjb25zdCB2b2lkKiBkYXRhLCB1bnNpZ25lZCBsb25nIHVzYWdlKSA9IDA7Ci0gICAgdmlydHVh
bCB2b2lkIGJ1ZmZlclN1YkRhdGEodW5zaWduZWQgbG9uZyB0YXJnZXQsIGxvbmcgb2Zmc2V0LCBp
bnQgc2l6ZSwgY29uc3Qgdm9pZCogZGF0YSkgPSAwOwotCi0gICAgdmlydHVhbCB1bnNpZ25lZCBs
b25nIGNoZWNrRnJhbWVidWZmZXJTdGF0dXModW5zaWduZWQgbG9uZyB0YXJnZXQpID0gMDsKLSAg
ICB2aXJ0dWFsIHZvaWQgY2xlYXIodW5zaWduZWQgbG9uZyBtYXNrKSA9IDA7Ci0gICAgdmlydHVh
bCB2b2lkIGNsZWFyQ29sb3IoZG91YmxlIHJlZCwgZG91YmxlIGdyZWVuLCBkb3VibGUgYmx1ZSwg
ZG91YmxlIGFscGhhKSA9IDA7Ci0gICAgdmlydHVhbCB2b2lkIGNsZWFyRGVwdGgoZG91YmxlIGRl
cHRoKSA9IDA7Ci0gICAgdmlydHVhbCB2b2lkIGNsZWFyU3RlbmNpbChsb25nIHMpID0gMDsKLSAg
ICB2aXJ0dWFsIHZvaWQgY29sb3JNYXNrKGJvb2wgcmVkLCBib29sIGdyZWVuLCBib29sIGJsdWUs
IGJvb2wgYWxwaGEpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgYmluZEF0dHJpYkxvY2F0aW9uKFdl
YkdMSWQgcHJvZ3JhbSwgV0dDM0R1aW50IGluZGV4LCBjb25zdCBXR0MzRGNoYXIqIG5hbWUpID0g
MDsKKyAgICB2aXJ0dWFsIHZvaWQgYmluZEJ1ZmZlcihXR0MzRGVudW0gdGFyZ2V0LCBXZWJHTElk
IGJ1ZmZlcikgPSAwOworICAgIHZpcnR1YWwgdm9pZCBiaW5kRnJhbWVidWZmZXIoV0dDM0RlbnVt
IHRhcmdldCwgV2ViR0xJZCBmcmFtZWJ1ZmZlcikgPSAwOworICAgIHZpcnR1YWwgdm9pZCBiaW5k
UmVuZGVyYnVmZmVyKFdHQzNEZW51bSB0YXJnZXQsIFdlYkdMSWQgcmVuZGVyYnVmZmVyKSA9IDA7
CisgICAgdmlydHVhbCB2b2lkIGJpbmRUZXh0dXJlKFdHQzNEZW51bSB0YXJnZXQsIFdlYkdMSWQg
dGV4dHVyZSkgPSAwOworICAgIHZpcnR1YWwgdm9pZCBibGVuZENvbG9yKFdHQzNEY2xhbXBmIHJl
ZCwgV0dDM0RjbGFtcGYgZ3JlZW4sIFdHQzNEY2xhbXBmIGJsdWUsIFdHQzNEY2xhbXBmIGFscGhh
KSA9IDA7CisgICAgdmlydHVhbCB2b2lkIGJsZW5kRXF1YXRpb24oV0dDM0RlbnVtIG1vZGUpID0g
MDsKKyAgICB2aXJ0dWFsIHZvaWQgYmxlbmRFcXVhdGlvblNlcGFyYXRlKFdHQzNEZW51bSBtb2Rl
UkdCLCBXR0MzRGVudW0gbW9kZUFscGhhKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIGJsZW5kRnVu
YyhXR0MzRGVudW0gc2ZhY3RvciwgV0dDM0RlbnVtIGRmYWN0b3IpID0gMDsKKyAgICB2aXJ0dWFs
IHZvaWQgYmxlbmRGdW5jU2VwYXJhdGUoV0dDM0RlbnVtIHNyY1JHQiwgV0dDM0RlbnVtIGRzdFJH
QiwgV0dDM0RlbnVtIHNyY0FscGhhLCBXR0MzRGVudW0gZHN0QWxwaGEpID0gMDsKKworICAgIHZp
cnR1YWwgdm9pZCBidWZmZXJEYXRhKFdHQzNEZW51bSB0YXJnZXQsIFdHQzNEc2l6ZWlwdHIgc2l6
ZSwgY29uc3Qgdm9pZCogZGF0YSwgV0dDM0RlbnVtIHVzYWdlKSA9IDA7CisgICAgdmlydHVhbCB2
b2lkIGJ1ZmZlclN1YkRhdGEoV0dDM0RlbnVtIHRhcmdldCwgV0dDM0RpbnRwdHIgb2Zmc2V0LCBX
R0MzRHNpemVpcHRyIHNpemUsIGNvbnN0IHZvaWQqIGRhdGEpID0gMDsKKworICAgIHZpcnR1YWwg
V0dDM0RlbnVtIGNoZWNrRnJhbWVidWZmZXJTdGF0dXMoV0dDM0RlbnVtIHRhcmdldCkgPSAwOwor
ICAgIHZpcnR1YWwgdm9pZCBjbGVhcihXR0MzRGJpdGZpZWxkIG1hc2spID0gMDsKKyAgICB2aXJ0
dWFsIHZvaWQgY2xlYXJDb2xvcihXR0MzRGNsYW1wZiByZWQsIFdHQzNEY2xhbXBmIGdyZWVuLCBX
R0MzRGNsYW1wZiBibHVlLCBXR0MzRGNsYW1wZiBhbHBoYSkgPSAwOworICAgIHZpcnR1YWwgdm9p
ZCBjbGVhckRlcHRoKFdHQzNEY2xhbXBmIGRlcHRoKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIGNs
ZWFyU3RlbmNpbChXR0MzRGludCBzKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIGNvbG9yTWFzayhX
R0MzRGJvb2xlYW4gcmVkLCBXR0MzRGJvb2xlYW4gZ3JlZW4sIFdHQzNEYm9vbGVhbiBibHVlLCBX
R0MzRGJvb2xlYW4gYWxwaGEpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgY29tcGlsZVNoYWRlcihX
ZWJHTElkIHNoYWRlcikgPSAwOwogCi0gICAgdmlydHVhbCB2b2lkIGNvcHlUZXhJbWFnZTJEKHVu
c2lnbmVkIGxvbmcgdGFyZ2V0LCBsb25nIGxldmVsLCB1bnNpZ25lZCBsb25nIGludGVybmFsZm9y
bWF0LCBsb25nIHgsIGxvbmcgeSwgdW5zaWduZWQgbG9uZyB3aWR0aCwgdW5zaWduZWQgbG9uZyBo
ZWlnaHQsIGxvbmcgYm9yZGVyKSA9IDA7Ci0gICAgdmlydHVhbCB2b2lkIGNvcHlUZXhTdWJJbWFn
ZTJEKHVuc2lnbmVkIGxvbmcgdGFyZ2V0LCBsb25nIGxldmVsLCBsb25nIHhvZmZzZXQsIGxvbmcg
eW9mZnNldCwgbG9uZyB4LCBsb25nIHksIHVuc2lnbmVkIGxvbmcgd2lkdGgsIHVuc2lnbmVkIGxv
bmcgaGVpZ2h0KSA9IDA7Ci0gICAgdmlydHVhbCB2b2lkIGN1bGxGYWNlKHVuc2lnbmVkIGxvbmcg
bW9kZSkgPSAwOwotICAgIHZpcnR1YWwgdm9pZCBkZXB0aEZ1bmModW5zaWduZWQgbG9uZyBmdW5j
KSA9IDA7Ci0gICAgdmlydHVhbCB2b2lkIGRlcHRoTWFzayhib29sIGZsYWcpID0gMDsKLSAgICB2
aXJ0dWFsIHZvaWQgZGVwdGhSYW5nZShkb3VibGUgek5lYXIsIGRvdWJsZSB6RmFyKSA9IDA7Cisg
ICAgdmlydHVhbCB2b2lkIGNvcHlUZXhJbWFnZTJEKFdHQzNEZW51bSB0YXJnZXQsIFdHQzNEaW50
IGxldmVsLCBXR0MzRGVudW0gaW50ZXJuYWxmb3JtYXQsIFdHQzNEaW50IHgsIFdHQzNEaW50IHks
IFdHQzNEc2l6ZWkgd2lkdGgsIFdHQzNEc2l6ZWkgaGVpZ2h0LCBXR0MzRGludCBib3JkZXIpID0g
MDsKKyAgICB2aXJ0dWFsIHZvaWQgY29weVRleFN1YkltYWdlMkQoV0dDM0RlbnVtIHRhcmdldCwg
V0dDM0RpbnQgbGV2ZWwsIFdHQzNEaW50IHhvZmZzZXQsIFdHQzNEaW50IHlvZmZzZXQsIFdHQzNE
aW50IHgsIFdHQzNEaW50IHksIFdHQzNEc2l6ZWkgd2lkdGgsIFdHQzNEc2l6ZWkgaGVpZ2h0KSA9
IDA7CisgICAgdmlydHVhbCB2b2lkIGN1bGxGYWNlKFdHQzNEZW51bSBtb2RlKSA9IDA7CisgICAg
dmlydHVhbCB2b2lkIGRlcHRoRnVuYyhXR0MzRGVudW0gZnVuYykgPSAwOworICAgIHZpcnR1YWwg
dm9pZCBkZXB0aE1hc2soV0dDM0Rib29sZWFuIGZsYWcpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQg
ZGVwdGhSYW5nZShXR0MzRGNsYW1wZiB6TmVhciwgV0dDM0RjbGFtcGYgekZhcikgPSAwOwogICAg
IHZpcnR1YWwgdm9pZCBkZXRhY2hTaGFkZXIoV2ViR0xJZCBwcm9ncmFtLCBXZWJHTElkIHNoYWRl
cikgPSAwOwotICAgIHZpcnR1YWwgdm9pZCBkaXNhYmxlKHVuc2lnbmVkIGxvbmcgY2FwKSA9IDA7
Ci0gICAgdmlydHVhbCB2b2lkIGRpc2FibGVWZXJ0ZXhBdHRyaWJBcnJheSh1bnNpZ25lZCBsb25n
IGluZGV4KSA9IDA7Ci0gICAgdmlydHVhbCB2b2lkIGRyYXdBcnJheXModW5zaWduZWQgbG9uZyBt
b2RlLCBsb25nIGZpcnN0LCBsb25nIGNvdW50KSA9IDA7Ci0gICAgdmlydHVhbCB2b2lkIGRyYXdF
bGVtZW50cyh1bnNpZ25lZCBsb25nIG1vZGUsIHVuc2lnbmVkIGxvbmcgY291bnQsIHVuc2lnbmVk
IGxvbmcgdHlwZSwgbG9uZyBvZmZzZXQpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgZGlzYWJsZShX
R0MzRGVudW0gY2FwKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIGRpc2FibGVWZXJ0ZXhBdHRyaWJB
cnJheShXR0MzRHVpbnQgaW5kZXgpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgZHJhd0FycmF5cyhX
R0MzRGVudW0gbW9kZSwgV0dDM0RpbnQgZmlyc3QsIFdHQzNEc2l6ZWkgY291bnQpID0gMDsKKyAg
ICB2aXJ0dWFsIHZvaWQgZHJhd0VsZW1lbnRzKFdHQzNEZW51bSBtb2RlLCBXR0MzRHNpemVpIGNv
dW50LCBXR0MzRGVudW0gdHlwZSwgV0dDM0RpbnRwdHIgb2Zmc2V0KSA9IDA7CiAKLSAgICB2aXJ0
dWFsIHZvaWQgZW5hYmxlKHVuc2lnbmVkIGxvbmcgY2FwKSA9IDA7Ci0gICAgdmlydHVhbCB2b2lk
IGVuYWJsZVZlcnRleEF0dHJpYkFycmF5KHVuc2lnbmVkIGxvbmcgaW5kZXgpID0gMDsKKyAgICB2
aXJ0dWFsIHZvaWQgZW5hYmxlKFdHQzNEZW51bSBjYXApID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQg
ZW5hYmxlVmVydGV4QXR0cmliQXJyYXkoV0dDM0R1aW50IGluZGV4KSA9IDA7CiAgICAgdmlydHVh
bCB2b2lkIGZpbmlzaCgpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgZmx1c2goKSA9IDA7Ci0gICAg
dmlydHVhbCB2b2lkIGZyYW1lYnVmZmVyUmVuZGVyYnVmZmVyKHVuc2lnbmVkIGxvbmcgdGFyZ2V0
LCB1bnNpZ25lZCBsb25nIGF0dGFjaG1lbnQsIHVuc2lnbmVkIGxvbmcgcmVuZGVyYnVmZmVydGFy
Z2V0LCBXZWJHTElkIHJlbmRlcmJ1ZmZlcikgPSAwOwotICAgIHZpcnR1YWwgdm9pZCBmcmFtZWJ1
ZmZlclRleHR1cmUyRCh1bnNpZ25lZCBsb25nIHRhcmdldCwgdW5zaWduZWQgbG9uZyBhdHRhY2ht
ZW50LCB1bnNpZ25lZCBsb25nIHRleHRhcmdldCwgV2ViR0xJZCB0ZXh0dXJlLCBsb25nIGxldmVs
KSA9IDA7Ci0gICAgdmlydHVhbCB2b2lkIGZyb250RmFjZSh1bnNpZ25lZCBsb25nIG1vZGUpID0g
MDsKLSAgICB2aXJ0dWFsIHZvaWQgZ2VuZXJhdGVNaXBtYXAodW5zaWduZWQgbG9uZyB0YXJnZXQp
ID0gMDsKLQotICAgIHZpcnR1YWwgYm9vbCBnZXRBY3RpdmVBdHRyaWIoV2ViR0xJZCBwcm9ncmFt
LCB1bnNpZ25lZCBsb25nIGluZGV4LCBBY3RpdmVJbmZvJikgPSAwOwotICAgIHZpcnR1YWwgYm9v
bCBnZXRBY3RpdmVVbmlmb3JtKFdlYkdMSWQgcHJvZ3JhbSwgdW5zaWduZWQgbG9uZyBpbmRleCwg
QWN0aXZlSW5mbyYpID0gMDsKLQotICAgIHZpcnR1YWwgdm9pZCBnZXRBdHRhY2hlZFNoYWRlcnMo
V2ViR0xJZCBwcm9ncmFtLCBpbnQgbWF4Q291bnQsIGludCogY291bnQsIHVuc2lnbmVkIGludCog
c2hhZGVycykgPSAwOwotCi0gICAgdmlydHVhbCBpbnQgIGdldEF0dHJpYkxvY2F0aW9uKFdlYkdM
SWQgcHJvZ3JhbSwgY29uc3QgY2hhciogbmFtZSkgPSAwOwotCi0gICAgdmlydHVhbCB2b2lkIGdl
dEJvb2xlYW52KHVuc2lnbmVkIGxvbmcgcG5hbWUsIHVuc2lnbmVkIGNoYXIqIHZhbHVlKSA9IDA7
Ci0KLSAgICB2aXJ0dWFsIHZvaWQgZ2V0QnVmZmVyUGFyYW1ldGVyaXYodW5zaWduZWQgbG9uZyB0
YXJnZXQsIHVuc2lnbmVkIGxvbmcgcG5hbWUsIGludCogdmFsdWUpID0gMDsKLQorICAgIHZpcnR1
YWwgdm9pZCBmcmFtZWJ1ZmZlclJlbmRlcmJ1ZmZlcihXR0MzRGVudW0gdGFyZ2V0LCBXR0MzRGVu
dW0gYXR0YWNobWVudCwgV0dDM0RlbnVtIHJlbmRlcmJ1ZmZlcnRhcmdldCwgV2ViR0xJZCByZW5k
ZXJidWZmZXIpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgZnJhbWVidWZmZXJUZXh0dXJlMkQoV0dD
M0RlbnVtIHRhcmdldCwgV0dDM0RlbnVtIGF0dGFjaG1lbnQsIFdHQzNEZW51bSB0ZXh0YXJnZXQs
IFdlYkdMSWQgdGV4dHVyZSwgV0dDM0RpbnQgbGV2ZWwpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQg
ZnJvbnRGYWNlKFdHQzNEZW51bSBtb2RlKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIGdlbmVyYXRl
TWlwbWFwKFdHQzNEZW51bSB0YXJnZXQpID0gMDsKKworICAgIHZpcnR1YWwgYm9vbCBnZXRBY3Rp
dmVBdHRyaWIoV2ViR0xJZCBwcm9ncmFtLCBXR0MzRHVpbnQgaW5kZXgsIEFjdGl2ZUluZm8mKSA9
IDA7CisgICAgdmlydHVhbCBib29sIGdldEFjdGl2ZVVuaWZvcm0oV2ViR0xJZCBwcm9ncmFtLCBX
R0MzRHVpbnQgaW5kZXgsIEFjdGl2ZUluZm8mKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIGdldEF0
dGFjaGVkU2hhZGVycyhXZWJHTElkIHByb2dyYW0sIFdHQzNEc2l6ZWkgbWF4Q291bnQsIFdHQzNE
c2l6ZWkqIGNvdW50LCBXZWJHTElkKiBzaGFkZXJzKSA9IDA7CisgICAgdmlydHVhbCBXR0MzRGlu
dCBnZXRBdHRyaWJMb2NhdGlvbihXZWJHTElkIHByb2dyYW0sIGNvbnN0IFdHQzNEY2hhciogbmFt
ZSkgPSAwOworICAgIHZpcnR1YWwgdm9pZCBnZXRCb29sZWFudihXR0MzRGVudW0gcG5hbWUsIFdH
QzNEYm9vbGVhbiogdmFsdWUpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgZ2V0QnVmZmVyUGFyYW1l
dGVyaXYoV0dDM0RlbnVtIHRhcmdldCwgV0dDM0RlbnVtIHBuYW1lLCBXR0MzRGludCogdmFsdWUp
ID0gMDsKICAgICB2aXJ0dWFsIEF0dHJpYnV0ZXMgZ2V0Q29udGV4dEF0dHJpYnV0ZXMoKSA9IDA7
Ci0KLSAgICB2aXJ0dWFsIHVuc2lnbmVkIGxvbmcgZ2V0RXJyb3IoKSA9IDA7Ci0KLSAgICB2aXJ0
dWFsIGJvb2wgaXNDb250ZXh0TG9zdCgpID0gMDsKLQotICAgIHZpcnR1YWwgdm9pZCBnZXRGbG9h
dHYodW5zaWduZWQgbG9uZyBwbmFtZSwgZmxvYXQqIHZhbHVlKSA9IDA7Ci0KLSAgICB2aXJ0dWFs
IHZvaWQgZ2V0RnJhbWVidWZmZXJBdHRhY2htZW50UGFyYW1ldGVyaXYodW5zaWduZWQgbG9uZyB0
YXJnZXQsIHVuc2lnbmVkIGxvbmcgYXR0YWNobWVudCwgdW5zaWduZWQgbG9uZyBwbmFtZSwgaW50
KiB2YWx1ZSkgPSAwOwotCi0gICAgdmlydHVhbCB2b2lkIGdldEludGVnZXJ2KHVuc2lnbmVkIGxv
bmcgcG5hbWUsIGludCogdmFsdWUpID0gMDsKLQotICAgIHZpcnR1YWwgdm9pZCBnZXRQcm9ncmFt
aXYoV2ViR0xJZCBwcm9ncmFtLCB1bnNpZ25lZCBsb25nIHBuYW1lLCBpbnQqIHZhbHVlKSA9IDA7
Ci0KKyAgICB2aXJ0dWFsIFdHQzNEZW51bSBnZXRFcnJvcigpID0gMDsKKyAgICB2aXJ0dWFsIHZv
aWQgZ2V0RmxvYXR2KFdHQzNEZW51bSBwbmFtZSwgV0dDM0RmbG9hdCogdmFsdWUpID0gMDsKKyAg
ICB2aXJ0dWFsIHZvaWQgZ2V0RnJhbWVidWZmZXJBdHRhY2htZW50UGFyYW1ldGVyaXYoV0dDM0Rl
bnVtIHRhcmdldCwgV0dDM0RlbnVtIGF0dGFjaG1lbnQsIFdHQzNEZW51bSBwbmFtZSwgV0dDM0Rp
bnQqIHZhbHVlKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIGdldEludGVnZXJ2KFdHQzNEZW51bSBw
bmFtZSwgV0dDM0RpbnQqIHZhbHVlKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIGdldFByb2dyYW1p
dihXZWJHTElkIHByb2dyYW0sIFdHQzNEZW51bSBwbmFtZSwgV0dDM0RpbnQqIHZhbHVlKSA9IDA7
CiAgICAgdmlydHVhbCBXZWJTdHJpbmcgZ2V0UHJvZ3JhbUluZm9Mb2coV2ViR0xJZCBwcm9ncmFt
KSA9IDA7Ci0KLSAgICB2aXJ0dWFsIHZvaWQgZ2V0UmVuZGVyYnVmZmVyUGFyYW1ldGVyaXYodW5z
aWduZWQgbG9uZyB0YXJnZXQsIHVuc2lnbmVkIGxvbmcgcG5hbWUsIGludCogdmFsdWUpID0gMDsK
LQotICAgIHZpcnR1YWwgdm9pZCBnZXRTaGFkZXJpdihXZWJHTElkIHNoYWRlciwgdW5zaWduZWQg
bG9uZyBwbmFtZSwgaW50KiB2YWx1ZSkgPSAwOwotCisgICAgdmlydHVhbCB2b2lkIGdldFJlbmRl
cmJ1ZmZlclBhcmFtZXRlcml2KFdHQzNEZW51bSB0YXJnZXQsIFdHQzNEZW51bSBwbmFtZSwgV0dD
M0RpbnQqIHZhbHVlKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIGdldFNoYWRlcml2KFdlYkdMSWQg
c2hhZGVyLCBXR0MzRGVudW0gcG5hbWUsIFdHQzNEaW50KiB2YWx1ZSkgPSAwOwogICAgIHZpcnR1
YWwgV2ViU3RyaW5nIGdldFNoYWRlckluZm9Mb2coV2ViR0xJZCBzaGFkZXIpID0gMDsKIAogICAg
IC8vIFRCRAogICAgIC8vIHZvaWQgZ2xHZXRTaGFkZXJQcmVjaXNpb25Gb3JtYXQgKEdMZW51bSBz
aGFkZXJ0eXBlLCBHTGVudW0gcHJlY2lzaW9udHlwZSwgR0xpbnQqIHJhbmdlLCBHTGludCogcHJl
Y2lzaW9uKTsKIAogICAgIHZpcnR1YWwgV2ViU3RyaW5nIGdldFNoYWRlclNvdXJjZShXZWJHTElk
IHNoYWRlcikgPSAwOwotICAgIHZpcnR1YWwgV2ViU3RyaW5nIGdldFN0cmluZyh1bnNpZ25lZCBs
b25nIG5hbWUpID0gMDsKLQotICAgIHZpcnR1YWwgdm9pZCBnZXRUZXhQYXJhbWV0ZXJmdih1bnNp
Z25lZCBsb25nIHRhcmdldCwgdW5zaWduZWQgbG9uZyBwbmFtZSwgZmxvYXQqIHZhbHVlKSA9IDA7
Ci0gICAgdmlydHVhbCB2b2lkIGdldFRleFBhcmFtZXRlcml2KHVuc2lnbmVkIGxvbmcgdGFyZ2V0
LCB1bnNpZ25lZCBsb25nIHBuYW1lLCBpbnQqIHZhbHVlKSA9IDA7Ci0KLSAgICB2aXJ0dWFsIHZv
aWQgZ2V0VW5pZm9ybWZ2KFdlYkdMSWQgcHJvZ3JhbSwgbG9uZyBsb2NhdGlvbiwgZmxvYXQqIHZh
bHVlKSA9IDA7Ci0gICAgdmlydHVhbCB2b2lkIGdldFVuaWZvcm1pdihXZWJHTElkIHByb2dyYW0s
IGxvbmcgbG9jYXRpb24sIGludCogdmFsdWUpID0gMDsKLQotICAgIHZpcnR1YWwgbG9uZyBnZXRV
bmlmb3JtTG9jYXRpb24oV2ViR0xJZCBwcm9ncmFtLCBjb25zdCBjaGFyKiBuYW1lKSA9IDA7Ci0K
LSAgICB2aXJ0dWFsIHZvaWQgZ2V0VmVydGV4QXR0cmliZnYodW5zaWduZWQgbG9uZyBpbmRleCwg
dW5zaWduZWQgbG9uZyBwbmFtZSwgZmxvYXQqIHZhbHVlKSA9IDA7Ci0gICAgdmlydHVhbCB2b2lk
IGdldFZlcnRleEF0dHJpYml2KHVuc2lnbmVkIGxvbmcgaW5kZXgsIHVuc2lnbmVkIGxvbmcgcG5h
bWUsIGludCogdmFsdWUpID0gMDsKLQotICAgIHZpcnR1YWwgbG9uZyBnZXRWZXJ0ZXhBdHRyaWJP
ZmZzZXQodW5zaWduZWQgbG9uZyBpbmRleCwgdW5zaWduZWQgbG9uZyBwbmFtZSkgPSAwOwotCi0g
ICAgdmlydHVhbCB2b2lkIGhpbnQodW5zaWduZWQgbG9uZyB0YXJnZXQsIHVuc2lnbmVkIGxvbmcg
bW9kZSkgPSAwOwotICAgIHZpcnR1YWwgYm9vbCBpc0J1ZmZlcihXZWJHTElkIGJ1ZmZlcikgPSAw
OwotICAgIHZpcnR1YWwgYm9vbCBpc0VuYWJsZWQodW5zaWduZWQgbG9uZyBjYXApID0gMDsKLSAg
ICB2aXJ0dWFsIGJvb2wgaXNGcmFtZWJ1ZmZlcihXZWJHTElkIGZyYW1lYnVmZmVyKSA9IDA7Ci0g
ICAgdmlydHVhbCBib29sIGlzUHJvZ3JhbShXZWJHTElkIHByb2dyYW0pID0gMDsKLSAgICB2aXJ0
dWFsIGJvb2wgaXNSZW5kZXJidWZmZXIoV2ViR0xJZCByZW5kZXJidWZmZXIpID0gMDsKLSAgICB2
aXJ0dWFsIGJvb2wgaXNTaGFkZXIoV2ViR0xJZCBzaGFkZXIpID0gMDsKLSAgICB2aXJ0dWFsIGJv
b2wgaXNUZXh0dXJlKFdlYkdMSWQgdGV4dHVyZSkgPSAwOwotICAgIHZpcnR1YWwgdm9pZCBsaW5l
V2lkdGgoZG91YmxlKSA9IDA7CisgICAgdmlydHVhbCBXZWJTdHJpbmcgZ2V0U3RyaW5nKFdHQzNE
ZW51bSBuYW1lKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIGdldFRleFBhcmFtZXRlcmZ2KFdHQzNE
ZW51bSB0YXJnZXQsIFdHQzNEZW51bSBwbmFtZSwgV0dDM0RmbG9hdCogdmFsdWUpID0gMDsKKyAg
ICB2aXJ0dWFsIHZvaWQgZ2V0VGV4UGFyYW1ldGVyaXYoV0dDM0RlbnVtIHRhcmdldCwgV0dDM0Rl
bnVtIHBuYW1lLCBXR0MzRGludCogdmFsdWUpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgZ2V0VW5p
Zm9ybWZ2KFdlYkdMSWQgcHJvZ3JhbSwgV0dDM0RpbnQgbG9jYXRpb24sIFdHQzNEZmxvYXQqIHZh
bHVlKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIGdldFVuaWZvcm1pdihXZWJHTElkIHByb2dyYW0s
IFdHQzNEaW50IGxvY2F0aW9uLCBXR0MzRGludCogdmFsdWUpID0gMDsKKyAgICB2aXJ0dWFsIFdH
QzNEaW50IGdldFVuaWZvcm1Mb2NhdGlvbihXZWJHTElkIHByb2dyYW0sIGNvbnN0IFdHQzNEY2hh
ciogbmFtZSkgPSAwOworICAgIHZpcnR1YWwgdm9pZCBnZXRWZXJ0ZXhBdHRyaWJmdihXR0MzRHVp
bnQgaW5kZXgsIFdHQzNEZW51bSBwbmFtZSwgV0dDM0RmbG9hdCogdmFsdWUpID0gMDsKKyAgICB2
aXJ0dWFsIHZvaWQgZ2V0VmVydGV4QXR0cmliaXYoV0dDM0R1aW50IGluZGV4LCBXR0MzRGVudW0g
cG5hbWUsIFdHQzNEaW50KiB2YWx1ZSkgPSAwOworICAgIHZpcnR1YWwgV0dDM0RzaXplaXB0ciBn
ZXRWZXJ0ZXhBdHRyaWJPZmZzZXQoV0dDM0R1aW50IGluZGV4LCBXR0MzRGVudW0gcG5hbWUpID0g
MDsKKworICAgIHZpcnR1YWwgdm9pZCBoaW50KFdHQzNEZW51bSB0YXJnZXQsIFdHQzNEZW51bSBt
b2RlKSA9IDA7CisgICAgdmlydHVhbCBXR0MzRGJvb2xlYW4gaXNCdWZmZXIoV2ViR0xJZCBidWZm
ZXIpID0gMDsKKyAgICB2aXJ0dWFsIFdHQzNEYm9vbGVhbiBpc0VuYWJsZWQoV0dDM0RlbnVtIGNh
cCkgPSAwOworICAgIHZpcnR1YWwgV0dDM0Rib29sZWFuIGlzRnJhbWVidWZmZXIoV2ViR0xJZCBm
cmFtZWJ1ZmZlcikgPSAwOworICAgIHZpcnR1YWwgV0dDM0Rib29sZWFuIGlzUHJvZ3JhbShXZWJH
TElkIHByb2dyYW0pID0gMDsKKyAgICB2aXJ0dWFsIFdHQzNEYm9vbGVhbiBpc1JlbmRlcmJ1ZmZl
cihXZWJHTElkIHJlbmRlcmJ1ZmZlcikgPSAwOworICAgIHZpcnR1YWwgV0dDM0Rib29sZWFuIGlz
U2hhZGVyKFdlYkdMSWQgc2hhZGVyKSA9IDA7CisgICAgdmlydHVhbCBXR0MzRGJvb2xlYW4gaXNU
ZXh0dXJlKFdlYkdMSWQgdGV4dHVyZSkgPSAwOworICAgIHZpcnR1YWwgdm9pZCBsaW5lV2lkdGgo
V0dDM0RmbG9hdCkgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBsaW5rUHJvZ3JhbShXZWJHTElkIHBy
b2dyYW0pID0gMDsKLSAgICB2aXJ0dWFsIHZvaWQgcGl4ZWxTdG9yZWkodW5zaWduZWQgbG9uZyBw
bmFtZSwgbG9uZyBwYXJhbSkgPSAwOwotICAgIHZpcnR1YWwgdm9pZCBwb2x5Z29uT2Zmc2V0KGRv
dWJsZSBmYWN0b3IsIGRvdWJsZSB1bml0cykgPSAwOworICAgIHZpcnR1YWwgdm9pZCBwaXhlbFN0
b3JlaShXR0MzRGVudW0gcG5hbWUsIFdHQzNEaW50IHBhcmFtKSA9IDA7CisgICAgdmlydHVhbCB2
b2lkIHBvbHlnb25PZmZzZXQoV0dDM0RmbG9hdCBmYWN0b3IsIFdHQzNEZmxvYXQgdW5pdHMpID0g
MDsKIAotICAgIHZpcnR1YWwgdm9pZCByZWFkUGl4ZWxzKGxvbmcgeCwgbG9uZyB5LCB1bnNpZ25l
ZCBsb25nIHdpZHRoLCB1bnNpZ25lZCBsb25nIGhlaWdodCwgdW5zaWduZWQgbG9uZyBmb3JtYXQs
IHVuc2lnbmVkIGxvbmcgdHlwZSwgdm9pZCogcGl4ZWxzKSA9IDA7CisgICAgdmlydHVhbCB2b2lk
IHJlYWRQaXhlbHMoV0dDM0RpbnQgeCwgV0dDM0RpbnQgeSwgV0dDM0RzaXplaSB3aWR0aCwgV0dD
M0RzaXplaSBoZWlnaHQsIFdHQzNEZW51bSBmb3JtYXQsIFdHQzNEZW51bSB0eXBlLCB2b2lkKiBw
aXhlbHMpID0gMDsKIAogICAgIHZpcnR1YWwgdm9pZCByZWxlYXNlU2hhZGVyQ29tcGlsZXIoKSA9
IDA7Ci0gICAgdmlydHVhbCB2b2lkIHJlbmRlcmJ1ZmZlclN0b3JhZ2UodW5zaWduZWQgbG9uZyB0
YXJnZXQsIHVuc2lnbmVkIGxvbmcgaW50ZXJuYWxmb3JtYXQsIHVuc2lnbmVkIGxvbmcgd2lkdGgs
IHVuc2lnbmVkIGxvbmcgaGVpZ2h0KSA9IDA7Ci0gICAgdmlydHVhbCB2b2lkIHNhbXBsZUNvdmVy
YWdlKGRvdWJsZSB2YWx1ZSwgYm9vbCBpbnZlcnQpID0gMDsKLSAgICB2aXJ0dWFsIHZvaWQgc2Np
c3Nvcihsb25nIHgsIGxvbmcgeSwgdW5zaWduZWQgbG9uZyB3aWR0aCwgdW5zaWduZWQgbG9uZyBo
ZWlnaHQpID0gMDsKLSAgICB2aXJ0dWFsIHZvaWQgc2hhZGVyU291cmNlKFdlYkdMSWQgc2hhZGVy
LCBjb25zdCBjaGFyKiBzdHJpbmcpID0gMDsKLSAgICB2aXJ0dWFsIHZvaWQgc3RlbmNpbEZ1bmMo
dW5zaWduZWQgbG9uZyBmdW5jLCBsb25nIHJlZiwgdW5zaWduZWQgbG9uZyBtYXNrKSA9IDA7Ci0g
ICAgdmlydHVhbCB2b2lkIHN0ZW5jaWxGdW5jU2VwYXJhdGUodW5zaWduZWQgbG9uZyBmYWNlLCB1
bnNpZ25lZCBsb25nIGZ1bmMsIGxvbmcgcmVmLCB1bnNpZ25lZCBsb25nIG1hc2spID0gMDsKLSAg
ICB2aXJ0dWFsIHZvaWQgc3RlbmNpbE1hc2sodW5zaWduZWQgbG9uZyBtYXNrKSA9IDA7Ci0gICAg
dmlydHVhbCB2b2lkIHN0ZW5jaWxNYXNrU2VwYXJhdGUodW5zaWduZWQgbG9uZyBmYWNlLCB1bnNp
Z25lZCBsb25nIG1hc2spID0gMDsKLSAgICB2aXJ0dWFsIHZvaWQgc3RlbmNpbE9wKHVuc2lnbmVk
IGxvbmcgZmFpbCwgdW5zaWduZWQgbG9uZyB6ZmFpbCwgdW5zaWduZWQgbG9uZyB6cGFzcykgPSAw
OwotICAgIHZpcnR1YWwgdm9pZCBzdGVuY2lsT3BTZXBhcmF0ZSh1bnNpZ25lZCBsb25nIGZhY2Us
IHVuc2lnbmVkIGxvbmcgZmFpbCwgdW5zaWduZWQgbG9uZyB6ZmFpbCwgdW5zaWduZWQgbG9uZyB6
cGFzcykgPSAwOwotCi0gICAgdmlydHVhbCB2b2lkIHRleEltYWdlMkQodW5zaWduZWQgdGFyZ2V0
LCB1bnNpZ25lZCBsZXZlbCwgdW5zaWduZWQgaW50ZXJuYWxmb3JtYXQsIHVuc2lnbmVkIHdpZHRo
LCB1bnNpZ25lZCBoZWlnaHQsIHVuc2lnbmVkIGJvcmRlciwgdW5zaWduZWQgZm9ybWF0LCB1bnNp
Z25lZCB0eXBlLCBjb25zdCB2b2lkKiBwaXhlbHMpID0gMDsKLQotICAgIHZpcnR1YWwgdm9pZCB0
ZXhQYXJhbWV0ZXJmKHVuc2lnbmVkIHRhcmdldCwgdW5zaWduZWQgcG5hbWUsIGZsb2F0IHBhcmFt
KSA9IDA7Ci0gICAgdmlydHVhbCB2b2lkIHRleFBhcmFtZXRlcmkodW5zaWduZWQgdGFyZ2V0LCB1
bnNpZ25lZCBwbmFtZSwgaW50IHBhcmFtKSA9IDA7Ci0KLSAgICB2aXJ0dWFsIHZvaWQgdGV4U3Vi
SW1hZ2UyRCh1bnNpZ25lZCB0YXJnZXQsIHVuc2lnbmVkIGxldmVsLCB1bnNpZ25lZCB4b2Zmc2V0
LCB1bnNpZ25lZCB5b2Zmc2V0LCB1bnNpZ25lZCB3aWR0aCwgdW5zaWduZWQgaGVpZ2h0LCB1bnNp
Z25lZCBmb3JtYXQsIHVuc2lnbmVkIHR5cGUsIGNvbnN0IHZvaWQqIHBpeGVscykgPSAwOwotCi0g
ICAgdmlydHVhbCB2b2lkIHVuaWZvcm0xZihsb25nIGxvY2F0aW9uLCBmbG9hdCB4KSA9IDA7Ci0g
ICAgdmlydHVhbCB2b2lkIHVuaWZvcm0xZnYobG9uZyBsb2NhdGlvbiwgaW50IGNvdW50LCBmbG9h
dCogdikgPSAwOwotICAgIHZpcnR1YWwgdm9pZCB1bmlmb3JtMWkobG9uZyBsb2NhdGlvbiwgaW50
IHgpID0gMDsKLSAgICB2aXJ0dWFsIHZvaWQgdW5pZm9ybTFpdihsb25nIGxvY2F0aW9uLCBpbnQg
Y291bnQsIGludCogdikgPSAwOwotICAgIHZpcnR1YWwgdm9pZCB1bmlmb3JtMmYobG9uZyBsb2Nh
dGlvbiwgZmxvYXQgeCwgZmxvYXQgeSkgPSAwOwotICAgIHZpcnR1YWwgdm9pZCB1bmlmb3JtMmZ2
KGxvbmcgbG9jYXRpb24sIGludCBjb3VudCwgZmxvYXQqIHYpID0gMDsKLSAgICB2aXJ0dWFsIHZv
aWQgdW5pZm9ybTJpKGxvbmcgbG9jYXRpb24sIGludCB4LCBpbnQgeSkgPSAwOwotICAgIHZpcnR1
YWwgdm9pZCB1bmlmb3JtMml2KGxvbmcgbG9jYXRpb24sIGludCBjb3VudCwgaW50KiB2KSA9IDA7
Ci0gICAgdmlydHVhbCB2b2lkIHVuaWZvcm0zZihsb25nIGxvY2F0aW9uLCBmbG9hdCB4LCBmbG9h
dCB5LCBmbG9hdCB6KSA9IDA7Ci0gICAgdmlydHVhbCB2b2lkIHVuaWZvcm0zZnYobG9uZyBsb2Nh
dGlvbiwgaW50IGNvdW50LCBmbG9hdCogdikgPSAwOwotICAgIHZpcnR1YWwgdm9pZCB1bmlmb3Jt
M2kobG9uZyBsb2NhdGlvbiwgaW50IHgsIGludCB5LCBpbnQgeikgPSAwOwotICAgIHZpcnR1YWwg
dm9pZCB1bmlmb3JtM2l2KGxvbmcgbG9jYXRpb24sIGludCBjb3VudCwgaW50KiB2KSA9IDA7Ci0g
ICAgdmlydHVhbCB2b2lkIHVuaWZvcm00Zihsb25nIGxvY2F0aW9uLCBmbG9hdCB4LCBmbG9hdCB5
LCBmbG9hdCB6LCBmbG9hdCB3KSA9IDA7Ci0gICAgdmlydHVhbCB2b2lkIHVuaWZvcm00ZnYobG9u
ZyBsb2NhdGlvbiwgaW50IGNvdW50LCBmbG9hdCogdikgPSAwOwotICAgIHZpcnR1YWwgdm9pZCB1
bmlmb3JtNGkobG9uZyBsb2NhdGlvbiwgaW50IHgsIGludCB5LCBpbnQgeiwgaW50IHcpID0gMDsK
LSAgICB2aXJ0dWFsIHZvaWQgdW5pZm9ybTRpdihsb25nIGxvY2F0aW9uLCBpbnQgY291bnQsIGlu
dCogdikgPSAwOwotICAgIHZpcnR1YWwgdm9pZCB1bmlmb3JtTWF0cml4MmZ2KGxvbmcgbG9jYXRp
b24sIGludCBjb3VudCwgYm9vbCB0cmFuc3Bvc2UsIGNvbnN0IGZsb2F0KiB2YWx1ZSkgPSAwOwot
ICAgIHZpcnR1YWwgdm9pZCB1bmlmb3JtTWF0cml4M2Z2KGxvbmcgbG9jYXRpb24sIGludCBjb3Vu
dCwgYm9vbCB0cmFuc3Bvc2UsIGNvbnN0IGZsb2F0KiB2YWx1ZSkgPSAwOwotICAgIHZpcnR1YWwg
dm9pZCB1bmlmb3JtTWF0cml4NGZ2KGxvbmcgbG9jYXRpb24sIGludCBjb3VudCwgYm9vbCB0cmFu
c3Bvc2UsIGNvbnN0IGZsb2F0KiB2YWx1ZSkgPSAwOworCisgICAgdmlydHVhbCB2b2lkIHJlbmRl
cmJ1ZmZlclN0b3JhZ2UoV0dDM0RlbnVtIHRhcmdldCwgV0dDM0RlbnVtIGludGVybmFsZm9ybWF0
LCBXR0MzRHNpemVpIHdpZHRoLCBXR0MzRHNpemVpIGhlaWdodCkgPSAwOworICAgIHZpcnR1YWwg
dm9pZCBzYW1wbGVDb3ZlcmFnZShXR0MzRGNsYW1wZiB2YWx1ZSwgV0dDM0Rib29sZWFuIGludmVy
dCkgPSAwOworICAgIHZpcnR1YWwgdm9pZCBzY2lzc29yKFdHQzNEaW50IHgsIFdHQzNEaW50IHks
IFdHQzNEc2l6ZWkgd2lkdGgsIFdHQzNEc2l6ZWkgaGVpZ2h0KSA9IDA7CisgICAgdmlydHVhbCB2
b2lkIHNoYWRlclNvdXJjZShXZWJHTElkIHNoYWRlciwgY29uc3QgV0dDM0RjaGFyKiBzdHJpbmcp
ID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgc3RlbmNpbEZ1bmMoV0dDM0RlbnVtIGZ1bmMsIFdHQzNE
aW50IHJlZiwgV0dDM0R1aW50IG1hc2spID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgc3RlbmNpbEZ1
bmNTZXBhcmF0ZShXR0MzRGVudW0gZmFjZSwgV0dDM0RlbnVtIGZ1bmMsIFdHQzNEaW50IHJlZiwg
V0dDM0R1aW50IG1hc2spID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgc3RlbmNpbE1hc2soV0dDM0R1
aW50IG1hc2spID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgc3RlbmNpbE1hc2tTZXBhcmF0ZShXR0Mz
RGVudW0gZmFjZSwgV0dDM0R1aW50IG1hc2spID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgc3RlbmNp
bE9wKFdHQzNEZW51bSBmYWlsLCBXR0MzRGVudW0gemZhaWwsIFdHQzNEZW51bSB6cGFzcykgPSAw
OworICAgIHZpcnR1YWwgdm9pZCBzdGVuY2lsT3BTZXBhcmF0ZShXR0MzRGVudW0gZmFjZSwgV0dD
M0RlbnVtIGZhaWwsIFdHQzNEZW51bSB6ZmFpbCwgV0dDM0RlbnVtIHpwYXNzKSA9IDA7CisKKyAg
ICB2aXJ0dWFsIHZvaWQgdGV4SW1hZ2UyRChXR0MzRGVudW0gdGFyZ2V0LCBXR0MzRGludCBsZXZl
bCwgV0dDM0RlbnVtIGludGVybmFsZm9ybWF0LCBXR0MzRHNpemVpIHdpZHRoLCBXR0MzRHNpemVp
IGhlaWdodCwgV0dDM0RpbnQgYm9yZGVyLCBXR0MzRGVudW0gZm9ybWF0LCBXR0MzRGVudW0gdHlw
ZSwgY29uc3Qgdm9pZCogcGl4ZWxzKSA9IDA7CisKKyAgICB2aXJ0dWFsIHZvaWQgdGV4UGFyYW1l
dGVyZihXR0MzRGVudW0gdGFyZ2V0LCBXR0MzRGVudW0gcG5hbWUsIFdHQzNEZmxvYXQgcGFyYW0p
ID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgdGV4UGFyYW1ldGVyaShXR0MzRGVudW0gdGFyZ2V0LCBX
R0MzRGVudW0gcG5hbWUsIFdHQzNEaW50IHBhcmFtKSA9IDA7CisKKyAgICB2aXJ0dWFsIHZvaWQg
dGV4U3ViSW1hZ2UyRChXR0MzRGVudW0gdGFyZ2V0LCBXR0MzRGludCBsZXZlbCwgV0dDM0RpbnQg
eG9mZnNldCwgV0dDM0RpbnQgeW9mZnNldCwgV0dDM0RzaXplaSB3aWR0aCwgV0dDM0RzaXplaSBo
ZWlnaHQsIFdHQzNEZW51bSBmb3JtYXQsIFdHQzNEZW51bSB0eXBlLCBjb25zdCB2b2lkKiBwaXhl
bHMpID0gMDsKKworICAgIHZpcnR1YWwgdm9pZCB1bmlmb3JtMWYoV0dDM0RpbnQgbG9jYXRpb24s
IFdHQzNEZmxvYXQgeCkgPSAwOworICAgIHZpcnR1YWwgdm9pZCB1bmlmb3JtMWZ2KFdHQzNEaW50
IGxvY2F0aW9uLCBXR0MzRHNpemVpIGNvdW50LCBjb25zdCBXR0MzRGZsb2F0KiB2KSA9IDA7Cisg
ICAgdmlydHVhbCB2b2lkIHVuaWZvcm0xaShXR0MzRGludCBsb2NhdGlvbiwgV0dDM0RpbnQgeCkg
PSAwOworICAgIHZpcnR1YWwgdm9pZCB1bmlmb3JtMWl2KFdHQzNEaW50IGxvY2F0aW9uLCBXR0Mz
RHNpemVpIGNvdW50LCBjb25zdCBXR0MzRGludCogdikgPSAwOworICAgIHZpcnR1YWwgdm9pZCB1
bmlmb3JtMmYoV0dDM0RpbnQgbG9jYXRpb24sIFdHQzNEZmxvYXQgeCwgV0dDM0RmbG9hdCB5KSA9
IDA7CisgICAgdmlydHVhbCB2b2lkIHVuaWZvcm0yZnYoV0dDM0RpbnQgbG9jYXRpb24sIFdHQzNE
c2l6ZWkgY291bnQsIGNvbnN0IFdHQzNEZmxvYXQqIHYpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQg
dW5pZm9ybTJpKFdHQzNEaW50IGxvY2F0aW9uLCBXR0MzRGludCB4LCBXR0MzRGludCB5KSA9IDA7
CisgICAgdmlydHVhbCB2b2lkIHVuaWZvcm0yaXYoV0dDM0RpbnQgbG9jYXRpb24sIFdHQzNEc2l6
ZWkgY291bnQsIGNvbnN0IFdHQzNEaW50KiB2KSA9IDA7CisgICAgdmlydHVhbCB2b2lkIHVuaWZv
cm0zZihXR0MzRGludCBsb2NhdGlvbiwgV0dDM0RmbG9hdCB4LCBXR0MzRGZsb2F0IHksIFdHQzNE
ZmxvYXQgeikgPSAwOworICAgIHZpcnR1YWwgdm9pZCB1bmlmb3JtM2Z2KFdHQzNEaW50IGxvY2F0
aW9uLCBXR0MzRHNpemVpIGNvdW50LCBjb25zdCBXR0MzRGZsb2F0KiB2KSA9IDA7CisgICAgdmly
dHVhbCB2b2lkIHVuaWZvcm0zaShXR0MzRGludCBsb2NhdGlvbiwgV0dDM0RpbnQgeCwgV0dDM0Rp
bnQgeSwgV0dDM0RpbnQgeikgPSAwOworICAgIHZpcnR1YWwgdm9pZCB1bmlmb3JtM2l2KFdHQzNE
aW50IGxvY2F0aW9uLCBXR0MzRHNpemVpIGNvdW50LCBjb25zdCBXR0MzRGludCogdikgPSAwOwor
ICAgIHZpcnR1YWwgdm9pZCB1bmlmb3JtNGYoV0dDM0RpbnQgbG9jYXRpb24sIFdHQzNEZmxvYXQg
eCwgV0dDM0RmbG9hdCB5LCBXR0MzRGZsb2F0IHosIFdHQzNEZmxvYXQgdykgPSAwOworICAgIHZp
cnR1YWwgdm9pZCB1bmlmb3JtNGZ2KFdHQzNEaW50IGxvY2F0aW9uLCBXR0MzRHNpemVpIGNvdW50
LCBjb25zdCBXR0MzRGZsb2F0KiB2KSA9IDA7CisgICAgdmlydHVhbCB2b2lkIHVuaWZvcm00aShX
R0MzRGludCBsb2NhdGlvbiwgV0dDM0RpbnQgeCwgV0dDM0RpbnQgeSwgV0dDM0RpbnQgeiwgV0dD
M0RpbnQgdykgPSAwOworICAgIHZpcnR1YWwgdm9pZCB1bmlmb3JtNGl2KFdHQzNEaW50IGxvY2F0
aW9uLCBXR0MzRHNpemVpIGNvdW50LCBjb25zdCBXR0MzRGludCogdikgPSAwOworICAgIHZpcnR1
YWwgdm9pZCB1bmlmb3JtTWF0cml4MmZ2KFdHQzNEaW50IGxvY2F0aW9uLCBXR0MzRHNpemVpIGNv
dW50LCBXR0MzRGJvb2xlYW4gdHJhbnNwb3NlLCBjb25zdCBXR0MzRGZsb2F0KiB2YWx1ZSkgPSAw
OworICAgIHZpcnR1YWwgdm9pZCB1bmlmb3JtTWF0cml4M2Z2KFdHQzNEaW50IGxvY2F0aW9uLCBX
R0MzRHNpemVpIGNvdW50LCBXR0MzRGJvb2xlYW4gdHJhbnNwb3NlLCBjb25zdCBXR0MzRGZsb2F0
KiB2YWx1ZSkgPSAwOworICAgIHZpcnR1YWwgdm9pZCB1bmlmb3JtTWF0cml4NGZ2KFdHQzNEaW50
IGxvY2F0aW9uLCBXR0MzRHNpemVpIGNvdW50LCBXR0MzRGJvb2xlYW4gdHJhbnNwb3NlLCBjb25z
dCBXR0MzRGZsb2F0KiB2YWx1ZSkgPSAwOwogCiAgICAgdmlydHVhbCB2b2lkIHVzZVByb2dyYW0o
V2ViR0xJZCBwcm9ncmFtKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIHZhbGlkYXRlUHJvZ3JhbShX
ZWJHTElkIHByb2dyYW0pID0gMDsKIAotICAgIHZpcnR1YWwgdm9pZCB2ZXJ0ZXhBdHRyaWIxZih1
bnNpZ25lZCBsb25nIGluZHgsIGZsb2F0IHgpID0gMDsKLSAgICB2aXJ0dWFsIHZvaWQgdmVydGV4
QXR0cmliMWZ2KHVuc2lnbmVkIGxvbmcgaW5keCwgY29uc3QgZmxvYXQqIHZhbHVlcykgPSAwOwot
ICAgIHZpcnR1YWwgdm9pZCB2ZXJ0ZXhBdHRyaWIyZih1bnNpZ25lZCBsb25nIGluZHgsIGZsb2F0
IHgsIGZsb2F0IHkpID0gMDsKLSAgICB2aXJ0dWFsIHZvaWQgdmVydGV4QXR0cmliMmZ2KHVuc2ln
bmVkIGxvbmcgaW5keCwgY29uc3QgZmxvYXQqIHZhbHVlcykgPSAwOwotICAgIHZpcnR1YWwgdm9p
ZCB2ZXJ0ZXhBdHRyaWIzZih1bnNpZ25lZCBsb25nIGluZHgsIGZsb2F0IHgsIGZsb2F0IHksIGZs
b2F0IHopID0gMDsKLSAgICB2aXJ0dWFsIHZvaWQgdmVydGV4QXR0cmliM2Z2KHVuc2lnbmVkIGxv
bmcgaW5keCwgY29uc3QgZmxvYXQqIHZhbHVlcykgPSAwOwotICAgIHZpcnR1YWwgdm9pZCB2ZXJ0
ZXhBdHRyaWI0Zih1bnNpZ25lZCBsb25nIGluZHgsIGZsb2F0IHgsIGZsb2F0IHksIGZsb2F0IHos
IGZsb2F0IHcpID0gMDsKLSAgICB2aXJ0dWFsIHZvaWQgdmVydGV4QXR0cmliNGZ2KHVuc2lnbmVk
IGxvbmcgaW5keCwgY29uc3QgZmxvYXQqIHZhbHVlcykgPSAwOwotICAgIHZpcnR1YWwgdm9pZCB2
ZXJ0ZXhBdHRyaWJQb2ludGVyKHVuc2lnbmVkIGxvbmcgaW5keCwgaW50IHNpemUsIGludCB0eXBl
LCBib29sIG5vcm1hbGl6ZWQsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
dW5zaWduZWQgbG9uZyBzdHJpZGUsIHVuc2lnbmVkIGxvbmcgb2Zmc2V0KSA9IDA7CisgICAgdmly
dHVhbCB2b2lkIHZlcnRleEF0dHJpYjFmKFdHQzNEdWludCBpbmRleCwgV0dDM0RmbG9hdCB4KSA9
IDA7CisgICAgdmlydHVhbCB2b2lkIHZlcnRleEF0dHJpYjFmdihXR0MzRHVpbnQgaW5kZXgsIGNv
bnN0IFdHQzNEZmxvYXQqIHZhbHVlcykgPSAwOworICAgIHZpcnR1YWwgdm9pZCB2ZXJ0ZXhBdHRy
aWIyZihXR0MzRHVpbnQgaW5kZXgsIFdHQzNEZmxvYXQgeCwgV0dDM0RmbG9hdCB5KSA9IDA7Cisg
ICAgdmlydHVhbCB2b2lkIHZlcnRleEF0dHJpYjJmdihXR0MzRHVpbnQgaW5kZXgsIGNvbnN0IFdH
QzNEZmxvYXQqIHZhbHVlcykgPSAwOworICAgIHZpcnR1YWwgdm9pZCB2ZXJ0ZXhBdHRyaWIzZihX
R0MzRHVpbnQgaW5kZXgsIFdHQzNEZmxvYXQgeCwgV0dDM0RmbG9hdCB5LCBXR0MzRGZsb2F0IHop
ID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgdmVydGV4QXR0cmliM2Z2KFdHQzNEdWludCBpbmRleCwg
Y29uc3QgV0dDM0RmbG9hdCogdmFsdWVzKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIHZlcnRleEF0
dHJpYjRmKFdHQzNEdWludCBpbmRleCwgV0dDM0RmbG9hdCB4LCBXR0MzRGZsb2F0IHksIFdHQzNE
ZmxvYXQgeiwgV0dDM0RmbG9hdCB3KSA9IDA7CisgICAgdmlydHVhbCB2b2lkIHZlcnRleEF0dHJp
YjRmdihXR0MzRHVpbnQgaW5kZXgsIGNvbnN0IFdHQzNEZmxvYXQqIHZhbHVlcykgPSAwOworICAg
IHZpcnR1YWwgdm9pZCB2ZXJ0ZXhBdHRyaWJQb2ludGVyKFdHQzNEdWludCBpbmRleCwgV0dDM0Rp
bnQgc2l6ZSwgV0dDM0RlbnVtIHR5cGUsIFdHQzNEYm9vbGVhbiBub3JtYWxpemVkLAorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFdHQzNEc2l6ZWkgc3RyaWRlLCBXR0MzRGlu
dHB0ciBvZmZzZXQpID0gMDsKIAotICAgIHZpcnR1YWwgdm9pZCB2aWV3cG9ydChsb25nIHgsIGxv
bmcgeSwgdW5zaWduZWQgbG9uZyB3aWR0aCwgdW5zaWduZWQgbG9uZyBoZWlnaHQpID0gMDsKKyAg
ICB2aXJ0dWFsIHZvaWQgdmlld3BvcnQoV0dDM0RpbnQgeCwgV0dDM0RpbnQgeSwgV0dDM0RzaXpl
aSB3aWR0aCwgV0dDM0RzaXplaSBoZWlnaHQpID0gMDsKIAogICAgIC8vIFN1cHBvcnQgZm9yIGJ1
ZmZlciBjcmVhdGlvbiBhbmQgZGVsZXRpb24uCi0gICAgdmlydHVhbCB1bnNpZ25lZCBjcmVhdGVC
dWZmZXIoKSA9IDA7Ci0gICAgdmlydHVhbCB1bnNpZ25lZCBjcmVhdGVGcmFtZWJ1ZmZlcigpID0g
MDsKLSAgICB2aXJ0dWFsIHVuc2lnbmVkIGNyZWF0ZVByb2dyYW0oKSA9IDA7Ci0gICAgdmlydHVh
bCB1bnNpZ25lZCBjcmVhdGVSZW5kZXJidWZmZXIoKSA9IDA7Ci0gICAgdmlydHVhbCB1bnNpZ25l
ZCBjcmVhdGVTaGFkZXIodW5zaWduZWQgbG9uZykgPSAwOwotICAgIHZpcnR1YWwgdW5zaWduZWQg
Y3JlYXRlVGV4dHVyZSgpID0gMDsKLQotICAgIHZpcnR1YWwgdm9pZCBkZWxldGVCdWZmZXIodW5z
aWduZWQpID0gMDsKLSAgICB2aXJ0dWFsIHZvaWQgZGVsZXRlRnJhbWVidWZmZXIodW5zaWduZWQp
ID0gMDsKLSAgICB2aXJ0dWFsIHZvaWQgZGVsZXRlUHJvZ3JhbSh1bnNpZ25lZCkgPSAwOwotICAg
IHZpcnR1YWwgdm9pZCBkZWxldGVSZW5kZXJidWZmZXIodW5zaWduZWQpID0gMDsKLSAgICB2aXJ0
dWFsIHZvaWQgZGVsZXRlU2hhZGVyKHVuc2lnbmVkKSA9IDA7Ci0gICAgdmlydHVhbCB2b2lkIGRl
bGV0ZVRleHR1cmUodW5zaWduZWQpID0gMDsKKyAgICB2aXJ0dWFsIFdlYkdMSWQgY3JlYXRlQnVm
ZmVyKCkgPSAwOworICAgIHZpcnR1YWwgV2ViR0xJZCBjcmVhdGVGcmFtZWJ1ZmZlcigpID0gMDsK
KyAgICB2aXJ0dWFsIFdlYkdMSWQgY3JlYXRlUHJvZ3JhbSgpID0gMDsKKyAgICB2aXJ0dWFsIFdl
YkdMSWQgY3JlYXRlUmVuZGVyYnVmZmVyKCkgPSAwOworICAgIHZpcnR1YWwgV2ViR0xJZCBjcmVh
dGVTaGFkZXIoV0dDM0RlbnVtKSA9IDA7CisgICAgdmlydHVhbCBXZWJHTElkIGNyZWF0ZVRleHR1
cmUoKSA9IDA7CisKKyAgICB2aXJ0dWFsIHZvaWQgZGVsZXRlQnVmZmVyKFdlYkdMSWQpID0gMDsK
KyAgICB2aXJ0dWFsIHZvaWQgZGVsZXRlRnJhbWVidWZmZXIoV2ViR0xJZCkgPSAwOworICAgIHZp
cnR1YWwgdm9pZCBkZWxldGVQcm9ncmFtKFdlYkdMSWQpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQg
ZGVsZXRlUmVuZGVyYnVmZmVyKFdlYkdMSWQpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgZGVsZXRl
U2hhZGVyKFdlYkdMSWQpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgZGVsZXRlVGV4dHVyZShXZWJH
TElkKSA9IDA7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>80379</attachid>
            <date>2011-01-27 17:02:28 -0800</date>
            <delta_ts>2011-01-27 17:22:37 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-51947-20110127170227.patch</filename>
            <type>text/plain</type>
            <size>26747</size>
            <attacher name="Zhenyao Mo">zmo</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCShyZXZpc2lvbiA3Njg2NikKKysrIFNvdXJj
ZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTIg
QEAKKzIwMTEtMDEtMjcgIFpoZW55YW8gTW8gIDx6bW9AZ29vZ2xlLmNvbT4KKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBEZWZpbmUgR0MzRCB0eXBlcyB0
byBtYXRjaCBHTCB0eXBlcyBhbmQgdXNlIHRoZW0gaW4gV2ViR3JhcGhpY3NDb250ZXh0M0QKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTUxOTQ3CisKKyAg
ICAgICAgKiBwdWJsaWMvV2ViR3JhcGhpY3NDb250ZXh0M0QuaDoKKwogMjAxMS0wMS0yNyAgWmhl
bnlhbyBNbyAgPHptb0Bnb29nbGUuY29tPgogCiAgICAgICAgIFVucmV2aWV3ZWQsIHJvbGwgd2Vi
a2l0IGNocm9taXVtIHJldiBmcm9tIDcyNjczIHRvIDcyODk0LgpJbmRleDogU291cmNlL1dlYktp
dC9jaHJvbWl1bS9wdWJsaWMvV2ViR3JhcGhpY3NDb250ZXh0M0QuaAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJHcmFwaGljc0NvbnRleHQzRC5oCShyZXZp
c2lvbiA3Njg2NikKKysrIFNvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYkdyYXBoaWNz
Q29udGV4dDNELmgJKHdvcmtpbmcgY29weSkKQEAgLTM1LDEwICszNSwzMCBAQAogI2luY2x1ZGUg
IldlYk5vbkNvcHlhYmxlLmgiCiAjaW5jbHVkZSAiV2ViU3RyaW5nLmgiCiAKKyNkZWZpbmUgVVNF
X1dHQzNEX1RZUEVTCisKIG5hbWVzcGFjZSBXZWJLaXQgewogCisvLyBXR0MzRCB0eXBlcyBtYXRj
aCB0aGUgY29ycmVzcG9uZGluZyBHTCB0eXBlcyBhcyBkZWZpbmVkIGluIE9wZW5HTCBFUyAyLjAK
Ky8vIGhlYWRlciBmaWxlIGdsMi5oIGZyb20ga2hyb25vcy5vcmcuCit0eXBlZGVmIGNoYXIgV0dD
M0RjaGFyOwordHlwZWRlZiB1bnNpZ25lZCBpbnQgV0dDM0RlbnVtOwordHlwZWRlZiB1bnNpZ25l
ZCBjaGFyIFdHQzNEYm9vbGVhbjsKK3R5cGVkZWYgdW5zaWduZWQgaW50IFdHQzNEYml0ZmllbGQ7
Cit0eXBlZGVmIHNpZ25lZCBjaGFyIFdHQzNEYnl0ZTsKK3R5cGVkZWYgdW5zaWduZWQgY2hhciBX
R0MzRHVieXRlOwordHlwZWRlZiBzaG9ydCBXR0MzRHNob3J0OwordHlwZWRlZiB1bnNpZ25lZCBz
aG9ydCBXR0MzRHVzaG9ydDsKK3R5cGVkZWYgaW50IFdHQzNEaW50OwordHlwZWRlZiBpbnQgV0dD
M0RzaXplaTsKK3R5cGVkZWYgdW5zaWduZWQgaW50IFdHQzNEdWludDsKK3R5cGVkZWYgZmxvYXQg
V0dDM0RmbG9hdDsKK3R5cGVkZWYgZmxvYXQgV0dDM0RjbGFtcGY7Cit0eXBlZGVmIHNpZ25lZCBs
b25nIGludCBXR0MzRGludHB0cjsKK3R5cGVkZWYgc2lnbmVkIGxvbmcgaW50IFdHQzNEc2l6ZWlw
dHI7CisKIC8vIFR5cGVkZWYgZm9yIHNlcnZlci1zaWRlIG9iamVjdHMgbGlrZSBPcGVuR0wgdGV4
dHVyZXMgYW5kIHByb2dyYW0gb2JqZWN0cy4KLXR5cGVkZWYgdW5zaWduZWQgaW50IFdlYkdMSWQ7
Cit0eXBlZGVmIFdHQzNEdWludCBXZWJHTElkOwogCiBjbGFzcyBXZWJWaWV3OwogCkBAIC01Miw4
ICs3Miw4IEBAIHB1YmxpYzoKICAgICAvLyBSZXR1cm4gdmFsdWUgZnJvbSBnZXRBY3RpdmVVbmlm
b3JtIGFuZCBnZXRBY3RpdmVBdHRyaWIuCiAgICAgc3RydWN0IEFjdGl2ZUluZm8gewogICAgICAg
ICBXZWJTdHJpbmcgbmFtZTsKLSAgICAgICAgdW5zaWduZWQgdHlwZTsKLSAgICAgICAgaW50IHNp
emU7CisgICAgICAgIFdHQzNEZW51bSB0eXBlOworICAgICAgICBXR0MzRGludCBzaXplOwogICAg
IH07CiAKICAgICAvLyBDb250ZXh0IGNyZWF0aW9uIGF0dHJpYnV0ZXMuCkBAIC05NywxMCArMTE3
LDYgQEAgcHVibGljOgogICAgIHZpcnR1YWwgaW50IHdpZHRoKCkgPSAwOwogICAgIHZpcnR1YWwg
aW50IGhlaWdodCgpID0gMDsKIAotICAgIC8vIEhlbHBlciB0byByZXR1cm4gdGhlIHNpemUgaW4g
Ynl0ZXMgb2YgT3BlbkdMIGRhdGEgdHlwZXMKLSAgICAvLyBsaWtlIEdMX0ZMT0FULCBHTF9JTlQs
IGV0Yy4KLSAgICB2aXJ0dWFsIGludCBzaXplSW5CeXRlcyhpbnQgdHlwZSkgPSAwOwotCiAgICAg
Ly8gUmVzaXplcyB0aGUgcmVnaW9uIGludG8gd2hpY2ggdGhpcyBXZWJHcmFwaGljc0NvbnRleHQz
RCBpcyBkcmF3aW5nLgogICAgIHZpcnR1YWwgdm9pZCByZXNoYXBlKGludCB3aWR0aCwgaW50IGhl
aWdodCkgPSAwOwogCkBAIC0xMTYsNyArMTMyLDcgQEAgcHVibGljOgogICAgIC8vIFJldHVybnMg
dGhlIGlkIG9mIHRoZSB0ZXh0dXJlIHdoaWNoIGlzIHVzZWQgZm9yIHN0b3JpbmcgdGhlIGNvbnRl
bnRzIG9mCiAgICAgLy8gdGhlIGZyYW1lYnVmZmVyIGFzc29jaWF0ZWQgd2l0aCB0aGlzIGNvbnRl
eHQuIFRoaXMgdGV4dHVyZSBpcyBhY2Nlc3NpYmxlCiAgICAgLy8gYnkgdGhlIGdwdS1iYXNlZCBw
YWdlIGNvbXBvc2l0b3IuCi0gICAgdmlydHVhbCB1bnNpZ25lZCBnZXRQbGF0Zm9ybVRleHR1cmVJ
ZCgpID0gMDsKKyAgICB2aXJ0dWFsIFdlYkdMSWQgZ2V0UGxhdGZvcm1UZXh0dXJlSWQoKSA9IDA7
CiAKICAgICAvLyBDb3BpZXMgdGhlIGNvbnRlbnRzIG9mIHRoZSBvZmYtc2NyZWVuIHJlbmRlciB0
YXJnZXQgdXNlZCBieSB0aGUgV2ViR0wKICAgICAvLyBjb250ZXh0IHRvIHRoZSBjb3JyZXNwb25k
aW5nIHRleHR1cmUgdXNlZCBieSB0aGUgY29tcG9zaXRvci4KQEAgLTEzMCwyMDkgKzE0NiwxOTEg
QEAgcHVibGljOgogICAgIC8vIFBlciB0aGUgYmVoYXZpb3Igb2YgZ2xHZXRFcnJvciwgdGhpcyBz
dG9yZXMgYXQgbW9zdCBvbmUKICAgICAvLyBpbnN0YW5jZSBvZiBhbnkgZ2l2ZW4gZXJyb3IsIGFu
ZCByZXR1cm5zIHRoZW0gZnJvbSBjYWxscyB0bwogICAgIC8vIGdldEVycm9yIGluIHRoZSBvcmRl
ciB0aGV5IHdlcmUgYWRkZWQuCi0gICAgdmlydHVhbCB2b2lkIHN5bnRoZXNpemVHTEVycm9yKHVu
c2lnbmVkIGxvbmcgZXJyb3IpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgc3ludGhlc2l6ZUdMRXJy
b3IoV0dDM0RlbnVtKSA9IDA7CisKKyAgICB2aXJ0dWFsIGJvb2wgaXNDb250ZXh0TG9zdCgpID0g
MDsKIAogICAgIC8vIEdMX0NIUk9NSVVNX21hcF9zdWIKLSAgICB2aXJ0dWFsIHZvaWQqIG1hcEJ1
ZmZlclN1YkRhdGFDSFJPTUlVTSh1bnNpZ25lZCB0YXJnZXQsIGludCBvZmZzZXQsIGludCBzaXpl
LCB1bnNpZ25lZCBhY2Nlc3MpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQqIG1hcEJ1ZmZlclN1YkRh
dGFDSFJPTUlVTShXR0MzRGVudW0gdGFyZ2V0LCBXR0MzRGludHB0ciBvZmZzZXQsIFdHQzNEc2l6
ZWlwdHIgc2l6ZSwgV0dDM0RlbnVtIGFjY2VzcykgPSAwOwogICAgIHZpcnR1YWwgdm9pZCB1bm1h
cEJ1ZmZlclN1YkRhdGFDSFJPTUlVTShjb25zdCB2b2lkKikgPSAwOwotICAgIHZpcnR1YWwgdm9p
ZCogbWFwVGV4U3ViSW1hZ2UyRENIUk9NSVVNKHVuc2lnbmVkIHRhcmdldCwgaW50IGxldmVsLCBp
bnQgeG9mZnNldCwgaW50IHlvZmZzZXQsIGludCB3aWR0aCwgaW50IGhlaWdodCwgdW5zaWduZWQg
Zm9ybWF0LCB1bnNpZ25lZCB0eXBlLCB1bnNpZ25lZCBhY2Nlc3MpID0gMDsKKyAgICB2aXJ0dWFs
IHZvaWQqIG1hcFRleFN1YkltYWdlMkRDSFJPTUlVTShXR0MzRGVudW0gdGFyZ2V0LCBXR0MzRGlu
dCBsZXZlbCwgV0dDM0RpbnQgeG9mZnNldCwgV0dDM0RpbnQgeW9mZnNldCwgV0dDM0RzaXplaSB3
aWR0aCwgV0dDM0RzaXplaSBoZWlnaHQsIFdHQzNEZW51bSBmb3JtYXQsIFdHQzNEZW51bSB0eXBl
LCBXR0MzRGVudW0gYWNjZXNzKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIHVubWFwVGV4U3ViSW1h
Z2UyRENIUk9NSVVNKGNvbnN0IHZvaWQqKSA9IDA7CiAKICAgICAvLyBHTF9DSFJPTUlVTV9jb3B5
X3RleHR1cmVfdG9fcGFyZW50X3RleHR1cmUKLSAgICB2aXJ0dWFsIHZvaWQgY29weVRleHR1cmVU
b1BhcmVudFRleHR1cmVDSFJPTUlVTSh1bnNpZ25lZCB0ZXh0dXJlLCB1bnNpZ25lZCBwYXJlbnRU
ZXh0dXJlKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIGNvcHlUZXh0dXJlVG9QYXJlbnRUZXh0dXJl
Q0hST01JVU0oV2ViR0xJZCB0ZXh0dXJlLCBXZWJHTElkIHBhcmVudFRleHR1cmUpID0gMDsKIAog
ICAgIC8vIEdMX0NIUk9NSVVNX3JlcXVlc3RfZXh0ZW5zaW9uCiAgICAgdmlydHVhbCBXZWJTdHJp
bmcgZ2V0UmVxdWVzdGFibGVFeHRlbnNpb25zQ0hST01JVU0oKSA9IDA7CiAgICAgdmlydHVhbCB2
b2lkIHJlcXVlc3RFeHRlbnNpb25DSFJPTUlVTShjb25zdCBjaGFyKikgPSAwOwogCiAgICAgLy8g
R0xfQ0hST01JVU1fZnJhbWVidWZmZXJfbXVsdGlzYW1wbGUKLSAgICB2aXJ0dWFsIHZvaWQgYmxp
dEZyYW1lYnVmZmVyQ0hST01JVU0oaW50IHNyY1gwLCBpbnQgc3JjWTAsIGludCBzcmNYMSwgaW50
IHNyY1kxLCBpbnQgZHN0WDAsIGludCBkc3RZMCwgaW50IGRzdFgxLCBpbnQgZHN0WTEsIHVuc2ln
bmVkIG1hc2ssIHVuc2lnbmVkIGZpbHRlcikgPSAwOwotICAgIHZpcnR1YWwgdm9pZCByZW5kZXJi
dWZmZXJTdG9yYWdlTXVsdGlzYW1wbGVDSFJPTUlVTSh1bnNpZ25lZCBsb25nIHRhcmdldCwgaW50
IHNhbXBsZXMsIHVuc2lnbmVkIGludGVybmFsZm9ybWF0LCB1bnNpZ25lZCB3aWR0aCwgdW5zaWdu
ZWQgaGVpZ2h0KSA9IDA7CisgICAgdmlydHVhbCB2b2lkIGJsaXRGcmFtZWJ1ZmZlckNIUk9NSVVN
KFdHQzNEaW50IHNyY1gwLCBXR0MzRGludCBzcmNZMCwgV0dDM0RpbnQgc3JjWDEsIFdHQzNEaW50
IHNyY1kxLCBXR0MzRGludCBkc3RYMCwgV0dDM0RpbnQgZHN0WTAsIFdHQzNEaW50IGRzdFgxLCBX
R0MzRGludCBkc3RZMSwgV0dDM0RiaXRmaWVsZCBtYXNrLCBXR0MzRGVudW0gZmlsdGVyKSA9IDA7
CisgICAgdmlydHVhbCB2b2lkIHJlbmRlcmJ1ZmZlclN0b3JhZ2VNdWx0aXNhbXBsZUNIUk9NSVVN
KFdHQzNEZW51bSB0YXJnZXQsIFdHQzNEc2l6ZWkgc2FtcGxlcywgV0dDM0RlbnVtIGludGVybmFs
Zm9ybWF0LCBXR0MzRHNpemVpIHdpZHRoLCBXR0MzRHNpemVpIGhlaWdodCkgPSAwOwogCiAgICAg
Ly8gVGhlIGVudHJ5IHBvaW50cyBiZWxvdyBtYXAgZGlyZWN0bHkgdG8gdGhlIE9wZW5HTCBFUyAy
LjAgQVBJLgogICAgIC8vIFNlZTogaHR0cDovL3d3dy5raHJvbm9zLm9yZy9yZWdpc3RyeS9nbGVz
LwogICAgIC8vIGFuZDogaHR0cDovL3d3dy5raHJvbm9zLm9yZy9vcGVuZ2xlcy9zZGsvZG9jcy9t
YW4vCi0gICAgdmlydHVhbCB2b2lkIGFjdGl2ZVRleHR1cmUodW5zaWduZWQgbG9uZyB0ZXh0dXJl
KSA9IDA7CisgICAgdmlydHVhbCB2b2lkIGFjdGl2ZVRleHR1cmUoV0dDM0RlbnVtIHRleHR1cmUp
ID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgYXR0YWNoU2hhZGVyKFdlYkdMSWQgcHJvZ3JhbSwgV2Vi
R0xJZCBzaGFkZXIpID0gMDsKLSAgICB2aXJ0dWFsIHZvaWQgYmluZEF0dHJpYkxvY2F0aW9uKFdl
YkdMSWQgcHJvZ3JhbSwgdW5zaWduZWQgbG9uZyBpbmRleCwgY29uc3QgY2hhciogbmFtZSkgPSAw
OwotICAgIHZpcnR1YWwgdm9pZCBiaW5kQnVmZmVyKHVuc2lnbmVkIGxvbmcgdGFyZ2V0LCBXZWJH
TElkIGJ1ZmZlcikgPSAwOwotICAgIHZpcnR1YWwgdm9pZCBiaW5kRnJhbWVidWZmZXIodW5zaWdu
ZWQgbG9uZyB0YXJnZXQsIFdlYkdMSWQgZnJhbWVidWZmZXIpID0gMDsKLSAgICB2aXJ0dWFsIHZv
aWQgYmluZFJlbmRlcmJ1ZmZlcih1bnNpZ25lZCBsb25nIHRhcmdldCwgV2ViR0xJZCByZW5kZXJi
dWZmZXIpID0gMDsKLSAgICB2aXJ0dWFsIHZvaWQgYmluZFRleHR1cmUodW5zaWduZWQgbG9uZyB0
YXJnZXQsIFdlYkdMSWQgdGV4dHVyZSkgPSAwOwotICAgIHZpcnR1YWwgdm9pZCBibGVuZENvbG9y
KGRvdWJsZSByZWQsIGRvdWJsZSBncmVlbiwgZG91YmxlIGJsdWUsIGRvdWJsZSBhbHBoYSkgPSAw
OwotICAgIHZpcnR1YWwgdm9pZCBibGVuZEVxdWF0aW9uKHVuc2lnbmVkIGxvbmcgbW9kZSkgPSAw
OwotICAgIHZpcnR1YWwgdm9pZCBibGVuZEVxdWF0aW9uU2VwYXJhdGUodW5zaWduZWQgbG9uZyBt
b2RlUkdCLCB1bnNpZ25lZCBsb25nIG1vZGVBbHBoYSkgPSAwOwotICAgIHZpcnR1YWwgdm9pZCBi
bGVuZEZ1bmModW5zaWduZWQgbG9uZyBzZmFjdG9yLCB1bnNpZ25lZCBsb25nIGRmYWN0b3IpID0g
MDsKLSAgICB2aXJ0dWFsIHZvaWQgYmxlbmRGdW5jU2VwYXJhdGUodW5zaWduZWQgbG9uZyBzcmNS
R0IsIHVuc2lnbmVkIGxvbmcgZHN0UkdCLCB1bnNpZ25lZCBsb25nIHNyY0FscGhhLCB1bnNpZ25l
ZCBsb25nIGRzdEFscGhhKSA9IDA7Ci0KLSAgICB2aXJ0dWFsIHZvaWQgYnVmZmVyRGF0YSh1bnNp
Z25lZCBsb25nIHRhcmdldCwgaW50IHNpemUsIGNvbnN0IHZvaWQqIGRhdGEsIHVuc2lnbmVkIGxv
bmcgdXNhZ2UpID0gMDsKLSAgICB2aXJ0dWFsIHZvaWQgYnVmZmVyU3ViRGF0YSh1bnNpZ25lZCBs
b25nIHRhcmdldCwgbG9uZyBvZmZzZXQsIGludCBzaXplLCBjb25zdCB2b2lkKiBkYXRhKSA9IDA7
Ci0KLSAgICB2aXJ0dWFsIHVuc2lnbmVkIGxvbmcgY2hlY2tGcmFtZWJ1ZmZlclN0YXR1cyh1bnNp
Z25lZCBsb25nIHRhcmdldCkgPSAwOwotICAgIHZpcnR1YWwgdm9pZCBjbGVhcih1bnNpZ25lZCBs
b25nIG1hc2spID0gMDsKLSAgICB2aXJ0dWFsIHZvaWQgY2xlYXJDb2xvcihkb3VibGUgcmVkLCBk
b3VibGUgZ3JlZW4sIGRvdWJsZSBibHVlLCBkb3VibGUgYWxwaGEpID0gMDsKLSAgICB2aXJ0dWFs
IHZvaWQgY2xlYXJEZXB0aChkb3VibGUgZGVwdGgpID0gMDsKLSAgICB2aXJ0dWFsIHZvaWQgY2xl
YXJTdGVuY2lsKGxvbmcgcykgPSAwOwotICAgIHZpcnR1YWwgdm9pZCBjb2xvck1hc2soYm9vbCBy
ZWQsIGJvb2wgZ3JlZW4sIGJvb2wgYmx1ZSwgYm9vbCBhbHBoYSkgPSAwOworICAgIHZpcnR1YWwg
dm9pZCBiaW5kQXR0cmliTG9jYXRpb24oV2ViR0xJZCBwcm9ncmFtLCBXR0MzRHVpbnQgaW5kZXgs
IGNvbnN0IFdHQzNEY2hhciogbmFtZSkgPSAwOworICAgIHZpcnR1YWwgdm9pZCBiaW5kQnVmZmVy
KFdHQzNEZW51bSB0YXJnZXQsIFdlYkdMSWQgYnVmZmVyKSA9IDA7CisgICAgdmlydHVhbCB2b2lk
IGJpbmRGcmFtZWJ1ZmZlcihXR0MzRGVudW0gdGFyZ2V0LCBXZWJHTElkIGZyYW1lYnVmZmVyKSA9
IDA7CisgICAgdmlydHVhbCB2b2lkIGJpbmRSZW5kZXJidWZmZXIoV0dDM0RlbnVtIHRhcmdldCwg
V2ViR0xJZCByZW5kZXJidWZmZXIpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgYmluZFRleHR1cmUo
V0dDM0RlbnVtIHRhcmdldCwgV2ViR0xJZCB0ZXh0dXJlKSA9IDA7CisgICAgdmlydHVhbCB2b2lk
IGJsZW5kQ29sb3IoV0dDM0RjbGFtcGYgcmVkLCBXR0MzRGNsYW1wZiBncmVlbiwgV0dDM0RjbGFt
cGYgYmx1ZSwgV0dDM0RjbGFtcGYgYWxwaGEpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgYmxlbmRF
cXVhdGlvbihXR0MzRGVudW0gbW9kZSkgPSAwOworICAgIHZpcnR1YWwgdm9pZCBibGVuZEVxdWF0
aW9uU2VwYXJhdGUoV0dDM0RlbnVtIG1vZGVSR0IsIFdHQzNEZW51bSBtb2RlQWxwaGEpID0gMDsK
KyAgICB2aXJ0dWFsIHZvaWQgYmxlbmRGdW5jKFdHQzNEZW51bSBzZmFjdG9yLCBXR0MzRGVudW0g
ZGZhY3RvcikgPSAwOworICAgIHZpcnR1YWwgdm9pZCBibGVuZEZ1bmNTZXBhcmF0ZShXR0MzRGVu
dW0gc3JjUkdCLCBXR0MzRGVudW0gZHN0UkdCLCBXR0MzRGVudW0gc3JjQWxwaGEsIFdHQzNEZW51
bSBkc3RBbHBoYSkgPSAwOworCisgICAgdmlydHVhbCB2b2lkIGJ1ZmZlckRhdGEoV0dDM0RlbnVt
IHRhcmdldCwgV0dDM0RzaXplaXB0ciBzaXplLCBjb25zdCB2b2lkKiBkYXRhLCBXR0MzRGVudW0g
dXNhZ2UpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgYnVmZmVyU3ViRGF0YShXR0MzRGVudW0gdGFy
Z2V0LCBXR0MzRGludHB0ciBvZmZzZXQsIFdHQzNEc2l6ZWlwdHIgc2l6ZSwgY29uc3Qgdm9pZCog
ZGF0YSkgPSAwOworCisgICAgdmlydHVhbCBXR0MzRGVudW0gY2hlY2tGcmFtZWJ1ZmZlclN0YXR1
cyhXR0MzRGVudW0gdGFyZ2V0KSA9IDA7CisgICAgdmlydHVhbCB2b2lkIGNsZWFyKFdHQzNEYml0
ZmllbGQgbWFzaykgPSAwOworICAgIHZpcnR1YWwgdm9pZCBjbGVhckNvbG9yKFdHQzNEY2xhbXBm
IHJlZCwgV0dDM0RjbGFtcGYgZ3JlZW4sIFdHQzNEY2xhbXBmIGJsdWUsIFdHQzNEY2xhbXBmIGFs
cGhhKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIGNsZWFyRGVwdGgoV0dDM0RjbGFtcGYgZGVwdGgp
ID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgY2xlYXJTdGVuY2lsKFdHQzNEaW50IHMpID0gMDsKKyAg
ICB2aXJ0dWFsIHZvaWQgY29sb3JNYXNrKFdHQzNEYm9vbGVhbiByZWQsIFdHQzNEYm9vbGVhbiBn
cmVlbiwgV0dDM0Rib29sZWFuIGJsdWUsIFdHQzNEYm9vbGVhbiBhbHBoYSkgPSAwOwogICAgIHZp
cnR1YWwgdm9pZCBjb21waWxlU2hhZGVyKFdlYkdMSWQgc2hhZGVyKSA9IDA7CiAKLSAgICB2aXJ0
dWFsIHZvaWQgY29weVRleEltYWdlMkQodW5zaWduZWQgbG9uZyB0YXJnZXQsIGxvbmcgbGV2ZWws
IHVuc2lnbmVkIGxvbmcgaW50ZXJuYWxmb3JtYXQsIGxvbmcgeCwgbG9uZyB5LCB1bnNpZ25lZCBs
b25nIHdpZHRoLCB1bnNpZ25lZCBsb25nIGhlaWdodCwgbG9uZyBib3JkZXIpID0gMDsKLSAgICB2
aXJ0dWFsIHZvaWQgY29weVRleFN1YkltYWdlMkQodW5zaWduZWQgbG9uZyB0YXJnZXQsIGxvbmcg
bGV2ZWwsIGxvbmcgeG9mZnNldCwgbG9uZyB5b2Zmc2V0LCBsb25nIHgsIGxvbmcgeSwgdW5zaWdu
ZWQgbG9uZyB3aWR0aCwgdW5zaWduZWQgbG9uZyBoZWlnaHQpID0gMDsKLSAgICB2aXJ0dWFsIHZv
aWQgY3VsbEZhY2UodW5zaWduZWQgbG9uZyBtb2RlKSA9IDA7Ci0gICAgdmlydHVhbCB2b2lkIGRl
cHRoRnVuYyh1bnNpZ25lZCBsb25nIGZ1bmMpID0gMDsKLSAgICB2aXJ0dWFsIHZvaWQgZGVwdGhN
YXNrKGJvb2wgZmxhZykgPSAwOwotICAgIHZpcnR1YWwgdm9pZCBkZXB0aFJhbmdlKGRvdWJsZSB6
TmVhciwgZG91YmxlIHpGYXIpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgY29weVRleEltYWdlMkQo
V0dDM0RlbnVtIHRhcmdldCwgV0dDM0RpbnQgbGV2ZWwsIFdHQzNEZW51bSBpbnRlcm5hbGZvcm1h
dCwgV0dDM0RpbnQgeCwgV0dDM0RpbnQgeSwgV0dDM0RzaXplaSB3aWR0aCwgV0dDM0RzaXplaSBo
ZWlnaHQsIFdHQzNEaW50IGJvcmRlcikgPSAwOworICAgIHZpcnR1YWwgdm9pZCBjb3B5VGV4U3Vi
SW1hZ2UyRChXR0MzRGVudW0gdGFyZ2V0LCBXR0MzRGludCBsZXZlbCwgV0dDM0RpbnQgeG9mZnNl
dCwgV0dDM0RpbnQgeW9mZnNldCwgV0dDM0RpbnQgeCwgV0dDM0RpbnQgeSwgV0dDM0RzaXplaSB3
aWR0aCwgV0dDM0RzaXplaSBoZWlnaHQpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgY3VsbEZhY2Uo
V0dDM0RlbnVtIG1vZGUpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgZGVwdGhGdW5jKFdHQzNEZW51
bSBmdW5jKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIGRlcHRoTWFzayhXR0MzRGJvb2xlYW4gZmxh
ZykgPSAwOworICAgIHZpcnR1YWwgdm9pZCBkZXB0aFJhbmdlKFdHQzNEY2xhbXBmIHpOZWFyLCBX
R0MzRGNsYW1wZiB6RmFyKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIGRldGFjaFNoYWRlcihXZWJH
TElkIHByb2dyYW0sIFdlYkdMSWQgc2hhZGVyKSA9IDA7Ci0gICAgdmlydHVhbCB2b2lkIGRpc2Fi
bGUodW5zaWduZWQgbG9uZyBjYXApID0gMDsKLSAgICB2aXJ0dWFsIHZvaWQgZGlzYWJsZVZlcnRl
eEF0dHJpYkFycmF5KHVuc2lnbmVkIGxvbmcgaW5kZXgpID0gMDsKLSAgICB2aXJ0dWFsIHZvaWQg
ZHJhd0FycmF5cyh1bnNpZ25lZCBsb25nIG1vZGUsIGxvbmcgZmlyc3QsIGxvbmcgY291bnQpID0g
MDsKLSAgICB2aXJ0dWFsIHZvaWQgZHJhd0VsZW1lbnRzKHVuc2lnbmVkIGxvbmcgbW9kZSwgdW5z
aWduZWQgbG9uZyBjb3VudCwgdW5zaWduZWQgbG9uZyB0eXBlLCBsb25nIG9mZnNldCkgPSAwOwor
ICAgIHZpcnR1YWwgdm9pZCBkaXNhYmxlKFdHQzNEZW51bSBjYXApID0gMDsKKyAgICB2aXJ0dWFs
IHZvaWQgZGlzYWJsZVZlcnRleEF0dHJpYkFycmF5KFdHQzNEdWludCBpbmRleCkgPSAwOworICAg
IHZpcnR1YWwgdm9pZCBkcmF3QXJyYXlzKFdHQzNEZW51bSBtb2RlLCBXR0MzRGludCBmaXJzdCwg
V0dDM0RzaXplaSBjb3VudCkgPSAwOworICAgIHZpcnR1YWwgdm9pZCBkcmF3RWxlbWVudHMoV0dD
M0RlbnVtIG1vZGUsIFdHQzNEc2l6ZWkgY291bnQsIFdHQzNEZW51bSB0eXBlLCBXR0MzRGludHB0
ciBvZmZzZXQpID0gMDsKIAotICAgIHZpcnR1YWwgdm9pZCBlbmFibGUodW5zaWduZWQgbG9uZyBj
YXApID0gMDsKLSAgICB2aXJ0dWFsIHZvaWQgZW5hYmxlVmVydGV4QXR0cmliQXJyYXkodW5zaWdu
ZWQgbG9uZyBpbmRleCkgPSAwOworICAgIHZpcnR1YWwgdm9pZCBlbmFibGUoV0dDM0RlbnVtIGNh
cCkgPSAwOworICAgIHZpcnR1YWwgdm9pZCBlbmFibGVWZXJ0ZXhBdHRyaWJBcnJheShXR0MzRHVp
bnQgaW5kZXgpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgZmluaXNoKCkgPSAwOwogICAgIHZpcnR1
YWwgdm9pZCBmbHVzaCgpID0gMDsKLSAgICB2aXJ0dWFsIHZvaWQgZnJhbWVidWZmZXJSZW5kZXJi
dWZmZXIodW5zaWduZWQgbG9uZyB0YXJnZXQsIHVuc2lnbmVkIGxvbmcgYXR0YWNobWVudCwgdW5z
aWduZWQgbG9uZyByZW5kZXJidWZmZXJ0YXJnZXQsIFdlYkdMSWQgcmVuZGVyYnVmZmVyKSA9IDA7
Ci0gICAgdmlydHVhbCB2b2lkIGZyYW1lYnVmZmVyVGV4dHVyZTJEKHVuc2lnbmVkIGxvbmcgdGFy
Z2V0LCB1bnNpZ25lZCBsb25nIGF0dGFjaG1lbnQsIHVuc2lnbmVkIGxvbmcgdGV4dGFyZ2V0LCBX
ZWJHTElkIHRleHR1cmUsIGxvbmcgbGV2ZWwpID0gMDsKLSAgICB2aXJ0dWFsIHZvaWQgZnJvbnRG
YWNlKHVuc2lnbmVkIGxvbmcgbW9kZSkgPSAwOwotICAgIHZpcnR1YWwgdm9pZCBnZW5lcmF0ZU1p
cG1hcCh1bnNpZ25lZCBsb25nIHRhcmdldCkgPSAwOwotCi0gICAgdmlydHVhbCBib29sIGdldEFj
dGl2ZUF0dHJpYihXZWJHTElkIHByb2dyYW0sIHVuc2lnbmVkIGxvbmcgaW5kZXgsIEFjdGl2ZUlu
Zm8mKSA9IDA7Ci0gICAgdmlydHVhbCBib29sIGdldEFjdGl2ZVVuaWZvcm0oV2ViR0xJZCBwcm9n
cmFtLCB1bnNpZ25lZCBsb25nIGluZGV4LCBBY3RpdmVJbmZvJikgPSAwOwotCi0gICAgdmlydHVh
bCB2b2lkIGdldEF0dGFjaGVkU2hhZGVycyhXZWJHTElkIHByb2dyYW0sIGludCBtYXhDb3VudCwg
aW50KiBjb3VudCwgdW5zaWduZWQgaW50KiBzaGFkZXJzKSA9IDA7Ci0KLSAgICB2aXJ0dWFsIGlu
dCAgZ2V0QXR0cmliTG9jYXRpb24oV2ViR0xJZCBwcm9ncmFtLCBjb25zdCBjaGFyKiBuYW1lKSA9
IDA7Ci0KLSAgICB2aXJ0dWFsIHZvaWQgZ2V0Qm9vbGVhbnYodW5zaWduZWQgbG9uZyBwbmFtZSwg
dW5zaWduZWQgY2hhciogdmFsdWUpID0gMDsKLQotICAgIHZpcnR1YWwgdm9pZCBnZXRCdWZmZXJQ
YXJhbWV0ZXJpdih1bnNpZ25lZCBsb25nIHRhcmdldCwgdW5zaWduZWQgbG9uZyBwbmFtZSwgaW50
KiB2YWx1ZSkgPSAwOwotCisgICAgdmlydHVhbCB2b2lkIGZyYW1lYnVmZmVyUmVuZGVyYnVmZmVy
KFdHQzNEZW51bSB0YXJnZXQsIFdHQzNEZW51bSBhdHRhY2htZW50LCBXR0MzRGVudW0gcmVuZGVy
YnVmZmVydGFyZ2V0LCBXZWJHTElkIHJlbmRlcmJ1ZmZlcikgPSAwOworICAgIHZpcnR1YWwgdm9p
ZCBmcmFtZWJ1ZmZlclRleHR1cmUyRChXR0MzRGVudW0gdGFyZ2V0LCBXR0MzRGVudW0gYXR0YWNo
bWVudCwgV0dDM0RlbnVtIHRleHRhcmdldCwgV2ViR0xJZCB0ZXh0dXJlLCBXR0MzRGludCBsZXZl
bCkgPSAwOworICAgIHZpcnR1YWwgdm9pZCBmcm9udEZhY2UoV0dDM0RlbnVtIG1vZGUpID0gMDsK
KyAgICB2aXJ0dWFsIHZvaWQgZ2VuZXJhdGVNaXBtYXAoV0dDM0RlbnVtIHRhcmdldCkgPSAwOwor
CisgICAgdmlydHVhbCBib29sIGdldEFjdGl2ZUF0dHJpYihXZWJHTElkIHByb2dyYW0sIFdHQzNE
dWludCBpbmRleCwgQWN0aXZlSW5mbyYpID0gMDsKKyAgICB2aXJ0dWFsIGJvb2wgZ2V0QWN0aXZl
VW5pZm9ybShXZWJHTElkIHByb2dyYW0sIFdHQzNEdWludCBpbmRleCwgQWN0aXZlSW5mbyYpID0g
MDsKKyAgICB2aXJ0dWFsIHZvaWQgZ2V0QXR0YWNoZWRTaGFkZXJzKFdlYkdMSWQgcHJvZ3JhbSwg
V0dDM0RzaXplaSBtYXhDb3VudCwgV0dDM0RzaXplaSogY291bnQsIFdlYkdMSWQqIHNoYWRlcnMp
ID0gMDsKKyAgICB2aXJ0dWFsIFdHQzNEaW50IGdldEF0dHJpYkxvY2F0aW9uKFdlYkdMSWQgcHJv
Z3JhbSwgY29uc3QgV0dDM0RjaGFyKiBuYW1lKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIGdldEJv
b2xlYW52KFdHQzNEZW51bSBwbmFtZSwgV0dDM0Rib29sZWFuKiB2YWx1ZSkgPSAwOworICAgIHZp
cnR1YWwgdm9pZCBnZXRCdWZmZXJQYXJhbWV0ZXJpdihXR0MzRGVudW0gdGFyZ2V0LCBXR0MzRGVu
dW0gcG5hbWUsIFdHQzNEaW50KiB2YWx1ZSkgPSAwOwogICAgIHZpcnR1YWwgQXR0cmlidXRlcyBn
ZXRDb250ZXh0QXR0cmlidXRlcygpID0gMDsKLQotICAgIHZpcnR1YWwgdW5zaWduZWQgbG9uZyBn
ZXRFcnJvcigpID0gMDsKLQotICAgIHZpcnR1YWwgYm9vbCBpc0NvbnRleHRMb3N0KCkgPSAwOwot
Ci0gICAgdmlydHVhbCB2b2lkIGdldEZsb2F0dih1bnNpZ25lZCBsb25nIHBuYW1lLCBmbG9hdCog
dmFsdWUpID0gMDsKLQotICAgIHZpcnR1YWwgdm9pZCBnZXRGcmFtZWJ1ZmZlckF0dGFjaG1lbnRQ
YXJhbWV0ZXJpdih1bnNpZ25lZCBsb25nIHRhcmdldCwgdW5zaWduZWQgbG9uZyBhdHRhY2htZW50
LCB1bnNpZ25lZCBsb25nIHBuYW1lLCBpbnQqIHZhbHVlKSA9IDA7Ci0KLSAgICB2aXJ0dWFsIHZv
aWQgZ2V0SW50ZWdlcnYodW5zaWduZWQgbG9uZyBwbmFtZSwgaW50KiB2YWx1ZSkgPSAwOwotCi0g
ICAgdmlydHVhbCB2b2lkIGdldFByb2dyYW1pdihXZWJHTElkIHByb2dyYW0sIHVuc2lnbmVkIGxv
bmcgcG5hbWUsIGludCogdmFsdWUpID0gMDsKLQorICAgIHZpcnR1YWwgV0dDM0RlbnVtIGdldEVy
cm9yKCkgPSAwOworICAgIHZpcnR1YWwgdm9pZCBnZXRGbG9hdHYoV0dDM0RlbnVtIHBuYW1lLCBX
R0MzRGZsb2F0KiB2YWx1ZSkgPSAwOworICAgIHZpcnR1YWwgdm9pZCBnZXRGcmFtZWJ1ZmZlckF0
dGFjaG1lbnRQYXJhbWV0ZXJpdihXR0MzRGVudW0gdGFyZ2V0LCBXR0MzRGVudW0gYXR0YWNobWVu
dCwgV0dDM0RlbnVtIHBuYW1lLCBXR0MzRGludCogdmFsdWUpID0gMDsKKyAgICB2aXJ0dWFsIHZv
aWQgZ2V0SW50ZWdlcnYoV0dDM0RlbnVtIHBuYW1lLCBXR0MzRGludCogdmFsdWUpID0gMDsKKyAg
ICB2aXJ0dWFsIHZvaWQgZ2V0UHJvZ3JhbWl2KFdlYkdMSWQgcHJvZ3JhbSwgV0dDM0RlbnVtIHBu
YW1lLCBXR0MzRGludCogdmFsdWUpID0gMDsKICAgICB2aXJ0dWFsIFdlYlN0cmluZyBnZXRQcm9n
cmFtSW5mb0xvZyhXZWJHTElkIHByb2dyYW0pID0gMDsKLQotICAgIHZpcnR1YWwgdm9pZCBnZXRS
ZW5kZXJidWZmZXJQYXJhbWV0ZXJpdih1bnNpZ25lZCBsb25nIHRhcmdldCwgdW5zaWduZWQgbG9u
ZyBwbmFtZSwgaW50KiB2YWx1ZSkgPSAwOwotCi0gICAgdmlydHVhbCB2b2lkIGdldFNoYWRlcml2
KFdlYkdMSWQgc2hhZGVyLCB1bnNpZ25lZCBsb25nIHBuYW1lLCBpbnQqIHZhbHVlKSA9IDA7Ci0K
KyAgICB2aXJ0dWFsIHZvaWQgZ2V0UmVuZGVyYnVmZmVyUGFyYW1ldGVyaXYoV0dDM0RlbnVtIHRh
cmdldCwgV0dDM0RlbnVtIHBuYW1lLCBXR0MzRGludCogdmFsdWUpID0gMDsKKyAgICB2aXJ0dWFs
IHZvaWQgZ2V0U2hhZGVyaXYoV2ViR0xJZCBzaGFkZXIsIFdHQzNEZW51bSBwbmFtZSwgV0dDM0Rp
bnQqIHZhbHVlKSA9IDA7CiAgICAgdmlydHVhbCBXZWJTdHJpbmcgZ2V0U2hhZGVySW5mb0xvZyhX
ZWJHTElkIHNoYWRlcikgPSAwOwogCiAgICAgLy8gVEJECiAgICAgLy8gdm9pZCBnbEdldFNoYWRl
clByZWNpc2lvbkZvcm1hdCAoR0xlbnVtIHNoYWRlcnR5cGUsIEdMZW51bSBwcmVjaXNpb250eXBl
LCBHTGludCogcmFuZ2UsIEdMaW50KiBwcmVjaXNpb24pOwogCiAgICAgdmlydHVhbCBXZWJTdHJp
bmcgZ2V0U2hhZGVyU291cmNlKFdlYkdMSWQgc2hhZGVyKSA9IDA7Ci0gICAgdmlydHVhbCBXZWJT
dHJpbmcgZ2V0U3RyaW5nKHVuc2lnbmVkIGxvbmcgbmFtZSkgPSAwOwotCi0gICAgdmlydHVhbCB2
b2lkIGdldFRleFBhcmFtZXRlcmZ2KHVuc2lnbmVkIGxvbmcgdGFyZ2V0LCB1bnNpZ25lZCBsb25n
IHBuYW1lLCBmbG9hdCogdmFsdWUpID0gMDsKLSAgICB2aXJ0dWFsIHZvaWQgZ2V0VGV4UGFyYW1l
dGVyaXYodW5zaWduZWQgbG9uZyB0YXJnZXQsIHVuc2lnbmVkIGxvbmcgcG5hbWUsIGludCogdmFs
dWUpID0gMDsKLQotICAgIHZpcnR1YWwgdm9pZCBnZXRVbmlmb3JtZnYoV2ViR0xJZCBwcm9ncmFt
LCBsb25nIGxvY2F0aW9uLCBmbG9hdCogdmFsdWUpID0gMDsKLSAgICB2aXJ0dWFsIHZvaWQgZ2V0
VW5pZm9ybWl2KFdlYkdMSWQgcHJvZ3JhbSwgbG9uZyBsb2NhdGlvbiwgaW50KiB2YWx1ZSkgPSAw
OwotCi0gICAgdmlydHVhbCBsb25nIGdldFVuaWZvcm1Mb2NhdGlvbihXZWJHTElkIHByb2dyYW0s
IGNvbnN0IGNoYXIqIG5hbWUpID0gMDsKLQotICAgIHZpcnR1YWwgdm9pZCBnZXRWZXJ0ZXhBdHRy
aWJmdih1bnNpZ25lZCBsb25nIGluZGV4LCB1bnNpZ25lZCBsb25nIHBuYW1lLCBmbG9hdCogdmFs
dWUpID0gMDsKLSAgICB2aXJ0dWFsIHZvaWQgZ2V0VmVydGV4QXR0cmliaXYodW5zaWduZWQgbG9u
ZyBpbmRleCwgdW5zaWduZWQgbG9uZyBwbmFtZSwgaW50KiB2YWx1ZSkgPSAwOwotCi0gICAgdmly
dHVhbCBsb25nIGdldFZlcnRleEF0dHJpYk9mZnNldCh1bnNpZ25lZCBsb25nIGluZGV4LCB1bnNp
Z25lZCBsb25nIHBuYW1lKSA9IDA7Ci0KLSAgICB2aXJ0dWFsIHZvaWQgaGludCh1bnNpZ25lZCBs
b25nIHRhcmdldCwgdW5zaWduZWQgbG9uZyBtb2RlKSA9IDA7Ci0gICAgdmlydHVhbCBib29sIGlz
QnVmZmVyKFdlYkdMSWQgYnVmZmVyKSA9IDA7Ci0gICAgdmlydHVhbCBib29sIGlzRW5hYmxlZCh1
bnNpZ25lZCBsb25nIGNhcCkgPSAwOwotICAgIHZpcnR1YWwgYm9vbCBpc0ZyYW1lYnVmZmVyKFdl
YkdMSWQgZnJhbWVidWZmZXIpID0gMDsKLSAgICB2aXJ0dWFsIGJvb2wgaXNQcm9ncmFtKFdlYkdM
SWQgcHJvZ3JhbSkgPSAwOwotICAgIHZpcnR1YWwgYm9vbCBpc1JlbmRlcmJ1ZmZlcihXZWJHTElk
IHJlbmRlcmJ1ZmZlcikgPSAwOwotICAgIHZpcnR1YWwgYm9vbCBpc1NoYWRlcihXZWJHTElkIHNo
YWRlcikgPSAwOwotICAgIHZpcnR1YWwgYm9vbCBpc1RleHR1cmUoV2ViR0xJZCB0ZXh0dXJlKSA9
IDA7Ci0gICAgdmlydHVhbCB2b2lkIGxpbmVXaWR0aChkb3VibGUpID0gMDsKKyAgICB2aXJ0dWFs
IFdlYlN0cmluZyBnZXRTdHJpbmcoV0dDM0RlbnVtIG5hbWUpID0gMDsKKyAgICB2aXJ0dWFsIHZv
aWQgZ2V0VGV4UGFyYW1ldGVyZnYoV0dDM0RlbnVtIHRhcmdldCwgV0dDM0RlbnVtIHBuYW1lLCBX
R0MzRGZsb2F0KiB2YWx1ZSkgPSAwOworICAgIHZpcnR1YWwgdm9pZCBnZXRUZXhQYXJhbWV0ZXJp
dihXR0MzRGVudW0gdGFyZ2V0LCBXR0MzRGVudW0gcG5hbWUsIFdHQzNEaW50KiB2YWx1ZSkgPSAw
OworICAgIHZpcnR1YWwgdm9pZCBnZXRVbmlmb3JtZnYoV2ViR0xJZCBwcm9ncmFtLCBXR0MzRGlu
dCBsb2NhdGlvbiwgV0dDM0RmbG9hdCogdmFsdWUpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgZ2V0
VW5pZm9ybWl2KFdlYkdMSWQgcHJvZ3JhbSwgV0dDM0RpbnQgbG9jYXRpb24sIFdHQzNEaW50KiB2
YWx1ZSkgPSAwOworICAgIHZpcnR1YWwgV0dDM0RpbnQgZ2V0VW5pZm9ybUxvY2F0aW9uKFdlYkdM
SWQgcHJvZ3JhbSwgY29uc3QgV0dDM0RjaGFyKiBuYW1lKSA9IDA7CisgICAgdmlydHVhbCB2b2lk
IGdldFZlcnRleEF0dHJpYmZ2KFdHQzNEdWludCBpbmRleCwgV0dDM0RlbnVtIHBuYW1lLCBXR0Mz
RGZsb2F0KiB2YWx1ZSkgPSAwOworICAgIHZpcnR1YWwgdm9pZCBnZXRWZXJ0ZXhBdHRyaWJpdihX
R0MzRHVpbnQgaW5kZXgsIFdHQzNEZW51bSBwbmFtZSwgV0dDM0RpbnQqIHZhbHVlKSA9IDA7Cisg
ICAgdmlydHVhbCBXR0MzRHNpemVpcHRyIGdldFZlcnRleEF0dHJpYk9mZnNldChXR0MzRHVpbnQg
aW5kZXgsIFdHQzNEZW51bSBwbmFtZSkgPSAwOworCisgICAgdmlydHVhbCB2b2lkIGhpbnQoV0dD
M0RlbnVtIHRhcmdldCwgV0dDM0RlbnVtIG1vZGUpID0gMDsKKyAgICB2aXJ0dWFsIFdHQzNEYm9v
bGVhbiBpc0J1ZmZlcihXZWJHTElkIGJ1ZmZlcikgPSAwOworICAgIHZpcnR1YWwgV0dDM0Rib29s
ZWFuIGlzRW5hYmxlZChXR0MzRGVudW0gY2FwKSA9IDA7CisgICAgdmlydHVhbCBXR0MzRGJvb2xl
YW4gaXNGcmFtZWJ1ZmZlcihXZWJHTElkIGZyYW1lYnVmZmVyKSA9IDA7CisgICAgdmlydHVhbCBX
R0MzRGJvb2xlYW4gaXNQcm9ncmFtKFdlYkdMSWQgcHJvZ3JhbSkgPSAwOworICAgIHZpcnR1YWwg
V0dDM0Rib29sZWFuIGlzUmVuZGVyYnVmZmVyKFdlYkdMSWQgcmVuZGVyYnVmZmVyKSA9IDA7Cisg
ICAgdmlydHVhbCBXR0MzRGJvb2xlYW4gaXNTaGFkZXIoV2ViR0xJZCBzaGFkZXIpID0gMDsKKyAg
ICB2aXJ0dWFsIFdHQzNEYm9vbGVhbiBpc1RleHR1cmUoV2ViR0xJZCB0ZXh0dXJlKSA9IDA7Cisg
ICAgdmlydHVhbCB2b2lkIGxpbmVXaWR0aChXR0MzRGZsb2F0KSA9IDA7CiAgICAgdmlydHVhbCB2
b2lkIGxpbmtQcm9ncmFtKFdlYkdMSWQgcHJvZ3JhbSkgPSAwOwotICAgIHZpcnR1YWwgdm9pZCBw
aXhlbFN0b3JlaSh1bnNpZ25lZCBsb25nIHBuYW1lLCBsb25nIHBhcmFtKSA9IDA7Ci0gICAgdmly
dHVhbCB2b2lkIHBvbHlnb25PZmZzZXQoZG91YmxlIGZhY3RvciwgZG91YmxlIHVuaXRzKSA9IDA7
CisgICAgdmlydHVhbCB2b2lkIHBpeGVsU3RvcmVpKFdHQzNEZW51bSBwbmFtZSwgV0dDM0RpbnQg
cGFyYW0pID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgcG9seWdvbk9mZnNldChXR0MzRGZsb2F0IGZh
Y3RvciwgV0dDM0RmbG9hdCB1bml0cykgPSAwOwogCi0gICAgdmlydHVhbCB2b2lkIHJlYWRQaXhl
bHMobG9uZyB4LCBsb25nIHksIHVuc2lnbmVkIGxvbmcgd2lkdGgsIHVuc2lnbmVkIGxvbmcgaGVp
Z2h0LCB1bnNpZ25lZCBsb25nIGZvcm1hdCwgdW5zaWduZWQgbG9uZyB0eXBlLCB2b2lkKiBwaXhl
bHMpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgcmVhZFBpeGVscyhXR0MzRGludCB4LCBXR0MzRGlu
dCB5LCBXR0MzRHNpemVpIHdpZHRoLCBXR0MzRHNpemVpIGhlaWdodCwgV0dDM0RlbnVtIGZvcm1h
dCwgV0dDM0RlbnVtIHR5cGUsIHZvaWQqIHBpeGVscykgPSAwOwogCiAgICAgdmlydHVhbCB2b2lk
IHJlbGVhc2VTaGFkZXJDb21waWxlcigpID0gMDsKLSAgICB2aXJ0dWFsIHZvaWQgcmVuZGVyYnVm
ZmVyU3RvcmFnZSh1bnNpZ25lZCBsb25nIHRhcmdldCwgdW5zaWduZWQgbG9uZyBpbnRlcm5hbGZv
cm1hdCwgdW5zaWduZWQgbG9uZyB3aWR0aCwgdW5zaWduZWQgbG9uZyBoZWlnaHQpID0gMDsKLSAg
ICB2aXJ0dWFsIHZvaWQgc2FtcGxlQ292ZXJhZ2UoZG91YmxlIHZhbHVlLCBib29sIGludmVydCkg
PSAwOwotICAgIHZpcnR1YWwgdm9pZCBzY2lzc29yKGxvbmcgeCwgbG9uZyB5LCB1bnNpZ25lZCBs
b25nIHdpZHRoLCB1bnNpZ25lZCBsb25nIGhlaWdodCkgPSAwOwotICAgIHZpcnR1YWwgdm9pZCBz
aGFkZXJTb3VyY2UoV2ViR0xJZCBzaGFkZXIsIGNvbnN0IGNoYXIqIHN0cmluZykgPSAwOwotICAg
IHZpcnR1YWwgdm9pZCBzdGVuY2lsRnVuYyh1bnNpZ25lZCBsb25nIGZ1bmMsIGxvbmcgcmVmLCB1
bnNpZ25lZCBsb25nIG1hc2spID0gMDsKLSAgICB2aXJ0dWFsIHZvaWQgc3RlbmNpbEZ1bmNTZXBh
cmF0ZSh1bnNpZ25lZCBsb25nIGZhY2UsIHVuc2lnbmVkIGxvbmcgZnVuYywgbG9uZyByZWYsIHVu
c2lnbmVkIGxvbmcgbWFzaykgPSAwOwotICAgIHZpcnR1YWwgdm9pZCBzdGVuY2lsTWFzayh1bnNp
Z25lZCBsb25nIG1hc2spID0gMDsKLSAgICB2aXJ0dWFsIHZvaWQgc3RlbmNpbE1hc2tTZXBhcmF0
ZSh1bnNpZ25lZCBsb25nIGZhY2UsIHVuc2lnbmVkIGxvbmcgbWFzaykgPSAwOwotICAgIHZpcnR1
YWwgdm9pZCBzdGVuY2lsT3AodW5zaWduZWQgbG9uZyBmYWlsLCB1bnNpZ25lZCBsb25nIHpmYWls
LCB1bnNpZ25lZCBsb25nIHpwYXNzKSA9IDA7Ci0gICAgdmlydHVhbCB2b2lkIHN0ZW5jaWxPcFNl
cGFyYXRlKHVuc2lnbmVkIGxvbmcgZmFjZSwgdW5zaWduZWQgbG9uZyBmYWlsLCB1bnNpZ25lZCBs
b25nIHpmYWlsLCB1bnNpZ25lZCBsb25nIHpwYXNzKSA9IDA7Ci0KLSAgICB2aXJ0dWFsIHZvaWQg
dGV4SW1hZ2UyRCh1bnNpZ25lZCB0YXJnZXQsIHVuc2lnbmVkIGxldmVsLCB1bnNpZ25lZCBpbnRl
cm5hbGZvcm1hdCwgdW5zaWduZWQgd2lkdGgsIHVuc2lnbmVkIGhlaWdodCwgdW5zaWduZWQgYm9y
ZGVyLCB1bnNpZ25lZCBmb3JtYXQsIHVuc2lnbmVkIHR5cGUsIGNvbnN0IHZvaWQqIHBpeGVscykg
PSAwOwotCi0gICAgdmlydHVhbCB2b2lkIHRleFBhcmFtZXRlcmYodW5zaWduZWQgdGFyZ2V0LCB1
bnNpZ25lZCBwbmFtZSwgZmxvYXQgcGFyYW0pID0gMDsKLSAgICB2aXJ0dWFsIHZvaWQgdGV4UGFy
YW1ldGVyaSh1bnNpZ25lZCB0YXJnZXQsIHVuc2lnbmVkIHBuYW1lLCBpbnQgcGFyYW0pID0gMDsK
LQotICAgIHZpcnR1YWwgdm9pZCB0ZXhTdWJJbWFnZTJEKHVuc2lnbmVkIHRhcmdldCwgdW5zaWdu
ZWQgbGV2ZWwsIHVuc2lnbmVkIHhvZmZzZXQsIHVuc2lnbmVkIHlvZmZzZXQsIHVuc2lnbmVkIHdp
ZHRoLCB1bnNpZ25lZCBoZWlnaHQsIHVuc2lnbmVkIGZvcm1hdCwgdW5zaWduZWQgdHlwZSwgY29u
c3Qgdm9pZCogcGl4ZWxzKSA9IDA7Ci0KLSAgICB2aXJ0dWFsIHZvaWQgdW5pZm9ybTFmKGxvbmcg
bG9jYXRpb24sIGZsb2F0IHgpID0gMDsKLSAgICB2aXJ0dWFsIHZvaWQgdW5pZm9ybTFmdihsb25n
IGxvY2F0aW9uLCBpbnQgY291bnQsIGZsb2F0KiB2KSA9IDA7Ci0gICAgdmlydHVhbCB2b2lkIHVu
aWZvcm0xaShsb25nIGxvY2F0aW9uLCBpbnQgeCkgPSAwOwotICAgIHZpcnR1YWwgdm9pZCB1bmlm
b3JtMWl2KGxvbmcgbG9jYXRpb24sIGludCBjb3VudCwgaW50KiB2KSA9IDA7Ci0gICAgdmlydHVh
bCB2b2lkIHVuaWZvcm0yZihsb25nIGxvY2F0aW9uLCBmbG9hdCB4LCBmbG9hdCB5KSA9IDA7Ci0g
ICAgdmlydHVhbCB2b2lkIHVuaWZvcm0yZnYobG9uZyBsb2NhdGlvbiwgaW50IGNvdW50LCBmbG9h
dCogdikgPSAwOwotICAgIHZpcnR1YWwgdm9pZCB1bmlmb3JtMmkobG9uZyBsb2NhdGlvbiwgaW50
IHgsIGludCB5KSA9IDA7Ci0gICAgdmlydHVhbCB2b2lkIHVuaWZvcm0yaXYobG9uZyBsb2NhdGlv
biwgaW50IGNvdW50LCBpbnQqIHYpID0gMDsKLSAgICB2aXJ0dWFsIHZvaWQgdW5pZm9ybTNmKGxv
bmcgbG9jYXRpb24sIGZsb2F0IHgsIGZsb2F0IHksIGZsb2F0IHopID0gMDsKLSAgICB2aXJ0dWFs
IHZvaWQgdW5pZm9ybTNmdihsb25nIGxvY2F0aW9uLCBpbnQgY291bnQsIGZsb2F0KiB2KSA9IDA7
Ci0gICAgdmlydHVhbCB2b2lkIHVuaWZvcm0zaShsb25nIGxvY2F0aW9uLCBpbnQgeCwgaW50IHks
IGludCB6KSA9IDA7Ci0gICAgdmlydHVhbCB2b2lkIHVuaWZvcm0zaXYobG9uZyBsb2NhdGlvbiwg
aW50IGNvdW50LCBpbnQqIHYpID0gMDsKLSAgICB2aXJ0dWFsIHZvaWQgdW5pZm9ybTRmKGxvbmcg
bG9jYXRpb24sIGZsb2F0IHgsIGZsb2F0IHksIGZsb2F0IHosIGZsb2F0IHcpID0gMDsKLSAgICB2
aXJ0dWFsIHZvaWQgdW5pZm9ybTRmdihsb25nIGxvY2F0aW9uLCBpbnQgY291bnQsIGZsb2F0KiB2
KSA9IDA7Ci0gICAgdmlydHVhbCB2b2lkIHVuaWZvcm00aShsb25nIGxvY2F0aW9uLCBpbnQgeCwg
aW50IHksIGludCB6LCBpbnQgdykgPSAwOwotICAgIHZpcnR1YWwgdm9pZCB1bmlmb3JtNGl2KGxv
bmcgbG9jYXRpb24sIGludCBjb3VudCwgaW50KiB2KSA9IDA7Ci0gICAgdmlydHVhbCB2b2lkIHVu
aWZvcm1NYXRyaXgyZnYobG9uZyBsb2NhdGlvbiwgaW50IGNvdW50LCBib29sIHRyYW5zcG9zZSwg
Y29uc3QgZmxvYXQqIHZhbHVlKSA9IDA7Ci0gICAgdmlydHVhbCB2b2lkIHVuaWZvcm1NYXRyaXgz
ZnYobG9uZyBsb2NhdGlvbiwgaW50IGNvdW50LCBib29sIHRyYW5zcG9zZSwgY29uc3QgZmxvYXQq
IHZhbHVlKSA9IDA7Ci0gICAgdmlydHVhbCB2b2lkIHVuaWZvcm1NYXRyaXg0ZnYobG9uZyBsb2Nh
dGlvbiwgaW50IGNvdW50LCBib29sIHRyYW5zcG9zZSwgY29uc3QgZmxvYXQqIHZhbHVlKSA9IDA7
CisKKyAgICB2aXJ0dWFsIHZvaWQgcmVuZGVyYnVmZmVyU3RvcmFnZShXR0MzRGVudW0gdGFyZ2V0
LCBXR0MzRGVudW0gaW50ZXJuYWxmb3JtYXQsIFdHQzNEc2l6ZWkgd2lkdGgsIFdHQzNEc2l6ZWkg
aGVpZ2h0KSA9IDA7CisgICAgdmlydHVhbCB2b2lkIHNhbXBsZUNvdmVyYWdlKFdHQzNEY2xhbXBm
IHZhbHVlLCBXR0MzRGJvb2xlYW4gaW52ZXJ0KSA9IDA7CisgICAgdmlydHVhbCB2b2lkIHNjaXNz
b3IoV0dDM0RpbnQgeCwgV0dDM0RpbnQgeSwgV0dDM0RzaXplaSB3aWR0aCwgV0dDM0RzaXplaSBo
ZWlnaHQpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgc2hhZGVyU291cmNlKFdlYkdMSWQgc2hhZGVy
LCBjb25zdCBXR0MzRGNoYXIqIHN0cmluZykgPSAwOworICAgIHZpcnR1YWwgdm9pZCBzdGVuY2ls
RnVuYyhXR0MzRGVudW0gZnVuYywgV0dDM0RpbnQgcmVmLCBXR0MzRHVpbnQgbWFzaykgPSAwOwor
ICAgIHZpcnR1YWwgdm9pZCBzdGVuY2lsRnVuY1NlcGFyYXRlKFdHQzNEZW51bSBmYWNlLCBXR0Mz
RGVudW0gZnVuYywgV0dDM0RpbnQgcmVmLCBXR0MzRHVpbnQgbWFzaykgPSAwOworICAgIHZpcnR1
YWwgdm9pZCBzdGVuY2lsTWFzayhXR0MzRHVpbnQgbWFzaykgPSAwOworICAgIHZpcnR1YWwgdm9p
ZCBzdGVuY2lsTWFza1NlcGFyYXRlKFdHQzNEZW51bSBmYWNlLCBXR0MzRHVpbnQgbWFzaykgPSAw
OworICAgIHZpcnR1YWwgdm9pZCBzdGVuY2lsT3AoV0dDM0RlbnVtIGZhaWwsIFdHQzNEZW51bSB6
ZmFpbCwgV0dDM0RlbnVtIHpwYXNzKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIHN0ZW5jaWxPcFNl
cGFyYXRlKFdHQzNEZW51bSBmYWNlLCBXR0MzRGVudW0gZmFpbCwgV0dDM0RlbnVtIHpmYWlsLCBX
R0MzRGVudW0genBhc3MpID0gMDsKKworICAgIHZpcnR1YWwgdm9pZCB0ZXhJbWFnZTJEKFdHQzNE
ZW51bSB0YXJnZXQsIFdHQzNEaW50IGxldmVsLCBXR0MzRGVudW0gaW50ZXJuYWxmb3JtYXQsIFdH
QzNEc2l6ZWkgd2lkdGgsIFdHQzNEc2l6ZWkgaGVpZ2h0LCBXR0MzRGludCBib3JkZXIsIFdHQzNE
ZW51bSBmb3JtYXQsIFdHQzNEZW51bSB0eXBlLCBjb25zdCB2b2lkKiBwaXhlbHMpID0gMDsKKwor
ICAgIHZpcnR1YWwgdm9pZCB0ZXhQYXJhbWV0ZXJmKFdHQzNEZW51bSB0YXJnZXQsIFdHQzNEZW51
bSBwbmFtZSwgV0dDM0RmbG9hdCBwYXJhbSkgPSAwOworICAgIHZpcnR1YWwgdm9pZCB0ZXhQYXJh
bWV0ZXJpKFdHQzNEZW51bSB0YXJnZXQsIFdHQzNEZW51bSBwbmFtZSwgV0dDM0RpbnQgcGFyYW0p
ID0gMDsKKworICAgIHZpcnR1YWwgdm9pZCB0ZXhTdWJJbWFnZTJEKFdHQzNEZW51bSB0YXJnZXQs
IFdHQzNEaW50IGxldmVsLCBXR0MzRGludCB4b2Zmc2V0LCBXR0MzRGludCB5b2Zmc2V0LCBXR0Mz
RHNpemVpIHdpZHRoLCBXR0MzRHNpemVpIGhlaWdodCwgV0dDM0RlbnVtIGZvcm1hdCwgV0dDM0Rl
bnVtIHR5cGUsIGNvbnN0IHZvaWQqIHBpeGVscykgPSAwOworCisgICAgdmlydHVhbCB2b2lkIHVu
aWZvcm0xZihXR0MzRGludCBsb2NhdGlvbiwgV0dDM0RmbG9hdCB4KSA9IDA7CisgICAgdmlydHVh
bCB2b2lkIHVuaWZvcm0xZnYoV0dDM0RpbnQgbG9jYXRpb24sIFdHQzNEc2l6ZWkgY291bnQsIGNv
bnN0IFdHQzNEZmxvYXQqIHYpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgdW5pZm9ybTFpKFdHQzNE
aW50IGxvY2F0aW9uLCBXR0MzRGludCB4KSA9IDA7CisgICAgdmlydHVhbCB2b2lkIHVuaWZvcm0x
aXYoV0dDM0RpbnQgbG9jYXRpb24sIFdHQzNEc2l6ZWkgY291bnQsIGNvbnN0IFdHQzNEaW50KiB2
KSA9IDA7CisgICAgdmlydHVhbCB2b2lkIHVuaWZvcm0yZihXR0MzRGludCBsb2NhdGlvbiwgV0dD
M0RmbG9hdCB4LCBXR0MzRGZsb2F0IHkpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgdW5pZm9ybTJm
dihXR0MzRGludCBsb2NhdGlvbiwgV0dDM0RzaXplaSBjb3VudCwgY29uc3QgV0dDM0RmbG9hdCog
dikgPSAwOworICAgIHZpcnR1YWwgdm9pZCB1bmlmb3JtMmkoV0dDM0RpbnQgbG9jYXRpb24sIFdH
QzNEaW50IHgsIFdHQzNEaW50IHkpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgdW5pZm9ybTJpdihX
R0MzRGludCBsb2NhdGlvbiwgV0dDM0RzaXplaSBjb3VudCwgY29uc3QgV0dDM0RpbnQqIHYpID0g
MDsKKyAgICB2aXJ0dWFsIHZvaWQgdW5pZm9ybTNmKFdHQzNEaW50IGxvY2F0aW9uLCBXR0MzRGZs
b2F0IHgsIFdHQzNEZmxvYXQgeSwgV0dDM0RmbG9hdCB6KSA9IDA7CisgICAgdmlydHVhbCB2b2lk
IHVuaWZvcm0zZnYoV0dDM0RpbnQgbG9jYXRpb24sIFdHQzNEc2l6ZWkgY291bnQsIGNvbnN0IFdH
QzNEZmxvYXQqIHYpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgdW5pZm9ybTNpKFdHQzNEaW50IGxv
Y2F0aW9uLCBXR0MzRGludCB4LCBXR0MzRGludCB5LCBXR0MzRGludCB6KSA9IDA7CisgICAgdmly
dHVhbCB2b2lkIHVuaWZvcm0zaXYoV0dDM0RpbnQgbG9jYXRpb24sIFdHQzNEc2l6ZWkgY291bnQs
IGNvbnN0IFdHQzNEaW50KiB2KSA9IDA7CisgICAgdmlydHVhbCB2b2lkIHVuaWZvcm00ZihXR0Mz
RGludCBsb2NhdGlvbiwgV0dDM0RmbG9hdCB4LCBXR0MzRGZsb2F0IHksIFdHQzNEZmxvYXQgeiwg
V0dDM0RmbG9hdCB3KSA9IDA7CisgICAgdmlydHVhbCB2b2lkIHVuaWZvcm00ZnYoV0dDM0RpbnQg
bG9jYXRpb24sIFdHQzNEc2l6ZWkgY291bnQsIGNvbnN0IFdHQzNEZmxvYXQqIHYpID0gMDsKKyAg
ICB2aXJ0dWFsIHZvaWQgdW5pZm9ybTRpKFdHQzNEaW50IGxvY2F0aW9uLCBXR0MzRGludCB4LCBX
R0MzRGludCB5LCBXR0MzRGludCB6LCBXR0MzRGludCB3KSA9IDA7CisgICAgdmlydHVhbCB2b2lk
IHVuaWZvcm00aXYoV0dDM0RpbnQgbG9jYXRpb24sIFdHQzNEc2l6ZWkgY291bnQsIGNvbnN0IFdH
QzNEaW50KiB2KSA9IDA7CisgICAgdmlydHVhbCB2b2lkIHVuaWZvcm1NYXRyaXgyZnYoV0dDM0Rp
bnQgbG9jYXRpb24sIFdHQzNEc2l6ZWkgY291bnQsIFdHQzNEYm9vbGVhbiB0cmFuc3Bvc2UsIGNv
bnN0IFdHQzNEZmxvYXQqIHZhbHVlKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIHVuaWZvcm1NYXRy
aXgzZnYoV0dDM0RpbnQgbG9jYXRpb24sIFdHQzNEc2l6ZWkgY291bnQsIFdHQzNEYm9vbGVhbiB0
cmFuc3Bvc2UsIGNvbnN0IFdHQzNEZmxvYXQqIHZhbHVlKSA9IDA7CisgICAgdmlydHVhbCB2b2lk
IHVuaWZvcm1NYXRyaXg0ZnYoV0dDM0RpbnQgbG9jYXRpb24sIFdHQzNEc2l6ZWkgY291bnQsIFdH
QzNEYm9vbGVhbiB0cmFuc3Bvc2UsIGNvbnN0IFdHQzNEZmxvYXQqIHZhbHVlKSA9IDA7CiAKICAg
ICB2aXJ0dWFsIHZvaWQgdXNlUHJvZ3JhbShXZWJHTElkIHByb2dyYW0pID0gMDsKICAgICB2aXJ0
dWFsIHZvaWQgdmFsaWRhdGVQcm9ncmFtKFdlYkdMSWQgcHJvZ3JhbSkgPSAwOwogCi0gICAgdmly
dHVhbCB2b2lkIHZlcnRleEF0dHJpYjFmKHVuc2lnbmVkIGxvbmcgaW5keCwgZmxvYXQgeCkgPSAw
OwotICAgIHZpcnR1YWwgdm9pZCB2ZXJ0ZXhBdHRyaWIxZnYodW5zaWduZWQgbG9uZyBpbmR4LCBj
b25zdCBmbG9hdCogdmFsdWVzKSA9IDA7Ci0gICAgdmlydHVhbCB2b2lkIHZlcnRleEF0dHJpYjJm
KHVuc2lnbmVkIGxvbmcgaW5keCwgZmxvYXQgeCwgZmxvYXQgeSkgPSAwOwotICAgIHZpcnR1YWwg
dm9pZCB2ZXJ0ZXhBdHRyaWIyZnYodW5zaWduZWQgbG9uZyBpbmR4LCBjb25zdCBmbG9hdCogdmFs
dWVzKSA9IDA7Ci0gICAgdmlydHVhbCB2b2lkIHZlcnRleEF0dHJpYjNmKHVuc2lnbmVkIGxvbmcg
aW5keCwgZmxvYXQgeCwgZmxvYXQgeSwgZmxvYXQgeikgPSAwOwotICAgIHZpcnR1YWwgdm9pZCB2
ZXJ0ZXhBdHRyaWIzZnYodW5zaWduZWQgbG9uZyBpbmR4LCBjb25zdCBmbG9hdCogdmFsdWVzKSA9
IDA7Ci0gICAgdmlydHVhbCB2b2lkIHZlcnRleEF0dHJpYjRmKHVuc2lnbmVkIGxvbmcgaW5keCwg
ZmxvYXQgeCwgZmxvYXQgeSwgZmxvYXQgeiwgZmxvYXQgdykgPSAwOwotICAgIHZpcnR1YWwgdm9p
ZCB2ZXJ0ZXhBdHRyaWI0ZnYodW5zaWduZWQgbG9uZyBpbmR4LCBjb25zdCBmbG9hdCogdmFsdWVz
KSA9IDA7Ci0gICAgdmlydHVhbCB2b2lkIHZlcnRleEF0dHJpYlBvaW50ZXIodW5zaWduZWQgbG9u
ZyBpbmR4LCBpbnQgc2l6ZSwgaW50IHR5cGUsIGJvb2wgbm9ybWFsaXplZCwKLSAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBsb25nIHN0cmlkZSwgdW5zaWduZWQg
bG9uZyBvZmZzZXQpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgdmVydGV4QXR0cmliMWYoV0dDM0R1
aW50IGluZGV4LCBXR0MzRGZsb2F0IHgpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgdmVydGV4QXR0
cmliMWZ2KFdHQzNEdWludCBpbmRleCwgY29uc3QgV0dDM0RmbG9hdCogdmFsdWVzKSA9IDA7Cisg
ICAgdmlydHVhbCB2b2lkIHZlcnRleEF0dHJpYjJmKFdHQzNEdWludCBpbmRleCwgV0dDM0RmbG9h
dCB4LCBXR0MzRGZsb2F0IHkpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgdmVydGV4QXR0cmliMmZ2
KFdHQzNEdWludCBpbmRleCwgY29uc3QgV0dDM0RmbG9hdCogdmFsdWVzKSA9IDA7CisgICAgdmly
dHVhbCB2b2lkIHZlcnRleEF0dHJpYjNmKFdHQzNEdWludCBpbmRleCwgV0dDM0RmbG9hdCB4LCBX
R0MzRGZsb2F0IHksIFdHQzNEZmxvYXQgeikgPSAwOworICAgIHZpcnR1YWwgdm9pZCB2ZXJ0ZXhB
dHRyaWIzZnYoV0dDM0R1aW50IGluZGV4LCBjb25zdCBXR0MzRGZsb2F0KiB2YWx1ZXMpID0gMDsK
KyAgICB2aXJ0dWFsIHZvaWQgdmVydGV4QXR0cmliNGYoV0dDM0R1aW50IGluZGV4LCBXR0MzRGZs
b2F0IHgsIFdHQzNEZmxvYXQgeSwgV0dDM0RmbG9hdCB6LCBXR0MzRGZsb2F0IHcpID0gMDsKKyAg
ICB2aXJ0dWFsIHZvaWQgdmVydGV4QXR0cmliNGZ2KFdHQzNEdWludCBpbmRleCwgY29uc3QgV0dD
M0RmbG9hdCogdmFsdWVzKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIHZlcnRleEF0dHJpYlBvaW50
ZXIoV0dDM0R1aW50IGluZGV4LCBXR0MzRGludCBzaXplLCBXR0MzRGVudW0gdHlwZSwgV0dDM0Ri
b29sZWFuIG5vcm1hbGl6ZWQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
V0dDM0RzaXplaSBzdHJpZGUsIFdHQzNEaW50cHRyIG9mZnNldCkgPSAwOwogCi0gICAgdmlydHVh
bCB2b2lkIHZpZXdwb3J0KGxvbmcgeCwgbG9uZyB5LCB1bnNpZ25lZCBsb25nIHdpZHRoLCB1bnNp
Z25lZCBsb25nIGhlaWdodCkgPSAwOworICAgIHZpcnR1YWwgdm9pZCB2aWV3cG9ydChXR0MzRGlu
dCB4LCBXR0MzRGludCB5LCBXR0MzRHNpemVpIHdpZHRoLCBXR0MzRHNpemVpIGhlaWdodCkgPSAw
OwogCiAgICAgLy8gU3VwcG9ydCBmb3IgYnVmZmVyIGNyZWF0aW9uIGFuZCBkZWxldGlvbi4KLSAg
ICB2aXJ0dWFsIHVuc2lnbmVkIGNyZWF0ZUJ1ZmZlcigpID0gMDsKLSAgICB2aXJ0dWFsIHVuc2ln
bmVkIGNyZWF0ZUZyYW1lYnVmZmVyKCkgPSAwOwotICAgIHZpcnR1YWwgdW5zaWduZWQgY3JlYXRl
UHJvZ3JhbSgpID0gMDsKLSAgICB2aXJ0dWFsIHVuc2lnbmVkIGNyZWF0ZVJlbmRlcmJ1ZmZlcigp
ID0gMDsKLSAgICB2aXJ0dWFsIHVuc2lnbmVkIGNyZWF0ZVNoYWRlcih1bnNpZ25lZCBsb25nKSA9
IDA7Ci0gICAgdmlydHVhbCB1bnNpZ25lZCBjcmVhdGVUZXh0dXJlKCkgPSAwOwotCi0gICAgdmly
dHVhbCB2b2lkIGRlbGV0ZUJ1ZmZlcih1bnNpZ25lZCkgPSAwOwotICAgIHZpcnR1YWwgdm9pZCBk
ZWxldGVGcmFtZWJ1ZmZlcih1bnNpZ25lZCkgPSAwOwotICAgIHZpcnR1YWwgdm9pZCBkZWxldGVQ
cm9ncmFtKHVuc2lnbmVkKSA9IDA7Ci0gICAgdmlydHVhbCB2b2lkIGRlbGV0ZVJlbmRlcmJ1ZmZl
cih1bnNpZ25lZCkgPSAwOwotICAgIHZpcnR1YWwgdm9pZCBkZWxldGVTaGFkZXIodW5zaWduZWQp
ID0gMDsKLSAgICB2aXJ0dWFsIHZvaWQgZGVsZXRlVGV4dHVyZSh1bnNpZ25lZCkgPSAwOworICAg
IHZpcnR1YWwgV2ViR0xJZCBjcmVhdGVCdWZmZXIoKSA9IDA7CisgICAgdmlydHVhbCBXZWJHTElk
IGNyZWF0ZUZyYW1lYnVmZmVyKCkgPSAwOworICAgIHZpcnR1YWwgV2ViR0xJZCBjcmVhdGVQcm9n
cmFtKCkgPSAwOworICAgIHZpcnR1YWwgV2ViR0xJZCBjcmVhdGVSZW5kZXJidWZmZXIoKSA9IDA7
CisgICAgdmlydHVhbCBXZWJHTElkIGNyZWF0ZVNoYWRlcihXR0MzRGVudW0pID0gMDsKKyAgICB2
aXJ0dWFsIFdlYkdMSWQgY3JlYXRlVGV4dHVyZSgpID0gMDsKKworICAgIHZpcnR1YWwgdm9pZCBk
ZWxldGVCdWZmZXIoV2ViR0xJZCkgPSAwOworICAgIHZpcnR1YWwgdm9pZCBkZWxldGVGcmFtZWJ1
ZmZlcihXZWJHTElkKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIGRlbGV0ZVByb2dyYW0oV2ViR0xJ
ZCkgPSAwOworICAgIHZpcnR1YWwgdm9pZCBkZWxldGVSZW5kZXJidWZmZXIoV2ViR0xJZCkgPSAw
OworICAgIHZpcnR1YWwgdm9pZCBkZWxldGVTaGFkZXIoV2ViR0xJZCkgPSAwOworICAgIHZpcnR1
YWwgdm9pZCBkZWxldGVUZXh0dXJlKFdlYkdMSWQpID0gMDsKIAogICAgIHZpcnR1YWwgdm9pZCBz
ZXRDb250ZXh0TG9zdENhbGxiYWNrKFdlYkdyYXBoaWNzQ29udGV4dExvc3RDYWxsYmFjayogY2Fs
bGJhY2spIHt9CiB9Owo=
</data>
<flag name="review"
          id="71858"
          type_id="1"
          status="+"
          setter="kbr"
    />
          </attachment>
      

    </bug>

</bugzilla>