<?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>175446</bug_id>
          
          <creation_ts>2017-08-10 15:01:43 -0700</creation_ts>
          <short_desc>Make the MASM_PROBE mechanism mandatory for DFG and FTL builds.</short_desc>
          <delta_ts>2017-08-16 16:31:07 -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>WebKit 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>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>175514</dependson>
          <blocked>174645</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Mark Lam">mark.lam</reporter>
          <assigned_to name="Mark Lam">mark.lam</assigned_to>
          <cc>annulen</cc>
    
    <cc>benjamin</cc>
    
    <cc>bugs-noreply</cc>
    
    <cc>buildbot</cc>
    
    <cc>cdumez</cc>
    
    <cc>clopez</cc>
    
    <cc>cmarcelo</cc>
    
    <cc>commit-queue</cc>
    
    <cc>dbates</cc>
    
    <cc>guijemont</cc>
    
    <cc>keith_miller</cc>
    
    <cc>msaboff</cc>
    
    <cc>ossy</cc>
    
    <cc>pvollan</cc>
    
    <cc>ryanhaddad</cc>
    
    <cc>saam</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>ysuzuki</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1337619</commentid>
    <comment_count>0</comment_count>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2017-08-10 15:01:43 -0700</bug_when>
    <thetext>This is needed in order to support https://bugs.webkit.org/show_bug.cgi?id=174645.

Once consequence of this is that the DFG will now be disabled for the MIPS port.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1337620</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2017-08-10 15:02:16 -0700</bug_when>
    <thetext>&lt;rdar://problem/33836545&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1337631</commentid>
    <comment_count>2</comment_count>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2017-08-10 15:16:31 -0700</bug_when>
    <thetext>Looks like I have to disable it for Windows as well.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1337637</commentid>
    <comment_count>3</comment_count>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2017-08-10 15:30:19 -0700</bug_when>
    <thetext>See also:
https://bugs.webkit.org/show_bug.cgi?id=175447
https://bugs.webkit.org/show_bug.cgi?id=175449</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1337640</commentid>
    <comment_count>4</comment_count>
      <attachid>317862</attachid>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2017-08-10 15:39:56 -0700</bug_when>
    <thetext>Created attachment 317862
proposed patch.

Let&apos;s try this on the EWS.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1337642</commentid>
    <comment_count>5</comment_count>
    <who name="Build Bot">buildbot</who>
    <bug_when>2017-08-10 15:41:52 -0700</bug_when>
    <thetext>Attachment 317862 did not pass style-queue:


ERROR: Source/WTF/wtf/Platform.h:785:  CPP comments are not allowed in Platform.h, please use C comments /* ... */  [build/cpp_comment] [5]
ERROR: Source/WTF/wtf/Platform.h:788:  CPP comments are not allowed in Platform.h, please use C comments /* ... */  [build/cpp_comment] [5]
Total errors found: 2 in 3 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1337654</commentid>
    <comment_count>6</comment_count>
      <attachid>317864</attachid>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2017-08-10 15:57:59 -0700</bug_when>
    <thetext>Created attachment 317864
proposed patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1337659</commentid>
    <comment_count>7</comment_count>
    <who name="Build Bot">buildbot</who>
    <bug_when>2017-08-10 16:00:01 -0700</bug_when>
    <thetext>Attachment 317864 did not pass style-queue:


ERROR: Source/WTF/wtf/Platform.h:785:  CPP comments are not allowed in Platform.h, please use C comments /* ... */  [build/cpp_comment] [5]
ERROR: Source/WTF/wtf/Platform.h:788:  CPP comments are not allowed in Platform.h, please use C comments /* ... */  [build/cpp_comment] [5]
Total errors found: 2 in 3 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1337684</commentid>
    <comment_count>8</comment_count>
      <attachid>317877</attachid>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2017-08-10 16:30:20 -0700</bug_when>
    <thetext>Created attachment 317877
proposed patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1337686</commentid>
    <comment_count>9</comment_count>
    <who name="Build Bot">buildbot</who>
    <bug_when>2017-08-10 16:32:25 -0700</bug_when>
    <thetext>Attachment 317877 did not pass style-queue:


ERROR: Source/JavaScriptCore/assembler/MacroAssemblerPrinter.cpp:55:  preprocessor directives (e.g., #ifdef, #define, #import) should never be indented.  [whitespace/indent] [4]
ERROR: Source/JavaScriptCore/assembler/MacroAssemblerPrinter.cpp:57:  preprocessor directives (e.g., #ifdef, #define, #import) should never be indented.  [whitespace/indent] [4]
ERROR: Source/WTF/wtf/Platform.h:785:  CPP comments are not allowed in Platform.h, please use C comments /* ... */  [build/cpp_comment] [5]
ERROR: Source/WTF/wtf/Platform.h:788:  CPP comments are not allowed in Platform.h, please use C comments /* ... */  [build/cpp_comment] [5]
Total errors found: 4 in 4 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1337743</commentid>
    <comment_count>10</comment_count>
      <attachid>317892</attachid>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2017-08-10 17:18:45 -0700</bug_when>
    <thetext>Created attachment 317892
proposed patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1337744</commentid>
    <comment_count>11</comment_count>
    <who name="Build Bot">buildbot</who>
    <bug_when>2017-08-10 17:20:00 -0700</bug_when>
    <thetext>Attachment 317892 did not pass style-queue:


ERROR: Source/JavaScriptCore/assembler/MacroAssemblerPrinter.cpp:55:  preprocessor directives (e.g., #ifdef, #define, #import) should never be indented.  [whitespace/indent] [4]
ERROR: Source/JavaScriptCore/assembler/MacroAssemblerPrinter.cpp:57:  preprocessor directives (e.g., #ifdef, #define, #import) should never be indented.  [whitespace/indent] [4]
ERROR: Source/WTF/wtf/Platform.h:785:  CPP comments are not allowed in Platform.h, please use C comments /* ... */  [build/cpp_comment] [5]
ERROR: Source/WTF/wtf/Platform.h:788:  CPP comments are not allowed in Platform.h, please use C comments /* ... */  [build/cpp_comment] [5]
Total errors found: 4 in 5 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1337797</commentid>
    <comment_count>12</comment_count>
      <attachid>317903</attachid>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2017-08-10 19:31:26 -0700</bug_when>
    <thetext>Created attachment 317903
patch for landing w/ Windows fix.

Thanks for the review.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1337800</commentid>
    <comment_count>13</comment_count>
    <who name="Build Bot">buildbot</who>
    <bug_when>2017-08-10 19:34:12 -0700</bug_when>
    <thetext>Attachment 317903 did not pass style-queue:


ERROR: Source/JavaScriptCore/assembler/MacroAssemblerPrinter.cpp:55:  preprocessor directives (e.g., #ifdef, #define, #import) should never be indented.  [whitespace/indent] [4]
ERROR: Source/JavaScriptCore/assembler/MacroAssemblerPrinter.cpp:57:  preprocessor directives (e.g., #ifdef, #define, #import) should never be indented.  [whitespace/indent] [4]
ERROR: Source/WTF/wtf/Platform.h:785:  CPP comments are not allowed in Platform.h, please use C comments /* ... */  [build/cpp_comment] [5]
ERROR: Source/WTF/wtf/Platform.h:788:  CPP comments are not allowed in Platform.h, please use C comments /* ... */  [build/cpp_comment] [5]
Total errors found: 4 in 5 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1337832</commentid>
    <comment_count>14</comment_count>
      <attachid>317903</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-08-10 22:31:35 -0700</bug_when>
    <thetext>Comment on attachment 317903
patch for landing w/ Windows fix.

Clearing flags on attachment: 317903

Committed r220579: &lt;http://trac.webkit.org/changeset/220579&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1337833</commentid>
    <comment_count>15</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-08-10 22:31:37 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1337860</commentid>
    <comment_count>16</comment_count>
    <who name="Carlos Alberto Lopez Perez">clopez</who>
    <bug_when>2017-08-11 03:39:40 -0700</bug_when>
    <thetext>(In reply to WebKit Commit Bot from comment #14)
&gt; Comment on attachment 317903 [details]
&gt; patch for landing w/ Windows fix.
&gt; 
&gt; Clearing flags on attachment: 317903
&gt; 
&gt; Committed r220579: &lt;http://trac.webkit.org/changeset/220579&gt;

It seems this broke the build on WebKitGTK+ x86 (32-bits):

/tmp/cc52ttH2.s: Assembler messages:
/tmp/cc52ttH2.s:6: Error: no such instruction: `pushfd&apos;
/tmp/cc52ttH2.s:88: Error: no such instruction: `popfd&apos;

https://build.webkit.org/builders/GTK%20Linux%2032-bit%20Release/builds/3262/steps/compile-webkit/logs/stdio/text</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1337883</commentid>
    <comment_count>17</comment_count>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2017-08-11 07:32:04 -0700</bug_when>
    <thetext>(In reply to Carlos Alberto Lopez Perez from comment #16)
&gt; (In reply to WebKit Commit Bot from comment #14)
&gt; &gt; Comment on attachment 317903 [details]
&gt; &gt; patch for landing w/ Windows fix.
&gt; &gt; 
&gt; &gt; Clearing flags on attachment: 317903
&gt; &gt; 
&gt; &gt; Committed r220579: &lt;http://trac.webkit.org/changeset/220579&gt;
&gt; 
&gt; It seems this broke the build on WebKitGTK+ x86 (32-bits):
&gt; 
&gt; /tmp/cc52ttH2.s: Assembler messages:
&gt; /tmp/cc52ttH2.s:6: Error: no such instruction: `pushfd&apos;
&gt; /tmp/cc52ttH2.s:88: Error: no such instruction: `popfd&apos;
&gt; 
&gt; https://build.webkit.org/builders/GTK%20Linux%2032-bit%20Release/builds/3262/
&gt; steps/compile-webkit/logs/stdio/text

According to https://en.wikipedia.org/wiki/X86_instruction_listings, pushfd and popfd have been valid x86 instructions since the 80386.  This looks like a gad (or whatever assembler you&apos;re using) issue.  I don&apos;t have access to a GTK machine.  Can you or someone on the GTK side look into what the issue is and file a new bug to fix it?  Please cc me so that I can review the fix.  Thanks.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1337899</commentid>
    <comment_count>18</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2017-08-11 08:44:56 -0700</bug_when>
    <thetext>Committed r220592: &lt;http://trac.webkit.org/changeset/220592&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1337903</commentid>
    <comment_count>19</comment_count>
    <who name="Ryan Haddad">ryanhaddad</who>
    <bug_when>2017-08-11 09:32:58 -0700</bug_when>
    <thetext>(In reply to WebKit Commit Bot from comment #14)
&gt; Comment on attachment 317903 [details]
&gt; patch for landing w/ Windows fix.
&gt; 
&gt; Clearing flags on attachment: 317903
&gt; 
&gt; Committed r220579: &lt;http://trac.webkit.org/changeset/220579&gt;
This change also broke CLoop and Windows Debug builds:
https://build.webkit.org/builders/Apple%20Sierra%20LLINT%20CLoop%20%28BuildAndTest%29/builds/4349

https://build.webkit.org/builders/Apple%20Win%20Debug%20%28Build%29/builds/3281</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1337909</commentid>
    <comment_count>20</comment_count>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2017-08-11 09:55:37 -0700</bug_when>
    <thetext>CLoop build fix landed in r220600: &lt;http://trac.webkit.org/r220600&gt;.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1338136</commentid>
    <comment_count>21</comment_count>
    <who name="Csaba Osztrogonác">ossy</who>
    <bug_when>2017-08-12 04:44:44 -0700</bug_when>
    <thetext>FYI, it broke the AArch64 Linux build. MacroAssemblerARM64.cpp wasn&apos;t added
to the cmake build system and after adding it, I got the following error:

{standard input}:34: Error: operand 2 should be an integer register -- `stp x28,fp,[sp,#((2*8)+(28*8))]&apos;
{standard input}:37: Error: operand 1 should be an integer register -- `str lr,[sp,#((((2*8)+(35*8))+(32*8))+(0*8))]&apos;
{standard input}:38: Error: operand 1 should be an integer or stack pointer register -- `add lr,lr,#2*8&apos;
{standard input}:39: Error: operand 1 should be an integer register -- `str lr,[sp,#((2*8)+(32*8))]&apos;
{standard input}:94: Error: operand 1 should be an integer register -- `mov lr,#0&apos;
{standard input}:104: Error: operand 1 should be an integer register -- `mov lr,#1&apos;
{standard input}:106: Error: operand 1 should be an integer register -- `ldr fp,[sp,#((((2*8)+(35*8))+(32*8))+(0*8))]&apos;
{standard input}:114: Error: operand 1 should be an integer register -- `str lr,[sp,#((2*8)+(0*8))]&apos;
{standard input}:115: Error: operand 2 should be an integer register -- `ldp x28,lr,[x27,#((2*8)+(27*8))]&apos;
{standard input}:116: Error: operand 2 should be an integer register -- `stp x28,lr,[sp,#((2*8)+(27*8))]&apos;
{standard input}:117: Error: operand 2 should be an integer register -- `ldp x28,lr,[x27,#((2*8)+(29*8))]&apos;
{standard input}:118: Error: operand 2 should be an integer register -- `stp x28,lr,[sp,#((2*8)+(29*8))]&apos;
{standard input}:119: Error: operand 2 should be an integer register -- `ldp x28,lr,[x27,#((2*8)+(31*8))]&apos;
{standard input}:120: Error: operand 2 should be an integer register -- `stp x28,lr,[sp,#((2*8)+(31*8))]&apos;
{standard input}:121: Error: operand 2 should be an integer register -- `ldp x28,lr,[x27,#((2*8)+(33*8))]&apos;
{standard input}:122: Error: operand 2 should be an integer register -- `stp x28,lr,[sp,#((2*8)+(33*8))]&apos;
{standard input}:123: Error: operand 1 should be an integer register -- `ldr lr,[sp,#((2*8)+(0*8))]&apos;
{standard input}:125: Error: operand 1 should be an integer register -- `cbnz lr,.LctiMasmProbeTrampolineEnd&apos;
{standard input}:126: Error: operand 1 should be an integer register -- `ldr lr,[sp,#((2*8)+(31*8))]&apos;
{standard input}:127: Error: operand 1 should be an integer or stack pointer register -- `sub lr,lr,#(6*8)&apos;
{standard input}:129: Error: integer 64-bit register expected at operand 2 -- `str x27,[lr,#(5*8)]&apos;
{standard input}:130: Error: operand 1 should be an integer register -- `str lr,[sp,#((2*8)+(31*8))]&apos;
{standard input}:131: Error: operand 1 should be an integer register -- `str fp,[sp,#((2*8)+(32*8))]&apos;
{standard input}:133: Error: operand 1 should be an integer register -- `ldr lr,[sp,#((2*8)+(31*8))]&apos;
{standard input}:134: Error: operand 1 should be an integer or stack pointer register -- `sub lr,lr,#(6*8)&apos;
{standard input}:136: Error: integer 64-bit register expected at operand 3 -- `stp x27,x28,[lr,#(0*8)]&apos;
{standard input}:138: Error: integer 64-bit register expected at operand 3 -- `stp x27,x28,[lr,#(2*8)]&apos;
{standard input}:141: Error: integer 64-bit register expected at operand 3 -- `stp x27,x28,[lr,#(4*8)]&apos;
{standard input}:147: Error: operand 1 should be a floating-point register -- `ldp fp,lr,[sp],#2*8&apos;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1338137</commentid>
    <comment_count>22</comment_count>
    <who name="Csaba Osztrogonác">ossy</who>
    <bug_when>2017-08-12 04:45:36 -0700</bug_when>
    <thetext>note: we don&apos;t have ARM buildbots for a while because of bug174993</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1338138</commentid>
    <comment_count>23</comment_count>
    <who name="Csaba Osztrogonác">ossy</who>
    <bug_when>2017-08-12 05:00:32 -0700</bug_when>
    <thetext>and it broke the ARMv7 (traditional) build too:
../../Source/JavaScriptCore/assembler/MacroAssemblerARM.cpp:203:1: error: static assertion failed: ProbeContext_size_matches_ctiMasmProbeTrampoline</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1338139</commentid>
    <comment_count>24</comment_count>
    <who name="Csaba Osztrogonác">ossy</who>
    <bug_when>2017-08-12 05:04:56 -0700</bug_when>
    <thetext>and it broke the GTK&apos;s ARM build too (maybe ARMv7 Thumb2):

/tmp/cco6SOuf.s: Assembler messages:
/tmp/cco6SOuf.s:48: Error: VFP single precision register expected -- `vstmia.64 ip!,{ d16-d31 }&apos;
/tmp/cco6SOuf.s:55: Error: VFP single precision register expected -- `vldmdb.64 ip!,{ d16-d31 }&apos;
/tmp/cco6SOuf.s:88: writing to APSR without specifying a bitmask is deprecated</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1338147</commentid>
    <comment_count>25</comment_count>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2017-08-12 08:33:27 -0700</bug_when>
    <thetext>(In reply to Csaba Osztrogonác_OOO_until_21st_Aug from comment #21)
&gt; FYI, it broke the AArch64 Linux build. MacroAssemblerARM64.cpp wasn&apos;t added
&gt; to the cmake build system and after adding it, I got the following error:
...

Will fix in https://bugs.webkit.org/show_bug.cgi?id=175512</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1338153</commentid>
    <comment_count>26</comment_count>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2017-08-12 10:36:20 -0700</bug_when>
    <thetext>(In reply to Csaba Osztrogonác_OOO_until_21st_Aug from comment #23)
&gt; and it broke the ARMv7 (traditional) build too:
&gt; ../../Source/JavaScriptCore/assembler/MacroAssemblerARM.cpp:203:1: error:
&gt; static assertion failed: ProbeContext_size_matches_ctiMasmProbeTrampoline

Let&apos;s address this in https://bugs.webkit.org/show_bug.cgi?id=175513.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1338155</commentid>
    <comment_count>27</comment_count>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2017-08-12 10:57:29 -0700</bug_when>
    <thetext>(In reply to Csaba Osztrogonác_OOO_until_21st_Aug from comment #24)
&gt; and it broke the GTK&apos;s ARM build too (maybe ARMv7 Thumb2):
&gt; 
&gt; /tmp/cco6SOuf.s: Assembler messages:
&gt; /tmp/cco6SOuf.s:48: Error: VFP single precision register expected --
&gt; `vstmia.64 ip!,{ d16-d31 }&apos;
&gt; /tmp/cco6SOuf.s:55: Error: VFP single precision register expected --
&gt; `vldmdb.64 ip!,{ d16-d31 }&apos;
&gt; /tmp/cco6SOuf.s:88: writing to APSR without specifying a bitmask is
&gt; deprecated

Let&apos;s address these in https://bugs.webkit.org/show_bug.cgi?id=175514.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1338227</commentid>
    <comment_count>28</comment_count>
    <who name="Carlos Alberto Lopez Perez">clopez</who>
    <bug_when>2017-08-13 05:08:10 -0700</bug_when>
    <thetext>(In reply to Csaba Osztrogonác_OOO_until_21st_Aug from comment #24)
&gt; and it broke the GTK&apos;s ARM build too (maybe ARMv7 Thumb2):
&gt; 
&gt; /tmp/cco6SOuf.s: Assembler messages:
&gt; /tmp/cco6SOuf.s:48: Error: VFP single precision register expected --
&gt; `vstmia.64 ip!,{ d16-d31 }&apos;
&gt; /tmp/cco6SOuf.s:55: Error: VFP single precision register expected --
&gt; `vldmdb.64 ip!,{ d16-d31 }&apos;
&gt; /tmp/cco6SOuf.s:88: writing to APSR without specifying a bitmask is
&gt; deprecated

GTK+ ARMv7 build is Thumb2.

Is JSCOnly thumb2 working?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1338230</commentid>
    <comment_count>29</comment_count>
    <who name="Csaba Osztrogonác">ossy</who>
    <bug_when>2017-08-13 06:43:11 -0700</bug_when>
    <thetext>(In reply to Carlos Alberto Lopez Perez from comment #28)
&gt; (In reply to Csaba Osztrogonác_OOO_until_21st_Aug from comment #24)
&gt; &gt; and it broke the GTK&apos;s ARM build too (maybe ARMv7 Thumb2):
&gt; &gt; 
&gt; &gt; /tmp/cco6SOuf.s: Assembler messages:
&gt; &gt; /tmp/cco6SOuf.s:48: Error: VFP single precision register expected --
&gt; &gt; `vstmia.64 ip!,{ d16-d31 }&apos;
&gt; &gt; /tmp/cco6SOuf.s:55: Error: VFP single precision register expected --
&gt; &gt; `vldmdb.64 ip!,{ d16-d31 }&apos;
&gt; &gt; /tmp/cco6SOuf.s:88: writing to APSR without specifying a bitmask is
&gt; &gt; deprecated
&gt; 
&gt; GTK+ ARMv7 build is Thumb2.
&gt; 
&gt; Is JSCOnly thumb2 working?

Yes, it works fine:
https://build.webkit.org/builders/JSCOnly%20Linux%20ARMv7%20Thumb2%20Release/builds/1428

We use GCC 5.2.0 on it (custom cross compiler built with crosstool-ng) 
with the following options set by default:
-mthumb
-mthumb-interwork 
-march=armv7-a
-mtune=cortex-a15
-mfpu=neon-vfpv4</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1338364</commentid>
    <comment_count>30</comment_count>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2017-08-14 09:43:12 -0700</bug_when>
    <thetext>Speculative fix for Windows build landed in r220701: &lt;http://trac.webkit.org/r220701&gt;.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1339318</commentid>
    <comment_count>31</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2017-08-16 15:30:02 -0700</bug_when>
    <thetext>Looks like this broke the GTK build: https://build.webkit.org/builders/GTK%20Linux%20ARM%20Release/builds/855</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1339348</commentid>
    <comment_count>32</comment_count>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2017-08-16 16:31:07 -0700</bug_when>
    <thetext>(In reply to Simon Fraser (smfr) from comment #31)
&gt; Looks like this broke the GTK build:
&gt; https://build.webkit.org/builders/GTK%20Linux%20ARM%20Release/builds/855

This issue is tracked in https://bugs.webkit.org/show_bug.cgi?id=175514.

For now, to green the bot, I&apos;ve disabled the DFG for GTK ARM_THUMB2 in r220816: &lt;http://trac.webkit.org/r220816&gt;.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>317862</attachid>
            <date>2017-08-10 15:39:56 -0700</date>
            <delta_ts>2017-08-10 15:57:59 -0700</delta_ts>
            <desc>proposed patch.</desc>
            <filename>bug-175446.patch</filename>
            <type>text/plain</type>
            <size>15990</size>
            <attacher name="Mark Lam">mark.lam</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMjIwNTUxKQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDM3IEBA
CisyMDE3LTA4LTEwICBNYXJrIExhbSAgPG1hcmsubGFtQGFwcGxlLmNvbT4KKworICAgICAgICBN
YWtlIHRoZSBNQVNNX1BST0JFIG1lY2hhbmlzbSBtYW5kYXRvcnkgZm9yIERGRyBhbmQgRlRMIGJ1
aWxkcy4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE3
NTQ0NgorICAgICAgICA8cmRhcjovL3Byb2JsZW0vMzM4MzY1NDU+CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBhc3NlbWJsZXIvQWJzdHJhY3RNYWNy
b0Fzc2VtYmxlci5oOgorICAgICAgICAqIGFzc2VtYmxlci9NYWNyb0Fzc2VtYmxlci5jcHA6Cisg
ICAgICAgIChKU0M6Ok1hY3JvQXNzZW1ibGVyOjpwcm9iZSk6CisgICAgICAgICogYXNzZW1ibGVy
L01hY3JvQXNzZW1ibGVyLmg6CisgICAgICAgICogYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyQVJN
LmNwcDoKKyAgICAgICAgKEpTQzo6TWFjcm9Bc3NlbWJsZXI6OnByb2JlKToKKyAgICAgICAgKiBh
c3NlbWJsZXIvTWFjcm9Bc3NlbWJsZXJBUk0uaDoKKyAgICAgICAgKEpTQzo6TWFjcm9Bc3NlbWJs
ZXJBUk06OnRydXN0ZWRJbW0zMkZyb21QdHIpOgorICAgICAgICAqIGFzc2VtYmxlci9NYWNyb0Fz
c2VtYmxlckFSTTY0LmNwcDoKKyAgICAgICAgKEpTQzo6TWFjcm9Bc3NlbWJsZXI6OnByb2JlKToK
KyAgICAgICAgKiBhc3NlbWJsZXIvTWFjcm9Bc3NlbWJsZXJBUk12Ny5jcHA6CisgICAgICAgIChK
U0M6Ok1hY3JvQXNzZW1ibGVyOjpwcm9iZSk6CisgICAgICAgICogYXNzZW1ibGVyL01hY3JvQXNz
ZW1ibGVyQVJNdjcuaDoKKyAgICAgICAgKEpTQzo6TWFjcm9Bc3NlbWJsZXJBUk12Nzo6dHJ1c3Rl
ZEltbTMyRnJvbVB0cik6CisgICAgICAgICogYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyUHJpbnRl
ci5jcHA6CisgICAgICAgICogYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyUHJpbnRlci5oOgorICAg
ICAgICAqIGFzc2VtYmxlci9NYWNyb0Fzc2VtYmxlclg4NkNvbW1vbi5jcHA6CisgICAgICAgICog
YXNzZW1ibGVyL3Rlc3RtYXNtLmNwcDoKKyAgICAgICAgKEpTQzo6aXNTcGVjaWFsR1BSKToKKyAg
ICAgICAgKEpTQzo6dGVzdFByb2JlTW9kaWZpZXNQcm9ncmFtQ291bnRlcik6CisgICAgICAgIChK
U0M6OnJ1bik6CisgICAgICAgICogYjMvQjNMb3dlclRvQWlyLmNwcDoKKyAgICAgICAgKEpTQzo6
QjM6OkFpcjo6TG93ZXJUb0Fpcjo6cHJpbnQpOgorICAgICAgICAqIGIzL2Fpci9BaXJQcmludFNw
ZWNpYWwuY3BwOgorICAgICAgICAqIGIzL2Fpci9BaXJQcmludFNwZWNpYWwuaDoKKwogMjAxNy0w
OC0wOSAgWXVzdWtlIFN1enVraSAgPHV0YXRhbmUudGVhQGdtYWlsLmNvbT4KIAogICAgICAgICBb
V1RGXSBUaHJlYWRTcGVjaWZpYyBzaG91bGQgbm90IGludHJvZHVjZSBhZGRpdGlvbmFsIGluZGly
ZWN0aW9uCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL0Fic3RyYWN0TWFj
cm9Bc3NlbWJsZXIuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1i
bGVyL0Fic3RyYWN0TWFjcm9Bc3NlbWJsZXIuaAkocmV2aXNpb24gMjIwNTQ5KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9BYnN0cmFjdE1hY3JvQXNzZW1ibGVyLmgJKHdvcmtp
bmcgY29weSkKQEAgLTQzLDEwICs0Myw4IEBAIG5hbWVzcGFjZSBKU0MgewogCiAjaWYgRU5BQkxF
KEFTU0VNQkxFUikKIAotI2lmIEVOQUJMRShNQVNNX1BST0JFKQogc3RydWN0IFByb2JlQ29udGV4
dDsKIHR5cGVkZWYgdm9pZCAoKlByb2JlRnVuY3Rpb24pKHN0cnVjdCBQcm9iZUNvbnRleHQqKTsK
LSNlbmRpZgogICAgIAogY2xhc3MgQWxsb3dNYWNyb1NjcmF0Y2hSZWdpc3RlclVzYWdlOwogY2xh
c3MgRGlzYWxsb3dNYWNyb1NjcmF0Y2hSZWdpc3RlclVzYWdlOwpJbmRleDogU291cmNlL0phdmFT
Y3JpcHRDb3JlL2Fzc2VtYmxlci9NYWNyb0Fzc2VtYmxlci5jcHAKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9NYWNyb0Fzc2VtYmxlci5jcHAJKHJldmlzaW9u
IDIyMDU0OSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvTWFjcm9Bc3NlbWJs
ZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zNCw3ICszNCw2IEBAIG5hbWVzcGFjZSBKU0Mgewog
CiBjb25zdCBkb3VibGUgTWFjcm9Bc3NlbWJsZXI6OnR3b1RvVGhlMzIgPSAoZG91YmxlKTB4MTAw
MDAwMDAwdWxsOwogCi0jaWYgRU5BQkxFKE1BU01fUFJPQkUpCiBzdGF0aWMgdm9pZCBzdGRGdW5j
dGlvbkNhbGxiYWNrKFByb2JlQ29udGV4dCogY29udGV4dCkKIHsKICAgICBhdXRvIGZ1bmMgPSBz
dGF0aWNfY2FzdDxjb25zdCBzdGQ6OmZ1bmN0aW9uPHZvaWQoUHJvYmVDb250ZXh0Kik+Kj4oY29u
dGV4dC0+YXJnKTsKQEAgLTQ1LDcgKzQ0LDYgQEAgdm9pZCBNYWNyb0Fzc2VtYmxlcjo6cHJvYmUo
c3RkOjpmdW5jdGlvbgogewogICAgIHByb2JlKHN0ZEZ1bmN0aW9uQ2FsbGJhY2ssIG5ldyBzdGQ6
OmZ1bmN0aW9uPHZvaWQoUHJvYmVDb250ZXh0Kik+KGZ1bmMpKTsKIH0KLSNlbmRpZiAvLyBFTkFC
TEUoTUFTTV9QUk9CRSkKIAogfSAvLyBuYW1lc3BhY2UgSlNDCiAKSW5kZXg6IFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9hc3NlbWJsZXIvTWFjcm9Bc3NlbWJsZXIuaAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyLmgJKHJldmlzaW9uIDIy
MDU0OSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvTWFjcm9Bc3NlbWJsZXIu
aAkod29ya2luZyBjb3B5KQpAQCAtMTgyNCw3ICsxODI0LDYgQEAgcHVibGljOgogICAgICAgICB1
cnNoaWZ0MzIoc3JjLCB0cnVzdGVkSW1tMzJGb3JTaGlmdChhbW91bnQpLCBkZXN0KTsKICAgICB9
CiAKLSNpZiBFTkFCTEUoTUFTTV9QUk9CRSkKICAgICBzdHJ1Y3QgQ1BVU3RhdGU7CiAKICAgICAv
LyBUaGlzIGZ1bmN0aW9uIGVtaXRzIGNvZGUgdG8gcHJlc2VydmUgdGhlIENQVVN0YXRlIChlLmcu
IHJlZ2lzdGVycyksCkBAIC0xODQ4LDEwICsxODQ3LDggQEAgcHVibGljOgogICAgIHZvaWQgcHJv
YmUoUHJvYmVGdW5jdGlvbiwgdm9pZCogYXJnKTsKIAogICAgIEpTX0VYUE9SVF9QUklWQVRFIHZv
aWQgcHJvYmUoc3RkOjpmdW5jdGlvbjx2b2lkKFByb2JlQ29udGV4dCopPik7Ci0jZW5kaWYgLy8g
RU5BQkxFKE1BU01fUFJPQkUpCiAKICAgICAvLyBMZXQncyB5b3UgcHJpbnQgZnJvbSB5b3VyIEpJ
VCBnZW5lcmF0ZWQgY29kZS4KLSAgICAvLyBUaGlzIG9ubHkgd29ya3MgaWYgRU5BQkxFKE1BU01f
UFJPQkUpLiBPdGhlcndpc2UsIHByaW50KCkgaXMgYSBuby1vcC4KICAgICAvLyBTZWUgY29tbWVu
dHMgaW4gTWFjcm9Bc3NlbWJsZXJQcmludGVyLmggZm9yIGV4YW1wbGVzIG9mIGhvdyB0byB1c2Ug
dGhpcy4KICAgICB0ZW1wbGF0ZTx0eXBlbmFtZS4uLiBBcmd1bWVudHM+CiAgICAgdm9pZCBwcmlu
dChBcmd1bWVudHMmJi4uLiBhcmdzKTsKQEAgLTE4NTksOCArMTg1Niw2IEBAIHB1YmxpYzoKICAg
ICB2b2lkIHByaW50KFByaW50ZXI6OlByaW50UmVjb3JkTGlzdCopOwogfTsKIAotI2lmIEVOQUJM
RShNQVNNX1BST0JFKQotCiBzdHJ1Y3QgTWFjcm9Bc3NlbWJsZXI6OkNQVVN0YXRlIHsKICAgICBz
dGF0aWMgaW5saW5lIGNvbnN0IGNoYXIqIGdwck5hbWUoUmVnaXN0ZXJJRCBpZCkgeyByZXR1cm4g
TWFjcm9Bc3NlbWJsZXI6Omdwck5hbWUoaWQpOyB9CiAgICAgc3RhdGljIGlubGluZSBjb25zdCBj
aGFyKiBzcHJOYW1lKFNQUmVnaXN0ZXJJRCBpZCkgeyByZXR1cm4gTWFjcm9Bc3NlbWJsZXI6OnNw
ck5hbWUoaWQpOyB9CkBAIC0xOTYzLDcgKzE5NTgsNiBAQCBzdHJ1Y3QgUHJvYmVDb250ZXh0IHsK
ICAgICB2b2lkKiYgZnAoKSB7IHJldHVybiBjcHUuZnAoKTsgfQogICAgIHZvaWQqJiBzcCgpIHsg
cmV0dXJuIGNwdS5zcCgpOyB9CiB9OwotI2VuZGlmIC8vIEVOQUJMRShNQVNNX1BST0JFKQogICAg
IAogfSAvLyBuYW1lc3BhY2UgSlNDCiAKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3Nl
bWJsZXIvTWFjcm9Bc3NlbWJsZXJBUk02NC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFT
Y3JpcHRDb3JlL2Fzc2VtYmxlci9NYWNyb0Fzc2VtYmxlckFSTTY0LmNwcAkocmV2aXNpb24gMjIw
NTQ5KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9NYWNyb0Fzc2VtYmxlckFS
TTY0LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzIsOCArMzIsNiBAQAogCiBuYW1lc3BhY2UgSlND
IHsKIAotI2lmIEVOQUJMRShNQVNNX1BST0JFKQotCiBleHRlcm4gIkMiIHZvaWQgY3RpTWFzbVBy
b2JlVHJhbXBvbGluZSgpOwogCiB1c2luZyBuYW1lc3BhY2UgQVJNNjRSZWdpc3RlcnM7CkBAIC01
NTEsNyArNTQ5LDYgQEAgdm9pZCBNYWNyb0Fzc2VtYmxlcjo6cHJvYmUoUHJvYmVGdW5jdGlvbgog
ICAgIGxvYWQ2NChBZGRyZXNzKHNwLCBvZmZzZXRvZihPdXRnb2luZ1Byb2JlUmVjb3JkLCBscikp
LCBscik7CiAgICAgYWRkNjQoVHJ1c3RlZEltbTMyKHNpemVvZihPdXRnb2luZ1Byb2JlUmVjb3Jk
KSksIHNwKTsKIH0KLSNlbmRpZiAvLyBFTkFCTEUoTUFTTV9QUk9CRSkKIAogfSAvLyBuYW1lc3Bh
Y2UgSlNDCiAKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvTWFjcm9Bc3Nl
bWJsZXJBUk0uY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJs
ZXIvTWFjcm9Bc3NlbWJsZXJBUk0uY3BwCShyZXZpc2lvbiAyMjA1NDkpCisrKyBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyQVJNLmNwcAkod29ya2luZyBjb3B5
KQpAQCAtOTYsOCArOTYsNiBAQCB2b2lkIE1hY3JvQXNzZW1ibGVyQVJNOjpsb2FkMzJXaXRoVW5h
bGlnCiB9CiAjZW5kaWYgLy8gQ1BVKEFSTVY1X09SX0xPV0VSKQogCi0jaWYgRU5BQkxFKE1BU01f
UFJPQkUpCi0KIGV4dGVybiAiQyIgdm9pZCBjdGlNYXNtUHJvYmVUcmFtcG9saW5lKCk7CiAKICNp
ZiBDT01QSUxFUihHQ0NfT1JfQ0xBTkcpCkBAIC0zODIsNyArMzgwLDYgQEAgdm9pZCBNYWNyb0Fz
c2VtYmxlcjo6cHJvYmUoUHJvYmVGdW5jdGlvbgogICAgIG1fYXNzZW1ibGVyLmJseChSZWdpc3Rl
cklEOjpTMCk7CiAKIH0KLSNlbmRpZiAvLyBFTkFCTEUoTUFTTV9QUk9CRSkKIAogfSAvLyBuYW1l
c3BhY2UgSlNDCiAKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvTWFjcm9B
c3NlbWJsZXJBUk0uaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1i
bGVyL01hY3JvQXNzZW1ibGVyQVJNLmgJKHJldmlzaW9uIDIyMDU0OSkKKysrIFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9hc3NlbWJsZXIvTWFjcm9Bc3NlbWJsZXJBUk0uaAkod29ya2luZyBjb3B5KQpA
QCAtMTU4Niw3ICsxNTg2LDYgQEAgcHJvdGVjdGVkOgogICAgICAgICBtX2Fzc2VtYmxlci5ibHgo
QVJNUmVnaXN0ZXJzOjpTMSk7CiAgICAgfQogCi0jaWYgRU5BQkxFKE1BU01fUFJPQkUpCiAgICAg
aW5saW5lIFRydXN0ZWRJbW0zMiB0cnVzdGVkSW1tMzJGcm9tUHRyKHZvaWQqIHB0cikKICAgICB7
CiAgICAgICAgIHJldHVybiBUcnVzdGVkSW1tMzIoVHJ1c3RlZEltbVB0cihwdHIpKTsKQEAgLTE2
MDEsNyArMTYwMCw2IEBAIHByb3RlY3RlZDoKICAgICB7CiAgICAgICAgIHJldHVybiBUcnVzdGVk
SW1tMzIoVHJ1c3RlZEltbVB0cihyZWludGVycHJldF9jYXN0PHZvaWQqPihmdW5jdGlvbikpKTsK
ICAgICB9Ci0jZW5kaWYKIAogcHJpdmF0ZToKICAgICBmcmllbmQgY2xhc3MgTGlua0J1ZmZlcjsK
SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvTWFjcm9Bc3NlbWJsZXJBUk12
Ny5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9NYWNy
b0Fzc2VtYmxlckFSTXY3LmNwcAkocmV2aXNpb24gMjIwNTQ5KQorKysgU291cmNlL0phdmFTY3Jp
cHRDb3JlL2Fzc2VtYmxlci9NYWNyb0Fzc2VtYmxlckFSTXY3LmNwcAkod29ya2luZyBjb3B5KQpA
QCAtMzIsOCArMzIsNiBAQAogCiBuYW1lc3BhY2UgSlNDIHsKIAotI2lmIEVOQUJMRShNQVNNX1BS
T0JFKQotCiBleHRlcm4gIkMiIHZvaWQgY3RpTWFzbVByb2JlVHJhbXBvbGluZSgpOwogCiAjaWYg
Q09NUElMRVIoR0NDX09SX0NMQU5HKQpAQCAtMzU5LDcgKzM1Nyw2IEBAIHZvaWQgTWFjcm9Bc3Nl
bWJsZXI6OnByb2JlKFByb2JlRnVuY3Rpb24KICAgICBtb3ZlKHRydXN0ZWRJbW0zMkZyb21QdHIo
Y3RpTWFzbVByb2JlVHJhbXBvbGluZSksIFJlZ2lzdGVySUQ6OmlwKTsKICAgICBtX2Fzc2VtYmxl
ci5ibHgoUmVnaXN0ZXJJRDo6aXApOwogfQotI2VuZGlmIC8vIEVOQUJMRShNQVNNX1BST0JFKQog
CiB9IC8vIG5hbWVzcGFjZSBKU0MKIApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2Vt
Ymxlci9NYWNyb0Fzc2VtYmxlckFSTXY3LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3Jp
cHRDb3JlL2Fzc2VtYmxlci9NYWNyb0Fzc2VtYmxlckFSTXY3LmgJKHJldmlzaW9uIDIyMDU0OSkK
KysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvTWFjcm9Bc3NlbWJsZXJBUk12Ny5o
CSh3b3JraW5nIGNvcHkpCkBAIC0yMTA3LDcgKzIxMDcsNiBAQCBwcm90ZWN0ZWQ6CiAgICAgICAg
IHJldHVybiBzdGF0aWNfY2FzdDxBUk12N0Fzc2VtYmxlcjo6Q29uZGl0aW9uPihjb25kKTsKICAg
ICB9CiAgICAgCi0jaWYgRU5BQkxFKE1BU01fUFJPQkUpCiAgICAgaW5saW5lIFRydXN0ZWRJbW0z
MiB0cnVzdGVkSW1tMzJGcm9tUHRyKHZvaWQqIHB0cikKICAgICB7CiAgICAgICAgIHJldHVybiBU
cnVzdGVkSW1tMzIoVHJ1c3RlZEltbVB0cihwdHIpKTsKQEAgLTIxMjIsNyArMjEyMSw2IEBAIHBy
b3RlY3RlZDoKICAgICB7CiAgICAgICAgIHJldHVybiBUcnVzdGVkSW1tMzIoVHJ1c3RlZEltbVB0
cihyZWludGVycHJldF9jYXN0PHZvaWQqPihmdW5jdGlvbikpKTsKICAgICB9Ci0jZW5kaWYKIAog
cHJpdmF0ZToKICAgICBmcmllbmQgY2xhc3MgTGlua0J1ZmZlcjsKSW5kZXg6IFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9hc3NlbWJsZXIvTWFjcm9Bc3NlbWJsZXJQcmludGVyLmNwcAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyUHJpbnRl
ci5jcHAJKHJldmlzaW9uIDIyMDU0OSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJs
ZXIvTWFjcm9Bc3NlbWJsZXJQcmludGVyLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjYsOCArMjYs
NiBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIk1hY3JvQXNzZW1ibGVyUHJpbnRl
ci5oIgogCi0jaWYgRU5BQkxFKE1BU01fUFJPQkUpCi0KICNpbmNsdWRlICJNYWNyb0Fzc2VtYmxl
ci5oIgogCiBuYW1lc3BhY2UgSlNDIHsKQEAgLTE4Myw0ICsxODEsMyBAQCB2b2lkIHByaW50Q2Fs
bGJhY2soUHJvYmVDb250ZXh0KiBwcm9iZUNvCiB9IC8vIG5hbWVzcGFjZSBQcmludGVyCiB9IC8v
IG5hbWVzcGFjZSBKU0MKIAotI2VuZGlmIC8vIEVOQUJMRShNQVNNX1BST0JFKQpJbmRleDogU291
cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9NYWNyb0Fzc2VtYmxlclByaW50ZXIuaAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVy
UHJpbnRlci5oCShyZXZpc2lvbiAyMjA1NDkpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNz
ZW1ibGVyL01hY3JvQXNzZW1ibGVyUHJpbnRlci5oCSh3b3JraW5nIGNvcHkpCkBAIC0zMiw4ICsz
Miw2IEBAIG5hbWVzcGFjZSBKU0MgewogCiAjaWYgRU5BQkxFKEFTU0VNQkxFUikKIAotI2lmIEVO
QUJMRShNQVNNX1BST0JFKQotICAgIAogLy8gV2hhdCBpcyBNYWNyb0Fzc2VtYmxlcjo6cHJpbnQo
KT8KIC8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KIC8vIFRoZSBNYWNyb0Fzc3Nl
bWJsZXI6OnByaW50KCkgbWFrZXMgaXQgZWFzeSB0byBhZGQgcHJpbnQgbG9nZ2luZwpAQCAtMjQw
LDE1ICsyMzgsNiBAQCBpbmxpbmUgdm9pZCBNYWNyb0Fzc2VtYmxlcjo6cHJpbnQoUHJpbnRlCiAg
ICAgcHJvYmUoUHJpbnRlcjo6cHJpbnRDYWxsYmFjaywgcHJpbnRSZWNvcmRMaXN0KTsKIH0KIAot
I2Vsc2UgLy8gRU5BQkxFKE1BU01fUFJPQkUpCi0KLXRlbXBsYXRlPHR5cGVuYW1lLi4uIEFyZ3Vt
ZW50cz4KLWlubGluZSB2b2lkIE1hY3JvQXNzZW1ibGVyOjpwcmludChBcmd1bWVudHMmJi4uLikg
eyB9Ci0KLWlubGluZSB2b2lkIE1hY3JvQXNzZW1ibGVyOjpwcmludChQcmludGVyOjpQcmludFJl
Y29yZExpc3QqKSB7IH0KLQotI2VuZGlmIC8vIEVOQUJMRShNQVNNX1BST0JFKQotCiAjZW5kaWYg
Ly8gRU5BQkxFKEFTU0VNQkxFUikKIAogfSAvLyBuYW1lc3BhY2UgSlNDCkluZGV4OiBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyWDg2Q29tbW9uLmNwcAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVy
WDg2Q29tbW9uLmNwcAkocmV2aXNpb24gMjIwNTQ5KQorKysgU291cmNlL0phdmFTY3JpcHRDb3Jl
L2Fzc2VtYmxlci9NYWNyb0Fzc2VtYmxlclg4NkNvbW1vbi5jcHAJKHdvcmtpbmcgY29weSkKQEAg
LTMyLDggKzMyLDYgQEAKIAogbmFtZXNwYWNlIEpTQyB7CiAKLSNpZiBFTkFCTEUoTUFTTV9QUk9C
RSkKLQogZXh0ZXJuICJDIiB2b2lkIGN0aU1hc21Qcm9iZVRyYW1wb2xpbmUoKTsKIAogI2lmIENP
TVBJTEVSKEdDQ19PUl9DTEFORykKQEAgLTU3NSw4ICs1NzMsNiBAQCB2b2lkIE1hY3JvQXNzZW1i
bGVyOjpwcm9iZShQcm9iZUZ1bmN0aW9uCiAgICAgY2FsbChSZWdpc3RlcklEOjplYXgpOwogfQog
Ci0jZW5kaWYgLy8gRU5BQkxFKE1BU01fUFJPQkUpCi0KICNpZiBDUFUoWDg2KSAmJiAhT1MoTUFD
X09TX1gpCiBNYWNyb0Fzc2VtYmxlclg4NkNvbW1vbjo6U1NFMkNoZWNrU3RhdGUgTWFjcm9Bc3Nl
bWJsZXJYODZDb21tb246OnNfc3NlMkNoZWNrU3RhdGUgPSBOb3RDaGVja2VkU1NFMjsKICNlbmRp
ZgpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci90ZXN0bWFzbS5jcHAKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci90ZXN0bWFzbS5jcHAJ
KHJldmlzaW9uIDIyMDU0OSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvdGVz
dG1hc20uY3BwCSh3b3JraW5nIGNvcHkpCkBAIC04NSw3ICs4NSw2IEBAIHRlbXBsYXRlPHR5cGVu
YW1lIFQ+IFQgbmV4dElEKFQgaWQpIHsgcmUKICNkZWZpbmUgQ0hFQ0tfRE9VQkxFX0JJVFdJU0Vf
RVEoYSwgYikgXAogICAgIENIRUNLKGJpdHdpc2VfY2FzdDx1aW50NjRfdD4oYSkgPT0gYml0d2lz
ZV9jYXN0PHVpbnQ2NF90PihhKSkKIAotI2lmIEVOQUJMRShNQVNNX1BST0JFKQogYm9vbCBpc1BD
KE1hY3JvQXNzZW1ibGVyOjpSZWdpc3RlcklEIGlkKQogewogI2lmIENQVShBUk1fVEhVTUIyKSB8
fCBDUFUoQVJNX1RSQURJVElPTkFMKQpAQCAtMTE2LDcgKzExNSw2IEBAIGJvb2wgaXNTcGVjaWFs
R1BSKE1hY3JvQXNzZW1ibGVyOjpSZWdpc3QKICNlbmRpZgogICAgIHJldHVybiBmYWxzZTsKIH0K
LSNlbmRpZiAvLyBFTkFCTEUoTUFTTV9QUk9CRSkKIAogTWFjcm9Bc3NlbWJsZXJDb2RlUmVmIGNv
bXBpbGUoR2VuZXJhdG9yJiYgZ2VuZXJhdGUpCiB7CkBAIC0xNDksNyArMTQ3LDYgQEAgdm9pZCB0
ZXN0U2ltcGxlKCkKICAgICB9KSA9PSA0Mik7CiB9CiAKLSNpZiBFTkFCTEUoTUFTTV9QUk9CRSkK
IHZvaWQgdGVzdFByb2JlUmVhZHNBcmd1bWVudFJlZ2lzdGVycygpCiB7CiAgICAgYm9vbCBwcm9i
ZVdhc0NhbGxlZCA9IGZhbHNlOwpAQCAtNDkzLDcgKzQ5MCw2IEBAIHZvaWQgdGVzdFByb2JlTW9k
aWZpZXNQcm9ncmFtQ291bnRlcigpCiAgICAgQ0hFQ0socHJvYmVDYWxsQ291bnQgPT0gMik7CiAg
ICAgQ0hFQ0soY29udGludWF0aW9uV2FzUmVhY2hlZCk7CiB9Ci0jZW5kaWYgLy8gRU5BQkxFKE1B
U01fUFJPQkUpCiAKICNkZWZpbmUgUlVOKHRlc3QpIGRvIHsgICAgICAgICAgICAgICAgICAgICAg
ICAgIFwKICAgICAgICAgaWYgKCFzaG91bGRSdW4oI3Rlc3QpKSAgICAgICAgICAgICAgICAgIFwK
QEAgLTUxOSwxNCArNTE1LDEyIEBAIHZvaWQgcnVuKGNvbnN0IGNoYXIqIGZpbHRlcikKIAogICAg
IFJVTih0ZXN0U2ltcGxlKCkpOwogCi0jaWYgRU5BQkxFKE1BU01fUFJPQkUpCiAgICAgUlVOKHRl
c3RQcm9iZVJlYWRzQXJndW1lbnRSZWdpc3RlcnMoKSk7CiAgICAgUlVOKHRlc3RQcm9iZVdyaXRl
c0FyZ3VtZW50UmVnaXN0ZXJzKCkpOwogICAgIFJVTih0ZXN0UHJvYmVQcmVzZXJ2ZXNHUFJTKCkp
OwogICAgIFJVTih0ZXN0UHJvYmVNb2RpZmllc1N0YWNrUG9pbnRlclRvSW5zaWRlUHJvYmVDb250
ZXh0T25TdGFjaygpKTsKICAgICBSVU4odGVzdFByb2JlTW9kaWZpZXNTdGFja1BvaW50ZXJUb05C
eXRlc0JlbG93U1AoKSk7CiAgICAgUlVOKHRlc3RQcm9iZU1vZGlmaWVzUHJvZ3JhbUNvdW50ZXIo
KSk7Ci0jZW5kaWYKIAogICAgIGlmICh0YXNrcy5pc0VtcHR5KCkpCiAgICAgICAgIHVzYWdlKCk7
CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNMb3dlclRvQWlyLmNwcAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNMb3dlclRvQWlyLmNwcAkocmV2aXNp
b24gMjIwNTQ5KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzTG93ZXJUb0Fpci5jcHAJ
KHdvcmtpbmcgY29weSkKQEAgLTExNDksNyArMTE0OSw2IEBAIHByaXZhdGU6CiAgICAgICAgIHJl
dHVybiBBaXI6Ok9vcHM7CiAgICAgfQogCi0jaWYgRU5BQkxFKE1BU01fUFJPQkUpCiAgICAgdGVt
cGxhdGU8dHlwZW5hbWUuLi4gQXJndW1lbnRzPgogICAgIHZvaWQgcHJpbnQoQXJndW1lbnRzJiYu
Li4gYXJndW1lbnRzKQogICAgIHsKQEAgLTExNjYsMTAgKzExNjUsNiBAQCBwcml2YXRlOgogICAg
ICAgICBQcmludGVyOjphcHBlbmRBaXJBcmdzKGluc3QsIHN0ZDo6Zm9yd2FyZDxBcmd1bWVudHM+
KGFyZ3VtZW50cykuLi4pOwogICAgICAgICBhcHBlbmQoV1RGTW92ZShpbnN0KSk7CiAgICAgfQot
I2Vsc2UKLSAgICB0ZW1wbGF0ZTx0eXBlbmFtZS4uLiBBcmd1bWVudHM+Ci0gICAgdm9pZCBwcmlu
dChBcmd1bWVudHMmJi4uLikgeyB9Ci0jZW5kaWYgLy8gRU5BQkxFKE1BU01fUFJPQkUpCiAKICAg
ICB0ZW1wbGF0ZTx0eXBlbmFtZS4uLiBBcmd1bWVudHM+CiAgICAgdm9pZCBhcHBlbmQoQWlyOjpL
aW5kIGtpbmQsIEFyZ3VtZW50cyYmLi4uIGFyZ3VtZW50cykKSW5kZXg6IFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9iMy9haXIvQWlyUHJpbnRTcGVjaWFsLmNwcAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvYjMvYWlyL0FpclByaW50U3BlY2lhbC5jcHAJKHJldmlzaW9uIDIyMDU0
OSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9haXIvQWlyUHJpbnRTcGVjaWFsLmNwcAko
d29ya2luZyBjb3B5KQpAQCAtMjcsNyArMjcsNiBAQAogI2luY2x1ZGUgIkFpclByaW50U3BlY2lh
bC5oIgogCiAjaWYgRU5BQkxFKEIzX0pJVCkKLSNpZiBFTkFCTEUoTUFTTV9QUk9CRSkKIAogI2lu
Y2x1ZGUgIk1hY3JvQXNzZW1ibGVyUHJpbnRlci5oIgogCkBAIC0xMjUsNSArMTI0LDQgQEAgTk9f
UkVUVVJOIHZvaWQgcHJpbnRBaXJBcmcoUHJpbnRTdHJlYW0mLAogCiB9IC8vIG5hbWVzcGFjZSBK
U0MKIAotI2VuZGlmIC8vIEVOQUJMRShNQVNNX1BST0JFKQogI2VuZGlmIC8vIEVOQUJMRShCM19K
SVQpCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvYWlyL0FpclByaW50U3BlY2lhbC5o
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9haXIvQWlyUHJpbnRTcGVj
aWFsLmgJKHJldmlzaW9uIDIyMDU0OSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9haXIv
QWlyUHJpbnRTcGVjaWFsLmgJKHdvcmtpbmcgY29weSkKQEAgLTI2LDcgKzI2LDYgQEAKICNwcmFn
bWEgb25jZQogCiAjaWYgRU5BQkxFKEIzX0pJVCkKLSNpZiBFTkFCTEUoTUFTTV9QUk9CRSkKIAog
I2luY2x1ZGUgIkFpckluc3QuaCIKICNpbmNsdWRlICJBaXJTcGVjaWFsLmgiCkBAIC0xMjksNSAr
MTI4LDQgQEAgcHJpdmF0ZToKIAogfSB9IH0gLy8gbmFtZXNwYWNlIEpTQzo6QjM6OkFpcgogCi0j
ZW5kaWYgLy8gRU5BQkxFKE1BU01fUFJPQkUpCiAjZW5kaWYgLy8gRU5BQkxFKEIzX0pJVCkKSW5k
ZXg6IFNvdXJjZS9XVEYvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XVEYvQ2hhbmdl
TG9nCShyZXZpc2lvbiAyMjA1NDkpCisrKyBTb3VyY2UvV1RGL0NoYW5nZUxvZwkod29ya2luZyBj
b3B5KQpAQCAtMSwzICsxLDE5IEBACisyMDE3LTA4LTEwICBNYXJrIExhbSAgPG1hcmsubGFtQGFw
cGxlLmNvbT4KKworICAgICAgICBNYWtlIHRoZSBNQVNNX1BST0JFIG1lY2hhbmlzbSBtYW5kYXRv
cnkgZm9yIERGRyBhbmQgRlRMIGJ1aWxkcy4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTE3NTQ0NgorICAgICAgICA8cmRhcjovL3Byb2JsZW0vMzM4MzY1
NDU+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGhp
cyBpcyBuZWVkZWQgaW4gb3JkZXIgdG8gc3VwcG9ydCBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MTc0NjQ1LgorICAgICAgICBPbmUgY29uc2VxdWVuY2Ugb2YgdGhpcyBp
cyB0aGF0IHRoZSBERkcgd2lsbCBub3cgYmUgZGlzYWJsZWQgZm9yIHRoZSBNSVBTIGFuZAorICAg
ICAgICBXaW5kb3dzIHBvcnRzLiBTZWU6CisgICAgICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTc1NDQ3CisgICAgICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTc1NDQ5CisKKyAgICAgICAgKiB3dGYvUGxhdGZvcm0u
aDoKKwogMjAxNy0wOC0wOSAgWXVzdWtlIFN1enVraSAgPHV0YXRhbmUudGVhQGdtYWlsLmNvbT4K
IAogICAgICAgICBbV1RGXSBUaHJlYWRTcGVjaWZpYyBzaG91bGQgbm90IGludHJvZHVjZSBhZGRp
dGlvbmFsIGluZGlyZWN0aW9uCkluZGV4OiBTb3VyY2UvV1RGL3d0Zi9QbGF0Zm9ybS5oCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XVEYvd3RmL1BsYXRmb3JtLmgJKHJldmlzaW9uIDIyMDU0OSkKKysr
IFNvdXJjZS9XVEYvd3RmL1BsYXRmb3JtLmgJKHdvcmtpbmcgY29weSkKQEAgLTc3MCwxNyArNzcw
LDIzIEBACiAKICNpZiAhZGVmaW5lZChFTkFCTEVfREZHX0pJVCkgJiYgRU5BQkxFKEpJVCkKIC8q
IEVuYWJsZSB0aGUgREZHIEpJVCBvbiBYODYgYW5kIFg4Nl82NC4gKi8KLSNpZiAoQ1BVKFg4Nikg
fHwgQ1BVKFg4Nl82NCkpICYmIChPUyhEQVJXSU4pIHx8IE9TKExJTlVYKSB8fCBPUyhGUkVFQlNE
KSB8fCBPUyhXSU5ET1dTKSB8fCBPUyhIVVJEKSkKKyNpZiAoQ1BVKFg4NikgfHwgQ1BVKFg4Nl82
NCkpICYmIChPUyhEQVJXSU4pIHx8IE9TKExJTlVYKSB8fCBPUyhGUkVFQlNEKSB8fCBPUyhIVVJE
KSkKICNkZWZpbmUgRU5BQkxFX0RGR19KSVQgMQogI2VuZGlmCiAvKiBFbmFibGUgdGhlIERGRyBK
SVQgb24gQVJNdjcuICBPbmx5IHRlc3RlZCBvbiBpT1MgYW5kIFF0L0dUSysgTGludXguICovCiAj
aWYgKENQVShBUk1fVEhVTUIyKSB8fCBDUFUoQVJNNjQpKSAmJiAoUExBVEZPUk0oSU9TKSB8fCBQ
TEFURk9STShHVEspIHx8IFBMQVRGT1JNKFdQRSkpCiAjZGVmaW5lIEVOQUJMRV9ERkdfSklUIDEK
ICNlbmRpZgotLyogRW5hYmxlIHRoZSBERkcgSklUIG9uIEFSTSBhbmQgTUlQUy4gKi8KLSNpZiBD
UFUoQVJNX1RSQURJVElPTkFMKSB8fCBDUFUoTUlQUykKKy8qIEVuYWJsZSB0aGUgREZHIEpJVCBv
biBBUk0uICovCisjaWYgQ1BVKEFSTV9UUkFESVRJT05BTCkKICNkZWZpbmUgRU5BQkxFX0RGR19K
SVQgMQogI2VuZGlmCisvKiBGSVhNRTogTUlQUyBjYW5ub3QgZW5hYmxlIHRoZSBERkcgdW50aWwg
aXQgaGFzIHN1cHBvcnQgZm9yIE1hY3JvQXNzZW1ibGVyOjpwcm9iZSgpLgorICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE3NTQ0NworKi8KKy8qIEZJWE1FOiBXaW5k
b3dzIGNhbm5vdCBlbmFibGUgdGhlIERGRyB1bnRpbCBpdCBoYXMgc3VwcG9ydCBmb3IgTWFjcm9B
c3NlbWJsZXI6OnByb2JlKCkuCisgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MTc1NDQ5CisqLwogI2VuZGlmCiAKIC8qIENvbmN1cnJlbnQgSlMgb25seSB3b3JrcyBv
biA2NC1iaXQgcGxhdGZvcm1zIGJlY2F1c2UgaXQgcmVxdWlyZXMgdGhhdApAQCAtOTQ4LDE0ICs5
NTQsNiBAQAogI2VuZGlmCiAjZW5kaWYKIAotLyogRW5hYmxlIHRoZSBmb2xsb3dpbmcgaWYgeW91
IHdhbnQgdG8gdXNlIHRoZSBNYWNyb0Fzc2VtYmxlcjo6cHJvYmUoKSBmYWNpbGl0eQotICAgdG8g
ZG8gSklUIGRlYnVnZ2luZy4gKi8KLSNpZiAoQ1BVKFg4NikgfHwgQ1BVKFg4Nl82NCkgfHwgQ1BV
KEFSTTY0KSB8fCAoQ1BVKEFSTV9USFVNQjIpICYmIFBMQVRGT1JNKElPUykpKSAmJiBFTkFCTEUo
SklUKSAmJiBPUyhEQVJXSU4pCi0jZGVmaW5lIEVOQUJMRV9NQVNNX1BST0JFIDEKLSNlbHNlCi0j
ZGVmaW5lIEVOQUJMRV9NQVNNX1BST0JFIDAKLSNlbmRpZgotCiAjaWZuZGVmIEVOQUJMRV9FWENF
UFRJT05fU0NPUEVfVkVSSUZJQ0FUSU9OCiAjaWZkZWYgTkRFQlVHCiAjZGVmaW5lIEVOQUJMRV9F
WENFUFRJT05fU0NPUEVfVkVSSUZJQ0FUSU9OIDAK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>317864</attachid>
            <date>2017-08-10 15:57:59 -0700</date>
            <delta_ts>2017-08-10 16:30:20 -0700</delta_ts>
            <desc>proposed patch.</desc>
            <filename>bug-175446.patch</filename>
            <type>text/plain</type>
            <size>16843</size>
            <attacher name="Mark Lam">mark.lam</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMjIwNTUxKQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDM3IEBA
CisyMDE3LTA4LTEwICBNYXJrIExhbSAgPG1hcmsubGFtQGFwcGxlLmNvbT4KKworICAgICAgICBN
YWtlIHRoZSBNQVNNX1BST0JFIG1lY2hhbmlzbSBtYW5kYXRvcnkgZm9yIERGRyBhbmQgRlRMIGJ1
aWxkcy4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE3
NTQ0NgorICAgICAgICA8cmRhcjovL3Byb2JsZW0vMzM4MzY1NDU+CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBhc3NlbWJsZXIvQWJzdHJhY3RNYWNy
b0Fzc2VtYmxlci5oOgorICAgICAgICAqIGFzc2VtYmxlci9NYWNyb0Fzc2VtYmxlci5jcHA6Cisg
ICAgICAgIChKU0M6Ok1hY3JvQXNzZW1ibGVyOjpwcm9iZSk6CisgICAgICAgICogYXNzZW1ibGVy
L01hY3JvQXNzZW1ibGVyLmg6CisgICAgICAgICogYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyQVJN
LmNwcDoKKyAgICAgICAgKEpTQzo6TWFjcm9Bc3NlbWJsZXI6OnByb2JlKToKKyAgICAgICAgKiBh
c3NlbWJsZXIvTWFjcm9Bc3NlbWJsZXJBUk0uaDoKKyAgICAgICAgKEpTQzo6TWFjcm9Bc3NlbWJs
ZXJBUk06OnRydXN0ZWRJbW0zMkZyb21QdHIpOgorICAgICAgICAqIGFzc2VtYmxlci9NYWNyb0Fz
c2VtYmxlckFSTTY0LmNwcDoKKyAgICAgICAgKEpTQzo6TWFjcm9Bc3NlbWJsZXI6OnByb2JlKToK
KyAgICAgICAgKiBhc3NlbWJsZXIvTWFjcm9Bc3NlbWJsZXJBUk12Ny5jcHA6CisgICAgICAgIChK
U0M6Ok1hY3JvQXNzZW1ibGVyOjpwcm9iZSk6CisgICAgICAgICogYXNzZW1ibGVyL01hY3JvQXNz
ZW1ibGVyQVJNdjcuaDoKKyAgICAgICAgKEpTQzo6TWFjcm9Bc3NlbWJsZXJBUk12Nzo6dHJ1c3Rl
ZEltbTMyRnJvbVB0cik6CisgICAgICAgICogYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyUHJpbnRl
ci5jcHA6CisgICAgICAgICogYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyUHJpbnRlci5oOgorICAg
ICAgICAqIGFzc2VtYmxlci9NYWNyb0Fzc2VtYmxlclg4NkNvbW1vbi5jcHA6CisgICAgICAgICog
YXNzZW1ibGVyL3Rlc3RtYXNtLmNwcDoKKyAgICAgICAgKEpTQzo6aXNTcGVjaWFsR1BSKToKKyAg
ICAgICAgKEpTQzo6dGVzdFByb2JlTW9kaWZpZXNQcm9ncmFtQ291bnRlcik6CisgICAgICAgIChK
U0M6OnJ1bik6CisgICAgICAgICogYjMvQjNMb3dlclRvQWlyLmNwcDoKKyAgICAgICAgKEpTQzo6
QjM6OkFpcjo6TG93ZXJUb0Fpcjo6cHJpbnQpOgorICAgICAgICAqIGIzL2Fpci9BaXJQcmludFNw
ZWNpYWwuY3BwOgorICAgICAgICAqIGIzL2Fpci9BaXJQcmludFNwZWNpYWwuaDoKKwogMjAxNy0w
OC0wOSAgWXVzdWtlIFN1enVraSAgPHV0YXRhbmUudGVhQGdtYWlsLmNvbT4KIAogICAgICAgICBb
V1RGXSBUaHJlYWRTcGVjaWZpYyBzaG91bGQgbm90IGludHJvZHVjZSBhZGRpdGlvbmFsIGluZGly
ZWN0aW9uCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL0Fic3RyYWN0TWFj
cm9Bc3NlbWJsZXIuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1i
bGVyL0Fic3RyYWN0TWFjcm9Bc3NlbWJsZXIuaAkocmV2aXNpb24gMjIwNTQ5KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9BYnN0cmFjdE1hY3JvQXNzZW1ibGVyLmgJKHdvcmtp
bmcgY29weSkKQEAgLTQzLDEwICs0Myw4IEBAIG5hbWVzcGFjZSBKU0MgewogCiAjaWYgRU5BQkxF
KEFTU0VNQkxFUikKIAotI2lmIEVOQUJMRShNQVNNX1BST0JFKQogc3RydWN0IFByb2JlQ29udGV4
dDsKIHR5cGVkZWYgdm9pZCAoKlByb2JlRnVuY3Rpb24pKHN0cnVjdCBQcm9iZUNvbnRleHQqKTsK
LSNlbmRpZgogICAgIAogY2xhc3MgQWxsb3dNYWNyb1NjcmF0Y2hSZWdpc3RlclVzYWdlOwogY2xh
c3MgRGlzYWxsb3dNYWNyb1NjcmF0Y2hSZWdpc3RlclVzYWdlOwpJbmRleDogU291cmNlL0phdmFT
Y3JpcHRDb3JlL2Fzc2VtYmxlci9NYWNyb0Fzc2VtYmxlci5jcHAKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9NYWNyb0Fzc2VtYmxlci5jcHAJKHJldmlzaW9u
IDIyMDU0OSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvTWFjcm9Bc3NlbWJs
ZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zNCw3ICszNCw2IEBAIG5hbWVzcGFjZSBKU0Mgewog
CiBjb25zdCBkb3VibGUgTWFjcm9Bc3NlbWJsZXI6OnR3b1RvVGhlMzIgPSAoZG91YmxlKTB4MTAw
MDAwMDAwdWxsOwogCi0jaWYgRU5BQkxFKE1BU01fUFJPQkUpCiBzdGF0aWMgdm9pZCBzdGRGdW5j
dGlvbkNhbGxiYWNrKFByb2JlQ29udGV4dCogY29udGV4dCkKIHsKICAgICBhdXRvIGZ1bmMgPSBz
dGF0aWNfY2FzdDxjb25zdCBzdGQ6OmZ1bmN0aW9uPHZvaWQoUHJvYmVDb250ZXh0Kik+Kj4oY29u
dGV4dC0+YXJnKTsKQEAgLTQ1LDcgKzQ0LDYgQEAgdm9pZCBNYWNyb0Fzc2VtYmxlcjo6cHJvYmUo
c3RkOjpmdW5jdGlvbgogewogICAgIHByb2JlKHN0ZEZ1bmN0aW9uQ2FsbGJhY2ssIG5ldyBzdGQ6
OmZ1bmN0aW9uPHZvaWQoUHJvYmVDb250ZXh0Kik+KGZ1bmMpKTsKIH0KLSNlbmRpZiAvLyBFTkFC
TEUoTUFTTV9QUk9CRSkKIAogfSAvLyBuYW1lc3BhY2UgSlNDCiAKSW5kZXg6IFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9hc3NlbWJsZXIvTWFjcm9Bc3NlbWJsZXIuaAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyLmgJKHJldmlzaW9uIDIy
MDU0OSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvTWFjcm9Bc3NlbWJsZXIu
aAkod29ya2luZyBjb3B5KQpAQCAtMTgyNCw3ICsxODI0LDYgQEAgcHVibGljOgogICAgICAgICB1
cnNoaWZ0MzIoc3JjLCB0cnVzdGVkSW1tMzJGb3JTaGlmdChhbW91bnQpLCBkZXN0KTsKICAgICB9
CiAKLSNpZiBFTkFCTEUoTUFTTV9QUk9CRSkKICAgICBzdHJ1Y3QgQ1BVU3RhdGU7CiAKICAgICAv
LyBUaGlzIGZ1bmN0aW9uIGVtaXRzIGNvZGUgdG8gcHJlc2VydmUgdGhlIENQVVN0YXRlIChlLmcu
IHJlZ2lzdGVycyksCkBAIC0xODQ4LDEwICsxODQ3LDggQEAgcHVibGljOgogICAgIHZvaWQgcHJv
YmUoUHJvYmVGdW5jdGlvbiwgdm9pZCogYXJnKTsKIAogICAgIEpTX0VYUE9SVF9QUklWQVRFIHZv
aWQgcHJvYmUoc3RkOjpmdW5jdGlvbjx2b2lkKFByb2JlQ29udGV4dCopPik7Ci0jZW5kaWYgLy8g
RU5BQkxFKE1BU01fUFJPQkUpCiAKICAgICAvLyBMZXQncyB5b3UgcHJpbnQgZnJvbSB5b3VyIEpJ
VCBnZW5lcmF0ZWQgY29kZS4KLSAgICAvLyBUaGlzIG9ubHkgd29ya3MgaWYgRU5BQkxFKE1BU01f
UFJPQkUpLiBPdGhlcndpc2UsIHByaW50KCkgaXMgYSBuby1vcC4KICAgICAvLyBTZWUgY29tbWVu
dHMgaW4gTWFjcm9Bc3NlbWJsZXJQcmludGVyLmggZm9yIGV4YW1wbGVzIG9mIGhvdyB0byB1c2Ug
dGhpcy4KICAgICB0ZW1wbGF0ZTx0eXBlbmFtZS4uLiBBcmd1bWVudHM+CiAgICAgdm9pZCBwcmlu
dChBcmd1bWVudHMmJi4uLiBhcmdzKTsKQEAgLTE4NTksOCArMTg1Niw2IEBAIHB1YmxpYzoKICAg
ICB2b2lkIHByaW50KFByaW50ZXI6OlByaW50UmVjb3JkTGlzdCopOwogfTsKIAotI2lmIEVOQUJM
RShNQVNNX1BST0JFKQotCiBzdHJ1Y3QgTWFjcm9Bc3NlbWJsZXI6OkNQVVN0YXRlIHsKICAgICBz
dGF0aWMgaW5saW5lIGNvbnN0IGNoYXIqIGdwck5hbWUoUmVnaXN0ZXJJRCBpZCkgeyByZXR1cm4g
TWFjcm9Bc3NlbWJsZXI6Omdwck5hbWUoaWQpOyB9CiAgICAgc3RhdGljIGlubGluZSBjb25zdCBj
aGFyKiBzcHJOYW1lKFNQUmVnaXN0ZXJJRCBpZCkgeyByZXR1cm4gTWFjcm9Bc3NlbWJsZXI6OnNw
ck5hbWUoaWQpOyB9CkBAIC0xOTYzLDcgKzE5NTgsNiBAQCBzdHJ1Y3QgUHJvYmVDb250ZXh0IHsK
ICAgICB2b2lkKiYgZnAoKSB7IHJldHVybiBjcHUuZnAoKTsgfQogICAgIHZvaWQqJiBzcCgpIHsg
cmV0dXJuIGNwdS5zcCgpOyB9CiB9OwotI2VuZGlmIC8vIEVOQUJMRShNQVNNX1BST0JFKQogICAg
IAogfSAvLyBuYW1lc3BhY2UgSlNDCiAKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3Nl
bWJsZXIvTWFjcm9Bc3NlbWJsZXJBUk02NC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFT
Y3JpcHRDb3JlL2Fzc2VtYmxlci9NYWNyb0Fzc2VtYmxlckFSTTY0LmNwcAkocmV2aXNpb24gMjIw
NTQ5KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9NYWNyb0Fzc2VtYmxlckFS
TTY0LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzIsOCArMzIsNiBAQAogCiBuYW1lc3BhY2UgSlND
IHsKIAotI2lmIEVOQUJMRShNQVNNX1BST0JFKQotCiBleHRlcm4gIkMiIHZvaWQgY3RpTWFzbVBy
b2JlVHJhbXBvbGluZSgpOwogCiB1c2luZyBuYW1lc3BhY2UgQVJNNjRSZWdpc3RlcnM7CkBAIC01
NTEsNyArNTQ5LDYgQEAgdm9pZCBNYWNyb0Fzc2VtYmxlcjo6cHJvYmUoUHJvYmVGdW5jdGlvbgog
ICAgIGxvYWQ2NChBZGRyZXNzKHNwLCBvZmZzZXRvZihPdXRnb2luZ1Byb2JlUmVjb3JkLCBscikp
LCBscik7CiAgICAgYWRkNjQoVHJ1c3RlZEltbTMyKHNpemVvZihPdXRnb2luZ1Byb2JlUmVjb3Jk
KSksIHNwKTsKIH0KLSNlbmRpZiAvLyBFTkFCTEUoTUFTTV9QUk9CRSkKIAogfSAvLyBuYW1lc3Bh
Y2UgSlNDCiAKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvTWFjcm9Bc3Nl
bWJsZXJBUk0uY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJs
ZXIvTWFjcm9Bc3NlbWJsZXJBUk0uY3BwCShyZXZpc2lvbiAyMjA1NDkpCisrKyBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyQVJNLmNwcAkod29ya2luZyBjb3B5
KQpAQCAtOTYsOCArOTYsNiBAQCB2b2lkIE1hY3JvQXNzZW1ibGVyQVJNOjpsb2FkMzJXaXRoVW5h
bGlnCiB9CiAjZW5kaWYgLy8gQ1BVKEFSTVY1X09SX0xPV0VSKQogCi0jaWYgRU5BQkxFKE1BU01f
UFJPQkUpCi0KIGV4dGVybiAiQyIgdm9pZCBjdGlNYXNtUHJvYmVUcmFtcG9saW5lKCk7CiAKICNp
ZiBDT01QSUxFUihHQ0NfT1JfQ0xBTkcpCkBAIC0zODIsNyArMzgwLDYgQEAgdm9pZCBNYWNyb0Fz
c2VtYmxlcjo6cHJvYmUoUHJvYmVGdW5jdGlvbgogICAgIG1fYXNzZW1ibGVyLmJseChSZWdpc3Rl
cklEOjpTMCk7CiAKIH0KLSNlbmRpZiAvLyBFTkFCTEUoTUFTTV9QUk9CRSkKIAogfSAvLyBuYW1l
c3BhY2UgSlNDCiAKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvTWFjcm9B
c3NlbWJsZXJBUk0uaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1i
bGVyL01hY3JvQXNzZW1ibGVyQVJNLmgJKHJldmlzaW9uIDIyMDU0OSkKKysrIFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9hc3NlbWJsZXIvTWFjcm9Bc3NlbWJsZXJBUk0uaAkod29ya2luZyBjb3B5KQpA
QCAtMTU4Niw3ICsxNTg2LDYgQEAgcHJvdGVjdGVkOgogICAgICAgICBtX2Fzc2VtYmxlci5ibHgo
QVJNUmVnaXN0ZXJzOjpTMSk7CiAgICAgfQogCi0jaWYgRU5BQkxFKE1BU01fUFJPQkUpCiAgICAg
aW5saW5lIFRydXN0ZWRJbW0zMiB0cnVzdGVkSW1tMzJGcm9tUHRyKHZvaWQqIHB0cikKICAgICB7
CiAgICAgICAgIHJldHVybiBUcnVzdGVkSW1tMzIoVHJ1c3RlZEltbVB0cihwdHIpKTsKQEAgLTE2
MDEsNyArMTYwMCw2IEBAIHByb3RlY3RlZDoKICAgICB7CiAgICAgICAgIHJldHVybiBUcnVzdGVk
SW1tMzIoVHJ1c3RlZEltbVB0cihyZWludGVycHJldF9jYXN0PHZvaWQqPihmdW5jdGlvbikpKTsK
ICAgICB9Ci0jZW5kaWYKIAogcHJpdmF0ZToKICAgICBmcmllbmQgY2xhc3MgTGlua0J1ZmZlcjsK
SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvTWFjcm9Bc3NlbWJsZXJBUk12
Ny5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9NYWNy
b0Fzc2VtYmxlckFSTXY3LmNwcAkocmV2aXNpb24gMjIwNTQ5KQorKysgU291cmNlL0phdmFTY3Jp
cHRDb3JlL2Fzc2VtYmxlci9NYWNyb0Fzc2VtYmxlckFSTXY3LmNwcAkod29ya2luZyBjb3B5KQpA
QCAtMzIsOCArMzIsNiBAQAogCiBuYW1lc3BhY2UgSlNDIHsKIAotI2lmIEVOQUJMRShNQVNNX1BS
T0JFKQotCiBleHRlcm4gIkMiIHZvaWQgY3RpTWFzbVByb2JlVHJhbXBvbGluZSgpOwogCiAjaWYg
Q09NUElMRVIoR0NDX09SX0NMQU5HKQpAQCAtMzU5LDcgKzM1Nyw2IEBAIHZvaWQgTWFjcm9Bc3Nl
bWJsZXI6OnByb2JlKFByb2JlRnVuY3Rpb24KICAgICBtb3ZlKHRydXN0ZWRJbW0zMkZyb21QdHIo
Y3RpTWFzbVByb2JlVHJhbXBvbGluZSksIFJlZ2lzdGVySUQ6OmlwKTsKICAgICBtX2Fzc2VtYmxl
ci5ibHgoUmVnaXN0ZXJJRDo6aXApOwogfQotI2VuZGlmIC8vIEVOQUJMRShNQVNNX1BST0JFKQog
CiB9IC8vIG5hbWVzcGFjZSBKU0MKIApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2Vt
Ymxlci9NYWNyb0Fzc2VtYmxlckFSTXY3LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3Jp
cHRDb3JlL2Fzc2VtYmxlci9NYWNyb0Fzc2VtYmxlckFSTXY3LmgJKHJldmlzaW9uIDIyMDU0OSkK
KysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvTWFjcm9Bc3NlbWJsZXJBUk12Ny5o
CSh3b3JraW5nIGNvcHkpCkBAIC0yMTA3LDcgKzIxMDcsNiBAQCBwcm90ZWN0ZWQ6CiAgICAgICAg
IHJldHVybiBzdGF0aWNfY2FzdDxBUk12N0Fzc2VtYmxlcjo6Q29uZGl0aW9uPihjb25kKTsKICAg
ICB9CiAgICAgCi0jaWYgRU5BQkxFKE1BU01fUFJPQkUpCiAgICAgaW5saW5lIFRydXN0ZWRJbW0z
MiB0cnVzdGVkSW1tMzJGcm9tUHRyKHZvaWQqIHB0cikKICAgICB7CiAgICAgICAgIHJldHVybiBU
cnVzdGVkSW1tMzIoVHJ1c3RlZEltbVB0cihwdHIpKTsKQEAgLTIxMjIsNyArMjEyMSw2IEBAIHBy
b3RlY3RlZDoKICAgICB7CiAgICAgICAgIHJldHVybiBUcnVzdGVkSW1tMzIoVHJ1c3RlZEltbVB0
cihyZWludGVycHJldF9jYXN0PHZvaWQqPihmdW5jdGlvbikpKTsKICAgICB9Ci0jZW5kaWYKIAog
cHJpdmF0ZToKICAgICBmcmllbmQgY2xhc3MgTGlua0J1ZmZlcjsKSW5kZXg6IFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9hc3NlbWJsZXIvTWFjcm9Bc3NlbWJsZXJQcmludGVyLmNwcAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyUHJpbnRl
ci5jcHAJKHJldmlzaW9uIDIyMDU0OSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJs
ZXIvTWFjcm9Bc3NlbWJsZXJQcmludGVyLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjYsOCArMjYs
NiBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIk1hY3JvQXNzZW1ibGVyUHJpbnRl
ci5oIgogCi0jaWYgRU5BQkxFKE1BU01fUFJPQkUpCi0KICNpbmNsdWRlICJNYWNyb0Fzc2VtYmxl
ci5oIgogCiBuYW1lc3BhY2UgSlNDIHsKQEAgLTE4Myw0ICsxODEsMyBAQCB2b2lkIHByaW50Q2Fs
bGJhY2soUHJvYmVDb250ZXh0KiBwcm9iZUNvCiB9IC8vIG5hbWVzcGFjZSBQcmludGVyCiB9IC8v
IG5hbWVzcGFjZSBKU0MKIAotI2VuZGlmIC8vIEVOQUJMRShNQVNNX1BST0JFKQpJbmRleDogU291
cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9NYWNyb0Fzc2VtYmxlclByaW50ZXIuaAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVy
UHJpbnRlci5oCShyZXZpc2lvbiAyMjA1NDkpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNz
ZW1ibGVyL01hY3JvQXNzZW1ibGVyUHJpbnRlci5oCSh3b3JraW5nIGNvcHkpCkBAIC0zMiw4ICsz
Miw2IEBAIG5hbWVzcGFjZSBKU0MgewogCiAjaWYgRU5BQkxFKEFTU0VNQkxFUikKIAotI2lmIEVO
QUJMRShNQVNNX1BST0JFKQotICAgIAogLy8gV2hhdCBpcyBNYWNyb0Fzc2VtYmxlcjo6cHJpbnQo
KT8KIC8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KIC8vIFRoZSBNYWNyb0Fzc3Nl
bWJsZXI6OnByaW50KCkgbWFrZXMgaXQgZWFzeSB0byBhZGQgcHJpbnQgbG9nZ2luZwpAQCAtMjQw
LDE1ICsyMzgsNiBAQCBpbmxpbmUgdm9pZCBNYWNyb0Fzc2VtYmxlcjo6cHJpbnQoUHJpbnRlCiAg
ICAgcHJvYmUoUHJpbnRlcjo6cHJpbnRDYWxsYmFjaywgcHJpbnRSZWNvcmRMaXN0KTsKIH0KIAot
I2Vsc2UgLy8gRU5BQkxFKE1BU01fUFJPQkUpCi0KLXRlbXBsYXRlPHR5cGVuYW1lLi4uIEFyZ3Vt
ZW50cz4KLWlubGluZSB2b2lkIE1hY3JvQXNzZW1ibGVyOjpwcmludChBcmd1bWVudHMmJi4uLikg
eyB9Ci0KLWlubGluZSB2b2lkIE1hY3JvQXNzZW1ibGVyOjpwcmludChQcmludGVyOjpQcmludFJl
Y29yZExpc3QqKSB7IH0KLQotI2VuZGlmIC8vIEVOQUJMRShNQVNNX1BST0JFKQotCiAjZW5kaWYg
Ly8gRU5BQkxFKEFTU0VNQkxFUikKIAogfSAvLyBuYW1lc3BhY2UgSlNDCkluZGV4OiBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyWDg2Q29tbW9uLmNwcAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVy
WDg2Q29tbW9uLmNwcAkocmV2aXNpb24gMjIwNTQ5KQorKysgU291cmNlL0phdmFTY3JpcHRDb3Jl
L2Fzc2VtYmxlci9NYWNyb0Fzc2VtYmxlclg4NkNvbW1vbi5jcHAJKHdvcmtpbmcgY29weSkKQEAg
LTMyLDggKzMyLDYgQEAKIAogbmFtZXNwYWNlIEpTQyB7CiAKLSNpZiBFTkFCTEUoTUFTTV9QUk9C
RSkKLQogZXh0ZXJuICJDIiB2b2lkIGN0aU1hc21Qcm9iZVRyYW1wb2xpbmUoKTsKIAogI2lmIENP
TVBJTEVSKEdDQ19PUl9DTEFORykKQEAgLTU3NSw4ICs1NzMsNiBAQCB2b2lkIE1hY3JvQXNzZW1i
bGVyOjpwcm9iZShQcm9iZUZ1bmN0aW9uCiAgICAgY2FsbChSZWdpc3RlcklEOjplYXgpOwogfQog
Ci0jZW5kaWYgLy8gRU5BQkxFKE1BU01fUFJPQkUpCi0KICNpZiBDUFUoWDg2KSAmJiAhT1MoTUFD
X09TX1gpCiBNYWNyb0Fzc2VtYmxlclg4NkNvbW1vbjo6U1NFMkNoZWNrU3RhdGUgTWFjcm9Bc3Nl
bWJsZXJYODZDb21tb246OnNfc3NlMkNoZWNrU3RhdGUgPSBOb3RDaGVja2VkU1NFMjsKICNlbmRp
ZgpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci90ZXN0bWFzbS5jcHAKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci90ZXN0bWFzbS5jcHAJ
KHJldmlzaW9uIDIyMDU0OSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvdGVz
dG1hc20uY3BwCSh3b3JraW5nIGNvcHkpCkBAIC04NSw3ICs4NSw2IEBAIHRlbXBsYXRlPHR5cGVu
YW1lIFQ+IFQgbmV4dElEKFQgaWQpIHsgcmUKICNkZWZpbmUgQ0hFQ0tfRE9VQkxFX0JJVFdJU0Vf
RVEoYSwgYikgXAogICAgIENIRUNLKGJpdHdpc2VfY2FzdDx1aW50NjRfdD4oYSkgPT0gYml0d2lz
ZV9jYXN0PHVpbnQ2NF90PihhKSkKIAotI2lmIEVOQUJMRShNQVNNX1BST0JFKQogYm9vbCBpc1BD
KE1hY3JvQXNzZW1ibGVyOjpSZWdpc3RlcklEIGlkKQogewogI2lmIENQVShBUk1fVEhVTUIyKSB8
fCBDUFUoQVJNX1RSQURJVElPTkFMKQpAQCAtMTE2LDcgKzExNSw2IEBAIGJvb2wgaXNTcGVjaWFs
R1BSKE1hY3JvQXNzZW1ibGVyOjpSZWdpc3QKICNlbmRpZgogICAgIHJldHVybiBmYWxzZTsKIH0K
LSNlbmRpZiAvLyBFTkFCTEUoTUFTTV9QUk9CRSkKIAogTWFjcm9Bc3NlbWJsZXJDb2RlUmVmIGNv
bXBpbGUoR2VuZXJhdG9yJiYgZ2VuZXJhdGUpCiB7CkBAIC0xNDksNyArMTQ3LDYgQEAgdm9pZCB0
ZXN0U2ltcGxlKCkKICAgICB9KSA9PSA0Mik7CiB9CiAKLSNpZiBFTkFCTEUoTUFTTV9QUk9CRSkK
IHZvaWQgdGVzdFByb2JlUmVhZHNBcmd1bWVudFJlZ2lzdGVycygpCiB7CiAgICAgYm9vbCBwcm9i
ZVdhc0NhbGxlZCA9IGZhbHNlOwpAQCAtNDkzLDcgKzQ5MCw2IEBAIHZvaWQgdGVzdFByb2JlTW9k
aWZpZXNQcm9ncmFtQ291bnRlcigpCiAgICAgQ0hFQ0socHJvYmVDYWxsQ291bnQgPT0gMik7CiAg
ICAgQ0hFQ0soY29udGludWF0aW9uV2FzUmVhY2hlZCk7CiB9Ci0jZW5kaWYgLy8gRU5BQkxFKE1B
U01fUFJPQkUpCiAKICNkZWZpbmUgUlVOKHRlc3QpIGRvIHsgICAgICAgICAgICAgICAgICAgICAg
ICAgIFwKICAgICAgICAgaWYgKCFzaG91bGRSdW4oI3Rlc3QpKSAgICAgICAgICAgICAgICAgIFwK
QEAgLTUxOSwxNCArNTE1LDEyIEBAIHZvaWQgcnVuKGNvbnN0IGNoYXIqIGZpbHRlcikKIAogICAg
IFJVTih0ZXN0U2ltcGxlKCkpOwogCi0jaWYgRU5BQkxFKE1BU01fUFJPQkUpCiAgICAgUlVOKHRl
c3RQcm9iZVJlYWRzQXJndW1lbnRSZWdpc3RlcnMoKSk7CiAgICAgUlVOKHRlc3RQcm9iZVdyaXRl
c0FyZ3VtZW50UmVnaXN0ZXJzKCkpOwogICAgIFJVTih0ZXN0UHJvYmVQcmVzZXJ2ZXNHUFJTKCkp
OwogICAgIFJVTih0ZXN0UHJvYmVNb2RpZmllc1N0YWNrUG9pbnRlclRvSW5zaWRlUHJvYmVDb250
ZXh0T25TdGFjaygpKTsKICAgICBSVU4odGVzdFByb2JlTW9kaWZpZXNTdGFja1BvaW50ZXJUb05C
eXRlc0JlbG93U1AoKSk7CiAgICAgUlVOKHRlc3RQcm9iZU1vZGlmaWVzUHJvZ3JhbUNvdW50ZXIo
KSk7Ci0jZW5kaWYKIAogICAgIGlmICh0YXNrcy5pc0VtcHR5KCkpCiAgICAgICAgIHVzYWdlKCk7
CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNMb3dlclRvQWlyLmNwcAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNMb3dlclRvQWlyLmNwcAkocmV2aXNp
b24gMjIwNTQ5KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzTG93ZXJUb0Fpci5jcHAJ
KHdvcmtpbmcgY29weSkKQEAgLTExNDksNyArMTE0OSw2IEBAIHByaXZhdGU6CiAgICAgICAgIHJl
dHVybiBBaXI6Ok9vcHM7CiAgICAgfQogCi0jaWYgRU5BQkxFKE1BU01fUFJPQkUpCiAgICAgdGVt
cGxhdGU8dHlwZW5hbWUuLi4gQXJndW1lbnRzPgogICAgIHZvaWQgcHJpbnQoQXJndW1lbnRzJiYu
Li4gYXJndW1lbnRzKQogICAgIHsKQEAgLTExNjYsMTAgKzExNjUsNiBAQCBwcml2YXRlOgogICAg
ICAgICBQcmludGVyOjphcHBlbmRBaXJBcmdzKGluc3QsIHN0ZDo6Zm9yd2FyZDxBcmd1bWVudHM+
KGFyZ3VtZW50cykuLi4pOwogICAgICAgICBhcHBlbmQoV1RGTW92ZShpbnN0KSk7CiAgICAgfQot
I2Vsc2UKLSAgICB0ZW1wbGF0ZTx0eXBlbmFtZS4uLiBBcmd1bWVudHM+Ci0gICAgdm9pZCBwcmlu
dChBcmd1bWVudHMmJi4uLikgeyB9Ci0jZW5kaWYgLy8gRU5BQkxFKE1BU01fUFJPQkUpCiAKICAg
ICB0ZW1wbGF0ZTx0eXBlbmFtZS4uLiBBcmd1bWVudHM+CiAgICAgdm9pZCBhcHBlbmQoQWlyOjpL
aW5kIGtpbmQsIEFyZ3VtZW50cyYmLi4uIGFyZ3VtZW50cykKSW5kZXg6IFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9iMy9haXIvQWlyUHJpbnRTcGVjaWFsLmNwcAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvYjMvYWlyL0FpclByaW50U3BlY2lhbC5jcHAJKHJldmlzaW9uIDIyMDU0
OSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9haXIvQWlyUHJpbnRTcGVjaWFsLmNwcAko
d29ya2luZyBjb3B5KQpAQCAtMjcsNyArMjcsNiBAQAogI2luY2x1ZGUgIkFpclByaW50U3BlY2lh
bC5oIgogCiAjaWYgRU5BQkxFKEIzX0pJVCkKLSNpZiBFTkFCTEUoTUFTTV9QUk9CRSkKIAogI2lu
Y2x1ZGUgIk1hY3JvQXNzZW1ibGVyUHJpbnRlci5oIgogCkBAIC0xMjUsNSArMTI0LDQgQEAgTk9f
UkVUVVJOIHZvaWQgcHJpbnRBaXJBcmcoUHJpbnRTdHJlYW0mLAogCiB9IC8vIG5hbWVzcGFjZSBK
U0MKIAotI2VuZGlmIC8vIEVOQUJMRShNQVNNX1BST0JFKQogI2VuZGlmIC8vIEVOQUJMRShCM19K
SVQpCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvYWlyL0FpclByaW50U3BlY2lhbC5o
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9haXIvQWlyUHJpbnRTcGVj
aWFsLmgJKHJldmlzaW9uIDIyMDU0OSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9haXIv
QWlyUHJpbnRTcGVjaWFsLmgJKHdvcmtpbmcgY29weSkKQEAgLTI2LDcgKzI2LDYgQEAKICNwcmFn
bWEgb25jZQogCiAjaWYgRU5BQkxFKEIzX0pJVCkKLSNpZiBFTkFCTEUoTUFTTV9QUk9CRSkKIAog
I2luY2x1ZGUgIkFpckluc3QuaCIKICNpbmNsdWRlICJBaXJTcGVjaWFsLmgiCkBAIC0xMjksNSAr
MTI4LDQgQEAgcHJpdmF0ZToKIAogfSB9IH0gLy8gbmFtZXNwYWNlIEpTQzo6QjM6OkFpcgogCi0j
ZW5kaWYgLy8gRU5BQkxFKE1BU01fUFJPQkUpCiAjZW5kaWYgLy8gRU5BQkxFKEIzX0pJVCkKSW5k
ZXg6IFNvdXJjZS9XVEYvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XVEYvQ2hhbmdl
TG9nCShyZXZpc2lvbiAyMjA1NDkpCisrKyBTb3VyY2UvV1RGL0NoYW5nZUxvZwkod29ya2luZyBj
b3B5KQpAQCAtMSwzICsxLDIzIEBACisyMDE3LTA4LTEwICBNYXJrIExhbSAgPG1hcmsubGFtQGFw
cGxlLmNvbT4KKworICAgICAgICBNYWtlIHRoZSBNQVNNX1BST0JFIG1lY2hhbmlzbSBtYW5kYXRv
cnkgZm9yIERGRyBhbmQgRlRMIGJ1aWxkcy4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTE3NTQ0NgorICAgICAgICA8cmRhcjovL3Byb2JsZW0vMzM4MzY1
NDU+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGhp
cyBpcyBuZWVkZWQgaW4gb3JkZXIgdG8gc3VwcG9ydCBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MTc0NjQ1LgorICAgICAgICBPbmUgY29uc2VxdWVuY2Ugb2YgdGhpcyBp
cyB0aGF0IHRoZSBERkcgd2lsbCBub3cgYmUgZGlzYWJsZWQgZm9yIHRoZSBNSVBTIGFuZAorICAg
ICAgICBXaW5kb3dzIHBvcnRzLiBTZWU6CisgICAgICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTc1NDQ3CisgICAgICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTc1NDQ5CisKKyAgICAgICAgQWxzbywgd2Ugc2hvdWxk
IG9ubHkgRU5BQkxFX1NJR05BTF9CQVNFRF9WTV9UUkFQUyBpZiB0aGUgREZHIGlzIGVuYWJsZWQu
ICBJdCB3YXMKKyAgICAgICAgbmV2ZXIgbWVhbmluZ2Z1bCB0byB1c2UgU0lHTkFMX0JBU0VEX1ZN
X1RSQVBTIHdpdGggdGhlIGJhc2VsaW5lIEpJVCBhbnl3YXkuICBUaGlzCisgICAgICAgIGlzIGEg
bWlzLWNvbmZpZ3VyYXRpb24gZXJyb3IgdGhhdCBpcyBub3cgZml4ZWQuCisKKyAgICAgICAgKiB3
dGYvUGxhdGZvcm0uaDoKKwogMjAxNy0wOC0wOSAgWXVzdWtlIFN1enVraSAgPHV0YXRhbmUudGVh
QGdtYWlsLmNvbT4KIAogICAgICAgICBbV1RGXSBUaHJlYWRTcGVjaWZpYyBzaG91bGQgbm90IGlu
dHJvZHVjZSBhZGRpdGlvbmFsIGluZGlyZWN0aW9uCkluZGV4OiBTb3VyY2UvV1RGL3d0Zi9QbGF0
Zm9ybS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XVEYvd3RmL1BsYXRmb3JtLmgJKHJldmlzaW9u
IDIyMDU0OSkKKysrIFNvdXJjZS9XVEYvd3RmL1BsYXRmb3JtLmgJKHdvcmtpbmcgY29weSkKQEAg
LTc3MCwxNyArNzcwLDIzIEBACiAKICNpZiAhZGVmaW5lZChFTkFCTEVfREZHX0pJVCkgJiYgRU5B
QkxFKEpJVCkKIC8qIEVuYWJsZSB0aGUgREZHIEpJVCBvbiBYODYgYW5kIFg4Nl82NC4gKi8KLSNp
ZiAoQ1BVKFg4NikgfHwgQ1BVKFg4Nl82NCkpICYmIChPUyhEQVJXSU4pIHx8IE9TKExJTlVYKSB8
fCBPUyhGUkVFQlNEKSB8fCBPUyhXSU5ET1dTKSB8fCBPUyhIVVJEKSkKKyNpZiAoQ1BVKFg4Nikg
fHwgQ1BVKFg4Nl82NCkpICYmIChPUyhEQVJXSU4pIHx8IE9TKExJTlVYKSB8fCBPUyhGUkVFQlNE
KSB8fCBPUyhIVVJEKSkKICNkZWZpbmUgRU5BQkxFX0RGR19KSVQgMQogI2VuZGlmCiAvKiBFbmFi
bGUgdGhlIERGRyBKSVQgb24gQVJNdjcuICBPbmx5IHRlc3RlZCBvbiBpT1MgYW5kIFF0L0dUSysg
TGludXguICovCiAjaWYgKENQVShBUk1fVEhVTUIyKSB8fCBDUFUoQVJNNjQpKSAmJiAoUExBVEZP
Uk0oSU9TKSB8fCBQTEFURk9STShHVEspIHx8IFBMQVRGT1JNKFdQRSkpCiAjZGVmaW5lIEVOQUJM
RV9ERkdfSklUIDEKICNlbmRpZgotLyogRW5hYmxlIHRoZSBERkcgSklUIG9uIEFSTSBhbmQgTUlQ
Uy4gKi8KLSNpZiBDUFUoQVJNX1RSQURJVElPTkFMKSB8fCBDUFUoTUlQUykKKy8qIEVuYWJsZSB0
aGUgREZHIEpJVCBvbiBBUk0uICovCisjaWYgQ1BVKEFSTV9UUkFESVRJT05BTCkKICNkZWZpbmUg
RU5BQkxFX0RGR19KSVQgMQogI2VuZGlmCisvKiBGSVhNRTogTUlQUyBjYW5ub3QgZW5hYmxlIHRo
ZSBERkcgdW50aWwgaXQgaGFzIHN1cHBvcnQgZm9yIE1hY3JvQXNzZW1ibGVyOjpwcm9iZSgpLgor
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE3NTQ0NworKi8KKy8q
IEZJWE1FOiBXaW5kb3dzIGNhbm5vdCBlbmFibGUgdGhlIERGRyB1bnRpbCBpdCBoYXMgc3VwcG9y
dCBmb3IgTWFjcm9Bc3NlbWJsZXI6OnByb2JlKCkuCisgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MTc1NDQ5CisqLwogI2VuZGlmCiAKIC8qIENvbmN1cnJlbnQgSlMg
b25seSB3b3JrcyBvbiA2NC1iaXQgcGxhdGZvcm1zIGJlY2F1c2UgaXQgcmVxdWlyZXMgdGhhdApA
QCAtODA0LDggKzgxMCw4IEBACiAjZGVmaW5lIEVOQUJMRV9CM19KSVQgMQogI2VuZGlmCiAKLS8q
IElmIHRoZSBiYXNlbGluZSBqaXQgaXMgbm90IGF2YWlsYWJsZSwgdGhlbiBkaXNhYmxlIHVwcGVy
IHRpZXJzIGFzIHdlbGw6ICovCi0jaWYgIUVOQUJMRShKSVQpCisvKiBJZiB0aGUgYmFzZWxpbmUg
b3IgREZHIGppdCBpcyBub3QgYXZhaWxhYmxlLCB0aGVuIGRpc2FibGUgdXBwZXIgdGllcnMgYXMg
d2VsbDogKi8KKyNpZiAhRU5BQkxFKEpJVCkgfHwgIUVOQUJMRShFTkFCTEVfREZHX0pJVCkKICN1
bmRlZiBFTkFCTEVfREZHX0pJVAogI3VuZGVmIEVOQUJMRV9GVExfSklUCiAjdW5kZWYgRU5BQkxF
X0IzX0pJVApAQCAtOTQ4LDE0ICs5NTQsNiBAQAogI2VuZGlmCiAjZW5kaWYKIAotLyogRW5hYmxl
IHRoZSBmb2xsb3dpbmcgaWYgeW91IHdhbnQgdG8gdXNlIHRoZSBNYWNyb0Fzc2VtYmxlcjo6cHJv
YmUoKSBmYWNpbGl0eQotICAgdG8gZG8gSklUIGRlYnVnZ2luZy4gKi8KLSNpZiAoQ1BVKFg4Nikg
fHwgQ1BVKFg4Nl82NCkgfHwgQ1BVKEFSTTY0KSB8fCAoQ1BVKEFSTV9USFVNQjIpICYmIFBMQVRG
T1JNKElPUykpKSAmJiBFTkFCTEUoSklUKSAmJiBPUyhEQVJXSU4pCi0jZGVmaW5lIEVOQUJMRV9N
QVNNX1BST0JFIDEKLSNlbHNlCi0jZGVmaW5lIEVOQUJMRV9NQVNNX1BST0JFIDAKLSNlbmRpZgot
CiAjaWZuZGVmIEVOQUJMRV9FWENFUFRJT05fU0NPUEVfVkVSSUZJQ0FUSU9OCiAjaWZkZWYgTkRF
QlVHCiAjZGVmaW5lIEVOQUJMRV9FWENFUFRJT05fU0NPUEVfVkVSSUZJQ0FUSU9OIDAKQEAgLTk2
NCw3ICs5NjIsNyBAQAogI2VuZGlmCiAjZW5kaWYKIAotI2lmIEVOQUJMRShKSVQpICYmIEhBVkUo
TUFDSElORV9DT05URVhUKSAmJiAoQ1BVKFg4NikgfHwgQ1BVKFg4Nl82NCkgfHwgQ1BVKEFSTTY0
KSkKKyNpZiBFTkFCTEUoREZHX0pJVCkgJiYgSEFWRShNQUNISU5FX0NPTlRFWFQpICYmIChDUFUo
WDg2KSB8fCBDUFUoWDg2XzY0KSB8fCBDUFUoQVJNNjQpKQogI2RlZmluZSBFTkFCTEVfU0lHTkFM
X0JBU0VEX1ZNX1RSQVBTIDEKICNlbmRpZgogCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>317877</attachid>
            <date>2017-08-10 16:30:20 -0700</date>
            <delta_ts>2017-08-10 17:18:45 -0700</delta_ts>
            <desc>proposed patch.</desc>
            <filename>bug-175446.patch</filename>
            <type>text/plain</type>
            <size>19892</size>
            <attacher name="Mark Lam">mark.lam</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMjIwNTUxKQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDM3IEBA
CisyMDE3LTA4LTEwICBNYXJrIExhbSAgPG1hcmsubGFtQGFwcGxlLmNvbT4KKworICAgICAgICBN
YWtlIHRoZSBNQVNNX1BST0JFIG1lY2hhbmlzbSBtYW5kYXRvcnkgZm9yIERGRyBhbmQgRlRMIGJ1
aWxkcy4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE3
NTQ0NgorICAgICAgICA8cmRhcjovL3Byb2JsZW0vMzM4MzY1NDU+CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBhc3NlbWJsZXIvQWJzdHJhY3RNYWNy
b0Fzc2VtYmxlci5oOgorICAgICAgICAqIGFzc2VtYmxlci9NYWNyb0Fzc2VtYmxlci5jcHA6Cisg
ICAgICAgIChKU0M6Ok1hY3JvQXNzZW1ibGVyOjpwcm9iZSk6CisgICAgICAgICogYXNzZW1ibGVy
L01hY3JvQXNzZW1ibGVyLmg6CisgICAgICAgICogYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyQVJN
LmNwcDoKKyAgICAgICAgKEpTQzo6TWFjcm9Bc3NlbWJsZXI6OnByb2JlKToKKyAgICAgICAgKiBh
c3NlbWJsZXIvTWFjcm9Bc3NlbWJsZXJBUk0uaDoKKyAgICAgICAgKEpTQzo6TWFjcm9Bc3NlbWJs
ZXJBUk06OnRydXN0ZWRJbW0zMkZyb21QdHIpOgorICAgICAgICAqIGFzc2VtYmxlci9NYWNyb0Fz
c2VtYmxlckFSTTY0LmNwcDoKKyAgICAgICAgKEpTQzo6TWFjcm9Bc3NlbWJsZXI6OnByb2JlKToK
KyAgICAgICAgKiBhc3NlbWJsZXIvTWFjcm9Bc3NlbWJsZXJBUk12Ny5jcHA6CisgICAgICAgIChK
U0M6Ok1hY3JvQXNzZW1ibGVyOjpwcm9iZSk6CisgICAgICAgICogYXNzZW1ibGVyL01hY3JvQXNz
ZW1ibGVyQVJNdjcuaDoKKyAgICAgICAgKEpTQzo6TWFjcm9Bc3NlbWJsZXJBUk12Nzo6dHJ1c3Rl
ZEltbTMyRnJvbVB0cik6CisgICAgICAgICogYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyUHJpbnRl
ci5jcHA6CisgICAgICAgICogYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyUHJpbnRlci5oOgorICAg
ICAgICAqIGFzc2VtYmxlci9NYWNyb0Fzc2VtYmxlclg4NkNvbW1vbi5jcHA6CisgICAgICAgICog
YXNzZW1ibGVyL3Rlc3RtYXNtLmNwcDoKKyAgICAgICAgKEpTQzo6aXNTcGVjaWFsR1BSKToKKyAg
ICAgICAgKEpTQzo6dGVzdFByb2JlTW9kaWZpZXNQcm9ncmFtQ291bnRlcik6CisgICAgICAgIChK
U0M6OnJ1bik6CisgICAgICAgICogYjMvQjNMb3dlclRvQWlyLmNwcDoKKyAgICAgICAgKEpTQzo6
QjM6OkFpcjo6TG93ZXJUb0Fpcjo6cHJpbnQpOgorICAgICAgICAqIGIzL2Fpci9BaXJQcmludFNw
ZWNpYWwuY3BwOgorICAgICAgICAqIGIzL2Fpci9BaXJQcmludFNwZWNpYWwuaDoKKwogMjAxNy0w
OC0wOSAgWXVzdWtlIFN1enVraSAgPHV0YXRhbmUudGVhQGdtYWlsLmNvbT4KIAogICAgICAgICBb
V1RGXSBUaHJlYWRTcGVjaWZpYyBzaG91bGQgbm90IGludHJvZHVjZSBhZGRpdGlvbmFsIGluZGly
ZWN0aW9uCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL0Fic3RyYWN0TWFj
cm9Bc3NlbWJsZXIuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1i
bGVyL0Fic3RyYWN0TWFjcm9Bc3NlbWJsZXIuaAkocmV2aXNpb24gMjIwNTQ5KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9BYnN0cmFjdE1hY3JvQXNzZW1ibGVyLmgJKHdvcmtp
bmcgY29weSkKQEAgLTQzLDEwICs0Myw4IEBAIG5hbWVzcGFjZSBKU0MgewogCiAjaWYgRU5BQkxF
KEFTU0VNQkxFUikKIAotI2lmIEVOQUJMRShNQVNNX1BST0JFKQogc3RydWN0IFByb2JlQ29udGV4
dDsKIHR5cGVkZWYgdm9pZCAoKlByb2JlRnVuY3Rpb24pKHN0cnVjdCBQcm9iZUNvbnRleHQqKTsK
LSNlbmRpZgogICAgIAogY2xhc3MgQWxsb3dNYWNyb1NjcmF0Y2hSZWdpc3RlclVzYWdlOwogY2xh
c3MgRGlzYWxsb3dNYWNyb1NjcmF0Y2hSZWdpc3RlclVzYWdlOwpJbmRleDogU291cmNlL0phdmFT
Y3JpcHRDb3JlL2Fzc2VtYmxlci9NYWNyb0Fzc2VtYmxlci5jcHAKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9NYWNyb0Fzc2VtYmxlci5jcHAJKHJldmlzaW9u
IDIyMDU0OSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvTWFjcm9Bc3NlbWJs
ZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zNCw3ICszNCw2IEBAIG5hbWVzcGFjZSBKU0Mgewog
CiBjb25zdCBkb3VibGUgTWFjcm9Bc3NlbWJsZXI6OnR3b1RvVGhlMzIgPSAoZG91YmxlKTB4MTAw
MDAwMDAwdWxsOwogCi0jaWYgRU5BQkxFKE1BU01fUFJPQkUpCiBzdGF0aWMgdm9pZCBzdGRGdW5j
dGlvbkNhbGxiYWNrKFByb2JlQ29udGV4dCogY29udGV4dCkKIHsKICAgICBhdXRvIGZ1bmMgPSBz
dGF0aWNfY2FzdDxjb25zdCBzdGQ6OmZ1bmN0aW9uPHZvaWQoUHJvYmVDb250ZXh0Kik+Kj4oY29u
dGV4dC0+YXJnKTsKQEAgLTQ1LDcgKzQ0LDYgQEAgdm9pZCBNYWNyb0Fzc2VtYmxlcjo6cHJvYmUo
c3RkOjpmdW5jdGlvbgogewogICAgIHByb2JlKHN0ZEZ1bmN0aW9uQ2FsbGJhY2ssIG5ldyBzdGQ6
OmZ1bmN0aW9uPHZvaWQoUHJvYmVDb250ZXh0Kik+KGZ1bmMpKTsKIH0KLSNlbmRpZiAvLyBFTkFC
TEUoTUFTTV9QUk9CRSkKIAogfSAvLyBuYW1lc3BhY2UgSlNDCiAKSW5kZXg6IFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9hc3NlbWJsZXIvTWFjcm9Bc3NlbWJsZXIuaAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyLmgJKHJldmlzaW9uIDIy
MDU0OSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvTWFjcm9Bc3NlbWJsZXIu
aAkod29ya2luZyBjb3B5KQpAQCAtMTgyNCw3ICsxODI0LDYgQEAgcHVibGljOgogICAgICAgICB1
cnNoaWZ0MzIoc3JjLCB0cnVzdGVkSW1tMzJGb3JTaGlmdChhbW91bnQpLCBkZXN0KTsKICAgICB9
CiAKLSNpZiBFTkFCTEUoTUFTTV9QUk9CRSkKICAgICBzdHJ1Y3QgQ1BVU3RhdGU7CiAKICAgICAv
LyBUaGlzIGZ1bmN0aW9uIGVtaXRzIGNvZGUgdG8gcHJlc2VydmUgdGhlIENQVVN0YXRlIChlLmcu
IHJlZ2lzdGVycyksCkBAIC0xODQ4LDEwICsxODQ3LDggQEAgcHVibGljOgogICAgIHZvaWQgcHJv
YmUoUHJvYmVGdW5jdGlvbiwgdm9pZCogYXJnKTsKIAogICAgIEpTX0VYUE9SVF9QUklWQVRFIHZv
aWQgcHJvYmUoc3RkOjpmdW5jdGlvbjx2b2lkKFByb2JlQ29udGV4dCopPik7Ci0jZW5kaWYgLy8g
RU5BQkxFKE1BU01fUFJPQkUpCiAKICAgICAvLyBMZXQncyB5b3UgcHJpbnQgZnJvbSB5b3VyIEpJ
VCBnZW5lcmF0ZWQgY29kZS4KLSAgICAvLyBUaGlzIG9ubHkgd29ya3MgaWYgRU5BQkxFKE1BU01f
UFJPQkUpLiBPdGhlcndpc2UsIHByaW50KCkgaXMgYSBuby1vcC4KICAgICAvLyBTZWUgY29tbWVu
dHMgaW4gTWFjcm9Bc3NlbWJsZXJQcmludGVyLmggZm9yIGV4YW1wbGVzIG9mIGhvdyB0byB1c2Ug
dGhpcy4KICAgICB0ZW1wbGF0ZTx0eXBlbmFtZS4uLiBBcmd1bWVudHM+CiAgICAgdm9pZCBwcmlu
dChBcmd1bWVudHMmJi4uLiBhcmdzKTsKQEAgLTE4NTksOCArMTg1Niw2IEBAIHB1YmxpYzoKICAg
ICB2b2lkIHByaW50KFByaW50ZXI6OlByaW50UmVjb3JkTGlzdCopOwogfTsKIAotI2lmIEVOQUJM
RShNQVNNX1BST0JFKQotCiBzdHJ1Y3QgTWFjcm9Bc3NlbWJsZXI6OkNQVVN0YXRlIHsKICAgICBz
dGF0aWMgaW5saW5lIGNvbnN0IGNoYXIqIGdwck5hbWUoUmVnaXN0ZXJJRCBpZCkgeyByZXR1cm4g
TWFjcm9Bc3NlbWJsZXI6Omdwck5hbWUoaWQpOyB9CiAgICAgc3RhdGljIGlubGluZSBjb25zdCBj
aGFyKiBzcHJOYW1lKFNQUmVnaXN0ZXJJRCBpZCkgeyByZXR1cm4gTWFjcm9Bc3NlbWJsZXI6OnNw
ck5hbWUoaWQpOyB9CkBAIC0xOTYzLDcgKzE5NTgsNiBAQCBzdHJ1Y3QgUHJvYmVDb250ZXh0IHsK
ICAgICB2b2lkKiYgZnAoKSB7IHJldHVybiBjcHUuZnAoKTsgfQogICAgIHZvaWQqJiBzcCgpIHsg
cmV0dXJuIGNwdS5zcCgpOyB9CiB9OwotI2VuZGlmIC8vIEVOQUJMRShNQVNNX1BST0JFKQogICAg
IAogfSAvLyBuYW1lc3BhY2UgSlNDCiAKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3Nl
bWJsZXIvTWFjcm9Bc3NlbWJsZXJBUk02NC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFT
Y3JpcHRDb3JlL2Fzc2VtYmxlci9NYWNyb0Fzc2VtYmxlckFSTTY0LmNwcAkocmV2aXNpb24gMjIw
NTQ5KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9NYWNyb0Fzc2VtYmxlckFS
TTY0LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzIsOCArMzIsNiBAQAogCiBuYW1lc3BhY2UgSlND
IHsKIAotI2lmIEVOQUJMRShNQVNNX1BST0JFKQotCiBleHRlcm4gIkMiIHZvaWQgY3RpTWFzbVBy
b2JlVHJhbXBvbGluZSgpOwogCiB1c2luZyBuYW1lc3BhY2UgQVJNNjRSZWdpc3RlcnM7CkBAIC01
NTEsNyArNTQ5LDYgQEAgdm9pZCBNYWNyb0Fzc2VtYmxlcjo6cHJvYmUoUHJvYmVGdW5jdGlvbgog
ICAgIGxvYWQ2NChBZGRyZXNzKHNwLCBvZmZzZXRvZihPdXRnb2luZ1Byb2JlUmVjb3JkLCBscikp
LCBscik7CiAgICAgYWRkNjQoVHJ1c3RlZEltbTMyKHNpemVvZihPdXRnb2luZ1Byb2JlUmVjb3Jk
KSksIHNwKTsKIH0KLSNlbmRpZiAvLyBFTkFCTEUoTUFTTV9QUk9CRSkKIAogfSAvLyBuYW1lc3Bh
Y2UgSlNDCiAKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvTWFjcm9Bc3Nl
bWJsZXJBUk0uY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJs
ZXIvTWFjcm9Bc3NlbWJsZXJBUk0uY3BwCShyZXZpc2lvbiAyMjA1NDkpCisrKyBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyQVJNLmNwcAkod29ya2luZyBjb3B5
KQpAQCAtOTYsOCArOTYsNiBAQCB2b2lkIE1hY3JvQXNzZW1ibGVyQVJNOjpsb2FkMzJXaXRoVW5h
bGlnCiB9CiAjZW5kaWYgLy8gQ1BVKEFSTVY1X09SX0xPV0VSKQogCi0jaWYgRU5BQkxFKE1BU01f
UFJPQkUpCi0KIGV4dGVybiAiQyIgdm9pZCBjdGlNYXNtUHJvYmVUcmFtcG9saW5lKCk7CiAKICNp
ZiBDT01QSUxFUihHQ0NfT1JfQ0xBTkcpCkBAIC0zODIsNyArMzgwLDYgQEAgdm9pZCBNYWNyb0Fz
c2VtYmxlcjo6cHJvYmUoUHJvYmVGdW5jdGlvbgogICAgIG1fYXNzZW1ibGVyLmJseChSZWdpc3Rl
cklEOjpTMCk7CiAKIH0KLSNlbmRpZiAvLyBFTkFCTEUoTUFTTV9QUk9CRSkKIAogfSAvLyBuYW1l
c3BhY2UgSlNDCiAKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvTWFjcm9B
c3NlbWJsZXJBUk0uaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1i
bGVyL01hY3JvQXNzZW1ibGVyQVJNLmgJKHJldmlzaW9uIDIyMDU0OSkKKysrIFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9hc3NlbWJsZXIvTWFjcm9Bc3NlbWJsZXJBUk0uaAkod29ya2luZyBjb3B5KQpA
QCAtMTU4Niw3ICsxNTg2LDYgQEAgcHJvdGVjdGVkOgogICAgICAgICBtX2Fzc2VtYmxlci5ibHgo
QVJNUmVnaXN0ZXJzOjpTMSk7CiAgICAgfQogCi0jaWYgRU5BQkxFKE1BU01fUFJPQkUpCiAgICAg
aW5saW5lIFRydXN0ZWRJbW0zMiB0cnVzdGVkSW1tMzJGcm9tUHRyKHZvaWQqIHB0cikKICAgICB7
CiAgICAgICAgIHJldHVybiBUcnVzdGVkSW1tMzIoVHJ1c3RlZEltbVB0cihwdHIpKTsKQEAgLTE2
MDEsNyArMTYwMCw2IEBAIHByb3RlY3RlZDoKICAgICB7CiAgICAgICAgIHJldHVybiBUcnVzdGVk
SW1tMzIoVHJ1c3RlZEltbVB0cihyZWludGVycHJldF9jYXN0PHZvaWQqPihmdW5jdGlvbikpKTsK
ICAgICB9Ci0jZW5kaWYKIAogcHJpdmF0ZToKICAgICBmcmllbmQgY2xhc3MgTGlua0J1ZmZlcjsK
SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvTWFjcm9Bc3NlbWJsZXJBUk12
Ny5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9NYWNy
b0Fzc2VtYmxlckFSTXY3LmNwcAkocmV2aXNpb24gMjIwNTQ5KQorKysgU291cmNlL0phdmFTY3Jp
cHRDb3JlL2Fzc2VtYmxlci9NYWNyb0Fzc2VtYmxlckFSTXY3LmNwcAkod29ya2luZyBjb3B5KQpA
QCAtMzIsOCArMzIsNiBAQAogCiBuYW1lc3BhY2UgSlNDIHsKIAotI2lmIEVOQUJMRShNQVNNX1BS
T0JFKQotCiBleHRlcm4gIkMiIHZvaWQgY3RpTWFzbVByb2JlVHJhbXBvbGluZSgpOwogCiAjaWYg
Q09NUElMRVIoR0NDX09SX0NMQU5HKQpAQCAtMzU5LDcgKzM1Nyw2IEBAIHZvaWQgTWFjcm9Bc3Nl
bWJsZXI6OnByb2JlKFByb2JlRnVuY3Rpb24KICAgICBtb3ZlKHRydXN0ZWRJbW0zMkZyb21QdHIo
Y3RpTWFzbVByb2JlVHJhbXBvbGluZSksIFJlZ2lzdGVySUQ6OmlwKTsKICAgICBtX2Fzc2VtYmxl
ci5ibHgoUmVnaXN0ZXJJRDo6aXApOwogfQotI2VuZGlmIC8vIEVOQUJMRShNQVNNX1BST0JFKQog
CiB9IC8vIG5hbWVzcGFjZSBKU0MKIApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2Vt
Ymxlci9NYWNyb0Fzc2VtYmxlckFSTXY3LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3Jp
cHRDb3JlL2Fzc2VtYmxlci9NYWNyb0Fzc2VtYmxlckFSTXY3LmgJKHJldmlzaW9uIDIyMDU0OSkK
KysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvTWFjcm9Bc3NlbWJsZXJBUk12Ny5o
CSh3b3JraW5nIGNvcHkpCkBAIC0yMTA3LDcgKzIxMDcsNiBAQCBwcm90ZWN0ZWQ6CiAgICAgICAg
IHJldHVybiBzdGF0aWNfY2FzdDxBUk12N0Fzc2VtYmxlcjo6Q29uZGl0aW9uPihjb25kKTsKICAg
ICB9CiAgICAgCi0jaWYgRU5BQkxFKE1BU01fUFJPQkUpCiAgICAgaW5saW5lIFRydXN0ZWRJbW0z
MiB0cnVzdGVkSW1tMzJGcm9tUHRyKHZvaWQqIHB0cikKICAgICB7CiAgICAgICAgIHJldHVybiBU
cnVzdGVkSW1tMzIoVHJ1c3RlZEltbVB0cihwdHIpKTsKQEAgLTIxMjIsNyArMjEyMSw2IEBAIHBy
b3RlY3RlZDoKICAgICB7CiAgICAgICAgIHJldHVybiBUcnVzdGVkSW1tMzIoVHJ1c3RlZEltbVB0
cihyZWludGVycHJldF9jYXN0PHZvaWQqPihmdW5jdGlvbikpKTsKICAgICB9Ci0jZW5kaWYKIAog
cHJpdmF0ZToKICAgICBmcmllbmQgY2xhc3MgTGlua0J1ZmZlcjsKSW5kZXg6IFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9hc3NlbWJsZXIvTWFjcm9Bc3NlbWJsZXJQcmludGVyLmNwcAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyUHJpbnRl
ci5jcHAJKHJldmlzaW9uIDIyMDU0OSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJs
ZXIvTWFjcm9Bc3NlbWJsZXJQcmludGVyLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjYsOSArMjYs
OCBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIk1hY3JvQXNzZW1ibGVyUHJpbnRl
ci5oIgogCi0jaWYgRU5BQkxFKE1BU01fUFJPQkUpCi0KICNpbmNsdWRlICJNYWNyb0Fzc2VtYmxl
ci5oIgorI2luY2x1ZGUgPGludHR5cGVzLmg+CiAKIG5hbWVzcGFjZSBKU0MgewogbmFtZXNwYWNl
IFByaW50ZXIgewpAQCAtNTMsMjUgKzUyLDI1IEBAIHZvaWQgcHJpbnRBbGxSZWdpc3RlcnMoUHJp
bnRTdHJlYW0mIG91dCwKICAgICBJTkRFTlQsIG91dC5wcmludCgiY3B1OiB7XG4iKTsKIAogI2lm
IFVTRShKU1ZBTFVFMzJfNjQpCi0gICAgI2RlZmluZSBJTlRQVFJfSEVYX1ZBTFVFX0ZPUk1BVCAi
MHglMDhseCIKKyAgICAjZGVmaW5lIElOVFBUUl9IRVhfVkFMVUVfRk9STUFUICIweCUwOCIgUFJJ
eFBUUgogI2Vsc2UKLSAgICAjZGVmaW5lIElOVFBUUl9IRVhfVkFMVUVfRk9STUFUICIweCUwMTZs
eCIKKyAgICAjZGVmaW5lIElOVFBUUl9IRVhfVkFMVUVfRk9STUFUICIweCUwMTYiIFBSSXhQVFIK
ICNlbmRpZgogCiAgICAgZm9yIChhdXRvIGlkID0gTWFjcm9Bc3NlbWJsZXI6OmZpcnN0UmVnaXN0
ZXIoKTsgaWQgPD0gTWFjcm9Bc3NlbWJsZXI6Omxhc3RSZWdpc3RlcigpOyBpZCA9IG5leHRJRChp
ZCkpIHsKICAgICAgICAgaW50cHRyX3QgdmFsdWUgPSBzdGF0aWNfY2FzdDxpbnRwdHJfdD4oY3B1
LmdwcihpZCkpOwotICAgICAgICBJTkRFTlQsIG91dC5wcmludGYoIiAgICAlNnM6ICIgSU5UUFRS
X0hFWF9WQUxVRV9GT1JNQVQgIiAgJWxkXG4iLCBjcHUuZ3ByTmFtZShpZCksIHZhbHVlLCB2YWx1
ZSk7CisgICAgICAgIElOREVOVCwgb3V0LnByaW50ZigiICAgICU2czogIiBJTlRQVFJfSEVYX1ZB
TFVFX0ZPUk1BVCAiICAlIiBQUklkUFRSICJcbiIsIGNwdS5ncHJOYW1lKGlkKSwgdmFsdWUsIHZh
bHVlKTsKICAgICB9CiAgICAgZm9yIChhdXRvIGlkID0gTWFjcm9Bc3NlbWJsZXI6OmZpcnN0U1BS
ZWdpc3RlcigpOyBpZCA8PSBNYWNyb0Fzc2VtYmxlcjo6bGFzdFNQUmVnaXN0ZXIoKTsgaWQgPSBu
ZXh0SUQoaWQpKSB7CiAgICAgICAgIGludHB0cl90IHZhbHVlID0gc3RhdGljX2Nhc3Q8aW50cHRy
X3Q+KGNwdS5zcHIoaWQpKTsKLSAgICAgICAgSU5ERU5ULCBvdXQucHJpbnRmKCIgICAgJTZzOiAi
IElOVFBUUl9IRVhfVkFMVUVfRk9STUFUICIgICVsZFxuIiwgY3B1LnNwck5hbWUoaWQpLCB2YWx1
ZSwgdmFsdWUpOworICAgICAgICBJTkRFTlQsIG91dC5wcmludGYoIiAgICAlNnM6ICIgSU5UUFRS
X0hFWF9WQUxVRV9GT1JNQVQgIiAgJSIgUFJJZFBUUiAiXG4iLCBjcHUuc3ByTmFtZShpZCksIHZh
bHVlLCB2YWx1ZSk7CiAgICAgfQogICAgICN1bmRlZiBJTlRQVFJfSEVYX1ZBTFVFX0ZPUk1BVAog
CiAgICAgZm9yIChhdXRvIGlkID0gTWFjcm9Bc3NlbWJsZXI6OmZpcnN0RlBSZWdpc3RlcigpOyBp
ZCA8PSBNYWNyb0Fzc2VtYmxlcjo6bGFzdEZQUmVnaXN0ZXIoKTsgaWQgPSBuZXh0SUQoaWQpKSB7
CiAgICAgICAgIHVpbnQ2NF90IHUgPSBiaXR3aXNlX2Nhc3Q8dWludDY0X3Q+KGNwdS5mcHIoaWQp
KTsKICAgICAgICAgZG91YmxlIGQgPSBjcHUuZnByKGlkKTsKLSAgICAgICAgSU5ERU5ULCBvdXQu
cHJpbnRmKCIgICAgJTZzOiAweCUwMTZsbHggICUuMTNnXG4iLCBjcHUuZnByTmFtZShpZCksIHUs
IGQpOworICAgICAgICBJTkRFTlQsIG91dC5wcmludGYoIiAgICAlNnM6IDB4JTAxNiIgUFJJeDY0
ICIgICUuMTNnXG4iLCBjcHUuZnByTmFtZShpZCksIHUsIGQpOwogICAgIH0KIAogICAgIElOREVO
VCwgb3V0LnByaW50KCJ9XG4iKTsKQEAgLTk5LDcgKzk4LDcgQEAgdm9pZCBwcmludEZQUmVnaXN0
ZXJJRChQcmludFN0cmVhbSYgb3V0LAogICAgIEZQUmVnaXN0ZXJJRCByZWdJRCA9IGNvbnRleHQu
ZGF0YS5hczxGUFJlZ2lzdGVySUQ+KCk7CiAgICAgY29uc3QgY2hhciogbmFtZSA9IENQVVN0YXRl
OjpmcHJOYW1lKHJlZ0lEKTsKICAgICBkb3VibGUgdmFsdWUgPSBjb250ZXh0LnByb2JlQ29udGV4
dC5mcHIocmVnSUQpOwotICAgIG91dC5wcmludGYoIiVzOjwweCUwMTZsbHggJS4xM2c+IiwgbmFt
ZSwgYml0d2lzZV9jYXN0PHVpbnQ2NF90Pih2YWx1ZSksIHZhbHVlKTsKKyAgICBvdXQucHJpbnRm
KCIlczo8MHglMDE2IiBQUkl4NjQgIiAlLjEzZz4iLCBuYW1lLCBiaXR3aXNlX2Nhc3Q8dWludDY0
X3Q+KHZhbHVlKSwgdmFsdWUpOwogfQogCiB2b2lkIHByaW50QWRkcmVzcyhQcmludFN0cmVhbSYg
b3V0LCBDb250ZXh0JiBjb250ZXh0KQpAQCAtMTQ2LDcgKzE0NSw3IEBAIHZvaWQgcHJpbnRNZW1v
cnkoUHJpbnRTdHJlYW0mIG91dCwgQ29udGUKICAgICAgICAgfQogICAgICAgICBpZiAobWVtb3J5
Lm51bUJ5dGVzID09IHNpemVvZihpbnQ2NF90KSkgewogICAgICAgICAgICAgYXV0byBwID0gcmVp
bnRlcnByZXRfY2FzdDxpbnQ2NF90Kj4ocHRyKTsKLSAgICAgICAgICAgIG91dC5wcmludGYoIiVw
OjwweCUwMTZsbHggJWxsZD4iLCBwLCAqcCwgKnApOworICAgICAgICAgICAgb3V0LnByaW50Zigi
JXA6PDB4JTAxNiIgUFJJeDY0ICIgJSIgUFJJZDY0ICI+IiwgcCwgKnAsICpwKTsKICAgICAgICAg
ICAgIHJldHVybjsKICAgICAgICAgfQogICAgICAgICAvLyBFbHNlLCB1bmtub3duIHdvcmQgc2l6
ZS4gRmFsbCB0aHJ1IGFuZCBkdW1wIGluIHRoZSBnZW5lcmljIHdheS4KQEAgLTE4Myw0ICsxODIs
MyBAQCB2b2lkIHByaW50Q2FsbGJhY2soUHJvYmVDb250ZXh0KiBwcm9iZUNvCiB9IC8vIG5hbWVz
cGFjZSBQcmludGVyCiB9IC8vIG5hbWVzcGFjZSBKU0MKIAotI2VuZGlmIC8vIEVOQUJMRShNQVNN
X1BST0JFKQpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9NYWNyb0Fzc2Vt
YmxlclByaW50ZXIuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1i
bGVyL01hY3JvQXNzZW1ibGVyUHJpbnRlci5oCShyZXZpc2lvbiAyMjA1NDkpCisrKyBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyUHJpbnRlci5oCSh3b3JraW5n
IGNvcHkpCkBAIC0zMiw4ICszMiw2IEBAIG5hbWVzcGFjZSBKU0MgewogCiAjaWYgRU5BQkxFKEFT
U0VNQkxFUikKIAotI2lmIEVOQUJMRShNQVNNX1BST0JFKQotICAgIAogLy8gV2hhdCBpcyBNYWNy
b0Fzc2VtYmxlcjo6cHJpbnQoKT8KIC8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
IC8vIFRoZSBNYWNyb0Fzc3NlbWJsZXI6OnByaW50KCkgbWFrZXMgaXQgZWFzeSB0byBhZGQgcHJp
bnQgbG9nZ2luZwpAQCAtMjQwLDE1ICsyMzgsNiBAQCBpbmxpbmUgdm9pZCBNYWNyb0Fzc2VtYmxl
cjo6cHJpbnQoUHJpbnRlCiAgICAgcHJvYmUoUHJpbnRlcjo6cHJpbnRDYWxsYmFjaywgcHJpbnRS
ZWNvcmRMaXN0KTsKIH0KIAotI2Vsc2UgLy8gRU5BQkxFKE1BU01fUFJPQkUpCi0KLXRlbXBsYXRl
PHR5cGVuYW1lLi4uIEFyZ3VtZW50cz4KLWlubGluZSB2b2lkIE1hY3JvQXNzZW1ibGVyOjpwcmlu
dChBcmd1bWVudHMmJi4uLikgeyB9Ci0KLWlubGluZSB2b2lkIE1hY3JvQXNzZW1ibGVyOjpwcmlu
dChQcmludGVyOjpQcmludFJlY29yZExpc3QqKSB7IH0KLQotI2VuZGlmIC8vIEVOQUJMRShNQVNN
X1BST0JFKQotCiAjZW5kaWYgLy8gRU5BQkxFKEFTU0VNQkxFUikKIAogfSAvLyBuYW1lc3BhY2Ug
SlNDCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVy
WDg2Q29tbW9uLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1i
bGVyL01hY3JvQXNzZW1ibGVyWDg2Q29tbW9uLmNwcAkocmV2aXNpb24gMjIwNTQ5KQorKysgU291
cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9NYWNyb0Fzc2VtYmxlclg4NkNvbW1vbi5jcHAJ
KHdvcmtpbmcgY29weSkKQEAgLTMyLDggKzMyLDYgQEAKIAogbmFtZXNwYWNlIEpTQyB7CiAKLSNp
ZiBFTkFCTEUoTUFTTV9QUk9CRSkKLQogZXh0ZXJuICJDIiB2b2lkIGN0aU1hc21Qcm9iZVRyYW1w
b2xpbmUoKTsKIAogI2lmIENPTVBJTEVSKEdDQ19PUl9DTEFORykKQEAgLTU3NSw4ICs1NzMsNiBA
QCB2b2lkIE1hY3JvQXNzZW1ibGVyOjpwcm9iZShQcm9iZUZ1bmN0aW9uCiAgICAgY2FsbChSZWdp
c3RlcklEOjplYXgpOwogfQogCi0jZW5kaWYgLy8gRU5BQkxFKE1BU01fUFJPQkUpCi0KICNpZiBD
UFUoWDg2KSAmJiAhT1MoTUFDX09TX1gpCiBNYWNyb0Fzc2VtYmxlclg4NkNvbW1vbjo6U1NFMkNo
ZWNrU3RhdGUgTWFjcm9Bc3NlbWJsZXJYODZDb21tb246OnNfc3NlMkNoZWNrU3RhdGUgPSBOb3RD
aGVja2VkU1NFMjsKICNlbmRpZgpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxl
ci90ZXN0bWFzbS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2Vt
Ymxlci90ZXN0bWFzbS5jcHAJKHJldmlzaW9uIDIyMDU0OSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9hc3NlbWJsZXIvdGVzdG1hc20uY3BwCSh3b3JraW5nIGNvcHkpCkBAIC04NSw3ICs4NSw2
IEBAIHRlbXBsYXRlPHR5cGVuYW1lIFQ+IFQgbmV4dElEKFQgaWQpIHsgcmUKICNkZWZpbmUgQ0hF
Q0tfRE9VQkxFX0JJVFdJU0VfRVEoYSwgYikgXAogICAgIENIRUNLKGJpdHdpc2VfY2FzdDx1aW50
NjRfdD4oYSkgPT0gYml0d2lzZV9jYXN0PHVpbnQ2NF90PihhKSkKIAotI2lmIEVOQUJMRShNQVNN
X1BST0JFKQogYm9vbCBpc1BDKE1hY3JvQXNzZW1ibGVyOjpSZWdpc3RlcklEIGlkKQogewogI2lm
IENQVShBUk1fVEhVTUIyKSB8fCBDUFUoQVJNX1RSQURJVElPTkFMKQpAQCAtMTE2LDcgKzExNSw2
IEBAIGJvb2wgaXNTcGVjaWFsR1BSKE1hY3JvQXNzZW1ibGVyOjpSZWdpc3QKICNlbmRpZgogICAg
IHJldHVybiBmYWxzZTsKIH0KLSNlbmRpZiAvLyBFTkFCTEUoTUFTTV9QUk9CRSkKIAogTWFjcm9B
c3NlbWJsZXJDb2RlUmVmIGNvbXBpbGUoR2VuZXJhdG9yJiYgZ2VuZXJhdGUpCiB7CkBAIC0xNDks
NyArMTQ3LDYgQEAgdm9pZCB0ZXN0U2ltcGxlKCkKICAgICB9KSA9PSA0Mik7CiB9CiAKLSNpZiBF
TkFCTEUoTUFTTV9QUk9CRSkKIHZvaWQgdGVzdFByb2JlUmVhZHNBcmd1bWVudFJlZ2lzdGVycygp
CiB7CiAgICAgYm9vbCBwcm9iZVdhc0NhbGxlZCA9IGZhbHNlOwpAQCAtNDkzLDcgKzQ5MCw2IEBA
IHZvaWQgdGVzdFByb2JlTW9kaWZpZXNQcm9ncmFtQ291bnRlcigpCiAgICAgQ0hFQ0socHJvYmVD
YWxsQ291bnQgPT0gMik7CiAgICAgQ0hFQ0soY29udGludWF0aW9uV2FzUmVhY2hlZCk7CiB9Ci0j
ZW5kaWYgLy8gRU5BQkxFKE1BU01fUFJPQkUpCiAKICNkZWZpbmUgUlVOKHRlc3QpIGRvIHsgICAg
ICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgICAgaWYgKCFzaG91bGRSdW4oI3Rlc3QpKSAg
ICAgICAgICAgICAgICAgIFwKQEAgLTUxOSwxNCArNTE1LDEyIEBAIHZvaWQgcnVuKGNvbnN0IGNo
YXIqIGZpbHRlcikKIAogICAgIFJVTih0ZXN0U2ltcGxlKCkpOwogCi0jaWYgRU5BQkxFKE1BU01f
UFJPQkUpCiAgICAgUlVOKHRlc3RQcm9iZVJlYWRzQXJndW1lbnRSZWdpc3RlcnMoKSk7CiAgICAg
UlVOKHRlc3RQcm9iZVdyaXRlc0FyZ3VtZW50UmVnaXN0ZXJzKCkpOwogICAgIFJVTih0ZXN0UHJv
YmVQcmVzZXJ2ZXNHUFJTKCkpOwogICAgIFJVTih0ZXN0UHJvYmVNb2RpZmllc1N0YWNrUG9pbnRl
clRvSW5zaWRlUHJvYmVDb250ZXh0T25TdGFjaygpKTsKICAgICBSVU4odGVzdFByb2JlTW9kaWZp
ZXNTdGFja1BvaW50ZXJUb05CeXRlc0JlbG93U1AoKSk7CiAgICAgUlVOKHRlc3RQcm9iZU1vZGlm
aWVzUHJvZ3JhbUNvdW50ZXIoKSk7Ci0jZW5kaWYKIAogICAgIGlmICh0YXNrcy5pc0VtcHR5KCkp
CiAgICAgICAgIHVzYWdlKCk7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNMb3dl
clRvQWlyLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNMb3dl
clRvQWlyLmNwcAkocmV2aXNpb24gMjIwNTQ5KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2Iz
L0IzTG93ZXJUb0Fpci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTExNDksNyArMTE0OSw2IEBAIHBy
aXZhdGU6CiAgICAgICAgIHJldHVybiBBaXI6Ok9vcHM7CiAgICAgfQogCi0jaWYgRU5BQkxFKE1B
U01fUFJPQkUpCiAgICAgdGVtcGxhdGU8dHlwZW5hbWUuLi4gQXJndW1lbnRzPgogICAgIHZvaWQg
cHJpbnQoQXJndW1lbnRzJiYuLi4gYXJndW1lbnRzKQogICAgIHsKQEAgLTExNjYsMTAgKzExNjUs
NiBAQCBwcml2YXRlOgogICAgICAgICBQcmludGVyOjphcHBlbmRBaXJBcmdzKGluc3QsIHN0ZDo6
Zm9yd2FyZDxBcmd1bWVudHM+KGFyZ3VtZW50cykuLi4pOwogICAgICAgICBhcHBlbmQoV1RGTW92
ZShpbnN0KSk7CiAgICAgfQotI2Vsc2UKLSAgICB0ZW1wbGF0ZTx0eXBlbmFtZS4uLiBBcmd1bWVu
dHM+Ci0gICAgdm9pZCBwcmludChBcmd1bWVudHMmJi4uLikgeyB9Ci0jZW5kaWYgLy8gRU5BQkxF
KE1BU01fUFJPQkUpCiAKICAgICB0ZW1wbGF0ZTx0eXBlbmFtZS4uLiBBcmd1bWVudHM+CiAgICAg
dm9pZCBhcHBlbmQoQWlyOjpLaW5kIGtpbmQsIEFyZ3VtZW50cyYmLi4uIGFyZ3VtZW50cykKSW5k
ZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9haXIvQWlyUHJpbnRTcGVjaWFsLmNwcAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvYWlyL0FpclByaW50U3BlY2lhbC5j
cHAJKHJldmlzaW9uIDIyMDU0OSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9haXIvQWly
UHJpbnRTcGVjaWFsLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjcsNyArMjcsNiBAQAogI2luY2x1
ZGUgIkFpclByaW50U3BlY2lhbC5oIgogCiAjaWYgRU5BQkxFKEIzX0pJVCkKLSNpZiBFTkFCTEUo
TUFTTV9QUk9CRSkKIAogI2luY2x1ZGUgIk1hY3JvQXNzZW1ibGVyUHJpbnRlci5oIgogCkBAIC0x
MjUsNSArMTI0LDQgQEAgTk9fUkVUVVJOIHZvaWQgcHJpbnRBaXJBcmcoUHJpbnRTdHJlYW0mLAog
CiB9IC8vIG5hbWVzcGFjZSBKU0MKIAotI2VuZGlmIC8vIEVOQUJMRShNQVNNX1BST0JFKQogI2Vu
ZGlmIC8vIEVOQUJMRShCM19KSVQpCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvYWly
L0FpclByaW50U3BlY2lhbC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9i
My9haXIvQWlyUHJpbnRTcGVjaWFsLmgJKHJldmlzaW9uIDIyMDU0OSkKKysrIFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9iMy9haXIvQWlyUHJpbnRTcGVjaWFsLmgJKHdvcmtpbmcgY29weSkKQEAgLTI2
LDcgKzI2LDYgQEAKICNwcmFnbWEgb25jZQogCiAjaWYgRU5BQkxFKEIzX0pJVCkKLSNpZiBFTkFC
TEUoTUFTTV9QUk9CRSkKIAogI2luY2x1ZGUgIkFpckluc3QuaCIKICNpbmNsdWRlICJBaXJTcGVj
aWFsLmgiCkBAIC0xMjksNSArMTI4LDQgQEAgcHJpdmF0ZToKIAogfSB9IH0gLy8gbmFtZXNwYWNl
IEpTQzo6QjM6OkFpcgogCi0jZW5kaWYgLy8gRU5BQkxFKE1BU01fUFJPQkUpCiAjZW5kaWYgLy8g
RU5BQkxFKEIzX0pJVCkKSW5kZXg6IFNvdXJjZS9XVEYvQ2hhbmdlTG9nCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9XVEYvQ2hhbmdlTG9nCShyZXZpc2lvbiAyMjA1NDkpCisrKyBTb3VyY2UvV1RGL0No
YW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDIzIEBACisyMDE3LTA4LTEwICBNYXJr
IExhbSAgPG1hcmsubGFtQGFwcGxlLmNvbT4KKworICAgICAgICBNYWtlIHRoZSBNQVNNX1BST0JF
IG1lY2hhbmlzbSBtYW5kYXRvcnkgZm9yIERGRyBhbmQgRlRMIGJ1aWxkcy4KKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE3NTQ0NgorICAgICAgICA8cmRh
cjovL3Byb2JsZW0vMzM4MzY1NDU+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgVGhpcyBpcyBuZWVkZWQgaW4gb3JkZXIgdG8gc3VwcG9ydCBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTc0NjQ1LgorICAgICAgICBPbmUgY29u
c2VxdWVuY2Ugb2YgdGhpcyBpcyB0aGF0IHRoZSBERkcgd2lsbCBub3cgYmUgZGlzYWJsZWQgZm9y
IHRoZSBNSVBTIGFuZAorICAgICAgICBXaW5kb3dzIHBvcnRzLiBTZWU6CisgICAgICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTc1NDQ3CisgICAgICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTc1NDQ5CisKKyAgICAg
ICAgQWxzbywgd2Ugc2hvdWxkIG9ubHkgRU5BQkxFX1NJR05BTF9CQVNFRF9WTV9UUkFQUyBpZiB0
aGUgREZHIGlzIGVuYWJsZWQuICBJdCB3YXMKKyAgICAgICAgbmV2ZXIgbWVhbmluZ2Z1bCB0byB1
c2UgU0lHTkFMX0JBU0VEX1ZNX1RSQVBTIHdpdGggdGhlIGJhc2VsaW5lIEpJVCBhbnl3YXkuICBU
aGlzCisgICAgICAgIGlzIGEgbWlzLWNvbmZpZ3VyYXRpb24gZXJyb3IgdGhhdCBpcyBub3cgZml4
ZWQuCisKKyAgICAgICAgKiB3dGYvUGxhdGZvcm0uaDoKKwogMjAxNy0wOC0wOSAgWXVzdWtlIFN1
enVraSAgPHV0YXRhbmUudGVhQGdtYWlsLmNvbT4KIAogICAgICAgICBbV1RGXSBUaHJlYWRTcGVj
aWZpYyBzaG91bGQgbm90IGludHJvZHVjZSBhZGRpdGlvbmFsIGluZGlyZWN0aW9uCkluZGV4OiBT
b3VyY2UvV1RGL3d0Zi9QbGF0Zm9ybS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XVEYvd3RmL1Bs
YXRmb3JtLmgJKHJldmlzaW9uIDIyMDU0OSkKKysrIFNvdXJjZS9XVEYvd3RmL1BsYXRmb3JtLmgJ
KHdvcmtpbmcgY29weSkKQEAgLTc3MCwxNyArNzcwLDIzIEBACiAKICNpZiAhZGVmaW5lZChFTkFC
TEVfREZHX0pJVCkgJiYgRU5BQkxFKEpJVCkKIC8qIEVuYWJsZSB0aGUgREZHIEpJVCBvbiBYODYg
YW5kIFg4Nl82NC4gKi8KLSNpZiAoQ1BVKFg4NikgfHwgQ1BVKFg4Nl82NCkpICYmIChPUyhEQVJX
SU4pIHx8IE9TKExJTlVYKSB8fCBPUyhGUkVFQlNEKSB8fCBPUyhXSU5ET1dTKSB8fCBPUyhIVVJE
KSkKKyNpZiAoQ1BVKFg4NikgfHwgQ1BVKFg4Nl82NCkpICYmIChPUyhEQVJXSU4pIHx8IE9TKExJ
TlVYKSB8fCBPUyhGUkVFQlNEKSB8fCBPUyhIVVJEKSkKICNkZWZpbmUgRU5BQkxFX0RGR19KSVQg
MQogI2VuZGlmCiAvKiBFbmFibGUgdGhlIERGRyBKSVQgb24gQVJNdjcuICBPbmx5IHRlc3RlZCBv
biBpT1MgYW5kIFF0L0dUSysgTGludXguICovCiAjaWYgKENQVShBUk1fVEhVTUIyKSB8fCBDUFUo
QVJNNjQpKSAmJiAoUExBVEZPUk0oSU9TKSB8fCBQTEFURk9STShHVEspIHx8IFBMQVRGT1JNKFdQ
RSkpCiAjZGVmaW5lIEVOQUJMRV9ERkdfSklUIDEKICNlbmRpZgotLyogRW5hYmxlIHRoZSBERkcg
SklUIG9uIEFSTSBhbmQgTUlQUy4gKi8KLSNpZiBDUFUoQVJNX1RSQURJVElPTkFMKSB8fCBDUFUo
TUlQUykKKy8qIEVuYWJsZSB0aGUgREZHIEpJVCBvbiBBUk0uICovCisjaWYgQ1BVKEFSTV9UUkFE
SVRJT05BTCkKICNkZWZpbmUgRU5BQkxFX0RGR19KSVQgMQogI2VuZGlmCisvKiBGSVhNRTogTUlQ
UyBjYW5ub3QgZW5hYmxlIHRoZSBERkcgdW50aWwgaXQgaGFzIHN1cHBvcnQgZm9yIE1hY3JvQXNz
ZW1ibGVyOjpwcm9iZSgpLgorICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTE3NTQ0NworKi8KKy8qIEZJWE1FOiBXaW5kb3dzIGNhbm5vdCBlbmFibGUgdGhlIERGRyB1
bnRpbCBpdCBoYXMgc3VwcG9ydCBmb3IgTWFjcm9Bc3NlbWJsZXI6OnByb2JlKCkuCisgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTc1NDQ5CisqLwogI2VuZGlmCiAK
IC8qIENvbmN1cnJlbnQgSlMgb25seSB3b3JrcyBvbiA2NC1iaXQgcGxhdGZvcm1zIGJlY2F1c2Ug
aXQgcmVxdWlyZXMgdGhhdApAQCAtNzk5LDE5ICs4MDUsMjMgQEAKICNkZWZpbmUgRU5BQkxFX0ZB
U1RfVExTX0pJVCAxCiAjZW5kaWYKIAotLyogVGhpcyBjb250cm9scyB3aGV0aGVyIEIzIGlzIGJ1
aWx0LiBCMyBpcyBuZWVkZWQgZm9yIEZUTCBKSVQgYW5kIFdlYkFzc2VtYmx5ICovCi0jaWYgRU5B
QkxFKEZUTF9KSVQpIHx8IEVOQUJMRShXRUJBU1NFTUJMWSkKLSNkZWZpbmUgRU5BQkxFX0IzX0pJ
VCAxCi0jZW5kaWYKLQogLyogSWYgdGhlIGJhc2VsaW5lIGppdCBpcyBub3QgYXZhaWxhYmxlLCB0
aGVuIGRpc2FibGUgdXBwZXIgdGllcnMgYXMgd2VsbDogKi8KICNpZiAhRU5BQkxFKEpJVCkKICN1
bmRlZiBFTkFCTEVfREZHX0pJVAogI3VuZGVmIEVOQUJMRV9GVExfSklUCi0jdW5kZWYgRU5BQkxF
X0IzX0pJVAogI2RlZmluZSBFTkFCTEVfREZHX0pJVCAwCiAjZGVmaW5lIEVOQUJMRV9GVExfSklU
IDAKLSNkZWZpbmUgRU5BQkxFX0IzX0pJVCAwCisjZW5kaWYKKworLyogSWYgdGhlIERGRyBqaXQg
aXMgbm90IGF2YWlsYWJsZSwgdGhlbiBkaXNhYmxlIHVwcGVyIHRpZXJzIGFzIHdlbGw6ICovCisj
aWYgIUVOQUJMRShERkdfSklUKQorI3VuZGVmIEVOQUJMRV9GVExfSklUCisjZGVmaW5lIEVOQUJM
RV9GVExfSklUIDAKKyNlbmRpZgorCisvKiBUaGlzIGNvbnRyb2xzIHdoZXRoZXIgQjMgaXMgYnVp
bHQuIEIzIGlzIG5lZWRlZCBmb3IgRlRMIEpJVCBhbmQgV2ViQXNzZW1ibHkgKi8KKyNpZiBFTkFC
TEUoRlRMX0pJVCkgfHwgRU5BQkxFKFdFQkFTU0VNQkxZKQorI2RlZmluZSBFTkFCTEVfQjNfSklU
IDEKICNlbmRpZgogCiAvKiBUaGUgU2FtcGxpbmdQcm9maWxlciBpcyB0aGUgcHJvYmFiaWxpc3Rp
YyBhbmQgbG93LW92ZXJoZWFkIHByb2ZpbGVyIHVzZWQgYnkKQEAgLTk0OCwxNCArOTU4LDYgQEAK
ICNlbmRpZgogI2VuZGlmCiAKLS8qIEVuYWJsZSB0aGUgZm9sbG93aW5nIGlmIHlvdSB3YW50IHRv
IHVzZSB0aGUgTWFjcm9Bc3NlbWJsZXI6OnByb2JlKCkgZmFjaWxpdHkKLSAgIHRvIGRvIEpJVCBk
ZWJ1Z2dpbmcuICovCi0jaWYgKENQVShYODYpIHx8IENQVShYODZfNjQpIHx8IENQVShBUk02NCkg
fHwgKENQVShBUk1fVEhVTUIyKSAmJiBQTEFURk9STShJT1MpKSkgJiYgRU5BQkxFKEpJVCkgJiYg
T1MoREFSV0lOKQotI2RlZmluZSBFTkFCTEVfTUFTTV9QUk9CRSAxCi0jZWxzZQotI2RlZmluZSBF
TkFCTEVfTUFTTV9QUk9CRSAwCi0jZW5kaWYKLQogI2lmbmRlZiBFTkFCTEVfRVhDRVBUSU9OX1ND
T1BFX1ZFUklGSUNBVElPTgogI2lmZGVmIE5ERUJVRwogI2RlZmluZSBFTkFCTEVfRVhDRVBUSU9O
X1NDT1BFX1ZFUklGSUNBVElPTiAwCkBAIC05NjQsNyArOTY2LDcgQEAKICNlbmRpZgogI2VuZGlm
CiAKLSNpZiBFTkFCTEUoSklUKSAmJiBIQVZFKE1BQ0hJTkVfQ09OVEVYVCkgJiYgKENQVShYODYp
IHx8IENQVShYODZfNjQpIHx8IENQVShBUk02NCkpCisjaWYgRU5BQkxFKERGR19KSVQpICYmIEhB
VkUoTUFDSElORV9DT05URVhUKSAmJiAoQ1BVKFg4NikgfHwgQ1BVKFg4Nl82NCkgfHwgQ1BVKEFS
TTY0KSkKICNkZWZpbmUgRU5BQkxFX1NJR05BTF9CQVNFRF9WTV9UUkFQUyAxCiAjZW5kaWYKIAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>317892</attachid>
            <date>2017-08-10 17:18:45 -0700</date>
            <delta_ts>2017-08-10 19:31:26 -0700</delta_ts>
            <desc>proposed patch.</desc>
            <filename>bug-175446.patch</filename>
            <type>text/plain</type>
            <size>20273</size>
            <attacher name="Mark Lam">mark.lam</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMjIwNTUxKQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDM3IEBA
CisyMDE3LTA4LTEwICBNYXJrIExhbSAgPG1hcmsubGFtQGFwcGxlLmNvbT4KKworICAgICAgICBN
YWtlIHRoZSBNQVNNX1BST0JFIG1lY2hhbmlzbSBtYW5kYXRvcnkgZm9yIERGRyBhbmQgRlRMIGJ1
aWxkcy4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE3
NTQ0NgorICAgICAgICA8cmRhcjovL3Byb2JsZW0vMzM4MzY1NDU+CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBhc3NlbWJsZXIvQWJzdHJhY3RNYWNy
b0Fzc2VtYmxlci5oOgorICAgICAgICAqIGFzc2VtYmxlci9NYWNyb0Fzc2VtYmxlci5jcHA6Cisg
ICAgICAgIChKU0M6Ok1hY3JvQXNzZW1ibGVyOjpwcm9iZSk6CisgICAgICAgICogYXNzZW1ibGVy
L01hY3JvQXNzZW1ibGVyLmg6CisgICAgICAgICogYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyQVJN
LmNwcDoKKyAgICAgICAgKEpTQzo6TWFjcm9Bc3NlbWJsZXI6OnByb2JlKToKKyAgICAgICAgKiBh
c3NlbWJsZXIvTWFjcm9Bc3NlbWJsZXJBUk0uaDoKKyAgICAgICAgKEpTQzo6TWFjcm9Bc3NlbWJs
ZXJBUk06OnRydXN0ZWRJbW0zMkZyb21QdHIpOgorICAgICAgICAqIGFzc2VtYmxlci9NYWNyb0Fz
c2VtYmxlckFSTTY0LmNwcDoKKyAgICAgICAgKEpTQzo6TWFjcm9Bc3NlbWJsZXI6OnByb2JlKToK
KyAgICAgICAgKiBhc3NlbWJsZXIvTWFjcm9Bc3NlbWJsZXJBUk12Ny5jcHA6CisgICAgICAgIChK
U0M6Ok1hY3JvQXNzZW1ibGVyOjpwcm9iZSk6CisgICAgICAgICogYXNzZW1ibGVyL01hY3JvQXNz
ZW1ibGVyQVJNdjcuaDoKKyAgICAgICAgKEpTQzo6TWFjcm9Bc3NlbWJsZXJBUk12Nzo6dHJ1c3Rl
ZEltbTMyRnJvbVB0cik6CisgICAgICAgICogYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyUHJpbnRl
ci5jcHA6CisgICAgICAgICogYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyUHJpbnRlci5oOgorICAg
ICAgICAqIGFzc2VtYmxlci9NYWNyb0Fzc2VtYmxlclg4NkNvbW1vbi5jcHA6CisgICAgICAgICog
YXNzZW1ibGVyL3Rlc3RtYXNtLmNwcDoKKyAgICAgICAgKEpTQzo6aXNTcGVjaWFsR1BSKToKKyAg
ICAgICAgKEpTQzo6dGVzdFByb2JlTW9kaWZpZXNQcm9ncmFtQ291bnRlcik6CisgICAgICAgIChK
U0M6OnJ1bik6CisgICAgICAgICogYjMvQjNMb3dlclRvQWlyLmNwcDoKKyAgICAgICAgKEpTQzo6
QjM6OkFpcjo6TG93ZXJUb0Fpcjo6cHJpbnQpOgorICAgICAgICAqIGIzL2Fpci9BaXJQcmludFNw
ZWNpYWwuY3BwOgorICAgICAgICAqIGIzL2Fpci9BaXJQcmludFNwZWNpYWwuaDoKKwogMjAxNy0w
OC0wOSAgWXVzdWtlIFN1enVraSAgPHV0YXRhbmUudGVhQGdtYWlsLmNvbT4KIAogICAgICAgICBb
V1RGXSBUaHJlYWRTcGVjaWZpYyBzaG91bGQgbm90IGludHJvZHVjZSBhZGRpdGlvbmFsIGluZGly
ZWN0aW9uCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL0Fic3RyYWN0TWFj
cm9Bc3NlbWJsZXIuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1i
bGVyL0Fic3RyYWN0TWFjcm9Bc3NlbWJsZXIuaAkocmV2aXNpb24gMjIwNTQ5KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9BYnN0cmFjdE1hY3JvQXNzZW1ibGVyLmgJKHdvcmtp
bmcgY29weSkKQEAgLTQzLDEwICs0Myw4IEBAIG5hbWVzcGFjZSBKU0MgewogCiAjaWYgRU5BQkxF
KEFTU0VNQkxFUikKIAotI2lmIEVOQUJMRShNQVNNX1BST0JFKQogc3RydWN0IFByb2JlQ29udGV4
dDsKIHR5cGVkZWYgdm9pZCAoKlByb2JlRnVuY3Rpb24pKHN0cnVjdCBQcm9iZUNvbnRleHQqKTsK
LSNlbmRpZgogICAgIAogY2xhc3MgQWxsb3dNYWNyb1NjcmF0Y2hSZWdpc3RlclVzYWdlOwogY2xh
c3MgRGlzYWxsb3dNYWNyb1NjcmF0Y2hSZWdpc3RlclVzYWdlOwpJbmRleDogU291cmNlL0phdmFT
Y3JpcHRDb3JlL2Fzc2VtYmxlci9NYWNyb0Fzc2VtYmxlci5jcHAKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9NYWNyb0Fzc2VtYmxlci5jcHAJKHJldmlzaW9u
IDIyMDU0OSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvTWFjcm9Bc3NlbWJs
ZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zNCw3ICszNCw2IEBAIG5hbWVzcGFjZSBKU0Mgewog
CiBjb25zdCBkb3VibGUgTWFjcm9Bc3NlbWJsZXI6OnR3b1RvVGhlMzIgPSAoZG91YmxlKTB4MTAw
MDAwMDAwdWxsOwogCi0jaWYgRU5BQkxFKE1BU01fUFJPQkUpCiBzdGF0aWMgdm9pZCBzdGRGdW5j
dGlvbkNhbGxiYWNrKFByb2JlQ29udGV4dCogY29udGV4dCkKIHsKICAgICBhdXRvIGZ1bmMgPSBz
dGF0aWNfY2FzdDxjb25zdCBzdGQ6OmZ1bmN0aW9uPHZvaWQoUHJvYmVDb250ZXh0Kik+Kj4oY29u
dGV4dC0+YXJnKTsKQEAgLTQ1LDcgKzQ0LDYgQEAgdm9pZCBNYWNyb0Fzc2VtYmxlcjo6cHJvYmUo
c3RkOjpmdW5jdGlvbgogewogICAgIHByb2JlKHN0ZEZ1bmN0aW9uQ2FsbGJhY2ssIG5ldyBzdGQ6
OmZ1bmN0aW9uPHZvaWQoUHJvYmVDb250ZXh0Kik+KGZ1bmMpKTsKIH0KLSNlbmRpZiAvLyBFTkFC
TEUoTUFTTV9QUk9CRSkKIAogfSAvLyBuYW1lc3BhY2UgSlNDCiAKSW5kZXg6IFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9hc3NlbWJsZXIvTWFjcm9Bc3NlbWJsZXIuaAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyLmgJKHJldmlzaW9uIDIy
MDU0OSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvTWFjcm9Bc3NlbWJsZXIu
aAkod29ya2luZyBjb3B5KQpAQCAtMTgyNCw3ICsxODI0LDYgQEAgcHVibGljOgogICAgICAgICB1
cnNoaWZ0MzIoc3JjLCB0cnVzdGVkSW1tMzJGb3JTaGlmdChhbW91bnQpLCBkZXN0KTsKICAgICB9
CiAKLSNpZiBFTkFCTEUoTUFTTV9QUk9CRSkKICAgICBzdHJ1Y3QgQ1BVU3RhdGU7CiAKICAgICAv
LyBUaGlzIGZ1bmN0aW9uIGVtaXRzIGNvZGUgdG8gcHJlc2VydmUgdGhlIENQVVN0YXRlIChlLmcu
IHJlZ2lzdGVycyksCkBAIC0xODQ4LDEwICsxODQ3LDggQEAgcHVibGljOgogICAgIHZvaWQgcHJv
YmUoUHJvYmVGdW5jdGlvbiwgdm9pZCogYXJnKTsKIAogICAgIEpTX0VYUE9SVF9QUklWQVRFIHZv
aWQgcHJvYmUoc3RkOjpmdW5jdGlvbjx2b2lkKFByb2JlQ29udGV4dCopPik7Ci0jZW5kaWYgLy8g
RU5BQkxFKE1BU01fUFJPQkUpCiAKICAgICAvLyBMZXQncyB5b3UgcHJpbnQgZnJvbSB5b3VyIEpJ
VCBnZW5lcmF0ZWQgY29kZS4KLSAgICAvLyBUaGlzIG9ubHkgd29ya3MgaWYgRU5BQkxFKE1BU01f
UFJPQkUpLiBPdGhlcndpc2UsIHByaW50KCkgaXMgYSBuby1vcC4KICAgICAvLyBTZWUgY29tbWVu
dHMgaW4gTWFjcm9Bc3NlbWJsZXJQcmludGVyLmggZm9yIGV4YW1wbGVzIG9mIGhvdyB0byB1c2Ug
dGhpcy4KICAgICB0ZW1wbGF0ZTx0eXBlbmFtZS4uLiBBcmd1bWVudHM+CiAgICAgdm9pZCBwcmlu
dChBcmd1bWVudHMmJi4uLiBhcmdzKTsKQEAgLTE4NTksOCArMTg1Niw2IEBAIHB1YmxpYzoKICAg
ICB2b2lkIHByaW50KFByaW50ZXI6OlByaW50UmVjb3JkTGlzdCopOwogfTsKIAotI2lmIEVOQUJM
RShNQVNNX1BST0JFKQotCiBzdHJ1Y3QgTWFjcm9Bc3NlbWJsZXI6OkNQVVN0YXRlIHsKICAgICBz
dGF0aWMgaW5saW5lIGNvbnN0IGNoYXIqIGdwck5hbWUoUmVnaXN0ZXJJRCBpZCkgeyByZXR1cm4g
TWFjcm9Bc3NlbWJsZXI6Omdwck5hbWUoaWQpOyB9CiAgICAgc3RhdGljIGlubGluZSBjb25zdCBj
aGFyKiBzcHJOYW1lKFNQUmVnaXN0ZXJJRCBpZCkgeyByZXR1cm4gTWFjcm9Bc3NlbWJsZXI6OnNw
ck5hbWUoaWQpOyB9CkBAIC0xOTYzLDcgKzE5NTgsNiBAQCBzdHJ1Y3QgUHJvYmVDb250ZXh0IHsK
ICAgICB2b2lkKiYgZnAoKSB7IHJldHVybiBjcHUuZnAoKTsgfQogICAgIHZvaWQqJiBzcCgpIHsg
cmV0dXJuIGNwdS5zcCgpOyB9CiB9OwotI2VuZGlmIC8vIEVOQUJMRShNQVNNX1BST0JFKQogICAg
IAogfSAvLyBuYW1lc3BhY2UgSlNDCiAKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3Nl
bWJsZXIvTWFjcm9Bc3NlbWJsZXJBUk02NC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFT
Y3JpcHRDb3JlL2Fzc2VtYmxlci9NYWNyb0Fzc2VtYmxlckFSTTY0LmNwcAkocmV2aXNpb24gMjIw
NTQ5KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9NYWNyb0Fzc2VtYmxlckFS
TTY0LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzIsOCArMzIsNiBAQAogCiBuYW1lc3BhY2UgSlND
IHsKIAotI2lmIEVOQUJMRShNQVNNX1BST0JFKQotCiBleHRlcm4gIkMiIHZvaWQgY3RpTWFzbVBy
b2JlVHJhbXBvbGluZSgpOwogCiB1c2luZyBuYW1lc3BhY2UgQVJNNjRSZWdpc3RlcnM7CkBAIC01
NTEsNyArNTQ5LDYgQEAgdm9pZCBNYWNyb0Fzc2VtYmxlcjo6cHJvYmUoUHJvYmVGdW5jdGlvbgog
ICAgIGxvYWQ2NChBZGRyZXNzKHNwLCBvZmZzZXRvZihPdXRnb2luZ1Byb2JlUmVjb3JkLCBscikp
LCBscik7CiAgICAgYWRkNjQoVHJ1c3RlZEltbTMyKHNpemVvZihPdXRnb2luZ1Byb2JlUmVjb3Jk
KSksIHNwKTsKIH0KLSNlbmRpZiAvLyBFTkFCTEUoTUFTTV9QUk9CRSkKIAogfSAvLyBuYW1lc3Bh
Y2UgSlNDCiAKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvTWFjcm9Bc3Nl
bWJsZXJBUk0uY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJs
ZXIvTWFjcm9Bc3NlbWJsZXJBUk0uY3BwCShyZXZpc2lvbiAyMjA1NDkpCisrKyBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyQVJNLmNwcAkod29ya2luZyBjb3B5
KQpAQCAtOTYsOCArOTYsNiBAQCB2b2lkIE1hY3JvQXNzZW1ibGVyQVJNOjpsb2FkMzJXaXRoVW5h
bGlnCiB9CiAjZW5kaWYgLy8gQ1BVKEFSTVY1X09SX0xPV0VSKQogCi0jaWYgRU5BQkxFKE1BU01f
UFJPQkUpCi0KIGV4dGVybiAiQyIgdm9pZCBjdGlNYXNtUHJvYmVUcmFtcG9saW5lKCk7CiAKICNp
ZiBDT01QSUxFUihHQ0NfT1JfQ0xBTkcpCkBAIC0zODIsNyArMzgwLDYgQEAgdm9pZCBNYWNyb0Fz
c2VtYmxlcjo6cHJvYmUoUHJvYmVGdW5jdGlvbgogICAgIG1fYXNzZW1ibGVyLmJseChSZWdpc3Rl
cklEOjpTMCk7CiAKIH0KLSNlbmRpZiAvLyBFTkFCTEUoTUFTTV9QUk9CRSkKIAogfSAvLyBuYW1l
c3BhY2UgSlNDCiAKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvTWFjcm9B
c3NlbWJsZXJBUk0uaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1i
bGVyL01hY3JvQXNzZW1ibGVyQVJNLmgJKHJldmlzaW9uIDIyMDU0OSkKKysrIFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9hc3NlbWJsZXIvTWFjcm9Bc3NlbWJsZXJBUk0uaAkod29ya2luZyBjb3B5KQpA
QCAtMTU4Niw3ICsxNTg2LDYgQEAgcHJvdGVjdGVkOgogICAgICAgICBtX2Fzc2VtYmxlci5ibHgo
QVJNUmVnaXN0ZXJzOjpTMSk7CiAgICAgfQogCi0jaWYgRU5BQkxFKE1BU01fUFJPQkUpCiAgICAg
aW5saW5lIFRydXN0ZWRJbW0zMiB0cnVzdGVkSW1tMzJGcm9tUHRyKHZvaWQqIHB0cikKICAgICB7
CiAgICAgICAgIHJldHVybiBUcnVzdGVkSW1tMzIoVHJ1c3RlZEltbVB0cihwdHIpKTsKQEAgLTE2
MDEsNyArMTYwMCw2IEBAIHByb3RlY3RlZDoKICAgICB7CiAgICAgICAgIHJldHVybiBUcnVzdGVk
SW1tMzIoVHJ1c3RlZEltbVB0cihyZWludGVycHJldF9jYXN0PHZvaWQqPihmdW5jdGlvbikpKTsK
ICAgICB9Ci0jZW5kaWYKIAogcHJpdmF0ZToKICAgICBmcmllbmQgY2xhc3MgTGlua0J1ZmZlcjsK
SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvTWFjcm9Bc3NlbWJsZXJBUk12
Ny5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9NYWNy
b0Fzc2VtYmxlckFSTXY3LmNwcAkocmV2aXNpb24gMjIwNTQ5KQorKysgU291cmNlL0phdmFTY3Jp
cHRDb3JlL2Fzc2VtYmxlci9NYWNyb0Fzc2VtYmxlckFSTXY3LmNwcAkod29ya2luZyBjb3B5KQpA
QCAtMzIsOCArMzIsNiBAQAogCiBuYW1lc3BhY2UgSlNDIHsKIAotI2lmIEVOQUJMRShNQVNNX1BS
T0JFKQotCiBleHRlcm4gIkMiIHZvaWQgY3RpTWFzbVByb2JlVHJhbXBvbGluZSgpOwogCiAjaWYg
Q09NUElMRVIoR0NDX09SX0NMQU5HKQpAQCAtMzU5LDcgKzM1Nyw2IEBAIHZvaWQgTWFjcm9Bc3Nl
bWJsZXI6OnByb2JlKFByb2JlRnVuY3Rpb24KICAgICBtb3ZlKHRydXN0ZWRJbW0zMkZyb21QdHIo
Y3RpTWFzbVByb2JlVHJhbXBvbGluZSksIFJlZ2lzdGVySUQ6OmlwKTsKICAgICBtX2Fzc2VtYmxl
ci5ibHgoUmVnaXN0ZXJJRDo6aXApOwogfQotI2VuZGlmIC8vIEVOQUJMRShNQVNNX1BST0JFKQog
CiB9IC8vIG5hbWVzcGFjZSBKU0MKIApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2Vt
Ymxlci9NYWNyb0Fzc2VtYmxlckFSTXY3LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3Jp
cHRDb3JlL2Fzc2VtYmxlci9NYWNyb0Fzc2VtYmxlckFSTXY3LmgJKHJldmlzaW9uIDIyMDU0OSkK
KysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvTWFjcm9Bc3NlbWJsZXJBUk12Ny5o
CSh3b3JraW5nIGNvcHkpCkBAIC0yMTA3LDcgKzIxMDcsNiBAQCBwcm90ZWN0ZWQ6CiAgICAgICAg
IHJldHVybiBzdGF0aWNfY2FzdDxBUk12N0Fzc2VtYmxlcjo6Q29uZGl0aW9uPihjb25kKTsKICAg
ICB9CiAgICAgCi0jaWYgRU5BQkxFKE1BU01fUFJPQkUpCiAgICAgaW5saW5lIFRydXN0ZWRJbW0z
MiB0cnVzdGVkSW1tMzJGcm9tUHRyKHZvaWQqIHB0cikKICAgICB7CiAgICAgICAgIHJldHVybiBU
cnVzdGVkSW1tMzIoVHJ1c3RlZEltbVB0cihwdHIpKTsKQEAgLTIxMjIsNyArMjEyMSw2IEBAIHBy
b3RlY3RlZDoKICAgICB7CiAgICAgICAgIHJldHVybiBUcnVzdGVkSW1tMzIoVHJ1c3RlZEltbVB0
cihyZWludGVycHJldF9jYXN0PHZvaWQqPihmdW5jdGlvbikpKTsKICAgICB9Ci0jZW5kaWYKIAog
cHJpdmF0ZToKICAgICBmcmllbmQgY2xhc3MgTGlua0J1ZmZlcjsKSW5kZXg6IFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9hc3NlbWJsZXIvTWFjcm9Bc3NlbWJsZXJQcmludGVyLmNwcAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyUHJpbnRl
ci5jcHAJKHJldmlzaW9uIDIyMDU0OSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJs
ZXIvTWFjcm9Bc3NlbWJsZXJQcmludGVyLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjYsOSArMjYs
OCBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIk1hY3JvQXNzZW1ibGVyUHJpbnRl
ci5oIgogCi0jaWYgRU5BQkxFKE1BU01fUFJPQkUpCi0KICNpbmNsdWRlICJNYWNyb0Fzc2VtYmxl
ci5oIgorI2luY2x1ZGUgPGludHR5cGVzLmg+CiAKIG5hbWVzcGFjZSBKU0MgewogbmFtZXNwYWNl
IFByaW50ZXIgewpAQCAtNTMsMjUgKzUyLDI1IEBAIHZvaWQgcHJpbnRBbGxSZWdpc3RlcnMoUHJp
bnRTdHJlYW0mIG91dCwKICAgICBJTkRFTlQsIG91dC5wcmludCgiY3B1OiB7XG4iKTsKIAogI2lm
IFVTRShKU1ZBTFVFMzJfNjQpCi0gICAgI2RlZmluZSBJTlRQVFJfSEVYX1ZBTFVFX0ZPUk1BVCAi
MHglMDhseCIKKyAgICAjZGVmaW5lIElOVFBUUl9IRVhfVkFMVUVfRk9STUFUICIweCUwOCIgUFJJ
eFBUUgogI2Vsc2UKLSAgICAjZGVmaW5lIElOVFBUUl9IRVhfVkFMVUVfRk9STUFUICIweCUwMTZs
eCIKKyAgICAjZGVmaW5lIElOVFBUUl9IRVhfVkFMVUVfRk9STUFUICIweCUwMTYiIFBSSXhQVFIK
ICNlbmRpZgogCiAgICAgZm9yIChhdXRvIGlkID0gTWFjcm9Bc3NlbWJsZXI6OmZpcnN0UmVnaXN0
ZXIoKTsgaWQgPD0gTWFjcm9Bc3NlbWJsZXI6Omxhc3RSZWdpc3RlcigpOyBpZCA9IG5leHRJRChp
ZCkpIHsKICAgICAgICAgaW50cHRyX3QgdmFsdWUgPSBzdGF0aWNfY2FzdDxpbnRwdHJfdD4oY3B1
LmdwcihpZCkpOwotICAgICAgICBJTkRFTlQsIG91dC5wcmludGYoIiAgICAlNnM6ICIgSU5UUFRS
X0hFWF9WQUxVRV9GT1JNQVQgIiAgJWxkXG4iLCBjcHUuZ3ByTmFtZShpZCksIHZhbHVlLCB2YWx1
ZSk7CisgICAgICAgIElOREVOVCwgb3V0LnByaW50ZigiICAgICU2czogIiBJTlRQVFJfSEVYX1ZB
TFVFX0ZPUk1BVCAiICAlIiBQUklkUFRSICJcbiIsIGNwdS5ncHJOYW1lKGlkKSwgdmFsdWUsIHZh
bHVlKTsKICAgICB9CiAgICAgZm9yIChhdXRvIGlkID0gTWFjcm9Bc3NlbWJsZXI6OmZpcnN0U1BS
ZWdpc3RlcigpOyBpZCA8PSBNYWNyb0Fzc2VtYmxlcjo6bGFzdFNQUmVnaXN0ZXIoKTsgaWQgPSBu
ZXh0SUQoaWQpKSB7CiAgICAgICAgIGludHB0cl90IHZhbHVlID0gc3RhdGljX2Nhc3Q8aW50cHRy
X3Q+KGNwdS5zcHIoaWQpKTsKLSAgICAgICAgSU5ERU5ULCBvdXQucHJpbnRmKCIgICAgJTZzOiAi
IElOVFBUUl9IRVhfVkFMVUVfRk9STUFUICIgICVsZFxuIiwgY3B1LnNwck5hbWUoaWQpLCB2YWx1
ZSwgdmFsdWUpOworICAgICAgICBJTkRFTlQsIG91dC5wcmludGYoIiAgICAlNnM6ICIgSU5UUFRS
X0hFWF9WQUxVRV9GT1JNQVQgIiAgJSIgUFJJZFBUUiAiXG4iLCBjcHUuc3ByTmFtZShpZCksIHZh
bHVlLCB2YWx1ZSk7CiAgICAgfQogICAgICN1bmRlZiBJTlRQVFJfSEVYX1ZBTFVFX0ZPUk1BVAog
CiAgICAgZm9yIChhdXRvIGlkID0gTWFjcm9Bc3NlbWJsZXI6OmZpcnN0RlBSZWdpc3RlcigpOyBp
ZCA8PSBNYWNyb0Fzc2VtYmxlcjo6bGFzdEZQUmVnaXN0ZXIoKTsgaWQgPSBuZXh0SUQoaWQpKSB7
CiAgICAgICAgIHVpbnQ2NF90IHUgPSBiaXR3aXNlX2Nhc3Q8dWludDY0X3Q+KGNwdS5mcHIoaWQp
KTsKICAgICAgICAgZG91YmxlIGQgPSBjcHUuZnByKGlkKTsKLSAgICAgICAgSU5ERU5ULCBvdXQu
cHJpbnRmKCIgICAgJTZzOiAweCUwMTZsbHggICUuMTNnXG4iLCBjcHUuZnByTmFtZShpZCksIHUs
IGQpOworICAgICAgICBJTkRFTlQsIG91dC5wcmludGYoIiAgICAlNnM6IDB4JTAxNiIgUFJJeDY0
ICIgICUuMTNnXG4iLCBjcHUuZnByTmFtZShpZCksIHUsIGQpOwogICAgIH0KIAogICAgIElOREVO
VCwgb3V0LnByaW50KCJ9XG4iKTsKQEAgLTk5LDcgKzk4LDcgQEAgdm9pZCBwcmludEZQUmVnaXN0
ZXJJRChQcmludFN0cmVhbSYgb3V0LAogICAgIEZQUmVnaXN0ZXJJRCByZWdJRCA9IGNvbnRleHQu
ZGF0YS5hczxGUFJlZ2lzdGVySUQ+KCk7CiAgICAgY29uc3QgY2hhciogbmFtZSA9IENQVVN0YXRl
OjpmcHJOYW1lKHJlZ0lEKTsKICAgICBkb3VibGUgdmFsdWUgPSBjb250ZXh0LnByb2JlQ29udGV4
dC5mcHIocmVnSUQpOwotICAgIG91dC5wcmludGYoIiVzOjwweCUwMTZsbHggJS4xM2c+IiwgbmFt
ZSwgYml0d2lzZV9jYXN0PHVpbnQ2NF90Pih2YWx1ZSksIHZhbHVlKTsKKyAgICBvdXQucHJpbnRm
KCIlczo8MHglMDE2IiBQUkl4NjQgIiAlLjEzZz4iLCBuYW1lLCBiaXR3aXNlX2Nhc3Q8dWludDY0
X3Q+KHZhbHVlKSwgdmFsdWUpOwogfQogCiB2b2lkIHByaW50QWRkcmVzcyhQcmludFN0cmVhbSYg
b3V0LCBDb250ZXh0JiBjb250ZXh0KQpAQCAtMTQ2LDcgKzE0NSw3IEBAIHZvaWQgcHJpbnRNZW1v
cnkoUHJpbnRTdHJlYW0mIG91dCwgQ29udGUKICAgICAgICAgfQogICAgICAgICBpZiAobWVtb3J5
Lm51bUJ5dGVzID09IHNpemVvZihpbnQ2NF90KSkgewogICAgICAgICAgICAgYXV0byBwID0gcmVp
bnRlcnByZXRfY2FzdDxpbnQ2NF90Kj4ocHRyKTsKLSAgICAgICAgICAgIG91dC5wcmludGYoIiVw
OjwweCUwMTZsbHggJWxsZD4iLCBwLCAqcCwgKnApOworICAgICAgICAgICAgb3V0LnByaW50Zigi
JXA6PDB4JTAxNiIgUFJJeDY0ICIgJSIgUFJJZDY0ICI+IiwgcCwgKnAsICpwKTsKICAgICAgICAg
ICAgIHJldHVybjsKICAgICAgICAgfQogICAgICAgICAvLyBFbHNlLCB1bmtub3duIHdvcmQgc2l6
ZS4gRmFsbCB0aHJ1IGFuZCBkdW1wIGluIHRoZSBnZW5lcmljIHdheS4KQEAgLTE4Myw0ICsxODIs
MyBAQCB2b2lkIHByaW50Q2FsbGJhY2soUHJvYmVDb250ZXh0KiBwcm9iZUNvCiB9IC8vIG5hbWVz
cGFjZSBQcmludGVyCiB9IC8vIG5hbWVzcGFjZSBKU0MKIAotI2VuZGlmIC8vIEVOQUJMRShNQVNN
X1BST0JFKQpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9NYWNyb0Fzc2Vt
YmxlclByaW50ZXIuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1i
bGVyL01hY3JvQXNzZW1ibGVyUHJpbnRlci5oCShyZXZpc2lvbiAyMjA1NDkpCisrKyBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyUHJpbnRlci5oCSh3b3JraW5n
IGNvcHkpCkBAIC0zMiw4ICszMiw2IEBAIG5hbWVzcGFjZSBKU0MgewogCiAjaWYgRU5BQkxFKEFT
U0VNQkxFUikKIAotI2lmIEVOQUJMRShNQVNNX1BST0JFKQotICAgIAogLy8gV2hhdCBpcyBNYWNy
b0Fzc2VtYmxlcjo6cHJpbnQoKT8KIC8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
IC8vIFRoZSBNYWNyb0Fzc3NlbWJsZXI6OnByaW50KCkgbWFrZXMgaXQgZWFzeSB0byBhZGQgcHJp
bnQgbG9nZ2luZwpAQCAtMjQwLDE1ICsyMzgsNiBAQCBpbmxpbmUgdm9pZCBNYWNyb0Fzc2VtYmxl
cjo6cHJpbnQoUHJpbnRlCiAgICAgcHJvYmUoUHJpbnRlcjo6cHJpbnRDYWxsYmFjaywgcHJpbnRS
ZWNvcmRMaXN0KTsKIH0KIAotI2Vsc2UgLy8gRU5BQkxFKE1BU01fUFJPQkUpCi0KLXRlbXBsYXRl
PHR5cGVuYW1lLi4uIEFyZ3VtZW50cz4KLWlubGluZSB2b2lkIE1hY3JvQXNzZW1ibGVyOjpwcmlu
dChBcmd1bWVudHMmJi4uLikgeyB9Ci0KLWlubGluZSB2b2lkIE1hY3JvQXNzZW1ibGVyOjpwcmlu
dChQcmludGVyOjpQcmludFJlY29yZExpc3QqKSB7IH0KLQotI2VuZGlmIC8vIEVOQUJMRShNQVNN
X1BST0JFKQotCiAjZW5kaWYgLy8gRU5BQkxFKEFTU0VNQkxFUikKIAogfSAvLyBuYW1lc3BhY2Ug
SlNDCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVy
WDg2Q29tbW9uLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1i
bGVyL01hY3JvQXNzZW1ibGVyWDg2Q29tbW9uLmNwcAkocmV2aXNpb24gMjIwNTQ5KQorKysgU291
cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9NYWNyb0Fzc2VtYmxlclg4NkNvbW1vbi5jcHAJ
KHdvcmtpbmcgY29weSkKQEAgLTMyLDggKzMyLDYgQEAKIAogbmFtZXNwYWNlIEpTQyB7CiAKLSNp
ZiBFTkFCTEUoTUFTTV9QUk9CRSkKLQogZXh0ZXJuICJDIiB2b2lkIGN0aU1hc21Qcm9iZVRyYW1w
b2xpbmUoKTsKIAogI2lmIENPTVBJTEVSKEdDQ19PUl9DTEFORykKQEAgLTU2Myw2ICs1NjEsNyBA
QCBhc20gKAogLy8gcG9zaXRpb24gYmVmb3JlIHdlIHB1c2ggdGhlIFByb2JlQ29udGV4dCBmcmFt
ZS4gVGhlIHNhdmVkIHJpcCB3aWxsIHBvaW50IHRvCiAvLyB0aGUgYWRkcmVzcyBvZiB0aGUgaW5z
dHJ1Y3Rpb24gaW1tZWRpYXRlbHkgZm9sbG93aW5nIHRoZSBwcm9iZS4gCiAKKyNpZiAhT1MoV0lO
RE9XUykKIHZvaWQgTWFjcm9Bc3NlbWJsZXI6OnByb2JlKFByb2JlRnVuY3Rpb24gZnVuY3Rpb24s
IHZvaWQqIGFyZykKIHsKICAgICBwdXNoKFJlZ2lzdGVySUQ6OmVzcCk7CkBAIC01NzQsOCArNTcz
LDcgQEAgdm9pZCBNYWNyb0Fzc2VtYmxlcjo6cHJvYmUoUHJvYmVGdW5jdGlvbgogICAgIG1vdmUo
VHJ1c3RlZEltbVB0cihyZWludGVycHJldF9jYXN0PHZvaWQqPihjdGlNYXNtUHJvYmVUcmFtcG9s
aW5lKSksIFJlZ2lzdGVySUQ6OmVheCk7CiAgICAgY2FsbChSZWdpc3RlcklEOjplYXgpOwogfQot
Ci0jZW5kaWYgLy8gRU5BQkxFKE1BU01fUFJPQkUpCisjZW5kaWYKIAogI2lmIENQVShYODYpICYm
ICFPUyhNQUNfT1NfWCkKIE1hY3JvQXNzZW1ibGVyWDg2Q29tbW9uOjpTU0UyQ2hlY2tTdGF0ZSBN
YWNyb0Fzc2VtYmxlclg4NkNvbW1vbjo6c19zc2UyQ2hlY2tTdGF0ZSA9IE5vdENoZWNrZWRTU0Uy
OwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci90ZXN0bWFzbS5jcHAKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci90ZXN0bWFzbS5jcHAJ
KHJldmlzaW9uIDIyMDU0OSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvdGVz
dG1hc20uY3BwCSh3b3JraW5nIGNvcHkpCkBAIC04NSw3ICs4NSw2IEBAIHRlbXBsYXRlPHR5cGVu
YW1lIFQ+IFQgbmV4dElEKFQgaWQpIHsgcmUKICNkZWZpbmUgQ0hFQ0tfRE9VQkxFX0JJVFdJU0Vf
RVEoYSwgYikgXAogICAgIENIRUNLKGJpdHdpc2VfY2FzdDx1aW50NjRfdD4oYSkgPT0gYml0d2lz
ZV9jYXN0PHVpbnQ2NF90PihhKSkKIAotI2lmIEVOQUJMRShNQVNNX1BST0JFKQogYm9vbCBpc1BD
KE1hY3JvQXNzZW1ibGVyOjpSZWdpc3RlcklEIGlkKQogewogI2lmIENQVShBUk1fVEhVTUIyKSB8
fCBDUFUoQVJNX1RSQURJVElPTkFMKQpAQCAtMTE2LDcgKzExNSw2IEBAIGJvb2wgaXNTcGVjaWFs
R1BSKE1hY3JvQXNzZW1ibGVyOjpSZWdpc3QKICNlbmRpZgogICAgIHJldHVybiBmYWxzZTsKIH0K
LSNlbmRpZiAvLyBFTkFCTEUoTUFTTV9QUk9CRSkKIAogTWFjcm9Bc3NlbWJsZXJDb2RlUmVmIGNv
bXBpbGUoR2VuZXJhdG9yJiYgZ2VuZXJhdGUpCiB7CkBAIC0xNDksNyArMTQ3LDYgQEAgdm9pZCB0
ZXN0U2ltcGxlKCkKICAgICB9KSA9PSA0Mik7CiB9CiAKLSNpZiBFTkFCTEUoTUFTTV9QUk9CRSkK
IHZvaWQgdGVzdFByb2JlUmVhZHNBcmd1bWVudFJlZ2lzdGVycygpCiB7CiAgICAgYm9vbCBwcm9i
ZVdhc0NhbGxlZCA9IGZhbHNlOwpAQCAtNDkzLDcgKzQ5MCw2IEBAIHZvaWQgdGVzdFByb2JlTW9k
aWZpZXNQcm9ncmFtQ291bnRlcigpCiAgICAgQ0hFQ0socHJvYmVDYWxsQ291bnQgPT0gMik7CiAg
ICAgQ0hFQ0soY29udGludWF0aW9uV2FzUmVhY2hlZCk7CiB9Ci0jZW5kaWYgLy8gRU5BQkxFKE1B
U01fUFJPQkUpCiAKICNkZWZpbmUgUlVOKHRlc3QpIGRvIHsgICAgICAgICAgICAgICAgICAgICAg
ICAgIFwKICAgICAgICAgaWYgKCFzaG91bGRSdW4oI3Rlc3QpKSAgICAgICAgICAgICAgICAgIFwK
QEAgLTUxOSwxNCArNTE1LDEyIEBAIHZvaWQgcnVuKGNvbnN0IGNoYXIqIGZpbHRlcikKIAogICAg
IFJVTih0ZXN0U2ltcGxlKCkpOwogCi0jaWYgRU5BQkxFKE1BU01fUFJPQkUpCiAgICAgUlVOKHRl
c3RQcm9iZVJlYWRzQXJndW1lbnRSZWdpc3RlcnMoKSk7CiAgICAgUlVOKHRlc3RQcm9iZVdyaXRl
c0FyZ3VtZW50UmVnaXN0ZXJzKCkpOwogICAgIFJVTih0ZXN0UHJvYmVQcmVzZXJ2ZXNHUFJTKCkp
OwogICAgIFJVTih0ZXN0UHJvYmVNb2RpZmllc1N0YWNrUG9pbnRlclRvSW5zaWRlUHJvYmVDb250
ZXh0T25TdGFjaygpKTsKICAgICBSVU4odGVzdFByb2JlTW9kaWZpZXNTdGFja1BvaW50ZXJUb05C
eXRlc0JlbG93U1AoKSk7CiAgICAgUlVOKHRlc3RQcm9iZU1vZGlmaWVzUHJvZ3JhbUNvdW50ZXIo
KSk7Ci0jZW5kaWYKIAogICAgIGlmICh0YXNrcy5pc0VtcHR5KCkpCiAgICAgICAgIHVzYWdlKCk7
CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNMb3dlclRvQWlyLmNwcAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNMb3dlclRvQWlyLmNwcAkocmV2aXNp
b24gMjIwNTQ5KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzTG93ZXJUb0Fpci5jcHAJ
KHdvcmtpbmcgY29weSkKQEAgLTExNDksNyArMTE0OSw2IEBAIHByaXZhdGU6CiAgICAgICAgIHJl
dHVybiBBaXI6Ok9vcHM7CiAgICAgfQogCi0jaWYgRU5BQkxFKE1BU01fUFJPQkUpCiAgICAgdGVt
cGxhdGU8dHlwZW5hbWUuLi4gQXJndW1lbnRzPgogICAgIHZvaWQgcHJpbnQoQXJndW1lbnRzJiYu
Li4gYXJndW1lbnRzKQogICAgIHsKQEAgLTExNjYsMTAgKzExNjUsNiBAQCBwcml2YXRlOgogICAg
ICAgICBQcmludGVyOjphcHBlbmRBaXJBcmdzKGluc3QsIHN0ZDo6Zm9yd2FyZDxBcmd1bWVudHM+
KGFyZ3VtZW50cykuLi4pOwogICAgICAgICBhcHBlbmQoV1RGTW92ZShpbnN0KSk7CiAgICAgfQot
I2Vsc2UKLSAgICB0ZW1wbGF0ZTx0eXBlbmFtZS4uLiBBcmd1bWVudHM+Ci0gICAgdm9pZCBwcmlu
dChBcmd1bWVudHMmJi4uLikgeyB9Ci0jZW5kaWYgLy8gRU5BQkxFKE1BU01fUFJPQkUpCiAKICAg
ICB0ZW1wbGF0ZTx0eXBlbmFtZS4uLiBBcmd1bWVudHM+CiAgICAgdm9pZCBhcHBlbmQoQWlyOjpL
aW5kIGtpbmQsIEFyZ3VtZW50cyYmLi4uIGFyZ3VtZW50cykKSW5kZXg6IFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9iMy9haXIvQWlyUHJpbnRTcGVjaWFsLmNwcAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvYjMvYWlyL0FpclByaW50U3BlY2lhbC5jcHAJKHJldmlzaW9uIDIyMDU0
OSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9haXIvQWlyUHJpbnRTcGVjaWFsLmNwcAko
d29ya2luZyBjb3B5KQpAQCAtMjcsNyArMjcsNiBAQAogI2luY2x1ZGUgIkFpclByaW50U3BlY2lh
bC5oIgogCiAjaWYgRU5BQkxFKEIzX0pJVCkKLSNpZiBFTkFCTEUoTUFTTV9QUk9CRSkKIAogI2lu
Y2x1ZGUgIk1hY3JvQXNzZW1ibGVyUHJpbnRlci5oIgogCkBAIC0xMjUsNSArMTI0LDQgQEAgTk9f
UkVUVVJOIHZvaWQgcHJpbnRBaXJBcmcoUHJpbnRTdHJlYW0mLAogCiB9IC8vIG5hbWVzcGFjZSBK
U0MKIAotI2VuZGlmIC8vIEVOQUJMRShNQVNNX1BST0JFKQogI2VuZGlmIC8vIEVOQUJMRShCM19K
SVQpCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvYWlyL0FpclByaW50U3BlY2lhbC5o
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9haXIvQWlyUHJpbnRTcGVj
aWFsLmgJKHJldmlzaW9uIDIyMDU0OSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9haXIv
QWlyUHJpbnRTcGVjaWFsLmgJKHdvcmtpbmcgY29weSkKQEAgLTI2LDcgKzI2LDYgQEAKICNwcmFn
bWEgb25jZQogCiAjaWYgRU5BQkxFKEIzX0pJVCkKLSNpZiBFTkFCTEUoTUFTTV9QUk9CRSkKIAog
I2luY2x1ZGUgIkFpckluc3QuaCIKICNpbmNsdWRlICJBaXJTcGVjaWFsLmgiCkBAIC0xMjksNSAr
MTI4LDQgQEAgcHJpdmF0ZToKIAogfSB9IH0gLy8gbmFtZXNwYWNlIEpTQzo6QjM6OkFpcgogCi0j
ZW5kaWYgLy8gRU5BQkxFKE1BU01fUFJPQkUpCiAjZW5kaWYgLy8gRU5BQkxFKEIzX0pJVCkKSW5k
ZXg6IFNvdXJjZS9XVEYvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XVEYvQ2hhbmdl
TG9nCShyZXZpc2lvbiAyMjA1NDkpCisrKyBTb3VyY2UvV1RGL0NoYW5nZUxvZwkod29ya2luZyBj
b3B5KQpAQCAtMSwzICsxLDIzIEBACisyMDE3LTA4LTEwICBNYXJrIExhbSAgPG1hcmsubGFtQGFw
cGxlLmNvbT4KKworICAgICAgICBNYWtlIHRoZSBNQVNNX1BST0JFIG1lY2hhbmlzbSBtYW5kYXRv
cnkgZm9yIERGRyBhbmQgRlRMIGJ1aWxkcy4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTE3NTQ0NgorICAgICAgICA8cmRhcjovL3Byb2JsZW0vMzM4MzY1
NDU+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGhp
cyBpcyBuZWVkZWQgaW4gb3JkZXIgdG8gc3VwcG9ydCBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MTc0NjQ1LgorICAgICAgICBPbmUgY29uc2VxdWVuY2Ugb2YgdGhpcyBp
cyB0aGF0IHRoZSBERkcgd2lsbCBub3cgYmUgZGlzYWJsZWQgZm9yIHRoZSBNSVBTIGFuZAorICAg
ICAgICBXaW5kb3dzIHBvcnRzLiBTZWU6CisgICAgICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTc1NDQ3CisgICAgICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTc1NDQ5CisKKyAgICAgICAgQWxzbywgd2Ugc2hvdWxk
IG9ubHkgRU5BQkxFX1NJR05BTF9CQVNFRF9WTV9UUkFQUyBpZiB0aGUgREZHIGlzIGVuYWJsZWQu
ICBJdCB3YXMKKyAgICAgICAgbmV2ZXIgbWVhbmluZ2Z1bCB0byB1c2UgU0lHTkFMX0JBU0VEX1ZN
X1RSQVBTIHdpdGggdGhlIGJhc2VsaW5lIEpJVCBhbnl3YXkuICBUaGlzCisgICAgICAgIGlzIGEg
bWlzLWNvbmZpZ3VyYXRpb24gZXJyb3IgdGhhdCBpcyBub3cgZml4ZWQuCisKKyAgICAgICAgKiB3
dGYvUGxhdGZvcm0uaDoKKwogMjAxNy0wOC0wOSAgWXVzdWtlIFN1enVraSAgPHV0YXRhbmUudGVh
QGdtYWlsLmNvbT4KIAogICAgICAgICBbV1RGXSBUaHJlYWRTcGVjaWZpYyBzaG91bGQgbm90IGlu
dHJvZHVjZSBhZGRpdGlvbmFsIGluZGlyZWN0aW9uCkluZGV4OiBTb3VyY2UvV1RGL3d0Zi9QbGF0
Zm9ybS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XVEYvd3RmL1BsYXRmb3JtLmgJKHJldmlzaW9u
IDIyMDU0OSkKKysrIFNvdXJjZS9XVEYvd3RmL1BsYXRmb3JtLmgJKHdvcmtpbmcgY29weSkKQEAg
LTc3MCwxNyArNzcwLDIzIEBACiAKICNpZiAhZGVmaW5lZChFTkFCTEVfREZHX0pJVCkgJiYgRU5B
QkxFKEpJVCkKIC8qIEVuYWJsZSB0aGUgREZHIEpJVCBvbiBYODYgYW5kIFg4Nl82NC4gKi8KLSNp
ZiAoQ1BVKFg4NikgfHwgQ1BVKFg4Nl82NCkpICYmIChPUyhEQVJXSU4pIHx8IE9TKExJTlVYKSB8
fCBPUyhGUkVFQlNEKSB8fCBPUyhXSU5ET1dTKSB8fCBPUyhIVVJEKSkKKyNpZiAoQ1BVKFg4Nikg
fHwgQ1BVKFg4Nl82NCkpICYmIChPUyhEQVJXSU4pIHx8IE9TKExJTlVYKSB8fCBPUyhGUkVFQlNE
KSB8fCBPUyhIVVJEKSkKICNkZWZpbmUgRU5BQkxFX0RGR19KSVQgMQogI2VuZGlmCiAvKiBFbmFi
bGUgdGhlIERGRyBKSVQgb24gQVJNdjcuICBPbmx5IHRlc3RlZCBvbiBpT1MgYW5kIFF0L0dUSysg
TGludXguICovCiAjaWYgKENQVShBUk1fVEhVTUIyKSB8fCBDUFUoQVJNNjQpKSAmJiAoUExBVEZP
Uk0oSU9TKSB8fCBQTEFURk9STShHVEspIHx8IFBMQVRGT1JNKFdQRSkpCiAjZGVmaW5lIEVOQUJM
RV9ERkdfSklUIDEKICNlbmRpZgotLyogRW5hYmxlIHRoZSBERkcgSklUIG9uIEFSTSBhbmQgTUlQ
Uy4gKi8KLSNpZiBDUFUoQVJNX1RSQURJVElPTkFMKSB8fCBDUFUoTUlQUykKKy8qIEVuYWJsZSB0
aGUgREZHIEpJVCBvbiBBUk0uICovCisjaWYgQ1BVKEFSTV9UUkFESVRJT05BTCkKICNkZWZpbmUg
RU5BQkxFX0RGR19KSVQgMQogI2VuZGlmCisvKiBGSVhNRTogTUlQUyBjYW5ub3QgZW5hYmxlIHRo
ZSBERkcgdW50aWwgaXQgaGFzIHN1cHBvcnQgZm9yIE1hY3JvQXNzZW1ibGVyOjpwcm9iZSgpLgor
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE3NTQ0NworKi8KKy8q
IEZJWE1FOiBXaW5kb3dzIGNhbm5vdCBlbmFibGUgdGhlIERGRyB1bnRpbCBpdCBoYXMgc3VwcG9y
dCBmb3IgTWFjcm9Bc3NlbWJsZXI6OnByb2JlKCkuCisgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MTc1NDQ5CisqLwogI2VuZGlmCiAKIC8qIENvbmN1cnJlbnQgSlMg
b25seSB3b3JrcyBvbiA2NC1iaXQgcGxhdGZvcm1zIGJlY2F1c2UgaXQgcmVxdWlyZXMgdGhhdApA
QCAtNzk5LDE5ICs4MDUsMjMgQEAKICNkZWZpbmUgRU5BQkxFX0ZBU1RfVExTX0pJVCAxCiAjZW5k
aWYKIAotLyogVGhpcyBjb250cm9scyB3aGV0aGVyIEIzIGlzIGJ1aWx0LiBCMyBpcyBuZWVkZWQg
Zm9yIEZUTCBKSVQgYW5kIFdlYkFzc2VtYmx5ICovCi0jaWYgRU5BQkxFKEZUTF9KSVQpIHx8IEVO
QUJMRShXRUJBU1NFTUJMWSkKLSNkZWZpbmUgRU5BQkxFX0IzX0pJVCAxCi0jZW5kaWYKLQogLyog
SWYgdGhlIGJhc2VsaW5lIGppdCBpcyBub3QgYXZhaWxhYmxlLCB0aGVuIGRpc2FibGUgdXBwZXIg
dGllcnMgYXMgd2VsbDogKi8KICNpZiAhRU5BQkxFKEpJVCkKICN1bmRlZiBFTkFCTEVfREZHX0pJ
VAogI3VuZGVmIEVOQUJMRV9GVExfSklUCi0jdW5kZWYgRU5BQkxFX0IzX0pJVAogI2RlZmluZSBF
TkFCTEVfREZHX0pJVCAwCiAjZGVmaW5lIEVOQUJMRV9GVExfSklUIDAKLSNkZWZpbmUgRU5BQkxF
X0IzX0pJVCAwCisjZW5kaWYKKworLyogSWYgdGhlIERGRyBqaXQgaXMgbm90IGF2YWlsYWJsZSwg
dGhlbiBkaXNhYmxlIHVwcGVyIHRpZXJzIGFzIHdlbGw6ICovCisjaWYgIUVOQUJMRShERkdfSklU
KQorI3VuZGVmIEVOQUJMRV9GVExfSklUCisjZGVmaW5lIEVOQUJMRV9GVExfSklUIDAKKyNlbmRp
ZgorCisvKiBUaGlzIGNvbnRyb2xzIHdoZXRoZXIgQjMgaXMgYnVpbHQuIEIzIGlzIG5lZWRlZCBm
b3IgRlRMIEpJVCBhbmQgV2ViQXNzZW1ibHkgKi8KKyNpZiBFTkFCTEUoRlRMX0pJVCkgfHwgRU5B
QkxFKFdFQkFTU0VNQkxZKQorI2RlZmluZSBFTkFCTEVfQjNfSklUIDEKICNlbmRpZgogCiAvKiBU
aGUgU2FtcGxpbmdQcm9maWxlciBpcyB0aGUgcHJvYmFiaWxpc3RpYyBhbmQgbG93LW92ZXJoZWFk
IHByb2ZpbGVyIHVzZWQgYnkKQEAgLTk0OCwxNCArOTU4LDYgQEAKICNlbmRpZgogI2VuZGlmCiAK
LS8qIEVuYWJsZSB0aGUgZm9sbG93aW5nIGlmIHlvdSB3YW50IHRvIHVzZSB0aGUgTWFjcm9Bc3Nl
bWJsZXI6OnByb2JlKCkgZmFjaWxpdHkKLSAgIHRvIGRvIEpJVCBkZWJ1Z2dpbmcuICovCi0jaWYg
KENQVShYODYpIHx8IENQVShYODZfNjQpIHx8IENQVShBUk02NCkgfHwgKENQVShBUk1fVEhVTUIy
KSAmJiBQTEFURk9STShJT1MpKSkgJiYgRU5BQkxFKEpJVCkgJiYgT1MoREFSV0lOKQotI2RlZmlu
ZSBFTkFCTEVfTUFTTV9QUk9CRSAxCi0jZWxzZQotI2RlZmluZSBFTkFCTEVfTUFTTV9QUk9CRSAw
Ci0jZW5kaWYKLQogI2lmbmRlZiBFTkFCTEVfRVhDRVBUSU9OX1NDT1BFX1ZFUklGSUNBVElPTgog
I2lmZGVmIE5ERUJVRwogI2RlZmluZSBFTkFCTEVfRVhDRVBUSU9OX1NDT1BFX1ZFUklGSUNBVElP
TiAwCkBAIC05NjQsNyArOTY2LDcgQEAKICNlbmRpZgogI2VuZGlmCiAKLSNpZiBFTkFCTEUoSklU
KSAmJiBIQVZFKE1BQ0hJTkVfQ09OVEVYVCkgJiYgKENQVShYODYpIHx8IENQVShYODZfNjQpIHx8
IENQVShBUk02NCkpCisjaWYgRU5BQkxFKERGR19KSVQpICYmIEhBVkUoTUFDSElORV9DT05URVhU
KSAmJiAoQ1BVKFg4NikgfHwgQ1BVKFg4Nl82NCkgfHwgQ1BVKEFSTTY0KSkKICNkZWZpbmUgRU5B
QkxFX1NJR05BTF9CQVNFRF9WTV9UUkFQUyAxCiAjZW5kaWYKIAo=
</data>
<flag name="review"
          id="338375"
          type_id="1"
          status="+"
          setter="saam"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>317903</attachid>
            <date>2017-08-10 19:31:26 -0700</date>
            <delta_ts>2017-08-10 22:31:35 -0700</delta_ts>
            <desc>patch for landing w/ Windows fix.</desc>
            <filename>bug-175446.patch</filename>
            <type>text/plain</type>
            <size>20224</size>
            <attacher name="Mark Lam">mark.lam</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMjIwNTcyKQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDM3IEBA
CisyMDE3LTA4LTEwICBNYXJrIExhbSAgPG1hcmsubGFtQGFwcGxlLmNvbT4KKworICAgICAgICBN
YWtlIHRoZSBNQVNNX1BST0JFIG1lY2hhbmlzbSBtYW5kYXRvcnkgZm9yIERGRyBhbmQgRlRMIGJ1
aWxkcy4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE3
NTQ0NgorICAgICAgICA8cmRhcjovL3Byb2JsZW0vMzM4MzY1NDU+CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgU2FhbSBCYXJhdGkuCisKKyAgICAgICAgKiBhc3NlbWJsZXIvQWJzdHJhY3RNYWNyb0Fz
c2VtYmxlci5oOgorICAgICAgICAqIGFzc2VtYmxlci9NYWNyb0Fzc2VtYmxlci5jcHA6CisgICAg
ICAgIChKU0M6Ok1hY3JvQXNzZW1ibGVyOjpwcm9iZSk6CisgICAgICAgICogYXNzZW1ibGVyL01h
Y3JvQXNzZW1ibGVyLmg6CisgICAgICAgICogYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyQVJNLmNw
cDoKKyAgICAgICAgKEpTQzo6TWFjcm9Bc3NlbWJsZXI6OnByb2JlKToKKyAgICAgICAgKiBhc3Nl
bWJsZXIvTWFjcm9Bc3NlbWJsZXJBUk0uaDoKKyAgICAgICAgKEpTQzo6TWFjcm9Bc3NlbWJsZXJB
Uk06OnRydXN0ZWRJbW0zMkZyb21QdHIpOgorICAgICAgICAqIGFzc2VtYmxlci9NYWNyb0Fzc2Vt
YmxlckFSTTY0LmNwcDoKKyAgICAgICAgKEpTQzo6TWFjcm9Bc3NlbWJsZXI6OnByb2JlKToKKyAg
ICAgICAgKiBhc3NlbWJsZXIvTWFjcm9Bc3NlbWJsZXJBUk12Ny5jcHA6CisgICAgICAgIChKU0M6
Ok1hY3JvQXNzZW1ibGVyOjpwcm9iZSk6CisgICAgICAgICogYXNzZW1ibGVyL01hY3JvQXNzZW1i
bGVyQVJNdjcuaDoKKyAgICAgICAgKEpTQzo6TWFjcm9Bc3NlbWJsZXJBUk12Nzo6dHJ1c3RlZElt
bTMyRnJvbVB0cik6CisgICAgICAgICogYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyUHJpbnRlci5j
cHA6CisgICAgICAgICogYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyUHJpbnRlci5oOgorICAgICAg
ICAqIGFzc2VtYmxlci9NYWNyb0Fzc2VtYmxlclg4NkNvbW1vbi5jcHA6CisgICAgICAgICogYXNz
ZW1ibGVyL3Rlc3RtYXNtLmNwcDoKKyAgICAgICAgKEpTQzo6aXNTcGVjaWFsR1BSKToKKyAgICAg
ICAgKEpTQzo6dGVzdFByb2JlTW9kaWZpZXNQcm9ncmFtQ291bnRlcik6CisgICAgICAgIChKU0M6
OnJ1bik6CisgICAgICAgICogYjMvQjNMb3dlclRvQWlyLmNwcDoKKyAgICAgICAgKEpTQzo6QjM6
OkFpcjo6TG93ZXJUb0Fpcjo6cHJpbnQpOgorICAgICAgICAqIGIzL2Fpci9BaXJQcmludFNwZWNp
YWwuY3BwOgorICAgICAgICAqIGIzL2Fpci9BaXJQcmludFNwZWNpYWwuaDoKKwogMjAxNy0wOC0x
MCAgTWFyayBMYW0gIDxtYXJrLmxhbUBhcHBsZS5jb20+CiAKICAgICAgICAgQXBwbHkgdGhlIFVO
TElLRUxZIG1hY3JvIHRvIHNvbWUgdW5saWtlbHkgdGhpbmdzLgpJbmRleDogU291cmNlL0phdmFT
Y3JpcHRDb3JlL2Fzc2VtYmxlci9BYnN0cmFjdE1hY3JvQXNzZW1ibGVyLmgKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9BYnN0cmFjdE1hY3JvQXNzZW1ibGVy
LmgJKHJldmlzaW9uIDIyMDU3MikKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIv
QWJzdHJhY3RNYWNyb0Fzc2VtYmxlci5oCSh3b3JraW5nIGNvcHkpCkBAIC00MywxMCArNDMsOCBA
QCBuYW1lc3BhY2UgSlNDIHsKIAogI2lmIEVOQUJMRShBU1NFTUJMRVIpCiAKLSNpZiBFTkFCTEUo
TUFTTV9QUk9CRSkKIHN0cnVjdCBQcm9iZUNvbnRleHQ7CiB0eXBlZGVmIHZvaWQgKCpQcm9iZUZ1
bmN0aW9uKShzdHJ1Y3QgUHJvYmVDb250ZXh0Kik7Ci0jZW5kaWYKICAgICAKIGNsYXNzIEFsbG93
TWFjcm9TY3JhdGNoUmVnaXN0ZXJVc2FnZTsKIGNsYXNzIERpc2FsbG93TWFjcm9TY3JhdGNoUmVn
aXN0ZXJVc2FnZTsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvTWFjcm9B
c3NlbWJsZXIuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJs
ZXIvTWFjcm9Bc3NlbWJsZXIuY3BwCShyZXZpc2lvbiAyMjA1NzIpCisrKyBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyLmNwcAkod29ya2luZyBjb3B5KQpAQCAt
MzQsNyArMzQsNiBAQCBuYW1lc3BhY2UgSlNDIHsKIAogY29uc3QgZG91YmxlIE1hY3JvQXNzZW1i
bGVyOjp0d29Ub1RoZTMyID0gKGRvdWJsZSkweDEwMDAwMDAwMHVsbDsKIAotI2lmIEVOQUJMRShN
QVNNX1BST0JFKQogc3RhdGljIHZvaWQgc3RkRnVuY3Rpb25DYWxsYmFjayhQcm9iZUNvbnRleHQq
IGNvbnRleHQpCiB7CiAgICAgYXV0byBmdW5jID0gc3RhdGljX2Nhc3Q8Y29uc3Qgc3RkOjpmdW5j
dGlvbjx2b2lkKFByb2JlQ29udGV4dCopPio+KGNvbnRleHQtPmFyZyk7CkBAIC00NSw3ICs0NCw2
IEBAIHZvaWQgTWFjcm9Bc3NlbWJsZXI6OnByb2JlKHN0ZDo6ZnVuY3Rpb24KIHsKICAgICBwcm9i
ZShzdGRGdW5jdGlvbkNhbGxiYWNrLCBuZXcgc3RkOjpmdW5jdGlvbjx2b2lkKFByb2JlQ29udGV4
dCopPihmdW5jKSk7CiB9Ci0jZW5kaWYgLy8gRU5BQkxFKE1BU01fUFJPQkUpCiAKIH0gLy8gbmFt
ZXNwYWNlIEpTQwogCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL01hY3Jv
QXNzZW1ibGVyLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxl
ci9NYWNyb0Fzc2VtYmxlci5oCShyZXZpc2lvbiAyMjA1NzIpCisrKyBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyLmgJKHdvcmtpbmcgY29weSkKQEAgLTE4MjQs
NyArMTgyNCw2IEBAIHB1YmxpYzoKICAgICAgICAgdXJzaGlmdDMyKHNyYywgdHJ1c3RlZEltbTMy
Rm9yU2hpZnQoYW1vdW50KSwgZGVzdCk7CiAgICAgfQogCi0jaWYgRU5BQkxFKE1BU01fUFJPQkUp
CiAgICAgc3RydWN0IENQVVN0YXRlOwogCiAgICAgLy8gVGhpcyBmdW5jdGlvbiBlbWl0cyBjb2Rl
IHRvIHByZXNlcnZlIHRoZSBDUFVTdGF0ZSAoZS5nLiByZWdpc3RlcnMpLApAQCAtMTg0OCwxMCAr
MTg0Nyw4IEBAIHB1YmxpYzoKICAgICB2b2lkIHByb2JlKFByb2JlRnVuY3Rpb24sIHZvaWQqIGFy
Zyk7CiAKICAgICBKU19FWFBPUlRfUFJJVkFURSB2b2lkIHByb2JlKHN0ZDo6ZnVuY3Rpb248dm9p
ZChQcm9iZUNvbnRleHQqKT4pOwotI2VuZGlmIC8vIEVOQUJMRShNQVNNX1BST0JFKQogCiAgICAg
Ly8gTGV0J3MgeW91IHByaW50IGZyb20geW91ciBKSVQgZ2VuZXJhdGVkIGNvZGUuCi0gICAgLy8g
VGhpcyBvbmx5IHdvcmtzIGlmIEVOQUJMRShNQVNNX1BST0JFKS4gT3RoZXJ3aXNlLCBwcmludCgp
IGlzIGEgbm8tb3AuCiAgICAgLy8gU2VlIGNvbW1lbnRzIGluIE1hY3JvQXNzZW1ibGVyUHJpbnRl
ci5oIGZvciBleGFtcGxlcyBvZiBob3cgdG8gdXNlIHRoaXMuCiAgICAgdGVtcGxhdGU8dHlwZW5h
bWUuLi4gQXJndW1lbnRzPgogICAgIHZvaWQgcHJpbnQoQXJndW1lbnRzJiYuLi4gYXJncyk7CkBA
IC0xODU5LDggKzE4NTYsNiBAQCBwdWJsaWM6CiAgICAgdm9pZCBwcmludChQcmludGVyOjpQcmlu
dFJlY29yZExpc3QqKTsKIH07CiAKLSNpZiBFTkFCTEUoTUFTTV9QUk9CRSkKLQogc3RydWN0IE1h
Y3JvQXNzZW1ibGVyOjpDUFVTdGF0ZSB7CiAgICAgc3RhdGljIGlubGluZSBjb25zdCBjaGFyKiBn
cHJOYW1lKFJlZ2lzdGVySUQgaWQpIHsgcmV0dXJuIE1hY3JvQXNzZW1ibGVyOjpncHJOYW1lKGlk
KTsgfQogICAgIHN0YXRpYyBpbmxpbmUgY29uc3QgY2hhciogc3ByTmFtZShTUFJlZ2lzdGVySUQg
aWQpIHsgcmV0dXJuIE1hY3JvQXNzZW1ibGVyOjpzcHJOYW1lKGlkKTsgfQpAQCAtMTk2Myw3ICsx
OTU4LDYgQEAgc3RydWN0IFByb2JlQ29udGV4dCB7CiAgICAgdm9pZComIGZwKCkgeyByZXR1cm4g
Y3B1LmZwKCk7IH0KICAgICB2b2lkKiYgc3AoKSB7IHJldHVybiBjcHUuc3AoKTsgfQogfTsKLSNl
bmRpZiAvLyBFTkFCTEUoTUFTTV9QUk9CRSkKICAgICAKIH0gLy8gbmFtZXNwYWNlIEpTQwogCklu
ZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyQVJNNjQu
Y3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvTWFjcm9B
c3NlbWJsZXJBUk02NC5jcHAJKHJldmlzaW9uIDIyMDU3MikKKysrIFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9hc3NlbWJsZXIvTWFjcm9Bc3NlbWJsZXJBUk02NC5jcHAJKHdvcmtpbmcgY29weSkKQEAg
LTMyLDggKzMyLDYgQEAKIAogbmFtZXNwYWNlIEpTQyB7CiAKLSNpZiBFTkFCTEUoTUFTTV9QUk9C
RSkKLQogZXh0ZXJuICJDIiB2b2lkIGN0aU1hc21Qcm9iZVRyYW1wb2xpbmUoKTsKIAogdXNpbmcg
bmFtZXNwYWNlIEFSTTY0UmVnaXN0ZXJzOwpAQCAtNTUxLDcgKzU0OSw2IEBAIHZvaWQgTWFjcm9B
c3NlbWJsZXI6OnByb2JlKFByb2JlRnVuY3Rpb24KICAgICBsb2FkNjQoQWRkcmVzcyhzcCwgb2Zm
c2V0b2YoT3V0Z29pbmdQcm9iZVJlY29yZCwgbHIpKSwgbHIpOwogICAgIGFkZDY0KFRydXN0ZWRJ
bW0zMihzaXplb2YoT3V0Z29pbmdQcm9iZVJlY29yZCkpLCBzcCk7CiB9Ci0jZW5kaWYgLy8gRU5B
QkxFKE1BU01fUFJPQkUpCiAKIH0gLy8gbmFtZXNwYWNlIEpTQwogCkluZGV4OiBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyQVJNLmNwcAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyQVJNLmNwcAko
cmV2aXNpb24gMjIwNTcyKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9NYWNy
b0Fzc2VtYmxlckFSTS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTk2LDggKzk2LDYgQEAgdm9pZCBN
YWNyb0Fzc2VtYmxlckFSTTo6bG9hZDMyV2l0aFVuYWxpZwogfQogI2VuZGlmIC8vIENQVShBUk1W
NV9PUl9MT1dFUikKIAotI2lmIEVOQUJMRShNQVNNX1BST0JFKQotCiBleHRlcm4gIkMiIHZvaWQg
Y3RpTWFzbVByb2JlVHJhbXBvbGluZSgpOwogCiAjaWYgQ09NUElMRVIoR0NDX09SX0NMQU5HKQpA
QCAtMzgyLDcgKzM4MCw2IEBAIHZvaWQgTWFjcm9Bc3NlbWJsZXI6OnByb2JlKFByb2JlRnVuY3Rp
b24KICAgICBtX2Fzc2VtYmxlci5ibHgoUmVnaXN0ZXJJRDo6UzApOwogCiB9Ci0jZW5kaWYgLy8g
RU5BQkxFKE1BU01fUFJPQkUpCiAKIH0gLy8gbmFtZXNwYWNlIEpTQwogCkluZGV4OiBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyQVJNLmgKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9NYWNyb0Fzc2VtYmxlckFSTS5oCShy
ZXZpc2lvbiAyMjA1NzIpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL01hY3Jv
QXNzZW1ibGVyQVJNLmgJKHdvcmtpbmcgY29weSkKQEAgLTE1ODYsNyArMTU4Niw2IEBAIHByb3Rl
Y3RlZDoKICAgICAgICAgbV9hc3NlbWJsZXIuYmx4KEFSTVJlZ2lzdGVyczo6UzEpOwogICAgIH0K
IAotI2lmIEVOQUJMRShNQVNNX1BST0JFKQogICAgIGlubGluZSBUcnVzdGVkSW1tMzIgdHJ1c3Rl
ZEltbTMyRnJvbVB0cih2b2lkKiBwdHIpCiAgICAgewogICAgICAgICByZXR1cm4gVHJ1c3RlZElt
bTMyKFRydXN0ZWRJbW1QdHIocHRyKSk7CkBAIC0xNjAxLDcgKzE2MDAsNiBAQCBwcm90ZWN0ZWQ6
CiAgICAgewogICAgICAgICByZXR1cm4gVHJ1c3RlZEltbTMyKFRydXN0ZWRJbW1QdHIocmVpbnRl
cnByZXRfY2FzdDx2b2lkKj4oZnVuY3Rpb24pKSk7CiAgICAgfQotI2VuZGlmCiAKIHByaXZhdGU6
CiAgICAgZnJpZW5kIGNsYXNzIExpbmtCdWZmZXI7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyQVJNdjcuY3BwCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvTWFjcm9Bc3NlbWJsZXJBUk12Ny5jcHAJKHJldmlz
aW9uIDIyMDU3MikKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvTWFjcm9Bc3Nl
bWJsZXJBUk12Ny5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTMyLDggKzMyLDYgQEAKIAogbmFtZXNw
YWNlIEpTQyB7CiAKLSNpZiBFTkFCTEUoTUFTTV9QUk9CRSkKLQogZXh0ZXJuICJDIiB2b2lkIGN0
aU1hc21Qcm9iZVRyYW1wb2xpbmUoKTsKIAogI2lmIENPTVBJTEVSKEdDQ19PUl9DTEFORykKQEAg
LTM1OSw3ICszNTcsNiBAQCB2b2lkIE1hY3JvQXNzZW1ibGVyOjpwcm9iZShQcm9iZUZ1bmN0aW9u
CiAgICAgbW92ZSh0cnVzdGVkSW1tMzJGcm9tUHRyKGN0aU1hc21Qcm9iZVRyYW1wb2xpbmUpLCBS
ZWdpc3RlcklEOjppcCk7CiAgICAgbV9hc3NlbWJsZXIuYmx4KFJlZ2lzdGVySUQ6OmlwKTsKIH0K
LSNlbmRpZiAvLyBFTkFCTEUoTUFTTV9QUk9CRSkKIAogfSAvLyBuYW1lc3BhY2UgSlNDCiAKSW5k
ZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvTWFjcm9Bc3NlbWJsZXJBUk12Ny5o
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvTWFjcm9Bc3Nl
bWJsZXJBUk12Ny5oCShyZXZpc2lvbiAyMjA1NzIpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
YXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyQVJNdjcuaAkod29ya2luZyBjb3B5KQpAQCAtMjEwNyw3
ICsyMTA3LDYgQEAgcHJvdGVjdGVkOgogICAgICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8QVJNdjdB
c3NlbWJsZXI6OkNvbmRpdGlvbj4oY29uZCk7CiAgICAgfQogICAgIAotI2lmIEVOQUJMRShNQVNN
X1BST0JFKQogICAgIGlubGluZSBUcnVzdGVkSW1tMzIgdHJ1c3RlZEltbTMyRnJvbVB0cih2b2lk
KiBwdHIpCiAgICAgewogICAgICAgICByZXR1cm4gVHJ1c3RlZEltbTMyKFRydXN0ZWRJbW1QdHIo
cHRyKSk7CkBAIC0yMTIyLDcgKzIxMjEsNiBAQCBwcm90ZWN0ZWQ6CiAgICAgewogICAgICAgICBy
ZXR1cm4gVHJ1c3RlZEltbTMyKFRydXN0ZWRJbW1QdHIocmVpbnRlcnByZXRfY2FzdDx2b2lkKj4o
ZnVuY3Rpb24pKSk7CiAgICAgfQotI2VuZGlmCiAKIHByaXZhdGU6CiAgICAgZnJpZW5kIGNsYXNz
IExpbmtCdWZmZXI7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL01hY3Jv
QXNzZW1ibGVyUHJpbnRlci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3Jl
L2Fzc2VtYmxlci9NYWNyb0Fzc2VtYmxlclByaW50ZXIuY3BwCShyZXZpc2lvbiAyMjA1NzIpCisr
KyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyUHJpbnRlci5j
cHAJKHdvcmtpbmcgY29weSkKQEAgLTI2LDkgKzI2LDggQEAKICNpbmNsdWRlICJjb25maWcuaCIK
ICNpbmNsdWRlICJNYWNyb0Fzc2VtYmxlclByaW50ZXIuaCIKIAotI2lmIEVOQUJMRShNQVNNX1BS
T0JFKQotCiAjaW5jbHVkZSAiTWFjcm9Bc3NlbWJsZXIuaCIKKyNpbmNsdWRlIDxpbnR0eXBlcy5o
PgogCiBuYW1lc3BhY2UgSlNDIHsKIG5hbWVzcGFjZSBQcmludGVyIHsKQEAgLTUzLDI1ICs1Miwy
NSBAQCB2b2lkIHByaW50QWxsUmVnaXN0ZXJzKFByaW50U3RyZWFtJiBvdXQsCiAgICAgSU5ERU5U
LCBvdXQucHJpbnQoImNwdToge1xuIik7CiAKICNpZiBVU0UoSlNWQUxVRTMyXzY0KQotICAgICNk
ZWZpbmUgSU5UUFRSX0hFWF9WQUxVRV9GT1JNQVQgIjB4JTA4bHgiCisgICAgI2RlZmluZSBJTlRQ
VFJfSEVYX1ZBTFVFX0ZPUk1BVCAiMHglMDgiIFBSSXhQVFIKICNlbHNlCi0gICAgI2RlZmluZSBJ
TlRQVFJfSEVYX1ZBTFVFX0ZPUk1BVCAiMHglMDE2bHgiCisgICAgI2RlZmluZSBJTlRQVFJfSEVY
X1ZBTFVFX0ZPUk1BVCAiMHglMDE2IiBQUkl4UFRSCiAjZW5kaWYKIAogICAgIGZvciAoYXV0byBp
ZCA9IE1hY3JvQXNzZW1ibGVyOjpmaXJzdFJlZ2lzdGVyKCk7IGlkIDw9IE1hY3JvQXNzZW1ibGVy
OjpsYXN0UmVnaXN0ZXIoKTsgaWQgPSBuZXh0SUQoaWQpKSB7CiAgICAgICAgIGludHB0cl90IHZh
bHVlID0gc3RhdGljX2Nhc3Q8aW50cHRyX3Q+KGNwdS5ncHIoaWQpKTsKLSAgICAgICAgSU5ERU5U
LCBvdXQucHJpbnRmKCIgICAgJTZzOiAiIElOVFBUUl9IRVhfVkFMVUVfRk9STUFUICIgICVsZFxu
IiwgY3B1Lmdwck5hbWUoaWQpLCB2YWx1ZSwgdmFsdWUpOworICAgICAgICBJTkRFTlQsIG91dC5w
cmludGYoIiAgICAlNnM6ICIgSU5UUFRSX0hFWF9WQUxVRV9GT1JNQVQgIiAgJSIgUFJJZFBUUiAi
XG4iLCBjcHUuZ3ByTmFtZShpZCksIHZhbHVlLCB2YWx1ZSk7CiAgICAgfQogICAgIGZvciAoYXV0
byBpZCA9IE1hY3JvQXNzZW1ibGVyOjpmaXJzdFNQUmVnaXN0ZXIoKTsgaWQgPD0gTWFjcm9Bc3Nl
bWJsZXI6Omxhc3RTUFJlZ2lzdGVyKCk7IGlkID0gbmV4dElEKGlkKSkgewogICAgICAgICBpbnRw
dHJfdCB2YWx1ZSA9IHN0YXRpY19jYXN0PGludHB0cl90PihjcHUuc3ByKGlkKSk7Ci0gICAgICAg
IElOREVOVCwgb3V0LnByaW50ZigiICAgICU2czogIiBJTlRQVFJfSEVYX1ZBTFVFX0ZPUk1BVCAi
ICAlbGRcbiIsIGNwdS5zcHJOYW1lKGlkKSwgdmFsdWUsIHZhbHVlKTsKKyAgICAgICAgSU5ERU5U
LCBvdXQucHJpbnRmKCIgICAgJTZzOiAiIElOVFBUUl9IRVhfVkFMVUVfRk9STUFUICIgICUiIFBS
SWRQVFIgIlxuIiwgY3B1LnNwck5hbWUoaWQpLCB2YWx1ZSwgdmFsdWUpOwogICAgIH0KICAgICAj
dW5kZWYgSU5UUFRSX0hFWF9WQUxVRV9GT1JNQVQKIAogICAgIGZvciAoYXV0byBpZCA9IE1hY3Jv
QXNzZW1ibGVyOjpmaXJzdEZQUmVnaXN0ZXIoKTsgaWQgPD0gTWFjcm9Bc3NlbWJsZXI6Omxhc3RG
UFJlZ2lzdGVyKCk7IGlkID0gbmV4dElEKGlkKSkgewogICAgICAgICB1aW50NjRfdCB1ID0gYml0
d2lzZV9jYXN0PHVpbnQ2NF90PihjcHUuZnByKGlkKSk7CiAgICAgICAgIGRvdWJsZSBkID0gY3B1
LmZwcihpZCk7Ci0gICAgICAgIElOREVOVCwgb3V0LnByaW50ZigiICAgICU2czogMHglMDE2bGx4
ICAlLjEzZ1xuIiwgY3B1LmZwck5hbWUoaWQpLCB1LCBkKTsKKyAgICAgICAgSU5ERU5ULCBvdXQu
cHJpbnRmKCIgICAgJTZzOiAweCUwMTYiIFBSSXg2NCAiICAlLjEzZ1xuIiwgY3B1LmZwck5hbWUo
aWQpLCB1LCBkKTsKICAgICB9CiAKICAgICBJTkRFTlQsIG91dC5wcmludCgifVxuIik7CkBAIC05
OSw3ICs5OCw3IEBAIHZvaWQgcHJpbnRGUFJlZ2lzdGVySUQoUHJpbnRTdHJlYW0mIG91dCwKICAg
ICBGUFJlZ2lzdGVySUQgcmVnSUQgPSBjb250ZXh0LmRhdGEuYXM8RlBSZWdpc3RlcklEPigpOwog
ICAgIGNvbnN0IGNoYXIqIG5hbWUgPSBDUFVTdGF0ZTo6ZnByTmFtZShyZWdJRCk7CiAgICAgZG91
YmxlIHZhbHVlID0gY29udGV4dC5wcm9iZUNvbnRleHQuZnByKHJlZ0lEKTsKLSAgICBvdXQucHJp
bnRmKCIlczo8MHglMDE2bGx4ICUuMTNnPiIsIG5hbWUsIGJpdHdpc2VfY2FzdDx1aW50NjRfdD4o
dmFsdWUpLCB2YWx1ZSk7CisgICAgb3V0LnByaW50ZigiJXM6PDB4JTAxNiIgUFJJeDY0ICIgJS4x
M2c+IiwgbmFtZSwgYml0d2lzZV9jYXN0PHVpbnQ2NF90Pih2YWx1ZSksIHZhbHVlKTsKIH0KIAog
dm9pZCBwcmludEFkZHJlc3MoUHJpbnRTdHJlYW0mIG91dCwgQ29udGV4dCYgY29udGV4dCkKQEAg
LTE0Niw3ICsxNDUsNyBAQCB2b2lkIHByaW50TWVtb3J5KFByaW50U3RyZWFtJiBvdXQsIENvbnRl
CiAgICAgICAgIH0KICAgICAgICAgaWYgKG1lbW9yeS5udW1CeXRlcyA9PSBzaXplb2YoaW50NjRf
dCkpIHsKICAgICAgICAgICAgIGF1dG8gcCA9IHJlaW50ZXJwcmV0X2Nhc3Q8aW50NjRfdCo+KHB0
cik7Ci0gICAgICAgICAgICBvdXQucHJpbnRmKCIlcDo8MHglMDE2bGx4ICVsbGQ+IiwgcCwgKnAs
ICpwKTsKKyAgICAgICAgICAgIG91dC5wcmludGYoIiVwOjwweCUwMTYiIFBSSXg2NCAiICUiIFBS
SWQ2NCAiPiIsIHAsICpwLCAqcCk7CiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIH0KICAg
ICAgICAgLy8gRWxzZSwgdW5rbm93biB3b3JkIHNpemUuIEZhbGwgdGhydSBhbmQgZHVtcCBpbiB0
aGUgZ2VuZXJpYyB3YXkuCkBAIC0xODMsNCArMTgyLDMgQEAgdm9pZCBwcmludENhbGxiYWNrKFBy
b2JlQ29udGV4dCogcHJvYmVDbwogfSAvLyBuYW1lc3BhY2UgUHJpbnRlcgogfSAvLyBuYW1lc3Bh
Y2UgSlNDCiAKLSNlbmRpZiAvLyBFTkFCTEUoTUFTTV9QUk9CRSkKSW5kZXg6IFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9hc3NlbWJsZXIvTWFjcm9Bc3NlbWJsZXJQcmludGVyLmgKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9NYWNyb0Fzc2VtYmxlclByaW50ZXIu
aAkocmV2aXNpb24gMjIwNTcyKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9N
YWNyb0Fzc2VtYmxlclByaW50ZXIuaAkod29ya2luZyBjb3B5KQpAQCAtMzIsOCArMzIsNiBAQCBu
YW1lc3BhY2UgSlNDIHsKIAogI2lmIEVOQUJMRShBU1NFTUJMRVIpCiAKLSNpZiBFTkFCTEUoTUFT
TV9QUk9CRSkKLSAgICAKIC8vIFdoYXQgaXMgTWFjcm9Bc3NlbWJsZXI6OnByaW50KCk/CiAvLyA9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAvLyBUaGUgTWFjcm9Bc3NzZW1ibGVyOjpw
cmludCgpIG1ha2VzIGl0IGVhc3kgdG8gYWRkIHByaW50IGxvZ2dpbmcKQEAgLTI0MCwxNSArMjM4
LDYgQEAgaW5saW5lIHZvaWQgTWFjcm9Bc3NlbWJsZXI6OnByaW50KFByaW50ZQogICAgIHByb2Jl
KFByaW50ZXI6OnByaW50Q2FsbGJhY2ssIHByaW50UmVjb3JkTGlzdCk7CiB9CiAKLSNlbHNlIC8v
IEVOQUJMRShNQVNNX1BST0JFKQotCi10ZW1wbGF0ZTx0eXBlbmFtZS4uLiBBcmd1bWVudHM+Ci1p
bmxpbmUgdm9pZCBNYWNyb0Fzc2VtYmxlcjo6cHJpbnQoQXJndW1lbnRzJiYuLi4pIHsgfQotCi1p
bmxpbmUgdm9pZCBNYWNyb0Fzc2VtYmxlcjo6cHJpbnQoUHJpbnRlcjo6UHJpbnRSZWNvcmRMaXN0
KikgeyB9Ci0KLSNlbmRpZiAvLyBFTkFCTEUoTUFTTV9QUk9CRSkKLQogI2VuZGlmIC8vIEVOQUJM
RShBU1NFTUJMRVIpCiAKIH0gLy8gbmFtZXNwYWNlIEpTQwpJbmRleDogU291cmNlL0phdmFTY3Jp
cHRDb3JlL2Fzc2VtYmxlci9NYWNyb0Fzc2VtYmxlclg4NkNvbW1vbi5jcHAKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9NYWNyb0Fzc2VtYmxlclg4NkNvbW1v
bi5jcHAJKHJldmlzaW9uIDIyMDU3MikKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJs
ZXIvTWFjcm9Bc3NlbWJsZXJYODZDb21tb24uY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zMiw4ICsz
Miw2IEBACiAKIG5hbWVzcGFjZSBKU0MgewogCi0jaWYgRU5BQkxFKE1BU01fUFJPQkUpCi0KIGV4
dGVybiAiQyIgdm9pZCBjdGlNYXNtUHJvYmVUcmFtcG9saW5lKCk7CiAKICNpZiBDT01QSUxFUihH
Q0NfT1JfQ0xBTkcpCkBAIC01MjQsNiArNTIyLDEzIEBAIGFzbSAoCiAKICNlbmRpZiAvLyBDT01Q
SUxFUihHQ0NfT1JfQ0xBTkcpCiAKKyNpZiBPUyhXSU5ET1dTKQorZXh0ZXJuICJDIiBOT19SRVRV
Uk5fRFVFX1RPX0FTU0VSVCB2b2lkIGN0aU1hc21Qcm9iZVRyYW1wb2xpbmUoKQoreworICAgIFJF
TEVBU0VfQVNTRVJUX05PVF9SRUFDSEVEKCk7Cit9CisjZW5kaWYgLy8gT1MoV0lORE9XUykKKwog
Ly8gV2hhdCBjb2RlIGlzIGVtaXR0ZWQgZm9yIHRoZSBwcm9iZT8KIC8vID09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KIC8vIFdlIHdhbnQgdG8ga2VlcCB0aGUgc2l6ZSBvZiB0aGUg
ZW1pdHRlZCBwcm9iZSBpbnZvY2F0aW9uIGNvZGUgYXMgY29tcGFjdCBhcwpAQCAtNTc1LDggKzU4
MCw2IEBAIHZvaWQgTWFjcm9Bc3NlbWJsZXI6OnByb2JlKFByb2JlRnVuY3Rpb24KICAgICBjYWxs
KFJlZ2lzdGVySUQ6OmVheCk7CiB9CiAKLSNlbmRpZiAvLyBFTkFCTEUoTUFTTV9QUk9CRSkKLQog
I2lmIENQVShYODYpICYmICFPUyhNQUNfT1NfWCkKIE1hY3JvQXNzZW1ibGVyWDg2Q29tbW9uOjpT
U0UyQ2hlY2tTdGF0ZSBNYWNyb0Fzc2VtYmxlclg4NkNvbW1vbjo6c19zc2UyQ2hlY2tTdGF0ZSA9
IE5vdENoZWNrZWRTU0UyOwogI2VuZGlmCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNz
ZW1ibGVyL3Rlc3RtYXNtLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
YXNzZW1ibGVyL3Rlc3RtYXNtLmNwcAkocmV2aXNpb24gMjIwNTcyKQorKysgU291cmNlL0phdmFT
Y3JpcHRDb3JlL2Fzc2VtYmxlci90ZXN0bWFzbS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTg1LDcg
Kzg1LDYgQEAgdGVtcGxhdGU8dHlwZW5hbWUgVD4gVCBuZXh0SUQoVCBpZCkgeyByZQogI2RlZmlu
ZSBDSEVDS19ET1VCTEVfQklUV0lTRV9FUShhLCBiKSBcCiAgICAgQ0hFQ0soYml0d2lzZV9jYXN0
PHVpbnQ2NF90PihhKSA9PSBiaXR3aXNlX2Nhc3Q8dWludDY0X3Q+KGEpKQogCi0jaWYgRU5BQkxF
KE1BU01fUFJPQkUpCiBib29sIGlzUEMoTWFjcm9Bc3NlbWJsZXI6OlJlZ2lzdGVySUQgaWQpCiB7
CiAjaWYgQ1BVKEFSTV9USFVNQjIpIHx8IENQVShBUk1fVFJBRElUSU9OQUwpCkBAIC0xMTYsNyAr
MTE1LDYgQEAgYm9vbCBpc1NwZWNpYWxHUFIoTWFjcm9Bc3NlbWJsZXI6OlJlZ2lzdAogI2VuZGlm
CiAgICAgcmV0dXJuIGZhbHNlOwogfQotI2VuZGlmIC8vIEVOQUJMRShNQVNNX1BST0JFKQogCiBN
YWNyb0Fzc2VtYmxlckNvZGVSZWYgY29tcGlsZShHZW5lcmF0b3ImJiBnZW5lcmF0ZSkKIHsKQEAg
LTE0OSw3ICsxNDcsNiBAQCB2b2lkIHRlc3RTaW1wbGUoKQogICAgIH0pID09IDQyKTsKIH0KIAot
I2lmIEVOQUJMRShNQVNNX1BST0JFKQogdm9pZCB0ZXN0UHJvYmVSZWFkc0FyZ3VtZW50UmVnaXN0
ZXJzKCkKIHsKICAgICBib29sIHByb2JlV2FzQ2FsbGVkID0gZmFsc2U7CkBAIC00OTMsNyArNDkw
LDYgQEAgdm9pZCB0ZXN0UHJvYmVNb2RpZmllc1Byb2dyYW1Db3VudGVyKCkKICAgICBDSEVDSyhw
cm9iZUNhbGxDb3VudCA9PSAyKTsKICAgICBDSEVDSyhjb250aW51YXRpb25XYXNSZWFjaGVkKTsK
IH0KLSNlbmRpZiAvLyBFTkFCTEUoTUFTTV9QUk9CRSkKIAogI2RlZmluZSBSVU4odGVzdCkgZG8g
eyAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICAgICBpZiAoIXNob3VsZFJ1bigjdGVz
dCkpICAgICAgICAgICAgICAgICAgXApAQCAtNTE5LDE0ICs1MTUsMTIgQEAgdm9pZCBydW4oY29u
c3QgY2hhciogZmlsdGVyKQogCiAgICAgUlVOKHRlc3RTaW1wbGUoKSk7CiAKLSNpZiBFTkFCTEUo
TUFTTV9QUk9CRSkKICAgICBSVU4odGVzdFByb2JlUmVhZHNBcmd1bWVudFJlZ2lzdGVycygpKTsK
ICAgICBSVU4odGVzdFByb2JlV3JpdGVzQXJndW1lbnRSZWdpc3RlcnMoKSk7CiAgICAgUlVOKHRl
c3RQcm9iZVByZXNlcnZlc0dQUlMoKSk7CiAgICAgUlVOKHRlc3RQcm9iZU1vZGlmaWVzU3RhY2tQ
b2ludGVyVG9JbnNpZGVQcm9iZUNvbnRleHRPblN0YWNrKCkpOwogICAgIFJVTih0ZXN0UHJvYmVN
b2RpZmllc1N0YWNrUG9pbnRlclRvTkJ5dGVzQmVsb3dTUCgpKTsKICAgICBSVU4odGVzdFByb2Jl
TW9kaWZpZXNQcm9ncmFtQ291bnRlcigpKTsKLSNlbmRpZgogCiAgICAgaWYgKHRhc2tzLmlzRW1w
dHkoKSkKICAgICAgICAgdXNhZ2UoKTsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9C
M0xvd2VyVG9BaXIuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9C
M0xvd2VyVG9BaXIuY3BwCShyZXZpc2lvbiAyMjA1NzIpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvYjMvQjNMb3dlclRvQWlyLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTE0OSw3ICsxMTQ5LDYg
QEAgcHJpdmF0ZToKICAgICAgICAgcmV0dXJuIEFpcjo6T29wczsKICAgICB9CiAKLSNpZiBFTkFC
TEUoTUFTTV9QUk9CRSkKICAgICB0ZW1wbGF0ZTx0eXBlbmFtZS4uLiBBcmd1bWVudHM+CiAgICAg
dm9pZCBwcmludChBcmd1bWVudHMmJi4uLiBhcmd1bWVudHMpCiAgICAgewpAQCAtMTE2NiwxMCAr
MTE2NSw2IEBAIHByaXZhdGU6CiAgICAgICAgIFByaW50ZXI6OmFwcGVuZEFpckFyZ3MoaW5zdCwg
c3RkOjpmb3J3YXJkPEFyZ3VtZW50cz4oYXJndW1lbnRzKS4uLik7CiAgICAgICAgIGFwcGVuZChX
VEZNb3ZlKGluc3QpKTsKICAgICB9Ci0jZWxzZQotICAgIHRlbXBsYXRlPHR5cGVuYW1lLi4uIEFy
Z3VtZW50cz4KLSAgICB2b2lkIHByaW50KEFyZ3VtZW50cyYmLi4uKSB7IH0KLSNlbmRpZiAvLyBF
TkFCTEUoTUFTTV9QUk9CRSkKIAogICAgIHRlbXBsYXRlPHR5cGVuYW1lLi4uIEFyZ3VtZW50cz4K
ICAgICB2b2lkIGFwcGVuZChBaXI6OktpbmQga2luZCwgQXJndW1lbnRzJiYuLi4gYXJndW1lbnRz
KQpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL2Fpci9BaXJQcmludFNwZWNpYWwuY3Bw
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9haXIvQWlyUHJpbnRTcGVj
aWFsLmNwcAkocmV2aXNpb24gMjIwNTcyKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL2Fp
ci9BaXJQcmludFNwZWNpYWwuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yNyw3ICsyNyw2IEBACiAj
aW5jbHVkZSAiQWlyUHJpbnRTcGVjaWFsLmgiCiAKICNpZiBFTkFCTEUoQjNfSklUKQotI2lmIEVO
QUJMRShNQVNNX1BST0JFKQogCiAjaW5jbHVkZSAiTWFjcm9Bc3NlbWJsZXJQcmludGVyLmgiCiAK
QEAgLTEyNSw1ICsxMjQsNCBAQCBOT19SRVRVUk4gdm9pZCBwcmludEFpckFyZyhQcmludFN0cmVh
bSYsCiAKIH0gLy8gbmFtZXNwYWNlIEpTQwogCi0jZW5kaWYgLy8gRU5BQkxFKE1BU01fUFJPQkUp
CiAjZW5kaWYgLy8gRU5BQkxFKEIzX0pJVCkKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9i
My9haXIvQWlyUHJpbnRTcGVjaWFsLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRD
b3JlL2IzL2Fpci9BaXJQcmludFNwZWNpYWwuaAkocmV2aXNpb24gMjIwNTcyKQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL2IzL2Fpci9BaXJQcmludFNwZWNpYWwuaAkod29ya2luZyBjb3B5KQpA
QCAtMjYsNyArMjYsNiBAQAogI3ByYWdtYSBvbmNlCiAKICNpZiBFTkFCTEUoQjNfSklUKQotI2lm
IEVOQUJMRShNQVNNX1BST0JFKQogCiAjaW5jbHVkZSAiQWlySW5zdC5oIgogI2luY2x1ZGUgIkFp
clNwZWNpYWwuaCIKQEAgLTEyOSw1ICsxMjgsNCBAQCBwcml2YXRlOgogCiB9IH0gfSAvLyBuYW1l
c3BhY2UgSlNDOjpCMzo6QWlyCiAKLSNlbmRpZiAvLyBFTkFCTEUoTUFTTV9QUk9CRSkKICNlbmRp
ZiAvLyBFTkFCTEUoQjNfSklUKQpJbmRleDogU291cmNlL1dURi9DaGFuZ2VMb2cKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL1dURi9DaGFuZ2VMb2cJKHJldmlzaW9uIDIyMDU3MikKKysrIFNvdXJjZS9X
VEYvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMjMgQEAKKzIwMTctMDgtMTAg
IE1hcmsgTGFtICA8bWFyay5sYW1AYXBwbGUuY29tPgorCisgICAgICAgIE1ha2UgdGhlIE1BU01f
UFJPQkUgbWVjaGFuaXNtIG1hbmRhdG9yeSBmb3IgREZHIGFuZCBGVEwgYnVpbGRzLgorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTc1NDQ2CisgICAgICAg
IDxyZGFyOi8vcHJvYmxlbS8zMzgzNjU0NT4KKworICAgICAgICBSZXZpZXdlZCBieSBTYWFtIEJh
cmF0aS4KKworICAgICAgICBUaGlzIGlzIG5lZWRlZCBpbiBvcmRlciB0byBzdXBwb3J0IGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNzQ2NDUuCisgICAgICAgIE9uZSBj
b25zZXF1ZW5jZSBvZiB0aGlzIGlzIHRoYXQgdGhlIERGRyB3aWxsIG5vdyBiZSBkaXNhYmxlZCBm
b3IgdGhlIE1JUFMgYW5kCisgICAgICAgIFdpbmRvd3MgcG9ydHMuIFNlZToKKyAgICAgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNzU0NDcKKyAgICAgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNzU0NDkKKworICAg
ICAgICBBbHNvLCB3ZSBzaG91bGQgb25seSBFTkFCTEVfU0lHTkFMX0JBU0VEX1ZNX1RSQVBTIGlm
IHRoZSBERkcgaXMgZW5hYmxlZC4gIEl0IHdhcworICAgICAgICBuZXZlciBtZWFuaW5nZnVsIHRv
IHVzZSBTSUdOQUxfQkFTRURfVk1fVFJBUFMgd2l0aCB0aGUgYmFzZWxpbmUgSklUIGFueXdheS4g
IFRoaXMKKyAgICAgICAgaXMgYSBtaXMtY29uZmlndXJhdGlvbiBlcnJvciB0aGF0IGlzIG5vdyBm
aXhlZC4KKworICAgICAgICAqIHd0Zi9QbGF0Zm9ybS5oOgorCiAyMDE3LTA4LTEwICBZdXN1a2Ug
U3V6dWtpICA8dXRhdGFuZS50ZWFAZ21haWwuY29tPgogCiAgICAgICAgIFVucmV2aWV3ZWQsIGF0
dGVtcHQgdG8gZml4IGJ1aWxkIGZhaWx1cmUgd2l0aCBWQzIwMTcKSW5kZXg6IFNvdXJjZS9XVEYv
d3RmL1BsYXRmb3JtLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dURi93dGYvUGxhdGZvcm0uaAko
cmV2aXNpb24gMjIwNTcyKQorKysgU291cmNlL1dURi93dGYvUGxhdGZvcm0uaAkod29ya2luZyBj
b3B5KQpAQCAtNzcwLDE3ICs3NzAsMjMgQEAKIAogI2lmICFkZWZpbmVkKEVOQUJMRV9ERkdfSklU
KSAmJiBFTkFCTEUoSklUKQogLyogRW5hYmxlIHRoZSBERkcgSklUIG9uIFg4NiBhbmQgWDg2XzY0
LiAqLwotI2lmIChDUFUoWDg2KSB8fCBDUFUoWDg2XzY0KSkgJiYgKE9TKERBUldJTikgfHwgT1Mo
TElOVVgpIHx8IE9TKEZSRUVCU0QpIHx8IE9TKFdJTkRPV1MpIHx8IE9TKEhVUkQpKQorI2lmIChD
UFUoWDg2KSB8fCBDUFUoWDg2XzY0KSkgJiYgKE9TKERBUldJTikgfHwgT1MoTElOVVgpIHx8IE9T
KEZSRUVCU0QpIHx8IE9TKEhVUkQpKQogI2RlZmluZSBFTkFCTEVfREZHX0pJVCAxCiAjZW5kaWYK
IC8qIEVuYWJsZSB0aGUgREZHIEpJVCBvbiBBUk12Ny4gIE9ubHkgdGVzdGVkIG9uIGlPUyBhbmQg
UXQvR1RLKyBMaW51eC4gKi8KICNpZiAoQ1BVKEFSTV9USFVNQjIpIHx8IENQVShBUk02NCkpICYm
IChQTEFURk9STShJT1MpIHx8IFBMQVRGT1JNKEdUSykgfHwgUExBVEZPUk0oV1BFKSkKICNkZWZp
bmUgRU5BQkxFX0RGR19KSVQgMQogI2VuZGlmCi0vKiBFbmFibGUgdGhlIERGRyBKSVQgb24gQVJN
IGFuZCBNSVBTLiAqLwotI2lmIENQVShBUk1fVFJBRElUSU9OQUwpIHx8IENQVShNSVBTKQorLyog
RW5hYmxlIHRoZSBERkcgSklUIG9uIEFSTS4gKi8KKyNpZiBDUFUoQVJNX1RSQURJVElPTkFMKQog
I2RlZmluZSBFTkFCTEVfREZHX0pJVCAxCiAjZW5kaWYKKy8qIEZJWE1FOiBNSVBTIGNhbm5vdCBl
bmFibGUgdGhlIERGRyB1bnRpbCBpdCBoYXMgc3VwcG9ydCBmb3IgTWFjcm9Bc3NlbWJsZXI6OnBy
b2JlKCkuCisgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTc1NDQ3
CisqLworLyogRklYTUU6IFdpbmRvd3MgY2Fubm90IGVuYWJsZSB0aGUgREZHIHVudGlsIGl0IGhh
cyBzdXBwb3J0IGZvciBNYWNyb0Fzc2VtYmxlcjo6cHJvYmUoKS4KKyAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNzU0NDkKKyovCiAjZW5kaWYKIAogLyogQ29uY3Vy
cmVudCBKUyBvbmx5IHdvcmtzIG9uIDY0LWJpdCBwbGF0Zm9ybXMgYmVjYXVzZSBpdCByZXF1aXJl
cyB0aGF0CkBAIC03OTksMTkgKzgwNSwyMyBAQAogI2RlZmluZSBFTkFCTEVfRkFTVF9UTFNfSklU
IDEKICNlbmRpZgogCi0vKiBUaGlzIGNvbnRyb2xzIHdoZXRoZXIgQjMgaXMgYnVpbHQuIEIzIGlz
IG5lZWRlZCBmb3IgRlRMIEpJVCBhbmQgV2ViQXNzZW1ibHkgKi8KLSNpZiBFTkFCTEUoRlRMX0pJ
VCkgfHwgRU5BQkxFKFdFQkFTU0VNQkxZKQotI2RlZmluZSBFTkFCTEVfQjNfSklUIDEKLSNlbmRp
ZgotCiAvKiBJZiB0aGUgYmFzZWxpbmUgaml0IGlzIG5vdCBhdmFpbGFibGUsIHRoZW4gZGlzYWJs
ZSB1cHBlciB0aWVycyBhcyB3ZWxsOiAqLwogI2lmICFFTkFCTEUoSklUKQogI3VuZGVmIEVOQUJM
RV9ERkdfSklUCiAjdW5kZWYgRU5BQkxFX0ZUTF9KSVQKLSN1bmRlZiBFTkFCTEVfQjNfSklUCiAj
ZGVmaW5lIEVOQUJMRV9ERkdfSklUIDAKICNkZWZpbmUgRU5BQkxFX0ZUTF9KSVQgMAotI2RlZmlu
ZSBFTkFCTEVfQjNfSklUIDAKKyNlbmRpZgorCisvKiBJZiB0aGUgREZHIGppdCBpcyBub3QgYXZh
aWxhYmxlLCB0aGVuIGRpc2FibGUgdXBwZXIgdGllcnMgYXMgd2VsbDogKi8KKyNpZiAhRU5BQkxF
KERGR19KSVQpCisjdW5kZWYgRU5BQkxFX0ZUTF9KSVQKKyNkZWZpbmUgRU5BQkxFX0ZUTF9KSVQg
MAorI2VuZGlmCisKKy8qIFRoaXMgY29udHJvbHMgd2hldGhlciBCMyBpcyBidWlsdC4gQjMgaXMg
bmVlZGVkIGZvciBGVEwgSklUIGFuZCBXZWJBc3NlbWJseSAqLworI2lmIEVOQUJMRShGVExfSklU
KSB8fCBFTkFCTEUoV0VCQVNTRU1CTFkpCisjZGVmaW5lIEVOQUJMRV9CM19KSVQgMQogI2VuZGlm
CiAKIC8qIFRoZSBTYW1wbGluZ1Byb2ZpbGVyIGlzIHRoZSBwcm9iYWJpbGlzdGljIGFuZCBsb3ct
b3ZlcmhlYWQgcHJvZmlsZXIgdXNlZCBieQpAQCAtOTQ4LDE0ICs5NTgsNiBAQAogI2VuZGlmCiAj
ZW5kaWYKIAotLyogRW5hYmxlIHRoZSBmb2xsb3dpbmcgaWYgeW91IHdhbnQgdG8gdXNlIHRoZSBN
YWNyb0Fzc2VtYmxlcjo6cHJvYmUoKSBmYWNpbGl0eQotICAgdG8gZG8gSklUIGRlYnVnZ2luZy4g
Ki8KLSNpZiAoQ1BVKFg4NikgfHwgQ1BVKFg4Nl82NCkgfHwgQ1BVKEFSTTY0KSB8fCAoQ1BVKEFS
TV9USFVNQjIpICYmIFBMQVRGT1JNKElPUykpKSAmJiBFTkFCTEUoSklUKSAmJiBPUyhEQVJXSU4p
Ci0jZGVmaW5lIEVOQUJMRV9NQVNNX1BST0JFIDEKLSNlbHNlCi0jZGVmaW5lIEVOQUJMRV9NQVNN
X1BST0JFIDAKLSNlbmRpZgotCiAjaWZuZGVmIEVOQUJMRV9FWENFUFRJT05fU0NPUEVfVkVSSUZJ
Q0FUSU9OCiAjaWZkZWYgTkRFQlVHCiAjZGVmaW5lIEVOQUJMRV9FWENFUFRJT05fU0NPUEVfVkVS
SUZJQ0FUSU9OIDAKQEAgLTk2NCw3ICs5NjYsNyBAQAogI2VuZGlmCiAjZW5kaWYKIAotI2lmIEVO
QUJMRShKSVQpICYmIEhBVkUoTUFDSElORV9DT05URVhUKSAmJiAoQ1BVKFg4NikgfHwgQ1BVKFg4
Nl82NCkgfHwgQ1BVKEFSTTY0KSkKKyNpZiBFTkFCTEUoREZHX0pJVCkgJiYgSEFWRShNQUNISU5F
X0NPTlRFWFQpICYmIChDUFUoWDg2KSB8fCBDUFUoWDg2XzY0KSB8fCBDUFUoQVJNNjQpKQogI2Rl
ZmluZSBFTkFCTEVfU0lHTkFMX0JBU0VEX1ZNX1RSQVBTIDEKICNlbmRpZgogCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>