Mirror of the gdb-patches mailing list
 help / color / mirror / Atom feed
From: Nick Duffek <nsd@redhat.com>
To: kevinb@cygnus.com
Cc: gdb-patches@sourceware.cygnus.com
Subject: Re: [PATCH RFC] Make GNU/Linux/PPC port work again
Date: Sun, 30 Jul 2000 21:32:00 -0000	[thread overview]
Message-ID: <200007310436.e6V4a5Q09877@rtl.cygnus.com> (raw)
In-Reply-To: <1000719220642.ZM16166@ocotillo.lan>

On 19-Jul-2000, Kevin Buettner wrote:

>I'd appreciate it if those of you (hi Nick!) affected by this code
>would test it before I commit this patch.

I don't see any regressions on AIX after applying your change plus the
attached patch, which is needed because CORE_ADDR is 64 bits on AIX.

Nick

Index: gdb/ppc-linux-tdep.c
===================================================================
diff -up gdb/ppc-linux-tdep.c gdb/ppc-linux-tdep.c
--- gdb/ppc-tdep.h	Sun Jul 30 23:54:53 2000
+++ gdb/ppc-tdep.h	Sun Jul 30 23:53:02 2000
@@ -20,7 +20,7 @@
    Boston, MA 02111-1307, USA.  */
 
 /* From ppc-linux-tdep.c... */
-unsigned long ppc_linux_frame_saved_pc (struct frame_info *fi);
+CORE_ADDR ppc_linux_frame_saved_pc (struct frame_info *fi);
 void ppc_linux_init_extra_frame_info (int fromleaf, struct frame_info *);
 int ppc_linux_frameless_function_invocation (struct frame_info *);
 void ppc_linux_frame_init_saved_regs (struct frame_info *);
@@ -31,7 +31,7 @@ int ppc_linux_memory_remove_breakpoint (
 
 
 /* From rs6000-tdep.c... */
-unsigned long rs6000_frame_saved_pc (struct frame_info *fi);
+CORE_ADDR rs6000_frame_saved_pc (struct frame_info *fi);
 void rs6000_init_extra_frame_info (int fromleaf, struct frame_info *);
 int rs6000_frameless_function_invocation (struct frame_info *);
 void rs6000_frame_init_saved_regs (struct frame_info *);
Index: gdb/ppc-linux-tdep.c
===================================================================
diff -up gdb/ppc-linux-tdep.c gdb/ppc-linux-tdep.c
--- gdb/ppc-linux-tdep.c	Sun Jul 30 23:53:20 2000
+++ gdb/ppc-linux-tdep.c	Sun Jul 30 23:53:02 2000
@@ -310,7 +310,7 @@ ppc_linux_skip_trampoline_code (CORE_ADD
 /* The rs6000 version of FRAME_SAVED_PC will almost work for us.  The
    signal handler details are different, so we'll handle those here
    and call the rs6000 version to do the rest. */
-unsigned long
+CORE_ADDR
 ppc_linux_frame_saved_pc (struct frame_info *fi)
 {
   if (fi->signal_handler_caller)
From ac131313@cygnus.com Mon Jul 31 06:46:00 2000
From: Andrew Cagney <ac131313@cygnus.com>
To: Stephane Carrez <Stephane.Carrez@worldnet.fr>
Cc: gdb-patches@sourceware.cygnus.com
Subject: Re: [Patch 6/7]: 68HC11 port of gdb (sim-misc single step fix)
Date: Mon, 31 Jul 2000 06:46:00 -0000
Message-id: <398582F2.10810C5C@cygnus.com>
References: <39568A82.A0B2BFEB@free.fr> <3980227F.A6FC263B@cygnus.com> <3982002E.1F34EFF9@worldnet.fr>
X-SW-Source: 2000-07/msg00371.html
Content-length: 1646

> > > diff -Nrup --exclude-from=gdb-exclude.lst /src/gnu/cygnus/gdb/sim/common/sim-resume.c gdb/sim/common/sim-resume.c
> > > --- /src/gnu/cygnus/gdb/sim/common/sim-resume.c Mon Jul 12 13:14:09 1999
> > > +++ gdb/sim/common/sim-resume.c Mon Feb 21 09:00:23 2000
> > > @@ -51,8 +51,6 @@ sim_resume (SIM_DESC sd,
> > >        sim_events_deschedule (sd, engine->stepper);
> > >        engine->stepper = NULL;
> > >      }
> > > -  if (step)
> > > -    engine->stepper = sim_events_schedule (sd, 1, has_stepped, sd);
> > >
> > >    sim_module_resume (sd);
> > >
> > > @@ -69,6 +67,9 @@ sim_resume (SIM_DESC sd,
> > >        sim_events_preprocess (sd, last_cpu_nr >= nr_cpus, next_cpu_nr >= nr_cpus);
> > >        if (next_cpu_nr >= nr_cpus)
> > >         next_cpu_nr = 0;
> > > +
> > > +      if (step)
> > > +       engine->stepper = sim_events_schedule (sd, 1, has_stepped, sd);
> > >
> > >        /* Only deliver the siggnal ]sic] the first time through - don't
> > >           re-deliver any siggnal during a restart. */
> >
> > Note the comment about siggnals[sic].
> >
> >         Andrew
> 
> ssignal does not seem to be ever used.  It seemed to be ignored in most
> simulators (and in sim_engine_run).

From memory, siggnal will be non-zero, if, from the GDB cli, someone
enters:

	(gdb) signal NNNN

Most simulators ignore it because most don't allow trapping of system
interrupts.

> I don't reach that point anyway when the problem occurs.  I don't return
> from 'sim_events_preprocess' because it calls 'sim_engine_halt' that longjumps
> to return (due to single step event we just scheduled).

What about a sim_engine_restart()?

	Andrew
From taylor@cygnus.com Mon Jul 31 07:56:00 2000
From: David Taylor <taylor@cygnus.com>
To: gdb-patches@sourceware.cygnus.com
Subject: [BUG] print_address_numeric
Date: Mon, 31 Jul 2000 07:56:00 -0000
Message-id: <200007311455.KAA22560@texas.cygnus.com>
X-SW-Source: 2000-07/msg00372.html
Content-length: 3370

In printcmd.c (print_address_numeric), we find the lines:

      int ptr_bit = TARGET_PTR_BIT;
      if (ptr_bit < (sizeof (CORE_ADDR) * HOST_CHAR_BIT))
	addr &= ((CORE_ADDR) 1 << ptr_bit) - 1;
      print_longest (stream, 'x', use_local, (ULONGEST) addr);

This code has a bug, namely it assumes that addresses and pointers are
the same size.

[address == gdb representation; pointer == target representation]

For some processors they are different.  For the d10v and at least one
other processor, the size of a pointer is 2 bytes, but the size of an
address is 4 bytes.

I propose the creation of a new macro TARGET_ADDR_BIT, the addition of
the lines:

    #if !defined(TARGET_ADDR_BIT)
    #define TARGET_ADDR_BIT	TARGET_PTR_BIT
    #endif

to defs.h, and that the above lines of print_address_numeric be changed to:

    int addr_bit = TARGET_ADDR_BIT
    if (addr_bit < (sizeof (CORE_ADDR) * HOST_CHAR_BIT))
      addr & ((CORE_ADDR) 1 << ptr_bit) - 1;
    print_longest (stream, 'x', use_local, (ULONGEST) addr);

Comments?

Andrew,

Is this:

taylor@texas 266: cvs diff -c gdbarch.sh
Index: gdbarch.sh
===================================================================
RCS file: /cvs/cvsfiles/devo/gdb/gdbarch.sh,v
retrieving revision 2.61
diff -c -r2.61 gdbarch.sh
*** gdbarch.sh  2000/07/24 15:26:48     2.61
--- gdbarch.sh  2000/07/31 14:43:23
***************
*** 276,281 ****
--- 276,282 ----
  #
  v:1:TARGET_BFD_VMA_BIT:int:bfd_vma_bit::::8 * sizeof (void*):TARGET_ARCHITECTURE->bits_per_address::0
  v:1:TARGET_PTR_BIT:int:ptr_bit::::8 * sizeof (void*):0
+ v:1:TARGET_ADDR_BIT:int:addr_bit::::8 * sizeof (void*):0:gdbarch->ptr_bit
  #v:1:TARGET_CHAR_BIT:int:char_bit::::8 * sizeof (char):0
  v:1:TARGET_SHORT_BIT:int:short_bit::::8 * sizeof (short):0
  v:1:TARGET_INT_BIT:int:int_bit::::8 * sizeof (int):0
***************
*** 471,483 ****
  
  /* This file was created with the aid of \`\`gdbarch.sh''.
  
!    The bourn shell script \`\`gdbarch.sh'' creates the files
     \`\`new-gdbarch.c'' and \`\`new-gdbarch.h and then compares them
     against the existing \`\`gdbarch.[hc]''.  Any differences found
     being reported.
  
     If editing this file, please also run gdbarch.sh and merge any
!    changes into that script. Conversely, when makeing sweeping changes
     to this file, modifying gdbarch.sh and using its output may prove
     easier. */
  
--- 472,484 ----
  
  /* This file was created with the aid of \`\`gdbarch.sh''.
  
!    The Bourne shell script \`\`gdbarch.sh'' creates the files
     \`\`new-gdbarch.c'' and \`\`new-gdbarch.h and then compares them
     against the existing \`\`gdbarch.[hc]''.  Any differences found
     being reported.
  
     If editing this file, please also run gdbarch.sh and merge any
!    changes into that script. Conversely, when making sweeping changes
     to this file, modifying gdbarch.sh and using its output may prove
     easier. */
 
the appropriate change to make to gdbarch.sh?

[The intent is to have the multi-arch default value be the same as the
non multi-arch default value -- namely, the value of TARGET_PTR_BIT.

So, it starts out as 0, and if the architecture specific code doesn't
change it to something else, then the multi-arch machinery changes it
to the value of gdbarch->ptr_bit (and does so AFTER the POSTDEFAULT
processing has already occurred for ptr_bit).]

David
From ezannoni@cygnus.com Mon Jul 31 09:09:00 2000
From: Elena Zannoni <ezannoni@cygnus.com>
To: Andrew Cagney <ac131313@cygnus.com>
Cc: Elena Zannoni <ezannoni@cygnus.com>, gdb-patches@sourceware.cygnus.com
Subject: Re: [PATCH] Multiarch DO_REGISTERS_INFO
Date: Mon, 31 Jul 2000 09:09:00 -0000
Message-id: <14725.42159.103429.532652@kwikemart.cygnus.com>
References: <14721.56903.448617.375558@kwikemart.cygnus.com> <3982464D.92825908@cygnus.com>
X-SW-Source: 2000-07/msg00373.html
Content-length: 7966

Andrew Cagney writes:
 > Elena Zannoni wrote:
 > > 
 > > OK to commit?
 > > 

New patch.

[Note some extra diffs for gdbarch.c, due to protoizing the generated
file, as opposed to the .sh file.]

Elena

Index: gdbarch.c
===================================================================
RCS file: /cvs/src/src/gdb/gdbarch.c,v
retrieving revision 1.33
diff -c -u -p -r1.33 gdbarch.c
--- gdbarch.c	2000/07/30 01:48:25	1.33
+++ gdbarch.c	2000/07/31 16:03:21
@@ -161,6 +161,7 @@ struct gdbarch
   gdbarch_register_virtual_size_ftype *register_virtual_size;
   int max_register_virtual_size;
   gdbarch_register_virtual_type_ftype *register_virtual_type;
+  gdbarch_do_registers_info_ftype *do_registers_info;
   int use_generic_dummy_frames;
   int call_dummy_location;
   gdbarch_call_dummy_address_ftype *call_dummy_address;
@@ -296,6 +297,7 @@ struct gdbarch startup_gdbarch =
   0,
   0,
   0,
+  0,
   generic_get_saved_register,
   0,
   0,
@@ -381,6 +383,7 @@ gdbarch_alloc (const struct gdbarch_info
   gdbarch->register_bytes = -1;
   gdbarch->max_register_raw_size = -1;
   gdbarch->max_register_virtual_size = -1;
+  gdbarch->do_registers_info = do_registers_info;
   gdbarch->use_generic_dummy_frames = -1;
   gdbarch->call_dummy_start_offset = -1;
   gdbarch->call_dummy_breakpoint_offset = -1;
@@ -523,6 +526,7 @@ verify_gdbarch (struct gdbarch *gdbarch)
   if ((GDB_MULTI_ARCH >= 2)
       && (gdbarch->register_virtual_type == 0))
     internal_error ("gdbarch: verify_gdbarch: register_virtual_type invalid");
+  /* Skip verify of do_registers_info, invalid_p == 0 */
   if ((GDB_MULTI_ARCH >= 1)
       && (gdbarch->use_generic_dummy_frames == -1))
     internal_error ("gdbarch: verify_gdbarch: use_generic_dummy_frames invalid");
@@ -869,6 +873,13 @@ gdbarch_dump (struct gdbarch *gdbarch, s
                       "REGISTER_VIRTUAL_TYPE(reg_nr)",
                       XSTRING (REGISTER_VIRTUAL_TYPE (reg_nr)));
 #endif
+#if defined (DO_REGISTERS_INFO) && GDB_MULTI_ARCH
+  /* Macro might contain `[{}]' when not multi-arch */
+  fprintf_unfiltered (file,
+                      "gdbarch_dump: %s # %s\n",
+                      "DO_REGISTERS_INFO(reg_nr, fpregs)",
+                      XSTRING (DO_REGISTERS_INFO (reg_nr, fpregs)));
+#endif
 #ifdef USE_GENERIC_DUMMY_FRAMES
   fprintf_unfiltered (file,
                       "gdbarch_dump: USE_GENERIC_DUMMY_FRAMES # %s\n",
@@ -1466,6 +1477,13 @@ gdbarch_dump (struct gdbarch *gdbarch, s
                         (long) current_gdbarch->register_virtual_type
                         /*REGISTER_VIRTUAL_TYPE ()*/);
 #endif
+#ifdef DO_REGISTERS_INFO
+  if (GDB_MULTI_ARCH)
+    fprintf_unfiltered (file,
+                        "gdbarch_dump: DO_REGISTERS_INFO = 0x%08lx\n",
+                        (long) current_gdbarch->do_registers_info
+                        /*DO_REGISTERS_INFO ()*/);
+#endif
 #ifdef USE_GENERIC_DUMMY_FRAMES
   fprintf_unfiltered (file,
                       "gdbarch_dump: USE_GENERIC_DUMMY_FRAMES = %ld\n",
@@ -2483,6 +2501,23 @@ set_gdbarch_register_virtual_type (struc
   gdbarch->register_virtual_type = register_virtual_type;
 }
 
+void
+gdbarch_do_registers_info (struct gdbarch *gdbarch, int reg_nr, int fpregs)
+{
+  if (gdbarch->do_registers_info == 0)
+    internal_error ("gdbarch: gdbarch_do_registers_info invalid");
+  if (gdbarch_debug >= 2)
+    fprintf_unfiltered (gdb_stdlog, "gdbarch_do_registers_info called\n");
+  gdbarch->do_registers_info (reg_nr, fpregs);
+}
+
+void
+set_gdbarch_do_registers_info (struct gdbarch *gdbarch,
+                               gdbarch_do_registers_info_ftype do_registers_info)
+{
+  gdbarch->do_registers_info = do_registers_info;
+}
+
 int
 gdbarch_use_generic_dummy_frames (struct gdbarch *gdbarch)
 {
@@ -3693,7 +3728,8 @@ init_gdbarch_data (struct gdbarch *gdbar
    data-pointer. */
 
 void *
-gdbarch_data (struct gdbarch_data *data)
+gdbarch_data (data)
+     struct gdbarch_data *data;
 {
   if (data->index >= current_gdbarch->nr_data)
     internal_error ("gdbarch_data: request for non-existant data.");
@@ -4085,7 +4121,7 @@ disassemble_info tm_print_insn_info;
 extern void _initialize_gdbarch (void);
 
 void
-_initialize_gdbarch (void)
+_initialize_gdbarch ()
 {
   struct cmd_list_element *c;
 
Index: gdbarch.h
===================================================================
RCS file: /cvs/src/src/gdb/gdbarch.h,v
retrieving revision 1.26
diff -c -u -p -r1.26 gdbarch.h
--- gdbarch.h	2000/07/27 04:01:24	1.26
+++ gdbarch.h	2000/07/31 16:03:22
@@ -389,6 +389,20 @@ extern void set_gdbarch_register_virtual
 #endif
 #endif
 
+/* Default (function) for non- multi-arch platforms. */
+#if (!GDB_MULTI_ARCH) && !defined (DO_REGISTERS_INFO)
+#define DO_REGISTERS_INFO(reg_nr, fpregs) (do_registers_info (reg_nr, fpregs))
+#endif
+
+typedef void (gdbarch_do_registers_info_ftype) (int reg_nr, int fpregs);
+extern void gdbarch_do_registers_info (struct gdbarch *gdbarch, int reg_nr, int fpregs);
+extern void set_gdbarch_do_registers_info (struct gdbarch *gdbarch, gdbarch_do_registers_info_ftype *do_registers_info);
+#if GDB_MULTI_ARCH
+#if (GDB_MULTI_ARCH > GDB_MULTI_ARCH_PARTIAL) || !defined (DO_REGISTERS_INFO)
+#define DO_REGISTERS_INFO(reg_nr, fpregs) (gdbarch_do_registers_info (current_gdbarch, reg_nr, fpregs))
+#endif
+#endif
+
 extern int gdbarch_use_generic_dummy_frames (struct gdbarch *gdbarch);
 extern void set_gdbarch_use_generic_dummy_frames (struct gdbarch *gdbarch, int use_generic_dummy_frames);
 #if GDB_MULTI_ARCH
Index: gdbarch.sh
===================================================================
RCS file: /cvs/src/src/gdb/gdbarch.sh,v
retrieving revision 1.32
diff -c -u -p -r1.32 gdbarch.sh
--- gdbarch.sh	2000/07/27 04:01:24	1.32
+++ gdbarch.sh	2000/07/31 16:03:22
@@ -314,6 +314,7 @@ v:2:MAX_REGISTER_RAW_SIZE:int:max_regist
 f:2:REGISTER_VIRTUAL_SIZE:int:register_virtual_size:int reg_nr:reg_nr::0:0
 v:2:MAX_REGISTER_VIRTUAL_SIZE:int:max_register_virtual_size::::0:-1
 f:2:REGISTER_VIRTUAL_TYPE:struct type *:register_virtual_type:int reg_nr:reg_nr::0:0
+f:2:DO_REGISTERS_INFO:void:do_registers_info:int reg_nr, int fpregs:reg_nr, fpregs:::do_registers_info::0
 #
 v:1:USE_GENERIC_DUMMY_FRAMES:int:use_generic_dummy_frames::::0:-1
 v:2:CALL_DUMMY_LOCATION:int:call_dummy_location::::0:0
Index: infcmd.c
===================================================================
RCS file: /cvs/src/src/gdb/infcmd.c,v
retrieving revision 1.9
diff -c -u -p -r1.9 infcmd.c
--- infcmd.c	2000/07/30 01:48:25	1.9
+++ infcmd.c	2000/07/31 16:03:22
@@ -72,10 +72,6 @@ static void detach_command (char *, int)
 
 static void interrupt_target_command (char *args, int from_tty);
 
-#if !defined (DO_REGISTERS_INFO)
-static void do_registers_info (int, int);
-#endif
-
 static void unset_environment_command (char *, int);
 
 static void set_environment_command (char *, int);
@@ -1444,12 +1440,8 @@ char *gdb_register_names[] = REGISTER_NA
    lots of regs), or there is an existing convention for showing
    all the registers, define the macro DO_REGISTERS_INFO(regnum, fp)
    to provide that format.  */
-
-#if !defined (DO_REGISTERS_INFO)
 
-#define DO_REGISTERS_INFO(regnum, fp) do_registers_info(regnum, fp)
-
-static void
+void
 do_registers_info (int regnum, int fpregs)
 {
   register int i;
@@ -1552,7 +1544,6 @@ do_registers_info (int regnum, int fpreg
       printf_filtered ("\n");
     }
 }
-#endif /* no DO_REGISTERS_INFO.  */
 
 void
 registers_info (char *addr_exp, int fpregs)
Index: inferior.h
===================================================================
RCS file: /cvs/src/src/gdb/inferior.h,v
retrieving revision 1.10
diff -c -u -p -r1.10 inferior.h
--- inferior.h	2000/07/24 14:29:23	1.10
+++ inferior.h	2000/07/31 16:03:23
@@ -186,6 +186,8 @@ extern void resume (int, enum target_sig
 
 /* From misc files */
 
+extern void do_registers_info (int, int);
+
 extern void store_inferior_registers (int);
 
 extern void fetch_inferior_registers (int);
From ezannoni@cygnus.com Mon Jul 31 09:26:00 2000
From: Elena Zannoni <ezannoni@cygnus.com>
To: gdb-patches@sources.redhat.com
Subject: [PATCH] Misc compiler errors
Date: Mon, 31 Jul 2000 09:26:00 -0000
Message-id: <14725.43161.689376.990906@kwikemart.cygnus.com>
X-SW-Source: 2000-07/msg00374.html
Content-length: 2002

Just checked in.
A couple of things that came about after the protoization:

2000-07-31  Elena Zannoni  <ezannoni@kwikemart.cygnus.com>

	* sh-tdep.c (sh_push_arguments): Make header match prototype.

	* remote-e7000.c (e7000_start_remote): Use void *, not char * as
 	parameter to avoid compiler warning.
	(fetch_regs_from_dump): Call get_hex() with the correct number of
 	parameters.


Index: sh-tdep.c
===================================================================
RCS file: /cvs/src/src/gdb/sh-tdep.c,v
retrieving revision 1.13
diff -c -u -p -r1.13 sh-tdep.c
cvs server: conflicting specifications of output style
--- sh-tdep.c   2000/07/30 01:48:27     1.13
+++ sh-tdep.c   2000/07/31 16:21:06
@@ -920,8 +920,8 @@ sh_pop_frame (void)
    to R7.   */
 
 static CORE_ADDR
-sh_push_arguments (int nargs, value_ptr *args, CORE_ADDR sp,
-                  unsigned char struct_return, CORE_ADDR struct_addr)
+sh_push_arguments (int nargs, struct value **args, CORE_ADDR sp,
+                  int struct_return, CORE_ADDR struct_addr)
 {
   int stack_offset, stack_alloc;
   int argreg;


Index: remote-e7000.c
===================================================================
RCS file: /cvs/src/src/gdb/remote-e7000.c,v
retrieving revision 1.6
diff -c -u -p -r1.6 remote-e7000.c
cvs server: conflicting specifications of output style
--- remote-e7000.c      2000/07/30 01:48:26     1.6
+++ remote-e7000.c      2000/07/31 16:22:15
@@ -562,7 +562,7 @@ or \t\ttarget e7000 pc\n");
 /* Stub for catch_errors.  */
 
 static int
-e7000_start_remote (char *dummy)
+e7000_start_remote (void *dummy)
 {
   int loop;
   int sync;
@@ -895,7 +895,7 @@ fetch_regs_from_dump (nextchar, want)
            }
          store_signed_integer (buf,
                                REGISTER_RAW_SIZE (regno),
-                               (LONGEST) get_hex (&thischar, nextchar));
+                               (LONGEST) get_hex (&thischar));
          supply_register (regno, buf);
          break;
        }
From scottb@netwinder.org Mon Jul 31 09:30:00 2000
From: Scott Bambrough <scottb@netwinder.org>
To: GDB Patches Mail List <gdb-patches@sourceware.cygnus.com>
Subject: RFC: changes to configure.in and configure
Date: Mon, 31 Jul 2000 09:30:00 -0000
Message-id: <3985A85C.C246C623@netwinder.org>
X-SW-Source: 2000-07/msg00375.html
Content-type: multipart/mixed; boundary="----------=_1583534355-29877-16"

This is a multi-part message in MIME format...

------------=_1583534355-29877-16
Content-length: 601

Hello,

I noticed last week that gdbserver was not building on my ARM Linux box
automatically even though it was specified in configdirs in configure.tgt.  It
seems none of the modifications to configdirs in configure.tgt were being
applied.  I'd like to apply the following patch to configure.in which fixes this
problem if no on has any objections.  The changes to configure are the diffs
after configure was regenerated using autoconf 2.13 as Andrew suggested.

Scott

-- 
Scott Bambrough - Software Engineer
REBEL.COM    http://www.rebel.com
NetWinder    http://www.netwinder.org
gdbconfig.patch


------------=_1583534355-29877-16
Content-Type: text/x-diff; charset=us-ascii; name="gdbconfig.patch"
Content-Disposition: inline; filename="gdbconfig.patch"
Content-Transfer-Encoding: base64
Content-Length: 144652

SW5kZXg6IGdkYi9jb25maWd1cmUNCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0N
ClJDUyBmaWxlOiAvY3ZzL3NyYy9zcmMvZ2RiL2NvbmZpZ3VyZSx2DQpyZXRy
aWV2aW5nIHJldmlzaW9uIDEuMzgNCmRpZmYgLXUgLXAgLXIxLjM4IGNvbmZp
Z3VyZQ0KLS0tIGNvbmZpZ3VyZQkyMDAwLzA3LzI3IDA0OjAxOjI0CTEuMzgN
CisrKyBjb25maWd1cmUJMjAwMC8wNy8zMSAxNTo1OTo1OA0KQEAgLTczLDcg
KzczLDYgQEAgcHJvZ3JhbV9zdWZmaXg9Tk9ORQ0KIHByb2dyYW1fdHJhbnNm
b3JtX25hbWU9cyx4LHgsDQogc2lsZW50PQ0KIHNpdGU9DQotc2l0ZWZpbGU9
DQogc3JjZGlyPQ0KIHRhcmdldD1OT05FDQogdmVyYm9zZT0NCkBAIC0xODgs
NyArMTg3LDYgQEAgQ29uZmlndXJhdGlvbjoNCiAgIC0taGVscCAgICAgICAg
ICAgICAgICAgIHByaW50IHRoaXMgbWVzc2FnZQ0KICAgLS1uby1jcmVhdGUg
ICAgICAgICAgICAgZG8gbm90IGNyZWF0ZSBvdXRwdXQgZmlsZXMNCiAgIC0t
cXVpZXQsIC0tc2lsZW50ICAgICAgIGRvIG5vdCBwcmludCBcYGNoZWNraW5n
Li4uJyBtZXNzYWdlcw0KLSAgLS1zaXRlLWZpbGU9RklMRSAgICAgICAgdXNl
IEZJTEUgYXMgdGhlIHNpdGUgZmlsZQ0KICAgLS12ZXJzaW9uICAgICAgICAg
ICAgICAgcHJpbnQgdGhlIHZlcnNpb24gb2YgYXV0b2NvbmYgdGhhdCBjcmVh
dGVkIGNvbmZpZ3VyZQ0KIERpcmVjdG9yeSBhbmQgZmlsZSBuYW1lczoNCiAg
IC0tcHJlZml4PVBSRUZJWCAgICAgICAgIGluc3RhbGwgYXJjaGl0ZWN0dXJl
LWluZGVwZW5kZW50IGZpbGVzIGluIFBSRUZJWA0KQEAgLTM1OSwxMSArMzU3
LDYgQEAgRU9GDQogICAtc2l0ZT0qIHwgLS1zaXRlPSogfCAtLXNpdD0qKQ0K
ICAgICBzaXRlPSIkYWNfb3B0YXJnIiA7Ow0KIA0KLSAgLXNpdGUtZmlsZSB8
IC0tc2l0ZS1maWxlIHwgLS1zaXRlLWZpbCB8IC0tc2l0ZS1maSB8IC0tc2l0
ZS1mKQ0KLSAgICBhY19wcmV2PXNpdGVmaWxlIDs7DQotICAtc2l0ZS1maWxl
PSogfCAtLXNpdGUtZmlsZT0qIHwgLS1zaXRlLWZpbD0qIHwgLS1zaXRlLWZp
PSogfCAtLXNpdGUtZj0qKQ0KLSAgICBzaXRlZmlsZT0iJGFjX29wdGFyZyIg
OzsNCi0NCiAgIC1zcmNkaXIgfCAtLXNyY2RpciB8IC0tc3JjZGkgfCAtLXNy
Y2QgfCAtLXNyYyB8IC0tc3IpDQogICAgIGFjX3ByZXY9c3JjZGlyIDs7DQog
ICAtc3JjZGlyPSogfCAtLXNyY2Rpcj0qIHwgLS1zcmNkaT0qIHwgLS1zcmNk
PSogfCAtLXNyYz0qIHwgLS1zcj0qKQ0KQEAgLTUyOSwxNiArNTIyLDEyIEBA
IGZpDQogc3JjZGlyPWBlY2hvICIke3NyY2Rpcn0iIHwgc2VkICdzJVwoW14v
XVwpLyokJVwxJSdgDQogDQogIyBQcmVmZXIgZXhwbGljaXRseSBzZWxlY3Rl
ZCBmaWxlIHRvIGF1dG9tYXRpY2FsbHkgc2VsZWN0ZWQgb25lcy4NCi1pZiB0
ZXN0IC16ICIkc2l0ZWZpbGUiOyB0aGVuDQotICBpZiB0ZXN0IC16ICIkQ09O
RklHX1NJVEUiOyB0aGVuDQotICAgIGlmIHRlc3QgIngkcHJlZml4IiAhPSB4
Tk9ORTsgdGhlbg0KLSAgICAgIENPTkZJR19TSVRFPSIkcHJlZml4L3NoYXJl
L2NvbmZpZy5zaXRlICRwcmVmaXgvZXRjL2NvbmZpZy5zaXRlIg0KLSAgICBl
bHNlDQotICAgICAgQ09ORklHX1NJVEU9IiRhY19kZWZhdWx0X3ByZWZpeC9z
aGFyZS9jb25maWcuc2l0ZSAkYWNfZGVmYXVsdF9wcmVmaXgvZXRjL2NvbmZp
Zy5zaXRlIg0KLSAgICBmaQ0KK2lmIHRlc3QgLXogIiRDT05GSUdfU0lURSI7
IHRoZW4NCisgIGlmIHRlc3QgIngkcHJlZml4IiAhPSB4Tk9ORTsgdGhlbg0K
KyAgICBDT05GSUdfU0lURT0iJHByZWZpeC9zaGFyZS9jb25maWcuc2l0ZSAk
cHJlZml4L2V0Yy9jb25maWcuc2l0ZSINCisgIGVsc2UNCisgICAgQ09ORklH
X1NJVEU9IiRhY19kZWZhdWx0X3ByZWZpeC9zaGFyZS9jb25maWcuc2l0ZSAk
YWNfZGVmYXVsdF9wcmVmaXgvZXRjL2NvbmZpZy5zaXRlIg0KICAgZmkNCi1l
bHNlDQotICBDT05GSUdfU0lURT0iJHNpdGVmaWxlIg0KIGZpDQogZm9yIGFj
X3NpdGVfZmlsZSBpbiAkQ09ORklHX1NJVEU7IGRvDQogICBpZiB0ZXN0IC1y
ICIkYWNfc2l0ZV9maWxlIjsgdGhlbg0KQEAgLTU3OSw3ICs1NjgsNyBAQCBm
aQ0KIA0KIA0KIGVjaG8gJGFjX24gImNoZWNraW5nIHdoZXRoZXIgdG8gZW5h
YmxlIG1haW50YWluZXItc3BlY2lmaWMgcG9ydGlvbnMgb2YgTWFrZWZpbGVz
IiIuLi4gJGFjX2MiIDE+JjYNCi1lY2hvICJjb25maWd1cmU6NTgzOiBjaGVj
a2luZyB3aGV0aGVyIHRvIGVuYWJsZSBtYWludGFpbmVyLXNwZWNpZmljIHBv
cnRpb25zIG9mIE1ha2VmaWxlcyIgPiY1DQorZWNobyAiY29uZmlndXJlOjU3
MjogY2hlY2tpbmcgd2hldGhlciB0byBlbmFibGUgbWFpbnRhaW5lci1zcGVj
aWZpYyBwb3J0aW9ucyBvZiBNYWtlZmlsZXMiID4mNQ0KICAgICAjIENoZWNr
IHdoZXRoZXIgLS1lbmFibGUtbWFpbnRhaW5lci1tb2RlIG9yIC0tZGlzYWJs
ZS1tYWludGFpbmVyLW1vZGUgd2FzIGdpdmVuLg0KIGlmIHRlc3QgIiR7ZW5h
YmxlX21haW50YWluZXJfbW9kZStzZXR9IiA9IHNldDsgdGhlbg0KICAgZW5h
YmxldmFsPSIkZW5hYmxlX21haW50YWluZXJfbW9kZSINCkBAIC02MDUsNyAr
NTk0LDcgQEAgZmkNCiAjIEV4dHJhY3QgdGhlIGZpcnN0IHdvcmQgb2YgImdj
YyIsIHNvIGl0IGNhbiBiZSBhIHByb2dyYW0gbmFtZSB3aXRoIGFyZ3MuDQog
c2V0IGR1bW15IGdjYzsgYWNfd29yZD0kMg0KIGVjaG8gJGFjX24gImNoZWNr
aW5nIGZvciAkYWNfd29yZCIiLi4uICRhY19jIiAxPiY2DQotZWNobyAiY29u
ZmlndXJlOjYwOTogY2hlY2tpbmcgZm9yICRhY193b3JkIiA+JjUNCitlY2hv
ICJjb25maWd1cmU6NTk4OiBjaGVja2luZyBmb3IgJGFjX3dvcmQiID4mNQ0K
IGlmIGV2YWwgInRlc3QgXCJgZWNobyAnJCcneydhY19jdl9wcm9nX0NDJytz
ZXR9J2BcIiA9IHNldCI7IHRoZW4NCiAgIGVjaG8gJGFjX24gIihjYWNoZWQp
ICRhY19jIiAxPiY2DQogZWxzZQ0KQEAgLTYzNSw3ICs2MjQsNyBAQCBpZiB0
ZXN0IC16ICIkQ0MiOyB0aGVuDQogICAjIEV4dHJhY3QgdGhlIGZpcnN0IHdv
cmQgb2YgImNjIiwgc28gaXQgY2FuIGJlIGEgcHJvZ3JhbSBuYW1lIHdpdGgg
YXJncy4NCiBzZXQgZHVtbXkgY2M7IGFjX3dvcmQ9JDINCiBlY2hvICRhY19u
ICJjaGVja2luZyBmb3IgJGFjX3dvcmQiIi4uLiAkYWNfYyIgMT4mNg0KLWVj
aG8gImNvbmZpZ3VyZTo2Mzk6IGNoZWNraW5nIGZvciAkYWNfd29yZCIgPiY1
DQorZWNobyAiY29uZmlndXJlOjYyODogY2hlY2tpbmcgZm9yICRhY193b3Jk
IiA+JjUNCiBpZiBldmFsICJ0ZXN0IFwiYGVjaG8gJyQnJ3snYWNfY3ZfcHJv
Z19DQycrc2V0fSdgXCIgPSBzZXQiOyB0aGVuDQogICBlY2hvICRhY19uICIo
Y2FjaGVkKSAkYWNfYyIgMT4mNg0KIGVsc2UNCkBAIC02ODYsNyArNjc1LDcg
QEAgZmkNCiAgICAgICAjIEV4dHJhY3QgdGhlIGZpcnN0IHdvcmQgb2YgImNs
Iiwgc28gaXQgY2FuIGJlIGEgcHJvZ3JhbSBuYW1lIHdpdGggYXJncy4NCiBz
ZXQgZHVtbXkgY2w7IGFjX3dvcmQ9JDINCiBlY2hvICRhY19uICJjaGVja2lu
ZyBmb3IgJGFjX3dvcmQiIi4uLiAkYWNfYyIgMT4mNg0KLWVjaG8gImNvbmZp
Z3VyZTo2OTA6IGNoZWNraW5nIGZvciAkYWNfd29yZCIgPiY1DQorZWNobyAi
Y29uZmlndXJlOjY3OTogY2hlY2tpbmcgZm9yICRhY193b3JkIiA+JjUNCiBp
ZiBldmFsICJ0ZXN0IFwiYGVjaG8gJyQnJ3snYWNfY3ZfcHJvZ19DQycrc2V0
fSdgXCIgPSBzZXQiOyB0aGVuDQogICBlY2hvICRhY19uICIoY2FjaGVkKSAk
YWNfYyIgMT4mNg0KIGVsc2UNCkBAIC03MTgsNyArNzA3LDcgQEAgZmkNCiBm
aQ0KIA0KIGVjaG8gJGFjX24gImNoZWNraW5nIHdoZXRoZXIgdGhlIEMgY29t
cGlsZXIgKCRDQyAkQ0ZMQUdTICRMREZMQUdTKSB3b3JrcyIiLi4uICRhY19j
IiAxPiY2DQotZWNobyAiY29uZmlndXJlOjcyMjogY2hlY2tpbmcgd2hldGhl
ciB0aGUgQyBjb21waWxlciAoJENDICRDRkxBR1MgJExERkxBR1MpIHdvcmtz
IiA+JjUNCitlY2hvICJjb25maWd1cmU6NzExOiBjaGVja2luZyB3aGV0aGVy
IHRoZSBDIGNvbXBpbGVyICgkQ0MgJENGTEFHUyAkTERGTEFHUykgd29ya3Mi
ID4mNQ0KIA0KIGFjX2V4dD1jDQogIyBDRkxBR1MgaXMgbm90IGluIGFjX2Nw
cCBiZWNhdXNlIC1nLCAtTywgZXRjLiBhcmUgbm90IHZhbGlkIGNwcCBvcHRp
b25zLg0KQEAgLTcyOSwxMiArNzE4LDEyIEBAIGNyb3NzX2NvbXBpbGluZz0k
YWNfY3ZfcHJvZ19jY19jcm9zcw0KIA0KIGNhdCA+IGNvbmZ0ZXN0LiRhY19l
eHQgPDwgRU9GDQogDQotI2xpbmUgNzMzICJjb25maWd1cmUiDQorI2xpbmUg
NzIyICJjb25maWd1cmUiDQogI2luY2x1ZGUgImNvbmZkZWZzLmgiDQogDQog
bWFpbigpe3JldHVybigwKTt9DQogRU9GDQotaWYgeyAoZXZhbCBlY2hvIGNv
bmZpZ3VyZTo3Mzg6IFwiJGFjX2xpbmtcIikgMT4mNTsgKGV2YWwgJGFjX2xp
bmspIDI+JjU7IH0gJiYgdGVzdCAtcyBjb25mdGVzdCR7YWNfZXhlZXh0fTsg
dGhlbg0KK2lmIHsgKGV2YWwgZWNobyBjb25maWd1cmU6NzI3OiBcIiRhY19s
aW5rXCIpIDE+JjU7IChldmFsICRhY19saW5rKSAyPiY1OyB9ICYmIHRlc3Qg
LXMgY29uZnRlc3Qke2FjX2V4ZWV4dH07IHRoZW4NCiAgIGFjX2N2X3Byb2df
Y2Nfd29ya3M9eWVzDQogICAjIElmIHdlIGNhbid0IHJ1biBhIHRyaXZpYWwg
cHJvZ3JhbSwgd2UgYXJlIHByb2JhYmx5IHVzaW5nIGEgY3Jvc3MgY29tcGls
ZXIuDQogICBpZiAoLi9jb25mdGVzdDsgZXhpdCkgMj4vZGV2L251bGw7IHRo
ZW4NCkBAIC03NjAsMTIgKzc0OSwxMiBAQCBpZiB0ZXN0ICRhY19jdl9wcm9n
X2NjX3dvcmtzID0gbm87IHRoZW4NCiAgIHsgZWNobyAiY29uZmlndXJlOiBl
cnJvcjogaW5zdGFsbGF0aW9uIG9yIGNvbmZpZ3VyYXRpb24gcHJvYmxlbTog
QyBjb21waWxlciBjYW5ub3QgY3JlYXRlIGV4ZWN1dGFibGVzLiIgMT4mMjsg
ZXhpdCAxOyB9DQogZmkNCiBlY2hvICRhY19uICJjaGVja2luZyB3aGV0aGVy
IHRoZSBDIGNvbXBpbGVyICgkQ0MgJENGTEFHUyAkTERGTEFHUykgaXMgYSBj
cm9zcy1jb21waWxlciIiLi4uICRhY19jIiAxPiY2DQotZWNobyAiY29uZmln
dXJlOjc2NDogY2hlY2tpbmcgd2hldGhlciB0aGUgQyBjb21waWxlciAoJEND
ICRDRkxBR1MgJExERkxBR1MpIGlzIGEgY3Jvc3MtY29tcGlsZXIiID4mNQ0K
K2VjaG8gImNvbmZpZ3VyZTo3NTM6IGNoZWNraW5nIHdoZXRoZXIgdGhlIEMg
Y29tcGlsZXIgKCRDQyAkQ0ZMQUdTICRMREZMQUdTKSBpcyBhIGNyb3NzLWNv
bXBpbGVyIiA+JjUNCiBlY2hvICIkYWNfdCIiJGFjX2N2X3Byb2dfY2NfY3Jv
c3MiIDE+JjYNCiBjcm9zc19jb21waWxpbmc9JGFjX2N2X3Byb2dfY2NfY3Jv
c3MNCiANCiBlY2hvICRhY19uICJjaGVja2luZyB3aGV0aGVyIHdlIGFyZSB1
c2luZyBHTlUgQyIiLi4uICRhY19jIiAxPiY2DQotZWNobyAiY29uZmlndXJl
Ojc2OTogY2hlY2tpbmcgd2hldGhlciB3ZSBhcmUgdXNpbmcgR05VIEMiID4m
NQ0KK2VjaG8gImNvbmZpZ3VyZTo3NTg6IGNoZWNraW5nIHdoZXRoZXIgd2Ug
YXJlIHVzaW5nIEdOVSBDIiA+JjUNCiBpZiBldmFsICJ0ZXN0IFwiYGVjaG8g
JyQnJ3snYWNfY3ZfcHJvZ19nY2MnK3NldH0nYFwiID0gc2V0IjsgdGhlbg0K
ICAgZWNobyAkYWNfbiAiKGNhY2hlZCkgJGFjX2MiIDE+JjYNCiBlbHNlDQpA
QCAtNzc0LDcgKzc2Myw3IEBAIGVsc2UNCiAgIHllczsNCiAjZW5kaWYNCiBF
T0YNCi1pZiB7IGFjX3RyeT0nJHtDQy1jY30gLUUgY29uZnRlc3QuYyc7IHsg
KGV2YWwgZWNobyBjb25maWd1cmU6Nzc4OiBcIiRhY190cnlcIikgMT4mNTsg
KGV2YWwgJGFjX3RyeSkgMj4mNTsgfTsgfSB8IGVncmVwIHllcyA+L2Rldi9u
dWxsIDI+JjE7IHRoZW4NCitpZiB7IGFjX3RyeT0nJHtDQy1jY30gLUUgY29u
ZnRlc3QuYyc7IHsgKGV2YWwgZWNobyBjb25maWd1cmU6NzY3OiBcIiRhY190
cnlcIikgMT4mNTsgKGV2YWwgJGFjX3RyeSkgMj4mNTsgfTsgfSB8IGVncmVw
IHllcyA+L2Rldi9udWxsIDI+JjE7IHRoZW4NCiAgIGFjX2N2X3Byb2dfZ2Nj
PXllcw0KIGVsc2UNCiAgIGFjX2N2X3Byb2dfZ2NjPW5vDQpAQCAtNzkzLDcg
Kzc4Miw3IEBAIGFjX3Rlc3RfQ0ZMQUdTPSIke0NGTEFHUytzZXR9Ig0KIGFj
X3NhdmVfQ0ZMQUdTPSIkQ0ZMQUdTIg0KIENGTEFHUz0NCiBlY2hvICRhY19u
ICJjaGVja2luZyB3aGV0aGVyICR7Q0MtY2N9IGFjY2VwdHMgLWciIi4uLiAk
YWNfYyIgMT4mNg0KLWVjaG8gImNvbmZpZ3VyZTo3OTc6IGNoZWNraW5nIHdo
ZXRoZXIgJHtDQy1jY30gYWNjZXB0cyAtZyIgPiY1DQorZWNobyAiY29uZmln
dXJlOjc4NjogY2hlY2tpbmcgd2hldGhlciAke0NDLWNjfSBhY2NlcHRzIC1n
IiA+JjUNCiBpZiBldmFsICJ0ZXN0IFwiYGVjaG8gJyQnJ3snYWNfY3ZfcHJv
Z19jY19nJytzZXR9J2BcIiA9IHNldCI7IHRoZW4NCiAgIGVjaG8gJGFjX24g
IihjYWNoZWQpICRhY19jIiAxPiY2DQogZWxzZQ0KQEAgLTgyNSw3ICs4MTQs
NyBAQCBlbHNlDQogZmkNCiANCiBlY2hvICRhY19uICJjaGVja2luZyBob3cg
dG8gcnVuIHRoZSBDIHByZXByb2Nlc3NvciIiLi4uICRhY19jIiAxPiY2DQot
ZWNobyAiY29uZmlndXJlOjgyOTogY2hlY2tpbmcgaG93IHRvIHJ1biB0aGUg
QyBwcmVwcm9jZXNzb3IiID4mNQ0KK2VjaG8gImNvbmZpZ3VyZTo4MTg6IGNo
ZWNraW5nIGhvdyB0byBydW4gdGhlIEMgcHJlcHJvY2Vzc29yIiA+JjUNCiAj
IE9uIFN1bnMsIHNvbWV0aW1lcyAkQ1BQIG5hbWVzIGEgZGlyZWN0b3J5Lg0K
IGlmIHRlc3QgLW4gIiRDUFAiICYmIHRlc3QgLWQgIiRDUFAiOyB0aGVuDQog
ICBDUFA9DQpAQCAtODQwLDEzICs4MjksMTMgQEAgZWxzZQ0KICAgIyBPbiB0
aGUgTmVYVCwgY2MgLUUgcnVucyB0aGUgY29kZSB0aHJvdWdoIHRoZSBjb21w
aWxlcidzIHBhcnNlciwNCiAgICMgbm90IGp1c3QgdGhyb3VnaCBjcHAuDQog
ICBjYXQgPiBjb25mdGVzdC4kYWNfZXh0IDw8RU9GDQotI2xpbmUgODQ0ICJj
b25maWd1cmUiDQorI2xpbmUgODMzICJjb25maWd1cmUiDQogI2luY2x1ZGUg
ImNvbmZkZWZzLmgiDQogI2luY2x1ZGUgPGFzc2VydC5oPg0KIFN5bnRheCBF
cnJvcg0KIEVPRg0KIGFjX3RyeT0iJGFjX2NwcCBjb25mdGVzdC4kYWNfZXh0
ID4vZGV2L251bGwgMj5jb25mdGVzdC5vdXQiDQoteyAoZXZhbCBlY2hvIGNv
bmZpZ3VyZTo4NTA6IFwiJGFjX3RyeVwiKSAxPiY1OyAoZXZhbCAkYWNfdHJ5
KSAyPiY1OyB9DQoreyAoZXZhbCBlY2hvIGNvbmZpZ3VyZTo4Mzk6IFwiJGFj
X3RyeVwiKSAxPiY1OyAoZXZhbCAkYWNfdHJ5KSAyPiY1OyB9DQogYWNfZXJy
PWBncmVwIC12ICdeICorJyBjb25mdGVzdC5vdXQgfCBncmVwIC12ICJeY29u
ZnRlc3QuJHthY19leHR9XCQiYA0KIGlmIHRlc3QgLXogIiRhY19lcnIiOyB0
aGVuDQogICA6DQpAQCAtODU3LDEzICs4NDYsMTMgQEAgZWxzZQ0KICAgcm0g
LXJmIGNvbmZ0ZXN0Kg0KICAgQ1BQPSIke0NDLWNjfSAtRSAtdHJhZGl0aW9u
YWwtY3BwIg0KICAgY2F0ID4gY29uZnRlc3QuJGFjX2V4dCA8PEVPRg0KLSNs
aW5lIDg2MSAiY29uZmlndXJlIg0KKyNsaW5lIDg1MCAiY29uZmlndXJlIg0K
ICNpbmNsdWRlICJjb25mZGVmcy5oIg0KICNpbmNsdWRlIDxhc3NlcnQuaD4N
CiBTeW50YXggRXJyb3INCiBFT0YNCiBhY190cnk9IiRhY19jcHAgY29uZnRl
c3QuJGFjX2V4dCA+L2Rldi9udWxsIDI+Y29uZnRlc3Qub3V0Ig0KLXsgKGV2
YWwgZWNobyBjb25maWd1cmU6ODY3OiBcIiRhY190cnlcIikgMT4mNTsgKGV2
YWwgJGFjX3RyeSkgMj4mNTsgfQ0KK3sgKGV2YWwgZWNobyBjb25maWd1cmU6
ODU2OiBcIiRhY190cnlcIikgMT4mNTsgKGV2YWwgJGFjX3RyeSkgMj4mNTsg
fQ0KIGFjX2Vycj1gZ3JlcCAtdiAnXiAqKycgY29uZnRlc3Qub3V0IHwgZ3Jl
cCAtdiAiXmNvbmZ0ZXN0LiR7YWNfZXh0fVwkImANCiBpZiB0ZXN0IC16ICIk
YWNfZXJyIjsgdGhlbg0KICAgOg0KQEAgLTg3NCwxMyArODYzLDEzIEBAIGVs
c2UNCiAgIHJtIC1yZiBjb25mdGVzdCoNCiAgIENQUD0iJHtDQy1jY30gLW5v
bG9nbyAtRSINCiAgIGNhdCA+IGNvbmZ0ZXN0LiRhY19leHQgPDxFT0YNCi0j
bGluZSA4NzggImNvbmZpZ3VyZSINCisjbGluZSA4NjcgImNvbmZpZ3VyZSIN
CiAjaW5jbHVkZSAiY29uZmRlZnMuaCINCiAjaW5jbHVkZSA8YXNzZXJ0Lmg+
DQogU3ludGF4IEVycm9yDQogRU9GDQogYWNfdHJ5PSIkYWNfY3BwIGNvbmZ0
ZXN0LiRhY19leHQgPi9kZXYvbnVsbCAyPmNvbmZ0ZXN0Lm91dCINCi17IChl
dmFsIGVjaG8gY29uZmlndXJlOjg4NDogXCIkYWNfdHJ5XCIpIDE+JjU7IChl
dmFsICRhY190cnkpIDI+JjU7IH0NCit7IChldmFsIGVjaG8gY29uZmlndXJl
Ojg3MzogXCIkYWNfdHJ5XCIpIDE+JjU7IChldmFsICRhY190cnkpIDI+JjU7
IH0NCiBhY19lcnI9YGdyZXAgLXYgJ14gKisnIGNvbmZ0ZXN0Lm91dCB8IGdy
ZXAgLXYgIl5jb25mdGVzdC4ke2FjX2V4dH1cJCJgDQogaWYgdGVzdCAteiAi
JGFjX2VyciI7IHRoZW4NCiAgIDoNCkBAIC05MDUsOSArODk0LDkgQEAgZmkN
CiBlY2hvICIkYWNfdCIiJENQUCIgMT4mNg0KIA0KIGVjaG8gJGFjX24gImNo
ZWNraW5nIGZvciBBSVgiIi4uLiAkYWNfYyIgMT4mNg0KLWVjaG8gImNvbmZp
Z3VyZTo5MDk6IGNoZWNraW5nIGZvciBBSVgiID4mNQ0KK2VjaG8gImNvbmZp
Z3VyZTo4OTg6IGNoZWNraW5nIGZvciBBSVgiID4mNQ0KIGNhdCA+IGNvbmZ0
ZXN0LiRhY19leHQgPDxFT0YNCi0jbGluZSA5MTEgImNvbmZpZ3VyZSINCisj
bGluZSA5MDAgImNvbmZpZ3VyZSINCiAjaW5jbHVkZSAiY29uZmRlZnMuaCIN
CiAjaWZkZWYgX0FJWA0KICAgeWVzDQpAQCAtOTI5LDcgKzkxOCw3IEBAIHJt
IC1mIGNvbmZ0ZXN0Kg0KIA0KIA0KIGVjaG8gJGFjX24gImNoZWNraW5nIGZv
ciBQT1NJWGl6ZWQgSVNDIiIuLi4gJGFjX2MiIDE+JjYNCi1lY2hvICJjb25m
aWd1cmU6OTMzOiBjaGVja2luZyBmb3IgUE9TSVhpemVkIElTQyIgPiY1DQor
ZWNobyAiY29uZmlndXJlOjkyMjogY2hlY2tpbmcgZm9yIFBPU0lYaXplZCBJ
U0MiID4mNQ0KIGlmIHRlc3QgLWQgL2V0Yy9jb25mL2tjb25maWcuZCAmJg0K
ICAgZ3JlcCBfUE9TSVhfVkVSU0lPTiAvdXNyL2luY2x1ZGUvc3lzL3VuaXN0
ZC5oID4vZGV2L251bGwgMj4mMQ0KIHRoZW4NCkBAIC05NTMsNyArOTQyLDcg
QEAgZmkNCiANCiANCiBlY2hvICRhY19uICJjaGVja2luZyBmb3IgJHtDQy1j
Y30gb3B0aW9uIHRvIGFjY2VwdCBBTlNJIEMiIi4uLiAkYWNfYyIgMT4mNg0K
LWVjaG8gImNvbmZpZ3VyZTo5NTc6IGNoZWNraW5nIGZvciAke0NDLWNjfSBv
cHRpb24gdG8gYWNjZXB0IEFOU0kgQyIgPiY1DQorZWNobyAiY29uZmlndXJl
Ojk0NjogY2hlY2tpbmcgZm9yICR7Q0MtY2N9IG9wdGlvbiB0byBhY2NlcHQg
QU5TSSBDIiA+JjUNCiBpZiBldmFsICJ0ZXN0IFwiYGVjaG8gJyQnJ3snYW1f
Y3ZfcHJvZ19jY19zdGRjJytzZXR9J2BcIiA9IHNldCI7IHRoZW4NCiAgIGVj
aG8gJGFjX24gIihjYWNoZWQpICRhY19jIiAxPiY2DQogZWxzZQ0KQEAgLTk2
OSw3ICs5NTgsNyBAQCBmb3IgYWNfYXJnIGluICIiIC1xbGFuZ2x2bD1hbnNp
IC1zdGQxICItDQogZG8NCiAgIENDPSIkYWNfc2F2ZV9DQyAkYWNfYXJnIg0K
ICAgY2F0ID4gY29uZnRlc3QuJGFjX2V4dCA8PEVPRg0KLSNsaW5lIDk3MyAi
Y29uZmlndXJlIg0KKyNsaW5lIDk2MiAiY29uZmlndXJlIg0KICNpbmNsdWRl
ICJjb25mZGVmcy5oIg0KICNpbmNsdWRlIDxzdGRhcmcuaD4NCiAjaW5jbHVk
ZSA8c3RkaW8uaD4NCkBAIC0xMDA2LDcgKzk5NSw3IEBAIHJldHVybiBmIChl
LCBhcmd2LCAwKSAhPSBhcmd2WzBdICB8fCAgZiANCiANCiA7IHJldHVybiAw
OyB9DQogRU9GDQotaWYgeyAoZXZhbCBlY2hvIGNvbmZpZ3VyZToxMDEwOiBc
IiRhY19jb21waWxlXCIpIDE+JjU7IChldmFsICRhY19jb21waWxlKSAyPiY1
OyB9OyB0aGVuDQoraWYgeyAoZXZhbCBlY2hvIGNvbmZpZ3VyZTo5OTk6IFwi
JGFjX2NvbXBpbGVcIikgMT4mNTsgKGV2YWwgJGFjX2NvbXBpbGUpIDI+JjU7
IH07IHRoZW4NCiAgIHJtIC1yZiBjb25mdGVzdCoNCiAgIGFtX2N2X3Byb2df
Y2Nfc3RkYz0iJGFjX2FyZyI7IGJyZWFrDQogZWxzZQ0KQEAgLTEwNzcsNyAr
MTA2Niw3IEBAIGVsc2UgeyBlY2hvICJjb25maWd1cmU6IGVycm9yOiBjYW4g
bm90IHINCiBmaQ0KIA0KIGVjaG8gJGFjX24gImNoZWNraW5nIGhvc3Qgc3lz
dGVtIHR5cGUiIi4uLiAkYWNfYyIgMT4mNg0KLWVjaG8gImNvbmZpZ3VyZTox
MDgxOiBjaGVja2luZyBob3N0IHN5c3RlbSB0eXBlIiA+JjUNCitlY2hvICJj
b25maWd1cmU6MTA3MDogY2hlY2tpbmcgaG9zdCBzeXN0ZW0gdHlwZSIgPiY1
DQogDQogaG9zdF9hbGlhcz0kaG9zdA0KIGNhc2UgIiRob3N0X2FsaWFzIiBp
bg0KQEAgLTEwOTgsNyArMTA4Nyw3IEBAIGhvc3Rfb3M9YGVjaG8gJGhvc3Qg
fCBzZWQgJ3MvXlwoW14tXSpcKS0NCiBlY2hvICIkYWNfdCIiJGhvc3QiIDE+
JjYNCiANCiBlY2hvICRhY19uICJjaGVja2luZyB0YXJnZXQgc3lzdGVtIHR5
cGUiIi4uLiAkYWNfYyIgMT4mNg0KLWVjaG8gImNvbmZpZ3VyZToxMTAyOiBj
aGVja2luZyB0YXJnZXQgc3lzdGVtIHR5cGUiID4mNQ0KK2VjaG8gImNvbmZp
Z3VyZToxMDkxOiBjaGVja2luZyB0YXJnZXQgc3lzdGVtIHR5cGUiID4mNQ0K
IA0KIHRhcmdldF9hbGlhcz0kdGFyZ2V0DQogY2FzZSAiJHRhcmdldF9hbGlh
cyIgaW4NCkBAIC0xMTE2LDcgKzExMDUsNyBAQCB0YXJnZXRfb3M9YGVjaG8g
JHRhcmdldCB8IHNlZCAncy9eXChbXi1dDQogZWNobyAiJGFjX3QiIiR0YXJn
ZXQiIDE+JjYNCiANCiBlY2hvICRhY19uICJjaGVja2luZyBidWlsZCBzeXN0
ZW0gdHlwZSIiLi4uICRhY19jIiAxPiY2DQotZWNobyAiY29uZmlndXJlOjEx
MjA6IGNoZWNraW5nIGJ1aWxkIHN5c3RlbSB0eXBlIiA+JjUNCitlY2hvICJj
b25maWd1cmU6MTEwOTogY2hlY2tpbmcgYnVpbGQgc3lzdGVtIHR5cGUiID4m
NQ0KIA0KIGJ1aWxkX2FsaWFzPSRidWlsZA0KIGNhc2UgIiRidWlsZF9hbGlh
cyIgaW4NCkBAIC0xMTQxLDcgKzExMzAsNyBAQCB0ZXN0ICIkaG9zdF9hbGlh
cyIgIT0gIiR0YXJnZXRfYWxpYXMiICYmDQogDQogQUxMX0xJTkdVQVM9DQog
ZWNobyAkYWNfbiAiY2hlY2tpbmcgd2hldGhlciAke01BS0UtbWFrZX0gc2V0
cyBcJHtNQUtFfSIiLi4uICRhY19jIiAxPiY2DQotZWNobyAiY29uZmlndXJl
OjExNDU6IGNoZWNraW5nIHdoZXRoZXIgJHtNQUtFLW1ha2V9IHNldHMgXCR7
TUFLRX0iID4mNQ0KK2VjaG8gImNvbmZpZ3VyZToxMTM0OiBjaGVja2luZyB3
aGV0aGVyICR7TUFLRS1tYWtlfSBzZXRzIFwke01BS0V9IiA+JjUNCiBzZXQg
ZHVtbXkgJHtNQUtFLW1ha2V9OyBhY19tYWtlPWBlY2hvICIkMiIgfCBzZWQg
J3klLi8rLSVfX3BfJSdgDQogaWYgZXZhbCAidGVzdCBcImBlY2hvICckJyd7
J2FjX2N2X3Byb2dfbWFrZV8ke2FjX21ha2V9X3NldCcrc2V0fSdgXCIgPSBz
ZXQiOyB0aGVuDQogICBlY2hvICRhY19uICIoY2FjaGVkKSAkYWNfYyIgMT4m
Ng0KQEAgLTExNzAsNyArMTE1OSw3IEBAIGZpDQogIyBFeHRyYWN0IHRoZSBm
aXJzdCB3b3JkIG9mICJyYW5saWIiLCBzbyBpdCBjYW4gYmUgYSBwcm9ncmFt
IG5hbWUgd2l0aCBhcmdzLg0KIHNldCBkdW1teSByYW5saWI7IGFjX3dvcmQ9
JDINCiBlY2hvICRhY19uICJjaGVja2luZyBmb3IgJGFjX3dvcmQiIi4uLiAk
YWNfYyIgMT4mNg0KLWVjaG8gImNvbmZpZ3VyZToxMTc0OiBjaGVja2luZyBm
b3IgJGFjX3dvcmQiID4mNQ0KK2VjaG8gImNvbmZpZ3VyZToxMTYzOiBjaGVj
a2luZyBmb3IgJGFjX3dvcmQiID4mNQ0KIGlmIGV2YWwgInRlc3QgXCJgZWNo
byAnJCcneydhY19jdl9wcm9nX1JBTkxJQicrc2V0fSdgXCIgPSBzZXQiOyB0
aGVuDQogICBlY2hvICRhY19uICIoY2FjaGVkKSAkYWNfYyIgMT4mNg0KIGVs
c2UNCkBAIC0xMTk4LDEyICsxMTg3LDEyIEBAIGVsc2UNCiBmaQ0KIA0KIGVj
aG8gJGFjX24gImNoZWNraW5nIGZvciBBTlNJIEMgaGVhZGVyIGZpbGVzIiIu
Li4gJGFjX2MiIDE+JjYNCi1lY2hvICJjb25maWd1cmU6MTIwMjogY2hlY2tp
bmcgZm9yIEFOU0kgQyBoZWFkZXIgZmlsZXMiID4mNQ0KK2VjaG8gImNvbmZp
Z3VyZToxMTkxOiBjaGVja2luZyBmb3IgQU5TSSBDIGhlYWRlciBmaWxlcyIg
PiY1DQogaWYgZXZhbCAidGVzdCBcImBlY2hvICckJyd7J2FjX2N2X2hlYWRl
cl9zdGRjJytzZXR9J2BcIiA9IHNldCI7IHRoZW4NCiAgIGVjaG8gJGFjX24g
IihjYWNoZWQpICRhY19jIiAxPiY2DQogZWxzZQ0KICAgY2F0ID4gY29uZnRl
c3QuJGFjX2V4dCA8PEVPRg0KLSNsaW5lIDEyMDcgImNvbmZpZ3VyZSINCisj
bGluZSAxMTk2ICJjb25maWd1cmUiDQogI2luY2x1ZGUgImNvbmZkZWZzLmgi
DQogI2luY2x1ZGUgPHN0ZGxpYi5oPg0KICNpbmNsdWRlIDxzdGRhcmcuaD4N
CkBAIC0xMjExLDcgKzEyMDAsNyBAQCBlbHNlDQogI2luY2x1ZGUgPGZsb2F0
Lmg+DQogRU9GDQogYWNfdHJ5PSIkYWNfY3BwIGNvbmZ0ZXN0LiRhY19leHQg
Pi9kZXYvbnVsbCAyPmNvbmZ0ZXN0Lm91dCINCi17IChldmFsIGVjaG8gY29u
ZmlndXJlOjEyMTU6IFwiJGFjX3RyeVwiKSAxPiY1OyAoZXZhbCAkYWNfdHJ5
KSAyPiY1OyB9DQoreyAoZXZhbCBlY2hvIGNvbmZpZ3VyZToxMjA0OiBcIiRh
Y190cnlcIikgMT4mNTsgKGV2YWwgJGFjX3RyeSkgMj4mNTsgfQ0KIGFjX2Vy
cj1gZ3JlcCAtdiAnXiAqKycgY29uZnRlc3Qub3V0IHwgZ3JlcCAtdiAiXmNv
bmZ0ZXN0LiR7YWNfZXh0fVwkImANCiBpZiB0ZXN0IC16ICIkYWNfZXJyIjsg
dGhlbg0KICAgcm0gLXJmIGNvbmZ0ZXN0Kg0KQEAgLTEyMjgsNyArMTIxNyw3
IEBAIHJtIC1mIGNvbmZ0ZXN0Kg0KIGlmIHRlc3QgJGFjX2N2X2hlYWRlcl9z
dGRjID0geWVzOyB0aGVuDQogICAjIFN1bk9TIDQueCBzdHJpbmcuaCBkb2Vz
IG5vdCBkZWNsYXJlIG1lbSosIGNvbnRyYXJ5IHRvIEFOU0kuDQogY2F0ID4g
Y29uZnRlc3QuJGFjX2V4dCA8PEVPRg0KLSNsaW5lIDEyMzIgImNvbmZpZ3Vy
ZSINCisjbGluZSAxMjIxICJjb25maWd1cmUiDQogI2luY2x1ZGUgImNvbmZk
ZWZzLmgiDQogI2luY2x1ZGUgPHN0cmluZy5oPg0KIEVPRg0KQEAgLTEyNDYs
NyArMTIzNSw3IEBAIGZpDQogaWYgdGVzdCAkYWNfY3ZfaGVhZGVyX3N0ZGMg
PSB5ZXM7IHRoZW4NCiAgICMgSVNDIDIuMC4yIHN0ZGxpYi5oIGRvZXMgbm90
IGRlY2xhcmUgZnJlZSwgY29udHJhcnkgdG8gQU5TSS4NCiBjYXQgPiBjb25m
dGVzdC4kYWNfZXh0IDw8RU9GDQotI2xpbmUgMTI1MCAiY29uZmlndXJlIg0K
KyNsaW5lIDEyMzkgImNvbmZpZ3VyZSINCiAjaW5jbHVkZSAiY29uZmRlZnMu
aCINCiAjaW5jbHVkZSA8c3RkbGliLmg+DQogRU9GDQpAQCAtMTI2Nyw3ICsx
MjU2LDcgQEAgaWYgdGVzdCAiJGNyb3NzX2NvbXBpbGluZyIgPSB5ZXM7IHRo
ZW4NCiAgIDoNCiBlbHNlDQogICBjYXQgPiBjb25mdGVzdC4kYWNfZXh0IDw8
RU9GDQotI2xpbmUgMTI3MSAiY29uZmlndXJlIg0KKyNsaW5lIDEyNjAgImNv
bmZpZ3VyZSINCiAjaW5jbHVkZSAiY29uZmRlZnMuaCINCiAjaW5jbHVkZSA8
Y3R5cGUuaD4NCiAjZGVmaW5lIElTTE9XRVIoYykgKCdhJyA8PSAoYykgJiYg
KGMpIDw9ICd6JykNCkBAIC0xMjc4LDcgKzEyNjcsNyBAQCBpZiAoWE9SIChp
c2xvd2VyIChpKSwgSVNMT1dFUiAoaSkpIHx8IHRvDQogZXhpdCAoMCk7IH0N
CiANCiBFT0YNCi1pZiB7IChldmFsIGVjaG8gY29uZmlndXJlOjEyODI6IFwi
JGFjX2xpbmtcIikgMT4mNTsgKGV2YWwgJGFjX2xpbmspIDI+JjU7IH0gJiYg
dGVzdCAtcyBjb25mdGVzdCR7YWNfZXhlZXh0fSAmJiAoLi9jb25mdGVzdDsg
ZXhpdCkgMj4vZGV2L251bGwNCitpZiB7IChldmFsIGVjaG8gY29uZmlndXJl
OjEyNzE6IFwiJGFjX2xpbmtcIikgMT4mNTsgKGV2YWwgJGFjX2xpbmspIDI+
JjU7IH0gJiYgdGVzdCAtcyBjb25mdGVzdCR7YWNfZXhlZXh0fSAmJiAoLi9j
b25mdGVzdDsgZXhpdCkgMj4vZGV2L251bGwNCiB0aGVuDQogICA6DQogZWxz
ZQ0KQEAgLTEzMDIsMTIgKzEyOTEsMTIgQEAgRU9GDQogZmkNCiANCiBlY2hv
ICRhY19uICJjaGVja2luZyBmb3Igd29ya2luZyBjb25zdCIiLi4uICRhY19j
IiAxPiY2DQotZWNobyAiY29uZmlndXJlOjEzMDY6IGNoZWNraW5nIGZvciB3
b3JraW5nIGNvbnN0IiA+JjUNCitlY2hvICJjb25maWd1cmU6MTI5NTogY2hl
Y2tpbmcgZm9yIHdvcmtpbmcgY29uc3QiID4mNQ0KIGlmIGV2YWwgInRlc3Qg
XCJgZWNobyAnJCcneydhY19jdl9jX2NvbnN0JytzZXR9J2BcIiA9IHNldCI7
IHRoZW4NCiAgIGVjaG8gJGFjX24gIihjYWNoZWQpICRhY19jIiAxPiY2DQog
ZWxzZQ0KICAgY2F0ID4gY29uZnRlc3QuJGFjX2V4dCA8PEVPRg0KLSNsaW5l
IDEzMTEgImNvbmZpZ3VyZSINCisjbGluZSAxMzAwICJjb25maWd1cmUiDQog
I2luY2x1ZGUgImNvbmZkZWZzLmgiDQogDQogaW50IG1haW4oKSB7DQpAQCAt
MTM1Niw3ICsxMzQ1LDcgQEAgY2NwID0gKGNoYXIgY29uc3QgKmNvbnN0ICop
IHA7DQogDQogOyByZXR1cm4gMDsgfQ0KIEVPRg0KLWlmIHsgKGV2YWwgZWNo
byBjb25maWd1cmU6MTM2MDogXCIkYWNfY29tcGlsZVwiKSAxPiY1OyAoZXZh
bCAkYWNfY29tcGlsZSkgMj4mNTsgfTsgdGhlbg0KK2lmIHsgKGV2YWwgZWNo
byBjb25maWd1cmU6MTM0OTogXCIkYWNfY29tcGlsZVwiKSAxPiY1OyAoZXZh
bCAkYWNfY29tcGlsZSkgMj4mNTsgfTsgdGhlbg0KICAgcm0gLXJmIGNvbmZ0
ZXN0Kg0KICAgYWNfY3ZfY19jb25zdD15ZXMNCiBlbHNlDQpAQCAtMTM3Nywy
MSArMTM2NiwyMSBAQCBFT0YNCiBmaQ0KIA0KIGVjaG8gJGFjX24gImNoZWNr
aW5nIGZvciBpbmxpbmUiIi4uLiAkYWNfYyIgMT4mNg0KLWVjaG8gImNvbmZp
Z3VyZToxMzgxOiBjaGVja2luZyBmb3IgaW5saW5lIiA+JjUNCitlY2hvICJj
b25maWd1cmU6MTM3MDogY2hlY2tpbmcgZm9yIGlubGluZSIgPiY1DQogaWYg
ZXZhbCAidGVzdCBcImBlY2hvICckJyd7J2FjX2N2X2NfaW5saW5lJytzZXR9
J2BcIiA9IHNldCI7IHRoZW4NCiAgIGVjaG8gJGFjX24gIihjYWNoZWQpICRh
Y19jIiAxPiY2DQogZWxzZQ0KICAgYWNfY3ZfY19pbmxpbmU9bm8NCiBmb3Ig
YWNfa3cgaW4gaW5saW5lIF9faW5saW5lX18gX19pbmxpbmU7IGRvDQogICBj
YXQgPiBjb25mdGVzdC4kYWNfZXh0IDw8RU9GDQotI2xpbmUgMTM4OCAiY29u
ZmlndXJlIg0KKyNsaW5lIDEzNzcgImNvbmZpZ3VyZSINCiAjaW5jbHVkZSAi
Y29uZmRlZnMuaCINCiANCiBpbnQgbWFpbigpIHsNCiB9ICRhY19rdyBmb28o
KSB7DQogOyByZXR1cm4gMDsgfQ0KIEVPRg0KLWlmIHsgKGV2YWwgZWNobyBj
b25maWd1cmU6MTM5NTogXCIkYWNfY29tcGlsZVwiKSAxPiY1OyAoZXZhbCAk
YWNfY29tcGlsZSkgMj4mNTsgfTsgdGhlbg0KK2lmIHsgKGV2YWwgZWNobyBj
b25maWd1cmU6MTM4NDogXCIkYWNfY29tcGlsZVwiKSAxPiY1OyAoZXZhbCAk
YWNfY29tcGlsZSkgMj4mNTsgfTsgdGhlbg0KICAgcm0gLXJmIGNvbmZ0ZXN0
Kg0KICAgYWNfY3ZfY19pbmxpbmU9JGFjX2t3OyBicmVhaw0KIGVsc2UNCkBA
IC0xNDE3LDEyICsxNDA2LDEyIEBAIEVPRg0KIGVzYWMNCiANCiBlY2hvICRh
Y19uICJjaGVja2luZyBmb3Igb2ZmX3QiIi4uLiAkYWNfYyIgMT4mNg0KLWVj
aG8gImNvbmZpZ3VyZToxNDIxOiBjaGVja2luZyBmb3Igb2ZmX3QiID4mNQ0K
K2VjaG8gImNvbmZpZ3VyZToxNDEwOiBjaGVja2luZyBmb3Igb2ZmX3QiID4m
NQ0KIGlmIGV2YWwgInRlc3QgXCJgZWNobyAnJCcneydhY19jdl90eXBlX29m
Zl90JytzZXR9J2BcIiA9IHNldCI7IHRoZW4NCiAgIGVjaG8gJGFjX24gIihj
YWNoZWQpICRhY19jIiAxPiY2DQogZWxzZQ0KICAgY2F0ID4gY29uZnRlc3Qu
JGFjX2V4dCA8PEVPRg0KLSNsaW5lIDE0MjYgImNvbmZpZ3VyZSINCisjbGlu
ZSAxNDE1ICJjb25maWd1cmUiDQogI2luY2x1ZGUgImNvbmZkZWZzLmgiDQog
I2luY2x1ZGUgPHN5cy90eXBlcy5oPg0KICNpZiBTVERDX0hFQURFUlMNCkBA
IC0xNDUwLDEyICsxNDM5LDEyIEBAIEVPRg0KIGZpDQogDQogZWNobyAkYWNf
biAiY2hlY2tpbmcgZm9yIHNpemVfdCIiLi4uICRhY19jIiAxPiY2DQotZWNo
byAiY29uZmlndXJlOjE0NTQ6IGNoZWNraW5nIGZvciBzaXplX3QiID4mNQ0K
K2VjaG8gImNvbmZpZ3VyZToxNDQzOiBjaGVja2luZyBmb3Igc2l6ZV90IiA+
JjUNCiBpZiBldmFsICJ0ZXN0IFwiYGVjaG8gJyQnJ3snYWNfY3ZfdHlwZV9z
aXplX3QnK3NldH0nYFwiID0gc2V0IjsgdGhlbg0KICAgZWNobyAkYWNfbiAi
KGNhY2hlZCkgJGFjX2MiIDE+JjYNCiBlbHNlDQogICBjYXQgPiBjb25mdGVz
dC4kYWNfZXh0IDw8RU9GDQotI2xpbmUgMTQ1OSAiY29uZmlndXJlIg0KKyNs
aW5lIDE0NDggImNvbmZpZ3VyZSINCiAjaW5jbHVkZSAiY29uZmRlZnMuaCIN
CiAjaW5jbHVkZSA8c3lzL3R5cGVzLmg+DQogI2lmIFNURENfSEVBREVSUw0K
QEAgLTE0ODUsMTkgKzE0NzQsMTkgQEAgZmkNCiAjIFRoZSBVbHRyaXggNC4y
IG1pcHMgYnVpbHRpbiBhbGxvY2EgZGVjbGFyZWQgYnkgYWxsb2NhLmggb25s
eSB3b3Jrcw0KICMgZm9yIGNvbnN0YW50IGFyZ3VtZW50cy4gIFVzZWxlc3Mh
DQogZWNobyAkYWNfbiAiY2hlY2tpbmcgZm9yIHdvcmtpbmcgYWxsb2NhLmgi
Ii4uLiAkYWNfYyIgMT4mNg0KLWVjaG8gImNvbmZpZ3VyZToxNDg5OiBjaGVj
a2luZyBmb3Igd29ya2luZyBhbGxvY2EuaCIgPiY1DQorZWNobyAiY29uZmln
dXJlOjE0Nzg6IGNoZWNraW5nIGZvciB3b3JraW5nIGFsbG9jYS5oIiA+JjUN
CiBpZiBldmFsICJ0ZXN0IFwiYGVjaG8gJyQnJ3snYWNfY3ZfaGVhZGVyX2Fs
bG9jYV9oJytzZXR9J2BcIiA9IHNldCI7IHRoZW4NCiAgIGVjaG8gJGFjX24g
IihjYWNoZWQpICRhY19jIiAxPiY2DQogZWxzZQ0KICAgY2F0ID4gY29uZnRl
c3QuJGFjX2V4dCA8PEVPRg0KLSNsaW5lIDE0OTQgImNvbmZpZ3VyZSINCisj
bGluZSAxNDgzICJjb25maWd1cmUiDQogI2luY2x1ZGUgImNvbmZkZWZzLmgi
DQogI2luY2x1ZGUgPGFsbG9jYS5oPg0KIGludCBtYWluKCkgew0KIGNoYXIg
KnAgPSBhbGxvY2EoMiAqIHNpemVvZihpbnQpKTsNCiA7IHJldHVybiAwOyB9
DQogRU9GDQotaWYgeyAoZXZhbCBlY2hvIGNvbmZpZ3VyZToxNTAxOiBcIiRh
Y19saW5rXCIpIDE+JjU7IChldmFsICRhY19saW5rKSAyPiY1OyB9ICYmIHRl
c3QgLXMgY29uZnRlc3Qke2FjX2V4ZWV4dH07IHRoZW4NCitpZiB7IChldmFs
IGVjaG8gY29uZmlndXJlOjE0OTA6IFwiJGFjX2xpbmtcIikgMT4mNTsgKGV2
YWwgJGFjX2xpbmspIDI+JjU7IH0gJiYgdGVzdCAtcyBjb25mdGVzdCR7YWNf
ZXhlZXh0fTsgdGhlbg0KICAgcm0gLXJmIGNvbmZ0ZXN0Kg0KICAgYWNfY3Zf
aGVhZGVyX2FsbG9jYV9oPXllcw0KIGVsc2UNCkBAIC0xNTE4LDEyICsxNTA3
LDEyIEBAIEVPRg0KIGZpDQogDQogZWNobyAkYWNfbiAiY2hlY2tpbmcgZm9y
IGFsbG9jYSIiLi4uICRhY19jIiAxPiY2DQotZWNobyAiY29uZmlndXJlOjE1
MjI6IGNoZWNraW5nIGZvciBhbGxvY2EiID4mNQ0KK2VjaG8gImNvbmZpZ3Vy
ZToxNTExOiBjaGVja2luZyBmb3IgYWxsb2NhIiA+JjUNCiBpZiBldmFsICJ0
ZXN0IFwiYGVjaG8gJyQnJ3snYWNfY3ZfZnVuY19hbGxvY2Ffd29ya3MnK3Nl
dH0nYFwiID0gc2V0IjsgdGhlbg0KICAgZWNobyAkYWNfbiAiKGNhY2hlZCkg
JGFjX2MiIDE+JjYNCiBlbHNlDQogICBjYXQgPiBjb25mdGVzdC4kYWNfZXh0
IDw8RU9GDQotI2xpbmUgMTUyNyAiY29uZmlndXJlIg0KKyNsaW5lIDE1MTYg
ImNvbmZpZ3VyZSINCiAjaW5jbHVkZSAiY29uZmRlZnMuaCINCiANCiAjaWZk
ZWYgX19HTlVDX18NCkBAIC0xNTUxLDcgKzE1NDAsNyBAQCBpbnQgbWFpbigp
IHsNCiBjaGFyICpwID0gKGNoYXIgKikgYWxsb2NhKDEpOw0KIDsgcmV0dXJu
IDA7IH0NCiBFT0YNCi1pZiB7IChldmFsIGVjaG8gY29uZmlndXJlOjE1NTU6
IFwiJGFjX2xpbmtcIikgMT4mNTsgKGV2YWwgJGFjX2xpbmspIDI+JjU7IH0g
JiYgdGVzdCAtcyBjb25mdGVzdCR7YWNfZXhlZXh0fTsgdGhlbg0KK2lmIHsg
KGV2YWwgZWNobyBjb25maWd1cmU6MTU0NDogXCIkYWNfbGlua1wiKSAxPiY1
OyAoZXZhbCAkYWNfbGluaykgMj4mNTsgfSAmJiB0ZXN0IC1zIGNvbmZ0ZXN0
JHthY19leGVleHR9OyB0aGVuDQogICBybSAtcmYgY29uZnRlc3QqDQogICBh
Y19jdl9mdW5jX2FsbG9jYV93b3Jrcz15ZXMNCiBlbHNlDQpAQCAtMTU4Mywx
MiArMTU3MiwxMiBAQCBFT0YNCiANCiANCiBlY2hvICRhY19uICJjaGVja2lu
ZyB3aGV0aGVyIGFsbG9jYSBuZWVkcyBDcmF5IGhvb2tzIiIuLi4gJGFjX2Mi
IDE+JjYNCi1lY2hvICJjb25maWd1cmU6MTU4NzogY2hlY2tpbmcgd2hldGhl
ciBhbGxvY2EgbmVlZHMgQ3JheSBob29rcyIgPiY1DQorZWNobyAiY29uZmln
dXJlOjE1NzY6IGNoZWNraW5nIHdoZXRoZXIgYWxsb2NhIG5lZWRzIENyYXkg
aG9va3MiID4mNQ0KIGlmIGV2YWwgInRlc3QgXCJgZWNobyAnJCcneydhY19j
dl9vc19jcmF5JytzZXR9J2BcIiA9IHNldCI7IHRoZW4NCiAgIGVjaG8gJGFj
X24gIihjYWNoZWQpICRhY19jIiAxPiY2DQogZWxzZQ0KICAgY2F0ID4gY29u
ZnRlc3QuJGFjX2V4dCA8PEVPRg0KLSNsaW5lIDE1OTIgImNvbmZpZ3VyZSIN
CisjbGluZSAxNTgxICJjb25maWd1cmUiDQogI2luY2x1ZGUgImNvbmZkZWZz
LmgiDQogI2lmIGRlZmluZWQoQ1JBWSkgJiYgISBkZWZpbmVkKENSQVkyKQ0K
IHdlYmVjcmF5DQpAQCAtMTYxMywxMiArMTYwMiwxMiBAQCBlY2hvICIkYWNf
dCIiJGFjX2N2X29zX2NyYXkiIDE+JjYNCiBpZiB0ZXN0ICRhY19jdl9vc19j
cmF5ID0geWVzOyB0aGVuDQogZm9yIGFjX2Z1bmMgaW4gX2dldGI2NyBHRVRC
NjcgZ2V0YjY3OyBkbw0KICAgZWNobyAkYWNfbiAiY2hlY2tpbmcgZm9yICRh
Y19mdW5jIiIuLi4gJGFjX2MiIDE+JjYNCi1lY2hvICJjb25maWd1cmU6MTYx
NzogY2hlY2tpbmcgZm9yICRhY19mdW5jIiA+JjUNCitlY2hvICJjb25maWd1
cmU6MTYwNjogY2hlY2tpbmcgZm9yICRhY19mdW5jIiA+JjUNCiBpZiBldmFs
ICJ0ZXN0IFwiYGVjaG8gJyQnJ3snYWNfY3ZfZnVuY18kYWNfZnVuYycrc2V0
fSdgXCIgPSBzZXQiOyB0aGVuDQogICBlY2hvICRhY19uICIoY2FjaGVkKSAk
YWNfYyIgMT4mNg0KIGVsc2UNCiAgIGNhdCA+IGNvbmZ0ZXN0LiRhY19leHQg
PDxFT0YNCi0jbGluZSAxNjIyICJjb25maWd1cmUiDQorI2xpbmUgMTYxMSAi
Y29uZmlndXJlIg0KICNpbmNsdWRlICJjb25mZGVmcy5oIg0KIC8qIFN5c3Rl
bSBoZWFkZXIgdG8gZGVmaW5lIF9fc3R1YiBtYWNyb3MgYW5kIGhvcGVmdWxs
eSBmZXcgcHJvdG90eXBlcywNCiAgICAgd2hpY2ggY2FuIGNvbmZsaWN0IHdp
dGggY2hhciAkYWNfZnVuYygpOyBiZWxvdy4gICovDQpAQCAtMTY0MSw3ICsx
NjMwLDcgQEAgJGFjX2Z1bmMoKTsNCiANCiA7IHJldHVybiAwOyB9DQogRU9G
DQotaWYgeyAoZXZhbCBlY2hvIGNvbmZpZ3VyZToxNjQ1OiBcIiRhY19saW5r
XCIpIDE+JjU7IChldmFsICRhY19saW5rKSAyPiY1OyB9ICYmIHRlc3QgLXMg
Y29uZnRlc3Qke2FjX2V4ZWV4dH07IHRoZW4NCitpZiB7IChldmFsIGVjaG8g
Y29uZmlndXJlOjE2MzQ6IFwiJGFjX2xpbmtcIikgMT4mNTsgKGV2YWwgJGFj
X2xpbmspIDI+JjU7IH0gJiYgdGVzdCAtcyBjb25mdGVzdCR7YWNfZXhlZXh0
fTsgdGhlbg0KICAgcm0gLXJmIGNvbmZ0ZXN0Kg0KICAgZXZhbCAiYWNfY3Zf
ZnVuY18kYWNfZnVuYz15ZXMiDQogZWxzZQ0KQEAgLTE2NjgsNyArMTY1Nyw3
IEBAIGRvbmUNCiBmaQ0KIA0KIGVjaG8gJGFjX24gImNoZWNraW5nIHN0YWNr
IGRpcmVjdGlvbiBmb3IgQyBhbGxvY2EiIi4uLiAkYWNfYyIgMT4mNg0KLWVj
aG8gImNvbmZpZ3VyZToxNjcyOiBjaGVja2luZyBzdGFjayBkaXJlY3Rpb24g
Zm9yIEMgYWxsb2NhIiA+JjUNCitlY2hvICJjb25maWd1cmU6MTY2MTogY2hl
Y2tpbmcgc3RhY2sgZGlyZWN0aW9uIGZvciBDIGFsbG9jYSIgPiY1DQogaWYg
ZXZhbCAidGVzdCBcImBlY2hvICckJyd7J2FjX2N2X2Nfc3RhY2tfZGlyZWN0
aW9uJytzZXR9J2BcIiA9IHNldCI7IHRoZW4NCiAgIGVjaG8gJGFjX24gIihj
YWNoZWQpICRhY19jIiAxPiY2DQogZWxzZQ0KQEAgLTE2NzYsNyArMTY2NSw3
IEBAIGVsc2UNCiAgIGFjX2N2X2Nfc3RhY2tfZGlyZWN0aW9uPTANCiBlbHNl
DQogICBjYXQgPiBjb25mdGVzdC4kYWNfZXh0IDw8RU9GDQotI2xpbmUgMTY4
MCAiY29uZmlndXJlIg0KKyNsaW5lIDE2NjkgImNvbmZpZ3VyZSINCiAjaW5j
bHVkZSAiY29uZmRlZnMuaCINCiBmaW5kX3N0YWNrX2RpcmVjdGlvbiAoKQ0K
IHsNCkBAIC0xNjk1LDcgKzE2ODQsNyBAQCBtYWluICgpDQogICBleGl0IChm
aW5kX3N0YWNrX2RpcmVjdGlvbigpIDwgMCk7DQogfQ0KIEVPRg0KLWlmIHsg
KGV2YWwgZWNobyBjb25maWd1cmU6MTY5OTogXCIkYWNfbGlua1wiKSAxPiY1
OyAoZXZhbCAkYWNfbGluaykgMj4mNTsgfSAmJiB0ZXN0IC1zIGNvbmZ0ZXN0
JHthY19leGVleHR9ICYmICguL2NvbmZ0ZXN0OyBleGl0KSAyPi9kZXYvbnVs
bA0KK2lmIHsgKGV2YWwgZWNobyBjb25maWd1cmU6MTY4ODogXCIkYWNfbGlu
a1wiKSAxPiY1OyAoZXZhbCAkYWNfbGluaykgMj4mNTsgfSAmJiB0ZXN0IC1z
IGNvbmZ0ZXN0JHthY19leGVleHR9ICYmICguL2NvbmZ0ZXN0OyBleGl0KSAy
Pi9kZXYvbnVsbA0KIHRoZW4NCiAgIGFjX2N2X2Nfc3RhY2tfZGlyZWN0aW9u
PTENCiBlbHNlDQpAQCAtMTcyMCwxNyArMTcwOSwxNyBAQCBmb3IgYWNfaGRy
IGluIHVuaXN0ZC5oDQogZG8NCiBhY19zYWZlPWBlY2hvICIkYWNfaGRyIiB8
IHNlZCAneSUuLystJV9fcF8lJ2ANCiBlY2hvICRhY19uICJjaGVja2luZyBm
b3IgJGFjX2hkciIiLi4uICRhY19jIiAxPiY2DQotZWNobyAiY29uZmlndXJl
OjE3MjQ6IGNoZWNraW5nIGZvciAkYWNfaGRyIiA+JjUNCitlY2hvICJjb25m
aWd1cmU6MTcxMzogY2hlY2tpbmcgZm9yICRhY19oZHIiID4mNQ0KIGlmIGV2
YWwgInRlc3QgXCJgZWNobyAnJCcneydhY19jdl9oZWFkZXJfJGFjX3NhZmUn
K3NldH0nYFwiID0gc2V0IjsgdGhlbg0KICAgZWNobyAkYWNfbiAiKGNhY2hl
ZCkgJGFjX2MiIDE+JjYNCiBlbHNlDQogICBjYXQgPiBjb25mdGVzdC4kYWNf
ZXh0IDw8RU9GDQotI2xpbmUgMTcyOSAiY29uZmlndXJlIg0KKyNsaW5lIDE3
MTggImNvbmZpZ3VyZSINCiAjaW5jbHVkZSAiY29uZmRlZnMuaCINCiAjaW5j
bHVkZSA8JGFjX2hkcj4NCiBFT0YNCiBhY190cnk9IiRhY19jcHAgY29uZnRl
c3QuJGFjX2V4dCA+L2Rldi9udWxsIDI+Y29uZnRlc3Qub3V0Ig0KLXsgKGV2
YWwgZWNobyBjb25maWd1cmU6MTczNDogXCIkYWNfdHJ5XCIpIDE+JjU7IChl
dmFsICRhY190cnkpIDI+JjU7IH0NCit7IChldmFsIGVjaG8gY29uZmlndXJl
OjE3MjM6IFwiJGFjX3RyeVwiKSAxPiY1OyAoZXZhbCAkYWNfdHJ5KSAyPiY1
OyB9DQogYWNfZXJyPWBncmVwIC12ICdeICorJyBjb25mdGVzdC5vdXQgfCBn
cmVwIC12ICJeY29uZnRlc3QuJHthY19leHR9XCQiYA0KIGlmIHRlc3QgLXog
IiRhY19lcnIiOyB0aGVuDQogICBybSAtcmYgY29uZnRlc3QqDQpAQCAtMTc1
OSwxMiArMTc0OCwxMiBAQCBkb25lDQogZm9yIGFjX2Z1bmMgaW4gZ2V0cGFn
ZXNpemUNCiBkbw0KIGVjaG8gJGFjX24gImNoZWNraW5nIGZvciAkYWNfZnVu
YyIiLi4uICRhY19jIiAxPiY2DQotZWNobyAiY29uZmlndXJlOjE3NjM6IGNo
ZWNraW5nIGZvciAkYWNfZnVuYyIgPiY1DQorZWNobyAiY29uZmlndXJlOjE3
NTI6IGNoZWNraW5nIGZvciAkYWNfZnVuYyIgPiY1DQogaWYgZXZhbCAidGVz
dCBcImBlY2hvICckJyd7J2FjX2N2X2Z1bmNfJGFjX2Z1bmMnK3NldH0nYFwi
ID0gc2V0IjsgdGhlbg0KICAgZWNobyAkYWNfbiAiKGNhY2hlZCkgJGFjX2Mi
IDE+JjYNCiBlbHNlDQogICBjYXQgPiBjb25mdGVzdC4kYWNfZXh0IDw8RU9G
DQotI2xpbmUgMTc2OCAiY29uZmlndXJlIg0KKyNsaW5lIDE3NTcgImNvbmZp
Z3VyZSINCiAjaW5jbHVkZSAiY29uZmRlZnMuaCINCiAvKiBTeXN0ZW0gaGVh
ZGVyIHRvIGRlZmluZSBfX3N0dWIgbWFjcm9zIGFuZCBob3BlZnVsbHkgZmV3
IHByb3RvdHlwZXMsDQogICAgIHdoaWNoIGNhbiBjb25mbGljdCB3aXRoIGNo
YXIgJGFjX2Z1bmMoKTsgYmVsb3cuICAqLw0KQEAgLTE3ODcsNyArMTc3Niw3
IEBAICRhY19mdW5jKCk7DQogDQogOyByZXR1cm4gMDsgfQ0KIEVPRg0KLWlm
IHsgKGV2YWwgZWNobyBjb25maWd1cmU6MTc5MTogXCIkYWNfbGlua1wiKSAx
PiY1OyAoZXZhbCAkYWNfbGluaykgMj4mNTsgfSAmJiB0ZXN0IC1zIGNvbmZ0
ZXN0JHthY19leGVleHR9OyB0aGVuDQoraWYgeyAoZXZhbCBlY2hvIGNvbmZp
Z3VyZToxNzgwOiBcIiRhY19saW5rXCIpIDE+JjU7IChldmFsICRhY19saW5r
KSAyPiY1OyB9ICYmIHRlc3QgLXMgY29uZnRlc3Qke2FjX2V4ZWV4dH07IHRo
ZW4NCiAgIHJtIC1yZiBjb25mdGVzdCoNCiAgIGV2YWwgImFjX2N2X2Z1bmNf
JGFjX2Z1bmM9eWVzIg0KIGVsc2UNCkBAIC0xODEyLDcgKzE4MDEsNyBAQCBm
aQ0KIGRvbmUNCiANCiBlY2hvICRhY19uICJjaGVja2luZyBmb3Igd29ya2lu
ZyBtbWFwIiIuLi4gJGFjX2MiIDE+JjYNCi1lY2hvICJjb25maWd1cmU6MTgx
NjogY2hlY2tpbmcgZm9yIHdvcmtpbmcgbW1hcCIgPiY1DQorZWNobyAiY29u
ZmlndXJlOjE4MDU6IGNoZWNraW5nIGZvciB3b3JraW5nIG1tYXAiID4mNQ0K
IGlmIGV2YWwgInRlc3QgXCJgZWNobyAnJCcneydhY19jdl9mdW5jX21tYXBf
Zml4ZWRfbWFwcGVkJytzZXR9J2BcIiA9IHNldCI7IHRoZW4NCiAgIGVjaG8g
JGFjX24gIihjYWNoZWQpICRhY19jIiAxPiY2DQogZWxzZQ0KQEAgLTE4MjAs
NyArMTgwOSw3IEBAIGVsc2UNCiAgIGFjX2N2X2Z1bmNfbW1hcF9maXhlZF9t
YXBwZWQ9bm8NCiBlbHNlDQogICBjYXQgPiBjb25mdGVzdC4kYWNfZXh0IDw8
RU9GDQotI2xpbmUgMTgyNCAiY29uZmlndXJlIg0KKyNsaW5lIDE4MTMgImNv
bmZpZ3VyZSINCiAjaW5jbHVkZSAiY29uZmRlZnMuaCINCiANCiAvKiBUaGFu
a3MgdG8gTWlrZSBIYWVydGVsIGFuZCBKaW0gQXZlcmEgZm9yIHRoaXMgdGVz
dC4NCkBAIC0xOTYwLDcgKzE5NDksNyBAQCBtYWluKCkNCiB9DQogDQogRU9G
DQotaWYgeyAoZXZhbCBlY2hvIGNvbmZpZ3VyZToxOTY0OiBcIiRhY19saW5r
XCIpIDE+JjU7IChldmFsICRhY19saW5rKSAyPiY1OyB9ICYmIHRlc3QgLXMg
Y29uZnRlc3Qke2FjX2V4ZWV4dH0gJiYgKC4vY29uZnRlc3Q7IGV4aXQpIDI+
L2Rldi9udWxsDQoraWYgeyAoZXZhbCBlY2hvIGNvbmZpZ3VyZToxOTUzOiBc
IiRhY19saW5rXCIpIDE+JjU7IChldmFsICRhY19saW5rKSAyPiY1OyB9ICYm
IHRlc3QgLXMgY29uZnRlc3Qke2FjX2V4ZWV4dH0gJiYgKC4vY29uZnRlc3Q7
IGV4aXQpIDI+L2Rldi9udWxsDQogdGhlbg0KICAgYWNfY3ZfZnVuY19tbWFw
X2ZpeGVkX21hcHBlZD15ZXMNCiBlbHNlDQpAQCAtMTk4OCwxNyArMTk3Nywx
NyBAQCB1bmlzdGQuaCB2YWx1ZXMuaCBzeXMvcGFyYW0uaA0KIGRvDQogYWNf
c2FmZT1gZWNobyAiJGFjX2hkciIgfCBzZWQgJ3klLi8rLSVfX3BfJSdgDQog
ZWNobyAkYWNfbiAiY2hlY2tpbmcgZm9yICRhY19oZHIiIi4uLiAkYWNfYyIg
MT4mNg0KLWVjaG8gImNvbmZpZ3VyZToxOTkyOiBjaGVja2luZyBmb3IgJGFj
X2hkciIgPiY1DQorZWNobyAiY29uZmlndXJlOjE5ODE6IGNoZWNraW5nIGZv
ciAkYWNfaGRyIiA+JjUNCiBpZiBldmFsICJ0ZXN0IFwiYGVjaG8gJyQnJ3sn
YWNfY3ZfaGVhZGVyXyRhY19zYWZlJytzZXR9J2BcIiA9IHNldCI7IHRoZW4N
CiAgIGVjaG8gJGFjX24gIihjYWNoZWQpICRhY19jIiAxPiY2DQogZWxzZQ0K
ICAgY2F0ID4gY29uZnRlc3QuJGFjX2V4dCA8PEVPRg0KLSNsaW5lIDE5OTcg
ImNvbmZpZ3VyZSINCisjbGluZSAxOTg2ICJjb25maWd1cmUiDQogI2luY2x1
ZGUgImNvbmZkZWZzLmgiDQogI2luY2x1ZGUgPCRhY19oZHI+DQogRU9GDQog
YWNfdHJ5PSIkYWNfY3BwIGNvbmZ0ZXN0LiRhY19leHQgPi9kZXYvbnVsbCAy
PmNvbmZ0ZXN0Lm91dCINCi17IChldmFsIGVjaG8gY29uZmlndXJlOjIwMDI6
IFwiJGFjX3RyeVwiKSAxPiY1OyAoZXZhbCAkYWNfdHJ5KSAyPiY1OyB9DQor
eyAoZXZhbCBlY2hvIGNvbmZpZ3VyZToxOTkxOiBcIiRhY190cnlcIikgMT4m
NTsgKGV2YWwgJGFjX3RyeSkgMj4mNTsgfQ0KIGFjX2Vycj1gZ3JlcCAtdiAn
XiAqKycgY29uZnRlc3Qub3V0IHwgZ3JlcCAtdiAiXmNvbmZ0ZXN0LiR7YWNf
ZXh0fVwkImANCiBpZiB0ZXN0IC16ICIkYWNfZXJyIjsgdGhlbg0KICAgcm0g
LXJmIGNvbmZ0ZXN0Kg0KQEAgLTIwMjgsMTIgKzIwMTcsMTIgQEAgZG9uZQ0K
IF9fYXJnel9jb3VudCBfX2FyZ3pfc3RyaW5naWZ5IF9fYXJnel9uZXh0DQog
ZG8NCiBlY2hvICRhY19uICJjaGVja2luZyBmb3IgJGFjX2Z1bmMiIi4uLiAk
YWNfYyIgMT4mNg0KLWVjaG8gImNvbmZpZ3VyZToyMDMyOiBjaGVja2luZyBm
b3IgJGFjX2Z1bmMiID4mNQ0KK2VjaG8gImNvbmZpZ3VyZToyMDIxOiBjaGVj
a2luZyBmb3IgJGFjX2Z1bmMiID4mNQ0KIGlmIGV2YWwgInRlc3QgXCJgZWNo
byAnJCcneydhY19jdl9mdW5jXyRhY19mdW5jJytzZXR9J2BcIiA9IHNldCI7
IHRoZW4NCiAgIGVjaG8gJGFjX24gIihjYWNoZWQpICRhY19jIiAxPiY2DQog
ZWxzZQ0KICAgY2F0ID4gY29uZnRlc3QuJGFjX2V4dCA8PEVPRg0KLSNsaW5l
IDIwMzcgImNvbmZpZ3VyZSINCisjbGluZSAyMDI2ICJjb25maWd1cmUiDQog
I2luY2x1ZGUgImNvbmZkZWZzLmgiDQogLyogU3lzdGVtIGhlYWRlciB0byBk
ZWZpbmUgX19zdHViIG1hY3JvcyBhbmQgaG9wZWZ1bGx5IGZldyBwcm90b3R5
cGVzLA0KICAgICB3aGljaCBjYW4gY29uZmxpY3Qgd2l0aCBjaGFyICRhY19m
dW5jKCk7IGJlbG93LiAgKi8NCkBAIC0yMDU2LDcgKzIwNDUsNyBAQCAkYWNf
ZnVuYygpOw0KIA0KIDsgcmV0dXJuIDA7IH0NCiBFT0YNCi1pZiB7IChldmFs
IGVjaG8gY29uZmlndXJlOjIwNjA6IFwiJGFjX2xpbmtcIikgMT4mNTsgKGV2
YWwgJGFjX2xpbmspIDI+JjU7IH0gJiYgdGVzdCAtcyBjb25mdGVzdCR7YWNf
ZXhlZXh0fTsgdGhlbg0KK2lmIHsgKGV2YWwgZWNobyBjb25maWd1cmU6MjA0
OTogXCIkYWNfbGlua1wiKSAxPiY1OyAoZXZhbCAkYWNfbGluaykgMj4mNTsg
fSAmJiB0ZXN0IC1zIGNvbmZ0ZXN0JHthY19leGVleHR9OyB0aGVuDQogICBy
bSAtcmYgY29uZnRlc3QqDQogICBldmFsICJhY19jdl9mdW5jXyRhY19mdW5j
PXllcyINCiBlbHNlDQpAQCAtMjA4NSwxMiArMjA3NCwxMiBAQCBkb25lDQog
ICAgICBmb3IgYWNfZnVuYyBpbiBzdHBjcHkNCiBkbw0KIGVjaG8gJGFjX24g
ImNoZWNraW5nIGZvciAkYWNfZnVuYyIiLi4uICRhY19jIiAxPiY2DQotZWNo
byAiY29uZmlndXJlOjIwODk6IGNoZWNraW5nIGZvciAkYWNfZnVuYyIgPiY1
DQorZWNobyAiY29uZmlndXJlOjIwNzg6IGNoZWNraW5nIGZvciAkYWNfZnVu
YyIgPiY1DQogaWYgZXZhbCAidGVzdCBcImBlY2hvICckJyd7J2FjX2N2X2Z1
bmNfJGFjX2Z1bmMnK3NldH0nYFwiID0gc2V0IjsgdGhlbg0KICAgZWNobyAk
YWNfbiAiKGNhY2hlZCkgJGFjX2MiIDE+JjYNCiBlbHNlDQogICBjYXQgPiBj
b25mdGVzdC4kYWNfZXh0IDw8RU9GDQotI2xpbmUgMjA5NCAiY29uZmlndXJl
Ig0KKyNsaW5lIDIwODMgImNvbmZpZ3VyZSINCiAjaW5jbHVkZSAiY29uZmRl
ZnMuaCINCiAvKiBTeXN0ZW0gaGVhZGVyIHRvIGRlZmluZSBfX3N0dWIgbWFj
cm9zIGFuZCBob3BlZnVsbHkgZmV3IHByb3RvdHlwZXMsDQogICAgIHdoaWNo
IGNhbiBjb25mbGljdCB3aXRoIGNoYXIgJGFjX2Z1bmMoKTsgYmVsb3cuICAq
Lw0KQEAgLTIxMTMsNyArMjEwMiw3IEBAICRhY19mdW5jKCk7DQogDQogOyBy
ZXR1cm4gMDsgfQ0KIEVPRg0KLWlmIHsgKGV2YWwgZWNobyBjb25maWd1cmU6
MjExNzogXCIkYWNfbGlua1wiKSAxPiY1OyAoZXZhbCAkYWNfbGluaykgMj4m
NTsgfSAmJiB0ZXN0IC1zIGNvbmZ0ZXN0JHthY19leGVleHR9OyB0aGVuDQor
aWYgeyAoZXZhbCBlY2hvIGNvbmZpZ3VyZToyMTA2OiBcIiRhY19saW5rXCIp
IDE+JjU7IChldmFsICRhY19saW5rKSAyPiY1OyB9ICYmIHRlc3QgLXMgY29u
ZnRlc3Qke2FjX2V4ZWV4dH07IHRoZW4NCiAgIHJtIC1yZiBjb25mdGVzdCoN
CiAgIGV2YWwgImFjX2N2X2Z1bmNfJGFjX2Z1bmM9eWVzIg0KIGVsc2UNCkBA
IC0yMTQ3LDE5ICsyMTM2LDE5IEBAIEVPRg0KIA0KICAgIGlmIHRlc3QgJGFj
X2N2X2hlYWRlcl9sb2NhbGVfaCA9IHllczsgdGhlbg0KICAgICBlY2hvICRh
Y19uICJjaGVja2luZyBmb3IgTENfTUVTU0FHRVMiIi4uLiAkYWNfYyIgMT4m
Ng0KLWVjaG8gImNvbmZpZ3VyZToyMTUxOiBjaGVja2luZyBmb3IgTENfTUVT
U0FHRVMiID4mNQ0KK2VjaG8gImNvbmZpZ3VyZToyMTQwOiBjaGVja2luZyBm
b3IgTENfTUVTU0FHRVMiID4mNQ0KIGlmIGV2YWwgInRlc3QgXCJgZWNobyAn
JCcneydhbV9jdl92YWxfTENfTUVTU0FHRVMnK3NldH0nYFwiID0gc2V0Ijsg
dGhlbg0KICAgZWNobyAkYWNfbiAiKGNhY2hlZCkgJGFjX2MiIDE+JjYNCiBl
bHNlDQogICBjYXQgPiBjb25mdGVzdC4kYWNfZXh0IDw8RU9GDQotI2xpbmUg
MjE1NiAiY29uZmlndXJlIg0KKyNsaW5lIDIxNDUgImNvbmZpZ3VyZSINCiAj
aW5jbHVkZSAiY29uZmRlZnMuaCINCiAjaW5jbHVkZSA8bG9jYWxlLmg+DQog
aW50IG1haW4oKSB7DQogcmV0dXJuIExDX01FU1NBR0VTDQogOyByZXR1cm4g
MDsgfQ0KIEVPRg0KLWlmIHsgKGV2YWwgZWNobyBjb25maWd1cmU6MjE2Mzog
XCIkYWNfbGlua1wiKSAxPiY1OyAoZXZhbCAkYWNfbGluaykgMj4mNTsgfSAm
JiB0ZXN0IC1zIGNvbmZ0ZXN0JHthY19leGVleHR9OyB0aGVuDQoraWYgeyAo
ZXZhbCBlY2hvIGNvbmZpZ3VyZToyMTUyOiBcIiRhY19saW5rXCIpIDE+JjU7
IChldmFsICRhY19saW5rKSAyPiY1OyB9ICYmIHRlc3QgLXMgY29uZnRlc3Qk
e2FjX2V4ZWV4dH07IHRoZW4NCiAgIHJtIC1yZiBjb25mdGVzdCoNCiAgIGFt
X2N2X3ZhbF9MQ19NRVNTQUdFUz15ZXMNCiBlbHNlDQpAQCAtMjE4MCw3ICsy
MTY5LDcgQEAgRU9GDQogICAgIGZpDQogICBmaQ0KICAgIGVjaG8gJGFjX24g
ImNoZWNraW5nIHdoZXRoZXIgTkxTIGlzIHJlcXVlc3RlZCIiLi4uICRhY19j
IiAxPiY2DQotZWNobyAiY29uZmlndXJlOjIxODQ6IGNoZWNraW5nIHdoZXRo
ZXIgTkxTIGlzIHJlcXVlc3RlZCIgPiY1DQorZWNobyAiY29uZmlndXJlOjIx
NzM6IGNoZWNraW5nIHdoZXRoZXIgTkxTIGlzIHJlcXVlc3RlZCIgPiY1DQog
ICAgICAgICAjIENoZWNrIHdoZXRoZXIgLS1lbmFibGUtbmxzIG9yIC0tZGlz
YWJsZS1ubHMgd2FzIGdpdmVuLg0KIGlmIHRlc3QgIiR7ZW5hYmxlX25scytz
ZXR9IiA9IHNldDsgdGhlbg0KICAgZW5hYmxldmFsPSIkZW5hYmxlX25scyIN
CkBAIC0yMjAwLDcgKzIxODksNyBAQCBmaQ0KIEVPRg0KIA0KICAgICAgIGVj
aG8gJGFjX24gImNoZWNraW5nIHdoZXRoZXIgaW5jbHVkZWQgZ2V0dGV4dCBp
cyByZXF1ZXN0ZWQiIi4uLiAkYWNfYyIgMT4mNg0KLWVjaG8gImNvbmZpZ3Vy
ZToyMjA0OiBjaGVja2luZyB3aGV0aGVyIGluY2x1ZGVkIGdldHRleHQgaXMg
cmVxdWVzdGVkIiA+JjUNCitlY2hvICJjb25maWd1cmU6MjE5MzogY2hlY2tp
bmcgd2hldGhlciBpbmNsdWRlZCBnZXR0ZXh0IGlzIHJlcXVlc3RlZCIgPiY1
DQogICAgICAgIyBDaGVjayB3aGV0aGVyIC0td2l0aC1pbmNsdWRlZC1nZXR0
ZXh0IG9yIC0td2l0aG91dC1pbmNsdWRlZC1nZXR0ZXh0IHdhcyBnaXZlbi4N
CiBpZiB0ZXN0ICIke3dpdGhfaW5jbHVkZWRfZ2V0dGV4dCtzZXR9IiA9IHNl
dDsgdGhlbg0KICAgd2l0aHZhbD0iJHdpdGhfaW5jbHVkZWRfZ2V0dGV4dCIN
CkBAIC0yMjE5LDE3ICsyMjA4LDE3IEBAIGZpDQogDQogCWFjX3NhZmU9YGVj
aG8gImxpYmludGwuaCIgfCBzZWQgJ3klLi8rLSVfX3BfJSdgDQogZWNobyAk
YWNfbiAiY2hlY2tpbmcgZm9yIGxpYmludGwuaCIiLi4uICRhY19jIiAxPiY2
DQotZWNobyAiY29uZmlndXJlOjIyMjM6IGNoZWNraW5nIGZvciBsaWJpbnRs
LmgiID4mNQ0KK2VjaG8gImNvbmZpZ3VyZToyMjEyOiBjaGVja2luZyBmb3Ig
bGliaW50bC5oIiA+JjUNCiBpZiBldmFsICJ0ZXN0IFwiYGVjaG8gJyQnJ3sn
YWNfY3ZfaGVhZGVyXyRhY19zYWZlJytzZXR9J2BcIiA9IHNldCI7IHRoZW4N
CiAgIGVjaG8gJGFjX24gIihjYWNoZWQpICRhY19jIiAxPiY2DQogZWxzZQ0K
ICAgY2F0ID4gY29uZnRlc3QuJGFjX2V4dCA8PEVPRg0KLSNsaW5lIDIyMjgg
ImNvbmZpZ3VyZSINCisjbGluZSAyMjE3ICJjb25maWd1cmUiDQogI2luY2x1
ZGUgImNvbmZkZWZzLmgiDQogI2luY2x1ZGUgPGxpYmludGwuaD4NCiBFT0YN
CiBhY190cnk9IiRhY19jcHAgY29uZnRlc3QuJGFjX2V4dCA+L2Rldi9udWxs
IDI+Y29uZnRlc3Qub3V0Ig0KLXsgKGV2YWwgZWNobyBjb25maWd1cmU6MjIz
MzogXCIkYWNfdHJ5XCIpIDE+JjU7IChldmFsICRhY190cnkpIDI+JjU7IH0N
Cit7IChldmFsIGVjaG8gY29uZmlndXJlOjIyMjI6IFwiJGFjX3RyeVwiKSAx
PiY1OyAoZXZhbCAkYWNfdHJ5KSAyPiY1OyB9DQogYWNfZXJyPWBncmVwIC12
ICdeICorJyBjb25mdGVzdC5vdXQgfCBncmVwIC12ICJeY29uZnRlc3QuJHth
Y19leHR9XCQiYA0KIGlmIHRlc3QgLXogIiRhY19lcnIiOyB0aGVuDQogICBy
bSAtcmYgY29uZnRlc3QqDQpAQCAtMjI0NiwxOSArMjIzNSwxOSBAQCBmaQ0K
IGlmIGV2YWwgInRlc3QgXCJgZWNobyAnJGFjX2N2X2hlYWRlcl8nJGFjX3Nh
ZmVgXCIgPSB5ZXMiOyB0aGVuDQogICBlY2hvICIkYWNfdCIieWVzIiAxPiY2
DQogICBlY2hvICRhY19uICJjaGVja2luZyBmb3IgZ2V0dGV4dCBpbiBsaWJj
IiIuLi4gJGFjX2MiIDE+JjYNCi1lY2hvICJjb25maWd1cmU6MjI1MDogY2hl
Y2tpbmcgZm9yIGdldHRleHQgaW4gbGliYyIgPiY1DQorZWNobyAiY29uZmln
dXJlOjIyMzk6IGNoZWNraW5nIGZvciBnZXR0ZXh0IGluIGxpYmMiID4mNQ0K
IGlmIGV2YWwgInRlc3QgXCJgZWNobyAnJCcneydndF9jdl9mdW5jX2dldHRl
eHRfbGliYycrc2V0fSdgXCIgPSBzZXQiOyB0aGVuDQogICBlY2hvICRhY19u
ICIoY2FjaGVkKSAkYWNfYyIgMT4mNg0KIGVsc2UNCiAgIGNhdCA+IGNvbmZ0
ZXN0LiRhY19leHQgPDxFT0YNCi0jbGluZSAyMjU1ICJjb25maWd1cmUiDQor
I2xpbmUgMjI0NCAiY29uZmlndXJlIg0KICNpbmNsdWRlICJjb25mZGVmcy5o
Ig0KICNpbmNsdWRlIDxsaWJpbnRsLmg+DQogaW50IG1haW4oKSB7DQogcmV0
dXJuIChpbnQpIGdldHRleHQgKCIiKQ0KIDsgcmV0dXJuIDA7IH0NCiBFT0YN
Ci1pZiB7IChldmFsIGVjaG8gY29uZmlndXJlOjIyNjI6IFwiJGFjX2xpbmtc
IikgMT4mNTsgKGV2YWwgJGFjX2xpbmspIDI+JjU7IH0gJiYgdGVzdCAtcyBj
b25mdGVzdCR7YWNfZXhlZXh0fTsgdGhlbg0KK2lmIHsgKGV2YWwgZWNobyBj
b25maWd1cmU6MjI1MTogXCIkYWNfbGlua1wiKSAxPiY1OyAoZXZhbCAkYWNf
bGluaykgMj4mNTsgfSAmJiB0ZXN0IC1zIGNvbmZ0ZXN0JHthY19leGVleHR9
OyB0aGVuDQogICBybSAtcmYgY29uZnRlc3QqDQogICBndF9jdl9mdW5jX2dl
dHRleHRfbGliYz15ZXMNCiBlbHNlDQpAQCAtMjI3NCw3ICsyMjYzLDcgQEAg
ZWNobyAiJGFjX3QiIiRndF9jdl9mdW5jX2dldHRleHRfbGliYyIgMQ0KIA0K
IAkgICBpZiB0ZXN0ICIkZ3RfY3ZfZnVuY19nZXR0ZXh0X2xpYmMiICE9ICJ5
ZXMiOyB0aGVuDQogCSAgICAgZWNobyAkYWNfbiAiY2hlY2tpbmcgZm9yIGJp
bmR0ZXh0ZG9tYWluIGluIC1saW50bCIiLi4uICRhY19jIiAxPiY2DQotZWNo
byAiY29uZmlndXJlOjIyNzg6IGNoZWNraW5nIGZvciBiaW5kdGV4dGRvbWFp
biBpbiAtbGludGwiID4mNQ0KK2VjaG8gImNvbmZpZ3VyZToyMjY3OiBjaGVj
a2luZyBmb3IgYmluZHRleHRkb21haW4gaW4gLWxpbnRsIiA+JjUNCiBhY19s
aWJfdmFyPWBlY2hvIGludGwnXydiaW5kdGV4dGRvbWFpbiB8IHNlZCAneSUu
LystJV9fcF8lJ2ANCiBpZiBldmFsICJ0ZXN0IFwiYGVjaG8gJyQnJ3snYWNf
Y3ZfbGliXyRhY19saWJfdmFyJytzZXR9J2BcIiA9IHNldCI7IHRoZW4NCiAg
IGVjaG8gJGFjX24gIihjYWNoZWQpICRhY19jIiAxPiY2DQpAQCAtMjI4Miw3
ICsyMjcxLDcgQEAgZWxzZQ0KICAgYWNfc2F2ZV9MSUJTPSIkTElCUyINCiBM
SUJTPSItbGludGwgICRMSUJTIg0KIGNhdCA+IGNvbmZ0ZXN0LiRhY19leHQg
PDxFT0YNCi0jbGluZSAyMjg2ICJjb25maWd1cmUiDQorI2xpbmUgMjI3NSAi
Y29uZmlndXJlIg0KICNpbmNsdWRlICJjb25mZGVmcy5oIg0KIC8qIE92ZXJy
aWRlIGFueSBnY2MyIGludGVybmFsIHByb3RvdHlwZSB0byBhdm9pZCBhbiBl
cnJvci4gICovDQogLyogV2UgdXNlIGNoYXIgYmVjYXVzZSBpbnQgbWlnaHQg
bWF0Y2ggdGhlIHJldHVybiB0eXBlIG9mIGEgZ2NjMg0KQEAgLTIyOTMsNyAr
MjI4Miw3IEBAIGludCBtYWluKCkgew0KIGJpbmR0ZXh0ZG9tYWluKCkNCiA7
IHJldHVybiAwOyB9DQogRU9GDQotaWYgeyAoZXZhbCBlY2hvIGNvbmZpZ3Vy
ZToyMjk3OiBcIiRhY19saW5rXCIpIDE+JjU7IChldmFsICRhY19saW5rKSAy
PiY1OyB9ICYmIHRlc3QgLXMgY29uZnRlc3Qke2FjX2V4ZWV4dH07IHRoZW4N
CitpZiB7IChldmFsIGVjaG8gY29uZmlndXJlOjIyODY6IFwiJGFjX2xpbmtc
IikgMT4mNTsgKGV2YWwgJGFjX2xpbmspIDI+JjU7IH0gJiYgdGVzdCAtcyBj
b25mdGVzdCR7YWNfZXhlZXh0fTsgdGhlbg0KICAgcm0gLXJmIGNvbmZ0ZXN0
Kg0KICAgZXZhbCAiYWNfY3ZfbGliXyRhY19saWJfdmFyPXllcyINCiBlbHNl
DQpAQCAtMjMwOSwxOSArMjI5OCwxOSBAQCBmaQ0KIGlmIGV2YWwgInRlc3Qg
XCJgZWNobyAnJGFjX2N2X2xpYl8nJGFjX2xpYl92YXJgXCIgPSB5ZXMiOyB0
aGVuDQogICBlY2hvICIkYWNfdCIieWVzIiAxPiY2DQogICBlY2hvICRhY19u
ICJjaGVja2luZyBmb3IgZ2V0dGV4dCBpbiBsaWJpbnRsIiIuLi4gJGFjX2Mi
IDE+JjYNCi1lY2hvICJjb25maWd1cmU6MjMxMzogY2hlY2tpbmcgZm9yIGdl
dHRleHQgaW4gbGliaW50bCIgPiY1DQorZWNobyAiY29uZmlndXJlOjIzMDI6
IGNoZWNraW5nIGZvciBnZXR0ZXh0IGluIGxpYmludGwiID4mNQ0KIGlmIGV2
YWwgInRlc3QgXCJgZWNobyAnJCcneydndF9jdl9mdW5jX2dldHRleHRfbGli
aW50bCcrc2V0fSdgXCIgPSBzZXQiOyB0aGVuDQogICBlY2hvICRhY19uICIo
Y2FjaGVkKSAkYWNfYyIgMT4mNg0KIGVsc2UNCiAgIGNhdCA+IGNvbmZ0ZXN0
LiRhY19leHQgPDxFT0YNCi0jbGluZSAyMzE4ICJjb25maWd1cmUiDQorI2xp
bmUgMjMwNyAiY29uZmlndXJlIg0KICNpbmNsdWRlICJjb25mZGVmcy5oIg0K
IA0KIGludCBtYWluKCkgew0KIHJldHVybiAoaW50KSBnZXR0ZXh0ICgiIikN
CiA7IHJldHVybiAwOyB9DQogRU9GDQotaWYgeyAoZXZhbCBlY2hvIGNvbmZp
Z3VyZToyMzI1OiBcIiRhY19saW5rXCIpIDE+JjU7IChldmFsICRhY19saW5r
KSAyPiY1OyB9ICYmIHRlc3QgLXMgY29uZnRlc3Qke2FjX2V4ZWV4dH07IHRo
ZW4NCitpZiB7IChldmFsIGVjaG8gY29uZmlndXJlOjIzMTQ6IFwiJGFjX2xp
bmtcIikgMT4mNTsgKGV2YWwgJGFjX2xpbmspIDI+JjU7IH0gJiYgdGVzdCAt
cyBjb25mdGVzdCR7YWNfZXhlZXh0fTsgdGhlbg0KICAgcm0gLXJmIGNvbmZ0
ZXN0Kg0KICAgZ3RfY3ZfZnVuY19nZXR0ZXh0X2xpYmludGw9eWVzDQogZWxz
ZQ0KQEAgLTIzNDksNyArMjMzOCw3IEBAIEVPRg0KIAkgICAgICAjIEV4dHJh
Y3QgdGhlIGZpcnN0IHdvcmQgb2YgIm1zZ2ZtdCIsIHNvIGl0IGNhbiBiZSBh
IHByb2dyYW0gbmFtZSB3aXRoIGFyZ3MuDQogc2V0IGR1bW15IG1zZ2ZtdDsg
YWNfd29yZD0kMg0KIGVjaG8gJGFjX24gImNoZWNraW5nIGZvciAkYWNfd29y
ZCIiLi4uICRhY19jIiAxPiY2DQotZWNobyAiY29uZmlndXJlOjIzNTM6IGNo
ZWNraW5nIGZvciAkYWNfd29yZCIgPiY1DQorZWNobyAiY29uZmlndXJlOjIz
NDI6IGNoZWNraW5nIGZvciAkYWNfd29yZCIgPiY1DQogaWYgZXZhbCAidGVz
dCBcImBlY2hvICckJyd7J2FjX2N2X3BhdGhfTVNHRk1UJytzZXR9J2BcIiA9
IHNldCI7IHRoZW4NCiAgIGVjaG8gJGFjX24gIihjYWNoZWQpICRhY19jIiAx
PiY2DQogZWxzZQ0KQEAgLTIzODMsMTIgKzIzNzIsMTIgQEAgZmkNCiAJCWZv
ciBhY19mdW5jIGluIGRjZ2V0dGV4dA0KIGRvDQogZWNobyAkYWNfbiAiY2hl
Y2tpbmcgZm9yICRhY19mdW5jIiIuLi4gJGFjX2MiIDE+JjYNCi1lY2hvICJj
b25maWd1cmU6MjM4NzogY2hlY2tpbmcgZm9yICRhY19mdW5jIiA+JjUNCitl
Y2hvICJjb25maWd1cmU6MjM3NjogY2hlY2tpbmcgZm9yICRhY19mdW5jIiA+
JjUNCiBpZiBldmFsICJ0ZXN0IFwiYGVjaG8gJyQnJ3snYWNfY3ZfZnVuY18k
YWNfZnVuYycrc2V0fSdgXCIgPSBzZXQiOyB0aGVuDQogICBlY2hvICRhY19u
ICIoY2FjaGVkKSAkYWNfYyIgMT4mNg0KIGVsc2UNCiAgIGNhdCA+IGNvbmZ0
ZXN0LiRhY19leHQgPDxFT0YNCi0jbGluZSAyMzkyICJjb25maWd1cmUiDQor
I2xpbmUgMjM4MSAiY29uZmlndXJlIg0KICNpbmNsdWRlICJjb25mZGVmcy5o
Ig0KIC8qIFN5c3RlbSBoZWFkZXIgdG8gZGVmaW5lIF9fc3R1YiBtYWNyb3Mg
YW5kIGhvcGVmdWxseSBmZXcgcHJvdG90eXBlcywNCiAgICAgd2hpY2ggY2Fu
IGNvbmZsaWN0IHdpdGggY2hhciAkYWNfZnVuYygpOyBiZWxvdy4gICovDQpA
QCAtMjQxMSw3ICsyNDAwLDcgQEAgJGFjX2Z1bmMoKTsNCiANCiA7IHJldHVy
biAwOyB9DQogRU9GDQotaWYgeyAoZXZhbCBlY2hvIGNvbmZpZ3VyZToyNDE1
OiBcIiRhY19saW5rXCIpIDE+JjU7IChldmFsICRhY19saW5rKSAyPiY1OyB9
ICYmIHRlc3QgLXMgY29uZnRlc3Qke2FjX2V4ZWV4dH07IHRoZW4NCitpZiB7
IChldmFsIGVjaG8gY29uZmlndXJlOjI0MDQ6IFwiJGFjX2xpbmtcIikgMT4m
NTsgKGV2YWwgJGFjX2xpbmspIDI+JjU7IH0gJiYgdGVzdCAtcyBjb25mdGVz
dCR7YWNfZXhlZXh0fTsgdGhlbg0KICAgcm0gLXJmIGNvbmZ0ZXN0Kg0KICAg
ZXZhbCAiYWNfY3ZfZnVuY18kYWNfZnVuYz15ZXMiDQogZWxzZQ0KQEAgLTI0
MzgsNyArMjQyNyw3IEBAIGRvbmUNCiAJCSMgRXh0cmFjdCB0aGUgZmlyc3Qg
d29yZCBvZiAiZ21zZ2ZtdCIsIHNvIGl0IGNhbiBiZSBhIHByb2dyYW0gbmFt
ZSB3aXRoIGFyZ3MuDQogc2V0IGR1bW15IGdtc2dmbXQ7IGFjX3dvcmQ9JDIN
CiBlY2hvICRhY19uICJjaGVja2luZyBmb3IgJGFjX3dvcmQiIi4uLiAkYWNf
YyIgMT4mNg0KLWVjaG8gImNvbmZpZ3VyZToyNDQyOiBjaGVja2luZyBmb3Ig
JGFjX3dvcmQiID4mNQ0KK2VjaG8gImNvbmZpZ3VyZToyNDMxOiBjaGVja2lu
ZyBmb3IgJGFjX3dvcmQiID4mNQ0KIGlmIGV2YWwgInRlc3QgXCJgZWNobyAn
JCcneydhY19jdl9wYXRoX0dNU0dGTVQnK3NldH0nYFwiID0gc2V0IjsgdGhl
bg0KICAgZWNobyAkYWNfbiAiKGNhY2hlZCkgJGFjX2MiIDE+JjYNCiBlbHNl
DQpAQCAtMjQ3NCw3ICsyNDYzLDcgQEAgZmkNCiAJCSMgRXh0cmFjdCB0aGUg
Zmlyc3Qgd29yZCBvZiAieGdldHRleHQiLCBzbyBpdCBjYW4gYmUgYSBwcm9n
cmFtIG5hbWUgd2l0aCBhcmdzLg0KIHNldCBkdW1teSB4Z2V0dGV4dDsgYWNf
d29yZD0kMg0KIGVjaG8gJGFjX24gImNoZWNraW5nIGZvciAkYWNfd29yZCIi
Li4uICRhY19jIiAxPiY2DQotZWNobyAiY29uZmlndXJlOjI0Nzg6IGNoZWNr
aW5nIGZvciAkYWNfd29yZCIgPiY1DQorZWNobyAiY29uZmlndXJlOjI0Njc6
IGNoZWNraW5nIGZvciAkYWNfd29yZCIgPiY1DQogaWYgZXZhbCAidGVzdCBc
ImBlY2hvICckJyd7J2FjX2N2X3BhdGhfWEdFVFRFWFQnK3NldH0nYFwiID0g
c2V0IjsgdGhlbg0KICAgZWNobyAkYWNfbiAiKGNhY2hlZCkgJGFjX2MiIDE+
JjYNCiBlbHNlDQpAQCAtMjUwNiw3ICsyNDk1LDcgQEAgZWxzZQ0KIGZpDQog
DQogCQljYXQgPiBjb25mdGVzdC4kYWNfZXh0IDw8RU9GDQotI2xpbmUgMjUx
MCAiY29uZmlndXJlIg0KKyNsaW5lIDI0OTkgImNvbmZpZ3VyZSINCiAjaW5j
bHVkZSAiY29uZmRlZnMuaCINCiANCiBpbnQgbWFpbigpIHsNCkBAIC0yNTE0
LDcgKzI1MDMsNyBAQCBleHRlcm4gaW50IF9ubF9tc2dfY2F0X2NudHI7DQog
CQkJICAgICAgIHJldHVybiBfbmxfbXNnX2NhdF9jbnRyDQogOyByZXR1cm4g
MDsgfQ0KIEVPRg0KLWlmIHsgKGV2YWwgZWNobyBjb25maWd1cmU6MjUxODog
XCIkYWNfbGlua1wiKSAxPiY1OyAoZXZhbCAkYWNfbGluaykgMj4mNTsgfSAm
JiB0ZXN0IC1zIGNvbmZ0ZXN0JHthY19leGVleHR9OyB0aGVuDQoraWYgeyAo
ZXZhbCBlY2hvIGNvbmZpZ3VyZToyNTA3OiBcIiRhY19saW5rXCIpIDE+JjU7
IChldmFsICRhY19saW5rKSAyPiY1OyB9ICYmIHRlc3QgLXMgY29uZnRlc3Qk
e2FjX2V4ZWV4dH07IHRoZW4NCiAgIHJtIC1yZiBjb25mdGVzdCoNCiAgIENB
VE9CSkVYVD0uZ21vDQogCQkgICBEQVRBRElSTkFNRT1zaGFyZQ0KQEAgLTI1
NDYsNyArMjUzNSw3IEBAIGZpDQogICAgICAgICAjIEV4dHJhY3QgdGhlIGZp
cnN0IHdvcmQgb2YgIm1zZ2ZtdCIsIHNvIGl0IGNhbiBiZSBhIHByb2dyYW0g
bmFtZSB3aXRoIGFyZ3MuDQogc2V0IGR1bW15IG1zZ2ZtdDsgYWNfd29yZD0k
Mg0KIGVjaG8gJGFjX24gImNoZWNraW5nIGZvciAkYWNfd29yZCIiLi4uICRh
Y19jIiAxPiY2DQotZWNobyAiY29uZmlndXJlOjI1NTA6IGNoZWNraW5nIGZv
ciAkYWNfd29yZCIgPiY1DQorZWNobyAiY29uZmlndXJlOjI1Mzk6IGNoZWNr
aW5nIGZvciAkYWNfd29yZCIgPiY1DQogaWYgZXZhbCAidGVzdCBcImBlY2hv
ICckJyd7J2FjX2N2X3BhdGhfTVNHRk1UJytzZXR9J2BcIiA9IHNldCI7IHRo
ZW4NCiAgIGVjaG8gJGFjX24gIihjYWNoZWQpICRhY19jIiAxPiY2DQogZWxz
ZQ0KQEAgLTI1ODAsNyArMjU2OSw3IEBAIGZpDQogICAgICAgICAjIEV4dHJh
Y3QgdGhlIGZpcnN0IHdvcmQgb2YgImdtc2dmbXQiLCBzbyBpdCBjYW4gYmUg
YSBwcm9ncmFtIG5hbWUgd2l0aCBhcmdzLg0KIHNldCBkdW1teSBnbXNnZm10
OyBhY193b3JkPSQyDQogZWNobyAkYWNfbiAiY2hlY2tpbmcgZm9yICRhY193
b3JkIiIuLi4gJGFjX2MiIDE+JjYNCi1lY2hvICJjb25maWd1cmU6MjU4NDog
Y2hlY2tpbmcgZm9yICRhY193b3JkIiA+JjUNCitlY2hvICJjb25maWd1cmU6
MjU3MzogY2hlY2tpbmcgZm9yICRhY193b3JkIiA+JjUNCiBpZiBldmFsICJ0
ZXN0IFwiYGVjaG8gJyQnJ3snYWNfY3ZfcGF0aF9HTVNHRk1UJytzZXR9J2Bc
IiA9IHNldCI7IHRoZW4NCiAgIGVjaG8gJGFjX24gIihjYWNoZWQpICRhY19j
IiAxPiY2DQogZWxzZQ0KQEAgLTI2MTYsNyArMjYwNSw3IEBAIGZpDQogICAg
ICAgICAjIEV4dHJhY3QgdGhlIGZpcnN0IHdvcmQgb2YgInhnZXR0ZXh0Iiwg
c28gaXQgY2FuIGJlIGEgcHJvZ3JhbSBuYW1lIHdpdGggYXJncy4NCiBzZXQg
ZHVtbXkgeGdldHRleHQ7IGFjX3dvcmQ9JDINCiBlY2hvICRhY19uICJjaGVj
a2luZyBmb3IgJGFjX3dvcmQiIi4uLiAkYWNfYyIgMT4mNg0KLWVjaG8gImNv
bmZpZ3VyZToyNjIwOiBjaGVja2luZyBmb3IgJGFjX3dvcmQiID4mNQ0KK2Vj
aG8gImNvbmZpZ3VyZToyNjA5OiBjaGVja2luZyBmb3IgJGFjX3dvcmQiID4m
NQ0KIGlmIGV2YWwgInRlc3QgXCJgZWNobyAnJCcneydhY19jdl9wYXRoX1hH
RVRURVhUJytzZXR9J2BcIiA9IHNldCI7IHRoZW4NCiAgIGVjaG8gJGFjX24g
IihjYWNoZWQpICRhY19jIiAxPiY2DQogZWxzZQ0KQEAgLTI3MDYsNyArMjY5
NSw3IEBAIGZpDQogICAgICAgIExJTkdVQVM9DQogICAgICBlbHNlDQogICAg
ICAgIGVjaG8gJGFjX24gImNoZWNraW5nIGZvciBjYXRhbG9ncyB0byBiZSBp
bnN0YWxsZWQiIi4uLiAkYWNfYyIgMT4mNg0KLWVjaG8gImNvbmZpZ3VyZToy
NzEwOiBjaGVja2luZyBmb3IgY2F0YWxvZ3MgdG8gYmUgaW5zdGFsbGVkIiA+
JjUNCitlY2hvICJjb25maWd1cmU6MjY5OTogY2hlY2tpbmcgZm9yIGNhdGFs
b2dzIHRvIGJlIGluc3RhbGxlZCIgPiY1DQogICAgICAgIE5FV19MSU5HVUFT
PQ0KICAgICAgICBmb3IgbGFuZyBpbiAke0xJTkdVQVM9JEFMTF9MSU5HVUFT
fTsgZG8NCiAgICAgICAgICBjYXNlICIkQUxMX0xJTkdVQVMiIGluDQpAQCAt
MjczNCwxNyArMjcyMywxNyBAQCBlY2hvICJjb25maWd1cmU6MjcxMDogY2hl
Y2tpbmcgZm9yIGNhdGFsDQogICAgICAgaWYgdGVzdCAiJENBVE9CSkVYVCIg
PSAiLmNhdCI7IHRoZW4NCiAJIGFjX3NhZmU9YGVjaG8gImxpbnV4L3ZlcnNp
b24uaCIgfCBzZWQgJ3klLi8rLSVfX3BfJSdgDQogZWNobyAkYWNfbiAiY2hl
Y2tpbmcgZm9yIGxpbnV4L3ZlcnNpb24uaCIiLi4uICRhY19jIiAxPiY2DQot
ZWNobyAiY29uZmlndXJlOjI3Mzg6IGNoZWNraW5nIGZvciBsaW51eC92ZXJz
aW9uLmgiID4mNQ0KK2VjaG8gImNvbmZpZ3VyZToyNzI3OiBjaGVja2luZyBm
b3IgbGludXgvdmVyc2lvbi5oIiA+JjUNCiBpZiBldmFsICJ0ZXN0IFwiYGVj
aG8gJyQnJ3snYWNfY3ZfaGVhZGVyXyRhY19zYWZlJytzZXR9J2BcIiA9IHNl
dCI7IHRoZW4NCiAgIGVjaG8gJGFjX24gIihjYWNoZWQpICRhY19jIiAxPiY2
DQogZWxzZQ0KICAgY2F0ID4gY29uZnRlc3QuJGFjX2V4dCA8PEVPRg0KLSNs
aW5lIDI3NDMgImNvbmZpZ3VyZSINCisjbGluZSAyNzMyICJjb25maWd1cmUi
DQogI2luY2x1ZGUgImNvbmZkZWZzLmgiDQogI2luY2x1ZGUgPGxpbnV4L3Zl
cnNpb24uaD4NCiBFT0YNCiBhY190cnk9IiRhY19jcHAgY29uZnRlc3QuJGFj
X2V4dCA+L2Rldi9udWxsIDI+Y29uZnRlc3Qub3V0Ig0KLXsgKGV2YWwgZWNo
byBjb25maWd1cmU6Mjc0ODogXCIkYWNfdHJ5XCIpIDE+JjU7IChldmFsICRh
Y190cnkpIDI+JjU7IH0NCit7IChldmFsIGVjaG8gY29uZmlndXJlOjI3Mzc6
IFwiJGFjX3RyeVwiKSAxPiY1OyAoZXZhbCAkYWNfdHJ5KSAyPiY1OyB9DQog
YWNfZXJyPWBncmVwIC12ICdeICorJyBjb25mdGVzdC5vdXQgfCBncmVwIC12
ICJeY29uZnRlc3QuJHthY19leHR9XCQiYA0KIGlmIHRlc3QgLXogIiRhY19l
cnIiOyB0aGVuDQogICBybSAtcmYgY29uZnRlc3QqDQpAQCAtMjg2MSwxMiAr
Mjg1MCwxMiBAQCBFT0YNCiANCiBmaQ0KIA0KLWZvciBhY19wcm9nIGluIG1h
d2sgZ2F3ayBuYXdrIGF3aw0KK2ZvciBhY19wcm9nIGluIGdhd2sgbWF3ayBu
YXdrIGF3aw0KIGRvDQogIyBFeHRyYWN0IHRoZSBmaXJzdCB3b3JkIG9mICIk
YWNfcHJvZyIsIHNvIGl0IGNhbiBiZSBhIHByb2dyYW0gbmFtZSB3aXRoIGFy
Z3MuDQogc2V0IGR1bW15ICRhY19wcm9nOyBhY193b3JkPSQyDQogZWNobyAk
YWNfbiAiY2hlY2tpbmcgZm9yICRhY193b3JkIiIuLi4gJGFjX2MiIDE+JjYN
Ci1lY2hvICJjb25maWd1cmU6Mjg3MDogY2hlY2tpbmcgZm9yICRhY193b3Jk
IiA+JjUNCitlY2hvICJjb25maWd1cmU6Mjg1OTogY2hlY2tpbmcgZm9yICRh
Y193b3JkIiA+JjUNCiBpZiBldmFsICJ0ZXN0IFwiYGVjaG8gJyQnJ3snYWNf
Y3ZfcHJvZ19BV0snK3NldH0nYFwiID0gc2V0IjsgdGhlbg0KICAgZWNobyAk
YWNfbiAiKGNhY2hlZCkgJGFjX2MiIDE+JjYNCiBlbHNlDQpAQCAtMjkwNyw3
ICsyODk2LDcgQEAgZG9uZQ0KICMgU1ZSNCAvdXNyL3VjYi9pbnN0YWxsLCB3
aGljaCB0cmllcyB0byB1c2UgdGhlIG5vbmV4aXN0ZW50IGdyb3VwICJzdGFm
ZiINCiAjIC4vaW5zdGFsbCwgd2hpY2ggY2FuIGJlIGVycm9uZW91c2x5IGNy
ZWF0ZWQgYnkgbWFrZSBmcm9tIC4vaW5zdGFsbC5zaC4NCiBlY2hvICRhY19u
ICJjaGVja2luZyBmb3IgYSBCU0QgY29tcGF0aWJsZSBpbnN0YWxsIiIuLi4g
JGFjX2MiIDE+JjYNCi1lY2hvICJjb25maWd1cmU6MjkxMTogY2hlY2tpbmcg
Zm9yIGEgQlNEIGNvbXBhdGlibGUgaW5zdGFsbCIgPiY1DQorZWNobyAiY29u
ZmlndXJlOjI5MDA6IGNoZWNraW5nIGZvciBhIEJTRCBjb21wYXRpYmxlIGlu
c3RhbGwiID4mNQ0KIGlmIHRlc3QgLXogIiRJTlNUQUxMIjsgdGhlbg0KIGlm
IGV2YWwgInRlc3QgXCJgZWNobyAnJCcneydhY19jdl9wYXRoX2luc3RhbGwn
K3NldH0nYFwiID0gc2V0IjsgdGhlbg0KICAgZWNobyAkYWNfbiAiKGNhY2hl
ZCkgJGFjX2MiIDE+JjYNCkBAIC0yOTY4LDcgKzI5NTcsNyBAQCBmaQ0KICMg
RXh0cmFjdCB0aGUgZmlyc3Qgd29yZCBvZiAiJHthY190b29sX3ByZWZpeH1h
ciIsIHNvIGl0IGNhbiBiZSBhIHByb2dyYW0gbmFtZSB3aXRoIGFyZ3MuDQog
c2V0IGR1bW15ICR7YWNfdG9vbF9wcmVmaXh9YXI7IGFjX3dvcmQ9JDINCiBl
Y2hvICRhY19uICJjaGVja2luZyBmb3IgJGFjX3dvcmQiIi4uLiAkYWNfYyIg
MT4mNg0KLWVjaG8gImNvbmZpZ3VyZToyOTcyOiBjaGVja2luZyBmb3IgJGFj
X3dvcmQiID4mNQ0KK2VjaG8gImNvbmZpZ3VyZToyOTYxOiBjaGVja2luZyBm
b3IgJGFjX3dvcmQiID4mNQ0KIGlmIGV2YWwgInRlc3QgXCJgZWNobyAnJCcn
eydhY19jdl9wcm9nX0FSJytzZXR9J2BcIiA9IHNldCI7IHRoZW4NCiAgIGVj
aG8gJGFjX24gIihjYWNoZWQpICRhY19jIiAxPiY2DQogZWxzZQ0KQEAgLTMw
MDAsNyArMjk4OSw3IEBAIGZpDQogIyBFeHRyYWN0IHRoZSBmaXJzdCB3b3Jk
IG9mICIke2FjX3Rvb2xfcHJlZml4fXJhbmxpYiIsIHNvIGl0IGNhbiBiZSBh
IHByb2dyYW0gbmFtZSB3aXRoIGFyZ3MuDQogc2V0IGR1bW15ICR7YWNfdG9v
bF9wcmVmaXh9cmFubGliOyBhY193b3JkPSQyDQogZWNobyAkYWNfbiAiY2hl
Y2tpbmcgZm9yICRhY193b3JkIiIuLi4gJGFjX2MiIDE+JjYNCi1lY2hvICJj
b25maWd1cmU6MzAwNDogY2hlY2tpbmcgZm9yICRhY193b3JkIiA+JjUNCitl
Y2hvICJjb25maWd1cmU6Mjk5MzogY2hlY2tpbmcgZm9yICRhY193b3JkIiA+
JjUNCiBpZiBldmFsICJ0ZXN0IFwiYGVjaG8gJyQnJ3snYWNfY3ZfcHJvZ19S
QU5MSUInK3NldH0nYFwiID0gc2V0IjsgdGhlbg0KICAgZWNobyAkYWNfbiAi
KGNhY2hlZCkgJGFjX2MiIDE+JjYNCiBlbHNlDQpAQCAtMzAzMiw3ICszMDIx
LDcgQEAgaWYgdGVzdCAtbiAiJGFjX3Rvb2xfcHJlZml4IjsgdGhlbg0KICAg
IyBFeHRyYWN0IHRoZSBmaXJzdCB3b3JkIG9mICJyYW5saWIiLCBzbyBpdCBj
YW4gYmUgYSBwcm9ncmFtIG5hbWUgd2l0aCBhcmdzLg0KIHNldCBkdW1teSBy
YW5saWI7IGFjX3dvcmQ9JDINCiBlY2hvICRhY19uICJjaGVja2luZyBmb3Ig
JGFjX3dvcmQiIi4uLiAkYWNfYyIgMT4mNg0KLWVjaG8gImNvbmZpZ3VyZToz
MDM2OiBjaGVja2luZyBmb3IgJGFjX3dvcmQiID4mNQ0KK2VjaG8gImNvbmZp
Z3VyZTozMDI1OiBjaGVja2luZyBmb3IgJGFjX3dvcmQiID4mNQ0KIGlmIGV2
YWwgInRlc3QgXCJgZWNobyAnJCcneydhY19jdl9wcm9nX1JBTkxJQicrc2V0
fSdgXCIgPSBzZXQiOyB0aGVuDQogICBlY2hvICRhY19uICIoY2FjaGVkKSAk
YWNfYyIgMT4mNg0KIGVsc2UNCkBAIC0zMDY3LDcgKzMwNTYsNyBAQCBmaQ0K
ICMgRXh0cmFjdCB0aGUgZmlyc3Qgd29yZCBvZiAiJHthY190b29sX3ByZWZp
eH1kbGx0b29sIiwgc28gaXQgY2FuIGJlIGEgcHJvZ3JhbSBuYW1lIHdpdGgg
YXJncy4NCiBzZXQgZHVtbXkgJHthY190b29sX3ByZWZpeH1kbGx0b29sOyBh
Y193b3JkPSQyDQogZWNobyAkYWNfbiAiY2hlY2tpbmcgZm9yICRhY193b3Jk
IiIuLi4gJGFjX2MiIDE+JjYNCi1lY2hvICJjb25maWd1cmU6MzA3MTogY2hl
Y2tpbmcgZm9yICRhY193b3JkIiA+JjUNCitlY2hvICJjb25maWd1cmU6MzA2
MDogY2hlY2tpbmcgZm9yICRhY193b3JkIiA+JjUNCiBpZiBldmFsICJ0ZXN0
IFwiYGVjaG8gJyQnJ3snYWNfY3ZfcHJvZ19ETExUT09MJytzZXR9J2BcIiA9
IHNldCI7IHRoZW4NCiAgIGVjaG8gJGFjX24gIihjYWNoZWQpICRhY19jIiAx
PiY2DQogZWxzZQ0KQEAgLTMwOTksNyArMzA4OCw3IEBAIGZpDQogIyBFeHRy
YWN0IHRoZSBmaXJzdCB3b3JkIG9mICIke2FjX3Rvb2xfcHJlZml4fXdpbmRy
ZXMiLCBzbyBpdCBjYW4gYmUgYSBwcm9ncmFtIG5hbWUgd2l0aCBhcmdzLg0K
IHNldCBkdW1teSAke2FjX3Rvb2xfcHJlZml4fXdpbmRyZXM7IGFjX3dvcmQ9
JDINCiBlY2hvICRhY19uICJjaGVja2luZyBmb3IgJGFjX3dvcmQiIi4uLiAk
YWNfYyIgMT4mNg0KLWVjaG8gImNvbmZpZ3VyZTozMTAzOiBjaGVja2luZyBm
b3IgJGFjX3dvcmQiID4mNQ0KK2VjaG8gImNvbmZpZ3VyZTozMDkyOiBjaGVj
a2luZyBmb3IgJGFjX3dvcmQiID4mNQ0KIGlmIGV2YWwgInRlc3QgXCJgZWNo
byAnJCcneydhY19jdl9wcm9nX1dJTkRSRVMnK3NldH0nYFwiID0gc2V0Ijsg
dGhlbg0KICAgZWNobyAkYWNfbiAiKGNhY2hlZCkgJGFjX2MiIDE+JjYNCiBl
bHNlDQpAQCAtMzEzMyw3ICszMTIyLDcgQEAgZG8NCiAjIEV4dHJhY3QgdGhl
IGZpcnN0IHdvcmQgb2YgIiRhY19wcm9nIiwgc28gaXQgY2FuIGJlIGEgcHJv
Z3JhbSBuYW1lIHdpdGggYXJncy4NCiBzZXQgZHVtbXkgJGFjX3Byb2c7IGFj
X3dvcmQ9JDINCiBlY2hvICRhY19uICJjaGVja2luZyBmb3IgJGFjX3dvcmQi
Ii4uLiAkYWNfYyIgMT4mNg0KLWVjaG8gImNvbmZpZ3VyZTozMTM3OiBjaGVj
a2luZyBmb3IgJGFjX3dvcmQiID4mNQ0KK2VjaG8gImNvbmZpZ3VyZTozMTI2
OiBjaGVja2luZyBmb3IgJGFjX3dvcmQiID4mNQ0KIGlmIGV2YWwgInRlc3Qg
XCJgZWNobyAnJCcneydhY19jdl9wcm9nX1lBQ0MnK3NldH0nYFwiID0gc2V0
IjsgdGhlbg0KICAgZWNobyAkYWNfbiAiKGNhY2hlZCkgJGFjX2MiIDE+JjYN
CiBlbHNlDQpAQCAtMzE2Nyw3ICszMTU2LDcgQEAgdGVzdCAtbiAiJFlBQ0Mi
IHx8IFlBQ0M9InlhY2MiDQogIyBFeHRyYWN0IHRoZSBmaXJzdCB3b3JkIG9m
ICIke2FjX3Rvb2xfcHJlZml4fW1pZyIsIHNvIGl0IGNhbiBiZSBhIHByb2dy
YW0gbmFtZSB3aXRoIGFyZ3MuDQogc2V0IGR1bW15ICR7YWNfdG9vbF9wcmVm
aXh9bWlnOyBhY193b3JkPSQyDQogZWNobyAkYWNfbiAiY2hlY2tpbmcgZm9y
ICRhY193b3JkIiIuLi4gJGFjX2MiIDE+JjYNCi1lY2hvICJjb25maWd1cmU6
MzE3MTogY2hlY2tpbmcgZm9yICRhY193b3JkIiA+JjUNCitlY2hvICJjb25m
aWd1cmU6MzE2MDogY2hlY2tpbmcgZm9yICRhY193b3JkIiA+JjUNCiBpZiBl
dmFsICJ0ZXN0IFwiYGVjaG8gJyQnJ3snYWNfY3ZfcHJvZ19NSUcnK3NldH0n
YFwiID0gc2V0IjsgdGhlbg0KICAgZWNobyAkYWNfbiAiKGNhY2hlZCkgJGFj
X2MiIDE+JjYNCiBlbHNlDQpAQCAtMzIxOCwxMiArMzIwNywxMiBAQCB0ZXN0
ICIkcHJvZ3JhbV90cmFuc2Zvcm1fbmFtZSIgPSAiIiAmJiBwDQogDQogDQog
ZWNobyAkYWNfbiAiY2hlY2tpbmcgcmV0dXJuIHR5cGUgb2Ygc2lnbmFsIGhh
bmRsZXJzIiIuLi4gJGFjX2MiIDE+JjYNCi1lY2hvICJjb25maWd1cmU6MzIy
MjogY2hlY2tpbmcgcmV0dXJuIHR5cGUgb2Ygc2lnbmFsIGhhbmRsZXJzIiA+
JjUNCitlY2hvICJjb25maWd1cmU6MzIxMTogY2hlY2tpbmcgcmV0dXJuIHR5
cGUgb2Ygc2lnbmFsIGhhbmRsZXJzIiA+JjUNCiBpZiBldmFsICJ0ZXN0IFwi
YGVjaG8gJyQnJ3snYWNfY3ZfdHlwZV9zaWduYWwnK3NldH0nYFwiID0gc2V0
IjsgdGhlbg0KICAgZWNobyAkYWNfbiAiKGNhY2hlZCkgJGFjX2MiIDE+JjYN
CiBlbHNlDQogICBjYXQgPiBjb25mdGVzdC4kYWNfZXh0IDw8RU9GDQotI2xp
bmUgMzIyNyAiY29uZmlndXJlIg0KKyNsaW5lIDMyMTYgImNvbmZpZ3VyZSIN
CiAjaW5jbHVkZSAiY29uZmRlZnMuaCINCiAjaW5jbHVkZSA8c3lzL3R5cGVz
Lmg+DQogI2luY2x1ZGUgPHNpZ25hbC5oPg0KQEAgLTMyNDAsNyArMzIyOSw3
IEBAIGludCBtYWluKCkgew0KIGludCBpOw0KIDsgcmV0dXJuIDA7IH0NCiBF
T0YNCi1pZiB7IChldmFsIGVjaG8gY29uZmlndXJlOjMyNDQ6IFwiJGFjX2Nv
bXBpbGVcIikgMT4mNTsgKGV2YWwgJGFjX2NvbXBpbGUpIDI+JjU7IH07IHRo
ZW4NCitpZiB7IChldmFsIGVjaG8gY29uZmlndXJlOjMyMzM6IFwiJGFjX2Nv
bXBpbGVcIikgMT4mNTsgKGV2YWwgJGFjX2NvbXBpbGUpIDI+JjU7IH07IHRo
ZW4NCiAgIHJtIC1yZiBjb25mdGVzdCoNCiAgIGFjX2N2X3R5cGVfc2lnbmFs
PXZvaWQNCiBlbHNlDQpAQCAtMzI2MCwxMiArMzI0OSwxMiBAQCBFT0YNCiAN
CiANCiBlY2hvICRhY19uICJjaGVja2luZyBmb3IgQU5TSSBDIGhlYWRlciBm
aWxlcyIiLi4uICRhY19jIiAxPiY2DQotZWNobyAiY29uZmlndXJlOjMyNjQ6
IGNoZWNraW5nIGZvciBBTlNJIEMgaGVhZGVyIGZpbGVzIiA+JjUNCitlY2hv
ICJjb25maWd1cmU6MzI1MzogY2hlY2tpbmcgZm9yIEFOU0kgQyBoZWFkZXIg
ZmlsZXMiID4mNQ0KIGlmIGV2YWwgInRlc3QgXCJgZWNobyAnJCcneydhY19j
dl9oZWFkZXJfc3RkYycrc2V0fSdgXCIgPSBzZXQiOyB0aGVuDQogICBlY2hv
ICRhY19uICIoY2FjaGVkKSAkYWNfYyIgMT4mNg0KIGVsc2UNCiAgIGNhdCA+
IGNvbmZ0ZXN0LiRhY19leHQgPDxFT0YNCi0jbGluZSAzMjY5ICJjb25maWd1
cmUiDQorI2xpbmUgMzI1OCAiY29uZmlndXJlIg0KICNpbmNsdWRlICJjb25m
ZGVmcy5oIg0KICNpbmNsdWRlIDxzdGRsaWIuaD4NCiAjaW5jbHVkZSA8c3Rk
YXJnLmg+DQpAQCAtMzI3Myw3ICszMjYyLDcgQEAgZWxzZQ0KICNpbmNsdWRl
IDxmbG9hdC5oPg0KIEVPRg0KIGFjX3RyeT0iJGFjX2NwcCBjb25mdGVzdC4k
YWNfZXh0ID4vZGV2L251bGwgMj5jb25mdGVzdC5vdXQiDQoteyAoZXZhbCBl
Y2hvIGNvbmZpZ3VyZTozMjc3OiBcIiRhY190cnlcIikgMT4mNTsgKGV2YWwg
JGFjX3RyeSkgMj4mNTsgfQ0KK3sgKGV2YWwgZWNobyBjb25maWd1cmU6MzI2
NjogXCIkYWNfdHJ5XCIpIDE+JjU7IChldmFsICRhY190cnkpIDI+JjU7IH0N
CiBhY19lcnI9YGdyZXAgLXYgJ14gKisnIGNvbmZ0ZXN0Lm91dCB8IGdyZXAg
LXYgIl5jb25mdGVzdC4ke2FjX2V4dH1cJCJgDQogaWYgdGVzdCAteiAiJGFj
X2VyciI7IHRoZW4NCiAgIHJtIC1yZiBjb25mdGVzdCoNCkBAIC0zMjkwLDcg
KzMyNzksNyBAQCBybSAtZiBjb25mdGVzdCoNCiBpZiB0ZXN0ICRhY19jdl9o
ZWFkZXJfc3RkYyA9IHllczsgdGhlbg0KICAgIyBTdW5PUyA0Lnggc3RyaW5n
LmggZG9lcyBub3QgZGVjbGFyZSBtZW0qLCBjb250cmFyeSB0byBBTlNJLg0K
IGNhdCA+IGNvbmZ0ZXN0LiRhY19leHQgPDxFT0YNCi0jbGluZSAzMjk0ICJj
b25maWd1cmUiDQorI2xpbmUgMzI4MyAiY29uZmlndXJlIg0KICNpbmNsdWRl
ICJjb25mZGVmcy5oIg0KICNpbmNsdWRlIDxzdHJpbmcuaD4NCiBFT0YNCkBA
IC0zMzA4LDcgKzMyOTcsNyBAQCBmaQ0KIGlmIHRlc3QgJGFjX2N2X2hlYWRl
cl9zdGRjID0geWVzOyB0aGVuDQogICAjIElTQyAyLjAuMiBzdGRsaWIuaCBk
b2VzIG5vdCBkZWNsYXJlIGZyZWUsIGNvbnRyYXJ5IHRvIEFOU0kuDQogY2F0
ID4gY29uZnRlc3QuJGFjX2V4dCA8PEVPRg0KLSNsaW5lIDMzMTIgImNvbmZp
Z3VyZSINCisjbGluZSAzMzAxICJjb25maWd1cmUiDQogI2luY2x1ZGUgImNv
bmZkZWZzLmgiDQogI2luY2x1ZGUgPHN0ZGxpYi5oPg0KIEVPRg0KQEAgLTMz
MjksNyArMzMxOCw3IEBAIGlmIHRlc3QgIiRjcm9zc19jb21waWxpbmciID0g
eWVzOyB0aGVuDQogICA6DQogZWxzZQ0KICAgY2F0ID4gY29uZnRlc3QuJGFj
X2V4dCA8PEVPRg0KLSNsaW5lIDMzMzMgImNvbmZpZ3VyZSINCisjbGluZSAz
MzIyICJjb25maWd1cmUiDQogI2luY2x1ZGUgImNvbmZkZWZzLmgiDQogI2lu
Y2x1ZGUgPGN0eXBlLmg+DQogI2RlZmluZSBJU0xPV0VSKGMpICgnYScgPD0g
KGMpICYmIChjKSA8PSAneicpDQpAQCAtMzM0MCw3ICszMzI5LDcgQEAgaWYg
KFhPUiAoaXNsb3dlciAoaSksIElTTE9XRVIgKGkpKSB8fCB0bw0KIGV4aXQg
KDApOyB9DQogDQogRU9GDQotaWYgeyAoZXZhbCBlY2hvIGNvbmZpZ3VyZToz
MzQ0OiBcIiRhY19saW5rXCIpIDE+JjU7IChldmFsICRhY19saW5rKSAyPiY1
OyB9ICYmIHRlc3QgLXMgY29uZnRlc3Qke2FjX2V4ZWV4dH0gJiYgKC4vY29u
ZnRlc3Q7IGV4aXQpIDI+L2Rldi9udWxsDQoraWYgeyAoZXZhbCBlY2hvIGNv
bmZpZ3VyZTozMzMzOiBcIiRhY19saW5rXCIpIDE+JjU7IChldmFsICRhY19s
aW5rKSAyPiY1OyB9ICYmIHRlc3QgLXMgY29uZnRlc3Qke2FjX2V4ZWV4dH0g
JiYgKC4vY29uZnRlc3Q7IGV4aXQpIDI+L2Rldi9udWxsDQogdGhlbg0KICAg
Og0KIGVsc2UNCkBAIC0zMzg0LDE3ICszMzczLDE3IEBAIGZvciBhY19oZHIg
aW4gY3R5cGUuaCBlbmRpYW4uaCBsaW5rLmggdGgNCiBkbw0KIGFjX3NhZmU9
YGVjaG8gIiRhY19oZHIiIHwgc2VkICd5JS4vKy0lX19wXyUnYA0KIGVjaG8g
JGFjX24gImNoZWNraW5nIGZvciAkYWNfaGRyIiIuLi4gJGFjX2MiIDE+JjYN
Ci1lY2hvICJjb25maWd1cmU6MzM4ODogY2hlY2tpbmcgZm9yICRhY19oZHIi
ID4mNQ0KK2VjaG8gImNvbmZpZ3VyZTozMzc3OiBjaGVja2luZyBmb3IgJGFj
X2hkciIgPiY1DQogaWYgZXZhbCAidGVzdCBcImBlY2hvICckJyd7J2FjX2N2
X2hlYWRlcl8kYWNfc2FmZScrc2V0fSdgXCIgPSBzZXQiOyB0aGVuDQogICBl
Y2hvICRhY19uICIoY2FjaGVkKSAkYWNfYyIgMT4mNg0KIGVsc2UNCiAgIGNh
dCA+IGNvbmZ0ZXN0LiRhY19leHQgPDxFT0YNCi0jbGluZSAzMzkzICJjb25m
aWd1cmUiDQorI2xpbmUgMzM4MiAiY29uZmlndXJlIg0KICNpbmNsdWRlICJj
b25mZGVmcy5oIg0KICNpbmNsdWRlIDwkYWNfaGRyPg0KIEVPRg0KIGFjX3Ry
eT0iJGFjX2NwcCBjb25mdGVzdC4kYWNfZXh0ID4vZGV2L251bGwgMj5jb25m
dGVzdC5vdXQiDQoteyAoZXZhbCBlY2hvIGNvbmZpZ3VyZTozMzk4OiBcIiRh
Y190cnlcIikgMT4mNTsgKGV2YWwgJGFjX3RyeSkgMj4mNTsgfQ0KK3sgKGV2
YWwgZWNobyBjb25maWd1cmU6MzM4NzogXCIkYWNfdHJ5XCIpIDE+JjU7IChl
dmFsICRhY190cnkpIDI+JjU7IH0NCiBhY19lcnI9YGdyZXAgLXYgJ14gKisn
IGNvbmZ0ZXN0Lm91dCB8IGdyZXAgLXYgIl5jb25mdGVzdC4ke2FjX2V4dH1c
JCJgDQogaWYgdGVzdCAteiAiJGFjX2VyciI7IHRoZW4NCiAgIHJtIC1yZiBj
b25mdGVzdCoNCkBAIC0zNDIxLDEyICszNDEwLDEyIEBAIGZpDQogZG9uZQ0K
IA0KIGVjaG8gJGFjX24gImNoZWNraW5nIHdoZXRoZXIgc3RhdCBmaWxlLW1v
ZGUgbWFjcm9zIGFyZSBicm9rZW4iIi4uLiAkYWNfYyIgMT4mNg0KLWVjaG8g
ImNvbmZpZ3VyZTozNDI1OiBjaGVja2luZyB3aGV0aGVyIHN0YXQgZmlsZS1t
b2RlIG1hY3JvcyBhcmUgYnJva2VuIiA+JjUNCitlY2hvICJjb25maWd1cmU6
MzQxNDogY2hlY2tpbmcgd2hldGhlciBzdGF0IGZpbGUtbW9kZSBtYWNyb3Mg
YXJlIGJyb2tlbiIgPiY1DQogaWYgZXZhbCAidGVzdCBcImBlY2hvICckJyd7
J2FjX2N2X2hlYWRlcl9zdGF0X2Jyb2tlbicrc2V0fSdgXCIgPSBzZXQiOyB0
aGVuDQogICBlY2hvICRhY19uICIoY2FjaGVkKSAkYWNfYyIgMT4mNg0KIGVs
c2UNCiAgIGNhdCA+IGNvbmZ0ZXN0LiRhY19leHQgPDxFT0YNCi0jbGluZSAz
NDMwICJjb25maWd1cmUiDQorI2xpbmUgMzQxOSAiY29uZmlndXJlIg0KICNp
bmNsdWRlICJjb25mZGVmcy5oIg0KICNpbmNsdWRlIDxzeXMvdHlwZXMuaD4N
CiAjaW5jbHVkZSA8c3lzL3N0YXQuaD4NCkBAIC0zNDc4LDEyICszNDY3LDEy
IEBAIGZpDQogDQogDQogZWNobyAkYWNfbiAiY2hlY2tpbmcgZm9yIHdvcmtp
bmcgY29uc3QiIi4uLiAkYWNfYyIgMT4mNg0KLWVjaG8gImNvbmZpZ3VyZToz
NDgyOiBjaGVja2luZyBmb3Igd29ya2luZyBjb25zdCIgPiY1DQorZWNobyAi
Y29uZmlndXJlOjM0NzE6IGNoZWNraW5nIGZvciB3b3JraW5nIGNvbnN0IiA+
JjUNCiBpZiBldmFsICJ0ZXN0IFwiYGVjaG8gJyQnJ3snYWNfY3ZfY19jb25z
dCcrc2V0fSdgXCIgPSBzZXQiOyB0aGVuDQogICBlY2hvICRhY19uICIoY2Fj
aGVkKSAkYWNfYyIgMT4mNg0KIGVsc2UNCiAgIGNhdCA+IGNvbmZ0ZXN0LiRh
Y19leHQgPDxFT0YNCi0jbGluZSAzNDg3ICJjb25maWd1cmUiDQorI2xpbmUg
MzQ3NiAiY29uZmlndXJlIg0KICNpbmNsdWRlICJjb25mZGVmcy5oIg0KIA0K
IGludCBtYWluKCkgew0KQEAgLTM1MzIsNyArMzUyMSw3IEBAIGNjcCA9IChj
aGFyIGNvbnN0ICpjb25zdCAqKSBwOw0KIA0KIDsgcmV0dXJuIDA7IH0NCiBF
T0YNCi1pZiB7IChldmFsIGVjaG8gY29uZmlndXJlOjM1MzY6IFwiJGFjX2Nv
bXBpbGVcIikgMT4mNTsgKGV2YWwgJGFjX2NvbXBpbGUpIDI+JjU7IH07IHRo
ZW4NCitpZiB7IChldmFsIGVjaG8gY29uZmlndXJlOjM1MjU6IFwiJGFjX2Nv
bXBpbGVcIikgMT4mNTsgKGV2YWwgJGFjX2NvbXBpbGUpIDI+JjU7IH07IHRo
ZW4NCiAgIHJtIC1yZiBjb25mdGVzdCoNCiAgIGFjX2N2X2NfY29uc3Q9eWVz
DQogZWxzZQ0KQEAgLTM1NTYsMTIgKzM1NDUsMTIgQEAgZmkNCiBmb3IgYWNf
ZnVuYyBpbiBzZXRwZ2lkIHNicmsgc2lnYWN0aW9uIGlzYXNjaWkgYnplcm8g
YmNvcHkgYnRvd2MgcG9sbCBzaWdwcm9jbWFzaw0KIGRvDQogZWNobyAkYWNf
biAiY2hlY2tpbmcgZm9yICRhY19mdW5jIiIuLi4gJGFjX2MiIDE+JjYNCi1l
Y2hvICJjb25maWd1cmU6MzU2MDogY2hlY2tpbmcgZm9yICRhY19mdW5jIiA+
JjUNCitlY2hvICJjb25maWd1cmU6MzU0OTogY2hlY2tpbmcgZm9yICRhY19m
dW5jIiA+JjUNCiBpZiBldmFsICJ0ZXN0IFwiYGVjaG8gJyQnJ3snYWNfY3Zf
ZnVuY18kYWNfZnVuYycrc2V0fSdgXCIgPSBzZXQiOyB0aGVuDQogICBlY2hv
ICRhY19uICIoY2FjaGVkKSAkYWNfYyIgMT4mNg0KIGVsc2UNCiAgIGNhdCA+
IGNvbmZ0ZXN0LiRhY19leHQgPDxFT0YNCi0jbGluZSAzNTY1ICJjb25maWd1
cmUiDQorI2xpbmUgMzU1NCAiY29uZmlndXJlIg0KICNpbmNsdWRlICJjb25m
ZGVmcy5oIg0KIC8qIFN5c3RlbSBoZWFkZXIgdG8gZGVmaW5lIF9fc3R1YiBt
YWNyb3MgYW5kIGhvcGVmdWxseSBmZXcgcHJvdG90eXBlcywNCiAgICAgd2hp
Y2ggY2FuIGNvbmZsaWN0IHdpdGggY2hhciAkYWNfZnVuYygpOyBiZWxvdy4g
ICovDQpAQCAtMzU4NCw3ICszNTczLDcgQEAgJGFjX2Z1bmMoKTsNCiANCiA7
IHJldHVybiAwOyB9DQogRU9GDQotaWYgeyAoZXZhbCBlY2hvIGNvbmZpZ3Vy
ZTozNTg4OiBcIiRhY19saW5rXCIpIDE+JjU7IChldmFsICRhY19saW5rKSAy
PiY1OyB9ICYmIHRlc3QgLXMgY29uZnRlc3Qke2FjX2V4ZWV4dH07IHRoZW4N
CitpZiB7IChldmFsIGVjaG8gY29uZmlndXJlOjM1Nzc6IFwiJGFjX2xpbmtc
IikgMT4mNTsgKGV2YWwgJGFjX2xpbmspIDI+JjU7IH0gJiYgdGVzdCAtcyBj
b25mdGVzdCR7YWNfZXhlZXh0fTsgdGhlbg0KICAgcm0gLXJmIGNvbmZ0ZXN0
Kg0KICAgZXZhbCAiYWNfY3ZfZnVuY18kYWNfZnVuYz15ZXMiDQogZWxzZQ0K
QEAgLTM2MTEsMTkgKzM2MDAsMTkgQEAgZG9uZQ0KICMgVGhlIFVsdHJpeCA0
LjIgbWlwcyBidWlsdGluIGFsbG9jYSBkZWNsYXJlZCBieSBhbGxvY2EuaCBv
bmx5IHdvcmtzDQogIyBmb3IgY29uc3RhbnQgYXJndW1lbnRzLiAgVXNlbGVz
cyENCiBlY2hvICRhY19uICJjaGVja2luZyBmb3Igd29ya2luZyBhbGxvY2Eu
aCIiLi4uICRhY19jIiAxPiY2DQotZWNobyAiY29uZmlndXJlOjM2MTU6IGNo
ZWNraW5nIGZvciB3b3JraW5nIGFsbG9jYS5oIiA+JjUNCitlY2hvICJjb25m
aWd1cmU6MzYwNDogY2hlY2tpbmcgZm9yIHdvcmtpbmcgYWxsb2NhLmgiID4m
NQ0KIGlmIGV2YWwgInRlc3QgXCJgZWNobyAnJCcneydhY19jdl9oZWFkZXJf
YWxsb2NhX2gnK3NldH0nYFwiID0gc2V0IjsgdGhlbg0KICAgZWNobyAkYWNf
biAiKGNhY2hlZCkgJGFjX2MiIDE+JjYNCiBlbHNlDQogICBjYXQgPiBjb25m
dGVzdC4kYWNfZXh0IDw8RU9GDQotI2xpbmUgMzYyMCAiY29uZmlndXJlIg0K
KyNsaW5lIDM2MDkgImNvbmZpZ3VyZSINCiAjaW5jbHVkZSAiY29uZmRlZnMu
aCINCiAjaW5jbHVkZSA8YWxsb2NhLmg+DQogaW50IG1haW4oKSB7DQogY2hh
ciAqcCA9IGFsbG9jYSgyICogc2l6ZW9mKGludCkpOw0KIDsgcmV0dXJuIDA7
IH0NCiBFT0YNCi1pZiB7IChldmFsIGVjaG8gY29uZmlndXJlOjM2Mjc6IFwi
JGFjX2xpbmtcIikgMT4mNTsgKGV2YWwgJGFjX2xpbmspIDI+JjU7IH0gJiYg
dGVzdCAtcyBjb25mdGVzdCR7YWNfZXhlZXh0fTsgdGhlbg0KK2lmIHsgKGV2
YWwgZWNobyBjb25maWd1cmU6MzYxNjogXCIkYWNfbGlua1wiKSAxPiY1OyAo
ZXZhbCAkYWNfbGluaykgMj4mNTsgfSAmJiB0ZXN0IC1zIGNvbmZ0ZXN0JHth
Y19leGVleHR9OyB0aGVuDQogICBybSAtcmYgY29uZnRlc3QqDQogICBhY19j
dl9oZWFkZXJfYWxsb2NhX2g9eWVzDQogZWxzZQ0KQEAgLTM2NDQsMTIgKzM2
MzMsMTIgQEAgRU9GDQogZmkNCiANCiBlY2hvICRhY19uICJjaGVja2luZyBm
b3IgYWxsb2NhIiIuLi4gJGFjX2MiIDE+JjYNCi1lY2hvICJjb25maWd1cmU6
MzY0ODogY2hlY2tpbmcgZm9yIGFsbG9jYSIgPiY1DQorZWNobyAiY29uZmln
dXJlOjM2Mzc6IGNoZWNraW5nIGZvciBhbGxvY2EiID4mNQ0KIGlmIGV2YWwg
InRlc3QgXCJgZWNobyAnJCcneydhY19jdl9mdW5jX2FsbG9jYV93b3Jrcycr
c2V0fSdgXCIgPSBzZXQiOyB0aGVuDQogICBlY2hvICRhY19uICIoY2FjaGVk
KSAkYWNfYyIgMT4mNg0KIGVsc2UNCiAgIGNhdCA+IGNvbmZ0ZXN0LiRhY19l
eHQgPDxFT0YNCi0jbGluZSAzNjUzICJjb25maWd1cmUiDQorI2xpbmUgMzY0
MiAiY29uZmlndXJlIg0KICNpbmNsdWRlICJjb25mZGVmcy5oIg0KIA0KICNp
ZmRlZiBfX0dOVUNfXw0KQEAgLTM2NzcsNyArMzY2Niw3IEBAIGludCBtYWlu
KCkgew0KIGNoYXIgKnAgPSAoY2hhciAqKSBhbGxvY2EoMSk7DQogOyByZXR1
cm4gMDsgfQ0KIEVPRg0KLWlmIHsgKGV2YWwgZWNobyBjb25maWd1cmU6MzY4
MTogXCIkYWNfbGlua1wiKSAxPiY1OyAoZXZhbCAkYWNfbGluaykgMj4mNTsg
fSAmJiB0ZXN0IC1zIGNvbmZ0ZXN0JHthY19leGVleHR9OyB0aGVuDQoraWYg
eyAoZXZhbCBlY2hvIGNvbmZpZ3VyZTozNjcwOiBcIiRhY19saW5rXCIpIDE+
JjU7IChldmFsICRhY19saW5rKSAyPiY1OyB9ICYmIHRlc3QgLXMgY29uZnRl
c3Qke2FjX2V4ZWV4dH07IHRoZW4NCiAgIHJtIC1yZiBjb25mdGVzdCoNCiAg
IGFjX2N2X2Z1bmNfYWxsb2NhX3dvcmtzPXllcw0KIGVsc2UNCkBAIC0zNzA5
LDEyICszNjk4LDEyIEBAIEVPRg0KIA0KIA0KIGVjaG8gJGFjX24gImNoZWNr
aW5nIHdoZXRoZXIgYWxsb2NhIG5lZWRzIENyYXkgaG9va3MiIi4uLiAkYWNf
YyIgMT4mNg0KLWVjaG8gImNvbmZpZ3VyZTozNzEzOiBjaGVja2luZyB3aGV0
aGVyIGFsbG9jYSBuZWVkcyBDcmF5IGhvb2tzIiA+JjUNCitlY2hvICJjb25m
aWd1cmU6MzcwMjogY2hlY2tpbmcgd2hldGhlciBhbGxvY2EgbmVlZHMgQ3Jh
eSBob29rcyIgPiY1DQogaWYgZXZhbCAidGVzdCBcImBlY2hvICckJyd7J2Fj
X2N2X29zX2NyYXknK3NldH0nYFwiID0gc2V0IjsgdGhlbg0KICAgZWNobyAk
YWNfbiAiKGNhY2hlZCkgJGFjX2MiIDE+JjYNCiBlbHNlDQogICBjYXQgPiBj
b25mdGVzdC4kYWNfZXh0IDw8RU9GDQotI2xpbmUgMzcxOCAiY29uZmlndXJl
Ig0KKyNsaW5lIDM3MDcgImNvbmZpZ3VyZSINCiAjaW5jbHVkZSAiY29uZmRl
ZnMuaCINCiAjaWYgZGVmaW5lZChDUkFZKSAmJiAhIGRlZmluZWQoQ1JBWTIp
DQogd2ViZWNyYXkNCkBAIC0zNzM5LDEyICszNzI4LDEyIEBAIGVjaG8gIiRh
Y190IiIkYWNfY3Zfb3NfY3JheSIgMT4mNg0KIGlmIHRlc3QgJGFjX2N2X29z
X2NyYXkgPSB5ZXM7IHRoZW4NCiBmb3IgYWNfZnVuYyBpbiBfZ2V0YjY3IEdF
VEI2NyBnZXRiNjc7IGRvDQogICBlY2hvICRhY19uICJjaGVja2luZyBmb3Ig
JGFjX2Z1bmMiIi4uLiAkYWNfYyIgMT4mNg0KLWVjaG8gImNvbmZpZ3VyZToz
NzQzOiBjaGVja2luZyBmb3IgJGFjX2Z1bmMiID4mNQ0KK2VjaG8gImNvbmZp
Z3VyZTozNzMyOiBjaGVja2luZyBmb3IgJGFjX2Z1bmMiID4mNQ0KIGlmIGV2
YWwgInRlc3QgXCJgZWNobyAnJCcneydhY19jdl9mdW5jXyRhY19mdW5jJytz
ZXR9J2BcIiA9IHNldCI7IHRoZW4NCiAgIGVjaG8gJGFjX24gIihjYWNoZWQp
ICRhY19jIiAxPiY2DQogZWxzZQ0KICAgY2F0ID4gY29uZnRlc3QuJGFjX2V4
dCA8PEVPRg0KLSNsaW5lIDM3NDggImNvbmZpZ3VyZSINCisjbGluZSAzNzM3
ICJjb25maWd1cmUiDQogI2luY2x1ZGUgImNvbmZkZWZzLmgiDQogLyogU3lz
dGVtIGhlYWRlciB0byBkZWZpbmUgX19zdHViIG1hY3JvcyBhbmQgaG9wZWZ1
bGx5IGZldyBwcm90b3R5cGVzLA0KICAgICB3aGljaCBjYW4gY29uZmxpY3Qg
d2l0aCBjaGFyICRhY19mdW5jKCk7IGJlbG93LiAgKi8NCkBAIC0zNzY3LDcg
KzM3NTYsNyBAQCAkYWNfZnVuYygpOw0KIA0KIDsgcmV0dXJuIDA7IH0NCiBF
T0YNCi1pZiB7IChldmFsIGVjaG8gY29uZmlndXJlOjM3NzE6IFwiJGFjX2xp
bmtcIikgMT4mNTsgKGV2YWwgJGFjX2xpbmspIDI+JjU7IH0gJiYgdGVzdCAt
cyBjb25mdGVzdCR7YWNfZXhlZXh0fTsgdGhlbg0KK2lmIHsgKGV2YWwgZWNo
byBjb25maWd1cmU6Mzc2MDogXCIkYWNfbGlua1wiKSAxPiY1OyAoZXZhbCAk
YWNfbGluaykgMj4mNTsgfSAmJiB0ZXN0IC1zIGNvbmZ0ZXN0JHthY19leGVl
eHR9OyB0aGVuDQogICBybSAtcmYgY29uZnRlc3QqDQogICBldmFsICJhY19j
dl9mdW5jXyRhY19mdW5jPXllcyINCiBlbHNlDQpAQCAtMzc5NCw3ICszNzgz
LDcgQEAgZG9uZQ0KIGZpDQogDQogZWNobyAkYWNfbiAiY2hlY2tpbmcgc3Rh
Y2sgZGlyZWN0aW9uIGZvciBDIGFsbG9jYSIiLi4uICRhY19jIiAxPiY2DQot
ZWNobyAiY29uZmlndXJlOjM3OTg6IGNoZWNraW5nIHN0YWNrIGRpcmVjdGlv
biBmb3IgQyBhbGxvY2EiID4mNQ0KK2VjaG8gImNvbmZpZ3VyZTozNzg3OiBj
aGVja2luZyBzdGFjayBkaXJlY3Rpb24gZm9yIEMgYWxsb2NhIiA+JjUNCiBp
ZiBldmFsICJ0ZXN0IFwiYGVjaG8gJyQnJ3snYWNfY3ZfY19zdGFja19kaXJl
Y3Rpb24nK3NldH0nYFwiID0gc2V0IjsgdGhlbg0KICAgZWNobyAkYWNfbiAi
KGNhY2hlZCkgJGFjX2MiIDE+JjYNCiBlbHNlDQpAQCAtMzgwMiw3ICszNzkx
LDcgQEAgZWxzZQ0KICAgYWNfY3ZfY19zdGFja19kaXJlY3Rpb249MA0KIGVs
c2UNCiAgIGNhdCA+IGNvbmZ0ZXN0LiRhY19leHQgPDxFT0YNCi0jbGluZSAz
ODA2ICJjb25maWd1cmUiDQorI2xpbmUgMzc5NSAiY29uZmlndXJlIg0KICNp
bmNsdWRlICJjb25mZGVmcy5oIg0KIGZpbmRfc3RhY2tfZGlyZWN0aW9uICgp
DQogew0KQEAgLTM4MjEsNyArMzgxMCw3IEBAIG1haW4gKCkNCiAgIGV4aXQg
KGZpbmRfc3RhY2tfZGlyZWN0aW9uKCkgPCAwKTsNCiB9DQogRU9GDQotaWYg
eyAoZXZhbCBlY2hvIGNvbmZpZ3VyZTozODI1OiBcIiRhY19saW5rXCIpIDE+
JjU7IChldmFsICRhY19saW5rKSAyPiY1OyB9ICYmIHRlc3QgLXMgY29uZnRl
c3Qke2FjX2V4ZWV4dH0gJiYgKC4vY29uZnRlc3Q7IGV4aXQpIDI+L2Rldi9u
dWxsDQoraWYgeyAoZXZhbCBlY2hvIGNvbmZpZ3VyZTozODE0OiBcIiRhY19s
aW5rXCIpIDE+JjU7IChldmFsICRhY19saW5rKSAyPiY1OyB9ICYmIHRlc3Qg
LXMgY29uZnRlc3Qke2FjX2V4ZWV4dH0gJiYgKC4vY29uZnRlc3Q7IGV4aXQp
IDI+L2Rldi9udWxsDQogdGhlbg0KICAgYWNfY3ZfY19zdGFja19kaXJlY3Rp
b249MQ0KIGVsc2UNCkBAIC0zODQ2LDE5ICszODM1LDE5IEBAIGZpDQogIyBT
ZWUgaWYgbWFjaGluZS9yZWcuaCBzdXBwb3J0cyB0aGUgJWZzIGFuZCAlZ3Mg
aTM4NiBzZWdtZW50IHJlZ2lzdGVycy4NCiAjIE9sZGVyIGkzODYgQlNEJ3Mg
ZG9uJ3QgaGF2ZSB0aGUgcl9mcyBhbmQgcl9ncyBtZW1iZXJzIG9mIGBzdHJ1
Y3QgcmVnJy4NCiBlY2hvICRhY19uICJjaGVja2luZyBmb3Igcl9mcyBpbiBz
dHJ1Y3QgcmVnIiIuLi4gJGFjX2MiIDE+JjYNCi1lY2hvICJjb25maWd1cmU6
Mzg1MDogY2hlY2tpbmcgZm9yIHJfZnMgaW4gc3RydWN0IHJlZyIgPiY1DQor
ZWNobyAiY29uZmlndXJlOjM4Mzk6IGNoZWNraW5nIGZvciByX2ZzIGluIHN0
cnVjdCByZWciID4mNQ0KIGlmIGV2YWwgInRlc3QgXCJgZWNobyAnJCcneydn
ZGJfY3Zfc3RydWN0X3JlZ19yX2ZzJytzZXR9J2BcIiA9IHNldCI7IHRoZW4N
CiAgIGVjaG8gJGFjX24gIihjYWNoZWQpICRhY19jIiAxPiY2DQogZWxzZQ0K
ICAgY2F0ID4gY29uZnRlc3QuJGFjX2V4dCA8PEVPRg0KLSNsaW5lIDM4NTUg
ImNvbmZpZ3VyZSINCisjbGluZSAzODQ0ICJjb25maWd1cmUiDQogI2luY2x1
ZGUgImNvbmZkZWZzLmgiDQogI2luY2x1ZGUgPG1hY2hpbmUvcmVnLmg+DQog
aW50IG1haW4oKSB7DQogc3RydWN0IHJlZyByOyByLnJfZnM7DQogOyByZXR1
cm4gMDsgfQ0KIEVPRg0KLWlmIHsgKGV2YWwgZWNobyBjb25maWd1cmU6Mzg2
MjogXCIkYWNfY29tcGlsZVwiKSAxPiY1OyAoZXZhbCAkYWNfY29tcGlsZSkg
Mj4mNTsgfTsgdGhlbg0KK2lmIHsgKGV2YWwgZWNobyBjb25maWd1cmU6Mzg1
MTogXCIkYWNfY29tcGlsZVwiKSAxPiY1OyAoZXZhbCAkYWNfY29tcGlsZSkg
Mj4mNTsgfTsgdGhlbg0KICAgcm0gLXJmIGNvbmZ0ZXN0Kg0KICAgZ2RiX2N2
X3N0cnVjdF9yZWdfcl9mcz15ZXMNCiBlbHNlDQpAQCAtMzg3OCwxOSArMzg2
NywxOSBAQCBFT0YNCiANCiBmaQ0KIGVjaG8gJGFjX24gImNoZWNraW5nIGZv
ciByX2dzIGluIHN0cnVjdCByZWciIi4uLiAkYWNfYyIgMT4mNg0KLWVjaG8g
ImNvbmZpZ3VyZTozODgyOiBjaGVja2luZyBmb3Igcl9ncyBpbiBzdHJ1Y3Qg
cmVnIiA+JjUNCitlY2hvICJjb25maWd1cmU6Mzg3MTogY2hlY2tpbmcgZm9y
IHJfZ3MgaW4gc3RydWN0IHJlZyIgPiY1DQogaWYgZXZhbCAidGVzdCBcImBl
Y2hvICckJyd7J2dkYl9jdl9zdHJ1Y3RfcmVnX3JfZ3MnK3NldH0nYFwiID0g
c2V0IjsgdGhlbg0KICAgZWNobyAkYWNfbiAiKGNhY2hlZCkgJGFjX2MiIDE+
JjYNCiBlbHNlDQogICBjYXQgPiBjb25mdGVzdC4kYWNfZXh0IDw8RU9GDQot
I2xpbmUgMzg4NyAiY29uZmlndXJlIg0KKyNsaW5lIDM4NzYgImNvbmZpZ3Vy
ZSINCiAjaW5jbHVkZSAiY29uZmRlZnMuaCINCiAjaW5jbHVkZSA8bWFjaGlu
ZS9yZWcuaD4NCiBpbnQgbWFpbigpIHsNCiBzdHJ1Y3QgcmVnIHI7IHIucl9n
czsNCiA7IHJldHVybiAwOyB9DQogRU9GDQotaWYgeyAoZXZhbCBlY2hvIGNv
bmZpZ3VyZTozODk0OiBcIiRhY19jb21waWxlXCIpIDE+JjU7IChldmFsICRh
Y19jb21waWxlKSAyPiY1OyB9OyB0aGVuDQoraWYgeyAoZXZhbCBlY2hvIGNv
bmZpZ3VyZTozODgzOiBcIiRhY19jb21waWxlXCIpIDE+JjU7IChldmFsICRh
Y19jb21waWxlKSAyPiY1OyB9OyB0aGVuDQogICBybSAtcmYgY29uZnRlc3Qq
DQogICBnZGJfY3Zfc3RydWN0X3JlZ19yX2dzPXllcw0KIGVsc2UNCkBAIC0z
OTExLDE5ICszOTAwLDE5IEBAIEVPRg0KIGZpDQogDQogZWNobyAkYWNfbiAi
Y2hlY2tpbmcgZm9yIFBUUkFDRV9HRVRSRUdTIiIuLi4gJGFjX2MiIDE+JjYN
Ci1lY2hvICJjb25maWd1cmU6MzkxNTogY2hlY2tpbmcgZm9yIFBUUkFDRV9H
RVRSRUdTIiA+JjUNCitlY2hvICJjb25maWd1cmU6MzkwNDogY2hlY2tpbmcg
Zm9yIFBUUkFDRV9HRVRSRUdTIiA+JjUNCiBpZiBldmFsICJ0ZXN0IFwiYGVj
aG8gJyQnJ3snZ2RiX2N2X2hhdmVfcHRyYWNlX2dldHJlZ3MnK3NldH0nYFwi
ID0gc2V0IjsgdGhlbg0KICAgZWNobyAkYWNfbiAiKGNhY2hlZCkgJGFjX2Mi
IDE+JjYNCiBlbHNlDQogICBjYXQgPiBjb25mdGVzdC4kYWNfZXh0IDw8RU9G
DQotI2xpbmUgMzkyMCAiY29uZmlndXJlIg0KKyNsaW5lIDM5MDkgImNvbmZp
Z3VyZSINCiAjaW5jbHVkZSAiY29uZmRlZnMuaCINCiAjaW5jbHVkZSA8c3lz
L3B0cmFjZS5oPg0KIGludCBtYWluKCkgew0KIFBUUkFDRV9HRVRSRUdTOw0K
IDsgcmV0dXJuIDA7IH0NCiBFT0YNCi1pZiB7IChldmFsIGVjaG8gY29uZmln
dXJlOjM5Mjc6IFwiJGFjX2NvbXBpbGVcIikgMT4mNTsgKGV2YWwgJGFjX2Nv
bXBpbGUpIDI+JjU7IH07IHRoZW4NCitpZiB7IChldmFsIGVjaG8gY29uZmln
dXJlOjM5MTY6IFwiJGFjX2NvbXBpbGVcIikgMT4mNTsgKGV2YWwgJGFjX2Nv
bXBpbGUpIDI+JjU7IH07IHRoZW4NCiAgIHJtIC1yZiBjb25mdGVzdCoNCiAg
IGdkYl9jdl9oYXZlX3B0cmFjZV9nZXRyZWdzPXllcw0KIGVsc2UNCkBAIC0z
OTQ0LDE5ICszOTMzLDE5IEBAIEVPRg0KIGZpDQogDQogZWNobyAkYWNfbiAi
Y2hlY2tpbmcgZm9yIFBUUkFDRV9HRVRYRlBSRUdTIiIuLi4gJGFjX2MiIDE+
JjYNCi1lY2hvICJjb25maWd1cmU6Mzk0ODogY2hlY2tpbmcgZm9yIFBUUkFD
RV9HRVRYRlBSRUdTIiA+JjUNCitlY2hvICJjb25maWd1cmU6MzkzNzogY2hl
Y2tpbmcgZm9yIFBUUkFDRV9HRVRYRlBSRUdTIiA+JjUNCiBpZiBldmFsICJ0
ZXN0IFwiYGVjaG8gJyQnJ3snZ2RiX2N2X2hhdmVfcHRyYWNlX2dldHhmcHJl
Z3MnK3NldH0nYFwiID0gc2V0IjsgdGhlbg0KICAgZWNobyAkYWNfbiAiKGNh
Y2hlZCkgJGFjX2MiIDE+JjYNCiBlbHNlDQogICBjYXQgPiBjb25mdGVzdC4k
YWNfZXh0IDw8RU9GDQotI2xpbmUgMzk1MyAiY29uZmlndXJlIg0KKyNsaW5l
IDM5NDIgImNvbmZpZ3VyZSINCiAjaW5jbHVkZSAiY29uZmRlZnMuaCINCiAj
aW5jbHVkZSA8c3lzL3B0cmFjZS5oPg0KIGludCBtYWluKCkgew0KIFBUUkFD
RV9HRVRYRlBSRUdTOw0KIDsgcmV0dXJuIDA7IH0NCiBFT0YNCi1pZiB7IChl
dmFsIGVjaG8gY29uZmlndXJlOjM5NjA6IFwiJGFjX2NvbXBpbGVcIikgMT4m
NTsgKGV2YWwgJGFjX2NvbXBpbGUpIDI+JjU7IH07IHRoZW4NCitpZiB7IChl
dmFsIGVjaG8gY29uZmlndXJlOjM5NDk6IFwiJGFjX2NvbXBpbGVcIikgMT4m
NTsgKGV2YWwgJGFjX2NvbXBpbGUpIDI+JjU7IH07IHRoZW4NCiAgIHJtIC1y
ZiBjb25mdGVzdCoNCiAgIGdkYl9jdl9oYXZlX3B0cmFjZV9nZXR4ZnByZWdz
PXllcw0KIGVsc2UNCkBAIC0zOTc3LDcgKzM5NjYsNyBAQCBFT0YNCiBmaQ0K
IA0KIGVjaG8gJGFjX24gImNoZWNraW5nIGZvciBzb2NrZXRwYWlyIGluIC1s
c29ja2V0IiIuLi4gJGFjX2MiIDE+JjYNCi1lY2hvICJjb25maWd1cmU6Mzk4
MTogY2hlY2tpbmcgZm9yIHNvY2tldHBhaXIgaW4gLWxzb2NrZXQiID4mNQ0K
K2VjaG8gImNvbmZpZ3VyZTozOTcwOiBjaGVja2luZyBmb3Igc29ja2V0cGFp
ciBpbiAtbHNvY2tldCIgPiY1DQogYWNfbGliX3Zhcj1gZWNobyBzb2NrZXQn
Xydzb2NrZXRwYWlyIHwgc2VkICd5JS4vKy0lX19wXyUnYA0KIGlmIGV2YWwg
InRlc3QgXCJgZWNobyAnJCcneydhY19jdl9saWJfJGFjX2xpYl92YXInK3Nl
dH0nYFwiID0gc2V0IjsgdGhlbg0KICAgZWNobyAkYWNfbiAiKGNhY2hlZCkg
JGFjX2MiIDE+JjYNCkBAIC0zOTg1LDcgKzM5NzQsNyBAQCBlbHNlDQogICBh
Y19zYXZlX0xJQlM9IiRMSUJTIg0KIExJQlM9Ii1sc29ja2V0ICAkTElCUyIN
CiBjYXQgPiBjb25mdGVzdC4kYWNfZXh0IDw8RU9GDQotI2xpbmUgMzk4OSAi
Y29uZmlndXJlIg0KKyNsaW5lIDM5NzggImNvbmZpZ3VyZSINCiAjaW5jbHVk
ZSAiY29uZmRlZnMuaCINCiAvKiBPdmVycmlkZSBhbnkgZ2NjMiBpbnRlcm5h
bCBwcm90b3R5cGUgdG8gYXZvaWQgYW4gZXJyb3IuICAqLw0KIC8qIFdlIHVz
ZSBjaGFyIGJlY2F1c2UgaW50IG1pZ2h0IG1hdGNoIHRoZSByZXR1cm4gdHlw
ZSBvZiBhIGdjYzINCkBAIC0zOTk2LDcgKzM5ODUsNyBAQCBpbnQgbWFpbigp
IHsNCiBzb2NrZXRwYWlyKCkNCiA7IHJldHVybiAwOyB9DQogRU9GDQotaWYg
eyAoZXZhbCBlY2hvIGNvbmZpZ3VyZTo0MDAwOiBcIiRhY19saW5rXCIpIDE+
JjU7IChldmFsICRhY19saW5rKSAyPiY1OyB9ICYmIHRlc3QgLXMgY29uZnRl
c3Qke2FjX2V4ZWV4dH07IHRoZW4NCitpZiB7IChldmFsIGVjaG8gY29uZmln
dXJlOjM5ODk6IFwiJGFjX2xpbmtcIikgMT4mNTsgKGV2YWwgJGFjX2xpbmsp
IDI+JjU7IH0gJiYgdGVzdCAtcyBjb25mdGVzdCR7YWNfZXhlZXh0fTsgdGhl
bg0KICAgcm0gLXJmIGNvbmZ0ZXN0Kg0KICAgZXZhbCAiYWNfY3ZfbGliXyRh
Y19saWJfdmFyPXllcyINCiBlbHNlDQpAQCAtNDAyNiwxMiArNDAxNSwxMiBA
QCBmaQ0KIGZvciBhY19mdW5jIGluIHNvY2tldHBhaXINCiBkbw0KIGVjaG8g
JGFjX24gImNoZWNraW5nIGZvciAkYWNfZnVuYyIiLi4uICRhY19jIiAxPiY2
DQotZWNobyAiY29uZmlndXJlOjQwMzA6IGNoZWNraW5nIGZvciAkYWNfZnVu
YyIgPiY1DQorZWNobyAiY29uZmlndXJlOjQwMTk6IGNoZWNraW5nIGZvciAk
YWNfZnVuYyIgPiY1DQogaWYgZXZhbCAidGVzdCBcImBlY2hvICckJyd7J2Fj
X2N2X2Z1bmNfJGFjX2Z1bmMnK3NldH0nYFwiID0gc2V0IjsgdGhlbg0KICAg
ZWNobyAkYWNfbiAiKGNhY2hlZCkgJGFjX2MiIDE+JjYNCiBlbHNlDQogICBj
YXQgPiBjb25mdGVzdC4kYWNfZXh0IDw8RU9GDQotI2xpbmUgNDAzNSAiY29u
ZmlndXJlIg0KKyNsaW5lIDQwMjQgImNvbmZpZ3VyZSINCiAjaW5jbHVkZSAi
Y29uZmRlZnMuaCINCiAvKiBTeXN0ZW0gaGVhZGVyIHRvIGRlZmluZSBfX3N0
dWIgbWFjcm9zIGFuZCBob3BlZnVsbHkgZmV3IHByb3RvdHlwZXMsDQogICAg
IHdoaWNoIGNhbiBjb25mbGljdCB3aXRoIGNoYXIgJGFjX2Z1bmMoKTsgYmVs
b3cuICAqLw0KQEAgLTQwNTQsNyArNDA0Myw3IEBAICRhY19mdW5jKCk7DQog
DQogOyByZXR1cm4gMDsgfQ0KIEVPRg0KLWlmIHsgKGV2YWwgZWNobyBjb25m
aWd1cmU6NDA1ODogXCIkYWNfbGlua1wiKSAxPiY1OyAoZXZhbCAkYWNfbGlu
aykgMj4mNTsgfSAmJiB0ZXN0IC1zIGNvbmZ0ZXN0JHthY19leGVleHR9OyB0
aGVuDQoraWYgeyAoZXZhbCBlY2hvIGNvbmZpZ3VyZTo0MDQ3OiBcIiRhY19s
aW5rXCIpIDE+JjU7IChldmFsICRhY19saW5rKSAyPiY1OyB9ICYmIHRlc3Qg
LXMgY29uZnRlc3Qke2FjX2V4ZWV4dH07IHRoZW4NCiAgIHJtIC1yZiBjb25m
dGVzdCoNCiAgIGV2YWwgImFjX2N2X2Z1bmNfJGFjX2Z1bmM9eWVzIg0KIGVs
c2UNCkBAIC00MDgxLDEyICs0MDcwLDEyIEBAIGRvbmUNCiANCiANCiBlY2hv
ICRhY19uICJjaGVja2luZyB3aGV0aGVyIG1hbGxvYyBtdXN0IGJlIGRlY2xh
cmVkIiIuLi4gJGFjX2MiIDE+JjYNCi1lY2hvICJjb25maWd1cmU6NDA4NTog
Y2hlY2tpbmcgd2hldGhlciBtYWxsb2MgbXVzdCBiZSBkZWNsYXJlZCIgPiY1
DQorZWNobyAiY29uZmlndXJlOjQwNzQ6IGNoZWNraW5nIHdoZXRoZXIgbWFs
bG9jIG11c3QgYmUgZGVjbGFyZWQiID4mNQ0KIGlmIGV2YWwgInRlc3QgXCJg
ZWNobyAnJCcneydiZmRfY3ZfZGVjbF9uZWVkZWRfbWFsbG9jJytzZXR9J2Bc
IiA9IHNldCI7IHRoZW4NCiAgIGVjaG8gJGFjX24gIihjYWNoZWQpICRhY19j
IiAxPiY2DQogZWxzZQ0KICAgY2F0ID4gY29uZnRlc3QuJGFjX2V4dCA8PEVP
Rg0KLSNsaW5lIDQwOTAgImNvbmZpZ3VyZSINCisjbGluZSA0MDc5ICJjb25m
aWd1cmUiDQogI2luY2x1ZGUgImNvbmZkZWZzLmgiDQogDQogI2luY2x1ZGUg
PHN0ZGlvLmg+DQpAQCAtNDEwNyw3ICs0MDk2LDcgQEAgaW50IG1haW4oKSB7
DQogY2hhciAqKCpwZm4pID0gKGNoYXIgKigqKSkgbWFsbG9jDQogOyByZXR1
cm4gMDsgfQ0KIEVPRg0KLWlmIHsgKGV2YWwgZWNobyBjb25maWd1cmU6NDEx
MTogXCIkYWNfY29tcGlsZVwiKSAxPiY1OyAoZXZhbCAkYWNfY29tcGlsZSkg
Mj4mNTsgfTsgdGhlbg0KK2lmIHsgKGV2YWwgZWNobyBjb25maWd1cmU6NDEw
MDogXCIkYWNfY29tcGlsZVwiKSAxPiY1OyAoZXZhbCAkYWNfY29tcGlsZSkg
Mj4mNTsgfTsgdGhlbg0KICAgcm0gLXJmIGNvbmZ0ZXN0Kg0KICAgYmZkX2N2
X2RlY2xfbmVlZGVkX21hbGxvYz1ubw0KIGVsc2UNCkBAIC00MTI4LDEyICs0
MTE3LDEyIEBAIEVPRg0KIGZpDQogDQogZWNobyAkYWNfbiAiY2hlY2tpbmcg
d2hldGhlciByZWFsbG9jIG11c3QgYmUgZGVjbGFyZWQiIi4uLiAkYWNfYyIg
MT4mNg0KLWVjaG8gImNvbmZpZ3VyZTo0MTMyOiBjaGVja2luZyB3aGV0aGVy
IHJlYWxsb2MgbXVzdCBiZSBkZWNsYXJlZCIgPiY1DQorZWNobyAiY29uZmln
dXJlOjQxMjE6IGNoZWNraW5nIHdoZXRoZXIgcmVhbGxvYyBtdXN0IGJlIGRl
Y2xhcmVkIiA+JjUNCiBpZiBldmFsICJ0ZXN0IFwiYGVjaG8gJyQnJ3snYmZk
X2N2X2RlY2xfbmVlZGVkX3JlYWxsb2MnK3NldH0nYFwiID0gc2V0IjsgdGhl
bg0KICAgZWNobyAkYWNfbiAiKGNhY2hlZCkgJGFjX2MiIDE+JjYNCiBlbHNl
DQogICBjYXQgPiBjb25mdGVzdC4kYWNfZXh0IDw8RU9GDQotI2xpbmUgNDEz
NyAiY29uZmlndXJlIg0KKyNsaW5lIDQxMjYgImNvbmZpZ3VyZSINCiAjaW5j
bHVkZSAiY29uZmRlZnMuaCINCiANCiAjaW5jbHVkZSA8c3RkaW8uaD4NCkBA
IC00MTU0LDcgKzQxNDMsNyBAQCBpbnQgbWFpbigpIHsNCiBjaGFyICooKnBm
bikgPSAoY2hhciAqKCopKSByZWFsbG9jDQogOyByZXR1cm4gMDsgfQ0KIEVP
Rg0KLWlmIHsgKGV2YWwgZWNobyBjb25maWd1cmU6NDE1ODogXCIkYWNfY29t
cGlsZVwiKSAxPiY1OyAoZXZhbCAkYWNfY29tcGlsZSkgMj4mNTsgfTsgdGhl
bg0KK2lmIHsgKGV2YWwgZWNobyBjb25maWd1cmU6NDE0NzogXCIkYWNfY29t
cGlsZVwiKSAxPiY1OyAoZXZhbCAkYWNfY29tcGlsZSkgMj4mNTsgfTsgdGhl
bg0KICAgcm0gLXJmIGNvbmZ0ZXN0Kg0KICAgYmZkX2N2X2RlY2xfbmVlZGVk
X3JlYWxsb2M9bm8NCiBlbHNlDQpAQCAtNDE3NSwxMiArNDE2NCwxMiBAQCBF
T0YNCiBmaQ0KIA0KIGVjaG8gJGFjX24gImNoZWNraW5nIHdoZXRoZXIgZnJl
ZSBtdXN0IGJlIGRlY2xhcmVkIiIuLi4gJGFjX2MiIDE+JjYNCi1lY2hvICJj
b25maWd1cmU6NDE3OTogY2hlY2tpbmcgd2hldGhlciBmcmVlIG11c3QgYmUg
ZGVjbGFyZWQiID4mNQ0KK2VjaG8gImNvbmZpZ3VyZTo0MTY4OiBjaGVja2lu
ZyB3aGV0aGVyIGZyZWUgbXVzdCBiZSBkZWNsYXJlZCIgPiY1DQogaWYgZXZh
bCAidGVzdCBcImBlY2hvICckJyd7J2JmZF9jdl9kZWNsX25lZWRlZF9mcmVl
JytzZXR9J2BcIiA9IHNldCI7IHRoZW4NCiAgIGVjaG8gJGFjX24gIihjYWNo
ZWQpICRhY19jIiAxPiY2DQogZWxzZQ0KICAgY2F0ID4gY29uZnRlc3QuJGFj
X2V4dCA8PEVPRg0KLSNsaW5lIDQxODQgImNvbmZpZ3VyZSINCisjbGluZSA0
MTczICJjb25maWd1cmUiDQogI2luY2x1ZGUgImNvbmZkZWZzLmgiDQogDQog
I2luY2x1ZGUgPHN0ZGlvLmg+DQpAQCAtNDIwMSw3ICs0MTkwLDcgQEAgaW50
IG1haW4oKSB7DQogY2hhciAqKCpwZm4pID0gKGNoYXIgKigqKSkgZnJlZQ0K
IDsgcmV0dXJuIDA7IH0NCiBFT0YNCi1pZiB7IChldmFsIGVjaG8gY29uZmln
dXJlOjQyMDU6IFwiJGFjX2NvbXBpbGVcIikgMT4mNTsgKGV2YWwgJGFjX2Nv
bXBpbGUpIDI+JjU7IH07IHRoZW4NCitpZiB7IChldmFsIGVjaG8gY29uZmln
dXJlOjQxOTQ6IFwiJGFjX2NvbXBpbGVcIikgMT4mNTsgKGV2YWwgJGFjX2Nv
bXBpbGUpIDI+JjU7IH07IHRoZW4NCiAgIHJtIC1yZiBjb25mdGVzdCoNCiAg
IGJmZF9jdl9kZWNsX25lZWRlZF9mcmVlPW5vDQogZWxzZQ0KQEAgLTQyMjIs
MTIgKzQyMTEsMTIgQEAgRU9GDQogZmkNCiANCiBlY2hvICRhY19uICJjaGVj
a2luZyB3aGV0aGVyIHN0cmVycm9yIG11c3QgYmUgZGVjbGFyZWQiIi4uLiAk
YWNfYyIgMT4mNg0KLWVjaG8gImNvbmZpZ3VyZTo0MjI2OiBjaGVja2luZyB3
aGV0aGVyIHN0cmVycm9yIG11c3QgYmUgZGVjbGFyZWQiID4mNQ0KK2VjaG8g
ImNvbmZpZ3VyZTo0MjE1OiBjaGVja2luZyB3aGV0aGVyIHN0cmVycm9yIG11
c3QgYmUgZGVjbGFyZWQiID4mNQ0KIGlmIGV2YWwgInRlc3QgXCJgZWNobyAn
JCcneydiZmRfY3ZfZGVjbF9uZWVkZWRfc3RyZXJyb3InK3NldH0nYFwiID0g
c2V0IjsgdGhlbg0KICAgZWNobyAkYWNfbiAiKGNhY2hlZCkgJGFjX2MiIDE+
JjYNCiBlbHNlDQogICBjYXQgPiBjb25mdGVzdC4kYWNfZXh0IDw8RU9GDQot
I2xpbmUgNDIzMSAiY29uZmlndXJlIg0KKyNsaW5lIDQyMjAgImNvbmZpZ3Vy
ZSINCiAjaW5jbHVkZSAiY29uZmRlZnMuaCINCiANCiAjaW5jbHVkZSA8c3Rk
aW8uaD4NCkBAIC00MjQ4LDcgKzQyMzcsNyBAQCBpbnQgbWFpbigpIHsNCiBj
aGFyICooKnBmbikgPSAoY2hhciAqKCopKSBzdHJlcnJvcg0KIDsgcmV0dXJu
IDA7IH0NCiBFT0YNCi1pZiB7IChldmFsIGVjaG8gY29uZmlndXJlOjQyNTI6
IFwiJGFjX2NvbXBpbGVcIikgMT4mNTsgKGV2YWwgJGFjX2NvbXBpbGUpIDI+
JjU7IH07IHRoZW4NCitpZiB7IChldmFsIGVjaG8gY29uZmlndXJlOjQyNDE6
IFwiJGFjX2NvbXBpbGVcIikgMT4mNTsgKGV2YWwgJGFjX2NvbXBpbGUpIDI+
JjU7IH07IHRoZW4NCiAgIHJtIC1yZiBjb25mdGVzdCoNCiAgIGJmZF9jdl9k
ZWNsX25lZWRlZF9zdHJlcnJvcj1ubw0KIGVsc2UNCkBAIC00MjY5LDEyICs0
MjU4LDEyIEBAIEVPRg0KIGZpDQogDQogZWNobyAkYWNfbiAiY2hlY2tpbmcg
d2hldGhlciBzdHJkdXAgbXVzdCBiZSBkZWNsYXJlZCIiLi4uICRhY19jIiAx
PiY2DQotZWNobyAiY29uZmlndXJlOjQyNzM6IGNoZWNraW5nIHdoZXRoZXIg
c3RyZHVwIG11c3QgYmUgZGVjbGFyZWQiID4mNQ0KK2VjaG8gImNvbmZpZ3Vy
ZTo0MjYyOiBjaGVja2luZyB3aGV0aGVyIHN0cmR1cCBtdXN0IGJlIGRlY2xh
cmVkIiA+JjUNCiBpZiBldmFsICJ0ZXN0IFwiYGVjaG8gJyQnJ3snYmZkX2N2
X2RlY2xfbmVlZGVkX3N0cmR1cCcrc2V0fSdgXCIgPSBzZXQiOyB0aGVuDQog
ICBlY2hvICRhY19uICIoY2FjaGVkKSAkYWNfYyIgMT4mNg0KIGVsc2UNCiAg
IGNhdCA+IGNvbmZ0ZXN0LiRhY19leHQgPDxFT0YNCi0jbGluZSA0Mjc4ICJj
b25maWd1cmUiDQorI2xpbmUgNDI2NyAiY29uZmlndXJlIg0KICNpbmNsdWRl
ICJjb25mZGVmcy5oIg0KIA0KICNpbmNsdWRlIDxzdGRpby5oPg0KQEAgLTQy
OTUsNyArNDI4NCw3IEBAIGludCBtYWluKCkgew0KIGNoYXIgKigqcGZuKSA9
IChjaGFyICooKikpIHN0cmR1cA0KIDsgcmV0dXJuIDA7IH0NCiBFT0YNCi1p
ZiB7IChldmFsIGVjaG8gY29uZmlndXJlOjQyOTk6IFwiJGFjX2NvbXBpbGVc
IikgMT4mNTsgKGV2YWwgJGFjX2NvbXBpbGUpIDI+JjU7IH07IHRoZW4NCitp
ZiB7IChldmFsIGVjaG8gY29uZmlndXJlOjQyODg6IFwiJGFjX2NvbXBpbGVc
IikgMT4mNTsgKGV2YWwgJGFjX2NvbXBpbGUpIDI+JjU7IH07IHRoZW4NCiAg
IHJtIC1yZiBjb25mdGVzdCoNCiAgIGJmZF9jdl9kZWNsX25lZWRlZF9zdHJk
dXA9bm8NCiBlbHNlDQpAQCAtNDMxNiwxMiArNDMwNSwxMiBAQCBFT0YNCiBm
aQ0KIA0KIGVjaG8gJGFjX24gImNoZWNraW5nIHdoZXRoZXIgc3Ryc3RyIG11
c3QgYmUgZGVjbGFyZWQiIi4uLiAkYWNfYyIgMT4mNg0KLWVjaG8gImNvbmZp
Z3VyZTo0MzIwOiBjaGVja2luZyB3aGV0aGVyIHN0cnN0ciBtdXN0IGJlIGRl
Y2xhcmVkIiA+JjUNCitlY2hvICJjb25maWd1cmU6NDMwOTogY2hlY2tpbmcg
d2hldGhlciBzdHJzdHIgbXVzdCBiZSBkZWNsYXJlZCIgPiY1DQogaWYgZXZh
bCAidGVzdCBcImBlY2hvICckJyd7J2JmZF9jdl9kZWNsX25lZWRlZF9zdHJz
dHInK3NldH0nYFwiID0gc2V0IjsgdGhlbg0KICAgZWNobyAkYWNfbiAiKGNh
Y2hlZCkgJGFjX2MiIDE+JjYNCiBlbHNlDQogICBjYXQgPiBjb25mdGVzdC4k
YWNfZXh0IDw8RU9GDQotI2xpbmUgNDMyNSAiY29uZmlndXJlIg0KKyNsaW5l
IDQzMTQgImNvbmZpZ3VyZSINCiAjaW5jbHVkZSAiY29uZmRlZnMuaCINCiAN
CiAjaW5jbHVkZSA8c3RkaW8uaD4NCkBAIC00MzQyLDcgKzQzMzEsNyBAQCBp
bnQgbWFpbigpIHsNCiBjaGFyICooKnBmbikgPSAoY2hhciAqKCopKSBzdHJz
dHINCiA7IHJldHVybiAwOyB9DQogRU9GDQotaWYgeyAoZXZhbCBlY2hvIGNv
bmZpZ3VyZTo0MzQ2OiBcIiRhY19jb21waWxlXCIpIDE+JjU7IChldmFsICRh
Y19jb21waWxlKSAyPiY1OyB9OyB0aGVuDQoraWYgeyAoZXZhbCBlY2hvIGNv
bmZpZ3VyZTo0MzM1OiBcIiRhY19jb21waWxlXCIpIDE+JjU7IChldmFsICRh
Y19jb21waWxlKSAyPiY1OyB9OyB0aGVuDQogICBybSAtcmYgY29uZnRlc3Qq
DQogICBiZmRfY3ZfZGVjbF9uZWVkZWRfc3Ryc3RyPW5vDQogZWxzZQ0KQEAg
LTQzNjksOSArNDM1OCw5IEBAIGZpDQogIyBjb3VsZCBiZSBleHB1bmdlZC4g
LS1qc20gMTk5OS0wMy0yMg0KIA0KIGVjaG8gJGFjX24gImNoZWNraW5nIGZv
ciBIUFVYIHNhdmVfc3RhdGUgc3RydWN0dXJlIiIuLi4gJGFjX2MiIDE+JjYN
Ci1lY2hvICJjb25maWd1cmU6NDM3MzogY2hlY2tpbmcgZm9yIEhQVVggc2F2
ZV9zdGF0ZSBzdHJ1Y3R1cmUiID4mNQ0KK2VjaG8gImNvbmZpZ3VyZTo0MzYy
OiBjaGVja2luZyBmb3IgSFBVWCBzYXZlX3N0YXRlIHN0cnVjdHVyZSIgPiY1
DQogY2F0ID4gY29uZnRlc3QuJGFjX2V4dCA8PEVPRg0KLSNsaW5lIDQzNzUg
ImNvbmZpZ3VyZSINCisjbGluZSA0MzY0ICJjb25maWd1cmUiDQogI2luY2x1
ZGUgImNvbmZkZWZzLmgiDQogI2luY2x1ZGUgPG1hY2hpbmUvc2F2ZV9zdGF0
ZS5oPg0KIEVPRg0KQEAgLTQzODYsNyArNDM3NSw3IEBAIGZpDQogcm0gLWYg
Y29uZnRlc3QqDQogDQogY2F0ID4gY29uZnRlc3QuJGFjX2V4dCA8PEVPRg0K
LSNsaW5lIDQzOTAgImNvbmZpZ3VyZSINCisjbGluZSA0Mzc5ICJjb25maWd1
cmUiDQogI2luY2x1ZGUgImNvbmZkZWZzLmgiDQogI2luY2x1ZGUgPG1hY2hp
bmUvc2F2ZV9zdGF0ZS5oPg0KIEVPRg0KQEAgLTQ0NTAsMTkgKzQ0MzksMTkg
QEAgZmkNCiANCiBpZiB0ZXN0ICIkYWNfY3ZfaGVhZGVyX3N5c19wcm9jZnNf
aCIgPSB5ZXM7IHRoZW4NCiAgIGVjaG8gJGFjX24gImNoZWNraW5nIGZvciBw
c3RhdHVzX3QgaW4gc3lzL3Byb2Nmcy5oIiIuLi4gJGFjX2MiIDE+JjYNCi1l
Y2hvICJjb25maWd1cmU6NDQ1NDogY2hlY2tpbmcgZm9yIHBzdGF0dXNfdCBp
biBzeXMvcHJvY2ZzLmgiID4mNQ0KK2VjaG8gImNvbmZpZ3VyZTo0NDQzOiBj
aGVja2luZyBmb3IgcHN0YXR1c190IGluIHN5cy9wcm9jZnMuaCIgPiY1DQog
IGlmIGV2YWwgInRlc3QgXCJgZWNobyAnJCcneydiZmRfY3ZfaGF2ZV9zeXNf
cHJvY2ZzX3R5cGVfcHN0YXR1c190JytzZXR9J2BcIiA9IHNldCI7IHRoZW4N
CiAgIGVjaG8gJGFjX24gIihjYWNoZWQpICRhY19jIiAxPiY2DQogZWxzZQ0K
ICAgY2F0ID4gY29uZnRlc3QuJGFjX2V4dCA8PEVPRg0KLSNsaW5lIDQ0NTkg
ImNvbmZpZ3VyZSINCisjbGluZSA0NDQ4ICJjb25maWd1cmUiDQogI2luY2x1
ZGUgImNvbmZkZWZzLmgiDQogI2luY2x1ZGUgPHN5cy9wcm9jZnMuaD4NCiBp
bnQgbWFpbigpIHsNCiBwc3RhdHVzX3QgYXZhcg0KIDsgcmV0dXJuIDA7IH0N
CiBFT0YNCi1pZiB7IChldmFsIGVjaG8gY29uZmlndXJlOjQ0NjY6IFwiJGFj
X2NvbXBpbGVcIikgMT4mNTsgKGV2YWwgJGFjX2NvbXBpbGUpIDI+JjU7IH07
IHRoZW4NCitpZiB7IChldmFsIGVjaG8gY29uZmlndXJlOjQ0NTU6IFwiJGFj
X2NvbXBpbGVcIikgMT4mNTsgKGV2YWwgJGFjX2NvbXBpbGUpIDI+JjU7IH07
IHRoZW4NCiAgIHJtIC1yZiBjb25mdGVzdCoNCiAgIGJmZF9jdl9oYXZlX3N5
c19wcm9jZnNfdHlwZV9wc3RhdHVzX3Q9eWVzDQogZWxzZQ0KQEAgLTQ0ODQs
MTkgKzQ0NzMsMTkgQEAgRU9GDQogIGVjaG8gIiRhY190IiIkYmZkX2N2X2hh
dmVfc3lzX3Byb2Nmc190eXBlX3BzdGF0dXNfdCIgMT4mNg0KIA0KICAgZWNo
byAkYWNfbiAiY2hlY2tpbmcgZm9yIHBycnVuX3QgaW4gc3lzL3Byb2Nmcy5o
IiIuLi4gJGFjX2MiIDE+JjYNCi1lY2hvICJjb25maWd1cmU6NDQ4ODogY2hl
Y2tpbmcgZm9yIHBycnVuX3QgaW4gc3lzL3Byb2Nmcy5oIiA+JjUNCitlY2hv
ICJjb25maWd1cmU6NDQ3NzogY2hlY2tpbmcgZm9yIHBycnVuX3QgaW4gc3lz
L3Byb2Nmcy5oIiA+JjUNCiAgaWYgZXZhbCAidGVzdCBcImBlY2hvICckJyd7
J2JmZF9jdl9oYXZlX3N5c19wcm9jZnNfdHlwZV9wcnJ1bl90JytzZXR9J2Bc
IiA9IHNldCI7IHRoZW4NCiAgIGVjaG8gJGFjX24gIihjYWNoZWQpICRhY19j
IiAxPiY2DQogZWxzZQ0KICAgY2F0ID4gY29uZnRlc3QuJGFjX2V4dCA8PEVP
Rg0KLSNsaW5lIDQ0OTMgImNvbmZpZ3VyZSINCisjbGluZSA0NDgyICJjb25m
aWd1cmUiDQogI2luY2x1ZGUgImNvbmZkZWZzLmgiDQogI2luY2x1ZGUgPHN5
cy9wcm9jZnMuaD4NCiBpbnQgbWFpbigpIHsNCiBwcnJ1bl90IGF2YXINCiA7
IHJldHVybiAwOyB9DQogRU9GDQotaWYgeyAoZXZhbCBlY2hvIGNvbmZpZ3Vy
ZTo0NTAwOiBcIiRhY19jb21waWxlXCIpIDE+JjU7IChldmFsICRhY19jb21w
aWxlKSAyPiY1OyB9OyB0aGVuDQoraWYgeyAoZXZhbCBlY2hvIGNvbmZpZ3Vy
ZTo0NDg5OiBcIiRhY19jb21waWxlXCIpIDE+JjU7IChldmFsICRhY19jb21w
aWxlKSAyPiY1OyB9OyB0aGVuDQogICBybSAtcmYgY29uZnRlc3QqDQogICBi
ZmRfY3ZfaGF2ZV9zeXNfcHJvY2ZzX3R5cGVfcHJydW5fdD15ZXMNCiBlbHNl
DQpAQCAtNDUxOCwxOSArNDUwNywxOSBAQCBFT0YNCiAgZWNobyAiJGFjX3Qi
IiRiZmRfY3ZfaGF2ZV9zeXNfcHJvY2ZzX3R5cGVfcHJydW5fdCIgMT4mNg0K
IA0KICAgZWNobyAkYWNfbiAiY2hlY2tpbmcgZm9yIGdyZWdzZXRfdCBpbiBz
eXMvcHJvY2ZzLmgiIi4uLiAkYWNfYyIgMT4mNg0KLWVjaG8gImNvbmZpZ3Vy
ZTo0NTIyOiBjaGVja2luZyBmb3IgZ3JlZ3NldF90IGluIHN5cy9wcm9jZnMu
aCIgPiY1DQorZWNobyAiY29uZmlndXJlOjQ1MTE6IGNoZWNraW5nIGZvciBn
cmVnc2V0X3QgaW4gc3lzL3Byb2Nmcy5oIiA+JjUNCiAgaWYgZXZhbCAidGVz
dCBcImBlY2hvICckJyd7J2JmZF9jdl9oYXZlX3N5c19wcm9jZnNfdHlwZV9n
cmVnc2V0X3QnK3NldH0nYFwiID0gc2V0IjsgdGhlbg0KICAgZWNobyAkYWNf
biAiKGNhY2hlZCkgJGFjX2MiIDE+JjYNCiBlbHNlDQogICBjYXQgPiBjb25m
dGVzdC4kYWNfZXh0IDw8RU9GDQotI2xpbmUgNDUyNyAiY29uZmlndXJlIg0K
KyNsaW5lIDQ1MTYgImNvbmZpZ3VyZSINCiAjaW5jbHVkZSAiY29uZmRlZnMu
aCINCiAjaW5jbHVkZSA8c3lzL3Byb2Nmcy5oPg0KIGludCBtYWluKCkgew0K
IGdyZWdzZXRfdCBhdmFyDQogOyByZXR1cm4gMDsgfQ0KIEVPRg0KLWlmIHsg
KGV2YWwgZWNobyBjb25maWd1cmU6NDUzNDogXCIkYWNfY29tcGlsZVwiKSAx
PiY1OyAoZXZhbCAkYWNfY29tcGlsZSkgMj4mNTsgfTsgdGhlbg0KK2lmIHsg
KGV2YWwgZWNobyBjb25maWd1cmU6NDUyMzogXCIkYWNfY29tcGlsZVwiKSAx
PiY1OyAoZXZhbCAkYWNfY29tcGlsZSkgMj4mNTsgfTsgdGhlbg0KICAgcm0g
LXJmIGNvbmZ0ZXN0Kg0KICAgYmZkX2N2X2hhdmVfc3lzX3Byb2Nmc190eXBl
X2dyZWdzZXRfdD15ZXMNCiBlbHNlDQpAQCAtNDU1MiwxOSArNDU0MSwxOSBA
QCBFT0YNCiAgZWNobyAiJGFjX3QiIiRiZmRfY3ZfaGF2ZV9zeXNfcHJvY2Zz
X3R5cGVfZ3JlZ3NldF90IiAxPiY2DQogDQogICBlY2hvICRhY19uICJjaGVj
a2luZyBmb3IgZnByZWdzZXRfdCBpbiBzeXMvcHJvY2ZzLmgiIi4uLiAkYWNf
YyIgMT4mNg0KLWVjaG8gImNvbmZpZ3VyZTo0NTU2OiBjaGVja2luZyBmb3Ig
ZnByZWdzZXRfdCBpbiBzeXMvcHJvY2ZzLmgiID4mNQ0KK2VjaG8gImNvbmZp
Z3VyZTo0NTQ1OiBjaGVja2luZyBmb3IgZnByZWdzZXRfdCBpbiBzeXMvcHJv
Y2ZzLmgiID4mNQ0KICBpZiBldmFsICJ0ZXN0IFwiYGVjaG8gJyQnJ3snYmZk
X2N2X2hhdmVfc3lzX3Byb2Nmc190eXBlX2ZwcmVnc2V0X3QnK3NldH0nYFwi
ID0gc2V0IjsgdGhlbg0KICAgZWNobyAkYWNfbiAiKGNhY2hlZCkgJGFjX2Mi
IDE+JjYNCiBlbHNlDQogICBjYXQgPiBjb25mdGVzdC4kYWNfZXh0IDw8RU9G
DQotI2xpbmUgNDU2MSAiY29uZmlndXJlIg0KKyNsaW5lIDQ1NTAgImNvbmZp
Z3VyZSINCiAjaW5jbHVkZSAiY29uZmRlZnMuaCINCiAjaW5jbHVkZSA8c3lz
L3Byb2Nmcy5oPg0KIGludCBtYWluKCkgew0KIGZwcmVnc2V0X3QgYXZhcg0K
IDsgcmV0dXJuIDA7IH0NCiBFT0YNCi1pZiB7IChldmFsIGVjaG8gY29uZmln
dXJlOjQ1Njg6IFwiJGFjX2NvbXBpbGVcIikgMT4mNTsgKGV2YWwgJGFjX2Nv
bXBpbGUpIDI+JjU7IH07IHRoZW4NCitpZiB7IChldmFsIGVjaG8gY29uZmln
dXJlOjQ1NTc6IFwiJGFjX2NvbXBpbGVcIikgMT4mNTsgKGV2YWwgJGFjX2Nv
bXBpbGUpIDI+JjU7IH07IHRoZW4NCiAgIHJtIC1yZiBjb25mdGVzdCoNCiAg
IGJmZF9jdl9oYXZlX3N5c19wcm9jZnNfdHlwZV9mcHJlZ3NldF90PXllcw0K
IGVsc2UNCkBAIC00NTg2LDE5ICs0NTc1LDE5IEBAIEVPRg0KICBlY2hvICIk
YWNfdCIiJGJmZF9jdl9oYXZlX3N5c19wcm9jZnNfdHlwZV9mcHJlZ3NldF90
IiAxPiY2DQogDQogICBlY2hvICRhY19uICJjaGVja2luZyBmb3IgcHJncmVn
c2V0X3QgaW4gc3lzL3Byb2Nmcy5oIiIuLi4gJGFjX2MiIDE+JjYNCi1lY2hv
ICJjb25maWd1cmU6NDU5MDogY2hlY2tpbmcgZm9yIHByZ3JlZ3NldF90IGlu
IHN5cy9wcm9jZnMuaCIgPiY1DQorZWNobyAiY29uZmlndXJlOjQ1Nzk6IGNo
ZWNraW5nIGZvciBwcmdyZWdzZXRfdCBpbiBzeXMvcHJvY2ZzLmgiID4mNQ0K
ICBpZiBldmFsICJ0ZXN0IFwiYGVjaG8gJyQnJ3snYmZkX2N2X2hhdmVfc3lz
X3Byb2Nmc190eXBlX3ByZ3JlZ3NldF90JytzZXR9J2BcIiA9IHNldCI7IHRo
ZW4NCiAgIGVjaG8gJGFjX24gIihjYWNoZWQpICRhY19jIiAxPiY2DQogZWxz
ZQ0KICAgY2F0ID4gY29uZnRlc3QuJGFjX2V4dCA8PEVPRg0KLSNsaW5lIDQ1
OTUgImNvbmZpZ3VyZSINCisjbGluZSA0NTg0ICJjb25maWd1cmUiDQogI2lu
Y2x1ZGUgImNvbmZkZWZzLmgiDQogI2luY2x1ZGUgPHN5cy9wcm9jZnMuaD4N
CiBpbnQgbWFpbigpIHsNCiBwcmdyZWdzZXRfdCBhdmFyDQogOyByZXR1cm4g
MDsgfQ0KIEVPRg0KLWlmIHsgKGV2YWwgZWNobyBjb25maWd1cmU6NDYwMjog
XCIkYWNfY29tcGlsZVwiKSAxPiY1OyAoZXZhbCAkYWNfY29tcGlsZSkgMj4m
NTsgfTsgdGhlbg0KK2lmIHsgKGV2YWwgZWNobyBjb25maWd1cmU6NDU5MTog
XCIkYWNfY29tcGlsZVwiKSAxPiY1OyAoZXZhbCAkYWNfY29tcGlsZSkgMj4m
NTsgfTsgdGhlbg0KICAgcm0gLXJmIGNvbmZ0ZXN0Kg0KICAgYmZkX2N2X2hh
dmVfc3lzX3Byb2Nmc190eXBlX3ByZ3JlZ3NldF90PXllcw0KIGVsc2UNCkBA
IC00NjIwLDE5ICs0NjA5LDE5IEBAIEVPRg0KICBlY2hvICIkYWNfdCIiJGJm
ZF9jdl9oYXZlX3N5c19wcm9jZnNfdHlwZV9wcmdyZWdzZXRfdCIgMT4mNg0K
IA0KICAgZWNobyAkYWNfbiAiY2hlY2tpbmcgZm9yIHByZnByZWdzZXRfdCBp
biBzeXMvcHJvY2ZzLmgiIi4uLiAkYWNfYyIgMT4mNg0KLWVjaG8gImNvbmZp
Z3VyZTo0NjI0OiBjaGVja2luZyBmb3IgcHJmcHJlZ3NldF90IGluIHN5cy9w
cm9jZnMuaCIgPiY1DQorZWNobyAiY29uZmlndXJlOjQ2MTM6IGNoZWNraW5n
IGZvciBwcmZwcmVnc2V0X3QgaW4gc3lzL3Byb2Nmcy5oIiA+JjUNCiAgaWYg
ZXZhbCAidGVzdCBcImBlY2hvICckJyd7J2JmZF9jdl9oYXZlX3N5c19wcm9j
ZnNfdHlwZV9wcmZwcmVnc2V0X3QnK3NldH0nYFwiID0gc2V0IjsgdGhlbg0K
ICAgZWNobyAkYWNfbiAiKGNhY2hlZCkgJGFjX2MiIDE+JjYNCiBlbHNlDQog
ICBjYXQgPiBjb25mdGVzdC4kYWNfZXh0IDw8RU9GDQotI2xpbmUgNDYyOSAi
Y29uZmlndXJlIg0KKyNsaW5lIDQ2MTggImNvbmZpZ3VyZSINCiAjaW5jbHVk
ZSAiY29uZmRlZnMuaCINCiAjaW5jbHVkZSA8c3lzL3Byb2Nmcy5oPg0KIGlu
dCBtYWluKCkgew0KIHByZnByZWdzZXRfdCBhdmFyDQogOyByZXR1cm4gMDsg
fQ0KIEVPRg0KLWlmIHsgKGV2YWwgZWNobyBjb25maWd1cmU6NDYzNjogXCIk
YWNfY29tcGlsZVwiKSAxPiY1OyAoZXZhbCAkYWNfY29tcGlsZSkgMj4mNTsg
fTsgdGhlbg0KK2lmIHsgKGV2YWwgZWNobyBjb25maWd1cmU6NDYyNTogXCIk
YWNfY29tcGlsZVwiKSAxPiY1OyAoZXZhbCAkYWNfY29tcGlsZSkgMj4mNTsg
fTsgdGhlbg0KICAgcm0gLXJmIGNvbmZ0ZXN0Kg0KICAgYmZkX2N2X2hhdmVf
c3lzX3Byb2Nmc190eXBlX3ByZnByZWdzZXRfdD15ZXMNCiBlbHNlDQpAQCAt
NDY1NCwxOSArNDY0MywxOSBAQCBFT0YNCiAgZWNobyAiJGFjX3QiIiRiZmRf
Y3ZfaGF2ZV9zeXNfcHJvY2ZzX3R5cGVfcHJmcHJlZ3NldF90IiAxPiY2DQog
DQogICBlY2hvICRhY19uICJjaGVja2luZyBmb3IgbHdwaWRfdCBpbiBzeXMv
cHJvY2ZzLmgiIi4uLiAkYWNfYyIgMT4mNg0KLWVjaG8gImNvbmZpZ3VyZTo0
NjU4OiBjaGVja2luZyBmb3IgbHdwaWRfdCBpbiBzeXMvcHJvY2ZzLmgiID4m
NQ0KK2VjaG8gImNvbmZpZ3VyZTo0NjQ3OiBjaGVja2luZyBmb3IgbHdwaWRf
dCBpbiBzeXMvcHJvY2ZzLmgiID4mNQ0KICBpZiBldmFsICJ0ZXN0IFwiYGVj
aG8gJyQnJ3snYmZkX2N2X2hhdmVfc3lzX3Byb2Nmc190eXBlX2x3cGlkX3Qn
K3NldH0nYFwiID0gc2V0IjsgdGhlbg0KICAgZWNobyAkYWNfbiAiKGNhY2hl
ZCkgJGFjX2MiIDE+JjYNCiBlbHNlDQogICBjYXQgPiBjb25mdGVzdC4kYWNf
ZXh0IDw8RU9GDQotI2xpbmUgNDY2MyAiY29uZmlndXJlIg0KKyNsaW5lIDQ2
NTIgImNvbmZpZ3VyZSINCiAjaW5jbHVkZSAiY29uZmRlZnMuaCINCiAjaW5j
bHVkZSA8c3lzL3Byb2Nmcy5oPg0KIGludCBtYWluKCkgew0KIGx3cGlkX3Qg
YXZhcg0KIDsgcmV0dXJuIDA7IH0NCiBFT0YNCi1pZiB7IChldmFsIGVjaG8g
Y29uZmlndXJlOjQ2NzA6IFwiJGFjX2NvbXBpbGVcIikgMT4mNTsgKGV2YWwg
JGFjX2NvbXBpbGUpIDI+JjU7IH07IHRoZW4NCitpZiB7IChldmFsIGVjaG8g
Y29uZmlndXJlOjQ2NTk6IFwiJGFjX2NvbXBpbGVcIikgMT4mNTsgKGV2YWwg
JGFjX2NvbXBpbGUpIDI+JjU7IH07IHRoZW4NCiAgIHJtIC1yZiBjb25mdGVz
dCoNCiAgIGJmZF9jdl9oYXZlX3N5c19wcm9jZnNfdHlwZV9sd3BpZF90PXll
cw0KIGVsc2UNCkBAIC00Njg4LDE5ICs0Njc3LDE5IEBAIEVPRg0KICBlY2hv
ICIkYWNfdCIiJGJmZF9jdl9oYXZlX3N5c19wcm9jZnNfdHlwZV9sd3BpZF90
IiAxPiY2DQogDQogICBlY2hvICRhY19uICJjaGVja2luZyBmb3IgcHNhZGRy
X3QgaW4gc3lzL3Byb2Nmcy5oIiIuLi4gJGFjX2MiIDE+JjYNCi1lY2hvICJj
b25maWd1cmU6NDY5MjogY2hlY2tpbmcgZm9yIHBzYWRkcl90IGluIHN5cy9w
cm9jZnMuaCIgPiY1DQorZWNobyAiY29uZmlndXJlOjQ2ODE6IGNoZWNraW5n
IGZvciBwc2FkZHJfdCBpbiBzeXMvcHJvY2ZzLmgiID4mNQ0KICBpZiBldmFs
ICJ0ZXN0IFwiYGVjaG8gJyQnJ3snYmZkX2N2X2hhdmVfc3lzX3Byb2Nmc190
eXBlX3BzYWRkcl90JytzZXR9J2BcIiA9IHNldCI7IHRoZW4NCiAgIGVjaG8g
JGFjX24gIihjYWNoZWQpICRhY19jIiAxPiY2DQogZWxzZQ0KICAgY2F0ID4g
Y29uZnRlc3QuJGFjX2V4dCA8PEVPRg0KLSNsaW5lIDQ2OTcgImNvbmZpZ3Vy
ZSINCisjbGluZSA0Njg2ICJjb25maWd1cmUiDQogI2luY2x1ZGUgImNvbmZk
ZWZzLmgiDQogI2luY2x1ZGUgPHN5cy9wcm9jZnMuaD4NCiBpbnQgbWFpbigp
IHsNCiBwc2FkZHJfdCBhdmFyDQogOyByZXR1cm4gMDsgfQ0KIEVPRg0KLWlm
IHsgKGV2YWwgZWNobyBjb25maWd1cmU6NDcwNDogXCIkYWNfY29tcGlsZVwi
KSAxPiY1OyAoZXZhbCAkYWNfY29tcGlsZSkgMj4mNTsgfTsgdGhlbg0KK2lm
IHsgKGV2YWwgZWNobyBjb25maWd1cmU6NDY5MzogXCIkYWNfY29tcGlsZVwi
KSAxPiY1OyAoZXZhbCAkYWNfY29tcGlsZSkgMj4mNTsgfTsgdGhlbg0KICAg
cm0gLXJmIGNvbmZ0ZXN0Kg0KICAgYmZkX2N2X2hhdmVfc3lzX3Byb2Nmc190
eXBlX3BzYWRkcl90PXllcw0KIGVsc2UNCkBAIC00NzI2LDcgKzQ3MTUsNyBA
QCBFT0YNCiAgICAgICAgIA0KICAgaWYgdGVzdCAkYmZkX2N2X2hhdmVfc3lz
X3Byb2Nmc190eXBlX3ByZnByZWdzZXRfdCA9IHllczsgdGhlbg0KICAgICBl
Y2hvICRhY19uICJjaGVja2luZyB3aGV0aGVyIHByZnByZWdzZXRfdCB0eXBl
IGlzIGJyb2tlbiIiLi4uICRhY19jIiAxPiY2DQotZWNobyAiY29uZmlndXJl
OjQ3MzA6IGNoZWNraW5nIHdoZXRoZXIgcHJmcHJlZ3NldF90IHR5cGUgaXMg
YnJva2VuIiA+JjUNCitlY2hvICJjb25maWd1cmU6NDcxOTogY2hlY2tpbmcg
d2hldGhlciBwcmZwcmVnc2V0X3QgdHlwZSBpcyBicm9rZW4iID4mNQ0KICAg
ICBpZiBldmFsICJ0ZXN0IFwiYGVjaG8gJyQnJ3snZ2RiX2N2X3ByZnByZWdz
ZXRfdF9icm9rZW4nK3NldH0nYFwiID0gc2V0IjsgdGhlbg0KICAgZWNobyAk
YWNfbiAiKGNhY2hlZCkgJGFjX2MiIDE+JjYNCiBlbHNlDQpAQCAtNDczNCw3
ICs0NzIzLDcgQEAgZWxzZQ0KICAgZ2RiX2N2X3ByZnByZWdzZXRfdF9icm9r
ZW49eWVzDQogZWxzZQ0KICAgY2F0ID4gY29uZnRlc3QuJGFjX2V4dCA8PEVP
Rg0KLSNsaW5lIDQ3MzggImNvbmZpZ3VyZSINCisjbGluZSA0NzI3ICJjb25m
aWd1cmUiDQogI2luY2x1ZGUgImNvbmZkZWZzLmgiDQogI2luY2x1ZGUgPHN5
cy9wcm9jZnMuaD4NCiAgICAgICAgaW50IG1haW4gKCkNCkBAIC00NzQ0LDcg
KzQ3MzMsNyBAQCBlbHNlDQogICAgICAgICAgcmV0dXJuIDA7DQogICAgICAg
IH0NCiBFT0YNCi1pZiB7IChldmFsIGVjaG8gY29uZmlndXJlOjQ3NDg6IFwi
JGFjX2xpbmtcIikgMT4mNTsgKGV2YWwgJGFjX2xpbmspIDI+JjU7IH0gJiYg
dGVzdCAtcyBjb25mdGVzdCR7YWNfZXhlZXh0fSAmJiAoLi9jb25mdGVzdDsg
ZXhpdCkgMj4vZGV2L251bGwNCitpZiB7IChldmFsIGVjaG8gY29uZmlndXJl
OjQ3Mzc6IFwiJGFjX2xpbmtcIikgMT4mNTsgKGV2YWwgJGFjX2xpbmspIDI+
JjU7IH0gJiYgdGVzdCAtcyBjb25mdGVzdCR7YWNfZXhlZXh0fSAmJiAoLi9j
b25mdGVzdDsgZXhpdCkgMj4vZGV2L251bGwNCiB0aGVuDQogICBnZGJfY3Zf
cHJmcHJlZ3NldF90X2Jyb2tlbj1ubw0KIGVsc2UNCkBAIC00NzY5LDEyICs0
NzU4LDEyIEBAIEVPRg0KIA0KICAgDQogICBlY2hvICRhY19uICJjaGVja2lu
ZyBmb3IgUElPQ1NFVCBpb2N0bCBlbnRyeSBpbiBzeXMvcHJvY2ZzLmgiIi4u
LiAkYWNfYyIgMT4mNg0KLWVjaG8gImNvbmZpZ3VyZTo0NzczOiBjaGVja2lu
ZyBmb3IgUElPQ1NFVCBpb2N0bCBlbnRyeSBpbiBzeXMvcHJvY2ZzLmgiID4m
NQ0KK2VjaG8gImNvbmZpZ3VyZTo0NzYyOiBjaGVja2luZyBmb3IgUElPQ1NF
VCBpb2N0bCBlbnRyeSBpbiBzeXMvcHJvY2ZzLmgiID4mNQ0KICAgaWYgZXZh
bCAidGVzdCBcImBlY2hvICckJyd7J2dkYl9jdl9oYXZlX3Byb2Nmc19waW9j
c2V0JytzZXR9J2BcIiA9IHNldCI7IHRoZW4NCiAgIGVjaG8gJGFjX24gIihj
YWNoZWQpICRhY19jIiAxPiY2DQogZWxzZQ0KICAgY2F0ID4gY29uZnRlc3Qu
JGFjX2V4dCA8PEVPRg0KLSNsaW5lIDQ3NzggImNvbmZpZ3VyZSINCisjbGlu
ZSA0NzY3ICJjb25maWd1cmUiDQogI2luY2x1ZGUgImNvbmZkZWZzLmgiDQog
I2luY2x1ZGUgPHVuaXN0ZC5oPg0KICNpbmNsdWRlIDxzeXMvdHlwZXMuaD4N
CkBAIC00Nzg3LDcgKzQ3NzYsNyBAQCBpbnQgbWFpbigpIHsNCiAgIA0KIDsg
cmV0dXJuIDA7IH0NCiBFT0YNCi1pZiB7IChldmFsIGVjaG8gY29uZmlndXJl
OjQ3OTE6IFwiJGFjX2NvbXBpbGVcIikgMT4mNTsgKGV2YWwgJGFjX2NvbXBp
bGUpIDI+JjU7IH07IHRoZW4NCitpZiB7IChldmFsIGVjaG8gY29uZmlndXJl
OjQ3ODA6IFwiJGFjX2NvbXBpbGVcIikgMT4mNTsgKGV2YWwgJGFjX2NvbXBp
bGUpIDI+JjU7IH07IHRoZW4NCiAgIHJtIC1yZiBjb25mdGVzdCoNCiAgIGdk
Yl9jdl9oYXZlX3Byb2Nmc19waW9jc2V0PXllcw0KIGVsc2UNCkBAIC00ODA5
LDcgKzQ3OTgsNyBAQCBFT0YNCiBmaQ0KIA0KIGVjaG8gJGFjX24gImNoZWNr
aW5nIGZvciBtYWluIGluIC1sbSIiLi4uICRhY19jIiAxPiY2DQotZWNobyAi
Y29uZmlndXJlOjQ4MTM6IGNoZWNraW5nIGZvciBtYWluIGluIC1sbSIgPiY1
DQorZWNobyAiY29uZmlndXJlOjQ4MDI6IGNoZWNraW5nIGZvciBtYWluIGlu
IC1sbSIgPiY1DQogYWNfbGliX3Zhcj1gZWNobyBtJ18nbWFpbiB8IHNlZCAn
eSUuLystJV9fcF8lJ2ANCiBpZiBldmFsICJ0ZXN0IFwiYGVjaG8gJyQnJ3sn
YWNfY3ZfbGliXyRhY19saWJfdmFyJytzZXR9J2BcIiA9IHNldCI7IHRoZW4N
CiAgIGVjaG8gJGFjX24gIihjYWNoZWQpICRhY19jIiAxPiY2DQpAQCAtNDgx
NywxNCArNDgwNiwxNCBAQCBlbHNlDQogICBhY19zYXZlX0xJQlM9IiRMSUJT
Ig0KIExJQlM9Ii1sbSAgJExJQlMiDQogY2F0ID4gY29uZnRlc3QuJGFjX2V4
dCA8PEVPRg0KLSNsaW5lIDQ4MjEgImNvbmZpZ3VyZSINCisjbGluZSA0ODEw
ICJjb25maWd1cmUiDQogI2luY2x1ZGUgImNvbmZkZWZzLmgiDQogDQogaW50
IG1haW4oKSB7DQogbWFpbigpDQogOyByZXR1cm4gMDsgfQ0KIEVPRg0KLWlm
IHsgKGV2YWwgZWNobyBjb25maWd1cmU6NDgyODogXCIkYWNfbGlua1wiKSAx
PiY1OyAoZXZhbCAkYWNfbGluaykgMj4mNTsgfSAmJiB0ZXN0IC1zIGNvbmZ0
ZXN0JHthY19leGVleHR9OyB0aGVuDQoraWYgeyAoZXZhbCBlY2hvIGNvbmZp
Z3VyZTo0ODE3OiBcIiRhY19saW5rXCIpIDE+JjU7IChldmFsICRhY19saW5r
KSAyPiY1OyB9ICYmIHRlc3QgLXMgY29uZnRlc3Qke2FjX2V4ZWV4dH07IHRo
ZW4NCiAgIHJtIC1yZiBjb25mdGVzdCoNCiAgIGV2YWwgImFjX2N2X2xpYl8k
YWNfbGliX3Zhcj15ZXMiDQogZWxzZQ0KQEAgLTQ4NTMsNyArNDg0Miw3IEBA
IGZpDQogDQogDQogZWNobyAkYWNfbiAiY2hlY2tpbmcgZm9yIHdjdHlwZSBp
biAtbGMiIi4uLiAkYWNfYyIgMT4mNg0KLWVjaG8gImNvbmZpZ3VyZTo0ODU3
OiBjaGVja2luZyBmb3Igd2N0eXBlIGluIC1sYyIgPiY1DQorZWNobyAiY29u
ZmlndXJlOjQ4NDY6IGNoZWNraW5nIGZvciB3Y3R5cGUgaW4gLWxjIiA+JjUN
CiBhY19saWJfdmFyPWBlY2hvIGMnXyd3Y3R5cGUgfCBzZWQgJ3klLi8rLSVf
X3BfJSdgDQogaWYgZXZhbCAidGVzdCBcImBlY2hvICckJyd7J2FjX2N2X2xp
Yl8kYWNfbGliX3Zhcicrc2V0fSdgXCIgPSBzZXQiOyB0aGVuDQogICBlY2hv
ICRhY19uICIoY2FjaGVkKSAkYWNfYyIgMT4mNg0KQEAgLTQ4NjEsNyArNDg1
MCw3IEBAIGVsc2UNCiAgIGFjX3NhdmVfTElCUz0iJExJQlMiDQogTElCUz0i
LWxjICAkTElCUyINCiBjYXQgPiBjb25mdGVzdC4kYWNfZXh0IDw8RU9GDQot
I2xpbmUgNDg2NSAiY29uZmlndXJlIg0KKyNsaW5lIDQ4NTQgImNvbmZpZ3Vy
ZSINCiAjaW5jbHVkZSAiY29uZmRlZnMuaCINCiAvKiBPdmVycmlkZSBhbnkg
Z2NjMiBpbnRlcm5hbCBwcm90b3R5cGUgdG8gYXZvaWQgYW4gZXJyb3IuICAq
Lw0KIC8qIFdlIHVzZSBjaGFyIGJlY2F1c2UgaW50IG1pZ2h0IG1hdGNoIHRo
ZSByZXR1cm4gdHlwZSBvZiBhIGdjYzINCkBAIC00ODcyLDcgKzQ4NjEsNyBA
QCBpbnQgbWFpbigpIHsNCiB3Y3R5cGUoKQ0KIDsgcmV0dXJuIDA7IH0NCiBF
T0YNCi1pZiB7IChldmFsIGVjaG8gY29uZmlndXJlOjQ4NzY6IFwiJGFjX2xp
bmtcIikgMT4mNTsgKGV2YWwgJGFjX2xpbmspIDI+JjU7IH0gJiYgdGVzdCAt
cyBjb25mdGVzdCR7YWNfZXhlZXh0fTsgdGhlbg0KK2lmIHsgKGV2YWwgZWNo
byBjb25maWd1cmU6NDg2NTogXCIkYWNfbGlua1wiKSAxPiY1OyAoZXZhbCAk
YWNfbGluaykgMj4mNTsgfSAmJiB0ZXN0IC1zIGNvbmZ0ZXN0JHthY19leGVl
eHR9OyB0aGVuDQogICBybSAtcmYgY29uZnRlc3QqDQogICBldmFsICJhY19j
dl9saWJfJGFjX2xpYl92YXI9eWVzIg0KIGVsc2UNCkBAIC00ODkxLDcgKzQ4
ODAsNyBAQCBpZiBldmFsICJ0ZXN0IFwiYGVjaG8gJyRhY19jdl9saWJfJyRh
Y19sDQogZWxzZQ0KICAgZWNobyAiJGFjX3QiIm5vIiAxPiY2DQogZWNobyAk
YWNfbiAiY2hlY2tpbmcgZm9yIHdjdHlwZSBpbiAtbHciIi4uLiAkYWNfYyIg
MT4mNg0KLWVjaG8gImNvbmZpZ3VyZTo0ODk1OiBjaGVja2luZyBmb3Igd2N0
eXBlIGluIC1sdyIgPiY1DQorZWNobyAiY29uZmlndXJlOjQ4ODQ6IGNoZWNr
aW5nIGZvciB3Y3R5cGUgaW4gLWx3IiA+JjUNCiBhY19saWJfdmFyPWBlY2hv
IHcnXyd3Y3R5cGUgfCBzZWQgJ3klLi8rLSVfX3BfJSdgDQogaWYgZXZhbCAi
dGVzdCBcImBlY2hvICckJyd7J2FjX2N2X2xpYl8kYWNfbGliX3Zhcicrc2V0
fSdgXCIgPSBzZXQiOyB0aGVuDQogICBlY2hvICRhY19uICIoY2FjaGVkKSAk
YWNfYyIgMT4mNg0KQEAgLTQ4OTksNyArNDg4OCw3IEBAIGVsc2UNCiAgIGFj
X3NhdmVfTElCUz0iJExJQlMiDQogTElCUz0iLWx3ICAkTElCUyINCiBjYXQg
PiBjb25mdGVzdC4kYWNfZXh0IDw8RU9GDQotI2xpbmUgNDkwMyAiY29uZmln
dXJlIg0KKyNsaW5lIDQ4OTIgImNvbmZpZ3VyZSINCiAjaW5jbHVkZSAiY29u
ZmRlZnMuaCINCiAvKiBPdmVycmlkZSBhbnkgZ2NjMiBpbnRlcm5hbCBwcm90
b3R5cGUgdG8gYXZvaWQgYW4gZXJyb3IuICAqLw0KIC8qIFdlIHVzZSBjaGFy
IGJlY2F1c2UgaW50IG1pZ2h0IG1hdGNoIHRoZSByZXR1cm4gdHlwZSBvZiBh
IGdjYzINCkBAIC00OTEwLDcgKzQ4OTksNyBAQCBpbnQgbWFpbigpIHsNCiB3
Y3R5cGUoKQ0KIDsgcmV0dXJuIDA7IH0NCiBFT0YNCi1pZiB7IChldmFsIGVj
aG8gY29uZmlndXJlOjQ5MTQ6IFwiJGFjX2xpbmtcIikgMT4mNTsgKGV2YWwg
JGFjX2xpbmspIDI+JjU7IH0gJiYgdGVzdCAtcyBjb25mdGVzdCR7YWNfZXhl
ZXh0fTsgdGhlbg0KK2lmIHsgKGV2YWwgZWNobyBjb25maWd1cmU6NDkwMzog
XCIkYWNfbGlua1wiKSAxPiY1OyAoZXZhbCAkYWNfbGluaykgMj4mNTsgfSAm
JiB0ZXN0IC1zIGNvbmZ0ZXN0JHthY19leGVleHR9OyB0aGVuDQogICBybSAt
cmYgY29uZnRlc3QqDQogICBldmFsICJhY19jdl9saWJfJGFjX2xpYl92YXI9
eWVzIg0KIGVsc2UNCkBAIC00OTQyLDEyICs0OTMxLDEyIEBAIGZpDQogDQog
DQogZWNobyAkYWNfbiAiY2hlY2tpbmcgZm9yIGxvbmcgbG9uZyBzdXBwb3J0
IGluIGNvbXBpbGVyIiIuLi4gJGFjX2MiIDE+JjYNCi1lY2hvICJjb25maWd1
cmU6NDk0NjogY2hlY2tpbmcgZm9yIGxvbmcgbG9uZyBzdXBwb3J0IGluIGNv
bXBpbGVyIiA+JjUNCitlY2hvICJjb25maWd1cmU6NDkzNTogY2hlY2tpbmcg
Zm9yIGxvbmcgbG9uZyBzdXBwb3J0IGluIGNvbXBpbGVyIiA+JjUNCiBpZiBl
dmFsICJ0ZXN0IFwiYGVjaG8gJyQnJ3snZ2RiX2N2X2NfbG9uZ19sb25nJytz
ZXR9J2BcIiA9IHNldCI7IHRoZW4NCiAgIGVjaG8gJGFjX24gIihjYWNoZWQp
ICRhY19jIiAxPiY2DQogZWxzZQ0KICAgY2F0ID4gY29uZnRlc3QuJGFjX2V4
dCA8PEVPRg0KLSNsaW5lIDQ5NTEgImNvbmZpZ3VyZSINCisjbGluZSA0OTQw
ICJjb25maWd1cmUiDQogI2luY2x1ZGUgImNvbmZkZWZzLmgiDQogDQogaW50
IG1haW4oKSB7DQpAQCAtNDk1Nyw3ICs0OTQ2LDcgQEAgaW50IG1haW4oKSB7
DQogDQogOyByZXR1cm4gMDsgfQ0KIEVPRg0KLWlmIHsgKGV2YWwgZWNobyBj
b25maWd1cmU6NDk2MTogXCIkYWNfY29tcGlsZVwiKSAxPiY1OyAoZXZhbCAk
YWNfY29tcGlsZSkgMj4mNTsgfTsgdGhlbg0KK2lmIHsgKGV2YWwgZWNobyBj
b25maWd1cmU6NDk1MDogXCIkYWNfY29tcGlsZVwiKSAxPiY1OyAoZXZhbCAk
YWNfY29tcGlsZSkgMj4mNTsgfTsgdGhlbg0KICAgcm0gLXJmIGNvbmZ0ZXN0
Kg0KICAgZ2RiX2N2X2NfbG9uZ19sb25nPXllcw0KIGVsc2UNCkBAIC00OTc5
LDcgKzQ5NjgsNyBAQCBmaQ0KIA0KIA0KIGVjaG8gJGFjX24gImNoZWNraW5n
IGZvciBsb25nIGxvbmcgc3VwcG9ydCBpbiBwcmludGYiIi4uLiAkYWNfYyIg
MT4mNg0KLWVjaG8gImNvbmZpZ3VyZTo0OTgzOiBjaGVja2luZyBmb3IgbG9u
ZyBsb25nIHN1cHBvcnQgaW4gcHJpbnRmIiA+JjUNCitlY2hvICJjb25maWd1
cmU6NDk3MjogY2hlY2tpbmcgZm9yIGxvbmcgbG9uZyBzdXBwb3J0IGluIHBy
aW50ZiIgPiY1DQogaWYgZXZhbCAidGVzdCBcImBlY2hvICckJyd7J2dkYl9j
dl9wcmludGZfaGFzX2xvbmdfbG9uZycrc2V0fSdgXCIgPSBzZXQiOyB0aGVu
DQogICBlY2hvICRhY19uICIoY2FjaGVkKSAkYWNfYyIgMT4mNg0KIGVsc2UN
CkBAIC00OTg3LDcgKzQ5NzYsNyBAQCBlbHNlDQogICBnZGJfY3ZfcHJpbnRm
X2hhc19sb25nX2xvbmc9bm8NCiBlbHNlDQogICBjYXQgPiBjb25mdGVzdC4k
YWNfZXh0IDw8RU9GDQotI2xpbmUgNDk5MSAiY29uZmlndXJlIg0KKyNsaW5l
IDQ5ODAgImNvbmZpZ3VyZSINCiAjaW5jbHVkZSAiY29uZmRlZnMuaCINCiAN
CiBpbnQgbWFpbiAoKSB7DQpAQCAtNTAwMSw3ICs0OTkwLDcgQEAgaW50IG1h
aW4gKCkgew0KICAgcmV0dXJuIChzdHJjbXAgKCIweDAxMjM0NTY3ODlhYmNk
ZWYiLCBidWYpKTsNCiB9DQogRU9GDQotaWYgeyAoZXZhbCBlY2hvIGNvbmZp
Z3VyZTo1MDA1OiBcIiRhY19saW5rXCIpIDE+JjU7IChldmFsICRhY19saW5r
KSAyPiY1OyB9ICYmIHRlc3QgLXMgY29uZnRlc3Qke2FjX2V4ZWV4dH0gJiYg
KC4vY29uZnRlc3Q7IGV4aXQpIDI+L2Rldi9udWxsDQoraWYgeyAoZXZhbCBl
Y2hvIGNvbmZpZ3VyZTo0OTk0OiBcIiRhY19saW5rXCIpIDE+JjU7IChldmFs
ICRhY19saW5rKSAyPiY1OyB9ICYmIHRlc3QgLXMgY29uZnRlc3Qke2FjX2V4
ZWV4dH0gJiYgKC4vY29uZnRlc3Q7IGV4aXQpIDI+L2Rldi9udWxsDQogdGhl
bg0KICAgZ2RiX2N2X3ByaW50Zl9oYXNfbG9uZ19sb25nPXllcw0KIGVsc2UN
CkBAIC01MDI1LDE5ICs1MDE0LDE5IEBAIGVjaG8gIiRhY190IiIkZ2RiX2N2
X3ByaW50Zl9oYXNfbG9uZ19sb24NCiANCiANCiBlY2hvICRhY19uICJjaGVj
a2luZyBmb3IgbG9uZyBkb3VibGUgc3VwcG9ydCBpbiBjb21waWxlciIiLi4u
ICRhY19jIiAxPiY2DQotZWNobyAiY29uZmlndXJlOjUwMjk6IGNoZWNraW5n
IGZvciBsb25nIGRvdWJsZSBzdXBwb3J0IGluIGNvbXBpbGVyIiA+JjUNCitl
Y2hvICJjb25maWd1cmU6NTAxODogY2hlY2tpbmcgZm9yIGxvbmcgZG91Ymxl
IHN1cHBvcnQgaW4gY29tcGlsZXIiID4mNQ0KIGlmIGV2YWwgInRlc3QgXCJg
ZWNobyAnJCcneydhY19jdl9jX2xvbmdfZG91YmxlJytzZXR9J2BcIiA9IHNl
dCI7IHRoZW4NCiAgIGVjaG8gJGFjX24gIihjYWNoZWQpICRhY19jIiAxPiY2
DQogZWxzZQ0KICAgY2F0ID4gY29uZnRlc3QuJGFjX2V4dCA8PEVPRg0KLSNs
aW5lIDUwMzQgImNvbmZpZ3VyZSINCisjbGluZSA1MDIzICJjb25maWd1cmUi
DQogI2luY2x1ZGUgImNvbmZkZWZzLmgiDQogDQogaW50IG1haW4oKSB7DQog
bG9uZyBkb3VibGUgZm9vOw0KIDsgcmV0dXJuIDA7IH0NCiBFT0YNCi1pZiB7
IChldmFsIGVjaG8gY29uZmlndXJlOjUwNDE6IFwiJGFjX2NvbXBpbGVcIikg
MT4mNTsgKGV2YWwgJGFjX2NvbXBpbGUpIDI+JjU7IH07IHRoZW4NCitpZiB7
IChldmFsIGVjaG8gY29uZmlndXJlOjUwMzA6IFwiJGFjX2NvbXBpbGVcIikg
MT4mNTsgKGV2YWwgJGFjX2NvbXBpbGUpIDI+JjU7IH07IHRoZW4NCiAgIHJt
IC1yZiBjb25mdGVzdCoNCiAgIGFjX2N2X2NfbG9uZ19kb3VibGU9eWVzDQog
ZWxzZQ0KQEAgLTUwNTksNyArNTA0OCw3IEBAIGZpDQogDQogDQogZWNobyAk
YWNfbiAiY2hlY2tpbmcgZm9yIGxvbmcgZG91YmxlIHN1cHBvcnQgaW4gcHJp
bnRmIiIuLi4gJGFjX2MiIDE+JjYNCi1lY2hvICJjb25maWd1cmU6NTA2Mzog
Y2hlY2tpbmcgZm9yIGxvbmcgZG91YmxlIHN1cHBvcnQgaW4gcHJpbnRmIiA+
JjUNCitlY2hvICJjb25maWd1cmU6NTA1MjogY2hlY2tpbmcgZm9yIGxvbmcg
ZG91YmxlIHN1cHBvcnQgaW4gcHJpbnRmIiA+JjUNCiBpZiBldmFsICJ0ZXN0
IFwiYGVjaG8gJyQnJ3snZ2RiX2N2X3ByaW50Zl9oYXNfbG9uZ19kb3VibGUn
K3NldH0nYFwiID0gc2V0IjsgdGhlbg0KICAgZWNobyAkYWNfbiAiKGNhY2hl
ZCkgJGFjX2MiIDE+JjYNCiBlbHNlDQpAQCAtNTA2Nyw3ICs1MDU2LDcgQEAg
ZWxzZQ0KICAgZ2RiX2N2X3ByaW50Zl9oYXNfbG9uZ19kb3VibGU9bm8NCiBl
bHNlDQogICBjYXQgPiBjb25mdGVzdC4kYWNfZXh0IDw8RU9GDQotI2xpbmUg
NTA3MSAiY29uZmlndXJlIg0KKyNsaW5lIDUwNjAgImNvbmZpZ3VyZSINCiAj
aW5jbHVkZSAiY29uZmRlZnMuaCINCiANCiBpbnQgbWFpbiAoKSB7DQpAQCAt
NTA3Nyw3ICs1MDY2LDcgQEAgaW50IG1haW4gKCkgew0KICAgcmV0dXJuIChz
dHJuY21wICgiMy4xNDE1OSIsIGJ1ZiwgNykpOw0KIH0NCiBFT0YNCi1pZiB7
IChldmFsIGVjaG8gY29uZmlndXJlOjUwODE6IFwiJGFjX2xpbmtcIikgMT4m
NTsgKGV2YWwgJGFjX2xpbmspIDI+JjU7IH0gJiYgdGVzdCAtcyBjb25mdGVz
dCR7YWNfZXhlZXh0fSAmJiAoLi9jb25mdGVzdDsgZXhpdCkgMj4vZGV2L251
bGwNCitpZiB7IChldmFsIGVjaG8gY29uZmlndXJlOjUwNzA6IFwiJGFjX2xp
bmtcIikgMT4mNTsgKGV2YWwgJGFjX2xpbmspIDI+JjU7IH0gJiYgdGVzdCAt
cyBjb25mdGVzdCR7YWNfZXhlZXh0fSAmJiAoLi9jb25mdGVzdDsgZXhpdCkg
Mj4vZGV2L251bGwNCiB0aGVuDQogICBnZGJfY3ZfcHJpbnRmX2hhc19sb25n
X2RvdWJsZT15ZXMNCiBlbHNlDQpAQCAtNTEwMSw3ICs1MDkwLDcgQEAgZWNo
byAiJGFjX3QiIiRnZGJfY3ZfcHJpbnRmX2hhc19sb25nX2RvdQ0KIA0KIA0K
IGVjaG8gJGFjX24gImNoZWNraW5nIGZvciBsb25nIGRvdWJsZSBzdXBwb3J0
IGluIHNjYW5mIiIuLi4gJGFjX2MiIDE+JjYNCi1lY2hvICJjb25maWd1cmU6
NTEwNTogY2hlY2tpbmcgZm9yIGxvbmcgZG91YmxlIHN1cHBvcnQgaW4gc2Nh
bmYiID4mNQ0KK2VjaG8gImNvbmZpZ3VyZTo1MDk0OiBjaGVja2luZyBmb3Ig
bG9uZyBkb3VibGUgc3VwcG9ydCBpbiBzY2FuZiIgPiY1DQogaWYgZXZhbCAi
dGVzdCBcImBlY2hvICckJyd7J2dkYl9jdl9zY2FuZl9oYXNfbG9uZ19kb3Vi
bGUnK3NldH0nYFwiID0gc2V0IjsgdGhlbg0KICAgZWNobyAkYWNfbiAiKGNh
Y2hlZCkgJGFjX2MiIDE+JjYNCiBlbHNlDQpAQCAtNTEwOSw3ICs1MDk4LDcg
QEAgZWxzZQ0KICAgZ2RiX2N2X3NjYW5mX2hhc19sb25nX2RvdWJsZT1ubw0K
IGVsc2UNCiAgIGNhdCA+IGNvbmZ0ZXN0LiRhY19leHQgPDxFT0YNCi0jbGlu
ZSA1MTEzICJjb25maWd1cmUiDQorI2xpbmUgNTEwMiAiY29uZmlndXJlIg0K
ICNpbmNsdWRlICJjb25mZGVmcy5oIg0KIA0KIGludCBtYWluICgpIHsNCkBA
IC01MTE5LDcgKzUxMDgsNyBAQCBpbnQgbWFpbiAoKSB7DQogICByZXR1cm4g
IShmID4gMy4xNDE1OSAmJiBmIDwgMy4xNDE2MCk7DQogfQ0KIEVPRg0KLWlm
IHsgKGV2YWwgZWNobyBjb25maWd1cmU6NTEyMzogXCIkYWNfbGlua1wiKSAx
PiY1OyAoZXZhbCAkYWNfbGluaykgMj4mNTsgfSAmJiB0ZXN0IC1zIGNvbmZ0
ZXN0JHthY19leGVleHR9ICYmICguL2NvbmZ0ZXN0OyBleGl0KSAyPi9kZXYv
bnVsbA0KK2lmIHsgKGV2YWwgZWNobyBjb25maWd1cmU6NTExMjogXCIkYWNf
bGlua1wiKSAxPiY1OyAoZXZhbCAkYWNfbGluaykgMj4mNTsgfSAmJiB0ZXN0
IC1zIGNvbmZ0ZXN0JHthY19leGVleHR9ICYmICguL2NvbmZ0ZXN0OyBleGl0
KSAyPi9kZXYvbnVsbA0KIHRoZW4NCiAgIGdkYl9jdl9zY2FuZl9oYXNfbG9u
Z19kb3VibGU9eWVzDQogZWxzZQ0KQEAgLTUxNDUsMTcgKzUxMzQsMTcgQEAg
Zm9yIGFjX2hkciBpbiB1bmlzdGQuaA0KIGRvDQogYWNfc2FmZT1gZWNobyAi
JGFjX2hkciIgfCBzZWQgJ3klLi8rLSVfX3BfJSdgDQogZWNobyAkYWNfbiAi
Y2hlY2tpbmcgZm9yICRhY19oZHIiIi4uLiAkYWNfYyIgMT4mNg0KLWVjaG8g
ImNvbmZpZ3VyZTo1MTQ5OiBjaGVja2luZyBmb3IgJGFjX2hkciIgPiY1DQor
ZWNobyAiY29uZmlndXJlOjUxMzg6IGNoZWNraW5nIGZvciAkYWNfaGRyIiA+
JjUNCiBpZiBldmFsICJ0ZXN0IFwiYGVjaG8gJyQnJ3snYWNfY3ZfaGVhZGVy
XyRhY19zYWZlJytzZXR9J2BcIiA9IHNldCI7IHRoZW4NCiAgIGVjaG8gJGFj
X24gIihjYWNoZWQpICRhY19jIiAxPiY2DQogZWxzZQ0KICAgY2F0ID4gY29u
ZnRlc3QuJGFjX2V4dCA8PEVPRg0KLSNsaW5lIDUxNTQgImNvbmZpZ3VyZSIN
CisjbGluZSA1MTQzICJjb25maWd1cmUiDQogI2luY2x1ZGUgImNvbmZkZWZz
LmgiDQogI2luY2x1ZGUgPCRhY19oZHI+DQogRU9GDQogYWNfdHJ5PSIkYWNf
Y3BwIGNvbmZ0ZXN0LiRhY19leHQgPi9kZXYvbnVsbCAyPmNvbmZ0ZXN0Lm91
dCINCi17IChldmFsIGVjaG8gY29uZmlndXJlOjUxNTk6IFwiJGFjX3RyeVwi
KSAxPiY1OyAoZXZhbCAkYWNfdHJ5KSAyPiY1OyB9DQoreyAoZXZhbCBlY2hv
IGNvbmZpZ3VyZTo1MTQ4OiBcIiRhY190cnlcIikgMT4mNTsgKGV2YWwgJGFj
X3RyeSkgMj4mNTsgfQ0KIGFjX2Vycj1gZ3JlcCAtdiAnXiAqKycgY29uZnRl
c3Qub3V0IHwgZ3JlcCAtdiAiXmNvbmZ0ZXN0LiR7YWNfZXh0fVwkImANCiBp
ZiB0ZXN0IC16ICIkYWNfZXJyIjsgdGhlbg0KICAgcm0gLXJmIGNvbmZ0ZXN0
Kg0KQEAgLTUxODQsMTIgKzUxNzMsMTIgQEAgZG9uZQ0KIGZvciBhY19mdW5j
IGluIGdldHBhZ2VzaXplDQogZG8NCiBlY2hvICRhY19uICJjaGVja2luZyBm
b3IgJGFjX2Z1bmMiIi4uLiAkYWNfYyIgMT4mNg0KLWVjaG8gImNvbmZpZ3Vy
ZTo1MTg4OiBjaGVja2luZyBmb3IgJGFjX2Z1bmMiID4mNQ0KK2VjaG8gImNv
bmZpZ3VyZTo1MTc3OiBjaGVja2luZyBmb3IgJGFjX2Z1bmMiID4mNQ0KIGlm
IGV2YWwgInRlc3QgXCJgZWNobyAnJCcneydhY19jdl9mdW5jXyRhY19mdW5j
JytzZXR9J2BcIiA9IHNldCI7IHRoZW4NCiAgIGVjaG8gJGFjX24gIihjYWNo
ZWQpICRhY19jIiAxPiY2DQogZWxzZQ0KICAgY2F0ID4gY29uZnRlc3QuJGFj
X2V4dCA8PEVPRg0KLSNsaW5lIDUxOTMgImNvbmZpZ3VyZSINCisjbGluZSA1
MTgyICJjb25maWd1cmUiDQogI2luY2x1ZGUgImNvbmZkZWZzLmgiDQogLyog
U3lzdGVtIGhlYWRlciB0byBkZWZpbmUgX19zdHViIG1hY3JvcyBhbmQgaG9w
ZWZ1bGx5IGZldyBwcm90b3R5cGVzLA0KICAgICB3aGljaCBjYW4gY29uZmxp
Y3Qgd2l0aCBjaGFyICRhY19mdW5jKCk7IGJlbG93LiAgKi8NCkBAIC01MjEy
LDcgKzUyMDEsNyBAQCAkYWNfZnVuYygpOw0KIA0KIDsgcmV0dXJuIDA7IH0N
CiBFT0YNCi1pZiB7IChldmFsIGVjaG8gY29uZmlndXJlOjUyMTY6IFwiJGFj
X2xpbmtcIikgMT4mNTsgKGV2YWwgJGFjX2xpbmspIDI+JjU7IH0gJiYgdGVz
dCAtcyBjb25mdGVzdCR7YWNfZXhlZXh0fTsgdGhlbg0KK2lmIHsgKGV2YWwg
ZWNobyBjb25maWd1cmU6NTIwNTogXCIkYWNfbGlua1wiKSAxPiY1OyAoZXZh
bCAkYWNfbGluaykgMj4mNTsgfSAmJiB0ZXN0IC1zIGNvbmZ0ZXN0JHthY19l
eGVleHR9OyB0aGVuDQogICBybSAtcmYgY29uZnRlc3QqDQogICBldmFsICJh
Y19jdl9mdW5jXyRhY19mdW5jPXllcyINCiBlbHNlDQpAQCAtNTIzNyw3ICs1
MjI2LDcgQEAgZmkNCiBkb25lDQogDQogZWNobyAkYWNfbiAiY2hlY2tpbmcg
Zm9yIHdvcmtpbmcgbW1hcCIiLi4uICRhY19jIiAxPiY2DQotZWNobyAiY29u
ZmlndXJlOjUyNDE6IGNoZWNraW5nIGZvciB3b3JraW5nIG1tYXAiID4mNQ0K
K2VjaG8gImNvbmZpZ3VyZTo1MjMwOiBjaGVja2luZyBmb3Igd29ya2luZyBt
bWFwIiA+JjUNCiBpZiBldmFsICJ0ZXN0IFwiYGVjaG8gJyQnJ3snYWNfY3Zf
ZnVuY19tbWFwX2ZpeGVkX21hcHBlZCcrc2V0fSdgXCIgPSBzZXQiOyB0aGVu
DQogICBlY2hvICRhY19uICIoY2FjaGVkKSAkYWNfYyIgMT4mNg0KIGVsc2UN
CkBAIC01MjQ1LDcgKzUyMzQsNyBAQCBlbHNlDQogICBhY19jdl9mdW5jX21t
YXBfZml4ZWRfbWFwcGVkPW5vDQogZWxzZQ0KICAgY2F0ID4gY29uZnRlc3Qu
JGFjX2V4dCA8PEVPRg0KLSNsaW5lIDUyNDkgImNvbmZpZ3VyZSINCisjbGlu
ZSA1MjM4ICJjb25maWd1cmUiDQogI2luY2x1ZGUgImNvbmZkZWZzLmgiDQog
DQogLyogVGhhbmtzIHRvIE1pa2UgSGFlcnRlbCBhbmQgSmltIEF2ZXJhIGZv
ciB0aGlzIHRlc3QuDQpAQCAtNTM4NSw3ICs1Mzc0LDcgQEAgbWFpbigpDQog
fQ0KIA0KIEVPRg0KLWlmIHsgKGV2YWwgZWNobyBjb25maWd1cmU6NTM4OTog
XCIkYWNfbGlua1wiKSAxPiY1OyAoZXZhbCAkYWNfbGluaykgMj4mNTsgfSAm
JiB0ZXN0IC1zIGNvbmZ0ZXN0JHthY19leGVleHR9ICYmICguL2NvbmZ0ZXN0
OyBleGl0KSAyPi9kZXYvbnVsbA0KK2lmIHsgKGV2YWwgZWNobyBjb25maWd1
cmU6NTM3ODogXCIkYWNfbGlua1wiKSAxPiY1OyAoZXZhbCAkYWNfbGluaykg
Mj4mNTsgfSAmJiB0ZXN0IC1zIGNvbmZ0ZXN0JHthY19leGVleHR9ICYmICgu
L2NvbmZ0ZXN0OyBleGl0KSAyPi9kZXYvbnVsbA0KIHRoZW4NCiAgIGFjX2N2
X2Z1bmNfbW1hcF9maXhlZF9tYXBwZWQ9eWVzDQogZWxzZQ0KQEAgLTU0MTQs
NyArNTQwMyw3IEBAIGlmIHRlc3QgJHtidWlsZH0gPSAke2hvc3R9IC1hICR7
aG9zdH0gPSANCiAgICBjYXNlICR7aG9zdF9vc30gaW4NCiAgICBocHV4KikN
CiAgICAgICBlY2hvICRhY19uICJjaGVja2luZyBmb3IgSFBVWC9PU0YgdGhy
ZWFkIHN1cHBvcnQiIi4uLiAkYWNfYyIgMT4mNg0KLWVjaG8gImNvbmZpZ3Vy
ZTo1NDE4OiBjaGVja2luZyBmb3IgSFBVWC9PU0YgdGhyZWFkIHN1cHBvcnQi
ID4mNQ0KK2VjaG8gImNvbmZpZ3VyZTo1NDA3OiBjaGVja2luZyBmb3IgSFBV
WC9PU0YgdGhyZWFkIHN1cHBvcnQiID4mNQ0KICAgICAgIGlmIHRlc3QgLWYg
L3Vzci9pbmNsdWRlL2RjZS9jbWFfY29uZmlnLmggOyB0aGVuDQogICAgICAg
ICAgaWYgdGVzdCAiJEdDQyIgPSAieWVzIiA7IHRoZW4NCiAgICAgICAgICAg
ICBlY2hvICIkYWNfdCIieWVzIiAxPiY2DQpAQCAtNTQzMyw3ICs1NDIyLDcg
QEAgRU9GDQogICAgICAgOzsNCiAgICBzb2xhcmlzKikNCiAgICAgICBlY2hv
ICRhY19uICJjaGVja2luZyBmb3IgU29sYXJpcyB0aHJlYWQgZGVidWdnaW5n
IGxpYnJhcnkiIi4uLiAkYWNfYyIgMT4mNg0KLWVjaG8gImNvbmZpZ3VyZTo1
NDM3OiBjaGVja2luZyBmb3IgU29sYXJpcyB0aHJlYWQgZGVidWdnaW5nIGxp
YnJhcnkiID4mNQ0KK2VjaG8gImNvbmZpZ3VyZTo1NDI2OiBjaGVja2luZyBm
b3IgU29sYXJpcyB0aHJlYWQgZGVidWdnaW5nIGxpYnJhcnkiID4mNQ0KICAg
ICAgIGlmIHRlc3QgLWYgL3Vzci9saWIvbGlidGhyZWFkX2RiLnNvLjEgOyB0
aGVuDQogICAgICAgICAgZWNobyAiJGFjX3QiInllcyIgMT4mNg0KICAgICAg
ICAgIGNhdCA+PiBjb25mZGVmcy5oIDw8XEVPRg0KQEAgLTU0NDMsNyArNTQz
Miw3IEBAIEVPRg0KICAgICAgICAgIENPTkZJR19PQlM9IiR7Q09ORklHX09C
U30gc29sLXRocmVhZC5vIg0KICAgICAgICAgIENPTkZJR19TUkNTPSIke0NP
TkZJR19TUkNTfSBzb2wtdGhyZWFkLmMiDQogICAgICAgICAgZWNobyAkYWNf
biAiY2hlY2tpbmcgZm9yIGRsb3BlbiBpbiAtbGRsIiIuLi4gJGFjX2MiIDE+
JjYNCi1lY2hvICJjb25maWd1cmU6NTQ0NzogY2hlY2tpbmcgZm9yIGRsb3Bl
biBpbiAtbGRsIiA+JjUNCitlY2hvICJjb25maWd1cmU6NTQzNjogY2hlY2tp
bmcgZm9yIGRsb3BlbiBpbiAtbGRsIiA+JjUNCiBhY19saWJfdmFyPWBlY2hv
IGRsJ18nZGxvcGVuIHwgc2VkICd5JS4vKy0lX19wXyUnYA0KIGlmIGV2YWwg
InRlc3QgXCJgZWNobyAnJCcneydhY19jdl9saWJfJGFjX2xpYl92YXInK3Nl
dH0nYFwiID0gc2V0IjsgdGhlbg0KICAgZWNobyAkYWNfbiAiKGNhY2hlZCkg
JGFjX2MiIDE+JjYNCkBAIC01NDUxLDcgKzU0NDAsNyBAQCBlbHNlDQogICBh
Y19zYXZlX0xJQlM9IiRMSUJTIg0KIExJQlM9Ii1sZGwgICRMSUJTIg0KIGNh
dCA+IGNvbmZ0ZXN0LiRhY19leHQgPDxFT0YNCi0jbGluZSA1NDU1ICJjb25m
aWd1cmUiDQorI2xpbmUgNTQ0NCAiY29uZmlndXJlIg0KICNpbmNsdWRlICJj
b25mZGVmcy5oIg0KIC8qIE92ZXJyaWRlIGFueSBnY2MyIGludGVybmFsIHBy
b3RvdHlwZSB0byBhdm9pZCBhbiBlcnJvci4gICovDQogLyogV2UgdXNlIGNo
YXIgYmVjYXVzZSBpbnQgbWlnaHQgbWF0Y2ggdGhlIHJldHVybiB0eXBlIG9m
IGEgZ2NjMg0KQEAgLTU0NjIsNyArNTQ1MSw3IEBAIGludCBtYWluKCkgew0K
IGRsb3BlbigpDQogOyByZXR1cm4gMDsgfQ0KIEVPRg0KLWlmIHsgKGV2YWwg
ZWNobyBjb25maWd1cmU6NTQ2NjogXCIkYWNfbGlua1wiKSAxPiY1OyAoZXZh
bCAkYWNfbGluaykgMj4mNTsgfSAmJiB0ZXN0IC1zIGNvbmZ0ZXN0JHthY19l
eGVleHR9OyB0aGVuDQoraWYgeyAoZXZhbCBlY2hvIGNvbmZpZ3VyZTo1NDU1
OiBcIiRhY19saW5rXCIpIDE+JjU7IChldmFsICRhY19saW5rKSAyPiY1OyB9
ICYmIHRlc3QgLXMgY29uZnRlc3Qke2FjX2V4ZWV4dH07IHRoZW4NCiAgIHJt
IC1yZiBjb25mdGVzdCoNCiAgIGV2YWwgImFjX2N2X2xpYl8kYWNfbGliX3Zh
cj15ZXMiDQogZWxzZQ0KQEAgLTU0OTQsMTcgKzU0ODMsMTcgQEAgZmkNCiAg
ICAgICAgICAgICAjIGFsbCBzeW1ib2xzIHZpc2libGUgaW4gdGhlIGR5bmFt
aWMgc3ltYm9sIHRhYmxlLg0KICAgICAgICAgICAgIGhvbGRfbGRmbGFncz0k
TERGTEFHUw0KICAgICAgICAgICAgIGVjaG8gJGFjX24gImNoZWNraW5nIGZv
ciB0aGUgbGQgLWV4cG9ydC1keW5hbWljIGZsYWciIi4uLiAkYWNfYyIgMT4m
Ng0KLWVjaG8gImNvbmZpZ3VyZTo1NDk4OiBjaGVja2luZyBmb3IgdGhlIGxk
IC1leHBvcnQtZHluYW1pYyBmbGFnIiA+JjUNCitlY2hvICJjb25maWd1cmU6
NTQ4NzogY2hlY2tpbmcgZm9yIHRoZSBsZCAtZXhwb3J0LWR5bmFtaWMgZmxh
ZyIgPiY1DQogICAgICAgICAgICAgTERGTEFHUz0iJHtMREZMQUdTfSAtV2ws
LWV4cG9ydC1keW5hbWljIg0KICAgICAgICAgICAgIGNhdCA+IGNvbmZ0ZXN0
LiRhY19leHQgPDxFT0YNCi0jbGluZSA1NTAxICJjb25maWd1cmUiDQorI2xp
bmUgNTQ5MCAiY29uZmlndXJlIg0KICNpbmNsdWRlICJjb25mZGVmcy5oIg0K
IA0KIGludCBtYWluKCkgew0KIGludCBpOw0KIDsgcmV0dXJuIDA7IH0NCiBF
T0YNCi1pZiB7IChldmFsIGVjaG8gY29uZmlndXJlOjU1MDg6IFwiJGFjX2xp
bmtcIikgMT4mNTsgKGV2YWwgJGFjX2xpbmspIDI+JjU7IH0gJiYgdGVzdCAt
cyBjb25mdGVzdCR7YWNfZXhlZXh0fTsgdGhlbg0KK2lmIHsgKGV2YWwgZWNo
byBjb25maWd1cmU6NTQ5NzogXCIkYWNfbGlua1wiKSAxPiY1OyAoZXZhbCAk
YWNfbGluaykgMj4mNTsgfSAmJiB0ZXN0IC1zIGNvbmZ0ZXN0JHthY19leGVl
eHR9OyB0aGVuDQogICBybSAtcmYgY29uZnRlc3QqDQogICBmb3VuZD15ZXMN
CiBlbHNlDQpAQCAtNTUyMywxMyArNTUxMiwxMyBAQCBybSAtZiBjb25mdGVz
dCoNCiAJICMgU3VuIHJhbmRvbWx5IHR3ZWFrZWQgdGhlIHByb3RvdHlwZXMg
aW4gPHByb2Nfc2VydmljZS5oPg0KIAkgIyBhdCBvbmUgcG9pbnQuDQogCSBl
Y2hvICRhY19uICJjaGVja2luZyBpZiA8cHJvY19zZXJ2aWNlLmg+IGlzIG9s
ZCIiLi4uICRhY19jIiAxPiY2DQotZWNobyAiY29uZmlndXJlOjU1Mjc6IGNo
ZWNraW5nIGlmIDxwcm9jX3NlcnZpY2UuaD4gaXMgb2xkIiA+JjUNCitlY2hv
ICJjb25maWd1cmU6NTUxNjogY2hlY2tpbmcgaWYgPHByb2Nfc2VydmljZS5o
PiBpcyBvbGQiID4mNQ0KIAkgaWYgZXZhbCAidGVzdCBcImBlY2hvICckJyd7
J2dkYl9jdl9wcm9jX3NlcnZpY2VfaXNfb2xkJytzZXR9J2BcIiA9IHNldCI7
IHRoZW4NCiAgIGVjaG8gJGFjX24gIihjYWNoZWQpICRhY19jIiAxPiY2DQog
ZWxzZQ0KICAgDQogCSAgICBjYXQgPiBjb25mdGVzdC4kYWNfZXh0IDw8RU9G
DQotI2xpbmUgNTUzMyAiY29uZmlndXJlIg0KKyNsaW5lIDU1MjIgImNvbmZp
Z3VyZSINCiAjaW5jbHVkZSAiY29uZmRlZnMuaCINCiANCiAJCSNpbmNsdWRl
IDxwcm9jX3NlcnZpY2UuaD4NCkBAIC01NTQwLDcgKzU1MjksNyBAQCBpbnQg
bWFpbigpIHsNCiANCiA7IHJldHVybiAwOyB9DQogRU9GDQotaWYgeyAoZXZh
bCBlY2hvIGNvbmZpZ3VyZTo1NTQ0OiBcIiRhY19jb21waWxlXCIpIDE+JjU7
IChldmFsICRhY19jb21waWxlKSAyPiY1OyB9OyB0aGVuDQoraWYgeyAoZXZh
bCBlY2hvIGNvbmZpZ3VyZTo1NTMzOiBcIiRhY19jb21waWxlXCIpIDE+JjU7
IChldmFsICRhY19jb21waWxlKSAyPiY1OyB9OyB0aGVuDQogICBybSAtcmYg
Y29uZnRlc3QqDQogICBnZGJfY3ZfcHJvY19zZXJ2aWNlX2lzX29sZD1ubw0K
IGVsc2UNCkBAIC01Njc3LDcgKzU2NjYsNyBAQCBXRVJST1JfQ0ZMQUdTPSIi
DQogaWYgdGVzdCAieCR7YnVpbGRfd2FybmluZ3N9IiAhPSB4IC1hICJ4JEdD
QyIgPSB4eWVzDQogdGhlbg0KICAgICBlY2hvICRhY19uICJjaGVja2luZyBj
b21waWxlciB3YXJuaW5nIGZsYWdzIiIuLi4gJGFjX2MiIDE+JjYNCi1lY2hv
ICJjb25maWd1cmU6NTY4MTogY2hlY2tpbmcgY29tcGlsZXIgd2FybmluZyBm
bGFncyIgPiY1DQorZWNobyAiY29uZmlndXJlOjU2NzA6IGNoZWNraW5nIGNv
bXBpbGVyIHdhcm5pbmcgZmxhZ3MiID4mNQ0KICAgICAjIFNlcGFyYXRlIG91
dCB0aGUgLVdlcnJvciBmbGFnIGFzIHNvbWUgZmlsZXMganVzdCBjYW5ub3Qg
YmUNCiAgICAgIyBjb21waWxlZCB3aXRoIGl0IGVuYWJsZWQuDQogICAgIGZv
ciB3IGluICR7YnVpbGRfd2FybmluZ3N9OyBkbw0KQEAgLTU3NDAsMTIgKzU3
MjksMTIgQEAgZmkNCiANCiBpZiB0ZXN0ICR3YW50X2luY2x1ZGVkX3JlZ2V4
ID0gZmFsc2U7IHRoZW4NCiAgIGVjaG8gJGFjX24gImNoZWNraW5nIGZvciBH
TlUgcmVnZXgiIi4uLiAkYWNfYyIgMT4mNg0KLWVjaG8gImNvbmZpZ3VyZTo1
NzQ0OiBjaGVja2luZyBmb3IgR05VIHJlZ2V4IiA+JjUNCitlY2hvICJjb25m
aWd1cmU6NTczMzogY2hlY2tpbmcgZm9yIEdOVSByZWdleCIgPiY1DQogICBp
ZiBldmFsICJ0ZXN0IFwiYGVjaG8gJyQnJ3snZ2RiX2N2X2hhdmVfZ251X3Jl
Z2V4JytzZXR9J2BcIiA9IHNldCI7IHRoZW4NCiAgIGVjaG8gJGFjX24gIihj
YWNoZWQpICRhY19jIiAxPiY2DQogZWxzZQ0KICAgY2F0ID4gY29uZnRlc3Qu
JGFjX2V4dCA8PEVPRg0KLSNsaW5lIDU3NDkgImNvbmZpZ3VyZSINCisjbGlu
ZSA1NzM4ICJjb25maWd1cmUiDQogI2luY2x1ZGUgImNvbmZkZWZzLmgiDQog
I2luY2x1ZGUgPGdudS12ZXJzaW9ucy5oPg0KICNpbmNsdWRlIDxzeXMvdHlw
ZXMuaD4NCkBAIC01NzU3LDcgKzU3NDYsNyBAQCBpbnQgbWFpbigpIHsNCiAN
CiA7IHJldHVybiAwOyB9DQogRU9GDQotaWYgeyAoZXZhbCBlY2hvIGNvbmZp
Z3VyZTo1NzYxOiBcIiRhY19jb21waWxlXCIpIDE+JjU7IChldmFsICRhY19j
b21waWxlKSAyPiY1OyB9OyB0aGVuDQoraWYgeyAoZXZhbCBlY2hvIGNvbmZp
Z3VyZTo1NzUwOiBcIiRhY19jb21waWxlXCIpIDE+JjU7IChldmFsICRhY19j
b21waWxlKSAyPiY1OyB9OyB0aGVuDQogICBybSAtcmYgY29uZnRlc3QqDQog
ICBnZGJfY3ZfaGF2ZV9nbnVfcmVnZXg9eWVzDQogZWxzZQ0KQEAgLTU3ODYs
MTIgKzU3NzUsMTIgQEAgZmkNCiANCiAjIEluIHRoZSBDeWd3aW4gZW52aXJv
bm1lbnQsIHdlIG5lZWQgc29tZSBhZGRpdGlvbmFsIGZsYWdzLg0KIGVjaG8g
JGFjX24gImNoZWNraW5nIGZvciBjeWd3aW4iIi4uLiAkYWNfYyIgMT4mNg0K
LWVjaG8gImNvbmZpZ3VyZTo1NzkwOiBjaGVja2luZyBmb3IgY3lnd2luIiA+
JjUNCitlY2hvICJjb25maWd1cmU6NTc3OTogY2hlY2tpbmcgZm9yIGN5Z3dp
biIgPiY1DQogaWYgZXZhbCAidGVzdCBcImBlY2hvICckJyd7J2dkYl9jdl9v
c19jeWd3aW4nK3NldH0nYFwiID0gc2V0IjsgdGhlbg0KICAgZWNobyAkYWNf
biAiKGNhY2hlZCkgJGFjX2MiIDE+JjYNCiBlbHNlDQogICBjYXQgPiBjb25m
dGVzdC4kYWNfZXh0IDw8RU9GDQotI2xpbmUgNTc5NSAiY29uZmlndXJlIg0K
KyNsaW5lIDU3ODQgImNvbmZpZ3VyZSINCiAjaW5jbHVkZSAiY29uZmRlZnMu
aCINCiANCiAjaWYgZGVmaW5lZCAoX19DWUdXSU5fXykgfHwgZGVmaW5lZCAo
X19DWUdXSU4zMl9fKQ0KQEAgLTU4MjksNyArNTgxOCw3IEBAIGlmIHRlc3Qg
eCRnZGJfY3Zfb3NfY3lnd2luID0geHllczsgdGhlbg0KIGVsc2UNCiAgIFRF
Uk1fTElCPQ0KICAgZWNobyAkYWNfbiAiY2hlY2tpbmcgZm9yIHRnZXRlbnQg
aW4gLWxuY3Vyc2VzIiIuLi4gJGFjX2MiIDE+JjYNCi1lY2hvICJjb25maWd1
cmU6NTgzMzogY2hlY2tpbmcgZm9yIHRnZXRlbnQgaW4gLWxuY3Vyc2VzIiA+
JjUNCitlY2hvICJjb25maWd1cmU6NTgyMjogY2hlY2tpbmcgZm9yIHRnZXRl
bnQgaW4gLWxuY3Vyc2VzIiA+JjUNCiBhY19saWJfdmFyPWBlY2hvIG5jdXJz
ZXMnXyd0Z2V0ZW50IHwgc2VkICd5JS4vKy0lX19wXyUnYA0KIGlmIGV2YWwg
InRlc3QgXCJgZWNobyAnJCcneydhY19jdl9saWJfJGFjX2xpYl92YXInK3Nl
dH0nYFwiID0gc2V0IjsgdGhlbg0KICAgZWNobyAkYWNfbiAiKGNhY2hlZCkg
JGFjX2MiIDE+JjYNCkBAIC01ODM3LDcgKzU4MjYsNyBAQCBlbHNlDQogICBh
Y19zYXZlX0xJQlM9IiRMSUJTIg0KIExJQlM9Ii1sbmN1cnNlcyAgJExJQlMi
DQogY2F0ID4gY29uZnRlc3QuJGFjX2V4dCA8PEVPRg0KLSNsaW5lIDU4NDEg
ImNvbmZpZ3VyZSINCisjbGluZSA1ODMwICJjb25maWd1cmUiDQogI2luY2x1
ZGUgImNvbmZkZWZzLmgiDQogLyogT3ZlcnJpZGUgYW55IGdjYzIgaW50ZXJu
YWwgcHJvdG90eXBlIHRvIGF2b2lkIGFuIGVycm9yLiAgKi8NCiAvKiBXZSB1
c2UgY2hhciBiZWNhdXNlIGludCBtaWdodCBtYXRjaCB0aGUgcmV0dXJuIHR5
cGUgb2YgYSBnY2MyDQpAQCAtNTg0OCw3ICs1ODM3LDcgQEAgaW50IG1haW4o
KSB7DQogdGdldGVudCgpDQogOyByZXR1cm4gMDsgfQ0KIEVPRg0KLWlmIHsg
KGV2YWwgZWNobyBjb25maWd1cmU6NTg1MjogXCIkYWNfbGlua1wiKSAxPiY1
OyAoZXZhbCAkYWNfbGluaykgMj4mNTsgfSAmJiB0ZXN0IC1zIGNvbmZ0ZXN0
JHthY19leGVleHR9OyB0aGVuDQoraWYgeyAoZXZhbCBlY2hvIGNvbmZpZ3Vy
ZTo1ODQxOiBcIiRhY19saW5rXCIpIDE+JjU7IChldmFsICRhY19saW5rKSAy
PiY1OyB9ICYmIHRlc3QgLXMgY29uZnRlc3Qke2FjX2V4ZWV4dH07IHRoZW4N
CiAgIHJtIC1yZiBjb25mdGVzdCoNCiAgIGV2YWwgImFjX2N2X2xpYl8kYWNf
bGliX3Zhcj15ZXMiDQogZWxzZQ0KQEAgLTU4NjcsNyArNTg1Niw3IEBAIGlm
IGV2YWwgInRlc3QgXCJgZWNobyAnJGFjX2N2X2xpYl8nJGFjX2wNCiBlbHNl
DQogICBlY2hvICIkYWNfdCIibm8iIDE+JjYNCiBlY2hvICRhY19uICJjaGVj
a2luZyBmb3IgdGdldGVudCBpbiAtbEhjdXJzZXMiIi4uLiAkYWNfYyIgMT4m
Ng0KLWVjaG8gImNvbmZpZ3VyZTo1ODcxOiBjaGVja2luZyBmb3IgdGdldGVu
dCBpbiAtbEhjdXJzZXMiID4mNQ0KK2VjaG8gImNvbmZpZ3VyZTo1ODYwOiBj
aGVja2luZyBmb3IgdGdldGVudCBpbiAtbEhjdXJzZXMiID4mNQ0KIGFjX2xp
Yl92YXI9YGVjaG8gSGN1cnNlcydfJ3RnZXRlbnQgfCBzZWQgJ3klLi8rLSVf
X3BfJSdgDQogaWYgZXZhbCAidGVzdCBcImBlY2hvICckJyd7J2FjX2N2X2xp
Yl8kYWNfbGliX3Zhcicrc2V0fSdgXCIgPSBzZXQiOyB0aGVuDQogICBlY2hv
ICRhY19uICIoY2FjaGVkKSAkYWNfYyIgMT4mNg0KQEAgLTU4NzUsNyArNTg2
NCw3IEBAIGVsc2UNCiAgIGFjX3NhdmVfTElCUz0iJExJQlMiDQogTElCUz0i
LWxIY3Vyc2VzICAkTElCUyINCiBjYXQgPiBjb25mdGVzdC4kYWNfZXh0IDw8
RU9GDQotI2xpbmUgNTg3OSAiY29uZmlndXJlIg0KKyNsaW5lIDU4NjggImNv
bmZpZ3VyZSINCiAjaW5jbHVkZSAiY29uZmRlZnMuaCINCiAvKiBPdmVycmlk
ZSBhbnkgZ2NjMiBpbnRlcm5hbCBwcm90b3R5cGUgdG8gYXZvaWQgYW4gZXJy
b3IuICAqLw0KIC8qIFdlIHVzZSBjaGFyIGJlY2F1c2UgaW50IG1pZ2h0IG1h
dGNoIHRoZSByZXR1cm4gdHlwZSBvZiBhIGdjYzINCkBAIC01ODg2LDcgKzU4
NzUsNyBAQCBpbnQgbWFpbigpIHsNCiB0Z2V0ZW50KCkNCiA7IHJldHVybiAw
OyB9DQogRU9GDQotaWYgeyAoZXZhbCBlY2hvIGNvbmZpZ3VyZTo1ODkwOiBc
IiRhY19saW5rXCIpIDE+JjU7IChldmFsICRhY19saW5rKSAyPiY1OyB9ICYm
IHRlc3QgLXMgY29uZnRlc3Qke2FjX2V4ZWV4dH07IHRoZW4NCitpZiB7IChl
dmFsIGVjaG8gY29uZmlndXJlOjU4Nzk6IFwiJGFjX2xpbmtcIikgMT4mNTsg
KGV2YWwgJGFjX2xpbmspIDI+JjU7IH0gJiYgdGVzdCAtcyBjb25mdGVzdCR7
YWNfZXhlZXh0fTsgdGhlbg0KICAgcm0gLXJmIGNvbmZ0ZXN0Kg0KICAgZXZh
bCAiYWNfY3ZfbGliXyRhY19saWJfdmFyPXllcyINCiBlbHNlDQpAQCAtNTkw
NSw3ICs1ODk0LDcgQEAgaWYgZXZhbCAidGVzdCBcImBlY2hvICckYWNfY3Zf
bGliXyckYWNfbA0KIGVsc2UNCiAgIGVjaG8gIiRhY190IiJubyIgMT4mNg0K
IGVjaG8gJGFjX24gImNoZWNraW5nIGZvciB0Z2V0ZW50IGluIC1sdGVybWxp
YiIiLi4uICRhY19jIiAxPiY2DQotZWNobyAiY29uZmlndXJlOjU5MDk6IGNo
ZWNraW5nIGZvciB0Z2V0ZW50IGluIC1sdGVybWxpYiIgPiY1DQorZWNobyAi
Y29uZmlndXJlOjU4OTg6IGNoZWNraW5nIGZvciB0Z2V0ZW50IGluIC1sdGVy
bWxpYiIgPiY1DQogYWNfbGliX3Zhcj1gZWNobyB0ZXJtbGliJ18ndGdldGVu
dCB8IHNlZCAneSUuLystJV9fcF8lJ2ANCiBpZiBldmFsICJ0ZXN0IFwiYGVj
aG8gJyQnJ3snYWNfY3ZfbGliXyRhY19saWJfdmFyJytzZXR9J2BcIiA9IHNl
dCI7IHRoZW4NCiAgIGVjaG8gJGFjX24gIihjYWNoZWQpICRhY19jIiAxPiY2
DQpAQCAtNTkxMyw3ICs1OTAyLDcgQEAgZWxzZQ0KICAgYWNfc2F2ZV9MSUJT
PSIkTElCUyINCiBMSUJTPSItbHRlcm1saWIgICRMSUJTIg0KIGNhdCA+IGNv
bmZ0ZXN0LiRhY19leHQgPDxFT0YNCi0jbGluZSA1OTE3ICJjb25maWd1cmUi
DQorI2xpbmUgNTkwNiAiY29uZmlndXJlIg0KICNpbmNsdWRlICJjb25mZGVm
cy5oIg0KIC8qIE92ZXJyaWRlIGFueSBnY2MyIGludGVybmFsIHByb3RvdHlw
ZSB0byBhdm9pZCBhbiBlcnJvci4gICovDQogLyogV2UgdXNlIGNoYXIgYmVj
YXVzZSBpbnQgbWlnaHQgbWF0Y2ggdGhlIHJldHVybiB0eXBlIG9mIGEgZ2Nj
Mg0KQEAgLTU5MjQsNyArNTkxMyw3IEBAIGludCBtYWluKCkgew0KIHRnZXRl
bnQoKQ0KIDsgcmV0dXJuIDA7IH0NCiBFT0YNCi1pZiB7IChldmFsIGVjaG8g
Y29uZmlndXJlOjU5Mjg6IFwiJGFjX2xpbmtcIikgMT4mNTsgKGV2YWwgJGFj
X2xpbmspIDI+JjU7IH0gJiYgdGVzdCAtcyBjb25mdGVzdCR7YWNfZXhlZXh0
fTsgdGhlbg0KK2lmIHsgKGV2YWwgZWNobyBjb25maWd1cmU6NTkxNzogXCIk
YWNfbGlua1wiKSAxPiY1OyAoZXZhbCAkYWNfbGluaykgMj4mNTsgfSAmJiB0
ZXN0IC1zIGNvbmZ0ZXN0JHthY19leGVleHR9OyB0aGVuDQogICBybSAtcmYg
Y29uZnRlc3QqDQogICBldmFsICJhY19jdl9saWJfJGFjX2xpYl92YXI9eWVz
Ig0KIGVsc2UNCkBAIC01OTQzLDcgKzU5MzIsNyBAQCBpZiBldmFsICJ0ZXN0
IFwiYGVjaG8gJyRhY19jdl9saWJfJyRhY19sDQogZWxzZQ0KICAgZWNobyAi
JGFjX3QiIm5vIiAxPiY2DQogZWNobyAkYWNfbiAiY2hlY2tpbmcgZm9yIHRn
ZXRlbnQgaW4gLWx0ZXJtY2FwIiIuLi4gJGFjX2MiIDE+JjYNCi1lY2hvICJj
b25maWd1cmU6NTk0NzogY2hlY2tpbmcgZm9yIHRnZXRlbnQgaW4gLWx0ZXJt
Y2FwIiA+JjUNCitlY2hvICJjb25maWd1cmU6NTkzNjogY2hlY2tpbmcgZm9y
IHRnZXRlbnQgaW4gLWx0ZXJtY2FwIiA+JjUNCiBhY19saWJfdmFyPWBlY2hv
IHRlcm1jYXAnXyd0Z2V0ZW50IHwgc2VkICd5JS4vKy0lX19wXyUnYA0KIGlm
IGV2YWwgInRlc3QgXCJgZWNobyAnJCcneydhY19jdl9saWJfJGFjX2xpYl92
YXInK3NldH0nYFwiID0gc2V0IjsgdGhlbg0KICAgZWNobyAkYWNfbiAiKGNh
Y2hlZCkgJGFjX2MiIDE+JjYNCkBAIC01OTUxLDcgKzU5NDAsNyBAQCBlbHNl
DQogICBhY19zYXZlX0xJQlM9IiRMSUJTIg0KIExJQlM9Ii1sdGVybWNhcCAg
JExJQlMiDQogY2F0ID4gY29uZnRlc3QuJGFjX2V4dCA8PEVPRg0KLSNsaW5l
IDU5NTUgImNvbmZpZ3VyZSINCisjbGluZSA1OTQ0ICJjb25maWd1cmUiDQog
I2luY2x1ZGUgImNvbmZkZWZzLmgiDQogLyogT3ZlcnJpZGUgYW55IGdjYzIg
aW50ZXJuYWwgcHJvdG90eXBlIHRvIGF2b2lkIGFuIGVycm9yLiAgKi8NCiAv
KiBXZSB1c2UgY2hhciBiZWNhdXNlIGludCBtaWdodCBtYXRjaCB0aGUgcmV0
dXJuIHR5cGUgb2YgYSBnY2MyDQpAQCAtNTk2Miw3ICs1OTUxLDcgQEAgaW50
IG1haW4oKSB7DQogdGdldGVudCgpDQogOyByZXR1cm4gMDsgfQ0KIEVPRg0K
LWlmIHsgKGV2YWwgZWNobyBjb25maWd1cmU6NTk2NjogXCIkYWNfbGlua1wi
KSAxPiY1OyAoZXZhbCAkYWNfbGluaykgMj4mNTsgfSAmJiB0ZXN0IC1zIGNv
bmZ0ZXN0JHthY19leGVleHR9OyB0aGVuDQoraWYgeyAoZXZhbCBlY2hvIGNv
bmZpZ3VyZTo1OTU1OiBcIiRhY19saW5rXCIpIDE+JjU7IChldmFsICRhY19s
aW5rKSAyPiY1OyB9ICYmIHRlc3QgLXMgY29uZnRlc3Qke2FjX2V4ZWV4dH07
IHRoZW4NCiAgIHJtIC1yZiBjb25mdGVzdCoNCiAgIGV2YWwgImFjX2N2X2xp
Yl8kYWNfbGliX3Zhcj15ZXMiDQogZWxzZQ0KQEAgLTU5ODEsNyArNTk3MCw3
IEBAIGlmIGV2YWwgInRlc3QgXCJgZWNobyAnJGFjX2N2X2xpYl8nJGFjX2wN
CiBlbHNlDQogICBlY2hvICIkYWNfdCIibm8iIDE+JjYNCiBlY2hvICRhY19u
ICJjaGVja2luZyBmb3IgdGdldGVudCBpbiAtbGN1cnNlcyIiLi4uICRhY19j
IiAxPiY2DQotZWNobyAiY29uZmlndXJlOjU5ODU6IGNoZWNraW5nIGZvciB0
Z2V0ZW50IGluIC1sY3Vyc2VzIiA+JjUNCitlY2hvICJjb25maWd1cmU6NTk3
NDogY2hlY2tpbmcgZm9yIHRnZXRlbnQgaW4gLWxjdXJzZXMiID4mNQ0KIGFj
X2xpYl92YXI9YGVjaG8gY3Vyc2VzJ18ndGdldGVudCB8IHNlZCAneSUuLyst
JV9fcF8lJ2ANCiBpZiBldmFsICJ0ZXN0IFwiYGVjaG8gJyQnJ3snYWNfY3Zf
bGliXyRhY19saWJfdmFyJytzZXR9J2BcIiA9IHNldCI7IHRoZW4NCiAgIGVj
aG8gJGFjX24gIihjYWNoZWQpICRhY19jIiAxPiY2DQpAQCAtNTk4OSw3ICs1
OTc4LDcgQEAgZWxzZQ0KICAgYWNfc2F2ZV9MSUJTPSIkTElCUyINCiBMSUJT
PSItbGN1cnNlcyAgJExJQlMiDQogY2F0ID4gY29uZnRlc3QuJGFjX2V4dCA8
PEVPRg0KLSNsaW5lIDU5OTMgImNvbmZpZ3VyZSINCisjbGluZSA1OTgyICJj
b25maWd1cmUiDQogI2luY2x1ZGUgImNvbmZkZWZzLmgiDQogLyogT3ZlcnJp
ZGUgYW55IGdjYzIgaW50ZXJuYWwgcHJvdG90eXBlIHRvIGF2b2lkIGFuIGVy
cm9yLiAgKi8NCiAvKiBXZSB1c2UgY2hhciBiZWNhdXNlIGludCBtaWdodCBt
YXRjaCB0aGUgcmV0dXJuIHR5cGUgb2YgYSBnY2MyDQpAQCAtNjAwMCw3ICs1
OTg5LDcgQEAgaW50IG1haW4oKSB7DQogdGdldGVudCgpDQogOyByZXR1cm4g
MDsgfQ0KIEVPRg0KLWlmIHsgKGV2YWwgZWNobyBjb25maWd1cmU6NjAwNDog
XCIkYWNfbGlua1wiKSAxPiY1OyAoZXZhbCAkYWNfbGluaykgMj4mNTsgfSAm
JiB0ZXN0IC1zIGNvbmZ0ZXN0JHthY19leGVleHR9OyB0aGVuDQoraWYgeyAo
ZXZhbCBlY2hvIGNvbmZpZ3VyZTo1OTkzOiBcIiRhY19saW5rXCIpIDE+JjU7
IChldmFsICRhY19saW5rKSAyPiY1OyB9ICYmIHRlc3QgLXMgY29uZnRlc3Qk
e2FjX2V4ZWV4dH07IHRoZW4NCiAgIHJtIC1yZiBjb25mdGVzdCoNCiAgIGV2
YWwgImFjX2N2X2xpYl8kYWNfbGliX3Zhcj15ZXMiDQogZWxzZQ0KQEAgLTYw
MTksNyArNjAwOCw3IEBAIGlmIGV2YWwgInRlc3QgXCJgZWNobyAnJGFjX2N2
X2xpYl8nJGFjX2wNCiBlbHNlDQogICBlY2hvICIkYWNfdCIibm8iIDE+JjYN
CiBlY2hvICRhY19uICJjaGVja2luZyBmb3IgdGdldGVudCBpbiAtbHRlcm1p
bmZvIiIuLi4gJGFjX2MiIDE+JjYNCi1lY2hvICJjb25maWd1cmU6NjAyMzog
Y2hlY2tpbmcgZm9yIHRnZXRlbnQgaW4gLWx0ZXJtaW5mbyIgPiY1DQorZWNo
byAiY29uZmlndXJlOjYwMTI6IGNoZWNraW5nIGZvciB0Z2V0ZW50IGluIC1s
dGVybWluZm8iID4mNQ0KIGFjX2xpYl92YXI9YGVjaG8gdGVybWluZm8nXyd0
Z2V0ZW50IHwgc2VkICd5JS4vKy0lX19wXyUnYA0KIGlmIGV2YWwgInRlc3Qg
XCJgZWNobyAnJCcneydhY19jdl9saWJfJGFjX2xpYl92YXInK3NldH0nYFwi
ID0gc2V0IjsgdGhlbg0KICAgZWNobyAkYWNfbiAiKGNhY2hlZCkgJGFjX2Mi
IDE+JjYNCkBAIC02MDI3LDcgKzYwMTYsNyBAQCBlbHNlDQogICBhY19zYXZl
X0xJQlM9IiRMSUJTIg0KIExJQlM9Ii1sdGVybWluZm8gICRMSUJTIg0KIGNh
dCA+IGNvbmZ0ZXN0LiRhY19leHQgPDxFT0YNCi0jbGluZSA2MDMxICJjb25m
aWd1cmUiDQorI2xpbmUgNjAyMCAiY29uZmlndXJlIg0KICNpbmNsdWRlICJj
b25mZGVmcy5oIg0KIC8qIE92ZXJyaWRlIGFueSBnY2MyIGludGVybmFsIHBy
b3RvdHlwZSB0byBhdm9pZCBhbiBlcnJvci4gICovDQogLyogV2UgdXNlIGNo
YXIgYmVjYXVzZSBpbnQgbWlnaHQgbWF0Y2ggdGhlIHJldHVybiB0eXBlIG9m
IGEgZ2NjMg0KQEAgLTYwMzgsNyArNjAyNyw3IEBAIGludCBtYWluKCkgew0K
IHRnZXRlbnQoKQ0KIDsgcmV0dXJuIDA7IH0NCiBFT0YNCi1pZiB7IChldmFs
IGVjaG8gY29uZmlndXJlOjYwNDI6IFwiJGFjX2xpbmtcIikgMT4mNTsgKGV2
YWwgJGFjX2xpbmspIDI+JjU7IH0gJiYgdGVzdCAtcyBjb25mdGVzdCR7YWNf
ZXhlZXh0fTsgdGhlbg0KK2lmIHsgKGV2YWwgZWNobyBjb25maWd1cmU6NjAz
MTogXCIkYWNfbGlua1wiKSAxPiY1OyAoZXZhbCAkYWNfbGluaykgMj4mNTsg
fSAmJiB0ZXN0IC1zIGNvbmZ0ZXN0JHthY19leGVleHR9OyB0aGVuDQogICBy
bSAtcmYgY29uZnRlc3QqDQogICBldmFsICJhY19jdl9saWJfJGFjX2xpYl92
YXI9eWVzIg0KIGVsc2UNCkBAIC02MTk2LDcgKzYxODUsNyBAQCBpZiB0ZXN0
ICIke3dpdGhfdGNsY29uZmlnK3NldH0iID0gc2V0OyB0DQogZmkNCiANCiAg
IGVjaG8gJGFjX24gImNoZWNraW5nIGZvciBUY2wgY29uZmlndXJhdGlvbiIi
Li4uICRhY19jIiAxPiY2DQotZWNobyAiY29uZmlndXJlOjYyMDA6IGNoZWNr
aW5nIGZvciBUY2wgY29uZmlndXJhdGlvbiIgPiY1DQorZWNobyAiY29uZmln
dXJlOjYxODk6IGNoZWNraW5nIGZvciBUY2wgY29uZmlndXJhdGlvbiIgPiY1
DQogICBpZiBldmFsICJ0ZXN0IFwiYGVjaG8gJyQnJ3snYWNfY3ZfY190Y2xj
b25maWcnK3NldH0nYFwiID0gc2V0IjsgdGhlbg0KICAgZWNobyAkYWNfbiAi
KGNhY2hlZCkgJGFjX2MiIDE+JjYNCiBlbHNlDQpAQCAtNjMwNCw3ICs2Mjkz
LDcgQEAgaWYgdGVzdCAiJHt3aXRoX3RrY29uZmlnK3NldH0iID0gc2V0OyB0
aA0KIGZpDQogDQogICBlY2hvICRhY19uICJjaGVja2luZyBmb3IgVGsgY29u
ZmlndXJhdGlvbiIiLi4uICRhY19jIiAxPiY2DQotZWNobyAiY29uZmlndXJl
OjYzMDg6IGNoZWNraW5nIGZvciBUayBjb25maWd1cmF0aW9uIiA+JjUNCitl
Y2hvICJjb25maWd1cmU6NjI5NzogY2hlY2tpbmcgZm9yIFRrIGNvbmZpZ3Vy
YXRpb24iID4mNQ0KICAgaWYgZXZhbCAidGVzdCBcImBlY2hvICckJyd7J2Fj
X2N2X2NfdGtjb25maWcnK3NldH0nYFwiID0gc2V0IjsgdGhlbg0KICAgZWNo
byAkYWNfbiAiKGNhY2hlZCkgJGFjX2MiIDE+JjYNCiBlbHNlDQpAQCAtNjQw
MCw3ICs2Mzg5LDcgQEAgZmkNCiANCiBub190Y2w9dHJ1ZQ0KIGVjaG8gJGFj
X24gImNoZWNraW5nIGZvciBUY2wgcHJpdmF0ZSBoZWFkZXJzLiBkaXI9JHtj
b25maWdkaXJ9IiIuLi4gJGFjX2MiIDE+JjYNCi1lY2hvICJjb25maWd1cmU6
NjQwNDogY2hlY2tpbmcgZm9yIFRjbCBwcml2YXRlIGhlYWRlcnMuIGRpcj0k
e2NvbmZpZ2Rpcn0iID4mNQ0KK2VjaG8gImNvbmZpZ3VyZTo2MzkzOiBjaGVj
a2luZyBmb3IgVGNsIHByaXZhdGUgaGVhZGVycy4gZGlyPSR7Y29uZmlnZGly
fSIgPiY1DQogIyBDaGVjayB3aGV0aGVyIC0td2l0aC10Y2xpbmNsdWRlIG9y
IC0td2l0aG91dC10Y2xpbmNsdWRlIHdhcyBnaXZlbi4NCiBpZiB0ZXN0ICIk
e3dpdGhfdGNsaW5jbHVkZStzZXR9IiA9IHNldDsgdGhlbg0KICAgd2l0aHZh
bD0iJHdpdGhfdGNsaW5jbHVkZSINCkBAIC02NDY2LDE3ICs2NDU1LDE3IEBA
IGZpDQogaWYgdGVzdCB4IiR7YWNfY3ZfY190Y2xofSIgPSB4IDsgdGhlbg0K
ICAgIGFjX3NhZmU9YGVjaG8gInRjbEludC5oIiB8IHNlZCAneSUuLystJV9f
cF8lJ2ANCiBlY2hvICRhY19uICJjaGVja2luZyBmb3IgdGNsSW50LmgiIi4u
LiAkYWNfYyIgMT4mNg0KLWVjaG8gImNvbmZpZ3VyZTo2NDcwOiBjaGVja2lu
ZyBmb3IgdGNsSW50LmgiID4mNQ0KK2VjaG8gImNvbmZpZ3VyZTo2NDU5OiBj
aGVja2luZyBmb3IgdGNsSW50LmgiID4mNQ0KIGlmIGV2YWwgInRlc3QgXCJg
ZWNobyAnJCcneydhY19jdl9oZWFkZXJfJGFjX3NhZmUnK3NldH0nYFwiID0g
c2V0IjsgdGhlbg0KICAgZWNobyAkYWNfbiAiKGNhY2hlZCkgJGFjX2MiIDE+
JjYNCiBlbHNlDQogICBjYXQgPiBjb25mdGVzdC4kYWNfZXh0IDw8RU9GDQot
I2xpbmUgNjQ3NSAiY29uZmlndXJlIg0KKyNsaW5lIDY0NjQgImNvbmZpZ3Vy
ZSINCiAjaW5jbHVkZSAiY29uZmRlZnMuaCINCiAjaW5jbHVkZSA8dGNsSW50
Lmg+DQogRU9GDQogYWNfdHJ5PSIkYWNfY3BwIGNvbmZ0ZXN0LiRhY19leHQg
Pi9kZXYvbnVsbCAyPmNvbmZ0ZXN0Lm91dCINCi17IChldmFsIGVjaG8gY29u
ZmlndXJlOjY0ODA6IFwiJGFjX3RyeVwiKSAxPiY1OyAoZXZhbCAkYWNfdHJ5
KSAyPiY1OyB9DQoreyAoZXZhbCBlY2hvIGNvbmZpZ3VyZTo2NDY5OiBcIiRh
Y190cnlcIikgMT4mNTsgKGV2YWwgJGFjX3RyeSkgMj4mNTsgfQ0KIGFjX2Vy
cj1gZ3JlcCAtdiAnXiAqKycgY29uZnRlc3Qub3V0IHwgZ3JlcCAtdiAiXmNv
bmZ0ZXN0LiR7YWNfZXh0fVwkImANCiBpZiB0ZXN0IC16ICIkYWNfZXJyIjsg
dGhlbg0KICAgcm0gLXJmIGNvbmZ0ZXN0Kg0KQEAgLTY1MzYsNyArNjUyNSw3
IEBAIGZpDQogIw0KIG5vX3RrPXRydWUNCiBlY2hvICRhY19uICJjaGVja2lu
ZyBmb3IgVGsgcHJpdmF0ZSBoZWFkZXJzIiIuLi4gJGFjX2MiIDE+JjYNCi1l
Y2hvICJjb25maWd1cmU6NjU0MDogY2hlY2tpbmcgZm9yIFRrIHByaXZhdGUg
aGVhZGVycyIgPiY1DQorZWNobyAiY29uZmlndXJlOjY1Mjk6IGNoZWNraW5n
IGZvciBUayBwcml2YXRlIGhlYWRlcnMiID4mNQ0KICMgQ2hlY2sgd2hldGhl
ciAtLXdpdGgtdGtpbmNsdWRlIG9yIC0td2l0aG91dC10a2luY2x1ZGUgd2Fz
IGdpdmVuLg0KIGlmIHRlc3QgIiR7d2l0aF90a2luY2x1ZGUrc2V0fSIgPSBz
ZXQ7IHRoZW4NCiAgIHdpdGh2YWw9IiR3aXRoX3RraW5jbHVkZSINCkBAIC02
NjAyLDE3ICs2NTkxLDE3IEBAIGZpDQogaWYgdGVzdCB4IiR7YWNfY3ZfY190
a2h9IiA9IHggOyB0aGVuDQogICAgYWNfc2FmZT1gZWNobyAidGsuaCIgfCBz
ZWQgJ3klLi8rLSVfX3BfJSdgDQogZWNobyAkYWNfbiAiY2hlY2tpbmcgZm9y
IHRrLmgiIi4uLiAkYWNfYyIgMT4mNg0KLWVjaG8gImNvbmZpZ3VyZTo2NjA2
OiBjaGVja2luZyBmb3IgdGsuaCIgPiY1DQorZWNobyAiY29uZmlndXJlOjY1
OTU6IGNoZWNraW5nIGZvciB0ay5oIiA+JjUNCiBpZiBldmFsICJ0ZXN0IFwi
YGVjaG8gJyQnJ3snYWNfY3ZfaGVhZGVyXyRhY19zYWZlJytzZXR9J2BcIiA9
IHNldCI7IHRoZW4NCiAgIGVjaG8gJGFjX24gIihjYWNoZWQpICRhY19jIiAx
PiY2DQogZWxzZQ0KICAgY2F0ID4gY29uZnRlc3QuJGFjX2V4dCA8PEVPRg0K
LSNsaW5lIDY2MTEgImNvbmZpZ3VyZSINCisjbGluZSA2NjAwICJjb25maWd1
cmUiDQogI2luY2x1ZGUgImNvbmZkZWZzLmgiDQogI2luY2x1ZGUgPHRrLmg+
DQogRU9GDQogYWNfdHJ5PSIkYWNfY3BwIGNvbmZ0ZXN0LiRhY19leHQgPi9k
ZXYvbnVsbCAyPmNvbmZ0ZXN0Lm91dCINCi17IChldmFsIGVjaG8gY29uZmln
dXJlOjY2MTY6IFwiJGFjX3RyeVwiKSAxPiY1OyAoZXZhbCAkYWNfdHJ5KSAy
PiY1OyB9DQoreyAoZXZhbCBlY2hvIGNvbmZpZ3VyZTo2NjA1OiBcIiRhY190
cnlcIikgMT4mNTsgKGV2YWwgJGFjX3RyeSkgMj4mNTsgfQ0KIGFjX2Vycj1g
Z3JlcCAtdiAnXiAqKycgY29uZnRlc3Qub3V0IHwgZ3JlcCAtdiAiXmNvbmZ0
ZXN0LiR7YWNfZXh0fVwkImANCiBpZiB0ZXN0IC16ICIkYWNfZXJyIjsgdGhl
bg0KICAgcm0gLXJmIGNvbmZ0ZXN0Kg0KQEAgLTY2NTgsNyArNjY0Nyw3IEBA
IGZpDQogDQogCSAgIA0KIGVjaG8gJGFjX24gImNoZWNraW5nIGZvciBJdGNs
IHByaXZhdGUgaGVhZGVycy4gc3JjZGlyPSR7c3JjZGlyfSIiLi4uICRhY19j
IiAxPiY2DQotZWNobyAiY29uZmlndXJlOjY2NjI6IGNoZWNraW5nIGZvciBJ
dGNsIHByaXZhdGUgaGVhZGVycy4gc3JjZGlyPSR7c3JjZGlyfSIgPiY1DQor
ZWNobyAiY29uZmlndXJlOjY2NTE6IGNoZWNraW5nIGZvciBJdGNsIHByaXZh
dGUgaGVhZGVycy4gc3JjZGlyPSR7c3JjZGlyfSIgPiY1DQogaWYgdGVzdCB4
IiR7YWNfY3ZfY19pdGNsaH0iID0geCA7IHRoZW4NCiAgIGZvciBpIGluICR7
c3JjZGlyfS8uLi9pdGNsICR7c3JjZGlyfS8uLi8uLi9pdGNsICR7c3JjZGly
fS8uLi8uLi8uLi9pdGNsICR7c3JjZGlyfS8uLi9pdGNsL2l0Y2w7IGRvDQog
ICAgIGlmIHRlc3QgLWYgJGkvZ2VuZXJpYy9pdGNsLmggOyB0aGVuDQpAQCAt
NjY4MSw3ICs2NjcwLDcgQEAgZmkNCiANCiAJICAgDQogZWNobyAkYWNfbiAi
Y2hlY2tpbmcgZm9yIEl0ayBwcml2YXRlIGhlYWRlcnMuIHNyY2Rpcj0ke3Ny
Y2Rpcn0iIi4uLiAkYWNfYyIgMT4mNg0KLWVjaG8gImNvbmZpZ3VyZTo2Njg1
OiBjaGVja2luZyBmb3IgSXRrIHByaXZhdGUgaGVhZGVycy4gc3JjZGlyPSR7
c3JjZGlyfSIgPiY1DQorZWNobyAiY29uZmlndXJlOjY2NzQ6IGNoZWNraW5n
IGZvciBJdGsgcHJpdmF0ZSBoZWFkZXJzLiBzcmNkaXI9JHtzcmNkaXJ9IiA+
JjUNCiBpZiB0ZXN0IHgiJHthY19jdl9jX2l0a2h9IiA9IHggOyB0aGVuDQog
ICBmb3IgaSBpbiAke3NyY2Rpcn0vLi4vaXRjbCAke3NyY2Rpcn0vLi4vLi4v
aXRjbCAke3NyY2Rpcn0vLi4vLi4vLi4vaXRjbCAke3NyY2Rpcn0vLi4vaXRj
bC9pdGs7IGRvDQogICAgIGlmIHRlc3QgLWYgJGkvZ2VuZXJpYy9pdGsuaCA7
IHRoZW4NCkBAIC02NzA0LDcgKzY2OTMsNyBAQCBmaQ0KIA0KIAkgICANCiBl
Y2hvICRhY19uICJjaGVja2luZyBmb3IgVGl4IHByaXZhdGUgaGVhZGVycy4g
c3JjZGlyPSR7c3JjZGlyfSIiLi4uICRhY19jIiAxPiY2DQotZWNobyAiY29u
ZmlndXJlOjY3MDg6IGNoZWNraW5nIGZvciBUaXggcHJpdmF0ZSBoZWFkZXJz
LiBzcmNkaXI9JHtzcmNkaXJ9IiA+JjUNCitlY2hvICJjb25maWd1cmU6NjY5
NzogY2hlY2tpbmcgZm9yIFRpeCBwcml2YXRlIGhlYWRlcnMuIHNyY2Rpcj0k
e3NyY2Rpcn0iID4mNQ0KIGlmIHRlc3QgeCIke2FjX2N2X2NfdGl4aH0iID0g
eCA7IHRoZW4NCiAgIGZvciBpIGluICR7c3JjZGlyfS8uLi90aXggJHtzcmNk
aXJ9Ly4uLy4uL3RpeCAke3NyY2Rpcn0vLi4vLi4vLi4vdGl4IDsgZG8NCiAg
ICAgaWYgdGVzdCAtZiAkaS9nZW5lcmljL3RpeC5oIDsgdGhlbg0KQEAgLTY3
NDIsNyArNjczMSw3IEBAIGlmIHRlc3QgIiR7d2l0aF9pdGNsY29uZmlnK3Nl
dH0iID0gc2V0OyANCiBmaQ0KIA0KICAgZWNobyAkYWNfbiAiY2hlY2tpbmcg
Zm9yIEl0Y2wgY29uZmlndXJhdGlvbiIiLi4uICRhY19jIiAxPiY2DQotZWNo
byAiY29uZmlndXJlOjY3NDY6IGNoZWNraW5nIGZvciBJdGNsIGNvbmZpZ3Vy
YXRpb24iID4mNQ0KK2VjaG8gImNvbmZpZ3VyZTo2NzM1OiBjaGVja2luZyBm
b3IgSXRjbCBjb25maWd1cmF0aW9uIiA+JjUNCiAgIGlmIGV2YWwgInRlc3Qg
XCJgZWNobyAnJCcneydhY19jdl9jX2l0Y2xjb25maWcnK3NldH0nYFwiID0g
c2V0IjsgdGhlbg0KICAgZWNobyAkYWNfbiAiKGNhY2hlZCkgJGFjX2MiIDE+
JjYNCiBlbHNlDQpAQCAtNjg1NCw3ICs2ODQzLDcgQEAgaWYgdGVzdCAiJHt3
aXRoX2l0a2NvbmZpZytzZXR9IiA9IHNldDsgdA0KIGZpDQogDQogICBlY2hv
ICRhY19uICJjaGVja2luZyBmb3IgSXRrIGNvbmZpZ3VyYXRpb24iIi4uLiAk
YWNfYyIgMT4mNg0KLWVjaG8gImNvbmZpZ3VyZTo2ODU4OiBjaGVja2luZyBm
b3IgSXRrIGNvbmZpZ3VyYXRpb24iID4mNQ0KK2VjaG8gImNvbmZpZ3VyZTo2
ODQ3OiBjaGVja2luZyBmb3IgSXRrIGNvbmZpZ3VyYXRpb24iID4mNQ0KICAg
aWYgZXZhbCAidGVzdCBcImBlY2hvICckJyd7J2FjX2N2X2NfaXRrY29uZmln
JytzZXR9J2BcIiA9IHNldCI7IHRoZW4NCiAgIGVjaG8gJGFjX24gIihjYWNo
ZWQpICRhY19jIiAxPiY2DQogZWxzZQ0KQEAgLTY5NjYsNyArNjk1NSw3IEBA
IGlmIHRlc3QgIiR7d2l0aF90aXhjb25maWcrc2V0fSIgPSBzZXQ7IHQNCiBm
aQ0KIA0KICAgZWNobyAkYWNfbiAiY2hlY2tpbmcgZm9yIFRpeCBjb25maWd1
cmF0aW9uIiIuLi4gJGFjX2MiIDE+JjYNCi1lY2hvICJjb25maWd1cmU6Njk3
MDogY2hlY2tpbmcgZm9yIFRpeCBjb25maWd1cmF0aW9uIiA+JjUNCitlY2hv
ICJjb25maWd1cmU6Njk1OTogY2hlY2tpbmcgZm9yIFRpeCBjb25maWd1cmF0
aW9uIiA+JjUNCiAgIGlmIGV2YWwgInRlc3QgXCJgZWNobyAnJCcneydhY19j
dl9jX3RpeGNvbmZpZycrc2V0fSdgXCIgPSBzZXQiOyB0aGVuDQogICBlY2hv
ICRhY19uICIoY2FjaGVkKSAkYWNfYyIgMT4mNg0KIGVsc2UNCkBAIC03MTA1
LDcgKzcwOTQsNyBAQCBmaQ0KICMgVXNlcyBhY18gdmFycyBhcyB0ZW1wcyB0
byBhbGxvdyBjb21tYW5kIGxpbmUgdG8gb3ZlcnJpZGUgY2FjaGUgYW5kIGNo
ZWNrcy4NCiAjIC0td2l0aG91dC14IG92ZXJyaWRlcyBldmVyeXRoaW5nIGVs
c2UsIGJ1dCBkb2VzIG5vdCB0b3VjaCB0aGUgY2FjaGUuDQogZWNobyAkYWNf
biAiY2hlY2tpbmcgZm9yIFgiIi4uLiAkYWNfYyIgMT4mNg0KLWVjaG8gImNv
bmZpZ3VyZTo3MTA5OiBjaGVja2luZyBmb3IgWCIgPiY1DQorZWNobyAiY29u
ZmlndXJlOjcwOTg6IGNoZWNraW5nIGZvciBYIiA+JjUNCiANCiAjIENoZWNr
IHdoZXRoZXIgLS13aXRoLXggb3IgLS13aXRob3V0LXggd2FzIGdpdmVuLg0K
IGlmIHRlc3QgIiR7d2l0aF94K3NldH0iID0gc2V0OyB0aGVuDQpAQCAtNzE2
NywxMiArNzE1NiwxMiBAQCBpZiB0ZXN0ICIkYWNfeF9pbmNsdWRlcyIgPSBO
TzsgdGhlbg0KIA0KICAgIyBGaXJzdCwgdHJ5IHVzaW5nIHRoYXQgZmlsZSB3
aXRoIG5vIHNwZWNpYWwgZGlyZWN0b3J5IHNwZWNpZmllZC4NCiBjYXQgPiBj
b25mdGVzdC4kYWNfZXh0IDw8RU9GDQotI2xpbmUgNzE3MSAiY29uZmlndXJl
Ig0KKyNsaW5lIDcxNjAgImNvbmZpZ3VyZSINCiAjaW5jbHVkZSAiY29uZmRl
ZnMuaCINCiAjaW5jbHVkZSA8JHhfZGlyZWN0X3Rlc3RfaW5jbHVkZT4NCiBF
T0YNCiBhY190cnk9IiRhY19jcHAgY29uZnRlc3QuJGFjX2V4dCA+L2Rldi9u
dWxsIDI+Y29uZnRlc3Qub3V0Ig0KLXsgKGV2YWwgZWNobyBjb25maWd1cmU6
NzE3NjogXCIkYWNfdHJ5XCIpIDE+JjU7IChldmFsICRhY190cnkpIDI+JjU7
IH0NCit7IChldmFsIGVjaG8gY29uZmlndXJlOjcxNjU6IFwiJGFjX3RyeVwi
KSAxPiY1OyAoZXZhbCAkYWNfdHJ5KSAyPiY1OyB9DQogYWNfZXJyPWBncmVw
IC12ICdeICorJyBjb25mdGVzdC5vdXQgfCBncmVwIC12ICJeY29uZnRlc3Qu
JHthY19leHR9XCQiYA0KIGlmIHRlc3QgLXogIiRhY19lcnIiOyB0aGVuDQog
ICBybSAtcmYgY29uZnRlc3QqDQpAQCAtNzI0MSwxNCArNzIzMCwxNCBAQCBp
ZiB0ZXN0ICIkYWNfeF9saWJyYXJpZXMiID0gTk87IHRoZW4NCiAgIGFjX3Nh
dmVfTElCUz0iJExJQlMiDQogICBMSUJTPSItbCR4X2RpcmVjdF90ZXN0X2xp
YnJhcnkgJExJQlMiDQogY2F0ID4gY29uZnRlc3QuJGFjX2V4dCA8PEVPRg0K
LSNsaW5lIDcyNDUgImNvbmZpZ3VyZSINCisjbGluZSA3MjM0ICJjb25maWd1
cmUiDQogI2luY2x1ZGUgImNvbmZkZWZzLmgiDQogDQogaW50IG1haW4oKSB7
DQogJHt4X2RpcmVjdF90ZXN0X2Z1bmN0aW9ufSgpDQogOyByZXR1cm4gMDsg
fQ0KIEVPRg0KLWlmIHsgKGV2YWwgZWNobyBjb25maWd1cmU6NzI1MjogXCIk
YWNfbGlua1wiKSAxPiY1OyAoZXZhbCAkYWNfbGluaykgMj4mNTsgfSAmJiB0
ZXN0IC1zIGNvbmZ0ZXN0JHthY19leGVleHR9OyB0aGVuDQoraWYgeyAoZXZh
bCBlY2hvIGNvbmZpZ3VyZTo3MjQxOiBcIiRhY19saW5rXCIpIDE+JjU7IChl
dmFsICRhY19saW5rKSAyPiY1OyB9ICYmIHRlc3QgLXMgY29uZnRlc3Qke2Fj
X2V4ZWV4dH07IHRoZW4NCiAgIHJtIC1yZiBjb25mdGVzdCoNCiAgIExJQlM9
IiRhY19zYXZlX0xJQlMiDQogIyBXZSBjYW4gbGluayBYIHByb2dyYW1zIHdp
dGggbm8gc3BlY2lhbCBsaWJyYXJ5IHBhdGguDQpAQCAtNzQ5MywxMiArNzQ4
MiwxOSBAQCBpZiB0ZXN0ICIke3RhcmdldH0iID0gIiR7aG9zdH0iOyB0aGVu
DQogbmF0aXZlZmlsZT1gc2VkIC1uICcNCiBzL05BVF9GSUxFWyAJXSo9WyAJ
XSpcKFteIAldKlwpL1wxL3ANCiAnICR7aG9zdF9tYWtlZmlsZV9mcmFnfWAN
Ci0jIGVsc2UNCitlbHNlDQogIyBHREJzZXJ2ZXIgaXMgb25seSB1c2VmdWwg
aW4gYSAibmF0aXZlIiBlbnZpcm9tZW50DQotIyBjb25maWdkaXJzPWBlY2hv
ICRjb25maWdkaXJzIHwgc2VkICdzL2dkYnNlcnZlci8vJ2ANCitjb25maWdk
aXJzPWBlY2hvICRjb25maWdkaXJzIHwgc2VkICdzL2dkYnNlcnZlci8vJ2AN
CitmaQ0KKw0KKw0KK1NVQkRJUlM9ImRvYyB0ZXN0c3VpdGUgbmxtICRjb25m
aWdkaXJzIg0KK2lmIHRlc3QgIiR7ZW5hYmxlX211bHRpX2ljZX0iID0gInll
cyI7IHRoZW4NCisgIFNVQkRJUlM9IiR7U1VCRElSU30gbXVsdGktaWNlIg0K
IGZpDQogDQogDQorDQogIyBOZXcgdGFyZ2V0cyBzaG91bGQganVzdCBzZXQg
Z2RiX211bHRpX2FyY2g9eWVzIGluIGNvbmZpZ3VyZS50Z3QuDQogIyBPbGQg
dGFyZ2V0cyBiZWluZyBjb252ZXJ0ZWQgY2FuIGVpdGhlciBkbyB0aGF0IG9y
IHNldCBHREJfTVVMVElfQVJDSA0KICMgaW4gdGhlIHRhcmdldCBzcGVjaWZp
YyBtYWtlZmlsZSBmcmFnLiAgRXZlbnR1YWxseSBnZGJfbXVsdGlfYXJjaD15
ZXMNCkBAIC03NTI4LDE0ICs3NTI0LDYgQEAgY2FzZSAiJHtHREJfTVVMVElf
QVJDSH0iIGluDQogICAgICopICB7IGVjaG8gImNvbmZpZ3VyZTogZXJyb3I6
ICJHREI6IFVua25vd24gR0RCX01VTFRJX0FSQ0ggdmFsdWUgJHtHREJfTVVM
VElfQVJDSH0iIiAxPiYyOyBleGl0IDE7IH07Ow0KIGVzYWMNCiANCi0NCi1T
VUJESVJTPSJkb2MgdGVzdHN1aXRlIG5sbSINCi1pZiB0ZXN0ICIke2VuYWJs
ZV9tdWx0aV9pY2V9IiA9ICJ5ZXMiOyB0aGVuDQotICBTVUJESVJTPSIke1NV
QkRJUlN9IG11bHRpLWljZSINCi1maQ0KLQ0KLQ0KLQ0KICMgSWYgaG9zdGZp
bGUgKFhNX0ZJTEUpIGFuZC9vciB0YXJnZXRmaWxlIChUTV9GSUxFKSBhbmQv
b3IgbmF0aXZlZmlsZQ0KICMgKE5BVF9GSUxFKSBpcyBub3Qgc2V0IGluIGNv
bmZpZy8qLyoubVtodF0gZmlsZXMsIHdlIGRvbid0IG1ha2UgdGhlDQogIyBj
b3JyZXNwb25kaW5nIGxpbmtzLiAgQnV0IHdlIGhhdmUgdG8gcmVtb3ZlIHRo
ZSB4bS5oIGZpbGVzIGFuZCB0bS5oDQpAQCAtNzU2NCw3ICs3NTUyLDcgQEAg
ZmlsZXM9IiR7ZmlsZXN9IGNvbmZpZy9ubS1lbXB0eS5oIg0KIGxpbmtzPSIk
e2xpbmtzfSBubS5oIg0KIGZpDQogZWNobyAkYWNfbiAiY2hlY2tpbmcgd2hl
dGhlciBsbiAtcyB3b3JrcyIiLi4uICRhY19jIiAxPiY2DQotZWNobyAiY29u
ZmlndXJlOjc1Njg6IGNoZWNraW5nIHdoZXRoZXIgbG4gLXMgd29ya3MiID4m
NQ0KK2VjaG8gImNvbmZpZ3VyZTo3NTU2OiBjaGVja2luZyB3aGV0aGVyIGxu
IC1zIHdvcmtzIiA+JjUNCiBpZiBldmFsICJ0ZXN0IFwiYGVjaG8gJyQnJ3sn
YWNfY3ZfcHJvZ19MTl9TJytzZXR9J2BcIiA9IHNldCI7IHRoZW4NCiAgIGVj
aG8gJGFjX24gIihjYWNoZWQpICRhY19jIiAxPiY2DQogZWxzZQ0KQEAgLTc1
ODgsMTIgKzc1NzYsMTIgQEAgZmkNCiANCiANCiBlY2hvICRhY19uICJjaGVj
a2luZyBmb3IgQ3lnd2luIGVudmlyb25tZW50IiIuLi4gJGFjX2MiIDE+JjYN
Ci1lY2hvICJjb25maWd1cmU6NzU5MjogY2hlY2tpbmcgZm9yIEN5Z3dpbiBl
bnZpcm9ubWVudCIgPiY1DQorZWNobyAiY29uZmlndXJlOjc1ODA6IGNoZWNr
aW5nIGZvciBDeWd3aW4gZW52aXJvbm1lbnQiID4mNQ0KIGlmIGV2YWwgInRl
c3QgXCJgZWNobyAnJCcneydhY19jdl9jeWd3aW4nK3NldH0nYFwiID0gc2V0
IjsgdGhlbg0KICAgZWNobyAkYWNfbiAiKGNhY2hlZCkgJGFjX2MiIDE+JjYN
CiBlbHNlDQogICBjYXQgPiBjb25mdGVzdC4kYWNfZXh0IDw8RU9GDQotI2xp
bmUgNzU5NyAiY29uZmlndXJlIg0KKyNsaW5lIDc1ODUgImNvbmZpZ3VyZSIN
CiAjaW5jbHVkZSAiY29uZmRlZnMuaCINCiANCiBpbnQgbWFpbigpIHsNCkBA
IC03NjA0LDcgKzc1OTIsNyBAQCBpbnQgbWFpbigpIHsNCiByZXR1cm4gX19D
WUdXSU5fXzsNCiA7IHJldHVybiAwOyB9DQogRU9GDQotaWYgeyAoZXZhbCBl
Y2hvIGNvbmZpZ3VyZTo3NjA4OiBcIiRhY19jb21waWxlXCIpIDE+JjU7IChl
dmFsICRhY19jb21waWxlKSAyPiY1OyB9OyB0aGVuDQoraWYgeyAoZXZhbCBl
Y2hvIGNvbmZpZ3VyZTo3NTk2OiBcIiRhY19jb21waWxlXCIpIDE+JjU7IChl
dmFsICRhY19jb21waWxlKSAyPiY1OyB9OyB0aGVuDQogICBybSAtcmYgY29u
ZnRlc3QqDQogICBhY19jdl9jeWd3aW49eWVzDQogZWxzZQ0KQEAgLTc2MjEs
MTkgKzc2MDksMTkgQEAgZWNobyAiJGFjX3QiIiRhY19jdl9jeWd3aW4iIDE+
JjYNCiBDWUdXSU49DQogdGVzdCAiJGFjX2N2X2N5Z3dpbiIgPSB5ZXMgJiYg
Q1lHV0lOPXllcw0KIGVjaG8gJGFjX24gImNoZWNraW5nIGZvciBtaW5ndzMy
IGVudmlyb25tZW50IiIuLi4gJGFjX2MiIDE+JjYNCi1lY2hvICJjb25maWd1
cmU6NzYyNTogY2hlY2tpbmcgZm9yIG1pbmd3MzIgZW52aXJvbm1lbnQiID4m
NQ0KK2VjaG8gImNvbmZpZ3VyZTo3NjEzOiBjaGVja2luZyBmb3IgbWluZ3cz
MiBlbnZpcm9ubWVudCIgPiY1DQogaWYgZXZhbCAidGVzdCBcImBlY2hvICck
Jyd7J2FjX2N2X21pbmd3MzInK3NldH0nYFwiID0gc2V0IjsgdGhlbg0KICAg
ZWNobyAkYWNfbiAiKGNhY2hlZCkgJGFjX2MiIDE+JjYNCiBlbHNlDQogICBj
YXQgPiBjb25mdGVzdC4kYWNfZXh0IDw8RU9GDQotI2xpbmUgNzYzMCAiY29u
ZmlndXJlIg0KKyNsaW5lIDc2MTggImNvbmZpZ3VyZSINCiAjaW5jbHVkZSAi
Y29uZmRlZnMuaCINCiANCiBpbnQgbWFpbigpIHsNCiByZXR1cm4gX19NSU5H
VzMyX187DQogOyByZXR1cm4gMDsgfQ0KIEVPRg0KLWlmIHsgKGV2YWwgZWNo
byBjb25maWd1cmU6NzYzNzogXCIkYWNfY29tcGlsZVwiKSAxPiY1OyAoZXZh
bCAkYWNfY29tcGlsZSkgMj4mNTsgfTsgdGhlbg0KK2lmIHsgKGV2YWwgZWNo
byBjb25maWd1cmU6NzYyNTogXCIkYWNfY29tcGlsZVwiKSAxPiY1OyAoZXZh
bCAkYWNfY29tcGlsZSkgMj4mNTsgfTsgdGhlbg0KICAgcm0gLXJmIGNvbmZ0
ZXN0Kg0KICAgYWNfY3ZfbWluZ3czMj15ZXMNCiBlbHNlDQpAQCAtNzY1Miw3
ICs3NjQwLDcgQEAgdGVzdCAiJGFjX2N2X21pbmd3MzIiID0geWVzICYmIE1J
TkdXMzI9eQ0KIA0KIA0KIGVjaG8gJGFjX24gImNoZWNraW5nIGZvciBleGVj
dXRhYmxlIHN1ZmZpeCIiLi4uICRhY19jIiAxPiY2DQotZWNobyAiY29uZmln
dXJlOjc2NTY6IGNoZWNraW5nIGZvciBleGVjdXRhYmxlIHN1ZmZpeCIgPiY1
DQorZWNobyAiY29uZmlndXJlOjc2NDQ6IGNoZWNraW5nIGZvciBleGVjdXRh
YmxlIHN1ZmZpeCIgPiY1DQogaWYgZXZhbCAidGVzdCBcImBlY2hvICckJyd7
J2FjX2N2X2V4ZWV4dCcrc2V0fSdgXCIgPSBzZXQiOyB0aGVuDQogICBlY2hv
ICRhY19uICIoY2FjaGVkKSAkYWNfYyIgMT4mNg0KIGVsc2UNCkBAIC03NjYy
LDEwICs3NjUwLDEwIEBAIGVsc2UNCiAgIHJtIC1mIGNvbmZ0ZXN0Kg0KICAg
ZWNobyAnaW50IG1haW4gKCkgeyByZXR1cm4gMDsgfScgPiBjb25mdGVzdC4k
YWNfZXh0DQogICBhY19jdl9leGVleHQ9DQotICBpZiB7IChldmFsIGVjaG8g
Y29uZmlndXJlOjc2NjY6IFwiJGFjX2xpbmtcIikgMT4mNTsgKGV2YWwgJGFj
X2xpbmspIDI+JjU7IH07IHRoZW4NCisgIGlmIHsgKGV2YWwgZWNobyBjb25m
aWd1cmU6NzY1NDogXCIkYWNfbGlua1wiKSAxPiY1OyAoZXZhbCAkYWNfbGlu
aykgMj4mNTsgfTsgdGhlbg0KICAgICBmb3IgZmlsZSBpbiBjb25mdGVzdC4q
OyBkbw0KICAgICAgIGNhc2UgJGZpbGUgaW4NCi0gICAgICAqLmMgfCAqLm8g
fCAqLm9iaiB8ICouaWxrIHwgKi5wZGIpIDs7DQorICAgICAgKi5jIHwgKi5v
IHwgKi5vYmopIDs7DQogICAgICAgKikgYWNfY3ZfZXhlZXh0PWBlY2hvICRm
aWxlIHwgc2VkIC1lIHMvY29uZnRlc3QvL2AgOzsNCiAgICAgICBlc2FjDQog
ICAgIGRvbmUNCkluZGV4OiBnZGIvY29uZmlndXJlLmluDQo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09DQpSQ1MgZmlsZTogL2N2cy9zcmMvc3JjL2dkYi9jb25m
aWd1cmUuaW4sdg0KcmV0cmlldmluZyByZXZpc2lvbiAxLjQwDQpkaWZmIC11
IC1wIC1yMS40MCBjb25maWd1cmUuaW4NCi0tLSBjb25maWd1cmUuaW4JMjAw
MC8wNy8yNyAwNDowMToyNAkxLjQwDQorKysgY29uZmlndXJlLmluCTIwMDAv
MDcvMzEgMTU6NTk6NTkNCkBAIC0xMDE0LDEyICsxMDE0LDE5IEBAIGlmIHRl
c3QgIiR7dGFyZ2V0fSIgPSAiJHtob3N0fSI7IHRoZW4NCiBuYXRpdmVmaWxl
PWBzZWQgLW4gJw0KIHMvTkFUX0ZJTEVbIAldKj1bIAldKlwoW14gCV0qXCkv
XDEvcA0KICcgJHtob3N0X21ha2VmaWxlX2ZyYWd9YA0KLSMgZWxzZQ0KK2Vs
c2UNCiAjIEdEQnNlcnZlciBpcyBvbmx5IHVzZWZ1bCBpbiBhICJuYXRpdmUi
IGVudmlyb21lbnQNCi0jIGNvbmZpZ2RpcnM9YGVjaG8gJGNvbmZpZ2RpcnMg
fCBzZWQgJ3MvZ2Ric2VydmVyLy8nYA0KK2NvbmZpZ2RpcnM9YGVjaG8gJGNv
bmZpZ2RpcnMgfCBzZWQgJ3MvZ2Ric2VydmVyLy8nYA0KIGZpDQogY2hhbmdl
cXVvdGUoWyxdKQ0KIA0KK1NVQkRJUlM9ImRvYyB0ZXN0c3VpdGUgbmxtICRj
b25maWdkaXJzIg0KK2lmIHRlc3QgIiR7ZW5hYmxlX211bHRpX2ljZX0iID0g
InllcyI7IHRoZW4NCisgIFNVQkRJUlM9IiR7U1VCRElSU30gbXVsdGktaWNl
Ig0KK2ZpDQorDQorQUNfU1VCU1QoU1VCRElSUykNCisNCiAjIE5ldyB0YXJn
ZXRzIHNob3VsZCBqdXN0IHNldCBnZGJfbXVsdGlfYXJjaD15ZXMgaW4gY29u
ZmlndXJlLnRndC4NCiAjIE9sZCB0YXJnZXRzIGJlaW5nIGNvbnZlcnRlZCBj
YW4gZWl0aGVyIGRvIHRoYXQgb3Igc2V0IEdEQl9NVUxUSV9BUkNIDQogIyBp
biB0aGUgdGFyZ2V0IHNwZWNpZmljIG1ha2VmaWxlIGZyYWcuICBFdmVudHVh
bGx5IGdkYl9tdWx0aV9hcmNoPXllcw0KQEAgLTEwNDUsMTQgKzEwNTIsNiBA
QCBjYXNlICIke0dEQl9NVUxUSV9BUkNIfSIgaW4NCiAJZmkgOzsNCiAgICAg
KikgIEFDX01TR19FUlJPUigiR0RCOiBVbmtub3duIEdEQl9NVUxUSV9BUkNI
IHZhbHVlICR7R0RCX01VTFRJX0FSQ0h9Iik7Ow0KIGVzYWMNCi0NCi0NCi1T
VUJESVJTPSJkb2MgdGVzdHN1aXRlIG5sbSINCi1pZiB0ZXN0ICIke2VuYWJs
ZV9tdWx0aV9pY2V9IiA9ICJ5ZXMiOyB0aGVuDQotICBTVUJESVJTPSIke1NV
QkRJUlN9IG11bHRpLWljZSINCi1maQ0KLQ0KLUFDX1NVQlNUKFNVQkRJUlMp
DQogDQogIyBJZiBob3N0ZmlsZSAoWE1fRklMRSkgYW5kL29yIHRhcmdldGZp
bGUgKFRNX0ZJTEUpIGFuZC9vciBuYXRpdmVmaWxlDQogIyAoTkFUX0ZJTEUp
IGlzIG5vdCBzZXQgaW4gY29uZmlnLyovKi5tW2h0XSBmaWxlcywgd2UgZG9u
J3QgbWFrZSB0aGUNCg==

------------=_1583534355-29877-16--
From cgf@cygnus.com Mon Jul 31 09:41:00 2000
From: Chris Faylor <cgf@cygnus.com>
To: GDB Patches Mail List <gdb-patches@sources.redhat.com>
Cc: scottb@netwinder.org
Subject: Re: RFC: changes to configure.in and configure
Date: Mon, 31 Jul 2000 09:41:00 -0000
Message-id: <20000731124035.N9027@cygnus.com>
References: <3985A85C.C246C623@netwinder.org>
X-SW-Source: 2000-07/msg00376.html
Content-length: 671

On Mon, Jul 31, 2000 at 12:25:00PM -0400, Scott Bambrough wrote:
>I noticed last week that gdbserver was not building on my ARM Linux box
>automatically even though it was specified in configdirs in
>configure.tgt.  It seems none of the modifications to configdirs in
>configure.tgt were being applied.  I'd like to apply the following
>patch to configure.in which fixes this problem if no on has any
>objections.  The changes to configure are the diffs after configure was
>regenerated using autoconf 2.13 as Andrew suggested.

When I inspect your patch I see \r's at the end of every line.  Was it
generated on a windows system?  Or is my mail reader screwed up?

cgf


      parent reply	other threads:[~2000-07-30 21:32 UTC|newest]

Thread overview: 3+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <1000719220642.ZM16166@ocotillo.lan>
2000-07-19 16:13 ` Michael Snyder
     [not found]   ` <1000719232847.ZM16284@ocotillo.lan>
     [not found]     ` <397643BC.52B6@cygnus.com>
     [not found]       ` <1000720005134.ZM16424@ocotillo.lan>
     [not found]         ` <39765591.22FE213C@apple.com>
2000-07-19 19:57           ` Kevin Buettner
2000-07-30 21:32 ` Nick Duffek [this message]

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=200007310436.e6V4a5Q09877@rtl.cygnus.com \
    --to=nsd@redhat.com \
    --cc=gdb-patches@sourceware.cygnus.com \
    --cc=kevinb@cygnus.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox