<?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>122667</bug_id>
          
          <creation_ts>2013-10-11 11:45:45 -0700</creation_ts>
          <short_desc>llint_slow_path_put_by_id can deadlock on a ConcurrentJITLock</short_desc>
          <delta_ts>2013-10-16 16:46:12 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>JavaScriptCore</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>122779</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Mark Hahnenberg">mhahnenberg</reporter>
          <assigned_to name="Mark Hahnenberg">mhahnenberg</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>eflews.bot</cc>
    
    <cc>fpizlo</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>philn</cc>
    
    <cc>rakuco</cc>
    
    <cc>rniwa</cc>
    
    <cc>xan.lopez</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>938899</commentid>
    <comment_count>0</comment_count>
    <who name="Mark Hahnenberg">mhahnenberg</who>
    <bug_when>2013-10-11 11:45:45 -0700</bug_when>
    <thetext>llint_slow_path_put_by_id has the following line of code:

   599 	                ConcurrentJITLocker locker(codeBlock-&gt;m_lock);

and later in the same scope:

   618 	                        StructureChain* chain = structure-&gt;prototypeChain(exec);

which can cause a garbage collection. Garbage collection acquires the ConcurrentJITLock as it processes CodeBlocks, causing a deadlock.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>938906</commentid>
    <comment_count>1</comment_count>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2013-10-11 11:49:53 -0700</bug_when>
    <thetext>(In reply to comment #0)
&gt; llint_slow_path_put_by_id has the following line of code:
&gt; 
&gt;    599                     ConcurrentJITLocker locker(codeBlock-&gt;m_lock);
&gt; 
&gt; and later in the same scope:
&gt; 
&gt;    618                             StructureChain* chain = structure-&gt;prototypeChain(exec);
&gt; 
&gt; which can cause a garbage collection. Garbage collection acquires the ConcurrentJITLock as it processes CodeBlocks, causing a deadlock.

L</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>938907</commentid>
    <comment_count>2</comment_count>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2013-10-11 11:50:15 -0700</bug_when>
    <thetext>(In reply to comment #1)
&gt; (In reply to comment #0)
&gt; &gt; llint_slow_path_put_by_id has the following line of code:
&gt; &gt; 
&gt; &gt;    599                     ConcurrentJITLocker locker(codeBlock-&gt;m_lock);
&gt; &gt; 
&gt; &gt; and later in the same scope:
&gt; &gt; 
&gt; &gt;    618                             StructureChain* chain = structure-&gt;prototypeChain(exec);
&gt; &gt; 
&gt; &gt; which can cause a garbage collection. Garbage collection acquires the ConcurrentJITLock as it processes CodeBlocks, causing a deadlock.
&gt; 
&gt; L

Dunno what happened there.  I meant to say &quot;Lol.&quot;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>938909</commentid>
    <comment_count>3</comment_count>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2013-10-11 11:51:49 -0700</bug_when>
    <thetext>(In reply to comment #2)
&gt; (In reply to comment #1)
&gt; &gt; (In reply to comment #0)
&gt; &gt; &gt; llint_slow_path_put_by_id has the following line of code:
&gt; &gt; &gt; 
&gt; &gt; &gt;    599                     ConcurrentJITLocker locker(codeBlock-&gt;m_lock);
&gt; &gt; &gt; 
&gt; &gt; &gt; and later in the same scope:
&gt; &gt; &gt; 
&gt; &gt; &gt;    618                             StructureChain* chain = structure-&gt;prototypeChain(exec);
&gt; &gt; &gt; 
&gt; &gt; &gt; which can cause a garbage collection. Garbage collection acquires the ConcurrentJITLock as it processes CodeBlocks, causing a deadlock.
&gt; &gt; 
&gt; &gt; L
&gt; 
&gt; Dunno what happened there.  I meant to say &quot;Lol.&quot;

We could either move the call to prototypeChain(exec) up above the ConcurrentJITLocker, or we could do my favorite thing: DeferGC.

I like DeferGC more since it&apos;s more comprehensive.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>938910</commentid>
    <comment_count>4</comment_count>
    <who name="Mark Hahnenberg">mhahnenberg</who>
    <bug_when>2013-10-11 11:52:20 -0700</bug_when>
    <thetext>(In reply to comment #3)
&gt; (In reply to comment #2)
&gt; &gt; (In reply to comment #1)
&gt; &gt; &gt; (In reply to comment #0)
&gt; &gt; &gt; &gt; llint_slow_path_put_by_id has the following line of code:
&gt; &gt; &gt; &gt; 
&gt; &gt; &gt; &gt;    599                     ConcurrentJITLocker locker(codeBlock-&gt;m_lock);
&gt; &gt; &gt; &gt; 
&gt; &gt; &gt; &gt; and later in the same scope:
&gt; &gt; &gt; &gt; 
&gt; &gt; &gt; &gt;    618                             StructureChain* chain = structure-&gt;prototypeChain(exec);
&gt; &gt; &gt; &gt; 
&gt; &gt; &gt; &gt; which can cause a garbage collection. Garbage collection acquires the ConcurrentJITLock as it processes CodeBlocks, causing a deadlock.
&gt; &gt; &gt; 
&gt; &gt; &gt; L
&gt; &gt; 
&gt; &gt; Dunno what happened there.  I meant to say &quot;Lol.&quot;
&gt; 
&gt; We could either move the call to prototypeChain(exec) up above the ConcurrentJITLocker, or we could do my favorite thing: DeferGC.
&gt; 
&gt; I like DeferGC more since it&apos;s more comprehensive.

Yeah I like that too.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>938913</commentid>
    <comment_count>5</comment_count>
    <who name="Mark Hahnenberg">mhahnenberg</who>
    <bug_when>2013-10-11 11:53:29 -0700</bug_when>
    <thetext>(In reply to comment #4)
&gt; (In reply to comment #3)
&gt; &gt; (In reply to comment #2)
&gt; &gt; &gt; (In reply to comment #1)
&gt; &gt; &gt; &gt; (In reply to comment #0)
&gt; &gt; &gt; &gt; &gt; llint_slow_path_put_by_id has the following line of code:
&gt; &gt; &gt; &gt; &gt; 
&gt; &gt; &gt; &gt; &gt;    599                     ConcurrentJITLocker locker(codeBlock-&gt;m_lock);
&gt; &gt; &gt; &gt; &gt; 
&gt; &gt; &gt; &gt; &gt; and later in the same scope:
&gt; &gt; &gt; &gt; &gt; 
&gt; &gt; &gt; &gt; &gt;    618                             StructureChain* chain = structure-&gt;prototypeChain(exec);
&gt; &gt; &gt; &gt; &gt; 
&gt; &gt; &gt; &gt; &gt; which can cause a garbage collection. Garbage collection acquires the ConcurrentJITLock as it processes CodeBlocks, causing a deadlock.
&gt; &gt; &gt; &gt; 
&gt; &gt; &gt; &gt; L
&gt; &gt; &gt; 
&gt; &gt; &gt; Dunno what happened there.  I meant to say &quot;Lol.&quot;
&gt; &gt; 
&gt; &gt; We could either move the call to prototypeChain(exec) up above the ConcurrentJITLocker, or we could do my favorite thing: DeferGC.
&gt; &gt; 
&gt; &gt; I like DeferGC more since it&apos;s more comprehensive.
&gt; 
&gt; Yeah I like that too.

We could even make ConcurrentJITLocker do an implicit DeferGC. Thoughts?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>938914</commentid>
    <comment_count>6</comment_count>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2013-10-11 11:55:29 -0700</bug_when>
    <thetext>(In reply to comment #5)
&gt; (In reply to comment #4)
&gt; &gt; (In reply to comment #3)
&gt; &gt; &gt; (In reply to comment #2)
&gt; &gt; &gt; &gt; (In reply to comment #1)
&gt; &gt; &gt; &gt; &gt; (In reply to comment #0)
&gt; &gt; &gt; &gt; &gt; &gt; llint_slow_path_put_by_id has the following line of code:
&gt; &gt; &gt; &gt; &gt; &gt; 
&gt; &gt; &gt; &gt; &gt; &gt;    599                     ConcurrentJITLocker locker(codeBlock-&gt;m_lock);
&gt; &gt; &gt; &gt; &gt; &gt; 
&gt; &gt; &gt; &gt; &gt; &gt; and later in the same scope:
&gt; &gt; &gt; &gt; &gt; &gt; 
&gt; &gt; &gt; &gt; &gt; &gt;    618                             StructureChain* chain = structure-&gt;prototypeChain(exec);
&gt; &gt; &gt; &gt; &gt; &gt; 
&gt; &gt; &gt; &gt; &gt; &gt; which can cause a garbage collection. Garbage collection acquires the ConcurrentJITLock as it processes CodeBlocks, causing a deadlock.
&gt; &gt; &gt; &gt; &gt; 
&gt; &gt; &gt; &gt; &gt; L
&gt; &gt; &gt; &gt; 
&gt; &gt; &gt; &gt; Dunno what happened there.  I meant to say &quot;Lol.&quot;
&gt; &gt; &gt; 
&gt; &gt; &gt; We could either move the call to prototypeChain(exec) up above the ConcurrentJITLocker, or we could do my favorite thing: DeferGC.
&gt; &gt; &gt; 
&gt; &gt; &gt; I like DeferGC more since it&apos;s more comprehensive.
&gt; &gt; 
&gt; &gt; Yeah I like that too.
&gt; 
&gt; We could even make ConcurrentJITLocker do an implicit DeferGC. Thoughts?

Or even better: have two versions of ConcurrentJITLocker.

One version sets a thread-local variable that in causes all GC allocations and other GC calls to fail in debug mode.  We could use that in as many places as possible.  The cool thing about this is that it also guarantees that the method is safe to call from a concurrent thread, from the GC&apos;s standpoint.

Another version does what you say.

We can then try to use the asserting version in as many places as possible.  Probably by doing this we will learn some fun surprises.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>938989</commentid>
    <comment_count>7</comment_count>
      <attachid>214030</attachid>
    <who name="Mark Hahnenberg">mhahnenberg</who>
    <bug_when>2013-10-11 15:35:46 -0700</bug_when>
    <thetext>Created attachment 214030
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>938991</commentid>
    <comment_count>8</comment_count>
      <attachid>214030</attachid>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2013-10-11 15:40:23 -0700</bug_when>
    <thetext>Comment on attachment 214030
Patch

love it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>938992</commentid>
    <comment_count>9</comment_count>
      <attachid>214030</attachid>
    <who name="EFL EWS Bot">eflews.bot</who>
    <bug_when>2013-10-11 15:42:18 -0700</bug_when>
    <thetext>Comment on attachment 214030
Patch

Attachment 214030 did not pass efl-wk2-ews (efl-wk2):
Output: http://webkit-queues.appspot.com/results/3950221</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>938993</commentid>
    <comment_count>10</comment_count>
      <attachid>214031</attachid>
    <who name="Mark Hahnenberg">mhahnenberg</who>
    <bug_when>2013-10-11 15:44:40 -0700</bug_when>
    <thetext>Created attachment 214031
build fix</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>938994</commentid>
    <comment_count>11</comment_count>
      <attachid>214031</attachid>
    <who name="EFL EWS Bot">eflews.bot</who>
    <bug_when>2013-10-11 15:49:20 -0700</bug_when>
    <thetext>Comment on attachment 214031
build fix

Attachment 214031 did not pass efl-ews (efl):
Output: http://webkit-queues.appspot.com/results/3776306</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>938995</commentid>
    <comment_count>12</comment_count>
      <attachid>214031</attachid>
    <who name="EFL EWS Bot">eflews.bot</who>
    <bug_when>2013-10-11 15:50:26 -0700</bug_when>
    <thetext>Comment on attachment 214031
build fix

Attachment 214031 did not pass efl-wk2-ews (efl-wk2):
Output: http://webkit-queues.appspot.com/results/3946253</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>939006</commentid>
    <comment_count>13</comment_count>
      <attachid>214035</attachid>
    <who name="Mark Hahnenberg">mhahnenberg</who>
    <bug_when>2013-10-11 16:36:17 -0700</bug_when>
    <thetext>Created attachment 214035
omgjustbuild</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>939579</commentid>
    <comment_count>14</comment_count>
      <attachid>214035</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2013-10-14 11:58:26 -0700</bug_when>
    <thetext>Comment on attachment 214035
omgjustbuild

Rejecting attachment 214035 from commit-queue.

Failed to run &quot;[&apos;/Volumes/Data/EWS/WebKit/Tools/Scripts/webkit-patch&apos;, &apos;--status-host=webkit-queues.appspot.com&apos;, &apos;--bot-id=webkit-cq-01&apos;, &apos;apply-attachment&apos;, &apos;--no-update&apos;, &apos;--non-interactive&apos;, 214035, &apos;--port=mac&apos;]&quot; exit_code: 2 cwd: /Volumes/Data/EWS/WebKit

Last 500 characters of output:
avaScriptCore/llint/LLIntSlowPaths.cpp
patching file Source/JavaScriptCore/runtime/ConcurrentJITLock.h
patching file Source/JavaScriptCore/runtime/InitializeThreading.cpp
patching file Source/JavaScriptCore/runtime/JSCellInlines.h
patching file Source/JavaScriptCore/runtime/Structure.cpp
patching file Source/JavaScriptCore/runtime/Structure.h

Failed to run &quot;[u&apos;/Volumes/Data/EWS/WebKit/Tools/Scripts/svn-apply&apos;, &apos;--force&apos;, &apos;--reviewer&apos;, u&apos;Filip Pizlo&apos;]&quot; exit_code: 1 cwd: /Volumes/Data/EWS/WebKit

Full output: http://webkit-queues.appspot.com/results/3766906</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>939598</commentid>
    <comment_count>15</comment_count>
    <who name="Mark Hahnenberg">mhahnenberg</who>
    <bug_when>2013-10-14 12:33:12 -0700</bug_when>
    <thetext>Committed r157413: &lt;http://trac.webkit.org/changeset/157413&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>939656</commentid>
    <comment_count>16</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2013-10-14 14:56:22 -0700</bug_when>
    <thetext>Re-opened since this is blocked by bug 122779</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>939661</commentid>
    <comment_count>17</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2013-10-14 15:00:36 -0700</bug_when>
    <thetext>This looks like the most likely culprit for WebGL and other crashes and timeouts:

http://build.webkit.org/results/Apple%20MountainLion%20Debug%20WK1%20(Tests)/r157416%20(10770)/results.html

http://build.webkit.org/results/Apple%20MountainLion%20Release%20WK1%20(Tests)/r157419%20(13809)/results.html

Rolled out in &lt;https://trac.webkit.org/r157424&gt;. We&apos;ll see if this helps.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>939893</commentid>
    <comment_count>18</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2013-10-15 01:59:32 -0700</bug_when>
    <thetext>This may have improved Dromaeo/jslib-event-jquery&apos;s score by ~28%:
https://perf.webkit.org/#mode=charts&amp;chartList=%5B%5B%22mac-lion%22%2C%22Dromaeo%2Fjslib-event-jquery%3ARuns%22%5D%2C%5B%22mac-mountainlion%22%2C%22Dromaeo%2Fjslib-event-jquery%3ARuns%22%5D%2C%5B%22mac-mountainlion%22%2C%22Dromaeo%2Fjslib-event-prototype%3ARuns%22%5D%2C%5B%22mac-lion%22%2C%22Dromaeo%2Fjslib-event-prototype%3ARuns%22%5D%5D&amp;days=52&amp;zoom=%5B1381585431357.5227%2C1381827392596%5D</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>940023</commentid>
    <comment_count>19</comment_count>
    <who name="Mark Hahnenberg">mhahnenberg</who>
    <bug_when>2013-10-15 10:28:30 -0700</bug_when>
    <thetext>(In reply to comment #18)
&gt; This may have improved Dromaeo/jslib-event-jquery&apos;s score by ~28%:
&gt; https://perf.webkit.org/#mode=charts&amp;chartList=%5B%5B%22mac-lion%22%2C%22Dromaeo%2Fjslib-event-jquery%3ARuns%22%5D%2C%5B%22mac-mountainlion%22%2C%22Dromaeo%2Fjslib-event-jquery%3ARuns%22%5D%2C%5B%22mac-mountainlion%22%2C%22Dromaeo%2Fjslib-event-prototype%3ARuns%22%5D%2C%5B%22mac-lion%22%2C%22Dromaeo%2Fjslib-event-prototype%3ARuns%22%5D%5D&amp;days=52&amp;zoom=%5B1381585431357.5227%2C1381827392596%5D

Uhh, I don&apos;t think so. The patch was rolled out, but we still have the perf win. Also, this patch just fixes a deadlock, no reason it would improve performance.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>940037</commentid>
    <comment_count>20</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2013-10-15 11:09:33 -0700</bug_when>
    <thetext>So it&apos;s probably either http://trac.webkit.org/changeset/157412 or http://trac.webkit.org/changeset/157411</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>940057</commentid>
    <comment_count>21</comment_count>
    <who name="Mark Hahnenberg">mhahnenberg</who>
    <bug_when>2013-10-15 11:32:16 -0700</bug_when>
    <thetext>(In reply to comment #20)
&gt; So it&apos;s probably either http://trac.webkit.org/changeset/157412 or http://trac.webkit.org/changeset/157411

Yeah, my money is on http://trac.webkit.org/changeset/157411.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>940555</commentid>
    <comment_count>22</comment_count>
      <attachid>214399</attachid>
    <who name="Mark Hahnenberg">mhahnenberg</who>
    <bug_when>2013-10-16 15:55:03 -0700</bug_when>
    <thetext>Created attachment 214399
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>940562</commentid>
    <comment_count>23</comment_count>
      <attachid>214399</attachid>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2013-10-16 16:10:48 -0700</bug_when>
    <thetext>Comment on attachment 214399
Patch

r=me based on previous reviews, assuming tests pass.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>940578</commentid>
    <comment_count>24</comment_count>
    <who name="Mark Hahnenberg">mhahnenberg</who>
    <bug_when>2013-10-16 16:46:12 -0700</bug_when>
    <thetext>Committed r157539: &lt;http://trac.webkit.org/changeset/157539&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>214030</attachid>
            <date>2013-10-11 15:35:46 -0700</date>
            <delta_ts>2013-10-11 15:44:38 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-122667-20131011153536.patch</filename>
            <type>text/plain</type>
            <size>26597</size>
            <attacher name="Mark Hahnenberg">mhahnenberg</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMTU3MzIwKQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDU5IEBA
CisyMDEzLTEwLTExICBNYXJrIEhhaG5lbmJlcmcgIDxtaGFobmVuYmVyZ0BhcHBsZS5jb20+CisK
KyAgICAgICAgbGxpbnRfc2xvd19wYXRoX3B1dF9ieV9pZCBjYW4gZGVhZGxvY2sgb24gYSBDb25j
dXJyZW50SklUTG9jaworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MTIyNjY3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgVGhlIGlzc3VlIHRoaXMgcGF0Y2ggaXMgYXR0ZW1wdGluZyB0byBmaXggaXMgdGhhdCB0
aGVyZSBhcmUgcGxhY2VzIGluIG91ciBjb2RlYmFzZQorICAgICAgICB3aGVyZSB3ZSBhY3F1aXJl
IHRoZSBDb25jdXJyZW50SklUTG9jayBmb3IgYSBwYXJ0aWN1bGFyIENvZGVCbG9jaywgdGhlbiB3
ZSBkbyBzb21lCisgICAgICAgIG9wZXJhdGlvbnMgdGhhdCBjYW4gaW5pdGlhdGUgYSBnYXJiYWdl
IGNvbGxlY3Rpb24uIEdhcmJhZ2UgY29sbGVjdGlvbiB0aGVuIGNhbGxzIAorICAgICAgICBzb21l
IG1ldGhvZHMgb2YgQ29kZUJsb2NrIHRoYXQgYWxzbyB0YWtlIHRoZSBDb25jdXJyZW50SklUTG9j
ayAoYmVjYXVzZSB0aGV5IGRvbid0CisgICAgICAgIGFsd2F5cyBuZWNlc3NhcmlseSBydW4gZHVy
aW5nIGdhcmJhZ2UgY29sbGVjdGlvbikuIFRoaXMgY2F1c2VzIGEgZGVhZGxvY2suCisKKyAgICAg
ICAgVG8gZml4IHRoaXMgaXNzdWUsIHRoaXMgcGF0Y2ggYWRkcyBhIG5ldyBSQUlJLXN0eWxlIG9i
amVjdCAoRGlzYWxsb3dHQykgdGhhdCBzdG9yZXMgCisgICAgICAgIGludG8gYSB0aHJlYWQtbG9j
YWwgZmllbGQgdGhhdCBpbmRpY2F0ZXMgdGhhdCBpdCBpcyB1bnNhZmUgdG8gcGVyZm9ybSBhbnkg
b3BlcmF0aW9uIAorICAgICAgICB0aGF0IGNvdWxkIHRyaWdnZXIgZ2FyYmFnZSBjb2xsZWN0aW9u
IG9uIHRoZSBjdXJyZW50IHRocmVhZC4gSW4gZGVidWcgYnVpbGRzLCAKKyAgICAgICAgQ29uY3Vy
cmVudEpJVExvY2tlciBjb250YWlucyBvbmUgb2YgdGhlc2UgRGlzYWxsb3dHQyBvYmplY3RzIHNv
IHRoYXQgd2UgY2FuIGVhZ2VybHkgCisgICAgICAgIGRldGVjdCBkZWFkbG9ja3MuCisKKyAgICAg
ICAgVGhpcyBwYXRjaCBhbHNvIGFkZHMgYSBuZXcgdHlwZSBvZiBDb25jdXJyZW50SklUTG9ja2Vy
LCBHQ1NhZmVDb25jdXJyZW50SklUTG9ja2VyLAorICAgICAgICB3aGljaCB1c2VzIHRoZSBEZWZl
ckdDIG1lY2hhbmlzbSB0byBwcmV2ZW50IGNvbGxlY3Rpb25zIGZyb20gb2NjdXJyaW5nIHdoaWxl
IHRoZSAKKyAgICAgICAgbG9jayBpcyBoZWxkLgorCisgICAgICAgICogQ01ha2VMaXN0cy50eHQ6
CisgICAgICAgICogR05VbWFrZWZpbGUubGlzdC5hbToKKyAgICAgICAgKiBKYXZhU2NyaXB0Q29y
ZS52Y3hwcm9qL0phdmFTY3JpcHRDb3JlLnZjeHByb2o6CisgICAgICAgICogSmF2YVNjcmlwdENv
cmUudmN4cHJvai9KYXZhU2NyaXB0Q29yZS52Y3hwcm9qLmZpbHRlcnM6CisgICAgICAgICogSmF2
YVNjcmlwdENvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBoZWFwL0Rl
ZmVyR0MuY3BwOiBBZGRlZC4KKyAgICAgICAgKiBoZWFwL0RlZmVyR0MuaDoKKyAgICAgICAgKEpT
Qzo6RGlzYWxsb3dHQzo6RGlzYWxsb3dHQyk6CisgICAgICAgIChKU0M6OkRpc2FsbG93R0M6On5E
aXNhbGxvd0dDKToKKyAgICAgICAgKEpTQzo6RGlzYWxsb3dHQzo6aXNHQ0Rpc2FsbG93ZWRPbkN1
cnJlbnRUaHJlYWQpOgorICAgICAgICAoSlNDOjpEaXNhbGxvd0dDOjppbml0aWFsaXplKToKKyAg
ICAgICAgKiBqaXQvSklUU3R1YnMuY3BwOgorICAgICAgICAoSlNDOjp0cnlDYWNoZVB1dEJ5SUQp
OgorICAgICAgICAoSlNDOjp0cnlDYWNoZUdldEJ5SUQpOgorICAgICAgICAoSlNDOjpERUZJTkVf
U1RVQl9GVU5DVElPTik6CisgICAgICAgICogbGxpbnQvTExJbnRTbG93UGF0aHMuY3BwOgorICAg
ICAgICAoSlNDOjpMTEludDo6TExJTlRfU0xPV19QQVRIX0RFQ0wpOgorICAgICAgICAqIHJ1bnRp
bWUvQ29uY3VycmVudEpJVExvY2suaDoKKyAgICAgICAgKEpTQzo6Q29uY3VycmVudEpJVExvY2tl
ckJhc2U6OkNvbmN1cnJlbnRKSVRMb2NrZXJCYXNlKToKKyAgICAgICAgKEpTQzo6Q29uY3VycmVu
dEpJVExvY2tlckJhc2U6On5Db25jdXJyZW50SklUTG9ja2VyQmFzZSk6CisgICAgICAgIChKU0M6
OkNvbmN1cnJlbnRKSVRMb2NrZXJCYXNlOjp1bmxvY2tFYXJseSk6CisgICAgICAgIChKU0M6OkdD
U2FmZUNvbmN1cnJlbnRKSVRMb2NrZXI6OkdDU2FmZUNvbmN1cnJlbnRKSVRMb2NrZXIpOgorICAg
ICAgICAoSlNDOjpDb25jdXJyZW50SklUTG9ja2VyOjpDb25jdXJyZW50SklUTG9ja2VyKToKKyAg
ICAgICAgKiBydW50aW1lL0luaXRpYWxpemVUaHJlYWRpbmcuY3BwOgorICAgICAgICAoSlNDOjpp
bml0aWFsaXplVGhyZWFkaW5nT25jZSk6CisgICAgICAgICogcnVudGltZS9KU0NlbGxJbmxpbmVz
Lmg6CisgICAgICAgIChKU0M6OmFsbG9jYXRlQ2VsbCk6CisgICAgICAgICogcnVudGltZS9TdHJ1
Y3R1cmUuY3BwOgorICAgICAgICAoSlNDOjpTdHJ1Y3R1cmU6Om1hdGVyaWFsaXplUHJvcGVydHlN
YXApOgorICAgICAgICAoSlNDOjpTdHJ1Y3R1cmU6OnB1dFNwZWNpZmljVmFsdWUpOgorICAgICAg
ICAoSlNDOjpTdHJ1Y3R1cmU6OmNyZWF0ZVByb3BlcnR5TWFwKToKKyAgICAgICAgKiBydW50aW1l
L1N0cnVjdHVyZS5oOgorCiAyMDEzLTEwLTExICBDb21taXQgUXVldWUgIDxjb21taXQtcXVldWVA
d2Via2l0Lm9yZz4KIAogICAgICAgICBVbnJldmlld2VkLCByb2xsaW5nIG91dCByMTU3MzA3LgpJ
bmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL0NNYWtlTGlzdHMudHh0Cj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DTWFrZUxpc3RzLnR4dAkocmV2aXNpb24gMTU3MzA2KQor
KysgU291cmNlL0phdmFTY3JpcHRDb3JlL0NNYWtlTGlzdHMudHh0CSh3b3JraW5nIGNvcHkpCkBA
IC0xODEsNiArMTgxLDcgQEAgc2V0KEphdmFTY3JpcHRDb3JlX1NPVVJDRVMKICAgICBoZWFwL0Nv
bnNlcnZhdGl2ZVJvb3RzLmNwcAogICAgIGhlYXAvQ29waWVkU3BhY2UuY3BwCiAgICAgaGVhcC9D
b3B5VmlzaXRvci5jcHAKKyAgICBoZWFwL0RlZmVyR0MuY3BwCiAgICAgaGVhcC9HQ1RocmVhZC5j
cHAKICAgICBoZWFwL0dDVGhyZWFkU2hhcmVkRGF0YS5jcHAKICAgICBoZWFwL0hhbmRsZVNldC5j
cHAKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9HTlVtYWtlZmlsZS5saXN0LmFtCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9HTlVtYWtlZmlsZS5saXN0LmFtCShyZXZp
c2lvbiAxNTczMDYpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvR05VbWFrZWZpbGUubGlzdC5h
bQkod29ya2luZyBjb3B5KQpAQCAtNDY3LDYgKzQ2Nyw3IEBAIGphdmFzY3JpcHRjb3JlX3NvdXJj
ZXMgKz0gXAogCVNvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0NvcHlXb3JrTGlzdC5oIFwKIAlT
b3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9Db25zZXJ2YXRpdmVSb290cy5jcHAgXAogCVNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0NvbnNlcnZhdGl2ZVJvb3RzLmggXAorCVNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9oZWFwL0RlZmVyR0MuY3BwIFwKIAlTb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVh
cC9EZWZlckdDLmggXAogCVNvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0dDQXNzZXJ0aW9ucy5o
IFwKIAlTb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9HQ0luY29taW5nUmVmQ291bnRlZC5oIFwK
SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS52Y3hwcm9qL0phdmFT
Y3JpcHRDb3JlLnZjeHByb2oKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL0ph
dmFTY3JpcHRDb3JlLnZjeHByb2ovSmF2YVNjcmlwdENvcmUudmN4cHJvagkocmV2aXNpb24gMTU3
MzA2KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnZjeHByb2ovSmF2
YVNjcmlwdENvcmUudmN4cHJvagkod29ya2luZyBjb3B5KQpAQCAtMzM2LDYgKzMzNiw3IEBACiAg
ICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxoZWFwXENvbnNlcnZhdGl2ZVJvb3RzLmNwcCIgLz4N
CiAgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxoZWFwXENvcGllZFNwYWNlLmNwcCIgLz4NCiAg
ICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxoZWFwXENvcHlWaXNpdG9yLmNwcCIgLz4NCisgICAg
PENsQ29tcGlsZSBJbmNsdWRlPSIuLlxoZWFwXERlZmVyR0MuY3BwIiAvPg0KICAgICA8Q2xDb21w
aWxlIEluY2x1ZGU9Ii4uXGhlYXBcR0NUaHJlYWQuY3BwIiAvPg0KICAgICA8Q2xDb21waWxlIElu
Y2x1ZGU9Ii4uXGhlYXBcR0NUaHJlYWRTaGFyZWREYXRhLmNwcCIgLz4NCiAgICAgPENsQ29tcGls
ZSBJbmNsdWRlPSIuLlxoZWFwXEhhbmRsZVNldC5jcHAiIC8+DQpAQCAtNzA0LDYgKzcwNSw3IEBA
CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxoZWFwXENvcHlWaXNpdG9yLmgiIC8+DQogICAg
IDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5caGVhcFxDb3B5VmlzaXRvcklubGluZXMuaCIgLz4NCiAg
ICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxoZWFwXENvcHlXb3JrTGlzdC5oIiAvPg0KKyAgICA8
Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGhlYXBcRGVmZXJHQy5oIiAvPg0KICAgICA8Q2xJbmNsdWRl
IEluY2x1ZGU9Ii4uXGhlYXBcR0NBc3NlcnRpb25zLmgiIC8+DQogICAgIDxDbEluY2x1ZGUgSW5j
bHVkZT0iLi5caGVhcFxHQ1RocmVhZC5oIiAvPg0KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4u
XGhlYXBcR0NUaHJlYWRTaGFyZWREYXRhLmgiIC8+DQpJbmRleDogU291cmNlL0phdmFTY3JpcHRD
b3JlL0phdmFTY3JpcHRDb3JlLnZjeHByb2ovSmF2YVNjcmlwdENvcmUudmN4cHJvai5maWx0ZXJz
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS52Y3hw
cm9qL0phdmFTY3JpcHRDb3JlLnZjeHByb2ouZmlsdGVycwkocmV2aXNpb24gMTU3MzA2KQorKysg
U291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnZjeHByb2ovSmF2YVNjcmlwdENv
cmUudmN4cHJvai5maWx0ZXJzCSh3b3JraW5nIGNvcHkpCkBAIC04NzMsNiArODczLDkgQEAKICAg
ICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXGhlYXBcQ29kZUJsb2NrU2V0LmNwcCI+DQogICAgICAg
PEZpbHRlcj5oZWFwPC9GaWx0ZXI+DQogICAgIDwvQ2xDb21waWxlPg0KKyAgICA8Q2xDb21waWxl
IEluY2x1ZGU9Ii4uXGhlYXBcRGVmZXJHQy5jcHAiPg0KKyAgICAgIDxGaWx0ZXI+aGVhcDwvRmls
dGVyPg0KKyAgICA8L0NsQ29tcGlsZT4NCiAgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxieXRl
Y29kZVxEZWZlcnJlZENvbXBpbGF0aW9uQ2FsbGJhY2suY3BwIj4NCiAgICAgICA8RmlsdGVyPmJ5
dGVjb2RlPC9GaWx0ZXI+DQogICAgIDwvQ2xDb21waWxlPg0KQEAgLTEyMjMsNiArMTIyNiw5IEBA
CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxoZWFwXENvcHlXb3JrTGlzdC5oIj4NCiAgICAg
ICA8RmlsdGVyPmhlYXA8L0ZpbHRlcj4NCiAgICAgPC9DbEluY2x1ZGU+DQorICAgIDxDbEluY2x1
ZGUgSW5jbHVkZT0iLi5caGVhcFxEZWZlckdDLmgiPg0KKyAgICAgIDxGaWx0ZXI+aGVhcDwvRmls
dGVyPg0KKyAgICA8L0NsSW5jbHVkZT4NCiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxoZWFw
XEdDQXNzZXJ0aW9ucy5oIj4NCiAgICAgICA8RmlsdGVyPmhlYXA8L0ZpbHRlcj4NCiAgICAgPC9D
bEluY2x1ZGU+DQpAQCAtMjM4MSw0ICsyMzg3LDQgQEAKICAgICAgIDxGaWx0ZXI+aml0PC9GaWx0
ZXI+DQogICAgIDwvTUFTTT4NCiAgIDwvSXRlbUdyb3VwPg0KLTwvUHJvamVjdD4KXCBObyBuZXds
aW5lIGF0IGVuZCBvZiBmaWxlCis8L1Byb2plY3Q+DQpJbmRleDogU291cmNlL0phdmFTY3JpcHRD
b3JlL0phdmFTY3JpcHRDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnhjb2RlcHJvai9wcm9qZWN0
LnBieHByb2oJKHJldmlzaW9uIDE1NzMwNikKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZh
U2NyaXB0Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCSh3b3JraW5nIGNvcHkpCkBAIC0z
NzMsNiArMzczLDggQEAKIAkJMEZDODE1MTUxNDA1MTE5QjAwQ0ZBNjAzIC8qIFZUYWJsZVNwZWN0
cnVtLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRkM4
MTUxNDE0MDUxMThEMDBDRkE2MDMgLyogVlRhYmxlU3BlY3RydW0uaCAqLzsgc2V0dGluZ3MgPSB7
QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQkwRkM4MTUxNjE0MDUxMUI1MDBDRkE2
MDMgLyogVlRhYmxlU3BlY3RydW0uY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gMEZDODE1MTIxNDA1MTE4NjAwQ0ZBNjAzIC8qIFZUYWJsZVNwZWN0cnVt
LmNwcCAqLzsgfTsKIAkJMEZDQ0FFNDUxNkQwQ0Y3NDAwRDBDNjVCIC8qIFBhcnNlckVycm9yLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRkNDQUU0MzE2
RDBDRjZFMDBEMEM2NUIgLyogUGFyc2VyRXJyb3IuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRF
UyA9IChQcml2YXRlLCApOyB9OyB9OworCQkwRkNFRkFBQjE4MDRDMTNFMDA0NzJDRTQgLyogRlRM
U2F2ZVJlc3RvcmUuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gMEZDRUZBQTkxODA0QzEzRTAwNDcyQ0U0IC8qIEZUTFNhdmVSZXN0b3JlLmNwcCAqLzsg
fTsKKwkJMEZDRUZBQUMxODA0QzEzRTAwNDcyQ0U0IC8qIEZUTFNhdmVSZXN0b3JlLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRkNFRkFBQTE4MDRDMTNF
MDA0NzJDRTQgLyogRlRMU2F2ZVJlc3RvcmUuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9
IChQcml2YXRlLCApOyB9OyB9OwogCQkwRkNFRkFCMDE4MDVDQTZEMDA0NzJDRTQgLyogSW5pdGlh
bGl6ZUxMVk0uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDBGQ0VGQUFFMTgwNUNBNkQwMDQ3MkNFNCAvKiBJbml0aWFsaXplTExWTS5oICovOyBzZXR0aW5n
cyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTBGQ0VGQUIxMTgwNUNBNkQw
MDQ3MkNFNCAvKiBJbml0aWFsaXplTExWTU1hYy5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGQ0VGQUFGMTgwNUNBNkQwMDQ3MkNFNCAvKiBJbml0aWFs
aXplTExWTU1hYy5tbSAqLzsgfTsKIAkJMEZDRUZBQzExODA1RDk0RTAwNDcyQ0U0IC8qIExMVk1P
dmVycmlkZXMuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gMEZDRUZBQzAxODA1RDk0MTAwNDcyQ0U0IC8qIExMVk1PdmVycmlkZXMuY3BwICovOyB9OwpA
QCAtMzg5LDggKzM5MSw2IEBACiAJCTBGQ0VGQUQ3MTgwNjE3NDYwMDQ3MkNFNCAvKiBMTFZNQW5j
aG9yLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBG
Q0VGQUQ2MTgwNjE3NDYwMDQ3MkNFNCAvKiBMTFZNQW5jaG9yLmNwcCAqLzsgfTsKIAkJMEZDRUZB
REExODA2MjBEQTAwNDcyQ0U0IC8qIExMVk1BUEkuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGQ0VGQUM4MTgwNUU3NTUwMDQ3MkNFNCAvKiBMTFZNQVBJ
LmggKi87IH07CiAJCTBGQ0VGQURDMTgwNjRBMTQwMDQ3MkNFNCAvKiBjb25maWdfbGx2bS5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEZDRUZBREIxODA2
NEExNDAwNDcyQ0U0IC8qIGNvbmZpZ19sbHZtLmggKi87IH07Ci0JCTBGQ0VGQUFCMTgwNEMxM0Uw
MDQ3MkNFNCAvKiBGVExTYXZlUmVzdG9yZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSAwRkNFRkFBOTE4MDRDMTNFMDA0NzJDRTQgLyogRlRMU2F2ZVJl
c3RvcmUuY3BwICovOyB9OwotCQkwRkNFRkFBQzE4MDRDMTNFMDA0NzJDRTQgLyogRlRMU2F2ZVJl
c3RvcmUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBG
Q0VGQUFBMTgwNEMxM0UwMDQ3MkNFNCAvKiBGVExTYXZlUmVzdG9yZS5oICovOyBzZXR0aW5ncyA9
IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTBGQ0VGQURGMTgwNzM4QzAwMDQ3
MkNFNCAvKiBGVExMb2NhdGlvbi5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSAwRkNFRkFERDE4MDczOEMwMDA0NzJDRTQgLyogRlRMTG9jYXRpb24uY3Bw
ICovOyB9OwogCQkwRkNFRkFFMDE4MDczOEMwMDA0NzJDRTQgLyogRlRMTG9jYXRpb24uaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGQ0VGQURFMTgwNzM4
QzAwMDQ3MkNFNCAvKiBGVExMb2NhdGlvbi5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0g
KFByaXZhdGUsICk7IH07IH07CiAJCTBGRDJDOTI0MTZEMDFFRTkwMEM3ODAzRiAvKiBTdHJ1Y3R1
cmVJbmxpbmVzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSAwRkQyQzkyMzE2RDAxRUU5MDBDNzgwM0YgLyogU3RydWN0dXJlSW5saW5lcy5oICovOyBzZXR0
aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CkBAIC02ODQsNiArNjg0LDcg
QEAKIAkJMjYwMEI1QTcxNTJCQUFBNzAwOTFFRTVGIC8qIEpTU3RyaW5nSm9pbmVyLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyNjAwQjVBNTE1MkJBQUE3
MDA5MUVFNUYgLyogSlNTdHJpbmdKb2luZXIuaCAqLzsgfTsKIAkJMkE0OEQxOTExNzcyMzY1QjAw
QzY1QTVGIC8qIEFQSUNhbGxiYWNrRnVuY3Rpb24uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEMyMTFCNTc0MTc2QTIyNEQwMDBFMkEyMyAvKiBBUElDYWxs
YmFja0Z1bmN0aW9uLmggKi87IH07CiAJCTJBNkY0NjI2MTdFOTU5Q0UwMEM0NUM5OCAvKiBIZWFw
T3BlcmF0aW9uLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSAyQTZGNDYyNTE3RTk1OUNFMDBDNDVDOTggLyogSGVhcE9wZXJhdGlvbi5oICovOyBzZXR0aW5n
cyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCTJBN0E1OEVGMTgwOEE0QzQw
MDIwQkRGNyAvKiBEZWZlckdDLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDJBN0E1OEVFMTgwOEE0QzQwMDIwQkRGNyAvKiBEZWZlckdDLmNwcCAqLzsg
fTsKIAkJMkFEODkzMkIxN0UzODY4RjAwNjY4Mjc2IC8qIEhlYXBJdGVyYXRpb25TY29wZS5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMkFEODkzMjkxN0Uz
ODY4RjAwNjY4Mjc2IC8qIEhlYXBJdGVyYXRpb25TY29wZS5oICovOyB9OwogCQkzNzFEODQyRDE3
Qzk4QjZFMDBFQ0Y5OTQgLyogbGliei5keWxpYiBpbiBGcmFtZXdvcmtzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDM3MUQ4NDJDMTdDOThCNkUwMEVDRjk5NCAvKiBsaWJ6LmR5
bGliICovOyB9OwogCQk0MTM1OUNGMzBGREQ4OUFEMDAyMDYxODAgLyogRGF0ZUNvbnZlcnNpb24u
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEQyMTIwMjI5
MEFENDMxMEMwMEVENzlCNiAvKiBEYXRlQ29udmVyc2lvbi5oICovOyB9OwpAQCAtMTYyNyw2ICsx
NjI4LDggQEAKIAkJMEZDODE1MTQxNDA1MTE4RDAwQ0ZBNjAzIC8qIFZUYWJsZVNwZWN0cnVtLmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFZUYWJsZVNwZWN0cnVtLmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTBGQ0I0MDg1MTVDMEEzQzMwMDQ4OTMyQiAvKiBTbG90
VmlzaXRvcklubGluZXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU2xvdFZp
c2l0b3JJbmxpbmVzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTBGQ0NBRTQzMTZE
MENGNkUwMEQwQzY1QiAvKiBQYXJzZXJFcnJvci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBQYXJzZXJFcnJvci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkwRkNF
RkFBOTE4MDRDMTNFMDA0NzJDRTQgLyogRlRMU2F2ZVJlc3RvcmUuY3BwICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jcHAuY3BwOyBuYW1lID0gRlRMU2F2ZVJlc3RvcmUuY3BwOyBwYXRoID0gZnRsL0ZU
TFNhdmVSZXN0b3JlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMEZDRUZBQUEx
ODA0QzEzRTAwNDcyQ0U0IC8qIEZUTFNhdmVSZXN0b3JlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgbmFtZSA9IEZUTFNhdmVSZXN0b3JlLmg7IHBhdGggPSBmdGwvRlRMU2F2ZVJlc3RvcmUu
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMEZDRUZBQUUxODA1Q0E2RDAwNDcyQ0U0
IC8qIEluaXRpYWxpemVMTFZNLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IElu
aXRpYWxpemVMTFZNLmg7IHBhdGggPSBsbHZtL0luaXRpYWxpemVMTFZNLmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCTBGQ0VGQUFGMTgwNUNBNkQwMDQ3MkNFNCAvKiBJbml0aWFsaXpl
TExWTU1hYy5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgbmFtZSA9IEluaXRp
YWxpemVMTFZNTWFjLm1tOyBwYXRoID0gbGx2bS9Jbml0aWFsaXplTExWTU1hYy5tbTsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMEZDRUZBQjYxODA1RDYxNjAwNDcyQ0U0IC8qIGxpYmxs
dm1Gb3JKU0MuZHlsaWIgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZXhwbGljaXRGaWxl
VHlwZSA9ICJjb21waWxlZC5tYWNoLW8uZHlsaWIiOyBpbmNsdWRlSW5JbmRleCA9IDA7IHBhdGgg
PSBsaWJsbHZtRm9ySlNDLmR5bGliOyBzb3VyY2VUcmVlID0gQlVJTFRfUFJPRFVDVFNfRElSOyB9
OwpAQCAtMTY0Miw4ICsxNjQ1LDYgQEAKIAkJMEZDRUZBRDIxODA1RURDQzAwNDcyQ0U0IC8qIExM
Vk1IZWFkZXJzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IExMVk1IZWFkZXJz
Lmg7IHBhdGggPSBsbHZtL0xMVk1IZWFkZXJzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCTBGQ0VGQUQ2MTgwNjE3NDYwMDQ3MkNFNCAvKiBMTFZNQW5jaG9yLmNwcCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IExMVk1BbmNob3IuY3BwOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQkwRkNFRkFEQjE4MDY0QTE0MDA0NzJDRTQgLyogY29uZmlnX2xsdm0u
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gY29uZmlnX2xsdm0uaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJMEZDRUZBQTkxODA0QzEzRTAwNDcyQ0U0IC8qIEZUTFNh
dmVSZXN0b3JlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IEZUTFNh
dmVSZXN0b3JlLmNwcDsgcGF0aCA9IGZ0bC9GVExTYXZlUmVzdG9yZS5jcHA7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07Ci0JCTBGQ0VGQUFBMTgwNEMxM0UwMDQ3MkNFNCAvKiBGVExTYXZlUmVz
dG9yZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBGVExTYXZlUmVzdG9yZS5o
OyBwYXRoID0gZnRsL0ZUTFNhdmVSZXN0b3JlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCTBGQ0VGQUREMTgwNzM4QzAwMDQ3MkNFNCAvKiBGVExMb2NhdGlvbi5jcHAgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBGVExMb2NhdGlvbi5jcHA7IHBhdGggPSBmdGwv
RlRMTG9jYXRpb24uY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwRkNFRkFERTE4
MDczOEMwMDA0NzJDRTQgLyogRlRMTG9jYXRpb24uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBuYW1lID0gRlRMTG9jYXRpb24uaDsgcGF0aCA9IGZ0bC9GVExMb2NhdGlvbi5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQkwRkQyQzkyMzE2RDAxRUU5MDBDNzgwM0YgLyogU3RydWN0
dXJlSW5saW5lcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTdHJ1Y3R1cmVJ
bmxpbmVzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xODkxLDYgKzE4OTIsNyBA
QAogCQkyNjAwQjVBNDE1MkJBQUE3MDA5MUVFNUYgLyogSlNTdHJpbmdKb2luZXIuY3BwICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNTdHJpbmdKb2luZXIuY3BwOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkyNjAwQjVBNTE1MkJBQUE3MDA5MUVFNUYgLyogSlNT
dHJpbmdKb2luZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNTdHJpbmdK
b2luZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMkE2RjQ2MjUxN0U5NTlDRTAw
QzQ1Qzk4IC8qIEhlYXBPcGVyYXRpb24uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gSGVhcE9wZXJhdGlvbi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkyQTdBNThF
RTE4MDhBNEM0MDAyMEJERjcgLyogRGVmZXJHQy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5jcHA7IHBhdGggPSBEZWZlckdDLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
MkFEODkzMjkxN0UzODY4RjAwNjY4Mjc2IC8qIEhlYXBJdGVyYXRpb25TY29wZS5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBIZWFwSXRlcmF0aW9uU2NvcGUuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMzcxRDg0MkMxN0M5OEI2RTAwRUNGOTk0IC8qIGxpYnouZHls
aWIgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSAiY29t
cGlsZWQubWFjaC1vLmR5bGliIjsgbmFtZSA9IGxpYnouZHlsaWI7IHBhdGggPSB1c3IvbGliL2xp
YnouZHlsaWI7IHNvdXJjZVRyZWUgPSBTREtST09UOyB9OwogCQk0NDkwOTdFRTBGOEY4MUI1MDA3
NkEzMjcgLyogRmVhdHVyZURlZmluZXMueGNjb25maWcgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0LnhjY29uZmln
OyBwYXRoID0gRmVhdHVyZURlZmluZXMueGNjb25maWc7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CkBAIC0yOTE2LDYgKzI5MTgsNyBAQAogCQkJCUMyMjM5RDE0MTYyNjJCREQwMDVBQzVGRCAv
KiBDb3B5VmlzaXRvcklubGluZXMuaCAqLywKIAkJCQlDMjE4RDEzRjE2NTVDRkQ1MDA2MkJCODEg
LyogQ29weVdvcmtMaXN0LmggKi8sCiAJCQkJMEYxMzZENEIxNzRBRDY5QjAwNzVCMzU0IC8qIERl
ZmVyR0MuaCAqLywKKwkJCQkyQTdBNThFRTE4MDhBNEM0MDAyMEJERjcgLyogRGVmZXJHQy5jcHAg
Ki8sCiAJCQkJQkNCRTJDQUQxNEU5ODVBQTAwMDU5M0FEIC8qIEdDQXNzZXJ0aW9ucy5oICovLAog
CQkJCTBGMkI2NkE4MTdCNkI1M0QwMEE3QUUzRiAvKiBHQ0luY29taW5nUmVmQ291bnRlZC5oICov
LAogCQkJCTBGMkI2NkE5MTdCNkI1M0QwMEE3QUUzRiAvKiBHQ0luY29taW5nUmVmQ291bnRlZElu
bGluZXMuaCAqLywKQEAgLTU0ODAsNiArNTQ4Myw3IEBACiAJCQkJMEZEOEEzMjUxN0Q1MUY1NzAw
Q0EyQzQwIC8qIERGR09TUkVudHJ5cG9pbnRDcmVhdGlvblBoYXNlLmNwcCBpbiBTb3VyY2VzICov
LAogCQkJCUE3Mzg2NTU1MTE4Njk3QjQwMDU0MDI3OSAvKiBUaHVua0dlbmVyYXRvcnMuY3BwIGlu
IFNvdXJjZXMgKi8sCiAJCQkJMEYyQjY3MDcxN0I2QjVBQjAwQTdBRTNGIC8qIFR5cGVkQXJyYXlD
b250cm9sbGVyLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTJBN0E1OEVGMTgwOEE0QzQwMDIwQkRG
NyAvKiBEZWZlckdDLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTBGMkI2NzBBMTdCNkI1QUIwMEE3
QUUzRiAvKiBUeXBlZEFycmF5VHlwZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkwRkY0Mjc0QTE1
OEVCRTkxMDA0Q0I5RkYgLyogdWRpczg2LmMgaW4gU291cmNlcyAqLywKIAkJCQkwRkY0Mjc0MDE1
OEVCRThCMDA0Q0I5RkYgLyogdWRpczg2X2RlY29kZS5jIGluIFNvdXJjZXMgKi8sCkluZGV4OiBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9EZWZlckdDLmNwcAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvaGVhcC9EZWZlckdDLmNwcAkocmV2aXNpb24gMCkKKysrIFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0RlZmVyR0MuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAg
KzEsMzUgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTMgQXBwbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0Ogor
ICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkg
Zm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhl
CisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0
aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkg
QVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQ
UkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5F
U1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZF
TlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9S
IEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9S
CisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBP
RiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhP
V0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgor
ICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdF
TkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBP
RiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBP
RiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiRGVm
ZXJHQy5oIgorCituYW1lc3BhY2UgSlNDIHsKKworI2lmbmRlZiBOREVCVUcKK1dURjo6VGhyZWFk
U3BlY2lmaWNLZXkgRGlzYWxsb3dHQzo6c19pc0dDRGlzYWxsb3dlZE9uQ3VycmVudFRocmVhZCA9
IDA7CisjZW5kaWYKKworfSAvLyBuYW1lc3BhY2UgSlNDCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvaGVhcC9EZWZlckdDLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3Jl
L2hlYXAvRGVmZXJHQy5oCShyZXZpc2lvbiAxNTczMDYpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvaGVhcC9EZWZlckdDLmgJKHdvcmtpbmcgY29weSkKQEAgLTI4LDYgKzI4LDcgQEAKIAogI2lu
Y2x1ZGUgIkhlYXAuaCIKICNpbmNsdWRlIDx3dGYvTm9uY29weWFibGUuaD4KKyNpbmNsdWRlIDx3
dGYvVGhyZWFkU3BlY2lmaWMuaD4KIAogbmFtZXNwYWNlIEpTQyB7CiAKQEAgLTY3LDYgKzY4LDM0
IEBAIHByaXZhdGU6CiAgICAgSGVhcCYgbV9oZWFwOwogfTsKIAorI2lmbmRlZiBOREVCVUcKK2Ns
YXNzIERpc2FsbG93R0MgeworICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKERpc2FsbG93R0MpOwor
cHVibGljOgorICAgIERpc2FsbG93R0MoKQorICAgIHsKKyAgICAgICAgV1RGOjp0aHJlYWRTcGVj
aWZpY1NldChzX2lzR0NEaXNhbGxvd2VkT25DdXJyZW50VGhyZWFkLCByZWludGVycHJldF9jYXN0
PHZvaWQqPih0cnVlKSk7CisgICAgfQorCisgICAgfkRpc2FsbG93R0MoKQorICAgIHsKKyAgICAg
ICAgV1RGOjp0aHJlYWRTcGVjaWZpY1NldChzX2lzR0NEaXNhbGxvd2VkT25DdXJyZW50VGhyZWFk
LCByZWludGVycHJldF9jYXN0PHZvaWQqPihmYWxzZSkpOworICAgIH0KKworICAgIHN0YXRpYyBi
b29sIGlzR0NEaXNhbGxvd2VkT25DdXJyZW50VGhyZWFkKCkKKyAgICB7CisgICAgICAgIHJldHVy
biAhIVdURjo6dGhyZWFkU3BlY2lmaWNHZXQoc19pc0dDRGlzYWxsb3dlZE9uQ3VycmVudFRocmVh
ZCk7CisgICAgfQorICAgIHN0YXRpYyB2b2lkIGluaXRpYWxpemUoKQorICAgIHsKKyAgICAgICAg
V1RGOjp0aHJlYWRTcGVjaWZpY0tleUNyZWF0ZSgmc19pc0dDRGlzYWxsb3dlZE9uQ3VycmVudFRo
cmVhZCwgMCk7CisgICAgfQorCitwcml2YXRlOgorICAgIEpTX0VYUE9SVF9QUklWQVRFIHN0YXRp
YyBXVEY6OlRocmVhZFNwZWNpZmljS2V5IHNfaXNHQ0Rpc2FsbG93ZWRPbkN1cnJlbnRUaHJlYWQ7
Cit9OworI2VuZGlmIC8vIE5ERUJVRworCiB9IC8vIG5hbWVzcGFjZSBKU0MKIAogI2VuZGlmIC8v
IERlZmVyR0NfaApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRTdHVicy5jcHAK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRTdHVicy5jcHAJKHJl
dmlzaW9uIDE1NzMwNikKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUU3R1YnMuY3Bw
CSh3b3JraW5nIGNvcHkpCkBAIC0xMjUsNyArMTI1LDcgQEAgdm9pZCBwZXJmb3JtUGxhdGZvcm1T
cGVjaWZpY0pJVEFzc2VydGlvbgogCiBORVZFUl9JTkxJTkUgc3RhdGljIHZvaWQgdHJ5Q2FjaGVQ
dXRCeUlEKENhbGxGcmFtZSogY2FsbEZyYW1lLCBDb2RlQmxvY2sqIGNvZGVCbG9jaywgUmV0dXJu
QWRkcmVzc1B0ciByZXR1cm5BZGRyZXNzLCBKU1ZhbHVlIGJhc2VWYWx1ZSwgY29uc3QgUHV0UHJv
cGVydHlTbG90JiBzbG90LCBTdHJ1Y3R1cmVTdHViSW5mbyogc3R1YkluZm8sIGJvb2wgZGlyZWN0
KQogewotICAgIENvbmN1cnJlbnRKSVRMb2NrZXIgbG9ja2VyKGNvZGVCbG9jay0+bV9sb2NrKTsK
KyAgICBHQ1NhZmVDb25jdXJyZW50SklUTG9ja2VyIGxvY2tlcihjb2RlQmxvY2stPm1fbG9jaywg
Y2FsbEZyYW1lLT52bSgpLmhlYXApOwogICAgIAogICAgIC8vIFRoZSBpbnRlcnByZXRlciBjaGVj
a3MgZm9yIHJlY3Vyc2lvbiBoZXJlOyBJIGRvIG5vdCBiZWxpZXZlIHRoaXMgY2FuIG9jY3VyIGlu
IENUSS4KIApAQCAtMTgxLDcgKzE4MSw3IEBAIE5FVkVSX0lOTElORSBzdGF0aWMgdm9pZCB0cnlD
YWNoZVB1dEJ5SUQKIAogTkVWRVJfSU5MSU5FIHN0YXRpYyB2b2lkIHRyeUNhY2hlR2V0QnlJRChD
YWxsRnJhbWUqIGNhbGxGcmFtZSwgQ29kZUJsb2NrKiBjb2RlQmxvY2ssIFJldHVybkFkZHJlc3NQ
dHIgcmV0dXJuQWRkcmVzcywgSlNWYWx1ZSBiYXNlVmFsdWUsIGNvbnN0IElkZW50aWZpZXImIHBy
b3BlcnR5TmFtZSwgY29uc3QgUHJvcGVydHlTbG90JiBzbG90LCBTdHJ1Y3R1cmVTdHViSW5mbyog
c3R1YkluZm8pCiB7Ci0gICAgQ29uY3VycmVudEpJVExvY2tlciBsb2NrZXIoY29kZUJsb2NrLT5t
X2xvY2spOworICAgIEdDU2FmZUNvbmN1cnJlbnRKSVRMb2NrZXIgbG9ja2VyKGNvZGVCbG9jay0+
bV9sb2NrLCBjYWxsRnJhbWUtPnZtKCkuaGVhcCk7CiAgICAgCiAgICAgLy8gRklYTUU6IFdyaXRl
IGEgdGVzdCB0aGF0IHByb3ZlcyB3ZSBuZWVkIHRvIGNoZWNrIGZvciByZWN1cnNpb24gaGVyZSBq
dXN0CiAgICAgLy8gbGlrZSB0aGUgaW50ZXJwcmV0ZXIgZG9lcywgdGhlbiBhZGQgYSBjaGVjayBm
b3IgcmVjdXJzaW9uLgpAQCAtNzQ0LDcgKzc0NCw3IEBAIERFRklORV9TVFVCX0ZVTkNUSU9OKEVu
Y29kZWRKU1ZhbHVlLCBvcF8KICAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShyZXN1bHQp
OwogICAgIH0KIAotICAgIENvbmN1cnJlbnRKSVRMb2NrZXIgbG9ja2VyKGNvZGVCbG9jay0+bV9s
b2NrKTsKKyAgICBHQ1NhZmVDb25jdXJyZW50SklUTG9ja2VyIGxvY2tlcihjb2RlQmxvY2stPm1f
bG9jaywgY2FsbEZyYW1lLT52bSgpLmhlYXApOwogICAgIAogICAgIFN0cnVjdHVyZSogc3RydWN0
dXJlID0gYmFzZVZhbHVlLmFzQ2VsbCgpLT5zdHJ1Y3R1cmUoKTsKIApJbmRleDogU291cmNlL0ph
dmFTY3JpcHRDb3JlL2xsaW50L0xMSW50U2xvd1BhdGhzLmNwcAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTExJbnRTbG93UGF0aHMuY3BwCShyZXZpc2lvbiAxNTcz
MDYpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTExJbnRTbG93UGF0aHMuY3BwCSh3
b3JraW5nIGNvcHkpCkBAIC01OTYsNyArNTk2LDcgQEAgTExJTlRfU0xPV19QQVRIX0RFQ0woc2xv
d19wYXRoX3B1dF9ieV9pZAogICAgICAgICAgICAgJiYgYmFzZUNlbGwgPT0gc2xvdC5iYXNlKCkp
IHsKICAgICAgICAgICAgIAogICAgICAgICAgICAgaWYgKHNsb3QudHlwZSgpID09IFB1dFByb3Bl
cnR5U2xvdDo6TmV3UHJvcGVydHkpIHsKLSAgICAgICAgICAgICAgICBDb25jdXJyZW50SklUTG9j
a2VyIGxvY2tlcihjb2RlQmxvY2stPm1fbG9jayk7CisgICAgICAgICAgICAgICAgR0NTYWZlQ29u
Y3VycmVudEpJVExvY2tlciBsb2NrZXIoY29kZUJsb2NrLT5tX2xvY2ssIHZtLmhlYXApOwogICAg
ICAgICAgICAgCiAgICAgICAgICAgICAgICAgaWYgKCFzdHJ1Y3R1cmUtPmlzRGljdGlvbmFyeSgp
ICYmIHN0cnVjdHVyZS0+cHJldmlvdXNJRCgpLT5vdXRPZkxpbmVDYXBhY2l0eSgpID09IHN0cnVj
dHVyZS0+b3V0T2ZMaW5lQ2FwYWNpdHkoKSkgewogICAgICAgICAgICAgICAgICAgICBBU1NFUlQo
c3RydWN0dXJlLT5wcmV2aW91c0lEKCktPnRyYW5zaXRpb25XYXRjaHBvaW50U2V0SGFzQmVlbklu
dmFsaWRhdGVkKCkpOwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQ29uY3Vy
cmVudEpJVExvY2suaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9Db25jdXJyZW50SklUTG9jay5oCShyZXZpc2lvbiAxNTczMDYpCisrKyBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9Db25jdXJyZW50SklUTG9jay5oCSh3b3JraW5nIGNvcHkpCkBAIC0y
Niw2ICsyNiw3IEBACiAjaWZuZGVmIENvbmN1cnJlbnRKSVRMb2NrX2gKICNkZWZpbmUgQ29uY3Vy
cmVudEpJVExvY2tfaAogCisjaW5jbHVkZSAiRGVmZXJHQy5oIgogI2luY2x1ZGUgPHd0Zi9CeXRl
U3BpbkxvY2suaD4KICNpbmNsdWRlIDx3dGYvTm9Mb2NrLmg+CiAKQEAgLTMzLDcgKzM0LDcwIEBA
IG5hbWVzcGFjZSBKU0MgewogCiAjaWYgRU5BQkxFKENPTkNVUlJFTlRfSklUKQogdHlwZWRlZiBC
eXRlU3BpbkxvY2sgQ29uY3VycmVudEpJVExvY2s7CisKK2NsYXNzIENvbmN1cnJlbnRKSVRMb2Nr
ZXJCYXNlIHsKKyAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShDb25jdXJyZW50SklUTG9ja2VyQmFz
ZSk7CitwdWJsaWM6CisgICAgZXhwbGljaXQgQ29uY3VycmVudEpJVExvY2tlckJhc2UoQ29uY3Vy
cmVudEpJVExvY2smIGxvY2thYmxlKQorICAgICAgICA6IG1fbG9ja2VyKCZsb2NrYWJsZSkKKyAg
ICB7CisgICAgfQorICAgIGV4cGxpY2l0IENvbmN1cnJlbnRKSVRMb2NrZXJCYXNlKENvbmN1cnJl
bnRKSVRMb2NrKiBsb2NrYWJsZSkKKyAgICAgICAgOiBtX2xvY2tlcihsb2NrYWJsZSkKKyAgICB7
CisgICAgfQorCisgICAgfkNvbmN1cnJlbnRKSVRMb2NrZXJCYXNlKCkKKyAgICB7CisgICAgfQor
ICAgIAorICAgIHZvaWQgdW5sb2NrRWFybHkoKQorICAgIHsKKyAgICAgICAgbV9sb2NrZXIudW5s
b2NrRWFybHkoKTsKKyAgICB9CisKK3ByaXZhdGU6CisgICAgQnl0ZVNwaW5Mb2NrZXIgbV9sb2Nr
ZXI7Cit9OworCitjbGFzcyBHQ1NhZmVDb25jdXJyZW50SklUTG9ja2VyIDogcHVibGljIENvbmN1
cnJlbnRKSVRMb2NrZXJCYXNlIHsKK3B1YmxpYzoKKyAgICBHQ1NhZmVDb25jdXJyZW50SklUTG9j
a2VyKENvbmN1cnJlbnRKSVRMb2NrJiBsb2NrYWJsZSwgSGVhcCYgaGVhcCkKKyAgICAgICAgOiBD
b25jdXJyZW50SklUTG9ja2VyQmFzZShsb2NrYWJsZSkKKyAgICAgICAgLCBtX2RlZmVyR0MoaGVh
cCkKKyAgICB7CisgICAgfQorCisgICAgR0NTYWZlQ29uY3VycmVudEpJVExvY2tlcihDb25jdXJy
ZW50SklUTG9jayogbG9ja2FibGUsIEhlYXAmIGhlYXApCisgICAgICAgIDogQ29uY3VycmVudEpJ
VExvY2tlckJhc2UobG9ja2FibGUpCisgICAgICAgICwgbV9kZWZlckdDKGhlYXApCisgICAgewor
ICAgIH0KKworcHJpdmF0ZToKKyAgICBEZWZlckdDIG1fZGVmZXJHQzsKK307CisKKyNpZm5kZWYg
TkRFQlVHCitjbGFzcyBDb25jdXJyZW50SklUTG9ja2VyIDogcHVibGljIENvbmN1cnJlbnRKSVRM
b2NrZXJCYXNlIHsKK3B1YmxpYzoKKyAgICBDb25jdXJyZW50SklUTG9ja2VyKENvbmN1cnJlbnRK
SVRMb2NrJiBsb2NrYWJsZSkKKyAgICAgICAgOiBDb25jdXJyZW50SklUTG9ja2VyQmFzZShsb2Nr
YWJsZSkKKyAgICB7CisgICAgfQorCisgICAgQ29uY3VycmVudEpJVExvY2tlcihDb25jdXJyZW50
SklUTG9jayogbG9ja2FibGUpCisgICAgICAgIDogQ29uY3VycmVudEpJVExvY2tlckJhc2UobG9j
a2FibGUpCisgICAgeworICAgIH0KKworcHJpdmF0ZToKKyAgICBEaXNhbGxvd0dDIG1fZGlzYWxs
b3dHQzsKK307CisjZWxzZQogdHlwZWRlZiBCeXRlU3BpbkxvY2tlciBDb25jdXJyZW50SklUTG9j
a2VyOworI2VuZGlmIAorCiAjZWxzZQogdHlwZWRlZiBOb0xvY2sgQ29uY3VycmVudEpJVExvY2s7
CiB0eXBlZGVmIE5vTG9ja0xvY2tlciBDb25jdXJyZW50SklUTG9ja2VyOwpJbmRleDogU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSW5pdGlhbGl6ZVRocmVhZGluZy5jcHAKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSW5pdGlhbGl6ZVRocmVhZGluZy5j
cHAJKHJldmlzaW9uIDE1NzMwNikKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0lu
aXRpYWxpemVUaHJlYWRpbmcuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC02OSw2ICs2OSw5IEBAIHN0
YXRpYyB2b2lkIGluaXRpYWxpemVUaHJlYWRpbmdPbmNlKCkKICNpZiBFTkFCTEUoTExJTlQpCiAg
ICAgTExJbnQ6OmluaXRpYWxpemUoKTsKICNlbmRpZgorI2lmbmRlZiBOREVCVUcKKyAgICBEaXNh
bGxvd0dDOjppbml0aWFsaXplKCk7CisjZW5kaWYKIH0KIAogdm9pZCBpbml0aWFsaXplVGhyZWFk
aW5nKCkKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQ2VsbElubGluZXMu
aAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0NlbGxJbmxp
bmVzLmgJKHJldmlzaW9uIDE1NzMwNikKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L0pTQ2VsbElubGluZXMuaAkod29ya2luZyBjb3B5KQpAQCAtMjcsNiArMjcsNyBAQAogI2RlZmlu
ZSBKU0NlbGxJbmxpbmVzX2gKIAogI2luY2x1ZGUgIkNhbGxGcmFtZS5oIgorI2luY2x1ZGUgIkRl
ZmVyR0MuaCIKICNpbmNsdWRlICJIYW5kbGUuaCIKICNpbmNsdWRlICJKU0NlbGwuaCIKICNpbmNs
dWRlICJKU09iamVjdC5oIgpAQCAtODUsNiArODYsNyBAQCBpbmxpbmUgdm9pZCBKU0NlbGw6OnZp
c2l0Q2hpbGRyZW4oSlNDZWxsCiB0ZW1wbGF0ZTx0eXBlbmFtZSBUPgogdm9pZCogYWxsb2NhdGVD
ZWxsKEhlYXAmIGhlYXAsIHNpemVfdCBzaXplKQogeworICAgIEFTU0VSVCghRGlzYWxsb3dHQzo6
aXNHQ0Rpc2FsbG93ZWRPbkN1cnJlbnRUaHJlYWQoKSk7CiAgICAgQVNTRVJUKHNpemUgPj0gc2l6
ZW9mKFQpKTsKICNpZiBFTkFCTEUoR0NfVkFMSURBVElPTikKICAgICBBU1NFUlQoIWhlYXAudm0o
KS0+aXNJbml0aWFsaXppbmdPYmplY3QoKSk7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9TdHJ1Y3R1cmUuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL1N0cnVjdHVyZS5jcHAJKHJldmlzaW9uIDE1NzMwNikKKysrIFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL1N0cnVjdHVyZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI4MCw3
ICsyODAsNyBAQCB2b2lkIFN0cnVjdHVyZTo6bWF0ZXJpYWxpemVQcm9wZXJ0eU1hcChWCiAgICAg
Ly8gTXVzdCBob2xkIHRoZSBsb2NrIG9uIHRoaXMgc3RydWN0dXJlLCBzaW5jZSB3ZSB3aWxsIGJl
IG1vZGlmeWluZyB0aGlzIHN0cnVjdHVyZSdzCiAgICAgLy8gcHJvcGVydHkgbWFwLiBXZSBkb24n
dCB3YW50IGdldENvbmN1cnJlbnRseSgpIHRvIHNlZSB0aGUgcHJvcGVydHkgbWFwIGluIGEgaGFs
Zi1iYWtlZAogICAgIC8vIHN0YXRlLgotICAgIENvbmN1cnJlbnRKSVRMb2NrZXIgbG9ja2VyKG1f
bG9jayk7CisgICAgR0NTYWZlQ29uY3VycmVudEpJVExvY2tlciBsb2NrZXIobV9sb2NrLCB2bS5o
ZWFwKTsKICAgICBpZiAoIXRhYmxlKQogICAgICAgICBjcmVhdGVQcm9wZXJ0eU1hcChsb2NrZXIs
IHZtLCBudW1iZXJPZlNsb3RzRm9yTGFzdE9mZnNldChtX29mZnNldCwgbV9pbmxpbmVDYXBhY2l0
eSkpOwogICAgIGVsc2UKQEAgLTg4MSw3ICs4ODEsNyBAQCB2b2lkIFN0cnVjdHVyZTo6ZGVzcGVj
aWZ5QWxsRnVuY3Rpb25zKFZNCiAKIFByb3BlcnR5T2Zmc2V0IFN0cnVjdHVyZTo6cHV0U3BlY2lm
aWNWYWx1ZShWTSYgdm0sIFByb3BlcnR5TmFtZSBwcm9wZXJ0eU5hbWUsIHVuc2lnbmVkIGF0dHJp
YnV0ZXMsIEpTQ2VsbCogc3BlY2lmaWNWYWx1ZSkKIHsKLSAgICBDb25jdXJyZW50SklUTG9ja2Vy
IGxvY2tlcihtX2xvY2spOworICAgIEdDU2FmZUNvbmN1cnJlbnRKSVRMb2NrZXIgbG9ja2VyKG1f
bG9jaywgdm0uaGVhcCk7CiAgICAgCiAgICAgQVNTRVJUKCFKU0M6OmlzVmFsaWRPZmZzZXQoZ2V0
KHZtLCBwcm9wZXJ0eU5hbWUpKSk7CiAKQEAgLTkyNiw3ICs5MjYsNyBAQCBQcm9wZXJ0eU9mZnNl
dCBTdHJ1Y3R1cmU6OnJlbW92ZShQcm9wZXJ0CiAgICAgcmV0dXJuIG9mZnNldDsKIH0KIAotdm9p
ZCBTdHJ1Y3R1cmU6OmNyZWF0ZVByb3BlcnR5TWFwKGNvbnN0IENvbmN1cnJlbnRKSVRMb2NrZXIm
LCBWTSYgdm0sIHVuc2lnbmVkIGNhcGFjaXR5KQordm9pZCBTdHJ1Y3R1cmU6OmNyZWF0ZVByb3Bl
cnR5TWFwKGNvbnN0IEdDU2FmZUNvbmN1cnJlbnRKSVRMb2NrZXImLCBWTSYgdm0sIHVuc2lnbmVk
IGNhcGFjaXR5KQogewogICAgIEFTU0VSVCghcHJvcGVydHlUYWJsZSgpKTsKIApJbmRleDogU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RydWN0dXJlLmgKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RydWN0dXJlLmgJKHJldmlzaW9uIDE1NzMwNikK
KysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0cnVjdHVyZS5oCSh3b3JraW5nIGNv
cHkpCkBAIC0zOTMsNyArMzkzLDcgQEAgcHJpdmF0ZToKICAgICBQcm9wZXJ0eU9mZnNldCBwdXRT
cGVjaWZpY1ZhbHVlKFZNJiwgUHJvcGVydHlOYW1lLCB1bnNpZ25lZCBhdHRyaWJ1dGVzLCBKU0Nl
bGwqIHNwZWNpZmljVmFsdWUpOwogICAgIFByb3BlcnR5T2Zmc2V0IHJlbW92ZShQcm9wZXJ0eU5h
bWUpOwogCi0gICAgdm9pZCBjcmVhdGVQcm9wZXJ0eU1hcChjb25zdCBDb25jdXJyZW50SklUTG9j
a2VyJiwgVk0mLCB1bnNpZ25lZCBrZXlDb3VudCA9IDApOworICAgIHZvaWQgY3JlYXRlUHJvcGVy
dHlNYXAoY29uc3QgR0NTYWZlQ29uY3VycmVudEpJVExvY2tlciYsIFZNJiwgdW5zaWduZWQga2V5
Q291bnQgPSAwKTsKICAgICB2b2lkIGNoZWNrQ29uc2lzdGVuY3koKTsKIAogICAgIGJvb2wgZGVz
cGVjaWZ5RnVuY3Rpb24oVk0mLCBQcm9wZXJ0eU5hbWUpOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>214031</attachid>
            <date>2013-10-11 15:44:40 -0700</date>
            <delta_ts>2013-10-11 16:36:14 -0700</delta_ts>
            <desc>build fix</desc>
            <filename>bug-122667-20131011154430.patch</filename>
            <type>text/plain</type>
            <size>26646</size>
            <attacher name="Mark Hahnenberg">mhahnenberg</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMTU3MzIwKQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDU5IEBA
CisyMDEzLTEwLTExICBNYXJrIEhhaG5lbmJlcmcgIDxtaGFobmVuYmVyZ0BhcHBsZS5jb20+CisK
KyAgICAgICAgbGxpbnRfc2xvd19wYXRoX3B1dF9ieV9pZCBjYW4gZGVhZGxvY2sgb24gYSBDb25j
dXJyZW50SklUTG9jaworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MTIyNjY3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgVGhlIGlzc3VlIHRoaXMgcGF0Y2ggaXMgYXR0ZW1wdGluZyB0byBmaXggaXMgdGhhdCB0
aGVyZSBhcmUgcGxhY2VzIGluIG91ciBjb2RlYmFzZQorICAgICAgICB3aGVyZSB3ZSBhY3F1aXJl
IHRoZSBDb25jdXJyZW50SklUTG9jayBmb3IgYSBwYXJ0aWN1bGFyIENvZGVCbG9jaywgdGhlbiB3
ZSBkbyBzb21lCisgICAgICAgIG9wZXJhdGlvbnMgdGhhdCBjYW4gaW5pdGlhdGUgYSBnYXJiYWdl
IGNvbGxlY3Rpb24uIEdhcmJhZ2UgY29sbGVjdGlvbiB0aGVuIGNhbGxzIAorICAgICAgICBzb21l
IG1ldGhvZHMgb2YgQ29kZUJsb2NrIHRoYXQgYWxzbyB0YWtlIHRoZSBDb25jdXJyZW50SklUTG9j
ayAoYmVjYXVzZSB0aGV5IGRvbid0CisgICAgICAgIGFsd2F5cyBuZWNlc3NhcmlseSBydW4gZHVy
aW5nIGdhcmJhZ2UgY29sbGVjdGlvbikuIFRoaXMgY2F1c2VzIGEgZGVhZGxvY2suCisKKyAgICAg
ICAgVG8gZml4IHRoaXMgaXNzdWUsIHRoaXMgcGF0Y2ggYWRkcyBhIG5ldyBSQUlJLXN0eWxlIG9i
amVjdCAoRGlzYWxsb3dHQykgdGhhdCBzdG9yZXMgCisgICAgICAgIGludG8gYSB0aHJlYWQtbG9j
YWwgZmllbGQgdGhhdCBpbmRpY2F0ZXMgdGhhdCBpdCBpcyB1bnNhZmUgdG8gcGVyZm9ybSBhbnkg
b3BlcmF0aW9uIAorICAgICAgICB0aGF0IGNvdWxkIHRyaWdnZXIgZ2FyYmFnZSBjb2xsZWN0aW9u
IG9uIHRoZSBjdXJyZW50IHRocmVhZC4gSW4gZGVidWcgYnVpbGRzLCAKKyAgICAgICAgQ29uY3Vy
cmVudEpJVExvY2tlciBjb250YWlucyBvbmUgb2YgdGhlc2UgRGlzYWxsb3dHQyBvYmplY3RzIHNv
IHRoYXQgd2UgY2FuIGVhZ2VybHkgCisgICAgICAgIGRldGVjdCBkZWFkbG9ja3MuCisKKyAgICAg
ICAgVGhpcyBwYXRjaCBhbHNvIGFkZHMgYSBuZXcgdHlwZSBvZiBDb25jdXJyZW50SklUTG9ja2Vy
LCBHQ1NhZmVDb25jdXJyZW50SklUTG9ja2VyLAorICAgICAgICB3aGljaCB1c2VzIHRoZSBEZWZl
ckdDIG1lY2hhbmlzbSB0byBwcmV2ZW50IGNvbGxlY3Rpb25zIGZyb20gb2NjdXJyaW5nIHdoaWxl
IHRoZSAKKyAgICAgICAgbG9jayBpcyBoZWxkLgorCisgICAgICAgICogQ01ha2VMaXN0cy50eHQ6
CisgICAgICAgICogR05VbWFrZWZpbGUubGlzdC5hbToKKyAgICAgICAgKiBKYXZhU2NyaXB0Q29y
ZS52Y3hwcm9qL0phdmFTY3JpcHRDb3JlLnZjeHByb2o6CisgICAgICAgICogSmF2YVNjcmlwdENv
cmUudmN4cHJvai9KYXZhU2NyaXB0Q29yZS52Y3hwcm9qLmZpbHRlcnM6CisgICAgICAgICogSmF2
YVNjcmlwdENvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBoZWFwL0Rl
ZmVyR0MuY3BwOiBBZGRlZC4KKyAgICAgICAgKiBoZWFwL0RlZmVyR0MuaDoKKyAgICAgICAgKEpT
Qzo6RGlzYWxsb3dHQzo6RGlzYWxsb3dHQyk6CisgICAgICAgIChKU0M6OkRpc2FsbG93R0M6On5E
aXNhbGxvd0dDKToKKyAgICAgICAgKEpTQzo6RGlzYWxsb3dHQzo6aXNHQ0Rpc2FsbG93ZWRPbkN1
cnJlbnRUaHJlYWQpOgorICAgICAgICAoSlNDOjpEaXNhbGxvd0dDOjppbml0aWFsaXplKToKKyAg
ICAgICAgKiBqaXQvSklUU3R1YnMuY3BwOgorICAgICAgICAoSlNDOjp0cnlDYWNoZVB1dEJ5SUQp
OgorICAgICAgICAoSlNDOjp0cnlDYWNoZUdldEJ5SUQpOgorICAgICAgICAoSlNDOjpERUZJTkVf
U1RVQl9GVU5DVElPTik6CisgICAgICAgICogbGxpbnQvTExJbnRTbG93UGF0aHMuY3BwOgorICAg
ICAgICAoSlNDOjpMTEludDo6TExJTlRfU0xPV19QQVRIX0RFQ0wpOgorICAgICAgICAqIHJ1bnRp
bWUvQ29uY3VycmVudEpJVExvY2suaDoKKyAgICAgICAgKEpTQzo6Q29uY3VycmVudEpJVExvY2tl
ckJhc2U6OkNvbmN1cnJlbnRKSVRMb2NrZXJCYXNlKToKKyAgICAgICAgKEpTQzo6Q29uY3VycmVu
dEpJVExvY2tlckJhc2U6On5Db25jdXJyZW50SklUTG9ja2VyQmFzZSk6CisgICAgICAgIChKU0M6
OkNvbmN1cnJlbnRKSVRMb2NrZXJCYXNlOjp1bmxvY2tFYXJseSk6CisgICAgICAgIChKU0M6OkdD
U2FmZUNvbmN1cnJlbnRKSVRMb2NrZXI6OkdDU2FmZUNvbmN1cnJlbnRKSVRMb2NrZXIpOgorICAg
ICAgICAoSlNDOjpDb25jdXJyZW50SklUTG9ja2VyOjpDb25jdXJyZW50SklUTG9ja2VyKToKKyAg
ICAgICAgKiBydW50aW1lL0luaXRpYWxpemVUaHJlYWRpbmcuY3BwOgorICAgICAgICAoSlNDOjpp
bml0aWFsaXplVGhyZWFkaW5nT25jZSk6CisgICAgICAgICogcnVudGltZS9KU0NlbGxJbmxpbmVz
Lmg6CisgICAgICAgIChKU0M6OmFsbG9jYXRlQ2VsbCk6CisgICAgICAgICogcnVudGltZS9TdHJ1
Y3R1cmUuY3BwOgorICAgICAgICAoSlNDOjpTdHJ1Y3R1cmU6Om1hdGVyaWFsaXplUHJvcGVydHlN
YXApOgorICAgICAgICAoSlNDOjpTdHJ1Y3R1cmU6OnB1dFNwZWNpZmljVmFsdWUpOgorICAgICAg
ICAoSlNDOjpTdHJ1Y3R1cmU6OmNyZWF0ZVByb3BlcnR5TWFwKToKKyAgICAgICAgKiBydW50aW1l
L1N0cnVjdHVyZS5oOgorCiAyMDEzLTEwLTExICBDb21taXQgUXVldWUgIDxjb21taXQtcXVldWVA
d2Via2l0Lm9yZz4KIAogICAgICAgICBVbnJldmlld2VkLCByb2xsaW5nIG91dCByMTU3MzA3LgpJ
bmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL0NNYWtlTGlzdHMudHh0Cj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DTWFrZUxpc3RzLnR4dAkocmV2aXNpb24gMTU3MzA2KQor
KysgU291cmNlL0phdmFTY3JpcHRDb3JlL0NNYWtlTGlzdHMudHh0CSh3b3JraW5nIGNvcHkpCkBA
IC0xODEsNiArMTgxLDcgQEAgc2V0KEphdmFTY3JpcHRDb3JlX1NPVVJDRVMKICAgICBoZWFwL0Nv
bnNlcnZhdGl2ZVJvb3RzLmNwcAogICAgIGhlYXAvQ29waWVkU3BhY2UuY3BwCiAgICAgaGVhcC9D
b3B5VmlzaXRvci5jcHAKKyAgICBoZWFwL0RlZmVyR0MuY3BwCiAgICAgaGVhcC9HQ1RocmVhZC5j
cHAKICAgICBoZWFwL0dDVGhyZWFkU2hhcmVkRGF0YS5jcHAKICAgICBoZWFwL0hhbmRsZVNldC5j
cHAKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9HTlVtYWtlZmlsZS5saXN0LmFtCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9HTlVtYWtlZmlsZS5saXN0LmFtCShyZXZp
c2lvbiAxNTczMDYpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvR05VbWFrZWZpbGUubGlzdC5h
bQkod29ya2luZyBjb3B5KQpAQCAtNDY3LDYgKzQ2Nyw3IEBAIGphdmFzY3JpcHRjb3JlX3NvdXJj
ZXMgKz0gXAogCVNvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0NvcHlXb3JrTGlzdC5oIFwKIAlT
b3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9Db25zZXJ2YXRpdmVSb290cy5jcHAgXAogCVNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0NvbnNlcnZhdGl2ZVJvb3RzLmggXAorCVNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9oZWFwL0RlZmVyR0MuY3BwIFwKIAlTb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVh
cC9EZWZlckdDLmggXAogCVNvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0dDQXNzZXJ0aW9ucy5o
IFwKIAlTb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9HQ0luY29taW5nUmVmQ291bnRlZC5oIFwK
SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS52Y3hwcm9qL0phdmFT
Y3JpcHRDb3JlLnZjeHByb2oKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL0ph
dmFTY3JpcHRDb3JlLnZjeHByb2ovSmF2YVNjcmlwdENvcmUudmN4cHJvagkocmV2aXNpb24gMTU3
MzA2KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnZjeHByb2ovSmF2
YVNjcmlwdENvcmUudmN4cHJvagkod29ya2luZyBjb3B5KQpAQCAtMzM2LDYgKzMzNiw3IEBACiAg
ICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxoZWFwXENvbnNlcnZhdGl2ZVJvb3RzLmNwcCIgLz4N
CiAgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxoZWFwXENvcGllZFNwYWNlLmNwcCIgLz4NCiAg
ICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxoZWFwXENvcHlWaXNpdG9yLmNwcCIgLz4NCisgICAg
PENsQ29tcGlsZSBJbmNsdWRlPSIuLlxoZWFwXERlZmVyR0MuY3BwIiAvPg0KICAgICA8Q2xDb21w
aWxlIEluY2x1ZGU9Ii4uXGhlYXBcR0NUaHJlYWQuY3BwIiAvPg0KICAgICA8Q2xDb21waWxlIElu
Y2x1ZGU9Ii4uXGhlYXBcR0NUaHJlYWRTaGFyZWREYXRhLmNwcCIgLz4NCiAgICAgPENsQ29tcGls
ZSBJbmNsdWRlPSIuLlxoZWFwXEhhbmRsZVNldC5jcHAiIC8+DQpAQCAtNzA0LDYgKzcwNSw3IEBA
CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxoZWFwXENvcHlWaXNpdG9yLmgiIC8+DQogICAg
IDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5caGVhcFxDb3B5VmlzaXRvcklubGluZXMuaCIgLz4NCiAg
ICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxoZWFwXENvcHlXb3JrTGlzdC5oIiAvPg0KKyAgICA8
Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGhlYXBcRGVmZXJHQy5oIiAvPg0KICAgICA8Q2xJbmNsdWRl
IEluY2x1ZGU9Ii4uXGhlYXBcR0NBc3NlcnRpb25zLmgiIC8+DQogICAgIDxDbEluY2x1ZGUgSW5j
bHVkZT0iLi5caGVhcFxHQ1RocmVhZC5oIiAvPg0KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4u
XGhlYXBcR0NUaHJlYWRTaGFyZWREYXRhLmgiIC8+DQpJbmRleDogU291cmNlL0phdmFTY3JpcHRD
b3JlL0phdmFTY3JpcHRDb3JlLnZjeHByb2ovSmF2YVNjcmlwdENvcmUudmN4cHJvai5maWx0ZXJz
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS52Y3hw
cm9qL0phdmFTY3JpcHRDb3JlLnZjeHByb2ouZmlsdGVycwkocmV2aXNpb24gMTU3MzA2KQorKysg
U291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnZjeHByb2ovSmF2YVNjcmlwdENv
cmUudmN4cHJvai5maWx0ZXJzCSh3b3JraW5nIGNvcHkpCkBAIC04NzMsNiArODczLDkgQEAKICAg
ICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXGhlYXBcQ29kZUJsb2NrU2V0LmNwcCI+DQogICAgICAg
PEZpbHRlcj5oZWFwPC9GaWx0ZXI+DQogICAgIDwvQ2xDb21waWxlPg0KKyAgICA8Q2xDb21waWxl
IEluY2x1ZGU9Ii4uXGhlYXBcRGVmZXJHQy5jcHAiPg0KKyAgICAgIDxGaWx0ZXI+aGVhcDwvRmls
dGVyPg0KKyAgICA8L0NsQ29tcGlsZT4NCiAgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxieXRl
Y29kZVxEZWZlcnJlZENvbXBpbGF0aW9uQ2FsbGJhY2suY3BwIj4NCiAgICAgICA8RmlsdGVyPmJ5
dGVjb2RlPC9GaWx0ZXI+DQogICAgIDwvQ2xDb21waWxlPg0KQEAgLTEyMjMsNiArMTIyNiw5IEBA
CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxoZWFwXENvcHlXb3JrTGlzdC5oIj4NCiAgICAg
ICA8RmlsdGVyPmhlYXA8L0ZpbHRlcj4NCiAgICAgPC9DbEluY2x1ZGU+DQorICAgIDxDbEluY2x1
ZGUgSW5jbHVkZT0iLi5caGVhcFxEZWZlckdDLmgiPg0KKyAgICAgIDxGaWx0ZXI+aGVhcDwvRmls
dGVyPg0KKyAgICA8L0NsSW5jbHVkZT4NCiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxoZWFw
XEdDQXNzZXJ0aW9ucy5oIj4NCiAgICAgICA8RmlsdGVyPmhlYXA8L0ZpbHRlcj4NCiAgICAgPC9D
bEluY2x1ZGU+DQpAQCAtMjM4MSw0ICsyMzg3LDQgQEAKICAgICAgIDxGaWx0ZXI+aml0PC9GaWx0
ZXI+DQogICAgIDwvTUFTTT4NCiAgIDwvSXRlbUdyb3VwPg0KLTwvUHJvamVjdD4KXCBObyBuZXds
aW5lIGF0IGVuZCBvZiBmaWxlCis8L1Byb2plY3Q+DQpJbmRleDogU291cmNlL0phdmFTY3JpcHRD
b3JlL0phdmFTY3JpcHRDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnhjb2RlcHJvai9wcm9qZWN0
LnBieHByb2oJKHJldmlzaW9uIDE1NzMwNikKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZh
U2NyaXB0Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCSh3b3JraW5nIGNvcHkpCkBAIC0z
NzMsNiArMzczLDggQEAKIAkJMEZDODE1MTUxNDA1MTE5QjAwQ0ZBNjAzIC8qIFZUYWJsZVNwZWN0
cnVtLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRkM4
MTUxNDE0MDUxMThEMDBDRkE2MDMgLyogVlRhYmxlU3BlY3RydW0uaCAqLzsgc2V0dGluZ3MgPSB7
QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQkwRkM4MTUxNjE0MDUxMUI1MDBDRkE2
MDMgLyogVlRhYmxlU3BlY3RydW0uY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gMEZDODE1MTIxNDA1MTE4NjAwQ0ZBNjAzIC8qIFZUYWJsZVNwZWN0cnVt
LmNwcCAqLzsgfTsKIAkJMEZDQ0FFNDUxNkQwQ0Y3NDAwRDBDNjVCIC8qIFBhcnNlckVycm9yLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRkNDQUU0MzE2
RDBDRjZFMDBEMEM2NUIgLyogUGFyc2VyRXJyb3IuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRF
UyA9IChQcml2YXRlLCApOyB9OyB9OworCQkwRkNFRkFBQjE4MDRDMTNFMDA0NzJDRTQgLyogRlRM
U2F2ZVJlc3RvcmUuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gMEZDRUZBQTkxODA0QzEzRTAwNDcyQ0U0IC8qIEZUTFNhdmVSZXN0b3JlLmNwcCAqLzsg
fTsKKwkJMEZDRUZBQUMxODA0QzEzRTAwNDcyQ0U0IC8qIEZUTFNhdmVSZXN0b3JlLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRkNFRkFBQTE4MDRDMTNF
MDA0NzJDRTQgLyogRlRMU2F2ZVJlc3RvcmUuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9
IChQcml2YXRlLCApOyB9OyB9OwogCQkwRkNFRkFCMDE4MDVDQTZEMDA0NzJDRTQgLyogSW5pdGlh
bGl6ZUxMVk0uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDBGQ0VGQUFFMTgwNUNBNkQwMDQ3MkNFNCAvKiBJbml0aWFsaXplTExWTS5oICovOyBzZXR0aW5n
cyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTBGQ0VGQUIxMTgwNUNBNkQw
MDQ3MkNFNCAvKiBJbml0aWFsaXplTExWTU1hYy5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGQ0VGQUFGMTgwNUNBNkQwMDQ3MkNFNCAvKiBJbml0aWFs
aXplTExWTU1hYy5tbSAqLzsgfTsKIAkJMEZDRUZBQzExODA1RDk0RTAwNDcyQ0U0IC8qIExMVk1P
dmVycmlkZXMuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gMEZDRUZBQzAxODA1RDk0MTAwNDcyQ0U0IC8qIExMVk1PdmVycmlkZXMuY3BwICovOyB9OwpA
QCAtMzg5LDggKzM5MSw2IEBACiAJCTBGQ0VGQUQ3MTgwNjE3NDYwMDQ3MkNFNCAvKiBMTFZNQW5j
aG9yLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBG
Q0VGQUQ2MTgwNjE3NDYwMDQ3MkNFNCAvKiBMTFZNQW5jaG9yLmNwcCAqLzsgfTsKIAkJMEZDRUZB
REExODA2MjBEQTAwNDcyQ0U0IC8qIExMVk1BUEkuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGQ0VGQUM4MTgwNUU3NTUwMDQ3MkNFNCAvKiBMTFZNQVBJ
LmggKi87IH07CiAJCTBGQ0VGQURDMTgwNjRBMTQwMDQ3MkNFNCAvKiBjb25maWdfbGx2bS5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEZDRUZBREIxODA2
NEExNDAwNDcyQ0U0IC8qIGNvbmZpZ19sbHZtLmggKi87IH07Ci0JCTBGQ0VGQUFCMTgwNEMxM0Uw
MDQ3MkNFNCAvKiBGVExTYXZlUmVzdG9yZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSAwRkNFRkFBOTE4MDRDMTNFMDA0NzJDRTQgLyogRlRMU2F2ZVJl
c3RvcmUuY3BwICovOyB9OwotCQkwRkNFRkFBQzE4MDRDMTNFMDA0NzJDRTQgLyogRlRMU2F2ZVJl
c3RvcmUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBG
Q0VGQUFBMTgwNEMxM0UwMDQ3MkNFNCAvKiBGVExTYXZlUmVzdG9yZS5oICovOyBzZXR0aW5ncyA9
IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTBGQ0VGQURGMTgwNzM4QzAwMDQ3
MkNFNCAvKiBGVExMb2NhdGlvbi5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSAwRkNFRkFERDE4MDczOEMwMDA0NzJDRTQgLyogRlRMTG9jYXRpb24uY3Bw
ICovOyB9OwogCQkwRkNFRkFFMDE4MDczOEMwMDA0NzJDRTQgLyogRlRMTG9jYXRpb24uaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGQ0VGQURFMTgwNzM4
QzAwMDQ3MkNFNCAvKiBGVExMb2NhdGlvbi5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0g
KFByaXZhdGUsICk7IH07IH07CiAJCTBGRDJDOTI0MTZEMDFFRTkwMEM3ODAzRiAvKiBTdHJ1Y3R1
cmVJbmxpbmVzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSAwRkQyQzkyMzE2RDAxRUU5MDBDNzgwM0YgLyogU3RydWN0dXJlSW5saW5lcy5oICovOyBzZXR0
aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CkBAIC02ODQsNiArNjg0LDcg
QEAKIAkJMjYwMEI1QTcxNTJCQUFBNzAwOTFFRTVGIC8qIEpTU3RyaW5nSm9pbmVyLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyNjAwQjVBNTE1MkJBQUE3
MDA5MUVFNUYgLyogSlNTdHJpbmdKb2luZXIuaCAqLzsgfTsKIAkJMkE0OEQxOTExNzcyMzY1QjAw
QzY1QTVGIC8qIEFQSUNhbGxiYWNrRnVuY3Rpb24uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEMyMTFCNTc0MTc2QTIyNEQwMDBFMkEyMyAvKiBBUElDYWxs
YmFja0Z1bmN0aW9uLmggKi87IH07CiAJCTJBNkY0NjI2MTdFOTU5Q0UwMEM0NUM5OCAvKiBIZWFw
T3BlcmF0aW9uLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSAyQTZGNDYyNTE3RTk1OUNFMDBDNDVDOTggLyogSGVhcE9wZXJhdGlvbi5oICovOyBzZXR0aW5n
cyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCTJBN0E1OEVGMTgwOEE0QzQw
MDIwQkRGNyAvKiBEZWZlckdDLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDJBN0E1OEVFMTgwOEE0QzQwMDIwQkRGNyAvKiBEZWZlckdDLmNwcCAqLzsg
fTsKIAkJMkFEODkzMkIxN0UzODY4RjAwNjY4Mjc2IC8qIEhlYXBJdGVyYXRpb25TY29wZS5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMkFEODkzMjkxN0Uz
ODY4RjAwNjY4Mjc2IC8qIEhlYXBJdGVyYXRpb25TY29wZS5oICovOyB9OwogCQkzNzFEODQyRDE3
Qzk4QjZFMDBFQ0Y5OTQgLyogbGliei5keWxpYiBpbiBGcmFtZXdvcmtzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDM3MUQ4NDJDMTdDOThCNkUwMEVDRjk5NCAvKiBsaWJ6LmR5
bGliICovOyB9OwogCQk0MTM1OUNGMzBGREQ4OUFEMDAyMDYxODAgLyogRGF0ZUNvbnZlcnNpb24u
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEQyMTIwMjI5
MEFENDMxMEMwMEVENzlCNiAvKiBEYXRlQ29udmVyc2lvbi5oICovOyB9OwpAQCAtMTYyNyw2ICsx
NjI4LDggQEAKIAkJMEZDODE1MTQxNDA1MTE4RDAwQ0ZBNjAzIC8qIFZUYWJsZVNwZWN0cnVtLmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFZUYWJsZVNwZWN0cnVtLmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTBGQ0I0MDg1MTVDMEEzQzMwMDQ4OTMyQiAvKiBTbG90
VmlzaXRvcklubGluZXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU2xvdFZp
c2l0b3JJbmxpbmVzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTBGQ0NBRTQzMTZE
MENGNkUwMEQwQzY1QiAvKiBQYXJzZXJFcnJvci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBQYXJzZXJFcnJvci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkwRkNF
RkFBOTE4MDRDMTNFMDA0NzJDRTQgLyogRlRMU2F2ZVJlc3RvcmUuY3BwICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jcHAuY3BwOyBuYW1lID0gRlRMU2F2ZVJlc3RvcmUuY3BwOyBwYXRoID0gZnRsL0ZU
TFNhdmVSZXN0b3JlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMEZDRUZBQUEx
ODA0QzEzRTAwNDcyQ0U0IC8qIEZUTFNhdmVSZXN0b3JlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgbmFtZSA9IEZUTFNhdmVSZXN0b3JlLmg7IHBhdGggPSBmdGwvRlRMU2F2ZVJlc3RvcmUu
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMEZDRUZBQUUxODA1Q0E2RDAwNDcyQ0U0
IC8qIEluaXRpYWxpemVMTFZNLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IElu
aXRpYWxpemVMTFZNLmg7IHBhdGggPSBsbHZtL0luaXRpYWxpemVMTFZNLmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCTBGQ0VGQUFGMTgwNUNBNkQwMDQ3MkNFNCAvKiBJbml0aWFsaXpl
TExWTU1hYy5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgbmFtZSA9IEluaXRp
YWxpemVMTFZNTWFjLm1tOyBwYXRoID0gbGx2bS9Jbml0aWFsaXplTExWTU1hYy5tbTsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMEZDRUZBQjYxODA1RDYxNjAwNDcyQ0U0IC8qIGxpYmxs
dm1Gb3JKU0MuZHlsaWIgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZXhwbGljaXRGaWxl
VHlwZSA9ICJjb21waWxlZC5tYWNoLW8uZHlsaWIiOyBpbmNsdWRlSW5JbmRleCA9IDA7IHBhdGgg
PSBsaWJsbHZtRm9ySlNDLmR5bGliOyBzb3VyY2VUcmVlID0gQlVJTFRfUFJPRFVDVFNfRElSOyB9
OwpAQCAtMTY0Miw4ICsxNjQ1LDYgQEAKIAkJMEZDRUZBRDIxODA1RURDQzAwNDcyQ0U0IC8qIExM
Vk1IZWFkZXJzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IExMVk1IZWFkZXJz
Lmg7IHBhdGggPSBsbHZtL0xMVk1IZWFkZXJzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCTBGQ0VGQUQ2MTgwNjE3NDYwMDQ3MkNFNCAvKiBMTFZNQW5jaG9yLmNwcCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IExMVk1BbmNob3IuY3BwOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQkwRkNFRkFEQjE4MDY0QTE0MDA0NzJDRTQgLyogY29uZmlnX2xsdm0u
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gY29uZmlnX2xsdm0uaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJMEZDRUZBQTkxODA0QzEzRTAwNDcyQ0U0IC8qIEZUTFNh
dmVSZXN0b3JlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IEZUTFNh
dmVSZXN0b3JlLmNwcDsgcGF0aCA9IGZ0bC9GVExTYXZlUmVzdG9yZS5jcHA7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07Ci0JCTBGQ0VGQUFBMTgwNEMxM0UwMDQ3MkNFNCAvKiBGVExTYXZlUmVz
dG9yZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBGVExTYXZlUmVzdG9yZS5o
OyBwYXRoID0gZnRsL0ZUTFNhdmVSZXN0b3JlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCTBGQ0VGQUREMTgwNzM4QzAwMDQ3MkNFNCAvKiBGVExMb2NhdGlvbi5jcHAgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBGVExMb2NhdGlvbi5jcHA7IHBhdGggPSBmdGwv
RlRMTG9jYXRpb24uY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwRkNFRkFERTE4
MDczOEMwMDA0NzJDRTQgLyogRlRMTG9jYXRpb24uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBuYW1lID0gRlRMTG9jYXRpb24uaDsgcGF0aCA9IGZ0bC9GVExMb2NhdGlvbi5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQkwRkQyQzkyMzE2RDAxRUU5MDBDNzgwM0YgLyogU3RydWN0
dXJlSW5saW5lcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTdHJ1Y3R1cmVJ
bmxpbmVzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xODkxLDYgKzE4OTIsNyBA
QAogCQkyNjAwQjVBNDE1MkJBQUE3MDA5MUVFNUYgLyogSlNTdHJpbmdKb2luZXIuY3BwICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNTdHJpbmdKb2luZXIuY3BwOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkyNjAwQjVBNTE1MkJBQUE3MDA5MUVFNUYgLyogSlNT
dHJpbmdKb2luZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNTdHJpbmdK
b2luZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMkE2RjQ2MjUxN0U5NTlDRTAw
QzQ1Qzk4IC8qIEhlYXBPcGVyYXRpb24uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gSGVhcE9wZXJhdGlvbi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkyQTdBNThF
RTE4MDhBNEM0MDAyMEJERjcgLyogRGVmZXJHQy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5jcHA7IHBhdGggPSBEZWZlckdDLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
MkFEODkzMjkxN0UzODY4RjAwNjY4Mjc2IC8qIEhlYXBJdGVyYXRpb25TY29wZS5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBIZWFwSXRlcmF0aW9uU2NvcGUuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMzcxRDg0MkMxN0M5OEI2RTAwRUNGOTk0IC8qIGxpYnouZHls
aWIgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSAiY29t
cGlsZWQubWFjaC1vLmR5bGliIjsgbmFtZSA9IGxpYnouZHlsaWI7IHBhdGggPSB1c3IvbGliL2xp
YnouZHlsaWI7IHNvdXJjZVRyZWUgPSBTREtST09UOyB9OwogCQk0NDkwOTdFRTBGOEY4MUI1MDA3
NkEzMjcgLyogRmVhdHVyZURlZmluZXMueGNjb25maWcgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0LnhjY29uZmln
OyBwYXRoID0gRmVhdHVyZURlZmluZXMueGNjb25maWc7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CkBAIC0yOTE2LDYgKzI5MTgsNyBAQAogCQkJCUMyMjM5RDE0MTYyNjJCREQwMDVBQzVGRCAv
KiBDb3B5VmlzaXRvcklubGluZXMuaCAqLywKIAkJCQlDMjE4RDEzRjE2NTVDRkQ1MDA2MkJCODEg
LyogQ29weVdvcmtMaXN0LmggKi8sCiAJCQkJMEYxMzZENEIxNzRBRDY5QjAwNzVCMzU0IC8qIERl
ZmVyR0MuaCAqLywKKwkJCQkyQTdBNThFRTE4MDhBNEM0MDAyMEJERjcgLyogRGVmZXJHQy5jcHAg
Ki8sCiAJCQkJQkNCRTJDQUQxNEU5ODVBQTAwMDU5M0FEIC8qIEdDQXNzZXJ0aW9ucy5oICovLAog
CQkJCTBGMkI2NkE4MTdCNkI1M0QwMEE3QUUzRiAvKiBHQ0luY29taW5nUmVmQ291bnRlZC5oICov
LAogCQkJCTBGMkI2NkE5MTdCNkI1M0QwMEE3QUUzRiAvKiBHQ0luY29taW5nUmVmQ291bnRlZElu
bGluZXMuaCAqLywKQEAgLTU0ODAsNiArNTQ4Myw3IEBACiAJCQkJMEZEOEEzMjUxN0Q1MUY1NzAw
Q0EyQzQwIC8qIERGR09TUkVudHJ5cG9pbnRDcmVhdGlvblBoYXNlLmNwcCBpbiBTb3VyY2VzICov
LAogCQkJCUE3Mzg2NTU1MTE4Njk3QjQwMDU0MDI3OSAvKiBUaHVua0dlbmVyYXRvcnMuY3BwIGlu
IFNvdXJjZXMgKi8sCiAJCQkJMEYyQjY3MDcxN0I2QjVBQjAwQTdBRTNGIC8qIFR5cGVkQXJyYXlD
b250cm9sbGVyLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTJBN0E1OEVGMTgwOEE0QzQwMDIwQkRG
NyAvKiBEZWZlckdDLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTBGMkI2NzBBMTdCNkI1QUIwMEE3
QUUzRiAvKiBUeXBlZEFycmF5VHlwZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkwRkY0Mjc0QTE1
OEVCRTkxMDA0Q0I5RkYgLyogdWRpczg2LmMgaW4gU291cmNlcyAqLywKIAkJCQkwRkY0Mjc0MDE1
OEVCRThCMDA0Q0I5RkYgLyogdWRpczg2X2RlY29kZS5jIGluIFNvdXJjZXMgKi8sCkluZGV4OiBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9EZWZlckdDLmNwcAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvaGVhcC9EZWZlckdDLmNwcAkocmV2aXNpb24gMCkKKysrIFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0RlZmVyR0MuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAg
KzEsMzUgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTMgQXBwbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0Ogor
ICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkg
Zm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhl
CisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0
aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkg
QVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQ
UkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5F
U1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZF
TlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9S
IEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9S
CisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBP
RiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhP
V0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgor
ICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdF
TkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBP
RiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBP
RiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiRGVm
ZXJHQy5oIgorCituYW1lc3BhY2UgSlNDIHsKKworI2lmbmRlZiBOREVCVUcKK1dURjo6VGhyZWFk
U3BlY2lmaWNLZXkgRGlzYWxsb3dHQzo6c19pc0dDRGlzYWxsb3dlZE9uQ3VycmVudFRocmVhZCA9
IDA7CisjZW5kaWYKKworfSAvLyBuYW1lc3BhY2UgSlNDCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvaGVhcC9EZWZlckdDLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3Jl
L2hlYXAvRGVmZXJHQy5oCShyZXZpc2lvbiAxNTczMDYpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvaGVhcC9EZWZlckdDLmgJKHdvcmtpbmcgY29weSkKQEAgLTI4LDYgKzI4LDcgQEAKIAogI2lu
Y2x1ZGUgIkhlYXAuaCIKICNpbmNsdWRlIDx3dGYvTm9uY29weWFibGUuaD4KKyNpbmNsdWRlIDx3
dGYvVGhyZWFkU3BlY2lmaWMuaD4KIAogbmFtZXNwYWNlIEpTQyB7CiAKQEAgLTY3LDYgKzY4LDM0
IEBAIHByaXZhdGU6CiAgICAgSGVhcCYgbV9oZWFwOwogfTsKIAorI2lmbmRlZiBOREVCVUcKK2Ns
YXNzIERpc2FsbG93R0MgeworICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKERpc2FsbG93R0MpOwor
cHVibGljOgorICAgIERpc2FsbG93R0MoKQorICAgIHsKKyAgICAgICAgV1RGOjp0aHJlYWRTcGVj
aWZpY1NldChzX2lzR0NEaXNhbGxvd2VkT25DdXJyZW50VGhyZWFkLCByZWludGVycHJldF9jYXN0
PHZvaWQqPih0cnVlKSk7CisgICAgfQorCisgICAgfkRpc2FsbG93R0MoKQorICAgIHsKKyAgICAg
ICAgV1RGOjp0aHJlYWRTcGVjaWZpY1NldChzX2lzR0NEaXNhbGxvd2VkT25DdXJyZW50VGhyZWFk
LCByZWludGVycHJldF9jYXN0PHZvaWQqPihmYWxzZSkpOworICAgIH0KKworICAgIHN0YXRpYyBi
b29sIGlzR0NEaXNhbGxvd2VkT25DdXJyZW50VGhyZWFkKCkKKyAgICB7CisgICAgICAgIHJldHVy
biAhIVdURjo6dGhyZWFkU3BlY2lmaWNHZXQoc19pc0dDRGlzYWxsb3dlZE9uQ3VycmVudFRocmVh
ZCk7CisgICAgfQorICAgIHN0YXRpYyB2b2lkIGluaXRpYWxpemUoKQorICAgIHsKKyAgICAgICAg
V1RGOjp0aHJlYWRTcGVjaWZpY0tleUNyZWF0ZSgmc19pc0dDRGlzYWxsb3dlZE9uQ3VycmVudFRo
cmVhZCwgMCk7CisgICAgfQorCitwcml2YXRlOgorICAgIEpTX0VYUE9SVF9QUklWQVRFIHN0YXRp
YyBXVEY6OlRocmVhZFNwZWNpZmljS2V5IHNfaXNHQ0Rpc2FsbG93ZWRPbkN1cnJlbnRUaHJlYWQ7
Cit9OworI2VuZGlmIC8vIE5ERUJVRworCiB9IC8vIG5hbWVzcGFjZSBKU0MKIAogI2VuZGlmIC8v
IERlZmVyR0NfaApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRTdHVicy5jcHAK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRTdHVicy5jcHAJKHJl
dmlzaW9uIDE1NzMwNikKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUU3R1YnMuY3Bw
CSh3b3JraW5nIGNvcHkpCkBAIC0xMjUsNyArMTI1LDcgQEAgdm9pZCBwZXJmb3JtUGxhdGZvcm1T
cGVjaWZpY0pJVEFzc2VydGlvbgogCiBORVZFUl9JTkxJTkUgc3RhdGljIHZvaWQgdHJ5Q2FjaGVQ
dXRCeUlEKENhbGxGcmFtZSogY2FsbEZyYW1lLCBDb2RlQmxvY2sqIGNvZGVCbG9jaywgUmV0dXJu
QWRkcmVzc1B0ciByZXR1cm5BZGRyZXNzLCBKU1ZhbHVlIGJhc2VWYWx1ZSwgY29uc3QgUHV0UHJv
cGVydHlTbG90JiBzbG90LCBTdHJ1Y3R1cmVTdHViSW5mbyogc3R1YkluZm8sIGJvb2wgZGlyZWN0
KQogewotICAgIENvbmN1cnJlbnRKSVRMb2NrZXIgbG9ja2VyKGNvZGVCbG9jay0+bV9sb2NrKTsK
KyAgICBHQ1NhZmVDb25jdXJyZW50SklUTG9ja2VyIGxvY2tlcihjb2RlQmxvY2stPm1fbG9jaywg
Y2FsbEZyYW1lLT52bSgpLmhlYXApOwogICAgIAogICAgIC8vIFRoZSBpbnRlcnByZXRlciBjaGVj
a3MgZm9yIHJlY3Vyc2lvbiBoZXJlOyBJIGRvIG5vdCBiZWxpZXZlIHRoaXMgY2FuIG9jY3VyIGlu
IENUSS4KIApAQCAtMTgxLDcgKzE4MSw3IEBAIE5FVkVSX0lOTElORSBzdGF0aWMgdm9pZCB0cnlD
YWNoZVB1dEJ5SUQKIAogTkVWRVJfSU5MSU5FIHN0YXRpYyB2b2lkIHRyeUNhY2hlR2V0QnlJRChD
YWxsRnJhbWUqIGNhbGxGcmFtZSwgQ29kZUJsb2NrKiBjb2RlQmxvY2ssIFJldHVybkFkZHJlc3NQ
dHIgcmV0dXJuQWRkcmVzcywgSlNWYWx1ZSBiYXNlVmFsdWUsIGNvbnN0IElkZW50aWZpZXImIHBy
b3BlcnR5TmFtZSwgY29uc3QgUHJvcGVydHlTbG90JiBzbG90LCBTdHJ1Y3R1cmVTdHViSW5mbyog
c3R1YkluZm8pCiB7Ci0gICAgQ29uY3VycmVudEpJVExvY2tlciBsb2NrZXIoY29kZUJsb2NrLT5t
X2xvY2spOworICAgIEdDU2FmZUNvbmN1cnJlbnRKSVRMb2NrZXIgbG9ja2VyKGNvZGVCbG9jay0+
bV9sb2NrLCBjYWxsRnJhbWUtPnZtKCkuaGVhcCk7CiAgICAgCiAgICAgLy8gRklYTUU6IFdyaXRl
IGEgdGVzdCB0aGF0IHByb3ZlcyB3ZSBuZWVkIHRvIGNoZWNrIGZvciByZWN1cnNpb24gaGVyZSBq
dXN0CiAgICAgLy8gbGlrZSB0aGUgaW50ZXJwcmV0ZXIgZG9lcywgdGhlbiBhZGQgYSBjaGVjayBm
b3IgcmVjdXJzaW9uLgpAQCAtNzQ0LDcgKzc0NCw3IEBAIERFRklORV9TVFVCX0ZVTkNUSU9OKEVu
Y29kZWRKU1ZhbHVlLCBvcF8KICAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShyZXN1bHQp
OwogICAgIH0KIAotICAgIENvbmN1cnJlbnRKSVRMb2NrZXIgbG9ja2VyKGNvZGVCbG9jay0+bV9s
b2NrKTsKKyAgICBHQ1NhZmVDb25jdXJyZW50SklUTG9ja2VyIGxvY2tlcihjb2RlQmxvY2stPm1f
bG9jaywgY2FsbEZyYW1lLT52bSgpLmhlYXApOwogICAgIAogICAgIFN0cnVjdHVyZSogc3RydWN0
dXJlID0gYmFzZVZhbHVlLmFzQ2VsbCgpLT5zdHJ1Y3R1cmUoKTsKIApJbmRleDogU291cmNlL0ph
dmFTY3JpcHRDb3JlL2xsaW50L0xMSW50U2xvd1BhdGhzLmNwcAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTExJbnRTbG93UGF0aHMuY3BwCShyZXZpc2lvbiAxNTcz
MDYpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTExJbnRTbG93UGF0aHMuY3BwCSh3
b3JraW5nIGNvcHkpCkBAIC01OTYsNyArNTk2LDcgQEAgTExJTlRfU0xPV19QQVRIX0RFQ0woc2xv
d19wYXRoX3B1dF9ieV9pZAogICAgICAgICAgICAgJiYgYmFzZUNlbGwgPT0gc2xvdC5iYXNlKCkp
IHsKICAgICAgICAgICAgIAogICAgICAgICAgICAgaWYgKHNsb3QudHlwZSgpID09IFB1dFByb3Bl
cnR5U2xvdDo6TmV3UHJvcGVydHkpIHsKLSAgICAgICAgICAgICAgICBDb25jdXJyZW50SklUTG9j
a2VyIGxvY2tlcihjb2RlQmxvY2stPm1fbG9jayk7CisgICAgICAgICAgICAgICAgR0NTYWZlQ29u
Y3VycmVudEpJVExvY2tlciBsb2NrZXIoY29kZUJsb2NrLT5tX2xvY2ssIHZtLmhlYXApOwogICAg
ICAgICAgICAgCiAgICAgICAgICAgICAgICAgaWYgKCFzdHJ1Y3R1cmUtPmlzRGljdGlvbmFyeSgp
ICYmIHN0cnVjdHVyZS0+cHJldmlvdXNJRCgpLT5vdXRPZkxpbmVDYXBhY2l0eSgpID09IHN0cnVj
dHVyZS0+b3V0T2ZMaW5lQ2FwYWNpdHkoKSkgewogICAgICAgICAgICAgICAgICAgICBBU1NFUlQo
c3RydWN0dXJlLT5wcmV2aW91c0lEKCktPnRyYW5zaXRpb25XYXRjaHBvaW50U2V0SGFzQmVlbklu
dmFsaWRhdGVkKCkpOwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQ29uY3Vy
cmVudEpJVExvY2suaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9Db25jdXJyZW50SklUTG9jay5oCShyZXZpc2lvbiAxNTczMDYpCisrKyBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9Db25jdXJyZW50SklUTG9jay5oCSh3b3JraW5nIGNvcHkpCkBAIC0y
Niw2ICsyNiw3IEBACiAjaWZuZGVmIENvbmN1cnJlbnRKSVRMb2NrX2gKICNkZWZpbmUgQ29uY3Vy
cmVudEpJVExvY2tfaAogCisjaW5jbHVkZSAiRGVmZXJHQy5oIgogI2luY2x1ZGUgPHd0Zi9CeXRl
U3BpbkxvY2suaD4KICNpbmNsdWRlIDx3dGYvTm9Mb2NrLmg+CiAKQEAgLTMzLDggKzM0LDcyIEBA
IG5hbWVzcGFjZSBKU0MgewogCiAjaWYgRU5BQkxFKENPTkNVUlJFTlRfSklUKQogdHlwZWRlZiBC
eXRlU3BpbkxvY2sgQ29uY3VycmVudEpJVExvY2s7CisKK2NsYXNzIENvbmN1cnJlbnRKSVRMb2Nr
ZXJCYXNlIHsKKyAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShDb25jdXJyZW50SklUTG9ja2VyQmFz
ZSk7CitwdWJsaWM6CisgICAgZXhwbGljaXQgQ29uY3VycmVudEpJVExvY2tlckJhc2UoQ29uY3Vy
cmVudEpJVExvY2smIGxvY2thYmxlKQorICAgICAgICA6IG1fbG9ja2VyKCZsb2NrYWJsZSkKKyAg
ICB7CisgICAgfQorICAgIGV4cGxpY2l0IENvbmN1cnJlbnRKSVRMb2NrZXJCYXNlKENvbmN1cnJl
bnRKSVRMb2NrKiBsb2NrYWJsZSkKKyAgICAgICAgOiBtX2xvY2tlcihsb2NrYWJsZSkKKyAgICB7
CisgICAgfQorCisgICAgfkNvbmN1cnJlbnRKSVRMb2NrZXJCYXNlKCkKKyAgICB7CisgICAgfQor
ICAgIAorICAgIHZvaWQgdW5sb2NrRWFybHkoKQorICAgIHsKKyAgICAgICAgbV9sb2NrZXIudW5s
b2NrRWFybHkoKTsKKyAgICB9CisKK3ByaXZhdGU6CisgICAgQnl0ZVNwaW5Mb2NrZXIgbV9sb2Nr
ZXI7Cit9OworCitjbGFzcyBHQ1NhZmVDb25jdXJyZW50SklUTG9ja2VyIDogcHVibGljIENvbmN1
cnJlbnRKSVRMb2NrZXJCYXNlIHsKK3B1YmxpYzoKKyAgICBHQ1NhZmVDb25jdXJyZW50SklUTG9j
a2VyKENvbmN1cnJlbnRKSVRMb2NrJiBsb2NrYWJsZSwgSGVhcCYgaGVhcCkKKyAgICAgICAgOiBD
b25jdXJyZW50SklUTG9ja2VyQmFzZShsb2NrYWJsZSkKKyAgICAgICAgLCBtX2RlZmVyR0MoaGVh
cCkKKyAgICB7CisgICAgfQorCisgICAgR0NTYWZlQ29uY3VycmVudEpJVExvY2tlcihDb25jdXJy
ZW50SklUTG9jayogbG9ja2FibGUsIEhlYXAmIGhlYXApCisgICAgICAgIDogQ29uY3VycmVudEpJ
VExvY2tlckJhc2UobG9ja2FibGUpCisgICAgICAgICwgbV9kZWZlckdDKGhlYXApCisgICAgewor
ICAgIH0KKworcHJpdmF0ZToKKyAgICBEZWZlckdDIG1fZGVmZXJHQzsKK307CisKKyNpZm5kZWYg
TkRFQlVHCitjbGFzcyBDb25jdXJyZW50SklUTG9ja2VyIDogcHVibGljIENvbmN1cnJlbnRKSVRM
b2NrZXJCYXNlIHsKK3B1YmxpYzoKKyAgICBDb25jdXJyZW50SklUTG9ja2VyKENvbmN1cnJlbnRK
SVRMb2NrJiBsb2NrYWJsZSkKKyAgICAgICAgOiBDb25jdXJyZW50SklUTG9ja2VyQmFzZShsb2Nr
YWJsZSkKKyAgICB7CisgICAgfQorCisgICAgQ29uY3VycmVudEpJVExvY2tlcihDb25jdXJyZW50
SklUTG9jayogbG9ja2FibGUpCisgICAgICAgIDogQ29uY3VycmVudEpJVExvY2tlckJhc2UobG9j
a2FibGUpCisgICAgeworICAgIH0KKworcHJpdmF0ZToKKyAgICBEaXNhbGxvd0dDIG1fZGlzYWxs
b3dHQzsKK307CisjZWxzZQogdHlwZWRlZiBCeXRlU3BpbkxvY2tlciBDb25jdXJyZW50SklUTG9j
a2VyOworI2VuZGlmIAorCiAjZWxzZQordHlwZWRlZiBOb0xvY2sgR0NTYWZlQ29uY3VycmVudEpJ
VExvY2s7CiB0eXBlZGVmIE5vTG9jayBDb25jdXJyZW50SklUTG9jazsKIHR5cGVkZWYgTm9Mb2Nr
TG9ja2VyIENvbmN1cnJlbnRKSVRMb2NrZXI7CiAjZW5kaWYKSW5kZXg6IFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL0luaXRpYWxpemVUaHJlYWRpbmcuY3BwCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0luaXRpYWxpemVUaHJlYWRpbmcuY3BwCShyZXZp
c2lvbiAxNTczMDYpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Jbml0aWFsaXpl
VGhyZWFkaW5nLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNjksNiArNjksOSBAQCBzdGF0aWMgdm9p
ZCBpbml0aWFsaXplVGhyZWFkaW5nT25jZSgpCiAjaWYgRU5BQkxFKExMSU5UKQogICAgIExMSW50
Ojppbml0aWFsaXplKCk7CiAjZW5kaWYKKyNpZm5kZWYgTkRFQlVHCisgICAgRGlzYWxsb3dHQzo6
aW5pdGlhbGl6ZSgpOworI2VuZGlmCiB9CiAKIHZvaWQgaW5pdGlhbGl6ZVRocmVhZGluZygpCklu
ZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0NlbGxJbmxpbmVzLmgKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNDZWxsSW5saW5lcy5oCShy
ZXZpc2lvbiAxNTczMDYpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0NlbGxJ
bmxpbmVzLmgJKHdvcmtpbmcgY29weSkKQEAgLTI3LDYgKzI3LDcgQEAKICNkZWZpbmUgSlNDZWxs
SW5saW5lc19oCiAKICNpbmNsdWRlICJDYWxsRnJhbWUuaCIKKyNpbmNsdWRlICJEZWZlckdDLmgi
CiAjaW5jbHVkZSAiSGFuZGxlLmgiCiAjaW5jbHVkZSAiSlNDZWxsLmgiCiAjaW5jbHVkZSAiSlNP
YmplY3QuaCIKQEAgLTg1LDYgKzg2LDcgQEAgaW5saW5lIHZvaWQgSlNDZWxsOjp2aXNpdENoaWxk
cmVuKEpTQ2VsbAogdGVtcGxhdGU8dHlwZW5hbWUgVD4KIHZvaWQqIGFsbG9jYXRlQ2VsbChIZWFw
JiBoZWFwLCBzaXplX3Qgc2l6ZSkKIHsKKyAgICBBU1NFUlQoIURpc2FsbG93R0M6OmlzR0NEaXNh
bGxvd2VkT25DdXJyZW50VGhyZWFkKCkpOwogICAgIEFTU0VSVChzaXplID49IHNpemVvZihUKSk7
CiAjaWYgRU5BQkxFKEdDX1ZBTElEQVRJT04pCiAgICAgQVNTRVJUKCFoZWFwLnZtKCktPmlzSW5p
dGlhbGl6aW5nT2JqZWN0KCkpOwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
U3RydWN0dXJlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9TdHJ1Y3R1cmUuY3BwCShyZXZpc2lvbiAxNTczMDYpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9TdHJ1Y3R1cmUuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yODAsNyArMjgwLDcg
QEAgdm9pZCBTdHJ1Y3R1cmU6Om1hdGVyaWFsaXplUHJvcGVydHlNYXAoVgogICAgIC8vIE11c3Qg
aG9sZCB0aGUgbG9jayBvbiB0aGlzIHN0cnVjdHVyZSwgc2luY2Ugd2Ugd2lsbCBiZSBtb2RpZnlp
bmcgdGhpcyBzdHJ1Y3R1cmUncwogICAgIC8vIHByb3BlcnR5IG1hcC4gV2UgZG9uJ3Qgd2FudCBn
ZXRDb25jdXJyZW50bHkoKSB0byBzZWUgdGhlIHByb3BlcnR5IG1hcCBpbiBhIGhhbGYtYmFrZWQK
ICAgICAvLyBzdGF0ZS4KLSAgICBDb25jdXJyZW50SklUTG9ja2VyIGxvY2tlcihtX2xvY2spOwor
ICAgIEdDU2FmZUNvbmN1cnJlbnRKSVRMb2NrZXIgbG9ja2VyKG1fbG9jaywgdm0uaGVhcCk7CiAg
ICAgaWYgKCF0YWJsZSkKICAgICAgICAgY3JlYXRlUHJvcGVydHlNYXAobG9ja2VyLCB2bSwgbnVt
YmVyT2ZTbG90c0Zvckxhc3RPZmZzZXQobV9vZmZzZXQsIG1faW5saW5lQ2FwYWNpdHkpKTsKICAg
ICBlbHNlCkBAIC04ODEsNyArODgxLDcgQEAgdm9pZCBTdHJ1Y3R1cmU6OmRlc3BlY2lmeUFsbEZ1
bmN0aW9ucyhWTQogCiBQcm9wZXJ0eU9mZnNldCBTdHJ1Y3R1cmU6OnB1dFNwZWNpZmljVmFsdWUo
Vk0mIHZtLCBQcm9wZXJ0eU5hbWUgcHJvcGVydHlOYW1lLCB1bnNpZ25lZCBhdHRyaWJ1dGVzLCBK
U0NlbGwqIHNwZWNpZmljVmFsdWUpCiB7Ci0gICAgQ29uY3VycmVudEpJVExvY2tlciBsb2NrZXIo
bV9sb2NrKTsKKyAgICBHQ1NhZmVDb25jdXJyZW50SklUTG9ja2VyIGxvY2tlcihtX2xvY2ssIHZt
LmhlYXApOwogICAgIAogICAgIEFTU0VSVCghSlNDOjppc1ZhbGlkT2Zmc2V0KGdldCh2bSwgcHJv
cGVydHlOYW1lKSkpOwogCkBAIC05MjYsNyArOTI2LDcgQEAgUHJvcGVydHlPZmZzZXQgU3RydWN0
dXJlOjpyZW1vdmUoUHJvcGVydAogICAgIHJldHVybiBvZmZzZXQ7CiB9CiAKLXZvaWQgU3RydWN0
dXJlOjpjcmVhdGVQcm9wZXJ0eU1hcChjb25zdCBDb25jdXJyZW50SklUTG9ja2VyJiwgVk0mIHZt
LCB1bnNpZ25lZCBjYXBhY2l0eSkKK3ZvaWQgU3RydWN0dXJlOjpjcmVhdGVQcm9wZXJ0eU1hcChj
b25zdCBHQ1NhZmVDb25jdXJyZW50SklUTG9ja2VyJiwgVk0mIHZtLCB1bnNpZ25lZCBjYXBhY2l0
eSkKIHsKICAgICBBU1NFUlQoIXByb3BlcnR5VGFibGUoKSk7CiAKSW5kZXg6IFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL1N0cnVjdHVyZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL1N0cnVjdHVyZS5oCShyZXZpc2lvbiAxNTczMDYpCisrKyBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJ1Y3R1cmUuaAkod29ya2luZyBjb3B5KQpAQCAt
MzkzLDcgKzM5Myw3IEBAIHByaXZhdGU6CiAgICAgUHJvcGVydHlPZmZzZXQgcHV0U3BlY2lmaWNW
YWx1ZShWTSYsIFByb3BlcnR5TmFtZSwgdW5zaWduZWQgYXR0cmlidXRlcywgSlNDZWxsKiBzcGVj
aWZpY1ZhbHVlKTsKICAgICBQcm9wZXJ0eU9mZnNldCByZW1vdmUoUHJvcGVydHlOYW1lKTsKIAot
ICAgIHZvaWQgY3JlYXRlUHJvcGVydHlNYXAoY29uc3QgQ29uY3VycmVudEpJVExvY2tlciYsIFZN
JiwgdW5zaWduZWQga2V5Q291bnQgPSAwKTsKKyAgICB2b2lkIGNyZWF0ZVByb3BlcnR5TWFwKGNv
bnN0IEdDU2FmZUNvbmN1cnJlbnRKSVRMb2NrZXImLCBWTSYsIHVuc2lnbmVkIGtleUNvdW50ID0g
MCk7CiAgICAgdm9pZCBjaGVja0NvbnNpc3RlbmN5KCk7CiAKICAgICBib29sIGRlc3BlY2lmeUZ1
bmN0aW9uKFZNJiwgUHJvcGVydHlOYW1lKTsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>214035</attachid>
            <date>2013-10-11 16:36:17 -0700</date>
            <delta_ts>2013-10-16 15:55:01 -0700</delta_ts>
            <desc>omgjustbuild</desc>
            <filename>bug-122667-20131011163606.patch</filename>
            <type>text/plain</type>
            <size>26958</size>
            <attacher name="Mark Hahnenberg">mhahnenberg</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMTU3MzIwKQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDU5IEBA
CisyMDEzLTEwLTExICBNYXJrIEhhaG5lbmJlcmcgIDxtaGFobmVuYmVyZ0BhcHBsZS5jb20+CisK
KyAgICAgICAgbGxpbnRfc2xvd19wYXRoX3B1dF9ieV9pZCBjYW4gZGVhZGxvY2sgb24gYSBDb25j
dXJyZW50SklUTG9jaworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MTIyNjY3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgVGhlIGlzc3VlIHRoaXMgcGF0Y2ggaXMgYXR0ZW1wdGluZyB0byBmaXggaXMgdGhhdCB0
aGVyZSBhcmUgcGxhY2VzIGluIG91ciBjb2RlYmFzZQorICAgICAgICB3aGVyZSB3ZSBhY3F1aXJl
IHRoZSBDb25jdXJyZW50SklUTG9jayBmb3IgYSBwYXJ0aWN1bGFyIENvZGVCbG9jaywgdGhlbiB3
ZSBkbyBzb21lCisgICAgICAgIG9wZXJhdGlvbnMgdGhhdCBjYW4gaW5pdGlhdGUgYSBnYXJiYWdl
IGNvbGxlY3Rpb24uIEdhcmJhZ2UgY29sbGVjdGlvbiB0aGVuIGNhbGxzIAorICAgICAgICBzb21l
IG1ldGhvZHMgb2YgQ29kZUJsb2NrIHRoYXQgYWxzbyB0YWtlIHRoZSBDb25jdXJyZW50SklUTG9j
ayAoYmVjYXVzZSB0aGV5IGRvbid0CisgICAgICAgIGFsd2F5cyBuZWNlc3NhcmlseSBydW4gZHVy
aW5nIGdhcmJhZ2UgY29sbGVjdGlvbikuIFRoaXMgY2F1c2VzIGEgZGVhZGxvY2suCisKKyAgICAg
ICAgVG8gZml4IHRoaXMgaXNzdWUsIHRoaXMgcGF0Y2ggYWRkcyBhIG5ldyBSQUlJLXN0eWxlIG9i
amVjdCAoRGlzYWxsb3dHQykgdGhhdCBzdG9yZXMgCisgICAgICAgIGludG8gYSB0aHJlYWQtbG9j
YWwgZmllbGQgdGhhdCBpbmRpY2F0ZXMgdGhhdCBpdCBpcyB1bnNhZmUgdG8gcGVyZm9ybSBhbnkg
b3BlcmF0aW9uIAorICAgICAgICB0aGF0IGNvdWxkIHRyaWdnZXIgZ2FyYmFnZSBjb2xsZWN0aW9u
IG9uIHRoZSBjdXJyZW50IHRocmVhZC4gSW4gZGVidWcgYnVpbGRzLCAKKyAgICAgICAgQ29uY3Vy
cmVudEpJVExvY2tlciBjb250YWlucyBvbmUgb2YgdGhlc2UgRGlzYWxsb3dHQyBvYmplY3RzIHNv
IHRoYXQgd2UgY2FuIGVhZ2VybHkgCisgICAgICAgIGRldGVjdCBkZWFkbG9ja3MuCisKKyAgICAg
ICAgVGhpcyBwYXRjaCBhbHNvIGFkZHMgYSBuZXcgdHlwZSBvZiBDb25jdXJyZW50SklUTG9ja2Vy
LCBHQ1NhZmVDb25jdXJyZW50SklUTG9ja2VyLAorICAgICAgICB3aGljaCB1c2VzIHRoZSBEZWZl
ckdDIG1lY2hhbmlzbSB0byBwcmV2ZW50IGNvbGxlY3Rpb25zIGZyb20gb2NjdXJyaW5nIHdoaWxl
IHRoZSAKKyAgICAgICAgbG9jayBpcyBoZWxkLgorCisgICAgICAgICogQ01ha2VMaXN0cy50eHQ6
CisgICAgICAgICogR05VbWFrZWZpbGUubGlzdC5hbToKKyAgICAgICAgKiBKYXZhU2NyaXB0Q29y
ZS52Y3hwcm9qL0phdmFTY3JpcHRDb3JlLnZjeHByb2o6CisgICAgICAgICogSmF2YVNjcmlwdENv
cmUudmN4cHJvai9KYXZhU2NyaXB0Q29yZS52Y3hwcm9qLmZpbHRlcnM6CisgICAgICAgICogSmF2
YVNjcmlwdENvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBoZWFwL0Rl
ZmVyR0MuY3BwOiBBZGRlZC4KKyAgICAgICAgKiBoZWFwL0RlZmVyR0MuaDoKKyAgICAgICAgKEpT
Qzo6RGlzYWxsb3dHQzo6RGlzYWxsb3dHQyk6CisgICAgICAgIChKU0M6OkRpc2FsbG93R0M6On5E
aXNhbGxvd0dDKToKKyAgICAgICAgKEpTQzo6RGlzYWxsb3dHQzo6aXNHQ0Rpc2FsbG93ZWRPbkN1
cnJlbnRUaHJlYWQpOgorICAgICAgICAoSlNDOjpEaXNhbGxvd0dDOjppbml0aWFsaXplKToKKyAg
ICAgICAgKiBqaXQvSklUU3R1YnMuY3BwOgorICAgICAgICAoSlNDOjp0cnlDYWNoZVB1dEJ5SUQp
OgorICAgICAgICAoSlNDOjp0cnlDYWNoZUdldEJ5SUQpOgorICAgICAgICAoSlNDOjpERUZJTkVf
U1RVQl9GVU5DVElPTik6CisgICAgICAgICogbGxpbnQvTExJbnRTbG93UGF0aHMuY3BwOgorICAg
ICAgICAoSlNDOjpMTEludDo6TExJTlRfU0xPV19QQVRIX0RFQ0wpOgorICAgICAgICAqIHJ1bnRp
bWUvQ29uY3VycmVudEpJVExvY2suaDoKKyAgICAgICAgKEpTQzo6Q29uY3VycmVudEpJVExvY2tl
ckJhc2U6OkNvbmN1cnJlbnRKSVRMb2NrZXJCYXNlKToKKyAgICAgICAgKEpTQzo6Q29uY3VycmVu
dEpJVExvY2tlckJhc2U6On5Db25jdXJyZW50SklUTG9ja2VyQmFzZSk6CisgICAgICAgIChKU0M6
OkNvbmN1cnJlbnRKSVRMb2NrZXJCYXNlOjp1bmxvY2tFYXJseSk6CisgICAgICAgIChKU0M6OkdD
U2FmZUNvbmN1cnJlbnRKSVRMb2NrZXI6OkdDU2FmZUNvbmN1cnJlbnRKSVRMb2NrZXIpOgorICAg
ICAgICAoSlNDOjpDb25jdXJyZW50SklUTG9ja2VyOjpDb25jdXJyZW50SklUTG9ja2VyKToKKyAg
ICAgICAgKiBydW50aW1lL0luaXRpYWxpemVUaHJlYWRpbmcuY3BwOgorICAgICAgICAoSlNDOjpp
bml0aWFsaXplVGhyZWFkaW5nT25jZSk6CisgICAgICAgICogcnVudGltZS9KU0NlbGxJbmxpbmVz
Lmg6CisgICAgICAgIChKU0M6OmFsbG9jYXRlQ2VsbCk6CisgICAgICAgICogcnVudGltZS9TdHJ1
Y3R1cmUuY3BwOgorICAgICAgICAoSlNDOjpTdHJ1Y3R1cmU6Om1hdGVyaWFsaXplUHJvcGVydHlN
YXApOgorICAgICAgICAoSlNDOjpTdHJ1Y3R1cmU6OnB1dFNwZWNpZmljVmFsdWUpOgorICAgICAg
ICAoSlNDOjpTdHJ1Y3R1cmU6OmNyZWF0ZVByb3BlcnR5TWFwKToKKyAgICAgICAgKiBydW50aW1l
L1N0cnVjdHVyZS5oOgorCiAyMDEzLTEwLTExICBDb21taXQgUXVldWUgIDxjb21taXQtcXVldWVA
d2Via2l0Lm9yZz4KIAogICAgICAgICBVbnJldmlld2VkLCByb2xsaW5nIG91dCByMTU3MzA3LgpJ
bmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL0NNYWtlTGlzdHMudHh0Cj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DTWFrZUxpc3RzLnR4dAkocmV2aXNpb24gMTU3MzA2KQor
KysgU291cmNlL0phdmFTY3JpcHRDb3JlL0NNYWtlTGlzdHMudHh0CSh3b3JraW5nIGNvcHkpCkBA
IC0xODEsNiArMTgxLDcgQEAgc2V0KEphdmFTY3JpcHRDb3JlX1NPVVJDRVMKICAgICBoZWFwL0Nv
bnNlcnZhdGl2ZVJvb3RzLmNwcAogICAgIGhlYXAvQ29waWVkU3BhY2UuY3BwCiAgICAgaGVhcC9D
b3B5VmlzaXRvci5jcHAKKyAgICBoZWFwL0RlZmVyR0MuY3BwCiAgICAgaGVhcC9HQ1RocmVhZC5j
cHAKICAgICBoZWFwL0dDVGhyZWFkU2hhcmVkRGF0YS5jcHAKICAgICBoZWFwL0hhbmRsZVNldC5j
cHAKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9HTlVtYWtlZmlsZS5saXN0LmFtCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9HTlVtYWtlZmlsZS5saXN0LmFtCShyZXZp
c2lvbiAxNTczMDYpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvR05VbWFrZWZpbGUubGlzdC5h
bQkod29ya2luZyBjb3B5KQpAQCAtNDY3LDYgKzQ2Nyw3IEBAIGphdmFzY3JpcHRjb3JlX3NvdXJj
ZXMgKz0gXAogCVNvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0NvcHlXb3JrTGlzdC5oIFwKIAlT
b3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9Db25zZXJ2YXRpdmVSb290cy5jcHAgXAogCVNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0NvbnNlcnZhdGl2ZVJvb3RzLmggXAorCVNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9oZWFwL0RlZmVyR0MuY3BwIFwKIAlTb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVh
cC9EZWZlckdDLmggXAogCVNvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0dDQXNzZXJ0aW9ucy5o
IFwKIAlTb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9HQ0luY29taW5nUmVmQ291bnRlZC5oIFwK
SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS52Y3hwcm9qL0phdmFT
Y3JpcHRDb3JlLnZjeHByb2oKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL0ph
dmFTY3JpcHRDb3JlLnZjeHByb2ovSmF2YVNjcmlwdENvcmUudmN4cHJvagkocmV2aXNpb24gMTU3
MzA2KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnZjeHByb2ovSmF2
YVNjcmlwdENvcmUudmN4cHJvagkod29ya2luZyBjb3B5KQpAQCAtMzM2LDYgKzMzNiw3IEBACiAg
ICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxoZWFwXENvbnNlcnZhdGl2ZVJvb3RzLmNwcCIgLz4N
CiAgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxoZWFwXENvcGllZFNwYWNlLmNwcCIgLz4NCiAg
ICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxoZWFwXENvcHlWaXNpdG9yLmNwcCIgLz4NCisgICAg
PENsQ29tcGlsZSBJbmNsdWRlPSIuLlxoZWFwXERlZmVyR0MuY3BwIiAvPg0KICAgICA8Q2xDb21w
aWxlIEluY2x1ZGU9Ii4uXGhlYXBcR0NUaHJlYWQuY3BwIiAvPg0KICAgICA8Q2xDb21waWxlIElu
Y2x1ZGU9Ii4uXGhlYXBcR0NUaHJlYWRTaGFyZWREYXRhLmNwcCIgLz4NCiAgICAgPENsQ29tcGls
ZSBJbmNsdWRlPSIuLlxoZWFwXEhhbmRsZVNldC5jcHAiIC8+DQpAQCAtNzA0LDYgKzcwNSw3IEBA
CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxoZWFwXENvcHlWaXNpdG9yLmgiIC8+DQogICAg
IDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5caGVhcFxDb3B5VmlzaXRvcklubGluZXMuaCIgLz4NCiAg
ICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxoZWFwXENvcHlXb3JrTGlzdC5oIiAvPg0KKyAgICA8
Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGhlYXBcRGVmZXJHQy5oIiAvPg0KICAgICA8Q2xJbmNsdWRl
IEluY2x1ZGU9Ii4uXGhlYXBcR0NBc3NlcnRpb25zLmgiIC8+DQogICAgIDxDbEluY2x1ZGUgSW5j
bHVkZT0iLi5caGVhcFxHQ1RocmVhZC5oIiAvPg0KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4u
XGhlYXBcR0NUaHJlYWRTaGFyZWREYXRhLmgiIC8+DQpJbmRleDogU291cmNlL0phdmFTY3JpcHRD
b3JlL0phdmFTY3JpcHRDb3JlLnZjeHByb2ovSmF2YVNjcmlwdENvcmUudmN4cHJvai5maWx0ZXJz
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS52Y3hw
cm9qL0phdmFTY3JpcHRDb3JlLnZjeHByb2ouZmlsdGVycwkocmV2aXNpb24gMTU3MzA2KQorKysg
U291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnZjeHByb2ovSmF2YVNjcmlwdENv
cmUudmN4cHJvai5maWx0ZXJzCSh3b3JraW5nIGNvcHkpCkBAIC04NzMsNiArODczLDkgQEAKICAg
ICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXGhlYXBcQ29kZUJsb2NrU2V0LmNwcCI+DQogICAgICAg
PEZpbHRlcj5oZWFwPC9GaWx0ZXI+DQogICAgIDwvQ2xDb21waWxlPg0KKyAgICA8Q2xDb21waWxl
IEluY2x1ZGU9Ii4uXGhlYXBcRGVmZXJHQy5jcHAiPg0KKyAgICAgIDxGaWx0ZXI+aGVhcDwvRmls
dGVyPg0KKyAgICA8L0NsQ29tcGlsZT4NCiAgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxieXRl
Y29kZVxEZWZlcnJlZENvbXBpbGF0aW9uQ2FsbGJhY2suY3BwIj4NCiAgICAgICA8RmlsdGVyPmJ5
dGVjb2RlPC9GaWx0ZXI+DQogICAgIDwvQ2xDb21waWxlPg0KQEAgLTEyMjMsNiArMTIyNiw5IEBA
CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxoZWFwXENvcHlXb3JrTGlzdC5oIj4NCiAgICAg
ICA8RmlsdGVyPmhlYXA8L0ZpbHRlcj4NCiAgICAgPC9DbEluY2x1ZGU+DQorICAgIDxDbEluY2x1
ZGUgSW5jbHVkZT0iLi5caGVhcFxEZWZlckdDLmgiPg0KKyAgICAgIDxGaWx0ZXI+aGVhcDwvRmls
dGVyPg0KKyAgICA8L0NsSW5jbHVkZT4NCiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxoZWFw
XEdDQXNzZXJ0aW9ucy5oIj4NCiAgICAgICA8RmlsdGVyPmhlYXA8L0ZpbHRlcj4NCiAgICAgPC9D
bEluY2x1ZGU+DQpAQCAtMjM4MSw0ICsyMzg3LDQgQEAKICAgICAgIDxGaWx0ZXI+aml0PC9GaWx0
ZXI+DQogICAgIDwvTUFTTT4NCiAgIDwvSXRlbUdyb3VwPg0KLTwvUHJvamVjdD4KXCBObyBuZXds
aW5lIGF0IGVuZCBvZiBmaWxlCis8L1Byb2plY3Q+DQpJbmRleDogU291cmNlL0phdmFTY3JpcHRD
b3JlL0phdmFTY3JpcHRDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnhjb2RlcHJvai9wcm9qZWN0
LnBieHByb2oJKHJldmlzaW9uIDE1NzMwNikKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZh
U2NyaXB0Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCSh3b3JraW5nIGNvcHkpCkBAIC0z
NzMsNiArMzczLDggQEAKIAkJMEZDODE1MTUxNDA1MTE5QjAwQ0ZBNjAzIC8qIFZUYWJsZVNwZWN0
cnVtLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRkM4
MTUxNDE0MDUxMThEMDBDRkE2MDMgLyogVlRhYmxlU3BlY3RydW0uaCAqLzsgc2V0dGluZ3MgPSB7
QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQkwRkM4MTUxNjE0MDUxMUI1MDBDRkE2
MDMgLyogVlRhYmxlU3BlY3RydW0uY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gMEZDODE1MTIxNDA1MTE4NjAwQ0ZBNjAzIC8qIFZUYWJsZVNwZWN0cnVt
LmNwcCAqLzsgfTsKIAkJMEZDQ0FFNDUxNkQwQ0Y3NDAwRDBDNjVCIC8qIFBhcnNlckVycm9yLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRkNDQUU0MzE2
RDBDRjZFMDBEMEM2NUIgLyogUGFyc2VyRXJyb3IuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRF
UyA9IChQcml2YXRlLCApOyB9OyB9OworCQkwRkNFRkFBQjE4MDRDMTNFMDA0NzJDRTQgLyogRlRM
U2F2ZVJlc3RvcmUuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gMEZDRUZBQTkxODA0QzEzRTAwNDcyQ0U0IC8qIEZUTFNhdmVSZXN0b3JlLmNwcCAqLzsg
fTsKKwkJMEZDRUZBQUMxODA0QzEzRTAwNDcyQ0U0IC8qIEZUTFNhdmVSZXN0b3JlLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRkNFRkFBQTE4MDRDMTNF
MDA0NzJDRTQgLyogRlRMU2F2ZVJlc3RvcmUuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9
IChQcml2YXRlLCApOyB9OyB9OwogCQkwRkNFRkFCMDE4MDVDQTZEMDA0NzJDRTQgLyogSW5pdGlh
bGl6ZUxMVk0uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDBGQ0VGQUFFMTgwNUNBNkQwMDQ3MkNFNCAvKiBJbml0aWFsaXplTExWTS5oICovOyBzZXR0aW5n
cyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTBGQ0VGQUIxMTgwNUNBNkQw
MDQ3MkNFNCAvKiBJbml0aWFsaXplTExWTU1hYy5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGQ0VGQUFGMTgwNUNBNkQwMDQ3MkNFNCAvKiBJbml0aWFs
aXplTExWTU1hYy5tbSAqLzsgfTsKIAkJMEZDRUZBQzExODA1RDk0RTAwNDcyQ0U0IC8qIExMVk1P
dmVycmlkZXMuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gMEZDRUZBQzAxODA1RDk0MTAwNDcyQ0U0IC8qIExMVk1PdmVycmlkZXMuY3BwICovOyB9OwpA
QCAtMzg5LDggKzM5MSw2IEBACiAJCTBGQ0VGQUQ3MTgwNjE3NDYwMDQ3MkNFNCAvKiBMTFZNQW5j
aG9yLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBG
Q0VGQUQ2MTgwNjE3NDYwMDQ3MkNFNCAvKiBMTFZNQW5jaG9yLmNwcCAqLzsgfTsKIAkJMEZDRUZB
REExODA2MjBEQTAwNDcyQ0U0IC8qIExMVk1BUEkuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGQ0VGQUM4MTgwNUU3NTUwMDQ3MkNFNCAvKiBMTFZNQVBJ
LmggKi87IH07CiAJCTBGQ0VGQURDMTgwNjRBMTQwMDQ3MkNFNCAvKiBjb25maWdfbGx2bS5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEZDRUZBREIxODA2
NEExNDAwNDcyQ0U0IC8qIGNvbmZpZ19sbHZtLmggKi87IH07Ci0JCTBGQ0VGQUFCMTgwNEMxM0Uw
MDQ3MkNFNCAvKiBGVExTYXZlUmVzdG9yZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSAwRkNFRkFBOTE4MDRDMTNFMDA0NzJDRTQgLyogRlRMU2F2ZVJl
c3RvcmUuY3BwICovOyB9OwotCQkwRkNFRkFBQzE4MDRDMTNFMDA0NzJDRTQgLyogRlRMU2F2ZVJl
c3RvcmUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBG
Q0VGQUFBMTgwNEMxM0UwMDQ3MkNFNCAvKiBGVExTYXZlUmVzdG9yZS5oICovOyBzZXR0aW5ncyA9
IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTBGQ0VGQURGMTgwNzM4QzAwMDQ3
MkNFNCAvKiBGVExMb2NhdGlvbi5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSAwRkNFRkFERDE4MDczOEMwMDA0NzJDRTQgLyogRlRMTG9jYXRpb24uY3Bw
ICovOyB9OwogCQkwRkNFRkFFMDE4MDczOEMwMDA0NzJDRTQgLyogRlRMTG9jYXRpb24uaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGQ0VGQURFMTgwNzM4
QzAwMDQ3MkNFNCAvKiBGVExMb2NhdGlvbi5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0g
KFByaXZhdGUsICk7IH07IH07CiAJCTBGRDJDOTI0MTZEMDFFRTkwMEM3ODAzRiAvKiBTdHJ1Y3R1
cmVJbmxpbmVzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSAwRkQyQzkyMzE2RDAxRUU5MDBDNzgwM0YgLyogU3RydWN0dXJlSW5saW5lcy5oICovOyBzZXR0
aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CkBAIC02ODQsNiArNjg0LDcg
QEAKIAkJMjYwMEI1QTcxNTJCQUFBNzAwOTFFRTVGIC8qIEpTU3RyaW5nSm9pbmVyLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyNjAwQjVBNTE1MkJBQUE3
MDA5MUVFNUYgLyogSlNTdHJpbmdKb2luZXIuaCAqLzsgfTsKIAkJMkE0OEQxOTExNzcyMzY1QjAw
QzY1QTVGIC8qIEFQSUNhbGxiYWNrRnVuY3Rpb24uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEMyMTFCNTc0MTc2QTIyNEQwMDBFMkEyMyAvKiBBUElDYWxs
YmFja0Z1bmN0aW9uLmggKi87IH07CiAJCTJBNkY0NjI2MTdFOTU5Q0UwMEM0NUM5OCAvKiBIZWFw
T3BlcmF0aW9uLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSAyQTZGNDYyNTE3RTk1OUNFMDBDNDVDOTggLyogSGVhcE9wZXJhdGlvbi5oICovOyBzZXR0aW5n
cyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCTJBN0E1OEVGMTgwOEE0QzQw
MDIwQkRGNyAvKiBEZWZlckdDLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDJBN0E1OEVFMTgwOEE0QzQwMDIwQkRGNyAvKiBEZWZlckdDLmNwcCAqLzsg
fTsKIAkJMkFEODkzMkIxN0UzODY4RjAwNjY4Mjc2IC8qIEhlYXBJdGVyYXRpb25TY29wZS5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMkFEODkzMjkxN0Uz
ODY4RjAwNjY4Mjc2IC8qIEhlYXBJdGVyYXRpb25TY29wZS5oICovOyB9OwogCQkzNzFEODQyRDE3
Qzk4QjZFMDBFQ0Y5OTQgLyogbGliei5keWxpYiBpbiBGcmFtZXdvcmtzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDM3MUQ4NDJDMTdDOThCNkUwMEVDRjk5NCAvKiBsaWJ6LmR5
bGliICovOyB9OwogCQk0MTM1OUNGMzBGREQ4OUFEMDAyMDYxODAgLyogRGF0ZUNvbnZlcnNpb24u
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEQyMTIwMjI5
MEFENDMxMEMwMEVENzlCNiAvKiBEYXRlQ29udmVyc2lvbi5oICovOyB9OwpAQCAtMTYyNyw2ICsx
NjI4LDggQEAKIAkJMEZDODE1MTQxNDA1MTE4RDAwQ0ZBNjAzIC8qIFZUYWJsZVNwZWN0cnVtLmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFZUYWJsZVNwZWN0cnVtLmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTBGQ0I0MDg1MTVDMEEzQzMwMDQ4OTMyQiAvKiBTbG90
VmlzaXRvcklubGluZXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU2xvdFZp
c2l0b3JJbmxpbmVzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTBGQ0NBRTQzMTZE
MENGNkUwMEQwQzY1QiAvKiBQYXJzZXJFcnJvci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBQYXJzZXJFcnJvci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkwRkNF
RkFBOTE4MDRDMTNFMDA0NzJDRTQgLyogRlRMU2F2ZVJlc3RvcmUuY3BwICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jcHAuY3BwOyBuYW1lID0gRlRMU2F2ZVJlc3RvcmUuY3BwOyBwYXRoID0gZnRsL0ZU
TFNhdmVSZXN0b3JlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMEZDRUZBQUEx
ODA0QzEzRTAwNDcyQ0U0IC8qIEZUTFNhdmVSZXN0b3JlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgbmFtZSA9IEZUTFNhdmVSZXN0b3JlLmg7IHBhdGggPSBmdGwvRlRMU2F2ZVJlc3RvcmUu
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMEZDRUZBQUUxODA1Q0E2RDAwNDcyQ0U0
IC8qIEluaXRpYWxpemVMTFZNLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IElu
aXRpYWxpemVMTFZNLmg7IHBhdGggPSBsbHZtL0luaXRpYWxpemVMTFZNLmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCTBGQ0VGQUFGMTgwNUNBNkQwMDQ3MkNFNCAvKiBJbml0aWFsaXpl
TExWTU1hYy5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgbmFtZSA9IEluaXRp
YWxpemVMTFZNTWFjLm1tOyBwYXRoID0gbGx2bS9Jbml0aWFsaXplTExWTU1hYy5tbTsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMEZDRUZBQjYxODA1RDYxNjAwNDcyQ0U0IC8qIGxpYmxs
dm1Gb3JKU0MuZHlsaWIgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZXhwbGljaXRGaWxl
VHlwZSA9ICJjb21waWxlZC5tYWNoLW8uZHlsaWIiOyBpbmNsdWRlSW5JbmRleCA9IDA7IHBhdGgg
PSBsaWJsbHZtRm9ySlNDLmR5bGliOyBzb3VyY2VUcmVlID0gQlVJTFRfUFJPRFVDVFNfRElSOyB9
OwpAQCAtMTY0Miw4ICsxNjQ1LDYgQEAKIAkJMEZDRUZBRDIxODA1RURDQzAwNDcyQ0U0IC8qIExM
Vk1IZWFkZXJzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IExMVk1IZWFkZXJz
Lmg7IHBhdGggPSBsbHZtL0xMVk1IZWFkZXJzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCTBGQ0VGQUQ2MTgwNjE3NDYwMDQ3MkNFNCAvKiBMTFZNQW5jaG9yLmNwcCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IExMVk1BbmNob3IuY3BwOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQkwRkNFRkFEQjE4MDY0QTE0MDA0NzJDRTQgLyogY29uZmlnX2xsdm0u
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gY29uZmlnX2xsdm0uaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJMEZDRUZBQTkxODA0QzEzRTAwNDcyQ0U0IC8qIEZUTFNh
dmVSZXN0b3JlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IEZUTFNh
dmVSZXN0b3JlLmNwcDsgcGF0aCA9IGZ0bC9GVExTYXZlUmVzdG9yZS5jcHA7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07Ci0JCTBGQ0VGQUFBMTgwNEMxM0UwMDQ3MkNFNCAvKiBGVExTYXZlUmVz
dG9yZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBGVExTYXZlUmVzdG9yZS5o
OyBwYXRoID0gZnRsL0ZUTFNhdmVSZXN0b3JlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCTBGQ0VGQUREMTgwNzM4QzAwMDQ3MkNFNCAvKiBGVExMb2NhdGlvbi5jcHAgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBGVExMb2NhdGlvbi5jcHA7IHBhdGggPSBmdGwv
RlRMTG9jYXRpb24uY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwRkNFRkFERTE4
MDczOEMwMDA0NzJDRTQgLyogRlRMTG9jYXRpb24uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBuYW1lID0gRlRMTG9jYXRpb24uaDsgcGF0aCA9IGZ0bC9GVExMb2NhdGlvbi5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQkwRkQyQzkyMzE2RDAxRUU5MDBDNzgwM0YgLyogU3RydWN0
dXJlSW5saW5lcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTdHJ1Y3R1cmVJ
bmxpbmVzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xODkxLDYgKzE4OTIsNyBA
QAogCQkyNjAwQjVBNDE1MkJBQUE3MDA5MUVFNUYgLyogSlNTdHJpbmdKb2luZXIuY3BwICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNTdHJpbmdKb2luZXIuY3BwOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkyNjAwQjVBNTE1MkJBQUE3MDA5MUVFNUYgLyogSlNT
dHJpbmdKb2luZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNTdHJpbmdK
b2luZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMkE2RjQ2MjUxN0U5NTlDRTAw
QzQ1Qzk4IC8qIEhlYXBPcGVyYXRpb24uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gSGVhcE9wZXJhdGlvbi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkyQTdBNThF
RTE4MDhBNEM0MDAyMEJERjcgLyogRGVmZXJHQy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5jcHA7IHBhdGggPSBEZWZlckdDLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
MkFEODkzMjkxN0UzODY4RjAwNjY4Mjc2IC8qIEhlYXBJdGVyYXRpb25TY29wZS5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBIZWFwSXRlcmF0aW9uU2NvcGUuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMzcxRDg0MkMxN0M5OEI2RTAwRUNGOTk0IC8qIGxpYnouZHls
aWIgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSAiY29t
cGlsZWQubWFjaC1vLmR5bGliIjsgbmFtZSA9IGxpYnouZHlsaWI7IHBhdGggPSB1c3IvbGliL2xp
YnouZHlsaWI7IHNvdXJjZVRyZWUgPSBTREtST09UOyB9OwogCQk0NDkwOTdFRTBGOEY4MUI1MDA3
NkEzMjcgLyogRmVhdHVyZURlZmluZXMueGNjb25maWcgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0LnhjY29uZmln
OyBwYXRoID0gRmVhdHVyZURlZmluZXMueGNjb25maWc7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CkBAIC0yOTE2LDYgKzI5MTgsNyBAQAogCQkJCUMyMjM5RDE0MTYyNjJCREQwMDVBQzVGRCAv
KiBDb3B5VmlzaXRvcklubGluZXMuaCAqLywKIAkJCQlDMjE4RDEzRjE2NTVDRkQ1MDA2MkJCODEg
LyogQ29weVdvcmtMaXN0LmggKi8sCiAJCQkJMEYxMzZENEIxNzRBRDY5QjAwNzVCMzU0IC8qIERl
ZmVyR0MuaCAqLywKKwkJCQkyQTdBNThFRTE4MDhBNEM0MDAyMEJERjcgLyogRGVmZXJHQy5jcHAg
Ki8sCiAJCQkJQkNCRTJDQUQxNEU5ODVBQTAwMDU5M0FEIC8qIEdDQXNzZXJ0aW9ucy5oICovLAog
CQkJCTBGMkI2NkE4MTdCNkI1M0QwMEE3QUUzRiAvKiBHQ0luY29taW5nUmVmQ291bnRlZC5oICov
LAogCQkJCTBGMkI2NkE5MTdCNkI1M0QwMEE3QUUzRiAvKiBHQ0luY29taW5nUmVmQ291bnRlZElu
bGluZXMuaCAqLywKQEAgLTU0ODAsNiArNTQ4Myw3IEBACiAJCQkJMEZEOEEzMjUxN0Q1MUY1NzAw
Q0EyQzQwIC8qIERGR09TUkVudHJ5cG9pbnRDcmVhdGlvblBoYXNlLmNwcCBpbiBTb3VyY2VzICov
LAogCQkJCUE3Mzg2NTU1MTE4Njk3QjQwMDU0MDI3OSAvKiBUaHVua0dlbmVyYXRvcnMuY3BwIGlu
IFNvdXJjZXMgKi8sCiAJCQkJMEYyQjY3MDcxN0I2QjVBQjAwQTdBRTNGIC8qIFR5cGVkQXJyYXlD
b250cm9sbGVyLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTJBN0E1OEVGMTgwOEE0QzQwMDIwQkRG
NyAvKiBEZWZlckdDLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTBGMkI2NzBBMTdCNkI1QUIwMEE3
QUUzRiAvKiBUeXBlZEFycmF5VHlwZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkwRkY0Mjc0QTE1
OEVCRTkxMDA0Q0I5RkYgLyogdWRpczg2LmMgaW4gU291cmNlcyAqLywKIAkJCQkwRkY0Mjc0MDE1
OEVCRThCMDA0Q0I5RkYgLyogdWRpczg2X2RlY29kZS5jIGluIFNvdXJjZXMgKi8sCkluZGV4OiBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9EZWZlckdDLmNwcAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvaGVhcC9EZWZlckdDLmNwcAkocmV2aXNpb24gMCkKKysrIFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0RlZmVyR0MuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAg
KzEsMzUgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTMgQXBwbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0Ogor
ICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkg
Zm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhl
CisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0
aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkg
QVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQ
UkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5F
U1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZF
TlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9S
IEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9S
CisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBP
RiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhP
V0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgor
ICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdF
TkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBP
RiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBP
RiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiRGVm
ZXJHQy5oIgorCituYW1lc3BhY2UgSlNDIHsKKworI2lmbmRlZiBOREVCVUcKK1dURjo6VGhyZWFk
U3BlY2lmaWNLZXkgRGlzYWxsb3dHQzo6c19pc0dDRGlzYWxsb3dlZE9uQ3VycmVudFRocmVhZCA9
IDA7CisjZW5kaWYKKworfSAvLyBuYW1lc3BhY2UgSlNDCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvaGVhcC9EZWZlckdDLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3Jl
L2hlYXAvRGVmZXJHQy5oCShyZXZpc2lvbiAxNTczMDYpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvaGVhcC9EZWZlckdDLmgJKHdvcmtpbmcgY29weSkKQEAgLTI4LDYgKzI4LDcgQEAKIAogI2lu
Y2x1ZGUgIkhlYXAuaCIKICNpbmNsdWRlIDx3dGYvTm9uY29weWFibGUuaD4KKyNpbmNsdWRlIDx3
dGYvVGhyZWFkU3BlY2lmaWMuaD4KIAogbmFtZXNwYWNlIEpTQyB7CiAKQEAgLTY3LDYgKzY4LDM0
IEBAIHByaXZhdGU6CiAgICAgSGVhcCYgbV9oZWFwOwogfTsKIAorI2lmbmRlZiBOREVCVUcKK2Ns
YXNzIERpc2FsbG93R0MgeworICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKERpc2FsbG93R0MpOwor
cHVibGljOgorICAgIERpc2FsbG93R0MoKQorICAgIHsKKyAgICAgICAgV1RGOjp0aHJlYWRTcGVj
aWZpY1NldChzX2lzR0NEaXNhbGxvd2VkT25DdXJyZW50VGhyZWFkLCByZWludGVycHJldF9jYXN0
PHZvaWQqPih0cnVlKSk7CisgICAgfQorCisgICAgfkRpc2FsbG93R0MoKQorICAgIHsKKyAgICAg
ICAgV1RGOjp0aHJlYWRTcGVjaWZpY1NldChzX2lzR0NEaXNhbGxvd2VkT25DdXJyZW50VGhyZWFk
LCByZWludGVycHJldF9jYXN0PHZvaWQqPihmYWxzZSkpOworICAgIH0KKworICAgIHN0YXRpYyBi
b29sIGlzR0NEaXNhbGxvd2VkT25DdXJyZW50VGhyZWFkKCkKKyAgICB7CisgICAgICAgIHJldHVy
biAhIVdURjo6dGhyZWFkU3BlY2lmaWNHZXQoc19pc0dDRGlzYWxsb3dlZE9uQ3VycmVudFRocmVh
ZCk7CisgICAgfQorICAgIHN0YXRpYyB2b2lkIGluaXRpYWxpemUoKQorICAgIHsKKyAgICAgICAg
V1RGOjp0aHJlYWRTcGVjaWZpY0tleUNyZWF0ZSgmc19pc0dDRGlzYWxsb3dlZE9uQ3VycmVudFRo
cmVhZCwgMCk7CisgICAgfQorCitwcml2YXRlOgorICAgIEpTX0VYUE9SVF9QUklWQVRFIHN0YXRp
YyBXVEY6OlRocmVhZFNwZWNpZmljS2V5IHNfaXNHQ0Rpc2FsbG93ZWRPbkN1cnJlbnRUaHJlYWQ7
Cit9OworI2VuZGlmIC8vIE5ERUJVRworCiB9IC8vIG5hbWVzcGFjZSBKU0MKIAogI2VuZGlmIC8v
IERlZmVyR0NfaApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRTdHVicy5jcHAK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRTdHVicy5jcHAJKHJl
dmlzaW9uIDE1NzMwNikKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUU3R1YnMuY3Bw
CSh3b3JraW5nIGNvcHkpCkBAIC0xMjUsNyArMTI1LDcgQEAgdm9pZCBwZXJmb3JtUGxhdGZvcm1T
cGVjaWZpY0pJVEFzc2VydGlvbgogCiBORVZFUl9JTkxJTkUgc3RhdGljIHZvaWQgdHJ5Q2FjaGVQ
dXRCeUlEKENhbGxGcmFtZSogY2FsbEZyYW1lLCBDb2RlQmxvY2sqIGNvZGVCbG9jaywgUmV0dXJu
QWRkcmVzc1B0ciByZXR1cm5BZGRyZXNzLCBKU1ZhbHVlIGJhc2VWYWx1ZSwgY29uc3QgUHV0UHJv
cGVydHlTbG90JiBzbG90LCBTdHJ1Y3R1cmVTdHViSW5mbyogc3R1YkluZm8sIGJvb2wgZGlyZWN0
KQogewotICAgIENvbmN1cnJlbnRKSVRMb2NrZXIgbG9ja2VyKGNvZGVCbG9jay0+bV9sb2NrKTsK
KyAgICBHQ1NhZmVDb25jdXJyZW50SklUTG9ja2VyIGxvY2tlcihjb2RlQmxvY2stPm1fbG9jaywg
Y2FsbEZyYW1lLT52bSgpLmhlYXApOwogICAgIAogICAgIC8vIFRoZSBpbnRlcnByZXRlciBjaGVj
a3MgZm9yIHJlY3Vyc2lvbiBoZXJlOyBJIGRvIG5vdCBiZWxpZXZlIHRoaXMgY2FuIG9jY3VyIGlu
IENUSS4KIApAQCAtMTgxLDcgKzE4MSw3IEBAIE5FVkVSX0lOTElORSBzdGF0aWMgdm9pZCB0cnlD
YWNoZVB1dEJ5SUQKIAogTkVWRVJfSU5MSU5FIHN0YXRpYyB2b2lkIHRyeUNhY2hlR2V0QnlJRChD
YWxsRnJhbWUqIGNhbGxGcmFtZSwgQ29kZUJsb2NrKiBjb2RlQmxvY2ssIFJldHVybkFkZHJlc3NQ
dHIgcmV0dXJuQWRkcmVzcywgSlNWYWx1ZSBiYXNlVmFsdWUsIGNvbnN0IElkZW50aWZpZXImIHBy
b3BlcnR5TmFtZSwgY29uc3QgUHJvcGVydHlTbG90JiBzbG90LCBTdHJ1Y3R1cmVTdHViSW5mbyog
c3R1YkluZm8pCiB7Ci0gICAgQ29uY3VycmVudEpJVExvY2tlciBsb2NrZXIoY29kZUJsb2NrLT5t
X2xvY2spOworICAgIEdDU2FmZUNvbmN1cnJlbnRKSVRMb2NrZXIgbG9ja2VyKGNvZGVCbG9jay0+
bV9sb2NrLCBjYWxsRnJhbWUtPnZtKCkuaGVhcCk7CiAgICAgCiAgICAgLy8gRklYTUU6IFdyaXRl
IGEgdGVzdCB0aGF0IHByb3ZlcyB3ZSBuZWVkIHRvIGNoZWNrIGZvciByZWN1cnNpb24gaGVyZSBq
dXN0CiAgICAgLy8gbGlrZSB0aGUgaW50ZXJwcmV0ZXIgZG9lcywgdGhlbiBhZGQgYSBjaGVjayBm
b3IgcmVjdXJzaW9uLgpAQCAtNzQ0LDcgKzc0NCw3IEBAIERFRklORV9TVFVCX0ZVTkNUSU9OKEVu
Y29kZWRKU1ZhbHVlLCBvcF8KICAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShyZXN1bHQp
OwogICAgIH0KIAotICAgIENvbmN1cnJlbnRKSVRMb2NrZXIgbG9ja2VyKGNvZGVCbG9jay0+bV9s
b2NrKTsKKyAgICBHQ1NhZmVDb25jdXJyZW50SklUTG9ja2VyIGxvY2tlcihjb2RlQmxvY2stPm1f
bG9jaywgY2FsbEZyYW1lLT52bSgpLmhlYXApOwogICAgIAogICAgIFN0cnVjdHVyZSogc3RydWN0
dXJlID0gYmFzZVZhbHVlLmFzQ2VsbCgpLT5zdHJ1Y3R1cmUoKTsKIApJbmRleDogU291cmNlL0ph
dmFTY3JpcHRDb3JlL2xsaW50L0xMSW50U2xvd1BhdGhzLmNwcAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTExJbnRTbG93UGF0aHMuY3BwCShyZXZpc2lvbiAxNTcz
MDYpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTExJbnRTbG93UGF0aHMuY3BwCSh3
b3JraW5nIGNvcHkpCkBAIC01OTYsNyArNTk2LDcgQEAgTExJTlRfU0xPV19QQVRIX0RFQ0woc2xv
d19wYXRoX3B1dF9ieV9pZAogICAgICAgICAgICAgJiYgYmFzZUNlbGwgPT0gc2xvdC5iYXNlKCkp
IHsKICAgICAgICAgICAgIAogICAgICAgICAgICAgaWYgKHNsb3QudHlwZSgpID09IFB1dFByb3Bl
cnR5U2xvdDo6TmV3UHJvcGVydHkpIHsKLSAgICAgICAgICAgICAgICBDb25jdXJyZW50SklUTG9j
a2VyIGxvY2tlcihjb2RlQmxvY2stPm1fbG9jayk7CisgICAgICAgICAgICAgICAgR0NTYWZlQ29u
Y3VycmVudEpJVExvY2tlciBsb2NrZXIoY29kZUJsb2NrLT5tX2xvY2ssIHZtLmhlYXApOwogICAg
ICAgICAgICAgCiAgICAgICAgICAgICAgICAgaWYgKCFzdHJ1Y3R1cmUtPmlzRGljdGlvbmFyeSgp
ICYmIHN0cnVjdHVyZS0+cHJldmlvdXNJRCgpLT5vdXRPZkxpbmVDYXBhY2l0eSgpID09IHN0cnVj
dHVyZS0+b3V0T2ZMaW5lQ2FwYWNpdHkoKSkgewogICAgICAgICAgICAgICAgICAgICBBU1NFUlQo
c3RydWN0dXJlLT5wcmV2aW91c0lEKCktPnRyYW5zaXRpb25XYXRjaHBvaW50U2V0SGFzQmVlbklu
dmFsaWRhdGVkKCkpOwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQ29uY3Vy
cmVudEpJVExvY2suaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9Db25jdXJyZW50SklUTG9jay5oCShyZXZpc2lvbiAxNTczMDYpCisrKyBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9Db25jdXJyZW50SklUTG9jay5oCSh3b3JraW5nIGNvcHkpCkBAIC0y
Niw2ICsyNiw3IEBACiAjaWZuZGVmIENvbmN1cnJlbnRKSVRMb2NrX2gKICNkZWZpbmUgQ29uY3Vy
cmVudEpJVExvY2tfaAogCisjaW5jbHVkZSAiRGVmZXJHQy5oIgogI2luY2x1ZGUgPHd0Zi9CeXRl
U3BpbkxvY2suaD4KICNpbmNsdWRlIDx3dGYvTm9Mb2NrLmg+CiAKQEAgLTMzLDEzICszNCw4MSBA
QCBuYW1lc3BhY2UgSlNDIHsKIAogI2lmIEVOQUJMRShDT05DVVJSRU5UX0pJVCkKIHR5cGVkZWYg
Qnl0ZVNwaW5Mb2NrIENvbmN1cnJlbnRKSVRMb2NrOwotdHlwZWRlZiBCeXRlU3BpbkxvY2tlciBD
b25jdXJyZW50SklUTG9ja2VyOwordHlwZWRlZiBCeXRlU3BpbkxvY2tlciBDb25jdXJyZW50SklU
TG9ja2VySW1wbDsKICNlbHNlCiB0eXBlZGVmIE5vTG9jayBDb25jdXJyZW50SklUTG9jazsKLXR5
cGVkZWYgTm9Mb2NrTG9ja2VyIENvbmN1cnJlbnRKSVRMb2NrZXI7Cit0eXBlZGVmIE5vTG9ja0xv
Y2tlciBDb25jdXJyZW50SklUTG9ja2VySW1wbDsKICNlbmRpZgogCitjbGFzcyBDb25jdXJyZW50
SklUTG9ja2VyQmFzZSB7CisgICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoQ29uY3VycmVudEpJVExv
Y2tlckJhc2UpOworcHVibGljOgorICAgIGV4cGxpY2l0IENvbmN1cnJlbnRKSVRMb2NrZXJCYXNl
KENvbmN1cnJlbnRKSVRMb2NrJiBsb2NrYWJsZSkKKyAgICAgICAgOiBtX2xvY2tlcigmbG9ja2Fi
bGUpCisgICAgeworICAgIH0KKyAgICBleHBsaWNpdCBDb25jdXJyZW50SklUTG9ja2VyQmFzZShD
b25jdXJyZW50SklUTG9jayogbG9ja2FibGUpCisgICAgICAgIDogbV9sb2NrZXIobG9ja2FibGUp
CisgICAgeworICAgIH0KKworICAgIH5Db25jdXJyZW50SklUTG9ja2VyQmFzZSgpCisgICAgewor
ICAgIH0KKyAgICAKKyAgICB2b2lkIHVubG9ja0Vhcmx5KCkKKyAgICB7CisgICAgICAgIG1fbG9j
a2VyLnVubG9ja0Vhcmx5KCk7CisgICAgfQorCitwcml2YXRlOgorICAgIENvbmN1cnJlbnRKSVRM
b2NrZXJJbXBsIG1fbG9ja2VyOworfTsKKworY2xhc3MgR0NTYWZlQ29uY3VycmVudEpJVExvY2tl
ciA6IHB1YmxpYyBDb25jdXJyZW50SklUTG9ja2VyQmFzZSB7CitwdWJsaWM6CisgICAgR0NTYWZl
Q29uY3VycmVudEpJVExvY2tlcihDb25jdXJyZW50SklUTG9jayYgbG9ja2FibGUsIEhlYXAmIGhl
YXApCisgICAgICAgIDogQ29uY3VycmVudEpJVExvY2tlckJhc2UobG9ja2FibGUpCisgICAgICAg
ICwgbV9kZWZlckdDKGhlYXApCisgICAgeworICAgIH0KKworICAgIEdDU2FmZUNvbmN1cnJlbnRK
SVRMb2NrZXIoQ29uY3VycmVudEpJVExvY2sqIGxvY2thYmxlLCBIZWFwJiBoZWFwKQorICAgICAg
ICA6IENvbmN1cnJlbnRKSVRMb2NrZXJCYXNlKGxvY2thYmxlKQorICAgICAgICAsIG1fZGVmZXJH
QyhoZWFwKQorICAgIHsKKyAgICB9CisKK3ByaXZhdGU6CisjaWYgRU5BQkxFKENPTkNVUlJFTlRf
SklUKQorICAgIERlZmVyR0MgbV9kZWZlckdDOworI2Vsc2UKKyAgICBzdHJ1Y3QgTm9EZWZlciB7
CisgICAgICAgIE5vRGVmZXIoSGVhcCYgaGVhcCkgOiBtX2hlYXAoaGVhcCkgeyB9CisgICAgICAg
IEhlYXAmIG1faGVhcDsKKyAgICB9OworICAgIE5vRGVmZXIgbV9kZWZlckdDOworI2VuZGlmCit9
OworCitjbGFzcyBDb25jdXJyZW50SklUTG9ja2VyIDogcHVibGljIENvbmN1cnJlbnRKSVRMb2Nr
ZXJCYXNlIHsKK3B1YmxpYzoKKyAgICBDb25jdXJyZW50SklUTG9ja2VyKENvbmN1cnJlbnRKSVRM
b2NrJiBsb2NrYWJsZSkKKyAgICAgICAgOiBDb25jdXJyZW50SklUTG9ja2VyQmFzZShsb2NrYWJs
ZSkKKyAgICB7CisgICAgfQorCisgICAgQ29uY3VycmVudEpJVExvY2tlcihDb25jdXJyZW50SklU
TG9jayogbG9ja2FibGUpCisgICAgICAgIDogQ29uY3VycmVudEpJVExvY2tlckJhc2UobG9ja2Fi
bGUpCisgICAgeworICAgIH0KKworI2lmIEVOQUJMRShDT05DVVJSRU5UX0pJVCkgJiYgIWRlZmlu
ZWQoTkRFQlVHKQorcHJpdmF0ZToKKyAgICBEaXNhbGxvd0dDIG1fZGlzYWxsb3dHQzsKKyNlbmRp
ZgorfTsKKwogfSAvLyBuYW1lc3BhY2UgSlNDCiAKICNlbmRpZiAvLyBDb25jdXJyZW50SklUTG9j
a19oCi0KSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0luaXRpYWxpemVUaHJl
YWRpbmcuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0lu
aXRpYWxpemVUaHJlYWRpbmcuY3BwCShyZXZpc2lvbiAxNTczMDYpCisrKyBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9Jbml0aWFsaXplVGhyZWFkaW5nLmNwcAkod29ya2luZyBjb3B5KQpA
QCAtNjksNiArNjksOSBAQCBzdGF0aWMgdm9pZCBpbml0aWFsaXplVGhyZWFkaW5nT25jZSgpCiAj
aWYgRU5BQkxFKExMSU5UKQogICAgIExMSW50Ojppbml0aWFsaXplKCk7CiAjZW5kaWYKKyNpZm5k
ZWYgTkRFQlVHCisgICAgRGlzYWxsb3dHQzo6aW5pdGlhbGl6ZSgpOworI2VuZGlmCiB9CiAKIHZv
aWQgaW5pdGlhbGl6ZVRocmVhZGluZygpCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9KU0NlbGxJbmxpbmVzLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvSlNDZWxsSW5saW5lcy5oCShyZXZpc2lvbiAxNTczMDYpCisrKyBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9KU0NlbGxJbmxpbmVzLmgJKHdvcmtpbmcgY29weSkKQEAgLTI3
LDYgKzI3LDcgQEAKICNkZWZpbmUgSlNDZWxsSW5saW5lc19oCiAKICNpbmNsdWRlICJDYWxsRnJh
bWUuaCIKKyNpbmNsdWRlICJEZWZlckdDLmgiCiAjaW5jbHVkZSAiSGFuZGxlLmgiCiAjaW5jbHVk
ZSAiSlNDZWxsLmgiCiAjaW5jbHVkZSAiSlNPYmplY3QuaCIKQEAgLTg1LDYgKzg2LDcgQEAgaW5s
aW5lIHZvaWQgSlNDZWxsOjp2aXNpdENoaWxkcmVuKEpTQ2VsbAogdGVtcGxhdGU8dHlwZW5hbWUg
VD4KIHZvaWQqIGFsbG9jYXRlQ2VsbChIZWFwJiBoZWFwLCBzaXplX3Qgc2l6ZSkKIHsKKyAgICBB
U1NFUlQoIURpc2FsbG93R0M6OmlzR0NEaXNhbGxvd2VkT25DdXJyZW50VGhyZWFkKCkpOwogICAg
IEFTU0VSVChzaXplID49IHNpemVvZihUKSk7CiAjaWYgRU5BQkxFKEdDX1ZBTElEQVRJT04pCiAg
ICAgQVNTRVJUKCFoZWFwLnZtKCktPmlzSW5pdGlhbGl6aW5nT2JqZWN0KCkpOwpJbmRleDogU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RydWN0dXJlLmNwcAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJ1Y3R1cmUuY3BwCShyZXZpc2lvbiAxNTcz
MDYpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJ1Y3R1cmUuY3BwCSh3b3Jr
aW5nIGNvcHkpCkBAIC0yODAsNyArMjgwLDcgQEAgdm9pZCBTdHJ1Y3R1cmU6Om1hdGVyaWFsaXpl
UHJvcGVydHlNYXAoVgogICAgIC8vIE11c3QgaG9sZCB0aGUgbG9jayBvbiB0aGlzIHN0cnVjdHVy
ZSwgc2luY2Ugd2Ugd2lsbCBiZSBtb2RpZnlpbmcgdGhpcyBzdHJ1Y3R1cmUncwogICAgIC8vIHBy
b3BlcnR5IG1hcC4gV2UgZG9uJ3Qgd2FudCBnZXRDb25jdXJyZW50bHkoKSB0byBzZWUgdGhlIHBy
b3BlcnR5IG1hcCBpbiBhIGhhbGYtYmFrZWQKICAgICAvLyBzdGF0ZS4KLSAgICBDb25jdXJyZW50
SklUTG9ja2VyIGxvY2tlcihtX2xvY2spOworICAgIEdDU2FmZUNvbmN1cnJlbnRKSVRMb2NrZXIg
bG9ja2VyKG1fbG9jaywgdm0uaGVhcCk7CiAgICAgaWYgKCF0YWJsZSkKICAgICAgICAgY3JlYXRl
UHJvcGVydHlNYXAobG9ja2VyLCB2bSwgbnVtYmVyT2ZTbG90c0Zvckxhc3RPZmZzZXQobV9vZmZz
ZXQsIG1faW5saW5lQ2FwYWNpdHkpKTsKICAgICBlbHNlCkBAIC04ODEsNyArODgxLDcgQEAgdm9p
ZCBTdHJ1Y3R1cmU6OmRlc3BlY2lmeUFsbEZ1bmN0aW9ucyhWTQogCiBQcm9wZXJ0eU9mZnNldCBT
dHJ1Y3R1cmU6OnB1dFNwZWNpZmljVmFsdWUoVk0mIHZtLCBQcm9wZXJ0eU5hbWUgcHJvcGVydHlO
YW1lLCB1bnNpZ25lZCBhdHRyaWJ1dGVzLCBKU0NlbGwqIHNwZWNpZmljVmFsdWUpCiB7Ci0gICAg
Q29uY3VycmVudEpJVExvY2tlciBsb2NrZXIobV9sb2NrKTsKKyAgICBHQ1NhZmVDb25jdXJyZW50
SklUTG9ja2VyIGxvY2tlcihtX2xvY2ssIHZtLmhlYXApOwogICAgIAogICAgIEFTU0VSVCghSlND
Ojppc1ZhbGlkT2Zmc2V0KGdldCh2bSwgcHJvcGVydHlOYW1lKSkpOwogCkBAIC05MjYsNyArOTI2
LDcgQEAgUHJvcGVydHlPZmZzZXQgU3RydWN0dXJlOjpyZW1vdmUoUHJvcGVydAogICAgIHJldHVy
biBvZmZzZXQ7CiB9CiAKLXZvaWQgU3RydWN0dXJlOjpjcmVhdGVQcm9wZXJ0eU1hcChjb25zdCBD
b25jdXJyZW50SklUTG9ja2VyJiwgVk0mIHZtLCB1bnNpZ25lZCBjYXBhY2l0eSkKK3ZvaWQgU3Ry
dWN0dXJlOjpjcmVhdGVQcm9wZXJ0eU1hcChjb25zdCBHQ1NhZmVDb25jdXJyZW50SklUTG9ja2Vy
JiwgVk0mIHZtLCB1bnNpZ25lZCBjYXBhY2l0eSkKIHsKICAgICBBU1NFUlQoIXByb3BlcnR5VGFi
bGUoKSk7CiAKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0cnVjdHVyZS5o
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0cnVjdHVyZS5o
CShyZXZpc2lvbiAxNTczMDYpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJ1
Y3R1cmUuaAkod29ya2luZyBjb3B5KQpAQCAtMzkzLDcgKzM5Myw3IEBAIHByaXZhdGU6CiAgICAg
UHJvcGVydHlPZmZzZXQgcHV0U3BlY2lmaWNWYWx1ZShWTSYsIFByb3BlcnR5TmFtZSwgdW5zaWdu
ZWQgYXR0cmlidXRlcywgSlNDZWxsKiBzcGVjaWZpY1ZhbHVlKTsKICAgICBQcm9wZXJ0eU9mZnNl
dCByZW1vdmUoUHJvcGVydHlOYW1lKTsKIAotICAgIHZvaWQgY3JlYXRlUHJvcGVydHlNYXAoY29u
c3QgQ29uY3VycmVudEpJVExvY2tlciYsIFZNJiwgdW5zaWduZWQga2V5Q291bnQgPSAwKTsKKyAg
ICB2b2lkIGNyZWF0ZVByb3BlcnR5TWFwKGNvbnN0IEdDU2FmZUNvbmN1cnJlbnRKSVRMb2NrZXIm
LCBWTSYsIHVuc2lnbmVkIGtleUNvdW50ID0gMCk7CiAgICAgdm9pZCBjaGVja0NvbnNpc3RlbmN5
KCk7CiAKICAgICBib29sIGRlc3BlY2lmeUZ1bmN0aW9uKFZNJiwgUHJvcGVydHlOYW1lKTsK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>214399</attachid>
            <date>2013-10-16 15:55:03 -0700</date>
            <delta_ts>2013-10-16 16:10:48 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-122667-20131016155450.patch</filename>
            <type>text/plain</type>
            <size>34145</size>
            <attacher name="Mark Hahnenberg">mhahnenberg</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMTU3NTMwKQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDkxIEBA
CisyMDEzLTEwLTE2ICBNYXJrIEhhaG5lbmJlcmcgIDxtaGFobmVuYmVyZ0BhcHBsZS5jb20+CisK
KyAgICAgICAgbGxpbnRfc2xvd19wYXRoX3B1dF9ieV9pZCBjYW4gZGVhZGxvY2sgb24gYSBDb25j
dXJyZW50SklUTG9jaworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MTIyNjY3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgVGhlIGlzc3VlIHRoaXMgcGF0Y2ggaXMgYXR0ZW1wdGluZyB0byBmaXggaXMgdGhhdCB0
aGVyZSBhcmUgcGxhY2VzIGluIG91ciBjb2RlYmFzZQorICAgICAgICB3aGVyZSB3ZSBhY3F1aXJl
IHRoZSBDb25jdXJyZW50SklUTG9jayBmb3IgYSBwYXJ0aWN1bGFyIENvZGVCbG9jaywgdGhlbiB3
ZSBkbyBzb21lCisgICAgICAgIG9wZXJhdGlvbnMgdGhhdCBjYW4gaW5pdGlhdGUgYSBnYXJiYWdl
IGNvbGxlY3Rpb24uIEdhcmJhZ2UgY29sbGVjdGlvbiB0aGVuIGNhbGxzIAorICAgICAgICBzb21l
IG1ldGhvZHMgb2YgQ29kZUJsb2NrIHRoYXQgYWxzbyB0YWtlIHRoZSBDb25jdXJyZW50SklUTG9j
ayAoYmVjYXVzZSB0aGV5IGRvbid0CisgICAgICAgIGFsd2F5cyBuZWNlc3NhcmlseSBydW4gZHVy
aW5nIGdhcmJhZ2UgY29sbGVjdGlvbikuIFRoaXMgY2F1c2VzIGEgZGVhZGxvY2suCisgCisgICAg
ICAgIFRvIGZpeCB0aGlzIGlzc3VlLCB0aGlzIHBhdGNoIGFkZHMgYSBuZXcgUkFJSS1zdHlsZSBv
YmplY3QgKERpc2FsbG93R0MpIHRoYXQgc3RvcmVzIAorICAgICAgICBpbnRvIGEgdGhyZWFkLWxv
Y2FsIGZpZWxkIHRoYXQgaW5kaWNhdGVzIHRoYXQgaXQgaXMgdW5zYWZlIHRvIHBlcmZvcm0gYW55
IG9wZXJhdGlvbiAKKyAgICAgICAgdGhhdCBjb3VsZCB0cmlnZ2VyIGdhcmJhZ2UgY29sbGVjdGlv
biBvbiB0aGUgY3VycmVudCB0aHJlYWQuIEluIGRlYnVnIGJ1aWxkcywgCisgICAgICAgIENvbmN1
cnJlbnRKSVRMb2NrZXIgY29udGFpbnMgb25lIG9mIHRoZXNlIERpc2FsbG93R0Mgb2JqZWN0cyBz
byB0aGF0IHdlIGNhbiBlYWdlcmx5IAorICAgICAgICBkZXRlY3QgZGVhZGxvY2tzLgorIAorICAg
ICAgICBUaGlzIHBhdGNoIGFsc28gYWRkcyBhIG5ldyB0eXBlIG9mIENvbmN1cnJlbnRKSVRMb2Nr
ZXIsIEdDU2FmZUNvbmN1cnJlbnRKSVRMb2NrZXIsCisgICAgICAgIHdoaWNoIHVzZXMgdGhlIERl
ZmVyR0MgbWVjaGFuaXNtIHRvIHByZXZlbnQgY29sbGVjdGlvbnMgZnJvbSBvY2N1cnJpbmcgd2hp
bGUgdGhlIAorICAgICAgICBsb2NrIGlzIGhlbGQuCisKKyAgICAgICAgKiBDTWFrZUxpc3RzLnR4
dDoKKyAgICAgICAgKiBHTlVtYWtlZmlsZS5saXN0LmFtOgorICAgICAgICAqIEphdmFTY3JpcHRD
b3JlLnZjeHByb2ovSmF2YVNjcmlwdENvcmUudmN4cHJvajoKKyAgICAgICAgKiBKYXZhU2NyaXB0
Q29yZS52Y3hwcm9qL0phdmFTY3JpcHRDb3JlLnZjeHByb2ouZmlsdGVyczoKKyAgICAgICAgKiBK
YXZhU2NyaXB0Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIGhlYXAv
RGVmZXJHQy5oOgorICAgICAgICAoSlNDOjpEaXNhbGxvd0dDOjpEaXNhbGxvd0dDKToKKyAgICAg
ICAgKEpTQzo6RGlzYWxsb3dHQzo6fkRpc2FsbG93R0MpOgorICAgICAgICAoSlNDOjpEaXNhbGxv
d0dDOjppc0dDRGlzYWxsb3dlZE9uQ3VycmVudFRocmVhZCk6CisgICAgICAgIChKU0M6OkRpc2Fs
bG93R0M6OmluaXRpYWxpemUpOgorICAgICAgICAqIGppdC9KSVRTdHVicy5jcHA6CisgICAgICAg
IChKU0M6OnRyeUNhY2hlR2V0QnlJRCk6CisgICAgICAgIChKU0M6OkRFRklORV9TVFVCX0ZVTkNU
SU9OKToKKyAgICAgICAgKiBqaXQvUmVwYXRjaC5jcHA6CisgICAgICAgIChKU0M6OnJlcGF0Y2hQ
dXRCeUlEKToKKyAgICAgICAgKEpTQzo6YnVpbGRQdXRCeUlkTGlzdCk6CisgICAgICAgICogbGxp
bnQvTExJbnRTbG93UGF0aHMuY3BwOgorICAgICAgICAoSlNDOjpMTEludDo6TExJTlRfU0xPV19Q
QVRIX0RFQ0wpOgorICAgICAgICAqIHJ1bnRpbWUvQ29uY3VycmVudEpJVExvY2suaDoKKyAgICAg
ICAgKEpTQzo6Q29uY3VycmVudEpJVExvY2tlckJhc2U6OkNvbmN1cnJlbnRKSVRMb2NrZXJCYXNl
KToKKyAgICAgICAgKEpTQzo6Q29uY3VycmVudEpJVExvY2tlckJhc2U6On5Db25jdXJyZW50SklU
TG9ja2VyQmFzZSk6CisgICAgICAgIChKU0M6OkNvbmN1cnJlbnRKSVRMb2NrZXJCYXNlOjp1bmxv
Y2tFYXJseSk6CisgICAgICAgIChKU0M6OkdDU2FmZUNvbmN1cnJlbnRKSVRMb2NrZXI6OkdDU2Fm
ZUNvbmN1cnJlbnRKSVRMb2NrZXIpOgorICAgICAgICAoSlNDOjpHQ1NhZmVDb25jdXJyZW50SklU
TG9ja2VyOjp+R0NTYWZlQ29uY3VycmVudEpJVExvY2tlcik6CisgICAgICAgIChKU0M6OkdDU2Fm
ZUNvbmN1cnJlbnRKSVRMb2NrZXI6Ok5vRGVmZXI6Ok5vRGVmZXIpOgorICAgICAgICAoSlNDOjpD
b25jdXJyZW50SklUTG9ja2VyOjpDb25jdXJyZW50SklUTG9ja2VyKToKKyAgICAgICAgKiBydW50
aW1lL0luaXRpYWxpemVUaHJlYWRpbmcuY3BwOgorICAgICAgICAoSlNDOjppbml0aWFsaXplVGhy
ZWFkaW5nT25jZSk6CisgICAgICAgICogcnVudGltZS9KU0NlbGxJbmxpbmVzLmg6CisgICAgICAg
IChKU0M6OmFsbG9jYXRlQ2VsbCk6CisgICAgICAgICogcnVudGltZS9KU1N5bWJvbFRhYmxlT2Jq
ZWN0Lmg6CisgICAgICAgIChKU0M6OnN5bWJvbFRhYmxlUHV0KToKKyAgICAgICAgKiBydW50aW1l
L1N0cnVjdHVyZS5jcHA6IG1hdGVyaWFsaXplUHJvcGVydHlNYXBJZk5lY2Vzc2FyeSogbm93IGhh
cyBhIHByb2JsZW0gaW4gdGhhdCBpdAorICAgICAgICBjYW4gc3RhcnQgYSBnYXJiYWdlIGNvbGxl
Y3Rpb24gd2hlbiB0aGUgR0NTYWZlQ29uY3VycmVudEpJVExvY2tlciBnb2VzIG91dCBvZiBzY29w
ZSwgYnV0IAorICAgICAgICBiZWZvcmUgdGhlIGNhbGxlciBoYXMgYSBjaGFuY2UgdG8gdXNlIHRo
ZSBuZXdseSBjcmVhdGVkIFByb3BlcnR5VGFibGUuIFRoZSBnYXJiYWdlIGNvbGxlY3Rpb24KKyAg
ICAgICAgY2xlYXJzIHRoZSBQcm9wZXJ0eVRhYmxlLCBhbmQgdGhlbiB0aGUgY2FsbGVyIHVzZXMg
aXQgYXNzdW1pbmcgaXQncyB2YWxpZC4gVG8gYXZvaWQgdGhpcywKKyAgICAgICAgd2UgbXVzdCBE
ZWZlckdDIHVudGlsIHRoZSBjYWxsZXIgaXMgZG9uZSBnZXR0aW5nIHRoZSBuZXdseSBtYXRlcmlh
bGl6ZWQgUHJvcGVydHlUYWJsZSBmcm9tIAorICAgICAgICB0aGUgU3RydWN0dXJlLgorICAgICAg
ICAoSlNDOjpTdHJ1Y3R1cmU6Om1hdGVyaWFsaXplUHJvcGVydHlNYXApOgorICAgICAgICAoSlND
OjpTdHJ1Y3R1cmU6OmRlc3BlY2lmeURpY3Rpb25hcnlGdW5jdGlvbik6CisgICAgICAgIChKU0M6
OlN0cnVjdHVyZTo6Y2hhbmdlUHJvdG90eXBlVHJhbnNpdGlvbik6CisgICAgICAgIChKU0M6OlN0
cnVjdHVyZTo6ZGVzcGVjaWZ5RnVuY3Rpb25UcmFuc2l0aW9uKToKKyAgICAgICAgKEpTQzo6U3Ry
dWN0dXJlOjphdHRyaWJ1dGVDaGFuZ2VUcmFuc2l0aW9uKToKKyAgICAgICAgKEpTQzo6U3RydWN0
dXJlOjp0b0RpY3Rpb25hcnlUcmFuc2l0aW9uKToKKyAgICAgICAgKEpTQzo6U3RydWN0dXJlOjpw
cmV2ZW50RXh0ZW5zaW9uc1RyYW5zaXRpb24pOgorICAgICAgICAoSlNDOjpTdHJ1Y3R1cmU6OnRh
a2VQcm9wZXJ0eVRhYmxlT3JDbG9uZUlmUGlubmVkKToKKyAgICAgICAgKEpTQzo6U3RydWN0dXJl
Ojppc1NlYWxlZCk6CisgICAgICAgIChKU0M6OlN0cnVjdHVyZTo6aXNGcm96ZW4pOgorICAgICAg
ICAoSlNDOjpTdHJ1Y3R1cmU6OmFkZFByb3BlcnR5V2l0aG91dFRyYW5zaXRpb24pOgorICAgICAg
ICAoSlNDOjpTdHJ1Y3R1cmU6OnJlbW92ZVByb3BlcnR5V2l0aG91dFRyYW5zaXRpb24pOgorICAg
ICAgICAoSlNDOjpTdHJ1Y3R1cmU6OmdldCk6CisgICAgICAgIChKU0M6OlN0cnVjdHVyZTo6ZGVz
cGVjaWZ5RnVuY3Rpb24pOgorICAgICAgICAoSlNDOjpTdHJ1Y3R1cmU6OmRlc3BlY2lmeUFsbEZ1
bmN0aW9ucyk6CisgICAgICAgIChKU0M6OlN0cnVjdHVyZTo6cHV0U3BlY2lmaWNWYWx1ZSk6Cisg
ICAgICAgIChKU0M6OlN0cnVjdHVyZTo6Y3JlYXRlUHJvcGVydHlNYXApOgorICAgICAgICAoSlND
OjpTdHJ1Y3R1cmU6OmdldFByb3BlcnR5TmFtZXNGcm9tU3RydWN0dXJlKToKKyAgICAgICAgKiBy
dW50aW1lL1N0cnVjdHVyZS5oOgorICAgICAgICAoSlNDOjpTdHJ1Y3R1cmU6Om1hdGVyaWFsaXpl
UHJvcGVydHlNYXBJZk5lY2Vzc2FyeSk6CisgICAgICAgIChKU0M6OlN0cnVjdHVyZTo6bWF0ZXJp
YWxpemVQcm9wZXJ0eU1hcElmTmVjZXNzYXJ5Rm9yUGlubmluZyk6CisgICAgICAgICogcnVudGlt
ZS9TdHJ1Y3R1cmVJbmxpbmVzLmg6CisgICAgICAgIChKU0M6OlN0cnVjdHVyZTo6Z2V0KToKKyAg
ICAgICAgKiBydW50aW1lL1N5bWJvbFRhYmxlLmg6CisgICAgICAgIChKU0M6OlN5bWJvbFRhYmxl
OjpmaW5kKToKKyAgICAgICAgKEpTQzo6U3ltYm9sVGFibGU6OmVuZCk6CisKIDIwMTMtMTAtMTYg
IEp1bGllbiBCcmlhbmNlYXUgIDxqYnJpYW5jZUBjaXNjby5jb20+CiAKICAgICAgICAgUmVtb3Zl
IHVudXNlZCBKSVQ6OnJlc3RvcmVBcmd1bWVudFJlZmVyZW5jZUZvclRyYW1wb2xpbmUgZnVuY3Rp
b24uCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvQ01ha2VMaXN0cy50eHQKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL0NNYWtlTGlzdHMudHh0CShyZXZpc2lvbiAxNTc0
NzkpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvQ01ha2VMaXN0cy50eHQJKHdvcmtpbmcgY29w
eSkKQEAgLTE4MSw2ICsxODEsNyBAQCBzZXQoSmF2YVNjcmlwdENvcmVfU09VUkNFUwogICAgIGhl
YXAvQ29uc2VydmF0aXZlUm9vdHMuY3BwCiAgICAgaGVhcC9Db3BpZWRTcGFjZS5jcHAKICAgICBo
ZWFwL0NvcHlWaXNpdG9yLmNwcAorICAgIGhlYXAvRGVmZXJHQy5jcHAKICAgICBoZWFwL0dDVGhy
ZWFkLmNwcAogICAgIGhlYXAvR0NUaHJlYWRTaGFyZWREYXRhLmNwcAogICAgIGhlYXAvSGFuZGxl
U2V0LmNwcApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0K
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0J
KHJldmlzaW9uIDE1NzQ3OSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9HTlVtYWtlZmlsZS5s
aXN0LmFtCSh3b3JraW5nIGNvcHkpCkBAIC00NjcsNiArNDY3LDcgQEAgamF2YXNjcmlwdGNvcmVf
c291cmNlcyArPSBcCiAJU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvQ29weVdvcmtMaXN0Lmgg
XAogCVNvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0NvbnNlcnZhdGl2ZVJvb3RzLmNwcCBcCiAJ
U291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvQ29uc2VydmF0aXZlUm9vdHMuaCBcCisgICBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvaGVhcC9EZWZlckdDLmNwcCBcCiAJU291cmNlL0phdmFTY3JpcHRD
b3JlL2hlYXAvRGVmZXJHQy5oIFwKIAlTb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9HQ0Fzc2Vy
dGlvbnMuaCBcCiAJU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvR0NJbmNvbWluZ1JlZkNvdW50
ZWQuaCBcCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUudmN4cHJv
ai9KYXZhU2NyaXB0Q29yZS52Y3hwcm9qCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9KYXZhU2NyaXB0Q29yZS52Y3hwcm9qL0phdmFTY3JpcHRDb3JlLnZjeHByb2oJKHJldmlz
aW9uIDE1NzQ3OSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS52Y3hw
cm9qL0phdmFTY3JpcHRDb3JlLnZjeHByb2oJKHdvcmtpbmcgY29weSkKQEAgLTMzNiw2ICszMzYs
NyBAQAogICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5caGVhcFxDb25zZXJ2YXRpdmVSb290cy5j
cHAiIC8+DQogICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5caGVhcFxDb3BpZWRTcGFjZS5jcHAi
IC8+DQogICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5caGVhcFxDb3B5VmlzaXRvci5jcHAiIC8+
DQorICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5caGVhcFxEZWZlckdDLmNwcCIgLz4KICAgICA8
Q2xDb21waWxlIEluY2x1ZGU9Ii4uXGhlYXBcR0NUaHJlYWQuY3BwIiAvPg0KICAgICA8Q2xDb21w
aWxlIEluY2x1ZGU9Ii4uXGhlYXBcR0NUaHJlYWRTaGFyZWREYXRhLmNwcCIgLz4NCiAgICAgPENs
Q29tcGlsZSBJbmNsdWRlPSIuLlxoZWFwXEhhbmRsZVNldC5jcHAiIC8+DQpAQCAtNzA0LDYgKzcw
NSw3IEBACiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxoZWFwXENvcHlWaXNpdG9yLmgiIC8+
DQogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5caGVhcFxDb3B5VmlzaXRvcklubGluZXMuaCIg
Lz4NCiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxoZWFwXENvcHlXb3JrTGlzdC5oIiAvPg0K
KyAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGhlYXBcRGVmZXJHQy5oIiAvPgogICAgIDxDbElu
Y2x1ZGUgSW5jbHVkZT0iLi5caGVhcFxHQ0Fzc2VydGlvbnMuaCIgLz4NCiAgICAgPENsSW5jbHVk
ZSBJbmNsdWRlPSIuLlxoZWFwXEdDVGhyZWFkLmgiIC8+DQogICAgIDxDbEluY2x1ZGUgSW5jbHVk
ZT0iLi5caGVhcFxHQ1RocmVhZFNoYXJlZERhdGEuaCIgLz4NCkluZGV4OiBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvSmF2YVNjcmlwdENvcmUudmN4cHJvai9KYXZhU2NyaXB0Q29yZS52Y3hwcm9qLmZp
bHRlcnMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3Jl
LnZjeHByb2ovSmF2YVNjcmlwdENvcmUudmN4cHJvai5maWx0ZXJzCShyZXZpc2lvbiAxNTc0Nzkp
CisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUudmN4cHJvai9KYXZhU2Ny
aXB0Q29yZS52Y3hwcm9qLmZpbHRlcnMJKHdvcmtpbmcgY29weSkKQEAgLTg3Myw2ICs4NzMsOSBA
QAogICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5caGVhcFxDb2RlQmxvY2tTZXQuY3BwIj4NCiAg
ICAgICA8RmlsdGVyPmhlYXA8L0ZpbHRlcj4NCiAgICAgPC9DbENvbXBpbGU+DQorICAgIDxDbENv
bXBpbGUgSW5jbHVkZT0iLi5caGVhcFxEZWZlckdDLmNwcCI+CisgICAgICA8RmlsdGVyPmhlYXA8
L0ZpbHRlcj4KKyAgICA8L0NsQ29tcGlsZT4KICAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXGJ5
dGVjb2RlXERlZmVycmVkQ29tcGlsYXRpb25DYWxsYmFjay5jcHAiPg0KICAgICAgIDxGaWx0ZXI+
Ynl0ZWNvZGU8L0ZpbHRlcj4NCiAgICAgPC9DbENvbXBpbGU+DQpAQCAtMTIyMSw2ICsxMjI0LDkg
QEAKICAgICAgIDxGaWx0ZXI+aGVhcDwvRmlsdGVyPg0KICAgICA8L0NsSW5jbHVkZT4NCiAgICAg
PENsSW5jbHVkZSBJbmNsdWRlPSIuLlxoZWFwXENvcHlXb3JrTGlzdC5oIj4NCisgICAgICA8Rmls
dGVyPmhlYXA8L0ZpbHRlcj4KKyAgICA8L0NsSW5jbHVkZT4KKyAgICA8Q2xJbmNsdWRlIEluY2x1
ZGU9Ii4uXGhlYXBcRGVmZXJHQy5oIj4KICAgICAgIDxGaWx0ZXI+aGVhcDwvRmlsdGVyPg0KICAg
ICA8L0NsSW5jbHVkZT4NCiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxoZWFwXEdDQXNzZXJ0
aW9ucy5oIj4NCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUueGNv
ZGVwcm9qL3Byb2plY3QucGJ4cHJvago9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvSmF2YVNjcmlwdENvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagkocmV2aXNpb24gMTU3
NDc5KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnhjb2RlcHJvai9w
cm9qZWN0LnBieHByb2oJKHdvcmtpbmcgY29weSkKQEAgLTM3Myw2ICszNzMsOCBAQAogCQkwRkM4
MTUwQjE0MDQzQzBFMDBDRkE2MDMgLyogV3JpdGVCYXJyaWVyU3VwcG9ydC5jcHAgaW4gU291cmNl
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRkM4MTUwODE0MDQzQkNBMDBD
RkE2MDMgLyogV3JpdGVCYXJyaWVyU3VwcG9ydC5jcHAgKi87IH07CiAJCTBGQzgxNTE1MTQwNTEx
OUIwMENGQTYwMyAvKiBWVGFibGVTcGVjdHJ1bS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gMEZDODE1MTQxNDA1MTE4RDAwQ0ZBNjAzIC8qIFZUYWJsZVNw
ZWN0cnVtLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsK
IAkJMEZDODE1MTYxNDA1MTFCNTAwQ0ZBNjAzIC8qIFZUYWJsZVNwZWN0cnVtLmNwcCBpbiBTb3Vy
Y2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGQzgxNTEyMTQwNTExODYw
MENGQTYwMyAvKiBWVGFibGVTcGVjdHJ1bS5jcHAgKi87IH07CisgICAgICAgMEZDRUZBQUIxODA0
QzEzRTAwNDcyQ0U0IC8qIEZUTFNhdmVSZXN0b3JlLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGQ0VGQUE5MTgwNEMxM0UwMDQ3MkNFNCAvKiBGVExT
YXZlUmVzdG9yZS5jcHAgKi87IH07CisgICAgICAgMEZDRUZBQUMxODA0QzEzRTAwNDcyQ0U0IC8q
IEZUTFNhdmVSZXN0b3JlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSAwRkNFRkFBQTE4MDRDMTNFMDA0NzJDRTQgLyogRlRMU2F2ZVJlc3RvcmUuaCAqLzsg
c2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQkwRkNDQUU0NTE2
RDBDRjc0MDBEMEM2NUIgLyogUGFyc2VyRXJyb3IuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGQ0NBRTQzMTZEMENGNkUwMEQwQzY1QiAvKiBQYXJzZXJF
cnJvci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJ
CTBGQ0VGQUIwMTgwNUNBNkQwMDQ3MkNFNCAvKiBJbml0aWFsaXplTExWTS5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEZDRUZBQUUxODA1Q0E2RDAwNDcy
Q0U0IC8qIEluaXRpYWxpemVMTFZNLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJp
dmF0ZSwgKTsgfTsgfTsKIAkJMEZDRUZBQjExODA1Q0E2RDAwNDcyQ0U0IC8qIEluaXRpYWxpemVM
TFZNTWFjLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
MEZDRUZBQUYxODA1Q0E2RDAwNDcyQ0U0IC8qIEluaXRpYWxpemVMTFZNTWFjLm1tICovOyB9OwpA
QCAtNjg0LDYgKzY4Niw3IEBACiAJCTFBMjhENEE4MTc3QjcxQzgwMDA3RkEzQyAvKiBKU1N0cmlu
Z1JlZlByaXZhdGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDFBMjhENEE3MTc3QjcxQzgwMDA3RkEzQyAvKiBKU1N0cmluZ1JlZlByaXZhdGUuaCAqLzsg
c2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQkxQUNGNzM3NzE3
MUNBNkZCMDBDOUJCMUUgLyogV2Vhay5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSAxQUNGNzM3NjE3MUNBNkZCMDBDOUJCMUUgLyogV2Vhay5jcHAgKi87
IH07CiAJCTI2MDBCNUE2MTUyQkFBQTcwMDkxRUU1RiAvKiBKU1N0cmluZ0pvaW5lci5jcHAgaW4g
U291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyNjAwQjVBNDE1MkJB
QUE3MDA5MUVFNUYgLyogSlNTdHJpbmdKb2luZXIuY3BwICovOyB9OworICAgICAgIDJBN0E1OEVG
MTgwOEE0QzQwMDIwQkRGNyAvKiBEZWZlckdDLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDJBN0E1OEVFMTgwOEE0QzQwMDIwQkRGNyAvKiBEZWZlckdD
LmNwcCAqLzsgfTsKIAkJMjYwMEI1QTcxNTJCQUFBNzAwOTFFRTVGIC8qIEpTU3RyaW5nSm9pbmVy
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyNjAwQjVB
NTE1MkJBQUE3MDA5MUVFNUYgLyogSlNTdHJpbmdKb2luZXIuaCAqLzsgfTsKIAkJMkE0OEQxOTEx
NzcyMzY1QjAwQzY1QTVGIC8qIEFQSUNhbGxiYWNrRnVuY3Rpb24uaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEMyMTFCNTc0MTc2QTIyNEQwMDBFMkEyMyAv
KiBBUElDYWxsYmFja0Z1bmN0aW9uLmggKi87IH07CiAJCTJBNkY0NjI2MTdFOTU5Q0UwMEM0NUM5
OCAvKiBIZWFwT3BlcmF0aW9uLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSAyQTZGNDYyNTE3RTk1OUNFMDBDNDVDOTggLyogSGVhcE9wZXJhdGlvbi5oICov
OyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CkBAIC0xNjI3LDYg
KzE2MzAsOCBAQAogCQkwRkM3MTJFMDE3Q0Q4NzhGMDA4Q0M5M0MgLyogSklUVG9ERkdEZWZlcnJl
ZENvbXBpbGF0aW9uQ2FsbGJhY2suY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSklUVG9ERkdEZWZl
cnJlZENvbXBpbGF0aW9uQ2FsbGJhY2suY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQkwRkM3MTJFMTE3Q0Q4NzhGMDA4Q0M5M0MgLyogSklUVG9ERkdEZWZlcnJlZENvbXBpbGF0aW9u
Q2FsbGJhY2suaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSklUVG9ERkdEZWZlcnJlZENvbXBpbGF0aW9uQ2Fs
bGJhY2suaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMEZDODE1MDgxNDA0M0JDQTAw
Q0ZBNjAzIC8qIFdyaXRlQmFycmllclN1cHBvcnQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAuY3BwOyBwYXRoID0gV3JpdGVCYXJyaWVyU3VwcG9ydC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CisgICAgICAgMEZDRUZBQTkxODA0QzEzRTAwNDcyQ0U0IC8qIEZUTFNhdmVSZXN0
b3JlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IEZUTFNhdmVSZXN0
b3JlLmNwcDsgcGF0aCA9IGZ0bC9GVExTYXZlUmVzdG9yZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CisgICAgICAgMEZDRUZBQUExODA0QzEzRTAwNDcyQ0U0IC8qIEZUTFNhdmVSZXN0
b3JlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IEZUTFNhdmVSZXN0b3JlLmg7
IHBhdGggPSBmdGwvRlRMU2F2ZVJlc3RvcmUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJMEZDODE1MDkxNDA0M0JEMjAwQ0ZBNjAzIC8qIFdyaXRlQmFycmllclN1cHBvcnQuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV3JpdGVCYXJyaWVyU3VwcG9ydC5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwRkM4MTUxMjE0MDUxMTg2MDBDRkE2MDMgLyogVlRh
YmxlU3BlY3RydW0uY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gVlRh
YmxlU3BlY3RydW0uY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwRkM4MTUxNDE0
MDUxMThEMDBDRkE2MDMgLyogVlRhYmxlU3BlY3RydW0uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gVlRhYmxlU3BlY3RydW0uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
QEAgLTE4OTEsNiArMTg5Niw3IEBACiAJCTFDOTA1MTQzMEJBOUU4QTcwMDgxRTlEMCAvKiBKYXZh
U2NyaXB0Q29yZS54Y2NvbmZpZyAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQueGNjb25maWc7IHBhdGggPSBKYXZh
U2NyaXB0Q29yZS54Y2NvbmZpZzsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMUM5MDUx
NDQwQkE5RThBNzAwODFFOUQwIC8qIERlYnVnUmVsZWFzZS54Y2NvbmZpZyAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRl
eHQueGNjb25maWc7IHBhdGggPSBEZWJ1Z1JlbGVhc2UueGNjb25maWc7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCTFDOTA1MTQ1MEJBOUU4QTcwMDgxRTlEMCAvKiBCYXNlLnhjY29uZmln
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gdGV4dC54Y2NvbmZpZzsgcGF0aCA9IEJhc2UueGNjb25maWc7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CisgICAgICAgMkE3QTU4RUUxODA4QTRDNDAwMjBCREY3IC8qIERl
ZmVyR0MuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gRGVmZXJHQy5j
cHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTFDQUE4QjRBMEQzMkMzOUEwMDQxQkNG
RiAvKiBKYXZhU2NyaXB0LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEphdmFT
Y3JpcHQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMUNBQThCNEIwRDMyQzM5QTAw
NDFCQ0ZGIC8qIEphdmFTY3JpcHRDb3JlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IEphdmFTY3JpcHRDb3JlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTI2MDBC
NUE0MTUyQkFBQTcwMDkxRUU1RiAvKiBKU1N0cmluZ0pvaW5lci5jcHAgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU1N0cmluZ0pvaW5lci5jcHA7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CkBAIC0yOTE2LDYgKzI5MjIsNyBAQAogCQkxNDJFMzEyQTEzNEZGMEE2MDBB
RkFEQjUgLyogaGVhcCAqLyA9IHsKIAkJCWlzYSA9IFBCWEdyb3VwOwogCQkJY2hpbGRyZW4gPSAo
CisgICAgICAgICAgICAgICAyQTdBNThFRTE4MDhBNEM0MDAyMEJERjcgLyogRGVmZXJHQy5jcHAg
Ki8sCiAJCQkJMTQ4MTZFMTkxNTRDQzU2QzAwQjgwNTRDIC8qIEJsb2NrQWxsb2NhdG9yLmNwcCAq
LywKIAkJCQkxNDgxNkUxQTE1NENDNTZDMDBCODA1NEMgLyogQmxvY2tBbGxvY2F0b3IuaCAqLywK
IAkJCQkwRkQ4QTMxMTE3RDQzMjZDMDBDQTJDNDAgLyogQ29kZUJsb2NrU2V0LmNwcCAqLywKQEAg
LTU0ODAsNiArNTQ4Nyw3IEBACiAJCQkJODY0MkM1MTAxNTFDMDZBOTAwNDZENEVGIC8qIFJlZ0V4
cENhY2hlZFJlc3VsdC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkwRkQ4QTMyQjE3RDUxRjU3MDBD
QTJDNDAgLyogREZHVG9GVExGb3JPU1JFbnRyeURlZmVycmVkQ29tcGlsYXRpb25DYWxsYmFjay5j
cHAgaW4gU291cmNlcyAqLywKIAkJCQkxNDI4MDg0MjEwN0VDMDkzMDAxM0U3QjIgLyogUmVnRXhw
Q29uc3RydWN0b3IuY3BwIGluIFNvdXJjZXMgKi8sCisgICAgICAgICAgICAgICAyQTdBNThFRjE4
MDhBNEM0MDAyMEJERjcgLyogRGVmZXJHQy5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk4NjQyQzUx
MjE1MUMwODNEMDA0NkQ0RUYgLyogUmVnRXhwTWF0Y2hlc0FycmF5LmNwcCBpbiBTb3VyY2VzICov
LAogCQkJCTE0MjgwODQzMTA3RUMwOTMwMDEzRTdCMiAvKiBSZWdFeHBPYmplY3QuY3BwIGluIFNv
dXJjZXMgKi8sCiAJCQkJMTQyODA4NDQxMDdFQzA5MzAwMTNFN0IyIC8qIFJlZ0V4cFByb3RvdHlw
ZS5jcHAgaW4gU291cmNlcyAqLywKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0Rl
ZmVyR0MuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9EZWZlckdD
LmgJKHJldmlzaW9uIDE1NzQ3OSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0RlZmVy
R0MuaAkod29ya2luZyBjb3B5KQpAQCAtMjgsNiArMjgsNyBAQAogCiAjaW5jbHVkZSAiSGVhcC5o
IgogI2luY2x1ZGUgPHd0Zi9Ob25jb3B5YWJsZS5oPgorI2luY2x1ZGUgPHd0Zi9UaHJlYWRTcGVj
aWZpYy5oPgogCiBuYW1lc3BhY2UgSlNDIHsKIApAQCAtNjcsNiArNjgsMzQgQEAgcHJpdmF0ZToK
ICAgICBIZWFwJiBtX2hlYXA7CiB9OwogCisjaWZuZGVmIE5ERUJVRworY2xhc3MgRGlzYWxsb3dH
QyB7CisgICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoRGlzYWxsb3dHQyk7CitwdWJsaWM6CisgICAg
RGlzYWxsb3dHQygpCisgICAgeworICAgICAgICBXVEY6OnRocmVhZFNwZWNpZmljU2V0KHNfaXNH
Q0Rpc2FsbG93ZWRPbkN1cnJlbnRUaHJlYWQsIHJlaW50ZXJwcmV0X2Nhc3Q8dm9pZCo+KHRydWUp
KTsKKyAgICB9CisKKyAgICB+RGlzYWxsb3dHQygpCisgICAgeworICAgICAgICBXVEY6OnRocmVh
ZFNwZWNpZmljU2V0KHNfaXNHQ0Rpc2FsbG93ZWRPbkN1cnJlbnRUaHJlYWQsIHJlaW50ZXJwcmV0
X2Nhc3Q8dm9pZCo+KGZhbHNlKSk7CisgICAgfQorCisgICAgc3RhdGljIGJvb2wgaXNHQ0Rpc2Fs
bG93ZWRPbkN1cnJlbnRUaHJlYWQoKQorICAgIHsKKyAgICAgICAgcmV0dXJuICEhV1RGOjp0aHJl
YWRTcGVjaWZpY0dldChzX2lzR0NEaXNhbGxvd2VkT25DdXJyZW50VGhyZWFkKTsKKyAgICB9Cisg
ICAgc3RhdGljIHZvaWQgaW5pdGlhbGl6ZSgpCisgICAgeworICAgICAgICBXVEY6OnRocmVhZFNw
ZWNpZmljS2V5Q3JlYXRlKCZzX2lzR0NEaXNhbGxvd2VkT25DdXJyZW50VGhyZWFkLCAwKTsKKyAg
ICB9CisKK3ByaXZhdGU6CisgICAgSlNfRVhQT1JUX1BSSVZBVEUgc3RhdGljIFdURjo6VGhyZWFk
U3BlY2lmaWNLZXkgc19pc0dDRGlzYWxsb3dlZE9uQ3VycmVudFRocmVhZDsKK307CisjZW5kaWYg
Ly8gTkRFQlVHCisKIH0gLy8gbmFtZXNwYWNlIEpTQwogCiAjZW5kaWYgLy8gRGVmZXJHQ19oCklu
ZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVFN0dWJzLmNwcAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVFN0dWJzLmNwcAkocmV2aXNpb24gMTU3NDc5
KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRTdHVicy5jcHAJKHdvcmtpbmcgY29w
eSkKQEAgLTEyOSw3ICsxMjksNyBAQCB2b2lkIHBlcmZvcm1QbGF0Zm9ybVNwZWNpZmljSklUQXNz
ZXJ0aW9uCiAKIE5FVkVSX0lOTElORSBzdGF0aWMgdm9pZCB0cnlDYWNoZUdldEJ5SUQoQ2FsbEZy
YW1lKiBjYWxsRnJhbWUsIENvZGVCbG9jayogY29kZUJsb2NrLCBSZXR1cm5BZGRyZXNzUHRyIHJl
dHVybkFkZHJlc3MsIEpTVmFsdWUgYmFzZVZhbHVlLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0
eU5hbWUsIGNvbnN0IFByb3BlcnR5U2xvdCYgc2xvdCwgU3RydWN0dXJlU3R1YkluZm8qIHN0dWJJ
bmZvKQogewotICAgIENvbmN1cnJlbnRKSVRMb2NrZXIgbG9ja2VyKGNvZGVCbG9jay0+bV9sb2Nr
KTsKKyAgICBHQ1NhZmVDb25jdXJyZW50SklUTG9ja2VyIGxvY2tlcihjb2RlQmxvY2stPm1fbG9j
aywgY2FsbEZyYW1lLT52bSgpLmhlYXApOwogICAgIAogICAgIC8vIEZJWE1FOiBXcml0ZSBhIHRl
c3QgdGhhdCBwcm92ZXMgd2UgbmVlZCB0byBjaGVjayBmb3IgcmVjdXJzaW9uIGhlcmUganVzdAog
ICAgIC8vIGxpa2UgdGhlIGludGVycHJldGVyIGRvZXMsIHRoZW4gYWRkIGEgY2hlY2sgZm9yIHJl
Y3Vyc2lvbi4KQEAgLTU0Nyw3ICs1NDcsNyBAQCBERUZJTkVfU1RVQl9GVU5DVElPTihFbmNvZGVk
SlNWYWx1ZSwgb3BfCiAgICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUocmVzdWx0KTsKICAg
ICB9CiAKLSAgICBDb25jdXJyZW50SklUTG9ja2VyIGxvY2tlcihjb2RlQmxvY2stPm1fbG9jayk7
CisgICAgR0NTYWZlQ29uY3VycmVudEpJVExvY2tlciBsb2NrZXIoY29kZUJsb2NrLT5tX2xvY2ss
IGNhbGxGcmFtZS0+dm0oKS5oZWFwKTsKICAgICAKICAgICBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSA9
IGJhc2VWYWx1ZS5hc0NlbGwoKS0+c3RydWN0dXJlKCk7CiAKSW5kZXg6IFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9qaXQvUmVwYXRjaC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRD
b3JlL2ppdC9SZXBhdGNoLmNwcAkocmV2aXNpb24gMTU3NDc5KQorKysgU291cmNlL0phdmFTY3Jp
cHRDb3JlL2ppdC9SZXBhdGNoLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTAwMiw3ICsxMDAyLDcg
QEAgc3RhdGljIGJvb2wgdHJ5Q2FjaGVQdXRCeUlEKEV4ZWNTdGF0ZSogZQogCiB2b2lkIHJlcGF0
Y2hQdXRCeUlEKEV4ZWNTdGF0ZSogZXhlYywgSlNWYWx1ZSBiYXNlVmFsdWUsIGNvbnN0IElkZW50
aWZpZXImIHByb3BlcnR5TmFtZSwgY29uc3QgUHV0UHJvcGVydHlTbG90JiBzbG90LCBTdHJ1Y3R1
cmVTdHViSW5mbyYgc3R1YkluZm8sIFB1dEtpbmQgcHV0S2luZCkKIHsKLSAgICBDb25jdXJyZW50
SklUTG9ja2VyIGxvY2tlcihleGVjLT5jb2RlQmxvY2soKS0+bV9sb2NrKTsKKyAgICBHQ1NhZmVD
b25jdXJyZW50SklUTG9ja2VyIGxvY2tlcihleGVjLT5jb2RlQmxvY2soKS0+bV9sb2NrLCBleGVj
LT52bSgpLmhlYXApOwogICAgIAogICAgIGJvb2wgY2FjaGVkID0gdHJ5Q2FjaGVQdXRCeUlEKGV4
ZWMsIGJhc2VWYWx1ZSwgcHJvcGVydHlOYW1lLCBzbG90LCBzdHViSW5mbywgcHV0S2luZCk7CiAg
ICAgaWYgKCFjYWNoZWQpCkBAIC0xMDk3LDcgKzEwOTcsNyBAQCBzdGF0aWMgYm9vbCB0cnlCdWls
ZFB1dEJ5SWRMaXN0KEV4ZWNTdGF0CiAKIHZvaWQgYnVpbGRQdXRCeUlkTGlzdChFeGVjU3RhdGUq
IGV4ZWMsIEpTVmFsdWUgYmFzZVZhbHVlLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUs
IGNvbnN0IFB1dFByb3BlcnR5U2xvdCYgc2xvdCwgU3RydWN0dXJlU3R1YkluZm8mIHN0dWJJbmZv
LCBQdXRLaW5kIHB1dEtpbmQpCiB7Ci0gICAgQ29uY3VycmVudEpJVExvY2tlciBsb2NrZXIoZXhl
Yy0+Y29kZUJsb2NrKCktPm1fbG9jayk7CisgICAgR0NTYWZlQ29uY3VycmVudEpJVExvY2tlciBs
b2NrZXIoZXhlYy0+Y29kZUJsb2NrKCktPm1fbG9jaywgZXhlYy0+dm0oKS5oZWFwKTsKICAgICAK
ICAgICBib29sIGNhY2hlZCA9IHRyeUJ1aWxkUHV0QnlJZExpc3QoZXhlYywgYmFzZVZhbHVlLCBw
cm9wZXJ0eU5hbWUsIHNsb3QsIHN0dWJJbmZvLCBwdXRLaW5kKTsKICAgICBpZiAoIWNhY2hlZCkK
SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGludC9MTEludFNsb3dQYXRocy5jcHAKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xMSW50U2xvd1BhdGhzLmNw
cAkocmV2aXNpb24gMTU3NDc5KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xMSW50
U2xvd1BhdGhzLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNTk2LDcgKzU5Niw3IEBAIExMSU5UX1NM
T1dfUEFUSF9ERUNMKHNsb3dfcGF0aF9wdXRfYnlfaWQKICAgICAgICAgICAgICYmIGJhc2VDZWxs
ID09IHNsb3QuYmFzZSgpKSB7CiAgICAgICAgICAgICAKICAgICAgICAgICAgIGlmIChzbG90LnR5
cGUoKSA9PSBQdXRQcm9wZXJ0eVNsb3Q6Ok5ld1Byb3BlcnR5KSB7Ci0gICAgICAgICAgICAgICAg
Q29uY3VycmVudEpJVExvY2tlciBsb2NrZXIoY29kZUJsb2NrLT5tX2xvY2spOworICAgICAgICAg
ICAgICAgIEdDU2FmZUNvbmN1cnJlbnRKSVRMb2NrZXIgbG9ja2VyKGNvZGVCbG9jay0+bV9sb2Nr
LCB2bS5oZWFwKTsKICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgIGlmICghc3RydWN0dXJl
LT5pc0RpY3Rpb25hcnkoKSAmJiBzdHJ1Y3R1cmUtPnByZXZpb3VzSUQoKS0+b3V0T2ZMaW5lQ2Fw
YWNpdHkoKSA9PSBzdHJ1Y3R1cmUtPm91dE9mTGluZUNhcGFjaXR5KCkpIHsKICAgICAgICAgICAg
ICAgICAgICAgQVNTRVJUKHN0cnVjdHVyZS0+cHJldmlvdXNJRCgpLT50cmFuc2l0aW9uV2F0Y2hw
b2ludFNldEhhc0JlZW5JbnZhbGlkYXRlZCgpKTsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL0NvbmN1cnJlbnRKSVRMb2NrLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvQ29uY3VycmVudEpJVExvY2suaAkocmV2aXNpb24gMTU3NDc5KQor
KysgU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQ29uY3VycmVudEpJVExvY2suaAkod29y
a2luZyBjb3B5KQpAQCAtMjYsNiArMjYsNyBAQAogI2lmbmRlZiBDb25jdXJyZW50SklUTG9ja19o
CiAjZGVmaW5lIENvbmN1cnJlbnRKSVRMb2NrX2gKIAorI2luY2x1ZGUgIkRlZmVyR0MuaCIKICNp
bmNsdWRlIDx3dGYvQnl0ZVNwaW5Mb2NrLmg+CiAjaW5jbHVkZSA8d3RmL05vTG9jay5oPgogCkBA
IC0zMywxMyArMzQsOTAgQEAgbmFtZXNwYWNlIEpTQyB7CiAKICNpZiBFTkFCTEUoQ09OQ1VSUkVO
VF9KSVQpCiB0eXBlZGVmIEJ5dGVTcGluTG9jayBDb25jdXJyZW50SklUTG9jazsKLXR5cGVkZWYg
Qnl0ZVNwaW5Mb2NrZXIgQ29uY3VycmVudEpJVExvY2tlcjsKK3R5cGVkZWYgQnl0ZVNwaW5Mb2Nr
ZXIgQ29uY3VycmVudEpJVExvY2tlckltcGw7CiAjZWxzZQogdHlwZWRlZiBOb0xvY2sgQ29uY3Vy
cmVudEpJVExvY2s7Ci10eXBlZGVmIE5vTG9ja0xvY2tlciBDb25jdXJyZW50SklUTG9ja2VyOwor
dHlwZWRlZiBOb0xvY2tMb2NrZXIgQ29uY3VycmVudEpJVExvY2tlckltcGw7CiAjZW5kaWYKIAor
Y2xhc3MgQ29uY3VycmVudEpJVExvY2tlckJhc2UgeworICAgIFdURl9NQUtFX05PTkNPUFlBQkxF
KENvbmN1cnJlbnRKSVRMb2NrZXJCYXNlKTsKK3B1YmxpYzoKKyAgICBleHBsaWNpdCBDb25jdXJy
ZW50SklUTG9ja2VyQmFzZShDb25jdXJyZW50SklUTG9jayYgbG9ja2FibGUpCisgICAgICAgIDog
bV9sb2NrZXIoJmxvY2thYmxlKQorICAgIHsKKyAgICB9CisgICAgZXhwbGljaXQgQ29uY3VycmVu
dEpJVExvY2tlckJhc2UoQ29uY3VycmVudEpJVExvY2sqIGxvY2thYmxlKQorICAgICAgICA6IG1f
bG9ja2VyKGxvY2thYmxlKQorICAgIHsKKyAgICB9CisKKyAgICB+Q29uY3VycmVudEpJVExvY2tl
ckJhc2UoKQorICAgIHsKKyAgICB9CisgICAgCisgICAgdm9pZCB1bmxvY2tFYXJseSgpCisgICAg
eworICAgICAgICBtX2xvY2tlci51bmxvY2tFYXJseSgpOworICAgIH0KKworcHJpdmF0ZToKKyAg
ICBDb25jdXJyZW50SklUTG9ja2VySW1wbCBtX2xvY2tlcjsKK307CisKK2NsYXNzIEdDU2FmZUNv
bmN1cnJlbnRKSVRMb2NrZXIgOiBwdWJsaWMgQ29uY3VycmVudEpJVExvY2tlckJhc2UgeworcHVi
bGljOgorICAgIEdDU2FmZUNvbmN1cnJlbnRKSVRMb2NrZXIoQ29uY3VycmVudEpJVExvY2smIGxv
Y2thYmxlLCBIZWFwJiBoZWFwKQorICAgICAgICA6IENvbmN1cnJlbnRKSVRMb2NrZXJCYXNlKGxv
Y2thYmxlKQorICAgICAgICAsIG1fZGVmZXJHQyhoZWFwKQorICAgIHsKKyAgICB9CisKKyAgICBH
Q1NhZmVDb25jdXJyZW50SklUTG9ja2VyKENvbmN1cnJlbnRKSVRMb2NrKiBsb2NrYWJsZSwgSGVh
cCYgaGVhcCkKKyAgICAgICAgOiBDb25jdXJyZW50SklUTG9ja2VyQmFzZShsb2NrYWJsZSkKKyAg
ICAgICAgLCBtX2RlZmVyR0MoaGVhcCkKKyAgICB7CisgICAgfQorCisgICAgfkdDU2FmZUNvbmN1
cnJlbnRKSVRMb2NrZXIoKQorICAgIHsKKyAgICAgICAgLy8gV2UgaGF2ZSB0byB1bmxvY2sgZWFy
bHkgZHVlIHRvIHRoZSBkZXN0cnVjdGlvbiBvcmRlciBvZiBiYXNlCisgICAgICAgIC8vIHZzLiBk
ZXJpdmVkIGNsYXNzZXMuIElmIHdlIGRpZG4ndCwgdGhlbiB3ZSB3b3VsZCBkZXN0cm95IHRoZSAK
KyAgICAgICAgLy8gRGVmZXJHQyBvYmplY3QgYmVmb3JlIHVubG9ja2luZyB0aGUgbG9jayB3aGlj
aCBjb3VsZCBjYXVzZSBhIEdDCisgICAgICAgIC8vIGFuZCByZXN1bHRpbmcgZGVhZGxvY2suCisg
ICAgICAgIHVubG9ja0Vhcmx5KCk7CisgICAgfQorCitwcml2YXRlOgorI2lmIEVOQUJMRShDT05D
VVJSRU5UX0pJVCkKKyAgICBEZWZlckdDIG1fZGVmZXJHQzsKKyNlbHNlCisgICAgc3RydWN0IE5v
RGVmZXIgeworICAgICAgICBOb0RlZmVyKEhlYXAmIGhlYXApIDogbV9oZWFwKGhlYXApIHsgfQor
ICAgICAgICBIZWFwJiBtX2hlYXA7CisgICAgfTsKKyAgICBOb0RlZmVyIG1fZGVmZXJHQzsKKyNl
bmRpZgorfTsKKworY2xhc3MgQ29uY3VycmVudEpJVExvY2tlciA6IHB1YmxpYyBDb25jdXJyZW50
SklUTG9ja2VyQmFzZSB7CitwdWJsaWM6CisgICAgQ29uY3VycmVudEpJVExvY2tlcihDb25jdXJy
ZW50SklUTG9jayYgbG9ja2FibGUpCisgICAgICAgIDogQ29uY3VycmVudEpJVExvY2tlckJhc2Uo
bG9ja2FibGUpCisgICAgeworICAgIH0KKworICAgIENvbmN1cnJlbnRKSVRMb2NrZXIoQ29uY3Vy
cmVudEpJVExvY2sqIGxvY2thYmxlKQorICAgICAgICA6IENvbmN1cnJlbnRKSVRMb2NrZXJCYXNl
KGxvY2thYmxlKQorICAgIHsKKyAgICB9CisKKyNpZiBFTkFCTEUoQ09OQ1VSUkVOVF9KSVQpICYm
ICFkZWZpbmVkKE5ERUJVRykKK3ByaXZhdGU6CisgICAgRGlzYWxsb3dHQyBtX2Rpc2FsbG93R0M7
CisjZW5kaWYKK307CisKIH0gLy8gbmFtZXNwYWNlIEpTQwogCiAjZW5kaWYgLy8gQ29uY3VycmVu
dEpJVExvY2tfaAotCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Jbml0aWFs
aXplVGhyZWFkaW5nLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9Jbml0aWFsaXplVGhyZWFkaW5nLmNwcAkocmV2aXNpb24gMTU3NDc5KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSW5pdGlhbGl6ZVRocmVhZGluZy5jcHAJKHdvcmtpbmcg
Y29weSkKQEAgLTY5LDYgKzY5LDkgQEAgc3RhdGljIHZvaWQgaW5pdGlhbGl6ZVRocmVhZGluZ09u
Y2UoKQogI2lmIEVOQUJMRShMTElOVCkKICAgICBMTEludDo6aW5pdGlhbGl6ZSgpOwogI2VuZGlm
CisjaWZuZGVmIE5ERUJVRworICAgIERpc2FsbG93R0M6OmluaXRpYWxpemUoKTsKKyNlbmRpZgog
fQogCiB2b2lkIGluaXRpYWxpemVUaHJlYWRpbmcoKQpJbmRleDogU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvSlNDZWxsSW5saW5lcy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL0pTQ2VsbElubGluZXMuaAkocmV2aXNpb24gMTU3NDc5KQorKysgU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNDZWxsSW5saW5lcy5oCSh3b3JraW5nIGNvcHkp
CkBAIC0yNyw2ICsyNyw3IEBACiAjZGVmaW5lIEpTQ2VsbElubGluZXNfaAogCiAjaW5jbHVkZSAi
Q2FsbEZyYW1lLmgiCisjaW5jbHVkZSAiRGVmZXJHQy5oIgogI2luY2x1ZGUgIkhhbmRsZS5oIgog
I2luY2x1ZGUgIkpTQ2VsbC5oIgogI2luY2x1ZGUgIkpTT2JqZWN0LmgiCkBAIC04NSw2ICs4Niw3
IEBAIGlubGluZSB2b2lkIEpTQ2VsbDo6dmlzaXRDaGlsZHJlbihKU0NlbGwKIHRlbXBsYXRlPHR5
cGVuYW1lIFQ+CiB2b2lkKiBhbGxvY2F0ZUNlbGwoSGVhcCYgaGVhcCwgc2l6ZV90IHNpemUpCiB7
CisgICAgQVNTRVJUKCFEaXNhbGxvd0dDOjppc0dDRGlzYWxsb3dlZE9uQ3VycmVudFRocmVhZCgp
KTsKICAgICBBU1NFUlQoc2l6ZSA+PSBzaXplb2YoVCkpOwogI2lmIEVOQUJMRShHQ19WQUxJREFU
SU9OKQogICAgIEFTU0VSVCghaGVhcC52bSgpLT5pc0luaXRpYWxpemluZ09iamVjdCgpKTsKSW5k
ZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTU3ltYm9sVGFibGVPYmplY3QuaAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU1N5bWJvbFRhYmxl
T2JqZWN0LmgJKHJldmlzaW9uIDE1NzQ3OSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL0pTU3ltYm9sVGFibGVPYmplY3QuaAkod29ya2luZyBjb3B5KQpAQCAtMTI1LDcgKzEyNSw3
IEBAIGlubGluZSBib29sIHN5bWJvbFRhYmxlUHV0KAogICAgIFdyaXRlQmFycmllckJhc2U8VW5r
bm93bj4qIHJlZzsKICAgICB7CiAgICAgICAgIFN5bWJvbFRhYmxlJiBzeW1ib2xUYWJsZSA9ICpv
YmplY3QtPnN5bWJvbFRhYmxlKCk7Ci0gICAgICAgIENvbmN1cnJlbnRKSVRMb2NrZXIgbG9ja2Vy
KHN5bWJvbFRhYmxlLm1fbG9jayk7CisgICAgICAgIEdDU2FmZUNvbmN1cnJlbnRKSVRMb2NrZXIg
bG9ja2VyKHN5bWJvbFRhYmxlLm1fbG9jaywgZXhlYy0+dm0oKS5oZWFwKTsKICAgICAgICAgU3lt
Ym9sVGFibGU6Ok1hcDo6aXRlcmF0b3IgaXRlciA9IHN5bWJvbFRhYmxlLmZpbmQobG9ja2VyLCBw
cm9wZXJ0eU5hbWUucHVibGljTmFtZSgpKTsKICAgICAgICAgaWYgKGl0ZXIgPT0gc3ltYm9sVGFi
bGUuZW5kKGxvY2tlcikpCiAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CkluZGV4OiBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJ1Y3R1cmUuY3BwCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0cnVjdHVyZS5jcHAJKHJldmlzaW9uIDE1NzQ3OSkK
KysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0cnVjdHVyZS5jcHAJKHdvcmtpbmcg
Y29weSkKQEAgLTI4MCw3ICsyODAsNyBAQCB2b2lkIFN0cnVjdHVyZTo6bWF0ZXJpYWxpemVQcm9w
ZXJ0eU1hcChWCiAgICAgLy8gTXVzdCBob2xkIHRoZSBsb2NrIG9uIHRoaXMgc3RydWN0dXJlLCBz
aW5jZSB3ZSB3aWxsIGJlIG1vZGlmeWluZyB0aGlzIHN0cnVjdHVyZSdzCiAgICAgLy8gcHJvcGVy
dHkgbWFwLiBXZSBkb24ndCB3YW50IGdldENvbmN1cnJlbnRseSgpIHRvIHNlZSB0aGUgcHJvcGVy
dHkgbWFwIGluIGEgaGFsZi1iYWtlZAogICAgIC8vIHN0YXRlLgotICAgIENvbmN1cnJlbnRKSVRM
b2NrZXIgbG9ja2VyKG1fbG9jayk7CisgICAgR0NTYWZlQ29uY3VycmVudEpJVExvY2tlciBsb2Nr
ZXIobV9sb2NrLCB2bS5oZWFwKTsKICAgICBpZiAoIXRhYmxlKQogICAgICAgICBjcmVhdGVQcm9w
ZXJ0eU1hcChsb2NrZXIsIHZtLCBudW1iZXJPZlNsb3RzRm9yTGFzdE9mZnNldChtX29mZnNldCwg
bV9pbmxpbmVDYXBhY2l0eSkpOwogICAgIGVsc2UKQEAgLTMxMyw3ICszMTMsOCBAQCB2b2lkIFN0
cnVjdHVyZTo6ZGVzcGVjaWZ5RGljdGlvbmFyeUZ1bmN0CiB7CiAgICAgU3RyaW5nSW1wbCogcmVw
ID0gcHJvcGVydHlOYW1lLnVpZCgpOwogCi0gICAgbWF0ZXJpYWxpemVQcm9wZXJ0eU1hcElmTmVj
ZXNzYXJ5KHZtKTsKKyAgICBEZWZlckdDIGRlZmVyR0Modm0uaGVhcCk7CisgICAgbWF0ZXJpYWxp
emVQcm9wZXJ0eU1hcElmTmVjZXNzYXJ5KHZtLCBkZWZlckdDKTsKIAogICAgIEFTU0VSVChpc0Rp
Y3Rpb25hcnkoKSk7CiAgICAgQVNTRVJUKHByb3BlcnR5VGFibGUoKSk7CkBAIC00NTEsNyArNDUy
LDggQEAgU3RydWN0dXJlKiBTdHJ1Y3R1cmU6OmNoYW5nZVByb3RvdHlwZVRyYQogCiAgICAgdHJh
bnNpdGlvbi0+bV9wcm90b3R5cGUuc2V0KHZtLCB0cmFuc2l0aW9uLCBwcm90b3R5cGUpOwogCi0g
ICAgc3RydWN0dXJlLT5tYXRlcmlhbGl6ZVByb3BlcnR5TWFwSWZOZWNlc3Nhcnkodm0pOworICAg
IERlZmVyR0MgZGVmZXJHQyh2bS5oZWFwKTsKKyAgICBzdHJ1Y3R1cmUtPm1hdGVyaWFsaXplUHJv
cGVydHlNYXBJZk5lY2Vzc2FyeSh2bSwgZGVmZXJHQyk7CiAgICAgdHJhbnNpdGlvbi0+cHJvcGVy
dHlUYWJsZSgpLnNldCh2bSwgdHJhbnNpdGlvbiwgc3RydWN0dXJlLT5jb3B5UHJvcGVydHlUYWJs
ZUZvclBpbm5pbmcodm0sIHRyYW5zaXRpb24pKTsKICAgICB0cmFuc2l0aW9uLT5tX29mZnNldCA9
IHN0cnVjdHVyZS0+bV9vZmZzZXQ7CiAgICAgdHJhbnNpdGlvbi0+cGluKCk7CkBAIC00NjcsNyAr
NDY5LDggQEAgU3RydWN0dXJlKiBTdHJ1Y3R1cmU6OmRlc3BlY2lmeUZ1bmN0aW9uVAogCiAgICAg
Kyt0cmFuc2l0aW9uLT5tX3NwZWNpZmljRnVuY3Rpb25UaHJhc2hDb3VudDsKIAotICAgIHN0cnVj
dHVyZS0+bWF0ZXJpYWxpemVQcm9wZXJ0eU1hcElmTmVjZXNzYXJ5KHZtKTsKKyAgICBEZWZlckdD
IGRlZmVyR0Modm0uaGVhcCk7CisgICAgc3RydWN0dXJlLT5tYXRlcmlhbGl6ZVByb3BlcnR5TWFw
SWZOZWNlc3Nhcnkodm0sIGRlZmVyR0MpOwogICAgIHRyYW5zaXRpb24tPnByb3BlcnR5VGFibGUo
KS5zZXQodm0sIHRyYW5zaXRpb24sIHN0cnVjdHVyZS0+Y29weVByb3BlcnR5VGFibGVGb3JQaW5u
aW5nKHZtLCB0cmFuc2l0aW9uKSk7CiAgICAgdHJhbnNpdGlvbi0+bV9vZmZzZXQgPSBzdHJ1Y3R1
cmUtPm1fb2Zmc2V0OwogICAgIHRyYW5zaXRpb24tPnBpbigpOwpAQCAtNDg1LDEwICs0ODgsMTEg
QEAgU3RydWN0dXJlKiBTdHJ1Y3R1cmU6OmRlc3BlY2lmeUZ1bmN0aW9uVAogCiBTdHJ1Y3R1cmUq
IFN0cnVjdHVyZTo6YXR0cmlidXRlQ2hhbmdlVHJhbnNpdGlvbihWTSYgdm0sIFN0cnVjdHVyZSog
c3RydWN0dXJlLCBQcm9wZXJ0eU5hbWUgcHJvcGVydHlOYW1lLCB1bnNpZ25lZCBhdHRyaWJ1dGVz
KQogeworICAgIERlZmVyR0MgZGVmZXJHQyh2bS5oZWFwKTsKICAgICBpZiAoIXN0cnVjdHVyZS0+
aXNVbmNhY2hlYWJsZURpY3Rpb25hcnkoKSkgewogICAgICAgICBTdHJ1Y3R1cmUqIHRyYW5zaXRp
b24gPSBjcmVhdGUodm0sIHN0cnVjdHVyZSk7CiAKLSAgICAgICAgc3RydWN0dXJlLT5tYXRlcmlh
bGl6ZVByb3BlcnR5TWFwSWZOZWNlc3Nhcnkodm0pOworICAgICAgICBzdHJ1Y3R1cmUtPm1hdGVy
aWFsaXplUHJvcGVydHlNYXBJZk5lY2Vzc2FyeSh2bSwgZGVmZXJHQyk7CiAgICAgICAgIHRyYW5z
aXRpb24tPnByb3BlcnR5VGFibGUoKS5zZXQodm0sIHRyYW5zaXRpb24sIHN0cnVjdHVyZS0+Y29w
eVByb3BlcnR5VGFibGVGb3JQaW5uaW5nKHZtLCB0cmFuc2l0aW9uKSk7CiAgICAgICAgIHRyYW5z
aXRpb24tPm1fb2Zmc2V0ID0gc3RydWN0dXJlLT5tX29mZnNldDsKICAgICAgICAgdHJhbnNpdGlv
bi0+cGluKCk7CkBAIC01MTEsNyArNTE1LDggQEAgU3RydWN0dXJlKiBTdHJ1Y3R1cmU6OnRvRGlj
dGlvbmFyeVRyYW5zaQogICAgIAogICAgIFN0cnVjdHVyZSogdHJhbnNpdGlvbiA9IGNyZWF0ZSh2
bSwgc3RydWN0dXJlKTsKIAotICAgIHN0cnVjdHVyZS0+bWF0ZXJpYWxpemVQcm9wZXJ0eU1hcElm
TmVjZXNzYXJ5KHZtKTsKKyAgICBEZWZlckdDIGRlZmVyR0Modm0uaGVhcCk7CisgICAgc3RydWN0
dXJlLT5tYXRlcmlhbGl6ZVByb3BlcnR5TWFwSWZOZWNlc3Nhcnkodm0sIGRlZmVyR0MpOwogICAg
IHRyYW5zaXRpb24tPnByb3BlcnR5VGFibGUoKS5zZXQodm0sIHRyYW5zaXRpb24sIHN0cnVjdHVy
ZS0+Y29weVByb3BlcnR5VGFibGVGb3JQaW5uaW5nKHZtLCB0cmFuc2l0aW9uKSk7CiAgICAgdHJh
bnNpdGlvbi0+bV9vZmZzZXQgPSBzdHJ1Y3R1cmUtPm1fb2Zmc2V0OwogICAgIHRyYW5zaXRpb24t
Pm1fZGljdGlvbmFyeUtpbmQgPSBraW5kOwpAQCAtNTcxLDcgKzU3Niw4IEBAIFN0cnVjdHVyZSog
U3RydWN0dXJlOjpwcmV2ZW50RXh0ZW5zaW9uc1QKIAogICAgIC8vIERvbid0IHNldCBtX29mZnNl
dCwgYXMgb25lIGNhbiBub3QgdHJhbnNpdGlvbiB0byB0aGlzLgogCi0gICAgc3RydWN0dXJlLT5t
YXRlcmlhbGl6ZVByb3BlcnR5TWFwSWZOZWNlc3Nhcnkodm0pOworICAgIERlZmVyR0MgZGVmZXJH
Qyh2bS5oZWFwKTsKKyAgICBzdHJ1Y3R1cmUtPm1hdGVyaWFsaXplUHJvcGVydHlNYXBJZk5lY2Vz
c2FyeSh2bSwgZGVmZXJHQyk7CiAgICAgdHJhbnNpdGlvbi0+cHJvcGVydHlUYWJsZSgpLnNldCh2
bSwgdHJhbnNpdGlvbiwgc3RydWN0dXJlLT5jb3B5UHJvcGVydHlUYWJsZUZvclBpbm5pbmcodm0s
IHRyYW5zaXRpb24pKTsKICAgICB0cmFuc2l0aW9uLT5tX29mZnNldCA9IHN0cnVjdHVyZS0+bV9v
ZmZzZXQ7CiAgICAgdHJhbnNpdGlvbi0+bV9wcmV2ZW50RXh0ZW5zaW9ucyA9IHRydWU7CkBAIC01
ODMsNyArNTg5LDggQEAgU3RydWN0dXJlKiBTdHJ1Y3R1cmU6OnByZXZlbnRFeHRlbnNpb25zVAog
CiBQcm9wZXJ0eVRhYmxlKiBTdHJ1Y3R1cmU6OnRha2VQcm9wZXJ0eVRhYmxlT3JDbG9uZUlmUGlu
bmVkKFZNJiB2bSwgU3RydWN0dXJlKiBvd25lcikKIHsKLSAgICBtYXRlcmlhbGl6ZVByb3BlcnR5
TWFwSWZOZWNlc3NhcnlGb3JQaW5uaW5nKHZtKTsKKyAgICBEZWZlckdDIGRlZmVyR0Modm0uaGVh
cCk7CisgICAgbWF0ZXJpYWxpemVQcm9wZXJ0eU1hcElmTmVjZXNzYXJ5Rm9yUGlubmluZyh2bSwg
ZGVmZXJHQyk7CiAgICAgCiAgICAgaWYgKG1faXNQaW5uZWRQcm9wZXJ0eVRhYmxlKQogICAgICAg
ICByZXR1cm4gcHJvcGVydHlUYWJsZSgpLT5jb3B5KHZtLCBvd25lciwgcHJvcGVydHlUYWJsZSgp
LT5zaXplKCkgKyAxKTsKQEAgLTY0MCw3ICs2NDcsOCBAQCBib29sIFN0cnVjdHVyZTo6aXNTZWFs
ZWQoVk0mIHZtKQogICAgIGlmIChpc0V4dGVuc2libGUoKSkKICAgICAgICAgcmV0dXJuIGZhbHNl
OwogCi0gICAgbWF0ZXJpYWxpemVQcm9wZXJ0eU1hcElmTmVjZXNzYXJ5KHZtKTsKKyAgICBEZWZl
ckdDIGRlZmVyR0Modm0uaGVhcCk7CisgICAgbWF0ZXJpYWxpemVQcm9wZXJ0eU1hcElmTmVjZXNz
YXJ5KHZtLCBkZWZlckdDKTsKICAgICBpZiAoIXByb3BlcnR5VGFibGUoKSkKICAgICAgICAgcmV0
dXJuIHRydWU7CiAKQEAgLTY1OCw3ICs2NjYsOCBAQCBib29sIFN0cnVjdHVyZTo6aXNGcm96ZW4o
Vk0mIHZtKQogICAgIGlmIChpc0V4dGVuc2libGUoKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwog
Ci0gICAgbWF0ZXJpYWxpemVQcm9wZXJ0eU1hcElmTmVjZXNzYXJ5KHZtKTsKKyAgICBEZWZlckdD
IGRlZmVyR0Modm0uaGVhcCk7CisgICAgbWF0ZXJpYWxpemVQcm9wZXJ0eU1hcElmTmVjZXNzYXJ5
KHZtLCBkZWZlckdDKTsKICAgICBpZiAoIXByb3BlcnR5VGFibGUoKSkKICAgICAgICAgcmV0dXJu
IHRydWU7CiAKQEAgLTcxOCw3ICs3MjcsOCBAQCBQcm9wZXJ0eU9mZnNldCBTdHJ1Y3R1cmU6OmFk
ZFByb3BlcnR5V2l0CiAgICAgaWYgKG1fc3BlY2lmaWNGdW5jdGlvblRocmFzaENvdW50ID09IG1h
eFNwZWNpZmljRnVuY3Rpb25UaHJhc2hDb3VudCkKICAgICAgICAgc3BlY2lmaWNWYWx1ZSA9IDA7
CiAKLSAgICBtYXRlcmlhbGl6ZVByb3BlcnR5TWFwSWZOZWNlc3NhcnlGb3JQaW5uaW5nKHZtKTsK
KyAgICBEZWZlckdDIGRlZmVyR0Modm0uaGVhcCk7CisgICAgbWF0ZXJpYWxpemVQcm9wZXJ0eU1h
cElmTmVjZXNzYXJ5Rm9yUGlubmluZyh2bSwgZGVmZXJHQyk7CiAgICAgCiAgICAgcGluKCk7CiAK
QEAgLTczMCw3ICs3NDAsOCBAQCBQcm9wZXJ0eU9mZnNldCBTdHJ1Y3R1cmU6OnJlbW92ZVByb3Bl
cnR5CiAgICAgQVNTRVJUKGlzVW5jYWNoZWFibGVEaWN0aW9uYXJ5KCkpOwogICAgIEFTU0VSVCgh
ZW51bWVyYXRpb25DYWNoZSgpKTsKIAotICAgIG1hdGVyaWFsaXplUHJvcGVydHlNYXBJZk5lY2Vz
c2FyeUZvclBpbm5pbmcodm0pOworICAgIERlZmVyR0MgZGVmZXJHQyh2bS5oZWFwKTsKKyAgICBt
YXRlcmlhbGl6ZVByb3BlcnR5TWFwSWZOZWNlc3NhcnlGb3JQaW5uaW5nKHZtLCBkZWZlckdDKTsK
IAogICAgIHBpbigpOwogICAgIHJldHVybiByZW1vdmUocHJvcGVydHlOYW1lKTsKQEAgLTg0MCw3
ICs4NTEsOCBAQCBQcm9wZXJ0eU9mZnNldCBTdHJ1Y3R1cmU6OmdldChWTSYgdm0sIFByCiAgICAg
QVNTRVJUKCFpc0NvbXBpbGF0aW9uVGhyZWFkKCkpOwogICAgIEFTU0VSVChzdHJ1Y3R1cmUoKS0+
Y2xhc3NJbmZvKCkgPT0gaW5mbygpKTsKIAotICAgIG1hdGVyaWFsaXplUHJvcGVydHlNYXBJZk5l
Y2Vzc2FyeSh2bSk7CisgICAgRGVmZXJHQyBkZWZlckdDKHZtLmhlYXApOworICAgIG1hdGVyaWFs
aXplUHJvcGVydHlNYXBJZk5lY2Vzc2FyeSh2bSwgZGVmZXJHQyk7CiAgICAgaWYgKCFwcm9wZXJ0
eVRhYmxlKCkpCiAgICAgICAgIHJldHVybiBpbnZhbGlkT2Zmc2V0OwogCkBAIC04NTUsNyArODY3
LDggQEAgUHJvcGVydHlPZmZzZXQgU3RydWN0dXJlOjpnZXQoVk0mIHZtLCBQcgogCiBib29sIFN0
cnVjdHVyZTo6ZGVzcGVjaWZ5RnVuY3Rpb24oVk0mIHZtLCBQcm9wZXJ0eU5hbWUgcHJvcGVydHlO
YW1lKQogewotICAgIG1hdGVyaWFsaXplUHJvcGVydHlNYXBJZk5lY2Vzc2FyeSh2bSk7CisgICAg
RGVmZXJHQyBkZWZlckdDKHZtLmhlYXApOworICAgIG1hdGVyaWFsaXplUHJvcGVydHlNYXBJZk5l
Y2Vzc2FyeSh2bSwgZGVmZXJHQyk7CiAgICAgaWYgKCFwcm9wZXJ0eVRhYmxlKCkpCiAgICAgICAg
IHJldHVybiBmYWxzZTsKIApAQCAtODcwLDcgKzg4Myw4IEBAIGJvb2wgU3RydWN0dXJlOjpkZXNw
ZWNpZnlGdW5jdGlvbihWTSYgdm0KIAogdm9pZCBTdHJ1Y3R1cmU6OmRlc3BlY2lmeUFsbEZ1bmN0
aW9ucyhWTSYgdm0pCiB7Ci0gICAgbWF0ZXJpYWxpemVQcm9wZXJ0eU1hcElmTmVjZXNzYXJ5KHZt
KTsKKyAgICBEZWZlckdDIGRlZmVyR0Modm0uaGVhcCk7CisgICAgbWF0ZXJpYWxpemVQcm9wZXJ0
eU1hcElmTmVjZXNzYXJ5KHZtLCBkZWZlckdDKTsKICAgICBpZiAoIXByb3BlcnR5VGFibGUoKSkK
ICAgICAgICAgcmV0dXJuOwogCkBAIC04ODEsNyArODk1LDcgQEAgdm9pZCBTdHJ1Y3R1cmU6OmRl
c3BlY2lmeUFsbEZ1bmN0aW9ucyhWTQogCiBQcm9wZXJ0eU9mZnNldCBTdHJ1Y3R1cmU6OnB1dFNw
ZWNpZmljVmFsdWUoVk0mIHZtLCBQcm9wZXJ0eU5hbWUgcHJvcGVydHlOYW1lLCB1bnNpZ25lZCBh
dHRyaWJ1dGVzLCBKU0NlbGwqIHNwZWNpZmljVmFsdWUpCiB7Ci0gICAgQ29uY3VycmVudEpJVExv
Y2tlciBsb2NrZXIobV9sb2NrKTsKKyAgICBHQ1NhZmVDb25jdXJyZW50SklUTG9ja2VyIGxvY2tl
cihtX2xvY2ssIHZtLmhlYXApOwogICAgIAogICAgIEFTU0VSVCghSlNDOjppc1ZhbGlkT2Zmc2V0
KGdldCh2bSwgcHJvcGVydHlOYW1lKSkpOwogCkBAIC05MjYsNyArOTQwLDcgQEAgUHJvcGVydHlP
ZmZzZXQgU3RydWN0dXJlOjpyZW1vdmUoUHJvcGVydAogICAgIHJldHVybiBvZmZzZXQ7CiB9CiAK
LXZvaWQgU3RydWN0dXJlOjpjcmVhdGVQcm9wZXJ0eU1hcChjb25zdCBDb25jdXJyZW50SklUTG9j
a2VyJiwgVk0mIHZtLCB1bnNpZ25lZCBjYXBhY2l0eSkKK3ZvaWQgU3RydWN0dXJlOjpjcmVhdGVQ
cm9wZXJ0eU1hcChjb25zdCBHQ1NhZmVDb25jdXJyZW50SklUTG9ja2VyJiwgVk0mIHZtLCB1bnNp
Z25lZCBjYXBhY2l0eSkKIHsKICAgICBBU1NFUlQoIXByb3BlcnR5VGFibGUoKSk7CiAKQEAgLTkz
Niw3ICs5NTAsOCBAQCB2b2lkIFN0cnVjdHVyZTo6Y3JlYXRlUHJvcGVydHlNYXAoY29uc3QgCiAK
IHZvaWQgU3RydWN0dXJlOjpnZXRQcm9wZXJ0eU5hbWVzRnJvbVN0cnVjdHVyZShWTSYgdm0sIFBy
b3BlcnR5TmFtZUFycmF5JiBwcm9wZXJ0eU5hbWVzLCBFbnVtZXJhdGlvbk1vZGUgbW9kZSkKIHsK
LSAgICBtYXRlcmlhbGl6ZVByb3BlcnR5TWFwSWZOZWNlc3Nhcnkodm0pOworICAgIERlZmVyR0Mg
ZGVmZXJHQyh2bS5oZWFwKTsKKyAgICBtYXRlcmlhbGl6ZVByb3BlcnR5TWFwSWZOZWNlc3Nhcnko
dm0sIGRlZmVyR0MpOwogICAgIGlmICghcHJvcGVydHlUYWJsZSgpKQogICAgICAgICByZXR1cm47
CiAKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0cnVjdHVyZS5oCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0cnVjdHVyZS5oCShyZXZp
c2lvbiAxNTc0NzkpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJ1Y3R1cmUu
aAkod29ya2luZyBjb3B5KQpAQCAtNTEsNiArNTEsNyBAQAogCiBuYW1lc3BhY2UgSlNDIHsKIAor
Y2xhc3MgRGVmZXJHQzsKIGNsYXNzIExMSW50T2Zmc2V0c0V4dHJhY3RvcjsKIGNsYXNzIFByb3Bl
cnR5TmFtZUFycmF5OwogY2xhc3MgUHJvcGVydHlOYW1lQXJyYXlEYXRhOwpAQCAtMzkzLDcgKzM5
NCw3IEBAIHByaXZhdGU6CiAgICAgUHJvcGVydHlPZmZzZXQgcHV0U3BlY2lmaWNWYWx1ZShWTSYs
IFByb3BlcnR5TmFtZSwgdW5zaWduZWQgYXR0cmlidXRlcywgSlNDZWxsKiBzcGVjaWZpY1ZhbHVl
KTsKICAgICBQcm9wZXJ0eU9mZnNldCByZW1vdmUoUHJvcGVydHlOYW1lKTsKIAotICAgIHZvaWQg
Y3JlYXRlUHJvcGVydHlNYXAoY29uc3QgQ29uY3VycmVudEpJVExvY2tlciYsIFZNJiwgdW5zaWdu
ZWQga2V5Q291bnQgPSAwKTsKKyAgICB2b2lkIGNyZWF0ZVByb3BlcnR5TWFwKGNvbnN0IEdDU2Fm
ZUNvbmN1cnJlbnRKSVRMb2NrZXImLCBWTSYsIHVuc2lnbmVkIGtleUNvdW50ID0gMCk7CiAgICAg
dm9pZCBjaGVja0NvbnNpc3RlbmN5KCk7CiAKICAgICBib29sIGRlc3BlY2lmeUZ1bmN0aW9uKFZN
JiwgUHJvcGVydHlOYW1lKTsKQEAgLTQwNCw3ICs0MDUsNyBAQCBwcml2YXRlOgogICAgIFByb3Bl
cnR5VGFibGUqIGNvcHlQcm9wZXJ0eVRhYmxlKFZNJiwgU3RydWN0dXJlKiBvd25lcik7CiAgICAg
UHJvcGVydHlUYWJsZSogY29weVByb3BlcnR5VGFibGVGb3JQaW5uaW5nKFZNJiwgU3RydWN0dXJl
KiBvd25lcik7CiAgICAgSlNfRVhQT1JUX1BSSVZBVEUgdm9pZCBtYXRlcmlhbGl6ZVByb3BlcnR5
TWFwKFZNJik7Ci0gICAgdm9pZCBtYXRlcmlhbGl6ZVByb3BlcnR5TWFwSWZOZWNlc3NhcnkoVk0m
IHZtKQorICAgIHZvaWQgbWF0ZXJpYWxpemVQcm9wZXJ0eU1hcElmTmVjZXNzYXJ5KFZNJiB2bSwg
RGVmZXJHQyYpCiAgICAgewogICAgICAgICBBU1NFUlQoIWlzQ29tcGlsYXRpb25UaHJlYWQoKSk7
CiAgICAgICAgIEFTU0VSVChzdHJ1Y3R1cmUoKS0+Y2xhc3NJbmZvKCkgPT0gaW5mbygpKTsKQEAg
LTQxMiw3ICs0MTMsNyBAQCBwcml2YXRlOgogICAgICAgICBpZiAoIXByb3BlcnR5VGFibGUoKSAm
JiBwcmV2aW91c0lEKCkpCiAgICAgICAgICAgICBtYXRlcmlhbGl6ZVByb3BlcnR5TWFwKHZtKTsK
ICAgICB9Ci0gICAgdm9pZCBtYXRlcmlhbGl6ZVByb3BlcnR5TWFwSWZOZWNlc3NhcnlGb3JQaW5u
aW5nKFZNJiB2bSkKKyAgICB2b2lkIG1hdGVyaWFsaXplUHJvcGVydHlNYXBJZk5lY2Vzc2FyeUZv
clBpbm5pbmcoVk0mIHZtLCBEZWZlckdDJikKICAgICB7CiAgICAgICAgIEFTU0VSVChzdHJ1Y3R1
cmUoKS0+Y2xhc3NJbmZvKCkgPT0gaW5mbygpKTsKICAgICAgICAgY2hlY2tPZmZzZXRDb25zaXN0
ZW5jeSgpOwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RydWN0dXJlSW5s
aW5lcy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0cnVj
dHVyZUlubGluZXMuaAkocmV2aXNpb24gMTU3NDc5KQorKysgU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvU3RydWN0dXJlSW5saW5lcy5oCSh3b3JraW5nIGNvcHkpCkBAIC03Nyw3ICs3Nyw4
IEBAIGlubGluZSBQcm9wZXJ0eU9mZnNldCBTdHJ1Y3R1cmU6OmdldChWTSYKIHsKICAgICBBU1NF
UlQoIWlzQ29tcGlsYXRpb25UaHJlYWQoKSk7CiAgICAgQVNTRVJUKHN0cnVjdHVyZSgpLT5jbGFz
c0luZm8oKSA9PSBpbmZvKCkpOwotICAgIG1hdGVyaWFsaXplUHJvcGVydHlNYXBJZk5lY2Vzc2Fy
eSh2bSk7CisgICAgRGVmZXJHQyBkZWZlckdDKHZtLmhlYXApOworICAgIG1hdGVyaWFsaXplUHJv
cGVydHlNYXBJZk5lY2Vzc2FyeSh2bSwgZGVmZXJHQyk7CiAgICAgaWYgKCFwcm9wZXJ0eVRhYmxl
KCkpCiAgICAgICAgIHJldHVybiBpbnZhbGlkT2Zmc2V0OwogCkBAIC04OSw3ICs5MCw4IEBAIGlu
bGluZSBQcm9wZXJ0eU9mZnNldCBTdHJ1Y3R1cmU6OmdldChWTSYKIHsKICAgICBBU1NFUlQoIWlz
Q29tcGlsYXRpb25UaHJlYWQoKSk7CiAgICAgQVNTRVJUKHN0cnVjdHVyZSgpLT5jbGFzc0luZm8o
KSA9PSBpbmZvKCkpOwotICAgIG1hdGVyaWFsaXplUHJvcGVydHlNYXBJZk5lY2Vzc2FyeSh2bSk7
CisgICAgRGVmZXJHQyBkZWZlckdDKHZtLmhlYXApOworICAgIG1hdGVyaWFsaXplUHJvcGVydHlN
YXBJZk5lY2Vzc2FyeSh2bSwgZGVmZXJHQyk7CiAgICAgaWYgKCFwcm9wZXJ0eVRhYmxlKCkpCiAg
ICAgICAgIHJldHVybiBpbnZhbGlkT2Zmc2V0OwogCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9TeW1ib2xUYWJsZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL1N5bWJvbFRhYmxlLmgJKHJldmlzaW9uIDE1NzQ3OSkKKysrIFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL1N5bWJvbFRhYmxlLmgJKHdvcmtpbmcgY29weSkKQEAgLTM1
NCw2ICszNTQsMTEgQEAgcHVibGljOgogICAgICAgICByZXR1cm4gbV9tYXAuZmluZChrZXkpOwog
ICAgIH0KICAgICAKKyAgICBNYXA6Oml0ZXJhdG9yIGZpbmQoY29uc3QgR0NTYWZlQ29uY3VycmVu
dEpJVExvY2tlciYsIFN0cmluZ0ltcGwqIGtleSkKKyAgICB7CisgICAgICAgIHJldHVybiBtX21h
cC5maW5kKGtleSk7CisgICAgfQorICAgIAogICAgIFN5bWJvbFRhYmxlRW50cnkgZ2V0KGNvbnN0
IENvbmN1cnJlbnRKSVRMb2NrZXImLCBTdHJpbmdJbXBsKiBrZXkpCiAgICAgewogICAgICAgICBy
ZXR1cm4gbV9tYXAuZ2V0KGtleSk7CkBAIC0zODYsNiArMzkxLDExIEBAIHB1YmxpYzoKICAgICAg
ICAgcmV0dXJuIG1fbWFwLmVuZCgpOwogICAgIH0KICAgICAKKyAgICBNYXA6Oml0ZXJhdG9yIGVu
ZChjb25zdCBHQ1NhZmVDb25jdXJyZW50SklUTG9ja2VyJikKKyAgICB7CisgICAgICAgIHJldHVy
biBtX21hcC5lbmQoKTsKKyAgICB9CisgICAgCiAgICAgc2l6ZV90IHNpemUoY29uc3QgQ29uY3Vy
cmVudEpJVExvY2tlciYpIGNvbnN0CiAgICAgewogICAgICAgICByZXR1cm4gbV9tYXAuc2l6ZSgp
Owo=
</data>
<flag name="review"
          id="236936"
          type_id="1"
          status="+"
          setter="ggaren"
    />
          </attachment>
      

    </bug>

</bugzilla>